From 7b5d386cdd3e4368258abd2d0e3e7b03bd802fc2 Mon Sep 17 00:00:00 2001 From: Christiano Haesbaert Date: Tue, 4 Jun 2024 10:31:06 +0200 Subject: [PATCH 1/4] Remove previous contrib/elftoolchain --- contrib/elftoolchain/.cirrus.yml | 31 - contrib/elftoolchain/GNUmakefile | 22 - contrib/elftoolchain/INSTALL | 247 - contrib/elftoolchain/Makefile | 51 - contrib/elftoolchain/README.rst | 126 - contrib/elftoolchain/RELEASE-NOTES | 206 - contrib/elftoolchain/addr2line/Makefile | 15 - contrib/elftoolchain/addr2line/addr2line.1 | 182 - contrib/elftoolchain/addr2line/addr2line.c | 734 - contrib/elftoolchain/addr2line/os.NetBSD.mk | 2 - contrib/elftoolchain/ar/Makefile | 37 - contrib/elftoolchain/ar/acplex.l | 83 - contrib/elftoolchain/ar/acpyacc.y | 658 - contrib/elftoolchain/ar/ar.1 | 627 - contrib/elftoolchain/ar/ar.5 | 329 - contrib/elftoolchain/ar/ar.c | 445 - contrib/elftoolchain/ar/ar.h | 143 - contrib/elftoolchain/ar/benchmark/acp.sh | 65 - contrib/elftoolchain/ar/os.FreeBSD.mk | 2 - contrib/elftoolchain/ar/os.Linux.mk | 9 - contrib/elftoolchain/ar/ranlib.1 | 86 - contrib/elftoolchain/ar/read.c | 221 - contrib/elftoolchain/ar/util.c | 184 - contrib/elftoolchain/ar/write.c | 986 -- contrib/elftoolchain/as/Makefile | 14 - contrib/elftoolchain/as/as.1 | 211 - contrib/elftoolchain/as/as.c | 217 - contrib/elftoolchain/brandelf/Makefile | 9 - contrib/elftoolchain/brandelf/brandelf.1 | 147 - contrib/elftoolchain/brandelf/brandelf.c | 312 - contrib/elftoolchain/common/Makefile | 18 - contrib/elftoolchain/common/_elftc.h | 484 - contrib/elftoolchain/common/elfdefinitions.h | 2964 ---- contrib/elftoolchain/common/native-elf-format | 53 - contrib/elftoolchain/common/os.Linux.mk | 15 - contrib/elftoolchain/common/utarray.h | 237 - contrib/elftoolchain/common/uthash.h | 919 - contrib/elftoolchain/cxxfilt/Makefile | 15 - contrib/elftoolchain/cxxfilt/c++filt.1 | 109 - contrib/elftoolchain/cxxfilt/cxxfilt.c | 203 - contrib/elftoolchain/documentation/Makefile | 7 - .../documentation/libelf-by-example/Makefile | 41 - .../libelf-by-example.cover.tex | 7 - .../libelf-by-example/libelf-by-example.tex | 2917 ---- .../documentation/libelf-by-example/prog1.txt | 58 - .../documentation/libelf-by-example/prog2.txt | 102 - .../documentation/libelf-by-example/prog3.txt | 101 - .../documentation/libelf-by-example/prog4.txt | 92 - .../documentation/libelf-by-example/prog5.txt | 133 - .../documentation/libelf-by-example/prog6.txt | 56 - .../libelf-by-example/title-page-content.tex | 19 - contrib/elftoolchain/elfcopy/Makefile | 56 - contrib/elftoolchain/elfcopy/archive.c | 526 - contrib/elftoolchain/elfcopy/ascii.c | 1073 -- contrib/elftoolchain/elfcopy/binary.c | 290 - contrib/elftoolchain/elfcopy/elfcopy.1 | 369 - contrib/elftoolchain/elfcopy/elfcopy.h | 324 - contrib/elftoolchain/elfcopy/main.c | 1623 -- contrib/elftoolchain/elfcopy/mcs.1 | 125 - contrib/elftoolchain/elfcopy/os.FreeBSD.mk | 4 - contrib/elftoolchain/elfcopy/pe.c | 236 - contrib/elftoolchain/elfcopy/sections.c | 1693 -- contrib/elftoolchain/elfcopy/segments.c | 592 - contrib/elftoolchain/elfcopy/strip.1 | 141 - contrib/elftoolchain/elfcopy/symbols.c | 1207 -- contrib/elftoolchain/elfdump/Makefile | 11 - contrib/elftoolchain/elfdump/elfdump.1 | 158 - contrib/elftoolchain/elfdump/elfdump.c | 2697 --- contrib/elftoolchain/elfdump/os.NetBSD.mk | 2 - contrib/elftoolchain/findtextrel/Makefile | 15 - .../elftoolchain/findtextrel/findtextrel.1 | 104 - .../elftoolchain/findtextrel/findtextrel.c | 424 - contrib/elftoolchain/isa/Makefile | 20 - contrib/elftoolchain/isa/avr.isa | 280 - contrib/elftoolchain/isa/isa.1 | 247 - contrib/elftoolchain/isa/isa.5 | 365 - contrib/elftoolchain/isa/isa.c | 286 - contrib/elftoolchain/ld/Makefile | 52 - contrib/elftoolchain/ld/amd64.c | 1327 -- contrib/elftoolchain/ld/amd64.h | 31 - contrib/elftoolchain/ld/amd64_script.ld | 151 - contrib/elftoolchain/ld/bigmips_script.ld | 165 - contrib/elftoolchain/ld/i386.c | 579 - contrib/elftoolchain/ld/i386.h | 31 - contrib/elftoolchain/ld/i386_script.ld | 148 - contrib/elftoolchain/ld/ld.1 | 478 - contrib/elftoolchain/ld/ld.h | 157 - contrib/elftoolchain/ld/ld_arch.c | 219 - contrib/elftoolchain/ld/ld_arch.h | 67 - contrib/elftoolchain/ld/ld_dynamic.c | 610 - contrib/elftoolchain/ld/ld_dynamic.h | 34 - contrib/elftoolchain/ld/ld_ehframe.c | 770 - contrib/elftoolchain/ld/ld_ehframe.h | 32 - contrib/elftoolchain/ld/ld_error.c | 95 - contrib/elftoolchain/ld/ld_exp.c | 715 - contrib/elftoolchain/ld/ld_exp.h | 100 - contrib/elftoolchain/ld/ld_file.c | 234 - contrib/elftoolchain/ld/ld_file.h | 70 - contrib/elftoolchain/ld/ld_hash.c | 126 - contrib/elftoolchain/ld/ld_hash.h | 29 - contrib/elftoolchain/ld/ld_input.c | 653 - contrib/elftoolchain/ld/ld_input.h | 121 - contrib/elftoolchain/ld/ld_layout.c | 1252 -- contrib/elftoolchain/ld/ld_layout.h | 33 - contrib/elftoolchain/ld/ld_main.c | 145 - contrib/elftoolchain/ld/ld_options.c | 507 - contrib/elftoolchain/ld/ld_options.h | 161 - contrib/elftoolchain/ld/ld_output.c | 1155 -- contrib/elftoolchain/ld/ld_output.h | 165 - contrib/elftoolchain/ld/ld_path.c | 295 - contrib/elftoolchain/ld/ld_path.h | 46 - contrib/elftoolchain/ld/ld_reloc.c | 875 - contrib/elftoolchain/ld/ld_reloc.h | 69 - contrib/elftoolchain/ld/ld_script.awk | 25 - contrib/elftoolchain/ld/ld_script.c | 785 - contrib/elftoolchain/ld/ld_script.h | 290 - contrib/elftoolchain/ld/ld_script_lexer.l | 265 - contrib/elftoolchain/ld/ld_script_parser.y | 1232 -- contrib/elftoolchain/ld/ld_strtab.c | 238 - contrib/elftoolchain/ld/ld_strtab.h | 35 - contrib/elftoolchain/ld/ld_symbols.c | 1415 -- contrib/elftoolchain/ld/ld_symbols.h | 105 - contrib/elftoolchain/ld/ld_symver.c | 854 - contrib/elftoolchain/ld/ld_symver.h | 79 - contrib/elftoolchain/ld/ld_utils.h | 164 - contrib/elftoolchain/ld/littlemips_script.ld | 165 - contrib/elftoolchain/ld/mips.c | 403 - contrib/elftoolchain/ld/mips.h | 29 - contrib/elftoolchain/libdwarf/Makefile | 337 - contrib/elftoolchain/libdwarf/Version.map | 239 - contrib/elftoolchain/libdwarf/_libdwarf.h | 666 - contrib/elftoolchain/libdwarf/dwarf.3 | 751 - contrib/elftoolchain/libdwarf/dwarf.h | 652 - contrib/elftoolchain/libdwarf/dwarf_abbrev.c | 136 - .../libdwarf/dwarf_add_AT_comp_dir.3 | 99 - .../dwarf_add_AT_const_value_string.3 | 126 - .../libdwarf/dwarf_add_AT_dataref.3 | 122 - .../elftoolchain/libdwarf/dwarf_add_AT_flag.3 | 115 - .../libdwarf/dwarf_add_AT_location_expr.3 | 120 - .../elftoolchain/libdwarf/dwarf_add_AT_name.3 | 99 - .../libdwarf/dwarf_add_AT_producer.3 | 99 - .../libdwarf/dwarf_add_AT_ref_address.3 | 117 - .../libdwarf/dwarf_add_AT_reference.3 | 117 - .../libdwarf/dwarf_add_AT_signed_const.3 | 131 - .../libdwarf/dwarf_add_AT_string.3 | 114 - .../libdwarf/dwarf_add_AT_targ_address.3 | 137 - .../elftoolchain/libdwarf/dwarf_add_arange.3 | 151 - .../libdwarf/dwarf_add_die_to_debug.3 | 95 - .../libdwarf/dwarf_add_directory_decl.3 | 97 - .../libdwarf/dwarf_add_expr_addr.3 | 111 - .../libdwarf/dwarf_add_expr_gen.3 | 118 - .../libdwarf/dwarf_add_fde_inst.3 | 113 - .../libdwarf/dwarf_add_file_decl.3 | 122 - .../libdwarf/dwarf_add_frame_cie.3 | 124 - .../libdwarf/dwarf_add_frame_fde.3 | 201 - .../libdwarf/dwarf_add_funcname.3 | 103 - .../libdwarf/dwarf_add_line_entry.3 | 164 - .../elftoolchain/libdwarf/dwarf_add_pubname.3 | 103 - .../libdwarf/dwarf_add_typename.3 | 103 - .../elftoolchain/libdwarf/dwarf_add_varname.3 | 103 - .../libdwarf/dwarf_add_weakname.3 | 103 - contrib/elftoolchain/libdwarf/dwarf_arange.c | 171 - contrib/elftoolchain/libdwarf/dwarf_attr.3 | 121 - contrib/elftoolchain/libdwarf/dwarf_attr.c | 312 - .../elftoolchain/libdwarf/dwarf_attrlist.3 | 147 - .../elftoolchain/libdwarf/dwarf_attroffset.3 | 86 - contrib/elftoolchain/libdwarf/dwarf_attrval.c | 222 - .../libdwarf/dwarf_attrval_signed.3 | 225 - contrib/elftoolchain/libdwarf/dwarf_child.3 | 278 - contrib/elftoolchain/libdwarf/dwarf_cu.c | 161 - contrib/elftoolchain/libdwarf/dwarf_dealloc.3 | 203 - contrib/elftoolchain/libdwarf/dwarf_dealloc.c | 117 - .../elftoolchain/libdwarf/dwarf_def_macro.3 | 129 - contrib/elftoolchain/libdwarf/dwarf_die.c | 413 - .../libdwarf/dwarf_die_abbrev_code.3 | 55 - .../elftoolchain/libdwarf/dwarf_die_link.3 | 118 - contrib/elftoolchain/libdwarf/dwarf_diename.3 | 91 - .../elftoolchain/libdwarf/dwarf_dieoffset.3 | 206 - contrib/elftoolchain/libdwarf/dwarf_dump.c | 1482 -- .../libdwarf/dwarf_end_macro_file.3 | 89 - contrib/elftoolchain/libdwarf/dwarf_errmsg.3 | 67 - contrib/elftoolchain/libdwarf/dwarf_errmsg.c | 90 - contrib/elftoolchain/libdwarf/dwarf_errno.3 | 58 - .../dwarf_expand_frame_instructions.3 | 182 - .../libdwarf/dwarf_expr_current_offset.3 | 84 - .../libdwarf/dwarf_expr_into_block.3 | 94 - .../libdwarf/dwarf_fde_cfa_offset.3 | 99 - .../libdwarf/dwarf_find_macro_value_start.3 | 68 - contrib/elftoolchain/libdwarf/dwarf_finish.3 | 140 - contrib/elftoolchain/libdwarf/dwarf_finish.c | 61 - contrib/elftoolchain/libdwarf/dwarf_form.c | 480 - .../elftoolchain/libdwarf/dwarf_formaddr.3 | 97 - .../elftoolchain/libdwarf/dwarf_formblock.3 | 109 - .../elftoolchain/libdwarf/dwarf_formexprloc.3 | 109 - .../elftoolchain/libdwarf/dwarf_formflag.3 | 97 - contrib/elftoolchain/libdwarf/dwarf_formref.3 | 136 - .../elftoolchain/libdwarf/dwarf_formsig8.3 | 96 - .../elftoolchain/libdwarf/dwarf_formstring.3 | 101 - .../elftoolchain/libdwarf/dwarf_formudata.3 | 122 - contrib/elftoolchain/libdwarf/dwarf_frame.c | 603 - contrib/elftoolchain/libdwarf/dwarf_funcs.m4 | 36 - .../elftoolchain/libdwarf/dwarf_get_AT_name.3 | 260 - .../elftoolchain/libdwarf/dwarf_get_abbrev.3 | 179 - .../libdwarf/dwarf_get_abbrev_children_flag.3 | 99 - .../libdwarf/dwarf_get_abbrev_code.3 | 86 - .../libdwarf/dwarf_get_abbrev_entry.3 | 159 - .../libdwarf/dwarf_get_abbrev_tag.3 | 86 - .../libdwarf/dwarf_get_address_size.3 | 82 - .../elftoolchain/libdwarf/dwarf_get_arange.3 | 121 - .../libdwarf/dwarf_get_arange_info.3 | 135 - .../elftoolchain/libdwarf/dwarf_get_aranges.3 | 148 - .../libdwarf/dwarf_get_cie_index.3 | 86 - .../libdwarf/dwarf_get_cie_info.3 | 150 - .../libdwarf/dwarf_get_cie_of_fde.3 | 88 - .../libdwarf/dwarf_get_cu_die_offset.3 | 103 - .../libdwarf/dwarf_get_die_infotypes_flag.3 | 73 - contrib/elftoolchain/libdwarf/dwarf_get_elf.3 | 103 - .../libdwarf/dwarf_get_fde_at_pc.3 | 125 - .../dwarf_get_fde_info_for_all_regs.3 | 156 - .../dwarf_get_fde_info_for_all_regs3.3 | 183 - .../dwarf_get_fde_info_for_cfa_reg3.3 | 171 - .../libdwarf/dwarf_get_fde_info_for_reg.3 | 156 - .../libdwarf/dwarf_get_fde_info_for_reg3.3 | 214 - .../libdwarf/dwarf_get_fde_instr_bytes.3 | 113 - .../libdwarf/dwarf_get_fde_list.3 | 218 - .../elftoolchain/libdwarf/dwarf_get_fde_n.3 | 111 - .../libdwarf/dwarf_get_fde_range.3 | 149 - .../libdwarf/dwarf_get_form_class.3 | 87 - .../elftoolchain/libdwarf/dwarf_get_funcs.3 | 215 - .../elftoolchain/libdwarf/dwarf_get_globals.3 | 211 - .../libdwarf/dwarf_get_loclist_entry.3 | 156 - .../libdwarf/dwarf_get_macro_details.3 | 192 - .../libdwarf/dwarf_get_pubtypes.3 | 243 - .../elftoolchain/libdwarf/dwarf_get_ranges.3 | 258 - .../libdwarf/dwarf_get_relocation_info.3 | 228 - .../dwarf_get_relocation_info_count.3 | 116 - .../libdwarf/dwarf_get_section_bytes.3 | 157 - .../libdwarf/dwarf_get_section_max_offsets.3 | 116 - contrib/elftoolchain/libdwarf/dwarf_get_str.3 | 149 - .../elftoolchain/libdwarf/dwarf_get_types.3 | 232 - .../elftoolchain/libdwarf/dwarf_get_vars.3 | 210 - .../elftoolchain/libdwarf/dwarf_get_weaks.3 | 215 - contrib/elftoolchain/libdwarf/dwarf_hasattr.3 | 92 - contrib/elftoolchain/libdwarf/dwarf_hasform.3 | 127 - contrib/elftoolchain/libdwarf/dwarf_highpc.3 | 194 - contrib/elftoolchain/libdwarf/dwarf_init.3 | 178 - contrib/elftoolchain/libdwarf/dwarf_init.c | 163 - contrib/elftoolchain/libdwarf/dwarf_lineno.3 | 202 - contrib/elftoolchain/libdwarf/dwarf_lineno.c | 294 - .../libdwarf/dwarf_lne_end_sequence.3 | 100 - .../libdwarf/dwarf_lne_set_address.3 | 105 - contrib/elftoolchain/libdwarf/dwarf_loclist.3 | 230 - contrib/elftoolchain/libdwarf/dwarf_loclist.c | 302 - .../libdwarf/dwarf_loclist_from_expr.3 | 201 - contrib/elftoolchain/libdwarf/dwarf_macinfo.c | 88 - .../elftoolchain/libdwarf/dwarf_nametbl.m4 | 159 - contrib/elftoolchain/libdwarf/dwarf_new_die.3 | 164 - .../elftoolchain/libdwarf/dwarf_new_expr.3 | 135 - contrib/elftoolchain/libdwarf/dwarf_new_fde.3 | 87 - .../libdwarf/dwarf_next_cu_header.3 | 287 - .../libdwarf/dwarf_next_types_section.3 | 134 - .../elftoolchain/libdwarf/dwarf_object_init.3 | 226 - .../elftoolchain/libdwarf/dwarf_pro_arange.c | 73 - .../elftoolchain/libdwarf/dwarf_pro_attr.c | 386 - contrib/elftoolchain/libdwarf/dwarf_pro_die.c | 110 - .../elftoolchain/libdwarf/dwarf_pro_expr.c | 223 - .../elftoolchain/libdwarf/dwarf_pro_finish.c | 45 - .../elftoolchain/libdwarf/dwarf_pro_frame.c | 195 - .../elftoolchain/libdwarf/dwarf_pro_funcs.m4 | 36 - .../elftoolchain/libdwarf/dwarf_pro_init.c | 122 - .../elftoolchain/libdwarf/dwarf_pro_lineno.c | 187 - .../elftoolchain/libdwarf/dwarf_pro_macinfo.c | 142 - .../libdwarf/dwarf_pro_nametbl.m4 | 70 - .../libdwarf/dwarf_pro_pubnames.m4 | 36 - .../elftoolchain/libdwarf/dwarf_pro_reloc.c | 114 - .../libdwarf/dwarf_pro_sections.c | 81 - .../elftoolchain/libdwarf/dwarf_pro_types.m4 | 36 - .../elftoolchain/libdwarf/dwarf_pro_vars.m4 | 36 - .../elftoolchain/libdwarf/dwarf_pro_weaks.m4 | 36 - .../libdwarf/dwarf_producer_init.3 | 296 - .../libdwarf/dwarf_producer_set_isa.3 | 98 - .../elftoolchain/libdwarf/dwarf_pubnames.m4 | 36 - .../elftoolchain/libdwarf/dwarf_pubtypes.m4 | 36 - contrib/elftoolchain/libdwarf/dwarf_ranges.c | 87 - contrib/elftoolchain/libdwarf/dwarf_reloc.c | 40 - .../libdwarf/dwarf_reset_section_bytes.3 | 69 - .../elftoolchain/libdwarf/dwarf_sections.c | 111 - .../libdwarf/dwarf_set_frame_cfa_value.3 | 140 - .../libdwarf/dwarf_set_reloc_application.3 | 82 - .../elftoolchain/libdwarf/dwarf_seterrarg.3 | 101 - .../elftoolchain/libdwarf/dwarf_seterror.c | 63 - .../elftoolchain/libdwarf/dwarf_srcfiles.3 | 105 - .../elftoolchain/libdwarf/dwarf_srclines.3 | 163 - .../libdwarf/dwarf_start_macro_file.3 | 105 - contrib/elftoolchain/libdwarf/dwarf_str.c | 62 - contrib/elftoolchain/libdwarf/dwarf_tag.3 | 77 - .../libdwarf/dwarf_transform_to_disk_form.3 | 99 - contrib/elftoolchain/libdwarf/dwarf_types.m4 | 36 - .../elftoolchain/libdwarf/dwarf_undef_macro.3 | 119 - contrib/elftoolchain/libdwarf/dwarf_vars.m4 | 36 - .../elftoolchain/libdwarf/dwarf_vendor_ext.3 | 110 - contrib/elftoolchain/libdwarf/dwarf_weaks.m4 | 36 - .../elftoolchain/libdwarf/dwarf_whatattr.3 | 79 - contrib/elftoolchain/libdwarf/libdwarf.c | 35 - contrib/elftoolchain/libdwarf/libdwarf.h | 841 - .../elftoolchain/libdwarf/libdwarf_abbrev.c | 264 - .../elftoolchain/libdwarf/libdwarf_arange.c | 260 - contrib/elftoolchain/libdwarf/libdwarf_attr.c | 456 - contrib/elftoolchain/libdwarf/libdwarf_die.c | 457 - .../libdwarf/libdwarf_elf_access.c | 164 - .../elftoolchain/libdwarf/libdwarf_elf_init.c | 390 - .../elftoolchain/libdwarf/libdwarf_error.c | 58 - .../elftoolchain/libdwarf/libdwarf_frame.c | 1608 -- contrib/elftoolchain/libdwarf/libdwarf_info.c | 383 - contrib/elftoolchain/libdwarf/libdwarf_init.c | 315 - .../elftoolchain/libdwarf/libdwarf_lineno.c | 777 - contrib/elftoolchain/libdwarf/libdwarf_loc.c | 701 - .../elftoolchain/libdwarf/libdwarf_loclist.c | 165 - .../elftoolchain/libdwarf/libdwarf_macinfo.c | 254 - .../elftoolchain/libdwarf/libdwarf_nametbl.c | 253 - .../elftoolchain/libdwarf/libdwarf_ranges.c | 152 - .../elftoolchain/libdwarf/libdwarf_reloc.c | 499 - contrib/elftoolchain/libdwarf/libdwarf_rw.c | 574 - .../elftoolchain/libdwarf/libdwarf_sections.c | 280 - contrib/elftoolchain/libdwarf/libdwarf_str.c | 159 - contrib/elftoolchain/libdwarf/os.NetBSD.mk | 2 - contrib/elftoolchain/libelf/Makefile | 166 - contrib/elftoolchain/libelf/Version.map | 96 - contrib/elftoolchain/libelf/_libelf.h | 242 - contrib/elftoolchain/libelf/_libelf_ar.h | 57 - contrib/elftoolchain/libelf/_libelf_config.h | 195 - contrib/elftoolchain/libelf/elf.3 | 626 - contrib/elftoolchain/libelf/elf.c | 40 - contrib/elftoolchain/libelf/elf_begin.3 | 315 - contrib/elftoolchain/libelf/elf_begin.c | 91 - contrib/elftoolchain/libelf/elf_cntl.3 | 111 - contrib/elftoolchain/libelf/elf_cntl.c | 58 - contrib/elftoolchain/libelf/elf_data.c | 280 - contrib/elftoolchain/libelf/elf_end.3 | 76 - contrib/elftoolchain/libelf/elf_end.c | 95 - contrib/elftoolchain/libelf/elf_errmsg.3 | 107 - contrib/elftoolchain/libelf/elf_errmsg.c | 83 - contrib/elftoolchain/libelf/elf_errno.c | 41 - contrib/elftoolchain/libelf/elf_fill.3 | 52 - contrib/elftoolchain/libelf/elf_fill.c | 37 - contrib/elftoolchain/libelf/elf_flag.c | 196 - contrib/elftoolchain/libelf/elf_flagdata.3 | 227 - contrib/elftoolchain/libelf/elf_getarhdr.3 | 97 - contrib/elftoolchain/libelf/elf_getarhdr.c | 45 - contrib/elftoolchain/libelf/elf_getarsym.3 | 130 - contrib/elftoolchain/libelf/elf_getarsym.c | 56 - contrib/elftoolchain/libelf/elf_getbase.3 | 71 - contrib/elftoolchain/libelf/elf_getbase.c | 46 - contrib/elftoolchain/libelf/elf_getdata.3 | 234 - contrib/elftoolchain/libelf/elf_getident.3 | 83 - contrib/elftoolchain/libelf/elf_getident.c | 66 - contrib/elftoolchain/libelf/elf_getphdrnum.3 | 85 - contrib/elftoolchain/libelf/elf_getphnum.3 | 92 - contrib/elftoolchain/libelf/elf_getscn.3 | 155 - contrib/elftoolchain/libelf/elf_getshdrnum.3 | 77 - .../elftoolchain/libelf/elf_getshdrstrndx.3 | 78 - contrib/elftoolchain/libelf/elf_getshnum.3 | 83 - contrib/elftoolchain/libelf/elf_getshstrndx.3 | 94 - contrib/elftoolchain/libelf/elf_hash.3 | 57 - contrib/elftoolchain/libelf/elf_hash.c | 54 - contrib/elftoolchain/libelf/elf_kind.3 | 71 - contrib/elftoolchain/libelf/elf_kind.c | 42 - contrib/elftoolchain/libelf/elf_memory.3 | 122 - contrib/elftoolchain/libelf/elf_memory.c | 47 - contrib/elftoolchain/libelf/elf_next.3 | 99 - contrib/elftoolchain/libelf/elf_next.c | 78 - contrib/elftoolchain/libelf/elf_open.3 | 125 - contrib/elftoolchain/libelf/elf_open.c | 67 - contrib/elftoolchain/libelf/elf_phnum.c | 65 - contrib/elftoolchain/libelf/elf_rand.3 | 118 - contrib/elftoolchain/libelf/elf_rand.c | 66 - contrib/elftoolchain/libelf/elf_rawfile.3 | 76 - contrib/elftoolchain/libelf/elf_rawfile.c | 49 - contrib/elftoolchain/libelf/elf_scn.c | 236 - contrib/elftoolchain/libelf/elf_shnum.c | 65 - contrib/elftoolchain/libelf/elf_shstrndx.c | 80 - contrib/elftoolchain/libelf/elf_strptr.3 | 116 - contrib/elftoolchain/libelf/elf_strptr.c | 132 - contrib/elftoolchain/libelf/elf_types.m4 | 309 - contrib/elftoolchain/libelf/elf_update.3 | 382 - contrib/elftoolchain/libelf/elf_update.c | 1244 -- contrib/elftoolchain/libelf/elf_version.3 | 95 - contrib/elftoolchain/libelf/elf_version.c | 50 - contrib/elftoolchain/libelf/gelf.3 | 203 - contrib/elftoolchain/libelf/gelf.h | 110 - contrib/elftoolchain/libelf/gelf_cap.c | 149 - contrib/elftoolchain/libelf/gelf_checksum.3 | 115 - contrib/elftoolchain/libelf/gelf_checksum.c | 56 - contrib/elftoolchain/libelf/gelf_dyn.c | 152 - contrib/elftoolchain/libelf/gelf_ehdr.c | 167 - contrib/elftoolchain/libelf/gelf_fsize.3 | 96 - contrib/elftoolchain/libelf/gelf_fsize.c | 60 - contrib/elftoolchain/libelf/gelf_getcap.3 | 127 - contrib/elftoolchain/libelf/gelf_getclass.3 | 61 - contrib/elftoolchain/libelf/gelf_getclass.c | 37 - contrib/elftoolchain/libelf/gelf_getdyn.3 | 130 - contrib/elftoolchain/libelf/gelf_getehdr.3 | 123 - contrib/elftoolchain/libelf/gelf_getmove.3 | 126 - contrib/elftoolchain/libelf/gelf_getphdr.3 | 141 - contrib/elftoolchain/libelf/gelf_getrel.3 | 127 - contrib/elftoolchain/libelf/gelf_getrela.3 | 127 - contrib/elftoolchain/libelf/gelf_getshdr.3 | 115 - contrib/elftoolchain/libelf/gelf_getsym.3 | 131 - contrib/elftoolchain/libelf/gelf_getsyminfo.3 | 121 - .../elftoolchain/libelf/gelf_getsymshndx.3 | 170 - contrib/elftoolchain/libelf/gelf_move.c | 159 - contrib/elftoolchain/libelf/gelf_newehdr.3 | 197 - contrib/elftoolchain/libelf/gelf_newphdr.3 | 144 - contrib/elftoolchain/libelf/gelf_phdr.c | 171 - contrib/elftoolchain/libelf/gelf_rel.c | 162 - contrib/elftoolchain/libelf/gelf_rela.c | 165 - contrib/elftoolchain/libelf/gelf_shdr.c | 130 - contrib/elftoolchain/libelf/gelf_sym.c | 159 - contrib/elftoolchain/libelf/gelf_syminfo.c | 152 - contrib/elftoolchain/libelf/gelf_symshndx.c | 137 - .../elftoolchain/libelf/gelf_update_ehdr.3 | 123 - contrib/elftoolchain/libelf/gelf_xlate.c | 83 - contrib/elftoolchain/libelf/gelf_xlatetof.3 | 277 - contrib/elftoolchain/libelf/libelf.h | 256 - contrib/elftoolchain/libelf/libelf_align.c | 135 - contrib/elftoolchain/libelf/libelf_allocate.c | 195 - contrib/elftoolchain/libelf/libelf_ar.c | 497 - contrib/elftoolchain/libelf/libelf_ar_util.c | 360 - contrib/elftoolchain/libelf/libelf_checksum.c | 98 - contrib/elftoolchain/libelf/libelf_convert.m4 | 1092 -- contrib/elftoolchain/libelf/libelf_data.c | 107 - contrib/elftoolchain/libelf/libelf_ehdr.c | 212 - .../elftoolchain/libelf/libelf_elfmachine.c | 63 - contrib/elftoolchain/libelf/libelf_extended.c | 134 - contrib/elftoolchain/libelf/libelf_fsize.m4 | 159 - contrib/elftoolchain/libelf/libelf_memory.c | 96 - contrib/elftoolchain/libelf/libelf_msize.m4 | 119 - contrib/elftoolchain/libelf/libelf_open.c | 249 - contrib/elftoolchain/libelf/libelf_phdr.c | 156 - contrib/elftoolchain/libelf/libelf_shdr.c | 54 - contrib/elftoolchain/libelf/libelf_xlate.c | 149 - contrib/elftoolchain/libelf/os.FreeBSD.mk | 7 - contrib/elftoolchain/libelf/os.Linux.mk | 30 - contrib/elftoolchain/libelf/os.NetBSD.mk | 7 - contrib/elftoolchain/libelftc/Makefile | 60 - contrib/elftoolchain/libelftc/Version.map | 18 - contrib/elftoolchain/libelftc/_libelftc.h | 95 - contrib/elftoolchain/libelftc/elftc.3 | 83 - .../libelftc/elftc_bfd_find_target.3 | 203 - .../elftoolchain/libelftc/elftc_bfdtarget.c | 73 - .../elftoolchain/libelftc/elftc_copyfile.3 | 73 - .../elftoolchain/libelftc/elftc_copyfile.c | 113 - .../elftoolchain/libelftc/elftc_demangle.3 | 116 - .../elftoolchain/libelftc/elftc_demangle.c | 107 - .../libelftc/elftc_reloc_type_str.3 | 72 - .../libelftc/elftc_reloc_type_str.c | 844 - .../libelftc/elftc_set_timestamps.3 | 84 - .../libelftc/elftc_set_timestamps.c | 85 - .../libelftc/elftc_string_table.c | 393 - .../libelftc/elftc_string_table_create.3 | 226 - .../elftoolchain/libelftc/elftc_timestamp.3 | 79 - .../elftoolchain/libelftc/elftc_timestamp.c | 55 - contrib/elftoolchain/libelftc/elftc_version.3 | 81 - contrib/elftoolchain/libelftc/libelftc.h | 100 - .../libelftc/libelftc_bfdtarget.c | 488 - .../elftoolchain/libelftc/libelftc_dem_arm.c | 1217 -- .../elftoolchain/libelftc/libelftc_dem_gnu2.c | 1366 -- .../elftoolchain/libelftc/libelftc_dem_gnu3.c | 3992 ----- contrib/elftoolchain/libelftc/libelftc_hash.c | 70 - contrib/elftoolchain/libelftc/libelftc_vstr.c | 359 - .../libelftc/make-toolchain-version | 121 - contrib/elftoolchain/libelftc/os.FreeBSD.mk | 7 - contrib/elftoolchain/libelftc/os.Linux.mk | 3 - contrib/elftoolchain/libelftc/os.NetBSD.mk | 2 - contrib/elftoolchain/libpe/Makefile | 32 - contrib/elftoolchain/libpe/_libpe.h | 213 - contrib/elftoolchain/libpe/libpe.h | 121 - contrib/elftoolchain/libpe/libpe_buffer.c | 185 - contrib/elftoolchain/libpe/libpe_coff.c | 535 - contrib/elftoolchain/libpe/libpe_dos.c | 403 - contrib/elftoolchain/libpe/libpe_init.c | 145 - contrib/elftoolchain/libpe/libpe_rich.c | 128 - contrib/elftoolchain/libpe/libpe_section.c | 518 - contrib/elftoolchain/libpe/libpe_utils.c | 69 - contrib/elftoolchain/libpe/os.Linux.mk | 6 - contrib/elftoolchain/libpe/os.NetBSD.mk | 2 - contrib/elftoolchain/libpe/pe.h | 295 - contrib/elftoolchain/libpe/pe_buffer.c | 100 - contrib/elftoolchain/libpe/pe_cntl.c | 62 - contrib/elftoolchain/libpe/pe_coff.c | 157 - contrib/elftoolchain/libpe/pe_dos.c | 119 - contrib/elftoolchain/libpe/pe_flag.c | 187 - contrib/elftoolchain/libpe/pe_init.c | 95 - contrib/elftoolchain/libpe/pe_rich.c | 107 - contrib/elftoolchain/libpe/pe_section.c | 213 - contrib/elftoolchain/libpe/pe_symtab.c | 86 - contrib/elftoolchain/libpe/pe_update.c | 86 - .../mk/elftoolchain.components.mk | 50 - contrib/elftoolchain/mk/elftoolchain.inc.mk | 36 - contrib/elftoolchain/mk/elftoolchain.lib.mk | 71 - contrib/elftoolchain/mk/elftoolchain.m4.mk | 14 - contrib/elftoolchain/mk/elftoolchain.os.mk | 26 - contrib/elftoolchain/mk/elftoolchain.prog.mk | 129 - .../elftoolchain/mk/elftoolchain.subdir.mk | 17 - .../mk/elftoolchain.test-target.mk | 16 - contrib/elftoolchain/mk/elftoolchain.test.mk | 49 - contrib/elftoolchain/mk/elftoolchain.tet.mk | 67 - .../elftoolchain/mk/elftoolchain.tetbase.mk | 47 - .../elftoolchain/mk/elftoolchain.tetvars.mk | 22 - contrib/elftoolchain/mk/elftoolchain.tex.mk | 139 - contrib/elftoolchain/mk/os.Darwin.mk | 8 - contrib/elftoolchain/mk/os.DragonFly.mk | 9 - contrib/elftoolchain/mk/os.FreeBSD.mk | 28 - contrib/elftoolchain/mk/os.Linux.mk | 22 - contrib/elftoolchain/mk/os.Minix.mk | 16 - contrib/elftoolchain/mk/os.NetBSD.mk | 21 - contrib/elftoolchain/mk/os.OpenBSD.mk | 9 - contrib/elftoolchain/nm/Makefile | 13 - contrib/elftoolchain/nm/nm.1 | 340 - contrib/elftoolchain/nm/nm.c | 2119 --- contrib/elftoolchain/nm/os.NetBSD.mk | 2 - contrib/elftoolchain/readelf/Makefile | 15 - contrib/elftoolchain/readelf/os.NetBSD.mk | 2 - contrib/elftoolchain/readelf/readelf.1 | 199 - contrib/elftoolchain/readelf/readelf.c | 7636 --------- contrib/elftoolchain/size/Makefile | 11 - contrib/elftoolchain/size/os.NetBSD.mk | 2 - contrib/elftoolchain/size/size.1 | 257 - contrib/elftoolchain/size/size.c | 926 - contrib/elftoolchain/strings/Makefile | 11 - contrib/elftoolchain/strings/os.NetBSD.mk | 2 - contrib/elftoolchain/strings/strings.1 | 165 - contrib/elftoolchain/strings/strings.c | 448 - contrib/elftoolchain/test/Makefile | 28 - contrib/elftoolchain/test/ar/Makefile | 20 - contrib/elftoolchain/test/ar/README | 15 - contrib/elftoolchain/test/ar/func.sh | 219 - contrib/elftoolchain/test/ar/plugin/Makefile | 17 - .../test/ar/plugin/Makefile.ardiff | 18 - .../test/ar/plugin/Makefile.teraser | 11 - contrib/elftoolchain/test/ar/plugin/ardiff.c | 254 - .../elftoolchain/test/ar/plugin/os.FreeBSD.mk | 2 - contrib/elftoolchain/test/ar/plugin/teraser.c | 147 - contrib/elftoolchain/test/ar/run.sh | 35 - .../ar/tc/add-nonexistent/add-nonexistent.err | 1 - .../tc/add-nonexistent/add-nonexistent.eval | 1 - .../ar/tc/add-nonexistent/add-nonexistent.out | 0 .../ar/tc/add-nonexistent/add-nonexistent.sh | 4 - .../test/ar/tc/add-nonexistent/out/archive.a | 1 - .../test/ar/tc/addself-liba/addself-liba.err | 1 - .../test/ar/tc/addself-liba/addself-liba.eval | 1 - .../test/ar/tc/addself-liba/addself-liba.out | 0 .../test/ar/tc/addself-liba/addself-liba.sh | 8 - .../tc/addself-liba/in/addself-liba.in.shar | 98 - .../tc/addself-liba/out/addself-liba.out.shar | 98 - .../ar/tc/archive-liba-v/archive-liba-v.err | 0 .../ar/tc/archive-liba-v/archive-liba-v.eval | 1 - .../ar/tc/archive-liba-v/archive-liba-v.out | 4 - .../ar/tc/archive-liba-v/archive-liba-v.sh | 8 - .../archive-liba-v/in/archive-liba-v.in.shar | 111 - .../out/archive-liba-v.out.shar | 199 - .../test/ar/tc/archive-liba/archive-liba.err | 0 .../test/ar/tc/archive-liba/archive-liba.eval | 1 - .../test/ar/tc/archive-liba/archive-liba.out | 0 .../test/ar/tc/archive-liba/archive-liba.sh | 8 - .../tc/archive-liba/in/archive-liba.in.shar | 111 - .../tc/archive-liba/out/archive-liba.out.shar | 199 - .../ar/tc/archive-liblong/archive-liblong.err | 0 .../tc/archive-liblong/archive-liblong.eval | 1 - .../ar/tc/archive-liblong/archive-liblong.out | 4 - .../ar/tc/archive-liblong/archive-liblong.sh | 8 - .../in/archive-liblong.in.shar | 111 - .../out/archive-liblong.out.shar | 201 - .../tc/archive-libmix-v/archive-libmix-v.err | 0 .../tc/archive-libmix-v/archive-libmix-v.eval | 1 - .../tc/archive-libmix-v/archive-libmix-v.out | 4 - .../tc/archive-libmix-v/archive-libmix-v.sh | 8 - .../in/archive-libmix-v.in.shar | 77 - .../out/archive-libmix-v.out.shar | 133 - .../archive-libnonelf-v.err | 0 .../archive-libnonelf-v.eval | 1 - .../archive-libnonelf-v.out | 3 - .../archive-libnonelf-v.sh | 7 - .../in/archive-libnonelf-v.in.shar | 36 - .../out/archive-libnonelf-v.out.shar | 53 - .../test/ar/tc/arscript-1/arscript-1.err | 0 .../test/ar/tc/arscript-1/arscript-1.eval | 1 - .../test/ar/tc/arscript-1/arscript-1.out | 0 .../test/ar/tc/arscript-1/arscript-1.sh | 8 - .../ar/tc/arscript-1/in/arscript-1.in.shar | 492 - .../ar/tc/arscript-1/out/arscript-1.out.shar | 971 -- .../test/ar/tc/arscript-2/arscript-2.err | 0 .../test/ar/tc/arscript-2/arscript-2.eval | 1 - .../test/ar/tc/arscript-2/arscript-2.out | 0 .../test/ar/tc/arscript-2/arscript-2.sh | 8 - .../ar/tc/arscript-2/in/arscript-2.in.shar | 429 - .../ar/tc/arscript-2/out/arscript-2.out.shar | 825 - .../test/ar/tc/arscript-3/arscript-3.err | 0 .../test/ar/tc/arscript-3/arscript-3.eval | 1 - .../test/ar/tc/arscript-3/arscript-3.out | 0 .../test/ar/tc/arscript-3/arscript-3.sh | 8 - .../ar/tc/arscript-3/in/arscript-3.in.shar | 4013 ----- .../ar/tc/arscript-3/out/arscript-3.out.shar | 7940 --------- .../test/ar/tc/arscript-4/arscript-4.err | 0 .../test/ar/tc/arscript-4/arscript-4.eval | 1 - .../test/ar/tc/arscript-4/arscript-4.out | 10 - .../test/ar/tc/arscript-4/arscript-4.sh | 6 - .../ar/tc/arscript-4/in/arscript-4.in.shar | 123 - .../ar/tc/arscript-4/out/arscript-4.out.shar | 209 - .../test/ar/tc/arscript-5/arscript-5.err | 0 .../test/ar/tc/arscript-5/arscript-5.eval | 1 - .../test/ar/tc/arscript-5/arscript-5.out | 0 .../test/ar/tc/arscript-5/arscript-5.sh | 10 - .../ar/tc/arscript-5/in/arscript-5.in.shar | 121 - .../ar/tc/arscript-5/out/arscript-5.out.shar | 160 - .../test/ar/tc/arscript-6/arscript-6.err | 0 .../test/ar/tc/arscript-6/arscript-6.eval | 1 - .../test/ar/tc/arscript-6/arscript-6.out | 0 .../test/ar/tc/arscript-6/arscript-6.sh | 10 - .../ar/tc/arscript-6/in/arscript-6.in.shar | 211 - .../ar/tc/arscript-6/out/arscript-6.out.shar | 350 - .../test/ar/tc/arscript-7/arscript-7.err | 0 .../test/ar/tc/arscript-7/arscript-7.eval | 1 - .../test/ar/tc/arscript-7/arscript-7.out | 0 .../test/ar/tc/arscript-7/arscript-7.sh | 10 - .../ar/tc/arscript-7/in/arscript-7.in.shar | 215 - .../ar/tc/arscript-7/out/arscript-7.out.shar | 277 - .../test/ar/tc/arscript-8/arscript-8.err | 0 .../test/ar/tc/arscript-8/arscript-8.eval | 1 - .../test/ar/tc/arscript-8/arscript-8.out | 0 .../test/ar/tc/arscript-8/arscript-8.sh | 8 - .../ar/tc/arscript-8/in/arscript-8.in.shar | 248 - .../ar/tc/arscript-8/out/arscript-8.out.shar | 329 - .../bsd-archive-liba32/bsd-archive-liba32.err | 0 .../bsd-archive-liba32.eval | 1 - .../bsd-archive-liba32/bsd-archive-liba32.out | 0 .../bsd-archive-liba32/bsd-archive-liba32.sh | 10 - .../in/bsd-archive-liba32.in.shar | 114 - .../out/bsd-archive-liba32.out.shar | 203 - .../bsd-archive-liblong.err | 0 .../bsd-archive-liblong.eval | 1 - .../bsd-archive-liblong.out | 0 .../bsd-archive-liblong.sh | 8 - .../in/bsd-archive-liblong.in.shar | 46 - .../out/bsd-archive-liblong.out.shar | 62 - .../bsd-archive-libnonelf.err | 0 .../bsd-archive-libnonelf.eval | 1 - .../bsd-archive-libnonelf.out | 0 .../bsd-archive-libnonelf.sh | 8 - .../in/bsd-archive-libnonelf.in.shar | 46 - .../out/bsd-archive-libnonelf.out.shar | 61 - .../bsd-extract-liba32-v.err | 0 .../bsd-extract-liba32-v.eval | 1 - .../bsd-extract-liba32-v.out | 4 - .../bsd-extract-liba32-v.sh | 6 - .../in/bsd-extract-liba32-v.in.shar | 102 - .../out/bsd-extract-liba32-v.out.shar | 203 - .../bsd-extract-liblong-v.err | 0 .../bsd-extract-liblong-v.eval | 1 - .../bsd-extract-liblong-v.out | 4 - .../bsd-extract-liblong-v.sh | 6 - .../in/bsd-extract-liblong-v.in.shar | 29 - .../out/bsd-extract-liblong-v.out.shar | 62 - .../ar/tc/compbase-liba-v/compbase-liba-v.err | 0 .../tc/compbase-liba-v/compbase-liba-v.eval | 1 - .../ar/tc/compbase-liba-v/compbase-liba-v.out | 1 - .../ar/tc/compbase-liba-v/compbase-liba-v.sh | 8 - .../in/compbase-liba-v.in.shar | 98 - .../out/compbase-liba-v.out.shar | 98 - .../compbase_read-liba/compbase_read-liba.err | 0 .../compbase_read-liba.eval | 1 - .../compbase_read-liba/compbase_read-liba.out | 1 - .../compbase_read-liba/compbase_read-liba.sh | 6 - .../in/compbase_read-liba.in.shar | 98 - .../out/compbase_read-liba.out.shar | 98 - .../ar/tc/delete-liba-v/delete-liba-v.err | 0 .../ar/tc/delete-liba-v/delete-liba-v.eval | 1 - .../ar/tc/delete-liba-v/delete-liba-v.out | 2 - .../test/ar/tc/delete-liba-v/delete-liba-v.sh | 8 - .../tc/delete-liba-v/in/delete-liba-v.in.shar | 98 - .../delete-liba-v/out/delete-liba-v.out.shar | 61 - .../ar/tc/delete-liblong/delete-liblong.err | 0 .../ar/tc/delete-liblong/delete-liblong.eval | 1 - .../ar/tc/delete-liblong/delete-liblong.out | 0 .../ar/tc/delete-liblong/delete-liblong.sh | 8 - .../delete-liblong/in/delete-liblong.in.shar | 100 - .../out/delete-liblong.out.shar | 58 - .../ar/tc/delete-libmix-v/delete-libmix-v.err | 0 .../tc/delete-libmix-v/delete-libmix-v.eval | 1 - .../ar/tc/delete-libmix-v/delete-libmix-v.out | 1 - .../ar/tc/delete-libmix-v/delete-libmix-v.sh | 8 - .../in/delete-libmix-v.in.shar | 66 - .../out/delete-libmix-v.out.shar | 64 - .../delete_all-liba-v/delete_all-liba-v.err | 0 .../delete_all-liba-v/delete_all-liba-v.eval | 1 - .../delete_all-liba-v/delete_all-liba-v.out | 4 - .../tc/delete_all-liba-v/delete_all-liba-v.sh | 6 - .../in/delete_all-liba-v.in.shar | 98 - .../out/delete_all-liba-v.out.shar | 18 - .../ar/tc/extract-liba-v/extract-liba-v.err | 0 .../ar/tc/extract-liba-v/extract-liba-v.eval | 1 - .../ar/tc/extract-liba-v/extract-liba-v.out | 4 - .../ar/tc/extract-liba-v/extract-liba-v.sh | 6 - .../extract-liba-v/in/extract-liba-v.in.shar | 98 - .../out/extract-liba-v.out.shar | 199 - .../test/ar/tc/extract-liba/extract-liba.err | 0 .../test/ar/tc/extract-liba/extract-liba.eval | 1 - .../test/ar/tc/extract-liba/extract-liba.out | 0 .../test/ar/tc/extract-liba/extract-liba.sh | 6 - .../tc/extract-liba/in/extract-liba.in.shar | 98 - .../tc/extract-liba/out/extract-liba.out.shar | 199 - .../ar/tc/extract-liblong/extract-liblong.err | 0 .../tc/extract-liblong/extract-liblong.eval | 1 - .../ar/tc/extract-liblong/extract-liblong.out | 0 .../ar/tc/extract-liblong/extract-liblong.sh | 6 - .../in/extract-liblong.in.shar | 100 - .../out/extract-liblong.out.shar | 201 - .../tc/extract-libmix-v/extract-libmix-v.err | 0 .../tc/extract-libmix-v/extract-libmix-v.eval | 1 - .../tc/extract-libmix-v/extract-libmix-v.out | 4 - .../tc/extract-libmix-v/extract-libmix-v.sh | 6 - .../in/extract-libmix-v.in.shar | 66 - .../out/extract-libmix-v.out.shar | 133 - .../extract-libnonelf-v.err | 0 .../extract-libnonelf-v.eval | 1 - .../extract-libnonelf-v.out | 3 - .../extract-libnonelf-v.sh | 6 - .../in/extract-libnonelf-v.in.shar | 27 - .../out/extract-libnonelf-v.out.shar | 53 - .../extract-nonexistent.err | 1 - .../extract-nonexistent.eval | 1 - .../extract-nonexistent.out | 0 .../extract-nonexistent.sh | 6 - .../ar/tc/extract-nonexistent/in/valid.shar | 55 - .../ar/tc/extract-nonexistent/out/valid.shar | 55 - .../ar/tc/extract-nonleaf/extract-nonleaf.err | 1 - .../tc/extract-nonleaf/extract-nonleaf.eval | 1 - .../ar/tc/extract-nonleaf/extract-nonleaf.out | 1 - .../ar/tc/extract-nonleaf/extract-nonleaf.sh | 6 - .../ar/tc/extract-nonleaf/in/invalid.shar | 54 - .../ar/tc/extract-nonleaf/out/invalid.shar | 54 - .../test/ar/tc/extract-nonleaf/out/s1 | 1 - .../tc/list-lib65536/in/list-lib65536.in.shar | 2669 --- .../ar/tc/list-lib65536/list-lib65536.err | 0 .../ar/tc/list-lib65536/list-lib65536.eval | 1 - .../ar/tc/list-lib65536/list-lib65536.out | 746 - .../test/ar/tc/list-lib65536/list-lib65536.sh | 6 - .../list-lib65536/out/list-lib65536.out.shar | 2669 --- .../tc/list-liblong/in/list-liblong.in.shar | 100 - .../test/ar/tc/list-liblong/list-liblong.err | 0 .../test/ar/tc/list-liblong/list-liblong.eval | 1 - .../test/ar/tc/list-liblong/list-liblong.out | 4 - .../test/ar/tc/list-liblong/list-liblong.sh | 6 - .../tc/list-liblong/out/list-liblong.out.shar | 100 - .../tc/list_s-libaS/in/list_s-libaS.in.shar | 94 - .../test/ar/tc/list_s-libaS/list_s-libaS.err | 0 .../test/ar/tc/list_s-libaS/list_s-libaS.eval | 1 - .../test/ar/tc/list_s-libaS/list_s-libaS.out | 4 - .../test/ar/tc/list_s-libaS/list_s-libaS.sh | 8 - .../tc/list_s-libaS/out/list_s-libaS.out.shar | 98 - .../in/moveafter-liba-v.in.shar | 98 - .../tc/moveafter-liba-v/moveafter-liba-v.err | 0 .../tc/moveafter-liba-v/moveafter-liba-v.eval | 1 - .../tc/moveafter-liba-v/moveafter-liba-v.out | 2 - .../tc/moveafter-liba-v/moveafter-liba-v.sh | 8 - .../out/moveafter-liba-v.out.shar | 98 - .../in/moveafter-libmix-v.in.shar | 66 - .../moveafter-libmix-v/moveafter-libmix-v.err | 0 .../moveafter-libmix-v.eval | 1 - .../moveafter-libmix-v/moveafter-libmix-v.out | 1 - .../moveafter-libmix-v/moveafter-libmix-v.sh | 8 - .../out/moveafter-libmix-v.out.shar | 66 - .../in/moveafter_movepos-liba-v.in.shar | 98 - .../moveafter_movepos-liba-v.err | 0 .../moveafter_movepos-liba-v.eval | 1 - .../moveafter_movepos-liba-v.out | 1 - .../moveafter_movepos-liba-v.sh | 8 - .../out/moveafter_movepos-liba-v.out.shar | 98 - .../in/movebefore-liba-v.in.shar | 98 - .../movebefore-liba-v/movebefore-liba-v.err | 0 .../movebefore-liba-v/movebefore-liba-v.eval | 1 - .../movebefore-liba-v/movebefore-liba-v.out | 2 - .../tc/movebefore-liba-v/movebefore-liba-v.sh | 8 - .../out/movebefore-liba-v.out.shar | 98 - .../in/movebefore-libmix.in.shar | 66 - .../movebefore-libmix/movebefore-libmix.err | 0 .../movebefore-libmix/movebefore-libmix.eval | 1 - .../movebefore-libmix/movebefore-libmix.out | 0 .../tc/movebefore-libmix/movebefore-libmix.sh | 8 - .../out/movebefore-libmix.out.shar | 66 - .../in/movebefore_movepos-liba-v.in.shar | 98 - .../movebefore_movepos-liba-v.err | 0 .../movebefore_movepos-liba-v.eval | 1 - .../movebefore_movepos-liba-v.out | 3 - .../movebefore_movepos-liba-v.sh | 8 - .../out/movebefore_movepos-liba-v.out.shar | 98 - .../in/movetail-libmix.in.shar | 66 - .../ar/tc/movetail-libmix/movetail-libmix.err | 0 .../tc/movetail-libmix/movetail-libmix.eval | 1 - .../ar/tc/movetail-libmix/movetail-libmix.out | 0 .../ar/tc/movetail-libmix/movetail-libmix.sh | 8 - .../out/movetail-libmix.out.shar | 66 - .../tc/optionl-liba/in/optionl-liba.in.shar | 111 - .../test/ar/tc/optionl-liba/optionl-liba.err | 0 .../test/ar/tc/optionl-liba/optionl-liba.eval | 1 - .../test/ar/tc/optionl-liba/optionl-liba.out | 0 .../test/ar/tc/optionl-liba/optionl-liba.sh | 8 - .../tc/optionl-liba/out/optionl-liba.out.shar | 199 - .../in/print-liblong-v.in.shar | 100 - .../out/print-liblong-v.out.shar | 100 - .../ar/tc/print-liblong-v/print-liblong-v.err | 0 .../tc/print-liblong-v/print-liblong-v.eval | 1 - .../ar/tc/print-liblong-v/print-liblong-v.out | Bin 3287 -> 0 bytes .../ar/tc/print-liblong-v/print-liblong-v.sh | 6 - .../tc/print-liblong/in/print-liblong.in.shar | 100 - .../print-liblong/out/print-liblong.out.shar | 100 - .../ar/tc/print-liblong/print-liblong.err | 0 .../ar/tc/print-liblong/print-liblong.eval | 1 - .../ar/tc/print-liblong/print-liblong.out | Bin 3200 -> 0 bytes .../test/ar/tc/print-liblong/print-liblong.sh | 6 - .../print-libmix-v/in/print-libmix-v.in.shar | 66 - .../out/print-libmix-v.out.shar | 66 - .../ar/tc/print-libmix-v/print-libmix-v.err | 0 .../ar/tc/print-libmix-v/print-libmix-v.eval | 1 - .../ar/tc/print-libmix-v/print-libmix-v.out | Bin 1798 -> 0 bytes .../ar/tc/print-libmix-v/print-libmix-v.sh | 6 - .../tc/print-libmix/in/print-libmix.in.shar | 66 - .../tc/print-libmix/out/print-libmix.out.shar | 66 - .../test/ar/tc/print-libmix/print-libmix.err | 0 .../test/ar/tc/print-libmix/print-libmix.eval | 1 - .../test/ar/tc/print-libmix/print-libmix.out | Bin 1691 -> 0 bytes .../test/ar/tc/print-libmix/print-libmix.sh | 6 - .../in/quickadd-liba-v.in.shar | 111 - .../out/quickadd-liba-v.out.shar | 199 - .../ar/tc/quickadd-liba-v/quickadd-liba-v.err | 0 .../tc/quickadd-liba-v/quickadd-liba-v.eval | 1 - .../ar/tc/quickadd-liba-v/quickadd-liba-v.out | 4 - .../ar/tc/quickadd-liba-v/quickadd-liba-v.sh | 8 - .../ranlib-missing-archive.err | 1 - .../ranlib-missing-archive.eval | 1 - .../ranlib-missing-archive.out | 0 .../ranlib-missing-archive.sh | 7 - .../in/undefined-libsbrk.in.shar | 47 - .../out/undefined-libsbrk.out.shar | 88 - .../undefined-libsbrk/undefined-libsbrk.err | 0 .../undefined-libsbrk/undefined-libsbrk.eval | 1 - .../undefined-libsbrk/undefined-libsbrk.out | 0 .../tc/undefined-libsbrk/undefined-libsbrk.sh | 8 - .../test/ar/tc/usage-ab/usage-ab.err | 1 - .../test/ar/tc/usage-ab/usage-ab.eval | 1 - .../test/ar/tc/usage-ab/usage-ab.out | 0 .../test/ar/tc/usage-ab/usage-ab.sh | 4 - .../test/ar/tc/usage-bi/usage-bi.err | 33 - .../test/ar/tc/usage-bi/usage-bi.eval | 1 - .../test/ar/tc/usage-bi/usage-bi.out | 0 .../test/ar/tc/usage-bi/usage-bi.sh | 4 - .../test/ar/tc/usage-tx/usage-tx.err | 1 - .../test/ar/tc/usage-tx/usage-tx.eval | 1 - .../test/ar/tc/usage-tx/usage-tx.out | 0 .../test/ar/tc/usage-tx/usage-tx.sh | 4 - .../in/weaksymbol-libweak.in.shar | 40 - .../out/weaksymbol-libweak.out.shar | 74 - .../weaksymbol-libweak/weaksymbol-libweak.err | 0 .../weaksymbol-libweak.eval | 1 - .../weaksymbol-libweak/weaksymbol-libweak.out | 0 .../weaksymbol-libweak/weaksymbol-libweak.sh | 8 - contrib/elftoolchain/test/ar/tcgen.sh | 182 - contrib/elftoolchain/test/cxxfilt/Makefile | 6 - contrib/elftoolchain/test/cxxfilt/tet_scen | 41 - contrib/elftoolchain/test/cxxfilt/tetexec.cfg | 5 - contrib/elftoolchain/test/cxxfilt/ts/Makefile | 12 - .../test/cxxfilt/ts/builtin/Makefile | 5 - .../test/cxxfilt/ts/builtin/tclist | 48 - .../test/cxxfilt/ts/common/func.sh | 49 - .../test/cxxfilt/ts/common/gen.awk | 33 - .../elftoolchain/test/cxxfilt/ts/common/ts.mk | 15 - .../test/cxxfilt/ts/misc/Makefile | 5 - .../elftoolchain/test/cxxfilt/ts/misc/tclist | 51 - .../test/cxxfilt/ts/qualifiers/Makefile | 5 - .../test/cxxfilt/ts/qualifiers/tclist | 36 - .../test/cxxfilt/ts/regression/Makefile | 5 - .../test/cxxfilt/ts/regression/tclist | 34 - .../test/cxxfilt/ts/substitute/Makefile | 5 - .../test/cxxfilt/ts/substitute/tclist | 56 - .../test/cxxfilt/ts/template/Makefile | 5 - .../test/cxxfilt/ts/template/tclist | 10 - contrib/elftoolchain/test/elfcopy/Makefile | 21 - contrib/elftoolchain/test/elfcopy/func.sh | 210 - .../elftoolchain/test/elfcopy/plugin/Makefile | 17 - .../test/elfcopy/plugin/Makefile.ardiff | 18 - .../test/elfcopy/plugin/Makefile.teraser | 11 - .../elftoolchain/test/elfcopy/plugin/ardiff.c | 254 - .../test/elfcopy/plugin/os.FreeBSD.mk | 2 - .../test/elfcopy/plugin/teraser.c | 147 - contrib/elftoolchain/test/elfcopy/run.sh | 37 - .../elfcopy/tc/elfcopy-L-1/elfcopy-L-1.err | 0 .../elfcopy/tc/elfcopy-L-1/elfcopy-L-1.eval | 1 - .../elfcopy/tc/elfcopy-L-1/elfcopy-L-1.out | 0 .../elfcopy/tc/elfcopy-L-1/elfcopy-L-1.sh | 6 - .../tc/elfcopy-L-1/in/elfcopy-L-1.in.shar | 34 - .../tc/elfcopy-L-1/out/elfcopy-L-1.out.shar | 58 - .../elfcopy/tc/elfcopy-L-2/elfcopy-L-2.err | 0 .../elfcopy/tc/elfcopy-L-2/elfcopy-L-2.eval | 1 - .../elfcopy/tc/elfcopy-L-2/elfcopy-L-2.out | 0 .../elfcopy/tc/elfcopy-L-2/elfcopy-L-2.sh | 6 - .../tc/elfcopy-L-2/in/elfcopy-L-2.in.shar | 170 - .../tc/elfcopy-L-2/out/elfcopy-L-2.out.shar | 330 - .../elfcopy/tc/elfcopy-N-1/elfcopy-N-1.err | 0 .../elfcopy/tc/elfcopy-N-1/elfcopy-N-1.eval | 1 - .../elfcopy/tc/elfcopy-N-1/elfcopy-N-1.out | 0 .../elfcopy/tc/elfcopy-N-1/elfcopy-N-1.sh | 6 - .../tc/elfcopy-N-1/in/elfcopy-N-1.in.shar | 34 - .../tc/elfcopy-N-1/out/elfcopy-N-1.out.shar | 57 - .../elfcopy/tc/elfcopy-N-2/elfcopy-N-2.err | 0 .../elfcopy/tc/elfcopy-N-2/elfcopy-N-2.eval | 1 - .../elfcopy/tc/elfcopy-N-2/elfcopy-N-2.out | 0 .../elfcopy/tc/elfcopy-N-2/elfcopy-N-2.sh | 6 - .../tc/elfcopy-N-2/in/elfcopy-N-2.in.shar | 34 - .../tc/elfcopy-N-2/out/elfcopy-N-2.out.shar | 57 - .../tc/elfcopy-noops-1/elfcopy-noops-1.err | 0 .../tc/elfcopy-noops-1/elfcopy-noops-1.eval | 1 - .../tc/elfcopy-noops-1/elfcopy-noops-1.out | 0 .../tc/elfcopy-noops-1/elfcopy-noops-1.sh | 6 - .../in/elfcopy-noops-1.in.shar | 398 - .../out/elfcopy-noops-1.out.shar | 786 - .../tc/elfcopy-noops-2/elfcopy-noops-2.err | 0 .../tc/elfcopy-noops-2/elfcopy-noops-2.eval | 1 - .../tc/elfcopy-noops-2/elfcopy-noops-2.out | 0 .../tc/elfcopy-noops-2/elfcopy-noops-2.sh | 6 - .../in/elfcopy-noops-2.in.shar | 578 - .../out/elfcopy-noops-2.out.shar | 1146 -- .../tc/elfcopy-noops-3/elfcopy-noops-3.err | 0 .../tc/elfcopy-noops-3/elfcopy-noops-3.eval | 1 - .../tc/elfcopy-noops-3/elfcopy-noops-3.out | 0 .../tc/elfcopy-noops-3/elfcopy-noops-3.sh | 6 - .../in/elfcopy-noops-3.in.shar | 723 - .../out/elfcopy-noops-3.out.shar | 1437 -- .../tc/elfcopy-noops-4/elfcopy-noops-4.err | 0 .../tc/elfcopy-noops-4/elfcopy-noops-4.eval | 1 - .../tc/elfcopy-noops-4/elfcopy-noops-4.out | 0 .../tc/elfcopy-noops-4/elfcopy-noops-4.sh | 6 - .../in/elfcopy-noops-4.in.shar | 6817 -------- .../out/elfcopy-noops-4.out.shar | 13624 --------------- .../tc/elfcopy-noops-5/elfcopy-noops-5.err | 0 .../tc/elfcopy-noops-5/elfcopy-noops-5.eval | 1 - .../tc/elfcopy-noops-5/elfcopy-noops-5.out | 0 .../tc/elfcopy-noops-5/elfcopy-noops-5.sh | 6 - .../in/elfcopy-noops-5.in.shar | 7116 -------- .../out/elfcopy-noops-5.out.shar | 14222 ---------------- .../tc/elfcopy-noops-6/elfcopy-noops-6.err | 0 .../tc/elfcopy-noops-6/elfcopy-noops-6.eval | 1 - .../tc/elfcopy-noops-6/elfcopy-noops-6.out | 0 .../tc/elfcopy-noops-6/elfcopy-noops-6.sh | 6 - .../in/elfcopy-noops-6.in.shar | 107 - .../out/elfcopy-noops-6.out.shar | 204 - .../tc/elfcopy-noops-7/elfcopy-noops-7.err | 0 .../tc/elfcopy-noops-7/elfcopy-noops-7.eval | 1 - .../tc/elfcopy-noops-7/elfcopy-noops-7.out | 0 .../tc/elfcopy-noops-7/elfcopy-noops-7.sh | 6 - .../in/elfcopy-noops-7.in.shar | 708 - .../out/elfcopy-noops-7.out.shar | 1408 -- .../elfcopy-noops-archive-1.err | 0 .../elfcopy-noops-archive-1.eval | 1 - .../elfcopy-noops-archive-1.out | 0 .../elfcopy-noops-archive-1.sh | 8 - .../in/elfcopy-noops-archive-1.in.shar | 98 - .../out/elfcopy-noops-archive-1.out.shar | 186 - .../elfcopy-noops-archive-2.err | 0 .../elfcopy-noops-archive-2.eval | 1 - .../elfcopy-noops-archive-2.out | 0 .../elfcopy-noops-archive-2.sh | 8 - .../in/elfcopy-noops-archive-2.in.shar | 100 - .../out/elfcopy-noops-archive-2.out.shar | 191 - .../tc/elfcopy-rename-1/elfcopy-rename-1.err | 0 .../tc/elfcopy-rename-1/elfcopy-rename-1.eval | 1 - .../tc/elfcopy-rename-1/elfcopy-rename-1.out | 0 .../tc/elfcopy-rename-1/elfcopy-rename-1.sh | 6 - .../in/elfcopy-rename-1.in.shar | 34 - .../out/elfcopy-rename-1.out.shar | 34 - .../elfcopy-to-ihex-1/elfcopy-to-ihex-1.err | 0 .../elfcopy-to-ihex-1/elfcopy-to-ihex-1.eval | 1 - .../elfcopy-to-ihex-1/elfcopy-to-ihex-1.out | 0 .../tc/elfcopy-to-ihex-1/elfcopy-to-ihex-1.sh | 6 - .../in/elfcopy-to-ihex-1.in.shar | 169 - .../out/elfcopy-to-ihex-1.out.shar | 299 - .../elfcopy-to-srec-1/elfcopy-to-srec-1.err | 0 .../elfcopy-to-srec-1/elfcopy-to-srec-1.eval | 1 - .../elfcopy-to-srec-1/elfcopy-to-srec-1.out | 0 .../tc/elfcopy-to-srec-1/elfcopy-to-srec-1.sh | 6 - .../in/elfcopy-to-srec-1.in.shar | 169 - .../out/elfcopy-to-srec-1.out.shar | 301 - .../elfcopy-to-srec-2/elfcopy-to-srec-2.err | 0 .../elfcopy-to-srec-2/elfcopy-to-srec-2.eval | 1 - .../elfcopy-to-srec-2/elfcopy-to-srec-2.out | 0 .../tc/elfcopy-to-srec-2/elfcopy-to-srec-2.sh | 6 - .../in/elfcopy-to-srec-2.in.shar | 169 - .../out/elfcopy-to-srec-2.out.shar | 306 - .../elfcopy-to-srec-3/elfcopy-to-srec-3.err | 0 .../elfcopy-to-srec-3/elfcopy-to-srec-3.eval | 1 - .../elfcopy-to-srec-3/elfcopy-to-srec-3.out | 0 .../tc/elfcopy-to-srec-3/elfcopy-to-srec-3.sh | 6 - .../in/elfcopy-to-srec-3.in.shar | 169 - .../out/elfcopy-to-srec-3.out.shar | 279 - .../elfcopy-to-symbolsrec-1.err | 0 .../elfcopy-to-symbolsrec-1.eval | 1 - .../elfcopy-to-symbolsrec-1.out | 0 .../elfcopy-to-symbolsrec-1.sh | 6 - .../in/elfcopy-to-symbolsrec-1.in.shar | 169 - .../out/elfcopy-to-symbolsrec-1.out.shar | 317 - .../elfcopy/tc/strip-K-1/in/strip-K-1.in.shar | 34 - .../tc/strip-K-1/out/strip-K-1.out.shar | 51 - .../test/elfcopy/tc/strip-K-1/strip-K-1.err | 0 .../test/elfcopy/tc/strip-K-1/strip-K-1.eval | 1 - .../test/elfcopy/tc/strip-K-1/strip-K-1.out | 0 .../test/elfcopy/tc/strip-K-1/strip-K-1.sh | 6 - .../elfcopy/tc/strip-K-2/in/strip-K-2.in.shar | 34 - .../tc/strip-K-2/out/strip-K-2.out.shar | 56 - .../test/elfcopy/tc/strip-K-2/strip-K-2.err | 0 .../test/elfcopy/tc/strip-K-2/strip-K-2.eval | 1 - .../test/elfcopy/tc/strip-K-2/strip-K-2.out | 0 .../test/elfcopy/tc/strip-K-2/strip-K-2.sh | 6 - .../tc/strip-all-1/in/strip-all-1.in.shar | 578 - .../tc/strip-all-1/out/strip-all-1.out.shar | 578 - .../elfcopy/tc/strip-all-1/strip-all-1.err | 0 .../elfcopy/tc/strip-all-1/strip-all-1.eval | 1 - .../elfcopy/tc/strip-all-1/strip-all-1.out | 0 .../elfcopy/tc/strip-all-1/strip-all-1.sh | 6 - .../tc/strip-all-10/in/strip-all-10.in.shar | 3069 ---- .../tc/strip-all-10/out/strip-all-10.out.shar | 5623 ------ .../elfcopy/tc/strip-all-10/strip-all-10.err | 0 .../elfcopy/tc/strip-all-10/strip-all-10.eval | 1 - .../elfcopy/tc/strip-all-10/strip-all-10.out | 0 .../elfcopy/tc/strip-all-10/strip-all-10.sh | 6 - .../tc/strip-all-2/in/strip-all-2.in.shar | 723 - .../tc/strip-all-2/out/strip-all-2.out.shar | 724 - .../elfcopy/tc/strip-all-2/strip-all-2.err | 0 .../elfcopy/tc/strip-all-2/strip-all-2.eval | 1 - .../elfcopy/tc/strip-all-2/strip-all-2.out | 0 .../elfcopy/tc/strip-all-2/strip-all-2.sh | 6 - .../tc/strip-all-3/in/strip-all-3.in.shar | 7116 -------- .../tc/strip-all-3/out/strip-all-3.out.shar | 7116 -------- .../elfcopy/tc/strip-all-3/strip-all-3.err | 0 .../elfcopy/tc/strip-all-3/strip-all-3.eval | 1 - .../elfcopy/tc/strip-all-3/strip-all-3.out | 0 .../elfcopy/tc/strip-all-3/strip-all-3.sh | 6 - .../tc/strip-all-4/in/strip-all-4.in.shar | 6817 -------- .../tc/strip-all-4/out/strip-all-4.out.shar | 6817 -------- .../elfcopy/tc/strip-all-4/strip-all-4.err | 0 .../elfcopy/tc/strip-all-4/strip-all-4.eval | 1 - .../elfcopy/tc/strip-all-4/strip-all-4.out | 0 .../elfcopy/tc/strip-all-4/strip-all-4.sh | 6 - .../tc/strip-all-5/in/strip-all-5.in.shar | 398 - .../tc/strip-all-5/out/strip-all-5.out.shar | 307 - .../elfcopy/tc/strip-all-5/strip-all-5.err | 0 .../elfcopy/tc/strip-all-5/strip-all-5.eval | 1 - .../elfcopy/tc/strip-all-5/strip-all-5.out | 0 .../elfcopy/tc/strip-all-5/strip-all-5.sh | 6 - .../tc/strip-all-6/in/strip-all-6.in.shar | 107 - .../tc/strip-all-6/out/strip-all-6.out.shar | 175 - .../elfcopy/tc/strip-all-6/strip-all-6.err | 0 .../elfcopy/tc/strip-all-6/strip-all-6.eval | 1 - .../elfcopy/tc/strip-all-6/strip-all-6.out | 0 .../elfcopy/tc/strip-all-6/strip-all-6.sh | 6 - .../tc/strip-all-7/in/strip-all-7.in.shar | 262 - .../tc/strip-all-7/out/strip-all-7.out.shar | 439 - .../elfcopy/tc/strip-all-7/strip-all-7.err | 0 .../elfcopy/tc/strip-all-7/strip-all-7.eval | 1 - .../elfcopy/tc/strip-all-7/strip-all-7.out | 0 .../elfcopy/tc/strip-all-7/strip-all-7.sh | 6 - .../tc/strip-all-8/in/strip-all-8.in.shar | 708 - .../tc/strip-all-8/out/strip-all-8.out.shar | 885 - .../elfcopy/tc/strip-all-8/strip-all-8.err | 0 .../elfcopy/tc/strip-all-8/strip-all-8.eval | 1 - .../elfcopy/tc/strip-all-8/strip-all-8.out | 0 .../elfcopy/tc/strip-all-8/strip-all-8.sh | 6 - .../tc/strip-all-9/in/strip-all-9.in.shar | 2302 --- .../tc/strip-all-9/out/strip-all-9.out.shar | 3083 ---- .../elfcopy/tc/strip-all-9/strip-all-9.err | 0 .../elfcopy/tc/strip-all-9/strip-all-9.eval | 1 - .../elfcopy/tc/strip-all-9/strip-all-9.out | 0 .../elfcopy/tc/strip-all-9/strip-all-9.sh | 6 - .../in/strip-all-archive-1.in.shar | 98 - .../out/strip-all-archive-1.out.shar | 158 - .../strip-all-archive-1.err | 0 .../strip-all-archive-1.eval | 1 - .../strip-all-archive-1.out | 0 .../strip-all-archive-1.sh | 8 - .../in/strip-all-archive-2.in.shar | 100 - .../out/strip-all-archive-2.out.shar | 162 - .../strip-all-archive-2.err | 0 .../strip-all-archive-2.eval | 1 - .../strip-all-archive-2.out | 0 .../strip-all-archive-2.sh | 8 - .../tc/strip-debug-1/in/strip-debug-1.in.shar | 1129 -- .../strip-debug-1/out/strip-debug-1.out.shar | 1503 -- .../tc/strip-debug-1/strip-debug-1.err | 0 .../tc/strip-debug-1/strip-debug-1.eval | 1 - .../tc/strip-debug-1/strip-debug-1.out | 0 .../elfcopy/tc/strip-debug-1/strip-debug-1.sh | 6 - .../tc/strip-debug-2/in/strip-debug-2.in.shar | 913 - .../strip-debug-2/out/strip-debug-2.out.shar | 1207 -- .../tc/strip-debug-2/strip-debug-2.err | 0 .../tc/strip-debug-2/strip-debug-2.eval | 1 - .../tc/strip-debug-2/strip-debug-2.out | 0 .../elfcopy/tc/strip-debug-2/strip-debug-2.sh | 6 - .../tc/strip-debug-3/in/strip-debug-3.in.shar | 676 - .../strip-debug-3/out/strip-debug-3.out.shar | 1342 -- .../tc/strip-debug-3/strip-debug-3.err | 0 .../tc/strip-debug-3/strip-debug-3.eval | 1 - .../tc/strip-debug-3/strip-debug-3.out | 0 .../elfcopy/tc/strip-debug-3/strip-debug-3.sh | 6 - .../tc/strip-debug-4/in/strip-debug-4.in.shar | 2302 --- .../strip-debug-4/out/strip-debug-4.out.shar | 3223 ---- .../tc/strip-debug-4/strip-debug-4.err | 0 .../tc/strip-debug-4/strip-debug-4.eval | 1 - .../tc/strip-debug-4/strip-debug-4.out | 0 .../elfcopy/tc/strip-debug-4/strip-debug-4.sh | 6 - .../tc/strip-empty-1/in/strip-empty-1.in.shar | 32 - .../strip-empty-1/out/strip-empty-1.out.shar | 22 - .../tc/strip-empty-1/strip-empty-1.err | 0 .../tc/strip-empty-1/strip-empty-1.eval | 1 - .../tc/strip-empty-1/strip-empty-1.out | 0 .../elfcopy/tc/strip-empty-1/strip-empty-1.sh | 6 - .../in/strip-onlydebug-1.in.shar | 1129 -- .../out/strip-onlydebug-1.out.shar | 2084 --- .../strip-onlydebug-1/strip-onlydebug-1.err | 0 .../strip-onlydebug-1/strip-onlydebug-1.eval | 1 - .../strip-onlydebug-1/strip-onlydebug-1.out | 0 .../tc/strip-onlydebug-1/strip-onlydebug-1.sh | 6 - .../in/strip-unneeded-1.in.shar | 1129 -- .../out/strip-unneeded-1.out.shar | 1498 -- .../tc/strip-unneeded-1/strip-unneeded-1.err | 0 .../tc/strip-unneeded-1/strip-unneeded-1.eval | 1 - .../tc/strip-unneeded-1/strip-unneeded-1.out | 0 .../tc/strip-unneeded-1/strip-unneeded-1.sh | 6 - .../in/strip-unneeded-2.in.shar | 2302 --- .../out/strip-unneeded-2.out.shar | 3083 ---- .../tc/strip-unneeded-2/strip-unneeded-2.err | 0 .../tc/strip-unneeded-2/strip-unneeded-2.eval | 1 - .../tc/strip-unneeded-2/strip-unneeded-2.out | 0 .../tc/strip-unneeded-2/strip-unneeded-2.sh | 6 - contrib/elftoolchain/test/elfcopy/tcgen.sh | 173 - contrib/elftoolchain/test/elfdump/Makefile | 5 - contrib/elftoolchain/test/elfdump/tet_scen | 41 - contrib/elftoolchain/test/elfdump/tetexec.cfg | 5 - .../test/elfdump/ts/archive1/@G%liba.a.err | 0 .../test/elfdump/ts/archive1/@G%liba.a.out | 8 - .../test/elfdump/ts/archive1/@S@G%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@G%liba.a.out | 8 - .../test/elfdump/ts/archive1/@S@c%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@c%liba.a.out | 246 - .../test/elfdump/ts/archive1/@S@d%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@d%liba.a.out | 8 - .../test/elfdump/ts/archive1/@S@e%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@e%liba.a.out | 48 - .../test/elfdump/ts/archive1/@S@h%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@h%liba.a.out | 8 - .../test/elfdump/ts/archive1/@S@k%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@k%liba.a.out | 16 - .../test/elfdump/ts/archive1/@S@n%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@n%liba.a.out | 8 - .../test/elfdump/ts/archive1/@S@p%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@p%liba.a.out | 8 - .../test/elfdump/ts/archive1/@S@r%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@r%liba.a.out | 33 - .../test/elfdump/ts/archive1/@S@s%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@s%liba.a.out | 71 - .../ts/archive1/@S@s@N%.symtab%liba.a.err | 0 .../ts/archive1/@S@s@N%.symtab%liba.a.out | 58 - .../ts/archive1/@S@s@N%ARSYM%liba.a.err | 0 .../ts/archive1/@S@s@N%ARSYM%liba.a.out | 13 - .../test/elfdump/ts/archive1/@S@v%liba.a.err | 0 .../test/elfdump/ts/archive1/@S@v%liba.a.out | 8 - .../test/elfdump/ts/archive1/@c%liba.a.err | 0 .../test/elfdump/ts/archive1/@c%liba.a.out | 472 - .../elfdump/ts/archive1/@c@p@n%liba.a.err | 0 .../elfdump/ts/archive1/@c@p@n%liba.a.out | 472 - .../test/elfdump/ts/archive1/@c@s%liba.a.err | 0 .../test/elfdump/ts/archive1/@c@s%liba.a.out | 798 - .../test/elfdump/ts/archive1/@d%liba.a.err | 0 .../test/elfdump/ts/archive1/@d%liba.a.out | 8 - .../test/elfdump/ts/archive1/@e%liba.a.err | 0 .../test/elfdump/ts/archive1/@e%liba.a.out | 76 - .../test/elfdump/ts/archive1/@e@i%liba.a.err | 0 .../test/elfdump/ts/archive1/@e@i%liba.a.out | 76 - .../elfdump/ts/archive1/@e@p@c%liba.a.err | 0 .../elfdump/ts/archive1/@e@p@c%liba.a.out | 540 - .../test/elfdump/ts/archive1/@h%liba.a.err | 0 .../test/elfdump/ts/archive1/@h%liba.a.out | 8 - .../test/elfdump/ts/archive1/@n%liba.a.err | 0 .../test/elfdump/ts/archive1/@n%liba.a.out | 8 - .../test/elfdump/ts/archive1/@p%liba.a.err | 0 .../test/elfdump/ts/archive1/@p%liba.a.out | 8 - .../test/elfdump/ts/archive1/@p@s%liba.a.err | 0 .../test/elfdump/ts/archive1/@p@s%liba.a.out | 334 - .../test/elfdump/ts/archive1/@r%liba.a.err | 0 .../test/elfdump/ts/archive1/@r%liba.a.out | 68 - .../test/elfdump/ts/archive1/liba.a | Bin 3608 -> 0 bytes .../elftoolchain/test/elfdump/ts/archive1/tc | 168 - .../elfdump/ts/archive2/@G%libdwarf.a.err | 0 .../elfdump/ts/archive2/@G%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@S@G%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@G%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@S@c%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@c%libdwarf.a.out | 1090 -- .../elfdump/ts/archive2/@S@d%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@d%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@S@e%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@e%libdwarf.a.out | 156 - .../elfdump/ts/archive2/@S@h%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@h%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@S@k%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@k%libdwarf.a.out | 52 - .../elfdump/ts/archive2/@S@n%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@n%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@S@p%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@p%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@S@r%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@r%libdwarf.a.out | 1181 -- .../elfdump/ts/archive2/@S@s%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@s%libdwarf.a.out | 356 - .../ts/archive2/@S@s@N%.symtab%libdwarf.a.err | 0 .../ts/archive2/@S@s@N%.symtab%libdwarf.a.out | 309 - .../ts/archive2/@S@s@N%ARSYM%libdwarf.a.err | 0 .../ts/archive2/@S@s@N%ARSYM%libdwarf.a.out | 47 - .../elfdump/ts/archive2/@S@v%libdwarf.a.err | 0 .../elfdump/ts/archive2/@S@v%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@c%libdwarf.a.err | 0 .../elfdump/ts/archive2/@c%libdwarf.a.out | 2032 --- .../elfdump/ts/archive2/@d%libdwarf.a.err | 0 .../elfdump/ts/archive2/@d%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@e%libdwarf.a.err | 0 .../elfdump/ts/archive2/@e%libdwarf.a.out | 247 - .../elfdump/ts/archive2/@h%libdwarf.a.err | 0 .../elfdump/ts/archive2/@h%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@i%libdwarf.a.err | 0 .../elfdump/ts/archive2/@i%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@k%libdwarf.a.err | 0 .../elfdump/ts/archive2/@k%libdwarf.a.out | 52 - .../elfdump/ts/archive2/@n%libdwarf.a.err | 0 .../elfdump/ts/archive2/@n%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@p%libdwarf.a.err | 0 .../elfdump/ts/archive2/@p%libdwarf.a.out | 26 - .../elfdump/ts/archive2/@r%libdwarf.a.err | 0 .../elfdump/ts/archive2/@r%libdwarf.a.out | 5424 ------ .../elfdump/ts/archive2/@s%libdwarf.a.err | 0 .../elfdump/ts/archive2/@s%libdwarf.a.out | 1982 --- .../elfdump/ts/archive2/@v%libdwarf.a.err | 0 .../elfdump/ts/archive2/@v%libdwarf.a.out | 26 - .../test/elfdump/ts/archive2/libdwarf.a | Bin 73632 -> 0 bytes .../elftoolchain/test/elfdump/ts/archive2/tc | 162 - .../elftoolchain/test/elfdump/ts/bin/tcgen.sh | 71 - .../test/elfdump/ts/common/func.sh | 127 - .../test/elfdump/ts/dso1/@G%libelf.so.err | 0 .../test/elfdump/ts/dso1/@G%libelf.so.out | 143 - .../test/elfdump/ts/dso1/@S@G%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@G%libelf.so.out | 50 - .../test/elfdump/ts/dso1/@S@c@s%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@c@s%libelf.so.out | 315 - .../test/elfdump/ts/dso1/@S@d%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@d%libelf.so.out | 29 - .../test/elfdump/ts/dso1/@S@e%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@e%libelf.so.out | 10 - .../test/elfdump/ts/dso1/@S@h%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@h%libelf.so.out | 122 - .../test/elfdump/ts/dso1/@S@k%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@k%libelf.so.out | 2 - .../test/elfdump/ts/dso1/@S@n%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@n%libelf.so.out | 0 .../test/elfdump/ts/dso1/@S@p%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@p%libelf.so.out | 24 - .../test/elfdump/ts/dso1/@S@r%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@r%libelf.so.out | 154 - .../ts/dso1/@S@s@N%.dynsym%libelf.so.err | 0 .../ts/dso1/@S@s@N%.dynsym%libelf.so.out | 147 - .../test/elfdump/ts/dso1/@S@v%libelf.so.err | 0 .../test/elfdump/ts/dso1/@S@v%libelf.so.out | 9 - .../test/elfdump/ts/dso1/@c%libelf.so.err | 0 .../test/elfdump/ts/dso1/@c%libelf.so.out | 302 - .../test/elfdump/ts/dso1/@c@p@n%libelf.so.err | 0 .../test/elfdump/ts/dso1/@c@p@n%libelf.so.out | 344 - .../test/elfdump/ts/dso1/@c@s%libelf.so.err | 0 .../test/elfdump/ts/dso1/@c@s%libelf.so.out | 1312 -- .../test/elfdump/ts/dso1/@d%libelf.so.err | 0 .../test/elfdump/ts/dso1/@d%libelf.so.out | 105 - .../test/elfdump/ts/dso1/@e%libelf.so.err | 0 .../test/elfdump/ts/dso1/@e%libelf.so.out | 17 - .../test/elfdump/ts/dso1/@e@i%libelf.so.err | 0 .../test/elfdump/ts/dso1/@e@i%libelf.so.out | 17 - .../test/elfdump/ts/dso1/@e@p@c%libelf.so.err | 0 .../test/elfdump/ts/dso1/@e@p@c%libelf.so.out | 361 - .../test/elfdump/ts/dso1/@h%libelf.so.err | 0 .../test/elfdump/ts/dso1/@h%libelf.so.out | 831 - .../test/elfdump/ts/dso1/@n%libelf.so.err | 0 .../test/elfdump/ts/dso1/@n%libelf.so.out | 0 .../test/elfdump/ts/dso1/@p%libelf.so.err | 0 .../test/elfdump/ts/dso1/@p%libelf.so.out | 42 - .../test/elfdump/ts/dso1/@p@s%libelf.so.err | 0 .../test/elfdump/ts/dso1/@p@s%libelf.so.out | 1052 -- .../test/elfdump/ts/dso1/@r%libelf.so.err | 0 .../test/elfdump/ts/dso1/@r%libelf.so.out | 744 - .../test/elfdump/ts/dso1/libelf.so | Bin 106416 -> 0 bytes contrib/elftoolchain/test/elfdump/ts/dso1/tc | 157 - .../test/elfdump/ts/dso2/@G%test.so.err | 0 .../test/elfdump/ts/dso2/@G%test.so.out | 49 - .../test/elfdump/ts/dso2/@S@G%test.so.err | 0 .../test/elfdump/ts/dso2/@S@G%test.so.out | 21 - .../test/elfdump/ts/dso2/@S@c%test.so.err | 0 .../test/elfdump/ts/dso2/@S@c%test.so.out | 210 - .../test/elfdump/ts/dso2/@S@d%test.so.err | 0 .../test/elfdump/ts/dso2/@S@d%test.so.out | 27 - .../test/elfdump/ts/dso2/@S@e%test.so.err | 0 .../test/elfdump/ts/dso2/@S@e%test.so.out | 10 - .../test/elfdump/ts/dso2/@S@h%test.so.err | 0 .../test/elfdump/ts/dso2/@S@h%test.so.out | 22 - .../test/elfdump/ts/dso2/@S@k%test.so.err | 0 .../test/elfdump/ts/dso2/@S@k%test.so.out | 2 - .../test/elfdump/ts/dso2/@S@n%test.so.err | 0 .../test/elfdump/ts/dso2/@S@n%test.so.out | 0 .../test/elfdump/ts/dso2/@S@p%test.so.err | 0 .../test/elfdump/ts/dso2/@S@p%test.so.out | 30 - .../test/elfdump/ts/dso2/@S@r%test.so.err | 0 .../test/elfdump/ts/dso2/@S@r%test.so.out | 20 - .../test/elfdump/ts/dso2/@S@s%test.so.err | 0 .../test/elfdump/ts/dso2/@S@s%test.so.out | 103 - .../test/elfdump/ts/dso2/@S@v%test.so.err | 0 .../test/elfdump/ts/dso2/@S@v%test.so.out | 5 - .../test/elfdump/ts/dso2/@c%test.so.err | 0 .../test/elfdump/ts/dso2/@c%test.so.out | 374 - .../test/elfdump/ts/dso2/@c@p@n%test.so.err | 0 .../test/elfdump/ts/dso2/@c@p@n%test.so.out | 426 - .../test/elfdump/ts/dso2/@c@s%test.so.err | 0 .../test/elfdump/ts/dso2/@c@s%test.so.out | 1057 -- .../test/elfdump/ts/dso2/@d%test.so.err | 0 .../test/elfdump/ts/dso2/@d%test.so.out | 97 - .../test/elfdump/ts/dso2/@e%test.so.err | 0 .../test/elfdump/ts/dso2/@e%test.so.out | 17 - .../test/elfdump/ts/dso2/@e@i%test.so.err | 0 .../test/elfdump/ts/dso2/@e@i%test.so.out | 17 - .../test/elfdump/ts/dso2/@e@p@c%test.so.err | 0 .../test/elfdump/ts/dso2/@e@p@c%test.so.out | 443 - .../test/elfdump/ts/dso2/@h%test.so.err | 0 .../test/elfdump/ts/dso2/@h%test.so.out | 51 - .../test/elfdump/ts/dso2/@n%test.so.err | 0 .../test/elfdump/ts/dso2/@n%test.so.out | 0 .../test/elfdump/ts/dso2/@p%test.so.err | 0 .../test/elfdump/ts/dso2/@p%test.so.out | 52 - .../test/elfdump/ts/dso2/@p@s%test.so.err | 0 .../test/elfdump/ts/dso2/@p@s%test.so.out | 735 - .../test/elfdump/ts/dso2/@r%test.so.err | 0 .../test/elfdump/ts/dso2/@r%test.so.out | 74 - contrib/elftoolchain/test/elfdump/ts/dso2/tc | 156 - .../elftoolchain/test/elfdump/ts/dso2/test.so | Bin 9684 -> 0 bytes .../test/elfdump/ts/exec1/@G%ls.err | 0 .../test/elfdump/ts/exec1/@G%ls.out | 221 - .../test/elfdump/ts/exec1/@G@e%ls.err | 0 .../test/elfdump/ts/exec1/@G@e%ls.out | 238 - .../test/elfdump/ts/exec1/@S@G%ls.err | 0 .../test/elfdump/ts/exec1/@S@G%ls.out | 76 - .../test/elfdump/ts/exec1/@S@c@s%ls.err | 0 .../test/elfdump/ts/exec1/@S@c@s%ls.out | 267 - .../test/elfdump/ts/exec1/@S@d%ls.err | 0 .../test/elfdump/ts/exec1/@S@d%ls.out | 29 - .../test/elfdump/ts/exec1/@S@e%ls.err | 0 .../test/elfdump/ts/exec1/@S@e%ls.out | 10 - .../test/elfdump/ts/exec1/@S@e@k%ls.err | 0 .../test/elfdump/ts/exec1/@S@e@k%ls.out | 12 - .../test/elfdump/ts/exec1/@S@e@p%ls.err | 0 .../test/elfdump/ts/exec1/@S@e@p%ls.out | 52 - .../test/elfdump/ts/exec1/@S@h%ls.err | 0 .../test/elfdump/ts/exec1/@S@h%ls.out | 99 - .../test/elfdump/ts/exec1/@S@n%ls.err | 0 .../test/elfdump/ts/exec1/@S@n%ls.out | 8 - .../test/elfdump/ts/exec1/@S@r%ls.err | 0 .../test/elfdump/ts/exec1/@S@r%ls.out | 84 - .../elfdump/ts/exec1/@S@r@N%.rela.dyn%ls.err | 0 .../elfdump/ts/exec1/@S@r@N%.rela.dyn%ls.out | 11 - .../exec1/@S@r@N%.rela.dyn@N%.rela.plt%ls.err | 0 .../exec1/@S@r@N%.rela.dyn@N%.rela.plt%ls.out | 84 - .../elfdump/ts/exec1/@S@s@N%.dynsym%ls.err | 0 .../elfdump/ts/exec1/@S@s@N%.dynsym%ls.out | 92 - .../test/elfdump/ts/exec1/@S@v%ls.err | 0 .../test/elfdump/ts/exec1/@S@v%ls.out | 5 - .../test/elfdump/ts/exec1/@c%ls.err | 0 .../test/elfdump/ts/exec1/@c%ls.out | 314 - .../test/elfdump/ts/exec1/@c@d%ls.err | 0 .../test/elfdump/ts/exec1/@c@d%ls.out | 418 - .../test/elfdump/ts/exec1/@c@p@n%ls.err | 0 .../test/elfdump/ts/exec1/@c@p@n%ls.out | 389 - .../test/elfdump/ts/exec1/@c@s%ls.err | 0 .../test/elfdump/ts/exec1/@c@s%ls.out | 939 - .../test/elfdump/ts/exec1/@e%ls.err | 0 .../test/elfdump/ts/exec1/@e%ls.out | 17 - .../test/elfdump/ts/exec1/@e@d%ls.err | 0 .../test/elfdump/ts/exec1/@e@d%ls.out | 121 - .../test/elfdump/ts/exec1/@e@p%ls.err | 0 .../test/elfdump/ts/exec1/@e@p%ls.out | 89 - .../test/elfdump/ts/exec1/@e@p@c@d%ls.err | 0 .../test/elfdump/ts/exec1/@e@p@c@d%ls.out | 507 - .../test/elfdump/ts/exec1/@n%ls.err | 0 .../test/elfdump/ts/exec1/@n%ls.out | 3 - .../test/elfdump/ts/exec1/@p@e%ls.err | 0 .../test/elfdump/ts/exec1/@p@e%ls.out | 89 - .../test/elfdump/ts/exec1/@p@n%ls.err | 0 .../test/elfdump/ts/exec1/@p@n%ls.out | 75 - .../test/elfdump/ts/exec1/@p@s%ls.err | 0 .../test/elfdump/ts/exec1/@p@s%ls.out | 697 - contrib/elftoolchain/test/elfdump/ts/exec1/ls | Bin 30000 -> 0 bytes contrib/elftoolchain/test/elfdump/ts/exec1/tc | 174 - .../test/elfdump/ts/exec2/@G%cp.err | 0 .../test/elfdump/ts/exec2/@G%cp.out | 185 - .../test/elfdump/ts/exec2/@G@e%cp.err | 0 .../test/elfdump/ts/exec2/@G@e%cp.out | 202 - .../test/elfdump/ts/exec2/@S@G%cp.err | 0 .../test/elfdump/ts/exec2/@S@G%cp.out | 64 - .../test/elfdump/ts/exec2/@S@c@s%cp.err | 0 .../test/elfdump/ts/exec2/@S@c@s%cp.out | 238 - .../test/elfdump/ts/exec2/@S@d%cp.err | 0 .../test/elfdump/ts/exec2/@S@d%cp.out | 27 - .../test/elfdump/ts/exec2/@S@e%cp.err | 0 .../test/elfdump/ts/exec2/@S@e%cp.out | 10 - .../test/elfdump/ts/exec2/@S@e@p%cp.err | 0 .../test/elfdump/ts/exec2/@S@e@p%cp.out | 46 - .../test/elfdump/ts/exec2/@S@h%cp.err | 0 .../test/elfdump/ts/exec2/@S@h%cp.out | 76 - .../test/elfdump/ts/exec2/@S@k%cp.err | 0 .../test/elfdump/ts/exec2/@S@k%cp.out | 2 - .../test/elfdump/ts/exec2/@S@n%cp.err | 0 .../test/elfdump/ts/exec2/@S@n%cp.out | 8 - .../test/elfdump/ts/exec2/@S@r%cp.err | 0 .../test/elfdump/ts/exec2/@S@r%cp.out | 68 - .../elfdump/ts/exec2/@S@r@N%.rela.dyn%cp.err | 0 .../elfdump/ts/exec2/@S@r@N%.rela.dyn%cp.out | 0 .../elfdump/ts/exec2/@S@s@N%.dynsym%cp.err | 0 .../elfdump/ts/exec2/@S@s@N%.dynsym%cp.out | 70 - .../test/elfdump/ts/exec2/@S@v%cp.err | 0 .../test/elfdump/ts/exec2/@S@v%cp.out | 4 - .../test/elfdump/ts/exec2/@c%cp.err | 0 .../test/elfdump/ts/exec2/@c%cp.out | 302 - .../test/elfdump/ts/exec2/@c@d%cp.err | 0 .../test/elfdump/ts/exec2/@c@d%cp.out | 398 - .../test/elfdump/ts/exec2/@c@p@n%cp.err | 0 .../test/elfdump/ts/exec2/@c@p@n%cp.out | 367 - .../test/elfdump/ts/exec2/@c@s%cp.err | 0 .../test/elfdump/ts/exec2/@c@s%cp.out | 773 - .../test/elfdump/ts/exec2/@e%cp.err | 0 .../test/elfdump/ts/exec2/@e%cp.out | 17 - .../test/elfdump/ts/exec2/@e@d%cp.err | 0 .../test/elfdump/ts/exec2/@e@d%cp.out | 113 - .../test/elfdump/ts/exec2/@e@i%cp.err | 0 .../test/elfdump/ts/exec2/@e@i%cp.out | 20 - .../test/elfdump/ts/exec2/@e@p%cp.err | 0 .../test/elfdump/ts/exec2/@e@p%cp.out | 79 - .../test/elfdump/ts/exec2/@e@p@c@d%cp.err | 0 .../test/elfdump/ts/exec2/@e@p@c@d%cp.out | 477 - .../test/elfdump/ts/exec2/@h%cp.err | 0 .../test/elfdump/ts/exec2/@h%cp.out | 408 - .../test/elfdump/ts/exec2/@n%cp.err | 0 .../test/elfdump/ts/exec2/@n%cp.out | 3 - .../test/elfdump/ts/exec2/@p@e%cp.err | 0 .../test/elfdump/ts/exec2/@p@e%cp.out | 79 - .../test/elfdump/ts/exec2/@p@n%cp.err | 0 .../test/elfdump/ts/exec2/@p@n%cp.out | 65 - .../test/elfdump/ts/exec2/@p@s%cp.err | 0 .../test/elfdump/ts/exec2/@p@s%cp.out | 533 - .../test/elfdump/ts/exec2/@r%cp.err | 0 .../test/elfdump/ts/exec2/@r%cp.out | 252 - contrib/elftoolchain/test/elfdump/ts/exec2/cp | Bin 15692 -> 0 bytes contrib/elftoolchain/test/elfdump/ts/exec2/tc | 184 - contrib/elftoolchain/test/libdwarf/Makefile | 6 - contrib/elftoolchain/test/libdwarf/tet_scen | 119 - .../elftoolchain/test/libdwarf/tetbuild.cfg | 5 - .../elftoolchain/test/libdwarf/tetclean.cfg | 7 - .../elftoolchain/test/libdwarf/tetexec.cfg | 3 - .../elftoolchain/test/libdwarf/ts/Makefile | 27 - .../test/libdwarf/ts/Makefile.tset | 56 - contrib/elftoolchain/test/libdwarf/ts/README | 46 - .../test/libdwarf/ts/bin/count-ic | 38 - .../test/libdwarf/ts/common/die_traverse.c | 104 - .../test/libdwarf/ts/common/die_traverse2.c | 120 - .../test/libdwarf/ts/common/driver.c | 893 - .../test/libdwarf/ts/common/driver.h | 179 - .../test/libdwarf/ts/common/object/dt32-g1.gz | Bin 9724 -> 0 bytes .../test/libdwarf/ts/common/object/dt64-g1.gz | Bin 9841 -> 0 bytes .../test/libdwarf/ts/common/object/dt64-g3.gz | Bin 30254 -> 0 bytes .../libdwarf/ts/common/object/dto64-g1.gz | Bin 7880 -> 0 bytes .../test/libdwarf/ts/common/object/ec32-g1.gz | Bin 277478 -> 0 bytes .../test/libdwarf/ts/common/object/ec64-g1.gz | Bin 301342 -> 0 bytes .../test/libdwarf/ts/common/object/ec64-g3.gz | Bin 323788 -> 0 bytes .../ts/common/object/ld_symver.o-64-g1.gz | Bin 36785 -> 0 bytes .../test/libdwarf/ts/dwarf_abbrev/Makefile | 8 - .../libdwarf/ts/dwarf_abbrev/dt32-g1.xml.gz | Bin 1328 -> 0 bytes .../libdwarf/ts/dwarf_abbrev/dto64-g1.xml.gz | Bin 1334 -> 0 bytes .../libdwarf/ts/dwarf_abbrev/dwarf_abbrev.c | 125 - .../libdwarf/ts/dwarf_abbrev/ec64-g1.xml.gz | Bin 8447 -> 0 bytes .../test/libdwarf/ts/dwarf_arange/Makefile | 8 - .../libdwarf/ts/dwarf_arange/dt32-g1.xml.gz | Bin 198 -> 0 bytes .../libdwarf/ts/dwarf_arange/dt64-g1.xml.gz | Bin 197 -> 0 bytes .../libdwarf/ts/dwarf_arange/dwarf_arange.c | 127 - .../libdwarf/ts/dwarf_arange/ec32-g1.xml.gz | Bin 328 -> 0 bytes .../libdwarf/ts/dwarf_arange/ec64-g1.xml.gz | Bin 316 -> 0 bytes .../test/libdwarf/ts/dwarf_attr/Makefile | 8 - .../libdwarf/ts/dwarf_attr/dt32-g1.xml.gz | Bin 1463 -> 0 bytes .../libdwarf/ts/dwarf_attr/dt64-g1.xml.gz | Bin 1468 -> 0 bytes .../libdwarf/ts/dwarf_attr/dto64-g1.xml.gz | Bin 1470 -> 0 bytes .../test/libdwarf/ts/dwarf_attr/dwarf_attr.c | 198 - .../libdwarf/ts/dwarf_attr/ec32-g1.xml.gz | Bin 14221 -> 0 bytes .../libdwarf/ts/dwarf_attr/ec64-g1.xml.gz | Bin 14231 -> 0 bytes .../test/libdwarf/ts/dwarf_attrlist/Makefile | 8 - .../libdwarf/ts/dwarf_attrlist/dt32-g1.xml.gz | Bin 750 -> 0 bytes .../libdwarf/ts/dwarf_attrlist/dt64-g1.xml.gz | Bin 753 -> 0 bytes .../ts/dwarf_attrlist/dwarf_attrlist.c | 130 - .../libdwarf/ts/dwarf_attrlist/ec32-g1.xml.gz | Bin 5465 -> 0 bytes .../libdwarf/ts/dwarf_attrlist/ec64-g1.xml.gz | Bin 5475 -> 0 bytes .../dwarf_attrlist/ld_symver.o-64-g1.xml.gz | Bin 3754 -> 0 bytes .../test/libdwarf/ts/dwarf_child/Makefile | 8 - .../libdwarf/ts/dwarf_child/dt32-g1.xml.gz | Bin 135 -> 0 bytes .../libdwarf/ts/dwarf_child/dt64-g1.xml.gz | Bin 136 -> 0 bytes .../libdwarf/ts/dwarf_child/dwarf_child.c | 138 - .../libdwarf/ts/dwarf_child/ec32-g1.xml.gz | Bin 138 -> 0 bytes .../libdwarf/ts/dwarf_child/ec64-g1.xml.gz | Bin 138 -> 0 bytes .../ts/dwarf_die_convenience/Makefile | 8 - .../ts/dwarf_die_convenience/dt32-g1.xml.gz | Bin 822 -> 0 bytes .../ts/dwarf_die_convenience/dt64-g1.xml.gz | Bin 819 -> 0 bytes .../dwarf_die_convenience.c | 242 - .../ts/dwarf_die_convenience/ec32-g1.xml.gz | Bin 5960 -> 0 bytes .../ts/dwarf_die_convenience/ec64-g1.xml.gz | Bin 5935 -> 0 bytes .../libdwarf/ts/dwarf_die_offset/Makefile | 8 - .../ts/dwarf_die_offset/dt32-g1.xml.gz | Bin 1791 -> 0 bytes .../ts/dwarf_die_offset/dt64-g1.xml.gz | Bin 1797 -> 0 bytes .../ts/dwarf_die_offset/dwarf_die_offset.c | 190 - .../ts/dwarf_die_offset/ec32-g1.xml.gz | Bin 19169 -> 0 bytes .../ts/dwarf_die_offset/ec64-g1.xml.gz | Bin 19118 -> 0 bytes .../test/libdwarf/ts/dwarf_die_query/Makefile | 8 - .../ts/dwarf_die_query/dt32-g1.xml.gz | Bin 1467 -> 0 bytes .../ts/dwarf_die_query/dt64-g1.xml.gz | Bin 1465 -> 0 bytes .../ts/dwarf_die_query/dto64-g1.xml.gz | Bin 1465 -> 0 bytes .../ts/dwarf_die_query/dwarf_die_query.c | 178 - .../ts/dwarf_die_query/ec32-g1.xml.gz | Bin 12695 -> 0 bytes .../ts/dwarf_die_query/ec64-g1.xml.gz | Bin 12692 -> 0 bytes .../dwarf_die_query/ld_symver.o-64-g1.xml.gz | Bin 8494 -> 0 bytes .../test/libdwarf/ts/dwarf_form/Makefile | 8 - .../libdwarf/ts/dwarf_form/dt32-g1.xml.gz | Bin 9400 -> 0 bytes .../libdwarf/ts/dwarf_form/dt64-g1.xml.gz | Bin 9406 -> 0 bytes .../test/libdwarf/ts/dwarf_form/dwarf_form.c | 284 - .../libdwarf/ts/dwarf_form/ec32-g1.xml.gz | Bin 101798 -> 0 bytes .../libdwarf/ts/dwarf_form/ec64-g1.xml.gz | Bin 101875 -> 0 bytes .../ts/dwarf_form/ld_symver.o-64-g1.xml.gz | Bin 64812 -> 0 bytes .../test/libdwarf/ts/dwarf_frame/Makefile | 8 - .../libdwarf/ts/dwarf_frame/dt64-g1.xml.gz | Bin 10646 -> 0 bytes .../libdwarf/ts/dwarf_frame/dto64-g1.xml.gz | Bin 5059 -> 0 bytes .../libdwarf/ts/dwarf_frame/dwarf_frame.c | 498 - .../libdwarf/ts/dwarf_frame/ec32-g1.xml.gz | Bin 104318 -> 0 bytes .../ts/dwarf_get_address_size/Makefile | 8 - .../ts/dwarf_get_address_size/dt32-g1.xml.gz | Bin 127 -> 0 bytes .../ts/dwarf_get_address_size/dt64-g1.xml.gz | Bin 128 -> 0 bytes .../dwarf_get_address_size.c | 87 - .../test/libdwarf/ts/dwarf_init/Makefile | 8 - .../libdwarf/ts/dwarf_init/dt32-g1.xml.gz | Bin 90 -> 0 bytes .../libdwarf/ts/dwarf_init/dt64-g1.xml.gz | Bin 90 -> 0 bytes .../test/libdwarf/ts/dwarf_init/dwarf_init.c | 82 - .../libdwarf/ts/dwarf_init/ec32-g1.xml.gz | Bin 90 -> 0 bytes .../libdwarf/ts/dwarf_init/ec64-g1.xml.gz | Bin 90 -> 0 bytes .../test/libdwarf/ts/dwarf_lineno/Makefile | 8 - .../libdwarf/ts/dwarf_lineno/dt32-g1.xml.gz | Bin 1478 -> 0 bytes .../libdwarf/ts/dwarf_lineno/dt64-g1.xml.gz | Bin 1470 -> 0 bytes .../libdwarf/ts/dwarf_lineno/dto64-g1.xml.gz | Bin 1446 -> 0 bytes .../libdwarf/ts/dwarf_lineno/dwarf_lineno.c | 278 - .../libdwarf/ts/dwarf_lineno/ec32-g1.xml.gz | Bin 17688 -> 0 bytes .../libdwarf/ts/dwarf_lineno/ec64-g1.xml.gz | Bin 17539 -> 0 bytes .../test/libdwarf/ts/dwarf_loclist/Makefile | 8 - .../libdwarf/ts/dwarf_loclist/dt32-g1.xml.gz | Bin 3672 -> 0 bytes .../libdwarf/ts/dwarf_loclist/dt64-g1.xml.gz | Bin 3298 -> 0 bytes .../libdwarf/ts/dwarf_loclist/dwarf_loclist.c | 234 - .../libdwarf/ts/dwarf_loclist/ec32-g1.xml.gz | Bin 30295 -> 0 bytes .../libdwarf/ts/dwarf_loclist/ec64-g1.xml.gz | Bin 32586 -> 0 bytes .../test/libdwarf/ts/dwarf_macinfo/Makefile | 8 - .../libdwarf/ts/dwarf_macinfo/dt64-g1.xml.gz | Bin 129 -> 0 bytes .../libdwarf/ts/dwarf_macinfo/dt64-g3.xml.gz | Bin 94883 -> 0 bytes .../libdwarf/ts/dwarf_macinfo/dwarf_macinfo.c | 137 - .../libdwarf/ts/dwarf_macinfo/ec64-g3.xml.gz | Bin 263347 -> 0 bytes .../libdwarf/ts/dwarf_next_cu_header/Makefile | 8 - .../ts/dwarf_next_cu_header/dt32-g1.xml.gz | Bin 250 -> 0 bytes .../ts/dwarf_next_cu_header/dt64-g1.xml.gz | Bin 252 -> 0 bytes .../dwarf_next_cu_header.c | 209 - .../ts/dwarf_next_cu_header/ec32-g1.xml.gz | Bin 372 -> 0 bytes .../ts/dwarf_next_cu_header/ec64-g1.xml.gz | Bin 378 -> 0 bytes .../ld_symver.o-64-g1.xml.gz | Bin 1970 -> 0 bytes .../test/libdwarf/ts/dwarf_pubnames/Makefile | 8 - .../libdwarf/ts/dwarf_pubnames/dt32-g1.xml.gz | Bin 177 -> 0 bytes .../ts/dwarf_pubnames/dwarf_pubnames.c | 114 - .../libdwarf/ts/dwarf_pubnames/ec64-g1.xml.gz | Bin 604 -> 0 bytes .../test/libdwarf/ts/dwarf_ranges/Makefile | 8 - .../libdwarf/ts/dwarf_ranges/dt32-g1.xml.gz | Bin 759 -> 0 bytes .../libdwarf/ts/dwarf_ranges/dwarf_ranges.c | 102 - .../libdwarf/ts/dwarf_ranges/ec64-g1.xml.gz | Bin 4492 -> 0 bytes .../test/libdwarf/ts/dwarf_siblingof/Makefile | 8 - .../ts/dwarf_siblingof/dt32-g1.xml.gz | Bin 137 -> 0 bytes .../ts/dwarf_siblingof/dt64-g1.xml.gz | Bin 138 -> 0 bytes .../ts/dwarf_siblingof/dwarf_siblingof.c | 160 - .../ts/dwarf_siblingof/ec32-g1.xml.gz | Bin 140 -> 0 bytes .../ts/dwarf_siblingof/ec64-g1.xml.gz | Bin 140 -> 0 bytes contrib/elftoolchain/test/libelf/Makefile | 6 - contrib/elftoolchain/test/libelf/README | 96 - contrib/elftoolchain/test/libelf/tet_code | 17 - contrib/elftoolchain/test/libelf/tet_scen | 116 - contrib/elftoolchain/test/libelf/tetbuild.cfg | 7 - contrib/elftoolchain/test/libelf/tetclean.cfg | 9 - contrib/elftoolchain/test/libelf/tetexec.cfg | 5 - .../elftoolchain/test/libelf/tset/Makefile | 61 - .../test/libelf/tset/Makefile.tset | 36 - .../test/libelf/tset/abi/Makefile | 7 - .../elftoolchain/test/libelf/tset/abi/abi.m4 | 296 - .../test/libelf/tset/bin/elf-hash | 39 - .../elftoolchain/test/libelf/tset/bin/elfc | 1625 -- .../test/libelf/tset/common/Makefile | 37 - .../test/libelf/tset/common/check_elf.yaml | 16 - .../libelf/tset/common/ehdr-malformed-1.yaml | 23 - .../test/libelf/tset/common/ehdr.yaml | 23 - .../test/libelf/tset/common/ehdr_template.m4 | 417 - .../test/libelf/tset/common/elf_flag.m4 | 184 - .../libelf/tset/common/elfts-compare-files.c | 125 - .../test/libelf/tset/common/elfts-copy-file.c | 107 - .../libelf/tset/common/elfts-initversion.c | 48 - .../test/libelf/tset/common/elfts-openfile.c | 80 - .../test/libelf/tset/common/elfts.h | 118 - .../test/libelf/tset/common/fsize.yaml | 16 - .../libelf/tset/common/gelf_ehdr_template.h | 165 - .../test/libelf/tset/common/getclass.yaml | 16 - .../test/libelf/tset/common/getshdr.m4 | 171 - .../test/libelf/tset/common/newehdr.yaml | 7 - .../libelf/tset/common/newehdr_template.m4 | 243 - .../test/libelf/tset/common/newscn.yaml | 27 - .../test/libelf/tset/common/newscn2.yaml | 28 - .../test/libelf/tset/common/phdr.yaml | 38 - .../test/libelf/tset/common/phdr_template.c | 416 - .../test/libelf/tset/common/rdwr.yaml | 27 - .../test/libelf/tset/common/rdwr1.yaml | 27 - .../test/libelf/tset/common/rdwr2.yaml | 28 - .../test/libelf/tset/common/shdr.yaml | 42 - .../test/libelf/tset/common/u1.yaml | 29 - .../test/libelf/tset/common/versioning.yaml | 55 - .../test/libelf/tset/common/xlate.yaml | 23 - .../test/libelf/tset/common/xlate_template.c | 1824 -- .../test/libelf/tset/common/xlate_template.m4 | 1436 -- .../test/libelf/tset/common/xscn-1.yaml | 23 - .../test/libelf/tset/common/xscn-2.yaml | 22 - .../test/libelf/tset/common/xscn-3.yaml | 26 - .../test/libelf/tset/common/zerosection.yaml | 27 - .../test/libelf/tset/elf32_getehdr/Makefile | 8 - .../test/libelf/tset/elf32_getehdr/ehdr.m4 | 39 - .../test/libelf/tset/elf32_getphdr/Makefile | 9 - .../test/libelf/tset/elf32_getphdr/phdr.m4 | 39 - .../test/libelf/tset/elf32_getshdr/Makefile | 8 - .../test/libelf/tset/elf32_getshdr/shdr.m4 | 54 - .../test/libelf/tset/elf32_newehdr/Makefile | 10 - .../test/libelf/tset/elf32_newehdr/ehdr.m4 | 43 - .../test/libelf/tset/elf32_xlatetof/Makefile | 7 - .../test/libelf/tset/elf32_xlatetof/xlate.m4 | 51 - .../test/libelf/tset/elf32_xlatetom/Makefile | 7 - .../test/libelf/tset/elf32_xlatetom/xlate.m4 | 52 - .../test/libelf/tset/elf64_getehdr/Makefile | 8 - .../test/libelf/tset/elf64_getehdr/ehdr.m4 | 39 - .../test/libelf/tset/elf64_getphdr/Makefile | 9 - .../test/libelf/tset/elf64_getphdr/phdr.m4 | 39 - .../test/libelf/tset/elf64_getshdr/Makefile | 8 - .../test/libelf/tset/elf64_getshdr/shdr.m4 | 54 - .../test/libelf/tset/elf64_newehdr/Makefile | 10 - .../test/libelf/tset/elf64_newehdr/ehdr.m4 | 43 - .../test/libelf/tset/elf64_xlatetof/Makefile | 7 - .../test/libelf/tset/elf64_xlatetof/xlate.m4 | 51 - .../test/libelf/tset/elf64_xlatetom/Makefile | 7 - .../test/libelf/tset/elf64_xlatetom/xlate.m4 | 52 - .../test/libelf/tset/elf_begin/Makefile | 24 - .../test/libelf/tset/elf_begin/begin.m4 | 677 - .../libelf/tset/elf_begin/entry-too-large.ar | 3 - .../test/libelf/tset/elf_cntl/Makefile | 16 - .../test/libelf/tset/elf_cntl/cntl.m4 | 217 - .../test/libelf/tset/elf_end/Makefile | 7 - .../test/libelf/tset/elf_end/end.m4 | 100 - .../test/libelf/tset/elf_errmsg/Makefile | 7 - .../test/libelf/tset/elf_errmsg/errmsg.m4 | 153 - .../test/libelf/tset/elf_errno/Makefile | 7 - .../test/libelf/tset/elf_errno/errno.m4 | 185 - .../test/libelf/tset/elf_fill/Makefile | 7 - .../test/libelf/tset/elf_fill/fill.m4 | 558 - .../test/libelf/tset/elf_flagarhdr/Makefile | 16 - .../libelf/tset/elf_flagarhdr/flagarhdr.m4 | 98 - .../test/libelf/tset/elf_flagdata/Makefile | 7 - .../test/libelf/tset/elf_flagdata/data.m4 | 110 - .../test/libelf/tset/elf_flagehdr/Makefile | 8 - .../test/libelf/tset/elf_flagehdr/ehdr.m4 | 115 - .../test/libelf/tset/elf_flagelf/Makefile | 17 - .../test/libelf/tset/elf_flagelf/elf.m4 | 133 - .../test/libelf/tset/elf_flagphdr/Makefile | 8 - .../test/libelf/tset/elf_flagphdr/phdr.m4 | 117 - .../test/libelf/tset/elf_flagscn/Makefile | 7 - .../test/libelf/tset/elf_flagscn/scn.m4 | 91 - .../test/libelf/tset/elf_flagshdr/Makefile | 7 - .../test/libelf/tset/elf_flagshdr/shdr.m4 | 91 - .../test/libelf/tset/elf_fsize/Makefile | 8 - .../test/libelf/tset/elf_fsize/fsize.m4 | 273 - .../test/libelf/tset/elf_getarhdr/Makefile | 29 - .../test/libelf/tset/elf_getarhdr/getarhdr.m4 | 471 - .../test/libelf/tset/elf_getarsym/Makefile | 40 - .../test/libelf/tset/elf_getarsym/getarsym.m4 | 363 - .../test/libelf/tset/elf_getbase/Makefile | 7 - .../test/libelf/tset/elf_getbase/getbase.m4 | 100 - .../test/libelf/tset/elf_getdata/Makefile | 8 - .../test/libelf/tset/elf_getdata/getdata.m4 | 351 - .../test/libelf/tset/elf_getident/Makefile | 7 - .../test/libelf/tset/elf_getident/getident.m4 | 168 - .../test/libelf/tset/elf_getscn/Makefile | 8 - .../test/libelf/tset/elf_getscn/getscn.m4 | 313 - .../test/libelf/tset/elf_getshnum/Makefile | 8 - .../test/libelf/tset/elf_getshnum/getshnum.m4 | 177 - .../test/libelf/tset/elf_getshstrndx/Makefile | 8 - .../tset/elf_getshstrndx/getshstrndx.m4 | 180 - .../test/libelf/tset/elf_hash/Makefile | 7 - .../test/libelf/tset/elf_hash/hash.m4 | 101 - .../test/libelf/tset/elf_kind/Makefile | 7 - .../test/libelf/tset/elf_kind/kind.m4 | 122 - .../test/libelf/tset/elf_memory/Makefile | 7 - .../test/libelf/tset/elf_memory/memory.m4 | 240 - .../test/libelf/tset/elf_ndxscn/Makefile | 8 - .../test/libelf/tset/elf_ndxscn/ndxscn.m4 | 119 - .../test/libelf/tset/elf_newscn/Makefile | 8 - .../test/libelf/tset/elf_newscn/newscn.m4 | 290 - .../test/libelf/tset/elf_next/Makefile | 36 - .../test/libelf/tset/elf_next/next.m4 | 151 - .../test/libelf/tset/elf_nextscn/Makefile | 8 - .../test/libelf/tset/elf_nextscn/nextscn.m4 | 378 - .../test/libelf/tset/elf_rand/Makefile | 18 - .../test/libelf/tset/elf_rand/empty-file.ar | 2 - .../test/libelf/tset/elf_rand/missing-file.ar | 2 - .../test/libelf/tset/elf_rand/rand.m4 | 415 - .../test/libelf/tset/elf_rawfile/Makefile | 7 - .../test/libelf/tset/elf_rawfile/rawfile.m4 | 154 - .../test/libelf/tset/elf_strptr/Makefile | 8 - .../test/libelf/tset/elf_strptr/strptr.m4 | 363 - .../test/libelf/tset/elf_update/Makefile | 8 - .../test/libelf/tset/elf_update/update.m4 | 2390 --- .../test/libelf/tset/elf_version/Makefile | 7 - .../test/libelf/tset/elf_version/version.m4 | 185 - .../test/libelf/tset/gelf_getclass/Makefile | 8 - .../libelf/tset/gelf_getclass/getclass.m4 | 87 - .../test/libelf/tset/gelf_getehdr/Makefile | 8 - .../test/libelf/tset/gelf_getehdr/ehdr.m4 | 280 - .../test/libelf/tset/gelf_newehdr/Makefile | 8 - .../test/libelf/tset/gelf_newehdr/ehdr.m4 | 468 - .../test/libelf/tset/gelf_xlate/Makefile | 8 - .../test/libelf/tset/gelf_xlate/xlate.m4 | 1354 -- contrib/elftoolchain/test/libelftc/Makefile | 6 - contrib/elftoolchain/test/libelftc/tet_scen | 8 - .../elftoolchain/test/libelftc/tetbuild.cfg | 5 - .../elftoolchain/test/libelftc/tetclean.cfg | 7 - .../elftoolchain/test/libelftc/tetexec.cfg | 3 - .../elftoolchain/test/libelftc/tset/Makefile | 8 - .../test/libelftc/tset/Makefile.tset | 11 - .../libelftc/tset/elftc_string_table/Makefile | 9 - .../tset/elftc_string_table/string_table.m4 | 985 -- .../test/libelftc/tset/elftc_version/Makefile | 7 - .../tset/elftc_version/elftc_version.m4 | 142 - contrib/elftoolchain/test/libtest/Makefile | 16 - contrib/elftoolchain/test/libtest/README.rst | 116 - .../elftoolchain/test/libtest/bin/Makefile | 9 - .../test/libtest/bin/make-test-scaffolding | 222 - .../test/libtest/bin/make-test-scaffolding.1 | 111 - .../elftoolchain/test/libtest/driver/Makefile | 17 - .../elftoolchain/test/libtest/driver/driver.c | 216 - .../elftoolchain/test/libtest/driver/driver.h | 206 - .../test/libtest/driver/driver_main.c | 726 - .../test/libtest/driver/test_driver.1 | 308 - .../test/libtest/examples/Makefile | 14 - .../test/libtest/examples/minimal_example.c | 56 - .../test/libtest/examples/simple_example.c | 171 - .../elftoolchain/test/libtest/lib/Makefile | 15 - contrib/elftoolchain/test/libtest/lib/test.3 | 110 - contrib/elftoolchain/test/libtest/lib/test.c | 29 - contrib/elftoolchain/test/libtest/lib/test.h | 159 - .../elftoolchain/test/libtest/lib/test_case.h | 58 - contrib/elftoolchain/test/nm/Makefile | 6 - contrib/elftoolchain/test/nm/tet_code | 15 - contrib/elftoolchain/test/nm/tet_scen | 55 - contrib/elftoolchain/test/nm/tetbuild.cfg | 4 - contrib/elftoolchain/test/nm/tetclean.cfg | 6 - contrib/elftoolchain/test/nm/tetexec.cfg | 2 - contrib/elftoolchain/test/nm/ts/Makefile | 14 - contrib/elftoolchain/test/nm/ts/Makefile.tset | 24 - .../elftoolchain/test/nm/ts/common/func.sh | 304 - .../elftoolchain/test/nm/ts/common/test_nm.c | 343 - .../test/nm/ts/cpp_demangle/Makefile | 25 - .../test/nm/ts/cpp_demangle/cpp_demangle-tc.c | 170 - .../test/nm/ts/cpp_demangle_ARM/Makefile | 24 - .../ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c | 151 - .../test/nm/ts/cpp_demangle_gnu2/Makefile | 24 - .../cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c | 172 - .../test/nm/ts/nm_archive1/Makefile | 7 - .../elftoolchain/test/nm/ts/nm_archive1/tc.sh | 198 - .../nm/ts/nm_archive1/test_ar-dynamic.txt | 8 - .../nm/ts/nm_archive1/test_ar-external.txt | 48 - .../nm/ts/nm_archive1/test_ar-format-bsd.txt | 54 - .../ts/nm_archive1/test_ar-format-posix.txt | 50 - .../nm_archive1/test_ar-print-file-name.txt | 46 - .../nm/ts/nm_archive1/test_ar-print-size.txt | 54 - .../nm/ts/nm_archive1/test_ar-radix-hexa.txt | 54 - .../nm/ts/nm_archive1/test_ar-radix-octal.txt | 54 - .../nm/ts/nm_archive1/test_ar-size-sort.txt | 29 - .../nm/ts/nm_archive1/test_ar-sort-no.txt | 54 - .../nm/ts/nm_archive1/test_ar-sort-num.txt | 54 - .../nm_archive1/test_ar-sort-reverse-no.txt | 54 - .../nm_archive1/test_ar-sort-reverse-num.txt | 54 - .../nm_archive1/test_ar-sort-reverse-size.txt | 29 - .../ts/nm_archive1/test_ar-sort-reverse.txt | 54 - .../test/nm/ts/nm_archive1/test_ar-sysv.txt | 70 - .../test/nm/ts/nm_archive1/test_ar-undef.txt | 33 - .../test/nm/ts/nm_archive1/test_ar.uu | 356 - .../test/nm/ts/nm_archive2/Makefile | 7 - .../elftoolchain/test/nm/ts/nm_archive2/tc.sh | 198 - .../nm/ts/nm_archive2/test_ar-dynamic.txt | 8 - .../nm/ts/nm_archive2/test_ar-external.txt | 83 - .../nm/ts/nm_archive2/test_ar-format-bsd.txt | 89 - .../ts/nm_archive2/test_ar-format-posix.txt | 85 - .../nm/ts/nm_archive2/test_ar-format-sysv.txt | 105 - .../nm_archive2/test_ar-print-file-name.txt | 81 - .../nm/ts/nm_archive2/test_ar-print-size.txt | 89 - .../nm/ts/nm_archive2/test_ar-radix-hexa.txt | 89 - .../nm/ts/nm_archive2/test_ar-radix-octal.txt | 89 - .../nm/ts/nm_archive2/test_ar-reverse.txt | 89 - .../nm/ts/nm_archive2/test_ar-sort-no.txt | 89 - .../nm/ts/nm_archive2/test_ar-sort-num.txt | 89 - .../nm_archive2/test_ar-sort-reverse-no.txt | 89 - .../nm_archive2/test_ar-sort-reverse-num.txt | 89 - .../nm_archive2/test_ar-sort-reverse-size.txt | 60 - .../nm/ts/nm_archive2/test_ar-sort-size.txt | 60 - .../test/nm/ts/nm_archive2/test_ar-undef.txt | 37 - .../test/nm/ts/nm_archive2/test_ar.uu | 484 - .../elftoolchain/test/nm/ts/nm_debug/Makefile | 7 - .../elftoolchain/test/nm/ts/nm_debug/tc.sh | 36 - .../nm/ts/nm_debug/test_obj-debug-syms.txt | 69 - .../test/nm/ts/nm_debug/test_obj.uu | 1115 -- .../test/nm/ts/nm_object1/Makefile | 7 - .../elftoolchain/test/nm/ts/nm_object1/tc.sh | 198 - .../nm/ts/nm_object1/test_obj-dynamic.txt | 43 - .../nm/ts/nm_object1/test_obj-external.txt | 60 - .../nm/ts/nm_object1/test_obj-format-bsd.txt | 77 - .../ts/nm_object1/test_obj-format-posix.txt | 77 - .../nm/ts/nm_object1/test_obj-format-sysv.txt | 83 - .../nm_object1/test_obj-print-file-name.txt | 77 - .../nm/ts/nm_object1/test_obj-print-size.txt | 77 - .../nm/ts/nm_object1/test_obj-radix-hexa.txt | 77 - .../nm/ts/nm_object1/test_obj-radix-octal.txt | 77 - .../nm/ts/nm_object1/test_obj-sort-no.txt | 77 - .../nm/ts/nm_object1/test_obj-sort-num.txt | 77 - .../nm_object1/test_obj-sort-reverse-no.txt | 77 - .../nm_object1/test_obj-sort-reverse-num.txt | 77 - .../nm_object1/test_obj-sort-reverse-size.txt | 25 - .../ts/nm_object1/test_obj-sort-reverse.txt | 77 - .../nm/ts/nm_object1/test_obj-sort-size.txt | 25 - .../test/nm/ts/nm_object1/test_obj-undef.txt | 33 - .../test/nm/ts/nm_object1/test_obj.uu | 351 - .../test/nm/ts/nm_object2/Makefile | 7 - .../elftoolchain/test/nm/ts/nm_object2/tc.sh | 198 - .../nm/ts/nm_object2/test_obj-dynamic.txt | 17 - .../nm/ts/nm_object2/test_obj-external.txt | 27 - .../nm/ts/nm_object2/test_obj-format-bsd.txt | 45 - .../ts/nm_object2/test_obj-format-posix.txt | 45 - .../nm/ts/nm_object2/test_obj-format-sysv.txt | 51 - .../nm_object2/test_obj-print-file-name.txt | 45 - .../nm/ts/nm_object2/test_obj-print-size.txt | 45 - .../nm/ts/nm_object2/test_obj-radix-hexa.txt | 45 - .../nm/ts/nm_object2/test_obj-radix-octal.txt | 45 - .../nm/ts/nm_object2/test_obj-sort-no.txt | 45 - .../nm/ts/nm_object2/test_obj-sort-num.txt | 45 - .../nm_object2/test_obj-sort-reverse-no.txt | 45 - .../nm_object2/test_obj-sort-reverse-num.txt | 45 - .../nm_object2/test_obj-sort-reverse-size.txt | 13 - .../ts/nm_object2/test_obj-sort-reverse.txt | 45 - .../nm/ts/nm_object2/test_obj-sort-size.txt | 13 - .../test/nm/ts/nm_object2/test_obj-undef.txt | 13 - .../test/nm/ts/nm_object2/test_obj.uu | 235 - .../test/nm/ts/nm_option/Makefile | 5 - .../elftoolchain/test/nm/ts/nm_option/tc.sh | 57 - .../test/nm/ts/nm_shared_object1/Makefile | 7 - .../test/nm/ts/nm_shared_object1/tc.sh | 198 - .../ts/nm_shared_object1/test_so-dynamic.txt | 38 - .../ts/nm_shared_object1/test_so-external.txt | 38 - .../nm_shared_object1/test_so-format-bsd.txt | 39 - .../test_so-format-posix.txt | 39 - .../nm_shared_object1/test_so-format-sysv.txt | 45 - .../test_so-print-file-name.txt | 39 - .../nm_shared_object1/test_so-print-size.txt | 39 - .../nm_shared_object1/test_so-radix-hexa.txt | 39 - .../nm_shared_object1/test_so-radix-octal.txt | 39 - .../ts/nm_shared_object1/test_so-sort-no.txt | 39 - .../ts/nm_shared_object1/test_so-sort-num.txt | 39 - .../test_so-sort-reverse-no.txt | 39 - .../test_so-sort-reverse-num.txt | 39 - .../test_so-sort-reverse-size.txt | 13 - .../test_so-sort-reverse.txt | 39 - .../nm_shared_object1/test_so-sort-size.txt | 13 - .../nm/ts/nm_shared_object1/test_so-undef.txt | 18 - .../test/nm/ts/nm_shared_object1/test_so.uu | 315 - .../test/nm/ts/nm_shared_object2/Makefile | 7 - .../test/nm/ts/nm_shared_object2/tc.sh | 198 - .../ts/nm_shared_object2/test_ko-dynamic.txt | 0 .../ts/nm_shared_object2/test_ko-external.txt | 30 - .../nm_shared_object2/test_ko-format-bsd.txt | 81 - .../test_ko-format-posix.txt | 81 - .../nm_shared_object2/test_ko-format-sysv.txt | 87 - .../test_ko-print-file-name.txt | 81 - .../nm_shared_object2/test_ko-print-size.txt | 81 - .../nm_shared_object2/test_ko-radix-hexa.txt | 81 - .../nm_shared_object2/test_ko-radix-octal.txt | 81 - .../ts/nm_shared_object2/test_ko-sort-no.txt | 81 - .../ts/nm_shared_object2/test_ko-sort-num.txt | 81 - .../test_ko-sort-reverse-no.txt | 81 - .../test_ko-sort-reverse-num.txt | 81 - .../test_ko-sort-reverse-size.txt | 51 - .../test_ko-sort-reverse.txt | 81 - .../nm_shared_object2/test_ko-sort-size.txt | 51 - .../nm/ts/nm_shared_object2/test_ko-undef.txt | 30 - .../test/nm/ts/nm_shared_object2/test_ko.uu | 330 - .../test/nm/ts/vector_str/Makefile | 20 - .../test/nm/ts/vector_str/vector_str-tc.c | 392 - contrib/elftoolchain/test/tet/Makefile | 66 - .../test/tet/bin/check-tet-journal | 118 - contrib/elftoolchain/test/tet/bin/munge-ts | 168 - contrib/elftoolchain/test/tet/common/elfts.m4 | 80 - .../test/tet/patches/configure.patch | 13 - .../test/tet/patches/defines.linux.patch | 13 - .../test/tet/patches/guessos.patch | 15 - contrib/elftoolchain/tools/Makefile | 14 - .../tools/build-automation/Makefile | 10 - .../tools/build-automation/README | 10 - .../tools/build-automation/cli/yabs.1 | 117 - .../build-automation/executor/yabs-executor.1 | 102 - .../elftoolchain/tools/html-manpages/Makefile | 25 - .../tools/html-manpages/html-manpages.sh | 160 - .../tools/html-manpages/mandoc.css | 351 - 1940 files changed, 367356 deletions(-) delete mode 100644 contrib/elftoolchain/.cirrus.yml delete mode 100644 contrib/elftoolchain/GNUmakefile delete mode 100644 contrib/elftoolchain/INSTALL delete mode 100644 contrib/elftoolchain/Makefile delete mode 100644 contrib/elftoolchain/README.rst delete mode 100644 contrib/elftoolchain/RELEASE-NOTES delete mode 100644 contrib/elftoolchain/addr2line/Makefile delete mode 100644 contrib/elftoolchain/addr2line/addr2line.1 delete mode 100644 contrib/elftoolchain/addr2line/addr2line.c delete mode 100644 contrib/elftoolchain/addr2line/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/ar/Makefile delete mode 100644 contrib/elftoolchain/ar/acplex.l delete mode 100644 contrib/elftoolchain/ar/acpyacc.y delete mode 100644 contrib/elftoolchain/ar/ar.1 delete mode 100644 contrib/elftoolchain/ar/ar.5 delete mode 100644 contrib/elftoolchain/ar/ar.c delete mode 100644 contrib/elftoolchain/ar/ar.h delete mode 100644 contrib/elftoolchain/ar/benchmark/acp.sh delete mode 100644 contrib/elftoolchain/ar/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/ar/os.Linux.mk delete mode 100644 contrib/elftoolchain/ar/ranlib.1 delete mode 100644 contrib/elftoolchain/ar/read.c delete mode 100644 contrib/elftoolchain/ar/util.c delete mode 100644 contrib/elftoolchain/ar/write.c delete mode 100644 contrib/elftoolchain/as/Makefile delete mode 100644 contrib/elftoolchain/as/as.1 delete mode 100644 contrib/elftoolchain/as/as.c delete mode 100644 contrib/elftoolchain/brandelf/Makefile delete mode 100644 contrib/elftoolchain/brandelf/brandelf.1 delete mode 100644 contrib/elftoolchain/brandelf/brandelf.c delete mode 100644 contrib/elftoolchain/common/Makefile delete mode 100644 contrib/elftoolchain/common/_elftc.h delete mode 100644 contrib/elftoolchain/common/elfdefinitions.h delete mode 100755 contrib/elftoolchain/common/native-elf-format delete mode 100644 contrib/elftoolchain/common/os.Linux.mk delete mode 100644 contrib/elftoolchain/common/utarray.h delete mode 100644 contrib/elftoolchain/common/uthash.h delete mode 100644 contrib/elftoolchain/cxxfilt/Makefile delete mode 100644 contrib/elftoolchain/cxxfilt/c++filt.1 delete mode 100644 contrib/elftoolchain/cxxfilt/cxxfilt.c delete mode 100644 contrib/elftoolchain/documentation/Makefile delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/Makefile delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.cover.tex delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.tex delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/prog1.txt delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/prog2.txt delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/prog3.txt delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/prog4.txt delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/prog5.txt delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/prog6.txt delete mode 100644 contrib/elftoolchain/documentation/libelf-by-example/title-page-content.tex delete mode 100644 contrib/elftoolchain/elfcopy/Makefile delete mode 100644 contrib/elftoolchain/elfcopy/archive.c delete mode 100644 contrib/elftoolchain/elfcopy/ascii.c delete mode 100644 contrib/elftoolchain/elfcopy/binary.c delete mode 100644 contrib/elftoolchain/elfcopy/elfcopy.1 delete mode 100644 contrib/elftoolchain/elfcopy/elfcopy.h delete mode 100644 contrib/elftoolchain/elfcopy/main.c delete mode 100644 contrib/elftoolchain/elfcopy/mcs.1 delete mode 100644 contrib/elftoolchain/elfcopy/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/elfcopy/pe.c delete mode 100644 contrib/elftoolchain/elfcopy/sections.c delete mode 100644 contrib/elftoolchain/elfcopy/segments.c delete mode 100644 contrib/elftoolchain/elfcopy/strip.1 delete mode 100644 contrib/elftoolchain/elfcopy/symbols.c delete mode 100644 contrib/elftoolchain/elfdump/Makefile delete mode 100644 contrib/elftoolchain/elfdump/elfdump.1 delete mode 100644 contrib/elftoolchain/elfdump/elfdump.c delete mode 100644 contrib/elftoolchain/elfdump/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/findtextrel/Makefile delete mode 100644 contrib/elftoolchain/findtextrel/findtextrel.1 delete mode 100644 contrib/elftoolchain/findtextrel/findtextrel.c delete mode 100644 contrib/elftoolchain/isa/Makefile delete mode 100644 contrib/elftoolchain/isa/avr.isa delete mode 100644 contrib/elftoolchain/isa/isa.1 delete mode 100644 contrib/elftoolchain/isa/isa.5 delete mode 100644 contrib/elftoolchain/isa/isa.c delete mode 100644 contrib/elftoolchain/ld/Makefile delete mode 100644 contrib/elftoolchain/ld/amd64.c delete mode 100644 contrib/elftoolchain/ld/amd64.h delete mode 100644 contrib/elftoolchain/ld/amd64_script.ld delete mode 100644 contrib/elftoolchain/ld/bigmips_script.ld delete mode 100644 contrib/elftoolchain/ld/i386.c delete mode 100644 contrib/elftoolchain/ld/i386.h delete mode 100644 contrib/elftoolchain/ld/i386_script.ld delete mode 100644 contrib/elftoolchain/ld/ld.1 delete mode 100644 contrib/elftoolchain/ld/ld.h delete mode 100644 contrib/elftoolchain/ld/ld_arch.c delete mode 100644 contrib/elftoolchain/ld/ld_arch.h delete mode 100644 contrib/elftoolchain/ld/ld_dynamic.c delete mode 100644 contrib/elftoolchain/ld/ld_dynamic.h delete mode 100644 contrib/elftoolchain/ld/ld_ehframe.c delete mode 100644 contrib/elftoolchain/ld/ld_ehframe.h delete mode 100644 contrib/elftoolchain/ld/ld_error.c delete mode 100644 contrib/elftoolchain/ld/ld_exp.c delete mode 100644 contrib/elftoolchain/ld/ld_exp.h delete mode 100644 contrib/elftoolchain/ld/ld_file.c delete mode 100644 contrib/elftoolchain/ld/ld_file.h delete mode 100644 contrib/elftoolchain/ld/ld_hash.c delete mode 100644 contrib/elftoolchain/ld/ld_hash.h delete mode 100644 contrib/elftoolchain/ld/ld_input.c delete mode 100644 contrib/elftoolchain/ld/ld_input.h delete mode 100644 contrib/elftoolchain/ld/ld_layout.c delete mode 100644 contrib/elftoolchain/ld/ld_layout.h delete mode 100644 contrib/elftoolchain/ld/ld_main.c delete mode 100644 contrib/elftoolchain/ld/ld_options.c delete mode 100644 contrib/elftoolchain/ld/ld_options.h delete mode 100644 contrib/elftoolchain/ld/ld_output.c delete mode 100644 contrib/elftoolchain/ld/ld_output.h delete mode 100644 contrib/elftoolchain/ld/ld_path.c delete mode 100644 contrib/elftoolchain/ld/ld_path.h delete mode 100644 contrib/elftoolchain/ld/ld_reloc.c delete mode 100644 contrib/elftoolchain/ld/ld_reloc.h delete mode 100644 contrib/elftoolchain/ld/ld_script.awk delete mode 100644 contrib/elftoolchain/ld/ld_script.c delete mode 100644 contrib/elftoolchain/ld/ld_script.h delete mode 100644 contrib/elftoolchain/ld/ld_script_lexer.l delete mode 100644 contrib/elftoolchain/ld/ld_script_parser.y delete mode 100644 contrib/elftoolchain/ld/ld_strtab.c delete mode 100644 contrib/elftoolchain/ld/ld_strtab.h delete mode 100644 contrib/elftoolchain/ld/ld_symbols.c delete mode 100644 contrib/elftoolchain/ld/ld_symbols.h delete mode 100644 contrib/elftoolchain/ld/ld_symver.c delete mode 100644 contrib/elftoolchain/ld/ld_symver.h delete mode 100644 contrib/elftoolchain/ld/ld_utils.h delete mode 100644 contrib/elftoolchain/ld/littlemips_script.ld delete mode 100644 contrib/elftoolchain/ld/mips.c delete mode 100644 contrib/elftoolchain/ld/mips.h delete mode 100644 contrib/elftoolchain/libdwarf/Makefile delete mode 100644 contrib/elftoolchain/libdwarf/Version.map delete mode 100644 contrib/elftoolchain/libdwarf/_libdwarf.h delete mode 100644 contrib/elftoolchain/libdwarf/dwarf.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf.h delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_abbrev.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_flag.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_location_expr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_name.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_producer.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_ref_address.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_reference.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_signed_const.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_string.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_AT_targ_address.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_arange.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_die_to_debug.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_directory_decl.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_expr_addr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_expr_gen.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_fde_inst.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_file_decl.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_frame_cie.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_frame_fde.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_funcname.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_line_entry.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_pubname.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_typename.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_varname.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_add_weakname.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_arange.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_attr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_attr.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_attrlist.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_attroffset.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_attrval.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_child.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_cu.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_dealloc.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_dealloc.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_def_macro.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_die.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_die_abbrev_code.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_die_link.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_diename.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_dieoffset.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_dump.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_end_macro_file.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_errmsg.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_errmsg.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_errno.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_expand_frame_instructions.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_expr_current_offset.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_expr_into_block.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_fde_cfa_offset.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_find_macro_value_start.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_finish.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_finish.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_form.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formaddr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formblock.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formexprloc.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formflag.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formref.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formsig8.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formstring.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_formudata.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_frame.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_funcs.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_AT_name.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_abbrev.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_abbrev_children_flag.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_abbrev_code.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_abbrev_entry.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_abbrev_tag.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_address_size.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_arange.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_arange_info.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_aranges.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_cie_index.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_cie_info.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_cie_of_fde.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_cu_die_offset.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_elf.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_at_pc.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs3.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg3.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_instr_bytes.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_list.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_n.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_fde_range.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_form_class.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_funcs.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_globals.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_loclist_entry.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_macro_details.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_pubtypes.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_ranges.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_relocation_info.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_relocation_info_count.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_section_bytes.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_str.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_types.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_vars.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_get_weaks.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_hasattr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_hasform.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_highpc.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_init.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_init.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_lineno.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_lineno.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_lne_end_sequence.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_lne_set_address.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_loclist.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_loclist.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_loclist_from_expr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_macinfo.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_nametbl.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_new_die.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_new_expr.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_new_fde.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_next_cu_header.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_object_init.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_arange.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_attr.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_die.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_expr.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_finish.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_frame.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_funcs.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_init.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_lineno.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_macinfo.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_nametbl.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_pubnames.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_reloc.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_sections.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_types.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_vars.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pro_weaks.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_producer_init.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_producer_set_isa.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pubnames.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_pubtypes.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_ranges.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_reloc.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_reset_section_bytes.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_sections.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_set_frame_cfa_value.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_seterrarg.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_seterror.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_srcfiles.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_srclines.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_start_macro_file.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_str.c delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_tag.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_transform_to_disk_form.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_types.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_undef_macro.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_vars.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_vendor_ext.3 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_weaks.m4 delete mode 100644 contrib/elftoolchain/libdwarf/dwarf_whatattr.3 delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf.h delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_abbrev.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_arange.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_attr.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_die.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_elf_access.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_elf_init.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_error.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_frame.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_info.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_init.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_lineno.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_loc.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_loclist.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_macinfo.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_nametbl.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_ranges.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_reloc.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_rw.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_sections.c delete mode 100644 contrib/elftoolchain/libdwarf/libdwarf_str.c delete mode 100644 contrib/elftoolchain/libdwarf/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/libelf/Makefile delete mode 100644 contrib/elftoolchain/libelf/Version.map delete mode 100644 contrib/elftoolchain/libelf/_libelf.h delete mode 100644 contrib/elftoolchain/libelf/_libelf_ar.h delete mode 100644 contrib/elftoolchain/libelf/_libelf_config.h delete mode 100644 contrib/elftoolchain/libelf/elf.3 delete mode 100644 contrib/elftoolchain/libelf/elf.c delete mode 100644 contrib/elftoolchain/libelf/elf_begin.3 delete mode 100644 contrib/elftoolchain/libelf/elf_begin.c delete mode 100644 contrib/elftoolchain/libelf/elf_cntl.3 delete mode 100644 contrib/elftoolchain/libelf/elf_cntl.c delete mode 100644 contrib/elftoolchain/libelf/elf_data.c delete mode 100644 contrib/elftoolchain/libelf/elf_end.3 delete mode 100644 contrib/elftoolchain/libelf/elf_end.c delete mode 100644 contrib/elftoolchain/libelf/elf_errmsg.3 delete mode 100644 contrib/elftoolchain/libelf/elf_errmsg.c delete mode 100644 contrib/elftoolchain/libelf/elf_errno.c delete mode 100644 contrib/elftoolchain/libelf/elf_fill.3 delete mode 100644 contrib/elftoolchain/libelf/elf_fill.c delete mode 100644 contrib/elftoolchain/libelf/elf_flag.c delete mode 100644 contrib/elftoolchain/libelf/elf_flagdata.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getarhdr.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getarhdr.c delete mode 100644 contrib/elftoolchain/libelf/elf_getarsym.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getarsym.c delete mode 100644 contrib/elftoolchain/libelf/elf_getbase.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getbase.c delete mode 100644 contrib/elftoolchain/libelf/elf_getdata.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getident.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getident.c delete mode 100644 contrib/elftoolchain/libelf/elf_getphdrnum.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getphnum.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getscn.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getshdrnum.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getshdrstrndx.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getshnum.3 delete mode 100644 contrib/elftoolchain/libelf/elf_getshstrndx.3 delete mode 100644 contrib/elftoolchain/libelf/elf_hash.3 delete mode 100644 contrib/elftoolchain/libelf/elf_hash.c delete mode 100644 contrib/elftoolchain/libelf/elf_kind.3 delete mode 100644 contrib/elftoolchain/libelf/elf_kind.c delete mode 100644 contrib/elftoolchain/libelf/elf_memory.3 delete mode 100644 contrib/elftoolchain/libelf/elf_memory.c delete mode 100644 contrib/elftoolchain/libelf/elf_next.3 delete mode 100644 contrib/elftoolchain/libelf/elf_next.c delete mode 100644 contrib/elftoolchain/libelf/elf_open.3 delete mode 100644 contrib/elftoolchain/libelf/elf_open.c delete mode 100644 contrib/elftoolchain/libelf/elf_phnum.c delete mode 100644 contrib/elftoolchain/libelf/elf_rand.3 delete mode 100644 contrib/elftoolchain/libelf/elf_rand.c delete mode 100644 contrib/elftoolchain/libelf/elf_rawfile.3 delete mode 100644 contrib/elftoolchain/libelf/elf_rawfile.c delete mode 100644 contrib/elftoolchain/libelf/elf_scn.c delete mode 100644 contrib/elftoolchain/libelf/elf_shnum.c delete mode 100644 contrib/elftoolchain/libelf/elf_shstrndx.c delete mode 100644 contrib/elftoolchain/libelf/elf_strptr.3 delete mode 100644 contrib/elftoolchain/libelf/elf_strptr.c delete mode 100644 contrib/elftoolchain/libelf/elf_types.m4 delete mode 100644 contrib/elftoolchain/libelf/elf_update.3 delete mode 100644 contrib/elftoolchain/libelf/elf_update.c delete mode 100644 contrib/elftoolchain/libelf/elf_version.3 delete mode 100644 contrib/elftoolchain/libelf/elf_version.c delete mode 100644 contrib/elftoolchain/libelf/gelf.3 delete mode 100644 contrib/elftoolchain/libelf/gelf.h delete mode 100644 contrib/elftoolchain/libelf/gelf_cap.c delete mode 100644 contrib/elftoolchain/libelf/gelf_checksum.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_checksum.c delete mode 100644 contrib/elftoolchain/libelf/gelf_dyn.c delete mode 100644 contrib/elftoolchain/libelf/gelf_ehdr.c delete mode 100644 contrib/elftoolchain/libelf/gelf_fsize.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_fsize.c delete mode 100644 contrib/elftoolchain/libelf/gelf_getcap.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getclass.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getclass.c delete mode 100644 contrib/elftoolchain/libelf/gelf_getdyn.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getehdr.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getmove.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getphdr.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getrel.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getrela.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getshdr.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getsym.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getsyminfo.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_getsymshndx.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_move.c delete mode 100644 contrib/elftoolchain/libelf/gelf_newehdr.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_newphdr.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_phdr.c delete mode 100644 contrib/elftoolchain/libelf/gelf_rel.c delete mode 100644 contrib/elftoolchain/libelf/gelf_rela.c delete mode 100644 contrib/elftoolchain/libelf/gelf_shdr.c delete mode 100644 contrib/elftoolchain/libelf/gelf_sym.c delete mode 100644 contrib/elftoolchain/libelf/gelf_syminfo.c delete mode 100644 contrib/elftoolchain/libelf/gelf_symshndx.c delete mode 100644 contrib/elftoolchain/libelf/gelf_update_ehdr.3 delete mode 100644 contrib/elftoolchain/libelf/gelf_xlate.c delete mode 100644 contrib/elftoolchain/libelf/gelf_xlatetof.3 delete mode 100644 contrib/elftoolchain/libelf/libelf.h delete mode 100644 contrib/elftoolchain/libelf/libelf_align.c delete mode 100644 contrib/elftoolchain/libelf/libelf_allocate.c delete mode 100644 contrib/elftoolchain/libelf/libelf_ar.c delete mode 100644 contrib/elftoolchain/libelf/libelf_ar_util.c delete mode 100644 contrib/elftoolchain/libelf/libelf_checksum.c delete mode 100644 contrib/elftoolchain/libelf/libelf_convert.m4 delete mode 100644 contrib/elftoolchain/libelf/libelf_data.c delete mode 100644 contrib/elftoolchain/libelf/libelf_ehdr.c delete mode 100644 contrib/elftoolchain/libelf/libelf_elfmachine.c delete mode 100644 contrib/elftoolchain/libelf/libelf_extended.c delete mode 100644 contrib/elftoolchain/libelf/libelf_fsize.m4 delete mode 100644 contrib/elftoolchain/libelf/libelf_memory.c delete mode 100644 contrib/elftoolchain/libelf/libelf_msize.m4 delete mode 100644 contrib/elftoolchain/libelf/libelf_open.c delete mode 100644 contrib/elftoolchain/libelf/libelf_phdr.c delete mode 100644 contrib/elftoolchain/libelf/libelf_shdr.c delete mode 100644 contrib/elftoolchain/libelf/libelf_xlate.c delete mode 100644 contrib/elftoolchain/libelf/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/libelf/os.Linux.mk delete mode 100644 contrib/elftoolchain/libelf/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/libelftc/Makefile delete mode 100644 contrib/elftoolchain/libelftc/Version.map delete mode 100644 contrib/elftoolchain/libelftc/_libelftc.h delete mode 100644 contrib/elftoolchain/libelftc/elftc.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_bfdtarget.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_copyfile.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_copyfile.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_demangle.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_demangle.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_reloc_type_str.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_reloc_type_str.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_set_timestamps.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_set_timestamps.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_string_table.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_string_table_create.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_timestamp.3 delete mode 100644 contrib/elftoolchain/libelftc/elftc_timestamp.c delete mode 100644 contrib/elftoolchain/libelftc/elftc_version.3 delete mode 100644 contrib/elftoolchain/libelftc/libelftc.h delete mode 100644 contrib/elftoolchain/libelftc/libelftc_bfdtarget.c delete mode 100644 contrib/elftoolchain/libelftc/libelftc_dem_arm.c delete mode 100644 contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c delete mode 100644 contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c delete mode 100644 contrib/elftoolchain/libelftc/libelftc_hash.c delete mode 100644 contrib/elftoolchain/libelftc/libelftc_vstr.c delete mode 100755 contrib/elftoolchain/libelftc/make-toolchain-version delete mode 100644 contrib/elftoolchain/libelftc/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/libelftc/os.Linux.mk delete mode 100644 contrib/elftoolchain/libelftc/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/libpe/Makefile delete mode 100644 contrib/elftoolchain/libpe/_libpe.h delete mode 100644 contrib/elftoolchain/libpe/libpe.h delete mode 100644 contrib/elftoolchain/libpe/libpe_buffer.c delete mode 100644 contrib/elftoolchain/libpe/libpe_coff.c delete mode 100644 contrib/elftoolchain/libpe/libpe_dos.c delete mode 100644 contrib/elftoolchain/libpe/libpe_init.c delete mode 100644 contrib/elftoolchain/libpe/libpe_rich.c delete mode 100644 contrib/elftoolchain/libpe/libpe_section.c delete mode 100644 contrib/elftoolchain/libpe/libpe_utils.c delete mode 100644 contrib/elftoolchain/libpe/os.Linux.mk delete mode 100644 contrib/elftoolchain/libpe/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/libpe/pe.h delete mode 100644 contrib/elftoolchain/libpe/pe_buffer.c delete mode 100644 contrib/elftoolchain/libpe/pe_cntl.c delete mode 100644 contrib/elftoolchain/libpe/pe_coff.c delete mode 100644 contrib/elftoolchain/libpe/pe_dos.c delete mode 100644 contrib/elftoolchain/libpe/pe_flag.c delete mode 100644 contrib/elftoolchain/libpe/pe_init.c delete mode 100644 contrib/elftoolchain/libpe/pe_rich.c delete mode 100644 contrib/elftoolchain/libpe/pe_section.c delete mode 100644 contrib/elftoolchain/libpe/pe_symtab.c delete mode 100644 contrib/elftoolchain/libpe/pe_update.c delete mode 100644 contrib/elftoolchain/mk/elftoolchain.components.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.inc.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.lib.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.m4.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.os.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.prog.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.subdir.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.test-target.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.test.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.tet.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.tetbase.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.tetvars.mk delete mode 100644 contrib/elftoolchain/mk/elftoolchain.tex.mk delete mode 100644 contrib/elftoolchain/mk/os.Darwin.mk delete mode 100644 contrib/elftoolchain/mk/os.DragonFly.mk delete mode 100644 contrib/elftoolchain/mk/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/mk/os.Linux.mk delete mode 100644 contrib/elftoolchain/mk/os.Minix.mk delete mode 100644 contrib/elftoolchain/mk/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/mk/os.OpenBSD.mk delete mode 100644 contrib/elftoolchain/nm/Makefile delete mode 100644 contrib/elftoolchain/nm/nm.1 delete mode 100644 contrib/elftoolchain/nm/nm.c delete mode 100644 contrib/elftoolchain/nm/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/readelf/Makefile delete mode 100644 contrib/elftoolchain/readelf/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/readelf/readelf.1 delete mode 100644 contrib/elftoolchain/readelf/readelf.c delete mode 100644 contrib/elftoolchain/size/Makefile delete mode 100644 contrib/elftoolchain/size/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/size/size.1 delete mode 100644 contrib/elftoolchain/size/size.c delete mode 100644 contrib/elftoolchain/strings/Makefile delete mode 100644 contrib/elftoolchain/strings/os.NetBSD.mk delete mode 100644 contrib/elftoolchain/strings/strings.1 delete mode 100644 contrib/elftoolchain/strings/strings.c delete mode 100644 contrib/elftoolchain/test/Makefile delete mode 100644 contrib/elftoolchain/test/ar/Makefile delete mode 100644 contrib/elftoolchain/test/ar/README delete mode 100644 contrib/elftoolchain/test/ar/func.sh delete mode 100644 contrib/elftoolchain/test/ar/plugin/Makefile delete mode 100644 contrib/elftoolchain/test/ar/plugin/Makefile.ardiff delete mode 100644 contrib/elftoolchain/test/ar/plugin/Makefile.teraser delete mode 100644 contrib/elftoolchain/test/ar/plugin/ardiff.c delete mode 100644 contrib/elftoolchain/test/ar/plugin/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/test/ar/plugin/teraser.c delete mode 100644 contrib/elftoolchain/test/ar/run.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.err delete mode 100644 contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.out delete mode 100644 contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/add-nonexistent/out/archive.a delete mode 100644 contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.err delete mode 100644 contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.out delete mode 100644 contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/addself-liba/in/addself-liba.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/addself-liba/out/addself-liba.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba-v/archive-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba-v/archive-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba-v/archive-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba-v/archive-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba-v/in/archive-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba-v/out/archive-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba/archive-liba.err delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba/archive-liba.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba/archive-liba.out delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba/archive-liba.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba/in/archive-liba.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liba/out/archive-liba.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liblong/archive-liblong.err delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liblong/archive-liblong.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liblong/archive-liblong.out delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liblong/archive-liblong.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liblong/in/archive-liblong.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-liblong/out/archive-liblong.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libmix-v/archive-libmix-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libmix-v/archive-libmix-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libmix-v/archive-libmix-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libmix-v/archive-libmix-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libmix-v/in/archive-libmix-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libmix-v/out/archive-libmix-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/archive-libnonelf-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/archive-libnonelf-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/archive-libnonelf-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/archive-libnonelf-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/in/archive-libnonelf-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/out/archive-libnonelf-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-1/arscript-1.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-1/arscript-1.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-1/arscript-1.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-1/arscript-1.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-1/in/arscript-1.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-1/out/arscript-1.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-2/in/arscript-2.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-2/out/arscript-2.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-3/arscript-3.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-3/arscript-3.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-3/arscript-3.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-3/arscript-3.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-3/in/arscript-3.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-3/out/arscript-3.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-4/arscript-4.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-4/arscript-4.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-4/arscript-4.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-4/arscript-4.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-4/in/arscript-4.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-4/out/arscript-4.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-5/arscript-5.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-5/arscript-5.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-5/arscript-5.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-5/arscript-5.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-5/in/arscript-5.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-5/out/arscript-5.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-6/arscript-6.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-6/arscript-6.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-6/arscript-6.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-6/arscript-6.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-6/in/arscript-6.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-6/out/arscript-6.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-7/arscript-7.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-7/arscript-7.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-7/arscript-7.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-7/arscript-7.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-7/in/arscript-7.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-7/out/arscript-7.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.err delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.out delete mode 100755 contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-8/in/arscript-8.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/arscript-8/out/arscript-8.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.err delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.out delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/in/bsd-archive-liba32.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/out/bsd-archive-liba32.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/bsd-archive-liblong.err delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/bsd-archive-liblong.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/bsd-archive-liblong.out delete mode 100755 contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/bsd-archive-liblong.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/in/bsd-archive-liblong.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/out/bsd-archive-liblong.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.err delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.out delete mode 100755 contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/in/bsd-archive-libnonelf.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/out/bsd-archive-libnonelf.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/bsd-extract-liba32-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/bsd-extract-liba32-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/bsd-extract-liba32-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/bsd-extract-liba32-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/in/bsd-extract-liba32-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/out/bsd-extract-liba32-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/bsd-extract-liblong-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/bsd-extract-liblong-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/bsd-extract-liblong-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/bsd-extract-liblong-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/in/bsd-extract-liblong-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/out/bsd-extract-liblong-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase-liba-v/in/compbase-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase-liba-v/out/compbase-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase_read-liba/compbase_read-liba.err delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase_read-liba/compbase_read-liba.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase_read-liba/compbase_read-liba.out delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase_read-liba/compbase_read-liba.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase_read-liba/in/compbase_read-liba.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/compbase_read-liba/out/compbase_read-liba.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liba-v/delete-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liba-v/delete-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liba-v/delete-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liba-v/delete-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liba-v/in/delete-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liba-v/out/delete-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.err delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.out delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liblong/in/delete-liblong.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-liblong/out/delete-liblong.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-libmix-v/in/delete-libmix-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete-libmix-v/out/delete-libmix-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete_all-liba-v/delete_all-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/delete_all-liba-v/delete_all-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/delete_all-liba-v/delete_all-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/delete_all-liba-v/delete_all-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/delete_all-liba-v/in/delete_all-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/delete_all-liba-v/out/delete_all-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba-v/extract-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba-v/extract-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba-v/extract-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba-v/extract-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba-v/in/extract-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba-v/out/extract-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba/extract-liba.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba/extract-liba.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba/extract-liba.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba/extract-liba.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba/in/extract-liba.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liba/out/extract-liba.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liblong/extract-liblong.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liblong/extract-liblong.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liblong/extract-liblong.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liblong/extract-liblong.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liblong/in/extract-liblong.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-liblong/out/extract-liblong.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libmix-v/extract-libmix-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libmix-v/extract-libmix-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libmix-v/extract-libmix-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libmix-v/extract-libmix-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libmix-v/in/extract-libmix-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libmix-v/out/extract-libmix-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libnonelf-v/extract-libnonelf-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libnonelf-v/extract-libnonelf-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libnonelf-v/extract-libnonelf-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libnonelf-v/extract-libnonelf-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libnonelf-v/in/extract-libnonelf-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-libnonelf-v/out/extract-libnonelf-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonexistent/extract-nonexistent.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonexistent/extract-nonexistent.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonexistent/extract-nonexistent.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonexistent/extract-nonexistent.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonexistent/in/valid.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonexistent/out/valid.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.err delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.out delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/in/invalid.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/invalid.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/s1 delete mode 100644 contrib/elftoolchain/test/ar/tc/list-lib65536/in/list-lib65536.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/list-lib65536/list-lib65536.err delete mode 100644 contrib/elftoolchain/test/ar/tc/list-lib65536/list-lib65536.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/list-lib65536/list-lib65536.out delete mode 100644 contrib/elftoolchain/test/ar/tc/list-lib65536/list-lib65536.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/list-lib65536/out/list-lib65536.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/list-liblong/in/list-liblong.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/list-liblong/list-liblong.err delete mode 100644 contrib/elftoolchain/test/ar/tc/list-liblong/list-liblong.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/list-liblong/list-liblong.out delete mode 100644 contrib/elftoolchain/test/ar/tc/list-liblong/list-liblong.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/list-liblong/out/list-liblong.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/list_s-libaS/in/list_s-libaS.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.err delete mode 100644 contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.out delete mode 100644 contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/list_s-libaS/out/list_s-libaS.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-liba-v/in/moveafter-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-liba-v/moveafter-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-liba-v/moveafter-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-liba-v/moveafter-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-liba-v/moveafter-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-liba-v/out/moveafter-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-libmix-v/in/moveafter-libmix-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-libmix-v/moveafter-libmix-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-libmix-v/moveafter-libmix-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-libmix-v/moveafter-libmix-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-libmix-v/moveafter-libmix-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter-libmix-v/out/moveafter-libmix-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter_movepos-liba-v/in/moveafter_movepos-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter_movepos-liba-v/moveafter_movepos-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter_movepos-liba-v/moveafter_movepos-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter_movepos-liba-v/moveafter_movepos-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter_movepos-liba-v/moveafter_movepos-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/moveafter_movepos-liba-v/out/moveafter_movepos-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-liba-v/in/movebefore-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-liba-v/movebefore-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-liba-v/movebefore-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-liba-v/movebefore-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-liba-v/movebefore-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-liba-v/out/movebefore-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-libmix/in/movebefore-libmix.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-libmix/movebefore-libmix.err delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-libmix/movebefore-libmix.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-libmix/movebefore-libmix.out delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-libmix/movebefore-libmix.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore-libmix/out/movebefore-libmix.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore_movepos-liba-v/in/movebefore_movepos-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore_movepos-liba-v/movebefore_movepos-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore_movepos-liba-v/movebefore_movepos-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore_movepos-liba-v/movebefore_movepos-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore_movepos-liba-v/movebefore_movepos-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/movebefore_movepos-liba-v/out/movebefore_movepos-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movetail-libmix/in/movetail-libmix.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/movetail-libmix/movetail-libmix.err delete mode 100644 contrib/elftoolchain/test/ar/tc/movetail-libmix/movetail-libmix.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/movetail-libmix/movetail-libmix.out delete mode 100644 contrib/elftoolchain/test/ar/tc/movetail-libmix/movetail-libmix.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/movetail-libmix/out/movetail-libmix.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/optionl-liba/in/optionl-liba.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/optionl-liba/optionl-liba.err delete mode 100644 contrib/elftoolchain/test/ar/tc/optionl-liba/optionl-liba.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/optionl-liba/optionl-liba.out delete mode 100644 contrib/elftoolchain/test/ar/tc/optionl-liba/optionl-liba.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/optionl-liba/out/optionl-liba.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong-v/in/print-liblong-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong-v/out/print-liblong-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong-v/print-liblong-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong-v/print-liblong-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong-v/print-liblong-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong-v/print-liblong-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong/in/print-liblong.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong/out/print-liblong.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong/print-liblong.err delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong/print-liblong.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong/print-liblong.out delete mode 100644 contrib/elftoolchain/test/ar/tc/print-liblong/print-liblong.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix-v/in/print-libmix-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix-v/out/print-libmix-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix/in/print-libmix.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix/out/print-libmix.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.err delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.out delete mode 100644 contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/quickadd-liba-v/in/quickadd-liba-v.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/quickadd-liba-v/out/quickadd-liba-v.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/quickadd-liba-v/quickadd-liba-v.err delete mode 100644 contrib/elftoolchain/test/ar/tc/quickadd-liba-v/quickadd-liba-v.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/quickadd-liba-v/quickadd-liba-v.out delete mode 100644 contrib/elftoolchain/test/ar/tc/quickadd-liba-v/quickadd-liba-v.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.err delete mode 100644 contrib/elftoolchain/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.out delete mode 100644 contrib/elftoolchain/test/ar/tc/ranlib-missing-archive/ranlib-missing-archive.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/undefined-libsbrk/in/undefined-libsbrk.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/undefined-libsbrk/out/undefined-libsbrk.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/undefined-libsbrk/undefined-libsbrk.err delete mode 100644 contrib/elftoolchain/test/ar/tc/undefined-libsbrk/undefined-libsbrk.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/undefined-libsbrk/undefined-libsbrk.out delete mode 100644 contrib/elftoolchain/test/ar/tc/undefined-libsbrk/undefined-libsbrk.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-ab/usage-ab.err delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-ab/usage-ab.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-ab/usage-ab.out delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-ab/usage-ab.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.err delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.out delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.err delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.out delete mode 100644 contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.sh delete mode 100644 contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/in/weaksymbol-libweak.in.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/out/weaksymbol-libweak.out.shar delete mode 100644 contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/weaksymbol-libweak.err delete mode 100644 contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/weaksymbol-libweak.eval delete mode 100644 contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/weaksymbol-libweak.out delete mode 100644 contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/weaksymbol-libweak.sh delete mode 100644 contrib/elftoolchain/test/ar/tcgen.sh delete mode 100644 contrib/elftoolchain/test/cxxfilt/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/tet_scen delete mode 100644 contrib/elftoolchain/test/cxxfilt/tetexec.cfg delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/builtin/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/builtin/tclist delete mode 100755 contrib/elftoolchain/test/cxxfilt/ts/common/func.sh delete mode 100755 contrib/elftoolchain/test/cxxfilt/ts/common/gen.awk delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/common/ts.mk delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/misc/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/misc/tclist delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/qualifiers/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/qualifiers/tclist delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/regression/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/regression/tclist delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/substitute/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/substitute/tclist delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/template/Makefile delete mode 100644 contrib/elftoolchain/test/cxxfilt/ts/template/tclist delete mode 100644 contrib/elftoolchain/test/elfcopy/Makefile delete mode 100644 contrib/elftoolchain/test/elfcopy/func.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/plugin/Makefile delete mode 100644 contrib/elftoolchain/test/elfcopy/plugin/Makefile.ardiff delete mode 100644 contrib/elftoolchain/test/elfcopy/plugin/Makefile.teraser delete mode 100644 contrib/elftoolchain/test/elfcopy/plugin/ardiff.c delete mode 100644 contrib/elftoolchain/test/elfcopy/plugin/os.FreeBSD.mk delete mode 100644 contrib/elftoolchain/test/elfcopy/plugin/teraser.c delete mode 100644 contrib/elftoolchain/test/elfcopy/run.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/in/elfcopy-L-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/out/elfcopy-L-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-2/elfcopy-L-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-2/elfcopy-L-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-2/elfcopy-L-2.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-2/elfcopy-L-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-2/in/elfcopy-L-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-2/out/elfcopy-L-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-1/elfcopy-N-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-1/elfcopy-N-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-1/elfcopy-N-1.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-1/elfcopy-N-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-1/in/elfcopy-N-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-1/out/elfcopy-N-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-2/elfcopy-N-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-2/elfcopy-N-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-2/elfcopy-N-2.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-2/elfcopy-N-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-2/in/elfcopy-N-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-N-2/out/elfcopy-N-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-1/elfcopy-noops-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-1/elfcopy-noops-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-1/elfcopy-noops-1.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-1/elfcopy-noops-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-1/in/elfcopy-noops-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-1/out/elfcopy-noops-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-2/elfcopy-noops-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-2/elfcopy-noops-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-2/elfcopy-noops-2.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-2/elfcopy-noops-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-2/in/elfcopy-noops-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-2/out/elfcopy-noops-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-3/elfcopy-noops-3.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-3/elfcopy-noops-3.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-3/elfcopy-noops-3.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-3/elfcopy-noops-3.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-3/in/elfcopy-noops-3.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-3/out/elfcopy-noops-3.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/elfcopy-noops-4.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/elfcopy-noops-4.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/elfcopy-noops-4.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/elfcopy-noops-4.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/in/elfcopy-noops-4.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/out/elfcopy-noops-4.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/in/elfcopy-noops-5.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/out/elfcopy-noops-5.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/in/elfcopy-noops-6.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/out/elfcopy-noops-6.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/in/elfcopy-noops-7.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/out/elfcopy-noops-7.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/in/elfcopy-noops-archive-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/out/elfcopy-noops-archive-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-2/elfcopy-noops-archive-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-2/elfcopy-noops-archive-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-2/elfcopy-noops-archive-2.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-2/elfcopy-noops-archive-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-2/in/elfcopy-noops-archive-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-2/out/elfcopy-noops-archive-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-rename-1/elfcopy-rename-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-rename-1/elfcopy-rename-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-rename-1/elfcopy-rename-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-rename-1/elfcopy-rename-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-rename-1/in/elfcopy-rename-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-rename-1/out/elfcopy-rename-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-ihex-1/elfcopy-to-ihex-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-ihex-1/elfcopy-to-ihex-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-ihex-1/elfcopy-to-ihex-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-ihex-1/elfcopy-to-ihex-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-ihex-1/in/elfcopy-to-ihex-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-ihex-1/out/elfcopy-to-ihex-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-1/elfcopy-to-srec-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-1/elfcopy-to-srec-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-1/elfcopy-to-srec-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-1/elfcopy-to-srec-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-1/in/elfcopy-to-srec-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-1/out/elfcopy-to-srec-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-2/elfcopy-to-srec-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-2/elfcopy-to-srec-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-2/elfcopy-to-srec-2.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-2/elfcopy-to-srec-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-2/in/elfcopy-to-srec-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-2/out/elfcopy-to-srec-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-3/elfcopy-to-srec-3.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-3/elfcopy-to-srec-3.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-3/elfcopy-to-srec-3.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-3/elfcopy-to-srec-3.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-3/in/elfcopy-to-srec-3.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-srec-3/out/elfcopy-to-srec-3.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-symbolsrec-1/elfcopy-to-symbolsrec-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-symbolsrec-1/elfcopy-to-symbolsrec-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-symbolsrec-1/elfcopy-to-symbolsrec-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-symbolsrec-1/elfcopy-to-symbolsrec-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-symbolsrec-1/in/elfcopy-to-symbolsrec-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/elfcopy-to-symbolsrec-1/out/elfcopy-to-symbolsrec-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-1/in/strip-K-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-1/out/strip-K-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-1/strip-K-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-1/strip-K-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-1/strip-K-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/strip-K-1/strip-K-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-2/in/strip-K-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-2/out/strip-K-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-2/strip-K-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-2/strip-K-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-K-2/strip-K-2.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/strip-K-2/strip-K-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-1/in/strip-all-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-1/out/strip-all-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-1/strip-all-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-1/strip-all-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-1/strip-all-1.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-1/strip-all-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-10/in/strip-all-10.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-10/out/strip-all-10.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-10/strip-all-10.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-10/strip-all-10.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-10/strip-all-10.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-10/strip-all-10.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-2/in/strip-all-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-2/out/strip-all-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-2/strip-all-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-2/strip-all-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-2/strip-all-2.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-2/strip-all-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-3/in/strip-all-3.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-3/out/strip-all-3.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-3/strip-all-3.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-3/strip-all-3.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-3/strip-all-3.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-3/strip-all-3.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-4/in/strip-all-4.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-4/out/strip-all-4.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-4/strip-all-4.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-4/strip-all-4.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-4/strip-all-4.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-4/strip-all-4.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-5/in/strip-all-5.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-5/out/strip-all-5.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-6/in/strip-all-6.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-6/out/strip-all-6.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-7/in/strip-all-7.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-7/out/strip-all-7.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-8/in/strip-all-8.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-8/out/strip-all-8.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-9/in/strip-all-9.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-9/out/strip-all-9.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-9/strip-all-9.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-9/strip-all-9.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-9/strip-all-9.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-9/strip-all-9.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-1/in/strip-all-archive-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-1/out/strip-all-archive-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-1/strip-all-archive-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-1/strip-all-archive-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-1/strip-all-archive-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-1/strip-all-archive-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-2/in/strip-all-archive-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-2/out/strip-all-archive-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-2/strip-all-archive-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-2/strip-all-archive-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-2/strip-all-archive-2.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/strip-all-archive-2/strip-all-archive-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/in/strip-debug-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/out/strip-debug-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/in/strip-debug-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/out/strip-debug-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/in/strip-debug-3.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/out/strip-debug-3.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/in/strip-debug-4.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/out/strip-debug-4.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/strip-debug-4.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/strip-debug-4.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/strip-debug-4.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/strip-debug-4.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-empty-1/in/strip-empty-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-empty-1/out/strip-empty-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-empty-1/strip-empty-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-empty-1/strip-empty-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-empty-1/strip-empty-1.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-empty-1/strip-empty-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/in/strip-onlydebug-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/out/strip-onlydebug-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/in/strip-unneeded-1.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/out/strip-unneeded-1.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.out delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/in/strip-unneeded-2.in.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/out/strip-unneeded-2.out.shar delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/strip-unneeded-2.err delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/strip-unneeded-2.eval delete mode 100644 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/strip-unneeded-2.out delete mode 100755 contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/strip-unneeded-2.sh delete mode 100644 contrib/elftoolchain/test/elfcopy/tcgen.sh delete mode 100644 contrib/elftoolchain/test/elfdump/Makefile delete mode 100644 contrib/elftoolchain/test/elfdump/tet_scen delete mode 100644 contrib/elftoolchain/test/elfdump/tetexec.cfg delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive1/liba.a delete mode 100755 contrib/elftoolchain/test/elfdump/ts/archive1/tc delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/archive2/libdwarf.a delete mode 100755 contrib/elftoolchain/test/elfdump/ts/archive2/tc delete mode 100755 contrib/elftoolchain/test/elfdump/ts/bin/tcgen.sh delete mode 100755 contrib/elftoolchain/test/elfdump/ts/common/func.sh delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@n%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@n%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@n%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@n%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso1/libelf.so delete mode 100755 contrib/elftoolchain/test/elfdump/ts/dso1/tc delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@n%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@n%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@n%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@n%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.out delete mode 100755 contrib/elftoolchain/test/elfdump/ts/dso2/tc delete mode 100644 contrib/elftoolchain/test/elfdump/ts/dso2/test.so delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@G%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@G%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@G@e%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@G@e%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@G%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@G%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@c@s%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@c@s%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@d%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@d%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@e%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@e%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@e@k%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@e@k%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@e@p%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@e@p%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@h%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@h%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@n%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@n%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@r%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@r%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@r@N%.rela.dyn%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@r@N%.rela.dyn%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@r@N%.rela.dyn@N%.rela.plt%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@r@N%.rela.dyn@N%.rela.plt%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@s@N%.dynsym%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@s@N%.dynsym%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@v%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@S@v%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c@d%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c@d%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c@p@n%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c@p@n%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c@s%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@c@s%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e@d%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e@d%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e@p%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e@p%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e@p@c@d%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@e@p@c@d%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@n%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@n%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@p@e%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@p@e%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@p@n%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@p@n%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@p@s%ls.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/@p@s%ls.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec1/ls delete mode 100755 contrib/elftoolchain/test/elfdump/ts/exec1/tc delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@G%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@G%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@G@e%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@G@e%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@G%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@G%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@c@s%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@c@s%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@d%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@d%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@e%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@e%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@e@p%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@e@p%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@h%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@h%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@k%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@k%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@n%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@n%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@r%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@r%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@r@N%.rela.dyn%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@r@N%.rela.dyn%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@s@N%.dynsym%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@s@N%.dynsym%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@v%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@S@v%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c@d%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c@d%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c@p@n%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c@p@n%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c@s%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@c@s%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@d%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@d%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@i%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@i%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@p%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@p%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@p@c@d%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@e@p@c@d%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@h%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@h%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@n%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@n%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@p@e%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@p@e%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@p@n%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@p@n%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@p@s%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@p@s%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@r%cp.err delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/@r%cp.out delete mode 100644 contrib/elftoolchain/test/elfdump/ts/exec2/cp delete mode 100755 contrib/elftoolchain/test/elfdump/ts/exec2/tc delete mode 100644 contrib/elftoolchain/test/libdwarf/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/tet_scen delete mode 100644 contrib/elftoolchain/test/libdwarf/tetbuild.cfg delete mode 100644 contrib/elftoolchain/test/libdwarf/tetclean.cfg delete mode 100644 contrib/elftoolchain/test/libdwarf/tetexec.cfg delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/Makefile.tset delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/README delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/bin/count-ic delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/common/die_traverse.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/common/die_traverse2.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/common/driver.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/common/driver.h delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/common/object/dt32-g1.gz delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/common/object/dt64-g1.gz delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/common/object/dt64-g3.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/common/object/dto64-g1.gz delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/common/object/ec32-g1.gz delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/common/object/ec64-g1.gz delete mode 100755 contrib/elftoolchain/test/libdwarf/ts/common/object/ec64-g3.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/common/object/ld_symver.o-64-g1.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/dto64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/dwarf_abbrev.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dwarf_arange.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dto64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dwarf_attr.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/dwarf_attrlist.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ld_symver.o-64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_child/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dwarf_child.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_child/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_child/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dwarf_die_convenience.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/dwarf_die_offset.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dto64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dwarf_die_query.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ld_symver.o-64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dwarf_form.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_form/ld_symver.o-64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/dto64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/dwarf_frame.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dwarf_get_address_size.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_init/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dwarf_init.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_init/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_init/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dto64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dwarf_lineno.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/dwarf_loclist.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dt64-g3.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dwarf_macinfo.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/ec64-g3.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/dwarf_next_cu_header.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ld_symver.o-64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/dwarf_pubnames.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/dwarf_ranges.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/Makefile delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dt32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dt64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dwarf_siblingof.c delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/ec32-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/ec64-g1.xml.gz delete mode 100644 contrib/elftoolchain/test/libelf/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/README delete mode 100644 contrib/elftoolchain/test/libelf/tet_code delete mode 100644 contrib/elftoolchain/test/libelf/tet_scen delete mode 100644 contrib/elftoolchain/test/libelf/tetbuild.cfg delete mode 100644 contrib/elftoolchain/test/libelf/tetclean.cfg delete mode 100644 contrib/elftoolchain/test/libelf/tetexec.cfg delete mode 100644 contrib/elftoolchain/test/libelf/tset/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/Makefile.tset delete mode 100644 contrib/elftoolchain/test/libelf/tset/abi/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/abi/abi.m4 delete mode 100755 contrib/elftoolchain/test/libelf/tset/bin/elf-hash delete mode 100755 contrib/elftoolchain/test/libelf/tset/bin/elfc delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/check_elf.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/ehdr-malformed-1.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/ehdr.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/ehdr_template.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/elf_flag.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/elfts-compare-files.c delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/elfts-copy-file.c delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/elfts-initversion.c delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/elfts-openfile.c delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/elfts.h delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/fsize.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/gelf_ehdr_template.h delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/getclass.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/getshdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/newehdr.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/newehdr_template.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/newscn.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/newscn2.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/phdr.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/phdr_template.c delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/rdwr.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/rdwr1.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/rdwr2.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/shdr.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/u1.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/versioning.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/xlate.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/xlate_template.c delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/xlate_template.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/xscn-1.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/xscn-2.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/xscn-3.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/common/zerosection.yaml delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_getehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_getehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_getphdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_getphdr/phdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_getshdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_getshdr/shdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_newehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_newehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/xlate.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/xlate.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_getehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_getehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_getphdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_getphdr/phdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_getshdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_getshdr/shdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_newehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_newehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/xlate.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/xlate.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_begin/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_begin/begin.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_begin/entry-too-large.ar delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_cntl/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_cntl/cntl.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_end/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_end/end.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_errmsg/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_errmsg/errmsg.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_errno/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_errno/errno.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_fill/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_fill/fill.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/flagarhdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagdata/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagdata/data.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagelf/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagelf/elf.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagphdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagphdr/phdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagscn/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagscn/scn.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagshdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_flagshdr/shdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_fsize/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_fsize/fsize.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getarhdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getarhdr/getarhdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getarsym/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getarsym/getarsym.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getbase/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getbase/getbase.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getdata/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getdata/getdata.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getident/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getident/getident.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getscn/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getscn/getscn.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getshnum/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getshnum/getshnum.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/getshstrndx.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_hash/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_hash/hash.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_kind/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_kind/kind.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_memory/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_memory/memory.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_ndxscn/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_ndxscn/ndxscn.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_newscn/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_newscn/newscn.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_next/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_next/next.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_nextscn/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_nextscn/nextscn.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_rand/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_rand/empty-file.ar delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_rand/missing-file.ar delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_rand/rand.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_rawfile/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_rawfile/rawfile.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_strptr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_strptr/strptr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_update/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_update/update.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_version/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/elf_version/version.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_getclass/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_getclass/getclass.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_getehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_getehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_newehdr/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_newehdr/ehdr.m4 delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_xlate/Makefile delete mode 100644 contrib/elftoolchain/test/libelf/tset/gelf_xlate/xlate.m4 delete mode 100644 contrib/elftoolchain/test/libelftc/Makefile delete mode 100644 contrib/elftoolchain/test/libelftc/tet_scen delete mode 100644 contrib/elftoolchain/test/libelftc/tetbuild.cfg delete mode 100644 contrib/elftoolchain/test/libelftc/tetclean.cfg delete mode 100644 contrib/elftoolchain/test/libelftc/tetexec.cfg delete mode 100644 contrib/elftoolchain/test/libelftc/tset/Makefile delete mode 100644 contrib/elftoolchain/test/libelftc/tset/Makefile.tset delete mode 100644 contrib/elftoolchain/test/libelftc/tset/elftc_string_table/Makefile delete mode 100644 contrib/elftoolchain/test/libelftc/tset/elftc_string_table/string_table.m4 delete mode 100644 contrib/elftoolchain/test/libelftc/tset/elftc_version/Makefile delete mode 100644 contrib/elftoolchain/test/libelftc/tset/elftc_version/elftc_version.m4 delete mode 100644 contrib/elftoolchain/test/libtest/Makefile delete mode 100644 contrib/elftoolchain/test/libtest/README.rst delete mode 100644 contrib/elftoolchain/test/libtest/bin/Makefile delete mode 100755 contrib/elftoolchain/test/libtest/bin/make-test-scaffolding delete mode 100644 contrib/elftoolchain/test/libtest/bin/make-test-scaffolding.1 delete mode 100644 contrib/elftoolchain/test/libtest/driver/Makefile delete mode 100644 contrib/elftoolchain/test/libtest/driver/driver.c delete mode 100644 contrib/elftoolchain/test/libtest/driver/driver.h delete mode 100644 contrib/elftoolchain/test/libtest/driver/driver_main.c delete mode 100644 contrib/elftoolchain/test/libtest/driver/test_driver.1 delete mode 100644 contrib/elftoolchain/test/libtest/examples/Makefile delete mode 100644 contrib/elftoolchain/test/libtest/examples/minimal_example.c delete mode 100644 contrib/elftoolchain/test/libtest/examples/simple_example.c delete mode 100644 contrib/elftoolchain/test/libtest/lib/Makefile delete mode 100644 contrib/elftoolchain/test/libtest/lib/test.3 delete mode 100644 contrib/elftoolchain/test/libtest/lib/test.c delete mode 100644 contrib/elftoolchain/test/libtest/lib/test.h delete mode 100644 contrib/elftoolchain/test/libtest/lib/test_case.h delete mode 100644 contrib/elftoolchain/test/nm/Makefile delete mode 100644 contrib/elftoolchain/test/nm/tet_code delete mode 100644 contrib/elftoolchain/test/nm/tet_scen delete mode 100644 contrib/elftoolchain/test/nm/tetbuild.cfg delete mode 100644 contrib/elftoolchain/test/nm/tetclean.cfg delete mode 100644 contrib/elftoolchain/test/nm/tetexec.cfg delete mode 100644 contrib/elftoolchain/test/nm/ts/Makefile delete mode 100644 contrib/elftoolchain/test/nm/ts/Makefile.tset delete mode 100644 contrib/elftoolchain/test/nm/ts/common/func.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/common/test_nm.c delete mode 100644 contrib/elftoolchain/test/nm/ts/cpp_demangle/Makefile delete mode 100644 contrib/elftoolchain/test/nm/ts/cpp_demangle/cpp_demangle-tc.c delete mode 100644 contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/Makefile delete mode 100644 contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c delete mode 100644 contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/Makefile delete mode 100644 contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_archive1/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-dynamic.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-external.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-bsd.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-posix.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-file-name.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-octal.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-size-sort.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sysv.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-undef.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_archive2/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-dynamic.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-external.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-format-bsd.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-format-posix.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-format-sysv.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-print-file-name.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-print-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-radix-hexa.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-radix-octal.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-reverse.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-sort-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-sort-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-sort-reverse-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-sort-reverse-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-sort-reverse-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-sort-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar-undef.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_archive2/test_ar.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_debug/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_debug/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_debug/test_obj-debug-syms.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_debug/test_obj.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_object1/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-dynamic.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-external.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-bsd.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-posix.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-sysv.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-file-name.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-hexa.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-octal.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-undef.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object1/test_obj.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_object2/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-dynamic.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-external.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-format-bsd.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-format-posix.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-format-sysv.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-print-file-name.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-print-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-radix-hexa.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-radix-octal.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-reverse-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-reverse-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-reverse-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-reverse.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-sort-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj-undef.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_object2/test_obj.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_option/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_option/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_shared_object1/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-dynamic.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-external.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-posix.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-undef.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/Makefile delete mode 100755 contrib/elftoolchain/test/nm/ts/nm_shared_object2/tc.sh delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-dynamic.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-external.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-format-bsd.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-format-posix.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-format-sysv.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-print-file-name.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-print-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-radix-hexa.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-radix-octal.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-no.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-num.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-reverse.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-sort-size.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko-undef.txt delete mode 100644 contrib/elftoolchain/test/nm/ts/nm_shared_object2/test_ko.uu delete mode 100644 contrib/elftoolchain/test/nm/ts/vector_str/Makefile delete mode 100644 contrib/elftoolchain/test/nm/ts/vector_str/vector_str-tc.c delete mode 100644 contrib/elftoolchain/test/tet/Makefile delete mode 100755 contrib/elftoolchain/test/tet/bin/check-tet-journal delete mode 100755 contrib/elftoolchain/test/tet/bin/munge-ts delete mode 100644 contrib/elftoolchain/test/tet/common/elfts.m4 delete mode 100644 contrib/elftoolchain/test/tet/patches/configure.patch delete mode 100644 contrib/elftoolchain/test/tet/patches/defines.linux.patch delete mode 100644 contrib/elftoolchain/test/tet/patches/guessos.patch delete mode 100644 contrib/elftoolchain/tools/Makefile delete mode 100644 contrib/elftoolchain/tools/build-automation/Makefile delete mode 100644 contrib/elftoolchain/tools/build-automation/README delete mode 100644 contrib/elftoolchain/tools/build-automation/cli/yabs.1 delete mode 100644 contrib/elftoolchain/tools/build-automation/executor/yabs-executor.1 delete mode 100644 contrib/elftoolchain/tools/html-manpages/Makefile delete mode 100755 contrib/elftoolchain/tools/html-manpages/html-manpages.sh delete mode 100644 contrib/elftoolchain/tools/html-manpages/mandoc.css diff --git a/contrib/elftoolchain/.cirrus.yml b/contrib/elftoolchain/.cirrus.yml deleted file mode 100644 index 7f0c7fc7..00000000 --- a/contrib/elftoolchain/.cirrus.yml +++ /dev/null @@ -1,31 +0,0 @@ -env: - CIRRUS_CLONE_DEPTH: 1 - -freebsd_task: - freebsd_instance: - matrix: - image: freebsd-11-2-release-amd64 - image: freebsd-12-1-release-amd64 - install_script: pkg install -y git py27-yaml - script: - - fetch http://tetworks.opengroup.org/downloads/38/software/Sources/3.8/tet3.8-src.tar.gz - - tar -x -C test/tet -f tet3.8-src.tar.gz - - make - test_script: - - make run-tests - -ubuntu_task: - container: - image: ubuntu:18.04 - setup_script: - - apt-get update - - apt-get install -y - binutils bison bmake curl flex g++ gcc git - libarchive-dev libbsd-dev libc6-dev libexpat1-dev lsb-release - m4 perl python-yaml sharutils zlib1g-dev - script: - - curl -O http://tetworks.opengroup.org/downloads/38/software/Sources/3.8/tet3.8-src.tar.gz - - tar -x -C test/tet -z -f tet3.8-src.tar.gz - - bmake - test_script: - - bmake run-tests diff --git a/contrib/elftoolchain/GNUmakefile b/contrib/elftoolchain/GNUmakefile deleted file mode 100644 index 2ac98c85..00000000 --- a/contrib/elftoolchain/GNUmakefile +++ /dev/null @@ -1,22 +0,0 @@ -# -*- mode: makefile; -*- -# -# Issue a useful error message if a user tries to build the project -# using GNU make. - -all: - $(error ERROR: This source tree needs to be built with BSD 'make'.) - -# Some GNU/Linux distributions offer pre-built packages of BSD 'make': -# -# - On Debian-derived distributions, the "pmake" package provides an -# older version of BSD 'make' that should suffice. -# - On Fedora, the 'bmake' package seems appropriate (untested). -# -# Portable source code for NetBSD 'make' may be found at: -# http://www.crufty.net/help/sjg/bmake.html -# -# -# Please also read the file "INSTALL" for additional information about -# building the project from source. -# -# $Id$ diff --git a/contrib/elftoolchain/INSTALL b/contrib/elftoolchain/INSTALL deleted file mode 100644 index 3a07fd40..00000000 --- a/contrib/elftoolchain/INSTALL +++ /dev/null @@ -1,247 +0,0 @@ -Installation Instructions -========================= - -This file contains instructions on building and installing the -libraries and utilities in the elftoolchain project's sources. - -Supported Operating Systems ---------------------------- - -The source tree is currently built and tested on the following -operating systems. - - ================= ======== ======================= - Operating System Version Supported Architectures - ----------------- -------- ----------------------- - `DragonFly BSD`_ 5.2 amd64 - FreeBSD_ 11.3 amd64 & i386 - Minix_ 3.0.2 i386 - NetBSD_ 8.1 amd64 - OpenBSD_ 6.5 amd64 - Ubuntu_ GNU/Linux 18.04 x86_64 - ================= ======== ======================= - -.. _DragonFly BSD: http://www.dragonflybsd.org/ -.. _FreeBSD: http://www.freebsd.org/ -.. _Minix: http://www.minix3.org/ -.. _NetBSD: http://www.netbsd.org/ -.. _OpenBSD: http://www.openbsd.org/ -.. _Ubuntu: http://www.ubuntu.com/ - -Building the Source Tree -======================== - -The core libraries and utilities that make up the software release are -always built by default. Builds of the project's test suites (in the -``test/`` subdirectory), and of additional documentation (in the directory -``documentation/``) are optional, and will only be attempted if these -directories are present. - -Prerequisites -------------- - -:DragonFly BSD 5.2: - - The core libraries and utilities should build out of the box on - a stock install of DragonFly BSD. - - - To build and run the test suite: - - #. The current release of the `Test Execution Toolkit`_ needs to - be downloaded and unpacked into the ``test/tet/`` directory. - - #. The ``py27-yaml`` package needs to be installed:: - - % sudo pkg install py27-yaml - - - Building additional documentation is not currently supported - under DragonFly BSD. - -:FreeBSD 11.3: - - The core libraries and utilities should build out of the box on - a stock install of FreeBSD. - - - To build and run the test suite: - - #. The current release of the `Test Execution Toolkit`_ needs to - be downloaded and unpacked into the ``test/tet/`` directory:: - - % cd /test/tet - % tar -xf /PATH/TO/DOWNLOADED/TET-3.8-SOURCES - - #. The ``python`` and ``py27-yaml`` packages need to be installed:: - - % sudo pkg install python py27-yaml - - - Building additional documentation is not currently supported under - FreeBSD 11.3. - -:Minix 3.2.0: - - The following packages are pre-requisites for building the - sources on Minix 3.2.0: - - =================== ===================================== - **Package** **Description** - =================== ===================================== - ``gcc44`` The GNU C compiler. - =================== ===================================== - - The following command line may be used to install the necessary - pre-requisites:: - - # pkgin install gcc44 - - - The test suites cannot currently be built under Minix. - - - Building additional documentation is not currently supported - under Minix. - -:OpenBSD 6.5: - - The following packages are pre-requisites for building the - sources on OpenBSD 6.5: - - =================== ===================================== - **Package** **Description** - =================== ===================================== - ``libarchive`` An archive access library. - =================== ===================================== - - The following command line may be used to install the necessary - pre-requisites:: - - # pkg_add libarchive - - - Building additional documentation is not currently supported - under OpenBSD. - -:NetBSD 8.1: - - The core libraries and utilities should build out of the box on - a stock install of NetBSD 8.1. - - - To build and run the test suite: - - #. The current release of the `Test Execution Toolkit`_, needs - to be downloaded and unpacked into the ``test/tet/`` - directory. - - #. The following additional package needs to be installed, as - listed in the example command line below :: - - % sudo pkgin install py27-yaml - - - Building additional documentation is not currently supported - under NetBSD. - -:Ubuntu GNU/Linux 18.04: - - The following packages are pre-requisites for building the - sources on Ubuntu GNU/Linux 18.04: - - =================== ===================================== - **Package** **Description** - =================== ===================================== - ``binutils`` Needed for the build. - ``bison`` Parser generator. - ``flex`` Lexical analyser. - ``gcc`` C compiler. - ``libarchive-dev`` Archive access library. - ``libbsd-dev`` BSD headers and libraries. - ``libc6-dev`` Files for C language development. - ``libexpat1-dev`` An XML processing library. - ``m4`` Macro processor. - ``bmake`` NetBSD ``make``. - ``python-yaml`` A YAML library for Python. - ``sharutils`` For ``uudecode``. - ``zlib1g-dev`` Compression library. - =================== ===================================== - - The following command line may be used to install the necessary - pre-requisites:: - - % sudo apt install binutils bison flex gcc libarchive-dev \ - libc6-dev m4 bmake zlib1g-dev - - - To build and run the test suite: - - #. The current release of the `Test Execution Toolkit`_, needs - to be downloaded and unpacked into the ``test/tet/`` - directory. - - #. The following additional packages need to be installed, as - listed in the example command line below:: - - % sudo apt install libexpat1-dev python-yaml sharutils - - - To build additional documentation, the packages listed in the - example command line below are needed:: - - % sudo apt install html-xml-utils libbsd-dev mandoc \ - texlive-extra-utils texlive-latex-recommended texlive-pictures - -.. _Test Execution Toolkit: http://tetworks.opengroup.org/ -.. _OpenGroup: http://www.opengroup.org/ - - -Building the software ---------------------- - -The software may be built by running **make**. - -On `DragonFly BSD`_, FreeBSD_, Minix_, NetBSD_ and OpenBSD_, use:: - - % make - -On Ubuntu GNU/Linux with the **bmake** package installed, use:: - - % bmake - - -Testing the software ---------------------- - -The ``run-tests`` target in the top-level Makefile will build and -execute the test suites that are part of this software. - -On `DragonFly BSD`_, FreeBSD_ and NetBSD_, use:: - - % make run-tests - -On Ubuntu GNU/Linux with the **bmake** package installed, use:: - - % bmake run-tests - -Installing the Software -======================= - -The software may be installed using the ``install`` target. - -On `DragonFly BSD`_, FreeBSD_, Minix_, NetBSD_ and OpenBSD_ use:: - - % make install - -On Ubuntu GNU/Linux with the **bmake** package installed, use:: - - % bmake install - - -By default the ``install`` target will install utilities into -``/usr/bin/``, libraries into ``/usr/lib/`` and manual pages into -``/usr/share/man/man[0-9]/``. - -The installation directory may be changed using the ``DESTDIR`` -variable. For example:: - - % bmake DESTDIR=$HOME/local install - - -Additional Information -====================== - -Additional information about the project may be found on the `project -website`_. - -.. _project website: http://elftoolchain.sourceforge.net/ - -.. $Id$ - -.. Local Variables: -.. mode: rst -.. End: diff --git a/contrib/elftoolchain/Makefile b/contrib/elftoolchain/Makefile deleted file mode 100644 index aba055cc..00000000 --- a/contrib/elftoolchain/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# $Id$ - -TOP= . - -.include "${TOP}/mk/elftoolchain.components.mk" -.include "${TOP}/mk/elftoolchain.os.mk" - -# Build configuration information first. -SUBDIR += common - -# Build the base libraries next. -SUBDIR += libelf -.if defined(WITH_PE) && ${WITH_PE} == "yes" -SUBDIR += libpe -.endif - -# The instruction set analyser. -.if defined(WITH_ISA) && ${WITH_ISA} == "yes" -SUBDIR += isa # ('isa' does not build on all platforms yet). -.endif - -# Build tools after the libraries. - -# Build the test suites. -.if exists(${.CURDIR}/test) && defined(WITH_TESTS) && ${WITH_TESTS} == "yes" -SUBDIR += test -.endif - -# Build additional build tooling. -.if defined(WITH_BUILD_TOOLS) && ${WITH_BUILD_TOOLS} == "yes" -SUBDIR += tools -.endif - -# Build documentation at the end. -.if exists(${.CURDIR}/documentation) && \ - defined(WITH_ADDITIONAL_DOCUMENTATION) && \ - ${WITH_ADDITIONAL_DOCUMENTATION} == "yes" -SUBDIR += documentation -.endif - -.include "${TOP}/mk/elftoolchain.subdir.mk" - -# -# Special top-level targets. -# - -# Run the test suites. -.if exists(${.CURDIR}/test) && defined(WITH_TESTS) && ${WITH_TESTS} == "yes" -run-tests: all .PHONY - (cd ${.CURDIR}/test; ${MAKE} test) -.endif diff --git a/contrib/elftoolchain/README.rst b/contrib/elftoolchain/README.rst deleted file mode 100644 index 9c539bdc..00000000 --- a/contrib/elftoolchain/README.rst +++ /dev/null @@ -1,126 +0,0 @@ -The Elftoolchain Project -======================== - -.. contents:: Table of Contents - -Description ------------ - -This software implements essential compilation tools and libraries for: - -- managing program objects conforming to the ELF_ object format, and -- for managing DWARF_ debugging information in ELF objects. - -The project currently implements the following utilities and -libraries: - -=========== ============================================ -Name Description -=========== ============================================ -ar Archive manager. -addr2line Debug tool. -brandelf Manage the ELF brand on executables. -c++filt Translate encoded symbols. -elfcopy Copy and translate between object formats. -elfdump Diagnostic tool. -findtextrel Find undesired text relocations. -libdwarf DWARF access library. -libelf ELF access library. -mcs Manage comment sections. -nm List symbols in an ELF object. -ranlib Add archive symbol tables to an archive. -readelf Display ELF information. -size List object sizes. -strings Extract printable strings. -strip Discard information from ELF objects. -=========== ============================================ - -.. _ELF: http://en.wikipedia.org/wiki/Executable_and_Linkable_Format -.. _DWARF: http://www.dwarfstd.org/ - - -Project Documentation ---------------------- - -- Release notes for released versions of this software are present in - the file ``RELEASE-NOTES`` in the current directory. -- The file ``INSTALL`` in the current directory contains instructions - on building and installing this software. -- Reference documentation in the form of manual pages is provided for - the utilities and libraries developed by the project. -- Additional tutorial documentation is present in the - ``documentation`` directory. - - -Tracking Ongoing Development ----------------------------- - -The project uses subversion_ for its version control system. - -.. _subversion: https://subversion.apache.org/ - -The subversion branch for the current set of sources may be accessed -at the following URL:: - - https://sourceforge.net/p/elftoolchain/code/HEAD/tree/trunk/ - -The project's source tree may be checked out from its repository by -using the ``svn checkout`` command:: - - % svn checkout https://svn.code.sf.net/p/elftoolchain/code/trunk - -Checked-out sources may be kept upto-date by running ``svn update`` -inside the source directory:: - - % svn update - - -Instructions on building and installing the software are given in the -file ``INSTALL`` in the current directory. - -Downloading Released Software ------------------------------ - -Released versions of the project's software may also be downloaded -from SourceForge's `file release system`_. - -.. _file release system: http://sourceforge.net/projects/elftoolchain/files/ - -Copyright and License ---------------------- - -This code is copyright its authors, and is distributed under the `BSD -License`_. - -.. _BSD License: http://www.opensource.org/licenses/bsd-license.php - - -Developer Community -------------------- - -The project's developers may be contacted using the mailing list: -````. - - -Reporting Bugs --------------- - -Please use our `bug tracker`_ for viewing existing bug reports and -for submitting new bug reports. - -.. _`bug tracker`: https://sourceforge.net/p/elftoolchain/tickets/ - - -Additional Information ----------------------- - -Additional information about the project may be found on the `project -website`_. - -.. _project website: http://elftoolchain.sourceforge.net/ - -.. $Id$ - -.. Local Variables: -.. mode: rst -.. End: diff --git a/contrib/elftoolchain/RELEASE-NOTES b/contrib/elftoolchain/RELEASE-NOTES deleted file mode 100644 index 4e08bdca..00000000 --- a/contrib/elftoolchain/RELEASE-NOTES +++ /dev/null @@ -1,206 +0,0 @@ -.. $Id$ - -.. This file contains a template for use when writing release notes. -.. It needs to be updated with release-specific content prior to -.. cutting a release. RST comments (such as this one) also need to be -.. removed prior to the release. - -.. The tokens '%.*%' need be replaced with actual content. - -Release Notes for Elftoolchain Software Version %.%.% -===================================================== - -About The Project ------------------ - -The `Elftoolchain project`_ develops BSD-licensed implementations of -essential compilation tools and libraries for handling ELF based program -objects. - -About The Release ------------------ - -.. Describe the rationale for the release (e.g. new features, -.. significant bug fixes, etc.). - -Libraries and Utilities -~~~~~~~~~~~~~~~~~~~~~~~ - -This release comprises the following libraries and utilities. - - ================= ========================================== - **Name** **Description** - ================= ========================================== - **ar** Archive manager. - **addr2line** Debug tool. - **brandelf** Manage the ELF brand on executables. - **c++filt** Translate encoded symbols. - **elfcopy** Copy and translate between object formats. - **elfdump** Diagnostic tool. - **findtextrel** Find undesired text relocations. - **libdwarf** DWARF access library. - **libelf** ELF access library. - **mcs** Manage comment sections. - **nm** List symbols in an ELF object. - **ranlib** Add archive symbol tables to an archive. - **readelf** Display ELF information. - **size** List object sizes. - **strings** Extract printable strings. - **strip** Discard information from ELF objects. - ================= ========================================== - -Documentation -~~~~~~~~~~~~~ - -Each public API and invocable utility has a reference manual entry. -We currently offer %NENTRIES% manual entries, documented in %NFILES% -manual pages. - -Additionally, this release contains the following documentation: - - ================= ========================================== - **Name** **Description** - ================= ========================================== - libelf-by-example A tutorial introduction to **libelf**. - ================= ========================================== - -Test Suites -~~~~~~~~~~~ - -The release contains the following test suites: - - ================= ========================================== - **Name** **Description** - ================= ========================================== - ar Test the **ar** utility. - elfcopy Test the **elfcopy** utility. - elfdump Test the **elfdump** utility. - libdwarf Test the **libdwarf** library. - libelf Test the **libelf** library. - nm Test the **nm** utility. - ================= ========================================== - - -System Requirements -------------------- - -.. Hardware and software requirements for using this software. - -This software is designed to run on Unix(TM)-like operating systems -such as the BSD-family of operating systems and GNU/Linux. - -This release has been built and tested on the following operating -systems: - - ==================== =========== =========================== - **Operating System** **Version** **Supported Architectures** - -------------------- ----------- --------------------------- - `DragonFly BSD`_ 2.10.1 i386 - FreeBSD_ 10.2 amd64 & i386 - Minix_ 3.2.0 i386 - NetBSD_ 7.0 i386 - OpenBSD_ v5.0 i386 - Ubuntu_ GNU/Linux 14.04LTS x86_64 - ==================== =========== =========================== - - -Installation and Upgrades -========================= - -Installation ------------- - -Instructions for building and installing this software from source are -described in the file "INSTALL". - -Upgrading ---------- - -.. Special notes about upgrading this software from a prior release. -.. For example, if we introduce any backwards-incompatible behaviour, -.. or if we deprecate existing behaviour. - - -Release Information -=================== - -Changes in this release ------------------------ - -.. A list of significant changes in the release. - -Outstanding Issues ------------------- - -.. Problems discovered when testing the release. - -Known Limitations ------------------ - -.. Known limitations. - -Test Statistics ---------------- - -The test summary for this release is presented below: - - ========= ========= ================ =============== ================ =================== - **Suite** **Tests** **DragonFlyBSD** **FreeBSD** **NetBSD** **Ubuntu 10.04LTS** - ========= ========= ================ =============== ================ =================== - ar - elfcopy - elfdump - libdwarf - libelf - nm - ========= ========= ================ =============== ================ =================== - -Key: - - :P: - Test successes. - :F: - Test failures. - :U: - Unresolved tests. - -Notes -~~~~~ - -More Information -================ - -The project's website is at http://elftoolchain.sourceforge.net/. - -Developer Community -------------------- - -The project's developers may be contacted using the mailing list: -````. - -Reporting Bugs --------------- - -Please use our `Trac instance`_ for viewing existing bug reports and -for submitting new bug reports. - - -Copyright and License -===================== - -This software is copyright its authors, and is distributed under the -`BSD License`_. - -.. _BSD License: http://www.opensource.org/licenses/bsd-license.php -.. _DragonFly BSD: http://www.dragonflybsd.org/ -.. _Elftoolchain project: http://elftoolchain.sourceforge.net/ -.. _FreeBSD: http://www.freebsd.org/ -.. _Minix: http://www.minix3.org/ -.. _NetBSD: http://www.netbsd.org/ -.. _OpenBSD: http://www.openbsd.org/ -.. _`Trac instance`: http://sourceforge.net/apps/trac/elftoolchain/report -.. _Ubuntu: http://www.ubuntu.com/ - -.. Local Variables: -.. mode: rst -.. End: diff --git a/contrib/elftoolchain/addr2line/Makefile b/contrib/elftoolchain/addr2line/Makefile deleted file mode 100644 index cd2b065c..00000000 --- a/contrib/elftoolchain/addr2line/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= addr2line -SRCS= addr2line.c - -WARNS?= 6 - -DPADD= ${LIBELF} ${LIBELFTC} ${LIBDWARF} -LDADD= -lelftc -ldwarf -lelf - -MAN1= addr2line.1 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/addr2line/addr2line.1 b/contrib/elftoolchain/addr2line/addr2line.1 deleted file mode 100644 index b520407c..00000000 --- a/contrib/elftoolchain/addr2line/addr2line.1 +++ /dev/null @@ -1,182 +0,0 @@ -.\" Copyright (c) 2009,2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer -.\" in this position and unchanged. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 30, 2015 -.Dt ADDR2LINE 1 -.Os -.Sh NAME -.Nm addr2line -.Nd translate program addresses to source file names and line numbers -.Sh SYNOPSIS -.Nm -.Op Fl a | Fl -addresses -.Op Fl b Ar target | Fl -target Ns = Ns Ar target -.Op Fl e Ar pathname | Fl -exe Ns = Ns Ar pathname -.Op Fl f | Fl -functions -.Op Fl i | Fl -inlines -.Op Fl j Ar sectionname | Fl -section Ns = Ns Ar sectionname -.Op Fl p | Fl -pretty-print -.Op Fl s | Fl -basename -.Op Fl C | Fl -demangle -.Op Fl H | Fl -help -.Op Fl V | Fl -version -.Op Ar hexaddress Ns ... -.Sh DESCRIPTION -The -.Nm -utility translates program addresses specified by the command line -arguments -.Ar hexaddress -to their corresponding source file names and line numbers. -If no arguments are given to -.Nm , -it will read these addresses from standard input. -.Pp -Program addresses specified by arguments -.Ar hexaddress -are encoded using the conventions accepted by -.Xr strtoull 3 . -.Pp -By default, -.Nm -will use the executable -.Dq Pa a.out . -The -.Fl e -option may be used to specified a different ELF object. -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width indent -.It Fl a | Fl -addresses -Display the address prior to the line number information. -.It Fl b Ar target | Fl -target Ns = Ns Ar target -This option is recognized by -.Nm -but is ignored. -It is supported for compatibility with GNU binutils. -.It Fl e Ar pathname | Fl -exe Ns = Ns Ar pathname -Use the ELF object specified by argument -.Ar pathname -to translate addresses. -If this option is not specified, -.Nm -will use the file -.Dq Pa a.out . -.It Fl f | Fl -functions -Display function names in addition to file and line number information. -.It Fl i | Fl -inlines -If the address specified belongs to an inlined function, also display the line -number information for its caller, recursively until the first non-inlined -caller. -.It Fl j Ar sectionname | Fl -section Ns = Ns Ar sectionname -The values specified by arguments -.Ar hexaddress -are to be treated as offsets into the section named -.Ar sectionname . -.It Fl p | -pretty-print -Display the line number information on one line, in human readable manner. -.It Fl s | -basename -Display only the base name for each file name. -.It Fl C | Fl -demangle -Demangle C++ names. -.It Fl H | Fl -help -Print a help message. -.It Fl V | Fl -version -Print a version identifier and exit. -.El -.Sh OUTPUT FORMAT -If the -.Fl f -option was not specified, -.Nm -will print the file name and line number for each address specified -on a separate line. -.Pp -If the -.Fl f -option was specified, -.Nm -will print a line containing the name of the function corresponding -to program address -.Ar hexaddress , -followed by a line with the file name and line number. -.Pp -If the -.Fl p -option was specified, -.Nm -will print line number information and function name on one line in -human readable manner. If the -.Fl i -option was also specified, -.Nm -will print the caller function information prefixed with -.Dq (inlined by) . -.Pp -The -.Nm -utility prints the file name and line number using the format -.Dq FILENAME:LINENUMBER . -.Pp -If a file or function name could not be determined, -.Nm -will print a question mark in their place. -If the line number could not be determined, -.Nm -will print a zero in its place. -.Sh EXAMPLES -To map address 080483c4 in the default executable -.Pa a.out -to a source file name and line number use: -.D1 "% addr2line 080483c4" -.Pp -To map address 080483c4 in executable -.Pa helloworld , -use: -.D1 "% addr2line -e helloworld 080483c4" -.Pp -To have -.Nm -act as a filter reading addresses from its standard input use: -.D1 "% addr2line" -.Pp -To print the function name corresponding to an address in addition to -its source file and line number use: -.D1 "% addr2line -f 080483c4" -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr nm 1 , -.Xr elfdump 1 , -.Xr elfcopy 1 , -.Xr strtoull 3 -.Sh AUTHORS -The -.Nm -utility was written by -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/contrib/elftoolchain/addr2line/addr2line.c b/contrib/elftoolchain/addr2line/addr2line.c deleted file mode 100644 index 80bb753f..00000000 --- a/contrib/elftoolchain/addr2line/addr2line.c +++ /dev/null @@ -1,734 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "uthash.h" -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -struct Func { - char *name; - Dwarf_Unsigned lopc; - Dwarf_Unsigned hipc; - Dwarf_Unsigned call_file; - Dwarf_Unsigned call_line; - Dwarf_Ranges *ranges; - Dwarf_Signed ranges_cnt; - struct Func *inlined_caller; - STAILQ_ENTRY(Func) next; -}; - -struct CU { - Dwarf_Off off; - Dwarf_Unsigned lopc; - Dwarf_Unsigned hipc; - char **srcfiles; - Dwarf_Signed nsrcfiles; - STAILQ_HEAD(, Func) funclist; - UT_hash_handle hh; -}; - -static struct option longopts[] = { - {"addresses", no_argument, NULL, 'a'}, - {"target" , required_argument, NULL, 'b'}, - {"demangle", no_argument, NULL, 'C'}, - {"exe", required_argument, NULL, 'e'}, - {"functions", no_argument, NULL, 'f'}, - {"inlines", no_argument, NULL, 'i'}, - {"section", required_argument, NULL, 'j'}, - {"pretty-print", no_argument, NULL, 'p'}, - {"basename", no_argument, NULL, 's'}, - {"help", no_argument, NULL, 'H'}, - {"version", no_argument, NULL, 'V'}, - {NULL, 0, NULL, 0} -}; -static int demangle, func, base, inlines, print_addr, pretty_print; -static char unknown[] = { '?', '?', '\0' }; -static Dwarf_Addr section_base; -static struct CU *culist; - -#define USAGE_MESSAGE "\ -Usage: %s [options] hexaddress...\n\ - Map program addresses to source file names and line numbers.\n\n\ - Options:\n\ - -a | --addresses Display address prior to line number info.\n\ - -b TGT | --target=TGT (Accepted but ignored).\n\ - -e EXE | --exe=EXE Use program \"EXE\" to translate addresses.\n\ - -f | --functions Display function names.\n\ - -i | --inlines Display caller info for inlined functions.\n\ - -j NAME | --section=NAME Values are offsets into section \"NAME\".\n\ - -p | --pretty-print Display line number info and function name\n\ - in human readable manner.\n\ - -s | --basename Only show the base name for each file name.\n\ - -C | --demangle Demangle C++ names.\n\ - -H | --help Print a help message.\n\ - -V | --version Print a version identifier and exit.\n" - -static void -usage(void) -{ - (void) fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(1); -} - -static void -version(void) -{ - - fprintf(stderr, "%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(0); -} - -/* - * Handle DWARF 4 'offset from' DW_AT_high_pc. Although we don't - * fully support DWARF 4, some compilers (like FreeBSD Clang 3.5.1) - * generate DW_AT_high_pc as an offset from DW_AT_low_pc. - * - * "If the value of the DW_AT_high_pc is of class address, it is the - * relocated address of the first location past the last instruction - * associated with the entity; if it is of class constant, the value - * is an unsigned integer offset which when added to the low PC gives - * the address of the first location past the last instruction - * associated with the entity." - * - * DWARF4 spec, section 2.17.2. - */ -static int -handle_high_pc(Dwarf_Die die, Dwarf_Unsigned lopc, Dwarf_Unsigned *hipc) -{ - Dwarf_Error de; - Dwarf_Half form; - Dwarf_Attribute at; - int ret; - - ret = dwarf_attr(die, DW_AT_high_pc, &at, &de); - if (ret == DW_DLV_ERROR) { - warnx("dwarf_attr failed: %s", dwarf_errmsg(de)); - return (ret); - } - ret = dwarf_whatform(at, &form, &de); - if (ret == DW_DLV_ERROR) { - warnx("dwarf_whatform failed: %s", dwarf_errmsg(de)); - return (ret); - } - if (dwarf_get_form_class(2, 0, 0, form) == DW_FORM_CLASS_CONSTANT) - *hipc += lopc; - - return (DW_DLV_OK); -} - -static struct Func * -search_func(struct CU *cu, Dwarf_Unsigned addr) -{ - struct Func *f, *f0; - Dwarf_Unsigned lopc, hipc, addr_base; - int i; - - f0 = NULL; - - STAILQ_FOREACH(f, &cu->funclist, next) { - if (f->ranges != NULL) { - addr_base = 0; - for (i = 0; i < f->ranges_cnt; i++) { - if (f->ranges[i].dwr_type == DW_RANGES_END) - break; - if (f->ranges[i].dwr_type == - DW_RANGES_ADDRESS_SELECTION) { - addr_base = f->ranges[i].dwr_addr2; - continue; - } - - /* DW_RANGES_ENTRY */ - lopc = f->ranges[i].dwr_addr1 + addr_base; - hipc = f->ranges[i].dwr_addr2 + addr_base; - if (addr >= lopc && addr < hipc) { - if (f0 == NULL || - (lopc >= f0->lopc && - hipc <= f0->hipc)) { - f0 = f; - f0->lopc = lopc; - f0->hipc = hipc; - break; - } - } - } - } else if (addr >= f->lopc && addr < f->hipc) { - if (f0 == NULL || - (f->lopc >= f0->lopc && f->hipc <= f0->hipc)) - f0 = f; - } - } - - return (f0); -} - -static void -collect_func(Dwarf_Debug dbg, Dwarf_Die die, struct Func *parent, struct CU *cu) -{ - Dwarf_Die ret_die, abst_die, spec_die; - Dwarf_Error de; - Dwarf_Half tag; - Dwarf_Unsigned lopc, hipc, ranges_off; - Dwarf_Signed ranges_cnt; - Dwarf_Off ref; - Dwarf_Attribute abst_at, spec_at; - Dwarf_Ranges *ranges; - const char *funcname; - struct Func *f; - int found_ranges, ret; - - f = NULL; - abst_die = spec_die = NULL; - - if (dwarf_tag(die, &tag, &de)) { - warnx("dwarf_tag: %s", dwarf_errmsg(de)); - goto cont_search; - } - if (tag == DW_TAG_subprogram || tag == DW_TAG_entry_point || - tag == DW_TAG_inlined_subroutine) { - /* - * Function address range can be specified by either - * a DW_AT_ranges attribute which points to a range list or - * by a pair of DW_AT_low_pc and DW_AT_high_pc attributes. - */ - ranges = NULL; - ranges_cnt = 0; - found_ranges = 0; - if (dwarf_attrval_unsigned(die, DW_AT_ranges, &ranges_off, - &de) == DW_DLV_OK && - dwarf_get_ranges(dbg, (Dwarf_Off) ranges_off, &ranges, - &ranges_cnt, NULL, &de) == DW_DLV_OK) { - if (ranges != NULL && ranges_cnt > 0) { - found_ranges = 1; - goto get_func_name; - } - } - - /* - * Search for DW_AT_low_pc/DW_AT_high_pc if ranges pointer - * not found. - */ - if (dwarf_attrval_unsigned(die, DW_AT_low_pc, &lopc, &de) || - dwarf_attrval_unsigned(die, DW_AT_high_pc, &hipc, &de)) - goto cont_search; - if (handle_high_pc(die, lopc, &hipc) != DW_DLV_OK) - goto cont_search; - - get_func_name: - /* - * Most common case the function name is stored in DW_AT_name - * attribute. - */ - if (dwarf_attrval_string(die, DW_AT_name, &funcname, &de) == - DW_DLV_OK) - goto add_func; - - /* - * For inlined function, the actual name is probably in the DIE - * referenced by DW_AT_abstract_origin. (if present) - */ - if (dwarf_attr(die, DW_AT_abstract_origin, &abst_at, &de) == - DW_DLV_OK && - dwarf_global_formref(abst_at, &ref, &de) == DW_DLV_OK && - dwarf_offdie(dbg, ref, &abst_die, &de) == DW_DLV_OK && - dwarf_attrval_string(abst_die, DW_AT_name, &funcname, - &de) == DW_DLV_OK) - goto add_func; - - /* - * If DW_AT_name is not present, but DW_AT_specification is - * present, then probably the actual name is in the DIE - * referenced by DW_AT_specification. - */ - if (dwarf_attr(die, DW_AT_specification, &spec_at, &de) == - DW_DLV_OK && - dwarf_global_formref(spec_at, &ref, &de) == DW_DLV_OK && - dwarf_offdie(dbg, ref, &spec_die, &de) == DW_DLV_OK && - dwarf_attrval_string(spec_die, DW_AT_name, &funcname, - &de) == DW_DLV_OK) - goto add_func; - - /* Skip if no name associated with this DIE. */ - goto cont_search; - - add_func: - if ((f = calloc(1, sizeof(*f))) == NULL) - err(EXIT_FAILURE, "calloc"); - if ((f->name = strdup(funcname)) == NULL) - err(EXIT_FAILURE, "strdup"); - if (found_ranges) { - f->ranges = ranges; - f->ranges_cnt = ranges_cnt; - } else { - f->lopc = lopc; - f->hipc = hipc; - } - if (tag == DW_TAG_inlined_subroutine) { - f->inlined_caller = parent; - dwarf_attrval_unsigned(die, DW_AT_call_file, - &f->call_file, &de); - dwarf_attrval_unsigned(die, DW_AT_call_line, - &f->call_line, &de); - } - STAILQ_INSERT_TAIL(&cu->funclist, f, next); - } - -cont_search: - - /* Search children. */ - ret = dwarf_child(die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_child: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) { - if (f != NULL) - collect_func(dbg, ret_die, f, cu); - else - collect_func(dbg, ret_die, parent, cu); - } - - /* Search sibling. */ - ret = dwarf_siblingof(dbg, die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_siblingof: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - collect_func(dbg, ret_die, parent, cu); - - /* Cleanup */ - dwarf_dealloc(dbg, die, DW_DLA_DIE); - - if (abst_die != NULL) - dwarf_dealloc(dbg, abst_die, DW_DLA_DIE); - - if (spec_die != NULL) - dwarf_dealloc(dbg, spec_die, DW_DLA_DIE); -} - -static void -print_inlines(struct CU *cu, struct Func *f, Dwarf_Unsigned call_file, - Dwarf_Unsigned call_line) -{ - char demangled[1024]; - char *file; - - if (call_file > 0 && (Dwarf_Signed) call_file <= cu->nsrcfiles) - file = cu->srcfiles[call_file - 1]; - else - file = unknown; - - if (pretty_print) - printf(" (inlined by) "); - - if (func) { - if (demangle && !elftc_demangle(f->name, demangled, - sizeof(demangled), 0)) { - if (pretty_print) - printf("%s at ", demangled); - else - printf("%s\n", demangled); - } else { - if (pretty_print) - printf("%s at ", f->name); - else - printf("%s\n", f->name); - } - } - (void) printf("%s:%ju\n", base ? basename(file) : file, - (uintmax_t) call_line); - - if (f->inlined_caller != NULL) - print_inlines(cu, f->inlined_caller, f->call_file, - f->call_line); -} - -static void -translate(Dwarf_Debug dbg, Elf *e, const char* addrstr) -{ - Dwarf_Die die, ret_die; - Dwarf_Line *lbuf; - Dwarf_Error de; - Dwarf_Half tag; - Dwarf_Unsigned lopc, hipc, addr, lineno, plineno; - Dwarf_Signed lcount; - Dwarf_Addr lineaddr, plineaddr; - Dwarf_Off off; - struct CU *cu; - struct Func *f; - const char *funcname; - char *file, *file0, *pfile; - char demangled[1024]; - int ec, i, ret; - - addr = strtoull(addrstr, NULL, 16); - addr += section_base; - lineno = 0; - file = unknown; - cu = NULL; - die = NULL; - - while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de)) == DW_DLV_OK) { - die = NULL; - while (dwarf_siblingof(dbg, die, &ret_die, &de) == DW_DLV_OK) { - if (die != NULL) - dwarf_dealloc(dbg, die, DW_DLA_DIE); - die = ret_die; - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", - dwarf_errmsg(de)); - goto next_cu; - } - - /* XXX: What about DW_TAG_partial_unit? */ - if (tag == DW_TAG_compile_unit) - break; - } - if (ret_die == NULL) { - warnx("could not find DW_TAG_compile_unit die"); - goto next_cu; - } - if (dwarf_attrval_unsigned(die, DW_AT_low_pc, &lopc, &de) == - DW_DLV_OK) { - if (dwarf_attrval_unsigned(die, DW_AT_high_pc, &hipc, - &de) == DW_DLV_OK) { - /* - * Check if the address falls into the PC - * range of this CU. - */ - if (handle_high_pc(die, lopc, &hipc) != - DW_DLV_OK) - goto out; - } else { - /* Assume ~0ULL if DW_AT_high_pc not present */ - hipc = ~0ULL; - } - - /* - * Record the CU in the hash table for faster lookup - * later. - */ - if (dwarf_dieoffset(die, &off, &de) != DW_DLV_OK) { - warnx("dwarf_dieoffset failed: %s", - dwarf_errmsg(de)); - goto out; - } - HASH_FIND(hh, culist, &off, sizeof(off), cu); - if (cu == NULL) { - if ((cu = calloc(1, sizeof(*cu))) == NULL) - err(EXIT_FAILURE, "calloc"); - cu->off = off; - cu->lopc = lopc; - cu->hipc = hipc; - STAILQ_INIT(&cu->funclist); - HASH_ADD(hh, culist, off, sizeof(off), cu); - } - - if (addr >= lopc && addr < hipc) - break; - } - - next_cu: - if (die != NULL) { - dwarf_dealloc(dbg, die, DW_DLA_DIE); - die = NULL; - } - } - - if (ret != DW_DLV_OK || die == NULL) - goto out; - - switch (dwarf_srclines(die, &lbuf, &lcount, &de)) { - case DW_DLV_OK: - break; - case DW_DLV_NO_ENTRY: - /* If a CU lacks debug info, just skip it. */ - goto out; - default: - warnx("dwarf_srclines: %s", dwarf_errmsg(de)); - goto out; - } - - plineaddr = ~0ULL; - plineno = 0; - pfile = unknown; - for (i = 0; i < lcount; i++) { - if (dwarf_lineaddr(lbuf[i], &lineaddr, &de)) { - warnx("dwarf_lineaddr: %s", dwarf_errmsg(de)); - goto out; - } - if (dwarf_lineno(lbuf[i], &lineno, &de)) { - warnx("dwarf_lineno: %s", dwarf_errmsg(de)); - goto out; - } - if (dwarf_linesrc(lbuf[i], &file0, &de)) { - warnx("dwarf_linesrc: %s", dwarf_errmsg(de)); - } else - file = file0; - if (addr == lineaddr) - goto out; - else if (addr < lineaddr && addr > plineaddr) { - lineno = plineno; - file = pfile; - goto out; - } - plineaddr = lineaddr; - plineno = lineno; - pfile = file; - } - -out: - f = NULL; - funcname = NULL; - if (ret == DW_DLV_OK && (func || inlines) && cu != NULL) { - if (cu->srcfiles == NULL) - if (dwarf_srcfiles(die, &cu->srcfiles, &cu->nsrcfiles, - &de)) - warnx("dwarf_srcfiles: %s", dwarf_errmsg(de)); - if (STAILQ_EMPTY(&cu->funclist)) { - collect_func(dbg, die, NULL, cu); - die = NULL; - } - f = search_func(cu, addr); - if (f != NULL) - funcname = f->name; - } - - if (print_addr) { - if ((ec = gelf_getclass(e)) == ELFCLASSNONE) { - warnx("gelf_getclass failed: %s", elf_errmsg(-1)); - ec = ELFCLASS64; - } - if (ec == ELFCLASS32) { - if (pretty_print) - printf("0x%08jx: ", (uintmax_t) addr); - else - printf("0x%08jx\n", (uintmax_t) addr); - } else { - if (pretty_print) - printf("0x%016jx: ", (uintmax_t) addr); - else - printf("0x%016jx\n", (uintmax_t) addr); - } - } - - if (func) { - if (funcname == NULL) - funcname = unknown; - if (demangle && !elftc_demangle(funcname, demangled, - sizeof(demangled), 0)) { - if (pretty_print) - printf("%s at ", demangled); - else - printf("%s\n", demangled); - } else { - if (pretty_print) - printf("%s at ", funcname); - else - printf("%s\n", funcname); - } - } - - (void) printf("%s:%ju\n", base ? basename(file) : file, - (uintmax_t) lineno); - - if (ret == DW_DLV_OK && inlines && cu != NULL && - cu->srcfiles != NULL && f != NULL && f->inlined_caller != NULL) - print_inlines(cu, f->inlined_caller, f->call_file, - f->call_line); - - if (die != NULL) - dwarf_dealloc(dbg, die, DW_DLA_DIE); - - /* - * Reset internal CU pointer, so we will start from the first CU - * next round. - */ - while (ret != DW_DLV_NO_ENTRY) { - if (ret == DW_DLV_ERROR) - errx(EXIT_FAILURE, "dwarf_next_cu_header: %s", - dwarf_errmsg(de)); - ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de); - } -} - -static void -find_section_base(const char *exe, Elf *e, const char *section) -{ - Dwarf_Addr off; - Elf_Scn *scn; - GElf_Ehdr eh; - GElf_Shdr sh; - size_t shstrndx; - int elferr; - const char *name; - - if (gelf_getehdr(e, &eh) != &eh) { - warnx("gelf_getehdr failed: %s", elf_errmsg(-1)); - return; - } - - if (!elf_getshstrndx(e, &shstrndx)) { - warnx("elf_getshstrndx failed: %s", elf_errmsg(-1)); - return; - } - - (void) elf_errno(); - off = 0; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - continue; - } - if ((name = elf_strptr(e, shstrndx, sh.sh_name)) == NULL) - goto next; - if (!strcmp(section, name)) { - if (eh.e_type == ET_EXEC || eh.e_type == ET_DYN) { - /* - * For executables, section base is the virtual - * address of the specified section. - */ - section_base = sh.sh_addr; - } else if (eh.e_type == ET_REL) { - /* - * For relocatables, section base is the - * relative offset of the specified section - * to the start of the first section. - */ - section_base = off; - } else - warnx("unknown e_type %u", eh.e_type); - return; - } - next: - off += sh.sh_size; - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); - - errx(EXIT_FAILURE, "%s: cannot find section %s", exe, section); -} - -int -main(int argc, char **argv) -{ - Elf *e; - Dwarf_Debug dbg; - Dwarf_Error de; - const char *exe, *section; - char line[1024]; - int fd, i, opt; - - exe = NULL; - section = NULL; - while ((opt = getopt_long(argc, argv, "ab:Ce:fij:psHV", longopts, - NULL)) != -1) { - switch (opt) { - case 'a': - print_addr = 1; - break; - case 'b': - /* ignored */ - break; - case 'C': - demangle = 1; - break; - case 'e': - exe = optarg; - break; - case 'f': - func = 1; - break; - case 'i': - inlines = 1; - break; - case 'j': - section = optarg; - break; - case 'p': - pretty_print = 1; - break; - case 's': - base = 1; - break; - case 'H': - usage(); - case 'V': - version(); - default: - usage(); - } - } - - argv += optind; - argc -= optind; - - if (exe == NULL) - exe = "a.out"; - - if ((fd = open(exe, O_RDONLY)) < 0) - err(EXIT_FAILURE, "%s", exe); - - if (dwarf_init(fd, DW_DLC_READ, NULL, NULL, &dbg, &de)) - errx(EXIT_FAILURE, "dwarf_init: %s", dwarf_errmsg(de)); - - if (dwarf_get_elf(dbg, &e, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_elf: %s", dwarf_errmsg(de)); - - if (section) - find_section_base(exe, e, section); - else - section_base = 0; - - if (argc > 0) - for (i = 0; i < argc; i++) - translate(dbg, e, argv[i]); - else { - setvbuf(stdout, NULL, _IOLBF, 0); - while (fgets(line, sizeof(line), stdin) != NULL) - translate(dbg, e, line); - } - - dwarf_finish(dbg, &de); - - (void) elf_end(e); - - exit(0); -} diff --git a/contrib/elftoolchain/addr2line/os.NetBSD.mk b/contrib/elftoolchain/addr2line/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/addr2line/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/ar/Makefile b/contrib/elftoolchain/ar/Makefile deleted file mode 100644 index cfbaac36..00000000 --- a/contrib/elftoolchain/ar/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= ar -SRCS= ar.c read.c util.c write.c -LSRC= acplex.l -YSRC= acpyacc.y - -WARNS?= 5 - -DPADD= ${LIBARCHIVE} ${LIBELFTC} ${LIBELF} ${LIBZ} -LDADD= -larchive -lelftc -lelf -lz - -CFLAGS+=-I. -I${.CURDIR} - -LINKS= ${BINDIR}/ar ${BINDIR}/ranlib - -EXTRA_TARGETS= ranlib - -CLEANFILES+= ${EXTRA_TARGETS} - -MAN= ar.1 ranlib.1 ar.5 - -all: ${EXTRA_TARGETS} - -${EXTRA_TARGETS}: ${PROG} - ln -s ${PROG} ${.TARGET} - -.include "${TOP}/mk/elftoolchain.prog.mk" - -.if ${OS_HOST} == "OpenBSD" -CFLAGS+= -I/usr/local/include -LDFLAGS+= -L/usr/local/lib -.elif ${OS_HOST} == "DragonFly" -LDADD+= -lbz2 -.endif diff --git a/contrib/elftoolchain/ar/acplex.l b/contrib/elftoolchain/ar/acplex.l deleted file mode 100644 index ac227aeb..00000000 --- a/contrib/elftoolchain/ar/acplex.l +++ /dev/null @@ -1,83 +0,0 @@ -%{ -/*- - * Copyright (c) 2008 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -#include "acpyacc.h" - -#define YY_NO_UNPUT -#if !defined(ELFTC_BROKEN_YY_NO_INPUT) -#define YY_NO_INPUT -#endif - -int lineno = 1; - -int yylex(void); - -%} - -%option nounput -%option noyywrap - -%% - -ADDLIB|addlib { return (ADDLIB); } -ADDMOD|addmod { return (ADDMOD); } -CLEAR|clear { return (CLEAR); } -CREATE|create { return (CREATE); } -DELETE|delete { return (DELETE); } -DIRECTORY|directory { return (DIRECTORY); } -END|end { return (END); } -EXTRACT|extract { return (EXTRACT); } -LIST|list { return (LIST); } -OPEN|open { return (OPEN); } -REPLACE|replace { return (REPLACE); } -VERBOSE|verbose { return (VERBOSE); } -SAVE|save { return (SAVE); } -"(" { return (LP); } -")" { return (RP); } -"," { return (COMMA); } - -[-_A-Za-z0-9/:$.\\]+ { - yylval.str = strdup(yytext); - if (yylval.str == NULL) - err(EXIT_FAILURE, "strdup failed"); - return (FNAME); -} - -[ \t] /* whitespace */ -"*".* /* comment */ -";".* /* comment */ -"+\n" { lineno++; /* '+' is line continuation char */ } -"\n" { lineno++; return (EOL); } diff --git a/contrib/elftoolchain/ar/acpyacc.y b/contrib/elftoolchain/ar/acpyacc.y deleted file mode 100644 index 84f08e23..00000000 --- a/contrib/elftoolchain/ar/acpyacc.y +++ /dev/null @@ -1,658 +0,0 @@ -%{ -/*- - * Copyright (c) 2008 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "libelftc.h" - -#include "ar.h" - -ELFTC_VCSID("$Id"); - - -#define TEMPLATE "arscp.XXXXXXXX" - -struct list { - char *str; - struct list *next; -}; - - -extern int yylex(void); -extern int yyparse(void); - -static void yyerror(const char *); -static void arscp_addlib(char *archive, struct list *list); -static void arscp_addmod(struct list *list); -static void arscp_clear(void); -static void arscp_create(char *in, char *out); -static void arscp_delete(struct list *list); -static void arscp_dir(char *archive, struct list *list, char *rlt); -static void arscp_end(int eval); -static void arscp_extract(struct list *list); -static void arscp_free_argv(void); -static void arscp_free_mlist(struct list *list); -static void arscp_list(void); -static struct list *arscp_mlist(struct list *list, char *str); -static void arscp_mlist2argv(struct list *list); -static int arscp_mlist_len(struct list *list); -static void arscp_open(char *fname); -static void arscp_prompt(void); -static void arscp_replace(struct list *list); -static void arscp_save(void); -static int arscp_target_exist(void); - -extern int lineno; - -static struct bsdar *bsdar; -static char *target; -static char *tmpac; -static int interactive; -static int verbose; - -%} - -%token ADDLIB -%token ADDMOD -%token CLEAR -%token CREATE -%token DELETE -%token DIRECTORY -%token END -%token EXTRACT -%token LIST -%token OPEN -%token REPLACE -%token VERBOSE -%token SAVE -%token LP -%token RP -%token COMMA -%token EOL -%token FNAME -%type mod_list - -%union { - char *str; - struct list *list; -} - -%% - -begin - : { arscp_prompt(); } ar_script - ; - -ar_script - : cmd_list - | - ; - -mod_list - : FNAME { $$ = arscp_mlist(NULL, $1); } - | mod_list separator FNAME { $$ = arscp_mlist($1, $3); } - ; - -separator - : COMMA - | - ; - -cmd_list - : rawcmd - | cmd_list rawcmd - ; - -rawcmd - : cmd EOL { arscp_prompt(); } - ; - -cmd - : addlib_cmd - | addmod_cmd - | clear_cmd - | create_cmd - | delete_cmd - | directory_cmd - | end_cmd - | extract_cmd - | list_cmd - | open_cmd - | replace_cmd - | verbose_cmd - | save_cmd - | invalid_cmd - | empty_cmd - | error - ; - -addlib_cmd - : ADDLIB FNAME LP mod_list RP { arscp_addlib($2, $4); } - | ADDLIB FNAME { arscp_addlib($2, NULL); } - ; - -addmod_cmd - : ADDMOD mod_list { arscp_addmod($2); } - ; - -clear_cmd - : CLEAR { arscp_clear(); } - ; - -create_cmd - : CREATE FNAME { arscp_create(NULL, $2); } - ; - -delete_cmd - : DELETE mod_list { arscp_delete($2); } - ; - -directory_cmd - : DIRECTORY FNAME { arscp_dir($2, NULL, NULL); } - | DIRECTORY FNAME LP mod_list RP { arscp_dir($2, $4, NULL); } - | DIRECTORY FNAME LP mod_list RP FNAME { arscp_dir($2, $4, $6); } - ; - -end_cmd - : END { arscp_end(EXIT_SUCCESS); } - ; - -extract_cmd - : EXTRACT mod_list { arscp_extract($2); } - ; - -list_cmd - : LIST { arscp_list(); } - ; - -open_cmd - : OPEN FNAME { arscp_open($2); } - ; - -replace_cmd - : REPLACE mod_list { arscp_replace($2); } - ; - -save_cmd - : SAVE { arscp_save(); } - ; - -verbose_cmd - : VERBOSE { verbose = !verbose; } - ; - -empty_cmd - : - ; - -invalid_cmd - : FNAME { yyerror(NULL); } - ; - -%% - -/* ARGSUSED */ -static void -yyerror(const char *s) -{ - - (void) s; - printf("Syntax error in archive script, line %d\n", lineno); -} - -/* - * The arscp_open() function will first open an archive and check its - * validity. If the archive format is valid, it will call - * arscp_create() to create a temporary copy of the archive. - */ -static void -arscp_open(char *fname) -{ - struct archive *a; - struct archive_entry *entry; - int r; - - if ((a = archive_read_new()) == NULL) - bsdar_errc(bsdar, 0, "archive_read_new failed"); - archive_read_support_format_ar(a); - AC(archive_read_open_filename(a, fname, DEF_BLKSZ)); - if ((r = archive_read_next_header(a, &entry))) - bsdar_warnc(bsdar, 0, "%s", archive_error_string(a)); - AC(archive_read_close(a)); - ACV(archive_read_free(a)); - if (r != ARCHIVE_OK) - return; - arscp_create(fname, fname); -} - -/* - * Create an archive. - * - * If the parameter 'in' is NULL (the 'CREATE' command), a new empty - * archive will be created. If the parameter 'in' is not NULL (the - * 'OPEN' command), the resulting archive will be a modified version - * of the existing archive. - */ -static void -arscp_create(char *in, char *out) -{ - struct archive *a; - int ifd, ofd; - - /* Delete the previously created temporary archive, if any. */ - if (tmpac) { - if (unlink(tmpac) < 0) - bsdar_errc(bsdar, errno, "unlink failed"); - free(tmpac); - } - - tmpac = strdup(TEMPLATE); - if (tmpac == NULL) - bsdar_errc(bsdar, errno, "strdup failed"); - if ((ofd = mkstemp(tmpac)) < 0) - bsdar_errc(bsdar, errno, "mkstemp failed"); - - if (in) { - /* - * The 'OPEN' command creates a temporary copy of the - * input archive. - */ - if ((ifd = open(in, O_RDONLY)) < 0 || - elftc_copyfile(ifd, ofd) < 0) { - bsdar_warnc(bsdar, errno, "'OPEN' failed"); - (void) close(ofd); - if (ifd != -1) - (void) close(ifd); - return; - } - (void) close(ifd); - (void) close(ofd); - } else { - /* - * The 'CREATE' command creates an "empty" archive (an - * archive consisting only of the archive header). - */ - if ((a = archive_write_new()) == NULL) - bsdar_errc(bsdar, 0, "archive_write_new failed"); - archive_write_set_format_ar_svr4(a); - AC(archive_write_open_fd(a, ofd)); - AC(archive_write_close(a)); - ACV(archive_write_free(a)); - } - - /* Override the previous target, if any. */ - if (target) - free(target); - - target = out; - bsdar->filename = tmpac; -} - -/* - * Add all modules of an archive to the current archive. If the - * parameter 'list' is not NULL, only those modules specified by - * 'list' will be added. - */ -static void -arscp_addlib(char *archive, struct list *list) -{ - - if (!arscp_target_exist()) - return; - arscp_mlist2argv(list); - bsdar->addlib = archive; - ar_write_archive(bsdar, 'A'); - arscp_free_argv(); - arscp_free_mlist(list); -} - -/* - * Add modules to the current archive. - */ -static void -arscp_addmod(struct list *list) -{ - - if (!arscp_target_exist()) - return; - arscp_mlist2argv(list); - ar_write_archive(bsdar, 'q'); - arscp_free_argv(); - arscp_free_mlist(list); -} - -/* - * Delete modules from the current archive. - */ -static void -arscp_delete(struct list *list) -{ - - if (!arscp_target_exist()) - return; - arscp_mlist2argv(list); - ar_write_archive(bsdar, 'd'); - arscp_free_argv(); - arscp_free_mlist(list); -} - -/* - * Extract modules from the current archive. - */ -static void -arscp_extract(struct list *list) -{ - - if (!arscp_target_exist()) - return; - arscp_mlist2argv(list); - ar_read_archive(bsdar, 'x'); - arscp_free_argv(); - arscp_free_mlist(list); -} - -/* - * List the contents of an archive (simple mode). - */ -static void -arscp_list(void) -{ - - if (!arscp_target_exist()) - return; - bsdar->argc = 0; - bsdar->argv = NULL; - /* Always verbose. */ - bsdar->options |= AR_V; - ar_read_archive(bsdar, 't'); - bsdar->options &= ~AR_V; -} - -/* - * List the contents of an archive (advanced mode). - */ -static void -arscp_dir(char *archive, struct list *list, char *rlt) -{ - FILE *out; - - /* If rlt != NULL, redirect the output to it. */ - out = NULL; - if (rlt) { - out = bsdar->output; - if ((bsdar->output = fopen(rlt, "w")) == NULL) - bsdar_errc(bsdar, errno, "fopen %s failed", rlt); - } - - bsdar->filename = archive; - if (list) - arscp_mlist2argv(list); - else { - bsdar->argc = 0; - bsdar->argv = NULL; - } - if (verbose) - bsdar->options |= AR_V; - ar_read_archive(bsdar, 't'); - bsdar->options &= ~AR_V; - - if (rlt) { - if (fclose(bsdar->output) == EOF) - bsdar_errc(bsdar, errno, "fclose %s failed", rlt); - bsdar->output = out; - free(rlt); - } - free(archive); - bsdar->filename = tmpac; - arscp_free_argv(); - arscp_free_mlist(list); -} - - -/* - * Replace modules in the current archive. - */ -static void -arscp_replace(struct list *list) -{ - - if (!arscp_target_exist()) - return; - arscp_mlist2argv(list); - ar_write_archive(bsdar, 'r'); - arscp_free_argv(); - arscp_free_mlist(list); -} - -/* - * Rename the temporary archive to the target archive. - */ -static void -arscp_save(void) -{ - mode_t mask; - - if (target) { - if (rename(tmpac, target) < 0) - bsdar_errc(bsdar, errno, "rename failed"); - /* - * Because mkstemp() creates temporary files with mode - * 0600, we set target archive's mode as per the - * process umask. - */ - mask = umask(0); - umask(mask); - if (chmod(target, 0666 & ~mask) < 0) - bsdar_errc(bsdar, errno, "chmod failed"); - free(tmpac); - free(target); - tmpac = NULL; - target= NULL; - bsdar->filename = NULL; - } else - bsdar_warnc(bsdar, 0, "no open output archive"); -} - -/* - * Discard the contents of the current archive. This is achieved by - * invoking the 'CREATE' cmd on the current archive. - */ -static void -arscp_clear(void) -{ - char *new_target; - - if (target) { - new_target = strdup(target); - if (new_target == NULL) - bsdar_errc(bsdar, errno, "strdup failed"); - arscp_create(NULL, new_target); - } -} - -/* - * Quit ar(1). Note that the 'END' cmd will not 'SAVE' the current - * archive before exiting. - */ -static void -arscp_end(int eval) -{ - - if (target) - free(target); - if (tmpac) { - if (unlink(tmpac) == -1) - bsdar_errc(bsdar, errno, "unlink %s failed", tmpac); - free(tmpac); - } - - exit(eval); -} - -/* - * Check if a target was specified, i.e, whether an 'OPEN' or 'CREATE' - * had been issued by the user. - */ -static int -arscp_target_exist(void) -{ - - if (target) - return (1); - - bsdar_warnc(bsdar, 0, "no open output archive"); - return (0); -} - -/* - * Construct the list of modules. - */ -static struct list * -arscp_mlist(struct list *list, char *str) -{ - struct list *l; - - l = malloc(sizeof(*l)); - if (l == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - l->str = str; - l->next = list; - - return (l); -} - -/* - * Calculate the length of an mlist. - */ -static int -arscp_mlist_len(struct list *list) -{ - int len; - - for(len = 0; list; list = list->next) - len++; - - return (len); -} - -/* - * Free the space allocated for a module list. - */ -static void -arscp_free_mlist(struct list *list) -{ - struct list *l; - - /* Note: list->str was freed in arscp_free_argv(). */ - for(; list; list = l) { - l = list->next; - free(list); - } -} - -/* - * Convert a module list to an 'argv' array. - */ -static void -arscp_mlist2argv(struct list *list) -{ - char **argv; - int i, n; - - n = arscp_mlist_len(list); - argv = malloc(n * sizeof(*argv)); - if (argv == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - - /* Note that module names are stored in reverse order. */ - for(i = n - 1; i >= 0; i--, list = list->next) { - if (list == NULL) - bsdar_errc(bsdar, errno, "invalid mlist"); - argv[i] = list->str; - } - - bsdar->argc = n; - bsdar->argv = argv; -} - -/* - * Free the space allocated for an argv array and its elements. - */ -static void -arscp_free_argv(void) -{ - int i; - - for(i = 0; i < bsdar->argc; i++) - free(bsdar->argv[i]); - - free(bsdar->argv); -} - -/* - * Show a prompt if we are in interactive mode. - */ -static void -arscp_prompt(void) -{ - - if (interactive) { - printf("AR >"); - fflush(stdout); - } -} - -/* - * The main function implementing script mode. - */ -void -ar_mode_script(struct bsdar *ar) -{ - - bsdar = ar; - interactive = isatty(fileno(stdin)); - while(yyparse()) { - if (!interactive) - arscp_end(EXIT_FAILURE); - } - - /* Script ends without END */ - arscp_end(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/ar/ar.1 b/contrib/elftoolchain/ar/ar.1 deleted file mode 100644 index 8f655a81..00000000 --- a/contrib/elftoolchain/ar/ar.1 +++ /dev/null @@ -1,627 +0,0 @@ -.\" Copyright (c) 2007,2009-2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd September 30, 2018 -.Dt AR 1 -.Os -.Sh NAME -.Nm ar -.Nd manage archives -.Sh SYNOPSIS -.Nm -.Fl d -.Op Fl f -.Op Fl j -.Op Fl T -.Op Fl v -.Op Fl z -.Ar archive -.Ar -.Nm -.Fl m -.Op Fl a Ar position-after -.Op Fl b Ar position-before -.Op Fl f -.Op Fl i Ar position-before -.Op Fl j -.Op Fl s | Fl S -.Op Fl T -.Op Fl z -.Ar archive -.Ar -.Nm -.Fl p -.Op Fl f -.Op Fl s -.Op Fl T -.Op Fl v -.Ar archive -.Op Ar -.Nm -.Fl q -.Op Fl c -.Op Fl D -.Op Fl f -.Op Fl F Ar flavor | Fl -flavor Ar flavor -.Op Fl s | Fl S -.Op Fl T -.Op Fl U -.Op Fl v -.Op Fl z -.Ar archive -.Ar -.Nm -.Fl r -.Op Fl a Ar position-after -.Op Fl b Ar position-before -.Op Fl c -.Op Fl D -.Op Fl f -.Op Fl F Ar flavor | Fl -flavor Ar flavor -.Op Fl i Ar position-before -.Op Fl j -.Op Fl s | Fl S -.Op Fl T -.Op Fl u -.Op Fl U -.Op Fl v -.Op Fl z -.Ar archive -.Ar -.Nm -.Fl s -.Op Fl D -.Op Fl j -.Op Fl U -.Op Fl z -.Ar archive -.Nm -.Fl t -.Op Fl f -.Op Fl s -.Op Fl T -.Op Fl v -.Ar archive -.Op Ar -.Nm -.Fl x -.Op Fl C -.Op Fl f -.Op Fl o -.Op Fl s -.Op Fl T -.Op Fl u -.Op Fl v -.Ar archive -.Op Ar -.Nm -.Fl M -.Nm -.Fl V -.Sh DESCRIPTION -The -.Nm -utility creates and maintains groups of files combined into an -archive. -Once an archive has been created, new files can be added to it, and -existing files can be extracted, deleted or replaced. -.Pp -Files are named in the archive by their last file name component, -so if a file referenced by a path containing a -.Dq / -is archived, it will be named by the last component of the path. -Similarly when matching paths listed on the command line against -file names stored in the archive, only the last component of the -path will be compared. -.Pp -The normal use of -.Nm -is for the creation and maintenance of libraries suitable for use -with the link editor -.Xr ld 1 , -although it is not restricted to this purpose. -The -.Nm -utility can create and manage an archive symbol table (see -.Xr ar 5 ) -used to speed up link editing operations. -If a symbol table is present in an archive, it will be -kept up-to-date by subsequent operations on the archive. -.Sh OPTIONS -The -.Nm -utility supports the following options: -.Bl -tag -width indent -.It Fl a Ar member-after -When used with option -.Fl m -this option specifies that the archive members specified by -arguments -.Ar -are moved to after the archive member named by argument -.Ar member-after . -When used with option -.Fl r -this option specifies that the files specified by arguments -.Ar -are added after the archive member named by argument -.Ar member-after . -.It Fl b Ar member-before -When used with option -.Fl m -this option specifies that the archive members specified by -arguments -.Ar -are moved to before the archive member named by argument -.Ar member-before . -When used with option -.Fl r -this option specifies that the files specified by arguments -.Ar -are added before the archive member named by argument -.Ar member-before . -.It Fl c -Suppress the informational message printed when a new archive is -created using the -.Fl r -and -.Fl q -options. -.It Fl C -Prevent extracted files from replacing like-named files -in the file system. -.It Fl d -Delete the members named by arguments -.Ar -from the archive specified by argument -.Ar archive . -The archive's symbol table, if present, is updated to reflect -the new contents of the archive. -.It Fl D -When used in combination with the -.Fl r -or -.Fl q -option, insert 0's instead of the real mtime, uid and gid values -and 0644 instead of file mode from the members named by arguments -.Ar . -This ensures that checksums on the resulting archives are reproducible -when member contents are identical. -If multiple -.Fl D -and -.Fl U -options are specified on the command line, the final one takes precedence. -.It Fl f -Synonymous with option -.Fl T . -.It Fl F Ar flavor | Fl -flavor Ar flavor -Create archives with the specified archive format. -Legal values for argument -.Ar flavor -are: -.Bl -tag -width indent -compact -.It Ar bsd -Create BSD format archives. -.It Ar gnu -An alias for -.Ar svr4 . -.It Ar svr4 -Create SVR4 format archives. -.El -If this option is not specified, -.Nm -will create archives using the SVR4 format. -.It Fl i Ar member-before -Synonymous with option -.Fl b . -.It Fl j -This option is accepted for compatibility with the -.Tn FreeBSD -version of the -.Nm -utility, but is ignored. -.It Fl l -This option is accepted for compatibility with GNU -.Xr ar 1 , -but is ignored. -.It Fl m -Move archive members specified by arguments -.Ar -within the archive. -If a position has been specified by one of the -.Fl a , -.Fl b -or -.Fl i -options, the members are moved to before or after the specified -position. -If no position has been specified, the specified members are moved -to the end of the archive. -If the archive has a symbol table, it is updated to reflect the -new contents of the archive. -.It Fl M -Read and execute MRI librarian commands from standard input. -The commands understood by the -.Nm -utility are described in the section -.Sx "MRI Librarian Commands" . -.It Fl o -Preserve the original modification times of members when extracting -them. -.It Fl p -Write the contents of the specified archive members named by -arguments -.Ar -to standard output. -If no members were specified, the contents of all the files in the -archive are written in the order they appear in the archive. -.It Fl q -Append the files specified by arguments -.Ar -to the archive specified by argument -.Ar archive -without checking if the files already exist in the archive. -The archive symbol table will be updated as needed. -If the file specified by the argument -.Ar archive -does not already exist, a new archive will be created. -.It Fl r -Replace (add) the files specified by arguments -.Ar -in the archive specified by argument -.Ar archive , -creating the archive if necessary. -Replacing existing members will not change the order of members within -the archive. -If a file named in arguments -.Ar -does not exist, existing members in the archive that match that -name are not changed. -New files are added to the end of the archive unless one of the -positioning options -.Fl a , -.Fl b -or -.Fl i -is specified. -The archive symbol table, if it exists, is updated to reflect the -new state of the archive. -.It Fl s -Add an archive symbol table (see -.Xr ar 5 ) -to the archive specified by argument -.Ar archive . -Invoking -.Nm -with the -.Fl s -option alone is equivalent to invoking -.Xr ranlib 1 . -.It Fl S -Do not generate an archive symbol table. -.It Fl t -For -.Nm , -list the files specified by arguments -.Ar -in the order in which they appear in the archive, one per line. -If no files are specified, all files in the archive are listed. -.It Fl T -Use only the first fifteen characters of the archive member name or -command line file name argument when naming archive members. -.It Fl u -Conditionally update the archive or extract members. -When used with the -.Fl r -option, files named by arguments -.Ar -will be replaced in the archive if they are newer than their -archived versions. -When used with the -.Fl x -option, the members specified by arguments -.Ar -will be extracted only if they are newer than the corresponding -files in the file system. -.It Fl U -When used in combination with the -.Fl r -or -.Fl q -option, insert the real mtime, uid and gid, and file mode values -from the members named by arguments -.Ar . -If multiple -.Fl D -and -.Fl U -options are specified on the command line, the final one takes precedence. -.It Fl v -Provide verbose output. -When used with the -.Fl d , -.Fl m , -.Fl q -or -.Fl x -options, -.Nm -gives a file-by-file description of the archive modification being -performed, which consists of three white-space separated fields: -the option letter, a dash -.Dq "-" , -and the file name. -When used with the -.Fl r -option, -.Nm -displays the description as above, but the initial letter is an -.Dq a -if the file is added to the archive, or an -.Dq r -if the file replaces a file already in the archive. -When used with the -.Fl p -option, the name of the file enclosed in -.Dq < -and -.Dq > -characters is written to standard output preceded by a single newline -character and followed by two newline characters. -The contents of the named file follow the file name. -When used with the -.Fl t -option, -.Nm -displays eight whitespace separated fields: -the file permissions as displayed by -.Xr strmode 3 , -decimal user and group IDs separated by a slash ( -.Dq / Ns ) , -the file size in bytes, the file modification time in -.Xr strftime 3 -format -.Dq "%b %e %H:%M %Y" , -and the name of the file. -.It Fl V -Print a version identifier and exit. -.It Fl x -Extract archive members specified by arguments -.Ar -into the current directory. -If no members have been specified, extract all members of the archive. -If the file corresponding to an extracted member does not exist it -will be created. -If the file corresponding to an extracted member does exist, its owner -and group will not be changed while its contents will be overwritten -and its permissions will set to that entered in the archive. -The file's access and modification time would be that of the time -of extraction unless the -.Fl o -option was specified. -.It Fl z -This option is accepted for compatibility with the -.Tn FreeBSD -version of the -.Nm -utility, but is ignored. -.El -.Ss "MRI Librarian Commands" -If the -.Fl M -option is specified, the -.Nm -utility will read and execute commands from its standard input. -If standard input is a terminal, the -.Nm -utility will display the prompt -.Dq Li "AR >" -before reading a line, and will continue operation even if errors are -encountered. -If standard input is not a terminal, the -.Nm -utility will not display a prompt and will terminate execution on -encountering an error. -.Pp -Each input line contains a single command. -Words in an input line are separated by whitespace characters. -The first word of the line is the command, the remaining words are -the arguments to the command. -The command word may be specified in either case. -Arguments may be separated by commas or blanks. -.Pp -Empty lines are allowed and are ignored. -Long lines are continued by ending them with the -.Dq Li + -character. -.Pp -The -.Dq Li * -and -.Dq Li "\;" -characters start a comment. -Comments extend till the end of the line. -.Pp -When executing an MRI librarian script the -.Nm -utility works on a temporary copy of an archive. -Changes to the copy are made permanent using the -.Ic save -command. -.Pp -Commands understood by the -.Nm -utility are: -.Bl -tag -width indent -.It Ic addlib Ar archive | Ic addlib Ar archive Pq Ar member Oo Li , Ar member Oc Ns ... -Add the contents of the archive named by argument -.Ar archive -to the current archive. -If specific members are named using the arguments -.Ar member , -then those members are added to the current archive. -If no members are specified, the entire contents of the archive -are added to the current archive. -.It Ic addmod Ar member Oo Li , Ar member Oc Ns ... -Add the files named by arguments -.Ar member -to the current archive. -.It Ic clear -Discard all the contents of the current archive. -.It Ic create Ar archive -Create a new archive named by the argument -.Ar archive , -and makes it the current archive. -If the named archive already exists, it will be overwritten -when the -.Ic save -command is issued. -.It Ic delete Ar module Oo Li , Ar member Oc Ns ... -Delete the modules named by the arguments -.Ar member -from the current archive. -.It Ic directory Ar archive Po Ar member Oo Li , Ar member Oc Ns ... Pc Op Ar outputfile -List each named module in the archive. -The format of the output depends on the verbosity setting set using -the -.Ic verbose -command. -Output is sent to standard output, or to the file specified by -argument -.Ar outputfile . -.It Ic end -Exit successfully from the -.Nm -utility. -Any unsaved changes to the current archive will be discarded. -.It Ic extract Ar member Oo Li , Ar member Oc Ns ... -Extract the members named by the arguments -.Ar member -from the current archive. -.It Ic list -Display the contents of the current archive in verbose style. -.It Ic open Ar archive -Open the archive named by argument -.Ar archive -and make it the current archive. -.It Ic replace Ar member Oo Li , Ar member Oc Ns ... -Replace named members in the current archive with the files specified -by arguments -.Ar member . -The files must be present in the current directory and the named -modules must already exist in the current archive. -.It Ic save -Commit all changes to the current archive. -.It Ic verbose -Toggle the verbosity of the -.Ic directory -command. -.El -.Sh EXAMPLES -To create a new archive -.Pa ex.a -containing three files -.Pa ex1.o , -.Pa ex2.o -and -.Pa ex3.o , -use: -.Dl "ar -rc ex.a ex1.o ex2.o ex3.o" -.Pp -To add an archive symbol table to an existing archive -.Pa ex.a , -use: -.Dl "ar -s ex.a" -.Pp -To delete file -.Pa ex1.o -from archive -.Pa ex.a , -use: -.D1 "ar -d ex.a ex1.o" -.Pp -To verbosely list the contents of archive -.Pa ex.a , -use: -.D1 "ar -tv ex.a" -.Pp -To create a new archive -.Pa ex.a -containing the files -.Pa ex1.o , -and -.Pa ex2.o , -using MRI librarian commands, use the following script: -.Bd -literal -offset indent -create ex.a * specify the output archive -addmod ex1.o ex2.o * add modules -save * save pending changes -end * exit the utility -.Ed -.Sh DIAGNOSTICS -.Ex -std -.Sh SEE ALSO -.Xr ld 1 , -.Xr ranlib 1 , -.Xr archive 3 , -.Xr elf 3 , -.Xr strftime 3 , -.Xr strmode 3 , -.Xr ar 5 -.Sh STANDARDS COMPLIANCE -The -.Nm -utility's support for the -.Fl a , -.Fl b , -.Fl c , -.Fl i , -.Fl m , -.Fl p , -.Fl q , -.Fl r , -.Fl s , -.Fl t , -.Fl u , -.Fl v , -.Fl C -and -.Fl T -options is believed to be compliant with -.St -p1003.2 . -.Sh HISTORY -An -.Nm -command first appeared in AT&T UNIX Version 1. -In -.Fx 8.0 , -.An Kai Wang Aq Mt kaiw@FreeBSD.org -reimplemented -.Nm -using the -.Lb libarchive -and the -.Lb libelf . diff --git a/contrib/elftoolchain/ar/ar.5 b/contrib/elftoolchain/ar/ar.5 deleted file mode 100644 index fd005027..00000000 --- a/contrib/elftoolchain/ar/ar.5 +++ /dev/null @@ -1,329 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 30, 2018 -.Dt AR 5 -.Os -.Sh NAME -.Nm ar -.Nd archive file format for -.Xr ar 1 -and -.Xr ranlib 1 -.Sh SYNOPSIS -.In ar.h -.Sh DESCRIPTION -.Xr ar 1 -archives are created and managed by the -.Xr ar 1 -and -.Xr ranlib 1 -utilities. -These archives are typically used during program development to -hold libraries of program objects. -An -.Xr ar 1 -archive is contained in a single operating system file. -.Pp -This manual page documents two variants of the -.Xr ar 1 -archive format: the BSD archive format, and the SVR4/GNU archive -format. -.Pp -In both variants the archive file starts with an identifying byte -sequence of the seven ASCII characters -.Sq Li "!" -followed by a ASCII linefeed character -.Po -see the constant -.Dq ARMAG -in the header file -.In ar.h -.Pc . -.Pp -Archive members follow the initial identifying byte sequence. -Each archive member is prefixed by a fixed size header describing the -file attributes associated with the member. -.Ss "Archive Headers" -An archive header describes the file attributes for the archive member that -follows it. -The -.Xr ar 5 -format only supports a limited number of attributes: the file name, -the file creation time stamp, the uid and gid of the creator, the file -mode and the file size. -.Pp -Archive headers are placed at an even byte offset in the archive file. -If the data for an archive member ends at an odd byte offset, then a -padding byte with value 0x0A is used to position the next archive -header on an even byte offset. -.Pp -An archive header comprises the following fixed sized fields: -.Bl -tag -width "Li ar_name" -.It Ar ar_name -(16 bytes) The file name of the archive member. -This field names a leaf file; absolute paths and relative paths containing -directory names are not supported. -The format of this field varies between the BSD and SVR4/GNU formats and -is described in more detail in the section -.Sx "Representing File Names" -below. -.It Ar ar_date -(12 bytes) The file modification time for the member in seconds since the -epoch, encoded as a decimal number. -.It Ar ar_uid -(6 bytes) The uid associated with the archive member, encoded as a -decimal number. -.It Ar ar_gid -(6 bytes) The gid associated with the archive member, encoded as a -decimal number. -.It Ar ar_mode -(8 bytes) The file mode for the archive member, encoded as an octal -number. -.It Ar ar_size -(10 bytes) In the SVR4/GNU archive format this field holds the size in -bytes of the archive member, encoded as a decimal number. -In the BSD archive format, for short file names, this field -holds the size in bytes of the archive member, encoded as a decimal -number. -For long file names -.Po -see -.Sx "Representing File Names" -below -.Pc , -the field contains the combined size of the -archive member and its file name, encoded as a decimal number. -.It Ar ar_fmag -(2 bytes) This field holds 2 bytes with values 0x96 and 0x0A -respectively, marking the end of the header. -.El -.Pp -Unused bytes in the fields of an archive header are set to the value -0x20. -.Ss "Representing File Names" -The BSD and SVR4/GNU variants use different schemes for encoding file -names for members. -.Bl -tag -width "SVR4/GNU" -.It "BSD" -File names that are up to 16 bytes long and which do not contain -embedded spaces are stored directly in the -.Ar ar_name -field of the archive header. -File names that are either longer than 16 bytes or which contain -embedded spaces are stored immediately after the archive header -and the -.Ar ar_name -field of the archive header is set to the string -.Dq "#1/" -followed by a decimal representation of the number of bytes needed for -the file name. -In addition, the -.Ar ar_size -field of the archive header is set to the decimal representation of -the combined sizes of the archive member and the file name. -The file contents of the member follows the file name without further -padding. -.Pp -As an example, if the file name for a member was -.Dq "A B" -and its contents was the string -.Dq "C D" , -then the -.Ar ar_name -field of the header would contain -.Dq Li "#1/3" , -the -.Ar ar_size -field of the header would contain -.Dq Li 6 , -and the bytes immediately following the header would be 0x41, 0x20, -0x42, 0x43, 0x20 and 0x44 -.Po -ASCII -.Dq "A BC D" -.Pc . -.It "SVR4/GNU" -File names that are up to 15 characters long are stored directly in the -.Ar ar_name -field of the header, terminated by a -.Dq Li / -character. -.Pp -If the file name is larger than would fit in space for the -.Ar ar_name -field, then the actual file name is kept in the archive -string table -.Po -see -.Sx "Archive String Tables" -below -.Pc , -and the decimal offset of the file name in the string table is stored -in the -.Ar ar_name -field, prefixed by a -.Dq Li / -character. -.Pp -As an example, if the real file name has been stored at offset 768 in -the archive string table, the -.Ar ar_name -field of the header will contain the string -.Dq /768 . -.El -.Ss "Special Archive Members" -The following archive members are special. -.Bl -tag -width indent -.It Dq Li / -In the SVR4/GNU variant of the archive format, the archive member with -name -.Dq Li / -denotes an archive symbol table. -If present, this member will be the very first member in the -archive. -.It Dq Li // -In the SVR4/GNU variant of the archive format, the archive member with -name -.Dq Li // -denotes the archive string table. -This special member is used to hold filenames that do not fit in the -file name field of the header -.Po -see -.Sx "Representing File Names" -above -.Pc . -If present, this member immediately follows the archive symbol table -if an archive symbol table is present, or is the first member otherwise. -.It Dq Li "__.SYMDEF" -This special member contains the archive symbol table in the BSD -variant of the archive format. -If present, this member will be the very first member in the -archive. -.El -.Ss "Archive String Tables" -An archive string table is used in the SVR4/GNU archive format to hold -file names that are too large to fit into the constraints of the -.Ar ar_name -field of the archive header. -An archive string table contains a sequence of file names. -Each file name in the archive string table is terminated by the -byte sequence 0x2F, 0x0A -.Po -the ASCII string -.Dq "/\en" -.Pc . -No padding is used to separate adjacent file names. -.Ss "Archive Symbol Tables" -Archive symbol tables are used to speed up link editing by providing a -mapping between the program symbols defined in the archive -and the corresponding archive members. -Archive symbol tables are managed by the -.Xr ranlib 1 -utility. -.Pp -The format of archive symbol tables is as follows: -.Bl -tag -width "SVR4/GNU" -.It BSD -In the BSD archive format, the archive symbol table comprises -of two parts: a part containing an array of -.Vt "struct ranlib" -descriptors, followed by a part containing a symbol string table. -The sizes and layout of the structures that make up a BSD format -archive symbol table are machine dependent. -.Pp -The part containing -.Vt "struct ranlib" -descriptors begins with a field containing the size in bytes of the -array of -.Vt "struct ranlib" -descriptors encoded as a C -.Vt long -value. -.Pp -The array of -.Vt "struct ranlib" -descriptors follows the size field. -Each -.Vt "struct ranlib" -descriptor describes one symbol. -.Pp -A -.Vt "struct ranlib" -descriptor comprises two fields: -.Bl -tag -width "Ar ran_strx" -compact -.It Ar ran_strx -.Pq C Vt long -This field contains the zero-based offset of the symbol name in the -symbol string table. -.It Ar ran_off -.Pq C Vt long -This field is the file offset to the archive header for the archive -member defining the symbol. -.El -.Pp -The part containing the symbol string table begins with a field -containing the size in bytes of the string table, encoded as a C -.Vt long -value. -This string table follows the size field, and contains -NUL-terminated strings for the symbols in the symbol table. -.It SVR4/GNU -In the SVR4/GNU archive format, the archive symbol table starts with a -4-byte binary value containing the number of entries contained in the -archive symbol table. -This count of entries is stored most significant byte first. -.Pp -Next, there are -.Ar count -4-byte numbers, each stored most significant byte first. -Each number is a binary offset to the archive header for the member in -the archive file for the corresponding symbol table entry. -.Pp -After the binary offset values, there are -.Ar count -NUL-terminated strings in sequence, holding the symbol names for -the corresponding symbol table entries. -.El -.Sh STANDARDS COMPLIANCE -The -.Xr ar 1 -archive format is not currently specified by a standard. -.Pp -This manual page documents the -.Xr ar 1 -archive formats used by the -.Bx 4.4 -and -.Ux SVR4 -operating system releases. -.Sh SEE ALSO -.Xr ar 1 , -.Xr ld 1 , -.Xr ranlib 1 , -.Xr elf 3 , -.Xr elf_getarsym 3 , -.Xr elf_rand 3 diff --git a/contrib/elftoolchain/ar/ar.c b/contrib/elftoolchain/ar/ar.c deleted file mode 100644 index 746782b6..00000000 --- a/contrib/elftoolchain/ar/ar.c +++ /dev/null @@ -1,445 +0,0 @@ -/*- - * Copyright (c) 2007 Kai Wang - * Copyright (c) 2007 Tim Kientzle - * Copyright (c) 2007 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/*- - * Copyright (c) 1990, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Hugh Smith at The University of Guelph. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ar.h" - -ELFTC_VCSID("$Id$"); - -enum options -{ - OPTION_HELP -}; - -static struct option longopts[] = -{ - {"flavor", required_argument, NULL, 'F'}, - {"help", no_argument, NULL, OPTION_HELP}, - {"version", no_argument, NULL, 'V'}, - {NULL, 0, NULL, 0} -}; - -static void bsdar_usage(void); -static void ranlib_usage(void); -static void set_mode(struct bsdar *bsdar, char opt); -static void only_mode(struct bsdar *bsdar, const char *opt, - const char *valid_modes); -static void bsdar_version(void); - -int -main(int argc, char **argv) -{ - struct bsdar *bsdar, bsdar_storage; - char *arcmd, *argv1_saved; - size_t len; - int exitcode, i, opt; - - bsdar = &bsdar_storage; - memset(bsdar, 0, sizeof(*bsdar)); - - exitcode = EXIT_SUCCESS; - arcmd = argv1_saved = NULL; - bsdar->output = stdout; - - if ((bsdar->progname = ELFTC_GETPROGNAME()) == NULL) - bsdar->progname = "ar"; - - if (elf_version(EV_CURRENT) == EV_NONE) - bsdar_errc(bsdar, 0, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - /* - * Act like ranlib if our name ends in "ranlib"; this - * accommodates names like "arm-freebsd7.1-ranlib", - * "bsdranlib", etc. - */ - len = strlen(bsdar->progname); - if (len >= strlen("ranlib") && - strcmp(bsdar->progname + len - strlen("ranlib"), "ranlib") == 0) { - while ((opt = getopt_long(argc, argv, "tDUV", longopts, - NULL)) != -1) { - switch(opt) { - case 't': - /* Ignored. */ - break; - case 'D': - bsdar->options |= AR_D; - break; - case 'U': - bsdar->options &= ~AR_D; - break; - case 'V': - bsdar_version(); - break; - case OPTION_HELP: - ranlib_usage(); - default: - ranlib_usage(); - } - } - argv += optind; - argc -= optind; - - if (*argv == NULL) - ranlib_usage(); - - bsdar->options |= AR_S; - while ((bsdar->filename = *argv++) != NULL) - exitcode |= ar_write_archive(bsdar, 's'); - - exit(exitcode); - } else { - if (argc < 2) - bsdar_usage(); - - /* - * Tack on a leading '-', for old-style usage. - */ - if (*argv[1] != '-') { - argv1_saved = argv[1]; - len = strlen(argv[1]) + 2; - if ((arcmd = malloc(len)) == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - (void) snprintf(arcmd, len, "-%s", argv[1]); - argv[1] = arcmd; - } - } - - while ((opt = getopt_long(argc, argv, "abCcdDfF:ijlMmopqrSsTtUuVvxz", - longopts, NULL)) != -1) { - switch(opt) { - case 'a': - bsdar->options |= AR_A; - break; - case 'b': - case 'i': - bsdar->options |= AR_B; - break; - case 'C': - bsdar->options |= AR_CC; - break; - case 'c': - bsdar->options |= AR_C; - break; - case 'd': - set_mode(bsdar, opt); - break; - case 'D': - bsdar->options |= AR_D; - break; - case 'F': - if (!strcasecmp(optarg, "svr4") || - !strcasecmp(optarg, "gnu")) - bsdar->options &= ~AR_BSD; - else if (!strcasecmp(optarg, "bsd")) - bsdar->options |= AR_BSD; - else - bsdar_usage(); - break; - case 'f': - case 'T': - bsdar->options |= AR_TR; - break; - case 'j': - /* ignored */ - break; - case 'l': - /* ignored, for GNU ar comptibility */ - break; - case 'M': - set_mode(bsdar, opt); - break; - case 'm': - set_mode(bsdar, opt); - break; - case 'o': - bsdar->options |= AR_O; - break; - case 'p': - set_mode(bsdar, opt); - break; - case 'q': - set_mode(bsdar, opt); - break; - case 'r': - set_mode(bsdar, opt); - break; - case 'S': - bsdar->options |= AR_SS; - break; - case 's': - bsdar->options |= AR_S; - break; - case 't': - set_mode(bsdar, opt); - break; - case 'U': - bsdar->options &= ~AR_D; - break; - case 'u': - bsdar->options |= AR_U; - break; - case 'V': - bsdar_version(); - break; - case 'v': - bsdar->options |= AR_V; - break; - case 'x': - set_mode(bsdar, opt); - break; - case 'z': - /* ignored */ - break; - case OPTION_HELP: - bsdar_usage(); - default: - bsdar_usage(); - } - } - - /* Restore argv[1] if we had modified it. */ - if (arcmd != NULL) { - argv[1] = argv1_saved; - free(arcmd); - arcmd = argv1_saved = NULL; - } - - argv += optind; - argc -= optind; - - if (*argv == NULL && bsdar->mode != 'M') - bsdar_usage(); - - if (bsdar->options & AR_A && bsdar->options & AR_B) - bsdar_errc(bsdar, 0, - "only one of -a and -[bi] options allowed"); - - if (bsdar->options & AR_J && bsdar->options & AR_Z) - bsdar_errc(bsdar, 0, - "only one of -j and -z options allowed"); - - if (bsdar->options & AR_S && bsdar->options & AR_SS) - bsdar_errc(bsdar, 0, - "only one of -s and -S options allowed"); - - if (bsdar->options & (AR_A | AR_B)) { - if (*argv == NULL) - bsdar_errc(bsdar, 0, - "no position operand specified"); - if ((bsdar->posarg = basename(*argv)) == NULL) - bsdar_errc(bsdar, errno, - "basename failed"); - argc--; - argv++; - } - - if (bsdar->options & AR_A) - only_mode(bsdar, "-a", "mqr"); - if (bsdar->options & AR_B) - only_mode(bsdar, "-b", "mqr"); - if (bsdar->options & AR_C) - only_mode(bsdar, "-c", "qr"); - if (bsdar->options & AR_CC) - only_mode(bsdar, "-C", "x"); - if (bsdar->options & AR_D) - only_mode(bsdar, "-D", "qr"); - if (bsdar->options & AR_O) - only_mode(bsdar, "-o", "x"); - if (bsdar->options & AR_SS) - only_mode(bsdar, "-S", "mqr"); - if (bsdar->options & AR_U) - only_mode(bsdar, "-u", "qrx"); - - if (bsdar->mode == 'M') { - ar_mode_script(bsdar); - exit(EXIT_SUCCESS); - } - - if ((bsdar->filename = *argv) == NULL) - bsdar_usage(); - - bsdar->argc = --argc; - bsdar->argv = ++argv; - - if ((!bsdar->mode || strchr("ptx", bsdar->mode)) && - bsdar->options & AR_S) { - exitcode = ar_write_archive(bsdar, 's'); - if (!bsdar->mode) - exit(exitcode); - } - - switch(bsdar->mode) { - case 'd': case 'm': case 'q': case 'r': - exitcode = ar_write_archive(bsdar, bsdar->mode); - break; - - case 'p': case 't': case 'x': - exitcode = ar_read_archive(bsdar, bsdar->mode); - break; - default: - bsdar_usage(); - /* NOTREACHED */ - } - - for (i = 0; i < bsdar->argc; i++) { - if (bsdar->argv[i] != NULL) { - bsdar_warnc(bsdar, 0, "%s: not found in archive", - bsdar->argv[i]); - exitcode = EXIT_FAILURE; - } - } - - exit(exitcode); -} - -static void -set_mode(struct bsdar *bsdar, char opt) -{ - - if (bsdar->mode != '\0' && bsdar->mode != opt) - bsdar_errc(bsdar, 0, "Can't specify both -%c and -%c", - opt, bsdar->mode); - bsdar->mode = opt; -} - -static void -only_mode(struct bsdar *bsdar, const char *opt, const char *valid_modes) -{ - - if (strchr(valid_modes, bsdar->mode) == NULL) - bsdar_errc(bsdar, 0, "Option %s is not permitted in mode -%c", - opt, bsdar->mode); -} - -#define AR_USAGE_MESSAGE "\ -Usage: %s [options] archive file...\n\ - Manage archives.\n\n\ - Where is one of:\n\ - -d Delete members from the archive.\n\ - -m Move archive members within the archive.\n\ - -p Write the contents of members to standard output.\n\ - -q Append files to an archive.\n\ - -r Replace (add) files to an archive.\n\ - -s Add an archive symbol to an archive.\n\ - -t List files in an archive.\n\ - -x Extract members from an archive.\n\ - -M Execute MRI librarian commands.\n\ - -V Print a version identifier and exit.\n\n\ - Options:\n\ - -a MEMBER Add members after the specified member.\n\ - -b MEMBER | -i MEMBER\n\ - Add members before the specified member.\n\ - -c Do not print a message when creating a new archive.\n\ - -f | -T Only use the first fifteen characters of the member name.\n\ - -j (This option is accepted, but is ignored).\n\ - -l (This option is accepted, but is ignored).\n\ - -o Preserve modification times when extracting members.\n\ - -u Conditionally update or extract members.\n\ - -v Be verbose.\n\ - -z (This option is accepted, but is ignored).\n\ - -C Do not overwrite existing files in the file system.\n\ - -D Use fixed metadata, for consistent archive checksums.\n\ - -F FORMAT | --flavor=FORMAT\n\ - Create archives with the specified format.\n\ - -S Do not generate an archive symbol table.\n\ - -U Use original metadata for archive members.\n" - -static void -bsdar_usage(void) -{ - (void) fprintf(stderr, AR_USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -#define RANLIB_USAGE_MESSAGE "\ -Usage: %s [options] archive...\n\ - Update or create archive symbol tables.\n\n\ - Options:\n\ - -t (This option is accepted, but ignored).\n\ - -D Use fixed metadata, for consistent archive checksums.\n\ - -U Use original metadata, for unique archive checksums.\n\ - -V Print a version identifier and exit.\n" - -static void -ranlib_usage(void) -{ - (void)fprintf(stderr, RANLIB_USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -static void -bsdar_version(void) -{ - (void)printf("%s (%s, %s)\n", ELFTC_GETPROGNAME(), archive_version_string(), - elftc_version()); - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/ar/ar.h b/contrib/elftoolchain/ar/ar.h deleted file mode 100644 index 1f25f70c..00000000 --- a/contrib/elftoolchain/ar/ar.h +++ /dev/null @@ -1,143 +0,0 @@ -/*- - * Copyright (c) 2007 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include "_elftc.h" - -/* - * ar(1) options. - */ -#define AR_A 0x0001 /* position-after */ -#define AR_B 0x0002 /* position-before */ -#define AR_C 0x0004 /* creating new archive */ -#define AR_CC 0x0008 /* do not overwrite when extracting */ -#define AR_J 0x0010 /* bzip2 compression */ -#define AR_O 0x0020 /* preserve original mtime when extracting */ -#define AR_S 0x0040 /* write archive symbol table */ -#define AR_SS 0x0080 /* do not write archive symbol table */ -#define AR_TR 0x0100 /* only keep first 15 chars for member name */ -#define AR_U 0x0200 /* only extract or update newer members.*/ -#define AR_V 0x0400 /* verbose mode */ -#define AR_Z 0x0800 /* gzip compression */ -#define AR_D 0x1000 /* insert dummy mode, mtime, uid and gid */ -#define AR_BSD 0x2000 /* use the BSD archive format */ - -#define DEF_BLKSZ 10240 /* default block size */ - -/* Special names. */ - -#define AR_STRINGTAB_NAME_SVR4 "//" -#define AR_SYMTAB_NAME_BSD "__.SYMDEF" -#define AR_SYMTAB_NAME_SVR4 "/" - -/* - * Convenient wrapper for general libarchive error handling. - */ -#define AC(CALL) do { \ - if ((CALL)) \ - bsdar_errc(bsdar, 0, "%s", \ - archive_error_string(a)); \ -} while (0) - -/* - * The 'ACV' wrapper is used for libarchive APIs that changed from - * returning 'void' to returning an 'int' in later versions of libarchive. - */ -#if ARCHIVE_VERSION_NUMBER >= 2000000 -#define ACV(CALL) AC(CALL) -#else -#define ACV(CALL) do { \ - (CALL); \ - } while (0) -#endif - -/* - * In-memory representation of archive member(object). - */ -struct ar_obj { - Elf *elf; /* object file descriptor */ - char *name; /* member name */ - uid_t uid; /* user id */ - gid_t gid; /* group id */ - mode_t md; /* octal file permissions */ - size_t size; /* member size */ - time_t mtime; /* modification time */ - dev_t dev; /* inode's device */ - ino_t ino; /* inode's number */ - - TAILQ_ENTRY(ar_obj) objs; -}; - -/* - * Structure encapsulates the "global" data for "ar" program. - */ -struct bsdar { - const char *filename; /* archive name. */ - const char *addlib; /* target of ADDLIB. */ - const char *posarg; /* position arg for modifiers -a, -b. */ - char mode; /* program mode */ - int options; /* command line options */ - FILE *output; /* default output stream */ - - const char *progname; /* program name */ - int argc; - char **argv; - - dev_t ar_dev; /* archive device. */ - ino_t ar_ino; /* archive inode. */ - - /* - * Fields for the archive string table. - */ - char *as; /* buffer for archive string table. */ - size_t as_sz; /* current size of as table. */ - size_t as_cap; /* capacity of as table buffer. */ - - /* - * Fields for the archive symbol table. - */ - uint32_t s_cnt; /* current number of symbols. */ - uint32_t *s_so; /* symbol offset table. */ - size_t s_so_cap; /* capacity of so table buffer. */ - char *s_sn; /* symbol name table */ - size_t s_sn_cap; /* capacity of sn table buffer. */ - size_t s_sn_sz; /* current size of sn table. */ - /* Current member's offset (relative to the end of pseudo members.) */ - off_t rela_off; - - TAILQ_HEAD(, ar_obj) v_obj; /* object(member) list */ -}; - -void ar_mode_script(struct bsdar *ar); -int ar_read_archive(struct bsdar *_ar, int _mode); -int ar_write_archive(struct bsdar *_ar, int _mode); -void bsdar_errc(struct bsdar *, int _code, const char *fmt, ...); -int bsdar_is_pseudomember(struct bsdar *_ar, const char *_name); -const char *bsdar_strmode(mode_t m); -void bsdar_warnc(struct bsdar *, int _code, const char *fmt, ...); diff --git a/contrib/elftoolchain/ar/benchmark/acp.sh b/contrib/elftoolchain/ar/benchmark/acp.sh deleted file mode 100644 index 01190357..00000000 --- a/contrib/elftoolchain/ar/benchmark/acp.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -# $Id$ - -# This script is adapted from Jan Psota's Tar Comparison Program(TCP). - -n=3 # number of repetitions -AR="bsdar gnuar" # ar archivers to compare - -test $# -ge 2 || { - echo "usage: $0 source_dir where_to_place_archive [where_to_extract_it]" - exit 0 -} - -THISDIR=`/bin/pwd` -src=$1 -dst=$2/acp.a -ext=${3:-$2}/acptmp -test -e $dst -o -e /tmp/acp \ - && { echo "$dst or /tmp/acp exists, exiting"; exit 1; } -mkdir -p $ext || exit 1 - -show_result () -{ - awk -vL="`du -k $dst`" '{printf "%s\t%s\t%s\%10.1d KB/s\n", -$1, $3, $5, ($1>0?L/$1:0)}' /tmp/acp | sort | head -n 1 -} - -test -d $src || { echo "'$src' is not a directory"; exit 1; } - -# ar versions -for ar in $AR; do echo -n "$ar: "; $ar -V | head -n 1; -done - -echo -echo "best time of $n repetitions" -echo -n " src=$src, " -echo -n "`du -sh $src | awk '{print $1}'`" -echo -n " in " -echo "`find $src | wc -l` files" -echo " archive=$dst, extract to $ext" - -echo "program operation real user system speed" -for op in "cru $dst $src/*" "t $dst" "x `basename $dst`"; do - for ar in $AR; do - echo -n "$ar " - echo $op | grep -q ^cr && echo -n "create " - echo $op | grep -q ^t && echo -n "list " - echo $op | grep -q ^x && echo -n "extract " - num=0 - while [ $num -lt $n ]; do - echo $op | grep -q ^cr && rm -f $dst - echo $op | grep -q ^x && { rm -rf $ext; mkdir -p $ext - cp $dst $ext; cd $ext; } - sync - time $ar $op > /dev/null 2>> /tmp/acp - echo $op | grep -q ^x && cd $THISDIR - num=`expr $num + 1` - done - show_result - rm -rf /tmp/acp - done - echo -done -rm -rf $ext $dst -rm -f /tmp/acp diff --git a/contrib/elftoolchain/ar/os.FreeBSD.mk b/contrib/elftoolchain/ar/os.FreeBSD.mk deleted file mode 100644 index c29af705..00000000 --- a/contrib/elftoolchain/ar/os.FreeBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -DPADD+= ${LIBBZ2} -LDADD+= -lbz2 diff --git a/contrib/elftoolchain/ar/os.Linux.mk b/contrib/elftoolchain/ar/os.Linux.mk deleted file mode 100644 index daed864e..00000000 --- a/contrib/elftoolchain/ar/os.Linux.mk +++ /dev/null @@ -1,9 +0,0 @@ -.if ${OS_DISTRIBUTION} == "Ubuntu" -.if ${OS_DISTRIBUTION_VERSION} >= 14 -# Ubuntu Trusty Tahr and later. - -# Use the --nounput option to flex(1), to prevent unused functions from -# being generated. -LFLAGS += --nounput -.endif -.endif diff --git a/contrib/elftoolchain/ar/ranlib.1 b/contrib/elftoolchain/ar/ranlib.1 deleted file mode 100644 index 9129f114..00000000 --- a/contrib/elftoolchain/ar/ranlib.1 +++ /dev/null @@ -1,86 +0,0 @@ -.\" Copyright (c) 2007,2009-2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 9, 2012 -.Dt RANLIB 1 -.Os -.Sh NAME -.Nm ranlib -.Nd update archive symbol tables -.Sh SYNOPSIS -.Nm -.Op Fl D -.Op Fl t -.Ar archive Ns ... -.Nm -.Fl V -.Sh DESCRIPTION -The -.Nm ranlib -utility is used to update an existing archive symbol table in an -.Xr ar 1 -archive, or to add an archive symbol table to an archive lacking one. -.Sh OPTIONS -The -.Nm -utility supports the following options: -.Bl -tag -width indent -.It Fl D -Use zeros for the mtime, uid and gid fields, and use mode 0644 for the -file mode field for all archive member headers. -This ensures that checksums on the resulting archives are reproducible -when member contents are identical. -.It Fl t -This option is accepted, but is ignored. -.It Fl V -Print a version identifier and exit. -.El -.Sh EXAMPLES -To update the archive symbol table for an archive -.Pa lib.a , -use: -.Dl "ranlib lib.a" -.Sh DIAGNOSTICS -.Ex -std -.Sh SEE ALSO -.Xr ar 1 , -.Xr ld 1 , -.Xr archive 3 , -.Xr elf 3 , -.Xr ar 5 -.Sh HISTORY -The -.Nm -command first appeared in AT&T UNIX Version 7. -.Pp -In -.Fx 8.0 , -.An Kai Wang Aq Mt kaiw@FreeBSD.org -reimplemented -.Nm -using the -.Lb libarchive -and the -.Lb libelf . diff --git a/contrib/elftoolchain/ar/read.c b/contrib/elftoolchain/ar/read.c deleted file mode 100644 index cb147fcf..00000000 --- a/contrib/elftoolchain/ar/read.c +++ /dev/null @@ -1,221 +0,0 @@ -/*- - * Copyright (c) 2007 Kai Wang - * Copyright (c) 2007 Tim Kientzle - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ar.h" - -ELFTC_VCSID("$Id$"); - -/* - * Handle read modes: 'x', 't' and 'p'. - * - * Returns EXIT_SUCCESS if all operations completed successfully or returns - * EXIT_FAILURE otherwise. - */ -int -ar_read_archive(struct bsdar *bsdar, int mode) -{ - FILE *out; - struct archive *a; - struct archive_entry *entry; - struct stat sb; - struct tm *tp; - const char *bname; - const char *name; - mode_t md; - size_t size; - time_t mtime; - uid_t uid; - gid_t gid; - char **av; - char buf[25]; - int found; - int exitcode, i, flags, r; - - assert(mode == 'p' || mode == 't' || mode == 'x'); - - if ((a = archive_read_new()) == NULL) - bsdar_errc(bsdar, 0, "archive_read_new failed"); - archive_read_support_format_ar(a); - AC(archive_read_open_filename(a, bsdar->filename, DEF_BLKSZ)); - - exitcode = EXIT_SUCCESS; - out = bsdar->output; - - for (;;) { - r = archive_read_next_header(a, &entry); - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY || - r == ARCHIVE_FATAL) - bsdar_warnc(bsdar, 0, "%s", archive_error_string(a)); - if (r == ARCHIVE_EOF || r == ARCHIVE_FATAL) - break; - if (r == ARCHIVE_RETRY) { - bsdar_warnc(bsdar, 0, "Retrying..."); - continue; - } - - if (archive_format(a) == ARCHIVE_FORMAT_AR_BSD) - bsdar->options |= AR_BSD; - else - bsdar->options &= ~AR_BSD; - - if ((name = archive_entry_pathname(entry)) == NULL) - break; - - /* Skip pseudo members. */ - if (bsdar_is_pseudomember(bsdar, name)) - continue; - - /* The ar(5) format only supports 'leaf' file names. */ - if (strchr(name, '/')) { - bsdar_warnc(bsdar, 0, "ignoring entry: %s", - name); - continue; - } - - /* - * If we had been given a list of file names to process, check - * that the current entry is present in this list. - */ - if (bsdar->argc > 0) { - found = 0; - for(i = 0; i < bsdar->argc; i++) { - av = &bsdar->argv[i]; - if (*av == NULL) - continue; - /* - * Per POSIX, only the basename of a file - * argument should be compared. - */ - if ((bname = basename(*av)) == NULL) - bsdar_errc(bsdar, errno, - "basename failed"); - if (strcmp(bname, name) != 0) - continue; - - *av = NULL; - found = 1; - break; - } - if (!found) - continue; - } - - if (mode == 't') { - if (bsdar->options & AR_V) { - md = archive_entry_mode(entry); - uid = archive_entry_uid(entry); - gid = archive_entry_gid(entry); - size = archive_entry_size(entry); - mtime = archive_entry_mtime(entry); - (void)fprintf(out, "%s %6d/%-6d %8ju ", - bsdar_strmode(md) + 1, uid, gid, - (uintmax_t)size); - tp = localtime(&mtime); - (void)strftime(buf, sizeof(buf), - "%b %e %H:%M %Y", tp); - (void)fprintf(out, "%s %s", buf, name); - } else - (void)fprintf(out, "%s", name); - r = archive_read_data_skip(a); - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY || - r == ARCHIVE_FATAL) { - (void)fprintf(out, "\n"); - bsdar_warnc(bsdar, 0, "%s", - archive_error_string(a)); - } - - if (r == ARCHIVE_FATAL) - break; - - (void)fprintf(out, "\n"); - } else { - /* mode == 'x' || mode = 'p' */ - if (mode == 'p') { - if (bsdar->options & AR_V) { - (void)fprintf(out, "\n<%s>\n\n", - name); - fflush(out); - } - r = archive_read_data_into_fd(a, fileno(out)); - } else { - /* mode == 'x' */ - if (stat(name, &sb) != 0) { - if (errno != ENOENT) { - bsdar_warnc(bsdar, errno, - "stat %s failed", - bsdar->filename); - continue; - } - } else { - /* stat success, file exist */ - if (bsdar->options & AR_CC) - continue; - if (bsdar->options & AR_U && - archive_entry_mtime(entry) <= - sb.st_mtime) - continue; - } - - if (bsdar->options & AR_V) - (void)fprintf(out, "x - %s\n", name); - /* Basic path security flags. */ - flags = ARCHIVE_EXTRACT_SECURE_SYMLINKS | - ARCHIVE_EXTRACT_SECURE_NODOTDOT; - if (bsdar->options & AR_O) - flags |= ARCHIVE_EXTRACT_TIME; - - r = archive_read_extract(a, entry, flags); - } - - if (r) { - bsdar_warnc(bsdar, 0, "%s", - archive_error_string(a)); - exitcode = EXIT_FAILURE; - } - } - } - - if (r == ARCHIVE_FATAL) - exitcode = EXIT_FAILURE; - - AC(archive_read_close(a)); - ACV(archive_read_free(a)); - - return (exitcode); -} diff --git a/contrib/elftoolchain/ar/util.c b/contrib/elftoolchain/ar/util.c deleted file mode 100644 index 061725c5..00000000 --- a/contrib/elftoolchain/ar/util.c +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * Copyright (c) 2003-2007 Tim Kientzle - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ar.h" - -ELFTC_VCSID("$Id$"); - -static void bsdar_vwarnc(struct bsdar *, int code, - const char *fmt, va_list ap); -static void bsdar_verrc(struct bsdar *bsdar, int code, - const char *fmt, va_list ap); - -static void -bsdar_vwarnc(struct bsdar *bsdar, int code, const char *fmt, va_list ap) -{ - - fprintf(stderr, "%s: warning: ", bsdar->progname); - vfprintf(stderr, fmt, ap); - if (code != 0) - fprintf(stderr, ": %s", strerror(code)); - fprintf(stderr, "\n"); -} - -void -bsdar_warnc(struct bsdar *bsdar, int code, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - bsdar_vwarnc(bsdar, code, fmt, ap); - va_end(ap); -} - -static void -bsdar_verrc(struct bsdar *bsdar, int code, const char *fmt, va_list ap) -{ - - fprintf(stderr, "%s: fatal: ", bsdar->progname); - vfprintf(stderr, fmt, ap); - if (code != 0) - fprintf(stderr, ": %s", strerror(code)); - fprintf(stderr, "\n"); -} - -void -bsdar_errc(struct bsdar *bsdar, int code, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - bsdar_verrc(bsdar, code, fmt, ap); - va_end(ap); - exit(EXIT_FAILURE); -} - -#define AR_STRMODE_SIZE 12 -const char * -bsdar_strmode(mode_t m) -{ - static char buf[AR_STRMODE_SIZE]; - -#if ELFTC_HAVE_STRMODE - /* Use the system's strmode(3). */ - strmode(m, buf); - return buf; - -#else - char c; - - /* - * The first character of the string denotes the type of the - * entry. - */ - if (S_ISBLK(m)) - c = 'b'; - else if (S_ISCHR(m)) - c = 'c'; - else if (S_ISDIR(m)) - c = 'd'; -#if defined(S_ISFIFO) - else if (S_ISFIFO(m)) - c = 'p'; -#endif -#if defined(S_ISLNK) - else if (S_ISLNK(m)) - c = 'l'; -#endif - else if (S_ISREG(m)) - c = '-'; -#if defined(S_ISSOCK) - else if (S_ISSOCK(m)) - c = 's'; -#endif - else - c = '?'; - buf[0] = c; - - /* The next 3 characters show permissions for the owner. */ - buf[1] = (m & S_IRUSR) ? 'r' : '-'; - buf[2] = m & S_IWUSR ? 'w' : '-'; - if (m & S_ISUID) - c = (m & S_IXUSR) ? 's' : 'S'; - else - c = (m & S_IXUSR) ? 'x' : '-'; - buf[3] = c; - - /* The next 3 characters describe permissions for the group. */ - buf[4] = (m & S_IRGRP) ? 'r' : '-'; - buf[5] = m & S_IWGRP ? 'w' : '-'; - if (m & S_ISGID) - c = (m & S_IXGRP) ? 's' : 'S'; - else - c = (m & S_IXGRP) ? 'x' : '-'; - buf[6] = c; - - - /* The next 3 characters describe permissions for others. */ - buf[7] = (m & S_IROTH) ? 'r' : '-'; - buf[8] = m & S_IWOTH ? 'w' : '-'; - if (m & S_ISVTX) /* sticky bit */ - c = (m & S_IXOTH) ? 't' : 'T'; - else - c = (m & S_IXOTH) ? 'x' : '-'; - buf[9] = c; - - /* End the string with a blank and NUL-termination. */ - buf[10] = ' '; - buf[11] = '\0'; - - return buf; -#endif /* !ELTC_HAVE_STRMODE */ -} - -int -bsdar_is_pseudomember(struct bsdar *bsdar, const char *name) -{ - /* - * The "__.SYMDEF" member is special in the BSD format - * variant. - */ - if (bsdar->options & AR_BSD) - return (strcmp(name, AR_SYMTAB_NAME_BSD) == 0); - else - /* - * The names "/ " and "// " are special in the SVR4 - * variant. - */ - return (strcmp(name, AR_STRINGTAB_NAME_SVR4) == 0 || - strcmp(name, AR_SYMTAB_NAME_SVR4) == 0); -} diff --git a/contrib/elftoolchain/ar/write.c b/contrib/elftoolchain/ar/write.c deleted file mode 100644 index 0501660e..00000000 --- a/contrib/elftoolchain/ar/write.c +++ /dev/null @@ -1,986 +0,0 @@ -/*- - * Copyright (c) 2007 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ar.h" - -ELFTC_VCSID("$Id$"); - -#define _ARMAG_LEN 8 /* length of the magic string */ -#define _ARHDR_LEN 60 /* length of the archive header */ -#define _INIT_AS_CAP 128 /* initial archive string table size */ -#define _INIT_SYMOFF_CAP (256*(sizeof(uint32_t))) /* initial so table size */ -#define _INIT_SYMNAME_CAP 1024 /* initial sn table size */ -#define _MAXNAMELEN_SVR4 15 /* max member name length in svr4 variant */ -#define _MAXNAMELEN_BSD 16 /* max member name length in bsd variant */ -#define _TRUNCATE_LEN 15 /* number of bytes to keep for member name */ - -static void add_to_ar_str_table(struct bsdar *bsdar, const char *name); -static void add_to_ar_sym_table(struct bsdar *bsdar, const char *name); -static struct ar_obj *create_obj_from_file(struct bsdar *bsdar, - const char *name, time_t mtime); -static void create_symtab_entry(struct bsdar *bsdar, Elf *e); -static void free_obj(struct ar_obj *obj); -static void insert_obj(struct bsdar *bsdar, struct ar_obj *obj, - struct ar_obj *pos); -static void read_objs(struct bsdar *bsdar, const char *archive, - int checkargv); -static void write_cleanup(struct bsdar *bsdar); -static void write_data(struct bsdar *bsdar, struct archive *a, - const void *buf, size_t s); -static void write_objs(struct bsdar *bsdar); - -/* - * Create an object from a file, and return the created object - * descriptor. Return NULL if either an error occurs, or if the '-u' - * option was specified and the member is not newer than the existing - * one in the archive. - */ -static struct ar_obj * -create_obj_from_file(struct bsdar *bsdar, const char *name, time_t mtime) -{ - struct ar_obj *obj; - struct stat sb; - const char *bname; - char *tmpname; - int fd; - - if (name == NULL) - return (NULL); - - obj = malloc(sizeof(struct ar_obj)); - if (obj == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - - obj->elf = NULL; - - if ((fd = open(name, O_RDONLY, 0)) < 0) { - bsdar_warnc(bsdar, errno, "can't open file: %s", name); - free(obj); - return (NULL); - } - - tmpname = strdup(name); - if ((bname = basename(tmpname)) == NULL) - bsdar_errc(bsdar, errno, "basename failed"); - if (bsdar->options & AR_TR && strlen(bname) > _TRUNCATE_LEN) { - if ((obj->name = malloc(_TRUNCATE_LEN + 1)) == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - (void)strncpy(obj->name, bname, _TRUNCATE_LEN); - obj->name[_TRUNCATE_LEN] = '\0'; - } else - if ((obj->name = strdup(bname)) == NULL) - bsdar_errc(bsdar, errno, "strdup failed"); - free(tmpname); - - if (fstat(fd, &sb) < 0) { - bsdar_warnc(bsdar, errno, "can't fstat file: %s", obj->name); - goto giveup; - } - if (!S_ISREG(sb.st_mode)) { - bsdar_warnc(bsdar, 0, "%s is not an ordinary file", obj->name); - goto giveup; - } - - if (sb.st_dev == bsdar->ar_dev && sb.st_ino == bsdar->ar_ino) { - bsdar_warnc(bsdar, 0, "cannot add archive \"%s\" to itself", - obj->name); - goto giveup; - } - - /* - * If the '-u' option is specified and member is not newer - * than the existing one, we should not replace the member. - * However, if mtime == 0, i.e., if nonexistent members are to - * be forcibly replaced, then the '-u' option is to be ignored. - */ - if (mtime != 0 && bsdar->options & AR_U && sb.st_mtime <= mtime) - goto giveup; - - /* - * When the '-D' option is specified, the mtime and UID/GID of - * the member will be set to 0, and the file mode will be set - * to 644. This ensures that checksums will match for two - * archives containing identical content. - */ - if (bsdar->options & AR_D) { - obj->uid = 0; - obj->gid = 0; - obj->mtime = 0; - obj->md = S_IFREG | 0644; - } else { - obj->uid = sb.st_uid; - obj->gid = sb.st_gid; - obj->mtime = sb.st_mtime; - obj->md = sb.st_mode; - } - obj->size = sb.st_size; - obj->dev = sb.st_dev; - obj->ino = sb.st_ino; - - if (obj->size == 0) { - return (obj); - } - - if ((obj->elf = elf_open(fd)) == NULL) { - bsdar_warnc(bsdar, 0, "file initialization failed for %s: %s", - obj->name, elf_errmsg(-1)); - goto giveup; - } - - /* - * Read the object fully into memory and close its file - * descriptor. - */ - if (elf_cntl(obj->elf, ELF_C_FDREAD) < 0) { - bsdar_warnc(bsdar, 0, "%s could not be read in: %s", - obj->name, elf_errmsg(-1)); - goto giveup; - } - - if (close(fd) < 0) - bsdar_errc(bsdar, errno, "close failed: %s", - obj->name); - - return (obj); - -giveup: - if (obj->elf) - elf_end(obj->elf); - - if (close(fd) < 0) - bsdar_errc(bsdar, errno, "close failed: %s", - obj->name); - free(obj->name); - free(obj); - return (NULL); -} - -/* - * Free an object and its associated allocations. - */ -static void -free_obj(struct ar_obj *obj) -{ - if (obj->elf) - elf_end(obj->elf); - - free(obj->name); - free(obj); -} - -/* - * Insert an object into a list, either before/after the 'pos' obj or - * at the end of the list. - */ -static void -insert_obj(struct bsdar *bsdar, struct ar_obj *obj, struct ar_obj *pos) -{ - if (obj == NULL) - bsdar_errc(bsdar, 0, "try to insert a null obj"); - - if (pos == NULL || obj == pos) - /* - * If the object to move happens to be the position - * obj, or if there is no position obj, move the - * object to the end. - */ - goto tail; - - if (bsdar->options & AR_B) { - TAILQ_INSERT_BEFORE(pos, obj, objs); - return; - } - if (bsdar->options & AR_A) { - TAILQ_INSERT_AFTER(&bsdar->v_obj, pos, obj, objs); - return; - } - -tail: - TAILQ_INSERT_TAIL(&bsdar->v_obj, obj, objs); - -} - -/* - * Read objects from archive into the 'v_obj' list. Note that - * 'checkargv' is set when read_objs() is used to read objects from - * the target of 'ADDLIB' command in ar script mode; in this case the - * 'argv' array specifies the members that 'ADDLIB' is to operate on. - */ -static void -read_objs(struct bsdar *bsdar, const char *archive, int checkargv) -{ - struct archive *a; - struct archive_entry *entry; - struct ar_obj *obj; - const char *name; - const char *bname; - char *buff; - char **av; - size_t size; - int i, r, find; - - if ((a = archive_read_new()) == NULL) - bsdar_errc(bsdar, 0, "archive_read_new failed"); - archive_read_support_format_ar(a); - AC(archive_read_open_filename(a, archive, DEF_BLKSZ)); - for (;;) { - r = archive_read_next_header(a, &entry); - if (r == ARCHIVE_FATAL) - bsdar_errc(bsdar, 0, "%s", archive_error_string(a)); - if (r == ARCHIVE_EOF) - break; - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY) - bsdar_warnc(bsdar, 0, "%s", archive_error_string(a)); - if (r == ARCHIVE_RETRY) { - bsdar_warnc(bsdar, 0, "Retrying..."); - continue; - } - - name = archive_entry_pathname(entry); - - /* - * Skip pseudo members. - */ - if (bsdar_is_pseudomember(bsdar, name)) - continue; - - /* - * If 'checkargv' is set, only read those members - * specified in argv. - */ - if (checkargv && bsdar->argc > 0) { - find = 0; - for(i = 0; i < bsdar->argc; i++) { - av = &bsdar->argv[i]; - if (*av == NULL) - continue; - if ((bname = basename(*av)) == NULL) - bsdar_errc(bsdar, errno, - "basename failed"); - if (strcmp(bname, name) != 0) - continue; - - *av = NULL; - find = 1; - break; - } - if (!find) - continue; - } - - size = archive_entry_size(entry); - - if (size > 0) { - if ((buff = malloc(size)) == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - if (archive_read_data(a, buff, size) != (ssize_t)size) { - bsdar_warnc(bsdar, 0, "%s", - archive_error_string(a)); - free(buff); - continue; - } - } else - buff = NULL; - - obj = malloc(sizeof(struct ar_obj)); - if (obj == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - obj->elf = NULL; - if (buff) { - obj->elf = elf_openmemory(buff, size); - if (obj->elf == NULL) { - bsdar_warnc(bsdar, 0, "elf_openmemory() " - "failed for %s: %s", name, - elf_errmsg(-1)); - free(buff); - free(obj); - continue; - } - } - if ((obj->name = strdup(name)) == NULL) - bsdar_errc(bsdar, errno, "strdup failed"); - obj->size = size; - obj->uid = archive_entry_uid(entry); - obj->gid = archive_entry_gid(entry); - obj->md = archive_entry_mode(entry); - obj->mtime = archive_entry_mtime(entry); - obj->dev = 0; - obj->ino = 0; - - TAILQ_INSERT_TAIL(&bsdar->v_obj, obj, objs); - } - AC(archive_read_close(a)); - ACV(archive_read_free(a)); -} - -/* - * Write an archive. - * - * Returns EXIT_SUCCESS if the write succeeded or EXIT_FAILURE otherwise. - */ -int -ar_write_archive(struct bsdar *bsdar, int mode) -{ - struct ar_obj *nobj, *obj, *obj_temp, *pos; - struct stat sb; - const char *bname; - char **av; - int exitcode, i; - - TAILQ_INIT(&bsdar->v_obj); - exitcode = EXIT_SUCCESS; - nobj = NULL; - pos = NULL; - memset(&sb, 0, sizeof(sb)); - - assert(mode == 'A' || mode == 'd' || mode == 'm' || mode == 'q' || - mode == 'r' || mode == 's'); - - /* - * Test if the specified archive exists, to determine - * whether we are creating a new archive. - */ - if (stat(bsdar->filename, &sb) != 0) { - if (errno != ENOENT) { - bsdar_warnc(bsdar, errno, "stat %s failed", - bsdar->filename); - return (EXIT_FAILURE); - } - - /* We do not create archive in mode 'd', 'm' and 's'. */ - if (mode != 'r' && mode != 'q') { - bsdar_warnc(bsdar, 0, "%s: no such file", - bsdar->filename); - return (EXIT_FAILURE); - } - - /* Issue a message if the '-c' option was not specified. */ - if (!(bsdar->options & AR_C)) - bsdar_warnc(bsdar, 0, "creating %s", bsdar->filename); - goto new_archive; - } - - bsdar->ar_dev = sb.st_dev; - bsdar->ar_ino = sb.st_ino; - - /* - * First read members from the existing archive. - */ - read_objs(bsdar, bsdar->filename, 0); - - /* - * For mode 's', no member will be moved, deleted or replaced. - */ - if (mode == 's') - goto write_objs; - - /* - * For mode 'q', we don't need to adjust existing members either. - * Also, -a, -b and -i are ignored in this mode. New members are - * always inserted at tail. - */ - if (mode == 'q') - goto new_archive; - - /* - * Mode 'A' adds the contents of another archive to the tail - * of current archive. Note that mode 'A' is a special mode - * for the 'ADDLIB' command in ar's script mode. Currently - * there is no option that invokes this function from ar's - * command line. - */ - if (mode == 'A') { - /* - * Read objects from the target archive of the - * 'ADDLIB' command. If there are members specified in - * 'argv', read those members only, otherwise the - * entire archive will be read. - */ - read_objs(bsdar, bsdar->addlib, 1); - goto write_objs; - } - - /* - * Try to find the position member specified by user. - */ - if (bsdar->options & AR_A || bsdar->options & AR_B) { - TAILQ_FOREACH(obj, &bsdar->v_obj, objs) { - if (strcmp(obj->name, bsdar->posarg) == 0) { - pos = obj; - break; - } - } - - /* - * If we cannot find the position specified by the - * user, silently insert objects at the tail of the - * list. - */ - if (pos == NULL) - bsdar->options &= ~(AR_A | AR_B); - } - - for (i = 0; i < bsdar->argc; i++) { - av = &bsdar->argv[i]; - - TAILQ_FOREACH_SAFE(obj, &bsdar->v_obj, objs, obj_temp) { - if ((bname = basename(*av)) == NULL) - bsdar_errc(bsdar, errno, "basename failed"); - if (bsdar->options & AR_TR) { - if (strncmp(bname, obj->name, _TRUNCATE_LEN)) - continue; - } else - if (strcmp(bname, obj->name) != 0) - continue; - - if (mode == 'r') { - /* - * If the new member should not - * replace the old one, skip it. - */ - nobj = create_obj_from_file(bsdar, *av, - obj->mtime); - if (nobj == NULL) { - exitcode = EXIT_FAILURE; - goto skip_obj; - } - } - - if (bsdar->options & AR_V) - (void)fprintf(bsdar->output, "%c - %s\n", - mode, *av); - - TAILQ_REMOVE(&bsdar->v_obj, obj, objs); - if (mode == 'd' || mode == 'r') - free_obj(obj); - - if (mode == 'm') - insert_obj(bsdar, obj, pos); - if (mode == 'r') - insert_obj(bsdar, nobj, pos); - - skip_obj: - *av = NULL; - break; - } - - } - -new_archive: - /* - * When operating in mode 'r', directly add the specified - * objects which do not exist in current archive. When - * operating in mode 'q', all objects specified by the command - * line args are appended to the archive, without checking - * existing members in the archive. - */ - for (i = 0; i < bsdar->argc; i++) { - av = &bsdar->argv[i]; - if (*av != NULL && (mode == 'r' || mode == 'q')) { - nobj = create_obj_from_file(bsdar, *av, 0); - if (nobj == NULL) { - exitcode = EXIT_FAILURE; - *av = NULL; - continue; - } - insert_obj(bsdar, nobj, pos); - if (bsdar->options & AR_V) - (void)fprintf(bsdar->output, "a - %s\n", *av); - *av = NULL; - } - } - -write_objs: - write_objs(bsdar); - write_cleanup(bsdar); - - return (exitcode); -} - -/* - * Release memory. - */ -static void -write_cleanup(struct bsdar *bsdar) -{ - struct ar_obj *obj, *obj_temp; - - TAILQ_FOREACH_SAFE(obj, &bsdar->v_obj, objs, obj_temp) { - TAILQ_REMOVE(&bsdar->v_obj, obj, objs); - free_obj(obj); - } - - free(bsdar->as); - free(bsdar->s_so); - free(bsdar->s_sn); - bsdar->as = NULL; - bsdar->s_so = NULL; - bsdar->s_sn = NULL; -} - -/* - * Wrapper for archive_write_data(). - */ -static void -write_data(struct bsdar *bsdar, struct archive *a, const void *buf, size_t s) -{ - if (archive_write_data(a, buf, s) != (ssize_t)s) - bsdar_errc(bsdar, 0, "%s", archive_error_string(a)); -} - -/* - * Compute the size of the symbol table for an archive. - */ -static size_t -bsdar_symtab_size(struct bsdar *bsdar) -{ - size_t sz; - - if (bsdar->options & AR_BSD) { - /* - * A BSD style symbol table has two parts. - * Each part is preceded by its size in bytes, - * encoded as a C 'long'. In the first part, - * there are 's_cnt' entries, each entry being - * 2 'long's in size. The second part - * contains a string table. - */ - sz = 2 * sizeof(long) + (bsdar->s_cnt * 2 * sizeof(long)) + - bsdar->s_sn_sz; - } else { - /* - * An SVR4 style symbol table comprises of a 32 bit - * number holding the number of entries, followed by - * that many 32-bit offsets, followed by a string - * table. - */ - sz = sizeof(uint32_t) + bsdar->s_cnt * sizeof(uint32_t) + - bsdar->s_sn_sz; - } - - return (sz); -} - -static void -write_svr4_symtab_entry(struct bsdar *bsdar, struct archive *a) -{ - int nr; - uint32_t i; - - /* Translate offsets to big-endian form. */ - for (i = 0; i < bsdar->s_cnt; i++) - bsdar->s_so[i] = htobe32(bsdar->s_so[i]); - - nr = htobe32(bsdar->s_cnt); - write_data(bsdar, a, &nr, sizeof(uint32_t)); - write_data(bsdar, a, bsdar->s_so, sizeof(uint32_t) * - bsdar->s_cnt); - write_data(bsdar, a, bsdar->s_sn, bsdar->s_sn_sz); -} - -static void -write_bsd_symtab_entry(struct bsdar *bsdar, struct archive *a) -{ - long br_sz, br_off, br_strx; - char *s; - uint32_t i; - - /* - * Write out the size in the byte of the array of 'ranlib' - * descriptors to follow. - */ - - br_sz = (long) (bsdar->s_cnt * 2 * sizeof(long)); - write_data(bsdar, a, &br_sz, sizeof(long)); - - /* - * Write out the array of 'ranlib' descriptors. Each - * descriptor comprises of (a) an offset into the following - * string table and (b) a file offset to the relevant member. - */ - for (i = 0, s = bsdar->s_sn; i < bsdar->s_cnt; i++) { - br_strx = (long) (s - bsdar->s_sn); - br_off = (long) bsdar->s_so[i]; - write_data(bsdar, a, &br_strx, sizeof(long)); - write_data(bsdar, a, &br_off, sizeof(long)); - - /* Find the start of the next symbol in the string table. */ - while (*s++ != '\0') - ; - } - - /* - * Write out the size of the string table as a 'long', - * followed by the string table itself. - */ - br_sz = (long) bsdar->s_sn_sz; - write_data(bsdar, a, &br_sz, sizeof(long)); - write_data(bsdar, a, bsdar->s_sn, bsdar->s_sn_sz); -} - - -/* - * Write the resulting archive members. - */ -static void -write_objs(struct bsdar *bsdar) -{ - struct ar_obj *obj; - struct archive *a; - struct archive_entry *entry; - size_t s_sz; /* size of archive symbol table. */ - size_t pm_sz; /* size of pseudo members */ - size_t namelen; /* size of member name. */ - size_t obj_sz; /* size of object + extended header. */ - int i; - char *buf; - const char *entry_name; - - bsdar->rela_off = 0; - - /* - * Create the archive symbol table and the archive string - * table, if needed. - */ - TAILQ_FOREACH(obj, &bsdar->v_obj, objs) { - if (!(bsdar->options & AR_SS) && obj->elf != NULL) - create_symtab_entry(bsdar, obj->elf); - - obj_sz = 0; - namelen = strlen(obj->name); - if (bsdar->options & AR_BSD) { - /* Account for the space used by the file name. */ - if (namelen > _MAXNAMELEN_BSD || - strchr(obj->name, ' ')) - obj_sz += namelen; - } else if (namelen > _MAXNAMELEN_SVR4) - add_to_ar_str_table(bsdar, obj->name); - - obj_sz += obj->size; /* add the actual object size */ - - /* Roundup the final size and add the header length. */ - bsdar->rela_off += _ARHDR_LEN + obj_sz + (obj_sz & 1); - } - - /* - * Pad the symbol name string table. It is treated specially - * because symbol name table should be padded by a '\0', and - * not '\n' as for normal members. The size of the 'sn' table - * includes the pad byte. - */ - if (bsdar->s_cnt != 0 && bsdar->s_sn_sz % 2 != 0) - bsdar->s_sn[bsdar->s_sn_sz++] = '\0'; - - /* - * The archive string table is padded by a "\n" like a normal - * member. The difference is that the size of archive string - * table includes the pad byte, while normal members' size - * fields do not. - */ - if (bsdar->as != NULL && bsdar->as_sz % 2 != 0) - bsdar->as[bsdar->as_sz++] = '\n'; - - /* - * If there is a symbol table, calculate the size of pseudo - * members, and convert previously stored relative offsets to - * absolute ones. - * - * absolute_offset = relative_offset + size_of_pseudo_members) - */ - - s_sz = bsdar_symtab_size(bsdar); - if (bsdar->s_cnt != 0) { - pm_sz = _ARMAG_LEN + (_ARHDR_LEN + s_sz); - if (bsdar->as != NULL) /* SVR4 archives only */ - pm_sz += _ARHDR_LEN + bsdar->as_sz; - for (i = 0; (size_t) i < bsdar->s_cnt; i++) - bsdar->s_so[i] = bsdar->s_so[i] + pm_sz; - } - - if ((a = archive_write_new()) == NULL) - bsdar_errc(bsdar, 0, "archive_write_new failed"); - - if (bsdar->options & AR_BSD) - archive_write_set_format_ar_bsd(a); - else - archive_write_set_format_ar_svr4(a); - - AC(archive_write_open_filename(a, bsdar->filename)); - - /* - * Write the archive symbol table, if there is one. If - * options '-s' was explicitly specified or if we were invoked - * as 'ranlib', write the symbol table even if it is empty. - */ - if ((bsdar->s_cnt != 0 && !(bsdar->options & AR_SS)) || - bsdar->options & AR_S) { - if (bsdar->options & AR_BSD) - entry_name = AR_SYMTAB_NAME_BSD; - else - entry_name = AR_SYMTAB_NAME_SVR4; - - entry = archive_entry_new(); - archive_entry_copy_pathname(entry, entry_name); - if ((bsdar->options & AR_D) == 0) - archive_entry_set_mtime(entry, time(NULL), 0); - archive_entry_set_size(entry, s_sz); - AC(archive_write_header(a, entry)); - if (bsdar->options & AR_BSD) - write_bsd_symtab_entry(bsdar, a); - else - write_svr4_symtab_entry(bsdar, a); - archive_entry_free(entry); - } - - /* Write the archive string table, if any. */ - if (bsdar->as != NULL) { - entry = archive_entry_new(); - archive_entry_copy_pathname(entry, AR_STRINGTAB_NAME_SVR4); - archive_entry_set_size(entry, bsdar->as_sz); - AC(archive_write_header(a, entry)); - write_data(bsdar, a, bsdar->as, bsdar->as_sz); - archive_entry_free(entry); - } - - /* Write normal members. */ - TAILQ_FOREACH(obj, &bsdar->v_obj, objs) { - if ((buf = elf_rawfile(obj->elf, NULL)) == NULL) { - bsdar_warnc(bsdar, 0, "elf_rawfile() failed: %s", - elf_errmsg(-1)); - continue; - } - - entry = archive_entry_new(); - archive_entry_copy_pathname(entry, obj->name); - archive_entry_set_uid(entry, obj->uid); - archive_entry_set_gid(entry, obj->gid); - archive_entry_set_mode(entry, obj->md); - archive_entry_set_size(entry, obj->size); - archive_entry_set_mtime(entry, obj->mtime, 0); - archive_entry_set_dev(entry, obj->dev); - archive_entry_set_ino(entry, obj->ino); - archive_entry_set_filetype(entry, AE_IFREG); - AC(archive_write_header(a, entry)); - write_data(bsdar, a, buf, obj->size); - archive_entry_free(entry); - } - - AC(archive_write_close(a)); - ACV(archive_write_free(a)); -} - -/* - * Extract global symbols from ELF binary members. - */ -static void -create_symtab_entry(struct bsdar *bsdar, Elf *e) -{ - Elf_Scn *scn; - GElf_Shdr shdr; - GElf_Sym sym; - Elf_Data *data; - char *name; - size_t n, shstrndx; - int elferr, tabndx, len, i; - - if (elf_kind(e) != ELF_K_ELF) { - /* Silently a ignore non-ELF member. */ - return; - } - if (elf_getshstrndx(e, &shstrndx) == 0) { - bsdar_warnc(bsdar, 0, "elf_getshstrndx failed: %s", - elf_errmsg(-1)); - return; - } - - tabndx = -1; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) != &shdr) { - bsdar_warnc(bsdar, 0, - "elf_getshdr failed: %s", elf_errmsg(-1)); - continue; - } - if ((name = elf_strptr(e, shstrndx, shdr.sh_name)) == NULL) { - bsdar_warnc(bsdar, 0, - "elf_strptr failed: %s", elf_errmsg(-1)); - continue; - } - if (strcmp(name, ".strtab") == 0) { - tabndx = elf_ndxscn(scn); - break; - } - } - elferr = elf_errno(); - if (elferr != 0) - bsdar_warnc(bsdar, 0, "elf_nextscn failed: %s", - elf_errmsg(elferr)); - if (tabndx == -1) { - bsdar_warnc(bsdar, 0, "can't find .strtab section"); - return; - } - - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) != &shdr) { - bsdar_warnc(bsdar, 0, "elf_getshdr failed: %s", - elf_errmsg(-1)); - continue; - } - if (shdr.sh_type != SHT_SYMTAB) - continue; - - data = NULL; - n = 0; - while (n < shdr.sh_size && - (data = elf_getdata(scn, data)) != NULL) { - len = data->d_size / shdr.sh_entsize; - for (i = 0; i < len; i++) { - if (gelf_getsym(data, i, &sym) != &sym) { - bsdar_warnc(bsdar, 0, - "gelf_getsym failed: %s", - elf_errmsg(-1)); - continue; - } - - /* Keep only global and weak symbols. */ - if (GELF_ST_BIND(sym.st_info) != STB_GLOBAL && - GELF_ST_BIND(sym.st_info) != STB_WEAK) - continue; - - /* Keep only defined symbols. */ - if (sym.st_shndx == SHN_UNDEF) - continue; - - if ((name = elf_strptr(e, tabndx, - sym.st_name)) == NULL) { - bsdar_warnc(bsdar, 0, - "elf_strptr failed: %s", - elf_errmsg(-1)); - continue; - } - - add_to_ar_sym_table(bsdar, name); - } - } - } - elferr = elf_errno(); - if (elferr != 0) - bsdar_warnc(bsdar, 0, "elf_nextscn failed: %s", - elf_errmsg(elferr)); -} - -/* - * Append to the archive string table buffer. - */ -static void -add_to_ar_str_table(struct bsdar *bsdar, const char *name) -{ - - if (bsdar->as == NULL) { - bsdar->as_cap = _INIT_AS_CAP; - bsdar->as_sz = 0; - if ((bsdar->as = malloc(bsdar->as_cap)) == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - } - - /* - * The space required for holding one member name in the 'as' - * table includes: strlen(name) + (1 for '/') + (1 for '\n') + - * (possibly 1 for padding). - */ - while (bsdar->as_sz + strlen(name) + 3 > bsdar->as_cap) { - bsdar->as_cap *= 2; - bsdar->as = realloc(bsdar->as, bsdar->as_cap); - if (bsdar->as == NULL) - bsdar_errc(bsdar, errno, "realloc failed"); - } - strncpy(&bsdar->as[bsdar->as_sz], name, strlen(name)); - bsdar->as_sz += strlen(name); - bsdar->as[bsdar->as_sz++] = '/'; - bsdar->as[bsdar->as_sz++] = '\n'; -} - -/* - * Append to the archive symbol table buffer. - */ -static void -add_to_ar_sym_table(struct bsdar *bsdar, const char *name) -{ - - if (bsdar->s_so == NULL) { - if ((bsdar->s_so = malloc(_INIT_SYMOFF_CAP)) == - NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - bsdar->s_so_cap = _INIT_SYMOFF_CAP; - bsdar->s_cnt = 0; - } - - if (bsdar->s_sn == NULL) { - if ((bsdar->s_sn = malloc(_INIT_SYMNAME_CAP)) == NULL) - bsdar_errc(bsdar, errno, "malloc failed"); - bsdar->s_sn_cap = _INIT_SYMNAME_CAP; - bsdar->s_sn_sz = 0; - } - - if (bsdar->s_cnt * sizeof(uint32_t) >= bsdar->s_so_cap) { - bsdar->s_so_cap *= 2; - bsdar->s_so = realloc(bsdar->s_so, bsdar->s_so_cap); - if (bsdar->s_so == NULL) - bsdar_errc(bsdar, errno, "realloc failed"); - } - bsdar->s_so[bsdar->s_cnt] = bsdar->rela_off; - bsdar->s_cnt++; - - /* - * The space required for holding one symbol name in the 'sn' - * table includes: strlen(name) + (1 for '\n') + (possibly 1 - * for padding). - */ - while (bsdar->s_sn_sz + strlen(name) + 2 > bsdar->s_sn_cap) { - bsdar->s_sn_cap *= 2; - bsdar->s_sn = realloc(bsdar->s_sn, bsdar->s_sn_cap); - if (bsdar->s_sn == NULL) - bsdar_errc(bsdar, errno, "realloc failed"); - } - memcpy(&bsdar->s_sn[bsdar->s_sn_sz], name, strlen(name)); - bsdar->s_sn_sz += strlen(name); - bsdar->s_sn[bsdar->s_sn_sz++] = '\0'; -} diff --git a/contrib/elftoolchain/as/Makefile b/contrib/elftoolchain/as/Makefile deleted file mode 100644 index ef0f8e97..00000000 --- a/contrib/elftoolchain/as/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= as -SRCS= as.c - -LSRC= -YSRC= -LDADD= -lelftc - -MAN= as.1 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/as/as.1 b/contrib/elftoolchain/as/as.1 deleted file mode 100644 index 09252c82..00000000 --- a/contrib/elftoolchain/as/as.1 +++ /dev/null @@ -1,211 +0,0 @@ -.\" Copyright (c) 2012 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer -.\" in this position and unchanged. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 22, 2012 -.Dt AS 1 -.Os -.Sh NAME -.Nm as -.Nd an assembler -.Sh SYNOPSIS -.Nm -.Op Fl D -.Op Fl I Ar dir -.Op Fl J -.Op Fl K -.Op Fl L | Fl -keep-locals -.Op Fl R -.Op Fl V -.Op Fl W | Fl -no-warn -.Op Fl Z -.Op Fl a Ns Oo Ar cdghlns Oc Ns Oo Ar =filename Oc -.Op Fl g | Fl -gen-debug -.Op Fl h | Fl -help -.Op Fl march= Ns Ar cpu Ns Oo ,+ Ns Oo Ar extensions Oc Ns "..." Oc -.Op Fl mtune= Ns Ar cpu -.Op Fl n -.Op Fl o Ar obj -.Op Fl q -.Op Fl -MD Ar file -.Op Fl -defsym Ar symbol Ns = Ns Ar value -.Op Fl -fatal-warnings -.Op Fl -listing-lhs-width -.Op Fl -listing-lhs-width2 -.Op Fl -listing-rhs-width -.Op Fl -listing-cont-lines -.Op Fl -statistics -.Op Fl -strip-local-absolute -.Op Fl -target-help -.Op Fl -version -.Op Fl -warn -.Op Ar target-options -.Op Ar -.Sh DESCRIPTION -The -.Nm -utility creates an ELF relocatable object from assembly language -sources. -.Pp -If multiple source files are specified, -.Nm -will read each of them in the order specified. -If no files are specified, -.Nm -will read from standard input. -.Pp -The -.Nm -utility understands the following options: -.Bl -tag -width indent -.It Fl D -Display internal debugging messages. -.It Fl I Ar dir -Add the directory named by argument -.Ar dir -to the search path used by the -.Ic ".include" -directive. -.It Fl J -Suppress warnings about overflows in signed arithmetic. -.It Fl K -Warn about alterations to difference tables if any. -.It Fl L | Fl -keep-locals -Keep local symbols in the output file. -The default is to discard local symbols. -.It Fl R -Merge the -.Li .data -and -.Li .text -sections when creating an object. -.It Fl V -Print the assembler version on standard output before assembling -the inputs. -.It Fl W | Fl -no-warn -Suppress assembler warnings. -.It Fl Z -Generate an output object even if there were errors in the input. -.It Fl a Ns Oo Ar cdghlns Oc Ns Oo Ar =filename Oc -Control generated listings. -The supported flags are: -.Bl -tag -width indent -compact -.It c -Omit listing code in false conditional paths. -.It d -Omit debugging directives. -.It g -Include the version of the assembler and other general information -in the generated listing. -.It h -Include high-level source in the listing. -.It l -Include assembly source in the listing. -.It m -Include macro expansions in the listing. -.It n -Suppress generation of the header and footer in the listing. -.It s -Include symbol information in the listing. -.It = Ns Ar filename -Set the name of the listing file to that specified by argument -.Ar filename . -If specified, this flag must be the last in the list. -.El -If option -.Fl a -is specified without additional arguments, a flag set of -.Sq Ar hls -is assumed. -.It Fl g | Fl -gen-debug -Generate debug information in DWARF format. -.It Fl h | Fl -help -Show a help message and exit. -.It Fl march Ns = Ns Ar cpu Ns Oo ,+ Ns Oo Ar extensions Oc Ns "..." Oc -Generated code for the CPU named by argument -.Ar cpu -with additional instruction set extensions named by the argument -.Ar extensions . -.It Fl mtune Ns = Ns Ar cpu -Optimize the assembled object for the CPU named by the argument -.Ar cpu . -.It Fl n -Do not optimize code alignment. -.It Fl o Ar filename -Write the assembled output to the file named by argument -.Ar filename . -.It Fl q -Suppress warnings. -.It Fl -MD Ar filename -Write dependency information in a form usable by -.Xr make 1 -to the file name by argument -.Ar filename . -.It Fl -defsym Ar symbol Ns = Ns Ar value -Define symbol named by the argument -.Ar symbol -as having the value named by -.Ar value . -The argument value is an integer in one of the forms accepted -by -.Xr atoi 3 . -.It Fl -fatal-warnings -Treat all warnings as fatal. -.It Fl -listing-lhs-width Ns = Ns Ar nwords -Set the width of the output data column in a listing to the number -of machine words specified in argument -.Ar nwords . -.It Fl -listing-lhs-width2 Ns = Ns Ar nwords -Set the width of continuation lines for the data column to the number -of machine words specified in argument -.Ar nwords . -.It Fl -listing-rhs-width Ns = Ns Ar nchars -Set the maximum displayed width of an input source line to the number -of characters specified by argument -.Ar nchars . -.It Fl -listing-cont-lines Ns = Ns Ar nlines -Set the maximum number of listing lines generated by one input source -line to -.Ar nlines Ns No + Ns 1 . -.It Fl -statistics -Print statistics for the run at exit. -.It Fl -strip-local-absolute -Remove local absolute symbols from the generated output. -.It Fl -target-help -Display help for the target CPU. -.It Fl -version -Print a version identifier and exit. -.It Fl -warn -Print warnings. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr elfcopy 1 , -.Xr ld 1 , -.Xr nm 1 , -.Xr strings 1 , -.Xr strip 1 , -.Xr elf 5 diff --git a/contrib/elftoolchain/as/as.c b/contrib/elftoolchain/as/as.c deleted file mode 100644 index 73a09954..00000000 --- a/contrib/elftoolchain/as/as.c +++ /dev/null @@ -1,217 +0,0 @@ -/*- - * Copyright (c) 2012 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -#include - -ELFTC_VCSID("$Id$"); - -enum as_long_option_index { - AS_OPT_DEFSYM, - AS_OPT_FATAL_WARNINGS, - AS_OPT_LCL, - AS_OPT_LLW, - AS_OPT_LLW2, - AS_OPT_LRW, - AS_OPT_MD, - AS_OPT_STATISTICS, - AS_OPT_STRIP_LOCAL_ABSOLUTE, - AS_OPT_TARGET_HELP, - AS_OPT_VERSION, - AS_OPT_WARN, - AS_OPT__LAST -}; - -struct as_options { - unsigned int as_listing_flags; -}; - -#define AS_OPTION_SHORT_OPTIONS ":a:fghm:no:qswDI:JKLMRVWXZ" -const struct option as_option_long_options[] = { - { "defsym", required_argument, NULL, AS_OPT_DEFSYM }, - { "fatal-warnings", no_argument, NULL, AS_OPT_FATAL_WARNINGS }, - { "gen-debug", no_argument, NULL, 'g' }, - { "help", no_argument, NULL, 'h' }, - { "keep-locals", no_argument, NULL, 'L' }, - { "listing-lhs-width", required_argument, NULL, AS_OPT_LLW }, - { "listing-lhs-width2", required_argument, NULL, AS_OPT_LLW2 }, - { "listing-rhs-width", required_argument, NULL, AS_OPT_LRW }, - { "listing-cont-lines", required_argument, NULL, AS_OPT_LCL }, - { "mri", no_argument, NULL, 'M' }, - { "no-warn", no_argument, NULL, 'W' }, - { "statistics", no_argument, NULL, AS_OPT_STATISTICS }, - { "strip-local-absolute", no_argument, NULL, - AS_OPT_STRIP_LOCAL_ABSOLUTE }, - { "target-help", no_argument, NULL, AS_OPT_TARGET_HELP }, - { "version", no_argument, NULL, AS_OPT_VERSION }, - { "warn", no_argument, NULL, AS_OPT_WARN }, - { "MD", required_argument, NULL, AS_OPT_MD }, - { NULL, 0, NULL, 0 } -}; - -#define AS_OPTION_LISTING_DEFAULT "hls" - -#define AS_OPTION_USAGE_MESSAGE "\ -Usage: %s [options] file...\n\ - Assemble an ELF object.\n\n\ - Options:\n\ - -D Print assembler debug messages.\n\ - -I DIR Add directory to the search list.\n\ - -J Suppress warnings about signed overflows.\n\ - -K Warn about alterations to difference tables.\n\ - -L | --keep-locals Keep local symbols.\n\ - -R Merge the data and text sections.\n\ - -V Display the assembler version number.\n\ - -W | --no-warn Suppress warnings.\n\ - -Z Generate the object even if there are errors.\n\ - -a[listing-options...] Control assembler listings.\n\ - -g | --gen-debug Generate debugging information.\n\ - -h | --help Show a help message.\n\ - -march=CPU[,+EXT...] Generate code for cpu CPU and extensions EXT.\n\ - -mtune=CPU Optimize for cpu CPU.\n\ - -n Do not optimize code alignment.\n\ - -o OBJ Write the assembled object to file OBJ.\n\ - -q Suppress some warnings.\n\ - --MD FILE Write dependency information to FILE.\n\ - --defsym SYMBOL=VALUE Define symbol SYMBOL with value VALUE.\n\ - --fatal-warnings Treat warnings as fatal errors.\n\ - --listing-lhs-width=NUM Set width of the output data column.\n\ - --listing-lhs-width2=NUM Set the width of continuation lines.\n\ - --listing-rhs-width=NUM Set the max width of source lines.\n\ - --listing-cont-lines=NUM Set the maximum number of continuation lines.\n\ - --statistics Print statistics at exit.\n\ - --strip-local-absolute Strip local absolute symbols.\n\ - --target-help Show target-specific help messages.\n\ - --version Print a version identifier and exit.\n\ - --warn Print warnings.\n\ - [target options] Target specific options.\n\n\ - Options '-f', '-s', '-w', '-M', '-X' and '--mri' are accepted for\n\ - compatibility with other assemblers, but are ignored.\n" - -void -as_option_usage(int iserror, const char *format, ...) -{ - va_list args; - - if (format) { - va_start(args, format); - vwarnx(format, args); - va_end(args); - } - - (void) fprintf(iserror ? stderr : stdout, - AS_OPTION_USAGE_MESSAGE, ELFTC_GETPROGNAME()); - - exit(iserror != 0); -} - -static void -as_option_listing(char *flags) -{ - (void) flags; -} - -int -main(int argc, char **argv) -{ - int option, option_index; - - opterr = 0; /* Suppress error messages from getopt(). */ - - for (option_index = -1; - (option = getopt_long(argc, argv, AS_OPTION_SHORT_OPTIONS, - as_option_long_options, &option_index)) >= 0; - option_index = -1) - { - switch (option) { - - case AS_OPT_VERSION: - /* - * Print a version identifier and exit. - */ - (void) printf("%s (%s)\n", - ELFTC_GETPROGNAME(), elftc_version()); - exit(0); - break; - - case 'h': /* Display a help message. */ - as_option_usage(0, NULL); - break; - - case 'f': case 's': case 'w': case 'M': case 'X': - /* - * These options are accepted for compatibility - * reasons, but are ignored. - */ - break; - - case ':': - - /* - * A missing option argument: if the user - * supplied a bare '-a', supply a default set - * of listing control flags. - */ - if (optopt == 'a') - as_option_listing(AS_OPTION_LISTING_DEFAULT); - else - errx(1, "option \"-%c\" expects an " - "argument.", optopt); - break; - - case '?': /* An unknown option. */ - if (optopt) - as_option_usage(1, - "ERROR: unrecognized option '-%c'.", - optopt); - else - as_option_usage(1, - "ERROR: Unrecognized option \"--%s\".", - argv[optind-1]); - break; - - default: - if (option_index >= 0) - errx(1, - "ERROR: option \"--%s\" is unimplemented.", - as_option_long_options[option_index].name); - else - errx(1, - "ERROR: option '-%c' is unimplemented.", - option); - } - } - - exit(0); -} diff --git a/contrib/elftoolchain/brandelf/Makefile b/contrib/elftoolchain/brandelf/Makefile deleted file mode 100644 index 2bf5ea49..00000000 --- a/contrib/elftoolchain/brandelf/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= brandelf -WARNS?= 6 -LDADD= -lelftc -lelf - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/brandelf/brandelf.1 b/contrib/elftoolchain/brandelf/brandelf.1 deleted file mode 100644 index bbc2c45f..00000000 --- a/contrib/elftoolchain/brandelf/brandelf.1 +++ /dev/null @@ -1,147 +0,0 @@ -.\" Copyright 1997 John-Mark Gurney. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' -.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD: src/usr.bin/brandelf/brandelf.1,v 1.17 2007/03/09 14:36:18 ru Exp $ -.\" $Id$ -.\" -.Dd October 27, 2014 -.Dt BRANDELF 1 -.Os -.Sh NAME -.Nm brandelf -.Nd mark an ELF binary for a specific ABI -.Sh SYNOPSIS -.Nm -.Op Fl V | Fl -version -.Op Fl f Ar ELF_ABI_number -.Op Fl h | Fl -help -.Op Fl l -.Op Fl t Ar brand -.Op Fl v -.Ar -.Sh DESCRIPTION -The -.Nm -utility marks an ELF binary to be run under a certain ABI. -.Pp -The options are as follows: -.Bl -tag -width indent -.It Fl f Ar ELF_ABI_number -Forces branding with the supplied ELF ABI number. -Incompatible with the -.Fl t -option. -These values are assigned by SCO/USL. -.It Fl h | Fl -help -Print a usage message and exit. -.It Fl l -Writes the list of all known ELF types to standard output. -.It Fl t Ar brand -Brands the given ELF binaries to be of the ABI specified by argument -.Ar brand . -Supported ABIs include -.Dq Li 86Open , -.Dq Li AIX , -.Dq Li ARM , -.Dq Li AROS , -.Dq Li FreeBSD , -.Dq Li GNU , -.Dq Li HP/UX , -.Dq Li Hurd , -.Dq Li IRIX , -.Dq Li Linux -(an alias for -.Dq Li GNU ) , -.Dq Li Modesto , -.Dq Li NSK , -.Dq Li NetBSD , -.Dq Li None , -.Dq Li OpenBSD , -.Dq Li OpenVMS , -.Dq Li Standalone , -.Dq Li SVR4 -(an alias for -.Dq Li None ) , -.Dq Li Solaris -and -.Dq Li Tru64 . -.It Fl v -This option is accepted for compatibility with other versions of -.Nm , -but is otherwise ignored. -.It Fl V | Fl -version -Print a version identifier and exit. -.El -.Pp -If the options -.Fl f Ar ELF_ABI_number -or -.Fl t Ar brand -were specified, -.Nm -will brand the files named by command-line arguments -.Ar -to be of type -.Ar ELF_ABI_number -or -.Ar brand -respectively. -.Pp -If neither of the -.Fl f -or -.Fl t -options were specified, -.Nm -will display the current branding for the files named by the arguments -.Ar . -.Sh EXIT STATUS -Exit status is 0 on success, and 1 if the command -fails if a file does not exist, is too short, fails to brand properly, -or the brand requested is not one of the known types and the -.Fl f -option is not set. -.Sh EXAMPLES -The following is an example of a typical usage -of the -.Nm -command: -.Bd -literal -offset indent -brandelf file -brandelf -t GNU file -.Ed -.Sh SEE ALSO -.Rs -.%A The Santa Cruz Operation, Inc. -.%T System V Application Binary Interface -.%D April 29, 1998 (DRAFT) -.%O http://www.sco.com/developer/devspecs/ -.Re -.Sh HISTORY -The -.Nm -manual page first appeared in -.Fx 2.2 . -.Sh AUTHORS -This manual page was written by -.An John-Mark Gurney Aq Mt jmg@FreeBSD.org . diff --git a/contrib/elftoolchain/brandelf/brandelf.c b/contrib/elftoolchain/brandelf/brandelf.c deleted file mode 100644 index 5709fc05..00000000 --- a/contrib/elftoolchain/brandelf/brandelf.c +++ /dev/null @@ -1,312 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * Copyright (c) 2000, 2001 David O'Brien - * Copyright (c) 1996 Søren Schmidt - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -static int elftype(const char *); -static const char *iselftype(int); -static void printelftypes(void); -static void printversion(void); -static void usage(void); - -struct ELFtypes { - const char *str; - int value; -}; -/* XXX - any more types? */ -static struct ELFtypes elftypes[] = { - { "86Open", ELFOSABI_86OPEN }, - { "AIX", ELFOSABI_AIX }, - { "ARM", ELFOSABI_ARM }, - { "AROS", ELFOSABI_AROS }, - { "CloudABI", ELFOSABI_CLOUDABI }, - { "FreeBSD", ELFOSABI_FREEBSD }, - { "GNU", ELFOSABI_GNU }, - { "HP/UX", ELFOSABI_HPUX}, - { "Hurd", ELFOSABI_HURD }, - { "IRIX", ELFOSABI_IRIX }, - { "Linux", ELFOSABI_GNU }, - { "Modesto", ELFOSABI_MODESTO }, - { "NSK", ELFOSABI_NSK }, - { "NetBSD", ELFOSABI_NETBSD}, - { "None", ELFOSABI_NONE}, - { "OpenBSD", ELFOSABI_OPENBSD }, - { "OpenVMS", ELFOSABI_OPENVMS }, - { "Standalone", ELFOSABI_STANDALONE }, - { "SVR4", ELFOSABI_NONE }, - { "Solaris", ELFOSABI_SOLARIS }, - { "Tru64", ELFOSABI_TRU64 } -}; - -static struct option brandelf_longopts[] = { - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; - -int -main(int argc, char **argv) -{ - GElf_Ehdr ehdr; - Elf *elf; - Elf_Kind kind; - int type = ELFOSABI_NONE; - int retval = 0; - int ch, change = 0, force = 0, listed = 0; - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "elf_version error"); - - while ((ch = getopt_long(argc, argv, "Vf:hlt:v", brandelf_longopts, - NULL)) != -1) - switch (ch) { - case 'f': - if (change) - errx(EXIT_FAILURE, "ERROR: the -f option is " - "incompatible with the -t option."); - force = 1; - type = atoi(optarg); - if (errno == ERANGE || type < 0 || type > 255) { - warnx("ERROR: invalid argument to option " - "-f: %s", optarg); - usage(); - } - break; - case 'h': - usage(); - break; - case 'l': - printelftypes(); - listed = 1; - break; - case 'v': - /* This flag is ignored. */ - break; - case 't': - if (force) - errx(EXIT_FAILURE, "the -t option is " - "incompatible with the -f option."); - if ((type = elftype(optarg)) == -1) { - warnx("ERROR: invalid ELF type '%s'", optarg); - usage(); - } - - change = 1; - break; - case 'V': - printversion(); - break; - default: - usage(); - } - argc -= optind; - argv += optind; - if (!argc) { - if (listed) - exit(0); - else { - warnx("no file(s) specified"); - usage(); - } - } - - while (argc) { - int fd; - - elf = NULL; - - if ((fd = open(argv[0], (change || force) ? O_RDWR : - O_RDONLY, 0)) < 0) { - warn("error opening file %s", argv[0]); - retval = 1; - goto fail; - } - - if ((elf = elf_begin(fd, (change || force) ? ELF_C_RDWR : - ELF_C_READ, NULL)) == NULL) { - warnx("elf_begin failed: %s", elf_errmsg(-1)); - retval = 1; - goto fail; - } - - if ((kind = elf_kind(elf)) != ELF_K_ELF) { - if (kind == ELF_K_AR) - warnx("file '%s' is an archive.", argv[0]); - else - warnx("file '%s' is not an ELF file.", - argv[0]); - retval = 1; - goto fail; - } - - if (gelf_getehdr(elf, &ehdr) == NULL) { - warnx("gelf_getehdr: %s", elf_errmsg(-1)); - retval = 1; - goto fail; - } - - if (!change && !force) { - fprintf(stdout, - "File '%s' is of brand '%s' (%u).\n", - argv[0], iselftype(ehdr.e_ident[EI_OSABI]), - ehdr.e_ident[EI_OSABI]); - if (!iselftype(type)) { - warnx("ELF ABI Brand '%u' is unknown", - type); - printelftypes(); - } - } else { - - /* - * Keep the existing layout of the ELF object. - */ - if (elf_flagelf(elf, ELF_C_SET, ELF_F_LAYOUT) == 0) { - warnx("elf_flagelf failed: %s", - elf_errmsg(-1)); - retval = 1; - goto fail; - } - - /* - * Update the ABI type. - */ - ehdr.e_ident[EI_OSABI] = (unsigned char) type; - if (gelf_update_ehdr(elf, &ehdr) == 0) { - warnx("gelf_update_ehdr error: %s", - elf_errmsg(-1)); - retval = 1; - goto fail; - } - - /* - * Write back changes. - */ - if (elf_update(elf, ELF_C_WRITE) == -1) { - warnx("elf_update error: %s", elf_errmsg(-1)); - retval = 1; - goto fail; - } - } -fail: - - if (elf) - elf_end(elf); - - if (fd >= 0 && close(fd) == -1) { - warnx("%s: close error", argv[0]); - retval = 1; - } - - argc--; - argv++; - } - - return (retval); -} - -#define USAGE_MESSAGE "\ -Usage: %s [options] file...\n\ - Set or display the ABI field for an ELF object.\n\n\ - Supported options are:\n\ - -f NUM Set the ELF ABI to the number 'NUM'.\n\ - -h | --help Print a usage message and exit.\n\ - -l List known ELF ABI names.\n\ - -t ABI Set the ELF ABI to the value named by \"ABI\".\n\ - -V | --version Print a version identifier and exit.\n" - -static void -usage(void) -{ - (void) fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(1); -} - -static void -printversion(void) -{ - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(0); -} - -static const char * -iselftype(int etype) -{ - size_t elfwalk; - - for (elfwalk = 0; - elfwalk < sizeof(elftypes)/sizeof(elftypes[0]); - elfwalk++) - if (etype == elftypes[elfwalk].value) - return (elftypes[elfwalk].str); - return (0); -} - -static int -elftype(const char *elfstrtype) -{ - size_t elfwalk; - - for (elfwalk = 0; - elfwalk < sizeof(elftypes)/sizeof(elftypes[0]); - elfwalk++) - if (strcasecmp(elfstrtype, elftypes[elfwalk].str) == 0) - return (elftypes[elfwalk].value); - return (-1); -} - -static void -printelftypes(void) -{ - size_t elfwalk; - - (void) printf("Known ELF types are: "); - for (elfwalk = 0; - elfwalk < sizeof(elftypes)/sizeof(elftypes[0]); - elfwalk++) - (void) printf("%s(%u) ", elftypes[elfwalk].str, - elftypes[elfwalk].value); - (void) printf("\n"); -} diff --git a/contrib/elftoolchain/common/Makefile b/contrib/elftoolchain/common/Makefile deleted file mode 100644 index c813690f..00000000 --- a/contrib/elftoolchain/common/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id$ - -TOP= .. - -INCS= elfdefinitions.h -INCSDIR= /usr/include - -.PHONY: all clean clobber depend obj - -all depend: - -clean clobber: - rm -f ${CLEANFILES} - -cleandepend: - rm -f ${.OBJDIR}/.depend - -.include "${TOP}/mk/elftoolchain.inc.mk" diff --git a/contrib/elftoolchain/common/_elftc.h b/contrib/elftoolchain/common/_elftc.h deleted file mode 100644 index 5be8145b..00000000 --- a/contrib/elftoolchain/common/_elftc.h +++ /dev/null @@ -1,484 +0,0 @@ -/*- - * Copyright (c) 2009 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/** - ** Miscellaneous definitions needed by multiple components. - **/ - -#ifndef _ELFTC_H -#define _ELFTC_H - -#ifndef NULL -#define NULL ((void *) 0) -#endif - -#ifndef offsetof -#define offsetof(T, M) ((int) &((T*) 0) -> M) -#endif - -/* --QUEUE-MACROS-- [[ */ - -/* - * Supply macros missing from - */ - -/* - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef LIST_FOREACH_SAFE -#define LIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = LIST_FIRST((head)); \ - (var) && ((tvar) = LIST_NEXT((var), field), 1); \ - (var) = (tvar)) -#endif - -#ifndef SLIST_FOREACH_SAFE -#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = SLIST_FIRST((head)); \ - (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ - (var) = (tvar)) -#endif - -#ifndef STAILQ_CONCAT -#define STAILQ_CONCAT(head1, head2) do { \ - if (!STAILQ_EMPTY((head2))) { \ - *(head1)->stqh_last = (head2)->stqh_first; \ - (head1)->stqh_last = (head2)->stqh_last; \ - STAILQ_INIT((head2)); \ - } \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef STAILQ_EMPTY -#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) -#endif - -#ifndef STAILQ_ENTRY -#define STAILQ_ENTRY(type) \ -struct { \ - struct type *stqe_next; /* next element */ \ -} -#endif - -#ifndef STAILQ_FIRST -#define STAILQ_FIRST(head) ((head)->stqh_first) -#endif - -#ifndef STAILQ_HEAD -#define STAILQ_HEAD(name, type) \ -struct name { \ - struct type *stqh_first; /* first element */ \ - struct type **stqh_last; /* addr of last next element */ \ -} -#endif - -#ifndef STAILQ_HEAD_INITIALIZER -#define STAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).stqh_first } -#endif - -#ifndef STAILQ_FOREACH -#define STAILQ_FOREACH(var, head, field) \ - for ((var) = ((head)->stqh_first); \ - (var); \ - (var) = ((var)->field.stqe_next)) -#endif - -#ifndef STAILQ_FOREACH_SAFE -#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = STAILQ_FIRST((head)); \ - (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) -#endif - -#ifndef STAILQ_INIT -#define STAILQ_INIT(head) do { \ - (head)->stqh_first = NULL; \ - (head)->stqh_last = &(head)->stqh_first; \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef STAILQ_INSERT_HEAD -#define STAILQ_INSERT_HEAD(head, elm, field) do { \ - if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \ - (head)->stqh_last = &(elm)->field.stqe_next; \ - (head)->stqh_first = (elm); \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef STAILQ_INSERT_TAIL -#define STAILQ_INSERT_TAIL(head, elm, field) do { \ - (elm)->field.stqe_next = NULL; \ - *(head)->stqh_last = (elm); \ - (head)->stqh_last = &(elm)->field.stqe_next; \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef STAILQ_INSERT_AFTER -#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ - if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ - (head)->stqh_last = &(elm)->field.stqe_next; \ - (listelm)->field.stqe_next = (elm); \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef STAILQ_LAST -#define STAILQ_LAST(head, type, field) \ - (STAILQ_EMPTY((head)) ? \ - NULL : ((struct type *)(void *) \ - ((char *)((head)->stqh_last) - offsetof(struct type, field)))) -#endif - -#ifndef STAILQ_NEXT -#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) -#endif - -#ifndef STAILQ_REMOVE -#define STAILQ_REMOVE(head, elm, type, field) do { \ - if ((head)->stqh_first == (elm)) { \ - STAILQ_REMOVE_HEAD((head), field); \ - } else { \ - struct type *curelm = (head)->stqh_first; \ - while (curelm->field.stqe_next != (elm)) \ - curelm = curelm->field.stqe_next; \ - if ((curelm->field.stqe_next = \ - curelm->field.stqe_next->field.stqe_next) == NULL) \ - (head)->stqh_last = &(curelm)->field.stqe_next; \ - } \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef STAILQ_REMOVE_HEAD -#define STAILQ_REMOVE_HEAD(head, field) do { \ - if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == \ - NULL) \ - (head)->stqh_last = &(head)->stqh_first; \ -} while (/*CONSTCOND*/0) -#endif - -/* - * The STAILQ_SORT macro is adapted from Simon Tatham's O(n*log(n)) - * mergesort algorithm. - */ -#ifndef STAILQ_SORT -#define STAILQ_SORT(head, type, field, cmp) do { \ - STAILQ_HEAD(, type) _la, _lb; \ - struct type *_p, *_q, *_e; \ - int _i, _sz, _nmerges, _psz, _qsz; \ - \ - _sz = 1; \ - do { \ - _nmerges = 0; \ - STAILQ_INIT(&_lb); \ - while (!STAILQ_EMPTY((head))) { \ - _nmerges++; \ - STAILQ_INIT(&_la); \ - _psz = 0; \ - for (_i = 0; _i < _sz && !STAILQ_EMPTY((head)); \ - _i++) { \ - _e = STAILQ_FIRST((head)); \ - if (_e == NULL) \ - break; \ - _psz++; \ - STAILQ_REMOVE_HEAD((head), field); \ - STAILQ_INSERT_TAIL(&_la, _e, field); \ - } \ - _p = STAILQ_FIRST(&_la); \ - _qsz = _sz; \ - _q = STAILQ_FIRST((head)); \ - while (_psz > 0 || (_qsz > 0 && _q != NULL)) { \ - if (_psz == 0) { \ - _e = _q; \ - _q = STAILQ_NEXT(_q, field); \ - STAILQ_REMOVE_HEAD((head), \ - field); \ - _qsz--; \ - } else if (_qsz == 0 || _q == NULL) { \ - _e = _p; \ - _p = STAILQ_NEXT(_p, field); \ - STAILQ_REMOVE_HEAD(&_la, field);\ - _psz--; \ - } else if (cmp(_p, _q) <= 0) { \ - _e = _p; \ - _p = STAILQ_NEXT(_p, field); \ - STAILQ_REMOVE_HEAD(&_la, field);\ - _psz--; \ - } else { \ - _e = _q; \ - _q = STAILQ_NEXT(_q, field); \ - STAILQ_REMOVE_HEAD((head), \ - field); \ - _qsz--; \ - } \ - STAILQ_INSERT_TAIL(&_lb, _e, field); \ - } \ - } \ - (head)->stqh_first = _lb.stqh_first; \ - (head)->stqh_last = _lb.stqh_last; \ - _sz *= 2; \ - } while (_nmerges > 1); \ -} while (/*CONSTCOND*/0) -#endif - -#ifndef TAILQ_FOREACH_SAFE -#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = TAILQ_FIRST((head)); \ - (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ - (var) = (tvar)) -#endif - -/* ]] --QUEUE-MACROS-- */ - -/* - * VCS Ids. - */ - -#ifndef ELFTC_VCSID - -#if defined(__DragonFly__) -#define ELFTC_VCSID(ID) __RCSID(ID) -#endif - -#if defined(__FreeBSD__) -#define ELFTC_VCSID(ID) __FBSDID(ID) -#endif - -#if defined(__APPLE__) || defined(__GLIBC__) || defined(__GNU__) || \ - defined(__linux__) -#if defined(__GNUC__) -#define ELFTC_VCSID(ID) __asm__(".ident\t\"" ID "\"") -#else -#define ELFTC_VCSID(ID) /**/ -#endif -#endif - -#if defined(__minix) -#if defined(__GNUC__) -#define ELFTC_VCSID(ID) __asm__(".ident\t\"" ID "\"") -#else -#define ELFTC_VCSID(ID) /**/ -#endif /* __GNU__ */ -#endif - -#if defined(__NetBSD__) -#define ELFTC_VCSID(ID) __RCSID(ID) -#endif - -#if defined(__OpenBSD__) -#if defined(__GNUC__) -#define ELFTC_VCSID(ID) __asm__(".ident\t\"" ID "\"") -#else -#define ELFTC_VCSID(ID) /**/ -#endif /* __GNUC__ */ -#endif - -#endif /* ELFTC_VCSID */ - -/* - * Provide an equivalent for getprogname(3). - */ - -#ifndef ELFTC_GETPROGNAME - -#if defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__) || \ - defined(__minix) || defined(__NetBSD__) - -#include - -#define ELFTC_GETPROGNAME() getprogname() - -#endif /* __DragonFly__ || __FreeBSD__ || __minix || __NetBSD__ */ - - -#if defined(__GLIBC__) || defined(__linux__) -#ifndef _GNU_SOURCE -/* - * GLIBC based systems have a global 'char *' pointer referencing - * the executable's name. - */ -extern const char *program_invocation_short_name; -#endif /* !_GNU_SOURCE */ - -#define ELFTC_GETPROGNAME() program_invocation_short_name - -#endif /* __GLIBC__ || __linux__ */ - - -#if defined(__OpenBSD__) - -extern const char *__progname; - -#define ELFTC_GETPROGNAME() __progname - -#endif /* __OpenBSD__ */ - -#endif /* ELFTC_GETPROGNAME */ - - -/** - ** Per-OS configuration. - **/ - -#if defined(__APPLE__) - -#include -#define htobe32(x) OSSwapHostToBigInt32(x) -#define roundup2 roundup - -#define ELFTC_BYTE_ORDER _BYTE_ORDER -#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN -#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN - -#define ELFTC_HAVE_MMAP 1 -#define ELFTC_HAVE_STRMODE 1 - -#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 -#endif /* __APPLE__ */ - - -#if defined(__DragonFly__) - -#include -#include - -#define ELFTC_BYTE_ORDER _BYTE_ORDER -#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN -#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN - -#define ELFTC_HAVE_MMAP 1 - -#endif - -#if defined(__GLIBC__) || defined(__linux__) - -#include - -#define ELFTC_BYTE_ORDER __BYTE_ORDER -#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN __LITTLE_ENDIAN -#define ELFTC_BYTE_ORDER_BIG_ENDIAN __BIG_ENDIAN - -#define ELFTC_HAVE_MMAP 1 - -/* - * Debian GNU/Linux and Debian GNU/kFreeBSD do not have strmode(3). - */ -#define ELFTC_HAVE_STRMODE 0 - -/* Whether we need to supply {be,le}32dec. */ -#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 - -#define roundup2 roundup - -#endif /* __GLIBC__ || __linux__ */ - - -#if defined(__FreeBSD__) - -#include -#include - -#define ELFTC_BYTE_ORDER _BYTE_ORDER -#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN -#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN - -#define ELFTC_HAVE_MMAP 1 -#define ELFTC_HAVE_STRMODE 1 -#if __FreeBSD_version <= 900000 -#define ELFTC_BROKEN_YY_NO_INPUT 1 -#endif -#endif /* __FreeBSD__ */ - - -#if defined(__minix) -#define ELFTC_HAVE_MMAP 0 -#endif /* __minix */ - - -#if defined(__NetBSD__) - -#include -#include - -#define ELFTC_BYTE_ORDER _BYTE_ORDER -#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN -#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN - -#define ELFTC_HAVE_MMAP 1 -#define ELFTC_HAVE_STRMODE 1 -#if __NetBSD_Version__ <= 599002100 -/* from src/doc/CHANGES: flex(1): Import flex-2.5.35 [christos 20091025] */ -/* and 5.99.21 was from Wed Oct 21 21:28:36 2009 UTC */ -# define ELFTC_BROKEN_YY_NO_INPUT 1 -#endif -#endif /* __NetBSD __ */ - - -#if defined(__OpenBSD__) - -#include -#include - -#define ELFTC_BYTE_ORDER _BYTE_ORDER -#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN -#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN - -#define ELFTC_HAVE_MMAP 1 -#define ELFTC_HAVE_STRMODE 1 - -#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 -#define roundup2 roundup - -#endif /* __OpenBSD__ */ - -#endif /* _ELFTC_H */ diff --git a/contrib/elftoolchain/common/elfdefinitions.h b/contrib/elftoolchain/common/elfdefinitions.h deleted file mode 100644 index d1d74545..00000000 --- a/contrib/elftoolchain/common/elfdefinitions.h +++ /dev/null @@ -1,2964 +0,0 @@ -/*- - * Copyright (c) 2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * These definitions are based on: - * - The public specification of the ELF format as defined in the - * October 2009 draft of System V ABI. - * See: http://www.sco.com/developers/gabi/latest/ch4.intro.html - * - The May 1998 (version 1.5) draft of "The ELF-64 object format". - * - Processor-specific ELF ABI definitions for sparc, i386, amd64, mips, - * ia64, powerpc, and RISC-V processors. - * - The "Linkers and Libraries Guide", from Sun Microsystems. - */ - -#ifndef _ELFDEFINITIONS_H_ -#define _ELFDEFINITIONS_H_ - -#include - -/* - * Types of capabilities. - */ - -#define _ELF_DEFINE_CAPABILITIES() \ -_ELF_DEFINE_CA(CA_SUNW_NULL, 0, "ignored") \ -_ELF_DEFINE_CA(CA_SUNW_HW_1, 1, "hardware capability") \ -_ELF_DEFINE_CA(CA_SUNW_SW_1, 2, "software capability") - -#undef _ELF_DEFINE_CA -#define _ELF_DEFINE_CA(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_CAPABILITIES() - CA__LAST__ -}; - -/* - * Flags used with dynamic linking entries. - */ - -#define _ELF_DEFINE_DYN_FLAGS() \ -_ELF_DEFINE_DF(DF_ORIGIN, 0x1, \ - "object being loaded may refer to $ORIGIN") \ -_ELF_DEFINE_DF(DF_SYMBOLIC, 0x2, \ - "search library for references before executable") \ -_ELF_DEFINE_DF(DF_TEXTREL, 0x4, \ - "relocation entries may modify text segment") \ -_ELF_DEFINE_DF(DF_BIND_NOW, 0x8, \ - "process relocation entries at load time") \ -_ELF_DEFINE_DF(DF_STATIC_TLS, 0x10, \ - "uses static thread-local storage") \ -_ELF_DEFINE_DF(DF_1_BIND_NOW, 0x1, \ - "process relocation entries at load time") \ -_ELF_DEFINE_DF(DF_1_GLOBAL, 0x2, \ - "unused") \ -_ELF_DEFINE_DF(DF_1_GROUP, 0x4, \ - "object is a member of a group") \ -_ELF_DEFINE_DF(DF_1_NODELETE, 0x8, \ - "object cannot be deleted from a process") \ -_ELF_DEFINE_DF(DF_1_LOADFLTR, 0x10, \ - "immediate load filtees") \ -_ELF_DEFINE_DF(DF_1_INITFIRST, 0x20, \ - "initialize object first") \ -_ELF_DEFINE_DF(DF_1_NOOPEN, 0x40, \ - "disallow dlopen()") \ -_ELF_DEFINE_DF(DF_1_ORIGIN, 0x80, \ - "object being loaded may refer to $ORIGIN") \ -_ELF_DEFINE_DF(DF_1_DIRECT, 0x100, \ - "direct bindings enabled") \ -_ELF_DEFINE_DF(DF_1_INTERPOSE, 0x400, \ - "object is interposer") \ -_ELF_DEFINE_DF(DF_1_NODEFLIB, 0x800, \ - "ignore default library search path") \ -_ELF_DEFINE_DF(DF_1_NODUMP, 0x1000, \ - "disallow dldump()") \ -_ELF_DEFINE_DF(DF_1_CONFALT, 0x2000, \ - "object is a configuration alternative") \ -_ELF_DEFINE_DF(DF_1_ENDFILTEE, 0x4000, \ - "filtee terminates filter search") \ -_ELF_DEFINE_DF(DF_1_DISPRELDNE, 0x8000, \ - "displacement relocation done") \ -_ELF_DEFINE_DF(DF_1_DISPRELPND, 0x10000, \ - "displacement relocation pending") -#undef _ELF_DEFINE_DF -#define _ELF_DEFINE_DF(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_DYN_FLAGS() - DF__LAST__ -}; - - -/* - * Dynamic linking entry types. - */ - -#define _ELF_DEFINE_DYN_TYPES() \ -_ELF_DEFINE_DT(DT_NULL, 0, "end of array") \ -_ELF_DEFINE_DT(DT_NEEDED, 1, "names a needed library") \ -_ELF_DEFINE_DT(DT_PLTRELSZ, 2, \ - "size in bytes of associated relocation entries") \ -_ELF_DEFINE_DT(DT_PLTGOT, 3, \ - "address associated with the procedure linkage table") \ -_ELF_DEFINE_DT(DT_HASH, 4, \ - "address of the symbol hash table") \ -_ELF_DEFINE_DT(DT_STRTAB, 5, \ - "address of the string table") \ -_ELF_DEFINE_DT(DT_SYMTAB, 6, \ - "address of the symbol table") \ -_ELF_DEFINE_DT(DT_RELA, 7, \ - "address of the relocation table") \ -_ELF_DEFINE_DT(DT_RELASZ, 8, "size of the DT_RELA table") \ -_ELF_DEFINE_DT(DT_RELAENT, 9, "size of each DT_RELA entry") \ -_ELF_DEFINE_DT(DT_STRSZ, 10, "size of the string table") \ -_ELF_DEFINE_DT(DT_SYMENT, 11, \ - "size of a symbol table entry") \ -_ELF_DEFINE_DT(DT_INIT, 12, \ - "address of the initialization function") \ -_ELF_DEFINE_DT(DT_FINI, 13, \ - "address of the finalization function") \ -_ELF_DEFINE_DT(DT_SONAME, 14, "names the shared object") \ -_ELF_DEFINE_DT(DT_RPATH, 15, \ - "runtime library search path") \ -_ELF_DEFINE_DT(DT_SYMBOLIC, 16, \ - "alter symbol resolution algorithm") \ -_ELF_DEFINE_DT(DT_REL, 17, \ - "address of the DT_REL table") \ -_ELF_DEFINE_DT(DT_RELSZ, 18, "size of the DT_REL table") \ -_ELF_DEFINE_DT(DT_RELENT, 19, "size of each DT_REL entry") \ -_ELF_DEFINE_DT(DT_PLTREL, 20, \ - "type of relocation entry in the procedure linkage table") \ -_ELF_DEFINE_DT(DT_DEBUG, 21, "used for debugging") \ -_ELF_DEFINE_DT(DT_TEXTREL, 22, \ - "text segment may be written to during relocation") \ -_ELF_DEFINE_DT(DT_JMPREL, 23, \ - "address of relocation entries associated with the procedure linkage table") \ -_ELF_DEFINE_DT(DT_BIND_NOW, 24, \ - "bind symbols at loading time") \ -_ELF_DEFINE_DT(DT_INIT_ARRAY, 25, \ - "pointers to initialization functions") \ -_ELF_DEFINE_DT(DT_FINI_ARRAY, 26, \ - "pointers to termination functions") \ -_ELF_DEFINE_DT(DT_INIT_ARRAYSZ, 27, "size of the DT_INIT_ARRAY") \ -_ELF_DEFINE_DT(DT_FINI_ARRAYSZ, 28, "size of the DT_FINI_ARRAY") \ -_ELF_DEFINE_DT(DT_RUNPATH, 29, \ - "index of library search path string") \ -_ELF_DEFINE_DT(DT_FLAGS, 30, \ - "flags specific to the object being loaded") \ -_ELF_DEFINE_DT(DT_ENCODING, 32, "standard semantics") \ -_ELF_DEFINE_DT(DT_PREINIT_ARRAY, 32, \ - "pointers to pre-initialization functions") \ -_ELF_DEFINE_DT(DT_PREINIT_ARRAYSZ, 33, \ - "size of pre-initialization array") \ -_ELF_DEFINE_DT(DT_MAXPOSTAGS, 34, \ - "the number of positive tags") \ -_ELF_DEFINE_DT(DT_LOOS, 0x6000000DUL, \ - "start of OS-specific types") \ -_ELF_DEFINE_DT(DT_SUNW_AUXILIARY, 0x6000000DUL, \ - "offset of string naming auxiliary filtees") \ -_ELF_DEFINE_DT(DT_SUNW_RTLDINF, 0x6000000EUL, "rtld internal use") \ -_ELF_DEFINE_DT(DT_SUNW_FILTER, 0x6000000FUL, \ - "offset of string naming standard filtees") \ -_ELF_DEFINE_DT(DT_SUNW_CAP, 0x60000010UL, \ - "address of hardware capabilities section") \ -_ELF_DEFINE_DT(DT_SUNW_ASLR, 0x60000023UL, \ - "Address Space Layout Randomization flag") \ -_ELF_DEFINE_DT(DT_HIOS, 0x6FFFF000UL, \ - "end of OS-specific types") \ -_ELF_DEFINE_DT(DT_VALRNGLO, 0x6FFFFD00UL, \ - "start of range using the d_val field") \ -_ELF_DEFINE_DT(DT_GNU_PRELINKED, 0x6FFFFDF5UL, \ - "prelinking timestamp") \ -_ELF_DEFINE_DT(DT_GNU_CONFLICTSZ, 0x6FFFFDF6UL, \ - "size of conflict section") \ -_ELF_DEFINE_DT(DT_GNU_LIBLISTSZ, 0x6FFFFDF7UL, \ - "size of library list") \ -_ELF_DEFINE_DT(DT_CHECKSUM, 0x6FFFFDF8UL, \ - "checksum for the object") \ -_ELF_DEFINE_DT(DT_PLTPADSZ, 0x6FFFFDF9UL, \ - "size of PLT padding") \ -_ELF_DEFINE_DT(DT_MOVEENT, 0x6FFFFDFAUL, \ - "size of DT_MOVETAB entries") \ -_ELF_DEFINE_DT(DT_MOVESZ, 0x6FFFFDFBUL, \ - "total size of the MOVETAB table") \ -_ELF_DEFINE_DT(DT_FEATURE, 0x6FFFFDFCUL, "feature values") \ -_ELF_DEFINE_DT(DT_POSFLAG_1, 0x6FFFFDFDUL, \ - "dynamic position flags") \ -_ELF_DEFINE_DT(DT_SYMINSZ, 0x6FFFFDFEUL, \ - "size of the DT_SYMINFO table") \ -_ELF_DEFINE_DT(DT_SYMINENT, 0x6FFFFDFFUL, \ - "size of a DT_SYMINFO entry") \ -_ELF_DEFINE_DT(DT_VALRNGHI, 0x6FFFFDFFUL, \ - "end of range using the d_val field") \ -_ELF_DEFINE_DT(DT_ADDRRNGLO, 0x6FFFFE00UL, \ - "start of range using the d_ptr field") \ -_ELF_DEFINE_DT(DT_GNU_HASH, 0x6FFFFEF5UL, \ - "GNU style hash tables") \ -_ELF_DEFINE_DT(DT_TLSDESC_PLT, 0x6FFFFEF6UL, \ - "location of PLT entry for TLS descriptor resolver calls") \ -_ELF_DEFINE_DT(DT_TLSDESC_GOT, 0x6FFFFEF7UL, \ - "location of GOT entry used by TLS descriptor resolver PLT entry") \ -_ELF_DEFINE_DT(DT_GNU_CONFLICT, 0x6FFFFEF8UL, \ - "address of conflict section") \ -_ELF_DEFINE_DT(DT_GNU_LIBLIST, 0x6FFFFEF9UL, \ - "address of conflict section") \ -_ELF_DEFINE_DT(DT_CONFIG, 0x6FFFFEFAUL, \ - "configuration file") \ -_ELF_DEFINE_DT(DT_DEPAUDIT, 0x6FFFFEFBUL, \ - "string defining audit libraries") \ -_ELF_DEFINE_DT(DT_AUDIT, 0x6FFFFEFCUL, \ - "string defining audit libraries") \ -_ELF_DEFINE_DT(DT_PLTPAD, 0x6FFFFEFDUL, "PLT padding") \ -_ELF_DEFINE_DT(DT_MOVETAB, 0x6FFFFEFEUL, \ - "address of a move table") \ -_ELF_DEFINE_DT(DT_SYMINFO, 0x6FFFFEFFUL, \ - "address of the symbol information table") \ -_ELF_DEFINE_DT(DT_ADDRRNGHI, 0x6FFFFEFFUL, \ - "end of range using the d_ptr field") \ -_ELF_DEFINE_DT(DT_VERSYM, 0x6FFFFFF0UL, \ - "address of the version section") \ -_ELF_DEFINE_DT(DT_RELACOUNT, 0x6FFFFFF9UL, \ - "count of RELA relocations") \ -_ELF_DEFINE_DT(DT_RELCOUNT, 0x6FFFFFFAUL, \ - "count of REL relocations") \ -_ELF_DEFINE_DT(DT_FLAGS_1, 0x6FFFFFFBUL, "flag values") \ -_ELF_DEFINE_DT(DT_VERDEF, 0x6FFFFFFCUL, \ - "address of the version definition segment") \ -_ELF_DEFINE_DT(DT_VERDEFNUM, 0x6FFFFFFDUL, \ - "the number of version definition entries") \ -_ELF_DEFINE_DT(DT_VERNEED, 0x6FFFFFFEUL, \ - "address of section with needed versions") \ -_ELF_DEFINE_DT(DT_VERNEEDNUM, 0x6FFFFFFFUL, \ - "the number of version needed entries") \ -_ELF_DEFINE_DT(DT_LOPROC, 0x70000000UL, \ - "start of processor-specific types") \ -_ELF_DEFINE_DT(DT_ARM_SYMTABSZ, 0x70000001UL, \ - "number of entries in the dynamic symbol table") \ -_ELF_DEFINE_DT(DT_SPARC_REGISTER, 0x70000001UL, \ - "index of an STT_SPARC_REGISTER symbol") \ -_ELF_DEFINE_DT(DT_ARM_PREEMPTMAP, 0x70000002UL, \ - "address of the preemption map") \ -_ELF_DEFINE_DT(DT_MIPS_RLD_VERSION, 0x70000001UL, \ - "version ID for runtime linker interface") \ -_ELF_DEFINE_DT(DT_MIPS_TIME_STAMP, 0x70000002UL, \ - "timestamp") \ -_ELF_DEFINE_DT(DT_MIPS_ICHECKSUM, 0x70000003UL, \ - "checksum of all external strings and common sizes") \ -_ELF_DEFINE_DT(DT_MIPS_IVERSION, 0x70000004UL, \ - "string table index of a version string") \ -_ELF_DEFINE_DT(DT_MIPS_FLAGS, 0x70000005UL, \ - "MIPS-specific flags") \ -_ELF_DEFINE_DT(DT_MIPS_BASE_ADDRESS, 0x70000006UL, \ - "base address for the executable/DSO") \ -_ELF_DEFINE_DT(DT_MIPS_CONFLICT, 0x70000008UL, \ - "address of .conflict section") \ -_ELF_DEFINE_DT(DT_MIPS_LIBLIST, 0x70000009UL, \ - "address of .liblist section") \ -_ELF_DEFINE_DT(DT_MIPS_LOCAL_GOTNO, 0x7000000AUL, \ - "number of local GOT entries") \ -_ELF_DEFINE_DT(DT_MIPS_CONFLICTNO, 0x7000000BUL, \ - "number of entries in the .conflict section") \ -_ELF_DEFINE_DT(DT_MIPS_LIBLISTNO, 0x70000010UL, \ - "number of entries in the .liblist section") \ -_ELF_DEFINE_DT(DT_MIPS_SYMTABNO, 0x70000011UL, \ - "number of entries in the .dynsym section") \ -_ELF_DEFINE_DT(DT_MIPS_UNREFEXTNO, 0x70000012UL, \ - "index of first external dynamic symbol not ref'ed locally") \ -_ELF_DEFINE_DT(DT_MIPS_GOTSYM, 0x70000013UL, \ - "index of first dynamic symbol corresponds to a GOT entry") \ -_ELF_DEFINE_DT(DT_MIPS_HIPAGENO, 0x70000014UL, \ - "number of page table entries in GOT") \ -_ELF_DEFINE_DT(DT_MIPS_RLD_MAP, 0x70000016UL, \ - "address of runtime linker map") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_CLASS, 0x70000017UL, \ - "Delta C++ class definition") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_CLASS_NO, 0x70000018UL, \ - "number of entries in DT_MIPS_DELTA_CLASS") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_INSTANCE, 0x70000019UL, \ - "Delta C++ class instances") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_INSTANCE_NO, 0x7000001AUL, \ - "number of entries in DT_MIPS_DELTA_INSTANCE") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_RELOC, 0x7000001BUL, \ - "Delta relocations") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_RELOC_NO, 0x7000001CUL, \ - "number of entries in DT_MIPS_DELTA_RELOC") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_SYM, 0x7000001DUL, \ - "Delta symbols referred by Delta relocations") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_SYM_NO, 0x7000001EUL, \ - "number of entries in DT_MIPS_DELTA_SYM") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_CLASSSYM, 0x70000020UL, \ - "Delta symbols for class declarations") \ -_ELF_DEFINE_DT(DT_MIPS_DELTA_CLASSSYM_NO, 0x70000021UL, \ - "number of entries in DT_MIPS_DELTA_CLASSSYM") \ -_ELF_DEFINE_DT(DT_MIPS_CXX_FLAGS, 0x70000022UL, \ - "C++ flavor flags") \ -_ELF_DEFINE_DT(DT_MIPS_PIXIE_INIT, 0x70000023UL, \ - "address of an initialization routine created by pixie") \ -_ELF_DEFINE_DT(DT_MIPS_SYMBOL_LIB, 0x70000024UL, \ - "address of .MIPS.symlib section") \ -_ELF_DEFINE_DT(DT_MIPS_LOCALPAGE_GOTIDX, 0x70000025UL, \ - "GOT index of first page table entry for a segment") \ -_ELF_DEFINE_DT(DT_MIPS_LOCAL_GOTIDX, 0x70000026UL, \ - "GOT index of first page table entry for a local symbol") \ -_ELF_DEFINE_DT(DT_MIPS_HIDDEN_GOTIDX, 0x70000027UL, \ - "GOT index of first page table entry for a hidden symbol") \ -_ELF_DEFINE_DT(DT_MIPS_PROTECTED_GOTIDX, 0x70000028UL, \ - "GOT index of first page table entry for a protected symbol") \ -_ELF_DEFINE_DT(DT_MIPS_OPTIONS, 0x70000029UL, \ - "address of .MIPS.options section") \ -_ELF_DEFINE_DT(DT_MIPS_INTERFACE, 0x7000002AUL, \ - "address of .MIPS.interface section") \ -_ELF_DEFINE_DT(DT_MIPS_DYNSTR_ALIGN, 0x7000002BUL, "???") \ -_ELF_DEFINE_DT(DT_MIPS_INTERFACE_SIZE, 0x7000002CUL, \ - "size of .MIPS.interface section") \ -_ELF_DEFINE_DT(DT_MIPS_RLD_TEXT_RESOLVE_ADDR, 0x7000002DUL, \ - "address of _rld_text_resolve in GOT") \ -_ELF_DEFINE_DT(DT_MIPS_PERF_SUFFIX, 0x7000002EUL, \ - "default suffix of DSO to be appended by dlopen") \ -_ELF_DEFINE_DT(DT_MIPS_COMPACT_SIZE, 0x7000002FUL, \ - "size of a ucode compact relocation record (o32)") \ -_ELF_DEFINE_DT(DT_MIPS_GP_VALUE, 0x70000030UL, \ - "GP value of a specified GP relative range") \ -_ELF_DEFINE_DT(DT_MIPS_AUX_DYNAMIC, 0x70000031UL, \ - "address of an auxiliary dynamic table") \ -_ELF_DEFINE_DT(DT_MIPS_PLTGOT, 0x70000032UL, \ - "address of the PLTGOT") \ -_ELF_DEFINE_DT(DT_MIPS_RLD_OBJ_UPDATE, 0x70000033UL, \ - "object list update callback") \ -_ELF_DEFINE_DT(DT_MIPS_RWPLT, 0x70000034UL, \ - "address of a writable PLT") \ -_ELF_DEFINE_DT(DT_PPC_GOT, 0x70000000UL, \ - "value of _GLOBAL_OFFSET_TABLE_") \ -_ELF_DEFINE_DT(DT_PPC_TLSOPT, 0x70000001UL, \ - "TLS descriptor should be optimized") \ -_ELF_DEFINE_DT(DT_PPC64_GLINK, 0x70000000UL, \ - "address of .glink section") \ -_ELF_DEFINE_DT(DT_PPC64_OPD, 0x70000001UL, \ - "address of .opd section") \ -_ELF_DEFINE_DT(DT_PPC64_OPDSZ, 0x70000002UL, \ - "size of .opd section") \ -_ELF_DEFINE_DT(DT_PPC64_TLSOPT, 0x70000003UL, \ - "TLS descriptor should be optimized") \ -_ELF_DEFINE_DT(DT_AUXILIARY, 0x7FFFFFFDUL, \ - "offset of string naming auxiliary filtees") \ -_ELF_DEFINE_DT(DT_USED, 0x7FFFFFFEUL, "ignored") \ -_ELF_DEFINE_DT(DT_FILTER, 0x7FFFFFFFUL, \ - "index of string naming filtees") \ -_ELF_DEFINE_DT(DT_HIPROC, 0x7FFFFFFFUL, \ - "end of processor-specific types") - -#undef _ELF_DEFINE_DT -#define _ELF_DEFINE_DT(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_DYN_TYPES() - DT__LAST__ = DT_HIPROC -}; - -#define DT_DEPRECATED_SPARC_REGISTER DT_SPARC_REGISTER - -/* - * Flags used in the executable header (field: e_flags). - */ -#define _ELF_DEFINE_EHDR_FLAGS() \ -_ELF_DEFINE_EF(EF_ARM_RELEXEC, 0x00000001UL, \ - "dynamic segment describes only how to relocate segments") \ -_ELF_DEFINE_EF(EF_ARM_HASENTRY, 0x00000002UL, \ - "e_entry contains a program entry point") \ -_ELF_DEFINE_EF(EF_ARM_SYMSARESORTED, 0x00000004UL, \ - "subsection of symbol table is sorted by symbol value") \ -_ELF_DEFINE_EF(EF_ARM_DYNSYMSUSESEGIDX, 0x00000008UL, \ - "dynamic symbol st_shndx = containing segment index + 1") \ -_ELF_DEFINE_EF(EF_ARM_MAPSYMSFIRST, 0x00000010UL, \ - "mapping symbols precede other local symbols in symtab") \ -_ELF_DEFINE_EF(EF_ARM_BE8, 0x00800000UL, \ - "file contains BE-8 code") \ -_ELF_DEFINE_EF(EF_ARM_LE8, 0x00400000UL, \ - "file contains LE-8 code") \ -_ELF_DEFINE_EF(EF_ARM_EABIMASK, 0xFF000000UL, \ - "mask for ARM EABI version number (0 denotes GNU or unknown)") \ -_ELF_DEFINE_EF(EF_ARM_EABI_UNKNOWN, 0x00000000UL, \ - "Unknown or GNU ARM EABI version number") \ -_ELF_DEFINE_EF(EF_ARM_EABI_VER1, 0x01000000UL, \ - "ARM EABI version 1") \ -_ELF_DEFINE_EF(EF_ARM_EABI_VER2, 0x02000000UL, \ - "ARM EABI version 2") \ -_ELF_DEFINE_EF(EF_ARM_EABI_VER3, 0x03000000UL, \ - "ARM EABI version 3") \ -_ELF_DEFINE_EF(EF_ARM_EABI_VER4, 0x04000000UL, \ - "ARM EABI version 4") \ -_ELF_DEFINE_EF(EF_ARM_EABI_VER5, 0x05000000UL, \ - "ARM EABI version 5") \ -_ELF_DEFINE_EF(EF_ARM_INTERWORK, 0x00000004UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_APCS_26, 0x00000008UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_APCS_FLOAT, 0x00000010UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_PIC, 0x00000020UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_ALIGN8, 0x00000040UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_NEW_ABI, 0x00000080UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_OLD_ABI, 0x00000100UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_SOFT_FLOAT, 0x00000200UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_VFP_FLOAT, 0x00000400UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_ARM_MAVERICK_FLOAT, 0x00000800UL, \ - "GNU EABI extension") \ -_ELF_DEFINE_EF(EF_MIPS_NOREORDER, 0x00000001UL, \ - "at least one .noreorder directive appeared in the source") \ -_ELF_DEFINE_EF(EF_MIPS_PIC, 0x00000002UL, \ - "file contains position independent code") \ -_ELF_DEFINE_EF(EF_MIPS_CPIC, 0x00000004UL, \ - "file's code uses standard conventions for calling PIC") \ -_ELF_DEFINE_EF(EF_MIPS_UCODE, 0x00000010UL, \ - "file contains UCODE (obsolete)") \ -_ELF_DEFINE_EF(EF_MIPS_ABI2, 0x00000020UL, \ - "file follows MIPS III 32-bit ABI") \ -_ELF_DEFINE_EF(EF_MIPS_OPTIONS_FIRST, 0x00000080UL, \ - "ld(1) should process .MIPS.options section first") \ -_ELF_DEFINE_EF(EF_MIPS_ARCH_ASE, 0x0F000000UL, \ - "file uses application-specific architectural extensions") \ -_ELF_DEFINE_EF(EF_MIPS_ARCH_ASE_MDMX, 0x08000000UL, \ - "file uses MDMX multimedia extensions") \ -_ELF_DEFINE_EF(EF_MIPS_ARCH_ASE_M16, 0x04000000UL, \ - "file uses MIPS-16 ISA extensions") \ -_ELF_DEFINE_EF(EF_MIPS_ARCH, 0xF0000000UL, \ - "4-bit MIPS architecture field") \ -_ELF_DEFINE_EF(EF_PPC_EMB, 0x80000000UL, \ - "Embedded PowerPC flag") \ -_ELF_DEFINE_EF(EF_PPC_RELOCATABLE, 0x00010000UL, \ - "-mrelocatable flag") \ -_ELF_DEFINE_EF(EF_PPC_RELOCATABLE_LIB, 0x00008000UL, \ - "-mrelocatable-lib flag") \ -_ELF_DEFINE_EF(EF_RISCV_RVC, 0x00000001UL, \ - "Compressed instruction extension") \ -_ELF_DEFINE_EF(EF_RISCV_FLOAT_ABI_MASK, 0x00000006UL, \ - "Floating point ABI") \ -_ELF_DEFINE_EF(EF_RISCV_FLOAT_ABI_SOFT, 0x00000000UL, \ - "Software emulated floating point") \ -_ELF_DEFINE_EF(EF_RISCV_FLOAT_ABI_SINGLE, 0x00000002UL, \ - "Single precision floating point") \ -_ELF_DEFINE_EF(EF_RISCV_FLOAT_ABI_DOUBLE, 0x00000004UL, \ - "Double precision floating point") \ -_ELF_DEFINE_EF(EF_RISCV_FLOAT_ABI_QUAD, 0x00000006UL, \ - "Quad precision floating point") \ -_ELF_DEFINE_EF(EF_RISCV_RVE, 0x00000008UL, \ - "Compressed instruction ABI") \ -_ELF_DEFINE_EF(EF_RISCV_TSO, 0x00000010UL, \ - "RVTSO memory consistency model") \ -_ELF_DEFINE_EF(EF_SPARC_EXT_MASK, 0x00ffff00UL, \ - "Vendor Extension mask") \ -_ELF_DEFINE_EF(EF_SPARC_32PLUS, 0x00000100UL, \ - "Generic V8+ features") \ -_ELF_DEFINE_EF(EF_SPARC_SUN_US1, 0x00000200UL, \ - "Sun UltraSPARCTM 1 Extensions") \ -_ELF_DEFINE_EF(EF_SPARC_HAL_R1, 0x00000400UL, "HAL R1 Extensions") \ -_ELF_DEFINE_EF(EF_SPARC_SUN_US3, 0x00000800UL, \ - "Sun UltraSPARC 3 Extensions") \ -_ELF_DEFINE_EF(EF_SPARCV9_MM, 0x00000003UL, \ - "Mask for Memory Model") \ -_ELF_DEFINE_EF(EF_SPARCV9_TSO, 0x00000000UL, \ - "Total Store Ordering") \ -_ELF_DEFINE_EF(EF_SPARCV9_PSO, 0x00000001UL, \ - "Partial Store Ordering") \ -_ELF_DEFINE_EF(EF_SPARCV9_RMO, 0x00000002UL, \ - "Relaxed Memory Ordering") - -#undef _ELF_DEFINE_EF -#define _ELF_DEFINE_EF(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_EHDR_FLAGS() - EF__LAST__ -}; - -/* - * Offsets in the `ei_ident[]` field of an ELF executable header. - */ -#define _ELF_DEFINE_EI_OFFSETS() \ -_ELF_DEFINE_EI(EI_MAG0, 0, "magic number") \ -_ELF_DEFINE_EI(EI_MAG1, 1, "magic number") \ -_ELF_DEFINE_EI(EI_MAG2, 2, "magic number") \ -_ELF_DEFINE_EI(EI_MAG3, 3, "magic number") \ -_ELF_DEFINE_EI(EI_CLASS, 4, "file class") \ -_ELF_DEFINE_EI(EI_DATA, 5, "data encoding") \ -_ELF_DEFINE_EI(EI_VERSION, 6, "file version") \ -_ELF_DEFINE_EI(EI_OSABI, 7, "OS ABI kind") \ -_ELF_DEFINE_EI(EI_ABIVERSION, 8, "OS ABI version") \ -_ELF_DEFINE_EI(EI_PAD, 9, "padding start") \ -_ELF_DEFINE_EI(EI_NIDENT, 16, "total size") - -#undef _ELF_DEFINE_EI -#define _ELF_DEFINE_EI(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_EI_OFFSETS() - EI__LAST__ -}; - -/* - * The ELF class of an object. - */ -#define _ELF_DEFINE_ELFCLASS() \ -_ELF_DEFINE_EC(ELFCLASSNONE, 0, "Unknown ELF class") \ -_ELF_DEFINE_EC(ELFCLASS32, 1, "32 bit objects") \ -_ELF_DEFINE_EC(ELFCLASS64, 2, "64 bit objects") - -#undef _ELF_DEFINE_EC -#define _ELF_DEFINE_EC(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ELFCLASS() - EC__LAST__ -}; - -/* - * Endianness of data in an ELF object. - */ - -#define _ELF_DEFINE_ELF_DATA_ENDIANNESS() \ -_ELF_DEFINE_ED(ELFDATANONE, 0, "Unknown data endianness") \ -_ELF_DEFINE_ED(ELFDATA2LSB, 1, "little endian") \ -_ELF_DEFINE_ED(ELFDATA2MSB, 2, "big endian") - -#undef _ELF_DEFINE_ED -#define _ELF_DEFINE_ED(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ELF_DATA_ENDIANNESS() - ED__LAST__ -}; - -/* - * Values of the magic numbers used in identification array. - */ -#define _ELF_DEFINE_ELF_MAGIC() \ -_ELF_DEFINE_EMAG(ELFMAG0, 0x7FU) \ -_ELF_DEFINE_EMAG(ELFMAG1, 'E') \ -_ELF_DEFINE_EMAG(ELFMAG2, 'L') \ -_ELF_DEFINE_EMAG(ELFMAG3, 'F') - -#undef _ELF_DEFINE_EMAG -#define _ELF_DEFINE_EMAG(N, V) N = V , -enum { - _ELF_DEFINE_ELF_MAGIC() - ELFMAG__LAST__ -}; - -/* - * ELF OS ABI field. - */ -#define _ELF_DEFINE_ELF_OSABI() \ -_ELF_DEFINE_EABI(ELFOSABI_NONE, 0, \ - "No extensions or unspecified") \ -_ELF_DEFINE_EABI(ELFOSABI_SYSV, 0, "SYSV") \ -_ELF_DEFINE_EABI(ELFOSABI_HPUX, 1, "Hewlett-Packard HP-UX") \ -_ELF_DEFINE_EABI(ELFOSABI_NETBSD, 2, "NetBSD") \ -_ELF_DEFINE_EABI(ELFOSABI_GNU, 3, "GNU") \ -_ELF_DEFINE_EABI(ELFOSABI_HURD, 4, "GNU/HURD") \ -_ELF_DEFINE_EABI(ELFOSABI_86OPEN, 5, "86Open Common ABI") \ -_ELF_DEFINE_EABI(ELFOSABI_SOLARIS, 6, "Sun Solaris") \ -_ELF_DEFINE_EABI(ELFOSABI_AIX, 7, "AIX") \ -_ELF_DEFINE_EABI(ELFOSABI_IRIX, 8, "IRIX") \ -_ELF_DEFINE_EABI(ELFOSABI_FREEBSD, 9, "FreeBSD") \ -_ELF_DEFINE_EABI(ELFOSABI_TRU64, 10, "Compaq TRU64 UNIX") \ -_ELF_DEFINE_EABI(ELFOSABI_MODESTO, 11, "Novell Modesto") \ -_ELF_DEFINE_EABI(ELFOSABI_OPENBSD, 12, "Open BSD") \ -_ELF_DEFINE_EABI(ELFOSABI_OPENVMS, 13, "Open VMS") \ -_ELF_DEFINE_EABI(ELFOSABI_NSK, 14, \ - "Hewlett-Packard Non-Stop Kernel") \ -_ELF_DEFINE_EABI(ELFOSABI_AROS, 15, "Amiga Research OS") \ -_ELF_DEFINE_EABI(ELFOSABI_FENIXOS, 16, \ - "The FenixOS highly scalable multi-core OS") \ -_ELF_DEFINE_EABI(ELFOSABI_CLOUDABI, 17, "Nuxi CloudABI") \ -_ELF_DEFINE_EABI(ELFOSABI_OPENVOS, 18, \ - "Stratus Technologies OpenVOS") \ -_ELF_DEFINE_EABI(ELFOSABI_ARM_AEABI, 64, \ - "ARM specific symbol versioning extensions") \ -_ELF_DEFINE_EABI(ELFOSABI_ARM, 97, "ARM ABI") \ -_ELF_DEFINE_EABI(ELFOSABI_STANDALONE, 255, \ - "Standalone (embedded) application") - -#undef _ELF_DEFINE_EABI -#define _ELF_DEFINE_EABI(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ELF_OSABI() - ELFOSABI__LAST__ -}; - -#define ELFOSABI_LINUX ELFOSABI_GNU - -/* - * ELF Machine types: (EM_*). - */ -#define _ELF_DEFINE_ELF_MACHINES() \ -_ELF_DEFINE_EM(EM_NONE, 0, "No machine") \ -_ELF_DEFINE_EM(EM_M32, 1, "AT&T WE 32100") \ -_ELF_DEFINE_EM(EM_SPARC, 2, "SPARC") \ -_ELF_DEFINE_EM(EM_386, 3, "Intel 80386") \ -_ELF_DEFINE_EM(EM_68K, 4, "Motorola 68000") \ -_ELF_DEFINE_EM(EM_88K, 5, "Motorola 88000") \ -_ELF_DEFINE_EM(EM_IAMCU, 6, "Intel MCU") \ -_ELF_DEFINE_EM(EM_860, 7, "Intel 80860") \ -_ELF_DEFINE_EM(EM_MIPS, 8, "MIPS I Architecture") \ -_ELF_DEFINE_EM(EM_S370, 9, "IBM System/370 Processor") \ -_ELF_DEFINE_EM(EM_MIPS_RS3_LE, 10, "MIPS RS3000 Little-endian") \ -_ELF_DEFINE_EM(EM_PARISC, 15, "Hewlett-Packard PA-RISC") \ -_ELF_DEFINE_EM(EM_VPP500, 17, "Fujitsu VPP500") \ -_ELF_DEFINE_EM(EM_SPARC32PLUS, 18, \ - "Enhanced instruction set SPARC") \ -_ELF_DEFINE_EM(EM_960, 19, "Intel 80960") \ -_ELF_DEFINE_EM(EM_PPC, 20, "PowerPC") \ -_ELF_DEFINE_EM(EM_PPC64, 21, "64-bit PowerPC") \ -_ELF_DEFINE_EM(EM_S390, 22, "IBM System/390 Processor") \ -_ELF_DEFINE_EM(EM_SPU, 23, "IBM SPU/SPC") \ -_ELF_DEFINE_EM(EM_V800, 36, "NEC V800") \ -_ELF_DEFINE_EM(EM_FR20, 37, "Fujitsu FR20") \ -_ELF_DEFINE_EM(EM_RH32, 38, "TRW RH-32") \ -_ELF_DEFINE_EM(EM_RCE, 39, "Motorola RCE") \ -_ELF_DEFINE_EM(EM_ARM, 40, "Advanced RISC Machines ARM") \ -_ELF_DEFINE_EM(EM_ALPHA, 41, "Digital Alpha") \ -_ELF_DEFINE_EM(EM_SH, 42, "Hitachi SH") \ -_ELF_DEFINE_EM(EM_SPARCV9, 43, "SPARC Version 9") \ -_ELF_DEFINE_EM(EM_TRICORE, 44, \ - "Siemens TriCore embedded processor") \ -_ELF_DEFINE_EM(EM_ARC, 45, \ - "Argonaut RISC Core, Argonaut Technologies Inc.") \ -_ELF_DEFINE_EM(EM_H8_300, 46, "Hitachi H8/300") \ -_ELF_DEFINE_EM(EM_H8_300H, 47, "Hitachi H8/300H") \ -_ELF_DEFINE_EM(EM_H8S, 48, "Hitachi H8S") \ -_ELF_DEFINE_EM(EM_H8_500, 49, "Hitachi H8/500") \ -_ELF_DEFINE_EM(EM_IA_64, 50, \ - "Intel IA-64 processor architecture") \ -_ELF_DEFINE_EM(EM_MIPS_X, 51, "Stanford MIPS-X") \ -_ELF_DEFINE_EM(EM_COLDFIRE, 52, "Motorola ColdFire") \ -_ELF_DEFINE_EM(EM_68HC12, 53, "Motorola M68HC12") \ -_ELF_DEFINE_EM(EM_MMA, 54, \ - "Fujitsu MMA Multimedia Accelerator") \ -_ELF_DEFINE_EM(EM_PCP, 55, "Siemens PCP") \ -_ELF_DEFINE_EM(EM_NCPU, 56, \ - "Sony nCPU embedded RISC processor") \ -_ELF_DEFINE_EM(EM_NDR1, 57, "Denso NDR1 microprocessor") \ -_ELF_DEFINE_EM(EM_STARCORE, 58, "Motorola Star*Core processor") \ -_ELF_DEFINE_EM(EM_ME16, 59, "Toyota ME16 processor") \ -_ELF_DEFINE_EM(EM_ST100, 60, \ - "STMicroelectronics ST100 processor") \ -_ELF_DEFINE_EM(EM_TINYJ, 61, \ - "Advanced Logic Corp. TinyJ embedded processor family") \ -_ELF_DEFINE_EM(EM_X86_64, 62, "AMD x86-64 architecture") \ -_ELF_DEFINE_EM(EM_PDSP, 63, "Sony DSP Processor") \ -_ELF_DEFINE_EM(EM_PDP10, 64, \ - "Digital Equipment Corp. PDP-10") \ -_ELF_DEFINE_EM(EM_PDP11, 65, \ - "Digital Equipment Corp. PDP-11") \ -_ELF_DEFINE_EM(EM_FX66, 66, "Siemens FX66 microcontroller") \ -_ELF_DEFINE_EM(EM_ST9PLUS, 67, \ - "STMicroelectronics ST9+ 8/16 bit microcontroller") \ -_ELF_DEFINE_EM(EM_ST7, 68, \ - "STMicroelectronics ST7 8-bit microcontroller") \ -_ELF_DEFINE_EM(EM_68HC16, 69, \ - "Motorola MC68HC16 Microcontroller") \ -_ELF_DEFINE_EM(EM_68HC11, 70, \ - "Motorola MC68HC11 Microcontroller") \ -_ELF_DEFINE_EM(EM_68HC08, 71, \ - "Motorola MC68HC08 Microcontroller") \ -_ELF_DEFINE_EM(EM_68HC05, 72, \ - "Motorola MC68HC05 Microcontroller") \ -_ELF_DEFINE_EM(EM_SVX, 73, "Silicon Graphics SVx") \ -_ELF_DEFINE_EM(EM_ST19, 74, \ - "STMicroelectronics ST19 8-bit microcontroller") \ -_ELF_DEFINE_EM(EM_VAX, 75, "Digital VAX") \ -_ELF_DEFINE_EM(EM_CRIS, 76, \ - "Axis Communications 32-bit embedded processor") \ -_ELF_DEFINE_EM(EM_JAVELIN, 77, \ - "Infineon Technologies 32-bit embedded processor") \ -_ELF_DEFINE_EM(EM_FIREPATH, 78, \ - "Element 14 64-bit DSP Processor") \ -_ELF_DEFINE_EM(EM_ZSP, 79, \ - "LSI Logic 16-bit DSP Processor") \ -_ELF_DEFINE_EM(EM_MMIX, 80, \ - "Donald Knuth's educational 64-bit processor") \ -_ELF_DEFINE_EM(EM_HUANY, 81, \ - "Harvard University machine-independent object files") \ -_ELF_DEFINE_EM(EM_PRISM, 82, "SiTera Prism") \ -_ELF_DEFINE_EM(EM_AVR, 83, \ - "Atmel AVR 8-bit microcontroller") \ -_ELF_DEFINE_EM(EM_FR30, 84, "Fujitsu FR30") \ -_ELF_DEFINE_EM(EM_D10V, 85, "Mitsubishi D10V") \ -_ELF_DEFINE_EM(EM_D30V, 86, "Mitsubishi D30V") \ -_ELF_DEFINE_EM(EM_V850, 87, "NEC v850") \ -_ELF_DEFINE_EM(EM_M32R, 88, "Mitsubishi M32R") \ -_ELF_DEFINE_EM(EM_MN10300, 89, "Matsushita MN10300") \ -_ELF_DEFINE_EM(EM_MN10200, 90, "Matsushita MN10200") \ -_ELF_DEFINE_EM(EM_PJ, 91, "picoJava") \ -_ELF_DEFINE_EM(EM_OPENRISC, 92, \ - "OpenRISC 32-bit embedded processor") \ -_ELF_DEFINE_EM(EM_ARC_COMPACT, 93, \ - "ARC International ARCompact processor") \ -_ELF_DEFINE_EM(EM_XTENSA, 94, \ - "Tensilica Xtensa Architecture") \ -_ELF_DEFINE_EM(EM_VIDEOCORE, 95, \ - "Alphamosaic VideoCore processor") \ -_ELF_DEFINE_EM(EM_TMM_GPP, 96, \ - "Thompson Multimedia General Purpose Processor") \ -_ELF_DEFINE_EM(EM_NS32K, 97, \ - "National Semiconductor 32000 series") \ -_ELF_DEFINE_EM(EM_TPC, 98, "Tenor Network TPC processor") \ -_ELF_DEFINE_EM(EM_SNP1K, 99, "Trebia SNP 1000 processor") \ -_ELF_DEFINE_EM(EM_ST200, 100, \ - "STMicroelectronics (www.st.com) ST200 microcontroller") \ -_ELF_DEFINE_EM(EM_IP2K, 101, \ - "Ubicom IP2xxx microcontroller family") \ -_ELF_DEFINE_EM(EM_MAX, 102, "MAX Processor") \ -_ELF_DEFINE_EM(EM_CR, 103, \ - "National Semiconductor CompactRISC microprocessor") \ -_ELF_DEFINE_EM(EM_F2MC16, 104, "Fujitsu F2MC16") \ -_ELF_DEFINE_EM(EM_MSP430, 105, \ - "Texas Instruments embedded microcontroller msp430") \ -_ELF_DEFINE_EM(EM_BLACKFIN, 106, \ - "Analog Devices Blackfin (DSP) processor") \ -_ELF_DEFINE_EM(EM_SE_C33, 107, \ - "S1C33 Family of Seiko Epson processors") \ -_ELF_DEFINE_EM(EM_SEP, 108, \ - "Sharp embedded microprocessor") \ -_ELF_DEFINE_EM(EM_ARCA, 109, "Arca RISC Microprocessor") \ -_ELF_DEFINE_EM(EM_UNICORE, 110, \ - "Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University") \ -_ELF_DEFINE_EM(EM_EXCESS, 111, \ - "eXcess: 16/32/64-bit configurable embedded CPU") \ -_ELF_DEFINE_EM(EM_DXP, 112, \ - "Icera Semiconductor Inc. Deep Execution Processor") \ -_ELF_DEFINE_EM(EM_ALTERA_NIOS2, 113, \ - "Altera Nios II soft-core processor") \ -_ELF_DEFINE_EM(EM_CRX, 114, \ - "National Semiconductor CompactRISC CRX microprocessor") \ -_ELF_DEFINE_EM(EM_XGATE, 115, \ - "Motorola XGATE embedded processor") \ -_ELF_DEFINE_EM(EM_C166, 116, \ - "Infineon C16x/XC16x processor") \ -_ELF_DEFINE_EM(EM_M16C, 117, \ - "Renesas M16C series microprocessors") \ -_ELF_DEFINE_EM(EM_DSPIC30F, 118, \ - "Microchip Technology dsPIC30F Digital Signal Controller") \ -_ELF_DEFINE_EM(EM_CE, 119, \ - "Freescale Communication Engine RISC core") \ -_ELF_DEFINE_EM(EM_M32C, 120, \ - "Renesas M32C series microprocessors") \ -_ELF_DEFINE_EM(EM_TSK3000, 131, "Altium TSK3000 core") \ -_ELF_DEFINE_EM(EM_RS08, 132, \ - "Freescale RS08 embedded processor") \ -_ELF_DEFINE_EM(EM_SHARC, 133, \ - "Analog Devices SHARC family of 32-bit DSP processors") \ -_ELF_DEFINE_EM(EM_ECOG2, 134, \ - "Cyan Technology eCOG2 microprocessor") \ -_ELF_DEFINE_EM(EM_SCORE7, 135, \ - "Sunplus S+core7 RISC processor") \ -_ELF_DEFINE_EM(EM_DSP24, 136, \ - "New Japan Radio (NJR) 24-bit DSP Processor") \ -_ELF_DEFINE_EM(EM_VIDEOCORE3, 137, \ - "Broadcom VideoCore III processor") \ -_ELF_DEFINE_EM(EM_LATTICEMICO32, 138, \ - "RISC processor for Lattice FPGA architecture") \ -_ELF_DEFINE_EM(EM_SE_C17, 139, "Seiko Epson C17 family") \ -_ELF_DEFINE_EM(EM_TI_C6000, 140, \ - "The Texas Instruments TMS320C6000 DSP family") \ -_ELF_DEFINE_EM(EM_TI_C2000, 141, \ - "The Texas Instruments TMS320C2000 DSP family") \ -_ELF_DEFINE_EM(EM_TI_C5500, 142, \ - "The Texas Instruments TMS320C55x DSP family") \ -_ELF_DEFINE_EM(EM_MMDSP_PLUS, 160, \ - "STMicroelectronics 64bit VLIW Data Signal Processor") \ -_ELF_DEFINE_EM(EM_CYPRESS_M8C, 161, "Cypress M8C microprocessor") \ -_ELF_DEFINE_EM(EM_R32C, 162, \ - "Renesas R32C series microprocessors") \ -_ELF_DEFINE_EM(EM_TRIMEDIA, 163, \ - "NXP Semiconductors TriMedia architecture family") \ -_ELF_DEFINE_EM(EM_QDSP6, 164, "QUALCOMM DSP6 Processor") \ -_ELF_DEFINE_EM(EM_8051, 165, "Intel 8051 and variants") \ -_ELF_DEFINE_EM(EM_STXP7X, 166, \ - "STMicroelectronics STxP7x family of configurable and extensible RISC processors") \ -_ELF_DEFINE_EM(EM_NDS32, 167, \ - "Andes Technology compact code size embedded RISC processor family") \ -_ELF_DEFINE_EM(EM_ECOG1, 168, \ - "Cyan Technology eCOG1X family") \ -_ELF_DEFINE_EM(EM_ECOG1X, 168, \ - "Cyan Technology eCOG1X family") \ -_ELF_DEFINE_EM(EM_MAXQ30, 169, \ - "Dallas Semiconductor MAXQ30 Core Micro-controllers") \ -_ELF_DEFINE_EM(EM_XIMO16, 170, \ - "New Japan Radio (NJR) 16-bit DSP Processor") \ -_ELF_DEFINE_EM(EM_MANIK, 171, \ - "M2000 Reconfigurable RISC Microprocessor") \ -_ELF_DEFINE_EM(EM_CRAYNV2, 172, \ - "Cray Inc. NV2 vector architecture") \ -_ELF_DEFINE_EM(EM_RX, 173, "Renesas RX family") \ -_ELF_DEFINE_EM(EM_METAG, 174, \ - "Imagination Technologies META processor architecture") \ -_ELF_DEFINE_EM(EM_MCST_ELBRUS, 175, \ - "MCST Elbrus general purpose hardware architecture") \ -_ELF_DEFINE_EM(EM_ECOG16, 176, \ - "Cyan Technology eCOG16 family") \ -_ELF_DEFINE_EM(EM_CR16, 177, \ - "National Semiconductor CompactRISC CR16 16-bit microprocessor") \ -_ELF_DEFINE_EM(EM_ETPU, 178, \ - "Freescale Extended Time Processing Unit") \ -_ELF_DEFINE_EM(EM_SLE9X, 179, \ - "Infineon Technologies SLE9X core") \ -_ELF_DEFINE_EM(EM_AARCH64, 183, \ - "AArch64 (64-bit ARM)") \ -_ELF_DEFINE_EM(EM_AVR32, 185, \ - "Atmel Corporation 32-bit microprocessor family") \ -_ELF_DEFINE_EM(EM_STM8, 186, \ - "STMicroeletronics STM8 8-bit microcontroller") \ -_ELF_DEFINE_EM(EM_TILE64, 187, \ - "Tilera TILE64 multicore architecture family") \ -_ELF_DEFINE_EM(EM_TILEPRO, 188, \ - "Tilera TILEPro multicore architecture family") \ -_ELF_DEFINE_EM(EM_MICROBLAZE, 189, \ - "Xilinx MicroBlaze 32-bit RISC soft processor core") \ -_ELF_DEFINE_EM(EM_CUDA, 190, "NVIDIA CUDA architecture") \ -_ELF_DEFINE_EM(EM_TILEGX, 191, \ - "Tilera TILE-Gx multicore architecture family") \ -_ELF_DEFINE_EM(EM_CLOUDSHIELD, 192, \ - "CloudShield architecture family") \ -_ELF_DEFINE_EM(EM_COREA_1ST, 193, \ - "KIPO-KAIST Core-A 1st generation processor family") \ -_ELF_DEFINE_EM(EM_COREA_2ND, 194, \ - "KIPO-KAIST Core-A 2nd generation processor family") \ -_ELF_DEFINE_EM(EM_ARC_COMPACT2, 195, "Synopsys ARCompact V2") \ -_ELF_DEFINE_EM(EM_OPEN8, 196, \ - "Open8 8-bit RISC soft processor core") \ -_ELF_DEFINE_EM(EM_RL78, 197, "Renesas RL78 family") \ -_ELF_DEFINE_EM(EM_VIDEOCORE5, 198, "Broadcom VideoCore V processor") \ -_ELF_DEFINE_EM(EM_78KOR, 199, "Renesas 78KOR family") \ -_ELF_DEFINE_EM(EM_56800EX, 200, \ - "Freescale 56800EX Digital Signal Controller") \ -_ELF_DEFINE_EM(EM_BA1, 201, "Beyond BA1 CPU architecture") \ -_ELF_DEFINE_EM(EM_BA2, 202, "Beyond BA2 CPU architecture") \ -_ELF_DEFINE_EM(EM_XCORE, 203, "XMOS xCORE processor family") \ -_ELF_DEFINE_EM(EM_MCHP_PIC, 204, "Microchip 8-bit PIC(r) family") \ -_ELF_DEFINE_EM(EM_INTEL205, 205, "Reserved by Intel") \ -_ELF_DEFINE_EM(EM_INTEL206, 206, "Reserved by Intel") \ -_ELF_DEFINE_EM(EM_INTEL207, 207, "Reserved by Intel") \ -_ELF_DEFINE_EM(EM_INTEL208, 208, "Reserved by Intel") \ -_ELF_DEFINE_EM(EM_INTEL209, 209, "Reserved by Intel") \ -_ELF_DEFINE_EM(EM_KM32, 210, "KM211 KM32 32-bit processor") \ -_ELF_DEFINE_EM(EM_KMX32, 211, "KM211 KMX32 32-bit processor") \ -_ELF_DEFINE_EM(EM_KMX16, 212, "KM211 KMX16 16-bit processor") \ -_ELF_DEFINE_EM(EM_KMX8, 213, "KM211 KMX8 8-bit processor") \ -_ELF_DEFINE_EM(EM_KVARC, 214, "KM211 KMX32 KVARC processor") \ -_ELF_DEFINE_EM(EM_RISCV, 243, "RISC-V") - -#undef _ELF_DEFINE_EM -#define _ELF_DEFINE_EM(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ELF_MACHINES() - EM__LAST__ -}; - -/* Other synonyms. */ -#define EM_AMD64 EM_X86_64 -#define EM_ARC_A5 EM_ARC_COMPACT - -/* - * ELF file types: (ET_*). - */ -#define _ELF_DEFINE_ELF_TYPES() \ -_ELF_DEFINE_ET(ET_NONE, 0, "No file type") \ -_ELF_DEFINE_ET(ET_REL, 1, "Relocatable object") \ -_ELF_DEFINE_ET(ET_EXEC, 2, "Executable") \ -_ELF_DEFINE_ET(ET_DYN, 3, "Shared object") \ -_ELF_DEFINE_ET(ET_CORE, 4, "Core file") \ -_ELF_DEFINE_ET(ET_LOOS, 0xFE00U, "Begin OS-specific range") \ -_ELF_DEFINE_ET(ET_HIOS, 0xFEFFU, "End OS-specific range") \ -_ELF_DEFINE_ET(ET_LOPROC, 0xFF00U, "Begin processor-specific range") \ -_ELF_DEFINE_ET(ET_HIPROC, 0xFFFFU, "End processor-specific range") - -#undef _ELF_DEFINE_ET -#define _ELF_DEFINE_ET(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ELF_TYPES() - ET__LAST__ -}; - -/* ELF file format version numbers. */ -#define EV_NONE 0 -#define EV_CURRENT 1 - -/* - * Flags for section groups. - */ -#define GRP_COMDAT 0x1 /* COMDAT semantics */ -#define GRP_MASKOS 0x0ff00000 /* OS-specific flags */ -#define GRP_MASKPROC 0xf0000000 /* processor-specific flags */ - -/* - * Flags / mask for .gnu.versym sections. - */ -#define VERSYM_VERSION 0x7fff -#define VERSYM_HIDDEN 0x8000 - -/* - * Flags used by program header table entries. - */ - -#define _ELF_DEFINE_PHDR_FLAGS() \ -_ELF_DEFINE_PF(PF_X, 0x1, "Execute") \ -_ELF_DEFINE_PF(PF_W, 0x2, "Write") \ -_ELF_DEFINE_PF(PF_R, 0x4, "Read") \ -_ELF_DEFINE_PF(PF_MASKOS, 0x0ff00000, "OS-specific flags") \ -_ELF_DEFINE_PF(PF_MASKPROC, 0xf0000000, "Processor-specific flags") \ -_ELF_DEFINE_PF(PF_ARM_SB, 0x10000000, \ - "segment contains the location addressed by the static base") \ -_ELF_DEFINE_PF(PF_ARM_PI, 0x20000000, \ - "segment is position-independent") \ -_ELF_DEFINE_PF(PF_ARM_ABS, 0x40000000, \ - "segment must be loaded at its base address") - -#undef _ELF_DEFINE_PF -#define _ELF_DEFINE_PF(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_PHDR_FLAGS() - PF__LAST__ -}; - -/* - * Types of program header table entries. - */ - -#define _ELF_DEFINE_PHDR_TYPES() \ -_ELF_DEFINE_PT(PT_NULL, 0, "ignored entry") \ -_ELF_DEFINE_PT(PT_LOAD, 1, "loadable segment") \ -_ELF_DEFINE_PT(PT_DYNAMIC, 2, \ - "contains dynamic linking information") \ -_ELF_DEFINE_PT(PT_INTERP, 3, "names an interpreter") \ -_ELF_DEFINE_PT(PT_NOTE, 4, "auxiliary information") \ -_ELF_DEFINE_PT(PT_SHLIB, 5, "reserved") \ -_ELF_DEFINE_PT(PT_PHDR, 6, \ - "describes the program header itself") \ -_ELF_DEFINE_PT(PT_TLS, 7, "thread local storage") \ -_ELF_DEFINE_PT(PT_LOOS, 0x60000000UL, \ - "start of OS-specific range") \ -_ELF_DEFINE_PT(PT_SUNW_UNWIND, 0x6464E550UL, \ - "Solaris/amd64 stack unwind tables") \ -_ELF_DEFINE_PT(PT_GNU_EH_FRAME, 0x6474E550UL, \ - "GCC generated .eh_frame_hdr segment") \ -_ELF_DEFINE_PT(PT_GNU_STACK, 0x6474E551UL, \ - "Stack flags") \ -_ELF_DEFINE_PT(PT_GNU_RELRO, 0x6474E552UL, \ - "Segment becomes read-only after relocation") \ -_ELF_DEFINE_PT(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL, \ - "Segment filled with random data") \ -_ELF_DEFINE_PT(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL, \ - "Program violates W^X") \ -_ELF_DEFINE_PT(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL, \ - "Boot data") \ -_ELF_DEFINE_PT(PT_SUNWBSS, 0x6FFFFFFAUL, \ - "A Solaris .SUNW_bss section") \ -_ELF_DEFINE_PT(PT_SUNWSTACK, 0x6FFFFFFBUL, \ - "A Solaris process stack") \ -_ELF_DEFINE_PT(PT_SUNWDTRACE, 0x6FFFFFFCUL, \ - "Used by dtrace(1)") \ -_ELF_DEFINE_PT(PT_SUNWCAP, 0x6FFFFFFDUL, \ - "Special hardware capability requirements") \ -_ELF_DEFINE_PT(PT_HIOS, 0x6FFFFFFFUL, \ - "end of OS-specific range") \ -_ELF_DEFINE_PT(PT_LOPROC, 0x70000000UL, \ - "start of processor-specific range") \ -_ELF_DEFINE_PT(PT_ARM_ARCHEXT, 0x70000000UL, \ - "platform architecture compatibility information") \ -_ELF_DEFINE_PT(PT_ARM_EXIDX, 0x70000001UL, \ - "exception unwind tables") \ -_ELF_DEFINE_PT(PT_MIPS_REGINFO, 0x70000000UL, \ - "register usage information") \ -_ELF_DEFINE_PT(PT_MIPS_RTPROC, 0x70000001UL, \ - "runtime procedure table") \ -_ELF_DEFINE_PT(PT_MIPS_OPTIONS, 0x70000002UL, \ - "options segment") \ -_ELF_DEFINE_PT(PT_HIPROC, 0x7FFFFFFFUL, \ - "end of processor-specific range") - -#undef _ELF_DEFINE_PT -#define _ELF_DEFINE_PT(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_PHDR_TYPES() - PT__LAST__ = PT_HIPROC -}; - -/* synonyms. */ -#define PT_ARM_UNWIND PT_ARM_EXIDX -#define PT_HISUNW PT_HIOS -#define PT_LOSUNW PT_SUNWBSS - -/* - * Section flags. - */ - -#define _ELF_DEFINE_SECTION_FLAGS() \ -_ELF_DEFINE_SHF(SHF_WRITE, 0x1, \ - "writable during program execution") \ -_ELF_DEFINE_SHF(SHF_ALLOC, 0x2, \ - "occupies memory during program execution") \ -_ELF_DEFINE_SHF(SHF_EXECINSTR, 0x4, "executable instructions") \ -_ELF_DEFINE_SHF(SHF_MERGE, 0x10, \ - "may be merged to prevent duplication") \ -_ELF_DEFINE_SHF(SHF_STRINGS, 0x20, \ - "NUL-terminated character strings") \ -_ELF_DEFINE_SHF(SHF_INFO_LINK, 0x40, \ - "the sh_info field holds a link") \ -_ELF_DEFINE_SHF(SHF_LINK_ORDER, 0x80, \ - "special ordering requirements during linking") \ -_ELF_DEFINE_SHF(SHF_OS_NONCONFORMING, 0x100, \ - "requires OS-specific processing during linking") \ -_ELF_DEFINE_SHF(SHF_GROUP, 0x200, \ - "member of a section group") \ -_ELF_DEFINE_SHF(SHF_TLS, 0x400, \ - "holds thread-local storage") \ -_ELF_DEFINE_SHF(SHF_COMPRESSED, 0x800, \ - "holds compressed data") \ -_ELF_DEFINE_SHF(SHF_MASKOS, 0x0FF00000UL, \ - "bits reserved for OS-specific semantics") \ -_ELF_DEFINE_SHF(SHF_AMD64_LARGE, 0x10000000UL, \ - "section uses large code model") \ -_ELF_DEFINE_SHF(SHF_ENTRYSECT, 0x10000000UL, \ - "section contains an entry point (ARM)") \ -_ELF_DEFINE_SHF(SHF_COMDEF, 0x80000000UL, \ - "section may be multiply defined in input to link step (ARM)") \ -_ELF_DEFINE_SHF(SHF_MIPS_GPREL, 0x10000000UL, \ - "section must be part of global data area") \ -_ELF_DEFINE_SHF(SHF_MIPS_MERGE, 0x20000000UL, \ - "section data should be merged to eliminate duplication") \ -_ELF_DEFINE_SHF(SHF_MIPS_ADDR, 0x40000000UL, \ - "section data is addressed by default") \ -_ELF_DEFINE_SHF(SHF_MIPS_STRING, 0x80000000UL, \ - "section data is string data by default") \ -_ELF_DEFINE_SHF(SHF_MIPS_NOSTRIP, 0x08000000UL, \ - "section data may not be stripped") \ -_ELF_DEFINE_SHF(SHF_MIPS_LOCAL, 0x04000000UL, \ - "section data local to process") \ -_ELF_DEFINE_SHF(SHF_MIPS_NAMES, 0x02000000UL, \ - "linker must generate implicit hidden weak names") \ -_ELF_DEFINE_SHF(SHF_MIPS_NODUPE, 0x01000000UL, \ - "linker must retain only one copy") \ -_ELF_DEFINE_SHF(SHF_ORDERED, 0x40000000UL, \ - "section is ordered with respect to other sections") \ -_ELF_DEFINE_SHF(SHF_EXCLUDE, 0x80000000UL, \ - "section is excluded from executables and shared objects") \ -_ELF_DEFINE_SHF(SHF_MASKPROC, 0xF0000000UL, \ - "bits reserved for processor-specific semantics") - -#undef _ELF_DEFINE_SHF -#define _ELF_DEFINE_SHF(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SECTION_FLAGS() - SHF__LAST__ -}; - -/* - * Special section indices. - */ -#define _ELF_DEFINE_SECTION_INDICES() \ -_ELF_DEFINE_SHN(SHN_UNDEF, 0, "undefined section") \ -_ELF_DEFINE_SHN(SHN_LORESERVE, 0xFF00U, "start of reserved area") \ -_ELF_DEFINE_SHN(SHN_LOPROC, 0xFF00U, \ - "start of processor-specific range") \ -_ELF_DEFINE_SHN(SHN_BEFORE, 0xFF00U, "used for section ordering") \ -_ELF_DEFINE_SHN(SHN_AFTER, 0xFF01U, "used for section ordering") \ -_ELF_DEFINE_SHN(SHN_AMD64_LCOMMON, 0xFF02U, "large common block label") \ -_ELF_DEFINE_SHN(SHN_MIPS_ACOMMON, 0xFF00U, \ - "allocated common symbols in a DSO") \ -_ELF_DEFINE_SHN(SHN_MIPS_TEXT, 0xFF01U, "Reserved (obsolete)") \ -_ELF_DEFINE_SHN(SHN_MIPS_DATA, 0xFF02U, "Reserved (obsolete)") \ -_ELF_DEFINE_SHN(SHN_MIPS_SCOMMON, 0xFF03U, \ - "gp-addressable common symbols") \ -_ELF_DEFINE_SHN(SHN_MIPS_SUNDEFINED, 0xFF04U, \ - "gp-addressable undefined symbols") \ -_ELF_DEFINE_SHN(SHN_MIPS_LCOMMON, 0xFF05U, "local common symbols") \ -_ELF_DEFINE_SHN(SHN_MIPS_LUNDEFINED, 0xFF06U, \ - "local undefined symbols") \ -_ELF_DEFINE_SHN(SHN_HIPROC, 0xFF1FU, \ - "end of processor-specific range") \ -_ELF_DEFINE_SHN(SHN_LOOS, 0xFF20U, \ - "start of OS-specific range") \ -_ELF_DEFINE_SHN(SHN_SUNW_IGNORE, 0xFF3FU, "used by dtrace") \ -_ELF_DEFINE_SHN(SHN_HIOS, 0xFF3FU, \ - "end of OS-specific range") \ -_ELF_DEFINE_SHN(SHN_ABS, 0xFFF1U, "absolute references") \ -_ELF_DEFINE_SHN(SHN_COMMON, 0xFFF2U, "references to COMMON areas") \ -_ELF_DEFINE_SHN(SHN_XINDEX, 0xFFFFU, "extended index") \ -_ELF_DEFINE_SHN(SHN_HIRESERVE, 0xFFFFU, "end of reserved area") - -#undef _ELF_DEFINE_SHN -#define _ELF_DEFINE_SHN(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SECTION_INDICES() - SHN__LAST__ -}; - -/* - * Section types. - */ - -#define _ELF_DEFINE_SECTION_TYPES() \ -_ELF_DEFINE_SHT(SHT_NULL, 0, "inactive header") \ -_ELF_DEFINE_SHT(SHT_PROGBITS, 1, "program defined information") \ -_ELF_DEFINE_SHT(SHT_SYMTAB, 2, "symbol table") \ -_ELF_DEFINE_SHT(SHT_STRTAB, 3, "string table") \ -_ELF_DEFINE_SHT(SHT_RELA, 4, \ - "relocation entries with addends") \ -_ELF_DEFINE_SHT(SHT_HASH, 5, "symbol hash table") \ -_ELF_DEFINE_SHT(SHT_DYNAMIC, 6, \ - "information for dynamic linking") \ -_ELF_DEFINE_SHT(SHT_NOTE, 7, "additional notes") \ -_ELF_DEFINE_SHT(SHT_NOBITS, 8, "section occupying no space") \ -_ELF_DEFINE_SHT(SHT_REL, 9, \ - "relocation entries without addends") \ -_ELF_DEFINE_SHT(SHT_SHLIB, 10, "reserved") \ -_ELF_DEFINE_SHT(SHT_DYNSYM, 11, "symbol table") \ -_ELF_DEFINE_SHT(SHT_INIT_ARRAY, 14, \ - "pointers to initialization functions") \ -_ELF_DEFINE_SHT(SHT_FINI_ARRAY, 15, \ - "pointers to termination functions") \ -_ELF_DEFINE_SHT(SHT_PREINIT_ARRAY, 16, \ - "pointers to functions called before initialization") \ -_ELF_DEFINE_SHT(SHT_GROUP, 17, "defines a section group") \ -_ELF_DEFINE_SHT(SHT_SYMTAB_SHNDX, 18, \ - "used for extended section numbering") \ -_ELF_DEFINE_SHT(SHT_LOOS, 0x60000000UL, \ - "start of OS-specific range") \ -_ELF_DEFINE_SHT(SHT_SUNW_dof, 0x6FFFFFF4UL, \ - "used by dtrace") \ -_ELF_DEFINE_SHT(SHT_SUNW_cap, 0x6FFFFFF5UL, \ - "capability requirements") \ -_ELF_DEFINE_SHT(SHT_GNU_ATTRIBUTES, 0x6FFFFFF5UL, \ - "object attributes") \ -_ELF_DEFINE_SHT(SHT_SUNW_SIGNATURE, 0x6FFFFFF6UL, \ - "module verification signature") \ -_ELF_DEFINE_SHT(SHT_GNU_HASH, 0x6FFFFFF6UL, \ - "GNU Hash sections") \ -_ELF_DEFINE_SHT(SHT_GNU_LIBLIST, 0x6FFFFFF7UL, \ - "List of libraries to be prelinked") \ -_ELF_DEFINE_SHT(SHT_SUNW_ANNOTATE, 0x6FFFFFF7UL, \ - "special section where unresolved references are allowed") \ -_ELF_DEFINE_SHT(SHT_SUNW_DEBUGSTR, 0x6FFFFFF8UL, \ - "debugging information") \ -_ELF_DEFINE_SHT(SHT_CHECKSUM, 0x6FFFFFF8UL, \ - "checksum for dynamic shared objects") \ -_ELF_DEFINE_SHT(SHT_SUNW_DEBUG, 0x6FFFFFF9UL, \ - "debugging information") \ -_ELF_DEFINE_SHT(SHT_SUNW_move, 0x6FFFFFFAUL, \ - "information to handle partially initialized symbols") \ -_ELF_DEFINE_SHT(SHT_SUNW_COMDAT, 0x6FFFFFFBUL, \ - "section supporting merging of multiple copies of data") \ -_ELF_DEFINE_SHT(SHT_SUNW_syminfo, 0x6FFFFFFCUL, \ - "additional symbol information") \ -_ELF_DEFINE_SHT(SHT_SUNW_verdef, 0x6FFFFFFDUL, \ - "symbol versioning information") \ -_ELF_DEFINE_SHT(SHT_SUNW_verneed, 0x6FFFFFFEUL, \ - "symbol versioning requirements") \ -_ELF_DEFINE_SHT(SHT_SUNW_versym, 0x6FFFFFFFUL, \ - "symbol versioning table") \ -_ELF_DEFINE_SHT(SHT_HIOS, 0x6FFFFFFFUL, \ - "end of OS-specific range") \ -_ELF_DEFINE_SHT(SHT_LOPROC, 0x70000000UL, \ - "start of processor-specific range") \ -_ELF_DEFINE_SHT(SHT_ARM_EXIDX, 0x70000001UL, \ - "exception index table") \ -_ELF_DEFINE_SHT(SHT_ARM_PREEMPTMAP, 0x70000002UL, \ - "BPABI DLL dynamic linking preemption map") \ -_ELF_DEFINE_SHT(SHT_ARM_ATTRIBUTES, 0x70000003UL, \ - "object file compatibility attributes") \ -_ELF_DEFINE_SHT(SHT_ARM_DEBUGOVERLAY, 0x70000004UL, \ - "overlay debug information") \ -_ELF_DEFINE_SHT(SHT_ARM_OVERLAYSECTION, 0x70000005UL, \ - "overlay debug information") \ -_ELF_DEFINE_SHT(SHT_MIPS_LIBLIST, 0x70000000UL, \ - "DSO library information used in link") \ -_ELF_DEFINE_SHT(SHT_MIPS_MSYM, 0x70000001UL, \ - "MIPS symbol table extension") \ -_ELF_DEFINE_SHT(SHT_MIPS_CONFLICT, 0x70000002UL, \ - "symbol conflicting with DSO-defined symbols ") \ -_ELF_DEFINE_SHT(SHT_MIPS_GPTAB, 0x70000003UL, \ - "global pointer table") \ -_ELF_DEFINE_SHT(SHT_MIPS_UCODE, 0x70000004UL, \ - "reserved") \ -_ELF_DEFINE_SHT(SHT_MIPS_DEBUG, 0x70000005UL, \ - "reserved (obsolete debug information)") \ -_ELF_DEFINE_SHT(SHT_MIPS_REGINFO, 0x70000006UL, \ - "register usage information") \ -_ELF_DEFINE_SHT(SHT_MIPS_PACKAGE, 0x70000007UL, \ - "OSF reserved") \ -_ELF_DEFINE_SHT(SHT_MIPS_PACKSYM, 0x70000008UL, \ - "OSF reserved") \ -_ELF_DEFINE_SHT(SHT_MIPS_RELD, 0x70000009UL, \ - "dynamic relocation") \ -_ELF_DEFINE_SHT(SHT_MIPS_IFACE, 0x7000000BUL, \ - "subprogram interface information") \ -_ELF_DEFINE_SHT(SHT_MIPS_CONTENT, 0x7000000CUL, \ - "section content classification") \ -_ELF_DEFINE_SHT(SHT_MIPS_OPTIONS, 0x7000000DUL, \ - "general options") \ -_ELF_DEFINE_SHT(SHT_MIPS_DELTASYM, 0x7000001BUL, \ - "Delta C++: symbol table") \ -_ELF_DEFINE_SHT(SHT_MIPS_DELTAINST, 0x7000001CUL, \ - "Delta C++: instance table") \ -_ELF_DEFINE_SHT(SHT_MIPS_DELTACLASS, 0x7000001DUL, \ - "Delta C++: class table") \ -_ELF_DEFINE_SHT(SHT_MIPS_DWARF, 0x7000001EUL, \ - "DWARF debug information") \ -_ELF_DEFINE_SHT(SHT_MIPS_DELTADECL, 0x7000001FUL, \ - "Delta C++: declarations") \ -_ELF_DEFINE_SHT(SHT_MIPS_SYMBOL_LIB, 0x70000020UL, \ - "symbol-to-library mapping") \ -_ELF_DEFINE_SHT(SHT_MIPS_EVENTS, 0x70000021UL, \ - "event locations") \ -_ELF_DEFINE_SHT(SHT_MIPS_TRANSLATE, 0x70000022UL, \ - "???") \ -_ELF_DEFINE_SHT(SHT_MIPS_PIXIE, 0x70000023UL, \ - "special pixie sections") \ -_ELF_DEFINE_SHT(SHT_MIPS_XLATE, 0x70000024UL, \ - "address translation table") \ -_ELF_DEFINE_SHT(SHT_MIPS_XLATE_DEBUG, 0x70000025UL, \ - "SGI internal address translation table") \ -_ELF_DEFINE_SHT(SHT_MIPS_WHIRL, 0x70000026UL, \ - "intermediate code") \ -_ELF_DEFINE_SHT(SHT_MIPS_EH_REGION, 0x70000027UL, \ - "C++ exception handling region info") \ -_ELF_DEFINE_SHT(SHT_MIPS_XLATE_OLD, 0x70000028UL, \ - "obsolete") \ -_ELF_DEFINE_SHT(SHT_MIPS_PDR_EXCEPTION, 0x70000029UL, \ - "runtime procedure descriptor table exception information") \ -_ELF_DEFINE_SHT(SHT_MIPS_ABIFLAGS, 0x7000002AUL, \ - "ABI flags") \ -_ELF_DEFINE_SHT(SHT_SPARC_GOTDATA, 0x70000000UL, \ - "SPARC-specific data") \ -_ELF_DEFINE_SHT(SHT_X86_64_UNWIND, 0x70000001UL, \ - "unwind tables for the AMD64") \ -_ELF_DEFINE_SHT(SHT_ORDERED, 0x7FFFFFFFUL, \ - "sort entries in the section") \ -_ELF_DEFINE_SHT(SHT_HIPROC, 0x7FFFFFFFUL, \ - "end of processor-specific range") \ -_ELF_DEFINE_SHT(SHT_LOUSER, 0x80000000UL, \ - "start of application-specific range") \ -_ELF_DEFINE_SHT(SHT_HIUSER, 0xFFFFFFFFUL, \ - "end of application-specific range") - -#undef _ELF_DEFINE_SHT -#define _ELF_DEFINE_SHT(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SECTION_TYPES() - SHT__LAST__ = SHT_HIUSER -}; - -/* Aliases for section types. */ -#define SHT_AMD64_UNWIND SHT_X86_64_UNWIND -#define SHT_GNU_verdef SHT_SUNW_verdef -#define SHT_GNU_verneed SHT_SUNW_verneed -#define SHT_GNU_versym SHT_SUNW_versym - -/* - * Symbol binding information. - */ - -#define _ELF_DEFINE_SYMBOL_BINDING() \ -_ELF_DEFINE_STB(STB_LOCAL, 0, \ - "not visible outside defining object file") \ -_ELF_DEFINE_STB(STB_GLOBAL, 1, \ - "visible across all object files being combined") \ -_ELF_DEFINE_STB(STB_WEAK, 2, \ - "visible across all object files but with low precedence") \ -_ELF_DEFINE_STB(STB_LOOS, 10, "start of OS-specific range") \ -_ELF_DEFINE_STB(STB_GNU_UNIQUE, 10, "unique symbol (GNU)") \ -_ELF_DEFINE_STB(STB_HIOS, 12, "end of OS-specific range") \ -_ELF_DEFINE_STB(STB_LOPROC, 13, \ - "start of processor-specific range") \ -_ELF_DEFINE_STB(STB_HIPROC, 15, \ - "end of processor-specific range") - -#undef _ELF_DEFINE_STB -#define _ELF_DEFINE_STB(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SYMBOL_BINDING() - STB__LAST__ -}; - -/* - * Symbol types - */ - -#define _ELF_DEFINE_SYMBOL_TYPES() \ -_ELF_DEFINE_STT(STT_NOTYPE, 0, "unspecified type") \ -_ELF_DEFINE_STT(STT_OBJECT, 1, "data object") \ -_ELF_DEFINE_STT(STT_FUNC, 2, "executable code") \ -_ELF_DEFINE_STT(STT_SECTION, 3, "section") \ -_ELF_DEFINE_STT(STT_FILE, 4, "source file") \ -_ELF_DEFINE_STT(STT_COMMON, 5, "uninitialized common block") \ -_ELF_DEFINE_STT(STT_TLS, 6, "thread local storage") \ -_ELF_DEFINE_STT(STT_LOOS, 10, "start of OS-specific types") \ -_ELF_DEFINE_STT(STT_GNU_IFUNC, 10, "indirect function") \ -_ELF_DEFINE_STT(STT_HIOS, 12, "end of OS-specific types") \ -_ELF_DEFINE_STT(STT_LOPROC, 13, \ - "start of processor-specific types") \ -_ELF_DEFINE_STT(STT_ARM_TFUNC, 13, "Thumb function (GNU)") \ -_ELF_DEFINE_STT(STT_ARM_16BIT, 15, "Thumb label (GNU)") \ -_ELF_DEFINE_STT(STT_SPARC_REGISTER, 13, "SPARC register information") \ -_ELF_DEFINE_STT(STT_HIPROC, 15, \ - "end of processor-specific types") - -#undef _ELF_DEFINE_STT -#define _ELF_DEFINE_STT(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SYMBOL_TYPES() - STT__LAST__ -}; - -/* - * Symbol binding. - */ - -#define _ELF_DEFINE_SYMBOL_BINDING_KINDS() \ -_ELF_DEFINE_SYB(SYMINFO_BT_SELF, 0xFFFFU, \ - "bound to self") \ -_ELF_DEFINE_SYB(SYMINFO_BT_PARENT, 0xFFFEU, \ - "bound to parent") \ -_ELF_DEFINE_SYB(SYMINFO_BT_NONE, 0xFFFDU, \ - "no special binding") - -#undef _ELF_DEFINE_SYB -#define _ELF_DEFINE_SYB(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SYMBOL_BINDING_KINDS() - SYMINFO__LAST__ -}; - -/* - * Symbol visibility. - */ - -#define _ELF_DEFINE_SYMBOL_VISIBILITY() \ -_ELF_DEFINE_STV(STV_DEFAULT, 0, \ - "as specified by symbol type") \ -_ELF_DEFINE_STV(STV_INTERNAL, 1, \ - "as defined by processor semantics") \ -_ELF_DEFINE_STV(STV_HIDDEN, 2, \ - "hidden from other components") \ -_ELF_DEFINE_STV(STV_PROTECTED, 3, \ - "local references are not preemptable") - -#undef _ELF_DEFINE_STV -#define _ELF_DEFINE_STV(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SYMBOL_VISIBILITY() - STV__LAST__ -}; - -/* - * Symbol flags. - */ -#define _ELF_DEFINE_SYMBOL_FLAGS() \ -_ELF_DEFINE_SYF(SYMINFO_FLG_DIRECT, 0x01, \ - "directly assocated reference") \ -_ELF_DEFINE_SYF(SYMINFO_FLG_COPY, 0x04, \ - "definition by copy-relocation") \ -_ELF_DEFINE_SYF(SYMINFO_FLG_LAZYLOAD, 0x08, \ - "object should be lazily loaded") \ -_ELF_DEFINE_SYF(SYMINFO_FLG_DIRECTBIND, 0x10, \ - "reference should be directly bound") \ -_ELF_DEFINE_SYF(SYMINFO_FLG_NOEXTDIRECT, 0x20, \ - "external references not allowed to bind to definition") - -#undef _ELF_DEFINE_SYF -#define _ELF_DEFINE_SYF(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_SYMBOL_FLAGS() - SYMINFO_FLG__LAST__ -}; - -/* - * Version dependencies. - */ -#define _ELF_DEFINE_VERSIONING_DEPENDENCIES() \ -_ELF_DEFINE_VERD(VER_NDX_LOCAL, 0, "local scope") \ -_ELF_DEFINE_VERD(VER_NDX_GLOBAL, 1, "global scope") -#undef _ELF_DEFINE_VERD -#define _ELF_DEFINE_VERD(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_VERSIONING_DEPENDENCIES() - VER_NDX__LAST__ -}; - -/* - * Version flags. - */ -#define _ELF_DEFINE_VERSIONING_FLAGS() \ -_ELF_DEFINE_VERF(VER_FLG_BASE, 0x1, "file version") \ -_ELF_DEFINE_VERF(VER_FLG_WEAK, 0x2, "weak version") -#undef _ELF_DEFINE_VERF -#define _ELF_DEFINE_VERF(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_VERSIONING_FLAGS() - VER_FLG__LAST__ -}; - -/* - * Version needs - */ -#define _ELF_DEFINE_VERSIONING_NEEDS() \ -_ELF_DEFINE_VRN(VER_NEED_NONE, 0, "invalid version") \ -_ELF_DEFINE_VRN(VER_NEED_CURRENT, 1, "current version") -#undef _ELF_DEFINE_VRN -#define _ELF_DEFINE_VRN(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_VERSIONING_NEEDS() - VER_NEED__LAST__ -}; - -/* - * Version numbers. - */ -#define _ELF_DEFINE_VERSIONING_NUMBERS() \ -_ELF_DEFINE_VRNU(VER_DEF_NONE, 0, "invalid version") \ -_ELF_DEFINE_VRNU(VER_DEF_CURRENT, 1, "current version") -#undef _ELF_DEFINE_VRNU -#define _ELF_DEFINE_VRNU(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_VERSIONING_NUMBERS() - VER_DEF__LAST__ -}; - -/** - ** Relocation types. - **/ - -#define _ELF_DEFINE_386_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_386_NONE, 0) \ -_ELF_DEFINE_RELOC(R_386_32, 1) \ -_ELF_DEFINE_RELOC(R_386_PC32, 2) \ -_ELF_DEFINE_RELOC(R_386_GOT32, 3) \ -_ELF_DEFINE_RELOC(R_386_PLT32, 4) \ -_ELF_DEFINE_RELOC(R_386_COPY, 5) \ -_ELF_DEFINE_RELOC(R_386_GLOB_DAT, 6) \ -_ELF_DEFINE_RELOC(R_386_JUMP_SLOT, 7) \ -_ELF_DEFINE_RELOC(R_386_RELATIVE, 8) \ -_ELF_DEFINE_RELOC(R_386_GOTOFF, 9) \ -_ELF_DEFINE_RELOC(R_386_GOTPC, 10) \ -_ELF_DEFINE_RELOC(R_386_32PLT, 11) \ -_ELF_DEFINE_RELOC(R_386_TLS_TPOFF, 14) \ -_ELF_DEFINE_RELOC(R_386_TLS_IE, 15) \ -_ELF_DEFINE_RELOC(R_386_TLS_GOTIE, 16) \ -_ELF_DEFINE_RELOC(R_386_TLS_LE, 17) \ -_ELF_DEFINE_RELOC(R_386_TLS_GD, 18) \ -_ELF_DEFINE_RELOC(R_386_TLS_LDM, 19) \ -_ELF_DEFINE_RELOC(R_386_16, 20) \ -_ELF_DEFINE_RELOC(R_386_PC16, 21) \ -_ELF_DEFINE_RELOC(R_386_8, 22) \ -_ELF_DEFINE_RELOC(R_386_PC8, 23) \ -_ELF_DEFINE_RELOC(R_386_TLS_GD_32, 24) \ -_ELF_DEFINE_RELOC(R_386_TLS_GD_PUSH, 25) \ -_ELF_DEFINE_RELOC(R_386_TLS_GD_CALL, 26) \ -_ELF_DEFINE_RELOC(R_386_TLS_GD_POP, 27) \ -_ELF_DEFINE_RELOC(R_386_TLS_LDM_32, 28) \ -_ELF_DEFINE_RELOC(R_386_TLS_LDM_PUSH, 29) \ -_ELF_DEFINE_RELOC(R_386_TLS_LDM_CALL, 30) \ -_ELF_DEFINE_RELOC(R_386_TLS_LDM_POP, 31) \ -_ELF_DEFINE_RELOC(R_386_TLS_LDO_32, 32) \ -_ELF_DEFINE_RELOC(R_386_TLS_IE_32, 33) \ -_ELF_DEFINE_RELOC(R_386_TLS_LE_32, 34) \ -_ELF_DEFINE_RELOC(R_386_TLS_DTPMOD32, 35) \ -_ELF_DEFINE_RELOC(R_386_TLS_DTPOFF32, 36) \ -_ELF_DEFINE_RELOC(R_386_TLS_TPOFF32, 37) \ -_ELF_DEFINE_RELOC(R_386_SIZE32, 38) \ -_ELF_DEFINE_RELOC(R_386_TLS_GOTDESC, 39) \ -_ELF_DEFINE_RELOC(R_386_TLS_DESC_CALL, 40) \ -_ELF_DEFINE_RELOC(R_386_TLS_DESC, 41) \ -_ELF_DEFINE_RELOC(R_386_IRELATIVE, 42) \ -_ELF_DEFINE_RELOC(R_386_GOT32X, 43) - - -/* - */ -#define _ELF_DEFINE_AARCH64_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_AARCH64_NONE, 0) \ -_ELF_DEFINE_RELOC(R_AARCH64_ABS64, 257) \ -_ELF_DEFINE_RELOC(R_AARCH64_ABS32, 258) \ -_ELF_DEFINE_RELOC(R_AARCH64_ABS16, 259) \ -_ELF_DEFINE_RELOC(R_AARCH64_PREL64, 260) \ -_ELF_DEFINE_RELOC(R_AARCH64_PREL32, 261) \ -_ELF_DEFINE_RELOC(R_AARCH64_PREL16, 262) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G0, 263) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G0_NC, 264) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G1, 265) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G1_NC, 266) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G2, 267) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G2_NC, 268) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_UABS_G3, 269) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_SABS_G0, 270) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_SABS_G1, 271) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_SABS_G2, 272) \ -_ELF_DEFINE_RELOC(R_AARCH64_LD_PREL_LO19, 273) \ -_ELF_DEFINE_RELOC(R_AARCH64_ADR_PREL_LO21, 274) \ -_ELF_DEFINE_RELOC(R_AARCH64_ADR_PREL_PG_HI21, 275) \ -_ELF_DEFINE_RELOC(R_AARCH64_ADR_PREL_PG_HI21_NC, 276) \ -_ELF_DEFINE_RELOC(R_AARCH64_ADD_ABS_LO12_NC, 277) \ -_ELF_DEFINE_RELOC(R_AARCH64_LDST8_ABS_LO12_NC, 278) \ -_ELF_DEFINE_RELOC(R_AARCH64_TSTBR14, 279) \ -_ELF_DEFINE_RELOC(R_AARCH64_CONDBR19, 280) \ -_ELF_DEFINE_RELOC(R_AARCH64_JUMP26, 282) \ -_ELF_DEFINE_RELOC(R_AARCH64_CALL26, 283) \ -_ELF_DEFINE_RELOC(R_AARCH64_LDST16_ABS_LO12_NC, 284) \ -_ELF_DEFINE_RELOC(R_AARCH64_LDST32_ABS_LO12_NC, 285) \ -_ELF_DEFINE_RELOC(R_AARCH64_LDST64_ABS_LO12_NC, 286) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G0, 287) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G0_NC, 288) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G1, 289) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G1_NC, 290) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G2, 291) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G2_NC, 292) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_PREL_G3, 293) \ -_ELF_DEFINE_RELOC(R_AARCH64_LDST128_ABS_LO12_NC, 299) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G0, 300) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G0_NC, 301) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G1, 302) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G1_NC, 303) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G2, 304) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G2_NC, 305) \ -_ELF_DEFINE_RELOC(R_AARCH64_MOVW_GOTOFF_G3, 306) \ -_ELF_DEFINE_RELOC(R_AARCH64_GOTREL64, 307) \ -_ELF_DEFINE_RELOC(R_AARCH64_GOTREL32, 308) \ -_ELF_DEFINE_RELOC(R_AARCH64_GOT_LD_PREL19, 309) \ -_ELF_DEFINE_RELOC(R_AARCH64_LD64_GOTOFF_LO15, 310) \ -_ELF_DEFINE_RELOC(R_AARCH64_ADR_GOT_PAGE, 311) \ -_ELF_DEFINE_RELOC(R_AARCH64_LD64_GOT_LO12_NC, 312) \ -_ELF_DEFINE_RELOC(R_AARCH64_LD64_GOTPAGE_LO15, 313) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSGD_ADR_PREL21, 512) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSGD_ADR_PAGE21, 513) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSGD_ADD_LO12_NC, 514) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSGD_MOVW_G1, 515) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSGD_MOVW_G0_NC, 516) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_ADR_PREL21, 517) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_ADR_PAGE21, 518) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_ADD_LO12_NC, 519) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_G1, 520) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_G0_NC, 521) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LD_PREL19, 522) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G2, 523) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G1, 524) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC, 525) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G0, 526) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC, 527) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_ADD_DTPREL_HI12, 529) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC, 530) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST8_DTPREL_LO12, 531) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, 532) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST16_DTPREL_LO12, 533) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC, 534) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST32_DTPREL_LO12, 535) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC, 536) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST64_DTPREL_LO12, 537) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC, 538) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 539) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 540) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 541) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 542) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 543) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G2, 544) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G1, 545) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 546) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G0, 547) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 548) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_ADD_TPREL_HI12, 549) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_ADD_TPREL_LO12, 550) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST8_TPREL_LO12, 552) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC, 553) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST16_TPREL_LO12, 554) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, 555) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST32_TPREL_LO12, 556) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, 557) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST64_TPREL_LO12, 558) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, 559) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_LD_PREL19, 560) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_ADR_PREL21, 561) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_ADR_PAGE21, 562) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_LD64_LO12, 563) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_ADD_LO12, 564) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_OFF_G1, 565) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_OFF_G0_NC, 566) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_LDR, 567) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_ADD, 568) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC_CALL, 569) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12, 570) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 571) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 572) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 573) \ -_ELF_DEFINE_RELOC(R_AARCH64_COPY, 1024) \ -_ELF_DEFINE_RELOC(R_AARCH64_GLOB_DAT, 1025) \ -_ELF_DEFINE_RELOC(R_AARCH64_JUMP_SLOT, 1026) \ -_ELF_DEFINE_RELOC(R_AARCH64_RELATIVE, 1027) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLS_DTPREL64, 1028) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLS_DTPMOD64, 1029) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLS_TPREL64, 1030) \ -_ELF_DEFINE_RELOC(R_AARCH64_TLSDESC, 1031) \ -_ELF_DEFINE_RELOC(R_AARCH64_IRELATIVE, 1032) - -/* - * These are the symbols used in the Sun ``Linkers and Loaders - * Guide'', Document No: 817-1984-17. See the X86_64 relocations list - * below for the spellings used in the ELF specification. - */ -#define _ELF_DEFINE_AMD64_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_AMD64_NONE, 0) \ -_ELF_DEFINE_RELOC(R_AMD64_64, 1) \ -_ELF_DEFINE_RELOC(R_AMD64_PC32, 2) \ -_ELF_DEFINE_RELOC(R_AMD64_GOT32, 3) \ -_ELF_DEFINE_RELOC(R_AMD64_PLT32, 4) \ -_ELF_DEFINE_RELOC(R_AMD64_COPY, 5) \ -_ELF_DEFINE_RELOC(R_AMD64_GLOB_DAT, 6) \ -_ELF_DEFINE_RELOC(R_AMD64_JUMP_SLOT, 7) \ -_ELF_DEFINE_RELOC(R_AMD64_RELATIVE, 8) \ -_ELF_DEFINE_RELOC(R_AMD64_GOTPCREL, 9) \ -_ELF_DEFINE_RELOC(R_AMD64_32, 10) \ -_ELF_DEFINE_RELOC(R_AMD64_32S, 11) \ -_ELF_DEFINE_RELOC(R_AMD64_16, 12) \ -_ELF_DEFINE_RELOC(R_AMD64_PC16, 13) \ -_ELF_DEFINE_RELOC(R_AMD64_8, 14) \ -_ELF_DEFINE_RELOC(R_AMD64_PC8, 15) \ -_ELF_DEFINE_RELOC(R_AMD64_PC64, 24) \ -_ELF_DEFINE_RELOC(R_AMD64_GOTOFF64, 25) \ -_ELF_DEFINE_RELOC(R_AMD64_GOTPC32, 26) - -/* - * Relocation definitions from the ARM ELF ABI, version "ARM IHI - * 0044E" released on 30th November 2012. - */ -#define _ELF_DEFINE_ARM_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_ARM_NONE, 0) \ -_ELF_DEFINE_RELOC(R_ARM_PC24, 1) \ -_ELF_DEFINE_RELOC(R_ARM_ABS32, 2) \ -_ELF_DEFINE_RELOC(R_ARM_REL32, 3) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_PC_G0, 4) \ -_ELF_DEFINE_RELOC(R_ARM_ABS16, 5) \ -_ELF_DEFINE_RELOC(R_ARM_ABS12, 6) \ -_ELF_DEFINE_RELOC(R_ARM_THM_ABS5, 7) \ -_ELF_DEFINE_RELOC(R_ARM_ABS8, 8) \ -_ELF_DEFINE_RELOC(R_ARM_SBREL32, 9) \ -_ELF_DEFINE_RELOC(R_ARM_THM_CALL, 10) \ -_ELF_DEFINE_RELOC(R_ARM_THM_PC8, 11) \ -_ELF_DEFINE_RELOC(R_ARM_BREL_ADJ, 12) \ -_ELF_DEFINE_RELOC(R_ARM_SWI24, 13) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_DESC, 13) \ -_ELF_DEFINE_RELOC(R_ARM_THM_SWI8, 14) \ -_ELF_DEFINE_RELOC(R_ARM_XPC25, 15) \ -_ELF_DEFINE_RELOC(R_ARM_THM_XPC22, 16) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_DTPMOD32, 17) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_DTPOFF32, 18) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_TPOFF32, 19) \ -_ELF_DEFINE_RELOC(R_ARM_COPY, 20) \ -_ELF_DEFINE_RELOC(R_ARM_GLOB_DAT, 21) \ -_ELF_DEFINE_RELOC(R_ARM_JUMP_SLOT, 22) \ -_ELF_DEFINE_RELOC(R_ARM_RELATIVE, 23) \ -_ELF_DEFINE_RELOC(R_ARM_GOTOFF32, 24) \ -_ELF_DEFINE_RELOC(R_ARM_BASE_PREL, 25) \ -_ELF_DEFINE_RELOC(R_ARM_GOT_BREL, 26) \ -_ELF_DEFINE_RELOC(R_ARM_PLT32, 27) \ -_ELF_DEFINE_RELOC(R_ARM_CALL, 28) \ -_ELF_DEFINE_RELOC(R_ARM_JUMP24, 29) \ -_ELF_DEFINE_RELOC(R_ARM_THM_JUMP24, 30) \ -_ELF_DEFINE_RELOC(R_ARM_BASE_ABS, 31) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PCREL_7_0, 32) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PCREL_15_8, 33) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PCREL_23_15, 34) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_SBREL_11_0_NC, 35) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SBREL_19_12_NC, 36) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SBREL_27_20_CK, 37) \ -_ELF_DEFINE_RELOC(R_ARM_TARGET1, 38) \ -_ELF_DEFINE_RELOC(R_ARM_SBREL31, 39) \ -_ELF_DEFINE_RELOC(R_ARM_V4BX, 40) \ -_ELF_DEFINE_RELOC(R_ARM_TARGET2, 41) \ -_ELF_DEFINE_RELOC(R_ARM_PREL31, 42) \ -_ELF_DEFINE_RELOC(R_ARM_MOVW_ABS_NC, 43) \ -_ELF_DEFINE_RELOC(R_ARM_MOVT_ABS, 44) \ -_ELF_DEFINE_RELOC(R_ARM_MOVW_PREL_NC, 45) \ -_ELF_DEFINE_RELOC(R_ARM_MOVT_PREL, 46) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVW_ABS_NC, 47) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVT_ABS, 48) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVW_PREL_NC, 49) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVT_PREL, 50) \ -_ELF_DEFINE_RELOC(R_ARM_THM_JUMP19, 51) \ -_ELF_DEFINE_RELOC(R_ARM_THM_JUMP6, 52) \ -_ELF_DEFINE_RELOC(R_ARM_THM_ALU_PREL_11_0, 53) \ -_ELF_DEFINE_RELOC(R_ARM_THM_PC12, 54) \ -_ELF_DEFINE_RELOC(R_ARM_ABS32_NOI, 55) \ -_ELF_DEFINE_RELOC(R_ARM_REL32_NOI, 56) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PC_G0_NC, 57) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PC_G0, 58) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PC_G1_NC, 59) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PC_G1, 60) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_PC_G2, 61) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_PC_G1, 62) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_PC_G2, 63) \ -_ELF_DEFINE_RELOC(R_ARM_LDRS_PC_G0, 64) \ -_ELF_DEFINE_RELOC(R_ARM_LDRS_PC_G1, 65) \ -_ELF_DEFINE_RELOC(R_ARM_LDRS_PC_G2, 66) \ -_ELF_DEFINE_RELOC(R_ARM_LDC_PC_G0, 67) \ -_ELF_DEFINE_RELOC(R_ARM_LDC_PC_G1, 68) \ -_ELF_DEFINE_RELOC(R_ARM_LDC_PC_G2, 69) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SB_G0_NC, 70) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SB_G0, 71) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SB_G1_NC, 72) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SB_G1, 73) \ -_ELF_DEFINE_RELOC(R_ARM_ALU_SB_G2, 74) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_SB_G0, 75) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_SB_G1, 76) \ -_ELF_DEFINE_RELOC(R_ARM_LDR_SB_G2, 77) \ -_ELF_DEFINE_RELOC(R_ARM_LDRS_SB_G0, 78) \ -_ELF_DEFINE_RELOC(R_ARM_LDRS_SB_G1, 79) \ -_ELF_DEFINE_RELOC(R_ARM_LDRS_SB_G2, 80) \ -_ELF_DEFINE_RELOC(R_ARM_LDC_SB_G0, 81) \ -_ELF_DEFINE_RELOC(R_ARM_LDC_SB_G1, 82) \ -_ELF_DEFINE_RELOC(R_ARM_LDC_SB_G2, 83) \ -_ELF_DEFINE_RELOC(R_ARM_MOVW_BREL_NC, 84) \ -_ELF_DEFINE_RELOC(R_ARM_MOVT_BREL, 85) \ -_ELF_DEFINE_RELOC(R_ARM_MOVW_BREL, 86) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVW_BREL_NC, 87) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVT_BREL, 88) \ -_ELF_DEFINE_RELOC(R_ARM_THM_MOVW_BREL, 89) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_GOTDESC, 90) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_CALL, 91) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_DESCSEQ, 92) \ -_ELF_DEFINE_RELOC(R_ARM_THM_TLS_CALL, 93) \ -_ELF_DEFINE_RELOC(R_ARM_PLT32_ABS, 94) \ -_ELF_DEFINE_RELOC(R_ARM_GOT_ABS, 95) \ -_ELF_DEFINE_RELOC(R_ARM_GOT_PREL, 96) \ -_ELF_DEFINE_RELOC(R_ARM_GOT_BREL12, 97) \ -_ELF_DEFINE_RELOC(R_ARM_GOTOFF12, 98) \ -_ELF_DEFINE_RELOC(R_ARM_GOTRELAX, 99) \ -_ELF_DEFINE_RELOC(R_ARM_GNU_VTENTRY, 100) \ -_ELF_DEFINE_RELOC(R_ARM_GNU_VTINHERIT, 101) \ -_ELF_DEFINE_RELOC(R_ARM_THM_JUMP11, 102) \ -_ELF_DEFINE_RELOC(R_ARM_THM_JUMP8, 103) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_GD32, 104) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_LDM32, 105) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_LDO32, 106) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_IE32, 107) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_LE32, 108) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_LDO12, 109) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_LE12, 110) \ -_ELF_DEFINE_RELOC(R_ARM_TLS_IE12GP, 111) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_0, 112) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_1, 113) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_2, 114) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_3, 115) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_4, 116) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_5, 117) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_6, 118) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_7, 119) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_8, 120) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_9, 121) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_10, 122) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_11, 123) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_12, 124) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_13, 125) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_14, 126) \ -_ELF_DEFINE_RELOC(R_ARM_PRIVATE_15, 127) \ -_ELF_DEFINE_RELOC(R_ARM_ME_TOO, 128) \ -_ELF_DEFINE_RELOC(R_ARM_THM_TLS_DESCSEQ16, 129) \ -_ELF_DEFINE_RELOC(R_ARM_THM_TLS_DESCSEQ32, 130) \ -_ELF_DEFINE_RELOC(R_ARM_THM_GOT_BREL12, 131) \ -_ELF_DEFINE_RELOC(R_ARM_IRELATIVE, 140) - -#define _ELF_DEFINE_IA64_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_IA_64_NONE, 0) \ -_ELF_DEFINE_RELOC(R_IA_64_IMM14, 0x21) \ -_ELF_DEFINE_RELOC(R_IA_64_IMM22, 0x22) \ -_ELF_DEFINE_RELOC(R_IA_64_IMM64, 0x23) \ -_ELF_DEFINE_RELOC(R_IA_64_DIR32MSB, 0x24) \ -_ELF_DEFINE_RELOC(R_IA_64_DIR32LSB, 0x25) \ -_ELF_DEFINE_RELOC(R_IA_64_DIR64MSB, 0x26) \ -_ELF_DEFINE_RELOC(R_IA_64_DIR64LSB, 0x27) \ -_ELF_DEFINE_RELOC(R_IA_64_GPREL22, 0x2a) \ -_ELF_DEFINE_RELOC(R_IA_64_GPREL64I, 0x2b) \ -_ELF_DEFINE_RELOC(R_IA_64_GPREL32MSB, 0x2c) \ -_ELF_DEFINE_RELOC(R_IA_64_GPREL32LSB, 0x2d) \ -_ELF_DEFINE_RELOC(R_IA_64_GPREL64MSB, 0x2e) \ -_ELF_DEFINE_RELOC(R_IA_64_GPREL64LSB, 0x2f) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF22, 0x32) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF64I, 0x33) \ -_ELF_DEFINE_RELOC(R_IA_64_PLTOFF22, 0x3a) \ -_ELF_DEFINE_RELOC(R_IA_64_PLTOFF64I, 0x3b) \ -_ELF_DEFINE_RELOC(R_IA_64_PLTOFF64MSB, 0x3e) \ -_ELF_DEFINE_RELOC(R_IA_64_PLTOFF64LSB, 0x3f) \ -_ELF_DEFINE_RELOC(R_IA_64_FPTR64I, 0x43) \ -_ELF_DEFINE_RELOC(R_IA_64_FPTR32MSB, 0x44) \ -_ELF_DEFINE_RELOC(R_IA_64_FPTR32LSB, 0x45) \ -_ELF_DEFINE_RELOC(R_IA_64_FPTR64MSB, 0x46) \ -_ELF_DEFINE_RELOC(R_IA_64_FPTR64LSB, 0x47) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL60B, 0x48) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL21B, 0x49) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL21M, 0x4a) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL21F, 0x4b) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL32MSB, 0x4c) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL32LSB, 0x4d) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL64MSB, 0x4e) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL64LSB, 0x4f) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_FPTR22, 0x52) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_FPTR64I, 0x53) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_FPTR32MSB, 0x54) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_FPTR32LSB, 0x55) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_FPTR64MSB, 0x56) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_FPTR64LSB, 0x57) \ -_ELF_DEFINE_RELOC(R_IA_64_SEGREL32MSB, 0x5c) \ -_ELF_DEFINE_RELOC(R_IA_64_SEGREL32LSB, 0x5d) \ -_ELF_DEFINE_RELOC(R_IA_64_SEGREL64MSB, 0x5e) \ -_ELF_DEFINE_RELOC(R_IA_64_SEGREL64LSB, 0x5f) \ -_ELF_DEFINE_RELOC(R_IA_64_SECREL32MSB, 0x64) \ -_ELF_DEFINE_RELOC(R_IA_64_SECREL32LSB, 0x65) \ -_ELF_DEFINE_RELOC(R_IA_64_SECREL64MSB, 0x66) \ -_ELF_DEFINE_RELOC(R_IA_64_SECREL64LSB, 0x67) \ -_ELF_DEFINE_RELOC(R_IA_64_REL32MSB, 0x6c) \ -_ELF_DEFINE_RELOC(R_IA_64_REL32LSB, 0x6d) \ -_ELF_DEFINE_RELOC(R_IA_64_REL64MSB, 0x6e) \ -_ELF_DEFINE_RELOC(R_IA_64_REL64LSB, 0x6f) \ -_ELF_DEFINE_RELOC(R_IA_64_LTV32MSB, 0x74) \ -_ELF_DEFINE_RELOC(R_IA_64_LTV32LSB, 0x75) \ -_ELF_DEFINE_RELOC(R_IA_64_LTV64MSB, 0x76) \ -_ELF_DEFINE_RELOC(R_IA_64_LTV64LSB, 0x77) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL21BI, 0x79) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL22, 0x7A) \ -_ELF_DEFINE_RELOC(R_IA_64_PCREL64I, 0x7B) \ -_ELF_DEFINE_RELOC(R_IA_64_IPLTMSB, 0x80) \ -_ELF_DEFINE_RELOC(R_IA_64_IPLTLSB, 0x81) \ -_ELF_DEFINE_RELOC(R_IA_64_SUB, 0x85) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF22X, 0x86) \ -_ELF_DEFINE_RELOC(R_IA_64_LDXMOV, 0x87) \ -_ELF_DEFINE_RELOC(R_IA_64_TPREL14, 0x91) \ -_ELF_DEFINE_RELOC(R_IA_64_TPREL22, 0x92) \ -_ELF_DEFINE_RELOC(R_IA_64_TPREL64I, 0x93) \ -_ELF_DEFINE_RELOC(R_IA_64_TPREL64MSB, 0x96) \ -_ELF_DEFINE_RELOC(R_IA_64_TPREL64LSB, 0x97) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_TPREL22, 0x9A) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPMOD64MSB, 0xA6) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPMOD64LSB, 0xA7) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_DTPMOD22, 0xAA) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL14, 0xB1) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL22, 0xB2) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL64I, 0xB3) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL32MSB, 0xB4) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL32LSB, 0xB5) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL64MSB, 0xB6) \ -_ELF_DEFINE_RELOC(R_IA_64_DTPREL64LSB, 0xB7) \ -_ELF_DEFINE_RELOC(R_IA_64_LTOFF_DTPREL22, 0xBA) - -#define _ELF_DEFINE_MIPS_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_MIPS_NONE, 0) \ -_ELF_DEFINE_RELOC(R_MIPS_16, 1) \ -_ELF_DEFINE_RELOC(R_MIPS_32, 2) \ -_ELF_DEFINE_RELOC(R_MIPS_REL32, 3) \ -_ELF_DEFINE_RELOC(R_MIPS_26, 4) \ -_ELF_DEFINE_RELOC(R_MIPS_HI16, 5) \ -_ELF_DEFINE_RELOC(R_MIPS_LO16, 6) \ -_ELF_DEFINE_RELOC(R_MIPS_GPREL16, 7) \ -_ELF_DEFINE_RELOC(R_MIPS_LITERAL, 8) \ -_ELF_DEFINE_RELOC(R_MIPS_GOT16, 9) \ -_ELF_DEFINE_RELOC(R_MIPS_PC16, 10) \ -_ELF_DEFINE_RELOC(R_MIPS_CALL16, 11) \ -_ELF_DEFINE_RELOC(R_MIPS_GPREL32, 12) \ -_ELF_DEFINE_RELOC(R_MIPS_SHIFT5, 16) \ -_ELF_DEFINE_RELOC(R_MIPS_SHIFT6, 17) \ -_ELF_DEFINE_RELOC(R_MIPS_64, 18) \ -_ELF_DEFINE_RELOC(R_MIPS_GOT_DISP, 19) \ -_ELF_DEFINE_RELOC(R_MIPS_GOT_PAGE, 20) \ -_ELF_DEFINE_RELOC(R_MIPS_GOT_OFST, 21) \ -_ELF_DEFINE_RELOC(R_MIPS_GOT_HI16, 22) \ -_ELF_DEFINE_RELOC(R_MIPS_GOT_LO16, 23) \ -_ELF_DEFINE_RELOC(R_MIPS_SUB, 24) \ -_ELF_DEFINE_RELOC(R_MIPS_CALLHI16, 30) \ -_ELF_DEFINE_RELOC(R_MIPS_CALLLO16, 31) \ -_ELF_DEFINE_RELOC(R_MIPS_JALR, 37) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPMOD32, 38) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL32, 39) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPMOD64, 40) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL64, 41) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_GD, 42) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_LDM, 43) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL_HI16, 44) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_DTPREL_LO16, 45) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_GOTTPREL, 46) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL32, 47) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL64, 48) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL_HI16, 49) \ -_ELF_DEFINE_RELOC(R_MIPS_TLS_TPREL_LO16, 50) - -#define _ELF_DEFINE_PPC32_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_PPC_NONE, 0) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR32, 1) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR24, 2) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR16, 3) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR16_LO, 4) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR16_HI, 5) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR16_HA, 6) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR14, 7) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR14_BRTAKEN, 8) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR14_BRNTAKEN, 9) \ -_ELF_DEFINE_RELOC(R_PPC_REL24, 10) \ -_ELF_DEFINE_RELOC(R_PPC_REL14, 11) \ -_ELF_DEFINE_RELOC(R_PPC_REL14_BRTAKEN, 12) \ -_ELF_DEFINE_RELOC(R_PPC_REL14_BRNTAKEN, 13) \ -_ELF_DEFINE_RELOC(R_PPC_GOT16, 14) \ -_ELF_DEFINE_RELOC(R_PPC_GOT16_LO, 15) \ -_ELF_DEFINE_RELOC(R_PPC_GOT16_HI, 16) \ -_ELF_DEFINE_RELOC(R_PPC_GOT16_HA, 17) \ -_ELF_DEFINE_RELOC(R_PPC_PLTREL24, 18) \ -_ELF_DEFINE_RELOC(R_PPC_COPY, 19) \ -_ELF_DEFINE_RELOC(R_PPC_GLOB_DAT, 20) \ -_ELF_DEFINE_RELOC(R_PPC_JMP_SLOT, 21) \ -_ELF_DEFINE_RELOC(R_PPC_RELATIVE, 22) \ -_ELF_DEFINE_RELOC(R_PPC_LOCAL24PC, 23) \ -_ELF_DEFINE_RELOC(R_PPC_UADDR32, 24) \ -_ELF_DEFINE_RELOC(R_PPC_UADDR16, 25) \ -_ELF_DEFINE_RELOC(R_PPC_REL32, 26) \ -_ELF_DEFINE_RELOC(R_PPC_PLT32, 27) \ -_ELF_DEFINE_RELOC(R_PPC_PLTREL32, 28) \ -_ELF_DEFINE_RELOC(R_PPC_PLT16_LO, 29) \ -_ELF_DEFINE_RELOC(R_PPC_PLT16_HI, 30) \ -_ELF_DEFINE_RELOC(R_PPC_PLT16_HA, 31) \ -_ELF_DEFINE_RELOC(R_PPC_SDAREL16, 32) \ -_ELF_DEFINE_RELOC(R_PPC_SECTOFF, 33) \ -_ELF_DEFINE_RELOC(R_PPC_SECTOFF_LO, 34) \ -_ELF_DEFINE_RELOC(R_PPC_SECTOFF_HI, 35) \ -_ELF_DEFINE_RELOC(R_PPC_SECTOFF_HA, 36) \ -_ELF_DEFINE_RELOC(R_PPC_ADDR30, 37) \ -_ELF_DEFINE_RELOC(R_PPC_TLS, 67) \ -_ELF_DEFINE_RELOC(R_PPC_DTPMOD32, 68) \ -_ELF_DEFINE_RELOC(R_PPC_TPREL16, 69) \ -_ELF_DEFINE_RELOC(R_PPC_TPREL16_LO, 70) \ -_ELF_DEFINE_RELOC(R_PPC_TPREL16_HI, 71) \ -_ELF_DEFINE_RELOC(R_PPC_TPREL16_HA, 72) \ -_ELF_DEFINE_RELOC(R_PPC_TPREL32, 73) \ -_ELF_DEFINE_RELOC(R_PPC_DTPREL16, 74) \ -_ELF_DEFINE_RELOC(R_PPC_DTPREL16_LO, 75) \ -_ELF_DEFINE_RELOC(R_PPC_DTPREL16_HI, 76) \ -_ELF_DEFINE_RELOC(R_PPC_DTPREL16_HA, 77) \ -_ELF_DEFINE_RELOC(R_PPC_DTPREL32, 78) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSGD16, 79) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSGD16_LO, 80) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSGD16_HI, 81) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSGD16_HA, 82) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSLD16, 83) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSLD16_LO, 84) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSLD16_HI, 85) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TLSLD16_HA, 86) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TPREL16, 87) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TPREL16_LO, 88) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TPREL16_HI, 89) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_TPREL16_HA, 90) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_DTPREL16, 91) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_DTPREL16_LO, 92) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_DTPREL16_HI, 93) \ -_ELF_DEFINE_RELOC(R_PPC_GOT_DTPREL16_HA, 94) \ -_ELF_DEFINE_RELOC(R_PPC_TLSGD, 95) \ -_ELF_DEFINE_RELOC(R_PPC_TLSLD, 96) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_NADDR32, 101) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_NADDR16, 102) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_NADDR16_LO, 103) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_NADDR16_HI, 104) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_NADDR16_HA, 105) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_SDAI16, 106) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_SDA2I16, 107) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_SDA2REL, 108) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_SDA21, 109) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_MRKREF, 110) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_RELSEC16, 111) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_RELST_LO, 112) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_RELST_HI, 113) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_RELST_HA, 114) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_BIT_FLD, 115) \ -_ELF_DEFINE_RELOC(R_PPC_EMB_RELSDA, 116) \ - -#define _ELF_DEFINE_PPC64_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_PPC64_NONE, 0) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR32, 1) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR24, 2) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16, 3) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_LO, 4) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_HI, 5) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_HA, 6) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR14, 7) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR14_BRTAKEN, 8) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR14_BRNTAKEN, 9) \ -_ELF_DEFINE_RELOC(R_PPC64_REL24, 10) \ -_ELF_DEFINE_RELOC(R_PPC64_REL14, 11) \ -_ELF_DEFINE_RELOC(R_PPC64_REL14_BRTAKEN, 12) \ -_ELF_DEFINE_RELOC(R_PPC64_REL14_BRNTAKEN, 13) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT16, 14) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT16_LO, 15) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT16_HI, 16) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT16_HA, 17) \ -_ELF_DEFINE_RELOC(R_PPC64_COPY, 19) \ -_ELF_DEFINE_RELOC(R_PPC64_GLOB_DAT, 20) \ -_ELF_DEFINE_RELOC(R_PPC64_JMP_SLOT, 21) \ -_ELF_DEFINE_RELOC(R_PPC64_RELATIVE, 22) \ -_ELF_DEFINE_RELOC(R_PPC64_UADDR32, 24) \ -_ELF_DEFINE_RELOC(R_PPC64_UADDR16, 25) \ -_ELF_DEFINE_RELOC(R_PPC64_REL32, 26) \ -_ELF_DEFINE_RELOC(R_PPC64_PLT32, 27) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTREL32, 28) \ -_ELF_DEFINE_RELOC(R_PPC64_PLT16_LO, 29) \ -_ELF_DEFINE_RELOC(R_PPC64_PLT16_HI, 30) \ -_ELF_DEFINE_RELOC(R_PPC64_PLT16_HA, 31) \ -_ELF_DEFINE_RELOC(R_PPC64_SECTOFF, 33) \ -_ELF_DEFINE_RELOC(R_PPC64_SECTOFF_LO, 34) \ -_ELF_DEFINE_RELOC(R_PPC64_SECTOFF_HI, 35) \ -_ELF_DEFINE_RELOC(R_PPC64_SECTOFF_HA, 36) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR30, 37) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR64, 38) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_HIGHER, 39) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_HIGHERA, 40) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_HIGHEST, 41) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_HIGHESTA, 42) \ -_ELF_DEFINE_RELOC(R_PPC64_UADDR64, 43) \ -_ELF_DEFINE_RELOC(R_PPC64_REL64, 44) \ -_ELF_DEFINE_RELOC(R_PPC64_PLT64, 45) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTREL64, 46) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC16, 47) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC16_LO, 48) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC16_HI, 49) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC16_HA, 50) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC, 51) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTGOT16, 52) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTGOT16_LO, 53) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTGOT16_HI, 54) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTGOT16_HA, 55) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_DS, 56) \ -_ELF_DEFINE_RELOC(R_PPC64_ADDR16_LO_DS, 57) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT16_DS, 58) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT16_LO_DS, 59) \ -_ELF_DEFINE_RELOC(R_PPC64_PLT16_LO_DS, 60) \ -_ELF_DEFINE_RELOC(R_PPC64_SECTOFF_DS, 61) \ -_ELF_DEFINE_RELOC(R_PPC64_SECTOFF_LO_DS, 62) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC16_DS, 63) \ -_ELF_DEFINE_RELOC(R_PPC64_TOC16_LO_DS, 64) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTGOT16_DS, 65) \ -_ELF_DEFINE_RELOC(R_PPC64_PLTGOT16_LO_DS, 66) \ -_ELF_DEFINE_RELOC(R_PPC64_TLS, 67) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPMOD64, 68) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16, 69) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_LO, 60) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_HI, 71) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_HA, 72) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL64, 73) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16, 74) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_LO, 75) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HI, 76) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HA, 77) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL64, 78) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSGD16, 79) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSGD16_LO, 80) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSGD16_HI, 81) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSGD16_HA, 82) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSLD16, 83) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSLD16_LO, 84) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSLD16_HI, 85) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TLSLD16_HA, 86) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TPREL16_DS, 87) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TPREL16_LO_DS, 88) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TPREL16_HI, 89) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_TPREL16_HA, 90) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_DTPREL16_DS, 91) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_DTPREL16_LO_DS, 92) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_DTPREL16_HI, 93) \ -_ELF_DEFINE_RELOC(R_PPC64_GOT_DTPREL16_HA, 94) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_DS, 95) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_LO_DS, 96) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_HIGHER, 97) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_HIGHERA, 98) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_HIGHEST, 99) \ -_ELF_DEFINE_RELOC(R_PPC64_TPREL16_HIGHESTA, 100) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_DS, 101) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_LO_DS, 102) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HIGHER, 103) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HIGHERA, 104) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HIGHEST, 105) \ -_ELF_DEFINE_RELOC(R_PPC64_DTPREL16_HIGHESTA, 106) \ -_ELF_DEFINE_RELOC(R_PPC64_TLSGD, 107) \ -_ELF_DEFINE_RELOC(R_PPC64_TLSLD, 108) - -#define _ELF_DEFINE_RISCV_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_RISCV_NONE, 0) \ -_ELF_DEFINE_RELOC(R_RISCV_32, 1) \ -_ELF_DEFINE_RELOC(R_RISCV_64, 2) \ -_ELF_DEFINE_RELOC(R_RISCV_RELATIVE, 3) \ -_ELF_DEFINE_RELOC(R_RISCV_COPY, 4) \ -_ELF_DEFINE_RELOC(R_RISCV_JUMP_SLOT, 5) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPMOD32, 6) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPMOD64, 7) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPREL32, 8) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_DTPREL64, 9) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_TPREL32, 10) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_TPREL64, 11) \ -_ELF_DEFINE_RELOC(R_RISCV_BRANCH, 16) \ -_ELF_DEFINE_RELOC(R_RISCV_JAL, 17) \ -_ELF_DEFINE_RELOC(R_RISCV_CALL, 18) \ -_ELF_DEFINE_RELOC(R_RISCV_CALL_PLT, 19) \ -_ELF_DEFINE_RELOC(R_RISCV_GOT_HI20, 20) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_GOT_HI20, 21) \ -_ELF_DEFINE_RELOC(R_RISCV_TLS_GD_HI20, 22) \ -_ELF_DEFINE_RELOC(R_RISCV_PCREL_HI20, 23) \ -_ELF_DEFINE_RELOC(R_RISCV_PCREL_LO12_I, 24) \ -_ELF_DEFINE_RELOC(R_RISCV_PCREL_LO12_S, 25) \ -_ELF_DEFINE_RELOC(R_RISCV_HI20, 26) \ -_ELF_DEFINE_RELOC(R_RISCV_LO12_I, 27) \ -_ELF_DEFINE_RELOC(R_RISCV_LO12_S, 28) \ -_ELF_DEFINE_RELOC(R_RISCV_TPREL_HI20, 29) \ -_ELF_DEFINE_RELOC(R_RISCV_TPREL_LO12_I, 30) \ -_ELF_DEFINE_RELOC(R_RISCV_TPREL_LO12_S, 31) \ -_ELF_DEFINE_RELOC(R_RISCV_TPREL_ADD, 32) \ -_ELF_DEFINE_RELOC(R_RISCV_ADD8, 33) \ -_ELF_DEFINE_RELOC(R_RISCV_ADD16, 34) \ -_ELF_DEFINE_RELOC(R_RISCV_ADD32, 35) \ -_ELF_DEFINE_RELOC(R_RISCV_ADD64, 36) \ -_ELF_DEFINE_RELOC(R_RISCV_SUB8, 37) \ -_ELF_DEFINE_RELOC(R_RISCV_SUB16, 38) \ -_ELF_DEFINE_RELOC(R_RISCV_SUB32, 39) \ -_ELF_DEFINE_RELOC(R_RISCV_SUB64, 40) \ -_ELF_DEFINE_RELOC(R_RISCV_GNU_VTINHERIT, 41) \ -_ELF_DEFINE_RELOC(R_RISCV_GNU_VTENTRY, 42) \ -_ELF_DEFINE_RELOC(R_RISCV_ALIGN, 43) \ -_ELF_DEFINE_RELOC(R_RISCV_RVC_BRANCH, 44) \ -_ELF_DEFINE_RELOC(R_RISCV_RVC_JUMP, 45) \ -_ELF_DEFINE_RELOC(R_RISCV_RVC_LUI, 46) \ -_ELF_DEFINE_RELOC(R_RISCV_GPREL_I, 47) \ -_ELF_DEFINE_RELOC(R_RISCV_GPREL_S, 48) \ -_ELF_DEFINE_RELOC(R_RISCV_TPREL_I, 49) \ -_ELF_DEFINE_RELOC(R_RISCV_TPREL_S, 50) \ -_ELF_DEFINE_RELOC(R_RISCV_RELAX, 51) \ -_ELF_DEFINE_RELOC(R_RISCV_SUB6, 52) \ -_ELF_DEFINE_RELOC(R_RISCV_SET6, 53) \ -_ELF_DEFINE_RELOC(R_RISCV_SET8, 54) \ -_ELF_DEFINE_RELOC(R_RISCV_SET16, 55) \ -_ELF_DEFINE_RELOC(R_RISCV_SET32, 56) \ -_ELF_DEFINE_RELOC(R_RISCV_32_PCREL, 57) \ -_ELF_DEFINE_RELOC(R_RISCV_IRELATIVE, 58) - -#define _ELF_DEFINE_SPARC_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_SPARC_NONE, 0) \ -_ELF_DEFINE_RELOC(R_SPARC_8, 1) \ -_ELF_DEFINE_RELOC(R_SPARC_16, 2) \ -_ELF_DEFINE_RELOC(R_SPARC_32, 3) \ -_ELF_DEFINE_RELOC(R_SPARC_DISP8, 4) \ -_ELF_DEFINE_RELOC(R_SPARC_DISP16, 5) \ -_ELF_DEFINE_RELOC(R_SPARC_DISP32, 6) \ -_ELF_DEFINE_RELOC(R_SPARC_WDISP30, 7) \ -_ELF_DEFINE_RELOC(R_SPARC_WDISP22, 8) \ -_ELF_DEFINE_RELOC(R_SPARC_HI22, 9) \ -_ELF_DEFINE_RELOC(R_SPARC_22, 10) \ -_ELF_DEFINE_RELOC(R_SPARC_13, 11) \ -_ELF_DEFINE_RELOC(R_SPARC_LO10, 12) \ -_ELF_DEFINE_RELOC(R_SPARC_GOT10, 13) \ -_ELF_DEFINE_RELOC(R_SPARC_GOT13, 14) \ -_ELF_DEFINE_RELOC(R_SPARC_GOT22, 15) \ -_ELF_DEFINE_RELOC(R_SPARC_PC10, 16) \ -_ELF_DEFINE_RELOC(R_SPARC_PC22, 17) \ -_ELF_DEFINE_RELOC(R_SPARC_WPLT30, 18) \ -_ELF_DEFINE_RELOC(R_SPARC_COPY, 19) \ -_ELF_DEFINE_RELOC(R_SPARC_GLOB_DAT, 20) \ -_ELF_DEFINE_RELOC(R_SPARC_JMP_SLOT, 21) \ -_ELF_DEFINE_RELOC(R_SPARC_RELATIVE, 22) \ -_ELF_DEFINE_RELOC(R_SPARC_UA32, 23) \ -_ELF_DEFINE_RELOC(R_SPARC_PLT32, 24) \ -_ELF_DEFINE_RELOC(R_SPARC_HIPLT22, 25) \ -_ELF_DEFINE_RELOC(R_SPARC_LOPLT10, 26) \ -_ELF_DEFINE_RELOC(R_SPARC_PCPLT32, 27) \ -_ELF_DEFINE_RELOC(R_SPARC_PCPLT22, 28) \ -_ELF_DEFINE_RELOC(R_SPARC_PCPLT10, 29) \ -_ELF_DEFINE_RELOC(R_SPARC_10, 30) \ -_ELF_DEFINE_RELOC(R_SPARC_11, 31) \ -_ELF_DEFINE_RELOC(R_SPARC_64, 32) \ -_ELF_DEFINE_RELOC(R_SPARC_OLO10, 33) \ -_ELF_DEFINE_RELOC(R_SPARC_HH22, 34) \ -_ELF_DEFINE_RELOC(R_SPARC_HM10, 35) \ -_ELF_DEFINE_RELOC(R_SPARC_LM22, 36) \ -_ELF_DEFINE_RELOC(R_SPARC_PC_HH22, 37) \ -_ELF_DEFINE_RELOC(R_SPARC_PC_HM10, 38) \ -_ELF_DEFINE_RELOC(R_SPARC_PC_LM22, 39) \ -_ELF_DEFINE_RELOC(R_SPARC_WDISP16, 40) \ -_ELF_DEFINE_RELOC(R_SPARC_WDISP19, 41) \ -_ELF_DEFINE_RELOC(R_SPARC_GLOB_JMP, 42) \ -_ELF_DEFINE_RELOC(R_SPARC_7, 43) \ -_ELF_DEFINE_RELOC(R_SPARC_5, 44) \ -_ELF_DEFINE_RELOC(R_SPARC_6, 45) \ -_ELF_DEFINE_RELOC(R_SPARC_DISP64, 46) \ -_ELF_DEFINE_RELOC(R_SPARC_PLT64, 47) \ -_ELF_DEFINE_RELOC(R_SPARC_HIX22, 48) \ -_ELF_DEFINE_RELOC(R_SPARC_LOX10, 49) \ -_ELF_DEFINE_RELOC(R_SPARC_H44, 50) \ -_ELF_DEFINE_RELOC(R_SPARC_M44, 51) \ -_ELF_DEFINE_RELOC(R_SPARC_L44, 52) \ -_ELF_DEFINE_RELOC(R_SPARC_REGISTER, 53) \ -_ELF_DEFINE_RELOC(R_SPARC_UA64, 54) \ -_ELF_DEFINE_RELOC(R_SPARC_UA16, 55) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_GD_HI22, 56) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_GD_LO10, 57) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_GD_ADD, 58) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_GD_CALL, 59) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDM_HI22, 60) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDM_LO10, 61) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDM_ADD, 62) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDM_CALL, 63) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDO_HIX22, 64) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDO_LOX10, 65) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LDO_ADD, 66) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_IE_HI22, 67) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_IE_LO10, 68) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_IE_LD, 69) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_IE_LDX, 70) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_IE_ADD, 71) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LE_HIX22, 72) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_LE_LOX10, 73) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_DTPMOD32, 74) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_DTPMOD64, 75) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_DTPOFF32, 76) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_DTPOFF64, 77) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_TPOFF32, 78) \ -_ELF_DEFINE_RELOC(R_SPARC_TLS_TPOFF64, 79) \ -_ELF_DEFINE_RELOC(R_SPARC_GOTDATA_HIX22, 80) \ -_ELF_DEFINE_RELOC(R_SPARC_GOTDATA_LOX10, 81) \ -_ELF_DEFINE_RELOC(R_SPARC_GOTDATA_OP_HIX22, 82) \ -_ELF_DEFINE_RELOC(R_SPARC_GOTDATA_OP_LOX10, 83) \ -_ELF_DEFINE_RELOC(R_SPARC_GOTDATA_OP, 84) \ -_ELF_DEFINE_RELOC(R_SPARC_H34, 85) - -#define _ELF_DEFINE_X86_64_RELOCATIONS() \ -_ELF_DEFINE_RELOC(R_X86_64_NONE, 0) \ -_ELF_DEFINE_RELOC(R_X86_64_64, 1) \ -_ELF_DEFINE_RELOC(R_X86_64_PC32, 2) \ -_ELF_DEFINE_RELOC(R_X86_64_GOT32, 3) \ -_ELF_DEFINE_RELOC(R_X86_64_PLT32, 4) \ -_ELF_DEFINE_RELOC(R_X86_64_COPY, 5) \ -_ELF_DEFINE_RELOC(R_X86_64_GLOB_DAT, 6) \ -_ELF_DEFINE_RELOC(R_X86_64_JUMP_SLOT, 7) \ -_ELF_DEFINE_RELOC(R_X86_64_RELATIVE, 8) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPCREL, 9) \ -_ELF_DEFINE_RELOC(R_X86_64_32, 10) \ -_ELF_DEFINE_RELOC(R_X86_64_32S, 11) \ -_ELF_DEFINE_RELOC(R_X86_64_16, 12) \ -_ELF_DEFINE_RELOC(R_X86_64_PC16, 13) \ -_ELF_DEFINE_RELOC(R_X86_64_8, 14) \ -_ELF_DEFINE_RELOC(R_X86_64_PC8, 15) \ -_ELF_DEFINE_RELOC(R_X86_64_DTPMOD64, 16) \ -_ELF_DEFINE_RELOC(R_X86_64_DTPOFF64, 17) \ -_ELF_DEFINE_RELOC(R_X86_64_TPOFF64, 18) \ -_ELF_DEFINE_RELOC(R_X86_64_TLSGD, 19) \ -_ELF_DEFINE_RELOC(R_X86_64_TLSLD, 20) \ -_ELF_DEFINE_RELOC(R_X86_64_DTPOFF32, 21) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTTPOFF, 22) \ -_ELF_DEFINE_RELOC(R_X86_64_TPOFF32, 23) \ -_ELF_DEFINE_RELOC(R_X86_64_PC64, 24) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTOFF64, 25) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPC32, 26) \ -_ELF_DEFINE_RELOC(R_X86_64_GOT64, 27) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPCREL64, 28) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPC64, 29) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPLT64, 30) \ -_ELF_DEFINE_RELOC(R_X86_64_PLTOFF64, 31) \ -_ELF_DEFINE_RELOC(R_X86_64_SIZE32, 32) \ -_ELF_DEFINE_RELOC(R_X86_64_SIZE64, 33) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPC32_TLSDESC, 34) \ -_ELF_DEFINE_RELOC(R_X86_64_TLSDESC_CALL, 35) \ -_ELF_DEFINE_RELOC(R_X86_64_TLSDESC, 36) \ -_ELF_DEFINE_RELOC(R_X86_64_IRELATIVE, 37) \ -_ELF_DEFINE_RELOC(R_X86_64_RELATIVE64, 38) \ -_ELF_DEFINE_RELOC(R_X86_64_GOTPCRELX, 41) \ -_ELF_DEFINE_RELOC(R_X86_64_REX_GOTPCRELX, 42) - -#define _ELF_DEFINE_RELOCATIONS() \ -_ELF_DEFINE_386_RELOCATIONS() \ -_ELF_DEFINE_AARCH64_RELOCATIONS() \ -_ELF_DEFINE_AMD64_RELOCATIONS() \ -_ELF_DEFINE_ARM_RELOCATIONS() \ -_ELF_DEFINE_IA64_RELOCATIONS() \ -_ELF_DEFINE_MIPS_RELOCATIONS() \ -_ELF_DEFINE_PPC32_RELOCATIONS() \ -_ELF_DEFINE_PPC64_RELOCATIONS() \ -_ELF_DEFINE_RISCV_RELOCATIONS() \ -_ELF_DEFINE_SPARC_RELOCATIONS() \ -_ELF_DEFINE_X86_64_RELOCATIONS() - -#undef _ELF_DEFINE_RELOC -#define _ELF_DEFINE_RELOC(N, V) N = V , -enum { - _ELF_DEFINE_RELOCATIONS() - R__LAST__ -}; - -#define PN_XNUM 0xFFFFU /* Use extended section numbering. */ - -/** - ** ELF Types. - **/ - -typedef uint32_t Elf32_Addr; /* Program address. */ -typedef uint8_t Elf32_Byte; /* Unsigned tiny integer. */ -typedef uint16_t Elf32_Half; /* Unsigned medium integer. */ -typedef uint32_t Elf32_Off; /* File offset. */ -typedef uint16_t Elf32_Section; /* Section index. */ -typedef int32_t Elf32_Sword; /* Signed integer. */ -typedef uint32_t Elf32_Word; /* Unsigned integer. */ -typedef uint64_t Elf32_Lword; /* Unsigned long integer. */ - -typedef uint64_t Elf64_Addr; /* Program address. */ -typedef uint8_t Elf64_Byte; /* Unsigned tiny integer. */ -typedef uint16_t Elf64_Half; /* Unsigned medium integer. */ -typedef uint64_t Elf64_Off; /* File offset. */ -typedef uint16_t Elf64_Section; /* Section index. */ -typedef int32_t Elf64_Sword; /* Signed integer. */ -typedef uint32_t Elf64_Word; /* Unsigned integer. */ -typedef uint64_t Elf64_Lword; /* Unsigned long integer. */ -typedef uint64_t Elf64_Xword; /* Unsigned long integer. */ -typedef int64_t Elf64_Sxword; /* Signed long integer. */ - - -/* - * Capability descriptors. - */ - -/* 32-bit capability descriptor. */ -typedef struct { - Elf32_Word c_tag; /* Type of entry. */ - union { - Elf32_Word c_val; /* Integer value. */ - Elf32_Addr c_ptr; /* Pointer value. */ - } c_un; -} Elf32_Cap; - -/* 64-bit capability descriptor. */ -typedef struct { - Elf64_Xword c_tag; /* Type of entry. */ - union { - Elf64_Xword c_val; /* Integer value. */ - Elf64_Addr c_ptr; /* Pointer value. */ - } c_un; -} Elf64_Cap; - -/* - * MIPS .conflict section entries. - */ - -/* 32-bit entry. */ -typedef struct { - Elf32_Addr c_index; -} Elf32_Conflict; - -/* 64-bit entry. */ -typedef struct { - Elf64_Addr c_index; -} Elf64_Conflict; - -/* - * Dynamic section entries. - */ - -/* 32-bit entry. */ -typedef struct { - Elf32_Sword d_tag; /* Type of entry. */ - union { - Elf32_Word d_val; /* Integer value. */ - Elf32_Addr d_ptr; /* Pointer value. */ - } d_un; -} Elf32_Dyn; - -/* 64-bit entry. */ -typedef struct { - Elf64_Sxword d_tag; /* Type of entry. */ - union { - Elf64_Xword d_val; /* Integer value. */ - Elf64_Addr d_ptr; /* Pointer value; */ - } d_un; -} Elf64_Dyn; - - -/* - * The executable header (EHDR). - */ - -/* 32 bit EHDR. */ -typedef struct { - unsigned char e_ident[EI_NIDENT]; /* ELF identification. */ - Elf32_Half e_type; /* Object file type (ET_*). */ - Elf32_Half e_machine; /* Machine type (EM_*). */ - Elf32_Word e_version; /* File format version (EV_*). */ - Elf32_Addr e_entry; /* Start address. */ - Elf32_Off e_phoff; /* File offset to the PHDR table. */ - Elf32_Off e_shoff; /* File offset to the SHDRheader. */ - Elf32_Word e_flags; /* Flags (EF_*). */ - Elf32_Half e_ehsize; /* Elf header size in bytes. */ - Elf32_Half e_phentsize; /* PHDR table entry size in bytes. */ - Elf32_Half e_phnum; /* Number of PHDR entries. */ - Elf32_Half e_shentsize; /* SHDR table entry size in bytes. */ - Elf32_Half e_shnum; /* Number of SHDR entries. */ - Elf32_Half e_shstrndx; /* Index of section name string table. */ -} Elf32_Ehdr; - - -/* 64 bit EHDR. */ -typedef struct { - unsigned char e_ident[EI_NIDENT]; /* ELF identification. */ - Elf64_Half e_type; /* Object file type (ET_*). */ - Elf64_Half e_machine; /* Machine type (EM_*). */ - Elf64_Word e_version; /* File format version (EV_*). */ - Elf64_Addr e_entry; /* Start address. */ - Elf64_Off e_phoff; /* File offset to the PHDR table. */ - Elf64_Off e_shoff; /* File offset to the SHDRheader. */ - Elf64_Word e_flags; /* Flags (EF_*). */ - Elf64_Half e_ehsize; /* Elf header size in bytes. */ - Elf64_Half e_phentsize; /* PHDR table entry size in bytes. */ - Elf64_Half e_phnum; /* Number of PHDR entries. */ - Elf64_Half e_shentsize; /* SHDR table entry size in bytes. */ - Elf64_Half e_shnum; /* Number of SHDR entries. */ - Elf64_Half e_shstrndx; /* Index of section name string table. */ -} Elf64_Ehdr; - - -/* - * Shared object information. - */ - -/* 32-bit entry. */ -typedef struct { - Elf32_Word l_name; /* The name of a shared object. */ - Elf32_Word l_time_stamp; /* 32-bit timestamp. */ - Elf32_Word l_checksum; /* Checksum of visible symbols, sizes. */ - Elf32_Word l_version; /* Interface version string index. */ - Elf32_Word l_flags; /* Flags (LL_*). */ -} Elf32_Lib; - -/* 64-bit entry. */ -typedef struct { - Elf64_Word l_name; /* The name of a shared object. */ - Elf64_Word l_time_stamp; /* 32-bit timestamp. */ - Elf64_Word l_checksum; /* Checksum of visible symbols, sizes. */ - Elf64_Word l_version; /* Interface version string index. */ - Elf64_Word l_flags; /* Flags (LL_*). */ -} Elf64_Lib; - -#define _ELF_DEFINE_LL_FLAGS() \ -_ELF_DEFINE_LL(LL_NONE, 0, \ - "no flags") \ -_ELF_DEFINE_LL(LL_EXACT_MATCH, 0x1, \ - "require an exact match") \ -_ELF_DEFINE_LL(LL_IGNORE_INT_VER, 0x2, \ - "ignore version incompatibilities") \ -_ELF_DEFINE_LL(LL_REQUIRE_MINOR, 0x4, \ - "") \ -_ELF_DEFINE_LL(LL_EXPORTS, 0x8, \ - "") \ -_ELF_DEFINE_LL(LL_DELAY_LOAD, 0x10, \ - "") \ -_ELF_DEFINE_LL(LL_DELTA, 0x20, \ - "") - -#undef _ELF_DEFINE_LL -#define _ELF_DEFINE_LL(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_LL_FLAGS() - LL__LAST__ -}; - -/* - * Note tags - */ - -#define _ELF_DEFINE_NOTE_ENTRY_TYPES() \ -_ELF_DEFINE_NT(NT_ABI_TAG, 1, "Tag indicating the ABI") \ -_ELF_DEFINE_NT(NT_GNU_HWCAP, 2, "Hardware capabilities") \ -_ELF_DEFINE_NT(NT_GNU_BUILD_ID, 3, "Build id, set by ld(1)") \ -_ELF_DEFINE_NT(NT_GNU_GOLD_VERSION, 4, \ - "Version number of the GNU gold linker") \ -_ELF_DEFINE_NT(NT_PRSTATUS, 1, "Process status") \ -_ELF_DEFINE_NT(NT_FPREGSET, 2, "Floating point information") \ -_ELF_DEFINE_NT(NT_PRPSINFO, 3, "Process information") \ -_ELF_DEFINE_NT(NT_AUXV, 6, "Auxiliary vector") \ -_ELF_DEFINE_NT(NT_PRXFPREG, 0x46E62B7FUL, \ - "Linux user_xfpregs structure") \ -_ELF_DEFINE_NT(NT_PSTATUS, 10, "Linux process status") \ -_ELF_DEFINE_NT(NT_FPREGS, 12, "Linux floating point regset") \ -_ELF_DEFINE_NT(NT_PSINFO, 13, "Linux process information") \ -_ELF_DEFINE_NT(NT_LWPSTATUS, 16, "Linux lwpstatus_t type") \ -_ELF_DEFINE_NT(NT_LWPSINFO, 17, "Linux lwpinfo_t type") \ -_ELF_DEFINE_NT(NT_FREEBSD_NOINIT_TAG, 2, "FreeBSD no .init tag") \ -_ELF_DEFINE_NT(NT_FREEBSD_ARCH_TAG, 3, "FreeBSD arch tag") \ -_ELF_DEFINE_NT(NT_FREEBSD_FEATURE_CTL, 4, "FreeBSD feature control") - -#undef _ELF_DEFINE_NT -#define _ELF_DEFINE_NT(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_NOTE_ENTRY_TYPES() - NT__LAST__ -}; - -/* Aliases for the ABI tag. */ -#define NT_FREEBSD_ABI_TAG NT_ABI_TAG -#define NT_GNU_ABI_TAG NT_ABI_TAG -#define NT_NETBSD_IDENT NT_ABI_TAG -#define NT_OPENBSD_IDENT NT_ABI_TAG - -/* - * Note descriptors. - */ - -typedef struct { - uint32_t n_namesz; /* Length of note's name. */ - uint32_t n_descsz; /* Length of note's value. */ - uint32_t n_type; /* Type of note. */ -} Elf_Note; - -typedef Elf_Note Elf32_Nhdr; /* 32-bit note header. */ -typedef Elf_Note Elf64_Nhdr; /* 64-bit note header. */ - -/* - * MIPS ELF options descriptor header. - */ - -typedef struct { - Elf64_Byte kind; /* Type of options. */ - Elf64_Byte size; /* Size of option descriptor. */ - Elf64_Half section; /* Index of section affected. */ - Elf64_Word info; /* Kind-specific information. */ -} Elf_Options; - -/* - * Option kinds. - */ - -#define _ELF_DEFINE_OPTION_KINDS() \ -_ELF_DEFINE_ODK(ODK_NULL, 0, "undefined") \ -_ELF_DEFINE_ODK(ODK_REGINFO, 1, "register usage info") \ -_ELF_DEFINE_ODK(ODK_EXCEPTIONS, 2, "exception processing info") \ -_ELF_DEFINE_ODK(ODK_PAD, 3, "section padding") \ -_ELF_DEFINE_ODK(ODK_HWPATCH, 4, "hardware patch applied") \ -_ELF_DEFINE_ODK(ODK_FILL, 5, "fill value used by linker") \ -_ELF_DEFINE_ODK(ODK_TAGS, 6, "reserved space for tools") \ -_ELF_DEFINE_ODK(ODK_HWAND, 7, "hardware AND patch applied") \ -_ELF_DEFINE_ODK(ODK_HWOR, 8, "hardware OR patch applied") \ -_ELF_DEFINE_ODK(ODK_GP_GROUP, 9, \ - "GP group to use for text/data sections") \ -_ELF_DEFINE_ODK(ODK_IDENT, 10, "ID information") \ -_ELF_DEFINE_ODK(ODK_PAGESIZE, 11, "page size information") - -#undef _ELF_DEFINE_ODK -#define _ELF_DEFINE_ODK(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_OPTION_KINDS() - ODK__LAST__ -}; - -/* - * ODK_EXCEPTIONS info field masks. - */ - -#define _ELF_DEFINE_ODK_EXCEPTIONS_MASK() \ -_ELF_DEFINE_OEX(OEX_FPU_MIN, 0x0000001FUL, \ - "minimum FPU exception which must be enabled") \ -_ELF_DEFINE_OEX(OEX_FPU_MAX, 0x00001F00UL, \ - "maximum FPU exception which can be enabled") \ -_ELF_DEFINE_OEX(OEX_PAGE0, 0x00010000UL, \ - "page zero must be mapped") \ -_ELF_DEFINE_OEX(OEX_SMM, 0x00020000UL, \ - "run in sequential memory mode") \ -_ELF_DEFINE_OEX(OEX_PRECISEFP, 0x00040000UL, \ - "run in precise FP exception mode") \ -_ELF_DEFINE_OEX(OEX_DISMISS, 0x00080000UL, \ - "dismiss invalid address traps") - -#undef _ELF_DEFINE_OEX -#define _ELF_DEFINE_OEX(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ODK_EXCEPTIONS_MASK() - OEX__LAST__ -}; - -/* - * ODK_PAD info field masks. - */ - -#define _ELF_DEFINE_ODK_PAD_MASK() \ -_ELF_DEFINE_OPAD(OPAD_PREFIX, 0x0001) \ -_ELF_DEFINE_OPAD(OPAD_POSTFIX, 0x0002) \ -_ELF_DEFINE_OPAD(OPAD_SYMBOL, 0x0004) - -#undef _ELF_DEFINE_OPAD -#define _ELF_DEFINE_OPAD(N, V) N = V , -enum { - _ELF_DEFINE_ODK_PAD_MASK() - OPAD__LAST__ -}; - -/* - * ODK_HWPATCH info field masks. - */ - -#define _ELF_DEFINE_ODK_HWPATCH_MASK() \ -_ELF_DEFINE_OHW(OHW_R4KEOP, 0x00000001UL, \ - "patch for R4000 branch at end-of-page bug") \ -_ELF_DEFINE_OHW(OHW_R8KPFETCH, 0x00000002UL, \ - "R8000 prefetch bug may occur") \ -_ELF_DEFINE_OHW(OHW_R5KEOP, 0x00000004UL, \ - "patch for R5000 branch at end-of-page bug") \ -_ELF_DEFINE_OHW(OHW_R5KCVTL, 0x00000008UL, \ - "R5000 cvt.[ds].l bug: clean == 1") \ -_ELF_DEFINE_OHW(OHW_R10KLDL, 0x00000010UL, \ - "needd patch for R10000 misaligned load") - -#undef _ELF_DEFINE_OHW -#define _ELF_DEFINE_OHW(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ODK_HWPATCH_MASK() - OHW__LAST__ -}; - -/* - * ODK_HWAND/ODK_HWOR info field and hwp_flags[12] masks. - */ - -#define _ELF_DEFINE_ODK_HWP_MASK() \ -_ELF_DEFINE_HWP(OHWA0_R4KEOP_CHECKED, 0x00000001UL, \ - "object checked for R4000 end-of-page bug") \ -_ELF_DEFINE_HWP(OHWA0_R4KEOP_CLEAN, 0x00000002UL, \ - "object verified clean for R4000 end-of-page bug") \ -_ELF_DEFINE_HWP(OHWO0_FIXADE, 0x00000001UL, \ - "object requires call to fixade") - -#undef _ELF_DEFINE_HWP -#define _ELF_DEFINE_HWP(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ODK_HWP_MASK() - OHWX0__LAST__ -}; - -/* - * ODK_IDENT/ODK_GP_GROUP info field masks. - */ - -#define _ELF_DEFINE_ODK_GP_MASK() \ -_ELF_DEFINE_OGP(OGP_GROUP, 0x0000FFFFUL, "GP group number") \ -_ELF_DEFINE_OGP(OGP_SELF, 0x00010000UL, \ - "GP group is self-contained") - -#undef _ELF_DEFINE_OGP -#define _ELF_DEFINE_OGP(N, V, DESCR) N = V , -enum { - _ELF_DEFINE_ODK_GP_MASK() - OGP__LAST__ -}; - -/* - * MIPS ELF register info descriptor. - */ - -/* 32 bit RegInfo entry. */ -typedef struct { - Elf32_Word ri_gprmask; /* Mask of general register used. */ - Elf32_Word ri_cprmask[4]; /* Mask of coprocessor register used. */ - Elf32_Addr ri_gp_value; /* GP register value. */ -} Elf32_RegInfo; - -/* 64 bit RegInfo entry. */ -typedef struct { - Elf64_Word ri_gprmask; /* Mask of general register used. */ - Elf64_Word ri_pad; /* Padding. */ - Elf64_Word ri_cprmask[4]; /* Mask of coprocessor register used. */ - Elf64_Addr ri_gp_value; /* GP register value. */ -} Elf64_RegInfo; - -/* - * Program Header Table (PHDR) entries. - */ - -/* 32 bit PHDR entry. */ -typedef struct { - Elf32_Word p_type; /* Type of segment. */ - Elf32_Off p_offset; /* File offset to segment. */ - Elf32_Addr p_vaddr; /* Virtual address in memory. */ - Elf32_Addr p_paddr; /* Physical address (if relevant). */ - Elf32_Word p_filesz; /* Size of segment in file. */ - Elf32_Word p_memsz; /* Size of segment in memory. */ - Elf32_Word p_flags; /* Segment flags. */ - Elf32_Word p_align; /* Alignment constraints. */ -} Elf32_Phdr; - -/* 64 bit PHDR entry. */ -typedef struct { - Elf64_Word p_type; /* Type of segment. */ - Elf64_Word p_flags; /* Segment flags. */ - Elf64_Off p_offset; /* File offset to segment. */ - Elf64_Addr p_vaddr; /* Virtual address in memory. */ - Elf64_Addr p_paddr; /* Physical address (if relevant). */ - Elf64_Xword p_filesz; /* Size of segment in file. */ - Elf64_Xword p_memsz; /* Size of segment in memory. */ - Elf64_Xword p_align; /* Alignment constraints. */ -} Elf64_Phdr; - - -/* - * Move entries, for describing data in COMMON blocks in a compact - * manner. - */ - -/* 32-bit move entry. */ -typedef struct { - Elf32_Lword m_value; /* Initialization value. */ - Elf32_Word m_info; /* Encoded size and index. */ - Elf32_Word m_poffset; /* Offset relative to symbol. */ - Elf32_Half m_repeat; /* Repeat count. */ - Elf32_Half m_stride; /* Number of units to skip. */ -} Elf32_Move; - -/* 64-bit move entry. */ -typedef struct { - Elf64_Lword m_value; /* Initialization value. */ - Elf64_Xword m_info; /* Encoded size and index. */ - Elf64_Xword m_poffset; /* Offset relative to symbol. */ - Elf64_Half m_repeat; /* Repeat count. */ - Elf64_Half m_stride; /* Number of units to skip. */ -} Elf64_Move; - -#define ELF32_M_SYM(I) ((I) >> 8) -#define ELF32_M_SIZE(I) ((unsigned char) (I)) -#define ELF32_M_INFO(M, S) (((M) << 8) + (unsigned char) (S)) - -#define ELF64_M_SYM(I) ((I) >> 8) -#define ELF64_M_SIZE(I) ((unsigned char) (I)) -#define ELF64_M_INFO(M, S) (((M) << 8) + (unsigned char) (S)) - -/* - * Section Header Table (SHDR) entries. - */ - -/* 32 bit SHDR */ -typedef struct { - Elf32_Word sh_name; /* index of section name */ - Elf32_Word sh_type; /* section type */ - Elf32_Word sh_flags; /* section flags */ - Elf32_Addr sh_addr; /* in-memory address of section */ - Elf32_Off sh_offset; /* file offset of section */ - Elf32_Word sh_size; /* section size in bytes */ - Elf32_Word sh_link; /* section header table link */ - Elf32_Word sh_info; /* extra information */ - Elf32_Word sh_addralign; /* alignment constraint */ - Elf32_Word sh_entsize; /* size for fixed-size entries */ -} Elf32_Shdr; - -/* 64 bit SHDR */ -typedef struct { - Elf64_Word sh_name; /* index of section name */ - Elf64_Word sh_type; /* section type */ - Elf64_Xword sh_flags; /* section flags */ - Elf64_Addr sh_addr; /* in-memory address of section */ - Elf64_Off sh_offset; /* file offset of section */ - Elf64_Xword sh_size; /* section size in bytes */ - Elf64_Word sh_link; /* section header table link */ - Elf64_Word sh_info; /* extra information */ - Elf64_Xword sh_addralign; /* alignment constraint */ - Elf64_Xword sh_entsize; /* size for fixed-size entries */ -} Elf64_Shdr; - - -/* - * Symbol table entries. - */ - -typedef struct { - Elf32_Word st_name; /* index of symbol's name */ - Elf32_Addr st_value; /* value for the symbol */ - Elf32_Word st_size; /* size of associated data */ - unsigned char st_info; /* type and binding attributes */ - unsigned char st_other; /* visibility */ - Elf32_Half st_shndx; /* index of related section */ -} Elf32_Sym; - -typedef struct { - Elf64_Word st_name; /* index of symbol's name */ - unsigned char st_info; /* type and binding attributes */ - unsigned char st_other; /* visibility */ - Elf64_Half st_shndx; /* index of related section */ - Elf64_Addr st_value; /* value for the symbol */ - Elf64_Xword st_size; /* size of associated data */ -} Elf64_Sym; - -#define ELF32_ST_BIND(I) ((I) >> 4) -#define ELF32_ST_TYPE(I) ((I) & 0xFU) -#define ELF32_ST_INFO(B,T) (((B) << 4) + ((T) & 0xF)) - -#define ELF64_ST_BIND(I) ((I) >> 4) -#define ELF64_ST_TYPE(I) ((I) & 0xFU) -#define ELF64_ST_INFO(B,T) (((B) << 4) + ((T) & 0xF)) - -#define ELF32_ST_VISIBILITY(O) ((O) & 0x3) -#define ELF64_ST_VISIBILITY(O) ((O) & 0x3) - -/* - * Syminfo descriptors, containing additional symbol information. - */ - -/* 32-bit entry. */ -typedef struct { - Elf32_Half si_boundto; /* Entry index with additional flags. */ - Elf32_Half si_flags; /* Flags. */ -} Elf32_Syminfo; - -/* 64-bit entry. */ -typedef struct { - Elf64_Half si_boundto; /* Entry index with additional flags. */ - Elf64_Half si_flags; /* Flags. */ -} Elf64_Syminfo; - -/* - * Relocation descriptors. - */ - -typedef struct { - Elf32_Addr r_offset; /* location to apply relocation to */ - Elf32_Word r_info; /* type+section for relocation */ -} Elf32_Rel; - -typedef struct { - Elf32_Addr r_offset; /* location to apply relocation to */ - Elf32_Word r_info; /* type+section for relocation */ - Elf32_Sword r_addend; /* constant addend */ -} Elf32_Rela; - -typedef struct { - Elf64_Addr r_offset; /* location to apply relocation to */ - Elf64_Xword r_info; /* type+section for relocation */ -} Elf64_Rel; - -typedef struct { - Elf64_Addr r_offset; /* location to apply relocation to */ - Elf64_Xword r_info; /* type+section for relocation */ - Elf64_Sxword r_addend; /* constant addend */ -} Elf64_Rela; - - -#define ELF32_R_SYM(I) ((I) >> 8) -#define ELF32_R_TYPE(I) ((unsigned char) (I)) -#define ELF32_R_INFO(S,T) (((S) << 8) + (unsigned char) (T)) - -#define ELF64_R_SYM(I) ((I) >> 32) -#define ELF64_R_TYPE(I) ((I) & 0xFFFFFFFFUL) -#define ELF64_R_INFO(S,T) \ - (((Elf64_Xword) (S) << 32) + ((T) & 0xFFFFFFFFUL)) - -/* - * Symbol versioning structures. - */ - -/* 32-bit structures. */ -typedef struct -{ - Elf32_Word vda_name; /* Index to name. */ - Elf32_Word vda_next; /* Offset to next entry. */ -} Elf32_Verdaux; - -typedef struct -{ - Elf32_Word vna_hash; /* Hash value of dependency name. */ - Elf32_Half vna_flags; /* Flags. */ - Elf32_Half vna_other; /* Unused. */ - Elf32_Word vna_name; /* Offset to dependency name. */ - Elf32_Word vna_next; /* Offset to next vernaux entry. */ -} Elf32_Vernaux; - -typedef struct -{ - Elf32_Half vd_version; /* Version information. */ - Elf32_Half vd_flags; /* Flags. */ - Elf32_Half vd_ndx; /* Index into the versym section. */ - Elf32_Half vd_cnt; /* Number of aux entries. */ - Elf32_Word vd_hash; /* Hash value of name. */ - Elf32_Word vd_aux; /* Offset to aux entries. */ - Elf32_Word vd_next; /* Offset to next version definition. */ -} Elf32_Verdef; - -typedef struct -{ - Elf32_Half vn_version; /* Version number. */ - Elf32_Half vn_cnt; /* Number of aux entries. */ - Elf32_Word vn_file; /* Offset of associated file name. */ - Elf32_Word vn_aux; /* Offset of vernaux array. */ - Elf32_Word vn_next; /* Offset of next verneed entry. */ -} Elf32_Verneed; - -typedef Elf32_Half Elf32_Versym; - -/* 64-bit structures. */ - -typedef struct { - Elf64_Word vda_name; /* Index to name. */ - Elf64_Word vda_next; /* Offset to next entry. */ -} Elf64_Verdaux; - -typedef struct { - Elf64_Word vna_hash; /* Hash value of dependency name. */ - Elf64_Half vna_flags; /* Flags. */ - Elf64_Half vna_other; /* Unused. */ - Elf64_Word vna_name; /* Offset to dependency name. */ - Elf64_Word vna_next; /* Offset to next vernaux entry. */ -} Elf64_Vernaux; - -typedef struct { - Elf64_Half vd_version; /* Version information. */ - Elf64_Half vd_flags; /* Flags. */ - Elf64_Half vd_ndx; /* Index into the versym section. */ - Elf64_Half vd_cnt; /* Number of aux entries. */ - Elf64_Word vd_hash; /* Hash value of name. */ - Elf64_Word vd_aux; /* Offset to aux entries. */ - Elf64_Word vd_next; /* Offset to next version definition. */ -} Elf64_Verdef; - -typedef struct { - Elf64_Half vn_version; /* Version number. */ - Elf64_Half vn_cnt; /* Number of aux entries. */ - Elf64_Word vn_file; /* Offset of associated file name. */ - Elf64_Word vn_aux; /* Offset of vernaux array. */ - Elf64_Word vn_next; /* Offset of next verneed entry. */ -} Elf64_Verneed; - -typedef Elf64_Half Elf64_Versym; - - -/* - * The header for GNU-style hash sections. - */ - -typedef struct { - uint32_t gh_nbuckets; /* Number of hash buckets. */ - uint32_t gh_symndx; /* First visible symbol in .dynsym. */ - uint32_t gh_maskwords; /* #maskwords used in bloom filter. */ - uint32_t gh_shift2; /* Bloom filter shift count. */ -} Elf_GNU_Hash_Header; - -#endif /* _ELFDEFINITIONS_H_ */ diff --git a/contrib/elftoolchain/common/native-elf-format b/contrib/elftoolchain/common/native-elf-format deleted file mode 100755 index de99b553..00000000 --- a/contrib/elftoolchain/common/native-elf-format +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# Find the native ELF format for a host platform by compiling a -# test object and examining the resulting object. -# -# This script is used if there is no easy way to determine this -# information statically at compile time. - -program=`basename $0` -tmp_c=`mktemp -u nefXXXXXX`.c -tmp_o=`echo ${tmp_c} | sed -e 's/.c$/.o/'` - -trap "rm -f ${tmp_c} ${tmp_o}" 0 1 2 3 15 - -touch ${tmp_c} - -echo "/* Generated by ${program} on `date` */" - -cc -c ${tmp_c} -o ${tmp_o} -LC_ALL=C readelf -h ${tmp_o} | awk ' -$1 ~ "Class:" { - sub("ELF","",$2); elfclass = $2; - } -$1 ~ "Data:" { - if (match($0, "little")) { - elfdata = "LSB"; - } else { - elfdata = "MSB"; - } - } -$1 ~ "Machine:" { - if (match($0, "Intel.*386")) { - elfarch = "EM_386"; - } else if (match($0, "MIPS")) { - elfarch = "EM_MIPS"; - } else if (match($0, ".*[xX]86[-_]64")) { - elfarch = "EM_X86_64"; - } else if (match($0, "PowerPC64")) { - elfarch = "EM_PPC64"; - } else if (match($0, "AArch64")) { - elfarch = "EM_AARCH64"; - } else { - elfarch = "unknown"; - } - } -END { - printf("#define ELFTC_CLASS ELFCLASS%s\n", elfclass); - printf("#define ELFTC_ARCH %s\n", elfarch); - printf("#define ELFTC_BYTEORDER ELFDATA2%s\n", elfdata); -}' - diff --git a/contrib/elftoolchain/common/os.Linux.mk b/contrib/elftoolchain/common/os.Linux.mk deleted file mode 100644 index c092d897..00000000 --- a/contrib/elftoolchain/common/os.Linux.mk +++ /dev/null @@ -1,15 +0,0 @@ -# -# Build recipes for Linux based operating systems. -# -# $Id$ - -_NATIVE_ELF_FORMAT = native-elf-format - -.if !make(obj) -.BEGIN: ${.OBJDIR}/${_NATIVE_ELF_FORMAT}.h - -${.OBJDIR}/${_NATIVE_ELF_FORMAT}.h: - ${.CURDIR}/${_NATIVE_ELF_FORMAT} > ${.TARGET} || rm ${.TARGET} -.endif - -CLEANFILES += ${.OBJDIR}/${_NATIVE_ELF_FORMAT}.h diff --git a/contrib/elftoolchain/common/utarray.h b/contrib/elftoolchain/common/utarray.h deleted file mode 100644 index 352d1d50..00000000 --- a/contrib/elftoolchain/common/utarray.h +++ /dev/null @@ -1,237 +0,0 @@ -/* -Copyright (c) 2008-2013, Troy D. Hanson http://uthash.sourceforge.net -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* $Id$ */ - -/* a dynamic array implementation using macros - * see http://uthash.sourceforge.net/utarray - */ -#ifndef UTARRAY_H -#define UTARRAY_H - -#define UTARRAY_VERSION 1.9.7 - -#ifdef __GNUC__ -#define _UNUSED_ __attribute__ ((__unused__)) -#else -#define _UNUSED_ -#endif - -#include /* size_t */ -#include /* memset, etc */ -#include /* exit */ - -#ifndef oom -#define oom() exit(-1) -#endif - -typedef void (ctor_f)(void *dst, const void *src); -typedef void (dtor_f)(void *elt); -typedef void (init_f)(void *elt); -typedef struct { - size_t sz; - init_f *init; - ctor_f *copy; - dtor_f *dtor; -} UT_icd; - -typedef struct { - unsigned i,n;/* i: index of next available slot, n: num slots */ - UT_icd icd; /* initializer, copy and destructor functions */ - char *d; /* n slots of size icd->sz*/ -} UT_array; - -#define utarray_init(a,_icd) do { \ - memset(a,0,sizeof(UT_array)); \ - (a)->icd=*_icd; \ -} while(0) - -#define utarray_done(a) do { \ - if ((a)->n) { \ - if ((a)->icd.dtor) { \ - size_t _ut_i; \ - for(_ut_i=0; _ut_i < (a)->i; _ut_i++) { \ - (a)->icd.dtor(utarray_eltptr(a,_ut_i)); \ - } \ - } \ - free((a)->d); \ - } \ - (a)->n=0; \ -} while(0) - -#define utarray_new(a,_icd) do { \ - a=(UT_array*)malloc(sizeof(UT_array)); \ - utarray_init(a,_icd); \ -} while(0) - -#define utarray_free(a) do { \ - utarray_done(a); \ - free(a); \ -} while(0) - -#define utarray_reserve(a,by) do { \ - if (((a)->i+by) > ((a)->n)) { \ - while(((a)->i+by) > ((a)->n)) { (a)->n = ((a)->n ? (2*(a)->n) : 8); } \ - if ( ((a)->d=(char*)realloc((a)->d, (a)->n*(a)->icd.sz)) == NULL) oom(); \ - } \ -} while(0) - -#define utarray_push_back(a,p) do { \ - utarray_reserve(a,1); \ - if ((a)->icd.copy) { (a)->icd.copy( _utarray_eltptr(a,(a)->i++), p); } \ - else { memcpy(_utarray_eltptr(a,(a)->i++), p, (a)->icd.sz); }; \ -} while(0) - -#define utarray_pop_back(a) do { \ - if ((a)->icd.dtor) { (a)->icd.dtor( _utarray_eltptr(a,--((a)->i))); } \ - else { (a)->i--; } \ -} while(0) - -#define utarray_extend_back(a) do { \ - utarray_reserve(a,1); \ - if ((a)->icd.init) { (a)->icd.init(_utarray_eltptr(a,(a)->i)); } \ - else { memset(_utarray_eltptr(a,(a)->i),0,(a)->icd.sz); } \ - (a)->i++; \ -} while(0) - -#define utarray_len(a) ((a)->i) - -#define utarray_eltptr(a,j) (((j) < (a)->i) ? _utarray_eltptr(a,j) : NULL) -#define _utarray_eltptr(a,j) ((char*)((a)->d + ((a)->icd.sz*(j) ))) - -#define utarray_insert(a,p,j) do { \ - utarray_reserve(a,1); \ - if (j > (a)->i) break; \ - if ((j) < (a)->i) { \ - memmove( _utarray_eltptr(a,(j)+1), _utarray_eltptr(a,j), \ - ((a)->i - (j))*((a)->icd.sz)); \ - } \ - if ((a)->icd.copy) { (a)->icd.copy( _utarray_eltptr(a,j), p); } \ - else { memcpy(_utarray_eltptr(a,j), p, (a)->icd.sz); }; \ - (a)->i++; \ -} while(0) - -#define utarray_inserta(a,w,j) do { \ - if (utarray_len(w) == 0) break; \ - if (j > (a)->i) break; \ - utarray_reserve(a,utarray_len(w)); \ - if ((j) < (a)->i) { \ - memmove(_utarray_eltptr(a,(j)+utarray_len(w)), \ - _utarray_eltptr(a,j), \ - ((a)->i - (j))*((a)->icd.sz)); \ - } \ - if ((a)->icd.copy) { \ - size_t _ut_i; \ - for(_ut_i=0;_ut_i<(w)->i;_ut_i++) { \ - (a)->icd.copy(_utarray_eltptr(a,j+_ut_i), _utarray_eltptr(w,_ut_i)); \ - } \ - } else { \ - memcpy(_utarray_eltptr(a,j), _utarray_eltptr(w,0), \ - utarray_len(w)*((a)->icd.sz)); \ - } \ - (a)->i += utarray_len(w); \ -} while(0) - -#define utarray_resize(dst,num) do { \ - size_t _ut_i; \ - if (dst->i > (size_t)(num)) { \ - if ((dst)->icd.dtor) { \ - for(_ut_i=num; _ut_i < dst->i; _ut_i++) { \ - (dst)->icd.dtor(utarray_eltptr(dst,_ut_i)); \ - } \ - } \ - } else if (dst->i < (size_t)(num)) { \ - utarray_reserve(dst,num-dst->i); \ - if ((dst)->icd.init) { \ - for(_ut_i=dst->i; _ut_i < num; _ut_i++) { \ - (dst)->icd.init(utarray_eltptr(dst,_ut_i)); \ - } \ - } else { \ - memset(_utarray_eltptr(dst,dst->i),0,(dst)->icd.sz*(num-dst->i)); \ - } \ - } \ - dst->i = num; \ -} while(0) - -#define utarray_concat(dst,src) do { \ - utarray_inserta((dst),(src),utarray_len(dst)); \ -} while(0) - -#define utarray_erase(a,pos,len) do { \ - if ((a)->icd.dtor) { \ - size_t _ut_i; \ - for(_ut_i=0; _ut_i < len; _ut_i++) { \ - (a)->icd.dtor(utarray_eltptr((a),pos+_ut_i)); \ - } \ - } \ - if ((a)->i > (pos+len)) { \ - memmove( _utarray_eltptr((a),pos), _utarray_eltptr((a),pos+len), \ - (((a)->i)-(pos+len))*((a)->icd.sz)); \ - } \ - (a)->i -= (len); \ -} while(0) - -#define utarray_renew(a,u) do { \ - if (a) utarray_clear(a); \ - else utarray_new((a),(u)); \ -} while(0) - -#define utarray_clear(a) do { \ - if ((a)->i > 0) { \ - if ((a)->icd.dtor) { \ - size_t _ut_i; \ - for(_ut_i=0; _ut_i < (a)->i; _ut_i++) { \ - (a)->icd.dtor(utarray_eltptr(a,_ut_i)); \ - } \ - } \ - (a)->i = 0; \ - } \ -} while(0) - -#define utarray_sort(a,cmp) do { \ - qsort((a)->d, (a)->i, (a)->icd.sz, cmp); \ -} while(0) - -#define utarray_find(a,v,cmp) bsearch((v),(a)->d,(a)->i,(a)->icd.sz,cmp) - -#define utarray_front(a) (((a)->i) ? (_utarray_eltptr(a,0)) : NULL) -#define utarray_next(a,e) (((e)==NULL) ? utarray_front(a) : (((int)((a)->i) > (utarray_eltidx(a,e)+1)) ? _utarray_eltptr(a,utarray_eltidx(a,e)+1) : NULL)) -#define utarray_prev(a,e) (((e)==NULL) ? utarray_back(a) : ((utarray_eltidx(a,e) > 0) ? _utarray_eltptr(a,utarray_eltidx(a,e)-1) : NULL)) -#define utarray_back(a) (((a)->i) ? (_utarray_eltptr(a,(a)->i-1)) : NULL) -#define utarray_eltidx(a,e) (((char*)(e) >= (char*)((a)->d)) ? (int)(((char*)(e) - (char*)((a)->d))/(a)->icd.sz) : -1) - -/* last we pre-define a few icd for common utarrays of ints and strings */ -static void utarray_str_cpy(void *dst, const void *src) { - char *const*_src = (char*const*)src, **_dst = (char**)dst; - *_dst = (*_src == NULL) ? NULL : strdup(*_src); -} -static void utarray_str_dtor(void *elt) { - char **eltc = (char**)elt; - if (*eltc) free(*eltc); -} -static const UT_icd ut_str_icd _UNUSED_ = {sizeof(char*),NULL,utarray_str_cpy,utarray_str_dtor}; -static const UT_icd ut_int_icd _UNUSED_ = {sizeof(int),NULL,NULL,NULL}; -static const UT_icd ut_ptr_icd _UNUSED_ = {sizeof(void*),NULL,NULL,NULL}; - - -#endif /* UTARRAY_H */ diff --git a/contrib/elftoolchain/common/uthash.h b/contrib/elftoolchain/common/uthash.h deleted file mode 100644 index 0376ef69..00000000 --- a/contrib/elftoolchain/common/uthash.h +++ /dev/null @@ -1,919 +0,0 @@ -/* -Copyright (c) 2003-2013, Troy D. Hanson http://uthash.sourceforge.net -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* $Id$ */ - -#ifndef UTHASH_H -#define UTHASH_H - -#include /* memcmp,strlen */ -#include /* ptrdiff_t */ -#include /* exit() */ - -/* These macros use decltype or the earlier __typeof GNU extension. - As decltype is only available in newer compilers (VS2010 or gcc 4.3+ - when compiling c++ source) this code uses whatever method is needed - or, for VS2008 where neither is available, uses casting workarounds. */ -#ifdef _MSC_VER /* MS compiler */ -#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */ -#define DECLTYPE(x) (decltype(x)) -#else /* VS2008 or older (or VS2010 in C mode) */ -#define NO_DECLTYPE -#define DECLTYPE(x) -#endif -#else /* GNU, Sun and other compilers */ -#define DECLTYPE(x) (__typeof(x)) -#endif - -#ifdef NO_DECLTYPE -#define DECLTYPE_ASSIGN(dst,src) \ -do { \ - char **_da_dst = (char**)(&(dst)); \ - *_da_dst = (char*)(src); \ -} while(0) -#else -#define DECLTYPE_ASSIGN(dst,src) \ -do { \ - (dst) = DECLTYPE(dst)(src); \ -} while(0) -#endif - -/* a number of the hash function use uint32_t which isn't defined on win32 */ -#ifdef _MSC_VER -typedef unsigned int uint32_t; -typedef unsigned char uint8_t; -#else -#include /* uint32_t */ -#endif - -#define UTHASH_VERSION 1.9.7 - -#ifndef uthash_fatal -#define uthash_fatal(msg) exit(-1) /* fatal error (out of memory,etc) */ -#endif -#ifndef uthash_malloc -#define uthash_malloc(sz) malloc(sz) /* malloc fcn */ -#endif -#ifndef uthash_free -#define uthash_free(ptr,sz) free(ptr) /* free fcn */ -#endif - -#ifndef uthash_noexpand_fyi -#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */ -#endif -#ifndef uthash_expand_fyi -#define uthash_expand_fyi(tbl) /* can be defined to log expands */ -#endif - -/* initial number of buckets */ -#define HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */ -#define HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */ -#define HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */ - -/* calculate the element whose hash handle address is hhe */ -#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho))) - -#define HASH_FIND(hh,head,keyptr,keylen,out) \ -do { \ - unsigned _hf_bkt,_hf_hashv; \ - out=NULL; \ - if (head) { \ - HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \ - if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \ - HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \ - keyptr,keylen,out); \ - } \ - } \ -} while (0) - -#ifdef HASH_BLOOM -#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM) -#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0) -#define HASH_BLOOM_MAKE(tbl) \ -do { \ - (tbl)->bloom_nbits = HASH_BLOOM; \ - (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \ - if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \ - memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \ - (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \ -} while (0) - -#define HASH_BLOOM_FREE(tbl) \ -do { \ - uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ -} while (0) - -#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8))) -#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8))) - -#define HASH_BLOOM_ADD(tbl,hashv) \ - HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) - -#define HASH_BLOOM_TEST(tbl,hashv) \ - HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) - -#else -#define HASH_BLOOM_MAKE(tbl) -#define HASH_BLOOM_FREE(tbl) -#define HASH_BLOOM_ADD(tbl,hashv) -#define HASH_BLOOM_TEST(tbl,hashv) (1) -#endif - -#define HASH_MAKE_TABLE(hh,head) \ -do { \ - (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \ - sizeof(UT_hash_table)); \ - if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \ - memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \ - (head)->hh.tbl->tail = &((head)->hh); \ - (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \ - (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \ - (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \ - (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \ - HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ - if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \ - memset((head)->hh.tbl->buckets, 0, \ - HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ - HASH_BLOOM_MAKE((head)->hh.tbl); \ - (head)->hh.tbl->signature = HASH_SIGNATURE; \ -} while(0) - -#define HASH_ADD(hh,head,fieldname,keylen_in,add) \ - HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add) - -#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ -do { \ - unsigned _ha_bkt; \ - (add)->hh.next = NULL; \ - (add)->hh.key = (char*)keyptr; \ - (add)->hh.keylen = (unsigned)keylen_in; \ - if (!(head)) { \ - head = (add); \ - (head)->hh.prev = NULL; \ - HASH_MAKE_TABLE(hh,head); \ - } else { \ - (head)->hh.tbl->tail->next = (add); \ - (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \ - (head)->hh.tbl->tail = &((add)->hh); \ - } \ - (head)->hh.tbl->num_items++; \ - (add)->hh.tbl = (head)->hh.tbl; \ - HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \ - (add)->hh.hashv, _ha_bkt); \ - HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \ - HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \ - HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \ - HASH_FSCK(hh,head); \ -} while(0) - -#define HASH_TO_BKT( hashv, num_bkts, bkt ) \ -do { \ - bkt = ((hashv) & ((num_bkts) - 1)); \ -} while(0) - -/* delete "delptr" from the hash table. - * "the usual" patch-up process for the app-order doubly-linked-list. - * The use of _hd_hh_del below deserves special explanation. - * These used to be expressed using (delptr) but that led to a bug - * if someone used the same symbol for the head and deletee, like - * HASH_DELETE(hh,users,users); - * We want that to work, but by changing the head (users) below - * we were forfeiting our ability to further refer to the deletee (users) - * in the patch-up process. Solution: use scratch space to - * copy the deletee pointer, then the latter references are via that - * scratch pointer rather than through the repointed (users) symbol. - */ -#define HASH_DELETE(hh,head,delptr) \ -do { \ - unsigned _hd_bkt; \ - struct UT_hash_handle *_hd_hh_del; \ - if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \ - uthash_free((head)->hh.tbl->buckets, \ - (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \ - HASH_BLOOM_FREE((head)->hh.tbl); \ - uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ - head = NULL; \ - } else { \ - _hd_hh_del = &((delptr)->hh); \ - if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \ - (head)->hh.tbl->tail = \ - (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \ - (head)->hh.tbl->hho); \ - } \ - if ((delptr)->hh.prev) { \ - ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \ - (head)->hh.tbl->hho))->next = (delptr)->hh.next; \ - } else { \ - DECLTYPE_ASSIGN(head,(delptr)->hh.next); \ - } \ - if (_hd_hh_del->next) { \ - ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next + \ - (head)->hh.tbl->hho))->prev = \ - _hd_hh_del->prev; \ - } \ - HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ - HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \ - (head)->hh.tbl->num_items--; \ - } \ - HASH_FSCK(hh,head); \ -} while (0) - - -/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */ -#define HASH_FIND_STR(head,findstr,out) \ - HASH_FIND(hh,head,findstr,strlen(findstr),out) -#define HASH_ADD_STR(head,strfield,add) \ - HASH_ADD(hh,head,strfield,strlen(add->strfield),add) -#define HASH_FIND_INT(head,findint,out) \ - HASH_FIND(hh,head,findint,sizeof(int),out) -#define HASH_ADD_INT(head,intfield,add) \ - HASH_ADD(hh,head,intfield,sizeof(int),add) -#define HASH_FIND_PTR(head,findptr,out) \ - HASH_FIND(hh,head,findptr,sizeof(void *),out) -#define HASH_ADD_PTR(head,ptrfield,add) \ - HASH_ADD(hh,head,ptrfield,sizeof(void *),add) -#define HASH_DEL(head,delptr) \ - HASH_DELETE(hh,head,delptr) - -/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined. - * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined. - */ -#ifdef HASH_DEBUG -#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0) -#define HASH_FSCK(hh,head) \ -do { \ - unsigned _bkt_i; \ - unsigned _count, _bkt_count; \ - char *_prev; \ - struct UT_hash_handle *_thh; \ - if (head) { \ - _count = 0; \ - for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \ - _bkt_count = 0; \ - _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \ - _prev = NULL; \ - while (_thh) { \ - if (_prev != (char*)(_thh->hh_prev)) { \ - HASH_OOPS("invalid hh_prev %p, actual %p\n", \ - _thh->hh_prev, _prev ); \ - } \ - _bkt_count++; \ - _prev = (char*)(_thh); \ - _thh = _thh->hh_next; \ - } \ - _count += _bkt_count; \ - if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \ - HASH_OOPS("invalid bucket count %d, actual %d\n", \ - (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \ - } \ - } \ - if (_count != (head)->hh.tbl->num_items) { \ - HASH_OOPS("invalid hh item count %d, actual %d\n", \ - (head)->hh.tbl->num_items, _count ); \ - } \ - /* traverse hh in app order; check next/prev integrity, count */ \ - _count = 0; \ - _prev = NULL; \ - _thh = &(head)->hh; \ - while (_thh) { \ - _count++; \ - if (_prev !=(char*)(_thh->prev)) { \ - HASH_OOPS("invalid prev %p, actual %p\n", \ - _thh->prev, _prev ); \ - } \ - _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \ - _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \ - (head)->hh.tbl->hho) : NULL ); \ - } \ - if (_count != (head)->hh.tbl->num_items) { \ - HASH_OOPS("invalid app item count %d, actual %d\n", \ - (head)->hh.tbl->num_items, _count ); \ - } \ - } \ -} while (0) -#else -#define HASH_FSCK(hh,head) -#endif - -/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to - * the descriptor to which this macro is defined for tuning the hash function. - * The app can #include to get the prototype for write(2). */ -#ifdef HASH_EMIT_KEYS -#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \ -do { \ - unsigned _klen = fieldlen; \ - write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \ - write(HASH_EMIT_KEYS, keyptr, fieldlen); \ -} while (0) -#else -#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) -#endif - -/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */ -#ifdef HASH_FUNCTION -#define HASH_FCN HASH_FUNCTION -#else -#define HASH_FCN HASH_JEN -#endif - -/* The Bernstein hash function, used in Perl prior to v5.6 */ -#define HASH_BER(key,keylen,num_bkts,hashv,bkt) \ -do { \ - unsigned _hb_keylen=keylen; \ - char *_hb_key=(char*)(key); \ - (hashv) = 0; \ - while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \ - bkt = (hashv) & (num_bkts-1); \ -} while (0) - - -/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at - * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */ -#define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \ -do { \ - unsigned _sx_i; \ - char *_hs_key=(char*)(key); \ - hashv = 0; \ - for(_sx_i=0; _sx_i < keylen; _sx_i++) \ - hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \ - bkt = hashv & (num_bkts-1); \ -} while (0) - -#define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \ -do { \ - unsigned _fn_i; \ - char *_hf_key=(char*)(key); \ - hashv = 2166136261UL; \ - for(_fn_i=0; _fn_i < keylen; _fn_i++) \ - hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \ - bkt = hashv & (num_bkts-1); \ -} while(0) - -#define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \ -do { \ - unsigned _ho_i; \ - char *_ho_key=(char*)(key); \ - hashv = 0; \ - for(_ho_i=0; _ho_i < keylen; _ho_i++) { \ - hashv += _ho_key[_ho_i]; \ - hashv += (hashv << 10); \ - hashv ^= (hashv >> 6); \ - } \ - hashv += (hashv << 3); \ - hashv ^= (hashv >> 11); \ - hashv += (hashv << 15); \ - bkt = hashv & (num_bkts-1); \ -} while(0) - -#define HASH_JEN_MIX(a,b,c) \ -do { \ - a -= b; a -= c; a ^= ( c >> 13 ); \ - b -= c; b -= a; b ^= ( a << 8 ); \ - c -= a; c -= b; c ^= ( b >> 13 ); \ - a -= b; a -= c; a ^= ( c >> 12 ); \ - b -= c; b -= a; b ^= ( a << 16 ); \ - c -= a; c -= b; c ^= ( b >> 5 ); \ - a -= b; a -= c; a ^= ( c >> 3 ); \ - b -= c; b -= a; b ^= ( a << 10 ); \ - c -= a; c -= b; c ^= ( b >> 15 ); \ -} while (0) - -#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \ -do { \ - unsigned _hj_i,_hj_j,_hj_k; \ - char *_hj_key=(char*)(key); \ - hashv = 0xfeedbeef; \ - _hj_i = _hj_j = 0x9e3779b9; \ - _hj_k = (unsigned)keylen; \ - while (_hj_k >= 12) { \ - _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \ - + ( (unsigned)_hj_key[2] << 16 ) \ - + ( (unsigned)_hj_key[3] << 24 ) ); \ - _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \ - + ( (unsigned)_hj_key[6] << 16 ) \ - + ( (unsigned)_hj_key[7] << 24 ) ); \ - hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \ - + ( (unsigned)_hj_key[10] << 16 ) \ - + ( (unsigned)_hj_key[11] << 24 ) ); \ - \ - HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ - \ - _hj_key += 12; \ - _hj_k -= 12; \ - } \ - hashv += keylen; \ - switch ( _hj_k ) { \ - case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \ - case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \ - case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \ - case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \ - case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \ - case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \ - case 5: _hj_j += _hj_key[4]; \ - case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \ - case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \ - case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \ - case 1: _hj_i += _hj_key[0]; \ - } \ - HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ - bkt = hashv & (num_bkts-1); \ -} while(0) - -/* The Paul Hsieh hash function */ -#undef get16bits -#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ - || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) -#define get16bits(d) (*((const uint16_t *) (d))) -#endif - -#if !defined (get16bits) -#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \ - +(uint32_t)(((const uint8_t *)(d))[0]) ) -#endif -#define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \ -do { \ - char *_sfh_key=(char*)(key); \ - uint32_t _sfh_tmp, _sfh_len = keylen; \ - \ - int _sfh_rem = _sfh_len & 3; \ - _sfh_len >>= 2; \ - hashv = 0xcafebabe; \ - \ - /* Main loop */ \ - for (;_sfh_len > 0; _sfh_len--) { \ - hashv += get16bits (_sfh_key); \ - _sfh_tmp = (get16bits (_sfh_key+2) << 11) ^ hashv; \ - hashv = (hashv << 16) ^ _sfh_tmp; \ - _sfh_key += 2*sizeof (uint16_t); \ - hashv += hashv >> 11; \ - } \ - \ - /* Handle end cases */ \ - switch (_sfh_rem) { \ - case 3: hashv += get16bits (_sfh_key); \ - hashv ^= hashv << 16; \ - hashv ^= _sfh_key[sizeof (uint16_t)] << 18; \ - hashv += hashv >> 11; \ - break; \ - case 2: hashv += get16bits (_sfh_key); \ - hashv ^= hashv << 11; \ - hashv += hashv >> 17; \ - break; \ - case 1: hashv += *_sfh_key; \ - hashv ^= hashv << 10; \ - hashv += hashv >> 1; \ - } \ - \ - /* Force "avalanching" of final 127 bits */ \ - hashv ^= hashv << 3; \ - hashv += hashv >> 5; \ - hashv ^= hashv << 4; \ - hashv += hashv >> 17; \ - hashv ^= hashv << 25; \ - hashv += hashv >> 6; \ - bkt = hashv & (num_bkts-1); \ -} while(0) - -#ifdef HASH_USING_NO_STRICT_ALIASING -/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads. - * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error. - * MurmurHash uses the faster approach only on CPU's where we know it's safe. - * - * Note the preprocessor built-in defines can be emitted using: - * - * gcc -m64 -dM -E - < /dev/null (on gcc) - * cc -## a.c (where a.c is a simple test file) (Sun Studio) - */ -#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86)) -#define MUR_GETBLOCK(p,i) p[i] -#else /* non intel */ -#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0) -#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1) -#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2) -#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3) -#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL)) -#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__)) -#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24)) -#define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16)) -#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8)) -#else /* assume little endian non-intel */ -#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24)) -#define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16)) -#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8)) -#endif -#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \ - (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \ - (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \ - MUR_ONE_THREE(p)))) -#endif -#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r)))) -#define MUR_FMIX(_h) \ -do { \ - _h ^= _h >> 16; \ - _h *= 0x85ebca6b; \ - _h ^= _h >> 13; \ - _h *= 0xc2b2ae35l; \ - _h ^= _h >> 16; \ -} while(0) - -#define HASH_MUR(key,keylen,num_bkts,hashv,bkt) \ -do { \ - const uint8_t *_mur_data = (const uint8_t*)(key); \ - const int _mur_nblocks = (keylen) / 4; \ - uint32_t _mur_h1 = 0xf88D5353; \ - uint32_t _mur_c1 = 0xcc9e2d51; \ - uint32_t _mur_c2 = 0x1b873593; \ - uint32_t _mur_k1 = 0; \ - const uint8_t *_mur_tail; \ - const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \ - int _mur_i; \ - for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \ - _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \ - _mur_k1 *= _mur_c1; \ - _mur_k1 = MUR_ROTL32(_mur_k1,15); \ - _mur_k1 *= _mur_c2; \ - \ - _mur_h1 ^= _mur_k1; \ - _mur_h1 = MUR_ROTL32(_mur_h1,13); \ - _mur_h1 = _mur_h1*5+0xe6546b64; \ - } \ - _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \ - _mur_k1=0; \ - switch((keylen) & 3) { \ - case 3: _mur_k1 ^= _mur_tail[2] << 16; \ - case 2: _mur_k1 ^= _mur_tail[1] << 8; \ - case 1: _mur_k1 ^= _mur_tail[0]; \ - _mur_k1 *= _mur_c1; \ - _mur_k1 = MUR_ROTL32(_mur_k1,15); \ - _mur_k1 *= _mur_c2; \ - _mur_h1 ^= _mur_k1; \ - } \ - _mur_h1 ^= (keylen); \ - MUR_FMIX(_mur_h1); \ - hashv = _mur_h1; \ - bkt = hashv & (num_bkts-1); \ -} while(0) -#endif /* HASH_USING_NO_STRICT_ALIASING */ - -/* key comparison function; return 0 if keys equal */ -#define HASH_KEYCMP(a,b,len) memcmp(a,b,len) - -/* iterate over items in a known bucket to find desired item */ -#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \ -do { \ - if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \ - else out=NULL; \ - while (out) { \ - if ((out)->hh.keylen == keylen_in) { \ - if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break; \ - } \ - if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \ - else out = NULL; \ - } \ -} while(0) - -/* add an item to a bucket */ -#define HASH_ADD_TO_BKT(head,addhh) \ -do { \ - head.count++; \ - (addhh)->hh_next = head.hh_head; \ - (addhh)->hh_prev = NULL; \ - if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \ - (head).hh_head=addhh; \ - if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \ - && (addhh)->tbl->noexpand != 1) { \ - HASH_EXPAND_BUCKETS((addhh)->tbl); \ - } \ -} while(0) - -/* remove an item from a given bucket */ -#define HASH_DEL_IN_BKT(hh,head,hh_del) \ - (head).count--; \ - if ((head).hh_head == hh_del) { \ - (head).hh_head = hh_del->hh_next; \ - } \ - if (hh_del->hh_prev) { \ - hh_del->hh_prev->hh_next = hh_del->hh_next; \ - } \ - if (hh_del->hh_next) { \ - hh_del->hh_next->hh_prev = hh_del->hh_prev; \ - } - -/* Bucket expansion has the effect of doubling the number of buckets - * and redistributing the items into the new buckets. Ideally the - * items will distribute more or less evenly into the new buckets - * (the extent to which this is true is a measure of the quality of - * the hash function as it applies to the key domain). - * - * With the items distributed into more buckets, the chain length - * (item count) in each bucket is reduced. Thus by expanding buckets - * the hash keeps a bound on the chain length. This bounded chain - * length is the essence of how a hash provides constant time lookup. - * - * The calculation of tbl->ideal_chain_maxlen below deserves some - * explanation. First, keep in mind that we're calculating the ideal - * maximum chain length based on the *new* (doubled) bucket count. - * In fractions this is just n/b (n=number of items,b=new num buckets). - * Since the ideal chain length is an integer, we want to calculate - * ceil(n/b). We don't depend on floating point arithmetic in this - * hash, so to calculate ceil(n/b) with integers we could write - * - * ceil(n/b) = (n/b) + ((n%b)?1:0) - * - * and in fact a previous version of this hash did just that. - * But now we have improved things a bit by recognizing that b is - * always a power of two. We keep its base 2 log handy (call it lb), - * so now we can write this with a bit shift and logical AND: - * - * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0) - * - */ -#define HASH_EXPAND_BUCKETS(tbl) \ -do { \ - unsigned _he_bkt; \ - unsigned _he_bkt_i; \ - struct UT_hash_handle *_he_thh, *_he_hh_nxt; \ - UT_hash_bucket *_he_new_buckets, *_he_newbkt; \ - _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \ - 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ - if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \ - memset(_he_new_buckets, 0, \ - 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ - tbl->ideal_chain_maxlen = \ - (tbl->num_items >> (tbl->log2_num_buckets+1)) + \ - ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \ - tbl->nonideal_items = 0; \ - for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \ - { \ - _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \ - while (_he_thh) { \ - _he_hh_nxt = _he_thh->hh_next; \ - HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \ - _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \ - if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \ - tbl->nonideal_items++; \ - _he_newbkt->expand_mult = _he_newbkt->count / \ - tbl->ideal_chain_maxlen; \ - } \ - _he_thh->hh_prev = NULL; \ - _he_thh->hh_next = _he_newbkt->hh_head; \ - if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \ - _he_thh; \ - _he_newbkt->hh_head = _he_thh; \ - _he_thh = _he_hh_nxt; \ - } \ - } \ - uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \ - tbl->num_buckets *= 2; \ - tbl->log2_num_buckets++; \ - tbl->buckets = _he_new_buckets; \ - tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \ - (tbl->ineff_expands+1) : 0; \ - if (tbl->ineff_expands > 1) { \ - tbl->noexpand=1; \ - uthash_noexpand_fyi(tbl); \ - } \ - uthash_expand_fyi(tbl); \ -} while(0) - - -/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */ -/* Note that HASH_SORT assumes the hash handle name to be hh. - * HASH_SRT was added to allow the hash handle name to be passed in. */ -#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn) -#define HASH_SRT(hh,head,cmpfcn) \ -do { \ - unsigned _hs_i; \ - unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \ - struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \ - if (head) { \ - _hs_insize = 1; \ - _hs_looping = 1; \ - _hs_list = &((head)->hh); \ - while (_hs_looping) { \ - _hs_p = _hs_list; \ - _hs_list = NULL; \ - _hs_tail = NULL; \ - _hs_nmerges = 0; \ - while (_hs_p) { \ - _hs_nmerges++; \ - _hs_q = _hs_p; \ - _hs_psize = 0; \ - for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \ - _hs_psize++; \ - _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ - ((void*)((char*)(_hs_q->next) + \ - (head)->hh.tbl->hho)) : NULL); \ - if (! (_hs_q) ) break; \ - } \ - _hs_qsize = _hs_insize; \ - while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \ - if (_hs_psize == 0) { \ - _hs_e = _hs_q; \ - _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ - ((void*)((char*)(_hs_q->next) + \ - (head)->hh.tbl->hho)) : NULL); \ - _hs_qsize--; \ - } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \ - _hs_e = _hs_p; \ - _hs_p = (UT_hash_handle*)((_hs_p->next) ? \ - ((void*)((char*)(_hs_p->next) + \ - (head)->hh.tbl->hho)) : NULL); \ - _hs_psize--; \ - } else if (( \ - cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \ - DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \ - ) <= 0) { \ - _hs_e = _hs_p; \ - _hs_p = (UT_hash_handle*)((_hs_p->next) ? \ - ((void*)((char*)(_hs_p->next) + \ - (head)->hh.tbl->hho)) : NULL); \ - _hs_psize--; \ - } else { \ - _hs_e = _hs_q; \ - _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ - ((void*)((char*)(_hs_q->next) + \ - (head)->hh.tbl->hho)) : NULL); \ - _hs_qsize--; \ - } \ - if ( _hs_tail ) { \ - _hs_tail->next = ((_hs_e) ? \ - ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \ - } else { \ - _hs_list = _hs_e; \ - } \ - _hs_e->prev = ((_hs_tail) ? \ - ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \ - _hs_tail = _hs_e; \ - } \ - _hs_p = _hs_q; \ - } \ - _hs_tail->next = NULL; \ - if ( _hs_nmerges <= 1 ) { \ - _hs_looping=0; \ - (head)->hh.tbl->tail = _hs_tail; \ - DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \ - } \ - _hs_insize *= 2; \ - } \ - HASH_FSCK(hh,head); \ - } \ -} while (0) - -/* This function selects items from one hash into another hash. - * The end result is that the selected items have dual presence - * in both hashes. There is no copy of the items made; rather - * they are added into the new hash through a secondary hash - * hash handle that must be present in the structure. */ -#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \ -do { \ - unsigned _src_bkt, _dst_bkt; \ - void *_last_elt=NULL, *_elt; \ - UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \ - ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \ - if (src) { \ - for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \ - for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \ - _src_hh; \ - _src_hh = _src_hh->hh_next) { \ - _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \ - if (cond(_elt)) { \ - _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \ - _dst_hh->key = _src_hh->key; \ - _dst_hh->keylen = _src_hh->keylen; \ - _dst_hh->hashv = _src_hh->hashv; \ - _dst_hh->prev = _last_elt; \ - _dst_hh->next = NULL; \ - if (_last_elt_hh) { _last_elt_hh->next = _elt; } \ - if (!dst) { \ - DECLTYPE_ASSIGN(dst,_elt); \ - HASH_MAKE_TABLE(hh_dst,dst); \ - } else { \ - _dst_hh->tbl = (dst)->hh_dst.tbl; \ - } \ - HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \ - HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \ - (dst)->hh_dst.tbl->num_items++; \ - _last_elt = _elt; \ - _last_elt_hh = _dst_hh; \ - } \ - } \ - } \ - } \ - HASH_FSCK(hh_dst,dst); \ -} while (0) - -#define HASH_CLEAR(hh,head) \ -do { \ - if (head) { \ - uthash_free((head)->hh.tbl->buckets, \ - (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \ - HASH_BLOOM_FREE((head)->hh.tbl); \ - uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ - (head)=NULL; \ - } \ -} while(0) - -#ifdef NO_DECLTYPE -#define HASH_ITER(hh,head,el,tmp) \ -for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \ - el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) -#else -#define HASH_ITER(hh,head,el,tmp) \ -for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \ - el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL)) -#endif - -/* obtain a count of items in the hash */ -#define HASH_COUNT(head) HASH_CNT(hh,head) -#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0) - -typedef struct UT_hash_bucket { - struct UT_hash_handle *hh_head; - unsigned count; - - /* expand_mult is normally set to 0. In this situation, the max chain length - * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If - * the bucket's chain exceeds this length, bucket expansion is triggered). - * However, setting expand_mult to a non-zero value delays bucket expansion - * (that would be triggered by additions to this particular bucket) - * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH. - * (The multiplier is simply expand_mult+1). The whole idea of this - * multiplier is to reduce bucket expansions, since they are expensive, in - * situations where we know that a particular bucket tends to be overused. - * It is better to let its chain length grow to a longer yet-still-bounded - * value, than to do an O(n) bucket expansion too often. - */ - unsigned expand_mult; - -} UT_hash_bucket; - -/* random signature used only to find hash tables in external analysis */ -#define HASH_SIGNATURE 0xa0111fe1 -#define HASH_BLOOM_SIGNATURE 0xb12220f2 - -typedef struct UT_hash_table { - UT_hash_bucket *buckets; - unsigned num_buckets, log2_num_buckets; - unsigned num_items; - struct UT_hash_handle *tail; /* tail hh in app order, for fast append */ - ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */ - - /* in an ideal situation (all buckets used equally), no bucket would have - * more than ceil(#items/#buckets) items. that's the ideal chain length. */ - unsigned ideal_chain_maxlen; - - /* nonideal_items is the number of items in the hash whose chain position - * exceeds the ideal chain maxlen. these items pay the penalty for an uneven - * hash distribution; reaching them in a chain traversal takes >ideal steps */ - unsigned nonideal_items; - - /* ineffective expands occur when a bucket doubling was performed, but - * afterward, more than half the items in the hash had nonideal chain - * positions. If this happens on two consecutive expansions we inhibit any - * further expansion, as it's not helping; this happens when the hash - * function isn't a good fit for the key domain. When expansion is inhibited - * the hash will still work, albeit no longer in constant time. */ - unsigned ineff_expands, noexpand; - - uint32_t signature; /* used only to find hash tables in external analysis */ -#ifdef HASH_BLOOM - uint32_t bloom_sig; /* used only to test bloom exists in external analysis */ - uint8_t *bloom_bv; - char bloom_nbits; -#endif - -} UT_hash_table; - -typedef struct UT_hash_handle { - struct UT_hash_table *tbl; - void *prev; /* prev element in app order */ - void *next; /* next element in app order */ - struct UT_hash_handle *hh_prev; /* previous hh in bucket order */ - struct UT_hash_handle *hh_next; /* next hh in bucket order */ - void *key; /* ptr to enclosing struct's key */ - unsigned keylen; /* enclosing struct's key len */ - unsigned hashv; /* result of hash-fcn(key) */ -} UT_hash_handle; - -#endif /* UTHASH_H */ diff --git a/contrib/elftoolchain/cxxfilt/Makefile b/contrib/elftoolchain/cxxfilt/Makefile deleted file mode 100644 index 24d5c970..00000000 --- a/contrib/elftoolchain/cxxfilt/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= c++filt -SRCS= cxxfilt.c - -WARNS?= 6 - -DPADD= ${LIBELFTC} ${LIBELF} -LDADD= -lelftc -lelf - -MAN1= c++filt.1 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/cxxfilt/c++filt.1 b/contrib/elftoolchain/cxxfilt/c++filt.1 deleted file mode 100644 index e01a4ed3..00000000 --- a/contrib/elftoolchain/cxxfilt/c++filt.1 +++ /dev/null @@ -1,109 +0,0 @@ -.\" Copyright (c) 2009-2011 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer -.\" in this position and unchanged. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 24, 2011 -.Dt C++FILT 1 -.Os -.Sh NAME -.Nm c++filt -.Nd decode C++ symbols -.Sh SYNOPSIS -.Nm -.Op Fl -help -.Op Fl _ | Fl -strip-underscores -.Op Fl n | Fl -no-strip-underscores -.Op Fl p | Fl -no-params -.Op Fl s Ar scheme | Fl -format Ns = Ns Ar scheme -.Op Fl V | Fl -version -.Op Ar encoded-names ... -.Sh DESCRIPTION -The -.Nm -utility translates encoded C++ symbol names to human-readable form. -.Pp -The -.Nm -utility has two operating modes. -.Bl -bullet -.It -If arguments -.Ar encoded-names -are not specified, then -.Nm -will act as a filter, reading from standard input -and writing to standard output. -.It -If arguments -.Ar encoded-names -are specified, then -.Nm -will decode each such argument in turn, writing its decoded form -to standard output. -.El -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width indent -.It Fl -help -Print a help message and exit. -.It Fl _ | Fl -strip-underscores -Remove a leading underscore from symbol names prior to decoding them. -.It Fl n | Fl -no-strip-underscores -Do not remove leading underscores from names. -.It Fl p | Fl -no-params -This option is recognized but ignored. -.It Fl s Ar scheme | Fl -format Ns = Ns Ar scheme -Select the encoding scheme to use. -Argument -.Ar scheme -can be one of the following: -.Bl -tag -width "gnu-v5" -.It Ar arm -Use the encoding scheme specified by the C++ Annotated Reference Manual. -.It Ar auto -Guess the encoding scheme from the input. -.It Ar gnu -Use the encoding scheme used by the GNU C++ compiler. -.It Ar gnu-v3 -Use the encoding scheme used by the GNU C++ compiler, version 3. -.El -.It Fl V | Fl -version -Print a version identifier for -.Nm -and exit. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr nm 1 , -.Xr strip 1 , -.Xr elftc_demangle 3 -.Sh AUTHORS -The -.Nm -utility was written by -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/contrib/elftoolchain/cxxfilt/cxxfilt.c b/contrib/elftoolchain/cxxfilt/cxxfilt.c deleted file mode 100644 index 7b3378c4..00000000 --- a/contrib/elftoolchain/cxxfilt/cxxfilt.c +++ /dev/null @@ -1,203 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -#define STRBUFSZ 8192 - -static int stripus = 0; -static int noparam = 0; -static int format = 0; - -enum options -{ - OPTION_HELP, - OPTION_VERSION -}; - -static struct option longopts[] = -{ - {"format", required_argument, NULL, 's'}, - {"help", no_argument, NULL, OPTION_HELP}, - {"no-params", no_argument, NULL, 'p'}, - {"no-strip-underscores", no_argument, NULL, 'n'}, - {"strip-underscores", no_argument, NULL, '_'}, - {"version", no_argument, NULL, 'V'}, - {NULL, 0, NULL, 0} -}; - -static struct { - const char *fname; - int fvalue; -} flist[] = { - {"auto", 0}, - {"arm", ELFTC_DEM_ARM}, - {"gnu", ELFTC_DEM_GNU2}, - {"gnu-v3", ELFTC_DEM_GNU3} -}; - -#define USAGE_MESSAGE "\ -Usage: %s [options] [encoded-names...]\n\ - Translate C++ symbol names to human-readable form.\n\n\ - Options:\n\ - -_ | --strip-underscores Remove leading underscores prior to decoding.\n\ - -n | --no-strip-underscores Do not remove leading underscores.\n\ - -p | --no-params (Accepted but ignored).\n\ - -s SCHEME | --format=SCHEME Select the encoding scheme to use.\n\ - Valid schemes are: 'arm', 'auto', 'gnu' and\n\ - 'gnu-v3'.\n\ - --help Print a help message.\n\ - --version Print a version identifier and exit.\n" - -static void -usage(void) -{ - - (void) fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(1); -} - -static void -version(void) -{ - fprintf(stderr, "%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(0); -} - -static int -find_format(const char *fstr) -{ - int i; - - for (i = 0; (size_t) i < sizeof(flist) / sizeof(flist[0]); i++) { - if (!strcmp(fstr, flist[i].fname)) - return (flist[i].fvalue); - } - - return (-1); -} - -static char * -demangle(char *name) -{ - static char dem[STRBUFSZ]; - - if (stripus && *name == '_') - name++; - - if (strlen(name) == 0) - return (NULL); - - if (elftc_demangle(name, dem, sizeof(dem), (unsigned) format) < 0) - return (NULL); - - return (dem); -} - -int -main(int argc, char **argv) -{ - char *dem, buf[STRBUFSZ]; - size_t p; - int c, n, opt; - - while ((opt = getopt_long(argc, argv, "_nps:V", longopts, NULL)) != - -1) { - switch (opt) { - case '_': - stripus = 1; - break; - case 'n': - stripus = 0; - break; - case 'p': - noparam = 1; - break; - case 's': - if ((format = find_format(optarg)) < 0) - errx(EXIT_FAILURE, "unsupported format: %s", - optarg); - break; - case 'V': - version(); - /* NOT REACHED */ - case OPTION_HELP: - default: - usage(); - /* NOT REACHED */ - } - } - - argv += optind; - argc -= optind; - - if (*argv != NULL) { - for (n = 0; n < argc; n++) { - if ((dem = demangle(argv[n])) == NULL) - printf("%s\n", argv[n]); - else - printf("%s\n", dem); - } - } else { - p = 0; - for (;;) { - setvbuf(stdout, NULL, _IOLBF, 0); - c = fgetc(stdin); - if (c == EOF || !(isalnum(c) || strchr(".$_", c))) { - if (p > 0) { - buf[p] = '\0'; - if ((dem = demangle(buf)) == NULL) - printf("%s", buf); - else - printf("%s", dem); - p = 0; - } - if (c == EOF) - break; - putchar(c); - } else { - if ((size_t) p >= sizeof(buf) - 1) - warnx("buffer overflowed"); - else - buf[p++] = (char) c; - } - - } - } - - exit(0); -} diff --git a/contrib/elftoolchain/documentation/Makefile b/contrib/elftoolchain/documentation/Makefile deleted file mode 100644 index 3ff16bbe..00000000 --- a/contrib/elftoolchain/documentation/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= .. - -SUBDIR= libelf-by-example - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/documentation/libelf-by-example/Makefile b/contrib/elftoolchain/documentation/libelf-by-example/Makefile deleted file mode 100644 index 54b5cd3a..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# -# Libelf by Example -# -# $Id$ - -TOP = ../.. - -DOC= libelf-by-example - -SRCS= libelf-by-example.tex prog1.txt prog2.txt prog3.txt \ - prog4.txt prog5.txt prog6.txt -COVER_SRCS= title-page-content.tex -GENERATED_VERSION_TEX= version.tex - -CLEANFILES+= ${SRCS:Mprog*:S/.txt/.c/} - -.include "${TOP}/mk/elftoolchain.tex.mk" - -.if ${OS_HOST} == "Linux" -EXTRA_FLAGS= -I/usr/include/bsd -DLIBBSD_OVERLAY -EXTRA_LIBS= -lbsd -.endif - -check-example-syntax: .PHONY -.for f in ${SRCS:Mprog*:S/.txt//} - @sed -e 's/@[^@]*@//' \ - ${.CURDIR}/${f}.txt > ${.OBJDIR}/${f}.c; \ - echo -n ${f} ' '; \ - libelf="${.OBJDIR}/${TOP}/libelf"; \ - if [ ! -d $${libelf} -a "${.CURDIR}" != "${.OBJDIR}" ]; then \ - suffix="${.OBJDIR:S,${.CURDIR}/,,}"; \ - libelf="${.CURDIR}/${TOP}/libelf/$${suffix}"; \ - fi; \ - cc -I${.CURDIR}/${TOP}/common \ - -I${.CURDIR}/${TOP}/libelf \ - ${EXTRA_FLAGS} \ - ${.OBJDIR}/${f}.c \ - -L"$${libelf}" -lelf ${EXTRA_LIBS} && \ - rm ${.OBJDIR}/a.out -.endfor - @echo diff --git a/contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.cover.tex b/contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.cover.tex deleted file mode 100644 index b1d159cc..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.cover.tex +++ /dev/null @@ -1,7 +0,0 @@ -% This LaTeX document generates a single page of output containing the cover -% page for the "libelf by Example" tutorial. -\documentclass[letterpaper]{article} -\usepackage{lmodern} -\begin{document} -\include{title-page-content} -\end{document} diff --git a/contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.tex b/contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.tex deleted file mode 100644 index 0f30890f..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/libelf-by-example.tex +++ /dev/null @@ -1,2917 +0,0 @@ -% -% Libelf by Example -% -% Copyright (c) 2006-2020 Joseph Koshy. All rights reserved. -% -% Redistribution and use in source and binary forms, with or without -% modification, are permitted provided that the following conditions -% are met: -% 1. Redistributions of source code must retain the above copyright -% notice, this list of conditions and the following disclaimer. -% 2. Redistributions in binary form must reproduce the above copyright -% notice, this list of conditions and the following disclaimer in the -% documentation and/or other materials provided with the distribution. -% -% This software is provided by Joseph Koshy ``as is'' and -% any express or implied warranties, including, but not limited to, the -% implied warranties of merchantability and fitness for a particular purpose -% are disclaimed. in no event shall Joseph Koshy be liable -% for any direct, indirect, incidental, special, exemplary, or consequential -% damages (including, but not limited to, procurement of substitute goods -% or services; loss of use, data, or profits; or business interruption) -% however caused and on any theory of liability, whether in contract, strict -% liability, or tort (including negligence or otherwise) arising in any way -% out of the use of this software, even if advised of the possibility of -% such damage. -% -% $Id$ -% -\documentclass[a4paper,pdftex]{book} - -\usepackage{array} -\usepackage{color} -\usepackage{comment} -\usepackage{fancybox} -\usepackage{float} -\usepackage{graphicx} -\usepackage{listings} -\usepackage{lmodern} -\usepackage{makeidx} -\usepackage{tikz} -\usepackage{varioref} -\usepackage{xspace} - -\usepackage[colorlinks=true,linkcolor=blue]{hyperref} - -% TikZ configuration. -\usetikzlibrary{arrows,calc,chains,mindmap,positioning,shapes.multipart} -\tikzset{every picture/.style={ - >=latex' % LaTeX style arrows. - } -} - -% Document-specific LaTeX commands. -\makeatletter -\newcommand{\code}[1]{\texttt{#1}} -\newcommand{\constant}[1]{\texttt{#1}\index{#1@\texttt{#1}}} -\newcommand{\elftoolchainproject}{\href{https://elftoolchain.sourceforge.io/}% - {ElfToolChain Project}\xspace}% -\newcommand{\function}[1]{\texttt{#1}\index{#1@\texttt{#1}}}% -\newcommand{\filename}[1]{\texttt{#1}} -\newcommand{\firstterm}[1]{\textit{#1}} -\newcommand{\library}[1]{\texttt{#1}} -\newcommand{\parameter}[1]{\texttt{#1}\index{#1@\texttt{#1}}} -\newcommand{\reg}{\raisebox{0.7ex}{\small\textregistered}\xspace} -\newcommand{\tableheader}[1]{\small\textbf{#1}} -\newcommand{\tool}[1]{\textbf{#1}} -\newcommand{\trade}{{\small\texttrademark}\xspace} -\newcommand{\type}[1]{\texttt{#1}\index{#1@\texttt{#1}}} -\newcommand{\elfdatastructure}[1]{\textsf{#1}} - -% Define a new environment "callout" that groups a listing and a -% description list together. Inside this environment the "\co" -% command may be used to denote a callout location; a corresponding -% "\coref" command may be used at the place in the text that -% references the callout and the two locations will be cross-linked in -% the PDF file generated. -% -% Usage: -% -% \begin{callout}[color]{UNIQUE-TOKEN} -% ... \co{M} ... -% \begin{lstlisting}[escapechar=@] -% ... @\co{N}@ -% \end{lstlisting} -% \begin{description} -% \item[\coref{M}] ... description ... -% \item[\coref{N}] ... description ... -% \end{description} -% \end{callout} -% -% In the typeset text `M' and `N' are made (PDF) targets and rendered -% in a visually distinct way. `UNIQUE-TOKEN' is used to disambiguate -% between different callout environments in the same text. `color' -% defaults to blue. -\newenvironment{callout}[2][black]{% - \begingroup\newcommand{\@cocolor}{#1}% - \setlength{\shadowsize}{1.2pt}% - \newcommand{\@cogroup}[1]{#2}}{\endgroup} -\newcommand{\@co}[1]{\shadowbox{\color{\@cocolor}#1}} -\newcommand{\co}[1]{% - \hypertarget{\@cogroup.#1.co}{% - \hyperlink{\@cogroup.#1.cr}{\@co{#1}}}} -\newcommand{\coref}[1]{% - \hypertarget{\@cogroup.#1.cr}{% - \hyperlink{\@cogroup.#1.co}{\@co{#1}}}} - -% Add meta-data to the PDF file. -\hypersetup{ - pdftitle={libelf by Example}, - pdfauthor={Joseph Koshy}, - pdfsubject={Handling ELF objects with libelf}, - pdfkeywords={ar archive % - ELF "ELF sections" % - GELF % - loading libelf linker % - programming % - "shared library" "shared objects"} -} -\makeatother - -\makeindex - -\begin{document} -\lstset{language=C,basicstyle=\small\ttfamily,escapechar=@,float} - -% Import the title page. -\begin{titlepage} -\include{title-page-content} -\end{titlepage} - -\setcounter{tocdepth}{1} -\tableofcontents - -\chapter*{Preface} - -This tutorial introduces the \library{libelf} library being developed -at the \elftoolchainproject on -\href{https://sourceforge.net/}{SourceForge.Net}. It uses simple -example programs to show how to create ELF processing tools using the -\library{libelf} library. Along the way the tutorial covers the ELF -file format to the extent needed to understand the example programs -being discussed. - -This tutorial would be of interest to software developers who wish to -write software that processes ELF files. - -The tutorial's example programs are written using the C programming -language. They should compile out of the box on -FreeBSD\makebox[0pt]{,}\trade NetBSD\reg and other BSD-family -operating systems. They should also compile on Debian GNU/Linux\reg -with the \filename{libbsd-dev} package installed. - -\section*{Legal Notice} - -% Adapted from https://brlcad.org/wiki/BSD_Documentation_License. - -Copyright \copyright{} 2006--2020 Joseph Koshy. All rights reserved. - -\vskip.8\baselineskip - -Redistribution and use in source (\LaTeX\ format) and ``compiled'' -forms (EPUB, HTML, PDF, Postscript, RTF, etc), with or without -modification, are permitted provided that the following conditions are -met: - -\begin{itemize} -\item Redistributions of source code (\LaTeX\ format) must retain the - above copyright notice, this list of conditions and the following - disclaimer. -\item Redistributions in compiled form (transformed to other - documentation formats, converted to EPUB, HTML, PDF, Postscript, - RTF, etc) must reproduce the above copyright notice, this list of - conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. -\item The names of the author and contributors may not be used to - endorse or promote products derived from this documentation without - specific prior written permission. -\end{itemize} - -THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR AND CON\-TRIBUTORS -``\hskip-0.5ex{}AS~IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MER\-CHANT\-ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CON\-TRIBUTORS BE LIABLE -FOR ANY DIRECT, IN\-DIRECT, INCIDENT\-AL, SPECIAL, EX\-EMPLARY, OR -CON\-SEQUENT\-IAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PRO\-CURE\-MENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHE\-THER IN CONTRACT, STRICT LIA\-BILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHER\-WISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -\vskip.8\baselineskip - -Many of the designations used by manufacturers and sellers to -distinguish their products are claimed as trademarks. Where those -designations appear in this document, and the author and contributors -were aware of the trademark claim, the designations have been followed -by the ``\raisebox{-.5ex}{\texttrademark}'' or the ``\textregistered'' symbol. - -\section*{Document Identifier} - -You are reading the following version of this tutorial: - -\begin{quote} -\texttt{\input{version}\unskip} -\end{quote} - -\section*{Acknowledgements} - -The following people (names in alphabetical order) offered -constructive criticism of this tutorial: Cherry George Mathew, Douglas -Fraser, Hyogeol Lee, Kai Wang, Prashanth Chandra, Ricardo Nabinger -Sanchez, Sam Arun Raj, Wei-Jen Chen and Y.~Giridhar Appaji Nag. Thank -you, all. - -\chapter{Introduction} - -ELF \index{ELF} stands for Extensible Linking Format. -It is a file format used by compilers, linkers, loaders and other -tools that manipulate object code. - -The ELF specification was released to the public in -1990\index{ELF!history~of} by a group of vendors as an -``\href{https://refspecs.linuxbase.org/elf/elf.pdf}{open - standard}''. ELF has been widely adopted by industry and by the -open-source community on account of its availability and modern -features. The ELF standard supports big and little-endian machine -architectures with 32-bit and 64-bit word widths. It supports -cross-compilation, the use of dynamic shared libraries, and the -special compilation needs of the C++ language.\index{ELF!features} - -Among the open-source operating systems\index{ELF!in~open-source}, the -RedHat\trade RHL 2.0 Beta release (late summer 1995) and the Slackware -v3.0 (November 1995) release were among the first Linux\reg-based -operating systems to use ELF. The first ELF based release for -NetBSD\reg was for the DEC Alpha\trade architecture, in release 1.3 -(January 1998). FreeBSD\trade switched to using ELF as its object -format in FreeBSD 3.0 (October 1998). - -The \library{libelf} library implements a large set of APIs, known as -the ELF(3) \& GELF(3) APIs.\index{libelf@\texttt{libelf}!API} -These APIs allow you to write software that can run on one kind of -machine architecture, while manipulating ELF objects meant for -another. - -There are multiple implementations of the ELF(3)/GELF(3) API set in -the open-source world. This tutorial is based on the \library{libelf} -library being developed as part of the \elftoolchainproject on -\href{https://sourceforge.net/}{SourceForge.Net}. - -The ELF(3)/GELF(3) API set contains over 80 callable functions, and -can be daunting to learn. This tutorial offers a gentle introduction -to this API set. - -\section{What to Expect From This Tutorial} - -This tutorial looks at a series of simple but complete programs, with -each program illustrating a different aspect of the ELF format and the -\library{libelf} library's APIs. Along the way, it introduces the -concepts and data structures needed to understand these example -programs. - -Chapter \ref{chap.getting-started} covers getting started with the -\library{libelf} library. This chapter looks at how to compile and -link an application that uses the library, how to establish a working -ELF version number, how to obtain a handle to a ELF object, and how to -handle errors reported by the \library{libelf} library. - -Chapter \ref{chap.peering-inside} looks at how ELF executables, -relocatable objects and shared objects are laid out. This chapter -describes how the ELF data structure known as the -\elfdatastructure{Executable Header}\index{executable~header} -specifies the layout of the rest of the file. The chapter introduces -the notions of the ``file representation''\index{file~representation} -and ``memory representation''\index{memory~representation} of ELF data -types, and explains how the \library{libelf} library enables programs -to work on ELF objects whose word size and endianness differ from -their ``native'' size and endianness. The example program in this -chapter displays the contents of the ELF -\elfdatastructure{Executable~Header}\index{executable~header} for an -ELF object. - -Chapter \ref{chap.elf-phdr} studies ELF segments, and how these -segments are described by entries in the ELF -\elfdatastructure{Prog\-ram Head\-er - Table}.\index{program~header~table} The example program in this -chapter reads and displays the program header table entries in an ELF -executable. - -Chapter \ref{chap.elf-sections} looks at how data is stored in ELF -sections. It looks at how ELF sections are described by the ELF -\elfdatastructure{Section Header Table},\index{section~header~table} -and how ELF string tables (a special kind of ELF section) are -structured. The example program in this chapter traverses an ELF -object, printing out the names of its sections. - -Chapter \ref{chap.creating-elf} demonstrates how to create new ELF -objects using the \library{libelf} library. This chapter covers the -correct ordering of calls to \library{libelf}'s functions when -creating ELF objects, the default layout used by the library, and the -facilities offered by \library{libelf} for creating ELF objects with -custom layouts. The example program in this chapter creates a new ELF -object from scratch. - -The tutorial then moves on to \tool{ar} -archives. Chapter~\ref{chap.ar} looks at the structure of \tool{ar} -archives and covers \library{libelf}'s facilities for reading these -archives. The example program in this chapter lists the names of the -files present in an \tool{ar} archive. - -Finally, chapter \ref{chap.conclusion} concludes the tutorial with -suggestions for further reading. - -Figure~\vref{fig.concept.map} offers a graphical overview of the -concepts covered by this tutorial. - -\begin{figure} -\begin{tikzpicture}[mindmap,concept color=orange!25] - \node[concept] {Programming with \texttt{libelf}} - [clockwise from=60] - child { - node[concept] {The ELF(3) \& GELF(3) APIs} - [clockwise from=180] - child { node[concept] { library data types } } - child { node[concept] { memory \& file representations } } - child { node[concept] { ordering of calls } } - child { node[concept] { memory management } } - child { node[concept] { extended numbering } } - } - child[level distance=5.5cm] { - node[concept] {Basic concepts} - [clockwise from=60] - child { node[concept] { ELF version, class, byte order } } - child[grow=-60] { - node[concept] {object layout} - [clockwise from=-90] - child { node[concept] { Executable header } } - child { node[concept] (shdr) { Section Headers } } - child { node[concept] (phdr) { Program Headers } } - } - } - child { - node[concept] (elfseg) {ELF Segments} - [clockwise from=-45] - child { node[concept] { type, flags \& alignment } } - child { node[concept] { program headers } } - } - child[level distance=5.5cm] { - node[concept] (elfsec) {ELF Sections} - [clockwise from=0] - child { node[concept] { section header contents } } - child { node[concept] { layout constraints } } - child { node[concept] { iterating over sections } } - child { node[concept] { reading \& writing data } } - child { node[concept] { ELF string tables } } - } - child { - node[concept] { \tool{ar} archives } - [clockwise from=-150] - child { node[concept] { archive structure } } - child { node[concept] { symbol \& string tables } } - child { node[concept] { access APIs } - [clockwise from=90] - child { node[concept] { sequential access } } - child { node[concept] { random access } } - child { node[concept] { header information } } - } - }; -\end{tikzpicture} -\caption{An overview of the concepts covered in this - tutorial.}\label{fig.concept.map} -\end{figure} - -\chapter{Getting Started}\label{chap.getting-started} - -It is time to get a taste of programming with \library{libelf}. - -Our first example program (Program 1, listing~\vref{src.prog.1}) opens -the file named on its command line, and displays the file's type as -recognized by the ELF library. This example covers the basics of -using \library{libelf}: how to compile a program that uses -\library{libelf}, how to initialize the library, how to handle any -errors reported by the library, and how to release resources cleanly -when done. - -\begin{callout}{prog1} - \lstinputlisting[caption=Program 1, label=src.prog.1]{prog1.txt} - - \begin{description} - \item[\coref{1}] The functions and dataypes that make up the ELF(3) - API are declared in the header \filename{libelf.h}. This file - must be included by every source file that uses the - \library{libelf} library.% - \index{libelf@\texttt{libelf}!header file \filename{elf.h}} - - \item[\coref{2}] The library uses an opaque C type named \type{Elf} - as a handle to an ELF object.\index{ELF!descriptor} - - \item[\coref{4}] Before the functions in the library can be invoked, - every application that uses \library{libelf} must indicate the - version of the ELF specification that it expects to use. This is - done by calling the \function{elf\_version} function. - - Calling \function{elf\_version} is mandatory---most of - \library{libelf}'s APIs will return an error if invoked before the - expected ELF version is set. - - \begin{figure} - \begin{tikzpicture}[ - version/.style={ - rectangle split, - rounded corners, - minimum width=7em, - text centered, - fill=black!15, - draw, - rectangle split parts=2, - rectangle split part align={left}, - node distance=7.5em, - }] - \node[version] (application) {Application \nodepart{second} $v_1$}; - \node[version,minimum width=5em] (library) [right=of application] { % - \texttt{libelf} \nodepart{second} $v_1$, $v_2$} - edge [thick,<->] node[auto,swap] {$v_1$} (application); - \node[version] (object) [right=of library] { % - ELF Object \nodepart{second} $v_2$} - edge [thick,<->] node[auto,swap] {$v_2$} (library); - \end{tikzpicture} - \caption{Handling ELF versioning.}\label{fig.versions} - \end{figure} - - Multiple ELF specification versions could come into play when an - application reads or writes an ELF object. In - figure~\vref{fig.versions} the application program using - \library{libelf} expects to work with files conforming to version - $v_1$ of the ELF specification. The ELF object file however - conforms to ELF specification version $v_2$. The \library{libelf} - library understands the semantics of both specification versions - $v_1$ and $v_2$, and so would (in theory) be able to mediate - between the application and the ELF object.\index{ELF!versions} - - In practice, the ELF specification's version has not changed since - its inception; the current version (denoted by the symbol - \constant{EV\_CURRENT}) is 1. - - \item[\coref{5}] The \function{elf\_begin} function takes an open - file descriptor and converts it an \type{Elf} handle. - - The second parameter to \function{elf\_begin} can be one of - `\constant{ELF\_C\_READ}' for opening an ELF object for reading, - `\constant{ELF\_C\_WRITE}' for creating a new ELF object, or - `\constant{ELF\_C\_RDWR}' for opening an ELF object for updates. - The file opening mode for the file descriptor \code{fd} should be - compatible with this parameter: the file descriptor should be - opened for reading for use with \constant{ELF\_C\_READ}, for - writing for use with \constant{ELF\_C\_WRITE}, and for updating - for use with \constant{ELF\_C\_RDWR}. - - The third parameter to \function{elf\_begin} is only used when - reading \tool{ar} ar\-chives. Chapter~\vref{chap.ar} covers - \tool{ar} archive processing. - - \item[\coref{6}] When the ELF library encounters an error, it will - record an error number in an internal location and return a - sentinel value (e.g., the \code{NULL} value from functions - that return pointers). The saved error number indicates - the specific class of error that was encountered. This number can - be retrieved using the \function{elf\_errno} function. - - Numeric error numbers are however not user-friendly. The - \function{elf\_errmsg} function returns a human-readable string - describing the error number passed to it. As a programming - convenience, an error number of -1 denotes the most recent error - number that had been recorded by the library. - - \item[\coref{3} \coref{7}] The ELF library can operate on \tool{ar} - archives and ELF objects. The function \function{elf\_kind} - returns the kind of object associated with an \type{Elf} handle. - The return value of the \function{elf\_kind} function is one of - the values defined by the \type{Elf\_Kind} enumeration in - \filename{libelf.h}. Currently, the library only recognizes ELF - files and \tool{ar} archives. - - \item[\coref{8}] The \function{elf\_end} function releases the - resources held by an \type{Elf} handle. - \end{description} -\end{callout} - -It is now time to compile and run our first example program. - -Save the listing in listing~\vref{src.prog.1} to a file named -\filename{prog1.c}, and then compile and run it as shown in -listing~\vref{scr.prog1}.% -\index{libelf@\texttt{libelf}!linking with} - -\begin{callout}{scr1} - \begin{lstlisting}[basicstyle=\ttfamily, language={}, - caption=Compiling and running prog1, - label=scr.prog1] -% cc -o prog1 prog1.c -lelf @\co{1}@ -% ./prog1 prog1 @\co{2}@ -prog1: elf object -% ./prog1 /usr/lib/libc.a @\co{3}@ -/usr/lib/libc.a: ar(1) archive - \end{lstlisting} - - \begin{description} - \item[\coref{1}] The \code{-lelf} option to the \tool{cc} - comand informs it to link \tool{prog1} with the \library{libelf} - library. - \item[\coref{2}] We invoke \tool{prog1} on itself. If all went well - it should recognize its own executable file to be an ELF object. - \item[\coref{3}] \tool{prog1} should recognize an \tool{ar} archive - correctly. - \end{description} -\end{callout} - -Congratulations! You have created your first ELF-aware program using -\library{libelf}. - -\chapter{Peering Inside an ELF Object}\label{chap.peering-inside} - -This chapter takes a deeper look at the structure of ELF objects. - -\section{ELF Object Kinds} -ELF supports multiple kinds of objects: - -\begin{itemize} -\item \firstterm{Relocatable objects}\index{ELF!relocatable objects} - contain compiled code along with extra information used by tools - like linkers. Relocatable objects are usually created by compilers - when source code is compiled. -\item \firstterm{Executables}\index{ELF!executables} contain - code in a form that an operating system can directly use to launch a - process. The process of forming executables from collections of - relocatable objects is called - \firstterm{linking}\index{linking!definition~of}. -\item \firstterm{Dynamically loadable objects}\index{ELF!dynamically - loadable objects} contain code in a form suitable for - loading into a running process. Shared - libraries\index{shared library} are examples of dynamically loadable - objects. -\item \firstterm{Core files}\index{core files} contain the memory - image of a process. Core files are usually generated when programs - crash. -\end{itemize} - -Each of these kinds of objects has a different internal structure. - -\section{ELF File Layout} - -Figure~\vref{fig.elf.layout} shows the layout of a typical ELF -object.\index{ELF!typical layout} - -Every ELF object starts with a mandatory data structure known as the -ELF \elfdatastructure{Executable Header}.\index{executable~header} -This header is followed by optional content---depending on the kind of -ELF object, this could be an optional ELF \elfdatastructure{Program - Header Table}\index{program~header~table} and zero or more ELF -\elfdatastructure{Sections}\index{sections}: - -\begin{itemize} -\item The ELF \elfdatastructure{Program Header - Table}\index{program~header~table} is found in executables and - dynamically loadable objects. This data structure contains - information that is used when the ELF object is loaded into a - process\index{loading}. We look at the \elfdatastructure{Program - Header Table} more closely in chapter~\vref{chap.elf-phdr}. -\item ELF \elfdatastructure{Sections}\index{sections} are present in - most ELF files. Sections are contiguous regions inside the ELF - object holding data of a specific kind. ELF sections are described - by entries in an ELF \elfdatastructure{Section Header - Table}\index{section~header~table}. - Chapter~\vref{chap.elf-sections} describes ELF - \elfdatastructure{Sections} and the \elfdatastructure{Section - Header Table} in further detail. -\end{itemize} - -\begin{figure} - \begin{center} - \begin{tikzpicture}[ - start chain, - node distance=0pt, - elfpart/.style={ - rectangle, - draw, - minimum height=3\baselineskip, - font=\small, - text width=4.2em - }, - gap/.style={ - draw, - minimum height=3\baselineskip, - minimum width=2ex - }] - - % Depict the structure of an ELF object. - \node[on chain,elfpart,text width=4.4em,fill=black!15] (ehdr) - {Executable Header}; - \node[on chain,gap] (g0) {}; - \node[on chain,elfpart,fill=black!5] (phdr) {Program Header Table}; - \node[on chain,gap] (g1) {}; - \node[on chain,elfpart,fill=black!5] (s0) {Section Data$_{(1)}$}; - \node[on chain,gap] (gl0) {}; - \node[on chain,elfpart,text centered,fill=black!5] (sdots) {\ldots}; - \node[on chain,gap] (gl1) {}; - \node[on chain,elfpart,fill=black!5] (sn) {Section Data$_{(n)}$}; - \node[on chain,gap] (g3) {}; - \node[on chain,elfpart,fill=black!15,fill=black!5] (shdr) - {Section Header Table}; - - % Label the gaps needed for alignments. - \node[below=2em of sdots,text width=10em] - {Possible gaps due to alignment constraints.} - edge [->] ([yshift=-1pt] g0.south) - edge [->] ([yshift=-1pt] g1.south) - edge [->] ([yshift=-1pt] gl0.south) - edge [->] ([yshift=-1pt] gl1.south) - edge [->] ([yshift=-1pt] g3.south); - \end{tikzpicture} - \end{center} - \caption{The layout of a typical ELF File.}\label{fig.elf.layout} -\end{figure} - - -The optional elements of an ELF object are shown with a lighter -background in figure~\vref{fig.elf.layout}. - -\subsubsection{The ELF Executable Header}\label{sec.ehdr} -Table \vref{src.elf.ehdr} describes the layout of an ELF -\elfdatastructure{Executable Header} using a ``C-like'' notation that -shows the sizes and ordering of its -members.\index{executable~header!layout} In an actual ELF object the -data in the header would be stored using the ELF object's ``native'' -byte ordering; this ordering could differ from the byte ordering used -by the program reading the header. 32-bit and 64-bit ELF -\elfdatastructure{Executable Header} structures also have slightly -different layouts due to the differing sizes of their members. - -\begin{callout}{ehdr} - \begin{table} - \begin{tabular}{rl|l} - \mbox{} & \tableheader{32 bit Executable Header} & - \tableheader{64 bit Executable Header} \\ \hline - & \verb+typedef struct {+& - \verb+typedef struct {+\\ -\co{1} & \verb+ unsigned char e_ident[16];+& - \verb+ unsigned char e_ident[16];+\\ -\co{2} & \verb+ uint16_t e_type;+& - \verb+ uint16_t e_type;+\\ -\co{3} & \verb+ uint16_t e_machine;+& - \verb+ uint16_t e_machine;+\\ - & \verb+ uint32_t e_version;+& - \verb+ uint32_t e_version;+\\ - & \verb+ uint32_t e_entry;+& - \verb+ uint32_t e_entry;+\\ -\co{4} & \verb+ uint32_t e_phoff;+& - \verb+ uint64_t e_phoff;+\\ -\co{5} & \verb+ uint32_t e_shoff;+& - \verb+ uint64_t e_shoff;+\\ - & \verb+ uint32_t e_flags;+& - \verb+ uint32_t e_flags;+\\ - & \verb+ uint16_t e_ehsize;+& - \verb+ uint16_t e_ehsize;+\\ - & \verb+ uint16_t e_phentsize;+& - \verb+ uint16_t e_phentsize;+\\ -\co{6} & \verb+ uint16_t e_phnum;+& - \verb+ uint16_t e_phnum;+\\ -\co{7} & \verb+ uint16_t e_shnum;+& - \verb+ uint16_t e_shnum;+\\ -\co{8} & \verb+ uint16_t e_shstrndx;+& - \verb+ uint16_t e_shstrndx;+\\ - & \verb+} Elf32_Ehdr;+& - \verb+} Elf64_Ehdr;+\\ - \end{tabular} - \caption{The ELF \elfdatastructure{Executable Header}.}\label{src.elf.ehdr} - \end{table} - - \begin{description} - \item[\coref{1}] Figure \vref{fig.elf.eident} shows the contents of - the first 16 bytes of the ELF header (the \parameter{e\_ident} - array). - - \begin{figure} - \begin{tikzpicture}[ - start chain, - node distance=0pt, - ei/.style={ - on chain, - draw, - fill=black!#1, - minimum width=3.2em, - minimum height=1.5\baselineskip - }] - - % Helper macro. - \def\e#1{\draw[-,rotate=-45] - ([yshift=-1pt] \tikzchaincurrent.south) -- +(0:0.5cm) - node[rotate=-45,base right] {\footnotesize EI\_#1}} - - % Draw the e_ident[] array. - \node[ei=10] (e0) {0x7F}; \e{MAG0}; - \node[ei=5] (e1) {`E'}; \e{MAG1}; - \node[ei=10] (e2) {`L'}; \e{MAG2}; - \node[ei=5] (e3) {`F'}; \e{MAG3}; - \node[ei=10] (e4) { }; \e{CLASS}; - \node[ei=5] (e5) { }; \e{DATA}; - \node[ei=10] (e6) { }; \e{VERSION}; - \node[ei=5] (e7) { }; \e{OSABI}; - \node[ei=10] (e8) { }; \e{OSABIVERSION}; - \node[ei=0] (e9) {$\ldots$}; - - % Add Labels. - \node[above=1.5em of e2.north] {ELF class: 32/64} - edge [->] ([yshift=1pt] e4.north); - \node[above=3.5em of e3.north east] {Byte order: LSB/MSB} - edge [->] ([yshift=1pt] e5.north); - \node[above=2.8em of e7.north] {ELF version} - edge [->] ([yshift=1pt] e6.north); - \node[above=1.5em of e8.north east,text width=4em] {OS ABI} - edge [->] ([yshift=1pt] e7.north) - edge [->] ([yshift=1pt] e8.north); - \end{tikzpicture} - \caption{The layout of the \parameter{e\_ident} array.}% - \label{fig.elf.eident} - \end{figure} - - The first 4 bytes of an ELF object always contain 0x7F, 0x45 - (ASCII `E'), 0x4c (ASCII `L') and 0x46 (ASCII `F'). - - The next three bytes specify: - \begin{itemize} - \item The ELF class\index{ELF!class} of the object---whether it is a 32 - bit ELF object (\constant{ELFCLASS32}) or a 64 bit - (\constant{ELFCLASS64}) one. - \item The endianness\index{ELF!endianness} of the object---whether - little-endian (\constant{ELFDATA2LSB}) or big-endian - (\constant{ELFDATA2MSB}). - \item The ELF specification version\index{ELF!version~number} - number that the object conforms to. ELF object versioning was - discussed in chapter~\vref{chap.getting-started}. - \end{itemize} - - With this information on hand, the \library{libelf} library can - then interpret the rest of the ELF \elfdatastructure{Executable - Header} correctly. - - \item[\coref{2}] The \parameter{e\_type} member determines the type - of the ELF object. For example, the member would contain the - value `1' (\constant{ET\_REL}) in a relocatable or the value `3' - (\constant{ET\_DYN}) in a shared - object.\index{executable~header!executable type} - - \item[\coref{3}] The \parameter{e\_machine} member describes the - machine architecture for the ELF object. Example values are `3' - (\constant{EM\_386}) for the Intel\reg i386\trade architecture, - and `20' (\constant{EM\_PPC}) for the 32-bit PowerPC\trade - architecture.\index{executable~header!executable architecture} - - \begin{figure} - \begin{tikzpicture}[ - start chain, - node distance=0pt, - ei/.style={ - on chain, - draw, - fill=black!#1, - minimum height=1.2\baselineskip, - text centered - }] - - % Draw the major parts of the ELF object. - \node[ei=15,text width=2cm] (ehdr) { Ehdr }; - \node[ei=0,text width=1.5em] (gap0) {}; - \node[ei=5,text width=3.2cm] (phdr) { Phdr }; - \node[ei=0,text width=5em] (gap1) {}; - \node[ei=5,text width=3.2cm] (shdr) { Shdr }; - - % Draw the marks. - \def\l#1#2#3{ \draw[-] ([yshift=#2] #1) -- +(90:#3) }; % Helper. - - \l{ehdr.north west}{1pt}{0.5cm}; - \l{ehdr.south west}{-1pt}{-1.2cm}; - \l{ehdr.north east}{1pt}{0.5cm}; - - \l{phdr.south west}{-1pt}{-0.67cm}; - \l{phdr.north west}{1pt}{0.5cm}; - \l{phdr.north east}{1pt}{0.5cm}; - - \l{shdr.north west}{1pt}{0.5cm}; - \l{shdr.north east}{1pt}{0.5cm}; - \l{shdr.south west}{-1pt}{-1.2cm}; - - % Render the labels. - \def\sz#1#2#3#4{ % Helper macro. - \draw[<->] ([yshift=#3] #1) -- node [auto] {\small #4 } - ([yshift=#3] #2) - } - - \sz{ehdr.north west}{ehdr.north east}{0.44cm}{e\_ehsize}; - \sz{phdr.north west}{phdr.north east}{0.44cm}% - {N\raisebox{-1ex}{phdr} $\times$ e\_phentsize}; - \sz{shdr.north west}{shdr.north east}{0.44cm}% - {N\raisebox{-1ex}{shdr} $\times$ e\_shentsize}; - - \sz{ehdr.south west}{phdr.south west}{-0.6cm}{e\_phoff}; - \sz{ehdr.south west}{shdr.south west}{-1.1cm}{e\_shoff}; - - \end{tikzpicture} - \caption{The ELF \elfdatastructure{Executable Header} describes - the layout of the rest of the ELF object.} - \label{fig.elf.ehdr-layout} - \end{figure} - - \item[\coref{4} \coref{5}] The ELF \elfdatastructure{Executable - Header} also describes where to find the ELF - \elfdatastructure{Program Header Table} and the - \elfdatastructure{Section Header Table}, if these data structures - are present in the ELF object (Figure~\vref{fig.elf.ehdr-layout}). - - The \parameter{e\_phoff} and \parameter{e\_shoff} members contain - the file offsets at which the ELF \elfdatastructure{Program Header - Table} and the ELF \elfdatastructure{Section Header Table} - reside in the ELF object. These members are zero if the file does - not contain the corresponding data structures. The sizes of these - tables are determined by the \parameter{e\_phentsize} and - \parameter{e\_shentsize} members of the executable header, in - conjunction with the number of entries in these tables.% - \index{section~header~table!layout in file}% - \index{section~header~table!entry size}% - \index{program~header~table!layout}% - \index{program~header~table!entry~size} - - The ELF \elfdatastructure{Executable Header} describes its own - size (in bytes) in member - \parameter{e\_ehsize}.\index{executable~header!own size} - - \item[\coref{6} \coref{7}] The \parameter{e\_phnum} and - \parameter{e\_shnum} members contain the number of ELF program - header table entries and section header table entries - respectively. - - These fields are only 2 bytes wide, so if an ELF object has a - large number of sections or program header table entries, then a - scheme known as ``Extended Numbering''\index{extended~numbering} - (section~\vref{sec.extended-numbering}) is used to encode the - actual number of sections or program header table entries. When - extended numbering is in use these fields will contain special - values instead of actual counts. - - \item[\coref{8}] When an ELF object contains sections, the names of - these sections are stored in a separate string table section. ELF - string tables will be covered in more detail in - section~\vref{sec.shdr.strtab}.\index{sections!names!string~table} - - The \parameter{e\_shstrndx} member stores the section index of - this string table (possibly using ``Extended Numbering'', see - section \vref{sec.extended-numbering}). This allows tools - processing the ELF object to use the correct string table for - looking up section names. - \end{description} - - The \parameter{e\_entry} and \parameter{e\_flags} members are used - for executables. These members are placed in the executable header - for easy access at program load time. This tutorial will not discuss - these members any further.\index{executable~header!program entry - point}\index{executable~header!flags} -\end{callout} - -\section{Extended Numbering}\label{sec.extended-numbering}% -\index{extended~numbering} - -The \parameter{e\_shnum}, \parameter{e\_phnum} and -\parameter{e\_shstrndx} members of the ELF -\elfdatastructure{Executable Header} are 2 bytes long and are not wide -enough to represent numbers larger than 65535. We would therefore need -a different way of encoding these numbers for ELF objects with a large -number of sections or segments.\index{extended~numbering!need for} - -When extended numbering is in use, the actual values of these members -will be stored in the normally unused zeroth section header table -entry.\footnote{Section header table entries are covered in more - detail in section~\vref{chap.elf-sections}.} - -\begin{itemize} -\item The true number of sections will stored in the - \parameter{sh\_size} field of the zeroth section header table entry, - while the \parameter{e\_shnum} member of the ELF executable header - will be set to zero. -\item The actual number of program header table entries will be stored - in the \parameter{sh\_info} field of the zeroth section header table - entry, while the \parameter{e\_phnum} member of the executable - header will be set to the value \constant{PN\_XNUM} - (0xFFFF).\index{extended~numbering!program headers} -\item The true index of the section name string table will be stored - in the \parameter{sh\_link} field of the zeroth entry of the section - header table, while the \parameter{e\_shstrndx} member of the - executable header will be set to the value \constant{SHN\_XINDEX} - (0xFFFF).\index{extended~numbering!sections} -\end{itemize} - -You should always use the functions \function{elf\_getphdrnum}, -\function{elf\_getshdrnum} and \function{elf\_getshdrstrndx} to read -the value of these members from an \type{Elf} descriptor. Directly -using the values of the \parameter{e\_phnum}, \parameter{e\_shnum} and -\parameter{e\_shstrndx} members of the executable header is likely to -lead to incorrect program behavior. - -\section{The Elf32, Elf64 and GElf APIs} - -The ELF(3) API is defined in terms of ELF class-dep\-endent types -(\type{Elf32\_Ehdr}, \type{Elf64\_Shdr}, etc). Consequently many -operations on ELF handles in the ELF(3) API have both 32- and 64- bit -variants. - -For example, in order to retrieve an ELF executable header from a 32 -bit ELF object we would use the function \function{elf32\_getehdr}, -which would return a pointer to an \type{Elf32\_Ehdr} structure. For -a 64-bit ELF object, we would need to use the function -\function{elf64\_getehdr}, which would return a pointer to an -\type{Elf64\_Ehdr} structure. - -This duplication is awkward when you want to write applications that -need to process either class of ELF objects.% -\index{ELF!class~agnostic~APIs}. - -The GELF(3)\index{GELF API} APIs provide a way to write applications -that can handle objects of both ELF classes without code duplication. -These APIs are defined in terms of ``generic'' C types that are large -enough to hold their corresponding 32-bit and 64- bit ELF types. The -GELF(3) data types have names that start with \code{GElf\_}, and the -functions have names that start with \code{gelf\_}. You can freely -mix calls to GELF(3) and ELF(3) functions in your code. - -The downside to using the GELF(3) APIs is the small cost of the -copying and conversion that happens behind the scenes inside -\library{libelf}.\index{GELF API!downsides to} This overhead is -usually insignificant for most programs. - -\section{File and Memory Representations}\label{sec.representations} - -\begin{figure} - \begin{tikzpicture}[ - start chain, - node distance=0pt, - ef/.style={ - on chain, - draw, - minimum height=1.2\baselineskip, - text centered - }] - - % Helper macros. - \def\l#1#2#3{ \draw[-] ([yshift=#2] #1) -- +(90:#3) } - \def\sz#1#2#3#4{ - \draw[<->] ([yshift=#3] #1) -- node [auto] {\small #4 } - ([yshift=#3] #2) - } - - % Draw a skeletal ELF object. - \node[ef,text width=3em] (ehdr) {}; - \node[ef,text width=8em] (g0) {}; - \node[ef,text width=2em,fill=black!15] (file) {}; - \node[ef,text width=8em] (g1) {}; - \node[ef,text width=3em] (shdr) {}; - - % Label the ELF object as a whole. - \node[left=3em of ehdr.west,text width=3em] { ELF object } - edge [->,shorten >=1pt] (ehdr.west); - - % Label the box denoting the file representation of data. - \node[above=2em of ehdr.north east] {The file representation} - edge [->,shorten >=1pt] (file.center); - - % Place tick marks around the file representation box. - \l{file.north west}{1pt}{0.3cm}; - \l{file.north east}{1pt}{0.3cm}; - \l{file.south west}{-1pt}{-0.5cm}; - - % Show the size of the file representation and its alignment. - \draw[<->,shorten >=1pt,shorten <=1pt] - ([yshift=0.25cm] file.north west) -- - node [above=0.75ex,text centered,text width=5em] {file size} - ([yshift=0.25cm] file.north east); - \node[below right=0.2cm and 0cm of file.south west] {\%falign}; - - % Draw and label the memory representation of the data. - \node[below=2cm of file.south,minimum width=6em, - minimum height=1.2\baselineskip,draw,fill=black!5] - (mem) { }; - \node[left=1.6cm of mem] - {The memory representation} - edge [->,semithick,shorten >=1pt] (mem.center); - - % Show the memory alignment. - \l{mem.north west}{1pt}{0.5cm}; - \node[above right=0.15cm and 0cm of mem.north west] {\%malign}; - - % Indicate the memory size. - \l{mem.south west}{-1pt}{-0.3cm}; - \l{mem.south east}{-1pt}{-0.3cm}; - \draw[<->,shorten >=1pt,shorten <=1pt] - ([yshift=-0.25cm] mem.south west) -- - node [below=0.75ex] {memory size} - ([yshift=-0.25cm] mem.south east); - - % Draw the arrows denoting translation between file and memory. - \draw[->,semithick,shorten >=1pt,shorten <=1pt] (file.south east) .. - controls ++(1,-.5) and ++(2,0.5) .. - (mem.north east) node[midway,right=1ex] {xlatetom()} ; - \draw[<-,semithick,shorten >=1pt,shorten <=1pt] (file.south west) .. - controls ++(-1,-.5) and ++(-2,0.5) .. - (mem.north west) node[midway,left=1ex] {xlatetof()} ; - \end{tikzpicture} - \caption{The relationship between the file and memory representation - of an ELF data structure.}\label{fig.representations} -\end{figure} - -ELF objects use the native word width, enddianness and data alignment -rules of the machine they are intended for. These could be different -from the native word width, enddianness and data alignment rules for -the machine that the program reading the ELF object is running on. - -ELF data structures therefore have two distinct -representations:\index{object~representation} - -\begin{itemize} -\item An \emph{in-memory representation} that obeys the constraints - for the machine architecture that the program handling the ELF - object is running on. -\item An \emph{in-file representation} that corresponds to the target - architecture for the ELF object. -\end{itemize} - -Figure \vref{fig.representations} depicts the relationship between the -in-file and in-memory representations of an ELF data structure. This -figure shows that:\index{object~representation!file vs memory} - -\begin{itemize} -\item The size of an ELF data structure in the file could be different - from its size in memory. -\item The alignment restrictions placed on the data structure (denoted - by \code{\%falign} and \code{\%malign} in the figure) - could differ. -\item The byte ordering of data in the file could be different - from that in memory. -\end{itemize} - -When using \library{libelf} you do not need to handle these -differences in your code---\library{libelf} will handle the -conversions of in-memory ELF data structures to and from their in-file -representations automatically. For example, in -program~\ref{src.prog.2} below, the \library{libelf} library will -automatically do the necessary byteswapping and alignment adjustments -when reading in the ELF executable header.% -\index{ELF!class~agnostic~APIs}% -\index{libelf@\texttt{libelf}!automatic~data~conversion} - -If you need finer-grain control over the conversion process, the -\library{libelf} library offers the class-dependent -\code{elf\textit{NN}\_xlatetof} and \code{elf\textit{NN}\_xlatetom} -functions.\index{libelf@\texttt{libelf}!manual~data~conversion} This -introductory tutorial does not discuss these functions further. - -\section{Example: Reading an ELF Executable Header} - -Let us now examine a program that will print out the ELF -\elfdatastructure{Executable Header} present in an ELF object. Our -example program will use the class-independent GELF(3) -APIs.\index{GELF API} - -\begin{callout}{prog2} - \lstinputlisting[caption=Program 2, label=src.prog.2]{prog2.txt} - - \begin{description} - \item[\coref{1}] Source code that uses the GELF(3) APIs should - include the \filename{gelf.h} header file.% - \index{libelf@\texttt{libelf}!header file \filename{gelf.h}} - - \item[\coref{2}] The \type{GElf\_Ehdr} type used here has fields - that are large enough to contain values for a 64 bit ELF - executable header. - - \item[\coref{3}] The \function{elf\_begin} function allocates an - \type{Elf} handle opened for reading. - - \item[\coref{4}] The function \function{gelf\_getehdr} retrieves the - executable header present in the ELF object. - - This function translates the ELF executable header in the file to - its corresponding in-memory representation in the C type - \type{GElf\_Ehdr}. For example, if a 32-bit ELF object is being - examined, then the values in its executable header would be - appropriately expanded and/or byte swapped by this function.% - \index{executable~header!retrieval of} - - \item[\coref{5}] The \function{gelf\_getclass} function retrieves - the ELF class of the object being examined.% - \index{ELF!class!retrieval of} - - \item[\coref{6}] The \function{elf\_getident} function retrieves the - contents of the \parameter{e\_ident} array from the ELF - descriptor. These bytes would also be present in the - \parameter{e\_ident} member of the \elfdatastructure{Executable - Header} structure. We print the first few bytes of the - \parameter{e\_ident} byte array. - - \item[\coref{7}] After printing out the values of the bytes in the - \parameter{e\_ident} array, we print the values of some of the - fields of the ELF executable header structure. - - \item[\coref{8}] The function \function{elf\_getphdrnum} retrieves - the count of program header table entries in the ELF object. - - \item[\coref{9}] The \function{elf\_getshdrnum} function retrieves - the number of sections in the ELF object. - - \item[\coref{10}] The function \function{elf\_getshdrstrndx} - function retrieves the index of the section name string table in - the object. - \end{description} -\end{callout} - -Save the program in listing~\vref{src.prog.2} to a file named -\filename{prog2.c}, and compile and run it as shown in -listing~\vref{scr.prog2}.% -\index{libelf@\texttt{libelf}!linking with} - -\begin{callout}{scr2} - \newcommand{\at}{@} - \begin{lstlisting}[language={}, basicstyle=\small\ttfamily, - label=scr.prog2, caption=Compiling and Running prog2] -% cc -o prog2 prog2.c -lelf @\co{1}@ -% ./prog2 prog2 @\co{2}@ -prog2: 64-bit ELF object - e_ident[0..8] ['\^?' 7F] ['E' 45] ['L' 4C] ['F' 46] \ - ['\^B' 2] ['\^A' 1] ['\^A' 1] ['\^I' 9] ['\^@\at@' 0] - e_type 0x2 - e_machine 0x3e - e_version 0x1 - e_entry 0x400a10 - e_phoff 0x40 - e_shoff 0x16f8 - e_flags 0x0 - e_ehsize 0x40 - e_phentsize 0x38 - e_shentsize 0x40 - (shnum) 0x18 - (shstrndx) 0x15 - (phnum) 0x5 - \end{lstlisting} - \begin{description} - \item[\coref{1}] The process for compiling and linking a GELF(3) - application is the same as for other \library{libelf} based - programs. - - \item[\coref{2}] We run our program on itself. This listing in this - tutorial was generated on an AMD64\trade machine running - FreeBSD\makebox[0pt]{.}\trade - \end{description} - - You should now run \tool{prog2} on other object files that you have - lying around. Try it on a few non-native ELF object files too. -\end{callout} - -\chapter{Examining the Program Header Table}\label{chap.elf-phdr} - -Before a program on disk can be executed by a processor it needs to -brought into system memory. The technical name for this process is -``loading''.\index{loading} - -When loading an ELF program into memory, the operating system views it -as comprising of distinct parts, where each part has a particular -characteristic. For example, one part of the program could contain -read-only data that needs to be loaded at a specific virtual memory -address. Another part could contain executable code.\index{segments} -Each such part of the ELF object is called an ELF -\elfdatastructure{Segment}\index{segments!definition~of}. - -By way of an example, the FreeBSD\trade operating system expects -programs to contain a segment containing executable -code.\index{segments!example~layout} This segment is called the -program's ``\filename{text}'' segment. A \filename{text} segment would -usually be loaded into memory with `read' and `execute' permissions. -Multiple processes using the same executable could potentially share -the same \filename{text} segment. FreeBSD programs would usually have -\filename{data} segments too; these segments are placed in memory with -`read' and `write' permissions, and made private to each process. - -Like executables, dynamically linked objects can be viewed as -comprising segments. - -The segments present in an ELF object are described by a data -structure known as the ELF \elfdatastructure{Program Header - Table}.\index{program~header~table} We will study this data -structure in this chapter, and write an example program that displays -the \elfdatastructure{Program Header Table} present in an ELF object. - -\section{The ELF Program Header Table} - -An ELF \elfdatastructure{Program Header Table} is a contiguous array -of \elfdatastructure{Program Header Table Entry} structures. Every -segment present in the ELF object would have a corresponding entry in -the program header table. - -The location of the program header table within the ELF object is -given by the \parameter{e\_phoff} member of the ELF executable header -(see figure~\ref{fig.elf.ehdr-layout} in section~\ref{sec.ehdr}). This -member holds the offset in bytes from the start of the ELF object to -the start of its program header table. - -Table~\vref{src.elf.phdr} lists the members of a -\elfdatastructure{Program Header Table Entry} -structure.\index{program~header~table!entry} -Figure~\vref{fig.elf.phdr.layout} illustrates how these members -specify the segment's placement both in memory and within the ELF -object. - -\begin{figure} - \index{program~header~table!layout} - \begin{tikzpicture}[ - start chain=1 going right, - start chain=2 going above, - node distance=0pt, - ef/.style={ - on chain=1, - draw, - minimum height=1.4\baselineskip, - text centered - }, - ph/.style={ - on chain=2, - draw, - text width=4.2em, - fill=black!15, - font=\ttfamily - }] - - % Helper macros. - \def\l#1#2#3{ \draw[-] ([yshift=#2] #1) -- +(90:#3) } - \def\sz#1#2#3#4{ - \draw[<->] ([yshift=#3] #1) -- node [auto] {\small #4 } - ([yshift=#3] #2) - } - - % Draw a ELF object with a highlighted PHDR entry. - \node[on chain=1,text width=5 em] {ELF object}; - \node[ef,text width=4em,fill=black!10] (ehdr) {Ehdr}; - \node[ef,text width=1.5ex] (g0) {}; - \node[ef,text width=4em,fill=black!10] (Phdr) {Phdr}; - \node[ef,text width=0.5ex,fill=black!25] (p0) { }; - \node[ef,text width=1ex,fill=black!10] (p1) { }; - \node[ef,text width=4em] (g1) {}; - \node[ef,text width=5em,fill=black!10] (seg) - {Segment${}_n$}; - \node[ef,text width=4em] (shdr) {}; - - % Draw the marks and label sizes and offsets. - \l{ehdr.south west}{-1pt}{-0.6cm}; - \l{seg.south west}{-1pt}{-0.6cm}; - \l{seg.south east}{-1pt}{-0.6cm}; - \l{seg.north west}{1pt}{0.5cm}; - \node[above right=0.2cm and .5cm of seg.north west] {\%p\_align} - edge[->,shorten >=1pt] ([yshift=0.25cm] seg.north west); - - \sz{ehdr.south west}{seg.south west}{-0.55cm}{p\_offset}; - \sz{seg.south west}{seg.south east}{-0.55cm}{p\_filesz}; - - % Draw the segment in memory. - \node[above right=2cm and 0cm of seg.north west,draw,fill=black!10] - (segmem) {Segment${}_n$ in memory}; - \l{segmem.north west}{1pt}{0.3cm}; - \node[above=2em of segmem.north] {p\_vaddr} - edge [->,shorten >=1pt] ([yshift=0.15cm] segmem.north west); - \l{segmem.south west}{-1pt}{-0.6cm}; - \l{segmem.south east}{-1pt}{-0.6cm}; - \sz{segmem.south west}{segmem.south east}{-0.55cm}{p\_memsz}; - - % Draw the expanded segment. - \node[ph,above=1cm of g0.north,text centered] (phbot) {\dots}; - \node[ph] {p\_align}; - \node[ph] {p\_memsiz}; - \node[ph] {p\_filesz}; - \node[ph] {p\_vaddr}; - \node[ph] {p\_offset}; - \node[ph] (phtop) {p\_type}; - - \node[above=1ex of phtop.north] {Program Header Table Entry}; - - % Draw the expansion lines. - \draw [-,shorten >=1pt,shorten <=2pt] (phbot.south west) -- - ([yshift=1pt] p0.north west); - \draw [-,shorten >=1pt,shorten <=2pt] (phtop.north east) -- - ([yshift=1pt] p0.north east); - - \end{tikzpicture} - \caption{ELF Segment Placement.}\label{fig.elf.phdr.layout} -\end{figure} - -\begin{callout}{phdr} - \begin{table}[H] - \begin{tabular}{rl|ll} - \mbox{} & \tableheader{32 bit PHDR Table Entry} & - \tableheader{64 bit PHDR Table Entry}\\ \hline - & \verb+typedef struct {+& - \verb+typedef struct {+\\ -\co{1} & \verb+ Elf32_Word p_type;+& - \verb+ Elf64_Word p_type;+&\\ -\co{2} & \verb+ Elf32_Off p_offset;+& - \verb+ Elf64_Word p_flags;+&\\ -\co{3} & \verb+ Elf32_Addr p_vaddr;+& - \verb+ Elf64_Off p_offset;+&\\ -\co{4} & \verb+ Elf32_Addr p_paddr;+& - \verb+ Elf64_Addr p_vaddr;+&\\ -\co{5} & \verb+ Elf32_Word p_filesz;+& - \verb+ Elf64_Addr p_paddr;+&\\ -\co{6} & \verb+ Elf32_Word p_memsz;+& - \verb+ Elf64_Xword p_filesz;+&\\ -\co{7} & \verb+ Elf32_Word p_flags;+& - \verb+ Elf64_Xword p_memsz;+&\\ -\co{8} & \verb+ Elf32_Word p_align;+& - \verb+ Elf64_Xword p_align;+&\\ - & \verb+} Elf32_Phdr;+ & \verb+} Elf64_Phdr;+&\\ - \end{tabular} - \caption{ELF Program Header Table Entries.}\label{src.elf.phdr} - \end{table} - - \begin{description} - \item[\coref{1}] The \parameter{p\_type} member of the program - specifies the type of the ELF segment.\index{segments!type} The - type of the segment is specified by one of the \code{PT\_*} - constants in the programming API. Examples include: - \begin{itemize} - \item A segment of type \constant{PT\_LOAD} contains data that - needs to be placed in memory. - \item A segment of type \constant{PT\_PHDR} describes the ELF - \elfdatastructure{Program Header Table} itself. - \item A segment of type \constant{PT\_INTERP} contains a path to - the runtime linker used by dynamically linked executables. - \item A segment of type \constant{PT\_NOTE} contains auxiliary - information. - \end{itemize} - - \item[\coref{2}] The \parameter{p\_offset} member holds the offset - from the start of the ELF object to the start of the segment being - described by this table entry.\index{segments!offset in object} - - \item[\coref{3}] The \parameter{p\_vaddr} member specifies the - virtual address that this segment should be placed - at.\index{segments!virtual address of} - - \item[\coref{4}] The \parameter{p\_paddr} member specifies the - physical memory address this segment should be loaded at. - - \item[\coref{5}] The \parameter{p\_filesz} member specifies the size - of the segment in the file. This number can be zero if the - segment does not use data from file (for example, if the segment - is a memory-only segment).\index{segments!file size of} - - \item[\coref{6}] The \parameter{p\_memsz} member specifies the - number of bytes of memory the segment would use.% - \index{segments!memory size of} - - \item[\coref{7}] The \parameter{p\_flags} member specifies - additional segment properties. For example, the value - \constant{PF\_X} specifies that the segment should be made - executable, the value \constant{PF\_W} specifies that the segment - should be writable, and so on.\index{segments!flags} - - \item[\coref{8}] The \parameter{p\_align} member specifies the - alignment requirements of the segment in memory and in the file. - This member holds a number that is a power of two. - \index{segments!aligment of} - \end{description} -\end{callout} - -The file representation of a \elfdatastructure{Program Header Table} -uses the ELF object's native endianness. The \library{libelf} library -will handle the translation between the in-file and in-memory -representations of program header table entries for you. Please see -section~\vref{sec.representations} for more information on in-memory -and in-file representations of ELF data structures. - -\section{Example: Reading a Program Header Table} - -The example program in this chapter will read and print out the -program header table in an ELF object. This example, like the previous -one, uses the class-agnostic GELF(3) -APIs.\index{ELF!class~agnostic~APIs} - -\begin{callout}{prog3} - \lstinputlisting[caption=Program 3, label=src.prog.3]{prog3.txt} - - \begin{description} - \item[\coref{1}] Source code that uses the GELF(3) functions needs - to include the \filename{gelf.h} header file. - \item[\coref{2}] \code{print\_ptype} is a helper function that - translates the value of the \parameter{p\_type} member to - human-readable form. - \item[\coref{3}] The GELF(3) functions in this example will use the - \type{GElf\_Phdr} C type. This type has members that are large - enough for both the 32-bit (\type{Elf32\_Phdr}) and 64-bit - (\type{Elf64\_Phdr}) header table - entries.\index{ELF!class~agnostic~APIs} - \item[\coref{4}] The function \function{elf\_getphdrnum} will - retrieve the number of program header table entries in the ELF - object.\index{program~header~table!retrieval of} - \item[\coref{5}] This \code{for} loop iterates over the valid - indices for the \elfdatastructure{Program Header Table}. - \item[\coref{6}] The \function{gelf\_getphdr} function retrieves the - program header table entry at a specified index. - \index{program~header~table!iteration over} If successful it will - return the \type{GElf\_Phdr} pointer that was passed to it. - \item[\coref{7}] The remaining lines of the loop's body print out - the contents of the returned \type{GElf\_Phdr} entry. - \end{description} -\end{callout} - -Save the program in listing~\vref{src.prog.3} to file \filename{prog3.c} and -then compile and run it as shown in listing~\vref{scr.prog3}.% -\index{libelf@\texttt{libelf}!linking with} - -\begin{callout}{scr3} - \begin{lstlisting}[language={}, basicstyle=\small\ttfamily, - label=scr.prog3, caption=Compiling and Running prog3] -% cc -o prog3 prog3.c -lelf @\co{1}@ -% ./prog3 prog3 @\co{2}@ -PHDR 0: - p_type 0x6 "PHDR" @\co{3}@ - p_offset 0x34 - p_vaddr 0x8048034 - p_paddr 0x8048034 - p_filesz 0xc0 - p_memsz 0xc0 - p_flags 0x5 [ execute read ] - p_align 0x4 -PHDR 1: - p_type 0x3 "INTERP" @\co{4}@ - p_offset 0xf4 - p_vaddr 0x80480f4 - p_paddr 0x80480f4 - p_filesz 0x15 - p_memsz 0x15 - p_flags 0x4 [ read ] - p_align 0x1 -PHDR 2: - p_type 0x1 "LOAD" @\co{5}@ - p_offset 0x0 - p_vaddr 0x8048000 - p_paddr 0x8048000 - p_filesz 0xe67 - p_memsz 0xe67 - p_flags 0x5 [ execute read ] - p_align 0x1000 -PHDR 3: - p_type 0x1 "LOAD" @\co{6}@ - p_offset 0xe68 - p_vaddr 0x8049e68 - p_paddr 0x8049e68 - p_filesz 0x11c - p_memsz 0x13c - p_flags 0x6 [ read write ] - p_align 0x1000 -PHDR 4: - p_type 0x2 "DYNAMIC" - p_offset 0xe78 - p_vaddr 0x8049e78 - p_paddr 0x8049e78 - p_filesz 0xb8 - p_memsz 0xb8 - p_flags 0x6 [ read write ] - p_align 0x4 -PHDR 5: - p_type 0x4 "NOTE" - p_offset 0x10c - p_vaddr 0x804810c - p_paddr 0x804810c - p_filesz 0x18 - p_memsz 0x18 - p_flags 0x4 [ read ] - p_align 0x4 - \end{lstlisting} - - \begin{description} - \item[\coref{1}] Compile and link the program with \library{libelf}, - as before. - \item[\coref{2}] We run our program on itself, and have it print out - its own program header table. This listing was generated on an - i386\trade machine running FreeBSD\makebox[0pt]{.}\trade - \item[\coref{3}] The very first entry of this particular program - header table describes the object's \elfdatastructure{Program - Header Table} itself.% - \index{program~header~table!self-description} - \item[\coref{4}] The program \tool{prog3} contains a header entry of - type \constant{PT\_INTERP} because it is dynamically linked. A - segment of type \constant{PT\_INTERP} contains the path name to - the ``interpreter'' that the kernel should use when executing the - program. This is usually the runtime loader (the file - \filename{/libexec/ld-elf.so.1} on FreeBSD systems). - \item[\coref{5} \coref{6}] This object contains two loadable - segments. The first segment requires execute and read permissions, - and the second read and write permissions. Both segments require - page (4096 byte) alignment.\index{segments!examples of} - \end{description} -\end{callout} - -You should try runing \tool{prog3} on other object files. - -\begin{itemize} -\item Try running \tool{prog3} on a relocatable object created by a - \tool{cc -c} invocation. Does this object have a program header - table? -\item Try running \tool{prog3} on a shared library. What does the - \elfdatastructure{Program Header Table} look like for a shared - library? -\item Can you find ELF objects on your system that contain program - header table entries of type \constant{PT\_TLS}? -\end{itemize} - -\chapter{Looking at Sections}\label{chap.elf-sections} - -Compilers and linkers view ELF objects differently than operating -systems do. These tools treat ELF files as a collection of ELF -\elfdatastructure{Sections}. - -An ELF \elfdatastructure{Section}\index{sections} is contiguous region -of an ELF object holding one kind of data. For example, an ELF -relocatable object could have sections with executable code, symbol -tables, code relocation entries, and so on.\index{sections!use~of} -Non-empty sections do not overlap in the ELF object. - -\section{The Section Header Table} - -The sections of an ELF object are described by a data structure known -as the ELF \elfdatastructure{Section Header Table}. The -\elfdatastructure{Section Header Table} is usually found at -the very end of the ELF object (see figure~\vref{fig.elf.layout}). -The \parameter{e\_shoff} member in the ELF -\elfdatastructure{Executable Header} for the object specifies the -location of the \elfdatastructure{Section Header Table}. - -Every ELF \elfdatastructure{Section} present in an ELF object is -described by an ELF \elfdatastructure{Section Header Table Entry} (see -table~\vref{src.elf.shdr}). Figure~\vref{fig.elf.shdrlayout} shows how -the fields of an ELF \elfdatastructure{Section Header Entry} specify -the section's placement within the ELF -object.\index{sections!placement in file} - -\begin{figure} - \begin{tikzpicture}[ - start chain=1 going right, - start chain=2 going below, - node distance=0pt, - ef/.style={ - on chain=1, - draw, - minimum height=1.4\baselineskip, - text centered - }, - sh/.style={ - on chain=2, - draw, - text width=6.2em, - fill=black!15, - font=\ttfamily - }] - - % Helper macros. - \def\l#1#2#3{ \draw[-] ([yshift=#2] #1) -- +(90:#3) } - \def\sz#1#2#3#4{ - \draw[<->] ([yshift=#3] #1) -- node [auto] {\small #4 } - ([yshift=#3] #2) - } - - % Draw a ELF object with a highlighted SHDR entry. - \node[on chain=1,text width=5 em] {ELF object}; - \node[ef,text width=4em,fill=black!10] (ehdr) {Ehdr}; - \node[ef,text width=4em] (g0) {}; - \node[ef,text width=5em,fill=black!10] (sec) - {Section${}_n$}; - \node[ef,text width=4em] (g1) {}; - \node[ef,text width=4em,fill=black!10] (shdr) {Shdr}; - \node[ef,text width=0.1ex,fill=black!25] (sh0) { }; - \node[ef,text width=1ex,fill=black!10] {}; - - % Draw the marks and label sizes and offsets. - \l{ehdr.south west}{-1pt}{-0.6cm}; - \l{sec.south west}{-1pt}{-0.6cm}; - \l{sec.north west}{1pt}{0.5cm}; - \l{sec.south east}{-1pt}{-0.6cm}; - - \node[above right=0.2cm and 0.4cm of sec.north west] {\%sh\_addralign} - edge [->,shorten >=1pt] ([yshift=0.25cm] sec.north west); - \sz{ehdr.south west}{sec.south west}{-0.55cm}{sh\_offset}; - \sz{sec.south west}{sec.south east}{-0.55cm}{sh\_size}; - - % Draw the expanded section header entry. - \node[sh,below=1cm of g1.south east] (shtop) {sh\_type}; - \node[sh] {sh\_size}; - \node[sh] {sh\_addralign}; - \node[sh] {sh\_offset}; - \node[sh,text centered] (shbot) {\dots}; - \node[below=1ex of shbot.south] {Section Header Table Entry}; - - % Draw the expansion lines. - \draw [-,shorten <=2pt] (shtop.north west) -- - ([yshift=-1.2pt] sh0.south west); - \draw [-,shorten <=2pt] (shbot.south east) -- - ([yshift=-1pt] sh0.south east); - \end{tikzpicture} - \caption{Section layout.}\label{fig.elf.shdrlayout} -\end{figure} - -\begin{callout}{shdr} - \begin{table}[H] - \begin{tabular}{rl|l} - \mbox{} & \tableheader{32 bit SHDR Table Entry} & - \tableheader{64 bit SHDR Table Entry} \\ \hline - & \verb+typedef struct {+ & \verb+typedef struct {+ \\ -\co{1} & \verb+ Elf32_Word sh_name;+& - \verb+ Elf64_Word sh_name;+\\ -\co{2} & \verb+ Elf32_Word sh_type;+& - \verb+ Elf64_Word sh_type;+\\ -\co{3} & \verb+ Elf32_Xword sh_flags;+& - \verb+ Elf64_Xword sh_flags;+\\ - & \verb+ Elf32_Addr sh_addr;+& - \verb+ Elf64_Addr sh_addr;+\\ - & \verb+ Elf32_Off sh_offset;+& - \verb+ Elf64_Off sh_offset;+\\ -\co{4} & \verb+ Elf32_Xword sh_size;+& - \verb+ Elf64_Xword sh_size;+\\ -\co{5} & \verb+ Elf32_Word sh_link;+& - \verb+ Elf64_Word sh_link;+\\ -\co{6} & \verb+ Elf32_Word sh_info;+& - \verb+ Elf64_Word sh_info;+\\ -\co{7} & \verb+ Elf32_Word sh_addralign;+& - \verb+ Elf64_Word sh_addralign;+\\ -\co{8} & \verb+ Elf32_Word sh_entsize;+& - \verb+ Elf64_Word sh_entsize;+\\ - & \verb+} Elf32_Shdr;+ & \verb+} Elf64_Shdr;+ \\ - \end{tabular} - \caption{ELF Section Header Table Entries.}\label{src.elf.shdr} - \end{table} - - \begin{description} - \item[\coref{1}] The \parameter{sh\_name} member encodes the - section's name.\index{sections!names} Because section names can be - of variable length, they are not kept in the section header table - entry itself.\index{sections!names!as offsets} Instead, all - section names are placed in a common ``section name string - table'', and the \parameter{sh\_name} member in the section header - entry stores the byte offset of the section's name in that string - table. The ELF \elfdatastructure{Executable Header} has an - \parameter{e\_shstrndx} member that contains the section index of - the section name string table itself.% - \index{sections!names!string~table} We will look at ELF string - tables in greater detail in section~\vref{sec.shdr.strtab}. - - \item[\coref{2}] The \parameter{sh\_type} member specifies the - section's type. Section types are defined by the - \code{SHT\_*} constants defined in the system's ELF headers. - For example, a section of type \constant{SHT\_PROGBITS} would - contain executable code, and a section of type - \constant{SHT\_SYMTAB} would hold a symbol - table.\index{sections!type} - - \item[\coref{3}] The flags field indicates whether the section has - specific properties; for example, whether it contains writable - data, whether it has special link ordering requirements, and so - on.\index{sections!flags} - - \item[\coref{4}] The \parameter{sh\_size} member specifies the size - of the section in bytes.\index{sections!size of} - - \item[\coref{5} \coref{6}] The \parameter{sh\_link} and - \parameter{sh\_info} members contain additional section-specific - information. We do not look at these members further in this - tutorial. - - \item[\coref{7}] For sections with specific alignment requirements, - the \parameter{sh\_addralign} member holds the required alignment. - Its value would be a power of two.\index{sections!alignment of} - - \item[\coref{8}] For sections that contain arrays of fixed-size - elements, the \parameter{sh\_entsize} member specifies the size of - each element.\index{section~header~table!entry size} - \end{description} -\end{callout} - - -There are a couple of quirks to keep mind when handling ELF sections: - -\begin{itemize} -\item First, the section header table entry at index `0' - (\constant{SHN\_UNDEF}) is special: it is always of type - \constant{SHT\_NULL}. When extended numbering is not in use this - entry has its members set to zero. When extended numbering is in - use, the fields of this entry could be non-zero; please see - section~\vref{sec.extended-numbering} for a discussion of extended - numbering.\index{sections!indices} - -\item Next, valid section indices range from \constant{SHN\_UNDEF} (0) - up to $\constant{SHN\_LORESERVE} - 1$ (0xFEFF). Section indices - between 0xFF00 (\constant{SHN\_LORESERVE}) and 0xFF\-FF - (\constant{SHN\_HIRESERVE}) have special meanings. If an ELF object - has more than 65279 (0xFEFF) sections, then it will need to use - extended section numbering.\index{sections!indices!valid~indices} -\end{itemize} - -\section{ELF Section Handling With \library{libelf}} - -The \library{libelf} library offers APIs to retrieve section header -table entries and the contents of sections.\footnote{We will cover the - adding new sections to ELF objects in - chapter~\vref{chap.creating-elf}.} These APIs take care of -translating between the in-file and in-memory representations of data -in the ELF object; your application can then directly work with the -in-memory representation of data.% -\index{object~representation!automatic translation} - -ELF sections are represented by \library{libelf} using a type named -\type{Elf\_Scn}. This type is meant to be opaque to application -code---the only way to allocate an \type{Elf\_Scn} is by calling one -of \library{libelf}'s APIs.\index{Elf\_Scn@\texttt{Elf\_Scn}!allocation}. - -Notable functions in the API that operate on sections include: - -\begin{itemize} -\item The function \function{elf\_getscn} retrieves section - information for a specified section index.% - \index{sections!retrieval} -\item The function \function{elf\_nextscn} is used to iterate through - the sections in the ELF object.\index{sections!iteration over}. -\item The function \function{gelf\_getshdr} retrieves the section - header table entry for a section.% - \index{section~header~table!retrieval of} -\item The functions \function{elf\_getdata} retrieves the contents of - the section. -\end{itemize} - -\begin{figure} - \begin{tikzpicture}[ - start chain=1 going right, - start chain=2 going right, - ed/.style={ - on chain=2, - rectangle, - rounded corners, - minimum height=1.2\baselineskip, - draw, - node distance=0.5cm, - fill=black!#1, - text centered - }, - eh/.style={ - on chain=1, - minimum width=4ex, - text height=\baselineskip, - draw - }] - - % Draw the ELF structure. - \begin{scope}[ - node distance=0pt - ] - \node[on chain=1] {ELF object}; - \node[eh,text width=10em] (s0) {}; - \node[eh,fill=black!10] (f0) {}; - \node[eh,fill=black!20] (f1) {}; - \node[eh,fill=black!10] (f2) {}; - \node[eh,fill=black!20] (f3) {}; - \node[eh,text width=10em] {}; - - % Highlight the border of the section. - \draw[-,thick] (f0.north west) -- (f3.north east) -- - (f3.south east) -- (f0.south west) -- cycle; - - % Label the section. - \node[below=.8cm of f0.south] - {Section contents.} edge [->] ([yshift=-2pt] f1.south east); - \end{scope} - - % Draw a linked list of descriptors. - \begin{scope}[ - node distance=1.3cm, - every join/.style={->,dashed}, - every on chain/.style={join} - ] - \node[ed=10,above=1cm and -1cm of s0.north] (d0) {D1}; - \node[ed=20] (d1) {D2}; - \node[ed=10] (d2) {D3}; - \node[ed=20] (d3) {D4}; - - \node[right=1ex of d3,text width=6em] - {List of \texttt{Elf\_Data} descriptors.}; - \end{scope} - - % Depict an Elf_Scn descriptor referencing the list of descriptors. - \node[above=0.7cm and -1cm of d0.north west,draw,rounded corners, - fill=black!20,text width=4em,text centered] - (scn) {\texttt{Elf\_Scn}}; - \node[right=1ex of scn] {An \texttt{Elf\_Scn} descriptor.}; - \draw[->,dashed,bend right] (scn) .. controls +(-0.75,-0.5) and - +(-0.75,0) .. (d0.west); - - % Link the Elf_Data descriptors to their section contents. - \foreach \s in {0,1,2,3} { - \draw[->] (d\s.south) .. controls +(0,-0.5) and +(0,0.5) - .. (f\s.north); - } - \end{tikzpicture} - \caption{Coverage of an ELF section by \texttt{Elf\_Scn} and - \texttt{Elf\_Data} descriptors.}\label{fig.elf.scn} -\end{figure} - -An \type{Elf\_Scn} descriptor is associated with zero or more -\type{Elf\_Data} descriptors. Each \type{Elf\_Data} descriptor -describes a region of application memory containing data for the ELF -section. Figure~\vref{fig.elf.scn} shows how the \type{Elf\_Data} -descriptors for an \type{Elf\_Scn} descriptor could cover the content -of a section.\index{sections!coverage by data descriptors} - -Listing~\vref{fig.elf.scn-data.decl} shows the C definition of the -\type{Elf\_Scn} and \type{Elf\_Data} types. - -\begin{callout}{data} - \begin{lstlisting}[caption=The \type{Elf\_Data} and \type{Elf\_Scn} types, - label=fig.elf.scn-data.decl, basicstyle=\small\ttfamily] -typedef struct _Elf_Scn Elf_Scn; @\co{1}@ -typedef struct _Elf_Data { - /* - * `Public' members that are part of the ELF(3) API. - */ - uint64_t d_align; @\co{2}@ - void *d_buf; @\co{3}@ - uint64_t d_off; @\co{4}@ - uint64_t d_size; @\co{5}@ - Elf_Type d_type; @\co{6}@ - unsigned int d_version; @\co{7}@ - /* ... other library-private fields ... */ -} Elf_Data; - \end{lstlisting} - - \begin{description} - \item[\coref{1}] The \type{Elf\_Scn} type is opaque to the - application. - \item[\coref{2}] The \parameter{d\_align} member specifies the - alignment of the data referenced in the \type{Elf\_Data} with - respect to its containing section.% - \index{Elf\_Data@\texttt{Elf\_Data}!alignment} - \item[\coref{3}] The \parameter{d\_buf} member points to a contiguous - region of application memory containing the section's data.% - \index{Elf\_Data@\texttt{Elf\_Data}!data pointer} - \item[\coref{4}] The \parameter{d\_off} member contains the file - offset from the start of the section for the data in this buffer. - \index{Elf\_Data@\texttt{Elf\_Data}!offset in section} - \item[\coref{5}] The \parameter{d\_size} member contains the size of - the memory buffer in bytes.% - \index{Elf\_Data@\texttt{Elf\_Data}!data size} - \item[\coref{6}] The \parameter{d\_type} member specifies the ELF - type of the data contained in the data buffer. Legal values for - this member are defined by the \type{Elf\_Type} - enumeration in the \filename{libelf.h} header file.% - \index{Elf\_Data@\texttt{Elf\_Data}!data type} - \item[\coref{7}] The \parameter{d\_version} member specifies the - working version for the data in this descriptor. It must be one - of the values supported by the \library{libelf} library.% - \index{Elf\_Data@\texttt{Elf\_Data}!descriptor version} - Please see chapter~\ref{chap.getting-started} for more information on - ELF version numbers. - \end{description} -\end{callout} - -Figure~\vref{fig.elf.data} shows how the members of the -\type{Elf\_Data} descriptor describe a region of application memory -containing section data. As seen in the figure, the in-memory -representation of this data might have a different size and different -endianness than its in-file -representation.\index{Elf\_Data@\texttt{Elf\_Data}!describing application - memory} - -\begin{figure} - \begin{tikzpicture}[ - eh/.style={ - text width=1.25cm, - text height=1.2cm, - draw - }] - - \node[text width=2cm,minimum height=1.5\baselineskip,font=\ttfamily, - draw,rounded corners,fill=black!10,text centered] - (data) {Elf\_Data}; - \node[node distance=0pt,right=of data] {An \texttt{Elf\_Data} descriptor}; - - % Draw the memory representation of the data. - \node[below right=2.3cm of data.south,text width=1.25cm,text height=2.5cm, - draw,fill=black!15] (mem) {}; - % .. and label it. - \node[below=1ex of mem.south] {Memory buffer}; - - % Place tick marks. - \coordinate (a0) at ([xshift=-0.3cm] mem.north west); - \coordinate (a1) at ([xshift=-0.3cm] mem.south west); - - \draw[-,shorten >=1pt] (a0) -- (mem.north west); - \draw[-,shorten >=1pt] (a1) -- (mem.south west); - \draw[<->,shorten >=1pt,shorten <=1pt] ([xshift=0.15cm] a0) -- - ([xshift=0.15cm] a1) node [midway,left] {d\_size}; - - % Link the Elf_Data descriptor to the memory buffer. - \draw[->,bend right=45,shorten >=1pt] (data) .. controls +(0,-2) - and +(-.5,0) .. (a0) node[left=1ex,midway] {d\_buf}; - - % Draw the ELF object. - \begin{scope}[ - node distance=0pt - ] - \node[eh,right=1.8cm of mem,fill=black!15] (e1) {}; - \node[eh,above=of e1] (e0) {}; - \node[eh,below=of e1] (e2) {}; - \end{scope} - - % Label the ELF object. - \node[below=1.5ex of e2.south] {A section in an ELF object.}; - - % Place tick marks and the d_align label. - \foreach \c in {0,1,2} { - \coordinate (b\c) at ([xshift=-.3cm] e\c.north west); - \draw[-,shorten >=1pt] (b\c) -- (e\c.north west); - }; - - \draw[-,shorten <=1pt] (e0.north east) -- +(.3cm,0); - \draw[-,shorten <=1pt] (e1.north east) -- +(.3cm,0) - node[right] {\%d\_align}; - - % Place other labels. - \node[right=2em of e0.east] {Start of the section.} - edge [->,shorten >=1pt] ([xshift=.3cm] e0.north east); - - \draw[<->,shorten >=1pt,shorten <=1pt] ([xshift=.15cm] b0) -- - ([xshift=.15cm] b1) node [midway,left] {d\_off}; - - \node[right=2em of e2.east,text width=8em] - {The file representation of the data in memory.} - edge [->] (e1.center); - - % Link the memory and file representations. - \draw[->,shorten >=1pt,shorten <=1pt] (mem.north east) .. controls +(1,0) - and +(-1,0) .. (b1); - \draw[->,shorten >=1pt,shorten <=1pt] (mem.south east) .. controls +(1,0) - and +(-1,0) .. (b2); - \end{tikzpicture} - \caption{How \type{Elf\_Data} descriptors work.}\label{fig.elf.data} -\end{figure} - -\section{ELF String Tables}\label{sec.shdr.strtab} - -ELF string tables hold variable length strings. Other ELF data -structures refer to the strings stored in these tables by using byte -offsets from the start of the string table. - -\begin{figure} - \begin{tikzpicture}[ - rectangle, - node distance=0pt, - minimum size=2.7em, - minimum width=3.3em, - inner sep=0pt, - se/.style={ - draw, - fill=black!5 - }, - so/.style={ - draw, - fill=black!10 - }] - - % Draw the string table. - \matrix [row sep=0pt, column sep=0pt] { - \node[se] (n0) {'\textbackslash 0'}; & \node[so] {'S'}; & - \node[se] {'t'}; & \node[so] {'r'}; & - \node[se] {'i'}; & \node[so] {'n'}; & - \node[se] {'g'}; & \node[so] {'1'}; & - \node[se] (n1) {'\textbackslash 0'}; & \node[so] {'S'}; \\ - \node[se] {'t'}; & \node[so] {'r'}; & - \node[se] {'i'}; & \node[so] {'n'}; & - \node[se] {'g' }; & \node[so] {'2'}; & - \node[se] (n2) {'\textbackslash 0'}; & \node[so] {$\cdots$}; & - \node[se] {$\cdots$}; & \node[so] (n3) {'\textbackslash 0' };\\ - }; - - % Add labels. - \def\N{\texttt{NUL}\xspace} - \node[above right=0.5cm of n0.north] {The initial \N byte} - edge [->,shorten >=1pt] (n0.north); - - \node[above right=0.4cm of n1.north] - {\N terminator} edge [->,shorten >=1pt] (n1.north); - - \node[below left=0.4cm of n2.south] {\N terminator} - edge [->,shorten >=1pt] (n2.south); - - \node[below left=1.5cm of n3.south] {The final \N byte} - edge [->,shorten >=1pt] (n3.south); - \end{tikzpicture} - \caption{String Table Layout.}\label{fig.elf.strtab} -\end{figure} - -Figure~\vref{fig.elf.strtab} shows the layout of a string table.% -\index{string~tables!layout} - -\begin{itemize} -\item The initial byte of a string table is \code{NUL} (a - `\(\backslash\)0'). This allows a byte offset value of zero to - denote the empty string. -\item Subsequent strings are separated by \code{NUL} bytes. -\item The final byte in the section is a \code{NUL}, in order to - \code{NUL}-terminate the last string in the string table. -\end{itemize} - -Sections containing string tables have section type -\constant{SHT\_STRTAB}. - -An ELF file can have multiple string tables. For example, the names of -the sections could be kept in a section name string table while the -names of program symbols could be kept in a symbol name string -table.\index{ELF!string tables} - -The \function{elf\_strptr} function in the \library{libelf} library -converts string table offsets into \code{char *} pointers usable by -C code.\index{string~tables!retrieval of strings} - -\section{Example: Listing Section Names} - -Let us now write an example program that prints the names of the -sections in an ELF object. - -\begin{callout}{prog4} - \lstinputlisting[caption=Program 4, label=src.prog.4]{prog4.txt} - - \begin{description} - \item[\coref{1}] The function \function{elf\_getshdrstrndx} - retrieves the section index of the section name string table. - Using this function allows our program to work correctly when - the object being examined uses extended - numbering.\index{sections!names!string~table}% - \index{extended~numbering!use of} - \item[\coref{2}] The function \function{elf\_nextscn} has the - useful property that it will return the pointer to the - \type{Elf\_Scn} descriptor for section number 1 if a NULL - pointer is passed in to it. Section number 0 is always of type - \constant{SHT\_NULL}, and is not for use by applications. - \item[\coref{3}] This \code{while} loop iterates through the - sections in the ELF object. Function \function{elf\_nextscn} - will return NULL after the last section has been traversed, - giving us a convenient way to exit the loop. - \item[\coref{4}] The function \function{gelf\_getshdr} retrieves - the section header table entry for an \type{Elf\_Scn} - descriptor. The \parameter{sh\_name} member of the returned - section header table entry holds the byte offset of the - section's name inside the section name string - table.\index{sections!header table entry} - \item[\coref{5}] The \function{elf\_strptr} function converts the - byte offset in the \parameter{sh\_name} member to a \code{char - *} pointer. The pointed-to C string can then be printed using - \code{printf}. - \item[\coref{6}] Next, the contents of the section name string - table itself are printed out. The call to \function{elf\_getscn} - returns the \type{Elf\_Scn} descriptor for the section name - string table itself.\index{sections!names!string~table} - \item[\coref{7}] This code cycles through the \type{Elf\_Data} - descriptors for the section, printing out the characters in each - \type{Elf\_Data} buffer for the section. - \end{description} -\end{callout} - -Save the program in listing~\vref{src.prog.4} to file -\filename{prog4.c} and then compile and run it as shown in -listing~\vref{scr.prog4}.% -\index{libelf@\texttt{libelf}!linking with} - -\begin{callout}{scr4} - \newcommand{\at}{@} - \begin{lstlisting}[language={}, basicstyle=\small\ttfamily, - label=scr.prog4, caption=Compiling and Running prog4] -% cc -o prog4 prog4.c -lelf @\co{1}@ -% ./prog4 prog4 @\co{2}@ -Section 0001 .interp -Section 0002 .note.ABI-tag -Section 0003 .hash -Section 0004 .dynsym -Section 0005 .dynstr -Section 0006 .rela.plt -Section 0007 .init -Section 0008 .plt -Section 0009 .text -Section 0010 .fini -Section 0011 .rodata -Section 0012 .data -Section 0013 .eh_frame -Section 0014 .dynamic -Section 0015 .ctors -Section 0016 .dtors -Section 0017 .jcr -Section 0018 .got -Section 0019 .bss -Section 0020 .comment -Section 0021 .shstrtab @\co{3}@ -Section 0022 .symtab -Section 0023 .strtab -.shstrab: size=287 @\co{4}@ -\^@\at@ . s y m t a b \^@\at@ . s t r t a b -\^@\at@ . s h s t r t a b \^@\at@ . i n t e -r p \^@\at@ . h a s h \^@\at@ . d y n s y m -@\ldots{}\textit{etc}\ldots@ - \end{lstlisting} - - \begin{description} - \item[\coref{1}] Compile and link the program in the standard way. - \item[\coref{2}] The program is invoked on itself, to print the - names of its own sections. - \item[\coref{3}] The section name string table is called - \code{.shstrtab} by convention. - \item[\coref{4}] This is the content of the section name string - table in this object. - \end{description} -\end{callout} - -\chapter{Creating New ELF Objects}\label{chap.creating-elf} - -This chapter shows how to use the \library{libelf} library to create -new ELF objects.\index{ELF!creation~of} - -\section{Example: Creating an ELF Object} - -The example program in listing~\vref{src.prog.5} creates an ELF file -with the following content: - -\begin{itemize} -\item A section named ``\code{.foo}'' containing data in the form - of 32-bit words that may need byte-swapping. We had discussed - \library{libelf}'s handling of data needing byte-swapping in - section~\vref{sec.representations}. -\item A section named ``\code{.shstrtab}'' containing the section - name string table for our ELF object. We covered string tables - in section~\vref{sec.shdr.strtab}. -\item A \elfdatastructure{Program Header Table} with a single - \elfdatastructure{Program Header Table Entry} covering the program - header table itself. We studied the ELF \elfdatastructure{Program - Header Table} in chapter~\ref{chap.elf-phdr}. -\end{itemize} - -The new ELF object will be marked as a 32-bit PowerPC\trade -executable, and will use big-endian data ordering. - -\begin{callout}{prog5} - \lstinputlisting[caption=Program 5, label=src.prog.5]{prog5.txt} - - \begin{description} - \item[\coref{1}] The header file \filename{libelf.h} brings in function - prototypes for \library{libelf}'s functions. - - \item[\coref{2}] The \code{hash\_words} array holds 32-bit - words. The values in the array would need to be written using - big-endian byte ordering when the section is written to - file.\index{sections!hash~values} - - \item[\coref{3}] The \code{string\_table} array holds a - pre-fabricated string table containing the names of our two - sections, ``\code{.foo}'' and - ``\code{.shstrtab}''.\index{string~tables} - - \item[\coref{4}] The first step in creating a new ELF object is to - obtain a file descriptor opened for writing. - - \item[\coref{5}] The call to function \function{elf\_begin} - allocates an \type{Elf} handle. The parameter - \constant{ELF\_C\_WRITE} informs \library{libelf} of our intent to - create a brand new ELF object.\index{object~creation} - - \item[\coref{6}] The function \function{elf32\_newehdr} allocates an - ELF \elfdatastructure{Executable Header}. An - \elfdatastructure{Executable Header} is always needed for an ELF - object.\index{executable~header!allocation} - - The next few lines populate the executable header: - \begin{enumerate} - \item The \constant{EI\_DATA} byte in the \parameter{e\_ident} - member is set to the desired endianness (big-endian in our - case). - \item The machine type is set to the constant \constant{EM\_PPC}, - for the PowerPC\trade architecture. - \item The object is marked as an ELF executable. - \end{enumerate} - - The new ELF object will be a 32-bit object, since its - \elfdatastructure{Executable Header} had been allocated using the - 32-bit \function{elf32\_newehdr} function. - - \item[\coref{7}] The call to \function{elf\_newphdr} allocates an - ELF \elfdatastructure{Program Header Table} containing a single - entry. This entry is meant to cover the \elfdatastructure{Program - Header Table} itself. - - At this point in our program we do not know the file offset at - which the ELF \elfdatastructure{Program Header Table} will be - placed inside our new ELF object. This offset would only be known - after the object is laid out. We need to defer filling in our - program header table entry until \library{libelf} has computed an - object layout for us (please see step 11 below). - - \item[\coref{8}] The call to \function{elf\_newscn} allocates an - \type{Elf\_Scn} descriptor for the ELF section that will hold the - values in the \code{hash\_words} array. - - To actually associate data with our new section we allocate an - \type{Elf\_Data} descriptor and set its fields to map the - \code{hash\_words} array. - - A call to \function{elf32\_getshdr} then returns the - \elfdatastructure{Section Header Table Entry} for the new section. - - \begin{enumerate} - \item The type of the new section is set to \constant{SHT\_HASH}. - The \library{libelf} library knows how to byte-swap sections of - this type. - - \item The section is marked as containing content in the file by - setting its \parameter{sh\_flags} field to the constant - \constant{SHF\_ALLOC}. - \end{enumerate} - - \item[\coref{9}] The next call to \function{elf\_newscn} allocates - another section descriptor; this descriptor will be used for the - section name string table.\index{string~tables!allocation~of} The - code then allocates an \type{Elf\_Data} descriptor for this - section, and sets its members to map the pre-fabricated string - table in the array \code{string\_table}. - - The call to \function{elf32\_getshdr} retrieves the - \elfdatastructure{Section Header Table Entry} for this section. - The members of this section header table entry are set as follows: - - \begin{enumerate} - \item The type of the section is set to \constant{SHT\_STRTAB}, - the section type for string tables. - \item The section flags are set to indicate that the section - contains data in the file, and that it contains - \code{NUL}-terminated strings. - \end{enumerate} - - \item[\coref{10}] The function \function{elf\_ndxscn} retrieves the - section index for the string table section. The call to function - \function{elf\_setshstrndx} then sets the section name string - table index field in the ELF \elfdatastructure{Executable - Header}.\index{executable~header!section name string table} - - \item[\coref{11}] The call of the function \function{elf\_update} - with the parameter \constant{ELF\_C\_NULL} requests the - \library{libelf} library to compute a layout for an ELF object - without writing the object out.. - - After the call to \function{elf\_update} returns, the code - examines the ELF object's \elfdatastructure{Executable Header} to - determine where \library{libelf} had placed the object's - \elfdatastructure{Program Header Table}. It then updates the - \elfdatastructure{Program Header Table Entry} created in step 7 to - cover the program header table's file location. - - The call to function \function{elf\_flagdata} marks the - \elfdatastructure{Program Header Table} as having been modified.% - \index{executable~header!updating} - - \item[\coref{12}] Finally, the function \function{elf\_update} is - called with parameter \constant{ELF\_C\_WRITE} in order to write - the ELF object out to file.\index{object~creation!writing to - file} - - If this example program is run on a little-endian host the - \library{libelf} library will byte-swap the sections that need - byte-swapping when the ELF object is written out to file. - \end{description} -\end{callout} - -Save the program in listing~\vref{src.prog.5} to file -\filename{prog5.c} and then compile and run it as shown in -listing~\vref{scr.prog5}.% -\index{libelf@\texttt{libelf}!linking with} - -\begin{callout}{scr5} - \begin{lstlisting}[language={}, basicstyle=\small\ttfamily, - label=scr.prog5, caption=Compiling and Running prog5] -% cc -o prog5 prog5.c -lelf @\co{1}@ -% ./prog5 foo -% file foo @\co{2}@ -foo: ELF 32-bit MSB executable, PowerPC or cisco 4500, \ - version 1 (SYSV), statically linked, stripped -% readelf -a foo @\co{3}@ -ELF Header: - Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 - Class: ELF32 - Data: 2's@\,@complement,@\,@big@\,@endian - Version: 1 (current) - OS/ABI: UNIX - System V - ABI Version: 0 - Type: EXEC (Executable file) - Machine: PowerPC - Version: 0x1 - Entry point address: 0x0 - Start of program headers: 52 (bytes into file) - Start of section headers: 112 (bytes into file) - Flags: 0x0 - Size of this header: 52 (bytes) - Size of program headers: 32 (bytes) - Number of program headers: 1 - Size of section headers: 40 (bytes) - Number of section headers: 3 - Section header string table index: 2 -@\ldots etc\ldots@ - \end{lstlisting} - - \begin{description} - \item[\coref{1}] Compile, link and run the program as in our - previous examples. - \item[\coref{2} \coref{3}] We can use the \tool{file} and - \tool{readelf} programs to examine the object that we have - created. - \end{description} -\end{callout} - -\section{Controlling ELF Layout}\label{sec.controlling-layout} -By default, the \library{libelf} library will lay out your ELF objects -for you. The default layout is shown in -figure~\vref{fig.elf.layout}.\index{object~creation!default~layout}% - -You can request fine-grained control over the ELF object's layout by -setting the \constant{ELF\_F\_LAYOUT} flag on its \type{Elf} -descriptor. This flag is set using the function \function{elf\_flagelf}.% -\index{object~creation!application control of layout} - -After setting the \constant{ELF\_F\_LAYOUT} flag on an \type{Elf} -descriptor, you can control the layout of the ELF object using the -following parameters: - -\begin{itemize} -\item You can set the values of the \parameter{e\_phoff} and - \parameter{e\_shoff} members of the \elfdatastructure{Executable - Header}. These values determine where the ELF - \elfdatastructure{Program Header Table} and - \elfdatastructure{Section Header Table} would be placed in the ELF - object. - -\item For each section you can set the \parameter{sh\_addralign}, - \parameter{sh\_offset}, and \parameter{sh\_size} members of the - section's header table entry. These members control the placement - of the section within the ELF object. -\end{itemize} - -These members must be set prior to calling the \function{elf\_update} -function. - -\section{Fill Characters} - -The \library{libelf} library will fill the gaps between the parts of -the ELF object with a fill character.\index{ELF!fill character} These -gaps may arise due to the alignment constraints on adjacent sections. - -You can set the fill character to use by calling the function -\function{elf\_fill} before calling \function{elf\_update}. The -default fill character is a zero byte.% -\index{object~creation!fill~character}% - -\section{Memory Ownership} - -Some of the APIs implemented by \library{libelf} return pointers to -memory arenas; other APIs accept pointers to memory arenas as input. -Knowing when you should (or should not) call \code{free()} on a -pointer is essential to avoid corrupting memory. - -The \library{libelf} library follows a simple rule: it will not free -data that it did not allocate. Conversely, it \emph{will} free memory -that it had allocated.% -\index{libelf@\texttt{libelf}!API!memory~management~rules} - -You should not free pointers returned by \library{libelf}, such as the -\code{Elf\_Scn *} pointers returned by calls to \function{elf\_getscn} -and the \code{Elf\_Data~*} pointers returned by calls to -\function{elf\_newdata}. Conversely, if you had allocated a memory -arena mapped by an \type{Elf\_Data} structure, then you should release -the arena once you are done with it. - - -\section{Data Structure Lifetimes} - -Many of \library{libelf}'s APIs return pointers to its internal data -structures. In objects opened for writing these pointers have a -limited lifetime---they are only valid up till the time the ELF object -is written out to file by a call to function \function{elf\_update}.% -\index{libelf@\texttt{libelf}!API!data structure refresh rules} - -This is because when \library{libelf} writes out an ELF object, it -releases and reallocates some of its internal bookkeeping structures. - -After calling function \function{elf\_update} with parameter -\constant{ELF\_C\_WRITE} you should treat any prior pointers returned -by \library{libelf}, such as pointers to \type{Elf\_Scn} and -\type{Elf\_Data} structures, as invalid. If you wish to continue -working with your ELF object, you should retrieve these pointers -afresh from \library{libelf}.% -\index{libelf@\texttt{libelf}!API!pointer validity} - -\section{Modifying Existing ELF Objects}\label{sec.modifying-elf} - -You can use the \library{libelf} library to modify existing ELF -objects. - -The process to update an ELF object is similar to that for creating -ELF objects, with the following -differences:\index{object~modification} - -\begin{itemize} -\item You would open the underlying file for both reading and writing, - i.e., with mode \code{O\_RDWR}. - -\item You would need an \type{Elf} descriptor that is valid for - updates. You can allocate a suitable descriptor by calling function - \function{elf\_begin} using the parameter \constant{ELF\_C\_RDWR}. - -\item You can use functions such as \function{elf\_newscn}, - \function{elf32\_newphdr} and \function{elf64\_newphdr} to add new - data structures to your object.% - \index{object~modification!adding new structures} - You can also retrieve existing ELF data structures in the file using - APIs such as those discussed in the previous chapters of this - tutorial. You can add new data to existing sections using the - function \function{elf\_newdata}. - -\item After you modify the fields of a data structure retrieved from - the ELF object, you should call the appropriate - \function{elf\_flag} functions to inform \library{libelf} about - your change.\index{object~modification!flagging modified data} -\end{itemize} - -A caution: when you update an ELF object, you should take care to -ensure that the resulting object remains a valid ELF object. For -example, if you move the sections of an ELF executable around, then -you should also keep the relevant offsets in its -\elfdatastructure{Program Header Table} entries updated. We will not -however explore this topic further in this introductory tutorial. - -\chapter{Processing \tool{ar} Archives}\label{chap.ar} - -During program development the \tool{ar} archiver is used to manage -``libraries'' of object files.\index{archive library} - -You can use the \library{libelf} library to read these archives. The -\library{libelf} library's APIs are however `read-only'---\tool{ar} -archives cannot be created or modified using these APIs.% -\footnote{The - \href{https://github.com/libarchive/libarchive/wiki}{\library{libarchive}} - library could be used instead to create or modify \tool{ar} - archives.} - -In this chapter we will build an example program that takes an -\tool{ar} archive as input and lists the names and sizes of the files -contained within it. - -\section{The Structure of \tool{ar} Archives} - -Every \tool{ar} archive starts with a signature sequence of 8 bytes -(please see the constant \constant{ARMAG}\index{ar~archive!magic} -defined in the system header \filename{ar.h}). The members of the -archive follow this signature. - -Figure~\vref{fig.arstr} shows the structure of an -\tool{ar} archive. - -\begin{figure} - \begin{tikzpicture}[ - file/.style={ % Boxes denoting archive content. - rectangle, - draw, - text centered, - text width=6.45em, - node distance=0pt, - minimum height=2em - }, - arhdr/.style={ % Boxes denoting archive headers. - rectangle, - draw, - fill=black!25, - node distance=0pt, - minimum height=2em, - minimum width=1ex, - inner sep=0pt - }, - lbl/.style={ % Styling of label text. - text height=1em - }, - hdr/.style={ - text width=4.2em, - draw, - fill=black!15, - node distance=0pt, - font=\ttfamily - }] - - % Depict the structure of the archive. - \node[arhdr,fill=black!50] (magic) {}; - \node[arhdr] (s0) [right=of magic] {}; - \node[file,text width=1.3em] (symtab) [right=of s0] {``/''}; - \node[arhdr] (s1) [right=of symtab] {}; - \node[file,text width=1.7em] (strtab) [right=of s1] {``$/\!/$''}; - \node[arhdr] (h0) [right=of strtab] {}; - \node[file] (f0) [right=of h0] {File 0}; - \node[arhdr] (h1) [right=of f0] {}; - \node[file] (f1) [right=of h1] {File 1}; - \node[arhdr] (h2) [right=of f1] {}; - \node[file] (f2) [right=of h2] {File 2}; - \node[arhdr] (h3) [right=of f2] {}; - \node[file,text width=1em] (f3) [right=of h3] {$\ldots$}; - - % Label the elements of the archive. - \node[lbl] (lmagic) [below=of magic,text height=1em] {archive ``magic''} - edge [->] ([yshift=-1pt] magic.south); - \node[lbl] (lheader) [below=of f0.south,text height=1em] {archive headers} - edge [->] ([yshift=-1pt] s0.south) - edge [->] ([yshift=-1pt] s1.south) - edge [->] ([yshift=-1pt] h0.south) - edge [->] ([yshift=-1pt] h1.south) - edge [->] ([yshift=-1.2pt] h2.south) - edge [->] ([yshift=-1.2pt] h3.south); - \node[lbl] (lsymtab) [above=5em of symtab.north] - {archive symbol table} - edge [->] ([yshift=1pt] symtab.north); - \node[lbl] (lstrtab) [above=3em of f0.north] - {archive string table} - edge [->] ([yshift=1pt] strtab.north); - - % Show the internal structure of an archive header. - \node[hdr] (arfmag) [above=2.2em of h2.north] - {\texttt{ar\_fmag}}; - \node[hdr] (arsize) [above=of arfmag.north] {ar\_size}; - \node[hdr] (armode) [above=of arsize.north] {ar\_mode}; - \node[hdr] (argid) [above=of armode.north] {ar\_gid}; - \node[hdr] (aruid) [above=of argid.north] {ar\_uid}; - \node[hdr] (ardate) [above=of aruid.north] {ar\_date}; - \node[hdr] (arname) [above=of ardate.north] {ar\_name}; - - % Draw "expansion" lines. - \draw[shorten >=1pt, shorten <=1pt] ([yshift=1.2pt] h1.north east) - to (arfmag.south west); - \draw[shorten >=1pt, shorten <=1pt] ([yshift=1pt] h1.north west) - to (arname.north west); - \end{tikzpicture} - \caption{The structure of \tool{ar} archives.}\label{fig.arstr} -\end{figure} - -\subsection{The Archive Header} - -Each member of an \tool{ar} archive is preceded by an archive -header\index{ar~archive!header} that describes the member's -attributes. The archive header is a collection of fixed-size ASCII -strings that resides at an even offset within the archive -file.\index{ar~archive!header!layout} Listing~\vref{src.arhdr} shows -the layout of the archive header as a C \code{struct}. - -\begin{lstlisting}[caption=Archive Header Layout, label=src.arhdr] -struct ar_hdr { - char ar_name[16]; /* file name */ - char ar_date[12]; /* file modification time */ - char ar_uid[6]; /* creator user id */ - char ar_gid[6]; /* creator group id */ - char ar_mode[8]; /* octal file permissions */ - char ar_size[10]; /* size in bytes */ -#define ARFMAG "`\n" - char ar_fmag[2]; /* consistency check */ -} __packed; -\end{lstlisting} - -\section{Special Archive Members} -The initial members of an \tool{ar} archive may be special: - -\begin{itemize} -\item An archive member with the name ``/'' is an archive symbol - table\index{ar~archive!symbol~table}. This symbol table maps - program symbols to archive members in the archive. It is usually - maintained by tools like \tool{ranlib} and \tool{ar}. - -\item An archive member with the name ``/\hskip-.2ex/'' is an archive - string table\index{ar~archive!string~table}. - - The \tool{ar} archive header can only contain fixed size ASCII - strings. Member file names that exceed the length limits of the - \parameter{ar\_name} archive header field would need to be placed in - a special string table.\footnote{Archive string tables are not to be - confused with ELF string tables. ELF string tables were examined - in section~\ref{sec.shdr.strtab}.} The \parameter{ar\_name} field - of the archive header would then hold the offset within the archive - string table of the real file name, encoded as a decimal - number.\index{ar~archive!long~file~names} -\end{itemize} - -\section{Archive Flavors} - -\tool{ar} archives come in two flavors mainly: BSD and SVR4. These -flavors are different in many respects---for example, SVR4 archives -use a `/' character to terminate file names in the archive header, -whereas BSD format archives use a ASCII space character as a -terminator. The way the two formats handle long file names is also -different. The archive handling APIs offered by the \library{libelf} -library will insulate your code from the differences between the -archive formats. - -\section{Archive Symbol Tables}\label{sec.ar.symtab} - -An archive symbol table helps linkers to quickly locate the ELF -objects in an archive. The BSD and SVR4 archive flavors have their own -archive symbol table formats. - -If an archive symbol table is present in an \tool{ar} archive, it will -be the archive's first member. - -\tool{ar} archive symbol tables are read using the function -\function{elf\_getarsym}.\index{ar~archive!symbol~table!retrieval of} -This function returns an array of \type{Elf\_Arsym} structures, where -each \type{Elf\_Arsym} structure maps a program symbol to a file -offset within the \tool{ar} archive. These file offsets can then be -used with the \function{elf\_rand} function to retrieve the ELF object -in question (please see section~\ref{sec.ar.random-access} below). - -Listing~\vref{fig.arsym} contains the C definition of an -\type{Elf\_Arsym} data type. - -\begin{lstlisting}[caption=The \type{Elf\_Arsym} structure, - label=fig.arsym, basicstyle=\small\ttfamily] -typedef struct { - off_t as_off; /* byte offset to member header */ - unsigned long as_hash; /* elf_hash() value for name */ - char *as_name; /* null terminated symbol name */ -} Elf_Arsym; -\end{lstlisting} - -\section{Random Archive Access Using \function{elf\_rand}} -\label{sec.ar.random-access} - -Instead of iterating over the members of an \tool{ar} archive in -sequence, you can also directly access specific members in the archive -using the \function{elf\_rand} -function.\index{ar~archive!random~access} - -This function configures the parent archive's \type{Elf} descriptor to -open the desired archive member on the next call to -\function{elf\_begin}. - -The \function{elf\_rand} function takes the file offset to an archive -header as its input parameter. This means that the function is only -useful when the file offset to the desired member's archive header is -already known. If an archive contains an archive symbol table -\index{ar~archive!symbol~table} then the function -\function{elf\_getarsym} could be used to retrieve the relevant file -offsets to its member's headers. - -The \function{elf\_getarsym} function was described in -section~\ref{sec.ar.symtab} above. - -\section{Example: Stepping Through an \filename{ar} Archive} - -Listing~\vref{src.prog.6} contains a program that traverses an -\tool{ar} archive, printing out the file names and byte sizes of its -members. - -\begin{figure}[h] - \begin{tikzpicture}[ - file/.style={ % Boxes denoting file content. - rectangle, - draw, - text centered, - text width=6.45em, - node distance=0pt, - minimum height=2em - }, - header/.style={ % Boxes denoting archive headers. - rectangle, - draw, - fill=black!25, - node distance=0pt, - minimum height=2em, - minimum width=1ex, - inner sep=0pt, - }, - lbl/.style={ % Styling of label text. - text height=1em - }] - - % Depict the structure of the archive pictorially. - \node[header,fill=black!50] (magic) {}; - \node[header] (s0) [right=of magic] {}; - \node[file,text width=1.3em] (symtab) [right=of s0] {``/''}; - \node[header] (s1) [right=of symtab] {}; - \node[file,text width=1.7em] (strtab) [right=of s1] {``$/\!/$''}; - \node[header] (h0) [right=of strtab] {}; - \node[file] (f0) [right=of h0] {File 0}; - \node[header] (h1) [right=of f0] {}; - \node[file] (f1) [right=of h1] {File 1}; - \node[header] (h2) [right=of f1] {}; - \node[file] (f2) [right=of h2] {File 2}; - \node[header] (h3) [right=of f2] {}; - \node[file,text width=1em] (f3) [right=of h3] {$\ldots$}; - - % Label the parts of the archive. - \node[lbl] (lmagic) [below=of magic,text height=1em] {archive ``magic''} - edge [->] ([yshift=-1pt] magic.south); - \node[lbl] (lheader) [below=of f0.south,text height=1em] {archive headers} - edge [->] ([yshift=-1pt] s0.south) - edge [->] ([yshift=-1pt] s1.south) - edge [->] ([yshift=-1pt] h0.south) - edge [->] ([yshift=-1pt] h1.south) - edge [->] ([yshift=-1.2pt] h2.south) - edge [->] ([yshift=-1.2pt] h3.south); - - % Label the contents retrieved by calls to elf_begin(). - \node[lbl] (eb0) [above=of f0.north west] {$\texttt{elf\_begin}_{(0)}$} - edge[->] ([yshift=1pt] f0.north west); - \node[lbl] (eb1) [above=of f1.north west] {$\texttt{elf\_begin}_{(1)}$} - edge [->] ([yshift=1pt] f1.north west); - \node[lbl] (eb2) [above=of f2.north west] {$\texttt{elf\_begin}_{(2)}$} - edge [->] ([yshift=1pt] f2.north west); - - % Show the traversal of the archive by elf_next(). - \draw[->,shorten >=1pt,shorten <=1pt,bend left] (h0.north east) to - node[auto] {$\texttt{elf\_next}_{(0)}$} (h1.north east); - \draw[->,shorten >=1pt,shorten <=1pt,bend left] (h1.north east) to - node[auto] {$\texttt{elf\_next}_{(1)}$} (h2.north east); - \draw[->,shorten >=1pt,shorten <=1pt,bend left] (h2.north east) to - node[auto] {$\texttt{elf\_next}_{(2)}$} (h3.north east); - \end{tikzpicture} - \caption{Iterating through \tool{ar} archives with - \function{elf\_begin} and \function{elf\_next}.}\label{fig.ariter} -\end{figure} - -\begin{callout}{prog6} - \lstinputlisting[caption=Program 6, label=src.prog.6]{prog6.txt} - - \begin{description} - \item[\coref{1}] The call to \code{open()} opens the archive for - reading. - \item[\coref{2}] The function \function{elf\_begin} is used to - obtain an \type{Elf} descriptor.\index{ar~archive!reading of} The - code then checks that \library{libelf} library has recognized the - file as an \tool{ar} archive. - - \item[\coref{3}] The call of \function{elf\_begin} returns a nested - \type{Elf} descriptor to an archive - member.\index{ELF!nested descriptors} The third - parameter passed to \function{elf\_begin} is a pointer to the - \type{Elf} descriptor for the archive itself. - - \item[\coref{4}] The function \function{elf\_getarhdr} retrieves the - archive header for the current archive member. This function - translates the (possibly encoded) file names in the archive header - to \code{NUL}-terminated strings suitable for use with - \code{printf}.\index{ar~archive!header!retrieval~of} - - Figure~\vref{fig.arhdr} shows the translated information returned - by the \function{elf\_getarhdr} function. - - \begin{lstlisting}[caption=The \type{Elf\_Arhdr} Structure, - label=fig.arhdr, basicstyle=\small\ttfamily] -typedef struct { - time_t ar_date; /* time of creation */ - char *ar_name; /* archive member name */ - gid_t ar_gid; /* creator's group */ - mode_t ar_mode; /* file creation mode */ - char *ar_rawname; /* 'raw' member name */ - size_t ar_size; /* member size in bytes */ - uid_t ar_uid; /* creator's user id */ -} Elf_Arhdr; - \end{lstlisting} - - The code then prints out the name and the size of the archive - member using the \parameter{ar\_name} and \parameter{ar\_size} - fields of the returned \type{Elf\_Arhdr} structure. - - \item[\coref{5}] The call of the \function{elf\_next} function sets - up the parent archive descriptor (held in the variable \code{ar} - in our example) to return the next archive member on a subsequent - call to function \function{elf\_begin}. - - The \function{elf\_next} function will return the value - \constant{ELF\_C\_READ} as long as the traversal of the archive - can continue. When called with a descriptor to the last member of - an archive the \function{elf\_next} function will return the value - \constant{ELF\_C\_NULL}. This value will cause the subsequent - call to function \function{elf\_begin} at step 3 to return - \code{NULL}, thereby terminating the loop. - - Figure \vref{fig.ariter} shows how the functions - \function{elf\_begin} and \function{elf\_next} work together to - step through an \tool{ar} archive.% - \index{ar~archive!sequential~access} - - \item[\coref{6}] The \function{elf\_end} function releases the - resources held by \type{Elf} descriptors. - \end{description} -\end{callout} - -Save the program in listing~\ref{src.prog.6} to a file named -\filename{prog6.c}, and compile and run it as shown. -\index{libelf@\texttt{libelf}!linking with} - -\begin{callout}{scr6} - \begin{lstlisting}[language={}, basicstyle=\small\ttfamily, - label=scr.prog6, caption=Compiling and Running prog6] -% cc -o prog6 prog6.c -lelf @\co{1}@ -% ./prog6 /usr/lib/librt.a @\co{2}@ - timer.o 7552 - mq.o 8980 - aio.o 8212 - sigev_thread.o 15528 - \end{lstlisting} - \begin{description} - \item[\coref{1}] We compile and link the program with \library{libelf}. - \item[\coref{2}] We run the program on an archive and obtain a - listing of the archive's contents. - \end{description} -\end{callout} - -\chapter{Conclusion}\label{chap.conclusion} - -This tutorial covered the following topics: -\begin{itemize} -\item We studied the basics of the ELF format. We looked at a few key - ELF data structures, and at their layout inside ELF objects. -\item We covered the facilities offered by the \library{libelf} - library for manipulating ELF objects. -\item We wrote example programs that retrieved and displayed the ELF - data structures present in a few ELF objects. -\item We studied how to create new ELF objects using the - \library{libelf} library. -\item We looked at how to read \tool{ar} archives using - \library{libelf}. -\end{itemize} - -\section{Further Reading} - -\index{ELF!further reading} - -\subsection{On the Web} -Peter Seebach's DeveloperWorks article ``\href{% -https://web.archive.org/web/20070224140341/http://www-128.ibm.com/developerworks/power/library/pa-spec12/% -}{An unsung hero: The hardworking ELF}'' covers the history and -features of the ELF format. Hongjiu Liu's ``\href{% -https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.8698}{ELF: -From The Programmer's Perspective}'' describes how to use the -features of ELF with GCC and GNU ld. The paper ``\href{% -http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.136.2517}{Extending -Sim286 to the Intel386 Architecture with 32-bit processing and Elf -Binary input} by Michael L. Haungs and Brian A. Malloy contains a -description of the ELF format in the chapter ``\href{% -https://web.archive.org/web/20071217235525/www.cs.ucdavis.edu/~haungs/paper/node10.html% -}{Executable and Linking Format (ELF)}''. - -Neelakanth Nadgir's tutorial ``\href{% -https://web.archive.org/web/20110926220119/http://developers.sun.com/solaris/articles/elf.html% -}{LibElf and GElf - A Library to Manipulate ELf Files}'' is a readable -introduction to the ELF(3) and GELF(3) APIs in Solaris\trade. - -\index{linking!books about}The -\href{https://docs.oracle.com/cd/E53394_01/html/E54813/index.html}{Linkers -and Libraries Guide} from Oracle\reg describes the linking and -loading tools present in Solaris\trade. Chapter 14 of this book, -titled ``Object File Format'', contains a readable introduction to the -ELF format. - -\subsection{More Example Programs} - -\index{libelf@\texttt{libelf}!additional examples} -The -\href{https://sourceforge.net/p/elftoolchain/code/HEAD/tree/trunk/}% -{source code for the tools} being developed at the -\elftoolchainproject at \href{https://sourceforge.net/}{SourceForge.Net} -show the use of the ELF(3)/GELF(3) APIs in useful programs. - -For readers looking for smaller programs to study, Emmanuel Azencot -offers a website with -\href{http://freemanu1.free.fr/elf_examples/index.html}{example - programs}. - -\subsection{Books} - -\index{linking!books about}John Levine's -``\href{https://linker.iecc.com/}{Linkers and Loaders}'' is a readable -book offering a overview of the process of linking and loading object -files. - -\subsection{Standards} - -\index{ELF!specification}The current specification of the ELF -format, the ``\href{https://refspecs.linuxbase.org/elf/elf.pdf}% -{Tool Interface Standard (TIS) Executable and Linking Format -(ELF) Specification, Version 1.2}'' is freely available to be -downloaded. - -\section{Getting Further Help} - -\index{getting help!mailing list}If you have further questions about -the use of \library{libelf}, please feel free to use our discussion -list: \texttt{elftoolchain-\-developers@lists.sourceforge.net}. - -\backmatter - -% Typeset an index. -\printindex -\end{document} diff --git a/contrib/elftoolchain/documentation/libelf-by-example/prog1.txt b/contrib/elftoolchain/documentation/libelf-by-example/prog1.txt deleted file mode 100644 index 03eedf96..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/prog1.txt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Getting started with libelf. - * - * $Id$ - */ - -#include -#include -#include @\co{1}@ -#include -#include -#include - -int -main(int argc, char **argv) -{ - int fd; - Elf *e; @\co{2}@ - char *k; - Elf_Kind ek; @\co{3}@ - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s file-name", argv[0]); - - if (elf_version(EV_CURRENT) == EV_NONE) @\co{4}@ - errx(EXIT_FAILURE, "ELF library initialization " - "failed: %s", elf_errmsg(-1)); - - if ((fd = open(argv[1], O_RDONLY, 0)) < 0) - err(EXIT_FAILURE, "open \%s\" failed", argv[1]); - - if ((e = elf_begin(fd, ELF_C_READ@\co{5}@, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s.", - elf_errmsg(-1)); @\co{6}@ - - ek = elf_kind(e); @\co{7}@ - - switch (ek) { - case ELF_K_AR: - k = "ar(1) archive"; - break; - case ELF_K_ELF: - k = "elf object"; - break; - case ELF_K_NONE: - k = "data"; - break; - default: - k = "unrecognized"; - } - - (void) printf("%s: %s\n", argv[1], k); - - (void) elf_end(e); @\co{8}@ - (void) close(fd); - - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/documentation/libelf-by-example/prog2.txt b/contrib/elftoolchain/documentation/libelf-by-example/prog2.txt deleted file mode 100644 index 34e6f7aa..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/prog2.txt +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Print the ELF Executable Header from an ELF object. - * - * $Id$ - */ - -#include -#include -#include @\co{1}@ -#include -#include -#include -#include -#include - -int -main(int argc, char **argv) -{ - int i, fd; - Elf *e; - char *id, bytes[5]; - size_t n; - GElf_Ehdr ehdr; @\co{2}@ - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s file-name", argv[0]); - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization " - "failed: %s", elf_errmsg(-1)); - - if ((fd = open(argv[1], O_RDONLY, 0)) < 0) - err(EXIT_FAILURE, "open \"%s\" failed", argv[1]); - - if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) @\co{3}@ - errx(EXIT_FAILURE, "elf_begin() failed: %s.", - elf_errmsg(-1)); - - if (elf_kind(e) != ELF_K_ELF) - errx(EXIT_FAILURE, "\"%s\" is not an ELF object.", - argv[1]); - - if (gelf_getehdr(e, &ehdr) == NULL) @\co{4}@ - errx(EXIT_FAILURE, "getehdr() failed: %s.", - elf_errmsg(-1)); - - if ((i = gelf_getclass(e)) == ELFCLASSNONE) @\co{5}@ - errx(EXIT_FAILURE, "getclass() failed: %s.", - elf_errmsg(-1)); - - (void) printf("%s: %d-bit ELF object\n", argv[1], - i == ELFCLASS32 ? 32 : 64); - - if ((id = elf_getident(e, NULL)) == NULL) @\co{6}@ - errx(EXIT_FAILURE, "getident() failed: %s.", - elf_errmsg(-1)); - - (void) printf("%3s e_ident[0..%1d] %7s", " ", - EI_ABIVERSION, " "); - - for (i = 0; i <= EI_ABIVERSION; i++) { - (void) vis(bytes, id[i], VIS_WHITE, 0); - (void) printf(" ['%s' %X]", bytes, id[i]); - } - - (void) printf("\n"); - -#define PRINT_FMT " %-20s 0x%jx\n" -#define PRINT_FIELD(N) do { \ - (void) printf(PRINT_FMT, #N, (uintmax_t) ehdr.N); \ - } while (0) - - PRINT_FIELD(e_type); @\co{7}@ - PRINT_FIELD(e_machine); - PRINT_FIELD(e_version); - PRINT_FIELD(e_entry); - PRINT_FIELD(e_phoff); - PRINT_FIELD(e_shoff); - PRINT_FIELD(e_flags); - PRINT_FIELD(e_ehsize); - PRINT_FIELD(e_phentsize); - PRINT_FIELD(e_shentsize); - - if (elf_getshdrnum(e, &n) != 0) @\co{8}@ - errx(EXIT_FAILURE, "getshdrnum() failed: %s.", - elf_errmsg(-1)); - (void) printf(PRINT_FMT, "(shnum)", (uintmax_t) n); - - if (elf_getshdrstrndx(e, &n) != 0) @\co{9}@ - errx(EXIT_FAILURE, "getshdrstrndx() failed: %s.", - elf_errmsg(-1)); - (void) printf(PRINT_FMT, "(shstrndx)", (uintmax_t) n); - - if (elf_getphdrnum(e, &n) != 0) @\co{10}@ - errx(EXIT_FAILURE, "getphdrnum() failed: %s.", - elf_errmsg(-1)); - (void) printf(PRINT_FMT, "(phnum)", (uintmax_t) n); - - (void) elf_end(e); - (void) close(fd); - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/documentation/libelf-by-example/prog3.txt b/contrib/elftoolchain/documentation/libelf-by-example/prog3.txt deleted file mode 100644 index fa0604ce..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/prog3.txt +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Print the ELF Program Header Table in an ELF object. - * - * $Id$ - */ - -#include -#include -#include @\co{1}@ -#include -#include -#include -#include - -void -print_ptype(size_t pt) @\co{2}@ -{ - char *s; - -#define C(V) case PT_##V: s = #V; break - switch (pt) { - C(NULL); C(LOAD); C(DYNAMIC); - C(INTERP); C(NOTE); C(SHLIB); - C(PHDR); C(TLS); C(SUNW_UNWIND); - C(SUNWBSS); C(SUNWSTACK); C(SUNWDTRACE); - C(SUNWCAP); - default: - s = "unknown"; - break; - } - (void) printf(" \"%s\"", s); -#undef C -} - -int -main(int argc, char **argv) -{ - int i, fd; - Elf *e; - char *id, bytes[5]; - size_t n; - GElf_Phdr phdr; @\co{3}@ - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s file-name", argv[0]); - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization " - "failed: %s", elf_errmsg(-1)); - - if ((fd = open(argv[1], O_RDONLY, 0)) < 0) - err(EXIT_FAILURE, "open \"%s\" failed", argv[1]); - - if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s.", - elf_errmsg(-1)); - - if (elf_kind(e) != ELF_K_ELF) - errx(EXIT_FAILURE, "\"%s\" is not an ELF object.", - argv[1]); - - if (elf_getphdrnum(e, &n) != 0) @\co{4}@ - errx(EXIT_FAILURE, "elf_getphdrnum() failed: %s.", - elf_errmsg(-1)); - - for (i = 0; i < n; i++) { @\co{5}@ - if (gelf_getphdr(e, i, &phdr) != &phdr) @\co{6}@ - errx(EXIT_FAILURE, "getphdr() failed: %s.", - elf_errmsg(-1)); - - (void) printf("PHDR %d:\n", i); -#define PRINT_FMT " %-20s 0x%jx" -#define PRINT_FIELD(N) do { \ - (void) printf(PRINT_FMT, #N, (uintmax_t) phdr.N); \ - } while (0) -#define NL() do { (void) printf("\n"); } while (0) - PRINT_FIELD(p_type); @\co{7}@ - print_ptype(phdr.p_type); NL(); - PRINT_FIELD(p_offset); NL(); - PRINT_FIELD(p_vaddr); NL(); - PRINT_FIELD(p_paddr); NL(); - PRINT_FIELD(p_filesz); NL(); - PRINT_FIELD(p_memsz); NL(); - PRINT_FIELD(p_flags); - (void) printf(" ["); - if (phdr.p_flags & PF_X) - (void) printf(" execute"); - if (phdr.p_flags & PF_R) - (void) printf(" read"); - if (phdr.p_flags & PF_W) - (void) printf(" write"); - printf(" ]"); NL(); - PRINT_FIELD(p_align); NL(); - } - - (void) elf_end(e); - (void) close(fd); - exit(EXIT_SUCCESS); -} - - diff --git a/contrib/elftoolchain/documentation/libelf-by-example/prog4.txt b/contrib/elftoolchain/documentation/libelf-by-example/prog4.txt deleted file mode 100644 index 45f5e1c6..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/prog4.txt +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Print the names of ELF sections. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -int -main(int argc, char **argv) -{ - int fd; - Elf *e; - Elf_Scn *scn; - Elf_Data *data; - GElf_Shdr shdr; - size_t n, shstrndx, sz; - char *name, *p, pc[(4 * sizeof(char)) + 1]; - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s file-name", argv[0]); - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization " - "failed: %s", elf_errmsg(-1)); - - if ((fd = open(argv[1], O_RDONLY, 0)) < 0) - err(EXIT_FAILURE, "open \%s\" failed", argv[1]); - - if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s.", - elf_errmsg(-1)); - - if (elf_kind(e) != ELF_K_ELF) - errx(EXIT_FAILURE, "%s is not an ELF object.", - argv[1]); - - if (elf_getshdrstrndx(e, &shstrndx) != 0) @\co{1}@ - errx(EXIT_FAILURE, "elf_getshdrstrndx() failed: %s.", - elf_errmsg(-1)); - - scn = NULL; @\co{2}@ - while ((scn = elf_nextscn(e, scn)) != NULL) { @\co{3}@ - if (gelf_getshdr(scn, &shdr) != &shdr) @\co{4}@ - errx(EXIT_FAILURE, "getshdr() failed: %s.", - elf_errmsg(-1)); - - if ((name = elf_strptr(e, shstrndx, shdr.sh_name)) - == NULL) @\co{5}@ - errx(EXIT_FAILURE, "elf_strptr() failed: %s.", - elf_errmsg(-1)); - - (void) printf("Section %-4.4jd %s\n", (uintmax_t) - elf_ndxscn(scn), name); - } - - if ((scn = elf_getscn(e, shstrndx)) == NULL) @\co{6}@ - errx(EXIT_FAILURE, "getscn() failed: %s.", - elf_errmsg(-1)); - - if (gelf_getshdr(scn, &shdr) != &shdr) - errx(EXIT_FAILURE, "getshdr(shstrndx) failed: %s.", - elf_errmsg(-1)); - - (void) printf(".shstrab: size=%jd\n", (uintmax_t) - shdr.sh_size); - - data = NULL; n = 0; - while (n < shdr.sh_size && - (data = elf_getdata(scn, data)) != NULL) { @\co{7}@ - p = (char *) data->d_buf; - while (p < (char *) data->d_buf + data->d_size) { - if (vis(pc, *p, VIS_WHITE, 0)) - printf("%s", pc); - n++; p++; - (void) putchar((n % 16) ? ' ' : '\n'); - } - } - (void) putchar('\n'); - - (void) elf_end(e); - (void) close(fd); - exit(EXIT_SUCCESS); -} - diff --git a/contrib/elftoolchain/documentation/libelf-by-example/prog5.txt b/contrib/elftoolchain/documentation/libelf-by-example/prog5.txt deleted file mode 100644 index df0fe61f..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/prog5.txt +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Create an ELF object. - * - * $Id$ - */ - -#include -#include -#include @\co{1}@ -#include -#include -#include - -uint32_t hash_words[] = { @\co{2}@ - 0x01234567, - 0x89abcdef, - 0xdeadc0de -}; - -char string_table[] = { @\co{3}@ - /* Offset 0 */ '\0', - /* Offset 1 */ '.', 'f', 'o', 'o', '\0', - /* Offset 6 */ '.', 's', 'h', 's', 't', - 'r', 't', 'a', 'b', '\0' -}; - -int -main(int argc, char **argv) -{ - int fd; - Elf *e; - Elf_Scn *scn; - Elf_Data *data; - Elf32_Ehdr *ehdr; - Elf32_Phdr *phdr; - Elf32_Shdr *shdr; - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s file-name", argv[0]); - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization " - "failed: %s", elf_errmsg(-1)); - - if ((fd = open(argv[1], O_WRONLY|O_CREAT, 0777)) < 0) @\co{4}@ - err(EXIT_FAILURE, "open \%s\" failed", argv[1]); - - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) @\co{5}@ - errx(EXIT_FAILURE, "elf_begin() failed: %s.", - elf_errmsg(-1)); - - if ((ehdr = elf32_newehdr(e)) == NULL) @\co{6}@ - errx(EXIT_FAILURE, "elf32_newehdr() failed: %s.", - elf_errmsg(-1)); - - ehdr->e_ident[EI_DATA] = ELFDATA2MSB; - ehdr->e_machine = EM_PPC; /* 32-bit PowerPC object */ - ehdr->e_type = ET_EXEC; - - if ((phdr = elf32_newphdr(e, 1)) == NULL) @\co{7}@ - errx(EXIT_FAILURE, "elf32_newphdr() failed: %s.", - elf_errmsg(-1)); - - if ((scn = elf_newscn(e)) == NULL) @\co{8}@ - errx(EXIT_FAILURE, "elf_newscn() failed: %s.", - elf_errmsg(-1)); - - if ((data = elf_newdata(scn)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s.", - elf_errmsg(-1)); - - data->d_align = 4; - data->d_off = 0LL; - data->d_buf = hash_words; - data->d_type = ELF_T_WORD; - data->d_size = sizeof(hash_words); - data->d_version = EV_CURRENT; - - if ((shdr = elf32_getshdr(scn)) == NULL) - errx(EXIT_FAILURE, "elf32_getshdr() failed: %s.", - elf_errmsg(-1)); - - shdr->sh_name = 1; - shdr->sh_type = SHT_HASH; - shdr->sh_flags = SHF_ALLOC; - shdr->sh_entsize = 0; - - if ((scn = elf_newscn(e)) == NULL) @\co{9}@ - errx(EXIT_FAILURE, "elf_newscn() failed: %s.", - elf_errmsg(-1)); - - if ((data = elf_newdata(scn)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s.", - elf_errmsg(-1)); - - data->d_align = 1; - data->d_buf = string_table; - data->d_off = 0LL; - data->d_size = sizeof(string_table); - data->d_type = ELF_T_BYTE; - data->d_version = EV_CURRENT; - - if ((shdr = elf32_getshdr(scn)) == NULL) - errx(EXIT_FAILURE, "elf32_getshdr() failed: %s.", - elf_errmsg(-1)); - - shdr->sh_name = 6; - shdr->sh_type = SHT_STRTAB; - shdr->sh_flags = SHF_STRINGS | SHF_ALLOC; - shdr->sh_entsize = 0; - - elf_setshstrndx(e, elf_ndxscn(scn)); @\co{10}@ - - if (elf_update(e, ELF_C_NULL) < 0) @\co{11}@ - errx(EXIT_FAILURE, "elf_update(NULL) failed: %s.", - elf_errmsg(-1)); - - phdr->p_type = PT_PHDR; - phdr->p_offset = ehdr->e_phoff; - phdr->p_filesz = elf32_fsize(ELF_T_PHDR, 1, EV_CURRENT); - - (void) elf_flagphdr(e, ELF_C_SET, ELF_F_DIRTY); - - if (elf_update(e, ELF_C_WRITE) < 0) @\co{12}@ - errx(EXIT_FAILURE, "elf_update() failed: %s.", - elf_errmsg(-1)); - - (void) elf_end(e); - (void) close(fd); - - exit(EXIT_SUCCESS); -} - diff --git a/contrib/elftoolchain/documentation/libelf-by-example/prog6.txt b/contrib/elftoolchain/documentation/libelf-by-example/prog6.txt deleted file mode 100644 index c29b5514..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/prog6.txt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Iterate through an ar(1) archive. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -int -main(int argc, char **argv) -{ - int fd; - Elf *ar, *e; - Elf_Cmd cmd; - Elf_Arhdr *arh; - - if (argc != 2) - errx(EXIT_FAILURE, "usage: %s file-name", argv[0]); - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization " - "failed: %s", elf_errmsg(-1)); - - if ((fd = open(argv[1], O_RDONLY, 0)) < 0) @\co{1}@ - err(EXIT_FAILURE, "open \%s\" failed", argv[1]); - - if ((ar = elf_begin(fd, ELF_C_READ, NULL)) == NULL) @\co{2}@ - errx(EXIT_FAILURE, "elf_begin() failed: %s.", - elf_errmsg(-1)); - - if (elf_kind(ar) != ELF_K_AR) - errx(EXIT_FAILURE, "%s is not an ar(1) archive.", - argv[1]); - - cmd = ELF_C_READ; - while ((e = elf_begin(fd, cmd, ar)) != NULL) { @\co{3}@ - if ((arh = elf_getarhdr(e)) == NULL) @\co{4}@ - errx(EXIT_FAILURE, "elf_getarhdr() failed: %s.", - elf_errmsg(-1)); - - (void) printf("%20s %zd\n", arh->ar_name, - arh->ar_size); - - cmd = elf_next(e); @\co{5}@ - (void) elf_end(e); @\co{6}@ - } - - (void) elf_end(ar); - (void) close(fd); - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/documentation/libelf-by-example/title-page-content.tex b/contrib/elftoolchain/documentation/libelf-by-example/title-page-content.tex deleted file mode 100644 index 0f6d9e4a..00000000 --- a/contrib/elftoolchain/documentation/libelf-by-example/title-page-content.tex +++ /dev/null @@ -1,19 +0,0 @@ -% A simple title page. -\pagestyle{empty} -\raggedleft - -\sffamily -\fontseries{b} - -\vspace*{\baselineskip} - -\fontsize{60}{64}\selectfont - -libelf \\[0.25\baselineskip] -by Example - -\vskip 0.55\textheight - -\fontsize{32}{36}\selectfont - -Joseph Koshy diff --git a/contrib/elftoolchain/elfcopy/Makefile b/contrib/elftoolchain/elfcopy/Makefile deleted file mode 100644 index a73515a5..00000000 --- a/contrib/elftoolchain/elfcopy/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -# $Id$ - -TOP= .. - -.include "${TOP}/mk/elftoolchain.components.mk" - -PROG= elfcopy - -SRCS= archive.c ascii.c binary.c main.c sections.c segments.c \ - symbols.c - -WARNS?= 5 - -DPADD= ${LIBELF} ${LIBELFTC} -LDADD= -lelf -lelftc - -.if !defined(LIBELF_AR) -LDADD+= -larchive -.endif - -.if defined(WITH_PE) && ${WITH_PE} == "yes" -SRCS+= pe.c -CFLAGS+= -DWITH_PE=1 - -DPADD+= ${LIBPE} -LDADD+= -lpe -.endif - -MAN= elfcopy.1 mcs.1 strip.1 -MLINKS= elfcopy.1 objcopy.1 - -NO_SHARED?= yes - -LINKS= ${BINDIR}/elfcopy ${BINDIR}/mcs \ - ${BINDIR}/elfcopy ${BINDIR}/objcopy \ - ${BINDIR}/elfcopy ${BINDIR}/strip - -EXTRA_TARGETS= mcs strip objcopy - -CLEANFILES+= ${EXTRA_TARGETS} - -# Create in-place symbolic links to "elfcopy" at build time. - -all: ${EXTRA_TARGETS} - -${EXTRA_TARGETS}: ${PROG} - ln -s ${PROG} ${.TARGET} - -.include "${TOP}/mk/elftoolchain.prog.mk" - -.if ${OS_HOST} == "OpenBSD" -CFLAGS+= -I/usr/local/include -LDFLAGS+= -L/usr/local/lib -.elif ${OS_HOST} == "DragonFly" -LDADD+= -lbz2 -.endif diff --git a/contrib/elftoolchain/elfcopy/archive.c b/contrib/elftoolchain/elfcopy/archive.c deleted file mode 100644 index f2b19804..00000000 --- a/contrib/elftoolchain/elfcopy/archive.c +++ /dev/null @@ -1,526 +0,0 @@ -/*- - * Copyright (c) 2007-2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -#ifndef LIBELF_AR -#include -#include -#endif /* ! LIBELF_AR */ - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -#define _ARMAG_LEN 8 /* length of ar magic string */ -#define _ARHDR_LEN 60 /* length of ar header */ -#define _INIT_AS_CAP 128 /* initial archive string table size */ -#define _INIT_SYMOFF_CAP (256*(sizeof(uint32_t))) /* initial so table size */ -#define _INIT_SYMNAME_CAP 1024 /* initial sn table size */ -#define _MAXNAMELEN_SVR4 15 /* max member name length in svr4 variant */ - -#ifndef LIBELF_AR -static void ac_read_objs(struct elfcopy *ecp, int ifd); -static void ac_write_cleanup(struct elfcopy *ecp); -static void ac_write_data(struct archive *a, const void *buf, size_t s); -static void ac_write_objs(struct elfcopy *ecp, int ofd); -#endif /* ! LIBELF_AR */ -static void add_to_ar_str_table(struct elfcopy *elfcopy, const char *name); -static void add_to_ar_sym_table(struct elfcopy *ecp, const char *name); -static void extract_arsym(struct elfcopy *ecp); -static void process_ar_obj(struct elfcopy *ecp, struct ar_obj *obj); -static void sync_ar(struct elfcopy *ecp); - - -static void -process_ar_obj(struct elfcopy *ecp, struct ar_obj *obj) -{ - struct stat sb; - char *tempfile; - int fd; - - /* Output to a temporary file. */ - create_tempfile(&tempfile, &fd); - if ((ecp->eout = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - elf_flagelf(ecp->eout, ELF_C_SET, ELF_F_LAYOUT); - create_elf(ecp); - elf_end(ecp->ein); - elf_end(ecp->eout); - free(obj->buf); - obj->buf = NULL; - - /* Extract archive symbols. */ - if (lseek(fd, 0, SEEK_SET) < 0) - err(EXIT_FAILURE, "lseek failed for '%s'", tempfile); - if ((ecp->eout = elf_begin(fd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - extract_arsym(ecp); - elf_end(ecp->eout); - - if (fstat(fd, &sb) == -1) - err(EXIT_FAILURE, "fstat %s failed", tempfile); - if (lseek(fd, 0, SEEK_SET) < 0) - err(EXIT_FAILURE, "lseek %s failed", tempfile); - obj->size = sb.st_size; - if ((obj->maddr = malloc(obj->size)) == NULL) - err(EXIT_FAILURE, "memory allocation failed for '%s'", - tempfile); - if ((size_t) read(fd, obj->maddr, obj->size) != obj->size) - err(EXIT_FAILURE, "read failed for '%s'", tempfile); - if (unlink(tempfile)) - err(EXIT_FAILURE, "unlink %s failed", tempfile); - free(tempfile); - close(fd); - if (strlen(obj->name) > _MAXNAMELEN_SVR4) - add_to_ar_str_table(ecp, obj->name); - ecp->rela_off += _ARHDR_LEN + obj->size + obj->size % 2; - STAILQ_INSERT_TAIL(&ecp->v_arobj, obj, objs); -} - -/* - * Append to the archive string table buffer. - */ -static void -add_to_ar_str_table(struct elfcopy *ecp, const char *name) -{ - - if (ecp->as == NULL) { - ecp->as_cap = _INIT_AS_CAP; - ecp->as_sz = 0; - if ((ecp->as = malloc(ecp->as_cap)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - } - - /* - * The space required for holding one member name in as table includes: - * strlen(name) + (1 for '/') + (1 for '\n') + (possibly 1 for padding). - */ - while (ecp->as_sz + strlen(name) + 3 > ecp->as_cap) { - ecp->as_cap *= 2; - ecp->as = realloc(ecp->as, ecp->as_cap); - if (ecp->as == NULL) - err(EXIT_FAILURE, "realloc failed"); - } - strncpy(&ecp->as[ecp->as_sz], name, strlen(name)); - ecp->as_sz += strlen(name); - ecp->as[ecp->as_sz++] = '/'; - ecp->as[ecp->as_sz++] = '\n'; -} - -/* - * Append to the archive symbol table buffer. - */ -static void -add_to_ar_sym_table(struct elfcopy *ecp, const char *name) -{ - - if (ecp->s_so == NULL) { - if ((ecp->s_so = malloc(_INIT_SYMOFF_CAP)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - ecp->s_so_cap = _INIT_SYMOFF_CAP; - ecp->s_cnt = 0; - } - - if (ecp->s_sn == NULL) { - if ((ecp->s_sn = malloc(_INIT_SYMNAME_CAP)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - ecp->s_sn_cap = _INIT_SYMNAME_CAP; - ecp->s_sn_sz = 0; - } - - if (ecp->s_cnt * sizeof(uint32_t) >= ecp->s_so_cap) { - ecp->s_so_cap *= 2; - ecp->s_so = realloc(ecp->s_so, ecp->s_so_cap); - if (ecp->s_so == NULL) - err(EXIT_FAILURE, "realloc failed"); - } - ecp->s_so[ecp->s_cnt] = ecp->rela_off; - ecp->s_cnt++; - - /* - * The space required for holding one symbol name in sn table includes: - * strlen(name) + (1 for '\n') + (possibly 1 for padding). - */ - while (ecp->s_sn_sz + strlen(name) + 2 > ecp->s_sn_cap) { - ecp->s_sn_cap *= 2; - ecp->s_sn = realloc(ecp->s_sn, ecp->s_sn_cap); - if (ecp->s_sn == NULL) - err(EXIT_FAILURE, "realloc failed"); - } - memcpy(&ecp->s_sn[ecp->s_sn_sz], name, strlen(name)); - ecp->s_sn_sz += strlen(name); - ecp->s_sn[ecp->s_sn_sz++] = '\0'; -} - -static void -sync_ar(struct elfcopy *ecp) -{ - size_t s_sz; /* size of archive symbol table. */ - size_t pm_sz; /* size of pseudo members */ - int i; - - /* - * Pad the symbol name string table. It is treated specially because - * symbol name table should be padded by a '\0', not the common '\n' - * for other members. The size of sn table includes the pad bit. - */ - if (ecp->s_cnt != 0 && ecp->s_sn_sz % 2 != 0) - ecp->s_sn[ecp->s_sn_sz++] = '\0'; - - /* - * Archive string table is padded by a "\n" as the normal members. - * The difference is that the size of archive string table counts - * in the pad bit, while normal members' size fileds do not. - */ - if (ecp->as != NULL && ecp->as_sz % 2 != 0) - ecp->as[ecp->as_sz++] = '\n'; - - /* - * If there is a symbol table, calculate the size of pseudo members, - * convert previously stored relative offsets to absolute ones, and - * then make them Big Endian. - * - * absolute_offset = htobe32(relative_offset + size_of_pseudo_members) - */ - - if (ecp->s_cnt != 0) { - s_sz = (ecp->s_cnt + 1) * sizeof(uint32_t) + ecp->s_sn_sz; - pm_sz = _ARMAG_LEN + (_ARHDR_LEN + s_sz); - if (ecp->as != NULL) - pm_sz += _ARHDR_LEN + ecp->as_sz; - for (i = 0; (size_t)i < ecp->s_cnt; i++) - *(ecp->s_so + i) = htobe32(*(ecp->s_so + i) + - pm_sz); - } -} - -/* - * Extract global symbols from archive members. - */ -static void -extract_arsym(struct elfcopy *ecp) -{ - Elf_Scn *scn; - GElf_Shdr shdr; - GElf_Sym sym; - Elf_Data *data; - char *name; - size_t n, shstrndx; - int elferr, tabndx, len, i; - - if (elf_kind(ecp->eout) != ELF_K_ELF) { - warnx("internal: cannot extract symbols from non-elf object"); - return; - } - if (elf_getshstrndx(ecp->eout, &shstrndx) == 0) { - warnx("elf_getshstrndx failed: %s", elf_errmsg(-1)); - return; - } - - tabndx = -1; - scn = NULL; - while ((scn = elf_nextscn(ecp->eout, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) != &shdr) { - warnx("elf_getshdr failed: %s", elf_errmsg(-1)); - continue; - } - if ((name = elf_strptr(ecp->eout, shstrndx, shdr.sh_name)) == - NULL) { - warnx("elf_strptr failed: %s", elf_errmsg(-1)); - continue; - } - if (strcmp(name, ".strtab") == 0) { - tabndx = elf_ndxscn(scn); - break; - } - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); - - /* Ignore members without symbol table. */ - if (tabndx == -1) - return; - - scn = NULL; - while ((scn = elf_nextscn(ecp->eout, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) != &shdr) { - warnx("elf_getshdr failed: %s", elf_errmsg(-1)); - continue; - } - if (shdr.sh_type != SHT_SYMTAB) - continue; - - data = NULL; - n = 0; - while (n < shdr.sh_size && - (data = elf_getdata(scn, data)) != NULL) { - len = data->d_size / shdr.sh_entsize; - for (i = 0; i < len; i++) { - if (gelf_getsym(data, i, &sym) != &sym) { - warnx("gelf_getsym failed: %s", - elf_errmsg(-1)); - continue; - } - - /* keep only global or weak symbols */ - if (GELF_ST_BIND(sym.st_info) != STB_GLOBAL && - GELF_ST_BIND(sym.st_info) != STB_WEAK) - continue; - - /* keep only defined symbols */ - if (sym.st_shndx == SHN_UNDEF) - continue; - - if ((name = elf_strptr(ecp->eout, tabndx, - sym.st_name)) == NULL) { - warnx("elf_strptr failed: %s", - elf_errmsg(-1)); - continue; - } - - add_to_ar_sym_table(ecp, name); - } - } - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); -} - -#ifndef LIBELF_AR - -/* - * Convenient wrapper for general libarchive error handling. - */ -#define AC(CALL) do { \ - if ((CALL)) \ - errx(EXIT_FAILURE, "%s", archive_error_string(a)); \ -} while (0) - -/* Earlier versions of libarchive had some functions that returned 'void'. */ -#if ARCHIVE_VERSION_NUMBER >= 2000000 -#define ACV(CALL) AC(CALL) -#else -#define ACV(CALL) do { \ - (CALL); \ - } while (0) -#endif - -int -ac_detect_ar(int ifd) -{ - struct archive *a; - struct archive_entry *entry; - int r; - - r = -1; - if ((a = archive_read_new()) == NULL) - return (0); - archive_read_support_format_ar(a); - if (archive_read_open_fd(a, ifd, 10240) == ARCHIVE_OK) - r = archive_read_next_header(a, &entry); - archive_read_close(a); - archive_read_free(a); - - return (r == ARCHIVE_OK); -} - -void -ac_create_ar(struct elfcopy *ecp, int ifd, int ofd) -{ - - ac_read_objs(ecp, ifd); - sync_ar(ecp); - ac_write_objs(ecp, ofd); - ac_write_cleanup(ecp); -} - -static void -ac_read_objs(struct elfcopy *ecp, int ifd) -{ - struct archive *a; - struct archive_entry *entry; - struct ar_obj *obj; - const char *name; - char *buff; - size_t size; - int r; - - ecp->rela_off = 0; - if (lseek(ifd, 0, SEEK_SET) == -1) - err(EXIT_FAILURE, "lseek failed"); - if ((a = archive_read_new()) == NULL) - errx(EXIT_FAILURE, "archive_read_new failed"); - archive_read_support_format_ar(a); - AC(archive_read_open_fd(a, ifd, 10240)); - for(;;) { - r = archive_read_next_header(a, &entry); - if (r == ARCHIVE_FATAL) - errx(EXIT_FAILURE, "%s", archive_error_string(a)); - if (r == ARCHIVE_EOF) - break; - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY) - warnx("%s", archive_error_string(a)); - if (r == ARCHIVE_RETRY) - continue; - - name = archive_entry_pathname(entry); - - /* skip pseudo members. */ - if (strcmp(name, "/") == 0 || strcmp(name, "//") == 0) - continue; - - size = archive_entry_size(entry); - - if (size > 0) { - if ((buff = malloc(size)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if (archive_read_data(a, buff, size) != (ssize_t)size) { - warnx("%s", archive_error_string(a)); - free(buff); - continue; - } - if ((obj = malloc(sizeof(*obj))) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if ((obj->name = strdup(name)) == NULL) - err(EXIT_FAILURE, "strdup failed"); - obj->buf = buff; - obj->uid = archive_entry_uid(entry); - obj->gid = archive_entry_gid(entry); - obj->md = archive_entry_mode(entry); - obj->mtime = archive_entry_mtime(entry); - if ((ecp->ein = elf_memory(buff, size)) == NULL) - errx(EXIT_FAILURE, "elf_memory() failed: %s", - elf_errmsg(-1)); - if (elf_kind(ecp->ein) != ELF_K_ELF) - errx(EXIT_FAILURE, - "file format not recognized"); - process_ar_obj(ecp, obj); - } - } - AC(archive_read_close(a)); - ACV(archive_read_free(a)); -} - -static void -ac_write_objs(struct elfcopy *ecp, int ofd) -{ - struct archive *a; - struct archive_entry *entry; - struct ar_obj *obj; - time_t timestamp; - int nr; - - if ((a = archive_write_new()) == NULL) - errx(EXIT_FAILURE, "archive_write_new failed"); - archive_write_set_format_ar_svr4(a); - AC(archive_write_open_fd(a, ofd)); - - /* Write the archive symbol table, even if it's empty. */ - entry = archive_entry_new(); - archive_entry_copy_pathname(entry, "/"); - if (elftc_timestamp(×tamp) != 0) - err(EXIT_FAILURE, "elftc_timestamp"); - archive_entry_set_mtime(entry, timestamp, 0); - archive_entry_set_size(entry, (ecp->s_cnt + 1) * sizeof(uint32_t) + - ecp->s_sn_sz); - AC(archive_write_header(a, entry)); - nr = htobe32(ecp->s_cnt); - ac_write_data(a, &nr, sizeof(uint32_t)); - ac_write_data(a, ecp->s_so, sizeof(uint32_t) * ecp->s_cnt); - ac_write_data(a, ecp->s_sn, ecp->s_sn_sz); - archive_entry_free(entry); - - /* Write the archive string table, if exist. */ - if (ecp->as != NULL) { - entry = archive_entry_new(); - archive_entry_copy_pathname(entry, "//"); - archive_entry_set_size(entry, ecp->as_sz); - AC(archive_write_header(a, entry)); - ac_write_data(a, ecp->as, ecp->as_sz); - archive_entry_free(entry); - } - - /* Write normal members. */ - STAILQ_FOREACH(obj, &ecp->v_arobj, objs) { - entry = archive_entry_new(); - archive_entry_copy_pathname(entry, obj->name); - archive_entry_set_uid(entry, obj->uid); - archive_entry_set_gid(entry, obj->gid); - archive_entry_set_mode(entry, obj->md); - archive_entry_set_size(entry, obj->size); - archive_entry_set_mtime(entry, obj->mtime, 0); - archive_entry_set_filetype(entry, AE_IFREG); - AC(archive_write_header(a, entry)); - ac_write_data(a, obj->maddr, obj->size); - archive_entry_free(entry); - } - - AC(archive_write_close(a)); - ACV(archive_write_free(a)); -} - -static void -ac_write_cleanup(struct elfcopy *ecp) -{ - struct ar_obj *obj, *obj_temp; - - STAILQ_FOREACH_SAFE(obj, &ecp->v_arobj, objs, obj_temp) { - STAILQ_REMOVE(&ecp->v_arobj, obj, ar_obj, objs); - if (obj->maddr != NULL) - free(obj->maddr); - free(obj->name); - free(obj); - } - - free(ecp->as); - free(ecp->s_so); - free(ecp->s_sn); - ecp->as = NULL; - ecp->s_so = NULL; - ecp->s_sn = NULL; -} - -/* - * Wrapper for archive_write_data(). - */ -static void -ac_write_data(struct archive *a, const void *buf, size_t s) -{ - if (archive_write_data(a, buf, s) != (ssize_t)s) - errx(EXIT_FAILURE, "%s", archive_error_string(a)); -} - -#endif /* ! LIBELF_AR */ diff --git a/contrib/elftoolchain/elfcopy/ascii.c b/contrib/elftoolchain/elfcopy/ascii.c deleted file mode 100644 index 440103ff..00000000 --- a/contrib/elftoolchain/elfcopy/ascii.c +++ /dev/null @@ -1,1073 +0,0 @@ -/*- - * Copyright (c) 2010,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -static void append_data(struct section *s, const void *buf, size_t sz); -static char hex_digit(uint8_t n); -static int hex_value(int x); -static void finalize_data_section(struct section *s); -static int ishexdigit(int x); -static int ihex_read(const char *line, char *type, uint64_t *addr, - uint64_t *num, uint8_t *data, size_t *sz); -static void ihex_write(int ofd, int type, uint64_t addr, uint64_t num, - const void *buf, size_t sz); -static void ihex_write_00(int ofd, uint64_t addr, const void *buf, size_t sz); -static void ihex_write_01(int ofd); -static void ihex_write_04(int ofd, uint16_t addr); -static void ihex_write_05(int ofd, uint64_t e_entry); -static struct section *new_data_section(struct elfcopy *ecp, int sec_index, - uint64_t off, uint64_t addr); -static int read_num(const char *line, int *len, uint64_t *num, size_t sz, - int *checksum); -static int srec_read(const char *line, char *type, uint64_t *addr, - uint8_t *data, size_t *sz); -static void srec_write(int ofd, char type, uint64_t addr, const void *buf, - size_t sz); -static void srec_write_symtab(int ofd, const char *ofn, Elf *e, Elf_Scn *scn, - GElf_Shdr *sh); -static void srec_write_S0(int ofd, const char *ofn); -static void srec_write_Sd(int ofd, char dr, uint64_t addr, const void *buf, - size_t sz, size_t rlen); -static void srec_write_Se(int ofd, uint64_t e_entry, int forceS3); -static void write_num(char *line, int *len, uint64_t num, size_t sz, - int *checksum); - -#define _LINE_BUFSZ 1024 -#define _DATA_BUFSZ 256 - -/* - * Convert ELF object to S-Record. - */ -void -create_srec(struct elfcopy *ecp, int ifd, int ofd, const char *ofn) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - GElf_Ehdr eh; - GElf_Shdr sh; - uint64_t max_addr; - size_t rlen; - int elferr, addr_sz; - char dr; - - if ((e = elf_begin(ifd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - - /* Output a symbol table for `symbolsrec' target. */ - if (!strncmp(ecp->otgt, "symbolsrec", strlen("symbolsrec"))) { - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", - elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if (sh.sh_type != SHT_SYMTAB) - continue; - srec_write_symtab(ofd, ofn, e, scn, &sh); - break; - } - } - - if (ecp->flags & SREC_FORCE_S3) - dr = '3'; - else { - /* - * Find maximum address size in the first iteration. - */ - max_addr = 0; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", - elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((sh.sh_flags & SHF_ALLOC) == 0 || - sh.sh_type == SHT_NOBITS || - sh.sh_size == 0) - continue; - if ((uint64_t) sh.sh_addr > max_addr) - max_addr = sh.sh_addr; - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); - - if (max_addr <= 0xFFFF) - dr = '1'; - else if (max_addr <= 0xFFFFFF) - dr = '2'; - else - dr = '3'; - } - - if (ecp->flags & SREC_FORCE_LEN) { - addr_sz = dr - '0' + 1; - if (ecp->srec_len < 1) - rlen = 1; - else if (ecp->srec_len + addr_sz + 1 > 255) - rlen = 255 - (addr_sz + 1); - else - rlen = ecp->srec_len; - } else - rlen = 16; - - /* Generate S0 record which contains the output filename. */ - srec_write_S0(ofd, ofn); - - /* Generate S{1,2,3} data records for section data. */ - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((sh.sh_flags & SHF_ALLOC) == 0 || - sh.sh_type == SHT_NOBITS || - sh.sh_size == 0) - continue; - if (sh.sh_addr > 0xFFFFFFFF) { - warnx("address space too big for S-Record file"); - continue; - } - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - continue; - } - if (d->d_buf == NULL || d->d_size == 0) - continue; - srec_write_Sd(ofd, dr, sh.sh_addr, d->d_buf, d->d_size, rlen); - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); - - /* Generate S{7,8,9} end of block record. */ - if (gelf_getehdr(e, &eh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - srec_write_Se(ofd, eh.e_entry, ecp->flags & SREC_FORCE_S3); -} - -void -create_elf_from_srec(struct elfcopy *ecp, int ifd) -{ - char line[_LINE_BUFSZ], name[_LINE_BUFSZ]; - uint8_t data[_DATA_BUFSZ]; - GElf_Ehdr oeh; - struct section *s, *shtab; - FILE *ifp; - uint64_t addr, entry, off, sec_addr; - uintmax_t st_value; - size_t sz; - int _ifd, first, sec_index, in_symtab, symtab_created; - char *rlt; - char type; - - if ((_ifd = dup(ifd)) < 0) - err(EXIT_FAILURE, "dup failed"); - if ((ifp = fdopen(_ifd, "r")) == NULL) - err(EXIT_FAILURE, "fdopen failed"); - - /* Create EHDR for output .o file. */ - if (gelf_newehdr(ecp->eout, ecp->oec) == NULL) - errx(EXIT_FAILURE, "gelf_newehdr failed: %s", - elf_errmsg(-1)); - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* Initialise e_ident fields. */ - oeh.e_ident[EI_CLASS] = ecp->oec; - oeh.e_ident[EI_DATA] = ecp->oed; - /* - * TODO: Set OSABI according to the OS platform where elfcopy(1) - * was build. (probably) - */ - oeh.e_ident[EI_OSABI] = ELFOSABI_NONE; - oeh.e_machine = ecp->oem; - oeh.e_type = ET_REL; - oeh.e_entry = 0; - - ecp->flags |= RELOCATABLE; - - /* Create .shstrtab section */ - init_shstrtab(ecp); - ecp->shstrtab->off = 0; - - /* Data sections are inserted after EHDR. */ - off = gelf_fsize(ecp->eout, ELF_T_EHDR, 1, EV_CURRENT); - if (off == 0) - errx(EXIT_FAILURE, "gelf_fsize() failed: %s", elf_errmsg(-1)); - - /* Create data sections. */ - s = NULL; - first = 1; - sec_index = 1; - sec_addr = entry = 0; - while (fgets(line, _LINE_BUFSZ, ifp) != NULL) { - sz = 0; - if (line[0] == '\r' || line[0] == '\n') - continue; - if (line[0] == '$' && line[1] == '$') { - ecp->flags |= SYMTAB_EXIST; - while ((rlt = fgets(line, _LINE_BUFSZ, ifp)) != NULL) { - if (line[0] == '$' && line[1] == '$') - break; - } - if (rlt == NULL) - break; - continue; - } - if (line[0] != 'S' || line[1] < '0' || line[1] > '9') { - warnx("Invalid srec record"); - continue; - } - if (srec_read(line, &type, &addr, data, &sz) < 0) { - warnx("Invalid srec record or mismatched checksum"); - continue; - } - switch (type) { - case '1': - case '2': - case '3': - if (sz == 0) - break; - if (first || sec_addr != addr) { - if (s != NULL) - finalize_data_section(s); - s = new_data_section(ecp, sec_index, off, - addr); - if (s == NULL) { - warnx("new_data_section failed"); - break; - } - sec_index++; - sec_addr = addr; - first = 0; - } - append_data(s, data, sz); - off += sz; - sec_addr += sz; - break; - case '7': - case '8': - case '9': - entry = addr; - break; - default: - break; - } - } - if (s != NULL) - finalize_data_section(s); - if (ferror(ifp)) - warn("fgets failed"); - - /* Insert .shstrtab after data sections. */ - if ((ecp->shstrtab->os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn failed: %s", - elf_errmsg(-1)); - insert_to_sec_list(ecp, ecp->shstrtab, 1); - - /* Insert section header table here. */ - shtab = insert_shtab(ecp, 1); - - /* - * Rescan and create symbol table if we found '$$' section in - * the first scan. - */ - symtab_created = 0; - in_symtab = 0; - if (ecp->flags & SYMTAB_EXIST) { - if (fseek(ifp, 0, SEEK_SET) < 0) { - warn("fseek failed"); - ecp->flags &= ~SYMTAB_EXIST; - goto done; - } - while (fgets(line, _LINE_BUFSZ, ifp) != NULL) { - if (in_symtab) { - if (line[0] == '$' && line[1] == '$') { - in_symtab = 0; - continue; - } - if (sscanf(line, "%s $%jx", name, - &st_value) != 2) { - warnx("Invalid symbolsrec record"); - continue; - } - if (!symtab_created) { - create_external_symtab(ecp); - symtab_created = 1; - } - add_to_symtab(ecp, name, st_value, 0, SHN_ABS, - ELF32_ST_INFO(STB_GLOBAL, STT_NOTYPE), 0, 1); - } - if (line[0] == '$' && line[1] == '$') { - in_symtab = 1; - continue; - } - } - } - if (ferror(ifp)) - warn("fgets failed"); - if (symtab_created) { - finalize_external_symtab(ecp); - create_symtab_data(ecp); - /* Count in .symtab and .strtab section headers. */ - shtab->sz += gelf_fsize(ecp->eout, ELF_T_SHDR, 2, EV_CURRENT); - } else - ecp->flags &= ~SYMTAB_EXIST; - -done: - fclose(ifp); - - /* Set entry point. */ - oeh.e_entry = entry; - - /* - * Write the underlying ehdr. Note that it should be called - * before elf_setshstrndx() since it will overwrite e->e_shstrndx. - */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* Update sh_name pointer for each section header entry. */ - update_shdr(ecp, 0); - - /* Renew oeh to get the updated e_shstrndx. */ - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* Resync section offsets. */ - resync_sections(ecp); - - /* Store SHDR offset in EHDR. */ - oeh.e_shoff = shtab->off; - - /* Update ehdr since we modified e_shoff. */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* Write out the output elf object. */ - if (elf_update(ecp->eout, ELF_C_WRITE) < 0) - errx(EXIT_FAILURE, "elf_update() failed: %s", - elf_errmsg(-1)); - - /* Release allocated resource. */ - free_elf(ecp); -} - -void -create_ihex(int ifd, int ofd) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - GElf_Ehdr eh; - GElf_Shdr sh; - int elferr; - uint16_t addr_hi, old_addr_hi; - - if ((e = elf_begin(ifd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - - old_addr_hi = 0; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((sh.sh_flags & SHF_ALLOC) == 0 || - sh.sh_type == SHT_NOBITS || - sh.sh_size == 0) - continue; - if (sh.sh_addr > 0xFFFFFFFF) { - warnx("address space too big for Intel Hex file"); - continue; - } - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - continue; - } - if (d->d_buf == NULL || d->d_size == 0) - continue; - addr_hi = (sh.sh_addr >> 16) & 0xFFFF; - if (addr_hi > 0 && addr_hi != old_addr_hi) { - /* Write 04 record if addr_hi is new. */ - old_addr_hi = addr_hi; - ihex_write_04(ofd, addr_hi); - } - ihex_write_00(ofd, sh.sh_addr, d->d_buf, d->d_size); - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); - - if (gelf_getehdr(e, &eh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - ihex_write_05(ofd, eh.e_entry); - ihex_write_01(ofd); -} - -void -create_elf_from_ihex(struct elfcopy *ecp, int ifd) -{ - char line[_LINE_BUFSZ]; - uint8_t data[_DATA_BUFSZ]; - GElf_Ehdr oeh; - struct section *s, *shtab; - FILE *ifp; - uint64_t addr, addr_base, entry, num, off, rec_addr, sec_addr; - size_t sz; - int _ifd, first, sec_index; - char type; - - if ((_ifd = dup(ifd)) < 0) - err(EXIT_FAILURE, "dup failed"); - if ((ifp = fdopen(_ifd, "r")) == NULL) - err(EXIT_FAILURE, "fdopen failed"); - - /* Create EHDR for output .o file. */ - if (gelf_newehdr(ecp->eout, ecp->oec) == NULL) - errx(EXIT_FAILURE, "gelf_newehdr failed: %s", - elf_errmsg(-1)); - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* Initialise e_ident fields. */ - oeh.e_ident[EI_CLASS] = ecp->oec; - oeh.e_ident[EI_DATA] = ecp->oed; - /* - * TODO: Set OSABI according to the OS platform where elfcopy(1) - * was build. (probably) - */ - oeh.e_ident[EI_OSABI] = ELFOSABI_NONE; - oeh.e_machine = ecp->oem; - oeh.e_type = ET_REL; - oeh.e_entry = 0; - - ecp->flags |= RELOCATABLE; - - /* Create .shstrtab section */ - init_shstrtab(ecp); - ecp->shstrtab->off = 0; - - /* Data sections are inserted after EHDR. */ - off = gelf_fsize(ecp->eout, ELF_T_EHDR, 1, EV_CURRENT); - if (off == 0) - errx(EXIT_FAILURE, "gelf_fsize() failed: %s", elf_errmsg(-1)); - - /* Create data sections. */ - s = NULL; - first = 1; - sec_index = 1; - addr_base = rec_addr = sec_addr = entry = 0; - while (fgets(line, _LINE_BUFSZ, ifp) != NULL) { - if (line[0] == '\r' || line[0] == '\n') - continue; - if (line[0] != ':') { - warnx("Invalid ihex record"); - continue; - } - if (ihex_read(line, &type, &addr, &num, data, &sz) < 0) { - warnx("Invalid ihex record or mismatched checksum"); - continue; - } - switch (type) { - case '0': - /* Data record. */ - if (sz == 0) - break; - rec_addr = addr_base + addr; - if (first || sec_addr != rec_addr) { - if (s != NULL) - finalize_data_section(s); - s = new_data_section(ecp, sec_index, off, - rec_addr); - if (s == NULL) { - warnx("new_data_section failed"); - break; - } - sec_index++; - sec_addr = rec_addr; - first = 0; - } - append_data(s, data, sz); - off += sz; - sec_addr += sz; - break; - case '1': - /* End of file record. */ - goto done; - case '2': - /* Extended segment address record. */ - addr_base = addr << 4; - break; - case '3': - /* Start segment address record (CS:IP). Ignored. */ - break; - case '4': - /* Extended linear address record. */ - addr_base = num << 16; - break; - case '5': - /* Start linear address record. */ - entry = num; - break; - default: - break; - } - } -done: - if (s != NULL) - finalize_data_section(s); - if (ferror(ifp)) - warn("fgets failed"); - fclose(ifp); - - /* Insert .shstrtab after data sections. */ - if ((ecp->shstrtab->os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn failed: %s", - elf_errmsg(-1)); - insert_to_sec_list(ecp, ecp->shstrtab, 1); - - /* Insert section header table here. */ - shtab = insert_shtab(ecp, 1); - - /* Set entry point. */ - oeh.e_entry = entry; - - /* - * Write the underlying ehdr. Note that it should be called - * before elf_setshstrndx() since it will overwrite e->e_shstrndx. - */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* Update sh_name pointer for each section header entry. */ - update_shdr(ecp, 0); - - /* Renew oeh to get the updated e_shstrndx. */ - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* Resync section offsets. */ - resync_sections(ecp); - - /* Store SHDR offset in EHDR. */ - oeh.e_shoff = shtab->off; - - /* Update ehdr since we modified e_shoff. */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* Write out the output elf object. */ - if (elf_update(ecp->eout, ELF_C_WRITE) < 0) - errx(EXIT_FAILURE, "elf_update() failed: %s", - elf_errmsg(-1)); - - /* Release allocated resource. */ - free_elf(ecp); -} - -#define _SEC_NAMESZ 64 -#define _SEC_INIT_CAP 1024 - -static struct section * -new_data_section(struct elfcopy *ecp, int sec_index, uint64_t off, - uint64_t addr) -{ - char *name; - - if ((name = malloc(_SEC_NAMESZ)) == NULL) - errx(EXIT_FAILURE, "malloc failed"); - snprintf(name, _SEC_NAMESZ, ".sec%d", sec_index); - - return (create_external_section(ecp, name, name, NULL, 0, off, - SHT_PROGBITS, ELF_T_BYTE, SHF_ALLOC | SHF_WRITE, 1, addr, 0)); -} - -static void -finalize_data_section(struct section *s) -{ - Elf_Data *od; - - if ((od = elf_newdata(s->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s", - elf_errmsg(-1)); - od->d_align = s->align; - od->d_off = 0; - od->d_buf = s->buf; - od->d_size = s->sz; - od->d_version = EV_CURRENT; -} - -static void -append_data(struct section *s, const void *buf, size_t sz) -{ - uint8_t *p; - - if (s->buf == NULL) { - s->sz = 0; - s->cap = _SEC_INIT_CAP; - if ((s->buf = malloc(s->cap)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - } - - while (sz + s->sz > s->cap) { - s->cap *= 2; - if ((s->buf = realloc(s->buf, s->cap)) == NULL) - err(EXIT_FAILURE, "realloc failed"); - } - - p = s->buf; - memcpy(&p[s->sz], buf, sz); - s->sz += sz; -} - -static int -srec_read(const char *line, char *type, uint64_t *addr, uint8_t *data, - size_t *sz) -{ - uint64_t count, _checksum, num; - size_t addr_sz; - int checksum, i, len; - - checksum = 0; - len = 2; - if (read_num(line, &len, &count, 1, &checksum) < 0) - return (-1); - *type = line[1]; - switch (*type) { - case '0': - case '1': - case '5': - case '9': - addr_sz = 2; - break; - case '2': - case '8': - addr_sz = 3; - break; - case '3': - case '7': - addr_sz = 4; - break; - default: - return (-1); - } - - if (read_num(line, &len, addr, addr_sz, &checksum) < 0) - return (-1); - - count -= addr_sz + 1; - if (*type >= '0' && *type <= '3') { - for (i = 0; (uint64_t) i < count; i++) { - if (read_num(line, &len, &num, 1, &checksum) < 0) - return -1; - data[i] = (uint8_t) num; - } - *sz = count; - } else - *sz = 0; - - if (read_num(line, &len, &_checksum, 1, NULL) < 0) - return (-1); - - if ((int) _checksum != (~checksum & 0xFF)) - return (-1); - - return (0); -} - -static void -srec_write_symtab(int ofd, const char *ofn, Elf *e, Elf_Scn *scn, GElf_Shdr *sh) -{ - char line[_LINE_BUFSZ]; - GElf_Sym sym; - Elf_Data *d; - const char *name; - size_t sc; - int elferr, i; - -#define _WRITE_LINE do { \ - if (write(ofd, line, strlen(line)) != (ssize_t) strlen(line)) \ - errx(EXIT_FAILURE, "write failed"); \ - } while (0) - - - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(-1)); - return; - } - if (d->d_buf == NULL || d->d_size == 0) - return; - - snprintf(line, sizeof(line), "$$ %s\r\n", ofn); - _WRITE_LINE; - sc = d->d_size / sh->sh_entsize; - for (i = 1; (size_t) i < sc; i++) { - if (gelf_getsym(d, i, &sym) != &sym) { - warnx("gelf_getsym failed: %s", elf_errmsg(-1)); - continue; - } - if (GELF_ST_TYPE(sym.st_info) == STT_SECTION || - GELF_ST_TYPE(sym.st_info) == STT_FILE) - continue; - if ((name = elf_strptr(e, sh->sh_link, sym.st_name)) == NULL) { - warnx("elf_strptr failed: %s", elf_errmsg(-1)); - continue; - } - snprintf(line, sizeof(line), " %s $%jx\r\n", name, - (uintmax_t) sym.st_value); - _WRITE_LINE; - } - snprintf(line, sizeof(line), "$$ \r\n"); - _WRITE_LINE; - -#undef _WRITE_LINE -} - -static void -srec_write_S0(int ofd, const char *ofn) -{ - - srec_write(ofd, '0', 0, ofn, strlen(ofn)); -} - -static void -srec_write_Sd(int ofd, char dr, uint64_t addr, const void *buf, size_t sz, - size_t rlen) -{ - const uint8_t *p, *pe; - - p = buf; - pe = p + sz; - while (pe - p >= (int) rlen) { - srec_write(ofd, dr, addr, p, rlen); - addr += rlen; - p += rlen; - } - if (pe - p > 0) - srec_write(ofd, dr, addr, p, pe - p); -} - -static void -srec_write_Se(int ofd, uint64_t e_entry, int forceS3) -{ - char er; - - if (e_entry > 0xFFFFFFFF) { - warnx("address space too big for S-Record file"); - return; - } - - if (forceS3) - er = '7'; - else { - if (e_entry <= 0xFFFF) - er = '9'; - else if (e_entry <= 0xFFFFFF) - er = '8'; - else - er = '7'; - } - - srec_write(ofd, er, e_entry, NULL, 0); -} - -static void -srec_write(int ofd, char type, uint64_t addr, const void *buf, size_t sz) -{ - char line[_LINE_BUFSZ]; - const uint8_t *p, *pe; - int len, addr_sz, checksum; - - if (type == '0' || type == '1' || type == '5' || type == '9') - addr_sz = 2; - else if (type == '2' || type == '8') - addr_sz = 3; - else - addr_sz = 4; - - checksum = 0; - line[0] = 'S'; - line[1] = type; - len = 2; - write_num(line, &len, addr_sz + sz + 1, 1, &checksum); - write_num(line, &len, addr, addr_sz, &checksum); - for (p = buf, pe = p + sz; p < pe; p++) - write_num(line, &len, *p, 1, &checksum); - write_num(line, &len, ~checksum & 0xFF, 1, NULL); - line[len++] = '\r'; - line[len++] = '\n'; - if (write(ofd, line, len) != (ssize_t) len) - err(EXIT_FAILURE, "write failed"); -} - -static void -ihex_write_00(int ofd, uint64_t addr, const void *buf, size_t sz) -{ - uint16_t addr_hi, old_addr_hi; - const uint8_t *p, *pe; - - old_addr_hi = (addr >> 16) & 0xFFFF; - p = buf; - pe = p + sz; - while (pe - p >= 16) { - ihex_write(ofd, 0, addr, 0, p, 16); - addr += 16; - p += 16; - addr_hi = (addr >> 16) & 0xFFFF; - if (addr_hi != old_addr_hi) { - old_addr_hi = addr_hi; - ihex_write_04(ofd, addr_hi); - } - } - if (pe - p > 0) - ihex_write(ofd, 0, addr, 0, p, pe - p); -} - -static int -ihex_read(const char *line, char *type, uint64_t *addr, uint64_t *num, - uint8_t *data, size_t *sz) -{ - uint64_t count, _checksum; - int checksum, i, len; - - *sz = 0; - checksum = 0; - len = 1; - if (read_num(line, &len, &count, 1, &checksum) < 0) - return (-1); - if (read_num(line, &len, addr, 2, &checksum) < 0) - return (-1); - if (line[len++] != '0') - return (-1); - *type = line[len++]; - checksum += *type - '0'; - switch (*type) { - case '0': - for (i = 0; (uint64_t) i < count; i++) { - if (read_num(line, &len, num, 1, &checksum) < 0) - return (-1); - data[i] = (uint8_t) *num; - } - *sz = count; - break; - case '1': - if (count != 0) - return (-1); - break; - case '2': - case '4': - if (count != 2) - return (-1); - if (read_num(line, &len, num, 2, &checksum) < 0) - return (-1); - break; - case '3': - case '5': - if (count != 4) - return (-1); - if (read_num(line, &len, num, 4, &checksum) < 0) - return (-1); - break; - default: - return (-1); - } - - if (read_num(line, &len, &_checksum, 1, &checksum) < 0) - return (-1); - - if ((checksum & 0xFF) != 0) { - return (-1); - } - - return (0); -} - -static void -ihex_write_01(int ofd) -{ - - ihex_write(ofd, 1, 0, 0, NULL, 0); -} - -static void -ihex_write_04(int ofd, uint16_t addr) -{ - - ihex_write(ofd, 4, 0, addr, NULL, 2); -} - -static void -ihex_write_05(int ofd, uint64_t e_entry) -{ - - if (e_entry > 0xFFFFFFFF) { - warnx("address space too big for Intel Hex file"); - return; - } - - ihex_write(ofd, 5, 0, e_entry, NULL, 4); -} - -static void -ihex_write(int ofd, int type, uint64_t addr, uint64_t num, const void *buf, - size_t sz) -{ - char line[_LINE_BUFSZ]; - const uint8_t *p, *pe; - int len, checksum; - - if (sz > 16) - errx(EXIT_FAILURE, "Internal: ihex_write() sz too big"); - checksum = 0; - line[0] = ':'; - len = 1; - write_num(line, &len, sz, 1, &checksum); - write_num(line, &len, addr, 2, &checksum); - write_num(line, &len, type, 1, &checksum); - if (sz > 0) { - if (buf != NULL) { - for (p = buf, pe = p + sz; p < pe; p++) - write_num(line, &len, *p, 1, &checksum); - } else - write_num(line, &len, num, sz, &checksum); - } - write_num(line, &len, (~checksum + 1) & 0xFF, 1, NULL); - line[len++] = '\r'; - line[len++] = '\n'; - if (write(ofd, line, len) != (ssize_t) len) - err(EXIT_FAILURE, "write failed"); -} - -static int -read_num(const char *line, int *len, uint64_t *num, size_t sz, int *checksum) -{ - uint8_t b; - - *num = 0; - for (; sz > 0; sz--) { - if (!ishexdigit(line[*len]) || !ishexdigit(line[*len + 1])) - return (-1); - b = (hex_value(line[*len]) << 4) | hex_value(line[*len + 1]); - *num = (*num << 8) | b; - *len += 2; - if (checksum != NULL) - *checksum = (*checksum + b) & 0xFF; - } - - return (0); -} - -static void -write_num(char *line, int *len, uint64_t num, size_t sz, int *checksum) -{ - uint8_t b; - - for (; sz > 0; sz--) { - b = (num >> ((sz - 1) * 8)) & 0xFF; - line[*len] = hex_digit((b >> 4) & 0xF); - line[*len + 1] = hex_digit(b & 0xF); - *len += 2; - if (checksum != NULL) - *checksum = (*checksum + b) & 0xFF; - } -} - -static char -hex_digit(uint8_t n) -{ - - return ((n < 10) ? '0' + n : 'A' + (n - 10)); -} - -static int -hex_value(int x) -{ - - if (isdigit(x)) - return (x - '0'); - else if (x >= 'a' && x <= 'f') - return (x - 'a' + 10); - else - return (x - 'A' + 10); -} - -static int -ishexdigit(int x) -{ - - if (isdigit(x)) - return (1); - if ((x >= 'a' && x <= 'f') || (x >= 'A' && x <= 'F')) - return (1); - - return (0); -} diff --git a/contrib/elftoolchain/elfcopy/binary.c b/contrib/elftoolchain/elfcopy/binary.c deleted file mode 100644 index ff020a5c..00000000 --- a/contrib/elftoolchain/elfcopy/binary.c +++ /dev/null @@ -1,290 +0,0 @@ -/*- - * Copyright (c) 2010,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -/* - * Convert ELF object to `binary'. Sections with SHF_ALLOC flag set - * are copied to the result binary. The relative offsets for each section - * are retained, so the result binary file might contain "holes". - */ -void -create_binary(int ifd, int ofd) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - GElf_Shdr sh; - off_t base, off; - int elferr; - - if ((e = elf_begin(ifd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - - base = 0; - if (lseek(ofd, base, SEEK_SET) < 0) - err(EXIT_FAILURE, "lseek failed"); - - /* - * Find base offset in the first iteration. - */ - base = -1; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((sh.sh_flags & SHF_ALLOC) == 0 || - sh.sh_type == SHT_NOBITS || - sh.sh_size == 0) - continue; - if (base == -1 || (off_t) sh.sh_offset < base) - base = sh.sh_offset; - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); - - if (base == -1) - return; - - /* - * Write out sections in the second iteration. - */ - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((sh.sh_flags & SHF_ALLOC) == 0 || - sh.sh_type == SHT_NOBITS || - sh.sh_size == 0) - continue; - (void) elf_errno(); - if ((d = elf_rawdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", elf_errmsg(-1)); - continue; - } - if (d->d_buf == NULL || d->d_size == 0) - continue; - - /* lseek to section offset relative to `base'. */ - off = sh.sh_offset - base; - if (lseek(ofd, off, SEEK_SET) < 0) - err(EXIT_FAILURE, "lseek failed"); - - /* Write out section contents. */ - if (write(ofd, d->d_buf, d->d_size) != (ssize_t) d->d_size) - err(EXIT_FAILURE, "write failed"); - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); -} - -#define _SYMBOL_NAMSZ 1024 - -/* - * Convert `binary' to ELF object. The input `binary' is converted to - * a relocatable (.o) file, a few symbols will also be created to make - * it easier to access the binary data in other compilation units. - */ -void -create_elf_from_binary(struct elfcopy *ecp, int ifd, const char *ifn) -{ - char name[_SYMBOL_NAMSZ]; - struct section *sec, *sec_temp, *shtab; - struct stat sb; - GElf_Ehdr oeh; - GElf_Shdr sh; - void *content; - uint64_t off, data_start, data_end, data_size; - char *sym_basename, *p; - - /* Reset internal section list. */ - if (!TAILQ_EMPTY(&ecp->v_sec)) - TAILQ_FOREACH_SAFE(sec, &ecp->v_sec, sec_list, sec_temp) { - TAILQ_REMOVE(&ecp->v_sec, sec, sec_list); - free(sec); - } - - if (fstat(ifd, &sb) == -1) - err(EXIT_FAILURE, "fstat failed"); - - /* Read the input binary file to a internal buffer. */ - if ((content = malloc(sb.st_size)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if (read(ifd, content, sb.st_size) != sb.st_size) - err(EXIT_FAILURE, "read failed"); - - /* - * TODO: copy the input binary to output binary verbatim if -O is not - * specified. - */ - - /* Create EHDR for output .o file. */ - if (gelf_newehdr(ecp->eout, ecp->oec) == NULL) - errx(EXIT_FAILURE, "gelf_newehdr failed: %s", - elf_errmsg(-1)); - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* Initialise e_ident fields. */ - oeh.e_ident[EI_CLASS] = ecp->oec; - oeh.e_ident[EI_DATA] = ecp->oed; - /* - * TODO: Set OSABI according to the OS platform where elfcopy(1) - * was build. (probably) - */ - oeh.e_ident[EI_OSABI] = ELFOSABI_NONE; - oeh.e_machine = ecp->oem; - oeh.e_type = ET_REL; - oeh.e_entry = 0; - - ecp->flags |= RELOCATABLE; - - /* Create .shstrtab section */ - init_shstrtab(ecp); - ecp->shstrtab->off = 0; - - /* - * Create `.data' section which contains the binary data. The - * section is inserted immediately after EHDR. - */ - off = gelf_fsize(ecp->eout, ELF_T_EHDR, 1, EV_CURRENT); - if (off == 0) - errx(EXIT_FAILURE, "gelf_fsize() failed: %s", elf_errmsg(-1)); - (void) create_external_section(ecp, ".data", NULL, content, sb.st_size, - off, SHT_PROGBITS, ELF_T_BYTE, SHF_ALLOC | SHF_WRITE, 1, 0, 1); - - /* Insert .shstrtab after .data section. */ - if ((ecp->shstrtab->os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn failed: %s", - elf_errmsg(-1)); - insert_to_sec_list(ecp, ecp->shstrtab, 1); - - /* Insert section header table here. */ - shtab = insert_shtab(ecp, 1); - - /* Count in .symtab and .strtab section headers. */ - shtab->sz += gelf_fsize(ecp->eout, ELF_T_SHDR, 2, EV_CURRENT); - - if ((sym_basename = strdup(ifn)) == NULL) - err(1, "strdup"); - for (p = sym_basename; *p != '\0'; p++) - if (!isalnum(*p & 0xFF)) - *p = '_'; -#define _GEN_SYMNAME(S) do { \ - snprintf(name, sizeof(name), "%s%s%s", "_binary_", sym_basename, S); \ -} while (0) - - /* - * Create symbol table. - */ - create_external_symtab(ecp); - data_start = 0; - data_end = data_start + sb.st_size; - data_size = sb.st_size; - _GEN_SYMNAME("_start"); - add_to_symtab(ecp, name, data_start, 0, 1, - ELF32_ST_INFO(STB_GLOBAL, STT_NOTYPE), 0, 1); - _GEN_SYMNAME("_end"); - add_to_symtab(ecp, name, data_end, 0, 1, - ELF32_ST_INFO(STB_GLOBAL, STT_NOTYPE), 0, 1); - _GEN_SYMNAME("_size"); - add_to_symtab(ecp, name, data_size, 0, SHN_ABS, - ELF32_ST_INFO(STB_GLOBAL, STT_NOTYPE), 0, 1); - finalize_external_symtab(ecp); - create_symtab_data(ecp); -#undef _GEN_SYMNAME - free(sym_basename); - - /* - * Write the underlying ehdr. Note that it should be called - * before elf_setshstrndx() since it will overwrite e->e_shstrndx. - */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* Update sh_name pointer for each section header entry. */ - ecp->flags |= SYMTAB_EXIST; - update_shdr(ecp, 0); - - /* Properly set sh_link field of .symtab section. */ - if (gelf_getshdr(ecp->symtab->os, &sh) == NULL) - errx(EXIT_FAILURE, "692 gelf_getshdr() failed: %s", - elf_errmsg(-1)); - sh.sh_link = elf_ndxscn(ecp->strtab->os); - if (!gelf_update_shdr(ecp->symtab->os, &sh)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); - - /* Renew oeh to get the updated e_shstrndx. */ - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* Resync section offsets. */ - resync_sections(ecp); - - /* Store SHDR offset in EHDR. */ - oeh.e_shoff = shtab->off; - - /* Update ehdr since we modified e_shoff. */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* Write out the output elf object. */ - if (elf_update(ecp->eout, ELF_C_WRITE) < 0) - errx(EXIT_FAILURE, "elf_update() failed: %s", - elf_errmsg(-1)); - - /* Release allocated resource. */ - free(content); - free_elf(ecp); -} diff --git a/contrib/elftoolchain/elfcopy/elfcopy.1 b/contrib/elftoolchain/elfcopy/elfcopy.1 deleted file mode 100644 index 55b118ed..00000000 --- a/contrib/elftoolchain/elfcopy/elfcopy.1 +++ /dev/null @@ -1,369 +0,0 @@ -.\" Copyright (c) 2008-2009,2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 30, 2017 -.Dt ELFCOPY 1 -.Os -.Sh NAME -.Nm elfcopy , -.Nm objcopy -.Nd copy and translate object files -.Sh SYNOPSIS -.Nm -.Op Fl I Ar objformat | Fl s Ar objformat | Fl -input-target= Ns Ar objformat -.Op Fl K Ar symbolname | Fl -keep-symbol= Ns Ar symbolname -.Op Fl L Ar symbolname | Fl -localize-symbol= Ns Ar symbolname -.Op Fl N Ar symbolname | Fl -strip-symbol= Ns Ar symbolname -.Op Fl O Ar objformat | Fl -output-target= Ns Ar objformat -.Op Fl R Ar sectionname | Fl -remove-section= Ns Ar sectionname -.Op Fl S | Fl -strip-all -.Op Fl V | Fl -version -.Op Fl W Ar symbolname | Fl -weaken-symbol= Ns Ar symbolname -.Op Fl X | Fl -discard-locals -.Op Fl d | Fl g | Fl -strip-debug -.Op Fl h | Fl -help -.Op Fl j Ar sectionname | Fl -only-section= Ns Ar sectionname -.Op Fl p | Fl -preserve-dates -.Op Fl w | Fl -wildcard -.Op Fl x | Fl -discard-all -.Op Fl -add-gnu-debuglink Ns = Ns Ar filename -.Op Fl -add-section Ar sectionname Ns = Ns Ar filename -.Oo -.Fl -adjust-section-vma Ar section Ns {+|-|=} Ns Ar val | -.Fl -change-section-address Ar section Ns {+|-|=} Ns Ar val -.Oc -.Oo -.Fl -adjust-start Ns = Ns Ar increment | -.Fl -change-start Ns = Ns Ar increment -.Oc -.Oo -.Fl -adjust-vma Ns = Ns Ar increment | -.Fl -change-addresses Ns = Ns Ar increment -.Oc -.Op Fl -adjust-warnings | Fl -change-warnings -.Op Fl -change-section-lma Ar section Ns {+|-|=} Ns Ar val -.Op Fl -change-section-vma Ar section Ns {+|-|=} Ns Ar val -.Op Fl -extract-dwo -.Op Fl -gap-fill Ns = Ns Ar val -.Op Fl -globalize-symbol Ns = Ns ar symbolname -.Op Fl -globalize-symbols Ns = Ns Ar filename -.Op Fl -localize-hidden -.Op Fl -localize-symbols Ns = Ns Ar filename -.Op Fl -no-adjust-warnings | Fl -no-change-warnings -.Op Fl -only-keep-debug -.Op Fl -pad-to Ns = Ns Ar address -.Op Fl -prefix-alloc-sections Ns = Ns Ar string -.Op Fl -prefix-sections Ns = Ns Ar string -.Op Fl -prefix-symbols Ns = Ns Ar string -.Op Fl -rename-section Ar oldname Ns = Ns Ar newname Ns Op Ar ,flags -.Op Fl -set-section-flags Ar sectionname Ns = Ns Ar flags -.Op Fl -set-start Ns = Ns Ar address -.Op Fl -srec-forceS3 -.Op Fl -srec-len Ns = Ns Ar val -.Op Fl -strip-dwo -.Op Fl -strip-symbols= Ns Ar filename -.Op Fl -strip-unneeded -.Ar infile -.Op Ar outfile -.Sh DESCRIPTION -The -.Nm -utility copies the content of the binary object named by argument -.Ar infile -to that named by argument -.Ar outfile , -transforming it according to the command line options specified. -If argument -.Ar outfile -is not specified, -.Nm -will create a temporary file and will subsequently rename it as -.Ar infile . -.Pp -The -.Nm -utility supports the following options: -.Bl -tag -width indent -.It Fl I Ar objformat | Fl s Ar objformat | Fl -input-target= Ns Ar objformat -Specify that the input file named by the argument -.Ar infile -is in the object format specified by the argument -.Ar objformat . -.It Fl K Ar symbolname | Fl -keep-symbol= Ns Ar symbolname -Copy the symbol named by argument -.Ar symbolname -to the output. -.It Fl L Ar symbolname | Fl -localize-symbol= Ns Ar symbolname -Make the symbol named by argument -.Ar symbolname -local to the output file. -.It Fl N Ar symbol | Fl -strip-symbol= Ns Ar symbolname -Do not copy the symbol named by argument -.Ar symbolname -to the output. -.It Fl O Ar objformat | Fl -output-target= Ns Ar objformat -Write the output file using the object format specified in argument -.Ar objformat . -The argument -.Ar objformat -should be one of the target names recognized by -.Xr elftc_bfd_find_target 3 . -.It Fl R Ar sectionname | Fl -remove-section= Ns Ar sectionname -Remove any section with name -.Ar sectionname -from the output file. -.It Fl S | Fl -strip-all -Do not copy symbol and relocation information to the target file. -.It Fl V | Fl -version -Print a version identifier and exit. -.It Fl W Ar symbolname | Fl -weaken-symbol= Ns Ar symbolname -Mark the symbol named by argument -.Ar symbolname -as weak in the output. -.It Fl X | Fl -discard-locals -Do not copy compiler generated local symbols to the output. -.It Fl d | Fl g | Fl -strip-debug -Do not copy debugging information to the target file. -.It Fl h | Fl -help -Display a help message and exit. -.It Fl j Ar sectionname | Fl -only-section= Ns Ar sectionname -Copy only the section named by argument -.Ar sectionname -to the output. -.It Fl p | Fl -preserve-dates -Set the access and modification times of the output file to the -same as those of the input. -.It Fl w | Fl -wildcard -Use shell-style patterns to name symbols. -The following meta-characters are recognized in patterns: -.Bl -tag -width "...." -compact -.It Li ! -If this is the first character of the pattern, invert the sense of the -pattern match. -.It Li * -Matches any string of characters in a symbol name. -.It Li ? -Matches zero or one character in a symbol name. -.It Li [ -Mark the start of a character class. -.It Li \e -Remove the special meaning of the next character in the pattern. -.It Li ] -Mark the end of a character class. -.El -.It Fl x | Fl -discard-all -Do not copy non-global symbols to the output. -.It Fl -add-gnu-debuglink Ns = Ns Ar filename -Create a .gnu_debuglink section in the output file that references the -debug data in -.Ar filename . -.It Fl -add-section Ar sectionname Ns = Ns Ar filename -Add a new section to the output file with name -.Ar sectionname . -The contents of the section are taken from the file named by -argument -.Ar filename . -The size of the section will be the number of bytes in file -.Ar filename . -.It Xo -.Fl -adjust-section-vma Ar section Ns {+|-|=} Ns Ar val | -.Fl -change-section-address Ar section Ns {+|-|=} Ns Ar val -.Xc -Depending on the operator specified, increase, decrease or set both -the virtual memory address and the load memory address of the section -named by the argument -.Ar section . -The argument -.Ar val -specifies the desired increment, decrement or new value for the -address. -.It Xo -.Fl -adjust-start Ns = Ns Ar increment | -.Fl -change-start Ns = Ns Ar increment -.Xc -Increase the entry point address of the output ELF object by the value -specified in the argument -.Ar increment . -.It Xo -.Fl -adjust-vma Ns = Ns Ar increment | -.Fl -change-addresses Ns = Ns Ar increment -.Xc -Increase the virtual memory address and the load memory address of all -sections by the value specified by the argument -.Ar increment . -.It Fl -adjust-warnings | Fl -change-warnings -Issue a warning if the section specified by the options -.Fl -change-section-address , -.Fl -change-section-lma -or -.Fl -change-section-vma -does not exist in the input object. -This is the default. -.It Fl -change-section-lma Ar section Ns {+|-|=} Ns Ar val -Change or set the load memory address of the section named by the -argument -.Ar section . -Depending on the operator specified, the value in argument -.Ar val -will be used as an increment, a decrement or as the new value -of the load memory address. -.It Fl -change-section-vma Ar section Ns {+|-|=} Ns Ar val -Change or set the virtual memory address of the section named by the -argument -.Ar section . -Depending on the operator specified, the value in argument -.Ar val -will be used as an increment, a decrement or as the new value -of the virtual memory address. -.It Fl -extract-dwo -Copy only .dwo debug sections to the output file. -.It Fl -gap-fill Ns = Ns Ar val -Fill the gaps between sections with the byte value specified by -the argument -.Ar val . -.It Fl -globalize-symbol Ns = Ns Ar symbolname -Make the symbol named by argument -.Ar symbolname -global, so that it is visible outside of the file in which it is defined. -.It Fl -globalize-symbols Ns = Ns Ar filename -Make each symbol listed in the file specified by -.Ar filename -global. -.It Fl -localize-hidden -Make all hidden symbols local to the output file. -This includes symbols with internal visiblity. -.It Fl -localize-symbols Ns = Ns Ar filename -Make each symbol listed in the file specified by -.Ar filename -local to the output file. -.It Fl -no-adjust-warnings | Fl -no-change-warnings -Do not issue a warning if the section specified by the options -.Fl -change-section-address , -.Fl -change-section-lma -or -.Fl -change-section-vma -is missing in the input object. -.It Fl -only-keep-debug -Copy only debugging information to the output file. -.It Fl -pad-to Ns = Ns Ar address -Pad the load memory address of the output object to the value -specified by the argument -.Ar address -by increasing the size of the section with the highest load memory -address. -.It Fl -prefix-alloc-sections Ns = Ns Ar string -Prefix the section names of all the allocated sections with -.Ar string . -.It Fl -prefix-sections Ns = Ns Ar string -Prefix the section names of all the sections with -.Ar string . -.It Fl -prefix-symbols Ns = Ns Ar string -Prefix the symbol names of all the symbols with -.Ar string . -.It Fl -rename-section Ar oldname Ns = Ns Ar newname Ns Op Ar ,flags -Rename the section named by argument -.Ar oldname -to -.Ar newname , -optionally changing the sections flags to that specified by argument -.Ar flags . -Allowed values for the argument -.Ar flags -are as for option -.Fl -set-section-flags -below. -.It Fl -set-section-flags Ar sectionname Ns = Ns Ar flags -Set the flags for the section named by argument -.Ar sectionname -to those specified by argument -.Ar flags . -Argument -.Ar flags -is a comma separated list of the following flag names: -.Bl -tag -width "readonly" -compact -.It alloc -The section occupies space in the output file. -.It code -The section contains machine instructions. -.It contents -This flag is accepted but is ignored. -.It data -The section contains writeable data. -.It debug -The section holds debugging information. -.It load -The section is loadable. -.It noload -The section should not be loaded into memory. -.It readonly -The section is not writable. -.It rom -The section contains ROM'able contents. -.It share -This flag is accepted but is ignored. -.El -.It Fl -set-start Ns = Ns Ar address -Set the start address of the output ELF object to the value specified -by the argument -.Ar address . -.It Fl -srec-forceS3 -Only generate S-records of type -.Dq S3 . -This option is only meaningful when the output target is set to -.Dq srec . -.It Fl -srec-len Ns = Ns Ar val -Set the maximum length of an S-record line to -.Ar val . -This option is only meaningful when the output target is set to -.Dq srec . -.It Fl -strip-dwo -Do not copy .dwo debug sections to the output file. -.It Fl -strip-symbols= Ns Ar filename -Do not copy any of the symbols specified by -.Ar filename -to the output. -.It Fl -strip-unneeded -Do not copy symbols that are not needed for relocation processing. -.El -.Sh DIAGNOSTICS -.Ex -std -.Sh SEE ALSO -.Xr ar 1 , -.Xr ld 1 , -.Xr mcs 1 , -.Xr strip 1 , -.Xr elf 3 , -.Xr elftc_bfd_find_target 3 , -.Xr ar 5 , -.Xr elf 5 -.Sh COMPATIBILITY -The -.Nm -utility is expected to be option compatible with GNU -.Nm objcopy . -.Sh HISTORY -.Nm -has been implemented by -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/contrib/elftoolchain/elfcopy/elfcopy.h b/contrib/elftoolchain/elfcopy/elfcopy.h deleted file mode 100644 index 5bfe83be..00000000 --- a/contrib/elftoolchain/elfcopy/elfcopy.h +++ /dev/null @@ -1,324 +0,0 @@ -/*- - * Copyright (c) 2007-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "_elftc.h" - -/* - * User specified symbol operation (strip, keep, localize, globalize, - * weaken, rename, etc). - */ -struct symop { - const char *name; - const char *newname; - -#define SYMOP_KEEP 0x0001U -#define SYMOP_STRIP 0x0002U -#define SYMOP_GLOBALIZE 0x0004U -#define SYMOP_LOCALIZE 0x0008U -#define SYMOP_KEEPG 0x0010U -#define SYMOP_WEAKEN 0x0020U -#define SYMOP_REDEF 0x0040U - - unsigned int op; - - STAILQ_ENTRY(symop) symop_list; -}; - -/* File containing symbol list. */ -struct symfile { - dev_t dev; - ino_t ino; - size_t size; - char *data; - unsigned int op; - - STAILQ_ENTRY(symfile) symfile_list; -}; - -/* Sections to copy/remove/rename/... */ -struct sec_action { - const char *name; - const char *addopt; - const char *newname; - const char *string; - uint64_t lma; - uint64_t vma; - int64_t lma_adjust; - int64_t vma_adjust; - -#define SF_ALLOC 0x0001U -#define SF_LOAD 0x0002U -#define SF_NOLOAD 0x0004U -#define SF_READONLY 0x0008U -#define SF_DEBUG 0x0010U -#define SF_CODE 0x0020U -#define SF_DATA 0x0040U -#define SF_ROM 0x0080U -#define SF_SHARED 0X0100U -#define SF_CONTENTS 0x0200U - - int flags; - int add; - int append; - int compress; - int copy; - int print; - int remove; - int rename; - int setflags; - int setlma; - int setvma; - - STAILQ_ENTRY(sec_action) sac_list; -}; - -/* Sections to add from file. */ -struct sec_add { - char *name; - char *content; - size_t size; - - STAILQ_ENTRY(sec_add) sadd_list; -}; - -struct segment; - -/* Internal data structure for sections. */ -struct section { - struct segment *seg; /* containing segment */ - struct segment *seg_tls; /* tls segment */ - const char *name; /* section name */ - char *newname; /* new section name */ - Elf_Scn *is; /* input scn */ - Elf_Scn *os; /* output scn */ - void *buf; /* section content */ - uint8_t *pad; /* section padding */ - uint64_t off; /* section offset */ - uint64_t sz; /* section size */ - uint64_t cap; /* section capacity */ - uint64_t align; /* section alignment */ - uint64_t type; /* section type */ - uint64_t flags; /* section flags */ - uint64_t vma; /* section virtual addr */ - uint64_t lma; /* section load addr */ - uint64_t pad_sz;/* section padding size */ - int loadable; /* whether loadable */ - int pseudo; - int nocopy; - - Elftc_String_Table *strtab; - - TAILQ_ENTRY(section) sec_list; /* next section */ -}; - -TAILQ_HEAD(sectionlist, section); - -/* Internal data structure for segments. */ -struct segment { - uint64_t vaddr; /* virtual addr (VMA) */ - uint64_t paddr; /* physical addr (LMA) */ - uint64_t off; /* file offset */ - uint64_t fsz; /* file size */ - uint64_t msz; /* memory size */ - uint64_t type; /* segment type */ - int remove; /* whether remove */ - int nsec; /* number of sections contained */ - struct section **v_sec; /* list of sections contained */ - - STAILQ_ENTRY(segment) seg_list; /* next segment */ -}; - -/* - * In-memory representation of ar(1) archive member(object). - */ -struct ar_obj { - char *name; /* member name */ - char *buf; /* member content */ - void *maddr; /* mmap start address */ - uid_t uid; /* user id */ - gid_t gid; /* group id */ - mode_t md; /* octal file permissions */ - size_t size; /* member size */ - time_t mtime; /* modification time */ - - STAILQ_ENTRY(ar_obj) objs; -}; - -/* - * Structure encapsulates the "global" data for "elfcopy" program. - */ -struct elfcopy { - const char *progname; /* program name */ - int iec; /* elfclass of input object */ - Elftc_Bfd_Target_Flavor itf; /* flavour of input object */ - Elftc_Bfd_Target_Flavor otf; /* flavour of output object */ - const char *otgt; /* output target name */ - int oec; /* elfclass of output object */ - unsigned char oed; /* endianness of output object */ - int oem; /* EM_XXX of output object */ - int abi; /* OSABI of output object */ - Elf *ein; /* ELF descriptor of input object */ - Elf *eout; /* ELF descriptor of output object */ - int iphnum; /* num. of input object phdr entries */ - int ophnum; /* num. of output object phdr entries */ - int nos; /* num. of output object sections */ - - enum { - STRIP_NONE = 0, - STRIP_ALL, - STRIP_DEBUG, - STRIP_DWO, - STRIP_NONDEBUG, - STRIP_NONDWO, - STRIP_UNNEEDED - } strip; - -#define EXECUTABLE 0x00000001U -#define DYNAMIC 0x00000002U -#define RELOCATABLE 0x00000004U -#define SYMTAB_EXIST 0x00000010U -#define SYMTAB_INTACT 0x00000020U -#define KEEP_GLOBAL 0x00000040U -#define DISCARD_LOCAL 0x00000080U -#define WEAKEN_ALL 0x00000100U -#define PRESERVE_DATE 0x00001000U -#define SREC_FORCE_S3 0x00002000U -#define SREC_FORCE_LEN 0x00004000U -#define SET_START 0x00008000U -#define GAP_FILL 0x00010000U -#define WILDCARD 0x00020000U -#define NO_CHANGE_WARN 0x00040000U -#define SEC_ADD 0x00080000U -#define SEC_APPEND 0x00100000U -#define SEC_COMPRESS 0x00200000U -#define SEC_PRINT 0x00400000U -#define SEC_REMOVE 0x00800000U -#define SEC_COPY 0x01000000U -#define DISCARD_LLABEL 0x02000000U -#define LOCALIZE_HIDDEN 0x04000000U - - int flags; /* elfcopy run control flags. */ - int64_t change_addr; /* Section address adjustment. */ - int64_t change_start; /* Entry point adjustment. */ - uint64_t set_start; /* Entry point value. */ - unsigned long srec_len; /* S-Record length. */ - uint64_t pad_to; /* load address padding. */ - uint8_t fill; /* gap fill value. */ - char *prefix_sec; /* section prefix. */ - char *prefix_alloc; /* alloc section prefix. */ - char *prefix_sym; /* symbol prefix. */ - char *debuglink; /* GNU debuglink file. */ - struct section *symtab; /* .symtab section. */ - struct section *strtab; /* .strtab section. */ - struct section *shstrtab; /* .shstrtab section. */ - uint64_t *secndx; /* section index map. */ - uint64_t *symndx; /* symbol index map. */ - unsigned char *v_rel; /* symbols needed by relocation. */ - unsigned char *v_grp; /* symbols referred by section group. */ - unsigned char *v_secsym; /* sections with section symbol. */ - STAILQ_HEAD(, segment) v_seg; /* list of segments. */ - STAILQ_HEAD(, sec_action) v_sac;/* list of section operations. */ - STAILQ_HEAD(, sec_add) v_sadd; /* list of sections to add. */ - STAILQ_HEAD(, symop) v_symop; /* list of symbols operations. */ - STAILQ_HEAD(, symfile) v_symfile; /* list of symlist files. */ - TAILQ_HEAD(, section) v_sec; /* list of sections. */ - - /* - * Fields for the ar(1) archive. - */ - char *as; /* buffer for archive string table. */ - size_t as_sz; /* current size of as table. */ - size_t as_cap; /* capacity of as table buffer. */ - uint32_t s_cnt; /* current number of symbols. */ - uint32_t *s_so; /* symbol offset table. */ - size_t s_so_cap; /* capacity of so table buffer. */ - char *s_sn; /* symbol name table */ - size_t s_sn_cap; /* capacity of sn table buffer. */ - size_t s_sn_sz; /* current size of sn table. */ - off_t rela_off; /* offset relative to pseudo members. */ - STAILQ_HEAD(, ar_obj) v_arobj; /* archive object(member) list. */ -}; - -void add_section(struct elfcopy *_ecp, const char *_optarg); -void add_to_shstrtab(struct elfcopy *_ecp, const char *_name); -void add_to_symop_list(struct elfcopy *_ecp, const char *_name, - const char *_newname, unsigned int _op); -void add_to_symtab(struct elfcopy *_ecp, const char *_name, - uint64_t _st_value, uint64_t _st_size, uint16_t _st_shndx, - unsigned char _st_info, unsigned char _st_other, int _ndx_known); -int add_to_inseg_list(struct elfcopy *_ecp, struct section *_sec); -void adjust_addr(struct elfcopy *_ecp); -void copy_content(struct elfcopy *_ecp); -void copy_data(struct section *_s); -void copy_phdr(struct elfcopy *_ecp); -void copy_shdr(struct elfcopy *_ecp, struct section *_s, const char *_name, - int _copy, int _sec_flags); -void create_binary(int _ifd, int _ofd); -void create_elf(struct elfcopy *_ecp); -void create_elf_from_binary(struct elfcopy *_ecp, int _ifd, const char *ifn); -void create_elf_from_ihex(struct elfcopy *_ecp, int _ifd); -void create_elf_from_srec(struct elfcopy *_ecp, int _ifd); -struct section *create_external_section(struct elfcopy *_ecp, const char *_name, - char *_newname, void *_buf, uint64_t _size, uint64_t _off, uint64_t _stype, - Elf_Type _dtype, uint64_t flags, uint64_t _align, uint64_t _vma, - int _loadable); -void create_external_symtab(struct elfcopy *_ecp); -void create_ihex(int _ifd, int _ofd); -void create_pe(struct elfcopy *_ecp, int _ifd, int _ofd); -void create_scn(struct elfcopy *_ecp); -void create_srec(struct elfcopy *_ecp, int _ifd, int _ofd, const char *_ofn); -void create_symtab(struct elfcopy *_ecp); -void create_symtab_data(struct elfcopy *_ecp); -void create_tempfile(char **_fn, int *_fd); -void finalize_external_symtab(struct elfcopy *_ecp); -void free_elf(struct elfcopy *_ecp); -void free_sec_act(struct elfcopy *_ecp); -void free_sec_add(struct elfcopy *_ecp); -void free_symtab(struct elfcopy *_ecp); -void init_shstrtab(struct elfcopy *_ecp); -void insert_to_sec_list(struct elfcopy *_ecp, struct section *_sec, - int _tail); -struct section *insert_shtab(struct elfcopy *_ecp, int tail); -int is_remove_reloc_sec(struct elfcopy *_ecp, uint32_t _sh_info); -int is_remove_section(struct elfcopy *_ecp, const char *_name); -struct sec_action *lookup_sec_act(struct elfcopy *_ecp, - const char *_name, int _add); -struct symop *lookup_symop_list(struct elfcopy *_ecp, const char *_name, - unsigned int _op); -void resync_sections(struct elfcopy *_ecp); -void setup_phdr(struct elfcopy *_ecp); -void update_shdr(struct elfcopy *_ecp, int _update_link); - -#ifndef LIBELF_AR -int ac_detect_ar(int _ifd); -void ac_create_ar(struct elfcopy *_ecp, int _ifd, int _ofd); -#endif /* ! LIBELF_AR */ diff --git a/contrib/elftoolchain/elfcopy/main.c b/contrib/elftoolchain/elfcopy/main.c deleted file mode 100644 index 78d5748c..00000000 --- a/contrib/elftoolchain/elfcopy/main.c +++ /dev/null @@ -1,1623 +0,0 @@ -/*- - * Copyright (c) 2007-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -enum options -{ - ECP_ADD_GNU_DEBUGLINK, - ECP_ADD_SECTION, - ECP_CHANGE_ADDR, - ECP_CHANGE_SEC_ADDR, - ECP_CHANGE_SEC_LMA, - ECP_CHANGE_SEC_VMA, - ECP_CHANGE_START, - ECP_CHANGE_WARN, - ECP_GAP_FILL, - ECP_GLOBALIZE_SYMBOL, - ECP_GLOBALIZE_SYMBOLS, - ECP_KEEP_SYMBOLS, - ECP_KEEP_GLOBAL_SYMBOLS, - ECP_LOCALIZE_HIDDEN, - ECP_LOCALIZE_SYMBOLS, - ECP_NO_CHANGE_WARN, - ECP_ONLY_DEBUG, - ECP_ONLY_DWO, - ECP_PAD_TO, - ECP_PREFIX_ALLOC, - ECP_PREFIX_SEC, - ECP_PREFIX_SYM, - ECP_REDEF_SYMBOL, - ECP_REDEF_SYMBOLS, - ECP_RENAME_SECTION, - ECP_SET_OSABI, - ECP_SET_SEC_FLAGS, - ECP_SET_START, - ECP_SREC_FORCE_S3, - ECP_SREC_LEN, - ECP_STRIP_DWO, - ECP_STRIP_SYMBOLS, - ECP_STRIP_UNNEEDED, - ECP_WEAKEN_ALL, - ECP_WEAKEN_SYMBOLS -}; - -static struct option mcs_longopts[] = -{ - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; - -static struct option strip_longopts[] = -{ - {"discard-all", no_argument, NULL, 'x'}, - {"discard-locals", no_argument, NULL, 'X'}, - {"help", no_argument, NULL, 'h'}, - {"input-target", required_argument, NULL, 'I'}, - {"keep-symbol", required_argument, NULL, 'K'}, - {"only-keep-debug", no_argument, NULL, ECP_ONLY_DEBUG}, - {"output-file", required_argument, NULL, 'o'}, - {"output-target", required_argument, NULL, 'O'}, - {"preserve-dates", no_argument, NULL, 'p'}, - {"remove-section", required_argument, NULL, 'R'}, - {"strip-all", no_argument, NULL, 's'}, - {"strip-debug", no_argument, NULL, 'S'}, - {"strip-symbol", required_argument, NULL, 'N'}, - {"strip-unneeded", no_argument, NULL, ECP_STRIP_UNNEEDED}, - {"version", no_argument, NULL, 'V'}, - {"wildcard", no_argument, NULL, 'w'}, - {NULL, 0, NULL, 0} -}; - -static struct option elfcopy_longopts[] = -{ - {"add-gnu-debuglink", required_argument, NULL, ECP_ADD_GNU_DEBUGLINK}, - {"add-section", required_argument, NULL, ECP_ADD_SECTION}, - {"adjust-section-vma", required_argument, NULL, ECP_CHANGE_SEC_ADDR}, - {"adjust-vma", required_argument, NULL, ECP_CHANGE_ADDR}, - {"adjust-start", required_argument, NULL, ECP_CHANGE_START}, - {"adjust-warnings", no_argument, NULL, ECP_CHANGE_WARN}, - {"binary-architecture", required_argument, NULL, 'B'}, - {"change-addresses", required_argument, NULL, ECP_CHANGE_ADDR}, - {"change-section-address", required_argument, NULL, - ECP_CHANGE_SEC_ADDR}, - {"change-section-lma", required_argument, NULL, ECP_CHANGE_SEC_LMA}, - {"change-section-vma", required_argument, NULL, ECP_CHANGE_SEC_VMA}, - {"change-start", required_argument, NULL, ECP_CHANGE_START}, - {"change-warnings", no_argument, NULL, ECP_CHANGE_WARN}, - {"discard-all", no_argument, NULL, 'x'}, - {"discard-locals", no_argument, NULL, 'X'}, - {"extract-dwo", no_argument, NULL, ECP_ONLY_DWO}, - {"gap-fill", required_argument, NULL, ECP_GAP_FILL}, - {"globalize-symbol", required_argument, NULL, ECP_GLOBALIZE_SYMBOL}, - {"globalize-symbols", required_argument, NULL, ECP_GLOBALIZE_SYMBOLS}, - {"help", no_argument, NULL, 'h'}, - {"input-target", required_argument, NULL, 'I'}, - {"keep-symbol", required_argument, NULL, 'K'}, - {"keep-symbols", required_argument, NULL, ECP_KEEP_SYMBOLS}, - {"keep-global-symbol", required_argument, NULL, 'G'}, - {"keep-global-symbols", required_argument, NULL, - ECP_KEEP_GLOBAL_SYMBOLS}, - {"localize-hidden", no_argument, NULL, ECP_LOCALIZE_HIDDEN}, - {"localize-symbol", required_argument, NULL, 'L'}, - {"localize-symbols", required_argument, NULL, ECP_LOCALIZE_SYMBOLS}, - {"no-adjust-warnings", no_argument, NULL, ECP_NO_CHANGE_WARN}, - {"no-change-warnings", no_argument, NULL, ECP_NO_CHANGE_WARN}, - {"only-keep-debug", no_argument, NULL, ECP_ONLY_DEBUG}, - {"only-section", required_argument, NULL, 'j'}, - {"osabi", required_argument, NULL, ECP_SET_OSABI}, - {"output-target", required_argument, NULL, 'O'}, - {"pad-to", required_argument, NULL, ECP_PAD_TO}, - {"preserve-dates", no_argument, NULL, 'p'}, - {"prefix-alloc-sections", required_argument, NULL, ECP_PREFIX_ALLOC}, - {"prefix-sections", required_argument, NULL, ECP_PREFIX_SEC}, - {"prefix-symbols", required_argument, NULL, ECP_PREFIX_SYM}, - {"redefine-sym", required_argument, NULL, ECP_REDEF_SYMBOL}, - {"redefine-syms", required_argument, NULL, ECP_REDEF_SYMBOLS}, - {"remove-section", required_argument, NULL, 'R'}, - {"rename-section", required_argument, NULL, ECP_RENAME_SECTION}, - {"set-section-flags", required_argument, NULL, ECP_SET_SEC_FLAGS}, - {"set-start", required_argument, NULL, ECP_SET_START}, - {"srec-forceS3", no_argument, NULL, ECP_SREC_FORCE_S3}, - {"srec-len", required_argument, NULL, ECP_SREC_LEN}, - {"strip-all", no_argument, NULL, 'S'}, - {"strip-debug", no_argument, 0, 'g'}, - {"strip-dwo", no_argument, NULL, ECP_STRIP_DWO}, - {"strip-symbol", required_argument, NULL, 'N'}, - {"strip-symbols", required_argument, NULL, ECP_STRIP_SYMBOLS}, - {"strip-unneeded", no_argument, NULL, ECP_STRIP_UNNEEDED}, - {"version", no_argument, NULL, 'V'}, - {"weaken", no_argument, NULL, ECP_WEAKEN_ALL}, - {"weaken-symbol", required_argument, NULL, 'W'}, - {"weaken-symbols", required_argument, NULL, ECP_WEAKEN_SYMBOLS}, - {"wildcard", no_argument, NULL, 'w'}, - {NULL, 0, NULL, 0} -}; - -static struct { - const char *name; - int value; -} sec_flags[] = { - {"alloc", SF_ALLOC}, - {"load", SF_LOAD}, - {"noload", SF_NOLOAD}, - {"readonly", SF_READONLY}, - {"debug", SF_DEBUG}, - {"code", SF_CODE}, - {"data", SF_DATA}, - {"rom", SF_ROM}, - {"share", SF_SHARED}, - {"contents", SF_CONTENTS}, - {NULL, 0} -}; - -static struct { - const char *name; - int abi; -} osabis[] = { - {"sysv", ELFOSABI_SYSV}, - {"hpus", ELFOSABI_HPUX}, - {"netbsd", ELFOSABI_NETBSD}, - {"linux", ELFOSABI_LINUX}, - {"hurd", ELFOSABI_HURD}, - {"86open", ELFOSABI_86OPEN}, - {"solaris", ELFOSABI_SOLARIS}, - {"aix", ELFOSABI_AIX}, - {"irix", ELFOSABI_IRIX}, - {"freebsd", ELFOSABI_FREEBSD}, - {"tru64", ELFOSABI_TRU64}, - {"modesto", ELFOSABI_MODESTO}, - {"openbsd", ELFOSABI_OPENBSD}, - {"openvms", ELFOSABI_OPENVMS}, - {"nsk", ELFOSABI_NSK}, - {"cloudabi", ELFOSABI_CLOUDABI}, - {"arm", ELFOSABI_ARM}, - {"standalone", ELFOSABI_STANDALONE}, - {NULL, 0} -}; - -static int copy_from_tempfile(const char *src, const char *dst, - int infd, int *outfd, int in_place); -static void create_file(struct elfcopy *ecp, const char *src, - const char *dst); -static void elfcopy_main(struct elfcopy *ecp, int argc, char **argv); -static void elfcopy_usage(void); -static void mcs_main(struct elfcopy *ecp, int argc, char **argv); -static void mcs_usage(void); -static void parse_sec_address_op(struct elfcopy *ecp, int optnum, - const char *optname, char *s); -static void parse_sec_flags(struct sec_action *sac, char *s); -static void parse_symlist_file(struct elfcopy *ecp, const char *fn, - unsigned int op); -static void print_version(void); -static void set_input_target(struct elfcopy *ecp, const char *target_name); -static void set_osabi(struct elfcopy *ecp, const char *abi); -static void set_output_target(struct elfcopy *ecp, const char *target_name); -static void strip_main(struct elfcopy *ecp, int argc, char **argv); -static void strip_usage(void); - -/* - * An ELF object usually has a structure described by the - * diagram below. - * _____________ - * | | - * | NULL | <- always a SHT_NULL section - * |_____________| - * | | - * | .interp | - * |_____________| - * | | - * | ... | - * |_____________| - * | | - * | .text | - * |_____________| - * | | - * | ... | - * |_____________| - * | | - * | .comment | <- above(include) this: normal sections - * |_____________| - * | | - * | add sections| <- unloadable sections added by --add-section - * |_____________| - * | | - * | .shstrtab | <- section name string table - * |_____________| - * | | - * | shdrs | <- section header table - * |_____________| - * | | - * | .symtab | <- symbol table, if any - * |_____________| - * | | - * | .strtab | <- symbol name string table, if any - * |_____________| - * | | - * | .rel.text | <- relocation info for .o files. - * |_____________| - */ -void -create_elf(struct elfcopy *ecp) -{ - struct section *shtab; - GElf_Ehdr ieh; - GElf_Ehdr oeh; - size_t ishnum; - - ecp->flags |= SYMTAB_INTACT; - ecp->flags &= ~SYMTAB_EXIST; - - /* Create EHDR. */ - if (gelf_getehdr(ecp->ein, &ieh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - if ((ecp->iec = gelf_getclass(ecp->ein)) == ELFCLASSNONE) - errx(EXIT_FAILURE, "getclass() failed: %s", - elf_errmsg(-1)); - - if (ecp->oec == ELFCLASSNONE) - ecp->oec = ecp->iec; - if (ecp->oed == ELFDATANONE) - ecp->oed = ieh.e_ident[EI_DATA]; - - if (gelf_newehdr(ecp->eout, ecp->oec) == NULL) - errx(EXIT_FAILURE, "gelf_newehdr failed: %s", - elf_errmsg(-1)); - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - memcpy(oeh.e_ident, ieh.e_ident, sizeof(ieh.e_ident)); - oeh.e_ident[EI_CLASS] = ecp->oec; - oeh.e_ident[EI_DATA] = ecp->oed; - if (ecp->abi != -1) - oeh.e_ident[EI_OSABI] = ecp->abi; - oeh.e_flags = ieh.e_flags; - oeh.e_machine = ieh.e_machine; - oeh.e_type = ieh.e_type; - oeh.e_entry = ieh.e_entry; - oeh.e_version = ieh.e_version; - - ecp->flags &= ~(EXECUTABLE | DYNAMIC | RELOCATABLE); - if (ieh.e_type == ET_EXEC) - ecp->flags |= EXECUTABLE; - else if (ieh.e_type == ET_DYN) - ecp->flags |= DYNAMIC; - else if (ieh.e_type == ET_REL) - ecp->flags |= RELOCATABLE; - else - errx(EXIT_FAILURE, "unsupported e_type"); - - if (!elf_getshnum(ecp->ein, &ishnum)) - errx(EXIT_FAILURE, "elf_getshnum failed: %s", - elf_errmsg(-1)); - if (ishnum > 0 && (ecp->secndx = calloc(ishnum, - sizeof(*ecp->secndx))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - - /* Read input object program header. */ - setup_phdr(ecp); - - /* - * Scan of input sections: we iterate through sections from input - * object, skip sections need to be stripped, allot Elf_Scn and - * create internal section structure for sections we want. - * (i.e., determine output sections) - */ - create_scn(ecp); - - /* Apply section address changes, if any. */ - adjust_addr(ecp); - - /* - * Determine if the symbol table needs to be changed based on - * command line options. - */ - if (ecp->strip == STRIP_DEBUG || - ecp->strip == STRIP_UNNEEDED || - ecp->flags & WEAKEN_ALL || - ecp->flags & LOCALIZE_HIDDEN || - ecp->flags & DISCARD_LOCAL || - ecp->flags & DISCARD_LLABEL || - ecp->prefix_sym != NULL || - !STAILQ_EMPTY(&ecp->v_symop)) - ecp->flags &= ~SYMTAB_INTACT; - - /* - * Create symbol table. Symbols are filtered or stripped according to - * command line args specified by user, and later updated for the new - * layout of sections in the output object. - */ - if ((ecp->flags & SYMTAB_EXIST) != 0) - create_symtab(ecp); - - /* - * First processing of output sections: at this stage we copy the - * content of each section from input to output object. Section - * content will be modified and printed (mcs) if need. Also content of - * relocation section probably will be filtered and updated according - * to symbol table changes. - */ - copy_content(ecp); - - /* - * Write the underlying ehdr. Note that it should be called - * before elf_setshstrndx() since it will overwrite e->e_shstrndx. - */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - /* - * Second processing of output sections: Update section headers. - * At this stage we set name string index, update st_link and st_info - * for output sections. - */ - update_shdr(ecp, 1); - - /* Renew oeh to get the updated e_shstrndx. */ - if (gelf_getehdr(ecp->eout, &oeh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* - * Insert SHDR table into the internal section list as a "pseudo" - * section, so later it will get sorted and resynced just as "normal" - * sections. - * - * Under FreeBSD, Binutils objcopy always put the section header - * at the end of all the sections. We want to do the same here. - * - * However, note that the behaviour is still different with Binutils: - * elfcopy checks the FreeBSD OSABI tag to tell whether it needs to - * move the section headers, while Binutils is probably configured - * this way when it's compiled on FreeBSD. - */ - if (oeh.e_ident[EI_OSABI] == ELFOSABI_FREEBSD) - shtab = insert_shtab(ecp, 1); - else - shtab = insert_shtab(ecp, 0); - - /* - * Resync section offsets in the output object. This is needed - * because probably sections are modified or new sections are added, - * as a result overlap/gap might appears. - */ - resync_sections(ecp); - - /* Store SHDR offset in EHDR. */ - oeh.e_shoff = shtab->off; - - /* Put program header table immediately after the Elf header. */ - if (ecp->ophnum > 0) { - oeh.e_phoff = gelf_fsize(ecp->eout, ELF_T_EHDR, 1, EV_CURRENT); - if (oeh.e_phoff == 0) - errx(EXIT_FAILURE, "gelf_fsize() failed: %s", - elf_errmsg(-1)); - } - - /* - * Update ELF object entry point if requested. - */ - if (ecp->change_addr != 0) - oeh.e_entry += ecp->change_addr; - if (ecp->flags & SET_START) - oeh.e_entry = ecp->set_start; - if (ecp->change_start != 0) - oeh.e_entry += ecp->change_start; - - /* - * Update ehdr again before we call elf_update(), since we - * modified e_shoff and e_phoff. - */ - if (gelf_update_ehdr(ecp->eout, &oeh) == 0) - errx(EXIT_FAILURE, "gelf_update_ehdr() failed: %s", - elf_errmsg(-1)); - - if (ecp->ophnum > 0) - copy_phdr(ecp); - - /* Write out the output elf object. */ - if (elf_update(ecp->eout, ELF_C_WRITE) < 0) - errx(EXIT_FAILURE, "elf_update() failed: %s", - elf_errmsg(-1)); - - /* Release allocated resource. */ - free_elf(ecp); -} - -void -free_elf(struct elfcopy *ecp) -{ - struct segment *seg, *seg_temp; - struct section *sec, *sec_temp; - - /* Free internal segment list. */ - if (!STAILQ_EMPTY(&ecp->v_seg)) { - STAILQ_FOREACH_SAFE(seg, &ecp->v_seg, seg_list, seg_temp) { - STAILQ_REMOVE(&ecp->v_seg, seg, segment, seg_list); - free(seg); - } - } - - /* Free symbol table buffers. */ - free_symtab(ecp); - - /* Free section name string table. */ - elftc_string_table_destroy(ecp->shstrtab->strtab); - - /* Free internal section list. */ - if (!TAILQ_EMPTY(&ecp->v_sec)) { - TAILQ_FOREACH_SAFE(sec, &ecp->v_sec, sec_list, sec_temp) { - TAILQ_REMOVE(&ecp->v_sec, sec, sec_list); - if (sec->buf != NULL) - free(sec->buf); - if (sec->newname != NULL) - free(sec->newname); - if (sec->pad != NULL) - free(sec->pad); - free(sec); - } - } - - ecp->symtab = NULL; - ecp->strtab = NULL; - ecp->shstrtab = NULL; - - if (ecp->secndx != NULL) { - free(ecp->secndx); - ecp->secndx = NULL; - } -} - -/* Create a temporary file. */ -void -create_tempfile(char **fn, int *fd) -{ - const char *tmpdir; - char *cp, *tmpf; - size_t tlen, plen; - -#define _TEMPFILE "ecp.XXXXXXXX" -#define _TEMPFILEPATH "/tmp/ecp.XXXXXXXX" - - if (fn == NULL || fd == NULL) - return; - /* Repect TMPDIR environment variable. */ - tmpdir = getenv("TMPDIR"); - if (tmpdir != NULL && *tmpdir != '\0') { - tlen = strlen(tmpdir); - plen = strlen(_TEMPFILE); - tmpf = malloc(tlen + plen + 2); - if (tmpf == NULL) - err(EXIT_FAILURE, "malloc failed"); - memcpy(tmpf, tmpdir, tlen); - cp = &tmpf[tlen - 1]; - if (*cp++ != '/') - *cp++ = '/'; - memcpy(cp, _TEMPFILE, plen); - cp[plen] = '\0'; - } else { - tmpf = strdup(_TEMPFILEPATH); - if (tmpf == NULL) - err(EXIT_FAILURE, "strdup failed"); - } - if ((*fd = mkstemp(tmpf)) == -1) - err(EXIT_FAILURE, "mkstemp %s failed", tmpf); - if (fchmod(*fd, 0644) == -1) - err(EXIT_FAILURE, "fchmod %s failed", tmpf); - *fn = tmpf; - -#undef _TEMPFILE -#undef _TEMPFILEPATH -} - -/* - * Copy temporary file with path src and file descriptor infd to path dst. - * If in_place is set act as if editing the file in place, avoiding rename() - * to preserve hard and symbolic links. Output file remains open, with file - * descriptor returned in outfd. - */ -static int -copy_from_tempfile(const char *src, const char *dst, int infd, int *outfd, - int in_place) -{ - int tmpfd; - - /* - * First, check if we can use rename(). - */ - if (in_place == 0) { - if (rename(src, dst) >= 0) { - *outfd = infd; - return (0); - } else if (errno != EXDEV) - return (-1); - - /* - * If the rename() failed due to 'src' and 'dst' residing in - * two different file systems, invoke a helper function in - * libelftc to do the copy. - */ - - if (unlink(dst) < 0) - return (-1); - } - - if ((tmpfd = open(dst, O_CREAT | O_TRUNC | O_WRONLY, 0755)) < 0) - return (-1); - - if (elftc_copyfile(infd, tmpfd) < 0) { - (void) close(tmpfd); - return (-1); - } - - /* - * Remove the temporary file from the file system - * namespace, and close its file descriptor. - */ - if (unlink(src) < 0) { - (void) close(tmpfd); - return (-1); - } - - (void) close(infd); - - /* - * Return the file descriptor for the destination. - */ - *outfd = tmpfd; - - return (0); -} - -static void -create_file(struct elfcopy *ecp, const char *src, const char *dst) -{ - struct stat sb; - char *tempfile, *elftemp; - int efd, ifd, ofd, ofd0, tfd; - int in_place; - - tempfile = NULL; - - if (src == NULL) - errx(EXIT_FAILURE, "internal: src == NULL"); - if ((ifd = open(src, O_RDONLY)) == -1) - err(EXIT_FAILURE, "open %s failed", src); - - if (fstat(ifd, &sb) == -1) - err(EXIT_FAILURE, "fstat %s failed", src); - - if (dst == NULL) - create_tempfile(&tempfile, &ofd); - else - if ((ofd = open(dst, O_RDWR|O_CREAT, 0755)) == -1) - err(EXIT_FAILURE, "open %s failed", dst); - -#ifndef LIBELF_AR - /* Detect and process ar(1) archive using libarchive. */ - if (ac_detect_ar(ifd)) { - ac_create_ar(ecp, ifd, ofd); - goto copy_done; - } -#endif - - if (lseek(ifd, 0, SEEK_SET) < 0) - err(EXIT_FAILURE, "lseek failed"); - - /* - * If input object is not ELF file, convert it to an intermediate - * ELF object before processing. - */ - if (ecp->itf != ETF_ELF) { - /* - * If the output object is not an ELF file, choose an arbitrary - * ELF format for the intermediate file. srec, ihex and binary - * formats are independent of class, endianness and machine - * type so these choices do not affect the output. - */ - if (ecp->otf != ETF_ELF) { - if (ecp->oec == ELFCLASSNONE) - ecp->oec = ELFCLASS64; - if (ecp->oed == ELFDATANONE) - ecp->oed = ELFDATA2LSB; - } - create_tempfile(&elftemp, &efd); - if ((ecp->eout = elf_begin(efd, ELF_C_WRITE, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - elf_flagelf(ecp->eout, ELF_C_SET, ELF_F_LAYOUT); - if (ecp->itf == ETF_BINARY) - create_elf_from_binary(ecp, ifd, src); - else if (ecp->itf == ETF_IHEX) - create_elf_from_ihex(ecp, ifd); - else if (ecp->itf == ETF_SREC) - create_elf_from_srec(ecp, ifd); - else - errx(EXIT_FAILURE, "Internal: invalid target flavour"); - elf_end(ecp->eout); - - /* Open intermediate ELF object as new input object. */ - close(ifd); - if ((ifd = open(elftemp, O_RDONLY)) == -1) - err(EXIT_FAILURE, "open %s failed", src); - close(efd); - if (unlink(elftemp) < 0) - err(EXIT_FAILURE, "unlink %s failed", elftemp); - free(elftemp); - } - - if ((ecp->ein = elf_begin(ifd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - - switch (elf_kind(ecp->ein)) { - case ELF_K_NONE: - errx(EXIT_FAILURE, "file format not recognized"); - case ELF_K_ELF: - if ((ecp->eout = elf_begin(ofd, ELF_C_WRITE, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - - /* elfcopy(1) manage ELF layout by itself. */ - elf_flagelf(ecp->eout, ELF_C_SET, ELF_F_LAYOUT); - - /* - * Create output ELF object. - */ - create_elf(ecp); - elf_end(ecp->eout); - - /* - * Convert the output ELF object to binary/srec/ihex if need. - */ - if (ecp->otf != ETF_ELF) { - /* - * Create (another) tempfile for binary/srec/ihex - * output object. - */ - if (tempfile != NULL) { - if (unlink(tempfile) < 0) - err(EXIT_FAILURE, "unlink %s failed", - tempfile); - free(tempfile); - } - create_tempfile(&tempfile, &ofd0); - - - /* - * Rewind the file descriptor being processed. - */ - if (lseek(ofd, 0, SEEK_SET) < 0) - err(EXIT_FAILURE, - "lseek failed for the output object"); - - /* - * Call flavour-specific conversion routine. - */ - switch (ecp->otf) { - case ETF_BINARY: - create_binary(ofd, ofd0); - break; - case ETF_IHEX: - create_ihex(ofd, ofd0); - break; - case ETF_SREC: - create_srec(ecp, ofd, ofd0, - dst != NULL ? dst : src); - break; - case ETF_PE: - case ETF_EFI: -#if WITH_PE - create_pe(ecp, ofd, ofd0); -#else - errx(EXIT_FAILURE, "PE/EFI support not enabled" - " at compile time"); -#endif - break; - default: - errx(EXIT_FAILURE, "Internal: unsupported" - " output flavour %d", ecp->oec); - } - - close(ofd); - ofd = ofd0; - } - - break; - - case ELF_K_AR: - /* XXX: Not yet supported. */ - break; - default: - errx(EXIT_FAILURE, "file format not supported"); - } - - elf_end(ecp->ein); - -#ifndef LIBELF_AR -copy_done: -#endif - - if (tempfile != NULL) { - in_place = 0; - if (dst == NULL) { - dst = src; - if (lstat(dst, &sb) != -1 && - (sb.st_nlink > 1 || S_ISLNK(sb.st_mode))) - in_place = 1; - } - - if (copy_from_tempfile(tempfile, dst, ofd, &tfd, in_place) < 0) - err(EXIT_FAILURE, "creation of %s failed", dst); - - free(tempfile); - tempfile = NULL; - - ofd = tfd; - } - - if (strcmp(dst, "/dev/null") && fchmod(ofd, sb.st_mode) == -1) - err(EXIT_FAILURE, "fchmod %s failed", dst); - - if ((ecp->flags & PRESERVE_DATE) && - elftc_set_timestamps(dst, &sb) < 0) - err(EXIT_FAILURE, "setting timestamps failed"); - - close(ifd); - close(ofd); -} - -static void -elfcopy_main(struct elfcopy *ecp, int argc, char **argv) -{ - struct sec_action *sac; - const char *infile, *outfile; - char *fn, *s; - int opt; - - while ((opt = getopt_long(argc, argv, "dB:gG:I:j:K:L:N:O:pR:s:SwW:xXV", - elfcopy_longopts, NULL)) != -1) { - switch(opt) { - case 'B': - /* ignored */ - break; - case 'R': - sac = lookup_sec_act(ecp, optarg, 1); - if (sac->copy != 0) - errx(EXIT_FAILURE, - "both copy and remove specified"); - sac->remove = 1; - ecp->flags |= SEC_REMOVE; - break; - case 'S': - ecp->strip = STRIP_ALL; - break; - case 'g': - ecp->strip = STRIP_DEBUG; - break; - case 'G': - ecp->flags |= KEEP_GLOBAL; - add_to_symop_list(ecp, optarg, NULL, SYMOP_KEEPG); - break; - case 'I': - case 's': - set_input_target(ecp, optarg); - break; - case 'j': - sac = lookup_sec_act(ecp, optarg, 1); - if (sac->remove != 0) - errx(EXIT_FAILURE, - "both copy and remove specified"); - sac->copy = 1; - ecp->flags |= SEC_COPY; - break; - case 'K': - add_to_symop_list(ecp, optarg, NULL, SYMOP_KEEP); - break; - case 'L': - add_to_symop_list(ecp, optarg, NULL, SYMOP_LOCALIZE); - break; - case 'N': - add_to_symop_list(ecp, optarg, NULL, SYMOP_STRIP); - break; - case 'O': - set_output_target(ecp, optarg); - break; - case 'p': - ecp->flags |= PRESERVE_DATE; - break; - case 'V': - print_version(); - break; - case 'w': - ecp->flags |= WILDCARD; - break; - case 'W': - add_to_symop_list(ecp, optarg, NULL, SYMOP_WEAKEN); - break; - case 'x': - ecp->flags |= DISCARD_LOCAL; - break; - case 'X': - ecp->flags |= DISCARD_LLABEL; - break; - case ECP_ADD_GNU_DEBUGLINK: - ecp->debuglink = optarg; - break; - case ECP_ADD_SECTION: - add_section(ecp, optarg); - break; - case ECP_CHANGE_ADDR: - ecp->change_addr = (int64_t) strtoll(optarg, NULL, 0); - break; - case ECP_CHANGE_SEC_ADDR: - parse_sec_address_op(ecp, opt, "--change-section-addr", - optarg); - break; - case ECP_CHANGE_SEC_LMA: - parse_sec_address_op(ecp, opt, "--change-section-lma", - optarg); - break; - case ECP_CHANGE_SEC_VMA: - parse_sec_address_op(ecp, opt, "--change-section-vma", - optarg); - break; - case ECP_CHANGE_START: - ecp->change_start = (int64_t) strtoll(optarg, NULL, 0); - break; - case ECP_CHANGE_WARN: - /* default */ - break; - case ECP_GAP_FILL: - ecp->fill = (uint8_t) strtoul(optarg, NULL, 0); - ecp->flags |= GAP_FILL; - break; - case ECP_GLOBALIZE_SYMBOL: - add_to_symop_list(ecp, optarg, NULL, SYMOP_GLOBALIZE); - break; - case ECP_GLOBALIZE_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_GLOBALIZE); - break; - case ECP_KEEP_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_KEEP); - break; - case ECP_KEEP_GLOBAL_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_KEEPG); - break; - case ECP_LOCALIZE_HIDDEN: - ecp->flags |= LOCALIZE_HIDDEN; - break; - case ECP_LOCALIZE_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_LOCALIZE); - break; - case ECP_NO_CHANGE_WARN: - ecp->flags |= NO_CHANGE_WARN; - break; - case ECP_ONLY_DEBUG: - ecp->strip = STRIP_NONDEBUG; - break; - case ECP_ONLY_DWO: - ecp->strip = STRIP_NONDWO; - break; - case ECP_PAD_TO: - ecp->pad_to = (uint64_t) strtoull(optarg, NULL, 0); - break; - case ECP_PREFIX_ALLOC: - ecp->prefix_alloc = optarg; - break; - case ECP_PREFIX_SEC: - ecp->prefix_sec = optarg; - break; - case ECP_PREFIX_SYM: - ecp->prefix_sym = optarg; - break; - case ECP_REDEF_SYMBOL: - if ((s = strchr(optarg, '=')) == NULL) - errx(EXIT_FAILURE, - "illegal format for --redefine-sym"); - *s++ = '\0'; - add_to_symop_list(ecp, optarg, s, SYMOP_REDEF); - break; - case ECP_REDEF_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_REDEF); - break; - case ECP_RENAME_SECTION: - if ((fn = strchr(optarg, '=')) == NULL) - errx(EXIT_FAILURE, - "illegal format for --rename-section"); - *fn++ = '\0'; - - /* Check for optional flags. */ - if ((s = strchr(fn, ',')) != NULL) - *s++ = '\0'; - - sac = lookup_sec_act(ecp, optarg, 1); - sac->rename = 1; - sac->newname = fn; - if (s != NULL) - parse_sec_flags(sac, s); - break; - case ECP_SET_OSABI: - set_osabi(ecp, optarg); - break; - case ECP_SET_SEC_FLAGS: - if ((s = strchr(optarg, '=')) == NULL) - errx(EXIT_FAILURE, - "illegal format for --set-section-flags"); - *s++ = '\0'; - sac = lookup_sec_act(ecp, optarg, 1); - parse_sec_flags(sac, s); - break; - case ECP_SET_START: - ecp->flags |= SET_START; - ecp->set_start = (uint64_t) strtoull(optarg, NULL, 0); - break; - case ECP_SREC_FORCE_S3: - ecp->flags |= SREC_FORCE_S3; - break; - case ECP_SREC_LEN: - ecp->flags |= SREC_FORCE_LEN; - ecp->srec_len = strtoul(optarg, NULL, 0); - break; - case ECP_STRIP_DWO: - ecp->strip = STRIP_DWO; - break; - case ECP_STRIP_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_STRIP); - break; - case ECP_STRIP_UNNEEDED: - ecp->strip = STRIP_UNNEEDED; - break; - case ECP_WEAKEN_ALL: - ecp->flags |= WEAKEN_ALL; - break; - case ECP_WEAKEN_SYMBOLS: - parse_symlist_file(ecp, optarg, SYMOP_WEAKEN); - break; - default: - elfcopy_usage(); - } - } - - argc -= optind; - argv += optind; - - if (argc == 0 || argc > 2) - elfcopy_usage(); - - infile = argv[0]; - outfile = NULL; - if (argc > 1) - outfile = argv[1]; - - create_file(ecp, infile, outfile); -} - -static void -mcs_main(struct elfcopy *ecp, int argc, char **argv) -{ - struct sec_action *sac; - const char *string; - int append, delete, compress, name, print; - int opt, i; - - append = delete = compress = name = print = 0; - string = NULL; - while ((opt = getopt_long(argc, argv, "a:cdhn:pV", mcs_longopts, - NULL)) != -1) { - switch(opt) { - case 'a': - append = 1; - string = optarg; /* XXX multiple -a not supported */ - break; - case 'c': - compress = 1; - break; - case 'd': - delete = 1; - break; - case 'n': - name = 1; - (void)lookup_sec_act(ecp, optarg, 1); - break; - case 'p': - print = 1; - break; - case 'V': - print_version(); - break; - case 'h': - default: - mcs_usage(); - } - } - - argc -= optind; - argv += optind; - - if (argc == 0) - mcs_usage(); - - /* Must specify one operation at least. */ - if (!append && !compress && !delete && !print) - mcs_usage(); - - /* - * If we are going to delete, ignore other operations. This is - * different from the Solaris implementation, which can print - * and delete a section at the same time, for example. Also, this - * implementation do not respect the order between operations that - * user specified, i.e., "mcs -pc a.out" equals to "mcs -cp a.out". - */ - if (delete) { - append = compress = print = 0; - ecp->flags |= SEC_REMOVE; - } - if (append) - ecp->flags |= SEC_APPEND; - if (compress) - ecp->flags |= SEC_COMPRESS; - if (print) - ecp->flags |= SEC_PRINT; - - /* .comment is the default section to operate on. */ - if (!name) - (void)lookup_sec_act(ecp, ".comment", 1); - - STAILQ_FOREACH(sac, &ecp->v_sac, sac_list) { - sac->append = append; - sac->compress = compress; - sac->print = print; - sac->remove = delete; - sac->string = string; - } - - for (i = 0; i < argc; i++) { - /* If only -p is specified, output to /dev/null */ - if (print && !append && !compress && !delete) - create_file(ecp, argv[i], "/dev/null"); - else - create_file(ecp, argv[i], NULL); - } -} - -static void -strip_main(struct elfcopy *ecp, int argc, char **argv) -{ - struct sec_action *sac; - const char *outfile; - int opt; - int i; - - outfile = NULL; - while ((opt = getopt_long(argc, argv, "hI:K:N:o:O:pR:sSdgVxXw", - strip_longopts, NULL)) != -1) { - switch(opt) { - case 'R': - sac = lookup_sec_act(ecp, optarg, 1); - sac->remove = 1; - ecp->flags |= SEC_REMOVE; - break; - case 's': - ecp->strip = STRIP_ALL; - break; - case 'S': - case 'g': - case 'd': - ecp->strip = STRIP_DEBUG; - break; - case 'I': - /* ignored */ - break; - case 'K': - add_to_symop_list(ecp, optarg, NULL, SYMOP_KEEP); - break; - case 'N': - add_to_symop_list(ecp, optarg, NULL, SYMOP_STRIP); - break; - case 'o': - outfile = optarg; - break; - case 'O': - set_output_target(ecp, optarg); - break; - case 'p': - ecp->flags |= PRESERVE_DATE; - break; - case 'V': - print_version(); - break; - case 'w': - ecp->flags |= WILDCARD; - break; - case 'x': - ecp->flags |= DISCARD_LOCAL; - break; - case 'X': - ecp->flags |= DISCARD_LLABEL; - break; - case ECP_ONLY_DEBUG: - ecp->strip = STRIP_NONDEBUG; - break; - case ECP_STRIP_UNNEEDED: - ecp->strip = STRIP_UNNEEDED; - break; - case 'h': - default: - strip_usage(); - } - } - - argc -= optind; - argv += optind; - - if (ecp->strip == 0 && - ((ecp->flags & DISCARD_LOCAL) == 0) && - ((ecp->flags & DISCARD_LLABEL) == 0) && - lookup_symop_list(ecp, NULL, SYMOP_STRIP) == NULL) - ecp->strip = STRIP_ALL; - if (argc == 0) - strip_usage(); - /* - * Only accept a single input file if an output file had been - * specified. - */ - if (outfile != NULL && argc != 1) - strip_usage(); - - for (i = 0; i < argc; i++) - create_file(ecp, argv[i], outfile); -} - -static void -parse_sec_flags(struct sec_action *sac, char *s) -{ - const char *flag; - int found, i; - - for (flag = strtok(s, ","); flag; flag = strtok(NULL, ",")) { - found = 0; - for (i = 0; sec_flags[i].name != NULL; i++) - if (strcasecmp(sec_flags[i].name, flag) == 0) { - sac->flags |= sec_flags[i].value; - found = 1; - break; - } - if (!found) - errx(EXIT_FAILURE, "unrecognized section flag %s", - flag); - } -} - -static void -parse_sec_address_op(struct elfcopy *ecp, int optnum, const char *optname, - char *s) -{ - struct sec_action *sac; - const char *name; - char *v; - char op; - - name = v = s; - do { - v++; - } while (*v != '\0' && *v != '=' && *v != '+' && *v != '-'); - if (*v == '\0' || *(v + 1) == '\0') - errx(EXIT_FAILURE, "invalid format for %s", optname); - op = *v; - *v++ = '\0'; - sac = lookup_sec_act(ecp, name, 1); - switch (op) { - case '=': - if (optnum == ECP_CHANGE_SEC_LMA || - optnum == ECP_CHANGE_SEC_ADDR) { - sac->setlma = 1; - sac->lma = (uint64_t) strtoull(v, NULL, 0); - } - if (optnum == ECP_CHANGE_SEC_VMA || - optnum == ECP_CHANGE_SEC_ADDR) { - sac->setvma = 1; - sac->vma = (uint64_t) strtoull(v, NULL, 0); - } - break; - case '+': - if (optnum == ECP_CHANGE_SEC_LMA || - optnum == ECP_CHANGE_SEC_ADDR) - sac->lma_adjust = (int64_t) strtoll(v, NULL, 0); - if (optnum == ECP_CHANGE_SEC_VMA || - optnum == ECP_CHANGE_SEC_ADDR) - sac->vma_adjust = (int64_t) strtoll(v, NULL, 0); - break; - case '-': - if (optnum == ECP_CHANGE_SEC_LMA || - optnum == ECP_CHANGE_SEC_ADDR) - sac->lma_adjust = (int64_t) -strtoll(v, NULL, 0); - if (optnum == ECP_CHANGE_SEC_VMA || - optnum == ECP_CHANGE_SEC_ADDR) - sac->vma_adjust = (int64_t) -strtoll(v, NULL, 0); - break; - default: - break; - } -} - -static void -parse_symlist_file(struct elfcopy *ecp, const char *fn, unsigned int op) -{ - struct symfile *sf; - struct stat sb; - FILE *fp; - char *data, *p, *line, *end, *e, *n; - - if (stat(fn, &sb) == -1) - err(EXIT_FAILURE, "stat %s failed", fn); - - /* Check if we already read and processed this file. */ - STAILQ_FOREACH(sf, &ecp->v_symfile, symfile_list) { - if (sf->dev == sb.st_dev && sf->ino == sb.st_ino) - goto process_symfile; - } - - if ((fp = fopen(fn, "r")) == NULL) - err(EXIT_FAILURE, "can not open %s", fn); - if ((data = malloc(sb.st_size + 1)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if (sb.st_size > 0) - if (fread(data, sb.st_size, 1, fp) != 1) - err(EXIT_FAILURE, "fread failed"); - fclose(fp); - data[sb.st_size] = '\0'; - - if ((sf = calloc(1, sizeof(*sf))) == NULL) - err(EXIT_FAILURE, "malloc failed"); - sf->dev = sb.st_dev; - sf->ino = sb.st_ino; - sf->size = sb.st_size + 1; - sf->data = data; - -process_symfile: - - /* - * Basically what we do here is to convert EOL to '\0', and remove - * leading and trailing whitespaces for each line. - */ - - end = sf->data + sf->size; - line = NULL; - for(p = sf->data; p < end; p++) { - if ((*p == '\t' || *p == ' ') && line == NULL) - continue; - if (*p == '\r' || *p == '\n' || *p == '\0') { - *p = '\0'; - if (line == NULL) - continue; - - /* Skip comment. */ - if (*line == '#') { - line = NULL; - continue; - } - - e = p - 1; - while(e != line && (*e == '\t' || *e == ' ')) - *e-- = '\0'; - if (op != SYMOP_REDEF) - add_to_symop_list(ecp, line, NULL, op); - else { - if (strlen(line) < 3) - errx(EXIT_FAILURE, - "illegal format for" - " --redefine-sym"); - for(n = line + 1; n < e; n++) { - if (*n == ' ' || *n == '\t') { - while(*n == ' ' || *n == '\t') - *n++ = '\0'; - break; - } - } - if (n >= e) - errx(EXIT_FAILURE, - "illegal format for" - " --redefine-sym"); - add_to_symop_list(ecp, line, n, op); - } - line = NULL; - continue; - } - - if (line == NULL) - line = p; - } -} - -static void -set_input_target(struct elfcopy *ecp, const char *target_name) -{ - Elftc_Bfd_Target *tgt; - - if ((tgt = elftc_bfd_find_target(target_name)) == NULL) - errx(EXIT_FAILURE, "%s: invalid target name", target_name); - ecp->itf = elftc_bfd_target_flavor(tgt); -} - -static void -set_output_target(struct elfcopy *ecp, const char *target_name) -{ - Elftc_Bfd_Target *tgt; - - if ((tgt = elftc_bfd_find_target(target_name)) == NULL) - errx(EXIT_FAILURE, "%s: invalid target name", target_name); - ecp->otf = elftc_bfd_target_flavor(tgt); - if (ecp->otf == ETF_ELF) { - ecp->oec = elftc_bfd_target_class(tgt); - ecp->oed = elftc_bfd_target_byteorder(tgt); - ecp->oem = elftc_bfd_target_machine(tgt); - } - if (ecp->otf == ETF_EFI || ecp->otf == ETF_PE) - ecp->oem = elftc_bfd_target_machine(tgt); - - ecp->otgt = target_name; -} - -static void -set_osabi(struct elfcopy *ecp, const char *abi) -{ - int i, found; - - found = 0; - for (i = 0; osabis[i].name != NULL; i++) - if (strcasecmp(osabis[i].name, abi) == 0) { - ecp->abi = osabis[i].abi; - found = 1; - break; - } - if (!found) - errx(EXIT_FAILURE, "unrecognized OSABI %s", abi); -} - -#define ELFCOPY_USAGE_MESSAGE "\ -Usage: %s [options] infile [outfile]\n\ - Transform object files.\n\n\ - Options:\n\ - -d | -g | --strip-debug Remove debugging information from the output.\n\ - -j SECTION | --only-section=SECTION\n\ - Copy only the named section to the output.\n\ - -p | --preserve-dates Preserve access and modification times.\n\ - -w | --wildcard Use shell-style patterns to name symbols.\n\ - -x | --discard-all Do not copy non-globals to the output.\n\ - -I FORMAT | --input-target=FORMAT\n\ - Specify object format for the input file.\n\ - -K SYM | --keep-symbol=SYM Copy symbol SYM to the output.\n\ - -L SYM | --localize-symbol=SYM\n\ - Make symbol SYM local to the output file.\n\ - -N SYM | --strip-symbol=SYM Do not copy symbol SYM to the output.\n\ - -O FORMAT | --output-target=FORMAT\n\ - Specify object format for the output file.\n\ - FORMAT should be a target name understood by\n\ - elftc_bfd_find_target(3).\n\ - -R NAME | --remove-section=NAME\n\ - Remove the named section.\n\ - -S | --strip-all Remove all symbol and relocation information\n\ - from the output.\n\ - -V | --version Print a version identifier and exit.\n\ - -W SYM | --weaken-symbol=SYM Mark symbol SYM as weak in the output.\n\ - -X | --discard-locals Do not copy compiler generated symbols to\n\ - the output.\n\ - --add-section NAME=FILE Add the contents of FILE to the ELF object as\n\ - a new section named NAME.\n\ - --adjust-section-vma SECTION{=,+,-}VAL | \\\n\ - --change-section-address SECTION{=,+,-}VAL\n\ - Set or adjust the VMA and the LMA of the\n\ - named section by VAL.\n\ - --adjust-start=INCR | --change-start=INCR\n\ - Add INCR to the start address for the ELF\n\ - object.\n\ - --adjust-vma=INCR | --change-addresses=INCR\n\ - Increase the VMA and LMA of all sections by\n\ - INCR.\n\ - --adjust-warning | --change-warnings\n\ - Issue warnings for non-existent sections.\n\ - --change-section-lma SECTION{=,+,-}VAL\n\ - Set or adjust the LMA address of the named\n\ - section by VAL.\n\ - --change-section-vma SECTION{=,+,-}VAL\n\ - Set or adjust the VMA address of the named\n\ - section by VAL.\n\ - --gap-fill=VAL Fill the gaps between sections with bytes\n\ - of value VAL.\n\ - --localize-hidden Make all hidden symbols local to the output\n\ - file.\n\ - --no-adjust-warning| --no-change-warnings\n\ - Do not issue warnings for non-existent\n\ - sections.\n\ - --only-keep-debug Copy only debugging information.\n\ - --output-target=FORMAT Use the specified format for the output.\n\ - --pad-to=ADDRESS Pad the output object up to the given address.\n\ - --prefix-alloc-sections=STRING\n\ - Prefix the section names of all the allocated\n\ - sections with STRING.\n\ - --prefix-sections=STRING Prefix the section names of all the sections\n\ - with STRING.\n\ - --prefix-symbols=STRING Prefix the symbol names of all the symbols\n\ - with STRING.\n\ - --rename-section OLDNAME=NEWNAME[,FLAGS]\n\ - Rename and optionally change section flags.\n\ - --set-section-flags SECTION=FLAGS\n\ - Set section flags for the named section.\n\ - Supported flags are: 'alloc', 'code',\n\ - 'contents', 'data', 'debug', 'load',\n\ - 'noload', 'readonly', 'rom', and 'shared'.\n\ - --set-start=ADDRESS Set the start address of the ELF object.\n\ - --srec-forceS3 Only generate S3 S-Records.\n\ - --srec-len=LEN Set the maximum length of a S-Record line.\n\ - --strip-unneeded Do not copy relocation information.\n" - -static void -elfcopy_usage(void) -{ - (void) fprintf(stderr, ELFCOPY_USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -#define MCS_USAGE_MESSAGE "\ -Usage: %s [options] file...\n\ - Manipulate the comment section in an ELF object.\n\n\ - Options:\n\ - -a STRING Append 'STRING' to the comment section.\n\ - -c Remove duplicate entries from the comment section.\n\ - -d Delete the comment section.\n\ - -h | --help Print a help message and exit.\n\ - -n NAME Operate on the ELF section with name 'NAME'.\n\ - -p Print the contents of the comment section.\n\ - -V | --version Print a version identifier and exit.\n" - -static void -mcs_usage(void) -{ - (void) fprintf(stderr, MCS_USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -#define STRIP_USAGE_MESSAGE "\ -Usage: %s [options] file...\n\ - Discard information from ELF objects.\n\n\ - Options:\n\ - -d | -g | -S | --strip-debug Remove debugging symbols.\n\ - -h | --help Print a help message.\n\ - -o FILE | --output-file FILE Write output to FILE.\n\ - --only-keep-debug Keep debugging information only.\n\ - -p | --preserve-dates Preserve access and modification times.\n\ - -s | --strip-all Remove all symbols.\n\ - --strip-unneeded Remove symbols not needed for relocation\n\ - processing.\n\ - -w | --wildcard Use shell-style patterns to name symbols.\n\ - -x | --discard-all Discard all non-global symbols.\n\ - -I TGT| --input-target=TGT (Accepted, but ignored).\n\ - -K SYM | --keep-symbol=SYM Keep symbol 'SYM' in the output.\n\ - -N SYM | --strip-symbol=SYM Remove symbol 'SYM' from the output.\n\ - -O TGT | --output-target=TGT Set the output file format to 'TGT'.\n\ - -R SEC | --remove-section=SEC Remove the section named 'SEC'.\n\ - -V | --version Print a version identifier and exit.\n\ - -X | --discard-locals Remove compiler-generated local symbols.\n" - -static void -strip_usage(void) -{ - (void) fprintf(stderr, STRIP_USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -static void -print_version(void) -{ - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(EXIT_SUCCESS); -} - -/* - * Compare the ending of s with end. - */ -static int -strrcmp(const char *s, const char *end) -{ - size_t endlen, slen; - - slen = strlen(s); - endlen = strlen(end); - - if (slen >= endlen) - s += slen - endlen; - return (strcmp(s, end)); -} - -int -main(int argc, char **argv) -{ - struct elfcopy *ecp; - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - ecp = calloc(1, sizeof(*ecp)); - if (ecp == NULL) - err(EXIT_FAILURE, "calloc failed"); - - ecp->itf = ecp->otf = ETF_ELF; - ecp->iec = ecp->oec = ELFCLASSNONE; - ecp->oed = ELFDATANONE; - ecp->abi = -1; - /* There is always an empty section. */ - ecp->nos = 1; - ecp->fill = 0; - - STAILQ_INIT(&ecp->v_seg); - STAILQ_INIT(&ecp->v_sac); - STAILQ_INIT(&ecp->v_sadd); - STAILQ_INIT(&ecp->v_symop); - STAILQ_INIT(&ecp->v_symfile); - STAILQ_INIT(&ecp->v_arobj); - TAILQ_INIT(&ecp->v_sec); - - if ((ecp->progname = ELFTC_GETPROGNAME()) == NULL) - ecp->progname = "elfcopy"; - - if (strrcmp(ecp->progname, "strip") == 0) - strip_main(ecp, argc, argv); - else if (strrcmp(ecp->progname, "mcs") == 0) - mcs_main(ecp, argc, argv); - else { - if (strrcmp(ecp->progname, "elfcopy") != 0 && - strrcmp(ecp->progname, "objcopy") != 0) - warnx("program mode not known, defaulting to elfcopy"); - elfcopy_main(ecp, argc, argv); - } - - free_sec_add(ecp); - free_sec_act(ecp); - free(ecp); - - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/elfcopy/mcs.1 b/contrib/elftoolchain/elfcopy/mcs.1 deleted file mode 100644 index c6bde623..00000000 --- a/contrib/elftoolchain/elfcopy/mcs.1 +++ /dev/null @@ -1,125 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY JOSEPH KOSHY ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL JOSEPH KOSHY BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 29, 2011 -.Dt MCS 1 -.Os -.Sh NAME -.Nm mcs -.Nd manipulate the comment section of an ELF object -.Sh SYNOPSIS -.Nm -.Op Fl a Ar string -.Op Fl c -.Op Fl n Ar name -.Op Fl p -.Ar -.Nm -.Fl d -.Op Fl n Ar name -.Ar -.Nm -.Fl h | Fl -help -.Nm -.Fl V | Fl -version -.Sh DESCRIPTION -The -.Nm -utility is used to manipulate comment sections in an ELF object. -If a command-line argument -.Ar file -names an -.Xr ar 1 -archive, then -.Nm -will operate on the ELF objects contained in the archive. -.Pp -By default -.Nm -operates on the ELF section named -.Dq .comment . -This may be changed using the -.Fl n -option. -.Pp -The -.Nm -utility supports the following options: -.Bl -tag -width ".Fl a Ar string" -.It Fl a Ar string -Append the text in -.Ar string -to the comment section. -This option may be specified multiple times. -.It Fl c -Compress the comment section by removing duplicate entries. -.It Fl d -Delete the comment section from the ELF object. -.It Fl h | Fl -help -Display a usage message and exit. -.It Fl n Ar name -Operate on the section named -.Ar name . -.It Fl p -Print the contents of the comment section. -This step is taken after actions specified by the -.Fl a -and -.Fl c -options (if any) are completed. -.It Fl V | Fl -version -Print a version identifier and exit. -.El -.Sh COMPATIBILITY -The behavior of the -.Nm -utility differs from its SVR4 counterpart in the following ways: -.Bl -bullet -compact -.It -If the -.Fl d -option is specified, it causes any -.Fl a , -.Fl c -and -.Fl p -options present to be ignored. -.It -The order of options -.Fl a , -.Fl c , -.Fl d , -and -.Fl p -on the command line is not significant. -.El -.Sh DIAGNOSTICS -.Ex -std -.Sh SEE ALSO -.Xr ar 1 , -.Xr elfcopy 1 , -.Xr ld 1 , -.Xr nm 1 , -.Xr strip 1 diff --git a/contrib/elftoolchain/elfcopy/os.FreeBSD.mk b/contrib/elftoolchain/elfcopy/os.FreeBSD.mk deleted file mode 100644 index 389cb59e..00000000 --- a/contrib/elftoolchain/elfcopy/os.FreeBSD.mk +++ /dev/null @@ -1,4 +0,0 @@ -.if !defined(LIBELF_AR) -DPADD+= ${LIBBZ2} -LDADD+= -lbz2 -.endif diff --git a/contrib/elftoolchain/elfcopy/pe.c b/contrib/elftoolchain/elfcopy/pe.c deleted file mode 100644 index d8363242..00000000 --- a/contrib/elftoolchain/elfcopy/pe.c +++ /dev/null @@ -1,236 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -/* Convert ELF object to Portable Executable (PE). */ -void -create_pe(struct elfcopy *ecp, int ifd, int ofd) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - GElf_Ehdr eh; - GElf_Shdr sh; - PE *pe; - PE_Scn *ps; - PE_SecHdr psh; - PE_CoffHdr pch; - PE_OptHdr poh; - PE_Object po; - PE_Buffer *pb; - const char *name; - size_t indx; - time_t timestamp; - int elferr; - - if (ecp->otf == ETF_EFI || ecp->oem == EM_X86_64) - po = PE_O_PE32P; - else - po = PE_O_PE32; - - if ((e = elf_begin(ifd, ELF_C_READ, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_begin() failed: %s", - elf_errmsg(-1)); - - if (gelf_getehdr(e, &eh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - if (elf_getshstrndx(e, &indx) == 0) - errx(EXIT_FAILURE, "elf_getshstrndx() failed: %s", - elf_errmsg(-1)); - - if ((pe = pe_init(ofd, PE_C_WRITE, po)) == NULL) - err(EXIT_FAILURE, "pe_init() failed"); - - /* Setup PE COFF header. */ - memset(&pch, 0, sizeof(pch)); - switch (ecp->oem) { - case EM_386: - pch.ch_machine = IMAGE_FILE_MACHINE_I386; - break; - case EM_X86_64: - pch.ch_machine = IMAGE_FILE_MACHINE_AMD64; - break; - default: - pch.ch_machine = IMAGE_FILE_MACHINE_UNKNOWN; - break; - } - if (elftc_timestamp(×tamp) != 0) - err(EXIT_FAILURE, "elftc_timestamp"); - pch.ch_timestamp = (uint32_t) timestamp; - if (pe_update_coff_header(pe, &pch) < 0) - err(EXIT_FAILURE, "pe_update_coff_header() failed"); - - /* Setup PE optional header. */ - memset(&poh, 0, sizeof(poh)); - if (ecp->otf == ETF_EFI) - poh.oh_subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION; - poh.oh_entry = (uint32_t) eh.e_entry; - - /* - * Default section alignment and file alignment. (Here the - * section alignment is set to the default page size of the - * archs supported. We should use different section alignment - * for some arch. (e.g. IA64) - */ - poh.oh_secalign = 0x1000; - poh.oh_filealign = 0x200; - - /* Copy sections. */ - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - - /* - * Read in ELF section. - */ - - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr() failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((name = elf_strptr(e, indx, sh.sh_name)) == - NULL) { - warnx("elf_strptr() failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - - /* Skip sections unneeded. */ - if (strcmp(name, ".shstrtab") == 0 || - strcmp(name, ".symtab") == 0 || - strcmp(name, ".strtab") == 0) - continue; - - if ((d = elf_getdata(scn, NULL)) == NULL) { - warnx("elf_getdata() failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - - if (strcmp(name, ".text") == 0) { - poh.oh_textbase = (uint32_t) sh.sh_addr; - poh.oh_textsize = (uint32_t) roundup(sh.sh_size, - poh.oh_filealign); - } else { - if (po == PE_O_PE32 && strcmp(name, ".data") == 0) - poh.oh_database = sh.sh_addr; - if (sh.sh_type == SHT_NOBITS) - poh.oh_bsssize += (uint32_t) - roundup(sh.sh_size, poh.oh_filealign); - else if (sh.sh_flags & SHF_ALLOC) - poh.oh_datasize += (uint32_t) - roundup(sh.sh_size, poh.oh_filealign); - } - - /* - * Create PE/COFF section. - */ - - if ((ps = pe_newscn(pe)) == NULL) { - warn("pe_newscn() failed"); - continue; - } - - /* - * Setup PE/COFF section header. The section name is not - * NUL-terminated if its length happens to be 8. Long - * section name should be truncated for PE image according - * to the PE/COFF specification. - */ - memset(&psh, 0, sizeof(psh)); - strncpy(psh.sh_name, name, sizeof(psh.sh_name)); - psh.sh_addr = sh.sh_addr; - psh.sh_virtsize = sh.sh_size; - if (sh.sh_type != SHT_NOBITS) - psh.sh_rawsize = roundup(sh.sh_size, poh.oh_filealign); - else - psh.sh_char |= IMAGE_SCN_CNT_UNINITIALIZED_DATA; - - /* - * Translate ELF section flags to PE/COFF section flags. - */ - psh.sh_char |= IMAGE_SCN_MEM_READ; - if (sh.sh_flags & SHF_WRITE) - psh.sh_char |= IMAGE_SCN_MEM_WRITE; - if (sh.sh_flags & SHF_EXECINSTR) - psh.sh_char |= IMAGE_SCN_MEM_EXECUTE | - IMAGE_SCN_CNT_CODE; - if ((sh.sh_flags & SHF_ALLOC) && (psh.sh_char & 0xF0) == 0) - psh.sh_char |= IMAGE_SCN_CNT_INITIALIZED_DATA; - - /* Mark relocation section "discardable". */ - if (strcmp(name, ".reloc") == 0) - psh.sh_char |= IMAGE_SCN_MEM_DISCARDABLE; - - if (pe_update_section_header(ps, &psh) < 0) { - warn("pe_update_section_header() failed"); - continue; - } - - /* Copy section content. */ - if ((pb = pe_newbuffer(ps)) == NULL) { - warn("pe_newbuffer() failed"); - continue; - } - pb->pb_align = 1; - pb->pb_off = 0; - if (sh.sh_type != SHT_NOBITS) { - pb->pb_size = roundup(sh.sh_size, poh.oh_filealign); - if ((pb->pb_buf = calloc(1, pb->pb_size)) == NULL) { - warn("calloc failed"); - continue; - } - memcpy(pb->pb_buf, d->d_buf, sh.sh_size); - } - } - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn() failed: %s", elf_errmsg(elferr)); - - /* Update PE optional header. */ - if (pe_update_opt_header(pe, &poh) < 0) - err(EXIT_FAILURE, "pe_update_opt_header() failed"); - - /* Write out PE/COFF object. */ - if (pe_update(pe) < 0) - err(EXIT_FAILURE, "pe_update() failed"); - - pe_finish(pe); - elf_end(e); -} diff --git a/contrib/elftoolchain/elfcopy/sections.c b/contrib/elftoolchain/elfcopy/sections.c deleted file mode 100644 index 6870a0ae..00000000 --- a/contrib/elftoolchain/elfcopy/sections.c +++ /dev/null @@ -1,1693 +0,0 @@ -/*- - * Copyright (c) 2007-2011,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -static void add_gnu_debuglink(struct elfcopy *ecp); -static uint32_t calc_crc32(const char *p, size_t len, uint32_t crc); -static void check_section_rename(struct elfcopy *ecp, struct section *s); -static void filter_reloc(struct elfcopy *ecp, struct section *s); -static int get_section_flags(struct elfcopy *ecp, const char *name); -static void insert_sections(struct elfcopy *ecp); -static int is_append_section(struct elfcopy *ecp, const char *name); -static int is_compress_section(struct elfcopy *ecp, const char *name); -static int is_debug_section(const char *name); -static int is_dwo_section(const char *name); -static int is_modify_section(struct elfcopy *ecp, const char *name); -static int is_print_section(struct elfcopy *ecp, const char *name); -static void modify_section(struct elfcopy *ecp, struct section *s); -static void pad_section(struct elfcopy *ecp, struct section *s); -static void print_data(const char *d, size_t sz); -static void print_section(struct section *s); -static void *read_section(struct section *s, size_t *size); -static void set_shstrtab(struct elfcopy *ecp); -static void update_reloc(struct elfcopy *ecp, struct section *s); -static void update_section_group(struct elfcopy *ecp, struct section *s); - -int -is_remove_section(struct elfcopy *ecp, const char *name) -{ - - /* Always keep section name table */ - if (strcmp(name, ".shstrtab") == 0) - return 0; - if (strcmp(name, ".symtab") == 0 || - strcmp(name, ".strtab") == 0) { - if (ecp->strip == STRIP_ALL && lookup_symop_list( - ecp, NULL, SYMOP_KEEP) == NULL) - return (1); - else - return (0); - } - - if (ecp->strip == STRIP_DWO && is_dwo_section(name)) - return (1); - if (ecp->strip == STRIP_NONDWO && !is_dwo_section(name)) - return (1); - - if (is_debug_section(name)) { - if (ecp->strip == STRIP_ALL || - ecp->strip == STRIP_DEBUG || - ecp->strip == STRIP_UNNEEDED || - (ecp->flags & DISCARD_LOCAL)) - return (1); - if (ecp->strip == STRIP_NONDEBUG) - return (0); - } - - if ((ecp->flags & SEC_REMOVE) || (ecp->flags & SEC_COPY)) { - struct sec_action *sac; - - sac = lookup_sec_act(ecp, name, 0); - if ((ecp->flags & SEC_REMOVE) && sac != NULL && sac->remove) - return (1); - if ((ecp->flags & SEC_COPY) && (sac == NULL || !sac->copy)) - return (1); - } - - return (0); -} - -/* - * Relocation section needs to be removed if the section it applies to - * will be removed. - */ -int -is_remove_reloc_sec(struct elfcopy *ecp, uint32_t sh_info) -{ - const char *name; - GElf_Shdr ish; - Elf_Scn *is; - size_t indx; - int elferr; - - if (elf_getshstrndx(ecp->ein, &indx) == 0) - errx(EXIT_FAILURE, "elf_getshstrndx failed: %s", - elf_errmsg(-1)); - - is = elf_getscn(ecp->ein, sh_info); - if (is != NULL) { - if (gelf_getshdr(is, &ish) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr failed: %s", - elf_errmsg(-1)); - if ((name = elf_strptr(ecp->ein, indx, ish.sh_name)) == - NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - if (is_remove_section(ecp, name)) - return (1); - else - return (0); - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); - - /* Remove reloc section if we can't find the target section. */ - return (1); -} - -static int -is_append_section(struct elfcopy *ecp, const char *name) -{ - struct sec_action *sac; - - sac = lookup_sec_act(ecp, name, 0); - if (sac != NULL && sac->append != 0 && sac->string != NULL) - return (1); - - return (0); -} - -static int -is_compress_section(struct elfcopy *ecp, const char *name) -{ - struct sec_action *sac; - - sac = lookup_sec_act(ecp, name, 0); - if (sac != NULL && sac->compress != 0) - return (1); - - return (0); -} - -static void -check_section_rename(struct elfcopy *ecp, struct section *s) -{ - struct sec_action *sac; - char *prefix; - size_t namelen; - - if (s->pseudo) - return; - - sac = lookup_sec_act(ecp, s->name, 0); - if (sac != NULL && sac->rename) - s->name = sac->newname; - - if (!strcmp(s->name, ".symtab") || - !strcmp(s->name, ".strtab") || - !strcmp(s->name, ".shstrtab")) - return; - - prefix = NULL; - if (s->loadable && ecp->prefix_alloc != NULL) - prefix = ecp->prefix_alloc; - else if (ecp->prefix_sec != NULL) - prefix = ecp->prefix_sec; - - if (prefix != NULL) { - namelen = strlen(s->name) + strlen(prefix) + 1; - if ((s->newname = malloc(namelen)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - snprintf(s->newname, namelen, "%s%s", prefix, s->name); - s->name = s->newname; - } -} - -static int -get_section_flags(struct elfcopy *ecp, const char *name) -{ - struct sec_action *sac; - - sac = lookup_sec_act(ecp, name, 0); - if (sac != NULL && sac->flags) - return sac->flags; - - return (0); -} - -/* - * Determine whether the section are debugging section. - * According to libbfd, debugging sections are recognized - * only by name. - */ -static int -is_debug_section(const char *name) -{ - const char *dbg_sec[] = { - ".apple_", - ".debug", - ".gnu.linkonce.wi.", - ".line", - ".stab", - NULL - }; - const char **p; - - for(p = dbg_sec; *p; p++) { - if (strncmp(name, *p, strlen(*p)) == 0) - return (1); - } - - return (0); -} - -static int -is_dwo_section(const char *name) -{ - size_t len; - - if ((len = strlen(name)) > 4 && strcmp(name + len - 4, ".dwo") == 0) - return (1); - return (0); -} - -static int -is_print_section(struct elfcopy *ecp, const char *name) -{ - struct sec_action *sac; - - sac = lookup_sec_act(ecp, name, 0); - if (sac != NULL && sac->print != 0) - return (1); - - return (0); -} - -static int -is_modify_section(struct elfcopy *ecp, const char *name) -{ - - if (is_append_section(ecp, name) || - is_compress_section(ecp, name)) - return (1); - - return (0); -} - -struct sec_action* -lookup_sec_act(struct elfcopy *ecp, const char *name, int add) -{ - struct sec_action *sac; - - if (name == NULL) - return NULL; - - STAILQ_FOREACH(sac, &ecp->v_sac, sac_list) { - if (strcmp(name, sac->name) == 0) - return sac; - } - - if (add == 0) - return NULL; - - if ((sac = malloc(sizeof(*sac))) == NULL) - errx(EXIT_FAILURE, "not enough memory"); - memset(sac, 0, sizeof(*sac)); - sac->name = name; - STAILQ_INSERT_TAIL(&ecp->v_sac, sac, sac_list); - - return (sac); -} - -void -free_sec_act(struct elfcopy *ecp) -{ - struct sec_action *sac, *sac_temp; - - STAILQ_FOREACH_SAFE(sac, &ecp->v_sac, sac_list, sac_temp) { - STAILQ_REMOVE(&ecp->v_sac, sac, sec_action, sac_list); - free(sac); - } -} - -void -insert_to_sec_list(struct elfcopy *ecp, struct section *sec, int tail) -{ - struct section *s; - - if (tail || TAILQ_EMPTY(&ecp->v_sec) || - TAILQ_LAST(&ecp->v_sec, sectionlist)->off <= sec->off) { - TAILQ_INSERT_TAIL(&ecp->v_sec, sec, sec_list); - } else { - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (sec->off < s->off) { - TAILQ_INSERT_BEFORE(s, sec, sec_list); - break; - } - } - } - - if (sec->pseudo == 0) - ecp->nos++; -} - -/* - * First step of section creation: create scn and internal section - * structure, discard sections to be removed. - */ -void -create_scn(struct elfcopy *ecp) -{ - struct section *s; - const char *name; - Elf_Scn *is; - GElf_Shdr ish; - size_t indx; - uint64_t oldndx, newndx; - int elferr, sec_flags, reorder; - - /* - * Insert a pseudo section that contains the ELF header - * and program header. Used as reference for section offset - * or load address adjustment. - */ - if ((s = calloc(1, sizeof(*s))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - s->off = 0; - s->sz = gelf_fsize(ecp->eout, ELF_T_EHDR, 1, EV_CURRENT) + - gelf_fsize(ecp->eout, ELF_T_PHDR, ecp->ophnum, EV_CURRENT); - s->align = 1; - s->pseudo = 1; - s->loadable = add_to_inseg_list(ecp, s); - insert_to_sec_list(ecp, s, 0); - - /* Create internal .shstrtab section. */ - init_shstrtab(ecp); - - if (elf_getshstrndx(ecp->ein, &indx) == 0) - errx(EXIT_FAILURE, "elf_getshstrndx failed: %s", - elf_errmsg(-1)); - - reorder = 0; - is = NULL; - while ((is = elf_nextscn(ecp->ein, is)) != NULL) { - if (gelf_getshdr(is, &ish) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr failed: %s", - elf_errmsg(-1)); - if ((name = elf_strptr(ecp->ein, indx, ish.sh_name)) == NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - - /* Skip sections to be removed. */ - if (is_remove_section(ecp, name)) - continue; - - /* - * Relocation section need to be remove if the section - * it applies will be removed. - */ - if (ish.sh_type == SHT_REL || ish.sh_type == SHT_RELA) - if (ish.sh_info != 0 && - is_remove_reloc_sec(ecp, ish.sh_info)) - continue; - - /* - * Section groups should be removed if symbol table will - * be removed. (section group's signature stored in symbol - * table) - */ - if (ish.sh_type == SHT_GROUP && ecp->strip == STRIP_ALL) - continue; - - /* Get section flags set by user. */ - sec_flags = get_section_flags(ecp, name); - - /* Create internal section object. */ - if (strcmp(name, ".shstrtab") != 0) { - if ((s = calloc(1, sizeof(*s))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - s->name = name; - s->is = is; - s->off = ish.sh_offset; - s->sz = ish.sh_size; - s->align = ish.sh_addralign; - s->type = ish.sh_type; - s->flags = ish.sh_flags; - s->vma = ish.sh_addr; - - /* - * Search program headers to determine whether section - * is loadable, but if user explicitly set section flags - * while neither "load" nor "alloc" is set, we make the - * section unloadable. - * - * Sections in relocatable object is loadable if - * section flag SHF_ALLOC is set. - */ - if (sec_flags && - (sec_flags & (SF_LOAD | SF_ALLOC)) == 0) - s->loadable = 0; - else { - s->loadable = add_to_inseg_list(ecp, s); - if ((ecp->flags & RELOCATABLE) && - (ish.sh_flags & SHF_ALLOC)) - s->loadable = 1; - } - } else { - /* Assuming .shstrtab is "unloadable". */ - s = ecp->shstrtab; - s->off = ish.sh_offset; - } - - oldndx = newndx = SHN_UNDEF; - if (strcmp(name, ".symtab") != 0 && - strcmp(name, ".strtab") != 0) { - if (!strcmp(name, ".shstrtab")) { - /* - * Add sections specified by --add-section and - * gnu debuglink. we want these sections have - * smaller index than .shstrtab section. - */ - if (ecp->debuglink != NULL) - add_gnu_debuglink(ecp); - if (ecp->flags & SEC_ADD) - insert_sections(ecp); - } - if ((s->os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn failed: %s", - elf_errmsg(-1)); - if ((newndx = elf_ndxscn(s->os)) == SHN_UNDEF) - errx(EXIT_FAILURE, "elf_ndxscn failed: %s", - elf_errmsg(-1)); - } - if ((oldndx = elf_ndxscn(is)) == SHN_UNDEF) - errx(EXIT_FAILURE, "elf_ndxscn failed: %s", - elf_errmsg(-1)); - if (oldndx != SHN_UNDEF && newndx != SHN_UNDEF) - ecp->secndx[oldndx] = newndx; - - /* - * If strip action is STRIP_NONDEBUG(only keep debug), - * change sections type of loadable sections and section - * groups to SHT_NOBITS, and the content of those sections - * will be discarded. However, SHT_NOTE sections should - * be kept. - */ - if (ecp->strip == STRIP_NONDEBUG) { - if (((ish.sh_flags & SHF_ALLOC) || - (ish.sh_flags & SHF_GROUP)) && - ish.sh_type != SHT_NOTE) - s->type = SHT_NOBITS; - } - - check_section_rename(ecp, s); - - /* create section header based on input object. */ - if (strcmp(name, ".symtab") != 0 && - strcmp(name, ".strtab") != 0 && - strcmp(name, ".shstrtab") != 0) { - copy_shdr(ecp, s, NULL, 0, sec_flags); - /* - * elfcopy puts .symtab, .strtab and .shstrtab - * sections in the end of the output object. - * If the input objects have more sections - * after any of these 3 sections, the section - * table will be reordered. section symbols - * should be regenerated for relocations. - */ - if (reorder) - ecp->flags &= ~SYMTAB_INTACT; - } else - reorder = 1; - - if (strcmp(name, ".symtab") == 0) { - ecp->flags |= SYMTAB_EXIST; - ecp->symtab = s; - } - if (strcmp(name, ".strtab") == 0) - ecp->strtab = s; - - insert_to_sec_list(ecp, s, 0); - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); -} - -struct section * -insert_shtab(struct elfcopy *ecp, int tail) -{ - struct section *s, *shtab; - GElf_Ehdr ieh; - int nsecs; - - /* - * Treat section header table as a "pseudo" section, insert it - * into section list, so later it will get sorted and resynced - * just as normal sections. - */ - if ((shtab = calloc(1, sizeof(*shtab))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - if (!tail) { - /* - * "shoff" of input object is used as a hint for section - * resync later. - */ - if (gelf_getehdr(ecp->ein, &ieh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - shtab->off = ieh.e_shoff; - } else - shtab->off = 0; - /* Calculate number of sections in the output object. */ - nsecs = 0; - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (!s->pseudo) - nsecs++; - } - /* Remember there is always a null section, so we +1 here. */ - shtab->sz = gelf_fsize(ecp->eout, ELF_T_SHDR, nsecs + 1, EV_CURRENT); - if (shtab->sz == 0) - errx(EXIT_FAILURE, "gelf_fsize() failed: %s", elf_errmsg(-1)); - shtab->align = (ecp->oec == ELFCLASS32 ? 4 : 8); - shtab->loadable = 0; - shtab->pseudo = 1; - insert_to_sec_list(ecp, shtab, tail); - - return (shtab); -} - -void -copy_content(struct elfcopy *ecp) -{ - struct section *s; - - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - /* Skip pseudo section. */ - if (s->pseudo) - continue; - - /* Skip special sections. */ - if (strcmp(s->name, ".symtab") == 0 || - strcmp(s->name, ".strtab") == 0 || - strcmp(s->name, ".shstrtab") == 0) - continue; - - /* - * If strip action is STRIP_ALL, relocation info need - * to be stripped. Skip filtering otherwisw. - */ - if (ecp->strip == STRIP_ALL && - (s->type == SHT_REL || s->type == SHT_RELA)) - filter_reloc(ecp, s); - - /* - * The section indices in the SHT_GROUP section needs - * to be updated since we might have stripped some - * sections and changed section numbering. - */ - if (s->type == SHT_GROUP) - update_section_group(ecp, s); - - if (is_modify_section(ecp, s->name)) - modify_section(ecp, s); - - copy_data(s); - - /* - * If symbol table is modified, relocation info might - * need update, as symbol index may have changed. - */ - if ((ecp->flags & SYMTAB_INTACT) == 0 && - (ecp->flags & SYMTAB_EXIST) && - (s->type == SHT_REL || s->type == SHT_RELA)) - update_reloc(ecp, s); - - if (is_print_section(ecp, s->name)) - print_section(s); - } -} - - -/* - * Update section group section. The section indices in the SHT_GROUP - * section need update after section numbering changed. - */ -static void -update_section_group(struct elfcopy *ecp, struct section *s) -{ - GElf_Shdr ish; - Elf_Data *id; - uint32_t *ws, *wd; - uint64_t n; - size_t ishnum; - int i, j; - - if (!elf_getshnum(ecp->ein, &ishnum)) - errx(EXIT_FAILURE, "elf_getshnum failed: %s", - elf_errmsg(-1)); - - if (gelf_getshdr(s->is, &ish) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - if ((id = elf_getdata(s->is, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_getdata() failed: %s", - elf_errmsg(-1)); - - if (ish.sh_size == 0) - return; - - if (ish.sh_entsize == 0) - ish.sh_entsize = 4; - - ws = id->d_buf; - - /* We only support COMDAT section. */ - if ((*ws & GRP_COMDAT) == 0) - return; - - if ((s->buf = malloc(ish.sh_size)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - - s->sz = ish.sh_size; - - wd = s->buf; - - /* Copy the flag word as-is. */ - *wd = *ws; - - /* Update the section indices. */ - n = ish.sh_size / ish.sh_entsize; - for(i = 1, j = 1; (uint64_t)i < n; i++) { - if (ws[i] != SHN_UNDEF && ws[i] < ishnum && - ecp->secndx[ws[i]] != 0) - wd[j++] = ecp->secndx[ws[i]]; - else - s->sz -= 4; - } - - s->nocopy = 1; -} - -/* - * Filter relocation entries, only keep those entries whose - * symbol is in the keep list. - */ -static void -filter_reloc(struct elfcopy *ecp, struct section *s) -{ - const char *name; - GElf_Shdr ish; - GElf_Rel rel; - GElf_Rela rela; - Elf32_Rel *rel32; - Elf64_Rel *rel64; - Elf32_Rela *rela32; - Elf64_Rela *rela64; - Elf_Data *id; - uint64_t cap, n, nrels, sym; - int elferr, i; - - if (gelf_getshdr(s->is, &ish) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - - /* We don't want to touch relocation info for dynamic symbols. */ - if ((ecp->flags & SYMTAB_EXIST) == 0) { - /* - * No symbol table in output. If sh_link points to a section - * that exists in the output object, this relocation section - * is for dynamic symbols. Don't touch it. - */ - if (ish.sh_link != 0 && ecp->secndx[ish.sh_link] != 0) - return; - } else { - /* Symbol table exist, check if index equals. */ - if (ish.sh_link != elf_ndxscn(ecp->symtab->is)) - return; - } - -#define COPYREL(REL, SZ) do { \ - if (nrels == 0) { \ - if ((REL##SZ = malloc(cap * \ - sizeof(*REL##SZ))) == NULL) \ - err(EXIT_FAILURE, "malloc failed"); \ - } \ - if (nrels >= cap) { \ - cap *= 2; \ - if ((REL##SZ = realloc(REL##SZ, cap * \ - sizeof(*REL##SZ))) == NULL) \ - err(EXIT_FAILURE, "realloc failed"); \ - } \ - REL##SZ[nrels].r_offset = REL.r_offset; \ - REL##SZ[nrels].r_info = REL.r_info; \ - if (s->type == SHT_RELA) \ - rela##SZ[nrels].r_addend = rela.r_addend; \ - nrels++; \ -} while (0) - - nrels = 0; - cap = 4; /* keep list is usually small. */ - rel32 = NULL; - rel64 = NULL; - rela32 = NULL; - rela64 = NULL; - if ((id = elf_getdata(s->is, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_getdata() failed: %s", - elf_errmsg(-1)); - n = ish.sh_size / ish.sh_entsize; - for(i = 0; (uint64_t)i < n; i++) { - if (s->type == SHT_REL) { - if (gelf_getrel(id, i, &rel) != &rel) - errx(EXIT_FAILURE, "gelf_getrel failed: %s", - elf_errmsg(-1)); - sym = GELF_R_SYM(rel.r_info); - } else { - if (gelf_getrela(id, i, &rela) != &rela) - errx(EXIT_FAILURE, "gelf_getrel failed: %s", - elf_errmsg(-1)); - sym = GELF_R_SYM(rela.r_info); - } - /* - * If a relocation references a symbol and we are omitting - * either that symbol or the entire symbol table we cannot - * produce valid output, and so just omit the relocation. - * Broken output like this is generally not useful, but some - * uses of elfcopy/strip rely on it - for example, GCC's build - * process uses it to check for build reproducibility by - * stripping objects and comparing them. - * - * Relocations that do not reference a symbol are retained. - */ - if (sym != 0) { - if (ish.sh_link == 0 || ecp->secndx[ish.sh_link] == 0) - continue; - name = elf_strptr(ecp->ein, elf_ndxscn(ecp->strtab->is), - sym); - if (name == NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - if (lookup_symop_list(ecp, name, SYMOP_KEEP) == NULL) - continue; - } - if (ecp->oec == ELFCLASS32) { - if (s->type == SHT_REL) - COPYREL(rel, 32); - else - COPYREL(rela, 32); - } else { - if (s->type == SHT_REL) - COPYREL(rel, 64); - else - COPYREL(rela, 64); - } - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_getdata() failed: %s", - elf_errmsg(elferr)); - - if (ecp->oec == ELFCLASS32) { - if (s->type == SHT_REL) - s->buf = rel32; - else - s->buf = rela32; - } else { - if (s->type == SHT_REL) - s->buf = rel64; - else - s->buf = rela64; - } - s->sz = gelf_fsize(ecp->eout, (s->type == SHT_REL ? ELF_T_REL : - ELF_T_RELA), nrels, EV_CURRENT); - s->nocopy = 1; -} - -static void -update_reloc(struct elfcopy *ecp, struct section *s) -{ - GElf_Shdr osh; - GElf_Rel rel; - GElf_Rela rela; - Elf_Data *od; - uint64_t n; - int i; - -#define UPDATEREL(REL) do { \ - if (gelf_get##REL(od, i, &REL) != &REL) \ - errx(EXIT_FAILURE, "gelf_get##REL failed: %s", \ - elf_errmsg(-1)); \ - REL.r_info = GELF_R_INFO(ecp->symndx[GELF_R_SYM(REL.r_info)], \ - GELF_R_TYPE(REL.r_info)); \ - if (!gelf_update_##REL(od, i, &REL)) \ - errx(EXIT_FAILURE, "gelf_update_##REL failed: %s", \ - elf_errmsg(-1)); \ -} while(0) - - if (s->sz == 0) - return; - if (gelf_getshdr(s->os, &osh) == NULL) - errx(EXIT_FAILURE, "gelf_getehdr() failed: %s", - elf_errmsg(-1)); - /* Only process .symtab reloc info. */ - if (osh.sh_link != elf_ndxscn(ecp->symtab->is)) - return; - if ((od = elf_getdata(s->os, NULL)) == NULL) - errx(EXIT_FAILURE, "elf_getdata() failed: %s", - elf_errmsg(-1)); - n = osh.sh_size / osh.sh_entsize; - for(i = 0; (uint64_t)i < n; i++) { - if (s->type == SHT_REL) - UPDATEREL(rel); - else - UPDATEREL(rela); - } -} - -static void -pad_section(struct elfcopy *ecp, struct section *s) -{ - GElf_Shdr osh; - Elf_Data *od; - - if (s == NULL || s->pad_sz == 0) - return; - - if ((s->pad = malloc(s->pad_sz)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - memset(s->pad, ecp->fill, s->pad_sz); - - /* Create a new Elf_Data to contain the padding bytes. */ - if ((od = elf_newdata(s->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s", - elf_errmsg(-1)); - od->d_align = 1; - od->d_off = s->sz; - od->d_buf = s->pad; - od->d_type = ELF_T_BYTE; - od->d_size = s->pad_sz; - od->d_version = EV_CURRENT; - - /* Update section header. */ - if (gelf_getshdr(s->os, &osh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - osh.sh_size = s->sz + s->pad_sz; - if (!gelf_update_shdr(s->os, &osh)) - errx(EXIT_FAILURE, "elf_update_shdr failed: %s", - elf_errmsg(-1)); -} - -void -resync_sections(struct elfcopy *ecp) -{ - struct section *s, *ps; - GElf_Shdr osh; - uint64_t off; - int first; - - ps = NULL; - first = 1; - off = 0; - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (first) { - off = s->off; - first = 0; - } - - /* - * Ignore TLS sections with load address 0 and without - * content. We don't need to adjust their file offset or - * VMA, only the size matters. - */ - if (s->seg_tls != NULL && s->type == SHT_NOBITS && - s->off == 0) - continue; - - /* Align section offset. */ - if (s->align == 0) - s->align = 1; - if (off <= s->off) { - if (!s->loadable || (ecp->flags & RELOCATABLE)) - s->off = roundup(off, s->align); - } else { - if (s->loadable && (ecp->flags & RELOCATABLE) == 0) - warnx("moving loadable section %s, " - "is this intentional?", s->name); - s->off = roundup(off, s->align); - } - - /* Calculate next section offset. */ - off = s->off; - if (s->pseudo || (s->type != SHT_NOBITS && s->type != SHT_NULL)) - off += s->sz; - - if (s->pseudo) { - ps = NULL; - continue; - } - - /* Count padding bytes added through --pad-to. */ - if (s->pad_sz > 0) - off += s->pad_sz; - - /* Update section header accordingly. */ - if (gelf_getshdr(s->os, &osh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - osh.sh_addr = s->vma; - osh.sh_offset = s->off; - osh.sh_size = s->sz; - if (!gelf_update_shdr(s->os, &osh)) - errx(EXIT_FAILURE, "elf_update_shdr failed: %s", - elf_errmsg(-1)); - - /* Add padding for previous section, if need. */ - if (ps != NULL) { - if (ps->pad_sz > 0) { - /* Apply padding added by --pad-to. */ - pad_section(ecp, ps); - } else if ((ecp->flags & GAP_FILL) && - (ps->off + ps->sz < s->off)) { - /* - * Fill the gap between sections by padding - * the section with lower address. - */ - ps->pad_sz = s->off - (ps->off + ps->sz); - pad_section(ecp, ps); - } - } - - ps = s; - } - - /* Pad the last section, if need. */ - if (ps != NULL && ps->pad_sz > 0) - pad_section(ecp, ps); -} - -static void -modify_section(struct elfcopy *ecp, struct section *s) -{ - struct sec_action *sac; - size_t srcsz, dstsz, p, len; - char *b, *c, *d, *src, *end; - int dupe; - - src = read_section(s, &srcsz); - if (src == NULL || srcsz == 0) { - /* For empty section, we proceed if we need to append. */ - if (!is_append_section(ecp, s->name)) - return; - } - - /* Allocate buffer needed for new section data. */ - dstsz = srcsz; - if (is_append_section(ecp, s->name)) { - sac = lookup_sec_act(ecp, s->name, 0); - dstsz += strlen(sac->string) + 1; - } - if ((b = malloc(dstsz)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - s->buf = b; - - /* Compress section. */ - p = 0; - if (is_compress_section(ecp, s->name)) { - end = src + srcsz; - for(c = src; c < end;) { - len = 0; - while(c + len < end && c[len] != '\0') - len++; - if (c + len == end) { - /* XXX should we warn here? */ - strncpy(&b[p], c, len); - p += len; - break; - } - dupe = 0; - for (d = b; d < b + p; ) { - if (strcmp(d, c) == 0) { - dupe = 1; - break; - } - d += strlen(d) + 1; - } - if (!dupe) { - strncpy(&b[p], c, len); - b[p + len] = '\0'; - p += len + 1; - } - c += len + 1; - } - } else { - memcpy(b, src, srcsz); - p += srcsz; - } - - /* Append section. */ - if (is_append_section(ecp, s->name)) { - sac = lookup_sec_act(ecp, s->name, 0); - len = strlen(sac->string); - memcpy(&b[p], sac->string, len); - b[p + len] = '\0'; - p += len + 1; - } - - s->sz = p; - s->nocopy = 1; -} - -static void -print_data(const char *d, size_t sz) -{ - const char *c; - - for (c = d; c < d + sz; c++) { - if (*c == '\0') - putchar('\n'); - else - putchar(*c); - } -} - -static void -print_section(struct section *s) -{ - Elf_Data *id; - int elferr; - - if (s->buf != NULL && s->sz > 0) { - print_data(s->buf, s->sz); - } else { - id = NULL; - while ((id = elf_getdata(s->is, id)) != NULL || - (id = elf_rawdata(s->is, id)) != NULL) { - (void) elf_errno(); - print_data(id->d_buf, id->d_size); - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_getdata() failed: %s", - elf_errmsg(elferr)); - } - putchar('\n'); -} - -static void * -read_section(struct section *s, size_t *size) -{ - Elf_Data *id; - char *b; - size_t sz; - int elferr; - - sz = 0; - b = NULL; - id = NULL; - while ((id = elf_getdata(s->is, id)) != NULL || - (id = elf_rawdata(s->is, id)) != NULL) { - (void) elf_errno(); - if (b == NULL) - b = malloc(id->d_size); - else - b = realloc(b, sz + id->d_size); - if (b == NULL) - err(EXIT_FAILURE, "malloc or realloc failed"); - - memcpy(&b[sz], id->d_buf, id->d_size); - sz += id->d_size; - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_getdata() failed: %s", - elf_errmsg(elferr)); - - *size = sz; - - return (b); -} - -void -copy_shdr(struct elfcopy *ecp, struct section *s, const char *name, int copy, - int sec_flags) -{ - GElf_Shdr ish, osh; - - if (gelf_getshdr(s->is, &ish) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - if (gelf_getshdr(s->os, &osh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - - if (copy) - (void) memcpy(&osh, &ish, sizeof(ish)); - else { - osh.sh_type = s->type; - osh.sh_addr = s->vma; - osh.sh_offset = s->off; - osh.sh_size = s->sz; - osh.sh_link = ish.sh_link; - osh.sh_info = ish.sh_info; - osh.sh_addralign = s->align; - osh.sh_entsize = ish.sh_entsize; - - if (sec_flags) { - osh.sh_flags = 0; - if (sec_flags & SF_ALLOC) - osh.sh_flags |= SHF_ALLOC; - if ((sec_flags & SF_READONLY) == 0) - osh.sh_flags |= SHF_WRITE; - if (sec_flags & SF_CODE) - osh.sh_flags |= SHF_EXECINSTR; - if ((sec_flags & SF_CONTENTS) && - s->type == SHT_NOBITS && s->sz > 0) { - /* - * Convert SHT_NOBITS section to section with - * (zero'ed) content on file. - */ - osh.sh_type = s->type = SHT_PROGBITS; - if ((s->buf = calloc(1, s->sz)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - s->nocopy = 1; - } - } else { - osh.sh_flags = ish.sh_flags; - /* - * Newer binutils as(1) emits the section flag - * SHF_INFO_LINK for relocation sections. elfcopy - * emits this flag in the output section if it's - * missing in the input section, to remain compatible - * with binutils. - */ - if (ish.sh_type == SHT_REL || ish.sh_type == SHT_RELA) - osh.sh_flags |= SHF_INFO_LINK; - } - } - - if (name == NULL) - add_to_shstrtab(ecp, s->name); - else - add_to_shstrtab(ecp, name); - - if (!gelf_update_shdr(s->os, &osh)) - errx(EXIT_FAILURE, "elf_update_shdr failed: %s", - elf_errmsg(-1)); -} - -void -copy_data(struct section *s) -{ - Elf_Data *id, *od; - int elferr; - - if (s->nocopy && s->buf == NULL) - return; - - if ((id = elf_getdata(s->is, NULL)) == NULL) { - (void) elf_errno(); - if ((id = elf_rawdata(s->is, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "failed to read section:" - " %s", s->name); - return; - } - } - - if ((od = elf_newdata(s->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s", - elf_errmsg(-1)); - - if (s->nocopy) { - /* Use s->buf as content if s->nocopy is set. */ - od->d_align = id->d_align; - od->d_off = 0; - od->d_buf = s->buf; - od->d_type = id->d_type; - od->d_size = s->sz; - od->d_version = id->d_version; - } else { - od->d_align = id->d_align; - od->d_off = id->d_off; - od->d_buf = id->d_buf; - od->d_type = id->d_type; - od->d_size = id->d_size; - od->d_version = id->d_version; - } - - /* - * Alignment Fixup. libelf does not allow the alignment for - * Elf_Data descriptor to be set to 0. In this case we workaround - * it by setting the alignment to 1. - * - * According to the ELF ABI, alignment 0 and 1 has the same - * meaning: the section has no alignment constraints. - */ - if (od->d_align == 0) - od->d_align = 1; -} - -struct section * -create_external_section(struct elfcopy *ecp, const char *name, char *newname, - void *buf, uint64_t size, uint64_t off, uint64_t stype, Elf_Type dtype, - uint64_t flags, uint64_t align, uint64_t vma, int loadable) -{ - struct section *s; - Elf_Scn *os; - Elf_Data *od; - GElf_Shdr osh; - - if ((os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn() failed: %s", - elf_errmsg(-1)); - if ((s = calloc(1, sizeof(*s))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - s->name = name; - s->newname = newname; /* needs to be free()'ed */ - s->off = off; - s->sz = size; - s->vma = vma; - s->align = align; - s->loadable = loadable; - s->is = NULL; - s->os = os; - s->type = stype; - s->nocopy = 1; - insert_to_sec_list(ecp, s, 1); - - if (gelf_getshdr(os, &osh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - osh.sh_flags = flags; - osh.sh_type = s->type; - osh.sh_addr = s->vma; - osh.sh_addralign = s->align; - if (!gelf_update_shdr(os, &osh)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); - add_to_shstrtab(ecp, name); - - if (buf != NULL && size != 0) { - if ((od = elf_newdata(os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s", - elf_errmsg(-1)); - od->d_align = align; - od->d_off = 0; - od->d_buf = buf; - od->d_size = size; - od->d_type = dtype; - od->d_version = EV_CURRENT; - } - - /* - * Clear SYMTAB_INTACT, as we probably need to update/add new - * STT_SECTION symbols into the symbol table. - */ - ecp->flags &= ~SYMTAB_INTACT; - - return (s); -} - -/* - * Insert sections specified by --add-section to the end of section list. - */ -static void -insert_sections(struct elfcopy *ecp) -{ - struct sec_add *sa; - struct section *s; - size_t off; - uint64_t stype; - - /* Put these sections in the end of current list. */ - off = 0; - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (s->type != SHT_NOBITS && s->type != SHT_NULL) - off = s->off + s->sz; - else - off = s->off; - } - - STAILQ_FOREACH(sa, &ecp->v_sadd, sadd_list) { - - /* TODO: Add section header vma/lma, flag changes here */ - - /* - * The default section type for user added section is - * SHT_PROGBITS. If the section name match certain patterns, - * elfcopy will try to set a more appropriate section type. - * However, data type is always set to ELF_T_BYTE and no - * translation is performed by libelf. - */ - stype = SHT_PROGBITS; - if (strcmp(sa->name, ".note") == 0 || - strncmp(sa->name, ".note.", strlen(".note.")) == 0) - stype = SHT_NOTE; - - (void) create_external_section(ecp, sa->name, NULL, sa->content, - sa->size, off, stype, ELF_T_BYTE, 0, 1, 0, 0); - } -} - -void -add_to_shstrtab(struct elfcopy *ecp, const char *name) -{ - - if (elftc_string_table_insert(ecp->shstrtab->strtab, name) == 0) - errx(EXIT_FAILURE, "elftc_string_table_insert failed"); -} - -void -update_shdr(struct elfcopy *ecp, int update_link) -{ - struct section *s; - GElf_Shdr osh; - int elferr; - - /* Finalize the section name string table (.shstrtab). */ - set_shstrtab(ecp); - - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (s->pseudo) - continue; - - if (gelf_getshdr(s->os, &osh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr failed: %s", - elf_errmsg(-1)); - - /* Find section name in string table and set sh_name. */ - osh.sh_name = elftc_string_table_lookup(ecp->shstrtab->strtab, - s->name); - - /* - * sh_link needs to be updated, since the index of the - * linked section might have changed. - */ - if (update_link && osh.sh_link != 0) - osh.sh_link = ecp->secndx[osh.sh_link]; - - /* - * sh_info of relocation section links to the section to which - * its relocation info applies. So it may need update as well. - */ - if ((s->type == SHT_REL || s->type == SHT_RELA) && - osh.sh_info != 0) - osh.sh_info = ecp->secndx[osh.sh_info]; - - /* - * sh_info of SHT_GROUP section needs to point to the correct - * string in the symbol table. - */ - if (s->type == SHT_GROUP && (ecp->flags & SYMTAB_EXIST) && - (ecp->flags & SYMTAB_INTACT) == 0) - osh.sh_info = ecp->symndx[osh.sh_info]; - - if (!gelf_update_shdr(s->os, &osh)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); -} - -void -init_shstrtab(struct elfcopy *ecp) -{ - Elf_Scn *shstrtab; - GElf_Shdr shdr; - struct section *s; - size_t indx, sizehint; - - if (elf_getshdrstrndx(ecp->ein, &indx) == 0) { - shstrtab = elf_getscn(ecp->ein, indx); - if (shstrtab == NULL) - errx(EXIT_FAILURE, "elf_getscn failed: %s", - elf_errmsg(-1)); - if (gelf_getshdr(shstrtab, &shdr) != &shdr) - errx(EXIT_FAILURE, "gelf_getshdr failed: %s", - elf_errmsg(-1)); - sizehint = shdr.sh_size; - } else { - /* Clear the error from elf_getshdrstrndx(3). */ - (void)elf_errno(); - sizehint = 0; - } - - if ((ecp->shstrtab = calloc(1, sizeof(*ecp->shstrtab))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - s = ecp->shstrtab; - s->name = ".shstrtab"; - s->is = NULL; - s->sz = 0; - s->align = 1; - s->loadable = 0; - s->type = SHT_STRTAB; - s->vma = 0; - s->strtab = elftc_string_table_create(sizehint); - - add_to_shstrtab(ecp, ".symtab"); - add_to_shstrtab(ecp, ".strtab"); - add_to_shstrtab(ecp, ".shstrtab"); -} - -static void -set_shstrtab(struct elfcopy *ecp) -{ - struct section *s; - Elf_Data *data; - GElf_Shdr sh; - const char *image; - size_t sz; - - s = ecp->shstrtab; - - if (s->os == NULL) { - /* Input object does not contain .shstrtab section */ - if ((s->os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn failed: %s", - elf_errmsg(-1)); - insert_to_sec_list(ecp, s, 1); - } - - if (gelf_getshdr(s->os, &sh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - sh.sh_addr = 0; - sh.sh_addralign = 1; - sh.sh_offset = s->off; - sh.sh_type = SHT_STRTAB; - sh.sh_flags = 0; - sh.sh_entsize = 0; - sh.sh_info = 0; - sh.sh_link = 0; - - if ((data = elf_newdata(s->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s", - elf_errmsg(-1)); - - /* - * If we don't have a symbol table, skip those a few bytes - * which are reserved for this in the beginning of shstrtab. - */ - if (!(ecp->flags & SYMTAB_EXIST)) { - elftc_string_table_remove(s->strtab, ".symtab"); - elftc_string_table_remove(s->strtab, ".strtab"); - } - - image = elftc_string_table_image(s->strtab, &sz); - s->sz = sz; - - sh.sh_size = sz; - if (!gelf_update_shdr(s->os, &sh)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); - - data->d_align = 1; - data->d_buf = (void *)(uintptr_t)image; - data->d_size = sz; - data->d_off = 0; - data->d_type = ELF_T_BYTE; - data->d_version = EV_CURRENT; - - if (!elf_setshstrndx(ecp->eout, elf_ndxscn(s->os))) - errx(EXIT_FAILURE, "elf_setshstrndx() failed: %s", - elf_errmsg(-1)); -} - -void -add_section(struct elfcopy *ecp, const char *arg) -{ - struct sec_add *sa; - struct stat sb; - const char *s, *fn; - FILE *fp; - int len; - - if ((s = strchr(arg, '=')) == NULL) - errx(EXIT_FAILURE, - "illegal format for --add-section option"); - if ((sa = malloc(sizeof(*sa))) == NULL) - err(EXIT_FAILURE, "malloc failed"); - - len = s - arg; - if ((sa->name = malloc(len + 1)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - strncpy(sa->name, arg, len); - sa->name[len] = '\0'; - - fn = s + 1; - if (stat(fn, &sb) == -1) - err(EXIT_FAILURE, "stat failed"); - sa->size = sb.st_size; - if (sa->size > 0) { - if ((sa->content = malloc(sa->size)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if ((fp = fopen(fn, "r")) == NULL) - err(EXIT_FAILURE, "can not open %s", fn); - if (fread(sa->content, 1, sa->size, fp) == 0 || - ferror(fp)) - err(EXIT_FAILURE, "fread failed"); - fclose(fp); - } else - sa->content = NULL; - - STAILQ_INSERT_TAIL(&ecp->v_sadd, sa, sadd_list); - ecp->flags |= SEC_ADD; -} - -void -free_sec_add(struct elfcopy *ecp) -{ - struct sec_add *sa, *sa_temp; - - STAILQ_FOREACH_SAFE(sa, &ecp->v_sadd, sadd_list, sa_temp) { - STAILQ_REMOVE(&ecp->v_sadd, sa, sec_add, sadd_list); - free(sa->name); - free(sa->content); - free(sa); - } -} - -static void -add_gnu_debuglink(struct elfcopy *ecp) -{ - struct sec_add *sa; - struct stat sb; - FILE *fp; - char *fnbase, *buf; - int crc_off; - int crc; - - if (ecp->debuglink == NULL) - return; - - /* Read debug file content. */ - if ((sa = malloc(sizeof(*sa))) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if ((sa->name = strdup(".gnu_debuglink")) == NULL) - err(EXIT_FAILURE, "strdup failed"); - if (stat(ecp->debuglink, &sb) == -1) - err(EXIT_FAILURE, "stat failed"); - if (sb.st_size == 0) - errx(EXIT_FAILURE, "empty debug link target %s", - ecp->debuglink); - if ((buf = malloc(sb.st_size)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - if ((fp = fopen(ecp->debuglink, "r")) == NULL) - err(EXIT_FAILURE, "can not open %s", ecp->debuglink); - if (fread(buf, 1, sb.st_size, fp) == 0 || - ferror(fp)) - err(EXIT_FAILURE, "fread failed"); - fclose(fp); - - /* Calculate crc checksum. */ - crc = calc_crc32(buf, sb.st_size, 0xFFFFFFFF); - free(buf); - - /* Calculate section size and the offset to store crc checksum. */ - if ((fnbase = basename(ecp->debuglink)) == NULL) - err(EXIT_FAILURE, "basename failed"); - crc_off = roundup(strlen(fnbase) + 1, 4); - sa->size = crc_off + 4; - - /* Section content. */ - if ((sa->content = calloc(1, sa->size)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - memcpy(sa->content, fnbase, strlen(fnbase)); - if (ecp->oed == ELFDATA2LSB) { - sa->content[crc_off] = crc & 0xFF; - sa->content[crc_off + 1] = (crc >> 8) & 0xFF; - sa->content[crc_off + 2] = (crc >> 16) & 0xFF; - sa->content[crc_off + 3] = crc >> 24; - } else { - sa->content[crc_off] = crc >> 24; - sa->content[crc_off + 1] = (crc >> 16) & 0xFF; - sa->content[crc_off + 2] = (crc >> 8) & 0xFF; - sa->content[crc_off + 3] = crc & 0xFF; - } - - STAILQ_INSERT_TAIL(&ecp->v_sadd, sa, sadd_list); - ecp->flags |= SEC_ADD; -} - -static uint32_t crctable[256] = -{ - 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL, - 0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L, - 0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L, - 0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L, - 0x1DB71064L, 0x6AB020F2L, 0xF3B97148L, 0x84BE41DEL, - 0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L, - 0x136C9856L, 0x646BA8C0L, 0xFD62F97AL, 0x8A65C9ECL, - 0x14015C4FL, 0x63066CD9L, 0xFA0F3D63L, 0x8D080DF5L, - 0x3B6E20C8L, 0x4C69105EL, 0xD56041E4L, 0xA2677172L, - 0x3C03E4D1L, 0x4B04D447L, 0xD20D85FDL, 0xA50AB56BL, - 0x35B5A8FAL, 0x42B2986CL, 0xDBBBC9D6L, 0xACBCF940L, - 0x32D86CE3L, 0x45DF5C75L, 0xDCD60DCFL, 0xABD13D59L, - 0x26D930ACL, 0x51DE003AL, 0xC8D75180L, 0xBFD06116L, - 0x21B4F4B5L, 0x56B3C423L, 0xCFBA9599L, 0xB8BDA50FL, - 0x2802B89EL, 0x5F058808L, 0xC60CD9B2L, 0xB10BE924L, - 0x2F6F7C87L, 0x58684C11L, 0xC1611DABL, 0xB6662D3DL, - 0x76DC4190L, 0x01DB7106L, 0x98D220BCL, 0xEFD5102AL, - 0x71B18589L, 0x06B6B51FL, 0x9FBFE4A5L, 0xE8B8D433L, - 0x7807C9A2L, 0x0F00F934L, 0x9609A88EL, 0xE10E9818L, - 0x7F6A0DBBL, 0x086D3D2DL, 0x91646C97L, 0xE6635C01L, - 0x6B6B51F4L, 0x1C6C6162L, 0x856530D8L, 0xF262004EL, - 0x6C0695EDL, 0x1B01A57BL, 0x8208F4C1L, 0xF50FC457L, - 0x65B0D9C6L, 0x12B7E950L, 0x8BBEB8EAL, 0xFCB9887CL, - 0x62DD1DDFL, 0x15DA2D49L, 0x8CD37CF3L, 0xFBD44C65L, - 0x4DB26158L, 0x3AB551CEL, 0xA3BC0074L, 0xD4BB30E2L, - 0x4ADFA541L, 0x3DD895D7L, 0xA4D1C46DL, 0xD3D6F4FBL, - 0x4369E96AL, 0x346ED9FCL, 0xAD678846L, 0xDA60B8D0L, - 0x44042D73L, 0x33031DE5L, 0xAA0A4C5FL, 0xDD0D7CC9L, - 0x5005713CL, 0x270241AAL, 0xBE0B1010L, 0xC90C2086L, - 0x5768B525L, 0x206F85B3L, 0xB966D409L, 0xCE61E49FL, - 0x5EDEF90EL, 0x29D9C998L, 0xB0D09822L, 0xC7D7A8B4L, - 0x59B33D17L, 0x2EB40D81L, 0xB7BD5C3BL, 0xC0BA6CADL, - 0xEDB88320L, 0x9ABFB3B6L, 0x03B6E20CL, 0x74B1D29AL, - 0xEAD54739L, 0x9DD277AFL, 0x04DB2615L, 0x73DC1683L, - 0xE3630B12L, 0x94643B84L, 0x0D6D6A3EL, 0x7A6A5AA8L, - 0xE40ECF0BL, 0x9309FF9DL, 0x0A00AE27L, 0x7D079EB1L, - 0xF00F9344L, 0x8708A3D2L, 0x1E01F268L, 0x6906C2FEL, - 0xF762575DL, 0x806567CBL, 0x196C3671L, 0x6E6B06E7L, - 0xFED41B76L, 0x89D32BE0L, 0x10DA7A5AL, 0x67DD4ACCL, - 0xF9B9DF6FL, 0x8EBEEFF9L, 0x17B7BE43L, 0x60B08ED5L, - 0xD6D6A3E8L, 0xA1D1937EL, 0x38D8C2C4L, 0x4FDFF252L, - 0xD1BB67F1L, 0xA6BC5767L, 0x3FB506DDL, 0x48B2364BL, - 0xD80D2BDAL, 0xAF0A1B4CL, 0x36034AF6L, 0x41047A60L, - 0xDF60EFC3L, 0xA867DF55L, 0x316E8EEFL, 0x4669BE79L, - 0xCB61B38CL, 0xBC66831AL, 0x256FD2A0L, 0x5268E236L, - 0xCC0C7795L, 0xBB0B4703L, 0x220216B9L, 0x5505262FL, - 0xC5BA3BBEL, 0xB2BD0B28L, 0x2BB45A92L, 0x5CB36A04L, - 0xC2D7FFA7L, 0xB5D0CF31L, 0x2CD99E8BL, 0x5BDEAE1DL, - 0x9B64C2B0L, 0xEC63F226L, 0x756AA39CL, 0x026D930AL, - 0x9C0906A9L, 0xEB0E363FL, 0x72076785L, 0x05005713L, - 0x95BF4A82L, 0xE2B87A14L, 0x7BB12BAEL, 0x0CB61B38L, - 0x92D28E9BL, 0xE5D5BE0DL, 0x7CDCEFB7L, 0x0BDBDF21L, - 0x86D3D2D4L, 0xF1D4E242L, 0x68DDB3F8L, 0x1FDA836EL, - 0x81BE16CDL, 0xF6B9265BL, 0x6FB077E1L, 0x18B74777L, - 0x88085AE6L, 0xFF0F6A70L, 0x66063BCAL, 0x11010B5CL, - 0x8F659EFFL, 0xF862AE69L, 0x616BFFD3L, 0x166CCF45L, - 0xA00AE278L, 0xD70DD2EEL, 0x4E048354L, 0x3903B3C2L, - 0xA7672661L, 0xD06016F7L, 0x4969474DL, 0x3E6E77DBL, - 0xAED16A4AL, 0xD9D65ADCL, 0x40DF0B66L, 0x37D83BF0L, - 0xA9BCAE53L, 0xDEBB9EC5L, 0x47B2CF7FL, 0x30B5FFE9L, - 0xBDBDF21CL, 0xCABAC28AL, 0x53B39330L, 0x24B4A3A6L, - 0xBAD03605L, 0xCDD70693L, 0x54DE5729L, 0x23D967BFL, - 0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L, - 0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL -}; - -static uint32_t -calc_crc32(const char *p, size_t len, uint32_t crc) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - crc = crctable[(crc ^ *p++) & 0xFFL] ^ (crc >> 8); - } - - return (crc ^ 0xFFFFFFFF); -} diff --git a/contrib/elftoolchain/elfcopy/segments.c b/contrib/elftoolchain/elfcopy/segments.c deleted file mode 100644 index d37088a7..00000000 --- a/contrib/elftoolchain/elfcopy/segments.c +++ /dev/null @@ -1,592 +0,0 @@ -/*- - * Copyright (c) 2007-2010,2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -static void insert_to_inseg_list(struct segment *seg, struct section *sec); - -/* - * elfcopy's segment handling is relatively simpler and less powerful than - * libbfd. Program headers are modified or copied from input to output objects, - * but never re-generated. As a result, if the input object has incorrect - * program headers, the output object's program headers will remain incorrect - * or become even worse. - */ - -/* - * Check whether a section is "loadable". If so, add it to the - * corresponding segment list(s) and return 1. - */ -int -add_to_inseg_list(struct elfcopy *ecp, struct section *s) -{ - struct segment *seg; - int loadable; - - if (ecp->ophnum == 0) - return (0); - - /* - * Segment is a different view of an ELF object. One segment can - * contain one or more sections, and one section can be included - * in one or more segments, or not included in any segment at all. - * We call those sections which can be found in one or more segments - * "loadable" sections, and call the rest "unloadable" sections. - * We keep track of "loadable" sections in their containing - * segment(s)' v_sec queue. These information are later used to - * recalculate the extents of segments, when sections are removed, - * for example. - */ - loadable = 0; - STAILQ_FOREACH(seg, &ecp->v_seg, seg_list) { - if (s->off < seg->off || (s->vma < seg->vaddr && !s->pseudo)) - continue; - if (s->off + s->sz > seg->off + seg->fsz && - s->type != SHT_NOBITS) - continue; - if (s->vma + s->sz > seg->vaddr + seg->msz) - continue; - if (seg->type == PT_TLS && ((s->flags & SHF_TLS) == 0)) - continue; - - insert_to_inseg_list(seg, s); - if (seg->type == PT_LOAD) - s->seg = seg; - else if (seg->type == PT_TLS) - s->seg_tls = seg; - if (s->pseudo) - s->vma = seg->vaddr + (s->off - seg->off); - if (seg->paddr > 0) - s->lma = seg->paddr + (s->off - seg->off); - else - s->lma = 0; - loadable = 1; - } - - return (loadable); -} - -void -adjust_addr(struct elfcopy *ecp) -{ - struct section *s, *s0; - struct segment *seg; - struct sec_action *sac; - uint64_t dl, vma, lma, start, end; - int found, i; - - /* - * Apply VMA and global LMA changes in the first iteration. - */ - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - - /* Only adjust loadable section's address. */ - if (!s->loadable) - continue; - - /* Apply global VMA adjustment. */ - if (ecp->change_addr != 0) - s->vma += ecp->change_addr; - - /* Apply global LMA adjustment. */ - if (ecp->change_addr != 0 && s->seg != NULL && - s->seg->paddr > 0) - s->lma += ecp->change_addr; - } - - /* - * Apply sections VMA change in the second iteration. - */ - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - - if (!s->loadable) - continue; - - /* - * Check if there is a VMA change request for this - * section. - */ - sac = lookup_sec_act(ecp, s->name, 0); - if (sac == NULL) - continue; - vma = s->vma; - if (sac->setvma) - vma = sac->vma; - if (sac->vma_adjust != 0) - vma += sac->vma_adjust; - if (vma == s->vma) - continue; - - /* - * No need to make segment adjustment if the section doesn't - * belong to any segment. - */ - if (s->seg == NULL) { - s->vma = vma; - continue; - } - - /* - * Check if the VMA change is viable. - * - * 1. Check if the new VMA is properly aligned accroding to - * section alignment. - * - * 2. Compute the new extent of segment that contains this - * section, make sure it doesn't overlap with other - * segments. - */ -#ifdef DEBUG - printf("VMA for section %s: %#jx\n", s->name, vma); -#endif - - if (vma % s->align != 0) - errx(EXIT_FAILURE, "The VMA %#jx for " - "section %s is not aligned to %ju", - (uintmax_t) vma, s->name, (uintmax_t) s->align); - - if (vma < s->vma) { - /* Move section to lower address. */ - if (vma < s->vma - s->seg->vaddr) - errx(EXIT_FAILURE, "Not enough space to move " - "section %s VMA to %#jx", s->name, - (uintmax_t) vma); - start = vma - (s->vma - s->seg->vaddr); - if (s == s->seg->v_sec[s->seg->nsec - 1]) - end = start + s->seg->msz; - else - end = s->seg->vaddr + s->seg->msz; - } else { - /* Move section to upper address. */ - if (s == s->seg->v_sec[0]) - start = vma; - else - start = s->seg->vaddr; - end = vma + (s->seg->vaddr + s->seg->msz - s->vma); - if (end < start) - errx(EXIT_FAILURE, "Not enough space to move " - "section %s VMA to %#jx", s->name, - (uintmax_t) vma); - } - -#ifdef DEBUG - printf("new extent for segment containing %s: (%#jx,%#jx)\n", - s->name, start, end); -#endif - - STAILQ_FOREACH(seg, &ecp->v_seg, seg_list) { - if (seg == s->seg || seg->type != PT_LOAD) - continue; - if (start > seg->vaddr + seg->msz) - continue; - if (end < seg->vaddr) - continue; - errx(EXIT_FAILURE, "The extent of segment containing " - "section %s overlaps with segment(%#jx,%#jx)", - s->name, (uintmax_t) seg->vaddr, - (uintmax_t) (seg->vaddr + seg->msz)); - } - - /* - * Update section VMA and file offset. - */ - - if (vma < s->vma) { - /* - * To move a section to lower VMA, we decrease - * the VMA of the section and all the sections that - * are before it, and we increase the file offsets - * of all the sections that are after it. - */ - dl = s->vma - vma; - for (i = 0; i < s->seg->nsec; i++) { - s0 = s->seg->v_sec[i]; - s0->vma -= dl; -#ifdef DEBUG - printf("section %s VMA set to %#jx\n", - s0->name, (uintmax_t) s0->vma); -#endif - if (s0 == s) - break; - } - for (i = i + 1; i < s->seg->nsec; i++) { - s0 = s->seg->v_sec[i]; - s0->off += dl; -#ifdef DEBUG - printf("section %s offset set to %#jx\n", - s0->name, (uintmax_t) s0->off); -#endif - } - } else { - /* - * To move a section to upper VMA, we increase - * the VMA of the section and all the sections that - * are after it, and we increase the their file - * offsets too unless the section in question - * is the first in its containing segment. - */ - dl = vma - s->vma; - for (i = 0; i < s->seg->nsec; i++) - if (s->seg->v_sec[i] == s) - break; - if (i >= s->seg->nsec) - errx(EXIT_FAILURE, "Internal: section `%s' not" - " found in its containing segement", - s->name); - for (; i < s->seg->nsec; i++) { - s0 = s->seg->v_sec[i]; - s0->vma += dl; -#ifdef DEBUG - printf("section %s VMA set to %#jx\n", - s0->name, (uintmax_t) s0->lma); -#endif - if (s != s->seg->v_sec[0]) { - s0->off += dl; -#ifdef DEBUG - printf("section %s offset set to %#jx\n", - s0->name, (uintmax_t) s0->off); -#endif - } - } - } - } - - /* - * Apply load address padding. - */ - - if (ecp->pad_to != 0) { - - /* - * Find the section with highest VMA. - */ - s = NULL; - STAILQ_FOREACH(seg, &ecp->v_seg, seg_list) { - if (seg->type != PT_LOAD) - continue; - for (i = seg->nsec - 1; i >= 0; i--) - if (seg->v_sec[i]->type != SHT_NOBITS) - break; - if (i < 0) - continue; - if (s == NULL) - s = seg->v_sec[i]; - else { - s0 = seg->v_sec[i]; - if (s0->vma > s->vma) - s = s0; - } - } - - if (s == NULL) - goto adjust_lma; - - /* No need to pad if the pad_to address is lower. */ - if (ecp->pad_to <= s->vma + s->sz) - goto adjust_lma; - - s->pad_sz = ecp->pad_to - (s->vma + s->sz); -#ifdef DEBUG - printf("pad section %s VMA to address %#jx by %#jx\n", s->name, - (uintmax_t) ecp->pad_to, (uintmax_t) s->pad_sz); -#endif - } - - -adjust_lma: - - /* - * Apply sections LMA change in the third iteration. - */ - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - - /* - * Only loadable section that's inside a segment can have - * LMA adjusted. Also, if LMA of the containing segment is - * set to 0, it probably means we should ignore the LMA. - */ - if (!s->loadable || s->seg == NULL || s->seg->paddr == 0) - continue; - - /* - * Check if there is a LMA change request for this - * section. - */ - sac = lookup_sec_act(ecp, s->name, 0); - if (sac == NULL) - continue; - if (!sac->setlma && sac->lma_adjust == 0) - continue; - lma = s->lma; - if (sac->setlma) - lma = sac->lma; - if (sac->lma_adjust != 0) - lma += sac->lma_adjust; - if (lma == s->lma) - continue; - -#ifdef DEBUG - printf("LMA for section %s: %#jx\n", s->name, lma); -#endif - - /* Check alignment. */ - if (lma % s->align != 0) - errx(EXIT_FAILURE, "The LMA %#jx for " - "section %s is not aligned to %ju", - (uintmax_t) lma, s->name, (uintmax_t) s->align); - - /* - * Update section LMA. - */ - - if (lma < s->lma) { - /* - * To move a section to lower LMA, we decrease - * the LMA of the section and all the sections that - * are before it. - */ - dl = s->lma - lma; - for (i = 0; i < s->seg->nsec; i++) { - s0 = s->seg->v_sec[i]; - s0->lma -= dl; -#ifdef DEBUG - printf("section %s LMA set to %#jx\n", - s0->name, (uintmax_t) s0->lma); -#endif - if (s0 == s) - break; - } - } else { - /* - * To move a section to upper LMA, we increase - * the LMA of the section and all the sections that - * are after it. - */ - dl = lma - s->lma; - for (i = 0; i < s->seg->nsec; i++) - if (s->seg->v_sec[i] == s) - break; - if (i >= s->seg->nsec) - errx(EXIT_FAILURE, "Internal: section `%s' not" - " found in its containing segement", - s->name); - for (; i < s->seg->nsec; i++) { - s0 = s->seg->v_sec[i]; - s0->lma += dl; -#ifdef DEBUG - printf("section %s LMA set to %#jx\n", - s0->name, (uintmax_t) s0->lma); -#endif - } - } - } - - /* - * Issue a warning if there are VMA/LMA adjust requests for - * some nonexistent sections. - */ - if ((ecp->flags & NO_CHANGE_WARN) == 0) { - STAILQ_FOREACH(sac, &ecp->v_sac, sac_list) { - if (!sac->setvma && !sac->setlma && - !sac->vma_adjust && !sac->lma_adjust) - continue; - found = 0; - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (s->pseudo || s->name == NULL) - continue; - if (!strcmp(s->name, sac->name)) { - found = 1; - break; - } - } - if (!found) - warnx("cannot find section `%s'", sac->name); - } - } -} - -static void -insert_to_inseg_list(struct segment *seg, struct section *sec) -{ - struct section *s; - int i; - - seg->nsec++; - seg->v_sec = realloc(seg->v_sec, seg->nsec * sizeof(*seg->v_sec)); - if (seg->v_sec == NULL) - err(EXIT_FAILURE, "realloc failed"); - - /* - * Sort the section in order of offset. - */ - - for (i = seg->nsec - 1; i > 0; i--) { - s = seg->v_sec[i - 1]; - if (sec->off >= s->off) { - seg->v_sec[i] = sec; - break; - } else - seg->v_sec[i] = s; - } - if (i == 0) - seg->v_sec[0] = sec; -} - -void -setup_phdr(struct elfcopy *ecp) -{ - struct segment *seg; - GElf_Phdr iphdr; - size_t iphnum, i; - - if (elf_getphnum(ecp->ein, &iphnum) == 0) - errx(EXIT_FAILURE, "elf_getphnum failed: %s", - elf_errmsg(-1)); - - ecp->ophnum = ecp->iphnum = iphnum; - if (iphnum == 0) - return; - - /* If --only-keep-debug is specified, discard all program headers. */ - if (ecp->strip == STRIP_NONDEBUG) { - ecp->ophnum = 0; - return; - } - - for (i = 0; i < iphnum; i++) { - if (gelf_getphdr(ecp->ein, i, &iphdr) != &iphdr) - errx(EXIT_FAILURE, "gelf_getphdr failed: %s", - elf_errmsg(-1)); - if ((seg = calloc(1, sizeof(*seg))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - seg->vaddr = iphdr.p_vaddr; - seg->paddr = iphdr.p_paddr; - seg->off = iphdr.p_offset; - seg->fsz = iphdr.p_filesz; - seg->msz = iphdr.p_memsz; - seg->type = iphdr.p_type; - STAILQ_INSERT_TAIL(&ecp->v_seg, seg, seg_list); - } -} - -void -copy_phdr(struct elfcopy *ecp) -{ - struct segment *seg; - struct section *s; - GElf_Phdr iphdr, ophdr; - int i; - - STAILQ_FOREACH(seg, &ecp->v_seg, seg_list) { - if (seg->type == PT_PHDR) { - if (!TAILQ_EMPTY(&ecp->v_sec)) { - s = TAILQ_FIRST(&ecp->v_sec); - if (s->pseudo) { - seg->vaddr = s->vma + - gelf_fsize(ecp->eout, ELF_T_EHDR, - 1, EV_CURRENT); - seg->paddr = s->lma + - gelf_fsize(ecp->eout, ELF_T_EHDR, - 1, EV_CURRENT); - } - } - seg->fsz = seg->msz = gelf_fsize(ecp->eout, ELF_T_PHDR, - ecp->ophnum, EV_CURRENT); - continue; - } - - if (seg->nsec > 0) { - s = seg->v_sec[0]; - seg->vaddr = s->vma; - seg->paddr = s->lma; - } - - seg->fsz = seg->msz = 0; - for (i = 0; i < seg->nsec; i++) { - s = seg->v_sec[i]; - seg->msz = s->vma + s->sz - seg->vaddr; - if (s->type != SHT_NOBITS) - seg->fsz = s->off + s->sz - seg->off; - } - } - - /* - * Allocate space for program headers, note that libelf keep - * track of the number in internal variable, and a call to - * elf_update is needed to update e_phnum of ehdr. - */ - if (gelf_newphdr(ecp->eout, ecp->ophnum) == NULL) - errx(EXIT_FAILURE, "gelf_newphdr() failed: %s", - elf_errmsg(-1)); - - /* - * This elf_update() call is to update the e_phnum field in - * ehdr. It's necessary because later we will call gelf_getphdr(), - * which does sanity check by comparing ndx argument with e_phnum. - */ - if (elf_update(ecp->eout, ELF_C_NULL) < 0) - errx(EXIT_FAILURE, "elf_update() failed: %s", elf_errmsg(-1)); - - /* - * iphnum == ophnum, since we don't remove program headers even if - * they no longer contain sections. - */ - i = 0; - STAILQ_FOREACH(seg, &ecp->v_seg, seg_list) { - if (i >= ecp->iphnum) - break; - if (gelf_getphdr(ecp->ein, i, &iphdr) != &iphdr) - errx(EXIT_FAILURE, "gelf_getphdr failed: %s", - elf_errmsg(-1)); - if (gelf_getphdr(ecp->eout, i, &ophdr) != &ophdr) - errx(EXIT_FAILURE, "gelf_getphdr failed: %s", - elf_errmsg(-1)); - - ophdr.p_type = iphdr.p_type; - ophdr.p_vaddr = seg->vaddr; - ophdr.p_paddr = seg->paddr; - ophdr.p_flags = iphdr.p_flags; - ophdr.p_align = iphdr.p_align; - ophdr.p_offset = seg->off; - ophdr.p_filesz = seg->fsz; - ophdr.p_memsz = seg->msz; - if (!gelf_update_phdr(ecp->eout, i, &ophdr)) - errx(EXIT_FAILURE, "gelf_update_phdr failed: %s", - elf_errmsg(-1)); - - i++; - } -} diff --git a/contrib/elftoolchain/elfcopy/strip.1 b/contrib/elftoolchain/elfcopy/strip.1 deleted file mode 100644 index 07216dab..00000000 --- a/contrib/elftoolchain/elfcopy/strip.1 +++ /dev/null @@ -1,141 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY JOSEPH KOSHY ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL JOSEPH KOSHY BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 27, 2019 -.Dt STRIP 1 -.Os -.Sh NAME -.Nm strip -.Nd discard information from ELF objects -.Sh SYNOPSIS -.Nm -.Op Fl d | Fl g | Fl S | Fl -strip-debug -.Op Fl h | Fl -help -.Op Fl -only-keep-debug -.Op Fl o Ar outputfile | Fl -output-file= Ns Ar outputfile -.Op Fl p | Fl -preserve-dates -.Op Fl s | Fl -strip-all -.Op Fl -strip-unneeded -.Op Fl w | Fl -wildcard -.Op Fl x | Fl -discard-all -.Op Fl I Ar format | Fl -input-target= Ns Ar format -.Op Fl K Ar symbol | Fl -keep-symbol= Ns Ar symbol -.Op Fl N Ar symbol | Fl -strip-symbol= Ns Ar symbol -.Op Fl O Ar format | Fl -output-target= Ns Ar format -.Op Fl R Ar sectionname | Fl -remove-section= Ns Ar sectionname -.Op Fl V | Fl -version -.Op Fl X | Fl -discard-locals -.Ar -.Sh DESCRIPTION -The -.Nm -utility is used to discard information from the ELF objects -specified by the arguments -.Ar . -.Pp -If an explicit output file name is not specified using the -.Fl o -option, the -.Nm -utility will modify its input arguments in-place. -.Pp -The -.Nm -utility supports the following options: -.Bl -tag -width indent -.It Fl d | Fl g | Fl S | Fl -strip-debug -Remove debugging symbols only. -.It Fl h | Fl -help -Print a help message and exit. -.It Fl -only-keep-debug -Remove all content except that which would be used for debugging. -.It Fl o Ar outputfile | Fl -output-file= Ns Ar outputfile -Write the stripped object to file -.Ar outputfile -instead of modifying the input in-place. -Only a single input object should be specified if this option is used. -.It Fl p | Fl -preserve-dates -Preserve the object's access and modification times. -.It Fl s | Fl -strip-all -Remove all symbols. -.It Fl -strip-unneeded -Remove all symbols not needed for further relocation processing. -.It Fl w | Fl -wildcard -Use shell-style patterns to name symbols. -The following meta-characters are recognized in patterns: -.Bl -tag -width "...." -compact -.It Li ! -If this is the first character of the pattern, invert the sense of the -pattern match. -.It Li * -Matches any string of characters in a symbol name. -.It Li ? -Matches zero or one character in a symbol name. -.It Li [ -Mark the start of a character class. -.It Li \e -Remove the special meaning of the next character in the pattern. -.It Li ] -Mark the end of a character class. -.El -.It Fl x | Fl -discard-all -Discard all non-global symbols. -.It Fl I Ar format | Fl -input-target= Ns Ar format -These options are accepted, but are ignored. -.It Fl K Ar symbol | Fl -keep-symbol= Ns Ar symbol -Keep the symbol -.Ar symbol -even if it would otherwise be stripped. -This option may be specified multiple times. -.It Fl N Ar symbol | Fl -strip-symbol= Ns Ar symbol -Remove the symbol -.Ar symbol -even if it would otherwise have been kept. -This option may be specified multiple times. -.It Fl O Ar format | Fl -output-target= Ns Ar format -Set the output file format to -.Ar format . -For the full list of supported formats, please see the documentation -for function -.Xr elftc_bfd_find_target 3 . -.It Fl R Ar sectionname | Fl -remove-section= Ns Ar sectionname -Remove the section named by the argument -.Ar sectionname . -This option may be specified multiple times. -.It Fl V | Fl -version -Print a version identifier and exit. -.It Fl X | Fl -discard-locals -Remove compiler-generated local symbols. -.El -.Sh DIAGNOSTICS -.Ex -std -.Sh SEE ALSO -.Xr ar 1 , -.Xr elfcopy 1 , -.Xr ld 1 , -.Xr mcs 1 , -.Xr elf 3 , -.Xr elftc_bfd_find_target 3 , -.Xr fnmatch 3 diff --git a/contrib/elftoolchain/elfcopy/symbols.c b/contrib/elftoolchain/elfcopy/symbols.c deleted file mode 100644 index a4806922..00000000 --- a/contrib/elftoolchain/elfcopy/symbols.c +++ /dev/null @@ -1,1207 +0,0 @@ -/*- - * Copyright (c) 2007-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "elfcopy.h" - -ELFTC_VCSID("$Id$"); - -/* Symbol table buffer structure. */ -struct symbuf { - Elf32_Sym *l32; /* 32bit local symbol */ - Elf32_Sym *g32; /* 32bit global symbol */ - Elf64_Sym *l64; /* 64bit local symbol */ - Elf64_Sym *g64; /* 64bit global symbol */ - size_t ngs, nls; /* number of each kind */ - size_t gcap, lcap; /* buffer capacities. */ -}; - -struct sthash { - LIST_ENTRY(sthash) sh_next; - size_t sh_off; -}; -typedef LIST_HEAD(,sthash) hash_head; -#define STHASHSIZE 65536 - -struct strimpl { - char *buf; /* string table */ - size_t sz; /* entries */ - size_t cap; /* buffer capacity */ - hash_head hash[STHASHSIZE]; -}; - - -/* String table buffer structure. */ -struct strbuf { - struct strimpl l; /* local symbols */ - struct strimpl g; /* global symbols */ -}; - -static int is_debug_symbol(unsigned char st_info); -static int is_global_symbol(unsigned char st_info); -static int is_local_symbol(unsigned char st_info); -static int is_local_label(const char *name); -static int is_needed_symbol(struct elfcopy *ecp, int i, GElf_Sym *s); -static int is_remove_symbol(struct elfcopy *ecp, size_t sc, int i, - GElf_Sym *s, const char *name); -static int is_weak_symbol(unsigned char st_info); -static int lookup_exact_string(hash_head *hash, const char *buf, - const char *s); -static int generate_symbols(struct elfcopy *ecp); -static void mark_reloc_symbols(struct elfcopy *ecp, size_t sc); -static void mark_section_group_symbols(struct elfcopy *ecp, size_t sc); -uint32_t str_hash(const char *s); - -/* Convenient bit vector operation macros. */ -#define BIT_SET(v, n) (v[(n)>>3] |= 1U << ((n) & 7)) -#define BIT_CLR(v, n) (v[(n)>>3] &= ~(1U << ((n) & 7))) -#define BIT_ISSET(v, n) (v[(n)>>3] & (1U << ((n) & 7))) - -static int -is_debug_symbol(unsigned char st_info) -{ - - if (GELF_ST_TYPE(st_info) == STT_SECTION || - GELF_ST_TYPE(st_info) == STT_FILE) - return (1); - - return (0); -} - -static int -is_global_symbol(unsigned char st_info) -{ - - if (GELF_ST_BIND(st_info) == STB_GLOBAL || - GELF_ST_BIND(st_info) == STB_GNU_UNIQUE) - return (1); - - return (0); -} - -static int -is_weak_symbol(unsigned char st_info) -{ - - if (GELF_ST_BIND(st_info) == STB_WEAK) - return (1); - - return (0); -} - -static int -is_local_symbol(unsigned char st_info) -{ - - if (GELF_ST_BIND(st_info) == STB_LOCAL) - return (1); - - return (0); -} - -static int -is_hidden_symbol(unsigned char st_other) -{ - - if (GELF_ST_VISIBILITY(st_other) == STV_HIDDEN || - GELF_ST_VISIBILITY(st_other) == STV_INTERNAL) - return (1); - - return (0); -} - -static int -is_local_label(const char *name) -{ - - /* Compiler generated local symbols that start with .L */ - if (name[0] == '.' && name[1] == 'L') - return (1); - - return (0); -} - -/* - * Symbols related to relocation are needed. - */ -static int -is_needed_symbol(struct elfcopy *ecp, int i, GElf_Sym *s) -{ - - /* If symbol involves relocation, it is needed. */ - if (BIT_ISSET(ecp->v_rel, i)) - return (1); - - /* Symbols referred by COMDAT sections are needed. */ - if (BIT_ISSET(ecp->v_grp, i)) - return (1); - - /* - * For relocatable files (.o files), global and weak symbols - * are needed. - */ - if (ecp->flags & RELOCATABLE) { - if (is_global_symbol(s->st_info) || is_weak_symbol(s->st_info)) - return (1); - } - - return (0); -} - -static int -is_remove_symbol(struct elfcopy *ecp, size_t sc, int i, GElf_Sym *s, - const char *name) -{ - GElf_Sym sym0 = { - 0, /* st_name */ - 0, /* st_value */ - 0, /* st_size */ - 0, /* st_info */ - 0, /* st_other */ - SHN_UNDEF, /* st_shndx */ - }; - - /* - * Keep the first symbol if it is the special reserved symbol. - * XXX Should we generate one if it's missing? - */ - if (i == 0 && !memcmp(s, &sym0, sizeof(GElf_Sym))) - return (0); - - /* Remove the symbol if the section it refers to was removed. */ - if (s->st_shndx != SHN_UNDEF && s->st_shndx < SHN_LORESERVE && - ecp->secndx[s->st_shndx] == 0) - return (1); - - /* Keep the symbol if specified by command line option -K. */ - if (lookup_symop_list(ecp, name, SYMOP_KEEP) != NULL) - return (0); - - if (ecp->strip == STRIP_ALL) - return (1); - - /* Mark symbols used in relocation. */ - if (ecp->v_rel == NULL) - mark_reloc_symbols(ecp, sc); - - /* Mark symbols used in section groups. */ - if (ecp->v_grp == NULL) - mark_section_group_symbols(ecp, sc); - - /* - * Strip the symbol if specified by command line option -N, - * unless it's used in relocation. - */ - if (lookup_symop_list(ecp, name, SYMOP_STRIP) != NULL) { - if (BIT_ISSET(ecp->v_rel, i)) { - warnx("not stripping symbol `%s' because it is named" - " in a relocation", name); - return (0); - } - return (1); - } - - if (is_needed_symbol(ecp, i, s)) - return (0); - - if (ecp->strip == STRIP_UNNEEDED) - return (1); - - if ((ecp->flags & DISCARD_LOCAL) && is_local_symbol(s->st_info) && - !is_debug_symbol(s->st_info)) - return (1); - - if ((ecp->flags & DISCARD_LLABEL) && is_local_symbol(s->st_info) && - !is_debug_symbol(s->st_info) && is_local_label(name)) - return (1); - - if (ecp->strip == STRIP_DEBUG && is_debug_symbol(s->st_info)) - return (1); - - return (0); -} - -/* - * Mark symbols referred by relocation entries. - */ -static void -mark_reloc_symbols(struct elfcopy *ecp, size_t sc) -{ - const char *name; - Elf_Data *d; - Elf_Scn *s; - GElf_Rel r; - GElf_Rela ra; - GElf_Shdr sh; - size_t n, indx; - int elferr, i, len; - - ecp->v_rel = calloc((sc + 7) / 8, 1); - if (ecp->v_rel == NULL) - err(EXIT_FAILURE, "calloc failed"); - - if (elf_getshstrndx(ecp->ein, &indx) == 0) - errx(EXIT_FAILURE, "elf_getshstrndx failed: %s", - elf_errmsg(-1)); - - s = NULL; - while ((s = elf_nextscn(ecp->ein, s)) != NULL) { - if (gelf_getshdr(s, &sh) != &sh) - errx(EXIT_FAILURE, "elf_getshdr failed: %s", - elf_errmsg(-1)); - - if (sh.sh_type != SHT_REL && sh.sh_type != SHT_RELA) - continue; - - /* - * Skip if this reloc section won't appear in the - * output object. - */ - if ((name = elf_strptr(ecp->ein, indx, sh.sh_name)) == NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - if (is_remove_section(ecp, name) || - is_remove_reloc_sec(ecp, sh.sh_info)) - continue; - - /* Skip if it's not for .symtab */ - if (sh.sh_link != elf_ndxscn(ecp->symtab->is)) - continue; - - d = NULL; - n = 0; - while (n < sh.sh_size && (d = elf_getdata(s, d)) != NULL) { - len = d->d_size / sh.sh_entsize; - for (i = 0; i < len; i++) { - if (sh.sh_type == SHT_REL) { - if (gelf_getrel(d, i, &r) != &r) - errx(EXIT_FAILURE, - "elf_getrel failed: %s", - elf_errmsg(-1)); - n = GELF_R_SYM(r.r_info); - } else { - if (gelf_getrela(d, i, &ra) != &ra) - errx(EXIT_FAILURE, - "elf_getrela failed: %s", - elf_errmsg(-1)); - n = GELF_R_SYM(ra.r_info); - } - if (n > 0 && n < sc) - BIT_SET(ecp->v_rel, n); - else if (n != 0) - warnx("invalid symbox index"); - } - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_getdata failed: %s", - elf_errmsg(elferr)); - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); -} - -static void -mark_section_group_symbols(struct elfcopy *ecp, size_t sc) -{ - const char *name; - Elf_Scn *s; - GElf_Shdr sh; - size_t indx; - int elferr; - - ecp->v_grp = calloc((sc + 7) / 8, 1); - if (ecp->v_grp == NULL) - err(EXIT_FAILURE, "calloc failed"); - - if (elf_getshstrndx(ecp->ein, &indx) == 0) - errx(EXIT_FAILURE, "elf_getshstrndx failed: %s", - elf_errmsg(-1)); - - s = NULL; - while ((s = elf_nextscn(ecp->ein, s)) != NULL) { - if (gelf_getshdr(s, &sh) != &sh) - errx(EXIT_FAILURE, "elf_getshdr failed: %s", - elf_errmsg(-1)); - - if (sh.sh_type != SHT_GROUP) - continue; - - if ((name = elf_strptr(ecp->ein, indx, sh.sh_name)) == NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - if (is_remove_section(ecp, name)) - continue; - - if (sh.sh_info > 0 && sh.sh_info < sc) - BIT_SET(ecp->v_grp, sh.sh_info); - else if (sh.sh_info != 0) - warnx("invalid symbox index"); - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); -} - -static int -generate_symbols(struct elfcopy *ecp) -{ - struct section *s; - struct symop *sp; - struct symbuf *sy_buf; - struct strbuf *st_buf; - const char *name; - char *newname; - unsigned char *gsym; - GElf_Shdr ish; - GElf_Sym sym; - Elf_Data* id; - Elf_Scn *is; - size_t ishstrndx, namelen, ndx, sc, symndx; - int ec, elferr, i; - - if (elf_getshstrndx(ecp->ein, &ishstrndx) == 0) - errx(EXIT_FAILURE, "elf_getshstrndx failed: %s", - elf_errmsg(-1)); - if ((ec = gelf_getclass(ecp->eout)) == ELFCLASSNONE) - errx(EXIT_FAILURE, "gelf_getclass failed: %s", - elf_errmsg(-1)); - - /* Create buffers for .symtab and .strtab. */ - if ((sy_buf = calloc(1, sizeof(*sy_buf))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - if ((st_buf = calloc(1, sizeof(*st_buf))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - sy_buf->gcap = sy_buf->lcap = 64; - st_buf->g.cap = 256; - st_buf->l.cap = 64; - st_buf->l.sz = 1; /* '\0' at start. */ - st_buf->g.sz = 0; - - ecp->symtab->sz = 0; - ecp->strtab->sz = 0; - ecp->symtab->buf = sy_buf; - ecp->strtab->buf = st_buf; - - gsym = NULL; - - /* - * Create bit vector v_secsym, which is used to mark sections - * that already have corresponding STT_SECTION symbols. - */ - ecp->v_secsym = calloc((ecp->nos + 7) / 8, 1); - if (ecp->v_secsym == NULL) - err(EXIT_FAILURE, "calloc failed"); - - /* Locate .strtab of input object. */ - symndx = 0; - name = NULL; - is = NULL; - while ((is = elf_nextscn(ecp->ein, is)) != NULL) { - if (gelf_getshdr(is, &ish) != &ish) - errx(EXIT_FAILURE, "elf_getshdr failed: %s", - elf_errmsg(-1)); - if ((name = elf_strptr(ecp->ein, ishstrndx, ish.sh_name)) == - NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - if (strcmp(name, ".strtab") == 0) { - symndx = elf_ndxscn(is); - break; - } - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); - - /* Symbol table should exist if this function is called. */ - if (symndx == 0) { - warnx("can't find .strtab section"); - goto clean; - } - - /* Locate .symtab of input object. */ - is = NULL; - while ((is = elf_nextscn(ecp->ein, is)) != NULL) { - if (gelf_getshdr(is, &ish) != &ish) - errx(EXIT_FAILURE, "elf_getshdr failed: %s", - elf_errmsg(-1)); - if ((name = elf_strptr(ecp->ein, ishstrndx, ish.sh_name)) == - NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - if (strcmp(name, ".symtab") == 0) - break; - } - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_nextscn failed: %s", - elf_errmsg(elferr)); - if (is == NULL) - errx(EXIT_FAILURE, "can't find .strtab section"); - - /* - * Create bit vector gsym to mark global symbols, and symndx - * to keep track of symbol index changes from input object to - * output object, it is used by update_reloc() later to update - * relocation information. - */ - sc = ish.sh_size / ish.sh_entsize; - if (sc > 0) { - ecp->symndx = calloc(sc, sizeof(*ecp->symndx)); - if (ecp->symndx == NULL) - err(EXIT_FAILURE, "calloc failed"); - gsym = calloc((sc + 7) / 8, sizeof(*gsym)); - if (gsym == NULL) - err(EXIT_FAILURE, "calloc failed"); - if ((id = elf_getdata(is, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - errx(EXIT_FAILURE, "elf_getdata failed: %s", - elf_errmsg(elferr)); - goto clean; - } - } else - return (0); - - /* Copy/Filter each symbol. */ - for (i = 0; (size_t)i < sc; i++) { - if (gelf_getsym(id, i, &sym) != &sym) - errx(EXIT_FAILURE, "gelf_getsym failed: %s", - elf_errmsg(-1)); - if ((name = elf_strptr(ecp->ein, symndx, sym.st_name)) == NULL) - errx(EXIT_FAILURE, "elf_strptr failed: %s", - elf_errmsg(-1)); - - /* Symbol filtering. */ - if (is_remove_symbol(ecp, sc, i, &sym, name) != 0) - continue; - - /* Check if we need to change the binding of this symbol. */ - if (is_global_symbol(sym.st_info) || - is_weak_symbol(sym.st_info)) { - /* - * XXX Binutils objcopy does not weaken certain - * symbols. - */ - if (ecp->flags & WEAKEN_ALL || - lookup_symop_list(ecp, name, SYMOP_WEAKEN) != NULL) - sym.st_info = GELF_ST_INFO(STB_WEAK, - GELF_ST_TYPE(sym.st_info)); - /* Do not localize undefined symbols. */ - if (sym.st_shndx != SHN_UNDEF && - lookup_symop_list(ecp, name, SYMOP_LOCALIZE) != - NULL) - sym.st_info = GELF_ST_INFO(STB_LOCAL, - GELF_ST_TYPE(sym.st_info)); - if (ecp->flags & KEEP_GLOBAL && - sym.st_shndx != SHN_UNDEF && - lookup_symop_list(ecp, name, SYMOP_KEEPG) == NULL) - sym.st_info = GELF_ST_INFO(STB_LOCAL, - GELF_ST_TYPE(sym.st_info)); - if (ecp->flags & LOCALIZE_HIDDEN && - sym.st_shndx != SHN_UNDEF && - is_hidden_symbol(sym.st_other)) - sym.st_info = GELF_ST_INFO(STB_LOCAL, - GELF_ST_TYPE(sym.st_info)); - } else { - /* STB_LOCAL binding. */ - if (lookup_symop_list(ecp, name, SYMOP_GLOBALIZE) != - NULL) - sym.st_info = GELF_ST_INFO(STB_GLOBAL, - GELF_ST_TYPE(sym.st_info)); - /* XXX We should globalize weak symbol? */ - } - - /* Check if we need to rename this symbol. */ - if ((sp = lookup_symop_list(ecp, name, SYMOP_REDEF)) != NULL) - name = sp->newname; - - /* Check if we need to prefix the symbols. */ - newname = NULL; - if (ecp->prefix_sym != NULL && name != NULL && *name != '\0') { - namelen = strlen(name) + strlen(ecp->prefix_sym) + 1; - if ((newname = malloc(namelen)) == NULL) - err(EXIT_FAILURE, "malloc failed"); - snprintf(newname, namelen, "%s%s", ecp->prefix_sym, - name); - name = newname; - } - - /* Copy symbol, mark global/weak symbol and add to index map. */ - if (is_global_symbol(sym.st_info) || - is_weak_symbol(sym.st_info)) { - BIT_SET(gsym, i); - ecp->symndx[i] = sy_buf->ngs; - } else - ecp->symndx[i] = sy_buf->nls; - add_to_symtab(ecp, name, sym.st_value, sym.st_size, - sym.st_shndx, sym.st_info, sym.st_other, 0); - - if (newname != NULL) - free(newname); - - /* - * If the symbol is a STT_SECTION symbol, mark the section - * it points to. - */ - if (GELF_ST_TYPE(sym.st_info) == STT_SECTION && - sym.st_shndx < SHN_LORESERVE) { - assert(ecp->secndx[sym.st_shndx] < (uint64_t)ecp->nos); - BIT_SET(ecp->v_secsym, ecp->secndx[sym.st_shndx]); - } - } - - /* - * Give up if there is no real symbols inside the table. - * XXX The logic here needs to be improved. We need to - * check if that only local symbol is the reserved symbol. - */ - if (sy_buf->nls <= 1 && sy_buf->ngs == 0) - goto clean; - - /* - * Create STT_SECTION symbols for sections that do not already - * got one. However, we do not create STT_SECTION symbol for - * .symtab, .strtab, .shstrtab and reloc sec of relocatables. - */ - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (s->pseudo) - continue; - if (strcmp(s->name, ".symtab") == 0 || - strcmp(s->name, ".strtab") == 0 || - strcmp(s->name, ".shstrtab") == 0) - continue; - if ((ecp->flags & RELOCATABLE) != 0 && - ((s->type == SHT_REL) || (s->type == SHT_RELA))) - continue; - - if ((ndx = elf_ndxscn(s->os)) == SHN_UNDEF) - errx(EXIT_FAILURE, "elf_ndxscn failed: %s", - elf_errmsg(-1)); - - if (!BIT_ISSET(ecp->v_secsym, ndx)) { - sym.st_name = 0; - sym.st_value = s->vma; - sym.st_size = 0; - sym.st_info = GELF_ST_INFO(STB_LOCAL, STT_SECTION); - sym.st_other = STV_DEFAULT; - /* - * Don't let add_to_symtab() touch sym.st_shndx. - * In this case, we know the index already. - */ - add_to_symtab(ecp, NULL, sym.st_value, sym.st_size, - ndx, sym.st_info, sym.st_other, 1); - } - } - - /* - * Update st_name and index map for global/weak symbols. Note that - * global/weak symbols are put after local symbols. - */ - if (gsym != NULL) { - for(i = 0; (size_t) i < sc; i++) { - if (!BIT_ISSET(gsym, i)) - continue; - - /* Update st_name. */ - if (ec == ELFCLASS32) - sy_buf->g32[ecp->symndx[i]].st_name += - st_buf->l.sz; - else - sy_buf->g64[ecp->symndx[i]].st_name += - st_buf->l.sz; - - /* Update index map. */ - ecp->symndx[i] += sy_buf->nls; - } - free(gsym); - } - - return (1); - -clean: - free(gsym); - free_symtab(ecp); - - return (0); -} - -void -create_symtab(struct elfcopy *ecp) -{ - struct section *s, *sy, *st; - size_t maxndx, ndx; - - sy = ecp->symtab; - st = ecp->strtab; - - assert(sy != NULL && st != NULL); - - /* - * Set section index map for .symtab and .strtab. We need to set - * these map because otherwise symbols which refer to .symtab and - * .strtab will be removed by symbol filtering unconditionally. - * And we have to figure out scn index this way (instead of calling - * elf_ndxscn) because we can not create Elf_Scn before we're certain - * that .symtab and .strtab will exist in the output object. - */ - maxndx = 0; - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (s->os == NULL) - continue; - if ((ndx = elf_ndxscn(s->os)) == SHN_UNDEF) - errx(EXIT_FAILURE, "elf_ndxscn failed: %s", - elf_errmsg(-1)); - if (ndx > maxndx) - maxndx = ndx; - } - ecp->secndx[elf_ndxscn(sy->is)] = maxndx + 1; - ecp->secndx[elf_ndxscn(st->is)] = maxndx + 2; - - /* - * Generate symbols for output object if SYMTAB_INTACT is not set. - * If there is no symbol in the input object or all the symbols are - * stripped, then free all the resouces allotted for symbol table, - * and clear SYMTAB_EXIST flag. - */ - if (((ecp->flags & SYMTAB_INTACT) == 0) && !generate_symbols(ecp)) { - TAILQ_REMOVE(&ecp->v_sec, ecp->symtab, sec_list); - TAILQ_REMOVE(&ecp->v_sec, ecp->strtab, sec_list); - free(ecp->symtab->buf); - free(ecp->symtab); - free(ecp->strtab->buf); - free(ecp->strtab); - ecp->symtab = NULL; - ecp->strtab = NULL; - ecp->flags &= ~SYMTAB_EXIST; - return; - } - - /* Create output Elf_Scn for .symtab and .strtab. */ - if ((sy->os = elf_newscn(ecp->eout)) == NULL || - (st->os = elf_newscn(ecp->eout)) == NULL) - errx(EXIT_FAILURE, "elf_newscn failed: %s", - elf_errmsg(-1)); - /* Update secndx anyway. */ - ecp->secndx[elf_ndxscn(sy->is)] = elf_ndxscn(sy->os); - ecp->secndx[elf_ndxscn(st->is)] = elf_ndxscn(st->os); - - /* - * Copy .symtab and .strtab section headers from input to output - * object to start with, these will be overridden later if need. - */ - copy_shdr(ecp, sy, ".symtab", 1, 0); - copy_shdr(ecp, st, ".strtab", 1, 0); - - /* Copy verbatim if symbol table is intact. */ - if (ecp->flags & SYMTAB_INTACT) { - copy_data(sy); - copy_data(st); - return; - } - - create_symtab_data(ecp); -} - -void -free_symtab(struct elfcopy *ecp) -{ - struct symbuf *sy_buf; - struct strbuf *st_buf; - struct sthash *sh, *shtmp; - int i; - - if (ecp->symtab != NULL && ecp->symtab->buf != NULL) { - sy_buf = ecp->symtab->buf; - if (sy_buf->l32 != NULL) - free(sy_buf->l32); - if (sy_buf->g32 != NULL) - free(sy_buf->g32); - if (sy_buf->l64 != NULL) - free(sy_buf->l64); - if (sy_buf->g64 != NULL) - free(sy_buf->g64); - } - - if (ecp->strtab != NULL && ecp->strtab->buf != NULL) { - st_buf = ecp->strtab->buf; - if (st_buf->l.buf != NULL) - free(st_buf->l.buf); - if (st_buf->g.buf != NULL) - free(st_buf->g.buf); - for (i = 0; i < STHASHSIZE; i++) { - LIST_FOREACH_SAFE(sh, &st_buf->l.hash[i], sh_next, - shtmp) { - LIST_REMOVE(sh, sh_next); - free(sh); - } - LIST_FOREACH_SAFE(sh, &st_buf->g.hash[i], sh_next, - shtmp) { - LIST_REMOVE(sh, sh_next); - free(sh); - } - } - } - - if (ecp->symndx != NULL) { - free(ecp->symndx); - ecp->symndx = NULL; - } - if (ecp->v_rel != NULL) { - free(ecp->v_rel); - ecp->v_rel = NULL; - } - if (ecp->v_grp != NULL) { - free(ecp->v_grp); - ecp->v_grp = NULL; - } - if (ecp->v_secsym != NULL) { - free(ecp->v_secsym); - ecp->v_secsym = NULL; - } -} - -void -create_external_symtab(struct elfcopy *ecp) -{ - struct section *s; - struct symbuf *sy_buf; - struct strbuf *st_buf; - GElf_Shdr sh; - size_t ndx; - - if (ecp->oec == ELFCLASS32) - ecp->symtab = create_external_section(ecp, ".symtab", NULL, - NULL, 0, 0, SHT_SYMTAB, ELF_T_SYM, 0, 4, 0, 0); - else - ecp->symtab = create_external_section(ecp, ".symtab", NULL, - NULL, 0, 0, SHT_SYMTAB, ELF_T_SYM, 0, 8, 0, 0); - - ecp->strtab = create_external_section(ecp, ".strtab", NULL, NULL, 0, 0, - SHT_STRTAB, ELF_T_BYTE, 0, 1, 0, 0); - - /* Let sh_link field of .symtab section point to .strtab section. */ - if (gelf_getshdr(ecp->symtab->os, &sh) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - sh.sh_link = elf_ndxscn(ecp->strtab->os); - if (!gelf_update_shdr(ecp->symtab->os, &sh)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); - - /* Create buffers for .symtab and .strtab. */ - if ((sy_buf = calloc(1, sizeof(*sy_buf))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - if ((st_buf = calloc(1, sizeof(*st_buf))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - sy_buf->gcap = sy_buf->lcap = 64; - st_buf->g.cap = 256; - st_buf->l.cap = 64; - st_buf->l.sz = 1; /* '\0' at start. */ - st_buf->g.sz = 0; - - ecp->symtab->sz = 0; - ecp->strtab->sz = 0; - ecp->symtab->buf = sy_buf; - ecp->strtab->buf = st_buf; - - /* Always create the special symbol at the symtab beginning. */ - add_to_symtab(ecp, NULL, 0, 0, SHN_UNDEF, - ELF32_ST_INFO(STB_LOCAL, STT_NOTYPE), 0, 1); - - /* Create STT_SECTION symbols. */ - TAILQ_FOREACH(s, &ecp->v_sec, sec_list) { - if (s->pseudo) - continue; - if (strcmp(s->name, ".symtab") == 0 || - strcmp(s->name, ".strtab") == 0 || - strcmp(s->name, ".shstrtab") == 0) - continue; - (void) elf_errno(); - if ((ndx = elf_ndxscn(s->os)) == SHN_UNDEF) { - warnx("elf_ndxscn failed: %s", - elf_errmsg(-1)); - continue; - } - add_to_symtab(ecp, NULL, 0, 0, ndx, - GELF_ST_INFO(STB_LOCAL, STT_SECTION), 0, 1); - } -} - -void -add_to_symtab(struct elfcopy *ecp, const char *name, uint64_t st_value, - uint64_t st_size, uint16_t st_shndx, unsigned char st_info, - unsigned char st_other, int ndx_known) -{ - struct symbuf *sy_buf; - struct strbuf *st_buf; - struct sthash *sh; - uint32_t hash; - int pos; - - /* - * Convenient macro for copying global/local 32/64 bit symbols - * from input object to the buffer created for output object. - * It handles buffer growing, st_name calculating and st_shndx - * updating for symbols with non-special section index. - */ -#define _ST_NAME_EMPTY_l 0 -#define _ST_NAME_EMPTY_g -1 -#define _ADDSYM(B, SZ) do { \ - if (sy_buf->B##SZ == NULL) { \ - sy_buf->B##SZ = malloc(sy_buf->B##cap * \ - sizeof(Elf##SZ##_Sym)); \ - if (sy_buf->B##SZ == NULL) \ - err(EXIT_FAILURE, "malloc failed"); \ - } else if (sy_buf->n##B##s >= sy_buf->B##cap) { \ - sy_buf->B##cap *= 2; \ - sy_buf->B##SZ = realloc(sy_buf->B##SZ, sy_buf->B##cap * \ - sizeof(Elf##SZ##_Sym)); \ - if (sy_buf->B##SZ == NULL) \ - err(EXIT_FAILURE, "realloc failed"); \ - } \ - sy_buf->B##SZ[sy_buf->n##B##s].st_info = st_info; \ - sy_buf->B##SZ[sy_buf->n##B##s].st_other = st_other; \ - sy_buf->B##SZ[sy_buf->n##B##s].st_value = st_value; \ - sy_buf->B##SZ[sy_buf->n##B##s].st_size = st_size; \ - if (ndx_known) \ - sy_buf->B##SZ[sy_buf->n##B##s].st_shndx = st_shndx; \ - else if (st_shndx == SHN_UNDEF || st_shndx >= SHN_LORESERVE) \ - sy_buf->B##SZ[sy_buf->n##B##s].st_shndx = st_shndx; \ - else \ - sy_buf->B##SZ[sy_buf->n##B##s].st_shndx = \ - ecp->secndx[st_shndx]; \ - if (st_buf->B.buf == NULL) { \ - st_buf->B.buf = calloc(st_buf->B.cap, \ - sizeof(*st_buf->B.buf)); \ - if (st_buf->B.buf == NULL) \ - err(EXIT_FAILURE, "malloc failed"); \ - } \ - if (name != NULL && *name != '\0') { \ - pos = lookup_exact_string(st_buf->B.hash, st_buf->B.buf,\ - name); \ - if (pos != -1) \ - sy_buf->B##SZ[sy_buf->n##B##s].st_name = pos; \ - else { \ - sy_buf->B##SZ[sy_buf->n##B##s].st_name = \ - st_buf->B.sz; \ - while (st_buf->B.sz + strlen(name) >= \ - st_buf->B.cap - 1) { \ - st_buf->B.cap *= 2; \ - st_buf->B.buf = realloc(st_buf->B.buf, \ - st_buf->B.cap); \ - if (st_buf->B.buf == NULL) \ - err(EXIT_FAILURE, \ - "realloc failed"); \ - } \ - if ((sh = malloc(sizeof(*sh))) == NULL) \ - err(EXIT_FAILURE, "malloc failed"); \ - sh->sh_off = st_buf->B.sz; \ - hash = str_hash(name); \ - LIST_INSERT_HEAD(&st_buf->B.hash[hash], sh, \ - sh_next); \ - memcpy(&st_buf->B.buf[st_buf->B.sz], name, \ - strlen(name)); \ - st_buf->B.buf[st_buf->B.sz + strlen(name)] = '\0'; \ - st_buf->B.sz += strlen(name) + 1; \ - } \ - } else \ - sy_buf->B##SZ[sy_buf->n##B##s].st_name = \ - (Elf##SZ##_Word)_ST_NAME_EMPTY_##B; \ - sy_buf->n##B##s++; \ -} while (0) - - sy_buf = ecp->symtab->buf; - st_buf = ecp->strtab->buf; - - if (ecp->oec == ELFCLASS32) { - if (is_local_symbol(st_info)) - _ADDSYM(l, 32); - else - _ADDSYM(g, 32); - } else { - if (is_local_symbol(st_info)) - _ADDSYM(l, 64); - else - _ADDSYM(g, 64); - } - - /* Update section size. */ - ecp->symtab->sz = (sy_buf->nls + sy_buf->ngs) * - (ecp->oec == ELFCLASS32 ? sizeof(Elf32_Sym) : sizeof(Elf64_Sym)); - ecp->strtab->sz = st_buf->l.sz + st_buf->g.sz; - -#undef _ADDSYM -#undef _ST_NAME_EMPTY_l -#undef _ST_NAME_EMPTY_g -} - -void -finalize_external_symtab(struct elfcopy *ecp) -{ - struct symbuf *sy_buf; - struct strbuf *st_buf; - int i; - - /* - * Update st_name for global/weak symbols. (global/weak symbols - * are put after local symbols) - */ - sy_buf = ecp->symtab->buf; - st_buf = ecp->strtab->buf; - for (i = 0; (size_t) i < sy_buf->ngs; i++) { - if (ecp->oec == ELFCLASS32) { - if (sy_buf->g32[i].st_name == (Elf32_Word)-1) - sy_buf->g32[i].st_name = 0; - else - sy_buf->g32[i].st_name += st_buf->l.sz; - } else { - if (sy_buf->g64[i].st_name == (Elf64_Word)-1) - sy_buf->g64[i].st_name = 0; - else - sy_buf->g64[i].st_name += st_buf->l.sz; - } - } -} - -void -create_symtab_data(struct elfcopy *ecp) -{ - struct section *sy, *st; - struct symbuf *sy_buf; - struct strbuf *st_buf; - Elf_Data *gsydata, *lsydata, *gstdata, *lstdata; - GElf_Shdr shy, sht; - - sy = ecp->symtab; - st = ecp->strtab; - - if (gelf_getshdr(sy->os, ­) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - if (gelf_getshdr(st->os, &sht) == NULL) - errx(EXIT_FAILURE, "gelf_getshdr() failed: %s", - elf_errmsg(-1)); - - /* - * Create two Elf_Data for .symtab section of output object, one - * for local symbols and another for global symbols. Note that - * local symbols appear first in the .symtab. - */ - sy_buf = sy->buf; - if (sy_buf->nls > 0) { - if ((lsydata = elf_newdata(sy->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s.", - elf_errmsg(-1)); - if (ecp->oec == ELFCLASS32) { - lsydata->d_align = 4; - lsydata->d_off = 0; - lsydata->d_buf = sy_buf->l32; - lsydata->d_size = sy_buf->nls * - sizeof(Elf32_Sym); - lsydata->d_type = ELF_T_SYM; - lsydata->d_version = EV_CURRENT; - } else { - lsydata->d_align = 8; - lsydata->d_off = 0; - lsydata->d_buf = sy_buf->l64; - lsydata->d_size = sy_buf->nls * - sizeof(Elf64_Sym); - lsydata->d_type = ELF_T_SYM; - lsydata->d_version = EV_CURRENT; - } - } - if (sy_buf->ngs > 0) { - if ((gsydata = elf_newdata(sy->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s.", - elf_errmsg(-1)); - if (ecp->oec == ELFCLASS32) { - gsydata->d_align = 4; - gsydata->d_off = sy_buf->nls * - sizeof(Elf32_Sym); - gsydata->d_buf = sy_buf->g32; - gsydata->d_size = sy_buf->ngs * - sizeof(Elf32_Sym); - gsydata->d_type = ELF_T_SYM; - gsydata->d_version = EV_CURRENT; - } else { - gsydata->d_align = 8; - gsydata->d_off = sy_buf->nls * - sizeof(Elf64_Sym); - gsydata->d_buf = sy_buf->g64; - gsydata->d_size = sy_buf->ngs * - sizeof(Elf64_Sym); - gsydata->d_type = ELF_T_SYM; - gsydata->d_version = EV_CURRENT; - } - } - - /* - * Create two Elf_Data for .strtab, one for local symbol name - * and another for globals. Same as .symtab, local symbol names - * appear first. - */ - st_buf = st->buf; - if ((lstdata = elf_newdata(st->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s.", - elf_errmsg(-1)); - lstdata->d_align = 1; - lstdata->d_off = 0; - lstdata->d_buf = st_buf->l.buf; - lstdata->d_size = st_buf->l.sz; - lstdata->d_type = ELF_T_BYTE; - lstdata->d_version = EV_CURRENT; - - if (st_buf->g.sz > 0) { - if ((gstdata = elf_newdata(st->os)) == NULL) - errx(EXIT_FAILURE, "elf_newdata() failed: %s.", - elf_errmsg(-1)); - gstdata->d_align = 1; - gstdata->d_off = lstdata->d_size; - gstdata->d_buf = st_buf->g.buf; - gstdata->d_size = st_buf->g.sz; - gstdata->d_type = ELF_T_BYTE; - gstdata->d_version = EV_CURRENT; - } - - shy.sh_addr = 0; - shy.sh_addralign = (ecp->oec == ELFCLASS32 ? 4 : 8); - shy.sh_size = sy->sz; - shy.sh_type = SHT_SYMTAB; - shy.sh_flags = 0; - shy.sh_entsize = gelf_fsize(ecp->eout, ELF_T_SYM, 1, - EV_CURRENT); - /* - * According to SYSV abi, here sh_info is one greater than - * the symbol table index of the last local symbol(binding - * STB_LOCAL). - */ - shy.sh_info = sy_buf->nls; - - sht.sh_addr = 0; - sht.sh_addralign = 1; - sht.sh_size = st->sz; - sht.sh_type = SHT_STRTAB; - sht.sh_flags = 0; - sht.sh_entsize = 0; - sht.sh_info = 0; - sht.sh_link = 0; - - if (!gelf_update_shdr(sy->os, ­)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); - if (!gelf_update_shdr(st->os, &sht)) - errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s", - elf_errmsg(-1)); -} - -void -add_to_symop_list(struct elfcopy *ecp, const char *name, const char *newname, - unsigned int op) -{ - struct symop *s; - - assert (name != NULL); - STAILQ_FOREACH(s, &ecp->v_symop, symop_list) - if (!strcmp(name, s->name)) - goto found; - - if ((s = calloc(1, sizeof(*s))) == NULL) - errx(EXIT_FAILURE, "not enough memory"); - STAILQ_INSERT_TAIL(&ecp->v_symop, s, symop_list); - s->name = name; -found: - if (op == SYMOP_REDEF) - s->newname = newname; - s->op |= op; -} - -struct symop * -lookup_symop_list(struct elfcopy *ecp, const char *name, unsigned int op) -{ - struct symop *s, *ret; - const char *pattern; - - STAILQ_FOREACH(s, &ecp->v_symop, symop_list) { - if ((s->op & op) == 0) - continue; - if (name == NULL || !strcmp(name, s->name)) - return (s); - if ((ecp->flags & WILDCARD) == 0) - continue; - - /* Handle wildcards. */ - pattern = s->name; - if (pattern[0] == '!') { - /* Negative match. */ - pattern++; - ret = NULL; - } else { - /* Regular wildcard match. */ - ret = s; - } - if (!fnmatch(pattern, name, 0)) - return (ret); - } - - return (NULL); -} - -static int -lookup_exact_string(hash_head *buckets, const char *buf, const char *s) -{ - struct sthash *sh; - uint32_t hash; - - hash = str_hash(s); - LIST_FOREACH(sh, &buckets[hash], sh_next) - if (strcmp(buf + sh->sh_off, s) == 0) - return sh->sh_off; - return (-1); -} - -uint32_t -str_hash(const char *s) -{ - uint32_t hash; - - for (hash = 2166136261UL; *s; s++) - hash = (hash ^ *s) * 16777619; - - return (hash & (STHASHSIZE - 1)); -} diff --git a/contrib/elftoolchain/elfdump/Makefile b/contrib/elftoolchain/elfdump/Makefile deleted file mode 100644 index 2af19b4f..00000000 --- a/contrib/elftoolchain/elfdump/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= elfdump -WARNS?= 6 - -DPADD= ${LIBELFTC} ${LIBELF} -LDADD= -lelftc -lelf - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/elfdump/elfdump.1 b/contrib/elftoolchain/elfdump/elfdump.1 deleted file mode 100644 index 2d7eacb3..00000000 --- a/contrib/elftoolchain/elfdump/elfdump.1 +++ /dev/null @@ -1,158 +0,0 @@ -.\" Copyright (c) 2003 David O'Brien -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD: src/usr.bin/elfdump/elfdump.1,v 1.6 2005/01/18 13:43:48 ru Exp $ -.\" $Id$ -.\" -.Dd August 25, 2011 -.Dt ELFDUMP 1 -.Os -.Sh NAME -.Nm elfdump -.Nd "display information about" -.Tn ELF -files -.Sh SYNOPSIS -.Nm -.Fl a | cdeGhiknprsv -.Op Fl S -.Op Fl V -.Op Fl N Ar name -.Op Fl w Ar file -.Ar file ... -.Sh DESCRIPTION -The -.Nm -utility -dumps various information about the specified -.Tn ELF -.Ar file . -.Pp -The options are as follows: -.Bl -tag -width ".Fl w Ar file" -.It Fl a -Dump all information. -.It Fl c -Dump section headers. -.It Fl d -Dump dynamic symbols. -.It Fl e -Dump ELF header. -.It Fl G -Dump the GOT. -.It Fl h -Dump the hash values. -.It Fl i -Dump the dynamic interpreter. -.It Fl k -Dump the ELF checksum. -.It Fl n -Dump note sections. -.It Fl N Ar name -Only dump the section with the specific -.Ar name . -Archive symbol table can be specified with -the special section name ARSYM. -More than one -.Fl N -option may appear. -.It Fl p -Dump the program header. -.It Fl r -Dump relocations. -.It Fl s -Dump the symbol table. -.It Fl S -Output in the Solaris -.Nm -format. -.It Fl v -Dump the symbol-versioning sections. -.It Fl V -Print a version identifier and exit. -.It Fl w Ar file -Write output to a -.Ar file -instead of the standard output. -.El -.Sh EXIT STATUS -.Ex -std -.Sh EXAMPLES -The following is an example of a typical usage -of the -.Nm -command: -.Pp -.Dl "elfdump -a -w output /bin/ls" -.Pp -To dump the content of '.dynsym' symbol table: -.Pp -.Dl "elfdump -s -N .dynsym /bin/ls" -.Pp -To dump the archive symbol table, -but not the symbol tables of archive members: -.Pp -.Dl "elfdump -s -N ARSYM /usr/lib/libelf.a" -.Pp -To dump the content of .got section and -the symbol-versioning sections in Solaris -.Nm -format: -.Pp -.Dl "elfdump -S -Gv /bin/ls" -.Sh SEE ALSO -.Xr objdump 1 , -.Xr readelf 1 , -.Xr elf 3 -.Rs -.%A "AT&T Unix Systems Labs" -.%T "System V Application Binary Interface" -.%O http://www.sco.com/developers/gabi/ -.Re -.Sh HISTORY -The -.Nm -utility first appeared in -.Fx 5.0 . -.Sh AUTHORS -.An -nosplit -The -.Nm -utility -was written by -.An Jake Burkholder Aq Mt jake@FreeBSD.org . -Later it was rewritten based on the -libelf library. -This -manual page was written by -.An David O'Brien Aq Mt obrien@FreeBSD.org . -.Pp -.An Kai Wang Aq Mt kaiw@FreeBSD.org -rewrote it using the -.Lb libelf -and implemented additional functionality. -.Sh BUGS -Does not fully implement the -.Tn ELF -gABI. diff --git a/contrib/elftoolchain/elfdump/elfdump.c b/contrib/elftoolchain/elfdump/elfdump.c deleted file mode 100644 index 41cda5b5..00000000 --- a/contrib/elftoolchain/elfdump/elfdump.c +++ /dev/null @@ -1,2697 +0,0 @@ -/*- - * Copyright (c) 2007-2012 Kai Wang - * Copyright (c) 2003 David O'Brien. All rights reserved. - * Copyright (c) 2001 Jake Burkholder - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef USE_LIBARCHIVE_AR -#include -#include -#endif - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -#if defined(ELFTC_NEED_ELF_NOTE_DEFINITION) -#include "native-elf-format.h" -#if ELFTC_CLASS == ELFCLASS32 -typedef Elf32_Nhdr Elf_Note; -#else -typedef Elf64_Nhdr Elf_Note; -#endif -#endif - -/* elfdump(1) options. */ -#define ED_DYN (1<<0) -#define ED_EHDR (1<<1) -#define ED_GOT (1<<2) -#define ED_HASH (1<<3) -#define ED_INTERP (1<<4) -#define ED_NOTE (1<<5) -#define ED_PHDR (1<<6) -#define ED_REL (1<<7) -#define ED_SHDR (1<<8) -#define ED_SYMTAB (1<<9) -#define ED_SYMVER (1<<10) -#define ED_CHECKSUM (1<<11) -#define ED_ALL ((1<<12)-1) - -/* elfdump(1) run control flags. */ -#define SOLARIS_FMT (1<<0) -#define PRINT_FILENAME (1<<1) -#define PRINT_ARSYM (1<<2) -#define ONLY_ARSYM (1<<3) - -/* Convenient print macro. */ -#define PRT(...) fprintf(ed->out, __VA_ARGS__) - -/* Internal data structure for sections. */ -struct section { - const char *name; /* section name */ - Elf_Scn *scn; /* section scn */ - uint64_t off; /* section offset */ - uint64_t sz; /* section size */ - uint64_t entsize; /* section entsize */ - uint64_t align; /* section alignment */ - uint64_t type; /* section type */ - uint64_t flags; /* section flags */ - uint64_t addr; /* section virtual addr */ - uint32_t link; /* section link ndx */ - uint32_t info; /* section info ndx */ -}; - -struct spec_name { - const char *name; - STAILQ_ENTRY(spec_name) sn_list; -}; - -/* Structure encapsulates the global data for readelf(1). */ -struct elfdump { - FILE *out; /* output redirection. */ - const char *filename; /* current processing file. */ - const char *archive; /* archive name */ - int options; /* command line options. */ - int flags; /* run control flags. */ - Elf *elf; /* underlying ELF descriptor. */ -#ifndef USE_LIBARCHIVE_AR - Elf *ar; /* ar(1) archive descriptor. */ -#endif - GElf_Ehdr ehdr; /* ELF header. */ - int ec; /* ELF class. */ - size_t shnum; /* #sections. */ - struct section *sl; /* list of sections. */ - STAILQ_HEAD(, spec_name) snl; /* list of names specified by -N. */ -}; - -/* Relocation entry. */ -struct rel_entry { - union { - GElf_Rel rel; - GElf_Rela rela; - } u_r; - const char *symn; - uint32_t type; -}; - -#if defined(ELFTC_NEED_BYTEORDER_EXTENSIONS) -static __inline uint32_t -be32dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]); -} - -static __inline uint32_t -le32dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]); -} -#endif - -/* http://www.sco.com/developers/gabi/latest/ch5.dynamic.html#tag_encodings */ -static const char * -d_tags(uint64_t tag) -{ - static char unknown_buf[64]; - - switch (tag) { - case DT_NULL: return "DT_NULL"; - case DT_NEEDED: return "DT_NEEDED"; - case DT_PLTRELSZ: return "DT_PLTRELSZ"; - case DT_PLTGOT: return "DT_PLTGOT"; - case DT_HASH: return "DT_HASH"; - case DT_STRTAB: return "DT_STRTAB"; - case DT_SYMTAB: return "DT_SYMTAB"; - case DT_RELA: return "DT_RELA"; - case DT_RELASZ: return "DT_RELASZ"; - case DT_RELAENT: return "DT_RELAENT"; - case DT_STRSZ: return "DT_STRSZ"; - case DT_SYMENT: return "DT_SYMENT"; - case DT_INIT: return "DT_INIT"; - case DT_FINI: return "DT_FINI"; - case DT_SONAME: return "DT_SONAME"; - case DT_RPATH: return "DT_RPATH"; - case DT_SYMBOLIC: return "DT_SYMBOLIC"; - case DT_REL: return "DT_REL"; - case DT_RELSZ: return "DT_RELSZ"; - case DT_RELENT: return "DT_RELENT"; - case DT_PLTREL: return "DT_PLTREL"; - case DT_DEBUG: return "DT_DEBUG"; - case DT_TEXTREL: return "DT_TEXTREL"; - case DT_JMPREL: return "DT_JMPREL"; - case DT_BIND_NOW: return "DT_BIND_NOW"; - case DT_INIT_ARRAY: return "DT_INIT_ARRAY"; - case DT_FINI_ARRAY: return "DT_FINI_ARRAY"; - case DT_INIT_ARRAYSZ: return "DT_INIT_ARRAYSZ"; - case DT_FINI_ARRAYSZ: return "DT_FINI_ARRAYSZ"; - case DT_RUNPATH: return "DT_RUNPATH"; - case DT_FLAGS: return "DT_FLAGS"; - case DT_PREINIT_ARRAY: return "DT_PREINIT_ARRAY"; /* XXX DT_ENCODING */ - case DT_PREINIT_ARRAYSZ:return "DT_PREINIT_ARRAYSZ"; - /* 0x6000000D - 0x6ffff000 operating system-specific semantics */ - case 0x6ffffdf5: return "DT_GNU_PRELINKED"; - case 0x6ffffdf6: return "DT_GNU_CONFLICTSZ"; - case 0x6ffffdf7: return "DT_GNU_LIBLISTSZ"; - case 0x6ffffdf8: return "DT_SUNW_CHECKSUM"; - case DT_PLTPADSZ: return "DT_PLTPADSZ"; - case DT_MOVEENT: return "DT_MOVEENT"; - case DT_MOVESZ: return "DT_MOVESZ"; - case 0x6ffffdfc: return "DT_FEATURE"; - case DT_POSFLAG_1: return "DT_POSFLAG_1"; - case DT_SYMINSZ: return "DT_SYMINSZ"; - case DT_SYMINENT: return "DT_SYMINENT (DT_VALRNGHI)"; - case DT_ADDRRNGLO: return "DT_ADDRRNGLO"; - case DT_GNU_HASH: return "DT_GNU_HASH"; - case 0x6ffffef8: return "DT_GNU_CONFLICT"; - case 0x6ffffef9: return "DT_GNU_LIBLIST"; - case 0x6ffffefa: return "DT_CONFIG"; - case 0x6ffffefb: return "DT_DEPAUDIT"; - case 0x6ffffefc: return "DT_AUDIT"; - case 0x6ffffefd: return "DT_PLTPAD"; - case 0x6ffffefe: return "DT_MOVETAB"; - case DT_SYMINFO: return "DT_SYMINFO (DT_ADDRRNGHI)"; - case DT_RELACOUNT: return "DT_RELACOUNT"; - case DT_RELCOUNT: return "DT_RELCOUNT"; - case DT_FLAGS_1: return "DT_FLAGS_1"; - case DT_VERDEF: return "DT_VERDEF"; - case DT_VERDEFNUM: return "DT_VERDEFNUM"; - case DT_VERNEED: return "DT_VERNEED"; - case DT_VERNEEDNUM: return "DT_VERNEEDNUM"; - case 0x6ffffff0: return "DT_GNU_VERSYM"; - /* 0x70000000 - 0x7fffffff processor-specific semantics */ - case 0x70000000: return "DT_IA_64_PLT_RESERVE"; - case DT_AUXILIARY: return "DT_AUXILIARY"; - case DT_USED: return "DT_USED"; - case DT_FILTER: return "DT_FILTER"; - } - - snprintf(unknown_buf, sizeof(unknown_buf), - "", (unsigned long long)tag); - return (unknown_buf); -} - -static const char * -e_machines(unsigned int mach) -{ - static char machdesc[64]; - - switch (mach) { - case EM_NONE: return "EM_NONE"; - case EM_M32: return "EM_M32"; - case EM_SPARC: return "EM_SPARC"; - case EM_386: return "EM_386"; - case EM_68K: return "EM_68K"; - case EM_88K: return "EM_88K"; - case EM_IAMCU: return "EM_IAMCU"; - case EM_860: return "EM_860"; - case EM_MIPS: return "EM_MIPS"; - case EM_PPC: return "EM_PPC"; - case EM_PPC64: return "EM_PPC64"; - case EM_ARM: return "EM_ARM"; - case EM_ALPHA: return "EM_ALPHA (legacy)"; - case EM_SPARCV9:return "EM_SPARCV9"; - case EM_IA_64: return "EM_IA_64"; - case EM_X86_64: return "EM_X86_64"; - case EM_AARCH64:return "EM_AARCH64"; - case EM_RISCV: return "EM_RISCV"; - } - snprintf(machdesc, sizeof(machdesc), - "(unknown machine) -- type 0x%x", mach); - return (machdesc); -} - -static const char * -elf_type_str(unsigned int type) -{ - static char s_type[32]; - - switch (type) - { - case ET_NONE: return "ET_NONE"; - case ET_REL: return "ET_REL"; - case ET_EXEC: return "ET_EXEC"; - case ET_DYN: return "ET_DYN"; - case ET_CORE: return "ET_CORE"; - } - if (type >= ET_LOPROC) - snprintf(s_type, sizeof(s_type), "", type); - else if (type >= ET_LOOS && type <= ET_HIOS) - snprintf(s_type, sizeof(s_type), "", type); - else - snprintf(s_type, sizeof(s_type), "", ver); - return (s_ver); -} - -static const char * -elf_class_str(unsigned int class) -{ - static char s_class[32]; - - switch (class) { - case ELFCLASSNONE: return "ELFCLASSNONE"; - case ELFCLASS32: return "ELFCLASS32"; - case ELFCLASS64: return "ELFCLASS64"; - } - snprintf(s_class, sizeof(s_class), "", class); - return (s_class); -} - -static const char * -elf_data_str(unsigned int data) -{ - static char s_data[32]; - - switch (data) { - case ELFDATANONE: return "ELFDATANONE"; - case ELFDATA2LSB: return "ELFDATA2LSB"; - case ELFDATA2MSB: return "ELFDATA2MSB"; - } - snprintf(s_data, sizeof(s_data), "", data); - return (s_data); -} - -static const char *ei_abis[256] = { - [0] = "ELFOSABI_NONE", - [1] = "ELFOSABI_HPUX", - [2] = "ELFOSABI_NETBSD", - [3] = "ELFOSABI_GNU", - [4] = "ELFOSABI_HURD", - [5] = "ELFOSABI_86OPEN", - [6] = "ELFOSABI_SOLARIS", - [7] = "ELFOSABI_AIX", - [8] = "ELFOSABI_IRIX", - [9] = "ELFOSABI_FREEBSD", - [10] = "ELFOSABI_TRU64", - [11] = "ELFOSABI_MODESTO", - [12] = "ELFOSABI_OPENBSD", - [13] = "ELFOSABI_OPENVMS", - [14] = "ELFOSABI_NSK", - [15] = "ELFOSABI_AROS", - [16] = "ELFOSABI_FENIXOS", - [17] = "ELFOSABI_CLOUDABI", - [18] = "ELFOSABI_OPENVOS", - [64] = "ELFOSABI_ARM_AEABI", - [97] = "ELFOSABI_ARM", - [255] = "ELFOSABI_STANDALONE" -}; - -static const char * -elf_phdr_type_str(unsigned int type) -{ - static char s_type[32]; - - switch (type) { - case PT_NULL: return "PT_NULL"; - case PT_LOAD: return "PT_LOAD"; - case PT_DYNAMIC: return "PT_DYNAMIC"; - case PT_INTERP: return "PT_INTERP"; - case PT_NOTE: return "PT_NOTE"; - case PT_SHLIB: return "PT_SHLIB"; - case PT_PHDR: return "PT_PHDR"; - case PT_TLS: return "PT_TLS"; - case PT_GNU_EH_FRAME: return "PT_GNU_EH_FRAME"; - case PT_GNU_STACK: return "PT_GNU_STACK"; - case PT_GNU_RELRO: return "PT_GNU_RELRO"; - case PT_OPENBSD_RANDOMIZE: return "PT_OPENBSD_RANDOMIZE"; - case PT_OPENBSD_WXNEEDED: return "PT_OPENBSD_WXNEEDED"; - case PT_OPENBSD_BOOTDATA: return "PT_OPENBSD_BOOTDATA"; - } - snprintf(s_type, sizeof(s_type), "", type); - return (s_type); -} - -static const char *p_flags[] = { - "", "PF_X", "PF_W", "PF_X|PF_W", "PF_R", "PF_X|PF_R", "PF_W|PF_R", - "PF_X|PF_W|PF_R" -}; - -static const char * -sh_name(struct elfdump *ed, int ndx) -{ - static char num[10]; - - switch (ndx) { - case SHN_UNDEF: return "UNDEF"; - case SHN_ABS: return "ABS"; - case SHN_COMMON: return "COMMON"; - default: - if ((uint64_t)ndx < ed->shnum) - return (ed->sl[ndx].name); - else { - snprintf(num, sizeof(num), "%d", ndx); - return (num); - } - } -} - -/* http://www.sco.com/developers/gabi/latest/ch4.sheader.html#sh_type */ -static const char * -sh_types(uint64_t mach, uint64_t sht) { - static char unknown_buf[64]; - - if (sht < 0x60000000) { - switch (sht) { - case SHT_NULL: return "SHT_NULL"; - case SHT_PROGBITS: return "SHT_PROGBITS"; - case SHT_SYMTAB: return "SHT_SYMTAB"; - case SHT_STRTAB: return "SHT_STRTAB"; - case SHT_RELA: return "SHT_RELA"; - case SHT_HASH: return "SHT_HASH"; - case SHT_DYNAMIC: return "SHT_DYNAMIC"; - case SHT_NOTE: return "SHT_NOTE"; - case SHT_NOBITS: return "SHT_NOBITS"; - case SHT_REL: return "SHT_REL"; - case SHT_SHLIB: return "SHT_SHLIB"; - case SHT_DYNSYM: return "SHT_DYNSYM"; - case SHT_INIT_ARRAY: return "SHT_INIT_ARRAY"; - case SHT_FINI_ARRAY: return "SHT_FINI_ARRAY"; - case SHT_PREINIT_ARRAY: return "SHT_PREINIT_ARRAY"; - case SHT_GROUP: return "SHT_GROUP"; - case SHT_SYMTAB_SHNDX: return "SHT_SYMTAB_SHNDX"; - } - } else if (sht < 0x70000000) { - /* 0x60000000-0x6fffffff operating system-specific semantics */ - switch (sht) { - case 0x6ffffff0: return "XXX:VERSYM"; - case SHT_SUNW_dof: return "SHT_SUNW_dof"; - case SHT_GNU_HASH: return "SHT_GNU_HASH"; - case 0x6ffffff7: return "SHT_GNU_LIBLIST"; - case 0x6ffffffc: return "XXX:VERDEF"; - case SHT_SUNW_verdef: return "SHT_SUNW(GNU)_verdef"; - case SHT_SUNW_verneed: return "SHT_SUNW(GNU)_verneed"; - case SHT_SUNW_versym: return "SHT_SUNW(GNU)_versym"; - } - } else if (sht < 0x80000000) { - /* 0x70000000 - 0x7fffffff processor-specific semantics */ - switch (mach) { - case EM_ARM: - switch (sht) { - case SHT_ARM_EXIDX: return "SHT_ARM_EXIDX"; - case SHT_ARM_PREEMPTMAP: return "SHT_ARM_PREEMPTMAP"; - case SHT_ARM_ATTRIBUTES: return "SHT_ARM_ATTRIBUTES"; - case SHT_ARM_DEBUGOVERLAY: - return "SHT_ARM_DEBUGOVERLAY"; - case SHT_ARM_OVERLAYSECTION: - return "SHT_ARM_OVERLAYSECTION"; - } - break; - case EM_IA_64: - switch (sht) { - case 0x70000000: return "SHT_IA_64_EXT"; - case 0x70000001: return "SHT_IA_64_UNWIND"; - } - break; - case EM_MIPS: - switch (sht) { - case SHT_MIPS_REGINFO: return "SHT_MIPS_REGINFO"; - case SHT_MIPS_OPTIONS: return "SHT_MIPS_OPTIONS"; - case SHT_MIPS_ABIFLAGS: return "SHT_MIPS_ABIFLAGS"; - } - break; - } - switch (sht) { - case 0x7ffffffd: return "XXX:AUXILIARY"; - case 0x7fffffff: return "XXX:FILTER"; - } - } - /* 0x80000000 - 0xffffffff application programs */ - - snprintf(unknown_buf, sizeof(unknown_buf), - "", (unsigned long long)sht); - return (unknown_buf); -} - -/* - * Define known section flags. These flags are defined in the order - * they are to be printed out. - */ -#define DEFINE_SHFLAGS() \ - DEFINE_SHF(WRITE) \ - DEFINE_SHF(ALLOC) \ - DEFINE_SHF(EXECINSTR) \ - DEFINE_SHF(MERGE) \ - DEFINE_SHF(STRINGS) \ - DEFINE_SHF(INFO_LINK) \ - DEFINE_SHF(LINK_ORDER) \ - DEFINE_SHF(OS_NONCONFORMING) \ - DEFINE_SHF(GROUP) \ - DEFINE_SHF(TLS) \ - DEFINE_SHF(COMPRESSED) - -#undef DEFINE_SHF -#define DEFINE_SHF(F) "SHF_" #F "|" -#define ALLSHFLAGS DEFINE_SHFLAGS() - -static const char * -sh_flags(uint64_t shf) -{ - static char flg[sizeof(ALLSHFLAGS)+1]; - - flg[0] = '\0'; - -#undef DEFINE_SHF -#define DEFINE_SHF(N) \ - if (shf & SHF_##N) \ - strcat(flg, "SHF_" #N "|"); \ - - DEFINE_SHFLAGS() - - flg[strlen(flg) - 1] = '\0'; /* Remove the trailing "|". */ - - return (flg); -} - -static const char * -st_type(unsigned int mach, unsigned int type) -{ - static char s_type[32]; - - switch (type) { - case STT_NOTYPE: return "STT_NOTYPE"; - case STT_OBJECT: return "STT_OBJECT"; - case STT_FUNC: return "STT_FUNC"; - case STT_SECTION: return "STT_SECTION"; - case STT_FILE: return "STT_FILE"; - case STT_COMMON: return "STT_COMMON"; - case STT_TLS: return "STT_TLS"; - case 13: - if (mach == EM_SPARCV9) - return "STT_SPARC_REGISTER"; - break; - } - snprintf(s_type, sizeof(s_type), "", type); - return (s_type); -} - -static const char * -st_type_S(unsigned int type) -{ - static char s_type[32]; - - switch (type) { - case STT_NOTYPE: return "NOTY"; - case STT_OBJECT: return "OBJT"; - case STT_FUNC: return "FUNC"; - case STT_SECTION: return "SECT"; - case STT_FILE: return "FILE"; - } - snprintf(s_type, sizeof(s_type), "", type); - return (s_type); -} - -static const char * -st_bindings(unsigned int sbind) -{ - static char s_sbind[32]; - - switch (sbind) { - case STB_LOCAL: return "STB_LOCAL"; - case STB_GLOBAL: return "STB_GLOBAL"; - case STB_WEAK: return "STB_WEAK"; - case STB_GNU_UNIQUE: return "STB_GNU_UNIQUE"; - default: - if (sbind >= STB_LOOS && sbind <= STB_HIOS) - return "OS"; - else if (sbind >= STB_LOPROC && sbind <= STB_HIPROC) - return "PROC"; - else - snprintf(s_sbind, sizeof(s_sbind), "", - sbind); - return (s_sbind); - } -} - -static const char * -st_bindings_S(unsigned int sbind) -{ - static char s_sbind[32]; - - switch (sbind) { - case STB_LOCAL: return "LOCL"; - case STB_GLOBAL: return "GLOB"; - case STB_WEAK: return "WEAK"; - case STB_GNU_UNIQUE: return "UNIQ"; - default: - if (sbind >= STB_LOOS && sbind <= STB_HIOS) - return "OS"; - else if (sbind >= STB_LOPROC && sbind <= STB_HIPROC) - return "PROC"; - else - snprintf(s_sbind, sizeof(s_sbind), "<%#x>", - sbind); - return (s_sbind); - } -} - -static unsigned char st_others[] = { - 'D', 'I', 'H', 'P' -}; - -static void add_name(struct elfdump *ed, const char *name); -static void elf_print_object(struct elfdump *ed); -static void elf_print_elf(struct elfdump *ed); -static void elf_print_ehdr(struct elfdump *ed); -static void elf_print_phdr(struct elfdump *ed); -static void elf_print_shdr(struct elfdump *ed); -static void elf_print_symtab(struct elfdump *ed, int i); -static void elf_print_symtabs(struct elfdump *ed); -static void elf_print_symver(struct elfdump *ed); -static void elf_print_verdef(struct elfdump *ed, struct section *s); -static void elf_print_verneed(struct elfdump *ed, struct section *s); -static void elf_print_interp(struct elfdump *ed); -static void elf_print_dynamic(struct elfdump *ed); -static void elf_print_rel_entry(struct elfdump *ed, struct section *s, - int j, struct rel_entry *r); -static void elf_print_rela(struct elfdump *ed, struct section *s, - Elf_Data *data); -static void elf_print_rel(struct elfdump *ed, struct section *s, - Elf_Data *data); -static void elf_print_reloc(struct elfdump *ed); -static void elf_print_got(struct elfdump *ed); -static void elf_print_got_section(struct elfdump *ed, struct section *s); -static void elf_print_note(struct elfdump *ed); -static void elf_print_svr4_hash(struct elfdump *ed, struct section *s); -static void elf_print_svr4_hash64(struct elfdump *ed, struct section *s); -static void elf_print_gnu_hash(struct elfdump *ed, struct section *s); -static void elf_print_hash(struct elfdump *ed); -static void elf_print_checksum(struct elfdump *ed); -static void find_gotrel(struct elfdump *ed, struct section *gs, - struct rel_entry *got); -static struct spec_name *find_name(struct elfdump *ed, const char *name); -static int get_ent_count(const struct section *s, int *ent_count); -static const char *get_symbol_name(struct elfdump *ed, uint32_t symtab, int i); -static const char *get_string(struct elfdump *ed, int strtab, size_t off); -static void get_versym(struct elfdump *ed, int i, uint16_t **vs, int *nvs); -static void load_sections(struct elfdump *ed); -static void unload_sections(struct elfdump *ed); -static void usage(void); -#ifdef USE_LIBARCHIVE_AR -static int ac_detect_ar(int fd); -static void ac_print_ar(struct elfdump *ed, int fd); -#else -static void elf_print_ar(struct elfdump *ed, int fd); -#endif /* USE_LIBARCHIVE_AR */ - -static struct option elfdump_longopts[] = -{ - { "help", no_argument, NULL, 'H' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; - -int -main(int ac, char **av) -{ - struct elfdump *ed, ed_storage; - struct spec_name *sn; - int ch, i; - - ed = &ed_storage; - memset(ed, 0, sizeof(*ed)); - STAILQ_INIT(&ed->snl); - ed->out = stdout; - while ((ch = getopt_long(ac, av, "acdeiGHhknN:prsSvVw:", - elfdump_longopts, NULL)) != -1) - switch (ch) { - case 'a': - ed->options = ED_ALL; - break; - case 'c': - ed->options |= ED_SHDR; - break; - case 'd': - ed->options |= ED_DYN; - break; - case 'e': - ed->options |= ED_EHDR; - break; - case 'i': - ed->options |= ED_INTERP; - break; - case 'G': - ed->options |= ED_GOT; - break; - case 'h': - ed->options |= ED_HASH; - break; - case 'k': - ed->options |= ED_CHECKSUM; - break; - case 'n': - ed->options |= ED_NOTE; - break; - case 'N': - add_name(ed, optarg); - break; - case 'p': - ed->options |= ED_PHDR; - break; - case 'r': - ed->options |= ED_REL; - break; - case 's': - ed->options |= ED_SYMTAB; - break; - case 'S': - ed->flags |= SOLARIS_FMT; - break; - case 'v': - ed->options |= ED_SYMVER; - break; - case 'V': - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), - elftc_version()); - exit(EXIT_SUCCESS); - break; - case 'w': - if ((ed->out = fopen(optarg, "w")) == NULL) - err(EXIT_FAILURE, "%s", optarg); - break; - case '?': - case 'H': - default: - usage(); - } - - ac -= optind; - av += optind; - - if (ed->options == 0) - ed->options = ED_ALL; - sn = NULL; - if (ed->options & ED_SYMTAB && - (STAILQ_EMPTY(&ed->snl) || (sn = find_name(ed, "ARSYM")) != NULL)) { - ed->flags |= PRINT_ARSYM; - if (sn != NULL) { - STAILQ_REMOVE(&ed->snl, sn, spec_name, sn_list); - if (STAILQ_EMPTY(&ed->snl)) - ed->flags |= ONLY_ARSYM; - } - } - if (ac == 0) - usage(); - if (ac > 1) - ed->flags |= PRINT_FILENAME; - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - for (i = 0; i < ac; i++) { - ed->filename = av[i]; - ed->archive = NULL; - elf_print_object(ed); - } - - exit(EXIT_SUCCESS); -} - -#ifdef USE_LIBARCHIVE_AR - -/* Archive symbol table entry. */ -struct arsym_entry { - char *sym_name; - size_t off; -}; - -/* - * Convenient wrapper for general libarchive error handling. - */ -#define AC(CALL) do { \ - if ((CALL)) { \ - warnx("%s", archive_error_string(a)); \ - return; \ - } \ -} while (0) - -/* - * Detect an ar(1) archive using libarchive(3). - */ -static int -ac_detect_ar(int fd) -{ - struct archive *a; - struct archive_entry *entry; - int r; - - r = -1; - if ((a = archive_read_new()) == NULL) - return (0); - archive_read_support_format_ar(a); - if (archive_read_open_fd(a, fd, 10240) == ARCHIVE_OK) - r = archive_read_next_header(a, &entry); - archive_read_close(a); - archive_read_free(a); - - return (r == ARCHIVE_OK); -} - -/* - * Dump an ar(1) archive using libarchive(3). - */ -static void -ac_print_ar(struct elfdump *ed, int fd) -{ - struct archive *a; - struct archive_entry *entry; - struct arsym_entry *arsym; - const char *name; - char idx[10], *b; - void *buff; - size_t size; - uint32_t cnt, i; - int r; - - if (lseek(fd, 0, SEEK_SET) == -1) - err(EXIT_FAILURE, "lseek failed"); - if ((a = archive_read_new()) == NULL) - errx(EXIT_FAILURE, "%s", archive_error_string(a)); - archive_read_support_format_ar(a); - AC(archive_read_open_fd(a, fd, 10240)); - for(;;) { - r = archive_read_next_header(a, &entry); - if (r == ARCHIVE_FATAL) - errx(EXIT_FAILURE, "%s", archive_error_string(a)); - if (r == ARCHIVE_EOF) - break; - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY) - warnx("%s", archive_error_string(a)); - if (r == ARCHIVE_RETRY) - continue; - name = archive_entry_pathname(entry); - size = archive_entry_size(entry); - if (size == 0) - continue; - if ((buff = malloc(size)) == NULL) { - warn("malloc failed"); - continue; - } - if (archive_read_data(a, buff, size) != (ssize_t)size) { - warnx("%s", archive_error_string(a)); - free(buff); - continue; - } - - /* - * Note that when processing arsym via libarchive, there is - * no way to tell which member a certain symbol belongs to, - * since we can not just "lseek" to a member offset and read - * the member header. - */ - if (!strcmp(name, "/") && ed->flags & PRINT_ARSYM) { - b = buff; - cnt = be32dec(b); - if (cnt == 0) { - free(buff); - continue; - } - arsym = calloc(cnt, sizeof(*arsym)); - if (arsym == NULL) - err(EXIT_FAILURE, "calloc failed"); - b += sizeof(uint32_t); - for (i = 0; i < cnt; i++) { - arsym[i].off = be32dec(b); - b += sizeof(uint32_t); - } - for (i = 0; i < cnt; i++) { - arsym[i].sym_name = b; - b += strlen(b) + 1; - } - if (ed->flags & SOLARIS_FMT) { - PRT("\nSymbol Table: (archive)\n"); - PRT(" index offset symbol\n"); - } else - PRT("\nsymbol table (archive):\n"); - for (i = 0; i < cnt; i++) { - if (ed->flags & SOLARIS_FMT) { - snprintf(idx, sizeof(idx), "[%d]", i); - PRT("%10s ", idx); - PRT("0x%8.8jx ", - (uintmax_t)arsym[i].off); - PRT("%s\n", arsym[i].sym_name); - } else { - PRT("\nentry: %d\n", i); - PRT("\toffset: %#jx\n", - (uintmax_t)arsym[i].off); - PRT("\tsymbol: %s\n", - arsym[i].sym_name); - } - } - free(arsym); - free(buff); - /* No need to continue if we only dump ARSYM. */ - if (ed->flags & ONLY_ARSYM) { - AC(archive_read_close(a)); - AC(archive_read_free(a)); - return; - } - continue; - } - if ((ed->elf = elf_memory(buff, size)) == NULL) { - warnx("elf_memroy() failed: %s", - elf_errmsg(-1)); - free(buff); - continue; - } - /* Skip non-ELF member. */ - if (elf_kind(ed->elf) == ELF_K_ELF) { - printf("\n%s(%s):\n", ed->archive, name); - elf_print_elf(ed); - } - elf_end(ed->elf); - free(buff); - } - AC(archive_read_close(a)); - AC(archive_read_free(a)); -} - -#else /* USE_LIBARCHIVE_AR */ - -/* - * Dump an ar(1) archive. - */ -static void -elf_print_ar(struct elfdump *ed, int fd) -{ - Elf *e; - Elf_Arhdr *arh; - Elf_Arsym *arsym; - Elf_Cmd cmd; - char idx[21]; - size_t cnt, i; - - ed->ar = ed->elf; - - if (ed->flags & PRINT_ARSYM) { - cnt = 0; - if ((arsym = elf_getarsym(ed->ar, &cnt)) == NULL) { - warnx("elf_getarsym failed: %s", elf_errmsg(-1)); - goto print_members; - } - if (cnt == 0) - goto print_members; - if (ed->flags & SOLARIS_FMT) { - PRT("\nSymbol Table: (archive)\n"); - PRT(" index offset member name and symbol\n"); - } else - PRT("\nsymbol table (archive):\n"); - for (i = 0; i < cnt - 1; i++) { - if (elf_rand(ed->ar, arsym[i].as_off) != - arsym[i].as_off) { - warnx("elf_rand failed: %s", elf_errmsg(-1)); - break; - } - if ((e = elf_begin(fd, ELF_C_READ, ed->ar)) == NULL) { - warnx("elf_begin failed: %s", elf_errmsg(-1)); - break; - } - if ((arh = elf_getarhdr(e)) == NULL) { - warnx("elf_getarhdr failed: %s", - elf_errmsg(-1)); - break; - } - if (ed->flags & SOLARIS_FMT) { - snprintf(idx, sizeof(idx), "[%zu]", i); - PRT("%10s ", idx); - PRT("0x%8.8jx ", - (uintmax_t)arsym[i].as_off); - PRT("(%s):%s\n", arh->ar_name, - arsym[i].as_name); - } else { - PRT("\nentry: %zu\n", i); - PRT("\toffset: %#jx\n", - (uintmax_t)arsym[i].as_off); - PRT("\tmember: %s\n", arh->ar_name); - PRT("\tsymbol: %s\n", arsym[i].as_name); - } - elf_end(e); - } - - /* No need to continue if we only dump ARSYM. */ - if (ed->flags & ONLY_ARSYM) - return; - } - -print_members: - - /* Rewind the archive. */ - if (elf_rand(ed->ar, SARMAG) != SARMAG) { - warnx("elf_rand failed: %s", elf_errmsg(-1)); - return; - } - - /* Dump each member of the archive. */ - cmd = ELF_C_READ; - while ((ed->elf = elf_begin(fd, cmd, ed->ar)) != NULL) { - /* Skip non-ELF member. */ - if (elf_kind(ed->elf) == ELF_K_ELF) { - if ((arh = elf_getarhdr(ed->elf)) == NULL) { - warnx("elf_getarhdr failed: %s", - elf_errmsg(-1)); - break; - } - printf("\n%s(%s):\n", ed->archive, arh->ar_name); - elf_print_elf(ed); - } - cmd = elf_next(ed->elf); - elf_end(ed->elf); - } -} - -#endif /* USE_LIBARCHIVE_AR */ - -/* - * Dump an object. (ELF object or ar(1) archive) - */ -static void -elf_print_object(struct elfdump *ed) -{ - int fd; - - if ((fd = open(ed->filename, O_RDONLY)) == -1) { - warn("open %s failed", ed->filename); - return; - } - -#ifdef USE_LIBARCHIVE_AR - if (ac_detect_ar(fd)) { - ed->archive = ed->filename; - ac_print_ar(ed, fd); - return; - } -#endif /* USE_LIBARCHIVE_AR */ - - if ((ed->elf = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { - warnx("elf_begin() failed: %s", elf_errmsg(-1)); - return; - } - - switch (elf_kind(ed->elf)) { - case ELF_K_NONE: - warnx("Not an ELF file."); - return; - case ELF_K_ELF: - if (ed->flags & PRINT_FILENAME) - printf("\n%s:\n", ed->filename); - elf_print_elf(ed); - break; - case ELF_K_AR: -#ifndef USE_LIBARCHIVE_AR - ed->archive = ed->filename; - elf_print_ar(ed, fd); -#endif - break; - default: - warnx("Internal: libelf returned unknown elf kind."); - return; - } - - elf_end(ed->elf); -} - -/* - * Dump an ELF object. - */ -static void -elf_print_elf(struct elfdump *ed) -{ - - if (gelf_getehdr(ed->elf, &ed->ehdr) == NULL) { - warnx("gelf_getehdr failed: %s", elf_errmsg(-1)); - return; - } - if ((ed->ec = gelf_getclass(ed->elf)) == ELFCLASSNONE) { - warnx("gelf_getclass failed: %s", elf_errmsg(-1)); - return; - } - - if (ed->options & (ED_SHDR | ED_DYN | ED_REL | ED_GOT | ED_SYMTAB | - ED_SYMVER | ED_NOTE | ED_HASH)) - load_sections(ed); - - if (ed->options & ED_EHDR) - elf_print_ehdr(ed); - if (ed->options & ED_PHDR) - elf_print_phdr(ed); - if (ed->options & ED_INTERP) - elf_print_interp(ed); - if (ed->options & ED_SHDR) - elf_print_shdr(ed); - if (ed->options & ED_DYN) - elf_print_dynamic(ed); - if (ed->options & ED_REL) - elf_print_reloc(ed); - if (ed->options & ED_GOT) - elf_print_got(ed); - if (ed->options & ED_SYMTAB) - elf_print_symtabs(ed); - if (ed->options & ED_SYMVER) - elf_print_symver(ed); - if (ed->options & ED_NOTE) - elf_print_note(ed); - if (ed->options & ED_HASH) - elf_print_hash(ed); - if (ed->options & ED_CHECKSUM) - elf_print_checksum(ed); - - unload_sections(ed); -} - -/* - * Read the section headers from ELF object and store them in the - * internal cache. - */ -static void -load_sections(struct elfdump *ed) -{ - struct section *s; - const char *name; - Elf_Scn *scn; - GElf_Shdr sh; - size_t shstrndx, ndx; - int elferr; - - assert(ed->sl == NULL); - - if (!elf_getshnum(ed->elf, &ed->shnum)) { - warnx("elf_getshnum failed: %s", elf_errmsg(-1)); - return; - } - if (ed->shnum == 0) - return; - if ((ed->sl = calloc(ed->shnum, sizeof(*ed->sl))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - if (!elf_getshstrndx(ed->elf, &shstrndx)) { - warnx("elf_getshstrndx failed: %s", elf_errmsg(-1)); - return; - } - if ((scn = elf_getscn(ed->elf, 0)) == NULL) { - warnx("elf_getscn failed: %s", elf_errmsg(-1)); - return; - } - (void) elf_errno(); - do { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((name = elf_strptr(ed->elf, shstrndx, sh.sh_name)) == NULL) { - (void) elf_errno(); - name = "ERROR"; - } - if ((ndx = elf_ndxscn(scn)) == SHN_UNDEF) - if ((elferr = elf_errno()) != 0) { - warnx("elf_ndxscn failed: %s", - elf_errmsg(elferr)); - continue; - } - if (ndx >= ed->shnum) { - warnx("section index of '%s' out of range", name); - continue; - } - s = &ed->sl[ndx]; - s->name = name; - s->scn = scn; - s->off = sh.sh_offset; - s->sz = sh.sh_size; - s->entsize = sh.sh_entsize; - s->align = sh.sh_addralign; - s->type = sh.sh_type; - s->flags = sh.sh_flags; - s->addr = sh.sh_addr; - s->link = sh.sh_link; - s->info = sh.sh_info; - } while ((scn = elf_nextscn(ed->elf, scn)) != NULL); - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); -} - -/* - * Release section related resources. - */ -static void -unload_sections(struct elfdump *ed) -{ - if (ed->sl != NULL) { - free(ed->sl); - ed->sl = NULL; - } -} - -/* - * Add a name to the '-N' name list. - */ -static void -add_name(struct elfdump *ed, const char *name) -{ - struct spec_name *sn; - - if (find_name(ed, name)) - return; - if ((sn = malloc(sizeof(*sn))) == NULL) { - warn("malloc failed"); - return; - } - sn->name = name; - STAILQ_INSERT_TAIL(&ed->snl, sn, sn_list); -} - -/* - * Lookup a name in the '-N' name list. - */ -static struct spec_name * -find_name(struct elfdump *ed, const char *name) -{ - struct spec_name *sn; - - STAILQ_FOREACH(sn, &ed->snl, sn_list) { - if (!strcmp(sn->name, name)) - return (sn); - } - - return (NULL); -} - -/* - * Retrieve the name of a symbol using the section index of the symbol - * table and the index of the symbol within that table. - */ -static const char * -get_symbol_name(struct elfdump *ed, uint32_t symtab, int i) -{ - static char sname[64]; - struct section *s; - const char *name; - GElf_Sym sym; - Elf_Data *data; - int elferr; - - if (symtab >= ed->shnum) - return (""); - s = &ed->sl[symtab]; - if (s->type != SHT_SYMTAB && s->type != SHT_DYNSYM) - return (""); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return (""); - } - if (gelf_getsym(data, i, &sym) != &sym) - return (""); - if (GELF_ST_TYPE(sym.st_info) == STT_SECTION) { - if (sym.st_shndx < ed->shnum) { - snprintf(sname, sizeof(sname), "%s (section)", - ed->sl[sym.st_shndx].name); - return (sname); - } else - return (""); - } - if ((name = elf_strptr(ed->elf, s->link, sym.st_name)) == NULL) - return (""); - - return (name); -} - -/* - * Retrieve a string using string table section index and the string offset. - */ -static const char* -get_string(struct elfdump *ed, int strtab, size_t off) -{ - const char *name; - - if ((name = elf_strptr(ed->elf, strtab, off)) == NULL) - return (""); - - return (name); -} - -/* - * Dump the ELF Executable Header. - */ -static void -elf_print_ehdr(struct elfdump *ed) -{ - - if (!STAILQ_EMPTY(&ed->snl)) - return; - - if (ed->flags & SOLARIS_FMT) { - PRT("\nELF Header\n"); - PRT(" ei_magic: { %#x, %c, %c, %c }\n", - ed->ehdr.e_ident[0], ed->ehdr.e_ident[1], - ed->ehdr.e_ident[2], ed->ehdr.e_ident[3]); - PRT(" ei_class: %-18s", - elf_class_str(ed->ehdr.e_ident[EI_CLASS])); - PRT(" ei_data: %s\n", - elf_data_str(ed->ehdr.e_ident[EI_DATA])); - PRT(" e_machine: %-18s", e_machines(ed->ehdr.e_machine)); - PRT(" e_version: %s\n", - elf_version_str(ed->ehdr.e_version)); - PRT(" e_type: %s\n", elf_type_str(ed->ehdr.e_type)); - PRT(" e_flags: %18d\n", ed->ehdr.e_flags); - PRT(" e_entry: %#18jx", (uintmax_t)ed->ehdr.e_entry); - PRT(" e_ehsize: %6d", ed->ehdr.e_ehsize); - PRT(" e_shstrndx:%5d\n", ed->ehdr.e_shstrndx); - PRT(" e_shoff: %#18jx", (uintmax_t)ed->ehdr.e_shoff); - PRT(" e_shentsize: %3d", ed->ehdr.e_shentsize); - PRT(" e_shnum: %5d\n", ed->ehdr.e_shnum); - PRT(" e_phoff: %#18jx", (uintmax_t)ed->ehdr.e_phoff); - PRT(" e_phentsize: %3d", ed->ehdr.e_phentsize); - PRT(" e_phnum: %5d\n", ed->ehdr.e_phnum); - } else { - PRT("\nelf header:\n"); - PRT("\n"); - PRT("\te_ident: %s %s %s\n", - elf_class_str(ed->ehdr.e_ident[EI_CLASS]), - elf_data_str(ed->ehdr.e_ident[EI_DATA]), - ei_abis[ed->ehdr.e_ident[EI_OSABI]]); - PRT("\te_type: %s\n", elf_type_str(ed->ehdr.e_type)); - PRT("\te_machine: %s\n", e_machines(ed->ehdr.e_machine)); - PRT("\te_version: %s\n", elf_version_str(ed->ehdr.e_version)); - PRT("\te_entry: %#jx\n", (uintmax_t)ed->ehdr.e_entry); - PRT("\te_phoff: %ju\n", (uintmax_t)ed->ehdr.e_phoff); - PRT("\te_shoff: %ju\n", (uintmax_t) ed->ehdr.e_shoff); - PRT("\te_flags: %u\n", ed->ehdr.e_flags); - PRT("\te_ehsize: %u\n", ed->ehdr.e_ehsize); - PRT("\te_phentsize: %u\n", ed->ehdr.e_phentsize); - PRT("\te_phnum: %u\n", ed->ehdr.e_phnum); - PRT("\te_shentsize: %u\n", ed->ehdr.e_shentsize); - PRT("\te_shnum: %u\n", ed->ehdr.e_shnum); - PRT("\te_shstrndx: %u\n", ed->ehdr.e_shstrndx); - } -} - -/* - * Dump the ELF Program Header Table. - */ -static void -elf_print_phdr(struct elfdump *ed) -{ - GElf_Phdr ph; - size_t phnum, i; - int header; - - if (elf_getphnum(ed->elf, &phnum) == 0) { - warnx("elf_getphnum failed: %s", elf_errmsg(-1)); - return; - } - header = 0; - for (i = 0; i < phnum; i++) { - if (gelf_getphdr(ed->elf, i, &ph) != &ph) { - warnx("elf_getphdr failed: %s", elf_errmsg(-1)); - continue; - } - if (!STAILQ_EMPTY(&ed->snl) && - find_name(ed, elf_phdr_type_str(ph.p_type)) == NULL) - continue; - if (ed->flags & SOLARIS_FMT) { - PRT("\nProgram Header[%zu]:\n", i); - PRT(" p_vaddr: %#-14jx", (uintmax_t)ph.p_vaddr); - PRT(" p_flags: [ %s ]\n", - p_flags[ph.p_flags & 0x7]); - PRT(" p_paddr: %#-14jx", (uintmax_t)ph.p_paddr); - PRT(" p_type: [ %s ]\n", - elf_phdr_type_str(ph.p_type)); - PRT(" p_filesz: %#-14jx", - (uintmax_t)ph.p_filesz); - PRT(" p_memsz: %#jx\n", (uintmax_t)ph.p_memsz); - PRT(" p_offset: %#-14jx", - (uintmax_t)ph.p_offset); - PRT(" p_align: %#jx\n", (uintmax_t)ph.p_align); - } else { - if (!header) { - PRT("\nprogram header:\n"); - header = 1; - } - PRT("\n"); - PRT("entry: %zu\n", i); - PRT("\tp_type: %s\n", elf_phdr_type_str(ph.p_type)); - PRT("\tp_offset: %ju\n", (uintmax_t)ph.p_offset); - PRT("\tp_vaddr: %#jx\n", (uintmax_t)ph.p_vaddr); - PRT("\tp_paddr: %#jx\n", (uintmax_t)ph.p_paddr); - PRT("\tp_filesz: %ju\n", (uintmax_t)ph.p_filesz); - PRT("\tp_memsz: %ju\n", (uintmax_t)ph.p_memsz); - PRT("\tp_flags: %s\n", p_flags[ph.p_flags & 0x7]); - PRT("\tp_align: %ju\n", (uintmax_t)ph.p_align); - } - } -} - -/* - * Dump the ELF Section Header Table. - */ -static void -elf_print_shdr(struct elfdump *ed) -{ - struct section *s; - size_t i; - - if (!STAILQ_EMPTY(&ed->snl)) - return; - - if ((ed->flags & SOLARIS_FMT) == 0) - PRT("\nsection header:\n"); - for (i = 0; i < ed->shnum; i++) { - s = &ed->sl[i]; - if (ed->flags & SOLARIS_FMT) { - if (i == 0) - continue; - PRT("\nSection Header[%zu]:", i); - PRT(" sh_name: %s\n", s->name); - PRT(" sh_addr: %#-14jx", (uintmax_t)s->addr); - if (s->flags != 0) - PRT(" sh_flags: [ %s ]\n", sh_flags(s->flags)); - else - PRT(" sh_flags: 0\n"); - PRT(" sh_size: %#-14jx", (uintmax_t)s->sz); - PRT(" sh_type: [ %s ]\n", - sh_types(ed->ehdr.e_machine, s->type)); - PRT(" sh_offset: %#-14jx", (uintmax_t)s->off); - PRT(" sh_entsize: %#jx\n", (uintmax_t)s->entsize); - PRT(" sh_link: %-14u", s->link); - PRT(" sh_info: %u\n", s->info); - PRT(" sh_addralign: %#jx\n", (uintmax_t)s->align); - } else { - PRT("\n"); - PRT("entry: %ju\n", (uintmax_t)i); - PRT("\tsh_name: %s\n", s->name); - PRT("\tsh_type: %s\n", - sh_types(ed->ehdr.e_machine, s->type)); - PRT("\tsh_flags: %s\n", sh_flags(s->flags)); - PRT("\tsh_addr: %#jx\n", (uintmax_t)s->addr); - PRT("\tsh_offset: %ju\n", (uintmax_t)s->off); - PRT("\tsh_size: %ju\n", (uintmax_t)s->sz); - PRT("\tsh_link: %u\n", s->link); - PRT("\tsh_info: %u\n", s->info); - PRT("\tsh_addralign: %ju\n", (uintmax_t)s->align); - PRT("\tsh_entsize: %ju\n", (uintmax_t)s->entsize); - } - } -} - -/* - * Return number of entries in the given section. We'd prefer ent_count be a - * size_t, but libelf APIs already use int for section indices. - */ -static int -get_ent_count(const struct section *s, int *ent_count) -{ - if (s->entsize == 0) { - warnx("section %s has entry size 0", s->name); - return (0); - } else if (s->sz / s->entsize > INT_MAX) { - warnx("section %s has invalid section count", s->name); - return (0); - } - *ent_count = (int)(s->sz / s->entsize); - return (1); -} - -/* - * Retrieve the content of the corresponding SHT_SUNW_versym section for - * a symbol table section. - */ -static void -get_versym(struct elfdump *ed, int i, uint16_t **vs, int *nvs) -{ - struct section *s; - Elf_Data *data; - size_t j; - int elferr; - - s = NULL; - for (j = 0; j < ed->shnum; j++) { - s = &ed->sl[j]; - if (s->type == SHT_SUNW_versym && s->link == (uint32_t)i) - break; - } - if (j >= ed->shnum) { - *vs = NULL; - return; - } - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - *vs = NULL; - return; - } - - *vs = data->d_buf; - assert(data->d_size == s->sz); - if (!get_ent_count(s, nvs)) - *nvs = 0; -} - -/* - * Dump the symbol table section. - */ -static void -elf_print_symtab(struct elfdump *ed, int i) -{ - struct section *s; - const char *name; - uint16_t *vs; - char idx[13]; - Elf_Data *data; - GElf_Sym sym; - int len, j, elferr, nvs; - - s = &ed->sl[i]; - if (ed->flags & SOLARIS_FMT) - PRT("\nSymbol Table Section: %s\n", s->name); - else - PRT("\nsymbol table (%s):\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - vs = NULL; - nvs = 0; - assert(data->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - if (ed->flags & SOLARIS_FMT) { - if (ed->ec == ELFCLASS32) - PRT(" index value "); - else - PRT(" index value "); - PRT("size type bind oth ver shndx name\n"); - get_versym(ed, i, &vs, &nvs); - if (vs != NULL && nvs != len) { - warnx("#symbol not equal to #versym"); - vs = NULL; - } - } - for (j = 0; j < len; j++) { - if (gelf_getsym(data, j, &sym) != &sym) { - warnx("gelf_getsym failed: %s", elf_errmsg(-1)); - continue; - } - name = get_string(ed, s->link, sym.st_name); - if (ed->flags & SOLARIS_FMT) { - snprintf(idx, sizeof(idx), "[%d]", j); - if (ed->ec == ELFCLASS32) - PRT("%10s ", idx); - else - PRT("%10s ", idx); - PRT("0x%8.8jx ", (uintmax_t)sym.st_value); - if (ed->ec == ELFCLASS32) - PRT("0x%8.8jx ", (uintmax_t)sym.st_size); - else - PRT("0x%12.12jx ", (uintmax_t)sym.st_size); - PRT("%s ", st_type_S(GELF_ST_TYPE(sym.st_info))); - PRT("%s ", st_bindings_S(GELF_ST_BIND(sym.st_info))); - PRT("%c ", st_others[sym.st_other]); - PRT("%3u ", (vs == NULL ? 0 : vs[j])); - PRT("%-11.11s ", sh_name(ed, sym.st_shndx)); - PRT("%s\n", name); - } else { - PRT("\nentry: %d\n", j); - PRT("\tst_name: %s\n", name); - PRT("\tst_value: %#jx\n", (uintmax_t)sym.st_value); - PRT("\tst_size: %ju\n", (uintmax_t)sym.st_size); - PRT("\tst_info: %s %s\n", - st_type(ed->ehdr.e_machine, - GELF_ST_TYPE(sym.st_info)), - st_bindings(GELF_ST_BIND(sym.st_info))); - PRT("\tst_shndx: %ju\n", (uintmax_t)sym.st_shndx); - } - } -} - -/* - * Dump the symbol tables. (.dynsym and .symtab) - */ -static void -elf_print_symtabs(struct elfdump *ed) -{ - size_t i; - - for (i = 0; i < ed->shnum; i++) - if ((ed->sl[i].type == SHT_SYMTAB || - ed->sl[i].type == SHT_DYNSYM) && - (STAILQ_EMPTY(&ed->snl) || find_name(ed, ed->sl[i].name))) - elf_print_symtab(ed, i); -} - -/* - * Dump the content of .dynamic section. - */ -static void -elf_print_dynamic(struct elfdump *ed) -{ - struct section *s; - const char *name; - char idx[13]; - Elf_Data *data; - GElf_Dyn dyn; - int elferr, i, len; - - s = NULL; - for (i = 0; (size_t)i < ed->shnum; i++) { - s = &ed->sl[i]; - if (s->type == SHT_DYNAMIC && - (STAILQ_EMPTY(&ed->snl) || find_name(ed, s->name))) - break; - } - if ((size_t)i >= ed->shnum) - return; - - if (ed->flags & SOLARIS_FMT) { - PRT("Dynamic Section: %s\n", s->name); - PRT(" index tag value\n"); - } else - PRT("\ndynamic:\n"); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - assert(data->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - for (i = 0; i < len; i++) { - if (gelf_getdyn(data, i, &dyn) != &dyn) { - warnx("gelf_getdyn failed: %s", elf_errmsg(-1)); - continue; - } - - if (ed->flags & SOLARIS_FMT) { - snprintf(idx, sizeof(idx), "[%d]", i); - PRT("%10s %-16s ", idx, d_tags(dyn.d_tag)); - } else { - PRT("\n"); - PRT("entry: %d\n", i); - PRT("\td_tag: %s\n", d_tags(dyn.d_tag)); - } - switch(dyn.d_tag) { - case DT_NEEDED: - case DT_SONAME: - case DT_RPATH: - case DT_RUNPATH: - if ((name = elf_strptr(ed->elf, s->link, - dyn.d_un.d_val)) == NULL) - name = ""; - if (ed->flags & SOLARIS_FMT) - PRT("%#-16jx %s\n", (uintmax_t)dyn.d_un.d_val, - name); - else - PRT("\td_val: %s\n", name); - break; - case DT_PLTRELSZ: - case DT_RELA: - case DT_RELASZ: - case DT_RELAENT: - case DT_RELACOUNT: - case DT_STRSZ: - case DT_SYMENT: - case DT_RELSZ: - case DT_RELENT: - case DT_PLTREL: - case DT_VERDEF: - case DT_VERDEFNUM: - case DT_VERNEED: - case DT_VERNEEDNUM: - case DT_VERSYM: - if (ed->flags & SOLARIS_FMT) - PRT("%#jx\n", (uintmax_t)dyn.d_un.d_val); - else - PRT("\td_val: %ju\n", - (uintmax_t)dyn.d_un.d_val); - break; - case DT_PLTGOT: - case DT_HASH: - case DT_GNU_HASH: - case DT_STRTAB: - case DT_SYMTAB: - case DT_INIT: - case DT_FINI: - case DT_REL: - case DT_JMPREL: - case DT_DEBUG: - if (ed->flags & SOLARIS_FMT) - PRT("%#jx\n", (uintmax_t)dyn.d_un.d_ptr); - else - PRT("\td_ptr: %#jx\n", - (uintmax_t)dyn.d_un.d_ptr); - break; - case DT_NULL: - case DT_SYMBOLIC: - case DT_TEXTREL: - default: - if (ed->flags & SOLARIS_FMT) - PRT("\n"); - break; - } - } -} - -/* - * Dump a .rel/.rela section entry. - */ -static void -elf_print_rel_entry(struct elfdump *ed, struct section *s, int j, - struct rel_entry *r) -{ - - if (ed->flags & SOLARIS_FMT) { - PRT(" %-23s ", elftc_reloc_type_str(ed->ehdr.e_machine, - GELF_R_TYPE(r->u_r.rel.r_info))); - PRT("%#12jx ", (uintmax_t)r->u_r.rel.r_offset); - if (r->type == SHT_RELA) - PRT("%10jd ", (intmax_t)r->u_r.rela.r_addend); - else - PRT(" "); - PRT("%-14s ", s->name); - PRT("%s\n", r->symn); - } else { - PRT("\n"); - PRT("entry: %d\n", j); - PRT("\tr_offset: %#jx\n", (uintmax_t)r->u_r.rel.r_offset); - if (ed->ec == ELFCLASS32) - PRT("\tr_info: %#jx\n", (uintmax_t) - ELF32_R_INFO(ELF64_R_SYM(r->u_r.rel.r_info), - ELF64_R_TYPE(r->u_r.rel.r_info))); - else - PRT("\tr_info: %#jx\n", (uintmax_t)r->u_r.rel.r_info); - if (r->type == SHT_RELA) - PRT("\tr_addend: %jd\n", - (intmax_t)r->u_r.rela.r_addend); - } -} - -/* - * Dump a relocation section of type SHT_RELA. - */ -static void -elf_print_rela(struct elfdump *ed, struct section *s, Elf_Data *data) -{ - struct rel_entry r; - int j, len; - - if (ed->flags & SOLARIS_FMT) { - PRT("\nRelocation Section: %s\n", s->name); - PRT(" type offset " - "addend section with respect to\n"); - } else - PRT("\nrelocation with addend (%s):\n", s->name); - r.type = SHT_RELA; - assert(data->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - for (j = 0; j < len; j++) { - if (gelf_getrela(data, j, &r.u_r.rela) != &r.u_r.rela) { - warnx("gelf_getrela failed: %s", - elf_errmsg(-1)); - continue; - } - r.symn = get_symbol_name(ed, s->link, - GELF_R_SYM(r.u_r.rela.r_info)); - elf_print_rel_entry(ed, s, j, &r); - } -} - -/* - * Dump a relocation section of type SHT_REL. - */ -static void -elf_print_rel(struct elfdump *ed, struct section *s, Elf_Data *data) -{ - struct rel_entry r; - int j, len; - - if (ed->flags & SOLARIS_FMT) { - PRT("\nRelocation Section: %s\n", s->name); - PRT(" type offset " - "section with respect to\n"); - } else - PRT("\nrelocation (%s):\n", s->name); - r.type = SHT_REL; - assert(data->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - for (j = 0; j < len; j++) { - if (gelf_getrel(data, j, &r.u_r.rel) != &r.u_r.rel) { - warnx("gelf_getrel failed: %s", elf_errmsg(-1)); - continue; - } - r.symn = get_symbol_name(ed, s->link, - GELF_R_SYM(r.u_r.rel.r_info)); - elf_print_rel_entry(ed, s, j, &r); - } -} - -/* - * Dump relocation sections. - */ -static void -elf_print_reloc(struct elfdump *ed) -{ - struct section *s; - Elf_Data *data; - size_t i; - int elferr; - - for (i = 0; i < ed->shnum; i++) { - s = &ed->sl[i]; - if ((s->type == SHT_REL || s->type == SHT_RELA) && - (STAILQ_EMPTY(&ed->snl) || find_name(ed, s->name))) { - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - if (s->type == SHT_REL) - elf_print_rel(ed, s, data); - else - elf_print_rela(ed, s, data); - } - } -} - -/* - * Dump the content of PT_INTERP segment. - */ -static void -elf_print_interp(struct elfdump *ed) -{ - const char *s; - GElf_Phdr phdr; - size_t filesize, i, phnum; - - if (!STAILQ_EMPTY(&ed->snl) && find_name(ed, "PT_INTERP") == NULL) - return; - - if ((s = elf_rawfile(ed->elf, &filesize)) == NULL) { - warnx("elf_rawfile failed: %s", elf_errmsg(-1)); - return; - } - if (!elf_getphnum(ed->elf, &phnum)) { - warnx("elf_getphnum failed: %s", elf_errmsg(-1)); - return; - } - for (i = 0; i < phnum; i++) { - if (gelf_getphdr(ed->elf, i, &phdr) != &phdr) { - warnx("elf_getphdr failed: %s", elf_errmsg(-1)); - continue; - } - if (phdr.p_type == PT_INTERP) { - if (phdr.p_offset >= filesize) { - warnx("invalid phdr offset"); - continue; - } - PRT("\ninterp:\n"); - PRT("\t%s\n", s + phdr.p_offset); - } - } -} - -/* - * Search the relocation sections for entries referring to the .got section. - */ -static void -find_gotrel(struct elfdump *ed, struct section *gs, struct rel_entry *got) -{ - struct section *s; - struct rel_entry r; - Elf_Data *data; - size_t i; - int elferr, j, k, len; - - for(i = 0; i < ed->shnum; i++) { - s = &ed->sl[i]; - if (s->type != SHT_REL && s->type != SHT_RELA) - continue; - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - memset(&r, 0, sizeof(struct rel_entry)); - r.type = s->type; - assert(data->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - for (j = 0; j < len; j++) { - if (s->type == SHT_REL) { - if (gelf_getrel(data, j, &r.u_r.rel) != - &r.u_r.rel) { - warnx("gelf_getrel failed: %s", - elf_errmsg(-1)); - continue; - } - } else { - if (gelf_getrela(data, j, &r.u_r.rela) != - &r.u_r.rela) { - warnx("gelf_getrel failed: %s", - elf_errmsg(-1)); - continue; - } - } - if (r.u_r.rel.r_offset >= gs->addr && - r.u_r.rel.r_offset < gs->addr + gs->sz) { - r.symn = get_symbol_name(ed, s->link, - GELF_R_SYM(r.u_r.rel.r_info)); - k = (r.u_r.rel.r_offset - gs->addr) / - gs->entsize; - memcpy(&got[k], &r, sizeof(struct rel_entry)); - } - } - } -} - -static void -elf_print_got_section(struct elfdump *ed, struct section *s) -{ - struct rel_entry *got; - Elf_Data *data, dst; - int elferr, i, len; - - if (s->entsize == 0) { - /* XXX IA64 GOT section generated by gcc has entry size 0. */ - if (s->align != 0) - s->entsize = s->align; - else - return; - } - - if (!get_ent_count(s, &len)) - return; - if (ed->flags & SOLARIS_FMT) - PRT("\nGlobal Offset Table Section: %s (%d entries)\n", - s->name, len); - else - PRT("\nglobal offset table: %s\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - - /* - * GOT section has section type SHT_PROGBITS, thus libelf treats it as - * byte stream and will not perform any translation on it. As a result, - * an exlicit call to gelf_xlatetom is needed here. Depends on arch, - * GOT section should be translated to either WORD or XWORD. - */ - if (ed->ec == ELFCLASS32) - data->d_type = ELF_T_WORD; - else - data->d_type = ELF_T_XWORD; - memcpy(&dst, data, sizeof(Elf_Data)); - if (gelf_xlatetom(ed->elf, &dst, data, ed->ehdr.e_ident[EI_DATA]) != - &dst) { - warnx("gelf_xlatetom failed: %s", elf_errmsg(-1)); - return; - } - assert(dst.d_size == s->sz); - if (ed->flags & SOLARIS_FMT) { - /* - * In verbose/Solaris mode, we search the relocation sections - * and try to find the corresponding reloc entry for each GOT - * section entry. - */ - if ((got = calloc(len, sizeof(struct rel_entry))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - find_gotrel(ed, s, got); - if (ed->ec == ELFCLASS32) { - PRT(" ndx addr value reloc "); - PRT("addend symbol\n"); - } else { - PRT(" ndx addr value "); - PRT("reloc addend symbol\n"); - } - for(i = 0; i < len; i++) { - PRT("[%5.5d] ", i); - if (ed->ec == ELFCLASS32) { - PRT("%-8.8jx ", - (uintmax_t) (s->addr + i * s->entsize)); - PRT("%-8.8x ", *((uint32_t *)dst.d_buf + i)); - } else { - PRT("%-16.16jx ", - (uintmax_t) (s->addr + i * s->entsize)); - PRT("%-16.16jx ", - (uintmax_t) *((uint64_t *)dst.d_buf + i)); - } - PRT("%-18s ", elftc_reloc_type_str(ed->ehdr.e_machine, - GELF_R_TYPE(got[i].u_r.rel.r_info))); - if (ed->ec == ELFCLASS32) - PRT("%-8.8jd ", - (intmax_t)got[i].u_r.rela.r_addend); - else - PRT("%-12.12jd ", - (intmax_t)got[i].u_r.rela.r_addend); - if (got[i].symn == NULL) - got[i].symn = ""; - PRT("%s\n", got[i].symn); - } - free(got); - } else { - for(i = 0; i < len; i++) { - PRT("\nentry: %d\n", i); - if (ed->ec == ELFCLASS32) - PRT("\t%#x\n", *((uint32_t *)dst.d_buf + i)); - else - PRT("\t%#jx\n", - (uintmax_t) *((uint64_t *)dst.d_buf + i)); - } - } -} - -/* - * Dump the content of Global Offset Table section. - */ -static void -elf_print_got(struct elfdump *ed) -{ - struct section *s; - size_t i; - - if (!STAILQ_EMPTY(&ed->snl)) - return; - - s = NULL; - for (i = 0; i < ed->shnum; i++) { - s = &ed->sl[i]; - if (s->name && !strncmp(s->name, ".got", 4) && - (STAILQ_EMPTY(&ed->snl) || find_name(ed, s->name))) - elf_print_got_section(ed, s); - } -} - -/* - * Dump the content of .note.ABI-tag section. - */ -static void -elf_print_note(struct elfdump *ed) -{ - struct section *s; - Elf_Data *data; - Elf_Note *en; - uint32_t namesz; - uint32_t descsz; - uint32_t desc; - size_t count; - int elferr, i; - uint8_t *src; - char idx[17]; - - s = NULL; - for (i = 0; (size_t)i < ed->shnum; i++) { - s = &ed->sl[i]; - if (s->type == SHT_NOTE && s->name && - !strcmp(s->name, ".note.ABI-tag") && - (STAILQ_EMPTY(&ed->snl) || find_name(ed, s->name))) - break; - } - if ((size_t)i >= ed->shnum) - return; - if (ed->flags & SOLARIS_FMT) - PRT("\nNote Section: %s\n", s->name); - else - PRT("\nnote (%s):\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - src = data->d_buf; - count = data->d_size; - while (count > sizeof(Elf_Note)) { - en = (Elf_Note *) (uintptr_t) src; - namesz = en->n_namesz; - descsz = en->n_descsz; - src += sizeof(Elf_Note); - count -= sizeof(Elf_Note); - if (roundup2(namesz, 4) + roundup2(descsz, 4) > count) { - warnx("truncated note section"); - return; - } - if (ed->flags & SOLARIS_FMT) { - PRT("\n type %#x\n", en->n_type); - PRT(" namesz %#x:\n", en->n_namesz); - PRT("%s\n", src); - } else - PRT("\t%s ", src); - src += roundup2(namesz, 4); - count -= roundup2(namesz, 4); - - /* - * Note that we dump the whole desc part if we're in - * "Solaris mode", while in the normal mode, we only look - * at the first 4 bytes (a 32bit word) of the desc, i.e, - * we assume that it's always a FreeBSD version number. - */ - if (ed->flags & SOLARIS_FMT) { - PRT(" descsz %#x:", en->n_descsz); - for (i = 0; (uint32_t)i < descsz; i++) { - if ((i & 0xF) == 0) { - snprintf(idx, sizeof(idx), "desc[%d]", - i); - PRT("\n %-9s", idx); - } else if ((i & 0x3) == 0) - PRT(" "); - PRT(" %2.2x", src[i]); - } - PRT("\n"); - } else { - if (ed->ehdr.e_ident[EI_DATA] == ELFDATA2MSB) - desc = be32dec(src); - else - desc = le32dec(src); - PRT("%d\n", desc); - } - src += roundup2(descsz, 4); - count -= roundup2(descsz, 4); - } -} - -/* - * Dump a hash table. - */ -static void -elf_print_svr4_hash(struct elfdump *ed, struct section *s) -{ - Elf_Data *data; - uint32_t *buf; - uint32_t *bucket, *chain; - uint32_t nbucket, nchain; - uint32_t *bl, *c, maxl, total; - uint32_t i, j; - int first, elferr; - char idx[10]; - - if (ed->flags & SOLARIS_FMT) - PRT("\nHash Section: %s\n", s->name); - else - PRT("\nhash table (%s):\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (data->d_size < 2 * sizeof(uint32_t)) { - warnx(".hash section too small"); - return; - } - buf = data->d_buf; - nbucket = buf[0]; - nchain = buf[1]; - if (nbucket <= 0 || nchain <= 0) { - warnx("Malformed .hash section"); - return; - } - if (data->d_size != - ((uint64_t)nbucket + (uint64_t)nchain + 2) * sizeof(uint32_t)) { - warnx("Malformed .hash section"); - return; - } - bucket = &buf[2]; - chain = &buf[2 + nbucket]; - - if (ed->flags & SOLARIS_FMT) { - maxl = 0; - if ((bl = calloc(nbucket, sizeof(*bl))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - for (i = 0; i < nbucket; i++) - for (j = bucket[i]; j > 0 && j < nchain; j = chain[j]) - if (++bl[i] > maxl) - maxl = bl[i]; - if ((c = calloc(maxl + 1, sizeof(*c))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - for (i = 0; i < nbucket; i++) - c[bl[i]]++; - PRT(" bucket symndx name\n"); - for (i = 0; i < nbucket; i++) { - first = 1; - for (j = bucket[i]; j > 0 && j < nchain; j = chain[j]) { - if (first) { - PRT("%10d ", i); - first = 0; - } else - PRT(" "); - snprintf(idx, sizeof(idx), "[%d]", j); - PRT("%-10s ", idx); - PRT("%s\n", get_symbol_name(ed, s->link, j)); - } - } - PRT("\n"); - total = 0; - for (i = 0; i <= maxl; i++) { - total += c[i] * i; - PRT("%10u buckets contain %8d symbols\n", c[i], i); - } - PRT("%10u buckets %8u symbols (globals)\n", nbucket, - total); - } else { - PRT("\nnbucket: %u\n", nbucket); - PRT("nchain: %u\n\n", nchain); - for (i = 0; i < nbucket; i++) - PRT("bucket[%d]:\n\t%u\n\n", i, bucket[i]); - for (i = 0; i < nchain; i++) - PRT("chain[%d]:\n\t%u\n\n", i, chain[i]); - } -} - -/* - * Dump a 64bit hash table. - */ -static void -elf_print_svr4_hash64(struct elfdump *ed, struct section *s) -{ - Elf_Data *data, dst; - uint64_t *buf; - uint64_t *bucket, *chain; - uint64_t nbucket, nchain; - uint64_t *bl, *c, j, maxl, total; - size_t i; - int elferr, first; - char idx[10]; - - if (ed->flags & SOLARIS_FMT) - PRT("\nHash Section: %s\n", s->name); - else - PRT("\nhash table (%s):\n", s->name); - - /* - * ALPHA uses 64-bit hash entries. Since libelf assumes that - * .hash section contains only 32-bit entry, an explicit - * gelf_xlatetom is needed here. - */ - (void) elf_errno(); - if ((data = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", - elf_errmsg(elferr)); - return; - } - data->d_type = ELF_T_XWORD; - memcpy(&dst, data, sizeof(Elf_Data)); - if (gelf_xlatetom(ed->elf, &dst, data, - ed->ehdr.e_ident[EI_DATA]) != &dst) { - warnx("gelf_xlatetom failed: %s", elf_errmsg(-1)); - return; - } - if (dst.d_size < 2 * sizeof(uint64_t)) { - warnx(".hash section too small"); - return; - } - buf = dst.d_buf; - nbucket = buf[0]; - nchain = buf[1]; - if (nbucket <= 0 || nchain <= 0) { - warnx("Malformed .hash section"); - return; - } - if (dst.d_size != (nbucket + nchain + 2) * sizeof(uint64_t)) { - warnx("Malformed .hash section"); - return; - } - bucket = &buf[2]; - chain = &buf[2 + nbucket]; - - if (ed->flags & SOLARIS_FMT) { - maxl = 0; - if ((bl = calloc(nbucket, sizeof(*bl))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - for (i = 0; i < nbucket; i++) - for (j = bucket[i]; j > 0 && j < nchain; j = chain[j]) - if (++bl[i] > maxl) - maxl = bl[i]; - if ((c = calloc(maxl + 1, sizeof(*c))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - for (i = 0; i < nbucket; i++) - c[bl[i]]++; - PRT(" bucket symndx name\n"); - for (i = 0; i < nbucket; i++) { - first = 1; - for (j = bucket[i]; j > 0 && j < nchain; j = chain[j]) { - if (first) { - PRT("%10zu ", i); - first = 0; - } else - PRT(" "); - snprintf(idx, sizeof(idx), "[%zu]", (size_t)j); - PRT("%-10s ", idx); - PRT("%s\n", get_symbol_name(ed, s->link, j)); - } - } - PRT("\n"); - total = 0; - for (i = 0; i <= maxl; i++) { - total += c[i] * i; - PRT("%10ju buckets contain %8zu symbols\n", - (uintmax_t)c[i], i); - } - PRT("%10ju buckets %8ju symbols (globals)\n", - (uintmax_t)nbucket, (uintmax_t)total); - } else { - PRT("\nnbucket: %ju\n", (uintmax_t)nbucket); - PRT("nchain: %ju\n\n", (uintmax_t)nchain); - for (i = 0; i < nbucket; i++) - PRT("bucket[%zu]:\n\t%ju\n\n", i, (uintmax_t)bucket[i]); - for (i = 0; i < nchain; i++) - PRT("chain[%zu]:\n\t%ju\n\n", i, (uintmax_t)chain[i]); - } - -} - -/* - * Dump a GNU hash table. - */ -static void -elf_print_gnu_hash(struct elfdump *ed, struct section *s) -{ - struct section *ds; - Elf_Data *data; - uint32_t *buf; - uint32_t *bucket, *chain; - uint32_t nbucket, nchain, symndx, maskwords, shift2; - uint32_t *bl, *c, maxl, total; - uint32_t i, j; - int first, elferr, dynsymcount; - char idx[10]; - - if (ed->flags & SOLARIS_FMT) - PRT("\nGNU Hash Section: %s\n", s->name); - else - PRT("\ngnu hash table (%s):\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (data->d_size < 4 * sizeof(uint32_t)) { - warnx(".gnu.hash section too small"); - return; - } - buf = data->d_buf; - nbucket = buf[0]; - symndx = buf[1]; - maskwords = buf[2]; - shift2 = buf[3]; - buf += 4; - if (s->link >= ed->shnum) { - warnx("Malformed .gnu.hash section"); - return; - } - ds = &ed->sl[s->link]; - if (!get_ent_count(ds, &dynsymcount)) - return; - if (symndx >= (uint32_t)dynsymcount) { - warnx("Malformed .gnu.hash section"); - return; - } - nchain = dynsymcount - symndx; - if (data->d_size != 4 * sizeof(uint32_t) + maskwords * - (ed->ec == ELFCLASS32 ? sizeof(uint32_t) : sizeof(uint64_t)) + - ((uint64_t)nbucket + (uint64_t)nchain) * sizeof(uint32_t)) { - warnx("Malformed .gnu.hash section"); - return; - } - bucket = buf + (ed->ec == ELFCLASS32 ? maskwords : maskwords * 2); - chain = bucket + nbucket; - - if (ed->flags & SOLARIS_FMT) { - maxl = 0; - if ((bl = calloc(nbucket, sizeof(*bl))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - for (i = 0; i < nbucket; i++) - for (j = bucket[i]; j > 0 && j - symndx < nchain; j++) { - if (++bl[i] > maxl) - maxl = bl[i]; - if (chain[j - symndx] & 1) - break; - } - if ((c = calloc(maxl + 1, sizeof(*c))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - for (i = 0; i < nbucket; i++) - c[bl[i]]++; - PRT(" bucket symndx name\n"); - for (i = 0; i < nbucket; i++) { - first = 1; - for (j = bucket[i]; j > 0 && j - symndx < nchain; j++) { - if (first) { - PRT("%10d ", i); - first = 0; - } else - PRT(" "); - snprintf(idx, sizeof(idx), "[%d]", j ); - PRT("%-10s ", idx); - PRT("%s\n", get_symbol_name(ed, s->link, j)); - if (chain[j - symndx] & 1) - break; - } - } - PRT("\n"); - total = 0; - for (i = 0; i <= maxl; i++) { - total += c[i] * i; - PRT("%10u buckets contain %8d symbols\n", c[i], i); - } - PRT("%10u buckets %8u symbols (globals)\n", nbucket, - total); - } else { - PRT("\nnbucket: %u\n", nbucket); - PRT("symndx: %u\n", symndx); - PRT("maskwords: %u\n", maskwords); - PRT("shift2: %u\n", shift2); - PRT("nchain: %u\n\n", nchain); - for (i = 0; i < nbucket; i++) - PRT("bucket[%d]:\n\t%u\n\n", i, bucket[i]); - for (i = 0; i < nchain; i++) - PRT("chain[%d]:\n\t%u\n\n", i, chain[i]); - } -} - -/* - * Dump hash tables. - */ -static void -elf_print_hash(struct elfdump *ed) -{ - struct section *s; - size_t i; - - for (i = 0; i < ed->shnum; i++) { - s = &ed->sl[i]; - if ((s->type == SHT_HASH || s->type == SHT_GNU_HASH) && - (STAILQ_EMPTY(&ed->snl) || find_name(ed, s->name))) { - if (s->type == SHT_GNU_HASH) - elf_print_gnu_hash(ed, s); - else if (ed->ehdr.e_machine == EM_ALPHA && - s->entsize == 8) - elf_print_svr4_hash64(ed, s); - else - elf_print_svr4_hash(ed, s); - } - } -} - -/* - * Dump the content of a Version Definition(SHT_SUNW_Verdef) Section. - */ -static void -elf_print_verdef(struct elfdump *ed, struct section *s) -{ - Elf_Data *data; - Elf32_Verdef *vd; - Elf32_Verdaux *vda; - const char *str; - char idx[10]; - uint8_t *buf, *end, *buf2; - int i, j, elferr, count; - - if (ed->flags & SOLARIS_FMT) - PRT("Version Definition Section: %s\n", s->name); - else - PRT("\nversion definition section (%s):\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - buf = data->d_buf; - end = buf + data->d_size; - i = 0; - if (ed->flags & SOLARIS_FMT) - PRT(" index version dependency\n"); - while (buf + sizeof(Elf32_Verdef) <= end) { - vd = (Elf32_Verdef *) (uintptr_t) buf; - if (ed->flags & SOLARIS_FMT) { - snprintf(idx, sizeof(idx), "[%d]", vd->vd_ndx); - PRT("%10s ", idx); - } else { - PRT("\nentry: %d\n", i++); - PRT("\tvd_version: %u\n", vd->vd_version); - PRT("\tvd_flags: %u\n", vd->vd_flags); - PRT("\tvd_ndx: %u\n", vd->vd_ndx); - PRT("\tvd_cnt: %u\n", vd->vd_cnt); - PRT("\tvd_hash: %u\n", vd->vd_hash); - PRT("\tvd_aux: %u\n", vd->vd_aux); - PRT("\tvd_next: %u\n\n", vd->vd_next); - } - buf2 = buf + vd->vd_aux; - j = 0; - count = 0; - while (buf2 + sizeof(Elf32_Verdaux) <= end && j < vd->vd_cnt) { - vda = (Elf32_Verdaux *) (uintptr_t) buf2; - str = get_string(ed, s->link, vda->vda_name); - if (ed->flags & SOLARIS_FMT) { - if (count == 0) - PRT("%-26.26s", str); - else if (count == 1) - PRT(" %-20.20s", str); - else { - PRT("\n%40.40s", ""); - PRT("%s", str); - } - } else { - PRT("\t\tvda: %d\n", j++); - PRT("\t\t\tvda_name: %s\n", str); - PRT("\t\t\tvda_next: %u\n", vda->vda_next); - } - if (vda->vda_next == 0) { - if (ed->flags & SOLARIS_FMT) { - if (vd->vd_flags & VER_FLG_BASE) { - if (count == 0) - PRT("%-20.20s", ""); - PRT("%s", "[ BASE ]"); - } - PRT("\n"); - } - break; - } - if (ed->flags & SOLARIS_FMT) - count++; - buf2 += vda->vda_next; - } - if (vd->vd_next == 0) - break; - buf += vd->vd_next; - } -} - -/* - * Dump the content of a Version Needed(SHT_SUNW_Verneed) Section. - */ -static void -elf_print_verneed(struct elfdump *ed, struct section *s) -{ - Elf_Data *data; - Elf32_Verneed *vn; - Elf32_Vernaux *vna; - uint8_t *buf, *end, *buf2; - int i, j, elferr, first; - - if (ed->flags & SOLARIS_FMT) - PRT("\nVersion Needed Section: %s\n", s->name); - else - PRT("\nversion need section (%s):\n", s->name); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - buf = data->d_buf; - end = buf + data->d_size; - if (ed->flags & SOLARIS_FMT) - PRT(" file version\n"); - i = 0; - while (buf + sizeof(Elf32_Verneed) <= end) { - vn = (Elf32_Verneed *) (uintptr_t) buf; - if (ed->flags & SOLARIS_FMT) - PRT(" %-26.26s ", - get_string(ed, s->link, vn->vn_file)); - else { - PRT("\nentry: %d\n", i++); - PRT("\tvn_version: %u\n", vn->vn_version); - PRT("\tvn_cnt: %u\n", vn->vn_cnt); - PRT("\tvn_file: %s\n", - get_string(ed, s->link, vn->vn_file)); - PRT("\tvn_aux: %u\n", vn->vn_aux); - PRT("\tvn_next: %u\n\n", vn->vn_next); - } - buf2 = buf + vn->vn_aux; - j = 0; - first = 1; - while (buf2 + sizeof(Elf32_Vernaux) <= end && j < vn->vn_cnt) { - vna = (Elf32_Vernaux *) (uintptr_t) buf2; - if (ed->flags & SOLARIS_FMT) { - if (!first) - PRT("%40.40s", ""); - else - first = 0; - PRT("%s\n", get_string(ed, s->link, - vna->vna_name)); - } else { - PRT("\t\tvna: %d\n", j++); - PRT("\t\t\tvna_hash: %u\n", vna->vna_hash); - PRT("\t\t\tvna_flags: %u\n", vna->vna_flags); - PRT("\t\t\tvna_other: %u\n", vna->vna_other); - PRT("\t\t\tvna_name: %s\n", - get_string(ed, s->link, vna->vna_name)); - PRT("\t\t\tvna_next: %u\n", vna->vna_next); - } - if (vna->vna_next == 0) - break; - buf2 += vna->vna_next; - } - if (vn->vn_next == 0) - break; - buf += vn->vn_next; - } -} - -/* - * Dump the symbol-versioning sections. - */ -static void -elf_print_symver(struct elfdump *ed) -{ - struct section *s; - size_t i; - - for (i = 0; i < ed->shnum; i++) { - s = &ed->sl[i]; - if (!STAILQ_EMPTY(&ed->snl) && !find_name(ed, s->name)) - continue; - if (s->type == SHT_SUNW_verdef) - elf_print_verdef(ed, s); - if (s->type == SHT_SUNW_verneed) - elf_print_verneed(ed, s); - } -} - -/* - * Dump the ELF checksum. See gelf_checksum(3) for details. - */ -static void -elf_print_checksum(struct elfdump *ed) -{ - - if (!STAILQ_EMPTY(&ed->snl)) - return; - - PRT("\nelf checksum: %#lx\n", gelf_checksum(ed->elf)); -} - -#define USAGE_MESSAGE "\ -Usage: %s [options] file...\n\ - Display information about ELF objects and ar(1) archives.\n\n\ - Options:\n\ - -a Show all information.\n\ - -c Show shared headers.\n\ - -d Show dynamic symbols.\n\ - -e Show the ELF header.\n\ - -G Show the GOT.\n\ - -H | --help Show a usage message and exit.\n\ - -h Show hash values.\n\ - -i Show the dynamic interpreter.\n\ - -k Show the ELF checksum.\n\ - -n Show the contents of note sections.\n\ - -N NAME Show the section named \"NAME\".\n\ - -p Show the program header.\n\ - -r Show relocations.\n\ - -s Show the symbol table.\n\ - -S Use the Solaris elfdump format.\n\ - -v Show symbol-versioning information.\n\ - -V | --version Print a version identifier and exit.\n\ - -w FILE Write output to \"FILE\".\n" - -static void -usage(void) -{ - fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} diff --git a/contrib/elftoolchain/elfdump/os.NetBSD.mk b/contrib/elftoolchain/elfdump/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/elfdump/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/findtextrel/Makefile b/contrib/elftoolchain/findtextrel/Makefile deleted file mode 100644 index 6a157b8e..00000000 --- a/contrib/elftoolchain/findtextrel/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= findtextrel -SRCS= findtextrel.c - -WARNS?= 6 - -DPADD= ${LIBELFTC} ${LIBDWARF} ${LIBELF} -LDADD= -lelftc -ldwarf -lelf - -MAN1= findtextrel.1 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/findtextrel/findtextrel.1 b/contrib/elftoolchain/findtextrel/findtextrel.1 deleted file mode 100644 index 5dcc8b5a..00000000 --- a/contrib/elftoolchain/findtextrel/findtextrel.1 +++ /dev/null @@ -1,104 +0,0 @@ -.\" Copyright (c) 2010,2011 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer -.\" in this position and unchanged. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 25, 2011 -.Os -.Dt FINDTEXTREL 1 -.Sh NAME -.Nm findtextrel -.Nd locate text relocation entries in position independent ELF executables -.Sh SYNOPSIS -.Nm -.Op Fl V -.Op Fl H -.Op Ar -.Sh DESCRIPTION -The -.Nm -utility displays information about text relocations in ELF objects -containing position independent code. -.Pp -Text relocations are usually undesirable because they require that the -text sections of objects be modified at load time, preventing the -sharing of text sections across multiple processes using a dynamic -shared object. -.Pp -Arguments -.Ar -name ELF executables to be examined. -If no files are specified, the -.Nm -utility will examine the file -.Pa a.out -in the current directory. -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width indent -.It Fl H -Print a brief help message. -.It Fl V -Print a version identifier and exit. -.El -.Sh EXIT STATUS -.Ex -std -.Sh EXAMPLES -To list text relocations in an object, use: -.Bd -literal -offset indent -% findtextrel a.out -a.out: ELF object contains text relocation records: -a.out: off: 0x530, func: main, file: a.c, line: 5 -.Ed -.Sh DIAGNOSTICS -The -.Nm -may issue the following diagnostics: -.Bl -diag -.It "ELF object is not a DSO/PIE" -The ELF executable specified by argument -.Ar object -was not a position independent executable. -.It "ELF object does not contain a text relocation" -The ELF executable specified by argument -.Ar object -contained no text relocations. -.El -.Sh SEE ALSO -.Xr addr2line 1 , -.Xr nm 1 , -.Xr readelf 1 -.Sh HISTORY -A -.Nm -utility first appeared in the -.Nm elfutils -toolset from Red Hat, Inc. -.Sh AUTHORS -This implementation of the -.Nm -utility was created by -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/contrib/elftoolchain/findtextrel/findtextrel.c b/contrib/elftoolchain/findtextrel/findtextrel.c deleted file mode 100644 index 7d5b5e9f..00000000 --- a/contrib/elftoolchain/findtextrel/findtextrel.c +++ /dev/null @@ -1,424 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -static struct option longopts[] = { - {"help", no_argument, NULL, 'H'}, - {"version", no_argument, NULL, 'V'}, - {NULL, 0, NULL, 0} -}; - -#define USAGE_MESSAGE "\ -Usage: %s [options] [files...]\n\ - Show text relocations present in position independent code.\n\n\ - Options:\n\ - -H Print a help message.\n\ - -V Print a version identifier and exit.\n" - -static void -usage(void) -{ - (void) fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(1); -} - -static void -version(void) -{ - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(0); -} - -static const char * -find_symbol(const char *fn, Elf *e, Elf_Data *d, GElf_Shdr *sh, uintmax_t off) -{ - const char *name; - GElf_Sym sym; - int i, len; - - if (sh->sh_entsize == 0) { - warnx("invalid sh_entsize"); - return (NULL); - } - len = (int) (d->d_size / sh->sh_entsize); - for (i = 0; i < len; i++) { - if (gelf_getsym(d, i, &sym) != &sym) { - warnx("%s: gelf_getsym() failed: %s", fn, - elf_errmsg(-1)); - continue; - } - if (GELF_ST_TYPE(sym.st_info) != STT_FUNC) - continue; - if (off >= sym.st_value && off < sym.st_value + sym.st_size) { - name = elf_strptr(e, sh->sh_link, sym.st_name); - if (name == NULL) - warnx("%s: elf_strptr() failed: %s", fn, - elf_errmsg(-1)); - return (name); - } - } - - return (NULL); -} - -static void -report_textrel(const char *fn, Elf *e, Dwarf_Debug dbg, uintmax_t off, - int *textrel) -{ - Dwarf_Die die; - Dwarf_Line *lbuf; - Dwarf_Error de; - Dwarf_Half tag; - Dwarf_Unsigned lopc, hipc, lineno, plineno; - Dwarf_Signed lcount; - Dwarf_Addr lineaddr, plineaddr; - Elf_Scn *scn; - Elf_Data *d; - GElf_Shdr sh; - const char *name; - char *file, *pfile; - int elferr, found, i, ret; - - if (!*textrel) { - printf("%s: ELF object contains text relocation records:\n", - fn); - *textrel = 1; - } - - printf("%s: off: %#jx", fn, off); - - found = 0; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("%s: gelf_getshdr() failed: %s", fn, - elf_errmsg(-1)); - continue; - } - if (sh.sh_type != SHT_DYNSYM && - sh.sh_type != SHT_SYMTAB) - continue; - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("%s: elf_getdata() failed: %s", - fn, elf_errmsg(-1)); - continue; - } - if (d->d_size <= 0) - continue; - if ((name = find_symbol(fn, e, d, &sh, off)) != NULL) { - printf(", func: %s", name); - break; - } - } - elferr = elf_errno(); - if (elferr != 0) - warnx("%s: elf_nextscn() failed: %s", fn, - elf_errmsg(elferr)); - - if (dbg == NULL) - goto done; - - /* - * More verbose output if debugging information is available. - */ - - while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de)) == DW_DLV_OK) { - die = NULL; - while (dwarf_siblingof(dbg, die, &die, &de) == DW_DLV_OK) { - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) - goto out; - /* XXX: What about DW_TAG_partial_unit? */ - if (tag == DW_TAG_compile_unit) - break; - } - if (die == NULL) { - /* Could not find DW_TAG_compile_unit DIE. */ - goto out; - } - if (!dwarf_attrval_unsigned(die, DW_AT_low_pc, &lopc, &de) && - !dwarf_attrval_unsigned(die, DW_AT_high_pc, &hipc, &de)) { - /* - * Check if the address falls into the PC range of - * this CU. - */ - if (off < lopc || off >= hipc) - continue; - } else - continue; - - if (dwarf_srclines(die, &lbuf, &lcount, &de) != DW_DLV_OK) - continue; - - found = 0; - plineaddr = ~0ULL; - plineno = 0; - pfile = NULL; - for (i = 0; i < lcount; i++) { - if (dwarf_lineaddr(lbuf[i], &lineaddr, &de)) - continue; - if (dwarf_lineno(lbuf[i], &lineno, &de)) - continue; - if (dwarf_linesrc(lbuf[i], &file, &de)) - continue; - if (off == lineaddr) { - found = 1; - goto out; - } else if (off < lineaddr && off > plineaddr) { - lineno = plineno; - file = pfile; - found = 1; - goto out; - } - plineaddr = lineaddr; - plineno = lineno; - pfile = file; - } - } - -out: - if (found) - printf(", file: %s, line: %ju", file, (uintmax_t) lineno); - - /* - * Reset internal CU pointer, so we will start from the first CU - * next round. - */ - while (ret != DW_DLV_NO_ENTRY) { - if (ret == DW_DLV_ERROR) - break; - ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de); - } - -done: - putchar('\n'); -} - -static void -examine_reloc(const char *fn, Elf *e, Elf_Data *d, GElf_Shdr *sh, GElf_Phdr *ph, - int phnum, Dwarf_Debug dbg, int *textrel) -{ - GElf_Rela rela; - int i, j, len; - GElf_Rel rel; - - if (sh->sh_entsize == 0) { - warnx("invalid sh_entsize"); - return; - } - len = (int) (d->d_size / sh->sh_entsize); - for (i = 0; i < len; i++) { - if (sh->sh_type == SHT_REL) { - if (gelf_getrel(d, i, &rel) != &rel) { - warnx("%s: gelf_getrel() failed: %s", fn, - elf_errmsg(-1)); - continue; - } - } else { - if (gelf_getrela(d, i, &rela) != &rela) { - warnx("%s: gelf_getrela() failed: %s", fn, - elf_errmsg(-1)); - continue; - } - } - for (j = 0; j < phnum; j++) { - if (sh->sh_type == SHT_REL) { - if (rel.r_offset >= ph[j].p_offset && - rel.r_offset < ph[j].p_offset + - ph[j].p_filesz) - report_textrel(fn, e, dbg, - (uintmax_t) rel.r_offset, textrel); - } else { - if (rela.r_offset >= ph[j].p_offset && - rela.r_offset < ph[j].p_offset + - ph[j].p_filesz) - report_textrel(fn, e, dbg, - (uintmax_t) rela.r_offset, textrel); - } - } - } -} - -static void -find_textrel(const char *fn) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - GElf_Ehdr eh; - GElf_Phdr *ph; - GElf_Shdr sh; - Dwarf_Debug dbg; - Dwarf_Error de; - int elferr, fd, i, phnum, textrel; - - e = NULL; - ph = NULL; - dbg = NULL; - - if ((fd = open(fn, O_RDONLY)) < 0) { - warn("%s", fn); - return; - } - - if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { - warnx("%s: elf_begin() failed: %s", fn, elf_errmsg(-1)); - goto exit; - } - - if (gelf_getehdr(e, &eh) != &eh) { - warnx("%s: gelf_getehdr() failed: %s", fn, elf_errmsg(-1)); - goto exit; - } - - if (eh.e_type != ET_DYN) { - printf("%s: ELF object is not a DSO/PIE\n", fn); - goto exit; - } - - /* - * Search program header for executable segments. - */ - - if (eh.e_phnum == 0) { - printf("%s: ELF object does not contain program headers\n", - fn); - goto exit; - } - if ((ph = calloc(eh.e_phnum, sizeof(GElf_Phdr))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - phnum = 0; - for (i = 0; (unsigned) i < eh.e_phnum; i++) { - if (gelf_getphdr(e, i, &ph[phnum]) != &ph[phnum]) { - warnx("%s: gelf_getphdr() failed: %s", fn, - elf_errmsg(-1)); - continue; - } - if (ph[phnum].p_flags & PF_X) - phnum++; - } - if (phnum == 0) { - printf("%s: ELF object does not contain any executable " - "segment\n", fn); - goto exit; - } - - /* Check if debugging information is available. */ - if (dwarf_elf_init(e, DW_DLC_READ, NULL, NULL, &dbg, &de)) - dbg = NULL; - - /* - * Search relocation records for possible text relocations. - */ - textrel = 0; - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("%s: gelf_getshdr() failed: %s", fn, - elf_errmsg(-1)); - continue; - } - if (sh.sh_type == SHT_REL || sh.sh_type == SHT_RELA) { - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("%s: elf_getdata() failed: %s", - fn, elf_errmsg(-1)); - continue; - } - if (d->d_size <= 0) - continue; - examine_reloc(fn, e, d, &sh, ph, phnum, dbg, &textrel); - } - } - elferr = elf_errno(); - if (elferr != 0) - warnx("%s: elf_nextscn() failed: %s", fn, elf_errmsg(elferr)); - - if (!textrel) - printf("%s: ELF object does not contain a text relocation\n", - fn); - -exit: - if (dbg) - dwarf_finish(dbg, &de); - if (ph) - free(ph); - if (e) - (void) elf_end(e); - close(fd); -} - -int -main(int argc, char **argv) -{ - int i, opt; - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "elf_version(): %s", elf_errmsg(-1)); - - while ((opt = getopt_long(argc, argv, "HV", longopts, NULL)) != -1) { - switch (opt) { - case 'H': - usage(); - case 'V': - version(); - default: - usage(); - } - } - - argv += optind; - argc -= optind; - - if (argc > 0) - for (i = 0; i < argc; i++) - find_textrel(argv[i]); - else - find_textrel("a.out"); - - exit(0); -} diff --git a/contrib/elftoolchain/isa/Makefile b/contrib/elftoolchain/isa/Makefile deleted file mode 100644 index 06cf9301..00000000 --- a/contrib/elftoolchain/isa/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= isa -SRCS= isa.c -LSRC= -YSRC= -LDADD= -lelftc - -ISA= avr.isa - -MAN= isa.1 isa.5 - -check-specifications: .PHONY -.for f in ${ISA} - ${.OBJDIR}/${PROG} -n --query ${f} -.endfor - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/isa/avr.isa b/contrib/elftoolchain/isa/avr.isa deleted file mode 100644 index d2131380..00000000 --- a/contrib/elftoolchain/isa/avr.isa +++ /dev/null @@ -1,280 +0,0 @@ -; -; $Id$ -; -; An instruction set description for Atmel AVR(TM) 8 bit CPUs. -; -; * Most instructions are 16 bit wide, except a few that use an -; additional 16-bit offset field. -; * There are 32 general purpose registers which are 8-bit wide. -; Three pairs of registers are used for 16bit memory addressing: -; X (r27:r26), Y (r29:r28), and Z (r31:r30). -; * Some instructions operate on limited subsets of these registers: -; - The 'movw' instruction operates on register pairs. -; - Some instructions only operate on subsets of the register file. - -arch avr -cpus - core = [ AT90S1200 ATtiny11 ATtiny12 ATtiny15 ATtiny28 ] - core8k = core ++ [ AT90S2313 AT90S2323 ATtiny22 AT90S2333 - AT90S2343 AT90S4414 AT90S4433 AT90S4434 AT90S8515 - AT90C8534 AT90S8535 ATtiny26 ATmega8515 ] - core128k = core8k ++ [ ATmega103 ATmega603 AT43USB320 AT76C711 ] - enhancedcore = core ++ [ ATmega8 ATmega83 ATmega85 ] - ; TODO fill in the rest. - -; The instruction stream has two types of tokens: -token i(16) ; a 16 bit instruction. - offset(16) ; a 16 bit offset - -; The 32 source registers are encoded using a combination of a 4-bit -; and a 1-bit field. -let Rsrclow = i[3:0] - Rsrchighbit = i[9] - Rsrc = Rsrchighbit & Rsrclow - where Rsrc[4] = Rsrchighbit - Rsrc[3:0] = Rsrclow - names [ R%n | n = 0..31 ] - Rsrcpair = i[3:0] ; Source register pairs. - names [ R%n | n = 0..31, n % 2 == 0 ] - - Rdst = i[8:4] ; The 32 dst registers use 5 contiguous bits. - names [ R%n | n = 0..31 ] - Rdstpair = i[7:4] ; destination register pairs - names [ R%n | n = 0..31, n %2 == 0 ] - - ; Some instructions work on the 16 higher numbered registers. - Rsrchigh = i[7:4] - names [ R%n | n = 16..31 ] - Rdsthigh = i[7:4] - names [ R%n | n = 16..31 ] - - ; Registers used for the MUL instructions (R16-23). - Rmulsrc = i[2:0] - names [ R%n | n = 16..23 ] - Rmuldst = i[6:4] - names [ R%n | n = 16..23 ] - -; 8 bit immediate value. -let Khigh = i[11:8] - Klow = i[ 3:0] - K = Khigh & Klow - where K[8:4] = Khigh - K[3:0] = Klow - -; call or jmp to an absolute location -let jmpcallbit = i[1] - Jmpcall loc = i[15:9] = 0b1001010 & i[3:2] = 0b11 & - i[8:4] = loc[21:17] & i[0] = loc[16] - <+> ; next location - offset[15:0] = loc[15:0] - in - call %loc <=> Jmpcall loc & jmpcallbit = 1 - jmp %loc <=> Jmpcall loc & jmpcallbit = 0 - -; Immediate operations on the high registers. -let immediateops@[ sbci subi sbr cbr ] = [ i[13:12] = n | n = 0..3 ] - with i[15:14] = 0b01 - @immediateops %Rdsthigh, %K <=> &* - -; The CPI (Compare Immediate) instruction has a different encoding. -cpi %Rdsthigh, %K <=> i[15:12] = 0b0011 &* - -; Move register pair. -movw %Rdstpair, %Rsrcpair <=> i[15:8] = 0b00000001 &* - -; 8x8 -> 16 bit signed multiply. -muls %Rdsthigh, %Rsrchigh <=> i[15:8] = 0b00000010 &* - -; Unsigned multiply. -mul %Rdst, %Rsrc <=> i[15:10] = 0b100111 &* - -; Fractional multiply instructions. -with i[15:8] = 0b00000011 - fmulsu %Rmuldst, %Rmulsrc <=> i[7,3] = [1,1] &* - fmuls %Rmuldst, %Rmulsrc <=> i[7,3] = [1,0] &* - fmul %Rmuldst, %Rmulsrc <=> i[7,3] = [0,1] &* - mulsu %Rmuldst, %Rmulsrc <=> i[7,3] = [0,0] &* - -; 2-operand instructions operating on all 32 registers. -let OpTwo@[ cpc sbc add cpse cp sub adc and eor or mov ] in - cpc = i[15:10] = 0b000001 - with i[15:12] = 0b0010 - [ and eor or mov ] = [ i[11:10] = n | n = 0..3 ] - with i[15:12] = 0b0001 - [ cpse cp sub adc ] = [ i[11:10] = n | n = 0..3 ] - with i[15:11] = 0b00001 - [ sbc add ] = [ i[10] = n | n = 0..1 ] - in - @OpTwo %Rdst, %Rsrc <=> &* - -let OpOne = [ com neg swap inc asr lsr ror ] - with i[15:9] = 0b1001010 & i[3] = 0 - [ com neg swap inc _ asr lsr ror ] = [ i[2:0] = n | n = 0..7 ] - in - @OpOne %Rdst <=> &* - -let bitno = i[2:0] - -let clear = i[7] in - with i[15:8] = 0b10010100 & i[3:0] = 0b1000 - bclr %bitno <=> clear = 1 &* - bset %bitno <=> clear = 0 &* - -; Additional aliases. -let statusbit = i[6:4] - names [ "C" "Z" "N" "V" "S" "H" "T" "I" ] - cl%statusbit <=> bclr & bitno = statusbit - se%statusbit <=> bset & bitno = statusbit - - -; NOP -nop <=> i[15:0] = 0 - -let loadstore = i[9] - -; Index load/store with offset -let lddlow = i[2:0] - lddmid = i[11:10] - lddhigh = i[13] - Lddoffset = lddlow & lddmid & lddhigh - where Lddoffset[5] = lddhigh - Lddoffset[4:3] = lddmid - Lddoffset[2:0] = lddlow - yz = i[3] ; Y/Z bit for LDD with offset - names [ "Z" "Y" ] - with i[15:14] = 0b10 & i[12] = 0b0 - ldd %Rdst, %yz "+" %Lddoffset <=> loadstore = 0 &* - std %Rdst, %yz "+" %Lddoffset <=> loadstore = 1 &* - -; Indexed load/store with increment & decrement -let xyz = i[3:2] ; X/Y/Z for LD ops - names [ "Z" _ "Y" "X" ] - auto = i[0:1] - with i[15:10] = 0b100100 ; prefix for indexed loads - ld %Rdst, %xyz <=> loadstore = 0 & auto = 0 &* - ld %Rdst, %xyz+ <=> loadstore = 0 & auto = 1 &* - ld %Rdst, -%xyz <=> loadstore = 0 & auto = 2 &* - st %xyz, %Rdst <=> loadstore = 1 & auto = 0 &* - st %xyz+, %Rdst <=> loadstore = 1 & auto = 1 &* - st -%xyz, %Rdst <=> loadstore = 1 & auto = 2 &* - -; The 'andi' instruction is 'cbi' with a negated constant. -andi %Rdsthigh, %Kcomp <=> cbr & Rdsthigh & K = ~Kcomp -; The 'ori' instruction is an alias for 'sbr'. -ori %Rdsthigh, %K <=> sbr &* - -; Single operand instructions implemented using two operand ones. -clr %Rdst <=> eor & Rsrc = Rdst & Rdst -lsl %Rdst <=> add & Rsrc = Rdst & Rdst -rol %Rdst <=> adc & Rsrc = Rdst & Rdst -tst %Rdst <=> and & Rsrc = Rdst & Rdst - -with i[15:9] = 0b1001010 & i[7:0] = 0b0001001 - ijmp <=> indircallbit = 0 & eibit = 0 - icall <=> indircallbit = 1 & eibit = 0 - eijmp <=> indircallbit = 0 & eibit = 1 - eicall <=> indircallbit = 1 & eibit = 1 - where indircallbit = i[7] - eibit = i[4] - -with i[15:8] = 0b10010101 & i[3:0] = 0b1000 - let splops = i[7:4] - miscops@[ ret reti sleep break wdr lpm elpm spm ] = - [ splops = [ 0 1 8 9 10 12 13 14 ] ] - in - @miscops <=> &* - -; Load program memory has two variants. -lpm <=> i[15:0] = 0b1001010111001000 ; load to R0 -lpm %Rdst,Z%zincr <=> i[15:9] = 0b1001000 & i[3:1] = 0b010 &* - where zincr = i[0] names [ "" "+" ] - -; Store program memory. -spm <=> i[15:0] = 0b1001010111101000 - -; Decrement register. -dec %Rdst <=> i[15:9] = 0b1001010 & i[3:0] = 0b1010 &* - -; DES round %des, operates on R0..R15 -let des = i[7:4] in - des %des <=> i[15:8] = 0b10010100 & i[3:0] = 0b1011 &* - -; Add/Sub register pairs with an immediate -let addsub = i[8] - Rdstimm = i[5:4] - names [ R24 R26 R28 R30 ] - Kimm6high = i[7:6] - Kimm6low = i[3:0] - Kimm6 = Kimm6high & Kimm6low - where Kimm6[5:4] = Kimm6high - Kimm6[3:0] = Kimm6low - with i[15:9] = 0b1001011 - adiw %Rdstimm, %Kimm6 <=> addsub = 0 &* - sbiw %Rdstimm, %Kimm6 <=> addsub = 1 &* - -; Operations on bits in I/O registers. -let bitops@[ cbi sbic sbi sbis ] = [ instr[9:8] = n | n = 0..3 ] - ioaddr = i[7:3] - with i[15:10] = 0b100110 - @bitops %ioaddr, %bit <=> &* - -; IN/OUT operations -let inout = i[11] - Alow = i[3:0] - Ahigh = i[10:9] - A = Ahigh & Alow - with i[15..12] = 0b1011 - in %Rdst, %A <=> inout = 0 & * - out %Rst, %A <=> inout = 1 & * - -; Relative jmp/call -let reljmpcall = i[12] - reloffset = i[11:0] - with i[15:13] = 0b110 - rjmp %label <=> reljmpcall = 0 & reloffset = (label - . - 1) - rcall %label <=> reljmpcall = 1 & reloffset = (label - . - 1) - -; Load Immediate -ldi %Rdsthigh, %K <=> i[15:12] = 0b1110 &* - -; Conditional branches -let clearedorset = i[10] - condoffset = i[9:3] - with i[15:11] = 0b11110 - brbs %bitno, %label <=> clearedorset = 0 & bitno & - condoffset = (label - . - 1) - brbc %bitno, %label <=> clearedorset = 1 & bitno & - condoffset = (label - . - 1) - -; Aliases -brcs %l => brbs & bitno = 0 & label = l -brlo %l => brbs & bitno = 0 & label = l -breq %l => brbs & bitno = 1 & label = l -brmi %l => brbs & bitno = 2 & label = l -brvs %l => brbs & bitno = 3 & label = l -brlt %l => brbs & bitno = 4 & label = l -brhs %l => brbs & bitno = 5 & label = l -brts %l => brbs & bitno = 6 & label = l -brie %l => brbs & bitno = 7 & label = l - -brcc %l => brbc & bitno = 0 & label = l -brsh %l => brbc & bitno = 0 & label = l -brne %l => brbc & bitno = 1 & label = l -brpl %l => brbc & bitno = 2 & label = l -brvc %l => brbc & bitno = 3 & label = l -brge %l => brbc & bitno = 4 & label = l -brhc %l => brbc & bitno = 5 & label = l -brtc %l => brbc & bitno = 6 & label = l -brid %l => brbc & bitno = 7 & label = l - -; BLD/BST -let bldst = i[9] - with i[15:10] = 0b111110 & i[3] = 0 - bld %Rdst, %bitno <=> bldst = 0 &* - bst %Rdst, %bitno <=> bldst = 1 &* - -; SBRC/SBRS -let setclr = i[9] - with i[15:10] = 0b111111 & i[3] = 0 - sbrc %Rdst, %bit <=> setclr = 0 &* - sbrc %Rdst, %bit <=> setclr = 1 &* diff --git a/contrib/elftoolchain/isa/isa.1 b/contrib/elftoolchain/isa/isa.1 deleted file mode 100644 index 8a266916..00000000 --- a/contrib/elftoolchain/isa/isa.1 +++ /dev/null @@ -1,247 +0,0 @@ -.\" Copyright (c) 2012,2013 Joseph Koshy. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - \" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - \" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - \" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd January 13, 2013 -.Dt ISA 1 -.Os -.Sh NAME -.Nm isa -.Nd instruction set analyser -.Sh SYNOPSIS -.Nm -.Op Fl a Ar architecture | Fl -arch Ns = Ns Ar architecture -.Op Fl c Ar cpu | Fl -cpu Ns = Ns Ar cpu -.Op Fl h | Fl -help -.Op Fl i Ar filename | Fl -input Ns = Ns Ar filename -.Op Fl n | Fl -dry-run -.Op Fl o Ar filename | Fl -output Ns = Ns Ar filename -.Op Fl p Ar string | Fl -prefix Ns = Ns Ar string -.Op Fl s Ar filename | Fl -spec Ns = Ns Ar filename -.Op Fl q | Fl -quiet -.Op Fl v | Fl -verbose -.Op Fl D | Fl -decode -.Op Fl E | Fl -encode -.Op Fl L | Fl -list-instructions -.Op Fl N Ar number | Fl -ntests Ns = Ns Ar number -.Op Fl Q | Fl -query -.Op Fl R Ar number | Fl -random-seed Ns = Ns Ar number -.Op Fl T | Fl -test -.Op Fl V | Fl -version -.Ar -.Sh DESCRIPTION -The -.Nm -utility is used to generate instruction stream encoders and decoders -from a textual description of a CPU instruction set. -.Pp -The -.Nm -utility supports three operational modes, as specified by the use of -the -.Fl D , -.Fl E -or -.Fl Q -options: -.Bl -tag -width indent -.It Cm Decode -.Pq Fl D | Fl -decode -In this mode, the -.Nm -utility transforms source code, expanding match pattern between the -tokens -.Dq Li "[ISA[" -and -.Dq Li "]ISA]" -into the appropriate code for matching instruction streams. -The section -.Sx "Matching Instructions" -describes the decode functionality in greater depth. -.It Cm Encode -.Pq Fl E | Fl -encode -In this mode, the -.Nm -utility generates C code to emit binary instruction streams. -.It Cm Query -.Pq Fl Q | Fl -query -In this mode, the -.Nm -utility is used to retrieve information from instruction set -specifications. -.El -.Pp -If no operational mode is specified, a default of -.Cm Query -will be used. -.Pp -Instruction set specifications may be specified using the -.Fa a -option, or by using the command line arguments -.Ar . -.Pp -The -.Nm -utility accepts the following options: -.Bl -tag -width indent -.It Fl a Ar architecture | Fl -arch Ns = N Ar architecture -Use instruction set specifications specified by the argument -.Ar architecture . -The -.Nm -utility will look for these specifications in the locations -specified by the environment variable -.Ev ISAPATH , -in addition to a built-in search location. -The default architecture is that for the host the -.Nm -utility is being executed on.s -.It Fl c Ar cpu | Fl -cpu Ns = Ns Ar cpu -Generate encoders and decoders for the specific instruction set -variant supported by CPU -.Ar cpu . -This option may be specified multiple times. -If the argument -.Ar cpu -starts with a minus, the CPU specified will be removed from list of -CPUs to be supported. -.It Fl h | Fl -help -Print a help message and exit. -.It Fl i Ar filename | Fl -input Ns = Ns Ar filename -When generating a decoder, read the source to be expanded from the -file named in the argument -.Ar filename . -If an input file is not specified, the -.Nm -utility will read from its standard input. -.It Fl n | Fl -dry-run -Exit without creating any output after checking inputs for errors. -.It Fl o Ar filename | Fl -output Ns = Ns Ar filename -When generating encoders and decoders, send the output to the file -specified by the argument -.Ar filename . -If an output file is not specified, the -.Nm -utility will write to its standard output. -.It Fl p Ar string | Fl -prefix Ns = Ns Ar string -When in encode mode, use the string in argument -.Ar string -as a prefix for generated symbols. -.It Fl q | Fl -quiet -Suppress warning messages. -.It Fl s Ar filename | Fl -spec Ns = Ns Ar filename -Read an instruction set specification from the file named by argument -.Ar filename . -This option may be specified multiple times, in which case the -.Nm -utilitiy behaves as if the specifications had been concatenated in the -sequence specified. -.It Fl v | Fl -verbose -Increase the verbosity level. -This option may be specified multiple times. -.It Fl D | Fl -decode -Transform sources expanding match patterns in source code to -lower-level instruction stream decoding code. -By default, the -.Nm -utility will read from standard input and write to standard output, -unless otherwise specified by the -.Fl i -and -.Fl o -options. -.It Fl E | Fl -encode -Build an instruction stream encoder. -.It Fl L | Fl -list-instructions -When in query mode, generate a list of all known instructions. -.It Fl N Ar number | Fl -ntests Ns = Ns Ar number -When in query mode, specify the number of test sequences to be -generated if the -.Fl -T | Fl -test -option was specified. -.It Fl Q | Fl -query -Retrieve information about an instruction set. -.It Fl R Ar number | Fl -random-seed Ns = Ns Ar number -Use the argument -.Ar number -as the seed for pseudorandom number generation. -If this option is not specified, the -.Nm -utility will initialize the pseudorandom number generator in an -implementation-defined manner. -.It Fl T | Fl -test -Generate instruction sequences for use in testing tools such as -assemblers. -.It Fl V | Fl -version -Print a version identifier and exit. -.El -.Sh ENVIRONMENT -The behavior of the -.Nm -utility is affected by the following environemnt variables: -.Bl -tag -.It Ev ISAPATH -Specifies a colon-separated set of directories tp be used when -searching for instruction specifications. -.El -.Sh FILES -.Bl -tag -width indent -.It Pa /usr/share/isa/ -The default location for instruction set specifications. -.El -.Sh EXAMPLES -To check the instruction specifications in file -.Pa spec.isa , -use: -.D1 isa -n "spec.isa" -.Pp -To expand instruction decoding templates in the file -.Pa a.m , -assuming a generic -.Tn AVR -CPU, and generating a C source file, use: -.D1 isa -a avr -D < a.m > a.c -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf 5 , -.Xr isa 5 -.Sh HISTORY -The -.Nm -utility is scheduled to appear in a future release from the -Elftoolchain project. -.\" TODO Reword the above when the target release is finalized. -.Sh AUTHORS -The -.Xr isa 1 -utility was written by -.An Joseph Koshy Aq Mt jkoshy@users.sourceforge.net . -.Sh BUGS -The -.Nm -utility is wildly unstable at this point of time. -If you intend to use this utility, please get in touch with the -project's developers at -.Aq elftoolchain-developers@lists.sourceforge.net . diff --git a/contrib/elftoolchain/isa/isa.5 b/contrib/elftoolchain/isa/isa.5 deleted file mode 100644 index 4df9fe3f..00000000 --- a/contrib/elftoolchain/isa/isa.5 +++ /dev/null @@ -1,365 +0,0 @@ -.\" Copyright (c) 2013 Joseph Koshy. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd January 16, 2013 -.Os -.Dt ISA 1 -.Sh NAME -.Nm isa -.Nd input file format for the isa utility -.Sh DESCRIPTION -The -.Nm -utility is used to generate instruction stream encoders and decoders -from a textual description of a machine instruction set. -This manual page documents the form of the textual description -accepted by the -.Nm -utility. -.Ss Basic Concepts -A machine instruction is composed of one -.Em tokens , -each kind of token having a defined width. -Simple RISC-like instruction sets have instructions that use 1 or 2 -tokens, typically an instruction word and an optional immediate field. -More complex CISC instruction sets may use many more kinds of tokens. -.Pp -Each token is made up of -.Em fields , -for example, an instruction token could be made up of an opcode field, -additional fields naming registers, fields containing flags, immediate -values and so on. -Fields may be named using the -.Cm let -directive, or can be unnamed. -The bitslice operator -.Pq Li \&[] -can be used to denote specific portions of a token. -.Pp -Non-overlapping fields are grouped together into -.Em fragments . -Fragments may be composed using the -.Dq "&" -operator. -The textual form of a fragment may be specified using -the -.Li names -directive. -.Pp -A set of fragments that fully specifies each bit in a token is -said to be -.Sq complete . -Only complete fragment sets can be emitted. -.Pp -.Ss Input Syntax -The semicolon -.Dq "\&;" -introduces a comment. -All text from the semicolon to the end of the line is ignored. -.Pp -The language uses indentation to specify scope (i.e., it uses the -offside rule), as in the -.Ic Python -and -.Ic Haskell -programming languages. -.Ss Operators -.Bl -tag -.It "Composing Fragments" -The -.Dq Li \&& -operator is used to join fragments, forming a larger fragment. -For example, to specify a fragment that is comprised of two -previously named fragments -.Ar Rtop -and -.Ar Rbottom , -use: -.Bd -literal -offset indent -Rtop & Rbottom -.Ed -.It "Generators" -A generator expression has the form -.Li [ Ar expr1 Ns Li \&| Ns Ar expr2 Ns \&... Ns Li ] -and denotes a sequence of values -.Va expr1 , -where the additional expressions -.Va expr2 -serve to define the range of values generated. -Any -.Dq Li \&% Ns --escapes in -.Va expr1 -are expanded. -For example, -.Dl [ R%n | n = 0..31 ] -generates the sequence -.Li R0 , -.Li R1 , -\&... , -.Li R31 . -.It "Numeric Ranges" -The notation -.Dq \&.. -denotes a numeric range. -For example, -.Dl 0..(2^16-1) -represents the numbers 0 to 65535, inclusive. -.It Sequences -Sequences of items are bracketed by square brackets -.Dq "\&[" -and -.Dq "\&]" . -For example, -.Dl "let n = [ a b c d ]" -Sequences can be given a local name using the -.Va name -.Li @ -.Va sequence -syntax, for example: -.Dl bar@[ 1 2 3 ] -defines -.Va bar -as a local name for the expression [ 1 2 3 ]. -.Pp -The -.Dq Li \&++ -operator is used to concatenate sequences. -These sequences must be of the same type. -.It "Sequencing Tokens" -The -.Dq Li \&<+> -operator separates tokens in sequence. -For example, to specify an instruction that has two tokens T1 and T2 -in sequence, use: -.Bd -literal -offset indent -\&..the definition of T1.. -<+> -\&..the definition of T2.. -.Ed -.It Slices -Slices may be specified using the slice notation, namely -.Ar name Ns -.Li \&[ Ns -.Ar highbit Ns -.Li \&: Ns -.Ar lowbit Ns -.Li \&] , -where -.Ar highbit -and -.Ar lowbit -are inclusive zero-based indices and -.Ar name -is the name of a token. -.Bd -literal -offset indent -let Rsrc = instruction[3:0] -.Ed -.Pp -Sparse slices may be specified by separating slice expressions using -commas, for example bit 7 and 5 of the -.Va ifield -token may be specified using: -.Dl ifield[7,5] -.It "Specifying Assembly Formats" -The -.Dq Li \&<=> -infix operator is used to specify assembly language syntax and its -mapping to sequences of fragments defined earlier, see the section -.Sx "Defining Assembly Syntax" . -.Pp -The -.Dq Li \&&* -operator indicates that all the named fragments in the LHS (the -assembly syntax side) of the -.Dq Li \&<=> -operator should be treated as being present on the RHS. -This operator allows instructions that have a simple one-to-one -mapping between their assembly language definition and instruction -encoding to be described succinctly. -For example: -.Bd -literal -offset indent -muls %Rd, %Rs <=> i[15:8] = 0b00000010 &* -.Ed -.El -.Ss Language Constructs -The input language has the following constructs: -.Bl -tag -width indent -.It Li arch Ar string -Specifies the name of the instruction set architecture being -processed. -.Bd -literal -offset indent -arch myarch -.Ed -.It Li cpus -Starts a block naming CPU identifiers. -Specific instructions or groups of instructions may be flagged -as being supported on sets of the CPUs so declared. -.Bd -literal -offset indent -cpus - basic = [ CPU1 CPU2 ] - advanced = basic ++ [ CPU3 ] -.Ed -.It Li token Ar name "(" Ar width ")" -Defines a token with name -.Ar name -and width -.Ar width . -For example, to define a 16 bit named -.Ar i -(short for -.Dq instruction ) , -and a 8 bit offset token named -.Ar o , -use: -.Bd -literal -offset indent -token i(16) ; a comment here - o(8) -.Ed -.It Li let Ar name [ Ar params ] "=" Ar expression -Declare -.Ar name -as being the equivalent of -.Ar expression . -.It Li names Ar generator-expression -Defines the textual representation for a fragment. -For example, -.Bd -literal -offset indent -compact -let Rsrc = i[3:0] - names [ R%n | n = 0..7 ] -.Ed -specifies that a value of 0 for fragment -.Va Rsrc -should be shown as -.Li R0 , -and so on. -Conversely, when assembing text, the string -.Dq R15 -would be translated to a fragment value of 15. -.It Li where Ar name [ Ar params ] = Ar expression -Like the -.Li let -statement, a -.Li where -statement introduces local definitions, except that the scope of these -definitions is the statement preceding the -.Li where -keyword. -Example: -.Bd -literal -offset indent -let Kimm6 = Kimm6high & Kimm6low - where Kimm6[5:4] = Kimm6high - Kimm6[3:0] = Kimm6low -.Ed -.It Li with Ar fragment-definition -Defines fragment assignments that hold for statements in the scope of -the -.Li with -statement. -For example, -.Bd -literal -offset indent -with i[15:8] = 0b00000011 - fmulsu %Rd, %Rs <=> i[7,3] = [1,1] &* -.Ed -.El -.Ss Defining Assembly Syntax -Assembly syntax is described using the -.Li \&<=> -operator. -The form of the operator is -.Bd -ragged -offset indent -assembler-text -.Li \&<=> -.Va fragment -.Li \&& -.Va fragment -.Li & \&... -.Ed -.Pp -The RHS of the -.Li \&<=> -operator must specify a -.Sq complete -fragment set, i.e., no bits should be unspecified in any of the tokens -used in the RHS. -The LHS of the -.Li \&<=> -operator consists of literal text interspersed by fragment names. -Fragment names are prefixed by the -.Sq \&% -character. -These fragment names in the LHS may refer to fragment names defined -earlier, or may be new names that are local to the current definition. -.Pp -For example, the following definition defines an instruction with -mnemonic -.Dq Li rjmp . -.Bd -literal -offset indent -let reloffset = i[11:0] - reljmpcall = i[12] -in - with i[15:13] = 0b110 - rjmp %label <=> reljmpcall = 0 & reloffset = (label - . - 1) -.Ed -.Pp -In this definition, the field -.Va label -is a local fragment, one that is used to compute the value of the -.Va reloffset -field in the instruction. -In the RHS, the -.Va reljmpcall -bit is defined as being 0. -The rest of the bits in the token -.Va i -are specified by the enclosing -.Li with -statement. -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf 5 , -.Xr isa 1 -.Sh HISTORY -The -.Nm -utility is scheduled to appear in a future release from the -Elftoolchain project. -.\" TODO Reword the above when the target release is finalized. -.Sh AUTHORS -The -.Xr isa 1 -utility was written by -.An Joseph Koshy Aq Mt jkoshy@users.sourceforge.net . -.Sh BUGS -The -.Nm -utility is -.Ud -The input format documented in this manual is likely to change -in the future. -If you intend to use this utility, please get in touch with the -project's developers at -.Aq elftoolchain-developers@lists.sourceforge.net . diff --git a/contrib/elftoolchain/isa/isa.c b/contrib/elftoolchain/isa/isa.c deleted file mode 100644 index d2da4b50..00000000 --- a/contrib/elftoolchain/isa/isa.c +++ /dev/null @@ -1,286 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -/* - * Option handling. - */ - -enum isa_mode { - ISA_MODE_DECODE, - ISA_MODE_ENCODE, - ISA_MODE_QUERY -}; - -enum isa_submode { - ISA_SUBMODE_GENERATE_TESTS, - ISA_SUBMODE_LIST_INSTRUCTIONS -}; - -#define ISA_OPT_DRY_RUN 0x0001 -#define ISA_OPT_NO_WARNINGS 0x0002 -#define ISA_OPT_VERBOSE 0x0004 - -/* Record a option. */ -struct isa_option { - const char *isa_option; - SLIST_ENTRY(isa_option) isa_next; -}; - -struct isa_config { - unsigned int isa_flags; - enum isa_mode isa_mode; - enum isa_submode isa_submode; - int isa_ntests; - int isa_seed; - const char *isa_arch; - const char *isa_input; - const char *isa_output; - const char *isa_prefix; - SLIST_HEAD(,isa_option) isa_cpus; - SLIST_HEAD(,isa_option) isa_specs; -}; - -#define ISA_MAX_LONG_OPTION_LENGTH 64 - -static struct option isa_long_options[] = { - { "arch", required_argument, NULL, 'a' }, - { "cpu", required_argument, NULL, 'c' }, - { "decode", no_argument, NULL, 'D' }, - { "dry-run", no_argument, NULL, 'n' }, - { "encode", no_argument, NULL, 'E' }, - { "help", no_argument, NULL, 'h' }, - { "input", required_argument, NULL, 'i' }, - { "list-instructions", no_argument, NULL, 'L' }, - { "ntests", required_argument, NULL, 'N' }, - { "output", required_argument, NULL, 'o' }, - { "prefix", required_argument, NULL, 'p' }, - { "query", no_argument, NULL, 'Q' }, - { "quiet", no_argument, NULL, 'q' }, - { "random-seed", required_argument, NULL, 'R' }, - { "spec", required_argument, NULL, 's' }, - { "test", no_argument, NULL, 'T' }, - { "verbose", no_argument, NULL, 'v' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; - -static const char *isa_usage_message = "\ -usage: %s [options] [command] [specfiles]...\n\ - Process an instruction set specification.\n\ -\n\ -Supported values for 'command' are:\n\ - decode Build an instruction stream decoder.\n\ - encode Build an instruction stream encoder.\n\ - query (default) Retrieve information about an instruction set.\n\ -\n\ -Supported global options are:\n\ - -a ARCH | --arch ARCH Process instruction specifications for ARCH.\n\ - -c CPU | --cpu CPU Process instruction specifications for CPU.\n\ - -n | --dry-run Exit after checking inputs for errors.\n\ - -s FILE | --spec FILE Read instruction specifications from FILE.\n\ - -q | --quiet Suppress warning messages.\n\ - -v | --verbose Be verbose.\n\ - -V | --version Display a version identifier and exit.\n\ -\n\ -Supported options for command 'decode' are:\n\ - -i FILE | --input FILE Read source to be expanded from FILE.\n\ - -o FILE | --output FILE Write generated output to FILE.\n\ -\n\ -Supported options for command 'encode' are:\n\ - -o FILE | --output FILE Write generated output to FILE.\n\ - -p STR | --prefix STR Use STR as a prefix for generated symbols.\n\ -\n\ -Supported options for command 'query' are:\n\ - -L | --list-instructions Generate a list of all known instructions.\n\ - -N NUM | --ntests NUM Specify the number of test sequences generated.\n\ - -R N | --random-seed N Use N as the random number generator seed.\n\ - -T | --test Generate test sequences.\n\ -"; - -void -isa_usage(int iserror, const char *message, ...) -{ - FILE *channel; - va_list ap; - - channel = iserror ? stderr : stdout; - - if (message) { - va_start(ap, message); - (void) vfprintf(channel, message, ap); - va_end(ap); - } - - (void) fprintf(channel, isa_usage_message, ELFTC_GETPROGNAME()); - exit(iserror != 0); -} - -void -isa_unimplemented(int option, int option_index, struct option *options_table) -{ - char msgbuf[ISA_MAX_LONG_OPTION_LENGTH]; - - if (option_index >= 0) - (void) snprintf(msgbuf, sizeof(msgbuf), "\"--%s\"", - options_table[option_index].name); - else - (void) snprintf(msgbuf, sizeof(msgbuf), "'-%c'", - option); - errx(1, "ERROR: option %s is unimplemented.", msgbuf); -} - -struct isa_option * -isa_make_option(const char *arg) -{ - struct isa_option *isa_opt; - - if ((isa_opt = malloc(sizeof(*isa_opt))) == NULL) - return (NULL); - isa_opt->isa_option = optarg; - - return (isa_opt); -} - -int -main(int argc, char **argv) -{ - int option, option_index; - struct isa_option *isa_opt; - struct isa_config config; - - (void) memset(&config, 0, sizeof(config)); - config.isa_mode = ISA_MODE_QUERY; - config.isa_arch = config.isa_input = config.isa_output = - config.isa_prefix = NULL; - SLIST_INIT(&config.isa_cpus); - SLIST_INIT(&config.isa_specs); - - for (option_index = -1; - (option = getopt_long(argc, argv, "a:c:hi:no:p:qs:vDELN:QR:TV", - isa_long_options, &option_index)) != -1; - option_index = -1) { - switch (option) { - case 'h': - isa_usage(0, NULL); - break; - case 'V': - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), - elftc_version()); - exit(0); - break; - - case 'a': - config.isa_arch = optarg; - break; - case 'c': - if ((isa_opt = isa_make_option(optarg)) == NULL) - goto error; - SLIST_INSERT_HEAD(&config.isa_cpus, isa_opt, isa_next); - break; - case 'i': - config.isa_input = optarg; - break; - case 'n': - config.isa_flags |= ISA_OPT_DRY_RUN; - break; - case 'o': - config.isa_output = optarg; - break; - case 'p': - config.isa_prefix = optarg; - break; - case 'q': - config.isa_flags |= ISA_OPT_NO_WARNINGS; - break; - case 's': - if ((isa_opt = isa_make_option(optarg)) == NULL) - goto error; - SLIST_INSERT_HEAD(&config.isa_specs, isa_opt, - isa_next); - break; - case 'v': - config.isa_flags |= ISA_OPT_VERBOSE; - break; - case 'D': - config.isa_mode = ISA_MODE_DECODE; - break; - case 'E': - config.isa_mode = ISA_MODE_ENCODE; - break; - case 'L': - config.isa_submode = ISA_SUBMODE_LIST_INSTRUCTIONS; - break; - case 'N': - config.isa_ntests = atoi(optarg); - break; - case 'Q': - config.isa_mode = ISA_MODE_QUERY; - break; - case 'R': - config.isa_seed = atoi(optarg); - break; - case 'T': - config.isa_submode = ISA_SUBMODE_GENERATE_TESTS; - break; - default: - isa_usage(1, "\n"); - break; - } - } - - /* - * Create the canonical list of specification files to - * be processed. - */ - for (;optind < argc; optind++) { - if ((isa_opt = isa_make_option(argv[optind])) == NULL) - goto error; - SLIST_INSERT_HEAD(&config.isa_specs, isa_opt, - isa_next); - } - - exit(0); - -error: - err(1, "ERROR: Invocation failed"); -} - diff --git a/contrib/elftoolchain/ld/Makefile b/contrib/elftoolchain/ld/Makefile deleted file mode 100644 index e72feed4..00000000 --- a/contrib/elftoolchain/ld/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= ld -WARNS?= 5 - -SRCS= amd64.c \ - amd64_script.c \ - i386.c \ - i386_script.c \ - ld_arch.c \ - ld_dynamic.c \ - ld_ehframe.c \ - ld_error.c \ - ld_exp.c \ - ld_file.c \ - ld_hash.c \ - ld_input.c \ - ld_layout.c \ - ld_main.c \ - ld_options.c \ - ld_output.c \ - ld_path.c \ - ld_reloc.c \ - ld_script.c \ - ld_strtab.c \ - ld_symbols.c \ - ld_symver.c \ - mips.c \ - littlemips_script.c \ - bigmips_script.c - -LSRC= ld_script_lexer.l -YSRC= ld_script_parser.y - -GENSRCS= amd64_script.c i386_script.c littlemips_script.c \ - bigmips_script.c - -CLEANFILES+= ${GENSRCS} - -DPADD= ${LIBELFTC} ${LIBELF} ${LIBDWARF} -LDADD= -lelftc -ldwarf -lelf - -CFLAGS+= -I. -I${.CURDIR} -YFLAGS= -d - -.SUFFIXES: .ld .c -.ld.c: - awk -f ${.CURDIR}/ld_script.awk ${.ALLSRC} > ${.TARGET} - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/ld/amd64.c b/contrib/elftoolchain/ld/amd64.c deleted file mode 100644 index cd89ce1c..00000000 --- a/contrib/elftoolchain/ld/amd64.c +++ /dev/null @@ -1,1327 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_dynamic.h" -#include "ld_input.h" -#include "ld_layout.h" -#include "ld_output.h" -#include "ld_reloc.h" -#include "ld_symbols.h" -#include "ld_utils.h" -#include "amd64.h" - -ELFTC_VCSID("$Id$"); - -static void _create_plt_reloc(struct ld *ld, struct ld_symbol *lsb, - uint64_t offset); -static void _create_got_reloc(struct ld *ld, struct ld_symbol *lsb, - uint64_t type, uint64_t offset); -static void _create_copy_reloc(struct ld *ld, struct ld_symbol *lsb); -static void _create_dynamic_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_symbol *lsb, uint64_t type, uint64_t offset, int64_t addend); -static void _scan_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre); -static struct ld_input_section *_find_and_create_got_section(struct ld *ld, - int create); -static struct ld_input_section *_find_and_create_gotplt_section(struct ld *ld, - int create); -static struct ld_input_section *_find_and_create_plt_section(struct ld *ld, - int create); -static void _finalize_got_and_plt(struct ld *ld); -static uint64_t _get_max_page_size(struct ld *ld); -static uint64_t _get_common_page_size(struct ld *ld); -static void _adjust_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf); -static void _process_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf); -static void _reserve_got_entry(struct ld *ld, struct ld_symbol *lsb, int num); -static void _reserve_gotplt_entry(struct ld *ld, struct ld_symbol *lsb); -static void _reserve_plt_entry(struct ld *ld, struct ld_symbol *lsb); -static int _is_absolute_reloc(uint64_t r); -static void _warn_pic(struct ld *ld, struct ld_reloc_entry *lre); -static void _create_tls_gd_reloc(struct ld *ld, struct ld_symbol *lsb); -static void _create_tls_ld_reloc(struct ld *ld, struct ld_symbol *lsb); -static void _create_tls_ie_reloc(struct ld *ld, struct ld_symbol *lsb); -static enum ld_tls_relax _tls_check_relax(struct ld *ld, - struct ld_reloc_entry *lre); -static uint64_t _got_offset(struct ld *ld, struct ld_symbol *lsb); -static int _tls_verify_gd(uint8_t *buf, uint64_t off); -static int _tls_verify_ld(uint8_t *buf, uint64_t off); -static void _tls_relax_gd_to_ie(struct ld *ld, struct ld_state *ls, - struct ld_output *lo,struct ld_reloc_entry *lre, uint64_t p, uint64_t g, - uint8_t *buf); -static void _tls_relax_gd_to_le(struct ld *ld, struct ld_state *ls, - struct ld_output *lo, struct ld_reloc_entry *lre, struct ld_symbol *lsb, - uint8_t *buf); -static void _tls_relax_ld_to_le(struct ld *ld, struct ld_state *ls, - struct ld_reloc_entry *lre, uint8_t *buf); -static void _tls_relax_ie_to_le(struct ld *ld, struct ld_output *lo, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf); -static int32_t _tls_dtpoff(struct ld_output *lo, struct ld_symbol *lsb); -static int32_t _tls_tpoff(struct ld_output *lo, struct ld_symbol *lsb); - -static uint64_t -_get_max_page_size(struct ld *ld) -{ - - (void) ld; - return (0x200000); -} - -static uint64_t -_get_common_page_size(struct ld *ld) -{ - - (void) ld; - return (0x1000); -} - -static int -_is_absolute_reloc(uint64_t r) -{ - - if (r == R_X86_64_64 || r == R_X86_64_32 || r == R_X86_64_32S || - r == R_X86_64_16 || r == R_X86_64_8) - return (1); - - return (0); -} - -static int -_is_relative_reloc(uint64_t r) -{ - - if (r == R_X86_64_RELATIVE) - return (1); - - return (0); -} - -static void -_warn_pic(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = lre->lre_sym; - - if (lsb->lsb_bind != STB_LOCAL) - ld_warn(ld, "relocation %s against `%s' can not be used" - " by runtime linker; recompile with -fPIC", - elftc_reloc_type_str(EM_X86_64, - lre->lre_type), lsb->lsb_name); - else - ld_warn(ld, "relocation %s can not be used by runtime linker;" - " recompile with -fPIC", elftc_reloc_type_str(EM_X86_64, - lre->lre_type)); -} - -static struct ld_input_section * -_find_and_create_got_section(struct ld *ld, int create) -{ - struct ld_input_section *is; - - /* Check if the GOT section is already created. */ - is = ld_input_find_internal_section(ld, ".got"); - if (is != NULL) - return (is); - - if (create) { - is = ld_input_add_internal_section(ld, ".got"); - is->is_entsize = 8; - is->is_align = 8; - is->is_type = SHT_PROGBITS; - is->is_flags = SHF_ALLOC | SHF_WRITE; - } - - return (is); -} - -static struct ld_input_section * -_find_and_create_gotplt_section(struct ld *ld, int create) -{ - struct ld_input_section *is; - - /* Check if the GOT (for PLT) section is already created. */ - is = ld_input_find_internal_section(ld, ".got.plt"); - if (is != NULL) - return (is); - - if (create) { - is = ld_input_add_internal_section(ld, ".got.plt"); - is->is_entsize = 8; - is->is_align = 8; - is->is_type = SHT_PROGBITS; - is->is_flags = SHF_ALLOC | SHF_WRITE; - - /* Reserve space for the initial entries. */ - (void) ld_input_reserve_ibuf(is, 3); - - /* Create _GLOBAL_OFFSET_TABLE_ symbol. */ - ld_symbols_add_internal(ld, "_GLOBAL_OFFSET_TABLE_", 0, 0, - is->is_index, STB_LOCAL, STT_OBJECT, STV_HIDDEN, is, NULL); - } - - return (is); -} - -static struct ld_input_section * -_find_and_create_plt_section(struct ld *ld, int create) -{ - struct ld_input_section *is; - - /* Check if the PLT section is already created. */ - is = ld_input_find_internal_section(ld, ".plt"); - if (is != NULL) - return (is); - - if (create) { - is = ld_input_add_internal_section(ld, ".plt"); - is->is_entsize = 16; - is->is_align = 4; - is->is_type = SHT_PROGBITS; - is->is_flags = SHF_ALLOC | SHF_EXECINSTR; - - /* Reserve space for the initial entry. */ - (void) ld_input_reserve_ibuf(is, 1); - } - - return (is); -} - -static void -_reserve_got_entry(struct ld *ld, struct ld_symbol *lsb, int num) -{ - struct ld_input_section *is; - - is = _find_and_create_got_section(ld, 1); - - /* Check if the entry already has a GOT entry. */ - if (lsb->lsb_got) - return; - - /* Reserve GOT entries. */ - lsb->lsb_got_off = ld_input_reserve_ibuf(is, num); - lsb->lsb_got = 1; -} - -static void -_reserve_gotplt_entry(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input_section *is; - - is = _find_and_create_gotplt_section(ld, 1); - - /* Reserve a GOT entry for PLT. */ - (void) ld_input_reserve_ibuf(is, 1); - - /* - * Record a R_X86_64_JUMP_SLOT entry for this symbol. Note that - * we don't need to record the offset (relative to the GOT section) - * here, since the PLT relocations will be sorted later and we - * will generate GOT section according to the new order. - */ - _create_plt_reloc(ld, lsb, 0); -} - -static void -_reserve_plt_entry(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input_section *is; - - is = _find_and_create_plt_section(ld, 1); - - (void) ld_input_reserve_ibuf(is, 1); - lsb->lsb_plt = 1; -} - -static void -_create_plt_reloc(struct ld *ld, struct ld_symbol *lsb, uint64_t offset) -{ - - ld_reloc_create_entry(ld, ".rela.plt", NULL, R_X86_64_JUMP_SLOT, - lsb, offset, 0); - - lsb->lsb_dynrel = 1; -} - -static void -_create_got_reloc(struct ld *ld, struct ld_symbol *lsb, uint64_t type, - uint64_t offset) -{ - struct ld_input_section *tis; - - tis = _find_and_create_got_section(ld, 0); - assert(tis != NULL); - - ld_reloc_create_entry(ld, ".rela.got", tis, type, lsb, offset, 0); - - if (type != R_X86_64_RELATIVE) - lsb->lsb_dynrel = 1; -} - -static void -_create_copy_reloc(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input_section *tis; - - ld_dynamic_reserve_dynbss_entry(ld, lsb); - - tis = ld_input_find_internal_section(ld, ".dynbss"); - assert(tis != NULL); - - ld_reloc_create_entry(ld, ".rela.bss", tis, R_X86_64_COPY, lsb, - lsb->lsb_value, 0); - - lsb->lsb_dynrel = 1; -} - -static void -_create_dynamic_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_symbol *lsb, uint64_t type, uint64_t offset, int64_t addend) -{ - - if (lsb->lsb_bind == STB_LOCAL) { - if (is->is_flags & SHF_WRITE) - ld_reloc_create_entry(ld, ".rela.data.rel.local", - is, type, lsb, offset, addend); - else - ld_reloc_create_entry(ld, ".rela.data.rel.ro.local", - is, type, lsb, offset, addend); - } else { - if (is->is_flags & SHF_WRITE) - ld_reloc_create_entry(ld, ".rela.data.rel", - is, type, lsb, offset, addend); - else - ld_reloc_create_entry(ld, ".rela.data.rel.ro", - is, type, lsb, offset, addend); - } - - if (type != R_X86_64_RELATIVE) - lsb->lsb_dynrel = 1; -} - -static void -_finalize_reloc(struct ld *ld, struct ld_input_section *tis, - struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - (void) ld; - (void) tis; - - lsb = ld_symbols_ref(lre->lre_sym); - - switch (lre->lre_type) { - case R_X86_64_RELATIVE: - /* - * Update the addend stored in the original relocation to - * point to the new location, by adding the updated symbol - * value. - */ - lre->lre_addend += lsb->lsb_value; - - /* R_X86_64_RELATIVE should not associate with a symbol. */ - lre->lre_sym = NULL; - break; - - case R_X86_64_DTPMOD64: - /* - * Relocation R_X86_64_DTPMOD64 generated for local dynamic - * TLS model should not assoicate with a symbol. - */ - if (lre->lre_type == R_X86_64_DTPMOD64 && - lsb->lsb_tls_ld) - lre->lre_sym = NULL; - break; - - default: - break; - } -} - -static void -_finalize_got_and_plt(struct ld *ld) -{ - struct ld_output *lo; - struct ld_input_section *got_is, *rela_got_is, *plt_is, *rela_plt_is; - struct ld_output_section *got_os, *plt_os, *rela_plt_os; - struct ld_reloc_entry *lre; - struct ld_symbol *lsb; - char dynamic_symbol[] = "_DYNAMIC"; - uint8_t *got, *plt; - uint64_t u64; - int32_t s32, pltgot, gotpcrel; - int i, j; - - lo = ld->ld_output; - assert(lo != NULL); - - /* - * Intiailze all .got section entries to zero. - */ - got_is = _find_and_create_got_section(ld, 0); - if (got_is != NULL) - memset(got_is->is_ibuf, 0, got_is->is_size); - - /* - * Search for GOT relocations that requires filling in symbol - * value. - */ - rela_got_is = ld_input_find_internal_section(ld, ".rela.got"); - if (rela_got_is != NULL && rela_got_is->is_reloc != NULL) { - STAILQ_FOREACH(lre, rela_got_is->is_reloc, lre_next) { - if (lre->lre_type == R_X86_64_RELATIVE) { - lsb = lre->lre_sym; - got = (uint8_t *) got_is->is_ibuf + - lsb->lsb_got_off; - WRITE_64(got, lsb->lsb_value); - } - } - } - - /* - * Find the .plt section. The buffers should have been allocated - * at this point. - */ - plt_is = _find_and_create_plt_section(ld, 0); - if (plt_is == NULL) - return; - plt_os = plt_is->is_output; - plt = plt_is->is_ibuf; - assert(plt != NULL); - - /* - * Find the .got.plt and .rela.plt section. If the .plt section - * exists, the .got.plt and .rela.plt section should exist too. - */ - got_is = _find_and_create_gotplt_section(ld, 0); - assert(got_is != NULL); - got_os = got_is->is_output; - lo->lo_gotplt = got_os; - got = got_is->is_ibuf; - assert(got != NULL); - rela_plt_is = ld_input_find_internal_section(ld, ".rela.plt"); - assert(rela_plt_is != NULL); - rela_plt_os = rela_plt_is->is_output; - lo->lo_rel_plt = rela_plt_os; - - /* Point sh_info field of the .rela.plt to .plt section. */ - rela_plt_os->os_info = plt_os; - - /* Fill in the value of symbol _DYNAMIC in the first GOT entry. */ - ld_symbols_get_value(ld, dynamic_symbol, &u64); - WRITE_64(got, u64); - got += 8; - - /* Reserve the second and the third entry for the dynamic linker. */ - memset(got, 0, 16); - got += 16; - - /* - * Write the initial PLT entry. - */ - - /* Calculate the relative offset from PLT to GOT. */ - pltgot = got_os->os_addr - plt_os->os_addr; - - /* - * Push the second GOT entry to the stack for the dynamic - * linker. (PUSH reg/memXX [RIP+disp32]) (6 bytes for push) - */ - WRITE_8(plt, 0xff); - WRITE_8(plt + 1, 0x35); - s32 = pltgot - 6 + 8; - WRITE_32(plt + 2, s32); - plt += 6; - - /* - * Jump to the address in the third GOT entry (call into - * the dynamic linker). (JMP reg/memXX [RIP+disp32]) - * (6 bytes for jmp) - */ - WRITE_8(plt, 0xff); - WRITE_8(plt + 1, 0x25); - s32 = pltgot - 12 + 16; - WRITE_32(plt + 2, s32); - plt += 6; - - /* Padding: 4-byte nop. (NOP [rAx+disp8]) */ - WRITE_8(plt, 0x0f); - WRITE_8(plt + 1, 0x1f); - WRITE_8(plt + 2, 0x40); - WRITE_8(plt + 3, 0x0); - plt += 4; - - /* - * Walk through the sorted PLT relocations in the output section - * and fill in each GOT and PLT entries. - */ - i = 3; - j = 0; - STAILQ_FOREACH(lre, rela_plt_is->is_reloc, lre_next) { - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * Set symbol's PLT offset to the address of this PLT entry. - * The PLT offset is used in relocation processing later. - */ - lsb->lsb_plt_off = plt_os->os_addr + (i - 2) * 16; - - /* - * Update the offset for the R_X86_64_JUMP_SLOT relocation - * entry, pointing to the corresponding GOT entry. - */ - lre->lre_offset = got_os->os_addr + i * 8; - - /* - * Calculate the IP-relative offset to the GOT entry for - * this function. (6 bytes for jmp) - */ - gotpcrel = pltgot + i * 8 - (i - 2) * 16 - 6; - - /* - * PLT: Jump to the address in the GOT entry for this - * function. (JMP reg/memXX [RIP+disp32]) - */ - WRITE_8(plt, 0xff); - WRITE_8(plt + 1, 0x25); - WRITE_32(plt + 2, gotpcrel); - plt += 6; - - /* - * PLT: Symbol is not resolved, push the relocation index to - * the stack. (PUSH imm32) - */ - WRITE_8(plt, 0x68); - WRITE_32(plt + 1, j); - plt += 5; - - /* - * PLT: Jump to the first PLT entry, eventually call the - * dynamic linker. (JMP rel32off) - */ - WRITE_8(plt, 0xe9); - s32 = - (i - 1) * 16; - WRITE_32(plt + 1, s32); - plt += 5; - - /* - * GOT: Write the GOT entry for this function, pointing to - * the push op. - */ - u64 = plt_os->os_addr + (i - 2) * 16 + 6; - WRITE_64(got, u64); - - /* Increase relocation entry index. */ - j++; - - /* Move to next GOT entry. */ - got += 8; - i++; - } - - assert(got == (uint8_t *) got_is->is_ibuf + got_is->is_size); - assert(plt == (uint8_t *) plt_is->is_ibuf + plt_is->is_size); -} - -static void -_scan_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - enum ld_tls_relax tr; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * TODO: We do not yet support "Large Models" and relevant - * relocation types R_X86_64_GOT64, R_X86_64_GOTPCREL64, - * R_X86_64_GOTPC64, R_X86_64_GOTPLT64 and R_X86_64_PLTOFF64. - * Refer to AMD64 ELF ABI for details. - */ - - switch (lre->lre_type) { - case R_X86_64_NONE: - break; - - case R_X86_64_64: - case R_X86_64_32: - case R_X86_64_32S: - case R_X86_64_16: - case R_X86_64_8: - - /* - * For a local symbol, if the linker output a PIE or DSO, - * we should generate a R_X86_64_RELATIVE reloc for - * R_X86_64_64. We don't know how to generate dynamic reloc - * for other reloc types since R_X86_64_RELATIVE is 64 bits. - * We can not use them directly either because FreeBSD rtld(1) - * (and probably glibc) doesn't accept absolute address - * reloction other than R_X86_64_64. - */ - if (lsb->lsb_bind == STB_LOCAL) { - if (ld->ld_pie || ld->ld_dso) { - if (lre->lre_type == R_X86_64_64) - _create_dynamic_reloc(ld, is, lsb, - R_X86_64_RELATIVE, lre->lre_offset, - lre->lre_addend); - else - _warn_pic(ld, lre); - } - break; - } - - /* - * For a global symbol, we probably need to generate PLT entry - * and/or a dynamic relocation. - * - * Note here, normally the compiler will generate a PC-relative - * relocation for function calls. However, if the code retrieve - * the address of a function and call it indirectly, assembler - * will generate absolute relocation instead. That's why we - * should check if we need to create a PLT entry here. Also, if - * we're going to create the PLT entry, we should also set the - * symbol value to the address of PLT entry just in case the - * function address is used to compare with other function - * addresses. (If PLT address is used, function will have - * unified address in the main executable and DSOs) - */ - if (ld_reloc_require_plt(ld, lre)) { - if (!lsb->lsb_plt) { - _reserve_gotplt_entry(ld, lsb); - _reserve_plt_entry(ld, lsb); - } - /* - * Note here even if we have generated PLT for this - * function before, we still need to set this flag. - * It's possible that we first see the relative - * relocation then this absolute relocation, in - * other words, the same function can be called in - * different ways. - */ - lsb->lsb_func_addr = 1; - } - - if (ld_reloc_require_copy_reloc(ld, lre) && - !lsb->lsb_copy_reloc) - _create_copy_reloc(ld, lsb); - else if (ld_reloc_require_dynamic_reloc(ld, lre)) { - /* We only support R_X86_64_64. (See above) */ - if (lre->lre_type != R_X86_64_64) { - _warn_pic(ld, lre); - break; - } - /* - * Check if we can relax R_X86_64_64 to - * R_X86_64_RELATIVE instead. - */ - if (ld_reloc_relative_relax(ld, lre)) - _create_dynamic_reloc(ld, is, lsb, - R_X86_64_RELATIVE, lre->lre_offset, - lre->lre_addend); - else - _create_dynamic_reloc(ld, is, lsb, - R_X86_64_64, lre->lre_offset, - lre->lre_addend); - } - - break; - - case R_X86_64_PLT32: - /* - * In some cases we don't really need to generate a PLT - * entry, then a R_X86_64_PLT32 relocation can be relaxed - * to a R_X86_64_PC32 relocation. - */ - - if (lsb->lsb_bind == STB_LOCAL || - !ld_reloc_require_plt(ld, lre)) { - lre->lre_type = R_X86_64_PC32; - break; - } - - /* - * If linker outputs an normal executable and the symbol is - * defined but is not defined inside a DSO, we can generate - * a R_X86_64_PC32 relocation instead. - */ - if (ld->ld_exec && lsb->lsb_shndx != SHN_UNDEF && - (lsb->lsb_input == NULL || - lsb->lsb_input->li_type != LIT_DSO)) { - lre->lre_type = R_X86_64_PC32; - break; - } - - /* Create an PLT entry otherwise. */ - if (!lsb->lsb_plt) { - _reserve_gotplt_entry(ld, lsb); - _reserve_plt_entry(ld, lsb); - } - break; - - case R_X86_64_PC64: - case R_X86_64_PC32: - case R_X86_64_PC16: - case R_X86_64_PC8: - - /* - * When these relocations apply to a global symbol, we should - * check if we need to generate PLT entry and/or a dynamic - * relocation. - */ - if (lsb->lsb_bind != STB_LOCAL) { - if (ld_reloc_require_plt(ld, lre) && !lsb->lsb_plt) { - _reserve_gotplt_entry(ld, lsb); - _reserve_plt_entry(ld, lsb); - } - - if (ld_reloc_require_copy_reloc(ld, lre) && - !lsb->lsb_copy_reloc) - _create_copy_reloc(ld, lsb); - else if (ld_reloc_require_dynamic_reloc(ld, lre)) { - /* - * We can not generate dynamic relocation for - * these PC-relative relocation since they - * are probably not supported by the runtime - * linkers. - * - * Note: FreeBSD rtld(1) does support - * R_X86_64_PC32. - */ - _warn_pic(ld, lre); - } - } - break; - - case R_X86_64_GOTOFF64: - case R_X86_64_GOTPC32: - /* - * These relocation types use GOT address as a base address - * and instruct the linker to build a GOT. - */ - (void) _find_and_create_got_section(ld, 1); - break; - - case R_X86_64_GOT32: - case R_X86_64_GOTPCREL: - /* - * These relocation types instruct the linker to build a - * GOT and generate a GOT entry. - */ - if (!lsb->lsb_got) { - _reserve_got_entry(ld, lsb, 1); - /* - * TODO: For now we always create a R_X86_64_GLOB_DAT - * relocation for a GOT entry. There are cases that - * the symbol's address is known at link time and - * the GOT entry value can be filled in by the program - * linker instead. - */ - if (ld_reloc_require_glob_dat(ld, lre)) - _create_got_reloc(ld, lsb, R_X86_64_GLOB_DAT, - lsb->lsb_got_off); - else - _create_got_reloc(ld, lsb, R_X86_64_RELATIVE, - lsb->lsb_got_off); - } - break; - - case R_X86_64_TLSGD: /* Global Dynamic */ - tr = _tls_check_relax(ld, lre); - switch (tr) { - case TLS_RELAX_NONE: - _create_tls_gd_reloc(ld, lsb); - break; - case TLS_RELAX_INIT_EXEC: - _create_tls_ie_reloc(ld, lsb); - break; - case TLS_RELAX_LOCAL_EXEC: - break; - default: - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - } - break; - - case R_X86_64_TLSLD: /* Local Dynamic */ - tr = _tls_check_relax(ld, lre); - if (tr == TLS_RELAX_NONE) - _create_tls_ld_reloc(ld, lsb); - else if (tr != TLS_RELAX_LOCAL_EXEC) - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - - case R_X86_64_DTPOFF32: - /* Handled by R_X86_64_TLSLD case. */ - break; - - case R_X86_64_GOTTPOFF: /* Initial Exec */ - tr = _tls_check_relax(ld, lre); - if (tr == TLS_RELAX_NONE) - _create_tls_ie_reloc(ld, lsb); - else if (tr != TLS_RELAX_LOCAL_EXEC) - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - - case R_X86_64_TPOFF32: /* Local Exec */ - /* No further relaxation possible. */ - break; - - case R_X86_64_GOTPC32_TLSDESC: - case R_X86_64_TLSDESC_CALL: - /* TODO. */ - break; - - default: - ld_warn(ld, "can not handle relocation %ju", - lre->lre_type); - break; - } -} - -static uint64_t -_got_offset(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_output_section *os; - - assert(lsb->lsb_got); - - if (ld->ld_got == NULL) { - ld->ld_got = _find_and_create_got_section(ld, 0); - assert(ld->ld_got != NULL); - } - - os = ld->ld_got->is_output; - - return (os->os_addr + ld->ld_got->is_reloff + lsb->lsb_got_off); -} - -static void -_process_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf) -{ - struct ld_state *ls; - struct ld_output *lo; - uint64_t u64, s, l, p, g; - int64_t s64; - uint32_t u32; - int32_t s32; - enum ld_tls_relax tr; - - ls = &ld->ld_state; - - lo = ld->ld_output; - assert(lo != NULL); - - l = lsb->lsb_plt_off; - p = lre->lre_offset + is->is_output->os_addr + is->is_reloff; - s = lsb->lsb_value; - - switch (lre->lre_type) { - case R_X86_64_NONE: - break; - - case R_X86_64_64: - WRITE_64(buf + lre->lre_offset, s + lre->lre_addend); - break; - - case R_X86_64_PC32: - if (lsb->lsb_plt) - s32 = l + lre->lre_addend - p; - else - s32 = s + lre->lre_addend - p; - WRITE_32(buf + lre->lre_offset, s32); - break; - - case R_X86_64_PLT32: - if (!ls->ls_ignore_next_plt) { - s32 = l + lre->lre_addend - p; - WRITE_32(buf + lre->lre_offset, s32); - } else - ls->ls_ignore_next_plt = 0; - break; - - case R_X86_64_GOTPCREL: - g = _got_offset(ld, lsb); - s32 = g + lre->lre_addend - p; - WRITE_32(buf + lre->lre_offset, s32); - break; - - case R_X86_64_32: - u64 = s + lre->lre_addend; - u32 = u64 & 0xffffffff; - if (u64 != u32) - ld_fatal(ld, "R_X86_64_32 relocation failed"); - WRITE_32(buf + lre->lre_offset, u32); - break; - - case R_X86_64_32S: - s64 = s + lre->lre_addend; - s32 = s64 & 0xffffffff; - if (s64 != s32) - ld_fatal(ld, "R_X86_64_32S relocation failed"); - WRITE_32(buf + lre->lre_offset, s32); - break; - - case R_X86_64_TLSGD: /* Global Dynamic */ - tr = _tls_check_relax(ld, lre); - switch (tr) { - case TLS_RELAX_NONE: - g = _got_offset(ld, lsb); - s32 = g + lre->lre_addend - p; - WRITE_32(buf + lre->lre_offset, s32); - break; - case TLS_RELAX_INIT_EXEC: - g = _got_offset(ld, lsb); - _tls_relax_gd_to_ie(ld, ls, lo, lre, p, g, buf); - break; - case TLS_RELAX_LOCAL_EXEC: - _tls_relax_gd_to_le(ld, ls, lo, lre, lsb, buf); - break; - default: - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - } - break; - - case R_X86_64_TLSLD: /* Local Dynamic */ - tr = _tls_check_relax(ld, lre); - switch (tr) { - case TLS_RELAX_NONE: - g = _got_offset(ld, lsb); - s32 = g + lre->lre_addend - p; - WRITE_32(buf + lre->lre_offset, s32); - break; - case TLS_RELAX_LOCAL_EXEC: - _tls_relax_ld_to_le(ld, ls, lre, buf); - break; - default: - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - } - break; - - case R_X86_64_DTPOFF32: /* Local Dynamic (offset) */ - tr = _tls_check_relax(ld, lre); - switch (tr) { - case TLS_RELAX_NONE: - s32 = _tls_dtpoff(lo, lsb); - WRITE_32(buf + lre->lre_offset, s32); - break; - case TLS_RELAX_LOCAL_EXEC: - s32 = _tls_tpoff(lo, lsb); - WRITE_32(buf + lre->lre_offset, s32); - break; - default: - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - } - break; - - case R_X86_64_GOTTPOFF: /* Initial Exec */ - tr = _tls_check_relax(ld, lre); - switch (tr) { - case TLS_RELAX_NONE: - g = _got_offset(ld, lsb); - s32 = g + lre->lre_addend - p; - WRITE_32(buf + lre->lre_offset, s32); - break; - case TLS_RELAX_LOCAL_EXEC: - _tls_relax_ie_to_le(ld, lo, lre, lsb, buf); - break; - default: - ld_fatal(ld, "Internal: invalid TLS relaxation %d", - tr); - break; - } - break; - - case R_X86_64_TPOFF32: /* Local Exec */ - s32 = _tls_tpoff(lo, lsb); - WRITE_32(buf + lre->lre_offset, s32); - break; - - default: - ld_warn(ld, "Relocation %s not supported", - elftc_reloc_type_str(EM_X86_64, lre->lre_type)); - break; - } -} - -static void -_adjust_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf) -{ - struct ld_input_section *_is; - - (void) ld; - (void) is; - (void) buf; - - /* Only need to adjust relocation against section symbols. */ - if (lsb->lsb_type != STT_SECTION) - return; - - if ((_is = lsb->lsb_is) == NULL || _is->is_output == NULL) - return; - - /* - * Update the relocation addend to point to the new location - * in the output object. - */ - lre->lre_addend += _is->is_reloff; -} - -static enum ld_tls_relax -_tls_check_relax(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * If the linker is performing -static linking, we should always - * use the Local Exec model. - */ - if (!ld->ld_dynamic_link) - return (TLS_RELAX_LOCAL_EXEC); - - /* - * If the linker is creating a DSO, we can not perform any TLS - * relaxation. - */ - if (ld->ld_dso) - return (TLS_RELAX_NONE); - - /* - * The linker is creating an executable, if the symbol is - * defined in a regular object, we can use the Local Exec model. - */ - if (lsb->lsb_shndx != SHN_UNDEF && ld_symbols_in_regular(lsb)) - return (TLS_RELAX_LOCAL_EXEC); - - /* - * If the TLS model is Global Dynamic, we can relax it to Initial - * Exec model since the linker is creating an executable. - */ - if (lre->lre_type == R_X86_64_TLSGD) - return (TLS_RELAX_INIT_EXEC); - - /* For all the other cases, no relaxation can be done. */ - return (TLS_RELAX_NONE); -} - -static int32_t -_tls_tpoff(struct ld_output *lo, struct ld_symbol *lsb) -{ - int32_t tls_off; - - tls_off = -roundup(lo->lo_tls_size, lo->lo_tls_align); - - return (tls_off + (lsb->lsb_value - lo->lo_tls_addr)); -} - -static int32_t -_tls_dtpoff(struct ld_output *lo, struct ld_symbol *lsb) -{ - - return (lsb->lsb_value - lo->lo_tls_addr); -} - -static int -_tls_verify_gd(uint8_t *buf, uint64_t off) -{ - /* - * Global Dynamic model: - * - * 0x00 .byte 0x66 - * 0x01 leaq x@tlsgd(%rip), %rdi - * 0x08 .word 0x6666 - * 0x0a rex64 - * 0x0b call _tls_get_addr@plt - */ - uint8_t gd[] = "\x66\x48\x8d\x3d\x00\x00\x00\x00" - "\x66\x66\x48\xe8\x00\x00\x00\x00"; - - if (memcmp(buf + off, gd, sizeof(gd) - 1) == 0) - return (1); - - return (0); -} - -static int -_tls_verify_ld(uint8_t *buf, uint64_t off) -{ - /* - * Local Dynamic model: - * - * 0x00 leaq x@tlsld(%rip), %rdi - * 0x07 call _tls_get_addr@plt - */ - uint8_t ld[] = "\x48\x8d\x3d\x00\x00\x00\x00" - "\xe8\x00\x00\x00\x00"; - - if (memcmp(buf + off, ld, sizeof(ld) - 1) == 0) - return (1); - - return (0); -} - -static void -_tls_relax_gd_to_ie(struct ld *ld, struct ld_state *ls, struct ld_output *lo, - struct ld_reloc_entry *lre, uint64_t p, uint64_t g, uint8_t *buf) -{ - /* - * Initial Exec model: - * - * 0x00 movq %fs:0, %rax - * 0x09 addq x@gottpoff(%rip), %rax - */ - uint8_t ie[] = "\x64\x48\x8b\x04\x25\x00\x00\x00\x00" - "\x48\x03\x05\x00\x00\x00\x00"; - int32_t s32; - - assert(lre->lre_type == R_X86_64_TLSGD); - - if (!_tls_verify_gd(buf, lre->lre_offset - 4)) - ld_warn(ld, "unrecognized TLS global dynamic model code"); - - /* Rewrite Global Dynamic to Initial Exec model. */ - memcpy((uint8_t *) buf + lre->lre_offset - 4, ie, sizeof(ie) - 1); - - /* - * R_X86_64_TLSGD relocation is applied at gd[4]. After it's relaxed - * to Initial Exec model, the resulting R_X86_64_GOTTPOFF relocation - * should be applied at ie[12]. The addend should remain the same - * since instruction "leaq x@tlsgd(%rip), %rdi" and - * "addq x@gottpoff(%rip), %rax" has the same length. `p' is moved - * 8 bytes forward. - */ - s32 = g + lre->lre_addend - (p + 8); - WRITE_32(buf + lre->lre_offset + 8, s32); - - /* Ignore the next R_X86_64_PLT32 relocation for _tls_get_addr. */ - ls->ls_ignore_next_plt = 1; -} - -static void -_tls_relax_gd_to_le(struct ld *ld, struct ld_state *ls, struct ld_output *lo, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf) -{ - /* - * Local Exec model: - * - * 0x00 movq %fs:0, %rax - * 0x09 leaq x@tpoff(%rax), %rax - */ - uint8_t le[] = "\x64\x48\x8b\x04\x25\x00\x00\x00\x00" - "\x48\x8d\x80\x00\x00\x00\x00"; - int32_t s32; - - if (!_tls_verify_gd(buf, lre->lre_offset - 4)) - ld_warn(ld, "unrecognized TLS global dynamic model code"); - - /* Rewrite Global Dynamic to Local Exec model. */ - memcpy((uint8_t *) buf + lre->lre_offset - 4, le, sizeof(le) - 1); - - /* - * R_X86_64_TLSGD relocation is applied at gd[4]. After it's relaxed - * to Local Exec model, the resulting R_X86_64_TPOFF32 should be - * applied at le[12]. - */ - s32 = _tls_tpoff(lo, lsb); - WRITE_32(buf + lre->lre_offset + 8, s32); - - /* Ignore the next R_X86_64_PLT32 relocation for _tls_get_addr. */ - ls->ls_ignore_next_plt = 1; -} - -static void -_tls_relax_ld_to_le(struct ld *ld, struct ld_state *ls, - struct ld_reloc_entry *lre, uint8_t *buf) -{ - /* - * Local Exec model: (with padding) - * - * 0x00 .word 0x6666 - * 0x02 .byte 0x66 - * 0x03 movq %fs:0, %rax - */ - uint8_t le_p[] = "\x66\x66\x66\x64\x48\x8b\x04\x25\x00\x00\x00\x00"; - - assert(lre->lre_type == R_X86_64_TLSLD); - - if (!_tls_verify_ld(buf, lre->lre_offset - 3)) - ld_warn(ld, "unrecognized TLS local dynamic model code"); - - /* Rewrite Local Dynamic to Local Exec model. */ - memcpy(buf + lre->lre_offset - 3, le_p, sizeof(le_p) - 1); - - /* Ignore the next R_X86_64_PLT32 relocation for _tls_get_addr. */ - ls->ls_ignore_next_plt = 1; -} - -static void -_tls_relax_ie_to_le(struct ld *ld, struct ld_output *lo, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf) -{ - int32_t s32; - uint8_t reg; - - (void) ld; - - assert(lre->lre_type == R_X86_64_GOTTPOFF); - - /* - * Rewrite Initial Exec to Local Exec model: rewrite - * "movq 0x0(%rip),%reg" to "movq 0x0,%reg". or, - * "addq 0x0(%rip),%rsp" to "addq 0x0,%rsp". or, - * "addq 0x0(%rip),%reg" to "leaq 0x0(%reg),%reg" - */ - reg = buf[lre->lre_offset - 1] >> 3; - if (buf[lre->lre_offset - 2] == 0x8b) { - /* movq 0x0(%rip),%reg -> movq 0x0,%reg. */ - buf[lre->lre_offset - 2] = 0xc7; - buf[lre->lre_offset - 1] = 0xc0 | reg; /* Set r/m to `reg' */ - /* - * Set REX.B (high bit for r/m) if REX.R (high bit for reg) - * is set. - */ - if (buf[lre->lre_offset - 3] == 0x4c) - buf[lre->lre_offset - 3] = 0x49; - } else if (reg == 4) { - /* addq 0x0(%rip),%rsp -> addq 0x0,%rsp */ - buf[lre->lre_offset - 2] = 0x81; - buf[lre->lre_offset - 1] = 0xc0 | reg; /* Set r/m to `reg' */ - /* - * Set REX.B (high bit for r/m) if REX.R (high bit for reg) - * is set. - */ - if (buf[lre->lre_offset - 3] == 0x4c) - buf[lre->lre_offset - 3] = 0x49; - } else { - /* addq 0x0(%rip),%reg -> leaq 0x0(%reg),%reg */ - buf[lre->lre_offset - 2] = 0x8d; - /* Both reg and r/m in ModRM should be set to `reg' */ - buf[lre->lre_offset - 1] = 0x80 | reg | (reg << 3); - /* Set both REX.B and REX.R if REX.R is set */ - if (buf[lre->lre_offset - 3] == 0x4c) - buf[lre->lre_offset - 3] = 0x4d; - } - /* - * R_X86_64_GOTTPOFF relocation is applied at ie[12]. After it's - * relaxed to Local Exec model, the resulting R_X86_64_TPOFF32 - * should be applied at le[12]. Thus the offset remains the same. - */ - s32 = _tls_tpoff(lo, lsb); - WRITE_32(buf + lre->lre_offset, s32); -} - -static void -_create_tls_gd_reloc(struct ld *ld, struct ld_symbol *lsb) -{ - - /* - * Reserve 2 GOT entries and generate R_X86_64_DTPMOD64 and - * R_X86_64_DTPOFF64 relocations. - */ - if (!lsb->lsb_got) { - _reserve_got_entry(ld, lsb, 2); - _create_got_reloc(ld, lsb, R_X86_64_DTPMOD64, - lsb->lsb_got_off); - _create_got_reloc(ld, lsb, R_X86_64_DTPOFF64, - lsb->lsb_got_off + 8); - } -} - -static void -_create_tls_ld_reloc(struct ld *ld, struct ld_symbol *lsb) -{ - - /* Reserve 2 GOT entries and generate R_X86_64_DTPMOD64 reloation. */ - if (!lsb->lsb_got) { - _reserve_got_entry(ld, lsb, 2); - _create_got_reloc(ld, lsb, R_X86_64_DTPMOD64, - lsb->lsb_got_off); - lsb->lsb_tls_ld = 1; - } -} - -static void -_create_tls_ie_reloc(struct ld *ld, struct ld_symbol *lsb) -{ - - /* Reserve 1 GOT entry and generate R_X86_64_TPOFF64 relocation. */ - if (!lsb->lsb_got) { - _reserve_got_entry(ld, lsb, 1); - _create_got_reloc(ld, lsb, R_X86_64_TPOFF64, - lsb->lsb_got_off); - } -} - -void -amd64_register(struct ld *ld) -{ - struct ld_arch *amd64, *amd64_alt; - - if ((amd64 = calloc(1, sizeof(*amd64))) == NULL) - ld_fatal_std(ld, "calloc"); - - snprintf(amd64->name, sizeof(amd64->name), "%s", "amd64"); - - amd64->script = amd64_script; - amd64->interp = "/libexec/ld-elf.so.1"; - amd64->get_max_page_size = _get_max_page_size; - amd64->get_common_page_size = _get_common_page_size; - amd64->scan_reloc = _scan_reloc; - amd64->process_reloc = _process_reloc; - amd64->adjust_reloc = _adjust_reloc; - amd64->is_absolute_reloc = _is_absolute_reloc; - amd64->is_relative_reloc = _is_relative_reloc; - amd64->finalize_reloc = _finalize_reloc; - amd64->finalize_got_and_plt = _finalize_got_and_plt; - amd64->reloc_is_64bit = 1; - amd64->reloc_is_rela = 1; - amd64->reloc_entsize = sizeof(Elf64_Rela); - - HASH_ADD_STR(ld->ld_arch_list, name, amd64); - - if ((amd64_alt = calloc(1, sizeof(*amd64_alt))) == NULL) - ld_fatal_std(ld, "calloc"); - memcpy(amd64_alt, amd64, sizeof(struct ld_arch)); - amd64_alt->alias = amd64; - snprintf(amd64_alt->name, sizeof(amd64_alt->name), "%s", "x86-64"); - - HASH_ADD_STR(ld->ld_arch_list, name, amd64_alt); -} diff --git a/contrib/elftoolchain/ld/amd64.h b/contrib/elftoolchain/ld/amd64.h deleted file mode 100644 index 4f3e1e38..00000000 --- a/contrib/elftoolchain/ld/amd64.h +++ /dev/null @@ -1,31 +0,0 @@ -/*- - * Copyright (c) 2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -char *amd64_script; - -void amd64_register(struct ld *); diff --git a/contrib/elftoolchain/ld/amd64_script.ld b/contrib/elftoolchain/ld/amd64_script.ld deleted file mode 100644 index 3862489c..00000000 --- a/contrib/elftoolchain/ld/amd64_script.ld +++ /dev/null @@ -1,151 +0,0 @@ -/* $Id$ */ - -OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") -ENTRY(_start) -SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); -SECTIONS { - PROVIDE(__executable_start = 0x400000); - . = 0x400000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.dyn : - { - *(.rel.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rel.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rel.dtors) - *(.rel.got) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - } - .rela.dyn : - { - *(.rela.init) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rela.fini) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rela.ctors) - *(.rela.dtors) - *(.rela.got) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - .init : - { - KEEP(*(.init)) - } = 0x90909090 - .plt : { *(.plt) } - .text : - { - *(.text .stub .text.* .gnu.linkonce.t.*) - } = 0x90909090 - .fini : - { - KEEP(*(.fini)) - } = 0x90909090 - PROVIDE(__etext = .); - PROVIDE(_etext = .); - PROVIDE(etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } - .rodata1 : { *(.rodata1) } - .eh_frame_hdr : { *(.eh_frame_hdr) } - .eh_frame : { KEEP(*(.eh_frame)) } - .gcc_except_table : { *(.gcc_except_table) } - . = ALIGN (CONSTANT(MAXPAGESIZE)) - ((CONSTANT(MAXPAGESIZE) - .) & (CONSTANT(MAXPAGESIZE) - 1)); - . = DATA_SEGMENT_ALIGN (CONSTANT(MAXPAGESIZE), CONSTANT(COMMONPAGESIZE)); - .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } - PROVIDE(__preinit_array_start = .); - .preinit_array : { *(.preinit_array) } - PROVIDE(__preinit_array_end = .); - PROVIDE(__init_array_start = .); - .init_array : { *(.init_array) } - PROVIDE(__init_array_end = .); - PROVIDE(__fini_array_start = .); - .fini_array : { *(.fini_array) } - PROVIDE(__fini_array_end = .); - .ctors : - { - KEEP(*crtbegin*.o(.ctors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .ctors)) - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - } - .dtors : - { - KEEP(*crtbegin*.o(.dtors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .dtors)) - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - } - .jcr : { KEEP(*(.jcr)) } - .data.rel.ro : { - *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) - *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) - } - .dynamic : { *(.dynamic) } - .got : { *(.got) } - .got.plt : { *(.got.plt) } - .data : - { - *(.data .data.* .gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - } - .data1 : { *(.data1) } - _edata = .; - PROVIDE(edata = .); - __bss_start = .; - .bss : - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(64 / 8); - } - . = ALIGN(64 / 8); - _end = .; - PROVIDE(end = .); - . = DATA_SEGMENT_END (.); - - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - - /* DWARF1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF1 Extension */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - - /* DWARF2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /DISCARD/ : { *(.note.GNU-stack) } -} diff --git a/contrib/elftoolchain/ld/bigmips_script.ld b/contrib/elftoolchain/ld/bigmips_script.ld deleted file mode 100644 index 7f60e19b..00000000 --- a/contrib/elftoolchain/ld/bigmips_script.ld +++ /dev/null @@ -1,165 +0,0 @@ -/* $Id$ */ - -OUTPUT_FORMAT("elf32-bigmips") -ENTRY(_start) -SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); -SECTIONS { - PROVIDE (__executable_start = 0x00400000); - . = 0x00400000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.dyn : - { - *(.rel.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rel.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rel.dtors) - *(.rel.got) - *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - } - .rela.dyn : - { - *(.rela.init) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rela.fini) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rela.ctors) - *(.rela.dtors) - *(.rela.got) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - .init : - { - KEEP(*(.init)) - } = 0x00000000 - .plt : { *(.plt) } - .text : - { - _ftext = .; - *(.text .stub .text.* .gnu.linkonce.t.*) - } = 0x00000000 - .fini : - { - KEEP(*(.fini)) - } = 0x00000000 - PROVIDE(__etext = .); - PROVIDE(_etext = .); - PROVIDE(etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } - .rodata1 : { *(.rodata1) } - .eh_frame_hdr : { *(.eh_frame_hdr) } - .eh_frame : { KEEP(*(.eh_frame)) } - .gcc_except_table : { *(.gcc_except_table) } - - .tdata : ALIGN(4096) { *(.tdata .tdata.* .gnu.linkonce.td.*) } - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } - PROVIDE(__preinit_array_start = .); - .preinit_array : { *(.preinit_array) } - PROVIDE(__preinit_array_end = .); - PROVIDE(__init_array_start = .); - .init_array : { *(.init_array) } - PROVIDE(__init_array_end = .); - PROVIDE(__fini_array_start = .); - .fini_array : { *(.fini_array) } - PROVIDE(__fini_array_end = .); - .dynamic : { *(.dynamic) } - .ctors : - { - KEEP(*crtbegin*.o(.ctors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .ctors)) - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - } - .dtors : - { - KEEP(*crtbegin*.o(.dtors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .dtors)) - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - } - .jcr : { KEEP(*(.jcr)) } - .got : { *(.got.plt) *(.got) } - .data : - { - _fdata = .; - *(.data .data.* .gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - } - .data1 : { *(.data1) } - _gp = ALIGN(16) + 0x7ff0; - .sdata : - { - *(.sdata .sdata.* .gnu.linkonce.s.*) - } - /* Align the end of data segment to page boundary. */ - . = ALIGN(. != 0 ? 4096 : 1); - _edata = .; - PROVIDE(edata = .); - __bss_start = .; - _fbss = .; - .sbss : ALIGN(8) - { - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) - } - .bss : - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(32 / 8); - } - . = ALIGN(32 / 8); - _end = .; - PROVIDE(end = .); - . = DATA_SEGMENT_END (.); - - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - - /* DWARF1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF1 Extension */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - - /* DWARF2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /DISCARD/ : { *(.note.GNU-stack) *(.reginfo) } -} diff --git a/contrib/elftoolchain/ld/i386.c b/contrib/elftoolchain/ld/i386.c deleted file mode 100644 index e89e98c3..00000000 --- a/contrib/elftoolchain/ld/i386.c +++ /dev/null @@ -1,579 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_dynamic.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_reloc.h" -#include "ld_symbols.h" -#include "ld_utils.h" -#include "i386.h" - -ELFTC_VCSID("$Id$"); - -static void _create_plt_reloc(struct ld *ld, struct ld_symbol *lsb, - uint64_t offset); -static void _create_got_reloc(struct ld *ld, struct ld_symbol *lsb, - uint64_t type, uint64_t offset); -static void _create_copy_reloc(struct ld *ld, struct ld_symbol *lsb); -static void _create_dynamic_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_symbol *lsb, uint64_t type, uint64_t offset); -static void _scan_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre); -static struct ld_input_section *_find_and_create_got_section(struct ld *ld, - int create); -static struct ld_input_section *_find_and_create_gotplt_section(struct ld *ld, - int create); -static struct ld_input_section *_find_and_create_plt_section(struct ld *ld, - int create); -static uint64_t _get_max_page_size(struct ld *ld); -static uint64_t _get_common_page_size(struct ld *ld); -static void _process_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf); -static void _reserve_got_entry(struct ld *ld, struct ld_symbol *lsb, int num); -static void _reserve_gotplt_entry(struct ld *ld, struct ld_symbol *lsb); -static void _reserve_plt_entry(struct ld *ld, struct ld_symbol *lsb); -static int _is_absolute_reloc(uint64_t r); -static int _is_relative_reloc(uint64_t r); -static void _warn_pic(struct ld *ld, struct ld_reloc_entry *lre); -static uint32_t _got_offset(struct ld *ld, struct ld_symbol *lsb); - -static uint64_t -_get_max_page_size(struct ld *ld) -{ - - (void) ld; - return (0x1000); -} - -static uint64_t -_get_common_page_size(struct ld *ld) -{ - - (void) ld; - return (0x1000); -} - -static int -_is_absolute_reloc(uint64_t r) -{ - - if (r == R_386_32) - return (1); - - return (0); -} - -static int -_is_relative_reloc(uint64_t r) -{ - - if (r == R_386_RELATIVE) - return (1); - - return (0); -} - -static void -_warn_pic(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = lre->lre_sym; - - if (lsb->lsb_bind != STB_LOCAL) - ld_warn(ld, "relocation %s against `%s' can not be used" - " by runtime linker; recompile with -fPIC", - elftc_reloc_type_str(EM_386, lre->lre_type), lsb->lsb_name); - else - ld_warn(ld, "relocation %s can not be used by runtime linker;" - " recompile with -fPIC", - elftc_reloc_type_str(EM_386, lre->lre_type)); -} - -static struct ld_input_section * -_find_and_create_got_section(struct ld *ld, int create) -{ - struct ld_input_section *is; - - /* Check if the GOT section is already created. */ - is = ld_input_find_internal_section(ld, ".got"); - if (is != NULL) - return (is); - - if (create) { - is = ld_input_add_internal_section(ld, ".got"); - is->is_entsize = 4; - is->is_align = 4; - is->is_type = SHT_PROGBITS; - is->is_flags = SHF_ALLOC | SHF_WRITE; - } - - return (is); -} - -static struct ld_input_section * -_find_and_create_gotplt_section(struct ld *ld, int create) -{ - struct ld_input_section *is; - - /* Check if the GOT (for PLT) section is already created. */ - is = ld_input_find_internal_section(ld, ".got.plt"); - if (is != NULL) - return (is); - - if (create) { - is = ld_input_add_internal_section(ld, ".got.plt"); - is->is_entsize = 4; - is->is_align = 4; - is->is_type = SHT_PROGBITS; - is->is_flags = SHF_ALLOC | SHF_WRITE; - - /* Reserve space for the initial entries. */ - (void) ld_input_reserve_ibuf(is, 3); - - /* Create _GLOBAL_OFFSET_TABLE_ symbol. */ - ld_symbols_add_internal(ld, "_GLOBAL_OFFSET_TABLE_", 0, 0, - is->is_index, STB_LOCAL, STT_OBJECT, STV_HIDDEN, is, NULL); - } - - return (is); -} - -static struct ld_input_section * -_find_and_create_plt_section(struct ld *ld, int create) -{ - struct ld_input_section *is; - - /* Check if the PLT section is already created. */ - is = ld_input_find_internal_section(ld, ".plt"); - if (is != NULL) - return (is); - - if (create) { - is = ld_input_add_internal_section(ld, ".plt"); - is->is_entsize = 4; - is->is_align = 4; - is->is_type = SHT_PROGBITS; - is->is_flags = SHF_ALLOC | SHF_EXECINSTR; - - /* Reserve space for the initial entry. */ - (void) ld_input_reserve_ibuf(is, 1); - } - - return (is); -} - -static void -_reserve_got_entry(struct ld *ld, struct ld_symbol *lsb, int num) -{ - struct ld_input_section *is; - - is = _find_and_create_got_section(ld, 1); - - /* Check if the entry already has a GOT entry. */ - if (lsb->lsb_got) - return; - - /* Reserve GOT entries. */ - lsb->lsb_got_off = ld_input_reserve_ibuf(is, num); - lsb->lsb_got = 1; -} - -static void -_reserve_gotplt_entry(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input_section *is; - - is = _find_and_create_gotplt_section(ld, 1); - - /* Reserve a GOT entry for PLT. */ - (void) ld_input_reserve_ibuf(is, 1); - - /* - * Record a R_386_JUMP_SLOT entry for this symbol. Note that - * we don't need to record the offset (relative to the GOT section) - * here, since the PLT relocations will be sorted later and we - * will generate GOT section according to the new order. - */ - _create_plt_reloc(ld, lsb, 0); -} - -static void -_reserve_plt_entry(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input_section *is; - - is = _find_and_create_plt_section(ld, 1); - - (void) ld_input_reserve_ibuf(is, 1); - lsb->lsb_plt = 1; -} - -static void -_create_plt_reloc(struct ld *ld, struct ld_symbol *lsb, uint64_t offset) -{ - - ld_reloc_create_entry(ld, ".rel.plt", NULL, R_386_JUMP_SLOT, - lsb, offset, 0); - - lsb->lsb_dynrel = 1; -} - -static void -_create_got_reloc(struct ld *ld, struct ld_symbol *lsb, uint64_t type, - uint64_t offset) -{ - struct ld_input_section *tis; - - tis = _find_and_create_got_section(ld, 0); - assert(tis != NULL); - - ld_reloc_create_entry(ld, ".rel.got", tis, type, lsb, offset, 0); - - if (type != R_386_RELATIVE) - lsb->lsb_dynrel = 1; -} - -static void -_create_copy_reloc(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input_section *tis; - - ld_dynamic_reserve_dynbss_entry(ld, lsb); - - tis = ld_input_find_internal_section(ld, ".dynbss"); - assert(tis != NULL); - - ld_reloc_create_entry(ld, ".rel.bss", tis, R_386_COPY, lsb, - lsb->lsb_value, 0); - - lsb->lsb_dynrel = 1; -} - -static void -_create_dynamic_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_symbol *lsb, uint64_t type, uint64_t offset) -{ - - if (lsb->lsb_bind == STB_LOCAL) { - if (is->is_flags & SHF_WRITE) - ld_reloc_create_entry(ld, ".rel.data.rel.local", - is, type, lsb, offset, 0); - else - ld_reloc_create_entry(ld, ".rel.data.rel.ro.local", - is, type, lsb, offset, 0); - } else { - if (is->is_flags & SHF_WRITE) - ld_reloc_create_entry(ld, ".rel.data.rel", - is, type, lsb, offset, 0); - else - ld_reloc_create_entry(ld, ".rel.data.rel.ro", - is, type, lsb, offset, 0); - } - - if (type != R_386_RELATIVE) - lsb->lsb_dynrel = 1; -} - -static void -_scan_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - switch (lre->lre_type) { - case R_386_NONE: - break; - - case R_386_32: - /* - * For a local symbol, if te linker output a PIE or DSO, - * we should generate a R_386_RELATIVE reloc for R_386_32. - */ - if (lsb->lsb_bind == STB_LOCAL) { - if (ld->ld_pie || ld->ld_dso) - _create_dynamic_reloc(ld, is, lsb, - R_386_RELATIVE, lre->lre_offset); - break; - } - - /* - * For a global symbol, we probably need to generate PLE entry - * and/ore a dynamic relocation. - * - * Note here, normally the compiler will generate a PC-relative - * relocation for function calls. However, if the code retrieve - * the address of a function and call it indirectly, assembler - * will generate absolute relocation instead. That's why we - * should check if we need to create a PLT entry here. Also, if - * we're going to create the PLT entry, we should also set the - * symbol value to the address of PLT entry just in case the - * function address is used to compare with other function - * addresses. (If PLT address is used, function will have - * unified address in the main executable and DSOs) - */ - if (ld_reloc_require_plt(ld, lre)) { - if (!lsb->lsb_plt) { - _reserve_gotplt_entry(ld, lsb); - _reserve_plt_entry(ld, lsb); - } - /* - * Note here even if we have generated PLT for this - * function before, we still need to set this flag. - * It's possible that we first see the relative - * relocation then this absolute relocation, in - * other words, the same function can be called in - * different ways. - */ - lsb->lsb_func_addr = 1; - } - - if (ld_reloc_require_copy_reloc(ld, lre) && - !lsb->lsb_copy_reloc) - _create_copy_reloc(ld, lsb); - else if (ld_reloc_require_dynamic_reloc(ld, lre)) { - /* - * Check if we can relax R_386_32 to - * R_386_RELATIVE instead. - */ - if (ld_reloc_relative_relax(ld, lre)) - _create_dynamic_reloc(ld, is, lsb, - R_386_RELATIVE, lre->lre_offset); - else - _create_dynamic_reloc(ld, is, lsb, - R_386_32, lre->lre_offset); - } - - break; - - case R_386_PLT32: - /* - * In some cases we don't really need to generate a PLT - * entry, then a R_386_PLT32 relocation can be relaxed - * to a R_386_PC32 relocation. - */ - if (lsb->lsb_bind == STB_LOCAL || - !ld_reloc_require_plt(ld, lre)) { - lre->lre_type = R_386_PC32; - break; - } - - /* - * If linker outputs an normal executable and the symbol is - * defined but is not defined inside a DSO, we can generate - * a R_386_PC32 relocation instead. - */ - if (ld->ld_exec && lsb->lsb_shndx != SHN_UNDEF && - (lsb->lsb_input == NULL || - lsb->lsb_input->li_type != LIT_DSO)) { - lre->lre_type = R_386_PC32; - break; - } - - /* Create an PLT entry otherwise. */ - if (!lsb->lsb_plt) { - _reserve_gotplt_entry(ld, lsb); - _reserve_plt_entry(ld, lsb); - } - break; - - case R_386_PC32: - /* - * When R_386_PC32 apply to a global symbol, we should - * check if we need to generate PLT entry and/or a dynamic - * relocation. - */ - if (lsb->lsb_bind != STB_LOCAL) { - if (ld_reloc_require_plt(ld, lre) && !lsb->lsb_plt) { - _reserve_gotplt_entry(ld, lsb); - _reserve_plt_entry(ld, lsb); - } - - if (ld_reloc_require_copy_reloc(ld, lre) && - !lsb->lsb_copy_reloc) - _create_copy_reloc(ld, lsb); - else if (ld_reloc_require_dynamic_reloc(ld, lre)) { - /* - * We can not generate dynamic relocation for - * these PC-relative relocation since they - * are probably not supported by the runtime - * linkers. - */ - _warn_pic(ld, lre); - } - } - break; - - case R_386_GOTOFF: - case R_386_GOTPC: - /* - * These relocation types use GOT address as a base address - * and instruct the linker to build a GOT. - */ - (void) _find_and_create_got_section(ld, 1); - break; - - case R_386_GOT32: - /* - * R_386_GOT32 relocation instructs the linker to build a - * GOT and generate a GOT entry. - */ - if (!lsb->lsb_got) { - _reserve_got_entry(ld, lsb, 1); - /* - * TODO: For now we always create a R_386_GLOB_DAT - * relocation for a GOT entry. There are cases that - * the symbol's address is known at link time and - * the GOT entry value can be filled in by the program - * linker instead. - */ - if (ld_reloc_require_glob_dat(ld, lre)) - _create_got_reloc(ld, lsb, R_386_GLOB_DAT, - lsb->lsb_got_off); - else - _create_got_reloc(ld, lsb, R_386_RELATIVE, - lsb->lsb_got_off); - } - - default: - ld_warn(ld, "can not handle relocation %ju", - lre->lre_type); - break; - } -} - -static uint32_t -_got_offset(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_output_section *os; - - assert(lsb->lsb_got); - - if (ld->ld_got == NULL) { - ld->ld_got = _find_and_create_got_section(ld, 0); - assert(ld->ld_got != NULL); - } - - os = ld->ld_got->is_output; - - return (os->os_addr + ld->ld_got->is_reloff + lsb->lsb_got_off); -} - -static void -_process_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf) -{ - struct ld_state *ls; - struct ld_output *lo; - uint32_t p, s, l, g, got; - int32_t a, v; - - ls = &ld->ld_state; - - lo = ld->ld_output; - assert(lo != NULL); - - l = lsb->lsb_plt_off; - p = lre->lre_offset + is->is_output->os_addr + is->is_reloff; - got = ld->ld_got->is_output->os_addr; - s = (uint32_t) lsb->lsb_value; - READ_32(buf + lre->lre_offset, a); - - switch (lre->lre_type) { - case R_386_NONE: - break; - - case R_386_32: - v = s + a; - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_386_PC32: - if (lsb->lsb_plt) - v = l + a - p; - else - v = s + a - p; - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_386_PLT32: - if (!ls->ls_ignore_next_plt) { - v = l + a - p; - WRITE_32(buf + lre->lre_offset, v); - } else - ls->ls_ignore_next_plt = 0; - break; - - case R_386_GOT32: - g = _got_offset(ld, lsb); - v = g + a; - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_386_GOTOFF: - v = s + a - got; - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_386_GOTPC: - v = got + a - p; - WRITE_32(buf + lre->lre_offset, v); - break; - - default: - ld_fatal(ld, "Relocation %d not supported", lre->lre_type); - break; - } -} - -void -i386_register(struct ld *ld) -{ - struct ld_arch *i386_arch; - - if ((i386_arch = calloc(1, sizeof(*i386_arch))) == NULL) - ld_fatal_std(ld, "calloc"); - - snprintf(i386_arch->name, sizeof(i386_arch->name), "%s", "i386"); - - i386_arch->script = i386_script; - i386_arch->get_max_page_size = _get_max_page_size; - i386_arch->get_common_page_size = _get_common_page_size; - i386_arch->scan_reloc = _scan_reloc; - i386_arch->process_reloc = _process_reloc; - i386_arch->is_absolute_reloc = _is_absolute_reloc; - i386_arch->is_relative_reloc = _is_relative_reloc; - i386_arch->reloc_is_64bit = 0; - i386_arch->reloc_is_rela = 0; - i386_arch->reloc_entsize = sizeof(Elf32_Rel); - - HASH_ADD_STR(ld->ld_arch_list, name, i386_arch); -} diff --git a/contrib/elftoolchain/ld/i386.h b/contrib/elftoolchain/ld/i386.h deleted file mode 100644 index 0f399b4a..00000000 --- a/contrib/elftoolchain/ld/i386.h +++ /dev/null @@ -1,31 +0,0 @@ -/*- - * Copyright (c) 2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -char *i386_script; - -void i386_register(struct ld *); diff --git a/contrib/elftoolchain/ld/i386_script.ld b/contrib/elftoolchain/ld/i386_script.ld deleted file mode 100644 index a02b5a5e..00000000 --- a/contrib/elftoolchain/ld/i386_script.ld +++ /dev/null @@ -1,148 +0,0 @@ -/* $Id$ */ - -OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") -OUTPUT_ARCH(i386) -ENTRY(_start) -SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); -SECTIONS { - PROVIDE (__executable_start = 0x08048000); - . = 0x08048000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.dyn : - { - *(.rel.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rel.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rel.dtors) - *(.rel.got) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - } - .rela.dyn : - { - *(.rela.init) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rela.fini) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rela.ctors) - *(.rela.dtors) - *(.rela.got) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - .init : - { - KEEP(*(.init)) - } = 0x90909090 - .plt : { *(.plt) } - .text : - { - *(.text .stub .text.* .gnu.linkonce.t.*) - } = 0x90909090 - .fini : - { - KEEP(*(.fini)) - } = 0x90909090 - PROVIDE(__etext = .); - PROVIDE(_etext = .); - PROVIDE(etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } - .rodata1 : { *(.rodata1) } - .eh_frame_hdr : { *(.eh_frame_hdr) } - .eh_frame : { KEEP(*(.eh_frame)) } - .gcc_except_table : { *(.gcc_except_table) } - . = ALIGN (CONSTANT(COMMONPAGESIZE)) - ((CONSTANT(COMMONPAGESIZE) - .) & (CONSTANT(COMMONPAGESIZE) - 1)); - . = DATA_SEGMENT_ALIGN (CONSTANT(COMMONPAGESIZE), CONSTANT(COMMONPAGESIZE)); - . = ALIGN(32 / 8); - .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } - PROVIDE(__preinit_array_start = .); - .preinit_array : { *(.preinit_array) } - PROVIDE(__preinit_array_end = .); - PROVIDE(__init_array_start = .); - .init_array : { *(.init_array) } - PROVIDE(__init_array_end = .); - PROVIDE(__fini_array_start = .); - .fini_array : { *(.fini_array) } - PROVIDE(__fini_array_end = .); - .dynamic : { *(.dynamic) } - .ctors : - { - KEEP(*crtbegin*.o(.ctors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .ctors)) - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - } - .dtors : - { - KEEP(*crtbegin*.o(.dtors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .dtors)) - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - } - .jcr : { KEEP(*(.jcr)) } - .got : { *(.got.plt) *(.got) } - .data : - { - *(.data .data.* .gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - } - .data1 : { *(.data1) } - _edata = .; - PROVIDE(edata = .); - __bss_start = .; - .bss : - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(32 / 8); - } - . = ALIGN(32 / 8); - _end = .; - PROVIDE(end = .); - . = DATA_SEGMENT_END (.); - - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - - /* DWARF1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF1 Extension */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - - /* DWARF2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /DISCARD/ : { *(.note.GNU-stack) } -} diff --git a/contrib/elftoolchain/ld/ld.1 b/contrib/elftoolchain/ld/ld.1 deleted file mode 100644 index c05042f5..00000000 --- a/contrib/elftoolchain/ld/ld.1 +++ /dev/null @@ -1,478 +0,0 @@ -.\" Copyright (c) 2016 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by the author and contributors ``as is'' -.\" and any express or implied warranties, including, but not limited -.\" to, the implied warranties of merchantability and fitness for a -.\" particular purpose are disclaimed. In no event shall the author or -.\" contributors be liable for any direct, indirect, incidental, special, -.\" exemplary, or consequential damages (including, but not limited to, -.\" procurement of substitute goods or services; loss of use, data, or -.\" profits; or business interruption) however caused and on any -.\" theory of liability, whether in contract, strict liability, or -.\" tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the -.\" possibility of such damage. -.\" -.\" $Id$ -.\" -.Dd February 14, 2016 -.Dt LD 1 -.Os -.Sh NAME -.Nm ld -.Nd link editor -.Sh SYNOPSIS -.Nm -.Op Fl \&( -.Op Fl \&) -.Op Fl Bdynamic -.Op Fl Bshareable -.Op Fl Bstatic -.Op Fl I Ar file | Fl -dynamic-linker= Ns Ar file -.Op Fl L Ar dir | Fl -library-path= Ns Ar dir -.Op Fl M | Fl -print-map -.Op Fl T Ar script-file | Fl -script= Ns Ar script-file -.Op Fl V | Fl v | Fl -version -.Op Fl a Ar linkmode -.Op Fl b Ar input-format | Fl -format= Ns Ar input-format -.Op Fl call_shared -.Op Fl d | Fl dc | Fl dp -.Op Fl dn -.Op Fl dy -.Op Fl e Ar symbol | Fl -entry= Ns Ar symbol -.Op Fl h Ar name | Fl soname= Ns Ar name -.Op Fl l Ar library | Fl -library= Ns Ar library -.Op Fl o Ar output-file | Fl -output= Ns Ar output-file -.Op Fl q | Fl -emit-relocs -.Op Fl r | Fl -relocatable -.Op Fl u Ar name | Fl -undefined= Ns Ar name -.Op Fl z Ar keyword -.Op Fl -as-needed -.Op Fl -eh-frame-hdr -.Op Fl -end-group -.Op Fl -gc-sections -.Op Fl -no-as-needed -.Op Fl -no-define-common -.Op Fl -no-gc-sections -.Op Fl -no-print-gc-sections -.Op Fl -no-whole-archive -.Op Fl -oformat= Ns Ar format -.Op Fl -pic-executable | Fl pie -.Op Fl -print-gc-sections -.Op Fl -rpath= Ns Ar dirs -.Op Fl -rpath-link= Ns Ar dirs -.Op Fl -start-group -.Op Fl shared -.Op Fl static -.Op Fl -version-script= Ns Ar script -.Op Fl -whole-archive -.Ar -.Sh DESCRIPTION -The -.Nm -utility combines ELF objects and -.Xr ar 1 -archives containing ELF objects into an executable or a partially -relocated object. -.Pp -The -.Nm -utility processes options and files in the order presented on the -command line. -Unlike most -.Ux -utilities, options and file names may be interspersed. -Options seen on the command line will generally apply to subsequent -files, or till overridden by another option. -.Sh OPTIONS -.Pp -The -.Nm -utility supports the following options: -.Bl -tag -width indent -.It Xo -.Fl \&( -.Ar archives Ns ... -.Fl \&) -.Xc -Start a group of archives that are to be searched repeatedly until no new -undefined references are created. -This option is used when there are circular references between one or -more archives in the archive group. -.Pp -The files named by the arguments -.Ar archives -are expected to be archive files. -.Pp -Each use of the -.Fl \&( -option starts a new archive group that is ended by a matching -.Fl \&) -option. -.It Fl Bdynamic -Choose dynamic libraries for the libraries specified by subsequent -.Fl l -options. -.It Fl Bshareable -Create a shared library. -.It Fl Bstatic -Choose static libraries for the libraries specified by subsequent -.Fl l -options. -.It Fl I Ar file | Fl -dynamic-linker= Ns Ar file -Set the name of the dynamic linker when generating ELF executables. -.It Fl L Ar dir | Fl -library-path= Ns Ar dir -Add directory -.Ar dir -to the list of paths that -.Nm -will search for archive libraries. -This option may be specified multiple times. -User supplied directories are searched in the order specified on -the command line. -.It Fl M | Fl -print-map -Print a link map to standard output. -.It Fl T Ar script-file | Fl -script= Ns Ar script-file -Use the file name by argument -.Ar script-file -as the linker script instead of the default. -.It Fl V | Fl v | Fl version -Print a version identifier for -.Nm -and exit. -.It Fl a Ar linkmode -Select linking mode. -The value of the argument -.Ar linkmode -should be one of the following literals: -.Bl -tag -width ".Li default" -compact -.It Cm default -Equivalent to specifying -.Fl Bdynamic . -.It Cm archive -Equivalent to specifying -.Fl Bstatic . -.It Cm shared -Equivalent to specifying -.Fl Bdynamic . -.El -.It Fl b Ar input-format | Fl -format Ar input-format -Set the input format to that specified by argument -.Ar input-format . -The legal values for the argument -.Ar input-format -are those supported by -.Xr elftc_bfd_find_target 3 . -.It Fl d | Fl dc | Fl dp -Assign space for common symbols even if generating a relocatable object. -.It Fl dn -Equivalent to specifying option -.Fl Bstatic . -.It Fl dy -Equivalent to specifying option -.Fl Bdynamic . -.It Fl e Ar entry | Fl -entry Ar entry -Set execution to start at the symbol named by the argument -.Ar entry . -The argument should be the name of a symbol. -.It Fl h Ar name | Fl soname Ar name -Set the -.Li DT_SONAME -field in the object to that specified by the argument -.Ar name . -.It Fl l Ar name | Fl -library= Ns Ar name -Add the archive library or shared library named by argument -.Ar name -to the set of files to link. -This file is looked for in the list of directories specified by prior -.Fl L -options on the command line. -.It Fl o Ar output-file | Fl -output= Ns Ar output-file -Use the file specified by argument -.Ar output-file -for the output, instead of the default file name of -.Sq a.out . -.It Fl q | Fl -emit-relocs -Preserve relocation information in executables, for use by post-link -analysis tools. -.It Fl r | Fl -relocatable -Generate a relocatable output file that can be used as input for subsequent -linker runs. -.It Fl u Ar name | Fl -undefined= Ns Ar name -Add the symbol specified by argument -.Ar name -to the output file as an undefined symbol. -This option may be specified multiple times. -.It Fl z Ar keyword -Recognized keywords include: -.Bl -tag -width ".Li defaultextract" -compact -.It Cm execstack -Require the object to use an executable stack. -.It Cm noexecstack -Do not require the object to use an executable stack. -.El -.It Fl -as-needed -Add -.Li DT_NEEDED -tags for only those shared libraries that satisfy non-weak -unresolved references from object files or other dynamic libraries -seen so far on the command line. -.It Fl call_shared -Equivalent to specifying option -.Fl Bdynamic . -.It Fl -eh-frame-hdr -Create a -.Dq ".eh_frame_hdr" -section, and a -.Li PT_GNU_EH_FRAME -segment header, containing exception handling information. -.It Fl -end-group -Equivalent to specifying option -.Fl \&) . -.It Fl -gc-sections -Garbage collect unused input sections. -.It Fl -no-as-needed -Insert -.Li DT_NEEDED -tags for all shared libraries seen henceforth on the command line, -irrespective of whether the shared library is needed to resolve an -undefined symbol or not. -This behavior is the default. -.It Fl -no-define-common -Do not assign addresses to common symbols. -.It Fl -no-gc-sections -Do not garbage collect input sections that contain unreferenced -symbols. -.It Fl -no-print-gc-sections -Do not print the list of sections removed when the -.Fl -gc-sections -directive is active. -.It Fl -no-whole-archive -Only include objects in an archive that satisfy an unresolved reference -in the link. -This behavior is the default. -.It Fl non_shared -Equivalent to specifying option -.Fl Bstatic . -.It Fl -oformat= Ns Ar format -Set the desired output format to that specified by the argument -.Ar format . -Supported values for argument -.Ar format -are those understood by -.Xr elftc_bfd_find_target 3 . -.It Fl -pic-executable | Fl pie -Create a position-independent executable. -.It Fl -print-gc-sections -Print the list of sections removed when the -.Fl -gc-sections -directive is active. -The output is printed to stderr. -.It Fl -rpath= Ns Ar dirs -Add the colon-separated list of directories named by the argument -.Ar dirs -to the runtime library search path and to the link-time search -path. -.It Fl -rpath-link= Ns Ar dirs -Add the directories specified by the colon-separated list of directories -in argument -.Ar dirs -to the link-time search path for libraries. -The directories specified by this option are searched before those -specified by -.Fl -rpath -options. -.It Fl shared -Equivalent to specifying option -.Fl Bshareable . -.It Fl -start-group -Equivalent to specifying option -.Fl \&( . -.It Fl static -Equivalent to specifying option -.Fl Bstatic . -.It Fl -version-script= Ns Ar script-file -Use the version script in the file named by argument -.Ar script-file . -.It Fl -whole-archive -Include the entire contents of every archive file encountered on the -command line after this option in the link. -.El -.Sh DIAGNOSTICS -.Ex -std -.Sh SEE ALSO -.Xr ar 1 , -.Xr ranlib 1 , -.Xr archive 3 , -.Xr elf 3 , -.Xr elftc_bfd_find_target 3 , -.Xr dwarf 3 -.Sh IMPLEMENTATION NOTES -The -.Nm -utility differs from its GNU equivalent in the following: -.Bl -bullet -.It -The -.Nm -utility currently supports a limited range of output formats. -.It -The -.Fl e -and -.Fl -entry -options only accept a symbol name as an argument, and not a numeric -address. -.It -The -.Fl l -option only searches files in the directories specified by -prior -.Fl L -options. -.It -The -.Fl T | Fl -script -option does not search for script files in the directories specified -by prior -.Fl L -options. -.It -The -.Fl -rpath -option accepts a colon-separated list of directories instead of -single directory. -.El -.Pp -The following options are recognized, but are currently unimplemented: -.Fl Bgroup , -.Fl Bsymbolic , -.Fl Bsymbolic_functions , -.Fl E , -.Fl EB , -.Fl EL , -.Fl F , -.Fl Map , -.Fl N , -.Fl O , -.Fl Qy , -.Fl R , -.Fl S , -.Fl Tbss , -.Fl Tdata , -.Fl Ttext , -.Fl X , -.Fl Y , -.Fl Ur , -.Fl c , -.Fl f , -.Fl g , -.Fl i , -.Fl m , -.Fl n , -.Fl s , -.Fl t , -.Fl x , -.Fl y , -.Fl -accept-unknown-input-arch , -.Fl -allow-multiple-definition , -.Fl -allow-shlib-undefined , -.Fl -assert , -.Fl -auxiliary , -.Fl -build-id , -.Fl -check-sections , -.Fl -cref , -.Fl -defsym , -.Fl -demangle , -.Fl -disable-new-dtags , -.Fl -discard-all , -.Fl -discard-locals , -.Fl -error-unresolved-symbols , -.Fl -export-dynamic , -.Fl -emulation , -.Fl -enable-new-dtags , -.Fl -fatal-warnings , -.Fl -filter , -.Fl -fini , -.Fl -hash-style , -.Fl -help , -.Fl -init , -.Fl -just-symbols , -.Fl -mri-script , -.Fl -nmagic , -.Fl nostdlib , -.Fl -no-accept-unknown-input-arch , -.Fl -no-allow-shlib-undefined , -.Fl -no-assert , -.Fl -no-check-sections , -.Fl -no-demangle , -.Fl -no-keep-memory , -.Fl -no-omagic , -.Fl -no-undefined , -.Fl -no-undefined-version , -.Fl -no-warn-mismatch , -.Fl -omagic , -.Fl -qmagic , -.Fl -relax , -.Fl -retain-symbols-file , -.Fl -runpath , -.Fl -section-start , -.Fl -sort-common , -.Fl -split-by-file , -.Fl -split-by-reloc , -.Fl -stats , -.Fl -strip-all , -.Fl -strip-debug , -.Fl -trace , -.Fl -trace_symbol , -.Fl -traditional-format , -.Fl -unique , -.Fl -unresolved-symbols , -.Fl -verbose , -.Fl -warn-common , -.Fl -warn-constructors , -.Fl -warn-multiple-gp , -.Fl -warn-once , -.Fl -warn-section-align , -.Fl -warn-shared-textrel , -.Fl -warn-unresolved-symbols , -.Fl -wrap . -.Pp -The following keywords are recognized by the -.Fl z -option, but are currently unimplemented: -.Cm allextract , -.Cm defaultextract , -.Cm defs , -.Cm ignore , -.Cm initfirst , -.Cm lazyload , -.Cm muldefs , -.Cm nodefaultlib , -.Cm nodefs , -.Cm nodelete , -.Cm nodlopen , -.Cm nolazyload , -.Cm now , -.Cm origin , -.Cm record , -.Cm systemlibrary , -.Cm weakextract . -.Sh HISTORY -A -.Nm -command first appeared in AT&T UNIX Version 1. -.Pp -The Elftoolchain implementation of -.Nm -was written by -.An Kai Wang Aq Mt kaiwang27@gmail.com . diff --git a/contrib/elftoolchain/ld/ld.h b/contrib/elftoolchain/ld/ld.h deleted file mode 100644 index a062f2ff..00000000 --- a/contrib/elftoolchain/ld/ld.h +++ /dev/null @@ -1,157 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "dwarf.h" -#define oom() ld_fatal(ld, "out of memory") -#include "utarray.h" -#define uthash_fatal(msg) ld_fatal(ld, msg) -#include "uthash.h" -#include "_elftc.h" - -struct ld_file; -struct ld_input_section_head; -struct ld_path; -struct ld_symbol; -struct ld_symbol_head; -struct ld_output_data_buffer; -struct ld_wildcard_match; -struct ld_ehframe_cie_head; -struct ld_ehframe_fde_head; -struct ld_section_group; - -#define LD_MAX_NESTED_GROUP 16 - -struct ld_state { - Elftc_Bfd_Target *ls_itgt; /* input bfd target set by -b */ - struct ld_file *ls_file; /* current open file */ - unsigned ls_static; /* use static library */ - unsigned ls_whole_archive; /* include whole archive */ - unsigned ls_as_needed; /* DT_NEEDED */ - unsigned ls_group_level; /* archive group level */ - unsigned ls_extracted[LD_MAX_NESTED_GROUP + 1]; - /* extracted from archive group */ - unsigned ls_search_dir; /* search library directories */ - uint64_t ls_loc_counter; /* location counter */ - uint64_t ls_offset; /* cur. output section file offset */ - STAILQ_HEAD(, ld_path) ls_lplist; /* search path list */ - STAILQ_HEAD(, ld_path) ls_rplist; /* rpath list */ - STAILQ_HEAD(, ld_path) ls_rllist; /* rpath-link list */ - unsigned ls_arch_conflict; /* input arch conflict with output */ - unsigned ls_first_elf_object; /* first ELF object to process */ - unsigned ls_rerun; /* ld(1) restarted */ - unsigned ls_archive_mb_header; /* extracted list header printed */ - unsigned ls_first_output_sec; /* flag indicates 1st output section */ - unsigned ls_ignore_next_plt; /* ignore next PLT relocation */ - unsigned ls_version_local; /* version entry is local */ - uint64_t ls_relative_reloc; /* number of *_RELATIVE relocations */ - struct ld_input_section_head *ls_gc; - /* garbage collection search list */ -}; - -struct ld { - const char *ld_progname; /* ld(1) program name */ - struct ld_arch *ld_arch; /* arch-specific callbacks */ - struct ld_arch *ld_arch_list; /* list of supported archs */ - Elftc_Bfd_Target *ld_otgt; /* default output format */ - Elftc_Bfd_Target *ld_otgt_be; /* big-endian output format */ - Elftc_Bfd_Target *ld_otgt_le; /* little-endian output format */ - char *ld_otgt_name; /* output format name */ - char *ld_otgt_be_name; /* big-endian output format name */ - char *ld_otgt_le_name; /* little-endian output format name */ - struct ld_output *ld_output; /* output object */ - char *ld_output_file; /* output file name */ - char *ld_entry; /* entry point set by -e */ - char *ld_scp_entry; /* entry point set by linker script */ - char *ld_interp; /* dynamic linker */ - char *ld_soname; /* DT_SONAME */ - struct ld_script *ld_scp; /* linker script */ - struct ld_state ld_state; /* linker state */ - struct ld_strtab *ld_shstrtab; /* section name table */ - struct ld_symbol_head *ld_ext_symbols; /* -u/EXTERN symbols */ - struct ld_symbol_head *ld_var_symbols; /* ldscript var symbols */ - struct ld_symbol *ld_sym; /* internal symbol table */ - struct ld_symbol *ld_symtab_import; /* hash for import symbols */ - struct ld_symbol *ld_symtab_export; /* hash for export symbols */ - struct ld_symbol_defver *ld_defver; /* default version table */ - struct ld_symbol_table *ld_symtab; /* .symtab symbol table */ - struct ld_strtab *ld_strtab; /* .strtab string table */ - struct ld_symbol_table *ld_dynsym; /* .dynsym symbol table */ - struct ld_strtab *ld_dynstr; /* .dynstr string table */ - struct ld_symbol_head *ld_dyn_symbols; /* dynamic symbol list */ - struct ld_wildcard_match *ld_wm; /* wildcard hash table */ - struct ld_input_section *ld_dynbss; /* .dynbss section */ - struct ld_input_section *ld_got; /* .got section */ - struct ld_ehframe_cie_head *ld_cie; /* ehframe CIE list */ - struct ld_ehframe_fde_head *ld_fde; /* ehframe FDE list */ - struct ld_section_group *ld_sg; /* included section groups */ - unsigned char ld_common_alloc; /* always alloc space for common sym */ - unsigned char ld_common_no_alloc; /* never alloc space for common sym */ - unsigned char ld_emit_reloc; /* emit relocations */ - unsigned char ld_gen_gnustack; /* generate PT_GNUSTACK */ - unsigned char ld_print_linkmap; /* print link map */ - unsigned char ld_stack_exec; /* stack executable */ - unsigned char ld_stack_exec_set; /* stack executable override */ - unsigned char ld_exec; /* output normal executable */ - unsigned char ld_pie; /* position-independent executable */ - unsigned char ld_dso; /* output shared library */ - unsigned char ld_reloc; /* output relocatable object */ - unsigned char ld_dynamic_link; /* perform dynamic linking */ - unsigned char ld_print_version; /* linker version printed */ - unsigned char ld_gc; /* perform garbage collection */ - unsigned char ld_gc_print; /* print removed sections */ - unsigned char ld_ehframe_hdr; /* create .eh_frame_hdr section */ - STAILQ_HEAD(ld_input_head, ld_input) ld_lilist; /* input object list */ - TAILQ_HEAD(ld_file_head, ld_file) ld_lflist; /* input file list */ -}; - -void ld_err(struct ld *, const char *, ...); -void ld_fatal(struct ld *, const char *, ...); -void ld_fatal_std(struct ld *, const char *, ...); -void ld_warn(struct ld *, const char *, ...); -void ld_info(struct ld *, const char *, ...); diff --git a/contrib/elftoolchain/ld/ld_arch.c b/contrib/elftoolchain/ld/ld_arch.c deleted file mode 100644 index 5993f18f..00000000 --- a/contrib/elftoolchain/ld/ld_arch.c +++ /dev/null @@ -1,219 +0,0 @@ -/*- - * Copyright (c) 2011,2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "i386.h" -#include "amd64.h" -#include "mips.h" - -ELFTC_VCSID("$Id$"); - -#define LD_DEFAULT_ARCH "amd64" - -static struct ld_arch *_get_arch_from_target(struct ld *ld, char *target); - -void -ld_arch_init(struct ld *ld) -{ - char *end; - char arch[MAX_ARCH_NAME_LEN + 1], target[MAX_TARGET_NAME_LEN + 1]; - size_t len; - - /* - * Register supported architectures. - */ - - i386_register(ld); - amd64_register(ld); - mips_register(ld); - - /* - * Find out default arch for output object. - */ - - if ((end = strrchr(ld->ld_progname, '-')) != NULL && - end != ld->ld_progname) { - len = end - ld->ld_progname + 1; - if (len > MAX_TARGET_NAME_LEN) - return; - strncpy(target, ld->ld_progname, len); - target[len] = '\0'; - ld->ld_arch = _get_arch_from_target(ld, target); - } - - if (ld->ld_arch == NULL) { - snprintf(arch, sizeof(arch), "%s", LD_DEFAULT_ARCH); - ld->ld_arch = ld_arch_find(ld, arch); - if (ld->ld_arch == NULL) - ld_fatal(ld, "Internal: could not determine output" - " object architecture"); - } -} - -void -ld_arch_set(struct ld *ld, char *arch) -{ - - ld->ld_arch = ld_arch_find(ld, arch); - if (ld->ld_arch == NULL) - ld_fatal(ld, "arch '%s' is not supported", arch); -} - -void -ld_arch_set_from_target(struct ld *ld) -{ - - if (ld->ld_otgt != NULL) { - ld->ld_arch = _get_arch_from_target(ld, ld->ld_otgt_name); - if (ld->ld_arch == NULL) - ld_fatal(ld, "target '%s' is not supported", - ld->ld_otgt_name); - } -} - -int -ld_arch_equal(struct ld_arch *a1, struct ld_arch *a2) -{ - - assert(a1 != NULL && a2 != NULL); - - if (a1 == a2) - return (1); - - if (a1->alias == a2 || a2->alias == a1) - return (1); - - if (a1->alias != NULL && a1->alias == a2->alias) - return (1); - - return (0); -} - -void -ld_arch_verify(struct ld *ld, const char *name, int mach, int endian, - unsigned flags) -{ - struct ld_arch *la; - struct ld_state *ls; - - assert(ld->ld_arch != NULL); - ls = &ld->ld_state; - - if ((la = ld_arch_guess_arch_name(ld, mach, endian)) == NULL) - ld_fatal(ld, "%s: ELF object architecture %#x not supported", - name, mach); - - if (!ld_arch_equal(la, ld->ld_arch)) { - ls->ls_arch_conflict = 1; - if (ls->ls_rerun || !ls->ls_first_elf_object) - ld_fatal(ld, "%s: ELF object architecture `%s' " - "conflicts with output object architecture `%s'", - name, la->name, ld->ld_arch->name); - ld->ld_arch = la; - } - - if (ls->ls_first_elf_object) { - la->flags = flags; - } else if (la->merge_flags) { - la->merge_flags(ld, flags); - } - - ls->ls_first_elf_object = 0; -} - -struct ld_arch * -ld_arch_guess_arch_name(struct ld *ld, int mach, int endian) -{ - char arch[MAX_ARCH_NAME_LEN + 1]; - - /* TODO: we should also consider elf class and endianess. */ - - switch (mach) { - case EM_386: - snprintf(arch, sizeof(arch), "%s", "i386"); - break; - case EM_ARM: - snprintf(arch, sizeof(arch), "%s", "arm"); - break; - case EM_MIPS: - case EM_MIPS_RS3_LE: - snprintf(arch, sizeof(arch), "%s", - endian==ELFDATA2MSB ? "bigmips" : "littlemips"); - break; - case EM_PPC: - case EM_PPC64: - snprintf(arch, sizeof(arch), "%s", "ppc"); - break; - case EM_SPARC: - case EM_SPARCV9: - snprintf(arch, sizeof(arch), "%s", "sparc"); - break; - case EM_X86_64: - snprintf(arch, sizeof(arch), "%s", "amd64"); - break; - default: - return (NULL); - } - - return (ld_arch_find(ld, arch)); -} - -static struct ld_arch * -_get_arch_from_target(struct ld *ld, char *target) -{ - struct ld_arch *la; - char *begin, *end, name[MAX_TARGET_NAME_LEN + 1]; - - if ((begin = strchr(target, '-')) == NULL) { - la = ld_arch_find(ld, target); - return (la); - } - la = ld_arch_find(ld, begin + 1); - if (la != NULL) - return (la); - - strncpy(name, begin + 1, sizeof(name) - 1); - name[sizeof(name) - 1] = '\0'; - while ((end = strrchr(name, '-')) != NULL) { - *end = '\0'; - la = ld_arch_find(ld, name); - if (la != NULL) - return (la); - } - - return (NULL); -} - -struct ld_arch * -ld_arch_find(struct ld *ld, char *arch) -{ - struct ld_arch *la; - - HASH_FIND_STR(ld->ld_arch_list, arch, la); - - return (la); -} diff --git a/contrib/elftoolchain/ld/ld_arch.h b/contrib/elftoolchain/ld/ld_arch.h deleted file mode 100644 index 259905ed..00000000 --- a/contrib/elftoolchain/ld/ld_arch.h +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * Copyright (c) 2011,2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#define MAX_ARCH_NAME_LEN 64 -#define MAX_TARGET_NAME_LEN 128 - -struct ld_input_section; -struct ld_reloc_entry; - -struct ld_arch { - char name[MAX_ARCH_NAME_LEN + 1]; - char *script; - const char *interp; - uint64_t (*get_max_page_size)(struct ld *); - uint64_t (*get_common_page_size)(struct ld *); - void (*scan_reloc)(struct ld *, struct ld_input_section *, - struct ld_reloc_entry *); - void (*adjust_reloc)(struct ld *, struct ld_input_section *, - struct ld_reloc_entry *, struct ld_symbol *, uint8_t *); - void (*process_reloc)(struct ld *, struct ld_input_section *, - struct ld_reloc_entry *, struct ld_symbol *, uint8_t *); - void (*finalize_reloc)(struct ld *, struct ld_input_section *, - struct ld_reloc_entry *); - void (*finalize_got_and_plt)(struct ld *); - void (*merge_flags)(struct ld *, unsigned flags); - int (*is_absolute_reloc)(uint64_t); - int (*is_relative_reloc)(uint64_t); - unsigned char reloc_is_64bit; - unsigned char reloc_is_rela; - size_t reloc_entsize; - unsigned flags; /* processor-specific flags */ - UT_hash_handle hh; - struct ld_arch *alias; -}; - -void ld_arch_init(struct ld *); -int ld_arch_equal(struct ld_arch *, struct ld_arch *); -struct ld_arch *ld_arch_find(struct ld *, char *); -struct ld_arch *ld_arch_guess_arch_name(struct ld *, int, int); -void ld_arch_set(struct ld *, char *); -void ld_arch_set_from_target(struct ld *); -void ld_arch_verify(struct ld *, const char *, int, int, unsigned); diff --git a/contrib/elftoolchain/ld/ld_dynamic.c b/contrib/elftoolchain/ld/ld_dynamic.c deleted file mode 100644 index afb6b03a..00000000 --- a/contrib/elftoolchain/ld/ld_dynamic.c +++ /dev/null @@ -1,610 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_dynamic.h" -#include "ld_file.h" -#include "ld_hash.h" -#include "ld_input.h" -#include "ld_layout.h" -#include "ld_output.h" -#include "ld_path.h" -#include "ld_symbols.h" -#include "ld_symver.h" -#include "ld_strtab.h" - -ELFTC_VCSID("$Id$"); - -static void _check_dso_needed(struct ld *ld, struct ld_output *lo); -static void _create_dynamic(struct ld *ld, struct ld_output *lo); -static void _create_interp(struct ld *ld, struct ld_output *lo); -static void _create_dynsym_and_dynstr_section(struct ld *ld, - struct ld_output *lo); -static void _finalize_dynamic(struct ld *ld, struct ld_output *lo); - -void -ld_dynamic_create(struct ld *ld) -{ - struct ld_output *lo; - - lo = ld->ld_output; - assert(lo != NULL); - - /* Check how many DSOs is needed for output object. */ - _check_dso_needed(ld, lo); - - /* Link statically if we don't use DSOs? */ - if (lo->lo_dso_needed == 0) - return; - - ld->ld_dynamic_link = 1; - - /* Create .interp section. */ - if (!ld->ld_dso) - _create_interp(ld, lo); - - /* Create .dynamic section. */ - _create_dynamic(ld, lo); - - /* Create .dynsym and .dynstr sections. */ - _create_dynsym_and_dynstr_section(ld, lo); - - /* Create .hash section. */ - ld_hash_create_svr4_hash_section(ld); - - /* - * Create .gnu.version_d section if the linker creats a shared - * library and version script is provided. - */ - lo->lo_version_index = 2; - if (ld->ld_dso) - ld_symver_create_verdef_section(ld); - - /* Create .gnu.version_r section. */ - ld_symver_create_verneed_section(ld); - - /* Create .gnu.version section. */ - ld_symver_create_versym_section(ld); -} - -void -ld_dynamic_finalize(struct ld *ld) -{ - struct ld_output *lo; - - lo = ld->ld_output; - assert(lo != NULL); - - if (lo->lo_dso_needed == 0) - return; - - /* Finalize .dynamic section */ - _finalize_dynamic(ld, lo); -} - -void -ld_dynamic_load_dso_dynamic(struct ld *ld, struct ld_input *li, Elf *e, - Elf_Scn *scn, size_t strndx) -{ - GElf_Shdr shdr; - GElf_Dyn dyn; - Elf_Data *d; - int elferr, i, len; - const char *name; - - if (strndx == SHN_UNDEF) - return; - - if (gelf_getshdr(scn, &shdr) != &shdr) { - ld_warn(ld, "%s: gelf_getshdr failed: %s", li->li_name, - elf_errmsg(-1)); - return; - } - - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s: elf_getdata failed: %s", li->li_name, - elf_errmsg(elferr)); - return; - } - - len = d->d_size / shdr.sh_entsize; - for (i = 0; i < len; i++) { - if (gelf_getdyn(d, i, &dyn) != &dyn) { - ld_warn(ld, "%s: gelf_getdyn failed: %s", li->li_name, - elf_errmsg(-1)); - continue; - } - switch (dyn.d_tag) { - case DT_SONAME: - name = elf_strptr(e, strndx, dyn.d_un.d_ptr); - if (name != NULL && - (li->li_soname = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - break; - case DT_NEEDED: - name = elf_strptr(e, strndx, dyn.d_un.d_ptr); - if (name != NULL) - ld_path_search_dso_needed(ld, li->li_file, - name); - break; - default: - break; - } - } -} - -void -ld_dynamic_reserve_dynbss_entry(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input *li; - struct ld_input_section *dynbss, *is; - uint64_t a; - - /* Create .dynbss section if it doesn't yet exist. */ - dynbss = ld_input_find_internal_section(ld, ".dynbss"); - if (dynbss == NULL) { - dynbss = ld_input_add_internal_section(ld, ".dynbss"); - dynbss->is_type = SHT_NOBITS; - } - - li = lsb->lsb_input; - assert(li != NULL && li->li_type == LIT_DSO); - - /* - * TODO: we don't have to create copy relocation - * for every import object. Some import objects - * are read-only, in that case we can create other - * dynamic relocations for them. - */ - - /* - * If the section to which the symbols belong has a larger - * alignment requirement, we increase .dynbss section alignment - * accordingly. XXX What if it is a DSO common symbol? - */ - is = NULL; - if (lsb->lsb_shndx != SHN_COMMON) { - assert(lsb->lsb_shndx < li->li_shnum - 1); - is = &li->li_is[lsb->lsb_shndx]; - if (is->is_align > dynbss->is_align) - dynbss->is_align = is->is_align; - } - - /* - * Calculate the alignment for this object. - */ - if (is != NULL) { - for (a = is->is_align; a > 1; a >>= 1) { - if ((lsb->lsb_value - is->is_off) % a == 0) - break; - } - } else - a = 1; - - if (a > 1) - dynbss->is_size = roundup(dynbss->is_size, a); - - lsb->lsb_value = dynbss->is_size; - lsb->lsb_copy_reloc = 1; - lsb->lsb_input = dynbss->is_input; - lsb->lsb_shndx = dynbss->is_index; - lsb->lsb_is = dynbss; - - dynbss->is_size += lsb->lsb_size; -} - -static void -_create_interp(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_section *os; - struct ld_output_data_buffer *odb; - const char *interp; - char interp_name[] = ".interp"; - - HASH_FIND_STR(lo->lo_ostbl, interp_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, interp_name, - SHF_ALLOC); - os->os_type = SHT_PROGBITS; - os->os_align = 1; - os->os_entsize = 0; - os->os_flags = SHF_ALLOC; - - lo->lo_interp = os; - - if (ld->ld_interp != NULL) - interp = ld->ld_interp; - else - interp = ld->ld_arch->interp; - assert(interp != NULL); - - if ((odb = calloc(1, sizeof(*odb))) == NULL) - ld_fatal_std(ld, "calloc"); - odb->odb_size = strlen(interp) + 1; - odb->odb_align = 1; - odb->odb_type = ELF_T_BYTE; - - if ((odb->odb_buf = calloc(odb->odb_size, 1)) == NULL) - ld_fatal_std(ld, "calloc"); - memcpy(odb->odb_buf, interp, strlen(interp)); - odb->odb_buf[strlen(interp)] = '\0'; - - (void) ld_output_create_section_element(ld, os, OET_DATA_BUFFER, odb, - NULL); -} - -static void -_create_dynamic(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_section *os, *_os; - struct ld_output_data_buffer *odb; - char dynamic_name[] = ".dynamic"; - char init_name[] = ".init"; - char fini_name[] = ".fini"; - char *rpath; - int entries; - - HASH_FIND_STR(lo->lo_ostbl, dynamic_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, dynamic_name, - SHF_ALLOC | SHF_WRITE); - os->os_type = SHT_DYNAMIC; - os->os_flags = SHF_ALLOC | SHF_WRITE; - if (lo->lo_ec == ELFCLASS32) { - os->os_entsize = 8; - os->os_align = 4; - } else { - os->os_entsize = 16; - os->os_align = 8; - } - - lo->lo_dynamic = os; - - /* .dynamic section should link to .dynstr section. */ - if ((os->os_link = strdup(".dynstr")) == NULL) - ld_fatal_std(ld, "strdup"); - - /* DT_NEEDED */ - entries = lo->lo_dso_needed; - - /* DT_SONAME. */ - if (ld->ld_soname != NULL) { - lo->lo_soname_nameindex = ld_strtab_insert_no_suffix(ld, - ld->ld_dynstr, ld->ld_soname); - entries++; - } - - /* DT_INIT */ - HASH_FIND_STR(lo->lo_ostbl, init_name, _os); - if (_os != NULL && !_os->os_empty) { - lo->lo_init = _os; - entries++; - } - - /* DT_FINI */ - HASH_FIND_STR(lo->lo_ostbl, fini_name, _os); - if (_os != NULL && !_os->os_empty) { - lo->lo_fini = _os; - entries++; - } - - /* DT_HASH, DT_STRTAB, DT_SYMTAB, DT_STRSZ and DT_SYMENT */ - if (ld->ld_dynsym) - entries += 5; - - /* DT_RPATH. */ - if (!STAILQ_EMPTY(&ld->ld_state.ls_rplist)) { - rpath = ld_path_join_rpath(ld); - lo->lo_rpath_nameindex = ld_strtab_insert_no_suffix(ld, - ld->ld_dynstr, rpath); - entries++; - } - - /* - * DT_DEBUG. dynamic linker changes this at runtime, gdb uses - * it to find all the loaded DSOs. (thus .dynamic has to be - * writable) - */ - if (!ld->ld_dso) - entries++; - - /* DT_PLTGOT, DT_PLTRELSZ, DT_PLTREL and DT_JMPREL. */ - entries += 4; - - /* DT_REL/DT_RELA, DT_RELSZ/DT_RELASZ and DT_RELENT/DT_RELAENT */ - entries += 3; - - /* - * DT_VERNEED, DT_VERNEEDNUM, DT_VERDEF, DT_VERDEFNUM and DT_VERSYM. - */ - entries += 5; - - /* DT_RELCOUNT/DT_RELACOUNT. */ - if (ld->ld_state.ls_relative_reloc > 0) - entries++; - - /* DT_NULL. TODO: Reserve multiple DT_NULL entries for DT_RPATH? */ - entries++; - - /* - * Reserve space for .dynamic section, based on number of entries. - */ - if ((odb = calloc(1, sizeof(*odb))) == NULL) - ld_fatal_std(ld, "calloc"); - odb->odb_size = entries * os->os_entsize; - if ((odb->odb_buf = malloc(odb->odb_size)) == NULL) - ld_fatal_std(ld, "malloc"); - odb->odb_align = os->os_align; - odb->odb_type = ELF_T_DYN; - - (void) ld_output_create_section_element(ld, os, OET_DATA_BUFFER, odb, - NULL); - - lo->lo_dynamic_odb = odb; - - /* Create _DYNAMIC symobl. */ - ld_symbols_add_internal(ld, "_DYNAMIC", 0, 0, SHN_ABS, STB_LOCAL, - STT_OBJECT, STV_HIDDEN, NULL, os); -} - -#define DT_ENTRY_VAL(tag,val) \ - do { \ - if (lo->lo_ec == ELFCLASS32) { \ - assert(dt32 < end32); \ - dt32->d_tag = (int32_t) (tag); \ - dt32->d_un.d_val = (uint32_t) (val); \ - dt32++; \ - } else { \ - assert(dt64 < end64); \ - dt64->d_tag = (tag); \ - dt64->d_un.d_val = (val); \ - dt64++; \ - } \ - } while(0) - -#define DT_ENTRY_PTR(tag,ptr) \ - do { \ - if (lo->lo_ec == ELFCLASS32) { \ - assert(dt32 < end32); \ - dt32->d_tag = (int32_t) (tag); \ - dt32->d_un.d_ptr = (uint32_t) (ptr); \ - dt32++; \ - } else { \ - assert(dt64 < end64); \ - dt64->d_tag = (tag); \ - dt64->d_un.d_ptr = (ptr); \ - dt64++; \ - } \ - } while(0) - -#define DT_ENTRY_NULL \ - do { \ - if (lo->lo_ec == ELFCLASS32) { \ - assert(dt32 < end32); \ - while (dt32 < end32) \ - DT_ENTRY_VAL(DT_NULL, 0); \ - assert(dt32 == end32); \ - } else { \ - assert(dt64 < end64); \ - while (dt64 < end64) \ - DT_ENTRY_VAL(DT_NULL, 0); \ - assert(dt64 == end64); \ - } \ - } while(0) - -static void -_finalize_dynamic(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_data_buffer *odb; - Elf32_Dyn *dt32, *end32; - Elf64_Dyn *dt64, *end64; - int *p; - - odb = lo->lo_dynamic_odb; - assert(odb != NULL); - - dt32 = (Elf32_Dyn *) (uintptr_t) odb->odb_buf; - dt64 = (Elf64_Dyn *) (uintptr_t) odb->odb_buf; - end32 = (Elf32_Dyn *) (uintptr_t) (odb->odb_buf + odb->odb_size); - end64 = (Elf64_Dyn *) (uintptr_t) (odb->odb_buf + odb->odb_size); - - /* DT_NEEDED. */ - for (p = (int *) (uintptr_t) utarray_front(lo->lo_dso_nameindex); - p != NULL; - p = (int *) (uintptr_t) utarray_next(lo->lo_dso_nameindex, p)) - DT_ENTRY_VAL(DT_NEEDED, *p); - - /* DT_SONAME. */ - if (ld->ld_soname != NULL) - DT_ENTRY_VAL(DT_SONAME, lo->lo_soname_nameindex); - - /* DT_INIT and DT_FINI */ - if (lo->lo_init != NULL) - DT_ENTRY_PTR(DT_INIT, lo->lo_init->os_addr); - if (lo->lo_fini != NULL) - DT_ENTRY_PTR(DT_FINI, lo->lo_fini->os_addr); - - /* DT_HASH */ - if (lo->lo_hash != NULL) - DT_ENTRY_PTR(DT_HASH, lo->lo_hash->os_addr); - - /* DT_HASH, DT_STRTAB, DT_SYMTAB, DT_STRSZ and DT_SYMENT */ - if (lo->lo_dynsym != NULL && lo->lo_dynstr != NULL) { - DT_ENTRY_PTR(DT_STRTAB, lo->lo_dynstr->os_addr); - DT_ENTRY_PTR(DT_SYMTAB, lo->lo_dynsym->os_addr); - DT_ENTRY_VAL(DT_STRSZ, ld_strtab_getsize(ld->ld_dynstr)); - DT_ENTRY_VAL(DT_SYMENT, - lo->lo_ec == ELFCLASS32 ? sizeof(Elf32_Sym) : - sizeof(Elf64_Sym)); - } - - /* DT_RPATH */ - if (!STAILQ_EMPTY(&ld->ld_state.ls_rplist)) - DT_ENTRY_VAL(DT_RPATH, lo->lo_rpath_nameindex); - - /* DT_DEBUG */ - if (!ld->ld_dso) - DT_ENTRY_VAL(DT_DEBUG, 0); - - /* DT_PLTGOT, DT_PLTRELSZ, DT_PLTREL and DT_JMPREL. */ - if (lo->lo_gotplt != NULL) - DT_ENTRY_PTR(DT_PLTGOT, lo->lo_gotplt->os_addr); - if (lo->lo_rel_plt != NULL) { - DT_ENTRY_VAL(DT_PLTRELSZ, lo->lo_rel_plt->os_size); - DT_ENTRY_VAL(DT_PLTREL, - ld->ld_arch->reloc_is_rela ? DT_RELA : DT_REL); - DT_ENTRY_PTR(DT_JMPREL, lo->lo_rel_plt->os_addr); - } - - /* DT_REL/DT_RELA, DT_RELSZ/DT_RELASZ and DT_RELENT/DT_RELAENT */ - if (lo->lo_rel_dyn != NULL) { - if (!ld->ld_arch->reloc_is_rela) { - DT_ENTRY_PTR(DT_REL, lo->lo_rel_dyn->os_addr); - DT_ENTRY_VAL(DT_RELSZ, lo->lo_rel_dyn->os_size); - DT_ENTRY_VAL(DT_RELENT, ld->ld_arch->reloc_entsize); - } else { - DT_ENTRY_PTR(DT_RELA, lo->lo_rel_dyn->os_addr); - DT_ENTRY_VAL(DT_RELASZ, lo->lo_rel_dyn->os_size); - DT_ENTRY_VAL(DT_RELAENT, ld->ld_arch->reloc_entsize); - } - } - - /* - * DT_VERNEED, DT_VERNEEDNUM, DT_VERDEF, DT_VERDEFNUM and - * DT_VERSYM. - */ - if (lo->lo_verdef != NULL) { - DT_ENTRY_PTR(DT_VERDEF, lo->lo_verdef->os_addr); - DT_ENTRY_VAL(DT_VERDEFNUM, lo->lo_verdef_num); - } - if (lo->lo_verneed != NULL) { - DT_ENTRY_PTR(DT_VERNEED, lo->lo_verneed->os_addr); - DT_ENTRY_VAL(DT_VERNEEDNUM, lo->lo_verneed_num); - } - if (lo->lo_versym != NULL) - DT_ENTRY_PTR(DT_VERSYM, lo->lo_versym->os_addr); - - /* DT_RELCOUNT/DT_RELACOUNT. */ - if (ld->ld_state.ls_relative_reloc > 0) - DT_ENTRY_VAL(ld->ld_arch->reloc_is_rela ? DT_RELACOUNT : - DT_RELCOUNT, ld->ld_state.ls_relative_reloc); - - /* Fill in the space left with DT_NULL entries */ - DT_ENTRY_NULL; -} - -static void -_create_dynsym_and_dynstr_section(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_section *os; - char dynsym_name[] = ".dynsym"; - char dynstr_name[] = ".dynstr"; - - /* - * Create .dynsym section. - */ - - HASH_FIND_STR(lo->lo_ostbl, dynsym_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, dynsym_name, - SHF_ALLOC); - os->os_type = SHT_DYNSYM; - os->os_flags = SHF_ALLOC; - if (lo->lo_ec == ELFCLASS32) { - os->os_entsize = sizeof(Elf32_Sym); - os->os_align = 4; - } else { - os->os_entsize = sizeof(Elf64_Sym); - os->os_align = 8; - } - lo->lo_dynsym = os; - - (void) ld_output_create_section_element(ld, os, OET_SYMTAB, - ld->ld_dynsym, NULL); - - /* - * Create .dynstr section. - */ - - HASH_FIND_STR(lo->lo_ostbl, dynstr_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, dynstr_name, - SHF_ALLOC); - os->os_type = SHT_STRTAB; - os->os_flags = SHF_ALLOC; - os->os_entsize = 0; - os->os_align = 1; - lo->lo_dynstr = os; - - (void) ld_output_create_section_element(ld, os, OET_STRTAB, - ld->ld_dynstr, NULL); - - if ((lo->lo_dynsym->os_link = strdup(".dynstr")) == NULL) - ld_fatal_std(ld, "strdup"); -} - -static void -_check_dso_needed(struct ld *ld, struct ld_output *lo) -{ - struct ld_input *li; - char *bn; - int ndx; - - lo->lo_dso_needed = 0; - - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - if (li->li_type != LIT_DSO) - continue; - - if (li->li_dso_refcnt > 0 || !li->li_file->lf_as_needed) { - lo->lo_dso_needed++; - - if (ld->ld_dynstr == NULL) - ld->ld_dynstr = ld_strtab_alloc(ld, 0); - - /* Insert DSO name to the .dynstr string table. */ - if (li->li_soname != NULL) - bn = li->li_soname; - else { - if ((bn = strrchr(li->li_name, '/')) == NULL) - bn = li->li_name; - else - bn++; - } - ndx = ld_strtab_insert_no_suffix(ld, ld->ld_dynstr, - bn); - - /* Save the generated name index for later use. */ - if (lo->lo_dso_nameindex == NULL) - utarray_new(lo->lo_dso_nameindex, &ut_int_icd); - utarray_push_back(lo->lo_dso_nameindex, &ndx); - } - } -} diff --git a/contrib/elftoolchain/ld/ld_dynamic.h b/contrib/elftoolchain/ld/ld_dynamic.h deleted file mode 100644 index e3fab2ce..00000000 --- a/contrib/elftoolchain/ld/ld_dynamic.h +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * Copyright (c) 2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -void ld_dynamic_create(struct ld *); -void ld_dynamic_finalize(struct ld *); -void ld_dynamic_load_dso_dynamic(struct ld *, struct ld_input *, Elf *, - Elf_Scn *, size_t); -void ld_dynamic_create_copy_reloc(struct ld *); -void ld_dynamic_reserve_dynbss_entry(struct ld *, struct ld_symbol *); diff --git a/contrib/elftoolchain/ld/ld_ehframe.c b/contrib/elftoolchain/ld/ld_ehframe.c deleted file mode 100644 index 841d6a27..00000000 --- a/contrib/elftoolchain/ld/ld_ehframe.c +++ /dev/null @@ -1,770 +0,0 @@ -/*- - * Copyright (c) 2009-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_ehframe.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_reloc.h" -#include "ld_utils.h" - -ELFTC_VCSID("$Id$"); - -struct ld_ehframe_cie { - uint64_t cie_off; /* offset in section */ - uint64_t cie_off_orig; /* orignial offset (before optimze) */ - uint64_t cie_size; /* CIE size (include length field) */ - uint8_t *cie_content; /* CIE content */ - uint8_t cie_fde_encode; /* FDE PC start/range encode. */ - struct ld_ehframe_cie *cie_dup; /* duplicate entry */ - STAILQ_ENTRY(ld_ehframe_cie) cie_next; -}; - -STAILQ_HEAD(ld_ehframe_cie_head, ld_ehframe_cie); - -struct ld_ehframe_fde { - struct ld_ehframe_cie *fde_cie; /* associated CIE */ - uint64_t fde_off; /* offset in section */ - uint64_t fde_off_pcbegin; /* section offset of "PC Begin" field */ - int32_t fde_pcrel; /* relative offset to "PC Begin" */ - int32_t fde_datarel; /* relative offset to FDE entry */ - STAILQ_ENTRY(ld_ehframe_fde) fde_next; -}; - -STAILQ_HEAD(ld_ehframe_fde_head, ld_ehframe_fde); - -static int64_t _decode_sleb128(uint8_t **dp); -static uint64_t _decode_uleb128(uint8_t **dp); -static void _process_ehframe_section(struct ld *ld, struct ld_output *lo, - struct ld_input_section *is); -static int _read_encoded(struct ld *ld, struct ld_output *lo, uint64_t *val, - uint8_t *data, uint8_t encode, uint64_t pc); -static int _cmp_fde(struct ld_ehframe_fde *a, struct ld_ehframe_fde *b); - -void -ld_ehframe_adjust(struct ld *ld, struct ld_input_section *is) -{ - struct ld_output *lo; - uint8_t *p, *d, *end, *s; - uint64_t length, length_size, remain, adjust; - uint32_t cie_id; - - lo = ld->ld_output; - assert(lo != NULL); - - /* - * If the .eh_frame section is unchanged, we don't need to - * do much. - */ - assert(is->is_ehframe != NULL); - if (is->is_shrink == 0) { - is->is_ehframe = NULL; - return; - } - - /* - * Otherwise the section is shrinked becase some FDE's are - * discarded. We copy the section content to a buffer while - * skipping those discarded FDE's. - */ - - if ((is->is_ibuf = malloc(is->is_size - is->is_shrink)) == NULL) - ld_fatal_std(ld, "malloc"); - d = is->is_ibuf; - end = d + is->is_size - is->is_shrink; - p = is->is_ehframe; - adjust = 0; - remain = is->is_size; - while (remain > 0) { - - s = p; - - /* Read CIE/FDE length field. */ - READ_32(p, length); - p += 4; - if (length == 0xffffffff) { - READ_64(p, length); - p += 8; - length_size = 8; - } else - length_size = 4; - - /* Check for terminator */ - if (length == 0) { - memset(d, 0, 4); - d += 4; - break; - } - - /* Read CIE ID/Pointer field. */ - READ_32(p, cie_id); - - /* Clear adjustment if CIE is found. */ - if (cie_id == 0) - adjust = 0; - - /* Check for our special mark. */ - if (cie_id != 0xFFFFFFFF) { - if (cie_id != 0) { - /* Adjust FDE pointer. */ - assert(cie_id > adjust); - cie_id -= adjust; - WRITE_32(p, cie_id); - } - memcpy(d, s, length + length_size); - d += length + length_size; - } else { - /* Discard FDE and increate adjustment. */ - adjust += length + length_size; - } - - /* Next entry. */ - p += length; - remain -= length + length_size; - } - - is->is_size -= is->is_shrink; - is->is_shrink = 0; - assert(d == end); - free(is->is_ehframe); - is->is_ehframe = NULL; -} - -void -ld_ehframe_scan(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_element *oe; - struct ld_input_section *is; - struct ld_input_section_head *islist; - uint64_t ehframe_off; - char ehframe_name[] = ".eh_frame"; - - lo = ld->ld_output; - assert(lo != NULL); - - /* - * Search for .eh_frame output section. Nothing needs to be done - * if .eh_frame section not exist or is empty. - */ - HASH_FIND_STR(lo->lo_ostbl, ehframe_name, os); - if (os == NULL || os->os_empty) - return; - - if ((ld->ld_cie = malloc(sizeof(*ld->ld_cie))) == NULL) - ld_fatal_std(ld, "malloc"); - STAILQ_INIT(ld->ld_cie); - - /* - * Remove duplicate CIE from each input .eh_frame section. - */ - ehframe_off = 0; - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - /* - * XXX We currently do not support .eh_frame section which - * contains elements other than OET_INPUT_SECTION_LIST. - */ - if (oe->oe_type != OET_INPUT_SECTION_LIST) - continue; - - islist = oe->oe_islist; - STAILQ_FOREACH(is, islist, is_next) { - /* - * Process each input .eh_frame section and search - * for duplicate CIE's. The input section relative - * offset in the output section is resync'ed since - * the input section might be shrinked. - */ - is->is_reloff = ehframe_off; - _process_ehframe_section(ld, lo, is); - ehframe_off += is->is_size; - } - } - - /* Calculate the size of .eh_frame_hdr section. */ - if (ld->ld_ehframe_hdr) { - is = ld_input_find_internal_section(ld, ".eh_frame_hdr"); - assert(is != NULL); - if (lo->lo_fde_num > 0) - is->is_size += 4 + lo->lo_fde_num * 8; - } -} - -void -ld_ehframe_create_hdr(struct ld *ld) -{ - struct ld_input_section *is; - - is = ld_input_add_internal_section(ld, ".eh_frame_hdr"); - is->is_type = SHT_PROGBITS; - is->is_size = 8; /* initial size */ - is->is_align = 4; - is->is_entsize = 0; -} - -void -ld_ehframe_finalize_hdr(struct ld *ld) -{ - struct ld_input_section *is, *hdr_is; - struct ld_input_section_head *islist; - struct ld_output *lo; - struct ld_output_section *os, *hdr_os; - struct ld_output_element *oe; - struct ld_ehframe_fde *fde, *_fde; - char ehframe_name[] = ".eh_frame"; - uint64_t pcbegin; - int32_t pcrel; - uint8_t *p, *end; - - lo = ld->ld_output; - assert(lo != NULL); - - hdr_is = ld_input_find_internal_section(ld, ".eh_frame_hdr"); - assert(hdr_is != NULL); - hdr_os = hdr_is->is_output; - lo->lo_ehframe_hdr = hdr_os; - - if (hdr_is->is_discard || hdr_os == NULL) - return; - - p = hdr_is->is_ibuf; - end = p + hdr_is->is_size; - - /* Find .eh_frame output section. */ - HASH_FIND_STR(lo->lo_ostbl, ehframe_name, os); - assert(os != NULL); - - /* .eh_frame_hdr version */ - *p++ = 1; - - /* - * eh_frame_ptr_enc: encoding format for eh_frame_ptr field. - * Usually a signed 4-byte PC relateive offset is used here. - */ - *p++ = DW_EH_PE_pcrel | DW_EH_PE_sdata4; - - /* - * fde_count_enc: encoding format for fde_count field. Unsigned - * 4 byte encoding should be used here. Note that If the binary - * search table is not present, DW_EH_PE_omit should be used - * instead. - */ - *p++ = lo->lo_fde_num == 0 ? DW_EH_PE_omit : DW_EH_PE_udata4; - - /* - * table_enc: encoding format for the binary search table entry. - * Signed 4 byte table relative offset is used here. Note that - * if the binary search table is not present, DW_EH_PE_omit should - * be used instaed. - */ - *p++ = lo->lo_fde_num == 0 ? DW_EH_PE_omit : - (DW_EH_PE_datarel | DW_EH_PE_sdata4); - - /* Write 4 byte PC relative offset to the .eh_frame section. */ - pcrel = os->os_addr - hdr_os->os_addr - 4; - WRITE_32(p, pcrel); - p += 4; - - /* Write the total number of FDE's. */ - WRITE_32(p, lo->lo_fde_num); - p += 4; - - /* Allocate global FDE list. */ - if (ld->ld_fde == NULL) { - if ((ld->ld_fde = calloc(1, sizeof(ld->ld_fde))) == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(ld->ld_fde); - } - - /* Link together the FDE's from each input object. */ - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - if (oe->oe_type != OET_INPUT_SECTION_LIST) - continue; - - islist = oe->oe_islist; - STAILQ_FOREACH(is, islist, is_next) { - if (is->is_fde == NULL || STAILQ_EMPTY(is->is_fde)) - continue; - STAILQ_FOREACH_SAFE(fde, is->is_fde, fde_next, _fde) { - (void) _read_encoded(ld, lo, &pcbegin, - (uint8_t *) is->is_ibuf + - fde->fde_off_pcbegin, - fde->fde_cie->cie_fde_encode, os->os_addr); - fde->fde_pcrel = pcbegin - hdr_os->os_addr; - fde->fde_datarel = os->os_addr + - is->is_reloff + fde->fde_off - - hdr_os->os_addr; - STAILQ_REMOVE(is->is_fde, fde, ld_ehframe_fde, - fde_next); - STAILQ_INSERT_TAIL(ld->ld_fde, fde, fde_next); - } - } - } - - /* Sort the binary search table in an increasing order by pcrel. */ - STAILQ_SORT(ld->ld_fde, ld_ehframe_fde, fde_next, _cmp_fde); - - /* Write binary search table. */ - STAILQ_FOREACH(fde, ld->ld_fde, fde_next) { - WRITE_32(p, fde->fde_pcrel); - p += 4; - WRITE_32(p, fde->fde_datarel); - p += 4; - } - - assert(p == end); -} - -static int -_cmp_fde(struct ld_ehframe_fde *a, struct ld_ehframe_fde *b) -{ - - if (a->fde_pcrel < b->fde_pcrel) - return (-1); - else if (a->fde_pcrel == b->fde_pcrel) - return (0); - else - return (1); -} - -static void -_parse_cie_augment(struct ld *ld, struct ld_ehframe_cie *cie, uint8_t *aug_p, - uint8_t *augdata_p, uint64_t auglen) -{ - uint64_t dummy; - uint8_t encode, *augdata_end; - int len; - - assert(aug_p != NULL && *aug_p == 'z'); - - augdata_end = augdata_p + auglen; - - /* - * Here we're only interested in the presence of augment 'R' - * and associated CIE augment data, which describes the - * encoding scheme of FDE PC begin and range. - */ - aug_p++; - while (*aug_p != '\0') { - switch (*aug_p) { - case 'L': - /* Skip one augment in augment data. */ - augdata_p++; - break; - case 'P': - /* Skip two augments in augment data. */ - encode = *augdata_p++; - len = _read_encoded(ld, ld->ld_output, &dummy, - augdata_p, encode, 0); - augdata_p += len; - break; - case 'R': - cie->cie_fde_encode = *augdata_p++; - break; - default: - ld_warn(ld, "unsupported eh_frame augmentation `%c'", - *aug_p); - return; - } - aug_p++; - } - - if (augdata_p > augdata_end) - ld_warn(ld, "invalid eh_frame augmentation"); -} - -static void -_process_ehframe_section(struct ld *ld, struct ld_output *lo, - struct ld_input_section *is) -{ - struct ld_input *li; - struct ld_output_section *os; - struct ld_ehframe_cie *cie, *_cie; - struct ld_ehframe_cie_head cie_h; - struct ld_ehframe_fde *fde; - struct ld_reloc_entry *lre, *_lre; - uint64_t length, es, off, off_orig, remain, shrink, auglen; - uint32_t cie_id, cie_pointer, length_size; - uint8_t *p, *et, cie_version, *augment; - - li = is->is_input; - os = is->is_output; - - STAILQ_INIT(&cie_h); - - /* - * .eh_frame section content should already be preloaded - * in is->is_ibuf. - */ - assert(is->is_ibuf != NULL && is->is_size > 0); - - shrink = 0; - p = is->is_ibuf; - off = off_orig = 0; - remain = is->is_size; - while (remain > 0) { - - et = p; - off = et - (uint8_t *) is->is_ibuf; - - /* Read CIE/FDE length field. */ - READ_32(p, length); - p += 4; - es = length + 4; - if (length == 0xffffffff) { - READ_64(p, length); - p += 8; - es += 8; - length_size = 8; - } else - length_size = 4; - - /* Check for terminator */ - if (length == 0) - break; - - /* Read CIE ID/Pointer field. */ - READ_32(p, cie_id); - p += 4; - - if (cie_id == 0) { - - /* This is a Common Information Entry (CIE). */ - if ((cie = calloc(1, sizeof(*cie))) == NULL) - ld_fatal_std(ld, "calloc"); - cie->cie_off = off; - cie->cie_off_orig = off_orig; - cie->cie_size = es; - cie->cie_content = et; - cie->cie_dup = NULL; - STAILQ_INSERT_TAIL(&cie_h, cie, cie_next); - - /* - * This is a Common Information Entry (CIE). Search - * in the CIE list see if we can found a duplicate - * entry. - */ - STAILQ_FOREACH(_cie, ld->ld_cie, cie_next) { - if (memcmp(et, _cie->cie_content, es) == 0) { - cie->cie_dup = _cie; - break; - } - } - if (_cie != NULL) { - /* - * We found a duplicate entry. It should be - * removed and the subsequent FDE's should - * point to the previously stored CIE. - */ - memmove(et, et + es, remain - es); - shrink += es; - p = et; - } else { - /* - * This is a new CIE entry which should be - * kept. Read its augmentation which is - * used to parse assoicated FDE's later. - */ - cie_version = *p++; - if (cie_version != 1) { - ld_warn(ld, "unsupported CIE version"); - goto ignore_cie; - } - augment = p; - if (*p != 'z') { - ld_warn(ld, "unsupported CIE " - "augmentation"); - goto ignore_cie; - } - while (*p++ != '\0') - ; - - /* Skip EH Data field. */ - if (strstr((char *)augment, "eh") != NULL) - p += lo->lo_ec == ELFCLASS32 ? 4 : 8; - - /* Skip CAF and DAF. */ - (void) _decode_uleb128(&p); - (void) _decode_sleb128(&p); - - /* Skip RA. */ - p++; - - /* Parse augmentation data. */ - auglen = _decode_uleb128(&p); - _parse_cie_augment(ld, cie, augment, p, - auglen); - - ignore_cie: - p = et + es; - } - - } else { - - /* - * This is a Frame Description Entry (FDE). First - * Search for the associated CIE. - */ - STAILQ_FOREACH(cie, &cie_h, cie_next) { - if (cie->cie_off_orig == - off_orig + length_size - cie_id) - break; - } - - /* - * If we can not found the associated CIE, this FDE - * is invalid and we ignore it. - */ - if (cie == NULL) { - ld_warn(ld, "%s(%s): malformed FDE", - li->li_name, is->is_name); - p = et + es; - goto next_entry; - } - - /* Allocate new FDE entry. */ - if ((fde = calloc(1, sizeof(*fde))) == NULL) - ld_fatal_std(ld, "calloc"); - fde->fde_off = off; - fde->fde_off_pcbegin = off + length_size + 4; - if (is->is_fde == NULL) { - is->is_fde = calloc(1, sizeof(*is->is_fde)); - if (is->is_fde == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(is->is_fde); - } - STAILQ_INSERT_TAIL(is->is_fde, fde, fde_next); - lo->lo_fde_num++; - - /* Calculate the new CIE pointer value. */ - if (cie->cie_dup != NULL) { - cie_pointer = off + length_size + - is->is_reloff - cie->cie_dup->cie_off; - fde->fde_cie = cie->cie_dup; - } else { - cie_pointer = off + length_size - cie->cie_off; - fde->fde_cie = cie; - } - - /* Rewrite CIE pointer value. */ - if (cie_id != cie_pointer) { - p -= 4; - WRITE_32(p, cie_pointer); - } - - p = et + es; - } - - next_entry: - off_orig += es; - remain -= es; - } - - /* - * Update the relocation entry offsets since we shrinked the - * section content. - */ - if (shrink > 0 && is->is_ris != NULL && is->is_ris->is_reloc != NULL) { - STAILQ_FOREACH_SAFE(lre, is->is_ris->is_reloc, lre_next, - _lre) { - STAILQ_FOREACH(cie, &cie_h, cie_next) { - if (cie->cie_off_orig > lre->lre_offset) - break; - if (cie->cie_dup == NULL) - continue; - - /* - * Remove relocations for the duplicated CIE - * entries. - */ - if (lre->lre_offset < - cie->cie_off_orig + cie->cie_size) { - STAILQ_REMOVE(is->is_ris->is_reloc, - lre, ld_reloc_entry, lre_next); - is->is_ris->is_num_reloc--; - is->is_ris->is_size -= - ld->ld_arch->reloc_entsize; - if (os->os_r != NULL) - os->os_r->os_size -= - ld->ld_arch->reloc_entsize; - break; - } - - /* Adjust relocation offset for FDE entries. */ - lre->lre_offset -= cie->cie_size; - } - } - } - - /* Insert newly found non-duplicate CIE's to the global CIE list. */ - STAILQ_FOREACH_SAFE(cie, &cie_h, cie_next, _cie) { - STAILQ_REMOVE(&cie_h, cie, ld_ehframe_cie, cie_next); - if (cie->cie_dup == NULL) { - cie->cie_off += is->is_reloff; - STAILQ_INSERT_TAIL(ld->ld_cie, cie, cie_next); - } - } - - /* Update the size of input .eh_frame section */ - is->is_size -= shrink; -} - -static int -_read_encoded(struct ld *ld, struct ld_output *lo, uint64_t *val, - uint8_t *data, uint8_t encode, uint64_t pc) -{ - int16_t s16; - int32_t s32; - uint8_t application, *begin; - int len; - - if (encode == DW_EH_PE_omit) - return (0); - - application = encode & 0xf0; - encode &= 0x0f; - - len = 0; - begin = data; - - switch (encode) { - case DW_EH_PE_absptr: - if (lo->lo_ec == ELFCLASS32) - READ_32(data, *val); - else - READ_64(data, *val); - break; - case DW_EH_PE_uleb128: - *val = _decode_uleb128(&data); - len = data - begin; - break; - case DW_EH_PE_udata2: - READ_16(data, *val); - len = 2; - break; - case DW_EH_PE_udata4: - READ_32(data, *val); - len = 4; - break; - case DW_EH_PE_udata8: - READ_64(data, *val); - len = 8; - break; - case DW_EH_PE_sleb128: - *val = _decode_sleb128(&data); - len = data - begin; - break; - case DW_EH_PE_sdata2: - READ_16(data, s16); - *val = s16; - len = 2; - break; - case DW_EH_PE_sdata4: - READ_32(data, s32); - *val = s32; - len = 4; - break; - case DW_EH_PE_sdata8: - READ_64(data, *val); - len = 8; - break; - default: - ld_warn(ld, "unsupported eh_frame encoding"); - break; - } - - if (application == DW_EH_PE_pcrel) { - /* - * Value is relative to .eh_frame section virtual addr. - */ - switch (encode) { - case DW_EH_PE_uleb128: - case DW_EH_PE_udata2: - case DW_EH_PE_udata4: - case DW_EH_PE_udata8: - *val += pc; - break; - case DW_EH_PE_sleb128: - case DW_EH_PE_sdata2: - case DW_EH_PE_sdata4: - case DW_EH_PE_sdata8: - *val = pc + (int64_t) *val; - break; - default: - /* DW_EH_PE_absptr is absolute value. */ - break; - } - } - - /* XXX Applications other than DW_EH_PE_pcrel are not handled. */ - - return (len); -} - -static int64_t -_decode_sleb128(uint8_t **dp) -{ - int64_t ret = 0; - uint8_t b; - int shift = 0; - - uint8_t *src = *dp; - - do { - b = *src++; - ret |= ((b & 0x7f) << shift); - shift += 7; - } while ((b & 0x80) != 0); - - if (shift < 32 && (b & 0x40) != 0) - ret |= (-1 << shift); - - *dp = src; - - return (ret); -} - -static uint64_t -_decode_uleb128(uint8_t **dp) -{ - uint64_t ret = 0; - uint8_t b; - int shift = 0; - - uint8_t *src = *dp; - - do { - b = *src++; - ret |= ((b & 0x7f) << shift); - shift += 7; - } while ((b & 0x80) != 0); - - *dp = src; - - return (ret); -} diff --git a/contrib/elftoolchain/ld/ld_ehframe.h b/contrib/elftoolchain/ld/ld_ehframe.h deleted file mode 100644 index 483c9d0a..00000000 --- a/contrib/elftoolchain/ld/ld_ehframe.h +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * Copyright (c) 2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -void ld_ehframe_adjust(struct ld *, struct ld_input_section *); -void ld_ehframe_scan(struct ld *); -void ld_ehframe_create_hdr(struct ld *); -void ld_ehframe_finalize_hdr(struct ld *); diff --git a/contrib/elftoolchain/ld/ld_error.c b/contrib/elftoolchain/ld/ld_error.c deleted file mode 100644 index ffc7d240..00000000 --- a/contrib/elftoolchain/ld/ld_error.c +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" - -ELFTC_VCSID("$Id$"); - -/* - * Support routines for error and warning message generation. - */ - -void -ld_fatal(struct ld *ld, const char *fmt, ...) -{ - va_list ap; - - fprintf(stderr, "%s: ", ld->ld_progname); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fputc('\n', stderr); - exit(EXIT_FAILURE); -} - -void -ld_fatal_std(struct ld *ld, const char *fmt, ...) -{ - va_list ap; - - fprintf(stderr, "%s: ", ld->ld_progname); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fprintf(stderr, ": %s\n", strerror(errno)); - exit(EXIT_FAILURE); -} - -void -ld_err(struct ld *ld, const char *fmt, ...) -{ - va_list ap; - - fprintf(stderr, "%s: ", ld->ld_progname); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fputc('\n', stderr); -} - -void -ld_warn(struct ld *ld, const char *fmt, ...) -{ - va_list ap; - - fprintf(stderr, "%s: warning: ", ld->ld_progname); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fputc('\n', stderr); -} - -void -ld_info(struct ld *ld, const char *fmt, ...) -{ - va_list ap; - - fprintf(stdout, "%s: ", ld->ld_progname); - va_start(ap, fmt); - vfprintf(stdout, fmt, ap); - va_end(ap); - fputc('\n', stdout); -} diff --git a/contrib/elftoolchain/ld/ld_exp.c b/contrib/elftoolchain/ld/ld_exp.c deleted file mode 100644 index b447894c..00000000 --- a/contrib/elftoolchain/ld/ld_exp.c +++ /dev/null @@ -1,715 +0,0 @@ -/*- - * Copyright (c) 2011,2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_script.h" -#include "ld_exp.h" -#include "ld_layout.h" - -ELFTC_VCSID("$Id$"); - -/* - * Support routines for ldscript expression. - */ - -static struct ld_exp *_alloc_exp(struct ld *ld); -static int64_t _assignment(struct ld *ld, struct ld_exp *le); -static int64_t _func_addr(struct ld *ld, struct ld_exp *le); -static int64_t _func_align(struct ld *ld, struct ld_exp *le); -static int64_t _func_alignof(struct ld *ld, struct ld_exp *le); -static int64_t _func_data_segment_align(struct ld *ld, struct ld_exp *le); -static int64_t _func_data_segment_end(struct ld *ld, struct ld_exp *le); -static int64_t _func_data_segment_relro_end(struct ld *ld, struct ld_exp *le); -static int64_t _func_defined(struct ld *ld, struct ld_exp *le); -static int64_t _func_length(struct ld *ld, struct ld_exp *le); -static int64_t _func_loadaddr(struct ld *ld, struct ld_exp *le); -static int64_t _func_max(struct ld *ld, struct ld_exp *le); -static int64_t _func_min(struct ld *ld, struct ld_exp *le); -static int64_t _func_next(struct ld *ld, struct ld_exp *le); -static int64_t _func_origin(struct ld *ld, struct ld_exp *le); -static int64_t _func_segment_start(struct ld *ld, struct ld_exp *le); -static int64_t _func_sizeof(struct ld *ld, struct ld_exp *le); -static int64_t _func_sizeof_headers(struct ld *ld); -static int64_t _symbol_val(struct ld *ld, char *name); -static int64_t _symbolic_constant(struct ld *ld, const char *name); - -#define _EXP_EVAL(x) ld_exp_eval(ld, (x)) -#define _EXP_DUMP(x) ld_exp_dump(ld, (x)) - -void -ld_exp_free(struct ld_exp *le) -{ - - if (le == NULL) - return; - - ld_exp_free(le->le_e1); - ld_exp_free(le->le_e2); - ld_exp_free(le->le_e3); - if (le->le_assign != NULL) - ld_script_assign_free(le->le_assign); - if (le->le_name != NULL) - free(le->le_name); - free(le); -} - -struct ld_exp * -ld_exp_unary(struct ld *ld, enum ld_exp_op op, struct ld_exp *e1) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = op; - le->le_e1 = e1; - - return (le); -} - -struct ld_exp * -ld_exp_binary(struct ld *ld, enum ld_exp_op op, struct ld_exp *e1, - struct ld_exp *e2) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = op; - le->le_e1 = e1; - le->le_e2 = e2; - - return (le); -} - -struct ld_exp * -ld_exp_trinary(struct ld *ld, struct ld_exp *e1, struct ld_exp *e2, - struct ld_exp *e3) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_TRINARY; - le->le_e1 = e1; - le->le_e2 = e2; - le->le_e3 = e3; - - return (le); -} - -struct ld_exp * -ld_exp_sizeof_headers(struct ld *ld) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_SIZEOF_HEADERS; - - return (le); -} - -struct ld_exp * -ld_exp_constant(struct ld *ld, int64_t val) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_CONSTANT; - le->le_val = val; - - return (le); -} - -struct ld_exp * -ld_exp_symbolic_constant(struct ld *ld, const char *name) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_SYMBOLIC_CONSTANT; - le->le_name = strdup(name); - if (le->le_name == NULL) - ld_fatal_std(ld, "calloc"); - - return (le); -} - -struct ld_exp * -ld_exp_symbol(struct ld *ld, const char *name) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_SYMBOL; - le->le_name = strdup(name); - if (le->le_name == NULL) - ld_fatal_std(ld, "calloc"); - - return (le); -} - -struct ld_exp * -ld_exp_name(struct ld *ld, const char *name) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_SECTION_NAME; - le->le_name = strdup(name); - if (le->le_name == NULL) - ld_fatal_std(ld, "calloc"); - - return (le); -} - -struct ld_exp * -ld_exp_assign(struct ld *ld, struct ld_script_assign *assign) -{ - struct ld_exp *le; - - le = _alloc_exp(ld); - le->le_op = LEOP_ASSIGN; - le->le_assign = assign; - - return (le); -} - -int64_t -ld_exp_eval(struct ld* ld, struct ld_exp *le) -{ - - assert(le != NULL); - switch (le->le_op) { - case LEOP_ABS: - return (llabs(_EXP_EVAL(le->le_e1))); - case LEOP_ADD: - return (_EXP_EVAL(le->le_e1) + _EXP_EVAL(le->le_e2)); - case LEOP_ADDR: - return (_func_addr(ld, le)); - case LEOP_ALIGN: - case LEOP_BLOCK: - return (_func_align(ld, le)); - case LEOP_ALIGNOF: - return (_func_alignof(ld, le)); - case LEOP_AND: - return (_EXP_EVAL(le->le_e1) & _EXP_EVAL(le->le_e2)); - case LEOP_ASSIGN: - return (_assignment(ld, le)); - case LEOP_CONSTANT: - return (le->le_val); - case LEOP_DIV: - return (_EXP_EVAL(le->le_e1) / _EXP_EVAL(le->le_e2)); - case LEOP_DSA: - return (_func_data_segment_align(ld, le)); - case LEOP_DSE: - return (_func_data_segment_end(ld, le)); - case LEOP_DSRE: - return (_func_data_segment_relro_end(ld, le)); - case LEOP_DEFINED: - return (_func_defined(ld, le)); - case LEOP_EQUAL: - return (_EXP_EVAL(le->le_e1) == _EXP_EVAL(le->le_e2)); - case LEOP_GE: - return (_EXP_EVAL(le->le_e1) >= _EXP_EVAL(le->le_e2)); - case LEOP_GREATER: - return (_EXP_EVAL(le->le_e1) > _EXP_EVAL(le->le_e2)); - case LEOP_LENGTH: - return (_func_length(ld, le)); - case LEOP_LOADADDR: - return (_func_loadaddr(ld, le)); - case LEOP_LOGICAL_AND: - return (_EXP_EVAL(le->le_e1) && _EXP_EVAL(le->le_e2)); - case LEOP_LOGICAL_OR: - return (_EXP_EVAL(le->le_e1) || _EXP_EVAL(le->le_e2)); - case LEOP_LSHIFT: - return (_EXP_EVAL(le->le_e1) << _EXP_EVAL(le->le_e2)); - case LEOP_MAX: - return (_func_max(ld, le)); - case LEOP_MIN: - return (_func_min(ld, le)); - case LEOP_MINUS: - return (-(_EXP_EVAL(le->le_e1))); - case LEOP_MOD: - return (_EXP_EVAL(le->le_e1) % _EXP_EVAL(le->le_e2)); - case LEOP_MUL: - return (_EXP_EVAL(le->le_e1) * _EXP_EVAL(le->le_e2)); - case LEOP_NE: - return (_EXP_EVAL(le->le_e1) != _EXP_EVAL(le->le_e2)); - case LEOP_NEGATION: - return (~(_EXP_EVAL(le->le_e1))); - case LEOP_NEXT: - return (_func_next(ld, le)); - case LEOP_NOT: - return (!(_EXP_EVAL(le->le_e1))); - case LEOP_OR: - return (_EXP_EVAL(le->le_e1) | _EXP_EVAL(le->le_e2)); - case LEOP_ORIGIN: - return (_func_origin(ld, le)); - case LEOP_RSHIFT: - return (_EXP_EVAL(le->le_e1) >> _EXP_EVAL(le->le_e2)); - case LEOP_SEGMENT_START: - return (_func_segment_start(ld, le)); - case LEOP_SIZEOF: - return (_func_sizeof(ld, le)); - case LEOP_SIZEOF_HEADERS: - return (_func_sizeof_headers(ld)); - case LEOP_SUBSTRACT: - return (_EXP_EVAL(le->le_e1) - _EXP_EVAL(le->le_e2)); - case LEOP_SYMBOL: - return (_symbol_val(ld, le->le_name)); - case LEOP_SYMBOLIC_CONSTANT: - return (_symbolic_constant(ld, le->le_name)); - case LEOP_TRINARY: - return (_EXP_EVAL(le->le_e1) ? _EXP_EVAL(le->le_e2) : - _EXP_EVAL(le->le_e3)); - default: - ld_fatal(ld, "internal: unknown ldscript expression op"); - } - - return (0); -} - -void -ld_exp_dump(struct ld *ld, struct ld_exp *le) -{ - - assert(le != NULL); - - if (le->le_par) - printf("("); - - switch (le->le_op) { - case LEOP_ABS: - printf("ABS("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_ADD: - _EXP_DUMP(le->le_e1); - printf(" + "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_ADDR: - printf("ADDR("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_ALIGN: - case LEOP_BLOCK: - printf("ALIGN("); - _EXP_DUMP(le->le_e1); - if (le->le_e2 != NULL) { - printf(", "); - _EXP_DUMP(le->le_e2); - } - printf(")"); - break; - case LEOP_ALIGNOF: - printf("ALIGNOF("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_AND: - _EXP_DUMP(le->le_e1); - printf(" & "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_ASSIGN: - printf("0x%jx", (uintmax_t) le->le_assign->lda_res); - break; - case LEOP_CONSTANT: - printf("0x%jx", (uintmax_t) le->le_val); - break; - case LEOP_DIV: - _EXP_DUMP(le->le_e1); - printf(" / "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_DSA: - printf("DATA_SEGMENT_ALIGN("); - _EXP_DUMP(le->le_e1); - printf(", "); - _EXP_DUMP(le->le_e2); - printf(")"); - break; - case LEOP_DSE: - printf("DATA_SEGMENT_END("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_DSRE: - printf("DATA_SEGMENT_RELRO_END("); - _EXP_DUMP(le->le_e1); - printf(", "); - _EXP_DUMP(le->le_e2); - printf(")"); - break; - case LEOP_DEFINED: - printf("DEFINED("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_EQUAL: - _EXP_DUMP(le->le_e1); - printf(" == "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_GE: - _EXP_DUMP(le->le_e1); - printf(" >= "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_GREATER: - _EXP_DUMP(le->le_e1); - printf(" > "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_LENGTH: - printf("LENGTH("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_LOADADDR: - printf("LOADADDR("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_LOGICAL_AND: - _EXP_DUMP(le->le_e1); - printf(" && "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_LOGICAL_OR: - _EXP_DUMP(le->le_e1); - printf(" || "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_LSHIFT: - _EXP_DUMP(le->le_e1); - printf(" << "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_MAX: - printf("MAX("); - _EXP_DUMP(le->le_e1); - printf(", "); - _EXP_DUMP(le->le_e2); - printf(")"); - break; - case LEOP_MIN: - printf("MIN("); - _EXP_DUMP(le->le_e1); - printf(", "); - _EXP_DUMP(le->le_e2); - printf(")"); - break; - case LEOP_MINUS: - printf("-"); - _EXP_DUMP(le->le_e1); - break; - case LEOP_MOD: - _EXP_DUMP(le->le_e1); - printf(" %% "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_MUL: - _EXP_DUMP(le->le_e1); - printf(" * "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_NE: - _EXP_DUMP(le->le_e1); - printf(" != "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_NEGATION: - printf("~"); - _EXP_DUMP(le->le_e1); - break; - case LEOP_NEXT: - printf("NEXT("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_NOT: - printf("!"); - _EXP_DUMP(le->le_e1); - break; - case LEOP_OR: - _EXP_DUMP(le->le_e1); - printf(" | "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_ORIGIN: - printf("ORIGIN("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_RSHIFT: - _EXP_DUMP(le->le_e1); - printf(" >> "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_SEGMENT_START: - printf("SEGMENT_START("); - _EXP_DUMP(le->le_e1); - printf(", "); - _EXP_DUMP(le->le_e2); - printf(")"); - break; - case LEOP_SIZEOF: - printf("SIZEOF("); - _EXP_DUMP(le->le_e1); - printf(")"); - break; - case LEOP_SIZEOF_HEADERS: - printf("SIZEOF_HEADERS"); - break; - case LEOP_SUBSTRACT: - _EXP_DUMP(le->le_e1); - printf(" - "); - _EXP_DUMP(le->le_e2); - break; - case LEOP_SYMBOL: - printf("%s", le->le_name); - break; - case LEOP_SYMBOLIC_CONSTANT: - printf("0x%jx", - (uintmax_t) _symbolic_constant(ld, le->le_name)); - break; - case LEOP_TRINARY: - _EXP_DUMP(le->le_e1); - printf(" ? "); - _EXP_DUMP(le->le_e2); - printf(" : "); - _EXP_DUMP(le->le_e3); - break; - default: - ld_fatal(ld, "internal: unknown ldscript expression op"); - } - - if (le->le_par) - printf(")"); -} - -static struct ld_exp * -_alloc_exp(struct ld *ld) -{ - struct ld_exp *le; - - if ((le = calloc(1, sizeof(*le))) == NULL) - ld_fatal_std(ld, "calloc"); - - return (le); -} - -static int64_t -_assignment(struct ld *ld, struct ld_exp *le) -{ - struct ld_exp *var; - - assert(le->le_assign != NULL); - ld_script_process_assign(ld, le->le_assign); - var = le->le_assign->lda_var; - return (ld_script_variable_value(ld, var->le_name)); -} - -static int64_t -_func_addr(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_align(struct ld *ld, struct ld_exp *le) -{ - struct ld_state *ls; - - ls = &ld->ld_state; - if (le->le_e2 != NULL) - return (roundup(_EXP_EVAL(le->le_e1), _EXP_EVAL(le->le_e2))); - else - return (roundup(ls->ls_loc_counter, _EXP_EVAL(le->le_e1))); -} - -static int64_t -_func_alignof(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_data_segment_align(struct ld *ld, struct ld_exp *le) -{ - struct ld_state *ls; - uint64_t maxpagesize; - /* uint64_t commonpagesize; */ - - /* - * TODO: test if align to common page size use less number - * of pages. - */ - ls = &ld->ld_state; - maxpagesize = _EXP_EVAL(le->le_e1); - /* commonpagesize = _EXP_EVAL(le->le_e2); */ - - return (roundup(ls->ls_loc_counter, maxpagesize) + - (ls->ls_loc_counter & (maxpagesize - 1))); -} - -static int64_t -_func_data_segment_end(struct ld *ld, struct ld_exp *le) -{ - - return (_EXP_EVAL(le->le_e1)); -} - -static int64_t -_func_data_segment_relro_end(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_defined(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_length(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_loadaddr(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_max(struct ld *ld, struct ld_exp *le) -{ - uint64_t val1, val2; - - val1 = _EXP_EVAL(le->le_e1); - val2 = _EXP_EVAL(le->le_e2); - - return (val1 > val2 ? val1 : val2); -} - -static int64_t -_func_min(struct ld *ld, struct ld_exp *le) -{ - uint64_t val1, val2; - - val1 = _EXP_EVAL(le->le_e1); - val2 = _EXP_EVAL(le->le_e2); - - return (val1 > val2 ? val2 : val1); -} - -static int64_t -_func_next(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_origin(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_segment_start(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_sizeof(struct ld *ld, struct ld_exp *le) -{ - - /* TODO */ - (void) ld; (void) le; - return (0); -} - -static int64_t -_func_sizeof_headers(struct ld *ld) -{ - - return (ld_layout_calc_header_size(ld)); -} - -static int64_t -_symbol_val(struct ld *ld, char *name) -{ - - return (ld_script_variable_value(ld, name)); -} - -static int64_t -_symbolic_constant(struct ld *ld, const char *name) -{ - - if (ld->ld_arch == NULL) - return (0); - - if (strcmp(name, "COMMONPAGESIZE") == 0) - return (ld->ld_arch->get_common_page_size(ld)); - else if (strcmp(name, "MAXPAGESIZE") == 0) - return (ld->ld_arch->get_max_page_size(ld)); - - return (0); -} diff --git a/contrib/elftoolchain/ld/ld_exp.h b/contrib/elftoolchain/ld/ld_exp.h deleted file mode 100644 index d05b3a38..00000000 --- a/contrib/elftoolchain/ld/ld_exp.h +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * Copyright (c) 2011,2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -enum ld_exp_op { - LEOP_ABS, - LEOP_ADD, - LEOP_ADDR, - LEOP_ALIGN, - LEOP_ALIGNOF, - LEOP_AND, - LEOP_ASSIGN, - LEOP_BLOCK, - LEOP_CONSTANT, - LEOP_DIV, - LEOP_DSA, - LEOP_DSE, - LEOP_DSRE, - LEOP_DEFINED, - LEOP_EQUAL, - LEOP_GE, - LEOP_GREATER, - LEOP_LENGTH, - LEOP_LE, - LEOP_LESSER, - LEOP_LOADADDR, - LEOP_LOGICAL_AND, - LEOP_LOGICAL_OR, - LEOP_LSHIFT, - LEOP_MAX, - LEOP_MIN, - LEOP_MINUS, - LEOP_MOD, - LEOP_MUL, - LEOP_NE, - LEOP_NEGATION, - LEOP_NEXT, - LEOP_NOT, - LEOP_OR, - LEOP_ORIGIN, - LEOP_RSHIFT, - LEOP_SEGMENT_START, - LEOP_SIZEOF, - LEOP_SIZEOF_HEADERS, - LEOP_SECTION_NAME, - LEOP_SUBSTRACT, - LEOP_SYMBOL, - LEOP_SYMBOLIC_CONSTANT, - LEOP_TRINARY, -}; - -struct ld_exp { - enum ld_exp_op le_op; /* expression operator */ - struct ld_exp *le_e1; /* fisrt operand */ - struct ld_exp *le_e2; /* second operand */ - struct ld_exp *le_e3; /* third operand */ - struct ld_script_assign *le_assign; /* assignment */ - char *le_name; /* symbol/section name */ - unsigned le_par; /* parenthesis */ - int64_t le_val; /* constant value */ -}; - -struct ld_exp *ld_exp_assign(struct ld *, struct ld_script_assign *); -struct ld_exp *ld_exp_binary(struct ld *, enum ld_exp_op, struct ld_exp *, - struct ld_exp *); -struct ld_exp *ld_exp_constant(struct ld *, int64_t); -int64_t ld_exp_eval(struct ld *, struct ld_exp *); -void ld_exp_dump(struct ld *, struct ld_exp *); -struct ld_exp *ld_exp_name(struct ld *, const char *); -struct ld_exp *ld_exp_sizeof_headers(struct ld *); -struct ld_exp *ld_exp_symbol(struct ld *, const char *); -struct ld_exp *ld_exp_symbolic_constant(struct ld *, const char *); -struct ld_exp *ld_exp_trinary(struct ld *, struct ld_exp *, struct ld_exp *, - struct ld_exp *); -struct ld_exp *ld_exp_unary(struct ld *, enum ld_exp_op, struct ld_exp *); -void ld_exp_free(struct ld_exp *); diff --git a/contrib/elftoolchain/ld/ld_file.c b/contrib/elftoolchain/ld/ld_file.c deleted file mode 100644 index 71c3278b..00000000 --- a/contrib/elftoolchain/ld/ld_file.c +++ /dev/null @@ -1,234 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_file.h" -#include "ld_path.h" - -ELFTC_VCSID("$Id$"); - -/* - * Support routines for input file handling. - */ - -static void _add_file(struct ld *ld, const char *name, enum ld_file_type type, - int first, struct ld_file *after); - -void -ld_file_cleanup(struct ld *ld) -{ - struct ld_file *lf, *_lf; - struct ld_archive_member *lam, *_lam; - - TAILQ_FOREACH_SAFE(lf, &ld->ld_lflist, lf_next, _lf) { - TAILQ_REMOVE(&ld->ld_lflist, lf, lf_next); - free(lf->lf_name); - if (lf->lf_ar != NULL) { - HASH_ITER(hh, lf->lf_ar->la_m, lam, _lam) { - HASH_DEL(lf->lf_ar->la_m, lam); - free(lam->lam_name); - free(lam); - } - free(lf->lf_ar); - } - free(lf); - } -} - -void -ld_file_add(struct ld *ld, const char *name, enum ld_file_type type) -{ - - _add_file(ld, name, type, 0, NULL); -} - -void -ld_file_add_first(struct ld *ld, const char *name, enum ld_file_type type) -{ - - _add_file(ld, name, type, 1, NULL); -} - -void -ld_file_add_after(struct ld *ld, const char *name, enum ld_file_type type, - struct ld_file *after) -{ - - _add_file(ld, name, type, 0, after); -} - -void -ld_file_load(struct ld *ld, struct ld_file *lf) -{ - struct ld_archive *la; - struct ld_state *ls; - struct stat sb; - Elf_Kind k; - GElf_Ehdr ehdr; - int fd; - - assert(lf != NULL && lf->lf_name != NULL); - - ls = &ld->ld_state; - if (ls->ls_file == lf) - return; - - if ((fd = open(lf->lf_name, O_RDONLY)) < 0) - ld_fatal_std(ld, "%s: open", lf->lf_name); - - if (fstat(fd, &sb) < 0) - ld_fatal_std(ld, "%s: stat", lf->lf_name); - if (sb.st_size == 0) - ld_fatal(ld, "%s: File truncated", lf->lf_name); - - lf->lf_size = sb.st_size; - if ((lf->lf_mmap = mmap(NULL, lf->lf_size, PROT_READ, MAP_PRIVATE, fd, - (off_t) 0)) == MAP_FAILED) - ld_fatal_std(ld, "%s: mmap", lf->lf_name); - close(fd); - - if (lf->lf_type == LFT_BINARY) - return; - - if ((lf->lf_elf = elf_memory(lf->lf_mmap, lf->lf_size)) == NULL) - ld_fatal(ld, "%s: elf_memory failed: %s", lf->lf_name, - elf_errmsg(-1)); - - k = elf_kind(lf->lf_elf); - - if (k == ELF_K_AR) { - lf->lf_type = LFT_ARCHIVE; - if (lf->lf_ar == NULL) { - if ((la = calloc(1, sizeof(*la))) == NULL) - ld_fatal_std(ld, "calloc"); - lf->lf_ar = la; - } - return; - } - - assert(k != ELF_K_AR); - if (k == ELF_K_NONE) - ld_fatal(ld, "%s: File format not recognized", lf->lf_name); - - if (gelf_getehdr(lf->lf_elf, &ehdr) == NULL) - ld_fatal(ld, "%s: gelf_getehdr failed: %s", lf->lf_name, - elf_errmsg(-1)); - - switch (ehdr.e_type) { - case ET_NONE: - ld_fatal(ld, "%s: ELF type ET_NONE not supported", lf->lf_name); - case ET_REL: - lf->lf_type = LFT_RELOCATABLE; - break; - case ET_EXEC: - ld_fatal(ld, "%s: ELF type ET_EXEC not supported yet", - lf->lf_name); - case ET_DYN: - lf->lf_type = LFT_DSO; - break; - case ET_CORE: - ld_fatal(ld, "%s: ELF type ET_NONE not supported", lf->lf_name); - default: - ld_fatal(ld, "%s: unknown ELF type %u", ehdr.e_type); - } - - ld_arch_verify(ld, lf->lf_name, ehdr.e_machine, ehdr.e_ident[EI_DATA], - ehdr.e_flags); -} - -void -ld_file_unload(struct ld *ld, struct ld_file *lf) -{ - struct ld_state *ls; - - ls = &ld->ld_state; - - if (lf->lf_type != LFT_BINARY) - elf_end(lf->lf_elf); - - if (lf->lf_mmap != NULL) { - if (munmap(lf->lf_mmap, lf->lf_size) < 0) - ld_fatal_std(ld, "%s: munmap", lf->lf_name); - } - - if (ls->ls_file == lf) - ls->ls_file = NULL; -} - -static void -_add_file(struct ld *ld, const char *name, enum ld_file_type type, - int first, struct ld_file *after) -{ - struct ld_state *ls; - struct ld_file *lf; - int fd; - - assert(ld != NULL && name != NULL); - - if (!strncmp(name, "-l", 2)) { - ld_path_search_library(ld, &name[2]); - return; - } - - ls = &ld->ld_state; - - if ((lf = calloc(1, sizeof(*lf))) == NULL) - ld_fatal_std(ld, "calloc"); - - if ((lf->lf_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - - lf->lf_type = type; - lf->lf_whole_archive = ls->ls_whole_archive; - lf->lf_as_needed = ls->ls_as_needed; - lf->lf_group_level = ls->ls_group_level; - lf->lf_search_dir = ls->ls_search_dir; - - if ((fd = open(lf->lf_name, O_RDONLY)) < 0) { - if (!lf->lf_search_dir) - ld_fatal_std(ld, "%s: open", lf->lf_name); - - /* Search library path for this file. */ - ld_path_search_file(ld, lf); - } else - (void) close(fd); - - if (lf->lf_type == LFT_UNKNOWN && ls->ls_itgt != NULL) { - if (elftc_bfd_target_flavor(ls->ls_itgt) == ETF_BINARY) - lf->lf_type = LFT_BINARY; - } - - if (lf->lf_type == LFT_DSO) - ld->ld_dynamic_link = 1; - - if (after != NULL) - TAILQ_INSERT_AFTER(&ld->ld_lflist, after, lf, lf_next); - else if (first) - TAILQ_INSERT_HEAD(&ld->ld_lflist, lf, lf_next); - else - TAILQ_INSERT_TAIL(&ld->ld_lflist, lf, lf_next); -} diff --git a/contrib/elftoolchain/ld/ld_file.h b/contrib/elftoolchain/ld/ld_file.h deleted file mode 100644 index 20c0b043..00000000 --- a/contrib/elftoolchain/ld/ld_file.h +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -enum ld_file_type { - LFT_UNKNOWN, - LFT_RELOCATABLE, - LFT_DSO, - LFT_ARCHIVE, - LFT_BINARY -}; - -struct ld_archive_member { - char *lam_ar_name; /* archive name */ - char *lam_name; /* archive member name */ - off_t lam_off; /* archive member offset */ - struct ld_input *lam_input; /* input object */ - UT_hash_handle hh; /* hash handle */ -}; - -struct ld_archive { - struct ld_archive_member *la_m; /* extracted member list. */ -}; - -struct ld_file { - char *lf_name; /* input file name */ - enum ld_file_type lf_type; /* input file type */ - void *lf_mmap; /* input file image */ - size_t lf_size; /* input file size */ - Elf *lf_elf; /* input file ELF descriptor */ - struct ld_archive *lf_ar; /* input archive */ - struct ld_input *lf_input; /* input object */ - unsigned lf_whole_archive; /* include whole archive */ - unsigned lf_as_needed; /* DT_NEEDED */ - unsigned lf_group_level; /* archive group level */ - unsigned lf_search_dir; /* search library directories */ - TAILQ_ENTRY(ld_file) lf_next; /* next input file */ -}; - -void ld_file_add(struct ld *, const char *, enum ld_file_type); -void ld_file_add_first(struct ld *, const char *, enum ld_file_type); -void ld_file_add_after(struct ld *, const char *, enum ld_file_type, - struct ld_file *); -void ld_file_cleanup(struct ld *); -void ld_file_load(struct ld *, struct ld_file *); -void ld_file_unload(struct ld *, struct ld_file *); diff --git a/contrib/elftoolchain/ld/ld_hash.c b/contrib/elftoolchain/ld/ld_hash.c deleted file mode 100644 index 329d0626..00000000 --- a/contrib/elftoolchain/ld/ld_hash.c +++ /dev/null @@ -1,126 +0,0 @@ -/*- - * Copyright (c) 2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_hash.h" -#include "ld_layout.h" -#include "ld_output.h" -#include "ld_symbols.h" - -ELFTC_VCSID("$Id$"); - -/* - * The number of buckets to use for a certain number of symbols. - * If there are less than 3 symbols, 1 bucket will be used. If - * there are less than 17 symbols, 3 buckets will be used, and so - * forth. The bucket numbers are defined by GNU ld. We use the - * same rules here so we generate hash sections with the same - * size as those generated by GNU ld. - */ -static unsigned hash_buckets[] = { - 1, 3, 17, 37, 67, 97, 131, 197, 263, 521, 1031, 2053, 4099, 8209, - 16411, 32771, 65537, 131101, 262147 -}; - -void -ld_hash_create_svr4_hash_section(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_data_buffer *odb; - struct ld_symbol *lsb; - char hash_name[] = ".hash"; - uint32_t *buf, *buckets, *chains, nbuckets, nchains; - int i, j; - - lo = ld->ld_output; - assert(lo != NULL); - - HASH_FIND_STR(lo->lo_ostbl, hash_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, hash_name, SHF_ALLOC); - os->os_type = SHT_HASH; - os->os_flags = SHF_ALLOC; - os->os_entsize = 4; - if (lo->lo_ec == ELFCLASS32) - os->os_align = 4; - else - os->os_align = 8; - - if ((os->os_link = strdup(".dynsym")) == NULL) - ld_fatal_std(ld, "strdup"); - - lo->lo_hash = os; - - assert(ld->ld_dynsym != NULL && ld->ld_dynsym->sy_size > 0); - - nchains = ld->ld_dynsym->sy_size; - nbuckets = 0; - for (i = 1; - (size_t) i < sizeof(hash_buckets) / sizeof(hash_buckets[0]); - i++) { - if (nchains < hash_buckets[i]) { - nbuckets = hash_buckets[i - 1]; - break; - } - } - if (nbuckets == 0) - nbuckets = hash_buckets[i - 1]; - - if ((buf = calloc(nbuckets + nchains + 2, sizeof(uint32_t))) == NULL) - ld_fatal_std(ld, "calloc"); - - buf[0] = nbuckets; - buf[1] = nchains; - buckets = &buf[2]; - chains = &buf[2 + nbuckets]; - - assert(ld->ld_dyn_symbols != NULL); - - i = 1; - STAILQ_FOREACH(lsb, ld->ld_dyn_symbols, lsb_dyn) { - if (lsb->lsb_name == NULL) { - i++; - continue; - } - - j = elf_hash(lsb->lsb_name) % nbuckets; - chains[i] = buckets[j]; - buckets[j] = i; - i++; - } - - if ((odb = calloc(1, sizeof(*odb))) == NULL) - ld_fatal_std(ld, "calloc"); - - odb->odb_buf = (void *) buf; - odb->odb_size = (nbuckets + nchains + 2) * sizeof(uint32_t); - odb->odb_align = os->os_align; - odb->odb_type = ELF_T_WORD; /* enable libelf translation */ - - (void) ld_output_create_section_element(ld, os, OET_DATA_BUFFER, - odb, NULL); -} diff --git a/contrib/elftoolchain/ld/ld_hash.h b/contrib/elftoolchain/ld/ld_hash.h deleted file mode 100644 index d159da7e..00000000 --- a/contrib/elftoolchain/ld/ld_hash.h +++ /dev/null @@ -1,29 +0,0 @@ -/*- - * Copyright (c) 2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -void ld_hash_create_svr4_hash_section(struct ld *); diff --git a/contrib/elftoolchain/ld/ld_input.c b/contrib/elftoolchain/ld/ld_input.c deleted file mode 100644 index 221e0bfb..00000000 --- a/contrib/elftoolchain/ld/ld_input.c +++ /dev/null @@ -1,653 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_file.h" -#include "ld_input.h" -#include "ld_symbols.h" - -ELFTC_VCSID("$Id$"); - -/* - * Support routines for input section handling. - */ - -static void _discard_section_group(struct ld *ld, struct ld_input *li, - Elf_Scn *scn); -static off_t _offset_sort(struct ld_archive_member *a, - struct ld_archive_member *b); - -#define _MAX_INTERNAL_SECTIONS 16 - -void -ld_input_init(struct ld *ld) -{ - struct ld_input *li; - struct ld_input_section *is; - - assert(STAILQ_EMPTY(&ld->ld_lilist)); - - /* - * Create an internal pseudo input object to hold internal - * input sections. - */ - - li = ld_input_alloc(ld, NULL, NULL); - - li->li_is = calloc(_MAX_INTERNAL_SECTIONS, - sizeof(struct ld_input_section)); - if (li->li_is == NULL) - ld_fatal_std(ld, "calloc"); - - STAILQ_INSERT_TAIL(&ld->ld_lilist, li, li_next); - - /* - * Create an initial SHT_NULL section for the pseudo input object, - * so all the internal sections will have valid section index. - * (other than SHN_UNDEF) - */ - is = &li->li_is[li->li_shnum]; - if ((is->is_name = strdup("")) == NULL) - ld_fatal_std(ld, "strdup"); - is->is_input = li; - is->is_type = SHT_NULL; - is->is_index = li->li_shnum; - li->li_shnum++; -} - -struct ld_input_section * -ld_input_add_internal_section(struct ld *ld, const char *name) -{ - struct ld_input *li; - struct ld_input_section *is; - - li = STAILQ_FIRST(&ld->ld_lilist); - assert(li != NULL); - - if (li->li_shnum >= _MAX_INTERNAL_SECTIONS) - ld_fatal(ld, "Internal: not enough buffer for internal " - "sections"); - - is = &li->li_is[li->li_shnum]; - if ((is->is_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - is->is_input = li; - is->is_index = li->li_shnum; - - /* Use a hash table to accelerate lookup for internal sections. */ - HASH_ADD_KEYPTR(hh, li->li_istbl, is->is_name, strlen(is->is_name), - is); - - li->li_shnum++; - - return (is); -} - -struct ld_input_section * -ld_input_find_internal_section(struct ld *ld, const char *name) -{ - struct ld_input *li; - struct ld_input_section *is; - char _name[32]; - - li = STAILQ_FIRST(&ld->ld_lilist); - assert(li != NULL); - - snprintf(_name, sizeof(_name), "%s", name); - HASH_FIND_STR(li->li_istbl, _name, is); - - return (is); -} - -uint64_t -ld_input_reserve_ibuf(struct ld_input_section *is, uint64_t n) -{ - uint64_t off; - - assert(is->is_entsize != 0); - - off = is->is_size; - is->is_size += n * is->is_entsize; - - return (off); -} - -void -ld_input_alloc_internal_section_buffers(struct ld *ld) -{ - struct ld_input *li; - struct ld_input_section *is; - int i; - - li = STAILQ_FIRST(&ld->ld_lilist); - assert(li != NULL); - - for (i = 0; (uint64_t) i < li->li_shnum; i++) { - is = &li->li_is[i]; - - if (is->is_type == SHT_NOBITS || is->is_size == 0 || - is->is_dynrel) - continue; - - if ((is->is_ibuf = malloc(is->is_size)) == NULL) - ld_fatal_std(ld, "malloc"); - } -} - -void -ld_input_cleanup(struct ld *ld) -{ - struct ld_input *li, *_li; - int i; - - STAILQ_FOREACH_SAFE(li, &ld->ld_lilist, li_next, _li) { - STAILQ_REMOVE(&ld->ld_lilist, li, ld_input, li_next); - if (li->li_symindex) - free(li->li_symindex); - if (li->li_local) - free(li->li_local); - if (li->li_versym) - free(li->li_versym); - if (li->li_vername) { - for (i = 0; (size_t) i < li->li_vername_sz; i++) - if (li->li_vername[i]) - free(li->li_vername[i]); - free(li->li_vername); - } - if (li->li_is) - free(li->li_is); - if (li->li_fullname) - free(li->li_fullname); - if (li->li_name) - free(li->li_name); - if (li->li_soname) - free(li->li_soname); - free(li); - } -} - -void -ld_input_add_symbol(struct ld *ld, struct ld_input *li, struct ld_symbol *lsb) -{ - - if (li->li_symindex == NULL) { - assert(li->li_symnum != 0); - li->li_symindex = calloc(li->li_symnum, - sizeof(*li->li_symindex)); - if (li->li_symindex == NULL) - ld_fatal_std(ld, "calloc"); - } - - li->li_symindex[lsb->lsb_index] = lsb; - - if (lsb->lsb_bind == STB_LOCAL) { - if (li->li_local == NULL) { - li->li_local = calloc(1, sizeof(*li->li_local)); - if (li->li_local == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(li->li_local); - } - STAILQ_INSERT_TAIL(li->li_local, lsb, lsb_next); - } -} - -struct ld_input * -ld_input_alloc(struct ld *ld, struct ld_file *lf, const char *name) -{ - struct ld_input *li; - - if ((li = calloc(1, sizeof(*li))) == NULL) - ld_fatal_std(ld, "calloc"); - - if (name != NULL && (li->li_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - - li->li_file = lf; - - if (lf != NULL) { - switch (lf->lf_type) { - case LFT_ARCHIVE: - case LFT_RELOCATABLE: - li->li_type = LIT_RELOCATABLE; - break; - case LFT_DSO: - li->li_type = LIT_DSO; - break; - case LFT_BINARY: - case LFT_UNKNOWN: - default: - li->li_type = LIT_UNKNOWN; - break; - } - } else - li->li_type = LIT_RELOCATABLE; - - return (li); -} - -char * -ld_input_get_fullname(struct ld *ld, struct ld_input *li) -{ - struct ld_archive_member *lam; - size_t len; - - if (li->li_fullname != NULL) - return (li->li_fullname); - - if (li->li_lam == NULL) - return (li->li_name); - - lam = li->li_lam; - len = strlen(lam->lam_ar_name) + strlen(lam->lam_name) + 3; - if ((li->li_fullname = malloc(len)) == NULL) - ld_fatal_std(ld, "malloc"); - snprintf(li->li_fullname, len, "%s(%s)", lam->lam_ar_name, - lam->lam_name); - - return (li->li_fullname); -} - -void -ld_input_link_objects(struct ld *ld) -{ - struct ld_file *lf; - struct ld_archive_member *lam, *tmp; - struct ld_input *li; - - TAILQ_FOREACH(lf, &ld->ld_lflist, lf_next) { - if (lf->lf_ar != NULL) { - HASH_SORT(lf->lf_ar->la_m, _offset_sort); - HASH_ITER(hh, lf->lf_ar->la_m, lam, tmp) { - li = lam->lam_input; - if (li != NULL) - STAILQ_INSERT_TAIL(&ld->ld_lilist, li, - li_next); - } - } else { - li = lf->lf_input; - if (li != NULL) - STAILQ_INSERT_TAIL(&ld->ld_lilist, li, li_next); - } - } -} - -void * -ld_input_get_section_rawdata(struct ld *ld, struct ld_input_section *is) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - struct ld_input *li; - char *buf; - int elferr; - - li = is->is_input; - e = li->li_elf; - assert(e != NULL); - - if ((scn = elf_getscn(e, is->is_index)) == NULL) - ld_fatal(ld, "%s(%s): elf_getscn failed: %s", li->li_name, - is->is_name, elf_errmsg(-1)); - - (void) elf_errno(); - if ((d = elf_rawdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s(%s): elf_rawdata failed: %s", - li->li_name, is->is_name, elf_errmsg(elferr)); - return (NULL); - } - - if (d->d_buf == NULL || d->d_size == 0) - return (NULL); - - if ((buf = malloc(d->d_size)) == NULL) - ld_fatal_std(ld, "malloc"); - - memcpy(buf, d->d_buf, d->d_size); - - return (buf); -} - -void -ld_input_load(struct ld *ld, struct ld_input *li) -{ - struct ld_state *ls; - struct ld_file *lf; - struct ld_archive_member *lam; - - if (li->li_file == NULL) - return; - - assert(li->li_elf == NULL); - ls = &ld->ld_state; - if (li->li_file != ls->ls_file) { - if (ls->ls_file != NULL) - ld_file_unload(ld, ls->ls_file); - ld_file_load(ld, li->li_file); - } - lf = li->li_file; - if (lf->lf_ar != NULL) { - assert(li->li_lam != NULL); - lam = li->li_lam; - if (elf_rand(lf->lf_elf, lam->lam_off) != lam->lam_off) - ld_fatal(ld, "%s: elf_rand: %s", lf->lf_name, - elf_errmsg(-1)); - if ((li->li_elf = elf_begin(-1, ELF_C_READ, lf->lf_elf)) == - NULL) - ld_fatal(ld, "%s: elf_begin: %s", lf->lf_name, - elf_errmsg(-1)); - } else - li->li_elf = lf->lf_elf; -} - -void -ld_input_unload(struct ld *ld, struct ld_input *li) -{ - struct ld_file *lf; - - (void) ld; - - if (li->li_file == NULL) - return; - - assert(li->li_elf != NULL); - lf = li->li_file; - if (lf->lf_ar != NULL) - (void) elf_end(li->li_elf); - li->li_elf = NULL; -} - -void -ld_input_init_sections(struct ld *ld, struct ld_input *li, Elf *e) -{ - struct ld_input_section *is; - struct ld_section_group *sg; - Elf_Scn *scn, *_scn; - Elf_Data *d, *_d; - char *name; - GElf_Shdr sh; - GElf_Sym sym; - size_t shstrndx, strndx, ndx; - int elferr; - - _d = NULL; - strndx = 0; - - if (elf_getshdrnum(e, &li->li_shnum) < 0) - ld_fatal(ld, "%s: elf_getshdrnum: %s", li->li_name, - elf_errmsg(-1)); - - /* Allocate one more pseudo section to hold common symbols */ - li->li_shnum++; - - assert(li->li_is == NULL); - if ((li->li_is = calloc(li->li_shnum, sizeof(*is))) == NULL) - ld_fatal_std(ld, "%s: calloc: %s", li->li_name); - - if (elf_getshdrstrndx(e, &shstrndx) < 0) - ld_fatal(ld, "%s: elf_getshdrstrndx: %s", li->li_name, - elf_errmsg(-1)); - - (void) elf_errno(); - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) != &sh) - ld_fatal(ld, "%s: gelf_getshdr: %s", li->li_name, - elf_errmsg(-1)); - - if ((name = elf_strptr(e, shstrndx, sh.sh_name)) == NULL) - ld_fatal(ld, "%s: elf_strptr: %s", li->li_name, - elf_errmsg(-1)); - - if ((ndx = elf_ndxscn(scn)) == SHN_UNDEF) - ld_fatal(ld, "%s: elf_ndxscn: %s", li->li_name, - elf_errmsg(-1)); - - if (ndx >= li->li_shnum - 1) - ld_fatal(ld, "%s: section index of '%s' section is" - " invalid", li->li_name, name); - - is = &li->li_is[ndx]; - if ((is->is_name = strdup(name)) == NULL) - ld_fatal_std(ld, "%s: calloc", li->li_name); - is->is_off = sh.sh_offset; - is->is_size = sh.sh_size; - is->is_entsize = sh.sh_entsize; - is->is_addr = sh.sh_addr; - is->is_align = sh.sh_addralign; - is->is_type = sh.sh_type; - is->is_flags = sh.sh_flags; - is->is_link = sh.sh_link; - is->is_info = sh.sh_info; - is->is_index = elf_ndxscn(scn); - is->is_shrink = 0; - is->is_input = li; - - /* - * Section groups are identified by their signatures. - * A section group's signature is used to compare with the - * the section groups that are already added. If a match - * is found, the sections included in this section group - * should be discarded. - * - * Note that since signatures are stored in the symbol - * table, in order to handle that here we have to load - * the symbol table earlier. - */ - if (is->is_type == SHT_GROUP) { - is->is_discard = 1; - if (_d == NULL) { - _scn = elf_getscn(e, is->is_link); - if (_scn == NULL) { - ld_warn(ld, "%s: elf_getscn failed" - " with the `sh_link' of group" - " section %ju as index: %s", - li->li_name, ndx, elf_errmsg(-1)); - continue; - } - if (gelf_getshdr(_scn, &sh) != &sh) { - ld_warn(ld, "%s: gelf_getshdr: %s", - li->li_name, elf_errmsg(-1)); - continue; - } - strndx = sh.sh_link; - (void) elf_errno(); - _d = elf_getdata(_scn, NULL); - if (_d == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s: elf_getdata" - " failed: %s", li->li_name, - elf_errmsg(elferr)); - continue; - } - } - if (gelf_getsym(_d, is->is_info, &sym) != &sym) { - ld_warn(ld, "%s: gelf_getsym failed (section" - " group signature): %s", li->li_name, - elf_errmsg(-1)); - continue; - } - if ((name = elf_strptr(e, strndx, sym.st_name)) == - NULL) { - ld_warn(ld, "%s: elf_strptr failed (section" - " group signature): %s", li->li_name, - elf_errmsg(-1)); - continue; - } - - /* - * Search the currently added section groups for the - * signature. If found, this section group should not - * be added and the sections it contains should be - * discarded. If not found, we add this section group - * to the set. - */ - HASH_FIND_STR(ld->ld_sg, name, sg); - if (sg != NULL) - _discard_section_group(ld, li, scn); - else { - if ((sg = calloc(1, sizeof(*sg))) == NULL) - ld_fatal_std(ld, "%s: calloc", - li->li_name); - if ((sg->sg_name = strdup(name)) == NULL) - ld_fatal_std(ld, "%s: strdup", - li->li_name); - HASH_ADD_KEYPTR(hh, ld->ld_sg, sg->sg_name, - strlen(sg->sg_name), sg); - } - } - - /* - * Check for informational sections which should not - * be included in the output object, process them - * and mark them as discarded if need. - */ - - if (strcmp(is->is_name, ".note.GNU-stack") == 0) { - ld->ld_gen_gnustack = 1; - if (is->is_flags & SHF_EXECINSTR) - ld->ld_stack_exec = 1; - is->is_discard = 1; - continue; - } - - /* - * The content of input .eh_frame section is preloaded for - * output .eh_frame optimization. - */ - if (strcmp(is->is_name, ".eh_frame") == 0) { - if ((d = elf_rawdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s(%s): elf_rawdata " - "failed: %s", li->li_name, - is->is_name, elf_errmsg(elferr)); - continue; - } - - if (d->d_buf == NULL || d->d_size == 0) - continue; - - if ((is->is_ehframe = malloc(d->d_size)) == NULL) - ld_fatal_std(ld, "malloc"); - - memcpy(is->is_ehframe, d->d_buf, d->d_size); - is->is_ibuf = is->is_ehframe; - } - } - elferr = elf_errno(); - if (elferr != 0) - ld_fatal(ld, "%s: elf_nextscn failed: %s", li->li_name, - elf_errmsg(elferr)); -} - -void -ld_input_alloc_common_symbol(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_input *li; - struct ld_input_section *is; - - li = lsb->lsb_input; - if (li == NULL) - return; /* unlikely */ - - /* - * Do not allocate memory for common symbols when the linker - * creates a relocatable output object, unless option -d is - * specified. - */ - if (ld->ld_reloc && !ld->ld_common_alloc) - return; - - is = &li->li_is[li->li_shnum - 1]; - if (is->is_name == NULL) { - /* - * Create a pseudo section named COMMON to keep track of - * common symbols. - */ - if ((is->is_name = strdup("COMMON")) == NULL) - ld_fatal_std(ld, "%s: calloc", li->li_name); - is->is_off = 0; - is->is_size = 0; - is->is_entsize = 0; - is->is_align = 1; - is->is_type = SHT_NOBITS; - is->is_flags = SHF_ALLOC | SHF_WRITE; - is->is_link = 0; - is->is_info = 0; - is->is_index = SHN_COMMON; - is->is_input = li; - } - - /* - * Allocate space for this symbol in the pseudo COMMON section. - * Properly handle the alignment. (For common symbols, symbol - * value stores the required alignment) - */ - if (lsb->lsb_value > is->is_align) - is->is_align = lsb->lsb_value; - is->is_size = roundup(is->is_size, is->is_align); - lsb->lsb_value = is->is_size; - is->is_size += lsb->lsb_size; -} - -static void -_discard_section_group(struct ld *ld, struct ld_input *li, Elf_Scn *scn) -{ - Elf_Data *d; - uint32_t *w; - int elferr, i; - - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s: elf_getdata failed (section group):" - " %s", li->li_name, elf_errmsg(elferr)); - return; - } - - if (d->d_buf == NULL || d->d_size == 0) - return; - - w = d->d_buf; - if ((*w & GRP_COMDAT) == 0) - return; - - for (i = 1; (size_t) i < d->d_size / 4; i++) { - if (w[i] < li->li_shnum - 1) - li->li_is[w[i]].is_discard = 1; - } -} - -static off_t -_offset_sort(struct ld_archive_member *a, struct ld_archive_member *b) -{ - - return (a->lam_off - b->lam_off); -} diff --git a/contrib/elftoolchain/ld/ld_input.h b/contrib/elftoolchain/ld/ld_input.h deleted file mode 100644 index e4799421..00000000 --- a/contrib/elftoolchain/ld/ld_input.h +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -struct ld_reloc_entry_head; -struct ld_ehframe_fde_head; - -struct ld_section_group { - char *sg_name; - UT_hash_handle hh; -}; - -struct ld_input_section { - char *is_name; /* section name */ - struct ld_input *is_input; /* containing input object */ - struct ld_output_section *is_output; /* containing output section */ - uint64_t is_off; /* section file offset */ - uint64_t is_reloff; /* relative offset in output section */ - uint64_t is_addr; /* section vma */ - uint64_t is_size; /* section file size */ - uint64_t is_shrink; /* section shrinked bytes */ - uint64_t is_entsize; /* seciton entry size */ - uint64_t is_align; /* section align */ - uint64_t is_type; /* section type */ - uint64_t is_flags; /* section flags */ - uint64_t is_link; /* section link */ - uint64_t is_info; /* section info */ - uint64_t is_index; /* section index */ - unsigned char is_discard; /* dicard section */ - unsigned char is_dynrel; /* section holds dynamic relocations */ - unsigned char is_pltrel; /* section holds PLT relocations */ - unsigned char is_refed; /* should not be gc'ed */ - unsigned char is_need_reloc; /* need apply relocation */ - void *is_data; /* output section data descriptor */ - void *is_ibuf; /* buffer for internal sections */ - void *is_ehframe; /* temp buffer for ehframe section. */ - struct ld_reloc_entry_head *is_reloc; /* list of relocation entries */ - uint64_t is_num_reloc; /* number of reloc entries */ - struct ld_input_section *is_tis; /* relocation target */ - struct ld_input_section *is_ris; /* relocation section */ - struct ld_ehframe_fde_head *is_fde; /* list of FDE */ - STAILQ_ENTRY(ld_input_section) is_next; /* next section */ - STAILQ_ENTRY(ld_input_section) is_gc_next; /* next gc search */ - UT_hash_handle hh; /* hash handle (internal section) */ -}; - -STAILQ_HEAD(ld_input_section_head, ld_input_section); - -enum ld_input_type { - LIT_UNKNOWN, - LIT_RELOCATABLE, - LIT_DSO, -}; - -struct ld_symver_verdef_head; - -struct ld_input { - char *li_name; /* input object name */ - char *li_fullname; /* input object and archive name */ - char *li_soname; /* input object DT_SONAME. */ - Elf *li_elf; /* input object ELF descriptor */ - enum ld_input_type li_type; /* input object kind */ - struct ld_file *li_file; /* containing file */ - size_t li_shnum; /* num of sections in ELF object */ - struct ld_input_section *li_is; /* input section list */ - struct ld_input_section *li_istbl; /* internal section hash table */ - struct ld_archive_member *li_lam; /* archive member */ - struct ld_symbol_head *li_local; /* local symbol list */ - struct ld_symbol **li_symindex; /* symbol index table */ - size_t li_symnum; /* number of symbols */ - char **li_vername; /* version name array */ - size_t li_vername_sz; /* version name array size */ - uint16_t *li_versym; /* symbol version array */ - size_t li_versym_sz; /* symbol version array size */ - int li_dso_refcnt; /* symbol reference count (DSO) */ - struct ld_symver_verdef_head *li_verdef; /* version definition */ - STAILQ_ENTRY(ld_input) li_next; /* next input object */ -}; - -void ld_input_init(struct ld *); -void ld_input_add_symbol(struct ld *, struct ld_input *, - struct ld_symbol *); -struct ld_input_section *ld_input_add_internal_section(struct ld *, - const char *); -struct ld_input_section *ld_input_find_internal_section(struct ld *, - const char *); -void ld_input_alloc_internal_section_buffers(struct ld *); -struct ld_input *ld_input_alloc(struct ld *, struct ld_file *, const char *); -void ld_input_alloc_common_symbol(struct ld *, struct ld_symbol *); -void *ld_input_get_section_rawdata(struct ld *, struct ld_input_section *); -void ld_input_cleanup(struct ld *); -char *ld_input_get_fullname(struct ld *, struct ld_input *); -void ld_input_init_sections(struct ld *, struct ld_input *, Elf *); -void ld_input_link_objects(struct ld *); -void ld_input_load(struct ld *, struct ld_input *); -void ld_input_unload(struct ld *, struct ld_input *); -uint64_t ld_input_reserve_ibuf(struct ld_input_section *, uint64_t); diff --git a/contrib/elftoolchain/ld/ld_layout.c b/contrib/elftoolchain/ld/ld_layout.c deleted file mode 100644 index bb079a6e..00000000 --- a/contrib/elftoolchain/ld/ld_layout.c +++ /dev/null @@ -1,1252 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_dynamic.h" -#include "ld_ehframe.h" -#include "ld_exp.h" -#include "ld_file.h" -#include "ld_script.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_reloc.h" -#include "ld_layout.h" -#include "ld_options.h" -#include "ld_symbols.h" -#include "ld_strtab.h" - -ELFTC_VCSID("$Id$"); - -struct ld_wildcard_match { - char *wm_name; - unsigned wm_no_match; - struct ld_output_section *wm_os; - struct ld_input_section_head *wm_islist; - struct ld_script_sections_output_input *wm_ldoi; - struct ld_wildcard_match *wm_next; - UT_hash_handle hh; -}; - -/* - * Support routines for output section layout. - */ - -static void _calc_offset(struct ld *ld); -static void _calc_output_section_offset(struct ld *ld, - struct ld_output_section *os); -static void _calc_reloc_section_offset(struct ld *ld, struct ld_output *lo); -static void _calc_shdr_offset(struct ld *ld); -static int _check_filename_constraint(struct ld_input *li, - struct ld_script_sections_output_input *ldoi); -static void _insert_input_to_output(struct ld *ld, struct ld_output *lo, - struct ld_output_section *os, struct ld_input_section *is, - struct ld_input_section_head *islist); -static void _layout_input_sections(struct ld *ld, struct ld_input *li); -static void _layout_orphan_section(struct ld *ld, struct ld_input_section *is); -static void _layout_sections(struct ld *ld, struct ld_script_sections *ldss); -static void _parse_output_section_descriptor(struct ld *ld, - struct ld_output_section *os); -static void _prepare_output_section(struct ld *ld, - struct ld_script_sections_output *ldso); -static void _print_section_layout(struct ld *ld, struct ld_output_section *os); -static void _print_wildcard(struct ld_wildcard *lw); -static void _print_wildcard_list(struct ld_script_list *ldl); -static void _record_wildcard_match(struct ld *ld, char *name, - struct ld_output_section *os, struct ld_output_element *oe); -static void _record_wildcard_no_match(struct ld *ld, char *name); -static void _set_output_section_loadable_flag(struct ld_output_section *os); -static int _wildcard_match(struct ld_wildcard *lw, const char *string); -static int _wildcard_list_match(struct ld_script_list *list, - const char *string); - -void -ld_layout_sections(struct ld *ld) -{ - struct ld_output *lo; - struct ld_script *lds; - struct ld_script_cmd *ldc; - int sections_cmd_exist; - - lo = ld->ld_output; - lds = ld->ld_scp; - - sections_cmd_exist = 0; - STAILQ_FOREACH(ldc, &lds->lds_c, ldc_next) { - switch (ldc->ldc_type) { - case LSC_ASSERT: - ld_output_create_element(ld, &lo->lo_oelist, OET_ASSERT, - ldc->ldc_cmd, NULL); - break; - case LSC_ASSIGN: - ld_output_create_element(ld, &lo->lo_oelist, OET_ASSIGN, - ldc->ldc_cmd, NULL); - break; - case LSC_ENTRY: - ld_output_create_element(ld, &lo->lo_oelist, OET_ENTRY, - ldc->ldc_cmd, NULL); - break; - case LSC_SECTIONS: - if (sections_cmd_exist) - ld_fatal(ld, "found multiple SECTIONS commands" - " in the linker script"); - sections_cmd_exist = 1; - _layout_sections(ld, ldc->ldc_cmd); - break; - default: - break; - } - } - - if (!sections_cmd_exist) - _layout_sections(ld, NULL); - - /* Scan and optimize .eh_frame section. */ - ld_ehframe_scan(ld); - - /* Initialise sections for dyanmically linked output object. */ - ld_dynamic_create(ld); - - /* Create ELF sections. */ - ld_output_create_elf_sections(ld); - - /* Calculate section offsets of the output object. */ - _calc_offset(ld); - - /* Calculate symbol values and indices of the output object. */ - ld_symbols_update(ld); - - /* Print out link map if requested. */ - if (ld->ld_print_linkmap) - ld_layout_print_linkmap(ld); -} - -void -ld_layout_print_linkmap(struct ld *ld) -{ - struct ld_input *li; - struct ld_input_section *is; - struct ld_output *lo; - struct ld_output_element *oe; - struct ld_script *lds; - int i; - - lo = ld->ld_output; - assert(lo != NULL); - - /* Print out the list of discarded sections. */ - printf("\nDiscarded input sections:\n\n"); - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - for (i = 0; (size_t) i < li->li_shnum; i++) { - is = &li->li_is[i]; - if (is->is_discard) { - printf(" %-20s ", is->is_name); - if (lo->lo_ec == ELFCLASS32) - printf("0x%08jx ", - (uintmax_t) is->is_addr); - else - printf("0x%016jx ", - (uintmax_t) is->is_addr); - printf("0x%jx ", (uintmax_t) is->is_size); - printf("%s\n", ld_input_get_fullname(ld, li)); - } - } - } - - - lds = ld->ld_scp; - if (lds == NULL) - return; - - /* TODO: Dump memory configuration */ - - printf("\nLinker script and memory map\n\n"); - - /* TODO: Dump loaded objects. */ - - STAILQ_FOREACH(oe, &lo->lo_oelist, oe_next) { - - switch (oe->oe_type) { - case OET_ASSERT: - /* TODO */ - break; - case OET_ASSIGN: - ld_script_assign_dump(ld, oe->oe_entry); - break; - case OET_ENTRY: - /* TODO */ - break; - case OET_OUTPUT_SECTION: - _print_section_layout(ld, oe->oe_entry); - break; - default: - break; - } - } -} - -static void -_print_section_layout(struct ld *ld, struct ld_output_section *os) -{ - struct ld_input_section *is; - struct ld_input_section_head *islist; - struct ld_output *lo; - struct ld_output_element *oe; - struct ld_script_sections_output_input *ldoi; - - lo = ld->ld_output; - - if (os->os_empty) - printf("\n%s\n", os->os_name); - else { - printf("\n%-15s", os->os_name); - if (lo->lo_ec == ELFCLASS32) - printf(" 0x%08jx", (uintmax_t) os->os_addr); - else - printf(" 0x%016jx", (uintmax_t) os->os_addr); - printf(" %#10jx\n", (uintmax_t) os->os_size); - } - - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - switch (oe->oe_type) { - case OET_ASSIGN: - ld_script_assign_dump(ld, oe->oe_entry); - break; - case OET_INPUT_SECTION_LIST: - /* - * Print out wildcard patterns and input sections - * matched by these patterns. - */ - ldoi = oe->oe_entry; - if (ldoi == NULL) - break; - putchar(' '); - if (ldoi->ldoi_ar) { - _print_wildcard(ldoi->ldoi_ar); - putchar(':'); - } - _print_wildcard(ldoi->ldoi_file); - putchar('('); - if (ldoi->ldoi_exclude) { - printf("(EXCLUDE_FILE("); - _print_wildcard_list(ldoi->ldoi_exclude); - putchar(')'); - putchar(' '); - } - _print_wildcard_list(ldoi->ldoi_sec); - putchar(')'); - putchar('\n'); - if ((islist = oe->oe_islist) == NULL) - break; - STAILQ_FOREACH(is, islist, is_next) { - if (!strcmp(is->is_name, "COMMON") && - is->is_size == 0) - continue; - printf(" %-14s", is->is_name); - if (lo->lo_ec == ELFCLASS32) - printf(" 0x%08jx", (uintmax_t) - (os->os_addr + is->is_reloff)); - else - printf(" 0x%016jx", (uintmax_t) - (os->os_addr + is->is_reloff)); - if (is->is_size == 0) - printf(" %10s", "0x0"); - else - printf(" %#10jx", (uintmax_t) - is->is_size); - printf(" %s\n", ld_input_get_fullname(ld, - is->is_input)); - } - break; - default: - break; - } - } -} - -static void -_print_wildcard(struct ld_wildcard *lw) -{ - - switch (lw->lw_sort) { - case LWS_NONE: - printf("%s", lw->lw_name); - break; - case LWS_NAME: - printf("SORT_BY_NAME(%s)", lw->lw_name); - break; - case LWS_ALIGN: - printf("SORT_BY_ALIGNMENT(%s)", lw->lw_name); - break; - case LWS_NAME_ALIGN: - printf("SORT_BY_NAME(SORT_BY_ALIGNMENT(%s))", lw->lw_name); - break; - case LWS_ALIGN_NAME: - printf("SORT_BY_ALIGNMENT(SORT_BY_NAME(%s))", lw->lw_name); - break; - default: - break; - } -} - -static void -_print_wildcard_list(struct ld_script_list *ldl) -{ - - _print_wildcard(ldl->ldl_entry); - if (ldl->ldl_next != NULL) { - putchar(' '); - _print_wildcard_list(ldl->ldl_next); - } -} - -off_t -ld_layout_calc_header_size(struct ld *ld) -{ - struct ld_script_phdr *ldsp; - struct ld_output *lo; - struct ld_output_section *os; - off_t header_size; - unsigned ec, w, num_phdrs; - int new, tls; - - lo = ld->ld_output; - assert(lo != NULL); - - header_size = 0; - - ec = elftc_bfd_target_class(ld->ld_otgt); - - if (ec == ELFCLASS32) - header_size += sizeof(Elf32_Ehdr); - else - header_size += sizeof(Elf64_Ehdr); - - /* Do not generate segments for relocatable output. */ - if (ld->ld_reloc) { - lo->lo_phdr_num = 0; - return (header_size); - } - - if (!STAILQ_EMPTY(&ld->ld_scp->lds_p)) { - num_phdrs = 0; - STAILQ_FOREACH(ldsp, &ld->ld_scp->lds_p, ldsp_next) - num_phdrs++; - } else { - if (lo->lo_phdr_num > 0) - num_phdrs = lo->lo_phdr_num; - else { - num_phdrs = 0; - new = 1; - tls = 0; - w = 0; - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_empty) - continue; - - if ((os->os_flags & SHF_ALLOC) == 0) { - new = 1; - continue; - } - - if ((os->os_flags & SHF_WRITE) != w || new) { - new = 0; - num_phdrs++; - w = os->os_flags & SHF_WRITE; - } - - if ((os->os_flags & SHF_TLS) != 0 && !tls) { - tls = 1; - num_phdrs++; - } - } - - /* - * PT_PHDR and PT_DYNAMIC for dynamic linking. But - * do not create PT_PHDR for shared libraries. - */ - if (lo->lo_dso_needed > 0) { - num_phdrs++; - if (!ld->ld_dso) - num_phdrs++; - } - - if (lo->lo_interp != NULL) - num_phdrs++; - - if (lo->lo_phdr_note) - num_phdrs++; - - if (ld->ld_ehframe_hdr) - num_phdrs++; - - if (ld->ld_gen_gnustack) - num_phdrs++; - } - } - - if (ec == ELFCLASS32) - header_size += num_phdrs * sizeof(Elf32_Phdr); - else - header_size += num_phdrs * sizeof(Elf64_Phdr); - - lo->lo_phdr_num = num_phdrs; - - return (header_size); -} - -static void -_layout_sections(struct ld *ld, struct ld_script_sections *ldss) -{ - struct ld_input *li; - struct ld_output *lo; - struct ld_script_cmd *ldc; - - lo = ld->ld_output; - - /* - * Process commands inside the SECTIONS command and create - * output elements. - */ - STAILQ_FOREACH(ldc, &ldss->ldss_c, ldc_next) { - switch (ldc->ldc_type) { - case LSC_ASSERT: - ld_output_create_element(ld, &lo->lo_oelist, - OET_ASSIGN, ldc->ldc_cmd, NULL); - case LSC_ASSIGN: - ld_output_create_element(ld, &lo->lo_oelist, - OET_ASSIGN, ldc->ldc_cmd, NULL); - break; - case LSC_ENTRY: - ld_output_create_element(ld, &lo->lo_oelist, - OET_ENTRY, ldc->ldc_cmd, NULL); - break; - case LSC_SECTIONS_OUTPUT: - _prepare_output_section(ld, ldc->ldc_cmd); - break; - case LSC_SECTIONS_OVERLAY: - /* TODO */ - break; - default: - break; - } - } - - /* Lay out each input object. */ - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - - /* Only lay out relocatable input objects. */ - if (li->li_type != LIT_RELOCATABLE) - continue; - - /* Lay out sections for the input object. */ - _layout_input_sections(ld, li); - } -} - -static void -_prepare_output_section(struct ld *ld, struct ld_script_sections_output *ldso) -{ - struct ld_script_cmd *ldc; - struct ld_input_section_head *islist; - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_element *oe; - - lo = ld->ld_output; - - HASH_FIND_STR(lo->lo_ostbl, ldso->ldso_name, os); - if (os != NULL) - return; - - os = ld_output_alloc_section(ld, ldso->ldso_name, NULL, NULL); - os->os_ldso = ldso; - _set_output_section_loadable_flag(os); - - STAILQ_FOREACH(ldc, &ldso->ldso_c, ldc_next) { - switch (ldc->ldc_type) { - case LSC_ASSERT: - oe = ld_output_create_section_element(ld, os, - OET_ASSERT, ldc->ldc_cmd, NULL); - break; - case LSC_ASSIGN: - oe = ld_output_create_section_element(ld, os, - OET_ASSIGN, ldc->ldc_cmd, NULL); - break; - case LSC_SECTIONS_OUTPUT_DATA: - oe = ld_output_create_section_element(ld, os, - OET_DATA, ldc->ldc_cmd, NULL); - break; - case LSC_SECTIONS_OUTPUT_INPUT: - islist = calloc(1, sizeof(*islist)); - if (islist == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(islist); - oe = ld_output_create_section_element(ld, os, - OET_INPUT_SECTION_LIST, ldc->ldc_cmd, NULL); - oe->oe_islist = islist; - break; - case LSC_SECTIONS_OUTPUT_KEYWORD: - ld_output_create_section_element(ld, os, - OET_KEYWORD, ldc->ldc_cmd, NULL); - break; - default: - ld_fatal(ld, "internal: invalid output section " - "command: %d", ldc->ldc_type); - } - } -} - -static int -_wildcard_match(struct ld_wildcard *lw, const char *string) -{ - - return (fnmatch(lw->lw_name, string, 0) == 0); -} - -static int -_wildcard_list_match(struct ld_script_list *list, const char *string) -{ - struct ld_script_list *ldl; - - for (ldl = list; ldl != NULL; ldl = ldl->ldl_next) - if (_wildcard_match(ldl->ldl_entry, string)) - return (1); - - return (0); -} - -static void -_set_output_section_loadable_flag(struct ld_output_section *os) -{ - struct ld_script_sections_output *ldso; - struct ld_exp *le; - - if ((ldso = os->os_ldso) == NULL) - return; - - if (ldso->ldso_vma == NULL) - os->os_flags |= SHF_ALLOC; - else { - le = ldso->ldso_vma; - if (le->le_op != LEOP_CONSTANT || le->le_val != 0) - os->os_flags |= SHF_ALLOC; - } - - if (ldso->ldso_type != NULL && strcmp(ldso->ldso_type, "NOLOAD") == 0) - os->os_flags &= ~SHF_ALLOC; -} - -static int -_check_filename_constraint(struct ld_input *li, - struct ld_script_sections_output_input *ldoi) -{ - struct ld_file *lf; - - /* Internal sections always suffice any constraint. */ - if (li->li_name == NULL) - return (1); - - lf = li->li_file; - - if (ldoi->ldoi_ar != NULL && li->li_lam != NULL && - !_wildcard_match(ldoi->ldoi_ar, lf->lf_name)) - return (0); - - assert(ldoi->ldoi_file != NULL); - if (!_wildcard_match(ldoi->ldoi_file, li->li_name)) - return (0); - - if (ldoi->ldoi_exclude != NULL && - _wildcard_list_match(ldoi->ldoi_exclude, li->li_name)) - return (0); - - return (1); -} - -static void -_record_wildcard_match(struct ld *ld, char *name, struct ld_output_section *os, - struct ld_output_element *oe) -{ - struct ld_wildcard_match *wm, *_wm; - - assert(name != NULL && os != NULL); - assert(oe != NULL && oe->oe_type == OET_INPUT_SECTION_LIST); - - HASH_FIND_STR(ld->ld_wm, name, wm); - - /* Create a new wildcard match. */ - if (wm == NULL) { - if ((wm = calloc(1, sizeof(*wm))) == NULL) - ld_fatal_std(ld, "calloc"); - if ((wm->wm_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - wm->wm_os = os; - wm->wm_islist = oe->oe_islist; - wm->wm_ldoi = oe->oe_entry; - wm->wm_next = NULL; - HASH_ADD_KEYPTR(hh, ld->ld_wm, wm->wm_name, - strlen(wm->wm_name), wm); - return; - } - - /* - * Wildcard match already exist, compare the "ldoi" to check - * if this is a new wildcard match with a different file/archive - * constraint. If so, Insert it to the tail of the wildcard match - * list. - */ - do { - if (oe->oe_entry == (void *) wm->wm_ldoi) - return; - } while (wm->wm_next != NULL && (wm = wm->wm_next)); - - if ((_wm = calloc(1, sizeof(*_wm))) == NULL) - ld_fatal_std(ld, "calloc"); - _wm->wm_os = os; - _wm->wm_islist = oe->oe_islist; - _wm->wm_ldoi = oe->oe_entry; - _wm->wm_next = NULL; - wm->wm_next = _wm; -} - -static void -_record_wildcard_no_match(struct ld *ld, char *name) -{ - struct ld_wildcard_match *wm; - - assert(name != NULL); - - HASH_FIND_STR(ld->ld_wm, name, wm); - - /* - * Unfortunately this section is an orphan section because - * it doesn't satisfy the file/archive constraint but does - * match certain section name wildcard. We can not record this. - */ - if (wm != NULL) - return; - - /* Create the wildcard "no-match" for the orphan. */ - if ((wm = calloc(1, sizeof(*wm))) == NULL) - ld_fatal_std(ld, "calloc"); - if ((wm->wm_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - wm->wm_no_match = 1; -} - -static void -_layout_input_sections(struct ld *ld, struct ld_input *li) -{ - struct ld_input_section *is; - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_element *oe; - struct ld_wildcard_match *wm; - struct ld_script_sections_output_input *ldoi; - int i; - - lo = ld->ld_output; - - for (i = 0; (size_t) i < li->li_shnum; i++) { - - is = &li->li_is[i]; - - if (is->is_type == SHT_NULL) - continue; - - /* Ignore discarded section groups. */ - if (is->is_discard) - continue; - - if (strcmp(is->is_name, ".shstrtab") == 0 || - strcmp(is->is_name, ".symtab") == 0 || - strcmp(is->is_name, ".strtab") == 0) - continue; - - /* Search the wildcard match table for a quick match. */ - HASH_FIND_STR(ld->ld_wm, is->is_name, wm); - if (wm != NULL) { - if (wm->wm_no_match) { - /* - * We found a "no-match". This is certainly - * an orphan section. - */ - _layout_orphan_section(ld, is); - continue; - } - } else - goto full_search; - - /* There is a match! Verify file/archive constraint. */ - while (wm != NULL) { - ldoi = wm->wm_ldoi; - - if (!_check_filename_constraint(li, ldoi)) - goto next_wm; - - if (strcmp(wm->wm_os->os_name, "/DISCARD/") == 0) { - is->is_discard = 1; - break; - } - - /* - * File/archive constraint satisfied. Insert the - * this section to the input section list of the - * output section element. - */ - _insert_input_to_output(ld, lo, wm->wm_os, is, - wm->wm_islist); - break; - - next_wm: - wm = wm->wm_next; - } - - if (wm != NULL) - continue; - - full_search: - - /* - * Otherwise, we have to do a full search for the section - * name in all the wildcard list. - */ - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - - if (oe->oe_type != OET_INPUT_SECTION_LIST) - continue; - - /* - * Skip output sections created for orphan - * input sections. They don't have wildcard - * list. - */ - if ((ldoi = oe->oe_entry) == NULL) - continue; - - /* Check if the section name match wildcard */ - assert(ldoi->ldoi_sec != NULL); - if (!_wildcard_list_match(ldoi->ldoi_sec, - is->is_name)) - continue; - - /* - * Record this wildcard match to speed up - * wildcard match for sections with the same - * name. - */ - _record_wildcard_match(ld, is->is_name, os, - oe); - - /* Check file/archive constraint. */ - if (!_check_filename_constraint(li, ldoi)) { - continue; - } - - /* Check if we should discard the section. */ - if (strcmp(os->os_name, "/DISCARD/") == 0) { - is->is_discard = 1; - goto next_input_section; - } - - /* Match! Insert to the input section list. */ - _insert_input_to_output(ld, lo, os, is, - oe->oe_islist); - goto next_input_section; - } - } - - /* - * We found an orphan section. Record this so we can quickly - * identify other orphan sections with the same name. - */ - _record_wildcard_no_match(ld, is->is_name); - - /* Lay out the orphan section. */ - _layout_orphan_section(ld, is); - - next_input_section: - ; - } -} - -static void -_layout_orphan_section(struct ld *ld, struct ld_input_section *is) -{ - struct ld_input_section_head *islist; - struct ld_output *lo; - struct ld_output_element *oe; - struct ld_output_section *os, *_os; - - /* - * Layout the input sections that are not listed in the output - * section descriptor in the linker script. - */ - - lo = ld->ld_output; - - if (is->is_discard) - return; - - if (strcmp(is->is_name, ".shstrtab") == 0 || - strcmp(is->is_name, ".symtab") == 0 || - strcmp(is->is_name, ".strtab") == 0) - return; - - if ((is->is_type == SHT_REL || is->is_type == SHT_RELA) && - !is->is_dynrel) - return; - - /* - * When garbage collection is enabled (option `-gc-sections' - * specified), remove sections that are not used. - */ - if (ld->ld_gc) { - if ((is->is_flags & SHF_ALLOC) != 0 && !is->is_refed) { - if (ld->ld_gc_print) - ld_info(ld, "Remove unused ection `%s' in " - "file %s", is->is_name, - ld_input_get_fullname(ld, is->is_input)); - return; - } - } - - HASH_FIND_STR(lo->lo_ostbl, is->is_name, os); - if (os != NULL) { - oe = STAILQ_FIRST(&os->os_e); - assert(oe != NULL && - oe->oe_type == OET_INPUT_SECTION_LIST); - _insert_input_to_output(ld, lo, os, is, oe->oe_islist); - return; - } - - /* - * Create a new output secton and put it in a proper place, - * based on the section flag. - */ - _os = ld_layout_insert_output_section(ld, is->is_name, - is->is_flags); - - if ((islist = calloc(1, sizeof(*islist))) == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(islist); - - oe = ld_output_create_section_element(ld, _os, OET_INPUT_SECTION_LIST, - NULL, NULL); - oe->oe_islist = islist; - _insert_input_to_output(ld, lo, _os, is, oe->oe_islist); -} - -struct ld_output_section * -ld_layout_insert_output_section(struct ld *ld, const char *name, - uint64_t flags) -{ - struct ld_output *lo; - struct ld_output_section *os, *_os; - - lo = ld->ld_output; - assert(lo != NULL); - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if ((os->os_flags & SHF_ALLOC) != (flags & SHF_ALLOC)) - continue; - - if (os->os_flags == flags) { - _os = STAILQ_NEXT(os, os_next); - if (_os == NULL || _os->os_flags != flags) - break; - } - - _os = STAILQ_NEXT(os, os_next); - if (_os != NULL && - (_os->os_flags & SHF_ALLOC) != (flags & SHF_ALLOC)) - break; - } - - _os = ld_output_alloc_section(ld, name, os, NULL); - _os->os_flags |= flags & SHF_ALLOC; - - return (_os); -} - -static void -_insert_input_to_output(struct ld *ld, struct ld_output *lo, - struct ld_output_section *os, struct ld_input_section *is, - struct ld_input_section_head *islist) -{ - struct ld_output_section *_os; - char *name; - int len; - - /* - * Relocation sections is handled separately. - */ - if ((is->is_type == SHT_REL || is->is_type == SHT_RELA) && - !is->is_dynrel) - return; - - os->os_empty = 0; - - os->os_flags |= is->is_flags & (SHF_EXECINSTR | SHF_WRITE | SHF_TLS); - os->os_dynrel |= is->is_dynrel; - os->os_pltrel |= is->is_pltrel; - - if (!is->is_dynrel && !is->is_pltrel && is->is_type != SHT_NOBITS && - is->is_size != 0) - is->is_need_reloc = 1; - - if (is->is_align > os->os_align) - os->os_align = is->is_align; - - /* - * The entsize of the output section is determined by the - * input sections it contains. If all the input sections has - * the same entsize, the output section will also have that - * entsize. If any input section has a different entsize, - * the entsize for output section is set to 0, meaning that - * it has variable entry sizes. - */ - if (!os->os_entsize_set) { - os->os_entsize = is->is_entsize; - os->os_entsize_set = 1; - } else if (os->os_entsize != is->is_entsize) - os->os_entsize = 0; - - if (os->os_type == SHT_NULL) - os->os_type = is->is_type; - if (is->is_type == SHT_NOTE) - lo->lo_phdr_note = 1; - - is->is_output = os; - - STAILQ_INSERT_TAIL(islist, is, is_next); - - /* - * Lay out relocation section for this input section if the linker - * creates relocatable output object or if -emit-relocs option is - * sepcified. - */ - if ((ld->ld_reloc || ld->ld_emit_reloc) && is->is_ris != NULL && - is->is_ris->is_num_reloc > 0) { - if (os->os_r == NULL) { - /* - * Create relocation section for output sections. - */ - if (ld->ld_arch->reloc_is_rela) { - len = strlen(os->os_name) + 6; - if ((name = malloc(len)) == NULL) - ld_fatal_std(ld, "malloc"); - snprintf(name, len, ".rela%s", os->os_name); - } else { - len = strlen(os->os_name) + 5; - if ((name = malloc(len)) == NULL) - ld_fatal_std(ld, "malloc"); - snprintf(name, len, ".rel%s", os->os_name); - } - _os = ld_output_alloc_section(ld, name, NULL, os); - _os->os_rel = 1; - - /* - * Fill in entry size, alignment and type for output - * relocation sections. - */ - _os->os_entsize = ld->ld_arch->reloc_entsize; - _os->os_type = ld->ld_arch->reloc_is_rela ? SHT_RELA : - SHT_REL; - _os->os_align = ld->ld_arch->reloc_is_64bit ? 8 : 4; - - /* Setup sh_link and sh_info. */ - if ((_os->os_link = strdup(".symtab")) == NULL) - ld_fatal_std(ld, "strdup"); - _os->os_info = os; - - /* Relocation sections are not allocated in memory. */ - _os->os_addr = 0; - } else - _os = os->os_r; - - _os->os_size += is->is_ris->is_num_reloc * _os->os_entsize; - } - -} - -static void -_parse_output_section_descriptor(struct ld *ld, struct ld_output_section *os) -{ - struct ld_script_sections_output *ldso; - - if ((ldso = os->os_ldso) == NULL) - return; - - if (ldso->ldso_vma != NULL) - os->os_addr = ld_exp_eval(ld, ldso->ldso_vma); - - if (ldso->ldso_lma != NULL) - os->os_lma = ld_exp_eval(ld, ldso->ldso_lma); - - if (ldso->ldso_align != NULL) - os->os_align = ld_exp_eval(ld, ldso->ldso_align); - - /* TODO: handle other output section parameters. */ -} - -static void -_calc_offset(struct ld *ld) -{ - struct ld_state *ls; - struct ld_output *lo; - struct ld_output_element *oe; - - ls = &ld->ld_state; - lo = ld->ld_output; - ls->ls_loc_counter = 0; - ls->ls_offset = ld_layout_calc_header_size(ld); - ls->ls_first_output_sec = 1; - - STAILQ_FOREACH(oe, &lo->lo_oelist, oe_next) { - switch (oe->oe_type) { - case OET_ASSERT: - /* TODO */ - break; - case OET_ASSIGN: - ld_script_process_assign(ld, oe->oe_entry); - break; - case OET_ENTRY: - ld_script_process_entry(ld, oe->oe_entry); - break; - case OET_OUTPUT_SECTION: - _parse_output_section_descriptor(ld, oe->oe_entry); - _calc_output_section_offset(ld, oe->oe_entry); - break; - default: - break; - } - } - - /* Emit .note.GNU-stack section for reloctable output object. */ - if (ld->ld_gen_gnustack && ld->ld_reloc) - ld_output_emit_gnu_stack_section(ld); - - /* Lay out section header table after normal input sections. */ - _calc_shdr_offset(ld); - - /* Create .shstrtab section and put it after section header table. */ - ld_output_create_string_table_section(ld, ".shstrtab", - ld->ld_shstrtab, NULL); - - /* Lay out relocation sections. */ - if (ld->ld_reloc || ld->ld_emit_reloc) - _calc_reloc_section_offset(ld, lo); -} - -static void -_calc_output_section_offset(struct ld *ld, struct ld_output_section *os) -{ - struct ld_state *ls; - struct ld_output_element *oe; - struct ld_output_data_buffer *odb; - struct ld_input_section *is; - struct ld_input_section_head *islist; - struct ld_symbol_table *sy; - struct ld_strtab *st; - uint64_t addr; - - /* Relocation sections are handled separately. */ - if (os->os_rel) - return; - - ls = &ld->ld_state; - - /* - * Position independent output object should have VMA from 0. - * So if we are building a DSO or PIE, and this output section is - * the first one, we should set current VMA to SIZEOF_HEADERS - * and ignore all the previous assignments to the location counter. - */ - if ((ld->ld_dso || ld->ld_pie) && ls->ls_first_output_sec) { - ls->ls_loc_counter = ld_layout_calc_header_size(ld); - if (!os->os_empty) - ls->ls_first_output_sec = 0; - } - - /* - * Location counter stores the end VMA offset of the previous output - * section. We use that value as the base VMA offset for this output - * section. - */ - addr = ls->ls_loc_counter; - - /* - * Location counter when refered inside an output section descriptor, - * is an offset relative to the start of the section. - */ - ls->ls_loc_counter = 0; - - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - switch (oe->oe_type) { - case OET_ASSERT: - /* TODO */ - break; - case OET_ASSIGN: - ld_script_process_assign(ld, oe->oe_entry); - break; - case OET_DATA: - /* TODO */ - break; - case OET_DATA_BUFFER: - odb = oe->oe_entry; - odb->odb_off = roundup(ls->ls_loc_counter, - odb->odb_align); - ls->ls_loc_counter = odb->odb_off + odb->odb_size; - break; - case OET_ENTRY: - ld_script_process_entry(ld, oe->oe_entry); - break; - case OET_INPUT_SECTION_LIST: - islist = oe->oe_islist; - STAILQ_FOREACH(is, islist, is_next) { - if (is->is_size == 0) - continue; - is->is_reloff = roundup(ls->ls_loc_counter, - is->is_align); -#if 0 - printf("\t%s(%s): %#jx,%#jx(%#jx)\n", - is->is_input->li_name, - is->is_name, is->is_reloff, - is->is_size, is->is_align); -#endif - ls->ls_loc_counter = is->is_reloff + - is->is_size; - } - break; - case OET_KEYWORD: - /* TODO */ - break; - case OET_SYMTAB: - assert(ls->ls_loc_counter == 0); - sy = oe->oe_entry; - ls->ls_loc_counter = sy->sy_size * os->os_entsize; - break; - case OET_STRTAB: - assert(ls->ls_loc_counter == 0); - st = oe->oe_entry; - ls->ls_loc_counter = ld_strtab_getsize(st); - break; - default: - break; - } - } - - /* - * Properly align section vma and offset to the required section - * alignment. - */ - - if ((os->os_flags & SHF_ALLOC) != 0 && !ld->ld_reloc) { - if (os->os_ldso == NULL || os->os_ldso->ldso_vma == NULL) - os->os_addr = roundup(addr, os->os_align); - } else - os->os_addr = 0; - - os->os_off = roundup(ls->ls_offset, os->os_align); - os->os_size = ls->ls_loc_counter; - -#if 0 - printf("layout output section %s: (off:%#jx,size:%#jx) " - "vma:%#jx,align:%#jx\n", os->os_name, os->os_off, os->os_size, - os->os_addr, os->os_align); -#endif - - /* - * Calculate the file offset for the next output section. Note that - * only sections with type other than SHT_NOBITS consume file space. - */ - ls->ls_offset = os->os_off; - if (os->os_type != SHT_NOBITS) - ls->ls_offset += os->os_size; - - /* Reset location counter to the current VMA. */ - if (os->os_flags & SHF_ALLOC) { - ls->ls_loc_counter = os->os_addr; - /* - * Do not allocate VMA for TLS .tbss sections. TLS sections - * are only used as an initialization image and .tbss section - * will not be allocated in memory. - */ - if (os->os_type != SHT_NOBITS || (os->os_flags & SHF_TLS) == 0) - ls->ls_loc_counter += os->os_size; - } -} - -static void -_calc_reloc_section_offset(struct ld *ld, struct ld_output *lo) -{ - struct ld_state *ls; - struct ld_output_section *os, *_os; - - ls = &ld->ld_state; - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_r != NULL) { - _os = os->os_r; - _os->os_off = roundup(ls->ls_offset, _os->os_align); - ls->ls_offset = _os->os_off + _os->os_size; - } - } -} - -static void -_calc_shdr_offset(struct ld *ld) -{ - struct ld_state *ls; - struct ld_output *lo; - struct ld_output_section *os; - uint64_t shoff; - int n; - - ls = &ld->ld_state; - lo = ld->ld_output; - - if (lo->lo_ec == ELFCLASS32) - shoff = roundup(ls->ls_offset, 4); - else - shoff = roundup(ls->ls_offset, 8); - - ls->ls_offset = shoff; - - n = 0; - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_scn != NULL) - n++; - } - - /* TODO: n + 2 if ld(1) will not create symbol table. */ - ls->ls_offset += gelf_fsize(lo->lo_elf, ELF_T_SHDR, n + 4, EV_CURRENT); - - lo->lo_shoff = shoff; -} diff --git a/contrib/elftoolchain/ld/ld_layout.h b/contrib/elftoolchain/ld/ld_layout.h deleted file mode 100644 index d1093cf1..00000000 --- a/contrib/elftoolchain/ld/ld_layout.h +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * Copyright (c) 2011,2012 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -void ld_layout_sections(struct ld *); -off_t ld_layout_calc_header_size(struct ld *); -struct ld_output_section *ld_layout_insert_output_section(struct ld *, - const char *, uint64_t); -void ld_layout_print_linkmap(struct ld *); diff --git a/contrib/elftoolchain/ld/ld_main.c b/contrib/elftoolchain/ld/ld_main.c deleted file mode 100644 index c9fd098d..00000000 --- a/contrib/elftoolchain/ld/ld_main.c +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_ehframe.h" -#include "ld_options.h" -#include "ld_reloc.h" -#include "ld_script.h" -#include "ld_file.h" -#include "ld_input.h" -#include "ld_layout.h" -#include "ld_output.h" -#include "ld_path.h" -#include "ld_symbols.h" - -ELFTC_VCSID("$Id$"); - -static struct ld _ld; -struct ld* ld = &_ld; - -static void -_init(void) -{ - - if ((ld->ld_progname = ELFTC_GETPROGNAME()) == NULL) - ld->ld_progname = "ld"; - - /* Initialise libelf. */ - if (elf_version(EV_CURRENT) == EV_NONE) - ld_fatal(ld, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - /* Initialise internal data structure. */ - TAILQ_INIT(&ld->ld_lflist); - STAILQ_INIT(&ld->ld_lilist); - STAILQ_INIT(&ld->ld_state.ls_lplist); - STAILQ_INIT(&ld->ld_state.ls_rplist); - STAILQ_INIT(&ld->ld_state.ls_rllist); -} - -static void -_cleanup(void) -{ - - ld_script_cleanup(ld); - ld_symbols_cleanup(ld); - ld_path_cleanup(ld); - ld_input_cleanup(ld); - ld_file_cleanup(ld); -} - -int -main(int argc, char **argv) -{ - struct ld_state *ls; - - _init(); - - ls = &ld->ld_state; - - ld->ld_progname = basename(argv[0]); - - ld_arch_init(ld); - -restart: - - /* The linker generate an executable by default */ - ld->ld_exec = 1; - - ld_script_init(ld); - - ld_options_parse(ld, argc, argv); - - ld_output_early_init(ld); - - ls->ls_arch_conflict = 0; - ls->ls_first_elf_object = 1; - - ld_input_init(ld); - - ld_symbols_resolve(ld); - - if (ls->ls_arch_conflict) { - _cleanup(); - ls->ls_rerun = 1; - goto restart; - } - - ld_reloc_load(ld); - - /* - * Perform section garbage collection if command line option - * -gc-sections is specified. Perform deferred relocation scan - * after garbage sections are found. - */ - if (ld->ld_gc) { - ld_reloc_gc_sections(ld); - ld_reloc_deferred_scan(ld); - } - - /* - * Search for undefined symbols and allocate space for common - * symbols. Copy relevant symbols to the dynamic symbol table - * if the linker is performing a dyanmic linking. - */ - ld_symbols_scan(ld); - - /* Create .eh_frame_hdr section. */ - if (ld->ld_ehframe_hdr) - ld_ehframe_create_hdr(ld); - - ld_output_init(ld); - - ld_layout_sections(ld); - - ld_output_create(ld); - - _cleanup(); - - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/ld/ld_options.c b/contrib/elftoolchain/ld/ld_options.c deleted file mode 100644 index ee9dae5c..00000000 --- a/contrib/elftoolchain/ld/ld_options.c +++ /dev/null @@ -1,507 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_file.h" -#include "ld_path.h" -#include "ld_script.h" -#include "ld_symbols.h" -#include "ld_options.h" -#include "ld_output.h" - -ELFTC_VCSID("$Id$"); - -/* - * Support routines for parsing command line options. - */ - -static const char *ld_short_opts = - "b:c:de:Ef:Fgh:iI:l:L:m:MnNo:O::qrR:sStT:xXyY:u:vV()"; - -static struct ld_option ld_opts[] = { - {"aarchive", KEY_STATIC, ONE_DASH, NO_ARG}, - {"adefault", KEY_DYNAMIC, ONE_DASH, NO_ARG}, - {"ashared", KEY_DYNAMIC, ONE_DASH, NO_ARG}, - {"accept-unknown-input-arch", KEY_ACCEPT_UNKNOWN, ANY_DASH, NO_ARG}, - {"allow-multiple-definition", KEY_Z_MULDEFS, ANY_DASH, NO_ARG}, - {"allow-shlib-undefined", KEY_ALLOW_SHLIB_UNDEF, ANY_DASH, NO_ARG}, - {"assert", KEY_ASSERT, ANY_DASH, NO_ARG}, - {"as-needed", KEY_AS_NEEDED, ANY_DASH, NO_ARG}, - {"auxiliary", 'f', ANY_DASH, REQ_ARG}, - {"build-id", KEY_BUILD_ID, ANY_DASH, OPT_ARG}, - {"call_shared", KEY_DYNAMIC, ONE_DASH, NO_ARG}, - {"check-sections", KEY_CHECK_SECTIONS, ANY_DASH, NO_ARG}, - {"cref", KEY_CREF, ANY_DASH, NO_ARG}, - {"defsym", KEY_DEFSYM, ANY_DASH, REQ_ARG}, - {"demangle", KEY_DEMANGLE, ANY_DASH, OPT_ARG}, - {"dc", 'd', ONE_DASH, NO_ARG}, - {"dp", 'd', ONE_DASH, NO_ARG}, - {"disable-new-dtags", KEY_DISABLE_NEW_DTAGS, ANY_DASH, NO_ARG}, - {"discard-all", 'x', ANY_DASH, NO_ARG}, - {"discard-locals", 'X', ANY_DASH, NO_ARG}, - {"dn", KEY_STATIC, ONE_DASH, NO_ARG}, - {"dy", KEY_DYNAMIC, ONE_DASH, NO_ARG}, - {"dynamic-linker", 'I', ANY_DASH, REQ_ARG}, - {"end-group", ')', ANY_DASH, NO_ARG}, - {"entry", 'e', ANY_DASH, REQ_ARG}, - {"error-unresolved-symbols", KEY_ERR_UNRESOLVE_SYM, ANY_DASH, NO_ARG}, - {"export-dynamic", 'E', ANY_DASH, NO_ARG}, - {"eh-frame-hdr", KEY_EH_FRAME_HDR, ANY_DASH, NO_ARG}, - {"emit-relocs", 'q', ANY_DASH, NO_ARG}, - {"emulation", 'm', ANY_DASH, REQ_ARG}, - {"enable-new-dtags", KEY_ENABLE_NEW_DTAGS, ANY_DASH, NO_ARG}, - {"fatal-warnings", KEY_FATAL_WARNINGS, ANY_DASH, NO_ARG}, - {"filter", 'F', ANY_DASH, NO_ARG}, - {"fini", KEY_FINI, ANY_DASH, NO_ARG}, - {"format", 'b', ANY_DASH, REQ_ARG}, - {"gc-sections", KEY_GC_SECTIONS, ANY_DASH, NO_ARG}, - {"hash-style", KEY_HASH_STYLE, ANY_DASH, REQ_ARG}, - {"help", KEY_HELP, ANY_DASH, NO_ARG}, - {"init", KEY_INIT, ANY_DASH, REQ_ARG}, - {"just-symbols", 'R', ANY_DASH, REQ_ARG}, - {"library", 'l', ANY_DASH, REQ_ARG}, - {"library-path", 'L', ANY_DASH, REQ_ARG}, - {"mri-script", 'c', ANY_DASH, REQ_ARG}, - {"nmagic", 'n', ANY_DASH, NO_ARG}, - {"nostdlib", KEY_NO_STDLIB, ONE_DASH, NO_ARG}, - {"no-accept-unknown-input-arch", KEY_NO_UNKNOWN, ANY_DASH, NO_ARG}, - {"no-allow-shlib-undefined", KEY_NO_SHLIB_UNDEF, ANY_DASH, NO_ARG}, - {"no-as-needed", KEY_NO_AS_NEEDED, ANY_DASH, NO_ARG}, - {"no-check-sections", KEY_NO_CHECK_SECTIONS, ANY_DASH, NO_ARG}, - {"no-define-common", KEY_NO_DEFINE_COMMON, ANY_DASH, NO_ARG}, - {"no-demangle", KEY_NO_DEMANGLE, ANY_DASH, OPT_ARG}, - {"no-gc-sections", KEY_NO_GC_SECTIONS, ANY_DASH, NO_ARG}, - {"no-keep-memory", KEY_NO_KEEP_MEMORY, ANY_DASH, NO_ARG}, - {"no-omagic", KEY_NO_OMAGIC, ANY_DASH, NO_ARG}, - {"no-print-gc-sections", KEY_NO_PRINT_GC_SECTIONS, ANY_DASH, NO_ARG}, - {"no-undefined", KEY_Z_DEFS, ANY_DASH, NO_ARG}, - {"no-undefined-version", KEY_NO_UNDEF_VERSION, ANY_DASH, NO_ARG}, - {"no-whole-archive", KEY_NO_WHOLE_ARCHIVE, ANY_DASH, NO_ARG}, - {"no-warn-mismatch", KEY_NO_WARN_MISMATCH, ANY_DASH, NO_ARG}, - {"non_shared", KEY_STATIC, ONE_DASH, NO_ARG}, - {"oformat", KEY_OFORMAT, TWO_DASH, REQ_ARG}, - {"omagic", 'N', TWO_DASH, NO_ARG}, - {"output", 'o', TWO_DASH, REQ_ARG}, - {"pic-executable", KEY_PIE, ANY_DASH, NO_ARG}, - {"pie", KEY_PIE, ONE_DASH, NO_ARG}, - {"print-gc-sections", KEY_PRINT_GC_SECTIONS, ANY_DASH, NO_ARG}, - {"print-map", 'M', ANY_DASH, NO_ARG}, - {"qmagic", KEY_QMAGIC, ANY_DASH, NO_ARG}, - {"relax", KEY_RELAX, ANY_DASH, NO_ARG}, - {"relocatable", 'r', ANY_DASH, NO_ARG}, - {"retain-symbols-file", KEY_RETAIN_SYM_FILE, ANY_DASH, REQ_ARG}, - {"rpath", KEY_RPATH, ANY_DASH, REQ_ARG}, - {"rpath-link", KEY_RPATH_LINK, ANY_DASH, REQ_ARG}, - {"runpath", KEY_RUNPATH, ANY_DASH, REQ_ARG}, - {"script", 'T', ANY_DASH, REQ_ARG}, - {"section-start", KEY_SECTION_START, ANY_DASH, REQ_ARG}, - {"shared", KEY_SHARED, ONE_DASH, NO_ARG}, - {"soname", 'h', ONE_DASH, REQ_ARG}, - {"sort-common", KEY_SORT_COMMON, ANY_DASH, NO_ARG}, - {"split-by-file", KEY_SPLIT_BY_FILE, ANY_DASH, REQ_ARG}, - {"split-by-reloc", KEY_SPLIT_BY_RELOC, ANY_DASH, REQ_ARG}, - {"start-group", '(', ANY_DASH, NO_ARG}, - {"stats", KEY_STATS, ANY_DASH, NO_ARG}, - {"static", KEY_STATIC, ONE_DASH, NO_ARG}, - {"strip-all", 's', ANY_DASH, NO_ARG}, - {"strip-debug", 'S', ANY_DASH, NO_ARG}, - {"trace", 't', ANY_DASH, NO_ARG}, - {"trace_symbol", 'y', ANY_DASH, NO_ARG}, - {"traditional-format", KEY_TRADITIONAL_FORMAT, ANY_DASH, NO_ARG}, - {"undefined", 'u', ANY_DASH, REQ_ARG}, - {"unique", KEY_UNIQUE, ANY_DASH, OPT_ARG}, - {"unresolved-symbols", KEY_UNRESOLVED_SYMBOLS, ANY_DASH, REQ_ARG}, - {"verbose" , KEY_VERBOSE, ANY_DASH, NO_ARG}, - {"version", 'V', ANY_DASH, NO_ARG}, - {"version-script", KEY_VERSION_SCRIPT, ANY_DASH, REQ_ARG}, - {"warn-common", KEY_WARN_COMMON, ANY_DASH, NO_ARG}, - {"warn-constructors", KEY_WARN_CONSTRUCTORS, ANY_DASH, NO_ARG}, - {"warn-multiple-gp", KEY_WARN_MULTIPLE_GP, ANY_DASH, NO_ARG}, - {"warn-once", KEY_WARN_ONCE, ANY_DASH, NO_ARG}, - {"warn-section-align", KEY_WARN_SECTION_ALIGN, ANY_DASH, NO_ARG}, - {"warn-shared-textrel", KEY_WARN_SHARED_TEXTREL, ANY_DASH, NO_ARG}, - {"warn-unresolved-symbols", KEY_WARN_UNRESOLVE_SYM, ANY_DASH, NO_ARG}, - {"whole-archive", KEY_WHOLE_ARCHIVE, ANY_DASH, NO_ARG}, - {"wrap", KEY_WRAP, ANY_DASH, REQ_ARG}, - {"EB", KEY_EB, ONE_DASH, NO_ARG}, - {"EL", KEY_EL, ONE_DASH, NO_ARG}, - {"Map", KEY_MAP, ONE_DASH, REQ_ARG}, - {"Qy", KEY_QY, ONE_DASH, NO_ARG}, - {"Tbss", KEY_TBSS, ONE_DASH, REQ_ARG}, - {"Tdata", KEY_TDATA, ONE_DASH, REQ_ARG}, - {"Ttext", KEY_TTEXT, ONE_DASH, REQ_ARG}, - {"Ur", KEY_UR, ONE_DASH, NO_ARG}, - {NULL, 0, 0, 0}, -}; - -static struct ld_option ld_opts_B[] = { - {"shareable", KEY_SHARED, ONE_DASH, NO_ARG}, - {"static", KEY_STATIC, ONE_DASH, NO_ARG}, - {"dynamic", KEY_DYNAMIC, ONE_DASH, NO_ARG}, - {"group", KEY_GROUP, ONE_DASH, NO_ARG}, - {"symbolic", KEY_SYMBOLIC, ONE_DASH, NO_ARG}, - {"symbolic_functions", KEY_SYMBOLIC_FUNC, ONE_DASH, NO_ARG}, -}; - -static struct ld_option ld_opts_z[] = { - {"nodefaultlib", KEY_Z_NO_DEFAULT_LIB, ONE_DASH, NO_ARG}, - {"allextract", KEY_WHOLE_ARCHIVE, ONE_DASH, NO_ARG}, - {"defaultextract", KEY_Z_DEFAULT_EXTRACT, ONE_DASH, NO_ARG}, - {"weakextract", KEY_Z_WEAK_EXTRACT, ONE_DASH, NO_ARG}, - {"muldefs", KEY_Z_MULDEFS, ONE_DASH, NO_ARG}, - {"defs", KEY_Z_DEFS, ONE_DASH, NO_ARG}, - {"execstack", KEY_Z_EXEC_STACK, ONE_DASH, NO_ARG}, - {"nodefs", KEY_Z_NO_DEFS, ONE_DASH, NO_ARG}, - {"origin", KEY_Z_ORIGIN, ONE_DASH, NO_ARG}, - {"now", KEY_Z_NOW, ONE_DASH, NO_ARG}, - {"nodelete", KEY_Z_NO_DELETE, ONE_DASH, NO_ARG}, - {"initfirst", KEY_Z_INIT_FIRST, ONE_DASH, NO_ARG}, - {"lazyload", KEY_Z_LAZYLOAD, ONE_DASH, NO_ARG}, - {"noexecstack", KEY_Z_NO_EXEC_STACK, ONE_DASH, NO_ARG}, - {"nodlopen", KEY_Z_NO_DLOPEN, ONE_DASH, NO_ARG}, - {"nolazyload", KEY_Z_NO_LAZYLOAD, ONE_DASH, NO_ARG}, - {"ignore", KEY_Z_IGNORE, ONE_DASH, NO_ARG}, - {"record", KEY_Z_RECORD, ONE_DASH, NO_ARG}, - {"systemlibrary", KEY_Z_SYSTEM_LIBRARY, ONE_DASH, NO_ARG}, -}; - -static void _copy_optarg(struct ld *ld, char **dst, char *src); -static void _process_options(struct ld *ld, int key, char *arg); -static int _parse_long_options(struct ld *, struct ld_option *, int, - int, char **, char *, enum ld_dash); -static void _print_version(struct ld *ld); - -void -ld_options_parse(struct ld* ld, int argc, char **argv) -{ - enum ld_dash d; - char *p, *p0, *oli; - int ac, ac0; - - ac = 1; - - while (ac < argc) { - p = argv[ac]; - if (*p != '-' || p[1] == '\0') { - _process_options(ld, KEY_FILE, p); - ac++; - continue; - } - - if (*++p == '-') { - if (p[1] == '\0') { - /* Option --. Ignore the rest of options. */ - return; - } - p++; - d = TWO_DASH; - } else { - d = ONE_DASH; - if (*p == 'B' || *p == 'z') { - ac0 = ac; - if (*(p0 = p + 1) == '\0') - p0 = argv[++ac0]; - ac = _parse_long_options(ld, - *p == 'B' ? ld_opts_B : ld_opts_z, - ac0, argc, argv, p0, d); - if (ac > 0) - continue; - ld_fatal(ld, "unrecognized options -%c: %s", - *p, p0); - } - } - - ac0 = _parse_long_options(ld, ld_opts, ac, argc, argv, p, d); - if (ac0 > 0) { - ac = ac0; - continue; - } - - if (d == TWO_DASH) - ld_fatal(ld, "unrecognized option %s", p); - - /* - * Search short options. - */ - while (*p != '\0') { - if ((oli = strchr(ld_short_opts, *p)) == NULL) - ld_fatal(ld, "unrecognized option -%c", *p); - if (*++oli != ':') { - _process_options(ld, *p++, NULL); - continue; - } - if (p[1] != '\0') - _process_options(ld, *p, &p[1]); - else if (oli[1] != ':') { - if (++ac >= argc) - ld_fatal(ld, "require arg for" - " option -%c", *p); - _process_options(ld, *p, argv[ac]); - } - break; - } - - ac++; - } -} - -static int -_parse_long_options(struct ld *ld, struct ld_option *opts, int ac, - int argc, char **argv, char *opt, enum ld_dash dash) -{ - char *equal; - size_t av_len; - int i, match; - - if ((equal = strchr(opt, '=')) != NULL) { - av_len = equal - opt; - equal++; - if (*equal == '\0') - ld_fatal(ld, "no argument after ="); - } else - av_len = strlen(opt); - - match = 0; - for (i = 0; opts[i].lo_long != NULL; i++) { - if (opts[i].lo_dash != ANY_DASH && opts[i].lo_dash != dash) - continue; - if (strlen(opts[i].lo_long) == av_len && - !strncmp(opt, opts[i].lo_long, av_len)) { - match = 1; - break; - } - } - if (!match) - return (-1); - - switch (opts[i].lo_arg) { - case NO_ARG: - if (equal != NULL) { - ld_fatal(ld, "option %s does not accept argument", - opts[i].lo_long); - } - _process_options(ld, opts[i].lo_key, NULL); - break; - case REQ_ARG: - if (equal != NULL) - _process_options(ld, opts[i].lo_key, equal); - else { - if (++ac >= argc) - ld_fatal(ld, "require arg for option %s", - opts[i].lo_long); - _process_options(ld, opts[i].lo_key, argv[ac]); - } - break; - case OPT_ARG: - _process_options(ld, opts[i].lo_key, equal); - break; - default: - assert(0); - break; - } - - return (++ac); -} - -static void -_process_options(struct ld *ld, int key, char *arg) -{ - struct ld_state *ls; - - assert(ld != NULL); - ls = &ld->ld_state; - - switch (key) { - case 'b': - ls->ls_itgt = elftc_bfd_find_target(arg); - if (ls->ls_itgt == NULL) - ld_fatal(ld, "invalid BFD target `%s'", arg); - break; - case 'd': - ld->ld_common_alloc = 1; - break; - case 'e': - _copy_optarg(ld, &ld->ld_entry, arg); - break; - case 'h': - _copy_optarg(ld, &ld->ld_soname, arg); - break; - case 'I': - _copy_optarg(ld, &ld->ld_interp, arg); - break; - case 'l': - ld_path_search_library(ld, arg); - break; - case 'L': - ld_path_add(ld, arg, LPT_L); - break; - case 'M': - ld->ld_print_linkmap = 1; - break; - case 'o': - _copy_optarg(ld, &ld->ld_output_file, arg); - break; - case 'q': - ld->ld_emit_reloc = 1; - break; - case 'r': - ld->ld_reloc = 1; - break; - case 'T': - ld_script_parse(arg); - break; - case 'u': - ld_symbols_add_extern(ld, arg); - break; - case 'v': - case 'V': - _print_version(ld); - break; - case '(': - ls->ls_group_level++; - if (ls->ls_group_level > LD_MAX_NESTED_GROUP) - ld_fatal(ld, "too many nested archive groups"); - break; - case ')': - ls->ls_group_level--; - break; - case KEY_AS_NEEDED: - ls->ls_as_needed = 1; - break; - case KEY_DYNAMIC: - ls->ls_static = 0; - break; - case KEY_EH_FRAME_HDR: - ld->ld_ehframe_hdr = 1; - break; - case KEY_GC_SECTIONS: - ld->ld_gc = 1; - break; - case KEY_NO_AS_NEEDED: - ls->ls_as_needed = 0; - break; - case KEY_NO_DEFINE_COMMON: - ld->ld_common_no_alloc = 1; - break; - case KEY_NO_GC_SECTIONS: - ld->ld_gc = 0; - break; - case KEY_NO_PRINT_GC_SECTIONS: - ld->ld_gc_print = 0; - break; - case KEY_NO_WHOLE_ARCHIVE: - ls->ls_whole_archive = 0; - break; - case KEY_OFORMAT: - ld_output_format(ld, arg, arg, arg); - break; - case KEY_PIE: - ld->ld_exec = 0; - ld->ld_pie = 1; - ld->ld_dynamic_link = 1; - break; - case KEY_PRINT_GC_SECTIONS: - ld->ld_gc_print = 1; - break; - case KEY_RPATH: - ld_path_add_multiple(ld, arg, LPT_RPATH); - break; - case KEY_RPATH_LINK: - ld_path_add_multiple(ld, arg, LPT_RPATH_LINK); - break; - case KEY_SHARED: - ld->ld_exec = 0; - ld->ld_dso = 1; - ld->ld_dynamic_link = 1; - break; - case KEY_STATIC: - ls->ls_static = 1; - break; - case KEY_WHOLE_ARCHIVE: - ls->ls_whole_archive = 1; - break; - case KEY_FILE: - ld_file_add(ld, arg, LFT_UNKNOWN); - break; - case KEY_VERSION_SCRIPT: - ld_script_parse(arg); - break; - case KEY_Z_EXEC_STACK: - ld->ld_gen_gnustack = 1; - ld->ld_stack_exec_set = 1; - ld->ld_stack_exec = 1; - break; - case KEY_Z_NO_EXEC_STACK: - ld->ld_gen_gnustack = 1; - ld->ld_stack_exec_set = 1; - ld->ld_stack_exec = 0; - break; - default: - break; - } -} - -static void -_print_version(struct ld *ld) -{ - - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - ld->ld_print_version = 1; -} - -static void -_copy_optarg(struct ld *ld, char **dst, char *src) -{ - - if (*dst != NULL) - free(*dst); - if ((*dst = strdup(src)) == NULL) - ld_fatal_std(ld, "strdup"); -} - -struct ld_wildcard * -ld_wildcard_alloc(struct ld *ld) -{ - struct ld_wildcard *lw; - - if ((lw = calloc(1, sizeof(*lw))) == NULL) - ld_fatal_std(ld, "calloc"); - - return (lw); -} - -void -ld_wildcard_free(void *ptr) -{ - struct ld_wildcard *lw; - - lw = ptr; - if (lw == NULL) - return; - - free(lw->lw_name); - free(lw); -} diff --git a/contrib/elftoolchain/ld/ld_options.h b/contrib/elftoolchain/ld/ld_options.h deleted file mode 100644 index 0fbed3f6..00000000 --- a/contrib/elftoolchain/ld/ld_options.h +++ /dev/null @@ -1,161 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -enum ld_dash { - ONE_DASH, - TWO_DASH, - ANY_DASH -}; - -enum ld_arg { - NO_ARG, - REQ_ARG, - OPT_ARG -}; - -enum ld_key { - KEY_ACCEPT_UNKNOWN = 0x10000, - KEY_ALLOW_SHLIB_UNDEF, - KEY_ASSERT, - KEY_AS_NEEDED, - KEY_BUILD_ID, - KEY_CHECK_SECTIONS, - KEY_CREF, - KEY_DEFSYM, - KEY_DEMANGLE, - KEY_DISABLE_NEW_DTAGS, - KEY_DYNAMIC, - KEY_EB, - KEY_EL, - KEY_EH_FRAME_HDR, - KEY_ENABLE_NEW_DTAGS, - KEY_ERR_UNRESOLVE_SYM, - KEY_FATAL_WARNINGS, - KEY_FINI, - KEY_GC_SECTIONS, - KEY_GROUP, - KEY_HASH_STYLE, - KEY_HELP, - KEY_INIT, - KEY_MAP, - KEY_NO_AS_NEEDED, - KEY_NO_CHECK_SECTIONS, - KEY_NO_DEFINE_COMMON, - KEY_NO_DEMANGLE, - KEY_NO_GC_SECTIONS, - KEY_NO_KEEP_MEMORY, - KEY_NO_OMAGIC, - KEY_NO_PRINT_GC_SECTIONS, - KEY_NO_SHLIB_UNDEF, - KEY_NO_STDLIB, - KEY_NO_UNDEF_VERSION, - KEY_NO_UNKNOWN, - KEY_NO_WHOLE_ARCHIVE, - KEY_NO_WARN_MISMATCH, - KEY_RPATH, - KEY_RPATH_LINK, - KEY_RUNPATH, - KEY_SECTION_START, - KEY_OFORMAT, - KEY_PIE, - KEY_PRINT_GC_SECTIONS, - KEY_QMAGIC, - KEY_QY, - KEY_RELAX, - KEY_RETAIN_SYM_FILE, - KEY_SHARED, - KEY_SORT_COMMON, - KEY_SPLIT_BY_FILE, - KEY_SPLIT_BY_RELOC, - KEY_STATIC, - KEY_STATS, - KEY_SYMBOLIC, - KEY_SYMBOLIC_FUNC, - KEY_TBSS, - KEY_TDATA, - KEY_TTEXT, - KEY_TRADITIONAL_FORMAT, - KEY_UNRESOLVED_SYMBOLS, - KEY_UNIQUE, - KEY_UR, - KEY_VERBOSE, - KEY_VERSION_SCRIPT, - KEY_WARN_COMMON, - KEY_WARN_CONSTRUCTORS, - KEY_WARN_MULTIPLE_GP, - KEY_WARN_ONCE, - KEY_WARN_SECTION_ALIGN, - KEY_WARN_SHARED_TEXTREL, - KEY_WARN_UNRESOLVE_SYM, - KEY_WHOLE_ARCHIVE, - KEY_WRAP, - KEY_Z_DEFAULT_EXTRACT, - KEY_Z_DEFS, - KEY_Z_EXEC_STACK, - KEY_Z_IGNORE, - KEY_Z_INIT_FIRST, - KEY_Z_LAZYLOAD, - KEY_Z_MULDEFS, - KEY_Z_NOW, - KEY_Z_NO_DEFAULT_LIB, - KEY_Z_NO_DEFS, - KEY_Z_NO_DELETE, - KEY_Z_NO_DLOPEN, - KEY_Z_NO_EXEC_STACK, - KEY_Z_NO_LAZYLOAD, - KEY_Z_ORIGIN, - KEY_Z_RECORD, - KEY_Z_SYSTEM_LIBRARY, - KEY_Z_WEAK_EXTRACT, - - KEY_FILE = 0x10000000, -}; - -struct ld_option { - const char *lo_long; - int lo_key; - enum ld_dash lo_dash; - enum ld_arg lo_arg; -}; - -enum ld_wildcard_sort { - LWS_NONE, - LWS_NAME, - LWS_ALIGN, - LWS_NAME_ALIGN, - LWS_ALIGN_NAME, -}; - -struct ld_wildcard { - char *lw_name; /* wildcard */ - enum ld_wildcard_sort lw_sort; /* sort mode */ -}; - -void ld_options_parse(struct ld*, int, char **); -struct ld_wildcard *ld_wildcard_alloc(struct ld *); -void ld_wildcard_free(void *); diff --git a/contrib/elftoolchain/ld/ld_output.c b/contrib/elftoolchain/ld/ld_output.c deleted file mode 100644 index 58d472fc..00000000 --- a/contrib/elftoolchain/ld/ld_output.c +++ /dev/null @@ -1,1155 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_dynamic.h" -#include "ld_ehframe.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_layout.h" -#include "ld_reloc.h" -#include "ld_script.h" -#include "ld_strtab.h" -#include "ld_symbols.h" - -ELFTC_VCSID("$Id$"); - -static void _alloc_input_section_data(struct ld *ld, Elf_Scn *scn, - struct ld_input_section *is); -static void _alloc_section_data_from_buffer(struct ld *ld, Elf_Scn *scn, - struct ld_output_data_buffer *odb); -static void _alloc_section_data_for_symtab(struct ld *ld, - struct ld_output_section *os, Elf_Scn *scn, - struct ld_symbol_table *symtab); -static void _alloc_section_data_for_strtab(struct ld *ld, Elf_Scn *scn, - struct ld_strtab *strtab); -static void _add_to_shstrtab(struct ld *ld, const char *name); -static void _copy_and_reloc_input_sections(struct ld *ld); -static Elf_Scn *_create_elf_scn(struct ld *ld, struct ld_output *lo, - struct ld_output_section *os); -static void _create_elf_section(struct ld *ld, struct ld_output_section *os); -static void _create_phdr(struct ld *ld); -static void _create_symbol_table(struct ld *ld); -static uint64_t _find_entry_point(struct ld *ld); -static void _produce_reloc_sections(struct ld *ld, struct ld_output *lo); -static void _join_and_finalize_dynamic_reloc_sections(struct ld *ld, - struct ld_output *lo); -static void _join_normal_reloc_sections(struct ld *ld, struct ld_output *lo); -static void _update_section_header(struct ld *ld); - -void -ld_output_early_init(struct ld *ld) -{ - struct ld_output *lo; - - if (ld->ld_output == NULL) { - if ((lo = calloc(1, sizeof(*lo))) == NULL) - ld_fatal_std(ld, "calloc"); - - STAILQ_INIT(&lo->lo_oelist); - STAILQ_INIT(&lo->lo_oslist); - ld->ld_output = lo; - } else - lo = ld->ld_output; - - assert(ld->ld_otgt != NULL); - lo->lo_ec = elftc_bfd_target_class(ld->ld_otgt); - lo->lo_endian = elftc_bfd_target_byteorder(ld->ld_otgt); -} - -void -ld_output_init(struct ld *ld) -{ - struct ld_output *lo; - const char *fn; - GElf_Ehdr eh; - - lo = ld->ld_output; - assert(lo != NULL); - - if (ld->ld_output_file == NULL) - fn = "a.out"; - else - fn = ld->ld_output_file; - - lo->lo_fd = open(fn, O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO); - if (lo->lo_fd < 0) - ld_fatal_std(ld, "can not create output file: open %s", fn); - - if ((lo->lo_elf = elf_begin(lo->lo_fd, ELF_C_WRITE, NULL)) == NULL) - ld_fatal(ld, "elf_begin failed: %s", elf_errmsg(-1)); - - elf_flagelf(lo->lo_elf, ELF_C_SET, ELF_F_LAYOUT); - - if (gelf_newehdr(lo->lo_elf, lo->lo_ec) == NULL) - ld_fatal(ld, "gelf_newehdr failed: %s", elf_errmsg(-1)); - - if (gelf_getehdr(lo->lo_elf, &eh) == NULL) - ld_fatal(ld, "gelf_getehdr failed: %s", elf_errmsg(-1)); - - eh.e_ident[EI_CLASS] = lo->lo_ec; - eh.e_ident[EI_DATA] = lo->lo_endian; - eh.e_flags = ld->ld_arch->flags; - eh.e_machine = elftc_bfd_target_machine(ld->ld_otgt); - if (ld->ld_dso || ld->ld_pie) - eh.e_type = ET_DYN; - else if (ld->ld_reloc) - eh.e_type = ET_REL; - else - eh.e_type = ET_EXEC; - eh.e_version = EV_CURRENT; - - /* Save updated ELF header. */ - if (gelf_update_ehdr(lo->lo_elf, &eh) == 0) - ld_fatal(ld, "gelf_update_ehdr failed: %s", elf_errmsg(-1)); -} - -void -ld_output_format(struct ld *ld, char *def, char *be, char *le) -{ - - ld->ld_otgt_name = def; - if ((ld->ld_otgt = elftc_bfd_find_target(def)) == NULL) - ld_fatal(ld, "invalid BFD format %s", def); - - ld->ld_otgt_be_name = be; - if ((ld->ld_otgt_be = elftc_bfd_find_target(be)) == NULL) - ld_fatal(ld, "invalid BFD format %s", be); - - ld->ld_otgt_le_name = le; - if ((ld->ld_otgt_le = elftc_bfd_find_target(le)) == NULL) - ld_fatal(ld, "invalid BFD format %s", le); - - ld_arch_set_from_target(ld); -} - -struct ld_output_element * -ld_output_create_element(struct ld *ld, struct ld_output_element_head *head, - enum ld_output_element_type type, void *entry, - struct ld_output_element *after) -{ - struct ld_output_element *oe; - - if ((oe = calloc(1, sizeof(*oe))) == NULL) - ld_fatal_std(ld, "calloc"); - - oe->oe_type = type; - oe->oe_entry = entry; - - if (after == NULL) - STAILQ_INSERT_TAIL(head, oe, oe_next); - else - STAILQ_INSERT_AFTER(head, after, oe, oe_next); - - return (oe); -} - -struct ld_output_element * -ld_output_create_section_element(struct ld *ld, struct ld_output_section *os, - enum ld_output_element_type type, void *entry, - struct ld_output_element *after) -{ - struct ld_output_element *oe; - - oe = ld_output_create_element(ld, &os->os_e, type, entry, after); - - switch (type) { - case OET_DATA: - case OET_DATA_BUFFER: - case OET_SYMTAB: - case OET_STRTAB: - os->os_empty = 0; - break; - default: - break; - } - - return (oe); -} - -struct ld_output_section * -ld_output_alloc_section(struct ld *ld, const char *name, - struct ld_output_section *after, struct ld_output_section *ros) -{ - struct ld_output *lo; - struct ld_output_section *os; - - lo = ld->ld_output; - - if ((os = calloc(1, sizeof(*os))) == NULL) - ld_fatal_std(ld, "calloc"); - - if ((os->os_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - - os->os_align = 1; - os->os_empty = 1; - - STAILQ_INIT(&os->os_e); - - HASH_ADD_KEYPTR(hh, lo->lo_ostbl, os->os_name, strlen(os->os_name), os); - - if (after == NULL) { - STAILQ_INSERT_TAIL(&lo->lo_oslist, os, os_next); - os->os_pe = ld_output_create_element(ld, &lo->lo_oelist, - OET_OUTPUT_SECTION, os, NULL); - } else { - STAILQ_INSERT_AFTER(&lo->lo_oslist, after, os, os_next); - os->os_pe = ld_output_create_element(ld, &lo->lo_oelist, - OET_OUTPUT_SECTION, os, after->os_pe); - } - - if (ros != NULL) - ros->os_r = os; - - return (os); -} - -static Elf_Scn * -_create_elf_scn(struct ld *ld, struct ld_output *lo, - struct ld_output_section *os) -{ - Elf_Scn *scn; - - assert(lo->lo_elf != NULL); - - if ((scn = elf_newscn(lo->lo_elf)) == NULL) - ld_fatal(ld, "elf_newscn failed: %s", elf_errmsg(-1)); - - if (os != NULL) - os->os_scn = scn; - - return (scn); -} - -static void -_create_elf_section(struct ld *ld, struct ld_output_section *os) -{ - struct ld_output *lo; - struct ld_output_element *oe; - struct ld_input_section *is; - struct ld_input_section_head *islist; - Elf_Data *d; - Elf_Scn *scn; - - lo = ld->ld_output; - assert(lo->lo_elf != NULL); - - /* Create section data. */ - scn = NULL; - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - switch (oe->oe_type) { - case OET_DATA: - if (scn == NULL) - scn = _create_elf_scn(ld, lo, os); - /* TODO */ - break; - case OET_DATA_BUFFER: - if (scn == NULL) - scn = _create_elf_scn(ld, lo, os); - _alloc_section_data_from_buffer(ld, scn, oe->oe_entry); - break; - case OET_INPUT_SECTION_LIST: - islist = oe->oe_islist; - STAILQ_FOREACH(is, islist, is_next) { - if (scn == NULL) - scn = _create_elf_scn(ld, lo, os); - if (os->os_type != SHT_NOBITS && - !os->os_dynrel) - _alloc_input_section_data(ld, scn, is); - } - if ((ld->ld_reloc || ld->ld_emit_reloc) && - os->os_r != NULL) { - /* Create Scn for relocation section. */ - if (os->os_r->os_scn == NULL) { - os->os_r->os_scn = _create_elf_scn(ld, - lo, os->os_r); - _add_to_shstrtab(ld, - os->os_r->os_name); - } - } - break; - case OET_KEYWORD: - if (scn == NULL) - scn = _create_elf_scn(ld, lo, os); - /* TODO */ - break; - case OET_SYMTAB: - /* TODO: Check symtab size. */ - if (scn == NULL) - scn = _create_elf_scn(ld, lo, os); - break; - case OET_STRTAB: - /* TODO: Check strtab size. */ - if (scn == NULL) - scn = _create_elf_scn(ld, lo, os); - _alloc_section_data_for_strtab(ld, scn, oe->oe_entry); - break; - default: - break; - } - } - - if (scn == NULL) - return; - - if (os->os_type == SHT_NOBITS) { - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = os->os_align; - d->d_off = 0; - d->d_type = ELF_T_BYTE; - d->d_size = os->os_size; - d->d_version = EV_CURRENT; - d->d_buf = NULL; - } - - _add_to_shstrtab(ld, os->os_name); -} - -static void -_alloc_input_section_data(struct ld *ld, Elf_Scn *scn, - struct ld_input_section *is) -{ - Elf_Data *d; - - if (is->is_type == SHT_NOBITS || is->is_size == 0) - return; - - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - is->is_data = d; -} - -static void -_alloc_section_data_from_buffer(struct ld *ld, Elf_Scn *scn, - struct ld_output_data_buffer *odb) -{ - Elf_Data *d; - - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = odb->odb_align; - d->d_off = odb->odb_off; - d->d_type = odb->odb_type; - d->d_size = odb->odb_size; - d->d_version = EV_CURRENT; - d->d_buf = odb->odb_buf; -} - -static void -_alloc_section_data_from_reloc_buffer(struct ld *ld, Elf_Scn *scn, - void *buf, size_t sz) -{ - Elf_Data *d; - - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = ld->ld_arch->reloc_is_64bit ? 8 : 4; - d->d_off = 0; /* has to be the only data descriptor */ - d->d_type = ld->ld_arch->reloc_is_rela ? ELF_T_RELA : ELF_T_REL; - d->d_size = sz; - d->d_version = EV_CURRENT; - d->d_buf = buf; -} - -static void -_alloc_section_data_for_symtab(struct ld *ld, struct ld_output_section *os, - Elf_Scn *scn, struct ld_symbol_table *symtab) -{ - Elf_Data *d; - - if (symtab->sy_buf == NULL || symtab->sy_size == 0) - return; - - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = os->os_align; - d->d_off = 0; - d->d_type = ELF_T_SYM; - d->d_size = os->os_entsize * symtab->sy_size; - d->d_version = EV_CURRENT; - d->d_buf = symtab->sy_buf; -} - -static void -_alloc_section_data_for_strtab(struct ld *ld, Elf_Scn *scn, - struct ld_strtab *strtab) -{ - Elf_Data *d; - void *buf; - size_t sz; - - buf = ld_strtab_getbuf(ld, strtab); - sz = ld_strtab_getsize(strtab); - if (buf == NULL || sz == 0) - return; - - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = 1; - d->d_off = 0; - d->d_type = ELF_T_BYTE; - d->d_size = sz; - d->d_version = EV_CURRENT; - d->d_buf = buf; -} - -static void -_copy_and_reloc_input_sections(struct ld *ld) -{ - struct ld_input *li; - struct ld_input_section *is; - Elf_Data *d; - int i; - - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - ld_input_load(ld, li); - for (i = 0; (uint64_t) i < li->li_shnum; i++) { - is = &li->li_is[i]; - - if (is->is_discard || !is->is_need_reloc) - continue; - - d = is->is_data; - - d->d_align = is->is_align; - d->d_off = is->is_reloff; - d->d_type = ELF_T_BYTE; - d->d_size = is->is_size; - d->d_version = EV_CURRENT; - - /* - * Take different actions depending on different types - * of input sections: - * - * For internal input sections, assign the internal - * buffer directly to the data descriptor. - * For relocation sections, they should be ignored - * since they are handled elsewhere. - * For other input sections, load the raw data from - * input object and preform relocation. - */ - if (is->is_ibuf != NULL) { - d->d_buf = is->is_ibuf; - /* .eh_frame section needs relocation */ - if (strcmp(is->is_name, ".eh_frame") == 0) - ld_reloc_process_input_section(ld, is, - d->d_buf); - } else if (is->is_reloc == NULL) { - d->d_buf = ld_input_get_section_rawdata(ld, - is); - ld_reloc_process_input_section(ld, is, - d->d_buf); - } - } - ld_input_unload(ld, li); - } -} - -static void -_produce_reloc_sections(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_section *os; - void *buf; - size_t sz; - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_reloc != NULL) { - /* Serialize relocation records. */ - buf = ld_reloc_serialize(ld, os, &sz); - _alloc_section_data_from_reloc_buffer(ld, os->os_scn, - buf, sz); - - /* - * Link dynamic relocation sections to .dynsym - * section. - */ - if (os->os_dynrel) { - if ((os->os_link = strdup(".dynsym")) == NULL) - ld_fatal_std(ld, "strdup"); - } - } - } -} - -static void -_join_and_finalize_dynamic_reloc_sections(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_section *os; - struct ld_output_element *oe; - struct ld_input_section *is; - struct ld_input_section_head *islist; - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - - if (!os->os_dynrel) - continue; - - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - switch (oe->oe_type) { - case OET_INPUT_SECTION_LIST: - islist = oe->oe_islist; - STAILQ_FOREACH(is, islist, is_next) - ld_reloc_join(ld, os, is); - break; - default: - break; - } - } - - /* Sort dynamic relocations for the runtime linker. */ - if (os->os_reloc != NULL && os->os_dynrel && !os->os_pltrel) - ld_reloc_sort(ld, os); - - /* Finalize relocations. */ - ld_reloc_finalize_dynamic(ld, lo, os); - } -} - -static void -_join_normal_reloc_sections(struct ld *ld, struct ld_output *lo) -{ - struct ld_output_section *os; - struct ld_output_element *oe; - struct ld_input_section *is; - struct ld_input_section_head *islist; - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - - if (os->os_r == NULL) - continue; - - STAILQ_FOREACH(oe, &os->os_e, oe_next) { - switch (oe->oe_type) { - case OET_INPUT_SECTION_LIST: - islist = oe->oe_islist; - STAILQ_FOREACH(is, islist, is_next) { - if (is->is_ris == NULL) - continue; - ld_reloc_join(ld, os->os_r, - is->is_ris); - } - break; - default: - break; - } - } - } -} - -void -ld_output_create_elf_sections(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_element *oe; - - lo = ld->ld_output; - assert(lo->lo_elf != NULL); - - STAILQ_FOREACH(oe, &lo->lo_oelist, oe_next) { - switch (oe->oe_type) { - case OET_OUTPUT_SECTION: - _create_elf_section(ld, oe->oe_entry); - break; - default: - break; - } - } -} - -void -ld_output_emit_gnu_stack_section(struct ld *ld) -{ - struct ld_state *ls; - struct ld_output *lo; - struct ld_output_section *os; - - ls = &ld->ld_state; - lo = ld->ld_output; - - os = ld_output_alloc_section(ld, ".note.GNU-stack", NULL, NULL); - os->os_empty = 0; - os->os_addr = 0; - os->os_type = SHT_PROGBITS; - os->os_align = 1; - os->os_entsize = 0; - os->os_off = ls->ls_offset; - os->os_size = 0; - if (ld->ld_stack_exec) - os->os_flags = SHF_EXECINSTR; - - (void) _create_elf_scn(ld, lo, os); - - _add_to_shstrtab(ld, ".note.GNU-stack"); - - /* - * .note.GNU-stack is an empty section so we don't allocate any - * Elf_Data descriptors. - */ -} - -static uint64_t -_find_entry_point(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_section *os; - char entry_symbol[] = "start"; - uint64_t entry; - - lo = ld->ld_output; - - if (ld->ld_entry != NULL) { - if (ld_symbols_get_value(ld, ld->ld_entry, &entry) < 0) - ld_fatal(ld, "symbol %s is undefined", ld->ld_entry); - return (entry); - } - - if (ld->ld_scp->lds_entry_point != NULL) { - if (ld_symbols_get_value(ld, ld->ld_scp->lds_entry_point, - &entry) == 0) - return (entry); - } - - if (ld_symbols_get_value(ld, entry_symbol, &entry) == 0) - return (entry); - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_empty) - continue; - if (strcmp(os->os_name, ".text") == 0) - return (os->os_addr); - } - - return (0); -} - -static void -_create_phdr(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_section *os; - Elf32_Phdr *p32; - Elf64_Phdr *p64; - void *phdrs; - uint64_t addr, off, align, flags, filesz, memsz, phdr_addr; - uint64_t tls_addr, tls_off, tls_align, tls_flags; - uint64_t tls_filesz, tls_memsz; - unsigned w; - int i, new, first, tls; - - /* TODO: support segments created by linker script command PHDR. */ - -#define _WRITE_PHDR(T,O,A,FSZ,MSZ,FL,AL) \ - do { \ - if (lo->lo_ec == ELFCLASS32) { \ - p32[i].p_type = (T); \ - p32[i].p_offset = (O); \ - p32[i].p_vaddr = (A); \ - p32[i].p_paddr = (A); \ - p32[i].p_filesz = (FSZ); \ - p32[i].p_memsz = (MSZ); \ - p32[i].p_flags = (FL); \ - p32[i].p_align = (AL); \ - } else { \ - p64[i].p_type = (T); \ - p64[i].p_offset = (O); \ - p64[i].p_vaddr = (A); \ - p64[i].p_paddr = (A); \ - p64[i].p_filesz = (FSZ); \ - p64[i].p_memsz = (MSZ); \ - p64[i].p_flags = (FL); \ - p64[i].p_align = (AL); \ - } \ - } while(0) - - lo = ld->ld_output; - assert(lo->lo_elf != NULL); - assert(lo->lo_phdr_num != 0); - assert(ld->ld_arch != NULL); - - if ((phdrs = gelf_newphdr(lo->lo_elf, lo->lo_phdr_num)) == NULL) - ld_fatal(ld, "gelf_newphdr failed: %s", elf_errmsg(-1)); - - p32 = NULL; - p64 = NULL; - if (lo->lo_ec == ELFCLASS32) - p32 = phdrs; - else - p64 = phdrs; - - i = -1; - - /* Calculate the start vma of output object. */ - os = STAILQ_FIRST(&lo->lo_oslist); - addr = os->os_addr - os->os_off; - - /* Create PT_PHDR segment for dynamically linked output object */ - if (lo->lo_dso_needed > 0 && !ld->ld_dso) { - i++; - off = gelf_fsize(lo->lo_elf, ELF_T_EHDR, 1, EV_CURRENT); - phdr_addr = addr + off; - filesz = memsz = gelf_fsize(lo->lo_elf, ELF_T_PHDR, - lo->lo_phdr_num, EV_CURRENT); - align = lo->lo_ec == ELFCLASS32 ? 4 : 8; - flags = PF_R | PF_X; - _WRITE_PHDR(PT_PHDR, off, phdr_addr, filesz, memsz, flags, - align); - } - - /* Create PT_INTERP segment for dynamically linked output object */ - if (lo->lo_interp != NULL) { - i++; - os = lo->lo_interp; - _WRITE_PHDR(PT_INTERP, os->os_off, os->os_addr, os->os_size, - os->os_size, PF_R, 1); - } - - /* - * Create PT_LOAD segments. - */ - - align = ld->ld_arch->get_max_page_size(ld); - new = 1; - w = 0; - off = filesz = memsz = 0; - flags = PF_R; - first = 1; - - tls = 0; - tls_off = tls_addr = tls_filesz = tls_memsz = tls_align = 0; - tls_flags = PF_R; /* TLS segment is a read-only image */ - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_empty) - continue; - - if ((os->os_flags & SHF_ALLOC) == 0) { - new = 1; - continue; - } - - if ((os->os_flags & SHF_TLS) != 0) { - if (tls < 0) - ld_warn(ld, "can not have multiple TLS " - "segments"); - else { - if (tls == 0) { - tls = 1; - tls_addr = os->os_addr; - tls_off = os->os_off; - } - - if (os->os_align > tls_align) - tls_align = os->os_align; - } - - } else if (tls > 0) - tls = -1; - - if ((os->os_flags & SHF_WRITE) != w || new) { - new = 0; - w = os->os_flags & SHF_WRITE; - - if (!first) - _WRITE_PHDR(PT_LOAD, off, addr, filesz, memsz, - flags, align); - - i++; - if ((unsigned) i >= lo->lo_phdr_num) - ld_fatal(ld, "not enough room for program" - " headers"); - if (!first) { - addr = os->os_addr; - off = os->os_off; - } - first = 0; - flags = PF_R; - filesz = 0; - memsz = 0; - } - - memsz = os->os_addr + os->os_size - addr; - if (tls > 0) - tls_memsz = memsz; - - if (os->os_type != SHT_NOBITS) { - filesz = memsz; - if (tls > 0) - tls_filesz = tls_memsz; - } - - if (os->os_flags & SHF_WRITE) - flags |= PF_W; - - if (os->os_flags & SHF_EXECINSTR) - flags |= PF_X; - } - if (i >= 0) - _WRITE_PHDR(PT_LOAD, off, addr, filesz, memsz, flags, align); - - /* - * Create PT_DYNAMIC segment. - */ - if (lo->lo_dynamic != NULL) { - i++; - os = lo->lo_dynamic; - _WRITE_PHDR(PT_DYNAMIC, os->os_off, os->os_addr, os->os_size, - os->os_size, PF_R | PF_W, lo->lo_ec == ELFCLASS32 ? 4 : 8); - } - - /* - * Create PT_NOTE segment. - */ - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_type == SHT_NOTE) { - i++; - if ((unsigned) i >= lo->lo_phdr_num) - ld_fatal(ld, "not enough room for program" - " headers"); - _WRITE_PHDR(PT_NOTE, os->os_off, os->os_addr, - os->os_size, os->os_size, PF_R, os->os_align); - break; - } - } - - /* - * Create PT_TLS segment. - */ - - if (tls != 0) { - i++; - lo->lo_tls_size = tls_memsz; - lo->lo_tls_align = tls_align; - lo->lo_tls_addr = tls_addr; - _WRITE_PHDR(PT_TLS, tls_off, tls_addr, tls_filesz, tls_memsz, - tls_flags, tls_align); - } - - /* - * Create PT_GNU_EH_FRAME segment. - */ - if (ld->ld_ehframe_hdr) { - i++; - os = lo->lo_ehframe_hdr; - assert(os != NULL); - _WRITE_PHDR(PT_GNU_EH_FRAME, os->os_off, os->os_addr, - os->os_size, os->os_size, PF_R, 4); - } - - /* - * Create PT_GNU_STACK segment. - */ - - if (ld->ld_gen_gnustack) { - i++; - flags = PF_R | PF_W; - if (ld->ld_stack_exec) - flags |= PF_X; - align = (lo->lo_ec == ELFCLASS32) ? 4 : 8; - _WRITE_PHDR(PT_GNU_STACK, 0, 0, 0, 0, flags, align); - } - - assert((unsigned) i + 1 == lo->lo_phdr_num); - -#undef _WRITE_PHDR -} - -void -ld_output_create(struct ld *ld) -{ - struct ld_output *lo; - GElf_Ehdr eh; - - lo = ld->ld_output; - - if (gelf_getehdr(lo->lo_elf, &eh) == NULL) - ld_fatal(ld, "gelf_getehdr failed: %s", elf_errmsg(-1)); - - /* Set program header table offset. */ - eh.e_phoff = gelf_fsize(lo->lo_elf, ELF_T_EHDR, 1, EV_CURRENT); - if (eh.e_phoff == 0) - ld_fatal(ld, "gelf_fsize failed: %s", elf_errmsg(-1)); - - /* Set section headers table offset. */ - eh.e_shoff = lo->lo_shoff; - - /* Set executable entry point. */ - eh.e_entry = _find_entry_point(ld); - - /* Save updated ELF header. */ - if (gelf_update_ehdr(lo->lo_elf, &eh) == 0) - ld_fatal(ld, "gelf_update_ehdr failed: %s", elf_errmsg(-1)); - - /* Allocate space for internal sections. */ - ld_input_alloc_internal_section_buffers(ld); - - /* Finalize PLT and GOT sections. */ - if (ld->ld_arch->finalize_got_and_plt) - ld->ld_arch->finalize_got_and_plt(ld); - - /* Join and sort dynamic relocation sections. */ - _join_and_finalize_dynamic_reloc_sections(ld, lo); - - /* Finalize sections for dynamically linked output object. */ - ld_dynamic_finalize(ld); - - /* Finalize dynamic symbol section. */ - if (lo->lo_dynsym != NULL) { - ld_symbols_finalize_dynsym(ld); - _alloc_section_data_for_symtab(ld, lo->lo_dynsym, - lo->lo_dynsym->os_scn, ld->ld_dynsym); - } - - /* Generate symbol table. */ - _create_symbol_table(ld); - - /* Copy and relocate input section data to output section. */ - _copy_and_reloc_input_sections(ld); - - /* Finalize .eh_frame_hdr section. */ - if (ld->ld_ehframe_hdr) - ld_ehframe_finalize_hdr(ld); - - /* - * Join normal relocation sections if the linker is creating a - * relocatable object or if option -emit-relocs is specified. - */ - if (ld->ld_reloc || ld->ld_emit_reloc) - _join_normal_reloc_sections(ld, lo); - - /* Produce relocation entries. */ - _produce_reloc_sections(ld, lo); - - /* Update section headers for the output sections. */ - _update_section_header(ld); - - /* Create program headers. */ - if (!ld->ld_reloc) - _create_phdr(ld); - - /* Finally write out the output ELF object. */ - if (elf_update(lo->lo_elf, ELF_C_WRITE) < 0) - ld_fatal(ld, "elf_update failed: %s", elf_errmsg(-1)); -} - -static void -_add_to_shstrtab(struct ld *ld, const char *name) -{ - - if (ld->ld_shstrtab == NULL) { - ld->ld_shstrtab = ld_strtab_alloc(ld, 1); - ld_strtab_insert(ld, ld->ld_shstrtab, ".symtab"); - ld_strtab_insert(ld, ld->ld_shstrtab, ".strtab"); - ld_strtab_insert(ld, ld->ld_shstrtab, ".shstrtab"); - } - - ld_strtab_insert(ld, ld->ld_shstrtab, name); -} - -static void -_update_section_header(struct ld *ld) -{ - struct ld_strtab *st; - struct ld_output *lo; - struct ld_output_section *os, *_os; - GElf_Shdr sh; - - lo = ld->ld_output; - st = ld->ld_shstrtab; - assert(st != NULL); - - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_scn == NULL) - continue; - - if (gelf_getshdr(os->os_scn, &sh) == NULL) - ld_fatal(ld, "gelf_getshdr failed: %s", - elf_errmsg(-1)); - - sh.sh_name = ld_strtab_lookup(st, os->os_name); - sh.sh_flags = os->os_flags; - sh.sh_addr = os->os_addr; - sh.sh_addralign = os->os_align; - sh.sh_offset = os->os_off; - sh.sh_size = os->os_size; - sh.sh_type = os->os_type; - sh.sh_entsize = os->os_entsize; - - /* Update "sh_link" field. */ - if (os->os_link != NULL) { - if (!strcmp(os->os_link, ".symtab")) - sh.sh_link = lo->lo_symtab_shndx; - else { - HASH_FIND_STR(lo->lo_ostbl, os->os_link, _os); - if (_os == NULL) - ld_fatal(ld, "Internal: can not find" - " link section %s", os->os_link); - sh.sh_link = elf_ndxscn(_os->os_scn); - } - } - - /* Update "sh_info" field. */ - if (os->os_info != NULL) - sh.sh_info = elf_ndxscn(os->os_info->os_scn); - else - sh.sh_info = os->os_info_val; - -#if 0 - printf("name=%s, shname=%#jx, offset=%#jx, size=%#jx, type=%#jx\n", - os->os_name, (uint64_t) sh.sh_name, (uint64_t) sh.sh_offset, - (uint64_t) sh.sh_size, (uint64_t) sh.sh_type); -#endif - - if (!gelf_update_shdr(os->os_scn, &sh)) - ld_fatal(ld, "gelf_update_shdr failed: %s", - elf_errmsg(-1)); - } -} - -static void -_create_symbol_table(struct ld *ld) -{ - struct ld_state *ls; - struct ld_strtab *st; - struct ld_output *lo; - Elf_Scn *scn_symtab, *scn_strtab; - Elf_Data *d; - GElf_Shdr sh; - size_t strndx; - - ld_symbols_build_symtab(ld); - - ls = &ld->ld_state; - lo = ld->ld_output; - st = ld->ld_shstrtab; - assert(st != NULL); - - /* - * Create .symtab section. - */ - scn_symtab = _create_elf_scn(ld, lo, NULL); - scn_strtab = _create_elf_scn(ld, lo, NULL); - lo->lo_symtab_shndx = elf_ndxscn(scn_symtab); - strndx = elf_ndxscn(scn_strtab); - - if (gelf_getshdr(scn_symtab, &sh) == NULL) - ld_fatal(ld, "gelf_getshdr failed: %s", elf_errmsg(-1)); - - sh.sh_name = ld_strtab_lookup(st, ".symtab"); - sh.sh_flags = 0; - sh.sh_addr = 0; - sh.sh_addralign = (lo->lo_ec == ELFCLASS32) ? 4 : 8; - sh.sh_offset = roundup(ls->ls_offset, sh.sh_addralign); - sh.sh_entsize = (lo->lo_ec == ELFCLASS32) ? sizeof(Elf32_Sym) : - sizeof(Elf64_Sym); - sh.sh_size = ld->ld_symtab->sy_size * sh.sh_entsize; - sh.sh_type = SHT_SYMTAB; - sh.sh_link = strndx; - sh.sh_info = ld->ld_symtab->sy_first_nonlocal; - - if (!gelf_update_shdr(scn_symtab, &sh)) - ld_fatal(ld, "gelf_update_shdr failed: %s", elf_errmsg(-1)); - - if ((d = elf_newdata(scn_symtab)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = sh.sh_addralign; - d->d_off = 0; - d->d_type = ELF_T_SYM; - d->d_size = sh.sh_size; - d->d_version = EV_CURRENT; - d->d_buf = ld->ld_symtab->sy_buf; - - ls->ls_offset = sh.sh_offset + sh.sh_size; - - /* - * Create .strtab section. - */ - ld_output_create_string_table_section(ld, ".strtab", ld->ld_strtab, - scn_strtab); -} - -void -ld_output_create_string_table_section(struct ld *ld, const char *name, - struct ld_strtab *st, Elf_Scn *scn) -{ - struct ld_state *ls; - struct ld_output *lo; - Elf_Data *d; - GElf_Shdr sh; - size_t sz; - - assert(st != NULL && name != NULL); - - ls = &ld->ld_state; - lo = ld->ld_output; - - if (scn == NULL) - scn = _create_elf_scn(ld, lo, NULL); - - if (strcmp(name, ".shstrtab") == 0) { - if (!elf_setshstrndx(lo->lo_elf, elf_ndxscn(scn))) - ld_fatal(ld, "elf_setshstrndx failed: %s", - elf_errmsg(-1)); - } - - if (gelf_getshdr(scn, &sh) == NULL) - ld_fatal(ld, "gelf_getshdr failed: %s", elf_errmsg(-1)); - - sh.sh_name = ld_strtab_lookup(ld->ld_shstrtab, name); - sh.sh_flags = 0; - sh.sh_addr = 0; - sh.sh_addralign = 1; - sh.sh_offset = ls->ls_offset; - sh.sh_size = ld_strtab_getsize(st); - sh.sh_type = SHT_STRTAB; - - if (!gelf_update_shdr(scn, &sh)) - ld_fatal(ld, "gelf_update_shdr failed: %s", elf_errmsg(-1)); - - sz = ld_strtab_getsize(st); - - if ((d = elf_newdata(scn)) == NULL) - ld_fatal(ld, "elf_newdata failed: %s", elf_errmsg(-1)); - - d->d_align = 1; - d->d_off = 0; - d->d_type = ELF_T_BYTE; - d->d_size = sz; - d->d_version = EV_CURRENT; - d->d_buf = ld_strtab_getbuf(ld, st); - - ls->ls_offset += sz; -} diff --git a/contrib/elftoolchain/ld/ld_output.h b/contrib/elftoolchain/ld/ld_output.h deleted file mode 100644 index 1f6011c1..00000000 --- a/contrib/elftoolchain/ld/ld_output.h +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -enum ld_output_element_type { - OET_ASSERT, - OET_ASSIGN, - OET_DATA, - OET_ENTRY, - OET_INPUT_SECTION_LIST, - OET_KEYWORD, - OET_OUTPUT_SECTION, - OET_OVERLAY, - OET_DATA_BUFFER, - OET_SYMTAB, - OET_STRTAB -}; - -struct ld_output_element { - enum ld_output_element_type oe_type; /* output element type */ - uint64_t oe_off; /* output element offset */ - void *oe_entry; /* output element */ - void *oe_islist; /* input section list */ - unsigned char oe_insec; /* element inside SECTIONS */ - STAILQ_ENTRY(ld_output_element) oe_next; /* next element */ -}; - -STAILQ_HEAD(ld_output_element_head, ld_output_element); - -struct ld_output_data_buffer { - uint8_t *odb_buf; /* point to data */ - uint64_t odb_size; /* buffer size */ - uint64_t odb_off; /* relative offset in output section */ - uint64_t odb_align; /* buffer alignment */ - uint64_t odb_type; /* buffer data type */ -}; - -struct ld_reloc_entry_head; -struct ld_symbol; - -struct ld_output_section { - Elf_Scn *os_scn; /* output section descriptor */ - char *os_name; /* output section name */ - uint64_t os_addr; /* output section vma */ - uint64_t os_lma; /* output section lma */ - uint64_t os_off; /* output section offset */ - uint64_t os_size; /* output section size */ - uint64_t os_align; /* output section alignment */ - uint64_t os_flags; /* output section flags */ - uint64_t os_type; /* output section type */ - uint64_t os_entsize; /* output seciton entry size */ - uint64_t os_info_val; /* output section info */ - unsigned char os_empty; /* output section is empty */ - unsigned char os_dynrel; /* contains dynamic relocations */ - unsigned char os_pltrel; /* contains PLT relocations */ - unsigned char os_rel; /* contains normal relocations */ - unsigned char os_entsize_set; /* entsize is set */ - char *os_link; /* link to other output section */ - struct ld_symbol *os_secsym; /* assoicated STT_SECTION symbol */ - struct ld_output_section *os_info; /* info refer to other section */ - struct ld_output_section *os_r; /* relocation section */ - struct ld_script_sections_output *os_ldso; - /* output section descriptor */ - struct ld_output_element *os_pe; /* parent element */ - struct ld_output_element_head os_e; /* list of child elements */ - struct ld_reloc_entry_head *os_reloc; /* list of relocations */ - uint64_t os_num_reloc; /* number of relocations */ - STAILQ_ENTRY(ld_output_section) os_next; /* next output section */ - UT_hash_handle hh; /* hash handle */ -}; - -STAILQ_HEAD(ld_output_section_head, ld_output_section); - -struct ld_symver_verneed_head; - -struct ld_output { - int lo_fd; /* output file descriptor */ - Elf *lo_elf; /* output ELF descriptor */ - int lo_ec; /* output object elf class */ - int lo_endian; /* outout object endianess */ - int lo_osabi; /* output object osabi */ - int lo_soname_nameindex; /* string index for DT_SONAME */ - int lo_rpath_nameindex; /* string index for DT_RPATH */ - unsigned lo_phdr_num; /* num of phdrs */ - unsigned lo_phdr_note; /* create PT_NOTE */ - unsigned lo_dso_needed; /* num of DSO referenced */ - unsigned lo_version_index; /* current symver index */ - unsigned lo_verdef_num; /* num of verdef entries */ - unsigned lo_verneed_num; /* num of verneed entries */ - unsigned lo_rel_plt_type; /* type of PLT relocation */ - unsigned lo_rel_dyn_type; /* type of dynamic relocation */ - unsigned lo_fde_num; /* num of FDE in .eh_frame */ - uint64_t lo_shoff; /* section header table offset */ - uint64_t lo_tls_size; /* TLS segment size */ - uint64_t lo_tls_align; /* TLS segment align */ - uint64_t lo_tls_addr; /* TLS segment VMA */ - size_t lo_symtab_shndx; /* .symtab section index */ - UT_array *lo_dso_nameindex; /* array of DSO name indices */ - struct ld_symver_verneed_head *lo_vnlist; /* Verneed list */ - struct ld_output_element_head lo_oelist; /* output element list */ - struct ld_output_section_head lo_oslist; /* output section list */ - struct ld_output_section *lo_ostbl; /* output section hash table */ - struct ld_output_section *lo_interp; /* .interp section. */ - struct ld_output_section *lo_init; /* .init section */ - struct ld_output_section *lo_fini; /* .fini section */ - struct ld_output_section *lo_dynamic; /* .dynamic section. */ - struct ld_output_section *lo_dynsym; /* .dynsym section. */ - struct ld_output_section *lo_dynstr; /* .dynstr section. */ - struct ld_output_section *lo_hash; /* .hash section. */ - struct ld_output_section *lo_verdef; /* .gnu.version.d section */ - struct ld_output_section *lo_verneed; /* .gnu.version.r section */ - struct ld_output_section *lo_versym; /* .gnu.version section */ - struct ld_output_section *lo_gotplt; /* GOT(for PLT) section */ - struct ld_output_section *lo_plt; /* PLT section */ - struct ld_output_section *lo_rel_plt; /* PLT relocation section */ - struct ld_output_section *lo_rel_dyn; /* Dynamic relocation section */ - struct ld_output_section *lo_ehframe_hdr; /* .eh_frame_hdr section */ - struct ld_output_data_buffer *lo_dynamic_odb; /* .dynamic buffer */ - struct ld_output_data_buffer *lo_got_odb; /* GOT section data */ - struct ld_output_data_buffer *lo_plt_odb; /* PLT section data */ - struct ld_output_data_buffer *lo_rel_plt_odb; /* PLT reloc data */ - struct ld_output_data_buffer *lo_rel_dyn_odb; /* dynamic reloc data */ -}; - -struct ld_output_section *ld_output_alloc_section(struct ld *, const char *, - struct ld_output_section *, struct ld_output_section *); -void ld_output_create(struct ld *); -struct ld_output_element *ld_output_create_element(struct ld *, - struct ld_output_element_head *, enum ld_output_element_type, void *, - struct ld_output_element *); -struct ld_output_element *ld_output_create_section_element(struct ld *, - struct ld_output_section *, enum ld_output_element_type, void *, - struct ld_output_element *); -void ld_output_create_elf_sections(struct ld *); -void ld_output_create_string_table_section(struct ld *, const char *, - struct ld_strtab *, Elf_Scn *); -void ld_output_emit_gnu_stack_section(struct ld *); -void ld_output_format(struct ld *, char *, char *, char *); -void ld_output_early_init(struct ld *); -void ld_output_init(struct ld *); -void ld_output_write(struct ld *); diff --git a/contrib/elftoolchain/ld/ld_path.c b/contrib/elftoolchain/ld/ld_path.c deleted file mode 100644 index 44de8ba5..00000000 --- a/contrib/elftoolchain/ld/ld_path.c +++ /dev/null @@ -1,295 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include "ld.h" -#include "ld_file.h" -#include "ld_path.h" - -static char *_search_file(struct ld *ld, const char *path, const char *file); - -static char * -_search_file(struct ld *ld, const char *path, const char *file) -{ - struct dirent *dp; - DIR *dirp; - char *fp; - - assert(path != NULL && file != NULL); - - if ((dirp = opendir(path)) == NULL) { - ld_warn(ld, "opendir failed: %s", strerror(errno)); - return (NULL); - } - - fp = NULL; - while ((dp = readdir(dirp)) != NULL) { - if (!strcmp(dp->d_name, file)) { - if ((fp = malloc(PATH_MAX + 1)) == NULL) - ld_fatal_std(ld, "malloc"); - fp[0] = '\0'; - snprintf(fp, PATH_MAX + 1, "%s/%s", path, dp->d_name); - break; - } - } - (void) closedir(dirp); - - return (fp); -} - -void -ld_path_add(struct ld *ld, char *path, enum ld_path_type lpt) -{ - struct ld_state *ls; - struct ld_path *lp; - - assert(ld != NULL && path != NULL); - ls = &ld->ld_state; - - if ((lp = calloc(1, sizeof(*lp))) == NULL) - ld_fatal_std(ld, "calloc"); - - if ((lp->lp_path = strdup(path)) == NULL) - ld_fatal_std(ld, "strdup"); - - switch (lpt) { - case LPT_L: - STAILQ_INSERT_TAIL(&ls->ls_lplist, lp, lp_next); - break; - case LPT_RPATH: - STAILQ_INSERT_TAIL(&ls->ls_rplist, lp, lp_next); - break; - case LPT_RPATH_LINK: - STAILQ_INSERT_TAIL(&ls->ls_rllist, lp, lp_next); - break; - default: - ld_fatal(ld, "Internal: invalid path type %d", lpt); - break; - } -} - -void -ld_path_add_multiple(struct ld *ld, char *str, enum ld_path_type lpt) -{ - char *p; - - while ((p = strsep(&str, ":")) != NULL) { - if (*p != '\0') - ld_path_add(ld, p, lpt); - } -} - -void -ld_path_cleanup(struct ld *ld) -{ - struct ld_state *ls; - struct ld_path *lp, *_lp; - - ls = &ld->ld_state; - - STAILQ_FOREACH_SAFE(lp, &ls->ls_lplist, lp_next, _lp) { - STAILQ_REMOVE(&ls->ls_lplist, lp, ld_path, lp_next); - free(lp->lp_path); - free(lp); - } - - STAILQ_FOREACH_SAFE(lp, &ls->ls_rplist, lp_next, _lp) { - STAILQ_REMOVE(&ls->ls_rplist, lp, ld_path, lp_next); - free(lp->lp_path); - free(lp); - } - - STAILQ_FOREACH_SAFE(lp, &ls->ls_rllist, lp_next, _lp) { - STAILQ_REMOVE(&ls->ls_rllist, lp, ld_path, lp_next); - free(lp->lp_path); - free(lp); - } -} - -char * -ld_path_join_rpath(struct ld *ld) -{ - struct ld_state *ls; - struct ld_path *lp; - char *s; - int len; - - ls = &ld->ld_state; - - if (STAILQ_EMPTY(&ls->ls_rplist)) - return (NULL); - - len = 0; - STAILQ_FOREACH(lp, &ls->ls_rplist, lp_next) - len += strlen(lp->lp_path) + 1; - - if ((s = malloc(len)) == NULL) - ld_fatal_std(ld, "malloc"); - - STAILQ_FOREACH(lp, &ls->ls_rplist, lp_next) { - strcat(s, lp->lp_path); - if (lp != STAILQ_LAST(&ls->ls_rplist, ld_path, lp_next)) - strcat(s, ":"); - } - - return (s); -} - -void -ld_path_search_file(struct ld *ld, struct ld_file *lf) -{ - struct ld_state *ls; - struct ld_path *lp; - char *fp; - int found; - - assert(lf != NULL); - ls = &ld->ld_state; - - found = 0; - STAILQ_FOREACH(lp, &ls->ls_lplist, lp_next) { - if ((fp = _search_file(ld, lp->lp_path, lf->lf_name)) != - NULL) { - free(lf->lf_name); - lf->lf_name = fp; - found = 1; - break; - } - } - - if (!found) - ld_fatal(ld, "cannot find %s", lf->lf_name); -} - -void -ld_path_search_library(struct ld *ld, const char *name) -{ - struct ld_state *ls; - struct ld_path *lp; - struct dirent *dp; - DIR *dirp; - char fp[PATH_MAX + 1], sfp[PATH_MAX + 1]; - size_t len; - int found; - - assert(ld != NULL && name != NULL); - ls = &ld->ld_state; - - len = strlen(name); - found = 0; - STAILQ_FOREACH(lp, &ls->ls_lplist, lp_next) { - assert(lp->lp_path != NULL); - if ((dirp = opendir(lp->lp_path)) == NULL) { - ld_warn(ld, "opendir failed: %s", strerror(errno)); - continue; - } - - fp[0] = sfp[0] = '\0'; - while ((dp = readdir(dirp)) != NULL) { - if (strncmp(dp->d_name, "lib", 3)) - continue; - if (strncmp(name, &dp->d_name[3], len)) - continue; - if (ls->ls_static == 0 && - !strcmp(&dp->d_name[len + 3], ".so")) { - snprintf(fp, sizeof(fp), "%s/%s", lp->lp_path, - dp->d_name); - ld_file_add(ld, fp, LFT_DSO); - (void) closedir(dirp); - found = 1; - goto done; - } else if (*sfp == '\0' && - !strcmp(&dp->d_name[len + 3], ".a")) { - snprintf(sfp, sizeof(sfp), "%s/%s", lp->lp_path, - dp->d_name); - if (ls->ls_static == 1) { - ld_file_add(ld, sfp, LFT_ARCHIVE); - (void) closedir(dirp); - found = 1; - goto done; - } - } - } - (void) closedir(dirp); - } -done: - if (!found) { - if (ls->ls_static == 0 && *sfp != '\0') { - ld_file_add(ld, sfp, LFT_ARCHIVE); - } else - ld_fatal(ld, "cannot find -l%s", name); - } -} - -void -ld_path_search_dso_needed(struct ld *ld, struct ld_file *lf, const char *name) -{ - struct ld_state *ls; - struct ld_path *lp; - struct ld_file *_lf; - char *fp; - - ls = &ld->ld_state; - - /* - * First check if we've seen this shared library or if it's - * already listed in the input file list. - */ - TAILQ_FOREACH(_lf, &ld->ld_lflist, lf_next) { - if (!strcmp(_lf->lf_name, name) || - !strcmp(basename(_lf->lf_name), name)) - return; - } - - /* Search -rpath-link directories. */ - STAILQ_FOREACH(lp, &ls->ls_rllist, lp_next) { - if ((fp = _search_file(ld, lp->lp_path, name)) != NULL) - goto done; - } - - /* Search -rpath directories. */ - STAILQ_FOREACH(lp, &ls->ls_rplist, lp_next) { - if ((fp = _search_file(ld, lp->lp_path, name)) != NULL) - goto done; - } - - /* TODO: search additional directories and environment variables. */ - - /* Search /lib and /usr/lib. */ - if ((fp = _search_file(ld, "/lib", name)) != NULL) - goto done; - if ((fp = _search_file(ld, "/usr/lib", name)) != NULL) - goto done; - - /* Not found. */ - ld_warn(ld, "cannot find needed shared library: %s", name); - return; - -done: - ld_file_add_after(ld, fp, LFT_DSO, lf); - free(fp); -} diff --git a/contrib/elftoolchain/ld/ld_path.h b/contrib/elftoolchain/ld/ld_path.h deleted file mode 100644 index 2ebb98e4..00000000 --- a/contrib/elftoolchain/ld/ld_path.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -enum ld_path_type { - LPT_L, - LPT_RPATH, - LPT_RPATH_LINK, -}; - -struct ld_path { - char *lp_path; - STAILQ_ENTRY(ld_path) lp_next; -}; - -void ld_path_add(struct ld *, char *, enum ld_path_type); -void ld_path_add_multiple(struct ld *, char *, enum ld_path_type); -void ld_path_cleanup(struct ld *); -char *ld_path_join_rpath(struct ld *); -void ld_path_search_file(struct ld *, struct ld_file *); -void ld_path_search_library(struct ld *, const char *); -void ld_path_search_dso_needed(struct ld *, struct ld_file *, const char *); diff --git a/contrib/elftoolchain/ld/ld_reloc.c b/contrib/elftoolchain/ld/ld_reloc.c deleted file mode 100644 index b9dcee47..00000000 --- a/contrib/elftoolchain/ld/ld_reloc.c +++ /dev/null @@ -1,875 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_ehframe.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_reloc.h" -#include "ld_script.h" -#include "ld_symbols.h" -#include "ld_utils.h" - -ELFTC_VCSID("$Id$"); - -static struct ld *_ld; - -/* - * Support routines for relocation handling. - */ - -static int _discard_reloc(struct ld *ld, struct ld_input_section *is, - uint64_t sym, uint64_t off, uint64_t *reloc_adjust); -static void _scan_reloc(struct ld *ld, struct ld_input_section *is, - uint64_t sym, struct ld_reloc_entry *lre); -static void _read_rel(struct ld *ld, struct ld_input_section *is, - Elf_Data *d); -static void _read_rela(struct ld *ld, struct ld_input_section *is, - Elf_Data *d); -static void _add_to_gc_search_list(struct ld_state *ls, - struct ld_input_section *is); -static uint64_t _reloc_addr(struct ld_reloc_entry *lre); -static int _cmp_reloc(struct ld_reloc_entry *a, struct ld_reloc_entry *b); - -void -ld_reloc_load(struct ld *ld) -{ - struct ld_input *li; - struct ld_input_section *is; - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - int elferr, i; - - ld_input_link_objects(ld); - - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - - if (li->li_name == NULL || li->li_type == LIT_DSO) - continue; - - ld_input_load(ld, li); - e = li->li_elf; - - for (i = 0; (uint64_t) i < li->li_shnum - 1; i++) { - is = &li->li_is[i]; - - if (is->is_type != SHT_REL && is->is_type != SHT_RELA) - continue; - - if ((scn = elf_getscn(e, is->is_index)) == NULL) { - ld_warn(ld, "%s(%s): elf_getscn failed: %s", - li->li_name, is->is_name, elf_errmsg(-1)); - continue; - } - - (void) elf_errno(); - if ((d = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s(%s): elf_getdata " - "failed: %s", li->li_name, - is->is_name, elf_errmsg(elferr)); - continue; - } - - /* - * Find out the section to which this relocation - * section applies. - */ - if (is->is_info < li->li_shnum) { - is->is_tis = &li->li_is[is->is_info]; - li->li_is[is->is_info].is_ris = is; - } else { - ld_warn(ld, "%s(%s): invalid relocation" - " section", li->li_name, is->is_name); - continue; - } - - /* - * Load and process relocation entries. - */ - if ((is->is_reloc = malloc(sizeof(*is->is_reloc))) == - NULL) - ld_fatal(ld, "malloc"); - STAILQ_INIT(is->is_reloc); - - if (is->is_type == SHT_REL) - _read_rel(ld, is, d); - else - _read_rela(ld, is, d); - - if (!strcmp(is->is_tis->is_name, ".eh_frame")) - ld_ehframe_adjust(ld, is->is_tis); - } - - ld_input_unload(ld, li); - } -} - -void -ld_reloc_deferred_scan(struct ld *ld) -{ - struct ld_input *li; - struct ld_input_section *is; - struct ld_reloc_entry *lre; - int i; - - if (ld->ld_reloc) - return; - - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - - if (li->li_name == NULL || li->li_type == LIT_DSO) - continue; - - for (i = 0; (uint64_t) i < li->li_shnum - 1; i++) { - is = &li->li_is[i]; - - if (is->is_type != SHT_REL && is->is_type != SHT_RELA) - continue; - - if (is->is_reloc == NULL) - continue; - - STAILQ_FOREACH(lre, is->is_reloc, lre_next) { - ld->ld_arch->scan_reloc(ld, is->is_tis, lre); - } - } - } -} - -static int -_discard_reloc(struct ld *ld, struct ld_input_section *is, uint64_t sym, - uint64_t off, uint64_t *reloc_adjust) -{ - struct ld_output *lo; - uint8_t *p; - uint64_t length; - uint32_t cie_id; - - lo = ld->ld_output; - assert(lo != NULL); - - /* - * Relocation entry should be discarded if the symbol it refers - * to was discarded. - */ - if (is->is_input->li_symindex[sym] != NULL) - return (0); - - if (strcmp(is->is_tis->is_name, ".eh_frame")) - goto discard_reloc; - - /* - * If we discard a relocation entry for a FDE in the .eh_frame - * section, we need also to remove the FDE entry and adjust the - * relocation offset of the following relocation entries for - * the .eh_frame section. - */ - - assert(is->is_tis->is_ehframe != NULL); - p = is->is_tis->is_ehframe; - p += off - 8; /* XXX extended length unsupported */ - - /* Read CIE/FDE length field. */ - READ_32(p, length); - p += 4; - - /* Check for terminator. (Shouldn't happen) */ - if (length == 0) - goto discard_reloc; - - /* Read CIE ID/Pointer field. */ - READ_32(p, cie_id); - if (cie_id == 0) - goto discard_reloc; /* Shouldn't happen */ - - /* Set CIE ID to 0xFFFFFFFF to mark this FDE to be discarded */ - WRITE_32(p, 0xFFFFFFFF); - - /* Update relocation offset adjustment. */ - *reloc_adjust += length + 4; - - /* Reduce the size of the .eh_frame section. */ - is->is_tis->is_shrink += length + 4; - -discard_reloc: - - /* Reduce the size of the relocation section accordingly */ - is->is_size -= ld->ld_arch->reloc_entsize; - - return (1); -} - -static void -_read_rel(struct ld *ld, struct ld_input_section *is, Elf_Data *d) -{ - struct ld_reloc_entry *lre; - GElf_Rel r; - uint64_t reloc_adjust, sym; - int i, len; - - assert(is->is_reloc != NULL); - - reloc_adjust = 0; - len = d->d_size / is->is_entsize; - for (i = 0; i < len; i++) { - if (gelf_getrel(d, i, &r) != &r) { - ld_warn(ld, "gelf_getrel failed: %s", elf_errmsg(-1)); - continue; - } - sym = GELF_R_SYM(r.r_info); - if (_discard_reloc(ld, is, sym, r.r_offset, &reloc_adjust)) - continue; - if ((lre = calloc(1, sizeof(*lre))) == NULL) - ld_fatal(ld, "calloc"); - assert(r.r_offset >= reloc_adjust); - lre->lre_offset = r.r_offset - reloc_adjust; - lre->lre_type = GELF_R_TYPE(r.r_info); - lre->lre_tis = is->is_tis; - _scan_reloc(ld, is, sym, lre); - STAILQ_INSERT_TAIL(is->is_reloc, lre, lre_next); - is->is_num_reloc++; - } - is->is_tis->is_shrink = reloc_adjust; -} - -static void -_read_rela(struct ld *ld, struct ld_input_section *is, Elf_Data *d) -{ - struct ld_reloc_entry *lre; - GElf_Rela r; - uint64_t reloc_adjust, sym; - int i, len; - - assert(is->is_reloc != NULL); - - reloc_adjust = 0; - len = d->d_size / is->is_entsize; - for (i = 0; i < len; i++) { - if (gelf_getrela(d, i, &r) != &r) { - ld_warn(ld, "gelf_getrel failed: %s", elf_errmsg(-1)); - continue; - } - sym = GELF_R_SYM(r.r_info); - if (_discard_reloc(ld, is, sym, r.r_offset, &reloc_adjust)) - continue; - if ((lre = calloc(1, sizeof(*lre))) == NULL) - ld_fatal(ld, "calloc"); - assert(r.r_offset >= reloc_adjust); - lre->lre_offset = r.r_offset - reloc_adjust; - lre->lre_type = GELF_R_TYPE(r.r_info); - lre->lre_addend = r.r_addend; - lre->lre_tis = is->is_tis; - _scan_reloc(ld, is, sym, lre); - STAILQ_INSERT_TAIL(is->is_reloc, lre, lre_next); - is->is_num_reloc++; - } - is->is_tis->is_shrink = reloc_adjust; -} - -static void -_scan_reloc(struct ld *ld, struct ld_input_section *is, uint64_t sym, - struct ld_reloc_entry *lre) -{ - struct ld_input *li; - - (void) ld; - - li = is->is_input; - - lre->lre_sym = li->li_symindex[sym]; - - if (!ld->ld_reloc && !ld->ld_gc) - ld->ld_arch->scan_reloc(ld, is->is_tis, lre); -} - -static void -_add_to_gc_search_list(struct ld_state *ls, struct ld_input_section *is) -{ - - assert(is != NULL); - - /* Only add allocated sections. */ - if ((is->is_flags & SHF_ALLOC) == 0) - return; - - /* - * Do not add sections that are already exist in the search list, - * or sections that don't have assoicated relocations. - */ - if (is->is_refed || is->is_ris == NULL || is->is_ris->is_reloc == NULL) - return; - - STAILQ_INSERT_TAIL(ls->ls_gc, is, is_gc_next); -} - -void -ld_reloc_gc_sections(struct ld *ld) -{ - struct ld_state *ls; - struct ld_symbol *lsb; - struct ld_input_section *is; - struct ld_reloc_entry *lre; - char *entry; - - /* - * Initialise search list. Initial search list consists of sections - * contains the entry and extern symbols. - */ - ls = &ld->ld_state; - if ((ls->ls_gc = calloc(1, sizeof(*ls->ls_gc))) == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(ls->ls_gc); - - /* - * Add the section that contains the entry symbol to the initial - * search list. - */ - entry = ld->ld_entry != NULL ? ld->ld_entry : - ld->ld_scp->lds_entry_point; - if (entry != NULL) { - HASH_FIND_STR(ld->ld_sym, entry, lsb); - if (lsb != NULL && lsb->lsb_is != NULL) - _add_to_gc_search_list(ls, lsb->lsb_is); - } - - /* - * Add sections that contain the symbols specified by command line - * option `-u' (extern symbols) to the initial search list. - */ - if (ld->ld_ext_symbols != NULL) { - STAILQ_FOREACH(lsb, ld->ld_ext_symbols, lsb_next) { - if (lsb->lsb_is != NULL) - _add_to_gc_search_list(ls, lsb->lsb_is); - } - } - - /* - * Breadth-first search for sections referenced by relocations - * assoicated with the initial sections. The search is recusive, - * the relocations assoicated with the found sections are again - * used to search for more referenced sections. - */ - STAILQ_FOREACH(is, ls->ls_gc, is_gc_next) { - assert(is->is_ris != NULL); - STAILQ_FOREACH(lre, is->is_ris->is_reloc, lre_next) { - if (lre->lre_sym == NULL) - continue; - lsb = ld_symbols_ref(lre->lre_sym); - if (lsb->lsb_is != NULL) - _add_to_gc_search_list(ls, lsb->lsb_is); - } - } -} - -void * -ld_reloc_serialize(struct ld *ld, struct ld_output_section *os, size_t *sz) -{ - struct ld_reloc_entry *lre; - struct ld_symbol *lsb; - Elf32_Rel *r32; - Elf64_Rel *r64; - Elf32_Rela *ra32; - Elf64_Rela *ra64; - uint8_t *p; - void *b; - size_t entsize; - uint64_t sym; - unsigned char is_64; - unsigned char is_rela; - - is_64 = ld->ld_arch->reloc_is_64bit; - is_rela = ld->ld_arch->reloc_is_rela; - entsize = ld->ld_arch->reloc_entsize; - - b = malloc(ld->ld_arch->reloc_entsize * os->os_num_reloc); - if (b == NULL) - ld_fatal_std(ld, "malloc"); - - p = b; - STAILQ_FOREACH(lre, os->os_reloc, lre_next) { - if (lre->lre_sym != NULL) { - lsb = ld_symbols_ref(lre->lre_sym); - if (os->os_dynrel) - sym = lsb->lsb_dyn_index; - else - sym = lsb->lsb_out_index; - } else - sym = 0; - - if (is_64 && is_rela) { - ra64 = (Elf64_Rela *) (uintptr_t) p; - ra64->r_offset = lre->lre_offset; - ra64->r_info = ELF64_R_INFO(sym, lre->lre_type); - ra64->r_addend = lre->lre_addend; - } else if (!is_64 && !is_rela) { - r32 = (Elf32_Rel *) (uintptr_t) p; - r32->r_offset = (uint32_t) lre->lre_offset; - r32->r_info = (uint32_t) ELF32_R_INFO(sym, - lre->lre_type); - } else if (!is_64 && is_rela) { - ra32 = (Elf32_Rela *) (uintptr_t) p; - ra32->r_offset = (uint32_t) lre->lre_offset; - ra32->r_info = (uint32_t) ELF32_R_INFO(sym, - lre->lre_type); - ra32->r_addend = (int32_t) lre->lre_addend; - } else if (is_64 && !is_rela) { - r64 = (Elf64_Rel *) (uintptr_t) p; - r64->r_offset = lre->lre_offset; - r64->r_info = ELF64_R_INFO(sym, lre->lre_type); - } - - p += entsize; - } - - *sz = entsize * os->os_num_reloc; - assert((size_t) (p - (uint8_t *) b) == *sz); - - return (b); -} - -void -ld_reloc_create_entry(struct ld *ld, const char *name, - struct ld_input_section *tis, uint64_t type, struct ld_symbol *lsb, - uint64_t offset, int64_t addend) -{ - struct ld_input_section *is; - struct ld_reloc_entry *lre; - int len; - - /* - * List of internal sections to hold dynamic relocations: - * - * .rel.bss contains copy relocations - * .rel.plt contains PLT (*_JMP_SLOT) relocations - * .rel.got contains GOT (*_GLOB_DATA) relocations - * .rel.data.* contains *_RELATIVE and absolute relocations - */ - - is = ld_input_find_internal_section(ld, name); - if (is == NULL) { - is = ld_input_add_internal_section(ld, name); - is->is_dynrel = 1; - is->is_type = ld->ld_arch->reloc_is_rela ? SHT_RELA : SHT_REL; - is->is_align = ld->ld_arch->reloc_is_64bit ? 8 : 4; - is->is_entsize = ld->ld_arch->reloc_entsize; - - len = strlen(name); - if (len > 3 && name[len - 1] == 't' && name[len - 2] == 'l' && - name[len - 3] == 'p') - is->is_pltrel = 1; - } - - if (is->is_reloc == NULL) { - is->is_reloc = calloc(1, sizeof(*is->is_reloc)); - if (is->is_reloc == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(is->is_reloc); - } - - if ((lre = malloc(sizeof(*lre))) == NULL) - ld_fatal_std(ld, "calloc"); - - lre->lre_tis = tis; - lre->lre_type = type; - lre->lre_sym = lsb; - lre->lre_offset = offset; - lre->lre_addend = addend; - - STAILQ_INSERT_TAIL(is->is_reloc, lre, lre_next); - is->is_num_reloc++; - is->is_size += ld->ld_arch->reloc_entsize; - - /* Keep track of the total number of *_RELATIVE relocations. */ - if (ld->ld_arch->is_relative_reloc(type)) - ld->ld_state.ls_relative_reloc++; -} - -void -ld_reloc_finalize_dynamic(struct ld *ld, struct ld_output *lo, - struct ld_output_section *os) -{ - struct ld_input_section *is; - struct ld_output_section *_os; - struct ld_reloc_entry *lre; - - if (!os->os_dynrel || os->os_reloc == NULL) - return; - - /* PLT relocation is handled in arch-specified code. */ - if (os->os_pltrel) - return; - - /* - * Set the lo->lo_rel_dyn here so that the DT_* entries needed for - * dynamic relocation will be generated. - * - * Note that besides the PLT relocation section, we can only have one - * dynamic relocation section in the output object. - */ - if (lo->lo_rel_dyn == NULL) - lo->lo_rel_dyn = os; - - STAILQ_FOREACH(lre, os->os_reloc, lre_next) { - /* - * Found out the corresponding output section for the input - * section which the relocation applies to. - */ - is = lre->lre_tis; - assert(is != NULL); - if ((_os = is->is_output) == NULL) - continue; - - /* - * Update the relocation offset to make it point to the - * correct place in the output section. - */ - lre->lre_offset += _os->os_addr + is->is_reloff; - - /* - * Perform arch-specific dynamic relocation - * finalization. - */ - ld->ld_arch->finalize_reloc(ld, is, lre); - } -} - -void -ld_reloc_join(struct ld *ld, struct ld_output_section *os, - struct ld_input_section *is) -{ - - assert(is->is_reloc != NULL); - - if (os->os_reloc == NULL) { - if ((os->os_reloc = malloc(sizeof(*os->os_reloc))) == NULL) - ld_fatal_std(ld, "malloc"); - STAILQ_INIT(os->os_reloc); - } - - STAILQ_CONCAT(os->os_reloc, is->is_reloc); - os->os_num_reloc += is->is_num_reloc; - - is->is_num_reloc = 0; - free(is->is_reloc); - is->is_reloc = NULL; -} - -static uint64_t -_reloc_addr(struct ld_reloc_entry *lre) -{ - - return (lre->lre_tis->is_output->os_addr + lre->lre_tis->is_reloff + - lre->lre_offset); -} - -static int -_cmp_reloc(struct ld_reloc_entry *a, struct ld_reloc_entry *b) -{ - struct ld *ld; - - ld = _ld; - - /* - * Sort dynamic relocation entries to make the runtime linker - * run faster. *_RELATIVE relocations should be sorted to the - * front. Between two *_RELATIVE relocations, the one with - * lower address should appear first. For other relocations - * we sort them by assoicated dynamic symbol index, then - * by relocation type. - */ - - if (ld->ld_arch->is_relative_reloc(a->lre_type) && - !ld->ld_arch->is_relative_reloc(b->lre_type)) - return (-1); - - if (!ld->ld_arch->is_relative_reloc(a->lre_type) && - ld->ld_arch->is_relative_reloc(b->lre_type)) - return (1); - - if (ld->ld_arch->is_relative_reloc(a->lre_type) && - ld->ld_arch->is_relative_reloc(b->lre_type)) { - if (_reloc_addr(a) < _reloc_addr(b)) - return (-1); - else if (_reloc_addr(a) > _reloc_addr(b)) - return (1); - else - return (0); - } - - if (a->lre_sym->lsb_dyn_index < b->lre_sym->lsb_dyn_index) - return (-1); - else if (a->lre_sym->lsb_dyn_index > b->lre_sym->lsb_dyn_index) - return (1); - - if (a->lre_type < b->lre_type) - return (-1); - else if (a->lre_type > b->lre_type) - return (1); - - return (0); -} - -void -ld_reloc_sort(struct ld *ld, struct ld_output_section *os) -{ - - _ld = ld; - - if (os->os_reloc == NULL) - return; - - STAILQ_SORT(os->os_reloc, ld_reloc_entry, lre_next, _cmp_reloc); -} - -int -ld_reloc_require_plt(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* Only need PLT for functions. */ - if (lsb->lsb_type != STT_FUNC) - return (0); - - /* Create PLT for functions in DSOs. */ - if (ld_symbols_in_dso(lsb)) - return (1); - - /* - * If the linker outputs a DSO, PLT entry is needed if the symbol - * if undefined or it can be overridden. - */ - if (ld->ld_dso && - (lsb->lsb_shndx == SHN_UNDEF || ld_symbols_overridden(ld, lsb))) - return (1); - - /* Otherwise, we do not create PLT entry. */ - return (0); -} - -int -ld_reloc_require_copy_reloc(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* Functions do not need copy reloc. */ - if (lsb->lsb_type == STT_FUNC) - return (0); - - /* - * If we are generating a normal executable and the symbol is - * defined in a DSO, we need a copy reloc. - */ - if (ld->ld_exec && ld_symbols_in_dso(lsb)) - return (1); - - return (0); -} - -int -ld_reloc_require_glob_dat(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * If the symbol is undefined or if it's defined in a DSO, - * GLOB_DAT relocation is required. - */ - if (lsb->lsb_shndx == SHN_UNDEF || ld_symbols_in_dso(lsb)) - return (1); - - /* - * If the linker creates a DSO and the symbol can be overridden - * GLOB_DAT relocation is required. - */ - if (ld->ld_dso && ld_symbols_overridden(ld, lsb)) - return (1); - - /* - * If the linker creates a DSO and the symbol visibility is - * STV_PROTECTED, GLOB_DAT relocation is required for function - * address comparsion to work. - */ - if (ld->ld_dso && lsb->lsb_other == STV_PROTECTED) - return (1); - - /* - * Otherwise GLOB_DAT relocation is not required, RELATIVE - * relocation can be used instead. - */ - return (0); -} - -int -ld_reloc_require_dynamic_reloc(struct ld *ld, struct ld_reloc_entry *lre) -{ - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * If the symbol is defined in a DSO, we create specific dynamic - * relocations when we create PLT, GOT or copy reloc. - */ - if (ld_symbols_in_dso(lsb)) - return (0); - - /* - * When we are creating a DSO, we create dynamic relocation if - * the symbol is undefined, or if the symbol can be overridden. - */ - if (ld->ld_dso && (lsb->lsb_shndx == SHN_UNDEF || - ld_symbols_overridden(ld, lsb))) - return (1); - - /* - * When we are creating a PIE/DSO (position-independent), if the - * relocation is referencing the absolute address of a symbol, - * we should create dynamic relocation. - */ - if ((ld->ld_pie || ld->ld_dso) && - ld->ld_arch->is_absolute_reloc(lre->lre_type)) - return (1); - - /* Otherwise we do not generate dynamic relocation. */ - return (0); -} - -int -ld_reloc_relative_relax(struct ld *ld, struct ld_reloc_entry *lre) -{ - - struct ld_symbol *lsb; - - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * We only use *_RELATIVE relocation when we create PIE/DSO. - */ - if (!ld->ld_pie && !ld->ld_dso) - return (0); - - /* - * If the symbol is defined in a DSO, we can not relax the - * relocation. - */ - if (ld_symbols_in_dso(lsb)) - return (0); - - /* - * When we are creating a DSO, we can not relax dynamic relocation - * to *_RELATIVE relocation if the symbol is undefined, or if the - * symbol can be overridden. - */ - if (ld->ld_dso && (lsb->lsb_shndx == SHN_UNDEF || - ld_symbols_overridden(ld, lsb))) - return (0); - - /* Otherwise it's ok to use *_RELATIVE. */ - return (1); -} - -void -ld_reloc_process_input_section(struct ld *ld, struct ld_input_section *is, - void *buf) -{ - struct ld_input *li; - struct ld_input_section *ris; - struct ld_output_section *os; - struct ld_reloc_entry *lre; - struct ld_symbol *lsb; - int i; - - if (is->is_type == SHT_REL || is->is_type == SHT_RELA) - return; - - os = is->is_output; - - li = is->is_input; - if (is->is_ris != NULL) - ris = is->is_ris; - else { - ris = NULL; - for (i = 0; (uint64_t) i < li->li_shnum; i++) { - if (li->li_is[i].is_type != SHT_REL && - li->li_is[i].is_type != SHT_RELA) - continue; - if (li->li_is[i].is_info == is->is_index) { - ris = &li->li_is[i]; - break; - } - } - } - - if (ris == NULL) - return; - - assert(ris->is_reloc != NULL); - - STAILQ_FOREACH(lre, ris->is_reloc, lre_next) { - lsb = ld_symbols_ref(lre->lre_sym); - - /* - * Arch-specific relocation handling for non-relocatable - * output object. - */ - if (!ld->ld_reloc) - ld->ld_arch->process_reloc(ld, is, lre, lsb, buf); - - /* - * Arch-specific relocation handling for relocatable output - * object and -emit-relocs option. - * - * Note that for SHT_REL relocation sections, relocation - * addend (in-place) is not adjusted since it will overwrite - * the already applied relocation. - */ - if (ld->ld_reloc || - (ld->ld_emit_reloc && ld->ld_arch->reloc_is_rela)) - ld->ld_arch->adjust_reloc(ld, is, lre, lsb, buf); - - /* - * Update the relocation offset to make it point to the - * correct place in the output section. For -emit-relocs - * option, the section VMA is used. For relocatable output - * object, the section relative offset is added to the - * relocation offset. - */ - if (ld->ld_reloc) - lre->lre_offset += is->is_reloff; - else if (ld->ld_emit_reloc) - lre->lre_offset += os->os_addr + is->is_reloff; - } -} diff --git a/contrib/elftoolchain/ld/ld_reloc.h b/contrib/elftoolchain/ld/ld_reloc.h deleted file mode 100644 index 96e0e2f4..00000000 --- a/contrib/elftoolchain/ld/ld_reloc.h +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -struct ld_symbol; -struct ld_input_section; -struct ld_output_section; - -struct ld_reloc_entry { - struct ld_input_section *lre_tis; /* input section to apply to */ - struct ld_symbol *lre_sym; /* reloc symbol */ - uint64_t lre_type; /* reloc type */ - uint64_t lre_offset; /* reloc offset */ - uint64_t lre_addend; /* reloc addend */ - STAILQ_ENTRY(ld_reloc_entry) lre_next; /* next reloc */ -}; - -STAILQ_HEAD(ld_reloc_entry_head, ld_reloc_entry); - -enum ld_tls_relax { - TLS_RELAX_NONE, - TLS_RELAX_INIT_EXEC, - TLS_RELAX_LOCAL_EXEC -}; - -void ld_reloc_create_entry(struct ld *, const char *, - struct ld_input_section *, uint64_t, struct ld_symbol *, uint64_t, - int64_t); -void ld_reloc_deferred_scan(struct ld *); -void ld_reloc_finalize(struct ld *, struct ld_output_section *); -void ld_reloc_finalize_dynamic(struct ld *, struct ld_output *, - struct ld_output_section *); -void ld_reloc_gc_sections(struct ld *); -void ld_reloc_join(struct ld *, struct ld_output_section *, - struct ld_input_section *); -void ld_reloc_sort(struct ld *, struct ld_output_section *); -void ld_reloc_load(struct ld *); -void ld_reloc_process_input_section(struct ld *, struct ld_input_section *, - void *); -int ld_reloc_require_plt(struct ld *, struct ld_reloc_entry *); -int ld_reloc_require_copy_reloc(struct ld *, struct ld_reloc_entry *); -int ld_reloc_require_dynamic_reloc(struct ld *, struct ld_reloc_entry *); -int ld_reloc_require_glob_dat(struct ld *, struct ld_reloc_entry *); -int ld_reloc_relative_relax(struct ld *, struct ld_reloc_entry *); -void *ld_reloc_serialize(struct ld *, struct ld_output_section *, size_t *); diff --git a/contrib/elftoolchain/ld/ld_script.awk b/contrib/elftoolchain/ld/ld_script.awk deleted file mode 100644 index 5a2e5f40..00000000 --- a/contrib/elftoolchain/ld/ld_script.awk +++ /dev/null @@ -1,25 +0,0 @@ -# Transform text file contents into a string literal. -# -# Usage: awk -f THIS-SCRIPT INPUT > OUTPUT -# -# $Id$ - -BEGIN { - # Generate a symbol name based on the last component - # of the input file name. - split(ARGV[1], s, "."); - sub(".*/", "", s[1]); - printf "const char *%s = ", s[1]; -} - -# Enclose each line of text with a preceding and trailing '"', -# escaping any '"' characters that are present. -{ - printf "\""; - gsub("\"", "\\\""); - printf "%s\\n\"\n", $0; -} - -END { - print ";"; -} diff --git a/contrib/elftoolchain/ld/ld_script.c b/contrib/elftoolchain/ld/ld_script.c deleted file mode 100644 index 1c7f9244..00000000 --- a/contrib/elftoolchain/ld/ld_script.c +++ /dev/null @@ -1,785 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_exp.h" -#include "ld_options.h" -#include "ld_script.h" -#include "ld_file.h" -#include "ld_symbols.h" -#include "ld_output.h" - -ELFTC_VCSID("$Id$"); - -static void _input_file_add(struct ld *ld, struct ld_script_input_file *ldif); -static void _overlay_section_free(void *ptr); -static struct ld_script_variable *_variable_find(struct ld *ld, char *name); - -#define _variable_add(v) \ - HASH_ADD_KEYPTR(hh, ld->ld_scp->lds_v, (v)->ldv_name, \ - strlen((v)->ldv_name), (v)) - -struct ld_script_cmd * -ld_script_assert(struct ld *ld, struct ld_exp *exp, char *msg) -{ - struct ld_script_assert *a; - - if ((a = calloc(1, sizeof(*a))) == NULL) - ld_fatal_std(ld, "calloc"); - a->lda_exp = exp; - a->lda_msg = msg; - - return (ld_script_cmd(ld, LSC_ASSERT, a)); -} - -struct ld_script_assign * -ld_script_assign(struct ld *ld, struct ld_exp *var, enum ld_script_assign_op op, - struct ld_exp *val, unsigned provide, unsigned hidden) -{ - struct ld_script_assign *lda; - struct ld_script_variable *ldv; - - if ((lda = calloc(1, sizeof(*lda))) == NULL) - ld_fatal_std(ld, "calloc"); - - lda->lda_var = var; - lda->lda_op = op; - lda->lda_val = val; - lda->lda_provide = provide; - - if ((ldv = _variable_find(ld, var->le_name)) == NULL) { - ldv = calloc(1, sizeof(*ldv)); - if ((ldv->ldv_name = strdup(var->le_name)) == NULL) - ld_fatal_std(ld, "strdup"); - _variable_add(ldv); - if (*var->le_name != '.') - ld_symbols_add_variable(ld, ldv, provide, hidden); - } - - return (lda); -} - -void -ld_script_assign_dump(struct ld *ld, struct ld_script_assign *lda) -{ - - printf("%16s", ""); - printf("0x%016jx ", (uintmax_t) lda->lda_res); - - if (lda->lda_provide) - printf("PROVIDE("); - - ld_exp_dump(ld, lda->lda_var); - - switch (lda->lda_op) { - case LSAOP_ADD_E: - printf(" += "); - break; - case LSAOP_AND_E: - printf(" &= "); - break; - case LSAOP_DIV_E: - printf(" /= "); - break; - case LSAOP_E: - printf(" = "); - break; - case LSAOP_LSHIFT_E: - printf(" <<= "); - break; - case LSAOP_MUL_E: - printf(" *= "); - break; - case LSAOP_OR_E: - printf(" |= "); - break; - case LSAOP_RSHIFT_E: - printf(" >>= "); - break; - case LSAOP_SUB_E: - printf(" -= "); - break; - default: - ld_fatal(ld, "internal: unknown assignment op: %d", - lda->lda_op); - } - - ld_exp_dump(ld, lda->lda_val); - - if (lda->lda_provide) - printf(")"); - - printf("\n"); -} - -void -ld_script_assign_free(struct ld_script_assign *lda) -{ - - if (lda == NULL) - return; - ld_exp_free(lda->lda_var); - ld_exp_free(lda->lda_val); - free(lda); -} - -static void -_update_variable_section(struct ld *ld, struct ld_script_variable *ldv) -{ - struct ld_output_section *os, *last; - - if (ldv->ldv_os_base) { - /* Get base address of the section. */ - STAILQ_FOREACH(os, &ld->ld_output->lo_oslist, os_next) { - if (strcmp(os->os_name, ldv->ldv_os_base) == 0) { - ldv->ldv_base = os->os_addr; - ldv->ldv_os_ref = ldv->ldv_os_base; - ldv->ldv_os_base = 0; - break; - } - } - } - - if (ldv->ldv_os_ref) { - /* Bind the symbol to the last section. */ - last = 0; - STAILQ_FOREACH(os, &ld->ld_output->lo_oslist, os_next) { - if (! os->os_empty) - last = os; - if (strcmp(os->os_name, ldv->ldv_os_ref) == 0) { - if (last) { - ldv->ldv_symbol->lsb_shndx = elf_ndxscn(last->os_scn); - } - ldv->ldv_os_ref = 0; - break; - } - } - } -} - -void -ld_script_process_assign(struct ld *ld, struct ld_script_assign *lda) -{ - struct ld_state *ls; - struct ld_exp *var; - struct ld_script_variable *ldv; - - ls = &ld->ld_state; - var = lda->lda_var; - ldv = _variable_find(ld, var->le_name); - assert(ldv != NULL); - - ldv->ldv_val = ld_exp_eval(ld, lda->lda_val); - if (*var->le_name == '.') { - /* - * TODO: location counter is allowed to move backwards - * outside output section descriptor, as long as the - * move will not cause overlapping LMA's. - */ - if ((uint64_t) ldv->ldv_val < ls->ls_loc_counter) - ld_fatal(ld, "cannot move location counter backwards" - " from %#jx to %#jx", - (uintmax_t) ls->ls_loc_counter, - (uintmax_t) ldv->ldv_val); - ls->ls_loc_counter = (uint64_t) ldv->ldv_val; - - } else if (ldv->ldv_symbol != NULL) { - _update_variable_section(ld, ldv); - ldv->ldv_symbol->lsb_value = ldv->ldv_val + ldv->ldv_base; - } - lda->lda_res = ldv->ldv_val; -} - -void -ld_script_process_entry(struct ld *ld, char *name) -{ - - if (ld->ld_scp->lds_entry_point != NULL) { - free(ld->ld_scp->lds_entry_point); - ld->ld_scp->lds_entry_point = NULL; - } - - ld->ld_scp->lds_entry_point = strdup(name); - if (ld->ld_scp->lds_entry_point == NULL) - ld_fatal_std(ld, "strdup"); -} - -int64_t -ld_script_variable_value(struct ld *ld, char *name) -{ - struct ld_script_variable *ldv; - struct ld_state *ls; - - ls = &ld->ld_state; - if (*name == '.') - return (ls->ls_loc_counter); - - ldv = _variable_find(ld, name); - assert(ldv != NULL); - - return (ldv->ldv_val); -} - -struct ld_script_cmd * -ld_script_cmd(struct ld *ld, enum ld_script_cmd_type type, void *cmd) -{ - struct ld_script_cmd *ldc; - - if ((ldc = calloc(1, sizeof(*ldc))) == NULL) - ld_fatal_std(ld, "calloc"); - ldc->ldc_type = type; - ldc->ldc_cmd = cmd; - - return (ldc); -} - -void -ld_script_cmd_insert(struct ld_script_cmd_head *head, struct ld_script_cmd *ldc) -{ - - STAILQ_INSERT_TAIL(head, ldc, ldc_next); -} - -static void -_overlay_section_free(void *ptr) -{ - struct ld_script_cmd *c, *_c; - struct ld_script_sections_overlay_section *ldos; - - ldos = ptr; - if (ldos == NULL) - return; - free(ldos->ldos_name); - ld_script_list_free(ldos->ldos_phdr, free); - ld_exp_free(ldos->ldos_fill); - STAILQ_FOREACH_SAFE(c, &ldos->ldos_c, ldc_next, _c) { - STAILQ_REMOVE(&ldos->ldos_c, c, ld_script_cmd, ldc_next); - ld_script_cmd_free(c); - } - free(ldos); -} - -void -ld_script_cmd_free(struct ld_script_cmd *ldc) -{ - struct ld_script_cmd *c, *_c; - struct ld_script_assert *lda; - struct ld_script_sections *ldss; - struct ld_script_sections_output *ldso; - struct ld_script_sections_output_data *ldod; - struct ld_script_sections_output_input *ldoi; - struct ld_script_sections_overlay *ldso2; - - switch (ldc->ldc_type) { - case LSC_ASSERT: - lda = ldc->ldc_cmd; - ld_exp_free(lda->lda_exp); - free(lda->lda_msg); - free(lda); - break; - - case LSC_ASSIGN: - ld_script_assign_free(ldc->ldc_cmd); - break; - - case LSC_ENTRY: - free(ldc->ldc_cmd); - break; - - case LSC_SECTIONS: - ldss = ldc->ldc_cmd; - STAILQ_FOREACH_SAFE(c, &ldss->ldss_c, ldc_next, _c) { - STAILQ_REMOVE(&ldss->ldss_c, c, ld_script_cmd, - ldc_next); - ld_script_cmd_free(c); - } - free(ldss); - break; - - case LSC_SECTIONS_OUTPUT: - ldso = ldc->ldc_cmd; - free(ldso->ldso_name); - free(ldso->ldso_type); - ld_exp_free(ldso->ldso_vma); - ld_exp_free(ldso->ldso_lma); - ld_exp_free(ldso->ldso_align); - ld_exp_free(ldso->ldso_subalign); - free(ldso->ldso_constraint); - free(ldso->ldso_region); - free(ldso->ldso_lma_region); - ld_script_list_free(ldso->ldso_phdr, free); - ld_exp_free(ldso->ldso_fill); - STAILQ_FOREACH_SAFE(c, &ldso->ldso_c, ldc_next, _c) { - STAILQ_REMOVE(&ldso->ldso_c, c, ld_script_cmd, - ldc_next); - ld_script_cmd_free(c); - } - free(ldso); - break; - - case LSC_SECTIONS_OUTPUT_DATA: - ldod = ldc->ldc_cmd; - ld_exp_free(ldod->ldod_exp); - free(ldod); - break; - - case LSC_SECTIONS_OUTPUT_INPUT: - ldoi = ldc->ldc_cmd; - ld_wildcard_free(ldoi->ldoi_ar); - ld_wildcard_free(ldoi->ldoi_file); - ld_script_list_free(ldoi->ldoi_exclude, ld_wildcard_free); - ld_script_list_free(ldoi->ldoi_sec, ld_wildcard_free); - free(ldoi); - break; - - case LSC_SECTIONS_OVERLAY: - ldso2 = ldc->ldc_cmd; - ld_exp_free(ldso2->ldso_vma); - ld_exp_free(ldso2->ldso_lma); - free(ldso2->ldso_region); - ld_script_list_free(ldso2->ldso_phdr, free); - ld_exp_free(ldso2->ldso_fill); - ld_script_list_free(ldso2->ldso_s, _overlay_section_free); - free(ldso2); - break; - - default: - break; - } - - free(ldc); -} - -void -ld_script_extern(struct ld *ld, struct ld_script_list *list) -{ - struct ld_script_list *ldl; - - ldl = list; - while (ldl != NULL) { - ld_symbols_add_extern(ld, ldl->ldl_entry); - ldl = ldl->ldl_next; - } - ld_script_list_free(list, free); -} - -void -ld_script_group(struct ld *ld, struct ld_script_list *list) -{ - struct ld_script_list *ldl; - - ld->ld_state.ls_group_level++; - if (ld->ld_state.ls_group_level > LD_MAX_NESTED_GROUP) - ld_fatal(ld, "too many nested archive groups"); - ldl = list; - while (ldl != NULL) { - _input_file_add(ld, ldl->ldl_entry); - ldl = ldl->ldl_next; - } - ld->ld_state.ls_group_level--; - ld_script_list_free(list, free); -} - -void -ld_script_init(struct ld *ld) -{ - - ld->ld_scp = calloc(1, sizeof(*ld->ld_scp)); - if (ld->ld_scp == NULL) - ld_fatal_std(ld, "calloc"); - - STAILQ_INIT(&ld->ld_scp->lds_a); - STAILQ_INIT(&ld->ld_scp->lds_c); - STAILQ_INIT(&ld->ld_scp->lds_n); - STAILQ_INIT(&ld->ld_scp->lds_p); - STAILQ_INIT(&ld->ld_scp->lds_r); - STAILQ_INIT(&ld->ld_scp->lds_vn); - - ld_script_parse_internal(); -} - -void -ld_script_cleanup(struct ld *ld) -{ - struct ld_script *lds; - struct ld_script_phdr *p, *_p; - struct ld_script_region *r, *_r; - struct ld_script_region_alias *a, *_a; - struct ld_script_nocrossref *n, *_n; - struct ld_script_cmd *c, *_c; - struct ld_script_variable *v, *_v; - - if (ld->ld_scp == NULL) - return; - - lds = ld->ld_scp; - - if (lds->lds_entry_point != NULL) { - free(lds->lds_entry_point); - lds->lds_entry_point = NULL; - } - - STAILQ_FOREACH_SAFE(p, &lds->lds_p, ldsp_next, _p) { - STAILQ_REMOVE(&lds->lds_p, p, ld_script_phdr, ldsp_next); - free(p->ldsp_name); - free(p->ldsp_type); - ld_exp_free(p->ldsp_addr); - free(p); - } - - STAILQ_FOREACH_SAFE(r, &lds->lds_r, ldsr_next, _r) { - STAILQ_REMOVE(&lds->lds_r, r, ld_script_region, ldsr_next); - free(r->ldsr_name); - free(r->ldsr_attr); - ld_exp_free(r->ldsr_origin); - ld_exp_free(r->ldsr_len); - free(r); - } - - STAILQ_FOREACH_SAFE(a, &lds->lds_a, ldra_next, _a) { - STAILQ_REMOVE(&lds->lds_a, a, ld_script_region_alias, - ldra_next); - free(a->ldra_alias); - free(a->ldra_region); - free(a); - } - - STAILQ_FOREACH_SAFE(n, &lds->lds_n, ldn_next, _n) { - STAILQ_REMOVE(&lds->lds_n, n, ld_script_nocrossref, ldn_next); - ld_script_list_free(n->ldn_l, free); - free(n); - } - - STAILQ_FOREACH_SAFE(c, &lds->lds_c, ldc_next, _c) { - STAILQ_REMOVE(&lds->lds_c, c, ld_script_cmd, ldc_next); - ld_script_cmd_free(c); - } - - if (lds->lds_v != NULL) { - HASH_ITER(hh, lds->lds_v, v, _v) { - HASH_DEL(lds->lds_v, v); - free(v->ldv_name); - free(v); - } - lds->lds_v = NULL; - } -} - -void -ld_script_input(struct ld *ld, struct ld_script_list *list) -{ - struct ld_script_list *ldl; - - ld->ld_state.ls_search_dir = 1; - ldl = list; - while (ldl != NULL) { - _input_file_add(ld, ldl->ldl_entry); - ldl = ldl->ldl_next; - } - ld->ld_state.ls_search_dir = 0; - ld_script_list_free(list, free); -} - -struct ld_script_input_file * -ld_script_input_file(struct ld *ld, unsigned as_needed, void *in) -{ - struct ld_script_input_file *ldif; - - if ((ldif = calloc(1, sizeof(*ldif))) == NULL) - ld_fatal_std(ld, "calloc"); - ldif->ldif_as_needed = as_needed; - if (as_needed) - ldif->ldif_u.ldif_ldl = in; - else - ldif->ldif_u.ldif_name = in; - - return (ldif); -} - -struct ld_script_list * -ld_script_list(struct ld *ld, struct ld_script_list *list, void *entry) -{ - struct ld_script_list *ldl; - - if ((ldl = malloc(sizeof(*ldl))) == NULL) - ld_fatal_std(ld, "malloc"); - ldl->ldl_entry = entry; - ldl->ldl_next = list; - - return (ldl); -} - -void -ld_script_list_free(struct ld_script_list *list, void (*_free)(void *ptr)) -{ - struct ld_script_list *ldl; - - if (list == NULL) - return; - - do { - ldl = list; - list = ldl->ldl_next; - if (ldl->ldl_entry) - _free(ldl->ldl_entry); - free(ldl); - } while (list != NULL); -} - -struct ld_script_list * -ld_script_list_reverse(struct ld_script_list *list) -{ - struct ld_script_list *root, *next; - - root = NULL; - while (list != NULL) { - next = list->ldl_next; - list->ldl_next = root; - root = list; - list = next; - } - - return (root); -} - -void -ld_script_nocrossrefs(struct ld *ld, struct ld_script_list *list) -{ - struct ld_script_nocrossref *ldn; - - if ((ldn = calloc(1, sizeof(*ldn))) == NULL) - ld_fatal_std(ld, "calloc"); - ldn->ldn_l = list; - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_n, ldn, ldn_next); -} - -struct ld_script_phdr * -ld_script_phdr(struct ld *ld, char *name, char *type, unsigned filehdr, - unsigned phdrs, struct ld_exp *addr, unsigned flags) -{ - struct ld_script_phdr *ldsp; - - if ((ldsp = calloc(1, sizeof(*ldsp))) == NULL) - ld_fatal_std(ld, "calloc"); - - ldsp->ldsp_name = name; - ldsp->ldsp_type = type; - ldsp->ldsp_filehdr = filehdr; - ldsp->ldsp_phdrs = phdrs; - ldsp->ldsp_addr = addr; - ldsp->ldsp_flags = flags; - - return (ldsp); -} - -struct ld_script_region * -ld_script_region(struct ld *ld, char *name, char *attr, struct ld_exp *origin, - struct ld_exp *len) -{ - struct ld_script_region *ldsr; - - if ((ldsr = malloc(sizeof(*ldsr))) == NULL) - ld_fatal_std(ld, "malloc"); - - ldsr->ldsr_name = name; - ldsr->ldsr_attr = attr; - ldsr->ldsr_origin = origin; - ldsr->ldsr_len = len; - - return (ldsr); -} - -void -ld_script_region_alias(struct ld *ld, char *alias, char *region) -{ - struct ld_script_region_alias *ldra; - - if ((ldra = calloc(1, sizeof(*ldra))) == NULL) - ld_fatal_std(ld, "calloc"); - - ldra->ldra_alias = alias; - ldra->ldra_region = region; - - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_a, ldra, ldra_next); -} - -void -ld_script_version_add_node(struct ld *ld, char *ver, void *head, char *depend) -{ - struct ld_script_version_node *ldvn; - - if ((ldvn = calloc(1, sizeof(*ldvn))) == NULL) - ld_fatal_std(ld, "calloc"); - - ldvn->ldvn_name = ver; - if (ldvn->ldvn_name == NULL) { - /* - * Version name can be omitted only when this is the only - * node in the version script. - */ - if (ld->ld_scp->lds_vn_name_omitted || - !STAILQ_EMPTY(&ld->ld_scp->lds_vn)) - ld_fatal(ld, "version script can only have one " - "version node that is without a version name"); - ld->ld_scp->lds_vn_name_omitted = 1; - } - - ldvn->ldvn_dep = depend; - ldvn->ldvn_e = head; - - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_vn, ldvn, ldvn_next); -} - -struct ld_script_version_entry * -ld_script_version_alloc_entry(struct ld *ld, char *sym, void *extern_block) -{ - struct ld_state *ls; - struct ld_script_version_entry *ldve; - int ignore; - char *p; - - ls = &ld->ld_state; - - if ((ldve = calloc(1, sizeof(*ldve))) == NULL) - ld_fatal_std(ld, "calloc"); - - ldve->ldve_sym = sym; - ldve->ldve_local = ls->ls_version_local; - ldve->ldve_list = extern_block; - - if (ldve->ldve_sym == NULL) - return (ldve); - - ignore = 0; - for (p = ldve->ldve_sym; *p != '\0'; p++) { - switch (*p) { - case '\\': - /* Ignore the next char */ - ignore = 1; - break; - case '?': - case '*': - case '[': - if (!ignore) { - ldve->ldve_glob = 1; - goto done; - } else - ignore = 0; - } - } - -done: - return (ldve); -} - -void * -ld_script_version_link_entry(struct ld *ld, - struct ld_script_version_entry_head *head, - struct ld_script_version_entry *ldve) -{ - - if (ldve == NULL) - return (head); - - if (head == NULL) { - if ((head = calloc(1, sizeof(*head))) == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(head); - } - - if (ldve->ldve_list != NULL) { - STAILQ_CONCAT(head, ldve->ldve_list); - free(ldve->ldve_list); - free(ldve); - } else - STAILQ_INSERT_TAIL(head, ldve, ldve_next); - - return (head); -} - -void -ld_script_version_set_lang(struct ld * ld, - struct ld_script_version_entry_head *head, char *lang) -{ - struct ld_script_version_entry *ldve; - enum ld_script_version_lang vl; - - vl = VL_C; - - if (!strcasecmp(lang, "c")) - vl = VL_C; - else if (!strcasecmp(lang, "c++")) - vl = VL_CPP; - else if (!strcasecmp(lang, "java")) - vl = VL_JAVA; - else - ld_warn(ld, "unrecognized language `%s' in version script", - lang); - - STAILQ_FOREACH(ldve, head, ldve_next) { - /* Do not overwrite lang set by inner extern blocks. */ - if (!ldve->ldve_lang_set) { - ldve->ldve_lang = vl; - ldve->ldve_lang_set = 1; - } - } -} - - -static void -_input_file_add(struct ld *ld, struct ld_script_input_file *ldif) -{ - struct ld_state *ls; - struct ld_script_list *ldl; - unsigned old_as_needed; - - ls = &ld->ld_state; - - if (!ldif->ldif_as_needed) { - ld_file_add(ld, ldif->ldif_u.ldif_name, LFT_UNKNOWN); - free(ldif->ldif_u.ldif_name); - } else { - old_as_needed = ls->ls_as_needed; - ls->ls_as_needed = 1; - ldl = ldif->ldif_u.ldif_ldl; - while (ldl != NULL) { - ld_file_add(ld, ldl->ldl_entry, LFT_UNKNOWN); - ldl = ldl->ldl_next; - } - ls->ls_as_needed = old_as_needed; - ld_script_list_free(ldif->ldif_u.ldif_ldl, free); - } -} - -static struct ld_script_variable * -_variable_find(struct ld *ld, char *name) -{ - struct ld_script_variable *ldv; - - HASH_FIND_STR(ld->ld_scp->lds_v, name, ldv); - - return (ldv); -} diff --git a/contrib/elftoolchain/ld/ld_script.h b/contrib/elftoolchain/ld/ld_script.h deleted file mode 100644 index 36c5e269..00000000 --- a/contrib/elftoolchain/ld/ld_script.h +++ /dev/null @@ -1,290 +0,0 @@ -/*- - * Copyright (c) 2011-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -enum ld_script_cmd_type { - LSC_ASSERT, - LSC_ASSIGN, - LSC_AS_NEEDED, - LSC_ENTRY, - LSC_EXTERN, - LSC_FCA, - LSC_HIDDEN_ASSIGN, - LSC_ICA, - LSC_INPUT, - LSC_MEMORY, - LSC_NOCROSSREFS, - LSC_OUTPUT, - LSC_OUTPUT_ARCH, - LSC_OUTPUT_FORMAT, - LSC_PHDRS, - LSC_PROVIDE_ASSIGN, - LSC_REGION_ALIAS, - LSC_SEARCH_DIR, - LSC_SECTIONS, - LSC_SECTIONS_OUTPUT, - LSC_SECTIONS_OUTPUT_DATA, - LSC_SECTIONS_OUTPUT_INPUT, - LSC_SECTIONS_OUTPUT_KEYWORD, - LSC_SECTIONS_OVERLAY, - LSC_STARTUP, - LSC_TARGET, - LSC_VERSION, -}; - -struct ld_script_cmd { - enum ld_script_cmd_type ldc_type; /* ldscript cmd type */ - void *ldc_cmd; /* ldscript cmd */ - STAILQ_ENTRY(ld_script_cmd) ldc_next; /* next cmd */ -}; - -STAILQ_HEAD(ld_script_cmd_head, ld_script_cmd); - -struct ld_script_list { - void *ldl_entry; /* list entry */ - struct ld_script_list *ldl_next; /* next entry */ -}; - -struct ld_script_assert { - struct ld_exp *lda_exp; /* expression to assert */ - char *lda_msg; /* assertion message */ -}; - -enum ld_script_assign_op { - LSAOP_ADD_E, - LSAOP_AND_E, - LSAOP_DIV_E, - LSAOP_E, - LSAOP_LSHIFT_E, - LSAOP_MUL_E, - LSAOP_OR_E, - LSAOP_RSHIFT_E, - LSAOP_SUB_E, -}; - -struct ld_script_assign { - struct ld_exp *lda_var; /* symbol */ - struct ld_exp *lda_val; /* value */ - enum ld_script_assign_op lda_op; /* assign op */ - unsigned lda_provide; /* provide assign */ - int64_t lda_res; /* assign result */ -}; - -struct ld_script_input_file { - unsigned ldif_as_needed; /* as_needed list */ - union { - char *ldif_name; /* input file name */ - struct ld_script_list *ldif_ldl; /* input file list */ - } ldif_u; -}; - -struct ld_script_nocrossref { - struct ld_script_list *ldn_l; /* nocrossref sections */ - STAILQ_ENTRY(ld_script_nocrossref) ldn_next; /* next nocrossref */ -}; - -struct ld_script_region { - char *ldsr_name; /* memory region name */ - char *ldsr_attr; /* memory region attribute */ - struct ld_exp *ldsr_origin; /* memroy region start address */ - struct ld_exp *ldsr_len; /* memroy region length */ - STAILQ_ENTRY(ld_script_region) ldsr_next; /* next memory region */ -}; - -struct ld_script_region_alias { - char *ldra_alias; /* memory region alias name */ - char *ldra_region; /* memory region */ - STAILQ_ENTRY(ld_script_region_alias) ldra_next; /* next region alias */ -}; - -struct ld_script_phdr { - char *ldsp_name; /* phdr name */ - char *ldsp_type; /* phdr type */ - unsigned ldsp_filehdr; /* FILEHDR keyword */ - unsigned ldsp_phdrs; /* PHDRS keyword */ - struct ld_exp *ldsp_addr; /* segment address */ - unsigned ldsp_flags; /* segment flags */ - STAILQ_ENTRY(ld_script_phdr) ldsp_next; /* next phdr */ -}; - -enum ld_script_sections_output_data_type { - LSODT_BYTE, - LSODT_SHORT, - LSODT_LONG, - LSODT_QUAD, - LSODT_SQUAD, - LSODT_FILL, -}; - -struct ld_script_sections_output_data { - enum ld_script_sections_output_data_type ldod_type; /* data type */ - struct ld_exp *ldod_exp; /* data expression */ -}; - -struct ld_script_sections_output_input { - struct ld_wildcard *ldoi_ar; /* archive name */ - struct ld_wildcard *ldoi_file; /* file/member name */ - struct ld_script_list *ldoi_exclude; /* exclude file list */ - struct ld_script_list *ldoi_sec; /* section name list */ - unsigned ldoi_flags; /* input section flags */ - unsigned ldoi_keep; /* keep input section */ -}; - -enum ld_script_sections_output_keywords { - LSOK_CONSTRUCTORS, - LSOK_CONSTRUCTORS_SORT_BY_NAME, - LSOK_CREATE_OBJECT_SYMBOLS, -}; - -struct ld_script_sections_output { - char *ldso_name; /* output section name */ - char *ldso_type; /* output section type */ - struct ld_exp *ldso_vma; /* output section vma */ - struct ld_exp *ldso_lma; /* output section lma */ - struct ld_exp *ldso_align; /* output section align */ - struct ld_exp *ldso_subalign; /* output sectino subalign */ - char *ldso_constraint; /* output section constraint */ - char *ldso_region; /* output section region */ - char *ldso_lma_region; /* output section lma region */ - struct ld_script_list *ldso_phdr; /* output section segment list */ - struct ld_exp *ldso_fill; /* output section fill exp */ - struct ld_script_cmd_head ldso_c; /* output section cmd list */ -}; - -struct ld_script_sections_overlay_section { - char *ldos_name; /* overlay section name */ - struct ld_script_list *ldos_phdr; /* overlay section segment */ - struct ld_exp *ldos_fill; /* overlay section fill exp */ - struct ld_script_cmd_head ldos_c; /* output section cmd list */ -}; - -struct ld_script_sections_overlay { - struct ld_exp *ldso_vma; /* overlay vma */ - struct ld_exp *ldso_lma; /* overlay lma */ - unsigned ldso_nocrossref; /* no corss-ref between sections */ - char *ldso_region; /* overlay region */ - struct ld_script_list *ldso_phdr; /* overlay segment */ - struct ld_exp *ldso_fill; /* overlay fill exp */ - struct ld_script_list *ldso_s; /* overlay section list */ -}; - -struct ld_script_sections { - struct ld_script_cmd_head ldss_c; /* section cmd list */ -}; - -struct ld_script_variable { - char *ldv_name; /* variable name */ - char *ldv_os_base; /* add base address of this section */ - char *ldv_os_ref; /* link symbol to this section */ - struct ld_symbol *ldv_symbol; /* assoicated symbol */ - int64_t ldv_val; /* variable value */ - int64_t ldv_base; /* base value */ - UT_hash_handle hh; /* hash handle */ -}; - -enum ld_script_version_lang { - VL_C = 0, - VL_CPP, - VL_JAVA -}; - -struct ld_script_version_entry_head; - -struct ld_script_version_entry { - enum ld_script_version_lang ldve_lang; /* version entry lanauage */ - char *ldve_sym; /* symbol wildcard */ - unsigned char ldve_local; /* symbol scope */ - unsigned char ldve_glob; /* ldve_sym contains glob chars. */ - STAILQ_ENTRY(ld_script_version_entry) ldve_next; - - /* Following fields are only used during script parsing. */ - struct ld_script_version_entry_head *ldve_list; /* extern block */ - unsigned char ldve_lang_set; /* lang is set */ -}; - -STAILQ_HEAD(ld_script_version_entry_head, ld_script_version_entry); - -struct ld_script_version_node { - char *ldvn_name; /* version name */ - char *ldvn_dep; /* version dependency */ - struct ld_script_version_entry_head *ldvn_e; /* version entries */ - STAILQ_ENTRY(ld_script_version_node) ldvn_next; -}; - -struct ld_script { - char *lds_entry_point; /* entry point symbol */ - STAILQ_HEAD(, ld_script_phdr) lds_p; /* phdr table */ - STAILQ_HEAD(, ld_script_region_alias) lds_a; /* region aliases list */ - STAILQ_HEAD(, ld_script_region) lds_r; /* memory region list */ - STAILQ_HEAD(, ld_script_nocrossref) lds_n; /* nocrossref list */ - STAILQ_HEAD(, ld_script_version_node) lds_vn; /* version node list */ - unsigned char lds_vn_name_omitted; /* version node w/o name exists */ - struct ld_script_cmd_head lds_c; /* other ldscript cmd list */ - struct ld_script_variable *lds_v; /* variable table */ - char *lds_last_os_name; /* last output section */ - char *lds_base_os_name; /* current output section */ -}; - -struct ld_script_cmd *ld_script_assert(struct ld *, struct ld_exp *, char *); -struct ld_script_assign *ld_script_assign(struct ld *, struct ld_exp *, - enum ld_script_assign_op, struct ld_exp *, unsigned, unsigned); -void ld_script_assign_dump(struct ld *, struct ld_script_assign *); -void ld_script_assign_free(struct ld_script_assign *); -void ld_script_cleanup(struct ld *); -struct ld_script_cmd *ld_script_cmd(struct ld *, enum ld_script_cmd_type, - void *); -void ld_script_cmd_free(struct ld_script_cmd *); -void ld_script_cmd_insert(struct ld_script_cmd_head *, - struct ld_script_cmd *); -void ld_script_extern(struct ld *, struct ld_script_list *); -void ld_script_group(struct ld *, struct ld_script_list *); -void ld_script_init(struct ld *); -void ld_script_input(struct ld *, struct ld_script_list *); -struct ld_script_input_file *ld_script_input_file(struct ld *, unsigned, - void *); -struct ld_script_list *ld_script_list(struct ld *, struct ld_script_list *, - void *); -void ld_script_list_free(struct ld_script_list *, void (*)(void *)); -struct ld_script_list *ld_script_list_reverse(struct ld_script_list *); -void ld_script_nocrossrefs(struct ld *, struct ld_script_list *); -struct ld_script_phdr *ld_script_phdr(struct ld *, char *, char *, unsigned, - unsigned, struct ld_exp *, unsigned); -void ld_script_parse(const char *); -void ld_script_parse_internal(void); -struct ld_script_region *ld_script_region(struct ld *, char *, char *, - struct ld_exp *, struct ld_exp *); -void ld_script_process_assign(struct ld *, struct ld_script_assign *); -void ld_script_process_entry(struct ld *, char *); -void ld_script_region_alias(struct ld *, char *, char *); -int64_t ld_script_variable_value(struct ld *, char *); -void ld_script_version_add_node(struct ld *, char *, void *, char *); -struct ld_script_version_entry *ld_script_version_alloc_entry(struct ld *, - char *, void *); -void *ld_script_version_link_entry(struct ld *, - struct ld_script_version_entry_head *, struct ld_script_version_entry *); -void ld_script_version_set_lang(struct ld *, - struct ld_script_version_entry_head *, char *); diff --git a/contrib/elftoolchain/ld/ld_script_lexer.l b/contrib/elftoolchain/ld/ld_script_lexer.l deleted file mode 100644 index 781f70af..00000000 --- a/contrib/elftoolchain/ld/ld_script_lexer.l +++ /dev/null @@ -1,265 +0,0 @@ -%{ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_script_parser.h" - -ELFTC_VCSID("$Id$"); - -#define YY_NO_UNPUT -int lineno = 1; - -int yylex(void); - -static void _calc_num(void); -static void _get_string(void); -static void _get_ident(void); -static void _skip_comment(void); - -%} - -DEC [0-9]+[kKmMdD]? -OCT (0[0-7]*+[kKmM]?)|([0-7]+[oO]) -HEX (0[xX][0-9a-fA-F]+[kKmMhH]?)|([0-9a-fA-F]+[hH]) -IDENT [-_A-Za-z/:$.\\~][-_A-Za-z/:$.\\~0-9]* -WILDCARD [-_A-Za-z/:$.\\~0-9\[\]?*]+ -MATTR \(!?[rRwWxXaAiIlL]+\) - -%option noyywrap -%option never-interactive -%option nounput - -%% - -ABSOLUTE { return (T_ABSOLUTE); } -ADDR { return (T_ADDR); } -ALIGN { return (T_ALIGN); } -ALIGNOF { return (T_ALIGNOF); } -ASSERT { return (T_ASSERT); } -AS_NEEDED { return (T_AS_NEEDED); } -AT { return (T_AT); } -BIND { return (T_BIND); } -BLOCK { return (T_BLOCK); } -BYTE { return (T_BYTE); } -COMMONPAGESIZE { _get_ident(); return (T_COMMONPAGESIZE); } -CONSTANT { return (T_CONSTANT); } -CONSTRUCTORS { return (T_CONSTRUCTORS); } -COPY { return (T_COPY); } -CREATE_OBJECT_SYMBOLS { return (T_CREATE_OBJECT_SYMBOLS); } -DATA_SEGMENT_ALIGN { return (T_DATA_SEGMENT_ALIGN); } -DATA_SEGMENT_END { return (T_DATA_SEGMENT_END); } -DATA_SEGMENT_RELRO_END { return (T_DATA_SEGMENT_RELRO_END); } -DEFINED { return (T_DEFINED); } -DSECT { return (T_DSECT); } -ENTRY { return (T_ENTRY); } -EXCLUDE_FILE { return (T_EXCLUDE_FILE); } -EXTERN { return (T_EXTERN); } -FILEHDR { return (T_FILEHDR); } -FILL { return (T_FILL); } -FLAGS { return (T_FLAGS); } -FLOAT { return (T_FLOAT); } -FORCE_COMMON_ALLOCATION { return (T_FORCE_COMMON_ALLOCATION); } -GROUP { return (T_GROUP); } -HLL { return (T_HLL); } -INCLUDE { return (T_INCLUDE); } -INFO { return (T_INFO); } -INHIBIT_COMMON_ALLOCATION { return (T_INHIBIT_COMMON_ALLOCATION); } -INPUT { return (T_INPUT); } -KEEP { return (T_KEEP); } -LENGTH { return (T_LENGTH); } -LOADADDR { return (T_LOADADDR); } -LONG { return (T_LONG); } -MAP { return (T_MAP); } -MAX { return (T_MAX); } -MAXPAGESIZE { _get_ident(); return (T_MAXPAGESIZE); } -MEMORY { return (T_MEMORY); } -MIN { return (T_MIN); } -NEXT { return (T_NEXT); } -NOCROSSREFS { return (T_NOCROSSREFS); } -NOFLOAT { return (T_NOFLOAT); } -NOLOAD { return (T_NOLOAD); } -ONLY_IF_RO { return (T_ONLY_IF_RO); } -ONLY_IF_RW { return (T_ONLY_IF_RW); } -OPTION { return (T_OPTION); } -ORIGIN { return (T_ORIGIN); } -OUTPUT { return (T_OUTPUT); } -OUTPUT_ARCH { return (T_OUTPUT_ARCH); } -OUTPUT_FORMAT { return (T_OUTPUT_FORMAT); } -OVERLAY { return (T_OVERLAY); } -PHDRS { return (T_PHDRS); } -PROVIDE { return (T_PROVIDE); } -PROVIDE_HIDDEN { return (T_PROVIDE_HIDDEN); } -QUAD { return (T_QUAD); } -REGION_ALIAS { return (T_REGION_ALIAS); } -SEARCH_DIR { return (T_SEARCH_DIR); } -SECTIONS { return (T_SECTIONS); } -SEGMENT_START { return (T_SEGMENT_START); } -SHORT { return (T_SHORT); } -SIZEOF { return (T_SIZEOF); } -SIZEOF_HEADERS { return (T_SIZEOF_HEADERS); } -SORT { return (T_SORT_BY_NAME); } -SORT_BY_ALIGNMENT { return (T_SORT_BY_ALIGNMENT); } -SORT_BY_NAME { return (T_SORT_BY_NAME); } -SPECIAL { return (T_SPECIAL); } -SQUAD { return (T_SQUAD); } -STARTUP { return (T_STARTUP); } -SUBALIGN { return (T_SUBALIGN); } -SYSLIB { return (T_SYSLIB); } -TARGET { return (T_TARGET); } -TRUNCATE { return (T_TRUNCATE); } -extern { return (T_VER_EXTERN); } -global: { return (T_VER_GLOBAL); } -l { return (T_LENGTH); } -len { return (T_LENGTH); } -local: { return (T_VER_LOCAL); } -o { return (T_ORIGIN); } -org { return (T_ORIGIN); } -sizeof_headers { return (T_SIZEOF_HEADERS); } -"/*" { _skip_comment(); } -"\""[^\"]+"\"" { _get_string(); return (T_STRING); } -{DEC}|{OCT}|{HEX} { _calc_num(); return (T_NUM); } -"<<=" { return (T_LSHIFT_E); } -">>=" { return (T_RSHIFT_E); } -"<<" { return (T_LSHIFT); } -">>" { return (T_RSHIFT); } -"==" { return (T_EQ); } -"!=" { return (T_NE); } -">=" { return (T_GE); } -"<=" { return (T_LE); } -"+=" { return (T_ADD_E); } -"-=" { return (T_SUB_E); } -"*=" { return (T_MUL_E); } -"/=" { return (T_DIV_E); } -"&=" { return (T_AND_E); } -"|=" { return (T_OR_E); } -"&&" { return (T_LOGICAL_AND); } -"||" { return (T_LOGICAL_OR); } -"!" { return ('!'); } -"{" { return ('{'); } -"}" { return ('}'); } -"[" { return ('['); } -"]" { return (']'); } -"(" { return ('('); } -")" { return (')'); } -"?" { return ('?'); } -":" { return (':'); } -";" { return (';'); } -"&" { return ('&'); } -"|" { return ('|'); } -"~" { return ('~'); } -"+" { return ('+'); } -"-" { return ('-'); } -"*" { return ('*'); } -"/" { return ('/'); } -"%" { return ('%'); } -"=" { return ('='); } -"<" { return ('<'); } -">" { return ('>'); } -"," { return (','); } -"." { return ('.'); } -{MATTR} { _get_ident(); return (T_MEMORY_ATTR); } -{IDENT} { _get_ident(); return (T_IDENT); } -{WILDCARD} { _get_ident(); return (T_WILDCARD); } -"\n" { lineno++; } -[ \t] /* Ignore whitespaces. */ - -%% - -static void -_calc_num(void) -{ - int base, mul; - - base = 0; - mul = 1; - switch (yytext[yyleng - 1]) { - case 'd': case 'D': - base = 10; - break; - case 'o': case 'O': - base = 8; - break; - case 'h': case 'H': - base = 16; - break; - case 'k': case 'K': - mul = 1024; - break; - case 'm': case 'M': - mul = 1024 * 1024; - break; - default: - break; - } - - if (base || mul > 1) - yytext[yyleng - 1] = '\0'; - - yylval.num = strtoimax(yytext, NULL, base); - yylval.num *= mul; -} - -static void -_get_ident(void) -{ - - yylval.str = strdup(yytext); - if (yylval.str == NULL) - err(1, "strdup"); -} - -static void -_get_string(void) -{ - - yytext[yyleng - 1] = '\0'; - yylval.str = strdup(yytext + 1); - if (yylval.str == NULL) - err(1, "strdup"); -} - -static void -_skip_comment(void) -{ - int c; - - for (;;) { - while ((c = input()) != '*' && c != EOF) - if (c == '\n') - lineno++; - if (c == '*') { - while ((c = input()) == '*') - ; - if (c == '\n') - lineno++; - if (c == '/') - break; - } - if (c == EOF) - errx(1, "lexer: EOF in comment"); - } -} diff --git a/contrib/elftoolchain/ld/ld_script_parser.y b/contrib/elftoolchain/ld/ld_script_parser.y deleted file mode 100644 index 5bb49950..00000000 --- a/contrib/elftoolchain/ld/ld_script_parser.y +++ /dev/null @@ -1,1232 +0,0 @@ -%{ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_options.h" -#include "ld_output.h" -#include "ld_script.h" -#include "ld_file.h" -#include "ld_path.h" -#include "ld_exp.h" - -ELFTC_VCSID("$Id$"); - -struct yy_buffer_state; -typedef struct yy_buffer_state *YY_BUFFER_STATE; - -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -extern int yylex(void); -extern int yyparse(void); -extern YY_BUFFER_STATE yy_create_buffer(FILE *file, int size); -extern YY_BUFFER_STATE yy_scan_string(char *yy_str); -extern void yy_switch_to_buffer(YY_BUFFER_STATE b); -extern void yy_delete_buffer(YY_BUFFER_STATE b); -extern int lineno; -extern FILE *yyin; -extern struct ld *ld; - -static void yyerror(const char *s); -static void _init_script(void); -static struct ld_script_cmd_head ldss_c, ldso_c; - -%} - -%token T_ABSOLUTE -%token T_ADDR -%token T_ALIGN -%token T_ALIGNOF -%token T_ASSERT -%token T_AS_NEEDED -%token T_AT -%token T_BIND -%token T_BLOCK -%token T_BYTE -%token T_CONSTANT -%token T_CONSTRUCTORS -%token T_CREATE_OBJECT_SYMBOLS -%token T_DATA_SEGMENT_ALIGN -%token T_DATA_SEGMENT_END -%token T_DATA_SEGMENT_RELRO_END -%token T_DEFINED -%token T_ENTRY -%token T_EXCLUDE_FILE -%token T_EXTERN -%token T_FILEHDR -%token T_FILL -%token T_FLAGS -%token T_FLOAT -%token T_FORCE_COMMON_ALLOCATION -%token T_GROUP -%token T_HLL -%token T_INCLUDE -%token T_INHIBIT_COMMON_ALLOCATION -%token T_INPUT -%token T_KEEP -%token T_LENGTH -%token T_LOADADDR -%token T_LONG -%token T_MAP -%token T_MAX -%token T_MEMORY -%token T_MIN -%token T_NEXT -%token T_NOCROSSREFS -%token T_NOFLOAT -%token T_OPTION -%token T_ORIGIN -%token T_OUTPUT -%token T_OUTPUT_ARCH -%token T_OUTPUT_FORMAT -%token T_PHDRS -%token T_PROVIDE -%token T_PROVIDE_HIDDEN -%token T_QUAD -%token T_REGION_ALIAS -%token T_SEARCH_DIR -%token T_SECTIONS -%token T_SEGMENT_START -%token T_SHORT -%token T_SIZEOF -%token T_SIZEOF_HEADERS -%token T_SORT_BY_ALIGNMENT -%token T_SORT_BY_NAME -%token T_SPECIAL -%token T_SQUAD -%token T_STARTUP -%token T_SUBALIGN -%token T_SYSLIB -%token T_TARGET -%token T_TRUNCATE -%token T_VER_EXTERN -%token T_VER_GLOBAL -%token T_VER_LOCAL - -%token T_LSHIFT_E -%token T_RSHIFT_E -%token T_LSHIFT -%token T_RSHIFT -%token T_EQ -%token T_NE -%token T_GE -%token T_LE -%token T_ADD_E -%token T_SUB_E -%token T_MUL_E -%token T_DIV_E -%token T_AND_E -%token T_OR_E -%token T_LOGICAL_AND -%token T_LOGICAL_OR - -%right '=' T_AND_E T_OR_E T_MUL_E T_DIV_E T_ADD_E T_SUB_E T_LSHIFT_E T_RSHIFT_E -%right '?' ':' -%left T_LOGICAL_OR -%left T_LOGICAL_AND -%left '|' -%left '&' -%left T_EQ T_NE T_GE T_LE '>' '<' -%left T_LSHIFT T_RSHIFT -%left '+' '-' -%left '*' '/' '%' -%left UNARY - -%token T_NUM -%token T_COMMONPAGESIZE -%token T_COPY -%token T_DSECT -%token T_IDENT -%token T_INFO -%token T_MAXPAGESIZE -%token T_MEMORY_ATTR -%token T_NOLOAD -%token T_ONLY_IF_RO -%token T_ONLY_IF_RW -%token T_OVERLAY -%token T_STRING -%token T_WILDCARD - -%type assignment -%type provide_assignment -%type provide_hidden_assignment -%type simple_assignment -%type assert_command -%type entry_command -%type ldscript_command -%type output_section_command -%type sections_command -%type sections_sub_command -%type expression -%type function -%type constant -%type variable -%type absolute_function -%type addr_function -%type align_function -%type alignof_function -%type block_function -%type data_segment_align_function -%type data_segment_end_function -%type data_segment_relro_end_function -%type defined_function -%type length_function -%type loadaddr_function -%type max_function -%type min_function -%type next_function -%type origin_function -%type output_section_addr -%type output_section_align -%type output_section_fillexp -%type output_section_lma -%type output_section_subalign -%type overlay_vma -%type phdr_at -%type segment_start_function -%type sizeof_function -%type sizeof_headers_function -%type input_file -%type input_section -%type input_section_desc -%type input_section_desc_no_keep -%type as_needed_list -%type ident_list -%type ident_list_nosep -%type input_file_list -%type output_section_addr_and_type -%type output_section_phdr -%type overlay_section_list -%type wildcard_list -%type assign_op -%type data_type -%type output_section_keywords -%type overlay_nocref -%type phdr_filehdr -%type phdr_flags -%type phdr_phdrs -%type output_section_data -%type output_sections_desc -%type overlay_desc -%type overlay_section -%type phdr -%type memory_region -%type ident -%type memory_attr -%type output_section_constraint -%type output_section_lma_region -%type output_section_region -%type output_section_type -%type output_section_type_keyword -%type symbolic_constant -%type wildcard -%type wildcard_sort -%type version_entry -%type version_block -%type version_entry_list -%type extern_block -%type version_dependency - -%union { - struct ld_exp *exp; - struct ld_script_assign *assign; - struct ld_script_cmd *cmd; - struct ld_script_list *list; - struct ld_script_input_file *input_file; - struct ld_script_phdr *phdr; - struct ld_script_region *region; - struct ld_script_sections_output *output_desc; - struct ld_script_sections_output_data *output_data; - struct ld_script_sections_output_input *input_section; - struct ld_script_sections_overlay *overlay_desc; - struct ld_script_sections_overlay_section *overlay_section; - struct ld_script_version_entry *version_entry; - struct ld_script_version_entry_head *version_entry_head; - struct ld_wildcard *wildcard; - char *str; - int64_t num; -} - -%% - -script - : ldscript - | - ; - -ldscript - : ldscript_command { - if ($1 != NULL) - ld_script_cmd_insert(&ld->ld_scp->lds_c, $1); - } - | ldscript ldscript_command { - if ($2 != NULL) - ld_script_cmd_insert(&ld->ld_scp->lds_c, $2); - } - ; - -expression - : expression '+' expression { - $$ = ld_exp_binary(ld, LEOP_ADD, $1, $3); - } - | expression '-' expression { - $$ = ld_exp_binary(ld, LEOP_SUBSTRACT, $1, $3); - } - | expression '*' expression { - $$ = ld_exp_binary(ld, LEOP_MUL, $1, $3); - } - | expression '/' expression { - $$ = ld_exp_binary(ld, LEOP_DIV, $1, $3); - } - | expression '%' expression { - $$ = ld_exp_binary(ld, LEOP_MOD, $1, $3); - } - | expression '&' expression { - $$ = ld_exp_binary(ld, LEOP_AND, $1, $3); - } - | expression '|' expression { - $$ = ld_exp_binary(ld, LEOP_OR, $1, $3); - } - | expression '>' expression { - $$ = ld_exp_binary(ld, LEOP_GREATER, $1, $3); - } - | expression '<' expression { - $$ = ld_exp_binary(ld, LEOP_LESSER, $1, $3); - } - | expression T_EQ expression { - $$ = ld_exp_binary(ld, LEOP_EQUAL, $1, $3); - } - | expression T_NE expression { - $$ = ld_exp_binary(ld, LEOP_NE, $1, $3); - } - | expression T_GE expression { - $$ = ld_exp_binary(ld, LEOP_GE, $1, $3); - } - | expression T_LE expression { - $$ = ld_exp_binary(ld, LEOP_LE, $1, $3); - } - | expression T_LSHIFT expression { - $$ = ld_exp_binary(ld, LEOP_LSHIFT, $1, $3); - } - | expression T_RSHIFT expression { - $$ = ld_exp_binary(ld, LEOP_RSHIFT, $1, $3); - } - | expression T_LOGICAL_AND expression { - $$ = ld_exp_binary(ld, LEOP_LOGICAL_AND, $1, $3); - } - | expression T_LOGICAL_OR expression { - $$ = ld_exp_binary(ld, LEOP_LOGICAL_OR, $1, $3); - } - | '!' expression %prec UNARY { - $$ = ld_exp_unary(ld, LEOP_NOT, $2); - } - | '-' expression %prec UNARY { - $$ = ld_exp_unary(ld, LEOP_MINUS, $2); - } - | '~' expression %prec UNARY { - $$ = ld_exp_unary(ld, LEOP_NEGATION, $2); - } - | expression '?' expression ':' expression { - $$ = ld_exp_trinary(ld, $1, $3, $5); - } - | simple_assignment { - $$ = ld_exp_assign(ld, $1); - } - | function - | constant - | variable - | '(' expression ')' { $$ = $2; $$->le_par = 1; } - ; - -function - : absolute_function - | addr_function - | align_function - | alignof_function - | block_function - | data_segment_align_function - | data_segment_end_function - | data_segment_relro_end_function - | defined_function - | length_function - | loadaddr_function - | max_function - | min_function - | next_function - | origin_function - | segment_start_function - | sizeof_function - | sizeof_headers_function - ; - -absolute_function - : T_ABSOLUTE '(' expression ')' { - $$ = ld_exp_unary(ld, LEOP_ABS, $3); - } - ; - -addr_function - : T_ADDR '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_ADDR, ld_exp_name(ld, $3)); - } - ; - -align_function - : T_ALIGN '(' expression ')' { - $$ = ld_exp_unary(ld, LEOP_ALIGN, $3); - } - | T_ALIGN '(' expression ',' expression ')' { - $$ = ld_exp_binary(ld, LEOP_ALIGN, $3, $5); - } - ; - -alignof_function - : T_ALIGNOF '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_ALIGNOF, ld_exp_name(ld, $3)); - } - ; - -block_function - : T_BLOCK '(' expression ')' { - $$ = ld_exp_unary(ld, LEOP_BLOCK, $3); - } - ; - -data_segment_align_function - : T_DATA_SEGMENT_ALIGN '(' expression ',' expression ')' { - $$ = ld_exp_binary(ld, LEOP_DSA, $3, $5); - } - ; - -data_segment_end_function - : T_DATA_SEGMENT_END '(' expression ')' { - $$ = ld_exp_unary(ld, LEOP_DSE, $3); - } - ; - -data_segment_relro_end_function - : T_DATA_SEGMENT_RELRO_END '(' expression ',' expression ')' { - $$ = ld_exp_binary(ld, LEOP_DSRE, $3, $5); - } - ; - -defined_function - : T_DEFINED '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_DEFINED, ld_exp_symbol(ld, $3)); - } - ; - -length_function - : T_LENGTH '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_LENGTH, ld_exp_name(ld, $3)); - } - ; - -loadaddr_function - : T_LOADADDR '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_LOADADDR, ld_exp_name(ld, $3)); - } - ; - -max_function - : T_MAX '(' expression ',' expression ')' { - $$ = ld_exp_binary(ld, LEOP_MAX, $3, $5); - } - ; - -min_function - : T_MIN '(' expression ',' expression ')' { - $$ = ld_exp_binary(ld, LEOP_MIN, $3, $5); - } - ; - -next_function - : T_NEXT '(' expression ')' { - $$ = ld_exp_unary(ld, LEOP_NEXT, $3); - } - ; - -origin_function - : T_ORIGIN '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_ORIGIN, ld_exp_name(ld, $3)); - } - ; - -segment_start_function - : T_SEGMENT_START '(' ident ',' expression ')' { - $$ = ld_exp_binary(ld, LEOP_MIN, ld_exp_name(ld, $3), $5); - } - ; - -sizeof_function - : T_SIZEOF '(' ident ')' { - $$ = ld_exp_unary(ld, LEOP_SIZEOF, ld_exp_name(ld, $3)); - } - ; - -sizeof_headers_function - : T_SIZEOF_HEADERS { - $$ = ld_exp_sizeof_headers(ld); - } - ; - -constant - : T_NUM { - $$ = ld_exp_constant(ld, $1); - } - | symbolic_constant { - $$ = ld_exp_symbolic_constant(ld, $1); - } - ; - -symbolic_constant - : T_CONSTANT '(' T_COMMONPAGESIZE ')' { $$ = $3; } - | T_CONSTANT '(' T_MAXPAGESIZE ')' { $$ = $3; } - ; - -ldscript_command - : assert_command - | assignment { - if (*$1->lda_var->le_name == '.') - ld_fatal(ld, "variable . can only be used inside" - " SECTIONS command"); - $$ = ld_script_cmd(ld, LSC_ASSIGN, $1); - } - | entry_command - | extern_command { $$ = NULL; } - | force_common_allocation_command { $$ = NULL; } - | group_command { $$ = NULL; } - | inhibit_common_allocation_command { $$ = NULL; } - | input_command { $$ = NULL; } - | memory_command { $$ = NULL; } - | nocrossrefs_command { $$ = NULL; } - | output_command { $$ = NULL; } - | output_arch_command { $$ = NULL; } - | output_format_command { $$ = NULL; } - | phdrs_command { $$ = NULL; } - | region_alias_command { $$ = NULL; } - | search_dir_command { $$ = NULL; } - | sections_command - | startup_command { $$ = NULL; } - | target_command { $$ = NULL; } - | version_script_node { $$ = NULL; } - | ';' { $$ = NULL; } - ; - -assignment - : simple_assignment - | provide_assignment - | provide_hidden_assignment - ; - -simple_assignment - : variable assign_op expression %prec '=' { - $$ = ld_script_assign(ld, $1, $2, $3, 0, 0); - } - ; - -provide_assignment - : T_PROVIDE '(' variable '=' expression ')' { - $$ = ld_script_assign(ld, $3, LSAOP_E, $5, 1, 0); - } - ; - -provide_hidden_assignment - : T_PROVIDE_HIDDEN '(' variable '=' expression ')' { - $$ = ld_script_assign(ld, $3, LSAOP_E, $5, 1, 1); - } - ; - -assign_op - : T_LSHIFT_E { $$ = LSAOP_LSHIFT_E; } - | T_RSHIFT_E { $$ = LSAOP_RSHIFT_E; } - | T_ADD_E { $$ = LSAOP_ADD_E; } - | T_SUB_E { $$ = LSAOP_SUB_E; } - | T_MUL_E { $$ = LSAOP_MUL_E; } - | T_DIV_E { $$ = LSAOP_DIV_E; } - | T_AND_E { $$ = LSAOP_AND_E; } - | T_OR_E { $$ = LSAOP_OR_E; } - | '=' { $$ = LSAOP_E; } - ; - -assert_command - : T_ASSERT '(' expression ',' T_STRING ')' { - $$ = ld_script_assert(ld, $3, $5); - } - ; - -entry_command - : T_ENTRY '(' ident ')' { - $$ = ld_script_cmd(ld, LSC_ENTRY, $3); - } - ; - -extern_command - : T_EXTERN '(' ident_list_nosep ')' { ld_script_extern(ld, $3); } - ; - -force_common_allocation_command - : T_FORCE_COMMON_ALLOCATION { ld->ld_common_alloc = 1; } - ; - -group_command - : T_GROUP '(' input_file_list ')' { - ld_script_group(ld, ld_script_list_reverse($3)); - } - ; - -inhibit_common_allocation_command - : T_INHIBIT_COMMON_ALLOCATION { ld->ld_common_no_alloc = 1; } - ; - -input_command - : T_INPUT '(' input_file_list ')' { - ld_script_input(ld, ld_script_list_reverse($3)); - } - ; - -memory_command - : T_MEMORY '{' memory_region_list '}' - ; - -memory_region_list - : memory_region { - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_r, $1, ldsr_next); - } - | memory_region_list memory_region { - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_r, $2, ldsr_next); - } - ; - -memory_region - : ident memory_attr ':' T_ORIGIN '=' expression ',' T_LENGTH '=' - expression { - ld_script_region(ld, $1, $2, $6, $10); - } - ; - -memory_attr - : T_MEMORY_ATTR - | { $$ = NULL; } - ; - -nocrossrefs_command - : T_NOCROSSREFS '(' ident_list_nosep ')' { - ld_script_nocrossrefs(ld, $3); - } - ; - -output_command - : T_OUTPUT '(' ident ')' { - if (ld->ld_output == NULL) - ld->ld_output_file = $3; - else - free($3); - } - ; - -output_arch_command - : T_OUTPUT_ARCH '(' ident ')' { - ld_arch_set(ld, $3); - free($3); - } - ; - -output_format_command - : T_OUTPUT_FORMAT '(' ident ')' { - ld_output_format(ld, $3, $3, $3); - } - | T_OUTPUT_FORMAT '(' ident ',' ident ',' ident ')' { - ld_output_format(ld, $3, $5, $7); - } - ; - -phdrs_command - : T_PHDRS '{' phdr_list '}' - ; - -phdr_list - : phdr { - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_p, $1, ldsp_next); - } - | phdr_list phdr { - STAILQ_INSERT_TAIL(&ld->ld_scp->lds_p, $2, ldsp_next); - } - -phdr - : ident ident phdr_filehdr phdr_phdrs phdr_at phdr_flags ';' { - $$ = ld_script_phdr(ld, $1, $2, $3, $4, $5, $6); - } - ; - -phdr_filehdr - : T_FILEHDR { $$ = 1; } - | { $$ = 0; } - ; - -phdr_phdrs - : T_PHDRS { $$ = 1; } - | { $$ = 0; } - ; - -phdr_at - : T_AT '(' expression ')' { $$ = $3; } - | { $$ = NULL; } - ; - -phdr_flags - : T_FLAGS '(' T_NUM ')' { $$ = $3; } - | { $$ = 0; } - ; - -region_alias_command - : T_REGION_ALIAS '(' ident ',' ident ')' { - ld_script_region_alias(ld, $3, $5); - } - ; - -search_dir_command - : T_SEARCH_DIR '(' ident ')' { - ld_path_add(ld, $3, LPT_L); - free($3); - } - ; - -sections_command - : T_SECTIONS '{' sections_command_list '}' { - struct ld_script_sections *ldss; - ldss = malloc(sizeof(struct ld_script_sections)); - if (ldss == NULL) - ld_fatal_std(ld, "malloc"); - memcpy(&ldss->ldss_c, &ldss_c, sizeof(ldss_c)); - $$ = ld_script_cmd(ld, LSC_SECTIONS, ldss); - STAILQ_INIT(&ldss_c); - } - ; - -sections_command_list - : sections_sub_command { - if ($1 != NULL) - ld_script_cmd_insert(&ldss_c, $1); - } - | sections_command_list sections_sub_command { - if ($2 != NULL) - ld_script_cmd_insert(&ldss_c, $2); - } - ; - -sections_sub_command - : entry_command - | assignment { - $$ = ld_script_cmd(ld, LSC_ASSIGN, $1); - } - | output_sections_desc { - $$ = ld_script_cmd(ld, LSC_SECTIONS_OUTPUT, $1); - } - | overlay_desc { - $$ = ld_script_cmd(ld, LSC_SECTIONS_OVERLAY, $1); - } - | ';' { $$ = NULL; } - ; - -output_sections_desc - : ident output_section_addr_and_type ':' { - /* Remember the name of last output section, needed later for assignment. */ - ld->ld_scp->lds_base_os_name = $1; - } - output_section_lma - output_section_align - output_section_subalign - output_section_constraint - '{' output_section_command_list '}' - output_section_region - output_section_lma_region - output_section_phdr - output_section_fillexp { - $$ = calloc(1, sizeof(struct ld_script_sections_output)); - if ($$ == NULL) - ld_fatal_std(ld, "calloc"); - $$->ldso_name = $1; - $$->ldso_vma = $2->ldl_entry; - $$->ldso_type = $2->ldl_next->ldl_entry; - $$->ldso_lma = $5; - $$->ldso_align = $6; - $$->ldso_subalign = $7; - $$->ldso_constraint = $8; - memcpy(&$$->ldso_c, &ldso_c, sizeof(ldso_c)); - $$->ldso_region = $12; - $$->ldso_lma_region = $13; - $$->ldso_phdr = ld_script_list_reverse($14); - $$->ldso_fill = $15; - STAILQ_INIT(&ldso_c); - ld->ld_scp->lds_base_os_name = 0; - ld->ld_scp->lds_last_os_name = $1; - } - ; - -output_section_addr_and_type - : output_section_addr output_section_type { - $$ = ld_script_list(ld, NULL, $2); - $$ = ld_script_list(ld, $$, $1); - } - | output_section_type { - $$ = ld_script_list(ld, NULL, NULL); - $$ = ld_script_list(ld, $$, $1); - } - ; - -output_section_addr - : expression - ; - -output_section_type - : '(' output_section_type_keyword ')' { $$ = $2; } - | '(' ')' { $$ = NULL; } - | { $$ = NULL; } - ; - -output_section_type_keyword - : T_COPY - | T_DSECT - | T_INFO - | T_NOLOAD - | T_OVERLAY - ; - -output_section_lma - : T_AT '(' expression ')' { $$ = $3; } - | { $$ = NULL; } - ; - -output_section_align - : T_ALIGN '(' expression ')' { $$ = $3; } - | { $$ = NULL; } - ; - -output_section_subalign - : T_SUBALIGN '(' expression ')' { $$ = $3; } - | { $$ = NULL; } - ; - -output_section_constraint - : T_ONLY_IF_RO - | T_ONLY_IF_RW - | { $$ = NULL; } - ; - -output_section_command_list - : output_section_command { - if ($1 != NULL) - ld_script_cmd_insert(&ldso_c, $1); - } - | output_section_command_list output_section_command { - if ($2 != NULL) - ld_script_cmd_insert(&ldso_c, $2); - } - ; - -output_section_command - : assignment { - $$ = ld_script_cmd(ld, LSC_ASSIGN, $1); - } - | input_section_desc { - $$ = ld_script_cmd(ld, LSC_SECTIONS_OUTPUT_INPUT, $1); - } - | output_section_data { - $$ = ld_script_cmd(ld, LSC_SECTIONS_OUTPUT_DATA, $1); - } - | output_section_keywords { - $$ = ld_script_cmd(ld, LSC_SECTIONS_OUTPUT_KEYWORD, - (void *) (uintptr_t) $1); - } - | ';' { $$ = NULL; } - ; - -input_section_desc - : input_section_desc_no_keep { - $1->ldoi_keep = 0; - $$ = $1; - } - | T_KEEP '(' input_section_desc_no_keep ')' { - $3->ldoi_keep = 0; - $$ = $3; - } - ; - -input_section_desc_no_keep - : wildcard_sort input_section { - $2->ldoi_ar = NULL; - $2->ldoi_file = $1; - $$ = $2; - } - | wildcard_sort ':' wildcard_sort input_section { - $4->ldoi_ar = $1; - $4->ldoi_ar = $3; - $$ = $4; - } - ; - -input_section - : '(' T_EXCLUDE_FILE '(' wildcard_list ')' wildcard_list ')' { - $$ = calloc(1, sizeof(struct ld_script_sections_output_input)); - if ($$ == NULL) - ld_fatal_std(ld, "calloc"); - $$->ldoi_exclude = ld_script_list_reverse($4); - $$->ldoi_sec = ld_script_list_reverse($6); - } - | '(' wildcard_list ')' { - $$ = calloc(1, sizeof(struct ld_script_sections_output_input)); - if ($$ == NULL) - ld_fatal_std(ld, "calloc"); - $$->ldoi_exclude = NULL; - $$->ldoi_sec = ld_script_list_reverse($2); - } - ; - -output_section_data - : data_type '(' expression ')' { - $$ = calloc(1, sizeof(struct ld_script_sections_output_data)); - if ($$ == NULL) - ld_fatal_std(ld, "calloc"); - $$->ldod_type = $1; - $$->ldod_exp = $3; - } - ; - -data_type - : T_BYTE { $$ = LSODT_BYTE; } - | T_SHORT { $$ = LSODT_SHORT; } - | T_LONG { $$ = LSODT_LONG; } - | T_QUAD { $$ = LSODT_QUAD; } - | T_SQUAD { $$ = LSODT_SQUAD; } - | T_FILL { $$ = LSODT_FILL; } - ; - -output_section_keywords - : T_CREATE_OBJECT_SYMBOLS { - $$ = LSOK_CREATE_OBJECT_SYMBOLS; - } - | T_CONSTRUCTORS { - $$ = LSOK_CONSTRUCTORS; - } - | T_SORT_BY_NAME '(' T_CONSTRUCTORS ')' { - $$ = LSOK_CONSTRUCTORS_SORT_BY_NAME; - } - ; - -output_section_region - : '>' ident { $$ = $2; } - | { $$ = NULL; } - ; - -output_section_lma_region - : T_AT '>' ident { $$ = $3; } - | { $$ = NULL; } - ; - -output_section_phdr - : output_section_phdr ':' ident { - $$ = ld_script_list(ld, $$, $3); - } - | { $$ = NULL; } - ; - - -output_section_fillexp - : '=' expression { $$ = $2; } - | { $$ = NULL; } - ; - -overlay_desc - : T_OVERLAY - overlay_vma ':' - overlay_nocref - output_section_lma - '{' overlay_section_list '}' - output_section_region - output_section_phdr - output_section_fillexp { - $$ = calloc(1, sizeof(struct ld_script_sections_overlay)); - if ($$ == NULL) - ld_fatal_std(ld, "calloc"); - $$->ldso_vma = $2; - $$->ldso_nocrossref = !!$4; - $$->ldso_lma = $5; - $$->ldso_s = $7; - $$->ldso_region = $9; - $$->ldso_phdr = $10; - $$->ldso_fill = $11; - } - ; - -overlay_vma - : expression - | { $$ = NULL; } - ; - -overlay_nocref - : T_NOCROSSREFS { $$ = 1; } - | { $$ = 0; } - ; - -overlay_section_list - : overlay_section { - $$ = ld_script_list(ld, NULL, $1); - } - | overlay_section_list overlay_section { - $$ = ld_script_list(ld, $1, $2); - } - ; - -overlay_section - : ident - '{' output_section_command_list '}' - output_section_phdr - output_section_fillexp { - $$ = calloc(1, - sizeof(struct ld_script_sections_overlay_section)); - if ($$ == NULL) - ld_fatal_std(ld, "calloc"); - $$->ldos_name = $1; - memcpy(&$$->ldos_c, &ldso_c, sizeof(ldso_c)); - $$->ldos_phdr = $5; - $$->ldos_fill = $6; - STAILQ_INIT(&ldso_c); - } - ; - -startup_command - : T_STARTUP '(' ident ')' { - ld_file_add_first(ld, $3, LFT_UNKNOWN); - free($3); - } - ; - -target_command - : T_TARGET '(' ident ')' - ; - -version_script_node - : ident extern_block version_dependency ';' { - ld_script_version_add_node(ld, $1, $2, $3); - } - | ident version_block version_dependency ';' { - ld_script_version_add_node(ld, $1, $2, $3); - } - | extern_block version_dependency ';' { - ld_script_version_add_node(ld, NULL, $1, $2); - } - | version_block version_dependency ';' { - ld_script_version_add_node(ld, NULL, $1, $2); - } - ; - -extern_block - : T_VER_EXTERN T_STRING version_block { - ld_script_version_set_lang(ld, $3, $2); - $$ = $3; - } - ; - -version_block - : '{' version_entry_list '}' { - $$ = $2; - ld->ld_state.ls_version_local = 0; - } - ; - -version_entry_list - : version_entry { - $$ = ld_script_version_link_entry(ld, NULL, $1); - } - | version_entry_list version_entry { - $$ = ld_script_version_link_entry(ld, $1, $2); - } - ; - -version_entry - : T_VER_GLOBAL { - ld->ld_state.ls_version_local = 0; - $$ = NULL; - } - | T_VER_LOCAL { - ld->ld_state.ls_version_local = 1; - $$ = NULL; - } - | wildcard ';' { - $$ = ld_script_version_alloc_entry(ld, $1, NULL); - } - | extern_block ';' { - $$ = ld_script_version_alloc_entry(ld, NULL, $1); - } - ; - -version_dependency - : ident - | { $$ = NULL; } - ; - -ident - : T_IDENT - | T_STRING - ; - -variable - : ident { $$ = ld_exp_symbol(ld, $1); } - | '.' { $$ = ld_exp_symbol(ld, "."); } - ; - -wildcard - : ident - | T_WILDCARD - | '*' { $$ = strdup("*"); } - | '?' { $$ = strdup("?"); } - ; - -wildcard_sort - : wildcard { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $1; - $$->lw_sort = LWS_NONE; - } - | T_SORT_BY_NAME '(' wildcard ')' { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $3; - $$->lw_sort = LWS_NAME; - } - | T_SORT_BY_NAME '(' T_SORT_BY_NAME '(' wildcard ')' ')' { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $5; - $$->lw_sort = LWS_NAME; - } - | T_SORT_BY_NAME '(' T_SORT_BY_ALIGNMENT '(' wildcard ')' ')' { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $5; - $$->lw_sort = LWS_NAME_ALIGN; - } - | T_SORT_BY_ALIGNMENT '(' wildcard ')' { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $3; - $$->lw_sort = LWS_ALIGN; - } - | T_SORT_BY_ALIGNMENT '(' T_SORT_BY_NAME '(' wildcard ')' ')' { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $5; - $$->lw_sort = LWS_ALIGN_NAME; - } - | T_SORT_BY_ALIGNMENT '(' T_SORT_BY_ALIGNMENT '(' wildcard ')' ')' { - $$ = ld_wildcard_alloc(ld); - $$->lw_name = $5; - $$->lw_sort = LWS_ALIGN; - } - ; - -ident_list - : ident { $$ = ld_script_list(ld, NULL, $1); } - | ident_list separator ident { $$ = ld_script_list(ld, $1, $3); } - ; - -ident_list_nosep - : ident { $$ = ld_script_list(ld, NULL, $1); } - | ident_list_nosep ident { $$ = ld_script_list(ld, $1, $2); } - ; - -input_file_list - : input_file { $$ = ld_script_list(ld, NULL, $1); } - | input_file_list separator input_file { $$ = ld_script_list(ld, $1, $3); } - ; - -input_file - : ident { $$ = ld_script_input_file(ld, 0, $1); } - | as_needed_list { $$ = ld_script_input_file(ld, 1, $1); } - ; - -as_needed_list - : T_AS_NEEDED '(' ident_list ')' { $$ = $3; } - ; - -wildcard_list - : wildcard_sort { $$ = ld_script_list(ld, NULL, $1); } - | wildcard_list wildcard_sort { $$ = ld_script_list(ld, $1, $2); } - ; - -separator - : ',' - | - ; - -%% - -/* ARGSUSED */ -static void -yyerror(const char *s) -{ - - (void) s; - errx(1, "Syntax error in ld script, line %d\n", lineno); -} - -static void -_init_script(void) -{ - - STAILQ_INIT(&ldss_c); - STAILQ_INIT(&ldso_c); -} - -void -ld_script_parse(const char *name) -{ - YY_BUFFER_STATE b; - - _init_script(); - - if ((yyin = fopen(name, "r")) == NULL) - ld_fatal_std(ld, "fopen %s name failed", name); - b = yy_create_buffer(yyin, YY_BUF_SIZE); - yy_switch_to_buffer(b); - if (yyparse() < 0) - ld_fatal(ld, "unable to parse linker script %s", name); - yy_delete_buffer(b); -} - -void -ld_script_parse_internal(void) -{ - YY_BUFFER_STATE b; - - _init_script(); - - assert(ld->ld_arch != NULL && ld->ld_arch->script != NULL); - b = yy_scan_string(ld->ld_arch->script); - yy_switch_to_buffer(b); - if (yyparse() < 0) - ld_fatal(ld, "unable to parse internal linker script"); - yy_delete_buffer(b); -} diff --git a/contrib/elftoolchain/ld/ld_strtab.c b/contrib/elftoolchain/ld/ld_strtab.c deleted file mode 100644 index 8647fe95..00000000 --- a/contrib/elftoolchain/ld/ld_strtab.c +++ /dev/null @@ -1,238 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_strtab.h" - -ELFTC_VCSID("$Id$"); - -#define _DEFAULT_STRTAB_SIZE 512 - -struct ld_str { - char *s; - size_t off, len; - UT_hash_handle hh; -}; - -struct ld_strtab { - struct ld_str *st_pool; - char *st_buf; - size_t st_cap; - size_t st_size; - unsigned char st_suffix; -}; - - -static void _resize_strtab(struct ld *ld, struct ld_strtab *st, - size_t newsize); - -struct ld_strtab * -ld_strtab_alloc(struct ld *ld, unsigned char suffix) -{ - struct ld_strtab *st; - - if ((st = calloc(1, sizeof(*st))) == NULL) - ld_fatal_std(ld, "calloc"); - - st->st_size = 0; - if (suffix) { - st->st_suffix = 1; - st->st_cap = _DEFAULT_STRTAB_SIZE; - if ((st->st_buf = calloc(1, st->st_cap)) == NULL) - ld_fatal_std(ld, "calloc"); - ld_strtab_insert(ld, st, ""); - } else - st->st_size = 1; - - return (st); -} - -void -ld_strtab_free(struct ld_strtab *st) -{ - struct ld_str *str, *tmp; - - if (st == NULL) - return; - - if (st->st_pool != NULL) { - HASH_ITER(hh, st->st_pool, str, tmp) { - HASH_DELETE(hh, st->st_pool, str); - free(str->s); - free(str); - } - } - - free(st->st_buf); - free(st); -} - -char * -ld_strtab_getbuf(struct ld *ld, struct ld_strtab *st) -{ - struct ld_str *str, *tmp; - char *p, *end; - - assert(st != NULL); - - if (st->st_suffix) - return (st->st_buf); - - if (st->st_buf == NULL) { - if ((st->st_buf = malloc(st->st_size)) == NULL) - ld_fatal_std(ld, "malloc"); - /* Flatten the string hash table. */ - p = st->st_buf; - end = p + st->st_size; - *p++ = '\0'; - HASH_ITER(hh, st->st_pool, str, tmp) { - memcpy(p, str->s, str->len); - p[str->len] = '\0'; - p += str->len + 1; - } - assert(p == end); - } - - return (st->st_buf); -} - -size_t -ld_strtab_getsize(struct ld_strtab *st) -{ - - return (st->st_size); -} - -static void -_resize_strtab(struct ld *ld, struct ld_strtab *st, size_t newsize) -{ - - assert(st != NULL && st->st_suffix); - if ((st->st_buf = realloc(st->st_buf, newsize)) == NULL) - ld_fatal_std(ld, "realloc"); - st->st_cap = newsize; -} - -size_t -ld_strtab_insert_no_suffix(struct ld *ld, struct ld_strtab *st, char *s) -{ - struct ld_str *str; - - assert(st != NULL && st->st_suffix == 0); - - if (s == NULL) - return (0); - - if (*s == '\0') - return (0); - - HASH_FIND_STR(st->st_pool, s, str); - if (str != NULL) - return (str->off); - - if ((str = calloc(1, sizeof(*str))) == NULL) - ld_fatal_std(ld, "calloc"); - - if ((str->s = strdup(s)) == NULL) - ld_fatal_std(ld, "strdup"); - - str->len = strlen(s); - HASH_ADD_KEYPTR(hh, st->st_pool, str->s, str->len, str); - - str->off = st->st_size; - st->st_size += str->len + 1; - - return (str->off); -} - -void -ld_strtab_insert(struct ld *ld, struct ld_strtab *st, const char *s) -{ - const char *r; - char *b, *c; - size_t len, slen; - int append; - - assert(st != NULL && st->st_buf != NULL && st->st_suffix); - - if (s == NULL) - return; - - slen = strlen(s); - append = 0; - b = st->st_buf; - for (c = b; c < b + st->st_size;) { - len = strlen(c); - if (!append && len >= slen) { - r = c + (len - slen); - if (strcmp(r, s) == 0) - return; - } else if (len < slen && len != 0) { - r = s + (slen - len); - if (strcmp(c, r) == 0) { - st->st_size -= len + 1; - memmove(c, c + len + 1, st->st_size - (c - b)); - append = 1; - continue; - } - } - c += len + 1; - } - - while (st->st_size + slen + 1 >= st->st_cap) - _resize_strtab(ld, st, st->st_cap * 2); - - b = st->st_buf; - memcpy(&b[st->st_size], s, slen); - b[st->st_size + slen] = '\0'; - st->st_size += slen + 1; -} - -size_t -ld_strtab_lookup(struct ld_strtab *st, const char *s) -{ - const char *b, *c, *r; - size_t len, slen; - - assert(st != NULL && st->st_buf != NULL && st->st_suffix); - - if (s == NULL) - return (0); - - slen = strlen(s); - b = st->st_buf; - for (c = b; c < b + st->st_size;) { - len = strlen(c); - if (len >= slen) { - r = c + (len - slen); - if (strcmp(r, s) == 0) - return (r - b); - } - c += len + 1; - } - - return (-1); -} diff --git a/contrib/elftoolchain/ld/ld_strtab.h b/contrib/elftoolchain/ld/ld_strtab.h deleted file mode 100644 index 01ca22b1..00000000 --- a/contrib/elftoolchain/ld/ld_strtab.h +++ /dev/null @@ -1,35 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -struct ld_strtab *ld_strtab_alloc(struct ld *, unsigned char); -void ld_strtab_free(struct ld_strtab *); -void ld_strtab_insert(struct ld *, struct ld_strtab *, const char *); -size_t ld_strtab_insert_no_suffix(struct ld *, struct ld_strtab *, char *); -size_t ld_strtab_lookup(struct ld_strtab *, const char *); -char *ld_strtab_getbuf(struct ld *, struct ld_strtab *); -size_t ld_strtab_getsize(struct ld_strtab *); diff --git a/contrib/elftoolchain/ld/ld_symbols.c b/contrib/elftoolchain/ld/ld_symbols.c deleted file mode 100644 index be7992ec..00000000 --- a/contrib/elftoolchain/ld/ld_symbols.c +++ /dev/null @@ -1,1415 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_dynamic.h" -#include "ld_file.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_symbols.h" -#include "ld_symver.h" -#include "ld_script.h" -#include "ld_strtab.h" - -ELFTC_VCSID("$Id$"); - -#define _INIT_SYMTAB_SIZE 128 - -static void _load_symbols(struct ld *ld, struct ld_file *lf); -static void _load_archive_symbols(struct ld *ld, struct ld_file *lf); -static void _load_elf_symbols(struct ld *ld, struct ld_input *li, Elf *e); -static void _unload_symbols(struct ld_input *li); -static void _add_elf_symbol(struct ld *ld, struct ld_input *li, Elf *e, - GElf_Sym *sym, size_t strndx, int i); -static void _add_to_dynsym_table(struct ld *ld, struct ld_symbol *lsb); -static void _write_to_dynsym_table(struct ld *ld, struct ld_symbol *lsb); -static void _add_to_symbol_table(struct ld *ld, struct ld_symbol *lsb); -static void _free_symbol_table(struct ld_symbol_table *symtab); -struct ld_symbol_table *_alloc_symbol_table(struct ld *ld); -static int _archive_member_extracted(struct ld_archive *la, off_t off); -static struct ld_archive_member * _extract_archive_member(struct ld *ld, - struct ld_file *lf, struct ld_archive *la, off_t off); -static void _print_extracted_member(struct ld *ld, - struct ld_archive_member *lam, struct ld_symbol *lsb); -static void _resolve_and_add_symbol(struct ld *ld, struct ld_symbol *lsb); -static struct ld_symbol *_alloc_symbol(struct ld *ld); -static void _free_symbol(struct ld_symbol *lsb); -static struct ld_symbol *_find_symbol(struct ld_symbol *tbl, char *name); -static void _update_symbol(struct ld_symbol *lsb); - -#define _add_symbol(tbl, s) do { \ - HASH_ADD_KEYPTR(hh, (tbl), (s)->lsb_longname, \ - strlen((s)->lsb_longname), (s)); \ - } while (0) -#define _remove_symbol(tbl, s) do { \ - HASH_DEL((tbl), (s)); \ - } while (0) -#define _resolve_symbol(_s, s) do { \ - assert((_s) != (s)); \ - (s)->lsb_ref_dso |= (_s)->lsb_ref_dso; \ - (s)->lsb_ref_ndso |= (_s)->lsb_ref_ndso; \ - if ((s)->lsb_prev != NULL) { \ - (s)->lsb_prev->lsb_ref = (_s); \ - (_s)->lsb_prev = (s)->lsb_prev; \ - } \ - (s)->lsb_prev = (_s); \ - (_s)->lsb_ref = (s); \ - } while (0) - -void -ld_symbols_cleanup(struct ld *ld) -{ - struct ld_input *li; - struct ld_symbol *lsb, *_lsb; - - HASH_CLEAR(hh, ld->ld_sym); - - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - _unload_symbols(li); - } - - if (ld->ld_ext_symbols != NULL) { - STAILQ_FOREACH_SAFE(lsb, ld->ld_ext_symbols, lsb_next, _lsb) { - STAILQ_REMOVE(ld->ld_ext_symbols, lsb, ld_symbol, - lsb_next); - _free_symbol(lsb); - } - free(ld->ld_ext_symbols); - ld->ld_ext_symbols = NULL; - } - - if (ld->ld_var_symbols != NULL) { - STAILQ_FOREACH_SAFE(lsb, ld->ld_var_symbols, lsb_next, _lsb) { - STAILQ_REMOVE(ld->ld_var_symbols, lsb, ld_symbol, - lsb_next); - _free_symbol(lsb); - } - free(ld->ld_var_symbols); - ld->ld_var_symbols = NULL; - } - - if (ld->ld_dyn_symbols != NULL) { - free(ld->ld_dyn_symbols); - ld->ld_dyn_symbols = NULL; - } - - if (ld->ld_symtab != NULL) { - _free_symbol_table(ld->ld_symtab); - ld->ld_symtab = NULL; - } - - if (ld->ld_strtab != NULL) { - ld_strtab_free(ld->ld_strtab); - ld->ld_strtab = NULL; - } -} - -void -ld_symbols_add_extern(struct ld *ld, char *name) -{ - struct ld_symbol *lsb; - - /* Check if the extern symbol has been added before. */ - if (_find_symbol(ld->ld_sym, name) != NULL) - return; - - lsb = _alloc_symbol(ld); - if ((lsb->lsb_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - if ((lsb->lsb_longname = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - - if (ld->ld_ext_symbols == NULL) { - ld->ld_ext_symbols = malloc(sizeof(*ld->ld_ext_symbols)); - if (ld->ld_ext_symbols == NULL) - ld_fatal_std(ld, "malloc"); - STAILQ_INIT(ld->ld_ext_symbols); - } - STAILQ_INSERT_TAIL(ld->ld_ext_symbols, lsb, lsb_next); - - _add_symbol(ld->ld_sym, lsb); -} - -void -ld_symbols_add_variable(struct ld *ld, struct ld_script_variable *ldv, - unsigned provide, unsigned hidden) -{ - struct ld_symbol *lsb; - - lsb = _alloc_symbol(ld); - if ((lsb->lsb_name = strdup(ldv->ldv_name)) == NULL) - ld_fatal_std(ld, "strdup"); - if ((lsb->lsb_longname = strdup(ldv->ldv_name)) == NULL) - ld_fatal_std(ld, "strdup"); - lsb->lsb_var = ldv; - lsb->lsb_bind = STB_GLOBAL; - lsb->lsb_shndx = SHN_ABS; - lsb->lsb_provide = provide; - if (hidden) - lsb->lsb_other = STV_HIDDEN; - lsb->lsb_ref_ndso = 1; - ldv->ldv_symbol = lsb; - ldv->ldv_os_ref = ld->ld_scp->lds_last_os_name; - ldv->ldv_os_base = ld->ld_scp->lds_base_os_name; - - if (ld->ld_var_symbols == NULL) { - ld->ld_var_symbols = malloc(sizeof(*ld->ld_var_symbols)); - if (ld->ld_var_symbols == NULL) - ld_fatal_std(ld, "malloc"); - STAILQ_INIT(ld->ld_var_symbols); - } - STAILQ_INSERT_TAIL(ld->ld_var_symbols, lsb, lsb_next); - - _resolve_and_add_symbol(ld, lsb); -} - -void -ld_symbols_add_internal(struct ld *ld, const char *name, uint64_t size, - uint64_t value, uint16_t shndx, unsigned char bind, unsigned char type, - unsigned char other, struct ld_input_section *is, - struct ld_output_section *preset_os) -{ - struct ld_symbol *lsb; - - lsb = _alloc_symbol(ld); - if ((lsb->lsb_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - if ((lsb->lsb_longname = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - lsb->lsb_size = size; - lsb->lsb_value = value; - lsb->lsb_shndx = shndx; - lsb->lsb_bind = bind; - lsb->lsb_type = type; - lsb->lsb_other = other; - lsb->lsb_preset_os = preset_os; - lsb->lsb_ref_ndso = 1; - lsb->lsb_input = (is == NULL) ? NULL : is->is_input; - lsb->lsb_is = is; - - _resolve_and_add_symbol(ld, lsb); -} - -int -ld_symbols_get_value(struct ld *ld, char *name, uint64_t *val) -{ - struct ld_symbol *lsb; - - if ((lsb = _find_symbol(ld->ld_sym, name)) != NULL) - *val = lsb->lsb_value; - else - return (-1); - - return (0); -} - -void -ld_symbols_resolve(struct ld *ld) -{ - struct ld_state *ls; - struct ld_file *lf; - struct ld_symbol *lsb, *_lsb; - - if (TAILQ_EMPTY(&ld->ld_lflist)) { - if (ld->ld_print_version) - exit(EXIT_SUCCESS); - else - ld_fatal(ld, "no input files"); - } - - ls = &ld->ld_state; - lf = TAILQ_FIRST(&ld->ld_lflist); - ls->ls_group_level = lf->lf_group_level; - - while (lf != NULL) { - /* Process archive groups. */ - if (lf->lf_group_level < ls->ls_group_level && - ls->ls_extracted[ls->ls_group_level]) { - do { - lf = TAILQ_PREV(lf, ld_file_head, lf_next); - } while (lf->lf_group_level >= ls->ls_group_level); - lf = TAILQ_NEXT(lf, lf_next); - ls->ls_extracted[ls->ls_group_level] = 0; - } - ls->ls_group_level = lf->lf_group_level; - - /* Load symbols. */ - ld_file_load(ld, lf); - if (ls->ls_arch_conflict) { - ld_file_unload(ld, lf); - return; - } - _load_symbols(ld, lf); - ld_file_unload(ld, lf); - lf = TAILQ_NEXT(lf, lf_next); - } - - /* Print information regarding space allocated for common symbols. */ - if (ld->ld_print_linkmap) { - printf("\nCommon symbols:\n"); - printf("%-34s %-10s %s\n", "name", "size", "file"); - HASH_ITER(hh, ld->ld_sym, lsb, _lsb) { - if (lsb->lsb_shndx != SHN_COMMON) - continue; - printf("%-34s", lsb->lsb_name); - if (strlen(lsb->lsb_name) > 34) - printf("\n%-34s", ""); - printf(" %#-10jx %s\n", (uintmax_t) lsb->lsb_size, - ld_input_get_fullname(ld, lsb->lsb_input)); - } - } -} - -void -ld_symbols_update(struct ld *ld) -{ - struct ld_input *li; - struct ld_symbol *lsb, *_lsb; - - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - if (li->li_local == NULL) - continue; - STAILQ_FOREACH(lsb, li->li_local, lsb_next) - _update_symbol(lsb); - } - - HASH_ITER(hh, ld->ld_sym, lsb, _lsb) { - /* Skip symbols from DSOs. */ - if (ld_symbols_in_dso(lsb)) - continue; - - _update_symbol(lsb); - } -} - -void -ld_symbols_build_symtab(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_section *os, *_os; - struct ld_input *li; - struct ld_input_section *is; - struct ld_symbol *lsb, *tmp, _lsb; - - lo = ld->ld_output; - - ld->ld_symtab = _alloc_symbol_table(ld); - ld->ld_strtab = ld_strtab_alloc(ld, 0); - - /* Create an initial symbol at the beginning of symbol table. */ - _lsb.lsb_name = NULL; - _lsb.lsb_size = 0; - _lsb.lsb_value = 0; - _lsb.lsb_shndx = SHN_UNDEF; - _lsb.lsb_bind = STB_LOCAL; - _lsb.lsb_type = STT_NOTYPE; - _lsb.lsb_other = 0; - _add_to_symbol_table(ld, &_lsb); - - /* Create STT_SECTION symbols. */ - STAILQ_FOREACH(os, &lo->lo_oslist, os_next) { - if (os->os_empty) - continue; - if (os->os_secsym != NULL) - continue; - if (os->os_rel) - continue; - os->os_secsym = calloc(1, sizeof(*os->os_secsym)); - if (os->os_secsym == NULL) - ld_fatal_std(ld, "calloc"); - os->os_secsym->lsb_name = NULL; - os->os_secsym->lsb_size = 0; - os->os_secsym->lsb_value = os->os_addr; - os->os_secsym->lsb_shndx = elf_ndxscn(os->os_scn); - os->os_secsym->lsb_bind = STB_LOCAL; - os->os_secsym->lsb_type = STT_SECTION; - os->os_secsym->lsb_other = 0; - _add_to_symbol_table(ld, os->os_secsym); - - /* Create STT_SECTION symbols for relocation sections. */ - if (os->os_r != NULL && !ld->ld_reloc) { - _os = os->os_r; - _os->os_secsym = calloc(1, sizeof(*_os->os_secsym)); - if (_os->os_secsym == NULL) - ld_fatal_std(ld, "calloc"); - _os->os_secsym->lsb_name = NULL; - _os->os_secsym->lsb_size = 0; - _os->os_secsym->lsb_value = _os->os_addr; - _os->os_secsym->lsb_shndx = elf_ndxscn(_os->os_scn); - _os->os_secsym->lsb_bind = STB_LOCAL; - _os->os_secsym->lsb_type = STT_SECTION; - _os->os_secsym->lsb_other = 0; - _add_to_symbol_table(ld, _os->os_secsym); - } - } - - /* Copy local symbols from each input object. */ - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - if (li->li_local == NULL) - continue; - STAILQ_FOREACH(lsb, li->li_local, lsb_next) { - if (lsb->lsb_type != STT_SECTION && - lsb->lsb_index != 0) - _add_to_symbol_table(ld, lsb); - - /* - * Set the symbol index of the STT_SECTION symbols - * to the index of the section symbol for the - * corresponding output section. The updated - * symbol index will be used by the relocation - * serialization function If the linker generates - * relocatable object or option -emit-relocs is - * specified. - */ - if (lsb->lsb_type == STT_SECTION) { - is = lsb->lsb_is; - if (is->is_output != NULL) { - os = is->is_output; - assert(os->os_secsym != NULL); - lsb->lsb_out_index = - os->os_secsym->lsb_out_index; - } - } - } - } - - /* Copy resolved global symbols from hash table. */ - HASH_ITER(hh, ld->ld_sym, lsb, tmp) { - - /* Skip undefined/unreferenced symbols from DSO. */ - if (ld_symbols_in_dso(lsb) && - (lsb->lsb_shndx == SHN_UNDEF || !lsb->lsb_ref_ndso)) - continue; - - /* - * Skip linker script defined symbols when creating - * relocatable output object. - */ - if (lsb->lsb_input == NULL && ld->ld_reloc) - continue; - - /* Skip "provide" symbols that are not referenced. */ - if (lsb->lsb_provide && lsb->lsb_prev == NULL) - continue; - - if (lsb->lsb_import) { - if (lsb->lsb_type == STT_FUNC && lsb->lsb_func_addr) - lsb->lsb_value = lsb->lsb_plt_off; - else - lsb->lsb_value = 0; - lsb->lsb_shndx = SHN_UNDEF; - } - - _add_to_symbol_table(ld, lsb); - } -} - -void -ld_symbols_scan(struct ld *ld) -{ - struct ld_symbol *lsb, *tmp; - - ld->ld_dynsym = _alloc_symbol_table(ld); - if (ld->ld_dynstr == NULL) - ld->ld_dynstr = ld_strtab_alloc(ld, 0); - - /* Reserve space for the initial symbol. */ - ld->ld_dynsym->sy_size++; - - HASH_ITER(hh, ld->ld_sym, lsb, tmp) { - - /* - * Warn undefined symbols if the linker is creating an - * executable. - */ - if ((ld->ld_exec || ld->ld_pie) && - lsb->lsb_shndx == SHN_UNDEF && - lsb->lsb_bind != STB_WEAK) - ld_warn(ld, "undefined symbol: %s", lsb->lsb_name); - - /* - * Allocate space for common symbols and add them to the - * special input section COMMON for section layout later. - */ - if (lsb->lsb_shndx == SHN_COMMON) - ld_input_alloc_common_symbol(ld, lsb); - - /* - * The code below handles the dynamic symbol table. If - * we are doing a -static linking, we can skip. - */ - if (!ld->ld_dynamic_link) - continue; - - /* - * Following symbols should not be added to the dynamic - * symbol table: - * - * 1. Do not add undefined symbols in DSOs. - */ - if (ld_symbols_in_dso(lsb) && lsb->lsb_shndx == SHN_UNDEF) - continue; - - /* - * Add following symbols to the dynamic symbol table: - * - * 1. A symbol that is defined in a regular object and - * referenced by a DSO. - * - * 2. A symbol that is defined in a DSO and referenced - * by a regular object. - * - * 3. A symbol that is referenced by a dynamic relocation. - * - * 4. The linker creates a DSO and the symbol is defined - * in a regular object and is visible externally. - * - */ - if (lsb->lsb_ref_dso && ld_symbols_in_regular(lsb)) - _add_to_dynsym_table(ld, lsb); - else if (lsb->lsb_ref_ndso && ld_symbols_in_dso(lsb)) { - lsb->lsb_import = 1; - lsb->lsb_input->li_dso_refcnt++; - ld_symver_add_verdef_refcnt(ld, lsb); - _add_to_dynsym_table(ld, lsb); - } else if (lsb->lsb_dynrel) - _add_to_dynsym_table(ld, lsb); - else if (ld->ld_dso && ld_symbols_in_regular(lsb) && - lsb->lsb_other == STV_DEFAULT && - ld_symver_search_version_script(ld, lsb) != 0) - - _add_to_dynsym_table(ld, lsb); - } -} - -void -ld_symbols_finalize_dynsym(struct ld *ld) -{ - struct ld_output *lo; - struct ld_symbol *lsb, _lsb; - - lo = ld->ld_output; - assert(lo != NULL); - - /* Create an initial symbol at the beginning of symbol table. */ - _lsb.lsb_name = NULL; - _lsb.lsb_nameindex = 0; - _lsb.lsb_size = 0; - _lsb.lsb_value = 0; - _lsb.lsb_shndx = SHN_UNDEF; - _lsb.lsb_bind = STB_LOCAL; - _lsb.lsb_type = STT_NOTYPE; - _lsb.lsb_other = 0; - _write_to_dynsym_table(ld, &_lsb); - - assert(ld->ld_dyn_symbols != NULL); - - STAILQ_FOREACH(lsb, ld->ld_dyn_symbols, lsb_dyn) { - if (lsb->lsb_import) { - memcpy(&_lsb, lsb, sizeof(_lsb)); - if (lsb->lsb_type == STT_FUNC && lsb->lsb_func_addr) - _lsb.lsb_value = lsb->lsb_plt_off; - else - _lsb.lsb_value = 0; - _lsb.lsb_shndx = SHN_UNDEF; - _write_to_dynsym_table(ld, &_lsb); - } else - _write_to_dynsym_table(ld, lsb); - } - - lo->lo_dynsym->os_info_val = ld->ld_dynsym->sy_first_nonlocal; -} - -/* - * Retrieve the resolved symbol. - */ -struct ld_symbol * -ld_symbols_ref(struct ld_symbol *lsb) -{ - - while (lsb->lsb_ref != NULL) - lsb = lsb->lsb_ref; - - return (lsb); -} - -/* - * Check if a symbol can be overriden (by symbols in main executable). - */ -int -ld_symbols_overridden(struct ld *ld, struct ld_symbol *lsb) -{ - - /* Symbols can be overridden only when we are creating a DSO. */ - if (!ld->ld_dso) - return (0); - - /* Only visible symbols can be overriden. */ - if (lsb->lsb_other != STV_DEFAULT) - return (0); - - /* - * Symbols converted to local by version script can not be - * overridden. - */ - if (ld_symver_search_version_script(ld, lsb) == 0) - return (0); - - /* TODO: other cases. */ - - /* Otherwise symbol can be overridden. */ - return (1); -} - -/* - * Check if a symbol is defined in regular object. - */ -int -ld_symbols_in_regular(struct ld_symbol *lsb) -{ - - return (lsb->lsb_input == NULL || lsb->lsb_input->li_type != LIT_DSO); -} - -/* - * Check if a symbol is defined in a DSO. - */ -int -ld_symbols_in_dso(struct ld_symbol *lsb) -{ - - return (lsb->lsb_input != NULL && lsb->lsb_input->li_type == LIT_DSO); -} - -static struct ld_symbol * -_alloc_symbol(struct ld *ld) -{ - struct ld_symbol *s; - - if ((s = calloc(1, sizeof(*s))) == NULL) - ld_fatal_std(ld, "calloc"); - - return (s); -} - -static struct ld_symbol * -_find_symbol(struct ld_symbol *tbl, char *name) -{ - struct ld_symbol *s; - - HASH_FIND_STR(tbl, name, s); - return (s); -} - -#define _prefer_new() do { \ - _resolve_symbol(_lsb, lsb); \ - _remove_symbol(ld->ld_sym, _lsb); \ - _add_symbol(ld->ld_sym, lsb); \ - } while (0) - -#define _prefer_old() _resolve_symbol(lsb, _lsb) - -#undef max -#define max(a, b) ((a) > (b) ? (a) : (b)) - -static void -_resolve_and_add_symbol(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_symbol *_lsb; - struct ld_symbol_defver *dv; - char *name, *sn; - - /* "long" name is a symbol name plus a symbol version string. */ - name = lsb->lsb_longname; - - /* "sn" stores the bare symbol name. */ - sn = lsb->lsb_name; - - /* - * Search in the symbol table for the symbol with the same name and - * same version. - */ - if ((_lsb = _find_symbol(ld->ld_sym, name)) != NULL) - goto found; - - /* - * If there is a default version recorded for the symbol name: - * - * 1. If the symbol to resolve doesn't have a version, search the - * symbol with the same name and with a default version. - * - * 2. If the symbol to resolve has the default version, search the - * symbol with the same name but without a version. - */ - HASH_FIND_STR(ld->ld_defver, sn, dv); - if (dv != NULL) { - if (!strcmp(name, sn)) { - if ((_lsb = _find_symbol(ld->ld_sym, - dv->dv_longname)) != NULL) - goto found; - } else if (!strcmp(name, dv->dv_longname)) { - if ((_lsb = _find_symbol(ld->ld_sym, sn)) != NULL) - goto found; - } - } - - /* - * This is *probably* a new symbol, add it to the symbol table - * and proceed. - * - * Note that if one symbol has a version but another one doesn't, - * and they are both undefined, there is still a chance that they are - * the same symbol. We will solve that when we see the definition. - */ - _add_symbol(ld->ld_sym, lsb); - - return; - -found: - - /* - * We found the same symbol in the symbol table. Now we should - * decide which symbol to resolve and which symbol to keep. - */ - - /* - * Verify both symbol has the same TLS (thread local storage) - * characteristics. - */ - if ((lsb->lsb_type == STT_TLS || _lsb->lsb_type == STT_TLS) && - lsb->lsb_type != _lsb->lsb_type) - ld_fatal(ld, "TLS symbol %s is non-TLS in another reference"); - - - /* - * If the symbol to resolve is undefined, we always resolve this - * symbol to the symbol that is already in the table, no matter it is - * defined or not. - */ - - if (lsb->lsb_shndx == SHN_UNDEF) { - _prefer_old(); - return; - } - - /* - * If the symbol to resolve is a common symbol and is defined in - * a regular object: - * - * 1. If the symbol in the table is undefined, we prefer the - * common symbol. - * - * 2. If both symbols are common symbols, we prefer the symbol - * already in the table. However if the symbol in the table - * is found in a DSO, we prefer the common symbol in regular - * object. The size of the symbol we decided to keep is set to - * the larger one of the two. - * - * 3. If the symbol in the table is defined, we prefer the - * defined symbol. However if the defined symbol is found - * in a DSO, we prefer the common symbol in regular object. - * - */ - - if (lsb->lsb_shndx == SHN_COMMON && ld_symbols_in_regular(lsb)) { - if (_lsb->lsb_shndx == SHN_UNDEF) - _prefer_new(); - else if (_lsb->lsb_shndx == SHN_COMMON) { - if (ld_symbols_in_dso(_lsb)) { - _prefer_new(); - lsb->lsb_size = max(lsb->lsb_size, - _lsb->lsb_size); - } else { - _prefer_old(); - _lsb->lsb_size = max(lsb->lsb_size, - _lsb->lsb_size); - } - } else { - if (ld_symbols_in_dso(_lsb)) - _prefer_new(); - else - _prefer_old(); - } - return; - } - - - /* - * If the symbol to resolve is a common symbol and is defined in - * a DSO: - * - * 1. If the symbol in the table is undefined, we prefer the common - * symbol. - * - * 2. If the symbol in the table is also a common symbol, we prefer - * the one in the table. The size of the symbol we decided to - * keep is set to the larger one of the two. - * - * 3. If the symbol in the table is defined, we prefer the defined - * symbol. - */ - - if (lsb->lsb_shndx == SHN_COMMON && ld_symbols_in_dso(lsb)) { - if (_lsb->lsb_shndx == SHN_UNDEF) - _prefer_new(); - else if (_lsb->lsb_shndx == SHN_COMMON) { - _prefer_old(); - _lsb->lsb_size = max(lsb->lsb_size, _lsb->lsb_size); - } else - _prefer_old(); - return; - } - - /* - * Now we know the symbol to resolve is a defined symbol. If it is - * defined in a regular object: - * - * 1. If the symbol in the table is undefined, we prefer the defined - * symbol. (no doubt!) - * - * 2. If the symbol in the table is a common symbol, we perfer the - * defined symbol. - * - * 3. If the symbol in the table is also a defined symbol, we need to - * consider: - * - * a) If the symbol in the table is also defined in a regular object, - * and both symbols are strong, we have a multi-definition error. - * If only one of them is strong, we pick that one. If both of them - * are weak, we pick the one that is already in the table. (fisrt - * seen). Another case is that if one of them is a "provide" symbol, - * we prefer the one that is not "provide". - * - * b) If the symbol in the table is defined in a DSO, we pick the one - * defined in the regular object. (no matter weak or strong!) - */ - - if (ld_symbols_in_regular(lsb)) { - if (_lsb->lsb_shndx == SHN_UNDEF || - _lsb->lsb_shndx == SHN_COMMON) - _prefer_new(); - else { - if (ld_symbols_in_regular(_lsb)) { - if (_lsb->lsb_provide && !lsb->lsb_provide) - _prefer_new(); - else if (lsb->lsb_bind == _lsb->lsb_bind) { - if (lsb->lsb_bind == STB_WEAK) - _prefer_old(); - else - ld_fatal(ld, "multiple " - "definition of symbol %s", - lsb->lsb_longname); - } else if (lsb->lsb_bind == STB_WEAK) - _prefer_old(); - else - _prefer_new(); - } else - _prefer_new(); - } - return; - } - - /* - * Last case, the symbol to resolve is a defined symbol in a DSO. - * - * 1. If the symbol in the table is undefined, we prefer the defined - * symbol. (no doubt!) - * - * 2. If the symbol in the table is a common symbol: if it is in a - * regular object and the defined DSO symbol is a function, we - * prefer the common symbol. For all the other cases, we prefer - * the defined symbol in the DSO. - * - * 3. If the symbol in the table is a defined symbol. We always pick - * the symbol already in the table. (no matter it's in regular - * object or DSO, strong or weak) - */ - - if (_lsb->lsb_shndx != SHN_UNDEF && _lsb->lsb_shndx != SHN_COMMON) - _prefer_old(); - else if (_lsb->lsb_shndx == SHN_COMMON && - ld_symbols_in_regular(_lsb) && lsb->lsb_type == STT_FUNC) - _prefer_old(); - else { - _prefer_new(); - - /* - * Now we added a defined symbol from DSO. Here we should - * check if the DSO symbol has a default symbol version. - * If so, we search the symbol table for the symbol with the - * same name but without a symbol version. If there is one, - * we resolve the found symbol to this newly added DSO symbol - * and remove the found symbol from the table. - */ - HASH_FIND_STR(ld->ld_defver, sn, dv); - if (dv != NULL) { - if ((_lsb = _find_symbol(ld->ld_sym, sn)) != NULL) { - _resolve_symbol(_lsb, lsb); - _remove_symbol(ld->ld_sym, _lsb); - } - } - } -} - -static void -_add_elf_symbol(struct ld *ld, struct ld_input *li, Elf *e, GElf_Sym *sym, - size_t strndx, int i) -{ - struct ld_symbol *lsb; - struct ld_symbol_defver *dv; - char *name; - int j, len, ndx; - unsigned char st_bind; - - if ((name = elf_strptr(e, strndx, sym->st_name)) == NULL) - return; - - /* - * First check if the section this symbol refers to is belong - * to a section group that has been removed. - */ - st_bind = GELF_ST_BIND(sym->st_info); - if (sym->st_shndx != SHN_UNDEF && sym->st_shndx != SHN_COMMON && - sym->st_shndx != SHN_ABS && sym->st_shndx < li->li_shnum - 1 && - li->li_is[sym->st_shndx].is_discard) { - st_bind = GELF_ST_BIND(sym->st_info); - if (st_bind == STB_GLOBAL || st_bind == STB_WEAK) { - /* - * For symbol with STB_GLOBAL or STB_WEAK binding, - * we convert it to an undefined symbol. - */ - sym->st_shndx = SHN_UNDEF; - } else { - /* - * Local symbols are discarded, if the section they - * refer to are removed. - */ - return; - } - } - - lsb = _alloc_symbol(ld); - - if ((lsb->lsb_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - lsb->lsb_value = sym->st_value; - lsb->lsb_size = sym->st_size; - lsb->lsb_bind = GELF_ST_BIND(sym->st_info); - lsb->lsb_type = GELF_ST_TYPE(sym->st_info); - lsb->lsb_other = sym->st_other; - lsb->lsb_shndx = sym->st_shndx; - lsb->lsb_index = i; - lsb->lsb_input = li; - lsb->lsb_ver = NULL; - - if (lsb->lsb_shndx != SHN_UNDEF && lsb->lsb_shndx != SHN_ABS) { - if (lsb->lsb_shndx == SHN_COMMON) - lsb->lsb_is = &li->li_is[li->li_shnum - 1]; - else { - assert(lsb->lsb_shndx < li->li_shnum - 1); - lsb->lsb_is = &li->li_is[lsb->lsb_shndx]; - } - } - - if (li->li_type == LIT_DSO) - lsb->lsb_ref_dso = 1; - else - lsb->lsb_ref_ndso = 1; - - /* Find out symbol version info. */ - j = 0; - if (li->li_file->lf_type == LFT_DSO && li->li_vername != NULL && - li->li_versym != NULL && (size_t) i < li->li_versym_sz) { - j = li->li_versym[i]; - ndx = j & ~0x8000; - if ((size_t) ndx < li->li_vername_sz) { - lsb->lsb_ver = li->li_vername[ndx]; -#if 0 - printf("symbol: %s ver: %s\n", lsb->lsb_name, - lsb->lsb_ver); -#endif - if (j >= 2 && (j & 0x8000) == 0 && - lsb->lsb_shndx != SHN_UNDEF) - lsb->lsb_default = 1; - } - } - - /* Build "long" symbol name which is used for hash key. */ - if (lsb->lsb_ver == NULL || j < 2) { - lsb->lsb_longname = strdup(lsb->lsb_name); - if (lsb->lsb_longname == NULL) - ld_fatal_std(ld, "strdup"); - } else { - len = strlen(lsb->lsb_name) + strlen(lsb->lsb_ver) + 2; - if ((lsb->lsb_longname = malloc(len)) == NULL) - ld_fatal_std(ld, "malloc"); - snprintf(lsb->lsb_longname, len, "%s@%s", lsb->lsb_name, - lsb->lsb_ver); - } - - /* Keep track of default versions. */ - if (lsb->lsb_default) { - if ((dv = calloc(1, sizeof(*dv))) == NULL) - ld_fatal(ld, "calloc"); - dv->dv_name = lsb->lsb_name; - dv->dv_longname = lsb->lsb_longname; - dv->dv_ver = lsb->lsb_ver; - HASH_ADD_KEYPTR(hh, ld->ld_defver, dv->dv_name, - strlen(dv->dv_name), dv); - } - - /* - * Insert symbol to input object internal symbol list and - * perform symbol resolving. - */ - ld_input_add_symbol(ld, li, lsb); - if (lsb->lsb_bind != STB_LOCAL) - _resolve_and_add_symbol(ld, lsb); -} - -static int -_archive_member_extracted(struct ld_archive *la, off_t off) -{ - struct ld_archive_member *_lam; - - HASH_FIND(hh, la->la_m, &off, sizeof(off), _lam); - if (_lam != NULL) - return (1); - - return (0); -} - -static struct ld_archive_member * -_extract_archive_member(struct ld *ld, struct ld_file *lf, - struct ld_archive *la, off_t off) -{ - Elf *e; - Elf_Arhdr *arhdr; - struct ld_archive_member *lam; - struct ld_input *li; - - if (elf_rand(lf->lf_elf, off) == 0) - ld_fatal(ld, "%s: elf_rand failed: %s", lf->lf_name, - elf_errmsg(-1)); - - if ((e = elf_begin(-1, ELF_C_READ, lf->lf_elf)) == NULL) - ld_fatal(ld, "%s: elf_begin failed: %s", lf->lf_name, - elf_errmsg(-1)); - - if ((arhdr = elf_getarhdr(e)) == NULL) - ld_fatal(ld, "%s: elf_getarhdr failed: %s", lf->lf_name, - elf_errmsg(-1)); - - /* Keep record of extracted members. */ - if ((lam = calloc(1, sizeof(*lam))) == NULL) - ld_fatal_std(ld, "calloc"); - - lam->lam_ar_name = strdup(lf->lf_name); - if (lam->lam_ar_name == NULL) - ld_fatal_std(ld, "strdup"); - - lam->lam_name = strdup(arhdr->ar_name); - if (lam->lam_name == NULL) - ld_fatal_std(ld, "strdup"); - - lam->lam_off = off; - - HASH_ADD(hh, la->la_m, lam_off, sizeof(lam->lam_off), lam); - - /* Allocate input object for this member. */ - li = ld_input_alloc(ld, lf, lam->lam_name); - li->li_lam = lam; - lam->lam_input = li; - - /* Load the symbols of this member. */ - _load_elf_symbols(ld, li, e); - - elf_end(e); - - return (lam); -} - -static void -_print_extracted_member(struct ld *ld, struct ld_archive_member *lam, - struct ld_symbol *lsb) -{ - struct ld_state *ls; - char *c1, *c2; - - ls = &ld->ld_state; - - if (!ls->ls_archive_mb_header) { - printf("Extracted archive members:\n\n"); - ls->ls_archive_mb_header = 1; - } - - c1 = ld_input_get_fullname(ld, lam->lam_input); - c2 = ld_input_get_fullname(ld, lsb->lsb_input); - - printf("%-30s", c1); - if (strlen(c1) >= 30) { - printf("\n%-30s", ""); - } - printf("%s (%s)\n", c2, lsb->lsb_name); -} - -static void -_load_archive_symbols(struct ld *ld, struct ld_file *lf) -{ - struct ld_state *ls; - struct ld_archive *la; - struct ld_archive_member *lam; - struct ld_symbol *lsb; - Elf_Arsym *as; - size_t c; - int extracted, i; - - assert(lf != NULL && lf->lf_type == LFT_ARCHIVE); - assert(lf->lf_ar != NULL); - - ls = &ld->ld_state; - la = lf->lf_ar; - if ((as = elf_getarsym(lf->lf_elf, &c)) == NULL) - ld_fatal(ld, "%s: elf_getarsym failed: %s", lf->lf_name, - elf_errmsg(-1)); - do { - extracted = 0; - for (i = 0; (size_t) i < c; i++) { - if (as[i].as_name == NULL) - break; - if (_archive_member_extracted(la, as[i].as_off)) - continue; - if ((lsb = _find_symbol(ld->ld_sym, as[i].as_name)) != - NULL) { - lam = _extract_archive_member(ld, lf, la, - as[i].as_off); - extracted = 1; - ls->ls_extracted[ls->ls_group_level] = 1; - if (ld->ld_print_linkmap) - _print_extracted_member(ld, lam, lsb); - } - } - } while (extracted); -} - -static void -_load_elf_symbols(struct ld *ld, struct ld_input *li, Elf *e) -{ - struct ld_input_section *is; - Elf_Scn *scn_sym, *scn_dynamic; - Elf_Scn *scn_versym, *scn_verneed, *scn_verdef; - Elf_Data *d; - GElf_Sym sym; - GElf_Shdr shdr; - size_t dyn_strndx, strndx; - int elferr, i; - - /* Load section list from input object. */ - ld_input_init_sections(ld, li, e); - - strndx = dyn_strndx = SHN_UNDEF; - scn_sym = scn_versym = scn_verneed = scn_verdef = scn_dynamic = NULL; - - for (i = 0; (uint64_t) i < li->li_shnum - 1; i++) { - is = &li->li_is[i]; - if (li->li_type == LIT_DSO) { - if (is->is_type == SHT_DYNSYM) { - scn_sym = elf_getscn(e, is->is_index); - strndx = is->is_link; - } else if (is->is_type == SHT_SUNW_versym) - scn_versym = elf_getscn(e, is->is_index); - else if (is->is_type == SHT_SUNW_verneed) - scn_verneed = elf_getscn(e, is->is_index); - else if (is->is_type == SHT_SUNW_verdef) - scn_verdef = elf_getscn(e, is->is_index); - else if (is->is_type == SHT_DYNAMIC) { - scn_dynamic = elf_getscn(e, is->is_index); - dyn_strndx = is->is_link; - } - } else { - if (is->is_type == SHT_SYMTAB) { - scn_sym = elf_getscn(e, is->is_index); - strndx = is->is_link; - } - } - } - - if (scn_sym == NULL || strndx == SHN_UNDEF) - return; - - ld_symver_load_symbol_version_info(ld, li, e, scn_versym, scn_verneed, - scn_verdef); - - if (scn_dynamic != NULL) - ld_dynamic_load_dso_dynamic(ld, li, e, scn_dynamic, - dyn_strndx); - - if (gelf_getshdr(scn_sym, &shdr) != &shdr) { - ld_warn(ld, "%s: gelf_getshdr failed: %s", li->li_name, - elf_errmsg(-1)); - return; - } - - (void) elf_errno(); - if ((d = elf_getdata(scn_sym, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_warn(ld, "%s: elf_getdata failed: %s", li->li_name, - elf_errmsg(elferr)); - /* Empty symbol table section? */ - return; - } - - li->li_symnum = d->d_size / shdr.sh_entsize; - for (i = 0; (uint64_t) i < li->li_symnum; i++) { - if (gelf_getsym(d, i, &sym) != &sym) - ld_warn(ld, "%s: gelf_getsym failed: %s", li->li_name, - elf_errmsg(-1)); - _add_elf_symbol(ld, li, e, &sym, strndx, i); - } - -} - -static void -_load_symbols(struct ld *ld, struct ld_file *lf) -{ - - if (lf->lf_type == LFT_ARCHIVE) - _load_archive_symbols(ld, lf); - else { - lf->lf_input = ld_input_alloc(ld, lf, lf->lf_name); - _load_elf_symbols(ld, lf->lf_input, lf->lf_elf); - } -} - -static void -_unload_symbols(struct ld_input *li) -{ - int i; - - if (li->li_symindex == NULL) - return; - - for (i = 0; (uint64_t) i < li->li_symnum; i++) - _free_symbol(li->li_symindex[i]); -} - -static void -_free_symbol(struct ld_symbol *lsb) -{ - - if (lsb == NULL) - return; - - free(lsb->lsb_name); - free(lsb->lsb_longname); - free(lsb); -} - -static void -_update_symbol(struct ld_symbol *lsb) -{ - struct ld_input_section *is; - struct ld_output_section *os; - - if (lsb->lsb_preset_os != NULL) { - lsb->lsb_value = lsb->lsb_preset_os->os_addr; - lsb->lsb_shndx = elf_ndxscn(lsb->lsb_preset_os->os_scn); - return; - } - - if (lsb->lsb_shndx == SHN_ABS) - return; - - if (lsb->lsb_input != NULL) { - is = lsb->lsb_is; - if (is == NULL || (os = is->is_output) == NULL) - return; - lsb->lsb_value += os->os_addr + is->is_reloff; - lsb->lsb_shndx = elf_ndxscn(os->os_scn); - } -} - -struct ld_symbol_table * -_alloc_symbol_table(struct ld *ld) -{ - struct ld_symbol_table *symtab; - - if ((symtab = calloc(1, sizeof(*ld->ld_symtab))) == NULL) - ld_fatal_std(ld, "calloc"); - - return (symtab); -} - -static void -_add_to_dynsym_table(struct ld *ld, struct ld_symbol *lsb) -{ - - assert(ld->ld_dynsym != NULL && ld->ld_dynstr != NULL); - - if (ld->ld_dyn_symbols == NULL) { - ld->ld_dyn_symbols = malloc(sizeof(*ld->ld_dyn_symbols)); - if (ld->ld_dyn_symbols == NULL) - ld_fatal_std(ld, "malloc"); - STAILQ_INIT(ld->ld_dyn_symbols); - } - STAILQ_INSERT_TAIL(ld->ld_dyn_symbols, lsb, lsb_dyn); - - lsb->lsb_nameindex = ld_strtab_insert_no_suffix(ld, ld->ld_dynstr, - lsb->lsb_name); - - lsb->lsb_dyn_index = ld->ld_dynsym->sy_size++; -} - -static void -_write_to_dynsym_table(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_output *lo; - struct ld_symbol_table *symtab; - Elf32_Sym *s32; - Elf64_Sym *s64; - size_t es; - - assert(lsb != NULL); - assert(ld->ld_dynsym != NULL && ld->ld_dynstr != NULL); - symtab = ld->ld_dynsym; - - lo = ld->ld_output; - assert(lo != NULL); - - es = (lo->lo_ec == ELFCLASS32) ? sizeof(Elf32_Sym) : sizeof(Elf64_Sym); - - /* Allocate buffer for the dynsym table. */ - if (symtab->sy_buf == NULL) { - symtab->sy_buf = malloc(symtab->sy_size * es); - symtab->sy_write_pos = 0; - } - - if (lo->lo_ec == ELFCLASS32) { - s32 = symtab->sy_buf; - s32 += symtab->sy_write_pos; - s32->st_name = lsb->lsb_nameindex; - s32->st_info = ELF32_ST_INFO(lsb->lsb_bind, lsb->lsb_type); - s32->st_other = lsb->lsb_other; - s32->st_shndx = lsb->lsb_shndx; - s32->st_value = lsb->lsb_value; - s32->st_size = lsb->lsb_size; - } else { - s64 = symtab->sy_buf; - s64 += symtab->sy_write_pos; - s64->st_name = lsb->lsb_nameindex; - s64->st_info = ELF64_ST_INFO(lsb->lsb_bind, lsb->lsb_type); - s64->st_other = lsb->lsb_other; - s64->st_shndx = lsb->lsb_shndx; - s64->st_value = lsb->lsb_value; - s64->st_size = lsb->lsb_size; - } - - /* Remember the index for the first non-local symbol. */ - if (symtab->sy_first_nonlocal == 0 && lsb->lsb_bind != STB_LOCAL) - symtab->sy_first_nonlocal = symtab->sy_write_pos; - - symtab->sy_write_pos++; -} - -static void -_add_to_symbol_table(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_output *lo; - struct ld_symbol_table *symtab; - struct ld_strtab *strtab; - Elf32_Sym *s32; - Elf64_Sym *s64; - size_t es; - - assert(lsb != NULL); - assert(ld->ld_symtab != NULL && ld->ld_strtab != NULL); - symtab = ld->ld_symtab; - strtab = ld->ld_strtab; - - lo = ld->ld_output; - assert(lo != NULL); - - es = (lo->lo_ec == ELFCLASS32) ? sizeof(Elf32_Sym) : sizeof(Elf64_Sym); - - /* Allocate/Reallocate buffer for the symbol table. */ - if (symtab->sy_buf == NULL) { - symtab->sy_size = 0; - symtab->sy_cap = _INIT_SYMTAB_SIZE; - symtab->sy_buf = malloc(symtab->sy_cap * es); - if (symtab->sy_buf == NULL) - ld_fatal_std(ld, "malloc"); - } else if (symtab->sy_size >= symtab->sy_cap) { - symtab->sy_cap *= 2; - symtab->sy_buf = realloc(symtab->sy_buf, symtab->sy_cap * es); - if (symtab->sy_buf == NULL) - ld_fatal_std(ld, "relloc"); - } - - /* - * Insert the symbol into the symbol table and the symbol name to - * the assoicated name string table. - */ - lsb->lsb_nameindex = ld_strtab_insert_no_suffix(ld, strtab, - lsb->lsb_name); - if (lo->lo_ec == ELFCLASS32) { - s32 = symtab->sy_buf; - s32 += symtab->sy_size; - s32->st_name = lsb->lsb_nameindex; - s32->st_info = ELF32_ST_INFO(lsb->lsb_bind, lsb->lsb_type); - s32->st_other = lsb->lsb_other; - s32->st_shndx = lsb->lsb_shndx; - s32->st_value = lsb->lsb_value; - s32->st_size = lsb->lsb_size; - } else { - s64 = symtab->sy_buf; - s64 += symtab->sy_size; - s64->st_name = lsb->lsb_nameindex; - s64->st_info = ELF64_ST_INFO(lsb->lsb_bind, lsb->lsb_type); - s64->st_other = lsb->lsb_other; - s64->st_shndx = lsb->lsb_shndx; - s64->st_value = lsb->lsb_value; - s64->st_size = lsb->lsb_size; - } - - /* Remember the index for the first non-local symbol. */ - if (symtab->sy_first_nonlocal == 0 && lsb->lsb_bind != STB_LOCAL) - symtab->sy_first_nonlocal = symtab->sy_size; - - lsb->lsb_out_index = symtab->sy_size; - symtab->sy_size++; -} - -static void -_free_symbol_table(struct ld_symbol_table *symtab) -{ - - if (symtab == NULL) - return; - - free(symtab->sy_buf); - free(symtab); -} diff --git a/contrib/elftoolchain/ld/ld_symbols.h b/contrib/elftoolchain/ld/ld_symbols.h deleted file mode 100644 index e0c734fa..00000000 --- a/contrib/elftoolchain/ld/ld_symbols.h +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -struct ld_symver_verdef; - -struct ld_symbol { - char *lsb_name; /* symbol name */ - uint64_t lsb_nameindex; /* symbol name index */ - char *lsb_ver; /* symbol version */ - char *lsb_longname; /* symbol name+version (as hash key)*/ - uint64_t lsb_size; /* symbol size */ - uint64_t lsb_value; /* symbol value */ - uint16_t lsb_shndx; /* symbol section index */ - uint64_t lsb_index; /* symbol index */ - uint64_t lsb_dyn_index; /* dynamic symbol index */ - uint64_t lsb_out_index; /* symbol index (in output) */ - uint64_t lsb_got_off; /* got entry offset */ - uint64_t lsb_plt_off; /* plt entry offset */ - struct ld_script_variable *lsb_var; /* associated ldscript variable */ - unsigned char lsb_bind; /* symbol binding */ - unsigned char lsb_type; /* symbol type */ - unsigned char lsb_other; /* symbol visibility */ - unsigned char lsb_default; /* symbol is default/only version */ - unsigned char lsb_provide; /* provide symbol */ - unsigned char lsb_import; /* symbol is a import symbol */ - unsigned char lsb_ref_dso; /* symbol appeared in a DSO */ - unsigned char lsb_ref_ndso; /* symbol appeared in elsewhere */ - unsigned char lsb_dynrel; /* symbol used by dynamic reloc */ - unsigned char lsb_copy_reloc; /* symbol has copy reloc */ - unsigned char lsb_got; /* symbol has got entry */ - unsigned char lsb_plt; /* symbol has plt entry */ - unsigned char lsb_func_addr; /* symbol(function) has address */ - unsigned char lsb_tls_ld; /* local dynamic TLS symbol */ - unsigned char lsb_vndx_known; /* version index is known */ - uint16_t lsb_vndx; /* version index */ - struct ld_symver_verdef *lsb_vd; /* version definition */ - struct ld_symbol *lsb_prev; /* symbol resolved by this symbol */ - struct ld_symbol *lsb_ref; /* this symbol resolves to ... */ - struct ld_input *lsb_input; /* containing input object */ - struct ld_input_section *lsb_is; /* containing input section */ - struct ld_output_section *lsb_preset_os; /* Preset output section */ - UT_hash_handle hh; /* hash handle */ - STAILQ_ENTRY(ld_symbol) lsb_next; /* next symbol */ - STAILQ_ENTRY(ld_symbol) lsb_dyn; /* next dynamic symbol */ -}; - -STAILQ_HEAD(ld_symbol_head, ld_symbol); - -struct ld_symbol_table { - void *sy_buf; - size_t sy_cap; - size_t sy_size; - size_t sy_first_nonlocal; - size_t sy_write_pos; -}; - -struct ld_symbol_defver { - char *dv_name; - char *dv_longname; - char *dv_ver; - UT_hash_handle hh; -}; - -void ld_symbols_add_extern(struct ld *, char *); -void ld_symbols_add_variable(struct ld *, struct ld_script_variable *, - unsigned, unsigned); -void ld_symbols_add_internal(struct ld *, const char *, uint64_t, uint64_t, - uint16_t, unsigned char, unsigned char, unsigned char, - struct ld_input_section *, struct ld_output_section *); -void ld_symbols_build_symtab(struct ld *); -void ld_symbols_cleanup(struct ld *); -void ld_symbols_scan(struct ld *); -void ld_symbols_finalize_dynsym(struct ld *); -int ld_symbols_get_value(struct ld *, char *, uint64_t *); -void ld_symbols_resolve(struct ld *); -void ld_symbols_update(struct ld *); -struct ld_symbol *ld_symbols_ref(struct ld_symbol *); -int ld_symbols_overridden(struct ld *, struct ld_symbol *); -int ld_symbols_in_dso(struct ld_symbol *); -int ld_symbols_in_regular(struct ld_symbol *); diff --git a/contrib/elftoolchain/ld/ld_symver.c b/contrib/elftoolchain/ld/ld_symver.c deleted file mode 100644 index f3ba59e6..00000000 --- a/contrib/elftoolchain/ld/ld_symver.c +++ /dev/null @@ -1,854 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_input.h" -#include "ld_layout.h" -#include "ld_output.h" -#include "ld_script.h" -#include "ld_symbols.h" -#include "ld_symver.h" -#include "ld_strtab.h" - -ELFTC_VCSID("$Id$"); - -/* - * Symbol versioning sections are the same for 32bit and 64bit - * ELF objects. - */ -#define Elf_Verdef Elf32_Verdef -#define Elf_Verdaux Elf32_Verdaux -#define Elf_Verneed Elf32_Verneed -#define Elf_Vernaux Elf32_Vernaux - -static void _add_version_name(struct ld *ld, struct ld_input *li, int ndx, - const char *name); -static struct ld_symver_vda *_alloc_vda(struct ld *ld, const char *name, - struct ld_symver_verdef *svd); -static struct ld_symver_vna *_alloc_vna(struct ld *ld, const char *name, - struct ld_symver_verneed *svn); -static struct ld_symver_verdef *_alloc_verdef(struct ld *ld, - struct ld_symver_verdef_head *head); -static struct ld_symver_verneed *_alloc_verneed(struct ld *ld, - struct ld_input *li, struct ld_symver_verneed_head *head); -static struct ld_symver_verdef *_load_verdef(struct ld *ld, - struct ld_input *li, Elf_Verdef *vd); -static void _load_verdef_section(struct ld *ld, struct ld_input *li, Elf *e, - Elf_Scn *verdef); -static void _load_verneed_section(struct ld *ld, struct ld_input *li, Elf *e, - Elf_Scn *verneed); - -void -ld_symver_load_symbol_version_info(struct ld *ld, struct ld_input *li, Elf *e, - Elf_Scn *versym, Elf_Scn *verneed, Elf_Scn *verdef) -{ - Elf_Data *d_vs; - int elferr; - - if (versym == NULL) - return; - - (void) elf_errno(); - if ((d_vs = elf_getdata(versym, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_fatal(ld, "%s: elf_getdata failed: %s", li->li_name, - elf_errmsg(elferr)); - return; - } - if (d_vs->d_size == 0) - return; - - if ((li->li_versym = malloc(d_vs->d_size)) == NULL) - ld_fatal_std(ld, "malloc"); - memcpy(li->li_versym, d_vs->d_buf, d_vs->d_size); - li->li_versym_sz = d_vs->d_size / sizeof(uint16_t); - - _add_version_name(ld, li, 0, "*local*"); - _add_version_name(ld, li, 1, "*global*"); - - if (verneed != NULL) - _load_verneed_section(ld, li, e, verneed); - - if (verdef != NULL) - _load_verdef_section(ld, li, e, verdef); -} - -void -ld_symver_create_verneed_section(struct ld *ld) -{ - struct ld_input *li; - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_data_buffer *odb; - struct ld_symver_verdef *svd; - struct ld_symver_verneed *svn; - struct ld_symver_vda *sda; - struct ld_symver_vna *sna; - char verneed_name[] = ".gnu.version_r"; - Elf_Verneed *vn; - Elf_Vernaux *vna; - uint8_t *buf, *buf2, *end; - size_t sz; - - lo = ld->ld_output; - assert(lo != NULL); - assert(lo->lo_dynstr != NULL); - - /* - * Create .gnu.version_r section. - */ - HASH_FIND_STR(lo->lo_ostbl, verneed_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, verneed_name, - SHF_ALLOC); - os->os_type = SHT_GNU_verneed; - os->os_flags = SHF_ALLOC; - os->os_entsize = 0; - if (lo->lo_ec == ELFCLASS32) - os->os_align = 4; - else - os->os_align = 8; - - if ((os->os_link = strdup(".dynstr")) == NULL) - ld_fatal_std(ld, "strdup"); - - lo->lo_verneed = os; - - /* - * Build Verneed/Vernaux structures. - */ - sz = 0; - STAILQ_FOREACH(li, &ld->ld_lilist, li_next) { - if (li->li_type != LIT_DSO || li->li_dso_refcnt == 0 || - li->li_verdef == NULL) - continue; - - svn = NULL; - STAILQ_FOREACH(svd, li->li_verdef, svd_next) { - if (svd->svd_flags & VER_FLG_BASE) - continue; - - /* Skip version definition that is never ref'ed. */ - if (svd->svd_ref == 0) - continue; - - /* Invalid Verdef? */ - if ((sda = STAILQ_FIRST(&svd->svd_aux)) == NULL) - continue; - - if (lo->lo_vnlist == NULL) { - lo->lo_vnlist = calloc(1, - sizeof(*lo->lo_vnlist)); - if (lo->lo_vnlist == NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(lo->lo_vnlist); - } - - /* Allocate Verneed entry. */ - if (svn == NULL) { - svn = _alloc_verneed(ld, li, lo->lo_vnlist); - svn->svn_version = VER_NEED_CURRENT; - svn->svn_cnt = 0; - svn->svn_fileindex = - ld_strtab_insert_no_suffix(ld, - ld->ld_dynstr, svn->svn_file); - sz += sizeof(Elf_Verneed); - lo->lo_verneed_num++; - } - - /* Allocate Vernaux entry. */ - sna = _alloc_vna(ld, sda->sda_name, svn); - sna->sna_other = lo->lo_version_index++; - sna->sna_nameindex = ld_strtab_insert_no_suffix(ld, - ld->ld_dynstr, sna->sna_name); - /* TODO: flags? VER_FLG_WEAK */ - svn->svn_cnt++; - - sz += sizeof(Elf_Vernaux); - - /* - * Store the index in Verdef structure, so later we can - * quickly find the version index for a dynamic symbol, - * when we build the .gnu.version section. - */ - svd->svd_ndx_output = sna->sna_other; - } - } - - if (lo->lo_verneed_num == 0) - return; - - /* Store the number of verneed entries in the sh_info field. */ - os->os_info_val = lo->lo_verneed_num; - - /* - * Write Verneed/Vernaux structures. - */ - if ((buf = malloc(sz)) == NULL) - ld_fatal_std(ld, "malloc"); - - if ((odb = calloc(1, sizeof(*odb))) == NULL) - ld_fatal_std(ld, "calloc"); - - odb->odb_buf = buf; - odb->odb_size = sz; - odb->odb_align = os->os_align; - odb->odb_type = ELF_T_VNEED; /* enable libelf translation */ - - end = buf + sz; - vn = NULL; - STAILQ_FOREACH(svn, lo->lo_vnlist, svn_next){ - vn = (Elf_Verneed *) (uintptr_t) buf; - vn->vn_version = VER_NEED_CURRENT; - vn->vn_cnt = svn->svn_cnt; - vn->vn_file = svn->svn_fileindex; - vn->vn_aux = sizeof(Elf_Verneed); - vn->vn_next = sizeof(Elf_Verneed) + - svn->svn_cnt * sizeof(Elf_Vernaux); - - /* - * Write Vernaux entries. - */ - buf2 = buf + sizeof(Elf_Verneed); - vna = NULL; - STAILQ_FOREACH(sna, &svn->svn_aux, sna_next) { - vna = (Elf_Vernaux *) (uintptr_t) buf2; - vna->vna_hash = sna->sna_hash; - vna->vna_flags = 0; /* TODO: VER_FLG_WEAK? */ - vna->vna_other = sna->sna_other; - vna->vna_name = sna->sna_nameindex; - vna->vna_next = sizeof(Elf_Vernaux); - buf2 += sizeof(Elf_Vernaux); - } - - /* Set last Vernaux entry's vna_next to 0. */ - if (vna != NULL) - vna->vna_next = 0; - - buf += vn->vn_next; - } - - /* Set last Verneed entry's vn_next to 0 */ - if (vn != NULL) - vn->vn_next = 0; - - assert(buf == end); - - (void) ld_output_create_section_element(ld, os, OET_DATA_BUFFER, - odb, NULL); -} - -void -ld_symver_create_verdef_section(struct ld *ld) -{ - struct ld_script *lds; - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_data_buffer *odb; - struct ld_script_version_node *ldvn; - char verdef_name[] = ".gnu.version_d"; - Elf_Verdef *vd; - Elf_Verdaux *vda; - uint8_t *buf, *end; - char *soname; - size_t sz; - - lo = ld->ld_output; - assert(lo != NULL); - assert(lo->lo_dynstr != NULL); - - lds = ld->ld_scp; - if (STAILQ_EMPTY(&lds->lds_vn)) - return; - - /* - * Create .gnu.version_d section. - */ - HASH_FIND_STR(lo->lo_ostbl, verdef_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, verdef_name, - SHF_ALLOC); - os->os_type = SHT_GNU_verdef; - os->os_flags = SHF_ALLOC; - os->os_entsize = 0; - if (lo->lo_ec == ELFCLASS32) - os->os_align = 4; - else - os->os_align = 8; - - if ((os->os_link = strdup(".dynstr")) == NULL) - ld_fatal_std(ld, "strdup"); - - lo->lo_verdef = os; - - /* - * Calculate verdef section size: .gnu.version_d section consists - * of one file version entry and several symbol version definition - * entries (with corresponding) auxiliary entries. - */ - lo->lo_verdef_num = 1; - sz = sizeof(Elf_Verdef) + sizeof(Elf_Verdaux); - STAILQ_FOREACH(ldvn, &lds->lds_vn, ldvn_next) { - sz += sizeof(Elf_Verdef) + sizeof(Elf_Verdaux); - if (ldvn->ldvn_dep != NULL) - sz += sizeof(Elf_Verdaux); - lo->lo_verdef_num++; - } - - /* Store the number of verdef entries in the sh_info field. */ - os->os_info_val = lo->lo_verdef_num; - - /* Allocate buffer for Verdef/Verdaux entries. */ - if ((buf = malloc(sz)) == NULL) - ld_fatal_std(ld, "malloc"); - - end = buf + sz; - - if ((odb = calloc(1, sizeof(*odb))) == NULL) - ld_fatal_std(ld, "calloc"); - - odb->odb_buf = buf; - odb->odb_size = sz; - odb->odb_align = os->os_align; - odb->odb_type = ELF_T_VDEF; /* enable libelf translation */ - - /* - * Set file version name to `soname' if it is provided, - * otherwise set version name to output file name. - */ - if (ld->ld_soname != NULL) - soname = ld->ld_soname; - else { - if ((soname = strrchr(ld->ld_output_file, '/')) == NULL) - soname = ld->ld_output_file; - else - soname++; - } - - /* Write file version entry. */ - vd = (Elf_Verdef *) (uintptr_t) buf; - vd->vd_version = VER_DEF_CURRENT; - vd->vd_flags |= VER_FLG_BASE; - vd->vd_ndx = 1; - vd->vd_cnt = 1; - vd->vd_hash = elf_hash(soname); - vd->vd_aux = sizeof(Elf_Verdef); - vd->vd_next = sizeof(Elf_Verdef) + sizeof(Elf_Verdaux); - buf += sizeof(Elf_Verdef); - - /* Write file version auxiliary entry. */ - vda = (Elf_Verdaux *) (uintptr_t) buf; - vda->vda_name = ld_strtab_insert_no_suffix(ld, ld->ld_dynstr, - soname); - vda->vda_next = 0; - buf += sizeof(Elf_Verdaux); - - /* Write symbol version definition entries. */ - STAILQ_FOREACH(ldvn, &lds->lds_vn, ldvn_next) { - vd = (Elf_Verdef *) (uintptr_t) buf; - vd->vd_version = VER_DEF_CURRENT; - vd->vd_flags = 0; - vd->vd_ndx = lo->lo_version_index++; - vd->vd_cnt = (ldvn->ldvn_dep == NULL) ? 1 : 2; - vd->vd_hash = elf_hash(ldvn->ldvn_name); - vd->vd_aux = sizeof(Elf_Verdef); - if (STAILQ_NEXT(ldvn, ldvn_next) == NULL) - vd->vd_next = 0; - else - vd->vd_next = sizeof(Elf_Verdef) + - ((ldvn->ldvn_dep == NULL) ? 1 : 2) * - sizeof(Elf_Verdaux); - buf += sizeof(Elf_Verdef); - - /* Write version name auxiliary entry. */ - vda = (Elf_Verdaux *) (uintptr_t) buf; - vda->vda_name = ld_strtab_insert_no_suffix(ld, ld->ld_dynstr, - ldvn->ldvn_name); - vda->vda_next = ldvn->ldvn_dep == NULL ? 0 : - sizeof(Elf_Verdaux); - buf += sizeof(Elf_Verdaux); - - if (ldvn->ldvn_dep == NULL) - continue; - - /* Write version dependency auxiliary entry. */ - vda = (Elf_Verdaux *) (uintptr_t) buf; - vda->vda_name = ld_strtab_insert_no_suffix(ld, ld->ld_dynstr, - ldvn->ldvn_dep); - vda->vda_next = 0; - buf += sizeof(Elf_Verdaux); - } - - assert(buf == end); - - (void) ld_output_create_section_element(ld, os, OET_DATA_BUFFER, - odb, NULL); -} - -void -ld_symver_create_versym_section(struct ld *ld) -{ - struct ld_output *lo; - struct ld_output_section *os; - struct ld_output_data_buffer *odb; - struct ld_symbol *lsb; - char versym_name[] = ".gnu.version"; - uint16_t *buf; - size_t sz; - int i; - - lo = ld->ld_output; - assert(lo != NULL); - assert(lo->lo_dynsym != NULL); - assert(ld->ld_dynsym != NULL); - - /* - * Create .gnu.version section. - */ - HASH_FIND_STR(lo->lo_ostbl, versym_name, os); - if (os == NULL) - os = ld_layout_insert_output_section(ld, versym_name, - SHF_ALLOC); - os->os_type = SHT_GNU_versym; - os->os_flags = SHF_ALLOC; - os->os_entsize = 2; - os->os_align = 2; - - if ((os->os_link = strdup(".dynsym")) == NULL) - ld_fatal_std(ld, "strdup"); - - lo->lo_versym = os; - - /* - * Write versym table. - */ - sz = ld->ld_dynsym->sy_size * sizeof(*buf); - if ((buf = malloc(sz)) == NULL) - ld_fatal_std(ld, "malloc"); - - buf[0] = 0; /* special index 0 symbol */ - i = 1; - STAILQ_FOREACH(lsb, ld->ld_dyn_symbols, lsb_dyn) { - /* - * Assign version index according to the following rules: - * - * 1. If the symbol is local, the version is *local*. - * - * 2. If the symbol is defined in shared libraries and there - * exists a version definition for this symbol, use the - * version defined by the shared library. - * - * 3. If the symbol is defined in regular objects and the - * linker creates a shared library, use the version - * defined in the version script, if provided. - * - * 4. Otherwise, the version is *global*. - */ - if (lsb->lsb_bind == STB_LOCAL) - buf[i] = 0; /* Version is *local* */ - else if (lsb->lsb_vd != NULL) - buf[i] = lsb->lsb_vd->svd_ndx_output; - else if (ld->ld_dso && ld_symbols_in_regular(lsb)) - buf[i] = ld_symver_search_version_script(ld, lsb); - else { - buf[i] = 1; /* Version is *global* */ - } - i++; - } - assert((size_t) i == ld->ld_dynsym->sy_size); - - if ((odb = calloc(1, sizeof(*odb))) == NULL) - ld_fatal_std(ld, "calloc"); - - odb->odb_buf = (void *) buf; - odb->odb_size = sz; - odb->odb_align = os->os_align; - odb->odb_type = ELF_T_HALF; /* enable libelf translation */ - - (void) ld_output_create_section_element(ld, os, OET_DATA_BUFFER, - odb, NULL); -} - -void -ld_symver_add_verdef_refcnt(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_symbol_defver *dv; - struct ld_symver_verdef *svd; - struct ld_symver_vda *sda; - struct ld_input *li; - const char *ver; - - li = lsb->lsb_input; - assert(li != NULL); - - if (li->li_verdef == NULL) - return; - - if (lsb->lsb_ver != NULL) - ver = lsb->lsb_ver; - else { - HASH_FIND_STR(ld->ld_defver, lsb->lsb_name, dv); - if (dv == NULL || dv->dv_ver == NULL) - return; - ver = dv->dv_ver; - } - - STAILQ_FOREACH(svd, li->li_verdef, svd_next) { - if (svd->svd_flags & VER_FLG_BASE) - continue; - - /* Invalid Verdef? */ - if ((sda = STAILQ_FIRST(&svd->svd_aux)) == NULL) - continue; - - if (!strcmp(ver, sda->sda_name)) - break; - } - - if (svd != NULL) { - svd->svd_ref++; - lsb->lsb_vd = svd; - } -} - -static void -_add_version_name(struct ld *ld, struct ld_input *li, int ndx, - const char *name) -{ - int i; - - assert(name != NULL); - - if (ndx <= 1) - return; - - if (li->li_vername == NULL) { - li->li_vername_sz = 10; - li->li_vername = calloc(li->li_vername_sz, - sizeof(*li->li_vername)); - if (li->li_vername == NULL) - ld_fatal_std(ld, "calloc"); - } - - if ((size_t) ndx >= li->li_vername_sz) { - li->li_vername = realloc(li->li_vername, - sizeof(*li->li_vername) * li->li_vername_sz * 2); - if (li->li_vername == NULL) - ld_fatal_std(ld, "realloc"); - for (i = li->li_vername_sz; (size_t) i < li->li_vername_sz * 2; - i++) - li->li_vername[i] = NULL; - li->li_vername_sz *= 2; - } - - if (li->li_vername[ndx] == NULL) { - li->li_vername[ndx] = strdup(name); - if (li->li_vername[ndx] == NULL) - ld_fatal_std(ld, "strdup"); - } -} - -static struct ld_symver_vna * -_alloc_vna(struct ld *ld, const char *name, struct ld_symver_verneed *svn) -{ - struct ld_symver_vna *sna; - - assert(name != NULL); - - if ((sna = calloc(1, sizeof(*sna))) == NULL) - ld_fatal_std(ld, "calloc"); - - if ((sna->sna_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - - sna->sna_hash = (uint32_t) elf_hash(sna->sna_name); - - if (svn != NULL) - STAILQ_INSERT_TAIL(&svn->svn_aux, sna, sna_next); - - return (sna); -} - -static struct ld_symver_vda * -_alloc_vda(struct ld *ld, const char *name, struct ld_symver_verdef *svd) -{ - struct ld_symver_vda *sda; - - if ((sda = calloc(1, sizeof(*sda))) == NULL) - ld_fatal_std(ld, "calloc"); - - if ((sda->sda_name = strdup(name)) == NULL) - ld_fatal_std(ld, "strdup"); - - if (svd != NULL) - STAILQ_INSERT_TAIL(&svd->svd_aux, sda, sda_next); - - return (sda); -} - -static struct ld_symver_verneed * -_alloc_verneed(struct ld *ld, struct ld_input *li, - struct ld_symver_verneed_head *head) -{ - struct ld_symver_verneed *svn; - const char *bn; - - if ((svn = calloc(1, sizeof(*svn))) == NULL) - ld_fatal_std(ld, "calloc"); - - if (li->li_soname != NULL) - bn = li->li_soname; - else { - if ((bn = strrchr(li->li_name, '/')) == NULL) - bn = li->li_name; - else - bn++; - } - - if ((svn->svn_file = strdup(bn)) == NULL) - ld_fatal_std(ld, "strdup"); - - STAILQ_INIT(&svn->svn_aux); - - if (head != NULL) - STAILQ_INSERT_TAIL(head, svn, svn_next); - - return (svn); -} - -static struct ld_symver_verdef * -_alloc_verdef(struct ld *ld, struct ld_symver_verdef_head *head) -{ - struct ld_symver_verdef *svd; - - if ((svd = calloc(1, sizeof(*svd))) == NULL) - ld_fatal_std(ld, "calloc"); - - STAILQ_INIT(&svd->svd_aux); - - if (head != NULL) - STAILQ_INSERT_TAIL(head, svd, svd_next); - - return (svd); -} - -static void -_load_verneed_section(struct ld *ld, struct ld_input *li, Elf *e, - Elf_Scn *verneed) -{ - Elf_Data *d_vn; - Elf_Verneed *vn; - Elf_Vernaux *vna; - GElf_Shdr sh_vn; - uint8_t *buf, *end, *buf2; - char *name; - int elferr, i; - - if (gelf_getshdr(verneed, &sh_vn) != &sh_vn) - ld_fatal(ld, "%s: gelf_getshdr failed: %s", li->li_name, - elf_errmsg(-1)); - - (void) elf_errno(); - if ((d_vn = elf_getdata(verneed, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_fatal(ld, "%s: elf_getdata failed: %s", li->li_name, - elf_errmsg(elferr)); - return; - } - if (d_vn->d_size == 0) - return; - - buf = d_vn->d_buf; - end = buf + d_vn->d_size; - while (buf + sizeof(Elf_Verneed) <= end) { - vn = (Elf_Verneed *) (uintptr_t) buf; - buf2 = buf + vn->vn_aux; - i = 0; - while (buf2 + sizeof(Elf_Vernaux) <= end && i < vn->vn_cnt) { - vna = (Elf32_Vernaux *) (uintptr_t) buf2; - name = elf_strptr(e, sh_vn.sh_link, - vna->vna_name); - if (name != NULL) - _add_version_name(ld, li, (int) vna->vna_other, - name); - buf2 += vna->vna_next; - i++; - } - if (vn->vn_next == 0) - break; - buf += vn->vn_next; - } -} - -static void -_load_verdef_section(struct ld *ld, struct ld_input *li, Elf *e, - Elf_Scn *verdef) -{ - struct ld_symver_verdef *svd; - Elf_Data *d_vd; - Elf_Verdef *vd; - Elf_Verdaux *vda; - GElf_Shdr sh_vd; - uint8_t *buf, *end, *buf2; - char *name; - int elferr, i; - - if (gelf_getshdr(verdef, &sh_vd) != &sh_vd) - ld_fatal(ld, "%s: gelf_getshdr failed: %s", li->li_name, - elf_errmsg(-1)); - - (void) elf_errno(); - if ((d_vd = elf_getdata(verdef, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - ld_fatal(ld, "%s: elf_getdata failed: %s", li->li_name, - elf_errmsg(elferr)); - return; - } - if (d_vd->d_size == 0) - return; - - buf = d_vd->d_buf; - end = buf + d_vd->d_size; - while (buf + sizeof(Elf_Verdef) <= end) { - vd = (Elf_Verdef *) (uintptr_t) buf; - svd = _load_verdef(ld, li, vd); - buf2 = buf + vd->vd_aux; - i = 0; - while (buf2 + sizeof(Elf_Verdaux) <= end && i < vd->vd_cnt) { - vda = (Elf_Verdaux *) (uintptr_t) buf2; - name = elf_strptr(e, sh_vd.sh_link, vda->vda_name); - if (name != NULL) { - _add_version_name(ld, li, (int) vd->vd_ndx, - name); - (void) _alloc_vda(ld, name, svd); - } - if (vda->vda_next == 0) - break; - buf2 += vda->vda_next; - i++; - } - if (vd->vd_next == 0) - break; - buf += vd->vd_next; - } -} - -static struct ld_symver_verdef * -_load_verdef(struct ld *ld, struct ld_input *li, Elf_Verdef *vd) -{ - struct ld_symver_verdef *svd; - - if (li->li_verdef == NULL) { - if ((li->li_verdef = calloc(1, sizeof(*li->li_verdef))) == - NULL) - ld_fatal_std(ld, "calloc"); - STAILQ_INIT(li->li_verdef); - } - - svd = _alloc_verdef(ld, li->li_verdef); - svd->svd_version = vd->vd_version; - svd->svd_flags = vd->vd_flags; - svd->svd_ndx = vd->vd_ndx; - svd->svd_cnt = vd->vd_cnt; - svd->svd_hash = vd->vd_hash; - - return (svd); -} - -uint16_t -ld_symver_search_version_script(struct ld *ld, struct ld_symbol *lsb) -{ - struct ld_script *lds; - struct ld_script_version_node *ldvn; - struct ld_script_version_entry *ldve, *ldve_g; - uint16_t ndx, ret_ndx, ret_ndx_g; - - /* If the symbol version index was known, return it directly. */ - if (lsb->lsb_vndx_known) - return (lsb->lsb_vndx); - - /* The symbol version index will be known after searching. */ - lsb->lsb_vndx_known = 1; - - lds = ld->ld_scp; - - /* If there isn't a version script, the default version is *global* */ - if (STAILQ_EMPTY(&lds->lds_vn)) { - lsb->lsb_vndx = 1; - return (1); - } - - /* Search for a match in the version patterns. */ - ndx = 2; - ldve_g = NULL; - ret_ndx_g = 0; - STAILQ_FOREACH(ldvn, &lds->lds_vn, ldvn_next) { - STAILQ_FOREACH(ldve, ldvn->ldvn_e, ldve_next) { - assert(ldve->ldve_sym != NULL); - if (fnmatch(ldve->ldve_sym, lsb->lsb_name, 0) == 0) { - if (ldve->ldve_local) - ret_ndx = 0; - else if (ldvn->ldvn_name != NULL) - ret_ndx = ndx; - else - ret_ndx = 1; - - /* - * If the version name is a globbing pattern, - * we only consider it is a match when there - * doesn't exist a exact match. - */ - if (ldve->ldve_glob) { - if (ldve_g == NULL) { - ldve_g = ldve; - ret_ndx_g = ret_ndx; - } - } else { - lsb->lsb_vndx = ret_ndx; - return (ret_ndx); - } - } - } - if (ldvn->ldvn_name != NULL) - ndx++; - } - - /* There is no exact match, check if there is a globbing match. */ - if (ldve_g != NULL) { - lsb->lsb_vndx = ret_ndx_g; - return (ret_ndx_g); - } - - /* - * Symbol doesn't match any version definition, set version - * to *global*. - */ - lsb->lsb_vndx = 1; - return (1); -} diff --git a/contrib/elftoolchain/ld/ld_symver.h b/contrib/elftoolchain/ld/ld_symver.h deleted file mode 100644 index 0c661029..00000000 --- a/contrib/elftoolchain/ld/ld_symver.h +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * Copyright (c) 2010-2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -struct ld_symver_vna { - char *sna_name; - uint32_t sna_hash; - uint16_t sna_flags; - uint16_t sna_other; - uint32_t sna_nameindex; - STAILQ_ENTRY(ld_symver_vna) sna_next; -}; - -STAILQ_HEAD(ld_symver_vna_head, ld_symver_vna); - -struct ld_symver_verneed { - char *svn_file; - uint16_t svn_version; - uint16_t svn_cnt; - uint32_t svn_fileindex; - struct ld_symver_vna_head svn_aux; - STAILQ_ENTRY(ld_symver_verneed) svn_next; -}; - -STAILQ_HEAD(ld_symver_verneed_head, ld_symver_verneed); - -struct ld_symver_vda { - char *sda_name; - uint32_t sda_nameindex; - STAILQ_ENTRY(ld_symver_vda) sda_next; -}; - -STAILQ_HEAD(ld_symver_vda_head, ld_symver_vda); - -struct ld_symver_verdef { - uint16_t svd_version; - uint16_t svd_flags; - uint16_t svd_ndx; - uint16_t svd_ndx_output; - uint16_t svd_cnt; - uint32_t svd_hash; - uint64_t svd_ref; - struct ld_symver_vda_head svd_aux; - STAILQ_ENTRY(ld_symver_verdef) svd_next; -}; - -STAILQ_HEAD(ld_symver_verdef_head, ld_symver_verdef); - -void ld_symver_load_symbol_version_info(struct ld *, struct ld_input *, - Elf *, Elf_Scn *, Elf_Scn *, Elf_Scn *); -void ld_symver_create_verdef_section(struct ld *); -void ld_symver_create_verneed_section(struct ld *); -void ld_symver_create_versym_section(struct ld *); -void ld_symver_add_verdef_refcnt(struct ld *, struct ld_symbol *); -uint16_t ld_symver_search_version_script(struct ld *, struct ld_symbol *); diff --git a/contrib/elftoolchain/ld/ld_utils.h b/contrib/elftoolchain/ld/ld_utils.h deleted file mode 100644 index ab556e4b..00000000 --- a/contrib/elftoolchain/ld/ld_utils.h +++ /dev/null @@ -1,164 +0,0 @@ -/*- - * Copyright (c) 2012,2013 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#define READ_16(P,V) \ - do { \ - if (lo->lo_endian == ELFDATA2MSB) \ - READ_16BE(P, V); \ - else \ - READ_16LE(P, V); \ - } while (0) - -#define READ_32(P,V) \ - do { \ - if (lo->lo_endian == ELFDATA2MSB) \ - READ_32BE(P, V); \ - else \ - READ_32LE(P, V); \ - } while (0) - -#define READ_64(P,V) \ - do { \ - if (lo->lo_endian == ELFDATA2MSB) \ - READ_64BE(P, V); \ - else \ - READ_64LE(P, V); \ - } while (0) - -#define READ_16BE(P,V) \ - do { \ - (V) = ((P)[0] << 8) | (P)[1]; \ - } while (0) - -#define READ_32BE(P,V) \ - do { \ - (V) = ((unsigned)(P)[0] << 24) | ((P)[1] << 16) | \ - ((P)[2] << 8) | (P)[3]; \ - } while (0) - -#define READ_64BE(P,V) \ - do { \ - (V) = ((uint64_t)(P)[0] << 56) | \ - ((uint64_t)(P)[1] << 48) | \ - ((uint64_t)(P)[2] << 40) | \ - ((uint64_t)(P)[3] << 32) | \ - ((uint64_t)(P)[4] << 24) | \ - ((uint64_t)(P)[5] << 16) | \ - ((uint64_t)(P)[6] << 8) | (P)[7]; \ - } while (0) - -#define READ_16LE(P,V) \ - do { \ - (V) = ((P)[1] << 8) | (P)[0]; \ - } while (0) - -#define READ_32LE(P,V) \ - do { \ - (V) = ((unsigned)(P)[3] << 24) | ((P)[2] << 16) | \ - ((P)[1] << 8) | (P)[0]; \ - } while (0) - -#define READ_64LE(P,V) \ - do { \ - (V) = ((uint64_t)(P)[7] << 56) | \ - ((uint64_t)(P)[6] << 48) | \ - ((uint64_t)(P)[5] << 40) | \ - ((uint64_t)(P)[4] << 32) | \ - ((uint64_t)(P)[3] << 24) | \ - ((uint64_t)(P)[2] << 16) | \ - ((uint64_t)(P)[1] << 8) | (P)[0]; \ - } while (0) - -#define WRITE_8(P,V) \ - do { \ - *(P) = (V) & 0xff; \ - } while (0) - -#define WRITE_16(P,V) \ - do { \ - if (lo->lo_endian == ELFDATA2MSB) \ - WRITE_16BE(P, V); \ - else \ - WRITE_16LE(P, V); \ - } while (0) - -#define WRITE_32(P,V) \ - do { \ - if (lo->lo_endian == ELFDATA2MSB) \ - WRITE_32BE(P, V); \ - else \ - WRITE_32LE(P, V); \ - } while (0) - -#define WRITE_64(P,V) \ - do { \ - if (lo->lo_endian == ELFDATA2MSB) \ - WRITE_64BE(P, V); \ - else \ - WRITE_64LE(P, V); \ - } while (0) - -#define WRITE_16BE(P,V) \ - do { \ - (P)[0] = ((V) >> 8) & 0xff; \ - (P)[1] = (V) & 0xff; \ - } while (0) - -#define WRITE_32BE(P,V) \ - do { \ - (P)[0] = ((V) >> 24) & 0xff; \ - (P)[1] = ((V) >> 16) & 0xff; \ - (P)[2] = ((V) >> 8) & 0xff; \ - (P)[3] = (V) & 0xff; \ - } while (0) - -#define WRITE_64BE(P,V) \ - do { \ - WRITE_32BE((P),(V) >> 32); \ - WRITE_32BE((P) + 4, (V) & 0xffffffffU); \ - } while (0) - -#define WRITE_16LE(P,V) \ - do { \ - (P)[0] = (V) & 0xff; \ - (P)[1] = ((V) >> 8) & 0xff; \ - } while (0) - -#define WRITE_32LE(P,V) \ - do { \ - (P)[0] = (V) & 0xff; \ - (P)[1] = ((V) >> 8) & 0xff; \ - (P)[2] = ((V) >> 16) & 0xff; \ - (P)[3] = ((V) >> 24) & 0xff; \ - } while (0) - -#define WRITE_64LE(P,V) \ - do { \ - WRITE_32LE((P), (V) & 0xffffffffU); \ - WRITE_32LE((P) + 4, (V) >> 32); \ - } while (0) diff --git a/contrib/elftoolchain/ld/littlemips_script.ld b/contrib/elftoolchain/ld/littlemips_script.ld deleted file mode 100644 index 3fe3779a..00000000 --- a/contrib/elftoolchain/ld/littlemips_script.ld +++ /dev/null @@ -1,165 +0,0 @@ -/* $Id$ */ - -OUTPUT_FORMAT("elf32-littlemips") -ENTRY(_start) -SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); -SECTIONS { - PROVIDE (__executable_start = 0x00400000); - . = 0x00400000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rel.dyn : - { - *(.rel.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rel.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rel.dtors) - *(.rel.got) - *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - } - .rela.dyn : - { - *(.rela.init) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rela.fini) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rela.ctors) - *(.rela.dtors) - *(.rela.got) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - } - .rel.plt : { *(.rel.plt) } - .rela.plt : { *(.rela.plt) } - .init : - { - KEEP(*(.init)) - } = 0x00000000 - .plt : { *(.plt) } - .text : - { - _ftext = .; - *(.text .stub .text.* .gnu.linkonce.t.*) - } = 0x00000000 - .fini : - { - KEEP(*(.fini)) - } = 0x00000000 - PROVIDE(__etext = .); - PROVIDE(_etext = .); - PROVIDE(etext = .); - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } - .rodata1 : { *(.rodata1) } - .eh_frame_hdr : { *(.eh_frame_hdr) } - .eh_frame : { KEEP(*(.eh_frame)) } - .gcc_except_table : { *(.gcc_except_table) } - - .tdata : ALIGN(4096) { *(.tdata .tdata.* .gnu.linkonce.td.*) } - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } - PROVIDE(__preinit_array_start = .); - .preinit_array : { *(.preinit_array) } - PROVIDE(__preinit_array_end = .); - PROVIDE(__init_array_start = .); - .init_array : { *(.init_array) } - PROVIDE(__init_array_end = .); - PROVIDE(__fini_array_start = .); - .fini_array : { *(.fini_array) } - PROVIDE(__fini_array_end = .); - .dynamic : { *(.dynamic) } - .ctors : - { - KEEP(*crtbegin*.o(.ctors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .ctors)) - KEEP(*(SORT(.ctors.*))) - KEEP(*(.ctors)) - } - .dtors : - { - KEEP(*crtbegin*.o(.dtors)) - KEEP(*(EXCLUDE_FILE (*crtend*.o ) .dtors)) - KEEP(*(SORT(.dtors.*))) - KEEP(*(.dtors)) - } - .jcr : { KEEP(*(.jcr)) } - .got : { *(.got.plt) *(.got) } - .data : - { - _fdata = .; - *(.data .data.* .gnu.linkonce.d.*) - SORT(CONSTRUCTORS) - } - .data1 : { *(.data1) } - _gp = ALIGN(16) + 0x7ff0; - .sdata : - { - *(.sdata .sdata.* .gnu.linkonce.s.*) - } - /* Align the end of data segment to page boundary. */ - . = ALIGN(. != 0 ? 4096 : 1); - _edata = .; - PROVIDE(edata = .); - __bss_start = .; - _fbss = .; - .sbss : ALIGN(8) - { - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) - } - .bss : - { - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(32 / 8); - } - . = ALIGN(32 / 8); - _end = .; - PROVIDE(end = .); - . = DATA_SEGMENT_END (.); - - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - - /* DWARF1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF1 Extension */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - - /* DWARF2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /DISCARD/ : { *(.note.GNU-stack) *(.reginfo) } -} diff --git a/contrib/elftoolchain/ld/mips.c b/contrib/elftoolchain/ld/mips.c deleted file mode 100644 index 59a92219..00000000 --- a/contrib/elftoolchain/ld/mips.c +++ /dev/null @@ -1,403 +0,0 @@ -/*- - * Copyright (c) 2015 Serge Vakulenko - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "ld.h" -#include "ld_arch.h" -#include "ld_dynamic.h" -#include "ld_input.h" -#include "ld_output.h" -#include "ld_reloc.h" -#include "ld_symbols.h" -#include "ld_utils.h" -#include "mips.h" - -#define EF_MIPS_ABI2 0x00000020 /* n32 abi */ -#define EF_MIPS_ABI 0x00007000 /* Application binary interface */ -#define E_MIPS_ABI_O32 0x00001000 /* MIPS 32 bit ABI (UCODE) */ -#define E_MIPS_ABI_O64 0x00002000 /* UCODE MIPS 64 bit ABI */ -#define E_MIPS_ABI_EABI32 0x00003000 /* Embedded ABI for 32-bit */ -#define E_MIPS_ABI_EABI64 0x00004000 /* Embedded ABI for 64-bit */ - -#define EF_MIPS_ASE_MDMX 0x08000000 /* MDMX multimedia extensions */ -#define EF_MIPS_ASE_M16 0x04000000 /* MIPS16e ISA extensions */ -#define EF_MIPS_ASE_MICROMIPS 0x02000000 /* MicroMIPS architecture */ - -#define EF_MIPS_ARCH_1 0x00000000 /* MIPS I instruction set */ -#define EF_MIPS_ARCH_2 0x10000000 /* MIPS II instruction set */ -#define EF_MIPS_ARCH_3 0x20000000 /* MIPS III instruction set */ -#define EF_MIPS_ARCH_4 0x30000000 /* MIPS IV instruction set */ -#define EF_MIPS_ARCH_5 0x40000000 /* Never introduced */ -#define EF_MIPS_ARCH_32 0x50000000 /* Mips32 Revision 1 */ -#define EF_MIPS_ARCH_64 0x60000000 /* Mips64 Revision 1 */ -#define EF_MIPS_ARCH_32R2 0x70000000 /* Mips32 Revision 2 */ -#define EF_MIPS_ARCH_64R2 0x80000000 /* Mips64 Revision 2 */ - -ELFTC_VCSID("$Id$"); - -static void -_scan_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre) -{ - - (void) is; - - switch (lre->lre_type) { - - case R_MIPS_NONE: - case R_MIPS_32: - case R_MIPS_26: - case R_MIPS_PC16: - case R_MIPS_GPREL16: - case R_MIPS_HI16: - case R_MIPS_LO16: - break; - - default: - ld_warn(ld, "can not handle relocation %ju", - lre->lre_type); - break; - } -} - -static void -_process_reloc(struct ld *ld, struct ld_input_section *is, - struct ld_reloc_entry *lre, struct ld_symbol *lsb, uint8_t *buf) -{ - struct ld_output *lo = ld->ld_output; - uint32_t pc, s; - int32_t a, v, la; - static uint64_t gp; - static char gp_name[] = "_gp"; - - assert(lo != NULL); - - pc = lre->lre_offset + is->is_output->os_addr + is->is_reloff; - s = (uint32_t) lsb->lsb_value; - READ_32(buf + lre->lre_offset, a); - - switch (lre->lre_type) { - - case R_MIPS_NONE: - break; - - case R_MIPS_32: - /* 32-bit byte address. */ - v = s + a; - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_MIPS_26: - /* Word address at lower 26 bits. */ - s += (a & 0x3ffffff) << 2; - v = (a & ~0x3ffffff) | ((s >> 2) & 0x3ffffff); - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_MIPS_PC16: - /* PC-relative word address at lower 16 bits. */ - s += ((a & 0xffff) << 2) - pc; - v = (a & ~0xffff) | ((s >> 2) & 0xffff); - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_MIPS_GPREL16: - /* GP-relative byte address at lower 16 bits. */ - if (! gp && ld_symbols_get_value(ld, gp_name, &gp) < 0) - ld_fatal(ld, "symbol _gp is undefined"); - - s += (int16_t)(a & 0xffff) - gp; - v = (a & ~0xffff) | (s & 0xffff); - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_MIPS_HI16: - /* 16-bit high part of address pair. */ - if (! STAILQ_NEXT(lre, lre_next) || - STAILQ_NEXT(lre, lre_next)->lre_type != R_MIPS_LO16) - ld_fatal(ld, "no LO16 after HI16 relocation"); - READ_32(buf + STAILQ_NEXT(lre, lre_next)->lre_offset, la); - s += (a << 16) + (int16_t)la; - v = (a & ~0xffff) | (((s - (int16_t)s) >> 16) & 0xffff); - WRITE_32(buf + lre->lre_offset, v); - break; - - case R_MIPS_LO16: - /* 16-bit low part of address pair. */ - s += (int16_t)a; - v = (a & ~0xffff) | (s & 0xffff); - WRITE_32(buf + lre->lre_offset, v); - break; - - default: - ld_fatal(ld, "Relocation %d not supported", lre->lre_type); - break; - } -} - -/* - * Map flags into a valid MIPS architecture level value. - */ -static unsigned -_map_arch(unsigned flags) -{ - flags &= EF_MIPS_ARCH; - - switch (flags) { - default: - case EF_MIPS_ARCH_1: - return EF_MIPS_ARCH_1; - case EF_MIPS_ARCH_2: - case EF_MIPS_ARCH_3: - case EF_MIPS_ARCH_4: - case EF_MIPS_ARCH_5: - case EF_MIPS_ARCH_32: - case EF_MIPS_ARCH_64: - case EF_MIPS_ARCH_32R2: - case EF_MIPS_ARCH_64R2: - return flags; - } -} - -/* - * Merge architecture levels of two files. - */ -static unsigned -_merge_arch(unsigned old_arch, unsigned new_arch) -{ - unsigned base, extended; - - if (old_arch < new_arch) { - base = old_arch; - extended = new_arch; - } else if (old_arch > new_arch) { - base = new_arch; - extended = old_arch; - } else - return old_arch; - - switch (extended) { - default: - case EF_MIPS_ARCH_1: - case EF_MIPS_ARCH_2: - case EF_MIPS_ARCH_3: - case EF_MIPS_ARCH_4: - case EF_MIPS_ARCH_5: - return extended; - - case EF_MIPS_ARCH_32: - if (base <= EF_MIPS_ARCH_2) - return EF_MIPS_ARCH_32; - return EF_MIPS_ARCH_64; - - case EF_MIPS_ARCH_64: - return EF_MIPS_ARCH_64; - - case EF_MIPS_ARCH_32R2: - if (base <= EF_MIPS_ARCH_2 || base == EF_MIPS_ARCH_32) - return EF_MIPS_ARCH_32R2; - return EF_MIPS_ARCH_64R2; - - case EF_MIPS_ARCH_64R2: - return EF_MIPS_ARCH_64R2; - } -} - -static const char* -_abi_name(int flags) -{ - switch (flags & EF_MIPS_ABI) { - case 0: - return (flags & EF_MIPS_ABI2) ? "N32" : "none"; - case E_MIPS_ABI_O32: - return "O32"; - case E_MIPS_ABI_O64: - return "O64"; - case E_MIPS_ABI_EABI32: - return "EABI32"; - case E_MIPS_ABI_EABI64: - return "EABI64"; - default: - return "Unknown"; - } -} - -/* - * Merge options of application binary interface. - */ -static unsigned -_merge_abi(struct ld *ld, unsigned new_flags) -{ - int old = ld->ld_arch->flags & EF_MIPS_ABI; - int new = new_flags & EF_MIPS_ABI; - - if (old == 0) - return new; - - if (new != old && new != 0) - ld_fatal(ld, "ABI mismatch: linking '%s' module with previous '%s' modules", - _abi_name(new_flags), _abi_name(ld->ld_arch->flags)); - - return old; -} - -/* - * Merge options of application-specific extensions. - */ -static unsigned -_merge_ase(struct ld *ld, unsigned new_flags) -{ - int old_micro = ld->ld_arch->flags & EF_MIPS_ASE_MICROMIPS; - int new_micro = new_flags & EF_MIPS_ASE_MICROMIPS; - int old_m16 = ld->ld_arch->flags & EF_MIPS_ASE_M16; - int new_m16 = new_flags & EF_MIPS_ASE_M16; - - if ((old_m16 && new_micro) || (old_micro && new_m16)) - ld_fatal(ld, "ASE mismatch: linking '%s' module with previous '%s' modules", - new_m16 ? "MIPS16" : "microMIPS", - old_micro ? "microMIPS" : "MIPS16"); - return old_micro | new_micro | old_m16 | new_m16; -} - -/* - * Merge architecture-specific flags of the file to be linked - * into a resulting value for output file. - */ -static void -_merge_flags(struct ld *ld, unsigned new_flags) -{ - struct ld_arch *la = ld->ld_arch; - unsigned value; - - /* At least one .noreorder directive appeared in the source. */ - la->flags |= new_flags & EF_MIPS_NOREORDER; - - /* Merge position-independent flags. */ - if (((new_flags & (EF_MIPS_PIC | EF_MIPS_CPIC)) != 0) != - ((la->flags & (EF_MIPS_PIC | EF_MIPS_CPIC)) != 0)) - ld_warn(ld, "linking PIC files with non-PIC files"); - if (new_flags & (EF_MIPS_PIC | EF_MIPS_CPIC)) - la->flags |= EF_MIPS_CPIC; - if (! (new_flags & EF_MIPS_PIC)) - la->flags &= ~EF_MIPS_PIC; - - /* Merge architecture level. */ - value = _merge_arch(_map_arch(la->flags), _map_arch(new_flags)); - la->flags &= ~EF_MIPS_ARCH; - la->flags |= value; - - /* Merge ABI options. */ - value = _merge_abi(ld, new_flags); - la->flags &= ~EF_MIPS_ABI; - la->flags |= value; - - /* Merge application-specific extensions. */ - value = _merge_ase(ld, new_flags); - la->flags &= ~EF_MIPS_ARCH_ASE; - la->flags |= value; -} - -static uint64_t -_get_max_page_size(struct ld *ld) -{ - - (void) ld; - - return 0x1000; -} - -static uint64_t -_get_common_page_size(struct ld *ld) -{ - - (void) ld; - - return 0x1000; -} - -static int -_is_absolute_reloc(uint64_t r) -{ - if (r == R_MIPS_32) - return 1; - - return 0; -} - -static int -_is_relative_reloc(uint64_t r) -{ - if (r == R_MIPS_REL32) - return 1; - - return 0; -} - -void -mips_register(struct ld *ld) -{ - struct ld_arch *mips_little_endian, *mips_big_endian; - - if ((mips_little_endian = calloc(1, sizeof(*mips_little_endian))) == NULL) - ld_fatal_std(ld, "calloc"); - if ((mips_big_endian = calloc(1, sizeof(*mips_big_endian))) == NULL) - ld_fatal_std(ld, "calloc"); - - /* - * Little endian. - */ - snprintf(mips_little_endian->name, sizeof(mips_little_endian->name), "%s", "littlemips"); - - mips_little_endian->script = littlemips_script; - mips_little_endian->get_max_page_size = _get_max_page_size; - mips_little_endian->get_common_page_size = _get_common_page_size; - mips_little_endian->scan_reloc = _scan_reloc; - mips_little_endian->process_reloc = _process_reloc; - mips_little_endian->is_absolute_reloc = _is_absolute_reloc; - mips_little_endian->is_relative_reloc = _is_relative_reloc; - mips_little_endian->merge_flags = _merge_flags; - mips_little_endian->reloc_is_64bit = 0; - mips_little_endian->reloc_is_rela = 0; - mips_little_endian->reloc_entsize = sizeof(Elf32_Rel); - - /* - * Big endian. - */ - snprintf(mips_big_endian->name, sizeof(mips_big_endian->name), "%s", "bigmips"); - - mips_big_endian->script = bigmips_script; - mips_big_endian->get_max_page_size = _get_max_page_size; - mips_big_endian->get_common_page_size = _get_common_page_size; - mips_big_endian->scan_reloc = _scan_reloc; - mips_big_endian->process_reloc = _process_reloc; - mips_big_endian->is_absolute_reloc = _is_absolute_reloc; - mips_big_endian->is_relative_reloc = _is_relative_reloc; - mips_little_endian->merge_flags = _merge_flags; - mips_big_endian->reloc_is_64bit = 0; - mips_big_endian->reloc_is_rela = 0; - mips_big_endian->reloc_entsize = sizeof(Elf32_Rel); - - HASH_ADD_STR(ld->ld_arch_list, name, mips_little_endian); - HASH_ADD_STR(ld->ld_arch_list, name, mips_big_endian); -} diff --git a/contrib/elftoolchain/ld/mips.h b/contrib/elftoolchain/ld/mips.h deleted file mode 100644 index 90de4aa7..00000000 --- a/contrib/elftoolchain/ld/mips.h +++ /dev/null @@ -1,29 +0,0 @@ -/*- - * Copyright (c) 2015 Serge Vakulenko - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -char *littlemips_script; -char *bigmips_script; - -void mips_register(struct ld *); diff --git a/contrib/elftoolchain/libdwarf/Makefile b/contrib/elftoolchain/libdwarf/Makefile deleted file mode 100644 index 211a5a63..00000000 --- a/contrib/elftoolchain/libdwarf/Makefile +++ /dev/null @@ -1,337 +0,0 @@ -# $Id$ - -TOP= .. - -LIB= dwarf - -SRCS= \ - dwarf_abbrev.c \ - dwarf_arange.c \ - dwarf_attr.c \ - dwarf_attrval.c \ - dwarf_cu.c \ - dwarf_dealloc.c \ - dwarf_die.c \ - dwarf_dump.c \ - dwarf_errmsg.c \ - dwarf_finish.c \ - dwarf_form.c \ - dwarf_frame.c \ - dwarf_funcs.c \ - dwarf_init.c \ - dwarf_lineno.c \ - dwarf_loclist.c \ - dwarf_macinfo.c \ - dwarf_pro_arange.c \ - dwarf_pro_attr.c \ - dwarf_pro_die.c \ - dwarf_pro_expr.c \ - dwarf_pro_finish.c \ - dwarf_pro_frame.c \ - dwarf_pro_funcs.c \ - dwarf_pro_init.c \ - dwarf_pro_lineno.c \ - dwarf_pro_macinfo.c \ - dwarf_pro_pubnames.c \ - dwarf_pro_reloc.c \ - dwarf_pro_sections.c \ - dwarf_pro_types.c \ - dwarf_pro_vars.c \ - dwarf_pro_weaks.c \ - dwarf_pubnames.c \ - dwarf_pubtypes.c \ - dwarf_ranges.c \ - dwarf_reloc.c \ - dwarf_sections.c \ - dwarf_seterror.c \ - dwarf_str.c \ - dwarf_types.c \ - dwarf_vars.c \ - dwarf_weaks.c \ - libdwarf.c \ - libdwarf_abbrev.c \ - libdwarf_arange.c \ - libdwarf_attr.c \ - libdwarf_die.c \ - libdwarf_error.c \ - libdwarf_elf_access.c \ - libdwarf_elf_init.c \ - libdwarf_frame.c \ - libdwarf_info.c \ - libdwarf_init.c \ - libdwarf_lineno.c \ - libdwarf_loc.c \ - libdwarf_loclist.c \ - libdwarf_macinfo.c \ - libdwarf_nametbl.c \ - libdwarf_ranges.c \ - libdwarf_reloc.c \ - libdwarf_rw.c \ - libdwarf_sections.c \ - libdwarf_str.c - -INCS= dwarf.h libdwarf.h -INCSDIR= /usr/include - -GENSRCS= dwarf_pubnames.c dwarf_pubtypes.c dwarf_weaks.c \ - dwarf_funcs.c dwarf_vars.c dwarf_types.c \ - dwarf_pro_pubnames.c dwarf_pro_weaks.c \ - dwarf_pro_funcs.c dwarf_pro_types.c \ - dwarf_pro_vars.c -CLEANFILES= ${GENSRCS} - -SHLIB_MAJOR= 3 - -WARNS?= 6 - -LDADD+= -lelf - -MAN= dwarf.3 \ - dwarf_add_arange.3 \ - dwarf_add_AT_comp_dir.3 \ - dwarf_add_AT_const_value_string.3 \ - dwarf_add_AT_dataref.3 \ - dwarf_add_AT_flag.3 \ - dwarf_add_AT_location_expr.3 \ - dwarf_add_AT_name.3 \ - dwarf_add_AT_producer.3 \ - dwarf_add_AT_ref_address.3 \ - dwarf_add_AT_reference.3 \ - dwarf_add_AT_signed_const.3 \ - dwarf_add_AT_string.3 \ - dwarf_add_AT_targ_address.3 \ - dwarf_add_die_to_debug.3 \ - dwarf_add_directory_decl.3 \ - dwarf_add_expr_addr.3 \ - dwarf_add_expr_gen.3 \ - dwarf_add_fde_inst.3 \ - dwarf_add_file_decl.3 \ - dwarf_add_frame_cie.3 \ - dwarf_add_frame_fde.3 \ - dwarf_add_funcname.3 \ - dwarf_add_line_entry.3 \ - dwarf_add_pubname.3 \ - dwarf_add_typename.3 \ - dwarf_add_varname.3 \ - dwarf_add_weakname.3 \ - dwarf_attr.3 \ - dwarf_attrlist.3 \ - dwarf_attroffset.3 \ - dwarf_attrval_signed.3 \ - dwarf_child.3 \ - dwarf_dealloc.3 \ - dwarf_def_macro.3 \ - dwarf_die_abbrev_code.3 \ - dwarf_die_link.3 \ - dwarf_diename.3 \ - dwarf_dieoffset.3 \ - dwarf_end_macro_file.3 \ - dwarf_errmsg.3 \ - dwarf_errno.3 \ - dwarf_expand_frame_instructions.3 \ - dwarf_expr_current_offset.3 \ - dwarf_expr_into_block.3 \ - dwarf_fde_cfa_offset.3 \ - dwarf_find_macro_value_start.3 \ - dwarf_finish.3 \ - dwarf_formaddr.3 \ - dwarf_formblock.3 \ - dwarf_formexprloc.3 \ - dwarf_formflag.3 \ - dwarf_formref.3 \ - dwarf_formsig8.3 \ - dwarf_formstring.3 \ - dwarf_formudata.3 \ - dwarf_get_abbrev.3 \ - dwarf_get_abbrev_children_flag.3 \ - dwarf_get_abbrev_code.3 \ - dwarf_get_abbrev_entry.3 \ - dwarf_get_abbrev_tag.3 \ - dwarf_get_address_size.3 \ - dwarf_get_arange.3 \ - dwarf_get_arange_info.3 \ - dwarf_get_aranges.3 \ - dwarf_get_AT_name.3 \ - dwarf_get_cie_index.3 \ - dwarf_get_cie_info.3 \ - dwarf_get_cie_of_fde.3 \ - dwarf_get_cu_die_offset.3 \ - dwarf_get_die_infotypes_flag.3 \ - dwarf_get_elf.3 \ - dwarf_get_fde_at_pc.3 \ - dwarf_get_fde_info_for_all_regs.3 \ - dwarf_get_fde_info_for_all_regs3.3 \ - dwarf_get_fde_info_for_cfa_reg3.3 \ - dwarf_get_fde_info_for_reg.3 \ - dwarf_get_fde_info_for_reg3.3 \ - dwarf_get_fde_instr_bytes.3 \ - dwarf_get_fde_list.3 \ - dwarf_get_fde_n.3 \ - dwarf_get_fde_range.3 \ - dwarf_get_form_class.3 \ - dwarf_get_funcs.3 \ - dwarf_get_globals.3 \ - dwarf_get_loclist_entry.3 \ - dwarf_get_macro_details.3 \ - dwarf_get_pubtypes.3 \ - dwarf_get_ranges.3 \ - dwarf_get_relocation_info.3 \ - dwarf_get_relocation_info_count.3 \ - dwarf_get_section_bytes.3 \ - dwarf_get_section_max_offsets.3 \ - dwarf_get_str.3 \ - dwarf_get_types.3 \ - dwarf_get_vars.3 \ - dwarf_get_weaks.3 \ - dwarf_hasattr.3 \ - dwarf_hasform.3 \ - dwarf_highpc.3 \ - dwarf_init.3 \ - dwarf_lineno.3 \ - dwarf_lne_end_sequence.3 \ - dwarf_lne_set_address.3 \ - dwarf_loclist.3 \ - dwarf_loclist_from_expr.3 \ - dwarf_new_die.3 \ - dwarf_new_expr.3 \ - dwarf_new_fde.3 \ - dwarf_next_cu_header.3 \ - dwarf_next_types_section.3 \ - dwarf_object_init.3 \ - dwarf_producer_init.3 \ - dwarf_producer_set_isa.3 \ - dwarf_reset_section_bytes.3 \ - dwarf_seterrarg.3 \ - dwarf_set_frame_cfa_value.3 \ - dwarf_set_reloc_application.3 \ - dwarf_srcfiles.3 \ - dwarf_srclines.3 \ - dwarf_start_macro_file.3 \ - dwarf_tag.3 \ - dwarf_transform_to_disk_form.3 \ - dwarf_undef_macro.3 \ - dwarf_vendor_ext.3 \ - dwarf_whatattr.3 - -MLINKS+= \ - dwarf_add_AT_const_value_string.3 dwarf_add_AT_const_value_signedint.3 \ - dwarf_add_AT_const_value_string.3 dwarf_add_AT_const_value_unsignedint.3 \ - dwarf_add_AT_signed_const.3 dwarf_add_AT_unsigned_const.3 \ - dwarf_add_AT_targ_address.3 dwarf_add_AT_targ_address_b.3 \ - dwarf_add_arange.3 dwarf_add_arange_b.3 \ - dwarf_add_expr_addr.3 dwarf_add_expr_addr_b.3 \ - dwarf_add_frame_fde.3 dwarf_add_frame_fde_b.3 \ - dwarf_attrval_signed.3 dwarf_attrval_flag.3 \ - dwarf_attrval_signed.3 dwarf_attrval_string.3 \ - dwarf_attrval_signed.3 dwarf_attrval_unsigned.3 \ - dwarf_child.3 dwarf_offdie.3 \ - dwarf_child.3 dwarf_offdie_b.3 \ - dwarf_child.3 dwarf_siblingof.3 \ - dwarf_child.3 dwarf_siblingof_b.3 \ - dwarf_dealloc.3 dwarf_fde_cie_list_dealloc.3 \ - dwarf_dealloc.3 dwarf_funcs_dealloc.3 \ - dwarf_dealloc.3 dwarf_globals_dealloc.3 \ - dwarf_dealloc.3 dwarf_pubtypes_dealloc.3 \ - dwarf_dealloc.3 dwarf_types_dealloc.3 \ - dwarf_dealloc.3 dwarf_vars_dealloc.3 \ - dwarf_dealloc.3 dwarf_weaks_dealloc.3 \ - dwarf_dealloc.3 dwarf_ranges_dealloc.3 \ - dwarf_dealloc.3 dwarf_srclines_dealloc.3 \ - dwarf_init.3 dwarf_elf_init.3 \ - dwarf_dieoffset.3 dwarf_die_CU_offset.3 \ - dwarf_dieoffset.3 dwarf_die_CU_offset_range.3 \ - dwarf_dieoffset.3 dwarf_get_cu_die_offset_given_cu_header_offset.3 \ - dwarf_dieoffset.3 dwarf_get_cu_die_offset_given_cu_header_offset_b.3 \ - dwarf_finish.3 dwarf_object_finish.3 \ - dwarf_formref.3 dwarf_global_formref.3 \ - dwarf_formudata.3 dwarf_formsdata.3 \ - dwarf_get_AT_name.3 dwarf_get_ACCESS_name.3 \ - dwarf_get_AT_name.3 dwarf_get_ATE_name.3 \ - dwarf_get_AT_name.3 dwarf_get_CC_name.3 \ - dwarf_get_AT_name.3 dwarf_get_CFA_name.3 \ - dwarf_get_AT_name.3 dwarf_get_CHILDREN_name.3 \ - dwarf_get_AT_name.3 dwarf_get_DS_name.3 \ - dwarf_get_AT_name.3 dwarf_get_DSC_name.3 \ - dwarf_get_AT_name.3 dwarf_get_EH_name.3 \ - dwarf_get_AT_name.3 dwarf_get_END_name.3 \ - dwarf_get_AT_name.3 dwarf_get_FORM_name.3 \ - dwarf_get_AT_name.3 dwarf_get_ID_name.3 \ - dwarf_get_AT_name.3 dwarf_get_INL_name.3 \ - dwarf_get_AT_name.3 dwarf_get_LANG_name.3 \ - dwarf_get_AT_name.3 dwarf_get_LNE_name.3 \ - dwarf_get_AT_name.3 dwarf_get_LNS_name.3 \ - dwarf_get_AT_name.3 dwarf_get_MACINFO_name.3 \ - dwarf_get_AT_name.3 dwarf_get_OP_name.3 \ - dwarf_get_AT_name.3 dwarf_get_ORD_name.3 \ - dwarf_get_AT_name.3 dwarf_get_TAG_name.3 \ - dwarf_get_AT_name.3 dwarf_get_VIRTUALITY_name.3 \ - dwarf_get_AT_name.3 dwarf_get_VIS_name.3 \ - dwarf_get_cu_die_offset.3 dwarf_get_arange_cu_header_offset.3 \ - dwarf_get_fde_list.3 dwarf_get_fde_list_eh.3 \ - dwarf_get_funcs.3 dwarf_func_die_offset.3 \ - dwarf_get_funcs.3 dwarf_func_cu_offset.3 \ - dwarf_get_funcs.3 dwarf_func_name_offsets.3 \ - dwarf_get_funcs.3 dwarf_funcname.3 \ - dwarf_get_globals.3 dwarf_global_die_offset.3 \ - dwarf_get_globals.3 dwarf_global_cu_offset.3 \ - dwarf_get_globals.3 dwarf_global_name_offsets.3 \ - dwarf_get_globals.3 dwarf_globname.3 \ - dwarf_get_pubtypes.3 dwarf_pubtype_die_offset.3 \ - dwarf_get_pubtypes.3 dwarf_pubtype_cu_offset.3 \ - dwarf_get_pubtypes.3 dwarf_pubtype_name_offsets.3 \ - dwarf_get_pubtypes.3 dwarf_pubtypename.3 \ - dwarf_get_ranges.3 dwarf_get_ranges_a.3 \ - dwarf_get_section_max_offsets.3 dwarf_get_section_max_offsets_b.3 \ - dwarf_get_types.3 dwarf_type_die_offset.3 \ - dwarf_get_types.3 dwarf_type_cu_offset.3 \ - dwarf_get_types.3 dwarf_type_name_offsets.3 \ - dwarf_get_types.3 dwarf_typename.3 \ - dwarf_get_vars.3 dwarf_var_die_offset.3 \ - dwarf_get_vars.3 dwarf_var_cu_offset.3 \ - dwarf_get_vars.3 dwarf_var_name_offsets.3 \ - dwarf_get_vars.3 dwarf_varname.3 \ - dwarf_get_weaks.3 dwarf_weak_die_offset.3 \ - dwarf_get_weaks.3 dwarf_weak_cu_offset.3 \ - dwarf_get_weaks.3 dwarf_weak_name_offsets.3 \ - dwarf_get_weaks.3 dwarf_weakname.3 \ - dwarf_hasform.3 dwarf_whatform.3 \ - dwarf_hasform.3 dwarf_whatform_direct.3 \ - dwarf_highpc.3 dwarf_arrayorder.3 \ - dwarf_highpc.3 dwarf_bitoffset.3 \ - dwarf_highpc.3 dwarf_bitsize.3 \ - dwarf_highpc.3 dwarf_bytesize.3 \ - dwarf_highpc.3 dwarf_highpc_b.3 \ - dwarf_highpc.3 dwarf_lowpc.3 \ - dwarf_highpc.3 dwarf_srclang.3 \ - dwarf_lineno.3 dwarf_lineaddr.3 \ - dwarf_lineno.3 dwarf_linebeginstatement.3 \ - dwarf_lineno.3 dwarf_lineblock.3 \ - dwarf_lineno.3 dwarf_lineendsequence.3 \ - dwarf_lineno.3 dwarf_lineoff.3 \ - dwarf_lineno.3 dwarf_linesrc.3 \ - dwarf_lineno.3 dwarf_line_srcfileno.3 \ - dwarf_loclist.3 dwarf_loclist_n.3 \ - dwarf_loclist_from_expr.3 dwarf_loclist_from_expr_a.3 \ - dwarf_loclist_from_expr.3 dwarf_loclist_from_expr_b.3 \ - dwarf_next_cu_header.3 dwarf_next_cu_header_b.3 \ - dwarf_next_cu_header.3 dwarf_next_cu_header_c.3 \ - dwarf_producer_init.3 dwarf_producer_init_b.3 \ - dwarf_seterrarg.3 dwarf_seterrhand.3 \ - dwarf_set_frame_cfa_value.3 dwarf_set_frame_rule_initial_value.3 \ - dwarf_set_frame_cfa_value.3 dwarf_set_frame_rule_table_size.3 \ - dwarf_set_frame_cfa_value.3 dwarf_set_frame_same_value.3 \ - dwarf_set_frame_cfa_value.3 dwarf_set_frame_undefined_value.3 - -dwarf_pubnames.c: dwarf_nametbl.m4 dwarf_pubnames.m4 -dwarf_pubtypes.c: dwarf_nametbl.m4 dwarf_pubtypes.m4 -dwarf_weaks.c: dwarf_nametbl.m4 dwarf_weaks.m4 -dwarf_funcs.c: dwarf_nametbl.m4 dwarf_funcs.m4 -dwarf_vars.c: dwarf_nametbl.m4 dwarf_vars.m4 -dwarf_types.c: dwarf_nametbl.m4 dwarf_types.m4 -dwarf_pro_pubnames.c: dwarf_pro_nametbl.m4 dwarf_pro_pubnames.m4 -dwarf_pro_weaks.c: dwarf_pro_nametbl.m4 dwarf_pro_weaks.m4 -dwarf_pro_funcs.c: dwarf_pro_nametbl.m4 dwarf_pro_funcs.m4 -dwarf_pro_types.c: dwarf_pro_nametbl.m4 dwarf_pro_types.m4 -dwarf_pro_vars.c: dwarf_pro_nametbl.m4 dwarf_pro_vars.m4 - -.include "${TOP}/mk/elftoolchain.lib.mk" diff --git a/contrib/elftoolchain/libdwarf/Version.map b/contrib/elftoolchain/libdwarf/Version.map deleted file mode 100644 index 7a319cc2..00000000 --- a/contrib/elftoolchain/libdwarf/Version.map +++ /dev/null @@ -1,239 +0,0 @@ -/* $Id$ */ - -R1.0 { -global: - dwarf_add_AT_comp_dir; - dwarf_add_AT_const_value_signedint; - dwarf_add_AT_const_value_string; - dwarf_add_AT_const_value_unsignedint; - dwarf_add_AT_dataref; - dwarf_add_AT_flag; - dwarf_add_AT_location_expr; - dwarf_add_AT_name; - dwarf_add_AT_producer; - dwarf_add_AT_ref_address; - dwarf_add_AT_reference; - dwarf_add_AT_signed_const; - dwarf_add_AT_string; - dwarf_add_AT_targ_address; - dwarf_add_AT_targ_address_b; - dwarf_add_AT_unsigned_const; - dwarf_add_arange; - dwarf_add_arange_b; - dwarf_add_die_to_debug; - dwarf_add_directory_decl; - dwarf_add_expr_addr; - dwarf_add_expr_addr_b; - dwarf_add_expr_gen; - dwarf_add_fde_inst; - dwarf_add_file_decl; - dwarf_add_frame_cie; - dwarf_add_frame_fde; - dwarf_add_frame_fde_b; - dwarf_add_funcname; - dwarf_add_line_entry; - dwarf_add_pubname; - dwarf_add_typename; - dwarf_add_varname; - dwarf_add_weakname; - dwarf_arrayorder; - dwarf_attr; - dwarf_attrlist; - dwarf_attroffset; - dwarf_attrval_flag; - dwarf_attrval_signed; - dwarf_attrval_string; - dwarf_attrval_unsigned; - dwarf_bitoffset; - dwarf_bitsize; - dwarf_bytesize; - dwarf_child; - dwarf_dealloc; - dwarf_def_macro; - dwarf_die_CU_offset; - dwarf_die_CU_offset_range; - dwarf_die_abbrev_code; - dwarf_die_link; - dwarf_diename; - dwarf_dieoffset; - dwarf_elf_init; - dwarf_end_macro_file; - dwarf_errmsg_; - dwarf_expand_frame_instructions; - dwarf_expr_current_offset; - dwarf_expr_into_block; - dwarf_fde_cfa_offset; - dwarf_fde_cie_list_dealloc; - dwarf_find_macro_value_start; - dwarf_finish; - dwarf_formaddr; - dwarf_formblock; - dwarf_formexprloc; - dwarf_formflag; - dwarf_formref; - dwarf_formsdata; - dwarf_formsig8; - dwarf_formstring; - dwarf_formudata; - dwarf_func_cu_offset; - dwarf_func_die_offset; - dwarf_func_name_offsets; - dwarf_funcname; - dwarf_funcs_dealloc; - dwarf_get_ACCESS_name; - dwarf_get_ATE_name; - dwarf_get_AT_name; - dwarf_get_CC_name; - dwarf_get_CFA_name; - dwarf_get_CHILDREN_name; - dwarf_get_DSC_name; - dwarf_get_DS_name; - dwarf_get_EH_name; - dwarf_get_END_name; - dwarf_get_FORM_name; - dwarf_get_ID_name; - dwarf_get_INL_name; - dwarf_get_LANG_name; - dwarf_get_LNE_name; - dwarf_get_LNS_name; - dwarf_get_MACINFO_name; - dwarf_get_OP_name; - dwarf_get_ORD_name; - dwarf_get_TAG_name; - dwarf_get_VIRTUALITY_name; - dwarf_get_VIS_name; - dwarf_get_abbrev; - dwarf_get_abbrev_children_flag; - dwarf_get_abbrev_code; - dwarf_get_abbrev_entry; - dwarf_get_abbrev_tag; - dwarf_get_address_size; - dwarf_get_arange; - dwarf_get_arange_cu_header_offset; - dwarf_get_arange_info; - dwarf_get_aranges; - dwarf_get_cie_index; - dwarf_get_cie_info; - dwarf_get_cie_of_fde; - dwarf_get_cu_die_offset; - dwarf_get_cu_die_offset_given_cu_header_offset; - dwarf_get_cu_die_offset_given_cu_header_offset_b; - dwarf_get_die_infotypes_flag; - dwarf_get_elf; - dwarf_get_fde_at_pc; - dwarf_get_fde_info_for_all_regs3; - dwarf_get_fde_info_for_all_regs; - dwarf_get_fde_info_for_cfa_reg3; - dwarf_get_fde_info_for_reg3; - dwarf_get_fde_info_for_reg; - dwarf_get_fde_instr_bytes; - dwarf_get_fde_list; - dwarf_get_fde_list_eh; - dwarf_get_fde_n; - dwarf_get_fde_range; - dwarf_get_form_class; - dwarf_get_funcs; - dwarf_get_globals; - dwarf_get_loclist_entry; - dwarf_get_macro_details; - dwarf_get_pubtypes; - dwarf_get_ranges; - dwarf_get_ranges_a; - dwarf_get_relocation_info; - dwarf_get_relocation_info_count; - dwarf_get_section_bytes; - dwarf_get_section_max_offsets; - dwarf_get_section_max_offsets_b; - dwarf_get_str; - dwarf_get_types; - dwarf_get_vars; - dwarf_get_weaks; - dwarf_global_cu_offset; - dwarf_global_die_offset; - dwarf_global_formref; - dwarf_global_name_offsets; - dwarf_globals_dealloc; - dwarf_globname; - dwarf_hasattr; - dwarf_hasform; - dwarf_highpc; - dwarf_highpc_b; - dwarf_init; - dwarf_line_srcfileno; - dwarf_lineaddr; - dwarf_linebeginstatement; - dwarf_lineblock; - dwarf_lineendsequence; - dwarf_lineno; - dwarf_lineoff; - dwarf_linesrc; - dwarf_lne_end_sequence; - dwarf_lne_set_address; - dwarf_loclist; - dwarf_loclist_from_expr; - dwarf_loclist_from_expr_a; - dwarf_loclist_from_expr_b; - dwarf_loclist_n; - dwarf_lowpc; - dwarf_new_die; - dwarf_new_expr; - dwarf_new_fde; - dwarf_next_cu_header; - dwarf_next_cu_header_b; - dwarf_next_cu_header_c; - dwarf_next_types_section; - dwarf_object_finish; - dwarf_object_init; - dwarf_offdie; - dwarf_offdie_b; - dwarf_producer_finish; - dwarf_producer_init; - dwarf_producer_init_b; - dwarf_producer_set_isa; - dwarf_pubtype_cu_offset; - dwarf_pubtype_die_offset; - dwarf_pubtype_name_offsets; - dwarf_pubtypename; - dwarf_pubtypes_dealloc; - dwarf_ranges_dealloc; - dwarf_reset_section_bytes; - dwarf_set_frame_cfa_value; - dwarf_set_frame_rule_initial_value; - dwarf_set_frame_rule_table_size; - dwarf_set_frame_same_value; - dwarf_set_frame_undefined_value; - dwarf_set_reloc_application; - dwarf_seterrarg; - dwarf_seterrhand; - dwarf_siblingof; - dwarf_siblingof_b; - dwarf_srcfiles; - dwarf_srclang; - dwarf_srclines; - dwarf_srclines_dealloc; - dwarf_start_macro_file; - dwarf_tag; - dwarf_transform_to_disk_form; - dwarf_type_cu_offset; - dwarf_type_die_offset; - dwarf_type_name_offsets; - dwarf_typename; - dwarf_types_dealloc; - dwarf_undef_macro; - dwarf_var_cu_offset; - dwarf_var_die_offset; - dwarf_var_name_offsets; - dwarf_varname; - dwarf_vars_dealloc; - dwarf_vendor_ext; - dwarf_weak_cu_offset; - dwarf_weak_die_offset; - dwarf_weak_name_offsets; - dwarf_weakname; - dwarf_weaks_dealloc; - dwarf_whatattr; - dwarf_whatform; - dwarf_whatform_direct; -local: - *; -}; diff --git a/contrib/elftoolchain/libdwarf/_libdwarf.h b/contrib/elftoolchain/libdwarf/_libdwarf.h deleted file mode 100644 index 3f7986c5..00000000 --- a/contrib/elftoolchain/libdwarf/_libdwarf.h +++ /dev/null @@ -1,666 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef __LIBDWARF_H_ -#define __LIBDWARF_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "dwarf.h" -#include "libdwarf.h" -#include "uthash.h" - -#include "_elftc.h" - -#define DWARF_DIE_HASH_SIZE 8191 - -struct _libdwarf_globals { - Dwarf_Handler errhand; - Dwarf_Ptr errarg; - int applyreloc; -}; - -extern struct _libdwarf_globals _libdwarf; - -#define _DWARF_SET_ERROR(_d, _e, _err, _elf_err) \ - _dwarf_set_error(_d, _e, _err, _elf_err, __func__, __LINE__) -#define DWARF_SET_ERROR(_d, _e, _err) \ - _DWARF_SET_ERROR(_d, _e, _err, 0) -#define DWARF_SET_ELF_ERROR(_d, _e) \ - _DWARF_SET_ERROR(_d, _e, DW_DLE_ELF, elf_errno()) - -/* - * Convenient macros for producer bytes stream generation. - */ -#define WRITE_VALUE(value, bytes) \ - dbg->write_alloc(&ds->ds_data, &ds->ds_cap, &ds->ds_size, \ - (value), (bytes), error) -#define WRITE_ULEB128(value) \ - _dwarf_write_uleb128_alloc(&ds->ds_data, &ds->ds_cap, \ - &ds->ds_size, (value), error) -#define WRITE_SLEB128(value) \ - _dwarf_write_sleb128_alloc(&ds->ds_data, &ds->ds_cap, \ - &ds->ds_size, (value), error) -#define WRITE_STRING(string) \ - _dwarf_write_string_alloc(&ds->ds_data, &ds->ds_cap, \ - &ds->ds_size, (string), error) -#define WRITE_BLOCK(blk, size) \ - _dwarf_write_block_alloc(&ds->ds_data, &ds->ds_cap, \ - &ds->ds_size, (blk), (size), error) -#define WRITE_PADDING(byte, cnt) \ - _dwarf_write_padding_alloc(&ds->ds_data, &ds->ds_cap, \ - &ds->ds_size, (byte), (cnt), error) -#define RCHECK(expr) \ - do { \ - ret = expr; \ - if (ret != DW_DLE_NONE) \ - goto gen_fail; \ - } while(0) - -typedef struct _Dwarf_CU *Dwarf_CU; - -struct _Dwarf_AttrDef { - Dwarf_Half ad_attrib; /* DW_AT_XXX */ - Dwarf_Half ad_form; /* DW_FORM_XXX */ - uint64_t ad_offset; /* Offset in abbrev section. */ - STAILQ_ENTRY(_Dwarf_AttrDef) ad_next; /* Next attribute define. */ -}; - -struct _Dwarf_Attribute { - Dwarf_Die at_die; /* Ptr to containing DIE. */ - Dwarf_Die at_refdie; /* Ptr to reference DIE. */ - uint64_t at_offset; /* Offset in info section. */ - Dwarf_Half at_attrib; /* DW_AT_XXX */ - Dwarf_Half at_form; /* DW_FORM_XXX */ - int at_indirect; /* Has indirect form. */ - union { - uint64_t u64; /* Unsigned value. */ - int64_t s64; /* Signed value. */ - char *s; /* String. */ - uint8_t *u8p; /* Block data. */ - } u[2]; /* Value. */ - Dwarf_Block at_block; /* Block. */ - Dwarf_Locdesc *at_ld; /* at value is locdesc. */ - Dwarf_P_Expr at_expr; /* at value is expr. */ - uint64_t at_relsym; /* Relocation symbol index. */ - const char *at_relsec; /* Rel. to dwarf section. */ - STAILQ_ENTRY(_Dwarf_Attribute) at_next; /* Next attribute. */ -}; - -struct _Dwarf_Abbrev { - uint64_t ab_entry; /* Abbrev entry. */ - uint64_t ab_tag; /* Tag: DW_TAG_ */ - uint8_t ab_children; /* DW_CHILDREN_no or DW_CHILDREN_yes */ - uint64_t ab_offset; /* Offset in abbrev section. */ - uint64_t ab_length; /* Length of this abbrev entry. */ - uint64_t ab_atnum; /* Number of attribute defines. */ - UT_hash_handle ab_hh; /* Uthash handle. */ - STAILQ_HEAD(, _Dwarf_AttrDef) ab_attrdef; /* List of attribute defs. */ -}; - -struct _Dwarf_Die { - Dwarf_Die die_parent; /* Parent DIE. */ - Dwarf_Die die_child; /* First child DIE. */ - Dwarf_Die die_left; /* Left sibling DIE. */ - Dwarf_Die die_right; /* Right sibling DIE. */ - uint64_t die_offset; /* DIE offset in section. */ - uint64_t die_next_off; /* Next DIE offset in section. */ - uint64_t die_abnum; /* Abbrev number. */ - Dwarf_Abbrev die_ab; /* Abbrev pointer. */ - Dwarf_Tag die_tag; /* DW_TAG_ */ - Dwarf_Debug die_dbg; /* Dwarf_Debug pointer. */ - Dwarf_CU die_cu; /* Compilation unit pointer. */ - char *die_name; /* Ptr to the name string. */ - Dwarf_Attribute *die_attrarray; /* Array of attributes. */ - STAILQ_HEAD(, _Dwarf_Attribute) die_attr; /* List of attributes. */ - STAILQ_ENTRY(_Dwarf_Die) die_pro_next; /* Next die in pro-die list. */ -}; - -struct _Dwarf_P_Expr_Entry { - Dwarf_Loc ee_loc; /* Location expression. */ - Dwarf_Unsigned ee_sym; /* Optional related reloc sym index. */ - STAILQ_ENTRY(_Dwarf_P_Expr_Entry) ee_next; /* Next entry in list. */ -}; - -struct _Dwarf_P_Expr { - Dwarf_Debug pe_dbg; /* Dwarf_Debug pointer. */ - uint8_t *pe_block; /* Expression block data. */ - int pe_invalid; /* Block data is up-to-date or not. */ - Dwarf_Unsigned pe_length; /* Length of the block. */ - STAILQ_HEAD(, _Dwarf_P_Expr_Entry) pe_eelist; /* List of entries. */ - STAILQ_ENTRY(_Dwarf_P_Expr) pe_next; /* Next expr in list. */ -}; - -struct _Dwarf_Line { - Dwarf_LineInfo ln_li; /* Ptr to line info. */ - Dwarf_Addr ln_addr; /* Line address. */ - Dwarf_Unsigned ln_symndx; /* Symbol index for relocation. */ - Dwarf_Unsigned ln_fileno; /* File number. */ - Dwarf_Unsigned ln_lineno; /* Line number. */ - Dwarf_Signed ln_column; /* Column number. */ - Dwarf_Bool ln_bblock; /* Basic block flag. */ - Dwarf_Bool ln_stmt; /* Begin statement flag. */ - Dwarf_Bool ln_endseq; /* End sequence flag. */ - STAILQ_ENTRY(_Dwarf_Line) ln_next; /* Next line in list. */ -}; - -struct _Dwarf_LineFile { - char *lf_fname; /* Filename. */ - char *lf_fullpath; /* Full pathname of the file. */ - Dwarf_Unsigned lf_dirndx; /* Dir index. */ - Dwarf_Unsigned lf_mtime; /* Modification time. */ - Dwarf_Unsigned lf_size; /* File size. */ - STAILQ_ENTRY(_Dwarf_LineFile) lf_next; /* Next file in list. */ -}; - -struct _Dwarf_LineInfo { - Dwarf_Unsigned li_length; /* Length of line info data. */ - Dwarf_Half li_version; /* Version of line info. */ - Dwarf_Unsigned li_hdrlen; /* Length of line info header. */ - Dwarf_Small li_minlen; /* Minimum instrutction length. */ - Dwarf_Small li_maxop; /* Maximum operations per inst. */ - Dwarf_Small li_defstmt; /* Default value of is_stmt. */ - int8_t li_lbase; /* Line base for special opcode. */ - Dwarf_Small li_lrange; /* Line range for special opcode. */ - Dwarf_Small li_opbase; /* Fisrt std opcode number. */ - Dwarf_Small *li_oplen; /* Array of std opcode len. */ - char **li_incdirs; /* Array of include dirs. */ - Dwarf_Unsigned li_inclen; /* Length of inc dir array. */ - char **li_lfnarray; /* Array of file names. */ - Dwarf_Unsigned li_lflen; /* Length of filename array. */ - STAILQ_HEAD(, _Dwarf_LineFile) li_lflist; /* List of files. */ - Dwarf_Line *li_lnarray; /* Array of lines. */ - Dwarf_Unsigned li_lnlen; /* Length of the line array. */ - STAILQ_HEAD(, _Dwarf_Line) li_lnlist; /* List of lines. */ -}; - -struct _Dwarf_NamePair { - Dwarf_NameTbl np_nt; /* Ptr to containing name table. */ - Dwarf_Die np_die; /* Ptr to Ref. Die. */ - Dwarf_Unsigned np_offset; /* Offset in CU. */ - char *np_name; /* Object/Type name. */ - STAILQ_ENTRY(_Dwarf_NamePair) np_next; /* Next pair in the list. */ -}; - -struct _Dwarf_NameTbl { - Dwarf_Unsigned nt_length; /* Name lookup table length. */ - Dwarf_Half nt_version; /* Name lookup table version. */ - Dwarf_CU nt_cu; /* Ptr to Ref. CU. */ - Dwarf_Off nt_cu_offset; /* Ref. CU offset in .debug_info */ - Dwarf_Unsigned nt_cu_length; /* Ref. CU length. */ - STAILQ_HEAD(, _Dwarf_NamePair) nt_nplist; /* List of offset+name pairs. */ - STAILQ_ENTRY(_Dwarf_NameTbl) nt_next; /* Next name table in the list. */ -}; - -struct _Dwarf_NameSec { - STAILQ_HEAD(, _Dwarf_NameTbl) ns_ntlist; /* List of name tables. */ - Dwarf_NamePair *ns_array; /* Array of pairs of all tables. */ - Dwarf_Unsigned ns_len; /* Length of the pair array. */ -}; - -struct _Dwarf_Fde { - Dwarf_Debug fde_dbg; /* Ptr to containing dbg. */ - Dwarf_Cie fde_cie; /* Ptr to associated CIE. */ - Dwarf_FrameSec fde_fs; /* Ptr to containing .debug_frame. */ - Dwarf_Ptr fde_addr; /* Ptr to start of the FDE. */ - Dwarf_Unsigned fde_offset; /* Offset of the FDE. */ - Dwarf_Unsigned fde_length; /* Length of the FDE. */ - Dwarf_Unsigned fde_cieoff; /* Offset of associated CIE. */ - Dwarf_Unsigned fde_initloc; /* Initial location. */ - Dwarf_Unsigned fde_adrange; /* Address range. */ - Dwarf_Unsigned fde_auglen; /* Augmentation length. */ - uint8_t *fde_augdata; /* Augmentation data. */ - uint8_t *fde_inst; /* Instructions. */ - Dwarf_Unsigned fde_instlen; /* Length of instructions. */ - Dwarf_Unsigned fde_instcap; /* Capacity of inst buffer. */ - Dwarf_Unsigned fde_symndx; /* Symbol index for relocation. */ - Dwarf_Unsigned fde_esymndx; /* End symbol index for relocation. */ - Dwarf_Addr fde_eoff; /* Offset from the end symbol. */ - STAILQ_ENTRY(_Dwarf_Fde) fde_next; /* Next FDE in list. */ -}; - -struct _Dwarf_Cie { - Dwarf_Debug cie_dbg; /* Ptr to containing dbg. */ - Dwarf_Unsigned cie_index; /* Index of the CIE. */ - Dwarf_Unsigned cie_offset; /* Offset of the CIE. */ - Dwarf_Unsigned cie_length; /* Length of the CIE. */ - Dwarf_Half cie_version; /* CIE version. */ - uint8_t *cie_augment; /* CIE augmentation (UTF-8). */ - Dwarf_Unsigned cie_ehdata; /* Optional EH Data. */ - uint8_t cie_addrsize; /* Address size. (DWARF4) */ - uint8_t cie_segmentsize; /* Segment size. (DWARF4) */ - Dwarf_Unsigned cie_caf; /* Code alignment factor. */ - Dwarf_Signed cie_daf; /* Data alignment factor. */ - Dwarf_Unsigned cie_ra; /* Return address register. */ - Dwarf_Unsigned cie_auglen; /* Augmentation length. */ - uint8_t *cie_augdata; /* Augmentation data; */ - uint8_t cie_fde_encode; /* FDE PC start/range encode. */ - Dwarf_Ptr cie_initinst; /* Initial instructions. */ - Dwarf_Unsigned cie_instlen; /* Length of init instructions. */ - STAILQ_ENTRY(_Dwarf_Cie) cie_next; /* Next CIE in list. */ -}; - -struct _Dwarf_FrameSec { - STAILQ_HEAD(, _Dwarf_Cie) fs_cielist; /* List of CIE. */ - STAILQ_HEAD(, _Dwarf_Fde) fs_fdelist; /* List of FDE. */ - Dwarf_Cie *fs_ciearray; /* Array of CIE. */ - Dwarf_Unsigned fs_cielen; /* Length of CIE array. */ - Dwarf_Fde *fs_fdearray; /* Array of FDE.*/ - Dwarf_Unsigned fs_fdelen; /* Length of FDE array. */ -}; - -struct _Dwarf_Arange { - Dwarf_ArangeSet ar_as; /* Ptr to the set it belongs to. */ - Dwarf_Unsigned ar_address; /* Start PC. */ - Dwarf_Unsigned ar_range; /* PC range. */ - Dwarf_Unsigned ar_symndx; /* First symbol index for reloc. */ - Dwarf_Unsigned ar_esymndx; /* Second symbol index for reloc. */ - Dwarf_Addr ar_eoff; /* Offset from second symbol. */ - STAILQ_ENTRY(_Dwarf_Arange) ar_next; /* Next arange in list. */ -}; - -struct _Dwarf_ArangeSet { - Dwarf_Unsigned as_length; /* Length of the arange set. */ - Dwarf_Half as_version; /* Version of the arange set. */ - Dwarf_Off as_cu_offset; /* Offset of associated CU. */ - Dwarf_CU as_cu; /* Ptr to associated CU. */ - Dwarf_Small as_addrsz; /* Target address size. */ - Dwarf_Small as_segsz; /* Target segment size. */ - STAILQ_HEAD (, _Dwarf_Arange) as_arlist; /* List of ae entries. */ - STAILQ_ENTRY(_Dwarf_ArangeSet) as_next; /* Next set in list. */ -}; - -struct _Dwarf_MacroSet { - Dwarf_Macro_Details *ms_mdlist; /* Array of macinfo entries. */ - Dwarf_Unsigned ms_cnt; /* Length of the array. */ - STAILQ_ENTRY(_Dwarf_MacroSet) ms_next; /* Next set in list. */ -}; - -struct _Dwarf_Rangelist { - Dwarf_CU rl_cu; /* Ptr to associated CU. */ - Dwarf_Unsigned rl_offset; /* Offset of the rangelist. */ - Dwarf_Ranges *rl_rgarray; /* Array of ranges. */ - Dwarf_Unsigned rl_rglen; /* Length of the ranges array. */ - STAILQ_ENTRY(_Dwarf_Rangelist) rl_next; /* Next rangelist in list. */ -}; - -struct _Dwarf_CU { - Dwarf_Debug cu_dbg; /* Ptr to containing dbg. */ - Dwarf_Off cu_offset; /* Offset to the this CU. */ - uint32_t cu_length; /* Length of CU data. */ - uint16_t cu_length_size; /* Size in bytes of the length field. */ - uint16_t cu_version; /* DWARF version. */ - uint64_t cu_abbrev_offset; /* Offset into .debug_abbrev. */ - uint64_t cu_abbrev_offset_cur; /* Current abbrev offset. */ - int cu_abbrev_loaded; /* Abbrev table parsed. */ - uint64_t cu_abbrev_cnt; /* Abbrev entry count. */ - uint64_t cu_lineno_offset; /* Offset into .debug_lineno. */ - uint8_t cu_pointer_size;/* Number of bytes in pointer. */ - uint8_t cu_dwarf_size; /* CU section dwarf size. */ - Dwarf_Sig8 cu_type_sig; /* Type unit's signature. */ - uint64_t cu_type_offset; /* Type unit's type offset. */ - Dwarf_Off cu_next_offset; /* Offset to the next CU. */ - uint64_t cu_1st_offset; /* First DIE offset. */ - int cu_pass2; /* Two pass DIE traverse. */ - Dwarf_LineInfo cu_lineinfo; /* Ptr to Dwarf_LineInfo. */ - Dwarf_Abbrev cu_abbrev_hash; /* Abbrev hash table. */ - Dwarf_Bool cu_is_info; /* Compilation/type unit flag. */ - STAILQ_ENTRY(_Dwarf_CU) cu_next; /* Next compilation unit. */ -}; - -typedef struct _Dwarf_Section { - const char *ds_name; /* Section name. */ - Dwarf_Small *ds_data; /* Section data. */ - Dwarf_Unsigned ds_addr; /* Section virtual addr. */ - Dwarf_Unsigned ds_size; /* Section size. */ -} Dwarf_Section; - -typedef struct _Dwarf_P_Section { - char *ds_name; /* Section name. */ - Dwarf_Small *ds_data; /* Section data. */ - Dwarf_Unsigned ds_size; /* Section size. */ - Dwarf_Unsigned ds_cap; /* Section capacity. */ - Dwarf_Unsigned ds_ndx; /* ELF section index. */ - Dwarf_Unsigned ds_symndx; /* Section symbol index. (for reloc) */ - STAILQ_ENTRY(_Dwarf_P_Section) ds_next; /* Next section in the list. */ -} *Dwarf_P_Section; - -typedef struct _Dwarf_Rel_Entry { - unsigned char dre_type; /* Reloc type. */ - unsigned char dre_length; /* Reloc storage unit length. */ - Dwarf_Unsigned dre_offset; /* Reloc storage unit offset. */ - Dwarf_Unsigned dre_addend; /* Reloc addend. */ - Dwarf_Unsigned dre_symndx; /* Reloc symbol index. */ - const char *dre_secname; /* Refer to some debug section. */ - STAILQ_ENTRY(_Dwarf_Rel_Entry) dre_next; /* Next reloc entry. */ -} *Dwarf_Rel_Entry; - -typedef struct _Dwarf_Rel_Section { - struct _Dwarf_P_Section *drs_ds; /* Ptr to actual reloc ELF section. */ - struct _Dwarf_P_Section *drs_ref; /* Which debug section it refers. */ - struct Dwarf_Relocation_Data_s *drs_drd; /* Reloc data array. */ - STAILQ_HEAD(, _Dwarf_Rel_Entry) drs_dre; /* Reloc entry list. */ - Dwarf_Unsigned drs_drecnt; /* Count of entries. */ - Dwarf_Unsigned drs_size; /* Size of ELF section in bytes. */ - int drs_addend; /* Elf_Rel or Elf_Rela */ - STAILQ_ENTRY(_Dwarf_Rel_Section) drs_next; /* Next reloc section. */ -} *Dwarf_Rel_Section; - -typedef struct { - Elf_Data *ed_data; - void *ed_alloc; -} Dwarf_Elf_Data; - -typedef struct { - Elf *eo_elf; - GElf_Ehdr eo_ehdr; - GElf_Shdr *eo_shdr; - Dwarf_Elf_Data *eo_data; - Dwarf_Unsigned eo_seccnt; - size_t eo_strndx; - Dwarf_Obj_Access_Methods eo_methods; -} Dwarf_Elf_Object; - -struct _Dwarf_Debug { - Dwarf_Obj_Access_Interface *dbg_iface; - Dwarf_Section *dbg_section; /* Dwarf section list. */ - Dwarf_Section *dbg_info_sec; /* Pointer to info section. */ - Dwarf_Off dbg_info_off; /* Current info section offset. */ - Dwarf_Section *dbg_types_sec; /* Pointer to type section. */ - Dwarf_Off dbg_types_off; /* Current types section offset. */ - Dwarf_Unsigned dbg_seccnt; /* Total number of dwarf sections. */ - int dbg_mode; /* Access mode. */ - int dbg_pointer_size; /* Object address size. */ - int dbg_offset_size; /* DWARF offset size. */ - int dbg_info_loaded; /* Flag indicating all CU loaded. */ - int dbg_types_loaded; /* Flag indicating all TU loaded. */ - Dwarf_Half dbg_machine; /* ELF machine architecture. */ - Dwarf_Handler dbg_errhand; /* Error handler. */ - Dwarf_Ptr dbg_errarg; /* Argument to the error handler. */ - STAILQ_HEAD(, _Dwarf_CU) dbg_cu;/* List of compilation units. */ - STAILQ_HEAD(, _Dwarf_CU) dbg_tu;/* List of type units. */ - Dwarf_CU dbg_cu_current; /* Ptr to the current CU. */ - Dwarf_CU dbg_tu_current; /* Ptr to the current TU. */ - Dwarf_NameSec dbg_globals; /* Ptr to pubnames lookup section. */ - Dwarf_NameSec dbg_pubtypes; /* Ptr to pubtypes lookup section. */ - Dwarf_NameSec dbg_weaks; /* Ptr to weaknames lookup section. */ - Dwarf_NameSec dbg_funcs; /* Ptr to static funcs lookup sect. */ - Dwarf_NameSec dbg_vars; /* Ptr to static vars lookup sect. */ - Dwarf_NameSec dbg_types; /* Ptr to types lookup section. */ - Dwarf_FrameSec dbg_frame; /* Ptr to .debug_frame section. */ - Dwarf_FrameSec dbg_eh_frame; /* Ptr to .eh_frame section. */ - STAILQ_HEAD(, _Dwarf_ArangeSet) dbg_aslist; /* List of arange set. */ - Dwarf_Arange *dbg_arange_array; /* Array of arange. */ - Dwarf_Unsigned dbg_arange_cnt; /* Length of the arange array. */ - char *dbg_strtab; /* Dwarf string table. */ - Dwarf_Unsigned dbg_strtab_cap; /* Dwarf string table capacity. */ - Dwarf_Unsigned dbg_strtab_size; /* Dwarf string table size. */ - STAILQ_HEAD(, _Dwarf_MacroSet) dbg_mslist; /* List of macro set. */ - STAILQ_HEAD(, _Dwarf_Rangelist) dbg_rllist; /* List of rangelist. */ - uint64_t (*read)(uint8_t *, uint64_t *, int); - void (*write)(uint8_t *, uint64_t *, uint64_t, int); - int (*write_alloc)(uint8_t **, uint64_t *, uint64_t *, - uint64_t, int, Dwarf_Error *); - uint64_t (*decode)(uint8_t **, int); - - Dwarf_Half dbg_frame_rule_table_size; - Dwarf_Half dbg_frame_rule_initial_value; - Dwarf_Half dbg_frame_cfa_value; - Dwarf_Half dbg_frame_same_value; - Dwarf_Half dbg_frame_undefined_value; - - Dwarf_Regtable3 *dbg_internal_reg_table; - - /* - * Fields used by libdwarf producer. - */ - - Dwarf_Unsigned dbgp_flags; - Dwarf_Unsigned dbgp_isa; - Dwarf_Callback_Func dbgp_func; - Dwarf_Callback_Func_b dbgp_func_b; - Dwarf_Die dbgp_root_die; - STAILQ_HEAD(, _Dwarf_Die) dbgp_dielist; - STAILQ_HEAD(, _Dwarf_P_Expr) dbgp_pelist; - Dwarf_LineInfo dbgp_lineinfo; - Dwarf_ArangeSet dbgp_as; - Dwarf_Macro_Details *dbgp_mdlist; - Dwarf_Unsigned dbgp_mdcnt; - STAILQ_HEAD(, _Dwarf_Cie) dbgp_cielist; - STAILQ_HEAD(, _Dwarf_Fde) dbgp_fdelist; - Dwarf_Unsigned dbgp_cielen; - Dwarf_Unsigned dbgp_fdelen; - Dwarf_NameTbl dbgp_pubs; - Dwarf_NameTbl dbgp_weaks; - Dwarf_NameTbl dbgp_funcs; - Dwarf_NameTbl dbgp_types; - Dwarf_NameTbl dbgp_vars; - STAILQ_HEAD(, _Dwarf_P_Section) dbgp_seclist; - Dwarf_Unsigned dbgp_seccnt; - Dwarf_P_Section dbgp_secpos; - Dwarf_P_Section dbgp_info; - STAILQ_HEAD(, _Dwarf_Rel_Section) dbgp_drslist; - Dwarf_Unsigned dbgp_drscnt; - Dwarf_Rel_Section dbgp_drspos; -}; - -/* - * Internal function prototypes. - */ - -int _dwarf_abbrev_add(Dwarf_CU, uint64_t, uint64_t, uint8_t, - uint64_t, Dwarf_Abbrev *, Dwarf_Error *); -void _dwarf_abbrev_cleanup(Dwarf_CU); -int _dwarf_abbrev_find(Dwarf_CU, uint64_t, Dwarf_Abbrev *, - Dwarf_Error *); -int _dwarf_abbrev_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_abbrev_parse(Dwarf_Debug, Dwarf_CU, Dwarf_Unsigned *, - Dwarf_Abbrev *, Dwarf_Error *); -int _dwarf_add_AT_dataref(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, - Dwarf_Unsigned, Dwarf_Unsigned, const char *, - Dwarf_P_Attribute *, Dwarf_Error *); -int _dwarf_add_string_attr(Dwarf_P_Die, Dwarf_P_Attribute *, - Dwarf_Half, char *, Dwarf_Error *); -int _dwarf_alloc(Dwarf_Debug *, int, Dwarf_Error *); -void _dwarf_arange_cleanup(Dwarf_Debug); -int _dwarf_arange_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_arange_init(Dwarf_Debug, Dwarf_Error *); -void _dwarf_arange_pro_cleanup(Dwarf_P_Debug); -int _dwarf_attr_alloc(Dwarf_Die, Dwarf_Attribute *, Dwarf_Error *); -Dwarf_Attribute _dwarf_attr_find(Dwarf_Die, Dwarf_Half); -int _dwarf_attr_gen(Dwarf_P_Debug, Dwarf_P_Section, Dwarf_Rel_Section, - Dwarf_CU, Dwarf_Die, int, Dwarf_Error *); -int _dwarf_attr_init(Dwarf_Debug, Dwarf_Section *, uint64_t *, int, - Dwarf_CU, Dwarf_Die, Dwarf_AttrDef, uint64_t, int, - Dwarf_Error *); -int _dwarf_attrdef_add(Dwarf_Debug, Dwarf_Abbrev, uint64_t, - uint64_t, uint64_t, Dwarf_AttrDef *, Dwarf_Error *); -uint64_t _dwarf_decode_lsb(uint8_t **, int); -uint64_t _dwarf_decode_msb(uint8_t **, int); -int64_t _dwarf_decode_sleb128(uint8_t **); -uint64_t _dwarf_decode_uleb128(uint8_t **); -void _dwarf_deinit(Dwarf_Debug); -int _dwarf_die_alloc(Dwarf_Debug, Dwarf_Die *, Dwarf_Error *); -int _dwarf_die_count_links(Dwarf_P_Die, Dwarf_P_Die, - Dwarf_P_Die, Dwarf_P_Die); -Dwarf_Die _dwarf_die_find(Dwarf_Die, Dwarf_Unsigned); -int _dwarf_die_gen(Dwarf_P_Debug, Dwarf_CU, Dwarf_Rel_Section, - Dwarf_Error *); -void _dwarf_die_link(Dwarf_P_Die, Dwarf_P_Die, Dwarf_P_Die, - Dwarf_P_Die, Dwarf_P_Die); -int _dwarf_die_parse(Dwarf_Debug, Dwarf_Section *, Dwarf_CU, int, - uint64_t, uint64_t, Dwarf_Die *, int, Dwarf_Error *); -void _dwarf_die_pro_cleanup(Dwarf_P_Debug); -void _dwarf_elf_deinit(Dwarf_Debug); -int _dwarf_elf_init(Dwarf_Debug, Elf *, Dwarf_Error *); -int _dwarf_elf_load_section(void *, Dwarf_Half, Dwarf_Small **, - int *); -Dwarf_Endianness _dwarf_elf_get_byte_order(void *); -Dwarf_Small _dwarf_elf_get_length_size(void *); -Dwarf_Small _dwarf_elf_get_pointer_size(void *); -Dwarf_Unsigned _dwarf_elf_get_section_count(void *); -int _dwarf_elf_get_section_info(void *, Dwarf_Half, - Dwarf_Obj_Access_Section *, int *); -void _dwarf_expr_cleanup(Dwarf_P_Debug); -int _dwarf_expr_into_block(Dwarf_P_Expr, Dwarf_Error *); -Dwarf_Section *_dwarf_find_next_types_section(Dwarf_Debug, Dwarf_Section *); -Dwarf_Section *_dwarf_find_section(Dwarf_Debug, const char *); -void _dwarf_frame_cleanup(Dwarf_Debug); -int _dwarf_frame_fde_add_inst(Dwarf_P_Fde, Dwarf_Small, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); -int _dwarf_frame_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_frame_get_fop(Dwarf_Debug, uint8_t, uint8_t *, - Dwarf_Unsigned, Dwarf_Frame_Op **, Dwarf_Signed *, - Dwarf_Error *); -int _dwarf_frame_get_internal_table(Dwarf_Fde, Dwarf_Addr, - Dwarf_Regtable3 **, Dwarf_Addr *, Dwarf_Error *); -int _dwarf_frame_interal_table_init(Dwarf_Debug, Dwarf_Error *); -void _dwarf_frame_params_init(Dwarf_Debug); -void _dwarf_frame_pro_cleanup(Dwarf_P_Debug); -int _dwarf_frame_regtable_copy(Dwarf_Debug, Dwarf_Regtable3 **, - Dwarf_Regtable3 *, Dwarf_Error *); -int _dwarf_frame_section_load(Dwarf_Debug, Dwarf_Error *); -int _dwarf_frame_section_load_eh(Dwarf_Debug, Dwarf_Error *); -int _dwarf_generate_sections(Dwarf_P_Debug, Dwarf_Error *); -Dwarf_Unsigned _dwarf_get_reloc_type(Dwarf_P_Debug, int); -int _dwarf_get_reloc_size(Dwarf_Debug, Dwarf_Unsigned); -void _dwarf_info_cleanup(Dwarf_Debug); -int _dwarf_info_first_cu(Dwarf_Debug, Dwarf_Error *); -int _dwarf_info_first_tu(Dwarf_Debug, Dwarf_Error *); -int _dwarf_info_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_info_load(Dwarf_Debug, Dwarf_Bool, Dwarf_Bool, - Dwarf_Error *); -int _dwarf_info_next_cu(Dwarf_Debug, Dwarf_Error *); -int _dwarf_info_next_tu(Dwarf_Debug, Dwarf_Error *); -void _dwarf_info_pro_cleanup(Dwarf_P_Debug); -int _dwarf_init(Dwarf_Debug, Dwarf_Unsigned, Dwarf_Handler, - Dwarf_Ptr, Dwarf_Error *); -int _dwarf_lineno_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_lineno_init(Dwarf_Die, uint64_t, Dwarf_Error *); -void _dwarf_lineno_cleanup(Dwarf_LineInfo); -void _dwarf_lineno_pro_cleanup(Dwarf_P_Debug); -int _dwarf_loc_fill_locdesc(Dwarf_Debug, Dwarf_Locdesc *, - uint8_t *, uint64_t, uint8_t, uint8_t, uint8_t, - Dwarf_Error *); -int _dwarf_loc_fill_locexpr(Dwarf_Debug, Dwarf_Locdesc **, - uint8_t *, uint64_t, uint8_t, uint8_t, uint8_t, - Dwarf_Error *); -int _dwarf_loc_add(Dwarf_Die, Dwarf_Attribute, Dwarf_Error *); -int _dwarf_loc_expr_add_atom(Dwarf_Debug, uint8_t *, uint8_t *, - Dwarf_Small, Dwarf_Unsigned, Dwarf_Unsigned, int *, - Dwarf_Error *); -int _dwarf_loclist_find(Dwarf_Debug, Dwarf_CU, uint64_t, - Dwarf_Locdesc ***, Dwarf_Signed *, Dwarf_Unsigned *, - Dwarf_Error *); -void _dwarf_macinfo_cleanup(Dwarf_Debug); -int _dwarf_macinfo_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_macinfo_init(Dwarf_Debug, Dwarf_Error *); -void _dwarf_macinfo_pro_cleanup(Dwarf_P_Debug); -int _dwarf_nametbl_init(Dwarf_Debug, Dwarf_NameSec *, - Dwarf_Section *, Dwarf_Error *); -void _dwarf_nametbl_cleanup(Dwarf_NameSec *); -int _dwarf_nametbl_gen(Dwarf_P_Debug, const char *, Dwarf_NameTbl, - Dwarf_Error *); -void _dwarf_nametbl_pro_cleanup(Dwarf_NameTbl *); -int _dwarf_pro_callback(Dwarf_P_Debug, char *, int, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Unsigned, - Dwarf_Unsigned *, int *); -Dwarf_P_Section _dwarf_pro_find_section(Dwarf_P_Debug, const char *); -int _dwarf_ranges_add(Dwarf_Debug, Dwarf_CU, uint64_t, - Dwarf_Rangelist *, Dwarf_Error *); -void _dwarf_ranges_cleanup(Dwarf_Debug); -int _dwarf_ranges_find(Dwarf_Debug, uint64_t, Dwarf_Rangelist *); -uint64_t _dwarf_read_lsb(uint8_t *, uint64_t *, int); -uint64_t _dwarf_read_msb(uint8_t *, uint64_t *, int); -int64_t _dwarf_read_sleb128(uint8_t *, uint64_t *); -uint64_t _dwarf_read_uleb128(uint8_t *, uint64_t *); -char *_dwarf_read_string(void *, Dwarf_Unsigned, uint64_t *); -uint8_t *_dwarf_read_block(void *, uint64_t *, uint64_t); -int _dwarf_reloc_section_finalize(Dwarf_P_Debug, Dwarf_Rel_Section, - Dwarf_Error *); -int _dwarf_reloc_entry_add(Dwarf_P_Debug, Dwarf_Rel_Section, - Dwarf_P_Section, unsigned char, unsigned char, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Unsigned, - const char *, Dwarf_Error *); -int _dwarf_reloc_entry_add_pair(Dwarf_P_Debug, Dwarf_Rel_Section, - Dwarf_P_Section, unsigned char, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Error *); -void _dwarf_reloc_cleanup(Dwarf_P_Debug); -int _dwarf_reloc_gen(Dwarf_P_Debug, Dwarf_Error *); -int _dwarf_reloc_section_gen(Dwarf_P_Debug, Dwarf_Rel_Section, - Dwarf_Error *); -int _dwarf_reloc_section_init(Dwarf_P_Debug, Dwarf_Rel_Section *, - Dwarf_P_Section, Dwarf_Error *); -void _dwarf_reloc_section_free(Dwarf_P_Debug, Dwarf_Rel_Section *); -void _dwarf_section_cleanup(Dwarf_P_Debug); -int _dwarf_section_callback(Dwarf_P_Debug, Dwarf_P_Section, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Error *); -void _dwarf_section_free(Dwarf_P_Debug, Dwarf_P_Section *); -int _dwarf_section_init(Dwarf_P_Debug, Dwarf_P_Section *, - const char *, int, Dwarf_Error *); -void _dwarf_set_error(Dwarf_Debug, Dwarf_Error *, int, int, - const char *, int); -int _dwarf_strtab_add(Dwarf_Debug, char *, uint64_t *, - Dwarf_Error *); -void _dwarf_strtab_cleanup(Dwarf_Debug); -int _dwarf_strtab_gen(Dwarf_P_Debug, Dwarf_Error *); -char *_dwarf_strtab_get_table(Dwarf_Debug); -int _dwarf_strtab_init(Dwarf_Debug, Dwarf_Error *); -void _dwarf_type_unit_cleanup(Dwarf_Debug); -void _dwarf_write_block(void *, uint64_t *, uint8_t *, uint64_t); -int _dwarf_write_block_alloc(uint8_t **, uint64_t *, uint64_t *, - uint8_t *, uint64_t, Dwarf_Error *); -void _dwarf_write_lsb(uint8_t *, uint64_t *, uint64_t, int); -int _dwarf_write_lsb_alloc(uint8_t **, uint64_t *, uint64_t *, - uint64_t, int, Dwarf_Error *); -void _dwarf_write_msb(uint8_t *, uint64_t *, uint64_t, int); -int _dwarf_write_msb_alloc(uint8_t **, uint64_t *, uint64_t *, - uint64_t, int, Dwarf_Error *); -void _dwarf_write_padding(void *, uint64_t *, uint8_t, uint64_t); -int _dwarf_write_padding_alloc(uint8_t **, uint64_t *, uint64_t *, - uint8_t, uint64_t, Dwarf_Error *); -void _dwarf_write_string(void *, uint64_t *, char *); -int _dwarf_write_string_alloc(uint8_t **, uint64_t *, uint64_t *, - char *, Dwarf_Error *); -int _dwarf_write_sleb128(uint8_t *, uint8_t *, int64_t); -int _dwarf_write_sleb128_alloc(uint8_t **, uint64_t *, uint64_t *, - int64_t, Dwarf_Error *); -int _dwarf_write_uleb128(uint8_t *, uint8_t *, uint64_t); -int _dwarf_write_uleb128_alloc(uint8_t **, uint64_t *, uint64_t *, - uint64_t, Dwarf_Error *); - -#endif /* !__LIBDWARF_H_ */ diff --git a/contrib/elftoolchain/libdwarf/dwarf.3 b/contrib/elftoolchain/libdwarf/dwarf.3 deleted file mode 100644 index a35e8771..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf.3 +++ /dev/null @@ -1,751 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 21, 2014 -.Dt DWARF 3 -.Os -.Sh NAME -.Nm dwarf -.Nd access debugging information in object files -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Sh DESCRIPTION -The -.Lb libdwarf -provides functions that allow an application to read and write debugging -information in object files. -The format of debugging information accessible through this API -is defined by the DWARF standard, see -.Xr dwarf 4 . -.Pp -The -.Xr DWARF 3 -API has two parts: -.Bl -bullet -.It -A consumer API set allows applications to read existing debug information -in a program object. -The functions that comprise the DWARF consumer API are described in -the section -.Sx "DWARF Consumer API" -below. -.It -A producer API set that allows applications to add debug information -to a program object. -The functions that comprise the DWARF producer API are described in -the section -.Sx "DWARF Producer API" -below. -.El -.Pp -Each function referenced below is further described in its own manual page. -.Ss Namespace use -The DWARF library uses the following prefixes: -.Pp -.Bl -tag -width ".Li Dwarf_*" -compact -.It Li DWARF_* -Used for error numbers and constants. -.It Li DW_* -Used for constants. -.It Li Dwarf_* -Used for types. -.It Li dwarf_* -Used for functions and macros that make up the API. -.El -.Ss Data Types -The DWARF(3) API uses the following data types: -.Pp -.Bl -tag -width ".Vt Dwarf_Unsigned" -compact -.It Vt Dwarf_Abbrev -Describes DWARF abbreviations. -.It Vt Dwarf_Addr -A program address in the target object. -.It Vt Dwarf_Arange -Describes address ranges. -.It Vt Dwarf_Attribute , Vt Dwarf_P_Attribute -Describes attributes of debugging information entries. -.It Vt Dwarf_Bool -Used for boolean states. -.It Vt Dwarf_Cie , Vt Dwarf_P_Cie -Describes call information that is common to several frames. -.It Vt Dwarf_Debug , Vt Dwarf_P_Debug -An opaque type describing a debug context. -.It Vt Dwarf_Die , Vt Dwarf_P_Die -A debugging information entry. -.It Vt Dwarf_Fde , Vt Dwarf_P_Fde -A frame descriptor. -.It Vt Dwarf_Func -A descriptor representing a function. -.It Vt Dwarf_Global -A descriptor representing a global name. -.It Vt Dwarf_Half -A 16-bit wide unsigned numeric type. -.It Vt Dwarf_Handler -A pointer to an error handling function. -.It Vt Dwarf_Line -A descriptor for a source line. -.It Vt Dwarf_Off -An unsigned file offset. -.It Vt Dwarf_P_Expr -A descriptor for a location expression. -.It Vt Dwarf_Ptr -A virtual address used by an application. -.It Vt Dwarf_Signed -A 64-bit wide signed numeric type. -.It Vt Dwarf_Small -An 8-bit wide unsigned numeric type. -.It Vt Dwarf_Type -A descriptor representing a user-specified type. -.It Vt Dwarf_Unsigned -A 64-bit wide unsigned numeric type. -.It Vt Dwarf_Var -A descriptor representing a static variable. -.It Vt Dwarf_Weak -A descriptor representing a weak name. -.El -.Ss Error Handling -Library functions that encounter an error will return with a value -other than -.Dv DW_DLV_OK . -.Pp -The -.Lb libdwarf -allows applications to specify three levels of error handling: -.Bl -enum -compact -.It -Most library functions take a parameter of type -.Vt Dwarf_Error -that specifies a location to store an error descriptor in -case of an error. -If an error occurs during the execution on an API, and if this -parameter is non-NULL, then an error descriptor is written to the -location specified. -.It -Otherwise, if the error parameter was NULL, but if an error handler -was defined for the debug context in use using -.Xr dwarf_init 3 -or -.Xr dwarf_seterrhand 3 , -then the library will invoke the specified error handler with an error -descriptor as argument. -.It -Otherwise, if a library wide error handler was specified using -.Xr dwarf_seterrhand 3 , -it is called. -.El -.Pp -Error descriptors may be used with -.Xr dwarf_errmsg 3 -or -.Xr dwarf_errno 3 . -.Sh The DWARF Consumer API -The DWARF consumer API permits applications to read DWARF information in -an object file. -.Pp -The major functional groups of functions in the consumer API are listed -below. -.Pp -.Bl -tag -compact -width "CCCC" -.It Abbreviations -.Bl -tag -compact -width indent -.It Fn dwarf_get_abbrev -Retrieve abbreviation information at a given offset. -.It Fn dwarf_get_abbrev_children_flag -Check if an abbreviation has child elements. -.It Fn dwarf_get_abbrev_code -Retrieve the abbreviation code for an abbreviation entry descriptor. -.It Fn dwarf_get_abbrev_entry -Retrieve abbreviation information for an abbreviation entry -descriptor. -.It Fn dwarf_get_abbrev_tag -Retrieve the tag for an abbreviation entry. -.El -.It Addresses -.Bl -tag -compact -width indent -.It Fn dwarf_get_address_size -Return the number of bytes needed to represent an address. -.It Fn dwarf_get_arange -Search for an address range descriptor covering an address. -.It Fn dwarf_get_arange_cu_header_offset -Retrieve the offsets associated with an address range descriptor. -.It Fn dwarf_get_arange_info -Extract address range information from a descriptor. -.It Fn dwarf_get_aranges -Retrieve program address space mappings. -.It Fn dwarf_get_cu_die_offset -Retrieve the offset associated with a compilation unit for an address -range descriptor. -.It Fn dwarf_get_ranges , Fn dwarf_get_ranges_a -Retrieve information about non-contiguous address ranges for -a debugging information entry. -.El -.It Attributes -.Bl -tag -compact -width indent -.It Fn dwarf_arrayorder -Retrieve the value of a -.Dv DW_AT_ordering -attribute. -.It Fn dwarf_attr -Retrieve an attribute descriptor. -.It Fn dwarf_attrlist -Retrieve attribute descriptors for a debugging information entry. -.It Fn dwarf_attroffset -Retrieve the section-relative offset of an attribute descriptor. -.It Fn dwarf_attrval_flag -Retrieve a -.Dv DW_AT_FORM_flag -value. -.It Fn dwarf_attrval_signed -Retrieve an attribute's value as a signed integral quantity. -.It Fn dwarf_attrval_string -Retrieve an attribute's value as a NUL-terminated string. -.It Fn dwarf_attrval_unsigned -Retrieve an attribute's value as an unsigned integral quantity. -.It Fn dwarf_bitoffset , -Retrieve the value of a -.Dv DW_AT_bit_offset -attribute. -.It Fn dwarf_bitsize , -Retrieve the value of a -.Dv DW_AT_bit_size -attribute. -.It Fn dwarf_bytesize -Retrieve the value of a -.Dv DW_AT_byte_size -attribute. -.It Fn dwarf_formaddr -Return the value of an -.Dv ADDRESS Ns - Ns -class attribute. -.It Fn dwarf_formblock -Return the value of a -.Dv BLOCK Ns - Ns -class attribute -.It Fn dwarf_formexprloc -Return information about a location expression. -.It Fn dwarf_formflag -Retrieve information about a -.Dv BOOLEAN Ns - Ns -class attribute. -.It Fn dwarf_formref , Fn dwarf_global_formref -Retrieve offsets for -.Dv REFERENCE Ns - Ns -class attributes. -.It Fn dwarf_formsdata , Fn dwarf_formudata -Retrieve the value of a -.Dv CONSTANT Ns - Ns -class attribute. -.It Fn dwarf_formsig8 -Return the type signature for a DWARF type. -.It Fn dwarf_formstring -Retrieve information about a -.Dv STRING Ns - Ns -class attribute. -.It Fn dwarf_get_form_class -Retrieve the form class for an attribute. -.It Fn dwarf_hasattr -Check for the presence of an attribute. -.It Fn dwarf_hasform -Check if an attribute has the given form. -.It Fn dwarf_whatattr -Retrieve the attribute code for an attribute. -.It Fn dwarf_whatform , Fn dwarf_whatform_direct -Retrieve the form of an attribute. -.El -.It Call Information Entries and Frame Descriptor Entries -.Bl -tag -compact -width indent -.It Fn dwarf_get_cie_index -Retrieve the index for a CIE descriptor. -.It Fn dwarf_get_cie_info -Retrieve information from a CIE descriptor. -.It Fn dwarf_get_cie_of_fde -Retrieve a CIE descriptor. -.It Fn dwarf_get_fde_at_pc -Retrieve an FDE descriptor for an address. -.It Fn dwarf_get_fde_info_for_all_regs -Retrieve register rule row. -.It Fn dwarf_get_fde_info_for_all_regs3 -Retrieve register rule row (revised API). -.It Fn dwarf_get_fde_info_for_cfa_reg3 -Retrieve a CFA register rule. -.It Fn dwarf_get_fde_info_for_reg -Retrieve a register rule. -.It Fn dwarf_get_fde_info_for_reg3 -Retrieve a register rule (revised API). -.It Fn dwarf_get_fde_instr_bytes -Retrieve instructions from an FDE descriptor. -.It Fn dwarf_get_fde_list , Fn dwarf_get_fde_list_eh -Retrieve frame information. -.It Fn dwarf_get_fde_n -Retrieve an FDE descriptor. -.It Fn dwarf_get_fde_range -Retrieve range information from an FDE descriptor. -.El -.It Compilation Units -.Bl -tag -compact -width indent -.It Xo -.Fn dwarf_get_cu_die_offset_given_cu_header_offset , -.Fn dwarf_get_cu_die_offset_given_cu_header_offset_b -.Xc -Retrieve the offset of the debugging information entry for a -compilation or type unit. -.It Xo -.Fn dwarf_next_cu_header , -.Fn dwarf_next_cu_header_b , -.Fn dwarf_next_cu_header_c -.Xc -Step through compilation units in a debug context. -.El -.It Debugging Information Entries -.Bl -tag -compact -width indent -.It Fn dwarf_child -Returns the child of a debugging information entry. -.It Fn dwarf_die_abbrev_code -Returns the abbreviation code for a debugging information entry. -.It Fn dwarf_die_CU_offset , Fn dwarf_die_CU_offset_range -Retrieve offsets and lengths for a compilation unit. -.It Fn dwarf_diename -Returns the -.Dv DW_AT_name -attribute for a debugging information entry. -.It Fn dwarf_dieoffset -Retrieves the offset for a debugging information entry. -.It Fn dwarf_get_die_infotypes_flag -Indicate the originating section for a debugging information entry. -.It Fn dwarf_highpc , Fn dwarf_highpc_b -Return the highest PC value for a debugging information entry. -.It Fn dwarf_lowpc -Return the lowest PC value for a debugging information entry. -.It Fn dwarf_offdie , Fn dwarf_offdie_b -Retrieve a debugging information entry given an offset. -.It Fn dwarf_siblingof , Fn dwarf_siblingof_b -Retrieve the sibling descriptor for a debugging information entry. -.It Fn dwarf_srclang -Retrieve the source language attribute for a debugging information -entry. -.It Fn dwarf_tag -Retrieve the tag for a debugging information entry. -.El -.It Functions -.Bl -tag -compact -width indent -.It Fn dwarf_func_cu_offset -Retrieves the offset for the compilation unit for a function. -.It Fn dwarf_func_die_offset -Retrieves the offset for the debugging information entry for a -function. -.It Fn dwarf_funcname -Retrieves the name of a function. -.It Fn dwarf_func_name_offsets -Retrieve both the name and offsets for a function. -.It Fn dwarf_get_funcs -Retrieve information about static functions. -.El -.It Globals -.Bl -tag -compact -width indent -.It Fn dwarf_get_globals -Retrieve a list of globals. -.It Fn dwarf_global_cu_offset -Return the offset for compilation unit for a global. -.It Fn dwarf_global_die_offset -Return the offset for the debugging information entry for a global. -.It Fn dwarf_global_name_offsets -Return the name and offsets for a global. -.It Fn dwarf_globname -Return the name for a global. -.El -.It Initialization and Finalization -Functions -.Fn dwarf_elf_init -and -.Fn dwarf_init -may be used for initialization. -The function -.Fn dwarf_finish -may be used to release resources. -.Pp -The functions -.Fn dwarf_object_init -and -.Fn dwarf_object_finish -allow an application to specify alternate low-level file access -routines. -.It Line Numbers -.Bl -tag -compact -width indent -.It Fn dwarf_lineaddr -Retrieve the program address for a source line. -.It Fn dwarf_linebeginstatement -Check if a source line corresponds to the beginning of a statement. -.It Fn dwarf_lineblock -Check if a source line corresponds to the start of a basic block. -.It Fn dwarf_lineendsequence -Check if the source line corresponds to the end of a sequence of -instructions. -.It Fn dwarf_lineno -Retrieve the line number for a line descriptor. -.It Fn dwarf_lineoff -Retrieve the column number for a line descriptor. -.It Fn dwarf_linesrc -Retrieve the source file for a line descriptor. -.It Fn dwarf_line_srcfileno -Retrieve the index of the source file for a line descriptor. -.It Fn dwarf_srcfiles -Retrieve source files for a compilation unit. -.It Fn dwarf_srclines -Return line number information for a compilation unit. -.El -.It Location Lists -.Bl -tag -compact -width indent -.It Fn dwarf_get_loclist_entry -Retrieve a location list entry. -.It Fn dwarf_loclist , Fn dwarf_loclist_n -Retrieve location expressions. -.It Xo -.Fn dwarf_loclist_from_expr , -.Fn dwarf_loclist_from_expr_a , -.Fn dwarf_loclist_from_expr_b -.Xc -Translate a location expression into a location descriptor. -.El -.It Error Handling -.Bl -tag -compact -width indent -.It Fn dwarf_errmsg -Retrieve a human-readable error message. -.It Fn dwarf_errno -Retrieve an error number from an error descriptor. -.It Fn dwarf_seterrarg -Set the argument passed to a callback error handler. -.It Fn dwarf_seterrhand -Set the callback handler to be called in case of an error. -.El -.It Frame Handling -.Bl -tag -compact -width indent -.It Fn dwarf_expand_frame_instructions -Translate frame instruction bytes. -.It Fn dwarf_set_frame_cfa_value -Set the CFA parameter for the internal register rule table. -.It Fn dwarf_set_frame_rule_initial_value -Set the initial value of the register rules in the internal register -rule table. -.It Fn dwarf_set_frame_rule_table_size -Set the maximum number of columns in the register rule table. -.It Fn dwarf_set_frame_same_value -Set the register number representing the -.Dq "same value" -rule. -.It Fn dwarf_set_frame_undefined_value -Set the register number representing the -.Dq "undefined" -rule. -.El -.It Macros -.Bl -tag -compact -width indent -.It Fn dwarf_find_macro_value_start -Return the macro value part of a macro string. -.It Fn dwarf_get_macro_details -Retrieve macro information. -.El -.It Memory Management -In the DWARF consumer API, the rules for memory management differ -between functions. -In some cases, the memory areas returned to the application by the -library are freed by calling specific API functions. -In others, the deallocation function -.Fn dwarf_dealloc -suffices. -The individual manual pages for the API's functions document the -specific memory management rules to be followed. -.Pp -The function -.Fn dwarf_dealloc -is used to mark memory arenas as unused. -Additionally, the following functions release specific types of -DWARF resources: -.Fn dwarf_fde_cie_list_dealloc , -.Fn dwarf_funcs_dealloc , -.Fn dwarf_globals_dealloc , -.Fn dwarf_pubtypes_dealloc , -.Fn dwarf_ranges_dealloc , -.Fn dwarf_srclines_dealloc , -.Fn dwarf_types_dealloc , -.Fn dwarf_vars_dealloc , -and -.Fn dwarf_weaks_dealloc . -.It Symbol Constants -The following functions may be used to return symbolic names -for DWARF constants: -.Fn dwarf_get_ACCESS_name , -.Fn dwarf_get_AT_name , -.Fn dwarf_get_ATE_name , -.Fn dwarf_get_CC_name , -.Fn dwarf_get_CFA_name , -.Fn dwarf_get_CHILDREN_name , -.Fn dwarf_get_DS_name , -.Fn dwarf_get_DSC_name , -.Fn dwarf_get_EH_name , -.Fn dwarf_get_END_name , -.Fn dwarf_get_FORM_name , -.Fn dwarf_get_ID_name , -.Fn dwarf_get_INL_name , -.Fn dwarf_get_LANG_name , -.Fn dwarf_get_LNE_name , -.Fn dwarf_get_LNS_name , -.Fn dwarf_get_MACINFO_name , -.Fn dwarf_get_OP_name , -.Fn dwarf_get_ORD_name , -.Fn dwarf_get_TAG_name , -.Fn dwarf_get_VIRTUALITY_name , -and -.Fn dwarf_get_VIS_name . -.It Types -.Bl -tag -compact -width indent -.It Fn dwarf_get_pubtypes , Fn dwarf_get_types -Retrieve descriptors for user-defined types. -.It Fn dwarf_next_types_section -Step through -.Dq \&.debug_types -sections in a debug context. -.It Fn dwarf_pubtype_cu_offset , Fn dwarf_type_cu_offset -Return the offset for the compilation unit for a type. -.It Fn dwarf_pubtype_die_offset , Fn dwarf_type_die_offset -Return the offset for the debugging information entry for a type. -.It Fn dwarf_pubtypename , Fn dwarf_typename -Retrieve the name of a type. -.It Fn dwarf_pubtype_name_offsets , Fn dwarf_type_name_offsets -Retrieve the name and offsets for a type. -.El -.It Variables -.Bl -tag -compact -width indent -.It Fn dwarf_get_vars -Retrieve descriptors for static variables. -.It Fn dwarf_var_cu_offset -Return the offset for the compilation unit for a variable. -.It Fn dwarf_var_die_offset -Return the offset for the debugging information entry for a variable. -.It Fn dwarf_varname -Retrieve the name of a variable. -.It Fn dwarf_var_name_offsets -Retrieve the name and offsets for a variable. -.El -.It Weak Symbols -.Bl -tag -compact -width indent -.It Fn dwarf_get_weaks -Retrieve information about weak symbols. -.It Fn dwarf_weak_cu_offset -Return the offset for the compilation unit for a weak symbol. -.It Fn dwarf_weak_die_offset -Return the offset for the debugging information entry for a weak symbol. -.It Fn dwarf_weakname -Retrieve the name of a weak symbol. -.It Fn dwarf_weak_name_offsets -Retrieve the name and offsets for a weak symbol. -.El -.It Miscellaneous -.Bl -tag -compact -width indent -.It Fn dwarf_get_elf -Retrieve the ELF descriptor for a debug context, see -.Xr elf 3 . -.It Fn dwarf_get_str -Retrieve a NUL-terminated string from the DWARF string section. -.It Fn dwarf_set_reloc_application -Control whether relocations are to be handled by -.Lb libdwarf . -.El -.El -.Sh The DWARF Producer API -The DWARF producer API permits applications to add DWARF information to -an object file. -.Pp -The major functional groups of functions in the producer API are listed -below. -.Bl -tag -width "CCCC" -.It Attribute Management -The following functions are used to attach attributes to a debugging -information entry: -.Fn dwarf_add_AT_comp_dir , -.Fn dwarf_add_AT_const_value_signedint , -.Fn dwarf_add_AT_const_value_string , -.Fn dwarf_add_AT_const_value_unsignedint , -.Fn dwarf_add_AT_dataref , -.Fn dwarf_add_AT_flag , -.Fn dwarf_add_AT_location_expr , -.Fn dwarf_add_AT_name , -.Fn dwarf_add_AT_producer , -.Fn dwarf_add_AT_ref_address , -.Fn dwarf_add_AT_reference , -.Fn dwarf_add_AT_signed_const , -.Fn dwarf_add_AT_string , -.Fn dwarf_add_AT_targ_address , -.Fn dwarf_add_AT_targ_address_b -and -.Fn dwarf_add_AT_unsigned_const . -.It Debugging Information Entry Management -.Bl -tag -compact -width indent -.It Fn dwarf_add_die_to_debug -Set the root debugging information entry for a DWARF producer instance. -.It Fn dwarf_die_link -Links debugging information entries. -.It Fn dwarf_new_die -Allocate a new debugging information entry. -.El -.It Initialization and Finalization -The functions -.Fn dwarf_producer_init -and -.Fn dwarf_producer_init_b -are used to initialize a producer instance. -.Pp -When done, applications release resources using the function -.Fn dwarf_producer_finish . -.It Relocations and Sections -.Bl -tag -compact -width indent -.It Fn dwarf_get_relocation_info -Retrieve a relocation array from a producer instance. -.It Fn dwarf_get_relocation_info_count -Return the number of relocation arrays for a producer instance. -.It Fn dwarf_get_section_bytes -Retrieve the ELF byte stream for a section. -.It Fn dwarf_reset_section_bytes -Reset internal state for a producer instance. -.It Fn dwarf_transform_to_disk_form -Prepare byte streams for writing out. -.El -.It Macros -.Bl -tag -compact -width indent -.It Fn dwarf_def_macro -Add a macro definition. -.It Fn dwarf_end_macro_file , Fn dwarf_start_macro_file -Record macro file related information. -.It Fn dwarf_undef_macro -Note the removal of a macro definition. -.It Fn dwarf_vendor_ext -Enables storing macro information as specified in the DWARF standard. -.El -.It Symbols, Expressions, Addresses and Offsets -.Bl -tag -compact -width indent -.It Fn dwarf_add_arange , Fn dwarf_add_arange_b -Add address range information. -.It Fn dwarf_add_directory_decl -Add information about an include directory to a producer instance. -.It Fn dwarf_add_fde_inst -Add an operation to a frame descriptor entry. -.It Fn dwarf_add_file_decl -Add information about a source file to a producer instance. -.It Fn dwarf_add_frame_cie -Add call information to a frame descriptor. -.It Fn dwarf_add_frame_fde , Fn dwarf_add_frame_fde_b -Link a frame descriptor to a producer instance. -.It Fn dwarf_add_funcname -Add information about a function to a producer instance. -.It Fn dwarf_add_line_entry -Record mapping information between machine addresses and a source line. -.It Fn dwarf_add_expr_addr , Fn dwarf_add_expr_addr_b -Add a -.Dv DW_OP_addr -opcode to a location expression. -.It Fn dwarf_add_expr_gen -Add an operator to a location expression. -.It Fn dwarf_add_pubname -Add information about a global name to a producer instance. -.It Fn dwarf_add_typename -Add information about a type to a producer instance. -.It Fn dwarf_add_varname -Add information about a static variable to a producer instance. -.It Fn dwarf_add_weakname -Add information about a weak symbol to a producer instance. -.It Fn dwarf_expr_current_offset -Retrieve the current size of a location expression. -.It Fn dwarf_expr_into_block -Convert a location expression into a byte stream. -.It Fn dwarf_fde_cfa_offset -Append a -.Dv DW_CFA_offset -operation to a frame descriptor. -.It Fn dwarf_lne_end_sequence , Fn dwarf_lne_set_address -Note address ranges for source lines. -.It Fn dwarf_new_expr -Allocate a location expression descriptor. -.It Fn dwarf_new_fde -Allocate a frame descriptor. -.El -.It Miscellaneous -The function -.Fn dwarf_producer_set_isa -sets the instruction set architecture for the producer instance. -.El -.Sh COMPATIBILITY -This implementation is believed to be source compatible with the -SGI/GNU DWARF(3) library, version 20110113. -.Pp -Known differences with the SGI/GNU library include: -.Bl -bullet -compact -.It -The memory management scheme used differs, in a backward-compatible -way. -See -.Sx Memory Management -above, for coding guidelines for portable applications. -.It -There is provision for setting a library-wide error handler in -addition to the per-debug context handlers supported by the SGI/GNU -API, see the subsection -.Sx Error Handling -above. -.El -.Ss Extensions -The following APIs are extensions specific to this implementation: -.Bl -bullet -compact -.It -.Fn dwarf_attroffset -.It -.Fn dwarf_next_types_section -.It -.Fn dwarf_producer_set_isa -.El -.Sh SEE ALSO -.Xr elf 3 -.Sh STANDARDS -The DWARF standard is defined by -.Rs -.%T "The DWARF Debugging Information Format" -.%V "Version 4" -.%O "http://www.dwarfstd.org/" -.Re -.Sh HISTORY -The DWARF(3) API originated at Silicon Graphics Inc. -.Pp -A BSD-licensed implementation of a subset of the API was written by -.An John Birrell Aq Mt jb@FreeBSD.org -for the -.Fx -project. -The implementation was subsequently revised and completed by -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . -.Pp -Manual pages for this implementation were written by -.An Joseph Koshy Aq Mt jkoshy@users.sourceforge.net -and -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/contrib/elftoolchain/libdwarf/dwarf.h b/contrib/elftoolchain/libdwarf/dwarf.h deleted file mode 100644 index c5fedbb5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf.h +++ /dev/null @@ -1,652 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - *notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - *notice, this list of conditions and the following disclaimer in the - *documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED.IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _DWARF_H_ -#define _DWARF_H_ - -#define DW_TAG_array_type 0x01 -#define DW_TAG_class_type 0x02 -#define DW_TAG_entry_point 0x03 -#define DW_TAG_enumeration_type 0x04 -#define DW_TAG_formal_parameter 0x05 -#define DW_TAG_imported_declaration 0x08 -#define DW_TAG_label 0x0a -#define DW_TAG_lexical_block 0x0b -#define DW_TAG_member 0x0d -#define DW_TAG_pointer_type 0x0f -#define DW_TAG_reference_type 0x10 -#define DW_TAG_compile_unit 0x11 -#define DW_TAG_string_type 0x12 -#define DW_TAG_structure_type 0x13 -#define DW_TAG_subroutine_type 0x15 -#define DW_TAG_typedef 0x16 -#define DW_TAG_union_type 0x17 -#define DW_TAG_unspecified_parameters 0x18 -#define DW_TAG_variant 0x19 -#define DW_TAG_common_block 0x1a -#define DW_TAG_common_inclusion 0x1b -#define DW_TAG_inheritance 0x1c -#define DW_TAG_inlined_subroutine 0x1d -#define DW_TAG_module 0x1e -#define DW_TAG_ptr_to_member_type 0x1f -#define DW_TAG_set_type 0x20 -#define DW_TAG_subrange_type 0x21 -#define DW_TAG_with_stmt 0x22 -#define DW_TAG_access_declaration 0x23 -#define DW_TAG_base_type 0x24 -#define DW_TAG_catch_block 0x25 -#define DW_TAG_const_type 0x26 -#define DW_TAG_constant 0x27 -#define DW_TAG_enumerator 0x28 -#define DW_TAG_friend 0x2a -#define DW_TAG_namelist 0x2b -#define DW_TAG_namelist_item 0x2c -#define DW_TAG_packed_type 0x2d -#define DW_TAG_subprogram 0x2e -#define DW_TAG_template_type_parameter 0x2f -#define DW_TAG_template_type_param 0x2f -#define DW_TAG_template_value_parameter 0x30 -#define DW_TAG_template_value_param 0x30 -#define DW_TAG_thrown_type 0x31 -#define DW_TAG_try_block 0x32 -#define DW_TAG_variant_part 0x33 -#define DW_TAG_variable 0x34 -#define DW_TAG_volatile_type 0x35 -#define DW_TAG_dwarf_procedure 0x36 -#define DW_TAG_restrict_type 0x37 -#define DW_TAG_interface_type 0x38 -#define DW_TAG_namespace 0x39 -#define DW_TAG_imported_module 0x3a -#define DW_TAG_unspecified_type 0x3b -#define DW_TAG_partial_unit 0x3c -#define DW_TAG_imported_unit 0x3d -#define DW_TAG_condition 0x3f -#define DW_TAG_shared_type 0x40 -#define DW_TAG_type_unit 0x41 -#define DW_TAG_rvalue_reference_type 0x42 -#define DW_TAG_template_alias 0x43 -#define DW_TAG_lo_user 0x4080 -#define DW_TAG_hi_user 0xffff - -/* GNU extensions. */ -#define DW_TAG_format_label 0x4101 -#define DW_TAG_function_template 0x4102 -#define DW_TAG_class_template 0x4103 -#define DW_TAG_GNU_BINCL 0x4104 -#define DW_TAG_GNU_EINCL 0x4105 -#define DW_TAG_GNU_template_template_parameter 0x4106 -#define DW_TAG_GNU_template_template_param 0x4106 -#define DW_TAG_GNU_template_parameter_pack 0x4107 -#define DW_TAG_GNU_formal_parameter_pack 0x4108 -#define DW_TAG_GNU_call_site 0x4109 -#define DW_TAG_GNU_call_site_parameter 0x410a - -#define DW_CHILDREN_no 0x00 -#define DW_CHILDREN_yes 0x01 - -#define DW_AT_sibling 0x01 -#define DW_AT_location 0x02 -#define DW_AT_name 0x03 -#define DW_AT_ordering 0x09 -#define DW_AT_subscr_data 0x0a -#define DW_AT_byte_size 0x0b -#define DW_AT_bit_offset 0x0c -#define DW_AT_bit_size 0x0d -#define DW_AT_element_list 0x0f -#define DW_AT_stmt_list 0x10 -#define DW_AT_low_pc 0x11 -#define DW_AT_high_pc 0x12 -#define DW_AT_language 0x13 -#define DW_AT_member 0x14 -#define DW_AT_discr 0x15 -#define DW_AT_discr_value 0x16 -#define DW_AT_visibility 0x17 -#define DW_AT_import 0x18 -#define DW_AT_string_length 0x19 -#define DW_AT_common_reference 0x1a -#define DW_AT_comp_dir 0x1b -#define DW_AT_const_value 0x1c -#define DW_AT_containing_type 0x1d -#define DW_AT_default_value 0x1e -#define DW_AT_inline 0x20 -#define DW_AT_is_optional 0x21 -#define DW_AT_lower_bound 0x22 -#define DW_AT_producer 0x25 -#define DW_AT_prototyped 0x27 -#define DW_AT_return_addr 0x2a -#define DW_AT_start_scope 0x2c -#define DW_AT_bit_stride 0x2e -#define DW_AT_stride_size 0x2e -#define DW_AT_upper_bound 0x2f -#define DW_AT_abstract_origin 0x31 -#define DW_AT_accessibility 0x32 -#define DW_AT_address_class 0x33 -#define DW_AT_artificial 0x34 -#define DW_AT_base_types 0x35 -#define DW_AT_calling_convention 0x36 -#define DW_AT_count 0x37 -#define DW_AT_data_member_location 0x38 -#define DW_AT_decl_column 0x39 -#define DW_AT_decl_file 0x3a -#define DW_AT_decl_line 0x3b -#define DW_AT_declaration 0x3c -#define DW_AT_discr_list 0x3d -#define DW_AT_encoding 0x3e -#define DW_AT_external 0x3f -#define DW_AT_frame_base 0x40 -#define DW_AT_friend 0x41 -#define DW_AT_identifier_case 0x42 -#define DW_AT_macro_info 0x43 -#define DW_AT_namelist_item 0x44 -#define DW_AT_priority 0x45 -#define DW_AT_segment 0x46 -#define DW_AT_specification 0x47 -#define DW_AT_static_link 0x48 -#define DW_AT_type 0x49 -#define DW_AT_use_location 0x4a -#define DW_AT_variable_parameter 0x4b -#define DW_AT_virtuality 0x4c -#define DW_AT_vtable_elem_location 0x4d -#define DW_AT_allocated 0x4e -#define DW_AT_associated 0x4f -#define DW_AT_data_location 0x50 -#define DW_AT_byte_stride 0x51 -#define DW_AT_entry_pc 0x52 -#define DW_AT_use_UTF8 0x53 -#define DW_AT_extension 0x54 -#define DW_AT_ranges 0x55 -#define DW_AT_trampoline 0x56 -#define DW_AT_call_column 0x57 -#define DW_AT_call_file 0x58 -#define DW_AT_call_line 0x59 -#define DW_AT_description 0x5a -#define DW_AT_binary_scale 0x5b -#define DW_AT_decimal_scale 0x5c -#define DW_AT_small 0x5d -#define DW_AT_decimal_sign 0x5e -#define DW_AT_digit_count 0x5f -#define DW_AT_picture_string 0x60 -#define DW_AT_mutable 0x61 -#define DW_AT_threads_scaled 0x62 -#define DW_AT_explicit 0x63 -#define DW_AT_object_pointer 0x64 -#define DW_AT_endianity 0x65 -#define DW_AT_elemental 0x66 -#define DW_AT_pure 0x67 -#define DW_AT_recursive 0x68 -#define DW_AT_signature 0x69 -#define DW_AT_main_subprogram 0x6a -#define DW_AT_data_bit_offset 0x6b -#define DW_AT_const_expr 0x6c -#define DW_AT_enum_class 0x6d -#define DW_AT_linkage_name 0x6e -#define DW_AT_lo_user 0x2000 -#define DW_AT_hi_user 0x3fff - -/* SGI/MIPS extensions. */ -#define DW_AT_MIPS_fde 0x2001 -#define DW_AT_MIPS_loop_begin 0x2002 -#define DW_AT_MIPS_tail_loop_begin 0x2003 -#define DW_AT_MIPS_epilog_begin 0x2004 -#define DW_AT_MIPS_loop_unroll_factor 0x2005 -#define DW_AT_MIPS_software_pipeline_depth 0x2006 -#define DW_AT_MIPS_linkage_name 0x2007 -#define DW_AT_MIPS_stride 0x2008 -#define DW_AT_MIPS_abstract_name 0x2009 -#define DW_AT_MIPS_clone_origin 0x200a -#define DW_AT_MIPS_has_inlines 0x200b -#define DW_AT_MIPS_stride_byte 0x200c -#define DW_AT_MIPS_stride_elem 0x200d -#define DW_AT_MIPS_ptr_dopetype 0x200e -#define DW_AT_MIPS_allocatable_dopetype 0x200f -#define DW_AT_MIPS_assumed_shape_dopetype 0x2010 -#define DW_AT_MIPS_assumed_size 0x2011 - -/* GNU extensions. */ -#define DW_AT_sf_names 0x2101 -#define DW_AT_src_info 0x2102 -#define DW_AT_mac_info 0x2103 -#define DW_AT_src_coords 0x2104 -#define DW_AT_body_begin 0x2105 -#define DW_AT_body_end 0x2106 -#define DW_AT_GNU_vector 0x2107 -#define DW_AT_GNU_guarded_by 0x2108 -#define DW_AT_GNU_pt_guarded_by 0x2109 -#define DW_AT_GNU_guarded 0x210a -#define DW_AT_GNU_pt_guarded 0x210b -#define DW_AT_GNU_locks_excluded 0x210c -#define DW_AT_GNU_exclusive_locks_required 0x210d -#define DW_AT_GNU_shared_locks_required 0x210e -#define DW_AT_GNU_odr_signature 0x210f -#define DW_AT_GNU_template_name 0x2110 -#define DW_AT_GNU_call_site_value 0x2111 -#define DW_AT_GNU_call_site_data_value 0x2112 -#define DW_AT_GNU_call_site_target 0x2113 -#define DW_AT_GNU_call_site_target_clobbered 0x2114 -#define DW_AT_GNU_tail_call 0x2115 -#define DW_AT_GNU_all_tail_call_sites 0x2116 -#define DW_AT_GNU_all_call_sites 0x2117 -#define DW_AT_GNU_all_source_call_sites 0x2118 - -/* Apple extensions. */ -#define DW_AT_APPLE_optimized 0x3fe1 -#define DW_AT_APPLE_flags 0x3fe2 -#define DW_AT_APPLE_isa 0x3fe3 -#define DW_AT_APPLE_block 0x3fe4 -#define DW_AT_APPLE_major_runtime_vers 0x3fe5 -#define DW_AT_APPLE_runtime_class 0x3fe6 -#define DW_AT_APPLE_omit_frame_ptr 0x3fe7 -#define DW_AT_APPLE_property_name 0x3fe8 -#define DW_AT_APPLE_property_getter 0x3fe9 -#define DW_AT_APPLE_property_setter 0x3fea -#define DW_AT_APPLE_property_attribute 0x3feb -#define DW_AT_APPLE_objc_complete_type 0x3fec -#define DW_AT_APPLE_property 0x3fed - -#define DW_FORM_addr 0x01 -#define DW_FORM_block2 0x03 -#define DW_FORM_block4 0x04 -#define DW_FORM_data2 0x05 -#define DW_FORM_data4 0x06 -#define DW_FORM_data8 0x07 -#define DW_FORM_string 0x08 -#define DW_FORM_block 0x09 -#define DW_FORM_block1 0x0a -#define DW_FORM_data1 0x0b -#define DW_FORM_flag 0x0c -#define DW_FORM_sdata 0x0d -#define DW_FORM_strp 0x0e -#define DW_FORM_udata 0x0f -#define DW_FORM_ref_addr 0x10 -#define DW_FORM_ref1 0x11 -#define DW_FORM_ref2 0x12 -#define DW_FORM_ref4 0x13 -#define DW_FORM_ref8 0x14 -#define DW_FORM_ref_udata 0x15 -#define DW_FORM_indirect 0x16 -#define DW_FORM_sec_offset 0x17 -#define DW_FORM_exprloc 0x18 -#define DW_FORM_flag_present 0x19 -#define DW_FORM_ref_sig8 0x20 -#define DW_FORM_GNU_ref_alt 0x1f20 -#define DW_FORM_GNU_strp_alt 0x1f21 - -#define DW_OP_addr 0x03 -#define DW_OP_deref 0x06 -#define DW_OP_const1u 0x08 -#define DW_OP_const1s 0x09 -#define DW_OP_const2u 0x0a -#define DW_OP_const2s 0x0b -#define DW_OP_const4u 0x0c -#define DW_OP_const4s 0x0d -#define DW_OP_const8u 0x0e -#define DW_OP_const8s 0x0f -#define DW_OP_constu 0x10 -#define DW_OP_consts 0x11 -#define DW_OP_dup 0x12 -#define DW_OP_drop 0x13 -#define DW_OP_over 0x14 -#define DW_OP_pick 0x15 -#define DW_OP_swap 0x16 -#define DW_OP_rot 0x17 -#define DW_OP_xderef 0x18 -#define DW_OP_abs 0x19 -#define DW_OP_and 0x1a -#define DW_OP_div 0x1b -#define DW_OP_minus 0x1c -#define DW_OP_mod 0x1d -#define DW_OP_mul 0x1e -#define DW_OP_neg 0x1f -#define DW_OP_not 0x20 -#define DW_OP_or 0x21 -#define DW_OP_plus 0x22 -#define DW_OP_plus_uconst 0x23 -#define DW_OP_shl 0x24 -#define DW_OP_shr 0x25 -#define DW_OP_shra 0x26 -#define DW_OP_xor 0x27 -#define DW_OP_bra 0x28 -#define DW_OP_eq 0x29 -#define DW_OP_ge 0x2a -#define DW_OP_gt 0x2b -#define DW_OP_le 0x2c -#define DW_OP_lt 0x2d -#define DW_OP_ne 0x2e -#define DW_OP_skip 0x2f -#define DW_OP_lit0 0x30 -#define DW_OP_lit1 0x31 -#define DW_OP_lit2 0x32 -#define DW_OP_lit3 0x33 -#define DW_OP_lit4 0x34 -#define DW_OP_lit5 0x35 -#define DW_OP_lit6 0x36 -#define DW_OP_lit7 0x37 -#define DW_OP_lit8 0x38 -#define DW_OP_lit9 0x39 -#define DW_OP_lit10 0x3a -#define DW_OP_lit11 0x3b -#define DW_OP_lit12 0x3c -#define DW_OP_lit13 0x3d -#define DW_OP_lit14 0x3e -#define DW_OP_lit15 0x3f -#define DW_OP_lit16 0x40 -#define DW_OP_lit17 0x41 -#define DW_OP_lit18 0x42 -#define DW_OP_lit19 0x43 -#define DW_OP_lit20 0x44 -#define DW_OP_lit21 0x45 -#define DW_OP_lit22 0x46 -#define DW_OP_lit23 0x47 -#define DW_OP_lit24 0x48 -#define DW_OP_lit25 0x49 -#define DW_OP_lit26 0x4a -#define DW_OP_lit27 0x4b -#define DW_OP_lit28 0x4c -#define DW_OP_lit29 0x4d -#define DW_OP_lit30 0x4e -#define DW_OP_lit31 0x4f -#define DW_OP_reg0 0x50 -#define DW_OP_reg1 0x51 -#define DW_OP_reg2 0x52 -#define DW_OP_reg3 0x53 -#define DW_OP_reg4 0x54 -#define DW_OP_reg5 0x55 -#define DW_OP_reg6 0x56 -#define DW_OP_reg7 0x57 -#define DW_OP_reg8 0x58 -#define DW_OP_reg9 0x59 -#define DW_OP_reg10 0x5a -#define DW_OP_reg11 0x5b -#define DW_OP_reg12 0x5c -#define DW_OP_reg13 0x5d -#define DW_OP_reg14 0x5e -#define DW_OP_reg15 0x5f -#define DW_OP_reg16 0x60 -#define DW_OP_reg17 0x61 -#define DW_OP_reg18 0x62 -#define DW_OP_reg19 0x63 -#define DW_OP_reg20 0x64 -#define DW_OP_reg21 0x65 -#define DW_OP_reg22 0x66 -#define DW_OP_reg23 0x67 -#define DW_OP_reg24 0x68 -#define DW_OP_reg25 0x69 -#define DW_OP_reg26 0x6a -#define DW_OP_reg27 0x6b -#define DW_OP_reg28 0x6c -#define DW_OP_reg29 0x6d -#define DW_OP_reg30 0x6e -#define DW_OP_reg31 0x6f -#define DW_OP_breg0 0x70 -#define DW_OP_breg1 0x71 -#define DW_OP_breg2 0x72 -#define DW_OP_breg3 0x73 -#define DW_OP_breg4 0x74 -#define DW_OP_breg5 0x75 -#define DW_OP_breg6 0x76 -#define DW_OP_breg7 0x77 -#define DW_OP_breg8 0x78 -#define DW_OP_breg9 0x79 -#define DW_OP_breg10 0x7a -#define DW_OP_breg11 0x7b -#define DW_OP_breg12 0x7c -#define DW_OP_breg13 0x7d -#define DW_OP_breg14 0x7e -#define DW_OP_breg15 0x7f -#define DW_OP_breg16 0x80 -#define DW_OP_breg17 0x81 -#define DW_OP_breg18 0x82 -#define DW_OP_breg19 0x83 -#define DW_OP_breg20 0x84 -#define DW_OP_breg21 0x85 -#define DW_OP_breg22 0x86 -#define DW_OP_breg23 0x87 -#define DW_OP_breg24 0x88 -#define DW_OP_breg25 0x89 -#define DW_OP_breg26 0x8a -#define DW_OP_breg27 0x8b -#define DW_OP_breg28 0x8c -#define DW_OP_breg29 0x8d -#define DW_OP_breg30 0x8e -#define DW_OP_breg31 0x8f -#define DW_OP_regx 0x90 -#define DW_OP_fbreg 0x91 -#define DW_OP_bregx 0x92 -#define DW_OP_piece 0x93 -#define DW_OP_deref_size 0x94 -#define DW_OP_xderef_size 0x95 -#define DW_OP_nop 0x96 -#define DW_OP_push_object_address 0x97 -#define DW_OP_call2 0x98 -#define DW_OP_call4 0x99 -#define DW_OP_call_ref 0x9a -#define DW_OP_form_tls_address 0x9b -#define DW_OP_call_frame_cfa 0x9c -#define DW_OP_bit_piece 0x9d -#define DW_OP_implicit_value 0x9e -#define DW_OP_stack_value 0x9f -#define DW_OP_lo_user 0xe0 -#define DW_OP_hi_user 0xff - -/* GNU extensions. */ -#define DW_OP_GNU_push_tls_address 0xe0 -#define DW_OP_GNU_uninit 0xf0 -#define DW_OP_GNU_encoded_addr 0xf1 -#define DW_OP_GNU_implicit_pointer 0xf2 -#define DW_OP_GNU_entry_value 0xf3 -#define DW_OP_GNU_const_type 0xf4 -#define DW_OP_GNU_regval_type 0xf5 -#define DW_OP_GNU_deref_type 0xf6 -#define DW_OP_GNU_convert 0xf7 -#define DW_OP_GNU_reinterpret 0xf9 -#define DW_OP_GNU_parameter_ref 0xfa -#define DW_OP_GNU_addr_index 0xfb -#define DW_OP_GNU_const_index 0xfc - -#define DW_ATE_address 0x1 -#define DW_ATE_boolean 0x2 -#define DW_ATE_complex_float 0x3 -#define DW_ATE_float 0x4 -#define DW_ATE_signed 0x5 -#define DW_ATE_signed_char 0x6 -#define DW_ATE_unsigned 0x7 -#define DW_ATE_unsigned_char 0x8 -#define DW_ATE_imaginary_float 0x9 -#define DW_ATE_packed_decimal 0xa -#define DW_ATE_numeric_string 0xb -#define DW_ATE_edited 0xc -#define DW_ATE_signed_fixed 0xd -#define DW_ATE_unsigned_fixed 0xe -#define DW_ATE_decimal_float 0xf -#define DW_ATE_lo_user 0x80 -#define DW_ATE_hi_user 0xff - -#define DW_ACCESS_public 0x01 -#define DW_ACCESS_protected 0x02 -#define DW_ACCESS_private 0x03 - -#define DW_END_default 0x00 -#define DW_END_big 0x01 -#define DW_END_little 0x02 -#define DW_END_lo_user 0x40 -#define DW_END_high_user 0xff - -#define DW_VIS_local 0x01 -#define DW_VIS_exported 0x02 -#define DW_VIS_qualified 0x03 - -#define DW_VIRTUALITY_none 0x00 -#define DW_VIRTUALITY_virtual 0x01 -#define DW_VIRTUALITY_pure_virtual 0x02 - -#define DW_LANG_C89 0x0001 -#define DW_LANG_C 0x0002 -#define DW_LANG_Ada83 0x0003 -#define DW_LANG_C_plus_plus 0x0004 -#define DW_LANG_Cobol74 0x0005 -#define DW_LANG_Cobol85 0x0006 -#define DW_LANG_Fortran77 0x0007 -#define DW_LANG_Fortran90 0x0008 -#define DW_LANG_Pascal83 0x0009 -#define DW_LANG_Modula2 0x000a -#define DW_LANG_Java 0x000b -#define DW_LANG_C99 0x000c -#define DW_LANG_Ada95 0x000d -#define DW_LANG_Fortran95 0x000e -#define DW_LANG_PLI 0x000f -#define DW_LANG_ObjC 0x0010 -#define DW_LANG_ObjC_plus_plus 0x0011 -#define DW_LANG_UPC 0x0012 -#define DW_LANG_D 0x0013 -#define DW_LANG_Python 0x0014 -#define DW_LANG_OpenCL 0x0015 -#define DW_LANG_Go 0x0016 -#define DW_LANG_Modula3 0x0017 -#define DW_LANG_Haskell 0x0018 -#define DW_LANG_C_plus_plus_03 0x0019 -#define DW_LANG_C_plus_plus_11 0x001a -#define DW_LANG_OCaml 0x001b -#define DW_LANG_Rust 0x001c -#define DW_LANG_C11 0x001d -#define DW_LANG_Swift 0x001e -#define DW_LANG_Julia 0x001f -#define DW_LANG_Dylan 0x0020 -#define DW_LANG_C_plus_plus_14 0x0021 -#define DW_LANG_Fortran03 0x0022 -#define DW_LANG_Fortran08 0x0023 -#define DW_LANG_RenderScript 0x0024 -#define DW_LANG_BLISS 0x0025 -#define DW_LANG_lo_user 0x8000 -#define DW_LANG_Mips_Assembler 0x8001 -#define DW_LANG_hi_user 0xffff - -#define DW_ID_case_sensitive 0x00 -#define DW_ID_up_case 0x01 -#define DW_ID_down_case 0x02 -#define DW_ID_case_insensitive 0x03 - -#define DW_CC_normal 0x01 -#define DW_CC_program 0x02 -#define DW_CC_nocall 0x03 -#define DW_CC_lo_user 0x40 -#define DW_CC_hi_user 0xff - -#define DW_INL_not_inlined 0x00 -#define DW_INL_inlined 0x01 -#define DW_INL_declared_not_inlined 0x02 -#define DW_INL_declared_inlined 0x03 - -#define DW_ORD_row_major 0x00 -#define DW_ORD_col_major 0x01 - -#define DW_DS_unsigned 0x01 -#define DW_DS_leading_overpunch 0x02 -#define DW_DS_trailing_overpunch 0x03 -#define DW_DS_leading_separate 0x04 -#define DW_DS_trailing_separate 0x05 - -#define DW_DSC_label 0x00 -#define DW_DSC_range 0x01 - -#define DW_LNS_copy 0x01 -#define DW_LNS_advance_pc 0x02 -#define DW_LNS_advance_line 0x03 -#define DW_LNS_set_file 0x04 -#define DW_LNS_set_column 0x05 -#define DW_LNS_negate_stmt 0x06 -#define DW_LNS_set_basic_block 0x07 -#define DW_LNS_const_add_pc 0x08 -#define DW_LNS_fixed_advance_pc 0x09 -#define DW_LNS_set_prologue_end 0x0a -#define DW_LNS_set_epilogue_begin 0x0b -#define DW_LNS_set_isa 0x0c - -#define DW_LNE_end_sequence 0x01 -#define DW_LNE_set_address 0x02 -#define DW_LNE_define_file 0x03 -#define DW_LNE_lo_user 0x80 -#define DW_LNE_hi_user 0xff - -#define DW_MACINFO_define 0x01 -#define DW_MACINFO_undef 0x02 -#define DW_MACINFO_start_file 0x03 -#define DW_MACINFO_end_file 0x04 -#define DW_MACINFO_vendor_ext 0xff - -#define DW_CFA_advance_loc 0x40 -#define DW_CFA_offset 0x80 -#define DW_CFA_restore 0xc0 -#define DW_CFA_extended 0 - -#define DW_CFA_nop 0x00 -#define DW_CFA_set_loc 0x01 -#define DW_CFA_advance_loc1 0x02 -#define DW_CFA_advance_loc2 0x03 -#define DW_CFA_advance_loc4 0x04 -#define DW_CFA_offset_extended 0x05 -#define DW_CFA_restore_extended 0x06 -#define DW_CFA_undefined 0x07 -#define DW_CFA_same_value 0x08 -#define DW_CFA_register 0x09 -#define DW_CFA_remember_state 0x0a -#define DW_CFA_restore_state 0x0b -#define DW_CFA_def_cfa 0x0c -#define DW_CFA_def_cfa_register 0x0d -#define DW_CFA_def_cfa_offset 0x0e -#define DW_CFA_def_cfa_expression 0x0f -#define DW_CFA_expression 0x10 -#define DW_CFA_offset_extended_sf 0x11 -#define DW_CFA_def_cfa_sf 0x12 -#define DW_CFA_def_cfa_offset_sf 0x13 -#define DW_CFA_val_offset 0x14 -#define DW_CFA_val_offset_sf 0x15 -#define DW_CFA_val_expression 0x16 -#define DW_CFA_lo_user 0x1c -#define DW_CFA_high_user 0x3f - -/* - * LSB(Linux Standard Base) extension to DWARF2. - */ - -#define DW_EH_PE_absptr 0x00 -#define DW_EH_PE_uleb128 0x01 -#define DW_EH_PE_udata2 0x02 -#define DW_EH_PE_udata4 0x03 -#define DW_EH_PE_udata8 0x04 -#define DW_EH_PE_sleb128 0x09 -#define DW_EH_PE_sdata2 0x0a -#define DW_EH_PE_sdata4 0x0b -#define DW_EH_PE_sdata8 0x0c -#define DW_EH_PE_pcrel 0x10 -#define DW_EH_PE_textrel 0x20 -#define DW_EH_PE_datarel 0x30 -#define DW_EH_PE_funcrel 0x40 -#define DW_EH_PE_aligned 0x50 -#define DW_EH_PE_omit 0xff - -#endif /* !_DWARF_H_ */ diff --git a/contrib/elftoolchain/libdwarf/dwarf_abbrev.c b/contrib/elftoolchain/libdwarf/dwarf_abbrev.c deleted file mode 100644 index 18aa9f63..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_abbrev.c +++ /dev/null @@ -1,136 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_get_abbrev(Dwarf_Debug dbg, Dwarf_Unsigned offset, - Dwarf_Abbrev *return_abbrev, Dwarf_Unsigned *length, - Dwarf_Unsigned *attr_count, Dwarf_Error *error) -{ - Dwarf_Abbrev ab; - int ret; - - if (dbg == NULL || return_abbrev == NULL || length == NULL || - attr_count == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ret = _dwarf_abbrev_parse(dbg, NULL, &offset, &ab, error); - if (ret != DW_DLE_NONE) { - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else - return (DW_DLV_ERROR); - } - - *return_abbrev = ab; - *length = ab->ab_length; - *attr_count = ab->ab_atnum; - - return (DW_DLV_OK); -} - -int -dwarf_get_abbrev_tag(Dwarf_Abbrev abbrev, Dwarf_Half *return_tag, - Dwarf_Error *error) -{ - - if (abbrev == NULL || return_tag == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *return_tag = (Dwarf_Half) abbrev->ab_tag; - - return (DW_DLV_OK); -} - -int -dwarf_get_abbrev_code(Dwarf_Abbrev abbrev, Dwarf_Unsigned *return_code, - Dwarf_Error *error) -{ - - if (abbrev == NULL || return_code == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *return_code = abbrev->ab_entry; - - return (DW_DLV_OK); -} - -int -dwarf_get_abbrev_children_flag(Dwarf_Abbrev abbrev, Dwarf_Signed *return_flag, - Dwarf_Error *error) -{ - - if (abbrev == NULL || return_flag == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *return_flag = (Dwarf_Signed) abbrev->ab_children; - - return (DW_DLV_OK); -} - -int -dwarf_get_abbrev_entry(Dwarf_Abbrev abbrev, Dwarf_Signed ndx, - Dwarf_Half *attr_num, Dwarf_Signed *form, Dwarf_Off *offset, - Dwarf_Error *error) -{ - Dwarf_AttrDef ad; - int i; - - if (abbrev == NULL || attr_num == NULL || form == NULL || - offset == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (ndx < 0 || (uint64_t) ndx >= abbrev->ab_atnum) { - DWARF_SET_ERROR(NULL, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - ad = STAILQ_FIRST(&abbrev->ab_attrdef); - for (i = 0; i < ndx && ad != NULL; i++) - ad = STAILQ_NEXT(ad, ad_next); - - assert(ad != NULL); - - *attr_num = ad->ad_attrib; - *form = ad->ad_form; - *offset = ad->ad_offset; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 deleted file mode 100644 index d7981dd7..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_comp_dir.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_COMP_DIR 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_comp_dir -.Nd create and attach a DW_AT_comp_dir attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_comp_dir -.Fa "Dwarf_P_Die die" -.Fa "char *dir" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_comp_dir -creates a -.Dv DW_AT_comp_dir -attribute descriptor and attaches it to the debugging information -entry referenced by argument -.Ar die . -The created attribute will have DWARF form -.Dv DW_FORM_strp . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar dir -should point to a NUL-terminated string which will become the value of -the created attribute. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_comp_dir -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_comp_dir -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_comp_dir -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar die -or -.Ar dir -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_const_value_string 3 , -.Xr dwarf_add_AT_name 3 , -.Xr dwarf_add_AT_producer 3 , -.Xr dwarf_add_AT_string 3 , -.Xr dwarf_new_die 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 deleted file mode 100644 index 9ad2f4c5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_const_value_string.3 +++ /dev/null @@ -1,126 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_CONST_VALUE_STRING 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_const_value_signedint , -.Nm dwarf_add_AT_const_value_string , -.Nm dwarf_add_AT_const_value_unsignedint -.Nd create and attach a DW_AT_const_value attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_const_value_signedint -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Signed value" -.Fa "Dwarf_Error *err" -.Fc -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_const_value_string -.Fa "Dwarf_P_Die die" -.Fa "char *str" -.Fa "Dwarf_Error *err" -.Fc -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_const_value_unsignedint -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Unsigned value" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions create a -.Dv DW_AT_const_value -attribute descriptor and attach it to the debugging information entry -referenced by argument -.Ar die . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Function -.Fn dwarf_add_AT_const_value_signedint -creates a -.Dv DW_AT_const_value -attribute descriptor containing the signed value specified by argument -.Ar value . -The created attribute descriptor will have DWARF form -.Dv DW_FORM_sdata . -.Pp -Function -.Fn dwarf_add_AT_const_value_unsignedint -creates a -.Dv DW_AT_const_value -attribute descriptor containing the unsigned value specified by -argument -.Ar value . -The created attribute descriptor will have DWARF form -.Dv DW_FORM_udata . -.Pp -Function -.Fn dwarf_add_AT_const_value_string -creates a -.Dv DW_AT_const_value -attribute descriptor containing the string pointed to by the -NUL-terminated argument -.Ar str . -The created attribute descriptor will have DWARF form -.Dv DW_FORM_strp . -.Pp -If argument -.Ar err -is not NULL, it will be used by these functions to store error -information in case of an error. -.Sh RETURN VALUES -On success, these functions return the created attribute descriptor. -In case of an error, these functions return -.Dv DW_DLV_BADADDR -and set the argument -.Ar err . -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar die -or -.Ar str -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during execution. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_name 3 , -.Xr dwarf_add_AT_signed_const 3 , -.Xr dwarf_add_AT_string 3 , -.Xr dwarf_add_AT_unsigned_const 3 , -.Xr dwarf_new_die 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 deleted file mode 100644 index c52a88ca..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_dataref.3 +++ /dev/null @@ -1,122 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_DATAREF 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_dataref -.Nd create an attribute descriptor for a relocatable address -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Attribute" -.Fo dwarf_add_AT_dataref -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Unsigned pc_value" -.Fa "Dwarf_Unsigned sym_index" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_dataref -creates an attribute descriptor for a relocatable address and attaches -it to the debugging information entry referenced by argument -.Ar die . -.Pp -If flag -.Dv DW_DLC_SIZE_64 -is set, the address value will be 8 bytes in size and of the DWARF form -.Dv DW_FORM_data8 . -Otherwise, the address value will be 4 bytes in size and of the DWARF form -.Dv DW_FORM_data4 . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -specifies the attribute code of the created attribute descriptor. -.Pp -Argument -.Ar pc_value -specifies the value of the relocatable address. -.Pp -Argument -.Ar sym_index -specifies the ELF symbol index of the symbol to be used for -relocation. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_dataref -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_dataref -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_dataref -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar die -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_ref_address 3 , -.Xr dwarf_add_AT_reference 3 , -.Xr dwarf_add_AT_signed_const 3 , -.Xr dwarf_add_AT_unsigned_const 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_flag.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_flag.3 deleted file mode 100644 index 41f44421..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_flag.3 +++ /dev/null @@ -1,115 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_FLAG 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_flag -.Nd create and attach a flag attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_flag -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Small flag" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_flag -creates an attribute descriptor belonging to the -.Sq flag -class, and attaches it to the debugging information entry referenced -by argument -.Ar die . -The created attribute descriptor will have DWARF form -.Dv DW_FORM_flag . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -should specify the attribute code for the new attribute descriptor. -.Pp -Argument -.Ar flag -should specify the value of the new attribute descriptor. -A zero value is treated as -.Sq false -and a non-zero value as -.Sq true . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_flag -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_flag -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_flag -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar die -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_signed_const 3 , -.Xr dwarf_add_AT_unsigned_const 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_location_expr.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_location_expr.3 deleted file mode 100644 index b8cd1e42..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_location_expr.3 +++ /dev/null @@ -1,120 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 5, 2011 -.Dt DWARF_ADD_AT_LOCATION_EXPR 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_location_expr -.Nd create an attribute descriptor for a location expression -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Attribute" -.Fo dwarf_add_AT_location_expr -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_P_Expr loc_expr" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_location_expr -creates an attribute descriptor for a location expression and attaches -it to the debugging information entry referenced by argument -.Ar die . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -specifies the attribute code of the created attribute descriptor. -.Pp -Argument -.Ar loc_expr -should reference a location expression descriptor allocated using -.Xr dwarf_new_expr 3 . -.Pp -The attribute created by function -.Fn dwarf_add_AT_location_expr -will have one of the DWARF forms -.Dv DW_FORM_block , -.Dv DW_FORM_block1 , -.Dv DW_FORM_block2 -or -.Dv DW_FORM_block4 , -depending on the size of the byte stream generated by the location -expression descriptor referenced by argument -.Ar loc_expr . -.Pp -If argument -.Ar err -is not NULL, it will be used by to store error information in case of -an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_location_expr -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_location_expr -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_location_expr -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar loc_expr -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_new_expr 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_name.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_name.3 deleted file mode 100644 index ca18094b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_name.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_NAME 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_name -.Nd create and attach a DW_AT_name attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_name -.Fa "Dwarf_P_Die die" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_name -creates a -.Dv DW_AT_name -attribute descriptor and attaches it to the debugging information -entry referenced by argument -.Ar die . -The created attribute will have DWARF form -.Dv DW_FORM_strp . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar name -should point to a NUL-terminated string which will become the value of -the created attribute. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_name -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_name -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_name -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar die -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -this function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_comp_dir 3 , -.Xr dwarf_add_AT_const_value_string 3 , -.Xr dwarf_add_AT_producer 3 , -.Xr dwarf_add_AT_string 3 , -.Xr dwarf_new_die 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_producer.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_producer.3 deleted file mode 100644 index dc4a756f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_producer.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_PRODUCER 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_producer -.Nd create and attach a DW_AT_producer attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_producer -.Fa "Dwarf_P_Die die" -.Fa "char *producer" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_producer -creates a -.Dv DW_AT_producer -attribute descriptor and attaches it to the debugging information -entry referenced by argument -.Ar die . -The created attribute will have DWARF form -.Dv DW_FORM_strp . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar producer -should point to a NUL-terminated string which will become the value of -the created attribute. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_producer -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_producer -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_producer -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar die -or -.Ar producer -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_comp_dir 3 , -.Xr dwarf_add_AT_const_value_string 3 , -.Xr dwarf_add_AT_name 3 , -.Xr dwarf_add_AT_string 3 , -.Xr dwarf_new_die 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_ref_address.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_ref_address.3 deleted file mode 100644 index e2e52292..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_ref_address.3 +++ /dev/null @@ -1,117 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 7, 2011 -.Dt DWARF_ADD_AT_REF_ADDRESS 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_ref_address -.Nd create a reference class attribute descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Attribute" -.Fo dwarf_add_AT_ref_address -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Unsigned pc_value" -.Fa "Dwarf_Unsigned sym_index" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_ref_address -creates a -.Sq reference -class attribute descriptor containing a relocatable address value. -The created attribute will use DWARF form -.Dv DW_FORM_ref_addr . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -specifies the attribute code of the created attribute. -.Pp -Argument -.Ar pc_value -contains a relocatable address which will become the value of the -created attribute. -.Pp -Argument -.Ar sym_index -should specify the ELF symbol index of the symbol to be used when -relocating the address value. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_ref_address -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_ref_address -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_ref_address -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar die -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during execution. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_dataref 3 , -.Xr dwarf_add_AT_reference 3 , -.Xr dwarf_add_AT_signed_const 3 , -.Xr dwarf_add_AT_unsigned_const 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_reference.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_reference.3 deleted file mode 100644 index 2ce50664..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_reference.3 +++ /dev/null @@ -1,117 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_REFERENCE 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_reference -.Nd create and attach an attribute that references another DIE -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Attribute" -.Fo dwarf_add_AT_reference -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_P_Die ref_die" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_reference -creates an attribute descriptor that references another debugging -information entry in the same compilation unit. -The attribute will be of DWARF form -.Dv DW_FORM_ref4 -or -.Dv DW_FORM_ref8 -depending on the target address size, and will contain the -section-relative offset of the referenced debugging information entry -as its value. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -should specify the attribute code of the created attribute descriptor. -.Pp -Argument -.Ar ref_die -should hold the debugging information entry descriptor that -the attribute should refer to. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_reference -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_reference -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_reference -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar ref_die -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_dataref 3 , -.Xr dwarf_add_AT_ref_address 3 , -.Xr dwarf_add_AT_signed_const 3 , -.Xr dwarf_add_AT_unsigned_const 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_signed_const.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_signed_const.3 deleted file mode 100644 index 447455e8..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_signed_const.3 +++ /dev/null @@ -1,131 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_SIGNED_CONST 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_signed_const , -.Nm dwarf_add_AT_unsigned_const -.Nd create and attach constant class attributes -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_signed_const -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Signed value" -.Fa "Dwarf_Error *err" -.Fc -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_unsigned_const -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Unsigned value" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions create attribute descriptors belonging to the -.Sq constant -class -and attach them to the debugging information entry referenced by -argument -.Ar die . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -specifies the attribute code of the created attribute descriptor. -.Pp -Function -.Fn dwarf_add_AT_signed_const -creates an attribute descriptor with the signed value specified in -argument -.Ar value . -.Pp -Function -.Fn dwarf_add_AT_unsigned_const -creates an attribute descriptor with the unsigned value specified in -argument -.Ar value . -.Pp -The attribute created by these function will have one of the -DWARF forms -.Dv DW_FORM_data1 , -.Dv DW_FORM_data2 , -.Dv DW_FORM_data4 -or -.Dv DW_FORM_data8 , -depending on the size of the value specified in argument -.Ar value . -.Pp -If argument -.Ar err -is not NULL, it will be used by these functions to store error -information in case of an error. -.Sh RETURN VALUES -On success, these functions return the created attribute descriptor. -In case of an error, these functions return -.Dv DW_DLV_BADADDR -and set the argument -.Ar err . -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar die -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during execution. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_const_value_signedint 3 , -.Xr dwarf_add_AT_const_value_unsignedint 3 , -.Xr dwarf_add_AT_dataref 3 , -.Xr dwarf_add_AT_ref_address 3 , -.Xr dwarf_add_AT_targ_address_b 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_string.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_string.3 deleted file mode 100644 index 5960b2b4..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_string.3 +++ /dev/null @@ -1,114 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_STRING 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_string -.Nd create and attach a string class attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_string -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "char *str" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_string -creates an attribute descriptor belonging to the -.Sq string -class and attaches it to the debugging information entry referenced by -argument -.Ar die . -The created attribute descriptor will have DWARF form -.Dv DW_FORM_strp . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -should specify the attribute code for the created attribute -descriptor. -.Pp -Argument -.Ar str -should hold a pointer to a NUL-terminated string which will become the -value of the created attribute descriptor. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_AT_string -returns the created attribute descriptor. -In case of an error, function -.Fn dwarf_add_AT_string -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_AT_string -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar str -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_const_value_string 3 , -.Xr dwarf_add_AT_name 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_AT_targ_address.3 b/contrib/elftoolchain/libdwarf/dwarf_add_AT_targ_address.3 deleted file mode 100644 index 2237a51f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_AT_targ_address.3 +++ /dev/null @@ -1,137 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_ADD_AT_TARG_ADDRESS 3 -.Os -.Sh NAME -.Nm dwarf_add_AT_targ_address , -.Nm dwarf_add_AT_targ_address_b -.Nd create and attach address class attributes -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_targ_address -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Unsigned pc_value" -.Fa "Dwarf_Signed sym_index" -.Fa "Dwarf_Error *err" -.Fc -.Ft Dwarf_P_Attribute -.Fo dwarf_add_AT_targ_address_b -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Unsigned pc_value" -.Fa "Dwarf_Unsigned sym_index" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_AT_targ_address_b -creates an attribute descriptor belonging to the -.Sq address -class and attaches it to the debugging information entry referenced by -argument -.Ar die . -.Pp -The created attribute descriptor will have DWARF form -.Dv DW_FORM_addr . -If flag -.Dv DW_DLC_SIZE_64 -is set on the producer instance, the attribute value will be 8 bytes -in size. -Otherwise the attribute value will be 4 bytes in size. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -should reference a debugging information entry allocated using -.Xr dwarf_new_die 3 . -.Pp -Argument -.Ar attr -should specify the attribute code of the created attribute descriptor. -.Pp -Argument -.Ar pc_value -should hold a relocatable address value which will become the value of -the created attribute descriptor. -.Pp -Argument -.Ar sym_index -should specify the ELF symbol index of the symbol to be used for -relocating the address value. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -Function -.Fn dwarf_add_AT_targ_address -is deprecated. -It is similar to function -.Fn dwarf_add_AT_targ_address_b -except that it cannot handle all possible symbol index values. -.Sh RETURN VALUES -On success, these functions return the created attribute descriptor. -In case of an error, these functions return -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar die -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during execution. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_const_value_unsignedint 3 , -.Xr dwarf_add_AT_dataref 3 , -.Xr dwarf_add_AT_ref_address 3 , -.Xr dwarf_add_AT_signed_const 3 , -.Xr dwarf_add_AT_unsigned_const 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_arange.3 b/contrib/elftoolchain/libdwarf/dwarf_add_arange.3 deleted file mode 100644 index 77320c92..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_arange.3 +++ /dev/null @@ -1,151 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 18, 2011 -.Dt DWARF_ADD_ARANGE 3 -.Os -.Sh NAME -.Nm dwarf_add_arange , -.Nm dwarf_add_arange_b -.Nd add address range information to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_arange -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Addr start" -.Fa "Dwarf_Unsigned length" -.Fa "Dwarf_Signed symbol_index" -.Fa "Dwarf_Error *err" -.Fc -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_arange_b -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Addr start" -.Fa "Dwarf_Unsigned length" -.Fa "Dwarf_Unsigned symbol_index" -.Fa "Dwarf_Unsigned end_symbol_index" -.Fa "Dwarf_Addr offset_from_end_symbol" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_arange_b -adds an address range entry to a producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar start -specifies the relocatable start address of the address range. -.Pp -Argument -.Ar length -specifies the length of the address range. -.Pp -Argument -.Ar symbol_index -specifies the ELF symbol index of the first symbol to be used for -relocation. -.Pp -Argument -.Ar end_symbol_index -specifies the ELF symbol index of the second symbol to be used for -relocation. -.Bl -bullet -.It -If argument -.Ar end_symbol_index -is not 0, the -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -flag should have been set on the DWARF producer instance. -The address value specified by argument -.Ar start -will be treated as an offset value from the first symbol, -and the argument -.Ar offset_from_end_symbol -should hold an offset value from the second symbol. -Application code can retrieve the relocation entries for the -symbol pair by calling function -.Xr dwarf_get_relocation_info 3 . -The relocation entry for the first symbol will have type -.Dv dwarf_drt_first_of_length_pair -and the relocation entry for the second symbol will have type -.Dv dwarf_drt_second_of_length_pair . -.It -If argument -.Ar end_symbol_index -is 0, argument -.Ar offset_from_end_symbol -will be ignored and only one symbol is used for relocation. -.El -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -Function -.Fn dwarf_add_arange -is deprecated. -It is similar to function -.Fn dwarf_add_arange_b -except that it cannot handle all possible symbol index values -and supports only one relocation symbol. -.Sh RETURN VALUES -On success, these functions return a non-zero value. -In case of an error, these functions return 0 and set -the argument -.Ar err . -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar end_symbol_index -was non-zero, but the flag -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -was not set on the producer instance. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_relocation_info 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_die_to_debug.3 b/contrib/elftoolchain/libdwarf/dwarf_add_die_to_debug.3 deleted file mode 100644 index 39e9751d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_die_to_debug.3 +++ /dev/null @@ -1,95 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 21, 2011 -.Dt DWARF_ADD_DIE_TO_DEBUG 3 -.Os -.Sh NAME -.Nm dwarf_add_die_to_debug -.Nd set the root debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_Unsigned -.Fo dwarf_add_die_to_debug -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die first_die" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_die_to_debug -sets the root debugging information entry of a DWARF producer -instance. -All debugging information entries linked to the root entry will also -be added to the producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar first_die -should hold the debugging information entry which will become -the root DIE. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_die_to_debug -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_add_die_to_debug -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_die_to_debug -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar first_die -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_die_link 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_directory_decl.3 b/contrib/elftoolchain/libdwarf/dwarf_add_directory_decl.3 deleted file mode 100644 index 9c8dd332..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_directory_decl.3 +++ /dev/null @@ -1,97 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 17, 2011 -.Dt DWARF_ADD_DIRECTORY_DECL 3 -.Os -.Sh NAME -.Nm dwarf_add_directory_decl -.Nd add a directory name to a producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_directory_decl -.Fa "Dwarf_P_Debug dbg" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_directory_decl -adds a source directory name to a producer instance and returns the -index value generated for the directory name. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar name -should point a NUL-terminated string containing the name of -the directory. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_directory_decl -returns the index value generated for the directory. -In case of an error, function -.Fn dwarf_add_directory_decl -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_directory_decl -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar dbg -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_file_decl 3 , -.Xr dwarf_add_line_entry 3 , -.Xr dwarf_lne_end_sequence 3 , -.Xr dwarf_lne_set_address 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_expr_addr.3 b/contrib/elftoolchain/libdwarf/dwarf_add_expr_addr.3 deleted file mode 100644 index 1061172b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_expr_addr.3 +++ /dev/null @@ -1,111 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 9, 2011 -.Dt DWARF_ADD_EXPR_ADDR 3 -.Os -.Sh NAME -.Nm dwarf_add_expr_addr , -.Nm dwarf_add_expr_addr_b -.Nd add a DW_OP_addr location expression -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_expr_addr -.Fa "Dwarf_P_Expr expr" -.Fa "Dwarf_Unsigned address" -.Fa "Dwarf_Signed sym_index" -.Fa "Dwarf_Error *err" -.Fc -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_expr_addr_b -.Fa "Dwarf_P_Expr expr" -.Fa "Dwarf_Unsigned address" -.Fa "Dwarf_Unsigned sym_index" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_expr_addr_b -adds a -.Dv DW_OP_addr -location expression to the location expression descriptor referenced -by argument -.Ar expr . -.Pp -Argument -.Ar expr -should reference a location expression descriptor allocated using -the function -.Xr dwarf_new_expr 3 . -.Pp -Argument -.Ar address -specifies the operand, a relocatable address value. -.Pp -Argument -.Ar sym_index -specifies the ELF symbol index of the symbol to be used for -relocation. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -Function -.Fn dwarf_add_expr_addr -is deprecated. -It is similar to function -.Fn dwarf_add_expr_addr_b -except that it cannot handle all possible symbol index values. -.Sh RETURN VALUES -On success, these functions return the size in bytes of the location -expression byte stream generated. -In case of an error, these functions return -.Dv DW_DLV_NOCOUNT -and set the argument -.Ar err . -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar expr -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_location_expr 3 , -.Xr dwarf_add_expr_gen 3 , -.Xr dwarf_expr_current_offset 3 , -.Xr dwarf_expr_into_block 3 , -.Xr dwarf_new_expr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_expr_gen.3 b/contrib/elftoolchain/libdwarf/dwarf_add_expr_gen.3 deleted file mode 100644 index 8f862b8d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_expr_gen.3 +++ /dev/null @@ -1,118 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 9, 2011 -.Dt DWARF_ADD_EXPR_GEN 3 -.Os -.Sh NAME -.Nm dwarf_add_expr_gen -.Nd add an operator to a location expression descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_expr_gen -.Fa "Dwarf_P_Expr expr" -.Fa "Dwarf_Small opcode" -.Fa "Dwarf_Unsigned val1" -.Fa "Dwarf_Unsigned val2" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_expr_gen -adds a location expression operator to the location expression -descriptor referenced by argument -.Ar expr . -.Pp -Argument -.Ar expr -should reference a location expression descriptor allocated using -the function -.Xr dwarf_new_expr 3 . -.Pp -Argument -.Ar opcode -specifies the operation code of the location expression operator. -Valid values for this argument are those denoted by the -.Dv DW_OP_ Ns * -constants defined in -.In libdwarf.h . -.Pp -To generate a -.Dv DW_OP_addr -operation, application code should instead use -.Xr dwarf_add_expr_addr_b 3 . -.Pp -Argument -.Ar val1 -specifies the first operand of the location expression operator. -.Pp -Argument -.Ar val2 -specifies the second operand of the location expression operator. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_expr_gen -returns the size in bytes of the location expression byte stream -generated. -In case of an error, function -.Fn dwarf_add_expr_gen -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_expr_gen -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_LOC_EXPR_BAD" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar expr -was NULL. -.It Bq Er DW_DLE_LOC_EXPR_BAD -The operation code specified in argument -.Ar opcode -was invalid. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_location_expr 3 , -.Xr dwarf_add_expr_addr 3 , -.Xr dwarf_add_expr_addr_b 3 , -.Xr dwarf_expr_current_offset 3 , -.Xr dwarf_expr_into_block 3 , -.Xr dwarf_new_expr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_fde_inst.3 b/contrib/elftoolchain/libdwarf/dwarf_add_fde_inst.3 deleted file mode 100644 index 7fd4f379..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_fde_inst.3 +++ /dev/null @@ -1,113 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 26, 2011 -.Dt DWARF_ADD_FDE_INST 3 -.Os -.Sh NAME -.Nm dwarf_add_fde_inst -.Nd add a call frame instruction to a DWARF frame descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Fde" -.Fo dwarf_add_fde_inst -.Fa "Dwarf_P_Fde fde" -.Fa "Dwarf_Small op" -.Fa "Dwarf_Unsigned val1" -.Fa "Dwarf_Unsigned val2" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_fde_inst -adds a call frame instruction to the DWARF frame descriptor -referenced by argument -.Ar fde . -.Pp -Argument -.Ar fde -should reference a frame descriptor allocated using -.Xr dwarf_new_fde 3 . -.Pp -Argument -.Ar op -specifies the operator for the frame instruction. -The DWARF standard defines the set of legal values for this argument. -.Pp -Argument -.Ar val1 -specifies the first operand of the frame instruction. -.Pp -Argument -.Ar val2 -specifies the second operand of the frame instruction. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_fde_inst -returns the frame descriptor given in argument -.Ar fde . -In case of an error, function -.Fn dwarf_add_fde_inst -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_fde_inst -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_FRAME_INSTR_EXEC_ERROR" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar fde -was NULL. -.It Bq Er DW_DLE_FRAME_INSTR_EXEC_ERROR -The frame instruction operator specified in argument -.Ar op -was invalid. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_frame_cie 3 , -.Xr dwarf_add_frame_fde 3 , -.Xr dwarf_add_frame_fde_b 3 , -.Xr dwarf_fde_cfa_offset 3 , -.Xr dwarf_new_fde 3 -.Rs -.%T "The DWARF Debugging Information Format" -.%V "Version 4" -.%O "http://www.dwarfstd.org/" -.Re diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_file_decl.3 b/contrib/elftoolchain/libdwarf/dwarf_add_file_decl.3 deleted file mode 100644 index c10584b2..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_file_decl.3 +++ /dev/null @@ -1,122 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 17, 2011 -.Dt DWARF_ADD_FILE_DECL 3 -.Os -.Sh NAME -.Nm dwarf_add_file_decl -.Nd add a source file entry to a producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_file_decl -.Fa "Dwarf_P_Debug dbg" -.Fa "char *name" -.Fa "Dwarf_Unsigned dirndx" -.Fa "Dwarf_Unsigned mtime" -.Fa "Dwarf_Unsigned size" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_file_decl -adds a source file entry to a producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name of -the source file. -.Pp -If the file name in argument -.Ar name -is not a fully qualified pathname, argument -.Ar dirndx -should specify the index of the directory where the source file resides. -Otherwise, argument -.Ar dirndx -should be 0. -Valid directory indices are those returned by the function -.Xr dwarf_add_directory_decl 3 . -.Pp -Argument -.Ar mtime -specifies the time when the file was last modified. -.Pp -Argument -.Ar size -specifies the size of the file in bytes. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_file_decl -returns the index value generated for the source file. -In case of an error, function -.Fn dwarf_add_file_decl -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_file_decl -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either arguments -.Ar dbg -or -.Ar name -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The length of the NUL-teminated string pointed to by argument -.Ar name -was 0. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_directory_decl 3 , -.Xr dwarf_add_line_entry 3 , -.Xr dwarf_lne_end_sequence 3 , -.Xr dwarf_lne_set_address 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_frame_cie.3 b/contrib/elftoolchain/libdwarf/dwarf_add_frame_cie.3 deleted file mode 100644 index 9f3c9021..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_frame_cie.3 +++ /dev/null @@ -1,124 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 26, 2011 -.Dt DWARF_ADD_FRAME_CIE 3 -.Os -.Sh NAME -.Nm dwarf_add_frame_cie -.Nd add a call frame common information entry to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_frame_cie -.Fa "Dwarf_P_Debug dbg" -.Fa "char *augmenter" -.Fa "Dwarf_Small caf" -.Fa "Dwarf_Small daf" -.Fa "Dwarf_Small ra" -.Fa "Dwarf_Ptr initinst" -.Fa "Dwarf_Unsigned initlen" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_frame_cie -adds a DWARF call frame common information entry (CIE) to a producer -instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar augmenter -should point to a NUL-terminated augmentation string for the common -information entry. -.Pp -Argument -.Ar caf -specifies the code alignment factor. -.Pp -Argument -.Ar daf -specifies the data alignment factor. -.Pp -Argument -.Ar ra -specifies the column number used for the return address register. -.Pp -Argument -.Ar initinst -should point to a byte stream containing the initial instructions -for the common information entry. -.Pp -Argument -.Ar initlen -should hold the length in bytes of the byte stream pointed to by -argument -.Ar initinst . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_frame_cie -returns the index value of the created common information entry. -In case of an error, function -.Fn dwarf_add_frame_cie -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_frame_cie -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_fde_inst 3 , -.Xr dwarf_add_frame_fde 3 , -.Xr dwarf_add_frame_fde_b 3 , -.Xr dwarf_fde_cfa_offset 3 , -.Xr dwarf_new_fde 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_frame_fde.3 b/contrib/elftoolchain/libdwarf/dwarf_add_frame_fde.3 deleted file mode 100644 index f30bdd23..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_frame_fde.3 +++ /dev/null @@ -1,201 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 26, 2011 -.Dt DWARF_ADD_FRAME_FDE 3 -.Os -.Sh NAME -.Nm dwarf_add_frame_fde -.Nd add a call frame descriptor to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_frame_fde -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Fde fde" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Unsigned cie" -.Fa "Dwarf_Addr virt_addr" -.Fa "Dwarf_Unsigned code_len" -.Fa "Dwarf_Unsigned symbol_index" -.Fa "Dwarf_Error *err" -.Fc -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_frame_fde_b -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Fde fde" -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_Unsigned cie" -.Fa "Dwarf_Addr virt_addr" -.Fa "Dwarf_Unsigned code_len" -.Fa "Dwarf_Unsigned symbol_index" -.Fa "Dwarf_Unsigned end_symbol_index" -.Fa "Dwarf_Addr offset_from_end_sym" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_frame_fde_b -adds the call frame descriptor referenced by argument -.Ar fde -to a producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar fde -should reference a frame descriptor allocated using -.Xr dwarf_new_fde 3 . -.Pp -Argument -.Ar die -is ignored by this implementation of the -.Lb libdwarf . -.Pp -Argument -.Ar cie -specifies the index of call frame common information entry for -the frame descriptor. -Valid indices are those returned by the function -.Xr dwarf_add_frame_cie 3 . -.Pp -Argument -.Ar symbol_index -specifies the ELF symbol index of the first symbol to be used for -relocation. -.Pp -The meaning of the arguments -.Ar virt_addr , -.Ar code_len -and -.Ar offset_from_end_sym -depend on the value of argument -.Ar end_symbol_index : -.Bl -bullet -.It -If the argument -.Ar end_symbol_index -is zero, the argument -.Ar virt_addr -specifies the relocatable address of the start of the function -associated with the frame descriptor, the argument -.Ar code_len -specifies the size in bytes of the machine instructions for this -function, the argument -.Ar symbol_index -specifies the ELF symbol to be used for relocating the address in -argument -.Ar virt_addr , -and the argument -.Ar offset_from_end_symbol -is ignored. -.It -If the argument -.Ar end_symbol_index -is non-zero, it specifies the ELF symbol index of the second symbol to -be used for relocation. -In this case, the argument -.Ar virt_addr -specifies an offset from the relocatable symbol specified by argument -.Ar symbol_index , -the argument -.Ar offset_from_end_symbol -should specify an offset from the symbol named by the argument -.Ar end_symbol_index , -and the argument -.Ar code_len -will be ignored. -The -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -flag should also have been set on the DWARF producer instance. -.Pp -Application code can retrieve the relocation entries for the symbol -pair by calling function -.Xr dwarf_get_relocation_info 3 . -The relocation entry for the first symbol will have type -.Dv dwarf_drt_first_of_length_pair -and the relocation entry for the second symbol will have type -.Dv dwarf_drt_second_of_length_pair . -.El -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -Function -.Fn dwarf_add_frame_fde -is similar to function -.Fn dwarf_add_frame_fde_b -except that it supports only one relocation symbol. -.Sh RETURN VALUES -On success, these functions return the index value for -the added frame descriptor. -In case of an error, these functions return -.Dv DW_DLV_NOCOUNT -and set the argument -.Ar err . -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg -or -.Ar fde -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The frame descriptor referenced by argument -.Ar fde -did not belong to the producer instance referenced by argument -.Ar dbg . -.It Bq Er DW_DLE_ARGUMENT -The common information entry index specified by argument -.Ar cie -was invalid. -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar end_symbol_index -was non-zero, but the flag -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -was not set on the producer instance. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_fde_inst 3 , -.Xr dwarf_add_frame_cie 3 , -.Xr dwarf_fde_cfa_offset 3 , -.Xr dwarf_get_relocation_info 3 , -.Xr dwarf_new_fde 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_funcname.3 b/contrib/elftoolchain/libdwarf/dwarf_add_funcname.3 deleted file mode 100644 index 965ec6a4..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_funcname.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 24, 2011 -.Dt DWARF_ADD_FUNCNAME 3 -.Os -.Sh NAME -.Nm dwarf_add_funcname -.Nd add information about a static function to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_funcname -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_funcname -adds information about a static function to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -specifies the debugging information entry associated with the static -function. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the static function. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_funcname -returns a non-zero value. -In case of an error, function -.Fn dwarf_add_funcname -returns 0 and sets -the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_funcname -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_pubname 3 , -.Xr dwarf_add_typename 3 , -.Xr dwarf_add_varname 3 , -.Xr dwarf_add_weakname 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_line_entry.3 b/contrib/elftoolchain/libdwarf/dwarf_add_line_entry.3 deleted file mode 100644 index cd7ac8e1..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_line_entry.3 +++ /dev/null @@ -1,164 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 30, 2013 -.Dt DWARF_ADD_LINE_ENTRY 3 -.Os -.Sh NAME -.Nm dwarf_add_line_entry -.Nd add a line number information entry to a producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_line_entry -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Unsigned filendx" -.Fa "Dwarf_Addr off" -.Fa "Dwarf_Unsigned lineno" -.Fa "Dwarf_Signed column" -.Fa "Dwarf_Bool is_stmt" -.Fa "Dwarf_Bool basic_block" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_line_entry -adds a line number information entry to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar filendx -specifies the index of the source file that contains the source line -in question. -Valid source file indices are those returned by the function -.Xr dwarf_add_file_decl 3 . -.Pp -Argument -.Ar off -specifies a relocatable program address. -The ELF symbol to be used -for relocation is set by a prior call to the function -.Xr dwarf_lne_set_address 3 . -.Pp -Argument -.Ar lineno -specifies the line number of the source line. -.Pp -Argument -.Ar column -specifies the column number within the source line. -.Pp -If the argument -.Ar is_stmt -is set to true, it indicates that the instruction at the address -specified by argument -.Ar off -is a recommended breakpoint location, i.e., the first instruction in -the instruction sequence generated by the source line. -.Pp -If the argument -.Ar basic_block -is set to true, it indicates that the instruction at the address -specified by argument -.Ar off -is the first instruction of a basic block. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_line_entry -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_add_line_entry -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh EXAMPLES -To add line number information to the producer instance, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Error de; -Dwarf_Unsigned dir, filendx; - -/* ... assume dbg refers to a DWARF producer instance ... */ - -dir = dwarf_add_directory_decl(dbg, "/home/foo", &de); -if (dir == DW_DLV_NOCOUNT) - errx(EXIT_FAILURE, "dwarf_add_directory_decl failed: %s", - dwarf_errmsg(-1)); - -filendx = dwarf_add_file_decl(dbg, "bar.c", dir, 0, 1234, &de); -if (filendx == DW_DLV_NOCOUNT) - errx(EXIT_FAILURE, "dwarf_add_file_decl failed: %s", - dwarf_errmsg(-1)); - -if (dwarf_lne_set_address(dbg, 0x4012b0, 12, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_lne_set_address failed: %s", - dwarf_errmsg(-1)); - -if (dwarf_add_line_entry(dbg, filendx, 10, 258, 0, 1, 1, &de) != - DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_add_line_entry failed: %s", - dwarf_errmsg(-1)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_add_line_entry -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The function -.Xr dwarf_lne_set_address 3 -was not called before calling this function. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_directory_decl 3 , -.Xr dwarf_add_file_decl 3 , -.Xr dwarf_lne_end_sequence 3 , -.Xr dwarf_lne_set_address 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_pubname.3 b/contrib/elftoolchain/libdwarf/dwarf_add_pubname.3 deleted file mode 100644 index 295bcbbe..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_pubname.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 24, 2011 -.Dt DWARF_ADD_PUBNAME 3 -.Os -.Sh NAME -.Nm dwarf_add_pubname -.Nd add information about a global object to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_pubname -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_pubname -adds information about a global object to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -specifies the debugging information entry associated with the global -object. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the global object. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_pubname -returns a non-zero value. -In case of an error, function -.Fn dwarf_add_pubname -returns 0 and sets -the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_pubname -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_funcname 3 , -.Xr dwarf_add_typename 3 , -.Xr dwarf_add_varname 3 , -.Xr dwarf_add_weakname 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_typename.3 b/contrib/elftoolchain/libdwarf/dwarf_add_typename.3 deleted file mode 100644 index 219abdb5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_typename.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 24, 2011 -.Dt DWARF_ADD_TYPENAME 3 -.Os -.Sh NAME -.Nm dwarf_add_typename -.Nd add information about a user-defined type to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_typename -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_typename -adds information about a user-defined type to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -specifies the debugging information entry associated with the -user-defined type. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the user-defined type. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_typename -returns a non-zero value. -In case of an error, function -.Fn dwarf_add_typename -returns 0 and sets -the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_typename -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_funcname 3 , -.Xr dwarf_add_pubname 3 , -.Xr dwarf_add_varname 3 , -.Xr dwarf_add_weakname 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_varname.3 b/contrib/elftoolchain/libdwarf/dwarf_add_varname.3 deleted file mode 100644 index d862d7bf..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_varname.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 24, 2011 -.Dt DWARF_ADD_VARNAME 3 -.Os -.Sh NAME -.Nm dwarf_add_varname -.Nd add information about a static variable to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_varname -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_varname -adds information about a static variable to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -specifies the debugging information entry associated with the static -variable. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the static variable. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_varname -returns a non-zero value. -In case of an error, function -.Fn dwarf_add_varname -returns 0 and sets -the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_varname -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_funcname 3 , -.Xr dwarf_add_pubname 3 , -.Xr dwarf_add_typename 3 , -.Xr dwarf_add_weakname 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_add_weakname.3 b/contrib/elftoolchain/libdwarf/dwarf_add_weakname.3 deleted file mode 100644 index 33c957fd..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_add_weakname.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 24, 2011 -.Dt DWARF_ADD_WEAKNAME 3 -.Os -.Sh NAME -.Nm dwarf_add_weakname -.Nd add information about a weak object to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_add_weakname -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_P_Die die" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_add_weakname -adds information about a weak object to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar die -specifies the debugging information entry associated with the weak -object. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the weak object. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_add_weakname -returns a non-zero value. -In case of an error, function -.Fn dwarf_add_weakname -returns 0 and sets -the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_add_weakname -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar die -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_funcname 3 , -.Xr dwarf_add_pubname 3 , -.Xr dwarf_add_typename 3 , -.Xr dwarf_add_varname 3 , -.Xr dwarf_new_die 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_arange.c b/contrib/elftoolchain/libdwarf/dwarf_arange.c deleted file mode 100644 index a8d82f25..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_arange.c +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_get_aranges(Dwarf_Debug dbg, Dwarf_Arange **arlist, - Dwarf_Signed *ret_arange_cnt, Dwarf_Error *error) -{ - - if (dbg == NULL || arlist == NULL || ret_arange_cnt == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (dbg->dbg_arange_cnt == 0) { - if (_dwarf_arange_init(dbg, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - if (dbg->dbg_arange_cnt == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - } - - assert(dbg->dbg_arange_array != NULL); - - *arlist = dbg->dbg_arange_array; - *ret_arange_cnt = dbg->dbg_arange_cnt; - - return (DW_DLV_OK); -} - -int -dwarf_get_arange(Dwarf_Arange *arlist, Dwarf_Unsigned arange_cnt, - Dwarf_Addr addr, Dwarf_Arange *ret_arange, Dwarf_Error *error) -{ - Dwarf_Arange ar; - Dwarf_Debug dbg; - int i; - - if (arlist == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - dbg = (*arlist)->ar_as->as_cu->cu_dbg; - - if (ret_arange == NULL || arange_cnt == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - for (i = 0; (Dwarf_Unsigned)i < arange_cnt; i++) { - ar = arlist[i]; - if (addr >= ar->ar_address && addr < ar->ar_address + - ar->ar_range) { - *ret_arange = ar; - return (DW_DLV_OK); - } - } - - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - - return (DW_DLV_NO_ENTRY); -} - -int -dwarf_get_cu_die_offset(Dwarf_Arange ar, Dwarf_Off *ret_offset, - Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_ArangeSet as; - - if (ar == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - as = ar->ar_as; - assert(as != NULL); - cu = as->as_cu; - assert(cu != NULL); - - if (ret_offset == NULL) { - DWARF_SET_ERROR(cu->cu_dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_offset = cu->cu_1st_offset; - - return (DW_DLV_OK); -} - -int -dwarf_get_arange_cu_header_offset(Dwarf_Arange ar, Dwarf_Off *ret_offset, - Dwarf_Error *error) -{ - Dwarf_ArangeSet as; - - if (ar == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - as = ar->ar_as; - assert(as != NULL); - - if (ret_offset == NULL) { - DWARF_SET_ERROR(as->as_cu->cu_dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_offset = as->as_cu_offset; - - return (DW_DLV_OK); -} - -int -dwarf_get_arange_info(Dwarf_Arange ar, Dwarf_Addr *start, - Dwarf_Unsigned *length, Dwarf_Off *cu_die_offset, Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_ArangeSet as; - - if (ar == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - as = ar->ar_as; - assert(as != NULL); - cu = as->as_cu; - assert(cu != NULL); - - if (start == NULL || length == NULL || - cu_die_offset == NULL) { - DWARF_SET_ERROR(cu->cu_dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *start = ar->ar_address; - *length = ar->ar_range; - *cu_die_offset = cu->cu_1st_offset; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_attr.3 b/contrib/elftoolchain/libdwarf/dwarf_attr.3 deleted file mode 100644 index 5caed159..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_attr.3 +++ /dev/null @@ -1,121 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 8, 2010 -.Dt DWARF_ATTR 3 -.Os -.Sh NAME -.Nm dwarf_attr -.Nd retrieve an attribute descriptor associated with a DWARF debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_attr -.Fa "Dwarf_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Attribute *atp" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_attr -retrieves the attribute descriptor for an attribute associated -with the DWARF debugging information entry descriptor in -argument -.Ar die . -.Pp -DWARF attribute descriptors are represented by value of the opaque -type -.Vt Dwarf_Attribute , -see -.Xr dwarf 3 . -.Pp -Argument -.Ar attr -names the desired DWARF attribute. -Legal values for argument -.Ar attr -are those denoted by the -.Dv DW_AT_* -constants in the DWARF specification. -.Pp -Argument -.Ar atp -points to a location into which the returned attribute descriptor -will be written. -The returned descriptor may then be passed to the form query functions in the -.Xr dwarf 3 -API set to access the data associated with the attribute. -.Pp -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_attr -returns -.Dv DW_DLV_OK -on success. -.Pp -If the debugging information entry descriptor denoted by argument -.Ar die -does not contain the named attribute, the function returns -.Dv DW_DLV_NO_ENTRY -and sets argument -.Ar err . -For other errors, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_attr -can fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar die -or -.Ar atp -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar die -had no attribute corresponding to the value -in argument -.Ar attr . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attrlist 3 , -.Xr dwarf_attroffset 3 , -.Xr dwarf_hasattr 3 , -.Xr dwarf_hasform 3 , -.Xr dwarf_whatattr 3 , -.Xr dwarf_whatform 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_attr.c b/contrib/elftoolchain/libdwarf/dwarf_attr.c deleted file mode 100644 index 8bb9a02c..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_attr.c +++ /dev/null @@ -1,312 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_attr(Dwarf_Die die, Dwarf_Half attr, Dwarf_Attribute *atp, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Attribute at; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || atp == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, attr)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *atp = at; - - return (DW_DLV_OK); -} - -int -dwarf_attrlist(Dwarf_Die die, Dwarf_Attribute **attrbuf, - Dwarf_Signed *attrcount, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - int i; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || attrbuf == NULL || attrcount == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (die->die_ab->ab_atnum == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *attrcount = die->die_ab->ab_atnum; - - if (die->die_attrarray != NULL) { - *attrbuf = die->die_attrarray; - return (DW_DLV_OK); - } - - if ((die->die_attrarray = malloc(*attrcount * sizeof(Dwarf_Attribute))) - == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - - for (i = 0, at = STAILQ_FIRST(&die->die_attr); - i < *attrcount && at != NULL; i++, at = STAILQ_NEXT(at, at_next)) - die->die_attrarray[i] = at; - - *attrbuf = die->die_attrarray; - - return (DW_DLV_OK); -} - -int -dwarf_hasattr(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *ret_bool, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_bool == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_bool = (_dwarf_attr_find(die, attr) != NULL); - - return (DW_DLV_OK); -} - -int -dwarf_attroffset(Dwarf_Attribute at, Dwarf_Off *ret_off, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || ret_off == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_off = at->at_offset; - - return (DW_DLV_OK); -} - -int -dwarf_lowpc(Dwarf_Die die, Dwarf_Addr *ret_lowpc, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_lowpc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_low_pc)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_lowpc = at->u[0].u64; - - return (DW_DLV_OK); -} - -int -dwarf_highpc(Dwarf_Die die, Dwarf_Addr *ret_highpc, Dwarf_Error *error) -{ - - return (dwarf_highpc_b(die, ret_highpc, NULL, NULL, error)); -} - -int -dwarf_highpc_b(Dwarf_Die die, Dwarf_Addr *ret_highpc, Dwarf_Half *ret_form, - enum Dwarf_Form_Class *ret_class, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - Dwarf_CU cu; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_highpc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_high_pc)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_highpc = at->u[0].u64; - - if (ret_form != NULL) { - *ret_form = at->at_form; - } - - if (ret_class != NULL) { - cu = die->die_cu; - *ret_class = dwarf_get_form_class(cu->cu_version, - DW_AT_high_pc, cu->cu_length_size == 4 ? 4 : 8, - at->at_form); - } - - return (DW_DLV_OK); -} - -int -dwarf_bytesize(Dwarf_Die die, Dwarf_Unsigned *ret_size, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_size == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_byte_size)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_size = at->u[0].u64; - - return (DW_DLV_OK); -} - -int -dwarf_bitsize(Dwarf_Die die, Dwarf_Unsigned *ret_size, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_size == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_bit_size)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_size = at->u[0].u64; - - return (DW_DLV_OK); -} - -int -dwarf_bitoffset(Dwarf_Die die, Dwarf_Unsigned *ret_size, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_size == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_bit_offset)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_size = at->u[0].u64; - - return (DW_DLV_OK); -} - -int -dwarf_srclang(Dwarf_Die die, Dwarf_Unsigned *ret_lang, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_lang == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_language)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_lang = at->u[0].u64; - - return (DW_DLV_OK); -} - -int -dwarf_arrayorder(Dwarf_Die die, Dwarf_Unsigned *ret_order, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_order == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_ordering)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_order = at->u[0].u64; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_attrlist.3 b/contrib/elftoolchain/libdwarf/dwarf_attrlist.3 deleted file mode 100644 index 0c1c194e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_attrlist.3 +++ /dev/null @@ -1,147 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_ATTRLIST 3 -.Os -.Sh NAME -.Nm dwarf_attrlist -.Nd retrieve DWARF attribute descriptors -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_attrlist -.Fa "Dwarf_Die die" -.Fa "Dwarf_Attribute **attrbuf" -.Fa "Dwarf_Signed *attrcount" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_attrlist -retrieves the DWARF attribute descriptors associated with a -debugging information entry descriptor in argument -.Ar die . -The descriptors are returned as an array of values of the opaque type -.Vt Dwarf_Attribute . -The data associated with each returned attribute descriptor may be -queried using the form query functions in the -.Xr dwarf 3 -API set. -.Pp -Argument -.Ar attrbuf -points to a location that will hold a pointer to the returned -array of DWARF attribute descriptors. -Argument -.Ar attrcount -points to a location that will hold the number of descriptors in -the returned array. -.Pp -If argument -.Ar err -is non-NULL, it is used to return an error descriptor in case of an -error. -.Ss Memory Management -In the current implementation, the memory allocated for each DWARF -attribute descriptor and for the returned array of descriptors is -managed by the library and the application does not need to explicitly -free the returned pointers. -However, for compatibility with other implementations of the -.Xr dwarf 3 -API, the application is permitted to pass the pointers returned by to -the -.Fn dwarf_dealloc -function. -.Sh RETURN VALUES -Function -.Fn dwarf_attrlist -returns -.Dv DW_DLV_OK -on success. -.Pp -If the debugging information entry descriptor denoted by argument -.Ar die -does not contain any attribute, the function returns -.Dv DW_DLV_NO_ENTRY -and sets argument -.Ar err . -For other errors, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh EXAMPLES -To retrieve the attribute list for a DWARF debugging information -entry use: -.Bd -literal -offset indent -Dwarf_Die dw_die; -Dwarf_Error dw_e; -Dwarf_Unsigned dw_count; -Dwarf_Attribute *dw_attributes; -int error, i; - -\&... variable dw_die contains a reference to the DIE of interest ... - -/* Retrieve the attribute list from the DIE. */ -if ((error = dwarf_attrlist(dw_die, &dw_attributes, &dw_count, - &dw_e)) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_attrlist: %s", dwarf_errmsg(dw_e)); - -/* Process the attribute list. */ -for (i = 0; i < dw_count; ++i) { - /* Use the returned pointers in dw_attributes[i] here. */ -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_diename -can fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Arguments -.Ar die , -.Ar attrbuf , -or -.Ar attrcount -were NULL. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar die -had no attributes. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_hasattr 3 , -.Xr dwarf_hasform 3 , -.Xr dwarf_whatattr 3 , -.Xr dwarf_whatform 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 b/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 deleted file mode 100644 index bc9eee57..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_attroffset.3 +++ /dev/null @@ -1,86 +0,0 @@ -.\" Copyright (c) 2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 20, 2014 -.Dt DWARF_ATTROFFSET 3 -.Os -.Sh NAME -.Nm dwarf_attroffset -.Nd retrieve the section-relative offset of an attribute descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_attroffset -.Fa "Dwarf_Attribute at" -.Fa "Dwarf_Off *ret_off" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_attroffset -retrieves the section-relative offset of the attribute descriptor -referenced by argument -.Ar at . -.Pp -Argument -.Ar ret_off -should point to a location that is to hold the returned -section-relative offset. -If argument -.Ar err -is non-NULL, it is used to return an error descriptor in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_attroffset -returns -.Dv DW_DLV_OK . -.Pp -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh COMPATIBILITY -This function is an extension to the -.Xr DWARF 3 -API. -.Sh ERRORS -The -.Fn dwarf_attroffset -function may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar at -or -.Ar ret_off -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_attrval.c b/contrib/elftoolchain/libdwarf/dwarf_attrval.c deleted file mode 100644 index f07b2956..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_attrval.c +++ /dev/null @@ -1,222 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *valp, Dwarf_Error *err) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || valp == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *valp = 0; - - if ((at = _dwarf_attr_find(die, attr)) == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - switch (at->at_form) { - case DW_FORM_flag: - case DW_FORM_flag_present: - *valp = (Dwarf_Bool) (!!at->u[0].u64); - break; - default: - DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - - return (DW_DLV_OK); -} - -int -dwarf_attrval_string(Dwarf_Die die, Dwarf_Half attr, const char **strp, Dwarf_Error *err) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || strp == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *strp = NULL; - - if ((at = _dwarf_attr_find(die, attr)) == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - switch (at->at_form) { - case DW_FORM_strp: - *strp = at->u[1].s; - break; - case DW_FORM_string: - *strp = at->u[0].s; - break; - default: - DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - - return (DW_DLV_OK); -} - -int -dwarf_attrval_signed(Dwarf_Die die, Dwarf_Half attr, Dwarf_Signed *valp, Dwarf_Error *err) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || valp == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *valp = 0; - - if ((at = _dwarf_attr_find(die, attr)) == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - switch (at->at_form) { - case DW_FORM_data1: - *valp = (int8_t) at->u[0].s64; - break; - case DW_FORM_data2: - *valp = (int16_t) at->u[0].s64; - break; - case DW_FORM_data4: - *valp = (int32_t) at->u[0].s64; - break; - case DW_FORM_data8: - case DW_FORM_sdata: - *valp = at->u[0].s64; - break; - default: - DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - - return (DW_DLV_OK); -} - -int -dwarf_attrval_unsigned(Dwarf_Die die, Dwarf_Half attr, Dwarf_Unsigned *valp, Dwarf_Error *err) -{ - Dwarf_Attribute at; - Dwarf_Die die1; - Dwarf_Unsigned val; - Dwarf_Debug dbg; - int first; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || valp == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *valp = 0; - - die1 = NULL; - for (;;) { - if ((at = _dwarf_attr_find(die, attr)) != NULL || - attr != DW_AT_type) - break; - if ((at = _dwarf_attr_find(die, DW_AT_abstract_origin)) == - NULL && - (at = _dwarf_attr_find(die, DW_AT_specification)) == NULL) - break; - - switch (at->at_form) { - case DW_FORM_ref1: - case DW_FORM_ref2: - case DW_FORM_ref4: - case DW_FORM_ref8: - case DW_FORM_ref_udata: - val = at->u[0].u64; - first = (die1 == NULL); - die1 = _dwarf_die_find(die, val); - if (!first) - dwarf_dealloc(dbg, die, DW_DLA_DIE); - if (die1 == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - die = die1; - break; - default: - DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - } - - if (at == NULL) { - DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - switch (at->at_form) { - case DW_FORM_addr: - case DW_FORM_data1: - case DW_FORM_data2: - case DW_FORM_data4: - case DW_FORM_data8: - case DW_FORM_udata: - case DW_FORM_ref1: - case DW_FORM_ref2: - case DW_FORM_ref4: - case DW_FORM_ref8: - case DW_FORM_ref_udata: - *valp = at->u[0].u64; - break; - default: - if (die1 != NULL) - dwarf_dealloc(dbg, die1, DW_DLA_DIE); - DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - - if (die1 != NULL) - dwarf_dealloc(dbg, die1, DW_DLA_DIE); - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 b/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 deleted file mode 100644 index c82b1823..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_attrval_signed.3 +++ /dev/null @@ -1,225 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 26, 2016 -.Dt DWARF_ATTRVAL_SIGNED 3 -.Os -.Sh NAME -.Nm dwarf_attrval_flag , -.Nm dwarf_attrval_signed , -.Nm dwarf_attrval_string , -.Nm dwarf_attrval_unsigned -.Nd retrieve the value of an attribute within a DWARF debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_attrval_flag -.Fa "Dwarf_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Bool *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_attrval_signed -.Fa "Dwarf_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Signed *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_attrval_string -.Fa "Dwarf_Die die" -.Fa "Dwarf_Half attr" -.Fa "const char **ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_attrval_unsigned -.Fa "Dwarf_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Unsigned *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions search the debugging information entry referenced -by argument -.Ar die -for the attribute named by argument -.Ar attr . -If the named attribute is found, the functions set the location -pointed to by argument -.Ar ret -to the value of the attribute. -The argument -.Ar err , -if non NULL, -will be used to return an error descriptor in case of an error. -.Pp -Function -.Fn dwarf_attrval_flag -sets the location pointed to by argument -.Ar ret -to either 0 or 1. If the form of the attribute named by argument -.Ar attr -is -.Dv DW_FORM_flag , -function -.Fn dwarf_attrval_flag -sets the location pointed to by argument -.Ar ret -to 1 if the attribute has a non-zero value, or to 0 otherwise. -If the form of the attribute named by argument -.Ar attr -is -.Dv DW_FORM_flag_present , -function -.Fn dwarf_attrval_flag -unconditionally sets the location pointed to by argument -.Ar ret -to 1. -The form of the attribute must be one of -.Dv DW_FORM_flag -or -.Dv DW_FORM_flag_present . -.Pp -Function -.Fn dwarf_attrval_signed -stores the value for the attribute named by argument -.Ar attr , -into the location pointed to by argument -.Ar ret . -The attribute's value is treated as a signed integral quantity and is -sign-extended as needed. -The attribute named by the argument -.Ar attr -must belong to the -.Dv CONSTANT -class and must have one of the following forms: -.Dv DW_FORM_data1 , -.Dv DW_FORM_data2 , -.Dv DW_FORM_data4 , -.Dv DW_FORM_data8 -or -.Dv DW_FORM_sdata . -.Pp -Function -.Fn dwarf_attrval_string -sets the location pointed to by argument -.Ar ret -to a pointer to a NUL-terminated string that is the value of the -attribute named by argument -.Ar attr . -The form of the attribute must be one of -.Dv DW_FORM_string -or -.Dv DW_FORM_strp . -.Pp -Function -.Fn dwarf_attrval_unsigned -stores the value for the attribute named by argument -.Ar attr -into the location pointed to by argument -.Ar ret . -The attribute's value is treated as an unsigned integral quantity, and -is zero-extended as needed. -The named attribute must belong to one of the -.Dv CONSTANT , -.Dv ADDRESS -or -.Dv REFERENCE -classes and must have one of the following forms: -.Dv DW_FORM_addr , -.Dv DW_FORM_data1 , -.Dv DW_FORM_data2 , -.Dv DW_FORM_data4 , -.Dv DW_FORM_data8 , -.Dv DW_FORM_udata , -.Dv DW_FORM_ref1 , -.Dv DW_FORM_ref2 , -.Dv DW_FORM_ref4 , -.Dv DW_FORM_ref8 , -or -.Dv DW_FORM_ref_udata . -.Pp -If the attribute named by argument -.Ar attr -is -.Dv DW_AT_type -and is not present in the debugging information entry referenced by argument -.Ar die , -and if a -.Dv DW_AT_abstract_origin -or -.Dv DW_AT_specification -attribute is present in the debugging information entry, -function -.Fn dwarf_attrval_unsigned -will search for the named attribute in the debugging information entry -referenced by the -.Dv DW_AT_abstract_origin -or -.Dv DW_AT_specification -attribute. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -If the named attribute was not found in the specified debugging -information entry descriptor these functions return -.Dv DW_DLV_NO_ENTRY -and set argument -.Ar err . -For other errors, these functions return -.Dv DW_DLV_ERROR -and set argument -.Ar err . -.Sh COMPATIBILITY -These functions are extensions added by this implementation of the -DWARF(3) API. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Va die -or -.Va ret -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar die -did not contain an attribute corresponding to the value in argument -.Ar attr . -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute named by argument -.Ar attr -was not of a permitted form. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_child.3 b/contrib/elftoolchain/libdwarf/dwarf_child.3 deleted file mode 100644 index 87fc53e5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_child.3 +++ /dev/null @@ -1,278 +0,0 @@ -.\" Copyright (c) 2010,2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 21, 2014 -.Dt DWARF_CHILD 3 -.Os -.Sh NAME -.Nm dwarf_child , -.Nm dwarf_offdie , -.Nm dwarf_offdie_b , -.Nm dwarf_siblingof , -.Nm dwarf_siblingof_b -.Nd retrieve DWARF Debugging Information Entry descriptors -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fn dwarf_child "Dwarf_Die die" "Dwarf_Die *ret_die" "Dwarf_Error *err" -.Ft int -.Fo dwarf_offdie -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off offset" -.Fa "Dwarf_Die *ret_die" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_offdie_b -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off offset" -.Fa "Dwarf_Bool is_info" -.Fa "Dwarf_Die *ret_die" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_siblingof -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Die die" -.Fa "Dwarf_Die *ret_die" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_siblingof_b -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Die die" -.Fa "Dwarf_Die *ret_die" -.Fa "Dwarf_Bool is_info" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions are used to retrieve and traverse DWARF -Debugging Information Entry (DIE) descriptors associated with -a compilation unit. -These descriptors are arranged in the form of a tree, traversable -using -.Dq child -and -.Dq sibling -links; see -.Xr dwarf 3 -for more information. -DWARF Debugging Information Entry descriptors are represented -by the -.Vt Dwarf_Die -opaque type. -.Pp -Function -.Fn dwarf_child -retrieves the child of descriptor denoted by argument -.Ar die , -and stores it in the location pointed to by argument -.Ar ret_die . -.Pp -Function -.Fn dwarf_siblingof -retrieves the sibling of the descriptor denoted by argument -.Ar die , -and stores it in the location pointed to by argument -.Ar ret_die . -If argument -.Ar die -is NULL, the first debugging information entry descriptor for the -current compilation unit will be returned. -This function and function -.Fn dwarf_child -may be used together to traverse the tree of debugging information -entry descriptors for a compilation unit. -.Pp -Function -.Fn dwarf_siblingof_b -is identical to the function -.Fn dwarf_siblingof -except that it can retrieve the sibling descriptor from either the -current compilation unit or type unit. -If argument -.Ar is_info -is non-zero, the function behaves identically to function -.Fn dwarf_siblingof . -If argument -.Ar is_info -is zero, the descriptor referred by argument -.Ar die -should be associated with a debugging information entry in the -type unit. -The function will store the sibling of the descriptor in the location -pointed to by argument -.Ar ret_die . -If argument -.Ar is_info -is zero and argument -.Ar die -is -.Dv NULL , -the first debugging information entry descriptor for the -current type unit will be returned. -.Pp -Function -.Fn dwarf_offdie -retrieves the debugging information entry descriptor at global offset -.Ar offset -in the -.Dq .debug_info -section of the object associated with argument -.Ar dbg . -The returned descriptor is written to the location pointed to by argument -.Ar ret_die . -.Pp -Function -.Fn dwarf_offdie_b -is identical to the function -.Fn dwarf_offdie -except that it can retrieve the debugging information entry descriptor at -global offset -.Ar offset -from either of the -.Dq .debug_info -and -.Dq .debug_types -sections of the object associated with argument -.Ar dbg . -If argument -.Ar is_info -is non-zero, the function will retrieve the debugging information -entry from the -.Dq .debug_info -section, otherwise the function will retrieve the debugging -information entry from the -.Dq .debug_types -section. -The returned descriptor is written to the location pointed to by argument -.Ar ret_die . -.Ss Memory Management -The memory area used for the -.Vt Dwarf_Die -descriptor returned in argument -.Ar ret_die -is allocated by the -.Lb libdwarf . -Application code should use function -.Fn dwarf_dealloc -with the allocation type -.Dv DW_DLA_DIE -to free the memory area when the -.Vt Dwarf_Die -descriptor is no longer needed. -.Sh RETURN VALUES -These functions return the following values: -.Bl -tag -width ".Bq Er DW_DLV_NO_ENTRY" -.It Bq Er DW_DLV_OK -The call succeeded. -.It Bq Er DW_DLV_ERROR -The requested operation failed. -Additional information about the error encountered will be recorded in -argument -.Ar err , -if it is not NULL. -.It Bq Er DW_DLV_NO_ENTRY -For functions -.Fn dwarf_child , -.Fn dwarf_siblingof -and -.Fn dwarf_siblingof_b , -the descriptor denoted by argument -.Ar die -did not have a child or sibling. -.Pp -For functions -.Fn dwarf_offdie -and -.Fn dwarf_offdie_b , -there was no debugging information entry at the offset specified by -argument -.Ar offset . -.El -.Sh EXAMPLES -To retrieve the first DWARF Debugging Information Entry descriptor for -the first compilation unit associated with a -.Vt Dwarf_Debug -instance, and to traverse all its children, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Die die, die0; -Dwarf_Error de; - -\&... allocate dbg using dwarf_init() etc ... - -if (dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, &de) != - DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_next_cu_header: %s", - dwarf_errmsg(de)); - -/* Get the first DIE for the current compilation unit. */ -die = NULL; -if (dwarf_siblingof(dbg, die, &die0, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_siblingof: %s", dwarf_errmsg(de)); - -/* Get the first child of this DIE. */ -die = die0; -if (dwarf_child(die, &die0, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_child: %s", dwarf_errmsg(de)); - -/* Get the rest of children. */ -do { - die = die0; - if (dwarf_siblingof(dbg, die, &die0, &de) == DW_DLV_ERROR) - errx(EXIT_FAILURE, "dwarf_siblingof: %s", - dwarf_errmsg(de)); -} while (die0 != NULL); -.Ed -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_DIE_NO_CU_CONTEXT" -.It Bq Er DW_DLE_ARGUMENT -Arguments -.Ar dbg , -.Ar die -or -.Ar ret_die -were NULL. -.It Bq Er DW_DLE_DIE_NO_CU_CONTEXT -Argument -.Ar dbg -was not associated with a compilation unit. -.It Bq Er DW_DLE_NO_ENTRY -The descriptor denoted by argument -.Ar die -had no child or sibling, or there was no DWARF debugging information -entry at the offset specified by argument -.Va offset . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_errmsg 3 , -.Xr dwarf_get_die_infotypes_flag 3 , -.Xr dwarf_next_cu_header 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_cu.c b/contrib/elftoolchain/libdwarf/dwarf_cu.c deleted file mode 100644 index 90544c81..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_cu.c +++ /dev/null @@ -1,161 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_next_cu_header_c(Dwarf_Debug dbg, Dwarf_Bool is_info, - Dwarf_Unsigned *cu_length, Dwarf_Half *cu_version, - Dwarf_Off *cu_abbrev_offset, Dwarf_Half *cu_pointer_size, - Dwarf_Half *cu_offset_size, Dwarf_Half *cu_extension_size, - Dwarf_Sig8 *type_signature, Dwarf_Unsigned *type_offset, - Dwarf_Unsigned *cu_next_offset, Dwarf_Error *error) -{ - Dwarf_CU cu; - int ret; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (is_info) { - if (dbg->dbg_cu_current == NULL) - ret = _dwarf_info_first_cu(dbg, error); - else - ret = _dwarf_info_next_cu(dbg, error); - } else { - if (dbg->dbg_tu_current == NULL) - ret = _dwarf_info_first_tu(dbg, error); - else - ret = _dwarf_info_next_tu(dbg, error); - } - - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - if (is_info) { - if (dbg->dbg_cu_current == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - cu = dbg->dbg_cu_current; - } else { - if (dbg->dbg_tu_current == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - cu = dbg->dbg_tu_current; - } - - if (cu_length) - *cu_length = cu->cu_length; - if (cu_version) - *cu_version = cu->cu_version; - if (cu_abbrev_offset) - *cu_abbrev_offset = (Dwarf_Off) cu->cu_abbrev_offset; - if (cu_pointer_size) - *cu_pointer_size = cu->cu_pointer_size; - if (cu_offset_size) { - if (cu->cu_length_size == 4) - *cu_offset_size = 4; - else - *cu_offset_size = 8; - } - if (cu_extension_size) { - if (cu->cu_length_size == 4) - *cu_extension_size = 0; - else - *cu_extension_size = 4; - } - if (cu_next_offset) - *cu_next_offset = cu->cu_next_offset; - - if (!is_info) { - if (type_signature) - *type_signature = cu->cu_type_sig; - if (type_offset) - *type_offset = cu->cu_type_offset; - } - - return (DW_DLV_OK); -} - - -int -dwarf_next_cu_header_b(Dwarf_Debug dbg, Dwarf_Unsigned *cu_length, - Dwarf_Half *cu_version, Dwarf_Off *cu_abbrev_offset, - Dwarf_Half *cu_pointer_size, Dwarf_Half *cu_offset_size, - Dwarf_Half *cu_extension_size, Dwarf_Unsigned *cu_next_offset, - Dwarf_Error *error) -{ - - return (dwarf_next_cu_header_c(dbg, 1, cu_length, cu_version, - cu_abbrev_offset, cu_pointer_size, cu_offset_size, - cu_extension_size, NULL, NULL, cu_next_offset, error)); -} - -int -dwarf_next_cu_header(Dwarf_Debug dbg, Dwarf_Unsigned *cu_length, - Dwarf_Half *cu_version, Dwarf_Off *cu_abbrev_offset, - Dwarf_Half *cu_pointer_size, Dwarf_Unsigned *cu_next_offset, - Dwarf_Error *error) -{ - - return (dwarf_next_cu_header_b(dbg, cu_length, cu_version, - cu_abbrev_offset, cu_pointer_size, NULL, NULL, cu_next_offset, - error)); -} - -int -dwarf_next_types_section(Dwarf_Debug dbg, Dwarf_Error *error) -{ - - /* Free resource allocated for current .debug_types section. */ - _dwarf_type_unit_cleanup(dbg); - dbg->dbg_types_loaded = 0; - dbg->dbg_types_off = 0; - - /* Reset type unit pointer. */ - dbg->dbg_tu_current = NULL; - - /* Search for the next .debug_types section. */ - dbg->dbg_types_sec = _dwarf_find_next_types_section(dbg, - dbg->dbg_types_sec); - - if (dbg->dbg_types_sec == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_dealloc.3 b/contrib/elftoolchain/libdwarf/dwarf_dealloc.3 deleted file mode 100644 index a3d7c500..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_dealloc.3 +++ /dev/null @@ -1,203 +0,0 @@ -.\" Copyright (c) 2009-2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd July 23, 2011 -.Dt DWARF_DEALLOC 3 -.Os -.Sh NAME -.Nm dwarf_dealloc , -.Nm dwarf_fde_cie_list_dealloc , -.Nm dwarf_funcs_dealloc , -.Nm dwarf_globals_dealloc , -.Nm dwarf_pubtypes_dealloc , -.Nm dwarf_ranges_dealloc , -.Nm dwarf_srclines_dealloc , -.Nm dwarf_types_dealloc , -.Nm dwarf_vars_dealloc , -.Nm dwarf_weaks_dealloc -.Nd release resources -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft void -.Fo dwarf_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Ptr ptr" -.Fa "Dwarf_Unsigned type" -.Fc -.Fo dwarf_fde_cie_list_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Cie *cie_list" -.Fa "Dwarf_Signed cie_count" -.Fa "Dwarf_Fde *fde_list" -.Fa "Dwarf_Signed fde_count" -.Fc -.Ft void -.Fo dwarf_funcs_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Func *funcs" -.Fa "Dwarf_Signed funccount" -.Fc -.Ft void -.Fo dwarf_globals_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Global *globals" -.Fa "Dwarf_Signed globalcount" -.Fc -.Ft void -.Fo dwarf_pubtypes_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Type *pubtypes" -.Fa "Dwarf_Signed pubtypecount" -.Fc -.Ft void -.Fo dwarf_ranges_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Ranges *ranges" -.Fa "Dwarf_Signed rangecount" -.Fc -.Ft void -.Fo dwarf_srclines_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Line *lines" -.Fa "Dwarf_Signed linecount" -.Fc -.Ft void -.Fo dwarf_types_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Type *types" -.Fa "Dwarf_Signed typecount" -.Fc -.Ft void -.Fo dwarf_vars_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Var *vars" -.Fa "Dwarf_Signed varcount" -.Fc -.Ft void -.Fo dwarf_weaks_dealloc -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Weak *weaks" -.Fa "Dwarf_Signed weakcount" -.Fc -.Sh DESCRIPTION -The function -.Fn dwarf_dealloc -is used by applications to indicate that memory areas returned by -.Lb libdwarf -may be safely disposed off. -Due to the way memory is managed in the current implementation, the -use of -.Fn dwarf_dealloc -is only necessary for a small set of DWARF types. -.Pp -Argument -.Ar dbg -should reference a valid debugging context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar ptr -should point to an object or memory area obtained by a prior call -to a DWARF(3) function. -.Pp -Argument -.Ar type -indicates the type of object being deallocated. -The indicated type must match that of the object being passed in -argument -.Ar ptr . -Valid values for the -.Ar type -argument are: -.Bl -tag -width ".Dv DW_DLA_FRAME_BLOCK" -.It Dv DW_DLA_ABBREV -An object of type -.Vt Dwarf_Abbrev , -as returned by a call to the function -.Xr dwarf_get_abbrev 3 . -.It Dv DW_DLA_DIE -An object of type -.Vt Dwarf_Die , -as returned by calls to the functions -.Xr dwarf_child 3 , -.Xr dwarf_offdie 3 -or -.Xr dwarf_siblingof 3 . -.It Dv DW_DLA_FRAME_BLOCK -An array of objects of type -.Vt Dwarf_Frame_op , -as returned by a call to the function -.Xr dwarf_expand_frame_instructions 3 . -.El -.Pp -Calls to -.Fn dwarf_dealloc -with other values for argument -.Ar type -are no-ops in this implementation. -.Pp -The functions -.Fn dwarf_fde_cie_list_dealloc , -.Fn dwarf_funcs_dealloc , -.Fn dwarf_globals_dealloc , -.Fn dwarf_pubtypes_dealloc , -.Fn dwarf_ranges_dealloc , -.Fn dwarf_srclines_dealloc , -.Fn dwarf_types_dealloc , -.Fn dwarf_vars_dealloc -and -.Fn dwarf_weaks_dealloc -are provided for compatibility with other implementations of the -DWARF(3) API. -Due to the way memory is managed in the current implementation, these -functions are effectively no-ops. -.Pp -See -.Xr dwarf 3 -for more information about the memory management scheme in this -implementation of the DWARF(3) API. -.Sh RETURN VALUES -Functions -.Fn dwarf_dealloc , -.Fn dwarf_fde_cie_list_dealloc , -.Fn dwarf_funcs_dealloc , -.Fn dwarf_globals_dealloc , -.Fn dwarf_pubtypes_dealloc , -.Fn dwarf_ranges_dealloc , -.Fn dwarf_srclines_dealloc , -.Fn dwarf_types_dealloc , -.Fn dwarf_vars_dealloc -and -.Fn dwarf_weaks_dealloc -have no return value. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_child 3 , -.Xr dwarf_expand_frame_instructions 3 , -.Xr dwarf_get_abbrev 3 , -.Xr dwarf_offdie 3 , -.Xr dwarf_siblingof 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_dealloc.c b/contrib/elftoolchain/libdwarf/dwarf_dealloc.c deleted file mode 100644 index 37d5ae0a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_dealloc.c +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -void -dwarf_dealloc(Dwarf_Debug dbg, Dwarf_Ptr p, Dwarf_Unsigned alloc_type) -{ - Dwarf_Abbrev ab; - Dwarf_AttrDef ad, tad; - Dwarf_Attribute at, tat; - Dwarf_Die die; - - /* - * This libdwarf implementation does not use the SGI/libdwarf - * style of memory allocation. In most cases it does not copy - * things to return to the client, so the client does not need - * to remember to free them. The remaining cases are handled - * below. - */ - - (void) dbg; - - if (alloc_type == DW_DLA_LIST || alloc_type == DW_DLA_FRAME_BLOCK || - alloc_type == DW_DLA_LOC_BLOCK || alloc_type == DW_DLA_LOCDESC) - free(p); - else if (alloc_type == DW_DLA_ABBREV) { - ab = p; - STAILQ_FOREACH_SAFE(ad, &ab->ab_attrdef, ad_next, tad) { - STAILQ_REMOVE(&ab->ab_attrdef, ad, _Dwarf_AttrDef, - ad_next); - free(ad); - } - free(ab); - } else if (alloc_type == DW_DLA_DIE) { - die = p; - STAILQ_FOREACH_SAFE(at, &die->die_attr, at_next, tat) { - STAILQ_REMOVE(&die->die_attr, at, - _Dwarf_Attribute, at_next); - if (at->at_ld != NULL) - free(at->at_ld); - free(at); - } - if (die->die_attrarray) - free(die->die_attrarray); - free(die); - } -} - -void -dwarf_srclines_dealloc(Dwarf_Debug dbg, Dwarf_Line *linebuf, - Dwarf_Signed count) -{ - /* - * In this libdwarf implementation, line information remains - * associated with the DIE for a compilation unit for the - * lifetime of the DIE. The client does not need to free - * the memory returned by `dwarf_srclines()`. - */ - - (void) dbg; (void) linebuf; (void) count; -} - -void -dwarf_ranges_dealloc(Dwarf_Debug dbg, Dwarf_Ranges *ranges, - Dwarf_Signed range_count) -{ - /* - * In this libdwarf implementation, ranges information is - * kept by a STAILQ inside Dwarf_Debug object. The client - * does not need to free the memory returned by - * `dwarf_get_ranges()` or `dwarf_get_ranges_a()`. - */ - - (void) dbg; (void) ranges; (void) range_count; -} - -void -dwarf_fde_cie_list_dealloc(Dwarf_Debug dbg, Dwarf_Cie *cie_list, - Dwarf_Signed cie_count, Dwarf_Fde *fde_list, Dwarf_Signed fde_count) -{ - /* - * In this implementation, FDE and CIE information is managed - * as part of the Dwarf_Debug object. The client does not need - * to explicitly free these memory arenas. - */ - (void) dbg; - (void) cie_list; - (void) cie_count; - (void) fde_list; - (void) fde_count; -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_def_macro.3 b/contrib/elftoolchain/libdwarf/dwarf_def_macro.3 deleted file mode 100644 index ed9d2c7e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_def_macro.3 +++ /dev/null @@ -1,129 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_DEF_MACRO 3 -.Os -.Sh NAME -.Nm dwarf_def_macro -.Nd add a macro definition to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "int" -.Fo dwarf_def_macro -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Unsigned lineno" -.Fa "char *name" -.Fa "char *value" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_def_macro -adds a macro definition to a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar lineno -specifies the line number of the source line where the macro is -defined. -A line number of zero is used for macros that are defined -before any source file is read. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the macro. -For function-like macros this parameter should also include -parentheses and parameter names if any. -.Pp -Argument -.Ar value -should point to a NUL-terminated string containing the value -of the macro. -If the macro does not have a value, argument -.Ar value -should be set to NULL. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_def_macro -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_def_macro -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To record the fact that a macro named -.Dv _STDIO_H_ -was defined at line 20 of the current macro file, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Error de; - -/* ... Assume 'dbg' refers to a DWARF producer instance... */ -if (dwarf_def_macro(dbg, 20, "_STDIO_H_", NULL, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_def_macro failed: %s", - dwarf_errmsg(-1)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_def_macro -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either arguments -.Ar dbg -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_end_macro_file 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_start_macro_file 3 , -.Xr dwarf_undef_macro 3 , -.Xr dwarf_vendor_ext 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_die.c b/contrib/elftoolchain/libdwarf/dwarf_die.c deleted file mode 100644 index 5050239e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_die.c +++ /dev/null @@ -1,413 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009,2011,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_child(Dwarf_Die die, Dwarf_Die *ret_die, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Section *ds; - Dwarf_CU cu; - int ret; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (die->die_ab->ab_children == DW_CHILDREN_no) - return (DW_DLV_NO_ENTRY); - - dbg = die->die_dbg; - cu = die->die_cu; - ds = cu->cu_is_info ? dbg->dbg_info_sec : dbg->dbg_types_sec; - ret = _dwarf_die_parse(die->die_dbg, ds, cu, cu->cu_dwarf_size, - die->die_next_off, cu->cu_next_offset, ret_die, 0, error); - - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - return (DW_DLV_OK); -} - -int -dwarf_siblingof_b(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Die *ret_die, - Dwarf_Bool is_info, Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_Attribute at; - Dwarf_Section *ds; - uint64_t offset; - int ret, search_sibling; - - if (dbg == NULL || ret_die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ds = is_info ? dbg->dbg_info_sec : dbg->dbg_types_sec; - cu = is_info ? dbg->dbg_cu_current : dbg->dbg_tu_current; - - if (cu == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DIE_NO_CU_CONTEXT); - return (DW_DLV_ERROR); - } - - /* Application requests the first DIE in this CU. */ - if (die == NULL) - return (dwarf_offdie_b(dbg, cu->cu_1st_offset, is_info, - ret_die, error)); - - /* - * Check if the `is_info' flag matches the debug section the - * DIE belongs to. - */ - if (is_info != die->die_cu->cu_is_info) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - /* - * If the DIE doesn't have any children, its sibling sits next - * right to it. - */ - search_sibling = 0; - if (die->die_ab->ab_children == DW_CHILDREN_no) - offset = die->die_next_off; - else { - /* - * Look for DW_AT_sibling attribute for the offset of - * its sibling. - */ - if ((at = _dwarf_attr_find(die, DW_AT_sibling)) != NULL) { - if (at->at_form != DW_FORM_ref_addr) - offset = at->u[0].u64 + cu->cu_offset; - else - offset = at->u[0].u64; - } else { - offset = die->die_next_off; - search_sibling = 1; - } - } - - ret = _dwarf_die_parse(die->die_dbg, ds, cu, cu->cu_dwarf_size, offset, - cu->cu_next_offset, ret_die, search_sibling, error); - - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - return (DW_DLV_OK); -} - - -int -dwarf_siblingof(Dwarf_Debug dbg, Dwarf_Die die, Dwarf_Die *ret_die, - Dwarf_Error *error) -{ - - return (dwarf_siblingof_b(dbg, die, ret_die, 1, error)); -} - -static int -_dwarf_search_die_within_cu(Dwarf_Debug dbg, Dwarf_Section *s, Dwarf_CU cu, - Dwarf_Off offset, Dwarf_Die *ret_die, Dwarf_Error *error) -{ - - assert(dbg != NULL && cu != NULL && ret_die != NULL); - - return (_dwarf_die_parse(dbg, s, cu, cu->cu_dwarf_size, - offset, cu->cu_next_offset, ret_die, 0, error)); -} - -int -dwarf_offdie_b(Dwarf_Debug dbg, Dwarf_Off offset, Dwarf_Bool is_info, - Dwarf_Die *ret_die, Dwarf_Error *error) -{ - Dwarf_Section *ds; - Dwarf_CU cu; - int ret; - - if (dbg == NULL || ret_die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ds = is_info ? dbg->dbg_info_sec : dbg->dbg_types_sec; - cu = is_info ? dbg->dbg_cu_current : dbg->dbg_tu_current; - - /* First search the current CU. */ - if (cu != NULL) { - if (offset > cu->cu_offset && offset < cu->cu_next_offset) { - ret = _dwarf_search_die_within_cu(dbg, ds, cu, offset, - ret_die, error); - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - return (DW_DLV_OK); - } - } - - /* Search other CUs. */ - ret = _dwarf_info_load(dbg, 1, is_info, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - if (is_info) { - STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) { - if (offset < cu->cu_offset || - offset > cu->cu_next_offset) - continue; - ret = _dwarf_search_die_within_cu(dbg, ds, cu, offset, - ret_die, error); - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - return (DW_DLV_OK); - } - } else { - STAILQ_FOREACH(cu, &dbg->dbg_tu, cu_next) { - if (offset < cu->cu_offset || - offset > cu->cu_next_offset) - continue; - ret = _dwarf_search_die_within_cu(dbg, ds, cu, offset, - ret_die, error); - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - return (DW_DLV_OK); - } - } - - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); -} - -int -dwarf_offdie(Dwarf_Debug dbg, Dwarf_Off offset, Dwarf_Die *ret_die, - Dwarf_Error *error) -{ - - return (dwarf_offdie_b(dbg, offset, 1, ret_die, error)); -} - -int -dwarf_tag(Dwarf_Die die, Dwarf_Half *tag, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || tag == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - assert(die->die_ab != NULL); - - *tag = (Dwarf_Half) die->die_ab->ab_tag; - - return (DW_DLV_OK); -} - -int -dwarf_dieoffset(Dwarf_Die die, Dwarf_Off *ret_offset, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_offset = die->die_offset; - - return (DW_DLV_OK); -} - -int -dwarf_die_CU_offset(Dwarf_Die die, Dwarf_Off *ret_offset, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_CU cu; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - cu = die->die_cu; - assert(cu != NULL); - - *ret_offset = die->die_offset - cu->cu_offset; - - return (DW_DLV_OK); -} - -int -dwarf_die_CU_offset_range(Dwarf_Die die, Dwarf_Off *cu_offset, - Dwarf_Off *cu_length, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_CU cu; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || cu_offset == NULL || cu_length == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - cu = die->die_cu; - assert(cu != NULL); - - *cu_offset = cu->cu_offset; - *cu_length = cu->cu_length + cu->cu_length_size; - - return (DW_DLV_OK); -} - -int -dwarf_diename(Dwarf_Die die, char **ret_name, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || ret_name == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (die->die_name == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_name = die->die_name; - - return (DW_DLV_OK); -} - -int -dwarf_die_abbrev_code(Dwarf_Die die) -{ - - assert(die != NULL); - - return (die->die_abnum); -} - -int -dwarf_get_cu_die_offset_given_cu_header_offset_b(Dwarf_Debug dbg, - Dwarf_Off in_cu_header_offset, Dwarf_Bool is_info, - Dwarf_Off *out_cu_die_offset, Dwarf_Error *error) -{ - Dwarf_CU cu; - - if (dbg == NULL || out_cu_die_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (is_info) { - STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) { - if (cu->cu_offset == in_cu_header_offset) { - *out_cu_die_offset = cu->cu_1st_offset; - break; - } - } - } else { - STAILQ_FOREACH(cu, &dbg->dbg_tu, cu_next) { - if (cu->cu_offset == in_cu_header_offset) { - *out_cu_die_offset = cu->cu_1st_offset; - break; - } - } - } - - if (cu == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_cu_die_offset_given_cu_header_offset(Dwarf_Debug dbg, - Dwarf_Off in_cu_header_offset, Dwarf_Off *out_cu_die_offset, - Dwarf_Error *error) -{ - - return (dwarf_get_cu_die_offset_given_cu_header_offset_b(dbg, - in_cu_header_offset, 1, out_cu_die_offset, error)); -} - -int -dwarf_get_address_size(Dwarf_Debug dbg, Dwarf_Half *addr_size, - Dwarf_Error *error) -{ - - if (dbg == NULL || addr_size == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *addr_size = dbg->dbg_pointer_size; - - return (DW_DLV_OK); -} - -Dwarf_Bool -dwarf_get_die_infotypes_flag(Dwarf_Die die) -{ - - assert(die != NULL); - - return (die->die_cu->cu_is_info); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_die_abbrev_code.3 b/contrib/elftoolchain/libdwarf/dwarf_die_abbrev_code.3 deleted file mode 100644 index 74ef727d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_die_abbrev_code.3 +++ /dev/null @@ -1,55 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 14, 2010 -.Dt DWARF_DIE_ABBREV_CODE 3 -.Os -.Sh NAME -.Nm dwarf_die_abbrev_code -.Nd retrieve the abbreviation code for a DWARF debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fn dwarf_die_abbrev_code "Dwarf_Die die" -.Sh DESCRIPTION -Function -.Fn dwarf_die_abbrev_code -returns the abbreviation code for the debugging information entry descriptor -referenced by argument -.Ar die . -Argument -.Ar die -should be a valid pointer to a value of type -.Vt Dwarf_Die . -.Sh RETURN VALUES -The function returns an integral value. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_diename 3 , -.Xr dwarf_dieoffset 3 , -.Xr dwarf_tag 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_die_link.3 b/contrib/elftoolchain/libdwarf/dwarf_die_link.3 deleted file mode 100644 index e19a2b8e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_die_link.3 +++ /dev/null @@ -1,118 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_DIE_LINK 3 -.Os -.Sh NAME -.Nm dwarf_die_link -.Nd link a debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Die -.Fo dwarf_die_link -.Fa "Dwarf_P_Die die" -.Fa "Dwarf_P_Die parent" -.Fa "Dwarf_P_Die child" -.Fa "Dwarf_P_Die left" -.Fa "Dwarf_P_Die right" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_die_link -links debugging information entries together. -.Pp -Argument -.Ar die -should specify the debugging information entry to be updated. -.Pp -Argument -.Ar parent -specifies the new parent link for the debugging information entry. -.Pp -Argument -.Ar child -specifies the new first child link for the debugging information entry. -.Pp -Argument -.Ar left -specifies the new left sibling link for the debugging information entry. -.Pp -Argument -.Ar right -specifies the new right sibling link for the debugging information entry. -.Pp -Only one of arguments -.Ar parent , -.Ar child , -.Ar left -and -.Ar right -is allowed to be non-NULL. -Existing links to parent, child, left or right debugging information -entries, if any, will be unlinked before the specified link is -established. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_die_link -returns the debugging information entry provided in argument -.Ar die . -In case of an error, function -.Fn dwarf_die_link -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -The function -.Fn dwarf_die_link -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar die -was NULL. -.It Bq Er DW_DLE_ARGUMENT -More than one of the arguments -.Ar parent , -.Ar child , -.Ar left -and -.Ar right -were non-NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_die_to_debug 3 , -.Xr dwarf_new_die 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_diename.3 b/contrib/elftoolchain/libdwarf/dwarf_diename.3 deleted file mode 100644 index d15fc0a1..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_diename.3 +++ /dev/null @@ -1,91 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 31, 2010 -.Dt DWARF_DIENAME 3 -.Os -.Sh NAME -.Nm dwarf_diename -.Nd retrieve the name associated with a debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fn dwarf_diename "Dwarf_Die die" "char **ret_name" "Dwarf_Error *err" -.Sh DESCRIPTION -Function -.Fn dwarf_diename -retrieves a pointer to the NUL-terminated string associated with the -.Dv DW_AT_name -attribute of the debugging information entry descriptor referenced by -argument -.Ar die . -If the pointer was successfully retrieved, it is stored in the location -pointed to by argument -.Ar ret_name . -.Sh RETURN VALUES -Function -.Fn dwarf_diename -returns -.Dv DW_DLV_OK -on success. -.Pp -If the debugging information entry descriptor denoted by argument -.Ar die -does not contain a -.Dv DW_AT_name -attribute, the function returns -.Dv DW_DLV_NO_ENTRY -and sets argument -.Ar err . -For other errors, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_diename -can fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar die -or -.Ar ret_name -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar die -had no -.Dv DW_AT_name -attribute. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_die_abbrev_code 3 , -.Xr dwarf_dieoffset 3 , -.Xr dwarf_tag 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_dieoffset.3 b/contrib/elftoolchain/libdwarf/dwarf_dieoffset.3 deleted file mode 100644 index 76d046cd..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_dieoffset.3 +++ /dev/null @@ -1,206 +0,0 @@ -.\" Copyright (c) 2010,2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 21, 2014 -.Dt DWARF_DIEOFFSET 3 -.Os -.Sh NAME -.Nm dwarf_die_CU_offset , -.Nm dwarf_die_CU_offset_range , -.Nm dwarf_dieoffset , -.Nm dwarf_get_cu_die_offset_given_cu_header_offset , -.Nm dwarf_get_cu_die_offset_given_cu_header_offset_b -.Nd return offsets of DWARF debugging information entries -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_die_CU_offset -.Fa "Dwarf_Die die" -.Fa "Dwarf_Off *ret_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_die_CU_offset_range -.Fa "Dwarf_Die die" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Off *cu_length" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_dieoffset -.Fa "Dwarf_Die die" -.Fa "Dwarf_Off *ret_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_get_cu_die_offset_given_cu_header_offset -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off in_cu_header_offset" -.Fa "Dwarf_Off *out_cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_get_cu_die_offset_given_cu_header_offset_b -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off in_cu_header_offset" -.Fa "Dwarf_Bool is_info" -.Fa "Dwarf_Off *out_cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions are used to retrieve offsets for DWARF debugging -information entries. -.Pp -Function -.Fn dwarf_die_CU_offset -returns the offset of the debugging information entry referenced by -argument -.Ar die -relative to the start of its containing compilation unit. -Argument -.Ar ret_offset -should point to the location that is to hold the returned offset. -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in case of -an error. -.Pp -Function -.Fn dwarf_die_CU_offset_range -returns the section-relative offset and length of the compilation unit -containing the debugging information entry referenced by argument -.Ar die . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -Argument -.Ar cu_length -should point to a location that will hold the returned length of the -compilation unit. -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in case of -an error. -.Pp -Function -.Fn dwarf_dieoffset -retrieves the section-relative offset of the debugging information -entry referenced by argument -.Ar die . -Argument -.Ar ret_offset -should point to a location that is to hold the returned -section-relative offset. -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in case of -an error. -.Pp -Function -.Fn dwarf_get_cu_die_offset_given_cu_header_offset -returns the offset for the first debugging information entry for a -compilation unit, given an offset to the header of the compilation -unit. -Argument -.Ar dbg -should reference a valid debugging context allocated using -.Xr dwarf_init 3 . -Argument -.Ar in_cu_header_offset -contains the offset to the start of a compilation unit. -Argument -.Ar out_cu_die_offset -points to a location that will hold the returned offset. -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in case of -an error. -.Pp -Function -.Fn dwarf_get_cu_die_offset_given_cu_header_offset_b -behaves identically to the function -.Fn dwarf_get_cu_die_offset_given_cu_header_offset -when the argument -.Ar is_info -is non-zero. -When the argument -.Ar is_info -is zero, function -.Fn dwarf_get_cu_die_offset_given_cu_header_offset_b -returns the offset for the first debugging information entry for a -type unit, given an offset to the header of the type unit in argument -.Ar in_cu_header_offset . -Argument -.Ar out_cu_die_offset -points to a location that will hold the returned offset. -If the argument -.Ar err -is non-NULL, it will be used to return an error descriptor in case of -an error. -.Sh RETURN VALUES -On success, these functions return -.Dv DW_DLV_OK . -In case of an error, these functions return -.Dv DW_DLV_ERROR -and set argument -.Ar err . -.Pp -Function -.Fn dwarf_get_cu_die_offset_given_cu_header_offset -and -.Fn dwarf_get_cu_die_offset_given_cu_header_offset_b -returns -.Dv DW_DLV_NO_ENTRY -and sets argument -.Ar err -if there is no compilation or type unit located at the -offset specified in argument -.Ar in_cu_header_offset . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_length , -.Va cu_offset , -.Va dbg , -.Va die , -.Va out_cu_die_offset -or -.Va ret_offset -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar in_cu_header_offset -specified an unknown offset. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_next_cu_header 3 , -.Xr dwarf_offdie 3 , -.Xr dwarf_offdie_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_dump.c b/contrib/elftoolchain/libdwarf/dwarf_dump.c deleted file mode 100644 index 74683254..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_dump.c +++ /dev/null @@ -1,1482 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_get_ACCESS_name(unsigned access, const char **s) -{ - - assert(s != NULL); - - switch (access) { - case DW_ACCESS_public: - *s = "DW_ACCESS_public"; break; - case DW_ACCESS_protected: - *s = "DW_ACCESS_protected"; break; - case DW_ACCESS_private: - *s = "DW_ACCESS_private"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_AT_name(unsigned attr, const char **s) -{ - - assert(s != NULL); - - switch (attr) { - case DW_AT_abstract_origin: - *s = "DW_AT_abstract_origin"; break; - case DW_AT_accessibility: - *s = "DW_AT_accessibility"; break; - case DW_AT_address_class: - *s = "DW_AT_address_class"; break; - case DW_AT_artificial: - *s = "DW_AT_artificial"; break; - case DW_AT_allocated: - *s = "DW_AT_allocated"; break; - case DW_AT_associated: - *s = "DW_AT_associated"; break; - case DW_AT_base_types: - *s = "DW_AT_base_types"; break; - case DW_AT_binary_scale: - *s = "DW_AT_binary_scale"; break; - case DW_AT_bit_offset: - *s = "DW_AT_bit_offset"; break; - case DW_AT_bit_size: - *s = "DW_AT_bit_size"; break; - case DW_AT_bit_stride: - *s = "DW_AT_bit_stride"; break; - case DW_AT_byte_size: - *s = "DW_AT_byte_size"; break; - case DW_AT_byte_stride: - *s = "DW_AT_byte_stride"; break; - case DW_AT_calling_convention: - *s = "DW_AT_calling_convention"; break; - case DW_AT_common_reference: - *s = "DW_AT_common_reference"; break; - case DW_AT_comp_dir: - *s = "DW_AT_comp_dir"; break; - case DW_AT_const_expr: - *s = "DW_AT_const_expr"; break; - case DW_AT_const_value: - *s = "DW_AT_const_value"; break; - case DW_AT_containing_type: - *s = "DW_AT_containing_type"; break; - case DW_AT_count: - *s = "DW_AT_count"; break; - case DW_AT_call_column: - *s = "DW_AT_call_column"; break; - case DW_AT_call_file: - *s = "DW_AT_call_file"; break; - case DW_AT_call_line: - *s = "DW_AT_call_line"; break; - case DW_AT_data_bit_offset: - *s = "DW_AT_data_bit_offset"; break; - case DW_AT_data_location: - *s = "DW_AT_data_location"; break; - case DW_AT_data_member_location: - *s = "DW_AT_data_member_location"; break; - case DW_AT_decl_column: - *s = "DW_AT_decl_column"; break; - case DW_AT_decl_file: - *s = "DW_AT_decl_file"; break; - case DW_AT_decl_line: - *s = "DW_AT_decl_line"; break; - case DW_AT_declaration: - *s = "DW_AT_declaration"; break; - case DW_AT_default_value: - *s = "DW_AT_default_value"; break; - case DW_AT_decimal_scale: - *s = "DW_AT_decimal_scale"; break; - case DW_AT_decimal_sign: - *s = "DW_AT_decimal_sign"; break; - case DW_AT_description: - *s = "DW_AT_description"; break; - case DW_AT_digit_count: - *s = "DW_AT_digit_count"; break; - case DW_AT_discr: - *s = "DW_AT_discr"; break; - case DW_AT_discr_list: - *s = "DW_AT_discr_list"; break; - case DW_AT_discr_value: - *s = "DW_AT_discr_value"; break; - case DW_AT_element_list: - *s = "DW_AT_element_list"; break; - case DW_AT_encoding: - *s = "DW_AT_encoding"; break; - case DW_AT_enum_class: - *s = "DW_AT_enum_class"; break; - case DW_AT_external: - *s = "DW_AT_external"; break; - case DW_AT_entry_pc: - *s = "DW_AT_entry_pc"; break; - case DW_AT_extension: - *s = "DW_AT_extension"; break; - case DW_AT_explicit: - *s = "DW_AT_explicit"; break; - case DW_AT_endianity: - *s = "DW_AT_endianity"; break; - case DW_AT_elemental: - *s = "DW_AT_elemental"; break; - case DW_AT_frame_base: - *s = "DW_AT_frame_base"; break; - case DW_AT_friend: - *s = "DW_AT_friend"; break; - case DW_AT_high_pc: - *s = "DW_AT_high_pc"; break; - case DW_AT_hi_user: - *s = "DW_AT_hi_user"; break; - case DW_AT_identifier_case: - *s = "DW_AT_identifier_case"; break; - case DW_AT_import: - *s = "DW_AT_import"; break; - case DW_AT_inline: - *s = "DW_AT_inline"; break; - case DW_AT_is_optional: - *s = "DW_AT_is_optional"; break; - case DW_AT_language: - *s = "DW_AT_language"; break; - case DW_AT_linkage_name: - *s = "DW_AT_linkage_name"; break; - case DW_AT_lo_user: - *s = "DW_AT_lo_user"; break; - case DW_AT_location: - *s = "DW_AT_location"; break; - case DW_AT_low_pc: - *s = "DW_AT_low_pc"; break; - case DW_AT_lower_bound: - *s = "DW_AT_lower_bound"; break; - case DW_AT_macro_info: - *s = "DW_AT_macro_info"; break; - case DW_AT_main_subprogram: - *s = "DW_AT_main_subprogram"; break; - case DW_AT_mutable: - *s = "DW_AT_mutable"; break; - case DW_AT_member: - *s = "DW_AT_member"; break; - case DW_AT_name: - *s = "DW_AT_name"; break; - case DW_AT_namelist_item: - *s = "DW_AT_namelist_item"; break; - case DW_AT_ordering: - *s = "DW_AT_ordering"; break; - case DW_AT_object_pointer: - *s = "DW_AT_object_pointer"; break; - case DW_AT_priority: - *s = "DW_AT_priority"; break; - case DW_AT_producer: - *s = "DW_AT_producer"; break; - case DW_AT_prototyped: - *s = "DW_AT_prototyped"; break; - case DW_AT_picture_string: - *s = "DW_AT_picture_string"; break; - case DW_AT_pure: - *s = "DW_AT_pure"; break; - case DW_AT_return_addr: - *s = "DW_AT_return_addr"; break; - case DW_AT_ranges: - *s = "DW_AT_ranges"; break; - case DW_AT_recursive: - *s = "DW_AT_recursive"; break; - case DW_AT_segment: - *s = "DW_AT_segment"; break; - case DW_AT_sibling: - *s = "DW_AT_sibling"; break; - case DW_AT_signature: - *s = "DW_AT_signature"; break; - case DW_AT_specification: - *s = "DW_AT_specification"; break; - case DW_AT_start_scope: - *s = "DW_AT_start_scope"; break; - case DW_AT_static_link: - *s = "DW_AT_static_link"; break; - case DW_AT_stmt_list: - *s = "DW_AT_stmt_list"; break; - case DW_AT_string_length: - *s = "DW_AT_string_length"; break; - case DW_AT_subscr_data: - *s = "DW_AT_subscr_data"; break; - case DW_AT_small: - *s = "DW_AT_small"; break; - case DW_AT_type: - *s = "DW_AT_type"; break; - case DW_AT_trampoline: - *s = "DW_AT_trampoline"; break; - case DW_AT_threads_scaled: - *s = "DW_AT_threads_scaled"; break; - case DW_AT_upper_bound: - *s = "DW_AT_upper_bound"; break; - case DW_AT_use_location: - *s = "DW_AT_use_location"; break; - case DW_AT_use_UTF8: - *s = "DW_AT_use_UTF8"; break; - case DW_AT_variable_parameter: - *s = "DW_AT_variable_parameter"; break; - case DW_AT_virtuality: - *s = "DW_AT_virtuality"; break; - case DW_AT_visibility: - *s = "DW_AT_visibility"; break; - case DW_AT_vtable_elem_location: - *s = "DW_AT_vtable_elem_location"; break; - case DW_AT_sf_names: - *s = "DW_AT_sf_names"; break; - case DW_AT_src_info: - *s = "DW_AT_src_info"; break; - case DW_AT_mac_info: - *s = "DW_AT_mac_info"; break; - case DW_AT_src_coords: - *s = "DW_AT_src_coords"; break; - case DW_AT_body_begin: - *s = "DW_AT_body_begin"; break; - case DW_AT_body_end: - *s = "DW_AT_body_end"; break; - case DW_AT_MIPS_fde: - *s = "DW_AT_MIPS_fde"; break; - case DW_AT_MIPS_loop_begin: - *s = "DW_AT_MIPS_loop_begin"; break; - case DW_AT_MIPS_tail_loop_begin: - *s = "DW_AT_MIPS_tail_loop_begin"; break; - case DW_AT_MIPS_epilog_begin: - *s = "DW_AT_MIPS_epilog_begin"; break; - case DW_AT_MIPS_loop_unroll_factor: - *s = "DW_AT_MIPS_loop_unroll_factor"; break; - case DW_AT_MIPS_software_pipeline_depth: - *s = "DW_AT_MIPS_software_pipeline_depth"; break; - case DW_AT_MIPS_linkage_name: - *s = "DW_AT_MIPS_linkage_name"; break; - case DW_AT_MIPS_stride: - *s = "DW_AT_MIPS_stride"; break; - case DW_AT_MIPS_abstract_name: - *s = "DW_AT_MIPS_abstract_name"; break; - case DW_AT_MIPS_clone_origin: - *s = "DW_AT_MIPS_clone_origin"; break; - case DW_AT_MIPS_has_inlines: - *s = "DW_AT_MIPS_has_inlines"; break; - case DW_AT_MIPS_stride_byte: - *s = "DW_AT_MIPS_stride_byte"; break; - case DW_AT_MIPS_stride_elem: - *s = "DW_AT_MIPS_stride_elem"; break; - case DW_AT_MIPS_ptr_dopetype: - *s = "DW_AT_MIPS_ptr_dopetype"; break; - case DW_AT_MIPS_allocatable_dopetype: - *s = "DW_AT_MIPS_allocatable_dopetype"; break; - case DW_AT_MIPS_assumed_shape_dopetype: - *s = "DW_AT_MIPS_assumed_shape_dopetype"; break; - case DW_AT_MIPS_assumed_size: - *s = "DW_AT_MIPS_assumed_size"; break; - case DW_AT_GNU_vector: - *s = "DW_AT_GNU_vector"; break; - case DW_AT_GNU_guarded_by: - *s = "DW_AT_GNU_guarded_by"; break; - case DW_AT_GNU_pt_guarded_by: - *s = "DW_AT_GNU_pt_guarded_by"; break; - case DW_AT_GNU_guarded: - *s = "DW_AT_GNU_guarded"; break; - case DW_AT_GNU_pt_guarded: - *s = "DW_AT_GNU_pt_guarded"; break; - case DW_AT_GNU_locks_excluded: - *s = "DW_AT_GNU_locks_excluded"; break; - case DW_AT_GNU_exclusive_locks_required: - *s = "DW_AT_GNU_exclusive_locks_required"; break; - case DW_AT_GNU_shared_locks_required: - *s = "DW_AT_GNU_shared_locks_required"; break; - case DW_AT_GNU_odr_signature: - *s = "DW_AT_GNU_odr_signature"; break; - case DW_AT_GNU_template_name: - *s = "DW_AT_GNU_template_name"; break; - case DW_AT_GNU_call_site_value: - *s = "DW_AT_GNU_call_site_value"; break; - case DW_AT_GNU_call_site_data_value: - *s = "DW_AT_GNU_call_site_data_value"; break; - case DW_AT_GNU_call_site_target: - *s = "DW_AT_GNU_call_site_target"; break; - case DW_AT_GNU_call_site_target_clobbered: - *s = "DW_AT_GNU_call_site_target_clobbered"; break; - case DW_AT_GNU_tail_call: - *s = "DW_AT_GNU_tail_call"; break; - case DW_AT_GNU_all_tail_call_sites: - *s = "DW_AT_GNU_all_tail_call_sites"; break; - case DW_AT_GNU_all_call_sites: - *s = "DW_AT_GNU_all_call_sites"; break; - case DW_AT_GNU_all_source_call_sites: - *s = "DW_AT_GNU_all_source_call_sites"; break; - case DW_AT_APPLE_optimized: - *s = "DW_AT_APPLE_optimized"; break; - case DW_AT_APPLE_flags: - *s = "DW_AT_APPLE_flags"; break; - case DW_AT_APPLE_isa: - *s = "DW_AT_APPLE_isa"; break; - case DW_AT_APPLE_block: - *s = "DW_AT_APPLE_block"; break; - case DW_AT_APPLE_major_runtime_vers: - *s = "DW_AT_APPLE_major_runtime_vers"; break; - case DW_AT_APPLE_runtime_class: - *s = "DW_AT_APPLE_runtime_class"; break; - case DW_AT_APPLE_omit_frame_ptr: - *s = "DW_AT_APPLE_omit_frame_ptr"; break; - case DW_AT_APPLE_property_name: - *s = "DW_AT_APPLE_property_name"; break; - case DW_AT_APPLE_property_getter: - *s = "DW_AT_APPLE_property_getter"; break; - case DW_AT_APPLE_property_setter: - *s = "DW_AT_APPLE_property_setter"; break; - case DW_AT_APPLE_property_attribute: - *s = "DW_AT_APPLE_property_attribute"; break; - case DW_AT_APPLE_objc_complete_type: - *s = "DW_AT_APPLE_objc_complete_type"; break; - case DW_AT_APPLE_property: - *s = "DW_AT_APPLE_property"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_ATE_name(unsigned ate, const char **s) -{ - - assert(s != NULL); - - switch(ate) { - case DW_ATE_address: - *s = "DW_ATE_address"; break; - case DW_ATE_boolean: - *s = "DW_ATE_boolean"; break; - case DW_ATE_complex_float: - *s = "DW_ATE_complex_float"; break; - case DW_ATE_float: - *s = "DW_ATE_float"; break; - case DW_ATE_signed: - *s = "DW_ATE_signed"; break; - case DW_ATE_signed_char: - *s = "DW_ATE_signed_char"; break; - case DW_ATE_unsigned: - *s = "DW_ATE_unsigned"; break; - case DW_ATE_unsigned_char: - *s = "DW_ATE_unsigned_char"; break; - case DW_ATE_imaginary_float: - *s = "DW_ATE_imaginary_float"; break; - case DW_ATE_packed_decimal: - *s = "DW_ATE_packed_decimal"; break; - case DW_ATE_numeric_string: - *s = "DW_ATE_numeric_string"; break; - case DW_ATE_edited: - *s = "DW_ATE_edited"; break; - case DW_ATE_signed_fixed: - *s = "DW_ATE_signed_fixed"; break; - case DW_ATE_unsigned_fixed: - *s = "DW_ATE_unsigned_fixed"; break; - case DW_ATE_decimal_float: - *s = "DW_ATE_decimal_float"; break; - case DW_ATE_lo_user: - *s = "DW_ATE_lo_user"; break; - case DW_ATE_hi_user: - *s = "DW_ATE_hi_user"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_CC_name(unsigned cc, const char **s) -{ - - assert(s != NULL); - - switch (cc) { - case DW_CC_normal: - *s = "DW_CC_normal"; break; - case DW_CC_program: - *s = "DW_CC_program"; break; - case DW_CC_nocall: - *s = "DW_CC_nocall"; break; - case DW_CC_lo_user: - *s = "DW_CC_lo_user"; break; - case DW_CC_hi_user: - *s = "DW_CC_hi_user"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_CFA_name(unsigned cfa, const char **s) -{ - - assert(s != NULL); - - switch (cfa) { - case DW_CFA_advance_loc: - *s = "DW_CFA_advance_loc"; break; - case DW_CFA_offset: - *s = "DW_CFA_offset"; break; - case DW_CFA_restore: - *s = "DW_CFA_restore"; break; - case DW_CFA_nop: - *s = "DW_CFA_nop"; break; - case DW_CFA_set_loc: - *s = "DW_CFA_set_loc"; break; - case DW_CFA_advance_loc1: - *s = "DW_CFA_advance_loc1"; break; - case DW_CFA_advance_loc2: - *s = "DW_CFA_advance_loc2"; break; - case DW_CFA_advance_loc4: - *s = "DW_CFA_advance_loc4"; break; - case DW_CFA_offset_extended: - *s = "DW_CFA_offset_extended"; break; - case DW_CFA_restore_extended: - *s = "DW_CFA_restore_extended"; break; - case DW_CFA_undefined: - *s = "DW_CFA_undefined"; break; - case DW_CFA_same_value: - *s = "DW_CFA_same_value"; break; - case DW_CFA_register: - *s = "DW_CFA_register"; break; - case DW_CFA_remember_state: - *s = "DW_CFA_remember_state"; break; - case DW_CFA_restore_state: - *s = "DW_CFA_restore_state"; break; - case DW_CFA_def_cfa: - *s = "DW_CFA_def_cfa"; break; - case DW_CFA_def_cfa_register: - *s = "DW_CFA_def_cfa_register"; break; - case DW_CFA_def_cfa_offset: - *s = "DW_CFA_def_cfa_offset"; break; - case DW_CFA_def_cfa_expression: - *s = "DW_CFA_def_cfa_expression"; break; - case DW_CFA_expression: - *s = "DW_CFA_expression"; break; - case DW_CFA_offset_extended_sf: - *s = "DW_CFA_offset_extended_sf"; break; - case DW_CFA_def_cfa_sf: - *s = "DW_CFA_def_cfa_sf"; break; - case DW_CFA_def_cfa_offset_sf: - *s = "DW_CFA_def_cfa_offset_sf"; break; - case DW_CFA_val_offset: - *s = "DW_CFA_val_offset"; break; - case DW_CFA_val_offset_sf: - *s = "DW_CFA_val_offset_sf"; break; - case DW_CFA_val_expression: - *s = "DW_CFA_val_expression"; break; - case DW_CFA_lo_user: - *s = "DW_CFA_lo_user"; break; - case DW_CFA_high_user: - *s = "DW_CFA_high_user"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_CHILDREN_name(unsigned children, const char **s) -{ - - assert(s != NULL); - - switch (children) { - case DW_CHILDREN_no: - *s = "DW_CHILDREN_no"; break; - case DW_CHILDREN_yes: - *s = "DW_CHILDREN_yes"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_FORM_name(unsigned form, const char **s) -{ - - assert(s != NULL); - - switch (form) { - case DW_FORM_addr: - *s = "DW_FORM_addr"; break; - case DW_FORM_block: - *s = "DW_FORM_block"; break; - case DW_FORM_block1: - *s = "DW_FORM_block1"; break; - case DW_FORM_block2: - *s = "DW_FORM_block2"; break; - case DW_FORM_block4: - *s = "DW_FORM_block4"; break; - case DW_FORM_data1: - *s = "DW_FORM_data1"; break; - case DW_FORM_data2: - *s = "DW_FORM_data2"; break; - case DW_FORM_data4: - *s = "DW_FORM_data4"; break; - case DW_FORM_data8: - *s = "DW_FORM_data8"; break; - case DW_FORM_exprloc: - *s = "DW_FORM_exprloc"; break; - case DW_FORM_flag: - *s = "DW_FORM_flag"; break; - case DW_FORM_flag_present: - *s = "DW_FORM_flag_present"; break; - case DW_FORM_indirect: - *s = "DW_FORM_indirect"; break; - case DW_FORM_ref1: - *s = "DW_FORM_ref1"; break; - case DW_FORM_ref2: - *s = "DW_FORM_ref2"; break; - case DW_FORM_ref4: - *s = "DW_FORM_ref4"; break; - case DW_FORM_ref8: - *s = "DW_FORM_ref8"; break; - case DW_FORM_ref_addr: - *s = "DW_FORM_ref_addr"; break; - case DW_FORM_ref_sig8: - *s = "DW_FORM_ref_sig8"; break; - case DW_FORM_ref_udata: - *s = "DW_FORM_ref_udata"; break; - case DW_FORM_sdata: - *s = "DW_FORM_sdata"; break; - case DW_FORM_sec_offset: - *s = "DW_FORM_sec_offset"; break; - case DW_FORM_string: - *s = "DW_FORM_string"; break; - case DW_FORM_strp: - *s = "DW_FORM_strp"; break; - case DW_FORM_udata: - *s = "DW_FORM_udata"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_DS_name(unsigned ds, const char **s) -{ - - assert(s != NULL); - - switch (ds) { - case DW_DS_unsigned: - *s = "DW_DS_unsigned"; break; - case DW_DS_leading_overpunch: - *s = "DW_DS_leading_overpunch"; break; - case DW_DS_trailing_overpunch: - *s = "DW_DS_trailing_overpunch"; break; - case DW_DS_leading_separate: - *s = "DW_DS_leading_separate"; break; - case DW_DS_trailing_separate: - *s = "DW_DS_trailing_separate"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_DSC_name(unsigned dsc, const char **s) -{ - - assert(s != NULL); - - switch (dsc) { - case DW_DSC_label: - *s = "DW_DSC_label"; break; - case DW_DSC_range: - *s = "DW_DSC_range"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_EH_name(unsigned eh, const char **s) -{ - - assert(s != NULL); - - switch (eh) { - case DW_EH_PE_absptr: - *s = "DW_EH_PE_absptr"; break; - case DW_EH_PE_uleb128: - *s = "DW_EH_PE_uleb128"; break; - case DW_EH_PE_udata2: - *s = "DW_EH_PE_udata2"; break; - case DW_EH_PE_udata4: - *s = "DW_EH_PE_udata4"; break; - case DW_EH_PE_udata8: - *s = "DW_EH_PE_udata8"; break; - case DW_EH_PE_sleb128: - *s = "DW_EH_PE_sleb128"; break; - case DW_EH_PE_sdata2: - *s = "DW_EH_PE_sdata2"; break; - case DW_EH_PE_sdata4: - *s = "DW_EH_PE_sdata4"; break; - case DW_EH_PE_sdata8: - *s = "DW_EH_PE_sdata8"; break; - case DW_EH_PE_pcrel: - *s = "DW_EH_PE_pcrel"; break; - case DW_EH_PE_textrel: - *s = "DW_EH_PE_textrel"; break; - case DW_EH_PE_datarel: - *s = "DW_EH_PE_datarel"; break; - case DW_EH_PE_funcrel: - *s = "DW_EH_PE_funcrel"; break; - case DW_EH_PE_aligned: - *s = "DW_EH_PE_aligned"; break; - case DW_EH_PE_omit: - *s = "DW_EH_PE_omit"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_END_name(unsigned end, const char **s) -{ - - assert(s != NULL); - - switch (end) { - case DW_END_default: - *s = "DW_END_default"; break; - case DW_END_big: - *s = "DW_END_big"; break; - case DW_END_little: - *s = "DW_END_little"; break; - case DW_END_lo_user: - *s = "DW_END_lo_user"; break; - case DW_END_high_user: - *s = "DW_END_high_user"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_ID_name(unsigned id, const char **s) -{ - - assert(s != NULL); - - switch (id) { - case DW_ID_case_sensitive: - *s = "DW_ID_case_sensitive"; break; - case DW_ID_up_case: - *s = "DW_ID_up_case"; break; - case DW_ID_down_case: - *s = "DW_ID_down_case"; break; - case DW_ID_case_insensitive: - *s = "DW_ID_case_insensitive"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_INL_name(unsigned inl, const char **s) -{ - - assert(s != NULL); - - switch (inl) { - case DW_INL_not_inlined: - *s = "DW_INL_not_inlined"; break; - case DW_INL_inlined: - *s = "DW_INL_inlined"; break; - case DW_INL_declared_not_inlined: - *s = "DW_INL_declared_not_inlined"; break; - case DW_INL_declared_inlined: - *s = "DW_INL_declared_inlined"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_LANG_name(unsigned lang, const char **s) -{ - - assert(s != NULL); - - switch (lang) { - case DW_LANG_C89: - *s = "DW_LANG_C89"; break; - case DW_LANG_C: - *s = "DW_LANG_C"; break; - case DW_LANG_Ada83: - *s = "DW_LANG_Ada83"; break; - case DW_LANG_C_plus_plus: - *s = "DW_LANG_C_plus_plus"; break; - case DW_LANG_Cobol74: - *s = "DW_LANG_Cobol74"; break; - case DW_LANG_Cobol85: - *s = "DW_LANG_Cobol85"; break; - case DW_LANG_Fortran77: - *s = "DW_LANG_Fortran77"; break; - case DW_LANG_Fortran90: - *s = "DW_LANG_Fortran90"; break; - case DW_LANG_Pascal83: - *s = "DW_LANG_Pascal83"; break; - case DW_LANG_Modula2: - *s = "DW_LANG_Modula2"; break; - case DW_LANG_Java: - *s = "DW_LANG_Java"; break; - case DW_LANG_C99: - *s = "DW_LANG_C99"; break; - case DW_LANG_Ada95: - *s = "DW_LANG_Ada95"; break; - case DW_LANG_Fortran95: - *s = "DW_LANG_Fortran95"; break; - case DW_LANG_PLI: - *s = "DW_LANG_PLI"; break; - case DW_LANG_ObjC: - *s = "DW_LANG_ObjC"; break; - case DW_LANG_ObjC_plus_plus: - *s = "DW_LANG_ObjC_plus_plus"; break; - case DW_LANG_UPC: - *s = "DW_LANG_UPC"; break; - case DW_LANG_D: - *s = "DW_LANG_D"; break; - case DW_LANG_Python: - *s = "DW_LANG_Python"; break; - case DW_LANG_OpenCL: - *s = "DW_LANG_OpenCL"; break; - case DW_LANG_Go: - *s = "DW_LANG_Go"; break; - case DW_LANG_Modula3: - *s = "DW_LANG_Modula3"; break; - case DW_LANG_Haskell: - *s = "DW_LANG_Haskell"; break; - case DW_LANG_C_plus_plus_03: - *s = "DW_LANG_C_plus_plus_03"; break; - case DW_LANG_C_plus_plus_11: - *s = "DW_LANG_C_plus_plus_11"; break; - case DW_LANG_OCaml: - *s = "DW_LANG_OCaml"; break; - case DW_LANG_Rust: - *s = "DW_LANG_Rust"; break; - case DW_LANG_C11: - *s = "DW_LANG_C11"; break; - case DW_LANG_Swift: - *s = "DW_LANG_Swift"; break; - case DW_LANG_Julia: - *s = "DW_LANG_Julia"; break; - case DW_LANG_Dylan: - *s = "DW_LANG_Dylan"; break; - case DW_LANG_C_plus_plus_14: - *s = "DW_LANG_C_plus_plus_14"; break; - case DW_LANG_Fortran03: - *s = "DW_LANG_Fortran03"; break; - case DW_LANG_Fortran08: - *s = "DW_LANG_Fortran08"; break; - case DW_LANG_RenderScript: - *s = "DW_LANG_RenderScript"; break; - case DW_LANG_BLISS: - *s = "DW_LANG_BLISS"; break; - case DW_LANG_lo_user: - *s = "DW_LANG_lo_user"; break; - case DW_LANG_Mips_Assembler: - *s = "DW_LANG_Mips_Assembler"; break; - case DW_LANG_hi_user: - *s = "DW_LANG_hi_user"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_LNE_name(unsigned lne, const char **s) -{ - - assert(s != NULL); - - switch (lne) { - case DW_LNE_end_sequence: - *s = "DW_LNE_end_sequence"; break; - case DW_LNE_set_address: - *s = "DW_LNE_set_address"; break; - case DW_LNE_define_file: - *s = "DW_LNE_define_file"; break; - case DW_LNE_lo_user: - *s = "DW_LNE_lo_user"; break; - case DW_LNE_hi_user: - *s = "DW_LNE_hi_user"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_LNS_name(unsigned lns, const char **s) -{ - - assert(s != NULL); - - switch (lns) { - case DW_LNS_copy: - *s = "DW_LNS_copy"; break; - case DW_LNS_advance_pc: - *s = "DW_LNS_advance_pc"; break; - case DW_LNS_advance_line: - *s = "DW_LNS_advance_line"; break; - case DW_LNS_set_file: - *s = "DW_LNS_set_file"; break; - case DW_LNS_set_column: - *s = "DW_LNS_set_column"; break; - case DW_LNS_negate_stmt: - *s = "DW_LNS_negate_stmt"; break; - case DW_LNS_set_basic_block: - *s = "DW_LNS_set_basic_block"; break; - case DW_LNS_const_add_pc: - *s = "DW_LNS_const_add_pc"; break; - case DW_LNS_fixed_advance_pc: - *s = "DW_LNS_fixed_advance_pc"; break; - case DW_LNS_set_prologue_end: - *s = "DW_LNS_set_prologue_end"; break; - case DW_LNS_set_epilogue_begin: - *s = "DW_LNS_set_epilogue_begin"; break; - case DW_LNS_set_isa: - *s = "DW_LNS_set_isa"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_MACINFO_name(unsigned mi, const char **s) -{ - - assert(s != NULL); - - switch (mi) { - case DW_MACINFO_define: - *s = "DW_MACINFO_define"; break; - case DW_MACINFO_undef: - *s = "DW_MACINFO_undef"; break; - case DW_MACINFO_start_file: - *s = "DW_MACINFO_start_file"; break; - case DW_MACINFO_end_file: - *s = "DW_MACINFO_end_file"; break; - case DW_MACINFO_vendor_ext: - *s = "DW_MACINFO_vendor_ext"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_OP_name(unsigned op, const char **s) -{ - - assert(s != NULL); - - switch (op) { - case DW_OP_deref: - *s = "DW_OP_deref"; break; - case DW_OP_reg0: - *s = "DW_OP_reg0"; break; - case DW_OP_reg1: - *s = "DW_OP_reg1"; break; - case DW_OP_reg2: - *s = "DW_OP_reg2"; break; - case DW_OP_reg3: - *s = "DW_OP_reg3"; break; - case DW_OP_reg4: - *s = "DW_OP_reg4"; break; - case DW_OP_reg5: - *s = "DW_OP_reg5"; break; - case DW_OP_reg6: - *s = "DW_OP_reg6"; break; - case DW_OP_reg7: - *s = "DW_OP_reg7"; break; - case DW_OP_reg8: - *s = "DW_OP_reg8"; break; - case DW_OP_reg9: - *s = "DW_OP_reg9"; break; - case DW_OP_reg10: - *s = "DW_OP_reg10"; break; - case DW_OP_reg11: - *s = "DW_OP_reg11"; break; - case DW_OP_reg12: - *s = "DW_OP_reg12"; break; - case DW_OP_reg13: - *s = "DW_OP_reg13"; break; - case DW_OP_reg14: - *s = "DW_OP_reg14"; break; - case DW_OP_reg15: - *s = "DW_OP_reg15"; break; - case DW_OP_reg16: - *s = "DW_OP_reg16"; break; - case DW_OP_reg17: - *s = "DW_OP_reg17"; break; - case DW_OP_reg18: - *s = "DW_OP_reg18"; break; - case DW_OP_reg19: - *s = "DW_OP_reg19"; break; - case DW_OP_reg20: - *s = "DW_OP_reg20"; break; - case DW_OP_reg21: - *s = "DW_OP_reg21"; break; - case DW_OP_reg22: - *s = "DW_OP_reg22"; break; - case DW_OP_reg23: - *s = "DW_OP_reg23"; break; - case DW_OP_reg24: - *s = "DW_OP_reg24"; break; - case DW_OP_reg25: - *s = "DW_OP_reg25"; break; - case DW_OP_reg26: - *s = "DW_OP_reg26"; break; - case DW_OP_reg27: - *s = "DW_OP_reg27"; break; - case DW_OP_reg28: - *s = "DW_OP_reg28"; break; - case DW_OP_reg29: - *s = "DW_OP_reg29"; break; - case DW_OP_reg30: - *s = "DW_OP_reg30"; break; - case DW_OP_reg31: - *s = "DW_OP_reg31"; break; - case DW_OP_lit0: - *s = "DW_OP_lit0"; break; - case DW_OP_lit1: - *s = "DW_OP_lit1"; break; - case DW_OP_lit2: - *s = "DW_OP_lit2"; break; - case DW_OP_lit3: - *s = "DW_OP_lit3"; break; - case DW_OP_lit4: - *s = "DW_OP_lit4"; break; - case DW_OP_lit5: - *s = "DW_OP_lit5"; break; - case DW_OP_lit6: - *s = "DW_OP_lit6"; break; - case DW_OP_lit7: - *s = "DW_OP_lit7"; break; - case DW_OP_lit8: - *s = "DW_OP_lit8"; break; - case DW_OP_lit9: - *s = "DW_OP_lit9"; break; - case DW_OP_lit10: - *s = "DW_OP_lit10"; break; - case DW_OP_lit11: - *s = "DW_OP_lit11"; break; - case DW_OP_lit12: - *s = "DW_OP_lit12"; break; - case DW_OP_lit13: - *s = "DW_OP_lit13"; break; - case DW_OP_lit14: - *s = "DW_OP_lit14"; break; - case DW_OP_lit15: - *s = "DW_OP_lit15"; break; - case DW_OP_lit16: - *s = "DW_OP_lit16"; break; - case DW_OP_lit17: - *s = "DW_OP_lit17"; break; - case DW_OP_lit18: - *s = "DW_OP_lit18"; break; - case DW_OP_lit19: - *s = "DW_OP_lit19"; break; - case DW_OP_lit20: - *s = "DW_OP_lit20"; break; - case DW_OP_lit21: - *s = "DW_OP_lit21"; break; - case DW_OP_lit22: - *s = "DW_OP_lit22"; break; - case DW_OP_lit23: - *s = "DW_OP_lit23"; break; - case DW_OP_lit24: - *s = "DW_OP_lit24"; break; - case DW_OP_lit25: - *s = "DW_OP_lit25"; break; - case DW_OP_lit26: - *s = "DW_OP_lit26"; break; - case DW_OP_lit27: - *s = "DW_OP_lit27"; break; - case DW_OP_lit28: - *s = "DW_OP_lit28"; break; - case DW_OP_lit29: - *s = "DW_OP_lit29"; break; - case DW_OP_lit30: - *s = "DW_OP_lit30"; break; - case DW_OP_lit31: - *s = "DW_OP_lit31"; break; - case DW_OP_dup: - *s = "DW_OP_dup"; break; - case DW_OP_drop: - *s = "DW_OP_drop"; break; - case DW_OP_over: - *s = "DW_OP_over"; break; - case DW_OP_swap: - *s = "DW_OP_swap"; break; - case DW_OP_rot: - *s = "DW_OP_rot"; break; - case DW_OP_xderef: - *s = "DW_OP_xderef"; break; - case DW_OP_abs: - *s = "DW_OP_abs"; break; - case DW_OP_and: - *s = "DW_OP_and"; break; - case DW_OP_div: - *s = "DW_OP_div"; break; - case DW_OP_minus: - *s = "DW_OP_minus"; break; - case DW_OP_mod: - *s = "DW_OP_mod"; break; - case DW_OP_mul: - *s = "DW_OP_mul"; break; - case DW_OP_neg: - *s = "DW_OP_neg"; break; - case DW_OP_not: - *s = "DW_OP_not"; break; - case DW_OP_or: - *s = "DW_OP_or"; break; - case DW_OP_plus: - *s = "DW_OP_plus"; break; - case DW_OP_shl: - *s = "DW_OP_shl"; break; - case DW_OP_shr: - *s = "DW_OP_shr"; break; - case DW_OP_shra: - *s = "DW_OP_shra"; break; - case DW_OP_xor: - *s = "DW_OP_xor"; break; - case DW_OP_eq: - *s = "DW_OP_eq"; break; - case DW_OP_ge: - *s = "DW_OP_ge"; break; - case DW_OP_gt: - *s = "DW_OP_gt"; break; - case DW_OP_le: - *s = "DW_OP_le"; break; - case DW_OP_lt: - *s = "DW_OP_lt"; break; - case DW_OP_ne: - *s = "DW_OP_ne"; break; - case DW_OP_nop: - *s = "DW_OP_nop"; break; - case DW_OP_const1u: - *s = "DW_OP_const1u"; break; - case DW_OP_const1s: - *s = "DW_OP_const1s"; break; - case DW_OP_pick: - *s = "DW_OP_pick"; break; - case DW_OP_deref_size: - *s = "DW_OP_deref_size"; break; - case DW_OP_xderef_size: - *s = "DW_OP_xderef_size"; break; - case DW_OP_const2u: - *s = "DW_OP_const2u"; break; - case DW_OP_const2s: - *s = "DW_OP_const2s"; break; - case DW_OP_bra: - *s = "DW_OP_bra"; break; - case DW_OP_skip: - *s = "DW_OP_skip"; break; - case DW_OP_const4u: - *s = "DW_OP_const4u"; break; - case DW_OP_const4s: - *s = "DW_OP_const4s"; break; - case DW_OP_const8u: - *s = "DW_OP_const8u"; break; - case DW_OP_const8s: - *s = "DW_OP_const8s"; break; - case DW_OP_constu: - *s = "DW_OP_constu"; break; - case DW_OP_plus_uconst: - *s = "DW_OP_plus_uconst"; break; - case DW_OP_regx: - *s = "DW_OP_regx"; break; - case DW_OP_piece: - *s = "DW_OP_piece"; break; - case DW_OP_consts: - *s = "DW_OP_consts"; break; - case DW_OP_breg0: - *s = "DW_OP_breg0"; break; - case DW_OP_breg1: - *s = "DW_OP_breg1"; break; - case DW_OP_breg2: - *s = "DW_OP_breg2"; break; - case DW_OP_breg3: - *s = "DW_OP_breg3"; break; - case DW_OP_breg4: - *s = "DW_OP_breg4"; break; - case DW_OP_breg5: - *s = "DW_OP_breg5"; break; - case DW_OP_breg6: - *s = "DW_OP_breg6"; break; - case DW_OP_breg7: - *s = "DW_OP_breg7"; break; - case DW_OP_breg8: - *s = "DW_OP_breg8"; break; - case DW_OP_breg9: - *s = "DW_OP_breg9"; break; - case DW_OP_breg10: - *s = "DW_OP_breg10"; break; - case DW_OP_breg11: - *s = "DW_OP_breg11"; break; - case DW_OP_breg12: - *s = "DW_OP_breg12"; break; - case DW_OP_breg13: - *s = "DW_OP_breg13"; break; - case DW_OP_breg14: - *s = "DW_OP_breg14"; break; - case DW_OP_breg15: - *s = "DW_OP_breg15"; break; - case DW_OP_breg16: - *s = "DW_OP_breg16"; break; - case DW_OP_breg17: - *s = "DW_OP_breg17"; break; - case DW_OP_breg18: - *s = "DW_OP_breg18"; break; - case DW_OP_breg19: - *s = "DW_OP_breg19"; break; - case DW_OP_breg20: - *s = "DW_OP_breg20"; break; - case DW_OP_breg21: - *s = "DW_OP_breg21"; break; - case DW_OP_breg22: - *s = "DW_OP_breg22"; break; - case DW_OP_breg23: - *s = "DW_OP_breg23"; break; - case DW_OP_breg24: - *s = "DW_OP_breg24"; break; - case DW_OP_breg25: - *s = "DW_OP_breg25"; break; - case DW_OP_breg26: - *s = "DW_OP_breg26"; break; - case DW_OP_breg27: - *s = "DW_OP_breg27"; break; - case DW_OP_breg28: - *s = "DW_OP_breg28"; break; - case DW_OP_breg29: - *s = "DW_OP_breg29"; break; - case DW_OP_breg30: - *s = "DW_OP_breg30"; break; - case DW_OP_breg31: - *s = "DW_OP_breg31"; break; - case DW_OP_fbreg: - *s = "DW_OP_fbreg"; break; - case DW_OP_bregx: - *s = "DW_OP_bregx"; break; - case DW_OP_addr: - *s = "DW_OP_addr"; break; - case DW_OP_push_object_address: - *s = "DW_OP_push_object_address"; break; - case DW_OP_call2: - *s = "DW_OP_call2"; break; - case DW_OP_call4: - *s = "DW_OP_call4"; break; - case DW_OP_call_ref: - *s = "DW_OP_call_ref"; break; - case DW_OP_form_tls_address: - *s = "DW_OP_form_tls_address"; break; - case DW_OP_call_frame_cfa: - *s = "DW_OP_call_frame_cfa"; break; - case DW_OP_bit_piece: - *s = "DW_OP_bit_piece"; break; - case DW_OP_implicit_value: - *s = "DW_OP_implicit_value"; break; - case DW_OP_stack_value: - *s = "DW_OP_stack_value"; break; - case DW_OP_GNU_push_tls_address: - *s = "DW_OP_GNU_push_tls_address"; break; - case DW_OP_GNU_uninit: - *s = "DW_OP_GNU_uninit"; break; - case DW_OP_GNU_encoded_addr: - *s = "DW_OP_GNU_encoded_addr"; break; - case DW_OP_GNU_implicit_pointer: - *s = "DW_OP_GNU_implicit_pointer"; break; - case DW_OP_GNU_entry_value: - *s = "DW_OP_GNU_entry_value"; break; - case DW_OP_GNU_const_type: - *s = "DW_OP_GNU_const_type"; break; - case DW_OP_GNU_regval_type: - *s = "DW_OP_GNU_regval_type"; break; - case DW_OP_GNU_deref_type: - *s = "DW_OP_GNU_deref_type"; break; - case DW_OP_GNU_convert: - *s = "DW_OP_GNU_convert"; break; - case DW_OP_GNU_reinterpret: - *s = "DW_OP_GNU_reinterpret"; break; - case DW_OP_GNU_parameter_ref: - *s = "DW_OP_GNU_parameter_ref"; break; - case DW_OP_GNU_addr_index: - *s = "DW_OP_GNU_addr_index"; break; - case DW_OP_GNU_const_index: - *s = "DW_OP_GNU_const_index"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_ORD_name(unsigned ord, const char **s) -{ - - assert(s != NULL); - - switch (ord) { - case DW_ORD_row_major: - *s = "DW_ORD_row_major"; break; - case DW_ORD_col_major: - *s = "DW_ORD_col_major"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_TAG_name(unsigned tag, const char **s) -{ - - assert(s != NULL); - - switch (tag) { - case DW_TAG_access_declaration: - *s = "DW_TAG_access_declaration"; break; - case DW_TAG_array_type: - *s = "DW_TAG_array_type"; break; - case DW_TAG_base_type: - *s = "DW_TAG_base_type"; break; - case DW_TAG_catch_block: - *s = "DW_TAG_catch_block"; break; - case DW_TAG_class_type: - *s = "DW_TAG_class_type"; break; - case DW_TAG_common_block: - *s = "DW_TAG_common_block"; break; - case DW_TAG_common_inclusion: - *s = "DW_TAG_common_inclusion"; break; - case DW_TAG_compile_unit: - *s = "DW_TAG_compile_unit"; break; - case DW_TAG_condition: - *s = "DW_TAG_condition"; break; - case DW_TAG_const_type: - *s = "DW_TAG_const_type"; break; - case DW_TAG_constant: - *s = "DW_TAG_constant"; break; - case DW_TAG_dwarf_procedure: - *s = "DW_TAG_dwarf_procedure"; break; - case DW_TAG_entry_point: - *s = "DW_TAG_entry_point"; break; - case DW_TAG_enumeration_type: - *s = "DW_TAG_enumeration_type"; break; - case DW_TAG_enumerator: - *s = "DW_TAG_enumerator"; break; - case DW_TAG_formal_parameter: - *s = "DW_TAG_formal_parameter"; break; - case DW_TAG_friend: - *s = "DW_TAG_friend"; break; - case DW_TAG_imported_declaration: - *s = "DW_TAG_imported_declaration"; break; - case DW_TAG_imported_module: - *s = "DW_TAG_imported_module"; break; - case DW_TAG_imported_unit: - *s = "DW_TAG_imported_unit"; break; - case DW_TAG_inheritance: - *s = "DW_TAG_inheritance"; break; - case DW_TAG_inlined_subroutine: - *s = "DW_TAG_inlined_subroutine"; break; - case DW_TAG_interface_type: - *s = "DW_TAG_interface_type"; break; - case DW_TAG_label: - *s = "DW_TAG_label"; break; - case DW_TAG_lexical_block: - *s = "DW_TAG_lexical_block"; break; - case DW_TAG_member: - *s = "DW_TAG_member"; break; - case DW_TAG_module: - *s = "DW_TAG_module"; break; - case DW_TAG_namelist: - *s = "DW_TAG_namelist"; break; - case DW_TAG_namelist_item: - *s = "DW_TAG_namelist_item"; break; - case DW_TAG_namespace: - *s = "DW_TAG_namespace"; break; - case DW_TAG_packed_type: - *s = "DW_TAG_packed_type"; break; - case DW_TAG_partial_unit: - *s = "DW_TAG_partial_unit"; break; - case DW_TAG_pointer_type: - *s = "DW_TAG_pointer_type"; break; - case DW_TAG_ptr_to_member_type: - *s = "DW_TAG_ptr_to_member_type"; break; - case DW_TAG_reference_type: - *s = "DW_TAG_reference_type"; break; - case DW_TAG_restrict_type: - *s = "DW_TAG_restrict_type"; break; - case DW_TAG_rvalue_reference_type: - *s = "DW_TAG_rvalue_reference_type"; break; - case DW_TAG_set_type: - *s = "DW_TAG_set_type"; break; - case DW_TAG_shared_type: - *s = "DW_TAG_shared_type"; break; - case DW_TAG_string_type: - *s = "DW_TAG_string_type"; break; - case DW_TAG_structure_type: - *s = "DW_TAG_structure_type"; break; - case DW_TAG_subprogram: - *s = "DW_TAG_subprogram"; break; - case DW_TAG_subrange_type: - *s = "DW_TAG_subrange_type"; break; - case DW_TAG_subroutine_type: - *s = "DW_TAG_subroutine_type"; break; - case DW_TAG_template_alias: - *s = "DW_TAG_template_alias"; break; - case DW_TAG_template_type_parameter: - *s = "DW_TAG_template_type_parameter"; break; - case DW_TAG_template_value_parameter: - *s = "DW_TAG_template_value_parameter"; break; - case DW_TAG_thrown_type: - *s = "DW_TAG_thrown_type"; break; - case DW_TAG_try_block: - *s = "DW_TAG_try_block"; break; - case DW_TAG_type_unit: - *s = "DW_TAG_type_unit"; break; - case DW_TAG_typedef: - *s = "DW_TAG_typedef"; break; - case DW_TAG_union_type: - *s = "DW_TAG_union_type"; break; - case DW_TAG_unspecified_parameters: - *s = "DW_TAG_unspecified_parameters"; break; - case DW_TAG_unspecified_type: - *s = "DW_TAG_unspecified_type"; break; - case DW_TAG_variable: - *s = "DW_TAG_variable"; break; - case DW_TAG_variant: - *s = "DW_TAG_variant"; break; - case DW_TAG_variant_part: - *s = "DW_TAG_variant_part"; break; - case DW_TAG_volatile_type: - *s = "DW_TAG_volatile_type"; break; - case DW_TAG_with_stmt: - *s = "DW_TAG_with_stmt"; break; - case DW_TAG_format_label: - *s = "DW_TAG_format_label"; break; - case DW_TAG_function_template: - *s = "DW_TAG_function_template"; break; - case DW_TAG_class_template: - *s = "DW_TAG_class_template"; break; - case DW_TAG_GNU_BINCL: - *s = "DW_TAG_GNU_BINCL"; break; - case DW_TAG_GNU_EINCL: - *s = "DW_TAG_GNU_EINCL"; break; - case DW_TAG_GNU_template_template_param: - *s = "DW_TAG_GNU_template_template_param"; break; - case DW_TAG_GNU_template_parameter_pack: - *s = "DW_TAG_GNU_template_parameter_pack"; break; - case DW_TAG_GNU_formal_parameter_pack: - *s = "DW_TAG_GNU_formal_parameter_pack"; break; - case DW_TAG_GNU_call_site: - *s = "DW_TAG_GNU_call_site"; break; - case DW_TAG_GNU_call_site_parameter: - *s = "DW_TAG_GNU_call_site_parameter"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_VIRTUALITY_name(unsigned vir, const char **s) -{ - - assert(s != NULL); - - switch (vir) { - case DW_VIRTUALITY_none: - *s = "DW_VIRTUALITY_none"; break; - case DW_VIRTUALITY_virtual: - *s = "DW_VIRTUALITY_virtual"; break; - case DW_VIRTUALITY_pure_virtual: - *s = "DW_VIRTUALITY_pure_virtual"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_VIS_name(unsigned vis, const char **s) -{ - - assert(s != NULL); - - switch (vis) { - case DW_VIS_local: - *s = "DW_VIS_local"; break; - case DW_VIS_exported: - *s = "DW_VIS_exported"; break; - case DW_VIS_qualified: - *s = "DW_VIS_qualified"; break; - default: - return (DW_DLV_NO_ENTRY); - } - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_end_macro_file.3 b/contrib/elftoolchain/libdwarf/dwarf_end_macro_file.3 deleted file mode 100644 index 3e1872f0..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_end_macro_file.3 +++ /dev/null @@ -1,89 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 25, 2011 -.Dt DWARF_END_MACRO_FILE 3 -.Os -.Sh NAME -.Nm dwarf_end_macro_file -.Nd mark the end of the current source file inclusion -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "int" -.Fo dwarf_end_macro_file -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_end_macro_file -marks the end of the current source file inclusion. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_end_macro_file -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_end_macro_file -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_end_macro_file -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_def_macro 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_start_macro_file 3 , -.Xr dwarf_undef_macro 3 , -.Xr dwarf_vendor_ext 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_errmsg.3 b/contrib/elftoolchain/libdwarf/dwarf_errmsg.3 deleted file mode 100644 index af8b493e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_errmsg.3 +++ /dev/null @@ -1,67 +0,0 @@ -.\" Copyright (c) 2009 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 12, 2009 -.Dt DWARF_ERRMSG 3 -.Os -.Sh NAME -.Nm dwarf_errmsg -.Nd retrieve a human-readable string corresponding to a -.Vt Dwarf_Error -instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "const char *" -.Fn dwarf_errmsg "Dwarf_Error err" -.Sh DESCRIPTION -Function -.Fn dwarf_errmsg -returns a -.Dv NUL Ns - Ns -terminated string for the error denoted by -argument -.Ar err . -.Pp -Argument -.Ar err -should be a valid handle to a -.Vt Dwarf_Error -instance. -.Sh Memory Management -The returned pointer should not be freed using -.Xr free 3 -or -.Xr dwarf_dealloc 3 . -.Sh RETURN VALUES -Function -.Fn dwarf_errmsg -returns a pointer to a -.Dv NUL Ns - Ns -terminated string. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_errno 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_errmsg.c b/contrib/elftoolchain/libdwarf/dwarf_errmsg.c deleted file mode 100644 index f058efc6..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_errmsg.c +++ /dev/null @@ -1,90 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static const char *_libdwarf_errors[] = { -#define DEFINE_ERROR(N,S) [DW_DLE_##N] = S - DEFINE_ERROR(NONE, "No Error"), - DEFINE_ERROR(ERROR, "An error"), - DEFINE_ERROR(NO_ENTRY, "No entry found"), - DEFINE_ERROR(ARGUMENT, "Invalid argument"), - DEFINE_ERROR(DEBUG_INFO_NULL, "Debug info NULL"), - DEFINE_ERROR(MEMORY, "Insufficient memory"), - DEFINE_ERROR(ELF, "ELF error"), - DEFINE_ERROR(CU_LENGTH_ERROR, "Invalid compilation unit data"), - DEFINE_ERROR(VERSION_STAMP_ERROR, "Unsupported version"), - DEFINE_ERROR(DEBUG_ABBREV_NULL, "Abbrev not found"), - DEFINE_ERROR(DIE_NO_CU_CONTEXT, "No current compilation unit"), - DEFINE_ERROR(LOC_EXPR_BAD, "Invalid location expression"), - DEFINE_ERROR(EXPR_LENGTH_BAD, "Invalid DWARF expression length"), - DEFINE_ERROR(DEBUG_LOC_SECTION_SHORT, "Loclist section too short"), - DEFINE_ERROR(ATTR_FORM_BAD, "Invalid attribute form"), - DEFINE_ERROR(DEBUG_LINE_LENGTH_BAD, "Line info section too short"), - DEFINE_ERROR(LINE_FILE_NUM_BAD, "Invalid file number."), - DEFINE_ERROR(DIR_INDEX_BAD, "Invalid dir index."), - DEFINE_ERROR(DEBUG_FRAME_LENGTH_BAD, "Frame section too short"), - DEFINE_ERROR(NO_CIE_FOR_FDE, "FDE without corresponding CIE"), - DEFINE_ERROR(FRAME_AUGMENTATION_UNKNOWN, "Unknown CIE augmentation"), - DEFINE_ERROR(FRAME_INSTR_EXEC_ERROR, "Frame instruction exec error"), - DEFINE_ERROR(FRAME_VERSION_BAD, "Unsupported frame section version"), - DEFINE_ERROR(FRAME_TABLE_COL_BAD, "Invalid table column value"), - DEFINE_ERROR(DF_REG_NUM_TOO_HIGH, "Register number too large"), - DEFINE_ERROR(PC_NOT_IN_FDE_RANGE, "PC requested not in the FDE range"), - DEFINE_ERROR(ARANGE_OFFSET_BAD, "Invalid address range offset"), - DEFINE_ERROR(DEBUG_MACRO_INCONSISTENT, "Invalid macinfo data"), - DEFINE_ERROR(ELF_SECT_ERR, "Application callback failed"), - DEFINE_ERROR(NUM, "Unknown DWARF error") -#undef DEFINE_ERROR -}; - -const char * -dwarf_errmsg_(Dwarf_Error *error) -{ - const char *p; - - if (error == NULL) - return NULL; - - if (error->err_error < 0 || error->err_error >= DW_DLE_NUM) - return _libdwarf_errors[DW_DLE_NUM]; - else if (error->err_error == DW_DLE_NONE) - return _libdwarf_errors[DW_DLE_NONE]; - else - p = _libdwarf_errors[error->err_error]; - - if (error->err_error == DW_DLE_ELF) - snprintf(error->err_msg, sizeof(error->err_msg), - "ELF error : %s [%s(%d)]", elf_errmsg(error->err_elferror), - error->err_func, error->err_line); - else - snprintf(error->err_msg, sizeof(error->err_msg), - "%s [%s(%d)]", p, error->err_func, error->err_line); - - return (const char *) error->err_msg; -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_errno.3 b/contrib/elftoolchain/libdwarf/dwarf_errno.3 deleted file mode 100644 index 9f146e95..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_errno.3 +++ /dev/null @@ -1,58 +0,0 @@ -.\" Copyright (c) 2009,2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd March 25, 2010 -.Dt DWARF_ERRNO 3 -.Os -.Sh NAME -.Nm dwarf_errno -.Nd retrieve the error number corresponding to a -.Vt Dwarf_Error -instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fn dwarf_errno "Dwarf_Error err" -.Sh DESCRIPTION -Function -.Fn dwarf_errno -returns the error number associated with a -.Vt Dwarf_Error -instance. -.Pp -Argument -.Ar err -should be a valid handle to a -.Vt Dwarf_Error -instance. -.Sh RETURN VALUES -Function -.Fn dwarf_errno -returns an integral value. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_errmsg 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_expand_frame_instructions.3 b/contrib/elftoolchain/libdwarf/dwarf_expand_frame_instructions.3 deleted file mode 100644 index f9fc83b9..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_expand_frame_instructions.3 +++ /dev/null @@ -1,182 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_EXPAND_FRAME_INSTRUCTIONS 3 -.Os -.Sh NAME -.Nm dwarf_expand_frame_instructions -.Nd expand frame instructions -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_expand_frame_instructions -.Fa "Dwarf_Cie cie" -.Fa "Dwarf_Ptr instructions" -.Fa "Dwarf_Unsigned len" -.Fa "Dwarf_Frame_Op **ret_ops" -.Fa "Dwarf_Signed *ret_opcnt" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_expand_frame_instructions -translates DWARF frame instruction bytes into an array of -.Vt Dwarf_Frame_Op -descriptors. -.Pp -Argument -.Ar cie -should reference the CIE descriptor associated with the instructions -to be translated. -.Pp -Arugment -.Ar instructions -should point to an array of frame instruction bytes, as -returned by the functions -.Xr dwarf_get_cie_info 3 -or -.Xr dwarf_get_fde_instr_bytes 3 . -.Pp -Argument -.Ar len -should specify the number of the frame instruction bytes to be -translated. -.Pp -Argument -.Ar ret_ops -should point to a location that will be set to a pointer to -an array of translated -.Vt Dwarf_Frame_Op -descriptors. -.Pp -Argument -.Ar ret_opcnt -should point to a location that will hold the total number of the -returned descriptors. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Ss Memory Management -The memory area used for the descriptor array returned in argument -.Ar ret_ops -is allocated by -.Lb libdwarf . -Application code should use function -.Xr dwarf_dealloc 3 -with type -.Dv DW_DLA_FRAME_BLOCK -to free the memory area when the descriptor array is no longer needed. -.Sh RETURN VALUES -Function -.Fn dwarf_expand_frame_instructions -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To retrieve and expand the frame instructions for a given FDE -descriptor, use: -.Bd -literal -offset indent -Dwarf_Dbg dbg; -Dwarf_Cie cie; -Dwarf_Fde fde; -Dwarf_Ptr fde_inst; -Dwarf_Unsigned fde_instlen; -Dwarf_Frame_Op *ops; -Dwarf_Signed opcnt; -Dwarf_Error de; - -/* ... assuming `dbg` references a valid DWARF debugging context, - `fde` references a valid FDE descriptor and `cie` holds the CIE - descriptor associated with the FDE descriptor ... */ - -if (dwarf_get_fde_instr_bytes(fde, &fde_inst, &fde_instlen, - &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_fde_instr_bytes failed: %s", - dwarf_errmsg(de)); - -if (dwarf_expand_frame_instructions(cie, fde_inst, fde_instlen, - &ops, &opcnt, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, - "dwarf_expand_frame_instructions failed: %s", - dwarf_errmsg(de)); - -for (i = 0; i < opcnt; i++) { - /* ... use ops[i] ... */ -} - -/* Free the memory area when no longer needed. */ -dwarf_dealloc(dbg, ops, DW_DLA_FRAME_BLOCK); -.Ed -.Sh ERRORS -Function -.Fn dwarf_expand_frame_instructions -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar cie , -.Ar instructions , -.Ar ret_ops -or -.Ar ret_opcnt -was NULL. -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar len -was 0. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -this function. -.It Bq Er DW_DLE_FRAME_INSTR_EXEC_ERROR -An unknown instruction was found in the instruction bytes provided -in argument -.Ar instructions . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_frame_instructions_dealloc 3 , -.Xr dwarf_get_cie_index 3 , -.Xr dwarf_get_cie_info 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_instr_bytes 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 , -.Xr dwarf_get_fde_n 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_expr_current_offset.3 b/contrib/elftoolchain/libdwarf/dwarf_expr_current_offset.3 deleted file mode 100644 index e50c07fb..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_expr_current_offset.3 +++ /dev/null @@ -1,84 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 13, 2011 -.Dt DWARF_EXPR_CURRENT_OFFSET 3 -.Os -.Sh NAME -.Nm dwarf_expr_current_offset -.Nd retrieve the number of bytes in a location expression stream -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_expr_current_offset -.Fa "Dwarf_P_Expr expr" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_expr_current_offset -returns the size in bytes of the stream representation of a location -expression. -.Pp -Argument -.Ar expr -should reference a location expression descriptor allocated using -.Xr dwarf_new_expr 3 . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_expr_current_offset -returns the size in bytes of the location descriptor's stream -representation. -In case of an error, function -.Fn dwarf_expr_current_offset -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_expr_current_offset -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar expr -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_expr_addr 3 , -.Xr dwarf_add_expr_addr_b 3 , -.Xr dwarf_add_expr_gen 3 , -.Xr dwarf_expr_into_block 3 , -.Xr dwarf_new_expr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_expr_into_block.3 b/contrib/elftoolchain/libdwarf/dwarf_expr_into_block.3 deleted file mode 100644 index 33fa8eb9..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_expr_into_block.3 +++ /dev/null @@ -1,94 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 13, 2011 -.Dt DWARF_EXPR_INTO_BLOCK 3 -.Os -.Sh NAME -.Nm dwarf_expr_into_block -.Nd retrieve the byte stream for a location expression -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Addr" -.Fo dwarf_expr_into_block -.Fa "Dwarf_P_Expr expr" -.Fa "Dwarf_Unsigned *length" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_expr_into_block -retrieves the byte stream representation of a location expression. -.Pp -Argument -.Ar expr -should reference a location expression descriptor allocated using -.Xr dwarf_new_expr 3 . -.Pp -Argument -.Ar length -should point to a location which will hold the size in bytes of -the retrieved byte stream. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_expr_into_block -returns the address of the first byte of the generated byte stream. -In case of an error, function -.Fn dwarf_expr_into_block -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_expr_into_block -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar expr -or -.Ar length -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_location_expr 3 , -.Xr dwarf_add_expr_addr 3 , -.Xr dwarf_add_expr_addr_b 3 , -.Xr dwarf_add_expr_gen 3 , -.Xr dwarf_expr_current_offset 3 , -.Xr dwarf_new_expr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_fde_cfa_offset.3 b/contrib/elftoolchain/libdwarf/dwarf_fde_cfa_offset.3 deleted file mode 100644 index 0da88b7e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_fde_cfa_offset.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 26, 2011 -.Dt DWARF_FDE_CFA_OFFSET 3 -.Os -.Sh NAME -.Nm dwarf_fde_cfa_offset -.Nd add a DW_CFA_offset frame instruction to a DWARF frame descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Fde" -.Fo dwarf_fde_cfa_offset -.Fa "Dwarf_P_Fde fde" -.Fa "Dwarf_Unsigned reg" -.Fa "Dwarf_Signed offset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_fde_cfa_offset -appends a -.Dv DW_CFA_offset -frame instruction to the frame descriptor referenced by argument -.Ar fde . -.Pp -Argument -.Ar fde -should reference a frame descriptor allocated using -.Xr dwarf_new_fde 3 . -.Pp -Argument -.Ar reg -specifies the register operand for the frame instruction. -.Pp -Argument -.Ar offset -specifies the offset operand for the frame instruction. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_fde_cfa_offset -returns the frame descriptor given in argument -.Ar fde . -In case of an error, function -.Fn dwarf_fde_cfa_offset -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_fde_cfa_offset -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar fde -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_fde_inst 3 , -.Xr dwarf_add_frame_cie 3 , -.Xr dwarf_add_frame_fde 3 , -.Xr dwarf_add_frame_fde_b 3 , -.Xr dwarf_new_fde 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_find_macro_value_start.3 b/contrib/elftoolchain/libdwarf/dwarf_find_macro_value_start.3 deleted file mode 100644 index dae8bcb7..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_find_macro_value_start.3 +++ /dev/null @@ -1,68 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 26, 2011 -.Dt DWARF_FIND_MACRO_VALUE_START 3 -.Os -.Sh NAME -.Nm dwarf_find_macro_value_start -.Nd return the address of the first byte of a macro value -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft char * -.Fo dwarf_find_macro_value_start -.Fa "char *macro_string" -.Fc -.Sh DESCRIPTION -Given a DWARF macro string, function -.Fn dwarf_find_macro_value_start -returns a pointer to the first byte of the macro value part of the -macro string. -.Pp -Argument -.Ar macro_string -should be a NUL-terminated string conforming to the macro format -defined in the DWARF standard; see -.Xr dwarf 4 . -.Sh RETURN VALUES -On success, function -.Fn dwarf_find_macro_value_start -returns a pointer to the first byte of the macro value. -If the macro value part was not found, function -.Fn dwarf_find_macro_value_start -returns a pointer to the NUL-byte terminating argument -.Ar macro_string . -.Pp -Function -.Fn dwarf_find_macro_value_start -returns NULL if argument -.Ar macro_string -was NULL. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_macro_details 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_finish.3 b/contrib/elftoolchain/libdwarf/dwarf_finish.3 deleted file mode 100644 index c67ceb21..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_finish.3 +++ /dev/null @@ -1,140 +0,0 @@ -.\" Copyright (c) 2009,2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_FINISH 3 -.Os -.Sh NAME -.Nm dwarf_finish , -.Nm dwarf_object_finish -.Nd free resources associated with a debug descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fn dwarf_finish "Dwarf_Debug dbg" "Dwarf_Error *err" -.Ft int -.Fn dwarf_object_finish "Dwarf_Debug dbg" "Dwarf_Error *err" -.Sh DESCRIPTION -The -.Fn dwarf_finish -and -.Fn dwarf_object_finish -functions are used to release the resources associated with a debug -descriptor allocated by a prior call to -.Xr dwarf_init 3 -and -.Xr dwarf_object_init 3 -respectively. -.Pp -Argument -.Ar dbg -denotes a valid -.Vt Dwarf_Debug -instance. -Argument -.Ar err -will be used to record error information in case of an error. -.Pp -After a call to -.Fn dwarf_finish -or -.Fn dwarf_object_finish , -the argument -.Ar dbg -will be invalid and should not be used further. -.Pp -For -.Vt Dwarf_Debug -descriptors opened using -.Xr dwarf_init 3 , -the application would need to explicitly release the -.Vt Elf -instance associated with the descriptor by first retrieving -the instance using -.Xr dwarf_get_elf 3 -and closing it using -.Xr elf_end 3 . -.Sh RETURN VALUES -These functions return -.Dv DW_DLV_OK -if successful. -In case of an error, the functions return -.Dv DW_DLV_ERROR -and record additional information in argument -.Ar err . -.Sh EXAMPLES -To deallocate a -.Vt Dwarf_Debug -instance allocated using -.Xr dwarf_elf_init 3 -use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Error de; - -if (dwarf_finish(dbg, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_finish: %s", dwarf_errmsg(de)); -.Ed -.Pp -To deallocate a -.Vt Dwarf_Debug -instance allocated using -.Xr dwarf_object_init 3 -use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Error de; - -if (dwarf_object_finish(dbg, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_object_finish: %s", - dwarf_errmsg(de)); -.Ed -.Pp -To deallocate a -.Vt Dwarf_Debug -instance allocated using -.Xr dwarf_init 3 -use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dward_Error de; -Elf *e; - -if (dwarf_get_elf(dbg, &e, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_elf: %s", dwarf_errmsg(&de)); - -if (dwarf_finish(dbg, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_finish: %s", dwarf_errmsg(de)); - -(void) elf_end(e); -.Ed -.Sh SEE ALSO -.Xr dwarf_elf_init 3 , -.Xr dwarf_get_elf 3 , -.Xr dwarf_init 3 , -.Xr dwarf_object_init 3 , -.Xr elf_end 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_finish.c b/contrib/elftoolchain/libdwarf/dwarf_finish.c deleted file mode 100644 index cd52358f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_finish.c +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_finish(Dwarf_Debug dbg, Dwarf_Error *error) -{ - (void) error; /* unused */ - - if (dbg == NULL) - return (DW_DLV_OK); - - _dwarf_deinit(dbg); - _dwarf_elf_deinit(dbg); - - free(dbg); - - return (DW_DLV_OK); -} - - -int -dwarf_object_finish(Dwarf_Debug dbg, Dwarf_Error *error) -{ - (void) error; /* unused */ - - if (dbg == NULL) - return (DW_DLV_OK); - - _dwarf_deinit(dbg); - - free(dbg); - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_form.c b/contrib/elftoolchain/libdwarf/dwarf_form.c deleted file mode 100644 index e9c8d1fa..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_form.c +++ /dev/null @@ -1,480 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009,2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_hasform(Dwarf_Attribute at, Dwarf_Half form, Dwarf_Bool *return_hasform, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_hasform == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *return_hasform = (at->at_form == form); - - return (DW_DLV_OK); -} - -int -dwarf_whatform(Dwarf_Attribute at, Dwarf_Half *return_form, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_form == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *return_form = at->at_form; - - return (DW_DLV_OK); -} - -int -dwarf_whatform_direct(Dwarf_Attribute at, Dwarf_Half *return_form, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_form == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (at->at_indirect) - *return_form = DW_FORM_indirect; - else - *return_form = (Dwarf_Half) at->at_form; - - return (DW_DLV_OK); -} - -int -dwarf_whatattr(Dwarf_Attribute at, Dwarf_Half *return_attr, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_attr == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *return_attr = (Dwarf_Half) at->at_attrib; - - return (DW_DLV_OK); -} - -int -dwarf_formref(Dwarf_Attribute at, Dwarf_Off *return_offset, Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_form) { - case DW_FORM_ref1: - case DW_FORM_ref2: - case DW_FORM_ref4: - case DW_FORM_ref8: - case DW_FORM_ref_udata: - *return_offset = (Dwarf_Off) at->u[0].u64; - ret = DW_DLV_OK; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_global_formref(Dwarf_Attribute at, Dwarf_Off *return_offset, - Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_form) { - case DW_FORM_ref_addr: - case DW_FORM_sec_offset: - *return_offset = (Dwarf_Off) at->u[0].u64; - ret = DW_DLV_OK; - break; - case DW_FORM_ref1: - case DW_FORM_ref2: - case DW_FORM_ref4: - case DW_FORM_ref8: - case DW_FORM_ref_udata: - *return_offset = (Dwarf_Off) at->u[0].u64 + - at->at_die->die_cu->cu_offset; - ret = DW_DLV_OK; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_formaddr(Dwarf_Attribute at, Dwarf_Addr *return_addr, Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_addr == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (at->at_form == DW_FORM_addr) { - *return_addr = at->u[0].u64; - ret = DW_DLV_OK; - } else { - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_formflag(Dwarf_Attribute at, Dwarf_Bool *return_bool, Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_bool == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (at->at_form == DW_FORM_flag || - at->at_form == DW_FORM_flag_present) { - *return_bool = (Dwarf_Bool) (!!at->u[0].u64); - ret = DW_DLV_OK; - } else { - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_formudata(Dwarf_Attribute at, Dwarf_Unsigned *return_uvalue, - Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_uvalue == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_form) { - case DW_FORM_data1: - case DW_FORM_data2: - case DW_FORM_data4: - case DW_FORM_data8: - case DW_FORM_udata: - *return_uvalue = at->u[0].u64; - ret = DW_DLV_OK; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_formsdata(Dwarf_Attribute at, Dwarf_Signed *return_svalue, - Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_svalue == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_form) { - case DW_FORM_data1: - *return_svalue = (int8_t) at->u[0].s64; - ret = DW_DLV_OK; - break; - case DW_FORM_data2: - *return_svalue = (int16_t) at->u[0].s64; - ret = DW_DLV_OK; - break; - case DW_FORM_data4: - *return_svalue = (int32_t) at->u[0].s64; - ret = DW_DLV_OK; - break; - case DW_FORM_data8: - case DW_FORM_sdata: - *return_svalue = at->u[0].s64; - ret = DW_DLV_OK; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_formblock(Dwarf_Attribute at, Dwarf_Block **return_block, - Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_block == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_form) { - case DW_FORM_block: - case DW_FORM_block1: - case DW_FORM_block2: - case DW_FORM_block4: - *return_block = &at->at_block; - ret = DW_DLV_OK; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -int -dwarf_formsig8(Dwarf_Attribute at, Dwarf_Sig8 *return_sig8, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_sig8 == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (at->at_form != DW_FORM_ref_sig8) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - - assert(at->u[0].u64 == 8); - memcpy(return_sig8->signature, at->u[1].u8p, at->u[0].u64); - - return (DW_DLV_OK); -} - -int -dwarf_formexprloc(Dwarf_Attribute at, Dwarf_Unsigned *return_exprlen, - Dwarf_Ptr *return_expr, Dwarf_Error *error) -{ - - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_exprlen == NULL || return_expr == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (at->at_form != DW_FORM_exprloc) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_ERROR); - } - - *return_exprlen = at->u[0].u64; - *return_expr = (void *) at->u[1].u8p; - - return (DW_DLV_OK); -} - -int -dwarf_formstring(Dwarf_Attribute at, char **return_string, - Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || return_string == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_form) { - case DW_FORM_string: - *return_string = (char *) at->u[0].s; - ret = DW_DLV_OK; - break; - case DW_FORM_strp: - *return_string = (char *) at->u[1].s; - ret = DW_DLV_OK; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLV_ERROR; - } - - return (ret); -} - -enum Dwarf_Form_Class -dwarf_get_form_class(Dwarf_Half dwversion, Dwarf_Half attr, - Dwarf_Half offset_size, Dwarf_Half form) -{ - - switch (form) { - case DW_FORM_addr: - return (DW_FORM_CLASS_ADDRESS); - case DW_FORM_block: - case DW_FORM_block1: - case DW_FORM_block2: - case DW_FORM_block4: - return (DW_FORM_CLASS_BLOCK); - case DW_FORM_string: - case DW_FORM_strp: - return (DW_FORM_CLASS_STRING); - case DW_FORM_flag: - case DW_FORM_flag_present: - return (DW_FORM_CLASS_FLAG); - case DW_FORM_ref_addr: - case DW_FORM_ref_sig8: - case DW_FORM_ref_udata: - case DW_FORM_ref1: - case DW_FORM_ref2: - case DW_FORM_ref4: - case DW_FORM_ref8: - return (DW_FORM_CLASS_REFERENCE); - case DW_FORM_exprloc: - return (DW_FORM_CLASS_EXPRLOC); - case DW_FORM_data1: - case DW_FORM_data2: - case DW_FORM_sdata: - case DW_FORM_udata: - return (DW_FORM_CLASS_CONSTANT); - case DW_FORM_data4: - case DW_FORM_data8: - if (dwversion > 3) - return (DW_FORM_CLASS_CONSTANT); - if (form == DW_FORM_data4 && offset_size != 4) - return (DW_FORM_CLASS_CONSTANT); - if (form == DW_FORM_data8 && offset_size != 8) - return (DW_FORM_CLASS_CONSTANT); - /* FALLTHROUGH */ - case DW_FORM_sec_offset: - /* - * DW_FORM_data4 and DW_FORM_data8 can be used as - * offset/pointer before DWARF4. Newly added - * DWARF4 form DW_FORM_sec_offset intents to replace - * DW_FORM_data{4,8} for this purpose. Anyway, to - * determine the actual class for these forms, we need - * to also look at the attribute number. - */ - switch (attr) { - case DW_AT_location: - case DW_AT_string_length: - case DW_AT_return_addr: - case DW_AT_data_member_location: - case DW_AT_frame_base: - case DW_AT_segment: - case DW_AT_static_link: - case DW_AT_use_location: - case DW_AT_vtable_elem_location: - return (DW_FORM_CLASS_LOCLISTPTR); - case DW_AT_stmt_list: - return (DW_FORM_CLASS_LINEPTR); - case DW_AT_start_scope: - case DW_AT_ranges: - return (DW_FORM_CLASS_RANGELISTPTR); - case DW_AT_macro_info: - return (DW_FORM_CLASS_MACPTR); - default: - if (form == DW_FORM_data4 || form == DW_FORM_data8) - return (DW_FORM_CLASS_CONSTANT); - else - return (DW_FORM_CLASS_UNKNOWN); - } - default: - return (DW_FORM_CLASS_UNKNOWN); - } -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_formaddr.3 b/contrib/elftoolchain/libdwarf/dwarf_formaddr.3 deleted file mode 100644 index c2833884..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formaddr.3 +++ /dev/null @@ -1,97 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 23, 2010 -.Dt DWARF_FORMADDR 3 -.Os -.Sh NAME -.Nm dwarf_formaddr -.Nd return the value of an ADDRESS class attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formaddr -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Addr *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_formaddr -sets the location pointed to by argument -.Ar ret -to the address represented by the attribute referenced -by argument -.Ar attr . -The form of argument -.Ar attr -must be -.Dv DW_FORM_addr . -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_formaddr -returns -.Dv DW_DLV_OK -on success. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_formblock -may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar ret -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of form -.Dv DW_FORM_addr . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formblock 3 , -.Xr dwarf_formflag 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_formblock.3 b/contrib/elftoolchain/libdwarf/dwarf_formblock.3 deleted file mode 100644 index 4f67bfce..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formblock.3 +++ /dev/null @@ -1,109 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 23, 2010 -.Dt DWARF_FORMBLOCK 3 -.Os -.Sh NAME -.Nm dwarf_formblock -.Nd return the value of a BLOCK attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formblock -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Block **ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_formblock -sets the location pointed to by argument -.Ar ret -to a pointer to a -.Vt Dwarf_Block -structure containing the value of the attribute referenced -by argument -.Ar attr . -The form of argument -.Ar attr -must be one of -.Dv DW_FORM_block , -.Dv DW_FORM_block1 , -.Dv DW_FORM_block2 -or -.Dv DW_FORM_block4 . -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Ss Memory Management -The memory area referenced by the returned pointer is managed by -the DWARF(3) library. -The application should not attempt to free this memory -area. -Portable code may indicate that the memory area is to be freed by -using -.Xr dwarf_dealloc 3 . -.Sh RETURN VALUES -Function -.Fn dwarf_formblock -returns -.Dv DW_DLV_OK -on success. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_formblock -may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar ret -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of a permitted kind. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formflag 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_formexprloc.3 b/contrib/elftoolchain/libdwarf/dwarf_formexprloc.3 deleted file mode 100644 index cee67aee..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formexprloc.3 +++ /dev/null @@ -1,109 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 25, 2010 -.Dt DWARF_FORMEXPRLOC 3 -.Os -.Sh NAME -.Nm dwarf_formexprloc -.Nd return information about a location expression -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formexprloc -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Unsigned *retlen" -.Fa "Dwarf_Ptr *retexpr" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_formexprloc -allows an application to retrieve the length and the bytes of a -DWARF location expression. -.Pp -Argument -.Ar attr -should reference a DWARF attribute of the form -.Dv DW_FORM_exprloc . -Argument -.Ar retlen -should point to a location that will be set to the length of the -location expression. -Argument -.Ar retexpr -should point to a location that will be set to a pointer to the -content of the location expression itself. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Ss Memory Management -The application should not attempt to free the memory -area referenced by the pointer returned in argument -.Ar retexpr . -.Sh RETURN VALUES -Function -.Fn dwarf_formexprloc -returns -.Dv DW_DLV_OK -on success. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_formexprloc -may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -One of arguments -.Ar attr , -.Ar retlen -or -.Ar retexpr -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of form -.Dv DW_FORM_exprloc . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formblock 3 , -.Xr dwarf_formflag 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_formflag.3 b/contrib/elftoolchain/libdwarf/dwarf_formflag.3 deleted file mode 100644 index 523e506d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formflag.3 +++ /dev/null @@ -1,97 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 21, 2010 -.Dt DWARF_FORMFLAG 3 -.Os -.Sh NAME -.Nm dwarf_formflag -.Nd return the value of a BOOLEAN class attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formflag -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Bool *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_formflag -sets the location pointed to by argument -.Ar ret -to 1 if the attribute referenced by argument -.Ar attr -has a non-zero value, or 0 otherwise. -The form of argument -.Ar attr -must be one of -.Dv DW_FORM_flag -or -.Dv DW_FORM_flag_present . -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_formflag -returns -.Dv DW_DLV_OK -on success. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_formflag -may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar ret -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of a permitted kind. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formblock 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_formref.3 b/contrib/elftoolchain/libdwarf/dwarf_formref.3 deleted file mode 100644 index 0598be18..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formref.3 +++ /dev/null @@ -1,136 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 21, 2010 -.Dt DWARF_FORMREF 3 -.Os -.Sh NAME -.Nm dwarf_formref , -.Nm dwarf_global_formref -.Nd retrieve offsets for REFERENCE class attributes -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formref -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Off *retoffset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_global_formref -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Off *retoffset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions return the offsets associated with a DWARF attribute -descriptor. -.Pp -Function -.Fn dwarf_formref -returns the compilation unit relative offset of the descriptor -referenced by argument -.Ar attr -in the location pointed to by argument -.Ar retoffset . -Argument -.Ar attr -must be a reference that is local to a compilation unit. -Permitted forms for argument -.Ar attr -are -.Dv DW_FORM_ref1 , -.Dv DW_FORM_ref2 , -.Dv DW_FORM_ref4 , -.Dv DW_FORM_ref8 -and -.Dv DW_FORM_ref_udata . -.Pp -Function -.Fn dwarf_global_formref -returns the section-relative offset of the descriptor referenced by -argument -.Ar attr -in the location pointed to by argument -.Ar retoffset . -Argument -.Ar attr -should be a legal -.Sy REFERENCE -class form. -Permitted forms for argument -.Ar attr -are: -.Dv DW_FORM_ref_addr , -.Dv DW_FORM_ref_udata , -.Dv DW_FORM_ref1 , -.Dv DW_FORM_ref2 , -.Dv DW_FORM_ref4 , -.Dv DW_FORM_ref8 -and -.Dv DW_FORM_sec_offset . -The returned offset is relative to the start of the -.Dq .debug_info -ELF section. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -These functions return -.Dv DW_DLV_OK -on success. -In case of an error, these functions return -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar retoffset -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of a permitted kind. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formblock 3 , -.Xr dwarf_formflag 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_formsig8.3 b/contrib/elftoolchain/libdwarf/dwarf_formsig8.3 deleted file mode 100644 index 73ad3797..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formsig8.3 +++ /dev/null @@ -1,96 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 24, 2010 -.Dt DWARF_FORMSIG8 3 -.Os -.Sh NAME -.Nm dwarf_formsig8 -.Nd return the 64-bit type signature for a DWARF type -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formsig8 -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Sig8 *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_formsig8 -sets the location pointed to by argument -.Ar ret -to the 64-bit type signature that is the value of -the attribute referenced by argument -.Ar attr . -The form of argument -.Ar attr -must be -.Dv DW_FORM_ref_sig8 . -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_formsig8 -returns -.Dv DW_DLV_OK -on success. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_formsig8 -may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar ret -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of a permitted kind. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formflag 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 -.Sh HISTORY -Type signatures were added in version 4 of the DWARF specification. diff --git a/contrib/elftoolchain/libdwarf/dwarf_formstring.3 b/contrib/elftoolchain/libdwarf/dwarf_formstring.3 deleted file mode 100644 index 031c0f3f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formstring.3 +++ /dev/null @@ -1,101 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 24, 2010 -.Dt DWARF_FORMSTRING 3 -.Os -.Sh NAME -.Nm dwarf_formstring -.Nd return the value of a STRING class attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formstring -.Fa "Dwarf_Attribute attr" -.Fa "char **ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_formstring -sets the location pointed to by argument -.Ar ret -to a pointer to a NUL-terminated string containing -the value of the attribute referenced by argument -.Ar attr . -The form of argument -.Ar attr -must be one of -.Dv DW_FORM_string -or -.Dv DW_FORM_strp . -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Ss Memory Management -The memory area referenced by the returned pointer is managed by -the DWARF(3) library. -The application should not attempt to directly free this memory -area. -.Sh RETURN VALUES -Function -.Fn dwarf_formstring -returns -.Dv DW_DLV_OK -on success. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_formstring -may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar ret -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of a permitted kind. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formblock 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsdata 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formudata 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_formudata.3 b/contrib/elftoolchain/libdwarf/dwarf_formudata.3 deleted file mode 100644 index a690554c..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_formudata.3 +++ /dev/null @@ -1,122 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 21, 2010 -.Dt DWARF_FORMUDATA 3 -.Os -.Sh NAME -.Nm dwarf_formudata , -.Nm dwarf_formsdata -.Nd return the value of a CONSTANT class attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_formudata -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Unsigned *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_formsdata -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Signed *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions return the value associated with a DWARF attribute -describing a constant. -.Pp -Function -.Fn dwarf_formudata -sets the location pointed to by argument -.Ar ret -to the value of the attribute referenced by argument -.Ar attr , -treating the value as an unsigned quantity. -Argument -.Ar attr -must have one of the following forms: -.Dv DW_FORM_data1 , -.Dv DW_FORM_data2 , -.Dv DW_FORM_data4 , -.Dv DW_FORM_data8 -and -.Dv DW_FORM_udata . -.Pp -Function -.Fn dwarf_formsdata -sets the location pointed to by argument -.Ar ret -to the value of the attribute referenced by argument -.Ar attr , -appropriately sign extended. -Argument -.Ar attr -must have one of the following forms: -.Dv DW_FORM_data1 , -.Dv DW_FORM_data2 , -.Dv DW_FORM_data4 , -.Dv DW_FORM_data8 -and -.Dv DW_FORM_sdata . -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -These functions return -.Dv DW_DLV_OK -on success. -In case of an error, they return -.Dv DW_DLV_ERROR -and set argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ATTR_FORM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar attr -or -.Ar ret -was NULL. -.It Bq Er DW_DLE_ATTR_FORM_BAD -The attribute referenced by argument -.Ar attr -was not of a permitted kind. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_formblock 3 , -.Xr dwarf_formflag 3 , -.Xr dwarf_formref 3 , -.Xr dwarf_formsig8 3 , -.Xr dwarf_formstring 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_frame.c b/contrib/elftoolchain/libdwarf/dwarf_frame.c deleted file mode 100644 index 9319dedb..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_frame.c +++ /dev/null @@ -1,603 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_get_fde_list(Dwarf_Debug dbg, Dwarf_Cie **cie_list, - Dwarf_Signed *cie_count, Dwarf_Fde **fde_list, Dwarf_Signed *fde_count, - Dwarf_Error *error) -{ - - if (dbg == NULL || cie_list == NULL || cie_count == NULL || - fde_list == NULL || fde_count == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (dbg->dbg_internal_reg_table == NULL) { - if (_dwarf_frame_interal_table_init(dbg, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - } - - if (dbg->dbg_frame == NULL) { - if (_dwarf_frame_section_load(dbg, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - if (dbg->dbg_frame == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - } - - if (dbg->dbg_frame->fs_ciearray == NULL || - dbg->dbg_frame->fs_fdearray == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *cie_list = dbg->dbg_frame->fs_ciearray; - *cie_count = dbg->dbg_frame->fs_cielen; - *fde_list = dbg->dbg_frame->fs_fdearray; - *fde_count = dbg->dbg_frame->fs_fdelen; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_list_eh(Dwarf_Debug dbg, Dwarf_Cie **cie_list, - Dwarf_Signed *cie_count, Dwarf_Fde **fde_list, Dwarf_Signed *fde_count, - Dwarf_Error *error) -{ - - if (dbg == NULL || cie_list == NULL || cie_count == NULL || - fde_list == NULL || fde_count == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (dbg->dbg_internal_reg_table == NULL) { - if (_dwarf_frame_interal_table_init(dbg, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - } - - if (dbg->dbg_eh_frame == NULL) { - if (_dwarf_frame_section_load_eh(dbg, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - if (dbg->dbg_eh_frame == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - } - - if (dbg->dbg_eh_frame->fs_ciearray == NULL || - dbg->dbg_eh_frame->fs_fdearray == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *cie_list = dbg->dbg_eh_frame->fs_ciearray; - *cie_count = dbg->dbg_eh_frame->fs_cielen; - *fde_list = dbg->dbg_eh_frame->fs_fdearray; - *fde_count = dbg->dbg_eh_frame->fs_fdelen; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_n(Dwarf_Fde *fdelist, Dwarf_Unsigned fde_index, - Dwarf_Fde *ret_fde, Dwarf_Error *error) -{ - Dwarf_FrameSec fs; - Dwarf_Debug dbg; - - dbg = fdelist != NULL ? (*fdelist)->fde_dbg : NULL; - - if (fdelist == NULL || ret_fde == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - fs = fdelist[0]->fde_fs; - assert(fs != NULL); - - if (fde_index >= fs->fs_fdelen) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *ret_fde = fdelist[fde_index]; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_at_pc(Dwarf_Fde *fdelist, Dwarf_Addr pc, Dwarf_Fde *ret_fde, - Dwarf_Addr *lopc, Dwarf_Addr *hipc, Dwarf_Error *error) -{ - Dwarf_FrameSec fs; - Dwarf_Debug dbg; - Dwarf_Fde fde; - int i; - - dbg = fdelist != NULL ? (*fdelist)->fde_dbg : NULL; - - if (fdelist == NULL || ret_fde == NULL || lopc == NULL || - hipc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - fs = fdelist[0]->fde_fs; - assert(fs != NULL); - - for (i = 0; (Dwarf_Unsigned)i < fs->fs_fdelen; i++) { - fde = fdelist[i]; - if (pc >= fde->fde_initloc && pc < fde->fde_initloc + - fde->fde_adrange) { - *ret_fde = fde; - *lopc = fde->fde_initloc; - *hipc = fde->fde_initloc + fde->fde_adrange - 1; - return (DW_DLV_OK); - } - } - - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); -} - -int -dwarf_get_cie_of_fde(Dwarf_Fde fde, Dwarf_Cie *ret_cie, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || ret_cie == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_cie = fde->fde_cie; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_range(Dwarf_Fde fde, Dwarf_Addr *low_pc, Dwarf_Unsigned *func_len, - Dwarf_Ptr *fde_bytes, Dwarf_Unsigned *fde_byte_len, Dwarf_Off *cie_offset, - Dwarf_Signed *cie_index, Dwarf_Off *fde_offset, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || low_pc == NULL || func_len == NULL || - fde_bytes == NULL || fde_byte_len == NULL || cie_offset == NULL || - cie_index == NULL || fde_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *low_pc = fde->fde_initloc; - *func_len = fde->fde_adrange; - *fde_bytes = fde->fde_addr; - *fde_byte_len = fde->fde_length; - *cie_offset = fde->fde_cieoff; - *cie_index = fde->fde_cie->cie_index; - *fde_offset = fde->fde_offset; - - return (DW_DLV_OK); -} - -int -dwarf_get_cie_info(Dwarf_Cie cie, Dwarf_Unsigned *bytes_in_cie, - Dwarf_Small *version, char **augmenter, Dwarf_Unsigned *caf, - Dwarf_Unsigned *daf, Dwarf_Half *ra, Dwarf_Ptr *initinst, - Dwarf_Unsigned *inst_len, Dwarf_Error *error) -{ - - if (cie == NULL || bytes_in_cie == NULL || version == NULL || - augmenter == NULL || caf == NULL || daf == NULL || ra == NULL || - initinst == NULL || inst_len == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *bytes_in_cie = cie->cie_length; - *version = cie->cie_version; - *augmenter = (char *) cie->cie_augment; - *caf = cie->cie_caf; - *daf = cie->cie_daf; - *ra = cie->cie_ra; - *initinst = cie->cie_initinst; - *inst_len = cie->cie_instlen; - - return (DW_DLV_OK); -} - -int -dwarf_get_cie_index(Dwarf_Cie cie, Dwarf_Signed *cie_index, Dwarf_Error *error) -{ - - if (cie == NULL || cie_index == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *cie_index = cie->cie_index; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_instr_bytes(Dwarf_Fde fde, Dwarf_Ptr *ret_inst, - Dwarf_Unsigned *ret_len, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || ret_inst == NULL || ret_len == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_inst = fde->fde_inst; - *ret_len = fde->fde_instlen; - - return (DW_DLV_OK); -} - -#define RL rt->rt3_rules[table_column] -#define CFA rt->rt3_cfa_rule - -int -dwarf_get_fde_info_for_reg(Dwarf_Fde fde, Dwarf_Half table_column, - Dwarf_Addr pc_requested, Dwarf_Signed *offset_relevant, - Dwarf_Signed *register_num, Dwarf_Signed *offset, Dwarf_Addr *row_pc, - Dwarf_Error *error) -{ - Dwarf_Regtable3 *rt; - Dwarf_Debug dbg; - Dwarf_Addr pc; - int ret; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || offset_relevant == NULL || register_num == NULL || - offset == NULL || row_pc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (pc_requested < fde->fde_initloc || - pc_requested >= fde->fde_initloc + fde->fde_adrange) { - DWARF_SET_ERROR(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE); - return (DW_DLV_ERROR); - } - - ret = _dwarf_frame_get_internal_table(fde, pc_requested, &rt, &pc, - error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - if (table_column == dbg->dbg_frame_cfa_value) { - /* Application ask for CFA. */ - *offset_relevant = CFA.dw_offset_relevant; - *register_num = CFA.dw_regnum; - *offset = CFA.dw_offset_or_block_len; - } else { - /* Application ask for normal registers. */ - if (table_column >= dbg->dbg_frame_rule_table_size || - table_column >= DW_REG_TABLE_SIZE) { - DWARF_SET_ERROR(dbg, error, DW_DLE_FRAME_TABLE_COL_BAD); - return (DW_DLV_ERROR); - } - - *offset_relevant = RL.dw_offset_relevant; - *register_num = RL.dw_regnum; - *offset = RL.dw_offset_or_block_len; - } - - *row_pc = pc; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_info_for_all_regs(Dwarf_Fde fde, Dwarf_Addr pc_requested, - Dwarf_Regtable *reg_table, Dwarf_Addr *row_pc, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Regtable3 *rt; - Dwarf_Addr pc; - Dwarf_Half cfa; - int i, ret; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || reg_table == NULL || row_pc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - assert(dbg != NULL); - - if (pc_requested < fde->fde_initloc || - pc_requested >= fde->fde_initloc + fde->fde_adrange) { - DWARF_SET_ERROR(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE); - return (DW_DLV_ERROR); - } - - ret = _dwarf_frame_get_internal_table(fde, pc_requested, &rt, &pc, - error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - /* - * Copy the CFA rule to the column intended for holding the CFA, - * if it's within the range of regtable. - */ - cfa = dbg->dbg_frame_cfa_value; - if (cfa < DW_REG_TABLE_SIZE) { - reg_table->rules[cfa].dw_offset_relevant = - CFA.dw_offset_relevant; - reg_table->rules[cfa].dw_regnum = CFA.dw_regnum; - reg_table->rules[cfa].dw_offset = CFA.dw_offset_or_block_len; - } - - /* - * Copy other columns. - */ - for (i = 0; i < DW_REG_TABLE_SIZE && i < dbg->dbg_frame_rule_table_size; - i++) { - - /* Do not overwrite CFA column */ - if (i == cfa) - continue; - - reg_table->rules[i].dw_offset_relevant = - rt->rt3_rules[i].dw_offset_relevant; - reg_table->rules[i].dw_regnum = rt->rt3_rules[i].dw_regnum; - reg_table->rules[i].dw_offset = - rt->rt3_rules[i].dw_offset_or_block_len; - } - - *row_pc = pc; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_info_for_reg3(Dwarf_Fde fde, Dwarf_Half table_column, - Dwarf_Addr pc_requested, Dwarf_Small *value_type, - Dwarf_Signed *offset_relevant, Dwarf_Signed *register_num, - Dwarf_Signed *offset_or_block_len, Dwarf_Ptr *block_ptr, - Dwarf_Addr *row_pc, Dwarf_Error *error) -{ - Dwarf_Regtable3 *rt; - Dwarf_Debug dbg; - Dwarf_Addr pc; - int ret; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || value_type == NULL || offset_relevant == NULL || - register_num == NULL || offset_or_block_len == NULL || - block_ptr == NULL || row_pc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (pc_requested < fde->fde_initloc || - pc_requested >= fde->fde_initloc + fde->fde_adrange) { - DWARF_SET_ERROR(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE); - return (DW_DLV_ERROR); - } - - ret = _dwarf_frame_get_internal_table(fde, pc_requested, &rt, &pc, - error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - if (table_column >= dbg->dbg_frame_rule_table_size) { - DWARF_SET_ERROR(dbg, error, DW_DLE_FRAME_TABLE_COL_BAD); - return (DW_DLV_ERROR); - } - - *value_type = RL.dw_value_type; - *offset_relevant = RL.dw_offset_relevant; - *register_num = RL.dw_regnum; - *offset_or_block_len = RL.dw_offset_or_block_len; - *block_ptr = RL.dw_block_ptr; - *row_pc = pc; - - return (DW_DLV_OK); -} - -int -dwarf_get_fde_info_for_cfa_reg3(Dwarf_Fde fde, Dwarf_Addr pc_requested, - Dwarf_Small *value_type, Dwarf_Signed *offset_relevant, - Dwarf_Signed *register_num, Dwarf_Signed *offset_or_block_len, - Dwarf_Ptr *block_ptr, Dwarf_Addr *row_pc, Dwarf_Error *error) -{ - Dwarf_Regtable3 *rt; - Dwarf_Debug dbg; - Dwarf_Addr pc; - int ret; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || value_type == NULL || offset_relevant == NULL || - register_num == NULL || offset_or_block_len == NULL || - block_ptr == NULL || row_pc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (pc_requested < fde->fde_initloc || - pc_requested >= fde->fde_initloc + fde->fde_adrange) { - DWARF_SET_ERROR(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE); - return (DW_DLV_ERROR); - } - - ret = _dwarf_frame_get_internal_table(fde, pc_requested, &rt, &pc, - error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - *value_type = CFA.dw_value_type; - *offset_relevant = CFA.dw_offset_relevant; - *register_num = CFA.dw_regnum; - *offset_or_block_len = CFA.dw_offset_or_block_len; - *block_ptr = CFA.dw_block_ptr; - *row_pc = pc; - - return (DW_DLV_OK); -} - -#undef RL -#undef CFA - -int -dwarf_get_fde_info_for_all_regs3(Dwarf_Fde fde, Dwarf_Addr pc_requested, - Dwarf_Regtable3 *reg_table, Dwarf_Addr *row_pc, Dwarf_Error *error) -{ - Dwarf_Regtable3 *rt; - Dwarf_Debug dbg; - Dwarf_Addr pc; - int ret; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || reg_table == NULL || reg_table->rt3_rules == NULL || - row_pc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - assert(dbg != NULL); - - if (pc_requested < fde->fde_initloc || - pc_requested >= fde->fde_initloc + fde->fde_adrange) { - DWARF_SET_ERROR(dbg, error, DW_DLE_PC_NOT_IN_FDE_RANGE); - return (DW_DLV_ERROR); - } - - ret = _dwarf_frame_get_internal_table(fde, pc_requested, &rt, &pc, - error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - ret = _dwarf_frame_regtable_copy(dbg, ®_table, rt, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - *row_pc = pc; - - return (DW_DLV_OK); -} - -int -dwarf_expand_frame_instructions(Dwarf_Cie cie, Dwarf_Ptr instruction, - Dwarf_Unsigned len, Dwarf_Frame_Op **ret_oplist, Dwarf_Signed *ret_opcnt, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - int ret; - - dbg = cie != NULL ? cie->cie_dbg : NULL; - - if (cie == NULL || instruction == NULL || len == 0 || - ret_oplist == NULL || ret_opcnt == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ret = _dwarf_frame_get_fop(dbg, cie->cie_addrsize, instruction, len, - ret_oplist, ret_opcnt, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - return (DW_DLV_OK); -} - -Dwarf_Half -dwarf_set_frame_rule_table_size(Dwarf_Debug dbg, Dwarf_Half value) -{ - Dwarf_Half old_value; - - old_value = dbg->dbg_frame_rule_table_size; - dbg->dbg_frame_rule_table_size = value; - - return (old_value); -} - -Dwarf_Half -dwarf_set_frame_rule_initial_value(Dwarf_Debug dbg, Dwarf_Half value) -{ - Dwarf_Half old_value; - - old_value = dbg->dbg_frame_rule_initial_value; - dbg->dbg_frame_rule_initial_value = value; - - return (old_value); -} - -Dwarf_Half -dwarf_set_frame_cfa_value(Dwarf_Debug dbg, Dwarf_Half value) -{ - Dwarf_Half old_value; - - old_value = dbg->dbg_frame_cfa_value; - dbg->dbg_frame_cfa_value = value; - - return (old_value); -} - -Dwarf_Half -dwarf_set_frame_same_value(Dwarf_Debug dbg, Dwarf_Half value) -{ - Dwarf_Half old_value; - - old_value = dbg->dbg_frame_same_value; - dbg->dbg_frame_same_value = value; - - return (old_value); -} - -Dwarf_Half -dwarf_set_frame_undefined_value(Dwarf_Debug dbg, Dwarf_Half value) -{ - Dwarf_Half old_value; - - old_value = dbg->dbg_frame_undefined_value; - dbg->dbg_frame_undefined_value = value; - - return (old_value); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_funcs.m4 b/contrib/elftoolchain/libdwarf/dwarf_funcs.m4 deleted file mode 100644 index 3bf03bd9..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_funcs.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_nametbl.m4') -divert(0) -MAKE_NAMETBL_API(func,Func,func,static_func) diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_AT_name.3 b/contrib/elftoolchain/libdwarf/dwarf_get_AT_name.3 deleted file mode 100644 index 1d07942d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_AT_name.3 +++ /dev/null @@ -1,260 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 22, 2011 -.Dt DWARF_GET_AT_NAME 3 -.Os -.Sh NAME -.Nm dwarf_get_ACCESS_name , -.Nm dwarf_get_AT_name , -.Nm dwarf_get_ATE_name , -.Nm dwarf_get_CC_name , -.Nm dwarf_get_CFA_name , -.Nm dwarf_get_CHILDREN_name , -.Nm dwarf_get_DS_name , -.Nm dwarf_get_DSC_name , -.Nm dwarf_get_EH_name , -.Nm dwarf_get_END_name , -.Nm dwarf_get_FORM_name , -.Nm dwarf_get_ID_name , -.Nm dwarf_get_INL_name , -.Nm dwarf_get_LANG_name , -.Nm dwarf_get_LNE_name , -.Nm dwarf_get_LNS_name , -.Nm dwarf_get_MACINFO_name , -.Nm dwarf_get_OP_name , -.Nm dwarf_get_ORD_name , -.Nm dwarf_get_TAG_name , -.Nm dwarf_get_VIRTUALITY_name , -.Nm dwarf_get_VIS_name -.Nd retrieve the symbolic names of DWARF constants -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_ACCESS_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_AT_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_ATE_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_CC_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_CFA_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_CHILDREN_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_DS_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_DSC_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_EH_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_END_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_FORM_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_ID_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_INL_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_LANG_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_LNE_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_LNS_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_MACINFO_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_OP_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_ORD_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_TAG_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_VIRTUALITY_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Ft int -.Fo dwarf_get_VIS_name -.Fa "unsigned val" -.Fa "char **str" -.Fc -.Sh DESCRIPTION -These functions return the symbolic name of a numeric DWARF constant. -.Pp -Argument -.Ar val -specifies the numeric value whose symbolic name is desired. -.Pp -Argument -.Ar str -should point to a location which will hold the returned -NUL-terminated string containing the symbolic name of the -specified value. -.Pp -The list of functions and the DWARF constants that they accept are: -.Pp -.Bl -tag -width ".Fn dwarf_get_VIRTUALITY_name" -compact -.It Fn dwarf_get_ACCESS_name -.Dv DW_ACCESS_* -constants. -.It Fn dwarf_get_AT_name -.Dv DW_AT_* -constants. -.It Fn dwarf_get_ATE_name -.Dv DW_ATE_* -constants. -.It Fn dwarf_get_CC_name -.Dv DW_CC_* -constants. -.It Fn dwarf_get_CFA_name -.Dv DW_CFA_* -constants. -.It Fn dwarf_get_CHILDREN_name -.Dv DW_CHILDREN_* -constants. -.It Fn dwarf_get_DS_name -.Dv DW_DS_* -constants. -.It Fn dwarf_get_DSC_name -.Dv DW_DSC_* -constants. -.It Fn dwarf_get_EH_name -.Dv DW_EH_PE_* -constants. -.It Fn dwarf_get_END_name -.Dv DW_END_* -constants. -.It Fn dwarf_get_FORM_name -.Dv DW_FORM_* -constants. -.It Fn dwarf_get_ID_name -.Dv DW_ID_* -constants. -.It Fn dwarf_get_INL_name -.Dv DW_INL_* -constants. -.It Fn dwarf_get_LANG_name -.Dv DW_LANG_* -constants. -.It Fn dwarf_get_LNE_name -.Dv DW_LNE_* -constants. -.It Fn dwarf_get_LNS_name -.Dv DW_LNS_* -constants. -.It Fn dwarf_get_MACINFO_name -.Dv DW_MACINFO_* -constants. -.It Fn dwarf_get_OP_name -.Dv DW_OP_* -constants. -.It Fn dwarf_get_ORD_name -.Dv DW_ORD_* -constants. -.It Fn dwarf_get_TAG_name -.Dv DW_TAG_* -constants. -.It Fn dwarf_get_VIRTUALITY_name -.Dv DW_VIRTUALITY_* -constants. -.It Fn dwarf_get_VIS_name -.Dv DW_VIS_* -constants. -.El -.Sh RETURN VALUES -These functions return -.Dv DW_DLV_OK -on success. -If the DWARF constant denoted by argument -.Ar val -is not recognized, these function return -.Dv DW_DLV_NO_ENTRY . -.Sh SEE ALSO -.Xr dwarf 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev.3 b/contrib/elftoolchain/libdwarf/dwarf_get_abbrev.3 deleted file mode 100644 index 04ab4b4a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev.3 +++ /dev/null @@ -1,179 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 27, 2011 -.Dt DWARF_GET_ABBREV 3 -.Os -.Sh NAME -.Nm dwarf_get_abbrev -.Nd retrieve abbreviation information -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_abbrev -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Unsigned offset" -.Fa "Dwarf_Abbrev *ret_abbrev" -.Fa "Dwarf_Unsigned *length" -.Fa "Dwarf_Unsigned *attr_count" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_abbrev -retrieves information about an abbreviation from the DWARF abbreviations -section, -.Dq ".debug_abbrev" . -Abbreviation information is returned using an opaque descriptor -of type -.Vt Dwarf_Abbrev . -The returned -.Vt Dwarf_Abbrev -descriptor may then be passed to the other abbreviation related APIs -in the DWARF(3) API to retrieve specific information about the -abbreviation. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar offset -should be an offset, relative to the -.Dq ".debug_abbrev" -section, to the start of an abbreviation entry. -.Pp -Argument -.Ar ret_abbrev -should point to a location that will hold a pointer to the -returned -.Vt Dwarf_Abbrev -descriptor. -.Pp -Argument -.Ar length -should point to a location that will hold the number of bytes used -by the abbrevation in the DWARF -.Dq ".debug_abbrev" -section. -.Pp -Argument -.Ar attr_count -should point to a location that will hold the number of -attributes in the abbrevation. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Ss Memory Management -The memory area used for the -.Vt Dwarf_Abbrev -descriptor returned in argument -.Ar ret_abbrev -is allocated by the -.Lb libdwarf . -Application code should use function -.Fn dwarf_dealloc -with the allocation type -.Dv DW_DLA_ABBREV -to free the memory area when the -.Vt Dwarf_Abbrev -descriptor is no longer needed. -.Ss Application Programming Notes -The last abbreviation entry in a standard DWARF abbreviation section -will have a special length value of 1. -.Sh RETURN VALUES -Function -.Fn dwarf_get_abbrev -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if there is no abbreviation information at offset -.Ar offset . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To loop through all the abbreviation information associated with -a DWARF debug context, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Abbrev ab; -Dwarf_Off aboff; -Dwarf_Unsigned length, attr_count; -Dwarf_Half tag; -Dwarf_Error de; -int ret; - -while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, &aboff, - NULL, NULL, &de)) == DW_DLV_OK) { - while ((ret = dwarf_get_abbrev(re->dbg, aboff, &ab, &length, - &attr_count, &de)) == DW_DLV_OK) { - if (length == 1) /* Last entry. */ - break; - aboff += length; - if (dwarf_get_abbrev_tag(ab, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_get_abbrev_tag failed: %s", - dwarf_errmsg(de)); - continue; - } - if (ret != DW_DLV_OK) - warnx("dwarf_get_abbrev: %s", dwarf_errmsg(de)); -} -if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_abbrev -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar ret_abbrev , -.Ar length -or -.Ar attr_count -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There is no abbreviation information at offset -.Ar offset . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_get_abbrev_children_flag 3 , -.Xr dwarf_get_abbrev_code 3 , -.Xr dwarf_get_abbrev_entry 3 , -.Xr dwarf_get_abbrev_tag 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_children_flag.3 b/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_children_flag.3 deleted file mode 100644 index e0702065..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_children_flag.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 14, 2011 -.Dt DWARF_GET_ABBREV_CHILDREN_FLAG 3 -.Os -.Sh NAME -.Nm dwarf_get_abbrev_children_flag -.Nd return a flag indicating the presence of children -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_abbrev_children_flag -.Fa "Dwarf_Abbrev abbrev" -.Fa "Dwarf_Signed *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_abbrev_children_flag -retrieves a flag indicating whether the DWARF debug information entry -associated with a DWARF abbreviation descriptor has child entries. -.Pp -Argument -.Ar abbrev -should be a valid DWARF abbreviation descriptor, as returned by -.Xr dwarf_get_abbrev 3 . -.Pp -Argument -.Ar ret -should point to a location which will hold the returned -flag. -The value returned will be one of the following: -.Bl -tag -width ".Dv DW_CHILDREN_yes" -compact -.It Dv DW_CHILDREN_yes -The debugging information entry associated with the -specified abbreviation descriptor has children. -.It Dv DW_CHILDREN_no -The debugging information entry associated with the -specified abbreviation descriptor has no children. -.El -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_abbrev_children_flag -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_abbrev_children_flag -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar abbrev -or -.Ar ret -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_abbrev 3 , -.Xr dwarf_get_abbrev_code 3 , -.Xr dwarf_get_abbrev_entry 3 , -.Xr dwarf_get_abbrev_tag 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_code.3 b/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_code.3 deleted file mode 100644 index a379424b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_code.3 +++ /dev/null @@ -1,86 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 13, 2011 -.Dt DWARF_GET_ABBREV_CODE 3 -.Os -.Sh NAME -.Nm dwarf_get_abbrev_code -.Nd retrieve the abbreviation code for an abbreviation -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_abbrev_code -.Fa "Dwarf_Abbrev abbrev" -.Fa "Dwarf_Unsigned *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_abbrev_code -retrieves the abbreviation code for the abbreviation entry descriptor -referenced by argument -.Ar abbrev . -.Pp -Argument -.Ar ret -should point to a location which will hold the returned -abbreviation code. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_abbrev_code -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_abbrev_code -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar abbrev -or -.Ar ret -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_abbrev 3 , -.Xr dwarf_get_abbrev_children_flag 3 , -.Xr dwarf_get_abbrev_entry 3 , -.Xr dwarf_get_abbrev_tag 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_entry.3 b/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_entry.3 deleted file mode 100644 index e2a93bd2..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_entry.3 +++ /dev/null @@ -1,159 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 02, 2011 -.Dt DWARF_GET_ABBREV_ENTRY 3 -.Os -.Sh NAME -.Nm dwarf_get_abbrev_entry -.Nd retrieve attribute information from an abbreviation descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_abbrev_entry -.Fa "Dwarf_Abbrev abbrev" -.Fa "Dwarf_Signed ndx" -.Fa "Dwarf_Half *code" -.Fa "Dwarf_Signed *form" -.Fa "Dwarf_Off *offset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_abbrev_entry -retrieves attribute information from a DWARF abbreviation descriptor. -.Pp -Argument -.Ar abbrev -should be a valid abbreviation descriptor, as returned by function -.Xr dwarf_get_abbrev 3 . -.Pp -Argument -.Ar ndx -specifies the 0-based index of the attribute. -The total count of the attributes contained in the abbreviation -entry can be retrieved using the function -.Xr dwarf_get_abbrev 3 . -.Pp -Argument -.Ar code -should point to a location which will hold a returned -attribute code. -.Pp -Argument -.Ar form -should point to a location which will hold the returned -form of the attribute. -.Pp -Argument -.Ar offset -should point to a location which will hold a returned offset, relative -to the -.Dq ".debug_abbrev" -section, for the specified attribute. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_abbrev_entry -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if the attribute index specified by argument -.Ar ndx -is out of range. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To loop through all the attribute entries contained in the -abbreviation section, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Abbrev ab; -Dwarf_Off aboff, atoff; -Dwarf_Signed form; -Dwarf_Half attr; -Dwarf_Unsigned length, attr_count; -Dwarf_Error de; -int i, ret; - -/* ...allocate 'dbg' using dwarf_init(3) ... */ - -while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, &aboff, - NULL, NULL, &de)) == DW_DLV_OK) { - while ((ret = dwarf_get_abbrev(dbg, aboff, &ab, &length, - &attr_count, &de)) == DW_DLV_OK) { - if (length == 1) /* Last entry. */ - break; - aboff += length; - for (i = 0; (Dwarf_Unsigned) i < attr_count; i++) { - if (dwarf_get_abbrev_entry(ab, i, - &attr, &form, &atoff, &de) != DW_DLV_OK) { - warnx("dwarf_get_abbrev_entry failed:" - " %s", dwarf_errmsg(de)); - continue; - } - /* .. use the retrieved information ... */ - } - } - - if (ret != DW_DLV_OK) - warnx("dwarf_get_abbrev: %s", dwarf_errmsg(de)); -} - -if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_abbrev_entry -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar abbrev , -.Ar code , -.Ar form -or -.Ar offset -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The attribute index specified by argument -.Ar ndx -was out of range. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_abbrev 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_tag.3 b/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_tag.3 deleted file mode 100644 index ee3ec33b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_abbrev_tag.3 +++ /dev/null @@ -1,86 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 13, 2011 -.Dt DWARF_GET_ABBREV_TAG 3 -.Os -.Sh NAME -.Nm dwarf_get_abbrev_tag -.Nd retrieve the tag for an abbreviation -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_abbrev_tag -.Fa "Dwarf_Abbrev abbrev" -.Fa "Dwarf_Half *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_abbrev_tag -retrieves the tag for the abbreviation entry descriptor referenced by -argument -.Ar abbrev . -.Pp -Argument -.Ar ret -should point to a location which will hold the returned -abbreviation tag. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_abbrev_tag -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_abbrev_tag -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar abbrev -or -.Ar ret -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_abbrev 3 , -.Xr dwarf_get_abbrev_children_flag 3 , -.Xr dwarf_get_abbrev_code 3 , -.Xr dwarf_get_abbrev_entry 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_address_size.3 b/contrib/elftoolchain/libdwarf/dwarf_get_address_size.3 deleted file mode 100644 index 83292039..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_address_size.3 +++ /dev/null @@ -1,82 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 14, 2010 -.Dt DWARF_GET_ADDRESS_SIZE 3 -.Os -.Sh NAME -.Nm dwarf_get_address_size -.Nd return the number of bytes needed to represent an address -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_address_size -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Half *addr_size" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_address_size -returns the size in bytes of a native address for a program object. -.Pp -Argument -.Ar dbg -should denote a DWARF debug context created from a program object using -.Xr dwarf_init 3 . -Argument -.Ar addr_size -should point to a location that will hold the returned size. -Argument -.Ar err , -if non-NULL, it will be used to return error information. -.Sh RETURN VALUES -On success, function -.Fn dwarf_tag -returns -.Dv DW_DLV_OK . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_address_size -can fail with the following error: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arguments -.Ar dbg -or -.Ar addr_size -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_finish 3 , -.Xr dwarf_init 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_arange.3 b/contrib/elftoolchain/libdwarf/dwarf_get_arange.3 deleted file mode 100644 index 90b92c08..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_arange.3 +++ /dev/null @@ -1,121 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 16, 2011 -.Dt DWARF_GET_ARANGE 3 -.Os -.Sh NAME -.Nm dwarf_get_arange -.Nd retrieve the address range descriptor for an address -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_arange -.Fa "Dwarf_Arange *ar_list" -.Fa "Dwarf_Unsigned ar_cnt" -.Fa "Dwarf_Addr addr" -.Fa "Dwarf_Arange *ret_ar" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_arange -searches an array of -.Vt Dwarf_Arange -descriptors for one that covers a given address. -.Pp -Argument -.Ar ar_list -should point to an array of -.Vt Dwarf_Arange -descriptors. -.Pp -Argument -.Ar ar_cnt -specifies the number of -.Vt Dwarf_Arange -descriptors in the array pointed to by argument -.Ar ar_list . -.Pp -Argument -.Ar addr -specifies the address being looked up. -.Pp -Argument -.Ar ret_ar -will be used to store the -.Vt Dwarf_Arange -descriptor that covers the given address. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_arange -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if there is no -.Vt Dwarf_Arange -descriptor that covers the provided address. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_arange -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar ar_list -or -.Ar ret_ar -was NULL. -.It Bq Er DW_DLE_ARGUMENT -Value of argument -.Ar ar_cnt -equals to 0. -.It Bq Er DW_DLE_NO_ENTRY -A -.Vt Dwarf_Arange -descriptor that covers the given address -was not found. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_arange_cu_header_offset 3 , -.Xr dwarf_get_arange_info 3 , -.Xr dwarf_get_aranges 3 , -.Xr dwarf_get_cu_die_offset 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_arange_info.3 b/contrib/elftoolchain/libdwarf/dwarf_get_arange_info.3 deleted file mode 100644 index 693fe7f2..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_arange_info.3 +++ /dev/null @@ -1,135 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 16, 2011 -.Dt DWARF_GET_ARANGE_INFO 3 -.Os -.Sh NAME -.Nm dwarf_get_arange_info -.Nd extract address range information from a descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_arange_info -.Fa "Dwarf_Arange ar" -.Fa "Dwarf_Addr *start" -.Fa "Dwarf_Unsigned *length" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_arange_info -extracts address range information from a -.Vt Dwarf_Arange -descriptor. -.Pp -Argument -.Ar ar -should reference a valid -.Vt Dwarf_Arange -descriptor returned by function -.Xr dwarf_get_aranges 3 . -.Pp -Argument -.Ar start -should point to a location which will hold the start value of the -address range associated with the descriptor. -.Pp -Argument -.Ar length -should point to a location which will hold the length in bytes of the -address range associated with the descriptor. -.Pp -Argument -.Ar cu_die_offset -should point to a location which will be set to an offset, relative to -the -.Dq ".debug_info" -section, of the first debugging information entry in the compilation -unit associated with argument -.Ar ar . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_arange_info -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To loop through all the address lookup table entries, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Addr start; -Dwarf_Arange *aranges; -Dwarf_Off die_off; -Dwarf_Signed i, cnt; -Dwarf_Unsigned length; -Dwarf_Error de; - -if (dwarf_get_aranges(dbg, &aranges, &cnt, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_aranges: %s", - dwarf_errmsg(de)); -for (i = 0; i < cnt; i++) { - if (dwarf_get_arange_info(aranges[i], &start, &length, - &die_off, &de) != DW_DLV_OK) { - warnx("dwarf_get_arange_info: %s", - dwarf_errmsg(de)); - continue; - } - /* Do something with the returned information. */ -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_arange_info -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar ar , -.Ar start , -.Ar length -or -.Ar cu_die_offset -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_arange 3 , -.Xr dwarf_get_arange_cu_header_offset 3 , -.Xr dwarf_get_aranges 3 , -.Xr dwarf_get_cu_die_offset 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_aranges.3 b/contrib/elftoolchain/libdwarf/dwarf_get_aranges.3 deleted file mode 100644 index e5b466f3..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_aranges.3 +++ /dev/null @@ -1,148 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_GET_ARANGES 3 -.Os -.Sh NAME -.Nm dwarf_get_aranges -.Nd retrieve program address space mappings -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_aranges -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Arange **ar_list" -.Fa "Dwarf_Signed *ar_cnt" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -The function -.Fn dwarf_get_aranges -retrieves address range information from the -.Dq ".debug_aranges" -DWARF section. -Information about address ranges is returned using opaque descriptors -of type -.Vt Dwarf_Arange , -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar ar_list -should point to a location which will be set to a pointer to an array -of -.Vt Dwarf_Arange -descriptors. -.Pp -Argument -.Ar ar_cnt -should point to a location which will be set to the number of -descriptors returned. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Ss Memory Management -The memory area used for the array returned in argument -.Ar ar_list -is owned by -.Lb libdwarf . -Application code should not attempt to directly free this area. -Portable applications should instead use -.Xr dwarf_dealloc 3 -to indicate that the memory area may be freed. -.Sh RETURN VALUES -Function -.Fn dwarf_get_aranges -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if there is no -.Dq ".debug_aranges" -section associated with the specified debugging context. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To loop through all the address lookup table entries, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Addr start; -Dwarf_Arange *aranges; -Dwarf_Off die_off; -Dwarf_Signed i, cnt; -Dwarf_Unsigned length; -Dwarf_Error de; - -if (dwarf_get_aranges(dbg, &aranges, &cnt, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_aranges: %s", - dwarf_errmsg(de)); - -for (i = 0; i < cnt; i++) { - if (dwarf_get_arange_info(aranges[i], &start, &length, - &die_off, &de) != DW_DLV_OK) { - warnx("dwarf_get_arange_info: %s", - dwarf_errmsg(de)); - continue; - } - /* Do something with the returned information. */ -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_aranges -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar ar_list -or -.Ar ar_cnt -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The debugging context -.Ar dbg -did not contain a -.Dq ".debug_aranges" -string section. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_arange 3 , -.Xr dwarf_get_arange_cu_header_offset 3 , -.Xr dwarf_get_arange_info 3 , -.Xr dwarf_get_cu_die_offset 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_cie_index.3 b/contrib/elftoolchain/libdwarf/dwarf_get_cie_index.3 deleted file mode 100644 index 540fb3b4..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_cie_index.3 +++ /dev/null @@ -1,86 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 22, 2011 -.Dt DWARF_GET_CIE_INDEX 3 -.Os -.Sh NAME -.Nm dwarf_get_cie_index -.Nd retrieve the index of a CIE descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_cie_index -.Fa "Dwarf_Cie cie" -.Fa "Dwarf_Signed *cie_index" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_cie_index -retrieves the zero-based index of a given CIE descriptor in the array -of CIE descriptors returned by the functions -.Xr dwarf_get_fde_list 3 -and -.Xr dwarf_get_fde_list_eh 3 . -.Pp -Argument -.Ar cie -should reference a valid DWARF CIE descriptor. -.Pp -Argument -.Ar cie_index -should point to a location that will hold the returned index. -.Sh RETURN VALUES -Function -.Fn dwarf_get_cie_index -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_cie_index -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arugments -.Ar cie -or -.Ar cie_index -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cie_info 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_cie_info.3 b/contrib/elftoolchain/libdwarf/dwarf_get_cie_info.3 deleted file mode 100644 index a5d61f88..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_cie_info.3 +++ /dev/null @@ -1,150 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 29, 2011 -.Dt DWARF_GET_CIE_INFO 3 -.Os -.Sh NAME -.Nm dwarf_get_cie_info -.Nd retrieve information associated with a CIE descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_cie_info -.Fa "Dwarf_Cie cie" -.Fa "Dwarf_Unsigned *cie_byte_len" -.Fa "Dwarf_Small *version" -.Fa "char **augmentation" -.Fa "Dwarf_Unsigned *caf" -.Fa "Dwarf_Unsigned *daf" -.Fa "Dwarf_Half *ra" -.Fa "Dwarf_Ptr *init_inst" -.Fa "Dwarf_Unsigned *inst_len" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_cie_info -retrieves the information associated with a given CIE descriptor. -.Pp -Argument -.Ar cie -should reference a valid DWARF CIE descriptor, such as would be -returned by function -.Xr dwarf_get_cie_of_fde 3 . -.Pp -Argument -.Ar cie_byte_len -should point to a location that will hold the length in bytes of -the CIE descriptor itself. -.Pp -Argument -.Ar version -should point to a location that will hold the version number of -the CIE descriptor. -.Pp -Arugment -.Ar augmentation -should point to a location that will be set to a pointer to a -NUL-terminated string containing augmentation data encoded as UTF-8. -.Pp -Argument -.Ar caf -should point to a location that will hold the code alignment -factor recorded in the CIE descriptor. -.Pp -Arugment -.Ar daf -should point to a location that will hold the data alignment -factor recorded in the CIE descriptor. -.Pp -Argument -.Ar ra -should point to a location that will hold the return address -recorded in the CIE descriptor. -.Pp -Argument -.Ar init_inst -should point to a location that will be set to a pointer to an array -of bytes containing the initial instructions associated with the CIE -descriptor. -.Pp -Argument -.Ar inst_len -should point to a location that will hold the length in bytes -of the initial instructions returned in argument -.Ar init_inst . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_cie_info -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_cie_info -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar cie , -.Ar cie_byte_len , -.Ar version , -.Ar augmentation , -.Ar caf , -.Ar daf , -.Ar ra , -.Ar init_inst -or -.Ar inst_len -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cie_index 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_instr_bytes 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_get_fde_range 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_cie_of_fde.3 b/contrib/elftoolchain/libdwarf/dwarf_get_cie_of_fde.3 deleted file mode 100644 index f995b46d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_cie_of_fde.3 +++ /dev/null @@ -1,88 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 22, 2011 -.Dt DWARF_GET_CIE_OF_FDE 3 -.Os -.Sh NAME -.Nm dwarf_get_cie_of_fde -.Nd retrieve CIE descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_cie_of_fde -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Cie *ret_cie" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_cie_of_fde -retrieves the CIE descriptor associated with a given FDE descriptor. -.Pp -Argument -.Ar fde -should reference a valid FDE descriptor. -.Pp -Argument -.Ar ret_cie -should point to a location that will hold the returned CIE -descriptor. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_cie_of_fde -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_cie_of_fde -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of arugments -.Ar fde -or -.Ar ret_cie -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cie_index 3 , -.Xr dwarf_get_cie_info 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_n 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_cu_die_offset.3 b/contrib/elftoolchain/libdwarf/dwarf_get_cu_die_offset.3 deleted file mode 100644 index d1fe0799..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_cu_die_offset.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 10, 2011 -.Dt DWARF_GET_CU_DIE_OFFSET 3 -.Os -.Sh NAME -.Nm dwarf_get_arange_cu_header_offset , -.Nm dwarf_get_cu_die_offset -.Nd retrieve compilation unit offsets -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_arange_cu_header_offset -.Fa "Dwarf_Arange ar" -.Fa "Dwarf_Off *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_get_cu_die_offset -.Fa "Dwarf_Arange ar" -.Fa "Dwarf_Off *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve the offsets, relative to the -.Dq ".debug_info" -DWARF section, of the debugging information entries describing the -compilation unit associated with a -.Vt Dwarf_Arange -descriptor. -.Pp -Function -.Fn dwarf_get_arange_cu_header_offset -retrieves the offset of the compilation unit header associated with -argument -.Ar ar , -and stores it in the location pointed to by argument -.Ar ret . -.Pp -Function -.Fn dwarf_get_cu_die_offset -retrieves the offset of the debugging information entry for the -compilation unit associated with argument -.Ar ar , -and stores it in the location pointed to by argument -.Ar ret . -.Pp -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar ar -was not a valid -.Vt Dwarf_Arange -descriptor. -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar ret -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_arange 3 , -.Xr dwarf_get_arange_info 3 , -.Xr dwarf_get_aranges 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 b/contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 deleted file mode 100644 index 032a979b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_die_infotypes_flag.3 +++ /dev/null @@ -1,73 +0,0 @@ -.\" Copyright (c) 2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 20, 2014 -.Dt DWARF_GET_DIE_INFOTYPES_FLAG 3 -.Os -.Sh NAME -.Nm dwarf_get_die_infotypes_flag -.Nd indicate the originating DWARF section for a DIE -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_Bool -.Fo dwarf_get_die_infotypes_flag -.Fa "Dwarf_Die die" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_die_infotypes_flag -returns a flag indicating the originating DWARF section for the -debugging information entry referenced by argument -.Ar die . -.Pp -Argument -.Ar die -should reference a valid debugging information entry descriptor. -.Sh RETURN VALUES -Function -.Fn dwarf_get_die_infotypes_flag -returns a non-zero value if argument -.Ar die -originates in the -.Dq .debug_info -section. -.Pp -It returns zero if argument -.Ar die -originates in the -.Dq .debug_types -section. -.Sh ERRORS -Function -.Fn dwarf_get_die_infotypes_flag -always succeeds. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_next_cu_header_c 3 , -.Xr dwarf_offdie_b 3 , -.Xr dwarf_siblingof_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_elf.3 b/contrib/elftoolchain/libdwarf/dwarf_get_elf.3 deleted file mode 100644 index d26da81b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_elf.3 +++ /dev/null @@ -1,103 +0,0 @@ -.\" Copyright (c) 2009 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_GET_ELF 3 -.Os -.Sh NAME -.Nm dwarf_get_elf -.Nd retrieve the -.Vt Elf -descriptor associated with a -.Vt Dwarf_Debug -instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_elf -.Fa "Dwarf_Debug dbg" -.Fa "Elf **elf" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_elf -returns the -.Vt Elf -descriptor associated with a -.Vt Dwarf_Debug -instance. -.Pp -Argument -.Ar dbg -should be a handle to a valid -.Vt Dwarf_Debug -instance returned by a prior call to -.Xr dwarf_init 3 -or -.Xr dwarf_elf_init 3 . -.Pp -Argument -.Ar elf -points a location into which a handle to an -.Vt Elf -descriptor will be written. -.Pp -Argument -.Ar err -is used to record error information in case of failure. -.Sh RETURN VALUES -On success, function -.Fn dwarf_get_elf -returns -.Dv DW_DLV_OK . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh EXAMPLES -To retrieve the -.Vt Elf -instance associated with a -.Vt Dwarf_Debug -instance use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Error de; -Elf *elf; - -\&... allocate dbg using dwarf_init() etc ... - -if (dwarf_get_elf(dbg, &elf, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_elf: %s", dwarf_errmsg(de)); -.Ed -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_errmsg 3 , -.Xr dwarf_finish 3 , -.Xr dwarf_init 3 , -.Xr elf 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_at_pc.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_at_pc.3 deleted file mode 100644 index d6cebe2a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_at_pc.3 +++ /dev/null @@ -1,125 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 22, 2011 -.Dt DWARF_GET_FDE_AT_PC 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_at_pc -.Nd retrieve the FDE descriptor for an address -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_at_pc -.Fa "Dwarf_Fde *fdelist" -.Fa "Dwarf_Addr pc" -.Fa "Dwarf_Fde *ret_fde" -.Fa "Dwarf_Addr *lopc" -.Fa "Dwarf_Addr *hipc" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_at_pc -searches the provided array of DWARF FDE descriptors for a descriptor -covering a given program counter address. -.Pp -Argument -.Ar fdelist -should point to an array of FDE descriptors, as returned by the functions -.Xr dwarf_get_fde_list 3 -or -.Xr dwarf_get_fde_list_eh 3 . -.Pp -Argument -.Ar pc -should contain the program counter address being looked up. -.Pp -Argument -.Ar ret_fde -should point to a location that will hold the returned FDE descriptor. -.Pp -Argument -.Ar lopc -should point to a location that will be set to the lowest address -covered by the returned FDE descriptor. -.Pp -Argument -.Ar hipc -should point to a location that will be set to the highest address -covered by the returned FDE descriptor. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_at_pc -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if a FDE descriptor that covers the address specified by argument -.Ar pc -is not found. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_at_pc -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va fdelist , -.Va ret_fde , -.Va lopc , -or -.Va hipc -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -These was no FDE descriptor covering the address specified by argument -.Ar pc . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_instr_bytes 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_get_fde_range 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs.3 deleted file mode 100644 index 81d30237..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs.3 +++ /dev/null @@ -1,156 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 4, 2011 -.Dt DWARF_GET_FDE_INFO_FOR_ALL_REGS 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_info_for_all_regs -.Nd retrieve register rule row -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_info_for_all_regs -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Addr pc" -.Fa "Dwarf_Regtable *reg_table" -.Fa "Dwarf_Addr *row_pc" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_info_for_all_regs -retrieves a row from the register rule table associated with the given -FDE descriptor. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Argument -.Ar pc -should hold the program counter address to be used to locate the -desired table row. -.Pp -Argument -.Ar reg_table -should point to a -.Vt Dwarf_Regtable -descriptor which will hold the returned table row of register rules. -.Pp -Argument -.Ar row_pc -should point to a location which will be set to the lowest program -counter address associated with the table row. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Pp -The -.Vt Dwarf_Regtable -descriptor is defined in the header file -.In libdwarf.h : -.Bd -literal -offset indent -typedef struct { - struct { - Dwarf_Small dw_offset_relevant; - Dwarf_Half dw_regnum; - Dwarf_Addr dw_offset; - } rules[DW_REG_TABLE_SIZE]; -} Dwarf_Regtable; -.Ed -.Pp -For each of the register rules returned, -the -.Va dw_offset_relevant -field is set to 1 if the register rule has a offset value. -The -.Va dw_regnum -field is set to the register number associated with the regsiter rule. -The -.Va dw_offset -field is set to the offset value associated with the register rule. -.Pp -The number of register columns returned is either the constant -value -.Dv DW_REG_TABLE_SIZE as defined -in the header file -.In libdwarf.h , -or the value set by function -.Xr dwarf_set_frame_rule_table_size 3 , -whichever is smaller. -.Ss COMPATIBILITY -Function -.Fn dwarf_get_fde_info_for_all_regs -is deprecated since it only supports DWARF2 frame sections. -Applications should instead use function -.Xr dwarf_get_fde_info_for_all_regs3 3 -which supports both DWARF2 and DWARF3 frame sections. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_info_for_all_regs -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_info_for_all_regs -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar fde , -.Ar reg_table -or -.Ar row_pc -was NULL. -.It Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE -The program counter value provided in argument -.Ar pc -did not fall in the range covered by argument -.Ar fde . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_set_frame_cfa_value 3 , -.Xr dwarf_set_frame_rule_initial_value 3 , -.Xr dwarf_set_frame_rule_table_size 3 , -.Xr dwarf_set_frame_same_value 3 , -.Xr dwarf_set_frame_undefined_value 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs3.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs3.3 deleted file mode 100644 index 2215b8f6..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_all_regs3.3 +++ /dev/null @@ -1,183 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 26, 2011 -.Dt DWARF_GET_FDE_INFO_FOR_ALL_REGS3 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_info_for_all_regs3 -.Nd retrieve register rule row -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_info_for_all_regs3 -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Addr pc" -.Fa "Dwarf_Regtable3 *reg_table" -.Fa "Dwarf_Addr *row_pc" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_info_for_all_regs3 -retrieves a row from the register rule table associated with the given -FDE descriptor. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Argument -.Ar pc -should hold the program counter address to be used to locate the -desired table row. -.Pp -Argument -.Ar reg_table -should point to a -.Vt Dwarf_Regtable3 -descriptor which will hold the returned table row of register rules. -The -.Vt Dwarf_Regtable3 -descriptor is defined in the header file -.In libdwarf.h : -.Bd -literal -offset indent -typedef struct { - Dwarf_Small dw_offset_relevant; - Dwarf_Small dw_value_type; - Dwarf_Half dw_regnum; - Dwarf_Unsigned dw_offset_or_block_len; - Dwarf_Ptr dw_block_ptr; -} Dwarf_Regtable_Entry3; - -typedef struct { - Dwarf_Regtable_Entry3 rt3_cfa_rule; - Dwarf_Half rt3_reg_table_size; - Dwarf_Regtable_Entry3 *rt3_rules; -} Dwarf_Regtable3; -.Ed -.Pp -The -.Va rt3_reg_table_size -field specifies the maximum number of register rule columns to be -returned, and should be set by the application before calling the -function. -The -.Va rt3_rules -field should point to a memory arena allocated by the application with -space for at least -.Vt rt3_reg_table_size -descriptors of type -.Vt Dwarf_Regtable_Entry3 . -.Pp -On a successful execution of this function, the -.Va rt3_cfa_rule -field will be set to the CFA register rule associated with the table -row, and the -.Va rt3_rules -array will hold the returned register rules contained in the table row. -.Pp -For each register rule descriptor returned, -the -.Va dw_offset_relevant -field will be set to 1 if the register rule has a offset value, -the -.Va dw_value_type -field will be set to the type code of the register rule and the -.Va dw_regnum -field will be set to the register number associated with the register rule. -If the register rule is of type -.Dv DW_EXPR_OFFSET -or -.Dv DW_EXPR_VAL_OFFSET , -the -.Va dw_offset_or_block_len -field will be set to the offset value associated with the register rule. -If the type is -.Dv DW_EXPR_EXPRESSION -or -.Dv DW_EXPR_VAL_EXPRESSION , -the -.Va dw_offset_or_block_len -field will be set to the length in bytes of the DWARF expression block -associated with the register rule. -The -.Va dw_block_ptr -field will be set to a pointer to the content of the DWARF expression block -associated with the register rule. -.Pp -Argument -.Ar row_pc -should point to a location which will be set to the lowest program -counter address associated with the table row. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_info_for_all_regs3 -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_info_for_all_regs3 -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar fde , -.Ar reg_table -or -.Ar row_pc -was NULL. -.It Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE -The program counter value provided in argument -.Ar pc -did not fall in the range covered by argument -.Ar fde . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_set_frame_cfa_value 3 , -.Xr dwarf_set_frame_rule_initial_value 3 , -.Xr dwarf_set_frame_rule_table_size 3 , -.Xr dwarf_set_frame_same_value 3 , -.Xr dwarf_set_frame_undefined_value 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 deleted file mode 100644 index ee325ac4..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_cfa_reg3.3 +++ /dev/null @@ -1,171 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 12, 2011 -.Dt DWARF_GET_FDE_INFO_FOR_CFA_REGS3 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_info_for_cfa_regs3 -.Nd retrieve a CFA register rule -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_info_for_cfa_regs3 -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Addr pc" -.Fa "Dwarf_Small *type" -.Fa "Dwarf_Signed *offset_relevant" -.Fa "Dwarf_Signed *register_num" -.Fa "Dwarf_Signed *offset_or_block_len" -.Fa "Dwarf_Ptr *block_ptr" -.Fa "Dwarf_Addr *row_pc" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_info_for_cfa_reg3 -retrieves the CFA register rule for a given program counter address -from the register rule table associated with an FDE descriptor. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Argument -.Ar pc -should hold the program counter address to be used to locate the -desired register rule row. -.Pp -On successful execution, -.Fn dwarf_get_fde_info_for_cfa_reg3 -stores information about the CFA register rule found into the locations -pointed to by the arguments -.Ar type , -.Ar offset_relevant , -.Ar register_num , -.Ar offset_or_block_len , -.Ar block_ptr -and -.Ar row_pc . -.Pp -Argument -.Ar type -should point to a location which will hold the type code of the -register rule found. -The returned value is one of the -.Dv DW_EXPR_* -contants defined in the header file -.In libdwarf.h . -.Pp -If there is an offset value associated with the CFA register rule, -the location pointed to by argument -.Ar offset_relevant -will be set to 1. -.Pp -Argument -.Ar register_num -should point to a location which will hold the register number associated -with the CFA register rule. -.Pp -If the CFA register rule is of type -.Dv DW_EXPR_OFFSET -or -.Dv DW_EXPR_VAL_OFFSET , -the location pointed to by argument -.Ar offset_or_block_len -will be set to the offset value associated with the register rule, -or to 0 if the register rule does not have an offset value. -If the type code is -.Dv DW_EXPR_EXPRESSION -or -.Dv DW_EXPR_VAL_EXPRESSION , -the location pointed to by argument -.Ar offset_or_block_len -will be set to the length in bytes of the DWARF expression block -associated with the register rule. -.Pp -Argument -.Ar block_ptr -should point to a location which will be set to a pointer to the -content of the DWARF expression block associated with the CFA register -rule. -.Pp -Argument -.Ar row_pc -should point to a location which will be set to the lowest program -counter address associated with the register rule found. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_info_for_cfa_reg3 -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_info_for_cfa_reg3 -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar block_ptr , -.Ar fde , -.Ar offset_or_block_len , -.Ar offset_relevant , -.Ar register_num , -.Ar row_pc , -or -.Ar type -was NULL. -.It Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE -The program counter value provided in argument -.Ar pc -did not fall in the range covered by argument -.Ar fde . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_set_frame_cfa_value 3 , -.Xr dwarf_set_frame_rule_initial_value 3 , -.Xr dwarf_set_frame_rule_table_size 3 , -.Xr dwarf_set_frame_same_value 3 , -.Xr dwarf_set_frame_undefined_value 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg.3 deleted file mode 100644 index ffd4b5da..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg.3 +++ /dev/null @@ -1,156 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 4, 2011 -.Dt DWARF_GET_FDE_INFO_FOR_REG 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_info_for_reg -.Nd retrieve register rule -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_info_for_reg -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Half table_column" -.Fa "Dwarf_Addr pc" -.Fa "Dwarf_Signed *offset_relevant" -.Fa "Dwarf_Signed *register_num" -.Fa "Dwarf_Signed *offset" -.Fa "Dwarf_Addr *row_pc" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_info_for_reg -retrieves a register rule from the register rule table associated with -a given FDE descriptor, given a program counter address and rule -column number. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Arugment -.Ar table_column -should hold the column number of the register rule desired. -.Pp -Argument -.Ar pc -should hold the program counter address to be used to locate the -desired register rule row. -.Pp -On successful execution, -.Fn dwarf_get_fde_info_for_reg -stores information about the register rule found into the locations -pointed to by the arguments -.Ar offset_relevant , -.Ar register_num , -.Ar offset -and -.Ar row_pc . -.Pp -If there is an offset value associated with the register rule, -the location pointed to by argument -.Ar offset_relevant -will be set to 1. -.Pp -Argument -.Ar register_num -should point to a location which will hold the register number associated -with the register rule. -.Pp -Argument -.Ar offset -should point to a location which will be set to the offset value -associated with the register rule, or to 0 if the register rule -does not have an offset value. -.Pp -Argument -.Ar row_pc -should point to a location which will be set to the lowest program -counter address associated with the register rule found. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Ss COMPATIBILITY -Function -.Fn dwarf_get_fde_info_for_reg -is deprecated since it only supports DWARF2 frame sections. -Applications should instead use function -.Xr dwarf_get_fde_info_for_reg3 3 -which supports both DWARF2 and DWARF3 frame sections. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_info_for_reg -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_info_for_reg -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_FRAME_TABLE_COL_BAD" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar fde , -.Ar offset_relevant , -.Ar register_num , -.Ar offset -or -.Ar row_pc -was NULL. -.It Bq Er DW_DLE_FRAME_TABLE_COL_BAD -The column number provided in argument -.Ar table_column -was too large. -.It Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE -The program counter value provided in argument -.Ar pc -did not fall in the range covered by argument -.Ar fde . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_set_frame_cfa_value 3 , -.Xr dwarf_set_frame_rule_initial_value 3 , -.Xr dwarf_set_frame_rule_table_size 3 , -.Xr dwarf_set_frame_same_value 3 , -.Xr dwarf_set_frame_undefined_value 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg3.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg3.3 deleted file mode 100644 index 76df2afc..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_info_for_reg3.3 +++ /dev/null @@ -1,214 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_GET_FDE_INFO_FOR_REG3 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_info_for_reg3 -.Nd retrieve register rule -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_info_for_reg3 -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Half table_column" -.Fa "Dwarf_Addr pc" -.Fa "Dwarf_Small *type" -.Fa "Dwarf_Signed *offset_relevant" -.Fa "Dwarf_Signed *register_num" -.Fa "Dwarf_Signed *offset_or_block_len" -.Fa "Dwarf_Ptr *block_ptr" -.Fa "Dwarf_Addr *row_pc" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_info_for_reg3 -retrieves a register rule from the register rule table associated with -a given FDE descriptor, given a program counter address and rule -column number. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Arugment -.Ar table_column -should hold the column number of the register rule desired. -.Pp -Argument -.Ar pc -should hold the program counter address to be used to locate the -desired register rule row. -.Pp -On successful execution, -.Fn dwarf_get_fde_info_for_reg3 -stores information about the register rule found into the locations -pointed to by the arguments -.Ar type , -.Ar offset_relevant , -.Ar register_num , -.Ar offset_or_block_len , -.Ar block_ptr -and -.Ar row_pc . -.Pp -Argument -.Ar type -should point to a location which will hold the type code of the -register rule found. -The returned value is one of the -.Dv DW_EXPR_* -contants defined in the header file -.In libdwarf.h . -.Pp -If there is an offset value associated with the register rule, -the location pointed to by argument -.Ar offset_relevant -will be set to 1. -.Pp -Argument -.Ar register_num -should point to a location which will hold the register number associated -with the register rule. -.Pp -If the register rule is of type -.Dv DW_EXPR_OFFSET -or -.Dv DW_EXPR_VAL_OFFSET , -the location pointed to by argument -.Ar offset_or_block_len -will be set to the offset value associated with the register rule, -or to 0 if the register rule does not have an offset value. -If the type code is -.Dv DW_EXPR_EXPRESSION -or -.Dv DW_EXPR_VAL_EXPRESSION , -the location pointed to by argument -.Ar offset_or_block_len -will be set to the length in bytes of the DWARF expression block -associated with the register rule. -.Pp -Argument -.Ar block_ptr -should point to a location which will be set to a pointer to the -content of the DWARF expression block associated with the register -rule. -.Pp -Argument -.Ar row_pc -should point to a location which will be set to the lowest program -counter address associated with the register rule found. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_info_for_reg3 -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To retrieve the register rules at column 3 from a rule table -associated with a FDE descriptor: -.Bd -literal -offset indent -Dwarf_Fde fde; -Dwarf_Off fde_offset, cie_offset; -Dwarf_Unsigned func_len, fde_length; -Dwarf_Signed cie_index, offset_relevant, register_num; -Dwarf_Signed offset_or_block_len; -Dwarf_Addr low_pc, row_pc; -Dwarf_Ptr fde_addr, block_ptr; -Dwarf_Small type; -Dwarf_Error de; - -/* ... assuming `fde` references a valid FDE descriptor... */ -if (dwarf_get_fde_range(fde, &low_pc, &func_len, &fde_addr, - &fde_length, &cie_offset, &cie_index, &fde_offset, - &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_get_fde_range failed: %s", - dwarf_errmsg(de)); - -/* Iterate all the table rows. */ -for (pc = low_pc; pc < low_pc + func_len; pc++) { - if (dwarf_get_fde_info_for_reg3(fde, 3, pc, &type, - &offset_relevant, ®ister_num, &offset_or_block_len, - &block_ptr, &row_pc, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_info_for_reg3 failed: %s", - dwarf_errmsg(de)); - continue; - } - /* ... use the retrieved register rule ... */ -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_fde_info_for_reg3 -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_FRAME_TABLE_COL_BAD" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar block_ptr , -.Ar fde , -.Ar offset_or_block_len , -.Ar offset_relevant , -.Ar register_num , -.Ar row_pc , -or -.Ar type -was NULL. -.It Bq Er DW_DLE_FRAME_TABLE_COL_BAD -The column number provided in argument -.Ar table_column -was too large. -.It Bq Er DW_DLE_PC_NOT_IN_FDE_RANGE -The program counter value provided in argument -.Ar pc -did not fall in the range covered by argument -.Ar fde . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_set_frame_cfa_value 3 , -.Xr dwarf_set_frame_rule_initial_value 3 , -.Xr dwarf_set_frame_rule_table_size 3 , -.Xr dwarf_set_frame_same_value 3 , -.Xr dwarf_set_frame_undefined_value 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_instr_bytes.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_instr_bytes.3 deleted file mode 100644 index 9bc47145..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_instr_bytes.3 +++ /dev/null @@ -1,113 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 23, 2011 -.Dt DWARF_GET_FDE_INSTR_BYTES 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_instr_bytes -.Nd retrieve instructions from FDE descritpor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_instr_bytes -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Ptr *ret_inst" -.Fa "Dwarf_Unsigned *ret_len" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_instr_bytes -retrieves instruction bytes from a given FDE descriptor. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Argument -.Ar ret_inst -should point to a location that will be set to a pointer -to an array of bytes containing the instructions of the -FDE descriptor. -.Pp -Argument -.Ar ret_len -should point to a location that will hold the length in -bytes of the instructions returned in argument -.Ar ret_inst . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Pp -Applications can use the function -.Xr dwarf_expand_frame_instructions 3 -to parse and expand the returned instruction bytes into an array of -.Vt Dwarf_Frame_Op -descriptors. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_instr_bytes -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_instr_bytes -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar fde , -.Ar ret_inst -or -.Ar ret_len -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_expand_frame_instructions 3 , -.Xr dwarf_get_cie_index 3 , -.Xr dwarf_get_cie_info 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_get_fde_range 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_list.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_list.3 deleted file mode 100644 index f01428fb..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_list.3 +++ /dev/null @@ -1,218 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_GET_FDE_LIST 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_list -.Nd retrieve frame information -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_list -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Cie **cie_list" -.Fa "Dwarf_Signed *cie_count" -.Fa "Dwarf_Fde **fde_list" -.Fa "Dwarf_Signed *fde_count" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_get_fde_list_eh -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Cie **cie_list" -.Fa "Dwarf_Signed *cie_count" -.Fa "Dwarf_Fde **fde_list" -.Fa "Dwarf_Signed *fde_count" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve frame related information for the specified -DWARF debug context. -.Pp -Function -.Fn dwarf_get_fde_list -retrieves frame information from the DWARF section named -.Dq ".debug_frame" . -For objects containing GNU style C++ exception handling -information, the function -.Fn dwarf_get_fde_list_eh -retrieves frame information from the section named -.Dq ".eh_frame" . -.Pp -Frame information is returned using opaque descriptors -of type -.Vt Dwarf_Cie -and -.Vt Dwarf_Fde . -Applications need to use the other frame related functions in the -DWARF(3) API set to retrieve the information contained in these -descriptors. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar cie_list -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Cie -descriptors. -.Pp -Argument -.Ar cie_count -should point to a location that will be set to the number of -.Vt Dwarf_Cie -descriptors returned. -.Pp -Argument -.Ar fde_list -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Fde -descriptors. -.Pp -Argument -.Ar fde_count -should point to a location that will be set to the number of -.Vt Dwarf_Fde -descriptors returned. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Ss Memory Management -The memory areas used for the arrays returned in arguments -.Ar cie_list -and -.Ar fde_list -are owned by the -.Lb libdwarf . -Application code should not attempt to directly free these areas. -Portable applications should instead use the -.Xr dwarf_fde_cie_list_dealloc 3 -function to indicate that these memory areas may be freed. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -They return -.Dv DW_DLV_NO_ENTRY -if there is no frame information associated with the given DWARF -debug context. -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh EXAMPLES -To obtain frame information from the -.Dq ".debug_frame" -section, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Cie *cie_list, cie; -Dwarf_Fde *fde_list, fde; -Dwarf_Off fde_offset, cie_offset; -Dwarf_Unsigned func_len, fde_length, fde_instlen; -Dwarf_Signed cie_count, fde_count, cie_index; -Dwarf_Addr low_pc; -Dwarf_Ptr fde_addr, fde_inst, cie_inst; -Dwarf_Error de; -int i; - -if (dwarf_get_fde_list(dbg, &cie_list, &cie_count, - &fde_list, &fde_count, &de) != DW_DLV_OK) { - errx(EXIT_FAILURE, "dwarf_get_fde_list failed: %s", - dwarf_errmsg(de)); -} - -for (i = 0; i < fde_count; i++) { - if (dwarf_get_fde_n(fde_list, i, &fde, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_n failed: %s", - dwarf_errmsg(de)); - continue; - } - if (dwarf_get_cie_of_fde(fde, &cie, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_n failed: %s", - dwarf_errmsg(de)); - continue; - } - if (dwarf_get_fde_range(fde, &low_pc, &func_len, &fde_addr, - &fde_length, &cie_offset, &cie_index, &fde_offset, - &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_range failed: %s", - dwarf_errmsg(de)); - continue; - } - if (dwarf_get_fde_instr_bytes(fde, &fde_inst, &fde_instlen, - &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_instr_bytes failed: %s", - dwarf_errmsg(de)); - continue; - } - - /* ... Use the retrieved frame information ... */ -} - -/* Indicate that the returned arrays may be freed. */ -dwarf_fde_cie_list_dealloc(dbg, cie_list, cie_count, fde_list, - fde_count); -.Ed -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va dbg , -.Va cie_list , -.Va cie_count , -.Va fde_list -or -.Va fde_count -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There is no frame information associated with the giving DWARF debug -context. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_fde_cie_list_dealloc 3 , -.Xr dwarf_get_cie_index 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_instr_bytes 3 , -.Xr dwarf_get_fde_n 3 , -.Xr dwarf_get_fde_range 3 , -.Xr dwarf_set_frame_cfa_value 3 , -.Xr dwarf_set_frame_rule_initial_value 3 , -.Xr dwarf_set_frame_rule_table_size 3 , -.Xr dwarf_set_frame_same_value 3 , -.Xr dwarf_set_frame_undefined_value 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_n.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_n.3 deleted file mode 100644 index c6b347f9..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_n.3 +++ /dev/null @@ -1,111 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 14, 2011 -.Dt DWARF_GET_FDE_N 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_n -.Nd retrieve FDE descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_n -.Fa "Dwarf_Fde *fdelist" -.Fa "Dwarf_Unsigned fde_index" -.Fa "Dwarf_Fde *ret_fde" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_n -retrieves an FDE descriptor from an array of FDE descriptors. -.Pp -Argument -.Ar fdelist -should point to an array of FDE descriptors, as returned by the functions -.Xr dwarf_get_fde_list 3 -or -.Xr dwarf_get_fde_list_eh 3 . -.Pp -Argument -.Ar fde_index -specifies the 0-based index of the desired FDE descriptor. -.Pp -Argument -.Ar ret_fde -should point to a location that will hold the returned FDE descriptor. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_n -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if the FDE descriptor index specified by argument -.Ar fde_index -is out of range. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_n -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Ar fdelist -or -.Ar ret_fde -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The FDE descriptor index specified by argument -.Ar fde_index -was out of range. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_instr_bytes 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 , -.Xr dwarf_get_fde_range 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_fde_range.3 b/contrib/elftoolchain/libdwarf/dwarf_get_fde_range.3 deleted file mode 100644 index b47ae2f9..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_fde_range.3 +++ /dev/null @@ -1,149 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 22, 2011 -.Dt DWARF_GET_FDE_RANGE 3 -.Os -.Sh NAME -.Nm dwarf_get_fde_range -.Nd retrieve range information from an FDE descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_fde_range -.Fa "Dwarf_Fde fde" -.Fa "Dwarf_Addr *low_pc" -.Fa "Dwarf_Unsigned *func_len" -.Fa "Dwarf_Ptr *fde_bytes" -.Fa "Dwarf_Unsigned *fde_byte_len" -.Fa "Dwarf_Off *cie_offset" -.Fa "Dwarf_Signed *cie_index" -.Fa "Dwarf_Off *fde_offset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_fde_range -retrieves range and offset information from a given FDE descriptor. -.Pp -Argument -.Ar fde -should reference a valid DWARF FDE descriptor. -.Pp -Argument -.Ar low_pc -should point to a location that will be set to the lowest -program counter address covered by the FDE descriptor. -.Pp -Argument -.Ar func_len -should point to a location that will hold the length in bytes of -the address range covered by the FDE descriptor. -.Pp -Argument -.Ar fde_bytes -should point to a location that will be set to a pointer to the -content of the FDE descriptor itself. -.Pp -Argument -.Ar fde_byte_len -should point to a location that will hold the length in bytes of -the FDE descriptor itself. -.Pp -Argument -.Ar cie_offset -should point to a location that will be set to the offset, relative to -the DWARF -.Dq ".debug_frame" -section, of the CIE descriptor associated with the given FDE -descriptor. -.Pp -Argument -.Ar cie_index -should point to a location that will hold the index of the CIE -descriptor associated with the FDE descriptor. -The returned value is a zero-based index into the array of CIE -descriptors returned by a prior call to functions -.Xr dwarf_get_fde_list 3 -or -.Xr dwarf_get_fde_list_eh 3 . -.Pp -Argument -.Ar fde_offset -should point to a location that will be set to the offset, relative to -the DWARF -.Dq ".debug_frame" -section, of the FDE descriptor. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_fde_range -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_fde_range -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar fde , -.Ar low_pc , -.Ar func_len , -.Ar fde_bytes , -.Ar fde_byte_len , -.Ar cie_offset , -.Ar cie_index -or -.Ar fde_offset -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cie_index 3 , -.Xr dwarf_get_cie_info 3 , -.Xr dwarf_get_cie_of_fde 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_instr_bytes 3 , -.Xr dwarf_get_fde_list 3 , -.Xr dwarf_get_fde_list_eh 3 , -.Xr dwarf_get_fde_n 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_form_class.3 b/contrib/elftoolchain/libdwarf/dwarf_get_form_class.3 deleted file mode 100644 index bbcdfdd3..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_form_class.3 +++ /dev/null @@ -1,87 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 26, 2011 -.Dt DWARF_GET_FORM_CLASS 3 -.Os -.Sh NAME -.Nm dwarf_get_form_class -.Nd retrieve the form class of an attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft enum Dwarf_Form_Class -.Fo dwarf_get_form_class -.Fa "Dwarf_Half dwversion" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Half offset_size" -.Fa "Dwarf_Half form" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_form_class -returns the class of the form of a DWARF attribute. -.Pp -Argument -.Ar dwversion -should specify the version number of DWARF specification -to use: 2 for DWARF2, 3 for DWARF3 and 4 for DWARF4. -.Pp -Argument -.Ar attr -should hold the attribute code of the attribute, i.e., one of the -.Li DW_AT_* -values defined in -.In libdwarf.h . -.Pp -Argument -.Ar offset_size -should hold the size of a DWARF offset for the relevant compilation -unit. -.Pp -Argument -.Ar form -should hold the form code of the attribute. -.Sh RETURN VALUES -On success, function -.Fn dwarf_get_form_class -returns the form class code, which is one of the -.Dv DW_FORM_CLASS_* -contants defined in header file -.In libdwarf.h . -If the function was not able to determine the form class of the -attribute, it returns the special form class code -.Dv DW_FORM_CLASS_UNKNOWN . -.Sh ERRORS -Function -.Fn dwarf_get_form_class -does not return an error. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_whatattr 3 , -.Xr dwarf_whatform 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_funcs.3 b/contrib/elftoolchain/libdwarf/dwarf_get_funcs.3 deleted file mode 100644 index 36a5548f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_funcs.3 +++ /dev/null @@ -1,215 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 10, 2011 -.Dt DWARF_GET_FUNCS 3 -.Os -.Sh NAME -.Nm dwarf_get_funcs , -.Nm dwarf_func_cu_offset , -.Nm dwarf_func_die_offset , -.Nm dwarf_func_name_offsets , -.Nm dwarf_funcname -.Nd retrieve information about static functions -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_funcs -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Func **funcs" -.Fa "Dwarf_Signed *nfuncs" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_func_cu_offset -.Fa "Dwarf_Func func" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_func_die_offset -.Fa "Dwarf_Func func" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_func_name_offsets -.Fa "Dwarf_Func func" -.Fa "char **name" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_funcname -.Fa "Dwarf_Func func" -.Fa "char **name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve information about static functions from the -lookup tables in the (SGI-specific) -.Dq ".debug_funcnames" -section. -Information about these functions is returned using opaque descriptors -of type -.Vt Dwarf_Func . -Applications need to use the functions described below to retrieve -the name and offset information contained in these descriptors. -.Pp -Function -.Fn dwarf_get_funcs -retrieves descriptors for all the static functions associated with the -DWARF debug context specified by argument -.Ar dbg . -The argument -.Ar funcs -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Func -descriptors. -The argument -.Ar nfuncs -should point to a location that will be set to the number of -descriptors returned. -.Pp -Function -.Fn dwarf_func_cu_offset -returns the offset, relative to the -.Dq ".debug_info" -section, of the compilation unit that contains the debugging -information entry associated with the argument -.Ar func . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -.Pp -Function -.Fn dwarf_func_die_offset -retrieves the offset, relative to the -.Dq ".debug_info" -section, of the debugging information entry associated with the -argument -.Ar func , -and stores it into the location pointed to by the argument -.Ar die_offset . -.Pp -Function -.Fn dwarf_func_name_offsets -retrieves the name and offsets for the debugging information entry for -argument -.Ar func . -Argument -.Ar name -should point to a location which will be set to a pointer to a -NUL-terminated string containing the name of the associated debugging -information entry. -Argument -.Ar die_offset -should point to a location which will be set to the offset, relative -to the -.Dq ".debug_info" -section, of the associated debugging information entry. -Argument -.Ar cu_die_offset -should point to a location which will be set to the offset, relative -to the -.Dq ".debug_info" -section, of the first debugging information entry in the compilation -unit associated with argument -.Ar func . -.Pp -Function -.Fn dwarf_funcname -sets the location pointed to by argument -.Ar name -to a pointer to a NUL-terminated string holding the name of the -debugging information entry associated with the argument -.Ar func . -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Func -descriptors returned in argument -.Ar funcs -by function -.Fn dwarf_get_funcs -is owned by the -.Lb libdwarf . -Application code should not attempt to directly free this pointer. -Portable code should instead use the function -.Xr dwarf_funcs_dealloc 3 -to indicate that the memory area may be freed. -.Pp -The memory area used for the string returned in the -.Ar name -argument to functions -.Fn dwarf_func_name_offsets -and -.Fn dwarf_funcname -is owned by the -.Lb libdwarf . -Portable code should indicate that the memory area can -be freed using the -.Xr dwarf_dealloc 3 -function. -.Ss Error Returns -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_die_offset , -.Va cu_offset , -.Va dbg , -.Va die_offset , -.Va func , -.Va funcs , -.Va name , -or -.Va nfuncs -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The DWARF debugging context referenced by argument -.Ar dbg -did not contain information about static functions. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_funcs_dealloc 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_globals.3 b/contrib/elftoolchain/libdwarf/dwarf_get_globals.3 deleted file mode 100644 index eb38f369..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_globals.3 +++ /dev/null @@ -1,211 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 2, 2011 -.Dt DWARF_GET_GLOBALS 3 -.Os -.Sh NAME -.Nm dwarf_get_globals , -.Nm dwarf_global_cu_offset , -.Nm dwarf_global_die_offset , -.Nm dwarf_global_name_offsets , -.Nm dwarf_globname -.Nd retrieve information about global objects -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_globals -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Global **globals" -.Fa "Dwarf_Signed *nglobals" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_global_cu_offset -.Fa "Dwarf_Global global" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_global_die_offset -.Fa "Dwarf_Global global" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_global_name_offsets -.Fa "Dwarf_Global global" -.Fa "char **name" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_globname -.Fa "Dwarf_Global global" -.Fa "char **name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve information about global symbols from the -lookup tables in the -.Dq ".debug_pubnames" -DWARF section. -Information about these global symbols is returned using opaque descriptors -of type -.Vt Dwarf_Global . -Applications need to use the functions described below to retrieve the -name and the offsets for these descriptors. -.Pp -Function -.Fn dwarf_get_globals -retrieves descriptors for all the global symbols associated with the -DWARF debug context specified by argument -.Ar dbg . -The argument -.Ar globals -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Global -descriptors. -The argument -.Ar nglobals -should point to a location that will be set to the number of -descriptors returned. -.Pp -Function -.Fn dwarf_global_cu_offset -returns the section-relative offset, relative to the -.Dq ".debug_info" -section, of the compilation unit that contains the debugging -information entry associated with the argument -.Ar global . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -.Pp -Function -.Fn dwarf_global_die_offset -retrieves the section-relative offset, relative to the -.Dq ".debug_info" -section, of the debugging information entry associated with the -argument -.Ar global , -and stores it into the location pointed to by the argument -.Ar die_offset . -.Pp -Function -.Fn dwarf_global_name_offsets -retrieves the name and the offsets for the debugging information -entry for argument -.Ar global . -Argument -.Ar name -should point to a location which will be set to a pointer to a -NUL-terminated string containing the name of the associated debugging -information entry. -Argument -.Ar die_offset -should point to a location which will be set to a section-relative -offset, relative to the -.Dq ".debug_info" -section, of the associated debugging information entry. -Argument -.Ar cu_die_offset -should point to a location which will be set to a -section-relative offset, relative to the -.Dq ".debug_info" -section, of the first debugging information entry in -the compilation unit associated with argument -.Ar global . -.Pp -Function -.Fn dwarf_globname -sets the location pointed to by argument -.Ar name -to a pointer to a NUL-terminated string holding the name of the -debugging information entry associated with the argument -.Ar global . -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Global -descriptors returned in argument -.Ar globals -by function -.Fn dwarf_get_globals -is owned by the -.Lb libdwarf . -Application code should not attempt to directly free this pointer. -Portable code should instead use the function -.Xr dwarf_globals_dealloc 3 -to indicate that the memory area may be freed. -.Pp -The memory area used for the string returned in the -.Ar name -argument to functions -.Fn dwarf_globname -and -.Fn dwarf_global_name_offsets -is owned by the -.Lb libdwarf . -Portable code should use the -.Xr dwarf_dealloc 3 -function to indicate that the memory area may be freed. -.Ss Error Returns -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_die_offset , -.Va cu_offset , -.Va dbg , -.Va die_offset , -.Va global , -.Va globals , -.Va name , -or -.Va nglobals -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 , -.Xr dwarf_globals_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_loclist_entry.3 b/contrib/elftoolchain/libdwarf/dwarf_get_loclist_entry.3 deleted file mode 100644 index 4a91c820..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_loclist_entry.3 +++ /dev/null @@ -1,156 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 6, 2011 -.Dt DWARF_GET_LOCLIST_ENTRY 3 -.Os -.Sh NAME -.Nm dwarf_get_loclist_entry -.Nd retrieve DWARF location list entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_loclist_entry -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Unsigned offset" -.Fa "Dwarf_Addr *hipc" -.Fa "Dwarf_Addr *lopc" -.Fa "Dwarf_Ptr *data" -.Fa "Dwarf_Unsigned *entry_len" -.Fa "Dwarf_Unsigned *next_entry" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_loclist_entry -retrieves a location list entry from the DWARF section -.Dq ".debug_loc" . -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar offset -is an offset, relative to the -.Dq ".debug_loc" -section, to the start of the desired location list entry. -.Pp -Argument -.Ar hipc -should point to a location which will hold the offset, relative to the -base address of the location list entry, of the highest program -counter value for the entry. -.Pp -Argument -.Ar lowpc -should point to a location which will hold the offset, relative to the -base address of the location list entry, of the lowest program counter -value for the entry. -.Pp -Argument -.Ar data -should point to a location which will be set to a pointer to the location -list data. -.Pp -Argument -.Ar entry_len -should point to a location which will hold the length in bytes of the -location list data returned in argument -.Ar data . -.Pp -Argument -.Ar next_entry -should point to a location which will hold the offset of the next -location list entry. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_loclist_entry -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if there is no location list at the specified offset -.Ar offset . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To iterate through all the location list entries in the -.Dq ".debug_loc" -section, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Unsigned off, len, next; -Dwarf_Addr hipc, lopc; -Dwarf_Ptr data; -Dwarf_Error de; -int ret; - -off = 0; -while ((ret = dwarf_get_loclist_entry(dbg, off, &hipc, &lopc, &data, - &len, &next, &de)) == DW_DLV_OK) { - /* ... use loclist entry ... */ - off = next; -} -if (ret == DW_DLV_ERROR) - warnx("dwarf_get_loclist_entry failed: %s", dwarf_errmsg(de)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_loclist_entry -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar hipc , -.Ar lopc , -.Ar data , -.Ar entry_len -or -.Ar next_entry -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There is no location list at the specified offset -.Ar offset . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_loclist 3 , -.Xr dwarf_loclist_from_expr 3 , -.Xr dwarf_loclist_from_expr_a 3 , -.Xr dwarf_loclist_n 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_macro_details.3 b/contrib/elftoolchain/libdwarf/dwarf_get_macro_details.3 deleted file mode 100644 index f823cda5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_macro_details.3 +++ /dev/null @@ -1,192 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd March 20, 2011 -.Dt DWARF_GET_MACRO_DETAILS 3 -.Os -.Sh NAME -.Nm dwarf_get_macro_details -.Nd retrieve macro information -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_macro_details -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off offset" -.Fa "Dwarf_Unsigned max_count" -.Fa "Dwarf_Signed *entry_cnt" -.Fa "Dwarf_Macro_Details **details" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_macro_details -retrieves information about macros associated with a DWARF debug -context. -Information about macro entries are returned as an array of -descriptors of type -.Vt Dwarf_Macro_Details , -with each -.Vt Dwarf_Macro_Details -descriptor describing one macro information entry. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -Argument -.Ar offset -is an offset, relative to the -.Dq ".debug_macinfo" -section, to the start of the desired macro information. -Argument -.Ar max_count -specifies the maximum number of macro information entries -to be returned, or 0 if all entries are to be returned. -Argument -.Ar entry_cnt -should point to a location that will be set to the number -of entries actually returned. -Argument -.Ar details -should point to a location that will be set to a pointer to -an array of -.Vt Dwarf_Macro_Details -descriptors. -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -.Vt Dwarf_Macro_Details -descriptors are defined in the header file -.In libdwarf.h , -and consist of the following fields: -.Bl -tag -width ".Va dmd_fileindex" -compact -.It Va dmd_offset -The section-relative offset within the -.Dq ".debug_macinfo" -section of the macro information entry being described. -.It Va dmd_type -The type code of this macro information entry; one of the -.Dv DW_MACINFO_* -constants defined by the DWARF specification. -.It Va dmd_lineno -The line number associated with the macro information -entry, or 0 if there is no applicable line number. -.It Va dmd_fileindex -The source file index for the macro information entry. -This field is only meaningful when -.Va dmd_type -field is set to -.Dv DW_MACINFO_start_file . -.It Va dmd_macro -The contents of this field is a pointer to a NUL-terminated string -whose meaning depends on the value of the -.Va dmd_type -field: -.Bl -tag -width ".Dv DW_MACINFO_vendor_ext" -compact -.It Dv DW_MACINFO_define -The returned string contains the macro name and value. -.It Dv DW_MACINFO_undef -The string holds the macro name. -.It Dv DW_MACINFO_vendor_ext -The -.Va dmd_macro -field points to a vendor defined string. -.El -The field is NULL for other values of -.Va dmd_type . -.El -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Macro_Details -descriptors returned in argument -.Ar details -is owned by the -.Lb libdwarf . -The application should not attempt to directly free this pointer. -Portable code should instead use -.Fn dwarf_dealloc -with the allocation type -.Dv DW_DLA_STRING -to indicate that the memory may be freed. -.Sh RETURN VALUES -Function -.Fn dwarf_get_macro_details -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if there is no more macro information at the specified offset -.Ar offset . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To loop through all the macro information entries associated with -a DWARF debug context: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Unsigned offset; -Dwarf_Signed cnt; -Dwarf_Macro_Details *md; -Dwarf_Error de; - -offset = 0; -while (dwarf_get_macro_details(dbg, offset, 0, - &cnt, &md, &de) == DW_DLV_OK) { - for (i = 0; i < cnt; i++) { - /* Access fields of md[i] ... */ - } - offset = md[cnt - 1].dmd_offset + 1; -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_macro_details -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar entry_cnt -or -.Ar details -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There is no more macro information at the specified offset -.Ar offset . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_find_macro_value_start 3 , -.Xr dwarf_init 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_pubtypes.3 b/contrib/elftoolchain/libdwarf/dwarf_get_pubtypes.3 deleted file mode 100644 index 465be798..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_pubtypes.3 +++ /dev/null @@ -1,243 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 4, 2011 -.Dt DWARF_GET_PUBTYPES 3 -.Os -.Sh NAME -.Nm dwarf_get_pubtypes , -.Nm dwarf_pubtype_cu_offset , -.Nm dwarf_pubtype_die_offset , -.Nm dwarf_pubtype_name_offsets , -.Nm dwarf_pubtypename -.Nd retrieve information about user-defined types -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_pubtypes -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Type **types" -.Fa "Dwarf_Signed *ntypes" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_pubtype_cu_offset -.Fa "Dwarf_Type type" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_pubtype_die_offset -.Fa "Dwarf_Type type" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_pubtype_name_offsets -.Fa "Dwarf_Type type" -.Fa "char **name" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_pubtypename -.Fa "Dwarf_Type type" -.Fa "char **name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve information about file-scope, user-defined -types recorded in lookup tables in the -.Dq ".debug_pubtypes" -DWARF section. -Information about these types is returned using opaque descriptors -of type -.Vt Dwarf_Type . -Applications need to use the functions described below to retrieve -the name and offset information contained in these descriptors. -.Pp -Function -.Fn dwarf_get_pubtypes -retrieves descriptors for all the user-defined types associated with the -DWARF debug context specified by argument -.Ar dbg . -The argument -.Ar types -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Type -descriptors. -The argument -.Ar ntypes -should point to a location that will be set to the number of -descriptors returned. -.Pp -Function -.Fn dwarf_pubtype_cu_offset -returns the offset, relative to the -.Dq ".debug_info" -section, of the compilation unit that contains the debugging -information entry associated with the argument -.Ar type . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -.Pp -Function -.Fn dwarf_pubtype_die_offset -retrieves the offset, relative to the -.Dq ".debug_info" -section, of the debugging information entry associated with the -argument -.Ar type , -and stores it into the location pointed to by the argument -.Ar die_offset . -.Pp -Function -.Fn dwarf_pubtype_name_offsets -retrieves the name and offsets for the debugging information entry for -argument -.Ar type . -Argument -.Ar name -should point to a location which will be set to a pointer to a -NUL-terminated string containing the name of the associated debugging -information entry. -Argument -.Ar die_offset -should point to a location which will be set to the -offset, relative to the -.Dq ".debug_info" -section, of the associated debugging information entry. -Argument -.Ar cu_die_offset -should point to a location which will be set to the -offset, relative to the -.Dq ".debug_info" -section, of the first debugging information entry in the compilation -unit associated with argument -.Ar type . -.Pp -Function -.Fn dwarf_pubtypename -sets the location pointed to by argument -.Ar name -to a pointer to a NUL-terminated string holding the name of the -debugging information entry associated with the argument -.Ar type . -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Type -descriptors returned in argument -.Ar types -by function -.Fn dwarf_get_pubtypes -is owned by the -.Lb libdwarf . -Application code should not attempt to directly free this pointer. -Portable code should instead use the function -.Xr dwarf_types_dealloc 3 -to indicate that the memory area may be freed. -.Pp -The memory area used for the string returned in the -.Ar name -argument to functions -.Fn dwarf_pubtype_name_offsets -and -.Fn dwarf_pubtypename -is owned by the -.Lb libdwarf . -Portable code should indicate that the memory area can -be freed using the -.Xr dwarf_dealloc 3 -function. -.Ss Error Returns -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh EXAMPLES -To retrieve the list of file scope user-defined types and print -their names, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Signed ntypes; -Dwarf_Type *types; -Dwarf_Error err; -int n, result; -char *typename; - -/* Initialize dbg etc. */; -result = dwarf_get_pubtypes(dbg, &types, &ntypes, &err); -if (result != DW_DLV_OK) /* Handle the error. */ - ; - -/* Iterate over the returned array of descriptors. */ -for (n = 0; n < ntypes; n++) { - result = dwarf_pubtypename(types[n], &typename, &err); - if (result != DW_DLV_OK) /* Handle the error. */ - ; - printf("%s\en", typename); -} - -/* Deallocate the returned array. */ -dwarf_types_dealloc(dbg, types, ntypes); -.Ed -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_die_offset , -.Va cu_offset , -.Va dbg , -.Va die_offset , -.Va type , -.Va types , -.Va name , -or -.Va ntypes -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The DWARF debugging context referenced by argument -.Ar dbg -did not contain information about user-defined types. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 , -.Xr dwarf_pubtypes_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_ranges.3 b/contrib/elftoolchain/libdwarf/dwarf_get_ranges.3 deleted file mode 100644 index 027c4881..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_ranges.3 +++ /dev/null @@ -1,258 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_GET_RANGES 3 -.Os -.Sh NAME -.Nm dwarf_get_ranges -.Nd retrieve non-contiguous address ranges -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_ranges -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off offset" -.Fa "Dwarf_Ranges **ranges" -.Fa "Dwarf_Signed *cnt" -.Fa "Dwarf_Unsigned *byte_cnt" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_get_ranges_a -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off offset" -.Fa "Dwarf_Die die" -.Fa "Dwarf_Ranges **ranges" -.Fa "Dwarf_Signed *cnt" -.Fa "Dwarf_Unsigned *byte_cnt" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_ranges -retrieves information about the non-contiguous address ranges associated -with a DWARF debugging information entry. -Information about address ranges is returned as an array of -descriptors of type -.Vt Dwarf_Ranges , -with each -.Vt Dwarf_Ranges -descriptor describing one address range entry. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar offset -is an offset, relative to the -.Dq ".debug_ranges" -section, to the start of the desired list of address ranges. -The offset of an address ranges list is indicated by the -.Dv DW_AT_ranges -attribute of a debugging information entry. -.Pp -Argument -.Ar die -(function -.Fn dwarf_get_ranges_a -only) is ignored in this implementation; see the section -.Sx "Compatibility Notes" -below. -.Pp -Argument -.Ar ranges -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Ranges -descriptors. -.Pp -Argument -.Ar cnt -should point to a location that will be set to the number of entries -returned. -If argument -.Ar byte_cnt -is not NULL, it will be set to the number of bytes occupied by the -returned entries in the -.Dq ".debug_ranges" -section. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -.Vt Dwarf_Ranges -descriptors are defined in the header file -.In libdwarf.h , -and consists of the following fields: -.Bl -tag -width ".Va dwr_addr1" -.It Va dwr_addr1 -The first address offset, whose meaning depends on the type of the -entry. -.It Va dwr_addr2 -The second address offset, whose meaning depends on the type of the -entry. -.It Va dwr_type -The type of this address range entry: -.Bl -tag -width ".Dv DW_RANGES_ENTRY" -compact -.It Dv DW_RANGES_ENTRY -A range list entry. -For this type of entry, the fields -.Va dwr_addr1 -and -.Va dwr_addr2 -hold the beginning and ending offsets of the address range, respectively. -.It Dv DW_RANGES_ADDRESS_SELECTION -A base address selection entry. -For this type of entry, the field -.Va dwr_addr1 -is the value of the largest representable address offset, and -.Va dwr_addr2 -is a base address for the beginning and ending address offsets of -subsequent address range entries in the list. -.It Dv DW_RANGES_END -An end of list mark. -Both -.Va dwr_addr1 -and -.Va dwr_addr2 -are set to 0. -.El -.El -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Ranges -descriptors returned in argument -.Ar ranges -is owned by the -.Lb libdwarf . -The application should not attempt to directly free this pointer. -Portable code should instead use -.Fn dwarf_ranges_dealloc -to indicate that the memory may be freed. -.Sh RETURN VALUES -These functions -return -.Dv DW_DLV_OK -when they succeed. -They return -.Dv DW_DLV_NO_ENTRY -if there is no address range list at the specified offset -.Ar offset . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh EXAMPLES -To retrieve the address range list associated with a debugging -information entry, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Die die; -Dwarf_Error de; -Dwarf_Addr base; -Dwarf_Attribute *attr_list; -Dwarf_Ranges *ranges; -Dwarf_Signed cnt; -Dwarf_Unsigned off, attr_count, bytecnt; -int i, j; - -if ((ret = dwarf_attrlist(die, &attr_list, &attr_count, &de)) != - DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_attrlist failed: %s", - dwarf_errmsg(de)); - -for (i = 0; (Dwarf_Unsigned) i < attr_count; i++) { - if (dwarf_whatattr(attr_list[i], &attr, &de) != DW_DLV_OK) { - warnx("dwarf_whatattr failed: %s", - dwarf_errmsg(de)); - continue; - } - if (attr != DW_AT_ranges) - continue; - if (dwarf_formudata(attr_list[i], &off, &de) != DW_DLV_OK) { - warnx("dwarf_formudata failed: %s", - dwarf_errmsg(de)); - continue; - } - if (dwarf_get_ranges(dbg, (Dwarf_Off) off, &ranges, &cnt, - &bytecnt, &de) != DW_DLV_OK) - continue; - for (j = 0; j < cnt; j++) { - if (ranges[j].dwr_type == DW_RANGES_END) - break; - else if (ranges[j].dwr_type == - DW_RANGES_ADDRESS_SELECTION) - base = ranges[j].dwr_addr2; - else { - /* - * DW_RANGES_ENTRY entry. - * .. Use dwr_addr1 and dwr_addr2 .. - */ - } - } -} -.Ed -.Sh COMPATIBILITY -Function -.Fn dwarf_get_ranges_a -is identical to -.Fn dwarf_get_ranges , -except that it requires one additional argument -.Ar die -denoting the debugging information entry associated with -the address range list. -In this implementation of the -.Lb libdwarf , -the argument -.Ar die -is ignored, and function -.Fn dwarf_get_ranges_a -is only provided for compatibility with other implementations of the -DWARF(3) API. -.Sh ERRORS -These function can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar ranges -or -.Ar cnt -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There is no address range list at the specified offset -.Ar offset . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_ranges_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info.3 b/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info.3 deleted file mode 100644 index 5f830406..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info.3 +++ /dev/null @@ -1,228 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 3, 2011 -.Dt DWARF_GET_RELOCATION_INFO 3 -.Os -.Sh NAME -.Nm dwarf_get_relocation_info -.Nd retrieve generated relocation arrays -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_relocation_info -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Signed *elf_section_index" -.Fa "Dwarf_Signed *elf_section_link" -.Fa "Dwarf_Unsigned *reloc_entry_count" -.Fa "Dwarf_Relocation_Data *reloc_buf" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -The function -.Fn dwarf_get_relocation_info -is used to retrieve the relocation arrays generated by a prior call to -.Xr dwarf_transform_to_disk_form 3 . -.Pp -Each call to this function retrieves the next available relocation -array. -Application code should call this function repeatly to retrieve all -the relocation arrays. -The total number of generated relocation arrays retrievable -by this function may be obtained by calling function -.Xr dwarf_get_relocation_info_count 3 . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 in sequence. -or -.Xr dwarf_producer_init_b 3 . -The -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -flag should have been set on the DWARF producer instance. -.Pp -Argument -.Ar elf_section_index -should point to a location which will be set to the ELF section index -of the relocation section to which the retrieved relocation array -belongs. -.Pp -Argument -.Ar elf_section_link -should point to a location which will be set to the section index of -the ELF section to which the retrieved relocation array applies. -.Pp -Argument -.Ar reloc_entry_count -should point to a location which will be set to the total number of -relocation entries contained in the relocation array. -.Pp -Argument -.Ar reloc_buf -should point to a location which will be set to a pointer to the -retrieved array of relocation entries. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -The retrieved relocation entries are described using structure -.Vt Dwarf_Relocation_Data_s , -defined in the header file -.In libdwarf.h : -.Bd -literal -offset indent -typedef struct Dwarf_Relocation_Data_s { - unsigned char drd_type; - unsigned char drd_length; - Dwarf_Unsigned drd_offset; - Dwarf_Unsigned drd_symbol_index; -} *Dwarf_Relocation_Data; -.Ed -.Pp -Struct -.Vt Dwarf_Relocation_Data_s -consists of following fields: -.Bl -tag -width ".Va drd_symbol_index" -compact -offset indent -.It Va drd_type -The type code of the relocation entry. -The -.Vt Dwarf_Rel_Type -enumeration defined in the header file -.In libdwarf.h -specifies legal values for this field. -.It Va drd_length -The size in bytes of the field to be relocated. -.It Va drd_offset -The section-relative offset of the field to be relocated. -.It Va drd_symbol_index -The symbol index associated with the relocation entry. -.El -.Ss Memory Management -The memory area used for the relocation arrays is managed by the -.Lb libdwarf . -The function -.Fn dwarf_producer_finish -may be used to release it, along with other resources associated -with the producer instance. -.Sh RETURN VALUES -On success, function -.Fn dwarf_get_relocation_info -returns -.Dv DW_DLV_OK . -It returns -.Dv DW_DLV_NO_ENTRY -if there were no more relocation arrays to retrieve, or if the flag -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -was not set on the producer instance. -In case of an error, function -.Fn dwarf_get_relocation_info -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To generate relocation entries and retrieve them, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Relocation_Data buf; -Dwarf_Signed count, index, link; -Dwarf_Unsigned reloc_cnt, entry_cnt; -Dwarf_Error de; -int version, i, j; - -/* - * Assume that dbg refers to a DWARF producer instance created - * created with DW_DLC_SYMBOLIC_RELOCATIONS flag set and that - * application code has added DWARF debugging information - * to the producer instance. - */ -if ((count = dwarf_transform_to_disk_form(dbg, &de)) == - DW_DLV_NOCOUNT) { - warnx("dwarf_transform_to_disk_form failed: %s", - dwarf_errmsg(-1)); - return; -} - -/* ... process generated section byte streams ... */ -if (dwarf_get_relocation_info_count(dbg, &reloc_cnt, &version, &de) != - DW_DLV_OK) { - warnx("dwarf_get_relocation_info_count failed: %s", - dwarf_errmsg(-1)); - return; -} - -for (i = 0; (Dwarf_Unsigned) i < reloc_cnt; i++) { - if (dwarf_get_relocation_info(dbg, &index, &link, &entry_cnt, - &buf, &de) != DW_DLV_OK) { - warnx("dwarf_get_relocation_info failed: %s", - dwarf_errmsg(-1)); - continue; - } - for (j = 0; (Dwarf_Unsigned) j < entry_cnt; j++) { - /* ...use each reloc data in buf[j]... */ - } -} - -dwarf_producer_finish(dbg, &de); -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_relocation_info -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar elf_section_index , -.Ar elf_section_link , -.Ar reloc_entry_count -or -.Ar reloc_buf -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There were no more ELF relocation arrays to retrieve. -.It Bq Er DW_DLE_NO_ENTRY -The flag -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -was not set on the producer instance. -.It Bq Er DW_DLE_NO_ENTRY -Function -.Xr dwarf_transform_to_disk_form 3 -was not called prior to calling function -.Fn dwarf_get_relocation_info . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_relocation_info_count 3 , -.Xr dwarf_producer_finish 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_reset_section_bytes 3 , -.Xr dwarf_transform_to_disk_form 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info_count.3 b/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info_count.3 deleted file mode 100644 index 6c66b8be..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_relocation_info_count.3 +++ /dev/null @@ -1,116 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 3, 2011 -.Dt DWARF_GET_RELOCATION_INFO_COUNT 3 -.Os -.Sh NAME -.Nm dwarf_get_relocation_info_count -.Nd return the number of relocation arrays -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_relocation_info_count -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Unsigned *reloc_cnt" -.Fa "int *drd_buffer_version" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_relocation_info_count -retrieves the total number of relocation arrays generated by a prior -call to -.Xr dwarf_transform_to_disk_form 3 . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -The -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -flag should have been set on the producer instance. -.Pp -Argument -.Ar reloc_cnt -should point to a location which will be set to the total number of -relocation arrays generated. -.Pp -Argument -.Ar drd_buffer_version -should point to a location which will be set to the version number -of the relocation structures returned (see the symbol -.Dv DWARF_DRD_BUFFER_VERSION , -defined in the header file -.In libdwarf.h ) . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_get_relocation_info_count -returns -.Dv DW_DLV_OK . -It returns -.Dv DW_DLV_NO_ENTRY -if the -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -flag is not set on the producer instance. -In case of an error, function -.Fn dwarf_get_relocation_info_count -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_get_relocation_info_count -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar reloc_cnt -or -.Ar drd_buffer_version -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -flag was not set. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_relocation_info 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_transform_to_disk_form 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_section_bytes.3 b/contrib/elftoolchain/libdwarf/dwarf_get_section_bytes.3 deleted file mode 100644 index 93fdb7fe..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_section_bytes.3 +++ /dev/null @@ -1,157 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 26, 2011 -.Dt DWARF_GET_SECTION_BYTES 3 -.Os -.Sh NAME -.Nm dwarf_get_section_bytes -.Nd retrieve ELF section byte streams -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_Ptr -.Fo dwarf_get_section_bytes -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Signed dwarf_section" -.Fa "Dwarf_Signed *elf_section_index" -.Fa "Dwarf_Unsigned *length" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_section_bytes -returns the ELF section byte streams generated by a prior call -to function -.Xr dwarf_transform_to_disk_form 3 . -.Pp -Each call to function -.Fn dwarf_get_section_bytes -will return the byte stream for one ELF section. -The first call to this function will always return the first ELF -section, and the subsequent calls will return the rest of sections -in the order when they were generated, until the last one. -The total number of sections generated is returned by the function -.Xr dwarf_transform_to_disk_form 3 . -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using the -functions -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar dwarf_section -is currently ignored. -.Pp -Argument -.Ar elf_section_index -should point to a location which will be set to the section index value -of the returned ELF section. -.Pp -Argument -.Ar length -should point to a location which will hold the length in bytes of the -returned ELF section. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Ss Memory Management -The memory areas used for the returned ELF section byte streams should -be freed using the function -.Fn dwarf_producer_finish . -.Sh RETURN VALUES -On success, function -.Fn dwarf_get_section_bytes -returns a pointer to a ELF section byte stream. -In case of an error, function -.Fn dwarf_get_section_bytes -will return NULL and set the argument -.Ar err . -.Sh EXAMPLES -To generate and retrieve ELF section byte streams, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Signed count, i, sec_index; -Dwarf_Unsigned len; -Dwarf_Ptr bytes; -Dwarf_Error de; - -/* ... Assume that `dbg' refers to a DWARF producer instance, - * and that application code has added DWARF debugging - * information to the producer instance. ... - */ -if ((count = dwarf_transform_to_disk_form(dbg, &de)) == - DW_DLV_NOCOUNT) { - warnx("dwarf_transform_to_disk_form failed: %s", - dwarf_errmsg(-1)); - return; -} - -/* Retrieve section data. */ -for (i = 0; i < count; i++) { - bytes = dwarf_get_section_bytes(dbg, i, &sec_index, &len, - &de); - if (bytes == NULL) { - warnx("dwarf_get_section_bytes failed: %s", - dwarf_errmsg(-1)); - continue; - } - /* ... use the returned byte stream ... */ -} - -/* Release resources. */ -dwarf_producer_finish(dbg, &de); -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_section_bytes -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar elf_section_index , -or -.Ar length -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -There were no more ELF sections to retrieve, or the function was -called before a call to -.Xr dwarf_transform_to_disk_form 3 . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_producer_finish 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_reset_section_bytes 3 , -.Xr dwarf_transform_to_disk_form 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 b/contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 deleted file mode 100644 index 32a30c23..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_section_max_offsets.3 +++ /dev/null @@ -1,116 +0,0 @@ -.\" Copyright (c) 2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 21, 2014 -.Dt DWARF_GET_SECTION_MAX_OFFSETS 3 -.Os -.Sh NAME -.Nm dwarf_get_section_max_offsets , -.Nm dwarf_get_section_max_offsets_b -.Nd return the size of DWARF sections -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_section_max_offsets -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Unsigned *debug_info" -.Fa "Dwarf_Unsigned *debug_abbrev" -.Fa "Dwarf_Unsigned *debug_line" -.Fa "Dwarf_Unsigned *debug_loc" -.Fa "Dwarf_Unsigned *debug_aranges" -.Fa "Dwarf_Unsigned *debug_macinfo" -.Fa "Dwarf_Unsigned *debug_pubnames" -.Fa "Dwarf_Unsigned *debug_str" -.Fa "Dwarf_Unsigned *debug_frame" -.Fa "Dwarf_Unsigned *debug_ranges" -.Fa "Dwarf_Unsigned *debug_pubtypes" -.Fc -.Ft int -.Fo dwarf_get_section_max_offsets_b -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Unsigned *debug_info" -.Fa "Dwarf_Unsigned *debug_abbrev" -.Fa "Dwarf_Unsigned *debug_line" -.Fa "Dwarf_Unsigned *debug_loc" -.Fa "Dwarf_Unsigned *debug_aranges" -.Fa "Dwarf_Unsigned *debug_macinfo" -.Fa "Dwarf_Unsigned *debug_pubnames" -.Fa "Dwarf_Unsigned *debug_str" -.Fa "Dwarf_Unsigned *debug_frame" -.Fa "Dwarf_Unsigned *debug_ranges" -.Fa "Dwarf_Unsigned *debug_pubtypes" -.Fa "Dwarf_Unsigned *debug_types" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_section_max_offsets_b -retrieves the sizes of the DWARF sections in a DWARF debug context. -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -The function stores the size of each DWARF section to the location -pointed to by the argument corresponding to the section name. -If a DWARF section does not exist, the location pointed to by the -argument corresponding to that section will be set to zero. -.Pp -A value of NULL may be used for any of the arguments -.Ar debug_info , -.Ar debug_abbrev , -.Ar debug_line , -.Ar debug_loc , -.Ar debug_aranges , -.Ar debug_macinfo , -.Ar debug_pubnames , -.Ar debug_str , -.Ar debug_frame , -.Ar debug_ranges , -.Ar debug_pubtypes -and -.Ar debug_types -if the caller is not interested in the respective section size. -.Pp -Function -.Fn dwarf_get_section_max_offsets -is identical to function -.Fn dwarf_get_section_max_offsets_b -except that it does not provide argument -.Ar debug_types , -and thus cannot return the size of the -.Dq \&.debug_types -section. -.Sh RETURN VALUES -On success, these functions return -.Dv DW_DLV_OK . -If argument -.Ar dbg -is NULL, they return -.Dv DW_DLV_ERROR . -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_init 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_str.3 b/contrib/elftoolchain/libdwarf/dwarf_get_str.3 deleted file mode 100644 index 1202ae2a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_str.3 +++ /dev/null @@ -1,149 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 3, 2011 -.Dt DWARF_GET_STR 3 -.Os -.Sh NAME -.Nm dwarf_get_str -.Nd retrieve a string from the DWARF string section -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_str -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Off offset" -.Fa "char **string" -.Fa "Dwarf_Signed *len" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_get_str -retrieves a NUL-terminated string from the DWARF string section -.Dq ".debug_str" . -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar offset -should be an offset, relative to the -.Dq ".debug_str" -section, specifying the start of the desired string. -.Pp -Argument -.Ar string -should point to a location which will hold a returned -pointer to a NUL-terminated string. -.Pp -Argument -.Ar len -should point to a location which will hold the length -of the returned string. -The returned length does not include the space needed for -the NUL-terminator. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -Function -.Fn dwarf_get_str -returns -.Dv DW_DLV_OK -when it succeeds. -It returns -.Dv DW_DLV_NO_ENTRY -if there is no -.Dq ".debug_str" -section associated with the specified debugging context, -or if the provided offset -.Ar offset -is at the very end of -.Dq ".debug_str" -section. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To retrieve all the strings in the DWARF string section, use: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Off offset; -Dwarf_Signed len; -Dwarf_Error de; -char *str; -int ret - -offset = 0; -while ((ret = dwarf_get_str(dbg, offset, &str, &len, &de)) == - DW_DLV_OK) { - /* .. Use the retrieved string. .. */ - offset += len + 1; /* Account for the terminating NUL. */ -} - -if (ret == DW_DLV_ERROR) - warnx("dwarf_get_str: %s", dwarf_errmsg(de)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_get_str -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar dbg , -.Ar string -or -.Ar len -was NULL. -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar offset -was out of range. -.It Bq Er DW_DLE_NO_ENTRY -The debugging context -.Ar dbg -did not contain a -.Dq ".debug_str" -string section. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar offset -was at the very end of the -.Dq ".debug_str" -section. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_init 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_types.3 b/contrib/elftoolchain/libdwarf/dwarf_get_types.3 deleted file mode 100644 index d5f88a12..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_types.3 +++ /dev/null @@ -1,232 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 10, 2011 -.Dt DWARF_GET_TYPES 3 -.Os -.Sh NAME -.Nm dwarf_get_types , -.Nm dwarf_type_cu_offset , -.Nm dwarf_type_die_offset , -.Nm dwarf_type_name_offsets , -.Nm dwarf_typename -.Nd retrieve information about user-defined types -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_types -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Type **types" -.Fa "Dwarf_Signed *ntypes" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_type_cu_offset -.Fa "Dwarf_Type type" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_type_die_offset -.Fa "Dwarf_Type type" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_type_name_offsets -.Fa "Dwarf_Type type" -.Fa "char **name" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_typename -.Fa "Dwarf_Type type" -.Fa "char **name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These APIs retrieve information about user-defined types from the -SGI-specific -.Dq ".debug_typenames" -section. -.Pp -Standards-conformant applications should use the functions -.Xr dwarf_get_pubtypes 3 , -.Xr dwarf_pubtype_cu_offset 3 , -.Xr dwarf_pubtype_die_offset 3 , -.Xr dwarf_pubtype_name_offsets 3 -and -.Xr dwarf_pubtypename 3 , -which operate on the equivalent -.Dq ".debug_pubtypes" -section defined by the DWARF3 standard. -.Pp -Information about user-defined types is returned using opaque descriptors -of type -.Vt Dwarf_Type . -Applications need to use the functions described below to retrieve -the name and offset information contained in these descriptors. -.Pp -Function -.Fn dwarf_get_types -retrieves descriptors for all user-defined types associated with the -DWARF debug context specified by argument -.Ar dbg . -The argument -.Ar types -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Type -descriptors. -The argument -.Ar ntypes -should point to a location that will be set to the number of -descriptors returned. -.Pp -Function -.Fn dwarf_type_cu_offset -returns the offset, relative to the -.Dq ".debug_info" -section, of the compilation unit that contains the debugging -information entry associated with the argument -.Ar type . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -.Pp -Function -.Fn dwarf_type_die_offset -retrieves the offset, relative to the -.Dq ".debug_info" -section, of the debugging information entry associated with the -argument -.Ar type , -and stores it into the location pointed to by the argument -.Ar die_offset . -.Pp -Function -.Fn dwarf_type_name_offsets -retrieves the name and offsets for the debugging information -entry for argument -.Ar type . -Argument -.Ar name -should point to a location which will be set to a pointer to a -NUL-terminated string containing the name of the associated debugging -information entry. -Argument -.Ar die_offset -should point to a location which will be set to the offset, relative -to the -.Dq ".debug_info" -section, of the associated debugging information entry. -Argument -.Ar cu_die_offset -should point to a location which will be set to a offset, relative to -the -.Dq ".debug_info" -section, of the first debugging information entry in the compilation -unit associated with argument -.Ar type . -.Pp -Function -.Fn dwarf_typename -sets the location pointed to by argument -.Ar name -to a pointer to a NUL-terminated string holding the name of the -debugging information entry associated with the argument -.Ar type . -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Type -descriptors returned in argument -.Ar types -by function -.Fn dwarf_get_types -is owned by the -.Lb libdwarf . -Application code should not attempt to directly free this pointer. -Portable code should instead use the function -.Xr dwarf_types_dealloc 3 -to indicate that the memory area may be freed. -.Pp -The memory area used for the string returned in the -.Ar name -argument to functions -.Fn dwarf_type_name_offsets -and -.Fn dwarf_typename -is owned by the -.Lb libdwarf . -Portable code should indicate that the memory area can -be freed using the -.Xr dwarf_dealloc 3 -function. -.Ss Error Returns -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_die_offset , -.Va cu_offset , -.Va dbg , -.Va die_offset , -.Va type , -.Va types , -.Va name , -or -.Va ntypes -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The DWARF debugging context referenced by argument -.Ar dbg -did not contain information about user-defined types. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 , -.Xr dwarf_get_pubtypes 3 , -.Xr dwarf_pubtype_cu_offset 3 , -.Xr dwarf_pubtype_die_offset 3 , -.Xr dwarf_pubtype_name_offsets 3 , -.Xr dwarf_pubtypename 3 , -.Xr dwarf_types_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_vars.3 b/contrib/elftoolchain/libdwarf/dwarf_get_vars.3 deleted file mode 100644 index 3aede23a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_vars.3 +++ /dev/null @@ -1,210 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 2, 2011 -.Dt DWARF_GET_VARS 3 -.Os -.Sh NAME -.Nm dwarf_get_vars , -.Nm dwarf_var_cu_offset , -.Nm dwarf_var_die_offset , -.Nm dwarf_var_name_offsets , -.Nm dwarf_varname -.Nd retrieve information about static variables -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_vars -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Var **vars" -.Fa "Dwarf_Signed *nvars" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_var_cu_offset -.Fa "Dwarf_Var var" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_var_die_offset -.Fa "Dwarf_Var var" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_var_name_offsets -.Fa "Dwarf_Var var" -.Fa "char **name" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_varname -.Fa "Dwarf_Var var" -.Fa "char **name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve information about the file scope static -variables associated with a DWARF debug context. -Information about these static variables is returned using opaque -descriptors of type -.Vt Dwarf_Var . -Applications need to use the functions described below to retrieve -the name and offset information contained in these descriptors. -.Pp -Function -.Fn dwarf_get_vars -retrieves descriptors for all the static variables associated with the -DWARF debug context specified by argument -.Ar dbg . -The argument -.Ar vars -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Var -descriptors. -The argument -.Ar nvars -should point to a location that will be set to the number of -descriptors returned. -.Pp -Function -.Fn dwarf_var_cu_offset -returns the section-relative offset, relative to the -.Dq ".debug_info" -section, of the compilation unit that -contains the debugging information entry associated with the argument -.Ar var . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -.Pp -Function -.Fn dwarf_var_die_offset -retrieves the section-relative offset, relative to the -.Dq ".debug_info" -section, of the debugging information -entry associated with the argument -.Ar var , -and stores it into the location pointed to by the argument -.Ar die_offset . -.Pp -Function -.Fn dwarf_var_name_offsets -retrieves both the name and the associated offsets for the debugging -information entry for argument -.Ar var . -Argument -.Ar name -should point to a location which will be set to a pointer to a -NUL-terminated string containing the name of the associated debugging -information entry. -Argument -.Ar die_offset -should point to a location which will be set to a section-relative -offset, relative to the -.Dq ".debug_info" -section, of the associated debugging information entry. -Argument -.Ar cu_die_offset -should point to a location which will be set to a -section-relative offset, relative to the -.Dq ".debug_info" -section, of the first debugging information entry in -the compilation unit associated with argument -.Ar var . -.Pp -Function -.Fn dwarf_varname -sets the location pointed to by argument -.Ar name -to a pointer to a NUL-terminated string holding the name of the -debugging information entry associated with the argument -.Ar var . -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Var -descriptors returned in argument -.Ar vars -by function -.Fn dwarf_get_vars -is owned by the -.Lb libdwarf . -Application code should not attempt to directly free this pointer. -Portable code should instead use the function -.Xr dwarf_vars_dealloc 3 -to indicate that the memory area may be freed. -.Pp -The memory area used for the string returned in the -.Ar name -argument to functions -.Fn dwarf_var_name_offsets -and -.Fn dwarf_varname -is owned by the -.Lb libdwarf . -Portable code should indicate that the memory area can -be freed using the -.Xr dwarf_dealloc 3 -function. -.Ss Error Returns -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_die_offset , -.Va cu_offset , -.Va dbg , -.Va die_offset , -.Va var , -.Va vars , -.Va name , -or -.Va nvars -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 , -.Xr dwarf_vars_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_get_weaks.3 b/contrib/elftoolchain/libdwarf/dwarf_get_weaks.3 deleted file mode 100644 index 8930fb8b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_get_weaks.3 +++ /dev/null @@ -1,215 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 10, 2011 -.Dt DWARF_GET_WEAKS 3 -.Os -.Sh NAME -.Nm dwarf_get_weaks , -.Nm dwarf_weak_cu_offset , -.Nm dwarf_weak_die_offset , -.Nm dwarf_weak_name_offsets , -.Nm dwarf_weakname -.Nd retrieve information about weak symbols -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_get_weaks -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Weak **weaks" -.Fa "Dwarf_Signed *nweaks" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_weak_cu_offset -.Fa "Dwarf_Weak weak" -.Fa "Dwarf_Off *cu_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_weak_die_offset -.Fa "Dwarf_Weak weak" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_weak_name_offsets -.Fa "Dwarf_Weak weak" -.Fa "char **name" -.Fa "Dwarf_Off *die_offset" -.Fa "Dwarf_Off *cu_die_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_weakname -.Fa "Dwarf_Weak weak" -.Fa "char **name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve information about weak symbols from the -lookup tables in the (SGI-specific) -.Dq ".debug_weaknames" -section. -Information about weak symbols is returned using opaque descriptors -of type -.Vt Dwarf_Weak . -Applications need to use the functions described below to retrieve -the name and offset information contained in these descriptors. -.Pp -Function -.Fn dwarf_get_weaks -retrieves descriptors for all the weak symbols associated with the -DWARF debug context specified by argument -.Ar dbg . -The argument -.Ar weaks -should point to a location that will be set to a pointer to an array -of -.Vt Dwarf_Weak -descriptors. -The argument -.Ar nweaks -should point to a location that will be set to the number of -descriptors returned. -.Pp -Function -.Fn dwarf_weak_cu_offset -returns the offset, relative to the -.Dq ".debug_info" -section, of the compilation unit that contains the debugging -information entry associated with the argument -.Ar weak . -Argument -.Ar cu_offset -should point to a location that will hold the returned offset. -.Pp -Function -.Fn dwarf_weak_die_offset -retrieves the offset, relative to the -.Dq ".debug_info" -section, of the debugging information entry associated with the -argument -.Ar weak , -and stores it into the location pointed to by the argument -.Ar die_offset . -.Pp -Function -.Fn dwarf_weak_name_offsets -retrieves the name and offsets for the debugging information -entry for argument -.Ar weak . -Argument -.Ar name -should point to a location which will be set to a pointer to a -NUL-terminated string containing the name of the associated debugging -information entry. -Argument -.Ar die_offset -should point to a location which will be set to the offset, relative -to the -.Dq ".debug_info" -section, of the associated debugging information entry. -Argument -.Ar cu_die_offset -should point to a location which will be set to the -offset, relative to the -.Dq ".debug_info" -section, of the first debugging information entry in the compilation -unit associated with argument -.Ar weak . -.Pp -Function -.Fn dwarf_weakname -sets the location pointed to by argument -.Ar name -to a pointer to a NUL-terminated string holding the name of the -debugging information entry associated with the argument -.Ar weak . -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Weak -descriptors returned in argument -.Ar weaks -by function -.Fn dwarf_get_weaks -is owned by the -.Lb libdwarf . -Application code should not attempt to directly free this pointer. -Portable code should instead use the function -.Xr dwarf_weaks_dealloc 3 -to indicate that the memory area may be freed. -.Pp -The memory area used for the string returned in the -.Ar name -argument to functions -.Fn dwarf_weak_name_offsets -and -.Fn dwarf_weakname -is owned by the -.Lb libdwarf . -Portable code should indicate that the memory area can -be freed using the -.Xr dwarf_dealloc 3 -function. -.Ss Error Returns -If argument -.Ar err -is not NULL, these functions will use it to store error information, -in case of an error. -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va cu_die_offset , -.Va cu_offset , -.Va dbg , -.Va die_offset , -.Va weak , -.Va weaks , -.Va name , -or -.Va nweaks -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The DWARF debugging context referenced by argument -.Ar dbg -did not contain information about weak symbols. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 , -.Xr dwarf_weaks_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_hasattr.3 b/contrib/elftoolchain/libdwarf/dwarf_hasattr.3 deleted file mode 100644 index 02da1a20..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_hasattr.3 +++ /dev/null @@ -1,92 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 17, 2010 -.Dt DWARF_HASATTR 3 -.Os -.Sh NAME -.Nm dwarf_hasattr -.Nd check for the presence of an attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_hasattr -.Fa "Dwarf_Die die" -.Fa "Dwarf_Half attr" -.Fa "Dwarf_Bool *ret_bool" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_hasattr -tests whether the debugging information entry referenced in argument -.Ar die -contains the attribute named by argument -.Ar attr . -Legal values for argument -.Ar attr -are those denoted by the -.Dv DW_AT_* -constants in the DWARF specification. -.Pp -If the named attribute is present in the debugging information entry, -function -.Fn dwarf_hasattr -returns a non-zero value in the location pointed to by argument -.Ar ret_bool . -If the named attribute is not present, a zero is written instead. -.Pp -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_hasattr -returns -.Dv DW_DLV_OK . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_hasattr -can fail with the following error: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of argument -.Va die -or -.Va ret_bool -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_whatattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_hasform.3 b/contrib/elftoolchain/libdwarf/dwarf_hasform.3 deleted file mode 100644 index 58b5cf50..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_hasform.3 +++ /dev/null @@ -1,127 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd May 22, 2010 -.Dt DWARF_HASFORM 3 -.Os -.Sh NAME -.Nm dwarf_hasform , -.Nm dwarf_whatform , -.Nm dwarf_whatform_direct -.Nd query attribute forms -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_hasform -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Half form" -.Fa "Dwarf_Bool *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_whatform -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Half *retform" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_whatform_direct -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Half *retform" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_hasform -indicates whether the DWARF attribute denoted by argument -.Ar attr -has the attribute form specified by argument -.Ar form . -If the attribute has the specified form, then -argument -.Ar ret -is set to a non-zero value, otherwise it is set to zero. -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in -case of an error. -.Pp -Function -.Fn dwarf_whatform -sets the location specified by argument -.Ar retform -to the attribute form code for the DWARF attribute referenced -by argument -.Ar attr . -If the attribute referenced by argument -.Ar attr -has an indirect form attribute, this function will return the final -form for the attribute. -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in -case of an error. -.Pp -Function -.Fn dwarf_whatform_direct -sets the location specified by argument -.Ar retform -to the attribute form code for the DWARF attribute referenced -by argument -.Ar attr . -If the form is an indirect form, the function sets the location -specified by argument -.Ar retform -to -.Dv DW_FORM_indirect . -If argument -.Ar err -is non-NULL, it will be used to return an error descriptor in -case of an error. -.Sh RETURN VALUES -These functions return -.Dv DW_DLV_OK -on success. -In case of an error, these functions return -.Dv DW_DLV_ERR -and set argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Any of the arguments -.Ar attr , -.Ar ret , -or -.Ar retform -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_highpc.3 b/contrib/elftoolchain/libdwarf/dwarf_highpc.3 deleted file mode 100644 index 9b85901b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_highpc.3 +++ /dev/null @@ -1,194 +0,0 @@ -.\" Copyright (c) 2010,2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd July 22, 2014 -.Dt DWARF_HIGHPC 3 -.Os -.Sh NAME -.Nm dwarf_arrayorder , -.Nm dwarf_bitoffset , -.Nm dwarf_bitsize , -.Nm dwarf_bytesize , -.Nm dwarf_highpc , -.Nm dwarf_highpc_b , -.Nm dwarf_lowpc , -.Nm dwarf_srclang -.Nd retrieve the value of a DWARF attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_arrayorder -.Fa "Dwarf_Die die" -.Fa "Dwarf_Unsigned *ret_order" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_bitoffset -.Fa "Dwarf_Die die" -.Fa "Dwarf_Unsigned *ret_size" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_bitsize -.Fa "Dwarf_Die die" -.Fa "Dwarf_Unsigned *ret_size" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_bytesize -.Fa "Dwarf_Die die" -.Fa "Dwarf_Unsigned *ret_size" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_highpc -.Fa "Dwarf_Die die" -.Fa "Dwarf_Addr *ret_highpc" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_highpc_b -.Fa "Dwarf_Die die" -.Fa "Dwarf_Addr *ret_highpc" -.Fa "Dwarf_Half *ret_form" -.Fa "enum Dwarf_Form_Class *ret_class" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_lowpc -.Fa "Dwarf_Die die" -.Fa "Dwarf_Addr *ret_lowpc" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_srclang -.Fa "Dwarf_Die die" -.Fa "Dwarf_Unsigned *ret_lang" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These convenience functions are used to retrieve DWARF attribute -values associated with a Debugging Information Entry (DIE) descriptor -denoted by argument -.Ar die . -These functions store the value of the requested attribute into the -location pointed to by their second argument, provided that the requested -attribute exists in the debugging information entry. -.Pp -The list of functions and the DWARF attribute that they retrieve are: -.Pp -.Bl -tag -width ".Fn dwarf_arrayorder" -compact -.It Fn dwarf_arrayorder -Retrieve the -.Dv DW_AT_ordering -attribute value. -.It Fn dwarf_bitoffset -Retrieve the -.Dv DW_AT_bit_offset -attribute value. -.It Fn dwarf_bitsize -Retrieve the -.Dv DW_AT_bit_size -attribute value. -.It Fn dwarf_bytesize -Retrieve the -.Dv DW_AT_byte_size -attribute value. -.It Fn dwarf_highpc -Retrieve the -.Dv DW_AT_high_pc -attribute value. -.It Fn dwarf_highpc_b -Retrieve the -.Dv DW_AT_high_pc -attribute value. -.It Fn dwarf_lowpc -Retrieve the -.Dv DW_AT_low_pc -attribute value. -.It Fn dwarf_srclang -Retrieve the -.Dv DW_AT_language -attribute value. -.El -.Pp -Function -.Fn dwarf_highpc_b -is an enhanced version of function -.Fn dwarf_highpc . -It sets the location specified by argument -.Ar ret_form -to the form code of the attribute -.Dv DW_AT_high_pc , -and sets the location specified by argument -.Ar ret_class -to the class of that form. -A value of NULL may be used for either of the arguments -.Ar ret_form -or -.Ar ret_class -if the caller is not interested in the respective value. -.Sh RETURN VALUES -These functions return -.Dv DW_DLV_OK -on success. -.Pp -If the debugging information entry descriptor denoted by argument -.Ar die -does not contain the requested attribute, these functions return -.Dv DW_DLV_NO_ENTRY -and set argument -.Ar err . -For other errors, they return -.Dv DW_DLV_ERROR -and set argument -.Ar err . -.Sh ERRORS -These functions can fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Arguments -.Ar die , -.Ar ret_highpc , -.Ar ret_lowpc , -.Ar ret_size , -.Ar ret_lang -or -.Ar ret_order -were NULL. -.It Bq Er DW_DLE_NO_ENTRY -Argument -.Ar die -had no requested attribute. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_attrlist 3 , -.Xr dwarf_get_form_class 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_init.3 b/contrib/elftoolchain/libdwarf/dwarf_init.3 deleted file mode 100644 index 66a25982..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_init.3 +++ /dev/null @@ -1,178 +0,0 @@ -.\" Copyright (c) 2009 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_INIT 3 -.Os -.Sh NAME -.Nm dwarf_init , -.Nm dwarf_elf_init -.Nd allocate a DWARF debug descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_init -.Fa "int fd" -.Fa "int mode" -.Fa "Dwarf_Handler errhand" -.Fa "Dwarf_Ptr errarg" -.Fa "Dwarf_Debug *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft in -.Fo dwarf_elf_init -.Fa "Elf *elf" -.Fa "int mode" -.Fa "Dwarf_Handler errhand" -.Fa "Dwarf_Ptr errarg" -.Fa "Dwarf_Debug *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions allocate and return a -.Vt Dwarf_Debug -instance for the object denoted by argument -.Ar fd -or -.Ar elf . -This instance would be used for subsequent access to debugging information in the object by other functions in the DWARF(3) library. -.Pp -For function -.Fn dwarf_init , -argument -.Ar fd -denotes an open file descriptor referencing a compilation object. -Function -.Fn dwarf_init -implicitly allocates an -.Vt Elf -descriptor for argument -.Ar fd . -.Pp -For function -.Fn dwarf_elf_init , -argument -.Ar elf -denotes a descriptor returned by -.Xr elf_begin 3 -or -.Xr elf_memory 3 . -.Pp -Argument -.Ar mode -specifies the access mode desired. -It should be at least as permissive as the mode with which -the file descriptor -.Ar fd -or the ELF descriptor -.Ar elf -was created with. -Legal values for argument -.Ar mode -are: -.Pp -.Bl -tag -width "DW_DLC_WRITE" -compact -.It DW_DLC_RDWR -Permit reading and writing of DWARF information. -.It DW_DLC_READ -Operate in read-only mode. -.It DW_DLC_WRITE -Permit writing of DWARF information. -.El -.Pp -Argument -.Ar errhand -denotes a function to be called in case of an error. -If this argument is -.Dv NULL -then a default error handling scheme is used. -See -.Xr dwarf 3 -for a description of the error handling scheme used by the -DWARF(3) library. -.Pp -Argument -.Ar errarg -is passed to the error handler function denoted by argument -.Ar errhand -when it is invoked. -.Pp -Argument -.Ar ret -points to the memory location that will hold a -.Vt Dwarf_Debug -reference on a successful call these functions. -.Pp -Argument -.Ar err -references a memory location that would hold a -.Vt Dwarf_Error -descriptor in case of an error. -.Ss Memory Management -The -.Vt Dwarf_Debug -instance returned by these functions should be freed using -.Fn dwarf_finish . -.Sh IMPLEMENTATION NOTES -The current implementation does not support access modes -.Dv DW_DLC_RDWR -and -.Dv DW_DLC_WRITE . -.Sh RETURN VALUES -These functions return the following values: -.Bl -tag -width ".Bq Er DW_DLV_NO_ENTRY" -.It Bq Er DW_DLV_OK -This return value indicates a successful return. -.It Bq Er DW_DLV_ERROR -The operation failed. -.It Bq Er DW_DLV_NO_ENTRY -The object specified by arguments -.Ar "fd" -or -.Ar "elf" -did not contain debug information. -.El -.Sh EXAMPLES -To initialize a -.Vt Dwarf_Debug -instance from a open file descriptor referencing an ELF object, and -with the default error handler, use: -.Bd -literal -offset indent -Dwarf_Error err; -Dwarf_Debug dbg; - -if (dwarf_init(fd, DW_DLC_READ, NULL, NULL, &dbg, &err) != - DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_init: %s", dwarf_errmsg(err)); -.Ed -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_errmsg 3 , -.Xr dwarf_finish 3 , -.Xr dwarf_get_elf 3 , -.Xr elf_begin 3 , -.Xr elf_memory 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_init.c b/contrib/elftoolchain/libdwarf/dwarf_init.c deleted file mode 100644 index 543f0be5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_init.c +++ /dev/null @@ -1,163 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_elf_init(Elf *elf, int mode, Dwarf_Handler errhand, Dwarf_Ptr errarg, - Dwarf_Debug *ret_dbg, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - int ret; - - if (elf == NULL || ret_dbg == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (mode != DW_DLC_READ) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (_dwarf_alloc(&dbg, mode, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - - if (_dwarf_elf_init(dbg, elf, error) != DW_DLE_NONE) { - free(dbg); - return (DW_DLV_ERROR); - } - - if ((ret = _dwarf_init(dbg, 0, errhand, errarg, error)) != - DW_DLE_NONE) { - _dwarf_elf_deinit(dbg); - free(dbg); - if (ret == DW_DLE_DEBUG_INFO_NULL) - return (DW_DLV_NO_ENTRY); - else - return (DW_DLV_ERROR); - } - - *ret_dbg = dbg; - - return (DW_DLV_OK); -} - -int -dwarf_get_elf(Dwarf_Debug dbg, Elf **elf, Dwarf_Error *error) -{ - Dwarf_Elf_Object *e; - - if (dbg == NULL || elf == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - e = dbg->dbg_iface->object; - *elf = e->eo_elf; - - return (DW_DLV_OK); -} - -int -dwarf_init(int fd, int mode, Dwarf_Handler errhand, Dwarf_Ptr errarg, - Dwarf_Debug *ret_dbg, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Elf *elf; - int ret; - - if (fd < 0 || ret_dbg == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (mode != DW_DLC_READ) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (elf_version(EV_CURRENT) == EV_NONE) { - DWARF_SET_ELF_ERROR(NULL, error); - return (DW_DLV_ERROR); - } - - if ((elf = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { - DWARF_SET_ELF_ERROR(NULL, error); - return (DW_DLV_ERROR); - } - - if (_dwarf_alloc(&dbg, mode, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - - if (_dwarf_elf_init(dbg, elf, error) != DW_DLE_NONE) { - free(dbg); - return (DW_DLV_ERROR); - } - - if ((ret = _dwarf_init(dbg, 0, errhand, errarg, error)) != - DW_DLE_NONE) { - _dwarf_elf_deinit(dbg); - free(dbg); - if (ret == DW_DLE_DEBUG_INFO_NULL) - return (DW_DLV_NO_ENTRY); - else - return (DW_DLV_ERROR); - } - - *ret_dbg = dbg; - - return (DW_DLV_OK); -} - -int -dwarf_object_init(Dwarf_Obj_Access_Interface *iface, Dwarf_Handler errhand, - Dwarf_Ptr errarg, Dwarf_Debug *ret_dbg, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - if (iface == NULL || ret_dbg == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (_dwarf_alloc(&dbg, DW_DLC_READ, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - - dbg->dbg_iface = iface; - - if (_dwarf_init(dbg, 0, errhand, errarg, error) != DW_DLE_NONE) { - free(dbg); - return (DW_DLV_ERROR); - } - - *ret_dbg = dbg; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_lineno.3 b/contrib/elftoolchain/libdwarf/dwarf_lineno.3 deleted file mode 100644 index a17bde06..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_lineno.3 +++ /dev/null @@ -1,202 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd February 5, 2011 -.Dt DWARF_LINENO 3 -.Os -.Sh NAME -.Nm dwarf_lineaddr , -.Nm dwarf_linebeginstatement , -.Nm dwarf_lineblock , -.Nm dwarf_lineendsequence , -.Nm dwarf_lineno , -.Nm dwarf_lineoff , -.Nm dwarf_linesrc , -.Nm dwarf_line_srcfileno -.Nd retrieve information associated with a DWARF line descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_lineaddr -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Addr *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_linebeginstatement -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Bool *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_lineblock -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Bool *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_lineendsequence -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Bool *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_lineno -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Unsigned *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_lineoff -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Signed *ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_linesrc -.Fa "Dwarf_Line ln" -.Fa "char **ret" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_line_srcfileno -.Fa "Dwarf_Line ln" -.Fa "Dwarf_Unsigned *ret" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions retrieve specific line information associated with -the line descriptor specified by argument -.Ar ln , -and stores it in the location pointed to by argument -.Ar ret . -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Pp -Function -.Fn dwarf_lineaddr -stores the program address corresponding to the source line specified -in argument -.Ar ln -into the location pointed to by argument -.Ar ret . -.Pp -Function -.Fn dwarf_linebeginstatement -sets the location pointed to by argument -.Ar ret -to 1 if the source line specified by the line descriptor -.Ar ln -is the beginning of a statement, or to 0 otherwise. -.Pp -Function -.Fn dwarf_lineblock -sets the location pointed to by argument -.Ar ret -to 1 if the source line specified by the line descriptor -.Ar ln -is the beginning of a basic block, or to 0 otherwise. -.Pp -Function -.Fn dwarf_lineendsequence -sets the location pointed to by argument -.Ar ret -to 1 if the program address associated with the line descriptor -.Ar ln -is the address immediately following the end of a sequence of target -machine instructions, or to 0 otherwise. -.Pp -Function -.Fn dwarf_lineno -stores the line number of the source line associated with the line -descriptor -.Ar ln -into the location pointed to by argument -.Ar ret . -.Pp -Function -.Fn dwarf_lineoff -stores the column number within a line associated with descriptor -.Ar ln -into the location pointed to by argument -.Ar ret . -The retrieved column numbers are 1-based, with the value -1 indicating -that column number information was not available. -.Pp -Function -.Fn dwarf_linesrc -stores a pointer to a NUL-terminated string containing the source file -name associated with line descriptor -.Ar ln -into the location pointed to by argument -.Ar ret . -The full path of the source file is returned if possible. -The memory used for the source file name string is managed by the DWARF(3) -library and should not be directly freed by application code. -Instead, portable code should use -.Xr dwarf_dealloc 3 -to indicate that the string should be freed. -.Pp -Function -.Fn dwarf_line_srcfileno -stores the index of the source file associated with the line descriptor -.Ar ln -in the location pointed to by argument -.Ar ret . -The returned value is 1-based index into the array of source file -names returned by -.Xr dwarf_srcfiles 3 . -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_LINE_FILE_NUM_BAD" -.It Bq Er DW_DLE_ARGUMENT -Either of the arguments -.Va ln -or -.Va ret -was NULL. -.It Bq Er DW_DLE_LINE_FILE_NUM_BAD -The source file name associated with the line descriptor -.Ar ln -could not be retrieved by function -.Fn dwarf_linesrc . -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_srcfiles 3 , -.Xr dwarf_srclines 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_lineno.c b/contrib/elftoolchain/libdwarf/dwarf_lineno.c deleted file mode 100644 index 61e4028f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_lineno.c +++ /dev/null @@ -1,294 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_srclines(Dwarf_Die die, Dwarf_Line **linebuf, Dwarf_Signed *linecount, - Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_Debug dbg; - Dwarf_Line ln; - Dwarf_CU cu; - Dwarf_Attribute at; - int i; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || linebuf == NULL || linecount == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_stmt_list)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - cu = die->die_cu; - if (cu->cu_lineinfo == NULL) { - if (_dwarf_lineno_init(die, at->u[0].u64, error) != - DW_DLE_NONE) - return (DW_DLV_ERROR); - } - if (cu->cu_lineinfo == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - li = cu->cu_lineinfo; - *linecount = (Dwarf_Signed) li->li_lnlen; - - if (*linecount == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - if (li->li_lnarray != NULL) { - *linebuf = li->li_lnarray; - return (DW_DLV_OK); - } - - if ((li->li_lnarray = malloc(*linecount * sizeof(Dwarf_Line))) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - - for (i = 0, ln = STAILQ_FIRST(&li->li_lnlist); - i < *linecount && ln != NULL; i++, ln = STAILQ_NEXT(ln, ln_next)) - li->li_lnarray[i] = ln; - - *linebuf = li->li_lnarray; - - return (DW_DLV_OK); -} - -int -dwarf_srcfiles(Dwarf_Die die, char ***srcfiles, Dwarf_Signed *srccount, - Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_LineFile lf; - Dwarf_Debug dbg; - Dwarf_CU cu; - Dwarf_Attribute at; - int i; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL || srcfiles == NULL || srccount == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((at = _dwarf_attr_find(die, DW_AT_stmt_list)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - cu = die->die_cu; - if (cu->cu_lineinfo == NULL) { - if (_dwarf_lineno_init(die, at->u[0].u64, error) != - DW_DLE_NONE) - return (DW_DLV_ERROR); - } - if (cu->cu_lineinfo == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - li = cu->cu_lineinfo; - *srccount = (Dwarf_Signed) li->li_lflen; - - if (*srccount == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - if (li->li_lfnarray != NULL) { - *srcfiles = li->li_lfnarray; - return (DW_DLV_OK); - } - - if ((li->li_lfnarray = malloc(*srccount * sizeof(char *))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - - for (i = 0, lf = STAILQ_FIRST(&li->li_lflist); - i < *srccount && lf != NULL; i++, lf = STAILQ_NEXT(lf, lf_next)) { - if (lf->lf_fullpath) - li->li_lfnarray[i] = lf->lf_fullpath; - else - li->li_lfnarray[i] = lf->lf_fname; - } - - *srcfiles = li->li_lfnarray; - - return (DW_DLV_OK); -} - -int -dwarf_linebeginstatement(Dwarf_Line ln, Dwarf_Bool *ret_bool, - Dwarf_Error *error) -{ - - if (ln == NULL || ret_bool == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_bool = ln->ln_stmt; - - return (DW_DLV_OK); -} - -int -dwarf_lineendsequence(Dwarf_Line ln, Dwarf_Bool *ret_bool, Dwarf_Error *error) -{ - - if (ln == NULL || ret_bool == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_bool = ln->ln_endseq; - - return (DW_DLV_OK); -} - -int -dwarf_lineno(Dwarf_Line ln, Dwarf_Unsigned *ret_lineno, Dwarf_Error *error) -{ - - if (ln == NULL || ret_lineno == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_lineno = ln->ln_lineno; - - return (DW_DLV_OK); -} - -int -dwarf_line_srcfileno(Dwarf_Line ln, Dwarf_Unsigned *ret_fileno, - Dwarf_Error *error) -{ - - if (ln == NULL || ret_fileno == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_fileno = ln->ln_fileno; - - return (DW_DLV_OK); -} - -int -dwarf_lineaddr(Dwarf_Line ln, Dwarf_Addr *ret_lineaddr, Dwarf_Error *error) -{ - - if (ln == NULL || ret_lineaddr == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_lineaddr = ln->ln_addr; - - return (DW_DLV_OK); -} - -int -dwarf_lineoff(Dwarf_Line ln, Dwarf_Signed *ret_lineoff, Dwarf_Error *error) -{ - - if (ln == NULL || ret_lineoff == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (ln->ln_column == 0) - *ret_lineoff = -1; - else - *ret_lineoff = (Dwarf_Signed) ln->ln_column; - - return (DW_DLV_OK); -} - -int -dwarf_linesrc(Dwarf_Line ln, char **ret_linesrc, Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_LineFile lf; - int i; - - if (ln == NULL || ret_linesrc == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - li = ln->ln_li; - assert(li != NULL); - - for (i = 1, lf = STAILQ_FIRST(&li->li_lflist); - (Dwarf_Unsigned) i < ln->ln_fileno && lf != NULL; - i++, lf = STAILQ_NEXT(lf, lf_next)) - ; - - if (lf == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_LINE_FILE_NUM_BAD); - return (DW_DLV_ERROR); - } - - if (lf->lf_fullpath) { - *ret_linesrc = (char *) lf->lf_fullpath; - return (DW_DLV_OK); - } - - *ret_linesrc = lf->lf_fname; - - return (DW_DLV_OK); -} - -int -dwarf_lineblock(Dwarf_Line ln, Dwarf_Bool *ret_bool, Dwarf_Error *error) -{ - - if (ln == NULL || ret_bool == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_bool = ln->ln_bblock; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_lne_end_sequence.3 b/contrib/elftoolchain/libdwarf/dwarf_lne_end_sequence.3 deleted file mode 100644 index 20a5feb0..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_lne_end_sequence.3 +++ /dev/null @@ -1,100 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 15, 2011 -.Dt DWARF_LNE_END_SEQUENCE 3 -.Os -.Sh NAME -.Nm dwarf_lne_end_sequence -.Nd set the end of instruction sequence -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_lne_end_sequence -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Addr addr" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_lne_end_sequence -sets the address that indicates the end of a sequence of target machine -instructions. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar addr -specifies an address value which is the first byte after the end of a -instruction sequence. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_lne_end_sequence -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_lne_end_sequence -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_lne_end_sequence -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The value in argument -.Ar addr -overlapped an existing line information entry. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_directory_decl 3 , -.Xr dwarf_add_file_decl 3 , -.Xr dwarf_add_line_entry 3 , -.Xr dwarf_lne_set_address 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_lne_set_address.3 b/contrib/elftoolchain/libdwarf/dwarf_lne_set_address.3 deleted file mode 100644 index 2e8214cc..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_lne_set_address.3 +++ /dev/null @@ -1,105 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 14, 2011 -.Dt DWARF_LNE_SET_ADDRESS 3 -.Os -.Sh NAME -.Nm dwarf_lne_set_address -.Nd set the base address for line number information -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_Unsigned" -.Fo dwarf_lne_set_address -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Addr off" -.Fa "Dwarf_Unsigned symndx" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_lne_set_address -sets the base address used by subsequent invocations of the -.Xr dwarf_add_line_entry 3 -function. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar off -specifies a relocatable program address. -.Pp -Argument -.Ar symndx -specifies the index of the ELF symbol to be used for relocation. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_lne_set_address -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_lne_set_address -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_lne_set_address -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The argument -.Ar symndx -had an illegal value. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_directory_decl 3 , -.Xr dwarf_add_file_decl 3 , -.Xr dwarf_add_line_entry 3 , -.Xr dwarf_lne_end_sequence 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_loclist.3 b/contrib/elftoolchain/libdwarf/dwarf_loclist.3 deleted file mode 100644 index 0e9b62e5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_loclist.3 +++ /dev/null @@ -1,230 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_LOCLIST 3 -.Os -.Sh NAME -.Nm dwarf_loclist , -.Nm dwarf_loclist_n -.Nd retrieve DWARF location expression information -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_loclist -.Fa "Dwarf_Attribute at" -.Fa "Dwarf_Locdesc **llbuf" -.Fa "Dwarf_Signed *listlen" -.Fa "Dwarf_Error *error" -.Fc -.Ft int -.Fo dwarf_loclist_n -.Fa "Dwarf_Attribute at" -.Fa "Dwarf_Locdesc ***llbuf" -.Fa "Dwarf_Signed *listlen" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -These functions retrieve the location expressions -associated with a DWARF attribute. -.Pp -Note: function -.Fn dwarf_loclist -is deprecated. -New application code should instead use function -.Fn dwarf_loclist_n -.Pp -Function -.Fn dwarf_loclist_n -retrieves the list of location expressions associated with a DWARF -attribute. -Argument -.Ar at -should reference a valid DWARF attribute. -Argument -.Ar llbuf -should point to a location which will hold a returned array of -pointers to -.Vt Dwarf_Locdesc -descriptors. -Argument -.Ar listlen -should point to a location which will be set to the number of -elements contained in the returned array. -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -Function -.Fn dwarf_loclist -retrieves the first location expression associated with an attribute. -Argument -.Ar at -should reference a valid DWARF attribute. -Argument -.Ar llbuf -should point to a location which will hold the returned pointer -to a -.Vt Dwarf_Locdesc -descriptor. -Argument -.Ar listlen -should point to a location which will be always set to 1. -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -.Vt Dwarf_Locdesc -descriptors are defined in the header file -.In libdwarf.h , -and consist of following fields: -.Pp -.Bl -tag -width ".Va ld_cents" -compact -.It Va ld_lopc -The lowest program counter address covered by the descriptor. -This field will be set to 0 if the descriptor is not associated with -an address range. -.It Va ld_hipc -The highest program counter address covered by the descriptor. -This field will be set to 0 if the descriptor is not associated with -an address range. -.It Va ld_cents -The number of entries returned in -.Va ld_s -field. -.It Va ld_s -Pointer to an array of -.Vt Dwarf_Loc -descriptors. -.El -.Pp -Each -.Vt Dwarf_Loc -descriptor represents one operation of a location expression. -These descriptors are defined in the header file -.In libdwarf.h , -and consist of following fields: -.Pp -.Bl -tag -width ".Va lr_number2" -compact -.It Va lr_atom -The operator name, one of the -.Dv DW_OP_* -constants defined in the header file -.In dwarf.h . -.It Va lr_number -The first operand of this operation. -.It Va lr_number2 -The second operand of this operation. -.It Va lr_offset -The byte offset of this operation within the containing location -expression. -.El -.Ss Memory Management -The memory area used for the descriptor array returned in argument -.Ar llbuf -is allocated by the -.Lb libdwarf . -When the descriptor array is no longer needed, application code should -use function -.Xr dwarf_dealloc 3 -to free the memory area in the following manner: -.Bl -enum -.It -First, the -.Ar ld_s -field of each -.Vt Dwarf_Locdesc -descriptor should be deallocated using the allocation type -.Dv DW_DLA_LOC_BLOCK . -.It -Then, the application should free each -.Vt Dwarf_Locdesc -descriptor using the allocation type -.Dv DW_DLA_LOCDESC . -.It -Finally, the -.Va llbuf -pointer should be deallocated using the allocation type -.Dv DW_DLA_LIST . -.El -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh EXAMPLES -To retrieve the location list associated with an attribute, use: -.Bd -literal -offset indent -Dwarf_Attribute at; -Dwarf_Locdesc **llbuf; -Dwarf_Signed lcnt; -Dwarf_Loc *lr; -Dwarf_Error de; -int i; - -if (dwarf_loclist_n(at, &llbuf, &lcnt, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_loclist_n failed: %s", - dwarf_errmsg(de)); - -for (i = 0; i < lcnt; i++) { - /* ... Use llbuf[i] ... */ - for (j = 0; (Dwarf_Half) j < llbuf[i]->ld_cents; j++) { - lr = &llbuf[i]->ld_s[j]; - /* ... Use each Dwarf_Loc descriptor ... */ - } - dwarf_dealloc(dbg, llbuf[i]->ld_s, DW_DLA_LOC_BLOCK); - dwarf_dealloc(dbg, llbuf[i], DW_DLA_LOCDESC); -} -dwarf_dealloc(dbg, llbuf, DW_DLA_LIST); -.Ed -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar at , -.Ar llbuf -or -.Ar listlen -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The attribute provided by argument -.Ar at -does not contain a location expression or is not associated with a -location expression list. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_get_loclist_entry 3 , -.Xr dwarf_loclist_from_expr 3 , -.Xr dwarf_loclist_from_expr_a 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_loclist.c b/contrib/elftoolchain/libdwarf/dwarf_loclist.c deleted file mode 100644 index a704103a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_loclist.c +++ /dev/null @@ -1,302 +0,0 @@ -/*- - * Copyright (c) 2009,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -copy_locdesc(Dwarf_Debug dbg, Dwarf_Locdesc *dst, Dwarf_Locdesc *src, - Dwarf_Error *error) -{ - - assert(src != NULL && dst != NULL); - - dst->ld_lopc = src->ld_lopc; - dst->ld_hipc = src->ld_hipc; - dst->ld_cents = src->ld_cents; - - if (dst->ld_cents > 0) { - dst->ld_s = calloc(dst->ld_cents, sizeof(Dwarf_Loc)); - if (dst->ld_s == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - memcpy(dst->ld_s, src->ld_s, src->ld_cents * - sizeof(Dwarf_Loc)); - } else - dst->ld_s = NULL; - - return (DW_DLE_NONE); -} - -int -dwarf_loclist_n(Dwarf_Attribute at, Dwarf_Locdesc ***llbuf, - Dwarf_Signed *listlen, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - int ret; - - dbg = at != NULL ? at->at_die->die_dbg : NULL; - - if (at == NULL || llbuf == NULL || listlen == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - switch (at->at_attrib) { - case DW_AT_location: - case DW_AT_string_length: - case DW_AT_return_addr: - case DW_AT_data_member_location: - case DW_AT_frame_base: - case DW_AT_segment: - case DW_AT_static_link: - case DW_AT_use_location: - case DW_AT_vtable_elem_location: - switch (at->at_form) { - case DW_FORM_data4: - case DW_FORM_data8: - /* - * DW_FORM_data[48] can not be used as section offset - * since DWARF4. For DWARF[23], the application needs - * to determine if DW_FORM_data[48] is representing - * a constant or a section offset. - */ - if (at->at_die->die_cu->cu_version >= 4) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - /* FALLTHROUGH */ - case DW_FORM_sec_offset: - ret = _dwarf_loclist_find(dbg, at->at_die->die_cu, - at->u[0].u64, llbuf, listlen, NULL, error); - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, ret); - return (DW_DLV_NO_ENTRY); - } - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - return (DW_DLV_OK); - case DW_FORM_block: - case DW_FORM_block1: - case DW_FORM_block2: - case DW_FORM_block4: - case DW_FORM_exprloc: - if (at->at_ld == NULL) { - ret = _dwarf_loc_add(at->at_die, at, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - } - *llbuf = calloc(1, sizeof(Dwarf_Locdesc *)); - if (*llbuf == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - (*llbuf)[0] = calloc(1, sizeof(Dwarf_Locdesc)); - if ((*llbuf)[0] == NULL) { - free(*llbuf); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - if (copy_locdesc(dbg, (*llbuf)[0], at->at_ld, error) != - DW_DLE_NONE) { - free((*llbuf)[0]); - free(*llbuf); - return (DW_DLV_ERROR); - } - *listlen = 1; - return (DW_DLV_OK); - default: - /* Malformed Attr? */ - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - return (DW_DLV_NO_ENTRY); - } - default: - /* Wrong attr supplied. */ - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } -} - -int -dwarf_loclist(Dwarf_Attribute at, Dwarf_Locdesc **llbuf, - Dwarf_Signed *listlen, Dwarf_Error *error) -{ - Dwarf_Locdesc **_llbuf; - int i, ret; - - ret = dwarf_loclist_n(at, &_llbuf, listlen, error); - if (ret != DW_DLV_OK) - return (ret); - - /* Only return the first location description of the list. */ - *llbuf = _llbuf[0]; - - /* Free the rest of the list. */ - for (i = 1; i < *listlen; i++) { - if (_llbuf[i]->ld_s) - free(_llbuf[i]->ld_s); - free(_llbuf[i]); - } - free(_llbuf); - - *listlen = 1; - - return (DW_DLV_OK); -} - -int -dwarf_get_loclist_entry(Dwarf_Debug dbg, Dwarf_Unsigned offset, - Dwarf_Addr *hipc, Dwarf_Addr *lopc, Dwarf_Ptr *data, - Dwarf_Unsigned *entry_len, Dwarf_Unsigned *next_entry, - Dwarf_Error *error) -{ - Dwarf_Locdesc *ld, **llbuf; - Dwarf_Section *ds; - Dwarf_Signed listlen; - int i, ret; - - /* - * Note that this API sometimes will not work correctly because - * it assumes that all units have the same pointer size and offset - * size. - */ - - if (dbg == NULL || hipc == NULL || lopc == NULL || data == NULL || - entry_len == NULL || next_entry == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ret = _dwarf_loclist_find(dbg, STAILQ_FIRST(&dbg->dbg_cu), offset, - &llbuf, &listlen, entry_len, error); - if (ret == DW_DLE_NO_ENTRY) { - DWARF_SET_ERROR(dbg, error, DW_DLV_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } else if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - *hipc = *lopc = 0; - for (i = 0; i < listlen; i++) { - ld = llbuf[i]; - if (i == 0) { - *hipc = ld->ld_hipc; - *lopc = ld->ld_lopc; - } else { - if (ld->ld_lopc < *lopc) - *lopc = ld->ld_lopc; - if (ld->ld_hipc > *hipc) - *hipc = ld->ld_hipc; - } - } - - ds = _dwarf_find_section(dbg, ".debug_loc"); - assert(ds != NULL); - *data = (uint8_t *) ds->ds_data + offset; - *next_entry = offset + *entry_len; - - return (DW_DLV_OK); -} - -int -dwarf_loclist_from_expr(Dwarf_Debug dbg, Dwarf_Ptr bytes_in, - Dwarf_Unsigned bytes_len, Dwarf_Locdesc **llbuf, Dwarf_Signed *listlen, - Dwarf_Error *error) -{ - - return (dwarf_loclist_from_expr_a(dbg, bytes_in, bytes_len, - dbg->dbg_pointer_size, llbuf, listlen, error)); -} - -int -dwarf_loclist_from_expr_a(Dwarf_Debug dbg, Dwarf_Ptr bytes_in, - Dwarf_Unsigned bytes_len, Dwarf_Half addr_size, Dwarf_Locdesc **llbuf, - Dwarf_Signed *listlen, Dwarf_Error *error) -{ - Dwarf_Half offset_size; - Dwarf_Small version; - - /* - * Obtain offset size and DWARF version from the current - * Compilation Unit or Type Unit. These values are needed - * for correctly parsing DW_OP_GNU_implicit_pointer operator. - * - * Note that dwarf_loclist_from_expr_b() should be used instead - * if the application knows correct values for offset size - * and DWARF version. - */ - if (dbg->dbg_cu_current) { - offset_size = dbg->dbg_cu_current->cu_length_size == 4 ? 4 : 8; - version = dbg->dbg_cu_current->cu_version; - } else if (dbg->dbg_tu_current) { - offset_size = dbg->dbg_tu_current->cu_length_size == 4 ? 4 : 8; - version = dbg->dbg_tu_current->cu_version; - } else { - /* Default values if no CU/TU context. */ - offset_size = 4; - version = 2; /* DWARF2 */ - } - - return (dwarf_loclist_from_expr_b(dbg, bytes_in, bytes_len, addr_size, - offset_size, version, llbuf, listlen, error)); -} - -int -dwarf_loclist_from_expr_b(Dwarf_Debug dbg, Dwarf_Ptr bytes_in, - Dwarf_Unsigned bytes_len, Dwarf_Half addr_size, Dwarf_Half offset_size, - Dwarf_Small version, Dwarf_Locdesc **llbuf, Dwarf_Signed *listlen, - Dwarf_Error *error) -{ - Dwarf_Locdesc *ld; - int ret; - - if (dbg == NULL || bytes_in == NULL || bytes_len == 0 || - llbuf == NULL || listlen == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (addr_size != 4 && addr_size != 8) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (offset_size != 4 && offset_size != 8) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ret = _dwarf_loc_fill_locexpr(dbg, &ld, bytes_in, bytes_len, addr_size, - offset_size, version, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - - *llbuf = ld; - *listlen = 1; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_loclist_from_expr.3 b/contrib/elftoolchain/libdwarf/dwarf_loclist_from_expr.3 deleted file mode 100644 index 5cc424dd..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_loclist_from_expr.3 +++ /dev/null @@ -1,201 +0,0 @@ -.\" Copyright (c) 2011,2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 21, 2014 -.Dt DWARF_LOCLIST_FROM_EXPR 3 -.Os -.Sh NAME -.Nm dwarf_loclist_from_expr , -.Nm dwarf_loclist_from_expr_a , -.Nm dwarf_loclist_from_expr_b -.Nd translate DWARF location expression bytes -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_loclist_from_expr -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Ptr bytes_in" -.Fa "Dwarf_Unsigned bytes_len" -.Fa "Dwarf_Locdesc **llbuf" -.Fa "Dwarf_Signed *listlen" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_loclist_from_expr_a -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Ptr bytes_in" -.Fa "Dwarf_Unsigned bytes_len" -.Fa "Dwarf_Half addr_size" -.Fa "Dwarf_Locdesc **llbuf" -.Fa "Dwarf_Signed *listlen" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_loclist_from_expr_b -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Ptr bytes_in" -.Fa "Dwarf_Unsigned bytes_len" -.Fa "Dwarf_Half addr_size" -.Fa "Dwarf_Half offset_size" -.Fa "Dwarf_Small version" -.Fa "Dwarf_Locdesc **llbuf" -.Fa "Dwarf_Signed *listlen" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_loclist_from_expr -translates DWARF location expression bytes into a -.Vt Dwarf_Locdesc -descriptor. -The size for address related data is taken to be the default address -size for the object being read. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar bytes_in -should point to an array of DWARF location expression bytes. -.Pp -Argument -.Ar bytes_len -should specify the number of the location expression bytes to be -translated. -.Pp -Argument -.Ar llbuf -should point to a location which will be set to a pointer -to a returned -.Vt Dwarf_Locdesc -descriptor. -.Pp -Argument -.Ar listlen -should point to a location which will hold the number of the -.Vt Dwarf_Locdesc -descriptors returned. -In this case it is always set to 1. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Pp -Function -.Fn dwarf_loclist_from_expr_a -is identical to function -.Fn dwarf_loclist_from_expr , -except that it requires one additional argument -.Ar addr_size , -which specifies the address size to use when translating the location -expression bytes. -.Pp -Function -.Fn dwarf_loclist_from_expr_b -is identical to function -.Fn dwarf_loclist_from_expr_a -except that it requires two additional arguments for translating the -location expression bytes. -Argument -.Ar offset_size -specifies the offset size, and argument -.Ar version -specifies the DWARF version. -These values are required to correctly translate the -.Dv DW_OP_GNU_implicit_pointer -opcode. -.Ss Memory Management -The memory area used for the descriptor returned in argument -.Ar llbuf -is allocated by -.Lb libdwarf . -When the descriptor is no longer needed, application code should use -function -.Xr dwarf_dealloc 3 -to free the memory area in two steps: -.Bl -enum -compact -.It -First, the array of -.Vt Dwarf_Loc -descriptors pointed to by the -.Ar ld_s -field of the -.Vt Dwarf_Locdesc -descriptor should be deallocated using the allocation type -.Dv DW_DLA_LOC_BLOCK . -.It -Next, the application should free the -.Ar llbuf -pointer using the allocation type -.Dv DW_DLA_LOCDESC . -.El -.Sh RETURN VALUES -On success, these functions returns -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set the argument -.Ar err . -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_LOC_EXPR_BAD" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Va dbg , -.Va bytes_in , -.Va llbuf -or -.Va listlen -was NULL. -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar bytes_len -was 0. -.It Bq Er DW_DLE_ARGUMENT -The value of argument -.Ar addr_size -was invalid. -.It Bq Er DW_DLE_LOC_EXPR_BAD -An unknown or invalid operation was found in the location expression -bytes provided in argument -.Ar bytes_in . -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -this function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_loclist_entry 3 , -.Xr dwarf_loclist_n 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_macinfo.c b/contrib/elftoolchain/libdwarf/dwarf_macinfo.c deleted file mode 100644 index 09bd0043..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_macinfo.c +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -char * -dwarf_find_macro_value_start(char *macro_string) -{ - char *p; - - if (macro_string == NULL) - return (NULL); - - p = macro_string; - while (*p != '\0' && *p != ' ') - p++; - if (*p == ' ') - p++; - - return (p); -} - -int -dwarf_get_macro_details(Dwarf_Debug dbg, Dwarf_Off offset, - Dwarf_Unsigned max_count, Dwarf_Signed *entry_cnt, - Dwarf_Macro_Details **details, Dwarf_Error *error) -{ - Dwarf_MacroSet ms; - Dwarf_Unsigned cnt; - int i; - - if (dbg == NULL || entry_cnt == NULL || details == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (STAILQ_EMPTY(&dbg->dbg_mslist)) { - if (_dwarf_macinfo_init(dbg, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - if (STAILQ_EMPTY(&dbg->dbg_mslist)) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - } - - STAILQ_FOREACH(ms, &dbg->dbg_mslist, ms_next) { - for (i = 0; (Dwarf_Unsigned) i < ms->ms_cnt; i++) - if (ms->ms_mdlist[i].dmd_offset == offset) { - cnt = ms->ms_cnt - i; - if (max_count != 0 && cnt > max_count) - cnt = max_count; - - *details = &ms->ms_mdlist[i]; - *entry_cnt = cnt; - - return (DW_DLV_OK); - } - } - - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - - return (DW_DLV_NO_ENTRY); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_nametbl.m4 b/contrib/elftoolchain/libdwarf/dwarf_nametbl.m4 deleted file mode 100644 index 46c0e33e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_nametbl.m4 +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -define(`MAKE_NAMETBL_API',` -int -dwarf_get_$1s(Dwarf_Debug dbg, Dwarf_$2 **$1s, - Dwarf_Signed *ret_count, Dwarf_Error *error) -{ - Dwarf_Section *ds; - int ret; - - if (dbg == NULL || $1s == NULL || ret_count == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (dbg->dbg_$1s == NULL) { - if ((ds = _dwarf_find_section(dbg, ".debug_$4")) != NULL) { - ret = _dwarf_nametbl_init(dbg, &dbg->dbg_$1s, ds, - error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - } - if (dbg->dbg_$1s == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - } - - *$1s = dbg->dbg_$1s->ns_array; - *ret_count = dbg->dbg_$1s->ns_len; - - return (DW_DLV_OK); -} - -int -dwarf_$3name(Dwarf_$2 $1, char **ret_name, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = $1 != NULL ? $1->np_nt->nt_cu->cu_dbg : NULL; - - if ($1 == NULL || ret_name == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - *ret_name = $1->np_name; - - return (DW_DLV_OK); -} - -int -dwarf_$1_die_offset(Dwarf_$2 $1, Dwarf_Off *ret_offset, - Dwarf_Error *error) -{ - Dwarf_NameTbl nt; - Dwarf_Debug dbg; - - dbg = $1 != NULL ? $1->np_nt->nt_cu->cu_dbg : NULL; - - if ($1 == NULL || ret_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - nt = $1->np_nt; - assert(nt != NULL); - - *ret_offset = nt->nt_cu_offset + $1->np_offset; - - return (DW_DLV_OK); -} - -int -dwarf_$1_cu_offset(Dwarf_$2 $1, Dwarf_Off *ret_offset, - Dwarf_Error *error) -{ - Dwarf_NameTbl nt; - Dwarf_Debug dbg; - - dbg = $1 != NULL ? $1->np_nt->nt_cu->cu_dbg : NULL; - - if ($1 == NULL || ret_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - nt = $1->np_nt; - assert(nt != NULL); - - *ret_offset = nt->nt_cu_offset; - - return (DW_DLV_OK); -} - -int -dwarf_$1_name_offsets(Dwarf_$2 $1, char **ret_name, Dwarf_Off *die_offset, - Dwarf_Off *cu_offset, Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_Debug dbg; - Dwarf_NameTbl nt; - - dbg = $1 != NULL ? $1->np_nt->nt_cu->cu_dbg : NULL; - - if ($1 == NULL || ret_name == NULL || die_offset == NULL || - cu_offset == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - nt = $1->np_nt; - assert(nt != NULL); - - cu = nt->nt_cu; - assert(cu != NULL); - - *ret_name = $1->np_name; - *die_offset = nt->nt_cu_offset + $1->np_offset; - *cu_offset = cu->cu_1st_offset; - - return (DW_DLV_OK); -} - -void -dwarf_$1s_dealloc(Dwarf_Debug dbg, Dwarf_$2 *$1s, Dwarf_Signed count) -{ - - (void) dbg; - (void) $1s; - (void) count; -} -') diff --git a/contrib/elftoolchain/libdwarf/dwarf_new_die.3 b/contrib/elftoolchain/libdwarf/dwarf_new_die.3 deleted file mode 100644 index 180df41f..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_new_die.3 +++ /dev/null @@ -1,164 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 4, 2011 -.Dt DWARF_NEW_DIE 3 -.Os -.Sh NAME -.Nm dwarf_new_die -.Nd allocate a new debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Die -.Fo dwarf_new_die -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Tag tag" -.Fa "Dwarf_P_Die parent" -.Fa "Dwarf_P_Die child" -.Fa "Dwarf_P_Die left" -.Fa "Dwarf_P_Die right" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_new_die -allocates a new DWARF debugging information entry and links it -to another debugging information entry. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar tag -should specify the tag of the newly created debugging information entry. -Valid values for this argument are those for the -.Dv DW_TAG_ Ns * -symbols defined in -.In libdwarf.h . -.Pp -Argument -.Ar parent -specifies the parent link of the debugging information entry. -.Pp -Argument -.Ar child -specifies the first child link of the debugging information entry. -.Pp -Argument -.Ar left -specifies the left sibling link of the debugging information entry. -.Pp -Argument -.Ar right -specifies the right sibling link of the debugging information entry. -.Pp -Only one of arguments -.Ar parent , -.Ar child , -.Ar left -and -.Ar right -is allowed to be non-NULL. -Application code can subsequently call the function -.Xr dwarf_die_link 3 -to change the links for the created debugging information entry. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_new_die -returns the newly created debugging information entry. -In case of an error, function -.Fn dwarf_new_die -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh EXAMPLES -To create debugging information entries and add them to the producer -instance, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_P_Die die1, die2; -Dwarf_Error de; - -/* ... assume dbg refers to a DWARF producer instance ... */ - -die1 = dwarf_new_die(dbg, DW_TAG_compilation_unit, NULL, NULL, NULL, - NULL, &de); -if (die1 == NULL) { - warnx("dwarf_new_die failed: %s", dwarf_errmsg(-1)); - return; -} - -die2 = dwarf_new_die(dbg, DW_TAG_base_type, die1, NULL, NULL, - NULL, &de); -if (die1 == NULL) { - warnx("dwarf_new_die failed: %s", dwarf_errmsg(-1)); - return; -} - -if (dwarf_add_die_to_debug(dbg, die1, &de) != DW_DLV_OK) { - warnx("dwarf_add_die_to_debug failed: %s", dwarf_errmsg(-1)); - return; -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_new_die -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_ARGUMENT -More than one of the arguments -.Ar parent , -.Ar child , -.Ar left -and -.Ar right -were non-NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_die_to_debug 3 , -.Xr dwarf_die_link 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_new_expr.3 b/contrib/elftoolchain/libdwarf/dwarf_new_expr.3 deleted file mode 100644 index ecd17a7e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_new_expr.3 +++ /dev/null @@ -1,135 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 8, 2011 -.Dt DWARF_NEW_EXPR 3 -.Os -.Sh NAME -.Nm dwarf_new_expr -.Nd create a location expression descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Expr" -.Fo dwarf_new_expr -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_new_expr -allocates a DWARF location expression descriptor used to build up a -location expression stream. -.Pp -The application can use the functions -.Xr dwarf_add_expr_gen 3 -and -.Xr dwarf_add_expr_addr_b 3 -to add location expression operators to the created descriptor. -When done, the application can call the function -.Xr dwarf_expr_into_block 3 -to retrieve the generated byte stream for the location expression, -or call the function -.Xr dwarf_add_AT_location_expr 3 -to create an attribute with the location expression stream as its -value. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_new_expr -returns the created location expression descriptor. -In case of an error, function -.Fn dwarf_new_expr -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh EXAMPLES -To create a location expression descriptor, add location expression -operators to it and to retrieve the generated byte stream, -use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Error de; -Dwarf_P_Expr pe; -Dwarf_Addr buf; -Dwarf_Unsigned len; - -/* ...Assume that `dbg' refers to a DWARF producer instance... */ - -if ((pe = dwarf_new_expr(dbg, &de)) == DW_DLV_BADADDR) { - warnx("dwarf_new_expr failed: %s", dwarf_errmsg(-1)); - return; -} - -if (dwarf_add_expr_gen(pe, DW_OP_regx, 55, 0, &de) == - DW_DLV_NOCOUNT) { - warnx("dwarf_add_expr_gen failed: %s", dwarf_errmsg(-1)); - return; -} - -if ((buf = dwarf_expr_into_block(pe, &len, &de)) == - DW_DLV_BADADDR) { - warnx("dwarf_expr_into_block failed: %s", - dwarf_errmsg(-1)); - return; -} -.Ed -.Sh ERRORS -Function -.Fn dwarf_new_expr -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -the function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_AT_location_expr 3 , -.Xr dwarf_add_expr_addr 3 , -.Xr dwarf_add_expr_addr_b 3 , -.Xr dwarf_add_expr_gen 3 , -.Xr dwarf_expr_current_offset 3 , -.Xr dwarf_expr_into_block 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_new_fde.3 b/contrib/elftoolchain/libdwarf/dwarf_new_fde.3 deleted file mode 100644 index 0349d38a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_new_fde.3 +++ /dev/null @@ -1,87 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 24, 2011 -.Dt DWARF_NEW_FDE 3 -.Os -.Sh NAME -.Nm dwarf_new_fde -.Nd allocate a DWARF frame descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "Dwarf_P_Fde" -.Fo dwarf_new_fde -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_new_fde -allocates a new DWARF frame descriptor. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_new_fde -returns the newly created frame descriptor. -In case of an error, function -.Fn dwarf_new_fde -returns -.Dv DW_DLV_BADADDR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_new_fde -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_fde_inst 3 , -.Xr dwarf_add_frame_cie 3 , -.Xr dwarf_add_frame_fde 3 , -.Xr dwarf_add_frame_fde_b 3 , -.Xr dwarf_fde_cfa_offset 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_next_cu_header.3 b/contrib/elftoolchain/libdwarf/dwarf_next_cu_header.3 deleted file mode 100644 index 319552b9..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_next_cu_header.3 +++ /dev/null @@ -1,287 +0,0 @@ -.\" Copyright (c) 2010,2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 21, 2014 -.Dt DWARF_NEXT_CU_HEADER 3 -.Os -.Sh NAME -.Nm dwarf_next_cu_header , -.Nm dwarf_next_cu_header_b , -.Nm dwarf_next_cu_header_c -.Nd step through compilation units in a DWARF debug context -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_next_cu_header -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Unsigned *cu_length" -.Fa "Dwarf_Half *cu_version" -.Fa "Dwarf_Off *cu_abbrev_offset" -.Fa "Dwarf_Half *cu_pointer_size" -.Fa "Dwarf_Unsigned *cu_next_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_next_cu_header_b -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Unsigned *cu_length" -.Fa "Dwarf_Half *cu_version" -.Fa "Dwarf_Off *cu_abbrev_offset" -.Fa "Dwarf_Half *cu_pointer_size" -.Fa "Dwarf_Half *cu_offset_size" -.Fa "Dwarf_Half *cu_extension_size" -.Fa "Dwarf_Unsigned *cu_next_offset" -.Fa "Dwarf_Error *err" -.Fc -.Ft int -.Fo dwarf_next_cu_header_c -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Bool is_info" -.Fa "Dwarf_Unsigned *cu_length" -.Fa "Dwarf_Half *cu_version" -.Fa "Dwarf_Off *cu_abbrev_offset" -.Fa "Dwarf_Half *cu_pointer_size" -.Fa "Dwarf_Half *cu_offset_size" -.Fa "Dwarf_Half *cu_extension_size" -.Fa "Dwarf_Sig8 *type_signature" -.Fa "Dwarf_Unsigned *type_offset" -.Fa "Dwarf_Unsigned *cu_next_offset" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -These functions are used to step through compilation or type units -associated with a DWARF debug context, optionally returning information -about the unit. -.Pp -Function -.Fn dwarf_next_cu_header_c -is the API recommended for new application code. -Function -.Fn dwarf_next_cu_header -and -.Fn dwarf_next_cu_header_b -can only operate on compilation units associated with the -.Dq \&.debug_info -section. -They are less general than function -.Fn dwarf_next_cu_header_c , -and are deprecated for use by new application code. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -If argument -.Ar is_info -is set to 1, -the function returns information for compilation units found in the -.Dq \&.debug_info -section. -If argument -.Ar is_info -is set to 0, -the function returns information for type units found in the -.Dq \&.debug_types -sections. -Argument -.Ar cu_length -should point to a location that will be set to the -length of the compilation or type unit. -Argument -.Ar cu_version -should point to a location that will be set to the -version number for the compilation or type unit. -Argument -.Ar cu_abbrev_offset -should point to a location that will be set to the -starting offset (in the -.Dq .debug_abbrev -section) of the set of debugging information entry abbreviations -associated with this compilation or type unit. -Argument -.Ar cu_pointer_size -should point to a location that will be set to the -size in bytes of an address for the machine architecture of the -underlying object being debugged. -Argument -.Ar cu_offset_size -should point to a location that will be set to the -size in bytes for a DWARF offset in the compilation or type unit. -Argument -.Ar cu_extension_size -is only needed for processing MIPS/IRIX objects that use -a non-standard DWARF format. -It should point to a location that will be set to 4 for normal -objects and to 0 for non-standard ones. -Argument -.Ar type_signature -and -.Ar type_offset -is only needed for processing type units. -Argument -.Ar type_signature -should point to a location that will be set to the 64-bit unique signature -of the type described in the type unit. -Argument -.Ar type_offset -should point to a location that will be set to the offset of the debugging -information entry that describes the type. -Argument -.Ar cu_next_offset -should point to a location that will be set to the -offset of the next compilation unit header in the -.Dq \&.debug_info -section, -or the offset of the next type unit header in the -.Dq \&.debug_types -section. -Argument -.Ar err -should point to a location that will hold an error descriptor in case -of an error. -.Pp -Function -.Fn dwarf_next_cu_header_b -is identical to function -.Fn dwarf_next_cu_header_c -except that it does not provide arguments -.Ar is_info , -.Ar type_signature -and -.Ar type_offset . -.Pp -Function -.Fn dwarf_next_cu_header -is identical to function -.Fn dwarf_next_cu_header_b -except that it does not provide arguments -.Ar cu_offset_size -and -.Ar cu_extension_size . -.Pp -A value of NULL may be used for any of the arguments -.Ar cu_length , -.Ar cu_version , -.Ar cu_abbrev_offset , -.Ar cu_pointer_size , -.Ar cu_offset_size , -.Ar cu_extension_size , -.Ar type_signature , -.Ar type_offset , -.Ar cu_next_offset -and -.Ar err -if the caller is not interested in the respective value. -.Ss Iterating Through Compilation Units in a Debug Context -The first call to function -.Fn dwarf_next_cu_header_c -for a given debug context with argument -.Ar is_info -set to 1 will return information about the first -compilation unit in the -.Dq \&.debug_info -section. -Subsequent calls to the function will iterate through the remaining -compilation units in the section. -On stepping past the last compilation unit in the section, -function -.Fn dwarf_next_cu_header_c -returns -.Dv DW_DLV_NO_ENTRY -and resets its internal state. -The next call to the function will restart from the first compilation -unit in the section. -.Ss Iterating Through Type Units in a Debug Context -When a DWARF debug context is allocated using -.Xr dwarf_init 3 , -an internal pointer associated with the context will point to the first -.Dq \&.debug_types -section found in the debug object. -The first call to function -.Fn dwarf_next_cu_header_c -for the debug context with argument -.Ar is_info -set to 0 will return information about the first -type unit in that -.Dq \&.debug_types -section. -Subsequent calls to the function will iterate through the remaining -type units in the section. -On stepping past the last type unit in the debug context, -function -.Fn dwarf_next_cu_header_c -returns -.Dv DW_DLV_NO_ENTRY -and resets its internal state. -The next call to the function will restart from the first type -unit in the -.Dq \&.debug_types -section. -.Pp -If the debug object contains multiple -.Dq \&.debug_types -sections, the function -.Fn dwarf_next_types_section -can be called to move the internal pointer to the next -.Dq \&.debug_types -section. -As a result, subsequent calls of the function -.Fn dwarf_next_cu_header_c -will operate on the new -.Dq \&.debug_types -section. -Function -.Fn dwarf_next_types_section -returns -.Dv DW_DLV_NO_ENTRY -when there are no more -.Dq \&.debug_types -sections left in the debug object. -.Sh RETURN VALUES -On success, these functions return -.Dv DW_DLV_OK . -In case of an error, they return -.Dv DW_DLV_ERROR -and set argument -.Ar err . -When there are no more compilation units left to traverse, they return -.Dv DW_DLV_NO_ENTRY . -.Sh ERRORS -These functions can fail with the following error: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Va dbg -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_cu_die_offset_given_cu_header_offset 3 , -.Xr dwarf_init 3 , -.Xr dwarf_next_types_section 3 , -.Xr dwarf_siblingof 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 b/contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 deleted file mode 100644 index e1bbf1e3..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_next_types_section.3 +++ /dev/null @@ -1,134 +0,0 @@ -.\" Copyright (c) 2014 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd December 20, 2014 -.Dt DWARF_NEXT_TYPES_SECTION 3 -.Os -.Sh NAME -.Nm dwarf_next_types_section -.Nd step through .debug_types sections in a debug context -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_next_types_section -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_next_types_section -steps through the -.Dq \&.debug_types -sections found in a debug context. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -Argument -.Ar err -should point to a location that will hold an error descriptor in case -of an error. -.Pp -When a DWARF debug context is allocated using -.Xr dwarf_init 3 , -an internal pointer associated with the context will point to the -first -.Dq \&.debug_types -section present in the debug object. -When the application calls function -.Fn dwarf_next_types_section , -this internal pointer will move to the next -.Dq \&.debug_types -section present. -On stepping past the last -.Dq \&.debug_types -section left in the debug context, function -.Fn dwarf_next_types_section -returns -.Dv DW_DLV_NO_ENTRY . -The next call to the function will restart from the first -.Dq \&.debug_types -section in the debug context. -.Pp -Application code should call function -.Xr dwarf_next_cu_header_c 3 -to iterate though the type units associated with the current -.Dq \&.debug_types -section. -.Sh RETURN VALUES -On success, function -.Fn dwarf_next_types_section -returns -.Dv DW_DLV_OK . -.Pp -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -When there are no more -.Dq \&.debug_types -sections left to traverse, it returns -.Dv DW_DLV_NO_ENTRY . -.Sh EXAMPLES -To iterate though every type unit in all the -.Dq \&.debug_types -sections found in a debug context: -.Bd -literal -offset indent -Dwarf_Debug dbg; -Dwarf_Sig8 sig8; -Dwarf_Unsigned typeoff; -Dwarf_Error de; - -\&... allocate dbg using dwarf_init() etc ... - -do { - while ((ret = dwarf_next_cu_header_c(dbg, 0, NULL, NULL, NULL, - NULL, NULL, NULL, &sig8, &typeoff, NULL, &de)) == DW_DLV_OK) { - /* Access DIEs etc ... */ - } -} while (dwarf_next_types_section(dbg, &de) == DW_DLV_OK); -.Ed -.Sh COMPATIBILITY -This function is an extension to the -.Xr DWARF 3 -API. -.Sh ERRORS -The -.Fn dwarf_next_types_section -function may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Va dbg -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_init 3 , -.Xr dwarf_next_cu_header_c 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_object_init.3 b/contrib/elftoolchain/libdwarf/dwarf_object_init.3 deleted file mode 100644 index f445d735..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_object_init.3 +++ /dev/null @@ -1,226 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 29, 2011 -.Dt DWARF_OBJECT_INIT 3 -.Os -.Sh NAME -.Nm dwarf_object_init -.Nd allocate a DWARF debug descriptor with application-specific file \ -access methods -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_object_init -.Fa "Dwarf_Obj_Access_Interface *iface" -.Fa "Dwarf_Handler errhand" -.Fa "Dwarf_Ptr errarg" -.Fa "Dwarf_Debug *dbg" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -The -.Fn dwarf_object_init -function allocates and returns a -.Vt Dwarf_Debug -instance that uses application-supplied access methods to read file -content. -.Pp -The argument -.Ar iface -should point to a populated -.Vt Dwarf_Obj_Access_Interface -structure. -The contents of the -.Vt Dwarf_Obj_Access_Interface -structure are described in the section -.Sx "Object Access Functions" -below. -.Pp -The argument -.Ar errhand -should point to a function to be called in case of an error. -If this argument is -.Dv NULL -then a default error handling scheme is used. -See -.Xr dwarf 3 -for a description of the error handling schemes available. -.Pp -The argument -.Ar errarg -will be passed to the error handler function pointed to by argument -.Ar errhand . -.Pp -The argument -.Ar dbg -should point to a memory location that will be set to a reference to -the returned -.Vt Dwarf_Debug -descriptor. -.Pp -The argument -.Ar err -will be used to return a -.Vt Dwarf_Error -descriptor in case of an error. -.Ss Object Access Functions -The data structures used to specify object access methods are defined -in -.In libdwarf.h . -.Bl -tag -width indent -.It Vt "Dwarf_Obj_Access_Interface" -This structure bundles together a set of file access methods along -with a pointer to application-private state. -.Bd -literal -offset indent -typedef struct { - void *object; - const Dwarf_Obj_Access_Methods *methods; -} Dwarf_Obj_Access_Interface; -.Ed -.Pp -.Bl -tag -width ".Ar methods" -compact -.It Ar object -This field points to application-specific state that will be passed as -the first parameter to the actual access object methods. -.It Ar methods -This structure contains pointers to the functions implementing the -access methods, as described below. -.El -.It Vt Dwarf_Obj_Access_Methods -This structure specifies the functions implementing low-level access. -.Bd -literal -offset indent -typedef struct { - int (*get_section_info)(void *obj, Dwarf_Half index, - Dwarf_Obj_Access_Section *ret, int *error); - Dwarf_Endianness (*get_byte_order)(void *obj); - Dwarf_Small (*get_length_size)(void *obj); - Dwarf_Small (*get_pointer_size)(void *obj); - Dwarf_Unsigned (*get_section_count)(void *obj); - int (*load_section)(void *obj, Dwarf_Half ndx, - Dwarf_Small **ret_data, int *error); -} Dwarf_Obj_Access_Methods; -.Ed -.Pp -.Bl -tag -width ".Ar get_section_count" -compact -.It Ar get_byte_order -This function should return the endianness of the DWARF object by -returning one of the constants -.Dv DW_OBJECT_MSB -or -.Dv DW_OBJECT_LSB . -.It Ar get_length_size -This function should return the number of bytes needed to represent a -DWARF offset in the object being debugged. -.It Ar get_pointer_size -This function should return the size in bytes, in the object being -debugged, of a memory address. -.It Ar get_section_count -This function should return the number of sections in the object being -debugged. -.It Ar get_section_info -This function should return information about the section at the -index -.Ar ndx -by filling in the structure of type -.Vt Dwarf_Obj_Access_Section -pointed to by argument -.Ar ret . -The -.Vt Dwarf_Obj_Access_Section -structure is described below. -.It Ar load_section -This function should load the section specified by argument -.Ar ndx -into memory and place a pointer to the section's data into -the location pointed to by argument -.Ar ret_data . -.El -.Pp -The argument -.Ar obj -passed to these functions will be set to the pointer value in the -.Ar object -field of the associated -.Vt Dwarf_Obj_Access_Interface -structure. -.Pp -The argument -.Ar error -is used to return an error code in case of an error. -.It Vt Dwarf_Obj_Access_Section -This structure describes the layout of a section in the DWARF object. -.Bd -literal -offset indent -typedef struct { - Dwarf_Addr addr; - Dwarf_Unsigned size; - const char *name; -} Dwarf_Obj_Access_Section; -.Ed -.Pp -.Bl -tag -width ".Ar name" -compact -.It Ar addr -A pointer to the start of the section's data. -.It Ar size -The size of the section in bytes. -.It Ar name -A pointer to a NUL-terminated string containing the name of the -section. -.El -.El -.Sh RETURN VALUES -On success, the -.Fn dwarf_object_init -function returns -.Dv DW_DLV_OK . -In case of an error, the function returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -The -.Fn dwarf_object_init -function may fail with the following errors: -.Bl -tag -width ".Bq Er DW_DLE_DEBUG_INFO_NULL" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar iface -or -.Ar dbg -was NULL. -.It Bq Er DW_DLE_DEBUG_INFO_NULL -The underlying object did not contain debugging information. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_init 3 , -.Xr dwarf_init_elf 3 , -.Xr dwarf_object_finish 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_arange.c b/contrib/elftoolchain/libdwarf/dwarf_pro_arange.c deleted file mode 100644 index b0f853a5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_arange.c +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_Unsigned -dwarf_add_arange(Dwarf_P_Debug dbg, Dwarf_Addr start, Dwarf_Unsigned length, - Dwarf_Signed symbol_index, Dwarf_Error *error) -{ - - return (dwarf_add_arange_b(dbg, start, length, symbol_index, 0, 0, - error)); -} - -Dwarf_Unsigned -dwarf_add_arange_b(Dwarf_P_Debug dbg, Dwarf_Addr start, Dwarf_Unsigned length, - Dwarf_Unsigned symbol_index, Dwarf_Unsigned end_symbol_index, - Dwarf_Addr offset_from_end_symbol, Dwarf_Error *error) -{ - Dwarf_ArangeSet as; - Dwarf_Arange ar; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (0); - } - as = dbg->dbgp_as; - - if (end_symbol_index > 0 && - (dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (0); - } - - if ((ar = calloc(1, sizeof(struct _Dwarf_Arange))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (0); - } - ar->ar_as = as; - ar->ar_address = start; - ar->ar_range = length; - ar->ar_symndx = symbol_index; - ar->ar_esymndx = end_symbol_index; - ar->ar_eoff = offset_from_end_symbol; - STAILQ_INSERT_TAIL(&as->as_arlist, ar, ar_next); - - return (1); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_attr.c b/contrib/elftoolchain/libdwarf/dwarf_pro_attr.c deleted file mode 100644 index 4991691e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_attr.c +++ /dev/null @@ -1,386 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_P_Attribute -dwarf_add_AT_location_expr(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_P_Expr loc_expr, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL || loc_expr == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - at->at_expr = loc_expr; - - if (_dwarf_expr_into_block(loc_expr, error) != DW_DLE_NONE) { - free(at); - return (DW_DLV_BADADDR); - } - at->u[0].u64 = loc_expr->pe_length; - at->u[1].u8p = loc_expr->pe_block; - if (loc_expr->pe_length <= UCHAR_MAX) - at->at_form = DW_FORM_block1; - else if (loc_expr->pe_length <= USHRT_MAX) - at->at_form = DW_FORM_block2; - else if (loc_expr->pe_length <= UINT_MAX) - at->at_form = DW_FORM_block4; - else - at->at_form = DW_FORM_block; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_name(Dwarf_P_Die die, char *name, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (_dwarf_add_string_attr(die, &at, DW_AT_name, name, error) != - DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_comp_dir(Dwarf_P_Die die, char *dir, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (_dwarf_add_string_attr(die, &at, DW_AT_comp_dir, dir, error) != - DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_producer(Dwarf_P_Die die, char *producer, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (_dwarf_add_string_attr(die, &at, DW_AT_producer, producer, error) != - DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_const_value_signedint(Dwarf_P_Die die, Dwarf_Signed value, - Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = DW_AT_const_value; - at->at_form = DW_FORM_sdata; - at->u[0].s64 = value; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_const_value_unsignedint(Dwarf_P_Die die, Dwarf_Unsigned value, - Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - - dbg = die != NULL ? die->die_dbg : NULL; - - if (die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = DW_AT_const_value; - at->at_form = DW_FORM_udata; - at->u[0].u64 = value; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_const_value_string(Dwarf_P_Die die, char *string, - Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (_dwarf_add_string_attr(die, &at, DW_AT_const_value, string, - error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_targ_address(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Unsigned pc_value, Dwarf_Signed sym_index, Dwarf_Error *error) -{ - - return (dwarf_add_AT_targ_address_b(dbg, die, attr, pc_value, sym_index, - error)); -} - -Dwarf_P_Attribute -dwarf_add_AT_targ_address_b(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Unsigned pc_value, Dwarf_Unsigned sym_index, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - at->at_form = DW_FORM_addr; - at->at_relsym = sym_index; - at->u[0].u64 = pc_value; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_dataref(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Unsigned pc_value, Dwarf_Unsigned sym_index, Dwarf_Error *error) -{ - Dwarf_Attribute at; - int ret; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - ret = _dwarf_add_AT_dataref(dbg, die, attr, pc_value, sym_index, - NULL, &at, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (at); - -} - -Dwarf_P_Attribute -dwarf_add_AT_ref_address(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Unsigned pc_value, Dwarf_Unsigned sym_index, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - at->at_form = DW_FORM_ref_addr; - at->at_relsym = sym_index; - at->u[0].u64 = pc_value; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_unsigned_const(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Unsigned value, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - at->u[0].u64 = value; - - if (value <= UCHAR_MAX) - at->at_form = DW_FORM_data1; - else if (value <= USHRT_MAX) - at->at_form = DW_FORM_data2; - else if (value <= UINT_MAX) - at->at_form = DW_FORM_data4; - else - at->at_form = DW_FORM_data8; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_signed_const(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Signed value, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - at->u[0].u64 = value; - - if (value >= SCHAR_MIN && value <= SCHAR_MAX) - at->at_form = DW_FORM_data1; - else if (value >= SHRT_MIN && value <= SHRT_MAX) - at->at_form = DW_FORM_data2; - else if (value >= INT_MIN && value <= INT_MAX) - at->at_form = DW_FORM_data4; - else - at->at_form = DW_FORM_data8; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_reference(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_P_Die ref_die, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - if (dbg->dbg_offset_size == 4) - at->at_form = DW_FORM_ref4; - else - at->at_form = DW_FORM_ref8; - - at->at_refdie = ref_die; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_flag(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Small flag, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_attr_alloc(die, &at, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - at->at_die = die; - at->at_attrib = attr; - at->at_form = DW_FORM_flag; - at->u[0].u64 = flag ? 1 : 0; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (at); -} - -Dwarf_P_Attribute -dwarf_add_AT_string(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - char *string, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - if (dbg == NULL || die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - /* XXX Add DW_FORM_string style string instead? */ - - if (_dwarf_add_string_attr(die, &at, attr, string, error) != - DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (at); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_die.c b/contrib/elftoolchain/libdwarf/dwarf_pro_die.c deleted file mode 100644 index f56fa14a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_die.c +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_Unsigned -dwarf_add_die_to_debug(Dwarf_P_Debug dbg, Dwarf_P_Die first_die, - Dwarf_Error *error) -{ - - if (dbg == NULL || first_die == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - dbg->dbgp_root_die = first_die; - - return (DW_DLV_OK); -} - -Dwarf_P_Die -dwarf_new_die(Dwarf_P_Debug dbg, Dwarf_Tag new_tag, - Dwarf_P_Die parent, Dwarf_P_Die child, Dwarf_P_Die left_sibling, - Dwarf_P_Die right_sibling, Dwarf_Error *error) -{ - Dwarf_P_Die die; - int count; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - count = _dwarf_die_count_links(parent, child, left_sibling, - right_sibling); - - if (count > 1) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_die_alloc(dbg, &die, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - die->die_dbg = dbg; - die->die_tag = new_tag; - - STAILQ_INSERT_TAIL(&dbg->dbgp_dielist, die, die_pro_next); - - if (count == 0) - return (die); - - _dwarf_die_link(die, parent, child, left_sibling, right_sibling); - - return (die); -} - -Dwarf_P_Die -dwarf_die_link(Dwarf_P_Die die, Dwarf_P_Die parent, - Dwarf_P_Die child, Dwarf_P_Die left_sibling, Dwarf_P_Die right_sibling, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - int count; - - - if (die == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - dbg = die->die_dbg; - count = _dwarf_die_count_links(parent, child, left_sibling, - right_sibling); - - if (count > 1) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } else if (count == 0) - return (die); - - _dwarf_die_link(die, parent, child, left_sibling, right_sibling); - - return (die); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_expr.c b/contrib/elftoolchain/libdwarf/dwarf_pro_expr.c deleted file mode 100644 index 2e5ed523..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_expr.c +++ /dev/null @@ -1,223 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static struct _Dwarf_P_Expr_Entry * -_dwarf_add_expr(Dwarf_P_Expr expr, Dwarf_Small opcode, Dwarf_Unsigned val1, - Dwarf_Unsigned val2, Dwarf_Error *error) -{ - struct _Dwarf_P_Expr_Entry *ee; - Dwarf_Debug dbg; - int len; - - dbg = expr->pe_dbg; - - if (_dwarf_loc_expr_add_atom(dbg, NULL, NULL, opcode, val1, val2, &len, - error) != DW_DLE_NONE) - return (NULL); - assert(len > 0); - - if ((ee = calloc(1, sizeof(*ee))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (NULL); - } - - STAILQ_INSERT_TAIL(&expr->pe_eelist, ee, ee_next); - - ee->ee_loc.lr_atom = opcode; - ee->ee_loc.lr_number = val1; - ee->ee_loc.lr_number2 = val2; - ee->ee_loc.lr_offset = expr->pe_length; - expr->pe_length += len; - expr->pe_invalid = 1; - - return (ee); -} - -int -_dwarf_expr_into_block(Dwarf_P_Expr expr, Dwarf_Error *error) -{ - struct _Dwarf_P_Expr_Entry *ee; - Dwarf_Debug dbg; - int len, pos, ret; - - dbg = expr->pe_dbg; - - if (expr->pe_block != NULL) { - free(expr->pe_block); - expr->pe_block = NULL; - } - - if (expr->pe_length <= 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_EXPR_LENGTH_BAD); - return (DW_DLE_EXPR_LENGTH_BAD); - } - - - if ((expr->pe_block = calloc((size_t) expr->pe_length, 1)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - pos = 0; - STAILQ_FOREACH(ee, &expr->pe_eelist, ee_next) { - assert((Dwarf_Unsigned) pos < expr->pe_length); - ret = _dwarf_loc_expr_add_atom(dbg, - &expr->pe_block[pos], &expr->pe_block[expr->pe_length], - ee->ee_loc.lr_atom, ee->ee_loc.lr_number, - ee->ee_loc.lr_number2, &len, error); - assert(ret == DW_DLE_NONE); - assert(len > 0); - pos += len; - } - - expr->pe_invalid = 0; - - return (DW_DLE_NONE); -} - -void -_dwarf_expr_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_P_Expr pe, tpe; - struct _Dwarf_P_Expr_Entry *ee, *tee; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - STAILQ_FOREACH_SAFE(pe, &dbg->dbgp_pelist, pe_next, tpe) { - STAILQ_REMOVE(&dbg->dbgp_pelist, pe, _Dwarf_P_Expr, pe_next); - STAILQ_FOREACH_SAFE(ee, &pe->pe_eelist, ee_next, tee) { - STAILQ_REMOVE(&pe->pe_eelist, ee, _Dwarf_P_Expr_Entry, - ee_next); - free(ee); - } - if (pe->pe_block) - free(pe->pe_block); - free(pe); - } -} - -Dwarf_P_Expr -dwarf_new_expr(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Expr pe; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if ((pe = calloc(1, sizeof(struct _Dwarf_P_Expr))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_BADADDR); - } - STAILQ_INIT(&pe->pe_eelist); - - STAILQ_INSERT_TAIL(&dbg->dbgp_pelist, pe, pe_next); - pe->pe_dbg = dbg; - - return (pe); -} - -Dwarf_Unsigned -dwarf_add_expr_gen(Dwarf_P_Expr expr, Dwarf_Small opcode, Dwarf_Unsigned val1, - Dwarf_Unsigned val2, Dwarf_Error *error) -{ - - if (expr == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if (_dwarf_add_expr(expr, opcode, val1, val2, error) == NULL) - return (DW_DLV_NOCOUNT); - - return (expr->pe_length); -} - -Dwarf_Unsigned -dwarf_add_expr_addr(Dwarf_P_Expr expr, Dwarf_Unsigned address, - Dwarf_Signed sym_index, Dwarf_Error *error) -{ - - return (dwarf_add_expr_addr_b(expr, address, sym_index, error)); -} - -Dwarf_Unsigned -dwarf_add_expr_addr_b(Dwarf_P_Expr expr, Dwarf_Unsigned address, - Dwarf_Unsigned sym_index, Dwarf_Error *error) -{ - struct _Dwarf_P_Expr_Entry *ee; - - if (expr == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if ((ee = _dwarf_add_expr(expr, DW_OP_addr, address, 0, error)) == NULL) - return (DW_DLV_NOCOUNT); - - ee->ee_sym = sym_index; - - return (expr->pe_length); -} - -Dwarf_Unsigned -dwarf_expr_current_offset(Dwarf_P_Expr expr, Dwarf_Error *error) -{ - - if (expr == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - return (expr->pe_length); -} - -Dwarf_Addr -dwarf_expr_into_block(Dwarf_P_Expr expr, Dwarf_Unsigned *length, - Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - dbg = expr != NULL ? expr->pe_dbg : NULL; - - if (expr == NULL || length == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return ((Dwarf_Addr) (uintptr_t) DW_DLV_BADADDR); - } - - if (expr->pe_block == NULL || expr->pe_invalid) - if (_dwarf_expr_into_block(expr, error) != DW_DLE_NONE) - return ((Dwarf_Addr) (uintptr_t) DW_DLV_BADADDR); - - *length = expr->pe_length; - - return ((Dwarf_Addr) (uintptr_t) expr->pe_block); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_finish.c b/contrib/elftoolchain/libdwarf/dwarf_pro_finish.c deleted file mode 100644 index 30ef457e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_finish.c +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_Unsigned -dwarf_producer_finish(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - - if (dbg == NULL || dbg->dbg_mode != DW_DLC_WRITE) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - _dwarf_deinit(dbg); - - free(dbg); - - return (1); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_frame.c b/contrib/elftoolchain/libdwarf/dwarf_pro_frame.c deleted file mode 100644 index a930f011..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_frame.c +++ /dev/null @@ -1,195 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_P_Fde -dwarf_new_fde(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Fde fde; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if ((fde = calloc(1, sizeof(struct _Dwarf_Fde))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_BADADDR); - } - - fde->fde_dbg = dbg; - - return (fde); -} - -Dwarf_Unsigned -dwarf_add_frame_cie(Dwarf_P_Debug dbg, char *augmenter, Dwarf_Small caf, - Dwarf_Small daf, Dwarf_Small ra, Dwarf_Ptr initinst, - Dwarf_Unsigned inst_len, Dwarf_Error *error) -{ - Dwarf_P_Cie cie; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if ((cie = calloc(1, sizeof(struct _Dwarf_Cie))) == NULL) { - DWARF_SET_ERROR(dbg, error,DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - STAILQ_INSERT_TAIL(&dbg->dbgp_cielist, cie, cie_next); - - cie->cie_index = dbg->dbgp_cielen++; - - if (augmenter != NULL) { - cie->cie_augment = (uint8_t *) strdup(augmenter); - if (cie->cie_augment == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - } - - cie->cie_caf = caf; - cie->cie_daf = (int8_t) daf; /* daf is signed. */ - cie->cie_ra = ra; - if (initinst != NULL && inst_len > 0) { - cie->cie_initinst = malloc((size_t) inst_len); - if (cie->cie_initinst == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - memcpy(cie->cie_initinst, initinst, inst_len); - cie->cie_instlen = inst_len; - } - - return (cie->cie_index); -} - -Dwarf_Unsigned -dwarf_add_frame_fde(Dwarf_P_Debug dbg, Dwarf_P_Fde fde, Dwarf_P_Die die, - Dwarf_Unsigned cie, Dwarf_Addr virt_addr, Dwarf_Unsigned code_len, - Dwarf_Unsigned symbol_index, Dwarf_Error *error) -{ - - return (dwarf_add_frame_fde_b(dbg, fde, die, cie, virt_addr, code_len, - symbol_index, 0, 0, error)); -} - -Dwarf_Unsigned -dwarf_add_frame_fde_b(Dwarf_P_Debug dbg, Dwarf_P_Fde fde, Dwarf_P_Die die, - Dwarf_Unsigned cie, Dwarf_Addr virt_addr, Dwarf_Unsigned code_len, - Dwarf_Unsigned symbol_index, Dwarf_Unsigned end_symbol_index, - Dwarf_Addr offset_from_end_sym, Dwarf_Error *error) -{ - Dwarf_P_Cie ciep; - int i; - - /* - * XXX SGI libdwarf need the DIE arg because later it will insert a - * DW_AT_MIPS_fde attribute, which points to the offset the - * correspoding FDE, into this DIE. Do we need this? - */ - (void) die; - - if (dbg == NULL || fde == NULL || fde->fde_dbg != dbg) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - ciep = STAILQ_FIRST(&dbg->dbgp_cielist); - for (i = 0; (Dwarf_Unsigned) i < cie; i++) { - ciep = STAILQ_NEXT(ciep, cie_next); - if (ciep == NULL) - break; - } - if (ciep == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if (end_symbol_index > 0 && - (dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - fde->fde_cie = ciep; - fde->fde_initloc = virt_addr; - fde->fde_adrange = code_len; - fde->fde_symndx = symbol_index; - fde->fde_esymndx = end_symbol_index; - fde->fde_eoff = offset_from_end_sym; - - STAILQ_INSERT_TAIL(&dbg->dbgp_fdelist, fde, fde_next); - - return (dbg->dbgp_fdelen++); -} - -Dwarf_P_Fde -dwarf_fde_cfa_offset(Dwarf_P_Fde fde, Dwarf_Unsigned reg, Dwarf_Signed offset, - Dwarf_Error *error) -{ - int ret; - Dwarf_Debug dbg; - - dbg = fde != NULL ? fde->fde_dbg : NULL; - - if (fde == NULL || reg > 0x3f) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - ret = _dwarf_frame_fde_add_inst(fde, DW_CFA_offset | (reg & 0x3f), - offset, 0, error); - - if (ret != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (fde); -} - -Dwarf_P_Fde -dwarf_add_fde_inst(Dwarf_P_Fde fde, Dwarf_Small op, Dwarf_Unsigned val1, - Dwarf_Unsigned val2, Dwarf_Error *error) -{ - int ret; - - if (fde == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - ret = _dwarf_frame_fde_add_inst(fde, op, val1, val2, error); - - if (ret != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - return (fde); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_funcs.m4 b/contrib/elftoolchain/libdwarf/dwarf_pro_funcs.m4 deleted file mode 100644 index 48b8074d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_funcs.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_pro_nametbl.m4') -divert(0) -MAKE_NAMETBL_PRO_API(func) diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_init.c b/contrib/elftoolchain/libdwarf/dwarf_pro_init.c deleted file mode 100644 index ff7055e5..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_init.c +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_P_Debug -dwarf_producer_init(Dwarf_Unsigned flags, Dwarf_Callback_Func func, - Dwarf_Handler errhand, Dwarf_Ptr errarg, Dwarf_Error *error) -{ - Dwarf_P_Debug dbg; - int mode; - - if (flags & DW_DLC_READ || flags & DW_DLC_RDWR) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (flags & DW_DLC_WRITE) - mode = DW_DLC_WRITE; - else { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (func == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_alloc(&dbg, DW_DLC_WRITE, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - dbg->dbg_mode = mode; - - if (_dwarf_init(dbg, flags, errhand, errarg, error) != DW_DLE_NONE) { - free(dbg); - return (DW_DLV_BADADDR); - } - - dbg->dbgp_func = func; - - return (dbg); -} - -Dwarf_P_Debug -dwarf_producer_init_b(Dwarf_Unsigned flags, Dwarf_Callback_Func_b func, - Dwarf_Handler errhand, Dwarf_Ptr errarg, Dwarf_Error *error) -{ - Dwarf_P_Debug dbg; - int mode; - - if (flags & DW_DLC_READ || flags & DW_DLC_RDWR) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (flags & DW_DLC_WRITE) - mode = DW_DLC_WRITE; - else { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (func == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_BADADDR); - } - - if (_dwarf_alloc(&dbg, DW_DLC_WRITE, error) != DW_DLE_NONE) - return (DW_DLV_BADADDR); - - dbg->dbg_mode = mode; - - if (_dwarf_init(dbg, flags, errhand, errarg, error) != DW_DLE_NONE) { - free(dbg); - return (DW_DLV_BADADDR); - } - - dbg->dbgp_func_b = func; - - return (dbg); -} - -int -dwarf_producer_set_isa(Dwarf_P_Debug dbg, enum Dwarf_ISA isa, - Dwarf_Error *error) -{ - - if (dbg == NULL || isa >= DW_ISA_MAX) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - dbg->dbgp_isa = isa; - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_lineno.c b/contrib/elftoolchain/libdwarf/dwarf_pro_lineno.c deleted file mode 100644 index 7a0f0d18..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_lineno.c +++ /dev/null @@ -1,187 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_Unsigned -dwarf_add_line_entry(Dwarf_P_Debug dbg, Dwarf_Unsigned file, - Dwarf_Addr off, Dwarf_Unsigned lineno, Dwarf_Signed column, - Dwarf_Bool is_stmt, Dwarf_Bool basic_block, Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_Line ln; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - li = dbg->dbgp_lineinfo; - - ln = STAILQ_LAST(&li->li_lnlist, _Dwarf_Line, ln_next); - - if (ln == NULL || ln->ln_addr > off) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if ((ln = calloc(1, sizeof(struct _Dwarf_Line))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - ln->ln_li = li; - ln->ln_addr = off; - ln->ln_symndx = 0; - ln->ln_fileno = file; - ln->ln_lineno = lineno; - ln->ln_column = column; - ln->ln_bblock = basic_block != 0; - ln->ln_stmt = is_stmt != 0; - ln->ln_endseq = 0; - STAILQ_INSERT_TAIL(&li->li_lnlist, ln, ln_next); - li->li_lnlen++; - - return (DW_DLV_OK); -} - -Dwarf_Unsigned -dwarf_lne_set_address(Dwarf_P_Debug dbg, Dwarf_Addr offs, Dwarf_Unsigned symndx, - Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_Line ln; - - if (dbg == NULL || symndx == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - li = dbg->dbgp_lineinfo; - - if ((ln = calloc(1, sizeof(struct _Dwarf_Line))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - ln->ln_li = li; - ln->ln_addr = offs; - ln->ln_symndx = symndx; - STAILQ_INSERT_TAIL(&li->li_lnlist, ln, ln_next); - li->li_lnlen++; - - return (DW_DLV_OK); -} - -Dwarf_Unsigned -dwarf_lne_end_sequence(Dwarf_P_Debug dbg, Dwarf_Addr addr, Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_Line ln; - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - li = dbg->dbgp_lineinfo; - - ln = STAILQ_LAST(&li->li_lnlist, _Dwarf_Line, ln_next); - if (ln && ln->ln_addr >= addr) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if ((ln = calloc(1, sizeof(struct _Dwarf_Line))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - ln->ln_li = li; - ln->ln_addr = addr; - ln->ln_endseq = 1; - STAILQ_INSERT_TAIL(&li->li_lnlist, ln, ln_next); - li->li_lnlen++; - - return (DW_DLV_OK); -} - -Dwarf_Unsigned -dwarf_add_directory_decl(Dwarf_P_Debug dbg, char *name, Dwarf_Error *error) -{ - Dwarf_LineInfo li; - - if (dbg == NULL || name == NULL || strlen(name) == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - li = dbg->dbgp_lineinfo; - - li->li_incdirs = realloc(li->li_incdirs, (li->li_inclen + 1) * - sizeof(char *)); - if (li->li_incdirs == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - if ((li->li_incdirs[li->li_inclen] = strdup(name)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_NOCOUNT); - } - - return (++li->li_inclen); -} - -Dwarf_Unsigned -dwarf_add_file_decl(Dwarf_P_Debug dbg, char *name, Dwarf_Unsigned dirndx, - Dwarf_Unsigned mtime, Dwarf_Unsigned size, Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_LineFile lf; - - if (dbg == NULL || name == NULL || strlen(name) == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - li = dbg->dbgp_lineinfo; - - if ((lf = malloc(sizeof(struct _Dwarf_LineFile))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - if ((lf->lf_fname = strdup(name)) == NULL) { - free(lf); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - lf->lf_dirndx = dirndx; - lf->lf_mtime = mtime; - lf->lf_size = size; - STAILQ_INSERT_TAIL(&li->li_lflist, lf, lf_next); - - return (++li->li_lflen); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_macinfo.c b/contrib/elftoolchain/libdwarf/dwarf_pro_macinfo.c deleted file mode 100644 index ef7157a8..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_macinfo.c +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_add_macro(Dwarf_P_Debug dbg, int type, Dwarf_Unsigned lineno, - Dwarf_Signed fileindex, char *str1, char *str2, Dwarf_Error *error) -{ - Dwarf_Macro_Details *md; - int len; - - dbg->dbgp_mdlist = realloc(dbg->dbgp_mdlist, - (size_t) dbg->dbgp_mdcnt + 1); - if (dbg->dbgp_mdlist == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - - md = &dbg->dbgp_mdlist[dbg->dbgp_mdcnt]; - dbg->dbgp_mdcnt++; - - md->dmd_offset = 0; - md->dmd_type = type; - md->dmd_lineno = lineno; - md->dmd_fileindex = fileindex; - md->dmd_macro = NULL; - - if (str1 == NULL) - return (DW_DLV_OK); - else if (str2 == NULL) { - if ((md->dmd_macro = strdup(str1)) == NULL) { - dbg->dbgp_mdcnt--; - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - return (DW_DLV_OK); - } else { - len = strlen(str1) + strlen(str2) + 2; - if ((md->dmd_macro = malloc(len)) == NULL) { - dbg->dbgp_mdcnt--; - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - snprintf(md->dmd_macro, len, "%s %s", str1, str2); - return (DW_DLV_OK); - } -} - -int -dwarf_def_macro(Dwarf_P_Debug dbg, Dwarf_Unsigned lineno, char *name, - char *value, Dwarf_Error *error) -{ - - if (dbg == NULL || name == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - return (_dwarf_add_macro(dbg, DW_MACINFO_define, lineno, -1, name, - value, error)); -} - -int -dwarf_undef_macro(Dwarf_P_Debug dbg, Dwarf_Unsigned lineno, char *name, - Dwarf_Error *error) -{ - - if (dbg == NULL || name == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - return (_dwarf_add_macro(dbg, DW_MACINFO_undef, lineno, -1, name, - NULL, error)); -} - -int -dwarf_start_macro_file(Dwarf_P_Debug dbg, Dwarf_Unsigned lineno, - Dwarf_Unsigned fileindex, Dwarf_Error *error) -{ - - if (dbg == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - return (_dwarf_add_macro(dbg, DW_MACINFO_start_file, lineno, fileindex, - NULL, NULL, error)); -} - -int -dwarf_end_macro_file(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - - if (dbg == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - return (_dwarf_add_macro(dbg, DW_MACINFO_end_file, 0, -1, - NULL, NULL, error)); -} - -int -dwarf_vendor_ext(Dwarf_P_Debug dbg, Dwarf_Unsigned constant, char *string, - Dwarf_Error *error) -{ - - if (dbg == NULL || string == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - return (_dwarf_add_macro(dbg, DW_MACINFO_vendor_ext, constant, -1, - string, NULL, error)); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_nametbl.m4 b/contrib/elftoolchain/libdwarf/dwarf_pro_nametbl.m4 deleted file mode 100644 index b1ba4557..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_nametbl.m4 +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -define(`MAKE_NAMETBL_PRO_API',` -Dwarf_Unsigned -dwarf_add_$1name(Dwarf_P_Debug dbg, Dwarf_P_Die die, char *$1_name, - Dwarf_Error *error) -{ - Dwarf_NameTbl nt; - Dwarf_NamePair np; - - if (dbg == NULL || die == NULL || $1_name == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (0); - } - - if (dbg->dbgp_$1s == NULL) { - dbg->dbgp_$1s = calloc(1, sizeof(struct _Dwarf_NameTbl)); - if (dbg->dbgp_$1s == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (0); - } - STAILQ_INIT(&dbg->dbgp_$1s->nt_nplist); - } - - nt = dbg->dbgp_$1s; - - if ((np = calloc(1, sizeof(struct _Dwarf_NamePair))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (0); - } - - np->np_nt = nt; - np->np_die = die; - if ((np->np_name = strdup($1_name)) == NULL) { - free(np); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (0); - } - - STAILQ_INSERT_TAIL(&nt->nt_nplist, np, np_next); - - return (1); -} -') diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_pubnames.m4 b/contrib/elftoolchain/libdwarf/dwarf_pro_pubnames.m4 deleted file mode 100644 index f1927f39..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_pubnames.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_pro_nametbl.m4') -divert(0) -MAKE_NAMETBL_PRO_API(pub) diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_reloc.c b/contrib/elftoolchain/libdwarf/dwarf_pro_reloc.c deleted file mode 100644 index 18965039..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_reloc.c +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_get_relocation_info_count(Dwarf_P_Debug dbg, Dwarf_Unsigned *reloc_cnt, - int *drd_buffer_version, Dwarf_Error *error) -{ - - if (dbg == NULL || reloc_cnt == NULL || drd_buffer_version == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *reloc_cnt = dbg->dbgp_drscnt; - *drd_buffer_version = DWARF_DRD_BUFFER_VERSION; - - return (DW_DLV_OK); -} - -int -dwarf_get_relocation_info(Dwarf_P_Debug dbg, Dwarf_Signed *elf_section_index, - Dwarf_Signed *elf_section_link, Dwarf_Unsigned *reloc_entry_count, - Dwarf_Relocation_Data *reloc_buffer, Dwarf_Error *error) -{ - Dwarf_Rel_Section drs; - Dwarf_Rel_Entry dre; - int i; - - if (dbg == NULL || elf_section_index == NULL || - elf_section_link == NULL || reloc_entry_count == NULL || - reloc_buffer == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if ((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - if (dbg->dbgp_drscnt == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - if (dbg->dbgp_drspos == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - drs = dbg->dbgp_drspos; - assert(drs->drs_ds != NULL && drs->drs_ref != NULL); - assert(drs->drs_drecnt > 0); - - *elf_section_index = drs->drs_ds->ds_ndx; - *elf_section_link = drs->drs_ref->ds_ndx; - *reloc_entry_count = drs->drs_drecnt; - - if (drs->drs_drd == NULL) { - drs->drs_drd = calloc(*reloc_entry_count, - sizeof(struct Dwarf_Relocation_Data_s)); - if (drs->drs_drd == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLV_ERROR); - } - for (i = 0, dre = STAILQ_FIRST(&drs->drs_dre); - (Dwarf_Unsigned) i < *reloc_entry_count && dre != NULL; - i++, dre = STAILQ_NEXT(dre, dre_next)) { - drs->drs_drd[i].drd_type = dre->dre_type; - drs->drs_drd[i].drd_length = dre->dre_length; - drs->drs_drd[i].drd_offset = dre->dre_offset; - drs->drs_drd[i].drd_symbol_index = dre->dre_symndx; - } - assert((Dwarf_Unsigned) i == *reloc_entry_count && dre == NULL); - } - - *reloc_buffer = drs->drs_drd; - - dbg->dbgp_drspos = STAILQ_NEXT(dbg->dbgp_drspos, drs_next); - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_sections.c b/contrib/elftoolchain/libdwarf/dwarf_pro_sections.c deleted file mode 100644 index cbb49f08..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_sections.c +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_Signed -dwarf_transform_to_disk_form(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - - if (dbg == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_NOCOUNT); - } - - if (_dwarf_generate_sections(dbg, error) != DW_DLE_NONE) - return (DW_DLV_NOCOUNT); - - return (dbg->dbgp_seccnt); -} - -Dwarf_Ptr -dwarf_get_section_bytes(Dwarf_P_Debug dbg, Dwarf_Signed dwarf_section, - Dwarf_Signed *elf_section_index, Dwarf_Unsigned *length, Dwarf_Error *error) -{ - Dwarf_Ptr data; - - (void) dwarf_section; /* ignored. */ - - if (dbg == NULL || elf_section_index == NULL || length == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (NULL); - } - - if (dbg->dbgp_secpos == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (NULL); - } - - *elf_section_index = dbg->dbgp_secpos->ds_ndx; - *length = dbg->dbgp_secpos->ds_size; - data = dbg->dbgp_secpos->ds_data; - - dbg->dbgp_secpos = STAILQ_NEXT(dbg->dbgp_secpos, ds_next); - - return (data); -} - -void -dwarf_reset_section_bytes(Dwarf_P_Debug dbg) -{ - - assert(dbg != NULL); - - dbg->dbgp_secpos = STAILQ_FIRST(&dbg->dbgp_seclist); - dbg->dbgp_drspos = STAILQ_FIRST(&dbg->dbgp_drslist); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_types.m4 b/contrib/elftoolchain/libdwarf/dwarf_pro_types.m4 deleted file mode 100644 index aa550646..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_types.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_pro_nametbl.m4') -divert(0) -MAKE_NAMETBL_PRO_API(type) diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_vars.m4 b/contrib/elftoolchain/libdwarf/dwarf_pro_vars.m4 deleted file mode 100644 index 7e2c0901..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_vars.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_pro_nametbl.m4') -divert(0) -MAKE_NAMETBL_PRO_API(var) diff --git a/contrib/elftoolchain/libdwarf/dwarf_pro_weaks.m4 b/contrib/elftoolchain/libdwarf/dwarf_pro_weaks.m4 deleted file mode 100644 index b8c01c51..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pro_weaks.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_pro_nametbl.m4') -divert(0) -MAKE_NAMETBL_PRO_API(weak) diff --git a/contrib/elftoolchain/libdwarf/dwarf_producer_init.3 b/contrib/elftoolchain/libdwarf/dwarf_producer_init.3 deleted file mode 100644 index f69d47e8..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_producer_init.3 +++ /dev/null @@ -1,296 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 20, 2011 -.Dt DWARF_PRODUCER_INIT 3 -.Os -.Sh NAME -.Nm dwarf_producer_init , -.Nm dwarf_producer_init_b -.Nd allocate a DWARF producer descriptor -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_P_Debug -.Fo dwarf_producer_init -.Fa "Dwarf_Unsigned flags" -.Fa "Dwarf_Callback_Func func" -.Fa "Dwarf_Handler errhand" -.Fa "Dwarf_Ptr errarg" -.Fa "Dwarf_Error *err" -.Fc -.Ft Dwarf_P_Debug -.Fo dwarf_producer_init_b -.Fa "Dwarf_Unsigned flags" -.Fa "Dwarf_Callback_Func_b func" -.Fa "Dwarf_Handler errhand" -.Fa "Dwarf_Ptr errarg" -.Fa "Dwarf_Error *error" -.Fc -.Sh DESCRIPTION -These functions allocate and return a -.Vt Dwarf_P_Debug -descriptor representing a DWARF producer instance. -.Pp -The argument -.Ar errhand -should contain the address of a function to be called in case of an -error. -If this argument is -.Dv NULL , -the default error handling scheme is used, see -.Xr dwarf 3 . -.Pp -The argument -.Ar errarg -will be passed to the error handler function when it is invoked. -.Pp -The argument -.Ar err -references a memory location that would hold a -.Vt Dwarf_Error -descriptor in case of an error. -.Pp -The argument -.Ar flags -specifies additional characteristics of the DWARF producer instance. -The following flags are recognized: -.Bl -tag -width "Dv DW_DLC_ISA_MIPS" -.It Dv DW_DLC_ISA_IA64 -.Pq Deprecated -The target instruction set architecture is IA64. -This flag is deprecated. -Application code should use the -.Xr dwarf_producer_set_isa 3 -function to specify target instruction set architecture. -.It Dv DW_DLC_ISA_MIPS -.Pq Deprecated -The target instruction set architecture is MIPS. -This flag is deprecated. -Application code should use the -.Xr dwarf_producer_set_isa 3 -function to specify target instruction set architecture. -.It Dv DW_DLC_SIZE_32 -.Pq Default -The target address size is 32-bit. -.It Dv DW_DLC_SIZE_64 -The target address size is 64-bit. -.It Dv DW_DLC_STREAM_RELOCATIONS -.Pq Default -Generate stream relocations. -.It Dv DW_DLC_SYMBOLIC_RELOCATIONS -Generate symbolic relocations. -.It Dv DW_DLC_TARGET_BIGENDIAN -The target is big endian. -.It Dv DW_DLC_TARGET_LITTLEENDIAN -The target is little endian. -.It Dv DW_DLC_WRITE -.Pq Required -Permit writing of DWARF information. -.El -.Pp -The following flags are mutually exclusive. -.Bl -bullet -compact -.It -Flags -.Dv DW_DLC_ISA_IA64 -and -.Dv DW_DLC_ISA_MIPS . -.It -Flags -.Dv DW_DLC_SIZE_32 -and -.Dv DW_DLC_SIZE_64 . -.It -Flags -.Dv DW_DLC_STREAM_RELOCATIONS -and -.Dv DW_DLC_SYMBOLIC_RELOCATIONS . -.It -Flags -.Dv DW_DLC_TARGET_BIGENDIAN -and -.Dv DW_DLC_TARGET_LITTLEENDIAN . -.El -If neither of the flags -.Dv DW_DLC_TARGET_BIGENDIAN -and -.Dv DW_DLC_TARGET_LITTLEENDIAN -is set, the target's endianness is assumed to be the same as the host's -endianness. -.Pp -Argument -.Ar func -should point to an application-provided callback function of type -.Vt Dwarf_Callback_Func_b . -The type -.Vt Dwarf_Callback_Func_b -is defined in the header file -.In libdwarf.h -as: -.Bd -literal -offset indent -typedef int (*Dwarf_Callback_Func_b)(char *name, int size, - Dwarf_Unsigned type, Dwarf_Unsigned flags, Dwarf_Unsigned link, - Dwarf_Unsigned info, Dwarf_Unsigned *index, int *error); -.Ed -.Pp -This function is called by the -.Lb libdwarf -once for each section in the object file that the library needs to -create. -The arguments to this callback function specify the values in the ELF -section header for the section being created: -.Pp -.Bl -tag -width indent -compact -offset indent -.It Ar name -The name of the section being created. -.It Ar size -The -.Va sh_size -value in the section header. -.It Ar type -The -.Va sh_type -value in the section header. -.It Ar flags -The -.Va sh_flags -value in the section header. -.It Ar link -The -.Va sh_link -value in the section header. -.It Ar info -The -.Va sh_info -value in the section header. -.El -.Pp -On success, the callback function should return the section index -value of the created section, and set the location pointed to by -argument -.Ar index -to the symbol table index of the symbol that associated with the newly -created section. -This symbol table index will be used in relocation entries -referring to the created section. -.Pp -In case of failure, the callback function should return -1 and set the -location pointed to by argument -.Ar error -to an application-defined error code. -This application returned error code is currently ignored by the -library. -.Pp -Function -.Fn dwarf_producer_init -is deprecated. -Function -.Fn dwarf_producer_init -is identical to function -.Fn dwarf_producer_init_b -except that the callback function it expects can not properly handle -arbitrary section symbol index values. -.Ss Memory Management -The -.Vt Dwarf_P_Debug -instance returned by these functions should be freed using the -function -.Fn dwarf_producer_finish . -.Sh RETURN VALUES -On success, these functions return the created DWARF producer -descriptor. -In case of an error, they return -.Dv DW_DLV_BADADDR -and set the argument -.Ar err . -.Sh EXAMPLES -To initialize a -.Vt Dwarf_P_Debug -instance for a MIPS32 big endian object, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Unsigned flags; -Dwarf_Error de; - -/* ... assume cb_func points to the callback function ... */ - -flags = DW_DLC_WRITE | DW_DLC_SIZE_32 | DW_DLC_ISA_MIPS | - DW_DLC_STREAM_RELOCATIONS | DW_DLC_TARGET_BIGENDIAN; -if ((dbg = dwarf_producer_init(flags, cb_func, NULL, NULL, &de)) == - DW_DLV_BADADDR) - warnx("dwarf_producer_init failed: %s", dwarf_errmsg(-1)); -.Ed -.Sh ERRORS -These functions can fail with: -.Bl -tag -width ".Bq Er DW_DLE_NO_ENTRY" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar func -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The flag -.Dv DW_DLC_WRITE -was not set in argument -.Ar flags . -.It Bq Er DW_DLE_ARGUMENT -The flags -.Dv DW_DLC_SIZE_32 -and -.Dv DW_DLC_SIZE_64 -were both set in argument -.Ar flags . -.It Bq Er DW_DLE_ARGUMENT -The flags -.Dv DW_DLC_ISA_IA64 -and -.Dv DW_DLC_ISA_MIPS -were both set in argument -.Ar flags . -.It Bq Er DW_DLE_ARGUMENT -The flags -.Dv DW_DLC_TARGET_BIGENDIAN -and -.Dv DW_DLC_TARGET_LITTLEENDIAN -were both set in argument -.Ar flags . -.It Bq Er DW_DLE_ARGUMENT -The flags -.Dv DW_DLC_STREAM_RELOCATIONS -and -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -were both set in argument -.Ar flags . -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_errmsg 3 , -.Xr dwarf_producer_finish 3 , -.Xr dwarf_producer_set_isa 3 , -.Xr dwarf_transform_to_disk_form 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_producer_set_isa.3 b/contrib/elftoolchain/libdwarf/dwarf_producer_set_isa.3 deleted file mode 100644 index 71ccba6a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_producer_set_isa.3 +++ /dev/null @@ -1,98 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 29, 2011 -.Dt DWARF_PRODUCER_SET_ISA 3 -.Os -.Sh NAME -.Nm dwarf_producer_set_isa -.Nd specify the instruction set architecture for a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_producer_set_isa -.Fa "Dwarf_P_Debug dbg" -.Fa "enum Dwarf_ISA isa" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -The function -.Fn dwarf_producer_set_isa -sets the instruction set architecture for a DWARF producer instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using one of -the functions -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar isa -specifies the desired instruction set architecture. -Legal values for this argument are those defined by the -.Vt "enum Dwarf_ISA" -enumeration defined in the header file -.In libdwarf.h . -.Pp -If the argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, the function -.Fn dwarf_producer_set_isa -returns -.Dv DW_DLV_OK . -In case of an error, this function returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh COMPATIBILITY -The -.Fn dwarf_producer_set_isa -function is a local extension. -.Sh ERRORS -The -.Fn dwarf_producer_set_isa -function can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -The argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_ARGUMENT -The argument -.Ar isa -was invalid. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_pubnames.m4 b/contrib/elftoolchain/libdwarf/dwarf_pubnames.m4 deleted file mode 100644 index 52c5625a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pubnames.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_nametbl.m4') -divert(0) -MAKE_NAMETBL_API(global,Global,glob,pubnames) diff --git a/contrib/elftoolchain/libdwarf/dwarf_pubtypes.m4 b/contrib/elftoolchain/libdwarf/dwarf_pubtypes.m4 deleted file mode 100644 index 24d3e7e1..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_pubtypes.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_nametbl.m4') -divert(0) -MAKE_NAMETBL_API(pubtype,Type,pubtype,pubtypes) diff --git a/contrib/elftoolchain/libdwarf/dwarf_ranges.c b/contrib/elftoolchain/libdwarf/dwarf_ranges.c deleted file mode 100644 index 9aac87ee..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_ranges.c +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_get_ranges(Dwarf_Debug dbg, Dwarf_CU cu, Dwarf_Off off, - Dwarf_Ranges **ranges, Dwarf_Signed *ret_cnt, Dwarf_Unsigned *ret_byte_cnt, - Dwarf_Error *error) -{ - Dwarf_Rangelist rl; - int ret; - - assert(cu != NULL); - if (_dwarf_ranges_find(dbg, off, &rl) == DW_DLE_NO_ENTRY) { - ret = _dwarf_ranges_add(dbg, cu, off, &rl, error); - if (ret != DW_DLE_NONE) - return (DW_DLV_ERROR); - } - - *ranges = rl->rl_rgarray; - *ret_cnt = rl->rl_rglen; - - if (ret_byte_cnt != NULL) - *ret_byte_cnt = cu->cu_pointer_size * rl->rl_rglen * 2; - - return (DW_DLV_OK); -} - -int -dwarf_get_ranges(Dwarf_Debug dbg, Dwarf_Off offset, Dwarf_Ranges **ranges, - Dwarf_Signed *ret_cnt, Dwarf_Unsigned *ret_byte_cnt, Dwarf_Error *error) -{ - - if (dbg == NULL || ranges == NULL || ret_cnt == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (!dbg->dbg_info_loaded) { - if (_dwarf_info_load(dbg, 1, 1, error) != DW_DLE_NONE) - return (DW_DLV_ERROR); - } - - return (_dwarf_get_ranges(dbg, STAILQ_FIRST(&dbg->dbg_cu), offset, - ranges, ret_cnt, ret_byte_cnt, error)); -} - -int -dwarf_get_ranges_a(Dwarf_Debug dbg, Dwarf_Off offset, Dwarf_Die die, - Dwarf_Ranges **ranges, Dwarf_Signed *ret_cnt, Dwarf_Unsigned *ret_byte_cnt, - Dwarf_Error *error) -{ - - if (dbg == NULL || die == NULL || ranges == NULL || ret_cnt == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - return (_dwarf_get_ranges(dbg, die->die_cu, offset, ranges, ret_cnt, - ret_byte_cnt, error)); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_reloc.c b/contrib/elftoolchain/libdwarf/dwarf_reloc.c deleted file mode 100644 index 2c7fa5ed..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_reloc.c +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_set_reloc_application(int apply) -{ - int oldapply; - - oldapply = _libdwarf.applyreloc; - _libdwarf.applyreloc = apply; - - return (oldapply); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_reset_section_bytes.3 b/contrib/elftoolchain/libdwarf/dwarf_reset_section_bytes.3 deleted file mode 100644 index da3fa7d1..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_reset_section_bytes.3 +++ /dev/null @@ -1,69 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 3, 2011 -.Dt DWARF_RESET_SECTION_BYTES 3 -.Os -.Sh NAME -.Nm dwarf_reset_section_bytes -.Nd reset the internal state of a producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft void -.Fo dwarf_reset_section_bytes -.Fa "Dwarf_P_Debug dbg" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_reset_section_bytes -resets the internal state of a DWARF producer instance, so that the -next call to the function -.Xr dwarf_get_section_bytes 3 -will return the byte stream for the first generated section, and -the next call to the function -.Xr dwarf_get_relocation_info 3 -will return the first relocation array for the DWARF producer -instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Sh RETURN VALUES -Function -.Fn dwarf_reset_section_bytes -has no return value. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_relocation_info 3 , -.Xr dwarf_get_section_bytes 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_transform_to_disk_form 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_sections.c b/contrib/elftoolchain/libdwarf/dwarf_sections.c deleted file mode 100644 index 1a328ea8..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_sections.c +++ /dev/null @@ -1,111 +0,0 @@ -/*- - * Copyright (c) 2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -#define SET(N, V) \ - do { \ - if ((N) != NULL) \ - *(N) = (V); \ - } while (0) - -int -dwarf_get_section_max_offsets_b(Dwarf_Debug dbg, Dwarf_Unsigned *debug_info, - Dwarf_Unsigned *debug_abbrev, Dwarf_Unsigned *debug_line, - Dwarf_Unsigned *debug_loc, Dwarf_Unsigned *debug_aranges, - Dwarf_Unsigned *debug_macinfo, Dwarf_Unsigned *debug_pubnames, - Dwarf_Unsigned *debug_str, Dwarf_Unsigned *debug_frame, - Dwarf_Unsigned *debug_ranges, Dwarf_Unsigned *debug_pubtypes, - Dwarf_Unsigned *debug_types) -{ - const char *n; - Dwarf_Unsigned sz; - int i; - - if (dbg == NULL) - return (DW_DLV_ERROR); - - SET(debug_info, 0); - SET(debug_abbrev, 0); - SET(debug_line, 0); - SET(debug_loc, 0); - SET(debug_aranges, 0); - SET(debug_macinfo, 0); - SET(debug_pubnames, 0); - SET(debug_str, 0); - SET(debug_frame, 0); - SET(debug_ranges, 0); - SET(debug_pubtypes, 0); - SET(debug_types, 0); - - for (i = 0; (Dwarf_Unsigned) i < dbg->dbg_seccnt; i++) { - n = dbg->dbg_section[i].ds_name; - sz = dbg->dbg_section[i].ds_size; - if (!strcmp(n, ".debug_info")) - SET(debug_info, sz); - else if (!strcmp(n, ".debug_abbrev")) - SET(debug_abbrev, sz); - else if (!strcmp(n, ".debug_line")) - SET(debug_line, sz); - else if (!strcmp(n, ".debug_loc")) - SET(debug_loc, sz); - else if (!strcmp(n, ".debug_aranges")) - SET(debug_aranges, sz); - else if (!strcmp(n, ".debug_macinfo")) - SET(debug_macinfo, sz); - else if (!strcmp(n, ".debug_pubnames")) - SET(debug_pubnames, sz); - else if (!strcmp(n, ".debug_str")) - SET(debug_str, sz); - else if (!strcmp(n, ".debug_frame")) - SET(debug_frame, sz); - else if (!strcmp(n, ".debug_ranges")) - SET(debug_ranges, sz); - else if (!strcmp(n, ".debug_pubtypes")) - SET(debug_pubtypes, sz); - else if (!strcmp(n, ".debug_types")) - SET(debug_types, sz); - } - - return (DW_DLV_OK); -} - -int -dwarf_get_section_max_offsets(Dwarf_Debug dbg, Dwarf_Unsigned *debug_info, - Dwarf_Unsigned *debug_abbrev, Dwarf_Unsigned *debug_line, - Dwarf_Unsigned *debug_loc, Dwarf_Unsigned *debug_aranges, - Dwarf_Unsigned *debug_macinfo, Dwarf_Unsigned *debug_pubnames, - Dwarf_Unsigned *debug_str, Dwarf_Unsigned *debug_frame, - Dwarf_Unsigned *debug_ranges, Dwarf_Unsigned *debug_pubtypes) -{ - - return (dwarf_get_section_max_offsets_b(dbg, debug_info, debug_abbrev, - debug_line, debug_loc, debug_aranges, debug_macinfo, - debug_pubnames, debug_str, debug_frame, debug_ranges, - debug_pubtypes, NULL)); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_set_frame_cfa_value.3 b/contrib/elftoolchain/libdwarf/dwarf_set_frame_cfa_value.3 deleted file mode 100644 index f015a421..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_set_frame_cfa_value.3 +++ /dev/null @@ -1,140 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 18, 2011 -.Dt DWARF_SET_FRAME_CFA_VALUE 3 -.Os -.Sh NAME -.Nm dwarf_set_frame_cfa_value , -.Nm dwarf_set_frame_rule_initial_value , -.Nm dwarf_set_frame_rule_table_size , -.Nm dwarf_set_frame_same_value , -.Nm dwarf_set_frame_undefined_value -.Nd set internal register rule table parameters -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_Half -.Fo dwarf_set_frame_cfa_value -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Half value" -.Fc -.Ft Dwarf_Half -.Fo dwarf_set_frame_rule_initial_value -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Half value" -.Fc -.Ft Dwarf_Half -.Fo dwarf_set_frame_rule_table_size -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Half value" -.Fc -.Ft Dwarf_Half -.Fo dwarf_set_frame_same_value -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Half value" -.Fc -.Ft Dwarf_Half -.Fo dwarf_set_frame_undefined_value -.Fa "Dwarf_Debug dbg" -.Fa "Dwarf_Half value" -.Fc -.Sh DESCRIPTION -These functions set the parameters of the internal register -rule table. -.Pp -Argument -.Ar dbg -should reference a DWARF debug context allocated using -.Xr dwarf_init 3 . -.Pp -Argument -.Ar value -should hold the parameter value to set. -.Pp -Function -.Fn dwarf_set_frame_cfa_value -sets the column number for the CFA register rule in the internal -register rule table. -The constant -.Dv DW_FRAME_CFA_COL -is the default CFA register column number for DWARF2-only -interfaces, and the constant -.Dv DW_FRAME_CFA_COL3 -is the default CFA column number for DWARF3-compatible interfaces. -.Pp -Function -.Fn dwarf_set_frame_rule_initial_value -sets the initial value of the register rules in the internal register -rule table. -The default initial value is the constant -.Dv DW_FRAME_REG_INITIAL_VALUE , -defined in the header file -.In libdwarf.h . -.Pp -Function -.Fn dwarf_set_frame_rule_table_size -sets the maxmium number of columns of the internal register rule table. -Argument -.Ar value -should be at least as large as the number of real registers in the ABI. -.Pp -Function -.Fn dwarf_set_frame_same_value -sets the register number representing the -.Dq "same value" -register rule. -The default register number for the -.Dq "same value" -rule is the constant -.Dv DW_FRAME_SAME_VAL , -defined in the header file -.In libdwarf.h . -.Pp -Function -.Fn dwarf_set_frame_undefined_value -sets the register number representing the -.Dq undefined -register rule. -The default register number for the -.Dq undefined -rule is the constant -.Dv DW_FRAME_UNDEFINED_VAL , -defined in the header file -.In libdwarf.h . -.Sh RETURN VALUES -These functions return the previous value of the parameter being -set. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_fde_at_pc 3 , -.Xr dwarf_get_fde_info_for_all_regs 3 , -.Xr dwarf_get_fde_info_for_all_regs3 3 , -.Xr dwarf_get_fde_info_for_cfa_reg3 3 , -.Xr dwarf_get_fde_info_for_reg 3 , -.Xr dwarf_get_fde_info_for_reg3 3 , -.Xr dwarf_get_fde_n 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3 b/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3 deleted file mode 100644 index 32b99128..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_set_reloc_application.3 +++ /dev/null @@ -1,82 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd February 11, 2015 -.Dt DWARF_SET_RELOC_APPLICATION 3 -.Os -.Sh NAME -.Nm dwarf_set_reloc_application -.Nd set a library-wide relocation flag -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_set_reloc_application -.Fa "int apply" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_set_reloc_application -allows applications to specify how relocation information is to be -handled by the DWARF(3) library. -.Pp -If the argument -.Ar apply -holds a non-zero value, the library will process all the relevant -.Dq ".rel" -and -.Dq ".rela" -relocation sections and will apply the relocation records found to -their corresponding DWARF sections. -.Pp -If the argument -.Ar apply -is zero, the library will not attempt to apply any relocations. -.Pp -The default behaviour of the library is to process relocation records. -.Sh NOTES -Function -.Fn dwarf_set_reloc_application -should be called before initialising a dwarf debugging context, i.e, -it should be called by the application before calling either of the -functions -.Xr dwarf_init 3 -or -.Xr dwarf_elf_init 3 . -.Sh RETURN VALUES -Function -.Fn dwarf_set_reloc_application -returns the previous value of the library-wide relocation application -flag. -.Sh ERRORS -Function -.Fn dwarf_set_reloc_application -does not return an error. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_elf_init 3 , -.Xr dwarf_init 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_seterrarg.3 b/contrib/elftoolchain/libdwarf/dwarf_seterrarg.3 deleted file mode 100644 index 0b6da611..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_seterrarg.3 +++ /dev/null @@ -1,101 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd May 01, 2010 -.Dt DWARF_SETERRARG 3 -.Os -.Sh NAME -.Nm dwarf_seterrarg , -.Nm dwarf_seterrhand -.Nd configure error handling -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_Ptr -.Fn dwarf_seterrarg "Dwarf_Debug dbg" "Dwarf_Ptr arg" -.Ft Dwarf_Handler -.Fn dwarf_seterrhand "Dwarf_Debug dbg" "Dwarf_Handler handler" -.Sh DESCRIPTION -These functions may be used by applications to configure error handling -callbacks. -The error handling scheme used by the library is described in -.Xr dwarf 3 . -.Pp -Function -.Fn dwarf_seterrarg -may be used to set the callback argument passed to a configured -error handler at the time it is invoked. -Argument -.Ar arg -is the callback argument being set. -Argument -.Ar dbg -can be a debug context allocated by a prior call to -.Xr dwarf_init 3 , -or can be NULL to indicate that the library-wide callback argument -is to be set. -.Pp -Function -.Fn dwarf_seterrhand -may be used to associate an error handler denoted by argument -.Ar handler -with the DWARF debug context descriptor denoted by argument -.Ar dbg . -Argument -.Ar dbg -should be a debug context allocated by a prior call to -.Xr dwarf_init 3 , -or may be NULL to indicate that the library-wide error handler -is to be set. -.Sh RETURN VALUES -Function -.Fn dwarf_seterrhand -returns the previous error handler associated with argument -.Ar dbg . -If argument -.Ar dbg -is NULL, function -.Fn dwarf_seterrhand -returns the previous library-wide error handler. -.Pp -Function -.Fn dwarf_seterrarg -returns the previous callback argument associated with argument -.Ar dbg . -If argument -.Ar dbg -is NULL, function -.Fn dwarf_seterrarg -returns the previous library-wide callback argument. -.Sh COMPATIBILITY -The behavior of these functions when argument -.Ar dbg -is NULL is a local extension. -.Sh ERRORS -These functions do not set an error code. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_init 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_seterror.c b/contrib/elftoolchain/libdwarf/dwarf_seterror.c deleted file mode 100644 index 6b1d201a..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_seterror.c +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * Copyright (c) 2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -#define _SET_FIELD(R, F, V) \ - do { \ - (R) = (F); \ - (F) = (V); \ - } while (0) - -#define SET_FIELD(D, R, F) \ - do { \ - if (D) \ - _SET_FIELD(R, (D)->dbg_##F, F); \ - else \ - _SET_FIELD(R, _libdwarf.F, F); \ - } while (0) - -Dwarf_Handler -dwarf_seterrhand(Dwarf_Debug dbg, Dwarf_Handler errhand) -{ - Dwarf_Handler oldhandler; - - SET_FIELD(dbg, oldhandler, errhand); - - return (oldhandler); -} - -Dwarf_Ptr -dwarf_seterrarg(Dwarf_Debug dbg, Dwarf_Ptr errarg) -{ - Dwarf_Ptr oldarg; - - SET_FIELD(dbg, oldarg, errarg); - - return (oldarg); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_srcfiles.3 b/contrib/elftoolchain/libdwarf/dwarf_srcfiles.3 deleted file mode 100644 index f6f07e0d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_srcfiles.3 +++ /dev/null @@ -1,105 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 28, 2010 -.Dt DWARF_SRCFILES 3 -.Os -.Sh NAME -.Nm dwarf_srcfiles -.Nd retrieve source file information -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_srcfiles -.Fa "Dwarf_Die die" -.Fa "char ***filenames" -.Fa "Dwarf_Signed *filenamecount" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_srcfiles -returns the source file names associated with a compilation unit. -Source file names are returned as an array of NUL-terminated strings. -.Pp -Argument -.Ar die -should reference a DWARF debugging information entry descriptor with -source file information, see -.Xr dwarf 3 . -Argument -.Ar filenames -should point to a location that will hold a pointer to the returned array -of file names. -Argument -.Ar filenamecount -should point to a location that will hold the number of file names returned. -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Ss Memory Management -The memory areas used for the file names and for array of pointers -being returned are managed by the DWARF(3) library. -The application should not attempt to directly free these memory areas. -Portable code should indicate that the memory areas are to be freed -by using -.Xr dwarf_dealloc 3 . -.Sh RETURN VALUES -Function -.Fn dwarf_srcfiles -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_srcfiles -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar die , -.Ar filenames -or -.Ar filenamecount -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The compilation unit referenced by argument -.Ar die -does not have associated source file information. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -this function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_dealloc 3 , -.Xr dwarf_srclines 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_srclines.3 b/contrib/elftoolchain/libdwarf/dwarf_srclines.3 deleted file mode 100644 index 7363fa9b..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_srclines.3 +++ /dev/null @@ -1,163 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_SRCLINES 3 -.Os -.Sh NAME -.Nm dwarf_srclines -.Nd retrieve line number information for a debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_srclines -.Fa "Dwarf_Die die" -.Fa "Dwarf_Line **lines" -.Fa "Dwarf_Signed *nlines" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_srclines -returns line number information associated with a compilation unit. -Line number information is returned as an array of -.Vt Dwarf_Line -descriptors. -.Pp -Argument -.Ar die -should reference a DWARF debugging information entry descriptor -with line number information, see -.Xr dwarf 3 . -Argument -.Ar lines -should point to a location that will hold a pointer to the returned array -of -.Vt Dwarf_Line -descriptors. -Argument -.Ar nlines -should point to a location that will hold the number of descriptors -returned. -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Pp -The returned -.Vt Dwarf_Line -descriptors may be passed to the other line number functions in the -API set to retrieve specific information about each source line. -.Ss Memory Management -The memory area used for the array of -.Vt Dwarf_Line -descriptors returned in argument -.Ar lines -is owned by the -.Lb libdwarf . -The application should not attempt to free this pointer. -Portable code should instead use -.Fn dwarf_srclines_dealloc -to indicate that the memory may be freed. -.Sh RETURN VALUES -Function -.Fn dwarf_srclines -returns -.Dv DW_DLV_OK -when it succeeds. -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To obtain an array of -.Vt Dwarf_Line -descriptors and to retrieve the source file, line number, and virtual address -associated with each descriptor: -.Bd -literal -offset indent -int n; -Dwarf_Die die; -Dwarf_Error de; -char *filename; -Dwarf_Line *lines; -Dwarf_Signed nlines; -Dwarf_Addr lineaddr; -Dwarf_Unsigned lineno; - -/* variable "die" should reference a DIE for a compilation unit */ - -if (dwarf_srclines(die, &lines, &nlines, &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_srclines: %s", dwarf_errmsg(de)); - -for (n = 0; n < nlines; n++) { - /* Retrieve the file name for this descriptor. */ - if (dwarf_linesrc(lines[n], &filename, &de)) - errx(EXIT_FAILURE, "dwarf_linesrc: %s", - dwarf_errmsg(de)); - - /* Retrieve the line number in the source file. */ - if (dwarf_lineno(lines[n], &lineno, &de)) - errx(EXIT_FAILURE, "dwarf_lineno: %s", - dwarf_errmsg(de)); - /* Retrieve the virtual address for this line. */ - if (dwarf_lineaddr(lines[n], &lineaddr, &de)) - errx(EXIT_FAILURE, "dwarf_lineaddr: %s", - dwarf_errmsg(de)); - } -.Ed -.Sh ERRORS -Function -.Fn dwarf_srclines -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -One of the arguments -.Ar die , -.Ar lines -or -.Ar nlines -was NULL. -.It Bq Er DW_DLE_NO_ENTRY -The compilation unit referenced by argument -.Ar die -does not have associated line number information. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of -this function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_line_srcfileno 3 , -.Xr dwarf_lineaddr 3 , -.Xr dwarf_linebeginstatement 3 , -.Xr dwarf_lineblock 3 , -.Xr dwarf_lineendsequence 3 , -.Xr dwarf_lineno 3 , -.Xr dwarf_lineoff 3 , -.Xr dwarf_linesrc 3 , -.Xr dwarf_srcfiles 3 , -.Xr dwarf_srclines_dealloc 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_start_macro_file.3 b/contrib/elftoolchain/libdwarf/dwarf_start_macro_file.3 deleted file mode 100644 index a391c704..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_start_macro_file.3 +++ /dev/null @@ -1,105 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 25, 2011 -.Dt DWARF_START_MACRO_FILE 3 -.Os -.Sh NAME -.Nm dwarf_start_macro_file -.Nd mark the start of a source file inclusion -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "int" -.Fo dwarf_start_macro_file -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Unsigned lineno" -.Fa "Dwarf_Unsigned fileindex" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_start_macro_file -marks the start of a new source file inclusion. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar lineno -specifies the line number of the source line where the source -file inclusion occurs. -A value of zero is used to indicate the file for the compilation unit -source itself. -.Pp -Argument -.Ar fileindex -specifies the index of the source file that is being included. -Valid source file indices are those returned by -.Xr dwarf_add_file_decl 3 . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_start_macro_file -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_start_macro_file -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_start_macro_file -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_add_file_decl 3 , -.Xr dwarf_def_macro 3 , -.Xr dwarf_end_macro_file 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_undef_macro 3 , -.Xr dwarf_vendor_ext 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_str.c b/contrib/elftoolchain/libdwarf/dwarf_str.c deleted file mode 100644 index b6205d95..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_str.c +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -dwarf_get_str(Dwarf_Debug dbg, Dwarf_Off offset, char **string, - Dwarf_Signed *ret_strlen, Dwarf_Error *error) -{ - Dwarf_Section *ds; - - if (dbg == NULL || string == NULL || ret_strlen == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - ds = _dwarf_find_section(dbg, ".debug_str"); - if (ds == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - if (offset > ds->ds_size) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLV_ERROR); - } - - if (offset == ds->ds_size) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLV_NO_ENTRY); - } - - *string = (char *) ds->ds_data + offset; - *ret_strlen = strlen(*string); - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/dwarf_tag.3 b/contrib/elftoolchain/libdwarf/dwarf_tag.3 deleted file mode 100644 index 9731926e..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_tag.3 +++ /dev/null @@ -1,77 +0,0 @@ -.\" Copyright (c) 2010 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd April 14, 2010 -.Dt DWARF_TAG 3 -.Os -.Sh NAME -.Nm dwarf_tag -.Nd retrieve the tag associated with a DWARF debugging information entry -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fn dwarf_tag "Dwarf_Die die" "Dwarf_Half *tag" "Dwarf_Error *err" -.Sh DESCRIPTION -Function -.Fn dwarf_tag -retrieves the tag associated with the debugging information entry -referenced by argument -.Ar die , -and stores it into the location pointed to by argument -.Ar tag . -.Pp -If argument -.Ar err -if non-NULL, it will be used to return an error descriptor in case of -an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_tag -returns -.Dv DW_DLV_OK . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_tag -can fail with the following error: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Va die -or -.Va tag -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_die_abbrev_code 3 , -.Xr dwarf_diename 3 , -.Xr dwarf_dieoffset 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_transform_to_disk_form.3 b/contrib/elftoolchain/libdwarf/dwarf_transform_to_disk_form.3 deleted file mode 100644 index 046aa8b4..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_transform_to_disk_form.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 25, 2011 -.Dt DWARF_TRANSFORM_TO_DISK_FORM 3 -.Os -.Sh NAME -.Nm dwarf_transform_to_disk_form -.Nd transform DWARF information into byte streams -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft Dwarf_Signed -.Fo dwarf_transform_to_disk_form -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_transform_to_disk_form -transforms the DWARF information gathered by the producer into -byte streams for the application to write out as ELF sections. -If the flag -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -is set on the producer, the function will also generate the associated -relocation arrays. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case -of an error. -.Pp -After a call to this function, the application can call the function -.Xr dwarf_get_section_bytes 3 -to retrieve the byte streams for each ELF section. -If the flag -.Dv DW_DLC_SYMBOLIC_RELOCATIONS -was set on the descriptor, the application can also call the function -.Xr dwarf_get_relocation_info 3 -to retrieve the generated relocation arrays. -.Sh RETURN VALUES -On success, function -.Fn dwarf_transform_to_disk_form -returns the total number of ELF sections generated. -In case of an error, function -.Fn dwarf_transform_to_disk_form -returns -.Dv DW_DLV_NOCOUNT -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_transform_to_disk_form -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Argument -.Ar dbg -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during execution. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_get_relocation_info 3 , -.Xr dwarf_get_section_bytes 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_types.m4 b/contrib/elftoolchain/libdwarf/dwarf_types.m4 deleted file mode 100644 index fb001b8c..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_types.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_nametbl.m4') -divert(0) -MAKE_NAMETBL_API(type,Type,type,typenames) diff --git a/contrib/elftoolchain/libdwarf/dwarf_undef_macro.3 b/contrib/elftoolchain/libdwarf/dwarf_undef_macro.3 deleted file mode 100644 index 4f99aec7..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_undef_macro.3 +++ /dev/null @@ -1,119 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt DWARF_UNDEF_MACRO 3 -.Os -.Sh NAME -.Nm dwarf_undef_macro -.Nd record the removal of a macro definition -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "int" -.Fo dwarf_undef_macro -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Unsigned lineno" -.Fa "char *name" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_undef_macro -records the removal of a macro definition in a DWARF producer -instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar lineno -specifies the line number of the source line where the macro -definition was removed. -A value of zero indicates that the macro definition was removed before -any source files were read. -.Pp -Argument -.Ar name -should point to a NUL-terminated string containing the name -of the macro. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_undef_macro -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_undef_macro -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh EXAMPLES -To record the fact that the macro named -.Dv _STDIO_H_ -was removed at line 220 of the current macro file, use: -.Bd -literal -offset indent -Dwarf_P_Debug dbg; -Dwarf_Error de; - -/* ... Assume 'dbg' refers to a DWARF producer instance... */ -if (dwarf_undef_macro(dbg, 220, "_STDIO_H_", &de) != DW_DLV_OK) - errx(EXIT_FAILURE, "dwarf_def_macro failed: %s", - dwarf_errmsg(-1)); -.Ed -.Sh ERRORS -Function -.Fn dwarf_undef_macro -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either arguments -.Ar dbg -or -.Ar name -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_def_macro 3 , -.Xr dwarf_end_macro_file 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_start_macro_file 3 , -.Xr dwarf_vendor_ext 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_vars.m4 b/contrib/elftoolchain/libdwarf/dwarf_vars.m4 deleted file mode 100644 index b1e19672..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_vars.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_nametbl.m4') -divert(0) -MAKE_NAMETBL_API(var,Var,var,static_vars) diff --git a/contrib/elftoolchain/libdwarf/dwarf_vendor_ext.3 b/contrib/elftoolchain/libdwarf/dwarf_vendor_ext.3 deleted file mode 100644 index 95a60e45..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_vendor_ext.3 +++ /dev/null @@ -1,110 +0,0 @@ -.\" Copyright (c) 2011 Kai Wang -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 25, 2011 -.Dt DWARF_VENDOR_EXT 3 -.Os -.Sh NAME -.Nm dwarf_vendor_ext -.Nd add vendor-specific macro information to a DWARF producer instance -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft "int" -.Fo dwarf_vendor_ext -.Fa "Dwarf_P_Debug dbg" -.Fa "Dwarf_Unsigned constant" -.Fa "char *string" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_vendor_ext -adds a vendor-specific macro information entry to a DWARF producer -instance. -.Pp -Argument -.Ar dbg -should reference a DWARF producer instance allocated using -.Xr dwarf_producer_init 3 -or -.Xr dwarf_producer_init_b 3 . -.Pp -Argument -.Ar constant -specifies a constant value for the macro information entry. -.Pp -Argument -.Ar string -point to a NUL-terminated string containing the string value -for the macro information entry. -.Pp -If argument -.Ar err -is not NULL, it will be used to store error information in case of an -error. -.Pp -The meaning of the arguments -.Ar constant -and -.Ar string -are not defined by the DWARF specification, but are instead governed -by application and vendor conventions. -.Sh RETURN VALUES -On success, function -.Fn dwarf_vendor_ext -returns -.Dv DW_DLV_OK . -In case of an error, function -.Fn dwarf_vendor_ext -returns -.Dv DW_DLV_ERROR -and sets the argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_vendor_ext -can fail with: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either arguments -.Ar dbg -or -.Ar string -was NULL. -.It Bq Er DW_DLE_MEMORY -An out of memory condition was encountered during the execution of the -function. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_def_macro 3 , -.Xr dwarf_end_macro_file 3 , -.Xr dwarf_producer_init 3 , -.Xr dwarf_producer_init_b 3 , -.Xr dwarf_start_macro_file 3 , -.Xr dwarf_undef_macro 3 diff --git a/contrib/elftoolchain/libdwarf/dwarf_weaks.m4 b/contrib/elftoolchain/libdwarf/dwarf_weaks.m4 deleted file mode 100644 index e9e45e7d..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_weaks.m4 +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) -include(SRCDIR`/dwarf_nametbl.m4') -divert(0) -MAKE_NAMETBL_API(weak,Weak,weak,weaknames) diff --git a/contrib/elftoolchain/libdwarf/dwarf_whatattr.3 b/contrib/elftoolchain/libdwarf/dwarf_whatattr.3 deleted file mode 100644 index 1acb3c82..00000000 --- a/contrib/elftoolchain/libdwarf/dwarf_whatattr.3 +++ /dev/null @@ -1,79 +0,0 @@ -.\" Copyright (c) 2010 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd May 22, 2010 -.Dt DWARF_WHATATTR 3 -.Os -.Sh NAME -.Nm dwarf_whatattr -.Nd retrieve the attribute code for a DWARF attribute -.Sh LIBRARY -.Lb libdwarf -.Sh SYNOPSIS -.In libdwarf.h -.Ft int -.Fo dwarf_whatattr -.Fa "Dwarf_Attribute attr" -.Fa "Dwarf_Half *retcode" -.Fa "Dwarf_Error *err" -.Fc -.Sh DESCRIPTION -Function -.Fn dwarf_whatattr -retrieves the attribute code for the DWARF attribute referenced -by argument -.Ar attr , -and writes it to the location pointed to by argument -.Ar retcode . -If argument -.Ar err -is not NULL, it will be used to return an error descriptor in case -of an error. -.Sh RETURN VALUES -On success, function -.Fn dwarf_whatattr -returns -.Dv DW_DLV_OK . -In case of an error, it returns -.Dv DW_DLV_ERROR -and sets argument -.Ar err . -.Sh ERRORS -Function -.Fn dwarf_whatattr -can fail with the following error: -.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" -.It Bq Er DW_DLE_ARGUMENT -Either of argument -.Va attr -or -.Va retcode -was NULL. -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr dwarf_attr 3 , -.Xr dwarf_hasattr 3 diff --git a/contrib/elftoolchain/libdwarf/libdwarf.c b/contrib/elftoolchain/libdwarf/libdwarf.c deleted file mode 100644 index 17301f3a..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf.c +++ /dev/null @@ -1,35 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -struct _libdwarf_globals _libdwarf = { - .errhand = NULL, - .errarg = NULL, - .applyreloc = 1 -}; diff --git a/contrib/elftoolchain/libdwarf/libdwarf.h b/contrib/elftoolchain/libdwarf/libdwarf.h deleted file mode 100644 index c46ec72c..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf.h +++ /dev/null @@ -1,841 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _LIBDWARF_H_ -#define _LIBDWARF_H_ - -#include - -typedef int Dwarf_Bool; -typedef uint64_t Dwarf_Off; -typedef uint64_t Dwarf_Unsigned; -typedef uint16_t Dwarf_Half; -typedef uint8_t Dwarf_Small; -typedef int64_t Dwarf_Signed; -typedef uint64_t Dwarf_Addr; -typedef void *Dwarf_Ptr; - -typedef struct _Dwarf_Abbrev *Dwarf_Abbrev; -typedef struct _Dwarf_Arange *Dwarf_Arange; -typedef struct _Dwarf_ArangeSet *Dwarf_ArangeSet; -typedef struct _Dwarf_Attribute *Dwarf_Attribute; -typedef struct _Dwarf_Attribute *Dwarf_P_Attribute; -typedef struct _Dwarf_AttrDef *Dwarf_AttrDef; -typedef struct _Dwarf_Cie *Dwarf_Cie; -typedef struct _Dwarf_Cie *Dwarf_P_Cie; -typedef struct _Dwarf_Debug *Dwarf_Debug; -typedef struct _Dwarf_Debug *Dwarf_P_Debug; -typedef struct _Dwarf_Die *Dwarf_Die; -typedef struct _Dwarf_Die *Dwarf_P_Die; -typedef struct _Dwarf_Fde *Dwarf_Fde; -typedef struct _Dwarf_Fde *Dwarf_P_Fde; -typedef struct _Dwarf_FrameSec *Dwarf_FrameSec; -typedef struct _Dwarf_Line *Dwarf_Line; -typedef struct _Dwarf_LineFile *Dwarf_LineFile; -typedef struct _Dwarf_LineInfo *Dwarf_LineInfo; -typedef struct _Dwarf_MacroSet *Dwarf_MacroSet; -typedef struct _Dwarf_NamePair *Dwarf_NamePair; -typedef struct _Dwarf_NamePair *Dwarf_Func; -typedef struct _Dwarf_NamePair *Dwarf_Global; -typedef struct _Dwarf_NamePair *Dwarf_Type; -typedef struct _Dwarf_NamePair *Dwarf_Var; -typedef struct _Dwarf_NamePair *Dwarf_Weak; -typedef struct _Dwarf_NameTbl *Dwarf_NameTbl; -typedef struct _Dwarf_NameSec *Dwarf_NameSec; -typedef struct _Dwarf_P_Expr *Dwarf_P_Expr; -typedef struct _Dwarf_Rangelist *Dwarf_Rangelist; - -typedef enum { - DW_OBJECT_MSB, - DW_OBJECT_LSB -} Dwarf_Endianness; - -typedef struct { - Dwarf_Addr addr; - Dwarf_Unsigned size; - const char *name; -} Dwarf_Obj_Access_Section; - -typedef struct { - int (*get_section_info)(void *_obj, Dwarf_Half _index, - Dwarf_Obj_Access_Section *_ret_section, int *_error); - Dwarf_Endianness (*get_byte_order)(void *_obj); - Dwarf_Small (*get_length_size)(void *_obj); - Dwarf_Small (*get_pointer_size)(void *_obj); - Dwarf_Unsigned (*get_section_count)(void *_obj); - int (*load_section)(void *_obj, Dwarf_Half _index, - Dwarf_Small **_ret_data, int *_error); -} Dwarf_Obj_Access_Methods; - -typedef struct { - void *object; - const Dwarf_Obj_Access_Methods *methods; -} Dwarf_Obj_Access_Interface; - -typedef int (*Dwarf_Callback_Func)(char *_name, int _size, - Dwarf_Unsigned _type, Dwarf_Unsigned _flags, Dwarf_Unsigned _link, - Dwarf_Unsigned _info, int *_index, int *_error); - -typedef int (*Dwarf_Callback_Func_b)(char *_name, int _size, - Dwarf_Unsigned _type, Dwarf_Unsigned _flags, Dwarf_Unsigned _link, - Dwarf_Unsigned _info, Dwarf_Unsigned *_index, int *_error); - -typedef Dwarf_Unsigned Dwarf_Tag; - -typedef struct { - Dwarf_Small lr_atom; - Dwarf_Unsigned lr_number; - Dwarf_Unsigned lr_number2; - Dwarf_Unsigned lr_offset; -} Dwarf_Loc; - -typedef struct { - Dwarf_Addr ld_lopc; - Dwarf_Addr ld_hipc; - Dwarf_Half ld_cents; - Dwarf_Loc *ld_s; -} Dwarf_Locdesc; - -typedef struct { - char signature[8]; -} Dwarf_Sig8; - -typedef struct { - Dwarf_Unsigned bl_len; - Dwarf_Ptr bl_data; -} Dwarf_Block; - -enum Dwarf_Ranges_Entry_Type { - DW_RANGES_ENTRY, - DW_RANGES_ADDRESS_SELECTION, - DW_RANGES_END -}; - -typedef struct { - Dwarf_Unsigned dwr_addr1; - Dwarf_Unsigned dwr_addr2; - enum Dwarf_Ranges_Entry_Type dwr_type; -} Dwarf_Ranges; - -enum Dwarf_Form_Class { - DW_FORM_CLASS_UNKNOWN, - DW_FORM_CLASS_ADDRESS, - DW_FORM_CLASS_BLOCK, - DW_FORM_CLASS_CONSTANT, - DW_FORM_CLASS_EXPRLOC, - DW_FORM_CLASS_FLAG, - DW_FORM_CLASS_LINEPTR, - DW_FORM_CLASS_LOCLISTPTR, - DW_FORM_CLASS_MACPTR, - DW_FORM_CLASS_RANGELISTPTR, - DW_FORM_CLASS_REFERENCE, - DW_FORM_CLASS_STRING -}; - -#ifndef DW_FRAME_HIGHEST_NORMAL_REGISTER -#define DW_FRAME_HIGHEST_NORMAL_REGISTER 63 -#endif - -#define DW_FRAME_RA_COL (DW_FRAME_HIGHEST_NORMAL_REGISTER + 1) -#define DW_FRAME_STATIC_LINK (DW_FRAME_HIGHEST_NORMAL_REGISTER + 2) - -#ifndef DW_FRAME_LAST_REG_NUM -#define DW_FRAME_LAST_REG_NUM (DW_FRAME_HIGHEST_NORMAL_REGISTER + 3) -#endif - -#ifndef DW_FRAME_REG_INITIAL_VALUE -#define DW_FRAME_REG_INITIAL_VALUE DW_FRAME_SAME_VAL -#endif - -#define DW_FRAME_UNDEFINED_VAL 1034 -#define DW_FRAME_SAME_VAL 1035 -#define DW_FRAME_CFA_COL3 1436 - -#define DW_EXPR_OFFSET 0 -#define DW_EXPR_VAL_OFFSET 1 -#define DW_EXPR_EXPRESSION 2 -#define DW_EXPR_VAL_EXPRESSION 3 - -/* - * Frame operation only for DWARF 2. - */ - -#define DW_FRAME_CFA_COL 0 - -typedef struct { - Dwarf_Small fp_base_op; - Dwarf_Small fp_extended_op; - Dwarf_Half fp_register; - Dwarf_Signed fp_offset; - Dwarf_Off fp_instr_offset; -} Dwarf_Frame_Op; - -#ifndef DW_REG_TABLE_SIZE -#define DW_REG_TABLE_SIZE 66 -#endif - -typedef struct { - struct { - Dwarf_Small dw_offset_relevant; - Dwarf_Half dw_regnum; - Dwarf_Addr dw_offset; - } rules[DW_REG_TABLE_SIZE]; -} Dwarf_Regtable; - -/* - * Frame operation for DWARF 3 and DWARF 2. - */ - -typedef struct { - Dwarf_Small fp_base_op; - Dwarf_Small fp_extended_op; - Dwarf_Half fp_register; - Dwarf_Unsigned fp_offset_or_block_len; - Dwarf_Small *fp_expr_block; - Dwarf_Off fp_instr_offset; -} Dwarf_Frame_Op3; - -typedef struct { - Dwarf_Small dw_offset_relevant; - Dwarf_Small dw_value_type; - Dwarf_Half dw_regnum; - Dwarf_Unsigned dw_offset_or_block_len; - Dwarf_Ptr dw_block_ptr; -} Dwarf_Regtable_Entry3; - -typedef struct { - Dwarf_Regtable_Entry3 rt3_cfa_rule; - Dwarf_Half rt3_reg_table_size; - Dwarf_Regtable_Entry3 *rt3_rules; -} Dwarf_Regtable3; - -typedef struct { - Dwarf_Off dmd_offset; - Dwarf_Small dmd_type; - Dwarf_Signed dmd_lineno; - Dwarf_Signed dmd_fileindex; - char *dmd_macro; -} Dwarf_Macro_Details; - -/* - * Symbols denoting allocation types, for use with dwarf_dealloc(3). - */ - -enum Dwarf_Allocation_Type { - DW_DLA_ABBREV, - DW_DLA_ADDR, - DW_DLA_ARANGE, - DW_DLA_ATTR, - DW_DLA_BLOCK, - DW_DLA_BOUNDS, - DW_DLA_CIE, - DW_DLA_DEBUG, - DW_DLA_DIE, - DW_DLA_ELLIST, - DW_DLA_ERROR, - DW_DLA_FDE, - DW_DLA_FRAME_BLOCK, - DW_DLA_FRAME_OP, - DW_DLA_FUNC, - DW_DLA_GLOBAL, - DW_DLA_LINE, - DW_DLA_LINEBUF, - DW_DLA_LIST, - DW_DLA_LOC, - DW_DLA_LOCDESC, - DW_DLA_LOC_BLOCK, - DW_DLA_RANGES, - DW_DLA_STRING, - DW_DLA_SUBSCR, - DW_DLA_TYPE, - DW_DLA_TYPENAME, - DW_DLA_VAR, - DW_DLA_WEAK -}; - -/* - * Relocation Type. - */ -enum Dwarf_Rel_Type { - dwarf_drt_none = 0, - dwarf_drt_data_reloc, - dwarf_drt_segment_rel, - dwarf_drt_first_of_length_pair, - dwarf_drt_second_of_length_pair -}; - -/* - * Relocation Entry. - */ -typedef struct Dwarf_Relocation_Data_s { - unsigned char drd_type; - unsigned char drd_length; - Dwarf_Unsigned drd_offset; - Dwarf_Unsigned drd_symbol_index; -} *Dwarf_Relocation_Data; - -#define DWARF_DRD_BUFFER_VERSION 2 - -/* - * Error numbers which are specific to this implementation. - */ -enum { - DW_DLE_NONE, /* No error. */ - DW_DLE_ERROR, /* An error! */ - DW_DLE_ARGUMENT, /* Invalid argument. */ - DW_DLE_DEBUG_INFO_NULL, /* Debug info NULL. */ - DW_DLE_NO_ENTRY, /* No entry. */ - DW_DLE_MEMORY, /* Insufficient memory. */ - DW_DLE_ELF, /* ELF error. */ - DW_DLE_CU_LENGTH_ERROR, /* Invalid compilation unit data. */ - DW_DLE_VERSION_STAMP_ERROR, /* Invalid version. */ - DW_DLE_DEBUG_ABBREV_NULL, /* Abbrev not found. */ - DW_DLE_DIE_NO_CU_CONTEXT, /* No current compilation unit. */ - DW_DLE_LOC_EXPR_BAD, /* Invalid location expression. */ - DW_DLE_EXPR_LENGTH_BAD, /* Invalid DWARF expression. */ - DW_DLE_DEBUG_LOC_SECTION_SHORT, /* Loclist section too short. */ - DW_DLE_ATTR_FORM_BAD, /* Invalid attribute form. */ - DW_DLE_DEBUG_LINE_LENGTH_BAD, /* Line info section too short. */ - DW_DLE_LINE_FILE_NUM_BAD, /* Invalid file number. */ - DW_DLE_DIR_INDEX_BAD, /* Invalid dir index. */ - DW_DLE_DEBUG_FRAME_LENGTH_BAD, /* Frame section too short. */ - DW_DLE_NO_CIE_FOR_FDE, /* CIE not found for certain FDE. */ - DW_DLE_FRAME_AUGMENTATION_UNKNOWN, /* Unknown CIE augmentation. */ - DW_DLE_FRAME_INSTR_EXEC_ERROR, /* Frame instruction exec error. */ - DW_DLE_FRAME_VERSION_BAD, /* Invalid frame section version. */ - DW_DLE_FRAME_TABLE_COL_BAD, /* Invalid table column. */ - DW_DLE_DF_REG_NUM_TOO_HIGH, /* Insufficient regtable space. */ - DW_DLE_PC_NOT_IN_FDE_RANGE, /* PC requested not in the FDE range. */ - DW_DLE_ARANGE_OFFSET_BAD, /* Invalid arange offset. */ - DW_DLE_DEBUG_MACRO_INCONSISTENT,/* Invalid macinfo data. */ - DW_DLE_ELF_SECT_ERR, /* Application callback failed. */ - DW_DLE_NUM /* Max error number. */ -}; - -/* - * Mapping of SGI libdwarf error codes for comptibility. - */ -#define DW_DLE_DBG_ALLOC DW_DLE_MEMORY -#define DW_DLE_ALLOC_FAIL DW_DLE_MEMORY -#define DW_DLE_SECT_ALLOC DW_DLE_MEMORY -#define DW_DLE_FILE_ENTRY_ALLOC DW_DLE_MEMORY -#define DW_DLE_LINE_ALLOC DW_DLE_MEMORY -#define DW_DLE_FPGM_ALLOC DW_DLE_MEMORY -#define DW_DLE_INCDIR_ALLOC DW_DLE_MEMORY -#define DW_DLE_STRING_ALLOC DW_DLE_MEMORY -#define DW_DLE_CHUNK_ALLOC DW_DLE_MEMORY -#define DW_DLE_CIE_ALLOC DW_DLE_MEMORY -#define DW_DLE_FDE_ALLOC DW_DLE_MEMORY -#define DW_DLE_CIE_OFFS_ALLOC DW_DLE_MEMORY -#define DW_DLE_DIE_ALLOC DW_DLE_MEMORY -#define DW_DLE_ATTR_ALLOC DW_DLE_MEMORY -#define DW_DLE_ABBREV_ALLOC DW_DLE_MEMORY -#define DW_DLE_ADDR_ALLOC DW_DLE_MEMORY -#define DW_DLE_REL_ALLOC DW_DLE_MEMORY -#define DW_DLE_MACINFO_MALLOC_FAIL DW_DLE_MEMORY -#define DW_DLE_DEBUG_MACRO_MALLOC_SPACE DW_DLE_MEMORY -#define DW_DLE_DF_ALLOC_FAIL DW_DLE_MEMORY -#define DW_DLE_RELOC_SECTION_MALLOC_FAIL DW_DLE_MEMORY -#define DW_DLE_DBG_NULL DW_DLE_ARGUMENT -#define DW_DLE_DIE_NULL DW_DLE_ARGUMENT -#define DW_DLE_FDE_NULL DW_DLE_ARGUMENT -#define DW_DLE_CIE_NULL DW_DLE_ARGUMENT -#define DW_DLE_ATTR_NULL DW_DLE_ARGUMENT -#define DW_DLE_GLOBAL_NULL DW_DLE_ARGUMENT -#define DW_DLE_ARANGES_NULL DW_DLE_ARGUMENT -#define DW_DLE_ARANGE_NULL DW_DLE_ARGUMENT -#define DW_DLE_EXPR_NULL DW_DLE_ARGUMENT -#define DW_DLE_FUNC_NULL DW_DLE_ARGUMENT -#define DW_DLE_TYPE_NULL DW_DLE_ARGUMENT -#define DW_DLE_VAR_NULL DW_DLE_ARGUMENT -#define DW_DLE_WEAK_NULL DW_DLE_ARGUMENT -#define DW_DLE_ELF_BEGIN_ERROR DW_DLE_ELF -#define DW_DLE_ELF_GETEHDR_ERROR DW_DLE_ELF -#define DW_DLE_ELF_GETSHDR_ERROR DW_DLE_ELF -#define DW_DLE_ELF_STRPTR_ERROR DW_DLE_ELF -#define DW_DLE_ELF_SECT_ERROR DW_DLE_ELF -#define DW_DLE_ELF_GETIDENT_ERROR DW_DLE_ELF - -typedef struct _Dwarf_Error { - int err_error; /* DWARF error. */ - int err_elferror; /* ELF error. */ - const char *err_func; /* Function name where error occurred. */ - int err_line; /* Line number where error occurred. */ - char err_msg[1024]; /* Formatted error message. */ -} Dwarf_Error; - -/* - * Dwarf error handler. - */ -typedef void (*Dwarf_Handler)(Dwarf_Error, Dwarf_Ptr); - -#define dwarf_errno(error) error.err_error -#define dwarf_errmsg(error) dwarf_errmsg_(&error) - -/* - * Return values which have to be compatible with other - * implementations of libdwarf. - */ -#define DW_DLV_NO_ENTRY -1 -#define DW_DLV_OK 0 -#define DW_DLV_ERROR 1 -#define DW_DLV_BADADDR NULL -#define DW_DLV_NOCOUNT ((Dwarf_Signed) -1) - -/* - * Access modes. - */ -#define DW_DLC_READ 0x0001 -#define DW_DLC_WRITE 0x0002 -#define DW_DLC_RDWR 0x0004 - -/* - * Flags used by libdwarf producer. - */ -#define DW_DLC_SIZE_64 0x40000000 -#define DW_DLC_SIZE_32 0x20000000 -#define DW_DLC_OFFSET_SIZE_64 0x10000000 -#define DW_DLC_ISA_MIPS 0x80000000 -#define DW_DLC_ISA_IA64 0x01000000 -#define DW_DLC_STREAM_RELOCATIONS 0x02000000 -#define DW_DLC_SYMBOLIC_RELOCATIONS 0x04000000 -#define DW_DLC_TARGET_BIGENDIAN 0x08000000 -#define DW_DLC_TARGET_LITTLEENDIAN 0x00100000 - -/* - * Instruction set architectures supported by this implementation. - */ -enum Dwarf_ISA { - DW_ISA_ARM, - DW_ISA_IA64, - DW_ISA_MIPS, - DW_ISA_PPC, - DW_ISA_SPARC, - DW_ISA_X86, - DW_ISA_X86_64, - DW_ISA_AARCH64, - DW_ISA_RISCV, - DW_ISA_MAX -}; - -/* Function prototype definitions. */ -#ifdef __cplusplus -extern "C" { -#endif -Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die, char *, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die, Dwarf_Signed, - Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_const_value_string(Dwarf_P_Die, char *, - Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_const_value_unsignedint(Dwarf_P_Die, - Dwarf_Unsigned, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_dataref(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_flag(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, - Dwarf_Small, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_location_expr(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Half, Dwarf_P_Expr, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_name(Dwarf_P_Die, char *, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_producer(Dwarf_P_Die, char *, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_ref_address(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Half, Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_reference(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, - Dwarf_P_Die, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_signed_const(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Half, Dwarf_Signed, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_string(Dwarf_P_Debug, Dwarf_P_Die, Dwarf_Half, - char *, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_targ_address(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Half, Dwarf_Unsigned, Dwarf_Signed, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_targ_address_b(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Half, Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); -Dwarf_P_Attribute dwarf_add_AT_unsigned_const(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Half, Dwarf_Unsigned, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_arange(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Unsigned, - Dwarf_Signed, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_arange_b(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Addr, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_die_to_debug(Dwarf_P_Debug, Dwarf_P_Die, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_directory_decl(Dwarf_P_Debug, char *, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_expr_addr(Dwarf_P_Expr, Dwarf_Unsigned, - Dwarf_Signed, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_expr_addr_b(Dwarf_P_Expr, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_expr_gen(Dwarf_P_Expr, Dwarf_Small, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Error *); -Dwarf_P_Fde dwarf_add_fde_inst(Dwarf_P_Fde, Dwarf_Small, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_file_decl(Dwarf_P_Debug, char *, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Unsigned, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_frame_cie(Dwarf_P_Debug, char *, Dwarf_Small, - Dwarf_Small, Dwarf_Small, Dwarf_Ptr, Dwarf_Unsigned, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_frame_fde(Dwarf_P_Debug, Dwarf_P_Fde, Dwarf_P_Die, - Dwarf_Unsigned, Dwarf_Addr, Dwarf_Unsigned, Dwarf_Unsigned, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_frame_fde_b(Dwarf_P_Debug, Dwarf_P_Fde, Dwarf_P_Die, - Dwarf_Unsigned, Dwarf_Addr, Dwarf_Unsigned, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Addr, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_funcname(Dwarf_P_Debug, Dwarf_P_Die, char *, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_line_entry(Dwarf_P_Debug, Dwarf_Unsigned, - Dwarf_Addr, Dwarf_Unsigned, Dwarf_Signed, Dwarf_Bool, - Dwarf_Bool, Dwarf_Error *); -Dwarf_Unsigned dwarf_add_pubname(Dwarf_P_Debug, Dwarf_P_Die, char *, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_typename(Dwarf_P_Debug, Dwarf_P_Die, char *, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_varname(Dwarf_P_Debug, Dwarf_P_Die, char *, - Dwarf_Error *); -Dwarf_Unsigned dwarf_add_weakname(Dwarf_P_Debug, Dwarf_P_Die, char *, - Dwarf_Error *); -int dwarf_arrayorder(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_attr(Dwarf_Die, Dwarf_Half, Dwarf_Attribute *, - Dwarf_Error *); -int dwarf_attrlist(Dwarf_Die, Dwarf_Attribute **, - Dwarf_Signed *, Dwarf_Error *); -int dwarf_attroffset(Dwarf_Attribute, Dwarf_Off *, Dwarf_Error *); -int dwarf_attrval_flag(Dwarf_Die, Dwarf_Half, Dwarf_Bool *, - Dwarf_Error *); -int dwarf_attrval_signed(Dwarf_Die, Dwarf_Half, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_attrval_string(Dwarf_Die, Dwarf_Half, const char **, - Dwarf_Error *); -int dwarf_attrval_unsigned(Dwarf_Die, Dwarf_Half, Dwarf_Unsigned *, - Dwarf_Error *); -int dwarf_bitoffset(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_bitsize(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_bytesize(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_child(Dwarf_Die, Dwarf_Die *, Dwarf_Error *); -void dwarf_dealloc(Dwarf_Debug, Dwarf_Ptr, Dwarf_Unsigned); -int dwarf_def_macro(Dwarf_P_Debug, Dwarf_Unsigned, char *, char *, - Dwarf_Error *); -int dwarf_die_CU_offset(Dwarf_Die, Dwarf_Off *, Dwarf_Error *); -int dwarf_die_CU_offset_range(Dwarf_Die, Dwarf_Off *, Dwarf_Off *, - Dwarf_Error *); -int dwarf_die_abbrev_code(Dwarf_Die); -Dwarf_P_Die dwarf_die_link(Dwarf_P_Die, Dwarf_P_Die, Dwarf_P_Die, - Dwarf_P_Die, Dwarf_P_Die, Dwarf_Error *); -int dwarf_diename(Dwarf_Die, char **, Dwarf_Error *); -int dwarf_dieoffset(Dwarf_Die, Dwarf_Off *, Dwarf_Error *); -int dwarf_elf_init(Elf *, int, Dwarf_Handler, Dwarf_Ptr, - Dwarf_Debug *, Dwarf_Error *); -int dwarf_end_macro_file(Dwarf_P_Debug, Dwarf_Error *); -const char *dwarf_errmsg_(Dwarf_Error *); -int dwarf_expand_frame_instructions(Dwarf_Cie, Dwarf_Ptr, - Dwarf_Unsigned, Dwarf_Frame_Op **, Dwarf_Signed *, - Dwarf_Error *); -Dwarf_Unsigned dwarf_expr_current_offset(Dwarf_P_Expr, Dwarf_Error *); -Dwarf_Addr dwarf_expr_into_block(Dwarf_P_Expr, Dwarf_Unsigned *, - Dwarf_Error *); -Dwarf_P_Fde dwarf_fde_cfa_offset(Dwarf_P_Fde, Dwarf_Unsigned, Dwarf_Signed, - Dwarf_Error *); -void dwarf_fde_cie_list_dealloc(Dwarf_Debug, Dwarf_Cie *, - Dwarf_Signed, Dwarf_Fde *, Dwarf_Signed); -char *dwarf_find_macro_value_start(char *); -int dwarf_finish(Dwarf_Debug, Dwarf_Error *); -int dwarf_formaddr(Dwarf_Attribute, Dwarf_Addr *, Dwarf_Error *); -int dwarf_formblock(Dwarf_Attribute, Dwarf_Block **, Dwarf_Error *); -int dwarf_formexprloc(Dwarf_Attribute, Dwarf_Unsigned *, - Dwarf_Ptr *, Dwarf_Error *); -int dwarf_formflag(Dwarf_Attribute, Dwarf_Bool *, Dwarf_Error *); -int dwarf_formref(Dwarf_Attribute, Dwarf_Off *, Dwarf_Error *); -int dwarf_formsdata(Dwarf_Attribute, Dwarf_Signed *, Dwarf_Error *); -int dwarf_formsig8(Dwarf_Attribute, Dwarf_Sig8 *, Dwarf_Error *); -int dwarf_formstring(Dwarf_Attribute, char **, Dwarf_Error *); -int dwarf_formudata(Dwarf_Attribute, Dwarf_Unsigned *, - Dwarf_Error *); -int dwarf_func_cu_offset(Dwarf_Func, Dwarf_Off *, Dwarf_Error *); -int dwarf_func_die_offset(Dwarf_Func, Dwarf_Off *, - Dwarf_Error *); -int dwarf_func_name_offsets(Dwarf_Func, char **, - Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); -int dwarf_funcname(Dwarf_Func, char **, Dwarf_Error *); -void dwarf_funcs_dealloc(Dwarf_Debug, Dwarf_Func *, Dwarf_Signed); -int dwarf_get_ACCESS_name(unsigned, const char **); -int dwarf_get_ATE_name(unsigned, const char **); -int dwarf_get_AT_name(unsigned, const char **); -int dwarf_get_CC_name(unsigned, const char **); -int dwarf_get_CFA_name(unsigned, const char **); -int dwarf_get_CHILDREN_name(unsigned, const char **); -int dwarf_get_DSC_name(unsigned, const char **); -int dwarf_get_DS_name(unsigned, const char **); -int dwarf_get_EH_name(unsigned, const char **); -int dwarf_get_END_name(unsigned, const char **); -int dwarf_get_FORM_name(unsigned, const char **); -int dwarf_get_ID_name(unsigned, const char **); -int dwarf_get_INL_name(unsigned, const char **); -int dwarf_get_LANG_name(unsigned, const char **); -int dwarf_get_LNE_name(unsigned, const char **); -int dwarf_get_LNS_name(unsigned, const char **); -int dwarf_get_MACINFO_name(unsigned, const char **); -int dwarf_get_OP_name(unsigned, const char **); -int dwarf_get_ORD_name(unsigned, const char **); -int dwarf_get_TAG_name(unsigned, const char **); -int dwarf_get_VIRTUALITY_name(unsigned, const char **); -int dwarf_get_VIS_name(unsigned, const char **); -int dwarf_get_abbrev(Dwarf_Debug, Dwarf_Unsigned, Dwarf_Abbrev *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_get_abbrev_children_flag(Dwarf_Abbrev, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_abbrev_code(Dwarf_Abbrev, Dwarf_Unsigned *, - Dwarf_Error *); -int dwarf_get_abbrev_entry(Dwarf_Abbrev, Dwarf_Signed, Dwarf_Half *, - Dwarf_Signed *, Dwarf_Off *, Dwarf_Error *); -int dwarf_get_abbrev_tag(Dwarf_Abbrev, Dwarf_Half *, Dwarf_Error *); -int dwarf_get_address_size(Dwarf_Debug, Dwarf_Half *, - Dwarf_Error *); -int dwarf_get_arange(Dwarf_Arange *, Dwarf_Unsigned, Dwarf_Addr, - Dwarf_Arange *, Dwarf_Error *); -int dwarf_get_arange_cu_header_offset(Dwarf_Arange, Dwarf_Off *, - Dwarf_Error *); -int dwarf_get_arange_info(Dwarf_Arange, Dwarf_Addr *, - Dwarf_Unsigned *, Dwarf_Off *, Dwarf_Error *); -int dwarf_get_aranges(Dwarf_Debug, Dwarf_Arange **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_cie_index(Dwarf_Cie, Dwarf_Signed *, Dwarf_Error *); -int dwarf_get_cie_info(Dwarf_Cie, Dwarf_Unsigned *, Dwarf_Small *, - char **, Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Half *, - Dwarf_Ptr *, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_get_cie_of_fde(Dwarf_Fde, Dwarf_Cie *, Dwarf_Error *); -int dwarf_get_cu_die_offset(Dwarf_Arange, Dwarf_Off *, - Dwarf_Error *); -int dwarf_get_cu_die_offset_given_cu_header_offset(Dwarf_Debug, - Dwarf_Off, Dwarf_Off *, Dwarf_Error *); -int dwarf_get_cu_die_offset_given_cu_header_offset_b(Dwarf_Debug, - Dwarf_Off, Dwarf_Bool, Dwarf_Off *, Dwarf_Error *); -Dwarf_Bool dwarf_get_die_infotypes_flag(Dwarf_Die); -int dwarf_get_elf(Dwarf_Debug, Elf **, Dwarf_Error *); -int dwarf_get_fde_at_pc(Dwarf_Fde *, Dwarf_Addr, Dwarf_Fde *, - Dwarf_Addr *, Dwarf_Addr *, Dwarf_Error *); -int dwarf_get_fde_info_for_all_regs(Dwarf_Fde, Dwarf_Addr, - Dwarf_Regtable *, Dwarf_Addr *, Dwarf_Error *); -int dwarf_get_fde_info_for_all_regs3(Dwarf_Fde, Dwarf_Addr, - Dwarf_Regtable3 *, Dwarf_Addr *, Dwarf_Error *); -int dwarf_get_fde_info_for_cfa_reg3(Dwarf_Fde, Dwarf_Addr, - Dwarf_Small *, Dwarf_Signed *, Dwarf_Signed *, Dwarf_Signed *, - Dwarf_Ptr *, Dwarf_Addr *, Dwarf_Error *); -int dwarf_get_fde_info_for_reg(Dwarf_Fde, Dwarf_Half, Dwarf_Addr, - Dwarf_Signed *, Dwarf_Signed *, Dwarf_Signed *, - Dwarf_Addr *, Dwarf_Error *); -int dwarf_get_fde_info_for_reg3(Dwarf_Fde, Dwarf_Half, Dwarf_Addr, - Dwarf_Small *, Dwarf_Signed *, Dwarf_Signed *, - Dwarf_Signed *, Dwarf_Ptr *, Dwarf_Addr *, Dwarf_Error *); -int dwarf_get_fde_instr_bytes(Dwarf_Fde, Dwarf_Ptr *, - Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_get_fde_list(Dwarf_Debug, Dwarf_Cie **, Dwarf_Signed *, - Dwarf_Fde **, Dwarf_Signed *, Dwarf_Error *); -int dwarf_get_fde_list_eh(Dwarf_Debug, Dwarf_Cie **, Dwarf_Signed *, - Dwarf_Fde **, Dwarf_Signed *, Dwarf_Error *); -int dwarf_get_fde_n(Dwarf_Fde *, Dwarf_Unsigned, Dwarf_Fde *, - Dwarf_Error *); -int dwarf_get_fde_range(Dwarf_Fde, Dwarf_Addr *, Dwarf_Unsigned *, - Dwarf_Ptr *, Dwarf_Unsigned *, Dwarf_Off *, Dwarf_Signed *, - Dwarf_Off *, Dwarf_Error *); -enum Dwarf_Form_Class dwarf_get_form_class(Dwarf_Half, Dwarf_Half, Dwarf_Half, - Dwarf_Half); -int dwarf_get_funcs(Dwarf_Debug, Dwarf_Func **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_globals(Dwarf_Debug, Dwarf_Global **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_loclist_entry(Dwarf_Debug, Dwarf_Unsigned, - Dwarf_Addr *, Dwarf_Addr *, Dwarf_Ptr *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_get_macro_details(Dwarf_Debug, Dwarf_Off, Dwarf_Unsigned, - Dwarf_Signed *, Dwarf_Macro_Details **, Dwarf_Error *); -int dwarf_get_pubtypes(Dwarf_Debug, Dwarf_Type **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_ranges(Dwarf_Debug, Dwarf_Off, Dwarf_Ranges **, - Dwarf_Signed *, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_get_ranges_a(Dwarf_Debug, Dwarf_Off, Dwarf_Die, - Dwarf_Ranges **, Dwarf_Signed *, Dwarf_Unsigned *, - Dwarf_Error *); -int dwarf_get_relocation_info(Dwarf_P_Debug, Dwarf_Signed *, - Dwarf_Signed *, Dwarf_Unsigned *, Dwarf_Relocation_Data *, - Dwarf_Error *); -int dwarf_get_relocation_info_count(Dwarf_P_Debug, Dwarf_Unsigned *, - int *, Dwarf_Error *); -Dwarf_Ptr dwarf_get_section_bytes(Dwarf_P_Debug, Dwarf_Signed, - Dwarf_Signed *, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_get_section_max_offsets(Dwarf_Debug, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, - Dwarf_Unsigned *); -int dwarf_get_section_max_offsets_b(Dwarf_Debug, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Unsigned *); -int dwarf_get_str(Dwarf_Debug, Dwarf_Off, char **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_types(Dwarf_Debug, Dwarf_Type **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_vars(Dwarf_Debug, Dwarf_Var **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_get_weaks(Dwarf_Debug, Dwarf_Weak **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_global_cu_offset(Dwarf_Global, Dwarf_Off *, Dwarf_Error *); -int dwarf_global_die_offset(Dwarf_Global, Dwarf_Off *, - Dwarf_Error *); -int dwarf_global_formref(Dwarf_Attribute, Dwarf_Off *, - Dwarf_Error *); -int dwarf_global_name_offsets(Dwarf_Global, char **, - Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); -void dwarf_globals_dealloc(Dwarf_Debug, Dwarf_Global *, Dwarf_Signed); -int dwarf_globname(Dwarf_Global, char **, Dwarf_Error *); -int dwarf_hasattr(Dwarf_Die, Dwarf_Half, Dwarf_Bool *, - Dwarf_Error *); -int dwarf_hasform(Dwarf_Attribute, Dwarf_Half, Dwarf_Bool *, - Dwarf_Error *); -int dwarf_highpc(Dwarf_Die, Dwarf_Addr *, Dwarf_Error *); -int dwarf_highpc_b(Dwarf_Die, Dwarf_Addr *, Dwarf_Half *, - enum Dwarf_Form_Class *, Dwarf_Error *); -int dwarf_init(int, int, Dwarf_Handler, Dwarf_Ptr, Dwarf_Debug *, - Dwarf_Error *); -int dwarf_line_srcfileno(Dwarf_Line, Dwarf_Unsigned *, - Dwarf_Error *); -int dwarf_lineaddr(Dwarf_Line, Dwarf_Addr *, Dwarf_Error *); -int dwarf_linebeginstatement(Dwarf_Line, Dwarf_Bool *, - Dwarf_Error *); -int dwarf_lineblock(Dwarf_Line, Dwarf_Bool *, Dwarf_Error *); -int dwarf_lineendsequence(Dwarf_Line, Dwarf_Bool *, Dwarf_Error *); -int dwarf_lineno(Dwarf_Line, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_lineoff(Dwarf_Line, Dwarf_Signed *, Dwarf_Error *); -int dwarf_linesrc(Dwarf_Line, char **, Dwarf_Error *); -Dwarf_Unsigned dwarf_lne_end_sequence(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Error *); -Dwarf_Unsigned dwarf_lne_set_address(Dwarf_P_Debug, Dwarf_Addr, Dwarf_Unsigned, - Dwarf_Error *); -int dwarf_loclist(Dwarf_Attribute, Dwarf_Locdesc **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_loclist_from_expr(Dwarf_Debug, Dwarf_Ptr, Dwarf_Unsigned, - Dwarf_Locdesc **, Dwarf_Signed *, Dwarf_Error *); -int dwarf_loclist_from_expr_a(Dwarf_Debug, Dwarf_Ptr, - Dwarf_Unsigned, Dwarf_Half, Dwarf_Locdesc **, - Dwarf_Signed *, Dwarf_Error *); -int dwarf_loclist_from_expr_b(Dwarf_Debug, Dwarf_Ptr, - Dwarf_Unsigned, Dwarf_Half, Dwarf_Half, - Dwarf_Small, Dwarf_Locdesc **, Dwarf_Signed *, - Dwarf_Error *); -int dwarf_loclist_n(Dwarf_Attribute, Dwarf_Locdesc ***, - Dwarf_Signed *, Dwarf_Error *); -int dwarf_lowpc(Dwarf_Die, Dwarf_Addr *, Dwarf_Error *); -Dwarf_P_Die dwarf_new_die(Dwarf_P_Debug, Dwarf_Tag, Dwarf_P_Die, - Dwarf_P_Die, Dwarf_P_Die, Dwarf_P_Die, Dwarf_Error *); -Dwarf_P_Expr dwarf_new_expr(Dwarf_P_Debug, Dwarf_Error *); -Dwarf_P_Fde dwarf_new_fde(Dwarf_P_Debug, Dwarf_Error *); -int dwarf_next_cu_header(Dwarf_Debug, Dwarf_Unsigned *, - Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, - Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_next_cu_header_b(Dwarf_Debug, Dwarf_Unsigned *, - Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, Dwarf_Half *, - Dwarf_Half *, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_next_cu_header_c(Dwarf_Debug, Dwarf_Bool, - Dwarf_Unsigned *, Dwarf_Half *, Dwarf_Off *, Dwarf_Half *, - Dwarf_Half *, Dwarf_Half *, Dwarf_Sig8 *, Dwarf_Unsigned *, - Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_next_types_section(Dwarf_Debug, Dwarf_Error *); -int dwarf_object_finish(Dwarf_Debug, Dwarf_Error *); -int dwarf_object_init(Dwarf_Obj_Access_Interface *, Dwarf_Handler, - Dwarf_Ptr, Dwarf_Debug *, Dwarf_Error *); -int dwarf_offdie(Dwarf_Debug, Dwarf_Off, Dwarf_Die *, - Dwarf_Error *); -int dwarf_offdie_b(Dwarf_Debug, Dwarf_Off, Dwarf_Bool, Dwarf_Die *, - Dwarf_Error *); -Dwarf_Unsigned dwarf_producer_finish(Dwarf_P_Debug, Dwarf_Error *); -Dwarf_P_Debug dwarf_producer_init(Dwarf_Unsigned, Dwarf_Callback_Func, - Dwarf_Handler, Dwarf_Ptr, Dwarf_Error *); -Dwarf_P_Debug dwarf_producer_init_b(Dwarf_Unsigned, Dwarf_Callback_Func_b, - Dwarf_Handler, Dwarf_Ptr, Dwarf_Error *); -int dwarf_producer_set_isa(Dwarf_P_Debug, enum Dwarf_ISA, - Dwarf_Error *); -int dwarf_pubtype_cu_offset(Dwarf_Type, Dwarf_Off *, Dwarf_Error *); -int dwarf_pubtype_die_offset(Dwarf_Type, Dwarf_Off *, - Dwarf_Error *); -int dwarf_pubtype_name_offsets(Dwarf_Type, char **, - Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); -int dwarf_pubtypename(Dwarf_Type, char **, Dwarf_Error *); -void dwarf_pubtypes_dealloc(Dwarf_Debug, Dwarf_Type *, Dwarf_Signed); -void dwarf_ranges_dealloc(Dwarf_Debug, Dwarf_Ranges *, Dwarf_Signed); -void dwarf_reset_section_bytes(Dwarf_P_Debug); -Dwarf_Half dwarf_set_frame_cfa_value(Dwarf_Debug, Dwarf_Half); -Dwarf_Half dwarf_set_frame_rule_initial_value(Dwarf_Debug, Dwarf_Half); -Dwarf_Half dwarf_set_frame_rule_table_size(Dwarf_Debug, Dwarf_Half); -Dwarf_Half dwarf_set_frame_same_value(Dwarf_Debug, Dwarf_Half); -Dwarf_Half dwarf_set_frame_undefined_value(Dwarf_Debug, Dwarf_Half); -int dwarf_set_reloc_application(int); -Dwarf_Ptr dwarf_seterrarg(Dwarf_Debug, Dwarf_Ptr); -Dwarf_Handler dwarf_seterrhand(Dwarf_Debug, Dwarf_Handler); -int dwarf_siblingof(Dwarf_Debug, Dwarf_Die, Dwarf_Die *, Dwarf_Error *); -int dwarf_siblingof_b(Dwarf_Debug, Dwarf_Die, Dwarf_Die *, Dwarf_Bool, - Dwarf_Error *); -int dwarf_srcfiles(Dwarf_Die, char ***, Dwarf_Signed *, Dwarf_Error *); -int dwarf_srclang(Dwarf_Die, Dwarf_Unsigned *, Dwarf_Error *); -int dwarf_srclines(Dwarf_Die, Dwarf_Line **, Dwarf_Signed *, - Dwarf_Error *); -void dwarf_srclines_dealloc(Dwarf_Debug, Dwarf_Line *, - Dwarf_Signed); -int dwarf_start_macro_file(Dwarf_P_Debug, Dwarf_Unsigned, - Dwarf_Unsigned, Dwarf_Error *); -int dwarf_tag(Dwarf_Die, Dwarf_Half *, Dwarf_Error *); -Dwarf_Signed dwarf_transform_to_disk_form(Dwarf_P_Debug, Dwarf_Error *); -int dwarf_type_cu_offset(Dwarf_Type, Dwarf_Off *, Dwarf_Error *); -int dwarf_type_die_offset(Dwarf_Type, Dwarf_Off *, Dwarf_Error *); -int dwarf_type_name_offsets(Dwarf_Type, char **, - Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); -int dwarf_typename(Dwarf_Type, char **, Dwarf_Error *); -void dwarf_types_dealloc(Dwarf_Debug, Dwarf_Type *, Dwarf_Signed); -int dwarf_undef_macro(Dwarf_P_Debug, Dwarf_Unsigned, char *, - Dwarf_Error *); -int dwarf_var_cu_offset(Dwarf_Var, Dwarf_Off *, Dwarf_Error *); -int dwarf_var_die_offset(Dwarf_Var, Dwarf_Off *, - Dwarf_Error *); -int dwarf_var_name_offsets(Dwarf_Var, char **, - Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); -int dwarf_varname(Dwarf_Var, char **, Dwarf_Error *); -void dwarf_vars_dealloc(Dwarf_Debug, Dwarf_Var *, Dwarf_Signed); -int dwarf_vendor_ext(Dwarf_P_Debug, Dwarf_Unsigned, char *, - Dwarf_Error *); -int dwarf_weak_cu_offset(Dwarf_Weak, Dwarf_Off *, Dwarf_Error *); -int dwarf_weak_die_offset(Dwarf_Weak, Dwarf_Off *, - Dwarf_Error *); -int dwarf_weak_name_offsets(Dwarf_Weak, char **, - Dwarf_Off *, Dwarf_Off *, Dwarf_Error *); -int dwarf_weakname(Dwarf_Weak, char **, Dwarf_Error *); -void dwarf_weaks_dealloc(Dwarf_Debug, Dwarf_Weak *, Dwarf_Signed); -int dwarf_whatattr(Dwarf_Attribute, Dwarf_Half *, Dwarf_Error *); -int dwarf_whatform(Dwarf_Attribute, Dwarf_Half *, Dwarf_Error *); -int dwarf_whatform_direct(Dwarf_Attribute, Dwarf_Half *, - Dwarf_Error *); -#ifdef __cplusplus -} -#endif - -#endif /* !_LIBDWARF_H_ */ diff --git a/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c b/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c deleted file mode 100644 index 833c0921..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_abbrev.c +++ /dev/null @@ -1,264 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -_dwarf_abbrev_add(Dwarf_CU cu, uint64_t entry, uint64_t tag, uint8_t children, - uint64_t aboff, Dwarf_Abbrev *abp, Dwarf_Error *error) -{ - Dwarf_Abbrev ab; - Dwarf_Debug dbg; - - dbg = cu != NULL ? cu->cu_dbg : NULL; - - if ((ab = malloc(sizeof(struct _Dwarf_Abbrev))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - /* Initialise the abbrev structure. */ - ab->ab_entry = entry; - ab->ab_tag = tag; - ab->ab_children = children; - ab->ab_offset = aboff; - ab->ab_length = 0; /* fill in later. */ - ab->ab_atnum = 0; /* fill in later. */ - - /* Initialise the list of attribute definitions. */ - STAILQ_INIT(&ab->ab_attrdef); - - /* Add the abbrev to the hash table of the compilation unit. */ - if (cu != NULL) - HASH_ADD(ab_hh, cu->cu_abbrev_hash, ab_entry, - sizeof(ab->ab_entry), ab); - - *abp = ab; - return (DW_DLE_NONE); -} - -int -_dwarf_attrdef_add(Dwarf_Debug dbg, Dwarf_Abbrev ab, uint64_t attr, - uint64_t form, uint64_t adoff, Dwarf_AttrDef *adp, Dwarf_Error *error) -{ - Dwarf_AttrDef ad; - - if (ab == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLE_ARGUMENT); - } - - if ((ad = malloc(sizeof(struct _Dwarf_AttrDef))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - /* Initialise the attribute definition structure. */ - ad->ad_attrib = attr; - ad->ad_form = form; - ad->ad_offset = adoff; - - /* Add the attribute definition to the list in the abbrev. */ - STAILQ_INSERT_TAIL(&ab->ab_attrdef, ad, ad_next); - - /* Increase number of attribute counter. */ - ab->ab_atnum++; - - if (adp != NULL) - *adp = ad; - - return (DW_DLE_NONE); -} - -int -_dwarf_abbrev_parse(Dwarf_Debug dbg, Dwarf_CU cu, Dwarf_Unsigned *offset, - Dwarf_Abbrev *abp, Dwarf_Error *error) -{ - Dwarf_Section *ds; - uint64_t attr; - uint64_t entry; - uint64_t form; - uint64_t aboff; - uint64_t adoff; - uint64_t tag; - uint8_t children; - int ret; - - assert(abp != NULL); - - ds = _dwarf_find_section(dbg, ".debug_abbrev"); - if (ds == NULL || *offset >= ds->ds_size) - return (DW_DLE_NO_ENTRY); - - aboff = *offset; - - entry = _dwarf_read_uleb128(ds->ds_data, offset); - if (entry == 0) { - /* Last entry. */ - ret = _dwarf_abbrev_add(cu, entry, 0, 0, aboff, abp, - error); - if (ret == DW_DLE_NONE) { - (*abp)->ab_length = 1; - return (ret); - } else - return (ret); - } - tag = _dwarf_read_uleb128(ds->ds_data, offset); - children = dbg->read(ds->ds_data, offset, 1); - if ((ret = _dwarf_abbrev_add(cu, entry, tag, children, aboff, - abp, error)) != DW_DLE_NONE) - return (ret); - - /* Parse attribute definitions. */ - do { - adoff = *offset; - attr = _dwarf_read_uleb128(ds->ds_data, offset); - form = _dwarf_read_uleb128(ds->ds_data, offset); - if (attr != 0) - if ((ret = _dwarf_attrdef_add(dbg, *abp, attr, - form, adoff, NULL, error)) != DW_DLE_NONE) - return (ret); - } while (attr != 0); - - (*abp)->ab_length = *offset - aboff; - - return (ret); -} - -int -_dwarf_abbrev_find(Dwarf_CU cu, uint64_t entry, Dwarf_Abbrev *abp, - Dwarf_Error *error) -{ - Dwarf_Abbrev ab; - Dwarf_Section *ds; - Dwarf_Unsigned offset; - int ret; - - if (entry == 0) - return (DW_DLE_NO_ENTRY); - - /* Check if the desired abbrev entry is already in the hash table. */ - HASH_FIND(ab_hh, cu->cu_abbrev_hash, &entry, sizeof(entry), ab); - if (ab != NULL) { - *abp = ab; - return (DW_DLE_NONE); - } - - if (cu->cu_abbrev_loaded) { - return (DW_DLE_NO_ENTRY); - } - - /* Load and search the abbrev table. */ - ds = _dwarf_find_section(cu->cu_dbg, ".debug_abbrev"); - if (ds == NULL) - return (DW_DLE_NO_ENTRY); - - offset = cu->cu_abbrev_offset_cur; - while (offset < ds->ds_size) { - ret = _dwarf_abbrev_parse(cu->cu_dbg, cu, &offset, &ab, error); - if (ret != DW_DLE_NONE) - return (ret); - if (ab->ab_entry == entry) { - cu->cu_abbrev_offset_cur = offset; - *abp = ab; - return (DW_DLE_NONE); - } - if (ab->ab_entry == 0) { - cu->cu_abbrev_offset_cur = offset; - cu->cu_abbrev_loaded = 1; - break; - } - } - - return (DW_DLE_NO_ENTRY); -} - -void -_dwarf_abbrev_cleanup(Dwarf_CU cu) -{ - Dwarf_Abbrev ab, tab; - Dwarf_AttrDef ad, tad; - - assert(cu != NULL); - - HASH_ITER(ab_hh, cu->cu_abbrev_hash, ab, tab) { - HASH_DELETE(ab_hh, cu->cu_abbrev_hash, ab); - STAILQ_FOREACH_SAFE(ad, &ab->ab_attrdef, ad_next, tad) { - STAILQ_REMOVE(&ab->ab_attrdef, ad, _Dwarf_AttrDef, - ad_next); - free(ad); - } - free(ab); - } -} - -int -_dwarf_abbrev_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_Abbrev ab; - Dwarf_AttrDef ad; - Dwarf_P_Section ds; - int ret; - - cu = STAILQ_FIRST(&dbg->dbg_cu); - if (cu == NULL) - return (DW_DLE_NONE); - - /* Create .debug_abbrev section. */ - if ((ret = _dwarf_section_init(dbg, &ds, ".debug_abbrev", 0, error)) != - DW_DLE_NONE) - return (ret); - - for (ab = cu->cu_abbrev_hash; ab != NULL; ab = ab->ab_hh.next) { - RCHECK(WRITE_ULEB128(ab->ab_entry)); - RCHECK(WRITE_ULEB128(ab->ab_tag)); - RCHECK(WRITE_VALUE(ab->ab_children, 1)); - STAILQ_FOREACH(ad, &ab->ab_attrdef, ad_next) { - RCHECK(WRITE_ULEB128(ad->ad_attrib)); - RCHECK(WRITE_ULEB128(ad->ad_form)); - } - /* Signal end of attribute spec list. */ - RCHECK(WRITE_ULEB128(0)); - RCHECK(WRITE_ULEB128(0)); - } - /* End of abbreviation for this CU. */ - RCHECK(WRITE_ULEB128(0)); - - /* Notify the creation of .debug_abbrev ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - return (DW_DLE_NONE); - -gen_fail: - - _dwarf_section_free(dbg, &ds); - - return (ret); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_arange.c b/contrib/elftoolchain/libdwarf/libdwarf_arange.c deleted file mode 100644 index c97eb962..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_arange.c +++ /dev/null @@ -1,260 +0,0 @@ -/*- - * Copyright (c) 2009-2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -void -_dwarf_arange_cleanup(Dwarf_Debug dbg) -{ - Dwarf_ArangeSet as, tas; - Dwarf_Arange ar, tar; - - STAILQ_FOREACH_SAFE(as, &dbg->dbg_aslist, as_next, tas) { - STAILQ_FOREACH_SAFE(ar, &as->as_arlist, ar_next, tar) { - STAILQ_REMOVE(&as->as_arlist, ar, _Dwarf_Arange, - ar_next); - free(ar); - } - STAILQ_REMOVE(&dbg->dbg_aslist, as, _Dwarf_ArangeSet, as_next); - free(as); - } - - if (dbg->dbg_arange_array) - free(dbg->dbg_arange_array); - - dbg->dbg_arange_array = NULL; - dbg->dbg_arange_cnt = 0; -} - -int -_dwarf_arange_init(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_ArangeSet as; - Dwarf_Arange ar; - Dwarf_Section *ds; - uint64_t offset, dwarf_size, length, addr, range; - int i, ret; - - ret = DW_DLE_NONE; - - if ((ds = _dwarf_find_section(dbg, ".debug_aranges")) == NULL) - return (DW_DLE_NONE); - - if (!dbg->dbg_info_loaded) { - ret = _dwarf_info_load(dbg, 1, 1, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - offset = 0; - while (offset < ds->ds_size) { - - if ((as = malloc(sizeof(struct _Dwarf_ArangeSet))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INIT(&as->as_arlist); - STAILQ_INSERT_TAIL(&dbg->dbg_aslist, as, as_next); - - /* Read in the table header. */ - length = dbg->read(ds->ds_data, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = dbg->read(ds->ds_data, &offset, 8); - } else - dwarf_size = 4; - - as->as_length = length; - as->as_version = dbg->read(ds->ds_data, &offset, 2); - if (as->as_version != 2) { - DWARF_SET_ERROR(dbg, error, DW_DLE_VERSION_STAMP_ERROR); - ret = DW_DLE_VERSION_STAMP_ERROR; - goto fail_cleanup; - } - - as->as_cu_offset = dbg->read(ds->ds_data, &offset, dwarf_size); - STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) { - if (cu->cu_offset == as->as_cu_offset) - break; - } - if (cu == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARANGE_OFFSET_BAD); - ret = DW_DLE_ARANGE_OFFSET_BAD; - goto fail_cleanup; - } - as->as_cu = cu; - - as->as_addrsz = dbg->read(ds->ds_data, &offset, 1); - as->as_segsz = dbg->read(ds->ds_data, &offset, 1); - - /* Skip the padding bytes. */ - offset = roundup(offset, 2 * as->as_addrsz); - - /* Read in address range descriptors. */ - while (offset < ds->ds_size) { - addr = dbg->read(ds->ds_data, &offset, as->as_addrsz); - range = dbg->read(ds->ds_data, &offset, as->as_addrsz); - if (addr == 0 && range == 0) - break; - if ((ar = calloc(1, sizeof(struct _Dwarf_Arange))) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - goto fail_cleanup; - } - ar->ar_as = as; - ar->ar_address = addr; - ar->ar_range = range; - STAILQ_INSERT_TAIL(&as->as_arlist, ar, ar_next); - dbg->dbg_arange_cnt++; - } - } - - /* Build arange array. */ - if (dbg->dbg_arange_cnt > 0) { - if ((dbg->dbg_arange_array = malloc(dbg->dbg_arange_cnt * - sizeof(Dwarf_Arange))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - ret = DW_DLE_MEMORY; - goto fail_cleanup; - } - - i = 0; - STAILQ_FOREACH(as, &dbg->dbg_aslist, as_next) { - STAILQ_FOREACH(ar, &as->as_arlist, ar_next) - dbg->dbg_arange_array[i++] = ar; - } - assert((Dwarf_Unsigned)i == dbg->dbg_arange_cnt); - } - - return (DW_DLE_NONE); - -fail_cleanup: - - _dwarf_arange_cleanup(dbg); - - return (ret); -} - -int -_dwarf_arange_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Rel_Section drs; - Dwarf_ArangeSet as; - Dwarf_Arange ar; - uint64_t offset; - int ret; - - as = dbg->dbgp_as; - assert(as != NULL); - if (STAILQ_EMPTY(&as->as_arlist)) - return (DW_DLE_NONE); - - as->as_length = 0; - as->as_version = 2; - as->as_cu_offset = 0; /* We have only one CU. */ - as->as_addrsz = dbg->dbg_pointer_size; - as->as_segsz = 0; /* XXX */ - - /* Create .debug_arange section. */ - if ((ret = _dwarf_section_init(dbg, &ds, ".debug_aranges", 0, error)) != - DW_DLE_NONE) - goto gen_fail0; - - /* Create relocation section for .debug_aranges */ - RCHECK(_dwarf_reloc_section_init(dbg, &drs, ds, error)); - - /* Write section header. */ - RCHECK(WRITE_VALUE(as->as_length, 4)); - RCHECK(WRITE_VALUE(as->as_version, 2)); - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, 4, - ds->ds_size, 0, as->as_cu_offset, ".debug_info", error)); - RCHECK(WRITE_VALUE(as->as_addrsz, 1)); - RCHECK(WRITE_VALUE(as->as_segsz, 1)); - - /* Pad to (2 * address_size) */ - offset = roundup(ds->ds_size, 2 * as->as_addrsz); - if (offset > ds->ds_size) - RCHECK(WRITE_PADDING(0, offset - ds->ds_size)); - - /* Write tuples. */ - STAILQ_FOREACH(ar, &as->as_arlist, ar_next) { - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, dbg->dbg_pointer_size, ds->ds_size, - ar->ar_symndx, ar->ar_address, NULL, error)); - if (ar->ar_esymndx > 0) - RCHECK(_dwarf_reloc_entry_add_pair(dbg, drs, ds, - dbg->dbg_pointer_size, ds->ds_size, ar->ar_symndx, - ar->ar_esymndx, ar->ar_address, ar->ar_eoff, error)); - else - RCHECK(WRITE_VALUE(ar->ar_range, dbg->dbg_pointer_size)); - } - RCHECK(WRITE_VALUE(0, dbg->dbg_pointer_size)); - RCHECK(WRITE_VALUE(0, dbg->dbg_pointer_size)); - - /* Fill in the length field. */ - as->as_length = ds->ds_size - 4; - offset = 0; - dbg->write(ds->ds_data, &offset, as->as_length, 4); - - /* Inform application the creation of .debug_aranges ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - /* Finalize relocation section for .debug_aranges */ - RCHECK(_dwarf_reloc_section_finalize(dbg, drs, error)); - - return (DW_DLE_NONE); - -gen_fail: - _dwarf_reloc_section_free(dbg, &drs); - -gen_fail0: - _dwarf_section_free(dbg, &ds); - - return (ret); -} - -void -_dwarf_arange_pro_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_ArangeSet as; - Dwarf_Arange ar, tar; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - if (dbg->dbgp_as == NULL) - return; - - as = dbg->dbgp_as; - STAILQ_FOREACH_SAFE(ar, &as->as_arlist, ar_next, tar) { - STAILQ_REMOVE(&as->as_arlist, ar, _Dwarf_Arange, ar_next); - free(ar); - } - free(as); - dbg->dbgp_as = NULL; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_attr.c b/contrib/elftoolchain/libdwarf/libdwarf_attr.c deleted file mode 100644 index ba55ec81..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_attr.c +++ /dev/null @@ -1,456 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -_dwarf_attr_alloc(Dwarf_Die die, Dwarf_Attribute *atp, Dwarf_Error *error) -{ - Dwarf_Attribute at; - - assert(die != NULL); - assert(atp != NULL); - - if ((at = calloc(1, sizeof(struct _Dwarf_Attribute))) == NULL) { - DWARF_SET_ERROR(die->die_dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - *atp = at; - - return (DW_DLE_NONE); -} - -static int -_dwarf_attr_add(Dwarf_Die die, Dwarf_Attribute atref, Dwarf_Attribute *atp, - Dwarf_Error *error) -{ - Dwarf_Attribute at; - int ret; - - if ((ret = _dwarf_attr_alloc(die, &at, error)) != DW_DLE_NONE) - return (ret); - - memcpy(at, atref, sizeof(struct _Dwarf_Attribute)); - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - /* Save a pointer to the attribute name if this is one. */ - if (at->at_attrib == DW_AT_name) { - switch (at->at_form) { - case DW_FORM_strp: - die->die_name = at->u[1].s; - break; - case DW_FORM_string: - die->die_name = at->u[0].s; - break; - default: - break; - } - } - - if (atp != NULL) - *atp = at; - - return (DW_DLE_NONE); -} - -Dwarf_Attribute -_dwarf_attr_find(Dwarf_Die die, Dwarf_Half attr) -{ - Dwarf_Attribute at; - - STAILQ_FOREACH(at, &die->die_attr, at_next) { - if (at->at_attrib == attr) - break; - } - - return (at); -} - -int -_dwarf_attr_init(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *offsetp, - int dwarf_size, Dwarf_CU cu, Dwarf_Die die, Dwarf_AttrDef ad, - uint64_t form, int indirect, Dwarf_Error *error) -{ - struct _Dwarf_Attribute atref; - int ret; - - ret = DW_DLE_NONE; - memset(&atref, 0, sizeof(atref)); - atref.at_die = die; - atref.at_offset = *offsetp; - atref.at_attrib = ad->ad_attrib; - atref.at_form = indirect ? form : ad->ad_form; - atref.at_indirect = indirect; - atref.at_ld = NULL; - - switch (form) { - case DW_FORM_addr: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, - cu->cu_pointer_size); - break; - case DW_FORM_block: - case DW_FORM_exprloc: - atref.u[0].u64 = _dwarf_read_uleb128(ds->ds_data, offsetp); - atref.u[1].u8p = _dwarf_read_block(ds->ds_data, offsetp, - atref.u[0].u64); - break; - case DW_FORM_block1: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 1); - atref.u[1].u8p = _dwarf_read_block(ds->ds_data, offsetp, - atref.u[0].u64); - break; - case DW_FORM_block2: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 2); - atref.u[1].u8p = _dwarf_read_block(ds->ds_data, offsetp, - atref.u[0].u64); - break; - case DW_FORM_block4: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 4); - atref.u[1].u8p = _dwarf_read_block(ds->ds_data, offsetp, - atref.u[0].u64); - break; - case DW_FORM_data1: - case DW_FORM_flag: - case DW_FORM_ref1: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 1); - break; - case DW_FORM_data2: - case DW_FORM_ref2: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 2); - break; - case DW_FORM_data4: - case DW_FORM_ref4: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 4); - break; - case DW_FORM_data8: - case DW_FORM_ref8: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, 8); - break; - case DW_FORM_indirect: - form = _dwarf_read_uleb128(ds->ds_data, offsetp); - return (_dwarf_attr_init(dbg, ds, offsetp, dwarf_size, cu, die, - ad, form, 1, error)); - case DW_FORM_ref_addr: - if (cu->cu_version == 2) - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, - cu->cu_pointer_size); - else - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, - dwarf_size); - break; - case DW_FORM_ref_udata: - case DW_FORM_udata: - atref.u[0].u64 = _dwarf_read_uleb128(ds->ds_data, offsetp); - break; - case DW_FORM_sdata: - atref.u[0].s64 = _dwarf_read_sleb128(ds->ds_data, offsetp); - break; - case DW_FORM_sec_offset: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, dwarf_size); - break; - case DW_FORM_string: - atref.u[0].s = _dwarf_read_string(ds->ds_data, ds->ds_size, - offsetp); - break; - case DW_FORM_strp: - atref.u[0].u64 = dbg->read(ds->ds_data, offsetp, dwarf_size); - atref.u[1].s = _dwarf_strtab_get_table(dbg) + atref.u[0].u64; - break; - case DW_FORM_ref_sig8: - atref.u[0].u64 = 8; - atref.u[1].u8p = _dwarf_read_block(ds->ds_data, offsetp, - atref.u[0].u64); - break; - case DW_FORM_flag_present: - /* This form has no value encoded in the DIE. */ - atref.u[0].u64 = 1; - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLE_ATTR_FORM_BAD; - break; - } - - if (ret == DW_DLE_NONE) { - if (form == DW_FORM_block || form == DW_FORM_block1 || - form == DW_FORM_block2 || form == DW_FORM_block4) { - atref.at_block.bl_len = atref.u[0].u64; - atref.at_block.bl_data = atref.u[1].u8p; - } - ret = _dwarf_attr_add(die, &atref, NULL, error); - } - - return (ret); -} - -static int -_dwarf_attr_write(Dwarf_P_Debug dbg, Dwarf_P_Section ds, Dwarf_Rel_Section drs, - Dwarf_CU cu, Dwarf_Attribute at, int pass2, Dwarf_Error *error) -{ - struct _Dwarf_P_Expr_Entry *ee; - uint64_t value, offset, bs; - int ret; - - assert(dbg != NULL && ds != NULL && cu != NULL && at != NULL); - - /* Fill in reference to other DIE in the second pass. */ - if (pass2) { - if (at->at_form != DW_FORM_ref4 && at->at_form != DW_FORM_ref8) - return (DW_DLE_NONE); - if (at->at_refdie == NULL || at->at_offset == 0) - return (DW_DLE_NONE); - offset = at->at_offset; - dbg->write(ds->ds_data, &offset, at->at_refdie->die_offset, - at->at_form == DW_FORM_ref4 ? 4 : 8); - return (DW_DLE_NONE); - } - - switch (at->at_form) { - case DW_FORM_addr: - if (at->at_relsym) - ret = _dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, cu->cu_pointer_size, - ds->ds_size, at->at_relsym, at->u[0].u64, NULL, - error); - else - ret = WRITE_VALUE(at->u[0].u64, cu->cu_pointer_size); - break; - case DW_FORM_block: - case DW_FORM_block1: - case DW_FORM_block2: - case DW_FORM_block4: - /* Write block size. */ - if (at->at_form == DW_FORM_block) { - ret = _dwarf_write_uleb128_alloc(&ds->ds_data, - &ds->ds_cap, &ds->ds_size, at->u[0].u64, error); - if (ret != DW_DLE_NONE) - break; - } else { - if (at->at_form == DW_FORM_block1) - bs = 1; - else if (at->at_form == DW_FORM_block2) - bs = 2; - else - bs = 4; - ret = WRITE_VALUE(at->u[0].u64, bs); - if (ret != DW_DLE_NONE) - break; - } - - /* Keep block data offset for later use. */ - offset = ds->ds_size; - - /* Write block data. */ - ret = WRITE_BLOCK(at->u[1].u8p, at->u[0].u64); - if (ret != DW_DLE_NONE) - break; - if (at->at_expr == NULL) - break; - - /* Generate relocation entry for DW_OP_addr expressions. */ - STAILQ_FOREACH(ee, &at->at_expr->pe_eelist, ee_next) { - if (ee->ee_loc.lr_atom != DW_OP_addr || ee->ee_sym == 0) - continue; - ret = _dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, dbg->dbg_pointer_size, - offset + ee->ee_loc.lr_offset + 1, ee->ee_sym, - ee->ee_loc.lr_number, NULL, error); - if (ret != DW_DLE_NONE) - break; - } - break; - case DW_FORM_data1: - case DW_FORM_flag: - case DW_FORM_ref1: - ret = WRITE_VALUE(at->u[0].u64, 1); - break; - case DW_FORM_data2: - case DW_FORM_ref2: - ret = WRITE_VALUE(at->u[0].u64, 2); - break; - case DW_FORM_data4: - if (at->at_relsym || at->at_relsec != NULL) - ret = _dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, 4, ds->ds_size, at->at_relsym, - at->u[0].u64, at->at_relsec, error); - else - ret = WRITE_VALUE(at->u[0].u64, 4); - break; - case DW_FORM_data8: - if (at->at_relsym || at->at_relsec != NULL) - ret = _dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, 8, ds->ds_size, at->at_relsym, - at->u[0].u64, at->at_relsec, error); - else - ret = WRITE_VALUE(at->u[0].u64, 8); - break; - case DW_FORM_ref4: - case DW_FORM_ref8: - /* - * The value of ref4 and ref8 could be a reference to another - * DIE within the CU. And if we don't know the ref DIE's - * offset at the moement, then we remember at_offset and fill - * it in the second pass. - */ - if (at->at_refdie) { - value = at->at_refdie->die_offset; - if (value == 0) { - cu->cu_pass2 = 1; - at->at_offset = ds->ds_size; - } - } else - value = at->u[0].u64; - ret = WRITE_VALUE(value, at->at_form == DW_FORM_ref4 ? 4 : 8); - break; - case DW_FORM_indirect: - /* TODO. */ - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLE_ATTR_FORM_BAD; - break; - case DW_FORM_ref_addr: - /* DWARF2 format. */ - if (at->at_relsym) - ret = _dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, cu->cu_pointer_size, - ds->ds_size, at->at_relsym, at->u[0].u64, NULL, - error); - else - ret = WRITE_VALUE(at->u[0].u64, cu->cu_pointer_size); - break; - case DW_FORM_ref_udata: - case DW_FORM_udata: - ret = WRITE_ULEB128(at->u[0].u64); - break; - case DW_FORM_sdata: - ret = WRITE_SLEB128(at->u[0].s64); - break; - case DW_FORM_string: - assert(at->u[0].s != NULL); - ret = WRITE_STRING(at->u[0].s); - break; - case DW_FORM_strp: - ret = _dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, - 4, ds->ds_size, 0, at->u[0].u64, ".debug_str", error); - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_ATTR_FORM_BAD); - ret = DW_DLE_ATTR_FORM_BAD; - break; - } - - return (ret); -} - -int -_dwarf_add_AT_dataref(Dwarf_P_Debug dbg, Dwarf_P_Die die, Dwarf_Half attr, - Dwarf_Unsigned pc_value, Dwarf_Unsigned sym_index, const char *secname, - Dwarf_P_Attribute *atp, Dwarf_Error *error) -{ - Dwarf_Attribute at; - int ret; - - assert(dbg != NULL && die != NULL); - - if ((ret = _dwarf_attr_alloc(die, &at, error)) != DW_DLE_NONE) - return (ret); - - at->at_die = die; - at->at_attrib = attr; - if (dbg->dbg_pointer_size == 4) - at->at_form = DW_FORM_data4; - else - at->at_form = DW_FORM_data8; - at->at_relsym = sym_index; - at->at_relsec = secname; - at->u[0].u64 = pc_value; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - if (atp) - *atp = at; - - return (DW_DLE_NONE); -} - -int -_dwarf_add_string_attr(Dwarf_P_Die die, Dwarf_P_Attribute *atp, Dwarf_Half attr, - char *string, Dwarf_Error *error) -{ - Dwarf_Attribute at; - Dwarf_Debug dbg; - int ret; - - dbg = die != NULL ? die->die_dbg : NULL; - - assert(atp != NULL); - - if (die == NULL || string == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLE_ARGUMENT); - } - - if ((ret = _dwarf_attr_alloc(die, &at, error)) != DW_DLE_NONE) - return (ret); - - at->at_die = die; - at->at_attrib = attr; - at->at_form = DW_FORM_strp; - if ((ret = _dwarf_strtab_add(dbg, string, &at->u[0].u64, - error)) != DW_DLE_NONE) { - free(at); - return (ret); - } - at->u[1].s = _dwarf_strtab_get_table(dbg) + at->u[0].u64; - - *atp = at; - - STAILQ_INSERT_TAIL(&die->die_attr, at, at_next); - - return (DW_DLE_NONE); -} - -int -_dwarf_attr_gen(Dwarf_P_Debug dbg, Dwarf_P_Section ds, Dwarf_Rel_Section drs, - Dwarf_CU cu, Dwarf_Die die, int pass2, Dwarf_Error *error) -{ - Dwarf_Attribute at; - int ret; - - assert(dbg != NULL && ds != NULL && cu != NULL && die != NULL); - - STAILQ_FOREACH(at, &die->die_attr, at_next) { - ret = _dwarf_attr_write(dbg, ds, drs, cu, at, pass2, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - return (DW_DLE_NONE); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_die.c b/contrib/elftoolchain/libdwarf/libdwarf_die.c deleted file mode 100644 index cadfe303..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_die.c +++ /dev/null @@ -1,457 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2009-2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -_dwarf_die_alloc(Dwarf_Debug dbg, Dwarf_Die *ret_die, Dwarf_Error *error) -{ - Dwarf_Die die; - - assert(ret_die != NULL); - - if ((die = calloc(1, sizeof(struct _Dwarf_Die))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - STAILQ_INIT(&die->die_attr); - - *ret_die = die; - - return (DW_DLE_NONE); -} - -static int -_dwarf_die_add(Dwarf_CU cu, uint64_t offset, uint64_t abnum, Dwarf_Abbrev ab, - Dwarf_Die *diep, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Die die; - int ret; - - assert(cu != NULL); - assert(ab != NULL); - - dbg = cu->cu_dbg; - - if ((ret = _dwarf_die_alloc(dbg, &die, error)) != DW_DLE_NONE) - return (ret); - - die->die_offset = offset; - die->die_abnum = abnum; - die->die_ab = ab; - die->die_cu = cu; - die->die_dbg = cu->cu_dbg; - - if (diep != NULL) - *diep = die; - - return (DW_DLE_NONE); -} - -/* Find die at offset 'off' within the same CU. */ -Dwarf_Die -_dwarf_die_find(Dwarf_Die die, Dwarf_Unsigned off) -{ - Dwarf_Debug dbg; - Dwarf_Section *ds; - Dwarf_CU cu; - Dwarf_Die die1; - Dwarf_Error de; - int ret; - - cu = die->die_cu; - dbg = die->die_dbg; - ds = cu->cu_is_info ? dbg->dbg_info_sec : dbg->dbg_types_sec; - - ret = _dwarf_die_parse(dbg, ds, cu, cu->cu_dwarf_size, off, - cu->cu_next_offset, &die1, 0, &de); - - if (ret == DW_DLE_NONE) - return (die1); - else - return (NULL); -} - -int -_dwarf_die_parse(Dwarf_Debug dbg, Dwarf_Section *ds, Dwarf_CU cu, - int dwarf_size, uint64_t offset, uint64_t next_offset, Dwarf_Die *ret_die, - int search_sibling, Dwarf_Error *error) -{ - Dwarf_Abbrev ab; - Dwarf_AttrDef ad; - Dwarf_Die die; - uint64_t abnum; - uint64_t die_offset; - int ret, level; - - assert(cu != NULL); - - level = 1; - die = NULL; - - while (offset < next_offset && offset < ds->ds_size) { - - die_offset = offset; - - abnum = _dwarf_read_uleb128(ds->ds_data, &offset); - - if (abnum == 0) { - if (level == 0 || !search_sibling) - return (DW_DLE_NO_ENTRY); - - /* - * Return to previous DIE level. - */ - level--; - continue; - } - - if ((ret = _dwarf_abbrev_find(cu, abnum, &ab, error)) != - DW_DLE_NONE) - return (ret); - - if ((ret = _dwarf_die_add(cu, die_offset, abnum, ab, &die, - error)) != DW_DLE_NONE) - return (ret); - - STAILQ_FOREACH(ad, &ab->ab_attrdef, ad_next) { - if ((ret = _dwarf_attr_init(dbg, ds, &offset, - dwarf_size, cu, die, ad, ad->ad_form, 0, - error)) != DW_DLE_NONE) - return (ret); - } - - die->die_next_off = offset; - if (search_sibling && level > 0) { - dwarf_dealloc(dbg, die, DW_DLA_DIE); - if (ab->ab_children == DW_CHILDREN_yes) { - /* Advance to next DIE level. */ - level++; - } - } else { - *ret_die = die; - return (DW_DLE_NONE); - } - } - - return (DW_DLE_NO_ENTRY); -} - -void -_dwarf_die_link(Dwarf_P_Die die, Dwarf_P_Die parent, Dwarf_P_Die child, - Dwarf_P_Die left_sibling, Dwarf_P_Die right_sibling) -{ - Dwarf_P_Die last_child; - - assert(die != NULL); - - if (parent) { - - /* Disconnect from old parent. */ - if (die->die_parent) { - if (die->die_parent != parent) { - if (die->die_parent->die_child == die) - die->die_parent->die_child = NULL; - die->die_parent = NULL; - } - } - - /* Find the last child of this parent. */ - last_child = parent->die_child; - if (last_child) { - while (last_child->die_right != NULL) - last_child = last_child->die_right; - } - - /* Connect to new parent. */ - die->die_parent = parent; - - /* - * Attach this DIE to the end of sibling list. If new - * parent doesn't have any child, set this DIE as the - * first child. - */ - if (last_child) { - assert(last_child->die_right == NULL); - last_child->die_right = die; - die->die_left = last_child; - } else - parent->die_child = die; - } - - if (child) { - - /* Disconnect from old child. */ - if (die->die_child) { - if (die->die_child != child) { - die->die_child->die_parent = NULL; - die->die_child = NULL; - } - } - - /* Connect to new child. */ - die->die_child = child; - child->die_parent = die; - } - - if (left_sibling) { - - /* Disconnect from old left sibling. */ - if (die->die_left) { - if (die->die_left != left_sibling) { - die->die_left->die_right = NULL; - die->die_left = NULL; - } - } - - /* Connect to new right sibling. */ - die->die_left = left_sibling; - left_sibling->die_right = die; - } - - if (right_sibling) { - - /* Disconnect from old right sibling. */ - if (die->die_right) { - if (die->die_right != right_sibling) { - die->die_right->die_left = NULL; - die->die_right = NULL; - } - } - - /* Connect to new right sibling. */ - die->die_right = right_sibling; - right_sibling->die_left = die; - } -} - -int -_dwarf_die_count_links(Dwarf_P_Die parent, Dwarf_P_Die child, - Dwarf_P_Die left_sibling, Dwarf_P_Die right_sibling) -{ - int count; - - count = 0; - - if (parent) - count++; - if (child) - count++; - if (left_sibling) - count++; - if (right_sibling) - count++; - - return (count); -} - -static int -_dwarf_die_gen_recursive(Dwarf_P_Debug dbg, Dwarf_CU cu, Dwarf_Rel_Section drs, - Dwarf_P_Die die, int pass2, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Abbrev ab; - Dwarf_Attribute at; - Dwarf_AttrDef ad; - int match, ret; - - ds = dbg->dbgp_info; - assert(ds != NULL); - - if (pass2) - goto attr_gen; - - /* - * Add DW_AT_sibling attribute for DIEs with children, so consumers - * can quickly scan chains of siblings, while ignoring the children - * of individual siblings. - */ - if (die->die_child && die->die_right) { - if (_dwarf_attr_find(die, DW_AT_sibling) == NULL) - (void) dwarf_add_AT_reference(dbg, die, DW_AT_sibling, - die->die_right, error); - } - - /* - * Search abbrev list to find a matching entry. - */ - die->die_ab = NULL; - for (ab = cu->cu_abbrev_hash; ab != NULL; ab = ab->ab_hh.next) { - if (die->die_tag != ab->ab_tag) - continue; - if (ab->ab_children == DW_CHILDREN_no && die->die_child != NULL) - continue; - if (ab->ab_children == DW_CHILDREN_yes && - die->die_child == NULL) - continue; - at = STAILQ_FIRST(&die->die_attr); - ad = STAILQ_FIRST(&ab->ab_attrdef); - match = 1; - while (at != NULL && ad != NULL) { - if (at->at_attrib != ad->ad_attrib || - at->at_form != ad->ad_form) { - match = 0; - break; - } - at = STAILQ_NEXT(at, at_next); - ad = STAILQ_NEXT(ad, ad_next); - } - if ((at == NULL && ad != NULL) || (at != NULL && ad == NULL)) - match = 0; - if (match) { - die->die_ab = ab; - break; - } - } - - /* - * Create a new abbrev entry if we can not reuse any existing one. - */ - if (die->die_ab == NULL) { - ret = _dwarf_abbrev_add(cu, ++cu->cu_abbrev_cnt, die->die_tag, - die->die_child != NULL ? DW_CHILDREN_yes : DW_CHILDREN_no, - 0, &ab, error); - if (ret != DW_DLE_NONE) - return (ret); - STAILQ_FOREACH(at, &die->die_attr, at_next) { - ret = _dwarf_attrdef_add(dbg, ab, at->at_attrib, - at->at_form, 0, NULL, error); - if (ret != DW_DLE_NONE) - return (ret); - } - die->die_ab = ab; - } - - die->die_offset = ds->ds_size; - - /* - * Transform the DIE to bytes stream. - */ - ret = _dwarf_write_uleb128_alloc(&ds->ds_data, &ds->ds_cap, - &ds->ds_size, die->die_ab->ab_entry, error); - if (ret != DW_DLE_NONE) - return (ret); - -attr_gen: - - /* Transform the attributes of this DIE. */ - ret = _dwarf_attr_gen(dbg, ds, drs, cu, die, pass2, error); - if (ret != DW_DLE_NONE) - return (ret); - - /* Proceed to child DIE. */ - if (die->die_child != NULL) { - ret = _dwarf_die_gen_recursive(dbg, cu, drs, die->die_child, - pass2, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - /* Proceed to sibling DIE. */ - if (die->die_right != NULL) { - ret = _dwarf_die_gen_recursive(dbg, cu, drs, die->die_right, - pass2, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - /* Write a null DIE indicating the end of current level. */ - if (die->die_right == NULL) { - ret = _dwarf_write_uleb128_alloc(&ds->ds_data, &ds->ds_cap, - &ds->ds_size, 0, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - return (DW_DLE_NONE); -} - -int -_dwarf_die_gen(Dwarf_P_Debug dbg, Dwarf_CU cu, Dwarf_Rel_Section drs, - Dwarf_Error *error) -{ - Dwarf_Abbrev ab, tab; - Dwarf_AttrDef ad, tad; - Dwarf_Die die; - int ret; - - assert(dbg != NULL && cu != NULL); - assert(dbg->dbgp_root_die != NULL); - - die = dbg->dbgp_root_die; - - /* - * Insert a DW_AT_stmt_list attribute into root DIE, if there are - * line number information. - */ - if (!STAILQ_EMPTY(&dbg->dbgp_lineinfo->li_lnlist)) - RCHECK(_dwarf_add_AT_dataref(dbg, die, DW_AT_stmt_list, 0, 0, - ".debug_line", NULL, error)); - - RCHECK(_dwarf_die_gen_recursive(dbg, cu, drs, die, 0, error)); - - if (cu->cu_pass2) - RCHECK(_dwarf_die_gen_recursive(dbg, cu, drs, die, 1, error)); - - return (DW_DLE_NONE); - -gen_fail: - - HASH_ITER(ab_hh, cu->cu_abbrev_hash, ab, tab) { - HASH_DELETE(ab_hh, cu->cu_abbrev_hash, ab); - STAILQ_FOREACH_SAFE(ad, &ab->ab_attrdef, ad_next, tad) { - STAILQ_REMOVE(&ab->ab_attrdef, ad, _Dwarf_AttrDef, - ad_next); - free(ad); - } - free(ab); - } - - return (ret); -} - -void -_dwarf_die_pro_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_P_Die die, tdie; - Dwarf_P_Attribute at, tat; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - STAILQ_FOREACH_SAFE(die, &dbg->dbgp_dielist, die_pro_next, tdie) { - STAILQ_FOREACH_SAFE(at, &die->die_attr, at_next, tat) { - STAILQ_REMOVE(&die->die_attr, at, _Dwarf_Attribute, - at_next); - free(at); - } - free(die); - } -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_elf_access.c b/contrib/elftoolchain/libdwarf/libdwarf_elf_access.c deleted file mode 100644 index 9f679047..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_elf_access.c +++ /dev/null @@ -1,164 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -_dwarf_elf_get_section_info(void *obj, Dwarf_Half ndx, - Dwarf_Obj_Access_Section *ret_section, int *error) -{ - Dwarf_Elf_Object *e; - GElf_Shdr *sh; - - e = obj; - assert(e != NULL); - - if (ret_section == NULL) { - if (error) - *error = DW_DLE_ARGUMENT; - return (DW_DLV_ERROR); - } - - if (ndx >= e->eo_seccnt) { - if (error) - *error = DW_DLE_NO_ENTRY; - return (DW_DLV_NO_ENTRY); - } - - sh = &e->eo_shdr[ndx]; - - ret_section->addr = sh->sh_addr; - ret_section->size = sh->sh_size; - - ret_section->name = elf_strptr(e->eo_elf, e->eo_strndx, sh->sh_name); - if (ret_section->name == NULL) { - if (error) - *error = DW_DLE_ELF; - return (DW_DLV_ERROR); - } - - return (DW_DLV_OK); -} - -Dwarf_Endianness -_dwarf_elf_get_byte_order(void *obj) -{ - Dwarf_Elf_Object *e; - - e = obj; - assert(e != NULL); - - switch (e->eo_ehdr.e_ident[EI_DATA]) { - case ELFDATA2MSB: - return (DW_OBJECT_MSB); - - case ELFDATA2LSB: - case ELFDATANONE: - default: - return (DW_OBJECT_LSB); - } -} - -Dwarf_Small -_dwarf_elf_get_length_size(void *obj) -{ - Dwarf_Elf_Object *e; - - e = obj; - assert(e != NULL); - - if (gelf_getclass(e->eo_elf) == ELFCLASS32) - return (4); - else if (e->eo_ehdr.e_machine == EM_MIPS) - return (8); - else - return (4); -} - -Dwarf_Small -_dwarf_elf_get_pointer_size(void *obj) -{ - Dwarf_Elf_Object *e; - - e = obj; - assert(e != NULL); - - if (gelf_getclass(e->eo_elf) == ELFCLASS32) - return (4); - else - return (8); -} - -Dwarf_Unsigned -_dwarf_elf_get_section_count(void *obj) -{ - Dwarf_Elf_Object *e; - - e = obj; - assert(e != NULL); - - return (e->eo_seccnt); -} - -int -_dwarf_elf_load_section(void *obj, Dwarf_Half ndx, Dwarf_Small** ret_data, - int *error) -{ - Dwarf_Elf_Object *e; - Dwarf_Elf_Data *ed; - - e = obj; - assert(e != NULL); - - if (ret_data == NULL) { - if (error) - *error = DW_DLE_ARGUMENT; - return (DW_DLV_ERROR); - } - - if (ndx >= e->eo_seccnt) { - if (error) - *error = DW_DLE_NO_ENTRY; - return (DW_DLV_NO_ENTRY); - } - - ed = &e->eo_data[ndx]; - - if (ed->ed_alloc != NULL) - *ret_data = ed->ed_alloc; - else { - if (ed->ed_data == NULL) { - if (error) - *error = DW_DLE_NO_ENTRY; - return (DW_DLV_NO_ENTRY); - } - *ret_data = ed->ed_data->d_buf; - } - - return (DW_DLV_OK); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c b/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c deleted file mode 100644 index 2b64870d..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_elf_init.c +++ /dev/null @@ -1,390 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static const char *debug_name[] = { - ".debug_abbrev", - ".debug_aranges", - ".debug_frame", - ".debug_info", - ".debug_types", - ".debug_line", - ".debug_pubnames", - ".eh_frame", - ".debug_macinfo", - ".debug_str", - ".debug_loc", - ".debug_pubtypes", - ".debug_ranges", - ".debug_static_func", - ".debug_static_vars", - ".debug_typenames", - ".debug_weaknames", - NULL -}; - -static void -_dwarf_elf_apply_rel_reloc(Dwarf_Debug dbg, void *buf, uint64_t bufsize, - Elf_Data *rel_data, Elf_Data *symtab_data, int endian) -{ - Dwarf_Unsigned type; - GElf_Rel rel; - GElf_Sym sym; - size_t symndx; - uint64_t offset; - uint64_t addend; - int size, j; - - j = 0; - while (gelf_getrel(rel_data, j++, &rel) != NULL) { - symndx = GELF_R_SYM(rel.r_info); - type = GELF_R_TYPE(rel.r_info); - - if (gelf_getsym(symtab_data, symndx, &sym) == NULL) - continue; - - size = _dwarf_get_reloc_size(dbg, type); - if (size == 0) - continue; /* Unknown or non-absolute relocation. */ - - offset = rel.r_offset; - if (offset + size >= bufsize) - continue; - - if (endian == ELFDATA2MSB) - addend = _dwarf_read_msb(buf, &offset, size); - else - addend = _dwarf_read_lsb(buf, &offset, size); - - offset = rel.r_offset; - if (endian == ELFDATA2MSB) - _dwarf_write_msb(buf, &offset, sym.st_value + addend, - size); - else - _dwarf_write_lsb(buf, &offset, sym.st_value + addend, - size); - } -} - -static void -_dwarf_elf_apply_rela_reloc(Dwarf_Debug dbg, void *buf, uint64_t bufsize, - Elf_Data *rel_data, Elf_Data *symtab_data, int endian) -{ - Dwarf_Unsigned type; - GElf_Rela rela; - GElf_Sym sym; - size_t symndx; - uint64_t offset; - int size, j; - - j = 0; - while (gelf_getrela(rel_data, j++, &rela) != NULL) { - symndx = GELF_R_SYM(rela.r_info); - type = GELF_R_TYPE(rela.r_info); - - if (gelf_getsym(symtab_data, symndx, &sym) == NULL) - continue; - - offset = rela.r_offset; - size = _dwarf_get_reloc_size(dbg, type); - if (size == 0) - continue; /* Unknown or non-absolute relocation. */ - if (offset + size >= bufsize) - continue; - - if (endian == ELFDATA2MSB) - _dwarf_write_msb(buf, &offset, - sym.st_value + rela.r_addend, size); - else - _dwarf_write_lsb(buf, &offset, - sym.st_value + rela.r_addend, size); - } -} - -static int -_dwarf_elf_relocate(Dwarf_Debug dbg, Elf *elf, Dwarf_Elf_Data *ed, size_t shndx, - size_t symtab, Elf_Data *symtab_data, Dwarf_Error *error) -{ - GElf_Ehdr eh; - GElf_Shdr sh; - Elf_Scn *scn; - Elf_Data *rel; - int elferr; - - if (symtab == 0 || symtab_data == NULL) - return (DW_DLE_NONE); - - if (gelf_getehdr(elf, &eh) == NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - return (DW_DLE_ELF); - } - - scn = NULL; - (void) elf_errno(); - while ((scn = elf_nextscn(elf, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - return (DW_DLE_ELF); - } - - if ((sh.sh_type != SHT_REL && sh.sh_type != SHT_RELA) || - sh.sh_size == 0) - continue; - - if (sh.sh_info == shndx && sh.sh_link == symtab) { - if ((rel = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) { - _DWARF_SET_ERROR(NULL, error, - DW_DLE_ELF, elferr); - return (DW_DLE_ELF); - } else - return (DW_DLE_NONE); - } - - ed->ed_alloc = malloc(ed->ed_data->d_size); - if (ed->ed_alloc == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - memcpy(ed->ed_alloc, ed->ed_data->d_buf, - ed->ed_data->d_size); - if (sh.sh_type == SHT_REL) - _dwarf_elf_apply_rel_reloc(dbg, - ed->ed_alloc, ed->ed_data->d_size, - rel, symtab_data, eh.e_ident[EI_DATA]); - else - _dwarf_elf_apply_rela_reloc(dbg, - ed->ed_alloc, ed->ed_data->d_size, - rel, symtab_data, eh.e_ident[EI_DATA]); - - return (DW_DLE_NONE); - } - } - elferr = elf_errno(); - if (elferr != 0) { - DWARF_SET_ELF_ERROR(dbg, error); - return (DW_DLE_ELF); - } - - return (DW_DLE_NONE); -} - -int -_dwarf_elf_init(Dwarf_Debug dbg, Elf *elf, Dwarf_Error *error) -{ - Dwarf_Obj_Access_Interface *iface; - Dwarf_Elf_Object *e; - const char *name; - GElf_Shdr sh; - Elf_Scn *scn; - Elf_Data *symtab_data; - size_t symtab_ndx; - int elferr, i, j, n, ret; - - ret = DW_DLE_NONE; - - if ((iface = calloc(1, sizeof(*iface))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - if ((e = calloc(1, sizeof(*e))) == NULL) { - free(iface); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - e->eo_elf = elf; - e->eo_methods.get_section_info = _dwarf_elf_get_section_info; - e->eo_methods.get_byte_order = _dwarf_elf_get_byte_order; - e->eo_methods.get_length_size = _dwarf_elf_get_length_size; - e->eo_methods.get_pointer_size = _dwarf_elf_get_pointer_size; - e->eo_methods.get_section_count = _dwarf_elf_get_section_count; - e->eo_methods.load_section = _dwarf_elf_load_section; - - iface->object = e; - iface->methods = &e->eo_methods; - - dbg->dbg_iface = iface; - - if (gelf_getehdr(elf, &e->eo_ehdr) == NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - - dbg->dbg_machine = e->eo_ehdr.e_machine; - - if (!elf_getshstrndx(elf, &e->eo_strndx)) { - DWARF_SET_ELF_ERROR(dbg, error); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - - n = 0; - symtab_ndx = 0; - symtab_data = NULL; - scn = NULL; - (void) elf_errno(); - while ((scn = elf_nextscn(elf, scn)) != NULL) { - if (gelf_getshdr(scn, &sh) == NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - - if ((name = elf_strptr(elf, e->eo_strndx, sh.sh_name)) == - NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - - if (!strcmp(name, ".symtab")) { - symtab_ndx = elf_ndxscn(scn); - if ((symtab_data = elf_getdata(scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) { - _DWARF_SET_ERROR(NULL, error, - DW_DLE_ELF, elferr); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - } - continue; - } - - for (i = 0; debug_name[i] != NULL; i++) { - if (!strcmp(name, debug_name[i])) - n++; - } - } - elferr = elf_errno(); - if (elferr != 0) { - DWARF_SET_ELF_ERROR(dbg, error); - return (DW_DLE_ELF); - } - - e->eo_seccnt = n; - - if (n == 0) - return (DW_DLE_NONE); - - if ((e->eo_data = calloc(n, sizeof(Dwarf_Elf_Data))) == NULL || - (e->eo_shdr = calloc(n, sizeof(GElf_Shdr))) == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - ret = DW_DLE_MEMORY; - goto fail_cleanup; - } - - scn = NULL; - j = 0; - while ((scn = elf_nextscn(elf, scn)) != NULL && j < n) { - if (gelf_getshdr(scn, &sh) == NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - - memcpy(&e->eo_shdr[j], &sh, sizeof(sh)); - - if ((name = elf_strptr(elf, e->eo_strndx, sh.sh_name)) == - NULL) { - DWARF_SET_ELF_ERROR(dbg, error); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - - for (i = 0; debug_name[i] != NULL; i++) { - if (strcmp(name, debug_name[i])) - continue; - - (void) elf_errno(); - if ((e->eo_data[j].ed_data = elf_getdata(scn, NULL)) == - NULL) { - elferr = elf_errno(); - if (elferr != 0) { - _DWARF_SET_ERROR(dbg, error, - DW_DLE_ELF, elferr); - ret = DW_DLE_ELF; - goto fail_cleanup; - } - } - - if (_libdwarf.applyreloc) { - if (_dwarf_elf_relocate(dbg, elf, - &e->eo_data[j], elf_ndxscn(scn), symtab_ndx, - symtab_data, error) != DW_DLE_NONE) - goto fail_cleanup; - } - - j++; - } - } - - assert(j == n); - - return (DW_DLE_NONE); - -fail_cleanup: - - _dwarf_elf_deinit(dbg); - - return (ret); -} - -void -_dwarf_elf_deinit(Dwarf_Debug dbg) -{ - Dwarf_Obj_Access_Interface *iface; - Dwarf_Elf_Object *e; - int i; - - iface = dbg->dbg_iface; - assert(iface != NULL); - - e = iface->object; - assert(e != NULL); - - if (e->eo_data) { - for (i = 0; (Dwarf_Unsigned) i < e->eo_seccnt; i++) { - if (e->eo_data[i].ed_alloc) - free(e->eo_data[i].ed_alloc); - } - free(e->eo_data); - } - if (e->eo_shdr) - free(e->eo_shdr); - - free(e); - free(iface); - - dbg->dbg_iface = NULL; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_error.c b/contrib/elftoolchain/libdwarf/libdwarf_error.c deleted file mode 100644 index a7f23d16..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_error.c +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * Copyright (c) 2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -void -_dwarf_set_error(Dwarf_Debug dbg, Dwarf_Error *error, int errorcode, - int elferrorcode, const char *functionname, int linenumber) -{ - Dwarf_Error de; - - de.err_error = errorcode; - de.err_elferror = elferrorcode; - de.err_func = functionname; - de.err_line = linenumber; - de.err_msg[0] = '\0'; - - /* - * If the user supplied a destination for the error, copy the - * error descriptor over and return. Otherwise, if the debug - * context is known and has an error handler, invoke that. - * Otherwise, if a 'default' error handler was registered, - * invoke it. - */ - if (error) - *error = de; - else if (dbg && dbg->dbg_errhand) - dbg->dbg_errhand(de, dbg->dbg_errarg); - else if (_libdwarf.errhand) - _libdwarf.errhand(de, _libdwarf.errarg); - - /* No handler found, do nothing. */ -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_frame.c b/contrib/elftoolchain/libdwarf/libdwarf_frame.c deleted file mode 100644 index 7c5d1ec5..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_frame.c +++ /dev/null @@ -1,1608 +0,0 @@ -/*- - * Copyright (c) 2009-2011,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_frame_find_cie(Dwarf_FrameSec fs, Dwarf_Unsigned offset, - Dwarf_Cie *ret_cie) -{ - Dwarf_Cie cie; - - STAILQ_FOREACH(cie, &fs->fs_cielist, cie_next) { - if (cie->cie_offset == offset) - break; - } - - if (cie == NULL) - return (DW_DLE_NO_ENTRY); - - if (ret_cie != NULL) - *ret_cie = cie; - - return (DW_DLE_NONE); -} - -static int -_dwarf_frame_read_lsb_encoded(Dwarf_Debug dbg, Dwarf_Cie cie, uint64_t *val, - uint8_t *data, uint64_t *offsetp, uint8_t encode, Dwarf_Addr pc, - Dwarf_Error *error) -{ - uint8_t application; - - if (encode == DW_EH_PE_omit) - return (DW_DLE_NONE); - - application = encode & 0xf0; - encode &= 0x0f; - - switch (encode) { - case DW_EH_PE_absptr: - *val = dbg->read(data, offsetp, cie->cie_addrsize); - break; - case DW_EH_PE_uleb128: - *val = _dwarf_read_uleb128(data, offsetp); - break; - case DW_EH_PE_udata2: - *val = dbg->read(data, offsetp, 2); - break; - case DW_EH_PE_udata4: - *val = dbg->read(data, offsetp, 4); - break; - case DW_EH_PE_udata8: - *val = dbg->read(data, offsetp, 8); - break; - case DW_EH_PE_sleb128: - *val = _dwarf_read_sleb128(data, offsetp); - break; - case DW_EH_PE_sdata2: - *val = (int16_t) dbg->read(data, offsetp, 2); - break; - case DW_EH_PE_sdata4: - *val = (int32_t) dbg->read(data, offsetp, 4); - break; - case DW_EH_PE_sdata8: - *val = dbg->read(data, offsetp, 8); - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_FRAME_AUGMENTATION_UNKNOWN); - return (DW_DLE_FRAME_AUGMENTATION_UNKNOWN); - } - - if (application == DW_EH_PE_pcrel) { - /* - * Value is relative to .eh_frame section virtual addr. - */ - switch (encode) { - case DW_EH_PE_uleb128: - case DW_EH_PE_udata2: - case DW_EH_PE_udata4: - case DW_EH_PE_udata8: - *val += pc; - break; - case DW_EH_PE_sleb128: - case DW_EH_PE_sdata2: - case DW_EH_PE_sdata4: - case DW_EH_PE_sdata8: - *val = pc + (int64_t) *val; - break; - default: - /* DW_EH_PE_absptr is absolute value. */ - break; - } - } - - /* XXX Applications other than DW_EH_PE_pcrel are not handled. */ - - return (DW_DLE_NONE); -} - -static int -_dwarf_frame_parse_lsb_cie_augment(Dwarf_Debug dbg, Dwarf_Cie cie, - Dwarf_Error *error) -{ - uint8_t *aug_p, *augdata_p; - uint64_t val, offset; - uint8_t encode; - int ret; - - assert(cie->cie_augment != NULL && *cie->cie_augment == 'z'); - - /* - * Here we're only interested in the presence of augment 'R' - * and associated CIE augment data, which describes the - * encoding scheme of FDE PC begin and range. - */ - aug_p = &cie->cie_augment[1]; - augdata_p = cie->cie_augdata; - while (*aug_p != '\0') { - switch (*aug_p) { - case 'S': - break; - case 'L': - /* Skip one augment in augment data. */ - augdata_p++; - break; - case 'P': - /* Skip two augments in augment data. */ - encode = *augdata_p++; - offset = 0; - ret = _dwarf_frame_read_lsb_encoded(dbg, cie, &val, - augdata_p, &offset, encode, 0, error); - if (ret != DW_DLE_NONE) - return (ret); - augdata_p += offset; - break; - case 'R': - cie->cie_fde_encode = *augdata_p++; - break; - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_FRAME_AUGMENTATION_UNKNOWN); - return (DW_DLE_FRAME_AUGMENTATION_UNKNOWN); - } - aug_p++; - } - - return (DW_DLE_NONE); -} - -static int -_dwarf_frame_add_cie(Dwarf_Debug dbg, Dwarf_FrameSec fs, Dwarf_Section *ds, - Dwarf_Unsigned *off, Dwarf_Cie *ret_cie, Dwarf_Error *error) -{ - Dwarf_Cie cie; - uint64_t length; - int dwarf_size, ret; - char *p; - - /* Check if we already added this CIE. */ - if (_dwarf_frame_find_cie(fs, *off, &cie) != DW_DLE_NO_ENTRY) { - *off += cie->cie_length + 4; - return (DW_DLE_NONE); - } - - if ((cie = calloc(1, sizeof(struct _Dwarf_Cie))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INSERT_TAIL(&fs->fs_cielist, cie, cie_next); - - cie->cie_dbg = dbg; - cie->cie_index = fs->fs_cielen; - cie->cie_offset = *off; - - length = dbg->read(ds->ds_data, off, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = dbg->read(ds->ds_data, off, 8); - } else - dwarf_size = 4; - - if (length > ds->ds_size - *off) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD); - return (DW_DLE_DEBUG_FRAME_LENGTH_BAD); - } - - (void) dbg->read(ds->ds_data, off, dwarf_size); /* Skip CIE id. */ - cie->cie_length = length; - - cie->cie_version = dbg->read(ds->ds_data, off, 1); - if (cie->cie_version != 1 && cie->cie_version != 3 && - cie->cie_version != 4) { - DWARF_SET_ERROR(dbg, error, DW_DLE_FRAME_VERSION_BAD); - return (DW_DLE_FRAME_VERSION_BAD); - } - - cie->cie_augment = ds->ds_data + *off; - p = (char *) ds->ds_data; - while (p[(*off)++] != '\0') - ; - - /* We only recognize normal .dwarf_frame and GNU .eh_frame sections. */ - if (*cie->cie_augment != 0 && *cie->cie_augment != 'z') { - *off = cie->cie_offset + ((dwarf_size == 4) ? 4 : 12) + - cie->cie_length; - return (DW_DLE_NONE); - } - - /* Optional EH Data field for .eh_frame section. */ - if (strstr((char *)cie->cie_augment, "eh") != NULL) - cie->cie_ehdata = dbg->read(ds->ds_data, off, - dbg->dbg_pointer_size); - - /* DWARF4 added "address_size" and "segment_size". */ - if (cie->cie_version == 4) { - cie->cie_addrsize = dbg->read(ds->ds_data, off, 1); - cie->cie_segmentsize = dbg->read(ds->ds_data, off, 1); - } else { - /* - * Otherwise (DWARF[23]) we just set CIE addrsize to the - * debug context pointer size. - */ - cie->cie_addrsize = dbg->dbg_pointer_size; - } - - cie->cie_caf = _dwarf_read_uleb128(ds->ds_data, off); - cie->cie_daf = _dwarf_read_sleb128(ds->ds_data, off); - - /* Return address register. */ - if (cie->cie_version == 1) - cie->cie_ra = dbg->read(ds->ds_data, off, 1); - else - cie->cie_ra = _dwarf_read_uleb128(ds->ds_data, off); - - /* Optional CIE augmentation data for .eh_frame section. */ - if (*cie->cie_augment == 'z') { - cie->cie_auglen = _dwarf_read_uleb128(ds->ds_data, off); - cie->cie_augdata = ds->ds_data + *off; - *off += cie->cie_auglen; - /* - * XXX Use DW_EH_PE_absptr for default FDE PC start/range, - * in case _dwarf_frame_parse_lsb_cie_augment fails to - * find out the real encode. - */ - cie->cie_fde_encode = DW_EH_PE_absptr; - ret = _dwarf_frame_parse_lsb_cie_augment(dbg, cie, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - /* CIE Initial instructions. */ - cie->cie_initinst = ds->ds_data + *off; - if (dwarf_size == 4) - cie->cie_instlen = cie->cie_offset + 4 + length - *off; - else - cie->cie_instlen = cie->cie_offset + 12 + length - *off; - - *off += cie->cie_instlen; - -#ifdef FRAME_DEBUG - printf("cie:\n"); - printf("\tcie_version=%u cie_offset=%ju cie_length=%ju cie_augment=%s" - " cie_instlen=%ju cie->cie_caf=%ju cie->cie_daf=%jd off=%ju\n", - cie->cie_version, cie->cie_offset, cie->cie_length, - (char *)cie->cie_augment, cie->cie_instlen, cie->cie_caf, - cie->cie_daf, *off); -#endif - - if (ret_cie != NULL) - *ret_cie = cie; - - fs->fs_cielen++; - - return (DW_DLE_NONE); -} - -static int -_dwarf_frame_add_fde(Dwarf_Debug dbg, Dwarf_FrameSec fs, Dwarf_Section *ds, - Dwarf_Unsigned *off, int eh_frame, Dwarf_Error *error) -{ - Dwarf_Cie cie; - Dwarf_Fde fde; - Dwarf_Unsigned cieoff; - uint64_t length, val; - int dwarf_size, ret; - - if ((fde = calloc(1, sizeof(struct _Dwarf_Fde))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INSERT_TAIL(&fs->fs_fdelist, fde, fde_next); - - fde->fde_dbg = dbg; - fde->fde_fs = fs; - fde->fde_addr = ds->ds_data + *off; - fde->fde_offset = *off; - - length = dbg->read(ds->ds_data, off, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = dbg->read(ds->ds_data, off, 8); - } else - dwarf_size = 4; - - if (length > ds->ds_size - *off) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_FRAME_LENGTH_BAD); - return (DW_DLE_DEBUG_FRAME_LENGTH_BAD); - } - - fde->fde_length = length; - - if (eh_frame) { - fde->fde_cieoff = dbg->read(ds->ds_data, off, 4); - cieoff = *off - (4 + fde->fde_cieoff); - /* This delta should never be 0. */ - if (cieoff == fde->fde_offset) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_CIE_FOR_FDE); - return (DW_DLE_NO_CIE_FOR_FDE); - } - } else { - fde->fde_cieoff = dbg->read(ds->ds_data, off, dwarf_size); - cieoff = fde->fde_cieoff; - } - - if (_dwarf_frame_find_cie(fs, cieoff, &cie) == - DW_DLE_NO_ENTRY) { - ret = _dwarf_frame_add_cie(dbg, fs, ds, &cieoff, &cie, - error); - if (ret != DW_DLE_NONE) - return (ret); - } - fde->fde_cie = cie; - if (eh_frame) { - /* - * The FDE PC start/range for .eh_frame is encoded according - * to the LSB spec's extension to DWARF2. - */ - ret = _dwarf_frame_read_lsb_encoded(dbg, cie, &val, - ds->ds_data, off, cie->cie_fde_encode, ds->ds_addr + *off, - error); - if (ret != DW_DLE_NONE) - return (ret); - fde->fde_initloc = val; - /* - * FDE PC range should not be relative value to anything. - * So pass 0 for pc value. - */ - ret = _dwarf_frame_read_lsb_encoded(dbg, cie, &val, - ds->ds_data, off, cie->cie_fde_encode, 0, error); - if (ret != DW_DLE_NONE) - return (ret); - fde->fde_adrange = val; - } else { - fde->fde_initloc = dbg->read(ds->ds_data, off, - cie->cie_addrsize); - fde->fde_adrange = dbg->read(ds->ds_data, off, - cie->cie_addrsize); - } - - /* Optional FDE augmentation data for .eh_frame section. (ignored) */ - if (eh_frame && *cie->cie_augment == 'z') { - fde->fde_auglen = _dwarf_read_uleb128(ds->ds_data, off); - fde->fde_augdata = ds->ds_data + *off; - *off += fde->fde_auglen; - } - - fde->fde_inst = ds->ds_data + *off; - if (dwarf_size == 4) - fde->fde_instlen = fde->fde_offset + 4 + length - *off; - else - fde->fde_instlen = fde->fde_offset + 12 + length - *off; - - *off += fde->fde_instlen; - -#ifdef FRAME_DEBUG - printf("fde:"); - if (eh_frame) - printf("(eh_frame)"); - putchar('\n'); - printf("\tfde_offset=%ju fde_length=%ju fde_cieoff=%ju" - " fde_instlen=%ju off=%ju\n", fde->fde_offset, fde->fde_length, - fde->fde_cieoff, fde->fde_instlen, *off); -#endif - - fs->fs_fdelen++; - - return (DW_DLE_NONE); -} - -static void -_dwarf_frame_section_cleanup(Dwarf_FrameSec fs) -{ - Dwarf_Cie cie, tcie; - Dwarf_Fde fde, tfde; - - STAILQ_FOREACH_SAFE(cie, &fs->fs_cielist, cie_next, tcie) { - STAILQ_REMOVE(&fs->fs_cielist, cie, _Dwarf_Cie, cie_next); - free(cie); - } - - STAILQ_FOREACH_SAFE(fde, &fs->fs_fdelist, fde_next, tfde) { - STAILQ_REMOVE(&fs->fs_fdelist, fde, _Dwarf_Fde, fde_next); - free(fde); - } - - if (fs->fs_ciearray != NULL) - free(fs->fs_ciearray); - if (fs->fs_fdearray != NULL) - free(fs->fs_fdearray); - - free(fs); -} - -static int -_dwarf_frame_section_init(Dwarf_Debug dbg, Dwarf_FrameSec *frame_sec, - Dwarf_Section *ds, int eh_frame, Dwarf_Error *error) -{ - Dwarf_FrameSec fs; - Dwarf_Cie cie; - Dwarf_Fde fde; - uint64_t length, offset, cie_id, entry_off; - int dwarf_size, i, ret; - - assert(frame_sec != NULL); - assert(*frame_sec == NULL); - - if ((fs = calloc(1, sizeof(struct _Dwarf_FrameSec))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INIT(&fs->fs_cielist); - STAILQ_INIT(&fs->fs_fdelist); - - offset = 0; - while (offset < ds->ds_size) { - entry_off = offset; - length = dbg->read(ds->ds_data, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = dbg->read(ds->ds_data, &offset, 8); - } else - dwarf_size = 4; - - if (length > ds->ds_size - offset || - (length == 0 && !eh_frame)) { - ret = DW_DLE_DEBUG_FRAME_LENGTH_BAD; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - /* Check terminator for .eh_frame */ - if (eh_frame && length == 0) - break; - - cie_id = dbg->read(ds->ds_data, &offset, dwarf_size); - - if (eh_frame) { - /* GNU .eh_frame use CIE id 0. */ - if (cie_id == 0) - ret = _dwarf_frame_add_cie(dbg, fs, ds, - &entry_off, NULL, error); - else - ret = _dwarf_frame_add_fde(dbg, fs, ds, - &entry_off, 1, error); - } else { - /* .dwarf_frame use CIE id ~0 */ - if ((dwarf_size == 4 && cie_id == ~0U) || - (dwarf_size == 8 && cie_id == ~0ULL)) - ret = _dwarf_frame_add_cie(dbg, fs, ds, - &entry_off, NULL, error); - else - ret = _dwarf_frame_add_fde(dbg, fs, ds, - &entry_off, 0, error); - } - - if (ret != DW_DLE_NONE) - goto fail_cleanup; - - offset = entry_off; - } - - /* Create CIE array. */ - if (fs->fs_cielen > 0) { - if ((fs->fs_ciearray = malloc(sizeof(Dwarf_Cie) * - fs->fs_cielen)) == NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - i = 0; - STAILQ_FOREACH(cie, &fs->fs_cielist, cie_next) { - fs->fs_ciearray[i++] = cie; - } - assert((Dwarf_Unsigned)i == fs->fs_cielen); - } - - /* Create FDE array. */ - if (fs->fs_fdelen > 0) { - if ((fs->fs_fdearray = malloc(sizeof(Dwarf_Fde) * - fs->fs_fdelen)) == NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - i = 0; - STAILQ_FOREACH(fde, &fs->fs_fdelist, fde_next) { - fs->fs_fdearray[i++] = fde; - } - assert((Dwarf_Unsigned)i == fs->fs_fdelen); - } - - *frame_sec = fs; - - return (DW_DLE_NONE); - -fail_cleanup: - - _dwarf_frame_section_cleanup(fs); - - return (ret); -} - -static int -_dwarf_frame_run_inst(Dwarf_Debug dbg, Dwarf_Regtable3 *rt, uint8_t addr_size, - uint8_t *insts, Dwarf_Unsigned len, Dwarf_Unsigned caf, Dwarf_Signed daf, - Dwarf_Addr pc, Dwarf_Addr pc_req, Dwarf_Addr *row_pc, Dwarf_Error *error) -{ - Dwarf_Regtable3 *init_rt, *saved_rt; - uint8_t *p, *pe; - uint8_t high2, low6; - uint64_t reg, reg2, uoff, soff; - int ret; - -#define CFA rt->rt3_cfa_rule -#define INITCFA init_rt->rt3_cfa_rule -#define RL rt->rt3_rules -#define INITRL init_rt->rt3_rules - -#define CHECK_TABLE_SIZE(x) \ - do { \ - if ((x) >= rt->rt3_reg_table_size) { \ - DWARF_SET_ERROR(dbg, error, \ - DW_DLE_DF_REG_NUM_TOO_HIGH); \ - ret = DW_DLE_DF_REG_NUM_TOO_HIGH; \ - goto program_done; \ - } \ - } while(0) - -#ifdef FRAME_DEBUG - printf("frame_run_inst: (caf=%ju, daf=%jd)\n", caf, daf); -#endif - - ret = DW_DLE_NONE; - init_rt = saved_rt = NULL; - *row_pc = pc; - - /* Save a copy of the table as initial state. */ - _dwarf_frame_regtable_copy(dbg, &init_rt, rt, error); - - p = insts; - pe = p + len; - - while (p < pe) { - -#ifdef FRAME_DEBUG - printf("p=%p pe=%p pc=%#jx pc_req=%#jx\n", p, pe, pc, pc_req); -#endif - - if (*p == DW_CFA_nop) { -#ifdef FRAME_DEBUG - printf("DW_CFA_nop\n"); -#endif - p++; - continue; - } - - high2 = *p & 0xc0; - low6 = *p & 0x3f; - p++; - - if (high2 > 0) { - switch (high2) { - case DW_CFA_advance_loc: - pc += low6 * caf; -#ifdef FRAME_DEBUG - printf("DW_CFA_advance_loc(%#jx(%u))\n", pc, - low6); -#endif - if (pc_req < pc) - goto program_done; - break; - case DW_CFA_offset: - *row_pc = pc; - CHECK_TABLE_SIZE(low6); - RL[low6].dw_offset_relevant = 1; - RL[low6].dw_value_type = DW_EXPR_OFFSET; - RL[low6].dw_regnum = dbg->dbg_frame_cfa_value; - RL[low6].dw_offset_or_block_len = - _dwarf_decode_uleb128(&p) * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_offset(%jd)\n", - RL[low6].dw_offset_or_block_len); -#endif - break; - case DW_CFA_restore: - *row_pc = pc; - CHECK_TABLE_SIZE(low6); - memcpy(&RL[low6], &INITRL[low6], - sizeof(Dwarf_Regtable_Entry3)); -#ifdef FRAME_DEBUG - printf("DW_CFA_restore(%u)\n", low6); -#endif - break; - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_FRAME_INSTR_EXEC_ERROR); - ret = DW_DLE_FRAME_INSTR_EXEC_ERROR; - goto program_done; - } - - continue; - } - - switch (low6) { - case DW_CFA_set_loc: - pc = dbg->decode(&p, addr_size); -#ifdef FRAME_DEBUG - printf("DW_CFA_set_loc(pc=%#jx)\n", pc); -#endif - if (pc_req < pc) - goto program_done; - break; - case DW_CFA_advance_loc1: - pc += dbg->decode(&p, 1) * caf; -#ifdef FRAME_DEBUG - printf("DW_CFA_set_loc1(pc=%#jx)\n", pc); -#endif - if (pc_req < pc) - goto program_done; - break; - case DW_CFA_advance_loc2: - pc += dbg->decode(&p, 2) * caf; -#ifdef FRAME_DEBUG - printf("DW_CFA_set_loc2(pc=%#jx)\n", pc); -#endif - if (pc_req < pc) - goto program_done; - break; - case DW_CFA_advance_loc4: - pc += dbg->decode(&p, 4) * caf; -#ifdef FRAME_DEBUG - printf("DW_CFA_set_loc4(pc=%#jx)\n", pc); -#endif - if (pc_req < pc) - goto program_done; - break; - case DW_CFA_offset_extended: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - uoff = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 1; - RL[reg].dw_value_type = DW_EXPR_OFFSET; - RL[reg].dw_regnum = dbg->dbg_frame_cfa_value; - RL[reg].dw_offset_or_block_len = uoff * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_offset_extended(reg=%ju,uoff=%ju)\n", - reg, uoff); -#endif - break; - case DW_CFA_restore_extended: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - memcpy(&RL[reg], &INITRL[reg], - sizeof(Dwarf_Regtable_Entry3)); -#ifdef FRAME_DEBUG - printf("DW_CFA_restore_extended(%ju)\n", reg); -#endif - break; - case DW_CFA_undefined: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 0; - RL[reg].dw_regnum = dbg->dbg_frame_undefined_value; -#ifdef FRAME_DEBUG - printf("DW_CFA_undefined(%ju)\n", reg); -#endif - break; - case DW_CFA_same_value: - reg = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 0; - RL[reg].dw_regnum = dbg->dbg_frame_same_value; -#ifdef FRAME_DEBUG - printf("DW_CFA_same_value(%ju)\n", reg); -#endif - break; - case DW_CFA_register: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - reg2 = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 0; - RL[reg].dw_regnum = reg2; -#ifdef FRAME_DEBUG - printf("DW_CFA_register(reg=%ju,reg2=%ju)\n", reg, - reg2); -#endif - break; - case DW_CFA_remember_state: - _dwarf_frame_regtable_copy(dbg, &saved_rt, rt, error); -#ifdef FRAME_DEBUG - printf("DW_CFA_remember_state\n"); -#endif - break; - case DW_CFA_restore_state: - *row_pc = pc; - _dwarf_frame_regtable_copy(dbg, &rt, saved_rt, error); -#ifdef FRAME_DEBUG - printf("DW_CFA_restore_state\n"); -#endif - break; - case DW_CFA_def_cfa: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - uoff = _dwarf_decode_uleb128(&p); - CFA.dw_offset_relevant = 1; - CFA.dw_value_type = DW_EXPR_OFFSET; - CFA.dw_regnum = reg; - CFA.dw_offset_or_block_len = uoff; -#ifdef FRAME_DEBUG - printf("DW_CFA_def_cfa(reg=%ju,uoff=%ju)\n", reg, uoff); -#endif - break; - case DW_CFA_def_cfa_register: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - CFA.dw_regnum = reg; - /* - * Note that DW_CFA_def_cfa_register change the CFA - * rule register while keep the old offset. So we - * should not touch the CFA.dw_offset_relevant flag - * here. - */ -#ifdef FRAME_DEBUG - printf("DW_CFA_def_cfa_register(%ju)\n", reg); -#endif - break; - case DW_CFA_def_cfa_offset: - *row_pc = pc; - uoff = _dwarf_decode_uleb128(&p); - CFA.dw_offset_relevant = 1; - CFA.dw_value_type = DW_EXPR_OFFSET; - CFA.dw_offset_or_block_len = uoff; -#ifdef FRAME_DEBUG - printf("DW_CFA_def_cfa_offset(%ju)\n", uoff); -#endif - break; - case DW_CFA_def_cfa_expression: - *row_pc = pc; - CFA.dw_offset_relevant = 0; - CFA.dw_value_type = DW_EXPR_EXPRESSION; - CFA.dw_offset_or_block_len = _dwarf_decode_uleb128(&p); - CFA.dw_block_ptr = p; - p += CFA.dw_offset_or_block_len; -#ifdef FRAME_DEBUG - printf("DW_CFA_def_cfa_expression\n"); -#endif - break; - case DW_CFA_expression: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 0; - RL[reg].dw_value_type = DW_EXPR_EXPRESSION; - RL[reg].dw_offset_or_block_len = - _dwarf_decode_uleb128(&p); - RL[reg].dw_block_ptr = p; - p += RL[reg].dw_offset_or_block_len; -#ifdef FRAME_DEBUG - printf("DW_CFA_expression\n"); -#endif - break; - case DW_CFA_offset_extended_sf: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - soff = _dwarf_decode_sleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 1; - RL[reg].dw_value_type = DW_EXPR_OFFSET; - RL[reg].dw_regnum = dbg->dbg_frame_cfa_value; - RL[reg].dw_offset_or_block_len = soff * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_offset_extended_sf(reg=%ju,soff=%jd)\n", - reg, soff); -#endif - break; - case DW_CFA_def_cfa_sf: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - soff = _dwarf_decode_sleb128(&p); - CFA.dw_offset_relevant = 1; - CFA.dw_value_type = DW_EXPR_OFFSET; - CFA.dw_regnum = reg; - CFA.dw_offset_or_block_len = soff * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_def_cfa_sf(reg=%ju,soff=%jd)\n", reg, - soff); -#endif - break; - case DW_CFA_def_cfa_offset_sf: - *row_pc = pc; - soff = _dwarf_decode_sleb128(&p); - CFA.dw_offset_relevant = 1; - CFA.dw_value_type = DW_EXPR_OFFSET; - CFA.dw_offset_or_block_len = soff * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_def_cfa_offset_sf(soff=%jd)\n", soff); -#endif - break; - case DW_CFA_val_offset: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - uoff = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 1; - RL[reg].dw_value_type = DW_EXPR_VAL_OFFSET; - RL[reg].dw_regnum = dbg->dbg_frame_cfa_value; - RL[reg].dw_offset_or_block_len = uoff * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_val_offset(reg=%ju,uoff=%ju)\n", reg, - uoff); -#endif - break; - case DW_CFA_val_offset_sf: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - soff = _dwarf_decode_sleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 1; - RL[reg].dw_value_type = DW_EXPR_VAL_OFFSET; - RL[reg].dw_regnum = dbg->dbg_frame_cfa_value; - RL[reg].dw_offset_or_block_len = soff * daf; -#ifdef FRAME_DEBUG - printf("DW_CFA_val_offset_sf(reg=%ju,soff=%jd)\n", reg, - soff); -#endif - break; - case DW_CFA_val_expression: - *row_pc = pc; - reg = _dwarf_decode_uleb128(&p); - CHECK_TABLE_SIZE(reg); - RL[reg].dw_offset_relevant = 0; - RL[reg].dw_value_type = DW_EXPR_VAL_EXPRESSION; - RL[reg].dw_offset_or_block_len = - _dwarf_decode_uleb128(&p); - RL[reg].dw_block_ptr = p; - p += RL[reg].dw_offset_or_block_len; -#ifdef FRAME_DEBUG - printf("DW_CFA_val_expression\n"); -#endif - break; - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_FRAME_INSTR_EXEC_ERROR); - ret = DW_DLE_FRAME_INSTR_EXEC_ERROR; - goto program_done; - } - } - -program_done: - - free(init_rt->rt3_rules); - free(init_rt); - if (saved_rt) { - free(saved_rt->rt3_rules); - free(saved_rt); - } - - return (ret); - -#undef CFA -#undef INITCFA -#undef RL -#undef INITRL -#undef CHECK_TABLE_SIZE -} - -static int -_dwarf_frame_convert_inst(Dwarf_Debug dbg, uint8_t addr_size, uint8_t *insts, - Dwarf_Unsigned len, Dwarf_Unsigned *count, Dwarf_Frame_Op *fop, - Dwarf_Frame_Op3 *fop3, Dwarf_Error *error) -{ - uint8_t *p, *pe; - uint8_t high2, low6; - uint64_t reg, reg2, uoff, soff, blen; - -#define SET_BASE_OP(x) \ - do { \ - if (fop != NULL) \ - fop[*count].fp_base_op = (x) >> 6; \ - if (fop3 != NULL) \ - fop3[*count].fp_base_op = (x) >> 6; \ - } while(0) - -#define SET_EXTENDED_OP(x) \ - do { \ - if (fop != NULL) \ - fop[*count].fp_extended_op = (x); \ - if (fop3 != NULL) \ - fop3[*count].fp_extended_op = (x); \ - } while(0) - -#define SET_REGISTER(x) \ - do { \ - if (fop != NULL) \ - fop[*count].fp_register = (x); \ - if (fop3 != NULL) \ - fop3[*count].fp_register = (x); \ - } while(0) - -#define SET_OFFSET(x) \ - do { \ - if (fop != NULL) \ - fop[*count].fp_offset = (x); \ - if (fop3 != NULL) \ - fop3[*count].fp_offset_or_block_len = \ - (x); \ - } while(0) - -#define SET_INSTR_OFFSET(x) \ - do { \ - if (fop != NULL) \ - fop[*count].fp_instr_offset = (x); \ - if (fop3 != NULL) \ - fop3[*count].fp_instr_offset = (x); \ - } while(0) - -#define SET_BLOCK_LEN(x) \ - do { \ - if (fop3 != NULL) \ - fop3[*count].fp_offset_or_block_len = \ - (x); \ - } while(0) - -#define SET_EXPR_BLOCK(addr, len) \ - do { \ - if (fop3 != NULL) { \ - fop3[*count].fp_expr_block = \ - malloc((size_t) (len)); \ - if (fop3[*count].fp_expr_block == NULL) { \ - DWARF_SET_ERROR(dbg, error, \ - DW_DLE_MEMORY); \ - return (DW_DLE_MEMORY); \ - } \ - memcpy(&fop3[*count].fp_expr_block, \ - (addr), (len)); \ - } \ - } while(0) - - *count = 0; - - p = insts; - pe = p + len; - - while (p < pe) { - - SET_INSTR_OFFSET(p - insts); - - if (*p == DW_CFA_nop) { - p++; - (*count)++; - continue; - } - - high2 = *p & 0xc0; - low6 = *p & 0x3f; - p++; - - if (high2 > 0) { - switch (high2) { - case DW_CFA_advance_loc: - SET_BASE_OP(high2); - SET_OFFSET(low6); - break; - case DW_CFA_offset: - SET_BASE_OP(high2); - SET_REGISTER(low6); - uoff = _dwarf_decode_uleb128(&p); - SET_OFFSET(uoff); - break; - case DW_CFA_restore: - SET_BASE_OP(high2); - SET_REGISTER(low6); - break; - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_FRAME_INSTR_EXEC_ERROR); - return (DW_DLE_FRAME_INSTR_EXEC_ERROR); - } - - (*count)++; - continue; - } - - SET_EXTENDED_OP(low6); - - switch (low6) { - case DW_CFA_set_loc: - uoff = dbg->decode(&p, addr_size); - SET_OFFSET(uoff); - break; - case DW_CFA_advance_loc1: - uoff = dbg->decode(&p, 1); - SET_OFFSET(uoff); - break; - case DW_CFA_advance_loc2: - uoff = dbg->decode(&p, 2); - SET_OFFSET(uoff); - break; - case DW_CFA_advance_loc4: - uoff = dbg->decode(&p, 4); - SET_OFFSET(uoff); - break; - case DW_CFA_offset_extended: - case DW_CFA_def_cfa: - case DW_CFA_val_offset: - reg = _dwarf_decode_uleb128(&p); - uoff = _dwarf_decode_uleb128(&p); - SET_REGISTER(reg); - SET_OFFSET(uoff); - break; - case DW_CFA_restore_extended: - case DW_CFA_undefined: - case DW_CFA_same_value: - case DW_CFA_def_cfa_register: - reg = _dwarf_decode_uleb128(&p); - SET_REGISTER(reg); - break; - case DW_CFA_register: - reg = _dwarf_decode_uleb128(&p); - reg2 = _dwarf_decode_uleb128(&p); - SET_REGISTER(reg); - SET_OFFSET(reg2); - break; - case DW_CFA_remember_state: - case DW_CFA_restore_state: - break; - case DW_CFA_def_cfa_offset: - uoff = _dwarf_decode_uleb128(&p); - SET_OFFSET(uoff); - break; - case DW_CFA_def_cfa_expression: - blen = _dwarf_decode_uleb128(&p); - SET_BLOCK_LEN(blen); - SET_EXPR_BLOCK(p, blen); - p += blen; - break; - case DW_CFA_expression: - case DW_CFA_val_expression: - reg = _dwarf_decode_uleb128(&p); - blen = _dwarf_decode_uleb128(&p); - SET_REGISTER(reg); - SET_BLOCK_LEN(blen); - SET_EXPR_BLOCK(p, blen); - p += blen; - break; - case DW_CFA_offset_extended_sf: - case DW_CFA_def_cfa_sf: - case DW_CFA_val_offset_sf: - reg = _dwarf_decode_uleb128(&p); - soff = _dwarf_decode_sleb128(&p); - SET_REGISTER(reg); - SET_OFFSET(soff); - break; - case DW_CFA_def_cfa_offset_sf: - soff = _dwarf_decode_sleb128(&p); - SET_OFFSET(soff); - break; - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_FRAME_INSTR_EXEC_ERROR); - return (DW_DLE_FRAME_INSTR_EXEC_ERROR); - } - - (*count)++; - } - - return (DW_DLE_NONE); -} - -int -_dwarf_frame_get_fop(Dwarf_Debug dbg, uint8_t addr_size, uint8_t *insts, - Dwarf_Unsigned len, Dwarf_Frame_Op **ret_oplist, Dwarf_Signed *ret_opcnt, - Dwarf_Error *error) -{ - Dwarf_Frame_Op *oplist; - Dwarf_Unsigned count; - int ret; - - ret = _dwarf_frame_convert_inst(dbg, addr_size, insts, len, &count, - NULL, NULL, error); - if (ret != DW_DLE_NONE) - return (ret); - - if ((oplist = calloc(count, sizeof(Dwarf_Frame_Op))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - ret = _dwarf_frame_convert_inst(dbg, addr_size, insts, len, &count, - oplist, NULL, error); - if (ret != DW_DLE_NONE) { - free(oplist); - return (ret); - } - - *ret_oplist = oplist; - *ret_opcnt = count; - - return (DW_DLE_NONE); -} - -int -_dwarf_frame_regtable_copy(Dwarf_Debug dbg, Dwarf_Regtable3 **dest, - Dwarf_Regtable3 *src, Dwarf_Error *error) -{ - int i; - - assert(dest != NULL); - assert(src != NULL); - - if (*dest == NULL) { - if ((*dest = malloc(sizeof(Dwarf_Regtable3))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - (*dest)->rt3_reg_table_size = src->rt3_reg_table_size; - (*dest)->rt3_rules = malloc(src->rt3_reg_table_size * - sizeof(Dwarf_Regtable_Entry3)); - if ((*dest)->rt3_rules == NULL) { - free(*dest); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - memcpy(&(*dest)->rt3_cfa_rule, &src->rt3_cfa_rule, - sizeof(Dwarf_Regtable_Entry3)); - - for (i = 0; i < (*dest)->rt3_reg_table_size && - i < src->rt3_reg_table_size; i++) - memcpy(&(*dest)->rt3_rules[i], &src->rt3_rules[i], - sizeof(Dwarf_Regtable_Entry3)); - - for (; i < (*dest)->rt3_reg_table_size; i++) - (*dest)->rt3_rules[i].dw_regnum = - dbg->dbg_frame_undefined_value; - - return (DW_DLE_NONE); -} - -int -_dwarf_frame_get_internal_table(Dwarf_Fde fde, Dwarf_Addr pc_req, - Dwarf_Regtable3 **ret_rt, Dwarf_Addr *ret_row_pc, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Cie cie; - Dwarf_Regtable3 *rt; - Dwarf_Addr row_pc; - int i, ret; - - assert(ret_rt != NULL); - - dbg = fde->fde_dbg; - assert(dbg != NULL); - - rt = dbg->dbg_internal_reg_table; - - /* Clear the content of regtable from previous run. */ - memset(&rt->rt3_cfa_rule, 0, sizeof(Dwarf_Regtable_Entry3)); - memset(rt->rt3_rules, 0, rt->rt3_reg_table_size * - sizeof(Dwarf_Regtable_Entry3)); - - /* Set rules to initial values. */ - for (i = 0; i < rt->rt3_reg_table_size; i++) - rt->rt3_rules[i].dw_regnum = dbg->dbg_frame_rule_initial_value; - - /* Run initial instructions in CIE. */ - cie = fde->fde_cie; - assert(cie != NULL); - ret = _dwarf_frame_run_inst(dbg, rt, cie->cie_addrsize, - cie->cie_initinst, cie->cie_instlen, cie->cie_caf, cie->cie_daf, 0, - ~0ULL, &row_pc, error); - if (ret != DW_DLE_NONE) - return (ret); - - /* Run instructions in FDE. */ - if (pc_req >= fde->fde_initloc) { - ret = _dwarf_frame_run_inst(dbg, rt, cie->cie_addrsize, - fde->fde_inst, fde->fde_instlen, cie->cie_caf, - cie->cie_daf, fde->fde_initloc, pc_req, &row_pc, error); - if (ret != DW_DLE_NONE) - return (ret); - } - - *ret_rt = rt; - *ret_row_pc = row_pc; - - return (DW_DLE_NONE); -} - -void -_dwarf_frame_cleanup(Dwarf_Debug dbg) -{ - Dwarf_Regtable3 *rt; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_READ); - - if (dbg->dbg_internal_reg_table) { - rt = dbg->dbg_internal_reg_table; - free(rt->rt3_rules); - free(rt); - dbg->dbg_internal_reg_table = NULL; - } - - if (dbg->dbg_frame) { - _dwarf_frame_section_cleanup(dbg->dbg_frame); - dbg->dbg_frame = NULL; - } - - if (dbg->dbg_eh_frame) { - _dwarf_frame_section_cleanup(dbg->dbg_eh_frame); - dbg->dbg_eh_frame = NULL; - } -} - -int -_dwarf_frame_section_load(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_Section *ds; - - if ((ds = _dwarf_find_section(dbg, ".debug_frame")) != NULL) { - return (_dwarf_frame_section_init(dbg, &dbg->dbg_frame, - ds, 0, error)); - } - - return (DW_DLE_NONE); -} - -int -_dwarf_frame_section_load_eh(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_Section *ds; - - if ((ds = _dwarf_find_section(dbg, ".eh_frame")) != NULL) { - return (_dwarf_frame_section_init(dbg, &dbg->dbg_eh_frame, - ds, 1, error)); - } - - return (DW_DLE_NONE); -} - -void -_dwarf_frame_params_init(Dwarf_Debug dbg) -{ - - /* Initialise call frame related parameters. */ - dbg->dbg_frame_rule_table_size = DW_FRAME_LAST_REG_NUM; - dbg->dbg_frame_rule_initial_value = DW_FRAME_REG_INITIAL_VALUE; - dbg->dbg_frame_cfa_value = DW_FRAME_CFA_COL3; - dbg->dbg_frame_same_value = DW_FRAME_SAME_VAL; - dbg->dbg_frame_undefined_value = DW_FRAME_UNDEFINED_VAL; -} - -int -_dwarf_frame_interal_table_init(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_Regtable3 *rt; - - if (dbg->dbg_internal_reg_table != NULL) - return (DW_DLE_NONE); - - /* Initialise internal register table. */ - if ((rt = calloc(1, sizeof(Dwarf_Regtable3))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - rt->rt3_reg_table_size = dbg->dbg_frame_rule_table_size; - if ((rt->rt3_rules = calloc(rt->rt3_reg_table_size, - sizeof(Dwarf_Regtable_Entry3))) == NULL) { - free(rt); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - dbg->dbg_internal_reg_table = rt; - - return (DW_DLE_NONE); -} - -#define _FDE_INST_INIT_SIZE 128 - -int -_dwarf_frame_fde_add_inst(Dwarf_P_Fde fde, Dwarf_Small op, Dwarf_Unsigned val1, - Dwarf_Unsigned val2, Dwarf_Error *error) -{ - Dwarf_P_Debug dbg; - uint8_t high2, low6; - int ret; - -#define ds fde -#define ds_data fde_inst -#define ds_cap fde_instcap -#define ds_size fde_instlen - - assert(fde != NULL && fde->fde_dbg != NULL); - dbg = fde->fde_dbg; - - if (fde->fde_inst == NULL) { - fde->fde_instcap = _FDE_INST_INIT_SIZE; - fde->fde_instlen = 0; - if ((fde->fde_inst = malloc((size_t) fde->fde_instcap)) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - assert(fde->fde_instcap != 0); - - RCHECK(WRITE_VALUE(op, 1)); - if (op == DW_CFA_nop) - return (DW_DLE_NONE); - - high2 = op & 0xc0; - low6 = op & 0x3f; - - if (high2 > 0) { - switch (high2) { - case DW_CFA_advance_loc: - case DW_CFA_restore: - break; - case DW_CFA_offset: - RCHECK(WRITE_ULEB128(val1)); - break; - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_FRAME_INSTR_EXEC_ERROR); - return (DW_DLE_FRAME_INSTR_EXEC_ERROR); - } - return (DW_DLE_NONE); - } - - switch (low6) { - case DW_CFA_set_loc: - RCHECK(WRITE_VALUE(val1, dbg->dbg_pointer_size)); - break; - case DW_CFA_advance_loc1: - RCHECK(WRITE_VALUE(val1, 1)); - break; - case DW_CFA_advance_loc2: - RCHECK(WRITE_VALUE(val1, 2)); - break; - case DW_CFA_advance_loc4: - RCHECK(WRITE_VALUE(val1, 4)); - break; - case DW_CFA_offset_extended: - case DW_CFA_def_cfa: - case DW_CFA_register: - RCHECK(WRITE_ULEB128(val1)); - RCHECK(WRITE_ULEB128(val2)); - break; - case DW_CFA_restore_extended: - case DW_CFA_undefined: - case DW_CFA_same_value: - case DW_CFA_def_cfa_register: - case DW_CFA_def_cfa_offset: - RCHECK(WRITE_ULEB128(val1)); - break; - case DW_CFA_remember_state: - case DW_CFA_restore_state: - break; - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_FRAME_INSTR_EXEC_ERROR); - return (DW_DLE_FRAME_INSTR_EXEC_ERROR); - } - - return (DW_DLE_NONE); - -gen_fail: - return (ret); - -#undef ds -#undef ds_data -#undef ds_cap -#undef ds_size -} - -static int -_dwarf_frame_gen_cie(Dwarf_P_Debug dbg, Dwarf_P_Section ds, Dwarf_P_Cie cie, - Dwarf_Error *error) -{ - Dwarf_Unsigned len; - uint64_t offset; - int ret; - - assert(dbg != NULL && ds != NULL && cie != NULL); - - cie->cie_offset = offset = ds->ds_size; - cie->cie_length = 0; - cie->cie_version = 1; - - /* Length placeholder. */ - RCHECK(WRITE_VALUE(cie->cie_length, 4)); - - /* .debug_frame use CIE id ~0. */ - RCHECK(WRITE_VALUE(~0U, 4)); - - /* .debug_frame version is 1. (DWARF2) */ - RCHECK(WRITE_VALUE(cie->cie_version, 1)); - - /* Write augmentation, if present. */ - if (cie->cie_augment != NULL) - RCHECK(WRITE_BLOCK(cie->cie_augment, - strlen((char *) cie->cie_augment) + 1)); - else - RCHECK(WRITE_VALUE(0, 1)); - - /* Write caf, daf and ra. */ - RCHECK(WRITE_ULEB128(cie->cie_caf)); - RCHECK(WRITE_SLEB128(cie->cie_daf)); - RCHECK(WRITE_VALUE(cie->cie_ra, 1)); - - /* Write initial instructions, if present. */ - if (cie->cie_initinst != NULL) - RCHECK(WRITE_BLOCK(cie->cie_initinst, cie->cie_instlen)); - - /* Add padding. */ - len = ds->ds_size - cie->cie_offset - 4; - cie->cie_length = roundup(len, dbg->dbg_pointer_size); - while (len++ < cie->cie_length) - RCHECK(WRITE_VALUE(DW_CFA_nop, 1)); - - /* Fill in the length field. */ - dbg->write(ds->ds_data, &offset, cie->cie_length, 4); - - return (DW_DLE_NONE); - -gen_fail: - return (ret); -} - -static int -_dwarf_frame_gen_fde(Dwarf_P_Debug dbg, Dwarf_P_Section ds, - Dwarf_Rel_Section drs, Dwarf_P_Fde fde, Dwarf_Error *error) -{ - Dwarf_Unsigned len; - uint64_t offset; - int ret; - - assert(dbg != NULL && ds != NULL && drs != NULL); - assert(fde != NULL && fde->fde_cie != NULL); - - fde->fde_offset = offset = ds->ds_size; - fde->fde_length = 0; - fde->fde_cieoff = fde->fde_cie->cie_offset; - - /* Length placeholder. */ - RCHECK(WRITE_VALUE(fde->fde_length, 4)); - - /* Write CIE pointer. */ - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, 4, - ds->ds_size, 0, fde->fde_cieoff, ".debug_frame", error)); - - /* Write FDE initial location. */ - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, - dbg->dbg_pointer_size, ds->ds_size, fde->fde_symndx, - fde->fde_initloc, NULL, error)); - - /* - * Write FDE address range. Use a pair of relocation entries if - * application provided end symbol index. Otherwise write the - * length without assoicating any relocation info. - */ - if (fde->fde_esymndx > 0) - RCHECK(_dwarf_reloc_entry_add_pair(dbg, drs, ds, - dbg->dbg_pointer_size, ds->ds_size, fde->fde_symndx, - fde->fde_esymndx, fde->fde_initloc, fde->fde_eoff, error)); - else - RCHECK(WRITE_VALUE(fde->fde_adrange, dbg->dbg_pointer_size)); - - /* Write FDE frame instructions. */ - RCHECK(WRITE_BLOCK(fde->fde_inst, fde->fde_instlen)); - - /* Add padding. */ - len = ds->ds_size - fde->fde_offset - 4; - fde->fde_length = roundup(len, dbg->dbg_pointer_size); - while (len++ < fde->fde_length) - RCHECK(WRITE_VALUE(DW_CFA_nop, 1)); - - /* Fill in the length field. */ - dbg->write(ds->ds_data, &offset, fde->fde_length, 4); - - return (DW_DLE_NONE); - -gen_fail: - return (ret); -} - -int -_dwarf_frame_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Rel_Section drs; - Dwarf_P_Cie cie; - Dwarf_P_Fde fde; - int ret; - - if (STAILQ_EMPTY(&dbg->dbgp_cielist)) - return (DW_DLE_NONE); - - /* Create .debug_frame section. */ - if ((ret = _dwarf_section_init(dbg, &ds, ".debug_frame", 0, error)) != - DW_DLE_NONE) - goto gen_fail0; - - /* Create relocation section for .debug_frame */ - RCHECK(_dwarf_reloc_section_init(dbg, &drs, ds, error)); - - /* Generate list of CIE. */ - STAILQ_FOREACH(cie, &dbg->dbgp_cielist, cie_next) - RCHECK(_dwarf_frame_gen_cie(dbg, ds, cie, error)); - - /* Generate list of FDE. */ - STAILQ_FOREACH(fde, &dbg->dbgp_fdelist, fde_next) - RCHECK(_dwarf_frame_gen_fde(dbg, ds, drs, fde, error)); - - /* Inform application the creation of .debug_frame ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - /* Finalize relocation section for .debug_frame */ - RCHECK(_dwarf_reloc_section_finalize(dbg, drs, error)); - - return (DW_DLE_NONE); - -gen_fail: - _dwarf_reloc_section_free(dbg, &drs); - -gen_fail0: - _dwarf_section_free(dbg, &ds); - - return (ret); -} - -void -_dwarf_frame_pro_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_P_Cie cie, tcie; - Dwarf_P_Fde fde, tfde; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - STAILQ_FOREACH_SAFE(cie, &dbg->dbgp_cielist, cie_next, tcie) { - STAILQ_REMOVE(&dbg->dbgp_cielist, cie, _Dwarf_Cie, cie_next); - if (cie->cie_augment) - free(cie->cie_augment); - if (cie->cie_initinst) - free(cie->cie_initinst); - free(cie); - } - dbg->dbgp_cielen = 0; - - STAILQ_FOREACH_SAFE(fde, &dbg->dbgp_fdelist, fde_next, tfde) { - STAILQ_REMOVE(&dbg->dbgp_fdelist, fde, _Dwarf_Fde, fde_next); - if (fde->fde_inst != NULL) - free(fde->fde_inst); - free(fde); - } - dbg->dbgp_fdelen = 0; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_info.c b/contrib/elftoolchain/libdwarf/libdwarf_info.c deleted file mode 100644 index 345b4ab3..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_info.c +++ /dev/null @@ -1,383 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2010,2011,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -int -_dwarf_info_first_cu(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_CU cu; - int ret; - - assert(dbg->dbg_cu_current == NULL); - cu = STAILQ_FIRST(&dbg->dbg_cu); - if (cu != NULL) { - dbg->dbg_cu_current = cu; - return (DW_DLE_NONE); - } - - if (dbg->dbg_info_loaded) - return (DW_DLE_NO_ENTRY); - - dbg->dbg_info_off = 0; - ret = _dwarf_info_load(dbg, 0, 1, error); - if (ret != DW_DLE_NONE) - return (ret); - - dbg->dbg_cu_current = STAILQ_FIRST(&dbg->dbg_cu); - - return (DW_DLE_NONE); -} - -int -_dwarf_info_first_tu(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_CU tu; - int ret; - - assert(dbg->dbg_tu_current == NULL); - tu = STAILQ_FIRST(&dbg->dbg_tu); - if (tu != NULL) { - dbg->dbg_tu_current = tu; - return (DW_DLE_NONE); - } - - if (dbg->dbg_types_loaded) - return (DW_DLE_NO_ENTRY); - - dbg->dbg_types_off = 0; - ret = _dwarf_info_load(dbg, 0, 0, error); - if (ret != DW_DLE_NONE) - return (ret); - - dbg->dbg_tu_current = STAILQ_FIRST(&dbg->dbg_tu); - - return (DW_DLE_NONE); -} - -int -_dwarf_info_next_cu(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_CU cu; - int ret; - - assert(dbg->dbg_cu_current != NULL); - cu = STAILQ_NEXT(dbg->dbg_cu_current, cu_next); - if (cu != NULL) { - dbg->dbg_cu_current = cu; - return (DW_DLE_NONE); - } - - if (dbg->dbg_info_loaded) { - dbg->dbg_cu_current = NULL; - return (DW_DLE_NO_ENTRY); - } - - ret = _dwarf_info_load(dbg, 0, 1, error); - if (ret != DW_DLE_NONE) - return (ret); - - dbg->dbg_cu_current = STAILQ_NEXT(dbg->dbg_cu_current, cu_next); - - return (DW_DLE_NONE); -} - -int -_dwarf_info_next_tu(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_CU cu; - int ret; - - assert(dbg->dbg_tu_current != NULL); - cu = STAILQ_NEXT(dbg->dbg_tu_current, cu_next); - if (cu != NULL) { - dbg->dbg_tu_current = cu; - return (DW_DLE_NONE); - } - - if (dbg->dbg_types_loaded) { - dbg->dbg_tu_current = NULL; - return (DW_DLE_NO_ENTRY); - } - - ret = _dwarf_info_load(dbg, 0, 0, error); - if (ret != DW_DLE_NONE) - return (ret); - - dbg->dbg_tu_current = STAILQ_NEXT(dbg->dbg_tu_current, cu_next); - - return (DW_DLE_NONE); -} - -int -_dwarf_info_load(Dwarf_Debug dbg, Dwarf_Bool load_all, Dwarf_Bool is_info, - Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_Section *ds; - int dwarf_size, ret; - uint64_t length; - uint64_t next_offset; - uint64_t offset; - - ret = DW_DLE_NONE; - - if (is_info) { - if (dbg->dbg_info_loaded) - return (ret); - offset = dbg->dbg_info_off; - ds = dbg->dbg_info_sec; - if (ds == NULL) - return (DW_DLE_NO_ENTRY); - } else { - if (dbg->dbg_types_loaded) - return (ret); - offset = dbg->dbg_types_off; - ds = dbg->dbg_types_sec; - if (ds == NULL) - return (DW_DLE_NO_ENTRY); - } - - while (offset < ds->ds_size) { - if ((cu = calloc(1, sizeof(struct _Dwarf_CU))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - cu->cu_dbg = dbg; - cu->cu_is_info = is_info; - cu->cu_offset = offset; - - length = dbg->read(ds->ds_data, &offset, 4); - if (length == 0xffffffff) { - length = dbg->read(ds->ds_data, &offset, 8); - dwarf_size = 8; - } else - dwarf_size = 4; - cu->cu_dwarf_size = dwarf_size; - - /* - * Check if there is enough ELF data for this CU. This assumes - * that libelf gives us the entire section in one Elf_Data - * object. - */ - if (length > ds->ds_size - offset) { - free(cu); - DWARF_SET_ERROR(dbg, error, DW_DLE_CU_LENGTH_ERROR); - return (DW_DLE_CU_LENGTH_ERROR); - } - - /* Compute the offset to the next compilation unit: */ - next_offset = offset + length; - if (is_info) - dbg->dbg_info_off = next_offset; - else - dbg->dbg_types_off = next_offset; - - /* Initialise the compilation unit. */ - cu->cu_length = length; - cu->cu_length_size = (dwarf_size == 4 ? 4 : 12); - cu->cu_version = dbg->read(ds->ds_data, &offset, 2); - cu->cu_abbrev_offset = dbg->read(ds->ds_data, &offset, - dwarf_size); - cu->cu_abbrev_offset_cur = cu->cu_abbrev_offset; - cu->cu_pointer_size = dbg->read(ds->ds_data, &offset, 1); - cu->cu_next_offset = next_offset; - - /* .debug_types extra fields. */ - if (!is_info) { - memcpy(cu->cu_type_sig.signature, - (char *) ds->ds_data + offset, 8); - offset += 8; - cu->cu_type_offset = dbg->read(ds->ds_data, &offset, - dwarf_size); - } - - /* Add the compilation unit to the list. */ - if (is_info) - STAILQ_INSERT_TAIL(&dbg->dbg_cu, cu, cu_next); - else - STAILQ_INSERT_TAIL(&dbg->dbg_tu, cu, cu_next); - - if (cu->cu_version < 2 || cu->cu_version > 4) { - DWARF_SET_ERROR(dbg, error, DW_DLE_VERSION_STAMP_ERROR); - ret = DW_DLE_VERSION_STAMP_ERROR; - break; - } - - cu->cu_1st_offset = offset; - - offset = next_offset; - - if (!load_all) - break; - } - - if (is_info) { - if ((Dwarf_Unsigned) dbg->dbg_info_off >= ds->ds_size) - dbg->dbg_info_loaded = 1; - } else { - if ((Dwarf_Unsigned) dbg->dbg_types_off >= ds->ds_size) - dbg->dbg_types_loaded = 1; - } - - return (ret); -} - -void -_dwarf_info_cleanup(Dwarf_Debug dbg) -{ - Dwarf_CU cu, tcu; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_READ); - - STAILQ_FOREACH_SAFE(cu, &dbg->dbg_cu, cu_next, tcu) { - STAILQ_REMOVE(&dbg->dbg_cu, cu, _Dwarf_CU, cu_next); - _dwarf_abbrev_cleanup(cu); - if (cu->cu_lineinfo != NULL) { - _dwarf_lineno_cleanup(cu->cu_lineinfo); - cu->cu_lineinfo = NULL; - } - free(cu); - } - - _dwarf_type_unit_cleanup(dbg); -} - -void -_dwarf_type_unit_cleanup(Dwarf_Debug dbg) -{ - Dwarf_CU cu, tcu; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_READ); - - STAILQ_FOREACH_SAFE(cu, &dbg->dbg_tu, cu_next, tcu) { - STAILQ_REMOVE(&dbg->dbg_tu, cu, _Dwarf_CU, cu_next); - _dwarf_abbrev_cleanup(cu); - free(cu); - } -} - -int -_dwarf_info_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Rel_Section drs; - Dwarf_Unsigned offset; - Dwarf_CU cu; - int ret; - - assert(dbg != NULL && dbg->write_alloc != NULL); - - if (dbg->dbgp_root_die == NULL) - return (DW_DLE_NONE); - - /* Create the single CU for this debugging object. */ - if ((cu = calloc(1, sizeof(struct _Dwarf_CU))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - cu->cu_dbg = dbg; - cu->cu_version = 2; /* DWARF2 */ - cu->cu_pointer_size = dbg->dbg_pointer_size; - STAILQ_INSERT_TAIL(&dbg->dbg_cu, cu, cu_next); - - /* Create .debug_info section. */ - if ((ret = _dwarf_section_init(dbg, &dbg->dbgp_info, ".debug_info", 0, - error)) != DW_DLE_NONE) - goto gen_fail1; - ds = dbg->dbgp_info; - - /* Create relocation section for .debug_init */ - if ((ret = _dwarf_reloc_section_init(dbg, &drs, ds, error)) != - DW_DLE_NONE) - goto gen_fail0; - - /* Length placeholder. (We only use 32-bit DWARF format) */ - RCHECK(WRITE_VALUE(cu->cu_length, 4)); - - /* Write CU version */ - RCHECK(WRITE_VALUE(cu->cu_version, 2)); - - /* - * Write abbrev offset. (always 0, we only support single CU) - * Also generate a relocation entry for this offset. - */ - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, 4, - ds->ds_size, 0, cu->cu_abbrev_offset, ".debug_abbrev", error)); - - /* Pointer size. */ - RCHECK(WRITE_VALUE(cu->cu_pointer_size, 1)); - - /* Transform the DIE(s) of this CU. */ - RCHECK(_dwarf_die_gen(dbg, cu, drs, error)); - - /* Now we can fill in the length of this CU. */ - cu->cu_length = ds->ds_size - 4; - offset = 0; - dbg->write(ds->ds_data, &offset, cu->cu_length, 4); - - /* Inform application the creation of .debug_info ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - /* - * Inform application the creation of relocation section for - * .debug_info. - */ - RCHECK(_dwarf_reloc_section_finalize(dbg, drs, error)); - - return (DW_DLE_NONE); - -gen_fail: - _dwarf_reloc_section_free(dbg, &drs); - -gen_fail0: - _dwarf_section_free(dbg, &dbg->dbgp_info); - -gen_fail1: - STAILQ_REMOVE(&dbg->dbg_cu, cu, _Dwarf_CU, cu_next); - free(cu); - - return (ret); -} - -void -_dwarf_info_pro_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_CU cu; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - cu = STAILQ_FIRST(&dbg->dbg_cu); - if (cu != NULL) { - STAILQ_REMOVE(&dbg->dbg_cu, cu, _Dwarf_CU, cu_next); - _dwarf_abbrev_cleanup(cu); - free(cu); - } -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_init.c b/contrib/elftoolchain/libdwarf/libdwarf_init.c deleted file mode 100644 index 90a6b833..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_init.c +++ /dev/null @@ -1,315 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_consumer_init(Dwarf_Debug dbg, Dwarf_Error *error) -{ - const Dwarf_Obj_Access_Methods *m; - Dwarf_Obj_Access_Section sec; - void *obj; - Dwarf_Unsigned cnt; - Dwarf_Half i; - int ret; - - assert(dbg != NULL); - assert(dbg->dbg_iface != NULL); - - m = dbg->dbg_iface->methods; - obj = dbg->dbg_iface->object; - - assert(m != NULL); - assert(obj != NULL); - - if (m->get_byte_order(obj) == DW_OBJECT_MSB) { - dbg->read = _dwarf_read_msb; - dbg->write = _dwarf_write_msb; - dbg->decode = _dwarf_decode_msb; - } else { - dbg->read = _dwarf_read_lsb; - dbg->write = _dwarf_write_lsb; - dbg->decode = _dwarf_decode_lsb; - } - - dbg->dbg_pointer_size = m->get_pointer_size(obj); - dbg->dbg_offset_size = m->get_length_size(obj); - - cnt = m->get_section_count(obj); - - if (cnt == 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_INFO_NULL); - return (DW_DLE_DEBUG_INFO_NULL); - } - - dbg->dbg_seccnt = cnt; - - if ((dbg->dbg_section = calloc(cnt + 1, sizeof(Dwarf_Section))) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - for (i = 0; i < cnt; i++) { - if (m->get_section_info(obj, i, &sec, &ret) != DW_DLV_OK) { - DWARF_SET_ERROR(dbg, error, ret); - return (ret); - } - - dbg->dbg_section[i].ds_addr = sec.addr; - dbg->dbg_section[i].ds_size = sec.size; - dbg->dbg_section[i].ds_name = sec.name; - - if (m->load_section(obj, i, &dbg->dbg_section[i].ds_data, &ret) - != DW_DLV_OK) { - DWARF_SET_ERROR(dbg, error, ret); - return (ret); - } - } - dbg->dbg_section[cnt].ds_name = NULL; - - dbg->dbg_info_sec = _dwarf_find_section(dbg, ".debug_info"); - - /* Try to find the optional DWARF4 .debug_types section. */ - dbg->dbg_types_sec = _dwarf_find_next_types_section(dbg, NULL); - - /* Initialise call frame API related parameters. */ - _dwarf_frame_params_init(dbg); - - return (DW_DLV_OK); -} - -static int -_dwarf_producer_init(Dwarf_Debug dbg, Dwarf_Unsigned pf, Dwarf_Error *error) -{ - - /* Producer only support DWARF2 which has fixed 32bit offset. */ - dbg->dbg_offset_size = 4; - - if (pf & DW_DLC_SIZE_32 && pf & DW_DLC_SIZE_64) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLE_ARGUMENT); - } - - if ((pf & DW_DLC_SIZE_32) == 0 && (pf & DW_DLC_SIZE_64) == 0) - pf |= DW_DLC_SIZE_32; - - if (pf & DW_DLC_SIZE_64) - dbg->dbg_pointer_size = 8; - else - dbg->dbg_pointer_size = 4; - - if (pf & DW_DLC_ISA_IA64 && pf & DW_DLC_ISA_MIPS) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLE_ARGUMENT); - } - - if (pf & DW_DLC_ISA_IA64) - dbg->dbgp_isa = DW_ISA_IA64; - else - dbg->dbgp_isa = DW_ISA_MIPS; - - if (pf & DW_DLC_TARGET_BIGENDIAN && pf & DW_DLC_TARGET_LITTLEENDIAN) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLE_ARGUMENT); - } - - if ((pf & DW_DLC_TARGET_BIGENDIAN) == 0 && - (pf & DW_DLC_TARGET_LITTLEENDIAN) == 0) { -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_BIG_ENDIAN - pf |= DW_DLC_TARGET_BIGENDIAN; -#else - pf |= DW_DLC_TARGET_LITTLEENDIAN; -#endif - } - - if (pf & DW_DLC_TARGET_BIGENDIAN) { - dbg->write = _dwarf_write_msb; - dbg->write_alloc = _dwarf_write_msb_alloc; - } else if (pf & DW_DLC_TARGET_LITTLEENDIAN) { - dbg->write = _dwarf_write_lsb; - dbg->write_alloc = _dwarf_write_lsb_alloc; - } else - assert(0); - - if (pf & DW_DLC_STREAM_RELOCATIONS && - pf & DW_DLC_SYMBOLIC_RELOCATIONS) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ARGUMENT); - return (DW_DLE_ARGUMENT); - } - - if ((pf & DW_DLC_STREAM_RELOCATIONS) == 0 && - (pf & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) - pf |= DW_DLC_STREAM_RELOCATIONS; - - dbg->dbgp_flags = pf; - - STAILQ_INIT(&dbg->dbgp_dielist); - STAILQ_INIT(&dbg->dbgp_pelist); - STAILQ_INIT(&dbg->dbgp_seclist); - STAILQ_INIT(&dbg->dbgp_drslist); - STAILQ_INIT(&dbg->dbgp_cielist); - STAILQ_INIT(&dbg->dbgp_fdelist); - - if ((dbg->dbgp_lineinfo = calloc(1, sizeof(struct _Dwarf_LineInfo))) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INIT(&dbg->dbgp_lineinfo->li_lflist); - STAILQ_INIT(&dbg->dbgp_lineinfo->li_lnlist); - - if ((dbg->dbgp_as = calloc(1, sizeof(struct _Dwarf_ArangeSet))) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INIT(&dbg->dbgp_as->as_arlist); - - return (DW_DLE_NONE); -} - -int -_dwarf_init(Dwarf_Debug dbg, Dwarf_Unsigned pro_flags, Dwarf_Handler errhand, - Dwarf_Ptr errarg, Dwarf_Error *error) -{ - int ret; - - ret = DW_DLE_NONE; - - /* - * Set the error handler fields early, so that the application - * is notified of initialization errors. - */ - dbg->dbg_errhand = errhand; - dbg->dbg_errarg = errarg; - - STAILQ_INIT(&dbg->dbg_cu); - STAILQ_INIT(&dbg->dbg_tu); - STAILQ_INIT(&dbg->dbg_rllist); - STAILQ_INIT(&dbg->dbg_aslist); - STAILQ_INIT(&dbg->dbg_mslist); - - if (dbg->dbg_mode == DW_DLC_READ || dbg->dbg_mode == DW_DLC_RDWR) { - ret = _dwarf_consumer_init(dbg, error); - if (ret != DW_DLE_NONE) { - _dwarf_deinit(dbg); - return (ret); - } - } - - if (dbg->dbg_mode == DW_DLC_WRITE) { - ret = _dwarf_producer_init(dbg, pro_flags, error); - if (ret != DW_DLE_NONE) { - _dwarf_deinit(dbg); - return (ret); - } - } - - /* - * Initialise internal string table. - */ - if ((ret = _dwarf_strtab_init(dbg, error)) != DW_DLE_NONE) - return (ret); - - return (DW_DLE_NONE); -} - -static void -_dwarf_producer_deinit(Dwarf_P_Debug dbg) -{ - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - _dwarf_info_pro_cleanup(dbg); - _dwarf_die_pro_cleanup(dbg); - _dwarf_expr_cleanup(dbg); - _dwarf_lineno_pro_cleanup(dbg); - _dwarf_frame_pro_cleanup(dbg); - _dwarf_arange_pro_cleanup(dbg); - _dwarf_macinfo_pro_cleanup(dbg); - _dwarf_strtab_cleanup(dbg); - _dwarf_nametbl_pro_cleanup(&dbg->dbgp_pubs); - _dwarf_nametbl_pro_cleanup(&dbg->dbgp_weaks); - _dwarf_nametbl_pro_cleanup(&dbg->dbgp_funcs); - _dwarf_nametbl_pro_cleanup(&dbg->dbgp_types); - _dwarf_nametbl_pro_cleanup(&dbg->dbgp_vars); - _dwarf_section_cleanup(dbg); - _dwarf_reloc_cleanup(dbg); -} - -static void -_dwarf_consumer_deinit(Dwarf_Debug dbg) -{ - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_READ); - - _dwarf_info_cleanup(dbg); - _dwarf_ranges_cleanup(dbg); - _dwarf_frame_cleanup(dbg); - _dwarf_arange_cleanup(dbg); - _dwarf_macinfo_cleanup(dbg); - _dwarf_strtab_cleanup(dbg); - _dwarf_nametbl_cleanup(&dbg->dbg_globals); - _dwarf_nametbl_cleanup(&dbg->dbg_pubtypes); - _dwarf_nametbl_cleanup(&dbg->dbg_weaks); - _dwarf_nametbl_cleanup(&dbg->dbg_funcs); - _dwarf_nametbl_cleanup(&dbg->dbg_vars); - _dwarf_nametbl_cleanup(&dbg->dbg_types); - - free(dbg->dbg_section); -} - -void -_dwarf_deinit(Dwarf_Debug dbg) -{ - - assert(dbg != NULL); - - if (dbg->dbg_mode == DW_DLC_READ) - _dwarf_consumer_deinit(dbg); - else if (dbg->dbg_mode == DW_DLC_WRITE) - _dwarf_producer_deinit(dbg); -} - -int -_dwarf_alloc(Dwarf_Debug *ret_dbg, int mode, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - - if ((dbg = calloc(sizeof(struct _Dwarf_Debug), 1)) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - dbg->dbg_mode = mode; - - *ret_dbg = dbg; - - return (DW_DLE_NONE); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_lineno.c b/contrib/elftoolchain/libdwarf/libdwarf_lineno.c deleted file mode 100644 index 1e911d51..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_lineno.c +++ /dev/null @@ -1,777 +0,0 @@ -/*- - * Copyright (c) 2009,2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_lineno_add_file(Dwarf_LineInfo li, uint8_t **p, const char *compdir, - Dwarf_Error *error, Dwarf_Debug dbg) -{ - Dwarf_LineFile lf; - const char *dirname; - uint8_t *src; - int slen; - - src = *p; - - if ((lf = malloc(sizeof(struct _Dwarf_LineFile))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - lf->lf_fullpath = NULL; - lf->lf_fname = (char *) src; - src += strlen(lf->lf_fname) + 1; - lf->lf_dirndx = _dwarf_decode_uleb128(&src); - if (lf->lf_dirndx > li->li_inclen) { - free(lf); - DWARF_SET_ERROR(dbg, error, DW_DLE_DIR_INDEX_BAD); - return (DW_DLE_DIR_INDEX_BAD); - } - - /* Make full pathname if need. */ - if (*lf->lf_fname != '/') { - dirname = compdir; - if (lf->lf_dirndx > 0) - dirname = li->li_incdirs[lf->lf_dirndx - 1]; - if (dirname != NULL) { - slen = strlen(dirname) + strlen(lf->lf_fname) + 2; - if ((lf->lf_fullpath = malloc(slen)) == NULL) { - free(lf); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - snprintf(lf->lf_fullpath, slen, "%s/%s", dirname, - lf->lf_fname); - } - } - - lf->lf_mtime = _dwarf_decode_uleb128(&src); - lf->lf_size = _dwarf_decode_uleb128(&src); - STAILQ_INSERT_TAIL(&li->li_lflist, lf, lf_next); - li->li_lflen++; - - *p = src; - - return (DW_DLE_NONE); -} - -static int -_dwarf_lineno_run_program(Dwarf_CU cu, Dwarf_LineInfo li, uint8_t *p, - uint8_t *pe, const char *compdir, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Line ln, tln; - uint64_t address, file, line, column, opsize; - int is_stmt, basic_block, end_sequence; - int ret; - -#define RESET_REGISTERS \ - do { \ - address = 0; \ - file = 1; \ - line = 1; \ - column = 0; \ - is_stmt = li->li_defstmt; \ - basic_block = 0; \ - end_sequence = 0; \ - } while(0) - -#define APPEND_ROW \ - do { \ - ln = malloc(sizeof(struct _Dwarf_Line)); \ - if (ln == NULL) { \ - ret = DW_DLE_MEMORY; \ - DWARF_SET_ERROR(dbg, error, ret); \ - goto prog_fail; \ - } \ - ln->ln_li = li; \ - ln->ln_addr = address; \ - ln->ln_symndx = 0; \ - ln->ln_fileno = file; \ - ln->ln_lineno = line; \ - ln->ln_column = column; \ - ln->ln_bblock = basic_block; \ - ln->ln_stmt = is_stmt; \ - ln->ln_endseq = end_sequence; \ - STAILQ_INSERT_TAIL(&li->li_lnlist, ln, ln_next);\ - li->li_lnlen++; \ - } while(0) - -#define LINE(x) (li->li_lbase + (((x) - li->li_opbase) % li->li_lrange)) -#define ADDRESS(x) ((((x) - li->li_opbase) / li->li_lrange) * li->li_minlen) - - dbg = cu->cu_dbg; - - /* - * Set registers to their default values. - */ - RESET_REGISTERS; - - /* - * Start line number program. - */ - while (p < pe) { - if (*p == 0) { - - /* - * Extended Opcodes. - */ - - p++; - opsize = _dwarf_decode_uleb128(&p); - switch (*p) { - case DW_LNE_end_sequence: - p++; - end_sequence = 1; - APPEND_ROW; - RESET_REGISTERS; - break; - case DW_LNE_set_address: - p++; - address = dbg->decode(&p, cu->cu_pointer_size); - break; - case DW_LNE_define_file: - p++; - ret = _dwarf_lineno_add_file(li, &p, compdir, - error, dbg); - if (ret != DW_DLE_NONE) - goto prog_fail; - break; - default: - /* Unrecognized extened opcodes. */ - p += opsize; - } - - } else if (*p > 0 && *p < li->li_opbase) { - - /* - * Standard Opcodes. - */ - - switch (*p++) { - case DW_LNS_copy: - APPEND_ROW; - basic_block = 0; - break; - case DW_LNS_advance_pc: - address += _dwarf_decode_uleb128(&p) * - li->li_minlen; - break; - case DW_LNS_advance_line: - line += _dwarf_decode_sleb128(&p); - break; - case DW_LNS_set_file: - file = _dwarf_decode_uleb128(&p); - break; - case DW_LNS_set_column: - column = _dwarf_decode_uleb128(&p); - break; - case DW_LNS_negate_stmt: - is_stmt = !is_stmt; - break; - case DW_LNS_set_basic_block: - basic_block = 1; - break; - case DW_LNS_const_add_pc: - address += ADDRESS(255); - break; - case DW_LNS_fixed_advance_pc: - address += dbg->decode(&p, 2); - break; - case DW_LNS_set_prologue_end: - break; - case DW_LNS_set_epilogue_begin: - break; - case DW_LNS_set_isa: - (void) _dwarf_decode_uleb128(&p); - break; - default: - /* Unrecognized extened opcodes. What to do? */ - break; - } - - } else { - - /* - * Special Opcodes. - */ - - line += LINE(*p); - address += ADDRESS(*p); - APPEND_ROW; - basic_block = 0; - p++; - } - } - - return (DW_DLE_NONE); - -prog_fail: - - STAILQ_FOREACH_SAFE(ln, &li->li_lnlist, ln_next, tln) { - STAILQ_REMOVE(&li->li_lnlist, ln, _Dwarf_Line, ln_next); - free(ln); - } - - return (ret); - -#undef RESET_REGISTERS -#undef APPEND_ROW -#undef LINE -#undef ADDRESS -} - -int -_dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_Section *ds; - Dwarf_CU cu; - Dwarf_Attribute at; - Dwarf_LineInfo li; - Dwarf_LineFile lf, tlf; - const char *compdir; - uint64_t length, hdroff, endoff; - uint8_t *p; - int dwarf_size, i, ret; - - cu = die->die_cu; - assert(cu != NULL); - - dbg = cu->cu_dbg; - assert(dbg != NULL); - - if ((ds = _dwarf_find_section(dbg, ".debug_line")) == NULL) - return (DW_DLE_NONE); - - /* - * Try to find out the dir where the CU was compiled. Later we - * will use the dir to create full pathnames, if need. - */ - compdir = NULL; - at = _dwarf_attr_find(die, DW_AT_comp_dir); - if (at != NULL) { - switch (at->at_form) { - case DW_FORM_strp: - compdir = at->u[1].s; - break; - case DW_FORM_string: - compdir = at->u[0].s; - break; - default: - break; - } - } - - length = dbg->read(ds->ds_data, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = dbg->read(ds->ds_data, &offset, 8); - } else - dwarf_size = 4; - - if (length > ds->ds_size - offset) { - DWARF_SET_ERROR(dbg, error, DW_DLE_DEBUG_LINE_LENGTH_BAD); - return (DW_DLE_DEBUG_LINE_LENGTH_BAD); - } - - if ((li = calloc(1, sizeof(struct _Dwarf_LineInfo))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - /* - * Read in line number program header. - */ - li->li_length = length; - endoff = offset + length; - li->li_version = dbg->read(ds->ds_data, &offset, 2); /* FIXME: verify version */ - li->li_hdrlen = dbg->read(ds->ds_data, &offset, dwarf_size); - hdroff = offset; - li->li_minlen = dbg->read(ds->ds_data, &offset, 1); - if (li->li_version == 4) - li->li_maxop = dbg->read(ds->ds_data, &offset, 1); - li->li_defstmt = dbg->read(ds->ds_data, &offset, 1); - li->li_lbase = dbg->read(ds->ds_data, &offset, 1); - li->li_lrange = dbg->read(ds->ds_data, &offset, 1); - li->li_opbase = dbg->read(ds->ds_data, &offset, 1); - STAILQ_INIT(&li->li_lflist); - STAILQ_INIT(&li->li_lnlist); - - if ((int)li->li_hdrlen - 5 < li->li_opbase - 1) { - ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - if ((li->li_oplen = malloc(li->li_opbase)) == NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - /* - * Read in std opcode arg length list. Note that the first - * element is not used. - */ - for (i = 1; i < li->li_opbase; i++) - li->li_oplen[i] = dbg->read(ds->ds_data, &offset, 1); - - /* - * Check how many strings in the include dir string array. - */ - length = 0; - p = ds->ds_data + offset; - while (*p != '\0') { - while (*p++ != '\0') - ; - length++; - } - li->li_inclen = length; - - /* Sanity check. */ - if (p - ds->ds_data > (int) ds->ds_size) { - ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - if (length != 0) { - if ((li->li_incdirs = malloc(length * sizeof(char *))) == - NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - } - - /* Fill in include dir array. */ - i = 0; - p = ds->ds_data + offset; - while (*p != '\0') { - li->li_incdirs[i++] = (char *) p; - while (*p++ != '\0') - ; - } - - p++; - - /* - * Process file list. - */ - while (*p != '\0') { - ret = _dwarf_lineno_add_file(li, &p, compdir, error, dbg); - if (ret != DW_DLE_NONE) - goto fail_cleanup; - if (p - ds->ds_data > (int) ds->ds_size) { - ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - } - - p++; - - /* Sanity check. */ - if (p - ds->ds_data - hdroff != li->li_hdrlen) { - ret = DW_DLE_DEBUG_LINE_LENGTH_BAD; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - /* - * Process line number program. - */ - ret = _dwarf_lineno_run_program(cu, li, p, ds->ds_data + endoff, compdir, - error); - if (ret != DW_DLE_NONE) - goto fail_cleanup; - - cu->cu_lineinfo = li; - - return (DW_DLE_NONE); - -fail_cleanup: - - STAILQ_FOREACH_SAFE(lf, &li->li_lflist, lf_next, tlf) { - STAILQ_REMOVE(&li->li_lflist, lf, _Dwarf_LineFile, lf_next); - if (lf->lf_fullpath) - free(lf->lf_fullpath); - free(lf); - } - - if (li->li_oplen) - free(li->li_oplen); - if (li->li_incdirs) - free(li->li_incdirs); - free(li); - - return (ret); -} - -void -_dwarf_lineno_cleanup(Dwarf_LineInfo li) -{ - Dwarf_LineFile lf, tlf; - Dwarf_Line ln, tln; - - if (li == NULL) - return; - STAILQ_FOREACH_SAFE(lf, &li->li_lflist, lf_next, tlf) { - STAILQ_REMOVE(&li->li_lflist, lf, - _Dwarf_LineFile, lf_next); - if (lf->lf_fullpath) - free(lf->lf_fullpath); - free(lf); - } - STAILQ_FOREACH_SAFE(ln, &li->li_lnlist, ln_next, tln) { - STAILQ_REMOVE(&li->li_lnlist, ln, _Dwarf_Line, - ln_next); - free(ln); - } - if (li->li_oplen) - free(li->li_oplen); - if (li->li_incdirs) - free(li->li_incdirs); - if (li->li_lnarray) - free(li->li_lnarray); - if (li->li_lfnarray) - free(li->li_lfnarray); - free(li); -} - -static int -_dwarf_lineno_gen_program(Dwarf_P_Debug dbg, Dwarf_P_Section ds, - Dwarf_Rel_Section drs, Dwarf_Error * error) -{ - Dwarf_LineInfo li; - Dwarf_Line ln; - Dwarf_Unsigned address, file, line, spc; - Dwarf_Unsigned addr0, maddr; - Dwarf_Signed line0, column; - int is_stmt, basic_block; - int need_copy; - int ret; - -#define RESET_REGISTERS \ - do { \ - address = 0; \ - file = 1; \ - line = 1; \ - column = 0; \ - is_stmt = li->li_defstmt; \ - basic_block = 0; \ - } while(0) - - li = dbg->dbgp_lineinfo; - maddr = (255 - li->li_opbase) / li->li_lrange; - - RESET_REGISTERS; - - STAILQ_FOREACH(ln, &li->li_lnlist, ln_next) { - if (ln->ln_symndx > 0) { - /* - * Generate DW_LNE_set_address extended op. - */ - RCHECK(WRITE_VALUE(0, 1)); - RCHECK(WRITE_ULEB128(dbg->dbg_pointer_size + 1)); - RCHECK(WRITE_VALUE(DW_LNE_set_address, 1)); - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, - dwarf_drt_data_reloc, dbg->dbg_pointer_size, - ds->ds_size, ln->ln_symndx, ln->ln_addr, - NULL, error)); - address = ln->ln_addr; - continue; - } else if (ln->ln_endseq) { - addr0 = (ln->ln_addr - address) / li->li_minlen; - if (addr0 != 0) { - RCHECK(WRITE_VALUE(DW_LNS_advance_pc, 1)); - RCHECK(WRITE_ULEB128(addr0)); - } - - /* - * Generate DW_LNE_end_sequence. - */ - RCHECK(WRITE_VALUE(0, 1)); - RCHECK(WRITE_ULEB128(1)); - RCHECK(WRITE_VALUE(DW_LNE_end_sequence, 1)); - RESET_REGISTERS; - continue; - } - - /* - * Generate standard opcodes for file, column, is_stmt or - * basic_block changes. - */ - if (ln->ln_fileno != file) { - RCHECK(WRITE_VALUE(DW_LNS_set_file, 1)); - RCHECK(WRITE_ULEB128(ln->ln_fileno)); - file = ln->ln_fileno; - } - if (ln->ln_column != column) { - RCHECK(WRITE_VALUE(DW_LNS_set_column, 1)); - RCHECK(WRITE_ULEB128(ln->ln_column)); - column = ln->ln_column; - } - if (ln->ln_stmt != is_stmt) { - RCHECK(WRITE_VALUE(DW_LNS_negate_stmt, 1)); - is_stmt = ln->ln_stmt; - } - if (ln->ln_bblock && !basic_block) { - RCHECK(WRITE_VALUE(DW_LNS_set_basic_block, 1)); - basic_block = 1; - } - - /* - * Calculate address and line number change. - */ - addr0 = (ln->ln_addr - address) / li->li_minlen; - line0 = ln->ln_lineno - line; - - if (addr0 == 0 && line0 == 0) - continue; - - /* - * Check if line delta is with the range and if the special - * opcode can be used. - */ - assert(li->li_lbase <= 0); - if (line0 >= li->li_lbase && - line0 <= li->li_lbase + li->li_lrange - 1) { - spc = (line0 - li->li_lbase) + - (li->li_lrange * addr0) + li->li_opbase; - if (spc <= 255) { - RCHECK(WRITE_VALUE(spc, 1)); - basic_block = 0; - goto next_line; - } - } - - /* Generate DW_LNS_advance_line for line number change. */ - if (line0 != 0) { - RCHECK(WRITE_VALUE(DW_LNS_advance_line, 1)); - RCHECK(WRITE_SLEB128(line0)); - line0 = 0; - need_copy = 1; - } else - need_copy = basic_block; - - if (addr0 != 0) { - /* See if it can be handled by DW_LNS_const_add_pc. */ - spc = (line0 - li->li_lbase) + - (li->li_lrange * (addr0 - maddr)) + li->li_opbase; - if (addr0 >= maddr && spc <= 255) { - RCHECK(WRITE_VALUE(DW_LNS_const_add_pc, 1)); - RCHECK(WRITE_VALUE(spc, 1)); - } else { - /* Otherwise we use DW_LNS_advance_pc. */ - RCHECK(WRITE_VALUE(DW_LNS_advance_pc, 1)); - RCHECK(WRITE_ULEB128(addr0)); - } - } - - if (need_copy) { - RCHECK(WRITE_VALUE(DW_LNS_copy, 1)); - basic_block = 0; - } - - next_line: - address = ln->ln_addr; - line = ln->ln_lineno; - } - - return (DW_DLE_NONE); - -gen_fail: - return (ret); - -#undef RESET_REGISTERS -} - -static uint8_t -_dwarf_get_minlen(Dwarf_P_Debug dbg) -{ - - assert(dbg != NULL); - - switch (dbg->dbgp_isa) { - case DW_ISA_ARM: - return (2); - case DW_ISA_X86: - case DW_ISA_X86_64: - return (1); - default: - return (4); - } -} - -static uint8_t oplen[] = {0, 1, 1, 1, 1, 0, 0, 0, 1}; - -int -_dwarf_lineno_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_LineInfo li; - Dwarf_LineFile lf; - Dwarf_P_Section ds; - Dwarf_Rel_Section drs; - Dwarf_Unsigned offset; - int i, ret; - - assert(dbg != NULL && dbg->dbgp_lineinfo != NULL); - - li = dbg->dbgp_lineinfo; - if (STAILQ_EMPTY(&li->li_lnlist)) - return (DW_DLE_NONE); - - li->li_length = 0; - li->li_version = 2; - li->li_hdrlen = 0; - li->li_minlen = _dwarf_get_minlen(dbg); - li->li_defstmt = 1; - li->li_lbase = -5; - li->li_lrange = 14; - li->li_opbase = 10; - - /* Create .debug_line section. */ - if ((ret = _dwarf_section_init(dbg, &ds, ".debug_line", 0, error)) != - DW_DLE_NONE) - return (ret); - - /* Create relocation section for .debug_line */ - if ((ret = _dwarf_reloc_section_init(dbg, &drs, ds, error)) != - DW_DLE_NONE) - goto gen_fail1; - - /* Length placeholder. (We only use 32-bit DWARF format) */ - RCHECK(WRITE_VALUE(0, 4)); - - /* Write line number dwarf version. (DWARF2) */ - RCHECK(WRITE_VALUE(li->li_version, 2)); - - /* Header length placeholder. */ - offset = ds->ds_size; - RCHECK(WRITE_VALUE(li->li_hdrlen, 4)); - - /* Write minimum instruction length. */ - RCHECK(WRITE_VALUE(li->li_minlen, 1)); - - /* - * Write initial value for is_stmt. XXX Which default value we - * should use? - */ - RCHECK(WRITE_VALUE(li->li_defstmt, 1)); - - /* - * Write line_base and line_range. FIXME These value needs to be - * fine tuned. - */ - RCHECK(WRITE_VALUE(li->li_lbase, 1)); - RCHECK(WRITE_VALUE(li->li_lrange, 1)); - - /* Write opcode_base. (DWARF2) */ - RCHECK(WRITE_VALUE(li->li_opbase, 1)); - - /* Write standard op length array. */ - RCHECK(WRITE_BLOCK(oplen, sizeof(oplen) / sizeof(oplen[0]))); - - /* Write the list of include directories. */ - for (i = 0; (Dwarf_Unsigned) i < li->li_inclen; i++) - RCHECK(WRITE_STRING(li->li_incdirs[i])); - RCHECK(WRITE_VALUE(0, 1)); - - /* Write the list of filenames. */ - STAILQ_FOREACH(lf, &li->li_lflist, lf_next) { - RCHECK(WRITE_STRING(lf->lf_fname)); - RCHECK(WRITE_ULEB128(lf->lf_dirndx)); - RCHECK(WRITE_ULEB128(lf->lf_mtime)); - RCHECK(WRITE_ULEB128(lf->lf_size)); - } - RCHECK(WRITE_VALUE(0, 1)); - - /* Fill in the header length. */ - li->li_hdrlen = ds->ds_size - offset - 4; - dbg->write(ds->ds_data, &offset, li->li_hdrlen, 4); - - /* Generate the line number program. */ - RCHECK(_dwarf_lineno_gen_program(dbg, ds, drs, error)); - - /* Fill in the length of this line info. */ - li->li_length = ds->ds_size - 4; - offset = 0; - dbg->write(ds->ds_data, &offset, li->li_length, 4); - - /* Notify the creation of .debug_line ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - /* Finalize relocation section for .debug_line. */ - RCHECK(_dwarf_reloc_section_finalize(dbg, drs, error)); - - return (DW_DLE_NONE); - -gen_fail: - _dwarf_reloc_section_free(dbg, &drs); - -gen_fail1: - _dwarf_section_free(dbg, &ds); - - return (ret); -} - -void -_dwarf_lineno_pro_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_LineInfo li; - Dwarf_LineFile lf, tlf; - Dwarf_Line ln, tln; - int i; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - if (dbg->dbgp_lineinfo == NULL) - return; - - li = dbg->dbgp_lineinfo; - STAILQ_FOREACH_SAFE(lf, &li->li_lflist, lf_next, tlf) { - STAILQ_REMOVE(&li->li_lflist, lf, _Dwarf_LineFile, - lf_next); - if (lf->lf_fname) - free(lf->lf_fname); - free(lf); - } - STAILQ_FOREACH_SAFE(ln, &li->li_lnlist, ln_next, tln) { - STAILQ_REMOVE(&li->li_lnlist, ln, _Dwarf_Line, ln_next); - free(ln); - } - if (li->li_incdirs) { - for (i = 0; (Dwarf_Unsigned) i < li->li_inclen; i++) - free(li->li_incdirs[i]); - free(li->li_incdirs); - } - free(li); - dbg->dbgp_lineinfo = NULL; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_loc.c b/contrib/elftoolchain/libdwarf/libdwarf_loc.c deleted file mode 100644 index 1bba30c7..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_loc.c +++ /dev/null @@ -1,701 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Given an array of bytes of length 'len' representing a - * DWARF expression, compute the number of operations based - * on there being one byte describing the operation and - * zero or more bytes of operands as defined in the standard - * for each operation type. Also, if lbuf is non-null, store - * the opcode and oprand in it. - */ -static int -_dwarf_loc_fill_loc(Dwarf_Debug dbg, Dwarf_Locdesc *lbuf, uint8_t pointer_size, - uint8_t offset_size, uint8_t version, uint8_t *p, int len) -{ - int count; - uint64_t operand1; - uint64_t operand2; - uint8_t *ps, *pe, s; - - count = 0; - ps = p; - pe = p + len; - - /* - * Process each byte. If an error occurs, then the - * count will be set to -1. - */ - while (p < pe) { - - operand1 = 0; - operand2 = 0; - - if (lbuf != NULL) { - lbuf->ld_s[count].lr_atom = *p; - lbuf->ld_s[count].lr_offset = p - ps; - } - - switch (*p++) { - /* Operations with no operands. */ - case DW_OP_deref: - case DW_OP_reg0: - case DW_OP_reg1: - case DW_OP_reg2: - case DW_OP_reg3: - case DW_OP_reg4: - case DW_OP_reg5: - case DW_OP_reg6: - case DW_OP_reg7: - case DW_OP_reg8: - case DW_OP_reg9: - case DW_OP_reg10: - case DW_OP_reg11: - case DW_OP_reg12: - case DW_OP_reg13: - case DW_OP_reg14: - case DW_OP_reg15: - case DW_OP_reg16: - case DW_OP_reg17: - case DW_OP_reg18: - case DW_OP_reg19: - case DW_OP_reg20: - case DW_OP_reg21: - case DW_OP_reg22: - case DW_OP_reg23: - case DW_OP_reg24: - case DW_OP_reg25: - case DW_OP_reg26: - case DW_OP_reg27: - case DW_OP_reg28: - case DW_OP_reg29: - case DW_OP_reg30: - case DW_OP_reg31: - - case DW_OP_lit0: - case DW_OP_lit1: - case DW_OP_lit2: - case DW_OP_lit3: - case DW_OP_lit4: - case DW_OP_lit5: - case DW_OP_lit6: - case DW_OP_lit7: - case DW_OP_lit8: - case DW_OP_lit9: - case DW_OP_lit10: - case DW_OP_lit11: - case DW_OP_lit12: - case DW_OP_lit13: - case DW_OP_lit14: - case DW_OP_lit15: - case DW_OP_lit16: - case DW_OP_lit17: - case DW_OP_lit18: - case DW_OP_lit19: - case DW_OP_lit20: - case DW_OP_lit21: - case DW_OP_lit22: - case DW_OP_lit23: - case DW_OP_lit24: - case DW_OP_lit25: - case DW_OP_lit26: - case DW_OP_lit27: - case DW_OP_lit28: - case DW_OP_lit29: - case DW_OP_lit30: - case DW_OP_lit31: - - case DW_OP_dup: - case DW_OP_drop: - - case DW_OP_over: - - case DW_OP_swap: - case DW_OP_rot: - case DW_OP_xderef: - - case DW_OP_abs: - case DW_OP_and: - case DW_OP_div: - case DW_OP_minus: - case DW_OP_mod: - case DW_OP_mul: - case DW_OP_neg: - case DW_OP_not: - case DW_OP_or: - case DW_OP_plus: - - case DW_OP_shl: - case DW_OP_shr: - case DW_OP_shra: - case DW_OP_xor: - - case DW_OP_eq: - case DW_OP_ge: - case DW_OP_gt: - case DW_OP_le: - case DW_OP_lt: - case DW_OP_ne: - - case DW_OP_nop: - case DW_OP_push_object_address: - case DW_OP_form_tls_address: - case DW_OP_call_frame_cfa: - case DW_OP_stack_value: - case DW_OP_GNU_push_tls_address: - case DW_OP_GNU_uninit: - break; - - /* Operations with 1-byte operands. */ - case DW_OP_const1u: - case DW_OP_pick: - case DW_OP_deref_size: - case DW_OP_xderef_size: - operand1 = *p++; - break; - - case DW_OP_const1s: - operand1 = (int8_t) *p++; - break; - - /* Operations with 2-byte operands. */ - case DW_OP_call2: - case DW_OP_const2u: - case DW_OP_bra: - case DW_OP_skip: - operand1 = dbg->decode(&p, 2); - break; - - case DW_OP_const2s: - operand1 = (int16_t) dbg->decode(&p, 2); - break; - - /* Operations with 4-byte operands. */ - case DW_OP_call4: - case DW_OP_const4u: - case DW_OP_GNU_parameter_ref: - operand1 = dbg->decode(&p, 4); - break; - - case DW_OP_const4s: - operand1 = (int32_t) dbg->decode(&p, 4); - break; - - /* Operations with 8-byte operands. */ - case DW_OP_const8u: - case DW_OP_const8s: - operand1 = dbg->decode(&p, 8); - break; - - /* Operations with an unsigned LEB128 operand. */ - case DW_OP_constu: - case DW_OP_plus_uconst: - case DW_OP_regx: - case DW_OP_piece: - case DW_OP_GNU_deref_type: - case DW_OP_GNU_convert: - case DW_OP_GNU_reinterpret: - operand1 = _dwarf_decode_uleb128(&p); - break; - - /* Operations with a signed LEB128 operand. */ - case DW_OP_consts: - case DW_OP_breg0: - case DW_OP_breg1: - case DW_OP_breg2: - case DW_OP_breg3: - case DW_OP_breg4: - case DW_OP_breg5: - case DW_OP_breg6: - case DW_OP_breg7: - case DW_OP_breg8: - case DW_OP_breg9: - case DW_OP_breg10: - case DW_OP_breg11: - case DW_OP_breg12: - case DW_OP_breg13: - case DW_OP_breg14: - case DW_OP_breg15: - case DW_OP_breg16: - case DW_OP_breg17: - case DW_OP_breg18: - case DW_OP_breg19: - case DW_OP_breg20: - case DW_OP_breg21: - case DW_OP_breg22: - case DW_OP_breg23: - case DW_OP_breg24: - case DW_OP_breg25: - case DW_OP_breg26: - case DW_OP_breg27: - case DW_OP_breg28: - case DW_OP_breg29: - case DW_OP_breg30: - case DW_OP_breg31: - case DW_OP_fbreg: - operand1 = _dwarf_decode_sleb128(&p); - break; - - /* - * Oeration with two unsigned LEB128 operands. - */ - case DW_OP_bit_piece: - case DW_OP_GNU_regval_type: - operand1 = _dwarf_decode_uleb128(&p); - operand2 = _dwarf_decode_uleb128(&p); - break; - - /* - * Operations with an unsigned LEB128 operand - * followed by a signed LEB128 operand. - */ - case DW_OP_bregx: - operand1 = _dwarf_decode_uleb128(&p); - operand2 = _dwarf_decode_sleb128(&p); - break; - - /* - * Operation with an unsigned LEB128 operand - * representing the size of a block, followed - * by the block content. - * - * Store the size of the block in the operand1 - * and a pointer to the block in the operand2. - */ - case DW_OP_implicit_value: - case DW_OP_GNU_entry_value: - operand1 = _dwarf_decode_uleb128(&p); - operand2 = (Dwarf_Unsigned) (uintptr_t) p; - p += operand1; - break; - - /* Target address size operand. */ - case DW_OP_addr: - case DW_OP_GNU_addr_index: - case DW_OP_GNU_const_index: - operand1 = dbg->decode(&p, pointer_size); - break; - - /* Offset size operand. */ - case DW_OP_call_ref: - operand1 = dbg->decode(&p, offset_size); - break; - - /* - * The first byte is address byte length, followed by - * the address value. If the length is 0, the address - * size is the same as target pointer size. - */ - case DW_OP_GNU_encoded_addr: - s = *p++; - if (s == 0) - s = pointer_size; - operand1 = dbg->decode(&p, s); - break; - - /* - * Operand1: DIE offset (size depending on DWARF version) - * DWARF2: pointer size - * DWARF{3,4}: offset size - * - * Operand2: SLEB128 - */ - case DW_OP_GNU_implicit_pointer: - if (version == 2) - operand1 = dbg->decode(&p, pointer_size); - else - operand1 = dbg->decode(&p, offset_size); - operand2 = _dwarf_decode_sleb128(&p); - break; - - /* - * Operand1: DIE offset (ULEB128) - * Operand2: pointer to a block. The block's first byte - * is its size. - */ - case DW_OP_GNU_const_type: - operand1 = _dwarf_decode_uleb128(&p); - operand2 = (Dwarf_Unsigned) (uintptr_t) p; - s = *p++; - p += s; - break; - - /* All other operations cause an error. */ - default: - count = -1; - goto done; - } - - if (lbuf != NULL) { - lbuf->ld_s[count].lr_number = operand1; - lbuf->ld_s[count].lr_number2 = operand2; - } - - count++; - } - -done: - return (count); -} - -int -_dwarf_loc_expr_add_atom(Dwarf_Debug dbg, uint8_t *out, uint8_t *end, - Dwarf_Small atom, Dwarf_Unsigned operand1, Dwarf_Unsigned operand2, - int *length, Dwarf_Error *error) -{ - uint8_t buf[64]; - uint8_t *p, *pe; - uint64_t offset; - int len; - - if (out != NULL && end != NULL) { - p = out; - pe = end; - } else { - p = out = buf; - pe = &buf[sizeof(buf)]; - } - - switch (atom) { - /* Operations with no operands. */ - case DW_OP_deref: - case DW_OP_reg0: - case DW_OP_reg1: - case DW_OP_reg2: - case DW_OP_reg3: - case DW_OP_reg4: - case DW_OP_reg5: - case DW_OP_reg6: - case DW_OP_reg7: - case DW_OP_reg8: - case DW_OP_reg9: - case DW_OP_reg10: - case DW_OP_reg11: - case DW_OP_reg12: - case DW_OP_reg13: - case DW_OP_reg14: - case DW_OP_reg15: - case DW_OP_reg16: - case DW_OP_reg17: - case DW_OP_reg18: - case DW_OP_reg19: - case DW_OP_reg20: - case DW_OP_reg21: - case DW_OP_reg22: - case DW_OP_reg23: - case DW_OP_reg24: - case DW_OP_reg25: - case DW_OP_reg26: - case DW_OP_reg27: - case DW_OP_reg28: - case DW_OP_reg29: - case DW_OP_reg30: - case DW_OP_reg31: - - case DW_OP_lit0: - case DW_OP_lit1: - case DW_OP_lit2: - case DW_OP_lit3: - case DW_OP_lit4: - case DW_OP_lit5: - case DW_OP_lit6: - case DW_OP_lit7: - case DW_OP_lit8: - case DW_OP_lit9: - case DW_OP_lit10: - case DW_OP_lit11: - case DW_OP_lit12: - case DW_OP_lit13: - case DW_OP_lit14: - case DW_OP_lit15: - case DW_OP_lit16: - case DW_OP_lit17: - case DW_OP_lit18: - case DW_OP_lit19: - case DW_OP_lit20: - case DW_OP_lit21: - case DW_OP_lit22: - case DW_OP_lit23: - case DW_OP_lit24: - case DW_OP_lit25: - case DW_OP_lit26: - case DW_OP_lit27: - case DW_OP_lit28: - case DW_OP_lit29: - case DW_OP_lit30: - case DW_OP_lit31: - - case DW_OP_dup: - case DW_OP_drop: - - case DW_OP_over: - - case DW_OP_swap: - case DW_OP_rot: - case DW_OP_xderef: - - case DW_OP_abs: - case DW_OP_and: - case DW_OP_div: - case DW_OP_minus: - case DW_OP_mod: - case DW_OP_mul: - case DW_OP_neg: - case DW_OP_not: - case DW_OP_or: - case DW_OP_plus: - - case DW_OP_shl: - case DW_OP_shr: - case DW_OP_shra: - case DW_OP_xor: - - case DW_OP_eq: - case DW_OP_ge: - case DW_OP_gt: - case DW_OP_le: - case DW_OP_lt: - case DW_OP_ne: - - case DW_OP_nop: - case DW_OP_GNU_push_tls_address: - *p++ = atom; - break; - - /* Operations with 1-byte operands. */ - case DW_OP_const1u: - case DW_OP_const1s: - case DW_OP_pick: - case DW_OP_deref_size: - case DW_OP_xderef_size: - *p++ = atom; - *p++ = (uint8_t) operand1; - break; - - /* Operations with 2-byte operands. */ - case DW_OP_const2u: - case DW_OP_const2s: - case DW_OP_bra: - case DW_OP_skip: - *p++ = atom; - offset = 0; - dbg->write(p, &offset, operand1, 2); - p += 2; - break; - - /* Operations with 4-byte operands. */ - case DW_OP_const4u: - case DW_OP_const4s: - *p++ = atom; - offset = 0; - dbg->write(p, &offset, operand1, 4); - p += 4; - break; - - /* Operations with 8-byte operands. */ - case DW_OP_const8u: - case DW_OP_const8s: - *p++ = atom; - offset = 0; - dbg->write(p, &offset, operand1, 8); - p += 8; - break; - - /* Operations with an unsigned LEB128 operand. */ - case DW_OP_constu: - case DW_OP_plus_uconst: - case DW_OP_regx: - case DW_OP_piece: - *p++ = atom; - len = _dwarf_write_uleb128(p, pe, operand1); - assert(len > 0); - p += len; - break; - - /* Operations with a signed LEB128 operand. */ - case DW_OP_consts: - case DW_OP_breg0: - case DW_OP_breg1: - case DW_OP_breg2: - case DW_OP_breg3: - case DW_OP_breg4: - case DW_OP_breg5: - case DW_OP_breg6: - case DW_OP_breg7: - case DW_OP_breg8: - case DW_OP_breg9: - case DW_OP_breg10: - case DW_OP_breg11: - case DW_OP_breg12: - case DW_OP_breg13: - case DW_OP_breg14: - case DW_OP_breg15: - case DW_OP_breg16: - case DW_OP_breg17: - case DW_OP_breg18: - case DW_OP_breg19: - case DW_OP_breg20: - case DW_OP_breg21: - case DW_OP_breg22: - case DW_OP_breg23: - case DW_OP_breg24: - case DW_OP_breg25: - case DW_OP_breg26: - case DW_OP_breg27: - case DW_OP_breg28: - case DW_OP_breg29: - case DW_OP_breg30: - case DW_OP_breg31: - case DW_OP_fbreg: - *p++ = atom; - len = _dwarf_write_sleb128(p, pe, operand1); - assert(len > 0); - p += len; - break; - - /* - * Operations with an unsigned LEB128 operand - * followed by a signed LEB128 operand. - */ - case DW_OP_bregx: - *p++ = atom; - len = _dwarf_write_uleb128(p, pe, operand1); - assert(len > 0); - p += len; - len = _dwarf_write_sleb128(p, pe, operand2); - assert(len > 0); - p += len; - break; - - /* Target address size operand. */ - case DW_OP_addr: - *p++ = atom; - offset = 0; - dbg->write(p, &offset, operand1, dbg->dbg_pointer_size); - p += dbg->dbg_pointer_size; - break; - - /* All other operations cause an error. */ - default: - DWARF_SET_ERROR(dbg, error, DW_DLE_LOC_EXPR_BAD); - return (DW_DLE_LOC_EXPR_BAD); - } - - if (length) - *length = p - out; - - return (DW_DLE_NONE); -} - -int -_dwarf_loc_fill_locdesc(Dwarf_Debug dbg, Dwarf_Locdesc *llbuf, uint8_t *in, - uint64_t in_len, uint8_t pointer_size, uint8_t offset_size, - uint8_t version, Dwarf_Error *error) -{ - int num; - - assert(llbuf != NULL); - assert(in != NULL); - assert(in_len > 0); - - /* Compute the number of locations. */ - if ((num = _dwarf_loc_fill_loc(dbg, NULL, pointer_size, offset_size, - version, in, in_len)) < 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_LOC_EXPR_BAD); - return (DW_DLE_LOC_EXPR_BAD); - } - - llbuf->ld_cents = num; - if (num <= 0) - return (DW_DLE_NONE); - - if ((llbuf->ld_s = calloc(num, sizeof(Dwarf_Loc))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - (void) _dwarf_loc_fill_loc(dbg, llbuf, pointer_size, offset_size, - version, in, in_len); - - return (DW_DLE_NONE); -} - -int -_dwarf_loc_fill_locexpr(Dwarf_Debug dbg, Dwarf_Locdesc **ret_llbuf, uint8_t *in, - uint64_t in_len, uint8_t pointer_size, uint8_t offset_size, - uint8_t version, Dwarf_Error *error) -{ - Dwarf_Locdesc *llbuf; - int ret; - - if ((llbuf = malloc(sizeof(Dwarf_Locdesc))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - llbuf->ld_lopc = 0; - llbuf->ld_hipc = ~0ULL; - llbuf->ld_s = NULL; - - ret = _dwarf_loc_fill_locdesc(dbg, llbuf, in, in_len, pointer_size, - offset_size, version, error); - if (ret != DW_DLE_NONE) { - free(llbuf); - return (ret); - } - - *ret_llbuf = llbuf; - - return (ret); -} - -int -_dwarf_loc_add(Dwarf_Die die, Dwarf_Attribute at, Dwarf_Error *error) -{ - Dwarf_Debug dbg; - Dwarf_CU cu; - int ret; - - assert(at->at_ld == NULL); - assert(at->u[1].u8p != NULL); - assert(at->u[0].u64 > 0); - - cu = die->die_cu; - assert(cu != NULL); - - dbg = cu->cu_dbg; - assert(dbg != NULL); - - ret = _dwarf_loc_fill_locexpr(dbg, &at->at_ld, at->u[1].u8p, - at->u[0].u64, cu->cu_pointer_size, cu->cu_length_size == 4 ? 4 : 8, - cu->cu_version, error); - - return (ret); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_loclist.c b/contrib/elftoolchain/libdwarf/libdwarf_loclist.c deleted file mode 100644 index 1246c9b2..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_loclist.c +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * Copyright (c) 2009,2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_loclist_add_locdesc(Dwarf_Debug dbg, Dwarf_CU cu, Dwarf_Section *ds, - Dwarf_Unsigned *off, Dwarf_Locdesc **ld, Dwarf_Signed *ldlen, - Dwarf_Unsigned *total_len, Dwarf_Error *error) -{ - uint64_t start, end; - int i, len, ret; - - if (total_len != NULL) - *total_len = 0; - - for (i = 0; *off < ds->ds_size; i++) { - start = dbg->read(ds->ds_data, off, cu->cu_pointer_size); - end = dbg->read(ds->ds_data, off, cu->cu_pointer_size); - if (ld != NULL) { - ld[i]->ld_lopc = start; - ld[i]->ld_hipc = end; - } - - if (total_len != NULL) - *total_len += 2 * cu->cu_pointer_size; - - /* Check if it is the end entry. */ - if (start == 0 && end ==0) { - i++; - break; - } - - /* Check if it is base-select entry. */ - if ((cu->cu_pointer_size == 4 && start == ~0U) || - (cu->cu_pointer_size == 8 && start == ~0ULL)) - continue; - - /* Otherwise it's normal entry. */ - len = dbg->read(ds->ds_data, off, 2); - if (*off + len > ds->ds_size) { - DWARF_SET_ERROR(dbg, error, - DW_DLE_DEBUG_LOC_SECTION_SHORT); - return (DW_DLE_DEBUG_LOC_SECTION_SHORT); - } - - if (total_len != NULL) - *total_len += len; - - if (ld != NULL) { - ret = _dwarf_loc_fill_locdesc(dbg, ld[i], - ds->ds_data + *off, len, cu->cu_pointer_size, - cu->cu_length_size == 4 ? 4 : 8, cu->cu_version, - error); - if (ret != DW_DLE_NONE) - return (ret); - } - - *off += len; - } - - if (ldlen != NULL) - *ldlen = i; - - return (DW_DLE_NONE); -} - -int -_dwarf_loclist_find(Dwarf_Debug dbg, Dwarf_CU cu, uint64_t lloff, - Dwarf_Locdesc ***ret_llbuf, Dwarf_Signed *listlen, - Dwarf_Unsigned *entry_len, Dwarf_Error *error) -{ - Dwarf_Locdesc **llbuf; - Dwarf_Section *ds; - Dwarf_Signed ldlen; - Dwarf_Unsigned off; - int i, ret; - - if ((ds = _dwarf_find_section(dbg, ".debug_loc")) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLE_NO_ENTRY); - } - - if (lloff >= ds->ds_size) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLE_NO_ENTRY); - } - - /* Get the number of locdesc the first round. */ - off = lloff; - ret = _dwarf_loclist_add_locdesc(dbg, cu, ds, &off, NULL, &ldlen, - NULL, error); - if (ret != DW_DLE_NONE) - return (ret); - - if (ldlen == 0) - return (DW_DLE_NO_ENTRY); - - /* - * Dwarf_Locdesc list memory is allocated in this way (one more level - * of indirect) to make the loclist API be compatible with SGI libdwarf. - */ - if ((llbuf = calloc(ldlen, sizeof(Dwarf_Locdesc *))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - for (i = 0; i < ldlen; i++) { - if ((llbuf[i] = calloc(1, sizeof(Dwarf_Locdesc))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - ret = DW_DLE_MEMORY; - goto fail_cleanup; - } - } - - off = lloff; - - /* Fill in locdesc. */ - ret = _dwarf_loclist_add_locdesc(dbg, cu, ds, &off, llbuf, NULL, - entry_len, error); - if (ret != DW_DLE_NONE) - goto fail_cleanup; - - *ret_llbuf = llbuf; - *listlen = ldlen; - - return (DW_DLE_NONE); - -fail_cleanup: - - if (llbuf != NULL) { - for (i = 0; i < ldlen; i++) { - if (llbuf[i]->ld_s) - free(llbuf[i]->ld_s); - free(llbuf[i]); - } - free(llbuf); - } - - return (ret); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_macinfo.c b/contrib/elftoolchain/libdwarf/libdwarf_macinfo.c deleted file mode 100644 index 83bc2b25..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_macinfo.c +++ /dev/null @@ -1,254 +0,0 @@ -/*- - * Copyright (c) 2009-2011 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -#define _FILEINDEX_STACK_SIZE 16384 - -static int -_dwarf_macinfo_parse(Dwarf_Debug dbg, Dwarf_Section *ds, uint64_t *off, - Dwarf_Macro_Details *dmd, Dwarf_Unsigned *cnt, Dwarf_Error *error) -{ - Dwarf_Unsigned lineno; - Dwarf_Signed fileindex[_FILEINDEX_STACK_SIZE]; - char *p; - int i, type, sp; - - i = 0; - sp = 0; - fileindex[sp] = -1; - while (*off < ds->ds_size) { - - if (dmd != NULL) - dmd[i].dmd_offset = *off; - - type = dbg->read(ds->ds_data, off, 1); - - if (dmd != NULL) { - dmd[i].dmd_type = type; - dmd[i].dmd_fileindex = fileindex[sp]; - } - - switch (type) { - case 0: - break; - case DW_MACINFO_define: - case DW_MACINFO_undef: - case DW_MACINFO_vendor_ext: - lineno = _dwarf_read_uleb128(ds->ds_data, off); - p = (char *) ds->ds_data; - if (dmd != NULL) { - dmd[i].dmd_lineno = lineno; - dmd[i].dmd_macro = p + *off; - - } - while (p[(*off)++] != '\0') - ; - break; - case DW_MACINFO_start_file: - lineno = _dwarf_read_uleb128(ds->ds_data, off); - if (sp >= _FILEINDEX_STACK_SIZE - 1) { - assert(0); - } - fileindex[++sp] = _dwarf_read_uleb128(ds->ds_data, off); - if (dmd != NULL) { - dmd[i].dmd_lineno = lineno; - dmd[i].dmd_fileindex = fileindex[sp]; - } - break; - case DW_MACINFO_end_file: - if (sp > 0) { - sp--; - break; - } - /* FALLTHROUGH */ - default: - DWARF_SET_ERROR(dbg, error, - DW_DLE_DEBUG_MACRO_INCONSISTENT); - return (DW_DLE_DEBUG_MACRO_INCONSISTENT); - } - - i++; - - if (type == 0) - break; - } - - if (cnt != NULL) - *cnt = i; - - return (DW_DLE_NONE); -} - -void -_dwarf_macinfo_cleanup(Dwarf_Debug dbg) -{ - Dwarf_MacroSet ms, tms; - - if (STAILQ_EMPTY(&dbg->dbg_mslist)) - return; - - STAILQ_FOREACH_SAFE(ms, &dbg->dbg_mslist, ms_next, tms) { - STAILQ_REMOVE(&dbg->dbg_mslist, ms, _Dwarf_MacroSet, ms_next); - if (ms->ms_mdlist) - free(ms->ms_mdlist); - free(ms); - } -} - -int -_dwarf_macinfo_init(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_MacroSet ms; - Dwarf_Unsigned cnt; - Dwarf_Section *ds; - uint64_t offset, entry_off; - int ret; - - if ((ds = _dwarf_find_section(dbg, ".debug_macinfo")) == NULL) - return (DW_DLE_NONE); - - offset = 0; - while (offset < ds->ds_size) { - - entry_off = offset; - - ret = _dwarf_macinfo_parse(dbg, ds, &offset, NULL, &cnt, error); - if (ret != DW_DLE_NONE) - return (ret); - - if (cnt == 0) - break; - - if ((ms = calloc(1, sizeof(struct _Dwarf_MacroSet))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - ret = DW_DLE_MEMORY; - goto fail_cleanup; - } - STAILQ_INSERT_TAIL(&dbg->dbg_mslist, ms, ms_next); - - if ((ms->ms_mdlist = calloc(cnt, sizeof(Dwarf_Macro_Details))) - == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - ret = DW_DLE_MEMORY; - goto fail_cleanup; - } - - ms->ms_cnt = cnt; - - offset = entry_off; - - ret = _dwarf_macinfo_parse(dbg, ds, &offset, ms->ms_mdlist, - NULL, error); - - if (ret != DW_DLE_NONE) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - ret = DW_DLE_MEMORY; - goto fail_cleanup; - } - } - - return (DW_DLE_NONE); - -fail_cleanup: - - _dwarf_macinfo_cleanup(dbg); - - return (ret); -} - -int -_dwarf_macinfo_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Macro_Details *md; - int i, ret; - - if (dbg->dbgp_mdcnt == 0) - return (DW_DLE_NONE); - - /* Create .debug_frame section. */ - RCHECK(_dwarf_section_init(dbg, &ds, ".debug_macinfo", 0, error)); - - /* Write the list of Dwarf_Macro_Details. */ - for (i = 0; (Dwarf_Unsigned) i < dbg->dbgp_mdcnt; i++) { - md = &dbg->dbgp_mdlist[i]; - md->dmd_offset = ds->ds_size; - RCHECK(WRITE_VALUE(md->dmd_type, 1)); - switch (md->dmd_type) { - case DW_MACINFO_define: - case DW_MACINFO_undef: - case DW_MACINFO_vendor_ext: - RCHECK(WRITE_ULEB128(md->dmd_lineno)); - assert(md->dmd_macro != NULL); - RCHECK(WRITE_STRING(md->dmd_macro)); - break; - case DW_MACINFO_start_file: - RCHECK(WRITE_ULEB128(md->dmd_lineno)); - RCHECK(WRITE_ULEB128(md->dmd_fileindex)); - break; - case DW_MACINFO_end_file: - break; - default: - assert(0); - break; - } - } - RCHECK(WRITE_VALUE(0, 1)); - - /* Inform application the creation of .debug_macinfo ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - return (DW_DLE_NONE); - -gen_fail: - _dwarf_section_free(dbg, &ds); - - return (ret); -} - -void -_dwarf_macinfo_pro_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_Macro_Details *md; - int i; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - if (dbg->dbgp_mdlist == NULL) - return; - - assert(dbg->dbgp_mdcnt > 0); - for (i = 0; (Dwarf_Unsigned) i < dbg->dbgp_mdcnt; i++) { - md = &dbg->dbgp_mdlist[i]; - if (md->dmd_macro) - free(md->dmd_macro); - } - free(dbg->dbgp_mdlist); - dbg->dbgp_mdlist = NULL; - dbg->dbgp_mdcnt = 0; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_nametbl.c b/contrib/elftoolchain/libdwarf/libdwarf_nametbl.c deleted file mode 100644 index bd2d6b45..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_nametbl.c +++ /dev/null @@ -1,253 +0,0 @@ -/*- - * Copyright (c) 2009,2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -void -_dwarf_nametbl_cleanup(Dwarf_NameSec *nsp) -{ - Dwarf_NameSec ns; - Dwarf_NameTbl nt, tnt; - Dwarf_NamePair np, tnp; - - assert(nsp != NULL); - if ((ns = *nsp) == NULL) - return; - - STAILQ_FOREACH_SAFE(nt, &ns->ns_ntlist, nt_next, tnt) { - STAILQ_FOREACH_SAFE(np, &nt->nt_nplist, np_next, tnp) { - STAILQ_REMOVE(&nt->nt_nplist, np, _Dwarf_NamePair, - np_next); - free(np); - } - STAILQ_REMOVE(&ns->ns_ntlist, nt, _Dwarf_NameTbl, nt_next); - free(nt); - } - if (ns->ns_array) - free(ns->ns_array); - free(ns); - *nsp = NULL; -} - -int -_dwarf_nametbl_init(Dwarf_Debug dbg, Dwarf_NameSec *namesec, Dwarf_Section *ds, - Dwarf_Error *error) -{ - Dwarf_CU cu; - Dwarf_NameSec ns; - Dwarf_NameTbl nt; - Dwarf_NamePair np; - uint64_t offset, dwarf_size, length, cuoff; - char *p; - int i, ret; - - assert(*namesec == NULL); - - if ((ns = malloc(sizeof(struct _Dwarf_NameSec))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INIT(&ns->ns_ntlist); - ns->ns_array = NULL; - ns->ns_len = 0; - - offset = 0; - while (offset < ds->ds_size) { - - /* Allocate a new name table. */ - if ((nt = malloc(sizeof(struct _Dwarf_NameTbl))) == NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - STAILQ_INIT(&nt->nt_nplist); - STAILQ_INSERT_TAIL(&ns->ns_ntlist, nt, nt_next); - - /* Read in the table header. */ - length = dbg->read(ds->ds_data, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = dbg->read(ds->ds_data, &offset, 8); - } else - dwarf_size = 4; - - nt->nt_length = length; - /* FIXME: verify version */ - nt->nt_version = dbg->read(ds->ds_data, &offset, 2); - nt->nt_cu_offset = dbg->read(ds->ds_data, &offset, dwarf_size); - nt->nt_cu_length = dbg->read(ds->ds_data, &offset, dwarf_size); - - if (!dbg->dbg_info_loaded) { - ret = _dwarf_info_load(dbg, 1, 1, error); - if (ret != DW_DLE_NONE) - goto fail_cleanup; - } - - /* Find the referenced CU. */ - STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) { - if (cu->cu_offset == nt->nt_cu_offset) - break; - } - nt->nt_cu = cu; /* FIXME: Check if NULL here */ - - /* Add name pairs. */ - while (offset < ds->ds_size) { - cuoff = dbg->read(ds->ds_data, &offset, dwarf_size); - if (cuoff == 0) - break; - if ((np = malloc(sizeof(struct _Dwarf_NamePair))) == - NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - np->np_nt = nt; - np->np_offset = cuoff; - p = (char *) ds->ds_data; - np->np_name = &p[offset]; - while (p[offset++] != '\0') - ; - STAILQ_INSERT_TAIL(&nt->nt_nplist, np, np_next); - ns->ns_len++; - } - } - - /* Build array of name pairs from all tables. */ - if (ns->ns_len > 0) { - if ((ns->ns_array = malloc(sizeof(Dwarf_NamePair) * - ns->ns_len)) == NULL) { - ret = DW_DLE_MEMORY; - DWARF_SET_ERROR(dbg, error, ret); - goto fail_cleanup; - } - - i = 0; - STAILQ_FOREACH(nt, &ns->ns_ntlist, nt_next) { - STAILQ_FOREACH(np, &nt->nt_nplist, np_next) - ns->ns_array[i++] = np; - } - assert((Dwarf_Unsigned)i == ns->ns_len); - } - - *namesec = ns; - - return (DW_DLE_NONE); - -fail_cleanup: - - _dwarf_nametbl_cleanup(&ns); - - return (ret); -} - -int -_dwarf_nametbl_gen(Dwarf_P_Debug dbg, const char *name, Dwarf_NameTbl nt, - Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Rel_Section drs; - Dwarf_NamePair np; - uint64_t offset; - int ret; - - assert(dbg != NULL && name != NULL); - if (nt == NULL || STAILQ_EMPTY(&nt->nt_nplist)) - return (DW_DLE_NONE); - - nt->nt_length = 0; - nt->nt_version = 2; - nt->nt_cu = STAILQ_FIRST(&dbg->dbg_cu); - assert(nt->nt_cu != NULL); - nt->nt_cu_offset = nt->nt_cu->cu_offset; - nt->nt_cu_length = nt->nt_cu->cu_length; - - /* Create name lookup section. */ - if ((ret = _dwarf_section_init(dbg, &ds, name, 0, error)) != - DW_DLE_NONE) - goto gen_fail0; - - /* Create relocation section for the name lookup section. */ - RCHECK(_dwarf_reloc_section_init(dbg, &drs, ds, error)); - - /* Write table header. */ - RCHECK(WRITE_VALUE(nt->nt_length, 4)); - RCHECK(WRITE_VALUE(nt->nt_version, 2)); - RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, 4, - ds->ds_size, 0, nt->nt_cu_offset, ".debug_info", error)); - RCHECK(WRITE_VALUE(nt->nt_cu_length, 4)); - - /* Write tuples. */ - STAILQ_FOREACH(np, &nt->nt_nplist, np_next) { - assert(np->np_die != NULL); - np->np_offset = np->np_die->die_offset; - RCHECK(WRITE_VALUE(np->np_offset, 4)); - RCHECK(WRITE_STRING(np->np_name)); - } - RCHECK(WRITE_VALUE(0, 4)); - - /* Fill in the length field. */ - nt->nt_length = ds->ds_size - 4; - offset = 0; - dbg->write(ds->ds_data, &offset, nt->nt_length, 4); - - /* Inform application the creation of name lookup ELF section. */ - RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error)); - - /* Finalize relocation section for the name lookup section. */ - RCHECK(_dwarf_reloc_section_finalize(dbg, drs, error)); - - return (DW_DLE_NONE); - -gen_fail: - _dwarf_reloc_section_free(dbg, &drs); - -gen_fail0: - _dwarf_section_free(dbg, &ds); - - return (ret); -} - -void -_dwarf_nametbl_pro_cleanup(Dwarf_NameTbl *ntp) -{ - Dwarf_NameTbl nt; - Dwarf_NamePair np, tnp; - - assert(ntp != NULL); - if ((nt = *ntp) == NULL) - return; - - STAILQ_FOREACH_SAFE(np, &nt->nt_nplist, np_next, tnp) { - STAILQ_REMOVE(&nt->nt_nplist, np, _Dwarf_NamePair, np_next); - if (np->np_name) - free(np->np_name); - free(np); - } - free(nt); - *ntp = NULL; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_ranges.c b/contrib/elftoolchain/libdwarf/libdwarf_ranges.c deleted file mode 100644 index eeb4abc6..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_ranges.c +++ /dev/null @@ -1,152 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -static int -_dwarf_ranges_parse(Dwarf_Debug dbg, Dwarf_CU cu, Dwarf_Section *ds, - uint64_t off, Dwarf_Ranges *rg, Dwarf_Unsigned *cnt) -{ - Dwarf_Unsigned start, end; - int i; - - i = 0; - while (off < ds->ds_size) { - - start = dbg->read(ds->ds_data, &off, cu->cu_pointer_size); - end = dbg->read(ds->ds_data, &off, cu->cu_pointer_size); - - if (rg != NULL) { - rg[i].dwr_addr1 = start; - rg[i].dwr_addr2 = end; - if (start == 0 && end == 0) - rg[i].dwr_type = DW_RANGES_END; - else if ((start == ~0U && cu->cu_pointer_size == 4) || - (start == ~0ULL && cu->cu_pointer_size == 8)) - rg[i].dwr_type = DW_RANGES_ADDRESS_SELECTION; - else - rg[i].dwr_type = DW_RANGES_ENTRY; - } - - i++; - - if (start == 0 && end == 0) - break; - } - - if (cnt != NULL) - *cnt = i; - - return (DW_DLE_NONE); -} - -int -_dwarf_ranges_find(Dwarf_Debug dbg, uint64_t off, Dwarf_Rangelist *ret_rl) -{ - Dwarf_Rangelist rl; - - STAILQ_FOREACH(rl, &dbg->dbg_rllist, rl_next) - if (rl->rl_offset == off) - break; - - if (rl == NULL) - return (DW_DLE_NO_ENTRY); - - if (ret_rl != NULL) - *ret_rl = rl; - - return (DW_DLE_NONE); -} - -void -_dwarf_ranges_cleanup(Dwarf_Debug dbg) -{ - Dwarf_Rangelist rl, trl; - - if (STAILQ_EMPTY(&dbg->dbg_rllist)) - return; - - STAILQ_FOREACH_SAFE(rl, &dbg->dbg_rllist, rl_next, trl) { - STAILQ_REMOVE(&dbg->dbg_rllist, rl, _Dwarf_Rangelist, rl_next); - if (rl->rl_rgarray) - free(rl->rl_rgarray); - free(rl); - } -} - -int -_dwarf_ranges_add(Dwarf_Debug dbg, Dwarf_CU cu, uint64_t off, - Dwarf_Rangelist *ret_rl, Dwarf_Error *error) -{ - Dwarf_Section *ds; - Dwarf_Rangelist rl; - Dwarf_Unsigned cnt; - int ret; - - if ((ds = _dwarf_find_section(dbg, ".debug_ranges")) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_NO_ENTRY); - return (DW_DLE_NO_ENTRY); - } - - if ((rl = malloc(sizeof(struct _Dwarf_Rangelist))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - rl->rl_offset = off; - - ret = _dwarf_ranges_parse(dbg, cu, ds, off, NULL, &cnt); - if (ret != DW_DLE_NONE) { - free(rl); - return (ret); - } - - rl->rl_rglen = cnt; - if (cnt != 0) { - if ((rl->rl_rgarray = calloc(cnt, sizeof(Dwarf_Ranges))) == - NULL) { - free(rl); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - ret = _dwarf_ranges_parse(dbg, cu, ds, off, rl->rl_rgarray, - NULL); - if (ret != DW_DLE_NONE) { - free(rl->rl_rgarray); - free(rl); - return (ret); - } - } else - rl->rl_rgarray = NULL; - - STAILQ_INSERT_TAIL(&dbg->dbg_rllist, rl, rl_next); - *ret_rl = rl; - - return (DW_DLE_NONE); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_reloc.c b/contrib/elftoolchain/libdwarf/libdwarf_reloc.c deleted file mode 100644 index 690b5b95..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_reloc.c +++ /dev/null @@ -1,499 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -Dwarf_Unsigned -_dwarf_get_reloc_type(Dwarf_P_Debug dbg, int is64) -{ - - assert(dbg != NULL); - - switch (dbg->dbgp_isa) { - case DW_ISA_AARCH64: - return (is64 ? R_AARCH64_ABS64 : R_AARCH64_ABS32); - case DW_ISA_X86: - return (R_386_32); - case DW_ISA_X86_64: - return (is64 ? R_X86_64_64 : R_X86_64_32); - case DW_ISA_SPARC: - return (is64 ? R_SPARC_UA64 : R_SPARC_UA32); - case DW_ISA_PPC: - return (is64 ? R_PPC64_ADDR64 : R_PPC_ADDR32); - case DW_ISA_ARM: - return (R_ARM_ABS32); - case DW_ISA_MIPS: - return (is64 ? R_MIPS_64 : R_MIPS_32); - case DW_ISA_RISCV: - return (is64 ? R_RISCV_64 : R_RISCV_32); - case DW_ISA_IA64: - return (is64 ? R_IA_64_DIR64LSB : R_IA_64_DIR32LSB); - default: - break; - } - return (0); /* NOT REACHED */ -} - -int -_dwarf_get_reloc_size(Dwarf_Debug dbg, Dwarf_Unsigned rel_type) -{ - - switch (dbg->dbg_machine) { - case EM_NONE: - break; - case EM_AARCH64: - if (rel_type == R_AARCH64_ABS32) - return (4); - else if (rel_type == R_AARCH64_ABS64) - return (8); - break; - case EM_ARM: - if (rel_type == R_ARM_ABS32) - return (4); - break; - case EM_386: - case EM_IAMCU: - if (rel_type == R_386_32) - return (4); - break; - case EM_X86_64: - if (rel_type == R_X86_64_32) - return (4); - else if (rel_type == R_X86_64_64) - return (8); - break; - case EM_SPARC: - if (rel_type == R_SPARC_UA32) - return (4); - else if (rel_type == R_SPARC_UA64) - return (8); - break; - case EM_PPC: - if (rel_type == R_PPC_ADDR32) - return (4); - break; - case EM_PPC64: - if (rel_type == R_PPC_ADDR32) - return (4); - else if (rel_type == R_PPC64_ADDR64) - return (8); - break; - case EM_MIPS: - if (rel_type == R_MIPS_32) - return (4); - else if (rel_type == R_MIPS_64) - return (8); - break; - case EM_RISCV: - if (rel_type == R_RISCV_32) - return (4); - else if (rel_type == R_RISCV_64) - return (8); - break; - case EM_IA_64: - if (rel_type == R_IA_64_SECREL32LSB) - return (4); - else if (rel_type == R_IA_64_DIR64LSB) - return (8); - break; - default: - break; - } - - /* unknown relocation. */ - return (0); -} - -int -_dwarf_reloc_section_init(Dwarf_P_Debug dbg, Dwarf_Rel_Section *drsp, - Dwarf_P_Section ref, Dwarf_Error *error) -{ - Dwarf_Rel_Section drs; - char name[128]; - int pseudo; - - assert(dbg != NULL && drsp != NULL && ref != NULL); - - if ((drs = calloc(1, sizeof(struct _Dwarf_Rel_Section))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - drs->drs_ref = ref; - - /* - * FIXME The logic here is most likely wrong. It should - * be the ISA that determines relocation type. - */ - if (dbg->dbgp_flags & DW_DLC_SIZE_64) - drs->drs_addend = 1; - else - drs->drs_addend = 0; - - if (dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) - pseudo = 1; - else - pseudo = 0; - - snprintf(name, sizeof(name), "%s%s", - drs->drs_addend ? ".rela" : ".rel", ref->ds_name); - if (_dwarf_section_init(dbg, &drs->drs_ds, name, pseudo, error) != - DW_DLE_NONE) { - free(drs); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - STAILQ_INIT(&drs->drs_dre); - STAILQ_INSERT_TAIL(&dbg->dbgp_drslist, drs, drs_next); - dbg->dbgp_drscnt++; - *drsp = drs; - - return (DW_DLE_NONE); -} - -void -_dwarf_reloc_section_free(Dwarf_P_Debug dbg, Dwarf_Rel_Section *drsp) -{ - Dwarf_Rel_Section drs, tdrs; - Dwarf_Rel_Entry dre, tdre; - - assert(dbg != NULL && drsp != NULL); - - if (*drsp == NULL) - return; - - STAILQ_FOREACH_SAFE(drs, &dbg->dbgp_drslist, drs_next, tdrs) { - if (drs != *drsp) - continue; - STAILQ_REMOVE(&dbg->dbgp_drslist, drs, _Dwarf_Rel_Section, - drs_next); - STAILQ_FOREACH_SAFE(dre, &drs->drs_dre, dre_next, tdre) { - STAILQ_REMOVE(&drs->drs_dre, dre, _Dwarf_Rel_Entry, - dre_next); - free(dre); - } - if ((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) - _dwarf_section_free(dbg, &drs->drs_ds); - else { - if (drs->drs_ds->ds_name) - free(drs->drs_ds->ds_name); - free(drs->drs_ds); - } - free(drs); - *drsp = NULL; - dbg->dbgp_drscnt--; - break; - } -} - -int -_dwarf_reloc_entry_add(Dwarf_P_Debug dbg, Dwarf_Rel_Section drs, - Dwarf_P_Section ds, unsigned char type, unsigned char length, - Dwarf_Unsigned offset, Dwarf_Unsigned symndx, Dwarf_Unsigned addend, - const char *secname, Dwarf_Error *error) -{ - Dwarf_Rel_Entry dre; - Dwarf_Unsigned reloff; - int ret; - - assert(drs != NULL); - assert(offset <= ds->ds_size); - reloff = offset; - - /* - * If the DW_DLC_SYMBOLIC_RELOCATIONS flag is set or ElfXX_Rel - * is used instead of ELfXX_Rela, we need to write the addend - * in the storage unit to be relocated. Otherwise write 0 in the - * storage unit and the addend will be written into relocation - * section later. - */ - if ((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) || - drs->drs_addend == 0) - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, &offset, - addend, length, error); - else - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, &offset, - 0, length, error); - if (ret != DW_DLE_NONE) - return (ret); - if (offset > ds->ds_size) - ds->ds_size = offset; - - if ((dre = calloc(1, sizeof(struct _Dwarf_Rel_Entry))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INSERT_TAIL(&drs->drs_dre, dre, dre_next); - dre->dre_type = type; - dre->dre_length = length; - dre->dre_offset = reloff; - dre->dre_symndx = symndx; - dre->dre_addend = addend; - dre->dre_secname = secname; - drs->drs_drecnt++; - - return (DW_DLE_NONE); -} - -int -_dwarf_reloc_entry_add_pair(Dwarf_P_Debug dbg, Dwarf_Rel_Section drs, - Dwarf_P_Section ds, unsigned char length, Dwarf_Unsigned offset, - Dwarf_Unsigned symndx, Dwarf_Unsigned esymndx, Dwarf_Unsigned symoff, - Dwarf_Unsigned esymoff, Dwarf_Error *error) -{ - Dwarf_Rel_Entry dre; - Dwarf_Unsigned reloff; - int ret; - - assert(drs != NULL); - assert(offset <= ds->ds_size); - assert(dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS); - reloff = offset; - - /* Write net offset into section stream. */ - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, &offset, - esymoff - symoff, length, error); - if (ret != DW_DLE_NONE) - return (ret); - if (offset > ds->ds_size) - ds->ds_size = offset; - - if ((dre = calloc(2, sizeof(struct _Dwarf_Rel_Entry))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INSERT_TAIL(&drs->drs_dre, &dre[0], dre_next); - STAILQ_INSERT_TAIL(&drs->drs_dre, &dre[1], dre_next); - dre[0].dre_type = dwarf_drt_first_of_length_pair; - dre[0].dre_length = length; - dre[0].dre_offset = reloff; - dre[0].dre_symndx = symndx; - dre[0].dre_addend = 0; - dre[0].dre_secname = NULL; - dre[1].dre_type = dwarf_drt_second_of_length_pair; - dre[1].dre_length = length; - dre[1].dre_offset = reloff; - dre[1].dre_symndx = esymndx; - dre[1].dre_addend = 0; - dre[1].dre_secname = NULL; - drs->drs_drecnt += 2; - - return (DW_DLE_NONE); -} - -int -_dwarf_reloc_section_finalize(Dwarf_P_Debug dbg, Dwarf_Rel_Section drs, - Dwarf_Error *error) -{ - Dwarf_P_Section ds; - Dwarf_Unsigned unit; - int ret, size; - - assert(dbg != NULL && drs != NULL && drs->drs_ds != NULL && - drs->drs_ref != NULL); - - ds = drs->drs_ds; - - /* - * Calculate the size (in bytes) of the relocation section. - */ - if (dbg->dbgp_flags & DW_DLC_SIZE_64) - unit = drs->drs_addend ? sizeof(Elf64_Rela) : sizeof(Elf64_Rel); - else - unit = drs->drs_addend ? sizeof(Elf32_Rela) : sizeof(Elf32_Rel); - assert(ds->ds_size == 0); - size = drs->drs_drecnt * unit; - - /* - * Discard this relocation section if there is no entry in it. - */ - if (size == 0) { - _dwarf_reloc_section_free(dbg, &drs); - return (DW_DLE_NONE); - } - - /* - * If we are under stream mode, realloc the section data block to - * this size. - */ - if ((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) { - ds->ds_cap = size; - if ((ds->ds_data = realloc(ds->ds_data, (size_t) ds->ds_cap)) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - /* - * Notify the application the creation of this relocation section. - * Note that the section link here should point to the .symtab - * section, we set it to 0 since we have no way to know .symtab - * section index. - */ - ret = _dwarf_pro_callback(dbg, ds->ds_name, size, - drs->drs_addend ? SHT_RELA : SHT_REL, 0, 0, drs->drs_ref->ds_ndx, - &ds->ds_symndx, NULL); - if (ret < 0) { - DWARF_SET_ERROR(dbg, error, DW_DLE_ELF_SECT_ERR); - return (DW_DLE_ELF_SECT_ERR); - } - ds->ds_ndx = ret; - - return (DW_DLE_NONE); -} - -int -_dwarf_reloc_section_gen(Dwarf_P_Debug dbg, Dwarf_Rel_Section drs, - Dwarf_Error *error) -{ - Dwarf_Rel_Entry dre; - Dwarf_P_Section ds; - Dwarf_Unsigned type; - int ret; - - assert((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0); - assert(drs->drs_ds != NULL && drs->drs_ds->ds_size == 0); - assert(!STAILQ_EMPTY(&drs->drs_dre)); - ds = drs->drs_ds; - - STAILQ_FOREACH(dre, &drs->drs_dre, dre_next) { - assert(dre->dre_length == 4 || dre->dre_length == 8); - type = _dwarf_get_reloc_type(dbg, dre->dre_length == 8); - if (dbg->dbgp_flags & DW_DLC_SIZE_64) { - /* Write r_offset (8 bytes) */ - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, - &ds->ds_size, dre->dre_offset, 8, error); - if (ret != DW_DLE_NONE) - return (ret); - /* Write r_info (8 bytes) */ - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, - &ds->ds_size, ELF64_R_INFO(dre->dre_symndx, type), - 8, error); - if (ret != DW_DLE_NONE) - return (ret); - /* Write r_addend (8 bytes) */ - if (drs->drs_addend) { - ret = dbg->write_alloc(&ds->ds_data, - &ds->ds_cap, &ds->ds_size, dre->dre_addend, - 8, error); - if (ret != DW_DLE_NONE) - return (ret); - } - } else { - /* Write r_offset (4 bytes) */ - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, - &ds->ds_size, dre->dre_offset, 4, error); - if (ret != DW_DLE_NONE) - return (ret); - /* Write r_info (4 bytes) */ - ret = dbg->write_alloc(&ds->ds_data, &ds->ds_cap, - &ds->ds_size, ELF32_R_INFO(dre->dre_symndx, type), - 4, error); - if (ret != DW_DLE_NONE) - return (ret); - /* Write r_addend (4 bytes) */ - if (drs->drs_addend) { - ret = dbg->write_alloc(&ds->ds_data, - &ds->ds_cap, &ds->ds_size, dre->dre_addend, - 4, error); - if (ret != DW_DLE_NONE) - return (ret); - } - } - } - assert(ds->ds_size == ds->ds_cap); - - return (DW_DLE_NONE); -} - -int -_dwarf_reloc_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_Rel_Section drs; - Dwarf_Rel_Entry dre; - Dwarf_P_Section ds; - int ret; - - STAILQ_FOREACH(drs, &dbg->dbgp_drslist, drs_next) { - /* - * Update relocation entries: translate any section name - * reference to section symbol index. - */ - STAILQ_FOREACH(dre, &drs->drs_dre, dre_next) { - if (dre->dre_secname == NULL) - continue; - ds = _dwarf_pro_find_section(dbg, dre->dre_secname); - assert(ds != NULL && ds->ds_symndx != 0); - dre->dre_symndx = ds->ds_symndx; - } - - /* - * Generate ELF relocation section if we are under stream - * mode. - */ - if ((dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) == 0) { - ret = _dwarf_reloc_section_gen(dbg, drs, error); - if (ret != DW_DLE_NONE) - return (ret); - } - } - - return (DW_DLE_NONE); -} - -void -_dwarf_reloc_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_Rel_Section drs, tdrs; - Dwarf_Rel_Entry dre, tdre; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - STAILQ_FOREACH_SAFE(drs, &dbg->dbgp_drslist, drs_next, tdrs) { - STAILQ_REMOVE(&dbg->dbgp_drslist, drs, _Dwarf_Rel_Section, - drs_next); - free(drs->drs_drd); - STAILQ_FOREACH_SAFE(dre, &drs->drs_dre, dre_next, tdre) { - STAILQ_REMOVE(&drs->drs_dre, dre, _Dwarf_Rel_Entry, - dre_next); - free(dre); - } - if (dbg->dbgp_flags & DW_DLC_SYMBOLIC_RELOCATIONS) { - if (drs->drs_ds) { - if (drs->drs_ds->ds_name) - free(drs->drs_ds->ds_name); - free(drs->drs_ds); - } - } - free(drs); - } - dbg->dbgp_drscnt = 0; - dbg->dbgp_drspos = NULL; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_rw.c b/contrib/elftoolchain/libdwarf/libdwarf_rw.c deleted file mode 100644 index 0b2b68d6..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_rw.c +++ /dev/null @@ -1,574 +0,0 @@ -/*- - * Copyright (c) 2007 John Birrell (jb@freebsd.org) - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -uint64_t -_dwarf_read_lsb(uint8_t *data, uint64_t *offsetp, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = data + *offsetp; - - ret = 0; - switch (bytes_to_read) { - case 8: - ret |= ((uint64_t) src[4]) << 32 | ((uint64_t) src[5]) << 40; - ret |= ((uint64_t) src[6]) << 48 | ((uint64_t) src[7]) << 56; - /* FALLTHROUGH */ - case 4: - ret |= ((uint64_t) src[2]) << 16 | ((uint64_t) src[3]) << 24; - /* FALLTHROUGH */ - case 2: - ret |= ((uint64_t) src[1]) << 8; - /* FALLTHROUGH */ - case 1: - ret |= src[0]; - break; - default: - return (0); - } - - *offsetp += bytes_to_read; - - return (ret); -} - -uint64_t -_dwarf_decode_lsb(uint8_t **data, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = *data; - - ret = 0; - switch (bytes_to_read) { - case 8: - ret |= ((uint64_t) src[4]) << 32 | ((uint64_t) src[5]) << 40; - ret |= ((uint64_t) src[6]) << 48 | ((uint64_t) src[7]) << 56; - /* FALLTHROUGH */ - case 4: - ret |= ((uint64_t) src[2]) << 16 | ((uint64_t) src[3]) << 24; - /* FALLTHROUGH */ - case 2: - ret |= ((uint64_t) src[1]) << 8; - /* FALLTHROUGH */ - case 1: - ret |= src[0]; - break; - default: - return (0); - } - - *data += bytes_to_read; - - return (ret); -} - -uint64_t -_dwarf_read_msb(uint8_t *data, uint64_t *offsetp, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = data + *offsetp; - - switch (bytes_to_read) { - case 1: - ret = src[0]; - break; - case 2: - ret = src[1] | ((uint64_t) src[0]) << 8; - break; - case 4: - ret = src[3] | ((uint64_t) src[2]) << 8; - ret |= ((uint64_t) src[1]) << 16 | ((uint64_t) src[0]) << 24; - break; - case 8: - ret = src[7] | ((uint64_t) src[6]) << 8; - ret |= ((uint64_t) src[5]) << 16 | ((uint64_t) src[4]) << 24; - ret |= ((uint64_t) src[3]) << 32 | ((uint64_t) src[2]) << 40; - ret |= ((uint64_t) src[1]) << 48 | ((uint64_t) src[0]) << 56; - break; - default: - return (0); - } - - *offsetp += bytes_to_read; - - return (ret); -} - -uint64_t -_dwarf_decode_msb(uint8_t **data, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = *data; - - ret = 0; - switch (bytes_to_read) { - case 1: - ret = src[0]; - break; - case 2: - ret = src[1] | ((uint64_t) src[0]) << 8; - break; - case 4: - ret = src[3] | ((uint64_t) src[2]) << 8; - ret |= ((uint64_t) src[1]) << 16 | ((uint64_t) src[0]) << 24; - break; - case 8: - ret = src[7] | ((uint64_t) src[6]) << 8; - ret |= ((uint64_t) src[5]) << 16 | ((uint64_t) src[4]) << 24; - ret |= ((uint64_t) src[3]) << 32 | ((uint64_t) src[2]) << 40; - ret |= ((uint64_t) src[1]) << 48 | ((uint64_t) src[0]) << 56; - break; - default: - return (0); - break; - } - - *data += bytes_to_read; - - return (ret); -} - -void -_dwarf_write_lsb(uint8_t *data, uint64_t *offsetp, uint64_t value, - int bytes_to_write) -{ - uint8_t *dst; - - dst = data + *offsetp; - - switch (bytes_to_write) { - case 8: - dst[7] = (value >> 56) & 0xff; - dst[6] = (value >> 48) & 0xff; - dst[5] = (value >> 40) & 0xff; - dst[4] = (value >> 32) & 0xff; - /* FALLTHROUGH */ - case 4: - dst[3] = (value >> 24) & 0xff; - dst[2] = (value >> 16) & 0xff; - /* FALLTHROUGH */ - case 2: - dst[1] = (value >> 8) & 0xff; - /* FALLTHROUGH */ - case 1: - dst[0] = value & 0xff; - break; - default: - return; - } - - *offsetp += bytes_to_write; -} - -int -_dwarf_write_lsb_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - uint64_t value, int bytes_to_write, Dwarf_Error *error) -{ - - assert(*size > 0); - - while (*offsetp + bytes_to_write > *size) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - _dwarf_write_lsb(*block, offsetp, value, bytes_to_write); - - return (DW_DLE_NONE); -} - -void -_dwarf_write_msb(uint8_t *data, uint64_t *offsetp, uint64_t value, - int bytes_to_write) -{ - uint8_t *dst; - - dst = data + *offsetp; - - switch (bytes_to_write) { - case 8: - dst[7] = value & 0xff; - dst[6] = (value >> 8) & 0xff; - dst[5] = (value >> 16) & 0xff; - dst[4] = (value >> 24) & 0xff; - value >>= 32; - /* FALLTHROUGH */ - case 4: - dst[3] = value & 0xff; - dst[2] = (value >> 8) & 0xff; - value >>= 16; - /* FALLTHROUGH */ - case 2: - dst[1] = value & 0xff; - value >>= 8; - /* FALLTHROUGH */ - case 1: - dst[0] = value & 0xff; - break; - default: - return; - } - - *offsetp += bytes_to_write; -} - -int -_dwarf_write_msb_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - uint64_t value, int bytes_to_write, Dwarf_Error *error) -{ - - assert(*size > 0); - - while (*offsetp + bytes_to_write > *size) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - _dwarf_write_msb(*block, offsetp, value, bytes_to_write); - - return (DW_DLE_NONE); -} - -int64_t -_dwarf_read_sleb128(uint8_t *data, uint64_t *offsetp) -{ - int64_t ret = 0; - uint8_t b; - int shift = 0; - uint8_t *src; - - src = data + *offsetp; - - do { - b = *src++; - ret |= ((b & 0x7f) << shift); - (*offsetp)++; - shift += 7; - } while ((b & 0x80) != 0); - - if (shift < 64 && (b & 0x40) != 0) - ret |= (-1 << shift); - - return (ret); -} - -int -_dwarf_write_sleb128(uint8_t *data, uint8_t *end, int64_t val) -{ - uint8_t *p; - - p = data; - - for (;;) { - if (p >= end) - return (-1); - *p = val & 0x7f; - val >>= 7; - if ((val == 0 && (*p & 0x40) == 0) || - (val == -1 && (*p & 0x40) != 0)) { - p++; - break; - } - *p++ |= 0x80; - } - - return (p - data); -} - -int -_dwarf_write_sleb128_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - int64_t val, Dwarf_Error *error) -{ - int len; - - assert(*size > 0); - - while ((len = _dwarf_write_sleb128(*block + *offsetp, *block + *size, - val)) < 0) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - *offsetp += len; - - return (DW_DLE_NONE); -} - -uint64_t -_dwarf_read_uleb128(uint8_t *data, uint64_t *offsetp) -{ - uint64_t ret = 0; - uint8_t b; - int shift = 0; - uint8_t *src; - - src = data + *offsetp; - - do { - b = *src++; - ret |= ((b & 0x7f) << shift); - (*offsetp)++; - shift += 7; - } while ((b & 0x80) != 0); - - return (ret); -} - -int -_dwarf_write_uleb128(uint8_t *data, uint8_t *end, uint64_t val) -{ - uint8_t *p; - - p = data; - - do { - if (p >= end) - return (-1); - *p = val & 0x7f; - val >>= 7; - if (val > 0) - *p |= 0x80; - p++; - } while (val > 0); - - return (p - data); -} - -int -_dwarf_write_uleb128_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - uint64_t val, Dwarf_Error *error) -{ - int len; - - assert(*size > 0); - - while ((len = _dwarf_write_uleb128(*block + *offsetp, *block + *size, - val)) < 0) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - *offsetp += len; - - return (DW_DLE_NONE); -} - -int64_t -_dwarf_decode_sleb128(uint8_t **dp) -{ - int64_t ret = 0; - uint8_t b; - int shift = 0; - - uint8_t *src = *dp; - - do { - b = *src++; - ret |= ((b & 0x7f) << shift); - shift += 7; - } while ((b & 0x80) != 0); - - if (shift < 64 && (b & 0x40) != 0) - ret |= (-1 << shift); - - *dp = src; - - return (ret); -} - -uint64_t -_dwarf_decode_uleb128(uint8_t **dp) -{ - uint64_t ret = 0; - uint8_t b; - int shift = 0; - - uint8_t *src = *dp; - - do { - b = *src++; - ret |= ((b & 0x7f) << shift); - shift += 7; - } while ((b & 0x80) != 0); - - *dp = src; - - return (ret); -} - -char * -_dwarf_read_string(void *data, Dwarf_Unsigned size, uint64_t *offsetp) -{ - char *ret, *src; - - ret = src = (char *) data + *offsetp; - - while (*src != '\0' && *offsetp < size) { - src++; - (*offsetp)++; - } - - if (*src == '\0' && *offsetp < size) - (*offsetp)++; - - return (ret); -} - -void -_dwarf_write_string(void *data, uint64_t *offsetp, char *string) -{ - char *dst; - - dst = (char *) data + *offsetp; - strcpy(dst, string); - (*offsetp) += strlen(string) + 1; -} - -int -_dwarf_write_string_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - char *string, Dwarf_Error *error) -{ - size_t len; - - assert(*size > 0); - - len = strlen(string) + 1; - while (*offsetp + len > *size) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - _dwarf_write_string(*block, offsetp, string); - - return (DW_DLE_NONE); -} - -uint8_t * -_dwarf_read_block(void *data, uint64_t *offsetp, uint64_t length) -{ - uint8_t *ret, *src; - - ret = src = (uint8_t *) data + *offsetp; - - (*offsetp) += length; - - return (ret); -} - -void -_dwarf_write_block(void *data, uint64_t *offsetp, uint8_t *blk, - uint64_t length) -{ - uint8_t *dst; - - dst = (uint8_t *) data + *offsetp; - memcpy(dst, blk, length); - (*offsetp) += length; -} - -int -_dwarf_write_block_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - uint8_t *blk, uint64_t length, Dwarf_Error *error) -{ - - assert(*size > 0); - - while (*offsetp + length > *size) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - _dwarf_write_block(*block, offsetp, blk, length); - - return (DW_DLE_NONE); -} - -void -_dwarf_write_padding(void *data, uint64_t *offsetp, uint8_t byte, - uint64_t length) -{ - uint8_t *dst; - - dst = (uint8_t *) data + *offsetp; - memset(dst, byte, length); - (*offsetp) += length; -} - -int -_dwarf_write_padding_alloc(uint8_t **block, uint64_t *size, uint64_t *offsetp, - uint8_t byte, uint64_t cnt, Dwarf_Error *error) -{ - assert(*size > 0); - - while (*offsetp + cnt > *size) { - *size *= 2; - *block = realloc(*block, (size_t) *size); - if (*block == NULL) { - DWARF_SET_ERROR(NULL, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - _dwarf_write_padding(*block, offsetp, byte, cnt); - - return (DW_DLE_NONE); -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_sections.c b/contrib/elftoolchain/libdwarf/libdwarf_sections.c deleted file mode 100644 index a3dc11cc..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_sections.c +++ /dev/null @@ -1,280 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -#define _SECTION_INIT_SIZE 128 - -int -_dwarf_section_init(Dwarf_P_Debug dbg, Dwarf_P_Section *dsp, const char *name, - int pseudo, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - - assert(dbg != NULL && dsp != NULL && name != NULL); - - if ((ds = calloc(1, sizeof(struct _Dwarf_P_Section))) == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - if ((ds->ds_name = strdup(name)) == NULL) { - free(ds); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - if (!pseudo) { - ds->ds_cap = _SECTION_INIT_SIZE; - if ((ds->ds_data = malloc((size_t) ds->ds_cap)) == NULL) { - free(ds->ds_name); - free(ds); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - STAILQ_INSERT_TAIL(&dbg->dbgp_seclist, ds, ds_next); - dbg->dbgp_seccnt++; - } - - *dsp = ds; - - return (DW_DLE_NONE); -} - -void -_dwarf_section_free(Dwarf_P_Debug dbg, Dwarf_P_Section *dsp) -{ - Dwarf_P_Section ds, tds; - - assert(dbg != NULL && dsp != NULL); - - if (*dsp == NULL) - return; - - STAILQ_FOREACH_SAFE(ds, &dbg->dbgp_seclist, ds_next, tds) { - if (ds == *dsp) { - STAILQ_REMOVE(&dbg->dbgp_seclist, ds, _Dwarf_P_Section, - ds_next); - dbg->dbgp_seccnt--; - break; - } - } - ds = *dsp; - if (ds->ds_name) - free(ds->ds_name); - if (ds->ds_data) - free(ds->ds_data); - free(ds); - *dsp = NULL; -} - -int -_dwarf_pro_callback(Dwarf_P_Debug dbg, char *name, int size, - Dwarf_Unsigned type, Dwarf_Unsigned flags, Dwarf_Unsigned link, - Dwarf_Unsigned info, Dwarf_Unsigned *symndx, int *error) -{ - int e, ret, isymndx; - - assert(dbg != NULL && name != NULL && symndx != NULL); - - if (dbg->dbgp_func_b) - ret = dbg->dbgp_func_b(name, size, type, flags, link, info, - symndx, &e); - else { - ret = dbg->dbgp_func(name, size, type, flags, link, info, - &isymndx, &e); - *symndx = isymndx; - } - if (ret < 0) { - if (error) - *error = e; - } - - return (ret); -} - -int -_dwarf_section_callback(Dwarf_P_Debug dbg, Dwarf_P_Section ds, - Dwarf_Unsigned type, Dwarf_Unsigned flags, Dwarf_Unsigned link, - Dwarf_Unsigned info, Dwarf_Error *error) -{ - int ret, ndx; - - ndx = _dwarf_pro_callback(dbg, ds->ds_name, (int) ds->ds_size, - type, flags, link, info, &ds->ds_symndx, NULL); - if (ndx < 0) { - ret = DW_DLE_ELF_SECT_ERR; - DWARF_SET_ERROR(dbg, error, ret); - return (ret); - } - ds->ds_ndx = ndx; - - return (DW_DLE_NONE); -} - -int -_dwarf_generate_sections(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - int ret; - - /* Produce .debug_info section. */ - if ((ret = _dwarf_info_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_abbrev section. */ - if ((ret = _dwarf_abbrev_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_line section. */ - if ((ret = _dwarf_lineno_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_frame section. */ - if ((ret = _dwarf_frame_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_aranges section. */ - if ((ret = _dwarf_arange_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_macinfo section. */ - if ((ret = _dwarf_macinfo_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_pubnames section. */ - if ((ret = _dwarf_nametbl_gen(dbg, ".debug_pubnames", dbg->dbgp_pubs, - error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_weaknames section. */ - if ((ret = _dwarf_nametbl_gen(dbg, ".debug_weaknames", dbg->dbgp_weaks, - error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_funcnames section. */ - if ((ret = _dwarf_nametbl_gen(dbg, ".debug_funcnames", dbg->dbgp_funcs, - error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_typenames section. */ - if ((ret = _dwarf_nametbl_gen(dbg, ".debug_typenames", dbg->dbgp_types, - error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_varnames section. */ - if ((ret = _dwarf_nametbl_gen(dbg, ".debug_varnames", dbg->dbgp_vars, - error)) != DW_DLE_NONE) - return (ret); - - /* Produce .debug_str section. */ - if ((ret = _dwarf_strtab_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Finally, update and generate all relocation sections. */ - if ((ret = _dwarf_reloc_gen(dbg, error)) != DW_DLE_NONE) - return (ret); - - /* Set section/relocation iterator to the first element. */ - dbg->dbgp_secpos = STAILQ_FIRST(&dbg->dbgp_seclist); - dbg->dbgp_drspos = STAILQ_FIRST(&dbg->dbgp_drslist); - - return (DW_DLE_NONE); -} - -Dwarf_Section * -_dwarf_find_section(Dwarf_Debug dbg, const char *name) -{ - Dwarf_Section *ds; - Dwarf_Half i; - - assert(dbg != NULL && name != NULL); - - for (i = 0; i < dbg->dbg_seccnt; i++) { - ds = &dbg->dbg_section[i]; - if (ds->ds_name != NULL && !strcmp(ds->ds_name, name)) - return (ds); - } - - return (NULL); -} - -Dwarf_Section * -_dwarf_find_next_types_section(Dwarf_Debug dbg, Dwarf_Section *ds) -{ - - assert(dbg != NULL); - - if (ds == NULL) - return (_dwarf_find_section(dbg, ".debug_types")); - - assert(ds->ds_name != NULL); - - do { - ds++; - if (ds->ds_name != NULL && - !strcmp(ds->ds_name, ".debug_types")) - return (ds); - } while (ds->ds_name != NULL); - - return (NULL); -} - -Dwarf_P_Section -_dwarf_pro_find_section(Dwarf_P_Debug dbg, const char *name) -{ - Dwarf_P_Section ds; - - assert(dbg != NULL && name != NULL); - - STAILQ_FOREACH(ds, &dbg->dbgp_seclist, ds_next) { - if (ds->ds_name != NULL && !strcmp(ds->ds_name ,name)) - return (ds); - } - - return (NULL); -} - -void -_dwarf_section_cleanup(Dwarf_P_Debug dbg) -{ - Dwarf_P_Section ds, tds; - - assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE); - - STAILQ_FOREACH_SAFE(ds, &dbg->dbgp_seclist, ds_next, tds) { - STAILQ_REMOVE(&dbg->dbgp_seclist, ds, _Dwarf_P_Section, - ds_next); - if (ds->ds_name) - free(ds->ds_name); - if (ds->ds_data) - free(ds->ds_data); - free(ds); - } - dbg->dbgp_seccnt = 0; - dbg->dbgp_secpos = 0; -} diff --git a/contrib/elftoolchain/libdwarf/libdwarf_str.c b/contrib/elftoolchain/libdwarf/libdwarf_str.c deleted file mode 100644 index 36a62eaf..00000000 --- a/contrib/elftoolchain/libdwarf/libdwarf_str.c +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * Copyright (c) 2009,2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "_libdwarf.h" - -ELFTC_VCSID("$Id$"); - -#define _INIT_DWARF_STRTAB_SIZE 1024 - -int -_dwarf_strtab_add(Dwarf_Debug dbg, char *string, uint64_t *off, - Dwarf_Error *error) -{ - size_t len; - - assert(dbg != NULL && string != NULL); - - len = strlen(string) + 1; - while (dbg->dbg_strtab_size + len > dbg->dbg_strtab_cap) { - dbg->dbg_strtab_cap *= 2; - dbg->dbg_strtab = realloc(dbg->dbg_strtab, - (size_t) dbg->dbg_strtab_cap); - if (dbg->dbg_strtab == NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - } - - if (off != NULL) - *off = dbg->dbg_strtab_size; - - memcpy(&dbg->dbg_strtab[dbg->dbg_strtab_size], string, len - 1); - dbg->dbg_strtab_size += len; - dbg->dbg_strtab[dbg->dbg_strtab_size - 1] = '\0'; - - return (DW_DLE_NONE); -} - -char * -_dwarf_strtab_get_table(Dwarf_Debug dbg) -{ - - assert(dbg != NULL); - - return (dbg->dbg_strtab); -} - -int -_dwarf_strtab_init(Dwarf_Debug dbg, Dwarf_Error *error) -{ - Dwarf_Section *ds; - - assert(dbg != NULL); - - if (dbg->dbg_mode == DW_DLC_READ || dbg->dbg_mode == DW_DLC_RDWR) { - ds = _dwarf_find_section(dbg, ".debug_str"); - if (ds == NULL) { - dbg->dbg_strtab = NULL; - dbg->dbg_strtab_cap = dbg->dbg_strtab_size = 0; - return (DW_DLE_NONE); - } - - dbg->dbg_strtab_cap = dbg->dbg_strtab_size = ds->ds_size; - - if (dbg->dbg_mode == DW_DLC_RDWR) { - if ((dbg->dbg_strtab = malloc((size_t) ds->ds_size)) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - memcpy(dbg->dbg_strtab, ds->ds_data, ds->ds_size); - } else - dbg->dbg_strtab = (char *) ds->ds_data; - } else { - /* DW_DLC_WRITE */ - - dbg->dbg_strtab_cap = _INIT_DWARF_STRTAB_SIZE; - dbg->dbg_strtab_size = 0; - - if ((dbg->dbg_strtab = malloc((size_t) dbg->dbg_strtab_cap)) == - NULL) { - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - - dbg->dbg_strtab[0] = '\0'; - } - - return (DW_DLE_NONE); -} - -void -_dwarf_strtab_cleanup(Dwarf_Debug dbg) -{ - - assert(dbg != NULL); - - if (dbg->dbg_mode == DW_DLC_RDWR || dbg->dbg_mode == DW_DLC_WRITE) - free(dbg->dbg_strtab); -} - -int -_dwarf_strtab_gen(Dwarf_P_Debug dbg, Dwarf_Error *error) -{ - Dwarf_P_Section ds; - int ret; - - assert(dbg != NULL); - - if ((ret = _dwarf_section_init(dbg, &ds, ".debug_str", 0, error)) != - DW_DLE_NONE) - return (ret); - - if (dbg->dbg_strtab_size > ds->ds_cap) { - ds->ds_data = realloc(ds->ds_data, - (size_t) dbg->dbg_strtab_size); - if (ds->ds_data == NULL) { - _dwarf_section_free(dbg, &ds); - DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY); - return (DW_DLE_MEMORY); - } - ds->ds_cap = dbg->dbg_strtab_size; - } - - memcpy(ds->ds_data, dbg->dbg_strtab, dbg->dbg_strtab_size); - ds->ds_size = dbg->dbg_strtab_size; - - /* - * Inform application the creation of .debug_str ELF section. - * Note that .debug_str use a different format than usual ELF - * string table, so it should not have SHT_STRTAB as its type. - */ - ret = _dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error); - - return (ret); -} diff --git a/contrib/elftoolchain/libdwarf/os.NetBSD.mk b/contrib/elftoolchain/libdwarf/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/libdwarf/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/libelf/Makefile b/contrib/elftoolchain/libelf/Makefile deleted file mode 100644 index e75f476b..00000000 --- a/contrib/elftoolchain/libelf/Makefile +++ /dev/null @@ -1,166 +0,0 @@ -# $Id$ - -TOP= .. - -LIB= elf - -SRCS= elf.c \ - elf_begin.c \ - elf_cntl.c \ - elf_end.c elf_errmsg.c elf_errno.c \ - elf_data.c \ - elf_fill.c \ - elf_flag.c \ - elf_getarhdr.c \ - elf_getarsym.c \ - elf_getbase.c \ - elf_getident.c \ - elf_hash.c \ - elf_kind.c \ - elf_memory.c \ - elf_next.c \ - elf_open.c \ - elf_rand.c \ - elf_rawfile.c \ - elf_phnum.c \ - elf_shnum.c \ - elf_shstrndx.c \ - elf_scn.c \ - elf_strptr.c \ - elf_update.c \ - elf_version.c \ - gelf_cap.c \ - gelf_checksum.c \ - gelf_dyn.c \ - gelf_ehdr.c \ - gelf_getclass.c \ - gelf_fsize.c \ - gelf_move.c \ - gelf_phdr.c \ - gelf_rel.c \ - gelf_rela.c \ - gelf_shdr.c \ - gelf_sym.c \ - gelf_syminfo.c \ - gelf_symshndx.c \ - gelf_xlate.c \ - libelf_align.c \ - libelf_allocate.c \ - libelf_ar.c \ - libelf_ar_util.c \ - libelf_checksum.c \ - libelf_data.c \ - libelf_ehdr.c \ - libelf_elfmachine.c \ - libelf_extended.c \ - libelf_memory.c \ - libelf_open.c \ - libelf_phdr.c \ - libelf_shdr.c \ - libelf_xlate.c \ - ${GENSRCS} - -INCS= libelf.h gelf.h -INCSDIR= /usr/include - -GENSRCS= libelf_fsize.c libelf_msize.c libelf_convert.c -CLEANFILES= ${GENSRCS} - -SHLIB_MAJOR= 1 - -WARNS?= 6 - -MAN= elf.3 \ - elf_begin.3 \ - elf_cntl.3 \ - elf_end.3 \ - elf_errmsg.3 \ - elf_fill.3 \ - elf_flagdata.3 \ - elf_getarhdr.3 \ - elf_getarsym.3 \ - elf_getbase.3 \ - elf_getdata.3 \ - elf_getident.3 \ - elf_getscn.3 \ - elf_getphdrnum.3 \ - elf_getphnum.3 \ - elf_getshdrnum.3 \ - elf_getshnum.3 \ - elf_getshdrstrndx.3 \ - elf_getshstrndx.3 \ - elf_hash.3 \ - elf_kind.3 \ - elf_memory.3 \ - elf_next.3 \ - elf_open.3 \ - elf_rawfile.3 \ - elf_rand.3 \ - elf_strptr.3 \ - elf_update.3 \ - elf_version.3 \ - gelf.3 \ - gelf_checksum.3 \ - gelf_fsize.3 \ - gelf_getcap.3 \ - gelf_getclass.3 \ - gelf_getdyn.3 \ - gelf_getehdr.3 \ - gelf_getmove.3 \ - gelf_getphdr.3 \ - gelf_getrel.3 \ - gelf_getrela.3 \ - gelf_getshdr.3 \ - gelf_getsym.3 \ - gelf_getsyminfo.3 \ - gelf_getsymshndx.3 \ - gelf_newehdr.3 \ - gelf_newphdr.3 \ - gelf_update_ehdr.3 \ - gelf_xlatetof.3 - -MLINKS+= \ - elf_errmsg.3 elf_errno.3 \ - elf_flagdata.3 elf_flagarhdr.3 \ - elf_flagdata.3 elf_flagehdr.3 \ - elf_flagdata.3 elf_flagelf.3 \ - elf_flagdata.3 elf_flagphdr.3 \ - elf_flagdata.3 elf_flagscn.3 \ - elf_flagdata.3 elf_flagshdr.3 \ - elf_getdata.3 elf_newdata.3 \ - elf_getdata.3 elf_rawdata.3 \ - elf_getscn.3 elf_ndxscn.3 \ - elf_getscn.3 elf_newscn.3 \ - elf_getscn.3 elf_nextscn.3 \ - elf_getshstrndx.3 elf_setshstrndx.3 \ - elf_open.3 elf_openmemory.3 \ - gelf_getcap.3 gelf_update_cap.3 \ - gelf_getdyn.3 gelf_update_dyn.3 \ - gelf_getmove.3 gelf_update_move.3 \ - gelf_getrel.3 gelf_update_rel.3 \ - gelf_getrela.3 gelf_update_rela.3 \ - gelf_getsym.3 gelf_update_sym.3 \ - gelf_getsyminfo.3 gelf_update_syminfo.3 \ - gelf_getsymshndx.3 gelf_update_symshndx.3 \ - gelf_update_ehdr.3 gelf_update_phdr.3 \ - gelf_update_ehdr.3 gelf_update_shdr.3 \ - gelf_xlatetof.3 gelf_xlatetom.3 - -.for E in 32 64 -MLINKS+= \ - gelf_checksum.3 elf${E}_checksum.3 \ - gelf_fsize.3 elf${E}_fsize.3 \ - gelf_getehdr.3 elf${E}_getehdr.3 \ - gelf_getphdr.3 elf${E}_getphdr.3 \ - gelf_getshdr.3 elf${E}_getshdr.3 \ - gelf_newehdr.3 elf${E}_newehdr.3 \ - gelf_newphdr.3 elf${E}_newphdr.3 \ - gelf_xlatetof.3 elf${E}_xlatetof.3 \ - gelf_xlatetof.3 elf${E}_xlatetom.3 -.endfor - -libelf_convert.c: elf_types.m4 libelf_convert.m4 -libelf_fsize.c: elf_types.m4 libelf_fsize.m4 -libelf_msize.c: elf_types.m4 libelf_msize.m4 - -.include "${TOP}/mk/elftoolchain.lib.mk" diff --git a/contrib/elftoolchain/libelf/Version.map b/contrib/elftoolchain/libelf/Version.map deleted file mode 100644 index 0ea49acf..00000000 --- a/contrib/elftoolchain/libelf/Version.map +++ /dev/null @@ -1,96 +0,0 @@ -/* $Id$ */ - -R1.0 { -global: - elf32_checksum; - elf32_fsize; - elf32_getehdr; - elf32_getphdr; - elf32_getshdr; - elf32_newehdr; - elf32_newphdr; - elf32_xlatetof; - elf32_xlatetom; - elf64_checksum; - elf64_fsize; - elf64_getehdr; - elf64_getphdr; - elf64_getshdr; - elf64_newehdr; - elf64_newphdr; - elf64_xlatetof; - elf64_xlatetom; - elf_begin; - elf_cntl; - elf_end; - elf_errmsg; - elf_errno; - elf_fill; - elf_flagarhdr; - elf_flagdata; - elf_flagehdr; - elf_flagelf; - elf_flagphdr; - elf_flagscn; - elf_flagshdr; - elf_getarhdr; - elf_getarsym; - elf_getbase; - elf_getdata; - elf_getident; - elf_getphdrnum; - elf_getphnum; - elf_getscn; - elf_getshdrnum; - elf_getshdrstrndx; - elf_getshnum; - elf_getshstrndx; - elf_hash; - elf_kind; - elf_memory; - elf_ndxscn; - elf_newdata; - elf_newscn; - elf_next; - elf_nextscn; - elf_open; - elf_openmemory; - elf_rand; - elf_rawdata; - elf_rawfile; - elf_setshstrndx; - elf_strptr; - elf_update; - elf_version; - gelf_checksum; - gelf_fsize; - gelf_getcap; - gelf_getclass; - gelf_getdyn; - gelf_getehdr; - gelf_getmove; - gelf_getphdr; - gelf_getrel; - gelf_getrela; - gelf_getshdr; - gelf_getsym; - gelf_getsyminfo; - gelf_getsymshndx; - gelf_newehdr; - gelf_newphdr; - gelf_update_cap; - gelf_update_dyn; - gelf_update_ehdr; - gelf_update_move; - gelf_update_phdr; - gelf_update_rel; - gelf_update_rela; - gelf_update_shdr; - gelf_update_sym; - gelf_update_syminfo; - gelf_update_symshndx; - gelf_xlatetof; - gelf_xlatetom; -local: - *; -}; diff --git a/contrib/elftoolchain/libelf/_libelf.h b/contrib/elftoolchain/libelf/_libelf.h deleted file mode 100644 index 6d73d8f7..00000000 --- a/contrib/elftoolchain/libelf/_libelf.h +++ /dev/null @@ -1,242 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef __LIBELF_H_ -#define __LIBELF_H_ - -#include - -#include "_libelf_config.h" - -#include "_elftc.h" - -/* - * Library-private data structures. - */ - -#define LIBELF_MSG_SIZE 256 - -struct _libelf_globals { - int libelf_arch; - unsigned int libelf_byteorder; - int libelf_class; - int libelf_error; - int libelf_fillchar; - unsigned int libelf_version; - unsigned char libelf_msg[LIBELF_MSG_SIZE]; -}; - -extern struct _libelf_globals _libelf; - -#define LIBELF_PRIVATE(N) (_libelf.libelf_##N) - -#define LIBELF_ELF_ERROR_MASK 0xFF -#define LIBELF_OS_ERROR_SHIFT 8 - -#define LIBELF_ERROR(E, O) (((E) & LIBELF_ELF_ERROR_MASK) | \ - ((O) << LIBELF_OS_ERROR_SHIFT)) - -#define LIBELF_SET_ERROR(E, O) do { \ - LIBELF_PRIVATE(error) = LIBELF_ERROR(ELF_E_##E, (O)); \ - } while (0) - -#define LIBELF_ADJUST_AR_SIZE(S) (((S) + 1U) & ~1U) - -/* - * Flags for library internal use. These use the upper 16 bits of the - * `e_flags' field. - */ -#define LIBELF_F_API_MASK 0x00FFFFU /* Flags defined by the API. */ -#define LIBELF_F_AR_HEADER 0x010000U /* translated header available */ -#define LIBELF_F_AR_VARIANT_SVR4 0x020000U /* BSD style ar(1) archive */ -#define LIBELF_F_DATA_MALLOCED 0x040000U /* whether data was malloc'ed */ -#define LIBELF_F_RAWFILE_MALLOC 0x080000U /* whether e_rawfile was malloc'ed */ -#define LIBELF_F_RAWFILE_MMAP 0x100000U /* whether e_rawfile was mmap'ed */ -#define LIBELF_F_SHDRS_LOADED 0x200000U /* whether all shdrs were read in */ -#define LIBELF_F_SPECIAL_FILE 0x400000U /* non-regular file */ - -struct _Elf { - int e_activations; /* activation count */ - unsigned int e_byteorder; /* ELFDATA* */ - int e_class; /* ELFCLASS* */ - Elf_Cmd e_cmd; /* ELF_C_* used at creation time */ - int e_fd; /* associated file descriptor */ - unsigned int e_flags; /* ELF_F_* & LIBELF_F_* flags */ - Elf_Kind e_kind; /* ELF_K_* */ - Elf *e_parent; /* non-NULL for archive members */ - unsigned char *e_rawfile; /* uninterpreted bytes */ - off_t e_rawsize; /* size of uninterpreted bytes */ - unsigned int e_version; /* file version */ - - /* - * Header information for archive members. See the - * LIBELF_F_AR_HEADER flag. - */ - union { - Elf_Arhdr *e_arhdr; /* translated header */ - unsigned char *e_rawhdr; /* untranslated header */ - } e_hdr; - - union { - struct { /* ar(1) archives */ - off_t e_next; /* set by elf_rand()/elf_next() */ - int e_nchildren; - unsigned char *e_rawstrtab; /* file name strings */ - size_t e_rawstrtabsz; - unsigned char *e_rawsymtab; /* symbol table */ - size_t e_rawsymtabsz; - Elf_Arsym *e_symtab; - size_t e_symtabsz; - } e_ar; - struct { /* regular ELF files */ - union { - Elf32_Ehdr *e_ehdr32; - Elf64_Ehdr *e_ehdr64; - } e_ehdr; - union { - Elf32_Phdr *e_phdr32; - Elf64_Phdr *e_phdr64; - } e_phdr; - STAILQ_HEAD(, _Elf_Scn) e_scn; /* section list */ - size_t e_nphdr; /* number of Phdr entries */ - size_t e_nscn; /* number of sections */ - size_t e_strndx; /* string table section index */ - } e_elf; - } e_u; -}; - -/* - * The internal descriptor wrapping the "Elf_Data" type. - */ -struct _Libelf_Data { - Elf_Data d_data; /* The exported descriptor. */ - Elf_Scn *d_scn; /* The containing section */ - unsigned int d_flags; - STAILQ_ENTRY(_Libelf_Data) d_next; -}; - -struct _Elf_Scn { - union { - Elf32_Shdr s_shdr32; - Elf64_Shdr s_shdr64; - } s_shdr; - STAILQ_HEAD(, _Libelf_Data) s_data; /* translated data */ - STAILQ_HEAD(, _Libelf_Data) s_rawdata; /* raw data */ - STAILQ_ENTRY(_Elf_Scn) s_next; - struct _Elf *s_elf; /* parent ELF descriptor */ - unsigned int s_flags; /* flags for the section as a whole */ - size_t s_ndx; /* index# for this section */ - uint64_t s_offset; /* managed by elf_update() */ - uint64_t s_rawoff; /* original offset in the file */ - uint64_t s_size; /* managed by elf_update() */ -}; - - -enum { - ELF_TOFILE, - ELF_TOMEMORY -}; - - -/* - * The LIBELF_COPY macros are used to copy fields from a GElf_* - * structure to their 32-bit counterparts, while checking for out of - * range values. - * - * - LIBELF_COPY_U32 :: copy an unsigned 32 bit field. - * - LIBELF_COPY_S32 :: copy a signed 32 bit field. - */ - -#define LIBELF_COPY_U32(DST, SRC, NAME) do { \ - if ((SRC)->NAME > UINT32_MAX) { \ - LIBELF_SET_ERROR(RANGE, 0); \ - return (0); \ - } \ - (DST)->NAME = (SRC)->NAME & 0xFFFFFFFFU; \ - } while (0) - -#define LIBELF_COPY_S32(DST, SRC, NAME) do { \ - if ((SRC)->NAME > INT32_MAX || \ - (SRC)->NAME < INT32_MIN) { \ - LIBELF_SET_ERROR(RANGE, 0); \ - return (0); \ - } \ - (DST)->NAME = (int32_t) (SRC)->NAME; \ - } while (0) - - -/* - * Function Prototypes. - */ - -typedef int _libelf_translator_function(unsigned char *_dst, size_t dsz, - unsigned char *_src, size_t _cnt, int _byteswap); - -#ifdef __cplusplus -extern "C" { -#endif -struct _Libelf_Data *_libelf_allocate_data(Elf_Scn *_s); -Elf *_libelf_allocate_elf(void); -Elf_Scn *_libelf_allocate_scn(Elf *_e, size_t _ndx); -Elf_Arhdr *_libelf_ar_gethdr(Elf *_e); -Elf *_libelf_ar_open(Elf *_e, int _reporterror); -Elf *_libelf_ar_open_member(int _fd, Elf_Cmd _c, Elf *_ar); -Elf_Arsym *_libelf_ar_process_bsd_symtab(Elf *_ar, size_t *_dst); -Elf_Arsym *_libelf_ar_process_svr4_symtab(Elf *_ar, size_t *_dst); -long _libelf_checksum(Elf *_e, int _elfclass); -void *_libelf_ehdr(Elf *_e, int _elfclass, int _allocate); -int _libelf_elfmachine(Elf *_e); -unsigned int _libelf_falign(Elf_Type _t, int _elfclass); -size_t _libelf_fsize(Elf_Type _t, int _elfclass, unsigned int _version, - size_t count); -_libelf_translator_function *_libelf_get_translator(Elf_Type _t, - int _direction, int _elfclass, int _elfmachine); -void *_libelf_getphdr(Elf *_e, int _elfclass); -void *_libelf_getshdr(Elf_Scn *_scn, int _elfclass); -void _libelf_init_elf(Elf *_e, Elf_Kind _kind); -int _libelf_load_section_headers(Elf *e, void *ehdr); -unsigned int _libelf_malign(Elf_Type _t, int _elfclass); -Elf *_libelf_memory(unsigned char *_image, size_t _sz, int _reporterror); -size_t _libelf_msize(Elf_Type _t, int _elfclass, unsigned int _version); -void *_libelf_newphdr(Elf *_e, int _elfclass, size_t _count); -Elf *_libelf_open_object(int _fd, Elf_Cmd _c, int _reporterror); -struct _Libelf_Data *_libelf_release_data(struct _Libelf_Data *_d); -void _libelf_release_elf(Elf *_e); -Elf_Scn *_libelf_release_scn(Elf_Scn *_s); -int _libelf_setphnum(Elf *_e, void *_eh, int _elfclass, size_t _phnum); -int _libelf_setshnum(Elf *_e, void *_eh, int _elfclass, size_t _shnum); -int _libelf_setshstrndx(Elf *_e, void *_eh, int _elfclass, - size_t _shstrndx); -Elf_Data *_libelf_xlate(Elf_Data *_d, const Elf_Data *_s, - unsigned int _encoding, int _elfclass, int _elfmachine, int _direction); -int _libelf_xlate_shtype(uint32_t _sht); -#ifdef __cplusplus -} -#endif - -#endif /* __LIBELF_H_ */ diff --git a/contrib/elftoolchain/libelf/_libelf_ar.h b/contrib/elftoolchain/libelf/_libelf_ar.h deleted file mode 100644 index d1751a7c..00000000 --- a/contrib/elftoolchain/libelf/_libelf_ar.h +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * Copyright (c) 2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef __LIBELF_AR_H_ -#define __LIBELF_AR_H_ - -/* - * Prototypes and declarations needed by libelf's ar(1) archive - * handling code. - */ - -#include - -#define LIBELF_AR_BSD_EXTENDED_NAME_PREFIX "#1/" -#define LIBELF_AR_BSD_SYMTAB_NAME "__.SYMDEF" -#define LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE \ - (sizeof(LIBELF_AR_BSD_EXTENDED_NAME_PREFIX) - 1) - -#define IS_EXTENDED_BSD_NAME(NAME) \ - (strncmp((const char *) (NAME), \ - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX, \ - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE) == 0) - - -unsigned char *_libelf_ar_get_string(const char *_buf, size_t _sz, - unsigned int _rawname, int _svr4names); -char *_libelf_ar_get_raw_name(const struct ar_hdr *_arh); -char *_libelf_ar_get_translated_name(const struct ar_hdr *_arh, Elf *_ar); -int _libelf_ar_get_number(const char *_buf, size_t _sz, - unsigned int _base, size_t *_ret); - -#endif /* __LIBELF_AR_H_ */ diff --git a/contrib/elftoolchain/libelf/_libelf_config.h b/contrib/elftoolchain/libelf/_libelf_config.h deleted file mode 100644 index 2db8c369..00000000 --- a/contrib/elftoolchain/libelf/_libelf_config.h +++ /dev/null @@ -1,195 +0,0 @@ -/*- - * Copyright (c) 2008-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#if defined(__APPLE__) || defined(__DragonFly__) - -#if defined(__amd64__) -#define LIBELF_ARCH EM_X86_64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 -#elif defined(__i386__) -#define LIBELF_ARCH EM_386 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS32 -#endif - -#endif /* __DragonFly__ */ - -#ifdef __FreeBSD__ - -/* - * Define LIBELF_{ARCH,BYTEORDER,CLASS} based on the machine architecture. - * See also: . - */ - -#if defined(__amd64__) - -#define LIBELF_ARCH EM_X86_64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__aarch64__) - -#define LIBELF_ARCH EM_AARCH64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__arm__) - -#define LIBELF_ARCH EM_ARM -#if defined(__ARMEB__) /* Big-endian ARM. */ -#define LIBELF_BYTEORDER ELFDATA2MSB -#else -#define LIBELF_BYTEORDER ELFDATA2LSB -#endif -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__i386__) - -#define LIBELF_ARCH EM_386 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__ia64__) - -#define LIBELF_ARCH EM_IA_64 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__mips__) - -#define LIBELF_ARCH EM_MIPS -#if defined(__MIPSEB__) -#define LIBELF_BYTEORDER ELFDATA2MSB -#else -#define LIBELF_BYTEORDER ELFDATA2LSB -#endif -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__powerpc__) - -#define LIBELF_ARCH EM_PPC -#define LIBELF_BYTEORDER ELFDATA2MSB -#define LIBELF_CLASS ELFCLASS32 - -#elif defined(__riscv) && (__riscv_xlen == 64) - -#define LIBELF_ARCH EM_RISCV -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__riscv64) - -#define LIBELF_ARCH EM_RISCV -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS64 - -#elif defined(__sparc__) - -#define LIBELF_ARCH EM_SPARCV9 -#define LIBELF_BYTEORDER ELFDATA2MSB -#define LIBELF_CLASS ELFCLASS64 - -#else -#error Unknown FreeBSD architecture. -#endif -#endif /* __FreeBSD__ */ - -/* - * Definitions for Minix3. - */ -#ifdef __minix - -#define LIBELF_ARCH EM_386 -#define LIBELF_BYTEORDER ELFDATA2LSB -#define LIBELF_CLASS ELFCLASS32 - -#endif /* __minix */ - -#ifdef __NetBSD__ - -#include - -#if !defined(ARCH_ELFSIZE) -#error ARCH_ELFSIZE is not defined. -#endif - -#if ARCH_ELFSIZE == 32 -#define LIBELF_ARCH ELF32_MACHDEP_ID -#define LIBELF_BYTEORDER ELF32_MACHDEP_ENDIANNESS -#define LIBELF_CLASS ELFCLASS32 -#define Elf_Note Elf32_Nhdr -#else -#define LIBELF_ARCH ELF64_MACHDEP_ID -#define LIBELF_BYTEORDER ELF64_MACHDEP_ENDIANNESS -#define LIBELF_CLASS ELFCLASS64 -#define Elf_Note Elf64_Nhdr -#endif - -#endif /* __NetBSD__ */ - -#if defined(__OpenBSD__) - -#include - -#define LIBELF_ARCH ELF_TARG_MACH -#define LIBELF_BYTEORDER ELF_TARG_DATA -#define LIBELF_CLASS ELF_TARG_CLASS - -#endif - -/* - * GNU & Linux compatibility. - * - * `__linux__' is defined in an environment runs the Linux kernel and glibc. - * `__GNU__' is defined in an environment runs a GNU kernel (Hurd) and glibc. - * `__GLIBC__' is defined for an environment that runs glibc over a non-GNU - * kernel such as GNU/kFreeBSD. - */ - -#if defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) - -#if defined(__linux__) - -#include "native-elf-format.h" - -#define LIBELF_CLASS ELFTC_CLASS -#define LIBELF_ARCH ELFTC_ARCH -#define LIBELF_BYTEORDER ELFTC_BYTEORDER - -#endif /* defined(__linux__) */ - -#if LIBELF_CLASS == ELFCLASS32 -#define Elf_Note Elf32_Nhdr -#elif LIBELF_CLASS == ELFCLASS64 -#define Elf_Note Elf64_Nhdr -#else -#error LIBELF_CLASS needs to be one of ELFCLASS32 or ELFCLASS64 -#endif - -#endif /* defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) */ diff --git a/contrib/elftoolchain/libelf/elf.3 b/contrib/elftoolchain/libelf/elf.3 deleted file mode 100644 index 54d9d5a5..00000000 --- a/contrib/elftoolchain/libelf/elf.3 +++ /dev/null @@ -1,626 +0,0 @@ -.\" Copyright (c) 2006-2008,2011,2019 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 12, 2019 -.Dt ELF 3 -.Os -.Sh NAME -.Nm elf -.Nd API for manipulating ELF objects -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Sh DESCRIPTION -The -.Lb libelf -provides functions that allow an application to read and manipulate -ELF object files, and to read -.Xr ar 1 -archives. -The library allows the manipulation of ELF objects in a byte ordering -and word-size independent way, allowing an application to read and -create ELF objects for 32 and 64 bit architectures and for little- -and big-endian machines. -The library is capable of processing ELF objects that use extended -section numbering. -.Pp -This manual page serves to provide an overview of the functionality in -the ELF library. -Further information may found in the manual pages for individual -.Xr ELF 3 -functions that comprise the library. -.Ss ELF Concepts -As described in -.Xr elf 5 , -ELF files contain several data structures that are laid out in a -specific way. -ELF files begin with an -.Dq Executable Header , -and may contain an optional -.Dq Program Header Table , -and optional data in the form of ELF -.Dq sections . -A -.Dq Section Header Table -describes the content of the data in these sections. -.Pp -ELF objects have an associated -.Dq "ELF class" -which denotes the natural machine word size for the architecture -the object is associated with. -Objects for 32 bit architectures have an ELF class of -.Dv ELFCLASS32 . -Objects for 64 bit architectures have an ELF class of -.Dv ELFCLASS64 . -.Pp -ELF objects also have an associated -.Dq endianness -which denotes the endianness of the machine architecture associated -with the object. -This may be -.Dv ELFDATA2LSB -for little-endian architectures and -.Dv ELFDATA2MSB -for big-endian architectures. -.Pp -ELF objects are also associated with an API version number. -This version number determines the layout of the individual components -of an ELF file and the semantics associated with these. -.Ss Data Representation And Translation -The -.Xr ELF 3 -library distinguishes between -.Dq native -representations of ELF data structures and their -.Dq file -representations. -.Pp -An application would work with ELF data in its -.Dq native -representation, i.e., using the native byteorder and alignment mandated -by the processor the application is running on. -The -.Dq file -representation of the same data could use a different byte ordering -and follow different constraints on object alignment than these native -constraints. -.Pp -Accordingly, the -.Xr ELF 3 -library offers translation facilities -.Xr ( elf32_xlatetof 3 , -.Xr elf32_xlatetom 3 , -.Xr elf64_xlatetof 3 -and -.Xr elf64_xlatetom 3 ) -to and from these representations. -It also provides higher-level APIs -.Xr ( gelf_xlatetof 3 , -.Xr gelf_xlatetom 3 ) -that retrieve and store data from the ELF object in a class-agnostic -manner. -.Ss Library Working Version -Conceptually, there are three version numbers associated with an -application using the ELF library to manipulate ELF objects: -.Bl -bullet -compact -offset indent -.It -The ELF version that the application was compiled against. -This version determines the ABI expected by the application. -.It -The ELF version of the ELF object being manipulated by the -application through the ELF library. -.It -The ELF version (or set of versions) supported by the ELF library itself. -.El -.Pp -In order to facilitate working with ELF objects of differing versions, -the ELF library requires the application to call the -.Fn elf_version -function before invoking many of its operations, in order to inform -the library of the application's desired working version. -.Pp -In the current implementation, all three versions have to be -.Dv EV_CURRENT . -.Ss Namespace use -The ELF library uses the following prefixes: -.Bl -tag -width "ELF_F_*" -.It Dv elf_ -Used for class-independent functions. -.It Dv elf32_ -Used for functions working with 32 bit ELF objects. -.It Dv elf64_ -Used for functions working with 64 bit ELF objects. -.It Dv Elf_ -Used for class-independent data types. -.It Dv ELF_C_ -Used for command values used in a few functions. -These symbols are defined as members of the -.Vt Elf_Cmd -enumeration. -.It Dv ELF_E_ -Used for error numbers. -.It Dv ELF_F_ -Used for flags. -.It Dv ELF_K_ -These constants define the kind of file associated with an ELF -descriptor. -See -.Xr elf_kind 3 . -The symbols are defined by the -.Vt Elf_Kind -enumeration. -.It Dv ELF_T_ -These values are defined by the -.Vt Elf_Type -enumeration, and denote the types of ELF data structures -that can be present in an ELF object. -.El -.Pp -In addition, the library uses symbols with prefixes -.Dv _ELF -and -.Dv _libelf -for its internal use. -.Ss Descriptors -Applications communicate with the library using descriptors. -These are: -.Bl -tag -width ".Vt Elf_Data" -.It Vt Elf -An -.Vt Elf -descriptor represents an ELF object or an -.Xr ar 1 -archive. -It is allocated using one of the -.Fn elf_begin -or -.Fn elf_memory -functions. -An -.Vt Elf -descriptor can be used to read and write data to an ELF file. -An -.Vt Elf -descriptor can be associated with zero or more -.Vt Elf_Scn -section descriptors. -.Pp -Given an ELF descriptor, the application may retrieve the ELF -object's class-dependent -.Dq "Executable Header" -structures using the -.Fn elf32_getehdr -or -.Fn elf64_getehdr -functions. -A new Ehdr structure may be allocated using the -.Fn elf64_newehdr -or -.Fn elf64_newehdr -functions. -.Pp -The -.Dq "Program Header Table" -associated with an ELF descriptor may be allocated using the -.Fn elf32_getphdr -or -.Fn elf64_getphdr -functions. -A new program header table may be allocated or an existing table -resized using the -.Fn elf32_newphdr -or -.Fn elf64_newphdr -functions. -.Pp -The -.Vt Elf -structure is opaque and has no members visible to the -application. -.It Vt Elf_Data -An -.Vt Elf_Data -data structure describes an individual chunk of a ELF file as -represented in memory. -It has the following application-visible members: -.Bl -tag -width ".Vt unsigned int d_version" -compact -.It Vt "uint64_t d_align" -The in-file alignment of the data buffer within its containing ELF section. -This value must be non-zero and a power of two. -.It Vt "void *d_buf" -A pointer to data in memory. -.It Vt "uint64_t d_off" -The offset within the containing section where this descriptor's data -would be placed. -This field will be computed by the library unless the application -requests full control of the ELF object's layout. -.It Vt "uint64_t d_size" -The number of bytes of data in this descriptor. -.It Vt "Elf_Type d_type" -The ELF type (see below) of the data in this descriptor. -.It Vt "unsigned int d_version" -The operating version for the data in this buffer. -.El -.Pp -.Vt Elf_Data -descriptors are usually used in conjunction with -.Vt Elf_Scn -descriptors. -.It Vt Elf_Scn -.Vt Elf_Scn -descriptors represent sections in an ELF object. -These descriptors are opaque and contain no application modifiable -fields. -.Pp -The -.Vt Elf_Scn -descriptor for a specific section in an ELF object can be -retrieved using the -.Fn elf_getscn -function. -The sections contained in an ELF object can be traversed using the -.Fn elf_nextscn -function. -New sections are allocated using the -.Fn elf_newscn -function. -.Pp -The -.Vt Elf_Data -descriptors associated with a given section can be retrieved -using the -.Fn elf_getdata -function. -New data descriptors can be added to a section -descriptor using the -.Fn elf_newdata -function. -The untranslated -.Dq file -representation of data in a section can be retrieved using the -.Fn elf_rawdata -function. -.El -.Ss Supported Elf Types -The following ELF datatypes are supported by the library. -.Pp -.Bl -tag -width ".Dv ELF_T_SYMINFO" -compact -.It Dv ELF_T_ADDR -Machine addresses. -.It Dv ELF_T_BYTE -Byte data. -The library will not attempt to translate byte data. -.It Dv ELF_T_CAP -Software and hardware capability records. -.It Dv ELF_T_DYN -Records used in a section of type -.Dv SHT_DYNAMIC . -.It Dv ELF_T_EHDR -ELF executable header. -.It Dv ELF_T_GNUHASH -GNU-style hash tables. -.It Dv ELF_T_HALF -16-bit unsigned words. -.It Dv ELF_T_LWORD -64 bit unsigned words. -.It Dv ELF_T_MOVE -ELF Move records. -.\".It Dv ELF_T_MOVEP -.\" As yet unsupported. -.It Dv ELF_T_NOTE -ELF Note structures. -.It Dv ELF_T_OFF -File offsets. -.It Dv ELF_T_PHDR -ELF program header table entries. -.It Dv ELF_T_REL -ELF relocation entries. -.It Dv ELF_T_RELA -ELF relocation entries with addends. -.It Dv ELF_T_SHDR -ELF section header entries. -.It Dv ELF_T_SWORD -Signed 32-bit words. -.It Dv ELF_T_SXWORD -Signed 64-bit words. -.It Dv ELF_T_SYMINFO -ELF symbol information. -.It Dv ELF_T_SYM -ELF symbol table entries. -.It Dv ELF_T_VDEF -Symbol version definition records. -.It Dv ELF_T_VNEED -Symbol version requirement records. -.It Dv ELF_T_WORD -Unsigned 32-bit words. -.It Dv ELF_T_XWORD -Unsigned 64-bit words. -.El -.Pp -The symbol -.Dv ELF_T_NUM -denotes the number of Elf types known to the library. -.Pp -The following table shows the mapping between ELF section types -defined in -.Xr elf 5 -and the types supported by the library. -.Bl -column ".Dv SHT_PREINIT_ARRAY" ".Dv ELF_T_SYMINFO" -.It Em Section Type Ta Em "Library Type" Ta Em Description -.It Dv SHT_DYNAMIC Ta Dv ELF_T_DYN Ta Xo -.Sq .dynamic -section entries. -.Xc -.It Dv SHT_DYNSYM Ta Dv ELF_T_SYM Ta Symbols for dynamic linking. -.It Dv SHT_FINI_ARRAY Ta Dv ELF_T_ADDR Ta Termination function pointers. -.It Dv SHT_GNU_HASH Ta Dv ELF_T_GNUHASH Ta GNU hash sections. -.It Dv SHT_GNU_LIBLIST Ta Dv ELF_T_WORD Ta List of libraries to be pre-linked. -.It Dv SHT_GNU_verdef Ta Dv ELF_T_VDEF Ta Symbol version definitions. -.It Dv SHT_GNU_verneed Ta Dv ELF_T_VNEED Ta Symbol versioning requirements. -.It Dv SHT_GNU_versym Ta Dv ELF_T_HALF Ta Version symbols. -.It Dv SHT_GROUP Ta Dv ELF_T_WORD Ta Section group marker. -.It Dv SHT_HASH Ta Dv ELF_T_HASH Ta Symbol hashes. -.It Dv SHT_INIT_ARRAY Ta Dv ELF_T_ADDR Ta Initialization function pointers. -.It Dv SHT_NOBITS Ta Dv ELF_T_BYTE Ta Xo -Empty sections. -See -.Xr elf 5 . -.Xc -.It Dv SHT_NOTE Ta Dv ELF_T_NOTE Ta ELF note records. -.It Dv SHT_PREINIT_ARRAY Ta Dv ELF_T_ADDR Ta Pre-initialization function pointers. -.It Dv SHT_PROGBITS Ta Dv ELF_T_BYTE Ta Machine code. -.It Dv SHT_REL Ta Dv ELF_T_REL Ta ELF relocation records. -.It Dv SHT_RELA Ta Dv ELF_T_RELA Ta Relocation records with addends. -.It Dv SHT_STRTAB Ta Dv ELF_T_BYTE Ta String tables. -.It Dv SHT_SYMTAB Ta Dv ELF_T_SYM Ta Symbol tables. -.It Dv SHT_SYMTAB_SHNDX Ta Dv ELF_T_WORD Ta Used with extended section numbering. -.It Dv SHT_SUNW_dof Ta Dv ELF_T_BYTE Ta Xo -Used by -.Xr dtrace 1 . -.Xc -.It Dv SHT_SUNW_move Ta Dv ELF_T_MOVE Ta ELF move records. -.It Dv SHT_SUNW_syminfo Ta Dv ELF_T_SYMINFO Ta Additional symbol flags. -.It Dv SHT_SUNW_verdef Ta Dv ELF_T_VDEF Ta Xo -Same as -.Dv SHT_GNU_verdef . -.Xc -.It Dv SHT_SUNW_verneed Ta Dv ELF_T_VNEED Ta Xo -Same as -.Dv SHT_GNU_verneed . -.Xc -.It Dv SHT_SUNW_versym Ta Dv ELF_T_HALF Ta Xo -Same as -.Dv SHT_GNU_versym . -.Xc -.El -.Pp -Section types in the range -.Dv [ SHT_LOOS , -.Dv SHT_HIUSER ] -are otherwise considered to be of type -.Dv ELF_T_BYTE . -.Ss Functional Grouping -This section contains a brief overview of the available functionality -in the ELF library. -Each function listed here is described further in its own manual page. -.Bl -tag -width indent -.It "Archive Access" -.Bl -tag -compact -width indent -.It Fn elf_getarsym -Retrieve the archive symbol table. -.It Fn elf_getarhdr -Retrieve the archive header for an object. -.It Fn elf_getbase -Retrieve the offset of a member inside an archive. -.It Fn elf_next -Iterate through an -.Xr ar 1 -archive. -.It Fn elf_rand -Random access inside an -.Xr ar 1 -archive. -.El -.It "Data Structures" -.Bl -tag -compact -width indent -.It Fn elf_getdata -Retrieve translated data for an ELF section. -.It Fn elf_getscn -Retrieve the section descriptor for a named section. -.It Fn elf_ndxscn -Retrieve the index for a section. -.It Fn elf_newdata -Add a new -.Vt Elf_Data -descriptor to an ELF section. -.It Fn elf_newscn -Add a new section descriptor to an ELF descriptor. -.It Fn elf_nextscn -Iterate through the sections in an ELF object. -.It Fn elf_rawdata -Retrieve untranslated data for an ELF section. -.It Fn elf_rawfile -Return a pointer to the untranslated file contents for an ELF object. -.It Fn elf32_getehdr , Fn elf64_getehdr -Retrieve the Executable Header in an ELF object. -.It Fn elf32_getphdr , Fn elf64_getphdr -Retrieve the Program Header Table in an ELF object. -.It Fn elf32_getshdr , Fn elf64_getshdr -Retrieve the ELF section header associated with an -.Vt Elf_Scn -descriptor. -.It Fn elf32_newehdr , Fn elf64_newehdr -Allocate an Executable Header in an ELF object. -.It Fn elf32_newphdr , Fn elf64_newphdr -Allocate or resize the Program Header Table in an ELF object. -.El -.It "Data Translation" -.Bl -tag -compact -width indent -.It Fn elf32_xlatetof , Fn elf64_xlatetof -Translate an ELF data structure from its native representation to its -file representation. -.It Fn elf32_xlatetom , Fn elf64_xlatetom -Translate an ELF data structure from its file representation to a -native representation. -.El -.It "Error Reporting" -.Bl -tag -compact -width indent -.It Fn elf_errno -Retrieve the current error. -.It Fn elf_errmsg -Retrieve a human readable description of the current error. -.El -.It "Initialization" -.Bl -tag -compact -width indent -.It Fn elf_begin -Opens an -.Xr ar 1 -archive or ELF object given a file descriptor. -.It Fn elf_end -Close an ELF descriptor and release all its resources. -.It Fn elf_memory -Opens an -.Xr ar 1 -archive or ELF object present in a memory arena. -.It Fn elf_version -Sets the operating version. -.El -.It "IO Control" -.Bl -tag -width ".Fn elf_setshstrndx" -compact -.It Fn elf_cntl -Manage the association between and ELF descriptor and its underlying file. -.It Fn elf_flagdata -Mark an -.Vt Elf_Data -descriptor as dirty. -.It Fn elf_flagehdr -Mark the ELF Executable Header in an ELF descriptor as dirty. -.It Fn elf_flagphdr -Mark the ELF Program Header Table in an ELF descriptor as dirty. -.It Fn elf_flagscn -Mark an -.Vt Elf_Scn -descriptor as dirty. -.It Fn elf_flagshdr -Mark an ELF Section Header as dirty. -.It Fn elf_setshstrndx -Set the index of the section name string table for the ELF object. -.It Fn elf_update -Recompute ELF object layout and optionally write the modified object -back to the underlying file. -.El -.It "Queries" -.Bl -tag -width ".Fn elf_getshstrndx" -compact -.It Fn elf32_checksum , Fn elf64_checkum -Compute checksum of an ELF object. -.It Fn elf_getident -Retrieve the identification bytes for an ELF object. -.It Fn elf_getphdrnum -Retrieve the number of program headers in an ELF object. -.It Fn elf_getshdrnum -Retrieve the number of sections in an ELF object. -.It Fn elf_getshdrstrndx -Retrieve the section index of the section name string table in -an ELF object. -.It Fn elf_hash -Compute the ELF hash value of a string. -.It Fn elf_kind -Query the kind of object associated with an ELF descriptor. -.It Fn elf32_fsize , Fn elf64_fsize -Return the size of the file representation of an ELF type. -.El -.El -.Ss Controlling ELF Object Layout -In the usual mode of operation, library will compute section -offsets and alignments based on the contents of an ELF descriptor's -sections without need for further intervention by the -application. -.Pp -However, if the application wishes to take complete charge of the -layout of the ELF file, it may set the -.Dv ELF_F_LAYOUT -flag on an ELF descriptor using -.Xr elf_flagelf 3 , -following which the library will use the data offsets and alignments -specified by the application when laying out the file. -Application control of file layout is described further in the -.Xr elf_update 3 -manual page. -.Pp -Gaps in between sections will be filled with the fill character -set by function -.Fn elf_fill . -.Ss Error Handling -In case an error is encountered, these library functions set an -internal error number and signal the presence of the error by -returning an special return value. -The application can check the -current error number by calling -.Xr elf_errno 3 . -A human readable description of the recorded error is available by -calling -.Xr elf_errmsg 3 . -.Ss Memory Management Rules -The library keeps track of all -.Vt Elf_Scn -and -.Vt Elf_Data -descriptors associated with an ELF descriptor and recovers them -when the descriptor is closed using -.Xr elf_end 3 . -Thus the application must not call -.Xr free 3 -on data structures allocated by the ELF library. -.Pp -Conversely the library will not -free data that it has not allocated. -As an example, an application may call -.Xr elf_newdata 3 -to allocate a new -.Vt Elf_Data -descriptor and can set the -.Va d_off -member of the descriptor to point to a region of memory allocated -using -.Xr malloc 3 . -It is the applications responsibility to free this arena, though the -library will reclaim the space used by the -.Vt Elf_Data -descriptor itself. -.Sh SEE ALSO -.Xr gelf 3 , -.Xr ar 5 , -.Xr elf 5 -.Sh HISTORY -The original -.Nm -API was developed for -.At V . -The current implementation of the API appeared in -.Fx 7.0 . -.Sh AUTHORS -The ELF library was written by -.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org . diff --git a/contrib/elftoolchain/libelf/elf.c b/contrib/elftoolchain/libelf/elf.c deleted file mode 100644 index 22aaca61..00000000 --- a/contrib/elftoolchain/libelf/elf.c +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -struct _libelf_globals _libelf = { - .libelf_arch = LIBELF_ARCH, - .libelf_byteorder = LIBELF_BYTEORDER, - .libelf_class = LIBELF_CLASS, - .libelf_error = 0, - .libelf_fillchar = 0, - .libelf_version = EV_NONE -}; diff --git a/contrib/elftoolchain/libelf/elf_begin.3 b/contrib/elftoolchain/libelf/elf_begin.3 deleted file mode 100644 index 024eabcf..00000000 --- a/contrib/elftoolchain/libelf/elf_begin.3 +++ /dev/null @@ -1,315 +0,0 @@ -.\" Copyright (c) 2006,2008-2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 11, 2011 -.Dt ELF_BEGIN 3 -.Os -.Sh NAME -.Nm elf_begin -.Nd open an ELF file or ar(1) archive -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf *" -.Fn elf_begin "int fd" "Elf_Cmd cmd" "Elf *elf" -.Sh DESCRIPTION -Function -.Fn elf_begin -is used to open ELF files and -.Xr ar 1 -archives for further processing by other APIs in the -.Xr elf 3 -library. -It is also used to access individual ELF members of an -.Xr ar 1 -archive in combination with the -.Xr elf_next 3 -and -.Xr elf_rand 3 -APIs. -.Pp -Argument -.Ar fd -is an open file descriptor returned from an -.Xr open 2 -system call. -Function -.Fn elf_begin -uses argument -.Ar fd -for reading or writing depending on the value of argument -.Ar cmd . -Argument -.Ar elf -is primarily used for iterating through archives. -.Pp -The argument -.Ar cmd -can have the following values: -.Bl -tag -width "ELF_C_WRITE" -.It ELF_C_NULL -Causes -.Fn elf_begin -to return NULL. -Arguments -.Ar fd -and -.Ar elf -are ignored, and no additional error is signalled. -.It ELF_C_READ -This value is to be when the application wishes to examine (but not -modify) the contents of the file specified by the arguments -.Ar fd -and -.Ar elf . -It can be used for both -.Xr ar 1 -archives and for ELF objects. -.Pp -If argument -.Ar elf -is NULL, the library will allocate a new ELF descriptor for the file -being processed. -The argument -.Ar fd -should have been opened for reading. -.Pp -If argument -.Ar elf -is not NULL, and references a regular ELF file previously opened with -.Fn elf_begin , -then the activation count for the descriptor referenced by argument -.Ar elf -is incremented. -The value in argument -.Ar fd -should match that used to open the descriptor argument -.Ar elf . -.Pp -If argument -.Ar elf -is not NULL, and references a descriptor for an -.Xr ar 1 -archive opened earlier with -.Fn elf_begin , -a descriptor for an element in the archive is returned as -described in the section -.Sx "Processing ar(1) archives" -below. -The value for argument -.Ar fd -should match that used to open the archive earlier. -.Pp -If argument -.Ar elf -is not NULL, and references an -.Xr ar 1 -archive opened earlier with -.Fn elf_memory , -then the value of the argument -.Ar fd -is ignored. -.It Dv ELF_C_RDWR -This command is used to prepare an ELF file for reading and writing. -This command is not supported for -.Xr ar 1 -archives. -.Pp -Argument -.Ar fd -should have been opened for reading and writing. -If argument -.Ar elf -is NULL, the library will allocate a new ELF descriptor for -the file being processed. -If the argument -.Ar elf -is non-null, it should point to a descriptor previously -allocated with -.Fn elf_begin -with the same values for arguments -.Ar fd -and -.Ar cmd ; -in this case the library will increment the activation count for descriptor -.Ar elf -and return the same descriptor. -.Pp -Changes to the in-memory image of the ELF file may be written back to -disk using the -.Xr elf_update 3 -function. -.It Dv ELF_C_WRITE -This command is used when the application wishes to create a new ELF -file. -Argument -.Ar fd -should have been opened for writing. -Argument -.Ar elf -is ignored, and the previous contents of file referenced by argument -.Ar fd -are overwritten. -.El -.Ss Processing ar(1) archives -An -.Xr ar 1 -archive may be opened in read mode (with argument -.Ar cmd -set to -.Dv ELF_C_READ ) -using -.Fn elf_begin -or -.Fn elf_memory . -The returned ELF descriptor can be passed into to -subsequent calls to -.Fn elf_begin -to access individual members of the archive. -.Pp -Random access within an opened archive is possible using -the -.Xr elf_next 3 -and -.Xr elf_rand 3 -functions. -.Pp -The symbol table of the archive may be retrieved -using -.Xr elf_getarsym 3 . -.Sh RETURN VALUES -The function returns a pointer to a ELF descriptor if successful, or NULL -if an error occurred. -.Sh EXAMPLES -To iterate through the members of an -.Xr ar 1 -archive, use: -.Bd -literal -offset indent -Elf_Cmd c; -Elf *ar_e, *elf_e; -\&... -c = ELF_C_READ; -if ((ar_e = elf_begin(fd, c, (Elf *) 0)) == 0) { - \&... handle error in opening the archive ... -} -while ((elf_e = elf_begin(fd, c, ar_e)) != 0) { - \&... process member referenced by elf_e here ... - c = elf_next(elf_e); - elf_end(elf_e); -} -.Ed -.Pp -To create a new ELF file, use: -.Bd -literal -offset indent -int fd; -Elf *e; -\&... -if ((fd = open("filename", O_RDWR|O_TRUNC|O_CREAT, 0666)) < 0) { - \&... handle the error from open(2) ... -} -if ((e = elf_begin(fd, ELF_C_WRITE, (Elf *) 0)) == 0) { - \&... handle the error from elf_begin() ... -} -\&... create the ELF image using other elf(3) APIs ... -elf_update(e, ELF_C_WRITE); -elf_end(e); -.Ed -.Sh ERRORS -Function -.Fn elf_begin -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARCHIVE -The archive denoted by argument -.Ar elf -could not be parsed. -.It Bq Er ELF_E_ARGUMENT -The value in argument -.Ar cmd -was unrecognized. -.It Bq Er ELF_E_ARGUMENT -A non-null value for argument -.Ar elf -was specified when -.Ar cmd -was set to -.Dv ELF_C_RDWR . -.It Bq Er ELF_E_ARGUMENT -The value of argument -.Ar fd -differs from the one the ELF descriptor -.Ar elf -was created with. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar cmd -differs from the value specified when ELF descriptor -.Ar elf -was created. -.It Bq Er ELF_E_ARGUMENT -An -.Xr ar 1 -archive was opened with -.Ar cmd -set to -.Dv ELF_C_RDWR . -.It Bq Er ELF_E_ARGUMENT -The file referenced by argument -.Ar fd -was empty. -.It Bq Er ELF_E_ARGUMENT -The underlying file for argument -.Ar fd -was of an unsupported type. -.It Bq Er ELF_E_IO -The file descriptor in argument -.Ar fd -was invalid. -.It Bq Er ELF_E_IO -The file descriptor in argument -.Ar fd -could not be read or written to. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was encountered. -.It Bq Er ELF_E_SEQUENCE -Function -.Fn elf_begin -was called before a working version was established with -.Xr elf_version 3 . -.It Bq Er ELF_E_VERSION -The ELF object referenced by argument -.Ar fd -was of an unsupported ELF version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_end 3 , -.Xr elf_errno 3 , -.Xr elf_memory 3 , -.Xr elf_next 3 , -.Xr elf_rand 3 , -.Xr elf_update 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_begin.c b/contrib/elftoolchain/libelf/elf_begin.c deleted file mode 100644 index 1cb3df4b..00000000 --- a/contrib/elftoolchain/libelf/elf_begin.c +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf * -elf_begin(int fd, Elf_Cmd c, Elf *a) -{ - Elf *e; - - e = NULL; - - if (LIBELF_PRIVATE(version) == EV_NONE) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (NULL); - } - - switch (c) { - case ELF_C_NULL: - return (NULL); - - case ELF_C_WRITE: - /* - * The ELF_C_WRITE command is required to ignore the - * descriptor passed in. - */ - a = NULL; - break; - - case ELF_C_RDWR: - if (a != NULL) { /* not allowed for ar(1) archives. */ - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - /*FALLTHROUGH*/ - case ELF_C_READ: - /* - * Descriptor `a' could be for a regular ELF file, or - * for an ar(1) archive. If descriptor `a' was opened - * using a valid file descriptor, we need to check if - * the passed in `fd' value matches the original one. - */ - if (a && - ((a->e_fd != -1 && a->e_fd != fd) || c != a->e_cmd)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - break; - - default: - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - - } - - if (a == NULL) - e = _libelf_open_object(fd, c, 1); - else if (a->e_kind == ELF_K_AR) - e = _libelf_ar_open_member(a->e_fd, c, a); - else - (e = a)->e_activations++; - - return (e); -} diff --git a/contrib/elftoolchain/libelf/elf_cntl.3 b/contrib/elftoolchain/libelf/elf_cntl.3 deleted file mode 100644 index 7289d02e..00000000 --- a/contrib/elftoolchain/libelf/elf_cntl.3 +++ /dev/null @@ -1,111 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 9, 2006 -.Dt ELF_CNTL 3 -.Os -.Sh NAME -.Nm elf_cntl -.Nd control an elf file descriptor -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_cntl "Elf *elf" "Elf_Cmd cmd" -.Sh DESCRIPTION -Function -.Fn elf_cntl -controls the ELF library's subsequent use of the file descriptor -used to create ELF descriptor -.Ar elf . -.Pp -Argument -.Ar cmd -informs the library of the action to be taken: -.Bl -tag -width "ELF_C_FDDONE" -.It Dv ELF_C_FDDONE -This value instructs the ELF library not to perform any further -I/O on the file descriptor associated with argument -.Ar elf . -For ELF descriptors opened with mode -.Ar ELF_C_WRITE -or -.Ar ELF_C_RDWR -subsequent -.Fn elf_update -operations on the descriptor will fail. -.It Dv ELF_C_FDREAD -This value instructs the ELF library to read in all necessary -data associated with ELF descriptor -.Ar elf -into memory so that the underlying file descriptor can be -safely closed with command -.Dv ELF_C_FDDONE . -.El -.Pp -Argument -.Ar elf -must be an ELF descriptor associated with a file system object -(e.g., an -.Xr ar 1 -archive, an ELF file, or other data file). -.Sh IMPLEMENTATION NOTES -Due to use of -.Xr mmap 2 -internally, this function is a no-op for ELF objects opened in -.Dv ELF_C_READ -mode. -.Sh RETURN VALUES -Function -.Fn elf_cntl -returns 0 on success, or -1 if an error was detected. -.Sh ERRORS -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARCHIVE -Argument -.Ar elf -is a descriptor for an archive member. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar cmd -was not recognized. -.It Bq Er ELF_E_MODE -An -.Dv ELF_C_FDREAD -operation was requested on an ELF descriptor opened -for writing. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_end 3 , -.Xr elf_next 3 , -.Xr elf_update 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_cntl.c b/contrib/elftoolchain/libelf/elf_cntl.c deleted file mode 100644 index 639b10fd..00000000 --- a/contrib/elftoolchain/libelf/elf_cntl.c +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -int -elf_cntl(Elf *e, Elf_Cmd c) -{ - if (e == NULL || - (c != ELF_C_FDDONE && c != ELF_C_FDREAD)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (-1); - } - - if (e->e_parent) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (-1); - } - - if (c == ELF_C_FDREAD) { - if (e->e_cmd == ELF_C_WRITE) { - LIBELF_SET_ERROR(MODE, 0); - return (-1); - } - else - return (0); - } - - e->e_fd = -1; - return 0; -} diff --git a/contrib/elftoolchain/libelf/elf_data.c b/contrib/elftoolchain/libelf/elf_data.c deleted file mode 100644 index 8c486123..00000000 --- a/contrib/elftoolchain/libelf/elf_data.c +++ /dev/null @@ -1,280 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf_Data * -elf_getdata(Elf_Scn *s, Elf_Data *ed) -{ - Elf *e; - unsigned int sh_type; - int elfclass, elftype; - size_t count, fsz, msz; - struct _Libelf_Data *d; - uint64_t sh_align, sh_offset, sh_size, raw_size; - _libelf_translator_function *xlate; - - d = (struct _Libelf_Data *) ed; - - if (s == NULL || (e = s->s_elf) == NULL || - (d != NULL && s != d->d_scn)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - assert(e->e_kind == ELF_K_ELF); - - if (d == NULL && (d = STAILQ_FIRST(&s->s_data)) != NULL) - return (&d->d_data); - - if (d != NULL) - return (STAILQ_NEXT(d, d_next) ? - &STAILQ_NEXT(d, d_next)->d_data : NULL); - - if (e->e_rawfile == NULL) { - /* - * In the ELF_C_WRITE case, there is no source that - * can provide data for the section. - */ - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - elfclass = e->e_class; - - assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); - - if (elfclass == ELFCLASS32) { - sh_type = s->s_shdr.s_shdr32.sh_type; - sh_offset = (uint64_t) s->s_shdr.s_shdr32.sh_offset; - sh_size = (uint64_t) s->s_shdr.s_shdr32.sh_size; - sh_align = (uint64_t) s->s_shdr.s_shdr32.sh_addralign; - } else { - sh_type = s->s_shdr.s_shdr64.sh_type; - sh_offset = s->s_shdr.s_shdr64.sh_offset; - sh_size = s->s_shdr.s_shdr64.sh_size; - sh_align = s->s_shdr.s_shdr64.sh_addralign; - } - - if (sh_type == SHT_NULL) { - LIBELF_SET_ERROR(SECTION, 0); - return (NULL); - } - - raw_size = (uint64_t) e->e_rawsize; - if ((elftype = _libelf_xlate_shtype(sh_type)) < ELF_T_FIRST || - elftype > ELF_T_LAST || (sh_type != SHT_NOBITS && - (sh_offset > raw_size || sh_size > raw_size - sh_offset))) { - LIBELF_SET_ERROR(SECTION, 0); - return (NULL); - } - - if ((fsz = (elfclass == ELFCLASS32 ? elf32_fsize : elf64_fsize) - (elftype, (size_t) 1, e->e_version)) == 0) { - LIBELF_SET_ERROR(UNIMPL, 0); - return (NULL); - } - - if (sh_size % fsz) { - LIBELF_SET_ERROR(SECTION, 0); - return (NULL); - } - - if (sh_size / fsz > SIZE_MAX) { - LIBELF_SET_ERROR(RANGE, 0); - return (NULL); - } - - count = (size_t) (sh_size / fsz); - - if ((msz = _libelf_msize(elftype, elfclass, e->e_version)) == 0) - return (NULL); - - if (count > 0 && msz > SIZE_MAX / count) { - LIBELF_SET_ERROR(RANGE, 0); - return (NULL); - } - - assert(msz > 0); - assert(count <= SIZE_MAX); - assert(msz * count <= SIZE_MAX); - - if ((d = _libelf_allocate_data(s)) == NULL) - return (NULL); - - d->d_data.d_buf = NULL; - d->d_data.d_off = 0; - d->d_data.d_align = sh_align; - d->d_data.d_size = msz * count; - d->d_data.d_type = elftype; - d->d_data.d_version = e->e_version; - - if (sh_type == SHT_NOBITS || sh_size == 0) { - STAILQ_INSERT_TAIL(&s->s_data, d, d_next); - return (&d->d_data); - } - - if ((d->d_data.d_buf = malloc(msz * count)) == NULL) { - (void) _libelf_release_data(d); - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - d->d_flags |= LIBELF_F_DATA_MALLOCED; - - xlate = _libelf_get_translator(elftype, ELF_TOMEMORY, elfclass, - _libelf_elfmachine(e)); - if (!(*xlate)(d->d_data.d_buf, (size_t) d->d_data.d_size, - e->e_rawfile + sh_offset, count, - e->e_byteorder != LIBELF_PRIVATE(byteorder))) { - _libelf_release_data(d); - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - STAILQ_INSERT_TAIL(&s->s_data, d, d_next); - - return (&d->d_data); -} - -Elf_Data * -elf_newdata(Elf_Scn *s) -{ - Elf *e; - struct _Libelf_Data *d; - - if (s == NULL || (e = s->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - assert(e->e_kind == ELF_K_ELF); - - /* - * elf_newdata() has to append a data descriptor, so - * bring in existing section data if not already present. - */ - if (e->e_rawfile && s->s_size > 0 && STAILQ_EMPTY(&s->s_data)) - if (elf_getdata(s, NULL) == NULL) - return (NULL); - - if ((d = _libelf_allocate_data(s)) == NULL) - return (NULL); - - STAILQ_INSERT_TAIL(&s->s_data, d, d_next); - - d->d_data.d_align = 1; - d->d_data.d_buf = NULL; - d->d_data.d_off = (uint64_t) ~0; - d->d_data.d_size = 0; - d->d_data.d_type = ELF_T_BYTE; - d->d_data.d_version = LIBELF_PRIVATE(version); - - (void) elf_flagscn(s, ELF_C_SET, ELF_F_DIRTY); - - return (&d->d_data); -} - -/* - * Retrieve a data descriptor for raw (untranslated) data for section - * `s'. - */ - -Elf_Data * -elf_rawdata(Elf_Scn *s, Elf_Data *ed) -{ - Elf *e; - int elf_class; - uint32_t sh_type; - struct _Libelf_Data *d; - uint64_t sh_align, sh_offset, sh_size, raw_size; - - if (s == NULL || (e = s->s_elf) == NULL || e->e_rawfile == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - assert(e->e_kind == ELF_K_ELF); - - d = (struct _Libelf_Data *) ed; - - if (d == NULL && (d = STAILQ_FIRST(&s->s_rawdata)) != NULL) - return (&d->d_data); - - if (d != NULL) - return (&STAILQ_NEXT(d, d_next)->d_data); - - elf_class = e->e_class; - - assert(elf_class == ELFCLASS32 || elf_class == ELFCLASS64); - - if (elf_class == ELFCLASS32) { - sh_type = s->s_shdr.s_shdr32.sh_type; - sh_offset = (uint64_t) s->s_shdr.s_shdr32.sh_offset; - sh_size = (uint64_t) s->s_shdr.s_shdr32.sh_size; - sh_align = (uint64_t) s->s_shdr.s_shdr32.sh_addralign; - } else { - sh_type = s->s_shdr.s_shdr64.sh_type; - sh_offset = s->s_shdr.s_shdr64.sh_offset; - sh_size = s->s_shdr.s_shdr64.sh_size; - sh_align = s->s_shdr.s_shdr64.sh_addralign; - } - - if (sh_type == SHT_NULL) { - LIBELF_SET_ERROR(SECTION, 0); - return (NULL); - } - - raw_size = (uint64_t) e->e_rawsize; - if (sh_type != SHT_NOBITS && - (sh_offset > raw_size || sh_size > raw_size - sh_offset)) { - LIBELF_SET_ERROR(SECTION, 0); - return (NULL); - } - - if ((d = _libelf_allocate_data(s)) == NULL) - return (NULL); - - d->d_data.d_buf = (sh_type == SHT_NOBITS || sh_size == 0) ? NULL : - e->e_rawfile + sh_offset; - d->d_data.d_off = 0; - d->d_data.d_align = sh_align; - d->d_data.d_size = sh_size; - d->d_data.d_type = ELF_T_BYTE; - d->d_data.d_version = e->e_version; - - STAILQ_INSERT_TAIL(&s->s_rawdata, d, d_next); - - return (&d->d_data); -} diff --git a/contrib/elftoolchain/libelf/elf_end.3 b/contrib/elftoolchain/libelf/elf_end.3 deleted file mode 100644 index 880e0ecd..00000000 --- a/contrib/elftoolchain/libelf/elf_end.3 +++ /dev/null @@ -1,76 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 29, 2006 -.Dt ELF_END 3 -.Os -.Sh NAME -.Nm elf_end -.Nd release an ELF descriptor -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_end "Elf *elf" -.Sh DESCRIPTION -Function -.Fn elf_end -is used to release the resources associated with an ELF descriptor -pointed to by argument -.Ar elf . -This descriptor must have been allocated by a previous call to -.Xr elf_begin 3 -or -.Xr elf_memory 3 . -For programming convenience, a NULL value is permitted for argument -.Ar elf . -.Pp -A call to -.Fn elf_end -decrements the activation count for descriptor -.Ar elf -by one. -The resources associated with the descriptor are only released -with its activation count goes to zero. -.Pp -Once function -.Fn elf_end -returns zero, the ELF descriptor -.Ar elf -will no longer be valid and should not be used further. -.Sh RETURN VALUES -Function -.Fn elf_end -returns the current value of the ELF descriptor -.Ar elf Ap s -activation count, or zero if argument -.Ar elf -was NULL. -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_memory 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_end.c b/contrib/elftoolchain/libelf/elf_end.c deleted file mode 100644 index 26e311dd..00000000 --- a/contrib/elftoolchain/libelf/elf_end.c +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2009,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -#if ELFTC_HAVE_MMAP -#include -#endif - -ELFTC_VCSID("$Id$"); - -int -elf_end(Elf *e) -{ - Elf *sv; - Elf_Scn *scn, *tscn; - - if (e == NULL || e->e_activations == 0) - return (0); - - if (--e->e_activations > 0) - return (e->e_activations); - - assert(e->e_activations == 0); - - while (e && e->e_activations == 0) { - switch (e->e_kind) { - case ELF_K_AR: - /* - * If we still have open child descriptors, we - * need to defer reclaiming resources till all - * the child descriptors for the archive are - * closed. - */ - if (e->e_u.e_ar.e_nchildren > 0) - return (0); - break; - case ELF_K_ELF: - /* - * Reclaim all section descriptors. - */ - STAILQ_FOREACH_SAFE(scn, &e->e_u.e_elf.e_scn, s_next, - tscn) - scn = _libelf_release_scn(scn); - break; - case ELF_K_NUM: - assert(0); - default: - break; - } - - if (e->e_rawfile) { - if (e->e_flags & LIBELF_F_RAWFILE_MALLOC) - free(e->e_rawfile); -#if ELFTC_HAVE_MMAP - else if (e->e_flags & LIBELF_F_RAWFILE_MMAP) - (void) munmap(e->e_rawfile, (size_t) e->e_rawsize); -#endif - } - - sv = e; - if ((e = e->e_parent) != NULL) - e->e_u.e_ar.e_nchildren--; - _libelf_release_elf(sv); - } - - return (0); -} diff --git a/contrib/elftoolchain/libelf/elf_errmsg.3 b/contrib/elftoolchain/libelf/elf_errmsg.3 deleted file mode 100644 index e48b10b6..00000000 --- a/contrib/elftoolchain/libelf/elf_errmsg.3 +++ /dev/null @@ -1,107 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 11, 2006 -.Dt ELF_ERRMSG 3 -.Os -.Sh NAME -.Nm elf_errmsg , -.Nm elf_errno -.Nd ELF library error message handling -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_errno "void" -.Ft "const char *" -.Fn elf_errmsg "int error" -.Sh DESCRIPTION -When an error occurs during an ELF library API call, the library -encodes the error using an error number and stores the error number -internally for retrieval by the application at a later point of time. -Error numbers may contain an OS supplied error code in addition to -an ELF API specific error code. -An error number value of zero indicates no error. -.Pp -Function -.Fn elf_errno -is used to retrieve the last error recorded by the ELF library. -Invoking this function has the side-effect of resetting the -ELF library's recorded error number to zero. -.Pp -The function -.Fn elf_errmsg -returns a null-terminated string with a human readable -description of the error specified in argument -.Ar error . -A zero value for argument -.Ar error -retrieves the most recent error encountered by the ELF -library. -An argument value of -1 behaves identically, except that -it guarantees a non-NULL return from -.Fn elf_errmsg . -.Sh RETURN VALUES -Function -.Fn elf_errno -returns a non-zero value encoding the last error encountered -by the ELF library, or zero if no error was encountered. -.Pp -Function -.Fn elf_errmsg -returns a pointer to library local storage for non-zero values -of argument -.Ar error . -With a zero argument, the function will return a NULL pointer if no -error had been encountered by the library, or will return a pointer to -library local storage containing an appropriate message otherwise. -.Sh EXAMPLES -Clearing the ELF library's recorded error number can be accomplished -by invoking -.Fn elf_errno -and discarding its return value. -.Bd -literal -offset indent -/* clear error */ -(void) elf_errno(); -.Ed -.Pp -Retrieving a human-readable description of the current error number -can be done with the following snippet: -.Bd -literal -offset indent -int err; -const char *errmsg; -\&... -err = elf_errno(); -if (err != 0) - errmsg = elf_errmsg(err); -.Ed -.Sh SEE ALSO -.Xr elf 3 , -.Xr gelf 3 -.Sh BUGS -Function -.Fn elf_errmsg -is not localized. diff --git a/contrib/elftoolchain/libelf/elf_errmsg.c b/contrib/elftoolchain/libelf/elf_errmsg.c deleted file mode 100644 index 91f148ac..00000000 --- a/contrib/elftoolchain/libelf/elf_errmsg.c +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Retrieve a human readable translation for an error message. - */ - -static const char *_libelf_errors[] = { -#define DEFINE_ERROR(N,S) [ELF_E_##N] = S - DEFINE_ERROR(NONE, "No Error"), - DEFINE_ERROR(ARCHIVE, "Malformed ar(1) archive"), - DEFINE_ERROR(ARGUMENT, "Invalid argument"), - DEFINE_ERROR(CLASS, "ELF class mismatch"), - DEFINE_ERROR(DATA, "Invalid data buffer descriptor"), - DEFINE_ERROR(HEADER, "Missing or malformed ELF header"), - DEFINE_ERROR(IO, "I/O error"), - DEFINE_ERROR(LAYOUT, "Layout constraint violation"), - DEFINE_ERROR(MODE, "Incorrect ELF descriptor mode"), - DEFINE_ERROR(RANGE, "Value out of range of target"), - DEFINE_ERROR(RESOURCE, "Resource exhaustion"), - DEFINE_ERROR(SECTION, "Invalid section descriptor"), - DEFINE_ERROR(SEQUENCE, "API calls out of sequence"), - DEFINE_ERROR(UNIMPL, "Unimplemented feature"), - DEFINE_ERROR(VERSION, "Unknown ELF API version"), - DEFINE_ERROR(NUM, "Unknown error") -#undef DEFINE_ERROR -}; - -const char * -elf_errmsg(int error) -{ - int oserr; - - if (error == ELF_E_NONE && - (error = LIBELF_PRIVATE(error)) == 0) - return NULL; - else if (error == -1) - error = LIBELF_PRIVATE(error); - - oserr = error >> LIBELF_OS_ERROR_SHIFT; - error &= LIBELF_ELF_ERROR_MASK; - - if (error < ELF_E_NONE || error >= ELF_E_NUM) - return _libelf_errors[ELF_E_NUM]; - if (oserr) { - (void) snprintf((char *) LIBELF_PRIVATE(msg), - sizeof(LIBELF_PRIVATE(msg)), "%s: %s", - _libelf_errors[error], strerror(oserr)); - return (const char *)&LIBELF_PRIVATE(msg); - } - return _libelf_errors[error]; -} diff --git a/contrib/elftoolchain/libelf/elf_errno.c b/contrib/elftoolchain/libelf/elf_errno.c deleted file mode 100644 index bf4f2393..00000000 --- a/contrib/elftoolchain/libelf/elf_errno.c +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -int -elf_errno(void) -{ - int old; - - old = LIBELF_PRIVATE(error); - LIBELF_PRIVATE(error) = 0; - return (old & LIBELF_ELF_ERROR_MASK); -} diff --git a/contrib/elftoolchain/libelf/elf_fill.3 b/contrib/elftoolchain/libelf/elf_fill.3 deleted file mode 100644 index a394054e..00000000 --- a/contrib/elftoolchain/libelf/elf_fill.3 +++ /dev/null @@ -1,52 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 11, 2006 -.Dt ELF_FILL 3 -.Os -.Sh NAME -.Nm elf_fill -.Nd set fill byte for inter-section padding -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft void -.Fn elf_fill "int fill" -.Sh DESCRIPTION -Function -.Fn elf_fill -allows an application to specify a fill value for the padding inserted -between two sections of an ELF file to meet section alignment -constraints. -By default the ELF library uses zero bytes for padding. -.Pp -The ELF library will only pad bytes if the -.Dv ELF_F_LAYOUT -flag is not set for the ELF file. -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_flagelf 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_fill.c b/contrib/elftoolchain/libelf/elf_fill.c deleted file mode 100644 index 8dcbc176..00000000 --- a/contrib/elftoolchain/libelf/elf_fill.c +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -void -elf_fill(int fill) -{ - LIBELF_PRIVATE(fillchar) = fill; -} diff --git a/contrib/elftoolchain/libelf/elf_flag.c b/contrib/elftoolchain/libelf/elf_flag.c deleted file mode 100644 index 9129d42c..00000000 --- a/contrib/elftoolchain/libelf/elf_flag.c +++ /dev/null @@ -1,196 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2009,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -unsigned int -elf_flagarhdr(Elf_Arhdr *a, Elf_Cmd c, unsigned int flags) -{ - unsigned int r; - - if (a == NULL) - return (0); - - if ((c != ELF_C_SET && c != ELF_C_CLR) || - (flags & ~ELF_F_DIRTY) != 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (c == ELF_C_SET) - r = a->ar_flags |= flags; - else - r = a->ar_flags &= ~flags; - - return (r & LIBELF_F_API_MASK); -} - -unsigned int -elf_flagdata(Elf_Data *d, Elf_Cmd c, unsigned int flags) -{ - unsigned int r; - struct _Libelf_Data *ld; - - if (d == NULL) - return (0); - - if ((c != ELF_C_SET && c != ELF_C_CLR) || - (flags & ~ELF_F_DIRTY) != 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ld = (struct _Libelf_Data *) d; - - if (c == ELF_C_SET) - r = ld->d_flags |= flags; - else - r = ld->d_flags &= ~flags; - - return (r & LIBELF_F_API_MASK); -} - -unsigned int -elf_flagehdr(Elf *e, Elf_Cmd c, unsigned int flags) -{ - int ec; - void *ehdr; - - if (e == NULL) - return (0); - - if ((c != ELF_C_SET && c != ELF_C_CLR) || - (e->e_kind != ELF_K_ELF) || (flags & ~ELF_F_DIRTY) != 0 || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) - ehdr = e->e_u.e_elf.e_ehdr.e_ehdr32; - else - ehdr = e->e_u.e_elf.e_ehdr.e_ehdr64; - - if (ehdr == NULL) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (0); - } - - return (elf_flagelf(e, c, flags)); -} - -unsigned int -elf_flagelf(Elf *e, Elf_Cmd c, unsigned int flags) -{ - unsigned int r; - - if (e == NULL) - return (0); - - if ((c != ELF_C_SET && c != ELF_C_CLR) || - (e->e_kind != ELF_K_ELF) || - (flags & ~(ELF_F_ARCHIVE | ELF_F_ARCHIVE_SYSV | - ELF_F_DIRTY | ELF_F_LAYOUT)) != 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((flags & ELF_F_ARCHIVE_SYSV) && (flags & ELF_F_ARCHIVE) == 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((flags & ELF_F_ARCHIVE) && e->e_cmd != ELF_C_WRITE) { - LIBELF_SET_ERROR(MODE, 0); - return (0); - } - - if (c == ELF_C_SET) - r = e->e_flags |= flags; - else - r = e->e_flags &= ~flags; - return (r & LIBELF_F_API_MASK); -} - -unsigned int -elf_flagphdr(Elf *e, Elf_Cmd c, unsigned int flags) -{ - int ec; - void *phdr; - - if (e == NULL) - return (0); - - if ((c != ELF_C_SET && c != ELF_C_CLR) || - (e->e_kind != ELF_K_ELF) || (flags & ~ELF_F_DIRTY) != 0 || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) - phdr = e->e_u.e_elf.e_phdr.e_phdr32; - else - phdr = e->e_u.e_elf.e_phdr.e_phdr64; - - if (phdr == NULL) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (0); - } - - return (elf_flagelf(e, c, flags)); -} - -unsigned int -elf_flagscn(Elf_Scn *s, Elf_Cmd c, unsigned int flags) -{ - unsigned int r; - - if (s == NULL) - return (0); - - if ((c != ELF_C_SET && c != ELF_C_CLR) || - (flags & ~ELF_F_DIRTY) != 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (c == ELF_C_SET) - r = s->s_flags |= flags; - else - r = s->s_flags &= ~flags; - return (r & LIBELF_F_API_MASK); -} - -unsigned int -elf_flagshdr(Elf_Scn *s, Elf_Cmd c, unsigned int flags) -{ - return (elf_flagscn(s, c, flags)); -} diff --git a/contrib/elftoolchain/libelf/elf_flagdata.3 b/contrib/elftoolchain/libelf/elf_flagdata.3 deleted file mode 100644 index e1a20988..00000000 --- a/contrib/elftoolchain/libelf/elf_flagdata.3 +++ /dev/null @@ -1,227 +0,0 @@ -.\" Copyright (c) 2006-2008,2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 12, 2019 -.Dt ELF_FLAGDATA 3 -.Os -.Sh NAME -.Nm elf_flagarhdr , -.Nm elf_flagdata , -.Nm elf_flagehdr , -.Nm elf_flagelf , -.Nm elf_flagphdr , -.Nm elf_flagscn , -.Nm elf_flagshdr -.Nd manipulate flags associated with ELF data structures -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "unsigned int" -.Fn elf_flagarhdr "Elf_Arhdr *arhdr" "Elf_Cmd cmd" "unsigned int flags" -.Ft "unsigned int" -.Fn elf_flagdata "Elf_Data *data" "Elf_Cmd cmd" "unsigned int flags" -.Ft "unsigned int" -.Fn elf_flagehdr "Elf *elf" "Elf_Cmd cmd" "unsigned int flags" -.Ft "unsigned int" -.Fn elf_flagelf "Elf *elf" "Elf_Cmd cmd" "unsigned int flags" -.Ft "unsigned int" -.Fn elf_flagphdr "Elf *elf" "Elf_Cmd cmd" "unsigned int flags" -.Ft "unsigned int" -.Fn elf_flagscn "Elf_Scn *scn" "Elf_Cmd cmd" "unsigned int flags" -.Ft "unsigned int" -.Fn elf_flagshdr "Elf_Scn *scn" "Elf_Cmd cmd" "unsigned int flags" -.Sh DESCRIPTION -These functions are used to query, set or reset flags on data -structures associated with an ELF file. -.Pp -Arguments -.Ar arhdr , -.Ar data , -.Ar elf -and -.Ar scn -denote the data structures whose flags need to be changed. -These values should have been returned by prior calls to -functions in the -.Xr elf 3 -API set: -.Bl -bullet -compact -.It -Argument -.Ar arhdr -should have been returned by a prior call to -.Xr elf_getarhdr 3 . -.It -Argument -.Ar data -should have been returned by a prior call to one of -.Xr elf_newdata 3 , -.Xr elf_getdata 3 -or -.Xr elf_rawdata 3 . -.It -Argument -.Ar elf -should have been allocated by a prior call to one of -.Xr elf_begin 3 -or -.Xr elf_memory 3 . -.It -Argument -.Ar scn -should have been returned by a prior call to one of -.Xr elf_getscn 3 , -.Xr elf_newscn 3 -or -.Xr elf_nextscn 3 . -.El -These values are allowed to be NULL to simplify error handling in -application code. -.Pp -Argument -.Ar cmd -may have the following values: -.Bl -tag -width ELF_C_SET -.It Dv ELF_C_CLR -The argument -.Ar flags -specifies the flags to be cleared. -.It Dv ELF_C_SET -The argument -.Ar flags -specifies the flags to be set. -.El -.Pp -The argument -.Ar flags -is allowed to have the following flags set: -.Bl -tag -width ELF_F_ARCHIVE_SYSV -.It Dv ELF_F_ARCHIVE -This flag is only valid with the -.Fn elf_flagelf -API. -It informs the library that the application desires to create an -.Xr ar 1 -archive. -Argument -.Ar elf -should have been opened for writing using the -.Dv ELF_C_WRITE -command to function -.Fn elf_begin . -.It Dv ELF_F_ARCHIVE_SYSV -This flag is used in conjunction with the -.Dv ELF_F_ARCHIVE -flag to indicate that library should create archives that conform -to System V layout rules. -The default is to create BSD style archives. -.It Dv ELF_F_DIRTY -Mark the associated data structure as needing to be written back -to the underlying file. -A subsequent call to -.Xr elf_update 3 -will resynchronize the library's internal data structures. -.It Dv ELF_F_LAYOUT -This flag is only valid with the -.Fn elf_flagelf -API. -It informs the library that the application will take -responsibility for the layout of the file and that the library is -not to insert any padding in between sections. -.El -.Pp -Marking a given data structure as -.Dq dirty -affects all of its contained elements. -Thus marking an ELF descriptor -.Ar elf -with -.Fn elf_flagelf "elf" "ELF_C_SET" "ELF_F_DIRTY" -means that the entire contents of the descriptor are -.Dq dirty . -.Pp -Using a value of zero for argument -.Ar flags -will return the current set of flags for the data structure being -queried. -.Sh RETURN VALUES -These functions return the updated flags if successful, or zero if -an error is detected. -.Sh COMPATIBILITY -The -.Fn elf_flagarhdr -function and the -.Dv ELF_F_ARCHIVE -and -.Dv ELF_F_ARCHIVE_SYSV -flags are an extension to the -.Xr elf 3 -API. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -An unsupported value was used for the -.Ar cmd -argument. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar flags -had unsupported flags set. -.It Bq Er ELF_E_ARGUMENT -The argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_MODE -The -.Dv ELF_F_ARCHIVE -flag was used with an ELF descriptor that had not been opened for writing. -.It Bq Er ELF_E_SEQUENCE -Function -.Fn elf_flagehdr -was called without an executable header being allocated. -.It Bq Er ELF_E_SEQUENCE -Function -.Fn elf_flagphdr -was called without a program header being allocated. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_newehdr 3 , -.Xr elf32_newphdr 3 , -.Xr elf64_newehdr 3 , -.Xr elf64_newphdr 3 , -.Xr elf_newdata 3 , -.Xr elf_update 3 , -.Xr gelf 3 , -.Xr gelf_newehdr 3 , -.Xr gelf_newphdr 3 , -.Xr gelf_update_dyn 3 , -.Xr gelf_update_move 3 , -.Xr gelf_update_rel 3 , -.Xr gelf_update_rela 3 , -.Xr gelf_update_sym 3 , -.Xr gelf_update_syminfo 3 diff --git a/contrib/elftoolchain/libelf/elf_getarhdr.3 b/contrib/elftoolchain/libelf/elf_getarhdr.3 deleted file mode 100644 index 4724c634..00000000 --- a/contrib/elftoolchain/libelf/elf_getarhdr.3 +++ /dev/null @@ -1,97 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 15, 2006 -.Dt ELF_GETARHDR 3 -.Os -.Sh NAME -.Nm elf_getarhdr -.Nd retrieve ar(1) header for an archive member -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf_Arhdr *" -.Fn elf_getarhdr "Elf *elf" -.Sh DESCRIPTION -The -.Fn elf_getarhdr -function returns a pointer to an archive member header for -a descriptor -.Ar elf . -This descriptor must have been returned by a prior call to -.Xr elf_begin 3 , -and must be a descriptor for a member inside an -.Xr ar 1 -archive. -.Pp -Structure -.Vt Elf_Arhdr -includes the following members: -.Bl -tag -width indent -.It Vt "char *" Va ar_name -A pointer to a null terminated string containing the translated -name of the archive member. -.It Vt "char *" Va ar_rawname -A pointer to a null terminated string containing the untranslated -name for the archive member, including all -.Xr ar 1 -formatting characters and trailing white space. -.It Vt time_t Va ar_date -The timestamp associated with the member. -.It Vt uid_t Va ar_uid -The uid of the creator of the member. -.It Vt gid_t Va ar_gid -The gid of the creator of the member. -.It Vt mode_t Va ar_mode -The file mode of the member. -.It Vt size_t Va ar_size -The size of the member in bytes. -.El -.Sh RETURN VALUES -This function returns a valid pointer to an -.Vt Elf_Arhdr -structure if successful, or NULL if an error is encountered. -.Sh ERRORS -Function -.Fn elf_getarhdr -may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for a member of an -.Xr ar 1 -archive. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_getarsym 3 , -.Xr elf_memory 3 diff --git a/contrib/elftoolchain/libelf/elf_getarhdr.c b/contrib/elftoolchain/libelf/elf_getarhdr.c deleted file mode 100644 index 3db6ef6d..00000000 --- a/contrib/elftoolchain/libelf/elf_getarhdr.c +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf_Arhdr * -elf_getarhdr(Elf *e) -{ - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (e->e_flags & LIBELF_F_AR_HEADER) - return (e->e_hdr.e_arhdr); - - return (_libelf_ar_gethdr(e)); -} diff --git a/contrib/elftoolchain/libelf/elf_getarsym.3 b/contrib/elftoolchain/libelf/elf_getarsym.3 deleted file mode 100644 index 930bda35..00000000 --- a/contrib/elftoolchain/libelf/elf_getarsym.3 +++ /dev/null @@ -1,130 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 15, 2006 -.Dt ELF_GETARSYM 3 -.Os -.Sh NAME -.Nm elf_getarsym -.Nd retrieve the symbol table of an archive -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf_Arsym *" -.Fn elf_getarsym "Elf *elf" "size_t *ptr" -.Sh DESCRIPTION -The function -.Fn elf_getarsym -retrieves the symbol table for an -.Xr ar 1 -archive, if one is available. -.Pp -Argument -.Ar elf -should be a descriptor for an -.Xr ar 1 -archive opened using -.Fn elf_begin -or -.Fn elf_memory . -.Pp -If the archive -.Ar elf -contains a symbol table with n entries, this function returns a -pointer to an array of n+1 -.Vt Elf_Arsym -structures. -An -.Vt Elf_Arsym -structure has the following elements: -.Bl -tag -width indent -compact -.It Vt "char *" Va as_name -This structure member is a pointer to a null-terminated symbol name. -.It Vt "off_t" Va as_off -This structure member contains the byte offset from the beginning of the archive to -the header for the archive member. -This value is suitable for use with -.Xr elf_rand 3 . -.It Vt "unsigned long" Va as_hash -This structure member contains a portable hash value for the symbol -name, as computed by -.Xr elf_hash 3 . -.El -.Pp -The last entry of the returned array will have a NULL value for member -.Va as_name , -a zero value for member -.Va as_off -and an illegal value of ~0UL for -.Va as_hash . -.Pp -If argument -.Ar ptr -is non-null, the -.Fn elf_getarsym -function will store the number of table entries returned (including the -sentinel entry at the end) into the location it points to. -.Sh RETURN VALUES -Function -.Fn elf_getarsym -returns a pointer to an array of -.Vt Elf_Arsym -structures if successful, or a NULL -pointer if an error was encountered. -.Pp -If argument -.Ar ptr -is non-null and there was no error, the library will store the -number of archive symbol entries returned into the location it -points to. -If argument -.Ar ptr -is non-null and an error was encountered, the library will -set the location pointed to by it to zero. -.Sh ERRORS -Function -.Fn elf_getarsym -may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an -.Xr ar 1 -archive. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_getarhdr 3 , -.Xr elf_hash 3 , -.Xr elf_memory 3 , -.Xr elf_next 3 , -.Xr elf_rand 3 diff --git a/contrib/elftoolchain/libelf/elf_getarsym.c b/contrib/elftoolchain/libelf/elf_getarsym.c deleted file mode 100644 index 14f7f72f..00000000 --- a/contrib/elftoolchain/libelf/elf_getarsym.c +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf_Arsym * -elf_getarsym(Elf *ar, size_t *ptr) -{ - size_t n; - Elf_Arsym *symtab; - - n = 0; - symtab = NULL; - - if (ar == NULL || ar->e_kind != ELF_K_AR) - LIBELF_SET_ERROR(ARGUMENT, 0); - else if ((symtab = ar->e_u.e_ar.e_symtab) != NULL) - n = ar->e_u.e_ar.e_symtabsz; - else if (ar->e_u.e_ar.e_rawsymtab) - symtab = (ar->e_flags & LIBELF_F_AR_VARIANT_SVR4) ? - _libelf_ar_process_svr4_symtab(ar, &n) : - _libelf_ar_process_bsd_symtab(ar, &n); - else - LIBELF_SET_ERROR(ARCHIVE, 0); - - if (ptr) - *ptr = n; - return (symtab); -} diff --git a/contrib/elftoolchain/libelf/elf_getbase.3 b/contrib/elftoolchain/libelf/elf_getbase.3 deleted file mode 100644 index 309d4d3a..00000000 --- a/contrib/elftoolchain/libelf/elf_getbase.3 +++ /dev/null @@ -1,71 +0,0 @@ -.\" Copyright (c) 2006,2008,2010 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 6, 2010 -.Dt ELF_GETBASE 3 -.Os -.Sh NAME -.Nm elf_getbase -.Nd get the base offset for an object file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft off_t -.Fn elf_getbase "Elf *elf" -.Sh DESCRIPTION -Function -.Fn elf_getbase -returns the file offset to the first byte of the object referenced by ELF -descriptor -.Ar elf . -.Pp -For descriptors referencing members of archives, the returned offset is -the file offset of the member in its containing archive. -For descriptors to regular objects, the returned offset is (vacuously) -zero. -.Sh RETURN VALUES -Function -.Fn elf_getbase -returns a valid file offset if successful, or -.Pq Vt off_t -.Li -1 -in case of an error. -.Sh ERRORS -Function -.Fn elf_getbase -may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getarhdr 3 , -.Xr elf_getident 3 , -.Xr elf_rawfile 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_getbase.c b/contrib/elftoolchain/libelf/elf_getbase.c deleted file mode 100644 index 66e8b9af..00000000 --- a/contrib/elftoolchain/libelf/elf_getbase.c +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -off_t -elf_getbase(Elf *e) -{ - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return ((off_t) -1); - } - - if (e->e_parent == NULL) - return ((off_t) 0); - - return ((off_t) ((uintptr_t) e->e_rawfile - - (uintptr_t) e->e_parent->e_rawfile)); -} diff --git a/contrib/elftoolchain/libelf/elf_getdata.3 b/contrib/elftoolchain/libelf/elf_getdata.3 deleted file mode 100644 index ba663cbe..00000000 --- a/contrib/elftoolchain/libelf/elf_getdata.3 +++ /dev/null @@ -1,234 +0,0 @@ -.\" Copyright (c) 2006,2008,2010-2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt ELF_GETDATA 3 -.Os -.Sh NAME -.Nm elf_getdata , -.Nm elf_newdata , -.Nm elf_rawdata -.Nd iterate through or allocate section data -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf_Data *" -.Fn elf_getdata "Elf_Scn *scn" "Elf_Data *data" -.Ft "Elf_Data *" -.Fn elf_newdata "Elf_Scn *scn" -.Ft "Elf_Data *" -.Fn elf_rawdata "Elf_Scn *scn" "Elf_Data *data" -.Sh DESCRIPTION -These functions are used to access and manipulate data descriptors -associated with section descriptors. -Data descriptors used by the ELF library are described in -.Xr elf 3 . -.Pp -Function -.Fn elf_getdata -will return the next data descriptor associated with section descriptor -.Ar scn . -The returned data descriptor will be setup to contain translated data. -Argument -.Ar data -may be NULL, in which case the function returns the first data descriptor -associated with section -.Ar scn . -If argument -.Ar data -is not NULL, it must be a pointer to a data descriptor associated with -section descriptor -.Ar scn , -and function -.Fn elf_getdata -will return a pointer to the next data descriptor for the section, -or NULL when the end of the section's descriptor list is reached. -.Pp -Function -.Fn elf_newdata -will allocate a new data descriptor and append it to the list of data -descriptors associated with section descriptor -.Ar scn . -The new data descriptor will be initialized as follows: -.Bl -tag -width "d_version" -compact -offset indent -.It Va d_align -Set to 1. -.It Va d_buf -Initialized to NULL. -.It Va d_off -Set to (off_t) -1. -This field is under application control if the -.Dv ELF_F_LAYOUT -flag was set on the ELF descriptor. -.It Va d_size -Set to zero. -.It Va d_type -Initialized to -.Dv ELF_T_BYTE . -.It Va d_version -Set to the current working version of the library, as set by -.Xr elf_version 3 . -.El -The application must set these values as appropriate before -calling -.Xr elf_update 3 . -Section -.Ar scn -must be associated with an ELF file opened for writing. -If the application has not requested full control of layout by -setting the -.Dv ELF_F_LAYOUT -flag on descriptor -.Ar elf , -then the data referenced by the returned descriptor will be positioned -after the existing content of the section, honoring the file alignment -specified in member -.Va d_align . -On successful completion of a call to -.Fn elf_newdata , -the ELF library will mark the section -.Ar scn -as -.Dq dirty . -.Pp -Function -.Fn elf_rawdata -is used to step through the data descriptors associated with -section -.Ar scn . -In contrast to function -.Fn elf_getdata , -this function returns untranslated data. -If argument -.Ar data -is NULL, the first data descriptor associated with section -.Ar scn -is returned. -If argument -.Ar data -is not NULL, is must be a data descriptor associated with -section -.Ar scn , -and function -.Fn elf_rawdata -will return the next data descriptor in the list, or NULL -if no further descriptors are present. -Function -.Fn elf_rawdata -always returns -.Vt Elf_Data -structures of type -.Dv ELF_T_BYTE . -.Ss Special handling of zero-sized and SHT_NOBITS sections -For sections of type -.Dv SHT_NOBITS , -and for zero-sized sections, -the functions -.Fn elf_getdata -and -.Fn elf_rawdata -return a pointer to a valid -.Vt Elf_Data -structure that has its -.Va d_buf -member set to NULL and its -.Va d_size -member set to the size of the section. -.Pp -If an application wishes to create a section of type -.Dv SHT_NOBITS , -it should add a data buffer to the section using function -.Fn elf_newdata . -It should then set the -.Va d_buf -and -.Va d_size -members of the returned -.Vt Elf_Data -structure to NULL and the desired size of the section respectively. -.Sh RETURN VALUES -These functions return a valid pointer to a data descriptor if successful, or -NULL if an error occurs. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Either of the arguments -.Ar scn -or -.Ar data -was NULL. -.It Bq Er ELF_E_ARGUMENT -The data descriptor referenced by argument -.Ar data -is not associated with section descriptor -.Ar scn . -.It Bq Er ELF_E_ARGUMENT -The section denoted by argument -.Ar scn -had no data associated with it. -.It Bq Er ELF_E_DATA -Retrieval of data from the underlying object failed. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected. -.It Bq Er ELF_E_SECTION -Section -.Ar scn -had type -.Dv SHT_NULL . -.It Bq Er ELF_E_SECTION -The type of the section -.Ar scn -was not recognized by the library. -.It Bq Er ELF_E_SECTION -The size of the section -.Ar scn -is not a multiple of the file size for its section type. -.It Bq Er ELF_E_SECTION -The file offset for section -.Ar scn -is incorrect. -.It Bq Er ELF_E_UNIMPL -The section type associated with section -.Ar scn -is not supported. -.It Bq Er ELF_E_VERSION -Section -.Ar scn -was associated with an ELF object with an unsupported -version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_flagdata 3 , -.Xr elf_flagscn 3 , -.Xr elf_getscn 3 , -.Xr elf_getshdr 3 , -.Xr elf_newscn 3 , -.Xr elf_rawfile 3 , -.Xr elf_update 3 , -.Xr elf_version 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_getident.3 b/contrib/elftoolchain/libelf/elf_getident.3 deleted file mode 100644 index d7555fef..00000000 --- a/contrib/elftoolchain/libelf/elf_getident.3 +++ /dev/null @@ -1,83 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd July 3, 2006 -.Dt ELF_GETIDENT 3 -.Os -.Sh NAME -.Nm elf_getident -.Nd return the initial bytes of a file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft char * -.Fn elf_getident "Elf *elf" "size_t *sz" -.Sh DESCRIPTION -Function -.Fn elf_getident -returns a pointer to the initial bytes of the file for descriptor -.Ar elf . -.Pp -If argument -.Ar sz -is non-null, the size of the identification area returned is written -to the location pointed to by -.Ar sz . -This location is set to zero on errors. -.Sh RETURN VALUES -Function -.Fn elf_getident -will return a non-NULL pointer to the initial bytes of the file if -successful, or NULL if an error condition is detected. -.Sh ERRORS -Function -.Fn elf_getident -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_SEQUENCE -ELF descriptor -.Ar elf -was opened for writing and function -.Fn elf_getident -was called before a call to -.Xr elf_update 3 . -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getarhdr 3 , -.Xr elf_getbase 3 , -.Xr elf_getflags 3 , -.Xr elf_kind 3 , -.Xr elf_rawfile 3 , -.Xr elf_update 3 , -.Xr gelf 3 , -.Xr gelf_getclass 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_getident.c b/contrib/elftoolchain/libelf/elf_getident.c deleted file mode 100644 index 1a71b27c..00000000 --- a/contrib/elftoolchain/libelf/elf_getident.c +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -char * -elf_getident(Elf *e, size_t *sz) -{ - - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - goto error; - } - - if (e->e_cmd == ELF_C_WRITE && e->e_rawfile == NULL) { - LIBELF_SET_ERROR(SEQUENCE, 0); - goto error; - } - - assert(e->e_kind != ELF_K_AR || e->e_cmd == ELF_C_READ); - - if (sz) { - if (e->e_kind == ELF_K_AR) - *sz = SARMAG; - else if (e->e_kind == ELF_K_ELF) - *sz = EI_NIDENT; - else - *sz = (size_t) e->e_rawsize; - } - - return ((char *) e->e_rawfile); - - error: - if (sz) - *sz = 0; - return (NULL); -} diff --git a/contrib/elftoolchain/libelf/elf_getphdrnum.3 b/contrib/elftoolchain/libelf/elf_getphdrnum.3 deleted file mode 100644 index 6bb24461..00000000 --- a/contrib/elftoolchain/libelf/elf_getphdrnum.3 +++ /dev/null @@ -1,85 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd July 25, 2018 -.Dt ELF_GETPHDRNUM 3 -.Os -.Sh NAME -.Nm elf_getphdrnum -.Nd return the number of program headers in an ELF file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_getphdrnum "Elf *elf" "size_t *phnum" -.Sh DESCRIPTION -Function -.Fn elf_getphdrnum -retrieves the number of ELF program headers associated with descriptor -.Ar elf -and stores it into the location pointed to by argument -.Ar phnum . -.Pp -This routine allows applications to uniformly process both normal ELF -objects and ELF objects that use extended numbering. -.Sh RETURN VALUES -Function -.Fn elf_getphdrnum -returns a zero value if successful, or -1 in case of an error. -.Sh ERRORS -Function -.Fn elf_getphdrnum -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -lacks an ELF Executable Header. -.It Bq Er ELF_E_HEADER -The ELF Executable Header associated with argument -.Ar elf -was corrupt. -.It Bq Er ELF_E_SECTION -The section header at index -.Dv SHN_UNDEF -was corrupt. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getident 3 , -.Xr elf_getshdrnum 3 , -.Xr elf_getshdrstrndx 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_getphnum.3 b/contrib/elftoolchain/libelf/elf_getphnum.3 deleted file mode 100644 index 3a82e0da..00000000 --- a/contrib/elftoolchain/libelf/elf_getphnum.3 +++ /dev/null @@ -1,92 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 5, 2009 -.Dt ELF_GETPHNUM 3 -.Os -.Sh NAME -.Nm elf_getphnum -.Nd return the number of program headers in an ELF file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_getphnum "Elf *elf" "size_t *phnum" -.Sh DESCRIPTION -This function is deprecated. -Please use function -.Xr elf_getphdrnum 3 -instead. -.Pp -Function -.Fn elf_getphnum -retrieves the number of ELF program headers associated with descriptor -.Ar elf -and stores it into the location pointed to by argument -.Ar phnum . -.Pp -This routine allows applications to uniformly process both normal ELF -objects and ELF objects that use extended numbering. -.Sh RETURN VALUES -Function -.Fn elf_getphnum -returns a non-zero value if successful, or zero in case of an -error. -.Sh ERRORS -Function -.Fn elf_getphnum -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -lacks an ELF Executable Header. -.It Bq Er ELF_E_HEADER -The ELF Executable Header associated with argument -.Ar elf -was corrupt. -.It Bq Er ELF_E_SECTION -The section header at index -.Dv SHN_UNDEF -was corrupt. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getident 3 , -.Xr elf_getphdrnum 3 , -.Xr elf_getshdrnum 3 , -.Xr elf_getshdrstrndx 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_getscn.3 b/contrib/elftoolchain/libelf/elf_getscn.3 deleted file mode 100644 index 9101e8a7..00000000 --- a/contrib/elftoolchain/libelf/elf_getscn.3 +++ /dev/null @@ -1,155 +0,0 @@ -.\" Copyright (c) 2006-2008,2018 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd September 24, 2018 -.Dt ELF_GETSCN 3 -.Os -.Sh NAME -.Nm elf_getscn , -.Nm elf_ndxscn , -.Nm elf_newscn , -.Nm elf_nextscn -.Nd get/allocate section information for an ELF object -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf_Scn *" -.Fn elf_getscn "Elf *elf" "size_t index" -.Ft size_t -.Fn elf_ndxscn "Elf_Scn *scn" -.Ft "Elf_Scn *" -.Fn elf_newscn "Elf *elf" -.Ft "Elf_Scn *" -.Fn elf_nextscn "Elf *elf" "Elf_Scn *scn" -.Sh DESCRIPTION -These functions are used to iterate through the sections associated -with an ELF descriptor. -.Pp -Function -.Fn elf_getscn -will return a section descriptor for the section at index -.Ar index -in the object denoted by ELF descriptor -.Ar elf . -An error will be signalled if the specified section does not -exist. -.Pp -Function -.Fn elf_ndxscn -returns the section table index associated with section descriptor -.Ar scn . -.Pp -Function -.Fn elf_newscn -creates a new section and appends it to the list of sections -associated with descriptor -.Ar elf . -The library will automatically increment the -.Va e_shnum -field of the ELF header associated with descriptor -.Ar elf , -and will set the -.Dv ELF_F_DIRTY -flag on the returned section descriptor. -For ELF descriptors opened for writing, the ELF library will -automatically create an empty section at index zero -.Dv ( SHN_UNDEF ) -on the first call to -.Fn elf_newscn . -.Pp -Function -.Fn elf_nextscn -takes a section descriptor -.Ar scn -and returns a pointer to the section descriptor at the next higher -index. -As a consequence, -.Fn elf_nextscn -will never return a pointer to the empty section at index zero -.Dv ( SHN_UNDEF ) . -Argument -.Ar scn -is allowed to be NULL, in which case this function will return a -pointer to the section descriptor at index 1. -If no further sections are present, function -.Fn elf_nextscn -will return a NULL pointer. -.Sh RETURN VALUES -Functions -.Fn elf_getscn , -.Fn elf_newscn -and -.Fn elf_nextscn -return a valid pointer to a section descriptor if successful, or -NULL if an error occurs. -.Pp -Function -.Fn elf_ndxscn -returns a valid section table index if successful, or -.Dv SHN_UNDEF -if an error occurs. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar elf -or -.Ar scn -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar index -exceeded the current number of sections in the ELF object. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Section descriptor -.Ar scn -was not associated with ELF descriptor -.Ar elf . -.It Bq Er ELF_E_CLASS -Descriptor -.Ar elf -was of an unknown ELF class. -.It Bq Er ELF_E_SECTION -Argument -.Ar elf -specified extended section numbering in the ELF header with the section header at -index -.Dv SHN_UNDEF -not being of type -.Dv SHT_NULL . -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_flagdata 3 , -.Xr elf_flagscn 3 , -.Xr elf_getdata 3 , -.Xr elf_getshdr 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_getshdrnum.3 b/contrib/elftoolchain/libelf/elf_getshdrnum.3 deleted file mode 100644 index 33ddb714..00000000 --- a/contrib/elftoolchain/libelf/elf_getshdrnum.3 +++ /dev/null @@ -1,77 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 4, 2009 -.Dt ELF_GETSHDRNUM 3 -.Os -.Sh NAME -.Nm elf_getshdrnum -.Nd return the number of sections in an ELF file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_getshdrnum "Elf *elf" "size_t *shnum" -.Sh DESCRIPTION -Function -.Fn elf_getshdrnum -retrieves the number of ELF sections associated with descriptor -.Ar elf -and stores it into the location pointed to by argument -.Ar shnum . -.Pp -This routine allows applications to uniformly process both normal ELF -objects, and ELF objects that use extended section numbering. -.Sh RETURN VALUES -Function -.Fn elf_getshdrnum -returns zero value if successful, or -1 in case of an error. -.Sh ERRORS -Function -.Fn elf_getshdrnum -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -lacks an ELF Executable header. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getident 3 , -.Xr elf_getphdrnum 3 , -.Xr elf_getshdrstrndx 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_getshdrstrndx.3 b/contrib/elftoolchain/libelf/elf_getshdrstrndx.3 deleted file mode 100644 index 5427c0fa..00000000 --- a/contrib/elftoolchain/libelf/elf_getshdrstrndx.3 +++ /dev/null @@ -1,78 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 5, 2009 -.Dt ELF_GETSHDRSTRNDX 3 -.Os -.Sh NAME -.Nm elf_getshdrstrndx -.Nd retrieve the index of the section name string table -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_getshdrstrndx "Elf *elf" "size_t *ndxptr" -.Sh DESCRIPTION -Function -.Fn elf_getshdrstrndx -retrieves the section index of the string table containing section -names from descriptor -.Ar elf -and stores it into the location pointed to by argument -.Ar ndxptr . -.Pp -This function allow applications to process both normal ELF -objects and ELF objects that use extended section numbering uniformly. -.Sh RETURN VALUES -These functions return zero if successful, or -1 in case of an error. -.Sh ERRORS -These functions can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -lacks an ELF Executable header. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -contained a value in the reserved range of section indices. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getident 3 , -.Xr elf_getphdrnum 3 , -.Xr elf_getshdrnum 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_getshnum.3 b/contrib/elftoolchain/libelf/elf_getshnum.3 deleted file mode 100644 index 9bfa5338..00000000 --- a/contrib/elftoolchain/libelf/elf_getshnum.3 +++ /dev/null @@ -1,83 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 5, 2009 -.Dt ELF_GETSHNUM 3 -.Os -.Sh NAME -.Nm elf_getshnum -.Nd return the number of sections in an ELF file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_getshnum "Elf *elf" "size_t *shnum" -.Sh DESCRIPTION -This function is deprecated. -Please use -.Xr elf_getshdrnum 3 -instead. -.Pp -Function -.Fn elf_getshnum -retrieves the number of ELF sections associated with descriptor -.Ar elf -and stores it into the location pointed to by argument -.Ar shnum . -.Pp -This routine allows applications to uniformly process both normal ELF -objects, and ELF objects that use extended section numbering. -.Sh RETURN VALUES -Function -.Fn elf_getshnum -returns a non-zero value if successful, or zero in case of an -error. -.Sh ERRORS -Function -.Fn elf_getshnum -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -lacks an ELF Executable header. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getident 3 , -.Xr elf_getphdrnum 3 , -.Xr elf_getshdrstrndx 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_getshstrndx.3 b/contrib/elftoolchain/libelf/elf_getshstrndx.3 deleted file mode 100644 index 172bb93f..00000000 --- a/contrib/elftoolchain/libelf/elf_getshstrndx.3 +++ /dev/null @@ -1,94 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd July 25, 2018 -.Dt ELF_GETSHSTRNDX 3 -.Os -.Sh NAME -.Nm elf_getshstrndx , -.Nm elf_setshstrndx -.Nd retrieve/update the index of the section name string table -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft int -.Fn elf_getshstrndx "Elf *elf" "size_t *ndxptr" -.Ft int -.Fn elf_setshstrndx "Elf *elf" "size_t ndx" -.Sh DESCRIPTION -Function -.Fn elf_getshstrndx -is deprecated. -Please use -.Xr elf_getshdrstrndx 3 -instead. -.Pp -Function -.Fn elf_getshstrndx -retrieves the section index of the string table containing section -names from descriptor -.Ar elf -and stores it into the location pointed to by argument -.Ar ndxptr . -.Pp -Function -.Fn elf_setshstrndx -sets the index of the section name string table to argument -.Ar ndx . -.Pp -These routines allow applications to process both normal ELF -objects and ELF objects that use extended section numbering uniformly. -.Sh RETURN VALUES -These functions return a non-zero value if successful, or zero in case -of an error. -.Sh ERRORS -These functions can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was passed in for argument -.Ar elf . -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not for an ELF file. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -lacks an ELF Executable header. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -contained a value in the reserved range of section indices. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_getident 3 , -.Xr elf_getphdrnum 3 , -.Xr elf_getshdrnum 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 diff --git a/contrib/elftoolchain/libelf/elf_hash.3 b/contrib/elftoolchain/libelf/elf_hash.3 deleted file mode 100644 index a8e60904..00000000 --- a/contrib/elftoolchain/libelf/elf_hash.3 +++ /dev/null @@ -1,57 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 15, 2006 -.Dt ELF_HASH 3 -.Os -.Sh NAME -.Nm elf_hash -.Nd compute a hash value for a string -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "unsigned long" -.Fn elf_hash "const char *name" -.Sh DESCRIPTION -Function -.Fn elf_hash -computes a portable hash value for the null terminated string -pointed to by argument -.Ar name . -.Pp -The hash value returned is will be identical across -machines of different architectures. -This allows hash tables to be built on one machine and -correctly used on another of a different architecture. -The hash value returned is also guaranteed -.Em not -to be the bit pattern of all ones (~0UL). -.Sh IMPLEMENTATION NOTES -The library internally uses unsigned 32 bit arithmetic to compute -the hash value. -.Sh SEE ALSO -.Xr elf 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_hash.c b/contrib/elftoolchain/libelf/elf_hash.c deleted file mode 100644 index 69147b18..00000000 --- a/contrib/elftoolchain/libelf/elf_hash.c +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * This elf_hash function is defined by the System V ABI. - */ - -unsigned long -elf_hash(const char *name) -{ - unsigned long h, t; - const unsigned char *s; - - s = (const unsigned char *) name; - h = t = 0; - - for (; *s != '\0'; h = h & ~t) { - h = (h << 4) + *s++; - t = h & 0xF0000000UL; - if (t) - h ^= t >> 24; - } - - return (h); -} diff --git a/contrib/elftoolchain/libelf/elf_kind.3 b/contrib/elftoolchain/libelf/elf_kind.3 deleted file mode 100644 index 0df76024..00000000 --- a/contrib/elftoolchain/libelf/elf_kind.3 +++ /dev/null @@ -1,71 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 1, 2006 -.Dt ELF_KIND 3 -.Os -.Sh NAME -.Nm elf_kind -.Nd determine ELF file type -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft Elf_Kind -.Fn elf_kind "Elf *elf" -.Sh DESCRIPTION -The -.Fn elf_kind -function identifies the kind of file associated with its argument -.Ar elf . -The argument -.Ar elf -is allowed to be NULL. -.Sh RETURN VALUES -The -.Fn elf_kind -function returns one of the following values: -.Bl -tag -width indent -.It Dv ELF_K_AR -The file associated with argument -.Ar elf -is an archive. -.It Dv ELF_K_ELF -The file associated with argument -.Ar elf -is an ELF file. -.It Dv ELF_K_NONE -The argument -.Ar elf -was NULL, or the ELF library could not determine the type of the file -associated with argument -.Ar elf , -or an error occurred when processing. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_getident 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_kind.c b/contrib/elftoolchain/libelf/elf_kind.c deleted file mode 100644 index 4e937033..00000000 --- a/contrib/elftoolchain/libelf/elf_kind.c +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf_Kind -elf_kind(Elf *e) -{ - if (e == NULL) - return (ELF_K_NONE); - if (e->e_kind == ELF_K_AR || - e->e_kind == ELF_K_ELF) - return (e->e_kind); - return (ELF_K_NONE); -} diff --git a/contrib/elftoolchain/libelf/elf_memory.3 b/contrib/elftoolchain/libelf/elf_memory.3 deleted file mode 100644 index 4ed5457d..00000000 --- a/contrib/elftoolchain/libelf/elf_memory.3 +++ /dev/null @@ -1,122 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 28, 2006 -.Dt ELF_MEMORY 3 -.Os -.Sh NAME -.Nm elf_memory -.Nd process an ELF or ar(1) archive mapped into memory -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf *" -.Fn elf_memory "char *image" "size_t size" -.Sh DESCRIPTION -Function -.Fn elf_memory -is used to process an ELF file or -.Xr ar 1 -archive whose image is present in memory. -.Pp -Argument -.Ar image -points to the start of the memory image of the file or archive. -Argument -.Ar size -contains the size in bytes of the memory image. -.Pp -The ELF descriptor is created for reading (i.e., analogous to the -use of -.Xr elf_begin 3 -with a command argument value of -.Dv ELF_C_READ Ns ). -.Sh RETURN VALUES -Function -.Fn elf_memory -returns a pointer to a new ELF descriptor if successful, or NULL if an -error occurred. -.Pp -The return value may be queried for the file type using -.Xr elf_kind 3 . -.Sh EXAMPLES -To read parse an elf file, use: -.Bd -literal -offset indent -int fd; -void *p; -struct stat sb; -Elf *e; -\&... -if ((fd = open("./elf-file", O_RDONLY)) < 0 || - fstat(fd, &sb) < 0 || - (p = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, (off_t) 0)) == - MAP_FAILED) { - ... handle system error ... -} - -if ((e = elf_memory(p, sb.st_size)) == NULL) { - ... handle elf(3) error ... -} -\&... use ELF descriptor "e" here ... -.Ed -.Sh ERRORS -Function -.Fn elf_memory -can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -A NULL value was used for argument -.Ar image -or the value of argument -.Ar sz -was zero. -.It Bq Er ELF_E_HEADER -The header of the ELF object contained an unsupported value in its -.Va e_ident[EI_CLASS] -field. -.It Bq Er ELF_E_HEADER -The header of the ELF object contained an unsupported value in its -.Va e_ident[EI_DATA] -field. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected. -.It Bq Er ELF_E_SEQUENCE -Function -.Fn elf_memory -was called before a working version was set using -.Xr elf_version 3 . -.It Bq Er ELF_E_VERSION -The ELF object referenced by argument -.Ar image -was of an unsupported ELF version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_end 3 , -.Xr elf_errno 3 , -.Xr elf_kind 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_memory.c b/contrib/elftoolchain/libelf/elf_memory.c deleted file mode 100644 index 852a85cb..00000000 --- a/contrib/elftoolchain/libelf/elf_memory.c +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf * -elf_memory(char *image, size_t sz) -{ - if (LIBELF_PRIVATE(version) == EV_NONE) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (NULL); - } - - if (image == NULL || sz == 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - return (_libelf_memory((unsigned char *) image, sz, 1)); -} diff --git a/contrib/elftoolchain/libelf/elf_next.3 b/contrib/elftoolchain/libelf/elf_next.3 deleted file mode 100644 index 90dc7ae5..00000000 --- a/contrib/elftoolchain/libelf/elf_next.3 +++ /dev/null @@ -1,99 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd February 27, 2019 -.Dt ELF_NEXT 3 -.Os -.Sh NAME -.Nm elf_next -.Nd provide sequential access to the next archive member -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft Elf_Cmd -.Fn elf_next "Elf *elf" -.Sh DESCRIPTION -The -.Fn elf_next -function causes the ELF archive descriptor corresponding to argument -.Ar elf -to be adjusted to provide access to the next member in -the archive on a subsequent call to -.Fn elf_begin . -.Pp -The return value of -.Fn elf_next -is suitable for use in a loop invoking -.Fn elf_begin . -.Sh RETURN VALUES -If successful, function -.Fn elf_next -returns the value -.Dv ELF_C_READ . -Otherwise, if argument -.Ar elf -was not associated with an archive, or if it was -.Dv NULL , -or if any other error occurred, the value -.Dv ELF_C_NULL -is returned. -.Sh EXAMPLES -To process all the members of an archive use: -.Bd -literal -offset indent -Elf_Cmd cmd; -Elf *archive, *e; -\&... -cmd = ELF_C_READ; -archive = elf_begin(fd, cmd, NULL); -while ((e = elf_begin(fd, cmd, archive)) != (Elf *) 0) -{ - ... process `e' here ... - - cmd = elf_next(e); - elf_end(e); -} -elf_end(archive); -.Ed -.Sh ERRORS -Function -.Fn elf_next -may fail with the following error: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not associated with a containing -.Xr ar 1 -archive. -.It Bq Er ELF_E_ARGUMENT -An error was encountered while parsing the archive containing argument -.Ar elf . -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_end 3 , -.Xr elf_rand 3 diff --git a/contrib/elftoolchain/libelf/elf_next.c b/contrib/elftoolchain/libelf/elf_next.c deleted file mode 100644 index ad595a0a..00000000 --- a/contrib/elftoolchain/libelf/elf_next.c +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf_Cmd -elf_next(Elf *e) -{ - off_t next; - Elf *parent; - - if (e == NULL) - return (ELF_C_NULL); - - if ((parent = e->e_parent) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (ELF_C_NULL); - } - - assert(parent->e_kind == ELF_K_AR); - assert(parent->e_cmd == ELF_C_READ); - assert(e->e_rawfile > parent->e_rawfile); - - next = e->e_rawfile - parent->e_rawfile + (off_t) e->e_rawsize; - next = (next + 1) & ~1; /* round up to an even boundary */ - - /* - * Setup the 'e_next' field of the archive descriptor for the - * next call to 'elf_begin()'. - */ - parent->e_u.e_ar.e_next = (next >= (off_t) parent->e_rawsize) ? - (off_t) 0 : next; - - /* - * Return an error if the 'e_next' field falls outside the current - * file. - * - * This check is performed after updating the parent descriptor's - * 'e_next' field so that the next call to elf_begin(3) will terminate - * traversal of a too-small archive even if client code forgets to - * check the return value from elf_next(3). - */ - if (next > (off_t) parent->e_rawsize) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (ELF_C_NULL); - } - - return (ELF_C_READ); -} diff --git a/contrib/elftoolchain/libelf/elf_open.3 b/contrib/elftoolchain/libelf/elf_open.3 deleted file mode 100644 index f6d0611d..00000000 --- a/contrib/elftoolchain/libelf/elf_open.3 +++ /dev/null @@ -1,125 +0,0 @@ -.\" Copyright (c) 2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 12, 2019 -.Dt ELF_OPEN 3 -.Os -.Sh NAME -.Nm elf_open -.Nd open ELF objects and ar(1) archives -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf *" -.Fn elf_open "int fd" -.Ft "Elf *" -.Fn elf_openmemory "char *image" "size_t sz" -.Sh DESCRIPTION -.Em Important : -The functions -.Fn elf_open -and -.Fn elf_openmemory -are extensions to the -.Xr elf 3 -API, for the internal use of the -Elftoolchain project. -Portable applications should not use these functions. -.Pp -The function -.Fn elf_open -returns an Elf descriptor opened with mode -.Dv ELF_C_READ -for the ELF object or -.Xr ar 1 -archive referenced by the file descriptor in argument -.Ar fd . -.Pp -The function -.Fn elf_openmemory -returns an ELF descriptor opened with mode -.Dv ELF_C_READ -for the ELF object or -.Xr ar 1 -archive contained in the memory area pointed to by the argument -.Ar image . -The argument -.Ar sz -specifies the size of the memory area in bytes. -.Sh RETURN VALUES -The function returns a pointer to a ELF descriptor if successful, or -NULL if an error occurred. -.Sh COMPATIBILITY -These functions are non-standard extensions to the -.Xr elf 3 -API set. -.Pp -The behavior of these functions differs from their counterparts -.Xr elf_begin 3 -and -.Xr elf_memory 3 -in that these functions will successfully open malformed ELF objects -and -.Xr ar 1 -archives, returning an Elf descriptor of type -.Dv ELF_K_NONE . -.Sh ERRORS -These functions can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -The argument -.Ar fd -was of an unsupported file type. -.It Bq Er ELF_E_ARGUMENT -The argument -.Ar sz -was zero, or the argument -.Ar image -was NULL. -.It Bq Er ELF_E_IO -The file descriptor in argument -.Ar fd -was invalid. -.It Bq Er ELF_E_IO -The file descriptor in argument -.Ar fd -could not be read. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was encountered. -.It Bq Er ELF_E_SEQUENCE -Functions -.Fn elf_open -or -.Fn elf_openmemory -was called before a working version was established with -.Xr elf_version 3 . -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_errno 3 , -.Xr elf_memory 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_open.c b/contrib/elftoolchain/libelf/elf_open.c deleted file mode 100644 index 5aad459f..00000000 --- a/contrib/elftoolchain/libelf/elf_open.c +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * Copyright (c) 2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Extension API: open a file for reading, ignoring parse errors. - */ - -Elf * -elf_open(int fd) -{ - if (LIBELF_PRIVATE(version) == EV_NONE) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (NULL); - } - - return (_libelf_open_object(fd, ELF_C_READ, 0)); -} - -/* - * Extension API: create an ELF descriptor for an in-memory object, - * ignoring parse errors. - */ - -Elf * -elf_openmemory(char *image, size_t sz) -{ - if (LIBELF_PRIVATE(version) == EV_NONE) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (NULL); - } - - if (image == NULL || sz == 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - return (_libelf_memory((unsigned char *) image, sz, 0)); -} diff --git a/contrib/elftoolchain/libelf/elf_phnum.c b/contrib/elftoolchain/libelf/elf_phnum.c deleted file mode 100644 index b08cc303..00000000 --- a/contrib/elftoolchain/libelf/elf_phnum.c +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -static int -_libelf_getphdrnum(Elf *e, size_t *phnum) -{ - void *eh; - int ec; - - if (e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (-1); - } - - if ((eh = _libelf_ehdr(e, ec, 0)) == NULL) - return (-1); - - *phnum = e->e_u.e_elf.e_nphdr; - - return (0); -} - -int -elf_getphdrnum(Elf *e, size_t *phnum) -{ - return (_libelf_getphdrnum(e, phnum)); -} - -/* Deprecated API */ -int -elf_getphnum(Elf *e, size_t *phnum) -{ - return (_libelf_getphdrnum(e, phnum) >= 0); -} diff --git a/contrib/elftoolchain/libelf/elf_rand.3 b/contrib/elftoolchain/libelf/elf_rand.3 deleted file mode 100644 index d61e5b23..00000000 --- a/contrib/elftoolchain/libelf/elf_rand.3 +++ /dev/null @@ -1,118 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 17, 2006 -.Dt ELF_RAND 3 -.Os -.Sh NAME -.Nm elf_rand -.Nd provide sequential access to the next archive member -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft off_t -.Fn elf_rand "Elf *archive" "off_t offset" -.Sh DESCRIPTION -The -.Fn elf_rand -function causes the ELF descriptor -.Ar archive -to be adjusted so that the next call to -.Xr elf_begin 3 -will provide access to the archive member at byte offset -.Ar offset -in the archive. -Argument -.Ar offset -is the byte offset from the start of the archive to the beginning of -the archive header for the desired member. -.Pp -Archive member offsets may be retrieved using the -.Xr elf_getarsym 3 -function. -.Sh RETURN VALUES -Function -.Fn elf_rand -returns -.Ar offset -if successful or zero in case of an error. -.Sh EXAMPLES -To process all the members of an archive use: -.Bd -literal -offset indent -off_t off; -Elf *archive, *e; -\&... -cmd = ELF_C_READ; -archive = elf_begin(fd, cmd, NULL); -while ((e = elf_begin(fd, cmd, archive)) != (Elf *) 0) -{ - ... process `e' here ... - elf_end(e); - - off = ...new value...; - if (elf_rand(archive, off) != off) { - ... process error ... - } -} -elf_end(archive); -.Ed -.Pp -To rewind an archive, use: -.Bd -literal -offset indent -Elf *archive; -\&... -if (elf_rand(archive, SARMAG) != SARMAG) { - ... error ... -} -.Ed -.Sh ERRORS -Function -.Fn elf_rand -may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar archive -was null. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar archive -was not a descriptor for an -.Xr ar 1 -archive. -.It Bq Er ELF_E_ARCHIVE -Argument -.Ar offset -did not correspond to the start of an archive member header. -.El -.Sh SEE ALSO -.Xr ar 1 , -.Xr elf 3 , -.Xr elf_begin 3 , -.Xr elf_end 3 , -.Xr elf_getarsym 3 , -.Xr elf_next 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_rand.c b/contrib/elftoolchain/libelf/elf_rand.c deleted file mode 100644 index cd8774d3..00000000 --- a/contrib/elftoolchain/libelf/elf_rand.c +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -off_t -elf_rand(Elf *ar, off_t offset) -{ - struct ar_hdr *arh; - off_t offset_of_member; - - if (ar == NULL || ar->e_kind != ELF_K_AR || - (offset & 1) || offset < SARMAG || - offset >= ar->e_rawsize) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return 0; - } - - offset_of_member = offset + (off_t) sizeof(struct ar_hdr); - - if (offset_of_member <= 0 || /* Numeric overflow. */ - offset_of_member >= ar->e_rawsize) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return 0; - } - - arh = (struct ar_hdr *) (ar->e_rawfile + offset); - - /* a too simple sanity check */ - if (arh->ar_fmag[0] != '`' || arh->ar_fmag[1] != '\n') { - LIBELF_SET_ERROR(ARCHIVE, 0); - return 0; - } - - ar->e_u.e_ar.e_next = offset; - - return (offset); -} diff --git a/contrib/elftoolchain/libelf/elf_rawfile.3 b/contrib/elftoolchain/libelf/elf_rawfile.3 deleted file mode 100644 index da0517c0..00000000 --- a/contrib/elftoolchain/libelf/elf_rawfile.3 +++ /dev/null @@ -1,76 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd July 3, 2006 -.Dt ELF_RAWFILE 3 -.Os -.Sh NAME -.Nm elf_rawfile -.Nd return uninterpreted contents of an ELF file -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft char * -.Fn elf_rawfile "Elf *elf" "size_t *sz" -.Sh DESCRIPTION -Function -.Fn elf_rawfile -returns the uninterpreted contents of the file referenced by ELF descriptor -.Ar elf . -.Pp -If argument -.Ar sz -is non-null, the function stores the file's size in bytes -in the location to which it points. -A value of zero is written to this location if an error is -encountered. -.Sh RETURN VALUES -Function -.Fn elf_rawfile -returns a valid pointer if successful or NULL if an error occurs. -.Sh ERRORS -Function -.Fn elf_rawfile -may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_SEQUENCE -Argument -.Ar elf -was opened for writing and function -.Fn elf_rawfile -was invoked before -.Xr elf_update 3 . -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getident 3 , -.Xr elf_kind 3 , -.Xr elf_update 3 diff --git a/contrib/elftoolchain/libelf/elf_rawfile.c b/contrib/elftoolchain/libelf/elf_rawfile.c deleted file mode 100644 index c9cc5ff4..00000000 --- a/contrib/elftoolchain/libelf/elf_rawfile.c +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -char * -elf_rawfile(Elf *e, size_t *sz) -{ - unsigned char *ptr; - - ptr = NULL; - - if (e == NULL) - LIBELF_SET_ERROR(ARGUMENT, 0); - else if ((ptr = e->e_rawfile) == NULL && e->e_cmd == ELF_C_WRITE) - LIBELF_SET_ERROR(SEQUENCE, 0); - - if (sz) - *sz = e ? (size_t) e->e_rawsize : 0; - - return ((char *) ptr); -} diff --git a/contrib/elftoolchain/libelf/elf_scn.c b/contrib/elftoolchain/libelf/elf_scn.c deleted file mode 100644 index 4a067781..00000000 --- a/contrib/elftoolchain/libelf/elf_scn.c +++ /dev/null @@ -1,236 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Load an ELF section table and create a list of Elf_Scn structures. - */ -int -_libelf_load_section_headers(Elf *e, void *ehdr) -{ - Elf_Scn *scn; - uint64_t shoff; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - int ec, swapbytes; - unsigned char *src; - size_t fsz, i, shnum; - _libelf_translator_function *xlator; - - assert(e != NULL); - assert(ehdr != NULL); - assert((e->e_flags & LIBELF_F_SHDRS_LOADED) == 0); - -#define CHECK_EHDR(E,EH) do { \ - uintmax_t rawsize = (uintmax_t) e->e_rawsize; \ - if (shoff > (uintmax_t) e->e_rawsize || \ - fsz != (EH)->e_shentsize || \ - shnum > SIZE_MAX / fsz || \ - fsz * shnum > rawsize - shoff) { \ - LIBELF_SET_ERROR(HEADER, 0); \ - return (0); \ - } \ - } while (0) - - ec = e->e_class; - fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, (size_t) 1); - assert(fsz > 0); - - shnum = e->e_u.e_elf.e_nscn; - - if (ec == ELFCLASS32) { - eh32 = (Elf32_Ehdr *) ehdr; - shoff = (uint64_t) eh32->e_shoff; - CHECK_EHDR(e, eh32); - } else { - eh64 = (Elf64_Ehdr *) ehdr; - shoff = eh64->e_shoff; - CHECK_EHDR(e, eh64); - } - - xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec, - _libelf_elfmachine(e)); - - swapbytes = e->e_byteorder != LIBELF_PRIVATE(byteorder); - src = e->e_rawfile + shoff; - - /* - * If the file is using extended numbering then section #0 - * would have already been read in. - */ - - i = 0; - if (!STAILQ_EMPTY(&e->e_u.e_elf.e_scn)) { - assert(STAILQ_FIRST(&e->e_u.e_elf.e_scn) == - STAILQ_LAST(&e->e_u.e_elf.e_scn, _Elf_Scn, s_next)); - - i = 1; - src += fsz; - } - - for (; i < shnum; i++, src += fsz) { - if ((scn = _libelf_allocate_scn(e, i)) == NULL) - return (0); - - (*xlator)((unsigned char *) &scn->s_shdr, sizeof(scn->s_shdr), - src, (size_t) 1, swapbytes); - - if (ec == ELFCLASS32) { - scn->s_offset = scn->s_rawoff = - scn->s_shdr.s_shdr32.sh_offset; - scn->s_size = scn->s_shdr.s_shdr32.sh_size; - } else { - scn->s_offset = scn->s_rawoff = - scn->s_shdr.s_shdr64.sh_offset; - scn->s_size = scn->s_shdr.s_shdr64.sh_size; - } - } - - e->e_flags |= LIBELF_F_SHDRS_LOADED; - - return (1); -} - - -Elf_Scn * -elf_getscn(Elf *e, size_t index) -{ - int ec; - void *ehdr; - Elf_Scn *s; - - if (e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) - return (NULL); - - if (e->e_cmd != ELF_C_WRITE && - (e->e_flags & LIBELF_F_SHDRS_LOADED) == 0 && - _libelf_load_section_headers(e, ehdr) == 0) - return (NULL); - - STAILQ_FOREACH(s, &e->e_u.e_elf.e_scn, s_next) - if (s->s_ndx == index) - return (s); - - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); -} - -size_t -elf_ndxscn(Elf_Scn *s) -{ - if (s == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (SHN_UNDEF); - } - return (s->s_ndx); -} - -Elf_Scn * -elf_newscn(Elf *e) -{ - int ec; - void *ehdr; - Elf_Scn *scn; - - if (e == NULL || e->e_kind != ELF_K_ELF) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) { - LIBELF_SET_ERROR(CLASS, 0); - return (NULL); - } - - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) - return (NULL); - - /* - * The application may be asking for a new section descriptor - * on an ELF object opened with ELF_C_RDWR or ELF_C_READ. We - * need to bring in the existing section information before - * appending a new one to the list. - * - * Per the ELF(3) API, an application is allowed to open a - * file using ELF_C_READ, mess with its internal structure and - * use elf_update(...,ELF_C_NULL) to compute its new layout. - */ - if (e->e_cmd != ELF_C_WRITE && - (e->e_flags & LIBELF_F_SHDRS_LOADED) == 0 && - _libelf_load_section_headers(e, ehdr) == 0) - return (NULL); - - if (STAILQ_EMPTY(&e->e_u.e_elf.e_scn)) { - assert(e->e_u.e_elf.e_nscn == 0); - if ((scn = _libelf_allocate_scn(e, (size_t) SHN_UNDEF)) == - NULL) - return (NULL); - e->e_u.e_elf.e_nscn++; - } - - assert(e->e_u.e_elf.e_nscn > 0); - - if ((scn = _libelf_allocate_scn(e, e->e_u.e_elf.e_nscn)) == NULL) - return (NULL); - - e->e_u.e_elf.e_nscn++; - - (void) elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY); - - return (scn); -} - -Elf_Scn * -elf_nextscn(Elf *e, Elf_Scn *s) -{ - if (e == NULL || (e->e_kind != ELF_K_ELF) || - (s && s->s_elf != e)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - return (s == NULL ? elf_getscn(e, (size_t) 1) : - STAILQ_NEXT(s, s_next)); -} diff --git a/contrib/elftoolchain/libelf/elf_shnum.c b/contrib/elftoolchain/libelf/elf_shnum.c deleted file mode 100644 index 66c134db..00000000 --- a/contrib/elftoolchain/libelf/elf_shnum.c +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -static int -_libelf_getshdrnum(Elf *e, size_t *shnum) -{ - void *eh; - int ec; - - if (e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (-1); - } - - if ((eh = _libelf_ehdr(e, ec, 0)) == NULL) - return (-1); - - *shnum = e->e_u.e_elf.e_nscn; - - return (0); -} - -int -elf_getshdrnum(Elf *e, size_t *shnum) -{ - return (_libelf_getshdrnum(e, shnum)); -} - -/* Deprecated API. */ -int -elf_getshnum(Elf *e, size_t *shnum) -{ - return (_libelf_getshdrnum(e, shnum) >= 0); -} diff --git a/contrib/elftoolchain/libelf/elf_shstrndx.c b/contrib/elftoolchain/libelf/elf_shstrndx.c deleted file mode 100644 index 3b2384cb..00000000 --- a/contrib/elftoolchain/libelf/elf_shstrndx.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -static int -_libelf_getshdrstrndx(Elf *e, size_t *strndx) -{ - void *eh; - int ec; - - if (e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (-1); - } - - if ((eh = _libelf_ehdr(e, ec, 0)) == NULL) - return (-1); - - *strndx = e->e_u.e_elf.e_strndx; - - return (0); -} - -int -elf_getshdrstrndx(Elf *e, size_t *strndx) -{ - return (_libelf_getshdrstrndx(e, strndx)); -} - -int -elf_getshstrndx(Elf *e, size_t *strndx) /* Deprecated API. */ -{ - return (_libelf_getshdrstrndx(e, strndx) >= 0); -} - -int -elf_setshstrndx(Elf *e, size_t strndx) -{ - void *eh; - int ec; - - if (e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || - ((eh = _libelf_ehdr(e, ec, 0)) == NULL)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - return (_libelf_setshstrndx(e, eh, ec, strndx)); -} diff --git a/contrib/elftoolchain/libelf/elf_strptr.3 b/contrib/elftoolchain/libelf/elf_strptr.3 deleted file mode 100644 index cded734b..00000000 --- a/contrib/elftoolchain/libelf/elf_strptr.3 +++ /dev/null @@ -1,116 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 16, 2006 -.Dt ELF_STRPTR 3 -.Os -.Sh NAME -.Nm elf_strptr -.Nd retrieve a string pointer in a string table -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "char *" -.Fn elf_strptr "Elf *elf" "size_t scndx" "size_t stroffset" -.Sh DESCRIPTION -Function -.Fn elf_strptr -allows an application to convert a string table offset to a string -pointer, correctly translating the offset in the presence -of multiple -.Vt Elf_Data -descriptors covering the contents of the section. -.Pp -Argument -.Ar elf -is a descriptor for an ELF object. -Argument -.Ar scndx -is the section index for an ELF string table. -Argument -.Ar stroffset -is the index of the desired string in the string -table. -.Sh RETURN VALUES -Function -.Fn elf_strptr -returns a valid pointer on success or NULL in case an error was -encountered. -.Sh ERRORS -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar scndx -was not the section index for a string table. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar stroffset -exceeded the size of the string table. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar stroffset -index an unallocated region of the string table. -.It Bq Er ELF_E_DATA -Offset -.Ar stroffset -indexed a region that was not covered by any Elf_Data -descriptor. -.It Bq Er ELF_E_DATA -An erroneous -.Vt Elf_Data -descriptor was part of the section specified by argument -.Ar scndx . -.It Bq Er ELF_E_HEADER -ELF descriptor -.Ar elf -contained an invalid section header. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected. -.It Bq Er ELF_E_SECTION -Section -.Ar scndx -contained a malformed section header. -.It Bq Er ELF_E_SECTION -The ELF descriptor in argument -.Ar elf -did not adhere to the conventions used for extended numbering. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getshdr 3 , -.Xr elf64_getshdr 3 , -.Xr elf_getdata 3 , -.Xr elf_rawdata 3 , -.Xr gelf 3 , -.Xr gelf_getshdr 3 diff --git a/contrib/elftoolchain/libelf/elf_strptr.c b/contrib/elftoolchain/libelf/elf_strptr.c deleted file mode 100644 index c6a52661..00000000 --- a/contrib/elftoolchain/libelf/elf_strptr.c +++ /dev/null @@ -1,132 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Convert an ELF section#,offset pair to a string pointer. - */ - -char * -elf_strptr(Elf *e, size_t scndx, size_t offset) -{ - Elf_Scn *s; - Elf_Data *d; - GElf_Shdr shdr; - uint64_t alignment, count; - - if (e == NULL || e->e_kind != ELF_K_ELF) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((s = elf_getscn(e, scndx)) == NULL || - gelf_getshdr(s, &shdr) == NULL) - return (NULL); - - if (shdr.sh_type != SHT_STRTAB || - offset >= shdr.sh_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - d = NULL; - if (e->e_flags & ELF_F_LAYOUT) { - - /* - * The application is taking responsibility for the - * ELF object's layout, so we can directly translate - * an offset to a `char *' address using the `d_off' - * members of Elf_Data descriptors. - */ - while ((d = elf_getdata(s, d)) != NULL) { - - if (d->d_buf == 0 || d->d_size == 0) - continue; - - if (d->d_type != ELF_T_BYTE) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - if (offset >= d->d_off && - offset < d->d_off + d->d_size) - return ((char *) d->d_buf + offset - d->d_off); - } - } else { - /* - * Otherwise, the `d_off' members are not useable and - * we need to compute offsets ourselves, taking into - * account 'holes' in coverage of the section introduced - * by alignment requirements. - */ - count = (uint64_t) 0; /* cumulative count of bytes seen */ - while ((d = elf_getdata(s, d)) != NULL && count <= offset) { - - if (d->d_buf == NULL || d->d_size == 0) - continue; - - if (d->d_type != ELF_T_BYTE) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - if ((alignment = d->d_align) > 1) { - if ((alignment & (alignment - 1)) != 0) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - count = roundup2(count, alignment); - } - - if (offset < count) { - /* offset starts in the 'hole' */ - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (offset < count + d->d_size) { - if (d->d_buf != NULL) - return ((char *) d->d_buf + - offset - count); - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - count += d->d_size; - } - } - - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); -} diff --git a/contrib/elftoolchain/libelf/elf_types.m4 b/contrib/elftoolchain/libelf/elf_types.m4 deleted file mode 100644 index e23cfd97..00000000 --- a/contrib/elftoolchain/libelf/elf_types.m4 +++ /dev/null @@ -1,309 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * ELF types, defined in the "enum Elf_Type" API. - * - * The members of the list form a 2-tuple: (name, C-type-suffix). - * + `name' is an Elf_Type symbol without the `ELF_T_' prefix. - * + `C-type-suffix' is the suffix for Elf32_ and Elf64_ type names. - */ - -define(`ELF_TYPE_LIST', - ``ADDR, Addr', - `BYTE, Byte', - `CAP, Cap', - `DYN, Dyn', - `EHDR, Ehdr', - `GNUHASH, -', - `HALF, Half', - `LWORD, Lword', - `MOVE, Move', - `MOVEP, MoveP', - `NOTE, Note', - `OFF, Off', - `PHDR, Phdr', - `REL, Rel', - `RELA, Rela', - `SHDR, Shdr', - `SWORD, Sword', - `SXWORD, Sxword', - `SYMINFO, Syminfo', - `SYM, Sym', - `VDEF, Verdef', - `VNEED, Verneed', - `WORD, Word', - `XWORD, Xword', - `NUM, _'') - -/* - * DEFINE_STRUCT(NAME,MEMBERLIST...) - * - * Map a type name to its members. - * - * Each member-list element comprises of pairs of (field name, type), - * in the sequence used in the file representation of `NAME'. - * - * Each member list element comprises a pair containing a field name - * and a basic type. Basic types include IDENT, HALF, WORD, LWORD, - * ADDR{32,64}, OFF{32,64}, SWORD, XWORD, SXWORD. - * - * The last element of a member list is the null element: `_,_'. - */ - -define(`DEFINE_STRUCT',`define(`$1_DEF',shift($@))dnl') - -DEFINE_STRUCT(`Elf32_Cap', - ``c_tag, WORD', - `c_un.c_val, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Cap', - ``c_tag, XWORD', - `c_un.c_val, XWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Dyn', - ``d_tag, SWORD', - `d_un.d_ptr, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Dyn', - ``d_tag, SXWORD', - `d_un.d_ptr, XWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Ehdr', - ``e_ident, IDENT', - `e_type, HALF', - `e_machine, HALF', - `e_version, WORD', - `e_entry, ADDR', - `e_phoff, OFF', - `e_shoff, OFF', - `e_flags, WORD', - `e_ehsize, HALF', - `e_phentsize, HALF', - `e_phnum, HALF', - `e_shentsize, HALF', - `e_shnum, HALF', - `e_shstrndx, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf64_Ehdr', - ``e_ident, IDENT', - `e_type, HALF', - `e_machine, HALF', - `e_version, WORD', - `e_entry, ADDR', - `e_phoff, OFF', - `e_shoff, OFF', - `e_flags, WORD', - `e_ehsize, HALF', - `e_phentsize, HALF', - `e_phnum, HALF', - `e_shentsize, HALF', - `e_shnum, HALF', - `e_shstrndx, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf32_Move', - ``m_value, LWORD', - `m_info, WORD', - `m_poffset, WORD', - `m_repeat, HALF', - `m_stride, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf64_Move', - ``m_value, LWORD', - `m_info, XWORD', - `m_poffset, XWORD', - `m_repeat, HALF', - `m_stride, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf32_Phdr', - ``p_type, WORD', - `p_offset, OFF', - `p_vaddr, ADDR', - `p_paddr, ADDR', - `p_filesz, WORD', - `p_memsz, WORD', - `p_flags, WORD', - `p_align, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Phdr', - ``p_type, WORD', - `p_flags, WORD', - `p_offset, OFF', - `p_vaddr, ADDR', - `p_paddr, ADDR', - `p_filesz, XWORD', - `p_memsz, XWORD', - `p_align, XWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Rel', - ``r_offset, ADDR', - `r_info, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Rel', - ``r_offset, ADDR', - `r_info, XWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Rela', - ``r_offset, ADDR', - `r_info, WORD', - `r_addend, SWORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Rela', - ``r_offset, ADDR', - `r_info, XWORD', - `r_addend, SXWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Shdr', - ``sh_name, WORD', - `sh_type, WORD', - `sh_flags, WORD', - `sh_addr, ADDR', - `sh_offset, OFF', - `sh_size, WORD', - `sh_link, WORD', - `sh_info, WORD', - `sh_addralign, WORD', - `sh_entsize, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Shdr', - ``sh_name, WORD', - `sh_type, WORD', - `sh_flags, XWORD', - `sh_addr, ADDR', - `sh_offset, OFF', - `sh_size, XWORD', - `sh_link, WORD', - `sh_info, WORD', - `sh_addralign, XWORD', - `sh_entsize, XWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Sym', - ``st_name, WORD', - `st_value, ADDR', - `st_size, WORD', - `st_info, BYTE', - `st_other, BYTE', - `st_shndx, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf64_Sym', - ``st_name, WORD', - `st_info, BYTE', - `st_other, BYTE', - `st_shndx, HALF', - `st_value, ADDR', - `st_size, XWORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Syminfo', - ``si_boundto, HALF', - `si_flags, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf64_Syminfo', - ``si_boundto, HALF', - `si_flags, HALF', - `_,_'') - -DEFINE_STRUCT(`Elf32_Verdaux', - ``vda_name, WORD', - `vda_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Verdaux', - ``vda_name, WORD', - `vda_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Verdef', - ``vd_version, HALF', - `vd_flags, HALF', - `vd_ndx, HALF', - `vd_cnt, HALF', - `vd_hash, WORD', - `vd_aux, WORD', - `vd_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Verdef', - ``vd_version, HALF', - `vd_flags, HALF', - `vd_ndx, HALF', - `vd_cnt, HALF', - `vd_hash, WORD', - `vd_aux, WORD', - `vd_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Verneed', - ``vn_version, HALF', - `vn_cnt, HALF', - `vn_file, WORD', - `vn_aux, WORD', - `vn_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Verneed', - ``vn_version, HALF', - `vn_cnt, HALF', - `vn_file, WORD', - `vn_aux, WORD', - `vn_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf32_Vernaux', - ``vna_hash, WORD', - `vna_flags, HALF', - `vna_other, HALF', - `vna_name, WORD', - `vna_next, WORD', - `_,_'') - -DEFINE_STRUCT(`Elf64_Vernaux', - ``vna_hash, WORD', - `vna_flags, HALF', - `vna_other, HALF', - `vna_name, WORD', - `vna_next, WORD', - `_,_'') diff --git a/contrib/elftoolchain/libelf/elf_update.3 b/contrib/elftoolchain/libelf/elf_update.3 deleted file mode 100644 index 608d8ab3..00000000 --- a/contrib/elftoolchain/libelf/elf_update.3 +++ /dev/null @@ -1,382 +0,0 @@ -.\" Copyright (c) 2006-2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt ELF_UPDATE 3 -.Os -.Sh NAME -.Nm elf_update -.Nd update an ELF descriptor -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft off_t -.Fn elf_update "Elf *elf" "Elf_Cmd cmd" -.Sh DESCRIPTION -Function -.Fn elf_update -causes the library to recalculate the structure of an ELF -object and optionally write out the image of the object -to file. -.Pp -Argument -.Ar elf -should reference a valid ELF descriptor. -.Pp -Argument -.Ar cmd -can be one of the following values: -.Bl -tag -width "Dv ELF_C_WRITE" -.It Dv ELF_C_NULL -The library will recalculate structural information flagging -modified structures with the -.Dv ELF_F_DIRTY -flag, but will not write data to the underlying file image. -.It Dv ELF_C_WRITE -The library will recalculate structural information and will -also write the new image to the underlying file. -The ELF descriptor referenced by argument -.Ar elf -should permit the underlying ELF object to be written or updated -(see -.Xr elf_begin 3 ) . -.El -.Pp -All pointers to -.Vt Elf_Scn -and -.Vt Elf_Data -descriptors associated with descriptor -.Ar elf -should be considered invalid after a call to -.Fn elf_update . -.Ss Specifying Object Layout -The -.Lb libelf -supports two layout modes. -.Bl -tag -width indent -.It "Library Layout" -If the -.Dv ELF_F_LAYOUT -flag is not set on the ELF descriptor, the ELF library will lay out -the ELF object according to the following scheme: -.Bl -tag -compact -width "Section Data" -.It Em EHDR -The ELF executable header will be placed at the start of the object. -.It Em PHDR -If the ELF descriptor contains a program header table, it will be -placed after the Executable Header. -.It Em Section Data -ELF section data, if any, will be placed next, keeping each section's -alignment requirements in mind. -.It Em SHDR -The ELF section header table, if any, will be placed last. -.El -.It "Application Controlled Layout" -The application can take full control of the layout of the ELF object -by setting the -.Dv ELF_F_LAYOUT -flag on the ELF descriptor (see -.Xr elf_flagelf 3 ) . -In this case the library will lay out the ELF object using -application-supplied information as below: -.Pp -.Bl -tag -compact -width "Section Data" -.It Em EHDR -The ELF executable header will be placed at the start of the object. -.It Em PHDR -The ELF program header table, if any, it will be placed at the offset -specified in the -.Va e_phoff -field of the ELF executable header. -.It Em Section Data -The data for each ELF section will be placed at the offset specified -by the -.Va sh_offset -field of the section's header. -The size of the section will be taken from the -.Va sh_size -field of the section header. -.It Em SHDR -The ELF section header table, if any, will be placed at the offset -specified by the -.Va e_shoff -field of the executable header. -.El -.El -.Pp -Gaps in the coverage of the file's contents will be set to the fill value -specified by -.Xr elf_fill 3 . -.Ss Application Supplied Information -The application needs to set the following fields in the data -structures associated with the ELF descriptor prior to calling -.Fn elf_update . -.Bl -tag -width indent -.It "Executable Header" -The fields of the ELF executable header that need to be set by the -application are: -.Pp -.Bl -tag -width "e_ident[EI_OSABI]" -compact -.It Va e_entry -To be set to the desired entry address for executables. -.It Va e_flags -To be set to the desired processor specific flags. -.It Va "e_ident[EI_DATA]" -Must be set to one of -.Dv ELFDATA2LSB -or -.Dv ELFDATA2MSB . -.It Va "e_ident[EI_OSABI]" -To be set to the OS ABI desired. -For example, for -.Fx -executables, this field should be set to -.Dv ELFOSABI_FREEBSD . -.It Va e_machine -To be set to the desired machine architecture, one of the -.Dv EM_* -values in the header file -.In elfdefinitions.h . -.It Va e_phoff -If the application is managing the object's layout, it must -set this field to the file offset of the ELF program header table. -.It Va e_shoff -If the application is managing the object's layout, it must -set this field to the file offset of the ELF section header table. -.It Va e_shstrndx -To be set to the index of the string table containing -section names. -.It Va e_type -To be set to the type of the ELF object, one of the -.Dv ET_* -values in the header file -.In elfdefinitions.h . -.It Va e_version -To be set to the desired version of the ELF object. -.El -.It "Program Header" -All fields of the entries in the program header table need to be -set by the application. -.It "Section Header" -The fields of ELF section headers that need to be set by the -application are: -.Pp -.Bl -tag -width "sh_addralign" -compact -.It Va sh_addr -To be set to the memory address where the section should reside. -.It Va sh_addralign -If the application is managing the file layout, it must set this -field to the desired alignment for the section's contents. -This value must be a power of two and must be at least as large as the -largest alignment needed by any -.Vt Elf_Data -descriptor associated with the section. -.It Va sh_entsize -To be set to the size of each entry, for sections containing fixed size -elements, or set to zero for sections without fixed size elements. -If the application is not managing file layout, it may leave this -field as zero for those sections whose types are known to the library. -.It Va sh_flags -To be set to the desired section flags. -.It Va sh_info -To be set as described in -.Xr elf 5 . -.It Va sh_link -To be set as described in -.Xr elf 5 . -.It Va sh_name -To be set to the index of the section's name in the string table -containing section names. -.It Va sh_offset -If the application is managing the file layout, it must set this -field to the file offset of the section's contents. -.It Va sh_size -If the application is managing the file layout, it must set this -field to the file size of the section's contents. -.It Va sh_type -To be set to the type of the section. -.El -.It "Section Data" -The -.Vt Elf_Data -descriptors associated with each section specify its contents -(see -.Xr elf_getdata 3 ) . -While all the fields in these descriptors are under application -control, the following fields influence object layout: -.Bl -tag -width "Va d_align" -compact -.It Va d_align -To be set to the desired alignment, within the containing section, of -the descriptor's data. -.It Va d_off -If the application is managing object layout, it must set this field -to the file offset, within the section, at which the descriptor's data -should be placed. -.It Va d_size -To be set to the size in bytes of the memory representation of the -descriptor's data. -.El -.El -.Sh RETURN VALUES -Function -.Fn elf_update -returns the total size of the file image if successful, or -1 if an -error occurred. -.Sh ERRORS -This function may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was null. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar cmd -was not recognized. -.It Bq Er ELF_E_ARGUMENT -The argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_CLASS -The -.Va e_ident[EI_CLASS] -field of the executable header of argument -.Ar elf -did not match the class of the file. -.It Bq Er ELF_E_DATA -An -.Vt Elf_Data -descriptor contained in argument -.Ar elf -specified an unsupported type. -.It Bq Er ELF_E_DATA -An -.Vt Elf_Data -descriptor specified an alignment that was zero or was not a power of -two. -.It Bq Er ELF_E_HEADER -The ELF header in argument -.Ar elf -requested a different byte order from the byte order already -associated with the file. -.It Bq Er ELF_E_IO -An I/O error was encountered. -.It Bq Er ELF_E_LAYOUT -An -.Vt Elf_Data -descriptor contained in argument -.Ar elf -specified an alignment incompatible with its containing section. -.It Bq Er ELF_E_LAYOUT -Argument -.Ar elf -contained section descriptors that overlapped in extent. -.It Bq Er ELF_E_LAYOUT -Argument -.Ar elf -contained section descriptors that were incorrectly aligned or were -too small for their data. -.It Bq Er ELF_E_LAYOUT -The flag -.Dv ELF_F_LAYOUT -was set on the Elf descriptor and the executable header overlapped -with the program header table. -.It Bq Er ELF_E_LAYOUT -The flag -.Dv ELF_F_LAYOUT -was set on the Elf descriptor and the program header table was placed -at a misaligned file offset. -.It Bq Er ELF_E_LAYOUT -The flag -.Dv ELF_F_LAYOUT -was set on the Elf descriptor and the section header table overlapped -an extent mapped by a section descriptor. -.It Bq Er ELF_E_LAYOUT -The -.Dv ELF_F_LAYOUT -flag was set on the Elf descriptor, and the -.Va d_offset -field in an -.Vt Elf_Data -descriptor contained a value that was not a multiple of the -descriptor's specified alignment. -.It Bq Er ELF_E_MODE -An -.Dv ELF_C_WRITE -operation was requested with an ELF descriptor that was not opened for -writing or updating. -.It Bq Er ELF_E_SECTION -Argument -.Ar elf -contained a section with an unrecognized type. -.It Bq Er ELF_E_SECTION -The section header at index -.Dv SHN_UNDEF -had an illegal section type. -.It Bq Er ELF_E_SEQUENCE -An -.Dv ELF_C_WRITE -operation was requested after a prior call to -.Fn elf_cntl elf ELF_C_FDDONE -disassociated the ELF descriptor -.Ar elf -from its underlying file. -.It Bq Er ELF_E_UNIMPL -Argument -.Ar elf -contained a section with an unsupported ELF type. -.It Bq Er ELF_E_VERSION -Argument -.Ar elf -had an unsupported version or contained an -.Vt Elf_Data -descriptor with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf32_getphdr 3 , -.Xr elf32_newehdr 3 , -.Xr elf32_newphdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf64_getphdr 3 , -.Xr elf64_newehdr 3 , -.Xr elf64_newphdr 3 , -.Xr elf_begin 3 , -.Xr elf_cntl 3 , -.Xr elf_fill 3 , -.Xr elf_flagehdr 3 , -.Xr elf_flagelf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr elf_newdata 3 , -.Xr elf_newscn 3 , -.Xr elf_rawdata 3 , -.Xr gelf 3 , -.Xr gelf_newehdr 3 , -.Xr gelf_newphdr 3 , -.Xr elf 5 diff --git a/contrib/elftoolchain/libelf/elf_update.c b/contrib/elftoolchain/libelf/elf_update.c deleted file mode 100644 index 6417afdc..00000000 --- a/contrib/elftoolchain/libelf/elf_update.c +++ /dev/null @@ -1,1244 +0,0 @@ -/*- - * Copyright (c) 2006-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "_libelf.h" - -#if ELFTC_HAVE_MMAP -#include -#endif - -ELFTC_VCSID("$Id$"); - -/* - * Layout strategy: - * - * - Case 1: ELF_F_LAYOUT is asserted - * In this case the application has full control over where the - * section header table, program header table, and section data - * will reside. The library only perform error checks. - * - * - Case 2: ELF_F_LAYOUT is not asserted - * - * The library will do the object layout using the following - * ordering: - * - The executable header is placed first, are required by the - * ELF specification. - * - The program header table is placed immediately following the - * executable header. - * - Section data, if any, is placed after the program header - * table, aligned appropriately. - * - The section header table, if needed, is placed last. - * - * There are two sub-cases to be taken care of: - * - * - Case 2a: e->e_cmd == ELF_C_READ or ELF_C_RDWR - * - * In this sub-case, the underlying ELF object may already have - * content in it, which the application may have modified. The - * library will retrieve content from the existing object as - * needed. - * - * - Case 2b: e->e_cmd == ELF_C_WRITE - * - * The ELF object is being created afresh in this sub-case; - * there is no pre-existing content in the underlying ELF - * object. - */ - -/* - * The types of extents in an ELF object. - */ -enum elf_extent { - ELF_EXTENT_EHDR, - ELF_EXTENT_PHDR, - ELF_EXTENT_SECTION, - ELF_EXTENT_SHDR -}; - -/* - * A extent descriptor, used when laying out an ELF object. - */ -struct _Elf_Extent { - SLIST_ENTRY(_Elf_Extent) ex_next; - uint64_t ex_start; /* Start of the region. */ - uint64_t ex_size; /* The size of the region. */ - enum elf_extent ex_type; /* Type of region. */ - void *ex_desc; /* Associated descriptor. */ -}; - -SLIST_HEAD(_Elf_Extent_List, _Elf_Extent); - -/* - * Compute the extents of a section, by looking at the data - * descriptors associated with it. The function returns 1 - * if successful, or zero if an error was detected. - */ -static int -_libelf_compute_section_extents(Elf *e, Elf_Scn *s, off_t rc) -{ - Elf_Data *d; - size_t fsz, msz; - int ec, elftype; - uint32_t sh_type; - uint64_t d_align; - Elf32_Shdr *shdr32; - Elf64_Shdr *shdr64; - struct _Libelf_Data *ld; - uint64_t scn_size, scn_alignment; - uint64_t sh_align, sh_entsize, sh_offset, sh_size; - - ec = e->e_class; - - shdr32 = &s->s_shdr.s_shdr32; - shdr64 = &s->s_shdr.s_shdr64; - if (ec == ELFCLASS32) { - sh_type = shdr32->sh_type; - sh_align = (uint64_t) shdr32->sh_addralign; - sh_entsize = (uint64_t) shdr32->sh_entsize; - sh_offset = (uint64_t) shdr32->sh_offset; - sh_size = (uint64_t) shdr32->sh_size; - } else { - sh_type = shdr64->sh_type; - sh_align = shdr64->sh_addralign; - sh_entsize = shdr64->sh_entsize; - sh_offset = shdr64->sh_offset; - sh_size = shdr64->sh_size; - } - - assert(sh_type != SHT_NULL && sh_type != SHT_NOBITS); - - elftype = _libelf_xlate_shtype(sh_type); - if (elftype < ELF_T_FIRST || elftype > ELF_T_LAST) { - LIBELF_SET_ERROR(SECTION, 0); - return (0); - } - - if (sh_align == 0) - sh_align = _libelf_falign(elftype, ec); - - /* - * Compute the section's size and alignment using the data - * descriptors associated with the section. - */ - if (STAILQ_EMPTY(&s->s_data)) { - /* - * The section's content (if any) has not been read in - * yet. If section is not dirty marked dirty, we can - * reuse the values in the 'sh_size' and 'sh_offset' - * fields of the section header. - */ - if ((s->s_flags & ELF_F_DIRTY) == 0) { - /* - * If the library is doing the layout, then we - * compute the new start offset for the - * section based on the current offset and the - * section's alignment needs. - * - * If the application is doing the layout, we - * can use the value in the 'sh_offset' field - * in the section header directly. - */ - if (e->e_flags & ELF_F_LAYOUT) - goto updatedescriptor; - else - goto computeoffset; - } - - /* - * Otherwise, we need to bring in the section's data - * from the underlying ELF object. - */ - if (e->e_cmd != ELF_C_WRITE && elf_getdata(s, NULL) == NULL) - return (0); - } - - /* - * Loop through the section's data descriptors. - */ - scn_size = 0L; - scn_alignment = 0; - STAILQ_FOREACH(ld, &s->s_data, d_next) { - - d = &ld->d_data; - - /* - * The data buffer's type is known. - */ - if (d->d_type >= ELF_T_NUM) { - LIBELF_SET_ERROR(DATA, 0); - return (0); - } - - /* - * The data buffer's version is supported. - */ - if (d->d_version != e->e_version) { - LIBELF_SET_ERROR(VERSION, 0); - return (0); - } - - /* - * The buffer's alignment is non-zero and a power of - * two. - */ - if ((d_align = d->d_align) == 0 || - (d_align & (d_align - 1))) { - LIBELF_SET_ERROR(DATA, 0); - return (0); - } - - /* - * The data buffer's ELF type, ELF class and ELF version - * should be supported. - */ - if ((msz = _libelf_msize(d->d_type, ec, e->e_version)) == 0) - return (0); - - /* - * The buffer's size should be a multiple of the - * memory size of the underlying type. - */ - if (d->d_size % msz) { - LIBELF_SET_ERROR(DATA, 0); - return (0); - } - - /* - * If the application is controlling layout, then the - * d_offset field should be compatible with the - * buffer's specified alignment. - */ - if ((e->e_flags & ELF_F_LAYOUT) && - (d->d_off & (d_align - 1))) { - LIBELF_SET_ERROR(LAYOUT, 0); - return (0); - } - - /* - * Compute the section's size. - */ - if (e->e_flags & ELF_F_LAYOUT) { - if ((uint64_t) d->d_off + d->d_size > scn_size) - scn_size = d->d_off + d->d_size; - } else { - scn_size = roundup2(scn_size, d->d_align); - d->d_off = scn_size; - fsz = _libelf_fsize(d->d_type, ec, d->d_version, - (size_t) d->d_size / msz); - scn_size += fsz; - } - - /* - * The section's alignment is the maximum alignment - * needed for its data buffers. - */ - if (d_align > scn_alignment) - scn_alignment = d_align; - } - - - /* - * If the application is requesting full control over the - * layout of the section, check the section's specified size, - * offsets and alignment for sanity. - */ - if (e->e_flags & ELF_F_LAYOUT) { - if (scn_alignment > sh_align || - sh_offset % sh_align || - sh_size < scn_size || - sh_offset % _libelf_falign(elftype, ec)) { - LIBELF_SET_ERROR(LAYOUT, 0); - return (0); - } - goto updatedescriptor; - } - - /* - * Otherwise, compute the values in the section header. - * - * The section alignment is the maximum alignment for any of - * its contained data descriptors. - */ - if (scn_alignment > sh_align) - sh_align = scn_alignment; - - /* - * If the section entry size is zero, try and fill in an - * appropriate entry size. Per the elf(5) manual page - * sections without fixed-size entries should have their - * 'sh_entsize' field set to zero. - */ - if (sh_entsize == 0 && - (sh_entsize = _libelf_fsize(elftype, ec, e->e_version, - (size_t) 1)) == 1) - sh_entsize = 0; - - sh_size = scn_size; - -computeoffset: - /* - * Compute the new offset for the section based on - * the section's alignment needs. - */ - sh_offset = roundup((uint64_t) rc, sh_align); - - /* - * Update the section header. - */ - if (ec == ELFCLASS32) { - shdr32->sh_addralign = (uint32_t) sh_align; - shdr32->sh_entsize = (uint32_t) sh_entsize; - shdr32->sh_offset = (uint32_t) sh_offset; - shdr32->sh_size = (uint32_t) sh_size; - } else { - shdr64->sh_addralign = sh_align; - shdr64->sh_entsize = sh_entsize; - shdr64->sh_offset = sh_offset; - shdr64->sh_size = sh_size; - } - -updatedescriptor: - /* - * Update the section descriptor. - */ - s->s_size = sh_size; - s->s_offset = sh_offset; - - return (1); -} - -/* - * Free a list of extent descriptors. - */ - -static void -_libelf_release_extents(struct _Elf_Extent_List *extents) -{ - struct _Elf_Extent *ex; - - while ((ex = SLIST_FIRST(extents)) != NULL) { - SLIST_REMOVE_HEAD(extents, ex_next); - free(ex); - } -} - -/* - * Check if an extent 's' defined by [start..start+size) is free. - * This routine assumes that the given extent list is sorted in order - * of ascending extent offsets. - */ - -static int -_libelf_extent_is_unused(struct _Elf_Extent_List *extents, - const uint64_t start, const uint64_t size, struct _Elf_Extent **prevt) -{ - uint64_t tmax, tmin; - struct _Elf_Extent *t, *pt; - const uint64_t smax = start + size; - - /* First, look for overlaps with existing extents. */ - pt = NULL; - SLIST_FOREACH(t, extents, ex_next) { - tmin = t->ex_start; - tmax = tmin + t->ex_size; - - if (tmax <= start) { - /* - * 't' lies entirely before 's': ...| t |...| s |... - */ - pt = t; - continue; - } else if (smax <= tmin) { - /* - * 's' lies entirely before 't', and after 'pt': - * ...| pt |...| s |...| t |... - */ - assert(pt == NULL || - pt->ex_start + pt->ex_size <= start); - break; - } else - /* 's' and 't' overlap. */ - return (0); - } - - if (prevt) - *prevt = pt; - return (1); -} - -/* - * Insert an extent into the list of extents. - */ - -static int -_libelf_insert_extent(struct _Elf_Extent_List *extents, int type, - uint64_t start, uint64_t size, void *desc) -{ - struct _Elf_Extent *ex, *prevt; - - assert(type >= ELF_EXTENT_EHDR && type <= ELF_EXTENT_SHDR); - - prevt = NULL; - - /* - * If the requested range overlaps with an existing extent, - * signal an error. - */ - if (!_libelf_extent_is_unused(extents, start, size, &prevt)) { - LIBELF_SET_ERROR(LAYOUT, 0); - return (0); - } - - /* Allocate and fill in a new extent descriptor. */ - if ((ex = malloc(sizeof(struct _Elf_Extent))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, errno); - return (0); - } - ex->ex_start = start; - ex->ex_size = size; - ex->ex_desc = desc; - ex->ex_type = type; - - /* Insert the region descriptor into the list. */ - if (prevt) - SLIST_INSERT_AFTER(prevt, ex, ex_next); - else - SLIST_INSERT_HEAD(extents, ex, ex_next); - return (1); -} - -/* - * Recompute section layout. - */ - -static off_t -_libelf_resync_sections(Elf *e, off_t rc, struct _Elf_Extent_List *extents) -{ - int ec; - Elf_Scn *s; - size_t sh_type; - - ec = e->e_class; - - /* - * Make a pass through sections, computing the extent of each - * section. - */ - STAILQ_FOREACH(s, &e->e_u.e_elf.e_scn, s_next) { - if (ec == ELFCLASS32) - sh_type = s->s_shdr.s_shdr32.sh_type; - else - sh_type = s->s_shdr.s_shdr64.sh_type; - - if (sh_type == SHT_NOBITS || sh_type == SHT_NULL) - continue; - - if (_libelf_compute_section_extents(e, s, rc) == 0) - return ((off_t) -1); - - if (s->s_size == 0) - continue; - - if (!_libelf_insert_extent(extents, ELF_EXTENT_SECTION, - s->s_offset, s->s_size, s)) - return ((off_t) -1); - - if ((size_t) rc < s->s_offset + s->s_size) - rc = (off_t) (s->s_offset + s->s_size); - } - - return (rc); -} - -/* - * Recompute the layout of the ELF object and update the internal data - * structures associated with the ELF descriptor. - * - * Returns the size in bytes the ELF object would occupy in its file - * representation. - * - * After a successful call to this function, the following structures - * are updated: - * - * - The ELF header is updated. - * - All extents in the ELF object are sorted in order of ascending - * addresses. Sections have their section header table entries - * updated. An error is signalled if an overlap was detected among - * extents. - * - Data descriptors associated with sections are checked for valid - * types, offsets and alignment. - * - * After a resync_elf() successfully returns, the ELF descriptor is - * ready for being handed over to _libelf_write_elf(). - */ - -static off_t -_libelf_resync_elf(Elf *e, struct _Elf_Extent_List *extents) -{ - int ec, eh_class; - unsigned int eh_byteorder, eh_version; - size_t align, fsz; - size_t phnum, shnum; - off_t rc, phoff, shoff; - void *ehdr, *phdr; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - - rc = 0; - - ec = e->e_class; - - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - /* - * Prepare the EHDR. - */ - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) - return ((off_t) -1); - - eh32 = ehdr; - eh64 = ehdr; - - if (ec == ELFCLASS32) { - eh_byteorder = eh32->e_ident[EI_DATA]; - eh_class = eh32->e_ident[EI_CLASS]; - phoff = (off_t) eh32->e_phoff; - shoff = (off_t) eh32->e_shoff; - eh_version = eh32->e_version; - } else { - eh_byteorder = eh64->e_ident[EI_DATA]; - eh_class = eh64->e_ident[EI_CLASS]; - phoff = (off_t) eh64->e_phoff; - shoff = (off_t) eh64->e_shoff; - eh_version = eh64->e_version; - } - - if (phoff < 0 || shoff < 0) { - LIBELF_SET_ERROR(HEADER, 0); - return ((off_t) -1); - } - - if (eh_version == EV_NONE) - eh_version = EV_CURRENT; - - if (eh_version != e->e_version) { /* always EV_CURRENT */ - LIBELF_SET_ERROR(VERSION, 0); - return ((off_t) -1); - } - - if (eh_class != e->e_class) { - LIBELF_SET_ERROR(CLASS, 0); - return ((off_t) -1); - } - - if (e->e_cmd != ELF_C_WRITE && eh_byteorder != e->e_byteorder) { - LIBELF_SET_ERROR(HEADER, 0); - return ((off_t) -1); - } - - shnum = e->e_u.e_elf.e_nscn; - phnum = e->e_u.e_elf.e_nphdr; - - e->e_byteorder = eh_byteorder; - -#define INITIALIZE_EHDR(E,EC,V) do { \ - unsigned int _version = (unsigned int) (V); \ - (E)->e_ident[EI_MAG0] = ELFMAG0; \ - (E)->e_ident[EI_MAG1] = ELFMAG1; \ - (E)->e_ident[EI_MAG2] = ELFMAG2; \ - (E)->e_ident[EI_MAG3] = ELFMAG3; \ - (E)->e_ident[EI_CLASS] = (unsigned char) (EC); \ - (E)->e_ident[EI_VERSION] = (_version & 0xFFU); \ - (E)->e_ehsize = (uint16_t) _libelf_fsize(ELF_T_EHDR, \ - (EC), _version, (size_t) 1); \ - (E)->e_phentsize = (uint16_t) ((phnum == 0) ? 0 : \ - _libelf_fsize(ELF_T_PHDR, (EC), _version, \ - (size_t) 1)); \ - (E)->e_shentsize = (uint16_t) _libelf_fsize(ELF_T_SHDR, \ - (EC), _version, (size_t) 1); \ - } while (0) - - if (ec == ELFCLASS32) - INITIALIZE_EHDR(eh32, ec, eh_version); - else - INITIALIZE_EHDR(eh64, ec, eh_version); - - (void) elf_flagehdr(e, ELF_C_SET, ELF_F_DIRTY); - - rc += (off_t) _libelf_fsize(ELF_T_EHDR, ec, eh_version, (size_t) 1); - - if (!_libelf_insert_extent(extents, ELF_EXTENT_EHDR, 0, (uint64_t) rc, - ehdr)) - return ((off_t) -1); - - /* - * Compute the layout the program header table, if one is - * present. The program header table needs to be aligned to a - * `natural' boundary. - */ - if (phnum) { - fsz = _libelf_fsize(ELF_T_PHDR, ec, eh_version, phnum); - align = _libelf_falign(ELF_T_PHDR, ec); - - if (e->e_flags & ELF_F_LAYOUT) { - /* - * Check offsets for sanity. - */ - if (rc > phoff) { - LIBELF_SET_ERROR(LAYOUT, 0); - return ((off_t) -1); - } - - if (phoff % (off_t) align) { - LIBELF_SET_ERROR(LAYOUT, 0); - return ((off_t) -1); - } - - } else - phoff = roundup(rc, (off_t) align); - - rc = phoff + (off_t) fsz; - - phdr = _libelf_getphdr(e, ec); - - if (!_libelf_insert_extent(extents, ELF_EXTENT_PHDR, - (uint64_t) phoff, fsz, phdr)) - return ((off_t) -1); - } else - phoff = 0; - - /* - * Compute the layout of the sections associated with the - * file. - */ - - if (e->e_cmd != ELF_C_WRITE && - (e->e_flags & LIBELF_F_SHDRS_LOADED) == 0 && - _libelf_load_section_headers(e, ehdr) == 0) - return ((off_t) -1); - - if ((rc = _libelf_resync_sections(e, rc, extents)) < 0) - return ((off_t) -1); - - /* - * Compute the space taken up by the section header table, if - * one is needed. - * - * If ELF_F_LAYOUT has been asserted, the application may have - * placed the section header table in between existing - * sections, so the net size of the file need not increase due - * to the presence of the section header table. - * - * If the library is responsible for laying out the object, - * the section header table is placed after section data. - */ - if (shnum) { - fsz = _libelf_fsize(ELF_T_SHDR, ec, eh_version, shnum); - align = _libelf_falign(ELF_T_SHDR, ec); - - if (e->e_flags & ELF_F_LAYOUT) { - if (shoff % (off_t) align) { - LIBELF_SET_ERROR(LAYOUT, 0); - return ((off_t) -1); - } - } else - shoff = roundup(rc, (off_t) align); - - if (shoff + (off_t) fsz > rc) - rc = shoff + (off_t) fsz; - - if (!_libelf_insert_extent(extents, ELF_EXTENT_SHDR, - (uint64_t) shoff, fsz, NULL)) - return ((off_t) -1); - } else - shoff = 0; - - /* - * Set the fields of the Executable Header that could potentially use - * extended numbering. - */ - _libelf_setphnum(e, ehdr, ec, phnum); - _libelf_setshnum(e, ehdr, ec, shnum); - - /* - * Update the `e_phoff' and `e_shoff' fields if the library is - * doing the layout. - */ - if ((e->e_flags & ELF_F_LAYOUT) == 0) { - if (ec == ELFCLASS32) { - eh32->e_phoff = (uint32_t) phoff; - eh32->e_shoff = (uint32_t) shoff; - } else { - eh64->e_phoff = (uint64_t) phoff; - eh64->e_shoff = (uint64_t) shoff; - } - } - - return (rc); -} - -/* - * Write out the contents of an ELF section. - */ - -static off_t -_libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) -{ - off_t rc; - int ec, em; - Elf_Scn *s; - int elftype; - Elf_Data *d, dst; - uint32_t sh_type; - struct _Libelf_Data *ld; - uint64_t sh_off, sh_size; - size_t fsz, msz, nobjects; - - assert(ex->ex_type == ELF_EXTENT_SECTION); - - s = ex->ex_desc; - rc = (off_t) ex->ex_start; - - if ((ec = e->e_class) == ELFCLASS32) { - sh_type = s->s_shdr.s_shdr32.sh_type; - sh_size = (uint64_t) s->s_shdr.s_shdr32.sh_size; - } else { - sh_type = s->s_shdr.s_shdr64.sh_type; - sh_size = s->s_shdr.s_shdr64.sh_size; - } - - /* - * Ignore sections that do not allocate space in the file. - */ - if (sh_type == SHT_NOBITS || sh_type == SHT_NULL || sh_size == 0) - return (rc); - - elftype = _libelf_xlate_shtype(sh_type); - assert(elftype >= ELF_T_FIRST && elftype <= ELF_T_LAST); - - sh_off = s->s_offset; - assert(sh_off % _libelf_falign(elftype, ec) == 0); - - em = _libelf_elfmachine(e); - assert(em >= EM_NONE && em < EM__LAST__); - - /* - * If the section has a `rawdata' descriptor, and the section - * contents have not been modified, use its contents directly. - * The `s_rawoff' member contains the offset into the original - * file, while `s_offset' contains its new location in the - * destination. - */ - - if (STAILQ_EMPTY(&s->s_data)) { - - if ((d = elf_rawdata(s, NULL)) == NULL) - return ((off_t) -1); - - STAILQ_FOREACH(ld, &s->s_rawdata, d_next) { - - d = &ld->d_data; - - if ((uint64_t) rc < sh_off + d->d_off) - (void) memset(nf + rc, - LIBELF_PRIVATE(fillchar), - (size_t) (sh_off + d->d_off - - (uint64_t) rc)); - rc = (off_t) (sh_off + d->d_off); - - assert(d->d_buf != NULL); - assert(d->d_type == ELF_T_BYTE); - assert(d->d_version == e->e_version); - - (void) memcpy(nf + rc, - e->e_rawfile + s->s_rawoff + d->d_off, - (size_t) d->d_size); - - rc += (off_t) d->d_size; - } - - return (rc); - } - - /* - * Iterate over the set of data descriptors for this section. - * The prior call to _libelf_resync_elf() would have setup the - * descriptors for this step. - */ - - dst.d_version = e->e_version; - - STAILQ_FOREACH(ld, &s->s_data, d_next) { - - d = &ld->d_data; - - if ((msz = _libelf_msize(d->d_type, ec, e->e_version)) == 0) - return ((off_t) -1); - - if ((uint64_t) rc < sh_off + d->d_off) - (void) memset(nf + rc, - LIBELF_PRIVATE(fillchar), - (size_t) (sh_off + d->d_off - (uint64_t) rc)); - - rc = (off_t) (sh_off + d->d_off); - - assert(d->d_buf != NULL); - assert(d->d_version == e->e_version); - assert(d->d_size % msz == 0); - assert(msz != 0); - - nobjects = (size_t) (d->d_size / msz); - - fsz = _libelf_fsize(d->d_type, ec, e->e_version, nobjects); - - dst.d_buf = nf + rc; - dst.d_size = fsz; - - if (_libelf_xlate(&dst, d, e->e_byteorder, ec, em, ELF_TOFILE) - == NULL) - return ((off_t) -1); - - rc += (off_t) fsz; - } - - return (rc); -} - -/* - * Write out an ELF Executable Header. - */ - -static off_t -_libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) -{ - int ec, em; - void *ehdr; - size_t fsz, msz; - Elf_Data dst, src; - - assert(ex->ex_type == ELF_EXTENT_EHDR); - assert(ex->ex_start == 0); /* Ehdr always comes first. */ - - ec = e->e_class; - - ehdr = _libelf_ehdr(e, ec, 0); - assert(ehdr != NULL); - - fsz = _libelf_fsize(ELF_T_EHDR, ec, e->e_version, (size_t) 1); - if ((msz = _libelf_msize(ELF_T_EHDR, ec, e->e_version)) == 0) - return ((off_t) -1); - - em = _libelf_elfmachine(e); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - src.d_buf = ehdr; - src.d_size = msz; - src.d_type = ELF_T_EHDR; - src.d_version = dst.d_version = e->e_version; - - dst.d_buf = nf; - dst.d_size = fsz; - - if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, ELF_TOFILE) == - NULL) - return ((off_t) -1); - - return ((off_t) fsz); -} - -/* - * Write out an ELF program header table. - */ - -static off_t -_libelf_write_phdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) -{ - int ec, em; - void *ehdr; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - Elf_Data dst, src; - size_t fsz, msz, phnum; - uint64_t phoff; - - assert(ex->ex_type == ELF_EXTENT_PHDR); - - ec = e->e_class; - - ehdr = _libelf_ehdr(e, ec, 0); - assert(ehdr != NULL); - - phnum = e->e_u.e_elf.e_nphdr; - assert(phnum > 0); - - if (ec == ELFCLASS32) { - eh32 = (Elf32_Ehdr *) ehdr; - phoff = (uint64_t) eh32->e_phoff; - } else { - eh64 = (Elf64_Ehdr *) ehdr; - phoff = eh64->e_phoff; - } - - em = _libelf_elfmachine(e); - - assert(phoff > 0); - assert(ex->ex_start == phoff); - assert(phoff % _libelf_falign(ELF_T_PHDR, ec) == 0); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - if ((msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version)) == 0) - return ((off_t) -1); - fsz = _libelf_fsize(ELF_T_PHDR, ec, e->e_version, phnum); - assert(fsz > 0); - - src.d_buf = _libelf_getphdr(e, ec); - src.d_version = dst.d_version = e->e_version; - src.d_type = ELF_T_PHDR; - src.d_size = phnum * msz; - - dst.d_size = fsz; - dst.d_buf = nf + ex->ex_start; - - if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, ELF_TOFILE) == - NULL) - return ((off_t) -1); - - return ((off_t) (phoff + fsz)); -} - -/* - * Write out an ELF section header table. - */ - -static off_t -_libelf_write_shdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) -{ - int ec, em; - void *ehdr; - Elf_Scn *scn; - uint64_t shoff; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - size_t fsz, msz, nscn; - Elf_Data dst, src; - - assert(ex->ex_type == ELF_EXTENT_SHDR); - - ec = e->e_class; - - ehdr = _libelf_ehdr(e, ec, 0); - assert(ehdr != NULL); - - nscn = e->e_u.e_elf.e_nscn; - - if (ec == ELFCLASS32) { - eh32 = (Elf32_Ehdr *) ehdr; - shoff = (uint64_t) eh32->e_shoff; - } else { - eh64 = (Elf64_Ehdr *) ehdr; - shoff = eh64->e_shoff; - } - - em = _libelf_elfmachine(e); - - assert(nscn > 0); - assert(shoff % _libelf_falign(ELF_T_SHDR, ec) == 0); - assert(ex->ex_start == shoff); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - if ((msz = _libelf_msize(ELF_T_SHDR, ec, e->e_version)) == 0) - return ((off_t) -1); - - src.d_type = ELF_T_SHDR; - src.d_size = msz; - src.d_version = dst.d_version = e->e_version; - - fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, (size_t) 1); - - STAILQ_FOREACH(scn, &e->e_u.e_elf.e_scn, s_next) { - if (ec == ELFCLASS32) - src.d_buf = &scn->s_shdr.s_shdr32; - else - src.d_buf = &scn->s_shdr.s_shdr64; - - dst.d_size = fsz; - dst.d_buf = nf + ex->ex_start + scn->s_ndx * fsz; - - if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, - ELF_TOFILE) == NULL) - return ((off_t) -1); - } - - return ((off_t) (ex->ex_start + nscn * fsz)); -} - -/* - * Write out the file image. - * - * The original file could have been mapped in with an ELF_C_RDWR - * command and the application could have added new content or - * re-arranged its sections before calling elf_update(). Consequently - * its not safe to work `in place' on the original file. So we - * malloc() the required space for the updated ELF object and build - * the object there and write it out to the underlying file at the - * end. Note that the application may have opened the underlying file - * in ELF_C_RDWR and only retrieved/modified a few sections. We take - * care to avoid translating file sections unnecessarily. - * - * Gaps in the coverage of the file by the file's sections will be - * filled with the fill character set by elf_fill(3). - */ - -static off_t -_libelf_write_elf(Elf *e, off_t newsize, struct _Elf_Extent_List *extents) -{ - off_t nrc, rc; - Elf_Scn *scn, *tscn; - struct _Elf_Extent *ex; - unsigned char *newfile; - - assert(e->e_kind == ELF_K_ELF); - assert(e->e_cmd == ELF_C_RDWR || e->e_cmd == ELF_C_WRITE); - assert(e->e_fd >= 0); - - if ((newfile = malloc((size_t) newsize)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, errno); - return ((off_t) -1); - } - - nrc = rc = 0; - SLIST_FOREACH(ex, extents, ex_next) { - - /* Fill inter-extent gaps. */ - if (ex->ex_start > (size_t) rc) - (void) memset(newfile + rc, LIBELF_PRIVATE(fillchar), - (size_t) (ex->ex_start - (uint64_t) rc)); - - switch (ex->ex_type) { - case ELF_EXTENT_EHDR: - if ((nrc = _libelf_write_ehdr(e, newfile, ex)) < 0) - goto error; - break; - - case ELF_EXTENT_PHDR: - if ((nrc = _libelf_write_phdr(e, newfile, ex)) < 0) - goto error; - break; - - case ELF_EXTENT_SECTION: - if ((nrc = _libelf_write_scn(e, newfile, ex)) < 0) - goto error; - break; - - case ELF_EXTENT_SHDR: - if ((nrc = _libelf_write_shdr(e, newfile, ex)) < 0) - goto error; - break; - - default: - assert(0); - break; - } - - assert(ex->ex_start + ex->ex_size == (size_t) nrc); - assert(rc < nrc); - - rc = nrc; - } - - assert(rc == newsize); - - /* - * For regular files, throw away existing file content and - * unmap any existing mappings. - */ - if ((e->e_flags & LIBELF_F_SPECIAL_FILE) == 0) { - if (ftruncate(e->e_fd, (off_t) 0) < 0 || - lseek(e->e_fd, (off_t) 0, SEEK_SET)) { - LIBELF_SET_ERROR(IO, errno); - goto error; - } -#if ELFTC_HAVE_MMAP - if (e->e_flags & LIBELF_F_RAWFILE_MMAP) { - assert(e->e_rawfile != NULL); - assert(e->e_cmd == ELF_C_RDWR); - if (munmap(e->e_rawfile, (size_t) e->e_rawsize) < 0) { - LIBELF_SET_ERROR(IO, errno); - goto error; - } - } -#endif - } - - /* - * Write out the new contents. - */ - if (write(e->e_fd, newfile, (size_t) newsize) != newsize) { - LIBELF_SET_ERROR(IO, errno); - goto error; - } - - /* - * For files opened in ELF_C_RDWR mode, set up the new 'raw' - * contents. - */ - if (e->e_cmd == ELF_C_RDWR) { - assert(e->e_rawfile != NULL); - assert((e->e_flags & LIBELF_F_RAWFILE_MALLOC) || - (e->e_flags & LIBELF_F_RAWFILE_MMAP)); - if (e->e_flags & LIBELF_F_RAWFILE_MALLOC) { - assert((e->e_flags & LIBELF_F_RAWFILE_MMAP) == 0); - free(e->e_rawfile); - e->e_rawfile = newfile; - newfile = NULL; - } -#if ELFTC_HAVE_MMAP - else if (e->e_flags & LIBELF_F_RAWFILE_MMAP) { - assert((e->e_flags & LIBELF_F_RAWFILE_MALLOC) == 0); - if ((e->e_rawfile = mmap(NULL, (size_t) newsize, - PROT_READ, MAP_PRIVATE, e->e_fd, (off_t) 0)) == - MAP_FAILED) { - LIBELF_SET_ERROR(IO, errno); - goto error; - } - } -#endif /* ELFTC_HAVE_MMAP */ - - /* Record the new size of the file. */ - e->e_rawsize = newsize; - } else { - /* File opened in ELF_C_WRITE mode. */ - assert(e->e_rawfile == NULL); - } - - /* - * Reset flags, remove existing section descriptors and - * {E,P}HDR pointers so that a subsequent elf_get{e,p}hdr() - * and elf_getscn() will function correctly. - */ - - e->e_flags &= ~ELF_F_DIRTY; - - STAILQ_FOREACH_SAFE(scn, &e->e_u.e_elf.e_scn, s_next, tscn) - _libelf_release_scn(scn); - - if (e->e_class == ELFCLASS32) { - free(e->e_u.e_elf.e_ehdr.e_ehdr32); - if (e->e_u.e_elf.e_phdr.e_phdr32) - free(e->e_u.e_elf.e_phdr.e_phdr32); - - e->e_u.e_elf.e_ehdr.e_ehdr32 = NULL; - e->e_u.e_elf.e_phdr.e_phdr32 = NULL; - } else { - free(e->e_u.e_elf.e_ehdr.e_ehdr64); - if (e->e_u.e_elf.e_phdr.e_phdr64) - free(e->e_u.e_elf.e_phdr.e_phdr64); - - e->e_u.e_elf.e_ehdr.e_ehdr64 = NULL; - e->e_u.e_elf.e_phdr.e_phdr64 = NULL; - } - - /* Free the temporary buffer. */ - if (newfile) - free(newfile); - - return (rc); - - error: - free(newfile); - - return ((off_t) -1); -} - -/* - * Update an ELF object. - */ - -off_t -elf_update(Elf *e, Elf_Cmd c) -{ - int ec; - off_t rc; - struct _Elf_Extent_List extents; - - rc = (off_t) -1; - - if (e == NULL || e->e_kind != ELF_K_ELF || - (c != ELF_C_NULL && c != ELF_C_WRITE)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (rc); - } - - if ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) { - LIBELF_SET_ERROR(CLASS, 0); - return (rc); - } - - if (e->e_version == EV_NONE) - e->e_version = EV_CURRENT; - - if (c == ELF_C_WRITE && e->e_cmd == ELF_C_READ) { - LIBELF_SET_ERROR(MODE, 0); - return (rc); - } - - SLIST_INIT(&extents); - - if ((rc = _libelf_resync_elf(e, &extents)) < 0) - goto done; - - if (c == ELF_C_NULL) - goto done; - - if (e->e_fd < 0) { - rc = (off_t) -1; - LIBELF_SET_ERROR(SEQUENCE, 0); - goto done; - } - - rc = _libelf_write_elf(e, rc, &extents); - -done: - _libelf_release_extents(&extents); - return (rc); -} diff --git a/contrib/elftoolchain/libelf/elf_version.3 b/contrib/elftoolchain/libelf/elf_version.3 deleted file mode 100644 index 8a4985aa..00000000 --- a/contrib/elftoolchain/libelf/elf_version.3 +++ /dev/null @@ -1,95 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd November 9, 2011 -.Dt ELF_VERSION 3 -.Os -.Sh NAME -.Nm elf_version -.Nd retrieve or set ELF library operating version -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft unsigned int -.Fn elf_version "unsigned int version" -.Sh DESCRIPTION -The -.Fn elf_version -function is used to query the current operating version of the ELF -library, and to inform the ELF library about the application's desired -operating version. -.Pp -If the argument -.Ar version -is -.Dv EV_NONE , -the -.Fn elf_version -function returns the currently configured operating version for the -ELF library. -.Pp -If the argument -.Ar version -is not -.Dv EV_NONE , -and if argument -.Ar version -is supported by the ELF library, function -.Fn elf_version -sets the library's operating version to -.Ar version , -and returns the previous value of the operating version. -If argument -.Ar version -cannot be supported, then the -.Fn elf_version -function returns -.Dv EV_NONE . -.Sh RETURN VALUES -The -.Fn elf_version -function returns the currently configured ELF library version, or -.Dv EV_NONE -if an unsupported version is requested. -.Sh EXAMPLES -An application program would inform the ELF library about its desired -operating version and check for an error using the following code -snippet: -.Bd -literal -offset indent -if (elf_version(EV_CURRENT) == EV_NONE) - err(EXIT_FAILURE, "ELF library too old"); -.Ed -.Sh ERRORS -Function -.Fn elf_version -may fail with the following error: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er "ELF_E_VERSION" -An unsupported library version number was requested. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/elf_version.c b/contrib/elftoolchain/libelf/elf_version.c deleted file mode 100644 index 735523fb..00000000 --- a/contrib/elftoolchain/libelf/elf_version.c +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -unsigned int -elf_version(unsigned int v) -{ - unsigned int old; - - if ((old = LIBELF_PRIVATE(version)) == EV_NONE) - old = EV_CURRENT; - - if (v == EV_NONE) - return old; - if (v > EV_CURRENT) { - LIBELF_SET_ERROR(VERSION, 0); - return EV_NONE; - } - - LIBELF_PRIVATE(version) = v; - return (old); -} diff --git a/contrib/elftoolchain/libelf/gelf.3 b/contrib/elftoolchain/libelf/gelf.3 deleted file mode 100644 index 0dfbc197..00000000 --- a/contrib/elftoolchain/libelf/gelf.3 +++ /dev/null @@ -1,203 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 12, 2019 -.Dt GELF 3 -.Os -.Sh NAME -.Nm gelf -.Nd class-independent API for ELF manipulation -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Sh DESCRIPTION -This manual page describes a class independent API for manipulating -ELF objects. -This API allows an application to operate on ELF descriptors without -needing to the know the ELF class of the descriptor. -.Pp -The GElf API may be used alongside the ELF API without restriction. -.Ss GElf Data Structures -The GElf API defines the following class-independent data structures: -.Bl -tag -width GElf_Sxword -.It Vt GElf_Addr -A representation of ELF addresses. -.It Vt GElf_Dyn -A class-independent representation of ELF -.Sy .dynamic -section entries. -.It Vt GElf_Ehdr -A class-independent representation of an ELF Executable Header. -.It Vt GElf_Half -An unsigned 16 bit quantity. -.It Vt GElf_Off -A class-independent representation of a ELF offset. -.It Vt GElf_Phdr -A class-independent representation of an ELF Program Header Table -entry. -.It Vt GElf_Rel -A class-independent representation of an ELF relocation entry. -.It Vt GElf_Rela -A class-independent representation of an ELF relocation entry with -addend. -.It Vt GElf_Shdr -A class-independent representation of an ELF Section Header Table -entry. -.It Vt GElf_Sword -A signed 32 bit quantity. -.It Vt GElf_Sxword -A signed 64 bit quantity. -.It Vt GElf_Sym -A class-independent representation of an ELF symbol table entry. -.It Vt GElf_Word -An unsigned 32 bit quantity. -.It Vt GElf_Xword -An unsigned 64 bit quantity. -.El -.Pp -These data structures are sized to be compatible with the -corresponding 64 bit ELF structures, and have the same internal -structure as their 64 bit class-dependent counterparts. -Class-dependent ELF structures are described in -.Xr elf 5 . -.Ss GElf Programming Model -GElf functions always return a -.Em copy -of the underlying (class-dependent) ELF data structure. -The programming model with GElf is as follows: -.Bl -enum -.It -An application will retrieve data from an ELF descriptor using a -.Fn gelf_get_* -function. -This will copy out data into a private -.Vt GElf_* -data structure. -.It -The application will work with its private copy of the GElf -structure. -.It -Once done, the application copies the new values back to the -underlying ELF data structure using the -.Fn gelf_update_* -functions. -.It -The application will then use the -.Fn elf_flag* -APIs to indicate to the ELF library that an ELF data structure is dirty. -.El -.Pp -When updating an underlying 32 bit ELF data structure, the GElf -routines will signal an error if a GElf value is out of range -for the underlying ELF data type. -.Ss Namespace use -The GElf interface uses the following symbols: -.Bl -tag -width indent -.It GElf_* -Class-independent data types. -.It gelf_* -For functions defined in the API set. -.El -.Ss GElf Programming APIs -This section provides an overview of the GElf programming APIs. -Further information is provided in the manual page of each function -listed here. -.Bl -tag -width indent -.It "Allocating ELF Data Structures" -.Bl -tag -compact -width indent -.It Fn gelf_newehdr -Allocate a new ELF Executable Header. -.It Fn gelf_newphdr -Allocate a new ELF Program Header Table. -.El -.It "Data Translation" -.Bl -tag -compact -width indent -.It Fn gelf_xlatetof -Translate the native representation of an ELF data structure to its -file representation. -.It Fn gelf_xlatetom -Translate from the file representation of an ELF data structure to a -native representation. -.El -.It "Retrieving ELF Data" -.Bl -tag -compact -width indent -.It Fn gelf_getdyn -Retrieve an ELF -.Sy .dynamic -table entry. -.It Fn gelf_getehdr -Retrieve an ELF Executable Header from the underlying ELF descriptor. -.It Fn gelf_getphdr -Retrieve an ELF Program Header Table entry from the underlying ELF descriptor. -.It Fn gelf_getrel -Retrieve an ELF relocation entry. -.It Fn gelf_getrela -Retrieve an ELF relocation entry with addend. -.It Fn gelf_getshdr -Retrieve an ELF Section Header Table entry from the underlying ELF descriptor. -.It Fn gelf_getsym -Retrieve an ELF symbol table entry. -.El -.It Queries -.Bl -tag -compact -width indent -.It Fn gelf_checksum -Retrieves the ELF checksum for an ELF descriptor. -.It Fn gelf_fsize -Retrieves the size of the file representation of an ELF type. -.It Fn gelf_getclass -Retrieves the ELF class of an ELF descriptor. -.El -.It "Updating ELF Data" -.Bl -tag -compact -width ".Fn gelf_update_shdr" -.It Fn gelf_update_dyn -Copy back an ELF -.Sy .dynamic -Table entry. -.It Fn gelf_update_phdr -Copy back an ELF Program Header Table entry. -.It Fn gelf_update_rel -Copy back an ELF relocation entry. -.It Fn gelf_update_rela -Copy back an ELF relocation with addend entry. -.It Fn gelf_update_shdr -Copy back an ELF Section Header Table entry. -.It Fn gelf_update_sym -Copy back an ELF symbol table entry. -.El -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf 5 -.Sh HISTORY -The -.Nm -API first appeared in -.At V.4 . -This implementation of the API first appeared in -.Fx 7.0 . -.Sh AUTHORS -The GElf API was implemented by -.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org . diff --git a/contrib/elftoolchain/libelf/gelf.h b/contrib/elftoolchain/libelf/gelf.h deleted file mode 100644 index e7a4f600..00000000 --- a/contrib/elftoolchain/libelf/gelf.h +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _GELF_H_ -#define _GELF_H_ - -#include - -typedef Elf64_Addr GElf_Addr; /* Addresses */ -typedef Elf64_Half GElf_Half; /* Half words (16 bit) */ -typedef Elf64_Off GElf_Off; /* Offsets */ -typedef Elf64_Sword GElf_Sword; /* Signed words (32 bit) */ -typedef Elf64_Sxword GElf_Sxword; /* Signed long words (64 bit) */ -typedef Elf64_Word GElf_Word; /* Unsigned words (32 bit) */ -typedef Elf64_Xword GElf_Xword; /* Unsigned long words (64 bit) */ - -typedef Elf64_Dyn GElf_Dyn; /* ".dynamic" section entries */ -typedef Elf64_Ehdr GElf_Ehdr; /* ELF header */ -typedef Elf64_Phdr GElf_Phdr; /* Program header */ -typedef Elf64_Shdr GElf_Shdr; /* Section header */ -typedef Elf64_Sym GElf_Sym; /* Symbol table entries */ -typedef Elf64_Rel GElf_Rel; /* Relocation entries */ -typedef Elf64_Rela GElf_Rela; /* Relocation entries with addend */ - -typedef Elf64_Cap GElf_Cap; /* SW/HW capabilities */ -typedef Elf64_Move GElf_Move; /* Move entries */ -typedef Elf64_Syminfo GElf_Syminfo; /* Symbol information */ - -#define GELF_M_INFO ELF64_M_INFO -#define GELF_M_SIZE ELF64_M_SIZE -#define GELF_M_SYM ELF64_M_SYM - -#define GELF_R_INFO ELF64_R_INFO -#define GELF_R_SYM ELF64_R_SYM -#define GELF_R_TYPE ELF64_R_TYPE -#define GELF_R_TYPE_DATA ELF64_R_TYPE_DATA -#define GELF_R_TYPE_ID ELF64_R_TYPE_ID -#define GELF_R_TYPE_INFO ELF64_R_TYPE_INFO - -#define GELF_ST_BIND ELF64_ST_BIND -#define GELF_ST_INFO ELF64_ST_INFO -#define GELF_ST_TYPE ELF64_ST_TYPE -#define GELF_ST_VISIBILITY ELF64_ST_VISIBILITY - -#ifdef __cplusplus -extern "C" { -#endif -long gelf_checksum(Elf *_elf); -size_t gelf_fsize(Elf *_elf, Elf_Type _type, size_t _count, - unsigned int _version); -int gelf_getclass(Elf *_elf); -GElf_Dyn *gelf_getdyn(Elf_Data *_data, int _index, GElf_Dyn *_dst); -GElf_Ehdr *gelf_getehdr(Elf *_elf, GElf_Ehdr *_dst); -GElf_Phdr *gelf_getphdr(Elf *_elf, int _index, GElf_Phdr *_dst); -GElf_Rel *gelf_getrel(Elf_Data *_src, int _index, GElf_Rel *_dst); -GElf_Rela *gelf_getrela(Elf_Data *_src, int _index, GElf_Rela *_dst); -GElf_Shdr *gelf_getshdr(Elf_Scn *_scn, GElf_Shdr *_dst); -GElf_Sym *gelf_getsym(Elf_Data *_src, int _index, GElf_Sym *_dst); -GElf_Sym *gelf_getsymshndx(Elf_Data *_src, Elf_Data *_shindexsrc, - int _index, GElf_Sym *_dst, Elf32_Word *_shindexdst); -void * gelf_newehdr(Elf *_elf, int _class); -void * gelf_newphdr(Elf *_elf, size_t _phnum); -int gelf_update_dyn(Elf_Data *_dst, int _index, GElf_Dyn *_src); -int gelf_update_ehdr(Elf *_elf, GElf_Ehdr *_src); -int gelf_update_phdr(Elf *_elf, int _index, GElf_Phdr *_src); -int gelf_update_rel(Elf_Data *_dst, int _index, GElf_Rel *_src); -int gelf_update_rela(Elf_Data *_dst, int _index, GElf_Rela *_src); -int gelf_update_shdr(Elf_Scn *_dst, GElf_Shdr *_src); -int gelf_update_sym(Elf_Data *_dst, int _index, GElf_Sym *_src); -int gelf_update_symshndx(Elf_Data *_symdst, Elf_Data *_shindexdst, - int _index, GElf_Sym *_symsrc, Elf32_Word _shindexsrc); -Elf_Data *gelf_xlatetof(Elf *_elf, Elf_Data *_dst, const Elf_Data *_src, unsigned int _encode); -Elf_Data *gelf_xlatetom(Elf *_elf, Elf_Data *_dst, const Elf_Data *_src, unsigned int _encode); - -GElf_Cap *gelf_getcap(Elf_Data *_data, int _index, GElf_Cap *_cap); -GElf_Move *gelf_getmove(Elf_Data *_src, int _index, GElf_Move *_dst); -GElf_Syminfo *gelf_getsyminfo(Elf_Data *_src, int _index, GElf_Syminfo *_dst); -int gelf_update_cap(Elf_Data *_dst, int _index, GElf_Cap *_src); -int gelf_update_move(Elf_Data *_dst, int _index, GElf_Move *_src); -int gelf_update_syminfo(Elf_Data *_dst, int _index, GElf_Syminfo *_src); -#ifdef __cplusplus -} -#endif - -#endif /* _GELF_H_ */ diff --git a/contrib/elftoolchain/libelf/gelf_cap.c b/contrib/elftoolchain/libelf/gelf_cap.c deleted file mode 100644 index c3303166..00000000 --- a/contrib/elftoolchain/libelf/gelf_cap.c +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Cap * -gelf_getcap(Elf_Data *ed, int ndx, GElf_Cap *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - Elf32_Cap *cap32; - Elf64_Cap *cap64; - uint32_t sh_type; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_CAP) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_CAP, ec, e->e_version)) == 0) - return (NULL); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - - cap32 = (Elf32_Cap *) d->d_data.d_buf + ndx; - - dst->c_tag = cap32->c_tag; - dst->c_un.c_val = (Elf64_Xword) cap32->c_un.c_val; - - } else { - - cap64 = (Elf64_Cap *) d->d_data.d_buf + ndx; - - *dst = *cap64; - } - - return (dst); -} - -int -gelf_update_cap(Elf_Data *ed, int ndx, GElf_Cap *gc) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - Elf32_Cap *cap32; - Elf64_Cap *cap64; - uint32_t sh_type; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || gc == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_CAP) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_CAP, ec, e->e_version)) == 0) - return (0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - cap32 = (Elf32_Cap *) d->d_data.d_buf + ndx; - - LIBELF_COPY_U32(cap32, gc, c_tag); - LIBELF_COPY_U32(cap32, gc, c_un.c_val); - } else { - cap64 = (Elf64_Cap *) d->d_data.d_buf + ndx; - - *cap64 = *gc; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_checksum.3 b/contrib/elftoolchain/libelf/gelf_checksum.3 deleted file mode 100644 index f8c3f5d8..00000000 --- a/contrib/elftoolchain/libelf/gelf_checksum.3 +++ /dev/null @@ -1,115 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 29, 2006 -.Dt GELF_CHECKSUM 3 -.Os -.Sh NAME -.Nm elf32_checksum , -.Nm elf64_checksum , -.Nm gelf_checksum -.Nd return the checksum of an ELF object -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft long -.Fn elf32_checksum "Elf *elf" -.Ft long -.Fn elf64_checksum "Elf *elf" -.In gelf.h -.Ft long -.Fn gelf_checksum "Elf *elf" -.Sh DESCRIPTION -These functions return a simple checksum of the ELF object described -by their argument -.Ar elf . -The checksum is computed in way that allows its value to remain -unchanged in presence of modifications to the ELF object by utilities -like -.Xr strip 1 . -.Pp -Function -.Fn elf32_checksum -returns a checksum for an ELF descriptor -.Ar elf -of class -.Dv ELFCLASS32 . -.Pp -Function -.Fn elf64_checksum -returns a checksum for an ELF descriptor -.Ar elf -of class -.Dv ELFCLASS64 . -.Pp -Function -.Fn gelf_checksum -provides a class-independent way retrieving the checksum -for ELF object -.Ar elf . -.Sh RETURN VALUES -These functions return the checksum of the ELF object, or zero in case -an error was encountered. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF file. -.It Bq Er ELF_E_ARGUMENT -The ELF descriptor -.Ar elf -was not opened for reading or updating. -.It Bq Er ELF_E_CLASS -For functions -.Fn elf32_checksum -and -.Fn elf64_checksum , -ELF descriptor -.Ar elf -did not match the class of the called function. -.It Bq Er ELF_E_HEADER -The ELF object specified by argument -.Ar elf -had a malformed executable header. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected during processing. -.It Bq Er ELF_E_SECTION -The ELF object specified by argument -.Ar elf -contained a section with a malformed section header. -.It Bq Er ELF_E_VERSION -The ELF object was of an unsupported version. -.El -.Sh SEE ALSO -.Xr strip 1 , -.Xr elf 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_checksum.c b/contrib/elftoolchain/libelf/gelf_checksum.c deleted file mode 100644 index 3649e93e..00000000 --- a/contrib/elftoolchain/libelf/gelf_checksum.c +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -long -elf32_checksum(Elf *e) -{ - return (_libelf_checksum(e, ELFCLASS32)); -} - -long -elf64_checksum(Elf *e) -{ - return (_libelf_checksum(e, ELFCLASS64)); -} - -long -gelf_checksum(Elf *e) -{ - int ec; - if (e == NULL || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0L); - } - return (_libelf_checksum(e, ec)); -} diff --git a/contrib/elftoolchain/libelf/gelf_dyn.c b/contrib/elftoolchain/libelf/gelf_dyn.c deleted file mode 100644 index 6321c9b5..00000000 --- a/contrib/elftoolchain/libelf/gelf_dyn.c +++ /dev/null @@ -1,152 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Dyn * -gelf_getdyn(Elf_Data *ed, int ndx, GElf_Dyn *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - Elf32_Dyn *dyn32; - Elf64_Dyn *dyn64; - uint32_t sh_type; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_DYN) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_DYN, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - dyn32 = (Elf32_Dyn *) d->d_data.d_buf + ndx; - - dst->d_tag = dyn32->d_tag; - dst->d_un.d_val = (Elf64_Xword) dyn32->d_un.d_val; - - } else { - - dyn64 = (Elf64_Dyn *) d->d_data.d_buf + ndx; - - *dst = *dyn64; - } - - return (dst); -} - -int -gelf_update_dyn(Elf_Data *ed, int ndx, GElf_Dyn *ds) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - Elf32_Dyn *dyn32; - Elf64_Dyn *dyn64; - uint32_t sh_type; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || ds == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_DYN) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_DYN, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - dyn32 = (Elf32_Dyn *) d->d_data.d_buf + ndx; - - LIBELF_COPY_S32(dyn32, ds, d_tag); - LIBELF_COPY_U32(dyn32, ds, d_un.d_val); - } else { - dyn64 = (Elf64_Dyn *) d->d_data.d_buf + ndx; - - *dyn64 = *ds; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_ehdr.c b/contrib/elftoolchain/libelf/gelf_ehdr.c deleted file mode 100644 index 70ad30da..00000000 --- a/contrib/elftoolchain/libelf/gelf_ehdr.c +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf32_Ehdr * -elf32_getehdr(Elf *e) -{ - return (_libelf_ehdr(e, ELFCLASS32, 0)); -} - -Elf64_Ehdr * -elf64_getehdr(Elf *e) -{ - return (_libelf_ehdr(e, ELFCLASS64, 0)); -} - -GElf_Ehdr * -gelf_getehdr(Elf *e, GElf_Ehdr *d) -{ - int ec; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - - if (d == NULL || e == NULL || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - if ((eh32 = _libelf_ehdr(e, ELFCLASS32, 0)) == NULL) - return (NULL); - - (void) memcpy(d->e_ident, eh32->e_ident, - sizeof(eh32->e_ident)); - d->e_type = eh32->e_type; - d->e_machine = eh32->e_machine; - d->e_version = eh32->e_version; - d->e_entry = eh32->e_entry; - d->e_phoff = eh32->e_phoff; - d->e_shoff = eh32->e_shoff; - d->e_flags = eh32->e_flags; - d->e_ehsize = eh32->e_ehsize; - d->e_phentsize = eh32->e_phentsize; - d->e_phnum = eh32->e_phnum; - d->e_shentsize = eh32->e_shentsize; - d->e_shnum = eh32->e_shnum; - d->e_shstrndx = eh32->e_shstrndx; - - return (d); - } - - assert(ec == ELFCLASS64); - - if ((eh64 = _libelf_ehdr(e, ELFCLASS64, 0)) == NULL) - return (NULL); - *d = *eh64; - - return (d); -} - -Elf32_Ehdr * -elf32_newehdr(Elf *e) -{ - return (_libelf_ehdr(e, ELFCLASS32, 1)); -} - -Elf64_Ehdr * -elf64_newehdr(Elf *e) -{ - return (_libelf_ehdr(e, ELFCLASS64, 1)); -} - -void * -gelf_newehdr(Elf *e, int ec) -{ - if (e != NULL && - (ec == ELFCLASS32 || ec == ELFCLASS64)) - return (_libelf_ehdr(e, ec, 1)); - - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); -} - -int -gelf_update_ehdr(Elf *e, GElf_Ehdr *s) -{ - int ec; - void *ehdr; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - - if (s== NULL || e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (e->e_cmd == ELF_C_READ) { - LIBELF_SET_ERROR(MODE, 0); - return (0); - } - - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) - return (0); - - (void) elf_flagehdr(e, ELF_C_SET, ELF_F_DIRTY); - - if (ec == ELFCLASS64) { - eh64 = (Elf64_Ehdr *) ehdr; - *eh64 = *s; - return (1); - } - - eh32 = (Elf32_Ehdr *) ehdr; - - (void) memcpy(eh32->e_ident, s->e_ident, sizeof(eh32->e_ident)); - - eh32->e_type = s->e_type; - eh32->e_machine = s->e_machine; - eh32->e_version = s->e_version; - LIBELF_COPY_U32(eh32, s, e_entry); - LIBELF_COPY_U32(eh32, s, e_phoff); - LIBELF_COPY_U32(eh32, s, e_shoff); - eh32->e_flags = s->e_flags; - eh32->e_ehsize = s->e_ehsize; - eh32->e_phentsize = s->e_phentsize; - eh32->e_phnum = s->e_phnum; - eh32->e_shentsize = s->e_shentsize; - eh32->e_shnum = s->e_shnum; - eh32->e_shstrndx = s->e_shstrndx; - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_fsize.3 b/contrib/elftoolchain/libelf/gelf_fsize.3 deleted file mode 100644 index f8fa045d..00000000 --- a/contrib/elftoolchain/libelf/gelf_fsize.3 +++ /dev/null @@ -1,96 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd February 5, 2008 -.Dt GELF_FSIZE 3 -.Os -.Sh NAME -.Nm gelf_fsize , -.Nm elf32_fsize , -.Nm elf64_fsize -.Nd return the size of a file type -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft size_t -.Fn elf32_fsize "Elf_Type type" "size_t count" "unsigned int version" -.Ft size_t -.Fn elf64_fsize "Elf_Type type" "size_t count" "unsigned int version" -.In gelf.h -.Ft size_t -.Fn gelf_fsize "Elf *elf" "Elf_Type type" "size_t count" "unsigned int version" -.Sh DESCRIPTION -These functions return the size in bytes of the file representation of -.Ar count -numbers of objects of ELF type -.Ar type . -For ELF types that are of variable length, these functions return a -size of one byte. -.Pp -Functions -.Fn elf32_fsize -and -.Fn elf64_fsize -return sizes for files of class -.Dv ELFCLASS32 -and -.Dv ELFCLASS64 -respectively. -Function -.Fn gelf_fsize -returns the size for the class of ELF descriptor -.Ar elf . -.Sh RETURN VALUES -These functions return a non-zero value in case of success, or zero in -case of an error. -.Sh ERRORS -These functions may fail with: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL in a call to -.Fn gelf_fsize . -.It Bq Er ELF_E_ARGUMENT -ELF descriptor -.Ar elf -had an unknown ELF class. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar type -contained an illegal value. -.It Bq Er ELF_E_UNIMPL -Support for ELF type -.Ar type -has not been implemented. -.It Bq Er ELF_E_VERSION -Argument -.Ar version -is not a supported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_fsize.c b/contrib/elftoolchain/libelf/gelf_fsize.c deleted file mode 100644 index 3841c910..00000000 --- a/contrib/elftoolchain/libelf/gelf_fsize.c +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -size_t -elf32_fsize(Elf_Type t, size_t c, unsigned int v) -{ - return (_libelf_fsize(t, ELFCLASS32, v, c)); -} - -size_t -elf64_fsize(Elf_Type t, size_t c, unsigned int v) -{ - return (_libelf_fsize(t, ELFCLASS64, v, c)); -} - -size_t -gelf_fsize(Elf *e, Elf_Type t, size_t c, unsigned int v) -{ - - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (e->e_class == ELFCLASS32 || e->e_class == ELFCLASS64) - return (_libelf_fsize(t, e->e_class, v, c)); - - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); -} diff --git a/contrib/elftoolchain/libelf/gelf_getcap.3 b/contrib/elftoolchain/libelf/gelf_getcap.3 deleted file mode 100644 index d081cfe3..00000000 --- a/contrib/elftoolchain/libelf/gelf_getcap.3 +++ /dev/null @@ -1,127 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETCAP 3 -.Os -.Sh NAME -.Nm gelf_getcap , -.Nm gelf_update_cap -.Nd read and update ELF capability information -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Cap *" -.Fn gelf_getcap "Elf_Data *data" "int ndx" "GElf_Cap *cap" -.Ft int -.Fn gelf_update_cap "Elf_Data *data" "int ndx" "GElf_Cap *cap" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Cap -or -.Vt Elf64_Cap -information. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_SUNW_cap . -Argument -.Ar ndx -is the index of the entry being retrieved or updated. -The class-independent -.Vt GElf_Cap -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getcap -retrieves the class-dependent entry at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar cap -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_cap -converts the class-independent entry pointed to -by argument -.Ar cap -to class-dependent form, and writes it to the entry at index -.Ar ndx -in the data buffer described by argument -.Ar data . -Function -.Fn gelf_update_cap -signals an error if any of the values in the class-independent -representation exceeds the representable limits of the target -type. -.Sh RETURN VALUES -Function -.Fn gelf_getcap -returns the value of argument -.Ar cap -if successful, or NULL in case of an error. -Function -.Fn gelf_update_cap -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar cap -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of entries in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section of type -.Dv SHT_SUNW_cap . -.It Bq Er ELF_E_RANGE -A value was not representable in the target type. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_getclass.3 b/contrib/elftoolchain/libelf/gelf_getclass.3 deleted file mode 100644 index 2d9e2a12..00000000 --- a/contrib/elftoolchain/libelf/gelf_getclass.3 +++ /dev/null @@ -1,61 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd July 3, 2006 -.Dt GELF_GETCLASS 3 -.Os -.Sh NAME -.Nm gelf_getclass -.Nd retrieve the class of an ELF descriptor -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft int -.Fn gelf_getclass "Elf *elf" -.Sh DESCRIPTION -Function -.Fn gelf_getclass -returns the ELF class of the descriptor supplied in argument -.Ar elf . -.Sh RETURN VALUES -Function -.Fn gelf_getclass -will return one of -.Dv ELFCLASS32 -or -.Dv ELFCLASS64 -if the argument -.Ar elf -is a descriptor for an ELF file. -The value -.Dv ELFCLASSNONE -is returned if argument -.Ar elf -was null, or if it was not a descriptor for an ELF file. -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_kind 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_getclass.c b/contrib/elftoolchain/libelf/gelf_getclass.c deleted file mode 100644 index 04bc171b..00000000 --- a/contrib/elftoolchain/libelf/gelf_getclass.c +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -int -gelf_getclass(Elf *e) -{ - return (e != NULL ? e->e_class : ELFCLASSNONE); -} diff --git a/contrib/elftoolchain/libelf/gelf_getdyn.3 b/contrib/elftoolchain/libelf/gelf_getdyn.3 deleted file mode 100644 index 31337376..00000000 --- a/contrib/elftoolchain/libelf/gelf_getdyn.3 +++ /dev/null @@ -1,130 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETDYN 3 -.Os -.Sh NAME -.Nm gelf_getdyn , -.Nm gelf_update_dyn -.Nd read and update ELF dynamic entries -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Dyn *" -.Fn gelf_getdyn "Elf_Data *data" "int ndx" "GElf_Dyn *dyn" -.Ft int -.Fn gelf_update_dyn "Elf_Data *data" "int ndx" "GElf_Dyn *dyn" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Dyn -or -.Vt Elf64_Dyn -information in the -.Sy dynamic -table of an ELF object. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_DYNAMIC . -Argument -.Ar ndx -is the index of the entry being retrieved or updated. -The class-independent -.Vt GElf_Dyn -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getdyn -retrieves the class-dependent entry at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar dyn -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_dyn -converts the class-independent entry pointed to -by argument -.Ar dyn -to class-dependent form, and writes it to the entry at index -.Ar ndx -in the data buffer described by argument -.Ar data . -Function -.Fn gelf_update_dyn -signals an error if any of the values in the class-independent -representation exceeds the representable limits of the target -type. -.Sh RETURN VALUES -Function -.Fn gelf_getdyn -returns the value of argument -.Ar dyn -if successful, or NULL in case of an error. -Function -.Fn gelf_update_dyn -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar dyn -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of entries in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section of type -.Dv SHT_DYNAMIC . -.It Bq Er ELF_E_RANGE -A value was not representable in the target type. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_getehdr.3 b/contrib/elftoolchain/libelf/gelf_getehdr.3 deleted file mode 100644 index 0c6d9f4b..00000000 --- a/contrib/elftoolchain/libelf/gelf_getehdr.3 +++ /dev/null @@ -1,123 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 16, 2006 -.Dt GELF_GETEHDR 3 -.Os -.Sh NAME -.Nm elf32_getehdr , -.Nm elf64_getehdr , -.Nm gelf_getehdr -.Nd retrieve the object file header -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf32_Ehdr *" -.Fn elf32_getehdr "Elf *elf" -.Ft "Elf64_Ehdr *" -.Fn elf64_getehdr "Elf *elf" -.In gelf.h -.Ft "GElf_Ehdr *" -.Fn gelf_getehdr "Elf *elf" "GElf_Ehdr *dst" -.Sh DESCRIPTION -These functions retrieve the ELF object file -header from the ELF descriptor -.Ar elf -and return a translated header descriptor to their callers. -.Pp -Functions -.Fn elf32_getehdr -and -.Fn elf64_getehdr -return a pointer to the appropriate class-specific header descriptor -if it exists in the file referenced by descriptor -.Ar elf . -These functions return -.Dv NULL -if an ELF header was not found in file -.Ar elf . -.Pp -Function -.Fn gelf_getehdr -stores a translated copy of the header for ELF file -.Ar elf -into the descriptor pointed to by argument -.Ar dst . -It returns argument -.Ar dst -if successful or -.Dv NULL -in case of failure. -.Sh RETURN VALUES -These functions return a pointer to a translated header descriptor -if successful, or NULL on failure. -.Sh ERRORS -These functions can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -The argument -.Ar elf -was null. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF file. -.It Bq Er ELF_E_ARGUMENT -The elf class of descriptor -.Ar elf -was not recognized. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar dst -was null. -.It Bq Er ELF_E_CLASS -The ELF class of descriptor -.Ar elf -did not match that of the API function being called. -.It Bq Er ELF_E_HEADER -ELF descriptor -.Ar elf -does not have an associated header. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected during execution. -.It Bq Er ELF_E_SECTION -The ELF descriptor in argument -.Ar elf -did not adhere to the conventions used for extended numbering. -.It Bq Er ELF_E_VERSION -The ELF descriptor -.Ar elf -had an unsupported ELF version number. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_newehdr 3 , -.Xr elf64_newehdr 3 , -.Xr elf_flagehdr 3 , -.Xr elf_getident 3 , -.Xr gelf 3 , -.Xr gelf_newehdr 3 , -.Xr elf 5 diff --git a/contrib/elftoolchain/libelf/gelf_getmove.3 b/contrib/elftoolchain/libelf/gelf_getmove.3 deleted file mode 100644 index 402496b4..00000000 --- a/contrib/elftoolchain/libelf/gelf_getmove.3 +++ /dev/null @@ -1,126 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETMOVE 3 -.Os -.Sh NAME -.Nm gelf_getmove , -.Nm gelf_update_move -.Nd read and update Elf Move information -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Move *" -.Fn gelf_getmove "Elf_Data *data" "int ndx" "GElf_Move *move" -.Ft int -.Fn gelf_update_move "Elf_Data *data" "int ndx" "GElf_Move *move" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Move -and -.Vt Elf64_Move -structures in an ELF object. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_SUNW_move . -Argument -.Ar ndx -is the index of the move record being retrieved or updated. -The class-independent -.Vt GElf_Move -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getmove -retrieves class-dependent move record at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar move -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_move -converts the class-independent move information pointed to -by argument -.Ar move -to class-dependent form, and writes it to the move record at index -.Ar ndx -in the data buffer described by argument -.Ar data . -Function -.Fn gelf_update_move -signals an error if any of the values in the class-independent -representation exceeds the representable limits of the target -type. -.Sh RETURN VALUES -Function -.Fn gelf_getmove -returns the value of argument -.Ar move -if successful, or NULL in case of an error. -Function -.Fn gelf_update_move -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar move -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of records in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section containing move information. -.It Bq Er ELF_E_RANGE -A value was not representable in the target type. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_getphdr.3 b/contrib/elftoolchain/libelf/gelf_getphdr.3 deleted file mode 100644 index 70fea3c8..00000000 --- a/contrib/elftoolchain/libelf/gelf_getphdr.3 +++ /dev/null @@ -1,141 +0,0 @@ -.\" Copyright (c) 2006-2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd October 21, 2007 -.Dt GELF_GETPHDR 3 -.Os -.Sh NAME -.Nm elf32_getphdr , -.Nm elf64_getphdr , -.Nm gelf_getphdr -.Nd retrieve an ELF program header table -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf32_Phdr *" -.Fn elf32_getphdr "Elf *elf" -.Ft "Elf64_Phdr *" -.Fn elf64_getphdr "Elf *elf" -.In gelf.h -.Ft "GElf_Phdr *" -.Fn gelf_getphdr "Elf *elf" "int index" "GElf_Phdr *dst" -.Sh DESCRIPTION -These functions retrieve and translate ELF program header information -from an ELF descriptor, if this information exists. -.Pp -Functions -.Fn elf32_getphdr -and -.Fn elf64_getphdr -return a pointer to an array of translated -.Vt Elf32_Phdr -and -.Vt Elf64_Phdr -descriptors respectively. -These descriptors are described in -.Xr elf 5 . -The number of entries in this array may be determined using the -.Xr elf_getphnum 3 -function. -.Pp -Function -.Fn gelf_getphdr -will retrieve the program header table entry at index -.Ar index -from ELF descriptor -.Ar elf . -The translated program header table entry will be written to the -address pointed to be argument -.Ar dst . -.Pp -Applications may inform the library of modifications to a program header table entry -by using the -.Xr elf_flagphdr 3 -API. -Applications using the -.Xr gelf 3 -interface need to use the -.Xr gelf_update_phdr 3 -API to copy modifications to a program header entry back to the underlying -ELF descriptor. -.Sh RETURN VALUES -The functions a valid pointer if successful, or NULL in case an error -was encountered. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar dst -was NULL. -.It Bq Er ELF_E_ARGUMENT -Index -.Ar index -was out of range. -.It Bq Er ELF_E_CLASS -The class of ELF descriptor -.Ar elf -did not match the expected class of the function being called. -.It Bq Er ELF_E_HEADER -ELF descriptor -.Ar elf -did not possess an executable header. -.It Bq Er ELF_E_HEADER -ELF descriptor -.Ar elf -had a corrupt executable header. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected. -.It Bq Er ELF_E_SECTION -The ELF descriptor in argument -.Ar elf -did not adhere to the conventions used for extended numbering. -.It Bq Er ELF_VERSION -ELF descriptor -.Ar elf -was of an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf32_newphdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf64_newphdr 3 , -.Xr elf_flagphdr 3 , -.Xr elf_getphnum 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 , -.Xr gelf_newphdr 3 , -.Xr gelf_update_phdr 3 , -.Xr elf 5 diff --git a/contrib/elftoolchain/libelf/gelf_getrel.3 b/contrib/elftoolchain/libelf/gelf_getrel.3 deleted file mode 100644 index fc690a98..00000000 --- a/contrib/elftoolchain/libelf/gelf_getrel.3 +++ /dev/null @@ -1,127 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETREL 3 -.Os -.Sh NAME -.Nm gelf_getrel , -.Nm gelf_update_rel -.Nd read and update ELF relocation entries -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Rel *" -.Fn gelf_getrel "Elf_Data *data" "int ndx" "GElf_Rel *rel" -.Ft int -.Fn gelf_update_rel "Elf_Data *data" "int ndx" "GElf_Rel *rel" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Rel -or -.Vt Elf64_Rel -structures in an ELF object. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_REL . -Argument -.Ar ndx -is the index of the entry being retrieved or updated. -The class-independent -.Vt GElf_Rel -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getrel -retrieves the class-dependent entry at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar rel -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_rel -converts the class-independent entry pointed to -by argument -.Ar rel -to class-dependent form, and writes it to the entry at index -.Ar ndx -in the data buffer described by argument -.Ar data . -Function -.Fn gelf_update_rel -signals an error if any of the values in the class-independent -representation exceeds the representable limits of the target -type. -.Sh RETURN VALUES -Function -.Fn gelf_getrel -returns the value of argument -.Ar rel -if successful, or NULL in case of an error. -Function -.Fn gelf_update_rel -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar rel -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of entries in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section of type -.Dv SHT_REL . -.It Bq Er ELF_E_RANGE -A value was not representable in the target type. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_getrela.3 b/contrib/elftoolchain/libelf/gelf_getrela.3 deleted file mode 100644 index 0282017c..00000000 --- a/contrib/elftoolchain/libelf/gelf_getrela.3 +++ /dev/null @@ -1,127 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETRELA 3 -.Os -.Sh NAME -.Nm gelf_getrela , -.Nm gelf_update_rela -.Nd read and update ELF relocation entries with addends -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Rela *" -.Fn gelf_getrela "Elf_Data *data" "int ndx" "GElf_Rela *rela" -.Ft int -.Fn gelf_update_rela "Elf_Data *data" "int ndx" "GElf_Rela *rela" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Rela -or -.Vt Elf64_Rela -structures in an ELF object. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_RELA . -Argument -.Ar ndx -is the index of the entry being retrieved or updated. -The class-independent -.Vt GElf_Rela -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getrela -retrieves the class-dependent entry at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar rela -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_rela -converts the class-independent entry pointed to -by argument -.Ar rela -to class-dependent form, and writes it to the entry at index -.Ar ndx -in the data buffer described by argument -.Ar data . -Function -.Fn gelf_update_rela -signals an error if any of the values in the class-independent -representation exceeds the representable limits of the target -type. -.Sh RETURN VALUES -Function -.Fn gelf_getrela -returns the value of argument -.Ar rela -if successful, or NULL in case of an error. -Function -.Fn gelf_update_rela -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar rela -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of entries in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section of type -.Dv SHT_RELA . -.It Bq Er ELF_E_RANGE -A value was not representable in the target type. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/gelf_getshdr.3 b/contrib/elftoolchain/libelf/gelf_getshdr.3 deleted file mode 100644 index 4e8ea5df..00000000 --- a/contrib/elftoolchain/libelf/gelf_getshdr.3 +++ /dev/null @@ -1,115 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 27, 2006 -.Dt GELF_GETSHDR 3 -.Os -.Sh NAME -.Nm elf32_getshdr , -.Nm elf64_getshdr , -.Nm gelf_getshdr -.Nd retrieve the class-dependent section header -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf32_Shdr *" -.Fn elf32_getshdr "Elf_Scn *scn" -.Ft "Elf64_Shdr *" -.Fn elf64_getshdr "Elf_Scn *scn" -.In gelf.h -.Ft "GElf_Shdr *" -.Fn gelf_getshdr "Elf_Scn *scn" "GElf_Shdr *shdr" -.Sh DESCRIPTION -These functions return a pointer to the ELF Section Header data -structure associated with section descriptor -.Ar scn . -.Pp -Function -.Fn elf32_getshdr -retrieves a pointer to an -.Vt Elf32_Shdr -structure. -Section descriptor -.Ar scn -must be associated with an ELF descriptor of class -.Dv ELFCLASS32 . -.Pp -Function -.Fn elf64_getshdr -retrieves a pointer to an -.Vt Elf64_Shdr -structure. -Section descriptor -.Ar scn -must be associated with an ELF descriptor of class -.Dv ELFCLASS64 . -.Pp -Function -.Fn gelf_getshdr -copies the values in the section header associated with argument -.Ar scn -to the structure pointed to be argument -.Ar dst . -The -.Vt GElf_Shdr -data structure is described in -.Xr gelf 3 . -.Sh RETURN VALUES -Functions -.Fn elf32_getshdr -and -.Fn elf64_getshdr -return a valid pointer to the appropriate section header on success -or NULL if an error was encountered. -.Pp -Function -.Fn gelf_getshdr -returns argument -.Ar dst -if successful, or NULL if an error was encountered. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar scn -or -.Ar shdr -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar scn -was not associated a descriptor for an ELF object. -.It Bq Er ELF_E_CLASS -The ELF class associated with the section descriptor -.Ar scn -did not match the class expected by the API. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 , -.Xr gelf_update_shdr 3 diff --git a/contrib/elftoolchain/libelf/gelf_getsym.3 b/contrib/elftoolchain/libelf/gelf_getsym.3 deleted file mode 100644 index dcdbd9ac..00000000 --- a/contrib/elftoolchain/libelf/gelf_getsym.3 +++ /dev/null @@ -1,131 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETSYM 3 -.Os -.Sh NAME -.Nm gelf_getsym , -.Nm gelf_update_sym -.Nd read and update symbol information -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Sym *" -.Fn gelf_getsym "Elf_Data *data" "int ndx" "GElf_Sym *sym" -.Ft int -.Fn gelf_update_sym "Elf_Data *data" "int ndx" "GElf_Sym *sym" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Sym -and -.Vt Elf64_Sym -structures in an ELF object. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_SYMTAB , -.Dv SHT_DYNSYM -or -.Dv SHT_GNU_versym . -Argument -.Ar ndx -is the index of the symbol being retrieved or updated. -The class-independent -.Vt GElf_Sym -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getsym -retrieves class-dependent symbol information at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar sym -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_sym -converts the class-independent symbol information pointed to -by argument -.Ar sym -to class-dependent form, and writes it to the symbol entry at index -.Ar ndx -in the data buffer described by argument -.Ar data . -Function -.Fn gelf_update_sym -signals an error if any of the values in the class-independent -representation exceeds the representable limits of the target -type. -.Sh RETURN VALUES -Function -.Fn gelf_getsym -returns the value of argument -.Ar sym -if successful, or NULL in case of an error. -Function -.Fn gelf_update_sym -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar sym -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of symbols in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section containing symbol information. -.It Bq Er ELF_E_RANGE -A value was not representable in the target type. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 , -.Xr gelf_getsyminfo 3 , -.Xr gelf_update_syminfo 3 diff --git a/contrib/elftoolchain/libelf/gelf_getsyminfo.3 b/contrib/elftoolchain/libelf/gelf_getsyminfo.3 deleted file mode 100644 index 800ab208..00000000 --- a/contrib/elftoolchain/libelf/gelf_getsyminfo.3 +++ /dev/null @@ -1,121 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETSYMINFO 3 -.Os -.Sh NAME -.Nm gelf_getsyminfo , -.Nm gelf_update_syminfo -.Nd read and update symbol information -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Syminfo *" -.Fn gelf_getsyminfo "Elf_Data *data" "int ndx" "GElf_Syminfo *syminfo" -.Ft int -.Fn gelf_update_syminfo "Elf_Data *data" "int ndx" "GElf_Syminfo *syminfo" -.Sh DESCRIPTION -These convenience functions are used to retrieve and update class-dependent -.Vt Elf32_Syminfo -and -.Vt Elf64_Syminfo -records in an ELF object. -.Pp -Argument -.Ar data -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_SUNW_syminfo . -Argument -.Ar ndx -is the index of the record being retrieved or updated. -The class-independent -.Vt GElf_Syminfo -structure is described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getsyminfo -retrieves class-dependent record at index -.Ar ndx -in data buffer -.Ar data -and copies it to the destination pointed to by argument -.Ar syminfo -after translation to class-independent form. -.Pp -Function -.Fn gelf_update_syminfo -converts the class-independent record pointed to -by argument -.Ar syminfo -to class-dependent form, and writes it to the record at index -.Ar ndx -in the data buffer described by argument -.Ar data . -.Sh RETURN VALUES -Function -.Fn gelf_getsyminfo -returns the value of argument -.Ar syminfo -if successful, or NULL in case of an error. -Function -.Fn gelf_update_syminfo -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar data -or -.Ar syminfo -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero or larger than the number of symbols in the data -descriptor. -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar data -was not associated with a section containing symbol information. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptor denoted by argument -.Ar data -is associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 , -.Xr gelf_getsym 3 , -.Xr gelf_update_sym 3 diff --git a/contrib/elftoolchain/libelf/gelf_getsymshndx.3 b/contrib/elftoolchain/libelf/gelf_getsymshndx.3 deleted file mode 100644 index 6d35b4b7..00000000 --- a/contrib/elftoolchain/libelf/gelf_getsymshndx.3 +++ /dev/null @@ -1,170 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd April 22, 2019 -.Dt GELF_GETSYMSHNDX 3 -.Os -.Sh NAME -.Nm gelf_getsymshndx , -.Nm gelf_update_symshndx -.Nd read and update symbol information using extended section indices -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft "GElf_Sym *" -.Fo gelf_getsymshndx -.Fa "Elf_Data *symdata" -.Fa "Elf_Data *xndxdata" -.Fa "int ndx" -.Fa "GElf_Sym *sym" -.Fa "Elf32_Word *xndxptr" -.Fc -.Ft int -.Fo gelf_update_symshndx -.Fa "Elf_Data *symdata" -.Fa "Elf_Data *xndxdata" -.Fa "int ndx" -.Fa "GElf_Sym *sym" -.Fa "Elf32_Word xndx" -.Fc -.Sh DESCRIPTION -These functions are analogous to -.Fn gelf_getsym -and -.Fn gelf_update_sym -respectively, but are capable of handling symbol tables using extended -section numbering. -.Pp -Argument -.Ar symdata -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_SYMTAB . -Argument -.Ar xndxdata -is an -.Vt Elf_Data -descriptor associated with a section of type -.Dv SHT_SYMTAB_SHNDX . -Argument -.Ar ndx -is the index of the symbol table entry being retrieved or updated. -Argument -.Ar sym -is a pointer to a class-independent -.Vt GElf_Sym -structure. -.Vt GElf_Sym -structures are described in detail in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_getsymshndx -retrieves symbol information at index -.Ar ndx -from the data descriptor specified by argument -.Ar symdata -and stores in class-independent form in argument -.Ar sym . -In addition it retrieves the extended section index for the -symbol from data buffer -.Ar xndxdata -and stores it into the location pointed to by argument -.Ar xndxptr . -.Pp -Function -.Fn gelf_update_symshndx -updates the underlying symbol table entry in data -descriptor -.Ar symdata -with the information in argument -.Ar sym . -In addition it sets the extended section index in -data buffer -.Ar xndxdata -to the value of argument -.Ar xndx . -.Sh RETURN VALUES -Function -.Fn gelf_getsymshndx -returns the value of argument -.Ar sym -if successful, or NULL in case of an error. -.Pp -Function -.Fn gelf_update_symshndx -returns a non-zero value if successful, or zero in case of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar symdata , -.Ar xndxdata , -.Ar xndxptr -or -.Ar sym -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -was less than zero, or too large for either of descriptors -.Ar symdata -or -.Ar xndxdata . -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar symdata -was not associated with a section of type -.Dv SHT_SYMTAB . -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar xndxdata -was not associated with a section of type -.Dv SHT_SYMTAB_SHNDX . -.It Bq Er ELF_E_ARGUMENT -Data descriptor -.Ar symdata -and -.Ar xndxdata -were associated with different ELF objects. -.It Bq Er ELF_E_VERSION -The -.Vt Elf_Data -descriptors denoted by arguments -.Ar symdata -and -.Ar xndxdata -are associated with an ELF object with an unsupported version. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr elf_getscn 3 , -.Xr gelf 3 , -.Xr gelf_getsym 3 , -.Xr gelf_update_sym 3 diff --git a/contrib/elftoolchain/libelf/gelf_move.c b/contrib/elftoolchain/libelf/gelf_move.c deleted file mode 100644 index c0bb6538..00000000 --- a/contrib/elftoolchain/libelf/gelf_move.c +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Move * -gelf_getmove(Elf_Data *ed, int ndx, GElf_Move *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Move *move32; - Elf64_Move *move64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_MOVE) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - - move32 = (Elf32_Move *) d->d_data.d_buf + ndx; - - dst->m_value = move32->m_value; - dst->m_info = (Elf64_Xword) move32->m_info; - dst->m_poffset = (Elf64_Xword) move32->m_poffset; - dst->m_repeat = move32->m_repeat; - dst->m_stride = move32->m_stride; - } else { - - move64 = (Elf64_Move *) d->d_data.d_buf + ndx; - - *dst = *move64; - } - - return (dst); -} - -int -gelf_update_move(Elf_Data *ed, int ndx, GElf_Move *gm) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Move *move32; - Elf64_Move *move64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || gm == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_MOVE) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - move32 = (Elf32_Move *) d->d_data.d_buf + ndx; - - move32->m_value = gm->m_value; - LIBELF_COPY_U32(move32, gm, m_info); - LIBELF_COPY_U32(move32, gm, m_poffset); - move32->m_repeat = gm->m_repeat; - move32->m_stride = gm->m_stride; - - } else { - move64 = (Elf64_Move *) d->d_data.d_buf + ndx; - - *move64 = *gm; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_newehdr.3 b/contrib/elftoolchain/libelf/gelf_newehdr.3 deleted file mode 100644 index c51dc388..00000000 --- a/contrib/elftoolchain/libelf/gelf_newehdr.3 +++ /dev/null @@ -1,197 +0,0 @@ -.\" Copyright (c) 2006-2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 12, 2019 -.Dt GELF_NEWEHDR 3 -.Os -.Sh NAME -.Nm elf32_newehdr , -.Nm elf64_newehdr , -.Nm gelf_newehdr -.Nd retrieve or allocate the object file header -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf32_Ehdr *" -.Fn elf32_newehdr "Elf *elf" -.Ft "Elf64_Ehdr *" -.Fn elf64_newehdr "Elf *elf" -.In gelf.h -.Ft "void *" -.Fn gelf_newehdr "Elf *elf" "int elfclass" -.Sh DESCRIPTION -These functions retrieve the ELF header from the ELF descriptor -.Ar elf , -allocating a new header if needed. -File data structures are translated to their in-memory representations -as described in -.Xr elf 3 . -.Pp -Function -.Fn elf32_newehdr -returns a pointer to a 32 bit -.Vt Elf32_Ehdr -structure. -Function -.Fn elf64_newehdr -returns a pointer to a 64 bit -.Vt Elf64_Ehdr -structure. -.Pp -When argument -.Ar elfclass -has value -.Dv ELFCLASS32 , -function -.Fn gelf_newehdr -returns the value returned by -.Fn elf32_newehdr "elf" . -When argument -.Ar elfclass -has value -.Dv ELFCLASS64 -it returns the value returned by -.Fn elf64_newehdr "elf" . -.Pp -If a fresh header structure is allocated, the members of the -structure are initialized as follows: -.Bl -tag -width indent -.It Va "e_ident[EI_MAG0..EI_MAG3]" -Identification bytes at offsets -.Dv EI_MAG0 , -.Dv EI_MAG1 , -.Dv EI_MAG2 -and -.Dv EI_MAG3 -are set to the ELF signature. -.It Va "e_ident[EI_CLASS]" -The identification byte at offset -.Dv EI_CLASS -is set to the ELF class associated with the function being called -or to argument -.Ar elfclass -for function -.Fn gelf_newehdr . -.It Va "e_ident[EI_DATA]" -The identification byte at offset -.Dv EI_DATA -is set to -.Dv ELFDATANONE . -.It Va "e_ident[EI_VERSION]" -The identification byte at offset -.Dv EI_VERSION -is set to the ELF library's operating version set by a prior call to -.Xr elf_version 3 . -.It Va e_machine -is set to -.Dv EM_NONE . -.It Va e_type -is set to -.Dv ELF_K_NONE . -.It Va e_version -is set to the ELF library's operating version set by a prior call to -.Xr elf_version 3 . -.El -.Pp -Other members of the header are set to zero. -The application is responsible for changing these values -as needed before calling -.Fn elf_update . -.Pp -If successful, these three functions set the -.Dv ELF_F_DIRTY -flag on ELF descriptor -.Ar elf . -.Sh RETURN VALUES -These functions return a pointer to a translated header descriptor -if successful, or NULL on failure. -.Sh COMPATIBILITY -The -.Fn gelf_newehdr -function uses a type of -.Ft "void *" -for its returned value. -This differs from some other implementations of the -.Xr elf 3 -API, which use an -.Ft "unsigned long" -return type. -.Sh ERRORS -These functions can fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -The argument -.Ar elf -was null. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elfclass -had an unsupported value. -.It Bq Er ELF_E_ARGUMENT -The class of the ELF descriptor -.Ar elf -did not match that of the requested operation. -.It Bq Er ELF_E_ARGUMENT -For function -.Fn gelf_newehdr , -the class of argument -.Ar elf -was not -.Dv ELFCLASSNONE -and did not match the argument -.Ar elfclass . -.It Bq Er ELF_E_CLASS -The ELF class of descriptor -.Ar elf -did not match that of the API function being called. -.It Bq Er ELF_E_HEADER -A malformed ELF header was detected. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected during execution. -.It Bq Er ELF_E_SECTION -The ELF descriptor in argument -.Ar elf -did not adhere to the conventions used for extended numbering. -.It Bq Er ELF_E_VERSION -The ELF descriptor -.Ar elf -had an unsupported ELF version number. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getehdr 3 , -.Xr elf64_getehdr 3 , -.Xr elf_flagdata 3 , -.Xr elf_getident 3 , -.Xr elf_update 3 , -.Xr elf_version 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 , -.Xr elf 5 diff --git a/contrib/elftoolchain/libelf/gelf_newphdr.3 b/contrib/elftoolchain/libelf/gelf_newphdr.3 deleted file mode 100644 index 2c014dce..00000000 --- a/contrib/elftoolchain/libelf/gelf_newphdr.3 +++ /dev/null @@ -1,144 +0,0 @@ -.\" Copyright (c) 2006-2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 12, 2019 -.Dt GELF_NEWPHDR 3 -.Os -.Sh NAME -.Nm elf32_newphdr , -.Nm elf64_newphdr , -.Nm gelf_newphdr -.Nd allocate an ELF program header table -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf32_Phdr *" -.Fn elf32_newphdr "Elf *elf" "size_t count" -.Ft "Elf64_Phdr *" -.Fn elf64_newphdr "Elf *elf" "size_t count" -.In gelf.h -.Ft "void *" -.Fn gelf_newphdr "Elf *elf" "size_t count" -.Sh DESCRIPTION -These functions allocate an ELF Program Header table -for an ELF descriptor. -.Vt Elf32_Phdr -and -.Vt Elf64_Phdr -descriptors are described further in -.Xr elf 5 . -.Pp -Functions -.Fn elf32_newphdr -and -.Fn elf64_newphdr -allocate a table of -.Ar count -.Vt Elf32_Phdr -and -.Vt Elf64_Phdr -descriptors respectively, -discarding any existing program header table -already present in the ELF descriptor -.Ar elf . -A value of zero for argument -.Ar count -may be used to delete an existing program header table -from an ELF descriptor. -.Pp -Function -.Fn gelf_newphdr -will return a table of -.Vt Elf32_Phdr -or -.Vt Elf64_Phdr -with -.Ar count -elements depending on the ELF class of ELF descriptor -.Ar elf . -.Pp -The functions set the -.Dv ELF_F_DIRTY -flag on the program header table. -All members of the returned array of Phdr structures -will be initialized to zero. -.Pp -After a successful call to these functions, the pointer returned -by a prior call to -.Fn elf32_getphdr -or -.Fn elf64_getphdr -on the same descriptor -.Ar elf -will no longer be valid. -.Sh RETURN VALUES -The functions a valid pointer if successful, or NULL in case an error -was encountered. -.Sh COMPATIBILITY -The -.Fn gelf_newphdr -function uses a type of -.Ft "void *" -for its returned value. -This differs from some other implementations of the -.Xr elf 3 -API, which use an -.Ft "unsigned long" -return type. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_CLASS -ELF descriptor -.Ar elf -was of an unrecognized class. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected. -.It Bq Er ELF_E_SEQUENCE -An executable header was not allocated for ELF descriptor -.Ar elf -before using these APIs. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf32_getphdr 3 , -.Xr elf32_newehdr 3 , -.Xr elf64_getphdr 3 , -.Xr elf64_newehdr 3 , -.Xr elf_flagphdr 3 , -.Xr elf_getphnum 3 , -.Xr gelf 3 , -.Xr gelf_getphdr 3 , -.Xr gelf_newehdr 3 , -.Xr elf 5 diff --git a/contrib/elftoolchain/libelf/gelf_phdr.c b/contrib/elftoolchain/libelf/gelf_phdr.c deleted file mode 100644 index 2ace8b14..00000000 --- a/contrib/elftoolchain/libelf/gelf_phdr.c +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf32_Phdr * -elf32_getphdr(Elf *e) -{ - return (_libelf_getphdr(e, ELFCLASS32)); -} - -Elf64_Phdr * -elf64_getphdr(Elf *e) -{ - return (_libelf_getphdr(e, ELFCLASS64)); -} - -GElf_Phdr * -gelf_getphdr(Elf *e, int index, GElf_Phdr *d) -{ - int ec; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - Elf32_Phdr *ep32; - Elf64_Phdr *ep64; - size_t phnum; - - if (d == NULL || e == NULL || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || - (e->e_kind != ELF_K_ELF) || index < 0 || - elf_getphdrnum(e, &phnum) < 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((size_t)index >= phnum) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - if ((eh32 = _libelf_ehdr(e, ELFCLASS32, 0)) == NULL || - ((ep32 = _libelf_getphdr(e, ELFCLASS32)) == NULL)) - return (NULL); - - ep32 += index; - - d->p_type = ep32->p_type; - d->p_offset = ep32->p_offset; - d->p_vaddr = (Elf64_Addr) ep32->p_vaddr; - d->p_paddr = (Elf64_Addr) ep32->p_paddr; - d->p_filesz = (Elf64_Xword) ep32->p_filesz; - d->p_memsz = (Elf64_Xword) ep32->p_memsz; - d->p_flags = ep32->p_flags; - d->p_align = (Elf64_Xword) ep32->p_align; - - } else { - if ((eh64 = _libelf_ehdr(e, ELFCLASS64, 0)) == NULL || - (ep64 = _libelf_getphdr(e, ELFCLASS64)) == NULL) - return (NULL); - - ep64 += index; - - *d = *ep64; - } - - return (d); -} - -Elf32_Phdr * -elf32_newphdr(Elf *e, size_t count) -{ - return (_libelf_newphdr(e, ELFCLASS32, count)); -} - -Elf64_Phdr * -elf64_newphdr(Elf *e, size_t count) -{ - return (_libelf_newphdr(e, ELFCLASS64, count)); -} - -void * -gelf_newphdr(Elf *e, size_t count) -{ - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - return (_libelf_newphdr(e, e->e_class, count)); -} - -int -gelf_update_phdr(Elf *e, int ndx, GElf_Phdr *s) -{ - int ec; - size_t phnum; - void *ehdr; - Elf32_Phdr *ph32; - Elf64_Phdr *ph64; - - if (s == NULL || e == NULL || e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || - elf_getphdrnum(e, &phnum) < 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (e->e_cmd == ELF_C_READ) { - LIBELF_SET_ERROR(MODE, 0); - return (0); - } - - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) - return (0); - - if (ndx < 0 || (size_t)ndx > phnum) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - (void) elf_flagphdr(e, ELF_C_SET, ELF_F_DIRTY); - - if (ec == ELFCLASS64) { - ph64 = e->e_u.e_elf.e_phdr.e_phdr64 + ndx; - *ph64 = *s; - return (1); - } - - ph32 = e->e_u.e_elf.e_phdr.e_phdr32 + ndx; - - ph32->p_type = s->p_type; - ph32->p_flags = s->p_flags; - LIBELF_COPY_U32(ph32, s, p_offset); - LIBELF_COPY_U32(ph32, s, p_vaddr); - LIBELF_COPY_U32(ph32, s, p_paddr); - LIBELF_COPY_U32(ph32, s, p_filesz); - LIBELF_COPY_U32(ph32, s, p_memsz); - LIBELF_COPY_U32(ph32, s, p_align); - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_rel.c b/contrib/elftoolchain/libelf/gelf_rel.c deleted file mode 100644 index c36586e1..00000000 --- a/contrib/elftoolchain/libelf/gelf_rel.c +++ /dev/null @@ -1,162 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Rel * -gelf_getrel(Elf_Data *ed, int ndx, GElf_Rel *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Rel *rel32; - Elf64_Rel *rel64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_REL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - rel32 = (Elf32_Rel *) d->d_data.d_buf + ndx; - - dst->r_offset = (Elf64_Addr) rel32->r_offset; - dst->r_info = ELF64_R_INFO( - (Elf64_Xword) ELF32_R_SYM(rel32->r_info), - ELF32_R_TYPE(rel32->r_info)); - - } else { - - rel64 = (Elf64_Rel *) d->d_data.d_buf + ndx; - - *dst = *rel64; - } - - return (dst); -} - -int -gelf_update_rel(Elf_Data *ed, int ndx, GElf_Rel *dr) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Rel *rel32; - Elf64_Rel *rel64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dr == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_REL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - rel32 = (Elf32_Rel *) d->d_data.d_buf + ndx; - - LIBELF_COPY_U32(rel32, dr, r_offset); - - if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) || - ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) { - LIBELF_SET_ERROR(RANGE, 0); - return (0); - } - rel32->r_info = ELF32_R_INFO( - (Elf32_Word) ELF64_R_SYM(dr->r_info), - (Elf32_Word) ELF64_R_TYPE(dr->r_info)); - } else { - rel64 = (Elf64_Rel *) d->d_data.d_buf + ndx; - - *rel64 = *dr; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_rela.c b/contrib/elftoolchain/libelf/gelf_rela.c deleted file mode 100644 index eb50b01d..00000000 --- a/contrib/elftoolchain/libelf/gelf_rela.c +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Rela * -gelf_getrela(Elf_Data *ed, int ndx, GElf_Rela *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Rela *rela32; - Elf64_Rela *rela64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_RELA) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - rela32 = (Elf32_Rela *) d->d_data.d_buf + ndx; - - dst->r_offset = (Elf64_Addr) rela32->r_offset; - dst->r_info = ELF64_R_INFO( - (Elf64_Xword) ELF32_R_SYM(rela32->r_info), - ELF32_R_TYPE(rela32->r_info)); - dst->r_addend = (Elf64_Sxword) rela32->r_addend; - - } else { - - rela64 = (Elf64_Rela *) d->d_data.d_buf + ndx; - - *dst = *rela64; - } - - return (dst); -} - -int -gelf_update_rela(Elf_Data *ed, int ndx, GElf_Rela *dr) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Rela *rela32; - Elf64_Rela *rela64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dr == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_RELA) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - rela32 = (Elf32_Rela *) d->d_data.d_buf + ndx; - - LIBELF_COPY_U32(rela32, dr, r_offset); - - if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) || - ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) { - LIBELF_SET_ERROR(RANGE, 0); - return (0); - } - rela32->r_info = ELF32_R_INFO( - (Elf32_Word) ELF64_R_SYM(dr->r_info), - (Elf32_Word) ELF64_R_TYPE(dr->r_info)); - - LIBELF_COPY_S32(rela32, dr, r_addend); - } else { - rela64 = (Elf64_Rela *) d->d_data.d_buf + ndx; - - *rela64 = *dr; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_shdr.c b/contrib/elftoolchain/libelf/gelf_shdr.c deleted file mode 100644 index 97ad8475..00000000 --- a/contrib/elftoolchain/libelf/gelf_shdr.c +++ /dev/null @@ -1,130 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf32_Shdr * -elf32_getshdr(Elf_Scn *s) -{ - return (_libelf_getshdr(s, ELFCLASS32)); -} - -Elf64_Shdr * -elf64_getshdr(Elf_Scn *s) -{ - return (_libelf_getshdr(s, ELFCLASS64)); -} - -GElf_Shdr * -gelf_getshdr(Elf_Scn *s, GElf_Shdr *d) -{ - int ec; - void *sh; - Elf32_Shdr *sh32; - Elf64_Shdr *sh64; - - if (d == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((sh = _libelf_getshdr(s, ELFCLASSNONE)) == NULL) - return (NULL); - - ec = s->s_elf->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) { - sh32 = (Elf32_Shdr *) sh; - - d->sh_name = sh32->sh_name; - d->sh_type = sh32->sh_type; - d->sh_flags = (Elf64_Xword) sh32->sh_flags; - d->sh_addr = (Elf64_Addr) sh32->sh_addr; - d->sh_offset = (Elf64_Off) sh32->sh_offset; - d->sh_size = (Elf64_Xword) sh32->sh_size; - d->sh_link = sh32->sh_link; - d->sh_info = sh32->sh_info; - d->sh_addralign = (Elf64_Xword) sh32->sh_addralign; - d->sh_entsize = (Elf64_Xword) sh32->sh_entsize; - } else { - sh64 = (Elf64_Shdr *) sh; - *d = *sh64; - } - - return (d); -} - -int -gelf_update_shdr(Elf_Scn *scn, GElf_Shdr *s) -{ - int ec; - Elf *e; - Elf32_Shdr *sh32; - - - if (s == NULL || scn == NULL || (e = scn->s_elf) == NULL || - e->e_kind != ELF_K_ELF || - ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (e->e_cmd == ELF_C_READ) { - LIBELF_SET_ERROR(MODE, 0); - return (0); - } - - (void) elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY); - - if (ec == ELFCLASS64) { - scn->s_shdr.s_shdr64 = *s; - return (1); - } - - sh32 = &scn->s_shdr.s_shdr32; - - sh32->sh_name = s->sh_name; - sh32->sh_type = s->sh_type; - LIBELF_COPY_U32(sh32, s, sh_flags); - LIBELF_COPY_U32(sh32, s, sh_addr); - LIBELF_COPY_U32(sh32, s, sh_offset); - LIBELF_COPY_U32(sh32, s, sh_size); - sh32->sh_link = s->sh_link; - sh32->sh_info = s->sh_info; - LIBELF_COPY_U32(sh32, s, sh_addralign); - LIBELF_COPY_U32(sh32, s, sh_entsize); - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_sym.c b/contrib/elftoolchain/libelf/gelf_sym.c deleted file mode 100644 index d4bcf509..00000000 --- a/contrib/elftoolchain/libelf/gelf_sym.c +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Sym * -gelf_getsym(Elf_Data *ed, int ndx, GElf_Sym *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Sym *sym32; - Elf64_Sym *sym64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_SYM) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_SYM, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - sym32 = (Elf32_Sym *) d->d_data.d_buf + ndx; - - dst->st_name = sym32->st_name; - dst->st_value = (Elf64_Addr) sym32->st_value; - dst->st_size = (Elf64_Xword) sym32->st_size; - dst->st_info = sym32->st_info; - dst->st_other = sym32->st_other; - dst->st_shndx = sym32->st_shndx; - } else { - sym64 = (Elf64_Sym *) d->d_data.d_buf + ndx; - - *dst = *sym64; - } - - return (dst); -} - -int -gelf_update_sym(Elf_Data *ed, int ndx, GElf_Sym *gs) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - Elf32_Sym *sym32; - Elf64_Sym *sym64; - struct _Libelf_Data *d; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || gs == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_SYM) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_SYM, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - sym32 = (Elf32_Sym *) d->d_data.d_buf + ndx; - - sym32->st_name = gs->st_name; - sym32->st_info = gs->st_info; - sym32->st_other = gs->st_other; - sym32->st_shndx = gs->st_shndx; - - LIBELF_COPY_U32(sym32, gs, st_value); - LIBELF_COPY_U32(sym32, gs, st_size); - } else { - sym64 = (Elf64_Sym *) d->d_data.d_buf + ndx; - - *sym64 = *gs; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_syminfo.c b/contrib/elftoolchain/libelf/gelf_syminfo.c deleted file mode 100644 index 1b24d61d..00000000 --- a/contrib/elftoolchain/libelf/gelf_syminfo.c +++ /dev/null @@ -1,152 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Syminfo * -gelf_getsyminfo(Elf_Data *ed, int ndx, GElf_Syminfo *dst) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - struct _Libelf_Data *d; - Elf32_Syminfo *syminfo32; - Elf64_Syminfo *syminfo64; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || dst == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_SYMINFO) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - - syminfo32 = (Elf32_Syminfo *) d->d_data.d_buf + ndx; - - dst->si_boundto = syminfo32->si_boundto; - dst->si_flags = syminfo32->si_flags; - - } else { - - syminfo64 = (Elf64_Syminfo *) d->d_data.d_buf + ndx; - - *dst = *syminfo64; - } - - return (dst); -} - -int -gelf_update_syminfo(Elf_Data *ed, int ndx, GElf_Syminfo *gs) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - struct _Libelf_Data *d; - Elf32_Syminfo *syminfo32; - Elf64_Syminfo *syminfo64; - - d = (struct _Libelf_Data *) ed; - - if (d == NULL || ndx < 0 || gs == NULL || - (scn = d->d_scn) == NULL || - (e = scn->s_elf) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_SYMINFO) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= d->d_data.d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if (ec == ELFCLASS32) { - syminfo32 = (Elf32_Syminfo *) d->d_data.d_buf + ndx; - - syminfo32->si_boundto = gs->si_boundto; - syminfo32->si_flags = gs->si_flags; - - } else { - syminfo64 = (Elf64_Syminfo *) d->d_data.d_buf + ndx; - - *syminfo64 = *gs; - } - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_symshndx.c b/contrib/elftoolchain/libelf/gelf_symshndx.c deleted file mode 100644 index 81789521..00000000 --- a/contrib/elftoolchain/libelf/gelf_symshndx.c +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -GElf_Sym * -gelf_getsymshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *dst, - Elf32_Word *shindex) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - struct _Libelf_Data *ld, *lid; - - ld = (struct _Libelf_Data *) d; - lid = (struct _Libelf_Data *) id; - - if (gelf_getsym(d, ndx, dst) == 0) - return (NULL); - - if (lid == NULL || (scn = lid->d_scn) == NULL || - (e = scn->s_elf) == NULL || (e != ld->d_scn->s_elf) || - shindex == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_WORD || - id->d_type != ELF_T_WORD) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_WORD, ec, e->e_version)) == 0) - return (NULL); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= id->d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - *shindex = ((Elf32_Word *) id->d_buf)[ndx]; - - return (dst); -} - -int -gelf_update_symshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *gs, - Elf32_Word xindex) -{ - int ec; - Elf *e; - size_t msz; - Elf_Scn *scn; - uint32_t sh_type; - struct _Libelf_Data *ld, *lid; - - ld = (struct _Libelf_Data *) d; - lid = (struct _Libelf_Data *) id; - - if (gelf_update_sym(d, ndx, gs) == 0) - return (0); - - if (lid == NULL || (scn = lid->d_scn) == NULL || - (e = scn->s_elf) == NULL || (e != ld->d_scn->s_elf)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - ec = e->e_class; - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (ec == ELFCLASS32) - sh_type = scn->s_shdr.s_shdr32.sh_type; - else - sh_type = scn->s_shdr.s_shdr64.sh_type; - - if (_libelf_xlate_shtype(sh_type) != ELF_T_WORD || - d->d_type != ELF_T_WORD) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - if ((msz = _libelf_msize(ELF_T_WORD, ec, e->e_version)) == 0) - return (0); - - assert(ndx >= 0); - - if (msz * (size_t) ndx >= id->d_size) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0); - } - - *(((Elf32_Word *) id->d_buf) + ndx) = xindex; - - return (1); -} diff --git a/contrib/elftoolchain/libelf/gelf_update_ehdr.3 b/contrib/elftoolchain/libelf/gelf_update_ehdr.3 deleted file mode 100644 index 5eae1156..00000000 --- a/contrib/elftoolchain/libelf/gelf_update_ehdr.3 +++ /dev/null @@ -1,123 +0,0 @@ -.\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 27, 2006 -.Dt GELF_UPDATE_EHDR 3 -.Os -.Sh NAME -.Nm gelf_update_ehdr , -.Nm gelf_update_phdr , -.Nm gelf_update_shdr -.Nd update underlying ELF data structures -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In gelf.h -.Ft int -.Fn gelf_update_ehdr "Elf *elf" "GElf_Ehdr *ehdr" -.Ft int -.Fn gelf_update_phdr "Elf *elf" "int ndx" "GElf_Phdr *phdr" -.Ft int -.Fn gelf_update_shdr "Elf_Scn *scn" "GElf_Shdr *shdr" -.Sh DESCRIPTION -These functions are used to update ELF data structures on the underlying -ELF descriptor. -Class-dependent data structures in the underlying ELF descriptor -are updated using the data in the class-independent GElf descriptors -and the underlying ELF data structures are marked -.Dq dirty . -The conversion process signals an error if the values being copied -to the target ELF data structure would exceed representation -limits. -GElf descriptors are described in -.Xr gelf 3 . -.Pp -Function -.Fn gelf_update_ehdr -updates the ELF Executable Header with the values in the -class-independent executable header -.Ar ehdr . -.Pp -Function -.Fn gelf_update_phdr -updates the ELF Program Header structure at index -.Ar ndx -with the values in the class-independent program header -.Ar phdr . -.Pp -Function -.Fn gelf_update_shdr -updates the ELF Section Header structure associated with section -descriptor -.Ar scn -with the values in argument -.Ar shdr . -.Sh RETURN VALUES -These functions return a non-zero integer on success, or zero in case -of an error. -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar elf , -.Ar ehdr , -.Ar phdr , -.Ar scn , -or -.Ar shdr -were NULL. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -was not a descriptor for an ELF object. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar elf -had an unsupported ELF class. -.It Bq Er ELF_E_ARGUMENT -Argument -.Ar ndx -exceeded the number of entries in the program header table. -.It Bq Er ELF_E_ARGUMENT -Section descriptor -.Ar scn -was not associated with an ELF descriptor. -.It Bq Er ELF_E_MODE -ELF descriptor -.Ar elf -was not opened for writing or updating. -.It Bq Er ELF_E_RESOURCE -An out of memory condition was detected. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_flagelf 3 , -.Xr elf_flagphdr 3 , -.Xr elf_flagshdr 3 , -.Xr gelf 3 , -.Xr gelf_getehdr 3 , -.Xr gelf_getphdr 3 , -.Xr gelf_getshdr 3 diff --git a/contrib/elftoolchain/libelf/gelf_xlate.c b/contrib/elftoolchain/libelf/gelf_xlate.c deleted file mode 100644 index b02c520a..00000000 --- a/contrib/elftoolchain/libelf/gelf_xlate.c +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2018 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf_Data * -elf32_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) -{ - return _libelf_xlate(dst, src, encoding, ELFCLASS32, EM_NONE, - ELF_TOFILE); -} - -Elf_Data * -elf64_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) -{ - return _libelf_xlate(dst, src, encoding, ELFCLASS64, EM_NONE, - ELF_TOFILE); -} - -Elf_Data * -elf32_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) -{ - return _libelf_xlate(dst, src, encoding, ELFCLASS32, EM_NONE, - ELF_TOMEMORY); -} - -Elf_Data * -elf64_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) -{ - return _libelf_xlate(dst, src, encoding, ELFCLASS64, EM_NONE, - ELF_TOMEMORY); -} - -Elf_Data * -gelf_xlatetom(Elf *e, Elf_Data *dst, const Elf_Data *src, - unsigned int encoding) -{ - if (e != NULL) - return (_libelf_xlate(dst, src, encoding, e->e_class, - _libelf_elfmachine(e), ELF_TOMEMORY)); - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); -} - -Elf_Data * -gelf_xlatetof(Elf *e, Elf_Data *dst, const Elf_Data *src, - unsigned int encoding) -{ - if (e != NULL) - return (_libelf_xlate(dst, src, encoding, e->e_class, - _libelf_elfmachine(e), ELF_TOFILE)); - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); -} diff --git a/contrib/elftoolchain/libelf/gelf_xlatetof.3 b/contrib/elftoolchain/libelf/gelf_xlatetof.3 deleted file mode 100644 index d63249bb..00000000 --- a/contrib/elftoolchain/libelf/gelf_xlatetof.3 +++ /dev/null @@ -1,277 +0,0 @@ -.\" Copyright (c) 2006,2008,2018 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd October 11, 2018 -.Dt GELF_XLATETOF 3 -.Os -.Sh NAME -.Nm elf32_xlate , -.Nm elf64_xlate , -.Nm gelf_xlate -.Nd translate data between files and memory -.Sh LIBRARY -.Lb libelf -.Sh SYNOPSIS -.In libelf.h -.Ft "Elf_Data *" -.Fn elf32_xlatetof "Elf_Data *dst" "Elf_Data *src" "unsigned int file_encoding" -.Ft "Elf_Data *" -.Fn elf32_xlatetom "Elf_Data *dst" "Elf_Data *src" "unsigned int file_encoding" -.Ft "Elf_Data *" -.Fn elf64_xlatetof "Elf_Data *dst" "Elf_Data *src" "unsigned int file_encoding" -.Ft "Elf_Data *" -.Fn elf64_xlatetom "Elf_Data *dst" "Elf_Data *src" "unsigned int file_encoding" -.In gelf.h -.Ft "Elf_Data *" -.Fo gelf_xlatetof -.Fa "Elf *elf" -.Fa "Elf_Data *dst" -.Fa "Elf_Data *src" -.Fa "unsigned int file_encoding" -.Fc -.Ft "Elf_Data *" -.Fo gelf_xlatetom -.Fa "Elf *elf" -.Fa "Elf_Data *dst" -.Fa "Elf_Data *src" -.Fa "unsigned int file_encoding" -.Fc -.Sh DESCRIPTION -These functions translate between the file and memory representations -of ELF data structures. -The in-memory representation of an ELF data structure would conform to -the byte ordering and data alignment restrictions dictated by the host -processor. -As described in -.Xr elf 3 , -the file representation of this data structure could use a different byte -ordering from that of the host, or could use a different layout within -the file. -.Pp -Functions -.Fn elf32_xlatetom , -.Fn elf64_xlatetom , -and -.Fn gelf_xlatetom -translate data from file representations to native, in-memory representations. -Functions -.Fn elf32_xlatetof , -.Fn elf64_xlatetof , -and -.Fn gelf_xlatetof -translate data from in-memory representations to file representations. -.Pp -Argument -.Ar src -denotes an -.Vt Elf_Data -descriptor describing the source to be translated. -The following elements of the descriptor need to be set before -invoking these functions: -.Bl -hang -offset indent -.It Va d_buf -Set to a valid pointer value denoting the beginning of the data area -to be translated. -.It Va d_size -Set to the total size in bytes of the source data area to be -translated. -.It Va d_type -Set to the type of the source data being translated. -This value is one of the values defined in the -.Vt Elf_Type -enumeration. -The -.Vt Elf_Type -enumeration is described in -.Xr elf 3 . -.It Va d_version -Set to the version number of the ELF data structures being -translated. -Currently only version -.Dv EV_CURRENT -is supported. -.El -.Pp -Argument -.Ar dst -describes the destination buffer. -The following elements of the -.Vt Elf_Data -descriptor need to be set before invoking these functions: -.Bl -hang -offset indent -.It Va d_buf -Set to a valid pointer value that denotes the start of the destination -buffer that will hold translated data. -This value may be the same as that of the source buffer, in which case -an in-place conversion will be attempted. -.It Va d_size -Set to the size of the destination buffer in bytes. -This value will be modified if the function call succeeds. -.It Va d_version -Set to the desired version number of the destination. -Currently only version -.Dv EV_CURRENT -is supported. -.El -.Pp -These translations routines allow the source and destination buffers -to coincide, in which case an in-place translation will be done -if the destination is large enough to hold the translated data. -Other kinds of overlap between the source and destination buffers -are not permitted. -.Pp -On successful completion of the translation request the following -fields of the -.Ar dst -descriptor would be modified: -.Bl -hang -offset indent -.It Va d_size -Set to the size in bytes of the translated data. -.It Va d_type -Set to the -.Va d_type -value of the source data descriptor. -.El -.Pp -Argument -.Ar file_encoding -specifies the encoding in which the file objects are represented. -It must be one of: -.Bl -hang -offset indent -.It Dv ELFDATANONE -File objects use the library's native byte ordering. -.It Dv ELFDATA2LSB -File objects use a little-endian ordering. -.It Dv ELFDATA2MSB -File objects use a big-endian ordering. -.El -.Pp -The functions -.Fn gelf_xlatetof -and -.Fn gelf_xlatetom -select the appropriate translation scheme based on the properties of -argument -.Ar elf . -.Sh RETURN VALUES -These functions return argument -.Ar dst -if successful, or NULL in case of an error. -.Sh EXAMPLES -To translate a -.Vt GElf_Rel -structure to its LSB file representation use: -.Bd -literal -offset indent -Elf_Data dst, src; -GElf_Rel rel; -Elf *e; - -e = ...; /* See elf_begin(3). */ - -/* Set up the 'src' descriptor. */ -memset(&src, 0, sizeof src); -src.d_buf = &rel; -src.d_size = sizeof(rel); -src.d_type = ELF_T_REL; -src.d_version = EV_CURRENT; - -/* Set up the 'dst' descriptor. */ -memset(&dst, 0, sizeof dst); -dst.d_buf = filebuf; -dst.d_size = gelf_fsize(e, ELF_T_REL, 1, EV_CURRENT); -dst.d_version = EV_CURRENT; - -if (gelf_xlatetof(e, &dst, &src, ELFDATA2LSB) == NULL) { - printf("error: %s", elf_errmsg(0)); -} -.Ed -.Sh ERRORS -These functions may fail with the following errors: -.Bl -tag -width "[ELF_E_RESOURCE]" -.It Bq Er ELF_E_ARGUMENT -One of arguments -.Ar src , -.Ar dst -or -.Ar elf -was NULL. -.It Bq Er ELF_E_ARGUMENT -Arguments -.Ar src -and -.Ar dst -were equal. -.It Bq Er ELF_E_ARGUMENT -The desired encoding parameter was not one of -.Dv ELFDATANONE , -.Dv ELFDATA2LSB -or -.Dv ELFDATA2MSB . -.It Bq Er ELF_E_ARGUMENT -The -.Ar d_type -field of argument -.Ar src -specified an unsupported type. -.It Bq Er ELF_E_DATA -The -.Ar src -argument specified a buffer size that was not an integral multiple of -its underlying type. -.It Bq Er ELF_E_DATA -The -.Ar dst -argument specified a buffer size that was too small. -.It Bq Er ELF_E_DATA -Argument -.Ar dst -specified a destination buffer that overlaps with the source -buffer. -.It Bq Er ELF_E_DATA -The destination buffer for a conversion to memory had an alignment -inappropriate for the underlying ELF type. -.It Bq Er ELF_E_DATA -The source buffer for a conversion to file had an alignment -inappropriate for the underlying ELF type. -.It Bq Er ELF_E_UNIMPL -The version numbers for arguments -.Ar dst -and -.Ar src -were not identical. -.It Bq Er ELF_E_UNIMPL -The argument -.Ar src -requested conversion for a type which is not currently -supported. -.It Bq Er ELF_E_VERSION -Argument -.Ar src -specified an unsupported version number. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_getdata 3 , -.Xr gelf 3 diff --git a/contrib/elftoolchain/libelf/libelf.h b/contrib/elftoolchain/libelf/libelf.h deleted file mode 100644 index 8d7059b8..00000000 --- a/contrib/elftoolchain/libelf/libelf.h +++ /dev/null @@ -1,256 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _LIBELF_H_ -#define _LIBELF_H_ - -#include - -#include - -/* Library private data structures */ -typedef struct _Elf Elf; -typedef struct _Elf_Scn Elf_Scn; - -/* File types */ -typedef enum { - ELF_K_NONE = 0, - ELF_K_AR, /* `ar' archives */ - ELF_K_COFF, /* COFF files (unsupported) */ - ELF_K_ELF, /* ELF files */ - ELF_K_NUM -} Elf_Kind; - -#define ELF_K_FIRST ELF_K_NONE -#define ELF_K_LAST ELF_K_NUM - -/* Data types */ -typedef enum { - ELF_T_ADDR, - ELF_T_BYTE, - ELF_T_CAP, - ELF_T_DYN, - ELF_T_EHDR, - ELF_T_HALF, - ELF_T_LWORD, - ELF_T_MOVE, - ELF_T_MOVEP, - ELF_T_NOTE, - ELF_T_OFF, - ELF_T_PHDR, - ELF_T_REL, - ELF_T_RELA, - ELF_T_SHDR, - ELF_T_SWORD, - ELF_T_SXWORD, - ELF_T_SYMINFO, - ELF_T_SYM, - ELF_T_VDEF, - ELF_T_VNEED, - ELF_T_WORD, - ELF_T_XWORD, - ELF_T_GNUHASH, /* GNU style hash tables. */ - ELF_T_NUM -} Elf_Type; - -#define ELF_T_FIRST ELF_T_ADDR -#define ELF_T_LAST ELF_T_GNUHASH - -/* Commands */ -typedef enum { - ELF_C_NULL = 0, - ELF_C_CLR, - ELF_C_FDDONE, - ELF_C_FDREAD, - ELF_C_RDWR, - ELF_C_READ, - ELF_C_SET, - ELF_C_WRITE, - ELF_C_NUM -} Elf_Cmd; - -#define ELF_C_FIRST ELF_C_NULL -#define ELF_C_LAST ELF_C_NUM - -/* - * An `Elf_Data' structure describes data in an - * ELF section. - */ -typedef struct _Elf_Data { - /* - * `Public' members that are part of the ELF(3) API. - */ - uint64_t d_align; - void *d_buf; - uint64_t d_off; - uint64_t d_size; - Elf_Type d_type; - unsigned int d_version; -} Elf_Data; - -/* - * An `Elf_Arhdr' structure describes an archive - * header. - */ -typedef struct { - time_t ar_date; - char *ar_name; /* archive member name */ - gid_t ar_gid; - mode_t ar_mode; - char *ar_rawname; /* 'raw' member name */ - size_t ar_size; - uid_t ar_uid; - - /* - * Members that are not part of the public API. - */ - unsigned int ar_flags; -} Elf_Arhdr; - -/* - * An `Elf_Arsym' describes an entry in the archive - * symbol table. - */ -typedef struct { - off_t as_off; /* byte offset to member's header */ - unsigned long as_hash; /* elf_hash() value for name */ - char *as_name; /* null terminated symbol name */ -} Elf_Arsym; - -/* - * Error numbers. - */ - -enum Elf_Error { - ELF_E_NONE, /* No error */ - ELF_E_ARCHIVE, /* Malformed ar(1) archive */ - ELF_E_ARGUMENT, /* Invalid argument */ - ELF_E_CLASS, /* Mismatched ELF class */ - ELF_E_DATA, /* Invalid data descriptor */ - ELF_E_HEADER, /* Missing or malformed ELF header */ - ELF_E_IO, /* I/O error */ - ELF_E_LAYOUT, /* Layout constraint violation */ - ELF_E_MODE, /* Wrong mode for ELF descriptor */ - ELF_E_RANGE, /* Value out of range */ - ELF_E_RESOURCE, /* Resource exhaustion */ - ELF_E_SECTION, /* Invalid section descriptor */ - ELF_E_SEQUENCE, /* API calls out of sequence */ - ELF_E_UNIMPL, /* Feature is unimplemented */ - ELF_E_VERSION, /* Unknown API version */ - ELF_E_NUM /* Max error number */ -}; - -/* - * Flags defined by the API. - */ - -#define ELF_F_LAYOUT 0x001U /* application will layout the file */ -#define ELF_F_DIRTY 0x002U /* a section or ELF file is dirty */ - -/* ELF(3) API extensions. */ -#define ELF_F_ARCHIVE 0x100U /* archive creation */ -#define ELF_F_ARCHIVE_SYSV 0x200U /* SYSV style archive */ - -#ifdef __cplusplus -extern "C" { -#endif -Elf *elf_begin(int _fd, Elf_Cmd _cmd, Elf *_elf); -int elf_cntl(Elf *_elf, Elf_Cmd _cmd); -int elf_end(Elf *_elf); -const char *elf_errmsg(int _error); -int elf_errno(void); -void elf_fill(int _fill); -unsigned int elf_flagarhdr(Elf_Arhdr *_arh, Elf_Cmd _cmd, - unsigned int _flags); -unsigned int elf_flagdata(Elf_Data *_data, Elf_Cmd _cmd, - unsigned int _flags); -unsigned int elf_flagehdr(Elf *_elf, Elf_Cmd _cmd, unsigned int _flags); -unsigned int elf_flagelf(Elf *_elf, Elf_Cmd _cmd, unsigned int _flags); -unsigned int elf_flagphdr(Elf *_elf, Elf_Cmd _cmd, unsigned int _flags); -unsigned int elf_flagscn(Elf_Scn *_scn, Elf_Cmd _cmd, unsigned int _flags); -unsigned int elf_flagshdr(Elf_Scn *_scn, Elf_Cmd _cmd, unsigned int _flags); -Elf_Arhdr *elf_getarhdr(Elf *_elf); -Elf_Arsym *elf_getarsym(Elf *_elf, size_t *_ptr); -off_t elf_getbase(Elf *_elf); -Elf_Data *elf_getdata(Elf_Scn *, Elf_Data *); -char *elf_getident(Elf *_elf, size_t *_ptr); -int elf_getphdrnum(Elf *_elf, size_t *_dst); -int elf_getphnum(Elf *_elf, size_t *_dst); /* Deprecated */ -Elf_Scn *elf_getscn(Elf *_elf, size_t _index); -int elf_getshdrnum(Elf *_elf, size_t *_dst); -int elf_getshnum(Elf *_elf, size_t *_dst); /* Deprecated */ -int elf_getshdrstrndx(Elf *_elf, size_t *_dst); -int elf_getshstrndx(Elf *_elf, size_t *_dst); /* Deprecated */ -unsigned long elf_hash(const char *_name); -Elf_Kind elf_kind(Elf *_elf); -Elf *elf_memory(char *_image, size_t _size); -size_t elf_ndxscn(Elf_Scn *_scn); -Elf_Data *elf_newdata(Elf_Scn *_scn); -Elf_Scn *elf_newscn(Elf *_elf); -Elf_Scn *elf_nextscn(Elf *_elf, Elf_Scn *_scn); -Elf_Cmd elf_next(Elf *_elf); -Elf *elf_open(int _fd); -Elf *elf_openmemory(char *_image, size_t _size); -off_t elf_rand(Elf *_elf, off_t _off); -Elf_Data *elf_rawdata(Elf_Scn *_scn, Elf_Data *_data); -char *elf_rawfile(Elf *_elf, size_t *_size); -int elf_setshstrndx(Elf *_elf, size_t _shnum); -char *elf_strptr(Elf *_elf, size_t _section, size_t _offset); -off_t elf_update(Elf *_elf, Elf_Cmd _cmd); -unsigned int elf_version(unsigned int _version); - -long elf32_checksum(Elf *_elf); -size_t elf32_fsize(Elf_Type _type, size_t _count, - unsigned int _version); -Elf32_Ehdr *elf32_getehdr(Elf *_elf); -Elf32_Phdr *elf32_getphdr(Elf *_elf); -Elf32_Shdr *elf32_getshdr(Elf_Scn *_scn); -Elf32_Ehdr *elf32_newehdr(Elf *_elf); -Elf32_Phdr *elf32_newphdr(Elf *_elf, size_t _count); -Elf_Data *elf32_xlatetof(Elf_Data *_dst, const Elf_Data *_src, - unsigned int _enc); -Elf_Data *elf32_xlatetom(Elf_Data *_dst, const Elf_Data *_src, - unsigned int _enc); - -long elf64_checksum(Elf *_elf); -size_t elf64_fsize(Elf_Type _type, size_t _count, - unsigned int _version); -Elf64_Ehdr *elf64_getehdr(Elf *_elf); -Elf64_Phdr *elf64_getphdr(Elf *_elf); -Elf64_Shdr *elf64_getshdr(Elf_Scn *_scn); -Elf64_Ehdr *elf64_newehdr(Elf *_elf); -Elf64_Phdr *elf64_newphdr(Elf *_elf, size_t _count); -Elf_Data *elf64_xlatetof(Elf_Data *_dst, const Elf_Data *_src, - unsigned int _enc); -Elf_Data *elf64_xlatetom(Elf_Data *_dst, const Elf_Data *_src, - unsigned int _enc); -#ifdef __cplusplus -} -#endif - -#endif /* _LIBELF_H_ */ diff --git a/contrib/elftoolchain/libelf/libelf_align.c b/contrib/elftoolchain/libelf/libelf_align.c deleted file mode 100644 index f74789f5..00000000 --- a/contrib/elftoolchain/libelf/libelf_align.c +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -struct align { - unsigned int a32; - unsigned int a64; -}; - -#ifdef __GNUC__ -#define MALIGN(N) { \ - .a32 = __alignof__(Elf32_##N), \ - .a64 = __alignof__(Elf64_##N) \ - } -#define MALIGN64(V) { \ - .a32 = 0, \ - .a64 = __alignof__(Elf64_##V) \ - } -#define MALIGN_WORD() { \ - .a32 = __alignof__(int32_t), \ - .a64 = __alignof__(int64_t) \ - } -#else -#error Need the __alignof__ builtin. -#endif -#define UNSUPPORTED() { \ - .a32 = 0, \ - .a64 = 0 \ - } - -static struct align malign[ELF_T_NUM] = { - [ELF_T_ADDR] = MALIGN(Addr), - [ELF_T_BYTE] = { .a32 = 1, .a64 = 1 }, - [ELF_T_CAP] = MALIGN(Cap), - [ELF_T_DYN] = MALIGN(Dyn), - [ELF_T_EHDR] = MALIGN(Ehdr), - [ELF_T_HALF] = MALIGN(Half), - [ELF_T_LWORD] = MALIGN(Lword), - [ELF_T_MOVE] = MALIGN(Move), - [ELF_T_MOVEP] = UNSUPPORTED(), - [ELF_T_NOTE] = MALIGN(Nhdr), - [ELF_T_OFF] = MALIGN(Off), - [ELF_T_PHDR] = MALIGN(Phdr), - [ELF_T_REL] = MALIGN(Rel), - [ELF_T_RELA] = MALIGN(Rela), - [ELF_T_SHDR] = MALIGN(Shdr), - [ELF_T_SWORD] = MALIGN(Sword), - [ELF_T_SXWORD] = MALIGN64(Sxword), - [ELF_T_SYM] = MALIGN(Sym), - [ELF_T_SYMINFO] = MALIGN(Syminfo), - [ELF_T_VDEF] = MALIGN(Verdef), - [ELF_T_VNEED] = MALIGN(Verneed), - [ELF_T_WORD] = MALIGN(Word), - [ELF_T_XWORD] = MALIGN64(Xword), - [ELF_T_GNUHASH] = MALIGN_WORD() -}; - -unsigned int -_libelf_malign(Elf_Type t, int elfclass) -{ - if (t >= ELF_T_NUM || (int) t < 0) - return (0); - - return (elfclass == ELFCLASS32 ? malign[t].a32 : - malign[t].a64); -} - -#define FALIGN(A32,A64) { .a32 = (A32), .a64 = (A64) } - -static struct align falign[ELF_T_NUM] = { - [ELF_T_ADDR] = FALIGN(4,8), - [ELF_T_BYTE] = FALIGN(1,1), - [ELF_T_CAP] = FALIGN(4,8), - [ELF_T_DYN] = FALIGN(4,8), - [ELF_T_EHDR] = FALIGN(4,8), - [ELF_T_HALF] = FALIGN(2,2), - [ELF_T_LWORD] = FALIGN(8,8), - [ELF_T_MOVE] = FALIGN(8,8), - [ELF_T_MOVEP] = UNSUPPORTED(), - [ELF_T_NOTE] = FALIGN(4,4), - [ELF_T_OFF] = FALIGN(4,8), - [ELF_T_PHDR] = FALIGN(4,8), - [ELF_T_REL] = FALIGN(4,8), - [ELF_T_RELA] = FALIGN(4,8), - [ELF_T_SHDR] = FALIGN(4,8), - [ELF_T_SWORD] = FALIGN(4,4), - [ELF_T_SXWORD] = FALIGN(0,8), - [ELF_T_SYM] = FALIGN(4,8), - [ELF_T_SYMINFO] = FALIGN(2,2), - [ELF_T_VDEF] = FALIGN(4,4), - [ELF_T_VNEED] = FALIGN(4,4), - [ELF_T_WORD] = FALIGN(4,4), - [ELF_T_XWORD] = FALIGN(0,8), - [ELF_T_GNUHASH] = FALIGN(4,8) -}; - -unsigned int -_libelf_falign(Elf_Type t, int elfclass) -{ - if (t >= ELF_T_NUM || (int) t < 0) - return (0); - - return (elfclass == ELFCLASS32 ? falign[t].a32 : - falign[t].a64); -} diff --git a/contrib/elftoolchain/libelf/libelf_allocate.c b/contrib/elftoolchain/libelf/libelf_allocate.c deleted file mode 100644 index 24daddc3..00000000 --- a/contrib/elftoolchain/libelf/libelf_allocate.c +++ /dev/null @@ -1,195 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Internal APIs - */ - -#include -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -Elf * -_libelf_allocate_elf(void) -{ - Elf *e; - - if ((e = calloc((size_t) 1, sizeof(*e))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, errno); - return NULL; - } - - e->e_activations = 1; - e->e_byteorder = ELFDATANONE; - e->e_class = ELFCLASSNONE; - e->e_cmd = ELF_C_NULL; - e->e_fd = -1; - e->e_kind = ELF_K_NONE; - e->e_version = LIBELF_PRIVATE(version); - - return (e); -} - -void -_libelf_init_elf(Elf *e, Elf_Kind kind) -{ - assert(e != NULL); - assert(e->e_kind == ELF_K_NONE); - - e->e_kind = kind; - - switch (kind) { - case ELF_K_ELF: - STAILQ_INIT(&e->e_u.e_elf.e_scn); - break; - default: - break; - } -} - -void -_libelf_release_elf(Elf *e) -{ - Elf_Arhdr *arh; - - switch (e->e_kind) { - case ELF_K_AR: - free(e->e_u.e_ar.e_symtab); - break; - - case ELF_K_ELF: - switch (e->e_class) { - case ELFCLASS32: - free(e->e_u.e_elf.e_ehdr.e_ehdr32); - free(e->e_u.e_elf.e_phdr.e_phdr32); - break; - case ELFCLASS64: - free(e->e_u.e_elf.e_ehdr.e_ehdr64); - free(e->e_u.e_elf.e_phdr.e_phdr64); - break; - } - - assert(STAILQ_EMPTY(&e->e_u.e_elf.e_scn)); - - if (e->e_flags & LIBELF_F_AR_HEADER) { - arh = e->e_hdr.e_arhdr; - free(arh->ar_name); - free(arh->ar_rawname); - free(arh); - } - - break; - - default: - break; - } - - free(e); -} - -struct _Libelf_Data * -_libelf_allocate_data(Elf_Scn *s) -{ - struct _Libelf_Data *d; - - if ((d = calloc((size_t) 1, sizeof(*d))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - d->d_scn = s; - - return (d); -} - -struct _Libelf_Data * -_libelf_release_data(struct _Libelf_Data *d) -{ - - if (d->d_flags & LIBELF_F_DATA_MALLOCED) - free(d->d_data.d_buf); - - free(d); - - return (NULL); -} - -Elf_Scn * -_libelf_allocate_scn(Elf *e, size_t ndx) -{ - Elf_Scn *s; - - if ((s = calloc((size_t) 1, sizeof(Elf_Scn))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, errno); - return (NULL); - } - - s->s_elf = e; - s->s_ndx = ndx; - - STAILQ_INIT(&s->s_data); - STAILQ_INIT(&s->s_rawdata); - - STAILQ_INSERT_TAIL(&e->e_u.e_elf.e_scn, s, s_next); - - return (s); -} - -Elf_Scn * -_libelf_release_scn(Elf_Scn *s) -{ - Elf *e; - struct _Libelf_Data *d, *td; - - assert(s != NULL); - - STAILQ_FOREACH_SAFE(d, &s->s_data, d_next, td) { - STAILQ_REMOVE(&s->s_data, d, _Libelf_Data, d_next); - d = _libelf_release_data(d); - } - - STAILQ_FOREACH_SAFE(d, &s->s_rawdata, d_next, td) { - assert((d->d_flags & LIBELF_F_DATA_MALLOCED) == 0); - STAILQ_REMOVE(&s->s_rawdata, d, _Libelf_Data, d_next); - d = _libelf_release_data(d); - } - - e = s->s_elf; - - assert(e != NULL); - - STAILQ_REMOVE(&e->e_u.e_elf.e_scn, s, _Elf_Scn, s_next); - - free(s); - - return (NULL); -} diff --git a/contrib/elftoolchain/libelf/libelf_ar.c b/contrib/elftoolchain/libelf/libelf_ar.c deleted file mode 100644 index ce5564f2..00000000 --- a/contrib/elftoolchain/libelf/libelf_ar.c +++ /dev/null @@ -1,497 +0,0 @@ -/*- - * Copyright (c) 2006,2008,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "_libelf.h" -#include "_libelf_ar.h" - -ELFTC_VCSID("$Id$"); - -#define LIBELF_NALLOC_SIZE 16 - -/* - * `ar' archive handling. - * - * `ar' archives start with signature `ARMAG'. Each archive member is - * preceded by a header containing meta-data for the member. This - * header is described in (struct ar_hdr). The header always - * starts on an even address. File data is padded with "\n" - * characters to keep this invariant. - * - * Special considerations for `ar' archives: - * - * There are two variants of the `ar' archive format: traditional BSD - * and SVR4. These differ in the way long file names are treated, and - * in the layout of the archive symbol table. - * - * The `ar' header only has space for a 16 character file name. - * - * In the SVR4 format, file names are terminated with a '/', so this - * effectively leaves 15 characters for the actual file name. Longer - * file names stored in a separate 'string table' and referenced - * indirectly from the name field. The string table itself appears as - * an archive member with name "// ". An `indirect' file name in an - * `ar' header matches the pattern "/[0-9]*". The digits form a - * decimal number that corresponds to a byte offset into the string - * table where the actual file name of the object starts. Strings in - * the string table are padded to start on even addresses. - * - * In the BSD format, file names can be up to 16 characters. File - * names shorter than 16 characters are padded to 16 characters using - * (ASCII) space characters. File names with embedded spaces and file - * names longer than 16 characters are stored immediately after the - * archive header and the name field set to a special indirect name - * matching the pattern "#1/[0-9]+". The digits form a decimal number - * that corresponds to the actual length of the file name following - * the archive header. The content of the archive member immediately - * follows the file name, and the size field of the archive member - * holds the sum of the sizes of the member and of the appended file - * name. - * - * Archives may also have a symbol table (see ranlib(1)), mapping - * program symbols to object files inside the archive. - * - * In the SVR4 format, a symbol table uses a file name of "/ " in its - * archive header. The symbol table is structured as: - * - a 4-byte count of entries stored as a binary value, MSB first - * - 'n' 4-byte offsets, stored as binary values, MSB first - * - 'n' NUL-terminated strings, for ELF symbol names, stored unpadded. - * - * In the BSD format, the symbol table uses a file name of "__.SYMDEF". - * It is structured as two parts: - * - The first part is an array of "ranlib" structures preceded by - * the size of the array in bytes. Each "ranlib" structure - * describes one symbol. Each structure contains an offset into - * the string table for the symbol name, and a file offset into the - * archive for the member defining the symbol. - * - The second part is a string table containing NUL-terminated - * strings, preceded by the size of the string table in bytes. - * - * If the symbol table and string table are is present in an archive - * they must be the very first objects and in that order. - */ - - -/* - * Retrieve an archive header descriptor. - */ - -Elf_Arhdr * -_libelf_ar_gethdr(Elf *e) -{ - Elf *parent; - Elf_Arhdr *eh; - char *namelen; - size_t n, nlen; - struct ar_hdr *arh; - - if ((parent = e->e_parent) == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - assert((e->e_flags & LIBELF_F_AR_HEADER) == 0); - - arh = (struct ar_hdr *) (uintptr_t) e->e_hdr.e_rawhdr; - - assert((uintptr_t) arh >= (uintptr_t) parent->e_rawfile + SARMAG); - - /* - * There needs to be enough space remaining in the file for the - * archive header. - */ - if ((uintptr_t) arh > (uintptr_t) parent->e_rawfile + - (uintptr_t) parent->e_rawsize - sizeof(struct ar_hdr)) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - if ((eh = malloc(sizeof(Elf_Arhdr))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - e->e_hdr.e_arhdr = eh; - e->e_flags |= LIBELF_F_AR_HEADER; - - eh->ar_name = eh->ar_rawname = NULL; - - if ((eh->ar_name = _libelf_ar_get_translated_name(arh, parent)) == - NULL) - goto error; - - if (_libelf_ar_get_number(arh->ar_uid, sizeof(arh->ar_uid), 10, - &n) == 0) - goto error; - eh->ar_uid = (uid_t) n; - - if (_libelf_ar_get_number(arh->ar_gid, sizeof(arh->ar_gid), 10, - &n) == 0) - goto error; - eh->ar_gid = (gid_t) n; - - if (_libelf_ar_get_number(arh->ar_mode, sizeof(arh->ar_mode), 8, - &n) == 0) - goto error; - eh->ar_mode = (mode_t) n; - - if (_libelf_ar_get_number(arh->ar_size, sizeof(arh->ar_size), 10, - &n) == 0) - goto error; - - /* - * Get the true size of the member if extended naming is being used. - */ - if (IS_EXTENDED_BSD_NAME(arh->ar_name)) { - namelen = arh->ar_name + - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE; - if (_libelf_ar_get_number(namelen, sizeof(arh->ar_name) - - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE, 10, &nlen) == 0) - goto error; - n -= nlen; - } - - eh->ar_size = n; - - if ((eh->ar_rawname = _libelf_ar_get_raw_name(arh)) == NULL) - goto error; - - eh->ar_flags = 0; - - return (eh); - - error: - if (eh) { - if (eh->ar_name) - free(eh->ar_name); - if (eh->ar_rawname) - free(eh->ar_rawname); - free(eh); - } - - e->e_flags &= ~LIBELF_F_AR_HEADER; - e->e_hdr.e_rawhdr = (unsigned char *) arh; - - return (NULL); -} - -Elf * -_libelf_ar_open_member(int fd, Elf_Cmd c, Elf *elf) -{ - Elf *e; - size_t nsz, sz; - off_t next, end; - struct ar_hdr *arh; - char *member, *namelen; - - assert(elf->e_kind == ELF_K_AR); - - next = elf->e_u.e_ar.e_next; - - /* - * `next' is only set to zero by elf_next() when the last - * member of an archive is processed. - */ - if (next == (off_t) 0) - return (NULL); - - assert((next & 1) == 0); - - /* - * There needs to be enough space in the file to contain an - * ar(1) header. - */ - end = next + (off_t) sizeof(struct ar_hdr); - if ((uintmax_t) end < (uintmax_t) next || /* Overflow. */ - end > (off_t) elf->e_rawsize) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - arh = (struct ar_hdr *) (elf->e_rawfile + next); - - /* - * Retrieve the size of the member. - */ - if (_libelf_ar_get_number(arh->ar_size, sizeof(arh->ar_size), 10, - &sz) == 0) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - /* - * Check if the archive member that follows will fit in the - * containing archive. - */ - end += (off_t) sz; - if (end < next || /* Overflow. */ - end > (off_t) elf->e_rawsize) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - /* - * Adjust the size field for members in BSD archives using - * extended naming. - */ - if (IS_EXTENDED_BSD_NAME(arh->ar_name)) { - namelen = arh->ar_name + - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE; - if (_libelf_ar_get_number(namelen, sizeof(arh->ar_name) - - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE, 10, &nsz) == 0) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - member = (char *) (arh + 1) + nsz; - sz -= nsz; - } else - member = (char *) (arh + 1); - - - if ((e = elf_memory(member, sz)) == NULL) - return (NULL); - - e->e_fd = fd; - e->e_cmd = c; - e->e_hdr.e_rawhdr = (unsigned char *) arh; - - elf->e_u.e_ar.e_nchildren++; - e->e_parent = elf; - - return (e); -} - -/* - * A BSD-style ar(1) symbol table has the following layout: - * - * - A count of bytes used by the following array of 'ranlib' - * structures, stored as a 'long'. - * - An array of 'ranlib' structures. Each array element is - * two 'long's in size. - * - A count of bytes used for the following symbol table. - * - The symbol table itself. - */ - -/* - * A helper macro to read in a 'long' value from the archive. - * - * We use memcpy() since the source pointer may be misaligned with - * respect to the natural alignment for a C 'long'. - */ -#define GET_LONG(P, V)do { \ - memcpy(&(V), (P), sizeof(long)); \ - (P) += sizeof(long); \ - } while (0) - -Elf_Arsym * -_libelf_ar_process_bsd_symtab(Elf *e, size_t *count) -{ - Elf_Arsym *symtab, *sym; - unsigned int n; - size_t nentries; - unsigned char *end, *p, *p0, *s, *s0; - const size_t entrysize = 2 * sizeof(long); - long arraysize, fileoffset, stroffset, strtabsize; - - assert(e != NULL); - assert(count != NULL); - assert(e->e_u.e_ar.e_symtab == NULL); - - symtab = NULL; - - /* - * The BSD symbol table always contains the count fields even - * if there are no entries in it. - */ - if (e->e_u.e_ar.e_rawsymtabsz < 2 * sizeof(long)) - goto symtaberror; - - p = p0 = (unsigned char *) e->e_u.e_ar.e_rawsymtab; - end = p0 + e->e_u.e_ar.e_rawsymtabsz; - - /* - * Retrieve the size of the array of ranlib descriptors and - * check it for validity. - */ - GET_LONG(p, arraysize); - - if (arraysize < 0 || p0 + arraysize >= end || - ((size_t) arraysize % entrysize != 0)) - goto symtaberror; - - /* - * Check the value of the string table size. - */ - s = p + arraysize; - GET_LONG(s, strtabsize); - - s0 = s; /* Start of string table. */ - if (strtabsize < 0 || s0 + strtabsize > end) - goto symtaberror; - - nentries = (size_t) arraysize / entrysize; - - /* - * Allocate space for the returned Elf_Arsym array. - */ - if ((symtab = malloc(sizeof(Elf_Arsym) * (nentries + 1))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - /* Read in symbol table entries. */ - for (n = 0, sym = symtab; n < nentries; n++, sym++) { - GET_LONG(p, stroffset); - GET_LONG(p, fileoffset); - - if (stroffset < 0 || fileoffset < 0 || - (off_t) fileoffset >= e->e_rawsize) - goto symtaberror; - - s = s0 + stroffset; - - if (s >= end) - goto symtaberror; - - sym->as_off = (off_t) fileoffset; - sym->as_hash = elf_hash((char *) s); - sym->as_name = (char *) s; - } - - /* Fill up the sentinel entry. */ - sym->as_name = NULL; - sym->as_hash = ~0UL; - sym->as_off = (off_t) 0; - - /* Remember the processed symbol table. */ - e->e_u.e_ar.e_symtab = symtab; - - *count = e->e_u.e_ar.e_symtabsz = nentries + 1; - - return (symtab); - -symtaberror: - if (symtab) - free(symtab); - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); -} - -/* - * An SVR4-style ar(1) symbol table has the following layout: - * - * - The first 4 bytes are a binary count of the number of entries in the - * symbol table, stored MSB-first. - * - Then there are 'n' 4-byte binary offsets, also stored MSB first. - * - Following this, there are 'n' null-terminated strings. - */ - -#define GET_WORD(P, V) do { \ - (V) = 0; \ - (V) = (P)[0]; (V) <<= 8; \ - (V) += (P)[1]; (V) <<= 8; \ - (V) += (P)[2]; (V) <<= 8; \ - (V) += (P)[3]; \ - } while (0) - -#define INTSZ 4 - - -Elf_Arsym * -_libelf_ar_process_svr4_symtab(Elf *e, size_t *count) -{ - uint32_t off; - size_t n, nentries; - Elf_Arsym *symtab, *sym; - unsigned char *p, *s, *end; - - assert(e != NULL); - assert(count != NULL); - assert(e->e_u.e_ar.e_symtab == NULL); - - symtab = NULL; - - if (e->e_u.e_ar.e_rawsymtabsz < INTSZ) - goto symtaberror; - - p = (unsigned char *) e->e_u.e_ar.e_rawsymtab; - end = p + e->e_u.e_ar.e_rawsymtabsz; - - GET_WORD(p, nentries); - p += INTSZ; - - if (nentries == 0 || p + nentries * INTSZ >= end) - goto symtaberror; - - /* Allocate space for a nentries + a sentinel. */ - if ((symtab = malloc(sizeof(Elf_Arsym) * (nentries+1))) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - s = p + (nentries * INTSZ); /* start of the string table. */ - - for (n = nentries, sym = symtab; n > 0; n--) { - if (s >= end) - goto symtaberror; - - GET_WORD(p, off); - if (off >= e->e_rawsize) - goto symtaberror; - - sym->as_off = (off_t) off; - sym->as_hash = elf_hash((char *) s); - sym->as_name = (char *) s; - - p += INTSZ; - sym++; - - for (; s < end && *s++ != '\0';) /* skip to next string */ - ; - } - - /* Fill up the sentinel entry. */ - sym->as_name = NULL; - sym->as_hash = ~0UL; - sym->as_off = (off_t) 0; - - *count = e->e_u.e_ar.e_symtabsz = nentries + 1; - e->e_u.e_ar.e_symtab = symtab; - - return (symtab); - -symtaberror: - if (symtab) - free(symtab); - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); -} diff --git a/contrib/elftoolchain/libelf/libelf_ar_util.c b/contrib/elftoolchain/libelf/libelf_ar_util.c deleted file mode 100644 index da3c0a3f..00000000 --- a/contrib/elftoolchain/libelf/libelf_ar_util.c +++ /dev/null @@ -1,360 +0,0 @@ -/*- - * Copyright (c) 2006,2009,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" -#include "_libelf_ar.h" - -ELFTC_VCSID("$Id$"); - -/* - * Convert a string bounded by `start' and `start+sz' (exclusive) to a - * number in the specified base. - */ -int -_libelf_ar_get_number(const char *src, size_t sz, unsigned int base, - size_t *ret) -{ - size_t r; - unsigned int c, v; - const unsigned char *e, *s; - - assert(base <= 10); - - s = (const unsigned char *) src; - e = s + sz; - - /* skip leading blanks */ - for (;s < e && (c = *s) == ' '; s++) - ; - - r = 0L; - for (;s < e; s++) { - if ((c = *s) == ' ') - break; - if (c < '0' || c > '9') - return (0); - v = c - '0'; - if (v >= base) /* Illegal digit. */ - break; - r *= base; - r += v; - } - - *ret = r; - - return (1); -} - -/* - * Return the translated name for an archive member. - */ -char * -_libelf_ar_get_translated_name(const struct ar_hdr *arh, Elf *ar) -{ - char *s; - unsigned char c; - size_t len, offset; - const unsigned char *buf, *p, *q, *r; - const size_t bufsize = sizeof(arh->ar_name); - - assert(arh != NULL); - assert(ar->e_kind == ELF_K_AR); - assert((const unsigned char *) arh >= ar->e_rawfile && - (const unsigned char *) arh < ar->e_rawfile + ar->e_rawsize); - - buf = (const unsigned char *) arh->ar_name; - - /* - * Check for extended naming. - * - * If the name matches the pattern "^/[0-9]+", it is an - * SVR4-style extended name. If the name matches the pattern - * "#1/[0-9]+", the entry uses BSD style extended naming. - */ - if (buf[0] == '/' && (c = buf[1]) >= '0' && c <= '9') { - /* - * The value in field ar_name is a decimal offset into - * the archive string table where the actual name - * resides. - */ - if (_libelf_ar_get_number((const char *) (buf + 1), - bufsize - 1, 10, &offset) == 0) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - if (offset > ar->e_u.e_ar.e_rawstrtabsz) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - p = q = ar->e_u.e_ar.e_rawstrtab + offset; - r = ar->e_u.e_ar.e_rawstrtab + ar->e_u.e_ar.e_rawstrtabsz; - - for (; p < r && *p != '/'; p++) - ; - len = (size_t) (p - q + 1); /* space for the trailing NUL */ - - if ((s = malloc(len)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - (void) strncpy(s, (const char *) q, len - 1); - s[len - 1] = '\0'; - - return (s); - } else if (IS_EXTENDED_BSD_NAME(buf)) { - r = buf + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE; - - if (_libelf_ar_get_number((const char *) r, bufsize - - LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE, 10, - &len) == 0) { - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); - } - - /* - * Allocate space for the file name plus a - * trailing NUL. - */ - if ((s = malloc(len + 1)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - /* - * The file name follows the archive header. - */ - q = (const unsigned char *) (arh + 1); - - (void) strncpy(s, (const char *) q, len); - s[len] = '\0'; - - return (s); - } - - /* - * A 'normal' name. - * - * Skip back over trailing blanks from the end of the field. - * In the SVR4 format, a '/' is used as a terminator for - * non-special names. - */ - for (q = buf + bufsize - 1; q >= buf && *q == ' '; --q) - ; - - if (q >= buf) { - if (*q == '/') { - /* - * SVR4 style names: ignore the trailing - * character '/', but only if the name is not - * one of the special names "/" and "//". - */ - if (q > buf + 1 || - (q == (buf + 1) && *buf != '/')) - q--; - } - - len = (size_t) (q - buf + 2); /* Space for a trailing NUL. */ - } else { - /* The buffer only had blanks. */ - buf = (const unsigned char *) ""; - len = 1; - } - - if ((s = malloc(len)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - (void) strncpy(s, (const char *) buf, len - 1); - s[len - 1] = '\0'; - - return (s); -} - -/* - * Return the raw name for an archive member, inclusive of any - * formatting characters. - */ -char * -_libelf_ar_get_raw_name(const struct ar_hdr *arh) -{ - char *rawname; - const size_t namesz = sizeof(arh->ar_name); - - if ((rawname = malloc(namesz + 1)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - (void) strncpy(rawname, arh->ar_name, namesz); - rawname[namesz] = '\0'; - return (rawname); -} - -/* - * Open an 'ar' archive. - */ -Elf * -_libelf_ar_open(Elf *e, int reporterror) -{ - size_t sz; - int scanahead; - struct ar_hdr arh; - unsigned char *s, *end; - - _libelf_init_elf(e, ELF_K_AR); - - e->e_u.e_ar.e_nchildren = 0; - e->e_u.e_ar.e_next = (off_t) -1; - - /* - * Look for special members. - */ - - s = e->e_rawfile + SARMAG; - end = e->e_rawfile + e->e_rawsize; - - assert(e->e_rawsize > 0); - - /* - * We use heuristics to determine the flavor of the archive we - * are examining. - * - * SVR4 flavor archives use the name "/ " and "// " for - * special members. - * - * In BSD flavor archives the symbol table, if present, is the - * first archive with name "__.SYMDEF". - */ - -#define READ_AR_HEADER(S, ARH, SZ, END) \ - do { \ - if ((S) + sizeof((ARH)) > (END)) \ - goto error; \ - (void) memcpy(&(ARH), (S), sizeof((ARH))); \ - if ((ARH).ar_fmag[0] != '`' || (ARH).ar_fmag[1] != '\n') \ - goto error; \ - if (_libelf_ar_get_number((char *) (ARH).ar_size, \ - sizeof((ARH).ar_size), 10, &(SZ)) == 0) \ - goto error; \ - } while (0) - - READ_AR_HEADER(s, arh, sz, end); - - /* - * Handle special archive members for the SVR4 format. - */ - if (arh.ar_name[0] == '/') { - if (sz == 0) - goto error; - - e->e_flags |= LIBELF_F_AR_VARIANT_SVR4; - - scanahead = 0; - - /* - * The symbol table (file name "/ ") always comes before the - * string table (file name "// "). - */ - if (arh.ar_name[1] == ' ') { - /* "/ " => symbol table. */ - scanahead = 1; /* The string table to follow. */ - - s += sizeof(arh); - e->e_u.e_ar.e_rawsymtab = s; - e->e_u.e_ar.e_rawsymtabsz = sz; - - sz = LIBELF_ADJUST_AR_SIZE(sz); - s += sz; - - } else if (arh.ar_name[1] == '/' && arh.ar_name[2] == ' ') { - /* "// " => string table for long file names. */ - s += sizeof(arh); - e->e_u.e_ar.e_rawstrtab = s; - e->e_u.e_ar.e_rawstrtabsz = sz; - - sz = LIBELF_ADJUST_AR_SIZE(sz); - s += sz; - } - - /* - * If the string table hasn't been seen yet, look for - * it in the next member. - */ - if (scanahead) { - READ_AR_HEADER(s, arh, sz, end); - - /* "// " => string table for long file names. */ - if (arh.ar_name[0] == '/' && arh.ar_name[1] == '/' && - arh.ar_name[2] == ' ') { - - s += sizeof(arh); - - e->e_u.e_ar.e_rawstrtab = s; - e->e_u.e_ar.e_rawstrtabsz = sz; - - sz = LIBELF_ADJUST_AR_SIZE(sz); - s += sz; - } - } - } else if (strncmp(arh.ar_name, LIBELF_AR_BSD_SYMTAB_NAME, - sizeof(LIBELF_AR_BSD_SYMTAB_NAME) - 1) == 0) { - /* - * BSD style archive symbol table. - */ - s += sizeof(arh); - e->e_u.e_ar.e_rawsymtab = s; - e->e_u.e_ar.e_rawsymtabsz = sz; - - sz = LIBELF_ADJUST_AR_SIZE(sz); - s += sz; - } - - /* - * Update the 'next' offset, so that a subsequent elf_begin() - * works as expected. - */ - e->e_u.e_ar.e_next = (off_t) (s - e->e_rawfile); - - return (e); - -error: - if (!reporterror) { - e->e_kind = ELF_K_NONE; - return (e); - } - - LIBELF_SET_ERROR(ARCHIVE, 0); - return (NULL); -} diff --git a/contrib/elftoolchain/libelf/libelf_checksum.c b/contrib/elftoolchain/libelf/libelf_checksum.c deleted file mode 100644 index 326d533e..00000000 --- a/contrib/elftoolchain/libelf/libelf_checksum.c +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -static unsigned long -_libelf_sum(unsigned long c, const unsigned char *s, size_t size) -{ - if (s == NULL || size == 0) - return (c); - - while (size--) - c += *s++; - - return (c); -} - -long -_libelf_checksum(Elf *e, int elfclass) -{ - size_t shn; - Elf_Scn *scn; - Elf_Data *d; - unsigned long checksum; - GElf_Ehdr eh; - GElf_Shdr shdr; - - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (0L); - } - - if (e->e_class != elfclass) { - LIBELF_SET_ERROR(CLASS, 0); - return (0L); - } - - if (gelf_getehdr(e, &eh) == NULL) - return (0); - - /* - * Iterate over all sections in the ELF file, computing the - * checksum along the way. - * - * The first section is always SHN_UNDEF and can be skipped. - * Non-allocatable sections are skipped, as are sections that - * could be affected by utilities such as strip(1). - */ - - checksum = 0; - for (shn = 1; shn < e->e_u.e_elf.e_nscn; shn++) { - if ((scn = elf_getscn(e, shn)) == NULL) - return (0); - if (gelf_getshdr(scn, &shdr) == NULL) - return (0); - if ((shdr.sh_flags & SHF_ALLOC) == 0 || - shdr.sh_type == SHT_DYNAMIC || - shdr.sh_type == SHT_DYNSYM) - continue; - - d = NULL; - while ((d = elf_rawdata(scn, d)) != NULL) - checksum = _libelf_sum(checksum, - (unsigned char *) d->d_buf, (size_t) d->d_size); - } - - /* - * Return a 16-bit checksum compatible with Solaris. - */ - return (long) (((checksum >> 16) & 0xFFFFUL) + (checksum & 0xFFFFUL)); -} diff --git a/contrib/elftoolchain/libelf/libelf_convert.m4 b/contrib/elftoolchain/libelf/libelf_convert.m4 deleted file mode 100644 index a4039227..00000000 --- a/contrib/elftoolchain/libelf/libelf_convert.m4 +++ /dev/null @@ -1,1092 +0,0 @@ -/*- - * Copyright (c) 2006-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -divert(-1) - -# Generate conversion routines for converting between in-memory and -# file representations of Elf data structures. -# -# These conversions use the type information defined in `elf_types.m4'. - -include(SRCDIR`/elf_types.m4') - -# For the purposes of generating conversion code, ELF types may be -# classified according to the following characteristics: -# -# 1. Whether the ELF type can be directly mapped to an integral C -# language type. For example, the ELF_T_WORD type maps directly to -# a 'uint32_t', but ELF_T_GNUHASH lacks a matching C type. -# -# 2. Whether the type has word size dependent variants. For example, -# ELT_T_EHDR is represented using C types Elf32_Ehdr and El64_Ehdr, -# and the ELF_T_ADDR and ELF_T_OFF types have integral C types that -# can be 32- or 64- bit wide. -# -# 3. Whether the ELF types has a fixed representation or not. For -# example, the ELF_T_SYM type has a fixed size file representation, -# some types like ELF_T_NOTE and ELF_T_GNUHASH use a variable size -# representation. -# -# We use m4 macros to generate conversion code for ELF types that have -# a fixed size representation. Conversion functions for the remaining -# types are coded by hand. -# -#* Handling File and Memory Representations -# -# `In-memory' representations of an Elf data structure use natural -# alignments and native byte ordering. This allows pointer arithmetic -# and casting to work as expected. On the other hand, the `file' -# representation of an ELF data structure could possibly be packed -# tighter than its `in-memory' representation, and could be of a -# differing byte order. Reading ELF objects that are members of `ar' -# archives present an additional complication: `ar' pads file data to -# even addresses, so file data structures in an archive member -# residing inside an `ar' archive could be at misaligned memory -# addresses when brought into memory. -# -# In summary, casting the `char *' pointers that point to memory -# representations (i.e., source pointers for the *_tof() functions and -# the destination pointers for the *_tom() functions), is safe, as -# these pointers should be correctly aligned for the memory type -# already. However, pointers to file representations have to be -# treated as being potentially unaligned and no casting can be done. - -# NOCVT(TYPE) -- Do not generate the cvt[] structure entry for TYPE -define(`NOCVT',`define(`NOCVT_'$1,1)') - -# NOFUNC(TYPE) -- Do not generate a conversion function for TYPE -define(`NOFUNC',`define(`NOFUNC_'$1,1)') - -# IGNORE(TYPE) -- Completely ignore the type. -define(`IGNORE',`NOCVT($1)NOFUNC($1)') - -# Mark ELF types that should not be processed by the M4 macros below. - -# Types for which we use functions with non-standard names. -IGNORE(`BYTE') # Uses a wrapper around memcpy(). -IGNORE(`NOTE') # Not a fixed size type. - -# Types for which we supply hand-coded functions. -NOFUNC(`GNUHASH') # A type with complex internal structure. -NOFUNC(`VDEF') # See MAKE_VERSION_CONVERTERS below. -NOFUNC(`VNEED') # .. - -# Unimplemented types. -IGNORE(`MOVEP') - -# ELF types that don't exist in a 32-bit world. -NOFUNC(`XWORD32') -NOFUNC(`SXWORD32') - -# `Primitive' ELF types are those that are an alias for an integral -# type. As they have no internal structure, they can be copied using -# a `memcpy()', and byteswapped in straightforward way. -# -# Mark all ELF types that directly map to integral C types. -define(`PRIM_ADDR', 1) -define(`PRIM_BYTE', 1) -define(`PRIM_HALF', 1) -define(`PRIM_LWORD', 1) -define(`PRIM_OFF', 1) -define(`PRIM_SWORD', 1) -define(`PRIM_SXWORD', 1) -define(`PRIM_WORD', 1) -define(`PRIM_XWORD', 1) - -# Note the primitive types that are size-dependent. -define(`SIZEDEP_ADDR', 1) -define(`SIZEDEP_OFF', 1) - -# Generate conversion functions for primitive types. -# -# Macro use: MAKEPRIMFUNCS(ELFTYPE,CTYPE,TYPESIZE,SYMSIZE) -# `$1': Name of the ELF type. -# `$2': C structure name suffix. -# `$3': ELF class specifier for types, one of [`32', `64']. -# `$4': Additional ELF class specifier, one of [`', `32', `64']. -# -# Generates a pair of conversion functions. -define(`MAKEPRIMFUNCS',` -static int -_libelf_cvt_$1$4_tof(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - Elf$3_$2 t, *s = (Elf$3_$2 *) (uintptr_t) src; - size_t c; - - (void) dsz; - - if (!byteswap) { - (void) memcpy(dst, src, count * sizeof(*s)); - return (1); - } - - for (c = 0; c < count; c++) { - t = *s++; - SWAP_$1$4(t); - WRITE_$1$4(dst,t); - } - - return (1); -} - -static int -_libelf_cvt_$1$4_tom(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - Elf$3_$2 t, *d = (Elf$3_$2 *) (uintptr_t) dst; - size_t c; - - if (dsz < count * sizeof(Elf$3_$2)) - return (0); - - if (!byteswap) { - (void) memcpy(dst, src, count * sizeof(*d)); - return (1); - } - - for (c = 0; c < count; c++) { - READ_$1$4(src,t); - SWAP_$1$4(t); - *d++ = t; - } - - return (1); -} -') - -# -# Handling composite ELF types -# - -# SWAP_FIELD(FIELDNAME,ELFTYPE) -- Generate code to swap one field. -define(`SWAP_FIELD', - `ifdef(`SIZEDEP_'$2, - `SWAP_$2'SZ()`(t.$1); - ', - `SWAP_$2(t.$1); - ')') - -# SWAP_MEMBERS(STRUCT) -- Iterate over a structure definition. -define(`SWAP_MEMBERS', - `ifelse($#,1,`/**/', - `SWAP_FIELD($1)SWAP_MEMBERS(shift($@))')') - -# SWAP_STRUCT(CTYPE,SIZE) -- Generate code to swap an ELF structure. -define(`SWAP_STRUCT', - `pushdef(`SZ',$2)/* Swap an Elf$2_$1 */ - SWAP_MEMBERS(Elf$2_$1_DEF)popdef(`SZ')') - -# WRITE_FIELD(ELFTYPE,FIELDNAME) -- Generate code to write one field. -define(`WRITE_FIELD', - `ifdef(`SIZEDEP_'$2, - `WRITE_$2'SZ()`(dst,t.$1); - ', - `WRITE_$2(dst,t.$1); - ')') - -# WRITE_MEMBERS(ELFTYPELIST) -- Iterate over a structure definition. -define(`WRITE_MEMBERS', - `ifelse($#,1,`/**/', - `WRITE_FIELD($1)WRITE_MEMBERS(shift($@))')') - -# WRITE_STRUCT(CTYPE,SIZE) -- Generate code to write out an ELF structure. -define(`WRITE_STRUCT', - `pushdef(`SZ',$2)/* Write an Elf$2_$1 */ - WRITE_MEMBERS(Elf$2_$1_DEF)popdef(`SZ')') - -# READ_FIELD(ELFTYPE,CTYPE) -- Generate code to read one field. -define(`READ_FIELD', - `ifdef(`SIZEDEP_'$2, - `READ_$2'SZ()`(s,t.$1); - ', - `READ_$2(s,t.$1); - ')') - -# READ_MEMBERS(ELFTYPELIST) -- Iterate over a structure definition. -define(`READ_MEMBERS', - `ifelse($#,1,`/**/', - `READ_FIELD($1)READ_MEMBERS(shift($@))')') - -# READ_STRUCT(CTYPE,SIZE) -- Generate code to read an ELF structure. -define(`READ_STRUCT', - `pushdef(`SZ',$2)/* Read an Elf$2_$1 */ - READ_MEMBERS(Elf$2_$1_DEF)popdef(`SZ')') - - -# MAKECOMPFUNCS -- Generate converters for composite ELF structures. -# -# When converting data to file representation, the source pointer will -# be naturally aligned for a data structure's in-memory -# representation. When converting data to memory, the destination -# pointer will be similarly aligned. -# -# For in-place conversions, when converting to file representations, -# the source buffer is large enough to hold `file' data. When -# converting from file to memory, we need to be careful to work -# `backwards', to avoid overwriting unconverted data. -# -# Macro use: -# `$1': Name of the ELF type. -# `$2': C structure name suffix. -# `$3': ELF class specifier, one of [`', `32', `64'] -define(`MAKECOMPFUNCS', `ifdef(`NOFUNC_'$1$3,`',` -static int -_libelf_cvt_$1$3_tof(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - Elf$3_$2 t, *s; - size_t c; - - (void) dsz; - - s = (Elf$3_$2 *) (uintptr_t) src; - for (c = 0; c < count; c++) { - t = *s++; - if (byteswap) { - SWAP_STRUCT($2,$3) - } - WRITE_STRUCT($2,$3) - } - - return (1); -} - -static int -_libelf_cvt_$1$3_tom(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - Elf$3_$2 t, *d; - unsigned char *s,*s0; - size_t fsz; - - fsz = elf$3_fsize(ELF_T_$1, (size_t) 1, EV_CURRENT); - d = ((Elf$3_$2 *) (uintptr_t) dst) + (count - 1); - s0 = src + (count - 1) * fsz; - - if (dsz < count * sizeof(Elf$3_$2)) - return (0); - - while (count--) { - s = s0; - READ_STRUCT($2,$3) - if (byteswap) { - SWAP_STRUCT($2,$3) - } - *d-- = t; s0 -= fsz; - } - - return (1); -} -')') - -# MAKE_TYPE_CONVERTER(ELFTYPE,CTYPE) -# -# Make type convertor functions from the type definition -# of the ELF type: -# - Skip convertors marked as `NOFUNC'. -# - Invoke `MAKEPRIMFUNCS' or `MAKECOMPFUNCS' as appropriate. -define(`MAKE_TYPE_CONVERTER', - `ifdef(`NOFUNC_'$1,`', - `ifdef(`PRIM_'$1, - `ifdef(`SIZEDEP_'$1, - `MAKEPRIMFUNCS($1,$2,32,32)dnl - MAKEPRIMFUNCS($1,$2,64,64)', - `MAKEPRIMFUNCS($1,$2,64)')', - `MAKECOMPFUNCS($1,$2,32)dnl - MAKECOMPFUNCS($1,$2,64)')')') - -# MAKE_TYPE_CONVERTERS(ELFTYPELIST) -- Generate conversion functions. -define(`MAKE_TYPE_CONVERTERS', - `ifelse($#,1,`', - `MAKE_TYPE_CONVERTER($1)MAKE_TYPE_CONVERTERS(shift($@))')') - - -# -# Macros to generate entries for the table of convertors. -# - -# CONV(ELFTYPE,SIZE,DIRECTION) -# -# Generate the name of a convertor function. -define(`CONV', - `ifdef(`NOFUNC_'$1$2, - `.$3$2 = NULL', - `ifdef(`PRIM_'$1, - `ifdef(`SIZEDEP_'$1, - `.$3$2 = _libelf_cvt_$1$2_$3', - `.$3$2 = _libelf_cvt_$1_$3')', - `.$3$2 = _libelf_cvt_$1$2_$3')')') - -# CONVERTER_NAME(ELFTYPE) -# -# Generate the contents of one `struct cvt' instance. -define(`CONVERTER_NAME', - `ifdef(`NOCVT_'$1,`', - ` [ELF_T_$1] = { - CONV($1,32,tof), - CONV($1,32,tom), - CONV($1,64,tof), - CONV($1,64,tom) - }, - -')') - -# CONVERTER_NAMES(ELFTYPELIST) -# -# Generate the `struct cvt[]' array. -define(`CONVERTER_NAMES', - `ifelse($#,1,`', - `CONVERTER_NAME($1)CONVERTER_NAMES(shift($@))')') - -# -# Handling ELF version sections. -# - -# _FSZ(FIELD,BASETYPE) - return the file size for a field. -define(`_FSZ', - `ifelse($2,`HALF',2, - $2,`WORD',4)') - -# FSZ(STRUCT) - determine the file size of a structure. -define(`FSZ', - `ifelse($#,1,0, - `eval(_FSZ($1) + FSZ(shift($@)))')') - -# MAKE_VERSION_CONVERTERS(TYPE,BASE,AUX,PFX) -- Generate conversion -# functions for versioning structures. -define(`MAKE_VERSION_CONVERTERS', - `MAKE_VERSION_CONVERTER($1,$2,$3,$4,32) - MAKE_VERSION_CONVERTER($1,$2,$3,$4,64)') - -# MAKE_VERSION_CONVERTOR(TYPE,CBASE,CAUX,PFX,SIZE) -- Generate a -# conversion function. -define(`MAKE_VERSION_CONVERTER',` -static int -_libelf_cvt_$1$5_tof(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - Elf$5_$2 t; - Elf$5_$3 a; - const size_t verfsz = FSZ(Elf$5_$2_DEF); - const size_t auxfsz = FSZ(Elf$5_$3_DEF); - const size_t vermsz = sizeof(Elf$5_$2); - const size_t auxmsz = sizeof(Elf$5_$3); - unsigned char * const dstend = dst + dsz; - unsigned char * const srcend = src + count; - unsigned char *dtmp, *dstaux, *srcaux; - Elf$5_Word aux, anext, cnt, vnext; - - for (dtmp = dst, vnext = ~0U; - vnext != 0 && dtmp + verfsz <= dstend && src + vermsz <= srcend; - dtmp += vnext, src += vnext) { - - /* Read in an Elf$5_$2 structure. */ - t = *((Elf$5_$2 *) (uintptr_t) src); - - aux = t.$4_aux; - cnt = t.$4_cnt; - vnext = t.$4_next; - - if (byteswap) { - SWAP_STRUCT($2, $5) - } - - dst = dtmp; - WRITE_STRUCT($2, $5) - - if (aux < verfsz) - return (0); - - /* Process AUX entries. */ - for (anext = ~0U, dstaux = dtmp + aux, srcaux = src + aux; - cnt != 0 && anext != 0 && dstaux + auxfsz <= dstend && - srcaux + auxmsz <= srcend; - dstaux += anext, srcaux += anext, cnt--) { - - /* Read in an Elf$5_$3 structure. */ - a = *((Elf$5_$3 *) (uintptr_t) srcaux); - anext = a.$4a_next; - - if (byteswap) { - pushdef(`t',`a')SWAP_STRUCT($3, $5)popdef(`t') - } - - dst = dstaux; - pushdef(`t',`a')WRITE_STRUCT($3, $5)popdef(`t') - } - - if (anext || cnt) - return (0); - } - - if (vnext) - return (0); - - return (1); -} - -static int -_libelf_cvt_$1$5_tom(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - Elf$5_$2 t, *dp; - Elf$5_$3 a, *ap; - const size_t verfsz = FSZ(Elf$5_$2_DEF); - const size_t auxfsz = FSZ(Elf$5_$3_DEF); - const size_t vermsz = sizeof(Elf$5_$2); - const size_t auxmsz = sizeof(Elf$5_$3); - unsigned char * const dstend = dst + dsz; - unsigned char * const srcend = src + count; - unsigned char *dstaux, *s, *srcaux, *stmp; - Elf$5_Word aux, anext, cnt, vnext; - - for (stmp = src, vnext = ~0U; - vnext != 0 && stmp + verfsz <= srcend && dst + vermsz <= dstend; - stmp += vnext, dst += vnext) { - - /* Read in a $1 structure. */ - s = stmp; - READ_STRUCT($2, $5) - if (byteswap) { - SWAP_STRUCT($2, $5) - } - - dp = (Elf$5_$2 *) (uintptr_t) dst; - *dp = t; - - aux = t.$4_aux; - cnt = t.$4_cnt; - vnext = t.$4_next; - - if (aux < vermsz) - return (0); - - /* Process AUX entries. */ - for (anext = ~0U, dstaux = dst + aux, srcaux = stmp + aux; - cnt != 0 && anext != 0 && dstaux + auxmsz <= dstend && - srcaux + auxfsz <= srcend; - dstaux += anext, srcaux += anext, cnt--) { - - s = srcaux; - pushdef(`t',`a')READ_STRUCT($3, $5)popdef(`t') - - if (byteswap) { - pushdef(`t',`a')SWAP_STRUCT($3, $5)popdef(`t') - } - - anext = a.$4a_next; - - ap = ((Elf$5_$3 *) (uintptr_t) dstaux); - *ap = a; - } - - if (anext || cnt) - return (0); - } - - if (vnext) - return (0); - - return (1); -}') - -divert(0) - -/* - * C macros to byte swap integral quantities. - */ - -#define SWAP_BYTE(X) do { (void) (X); } while (0) -#define SWAP_IDENT(X) do { (void) (X); } while (0) -#define SWAP_HALF(X) do { \ - uint16_t _x = (uint16_t) (X); \ - uint32_t _t = _x & 0xFFU; \ - _t <<= 8U; _x >>= 8U; _t |= _x & 0xFFU; \ - (X) = (uint16_t) _t; \ - } while (0) -#define _SWAP_WORD(X, T) do { \ - uint32_t _x = (uint32_t) (X); \ - uint32_t _t = _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - (X) = (T) _t; \ - } while (0) -#define SWAP_ADDR32(X) _SWAP_WORD(X, Elf32_Addr) -#define SWAP_OFF32(X) _SWAP_WORD(X, Elf32_Off) -#define SWAP_SWORD(X) _SWAP_WORD(X, Elf32_Sword) -#define SWAP_WORD(X) _SWAP_WORD(X, Elf32_Word) -#define _SWAP_WORD64(X, T) do { \ - uint64_t _x = (uint64_t) (X); \ - uint64_t _t = _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ - (X) = (T) _t; \ - } while (0) -#define SWAP_ADDR64(X) _SWAP_WORD64(X, Elf64_Addr) -#define SWAP_LWORD(X) _SWAP_WORD64(X, Elf64_Lword) -#define SWAP_OFF64(X) _SWAP_WORD64(X, Elf64_Off) -#define SWAP_SXWORD(X) _SWAP_WORD64(X, Elf64_Sxword) -#define SWAP_XWORD(X) _SWAP_WORD64(X, Elf64_Xword) - -/* - * C macros to write out various integral values. - * - * Note: - * - The destination pointer could be unaligned. - * - Values are written out in native byte order. - * - The destination pointer is incremented after the write. - */ -#define WRITE_BYTE(P,X) do { \ - unsigned char *const _p = (unsigned char *) (P); \ - _p[0] = (unsigned char) (X); \ - (P) = _p + 1; \ - } while (0) -#define WRITE_HALF(P,X) do { \ - uint16_t _t = (X); \ - unsigned char *const _p = (unsigned char *) (P); \ - const unsigned char *const _q = (unsigned char *) &_t; \ - _p[0] = _q[0]; \ - _p[1] = _q[1]; \ - (P) = _p + 2; \ - } while (0) -#define WRITE_WORD(P,X) do { \ - uint32_t _t = (uint32_t) (X); \ - unsigned char *const _p = (unsigned char *) (P); \ - const unsigned char *const _q = (unsigned char *) &_t; \ - _p[0] = _q[0]; \ - _p[1] = _q[1]; \ - _p[2] = _q[2]; \ - _p[3] = _q[3]; \ - (P) = _p + 4; \ - } while (0) -#define WRITE_ADDR32(P,X) WRITE_WORD(P,X) -#define WRITE_OFF32(P,X) WRITE_WORD(P,X) -#define WRITE_SWORD(P,X) WRITE_WORD(P,X) -#define WRITE_WORD64(P,X) do { \ - uint64_t _t = (uint64_t) (X); \ - unsigned char *const _p = (unsigned char *) (P); \ - const unsigned char *const _q = (unsigned char *) &_t; \ - _p[0] = _q[0]; \ - _p[1] = _q[1]; \ - _p[2] = _q[2]; \ - _p[3] = _q[3]; \ - _p[4] = _q[4]; \ - _p[5] = _q[5]; \ - _p[6] = _q[6]; \ - _p[7] = _q[7]; \ - (P) = _p + 8; \ - } while (0) -#define WRITE_ADDR64(P,X) WRITE_WORD64(P,X) -#define WRITE_LWORD(P,X) WRITE_WORD64(P,X) -#define WRITE_OFF64(P,X) WRITE_WORD64(P,X) -#define WRITE_SXWORD(P,X) WRITE_WORD64(P,X) -#define WRITE_XWORD(P,X) WRITE_WORD64(P,X) -#define WRITE_IDENT(P,X) do { \ - (void) memcpy((P), (X), sizeof((X))); \ - (P) = (P) + EI_NIDENT; \ - } while (0) - -/* - * C macros to read in various integral values. - * - * Note: - * - The source pointer could be unaligned. - * - Values are read in native byte order. - * - The source pointer is incremented appropriately. - */ - -#define READ_BYTE(P,X) do { \ - const unsigned char *const _p = \ - (const unsigned char *) (P); \ - (X) = _p[0]; \ - (P) = (P) + 1; \ - } while (0) -#define READ_HALF(P,X) do { \ - uint16_t _t; \ - unsigned char *const _q = (unsigned char *) &_t; \ - const unsigned char *const _p = \ - (const unsigned char *) (P); \ - _q[0] = _p[0]; \ - _q[1] = _p[1]; \ - (P) = (P) + 2; \ - (X) = _t; \ - } while (0) -#define _READ_WORD(P,X,T) do { \ - uint32_t _t; \ - unsigned char *const _q = (unsigned char *) &_t; \ - const unsigned char *const _p = \ - (const unsigned char *) (P); \ - _q[0] = _p[0]; \ - _q[1] = _p[1]; \ - _q[2] = _p[2]; \ - _q[3] = _p[3]; \ - (P) = (P) + 4; \ - (X) = (T) _t; \ - } while (0) -#define READ_ADDR32(P,X) _READ_WORD(P, X, Elf32_Addr) -#define READ_OFF32(P,X) _READ_WORD(P, X, Elf32_Off) -#define READ_SWORD(P,X) _READ_WORD(P, X, Elf32_Sword) -#define READ_WORD(P,X) _READ_WORD(P, X, Elf32_Word) -#define _READ_WORD64(P,X,T) do { \ - uint64_t _t; \ - unsigned char *const _q = (unsigned char *) &_t; \ - const unsigned char *const _p = \ - (const unsigned char *) (P); \ - _q[0] = _p[0]; \ - _q[1] = _p[1]; \ - _q[2] = _p[2]; \ - _q[3] = _p[3]; \ - _q[4] = _p[4]; \ - _q[5] = _p[5]; \ - _q[6] = _p[6]; \ - _q[7] = _p[7]; \ - (P) = (P) + 8; \ - (X) = (T) _t; \ - } while (0) -#define READ_ADDR64(P,X) _READ_WORD64(P, X, Elf64_Addr) -#define READ_LWORD(P,X) _READ_WORD64(P, X, Elf64_Lword) -#define READ_OFF64(P,X) _READ_WORD64(P, X, Elf64_Off) -#define READ_SXWORD(P,X) _READ_WORD64(P, X, Elf64_Sxword) -#define READ_XWORD(P,X) _READ_WORD64(P, X, Elf64_Xword) -#define READ_IDENT(P,X) do { \ - (void) memcpy((X), (P), sizeof((X))); \ - (P) = (P) + EI_NIDENT; \ - } while (0) - -#define ROUNDUP2(V,N) (V) = ((((V) + (N) - 1)) & ~((N) - 1)) - -/*[*/ -MAKE_TYPE_CONVERTERS(ELF_TYPE_LIST) -MAKE_VERSION_CONVERTERS(VDEF,Verdef,Verdaux,vd) -MAKE_VERSION_CONVERTERS(VNEED,Verneed,Vernaux,vn) -/*]*/ - -/* - * Sections of type ELF_T_BYTE are never byteswapped, consequently a - * simple memcpy suffices for both directions of conversion. - */ - -static int -_libelf_cvt_BYTE_tox(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - (void) byteswap; - if (dsz < count) - return (0); - if (dst != src) - (void) memcpy(dst, src, count); - return (1); -} - -/* - * Sections of type ELF_T_GNUHASH start with a header containing 4 32-bit - * words. Bloom filter data comes next, followed by hash buckets and the - * hash chain. - * - * Bloom filter words are 64 bit wide on ELFCLASS64 objects and are 32 bit - * wide on ELFCLASS32 objects. The other objects in this section are 32 - * bits wide. - * - * Argument `srcsz' denotes the number of bytes to be converted. In the - * 32-bit case we need to translate `srcsz' to a count of 32-bit words. - */ - -static int -_libelf_cvt_GNUHASH32_tom(unsigned char *dst, size_t dsz, unsigned char *src, - size_t srcsz, int byteswap) -{ - return (_libelf_cvt_WORD_tom(dst, dsz, src, srcsz / sizeof(uint32_t), - byteswap)); -} - -static int -_libelf_cvt_GNUHASH32_tof(unsigned char *dst, size_t dsz, unsigned char *src, - size_t srcsz, int byteswap) -{ - return (_libelf_cvt_WORD_tof(dst, dsz, src, srcsz / sizeof(uint32_t), - byteswap)); -} - -static int -_libelf_cvt_GNUHASH64_tom(unsigned char *dst, size_t dsz, unsigned char *src, - size_t srcsz, int byteswap) -{ - size_t sz; - uint64_t t64, *bloom64; - Elf_GNU_Hash_Header *gh; - uint32_t n, nbuckets, nchains, maskwords, shift2, symndx, t32; - uint32_t *buckets, *chains; - - sz = 4 * sizeof(uint32_t); /* File header is 4 words long. */ - if (dsz < sizeof(Elf_GNU_Hash_Header) || srcsz < sz) - return (0); - - /* Read in the section header and byteswap if needed. */ - READ_WORD(src, nbuckets); - READ_WORD(src, symndx); - READ_WORD(src, maskwords); - READ_WORD(src, shift2); - - srcsz -= sz; - - if (byteswap) { - SWAP_WORD(nbuckets); - SWAP_WORD(symndx); - SWAP_WORD(maskwords); - SWAP_WORD(shift2); - } - - /* Check source buffer and destination buffer sizes. */ - sz = nbuckets * sizeof(uint32_t) + maskwords * sizeof(uint64_t); - if (srcsz < sz || dsz < sz + sizeof(Elf_GNU_Hash_Header)) - return (0); - - gh = (Elf_GNU_Hash_Header *) (uintptr_t) dst; - gh->gh_nbuckets = nbuckets; - gh->gh_symndx = symndx; - gh->gh_maskwords = maskwords; - gh->gh_shift2 = shift2; - - dsz -= sizeof(Elf_GNU_Hash_Header); - dst += sizeof(Elf_GNU_Hash_Header); - - bloom64 = (uint64_t *) (uintptr_t) dst; - - /* Copy bloom filter data. */ - for (n = 0; n < maskwords; n++) { - READ_XWORD(src, t64); - if (byteswap) - SWAP_XWORD(t64); - bloom64[n] = t64; - } - - /* The hash buckets follows the bloom filter. */ - dst += maskwords * sizeof(uint64_t); - buckets = (uint32_t *) (uintptr_t) dst; - - for (n = 0; n < nbuckets; n++) { - READ_WORD(src, t32); - if (byteswap) - SWAP_WORD(t32); - buckets[n] = t32; - } - - dst += nbuckets * sizeof(uint32_t); - - /* The hash chain follows the hash buckets. */ - dsz -= sz; - srcsz -= sz; - - if (dsz < srcsz) /* Destination lacks space. */ - return (0); - - nchains = (uint32_t) (srcsz / sizeof(uint32_t)); - chains = (uint32_t *) (uintptr_t) dst; - - for (n = 0; n < nchains; n++) { - READ_WORD(src, t32); - if (byteswap) - SWAP_WORD(t32); - *chains++ = t32; - } - - return (1); -} - -static int -_libelf_cvt_GNUHASH64_tof(unsigned char *dst, size_t dsz, unsigned char *src, - size_t srcsz, int byteswap) -{ - uint32_t *s32; - size_t sz, hdrsz; - uint64_t *s64, t64; - Elf_GNU_Hash_Header *gh; - uint32_t maskwords, n, nbuckets, nchains, t0, t1, t2, t3, t32; - - hdrsz = 4 * sizeof(uint32_t); /* Header is 4x32 bits. */ - if (dsz < hdrsz || srcsz < sizeof(Elf_GNU_Hash_Header)) - return (0); - - gh = (Elf_GNU_Hash_Header *) (uintptr_t) src; - - t0 = nbuckets = gh->gh_nbuckets; - t1 = gh->gh_symndx; - t2 = maskwords = gh->gh_maskwords; - t3 = gh->gh_shift2; - - src += sizeof(Elf_GNU_Hash_Header); - srcsz -= sizeof(Elf_GNU_Hash_Header); - dsz -= hdrsz; - - sz = gh->gh_nbuckets * sizeof(uint32_t) + gh->gh_maskwords * - sizeof(uint64_t); - - if (srcsz < sz || dsz < sz) - return (0); - - /* Write out the header. */ - if (byteswap) { - SWAP_WORD(t0); - SWAP_WORD(t1); - SWAP_WORD(t2); - SWAP_WORD(t3); - } - - WRITE_WORD(dst, t0); - WRITE_WORD(dst, t1); - WRITE_WORD(dst, t2); - WRITE_WORD(dst, t3); - - /* Copy the bloom filter and the hash table. */ - s64 = (uint64_t *) (uintptr_t) src; - for (n = 0; n < maskwords; n++) { - t64 = *s64++; - if (byteswap) - SWAP_XWORD(t64); - WRITE_WORD64(dst, t64); - } - - s32 = (uint32_t *) s64; - for (n = 0; n < nbuckets; n++) { - t32 = *s32++; - if (byteswap) - SWAP_WORD(t32); - WRITE_WORD(dst, t32); - } - - srcsz -= sz; - dsz -= sz; - - /* Copy out the hash chains. */ - if (dsz < srcsz) - return (0); - - nchains = (uint32_t) (srcsz / sizeof(uint32_t)); - for (n = 0; n < nchains; n++) { - t32 = *s32++; - if (byteswap) - SWAP_WORD(t32); - WRITE_WORD(dst, t32); - } - - return (1); -} - -/* - * Elf_Note structures comprise a fixed size header followed by variable - * length strings. The fixed size header needs to be byte swapped, but - * not the strings. - * - * Argument `count' denotes the total number of bytes to be converted. - * The destination buffer needs to be at least `count' bytes in size. - */ -static int -_libelf_cvt_NOTE_tom(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - uint32_t namesz, descsz, type; - Elf_Note *en; - size_t sz, hdrsz; - - if (dsz < count) /* Destination buffer is too small. */ - return (0); - - hdrsz = 3 * sizeof(uint32_t); - if (count < hdrsz) /* Source too small. */ - return (0); - - if (!byteswap) { - (void) memcpy(dst, src, count); - return (1); - } - - /* Process all notes in the section. */ - while (count > hdrsz) { - /* Read the note header. */ - READ_WORD(src, namesz); - READ_WORD(src, descsz); - READ_WORD(src, type); - - /* Translate. */ - SWAP_WORD(namesz); - SWAP_WORD(descsz); - SWAP_WORD(type); - - /* Copy out the translated note header. */ - en = (Elf_Note *) (uintptr_t) dst; - en->n_namesz = namesz; - en->n_descsz = descsz; - en->n_type = type; - - dsz -= sizeof(Elf_Note); - dst += sizeof(Elf_Note); - count -= hdrsz; - - ROUNDUP2(namesz, 4U); - ROUNDUP2(descsz, 4U); - - sz = namesz + descsz; - - if (count < sz || dsz < sz) /* Buffers are too small. */ - return (0); - - /* Copy the remainder of the note as-is. */ - (void) memcpy(dst, src, sz); - - src += sz; - dst += sz; - - count -= sz; - dsz -= sz; - } - - return (1); -} - -static int -_libelf_cvt_NOTE_tof(unsigned char *dst, size_t dsz, unsigned char *src, - size_t count, int byteswap) -{ - uint32_t namesz, descsz, type; - Elf_Note *en; - size_t sz; - - if (dsz < count) - return (0); - - if (!byteswap) { - (void) memcpy(dst, src, count); - return (1); - } - - while (count > sizeof(Elf_Note)) { - - en = (Elf_Note *) (uintptr_t) src; - namesz = en->n_namesz; - descsz = en->n_descsz; - type = en->n_type; - - sz = namesz; - ROUNDUP2(sz, 4U); - sz += descsz; - ROUNDUP2(sz, 4U); - - SWAP_WORD(namesz); - SWAP_WORD(descsz); - SWAP_WORD(type); - - WRITE_WORD(dst, namesz); - WRITE_WORD(dst, descsz); - WRITE_WORD(dst, type); - - src += sizeof(Elf_Note); - count -= sizeof(Elf_Note); - - if (count < sz) - sz = count; - - /* Copy the remainder of the note as-is. */ - (void) memcpy(dst, src, sz); - - src += sz; - dst += sz; - count -= sz; - } - - return (1); -} - -struct converters { - int (*tof32)(unsigned char *dst, size_t dsz, unsigned char *src, - size_t cnt, int byteswap); - int (*tom32)(unsigned char *dst, size_t dsz, unsigned char *src, - size_t cnt, int byteswap); - int (*tof64)(unsigned char *dst, size_t dsz, unsigned char *src, - size_t cnt, int byteswap); - int (*tom64)(unsigned char *dst, size_t dsz, unsigned char *src, - size_t cnt, int byteswap); -}; - - -static struct converters cvt[ELF_T_NUM] = { - /*[*/ -CONVERTER_NAMES(ELF_TYPE_LIST) - /*]*/ - - /* - * Types that need hand-coded converters follow. - */ - - [ELF_T_BYTE] = { - .tof32 = _libelf_cvt_BYTE_tox, - .tom32 = _libelf_cvt_BYTE_tox, - .tof64 = _libelf_cvt_BYTE_tox, - .tom64 = _libelf_cvt_BYTE_tox - }, - - [ELF_T_NOTE] = { - .tof32 = _libelf_cvt_NOTE_tof, - .tom32 = _libelf_cvt_NOTE_tom, - .tof64 = _libelf_cvt_NOTE_tof, - .tom64 = _libelf_cvt_NOTE_tom - } -}; - -/* - * Return a translator function for the specified ELF section type, conversion - * direction, ELF class and ELF machine. - */ -_libelf_translator_function * -_libelf_get_translator(Elf_Type t, int direction, int elfclass, int elfmachine) -{ - assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); - assert(direction == ELF_TOFILE || direction == ELF_TOMEMORY); - assert(t >= ELF_T_FIRST && t <= ELF_T_LAST); - - /* TODO: Handle MIPS64 REL{,A} sections (ticket #559). */ - (void) elfmachine; - - return ((elfclass == ELFCLASS32) ? - (direction == ELF_TOFILE ? cvt[t].tof32 : cvt[t].tom32) : - (direction == ELF_TOFILE ? cvt[t].tof64 : cvt[t].tom64)); -} diff --git a/contrib/elftoolchain/libelf/libelf_data.c b/contrib/elftoolchain/libelf/libelf_data.c deleted file mode 100644 index 19c2828f..00000000 --- a/contrib/elftoolchain/libelf/libelf_data.c +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -int -_libelf_xlate_shtype(uint32_t sht) -{ - /* - * Look for known section types. - */ - switch (sht) { - case SHT_DYNAMIC: - return (ELF_T_DYN); - case SHT_DYNSYM: - return (ELF_T_SYM); - case SHT_FINI_ARRAY: - return (ELF_T_ADDR); - case SHT_GNU_HASH: - return (ELF_T_GNUHASH); - case SHT_GNU_LIBLIST: - return (ELF_T_WORD); - case SHT_GROUP: - return (ELF_T_WORD); - case SHT_HASH: - return (ELF_T_WORD); - case SHT_INIT_ARRAY: - return (ELF_T_ADDR); - case SHT_NOBITS: - return (ELF_T_BYTE); - case SHT_NOTE: - return (ELF_T_NOTE); - case SHT_PREINIT_ARRAY: - return (ELF_T_ADDR); - case SHT_PROGBITS: - return (ELF_T_BYTE); - case SHT_REL: - return (ELF_T_REL); - case SHT_RELA: - return (ELF_T_RELA); - case SHT_STRTAB: - return (ELF_T_BYTE); - case SHT_SYMTAB: - return (ELF_T_SYM); - case SHT_SYMTAB_SHNDX: - return (ELF_T_WORD); - case SHT_SUNW_dof: - return (ELF_T_BYTE); - case SHT_SUNW_move: - return (ELF_T_MOVE); - case SHT_SUNW_syminfo: - return (ELF_T_SYMINFO); - case SHT_SUNW_verdef: /* == SHT_GNU_verdef */ - return (ELF_T_VDEF); - case SHT_SUNW_verneed: /* == SHT_GNU_verneed */ - return (ELF_T_VNEED); - case SHT_SUNW_versym: /* == SHT_GNU_versym */ - return (ELF_T_HALF); - default: - /* - * Values in the range [SHT_LOOS..SHT_HIUSER] (i.e., - * OS, processor and user-defined section types) are - * legal, but since we do not know anything more about - * their semantics, we return a type of ELF_T_BYTE. - * - * The ELF specification uses 32 bit unsigned values for - * denoting section types, and defines SHT_HIUSER to be - * 0xFFFFFFFFUL (i.e., UINT32_MAX). Consequently, we only - * need to check that 'sht' is greater than or equal to - * SHT_LOOS. - */ - if (sht >= SHT_LOOS) - return (ELF_T_BYTE); - - /* - * Other values are unsupported. - */ - return (-1); - } -} diff --git a/contrib/elftoolchain/libelf/libelf_ehdr.c b/contrib/elftoolchain/libelf/libelf_ehdr.c deleted file mode 100644 index dc4a2162..00000000 --- a/contrib/elftoolchain/libelf/libelf_ehdr.c +++ /dev/null @@ -1,212 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Retrieve counts for sections, phdrs and the section string table index - * from section header #0 of the ELF object. - */ -static int -_libelf_load_extended(Elf *e, int ec, uint64_t shoff, uint16_t phnum, - uint16_t strndx) -{ - size_t fsz; - Elf_Scn *scn; - uint32_t shtype; - _libelf_translator_function *xlator; - - assert(STAILQ_EMPTY(&e->e_u.e_elf.e_scn)); - - fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, 1); - assert(fsz > 0); - - if (shoff + fsz < shoff) { /* Numeric overflow. */ - LIBELF_SET_ERROR(HEADER, 0); - return (0); - } - - if ((uint64_t) e->e_rawsize < shoff + fsz) { - LIBELF_SET_ERROR(HEADER, 0); - return (0); - } - - if ((scn = _libelf_allocate_scn(e, (size_t) 0)) == NULL) - return (0); - - xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec, - _libelf_elfmachine(e)); - (*xlator)((unsigned char *) &scn->s_shdr, sizeof(scn->s_shdr), - (unsigned char *) e->e_rawfile + shoff, (size_t) 1, - e->e_byteorder != LIBELF_PRIVATE(byteorder)); - -#define GET_SHDR_MEMBER(M) ((ec == ELFCLASS32) ? scn->s_shdr.s_shdr32.M : \ - scn->s_shdr.s_shdr64.M) - - if ((shtype = GET_SHDR_MEMBER(sh_type)) != SHT_NULL) { - LIBELF_SET_ERROR(SECTION, 0); - return (0); - } - - e->e_u.e_elf.e_nscn = (size_t) GET_SHDR_MEMBER(sh_size); - e->e_u.e_elf.e_nphdr = (phnum != PN_XNUM) ? phnum : - GET_SHDR_MEMBER(sh_info); - e->e_u.e_elf.e_strndx = (strndx != SHN_XINDEX) ? strndx : - GET_SHDR_MEMBER(sh_link); -#undef GET_SHDR_MEMBER - - return (1); -} - -#define EHDR_INIT(E,SZ) do { \ - Elf##SZ##_Ehdr *eh = (E); \ - eh->e_ident[EI_MAG0] = ELFMAG0; \ - eh->e_ident[EI_MAG1] = ELFMAG1; \ - eh->e_ident[EI_MAG2] = ELFMAG2; \ - eh->e_ident[EI_MAG3] = ELFMAG3; \ - eh->e_ident[EI_CLASS] = ELFCLASS##SZ; \ - eh->e_ident[EI_DATA] = ELFDATANONE; \ - eh->e_ident[EI_VERSION] = LIBELF_PRIVATE(version) & 0xFFU; \ - eh->e_machine = EM_NONE; \ - eh->e_type = ELF_K_NONE; \ - eh->e_version = LIBELF_PRIVATE(version); \ - } while (0) - -void * -_libelf_ehdr(Elf *e, int ec, int allocate) -{ - void *ehdr; - size_t fsz, msz; - uint16_t phnum, shnum, strndx; - uint64_t shoff; - int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, - size_t _c, int _swap); - - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (e == NULL || e->e_kind != ELF_K_ELF) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (e->e_class != ELFCLASSNONE && e->e_class != ec) { - LIBELF_SET_ERROR(CLASS, 0); - return (NULL); - } - - if (e->e_version != EV_CURRENT) { - LIBELF_SET_ERROR(VERSION, 0); - return (NULL); - } - - if (e->e_class == ELFCLASSNONE) - e->e_class = ec; - - if (ec == ELFCLASS32) - ehdr = (void *) e->e_u.e_elf.e_ehdr.e_ehdr32; - else - ehdr = (void *) e->e_u.e_elf.e_ehdr.e_ehdr64; - - if (ehdr != NULL) /* already have a translated ehdr */ - return (ehdr); - - fsz = _libelf_fsize(ELF_T_EHDR, ec, e->e_version, (size_t) 1); - assert(fsz > 0); - - if (e->e_cmd != ELF_C_WRITE && e->e_rawsize < (off_t) fsz) { - LIBELF_SET_ERROR(HEADER, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_EHDR, ec, EV_CURRENT)) == 0) - return (NULL); - - if ((ehdr = calloc((size_t) 1, msz)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - e->e_u.e_elf.e_ehdr.e_ehdr32 = ehdr; - EHDR_INIT(ehdr,32); - } else { - e->e_u.e_elf.e_ehdr.e_ehdr64 = ehdr; - EHDR_INIT(ehdr,64); - } - - if (allocate) - e->e_flags |= ELF_F_DIRTY; - - if (e->e_cmd == ELF_C_WRITE) - return (ehdr); - - xlator = _libelf_get_translator(ELF_T_EHDR, ELF_TOMEMORY, ec, - _libelf_elfmachine(e)); - (*xlator)((unsigned char*) ehdr, msz, e->e_rawfile, (size_t) 1, - e->e_byteorder != LIBELF_PRIVATE(byteorder)); - - if (ec == ELFCLASS32) { - phnum = ((Elf32_Ehdr *) ehdr)->e_phnum; - shnum = ((Elf32_Ehdr *) ehdr)->e_shnum; - shoff = ((Elf32_Ehdr *) ehdr)->e_shoff; - strndx = ((Elf32_Ehdr *) ehdr)->e_shstrndx; - } else { - phnum = ((Elf64_Ehdr *) ehdr)->e_phnum; - shnum = ((Elf64_Ehdr *) ehdr)->e_shnum; - shoff = ((Elf64_Ehdr *) ehdr)->e_shoff; - strndx = ((Elf64_Ehdr *) ehdr)->e_shstrndx; - } - - if (shnum >= SHN_LORESERVE || - (shoff == 0LL && (shnum != 0 || phnum == PN_XNUM || - strndx == SHN_XINDEX))) { - LIBELF_SET_ERROR(HEADER, 0); - return (NULL); - } - - /* - * If extended numbering is being used, read the correct - * number of sections and program header entries. - */ - if ((shnum == 0 && shoff != 0) || phnum == PN_XNUM || strndx == SHN_XINDEX) { - if (_libelf_load_extended(e, ec, shoff, phnum, strndx) == 0) - return (NULL); - } else { - /* not using extended numbering */ - e->e_u.e_elf.e_nphdr = phnum; - e->e_u.e_elf.e_nscn = shnum; - e->e_u.e_elf.e_strndx = strndx; - } - - return (ehdr); -} diff --git a/contrib/elftoolchain/libelf/libelf_elfmachine.c b/contrib/elftoolchain/libelf/libelf_elfmachine.c deleted file mode 100644 index f9c42395..00000000 --- a/contrib/elftoolchain/libelf/libelf_elfmachine.c +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * Copyright (c) 2018 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * A convenience helper that returns the ELF machine architecture for - * a ELF descriptor. - */ -int -_libelf_elfmachine(Elf *e) -{ - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - - if (!e) - return EM_NONE; - - assert(e->e_kind == ELF_K_ELF); - assert(e->e_class != ELFCLASSNONE); - - eh32 = NULL; - eh64 = NULL; - - switch (e->e_class) { - case ELFCLASS32: - eh32 = e->e_u.e_elf.e_ehdr.e_ehdr32; - return eh32 ? eh32->e_machine : EM_NONE; - case ELFCLASS64: - eh64 = e->e_u.e_elf.e_ehdr.e_ehdr64; - return eh64 ? eh64->e_machine : EM_NONE; - } - - return (EM_NONE); -} diff --git a/contrib/elftoolchain/libelf/libelf_extended.c b/contrib/elftoolchain/libelf/libelf_extended.c deleted file mode 100644 index e49e8cb7..00000000 --- a/contrib/elftoolchain/libelf/libelf_extended.c +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Retrieve section #0, allocating a new section if needed. - */ -static Elf_Scn * -_libelf_getscn0(Elf *e) -{ - Elf_Scn *s; - - if ((s = STAILQ_FIRST(&e->e_u.e_elf.e_scn)) != NULL) - return (s); - - return (_libelf_allocate_scn(e, (size_t) SHN_UNDEF)); -} - -int -_libelf_setshnum(Elf *e, void *eh, int ec, size_t shnum) -{ - Elf_Scn *scn; - - if (shnum >= SHN_LORESERVE) { - if ((scn = _libelf_getscn0(e)) == NULL) - return (0); - - assert(scn->s_ndx == SHN_UNDEF); - - if (ec == ELFCLASS32) - scn->s_shdr.s_shdr32.sh_size = (Elf32_Word) shnum; - else - scn->s_shdr.s_shdr64.sh_size = shnum; - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - shnum = 0; - } - - if (ec == ELFCLASS32) - ((Elf32_Ehdr *) eh)->e_shnum = shnum & 0xFFFFU; - else - ((Elf64_Ehdr *) eh)->e_shnum = shnum & 0xFFFFU; - - - return (1); -} - -int -_libelf_setshstrndx(Elf *e, void *eh, int ec, size_t shstrndx) -{ - Elf_Scn *scn; - - if (shstrndx >= SHN_LORESERVE) { - if ((scn = _libelf_getscn0(e)) == NULL) - return (0); - - assert(scn->s_ndx == SHN_UNDEF); - - if (ec == ELFCLASS32) - scn->s_shdr.s_shdr32.sh_link = (Elf32_Word) shstrndx; - else - scn->s_shdr.s_shdr64.sh_link = (Elf64_Word) shstrndx; - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - shstrndx = SHN_XINDEX; - } - - if (ec == ELFCLASS32) - ((Elf32_Ehdr *) eh)->e_shstrndx = shstrndx & 0xFFFFU; - else - ((Elf64_Ehdr *) eh)->e_shstrndx = shstrndx & 0xFFFFU; - - return (1); -} - -int -_libelf_setphnum(Elf *e, void *eh, int ec, size_t phnum) -{ - Elf_Scn *scn; - - if (phnum >= PN_XNUM) { - if ((scn = _libelf_getscn0(e)) == NULL) - return (0); - - assert(scn->s_ndx == SHN_UNDEF); - - if (ec == ELFCLASS32) - scn->s_shdr.s_shdr32.sh_info = (Elf32_Word) phnum; - else - scn->s_shdr.s_shdr64.sh_info = (Elf64_Word) phnum; - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - phnum = PN_XNUM; - } - - if (ec == ELFCLASS32) - ((Elf32_Ehdr *) eh)->e_phnum = phnum & 0xFFFFU; - else - ((Elf64_Ehdr *) eh)->e_phnum = phnum & 0xFFFFU; - - return (1); -} diff --git a/contrib/elftoolchain/libelf/libelf_fsize.m4 b/contrib/elftoolchain/libelf/libelf_fsize.m4 deleted file mode 100644 index e8418fe9..00000000 --- a/contrib/elftoolchain/libelf/libelf_fsize.m4 +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -/* - * Create an array of file sizes from the elf_type definitions - */ - -divert(-1) -include(SRCDIR`/elf_types.m4') - -/* - * Translations from structure definitions to the size of their file - * representations. - */ - -/* `Basic' types. */ -define(`BYTE_SIZE', 1) -define(`IDENT_SIZE', `EI_NIDENT') - -/* Types that have variable length. */ -define(`GNUHASH_SIZE', 1) -define(`NOTE_SIZE', 1) -define(`VDEF_SIZE', 1) -define(`VNEED_SIZE', 1) - -/* Currently unimplemented types. */ -define(`MOVEP_SIZE', 0) - -/* Overrides for 32 bit types that do not exist. */ -define(`XWORD_SIZE32', 0) -define(`SXWORD_SIZE32', 0) - -/* - * FSZ{32,64} define the sizes of 32 and 64 bit file structures respectively. - */ - -define(`FSZ32',`_FSZ32($1_DEF)') -define(`_FSZ32', - `ifelse($#,1,0, - `_BSZ32($1)+_FSZ32(shift($@))')') -define(`_BSZ32',`$2_SIZE32') - -define(`FSZ64',`_FSZ64($1_DEF)') -define(`_FSZ64', - `ifelse($#,1,0, - `_BSZ64($1)+_FSZ64(shift($@))')') -define(`_BSZ64',`$2_SIZE64') - -/* - * DEFINE_ELF_FSIZES(TYPE,NAME) - * - * Shorthand for defining for 32 and 64 versions - * of elf type TYPE. - * - * If TYPE`'_SIZE is defined, use its value for both 32 bit and 64 bit - * sizes. - * - * Otherwise, look for a explicit 32/64 bit size definition for TYPE, - * TYPE`'_SIZE32 or TYPE`'_SIZE64. If this definition is present, there - * is nothing further to do. - * - * Otherwise, if an Elf{32,64}_`'NAME structure definition is known, - * compute an expression that adds up the sizes of the structure's - * constituents. - * - * If such a structure definition is not known, treat TYPE as a primitive - * (i.e., integral) type and use sizeof(Elf{32,64}_`'NAME) to get its - * file representation size. - */ - -define(`DEFINE_ELF_FSIZE', - `ifdef($1`_SIZE', - `define($1_SIZE32,$1_SIZE) - define($1_SIZE64,$1_SIZE)', - `ifdef($1`_SIZE32',`', - `ifdef(`Elf32_'$2`_DEF', - `define($1_SIZE32,FSZ32(Elf32_$2))', - `define($1_SIZE32,`sizeof(Elf32_'$2`)')')') - ifdef($1`_SIZE64',`', - `ifdef(`Elf64_'$2`_DEF', - `define($1_SIZE64,FSZ64(Elf64_$2))', - `define($1_SIZE64,`sizeof(Elf64_'$2`)')')')')') - -define(`DEFINE_ELF_FSIZES', - `ifelse($#,1,`', - `DEFINE_ELF_FSIZE($1) - DEFINE_ELF_FSIZES(shift($@))')') - -DEFINE_ELF_FSIZES(ELF_TYPE_LIST) -DEFINE_ELF_FSIZE(`IDENT',`') # `IDENT' is a pseudo type - -define(`FSIZE', - `[ELF_T_$1] = { .fsz32 = $1_SIZE32, .fsz64 = $1_SIZE64 }, -') -define(`FSIZES', - `ifelse($#,1,`', - `FSIZE($1) -FSIZES(shift($@))')') - -divert(0) - -struct fsize { - size_t fsz32; - size_t fsz64; -}; - -static struct fsize fsize[ELF_T_NUM] = { -FSIZES(ELF_TYPE_LIST) -}; - -size_t -_libelf_fsize(Elf_Type t, int ec, unsigned int v, size_t c) -{ - size_t sz; - - sz = 0; - if (v != EV_CURRENT) - LIBELF_SET_ERROR(VERSION, 0); - else if ((int) t < ELF_T_FIRST || t > ELF_T_LAST) - LIBELF_SET_ERROR(ARGUMENT, 0); - else { - sz = ec == ELFCLASS64 ? fsize[t].fsz64 : fsize[t].fsz32; - if (sz == 0) - LIBELF_SET_ERROR(UNIMPL, 0); - } - - return (sz*c); -} diff --git a/contrib/elftoolchain/libelf/libelf_memory.c b/contrib/elftoolchain/libelf/libelf_memory.c deleted file mode 100644 index cc393d16..00000000 --- a/contrib/elftoolchain/libelf/libelf_memory.c +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * Copyright (c) 2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Create an ELF descriptor for a memory image, optionally reporting - * parse errors. - */ - -Elf * -_libelf_memory(unsigned char *image, size_t sz, int reporterror) -{ - Elf *e; - int e_class; - enum Elf_Error error; - unsigned int e_byteorder, e_version; - - assert(image != NULL); - assert(sz > 0); - - if ((e = _libelf_allocate_elf()) == NULL) - return (NULL); - - e->e_cmd = ELF_C_READ; - e->e_rawfile = image; - e->e_rawsize = (off_t) sz; - -#undef LIBELF_IS_ELF -#define LIBELF_IS_ELF(P) ((P)[EI_MAG0] == ELFMAG0 && \ - (P)[EI_MAG1] == ELFMAG1 && (P)[EI_MAG2] == ELFMAG2 && \ - (P)[EI_MAG3] == ELFMAG3) - - if (sz > EI_NIDENT && LIBELF_IS_ELF(image)) { - e_byteorder = image[EI_DATA]; - e_class = image[EI_CLASS]; - e_version = image[EI_VERSION]; - - error = ELF_E_NONE; - - if (e_version > EV_CURRENT) - error = ELF_E_VERSION; - else if ((e_byteorder != ELFDATA2LSB && e_byteorder != - ELFDATA2MSB) || (e_class != ELFCLASS32 && e_class != - ELFCLASS64)) - error = ELF_E_HEADER; - - if (error != ELF_E_NONE) { - if (reporterror) { - LIBELF_PRIVATE(error) = LIBELF_ERROR(error, 0); - _libelf_release_elf(e); - return (NULL); - } - } else { - _libelf_init_elf(e, ELF_K_ELF); - - e->e_byteorder = e_byteorder; - e->e_class = e_class; - e->e_version = e_version; - } - } else if (sz >= SARMAG && - strncmp((const char *) image, ARMAG, (size_t) SARMAG) == 0) - return (_libelf_ar_open(e, reporterror)); - - return (e); -} diff --git a/contrib/elftoolchain/libelf/libelf_msize.m4 b/contrib/elftoolchain/libelf/libelf_msize.m4 deleted file mode 100644 index f8a64d2a..00000000 --- a/contrib/elftoolchain/libelf/libelf_msize.m4 +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* WARNING: GENERATED FROM __file__. */ - -struct msize { - size_t msz32; - size_t msz64; -}; - -divert(-1) -include(SRCDIR`/elf_types.m4') - -/* - * ELF types whose memory representations have a variable size. - */ -define(BYTE_SIZE, 1) -define(GNUHASH_SIZE, 1) -define(NOTE_SIZE, 1) -define(VDEF_SIZE, 1) -define(VNEED_SIZE, 1) - -/* - * Unimplemented types. - */ -define(MOVEP_SIZE, 0) -define(SXWORD_SIZE32, 0) -define(XWORD_SIZE32, 0) - -define(`DEFINE_ELF_MSIZE', - `ifdef($1`_SIZE', - `define($1_SIZE32,$1_SIZE) - define($1_SIZE64,$1_SIZE)', - `ifdef($1`_SIZE32',`', - `define($1_SIZE32,sizeof(Elf32_$2))') - ifdef($1`_SIZE64',`', - `define($1_SIZE64,sizeof(Elf64_$2))')')') -define(`DEFINE_ELF_MSIZES', - `ifelse($#,1,`', - `DEFINE_ELF_MSIZE($1) - DEFINE_ELF_MSIZES(shift($@))')') - -DEFINE_ELF_MSIZES(ELF_TYPE_LIST) - -define(`MSIZE', - `[ELF_T_$1] = { .msz32 = $1_SIZE32, .msz64 = $1_SIZE64 }, -') -define(`MSIZES', - `ifelse($#,1,`', - `MSIZE($1) -MSIZES(shift($@))')') - -divert(0) - -static struct msize msize[ELF_T_NUM] = { -MSIZES(ELF_TYPE_LIST) -}; - -/* - * Returns the memory size of the specified ELF type 't' of ELF - * class 'ec' and ELF version 'version'. - * - * If the specified combination of ELF type, class, and version is - * unsupported then a value of 0 will be returned and the appropriate - * library error code set. - */ -size_t -_libelf_msize(Elf_Type t, int elfclass, unsigned int version) -{ - size_t sz; - - assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); - assert((signed) t >= ELF_T_FIRST && t <= ELF_T_LAST); - - if (version != EV_CURRENT) { - LIBELF_SET_ERROR(VERSION, 0); - return (0); - } - - sz = (elfclass == ELFCLASS32) ? msize[t].msz32 : msize[t].msz64; - - if (sz == 0) { - LIBELF_SET_ERROR(UNIMPL, 0); - return (0); - } - - return (sz); -} diff --git a/contrib/elftoolchain/libelf/libelf_open.c b/contrib/elftoolchain/libelf/libelf_open.c deleted file mode 100644 index ea159c4d..00000000 --- a/contrib/elftoolchain/libelf/libelf_open.c +++ /dev/null @@ -1,249 +0,0 @@ -/*- - * Copyright (c) 2006,2008-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include - -#include "_libelf.h" - -#if ELFTC_HAVE_MMAP -#include -#endif - -ELFTC_VCSID("$Id$"); - -#define _LIBELF_INITSIZE (64*1024) - -/* - * Read from a device file, pipe or socket. - */ -static void * -_libelf_read_special_file(int fd, size_t *fsz) -{ - ssize_t readsz; - size_t bufsz, datasz; - unsigned char *buf, *t; - - datasz = 0; - readsz = 0; - bufsz = _LIBELF_INITSIZE; - if ((buf = malloc(bufsz)) == NULL) - goto resourceerror; - - /* - * Read data from the file descriptor till we reach EOF, or - * till an error is encountered. - */ - do { - /* Check if we need to expand the data buffer. */ - if (datasz == bufsz) { - bufsz *= 2; - if ((t = realloc(buf, bufsz)) == NULL) - goto resourceerror; - buf = t; - } - - do { - assert(bufsz - datasz > 0); - t = buf + datasz; - if ((readsz = read(fd, t, bufsz - datasz)) <= 0) - break; - datasz += (size_t) readsz; - } while (datasz < bufsz); - - } while (readsz > 0); - - if (readsz < 0) { - LIBELF_SET_ERROR(IO, errno); - goto error; - } - - assert(readsz == 0); - - /* - * Free up extra buffer space. - */ - if (bufsz > datasz) { - if (datasz > 0) { - if ((t = realloc(buf, datasz)) == NULL) - goto resourceerror; - buf = t; - } else { /* Zero bytes read. */ - LIBELF_SET_ERROR(ARGUMENT, 0); - free(buf); - buf = NULL; - } - } - - *fsz = datasz; - return (buf); - -resourceerror: - LIBELF_SET_ERROR(RESOURCE, 0); -error: - if (buf != NULL) - free(buf); - return (NULL); -} - -/* - * Read the contents of the file referenced by the file descriptor - * 'fd'. - */ - -Elf * -_libelf_open_object(int fd, Elf_Cmd c, int reporterror) -{ - Elf *e; - void *m; - mode_t mode; - size_t fsize; - struct stat sb; - unsigned int flags; - - assert(c == ELF_C_READ || c == ELF_C_RDWR || c == ELF_C_WRITE); - - if (fstat(fd, &sb) < 0) { - LIBELF_SET_ERROR(IO, errno); - return (NULL); - } - - mode = sb.st_mode; - fsize = (size_t) sb.st_size; - - /* - * Reject unsupported file types. - */ - if (!S_ISREG(mode) && !S_ISCHR(mode) && !S_ISFIFO(mode) && - !S_ISSOCK(mode)) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - /* - * For ELF_C_WRITE mode, allocate and return a descriptor. - */ - if (c == ELF_C_WRITE) { - if ((e = _libelf_allocate_elf()) != NULL) { - _libelf_init_elf(e, ELF_K_ELF); - e->e_byteorder = LIBELF_PRIVATE(byteorder); - e->e_fd = fd; - e->e_cmd = c; - if (!S_ISREG(mode)) - e->e_flags |= LIBELF_F_SPECIAL_FILE; - } - - return (e); - } - - - /* - * ELF_C_READ and ELF_C_RDWR mode. - */ - m = NULL; - flags = 0; - if (S_ISREG(mode)) { - - /* - * Reject zero length files. - */ - if (fsize == 0) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - -#if ELFTC_HAVE_MMAP - /* - * Always map regular files in with 'PROT_READ' - * permissions. - * - * For objects opened in ELF_C_RDWR mode, when - * elf_update(3) is called, we remove this mapping, - * write file data out using write(2), and map the new - * contents back. - */ - m = mmap(NULL, fsize, PROT_READ, MAP_PRIVATE, fd, (off_t) 0); - - if (m == MAP_FAILED) - m = NULL; - else - flags = LIBELF_F_RAWFILE_MMAP; -#endif - - /* - * Fallback to a read() if the call to mmap() failed, - * or if mmap() is not available. - */ - if (m == NULL) { - if ((m = malloc(fsize)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - if (read(fd, m, fsize) != (ssize_t) fsize) { - LIBELF_SET_ERROR(IO, errno); - free(m); - return (NULL); - } - - flags = LIBELF_F_RAWFILE_MALLOC; - } - } else if ((m = _libelf_read_special_file(fd, &fsize)) != NULL) - flags = LIBELF_F_RAWFILE_MALLOC | LIBELF_F_SPECIAL_FILE; - else - return (NULL); - - if ((e = _libelf_memory(m, fsize, reporterror)) == NULL) { - assert((flags & LIBELF_F_RAWFILE_MALLOC) || - (flags & LIBELF_F_RAWFILE_MMAP)); - if (flags & LIBELF_F_RAWFILE_MALLOC) - free(m); -#if ELFTC_HAVE_MMAP - else - (void) munmap(m, fsize); -#endif - return (NULL); - } - - /* ar(1) archives aren't supported in RDWR mode. */ - if (c == ELF_C_RDWR && e->e_kind == ELF_K_AR) { - (void) elf_end(e); - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - e->e_flags |= flags; - e->e_fd = fd; - e->e_cmd = c; - - return (e); -} diff --git a/contrib/elftoolchain/libelf/libelf_phdr.c b/contrib/elftoolchain/libelf/libelf_phdr.c deleted file mode 100644 index 78a7ff54..00000000 --- a/contrib/elftoolchain/libelf/libelf_phdr.c +++ /dev/null @@ -1,156 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -void * -_libelf_getphdr(Elf *e, int ec) -{ - size_t phnum; - size_t fsz, msz; - uint64_t phoff; - Elf32_Ehdr *eh32; - Elf64_Ehdr *eh64; - void *ehdr, *phdr; - _libelf_translator_function *xlator; - - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((phdr = (ec == ELFCLASS32 ? - (void *) e->e_u.e_elf.e_phdr.e_phdr32 : - (void *) e->e_u.e_elf.e_phdr.e_phdr64)) != NULL) - return (phdr); - - /* - * Check the PHDR related fields in the EHDR for sanity. - */ - - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) - return (NULL); - - phnum = e->e_u.e_elf.e_nphdr; - - if (ec == ELFCLASS32) { - eh32 = (Elf32_Ehdr *) ehdr; - phoff = (uint64_t) eh32->e_phoff; - } else { - eh64 = (Elf64_Ehdr *) ehdr; - phoff = (uint64_t) eh64->e_phoff; - } - - fsz = gelf_fsize(e, ELF_T_PHDR, phnum, e->e_version); - - assert(fsz > 0); - - if (phoff + fsz < phoff) { /* Numeric overflow. */ - LIBELF_SET_ERROR(HEADER, 0); - return (NULL); - } - - if ((uint64_t) e->e_rawsize < (phoff + fsz)) { - LIBELF_SET_ERROR(HEADER, 0); - return (NULL); - } - - if ((msz = _libelf_msize(ELF_T_PHDR, ec, EV_CURRENT)) == 0) - return (NULL); - - if ((phdr = calloc(phnum, msz)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - if (ec == ELFCLASS32) - e->e_u.e_elf.e_phdr.e_phdr32 = phdr; - else - e->e_u.e_elf.e_phdr.e_phdr64 = phdr; - - - xlator = _libelf_get_translator(ELF_T_PHDR, ELF_TOMEMORY, ec, - _libelf_elfmachine(e)); - (*xlator)(phdr, phnum * msz, e->e_rawfile + phoff, phnum, - e->e_byteorder != LIBELF_PRIVATE(byteorder)); - - return (phdr); -} - -void * -_libelf_newphdr(Elf *e, int ec, size_t count) -{ - void *ehdr, *newphdr, *oldphdr; - size_t msz; - - if (e == NULL) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) { - LIBELF_SET_ERROR(SEQUENCE, 0); - return (NULL); - } - - assert(e->e_class == ec); - assert(ec == ELFCLASS32 || ec == ELFCLASS64); - assert(e->e_version == EV_CURRENT); - - if ((msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version)) == 0) - return (NULL); - - newphdr = NULL; - if (count > 0 && (newphdr = calloc(count, msz)) == NULL) { - LIBELF_SET_ERROR(RESOURCE, 0); - return (NULL); - } - - if (ec == ELFCLASS32) { - if ((oldphdr = (void *) e->e_u.e_elf.e_phdr.e_phdr32) != NULL) - free(oldphdr); - e->e_u.e_elf.e_phdr.e_phdr32 = (Elf32_Phdr *) newphdr; - } else { - if ((oldphdr = (void *) e->e_u.e_elf.e_phdr.e_phdr64) != NULL) - free(oldphdr); - e->e_u.e_elf.e_phdr.e_phdr64 = (Elf64_Phdr *) newphdr; - } - - e->e_u.e_elf.e_nphdr = count; - - elf_flagphdr(e, ELF_C_SET, ELF_F_DIRTY); - - return (newphdr); -} diff --git a/contrib/elftoolchain/libelf/libelf_shdr.c b/contrib/elftoolchain/libelf/libelf_shdr.c deleted file mode 100644 index 3208516b..00000000 --- a/contrib/elftoolchain/libelf/libelf_shdr.c +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -void * -_libelf_getshdr(Elf_Scn *s, int ec) -{ - Elf *e; - - if (s == NULL || (e = s->s_elf) == NULL || - e->e_kind != ELF_K_ELF) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - if (ec == ELFCLASSNONE) - ec = e->e_class; - - if (ec != e->e_class) { - LIBELF_SET_ERROR(CLASS, 0); - return (NULL); - } - - return ((void *) &s->s_shdr); -} diff --git a/contrib/elftoolchain/libelf/libelf_xlate.c b/contrib/elftoolchain/libelf/libelf_xlate.c deleted file mode 100644 index a55c863f..00000000 --- a/contrib/elftoolchain/libelf/libelf_xlate.c +++ /dev/null @@ -1,149 +0,0 @@ -/*- - * Copyright (c) 2006,2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libelf.h" - -ELFTC_VCSID("$Id$"); - -/* - * Translate to/from the file representation of ELF objects. - * - * Translation could potentially involve the following - * transformations: - * - * - an endianness conversion, - * - a change of layout, as the file representation of ELF objects - * can differ from their in-memory representation. - * - a change in representation due to a layout version change. - */ - -Elf_Data * -_libelf_xlate(Elf_Data *dst, const Elf_Data *src, unsigned int encoding, - int elfclass, int elfmachine, int direction) -{ - int byteswap; - size_t cnt, dsz, fsz, msz; - uintptr_t sb, se, db, de; - _libelf_translator_function *xlator; - - if (encoding == ELFDATANONE) - encoding = LIBELF_PRIVATE(byteorder); - - if ((encoding != ELFDATA2LSB && encoding != ELFDATA2MSB) || - dst == NULL || src == NULL || dst == src) { - LIBELF_SET_ERROR(ARGUMENT, 0); - return (NULL); - } - - assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); - assert(direction == ELF_TOFILE || direction == ELF_TOMEMORY); - - if (dst->d_version != src->d_version) { - LIBELF_SET_ERROR(UNIMPL, 0); - return (NULL); - } - - if (src->d_buf == NULL || dst->d_buf == NULL) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - if ((int) src->d_type < 0 || src->d_type >= ELF_T_NUM) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - if ((fsz = (elfclass == ELFCLASS32 ? elf32_fsize : elf64_fsize) - (src->d_type, (size_t) 1, src->d_version)) == 0) - return (NULL); - - if ((msz = _libelf_msize(src->d_type, elfclass, src->d_version)) == 0) - return (NULL); - - if (src->d_size % (direction == ELF_TOMEMORY ? fsz : msz)) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - /* - * Determine the number of objects that need to be converted, and - * the space required for the converted objects in the destination - * buffer. - */ - if (direction == ELF_TOMEMORY) { - cnt = (size_t) src->d_size / fsz; - dsz = cnt * msz; - } else { - cnt = (size_t) src->d_size / msz; - dsz = cnt * fsz; - } - - if (dst->d_size < dsz) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - sb = (uintptr_t) src->d_buf; - se = sb + (size_t) src->d_size; - db = (uintptr_t) dst->d_buf; - de = db + (size_t) dst->d_size; - - /* - * Check for overlapping buffers. Note that db == sb is - * allowed. - */ - if (db != sb && de > sb && se > db) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - if ((direction == ELF_TOMEMORY ? db : sb) % - _libelf_malign(src->d_type, elfclass)) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - dst->d_type = src->d_type; - dst->d_size = dsz; - - byteswap = encoding != LIBELF_PRIVATE(byteorder); - - if (src->d_size == 0 || - (db == sb && !byteswap && fsz == msz)) - return (dst); /* nothing more to do */ - - xlator = _libelf_get_translator(src->d_type, direction, elfclass, - elfmachine); - if (!xlator(dst->d_buf, dsz, src->d_buf, cnt, byteswap)) { - LIBELF_SET_ERROR(DATA, 0); - return (NULL); - } - - return (dst); -} diff --git a/contrib/elftoolchain/libelf/os.FreeBSD.mk b/contrib/elftoolchain/libelf/os.FreeBSD.mk deleted file mode 100644 index 209b6fac..00000000 --- a/contrib/elftoolchain/libelf/os.FreeBSD.mk +++ /dev/null @@ -1,7 +0,0 @@ -# -# Building for a FreeBSD target. -# -# $Id$ - -# Symbol versioning support [FreeBSD 7.X and later] -VERSION_MAP= ${.CURDIR}/Version.map diff --git a/contrib/elftoolchain/libelf/os.Linux.mk b/contrib/elftoolchain/libelf/os.Linux.mk deleted file mode 100644 index 5fac553b..00000000 --- a/contrib/elftoolchain/libelf/os.Linux.mk +++ /dev/null @@ -1,30 +0,0 @@ -# Enable additional warnings. -CFLAGS+= -Wa,--fatal-warnings -CFLAGS+= -Wall -CFLAGS+= -Wcast-align -CFLAGS+= -Wcast-qual -CFLAGS+= -Wchar-subscripts -CFLAGS+= -Wconversion -CFLAGS+= -Werror -CFLAGS+= -Wextra -CFLAGS+= -Wformat=2 -CFLAGS+= -Winline -CFLAGS+= -Wmissing-prototypes -CFLAGS+= -Wnested-externs -CFLAGS+= -Wempty-body -CFLAGS+= -Wformat-y2k -CFLAGS+= -Wformat-zero-length -CFLAGS+= -Wpointer-sign -CFLAGS+= -Wpointer-to-int-cast -CFLAGS+= -Wsign-compare -CFLAGS+= -Wunused-parameter -CFLAGS+= -Wold-style-definition -CFLAGS+= -Wpointer-arith -CFLAGS+= -Wreturn-type -CFLAGS+= -Wshadow -CFLAGS+= -Wstrict-prototypes -CFLAGS+= -Wstrict-overflow -CFLAGS+= -Wswitch -CFLAGS+= -Wunused-parameter -CFLAGS+= -Wwrite-strings -CFLAGS+= -fPIC diff --git a/contrib/elftoolchain/libelf/os.NetBSD.mk b/contrib/elftoolchain/libelf/os.NetBSD.mk deleted file mode 100644 index 3c7d6f7d..00000000 --- a/contrib/elftoolchain/libelf/os.NetBSD.mk +++ /dev/null @@ -1,7 +0,0 @@ -# -# Build recipes for NetBSD. -# -# $Id$ -# - -MKLINT= no # lint dies with a sigbus diff --git a/contrib/elftoolchain/libelftc/Makefile b/contrib/elftoolchain/libelftc/Makefile deleted file mode 100644 index 2c994519..00000000 --- a/contrib/elftoolchain/libelftc/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# $Id$ - -TOP= .. - -LIB= elftc - -SRCS= elftc_bfdtarget.c \ - elftc_copyfile.c \ - elftc_demangle.c \ - elftc_reloc_type_str.c \ - elftc_set_timestamps.c \ - elftc_string_table.c \ - elftc_timestamp.c \ - elftc_version.c \ - libelftc_bfdtarget.c \ - libelftc_dem_arm.c \ - libelftc_dem_gnu2.c \ - libelftc_dem_gnu3.c \ - libelftc_hash.c \ - libelftc_vstr.c - -INCS= libelftc.h -INCSDIR= /usr/include - -RELEASE= HEAD # Change this on release branches. - -SHLIB_MAJOR= 1 - -WARNS?= 6 - -ELFTC_VERSION_FILE= ${.OBJDIR}/elftc_version.c -CLEANFILES+= ${ELFTC_VERSION_FILE} - -LDADD+= -lelf - -MAN= elftc.3 \ - elftc_bfd_find_target.3 \ - elftc_copyfile.3 \ - elftc_demangle.3 \ - elftc_reloc_type_str.3 \ - elftc_set_timestamps.3 \ - elftc_string_table_create.3 \ - elftc_version.3 - -MLINKS= elftc_bfd_find_target.3 elftc_bfd_target_byteorder.3 \ - elftc_bfd_find_target.3 elftc_bfd_target_class.3 \ - elftc_bfd_find_target.3 elftc_bfd_target_flavor.3 \ - elftc_string_table_create.3 elftc_string_table_from_section.3 \ - elftc_string_table_create.3 elftc_string_table_destroy.3 \ - elftc_string_table_create.3 elftc_string_table_image.3 \ - elftc_string_table_create.3 elftc_string_table_insert.3 \ - elftc_string_table_create.3 elftc_string_table_lookup.3 - -.if !make(clean) && !make(clobber) && !make(obj) -.BEGIN: .SILENT - ${.CURDIR}/make-toolchain-version -t ${.CURDIR}/${TOP} \ - -r ${RELEASE} -h ${OS_HOST} -o ${ELFTC_VERSION_FILE} -.endif - -.include "${TOP}/mk/elftoolchain.lib.mk" diff --git a/contrib/elftoolchain/libelftc/Version.map b/contrib/elftoolchain/libelftc/Version.map deleted file mode 100644 index 7c3cf6c9..00000000 --- a/contrib/elftoolchain/libelftc/Version.map +++ /dev/null @@ -1,18 +0,0 @@ -/* - * $Id$ - */ - -R1.0 { -global: - elftc_bfd_find_target; - elftc_bfd_target_byteorder; - elftc_bfd_target_class; - elftc_bfd_target_flavor; - elftc_bfd_target_machine; - elftc_copyfile; - elftc_demangle; - elftc_set_timestamps; - elftc_version; -local: - *; -}; diff --git a/contrib/elftoolchain/libelftc/_libelftc.h b/contrib/elftoolchain/libelftc/_libelftc.h deleted file mode 100644 index 47e461f9..00000000 --- a/contrib/elftoolchain/libelftc/_libelftc.h +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * Copyright (c) 2007,2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef __LIBELFTC_H_ -#define __LIBELFTC_H_ - -#include - -#include "_elftc.h" - -struct _Elftc_Bfd_Target { - const char *bt_name; /* target name. */ - unsigned int bt_type; /* target type. */ - unsigned int bt_byteorder; /* elf target byteorder. */ - unsigned int bt_elfclass; /* elf target class (32/64bit). */ - unsigned int bt_machine; /* elf target arch. */ - unsigned int bt_osabi; /* elf target abi. */ -}; - -extern struct _Elftc_Bfd_Target _libelftc_targets[]; - -/** @brief Dynamic vector data for string. */ -struct vector_str { - /** Current size */ - size_t size; - /** Total capacity */ - size_t capacity; - /** String array */ - char **container; -}; - -#define BUFFER_GROWFACTOR 1.618 - -#define ELFTC_FAILURE 0 -#define ELFTC_ISDIGIT(C) (isdigit((C) & 0xFF)) -#define ELFTC_SUCCESS 1 - -#define VECTOR_DEF_CAPACITY 8 - - -#ifdef __cplusplus -extern "C" { -#endif -char *cpp_demangle_ARM(const char *_org); -char *cpp_demangle_gnu2(const char *_org); -char *cpp_demangle_gnu3(const char *_org); -bool is_cpp_mangled_ARM(const char *_org); -bool is_cpp_mangled_gnu2(const char *_org); -bool is_cpp_mangled_gnu3(const char *_org); -unsigned int libelftc_hash_string(const char *); -void vector_str_dest(struct vector_str *_vec); -int vector_str_find(const struct vector_str *_vs, const char *_str, - size_t _len); -char *vector_str_get_flat(const struct vector_str *_vs, size_t *_len); -bool vector_str_init(struct vector_str *_vs); -bool vector_str_pop(struct vector_str *_vs); -bool vector_str_push(struct vector_str *_vs, const char *_str, - size_t _len); -bool vector_str_push_vector(struct vector_str *_dst, - struct vector_str *_org); -bool vector_str_push_vector_head(struct vector_str *_dst, - struct vector_str *_org); -char *vector_str_substr(const struct vector_str *_vs, size_t _begin, - size_t _end, size_t *_rlen); -#ifdef __cplusplus -} -#endif - -#endif /* __LIBELFTC_H */ diff --git a/contrib/elftoolchain/libelftc/elftc.3 b/contrib/elftoolchain/libelftc/elftc.3 deleted file mode 100644 index 4bc2c641..00000000 --- a/contrib/elftoolchain/libelftc/elftc.3 +++ /dev/null @@ -1,83 +0,0 @@ -.\" Copyright (c) 2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 24, 2012 -.Dt ELFTC 3 -.Os -.Sh NAME -.Nm elftc -.Nd support routines used in the Elftoolchain project -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Sh DESCRIPTION -The -.Lb libelftc -provides support routines used for developing the utilities in the -Elftoolchain source tree. -.Pp -This manual page serves as an overview of the functionality in this -library. -Additional reference information may be found in the individual -manual pages for the functions listed below. -.Ss Functional Grouping -.Bl -tag -width indent -.It "Binary Object Handling" -.Bl -tag -compact -width indent -.It Fn elftc_bfd_find_target -Locate a binary object descriptor. -.It Fn elftc_bfd_target_class -Query the ELF class for a binary object descriptor. -.It Fn elftc_bfd_target_byteorder -Query the byte order for a binary object descriptor. -.It Fn elftc_bfd_target_flavor -Query the object format for a binary object descriptor. -.It Fn elftc_bfd_target_machine -Query the target machine for a binary object descriptor. -.El -.It "C++ support" -.Bl -tag -compact -width indent -.It Fn elftc_demangle -Decodes a symbol name encoded according to the encoding rules for the -C++ language. -.El -.It "Programming conveniences" -.Bl -tag -compact -width indent -.It Fn elftc_copyfile -Copies the contents of a file to another. -.It Fn elftc_set_timestamp -Portably set the time stamps on a file. -.El -.It "Project Configuration" -.Bl -tag -compact -width indent -.It Fn elftc_version -Returns a project-wide identifier string that encodes the source -revision of the source tree. -.El -.El -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr elf 3 diff --git a/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 b/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 deleted file mode 100644 index dc004cd3..00000000 --- a/contrib/elftoolchain/libelftc/elftc_bfd_find_target.3 +++ /dev/null @@ -1,203 +0,0 @@ -.\" Copyright (c) 2010-2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 27, 2019 -.Dt ELFTC_BFD_FIND_TARGET 3 -.Os -.Sh NAME -.Nm elftc_bfd_find_target , -.Nm elftc_bfd_target_byteorder , -.Nm elftc_bfd_target_class , -.Nm elftc_bfd_target_flavor , -.Nm elftc_bfd_target_machine -.Nd binary object descriptor handling -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Vt struct Elftc_Bfd_Target; -.Ft "Elftc_Bfd_Target *" -.Fn elftc_bfd_find_target "const char *target_name" -.Ft "unsigned int" -.Fn elftc_bfd_target_class "Elftc_Bfd_Target *target" -.Ft "unsigned int" -.Fn elftc_bfd_target_byteorder "Elftc_Bfd_Target *target" -.Ft Elftc_Bfd_Target_Flavor -.Fn elftc_bfd_target_flavor "Elftc_Bfd_Target *target" -.Ft "unsigned int" -.Fn elftc_bfd_target_machine "Elftc_Bfd_Target *target" -.Sh DESCRIPTION -Function -.Fn elftc_bfd_find_target -locates a binary object descriptor corresponding to the descriptor -name in argument -.Ar "target_name" . -Binary object descriptors encapsulate properties of an object format -such as its file representation, ELF class, and byte endianness. -.Pp -Known descriptor names and their properties include: -.Bl -column -offset "XXXX" ".Li elf32-x86-64-freebsd" "Object format" "Byte Order" "Bit Width" -.It Em Name Ta Em "Object Format" Ta Em "Byte Order" Ta Em "Bit Width" -.It Li binary Ta Binary Ta - Ta - -.It Li efi-app-ia32 Ta PE Ta LSB Ta 32 -.It Li efi-app-x86_64 Ta PE Ta LSB Ta 64 -.It Li elf32-avr Ta ELF Ta LSB Ta 32 -.It Li elf32-big Ta ELF Ta MSB Ta 32 -.It Li elf32-bigarm Ta ELF Ta MSB Ta 32 -.It Li elf32-bigmips Ta ELF Ta MSB Ta 32 -.It Li elf32-i386 Ta ELF Ta LSB Ta 32 -.It Li elf32-i386-freebsd Ta ELF Ta LSB Ta 32 -.It Li elf32-ia64-big Ta ELF Ta MSB Ta 32 -.It Li elf32-little Ta ELF Ta LSB Ta 32 -.It Li elf32-littlearm Ta ELF Ta LSB Ta 32 -.It Li elf32-littlemips Ta ELF Ta LSB Ta 32 -.It Li elf32-powerpc Ta ELF Ta MSB Ta 32 -.It Li elf32-powerpc-freebsd Ta ELF Ta MSB Ta 32 -.It Li elf32-powerpcle Ta ELF Ta LSB Ta 32 -.It Li elf32-riscv Ta ELF Ta LSB Ta 32 -.It Li elf64-riscv Ta ELF Ta LSB Ta 64 -.It Li elf64-riscv-freebsd Ta ELF Ta LSB Ta 64 -.It Li elf32-sh Ta ELF Ta MSB Ta 32 -.It Li elf32-shl Ta ELF Ta LSB Ta 32 -.It Li elf32-sh-nbsd Ta ELF Ta MSB Ta 32 -.It Li elf32-shl-nbsd Ta ELF Ta LSB Ta 32 -.It Li elf32-shbig-linux Ta ELF Ta MSB Ta 32 -.It Li elf32-shl-linux Ta ELF Ta LSB Ta 32 -.It Li elf32-sparc Ta ELF Ta MSB Ta 32 -.It Li elf32-tradbigmips Ta ELF Ta MSB Ta 32 -.It Li elf32-tradlittlemips Ta ELF Ta LSB Ta 32 -.It Li elf64-alpha Ta ELF Ta LSB Ta 64 -.It Li elf64-alpha-freebsd Ta ELF Ta LSB Ta 64 -.It Li elf64-big Ta ELF Ta MSB Ta 64 -.It Li elf64-bigmips Ta ELF Ta MSB Ta 64 -.It Li elf64-ia64-big Ta ELF Ta MSB Ta 64 -.It Li elf64-ia64-little Ta ELF Ta LSB Ta 64 -.It Li elf64-little Ta ELF Ta LSB Ta 64 -.It Li elf64-littleaarch64 Ta ELF Ta LSB Ta 64 -.It Li elf64-littlemips Ta ELF Ta LSB Ta 64 -.It Li elf64-powerpc Ta ELF Ta MSB Ta 64 -.It Li elf64-powerpc-freebsd Ta ELF Ta MSB Ta 64 -.It Li elf64-powerpcle Ta ELF Ta LSB Ta 64 -.It Li elf64-sh64 Ta ELF Ta MSB Ta 64 -.It Li elf64-sh64l Ta ELF Ta LSB Ta 64 -.It Li elf64-sh64-nbsd Ta ELF Ta MSB Ta 64 -.It Li elf64-sh64l-nbsd Ta ELF Ta LSB Ta 64 -.It Li elf64-sh64big-linux Ta ELF Ta MSB Ta 64 -.It Li elf64-sh64-linux Ta ELF Ta LSB Ta 64 -.It Li elf64-sparc Ta ELF Ta MSB Ta 64 -.It Li elf64-sparc-freebsd Ta ELF Ta MSB Ta 64 -.It Li elf64-tradbigmips Ta ELF Ta MSB Ta 64 -.It Li elf64-tradlittlemips Ta ELF Ta LSB Ta 64 -.It Li elf64-x86-64 Ta ELF Ta LSB Ta 64 -.It Li elf64-x86-64-freebsd Ta ELF Ta LSB Ta 64 -.It Li ihex Ta IHEX Ta - Ta - -.It Li pei-i386 Ta PE Ta LSB Ta 32 -.It Li pei-x86-64 Ta PE Ta LSB Ta 64 -.It Li srec Ta SREC Ta - Ta - -.It Li symbolsrec Ta SREC Ta - Ta - -.El -.Pp -Function -.Fn elftc_bfd_target_byteorder -returns the ELF byte order associated with target descriptor -.Ar target . -.Pp -Function -.Fn elftc_bfd_target_class -returns the ELF class associated with target descriptor -.Ar target . -.Pp -Function -.Fn elftc_bfd_target_flavor -returns the object format associated with target descriptor -.Ar target . -The known object formats are: -.Bl -tag -offset "XXXX" -width ".Dv ETF_BINARY" -compact -.It Dv ETF_ELF -An ELF object. -.It Dv ETF_BINARY -Raw binary. -.It Dv ETF_IHEX -An object encoded in -.Tn Intel -hex format. -.It Dv ETF_NONE -An unknown object format. -.It Dv ETF_SREC -An object encoded as S-records. -.El -.Sh RETURN VALUES -Function -.Fn elftc_bfd_find_target -returns a valid pointer to an opaque binary target descriptor if -successful, or NULL in case of an error. -.Pp -Function -.Fn elftc_bfd_target_byteorder -returns the ELF byte order associated with the target descriptor; one of -.Dv ELFDATA2MSB -or -.Dv ELFDATA2LSB . -.Pp -Function -.Fn elftc_bfd_target_class -returns the ELF class associated with the target descriptor; one of -.Dv ELFCLASS32 -or -.Dv ELFCLASS64 . -.Pp -Function -.Fn elftc_bfd_target_machine -returns the ELF architecture associated with the target descriptor. -.Pp -Function -.Fn elftc_bfd_target_flavor -returns one of -.Dv ETF_BINARY , -.Dv ETF_ELF , -.Dv ETF_IHEX -or -.Dv ETF_SREC -if successful or -.Dv ETF_NONE -in case of error. -.Sh EXAMPLES -To return descriptor information associated with target name -.Dq elf64-big -use: -.Bd -literal -offset indent -struct Elftc_Bfd_Target *t; - -if ((t = elftc_bfd_find_target("elf64-big")) == NULL) - errx(EXIT_FAILURE, "Cannot find target descriptor"); - -printf("Class: %s\\n", elftc_bfd_target_class(t) == ELFCLASS32 ? - "ELFCLASS32" : "ELFCLASS64"); -printf("Byteorder: %s\\n", - elftc_bfd_target_byteorder(t) == ELFDATA2LSB ? "LSB" : "MSB"); -printf("Flavor: %d\\n", elftc_bfd_target_flavor(t)); -.Ed -.Sh SEE ALSO -.Xr elf 3 diff --git a/contrib/elftoolchain/libelftc/elftc_bfdtarget.c b/contrib/elftoolchain/libelftc/elftc_bfdtarget.c deleted file mode 100644 index 75e8692d..00000000 --- a/contrib/elftoolchain/libelftc/elftc_bfdtarget.c +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * Copyright (c) 2008,2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -Elftc_Bfd_Target * -elftc_bfd_find_target(const char *tgt_name) -{ - Elftc_Bfd_Target *tgt; - - for (tgt = _libelftc_targets; tgt->bt_name; tgt++) - if (!strcmp(tgt_name, tgt->bt_name)) - return (tgt); - - return (NULL); /* not found */ -} - -Elftc_Bfd_Target_Flavor -elftc_bfd_target_flavor(Elftc_Bfd_Target *tgt) -{ - - return (tgt->bt_type); -} - -unsigned int -elftc_bfd_target_byteorder(Elftc_Bfd_Target *tgt) -{ - - return (tgt->bt_byteorder); -} - -unsigned int -elftc_bfd_target_class(Elftc_Bfd_Target *tgt) -{ - - return (tgt->bt_elfclass); -} - -unsigned int -elftc_bfd_target_machine(Elftc_Bfd_Target *tgt) -{ - - return (tgt->bt_machine); -} diff --git a/contrib/elftoolchain/libelftc/elftc_copyfile.3 b/contrib/elftoolchain/libelftc/elftc_copyfile.3 deleted file mode 100644 index e6ee81fa..00000000 --- a/contrib/elftoolchain/libelftc/elftc_copyfile.3 +++ /dev/null @@ -1,73 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 11, 2011 -.Dt ELFTC_COPYFILE 3 -.Os -.Sh NAME -.Nm elftc_copyfile -.Nd convenience function to copy data -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Ft in -.Fn elftc_copyfile "int ifd" "int ofd" -.Sh DESCRIPTION -The function -.Fn elftc_copyfile -copies the contents of the file referenced by argument -.Ar ifd -to the file referenced by argument -.Ar ofd . -.Pp -The argument -.Ar ifd -should contain a file descriptor opened for reading, with its file -offset at the beginning of the file. -.Pp -The argument -.Ar ofd -should contain a file descriptor opened for writing. -.Sh RETURN VALUES -.Rv -std -.Sh ERRORS -The function -.Fn elftc_copyfile -may fail with any of the errors returned by -.Xr fstat 2 , -.Xr mmap 2 , -.Xr munmap 2 , -.Xr read 2 , -.Xr write 2 , -or -.Xr malloc 3 . -.Sh SEE ALSO -.Xr fstat 2 , -.Xr mmap 2 , -.Xr munmap 2 , -.Xr read 2 , -.Xr write 2 , -.Xr malloc 3 diff --git a/contrib/elftoolchain/libelftc/elftc_copyfile.c b/contrib/elftoolchain/libelftc/elftc_copyfile.c deleted file mode 100644 index 5d5060db..00000000 --- a/contrib/elftoolchain/libelftc/elftc_copyfile.c +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * Copyright (c) 2011, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include - -#include -#include - -#include "libelftc.h" -#include "_libelftc.h" - -#if ELFTC_HAVE_MMAP -#include -#endif - -ELFTC_VCSID("$Id$"); - -/* - * Copy the contents referenced by 'ifd' to 'ofd'. Returns 0 on - * success and -1 on error. - */ - -int -elftc_copyfile(int ifd, int ofd) -{ - size_t file_size, n; - int buf_mmapped; - struct stat sb; - char *b, *buf; - ssize_t nr, nw; - - /* Determine the input file's size. */ - if (fstat(ifd, &sb) < 0) - return (-1); - - /* Skip files without content. */ - if (sb.st_size == 0) - return (0); - - buf = NULL; - buf_mmapped = 0; - file_size = (size_t) sb.st_size; - -#if ELFTC_HAVE_MMAP - /* - * Prefer mmap() if it is available. - */ - buf = mmap(NULL, file_size, PROT_READ, MAP_SHARED, ifd, (off_t) 0); - if (buf != MAP_FAILED) - buf_mmapped = 1; - else - buf = NULL; -#endif - - /* - * If mmap() is not available, or if the mmap() operation - * failed, allocate a buffer, and read in input data. - */ - if (buf_mmapped == false) { - if ((buf = malloc(file_size)) == NULL) - return (-1); - b = buf; - for (n = file_size; n > 0; n -= (size_t) nr, b += nr) { - if ((nr = read(ifd, b, n)) < 0) { - free(buf); - return (-1); - } - } - } - - /* - * Write data to the output file descriptor. - */ - for (n = file_size, b = buf; n > 0; n -= (size_t) nw, b += nw) - if ((nw = write(ofd, b, n)) <= 0) - break; - - /* Release the input buffer. */ -#if ELFTC_HAVE_MMAP - if (buf_mmapped && munmap(buf, file_size) < 0) - return (-1); -#endif - - if (!buf_mmapped) - free(buf); - - return (n > 0 ? -1 : 0); -} - diff --git a/contrib/elftoolchain/libelftc/elftc_demangle.3 b/contrib/elftoolchain/libelftc/elftc_demangle.3 deleted file mode 100644 index 970d9b45..00000000 --- a/contrib/elftoolchain/libelftc/elftc_demangle.3 +++ /dev/null @@ -1,116 +0,0 @@ -.\" Copyright (c) 2009,2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 24, 2011 -.Dt ELFTC_DEMANGLE 3 -.Os -.Sh NAME -.Nm elftc_demangle -.Nd demangle a C++ name -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Ft int -.Fo elftc_demangle -.Fa "const char *encodedname" -.Fa "char *buffer" -.Fa "size_t bufsize" -.Fa "unsigned int flags" -.Fc -.Sh DESCRIPTION -Function -.Fn elftc_demangle -decodes a symbol name encoded according to the type encoding rules -for the C++ language and returns a string denoting an equivalent -C++ prototype. -.Pp -Argument -.Ar encodedname -specifies the encoded symbol name. -Argument -.Ar buffer -denotes a programmer-specified area to place the prototype string in. -Argument -.Ar bufsize -specifies the size of the programmer-specified area. -Argument -.Ar flags -specifies the encoding style in use for argument -.Ar encodedname . -Supported encoding styles are: -.Bl -tag -width ".Dv ELFTC_DEM_GNU3" -.It Dv ELFTC_DEM_ARM -The encoding style used by compilers adhering to the conventions of the -C++ Annotated Reference Manual. -.It Dv ELFTC_DEM_GNU2 -The encoding style by GNU C++ version 2. -.It Dv ELFTC_DEM_GNU3 -The encoding style by GNU C++ version 3 and later. -.El -.Pp -Argument -.Ar flags -may be zero, in which case the function will attempt to guess the -encoding scheme from the contents of -.Ar encodedname . -.Sh RETURN VALUES -Function -.Fn elftc_demangle -returns 0 on success. -In case of an error it returns -1 and sets the -.Va errno -variable. -.Sh EXAMPLES -To decode a name that uses an unknown encoding style use: -.Bd -literal -offset indent -char buffer[1024]; -const char *funcname; - -funcname = ...; /* points to string to be demangled */ -if (elftc_demangle(funcname, buffer, sizeof(buffer), 0) == 0) - printf("Demangled name: %\\n", buffer); -else - perror("Cannot demangle %s", funcname); -.Ed -.Sh ERRORS -Function -.Fn elftc_demangle -may fail with the following errors: -.Bl -tag -width ".Bq Er ENAMETOOLONG" -.It Bq Er EINVAL -Argument -.Ar encodedname -was not a valid encoded name. -.It Bq Er ENAMETOOLONG -The output buffer specified by arguments -.Ar buffer -and -.Ar bufsize -was too small to hold the decoded function prototype. -.El -.Sh SEE ALSO -.Xr elf 3 , -.Xr elf_strptr 3 diff --git a/contrib/elftoolchain/libelftc/elftc_demangle.c b/contrib/elftoolchain/libelftc/elftc_demangle.c deleted file mode 100644 index d5039d6e..00000000 --- a/contrib/elftoolchain/libelftc/elftc_demangle.c +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -static unsigned int -is_mangled(const char *s, unsigned int style) -{ - - switch (style) { - case ELFTC_DEM_ARM: return (is_cpp_mangled_ARM(s) ? style : 0); - case ELFTC_DEM_GNU2: return (is_cpp_mangled_gnu2(s) ? style : 0); - case ELFTC_DEM_GNU3: return (is_cpp_mangled_gnu3(s) ? style : 0); - } - - /* No style or invalid style spcified, try to guess. */ - if (is_cpp_mangled_gnu3(s)) - return (ELFTC_DEM_GNU3); - if (is_cpp_mangled_gnu2(s)) - return (ELFTC_DEM_GNU2); - if (is_cpp_mangled_ARM(s)) - return (ELFTC_DEM_ARM); - - /* Cannot be demangled. */ - return (0); -} - -static char * -demangle(const char *s, unsigned int style, unsigned int rc) -{ - - (void) rc; /* XXX */ - switch (style) { - case ELFTC_DEM_ARM: return (cpp_demangle_ARM(s)); - case ELFTC_DEM_GNU2: return (cpp_demangle_gnu2(s)); - case ELFTC_DEM_GNU3: return (cpp_demangle_gnu3(s)); - default: - assert(0); - return (NULL); - } -} - -int -elftc_demangle(const char *mangledname, char *buffer, size_t bufsize, - unsigned int flags) -{ - unsigned int style, rc; - char *rlt; - - style = flags & 0xFFFF; - rc = flags >> 16; - - if (mangledname == NULL || - ((style = is_mangled(mangledname, style)) == 0)) { - errno = EINVAL; - return (-1); - } - - if ((rlt = demangle(mangledname, style, rc)) == NULL) { - errno = EINVAL; - return (-1); - } - - if (buffer == NULL || bufsize < strlen(rlt) + 1) { - free(rlt); - errno = ENAMETOOLONG; - return (-1); - } - - strncpy(buffer, rlt, bufsize); - buffer[bufsize - 1] = '\0'; - free(rlt); - - return (0); -} diff --git a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.3 b/contrib/elftoolchain/libelftc/elftc_reloc_type_str.3 deleted file mode 100644 index 2f4644af..00000000 --- a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.3 +++ /dev/null @@ -1,72 +0,0 @@ -.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved. -.\" -.\" This documentation was written by Ed Maste under sponsorship of -.\" the FreeBSD Foundation. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by the author and contributors ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. In no event shall the author or contributors be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd February 19, 2016 -.Dt ELFTC_RELOC_TYPE_STR 3 -.Os -.Sh NAME -.Nm elftc_reloc_type_str -.Nd return the type name for an ELF relocation -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Ft const char * -.Fo elftc_reloc_type_str -.Fa "unsigned int mach" -.Fa "unsigned int type" -.Fc -.Sh DESCRIPTION -Function -.Fn elftc_reloc_type_str -returns the name for specified relocation type. -.Pp -Argument -.Ar mach -specifies the machine (architecture) type. -Argument -.Ar type -specifies the relocation value. -.Sh RETURN VALUES -Function -.Fn elftc_program_version -returns a pointer to a string constant, or to an internal character buffer -if the relocation type is unknown. -.Sh EXAMPLES -To print ARM relocation type 7, use: -.Bd -literal -offset indent -#include -#include -#include - -(void) printf("%s\en", elftc_reloc_type_str(EM_ARM, 7)); -.Ed -.Sh ERRORS -Function -.Fn elftc_reloc_type_str -always succeeds. diff --git a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c b/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c deleted file mode 100644 index c8486c80..00000000 --- a/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c +++ /dev/null @@ -1,844 +0,0 @@ -/*- - * Copyright (c) 2009-2015 Kai Wang - * Copyright (c) 2016 The FreeBSD Foundation - * All rights reserved. - * - * Portions of this software were developed by Ed Maste under sponsorship - * of the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -const char * -elftc_reloc_type_str(unsigned int mach, unsigned int type) -{ - static char s_type[32]; - - switch(mach) { - case EM_386: - case EM_IAMCU: - switch(type) { - case 0: return "R_386_NONE"; - case 1: return "R_386_32"; - case 2: return "R_386_PC32"; - case 3: return "R_386_GOT32"; - case 4: return "R_386_PLT32"; - case 5: return "R_386_COPY"; - case 6: return "R_386_GLOB_DAT"; - case 7: return "R_386_JUMP_SLOT"; - case 8: return "R_386_RELATIVE"; - case 9: return "R_386_GOTOFF"; - case 10: return "R_386_GOTPC"; - case 11: return "R_386_32PLT"; /* Not in psabi */ - case 14: return "R_386_TLS_TPOFF"; - case 15: return "R_386_TLS_IE"; - case 16: return "R_386_TLS_GOTIE"; - case 17: return "R_386_TLS_LE"; - case 18: return "R_386_TLS_GD"; - case 19: return "R_386_TLS_LDM"; - case 20: return "R_386_16"; - case 21: return "R_386_PC16"; - case 22: return "R_386_8"; - case 23: return "R_386_PC8"; - case 24: return "R_386_TLS_GD_32"; - case 25: return "R_386_TLS_GD_PUSH"; - case 26: return "R_386_TLS_GD_CALL"; - case 27: return "R_386_TLS_GD_POP"; - case 28: return "R_386_TLS_LDM_32"; - case 29: return "R_386_TLS_LDM_PUSH"; - case 30: return "R_386_TLS_LDM_CALL"; - case 31: return "R_386_TLS_LDM_POP"; - case 32: return "R_386_TLS_LDO_32"; - case 33: return "R_386_TLS_IE_32"; - case 34: return "R_386_TLS_LE_32"; - case 35: return "R_386_TLS_DTPMOD32"; - case 36: return "R_386_TLS_DTPOFF32"; - case 37: return "R_386_TLS_TPOFF32"; - case 38: return "R_386_SIZE32"; - case 39: return "R_386_TLS_GOTDESC"; - case 40: return "R_386_TLS_DESC_CALL"; - case 41: return "R_386_TLS_DESC"; - case 42: return "R_386_IRELATIVE"; - case 43: return "R_386_GOT32X"; - } - break; - case EM_AARCH64: - switch(type) { - case 0: return "R_AARCH64_NONE"; - case 257: return "R_AARCH64_ABS64"; - case 258: return "R_AARCH64_ABS32"; - case 259: return "R_AARCH64_ABS16"; - case 260: return "R_AARCH64_PREL64"; - case 261: return "R_AARCH64_PREL32"; - case 262: return "R_AARCH64_PREL16"; - case 263: return "R_AARCH64_MOVW_UABS_G0"; - case 264: return "R_AARCH64_MOVW_UABS_G0_NC"; - case 265: return "R_AARCH64_MOVW_UABS_G1"; - case 266: return "R_AARCH64_MOVW_UABS_G1_NC"; - case 267: return "R_AARCH64_MOVW_UABS_G2"; - case 268: return "R_AARCH64_MOVW_UABS_G2_NC"; - case 269: return "R_AARCH64_MOVW_UABS_G3"; - case 270: return "R_AARCH64_MOVW_SABS_G0"; - case 271: return "R_AARCH64_MOVW_SABS_G1"; - case 272: return "R_AARCH64_MOVW_SABS_G2"; - case 273: return "R_AARCH64_LD_PREL_LO19"; - case 274: return "R_AARCH64_ADR_PREL_LO21"; - case 275: return "R_AARCH64_ADR_PREL_PG_HI21"; - case 276: return "R_AARCH64_ADR_PREL_PG_HI21_NC"; - case 277: return "R_AARCH64_ADD_ABS_LO12_NC"; - case 278: return "R_AARCH64_LDST8_ABS_LO12_NC"; - case 279: return "R_AARCH64_TSTBR14"; - case 280: return "R_AARCH64_CONDBR19"; - case 282: return "R_AARCH64_JUMP26"; - case 283: return "R_AARCH64_CALL26"; - case 284: return "R_AARCH64_LDST16_ABS_LO12_NC"; - case 285: return "R_AARCH64_LDST32_ABS_LO12_NC"; - case 286: return "R_AARCH64_LDST64_ABS_LO12_NC"; - case 287: return "R_AARCH64_MOVW_PREL_G0"; - case 288: return "R_AARCH64_MOVW_PREL_G0_NC"; - case 289: return "R_AARCH64_MOVW_PREL_G1"; - case 290: return "R_AARCH64_MOVW_PREL_G1_NC"; - case 291: return "R_AARCH64_MOVW_PREL_G2"; - case 292: return "R_AARCH64_MOVW_PREL_G2_NC"; - case 293: return "R_AARCH64_MOVW_PREL_G3"; - case 299: return "R_AARCH64_LDST128_ABS_LO12_NC"; - case 300: return "R_AARCH64_MOVW_GOTOFF_G0"; - case 301: return "R_AARCH64_MOVW_GOTOFF_G0_NC"; - case 302: return "R_AARCH64_MOVW_GOTOFF_G1"; - case 303: return "R_AARCH64_MOVW_GOTOFF_G1_NC"; - case 304: return "R_AARCH64_MOVW_GOTOFF_G2"; - case 305: return "R_AARCH64_MOVW_GOTOFF_G2_NC"; - case 306: return "R_AARCH64_MOVW_GOTOFF_G3"; - case 307: return "R_AARCH64_GOTREL64"; - case 308: return "R_AARCH64_GOTREL32"; - case 309: return "R_AARCH64_GOT_LD_PREL19"; - case 310: return "R_AARCH64_LD64_GOTOFF_LO15"; - case 311: return "R_AARCH64_ADR_GOT_PAGE"; - case 312: return "R_AARCH64_LD64_GOT_LO12_NC"; - case 313: return "R_AARCH64_LD64_GOTPAGE_LO15"; - case 560: return "R_AARCH64_TLSDESC_LD_PREL19"; - case 561: return "R_AARCH64_TLSDESC_ADR_PREL21"; - case 562: return "R_AARCH64_TLSDESC_ADR_PAGE21"; - case 563: return "R_AARCH64_TLSDESC_LD64_LO12"; - case 564: return "R_AARCH64_TLSDESC_ADD_LO12"; - case 565: return "R_AARCH64_TLSDESC_OFF_G1"; - case 566: return "R_AARCH64_TLSDESC_OFF_G0_NC"; - case 567: return "R_AARCH64_TLSDESC_LDR"; - case 568: return "R_AARCH64_TLSDESC_ADD"; - case 569: return "R_AARCH64_TLSDESC_CALL"; - case 1024: return "R_AARCH64_COPY"; - case 1025: return "R_AARCH64_GLOB_DAT"; - case 1026: return "R_AARCH64_JUMP_SLOT"; - case 1027: return "R_AARCH64_RELATIVE"; - case 1028: return "R_AARCH64_TLS_DTPREL64"; - case 1029: return "R_AARCH64_TLS_DTPMOD64"; - case 1030: return "R_AARCH64_TLS_TPREL64"; - case 1031: return "R_AARCH64_TLSDESC"; - case 1032: return "R_AARCH64_IRELATIVE"; - } - break; - case EM_ARM: - switch(type) { - case 0: return "R_ARM_NONE"; - case 1: return "R_ARM_PC24"; /* Deprecated */ - case 2: return "R_ARM_ABS32"; - case 3: return "R_ARM_REL32"; - case 4: return "R_ARM_LDR_PC_G0"; /* Also R_ARM_PC13 */ - case 5: return "R_ARM_ABS16"; - case 6: return "R_ARM_ABS12"; - case 7: return "R_ARM_THM_ABS5"; - case 8: return "R_ARM_ABS8"; - case 9: return "R_ARM_SBREL32"; - case 10: return "R_ARM_THM_CALL"; /* Also R_ARM_THM_PC22 */ - case 11: return "R_ARM_THM_PC8"; - case 12: return "R_ARM_BREL_ADJ"; /* Also R_ARM_AMP_VCALL9 */ - case 13: return "R_ARM_TLS_DESC"; /* Also R_ARM_SWI24 */ - case 14: return "R_ARM_THM_SWI8"; /* Obsolete */ - case 15: return "R_ARM_XPC25"; /* Obsolete */ - case 16: return "R_ARM_THM_XPC22"; /* Obsolete */ - case 17: return "R_ARM_TLS_DTPMOD32"; - case 18: return "R_ARM_TLS_DTPOFF32"; - case 19: return "R_ARM_TLS_TPOFF32"; - case 20: return "R_ARM_COPY"; - case 21: return "R_ARM_GLOB_DAT"; - case 22: return "R_ARM_JUMP_SLOT"; - case 23: return "R_ARM_RELATIVE"; - case 24: return "R_ARM_GOTOFF32"; /* Also R_ARM_GOTOFF */ - case 25: return "R_ARM_BASE_PREL"; /* GNU R_ARM_GOTPC */ - case 26: return "R_ARM_GOT_BREL"; /* GNU R_ARM_GOT32 */ - case 27: return "R_ARM_PLT32"; /* Deprecated */ - case 28: return "R_ARM_CALL"; - case 29: return "R_ARM_JUMP24"; - case 30: return "R_ARM_THM_JUMP24"; - case 31: return "R_ARM_BASE_ABS"; - case 32: return "R_ARM_ALU_PCREL_7_0"; /* Obsolete */ - case 33: return "R_ARM_ALU_PCREL_15_8"; /* Obsolete */ - case 34: return "R_ARM_ALU_PCREL_23_15"; /* Obsolete */ - case 35: return "R_ARM_LDR_SBREL_11_0_NC"; /* Deprecated */ - case 36: return "R_ARM_ALU_SBREL_19_12_NC"; /* Deprecated */ - case 37: return "R_ARM_ALU_SBREL_27_20_CK"; /* Deprecated */ - case 38: return "R_ARM_TARGET1"; - case 39: return "R_ARM_SBREL31"; /* Deprecated. */ - case 40: return "R_ARM_V4BX"; - case 41: return "R_ARM_TARGET2"; - case 42: return "R_ARM_PREL31"; - case 43: return "R_ARM_MOVW_ABS_NC"; - case 44: return "R_ARM_MOVT_ABS"; - case 45: return "R_ARM_MOVW_PREL_NC"; - case 46: return "R_ARM_MOVT_PREL"; - case 47: return "R_ARM_THM_MOVW_ABS_NC"; - case 48: return "R_ARM_THM_MOVT_ABS"; - case 49: return "R_ARM_THM_MOVW_PREL_NC"; - case 50: return "R_ARM_THM_MOVT_PREL"; - case 51: return "R_ARM_THM_JUMP19"; - case 52: return "R_ARM_THM_JUMP6"; - case 53: return "R_ARM_THM_ALU_PREL_11_0"; - case 54: return "R_ARM_THM_PC12"; - case 55: return "R_ARM_ABS32_NOI"; - case 56: return "R_ARM_REL32_NOI"; - case 57: return "R_ARM_ALU_PC_G0_NC"; - case 58: return "R_ARM_ALU_PC_G0"; - case 59: return "R_ARM_ALU_PC_G1_NC"; - case 60: return "R_ARM_ALU_PC_G1"; - case 61: return "R_ARM_ALU_PC_G2"; - case 62: return "R_ARM_LDR_PC_G1"; - case 63: return "R_ARM_LDR_PC_G2"; - case 64: return "R_ARM_LDRS_PC_G0"; - case 65: return "R_ARM_LDRS_PC_G1"; - case 66: return "R_ARM_LDRS_PC_G2"; - case 67: return "R_ARM_LDC_PC_G0"; - case 68: return "R_ARM_LDC_PC_G1"; - case 69: return "R_ARM_LDC_PC_G2"; - case 70: return "R_ARM_ALU_SB_G0_NC"; - case 71: return "R_ARM_ALU_SB_G0"; - case 72: return "R_ARM_ALU_SB_G1_NC"; - case 73: return "R_ARM_ALU_SB_G1"; - case 74: return "R_ARM_ALU_SB_G2"; - case 75: return "R_ARM_LDR_SB_G0"; - case 76: return "R_ARM_LDR_SB_G1"; - case 77: return "R_ARM_LDR_SB_G2"; - case 78: return "R_ARM_LDRS_SB_G0"; - case 79: return "R_ARM_LDRS_SB_G1"; - case 80: return "R_ARM_LDRS_SB_G2"; - case 81: return "R_ARM_LDC_SB_G0"; - case 82: return "R_ARM_LDC_SB_G1"; - case 83: return "R_ARM_LDC_SB_G2"; - case 84: return "R_ARM_MOVW_BREL_NC"; - case 85: return "R_ARM_MOVT_BREL"; - case 86: return "R_ARM_MOVW_BREL"; - case 87: return "R_ARM_THM_MOVW_BREL_NC"; - case 88: return "R_ARM_THM_MOVT_BREL"; - case 89: return "R_ARM_THM_MOVW_BREL"; - case 90: return "R_ARM_TLS_GOTDESC"; - case 91: return "R_ARM_TLS_CALL"; - case 92: return "R_ARM_TLS_DESCSEQ"; - case 93: return "R_ARM_THM_TLS_CALL"; - case 94: return "R_ARM_PLT32_ABS"; - case 95: return "R_ARM_GOT_ABS"; - case 96: return "R_ARM_GOT_PREL"; - case 97: return "R_ARM_GOT_BREL12"; - case 98: return "R_ARM_GOTOFF12"; - case 99: return "R_ARM_GOTRELAX"; - case 100: return "R_ARM_GNU_VTENTRY"; - case 101: return "R_ARM_GNU_VTINHERIT"; - case 102: return "R_ARM_THM_JUMP11"; /* Also R_ARM_THM_PC11 */ - case 103: return "R_ARM_THM_JUMP8"; /* Also R_ARM_THM_PC9 */ - case 104: return "R_ARM_TLS_GD32"; - case 105: return "R_ARM_TLS_LDM32"; - case 106: return "R_ARM_TLS_LDO32"; - case 107: return "R_ARM_TLS_IE32"; - case 108: return "R_ARM_TLS_LE32"; - case 109: return "R_ARM_TLS_LDO12"; - case 110: return "R_ARM_TLS_LE12"; - case 111: return "R_ARM_TLS_IE12GP"; - /* 112-127 R_ARM_PRIVATE_ */ - case 128: return "R_ARM_ME_TOO"; /* Obsolete */ - case 129: return "R_ARM_THM_TLS_DESCSEQ16"; - case 130: return "R_ARM_THM_TLS_DESCSEQ32"; - case 131: return "R_ARM_THM_GOT_BREL12"; - case 132: return "R_ARM_THM_ALU_ABS_G0_NC"; - case 133: return "R_ARM_THM_ALU_ABS_G1_NC"; - case 134: return "R_ARM_THM_ALU_ABS_G2_NC"; - case 135: return "R_ARM_THM_ALU_ABS_G3"; - /* 136-159 Reserved for future allocation. */ - case 160: return "R_ARM_IRELATIVE"; - /* 161-255 Reserved for future allocation. */ - case 249: return "R_ARM_RXPC25"; - case 250: return "R_ARM_RSBREL32"; - case 251: return "R_ARM_THM_RPC22"; - case 252: return "R_ARM_RREL32"; - case 253: return "R_ARM_RABS32"; - case 254: return "R_ARM_RPC24"; - case 255: return "R_ARM_RBASE"; - } - break; - case EM_IA_64: - switch(type) { - case 0: return "R_IA_64_NONE"; - case 33: return "R_IA_64_IMM14"; - case 34: return "R_IA_64_IMM22"; - case 35: return "R_IA_64_IMM64"; - case 36: return "R_IA_64_DIR32MSB"; - case 37: return "R_IA_64_DIR32LSB"; - case 38: return "R_IA_64_DIR64MSB"; - case 39: return "R_IA_64_DIR64LSB"; - case 42: return "R_IA_64_GPREL22"; - case 43: return "R_IA_64_GPREL64I"; - case 44: return "R_IA_64_GPREL32MSB"; - case 45: return "R_IA_64_GPREL32LSB"; - case 46: return "R_IA_64_GPREL64MSB"; - case 47: return "R_IA_64_GPREL64LSB"; - case 50: return "R_IA_64_LTOFF22"; - case 51: return "R_IA_64_LTOFF64I"; - case 58: return "R_IA_64_PLTOFF22"; - case 59: return "R_IA_64_PLTOFF64I"; - case 62: return "R_IA_64_PLTOFF64MSB"; - case 63: return "R_IA_64_PLTOFF64LSB"; - case 67: return "R_IA_64_FPTR64I"; - case 68: return "R_IA_64_FPTR32MSB"; - case 69: return "R_IA_64_FPTR32LSB"; - case 70: return "R_IA_64_FPTR64MSB"; - case 71: return "R_IA_64_FPTR64LSB"; - case 72: return "R_IA_64_PCREL60B"; - case 73: return "R_IA_64_PCREL21B"; - case 74: return "R_IA_64_PCREL21M"; - case 75: return "R_IA_64_PCREL21F"; - case 76: return "R_IA_64_PCREL32MSB"; - case 77: return "R_IA_64_PCREL32LSB"; - case 78: return "R_IA_64_PCREL64MSB"; - case 79: return "R_IA_64_PCREL64LSB"; - case 82: return "R_IA_64_LTOFF_FPTR22"; - case 83: return "R_IA_64_LTOFF_FPTR64I"; - case 84: return "R_IA_64_LTOFF_FPTR32MSB"; - case 85: return "R_IA_64_LTOFF_FPTR32LSB"; - case 86: return "R_IA_64_LTOFF_FPTR64MSB"; - case 87: return "R_IA_64_LTOFF_FPTR64LSB"; - case 92: return "R_IA_64_SEGREL32MSB"; - case 93: return "R_IA_64_SEGREL32LSB"; - case 94: return "R_IA_64_SEGREL64MSB"; - case 95: return "R_IA_64_SEGREL64LSB"; - case 100: return "R_IA_64_SECREL32MSB"; - case 101: return "R_IA_64_SECREL32LSB"; - case 102: return "R_IA_64_SECREL64MSB"; - case 103: return "R_IA_64_SECREL64LSB"; - case 108: return "R_IA_64_REL32MSB"; - case 109: return "R_IA_64_REL32LSB"; - case 110: return "R_IA_64_REL64MSB"; - case 111: return "R_IA_64_REL64LSB"; - case 116: return "R_IA_64_LTV32MSB"; - case 117: return "R_IA_64_LTV32LSB"; - case 118: return "R_IA_64_LTV64MSB"; - case 119: return "R_IA_64_LTV64LSB"; - case 121: return "R_IA_64_PCREL21BI"; - case 122: return "R_IA_64_PCREL22"; - case 123: return "R_IA_64_PCREL64I"; - case 128: return "R_IA_64_IPLTMSB"; - case 129: return "R_IA_64_IPLTLSB"; - case 133: return "R_IA_64_SUB"; - case 134: return "R_IA_64_LTOFF22X"; - case 135: return "R_IA_64_LDXMOV"; - case 145: return "R_IA_64_TPREL14"; - case 146: return "R_IA_64_TPREL22"; - case 147: return "R_IA_64_TPREL64I"; - case 150: return "R_IA_64_TPREL64MSB"; - case 151: return "R_IA_64_TPREL64LSB"; - case 154: return "R_IA_64_LTOFF_TPREL22"; - case 166: return "R_IA_64_DTPMOD64MSB"; - case 167: return "R_IA_64_DTPMOD64LSB"; - case 170: return "R_IA_64_LTOFF_DTPMOD22"; - case 177: return "R_IA_64_DTPREL14"; - case 178: return "R_IA_64_DTPREL22"; - case 179: return "R_IA_64_DTPREL64I"; - case 180: return "R_IA_64_DTPREL32MSB"; - case 181: return "R_IA_64_DTPREL32LSB"; - case 182: return "R_IA_64_DTPREL64MSB"; - case 183: return "R_IA_64_DTPREL64LSB"; - case 186: return "R_IA_64_LTOFF_DTPREL22"; - } - break; - case EM_MIPS: - switch(type) { - case 0: return "R_MIPS_NONE"; - case 1: return "R_MIPS_16"; - case 2: return "R_MIPS_32"; - case 3: return "R_MIPS_REL32"; - case 4: return "R_MIPS_26"; - case 5: return "R_MIPS_HI16"; - case 6: return "R_MIPS_LO16"; - case 7: return "R_MIPS_GPREL16"; - case 8: return "R_MIPS_LITERAL"; - case 9: return "R_MIPS_GOT16"; - case 10: return "R_MIPS_PC16"; - case 11: return "R_MIPS_CALL16"; - case 12: return "R_MIPS_GPREL32"; - case 16: return "R_MIPS_SHIFT5"; - case 17: return "R_MIPS_SHIFT6"; - case 18: return "R_MIPS_64"; - case 19: return "R_MIPS_GOT_DISP"; - case 20: return "R_MIPS_GOT_PAGE"; - case 21: return "R_MIPS_GOT_OFST"; - case 22: return "R_MIPS_GOT_HI16"; - case 23: return "R_MIPS_GOT_LO16"; - case 24: return "R_MIPS_SUB"; - case 28: return "R_MIPS_HIGHER"; - case 29: return "R_MIPS_HIGHEST"; - case 30: return "R_MIPS_CALLHI16"; - case 31: return "R_MIPS_CALLLO16"; - case 37: return "R_MIPS_JALR"; - case 38: return "R_MIPS_TLS_DTPMOD32"; - case 39: return "R_MIPS_TLS_DTPREL32"; - case 40: return "R_MIPS_TLS_DTPMOD64"; - case 41: return "R_MIPS_TLS_DTPREL64"; - case 42: return "R_MIPS_TLS_GD"; - case 43: return "R_MIPS_TLS_LDM"; - case 44: return "R_MIPS_TLS_DTPREL_HI16"; - case 45: return "R_MIPS_TLS_DTPREL_LO16"; - case 46: return "R_MIPS_TLS_GOTTPREL"; - case 47: return "R_MIPS_TLS_TPREL32"; - case 48: return "R_MIPS_TLS_TPREL64"; - case 49: return "R_MIPS_TLS_TPREL_HI16"; - case 50: return "R_MIPS_TLS_TPREL_LO16"; - } - break; - case EM_PPC: - switch(type) { - case 0: return "R_PPC_NONE"; - case 1: return "R_PPC_ADDR32"; - case 2: return "R_PPC_ADDR24"; - case 3: return "R_PPC_ADDR16"; - case 4: return "R_PPC_ADDR16_LO"; - case 5: return "R_PPC_ADDR16_HI"; - case 6: return "R_PPC_ADDR16_HA"; - case 7: return "R_PPC_ADDR14"; - case 8: return "R_PPC_ADDR14_BRTAKEN"; - case 9: return "R_PPC_ADDR14_BRNTAKEN"; - case 10: return "R_PPC_REL24"; - case 11: return "R_PPC_REL14"; - case 12: return "R_PPC_REL14_BRTAKEN"; - case 13: return "R_PPC_REL14_BRNTAKEN"; - case 14: return "R_PPC_GOT16"; - case 15: return "R_PPC_GOT16_LO"; - case 16: return "R_PPC_GOT16_HI"; - case 17: return "R_PPC_GOT16_HA"; - case 18: return "R_PPC_PLTREL24"; - case 19: return "R_PPC_COPY"; - case 20: return "R_PPC_GLOB_DAT"; - case 21: return "R_PPC_JMP_SLOT"; - case 22: return "R_PPC_RELATIVE"; - case 23: return "R_PPC_LOCAL24PC"; - case 24: return "R_PPC_UADDR32"; - case 25: return "R_PPC_UADDR16"; - case 26: return "R_PPC_REL32"; - case 27: return "R_PPC_PLT32"; - case 28: return "R_PPC_PLTREL32"; - case 29: return "R_PPC_PLT16_LO"; - case 30: return "R_PPC_PLT16_HI"; - case 31: return "R_PPC_PLT16_HA"; - case 32: return "R_PPC_SDAREL16"; - case 33: return "R_PPC_SECTOFF"; - case 34: return "R_PPC_SECTOFF_LO"; - case 35: return "R_PPC_SECTOFF_HI"; - case 36: return "R_PPC_SECTOFF_HA"; - case 67: return "R_PPC_TLS"; - case 68: return "R_PPC_DTPMOD32"; - case 69: return "R_PPC_TPREL16"; - case 70: return "R_PPC_TPREL16_LO"; - case 71: return "R_PPC_TPREL16_HI"; - case 72: return "R_PPC_TPREL16_HA"; - case 73: return "R_PPC_TPREL32"; - case 74: return "R_PPC_DTPREL16"; - case 75: return "R_PPC_DTPREL16_LO"; - case 76: return "R_PPC_DTPREL16_HI"; - case 77: return "R_PPC_DTPREL16_HA"; - case 78: return "R_PPC_DTPREL32"; - case 79: return "R_PPC_GOT_TLSGD16"; - case 80: return "R_PPC_GOT_TLSGD16_LO"; - case 81: return "R_PPC_GOT_TLSGD16_HI"; - case 82: return "R_PPC_GOT_TLSGD16_HA"; - case 83: return "R_PPC_GOT_TLSLD16"; - case 84: return "R_PPC_GOT_TLSLD16_LO"; - case 85: return "R_PPC_GOT_TLSLD16_HI"; - case 86: return "R_PPC_GOT_TLSLD16_HA"; - case 87: return "R_PPC_GOT_TPREL16"; - case 88: return "R_PPC_GOT_TPREL16_LO"; - case 89: return "R_PPC_GOT_TPREL16_HI"; - case 90: return "R_PPC_GOT_TPREL16_HA"; - case 101: return "R_PPC_EMB_NADDR32"; - case 102: return "R_PPC_EMB_NADDR16"; - case 103: return "R_PPC_EMB_NADDR16_LO"; - case 104: return "R_PPC_EMB_NADDR16_HI"; - case 105: return "R_PPC_EMB_NADDR16_HA"; - case 106: return "R_PPC_EMB_SDAI16"; - case 107: return "R_PPC_EMB_SDA2I16"; - case 108: return "R_PPC_EMB_SDA2REL"; - case 109: return "R_PPC_EMB_SDA21"; - case 110: return "R_PPC_EMB_MRKREF"; - case 111: return "R_PPC_EMB_RELSEC16"; - case 112: return "R_PPC_EMB_RELST_LO"; - case 113: return "R_PPC_EMB_RELST_HI"; - case 114: return "R_PPC_EMB_RELST_HA"; - case 115: return "R_PPC_EMB_BIT_FLD"; - case 116: return "R_PPC_EMB_RELSDA"; - } - break; - case EM_PPC64: - switch(type) { - case 0: return "R_PPC64_NONE"; - case 1: return "R_PPC64_ADDR32"; - case 2: return "R_PPC64_ADDR24"; - case 3: return "R_PPC64_ADDR16"; - case 4: return "R_PPC64_ADDR16_LO"; - case 5: return "R_PPC64_ADDR16_HI"; - case 6: return "R_PPC64_ADDR16_HA"; - case 7: return "R_PPC64_ADDR14"; - case 8: return "R_PPC64_ADDR14_BRTAKEN"; - case 9: return "R_PPC64_ADDR14_BRNTAKEN"; - case 10: return "R_PPC64_REL24"; - case 11: return "R_PPC64_REL14"; - case 12: return "R_PPC64_REL14_BRTAKEN"; - case 13: return "R_PPC64_REL14_BRNTAKEN"; - case 14: return "R_PPC64_GOT16"; - case 15: return "R_PPC64_GOT16_LO"; - case 16: return "R_PPC64_GOT16_HI"; - case 17: return "R_PPC64_GOT16_HA"; - case 19: return "R_PPC64_COPY"; - case 20: return "R_PPC64_GLOB_DAT"; - case 21: return "R_PPC64_JMP_SLOT"; - case 22: return "R_PPC64_RELATIVE"; - case 24: return "R_PPC64_UADDR32"; - case 25: return "R_PPC64_UADDR16"; - case 26: return "R_PPC64_REL32"; - case 27: return "R_PPC64_PLT32"; - case 28: return "R_PPC64_PLTREL32"; - case 29: return "R_PPC64_PLT16_LO"; - case 30: return "R_PPC64_PLT16_HI"; - case 31: return "R_PPC64_PLT16_HA"; - case 33: return "R_PPC64_SECTOFF"; - case 34: return "R_PPC64_SECTOFF_LO"; - case 35: return "R_PPC64_SECTOFF_HI"; - case 36: return "R_PPC64_SECTOFF_HA"; - case 37: return "R_PPC64_ADDR30"; - case 38: return "R_PPC64_ADDR64"; - case 39: return "R_PPC64_ADDR16_HIGHER"; - case 40: return "R_PPC64_ADDR16_HIGHERA"; - case 41: return "R_PPC64_ADDR16_HIGHEST"; - case 42: return "R_PPC64_ADDR16_HIGHESTA"; - case 43: return "R_PPC64_UADDR64"; - case 44: return "R_PPC64_REL64"; - case 45: return "R_PPC64_PLT64"; - case 46: return "R_PPC64_PLTREL64"; - case 47: return "R_PPC64_TOC16"; - case 48: return "R_PPC64_TOC16_LO"; - case 49: return "R_PPC64_TOC16_HI"; - case 50: return "R_PPC64_TOC16_HA"; - case 51: return "R_PPC64_TOC"; - case 52: return "R_PPC64_PLTGOT16"; - case 53: return "R_PPC64_PLTGOT16_LO"; - case 54: return "R_PPC64_PLTGOT16_HI"; - case 55: return "R_PPC64_PLTGOT16_HA"; - case 56: return "R_PPC64_ADDR16_DS"; - case 57: return "R_PPC64_ADDR16_LO_DS"; - case 58: return "R_PPC64_GOT16_DS"; - case 59: return "R_PPC64_GOT16_LO_DS"; - case 60: return "R_PPC64_PLT16_LO_DS"; - case 61: return "R_PPC64_SECTOFF_DS"; - case 62: return "R_PPC64_SECTOFF_LO_DS"; - case 63: return "R_PPC64_TOC16_DS"; - case 64: return "R_PPC64_TOC16_LO_DS"; - case 65: return "R_PPC64_PLTGOT16_DS"; - case 66: return "R_PPC64_PLTGOT16_LO_DS"; - case 67: return "R_PPC64_TLS"; - case 68: return "R_PPC64_DTPMOD64"; - case 69: return "R_PPC64_TPREL16"; - case 70: return "R_PPC64_TPREL16_LO"; - case 71: return "R_PPC64_TPREL16_HI"; - case 72: return "R_PPC64_TPREL16_HA"; - case 73: return "R_PPC64_TPREL64"; - case 74: return "R_PPC64_DTPREL16"; - case 75: return "R_PPC64_DTPREL16_LO"; - case 76: return "R_PPC64_DTPREL16_HI"; - case 77: return "R_PPC64_DTPREL16_HA"; - case 78: return "R_PPC64_DTPREL64"; - case 79: return "R_PPC64_GOT_TLSGD16"; - case 80: return "R_PPC64_GOT_TLSGD16_LO"; - case 81: return "R_PPC64_GOT_TLSGD16_HI"; - case 82: return "R_PPC64_GOT_TLSGD16_HA"; - case 83: return "R_PPC64_GOT_TLSLD16"; - case 84: return "R_PPC64_GOT_TLSLD16_LO"; - case 85: return "R_PPC64_GOT_TLSLD16_HI"; - case 86: return "R_PPC64_GOT_TLSLD16_HA"; - case 87: return "R_PPC64_GOT_TPREL16_DS"; - case 88: return "R_PPC64_GOT_TPREL16_LO_DS"; - case 89: return "R_PPC64_GOT_TPREL16_HI"; - case 90: return "R_PPC64_GOT_TPREL16_HA"; - case 91: return "R_PPC64_GOT_DTPREL16_DS"; - case 92: return "R_PPC64_GOT_DTPREL16_LO_DS"; - case 93: return "R_PPC64_GOT_DTPREL16_HI"; - case 94: return "R_PPC64_GOT_DTPREL16_HA"; - case 95: return "R_PPC64_TPREL16_DS"; - case 96: return "R_PPC64_TPREL16_LO_DS"; - case 97: return "R_PPC64_TPREL16_HIGHER"; - case 98: return "R_PPC64_TPREL16_HIGHERA"; - case 99: return "R_PPC64_TPREL16_HIGHEST"; - case 100: return "R_PPC64_TPREL16_HIGHESTA"; - case 101: return "R_PPC64_DTPREL16_DS"; - case 102: return "R_PPC64_DTPREL16_LO_DS"; - case 103: return "R_PPC64_DTPREL16_HIGHER"; - case 104: return "R_PPC64_DTPREL16_HIGHERA"; - case 105: return "R_PPC64_DTPREL16_HIGHEST"; - case 106: return "R_PPC64_DTPREL16_HIGHESTA"; - case 107: return "R_PPC64_TLSGD"; - case 108: return "R_PPC64_TLSLD"; - case 249: return "R_PPC64_REL16"; - case 250: return "R_PPC64_REL16_LO"; - case 251: return "R_PPC64_REL16_HI"; - case 252: return "R_PPC64_REL16_HA"; - } - break; - case EM_RISCV: - switch(type) { - case 0: return "R_RISCV_NONE"; - case 1: return "R_RISCV_32"; - case 2: return "R_RISCV_64"; - case 3: return "R_RISCV_RELATIVE"; - case 4: return "R_RISCV_COPY"; - case 5: return "R_RISCV_JUMP_SLOT"; - case 6: return "R_RISCV_TLS_DTPMOD32"; - case 7: return "R_RISCV_TLS_DTPMOD64"; - case 8: return "R_RISCV_TLS_DTPREL32"; - case 9: return "R_RISCV_TLS_DTPREL64"; - case 10: return "R_RISCV_TLS_TPREL32"; - case 11: return "R_RISCV_TLS_TPREL64"; - case 16: return "R_RISCV_BRANCH"; - case 17: return "R_RISCV_JAL"; - case 18: return "R_RISCV_CALL"; - case 19: return "R_RISCV_CALL_PLT"; - case 20: return "R_RISCV_GOT_HI20"; - case 21: return "R_RISCV_TLS_GOT_HI20"; - case 22: return "R_RISCV_TLS_GD_HI20"; - case 23: return "R_RISCV_PCREL_HI20"; - case 24: return "R_RISCV_PCREL_LO12_I"; - case 25: return "R_RISCV_PCREL_LO12_S"; - case 26: return "R_RISCV_HI20"; - case 27: return "R_RISCV_LO12_I"; - case 28: return "R_RISCV_LO12_S"; - case 29: return "R_RISCV_TPREL_HI20"; - case 30: return "R_RISCV_TPREL_LO12_I"; - case 31: return "R_RISCV_TPREL_LO12_S"; - case 32: return "R_RISCV_TPREL_ADD"; - case 33: return "R_RISCV_ADD8"; - case 34: return "R_RISCV_ADD16"; - case 35: return "R_RISCV_ADD32"; - case 36: return "R_RISCV_ADD64"; - case 37: return "R_RISCV_SUB8"; - case 38: return "R_RISCV_SUB16"; - case 39: return "R_RISCV_SUB32"; - case 40: return "R_RISCV_SUB64"; - case 41: return "R_RISCV_GNU_VTINHERIT"; - case 42: return "R_RISCV_GNU_VTENTRY"; - case 43: return "R_RISCV_ALIGN"; - case 44: return "R_RISCV_RVC_BRANCH"; - case 45: return "R_RISCV_RVC_JUMP"; - case 46: return "R_RISCV_RVC_LUI"; - case 47: return "R_RISCV_GPREL_I"; - case 48: return "R_RISCV_GPREL_S"; - case 49: return "R_RISCV_TPREL_I"; - case 50: return "R_RISCV_TPREL_S"; - case 51: return "R_RISCV_RELAX"; - case 52: return "R_RISCV_SUB6"; - case 53: return "R_RISCV_SET6"; - case 54: return "R_RISCV_SET8"; - case 55: return "R_RISCV_SET16"; - case 56: return "R_RISCV_SET32"; - case 57: return "R_RISCV_32_PCREL"; - case 58: return "R_RISCV_IRELATIVE"; - } - break; - case EM_S390: - switch (type) { - case 0: return "R_390_NONE"; - case 1: return "R_390_8"; - case 2: return "R_390_12"; - case 3: return "R_390_16"; - case 4: return "R_390_32"; - case 5: return "R_390_PC32"; - case 6: return "R_390_GOT12"; - case 7: return "R_390_GOT32"; - case 8: return "R_390_PLT32"; - case 9: return "R_390_COPY"; - case 10: return "R_390_GLOB_DAT"; - case 11: return "R_390_JMP_SLOT"; - case 12: return "R_390_RELATIVE"; - case 13: return "R_390_GOTOFF"; - case 14: return "R_390_GOTPC"; - case 15: return "R_390_GOT16"; - case 16: return "R_390_PC16"; - case 17: return "R_390_PC16DBL"; - case 18: return "R_390_PLT16DBL"; - case 19: return "R_390_PC32DBL"; - case 20: return "R_390_PLT32DBL"; - case 21: return "R_390_GOTPCDBL"; - case 22: return "R_390_64"; - case 23: return "R_390_PC64"; - case 24: return "R_390_GOT64"; - case 25: return "R_390_PLT64"; - case 26: return "R_390_GOTENT"; - } - break; - case EM_SPARC: - case EM_SPARCV9: - switch(type) { - case 0: return "R_SPARC_NONE"; - case 1: return "R_SPARC_8"; - case 2: return "R_SPARC_16"; - case 3: return "R_SPARC_32"; - case 4: return "R_SPARC_DISP8"; - case 5: return "R_SPARC_DISP16"; - case 6: return "R_SPARC_DISP32"; - case 7: return "R_SPARC_WDISP30"; - case 8: return "R_SPARC_WDISP22"; - case 9: return "R_SPARC_HI22"; - case 10: return "R_SPARC_22"; - case 11: return "R_SPARC_13"; - case 12: return "R_SPARC_LO10"; - case 13: return "R_SPARC_GOT10"; - case 14: return "R_SPARC_GOT13"; - case 15: return "R_SPARC_GOT22"; - case 16: return "R_SPARC_PC10"; - case 17: return "R_SPARC_PC22"; - case 18: return "R_SPARC_WPLT30"; - case 19: return "R_SPARC_COPY"; - case 20: return "R_SPARC_GLOB_DAT"; - case 21: return "R_SPARC_JMP_SLOT"; - case 22: return "R_SPARC_RELATIVE"; - case 23: return "R_SPARC_UA32"; - case 24: return "R_SPARC_PLT32"; - case 25: return "R_SPARC_HIPLT22"; - case 26: return "R_SPARC_LOPLT10"; - case 27: return "R_SPARC_PCPLT32"; - case 28: return "R_SPARC_PCPLT22"; - case 29: return "R_SPARC_PCPLT10"; - case 30: return "R_SPARC_10"; - case 31: return "R_SPARC_11"; - case 32: return "R_SPARC_64"; - case 33: return "R_SPARC_OLO10"; - case 34: return "R_SPARC_HH22"; - case 35: return "R_SPARC_HM10"; - case 36: return "R_SPARC_LM22"; - case 37: return "R_SPARC_PC_HH22"; - case 38: return "R_SPARC_PC_HM10"; - case 39: return "R_SPARC_PC_LM22"; - case 40: return "R_SPARC_WDISP16"; - case 41: return "R_SPARC_WDISP19"; - case 42: return "R_SPARC_GLOB_JMP"; - case 43: return "R_SPARC_7"; - case 44: return "R_SPARC_5"; - case 45: return "R_SPARC_6"; - case 46: return "R_SPARC_DISP64"; - case 47: return "R_SPARC_PLT64"; - case 48: return "R_SPARC_HIX22"; - case 49: return "R_SPARC_LOX10"; - case 50: return "R_SPARC_H44"; - case 51: return "R_SPARC_M44"; - case 52: return "R_SPARC_L44"; - case 53: return "R_SPARC_REGISTER"; - case 54: return "R_SPARC_UA64"; - case 55: return "R_SPARC_UA16"; - case 56: return "R_SPARC_TLS_GD_HI22"; - case 57: return "R_SPARC_TLS_GD_LO10"; - case 58: return "R_SPARC_TLS_GD_ADD"; - case 59: return "R_SPARC_TLS_GD_CALL"; - case 60: return "R_SPARC_TLS_LDM_HI22"; - case 61: return "R_SPARC_TLS_LDM_LO10"; - case 62: return "R_SPARC_TLS_LDM_ADD"; - case 63: return "R_SPARC_TLS_LDM_CALL"; - case 64: return "R_SPARC_TLS_LDO_HIX22"; - case 65: return "R_SPARC_TLS_LDO_LOX10"; - case 66: return "R_SPARC_TLS_LDO_ADD"; - case 67: return "R_SPARC_TLS_IE_HI22"; - case 68: return "R_SPARC_TLS_IE_LO10"; - case 69: return "R_SPARC_TLS_IE_LD"; - case 70: return "R_SPARC_TLS_IE_LDX"; - case 71: return "R_SPARC_TLS_IE_ADD"; - case 72: return "R_SPARC_TLS_LE_HIX22"; - case 73: return "R_SPARC_TLS_LE_LOX10"; - case 74: return "R_SPARC_TLS_DTPMOD32"; - case 75: return "R_SPARC_TLS_DTPMOD64"; - case 76: return "R_SPARC_TLS_DTPOFF32"; - case 77: return "R_SPARC_TLS_DTPOFF64"; - case 78: return "R_SPARC_TLS_TPOFF32"; - case 79: return "R_SPARC_TLS_TPOFF64"; - } - break; - case EM_X86_64: - switch(type) { - case 0: return "R_X86_64_NONE"; - case 1: return "R_X86_64_64"; - case 2: return "R_X86_64_PC32"; - case 3: return "R_X86_64_GOT32"; - case 4: return "R_X86_64_PLT32"; - case 5: return "R_X86_64_COPY"; - case 6: return "R_X86_64_GLOB_DAT"; - case 7: return "R_X86_64_JUMP_SLOT"; - case 8: return "R_X86_64_RELATIVE"; - case 9: return "R_X86_64_GOTPCREL"; - case 10: return "R_X86_64_32"; - case 11: return "R_X86_64_32S"; - case 12: return "R_X86_64_16"; - case 13: return "R_X86_64_PC16"; - case 14: return "R_X86_64_8"; - case 15: return "R_X86_64_PC8"; - case 16: return "R_X86_64_DTPMOD64"; - case 17: return "R_X86_64_DTPOFF64"; - case 18: return "R_X86_64_TPOFF64"; - case 19: return "R_X86_64_TLSGD"; - case 20: return "R_X86_64_TLSLD"; - case 21: return "R_X86_64_DTPOFF32"; - case 22: return "R_X86_64_GOTTPOFF"; - case 23: return "R_X86_64_TPOFF32"; - case 24: return "R_X86_64_PC64"; - case 25: return "R_X86_64_GOTOFF64"; - case 26: return "R_X86_64_GOTPC32"; - case 27: return "R_X86_64_GOT64"; - case 28: return "R_X86_64_GOTPCREL64"; - case 29: return "R_X86_64_GOTPC64"; - case 30: return "R_X86_64_GOTPLT64"; - case 31: return "R_X86_64_PLTOFF64"; - case 32: return "R_X86_64_SIZE32"; - case 33: return "R_X86_64_SIZE64"; - case 34: return "R_X86_64_GOTPC32_TLSDESC"; - case 35: return "R_X86_64_TLSDESC_CALL"; - case 36: return "R_X86_64_TLSDESC"; - case 37: return "R_X86_64_IRELATIVE"; - case 38: return "R_X86_64_RELATIVE64"; - case 41: return "R_X86_64_GOTPCRELX"; - case 42: return "R_X86_64_REX_GOTPCRELX"; - } - break; - } - - snprintf(s_type, sizeof(s_type), "", type); - return (s_type); -} diff --git a/contrib/elftoolchain/libelftc/elftc_set_timestamps.3 b/contrib/elftoolchain/libelftc/elftc_set_timestamps.3 deleted file mode 100644 index b6d4898c..00000000 --- a/contrib/elftoolchain/libelftc/elftc_set_timestamps.3 +++ /dev/null @@ -1,84 +0,0 @@ -.\" Copyright (c) 2011 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 15, 2011 -.Dt ELFTC_SET_TIMESTAMPS 3 -.Os -.Sh NAME -.Nm elftc_set_timestamps -.Nd set file timestamps -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Ft int -.Fn elftc_set_timestamps "const char *filename" "struct stat *sb" -.Sh DESCRIPTION -The -.Fn elftc_set_timestamps -function is used to set the access and modified time stamps on a file -based on the contents of a -.Vt "struct stat" -descriptor. -.Pp -Argument -.Ar filename -names an existing file in the file system. -.Pp -Argument -.Ar sb -points to structure of type -.Vt "struct stat" -populated by a prior call to -.Xr fstat 2 -or -.Xr stat 2 . -.Sh IMPLEMENTATION NOTES -This function will invoke the high-resolution -.Xr utimes 2 -system call if the underlying operating system supports it. -On operating systems lacking support for -.Xr utimes 2 , -the function will use lower resolution -.Xr utime 2 -system call. -.Sh EXAMPLES -To set the access and modified times for a new file to those of an -existing file, use: -.Bd -literal -offset indent -struct stat sb; -const char *existing_filename, *new_filename; - -if (stat(existing_filename, &sb) < 0) - err(EXIT_FAILURE, "stat failed"); - -if (elftc_set_timestamps(new_filename, &sb) < 0) - err(EXIT_FAILURE, "timestamps could not be set"); -.Ed -.Sh SEE ALSO -.Xr fstat 2 , -.Xr stat 2 , -.Xr utime 2 , -.Xr utimes 2 diff --git a/contrib/elftoolchain/libelftc/elftc_set_timestamps.c b/contrib/elftoolchain/libelftc/elftc_set_timestamps.c deleted file mode 100644 index cb28c351..00000000 --- a/contrib/elftoolchain/libelftc/elftc_set_timestamps.c +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * Copyright (c) 2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "libelftc.h" - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -/* - * Determine the field name for the timestamp fields inside a 'struct - * stat'. - */ - -#if defined(__FreeBSD__) || defined(__NetBSD__) -#define ATIME st_atimespec -#define MTIME st_mtimespec -#define LIBELFTC_HAVE_UTIMES 1 -#endif - -#if defined(__DragonFly__) || defined(__linux__) || defined(__OpenBSD__) -#define ATIME st_atim -#define MTIME st_mtim -#define LIBELFTC_HAVE_UTIMES 1 -#endif - -#if LIBELFTC_HAVE_UTIMES -#include -#else -#include -#endif - -int -elftc_set_timestamps(const char *fn, struct stat *sb) -{ -#if LIBELFTC_HAVE_UTIMES - /* - * The BSD utimes() system call offers timestamps - * 1-microsecond granularity. - */ - struct timeval tv[2]; - - tv[0].tv_sec = sb->ATIME.tv_sec; - tv[0].tv_usec = sb->ATIME.tv_nsec / 1000; - tv[1].tv_sec = sb->MTIME.tv_sec; - tv[1].tv_usec = sb->MTIME.tv_nsec / 1000; - - return (utimes(fn, tv)); -#else - /* - * On OSes without utimes(), fall back to the POSIX utime() - * call, which offers 1-second granularity. - */ - struct utimbuf utb; - - utb.actime = sb->st_atime; - utb.modtime = sb->st_mtime; - return (utime(fn, &utb)); -#endif -} diff --git a/contrib/elftoolchain/libelftc/elftc_string_table.c b/contrib/elftoolchain/libelftc/elftc_string_table.c deleted file mode 100644 index 2f8a6501..00000000 --- a/contrib/elftoolchain/libelftc/elftc_string_table.c +++ /dev/null @@ -1,393 +0,0 @@ -/*- - * Copyright (c) 2013, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include - -#include "libelftc.h" -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -#define ELFTC_STRING_TABLE_DEFAULT_SIZE (4*1024) -#define ELFTC_STRING_TABLE_EXPECTED_STRING_SIZE 16 -#define ELFTC_STRING_TABLE_EXPECTED_CHAIN_LENGTH 8 -#define ELFTC_STRING_TABLE_POOL_SIZE_INCREMENT (4*1024) - -struct _Elftc_String_Table_Entry { - ssize_t ste_idx; - SLIST_ENTRY(_Elftc_String_Table_Entry) ste_next; -}; - -#define ELFTC_STRING_TABLE_COMPACTION_FLAG 0x1 -#define ELFTC_STRING_TABLE_LENGTH(st) ((st)->st_len >> 1) -#define ELFTC_STRING_TABLE_CLEAR_COMPACTION_FLAG(st) do { \ - (st)->st_len &= ~ELFTC_STRING_TABLE_COMPACTION_FLAG; \ - } while (0) -#define ELFTC_STRING_TABLE_SET_COMPACTION_FLAG(st) do { \ - (st)->st_len |= ELFTC_STRING_TABLE_COMPACTION_FLAG; \ - } while (0) -#define ELFTC_STRING_TABLE_UPDATE_LENGTH(st, len) do { \ - (st)->st_len = \ - ((st)->st_len & \ - ELFTC_STRING_TABLE_COMPACTION_FLAG) | \ - ((len) << 1); \ - } while (0) - -struct _Elftc_String_Table { - size_t st_len; /* length and flags */ - int st_nbuckets; - size_t st_string_pool_size; - char *st_string_pool; - SLIST_HEAD(_Elftc_String_Table_Bucket, - _Elftc_String_Table_Entry) st_buckets[]; -}; - -static struct _Elftc_String_Table_Entry * -elftc_string_table_find_hash_entry(Elftc_String_Table *st, const char *string, - int *rhashindex) -{ - struct _Elftc_String_Table_Entry *ste; - int hashindex; - char *s; - - hashindex = libelftc_hash_string(string) % st->st_nbuckets; - - if (rhashindex) - *rhashindex = hashindex; - - SLIST_FOREACH(ste, &st->st_buckets[hashindex], ste_next) { - s = st->st_string_pool + labs(ste->ste_idx); - - assert(s > st->st_string_pool && - s < st->st_string_pool + st->st_string_pool_size); - - if (strcmp(s, string) == 0) - return (ste); - } - - return (NULL); -} - -static int -elftc_string_table_add_to_pool(Elftc_String_Table *st, const char *string) -{ - char *newpool; - size_t len, newsize, stlen; - - len = strlen(string) + 1; /* length, including the trailing NUL */ - stlen = ELFTC_STRING_TABLE_LENGTH(st); - - /* Resize the pool, if needed. */ - if (stlen + len >= st->st_string_pool_size) { - newsize = roundup(st->st_string_pool_size + - ELFTC_STRING_TABLE_POOL_SIZE_INCREMENT, - ELFTC_STRING_TABLE_POOL_SIZE_INCREMENT); - if ((newpool = realloc(st->st_string_pool, newsize)) == - NULL) - return (0); - st->st_string_pool = newpool; - st->st_string_pool_size = newsize; - } - - memcpy(st->st_string_pool + stlen, string, len); - ELFTC_STRING_TABLE_UPDATE_LENGTH(st, stlen + len); - - return (stlen); -} - -Elftc_String_Table * -elftc_string_table_create(size_t sizehint) -{ - struct _Elftc_String_Table *st; - int n, nbuckets, tablesize; - - if (sizehint < ELFTC_STRING_TABLE_DEFAULT_SIZE) - sizehint = ELFTC_STRING_TABLE_DEFAULT_SIZE; - - nbuckets = sizehint / (ELFTC_STRING_TABLE_EXPECTED_CHAIN_LENGTH * - ELFTC_STRING_TABLE_EXPECTED_STRING_SIZE); - - tablesize = sizeof(struct _Elftc_String_Table) + - nbuckets * sizeof(struct _Elftc_String_Table_Bucket); - - if ((st = malloc(tablesize)) == NULL) - return (NULL); - if ((st->st_string_pool = malloc(sizehint)) == NULL) { - free(st); - return (NULL); - } - - for (n = 0; n < nbuckets; n++) - SLIST_INIT(&st->st_buckets[n]); - - st->st_len = 0; - st->st_nbuckets = nbuckets; - st->st_string_pool_size = sizehint; - *st->st_string_pool = '\0'; - ELFTC_STRING_TABLE_UPDATE_LENGTH(st, 1); - - return (st); -} - -void -elftc_string_table_destroy(Elftc_String_Table *st) -{ - int n; - struct _Elftc_String_Table_Entry *s, *t; - - for (n = 0; n < st->st_nbuckets; n++) - SLIST_FOREACH_SAFE(s, &st->st_buckets[n], ste_next, t) - free(s); - free(st->st_string_pool); - free(st); -} - -Elftc_String_Table * -elftc_string_table_from_section(Elf_Scn *scn, size_t sizehint) -{ - Elf_Data *d; - GElf_Shdr sh; - const char *s, *end; - Elftc_String_Table *st; - size_t len; - - /* Verify the type of the section passed in. */ - if (gelf_getshdr(scn, &sh) == NULL || - sh.sh_type != SHT_STRTAB) { - errno = EINVAL; - return (NULL); - } - - if ((d = elf_getdata(scn, NULL)) == NULL || - d->d_size == 0) { - errno = EINVAL; - return (NULL); - } - - if ((st = elftc_string_table_create(sizehint)) == NULL) - return (NULL); - - s = d->d_buf; - - /* - * Verify that the first byte of the data buffer is '\0'. - */ - if (*s != '\0') { - errno = EINVAL; - goto fail; - } - - end = s + d->d_size; - - /* - * Skip the first '\0' and insert the strings in the buffer, - * in order. - */ - for (s += 1; s < end; s += len) { - if (elftc_string_table_insert(st, s) == 0) - goto fail; - - len = strlen(s) + 1; /* Include space for the trailing NUL. */ - } - - return (st); - -fail: - if (st) - (void) elftc_string_table_destroy(st); - - return (NULL); -} - -const char * -elftc_string_table_image(Elftc_String_Table *st, size_t *size) -{ - char *r, *s, *end; - struct _Elftc_String_Table_Entry *ste; - struct _Elftc_String_Table_Bucket *head; - size_t copied, offset, length, newsize; - int hashindex; - - /* - * For the common case of a string table has not seen - * a string deletion, we can just export the current - * pool. - */ - if ((st->st_len & ELFTC_STRING_TABLE_COMPACTION_FLAG) == 0) { - if (size) - *size = ELFTC_STRING_TABLE_LENGTH(st); - return (st->st_string_pool); - } - - /* - * Otherwise, compact the string table in-place. - */ - assert(*st->st_string_pool == '\0'); - - newsize = 1; - end = st->st_string_pool + ELFTC_STRING_TABLE_LENGTH(st); - - for (r = s = st->st_string_pool + 1; - s < end; - s += length, r += copied) { - - copied = 0; - length = strlen(s) + 1; - - ste = elftc_string_table_find_hash_entry(st, s, - &hashindex); - head = &st->st_buckets[hashindex]; - - assert(ste != NULL); - - /* Ignore deleted strings. */ - if (ste->ste_idx < 0) { - SLIST_REMOVE(head, ste, _Elftc_String_Table_Entry, - ste_next); - free(ste); - continue; - } - - /* Move 'live' strings up. */ - offset = newsize; - newsize += length; - copied = length; - - if (r == s) /* Nothing removed yet. */ - continue; - - memmove(r, s, copied); - - /* Update the index for this entry. */ - ste->ste_idx = offset; - } - - ELFTC_STRING_TABLE_CLEAR_COMPACTION_FLAG(st); - ELFTC_STRING_TABLE_UPDATE_LENGTH(st, newsize); - - if (size) - *size = newsize; - - return (st->st_string_pool); -} - -size_t -elftc_string_table_insert(Elftc_String_Table *st, const char *string) -{ - struct _Elftc_String_Table_Entry *ste; - ssize_t idx; - int hashindex; - - hashindex = 0; - - ste = elftc_string_table_find_hash_entry(st, string, &hashindex); - - assert(hashindex >= 0 && hashindex < st->st_nbuckets); - - if (ste == NULL) { - if ((ste = malloc(sizeof(*ste))) == NULL) - return (0); - if ((ste->ste_idx = elftc_string_table_add_to_pool(st, - string)) == 0) { - free(ste); - return (0); - } - - SLIST_INSERT_HEAD(&st->st_buckets[hashindex], ste, ste_next); - } - - idx = ste->ste_idx; - if (idx < 0) /* Undelete. */ - ste->ste_idx = idx = -idx; - - return (idx); -} - -size_t -elftc_string_table_lookup(Elftc_String_Table *st, const char *string) -{ - struct _Elftc_String_Table_Entry *ste; - ssize_t idx; - int hashindex; - - ste = elftc_string_table_find_hash_entry(st, string, &hashindex); - - assert(hashindex >= 0 && hashindex < st->st_nbuckets); - - if (ste == NULL || (idx = ste->ste_idx) < 0) - return (0); - - return (idx); -} - -int -elftc_string_table_remove(Elftc_String_Table *st, const char *string) -{ - struct _Elftc_String_Table_Entry *ste; - ssize_t idx; - - ste = elftc_string_table_find_hash_entry(st, string, NULL); - - if (ste == NULL || (idx = ste->ste_idx) < 0) - return (ELFTC_FAILURE); - - assert(idx > 0 && (size_t)idx < ELFTC_STRING_TABLE_LENGTH(st)); - - ste->ste_idx = -idx; - - ELFTC_STRING_TABLE_SET_COMPACTION_FLAG(st); - - return (ELFTC_SUCCESS); -} - -const char * -elftc_string_table_to_string(Elftc_String_Table *st, size_t offset) -{ - const char *s; - - s = st->st_string_pool + offset; - - /* - * Check for: - * - An offset value within pool bounds. - * - A non-NUL byte at the specified offset. - * - The end of the prior string at offset - 1. - */ - if (offset == 0 || offset >= ELFTC_STRING_TABLE_LENGTH(st) || - *s == '\0' || *(s - 1) != '\0') { - errno = EINVAL; - return (NULL); - } - - return (s); -} diff --git a/contrib/elftoolchain/libelftc/elftc_string_table_create.3 b/contrib/elftoolchain/libelftc/elftc_string_table_create.3 deleted file mode 100644 index d010526c..00000000 --- a/contrib/elftoolchain/libelftc/elftc_string_table_create.3 +++ /dev/null @@ -1,226 +0,0 @@ -.\" Copyright (c) 2012-2013 Joseph Koshy. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd June 27, 2019 -.Dt ELFTC_STRING_TABLE_CREATE 3 -.Os -.Sh NAME -.Nm elftc_string_table_create , -.Nm elftc_string_table_destroy , -.Nm elftc_string_table_from_section , -.Nm elftc_string_table_image , -.Nm elftc_string_table_insert , -.Nm elftc_string_table_lookup , -.Nm elftc_string_table_remove , -.Nm elftc_string_table_to_string -.Nd convenience routines for handling ELF string tables -.Sh SYNOPSIS -.In libelftc.h -.Ft "Elftc_String_Table *" -.Fn elftc_string_table_create "size_t sizehint" -.Ft void -.Fn elftc_string_table_destroy "Elftc_String_Table *table" -.Ft "Elftc_String_Table *" -.Fn elftc_string_table_from_section "Elf_Scn *scn" "size_t sizehint" -.Ft "const char *" -.Fo elftc_string_table_image -.Fa "Elftc_String_Table *table" -.Fa "size_t *size" -.Fc -.Ft size_t -.Fo elftc_string_table_insert -.Fa "Elftc_String_Table *table" -.Fa "const char *string" -.Fc -.Ft size_t -.Fo elftc_string_table_lookup -.Fa "Elftc_String_Table *table" -.Fa "const char *string" -.Fc -.Ft int -.Fo elftc_string_table_remove -.Fa "Elftc_String_Table *table" -.Fa "const char *string" -.Fc -.Ft "const char *" -.Fo elftc_string_table_to_string -.Fa "Elftc_String_Table *table" -.Fa "size_t offset" -.Fc -.Sh DESCRIPTION -This manual page documents convenience routines for handling ELF -string tables. -.Pp -Function -.Fn elftc_string_table_create -creates a new, empty string table. -The argument -.Ar sizehint -provides a hint about the expected number of bytes of string data in -the table. -If the argument -.Ar sizehint -is zero, an implementation-defined default will be used instead. -.Pp -Function -.Fn elftc_string_table_destroy -destroys the previously allocated string table specified by -argument -.Ar table , -and frees the internal resources allocated for it. -.Pp -Function -.Fn elftc_string_table_from_section -creates a new string table and initializes it based on the -contents of the section specified by argument -.Ar scn . -This section must be of type -.Dv SHT_STRTAB . -The argument -.Ar sizehint -provides a hint about expected number of bytes of string data in the -table. -If the value of -.Ar sizehint -is zero, an implementation-default will be used instead. -.Pp -Function -.Fn elftc_string_table_image -returns a pointer to the ELF representation of the contents of the -string table specified by argument -.Ar table . -If argument -.Ar size -is not NULL, the size of the ELF representation of the string table is -stored in the location pointed to by argument -.Ar size . -The function -.Fn elftc_string_table_image -will compact the string table if the table contains deleted strings. -The string offsets returned by prior calls to -.Fn elftc_string_table_insert -and -.Fn elftc_string_table_lookup -should be treated as invalid after a call to this function. -.Pp -Function -.Fn elftc_string_table_insert -inserts the NUL-terminated string pointed to by argument -.Ar string -into the string table specified by argument -.Ar table , -and returns an offset value usable in ELF data structures. -Multiple insertions of the same content will return the same offset. -The offset returned will remain valid until the next call to -.Fn elftc_string_table_image . -.Pp -Function -.Fn elftc_string_table_lookup -looks up the string referenced by argument -.Ar string -in the string table specified by argument -.Ar table , -and if found, returns the offset associated with the string. -The returned offset will be valid until the next call to -.Fn elftc_string_table_image . -.Pp -Function -.Fn elftc_string_table_remove -removes the string pointed by argument -.Ar string -from the string table referenced by argument -.Ar table , -if it is present in the string table. -.Pp -Function -.Fn elftc_string_table_to_string -returns a pointer to the NUL-terminated string residing at argument -.Ar offset -in the string table specified by argument -.Ar table . -The value of argument -.Ar offset -should be one returned by a prior call to -.Fn elftc_string_table_insert -or -.Fn elftc_string_table_lookup . -The returned pointer will remain valid until the next call to -.Fn elftc_string_table_insert -or -.Fn elftc_string_table_image . -.Ss Memory Management -The -.Lb libelftc -library manages its own memory allocations. -The application should not free the pointers returned by the string -table functions. -.Sh IMPLEMENTATION NOTES -The current implementation is optimized for the case where strings are -added to a string table, but rarely removed from it. -.Pp -The functions -.Fn elftc_string_table_insert , -.Fn elftc_string_table_lookup , -.Fn elftc_string_table_remove -and -.Fn elftc_string_table_to_string -have O(1) asymptotic behavior. -The function -.Fn elftc_string_table_image -can have O(size) asymptotic behavior, where -.Ar size -denotes the size of the string table. -.Sh RETURN VALUES -Functions -.Fn elftc_string_table_create -and -.Fn elftc_string_table_from_section -return a valid pointer to an opaque structure of type -.Vt Elftc_String_Table -on success, or NULL in case of an error. -.Pp -The function -.Fn elftc_string_table_image -returns a pointer to an in-memory representation of an ELF string -table on success, or NULL in case of an error. -.Pp -Functions -.Fn elftc_string_table_insert -and -.Fn elftc_string_table_lookup -return a non-zero offset on success, or zero in case of an error. -.Pp -Function -.Fn elftc_string_table_remove -returns a positive value on success, or zero in case of an error. -.Pp -Function -.Fn elftc_string_table_to_string -returns a valid pointer on success, or NULL in case of an error. -.Sh SEE ALSO -.Xr dwarf 3 , -.Xr elf 3 , -.Xr elftc 3 diff --git a/contrib/elftoolchain/libelftc/elftc_timestamp.3 b/contrib/elftoolchain/libelftc/elftc_timestamp.3 deleted file mode 100644 index a6257025..00000000 --- a/contrib/elftoolchain/libelftc/elftc_timestamp.3 +++ /dev/null @@ -1,79 +0,0 @@ -.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved. -.\" -.\" This documentation was written by Ed Maste under sponsorship of -.\" the FreeBSD Foundation. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by the author and contributors ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. In no event shall the author or contributors be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 24, 2016 -.Dt ELFTC_TIMESTAMP 3 -.Os -.Sh NAME -.Nm elftc_timestamp -.Nd return the current or environment-provided timestamp -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Ft int -.Fo elftc_timestamp -.Fa "time_t *timestamp" -.Fc -.Sh DESCRIPTION -The -.Fn elftc_timestamp -function returns a timestamp supplied by the -.Ev SOURCE_DATE_EPOCH -environment variable, or the current time provided by -.Xr time 3 -if the environment variable is not set. -.Pp -The -.Ar timestamp -argument specifies a pointer to the location where the timestamp will be -stored. -.Sh RETURN VALUES -Function -.Fn elftc_timestamp -returns 0 on success, and -1 in the event of an error. -.Sh ERRORS -The -.Fn elftc_timestamp -function may fail with the following errors: -.Bl -tag -width ".Bq Er ERANGE" -.It Bq Er EINVAL -.Ev SOURCE_DATE_EPOCH -contains invalid characters. -.It Bq Er ERANGE -.Ev SOURCE_DATE_EPOCH -specifies a negative value or a value that cannot be stored in a -time_t. -.El -The -.Fn elftc_timestamp -function may also fail for any of the reasons described in -.Xr strtoll 3 . -.Sh SEE ALSO -.Xr strtoll 3 , -.Xr time 3 diff --git a/contrib/elftoolchain/libelftc/elftc_timestamp.c b/contrib/elftoolchain/libelftc/elftc_timestamp.c deleted file mode 100644 index ccf482f2..00000000 --- a/contrib/elftoolchain/libelftc/elftc_timestamp.c +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * Copyright (c) 2016 The FreeBSD Foundation - * All rights reserved. - * - * This software was developed by Ed Maste under sponsorship - * of the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -int -elftc_timestamp(time_t *timestamp) -{ - long long source_date_epoch; - char *env, *eptr; - - if ((env = getenv("SOURCE_DATE_EPOCH")) != NULL) { - errno = 0; - source_date_epoch = strtoll(env, &eptr, 10); - if (*eptr != '\0') - errno = EINVAL; - if (source_date_epoch < 0) - errno = ERANGE; - if (errno != 0) - return (-1); - *timestamp = source_date_epoch; - return (0); - } - *timestamp = time(NULL); - return (0); -} diff --git a/contrib/elftoolchain/libelftc/elftc_version.3 b/contrib/elftoolchain/libelftc/elftc_version.3 deleted file mode 100644 index 6b3c1120..00000000 --- a/contrib/elftoolchain/libelftc/elftc_version.3 +++ /dev/null @@ -1,81 +0,0 @@ -.\" Copyright (c) 2011,2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 30, 2012 -.Dt ELFTC_VERSION 3 -.Os -.Sh NAME -.Nm elftc_version -.Nd return a project-wide version identifier string -.Sh LIBRARY -.Lb libelftc -.Sh SYNOPSIS -.In libelftc.h -.Ft const char * -.Fn elftc_version void -.Sh DESCRIPTION -Function -.Fn elftc_version -returns a project-wide identifier string that encodes the source -revision of the project source tree. -.Pp -The returned identifier has four space-separated fields: -.Bl -tag -width ".Em Project Branch" -.It Em "Project-Name" -This is always -.Dq elftoolchain . -.It Em "Project-Branch" -The branch name for the project source tree. -.It Em "Build-OS" -The operating system that the tool chain was compiled for. -.It Em "Version-Number" -A tree-wide version number extracted from the version control -system in use. -.El -.Sh RETURN VALUES -Function -.Fn elftc_program_version -returns a pointer to an internal character buffer. -.Sh EXAMPLES -To retrieve and print the current toolchain version identifier, use: -.Bd -literal -offset indent -#include -#include - -(void) printf("%s\en", elftc_version()); -.Ed -.Pp -On the HEAD branch of the project's sources, when checked out using -Subversion and compiled on a -.Nx -host, this would print: -.D1 Dq elftoolchain HEAD NetBSD svn: Ns Em REVINFO -where -.Em REVINFO -would be the current revision information for the project source tree. -.Sh ERRORS -Function -.Fn elftc_program_version -always succeeds. diff --git a/contrib/elftoolchain/libelftc/libelftc.h b/contrib/elftoolchain/libelftc/libelftc.h deleted file mode 100644 index 80b039fb..00000000 --- a/contrib/elftoolchain/libelftc/libelftc.h +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * Copyright (c) 2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD: users/kaiwang27/elftc/libelftc.h 392 2009-05-31 19:17:46Z kaiwang27 $ - * $Id$ - */ - -#ifndef _LIBELFTC_H_ -#define _LIBELFTC_H_ - -#include - -#include - -/* - * Types meant to be opaque to the consumers of these APIs. - */ -typedef struct _Elftc_Bfd_Target Elftc_Bfd_Target; -typedef struct _Elftc_String_Table Elftc_String_Table; - -/* Target types. */ -typedef enum { - ETF_NONE, - ETF_ELF, - ETF_BINARY, - ETF_SREC, - ETF_IHEX, - ETF_PE, - ETF_EFI, -} Elftc_Bfd_Target_Flavor; - -/* - * Demangler flags. - */ - -/* Name mangling style. */ -#define ELFTC_DEM_UNKNOWN 0x00000000U /* Not specified. */ -#define ELFTC_DEM_ARM 0x00000001U /* C++ Ann. Ref. Manual. */ -#define ELFTC_DEM_GNU2 0x00000002U /* GNU version 2. */ -#define ELFTC_DEM_GNU3 0x00000004U /* GNU version 3. */ - -/* Demangling behaviour control. */ -#define ELFTC_DEM_NOPARAM 0x00010000U - -#ifdef __cplusplus -extern "C" { -#endif -Elftc_Bfd_Target *elftc_bfd_find_target(const char *_tgt_name); -Elftc_Bfd_Target_Flavor elftc_bfd_target_flavor(Elftc_Bfd_Target *_tgt); -unsigned int elftc_bfd_target_byteorder(Elftc_Bfd_Target *_tgt); -unsigned int elftc_bfd_target_class(Elftc_Bfd_Target *_tgt); -unsigned int elftc_bfd_target_machine(Elftc_Bfd_Target *_tgt); -int elftc_copyfile(int _srcfd, int _dstfd); -int elftc_demangle(const char *_mangledname, char *_buffer, - size_t _bufsize, unsigned int _flags); -const char *elftc_reloc_type_str(unsigned int mach, unsigned int type); -int elftc_set_timestamps(const char *_filename, struct stat *_sb); -Elftc_String_Table *elftc_string_table_create(size_t _sizehint); -void elftc_string_table_destroy(Elftc_String_Table *_table); -Elftc_String_Table *elftc_string_table_from_section(Elf_Scn *_scn, - size_t _sizehint); -const char *elftc_string_table_image(Elftc_String_Table *_table, - size_t *_sz); -size_t elftc_string_table_insert(Elftc_String_Table *_table, - const char *_string); -size_t elftc_string_table_lookup(Elftc_String_Table *_table, - const char *_string); -int elftc_string_table_remove(Elftc_String_Table *_table, - const char *_string); -const char *elftc_string_table_to_string(Elftc_String_Table *_table, - size_t offset); -int elftc_timestamp(time_t *_timestamp); -const char *elftc_version(void); -#ifdef __cplusplus -} -#endif - -#endif /* _LIBELFTC_H_ */ diff --git a/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c b/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c deleted file mode 100644 index 1b8dcbf5..00000000 --- a/contrib/elftoolchain/libelftc/libelftc_bfdtarget.c +++ /dev/null @@ -1,488 +0,0 @@ -/*- - * Copyright (c) 2008,2009 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -struct _Elftc_Bfd_Target _libelftc_targets[] = { - - { - .bt_name = "binary", - .bt_type = ETF_BINARY, - }, - - { - .bt_name = "elf32-avr", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_AVR, - }, - - { - .bt_name = "elf32-big", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - }, - - { - .bt_name = "elf32-bigarm", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_ARM, - }, - - { - .bt_name = "elf32-bigmips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf32-i386", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_386, - }, - - { - .bt_name = "elf32-i386-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_386, - .bt_osabi = ELFOSABI_FREEBSD, - }, - - { - .bt_name = "elf32-ia64-big", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_IA_64, - }, - - { - .bt_name = "elf32-little", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - }, - - { - .bt_name = "elf32-littlearm", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_ARM, - }, - - { - .bt_name = "elf32-littlemips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf32-powerpc", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_PPC, - }, - - { - .bt_name = "elf32-powerpc-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_PPC, - .bt_osabi = ELFOSABI_FREEBSD, - }, - - { - .bt_name = "elf32-powerpcle", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_PPC, - }, - - { - .bt_name = "elf32-sh", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SH, - }, - - { - .bt_name = "elf32-shl", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SH, - }, - - { - .bt_name = "elf32-sh-nbsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_NETBSD, - }, - - { - .bt_name = "elf32-shl-nbsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_NETBSD, - }, - - { - .bt_name = "elf32-shbig-linux", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_LINUX, - }, - - { - .bt_name = "elf32-sh-linux", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_LINUX, - }, - - { - .bt_name = "elf32-sparc", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_SPARC, - }, - - { - .bt_name = "elf32-tradbigmips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf32-tradlittlemips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf64-alpha", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_ALPHA, - }, - - { - .bt_name = "elf64-alpha-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_ALPHA, - .bt_osabi = ELFOSABI_FREEBSD - }, - - { - .bt_name = "elf64-big", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - }, - - { - .bt_name = "elf64-bigmips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf64-ia64-big", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_IA_64, - }, - - { - .bt_name = "elf64-ia64-little", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_IA_64, - }, - - { - .bt_name = "elf64-little", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - }, - - { - .bt_name = "elf64-littleaarch64", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_AARCH64, - }, - - { - .bt_name = "elf64-littlemips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf64-powerpc", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_PPC64, - }, - - { - .bt_name = "elf64-powerpc-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_PPC64, - .bt_osabi = ELFOSABI_FREEBSD, - }, - - { - .bt_name = "elf64-powerpcle", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_PPC64, - }, - - { - .bt_name = "elf32-riscv", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS32, - .bt_machine = EM_RISCV, - }, - - { - .bt_name = "elf64-riscv", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_RISCV, - }, - - { - .bt_name = "elf64-riscv-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_RISCV, - .bt_osabi = ELFOSABI_FREEBSD, - }, - - { - .bt_name = "elf64-sh64", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SH, - }, - - { - .bt_name = "elf64-sh64l", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SH, - }, - - { - .bt_name = "elf64-sh64-nbsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_NETBSD, - }, - - { - .bt_name = "elf64-sh64l-nbsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_NETBSD, - }, - - { - .bt_name = "elf64-sh64big-linux", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_LINUX, - }, - - { - .bt_name = "elf64-sh64-linux", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SH, - .bt_osabi = ELFOSABI_LINUX, - }, - - { - .bt_name = "elf64-sparc", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SPARCV9, - }, - - { - .bt_name = "elf64-sparc-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_SPARCV9, - .bt_osabi = ELFOSABI_FREEBSD - }, - - { - .bt_name = "elf64-tradbigmips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2MSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf64-tradlittlemips", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_MIPS, - }, - - { - .bt_name = "elf64-x86-64", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_X86_64, - }, - - { - .bt_name = "elf64-x86-64-freebsd", - .bt_type = ETF_ELF, - .bt_byteorder = ELFDATA2LSB, - .bt_elfclass = ELFCLASS64, - .bt_machine = EM_X86_64, - .bt_osabi = ELFOSABI_FREEBSD - }, - - { - .bt_name = "ihex", - .bt_type = ETF_IHEX, - }, - - { - .bt_name = "srec", - .bt_type = ETF_SREC, - }, - - { - .bt_name = "symbolsrec", - .bt_type = ETF_SREC, - }, - - { - .bt_name = "efi-app-ia32", - .bt_type = ETF_EFI, - .bt_machine = EM_386, - }, - - { - .bt_name = "efi-app-x86_64", - .bt_type = ETF_EFI, - .bt_machine = EM_X86_64, - }, - - { - .bt_name = "pei-i386", - .bt_type = ETF_PE, - .bt_machine = EM_386, - }, - - { - .bt_name = "pei-x86-64", - .bt_type = ETF_PE, - .bt_machine = EM_X86_64, - }, - - { - .bt_name = NULL, - .bt_type = ETF_NONE, - }, -}; diff --git a/contrib/elftoolchain/libelftc/libelftc_dem_arm.c b/contrib/elftoolchain/libelftc/libelftc_dem_arm.c deleted file mode 100644 index 97761f33..00000000 --- a/contrib/elftoolchain/libelftc/libelftc_dem_arm.c +++ /dev/null @@ -1,1217 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -/** - * @file cpp_demangle_arm.c - * @brief Decode function name encoding in ARM. - * - * Function name encoding in "The Annotated C++ Reference Manual". - * - * Ref : "The Annotated C++ Reference Manual", Margaet A.Ellis, - * Bjarne Stroustrup, AT&T Bell Laboratories 1990, pp 122-126. - */ - -enum encode_type { - ENCODE_FUNC, ENCODE_OP, ENCODE_OP_CT, ENCODE_OP_DT, ENCODE_OP_USER -}; - -struct cstring { - char *buf; - size_t size; -}; - -struct demangle_data { - bool ptr, ref, cnst, array; - struct cstring array_str; - const char *p; - enum encode_type type; - struct vector_str vec; - struct vector_str arg; -}; - -#define SIMPLE_HASH(x,y) (64 * x + y) -#define VEC_PUSH_STR(d,s) vector_str_push((d), (s), strlen((s))) -#define CPP_DEMANGLE_ARM_TRY 128 - -static void dest_cstring(struct cstring *); -static void dest_demangle_data(struct demangle_data *); -static bool init_cstring(struct cstring *, size_t); -static bool init_demangle_data(struct demangle_data *); -static bool push_CTDT(const char *, size_t, struct vector_str *); -static bool read_array(struct demangle_data *); -static bool read_class(struct demangle_data *); -static bool read_func(struct demangle_data *); -static bool read_func_name(struct demangle_data *); -static bool read_func_ptr(struct demangle_data *); -static bool read_memptr(struct demangle_data *); -static bool read_op(struct demangle_data *); -static bool read_op_user(struct demangle_data *); -static bool read_qual_name(struct demangle_data *); -static int read_subst(struct demangle_data *); -static int read_subst_iter(struct demangle_data *); -static bool read_type(struct demangle_data *); - -/** - * @brief Decode the input string by the ARM style. - * - * @return New allocated demangled string or NULL if failed. - */ -char * -cpp_demangle_ARM(const char *org) -{ - struct demangle_data d; - size_t arg_begin, arg_len; - unsigned int try; - char *rtn, *arg; - - if (org == NULL) - return (NULL); - - if (init_demangle_data(&d) == false) - return (NULL); - - try = 0; - rtn = NULL; - - d.p = org; - if (read_func_name(&d) == false) - goto clean; - - if (d.type == ENCODE_OP_CT) { - if (push_CTDT("::", 2, &d.vec) == false) - goto clean; - - goto flat; - } - - if (d.type == ENCODE_OP_DT) { - if (push_CTDT("::~", 3, &d.vec) == false) - goto clean; - - goto flat; - } - - if (d.type == ENCODE_OP_USER) - goto flat; - - /* function type */ - if (*d.p != 'F') - goto clean; - ++d.p; - - /* start argument types */ - if (VEC_PUSH_STR(&d.vec, "(") == false) - goto clean; - - for (;;) { - if (*d.p == 'T') { - const int rtn_subst = read_subst(&d); - - if (rtn_subst == -1) - goto clean; - else if (rtn_subst == 1) - break; - - continue; - } - - if (*d.p == 'N') { - const int rtn_subst_iter = read_subst_iter(&d); - - if (rtn_subst_iter == -1) - goto clean; - else if(rtn_subst_iter == 1) - break; - - continue; - } - - arg_begin = d.vec.size; - - if (read_type(&d) == false) - goto clean; - - if (d.ptr == true) { - if (VEC_PUSH_STR(&d.vec, "*") == false) - goto clean; - - d.ptr = false; - } - - if (d.ref == true) { - if (VEC_PUSH_STR(&d.vec, "&") == false) - goto clean; - - d.ref = false; - } - - if (d.cnst == true) { - if (VEC_PUSH_STR(&d.vec, " const") == false) - goto clean; - - d.cnst = false; - } - - if (d.array == true) { - if (vector_str_push(&d.vec, d.array_str.buf, - d.array_str.size) == false) - goto clean; - - dest_cstring(&d.array_str); - d.array = false; - } - - if (*d.p == '\0') - break; - - if ((arg = vector_str_substr(&d.vec, arg_begin, d.vec.size - 1, - &arg_len)) == NULL) - goto clean; - - if (vector_str_push(&d.arg, arg, arg_len) == false) { - free(arg); - goto clean; - } - - free(arg); - - if (VEC_PUSH_STR(&d.vec, ", ") == false) - goto clean; - - if (++try > CPP_DEMANGLE_ARM_TRY) - goto clean; - } - - /* end argument types */ - if (VEC_PUSH_STR(&d.vec, ")") == false) - goto clean; - -flat: - rtn = vector_str_get_flat(&d.vec, NULL); -clean: - dest_demangle_data(&d); - - return (rtn); -} - -/** - * @brief Test input string is encoded by the ARM style. - * - * @return True if input string is encoded by the ARM style. - */ -bool -is_cpp_mangled_ARM(const char *org) -{ - - if (org == NULL) - return (false); - - return (strstr(org, "__") != NULL); -} - -static void -dest_cstring(struct cstring *s) -{ - - if (s == NULL) - return; - - free(s->buf); - s->buf = NULL; - s->size = 0; -} - -static void -dest_demangle_data(struct demangle_data *d) -{ - - if (d != NULL) { - vector_str_dest(&d->arg); - vector_str_dest(&d->vec); - - dest_cstring(&d->array_str); - } -} - -static bool -init_cstring(struct cstring *s, size_t len) -{ - - if (s == NULL || len <= 1) - return (false); - - if ((s->buf = malloc(sizeof(char) * len)) == NULL) - return (false); - - s->size = len - 1; - - return (true); -} - -static bool -init_demangle_data(struct demangle_data *d) -{ - - if (d == NULL) - return (false); - - d->ptr = false; - d->ref = false; - d->cnst = false; - d->array = false; - - d->array_str.buf = NULL; - d->array_str.size = 0; - - d->type = ENCODE_FUNC; - - if (!vector_str_init(&d->vec)) - return (false); - - if (!vector_str_init(&d->arg)) { - vector_str_dest(&d->vec); - return (false); - } - - return (true); -} - -static bool -push_CTDT(const char *s, size_t l, struct vector_str *v) -{ - - if (s == NULL || l == 0 || v == NULL) - return (false); - - if (vector_str_push(v, s, l) == false) - return (false); - - assert(v->size > 1); - if (VEC_PUSH_STR(v, v->container[v->size - 2]) == false) - return (false); - - if (VEC_PUSH_STR(v, "()") == false) - return (false); - - return (true); -} - -static bool -read_array(struct demangle_data *d) -{ - size_t len; - const char *end; - - if (d == NULL || d->p == NULL) - return (false); - - end = d->p; - assert(end != NULL); - - for (;;) { - if (*end == '\0') - return (false); - - if (ELFTC_ISDIGIT(*end) == 0) - break; - - ++end; - } - - if (*end != '_') - return (false); - - len = end - d->p; - assert(len > 0); - - dest_cstring(&d->array_str); - if (init_cstring(&d->array_str, len + 3) == false) - return (false); - - strncpy(d->array_str.buf + 1, d->p, len); - *d->array_str.buf = '['; - *(d->array_str.buf + len + 1) = ']'; - - d->array = true; - d->p = end + 1; - - return (true); -} - -static bool -read_class(struct demangle_data *d) -{ - size_t len; - char *str; - - if (d == NULL) - return (false); - - len = strtol(d->p, &str, 10); - if (len == 0 && (errno == EINVAL || errno == ERANGE)) - return (false); - - assert(len > 0); - assert(str != NULL); - - if (vector_str_push(&d->vec, str, len) == false) - return (false); - - d->p = str + len; - - return (true); -} - -static bool -read_func(struct demangle_data *d) -{ - size_t len; - const char *name; - char *delim; - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - if ((delim = strstr(d->p, "__")) == NULL) - return (false); - - len = delim - d->p; - assert(len != 0); - - name = d->p; - - d->p = delim + 2; - - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - if (read_qual_name(d) == false) - return (false); - } else if (ELFTC_ISDIGIT(*d->p)) { - if (read_class(d) == false) - return (false); - - if (VEC_PUSH_STR(&d->vec, "::") == false) - return (false); - } - - if (vector_str_push(&d->vec, name, len) == false) - return (false); - - return (true); -} - -static bool -read_func_name(struct demangle_data *d) -{ - size_t len; - bool rtn; - char *op_name; - - if (d == NULL) - return (false); - - rtn = false; - op_name = NULL; - - assert(d->p != NULL && "d->p (org str) is NULL"); - - if (*d->p == '_' && *(d->p + 1) == '_') { - d->p += 2; - - d->type = ENCODE_OP; - if (read_op(d) == false) - return (false); - - if (d->type == ENCODE_OP_CT || d->type == ENCODE_OP_DT || - d->type == ENCODE_OP_USER) - return (true); - - /* skip "__" */ - d->p += 2; - - /* assume delimiter is removed */ - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - assert(d->vec.size > 0); - - len = strlen(d->vec.container[d->vec.size - 1]); - if ((op_name = malloc(sizeof(char) * (len + 1))) - == NULL) - return (false); - - snprintf(op_name, len + 1, "%s", - d->vec.container[d->vec.size - 1]); - vector_str_pop(&d->vec); - - if (read_qual_name(d) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::") == false) - goto clean; - - if (vector_str_push(&d->vec, op_name, len) == false) - goto clean; - - rtn = true; - } else if (ELFTC_ISDIGIT(*d->p)) { - assert(d->vec.size > 0); - - len = strlen(d->vec.container[d->vec.size - 1]); - if ((op_name = malloc(sizeof(char) * (len + 1))) - == NULL) - return (false); - - snprintf(op_name, len + 1, "%s", - d->vec.container[d->vec.size - 1]); - vector_str_pop(&d->vec); - - if (read_class(d) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::") == false) - goto clean; - - if (vector_str_push(&d->vec, op_name, len) == false) - goto clean; - - rtn = true; - } - } else - return (read_func(d)); - -clean: - free(op_name); - - return (rtn); -} - -/* Read function ptr type */ -static bool -read_func_ptr(struct demangle_data *d) -{ - struct demangle_data fptr; - size_t arg_len, rtn_len; - char *arg_type, *rtn_type; - int lim; - - if (d == NULL) - return (false); - - if (init_demangle_data(&fptr) == false) - return (false); - - fptr.p = d->p + 1; - lim = 0; - arg_type = NULL; - rtn_type = NULL; - - for (;;) { - if (read_type(&fptr) == false) { - dest_demangle_data(&fptr); - - return (false); - } - - if (fptr.ptr == true) { - if (VEC_PUSH_STR(&fptr.vec, "*") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - fptr.ptr = false; - } - - if (fptr.ref == true) { - if (VEC_PUSH_STR(&fptr.vec, "&") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - fptr.ref = false; - } - - if (fptr.cnst == true) { - if (VEC_PUSH_STR(&fptr.vec, " const") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - fptr.cnst = false; - } - - if (*fptr.p == '_') - break; - - if (VEC_PUSH_STR(&fptr.vec, ", ") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - if (++lim > CPP_DEMANGLE_ARM_TRY) { - - dest_demangle_data(&fptr); - - return (false); - } - } - - arg_type = vector_str_get_flat(&fptr.vec, &arg_len); - /* skip '_' */ - d->p = fptr.p + 1; - - dest_demangle_data(&fptr); - - if (init_demangle_data(&fptr) == false) { - free(arg_type); - - return (false); - } - - fptr.p = d->p; - lim = 0; - - if (read_type(&fptr) == false) { - free(arg_type); - dest_demangle_data(&fptr); - - return (false); - } - - rtn_type = vector_str_get_flat(&fptr.vec, &rtn_len); - d->p = fptr.p; - - - dest_demangle_data(&fptr); - - if (vector_str_push(&d->vec, rtn_type, rtn_len) == false) { - free(rtn_type); - free(arg_type); - - return (false); - } - - free(rtn_type); - - if (VEC_PUSH_STR(&d->vec, " (*)(") == false) { - free(arg_type); - - return (false); - } - - if (vector_str_push(&d->vec, arg_type, arg_len) == false) { - free(arg_type); - - return (false); - } - - free(arg_type); - - return (VEC_PUSH_STR(&d->vec, ")")); -} - -static bool -read_memptr(struct demangle_data *d) -{ - struct demangle_data mptr; - size_t len; - bool rtn; - char *mptr_str; - - if (d == NULL || d->p == NULL) - return (false); - - if (init_demangle_data(&mptr) == false) - return (false); - - rtn = false; - mptr_str = NULL; - - mptr.p = d->p; - if (*mptr.p == 'Q') { - ++mptr.p; - - if (read_qual_name(&mptr) == false) - goto clean; - } else { - if (read_class(&mptr) == false) - goto clean; - } - - d->p = mptr.p; - - if ((mptr_str = vector_str_get_flat(&mptr.vec, &len)) == NULL) - goto clean; - - if (vector_str_push(&d->vec, mptr_str, len) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::*") == false) - goto clean; - - rtn = true; -clean: - free(mptr_str); - dest_demangle_data(&mptr); - - return (rtn); -} - -static bool -read_op(struct demangle_data *d) -{ - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - - switch (SIMPLE_HASH(*(d->p), *(d->p+1))) { - case SIMPLE_HASH('m', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator*")); - case SIMPLE_HASH('d', 'v') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator/")); - case SIMPLE_HASH('m', 'd') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator%")); - case SIMPLE_HASH('p', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator+")); - case SIMPLE_HASH('m', 'i') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator-")); - case SIMPLE_HASH('l', 's') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator<<")); - case SIMPLE_HASH('r', 's') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator>>")); - case SIMPLE_HASH('e', 'q') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator==")); - case SIMPLE_HASH('n', 'e') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator!=")); - case SIMPLE_HASH('l', 't') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator<")); - case SIMPLE_HASH('g', 't') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator>")); - case SIMPLE_HASH('l', 'e') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator<=")); - case SIMPLE_HASH('g', 'e') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator>=")); - case SIMPLE_HASH('a', 'd') : - d->p += 2; - if (*d->p == 'v') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator/=")); - } else - return (VEC_PUSH_STR(&d->vec, "operator&")); - case SIMPLE_HASH('o', 'r') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator|")); - case SIMPLE_HASH('e', 'r') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator^")); - case SIMPLE_HASH('a', 'a') : - d->p += 2; - if (*d->p == 'd') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator&=")); - } else - return (VEC_PUSH_STR(&d->vec, "operator&&")); - case SIMPLE_HASH('o', 'o') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator||")); - case SIMPLE_HASH('n', 't') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator!")); - case SIMPLE_HASH('c', 'o') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator~")); - case SIMPLE_HASH('p', 'p') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator++")); - case SIMPLE_HASH('m', 'm') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator--")); - case SIMPLE_HASH('a', 's') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator=")); - case SIMPLE_HASH('r', 'f') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator->")); - case SIMPLE_HASH('a', 'p') : - /* apl */ - if (*(d->p + 2) != 'l') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator+=")); - case SIMPLE_HASH('a', 'm') : - d->p += 2; - if (*d->p == 'i') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator-=")); - } else if (*d->p == 'u') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator*=")); - } else if (*d->p == 'd') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator%=")); - } - - return (false); - case SIMPLE_HASH('a', 'l') : - /* als */ - if (*(d->p + 2) != 's') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator<<=")); - case SIMPLE_HASH('a', 'r') : - /* ars */ - if (*(d->p + 2) != 's') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator>>=")); - case SIMPLE_HASH('a', 'o') : - /* aor */ - if (*(d->p + 2) != 'r') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator|=")); - case SIMPLE_HASH('a', 'e') : - /* aer */ - if (*(d->p + 2) != 'r') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator^=")); - case SIMPLE_HASH('c', 'm') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator,")); - case SIMPLE_HASH('r', 'm') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator->*")); - case SIMPLE_HASH('c', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "()")); - case SIMPLE_HASH('v', 'c') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "[]")); - case SIMPLE_HASH('c', 't') : - d->p += 4; - d->type = ENCODE_OP_CT; - - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - return (read_qual_name(d)); - } else if (ELFTC_ISDIGIT(*d->p)) - return (read_class(d)); - - return (false); - case SIMPLE_HASH('d', 't') : - d->p += 4; - d->type = ENCODE_OP_DT; - - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - return (read_qual_name(d)); - } else if (ELFTC_ISDIGIT(*d->p)) - return (read_class(d)); - - return (false); - case SIMPLE_HASH('n', 'w') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator new()")); - case SIMPLE_HASH('d', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator delete()")); - case SIMPLE_HASH('o', 'p') : - /* __op__ */ - d->p += 2; - - d->type = ENCODE_OP_USER; - - return (read_op_user(d)); - default : - return (false); - }; -} - -static bool -read_op_user(struct demangle_data *d) -{ - struct demangle_data from, to; - size_t from_len, to_len; - bool rtn; - char *from_str, *to_str; - - if (d == NULL) - return (false); - - if (init_demangle_data(&from) == false) - return (false); - - rtn = false; - from_str = NULL; - to_str = NULL; - if (init_demangle_data(&to) == false) - goto clean; - - to.p = d->p; - if (*to.p == 'Q') { - ++to.p; - - if (read_qual_name(&to) == false) - goto clean; - - /* pop last '::' */ - if (vector_str_pop(&to.vec) == false) - goto clean; - } else { - if (read_class(&to) == false) - goto clean; - - /* skip '__' */ - to.p += 2; - } - - if ((to_str = vector_str_get_flat(&to.vec, &to_len)) == NULL) - goto clean; - - from.p = to.p; - if (*from.p == 'Q') { - ++from.p; - - if (read_qual_name(&from) == false) - goto clean; - - /* pop last '::' */ - if (vector_str_pop(&from.vec) == false) - goto clean; - } else { - if (read_class(&from) == false) - goto clean; - } - - if ((from_str = vector_str_get_flat(&from.vec, &from_len)) == NULL) - goto clean; - - if (vector_str_push(&d->vec, from_str, from_len) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::operator ") == false) - goto clean; - - if (vector_str_push(&d->vec, to_str, to_len) == false) - goto clean; - - rtn = VEC_PUSH_STR(&d->vec, "()"); -clean: - free(to_str); - free(from_str); - dest_demangle_data(&to); - dest_demangle_data(&from); - - return (rtn); -} - -/* single digit + class names */ -static bool -read_qual_name(struct demangle_data *d) -{ - int i; - char num; - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - assert(*d->p > 48 && *d->p < 58 && "*d->p not in ASCII numeric range"); - - num = *d->p - 48; - - assert(num > 0); - - ++d->p; - for (i = 0; i < num ; ++i) { - if (read_class(d) == false) - return (false); - - if (VEC_PUSH_STR(&d->vec, "::") == false) - return (false); - } - - if (*d->p != '\0') - d->p = d->p + 2; - - return (true); -} - -/* Return -1 at fail, 0 at success, and 1 at end */ -static int -read_subst(struct demangle_data *d) -{ - size_t idx; - char *str; - - if (d == NULL) - return (-1); - - idx = strtol(d->p + 1, &str, 10); - if (idx == 0 && (errno == EINVAL || errno == ERANGE)) - return (-1); - - assert(idx > 0); - assert(str != NULL); - - d->p = str; - - if (VEC_PUSH_STR(&d->vec, d->arg.container[idx - 1]) == false) - return (-1); - - if (VEC_PUSH_STR(&d->arg, d->arg.container[idx - 1]) == false) - return (-1); - - if (*d->p == '\0') - return (1); - - return (0); -} - -static int -read_subst_iter(struct demangle_data *d) -{ - int i; - size_t idx; - char repeat; - char *str; - - if (d == NULL) - return (-1); - - ++d->p; - assert(*d->p > 48 && *d->p < 58 && "*d->p not in ASCII numeric range"); - - repeat = *d->p - 48; - - assert(repeat > 1); - - ++d->p; - - idx = strtol(d->p, &str, 10); - if (idx == 0 && (errno == EINVAL || errno == ERANGE)) - return (-1); - - assert(idx > 0); - assert(str != NULL); - - d->p = str; - - for (i = 0; i < repeat ; ++i) { - if (VEC_PUSH_STR(&d->vec, d->arg.container[idx - 1]) == false) - return (-1); - - if (VEC_PUSH_STR(&d->arg, d->arg.container[idx - 1]) == false) - return (-1); - - if (i != repeat - 1 && - VEC_PUSH_STR(&d->vec, ", ") == false) - return (-1); - } - - if (*d->p == '\0') - return (1); - - return (0); -} - -static bool -read_type(struct demangle_data *d) -{ - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - - while (*d->p == 'U' || *d->p == 'C' || *d->p == 'V' || *d->p == 'S' || - *d->p == 'P' || *d->p == 'R' || *d->p == 'A' || *d->p == 'F' || - *d->p == 'M') { - switch (*d->p) { - case 'U' : - ++d->p; - - if (VEC_PUSH_STR(&d->vec, "unsigned ") == false) - return (false); - - break; - case 'C' : - ++d->p; - - if (*d->p == 'P') - d->cnst = true; - else { - if (VEC_PUSH_STR(&d->vec, "const ") == - false) - return (false); - } - - break; - case 'V' : - ++d->p; - - if (VEC_PUSH_STR(&d->vec, "volatile ") == false) - return (false); - - break; - case 'S' : - ++d->p; - - if (VEC_PUSH_STR(&d->vec, "signed ") == false) - return (false); - - break; - case 'P' : - ++d->p; - - if (*d->p == 'F') - return (read_func_ptr(d)); - else - d->ptr = true; - - break; - case 'R' : - ++d->p; - - d->ref = true; - - break; - case 'F' : - break; - case 'A' : - ++d->p; - - if (read_array(d) == false) - return (false); - - break; - case 'M' : - ++d->p; - - if (read_memptr(d) == false) - return (false); - - break; - default : - break; - } - } - - if (ELFTC_ISDIGIT(*d->p)) - return (read_class(d)); - - switch (*d->p) { - case 'Q' : - ++d->p; - - return (read_qual_name(d)); - case 'v' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "void")); - case 'c' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "char")); - case 's' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "short")); - case 'i' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "int")); - case 'l' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "long")); - case 'f' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "float")); - case 'd': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "double")); - case 'r': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "long double")); - case 'e': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "...")); - default: - return (false); - }; - - /* NOTREACHED */ - return (false); -} diff --git a/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c b/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c deleted file mode 100644 index 1af97257..00000000 --- a/contrib/elftoolchain/libelftc/libelftc_dem_gnu2.c +++ /dev/null @@ -1,1366 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -/** - * @file cpp_demangle_gnu2.c - * @brief Decode function name encoding in GNU 2. - * - * Function name encoding in GNU 2 based on ARM style. - */ - -enum encode_type { - ENCODE_FUNC, ENCODE_OP, ENCODE_OP_CT, ENCODE_OP_DT, ENCODE_OP_USER, - ENCODE_OP_TF, ENCODE_OP_TI, ENCODE_OP_VT -}; - -struct cstring { - char *buf; - size_t size; -}; - -struct demangle_data { - bool ptr, ref, cnst, array, cnst_fn, class_name; - struct cstring array_str; - const char *p; - enum encode_type type; - struct vector_str vec; - struct vector_str arg; -}; - -#define SIMPLE_HASH(x,y) (64 * x + y) -#define VEC_PUSH_STR(d,s) vector_str_push((d), (s), strlen((s))) -#define CPP_DEMANGLE_GNU2_TRY 128 - -static void dest_cstring(struct cstring *); -static void dest_demangle_data(struct demangle_data *); -static bool init_cstring(struct cstring *, size_t); -static bool init_demangle_data(struct demangle_data *); -static bool push_CTDT(const char *, size_t, struct vector_str *); -static bool read_array(struct demangle_data *); -static bool read_class(struct demangle_data *); -static bool read_func(struct demangle_data *); -static bool read_func_name(struct demangle_data *); -static bool read_func_ptr(struct demangle_data *); -static bool read_memptr(struct demangle_data *); -static bool read_op(struct demangle_data *); -static bool read_op_user(struct demangle_data *); -static bool read_qual_name(struct demangle_data *); -static int read_subst(struct demangle_data *); -static int read_subst_iter(struct demangle_data *); -static bool read_type(struct demangle_data *); - -/** - * @brief Decode the input string by the GNU 2 style. - * - * @return New allocated demangled string or NULL if failed. - */ -char * -cpp_demangle_gnu2(const char *org) -{ - struct demangle_data d; - size_t arg_begin, arg_len; - unsigned int try; - char *rtn, *arg; - - if (org == NULL) - return (NULL); - - if (init_demangle_data(&d) == false) - return (NULL); - - try = 0; - rtn = NULL; - - d.p = org; - if (read_func_name(&d) == false) - goto clean; - - switch (d.type) { - case ENCODE_FUNC : - case ENCODE_OP : - break; - - case ENCODE_OP_CT : - if (push_CTDT("::", 2, &d.vec) == false) - goto clean; - - break; - case ENCODE_OP_DT : - if (push_CTDT("::~", 3, &d.vec) == false) - goto clean; - - if (VEC_PUSH_STR(&d.vec, "(void)") == false) - goto clean; - - goto flat; - case ENCODE_OP_USER : - case ENCODE_OP_TF : - case ENCODE_OP_TI : - case ENCODE_OP_VT : - goto flat; - } - - if (*d.p == 'F') - ++d.p; - else if (*d.p == '\0') { - if (d.class_name == true) { - if (VEC_PUSH_STR(&d.vec, "(void)") == false) - goto clean; - - goto flat; - } else - goto clean; - } - - /* start argument types */ - if (VEC_PUSH_STR(&d.vec, "(") == false) - goto clean; - - for (;;) { - if (*d.p == 'T') { - const int rtn_subst = read_subst(&d); - - if (rtn_subst == -1) - goto clean; - else if (rtn_subst == 1) - break; - - continue; - } - - if (*d.p == 'N') { - const int rtn_subst_iter = read_subst_iter(&d); - - if (rtn_subst_iter == -1) - goto clean; - else if(rtn_subst_iter == 1) - break; - - continue; - } - - arg_begin = d.vec.size; - - if (read_type(&d) == false) - goto clean; - - if (d.ptr == true) { - if (VEC_PUSH_STR(&d.vec, "*") == false) - goto clean; - - d.ptr = false; - } - - if (d.ref == true) { - if (VEC_PUSH_STR(&d.vec, "&") == false) - goto clean; - - d.ref = false; - } - - if (d.cnst == true) { - if (VEC_PUSH_STR(&d.vec, " const") == false) - goto clean; - - d.cnst = false; - } - - if (d.array == true) { - if (vector_str_push(&d.vec, d.array_str.buf, - d.array_str.size) == false) - goto clean; - - dest_cstring(&d.array_str); - d.array = false; - } - - if (*d.p == '\0') - break; - - if ((arg = vector_str_substr(&d.vec, arg_begin, d.vec.size - 1, - &arg_len)) == NULL) - goto clean; - - if (vector_str_push(&d.arg, arg, arg_len) == false) { - free(arg); - goto clean; - } - - free(arg); - - if (VEC_PUSH_STR(&d.vec, ", ") == false) - goto clean; - - if (++try > CPP_DEMANGLE_GNU2_TRY) - goto clean; - } - - /* end argument types */ - if (VEC_PUSH_STR(&d.vec, ")") == false) - goto clean; -flat: - if (d.cnst_fn == true && VEC_PUSH_STR(&d.vec, " const") == false) - goto clean; - - rtn = vector_str_get_flat(&d.vec, NULL); -clean: - dest_demangle_data(&d); - - return (rtn); -} - -/** - * @brief Test input string is encoded by the GNU 2 style. - * - * @return True if input string is encoded by the GNU 2 style. - */ -bool -is_cpp_mangled_gnu2(const char *org) -{ - char *str; - bool rtn = false; - - if (org == NULL) - return (false); - - /* search valid text to end */ - str = strstr(org, "__"); - while (str != NULL) { - if (*(str + 2) != '\0') { - if (*(str + 2) == 'C' || - *(str + 2) == 'F' || - *(str + 2) == 'Q' || - ELFTC_ISDIGIT(*(str + 2))) { - rtn |= true; - - break; - } - - if (*(str + 3) != '\0') { - switch (SIMPLE_HASH(*(str + 2), *(str + 3))) { - case SIMPLE_HASH('m', 'l') : - case SIMPLE_HASH('d', 'v') : - case SIMPLE_HASH('m', 'd') : - case SIMPLE_HASH('p', 'l') : - case SIMPLE_HASH('m', 'i') : - case SIMPLE_HASH('l', 's') : - case SIMPLE_HASH('r', 's') : - case SIMPLE_HASH('e', 'q') : - case SIMPLE_HASH('n', 'e') : - case SIMPLE_HASH('l', 't') : - case SIMPLE_HASH('g', 't') : - case SIMPLE_HASH('l', 'e') : - case SIMPLE_HASH('g', 'e') : - case SIMPLE_HASH('a', 'd') : - case SIMPLE_HASH('o', 'r') : - case SIMPLE_HASH('e', 'r') : - case SIMPLE_HASH('a', 'a') : - case SIMPLE_HASH('o', 'o') : - case SIMPLE_HASH('n', 't') : - case SIMPLE_HASH('c', 'o') : - case SIMPLE_HASH('p', 'p') : - case SIMPLE_HASH('m', 'm') : - case SIMPLE_HASH('a', 's') : - case SIMPLE_HASH('r', 'f') : - case SIMPLE_HASH('a', 'p') : - case SIMPLE_HASH('a', 'm') : - case SIMPLE_HASH('a', 'l') : - case SIMPLE_HASH('a', 'r') : - case SIMPLE_HASH('a', 'o') : - case SIMPLE_HASH('a', 'e') : - case SIMPLE_HASH('c', 'm') : - case SIMPLE_HASH('r', 'm') : - case SIMPLE_HASH('c', 'l') : - case SIMPLE_HASH('v', 'c') : - case SIMPLE_HASH('n', 'w') : - case SIMPLE_HASH('d', 'l') : - case SIMPLE_HASH('o', 'p') : - case SIMPLE_HASH('t', 'f') : - case SIMPLE_HASH('t', 'i') : - rtn |= true; - - break; - } - } - } - - str = strstr(str + 2, "__"); - } - - rtn |= strstr(org, "_$_") != NULL; - rtn |= strstr(org, "_vt$") != NULL; - - return (rtn); -} - -static void -dest_cstring(struct cstring *s) -{ - - if (s == NULL) - return; - - free(s->buf); - s->buf = NULL; - s->size = 0; -} - -static void -dest_demangle_data(struct demangle_data *d) -{ - - if (d != NULL) { - vector_str_dest(&d->arg); - vector_str_dest(&d->vec); - - dest_cstring(&d->array_str); - } -} - -static bool -init_cstring(struct cstring *s, size_t len) -{ - - if (s == NULL || len <= 1) - return (false); - - if ((s->buf = malloc(sizeof(char) * len)) == NULL) - return (false); - - s->size = len - 1; - - return (true); -} - -static bool -init_demangle_data(struct demangle_data *d) -{ - - if (d == NULL) - return (false); - - d->ptr = false; - d->ref = false; - d->cnst = false; - d->array = false; - d->cnst_fn = false; - d->class_name = false; - - d->array_str.buf = NULL; - d->array_str.size = 0; - - d->type = ENCODE_FUNC; - - if (!vector_str_init(&d->vec)) - return (false); - - if (!vector_str_init(&d->arg)) { - vector_str_dest(&d->vec); - return (false); - } - - return (true); -} - -static bool -push_CTDT(const char *s, size_t l, struct vector_str *v) -{ - - if (s == NULL || l == 0 || v == NULL) - return (false); - - if (vector_str_push(v, s, l) == false) - return (false); - - assert(v->size > 1); - - return (VEC_PUSH_STR(v, v->container[v->size - 2])); -} - -static bool -read_array(struct demangle_data *d) -{ - size_t len; - const char *end; - - if (d == NULL || d->p == NULL) - return (false); - - end = d->p; - assert(end != NULL); - - for (;;) { - if (*end == '\0') - return (false); - - if (ELFTC_ISDIGIT(*end) == 0) - break; - - ++end; - } - - if (*end != '_') - return (false); - - len = end - d->p; - assert(len > 0); - - dest_cstring(&d->array_str); - if (init_cstring(&d->array_str, len + 3) == false) - return (false); - - strncpy(d->array_str.buf + 1, d->p, len); - *d->array_str.buf = '['; - *(d->array_str.buf + len + 1) = ']'; - - d->array = true; - d->p = end + 1; - - return (true); -} - -static bool -read_class(struct demangle_data *d) -{ - size_t len; - char *str; - - if (d == NULL) - return (false); - - len = strtol(d->p, &str, 10); - if (len == 0 && (errno == EINVAL || errno == ERANGE)) - return (false); - - assert(len > 0); - assert(str != NULL); - - if (vector_str_push(&d->vec, str, len) == false) - return (false); - - d->p = str + len; - - d->class_name = true; - - return (true); -} - -static bool -read_func(struct demangle_data *d) -{ - size_t len; - const char *name; - char *delim; - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - if ((delim = strstr(d->p, "__")) == NULL) - return (false); - - len = delim - d->p; - assert(len != 0); - - name = d->p; - - d->p = delim + 2; - - if (*d->p == 'C') { - ++d->p; - - d->cnst_fn = true; - } - - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - if (read_qual_name(d) == false) - return (false); - } else if (ELFTC_ISDIGIT(*d->p)) { - if (read_class(d) == false) - return (false); - - if (VEC_PUSH_STR(&d->vec, "::") == false) - return (false); - } - - return (vector_str_push(&d->vec, name, len)); -} - -static bool -read_func_name(struct demangle_data *d) -{ - size_t len; - bool rtn; - char *op_name; - - if (d == NULL) - return (false); - - rtn = false; - op_name = NULL; - - assert(d->p != NULL && "d->p (org str) is NULL"); - - if (*d->p == '_' && *(d->p + 1) == '_') { - d->p += 2; - - /* CTOR */ - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - d->type = ENCODE_OP_CT; - - if (read_qual_name(d) == false) - return (false); - - return (vector_str_pop(&d->vec)); - } else if (ELFTC_ISDIGIT(*d->p)) { - d->type = ENCODE_OP_CT; - - return (read_class(d)); - } - - d->type = ENCODE_OP; - if (read_op(d) == false) { - /* not good condition, start function name with '__' */ - d->type = ENCODE_FUNC; - - if (VEC_PUSH_STR(&d->vec, "__") == false) - return (false); - - return (read_func(d)); - } - - if (d->type == ENCODE_OP_USER || - d->type == ENCODE_OP_TF || - d->type == ENCODE_OP_TI) - return (true); - - /* skip "__" */ - d->p += 2; - - if (*d->p == 'C') { - ++d->p; - - d->cnst_fn = true; - } - - /* assume delimiter is removed */ - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - assert(d->vec.size > 0); - - len = strlen(d->vec.container[d->vec.size - 1]); - if ((op_name = malloc(sizeof(char) * (len + 1))) - == NULL) - return (false); - - snprintf(op_name, len + 1, "%s", - d->vec.container[d->vec.size - 1]); - vector_str_pop(&d->vec); - - if (read_qual_name(d) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::") == false) - goto clean; - - if (vector_str_push(&d->vec, op_name, len) == false) - goto clean; - - rtn = true; - } else if (ELFTC_ISDIGIT(*d->p)) { - assert(d->vec.size > 0); - - len = strlen(d->vec.container[d->vec.size - 1]); - if ((op_name = malloc(sizeof(char) * (len + 1))) - == NULL) - return (false); - - snprintf(op_name, len + 1, "%s", - d->vec.container[d->vec.size - 1]); - vector_str_pop(&d->vec); - - if (read_class(d) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::") == false) - goto clean; - - if (vector_str_push(&d->vec, op_name, len) == false) - goto clean; - - rtn = true; - } - } else if (memcmp(d->p, "_$_", 3) == 0) { - /* DTOR */ - d->p += 3; - d->type = ENCODE_OP_DT; - - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - if (read_qual_name(d) == false) - return (false); - - return (vector_str_pop(&d->vec)); - } else if (ELFTC_ISDIGIT(*d->p)) - return (read_class(d)); - - return (false); - } else if (memcmp(d->p, "_vt$", 4) == 0) { - /* vtable */ - d->p += 4; - d->type = ENCODE_OP_VT; - - if (*d->p == 'Q' && ELFTC_ISDIGIT(*(d->p + 1))) { - ++d->p; - - if (read_qual_name(d) == false) - return (false); - - if (vector_str_pop(&d->vec) == false) - return (false); - } else if (ELFTC_ISDIGIT(*d->p)) { - if (read_class(d) == false) - return (false); - } - - return (VEC_PUSH_STR(&d->vec, " virtual table")); - } else - return (read_func(d)); -clean: - free(op_name); - - return (rtn); -} - -/* Read function ptr type */ -static bool -read_func_ptr(struct demangle_data *d) -{ - struct demangle_data fptr; - size_t arg_len, rtn_len; - char *arg_type, *rtn_type; - int lim; - - if (d == NULL) - return (false); - - if (init_demangle_data(&fptr) == false) - return (false); - - fptr.p = d->p + 1; - lim = 0; - arg_type = NULL; - rtn_type = NULL; - - for (;;) { - if (read_type(&fptr) == false) { - dest_demangle_data(&fptr); - - return (false); - } - - if (fptr.ptr == true) { - if (VEC_PUSH_STR(&fptr.vec, "*") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - fptr.ptr = false; - } - - if (fptr.ref == true) { - if (VEC_PUSH_STR(&fptr.vec, "&") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - fptr.ref = false; - } - - if (fptr.cnst == true) { - if (VEC_PUSH_STR(&fptr.vec, " const") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - fptr.cnst = false; - } - - if (*fptr.p == '_') - break; - - if (VEC_PUSH_STR(&fptr.vec, ", ") == false) { - dest_demangle_data(&fptr); - - return (false); - } - - if (++lim > CPP_DEMANGLE_GNU2_TRY) { - - dest_demangle_data(&fptr); - - return (false); - } - } - - arg_type = vector_str_get_flat(&fptr.vec, &arg_len); - /* skip '_' */ - d->p = fptr.p + 1; - - dest_demangle_data(&fptr); - - if (init_demangle_data(&fptr) == false) { - free(arg_type); - - return (false); - } - - fptr.p = d->p; - lim = 0; - - if (read_type(&fptr) == false) { - free(arg_type); - dest_demangle_data(&fptr); - - return (false); - } - - rtn_type = vector_str_get_flat(&fptr.vec, &rtn_len); - d->p = fptr.p; - - - dest_demangle_data(&fptr); - - if (vector_str_push(&d->vec, rtn_type, rtn_len) == false) { - free(rtn_type); - free(arg_type); - - return (false); - } - - free(rtn_type); - - if (VEC_PUSH_STR(&d->vec, " (*)(") == false) { - free(arg_type); - - return (false); - } - - if (vector_str_push(&d->vec, arg_type, arg_len) == false) { - free(arg_type); - - return (false); - } - - free(arg_type); - - return (VEC_PUSH_STR(&d->vec, ")")); -} - -static bool -read_memptr(struct demangle_data *d) -{ - struct demangle_data mptr; - size_t len; - bool rtn; - char *mptr_str; - - if (d == NULL || d->p == NULL) - return (false); - - if (init_demangle_data(&mptr) == false) - return (false); - - rtn = false; - mptr_str = NULL; - - mptr.p = d->p; - if (*mptr.p == 'Q') { - ++mptr.p; - - if (read_qual_name(&mptr) == false) - goto clean; - } else if (read_class(&mptr) == false) - goto clean; - - d->p = mptr.p; - - if ((mptr_str = vector_str_get_flat(&mptr.vec, &len)) == NULL) - goto clean; - - if (vector_str_push(&d->vec, mptr_str, len) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::*") == false) - goto clean; - - rtn = true; -clean: - free(mptr_str); - dest_demangle_data(&mptr); - - return (rtn); -} - -static bool -read_op(struct demangle_data *d) -{ - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - - switch (SIMPLE_HASH(*(d->p), *(d->p+1))) { - case SIMPLE_HASH('m', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator*")); - case SIMPLE_HASH('d', 'v') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator/")); - case SIMPLE_HASH('m', 'd') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator%")); - case SIMPLE_HASH('p', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator+")); - case SIMPLE_HASH('m', 'i') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator-")); - case SIMPLE_HASH('l', 's') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator<<")); - case SIMPLE_HASH('r', 's') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator>>")); - case SIMPLE_HASH('e', 'q') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator==")); - case SIMPLE_HASH('n', 'e') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator!=")); - case SIMPLE_HASH('l', 't') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator<")); - case SIMPLE_HASH('g', 't') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator>")); - case SIMPLE_HASH('l', 'e') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator<=")); - case SIMPLE_HASH('g', 'e') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator>=")); - case SIMPLE_HASH('a', 'd') : - d->p += 2; - if (*d->p == 'v') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator/=")); - } else - return (VEC_PUSH_STR(&d->vec, "operator&")); - case SIMPLE_HASH('o', 'r') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator|")); - case SIMPLE_HASH('e', 'r') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator^")); - case SIMPLE_HASH('a', 'a') : - d->p += 2; - if (*d->p == 'd') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator&=")); - } else - return (VEC_PUSH_STR(&d->vec, "operator&&")); - case SIMPLE_HASH('o', 'o') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator||")); - case SIMPLE_HASH('n', 't') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator!")); - case SIMPLE_HASH('c', 'o') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator~")); - case SIMPLE_HASH('p', 'p') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator++")); - case SIMPLE_HASH('m', 'm') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator--")); - case SIMPLE_HASH('a', 's') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator=")); - case SIMPLE_HASH('r', 'f') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator->")); - case SIMPLE_HASH('a', 'p') : - /* apl */ - if (*(d->p + 2) != 'l') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator+=")); - case SIMPLE_HASH('a', 'm') : - d->p += 2; - if (*d->p == 'i') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator-=")); - } else if (*d->p == 'u') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator*=")); - } else if (*d->p == 'd') { - ++d->p; - return (VEC_PUSH_STR(&d->vec, "operator%=")); - } - - return (false); - case SIMPLE_HASH('a', 'l') : - /* als */ - if (*(d->p + 2) != 's') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator<<=")); - case SIMPLE_HASH('a', 'r') : - /* ars */ - if (*(d->p + 2) != 's') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator>>=")); - case SIMPLE_HASH('a', 'o') : - /* aor */ - if (*(d->p + 2) != 'r') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator|=")); - case SIMPLE_HASH('a', 'e') : - /* aer */ - if (*(d->p + 2) != 'r') - return (false); - - d->p += 3; - return (VEC_PUSH_STR(&d->vec, "operator^=")); - case SIMPLE_HASH('c', 'm') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator,")); - case SIMPLE_HASH('r', 'm') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator->*")); - case SIMPLE_HASH('c', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "()")); - case SIMPLE_HASH('v', 'c') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "[]")); - case SIMPLE_HASH('n', 'w') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator new()")); - case SIMPLE_HASH('d', 'l') : - d->p += 2; - return (VEC_PUSH_STR(&d->vec, "operator delete()")); - case SIMPLE_HASH('o', 'p') : - /* __op__ */ - d->p += 2; - - d->type = ENCODE_OP_USER; - - return (read_op_user(d)); - case SIMPLE_HASH('t', 'f') : - d->p += 2; - d->type = ENCODE_OP_TF; - - if (read_type(d) == false) - return (false); - - return (VEC_PUSH_STR(&d->vec, " type_info function")); - case SIMPLE_HASH('t', 'i') : - d->p += 2; - d->type = ENCODE_OP_TI; - - if (read_type(d) == false) - return (false); - - return (VEC_PUSH_STR(&d->vec, " type_info node")); - default : - return (false); - }; -} - -static bool -read_op_user(struct demangle_data *d) -{ - struct demangle_data from, to; - size_t from_len, to_len; - bool rtn; - char *from_str, *to_str; - - if (d == NULL) - return (false); - - if (init_demangle_data(&from) == false) - return (false); - - rtn = false; - from_str = NULL; - to_str = NULL; - if (init_demangle_data(&to) == false) - goto clean; - - to.p = d->p; - if (*to.p == 'Q') { - ++to.p; - - if (read_qual_name(&to) == false) - goto clean; - - /* pop last '::' */ - if (vector_str_pop(&to.vec) == false) - goto clean; - } else { - if (read_class(&to) == false) - goto clean; - - /* skip '__' */ - to.p += 2; - } - - if ((to_str = vector_str_get_flat(&to.vec, &to_len)) == NULL) - goto clean; - - from.p = to.p; - if (*from.p == 'Q') { - ++from.p; - - if (read_qual_name(&from) == false) - goto clean; - - /* pop last '::' */ - if (vector_str_pop(&from.vec) == false) - goto clean; - } else if (read_class(&from) == false) - goto clean; - - if ((from_str = vector_str_get_flat(&from.vec, &from_len)) == NULL) - goto clean; - - if (vector_str_push(&d->vec, from_str, from_len) == false) - goto clean; - - if (VEC_PUSH_STR(&d->vec, "::operator ") == false) - goto clean; - - if (vector_str_push(&d->vec, to_str, to_len) == false) - goto clean; - - rtn = VEC_PUSH_STR(&d->vec, "()"); -clean: - free(to_str); - free(from_str); - dest_demangle_data(&to); - dest_demangle_data(&from); - - return (rtn); -} - -/* single digit + class names */ -static bool -read_qual_name(struct demangle_data *d) -{ - int i; - char num; - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - assert(*d->p > 48 && *d->p < 58 && "*d->p not in ASCII numeric range"); - - num = *d->p - 48; - - assert(num > 0); - - ++d->p; - for (i = 0; i < num ; ++i) { - if (read_class(d) == false) - return (false); - - if (VEC_PUSH_STR(&d->vec, "::") == false) - return (false); - } - - if (*d->p != '\0') - d->p = d->p + 2; - - return (true); -} - -/* Return -1 at fail, 0 at success, and 1 at end */ -static int -read_subst(struct demangle_data *d) -{ - size_t idx; - char *str; - - if (d == NULL) - return (-1); - - idx = strtol(d->p + 1, &str, 10); - if (idx == 0 && (errno == EINVAL || errno == ERANGE)) - return (-1); - - assert(idx > 0); - assert(str != NULL); - - d->p = str; - - if (VEC_PUSH_STR(&d->vec, d->arg.container[idx - 1]) == false) - return (-1); - - if (VEC_PUSH_STR(&d->arg, d->arg.container[idx - 1]) == false) - return (-1); - - if (*d->p == '\0') - return (1); - - return (0); -} - -static int -read_subst_iter(struct demangle_data *d) -{ - int i; - size_t idx; - char repeat; - char *str; - - if (d == NULL) - return (-1); - - ++d->p; - assert(*d->p > 48 && *d->p < 58 && "*d->p not in ASCII numeric range"); - - repeat = *d->p - 48; - - assert(repeat > 1); - - ++d->p; - - idx = strtol(d->p, &str, 10); - if (idx == 0 && (errno == EINVAL || errno == ERANGE)) - return (-1); - - assert(idx > 0); - assert(str != NULL); - - d->p = str; - - for (i = 0; i < repeat ; ++i) { - if (VEC_PUSH_STR(&d->vec, d->arg.container[idx - 1]) == false) - return (-1); - - if (VEC_PUSH_STR(&d->arg, d->arg.container[idx - 1]) == false) - return (-1); - - if (i != repeat - 1 && - VEC_PUSH_STR(&d->vec, ", ") == false) - return (-1); - } - - if (*d->p == '\0') - return (1); - - return (0); -} - -static bool -read_type(struct demangle_data *d) -{ - - if (d == NULL) - return (false); - - assert(d->p != NULL && "d->p (org str) is NULL"); - - while (*d->p == 'U' || *d->p == 'C' || *d->p == 'V' || *d->p == 'S' || - *d->p == 'P' || *d->p == 'R' || *d->p == 'A' || *d->p == 'F' || - *d->p == 'M') { - switch (*d->p) { - case 'U' : - ++d->p; - - if (VEC_PUSH_STR(&d->vec, "unsigned ") == false) - return (false); - - break; - case 'C' : - ++d->p; - - if (*d->p == 'P') - d->cnst = true; - else { - if (VEC_PUSH_STR(&d->vec, "const ") == - false) - return (false); - } - - break; - case 'V' : - ++d->p; - - if (VEC_PUSH_STR(&d->vec, "volatile ") == false) - return (false); - - break; - case 'S' : - ++d->p; - - if (VEC_PUSH_STR(&d->vec, "signed ") == false) - return (false); - - break; - case 'P' : - ++d->p; - - if (*d->p == 'F') - return (read_func_ptr(d)); - else - d->ptr = true; - - break; - case 'R' : - ++d->p; - - d->ref = true; - - break; - case 'F' : - break; - case 'A' : - ++d->p; - - if (read_array(d) == false) - return (false); - - break; - case 'M' : - ++d->p; - - if (read_memptr(d) == false) - return (false); - - break; - default : - break; - } - } - - if (ELFTC_ISDIGIT(*d->p)) - return (read_class(d)); - - switch (*d->p) { - case 'Q' : - ++d->p; - - return (read_qual_name(d)); - case 'v' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "void")); - case 'b': - ++d->p; - - return(VEC_PUSH_STR(&d->vec, "bool")); - case 'c' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "char")); - case 's' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "short")); - case 'i' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "int")); - case 'l' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "long")); - case 'f' : - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "float")); - case 'd': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "double")); - case 'r': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "long double")); - case 'e': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "...")); - case 'w': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "wchar_t")); - case 'x': - ++d->p; - - return (VEC_PUSH_STR(&d->vec, "long long")); - default: - return (false); - }; - - /* NOTREACHED */ - return (false); -} diff --git a/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c b/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c deleted file mode 100644 index 794905ce..00000000 --- a/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c +++ /dev/null @@ -1,3992 +0,0 @@ -/*- - * Copyright (c) 2007 Hyogeol Lee - * Copyright (c) 2015-2017 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -/** - * @file cpp_demangle.c - * @brief Decode IA-64 C++ ABI style implementation. - * - * IA-64 standard ABI(Itanium C++ ABI) references. - * - * http://www.codesourcery.com/cxx-abi/abi.html#mangling \n - * http://www.codesourcery.com/cxx-abi/abi-mangling.html - */ - -enum type_qualifier { - TYPE_PTR, TYPE_REF, TYPE_CMX, TYPE_IMG, TYPE_EXT, TYPE_RST, TYPE_VAT, - TYPE_CST, TYPE_VEC, TYPE_RREF -}; - -struct vector_type_qualifier { - size_t size, capacity; - enum type_qualifier *q_container; - struct vector_str ext_name; -}; - -enum read_cmd { - READ_FAIL, READ_NEST, READ_TMPL, READ_EXPR, READ_EXPL, READ_LOCAL, - READ_TYPE, READ_FUNC, READ_PTRMEM -}; - -struct read_cmd_item { - enum read_cmd cmd; - void *data; -}; - -struct vector_read_cmd { - size_t size, capacity; - struct read_cmd_item *r_container; -}; - -enum push_qualifier { - PUSH_ALL_QUALIFIER, - PUSH_CV_QUALIFIER, - PUSH_NON_CV_QUALIFIER, -}; - -struct cpp_demangle_data { - struct vector_str output; /* output string vector */ - struct vector_str subst; /* substitution string vector */ - struct vector_str tmpl; - struct vector_str class_type; - struct vector_str *cur_output; /* ptr to current output vec */ - struct vector_read_cmd cmd; - bool mem_rst; /* restrict member function */ - bool mem_vat; /* volatile member function */ - bool mem_cst; /* const member function */ - bool mem_ref; /* lvalue-ref member func */ - bool mem_rref; /* rvalue-ref member func */ - bool is_tmpl; /* template args */ - bool is_functype; /* function type */ - bool ref_qualifier; /* ref qualifier */ - enum type_qualifier ref_qualifier_type; /* ref qualifier type */ - enum push_qualifier push_qualifier; /* which qualifiers to push */ - int func_type; - const char *cur; /* current mangled name ptr */ - const char *last_sname; /* last source name */ -}; - -struct type_delimit { - bool paren; - bool firstp; -}; - -#define CPP_DEMANGLE_TRY_LIMIT 128 -#define FLOAT_SPRINTF_TRY_LIMIT 5 -#define FLOAT_QUADRUPLE_BYTES 16 -#define FLOAT_EXTENED_BYTES 10 - -#define SIMPLE_HASH(x,y) (64 * x + y) -#define DEM_PUSH_STR(d,s) cpp_demangle_push_str((d), (s), strlen((s))) -#define VEC_PUSH_STR(d,s) vector_str_push((d), (s), strlen((s))) - -static void cpp_demangle_data_dest(struct cpp_demangle_data *); -static int cpp_demangle_data_init(struct cpp_demangle_data *, - const char *); -static int cpp_demangle_get_subst(struct cpp_demangle_data *, size_t); -static int cpp_demangle_get_tmpl_param(struct cpp_demangle_data *, size_t); -static int cpp_demangle_push_fp(struct cpp_demangle_data *, - char *(*)(const char *, size_t)); -static int cpp_demangle_push_str(struct cpp_demangle_data *, const char *, - size_t); -static int cpp_demangle_pop_str(struct cpp_demangle_data *); -static int cpp_demangle_push_subst(struct cpp_demangle_data *, - const char *, size_t); -static int cpp_demangle_push_subst_v(struct cpp_demangle_data *, - struct vector_str *); -static int cpp_demangle_push_type_qualifier(struct cpp_demangle_data *, - struct vector_type_qualifier *, const char *); -static int cpp_demangle_read_array(struct cpp_demangle_data *); -static int cpp_demangle_read_encoding(struct cpp_demangle_data *); -static int cpp_demangle_read_expr_primary(struct cpp_demangle_data *); -static int cpp_demangle_read_expression(struct cpp_demangle_data *); -static int cpp_demangle_read_expression_flat(struct cpp_demangle_data *, - char **); -static int cpp_demangle_read_expression_binary(struct cpp_demangle_data *, - const char *, size_t); -static int cpp_demangle_read_expression_unary(struct cpp_demangle_data *, - const char *, size_t); -static int cpp_demangle_read_expression_trinary(struct cpp_demangle_data *, - const char *, size_t, const char *, size_t); -static int cpp_demangle_read_function(struct cpp_demangle_data *, int *, - struct vector_type_qualifier *); -static int cpp_demangle_local_source_name(struct cpp_demangle_data *ddata); -static int cpp_demangle_read_local_name(struct cpp_demangle_data *); -static int cpp_demangle_read_name(struct cpp_demangle_data *); -static int cpp_demangle_read_name_flat(struct cpp_demangle_data *, - char**); -static int cpp_demangle_read_nested_name(struct cpp_demangle_data *); -static int cpp_demangle_read_number(struct cpp_demangle_data *, long *); -static int cpp_demangle_read_number_as_string(struct cpp_demangle_data *, - char **); -static int cpp_demangle_read_nv_offset(struct cpp_demangle_data *); -static int cpp_demangle_read_offset(struct cpp_demangle_data *); -static int cpp_demangle_read_offset_number(struct cpp_demangle_data *); -static int cpp_demangle_read_pointer_to_member(struct cpp_demangle_data *, - struct vector_type_qualifier *); -static int cpp_demangle_read_sname(struct cpp_demangle_data *); -static int cpp_demangle_read_subst(struct cpp_demangle_data *); -static int cpp_demangle_read_subst_std(struct cpp_demangle_data *); -static int cpp_demangle_read_subst_stdtmpl(struct cpp_demangle_data *, - const char *); -static int cpp_demangle_read_tmpl_arg(struct cpp_demangle_data *); -static int cpp_demangle_read_tmpl_args(struct cpp_demangle_data *); -static int cpp_demangle_read_tmpl_param(struct cpp_demangle_data *); -static int cpp_demangle_read_type(struct cpp_demangle_data *, - struct type_delimit *); -static int cpp_demangle_read_type_flat(struct cpp_demangle_data *, - char **); -static int cpp_demangle_read_uqname(struct cpp_demangle_data *); -static int cpp_demangle_read_v_offset(struct cpp_demangle_data *); -static char *decode_fp_to_double(const char *, size_t); -static char *decode_fp_to_float(const char *, size_t); -static char *decode_fp_to_float128(const char *, size_t); -static char *decode_fp_to_float80(const char *, size_t); -static char *decode_fp_to_long_double(const char *, size_t); -static int hex_to_dec(char); -static void vector_read_cmd_dest(struct vector_read_cmd *); -static struct read_cmd_item *vector_read_cmd_find(struct vector_read_cmd *, - enum read_cmd); -static int vector_read_cmd_init(struct vector_read_cmd *); -static int vector_read_cmd_pop(struct vector_read_cmd *); -static int vector_read_cmd_push(struct vector_read_cmd *, enum read_cmd, - void *); -static void vector_type_qualifier_dest(struct vector_type_qualifier *); -static int vector_type_qualifier_init(struct vector_type_qualifier *); -static int vector_type_qualifier_push(struct vector_type_qualifier *, - enum type_qualifier); - -/** - * @brief Decode the input string by IA-64 C++ ABI style. - * - * GNU GCC v3 use IA-64 standard ABI. - * @return New allocated demangled string or NULL if failed. - * @todo 1. Testing and more test case. 2. Code cleaning. - */ -char * -cpp_demangle_gnu3(const char *org) -{ - struct cpp_demangle_data ddata; - struct vector_str ret_type; - struct type_delimit td; - ssize_t org_len; - unsigned int limit; - char *rtn; - bool has_ret, more_type; - - if (org == NULL || (org_len = strlen(org)) < 2) - return (NULL); - - if (org_len > 11 && !strncmp(org, "_GLOBAL__I_", 11)) { - if ((rtn = malloc(org_len + 19)) == NULL) - return (NULL); - snprintf(rtn, org_len + 19, - "global constructors keyed to %s", org + 11); - return (rtn); - } - - if (org[0] != '_' || org[1] != 'Z') - return (NULL); - - if (!cpp_demangle_data_init(&ddata, org + 2)) - return (NULL); - - rtn = NULL; - has_ret = more_type = false; - - if (!cpp_demangle_read_encoding(&ddata)) - goto clean; - - /* - * Pop function name from substitution candidate list. - */ - if (*ddata.cur != 0 && ddata.subst.size >= 1) { - if (!vector_str_pop(&ddata.subst)) - goto clean; - } - - td.paren = false; - td.firstp = true; - limit = 0; - - /* - * The first type is a return type if we just demangled template - * args. (the template args is right next to the function name, - * which means it's a template function) - */ - if (ddata.is_tmpl) { - ddata.is_tmpl = false; - if (!vector_str_init(&ret_type)) - goto clean; - ddata.cur_output = &ret_type; - has_ret = true; - } - - while (*ddata.cur != '\0') { - /* - * Breaking at some gcc info at tail. e.g) @@GLIBCXX_3.4 - */ - if (*ddata.cur == '@' && *(ddata.cur + 1) == '@') - break; - - if (has_ret) { - /* Read return type */ - if (!cpp_demangle_read_type(&ddata, NULL)) - goto clean; - } else { - /* Read function arg type */ - if (!cpp_demangle_read_type(&ddata, &td)) - goto clean; - } - - if (has_ret) { - /* Push return type to the beginning */ - if (!VEC_PUSH_STR(&ret_type, " ")) - goto clean; - if (!vector_str_push_vector_head(&ddata.output, - &ret_type)) - goto clean; - ddata.cur_output = &ddata.output; - vector_str_dest(&ret_type); - has_ret = false; - more_type = true; - } else if (more_type) - more_type = false; - if (limit++ > CPP_DEMANGLE_TRY_LIMIT) - goto clean; - } - if (more_type) - goto clean; - - if (ddata.output.size == 0) - goto clean; - if (td.paren && !VEC_PUSH_STR(&ddata.output, ")")) - goto clean; - if (ddata.mem_vat && !VEC_PUSH_STR(&ddata.output, " volatile")) - goto clean; - if (ddata.mem_cst && !VEC_PUSH_STR(&ddata.output, " const")) - goto clean; - if (ddata.mem_rst && !VEC_PUSH_STR(&ddata.output, " restrict")) - goto clean; - if (ddata.mem_ref && !VEC_PUSH_STR(&ddata.output, " &")) - goto clean; - if (ddata.mem_rref && !VEC_PUSH_STR(&ddata.output, " &&")) - goto clean; - - rtn = vector_str_get_flat(&ddata.output, (size_t *) NULL); - -clean: - if (has_ret) - vector_str_dest(&ret_type); - - cpp_demangle_data_dest(&ddata); - - return (rtn); -} - -static void -cpp_demangle_data_dest(struct cpp_demangle_data *d) -{ - - if (d == NULL) - return; - - vector_read_cmd_dest(&d->cmd); - vector_str_dest(&d->class_type); - vector_str_dest(&d->tmpl); - vector_str_dest(&d->subst); - vector_str_dest(&d->output); -} - -static int -cpp_demangle_data_init(struct cpp_demangle_data *d, const char *cur) -{ - - if (d == NULL || cur == NULL) - return (0); - - if (!vector_str_init(&d->output)) - return (0); - if (!vector_str_init(&d->subst)) - goto clean1; - if (!vector_str_init(&d->tmpl)) - goto clean2; - if (!vector_str_init(&d->class_type)) - goto clean3; - if (!vector_read_cmd_init(&d->cmd)) - goto clean4; - - assert(d->output.container != NULL); - assert(d->subst.container != NULL); - assert(d->tmpl.container != NULL); - assert(d->class_type.container != NULL); - - d->mem_rst = false; - d->mem_vat = false; - d->mem_cst = false; - d->mem_ref = false; - d->mem_rref = false; - d->is_tmpl = false; - d->is_functype = false; - d->ref_qualifier = false; - d->push_qualifier = PUSH_ALL_QUALIFIER; - d->func_type = 0; - d->cur = cur; - d->cur_output = &d->output; - d->last_sname = NULL; - - return (1); - -clean4: - vector_str_dest(&d->class_type); -clean3: - vector_str_dest(&d->tmpl); -clean2: - vector_str_dest(&d->subst); -clean1: - vector_str_dest(&d->output); - - return (0); -} - -static int -cpp_demangle_push_fp(struct cpp_demangle_data *ddata, - char *(*decoder)(const char *, size_t)) -{ - size_t len; - int rtn; - const char *fp; - char *f; - - if (ddata == NULL || decoder == NULL) - return (0); - - fp = ddata->cur; - while (*ddata->cur != 'E') - ++ddata->cur; - - if ((f = decoder(fp, ddata->cur - fp)) == NULL) - return (0); - - rtn = 0; - if ((len = strlen(f)) > 0) - rtn = cpp_demangle_push_str(ddata, f, len); - - free(f); - - ++ddata->cur; - - return (rtn); -} - -static int -cpp_demangle_push_str(struct cpp_demangle_data *ddata, const char *str, - size_t len) -{ - - if (ddata == NULL || str == NULL || len == 0) - return (0); - - /* - * is_tmpl is used to check if the type (function arg) is right next - * to template args, and should always be cleared whenever new string - * pushed. - */ - ddata->is_tmpl = false; - - return (vector_str_push(ddata->cur_output, str, len)); -} - -static int -cpp_demangle_pop_str(struct cpp_demangle_data *ddata) -{ - - if (ddata == NULL) - return (0); - - return (vector_str_pop(ddata->cur_output)); -} - -static int -cpp_demangle_push_subst(struct cpp_demangle_data *ddata, const char *str, - size_t len) -{ - - if (ddata == NULL || str == NULL || len == 0) - return (0); - - if (!vector_str_find(&ddata->subst, str, len)) - return (vector_str_push(&ddata->subst, str, len)); - - return (1); -} - -static int -cpp_demangle_push_subst_v(struct cpp_demangle_data *ddata, struct vector_str *v) -{ - size_t str_len; - int rtn; - char *str; - - if (ddata == NULL || v == NULL) - return (0); - - if ((str = vector_str_get_flat(v, &str_len)) == NULL) - return (0); - - rtn = cpp_demangle_push_subst(ddata, str, str_len); - - free(str); - - return (rtn); -} - -static int -cpp_demangle_push_type_qualifier(struct cpp_demangle_data *ddata, - struct vector_type_qualifier *v, const char *type_str) -{ - struct vector_str subst_v; - enum type_qualifier t; - size_t idx, e_idx, e_len; - char *buf; - int rtn; - bool cv; - - if (ddata == NULL || v == NULL) - return (0); - - if ((idx = v->size) == 0) - return (1); - - rtn = 0; - if (type_str != NULL) { - if (!vector_str_init(&subst_v)) - return (0); - if (!VEC_PUSH_STR(&subst_v, type_str)) - goto clean; - } - - cv = true; - e_idx = 0; - while (idx > 0) { - switch (v->q_container[idx - 1]) { - case TYPE_PTR: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (!DEM_PUSH_STR(ddata, "*")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, "*")) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_REF: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (!DEM_PUSH_STR(ddata, "&")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, "&")) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_RREF: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (!DEM_PUSH_STR(ddata, "&&")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, "&&")) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_CMX: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (!DEM_PUSH_STR(ddata, " complex")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, " complex")) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_IMG: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (!DEM_PUSH_STR(ddata, " imaginary")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, " imaginary")) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_EXT: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (v->ext_name.size == 0 || - e_idx > v->ext_name.size - 1) - goto clean; - if ((e_len = strlen(v->ext_name.container[e_idx])) == - 0) - goto clean; - if ((buf = malloc(e_len + 2)) == NULL) - goto clean; - snprintf(buf, e_len + 2, " %s", - v->ext_name.container[e_idx]); - - if (!DEM_PUSH_STR(ddata, buf)) { - free(buf); - goto clean; - } - - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, buf)) { - free(buf); - goto clean; - } - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) { - free(buf); - goto clean; - } - } - free(buf); - ++e_idx; - break; - - case TYPE_RST: - if (ddata->push_qualifier == PUSH_NON_CV_QUALIFIER && - cv) - break; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER && !cv) - break; - if (!DEM_PUSH_STR(ddata, " restrict")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, " restrict")) - goto clean; - if (idx - 1 > 0) { - t = v->q_container[idx - 2]; - if (t == TYPE_RST || t == TYPE_VAT || - t == TYPE_CST) - break; - } - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_VAT: - if (ddata->push_qualifier == PUSH_NON_CV_QUALIFIER && - cv) - break; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER && !cv) - break; - if (!DEM_PUSH_STR(ddata, " volatile")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, " volatile")) - goto clean; - if (idx - 1 > 0) { - t = v->q_container[idx - 2]; - if (t == TYPE_RST || t == TYPE_VAT || - t == TYPE_CST) - break; - } - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_CST: - if (ddata->push_qualifier == PUSH_NON_CV_QUALIFIER && - cv) - break; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER && !cv) - break; - if (!DEM_PUSH_STR(ddata, " const")) - goto clean; - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, " const")) - goto clean; - if (idx - 1 > 0) { - t = v->q_container[idx - 2]; - if (t == TYPE_RST || t == TYPE_VAT || - t == TYPE_CST) - break; - } - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) - goto clean; - } - break; - - case TYPE_VEC: - cv = false; - if (ddata->push_qualifier == PUSH_CV_QUALIFIER) - break; - if (v->ext_name.size == 0 || - e_idx > v->ext_name.size - 1) - goto clean; - if ((e_len = strlen(v->ext_name.container[e_idx])) == - 0) - goto clean; - if ((buf = malloc(e_len + 12)) == NULL) - goto clean; - snprintf(buf, e_len + 12, " __vector(%s)", - v->ext_name.container[e_idx]); - if (!DEM_PUSH_STR(ddata, buf)) { - free(buf); - goto clean; - } - if (type_str != NULL) { - if (!VEC_PUSH_STR(&subst_v, buf)) { - free(buf); - goto clean; - } - if (!cpp_demangle_push_subst_v(ddata, - &subst_v)) { - free(buf); - goto clean; - } - } - free(buf); - ++e_idx; - break; - } - --idx; - } - - rtn = 1; -clean: - if (type_str != NULL) - vector_str_dest(&subst_v); - - return (rtn); -} - -static int -cpp_demangle_get_subst(struct cpp_demangle_data *ddata, size_t idx) -{ - size_t len; - - if (ddata == NULL || ddata->subst.size <= idx) - return (0); - if ((len = strlen(ddata->subst.container[idx])) == 0) - return (0); - if (!cpp_demangle_push_str(ddata, ddata->subst.container[idx], len)) - return (0); - - /* skip '_' */ - ++ddata->cur; - - return (1); -} - -static int -cpp_demangle_get_tmpl_param(struct cpp_demangle_data *ddata, size_t idx) -{ - size_t len; - - if (ddata == NULL || ddata->tmpl.size <= idx) - return (0); - if ((len = strlen(ddata->tmpl.container[idx])) == 0) - return (0); - if (!cpp_demangle_push_str(ddata, ddata->tmpl.container[idx], len)) - return (0); - - ++ddata->cur; - - return (1); -} - -static int -cpp_demangle_read_array(struct cpp_demangle_data *ddata) -{ - size_t i, num_len, exp_len, p_idx, idx; - const char *num; - char *exp; - - if (ddata == NULL || *(++ddata->cur) == '\0') - return (0); - - if (*ddata->cur == '_') { - if (*(++ddata->cur) == '\0') - return (0); - - if (!cpp_demangle_read_type(ddata, NULL)) - return (0); - - if (!DEM_PUSH_STR(ddata, "[]")) - return (0); - } else { - if (ELFTC_ISDIGIT(*ddata->cur) != 0) { - num = ddata->cur; - while (ELFTC_ISDIGIT(*ddata->cur) != 0) - ++ddata->cur; - if (*ddata->cur != '_') - return (0); - num_len = ddata->cur - num; - assert(num_len > 0); - if (*(++ddata->cur) == '\0') - return (0); - if (!cpp_demangle_read_type(ddata, NULL)) - return (0); - if (!DEM_PUSH_STR(ddata, "[")) - return (0); - if (!cpp_demangle_push_str(ddata, num, num_len)) - return (0); - if (!DEM_PUSH_STR(ddata, "]")) - return (0); - } else { - p_idx = ddata->output.size; - if (!cpp_demangle_read_expression(ddata)) - return (0); - if ((exp = vector_str_substr(&ddata->output, p_idx, - ddata->output.size - 1, &exp_len)) == NULL) - return (0); - idx = ddata->output.size; - for (i = p_idx; i < idx; ++i) - if (!vector_str_pop(&ddata->output)) { - free(exp); - return (0); - } - if (*ddata->cur != '_') { - free(exp); - return (0); - } - ++ddata->cur; - if (*ddata->cur == '\0') { - free(exp); - return (0); - } - if (!cpp_demangle_read_type(ddata, NULL)) { - free(exp); - return (0); - } - if (!DEM_PUSH_STR(ddata, "[")) { - free(exp); - return (0); - } - if (!cpp_demangle_push_str(ddata, exp, exp_len)) { - free(exp); - return (0); - } - if (!DEM_PUSH_STR(ddata, "]")) { - free(exp); - return (0); - } - free(exp); - } - } - - return (1); -} - -static int -cpp_demangle_read_expr_primary(struct cpp_demangle_data *ddata) -{ - const char *num; - - if (ddata == NULL || *(++ddata->cur) == '\0') - return (0); - - if (*ddata->cur == '_' && *(ddata->cur + 1) == 'Z') { - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - if (!cpp_demangle_read_encoding(ddata)) - return (0); - ++ddata->cur; - return (1); - } - - switch (*ddata->cur) { - case 'b': - if (*(ddata->cur + 2) != 'E') - return (0); - switch (*(++ddata->cur)) { - case '0': - ddata->cur += 2; - return (DEM_PUSH_STR(ddata, "false")); - case '1': - ddata->cur += 2; - return (DEM_PUSH_STR(ddata, "true")); - default: - return (0); - } - - case 'd': - ++ddata->cur; - return (cpp_demangle_push_fp(ddata, decode_fp_to_double)); - - case 'e': - ++ddata->cur; - if (sizeof(long double) == 10) - return (cpp_demangle_push_fp(ddata, - decode_fp_to_double)); - return (cpp_demangle_push_fp(ddata, decode_fp_to_float80)); - - case 'f': - ++ddata->cur; - return (cpp_demangle_push_fp(ddata, decode_fp_to_float)); - - case 'g': - ++ddata->cur; - if (sizeof(long double) == 16) - return (cpp_demangle_push_fp(ddata, - decode_fp_to_double)); - return (cpp_demangle_push_fp(ddata, decode_fp_to_float128)); - - case 'i': - case 'j': - case 'l': - case 'm': - case 'n': - case 's': - case 't': - case 'x': - case 'y': - if (*(++ddata->cur) == 'n') { - if (!DEM_PUSH_STR(ddata, "-")) - return (0); - ++ddata->cur; - } - num = ddata->cur; - while (*ddata->cur != 'E') { - if (!ELFTC_ISDIGIT(*ddata->cur)) - return (0); - ++ddata->cur; - } - ++ddata->cur; - return (cpp_demangle_push_str(ddata, num, - ddata->cur - num - 1)); - - default: - return (0); - } -} - -static int -cpp_demangle_read_expression(struct cpp_demangle_data *ddata) -{ - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - switch (SIMPLE_HASH(*ddata->cur, *(ddata->cur + 1))) { - case SIMPLE_HASH('s', 't'): - ddata->cur += 2; - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('s', 'r'): - ddata->cur += 2; - if (!cpp_demangle_read_type(ddata, NULL)) - return (0); - if (!cpp_demangle_read_uqname(ddata)) - return (0); - if (*ddata->cur == 'I') - return (cpp_demangle_read_tmpl_args(ddata)); - return (1); - - case SIMPLE_HASH('a', 'a'): - /* operator && */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "&&", 2)); - - case SIMPLE_HASH('a', 'd'): - /* operator & (unary) */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "&", 1)); - - case SIMPLE_HASH('a', 'n'): - /* operator & */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "&", 1)); - - case SIMPLE_HASH('a', 'N'): - /* operator &= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "&=", 2)); - - case SIMPLE_HASH('a', 'S'): - /* operator = */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "=", 1)); - - case SIMPLE_HASH('c', 'l'): - /* operator () */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "()", 2)); - - case SIMPLE_HASH('c', 'm'): - /* operator , */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, ",", 1)); - - case SIMPLE_HASH('c', 'o'): - /* operator ~ */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "~", 1)); - - case SIMPLE_HASH('c', 'v'): - /* operator (cast) */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "(cast)", 6)); - - case SIMPLE_HASH('d', 'a'): - /* operator delete [] */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "delete []", 9)); - - case SIMPLE_HASH('d', 'e'): - /* operator * (unary) */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "*", 1)); - - case SIMPLE_HASH('d', 'l'): - /* operator delete */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "delete", 6)); - - case SIMPLE_HASH('d', 'v'): - /* operator / */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "/", 1)); - - case SIMPLE_HASH('d', 'V'): - /* operator /= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "/=", 2)); - - case SIMPLE_HASH('e', 'o'): - /* operator ^ */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "^", 1)); - - case SIMPLE_HASH('e', 'O'): - /* operator ^= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "^=", 2)); - - case SIMPLE_HASH('e', 'q'): - /* operator == */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "==", 2)); - - case SIMPLE_HASH('g', 'e'): - /* operator >= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, ">=", 2)); - - case SIMPLE_HASH('g', 't'): - /* operator > */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, ">", 1)); - - case SIMPLE_HASH('i', 'x'): - /* operator [] */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "[]", 2)); - - case SIMPLE_HASH('l', 'e'): - /* operator <= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "<=", 2)); - - case SIMPLE_HASH('l', 's'): - /* operator << */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "<<", 2)); - - case SIMPLE_HASH('l', 'S'): - /* operator <<= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "<<=", 3)); - - case SIMPLE_HASH('l', 't'): - /* operator < */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "<", 1)); - - case SIMPLE_HASH('m', 'i'): - /* operator - */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "-", 1)); - - case SIMPLE_HASH('m', 'I'): - /* operator -= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "-=", 2)); - - case SIMPLE_HASH('m', 'l'): - /* operator * */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "*", 1)); - - case SIMPLE_HASH('m', 'L'): - /* operator *= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "*=", 2)); - - case SIMPLE_HASH('m', 'm'): - /* operator -- */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "--", 2)); - - case SIMPLE_HASH('n', 'a'): - /* operator new[] */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "new []", 6)); - - case SIMPLE_HASH('n', 'e'): - /* operator != */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "!=", 2)); - - case SIMPLE_HASH('n', 'g'): - /* operator - (unary) */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "-", 1)); - - case SIMPLE_HASH('n', 't'): - /* operator ! */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "!", 1)); - - case SIMPLE_HASH('n', 'w'): - /* operator new */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "new", 3)); - - case SIMPLE_HASH('o', 'o'): - /* operator || */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "||", 2)); - - case SIMPLE_HASH('o', 'r'): - /* operator | */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "|", 1)); - - case SIMPLE_HASH('o', 'R'): - /* operator |= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "|=", 2)); - - case SIMPLE_HASH('p', 'l'): - /* operator + */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "+", 1)); - - case SIMPLE_HASH('p', 'L'): - /* operator += */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "+=", 2)); - - case SIMPLE_HASH('p', 'm'): - /* operator ->* */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "->*", 3)); - - case SIMPLE_HASH('p', 'p'): - /* operator ++ */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "++", 2)); - - case SIMPLE_HASH('p', 's'): - /* operator + (unary) */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "+", 1)); - - case SIMPLE_HASH('p', 't'): - /* operator -> */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "->", 2)); - - case SIMPLE_HASH('q', 'u'): - /* operator ? */ - ddata->cur += 2; - return (cpp_demangle_read_expression_trinary(ddata, "?", 1, - ":", 1)); - - case SIMPLE_HASH('r', 'm'): - /* operator % */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "%", 1)); - - case SIMPLE_HASH('r', 'M'): - /* operator %= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, "%=", 2)); - - case SIMPLE_HASH('r', 's'): - /* operator >> */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, ">>", 2)); - - case SIMPLE_HASH('r', 'S'): - /* operator >>= */ - ddata->cur += 2; - return (cpp_demangle_read_expression_binary(ddata, ">>=", 3)); - - case SIMPLE_HASH('r', 'z'): - /* operator sizeof */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "sizeof", 6)); - - case SIMPLE_HASH('s', 'v'): - /* operator sizeof */ - ddata->cur += 2; - return (cpp_demangle_read_expression_unary(ddata, "sizeof", 6)); - } - - switch (*ddata->cur) { - case 'L': - return (cpp_demangle_read_expr_primary(ddata)); - case 'T': - return (cpp_demangle_read_tmpl_param(ddata)); - } - - return (0); -} - -static int -cpp_demangle_read_expression_flat(struct cpp_demangle_data *ddata, char **str) -{ - struct vector_str *output; - size_t i, p_idx, idx, exp_len; - char *exp; - - output = &ddata->output; - - p_idx = output->size; - - if (!cpp_demangle_read_expression(ddata)) - return (0); - - if ((exp = vector_str_substr(output, p_idx, output->size - 1, - &exp_len)) == NULL) - return (0); - - idx = output->size; - for (i = p_idx; i < idx; ++i) { - if (!vector_str_pop(output)) { - free(exp); - return (0); - } - } - - *str = exp; - - return (1); -} - -static int -cpp_demangle_read_expression_binary(struct cpp_demangle_data *ddata, - const char *name, size_t len) -{ - - if (ddata == NULL || name == NULL || len == 0) - return (0); - if (!cpp_demangle_read_expression(ddata)) - return (0); - if (!cpp_demangle_push_str(ddata, name, len)) - return (0); - - return (cpp_demangle_read_expression(ddata)); -} - -static int -cpp_demangle_read_expression_unary(struct cpp_demangle_data *ddata, - const char *name, size_t len) -{ - - if (ddata == NULL || name == NULL || len == 0) - return (0); - if (!cpp_demangle_read_expression(ddata)) - return (0); - - return (cpp_demangle_push_str(ddata, name, len)); -} - -static int -cpp_demangle_read_expression_trinary(struct cpp_demangle_data *ddata, - const char *name1, size_t len1, const char *name2, size_t len2) -{ - - if (ddata == NULL || name1 == NULL || len1 == 0 || name2 == NULL || - len2 == 0) - return (0); - - if (!cpp_demangle_read_expression(ddata)) - return (0); - if (!cpp_demangle_push_str(ddata, name1, len1)) - return (0); - if (!cpp_demangle_read_expression(ddata)) - return (0); - if (!cpp_demangle_push_str(ddata, name2, len2)) - return (0); - - return (cpp_demangle_read_expression(ddata)); -} - -static int -cpp_demangle_read_function(struct cpp_demangle_data *ddata, int *ext_c, - struct vector_type_qualifier *v) -{ - struct type_delimit td; - struct read_cmd_item *rc; - size_t class_type_size, class_type_len, limit; - const char *class_type; - int i; - bool paren, non_cv_qualifier; - - if (ddata == NULL || *ddata->cur != 'F' || v == NULL) - return (0); - - ++ddata->cur; - if (*ddata->cur == 'Y') { - if (ext_c != NULL) - *ext_c = 1; - ++ddata->cur; - } - - /* Return type */ - if (!cpp_demangle_read_type(ddata, NULL)) - return (0); - - if (*ddata->cur != 'E') { - if (!DEM_PUSH_STR(ddata, " ")) - return (0); - - non_cv_qualifier = false; - if (v->size > 0) { - for (i = 0; (size_t) i < v->size; i++) { - if (v->q_container[i] != TYPE_RST && - v->q_container[i] != TYPE_VAT && - v->q_container[i] != TYPE_CST) { - non_cv_qualifier = true; - break; - } - } - } - - paren = false; - rc = vector_read_cmd_find(&ddata->cmd, READ_PTRMEM); - if (non_cv_qualifier || rc != NULL) { - if (!DEM_PUSH_STR(ddata, "(")) - return (0); - paren = true; - } - - /* Push non-cv qualifiers. */ - ddata->push_qualifier = PUSH_NON_CV_QUALIFIER; - if (!cpp_demangle_push_type_qualifier(ddata, v, NULL)) - return (0); - - if (rc) { - if (non_cv_qualifier && !DEM_PUSH_STR(ddata, " ")) - return (0); - if ((class_type_size = ddata->class_type.size) == 0) - return (0); - class_type = - ddata->class_type.container[class_type_size - 1]; - if (class_type == NULL) - return (0); - if ((class_type_len = strlen(class_type)) == 0) - return (0); - if (!cpp_demangle_push_str(ddata, class_type, - class_type_len)) - return (0); - if (!DEM_PUSH_STR(ddata, "::*")) - return (0); - /* Push pointer-to-member qualifiers. */ - ddata->push_qualifier = PUSH_ALL_QUALIFIER; - if (!cpp_demangle_push_type_qualifier(ddata, rc->data, - NULL)) - return (0); - ++ddata->func_type; - } - - if (paren) { - if (!DEM_PUSH_STR(ddata, ")")) - return (0); - paren = false; - } - - td.paren = false; - td.firstp = true; - limit = 0; - ddata->is_functype = true; - for (;;) { - if (!cpp_demangle_read_type(ddata, &td)) - return (0); - if (*ddata->cur == 'E') - break; - if (limit++ > CPP_DEMANGLE_TRY_LIMIT) - return (0); - } - ddata->is_functype = false; - if (td.paren) { - if (!DEM_PUSH_STR(ddata, ")")) - return (0); - td.paren = false; - } - - /* Push CV qualifiers. */ - ddata->push_qualifier = PUSH_CV_QUALIFIER; - if (!cpp_demangle_push_type_qualifier(ddata, v, NULL)) - return (0); - - ddata->push_qualifier = PUSH_ALL_QUALIFIER; - - /* Release type qualifier vector. */ - vector_type_qualifier_dest(v); - if (!vector_type_qualifier_init(v)) - return (0); - - /* Push ref-qualifiers. */ - if (ddata->ref_qualifier) { - switch (ddata->ref_qualifier_type) { - case TYPE_REF: - if (!DEM_PUSH_STR(ddata, " &")) - return (0); - break; - case TYPE_RREF: - if (!DEM_PUSH_STR(ddata, " &&")) - return (0); - break; - default: - return (0); - } - ddata->ref_qualifier = false; - } - } - - ++ddata->cur; - - return (1); -} - -/* read encoding, encoding are function name, data name, special-name */ -static int -cpp_demangle_read_encoding(struct cpp_demangle_data *ddata) -{ - char *name, *type, *num_str; - long offset; - int rtn; - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - /* special name */ - switch (SIMPLE_HASH(*ddata->cur, *(ddata->cur + 1))) { - case SIMPLE_HASH('G', 'A'): - if (!DEM_PUSH_STR(ddata, "hidden alias for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_encoding(ddata)); - - case SIMPLE_HASH('G', 'R'): - if (!DEM_PUSH_STR(ddata, "reference temporary #")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - if (!cpp_demangle_read_name_flat(ddata, &name)) - return (0); - rtn = 0; - if (!cpp_demangle_read_number_as_string(ddata, &num_str)) - goto clean1; - if (!DEM_PUSH_STR(ddata, num_str)) - goto clean2; - if (!DEM_PUSH_STR(ddata, " for ")) - goto clean2; - if (!DEM_PUSH_STR(ddata, name)) - goto clean2; - rtn = 1; - clean2: - free(num_str); - clean1: - free(name); - return (rtn); - - case SIMPLE_HASH('G', 'T'): - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - switch (*ddata->cur) { - case 'n': - if (!DEM_PUSH_STR(ddata, "non-transaction clone for ")) - return (0); - break; - case 't': - default: - if (!DEM_PUSH_STR(ddata, "transaction clone for ")) - return (0); - break; - } - ++ddata->cur; - return (cpp_demangle_read_encoding(ddata)); - - case SIMPLE_HASH('G', 'V'): - /* sentry object for 1 time init */ - if (!DEM_PUSH_STR(ddata, "guard variable for ")) - return (0); - ddata->cur += 2; - break; - - case SIMPLE_HASH('T', 'c'): - /* virtual function covariant override thunk */ - if (!DEM_PUSH_STR(ddata, - "virtual function covariant override ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - if (!cpp_demangle_read_offset(ddata)) - return (0); - if (!cpp_demangle_read_offset(ddata)) - return (0); - return (cpp_demangle_read_encoding(ddata)); - - case SIMPLE_HASH('T', 'C'): - /* construction vtable */ - if (!DEM_PUSH_STR(ddata, "construction vtable for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - if (!cpp_demangle_read_type_flat(ddata, &type)) - return (0); - rtn = 0; - if (!cpp_demangle_read_number(ddata, &offset)) - goto clean3; - if (*ddata->cur++ != '_') - goto clean3; - if (!cpp_demangle_read_type(ddata, NULL)) - goto clean3; - if (!DEM_PUSH_STR(ddata, "-in-")) - goto clean3; - if (!DEM_PUSH_STR(ddata, type)) - goto clean3; - rtn = 1; - clean3: - free(type); - return (rtn); - - case SIMPLE_HASH('T', 'D'): - /* typeinfo common proxy */ - break; - - case SIMPLE_HASH('T', 'F'): - /* typeinfo fn */ - if (!DEM_PUSH_STR(ddata, "typeinfo fn for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('T', 'h'): - /* virtual function non-virtual override thunk */ - if (!DEM_PUSH_STR(ddata, - "virtual function non-virtual override ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - if (!cpp_demangle_read_nv_offset(ddata)) - return (0); - return (cpp_demangle_read_encoding(ddata)); - - case SIMPLE_HASH('T', 'H'): - /* TLS init function */ - if (!DEM_PUSH_STR(ddata, "TLS init function for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - break; - - case SIMPLE_HASH('T', 'I'): - /* typeinfo structure */ - if (!DEM_PUSH_STR(ddata, "typeinfo for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('T', 'J'): - /* java class */ - if (!DEM_PUSH_STR(ddata, "java Class for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('T', 'S'): - /* RTTI name (NTBS) */ - if (!DEM_PUSH_STR(ddata, "typeinfo name for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('T', 'T'): - /* VTT table */ - if (!DEM_PUSH_STR(ddata, "VTT for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('T', 'v'): - /* virtual function virtual override thunk */ - if (!DEM_PUSH_STR(ddata, "virtual function virtual override ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - if (!cpp_demangle_read_v_offset(ddata)) - return (0); - return (cpp_demangle_read_encoding(ddata)); - - case SIMPLE_HASH('T', 'V'): - /* virtual table */ - if (!DEM_PUSH_STR(ddata, "vtable for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('T', 'W'): - /* TLS wrapper function */ - if (!DEM_PUSH_STR(ddata, "TLS wrapper function for ")) - return (0); - ddata->cur += 2; - if (*ddata->cur == '\0') - return (0); - break; - } - - return (cpp_demangle_read_name(ddata)); -} - -static int -cpp_demangle_read_local_name(struct cpp_demangle_data *ddata) -{ - struct vector_str local_name; - struct type_delimit td; - size_t limit; - bool more_type; - - if (ddata == NULL) - return (0); - if (*(++ddata->cur) == '\0') - return (0); - - if (!vector_str_init(&local_name)) - return (0); - ddata->cur_output = &local_name; - - if (!cpp_demangle_read_encoding(ddata)) { - vector_str_dest(&local_name); - return (0); - } - - ddata->cur_output = &ddata->output; - - td.paren = false; - td.firstp = true; - more_type = false; - limit = 0; - - /* - * The first type is a return type if we just demangled template - * args. (the template args is right next to the function name, - * which means it's a template function) - */ - if (ddata->is_tmpl) { - ddata->is_tmpl = false; - - /* Read return type */ - if (!cpp_demangle_read_type(ddata, NULL)) { - vector_str_dest(&local_name); - return (0); - } - - more_type = true; - } - - /* Now we can push the name after possible return type is handled. */ - if (!vector_str_push_vector(&ddata->output, &local_name)) { - vector_str_dest(&local_name); - return (0); - } - vector_str_dest(&local_name); - - while (*ddata->cur != '\0') { - if (!cpp_demangle_read_type(ddata, &td)) - return (0); - if (more_type) - more_type = false; - if (*ddata->cur == 'E') - break; - if (limit++ > CPP_DEMANGLE_TRY_LIMIT) - return (0); - } - if (more_type) - return (0); - - if (*(++ddata->cur) == '\0') - return (0); - if (td.paren == true) { - if (!DEM_PUSH_STR(ddata, ")")) - return (0); - td.paren = false; - } - if (*ddata->cur == 's') - ++ddata->cur; - else { - if (!DEM_PUSH_STR(ddata, "::")) - return (0); - if (!cpp_demangle_read_name(ddata)) - return (0); - } - if (*ddata->cur == '_') { - ++ddata->cur; - while (ELFTC_ISDIGIT(*ddata->cur) != 0) - ++ddata->cur; - } - - return (1); -} - -static int -cpp_demangle_read_name(struct cpp_demangle_data *ddata) -{ - struct vector_str *output, v; - size_t p_idx, subst_str_len; - int rtn; - char *subst_str; - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - output = ddata->cur_output; - - subst_str = NULL; - - switch (*ddata->cur) { - case 'S': - return (cpp_demangle_read_subst(ddata)); - case 'N': - return (cpp_demangle_read_nested_name(ddata)); - case 'Z': - return (cpp_demangle_read_local_name(ddata)); - } - - if (!vector_str_init(&v)) - return (0); - - p_idx = output->size; - rtn = 0; - if (!cpp_demangle_read_uqname(ddata)) - goto clean; - if ((subst_str = vector_str_substr(output, p_idx, output->size - 1, - &subst_str_len)) == NULL) - goto clean; - if (subst_str_len > 8 && strstr(subst_str, "operator") != NULL) { - rtn = 1; - goto clean; - } - if (!vector_str_push(&v, subst_str, subst_str_len)) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, &v)) - goto clean; - - if (*ddata->cur == 'I') { - p_idx = output->size; - if (!cpp_demangle_read_tmpl_args(ddata)) - goto clean; - free(subst_str); - if ((subst_str = vector_str_substr(output, p_idx, - output->size - 1, &subst_str_len)) == NULL) - goto clean; - if (!vector_str_push(&v, subst_str, subst_str_len)) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, &v)) - goto clean; - } - - rtn = 1; - -clean: - free(subst_str); - vector_str_dest(&v); - - return (rtn); -} - -static int -cpp_demangle_read_name_flat(struct cpp_demangle_data *ddata, char **str) -{ - struct vector_str *output; - size_t i, p_idx, idx, name_len; - char *name; - - output = ddata->cur_output; - - p_idx = output->size; - - if (!cpp_demangle_read_name(ddata)) - return (0); - - if ((name = vector_str_substr(output, p_idx, output->size - 1, - &name_len)) == NULL) - return (0); - - idx = output->size; - for (i = p_idx; i < idx; ++i) { - if (!vector_str_pop(output)) { - free(name); - return (0); - } - } - - *str = name; - - return (1); -} - -static int -cpp_demangle_read_nested_name(struct cpp_demangle_data *ddata) -{ - struct vector_str *output, v; - size_t limit, p_idx, subst_str_len; - int rtn; - char *subst_str; - - if (ddata == NULL || *ddata->cur != 'N') - return (0); - if (*(++ddata->cur) == '\0') - return (0); - - do { - switch (*ddata->cur) { - case 'r': - ddata->mem_rst = true; - break; - case 'V': - ddata->mem_vat = true; - break; - case 'K': - ddata->mem_cst = true; - break; - case 'R': - ddata->mem_ref = true; - break; - case 'O': - ddata->mem_rref = true; - break; - default: - goto next; - } - } while (*(++ddata->cur)); - -next: - output = ddata->cur_output; - if (!vector_str_init(&v)) - return (0); - - rtn = 0; - limit = 0; - for (;;) { - p_idx = output->size; - switch (*ddata->cur) { - case 'I': - if (!cpp_demangle_read_tmpl_args(ddata)) - goto clean; - break; - case 'S': - if (!cpp_demangle_read_subst(ddata)) - goto clean; - break; - case 'T': - if (!cpp_demangle_read_tmpl_param(ddata)) - goto clean; - break; - default: - if (!cpp_demangle_read_uqname(ddata)) - goto clean; - } - - if (p_idx == output->size) - goto next_comp; - if ((subst_str = vector_str_substr(output, p_idx, - output->size - 1, &subst_str_len)) == NULL) - goto clean; - if (!vector_str_push(&v, subst_str, subst_str_len)) { - free(subst_str); - goto clean; - } - free(subst_str); - - if (!cpp_demangle_push_subst_v(ddata, &v)) - goto clean; - - next_comp: - if (*ddata->cur == 'E') - break; - else if (*ddata->cur != 'I' && *ddata->cur != 'C' && - *ddata->cur != 'D' && p_idx != output->size) { - if (!DEM_PUSH_STR(ddata, "::")) - goto clean; - if (!VEC_PUSH_STR(&v, "::")) - goto clean; - } - if (limit++ > CPP_DEMANGLE_TRY_LIMIT) - goto clean; - } - - ++ddata->cur; - rtn = 1; - -clean: - vector_str_dest(&v); - - return (rtn); -} - -/* - * read number - * number ::= [n] - */ -static int -cpp_demangle_read_number(struct cpp_demangle_data *ddata, long *rtn) -{ - long len, negative_factor; - - if (ddata == NULL || rtn == NULL) - return (0); - - negative_factor = 1; - if (*ddata->cur == 'n') { - negative_factor = -1; - - ++ddata->cur; - } - if (ELFTC_ISDIGIT(*ddata->cur) == 0) - return (0); - - errno = 0; - if ((len = strtol(ddata->cur, (char **) NULL, 10)) == 0 && - errno != 0) - return (0); - - while (ELFTC_ISDIGIT(*ddata->cur) != 0) - ++ddata->cur; - - assert(len >= 0); - assert(negative_factor == 1 || negative_factor == -1); - - *rtn = len * negative_factor; - - return (1); -} - -static int -cpp_demangle_read_number_as_string(struct cpp_demangle_data *ddata, char **str) -{ - long n; - - if (!cpp_demangle_read_number(ddata, &n)) { - *str = NULL; - return (0); - } - - if (asprintf(str, "%ld", n) < 0) { - *str = NULL; - return (0); - } - - return (1); -} - -static int -cpp_demangle_read_nv_offset(struct cpp_demangle_data *ddata) -{ - - if (ddata == NULL) - return (0); - - if (!DEM_PUSH_STR(ddata, "offset : ")) - return (0); - - return (cpp_demangle_read_offset_number(ddata)); -} - -/* read offset, offset are nv-offset, v-offset */ -static int -cpp_demangle_read_offset(struct cpp_demangle_data *ddata) -{ - - if (ddata == NULL) - return (0); - - if (*ddata->cur == 'h') { - ++ddata->cur; - return (cpp_demangle_read_nv_offset(ddata)); - } else if (*ddata->cur == 'v') { - ++ddata->cur; - return (cpp_demangle_read_v_offset(ddata)); - } - - return (0); -} - -static int -cpp_demangle_read_offset_number(struct cpp_demangle_data *ddata) -{ - bool negative; - const char *start; - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - /* offset could be negative */ - if (*ddata->cur == 'n') { - negative = true; - start = ddata->cur + 1; - } else { - negative = false; - start = ddata->cur; - } - - while (*ddata->cur != '_') - ++ddata->cur; - - if (negative && !DEM_PUSH_STR(ddata, "-")) - return (0); - - assert(start != NULL); - - if (!cpp_demangle_push_str(ddata, start, ddata->cur - start)) - return (0); - if (!DEM_PUSH_STR(ddata, " ")) - return (0); - - ++ddata->cur; - - return (1); -} - -static int -cpp_demangle_read_pointer_to_member(struct cpp_demangle_data *ddata, - struct vector_type_qualifier *v) -{ - size_t class_type_len, i, idx, p_idx; - int p_func_type, rtn; - char *class_type; - - if (ddata == NULL || *ddata->cur != 'M' || *(++ddata->cur) == '\0') - return (0); - - p_idx = ddata->output.size; - if (!cpp_demangle_read_type(ddata, NULL)) - return (0); - - if ((class_type = vector_str_substr(&ddata->output, p_idx, - ddata->output.size - 1, &class_type_len)) == NULL) - return (0); - - rtn = 0; - idx = ddata->output.size; - for (i = p_idx; i < idx; ++i) - if (!vector_str_pop(&ddata->output)) - goto clean1; - - if (!vector_read_cmd_push(&ddata->cmd, READ_PTRMEM, v)) - goto clean1; - - if (!vector_str_push(&ddata->class_type, class_type, class_type_len)) - goto clean2; - - p_func_type = ddata->func_type; - if (!cpp_demangle_read_type(ddata, NULL)) - goto clean3; - - if (p_func_type == ddata->func_type) { - if (!DEM_PUSH_STR(ddata, " ")) - goto clean3; - if (!cpp_demangle_push_str(ddata, class_type, class_type_len)) - goto clean3; - if (!DEM_PUSH_STR(ddata, "::*")) - goto clean3; - } - - rtn = 1; -clean3: - if (!vector_str_pop(&ddata->class_type)) - rtn = 0; -clean2: - if (!vector_read_cmd_pop(&ddata->cmd)) - rtn = 0; -clean1: - free(class_type); - - vector_type_qualifier_dest(v); - if (!vector_type_qualifier_init(v)) - return (0); - - return (rtn); -} - -/* read source-name, source-name is */ -static int -cpp_demangle_read_sname(struct cpp_demangle_data *ddata) -{ - long len; - int err; - - if (ddata == NULL || cpp_demangle_read_number(ddata, &len) == 0 || - len <= 0) - return (0); - - if (len == 12 && (memcmp("_GLOBAL__N_1", ddata->cur, 12) == 0)) - err = DEM_PUSH_STR(ddata, "(anonymous namespace)"); - else - err = cpp_demangle_push_str(ddata, ddata->cur, len); - - if (err == 0) - return (0); - - assert(ddata->output.size > 0); - if (vector_read_cmd_find(&ddata->cmd, READ_TMPL) == NULL) - ddata->last_sname = - ddata->output.container[ddata->output.size - 1]; - - ddata->cur += len; - - return (1); -} - -static int -cpp_demangle_read_subst(struct cpp_demangle_data *ddata) -{ - long nth; - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - /* abbreviations of the form Sx */ - switch (SIMPLE_HASH(*ddata->cur, *(ddata->cur + 1))) { - case SIMPLE_HASH('S', 'a'): - /* std::allocator */ - if (!DEM_PUSH_STR(ddata, "std::allocator")) - return (0); - ddata->cur += 2; - if (*ddata->cur == 'I') - return (cpp_demangle_read_subst_stdtmpl(ddata, - "std::allocator")); - return (1); - - case SIMPLE_HASH('S', 'b'): - /* std::basic_string */ - if (!DEM_PUSH_STR(ddata, "std::basic_string")) - return (0); - ddata->cur += 2; - if (*ddata->cur == 'I') - return (cpp_demangle_read_subst_stdtmpl(ddata, - "std::basic_string")); - return (1); - - case SIMPLE_HASH('S', 'd'): - /* std::basic_iostream > */ - if (!DEM_PUSH_STR(ddata, "std::basic_iostream >")) - return (0); - ddata->last_sname = "basic_iostream"; - ddata->cur += 2; - if (*ddata->cur == 'I') - return (cpp_demangle_read_subst_stdtmpl(ddata, - "std::basic_iostream >")); - return (1); - - case SIMPLE_HASH('S', 'i'): - /* std::basic_istream > */ - if (!DEM_PUSH_STR(ddata, "std::basic_istream >")) - return (0); - ddata->last_sname = "basic_istream"; - ddata->cur += 2; - if (*ddata->cur == 'I') - return (cpp_demangle_read_subst_stdtmpl(ddata, - "std::basic_istream >")); - return (1); - - case SIMPLE_HASH('S', 'o'): - /* std::basic_ostream > */ - if (!DEM_PUSH_STR(ddata, "std::basic_ostream >")) - return (0); - ddata->last_sname = "basic_ostream"; - ddata->cur += 2; - if (*ddata->cur == 'I') - return (cpp_demangle_read_subst_stdtmpl(ddata, - "std::basic_ostream >")); - return (1); - - case SIMPLE_HASH('S', 's'): - /* - * std::basic_string, - * std::allocator > - * - * a.k.a std::string - */ - if (!DEM_PUSH_STR(ddata, "std::basic_string, std::allocator >")) - return (0); - ddata->last_sname = "string"; - ddata->cur += 2; - if (*ddata->cur == 'I') - return (cpp_demangle_read_subst_stdtmpl(ddata, - "std::basic_string," - " std::allocator >")); - return (1); - - case SIMPLE_HASH('S', 't'): - /* std:: */ - return (cpp_demangle_read_subst_std(ddata)); - } - - if (*(++ddata->cur) == '\0') - return (0); - - /* Skip unknown substitution abbreviations. */ - if (!(*ddata->cur >= '0' && *ddata->cur <= '9') && - !(*ddata->cur >= 'A' && *ddata->cur <= 'Z') && - *ddata->cur != '_') { - ++ddata->cur; - return (1); - } - - /* substitution */ - if (*ddata->cur == '_') - return (cpp_demangle_get_subst(ddata, 0)); - else { - errno = 0; - /* substitution number is base 36 */ - if ((nth = strtol(ddata->cur, (char **) NULL, 36)) == 0 && - errno != 0) - return (0); - - /* first was '_', so increase one */ - ++nth; - - while (*ddata->cur != '_') - ++ddata->cur; - - assert(nth > 0); - - return (cpp_demangle_get_subst(ddata, nth)); - } - - /* NOTREACHED */ - return (0); -} - -static int -cpp_demangle_read_subst_std(struct cpp_demangle_data *ddata) -{ - struct vector_str *output, v; - size_t p_idx, subst_str_len; - int rtn; - char *subst_str; - - if (ddata == NULL) - return (0); - - if (!vector_str_init(&v)) - return (0); - - subst_str = NULL; - rtn = 0; - if (!DEM_PUSH_STR(ddata, "std::")) - goto clean; - - if (!VEC_PUSH_STR(&v, "std::")) - goto clean; - - ddata->cur += 2; - - output = ddata->cur_output; - - p_idx = output->size; - if (!cpp_demangle_read_uqname(ddata)) - goto clean; - - if ((subst_str = vector_str_substr(output, p_idx, output->size - 1, - &subst_str_len)) == NULL) - goto clean; - - if (!vector_str_push(&v, subst_str, subst_str_len)) - goto clean; - - if (!cpp_demangle_push_subst_v(ddata, &v)) - goto clean; - - if (*ddata->cur == 'I') { - p_idx = output->size; - if (!cpp_demangle_read_tmpl_args(ddata)) - goto clean; - free(subst_str); - if ((subst_str = vector_str_substr(output, p_idx, - output->size - 1, &subst_str_len)) == NULL) - goto clean; - if (!vector_str_push(&v, subst_str, subst_str_len)) - goto clean; - if (!cpp_demangle_push_subst_v(ddata, &v)) - goto clean; - } - - rtn = 1; -clean: - free(subst_str); - vector_str_dest(&v); - - return (rtn); -} - -static int -cpp_demangle_read_subst_stdtmpl(struct cpp_demangle_data *ddata, - const char *str) -{ - struct vector_str *output; - size_t p_idx, substr_len, len; - int rtn; - char *subst_str, *substr; - - if (ddata == NULL || str == NULL) - return (0); - - if ((len = strlen(str)) == 0) - return (0); - - output = ddata->cur_output; - - p_idx = output->size; - substr = NULL; - subst_str = NULL; - - if (!cpp_demangle_read_tmpl_args(ddata)) - return (0); - if ((substr = vector_str_substr(output, p_idx, output->size - 1, - &substr_len)) == NULL) - return (0); - - rtn = 0; - if ((subst_str = malloc(sizeof(char) * (substr_len + len + 1))) == - NULL) - goto clean; - - memcpy(subst_str, str, len); - memcpy(subst_str + len, substr, substr_len); - subst_str[substr_len + len] = '\0'; - - if (!cpp_demangle_push_subst(ddata, subst_str, substr_len + len)) - goto clean; - - rtn = 1; -clean: - free(subst_str); - free(substr); - - return (rtn); -} - -static int -cpp_demangle_read_tmpl_arg(struct cpp_demangle_data *ddata) -{ - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - switch (*ddata->cur) { - case 'L': - return (cpp_demangle_read_expr_primary(ddata)); - case 'X': - ++ddata->cur; - if (!cpp_demangle_read_expression(ddata)) - return (0); - return (*ddata->cur++ == 'E'); - } - - return (cpp_demangle_read_type(ddata, NULL)); -} - -static int -cpp_demangle_read_tmpl_args(struct cpp_demangle_data *ddata) -{ - struct vector_str *v; - size_t arg_len, idx, limit, size; - char *arg; - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - ++ddata->cur; - - if (!vector_read_cmd_push(&ddata->cmd, READ_TMPL, NULL)) - return (0); - - if (!DEM_PUSH_STR(ddata, "<")) - return (0); - - limit = 0; - v = &ddata->output; - for (;;) { - idx = v->size; - if (!cpp_demangle_read_tmpl_arg(ddata)) - return (0); - if ((arg = vector_str_substr(v, idx, v->size - 1, &arg_len)) == - NULL) - return (0); - if (!vector_str_find(&ddata->tmpl, arg, arg_len) && - !vector_str_push(&ddata->tmpl, arg, arg_len)) { - free(arg); - return (0); - } - - free(arg); - - if (*ddata->cur == 'E') { - ++ddata->cur; - size = v->size; - assert(size > 0); - if (!strncmp(v->container[size - 1], ">", 1)) { - if (!DEM_PUSH_STR(ddata, " >")) - return (0); - } else if (!DEM_PUSH_STR(ddata, ">")) - return (0); - ddata->is_tmpl = true; - break; - } else if (*ddata->cur != 'I' && - !DEM_PUSH_STR(ddata, ", ")) - return (0); - - if (limit++ > CPP_DEMANGLE_TRY_LIMIT) - return (0); - } - - return (vector_read_cmd_pop(&ddata->cmd)); -} - -/* - * Read template parameter that forms in 'T[number]_'. - * This function much like to read_subst but only for types. - */ -static int -cpp_demangle_read_tmpl_param(struct cpp_demangle_data *ddata) -{ - long nth; - - if (ddata == NULL || *ddata->cur != 'T') - return (0); - - ++ddata->cur; - - if (*ddata->cur == '_') - return (cpp_demangle_get_tmpl_param(ddata, 0)); - else { - - errno = 0; - if ((nth = strtol(ddata->cur, (char **) NULL, 36)) == 0 && - errno != 0) - return (0); - - /* T_ is first */ - ++nth; - - while (*ddata->cur != '_') - ++ddata->cur; - - assert(nth > 0); - - return (cpp_demangle_get_tmpl_param(ddata, nth)); - } - - /* NOTREACHED */ - return (0); -} - -static int -cpp_demangle_read_type(struct cpp_demangle_data *ddata, - struct type_delimit *td) -{ - struct vector_type_qualifier v; - struct vector_str *output, sv; - size_t p_idx, type_str_len, subst_str_len; - int extern_c, is_builtin; - long len; - const char *p; - char *type_str, *exp_str, *num_str, *subst_str; - bool skip_ref_qualifier, omit_void; - - if (ddata == NULL) - return (0); - - output = ddata->cur_output; - if (td) { - if (td->paren == false) { - if (!DEM_PUSH_STR(ddata, "(")) - return (0); - if (ddata->output.size < 2) - return (0); - td->paren = true; - } - - if (!td->firstp) { - if (*ddata->cur != 'I') { - if (!DEM_PUSH_STR(ddata, ", ")) - return (0); - } - } - } - - assert(output != NULL); - /* - * [r, V, K] [P, R, O, C, G, U] builtin, function, class-enum, array - * pointer-to-member, template-param, template-template-param, subst - */ - - if (!vector_type_qualifier_init(&v)) - return (0); - - extern_c = 0; - is_builtin = 1; - p_idx = output->size; - type_str = exp_str = num_str = NULL; - skip_ref_qualifier = false; - -again: - - /* Clear ref-qualifier flag */ - if (*ddata->cur != 'R' && *ddata->cur != 'O' && *ddata->cur != 'E') - ddata->ref_qualifier = false; - - /* builtin type */ - switch (*ddata->cur) { - case 'a': - /* signed char */ - if (!DEM_PUSH_STR(ddata, "signed char")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'A': - /* array type */ - if (!cpp_demangle_read_array(ddata)) - goto clean; - is_builtin = 0; - goto rtn; - - case 'b': - /* bool */ - if (!DEM_PUSH_STR(ddata, "bool")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'C': - /* complex pair */ - if (!vector_type_qualifier_push(&v, TYPE_CMX)) - goto clean; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'c': - /* char */ - if (!DEM_PUSH_STR(ddata, "char")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'd': - /* double */ - if (!DEM_PUSH_STR(ddata, "double")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'D': - ++ddata->cur; - switch (*ddata->cur) { - case 'a': - /* auto */ - if (!DEM_PUSH_STR(ddata, "auto")) - goto clean; - ++ddata->cur; - break; - case 'c': - /* decltype(auto) */ - if (!DEM_PUSH_STR(ddata, "decltype(auto)")) - goto clean; - ++ddata->cur; - break; - case 'd': - /* IEEE 754r decimal floating point (64 bits) */ - if (!DEM_PUSH_STR(ddata, "decimal64")) - goto clean; - ++ddata->cur; - break; - case 'e': - /* IEEE 754r decimal floating point (128 bits) */ - if (!DEM_PUSH_STR(ddata, "decimal128")) - goto clean; - ++ddata->cur; - break; - case 'f': - /* IEEE 754r decimal floating point (32 bits) */ - if (!DEM_PUSH_STR(ddata, "decimal32")) - goto clean; - ++ddata->cur; - break; - case 'h': - /* IEEE 754r half-precision floating point (16 bits) */ - if (!DEM_PUSH_STR(ddata, "half")) - goto clean; - ++ddata->cur; - break; - case 'i': - /* char32_t */ - if (!DEM_PUSH_STR(ddata, "char32_t")) - goto clean; - ++ddata->cur; - break; - case 'n': - /* std::nullptr_t (i.e., decltype(nullptr)) */ - if (!DEM_PUSH_STR(ddata, "decltype(nullptr)")) - goto clean; - ++ddata->cur; - break; - case 's': - /* char16_t */ - if (!DEM_PUSH_STR(ddata, "char16_t")) - goto clean; - ++ddata->cur; - break; - case 'v': - /* gcc vector_size extension. */ - ++ddata->cur; - if (*ddata->cur == '_') { - ++ddata->cur; - if (!cpp_demangle_read_expression_flat(ddata, - &exp_str)) - goto clean; - if (!VEC_PUSH_STR(&v.ext_name, exp_str)) - goto clean; - } else { - if (!cpp_demangle_read_number_as_string(ddata, - &num_str)) - goto clean; - if (!VEC_PUSH_STR(&v.ext_name, num_str)) - goto clean; - } - if (*ddata->cur != '_') - goto clean; - ++ddata->cur; - if (!vector_type_qualifier_push(&v, TYPE_VEC)) - goto clean; - if (td) - td->firstp = false; - goto again; - default: - goto clean; - } - goto rtn; - - case 'e': - /* long double */ - if (!DEM_PUSH_STR(ddata, "long double")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'E': - /* unexpected end except ref-qualifiers */ - if (ddata->ref_qualifier && ddata->is_functype) { - skip_ref_qualifier = true; - /* Pop the delimiter. */ - cpp_demangle_pop_str(ddata); - goto rtn; - } - goto clean; - - case 'f': - /* float */ - if (!DEM_PUSH_STR(ddata, "float")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'F': - /* function */ - if (!cpp_demangle_read_function(ddata, &extern_c, &v)) - goto clean; - is_builtin = 0; - goto rtn; - - case 'g': - /* __float128 */ - if (!DEM_PUSH_STR(ddata, "__float128")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'G': - /* imaginary */ - if (!vector_type_qualifier_push(&v, TYPE_IMG)) - goto clean; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'h': - /* unsigned char */ - if (!DEM_PUSH_STR(ddata, "unsigned char")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'i': - /* int */ - if (!DEM_PUSH_STR(ddata, "int")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'I': - /* template args. */ - /* handles */ - p_idx = output->size; - if (!cpp_demangle_read_tmpl_args(ddata)) - goto clean; - if ((subst_str = vector_str_substr(output, p_idx, - output->size - 1, &subst_str_len)) == NULL) - goto clean; - if (!vector_str_init(&sv)) { - free(subst_str); - goto clean; - } - if (!vector_str_push(&sv, subst_str, subst_str_len)) { - free(subst_str); - vector_str_dest(&sv); - goto clean; - } - free(subst_str); - if (!cpp_demangle_push_subst_v(ddata, &sv)) { - vector_str_dest(&sv); - goto clean; - } - vector_str_dest(&sv); - goto rtn; - - case 'j': - /* unsigned int */ - if (!DEM_PUSH_STR(ddata, "unsigned int")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'K': - /* const */ - if (!vector_type_qualifier_push(&v, TYPE_CST)) - goto clean; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'l': - /* long */ - if (!DEM_PUSH_STR(ddata, "long")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'm': - /* unsigned long */ - if (!DEM_PUSH_STR(ddata, "unsigned long")) - goto clean; - - ++ddata->cur; - - goto rtn; - case 'M': - /* pointer to member */ - if (!cpp_demangle_read_pointer_to_member(ddata, &v)) - goto clean; - is_builtin = 0; - goto rtn; - - case 'n': - /* __int128 */ - if (!DEM_PUSH_STR(ddata, "__int128")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'o': - /* unsigned __int128 */ - if (!DEM_PUSH_STR(ddata, "unsigned __int128")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'O': - /* rvalue reference */ - if (ddata->ref_qualifier) - goto clean; - if (!vector_type_qualifier_push(&v, TYPE_RREF)) - goto clean; - ddata->ref_qualifier = true; - ddata->ref_qualifier_type = TYPE_RREF; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'P': - /* pointer */ - if (!vector_type_qualifier_push(&v, TYPE_PTR)) - goto clean; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'r': - /* restrict */ - if (!vector_type_qualifier_push(&v, TYPE_RST)) - goto clean; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'R': - /* reference */ - if (ddata->ref_qualifier) - goto clean; - if (!vector_type_qualifier_push(&v, TYPE_REF)) - goto clean; - ddata->ref_qualifier = true; - ddata->ref_qualifier_type = TYPE_REF; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 's': - /* short, local string */ - if (!DEM_PUSH_STR(ddata, "short")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'S': - /* substitution */ - if (!cpp_demangle_read_subst(ddata)) - goto clean; - is_builtin = 0; - goto rtn; - - case 't': - /* unsigned short */ - if (!DEM_PUSH_STR(ddata, "unsigned short")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'T': - /* template parameter */ - if (!cpp_demangle_read_tmpl_param(ddata)) - goto clean; - is_builtin = 0; - goto rtn; - - case 'u': - /* vendor extended builtin */ - ++ddata->cur; - if (!cpp_demangle_read_sname(ddata)) - goto clean; - is_builtin = 0; - goto rtn; - - case 'U': - /* vendor extended type qualifier */ - ++ddata->cur; - if (!cpp_demangle_read_number(ddata, &len)) - goto clean; - if (len <= 0) - goto clean; - if (!vector_str_push(&v.ext_name, ddata->cur, len)) - return (0); - ddata->cur += len; - if (!vector_type_qualifier_push(&v, TYPE_EXT)) - goto clean; - if (td) - td->firstp = false; - goto again; - - case 'v': - /* void */ - omit_void = false; - if (td && td->firstp) { - /* - * peek into next bytes and see if we should omit - * the "void". - */ - omit_void = true; - for (p = ddata->cur + 1; *p != '\0'; p++) { - if (*p == 'E') - break; - if (*p != 'R' && *p != 'O') { - omit_void = false; - break; - } - } - } - if (!omit_void && !DEM_PUSH_STR(ddata, "void")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'V': - /* volatile */ - if (!vector_type_qualifier_push(&v, TYPE_VAT)) - goto clean; - ++ddata->cur; - if (td) - td->firstp = false; - goto again; - - case 'w': - /* wchar_t */ - if (!DEM_PUSH_STR(ddata, "wchar_t")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'x': - /* long long */ - if (!DEM_PUSH_STR(ddata, "long long")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'y': - /* unsigned long long */ - if (!DEM_PUSH_STR(ddata, "unsigned long long")) - goto clean; - ++ddata->cur; - goto rtn; - - case 'z': - /* ellipsis */ - if (!DEM_PUSH_STR(ddata, "...")) - goto clean; - ++ddata->cur; - goto rtn; - } - - if (!cpp_demangle_read_name(ddata)) - goto clean; - - is_builtin = 0; -rtn: - - type_str = vector_str_substr(output, p_idx, output->size - 1, - &type_str_len); - - if (is_builtin == 0) { - if (!vector_str_find(&ddata->subst, type_str, type_str_len) && - !vector_str_push(&ddata->subst, type_str, type_str_len)) - goto clean; - } - - if (!skip_ref_qualifier && - !cpp_demangle_push_type_qualifier(ddata, &v, type_str)) - goto clean; - - if (td) - td->firstp = false; - - free(type_str); - free(exp_str); - free(num_str); - vector_type_qualifier_dest(&v); - - return (1); -clean: - free(type_str); - free(exp_str); - free(num_str); - vector_type_qualifier_dest(&v); - - return (0); -} - -static int -cpp_demangle_read_type_flat(struct cpp_demangle_data *ddata, char **str) -{ - struct vector_str *output; - size_t i, p_idx, idx, type_len; - char *type; - - output = ddata->cur_output; - - p_idx = output->size; - - if (!cpp_demangle_read_type(ddata, NULL)) - return (0); - - if ((type = vector_str_substr(output, p_idx, output->size - 1, - &type_len)) == NULL) - return (0); - - idx = output->size; - for (i = p_idx; i < idx; ++i) { - if (!vector_str_pop(output)) { - free(type); - return (0); - } - } - - *str = type; - - return (1); -} - -/* - * read unqualified-name, unqualified name are operator-name, ctor-dtor-name, - * source-name - */ -static int -cpp_demangle_read_uqname(struct cpp_demangle_data *ddata) -{ - size_t len; - - if (ddata == NULL || *ddata->cur == '\0') - return (0); - - /* operator name */ - switch (SIMPLE_HASH(*ddata->cur, *(ddata->cur + 1))) { - case SIMPLE_HASH('a', 'a'): - /* operator && */ - if (!DEM_PUSH_STR(ddata, "operator&&")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('a', 'd'): - /* operator & (unary) */ - if (!DEM_PUSH_STR(ddata, "operator&")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('a', 'n'): - /* operator & */ - if (!DEM_PUSH_STR(ddata, "operator&")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('a', 'N'): - /* operator &= */ - if (!DEM_PUSH_STR(ddata, "operator&=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('a', 'S'): - /* operator = */ - if (!DEM_PUSH_STR(ddata, "operator=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('c', 'l'): - /* operator () */ - if (!DEM_PUSH_STR(ddata, "operator()")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('c', 'm'): - /* operator , */ - if (!DEM_PUSH_STR(ddata, "operator,")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('c', 'o'): - /* operator ~ */ - if (!DEM_PUSH_STR(ddata, "operator~")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('c', 'v'): - /* operator (cast) */ - if (!DEM_PUSH_STR(ddata, "operator(cast)")) - return (0); - ddata->cur += 2; - return (cpp_demangle_read_type(ddata, NULL)); - - case SIMPLE_HASH('d', 'a'): - /* operator delete [] */ - if (!DEM_PUSH_STR(ddata, "operator delete []")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('d', 'e'): - /* operator * (unary) */ - if (!DEM_PUSH_STR(ddata, "operator*")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('d', 'l'): - /* operator delete */ - if (!DEM_PUSH_STR(ddata, "operator delete")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('d', 'v'): - /* operator / */ - if (!DEM_PUSH_STR(ddata, "operator/")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('d', 'V'): - /* operator /= */ - if (!DEM_PUSH_STR(ddata, "operator/=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('e', 'o'): - /* operator ^ */ - if (!DEM_PUSH_STR(ddata, "operator^")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('e', 'O'): - /* operator ^= */ - if (!DEM_PUSH_STR(ddata, "operator^=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('e', 'q'): - /* operator == */ - if (!DEM_PUSH_STR(ddata, "operator==")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('g', 'e'): - /* operator >= */ - if (!DEM_PUSH_STR(ddata, "operator>=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('g', 't'): - /* operator > */ - if (!DEM_PUSH_STR(ddata, "operator>")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('i', 'x'): - /* operator [] */ - if (!DEM_PUSH_STR(ddata, "operator[]")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('l', 'e'): - /* operator <= */ - if (!DEM_PUSH_STR(ddata, "operator<=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('l', 's'): - /* operator << */ - if (!DEM_PUSH_STR(ddata, "operator<<")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('l', 'S'): - /* operator <<= */ - if (!DEM_PUSH_STR(ddata, "operator<<=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('l', 't'): - /* operator < */ - if (!DEM_PUSH_STR(ddata, "operator<")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('m', 'i'): - /* operator - */ - if (!DEM_PUSH_STR(ddata, "operator-")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('m', 'I'): - /* operator -= */ - if (!DEM_PUSH_STR(ddata, "operator-=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('m', 'l'): - /* operator * */ - if (!DEM_PUSH_STR(ddata, "operator*")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('m', 'L'): - /* operator *= */ - if (!DEM_PUSH_STR(ddata, "operator*=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('m', 'm'): - /* operator -- */ - if (!DEM_PUSH_STR(ddata, "operator--")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('n', 'a'): - /* operator new[] */ - if (!DEM_PUSH_STR(ddata, "operator new []")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('n', 'e'): - /* operator != */ - if (!DEM_PUSH_STR(ddata, "operator!=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('n', 'g'): - /* operator - (unary) */ - if (!DEM_PUSH_STR(ddata, "operator-")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('n', 't'): - /* operator ! */ - if (!DEM_PUSH_STR(ddata, "operator!")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('n', 'w'): - /* operator new */ - if (!DEM_PUSH_STR(ddata, "operator new")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('o', 'o'): - /* operator || */ - if (!DEM_PUSH_STR(ddata, "operator||")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('o', 'r'): - /* operator | */ - if (!DEM_PUSH_STR(ddata, "operator|")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('o', 'R'): - /* operator |= */ - if (!DEM_PUSH_STR(ddata, "operator|=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('p', 'l'): - /* operator + */ - if (!DEM_PUSH_STR(ddata, "operator+")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('p', 'L'): - /* operator += */ - if (!DEM_PUSH_STR(ddata, "operator+=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('p', 'm'): - /* operator ->* */ - if (!DEM_PUSH_STR(ddata, "operator->*")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('p', 'p'): - /* operator ++ */ - if (!DEM_PUSH_STR(ddata, "operator++")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('p', 's'): - /* operator + (unary) */ - if (!DEM_PUSH_STR(ddata, "operator+")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('p', 't'): - /* operator -> */ - if (!DEM_PUSH_STR(ddata, "operator->")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('q', 'u'): - /* operator ? */ - if (!DEM_PUSH_STR(ddata, "operator?")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('r', 'm'): - /* operator % */ - if (!DEM_PUSH_STR(ddata, "operator%")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('r', 'M'): - /* operator %= */ - if (!DEM_PUSH_STR(ddata, "operator%=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('r', 's'): - /* operator >> */ - if (!DEM_PUSH_STR(ddata, "operator>>")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('r', 'S'): - /* operator >>= */ - if (!DEM_PUSH_STR(ddata, "operator>>=")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('r', 'z'): - /* operator sizeof */ - if (!DEM_PUSH_STR(ddata, "operator sizeof ")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('s', 'r'): - /* scope resolution operator */ - if (!DEM_PUSH_STR(ddata, "scope resolution operator ")) - return (0); - ddata->cur += 2; - return (1); - - case SIMPLE_HASH('s', 'v'): - /* operator sizeof */ - if (!DEM_PUSH_STR(ddata, "operator sizeof ")) - return (0); - ddata->cur += 2; - return (1); - } - - /* vendor extened operator */ - if (*ddata->cur == 'v' && ELFTC_ISDIGIT(*(ddata->cur + 1))) { - if (!DEM_PUSH_STR(ddata, "vendor extened operator ")) - return (0); - if (!cpp_demangle_push_str(ddata, ddata->cur + 1, 1)) - return (0); - ddata->cur += 2; - return (cpp_demangle_read_sname(ddata)); - } - - /* ctor-dtor-name */ - switch (SIMPLE_HASH(*ddata->cur, *(ddata->cur + 1))) { - case SIMPLE_HASH('C', '1'): - case SIMPLE_HASH('C', '2'): - case SIMPLE_HASH('C', '3'): - if (ddata->last_sname == NULL) - return (0); - if ((len = strlen(ddata->last_sname)) == 0) - return (0); - if (!DEM_PUSH_STR(ddata, "::")) - return (0); - if (!cpp_demangle_push_str(ddata, ddata->last_sname, len)) - return (0); - ddata->cur +=2; - return (1); - - case SIMPLE_HASH('D', '0'): - case SIMPLE_HASH('D', '1'): - case SIMPLE_HASH('D', '2'): - if (ddata->last_sname == NULL) - return (0); - if ((len = strlen(ddata->last_sname)) == 0) - return (0); - if (!DEM_PUSH_STR(ddata, "::~")) - return (0); - if (!cpp_demangle_push_str(ddata, ddata->last_sname, len)) - return (0); - ddata->cur +=2; - return (1); - } - - /* source name */ - if (ELFTC_ISDIGIT(*ddata->cur) != 0) - return (cpp_demangle_read_sname(ddata)); - - /* local source name */ - if (*ddata->cur == 'L') - return (cpp_demangle_local_source_name(ddata)); - - return (1); -} - -/* - * Read local source name. - * - * References: - * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31775 - * http://gcc.gnu.org/viewcvs?view=rev&revision=124467 - */ -static int -cpp_demangle_local_source_name(struct cpp_demangle_data *ddata) -{ - /* L */ - if (ddata == NULL || *ddata->cur != 'L') - return (0); - ++ddata->cur; - - /* source name */ - if (!cpp_demangle_read_sname(ddata)) - return (0); - - /* discriminator */ - if (*ddata->cur == '_') { - ++ddata->cur; - while (ELFTC_ISDIGIT(*ddata->cur) != 0) - ++ddata->cur; - } - - return (1); -} - -static int -cpp_demangle_read_v_offset(struct cpp_demangle_data *ddata) -{ - - if (ddata == NULL) - return (0); - - if (!DEM_PUSH_STR(ddata, "offset : ")) - return (0); - - if (!cpp_demangle_read_offset_number(ddata)) - return (0); - - if (!DEM_PUSH_STR(ddata, "virtual offset : ")) - return (0); - - return (!cpp_demangle_read_offset_number(ddata)); -} - -/* - * Decode floating point representation to string - * Return new allocated string or NULL - * - * Todo - * Replace these functions to macro. - */ -static char * -decode_fp_to_double(const char *p, size_t len) -{ - double f; - size_t rtn_len, limit, i; - int byte; - char *rtn; - - if (p == NULL || len == 0 || len % 2 != 0 || len / 2 > sizeof(double)) - return (NULL); - - memset(&f, 0, sizeof(double)); - - for (i = 0; i < len / 2; ++i) { - byte = hex_to_dec(p[len - i * 2 - 1]) + - hex_to_dec(p[len - i * 2 - 2]) * 16; - - if (byte < 0 || byte > 255) - return (NULL); - -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - ((unsigned char *)&f)[i] = (unsigned char)(byte); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - ((unsigned char *)&f)[sizeof(double) - i - 1] = - (unsigned char)(byte); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - } - - rtn_len = 64; - limit = 0; -again: - if ((rtn = malloc(sizeof(char) * rtn_len)) == NULL) - return (NULL); - - if (snprintf(rtn, rtn_len, "%fld", f) >= (int)rtn_len) { - free(rtn); - if (limit++ > FLOAT_SPRINTF_TRY_LIMIT) - return (NULL); - rtn_len *= BUFFER_GROWFACTOR; - goto again; - } - - return rtn; -} - -static char * -decode_fp_to_float(const char *p, size_t len) -{ - size_t i, rtn_len, limit; - float f; - int byte; - char *rtn; - - if (p == NULL || len == 0 || len % 2 != 0 || len / 2 > sizeof(float)) - return (NULL); - - memset(&f, 0, sizeof(float)); - - for (i = 0; i < len / 2; ++i) { - byte = hex_to_dec(p[len - i * 2 - 1]) + - hex_to_dec(p[len - i * 2 - 2]) * 16; - if (byte < 0 || byte > 255) - return (NULL); -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - ((unsigned char *)&f)[i] = (unsigned char)(byte); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - ((unsigned char *)&f)[sizeof(float) - i - 1] = - (unsigned char)(byte); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - } - - rtn_len = 64; - limit = 0; -again: - if ((rtn = malloc(sizeof(char) * rtn_len)) == NULL) - return (NULL); - - if (snprintf(rtn, rtn_len, "%ff", f) >= (int)rtn_len) { - free(rtn); - if (limit++ > FLOAT_SPRINTF_TRY_LIMIT) - return (NULL); - rtn_len *= BUFFER_GROWFACTOR; - goto again; - } - - return rtn; -} - -static char * -decode_fp_to_float128(const char *p, size_t len) -{ - long double f; - size_t rtn_len, limit, i; - int byte; - unsigned char buf[FLOAT_QUADRUPLE_BYTES]; - char *rtn; - - switch(sizeof(long double)) { - case FLOAT_QUADRUPLE_BYTES: - return (decode_fp_to_long_double(p, len)); - case FLOAT_EXTENED_BYTES: - if (p == NULL || len == 0 || len % 2 != 0 || - len / 2 > FLOAT_QUADRUPLE_BYTES) - return (NULL); - - memset(buf, 0, FLOAT_QUADRUPLE_BYTES); - - for (i = 0; i < len / 2; ++i) { - byte = hex_to_dec(p[len - i * 2 - 1]) + - hex_to_dec(p[len - i * 2 - 2]) * 16; - if (byte < 0 || byte > 255) - return (NULL); -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - buf[i] = (unsigned char)(byte); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - buf[FLOAT_QUADRUPLE_BYTES - i -1] = - (unsigned char)(byte); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - } - memset(&f, 0, FLOAT_EXTENED_BYTES); - -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - memcpy(&f, buf, FLOAT_EXTENED_BYTES); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - memcpy(&f, buf + 6, FLOAT_EXTENED_BYTES); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - - rtn_len = 256; - limit = 0; -again: - if ((rtn = malloc(sizeof(char) * rtn_len)) == NULL) - return (NULL); - - if (snprintf(rtn, rtn_len, "%Lfd", f) >= (int)rtn_len) { - free(rtn); - if (limit++ > FLOAT_SPRINTF_TRY_LIMIT) - return (NULL); - rtn_len *= BUFFER_GROWFACTOR; - goto again; - } - - return (rtn); - default: - return (NULL); - } -} - -static char * -decode_fp_to_float80(const char *p, size_t len) -{ - long double f; - size_t rtn_len, limit, i; - int byte; - unsigned char buf[FLOAT_EXTENED_BYTES]; - char *rtn; - - switch(sizeof(long double)) { - case FLOAT_QUADRUPLE_BYTES: - if (p == NULL || len == 0 || len % 2 != 0 || - len / 2 > FLOAT_EXTENED_BYTES) - return (NULL); - - memset(buf, 0, FLOAT_EXTENED_BYTES); - - for (i = 0; i < len / 2; ++i) { - byte = hex_to_dec(p[len - i * 2 - 1]) + - hex_to_dec(p[len - i * 2 - 2]) * 16; - - if (byte < 0 || byte > 255) - return (NULL); - -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - buf[i] = (unsigned char)(byte); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - buf[FLOAT_EXTENED_BYTES - i -1] = - (unsigned char)(byte); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - } - - memset(&f, 0, FLOAT_QUADRUPLE_BYTES); - -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - memcpy(&f, buf, FLOAT_EXTENED_BYTES); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - memcpy((unsigned char *)(&f) + 6, buf, FLOAT_EXTENED_BYTES); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - - rtn_len = 256; - limit = 0; -again: - if ((rtn = malloc(sizeof(char) * rtn_len)) == NULL) - return (NULL); - - if (snprintf(rtn, rtn_len, "%Lfd", f) >= (int)rtn_len) { - free(rtn); - if (limit++ > FLOAT_SPRINTF_TRY_LIMIT) - return (NULL); - rtn_len *= BUFFER_GROWFACTOR; - goto again; - } - - return (rtn); - case FLOAT_EXTENED_BYTES: - return (decode_fp_to_long_double(p, len)); - default: - return (NULL); - } -} - -static char * -decode_fp_to_long_double(const char *p, size_t len) -{ - long double f; - size_t rtn_len, limit, i; - int byte; - char *rtn; - - if (p == NULL || len == 0 || len % 2 != 0 || - len / 2 > sizeof(long double)) - return (NULL); - - memset(&f, 0, sizeof(long double)); - - for (i = 0; i < len / 2; ++i) { - byte = hex_to_dec(p[len - i * 2 - 1]) + - hex_to_dec(p[len - i * 2 - 2]) * 16; - - if (byte < 0 || byte > 255) - return (NULL); - -#if ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN - ((unsigned char *)&f)[i] = (unsigned char)(byte); -#else /* ELFTC_BYTE_ORDER != ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - ((unsigned char *)&f)[sizeof(long double) - i - 1] = - (unsigned char)(byte); -#endif /* ELFTC_BYTE_ORDER == ELFTC_BYTE_ORDER_LITTLE_ENDIAN */ - } - - rtn_len = 256; - limit = 0; -again: - if ((rtn = malloc(sizeof(char) * rtn_len)) == NULL) - return (NULL); - - if (snprintf(rtn, rtn_len, "%Lfd", f) >= (int)rtn_len) { - free(rtn); - if (limit++ > FLOAT_SPRINTF_TRY_LIMIT) - return (NULL); - rtn_len *= BUFFER_GROWFACTOR; - goto again; - } - - return (rtn); -} - -/* Simple hex to integer function used by decode_to_* function. */ -static int -hex_to_dec(char c) -{ - - switch (c) { - case '0': - return (0); - case '1': - return (1); - case '2': - return (2); - case '3': - return (3); - case '4': - return (4); - case '5': - return (5); - case '6': - return (6); - case '7': - return (7); - case '8': - return (8); - case '9': - return (9); - case 'a': - return (10); - case 'b': - return (11); - case 'c': - return (12); - case 'd': - return (13); - case 'e': - return (14); - case 'f': - return (15); - default: - return (-1); - } -} - -/** - * @brief Test input string is mangled by IA-64 C++ ABI style. - * - * Test string heads with "_Z" or "_GLOBAL__I_". - * @return Return 0 at false. - */ -bool -is_cpp_mangled_gnu3(const char *org) -{ - size_t len; - - len = strlen(org); - return ((len > 2 && *org == '_' && *(org + 1) == 'Z') || - (len > 11 && !strncmp(org, "_GLOBAL__I_", 11))); -} - -static void -vector_read_cmd_dest(struct vector_read_cmd *v) -{ - - if (v == NULL) - return; - - free(v->r_container); -} - -static struct read_cmd_item * -vector_read_cmd_find(struct vector_read_cmd *v, enum read_cmd dst) -{ - int i; - - if (v == NULL || dst == READ_FAIL) - return (NULL); - - for (i = (int) v->size - 1; i >= 0; i--) - if (v->r_container[i].cmd == dst) - return (&v->r_container[i]); - - return (NULL); -} - -static int -vector_read_cmd_init(struct vector_read_cmd *v) -{ - - if (v == NULL) - return (0); - - v->size = 0; - v->capacity = VECTOR_DEF_CAPACITY; - - if ((v->r_container = malloc(sizeof(*v->r_container) * v->capacity)) - == NULL) - return (0); - - return (1); -} - -static int -vector_read_cmd_pop(struct vector_read_cmd *v) -{ - - if (v == NULL || v->size == 0) - return (0); - - --v->size; - v->r_container[v->size].cmd = READ_FAIL; - v->r_container[v->size].data = NULL; - - return (1); -} - -static int -vector_read_cmd_push(struct vector_read_cmd *v, enum read_cmd cmd, void *data) -{ - struct read_cmd_item *tmp_r_ctn; - size_t tmp_cap; - size_t i; - - if (v == NULL) - return (0); - - if (v->size == v->capacity) { - tmp_cap = v->capacity * BUFFER_GROWFACTOR; - if ((tmp_r_ctn = malloc(sizeof(*tmp_r_ctn) * tmp_cap)) == NULL) - return (0); - for (i = 0; i < v->size; ++i) - tmp_r_ctn[i] = v->r_container[i]; - free(v->r_container); - v->r_container = tmp_r_ctn; - v->capacity = tmp_cap; - } - - v->r_container[v->size].cmd = cmd; - v->r_container[v->size].data = data; - ++v->size; - - return (1); -} - -static void -vector_type_qualifier_dest(struct vector_type_qualifier *v) -{ - - if (v == NULL) - return; - - free(v->q_container); - vector_str_dest(&v->ext_name); -} - -/* size, capacity, ext_name */ -static int -vector_type_qualifier_init(struct vector_type_qualifier *v) -{ - - if (v == NULL) - return (0); - - v->size = 0; - v->capacity = VECTOR_DEF_CAPACITY; - - if ((v->q_container = malloc(sizeof(enum type_qualifier) * v->capacity)) - == NULL) - return (0); - - assert(v->q_container != NULL); - - if (!vector_str_init(&v->ext_name)) { - free(v->q_container); - return (0); - } - - return (1); -} - -static int -vector_type_qualifier_push(struct vector_type_qualifier *v, - enum type_qualifier t) -{ - enum type_qualifier *tmp_ctn; - size_t tmp_cap; - size_t i; - - if (v == NULL) - return (0); - - if (v->size == v->capacity) { - tmp_cap = v->capacity * BUFFER_GROWFACTOR; - if ((tmp_ctn = malloc(sizeof(enum type_qualifier) * tmp_cap)) - == NULL) - return (0); - for (i = 0; i < v->size; ++i) - tmp_ctn[i] = v->q_container[i]; - free(v->q_container); - v->q_container = tmp_ctn; - v->capacity = tmp_cap; - } - - v->q_container[v->size] = t; - ++v->size; - - return (1); -} diff --git a/contrib/elftoolchain/libelftc/libelftc_hash.c b/contrib/elftoolchain/libelftc/libelftc_hash.c deleted file mode 100644 index 7c0647fb..00000000 --- a/contrib/elftoolchain/libelftc/libelftc_hash.c +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * Copyright (c) 2013, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * An implementation of the Fowler-Noll-Vo hash function. - * - * References: - * - http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function - * - http://www.isthe.com/chongo/tech/comp/fnv/ - */ - -#include - -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -/* - * Use the size of an 'int' to determine the magic numbers used by the - * hash function. - */ - -#if INT_MAX == 2147483647UL -#define FNV_PRIME 16777619UL -#define FNV_OFFSET 2166136261UL -#elif INT_MAX == 18446744073709551615ULL -#define FNV_PRIME 1099511628211ULL -#define FNV_OFFSET 14695981039346656037ULL -#else -#error sizeof(int) is unknown. -#endif - -unsigned int -libelftc_hash_string(const char *s) -{ - char c; - unsigned int hash; - - for (hash = FNV_OFFSET; (c = *s) != '\0'; s++) { - hash ^= c; - hash *= FNV_PRIME; - } - - return (hash); -} diff --git a/contrib/elftoolchain/libelftc/libelftc_vstr.c b/contrib/elftoolchain/libelftc/libelftc_vstr.c deleted file mode 100644 index 9175cbb3..00000000 --- a/contrib/elftoolchain/libelftc/libelftc_vstr.c +++ /dev/null @@ -1,359 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -#include "_libelftc.h" - -ELFTC_VCSID("$Id$"); - -/** - * @file vector_str.c - * @brief Dynamic vector data for string implementation. - * - * Resemble to std::vector in C++. - */ - -static size_t get_strlen_sum(const struct vector_str *v); -static bool vector_str_grow(struct vector_str *v); - -static size_t -get_strlen_sum(const struct vector_str *v) -{ - size_t i, len = 0; - - if (v == NULL) - return (0); - - assert(v->size > 0); - - for (i = 0; i < v->size; ++i) - len += strlen(v->container[i]); - - return (len); -} - -/** - * @brief Deallocate resource in vector_str. - */ -void -vector_str_dest(struct vector_str *v) -{ - size_t i; - - if (v == NULL) - return; - - for (i = 0; i < v->size; ++i) - free(v->container[i]); - - free(v->container); -} - -/** - * @brief Find string in vector_str. - * @param v Destination vector. - * @param o String to find. - * @param l Length of the string. - * @return -1 at failed, 0 at not found, 1 at found. - */ -int -vector_str_find(const struct vector_str *v, const char *o, size_t l) -{ - size_t i; - - if (v == NULL || o == NULL) - return (-1); - - for (i = 0; i < v->size; ++i) - if (strncmp(v->container[i], o, l) == 0) - return (1); - - return (0); -} - -/** - * @brief Get new allocated flat string from vector. - * - * If l is not NULL, return length of the string. - * @param v Destination vector. - * @param l Length of the string. - * @return NULL at failed or NUL terminated new allocated string. - */ -char * -vector_str_get_flat(const struct vector_str *v, size_t *l) -{ - ssize_t elem_pos, elem_size, rtn_size; - size_t i; - char *rtn; - - if (v == NULL || v->size == 0) - return (NULL); - - if ((rtn_size = get_strlen_sum(v)) == 0) - return (NULL); - - if ((rtn = malloc(sizeof(char) * (rtn_size + 1))) == NULL) - return (NULL); - - elem_pos = 0; - for (i = 0; i < v->size; ++i) { - elem_size = strlen(v->container[i]); - - memcpy(rtn + elem_pos, v->container[i], elem_size); - - elem_pos += elem_size; - } - - rtn[rtn_size] = '\0'; - - if (l != NULL) - *l = rtn_size; - - return (rtn); -} - -static bool -vector_str_grow(struct vector_str *v) -{ - size_t i, tmp_cap; - char **tmp_ctn; - - if (v == NULL) - return (false); - - assert(v->capacity > 0); - - tmp_cap = v->capacity * BUFFER_GROWFACTOR; - - assert(tmp_cap > v->capacity); - - if ((tmp_ctn = malloc(sizeof(char *) * tmp_cap)) == NULL) - return (false); - - for (i = 0; i < v->size; ++i) - tmp_ctn[i] = v->container[i]; - - free(v->container); - - v->container = tmp_ctn; - v->capacity = tmp_cap; - - return (true); -} - -/** - * @brief Initialize vector_str. - * @return false at failed, true at success. - */ -bool -vector_str_init(struct vector_str *v) -{ - - if (v == NULL) - return (false); - - v->size = 0; - v->capacity = VECTOR_DEF_CAPACITY; - - assert(v->capacity > 0); - - if ((v->container = malloc(sizeof(char *) * v->capacity)) == NULL) - return (false); - - assert(v->container != NULL); - - return (true); -} - -/** - * @brief Remove last element in vector_str. - * @return false at failed, true at success. - */ -bool -vector_str_pop(struct vector_str *v) -{ - - if (v == NULL) - return (false); - - if (v->size == 0) - return (true); - - --v->size; - - free(v->container[v->size]); - v->container[v->size] = NULL; - - return (true); -} - -/** - * @brief Push back string to vector. - * @return false at failed, true at success. - */ -bool -vector_str_push(struct vector_str *v, const char *str, size_t len) -{ - - if (v == NULL || str == NULL) - return (false); - - if (v->size == v->capacity && vector_str_grow(v) == false) - return (false); - - if ((v->container[v->size] = malloc(sizeof(char) * (len + 1))) == NULL) - return (false); - - snprintf(v->container[v->size], len + 1, "%s", str); - - ++v->size; - - return (true); -} - -/** - * @brief Push front org vector to det vector. - * @return false at failed, true at success. - */ -bool -vector_str_push_vector_head(struct vector_str *dst, struct vector_str *org) -{ - size_t i, j, tmp_cap; - char **tmp_ctn; - - if (dst == NULL || org == NULL) - return (false); - - tmp_cap = (dst->size + org->size) * BUFFER_GROWFACTOR; - - if ((tmp_ctn = malloc(sizeof(char *) * tmp_cap)) == NULL) - return (false); - - for (i = 0; i < org->size; ++i) - if ((tmp_ctn[i] = strdup(org->container[i])) == NULL) { - for (j = 0; j < i; ++j) - free(tmp_ctn[j]); - - free(tmp_ctn); - - return (false); - } - - for (i = 0; i < dst->size; ++i) - tmp_ctn[i + org->size] = dst->container[i]; - - free(dst->container); - - dst->container = tmp_ctn; - dst->capacity = tmp_cap; - dst->size += org->size; - - return (true); -} - -/** - * @brief Push org vector to the tail of det vector. - * @return false at failed, true at success. - */ -bool -vector_str_push_vector(struct vector_str *dst, struct vector_str *org) -{ - size_t i, j, tmp_cap; - char **tmp_ctn; - - if (dst == NULL || org == NULL) - return (false); - - tmp_cap = (dst->size + org->size) * BUFFER_GROWFACTOR; - - if ((tmp_ctn = malloc(sizeof(char *) * tmp_cap)) == NULL) - return (false); - - for (i = 0; i < dst->size; ++i) - tmp_ctn[i] = dst->container[i]; - - for (i = 0; i < org->size; ++i) - if ((tmp_ctn[i + dst->size] = strdup(org->container[i])) == - NULL) { - for (j = 0; j < i + dst->size; ++j) - free(tmp_ctn[j]); - - free(tmp_ctn); - - return (false); - } - - free(dst->container); - - dst->container = tmp_ctn; - dst->capacity = tmp_cap; - dst->size += org->size; - - return (true); -} - -/** - * @brief Get new allocated flat string from vector between begin and end. - * - * If r_len is not NULL, string length will be returned. - * @return NULL at failed or NUL terminated new allocated string. - */ -char * -vector_str_substr(const struct vector_str *v, size_t begin, size_t end, - size_t *r_len) -{ - size_t cur, i, len; - char *rtn; - - if (v == NULL || begin > end) - return (NULL); - - len = 0; - for (i = begin; i < end + 1; ++i) - len += strlen(v->container[i]); - - if ((rtn = malloc(sizeof(char) * (len + 1))) == NULL) - return (NULL); - - if (r_len != NULL) - *r_len = len; - - cur = 0; - for (i = begin; i < end + 1; ++i) { - len = strlen(v->container[i]); - memcpy(rtn + cur, v->container[i], len); - cur += len; - } - rtn[cur] = '\0'; - - return (rtn); -} diff --git a/contrib/elftoolchain/libelftc/make-toolchain-version b/contrib/elftoolchain/libelftc/make-toolchain-version deleted file mode 100755 index f58a47ad..00000000 --- a/contrib/elftoolchain/libelftc/make-toolchain-version +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh -# -# This script generates a project-wide version identifier for use by -# the `elftc_version()' API. -# -# $Id$ - -# -# Defaults. -# -buildhost=`uname -s` -elftcname="elftoolchain" -options="e:h:o:pr:t:" -top="" -version="HEAD" -versionfile="elftc_version.c" -progname=`basename ${0}` - -usage() -{ - exec >&2 - - # Print a message, if supplied. - if [ -n "${*}" ]; then echo "## ${@}"; fi - - echo "Usage: ${progname} -t TOPDIR [options]" - echo " Generate a toolchain-wide version number" - echo " -e PROJECTNAME Set the project name [default: ${elftcname}]." - echo " -h HOSTOS Set the build OS [default: ${buildhost}]." - echo " -o OUTPUT Set the output file [default: ${versionfile}]." - echo " -p Write a plain version string to output." - echo " -r VERSION Set the version string [default: ${version}]." - echo " -t TOPDIR Set the top-of-tree directory [required]." - exit 1 -} - -# Determine the revision number for the source tree. -# -# - If CVS is detected, we use the string `unknown'. -# - If SVN is detected, we use the `svninfo' tool to determine the -# in-tree revision number. -# - Otherwise, we use `git --describe'. -get_revision_string() -{ - v="unknown:unknown" - if [ -d CVS ]; then # Look for CVS (NetBSD). - v="cvs:unknown" - elif [ -d .svn ]; then # An SVN checkout (SourceForge or FreeBSD). - svnversion="$(svnversion 2>/dev/null)" - if [ -n "${svnversion}" ]; then - v="svn:${svnversion}" - fi - else # Try git (DragonflyBSD). - gitversion="$(git describe --all --dirty --long 2> /dev/null)" - if [ -n "${gitversion}" ]; then - v="git:${gitversion}" - fi - fi - - echo "${v}" -} - -# -# Parse options. -# - -while getopts ${options} option -do - case ${option} in - 'e') elftcname="${OPTARG}" ;; - 'h') buildhost="${OPTARG}" ;; - 'o') versionfile="${OPTARG}" ;; - 'r') version="${OPTARG}" ;; - 'p') plain_version_string=true ;; - 't') top="${OPTARG}" ;; - '?') usage ;; - esac -done - -[ -n "${top}" ] || usage "The -t flag was not specified." - -curdir=`pwd` -cd ${top} || usage "ERROR: Cannot change directory to \"${top}\"." - -# Determine the in-tree revision number. -versionstring="$(get_revision_string)" || { - echo "ERROR: cannot determine a revision number." 1>&2; - exit 1 -} - -toolchain_version="${elftcname} ${version} ${buildhost} ${versionstring}" - -cd ${curdir} || usage "Cannot change back to ${curdir}." - -# Create the file content. -tmpfile=`mktemp ${TMPDIR:-/tmp}/MV.XXXXXXX` -trap "rm -f ${tmpfile};" 0 1 2 3 15 - -if [ -n "${plain_version_string}" ]; then - echo ${toolchain_version} > ${tmpfile} -else - # Create a source file. - cat > ${tmpfile} < -#include - -const char * -elftc_version(void) -{ - return "${toolchain_version}"; -} -EOF -fi - -# Only replace the output file if its content changed. -if ! cmp -s ${tmpfile} ${versionfile}; then - echo "@ ${progname}: building \"${versionfile}\"." - cp ${tmpfile} ${versionfile} || exit ${?} -fi diff --git a/contrib/elftoolchain/libelftc/os.FreeBSD.mk b/contrib/elftoolchain/libelftc/os.FreeBSD.mk deleted file mode 100644 index 8079a5b4..00000000 --- a/contrib/elftoolchain/libelftc/os.FreeBSD.mk +++ /dev/null @@ -1,7 +0,0 @@ -# -# Building for a FreeBSD target. -# -# $Id: os.freebsd.mk 189 2008-07-20 10:38:08Z jkoshy $ - -# Symbol versioning support [FreeBSD 7.X and later] -VERSION_MAP= ${.CURDIR}/Version.map diff --git a/contrib/elftoolchain/libelftc/os.Linux.mk b/contrib/elftoolchain/libelftc/os.Linux.mk deleted file mode 100644 index 5d33b7ec..00000000 --- a/contrib/elftoolchain/libelftc/os.Linux.mk +++ /dev/null @@ -1,3 +0,0 @@ -# $Id$ - -CFLAGS+= -Wall -D_GNU_SOURCE diff --git a/contrib/elftoolchain/libelftc/os.NetBSD.mk b/contrib/elftoolchain/libelftc/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/libelftc/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/libpe/Makefile b/contrib/elftoolchain/libpe/Makefile deleted file mode 100644 index 226aabd0..00000000 --- a/contrib/elftoolchain/libpe/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -# $Id$ - -TOP= .. - -LIB= pe - -SRCS= libpe_buffer.c \ - libpe_coff.c \ - libpe_dos.c \ - libpe_init.c \ - libpe_rich.c \ - libpe_section.c \ - libpe_utils.c \ - pe_buffer.c \ - pe_cntl.c \ - pe_coff.c \ - pe_dos.c \ - pe_flag.c \ - pe_init.c \ - pe_rich.c \ - pe_section.c \ - pe_symtab.c \ - pe_update.c - -INCS= libpe.h pe.h -INCSDIR= /usr/include - -SHLIB_MAJOR= 1 - -WARNS?= 6 - -.include "${TOP}/mk/elftoolchain.lib.mk" diff --git a/contrib/elftoolchain/libpe/_libpe.h b/contrib/elftoolchain/libpe/_libpe.h deleted file mode 100644 index 6aa3cdcc..00000000 --- a/contrib/elftoolchain/libpe/_libpe.h +++ /dev/null @@ -1,213 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef __LIBPE_H_ -#define __LIBPE_H_ - -#include -#include - -#include "libpe.h" - -#include "_elftc.h" - -typedef struct _PE_SecBuf { - PE_Buffer sb_pb; /* application buffer */ - PE_Scn *sb_ps; /* PE_Scn pointer */ - unsigned int sb_flags; /* buffer flags */ - STAILQ_ENTRY(_PE_SecBuf) sb_next; -} PE_SecBuf; - -struct _PE_Scn { - PE *ps_pe; /* PE descriptor */ - PE_SecHdr ps_sh; /* section header */ - unsigned int ps_ndx; /* 1-based section index */ - unsigned int ps_flags; /* section flags */ - unsigned int ps_falign; /* section file alignment */ - STAILQ_HEAD(, _PE_SecBuf) ps_b; /* buffer list */ - STAILQ_ENTRY(_PE_Scn) ps_next; -}; - -struct _PE { - int pe_fd; /* file descriptor */ - PE_Cmd pe_cmd; /* open mode */ - PE_Object pe_obj; /* PE32/PE32+/COFF */ - size_t pe_fsize; /* file size */ - unsigned int pe_flags; /* library flags */ - PE_DosHdr *pe_dh; /* MS-DOS header */ - char *pe_stub; /* MS-DOS stub */ - size_t pe_stub_ex; /* MS-DOS stub len (exclude hdr) */ - char *pe_stub_app; /* MS-DOS stub (app supplied) */ - size_t pe_stub_app_sz; /* MS-DOS stub len (app supplied) */ - PE_RichHdr *pe_rh; /* rich header */ - char *pe_rh_start; /* pointer to rich header */ - PE_CoffHdr *pe_ch; /* COFF header */ - PE_OptHdr *pe_oh; /* optional header */ - PE_DataDir *pe_dd; /* data directories */ - unsigned int pe_nscn; /* num. of sections */ - char *pe_symtab; /* COFF symbol table */ - size_t pe_symbtab_sz; /* size of symbol table */ - unsigned int pe_nsym; /* num. of symbols */ - unsigned int pe_rvamax; /* maximum RVA */ - STAILQ_HEAD(, _PE_Scn) pe_scn; /* section list */ -}; - -/* Library internal flags */ -#define LIBPE_F_API_MASK 0x000FFFU -#define LIBPE_F_SPECIAL_FILE 0x001000U -#define LIBPE_F_BAD_DOS_HEADER 0x002000U -#define LIBPE_F_BAD_PE_HEADER 0x004000U -#define LIBPE_F_BAD_COFF_HEADER 0x008000U -#define LIBPE_F_BAD_OPT_HEADER 0x010000U -#define LIBPE_F_BAD_SEC_HEADER 0x020000U -#define LIBPE_F_LOAD_DOS_STUB 0x040000U -#define LIBPE_F_FD_DONE 0x080000U -#define LIBPE_F_DIRTY_DOS_HEADER 0x100000U -#define LIBPE_F_DIRTY_COFF_HEADER 0x200000U -#define LIBPE_F_DIRTY_OPT_HEADER 0x400000U -#define LIBPE_F_DIRTY_SEC_HEADER 0x800000U - -/* Internal section flags */ -#define LIBPE_F_LOAD_SECTION 0x1000U -#define LIBPE_F_STRIP_SECTION 0x2000U - -/* Internal buffer flags */ -#define LIBPE_F_BUFFER_MALLOCED 0x1000U - -/* Library internal defines */ -#define PE_DOS_MAGIC 0x5a4dU -#define PE_RICH_TEXT "Rich" -#define PE_RICH_HIDDEN 0x536e6144U /* DanS */ -#define PE_SIGNATURE 0x4550U /* PE\0\0 */ -#define PE_COFF_OPT_SIZE_32 224 -#define PE_COFF_OPT_SIZE_32P 240 -#define PE_SYM_ENTRY_SIZE 18 - -/* Encode/Decode macros */ -#if defined(ELFTC_NEED_BYTEORDER_EXTENSIONS) -static __inline uint16_t -le16dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return ((p[1] << 8) | p[0]); -} - -static __inline uint32_t -le32dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]); -} - -static __inline uint64_t -le64dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return (((uint64_t)le32dec(p + 4) << 32) | le32dec(p)); -} - -static __inline void -le16enc(void *pp, uint16_t u) -{ - unsigned char *p = (unsigned char *)pp; - - p[0] = u & 0xff; - p[1] = (u >> 8) & 0xff; -} - -static __inline void -le32enc(void *pp, uint32_t u) -{ - unsigned char *p = (unsigned char *)pp; - - p[0] = u & 0xff; - p[1] = (u >> 8) & 0xff; - p[2] = (u >> 16) & 0xff; - p[3] = (u >> 24) & 0xff; -} - -static __inline void -le64enc(void *pp, uint64_t u) -{ - unsigned char *p = (unsigned char *)pp; - - le32enc(p, (uint32_t)(u & 0xffffffffU)); - le32enc(p + 4, (uint32_t)(u >> 32)); -} -#endif /* ELFTC_NEED_BYTEORDER_EXTENSIONS */ - -#define PE_READ16(p,v) do { \ - (v) = le16dec((p)); \ - (p) += 2; \ -} while(0) - -#define PE_READ32(p,v) do { \ - (v) = le32dec((p)); \ - (p) += 4; \ -} while(0) - -#define PE_WRITE16(p,v) do { \ - le16enc((p), (v)); \ - (p) += 2; \ -} while(0) - -#define PE_WRITE32(p,v) do { \ - le32enc((p), (v)); \ - (p) += 4; \ -} while(0) - - -/* Internal function declarations */ -off_t libpe_align(PE *, off_t, size_t); -PE_SecBuf *libpe_alloc_buffer(PE_Scn *, size_t); -PE_Scn *libpe_alloc_scn(PE *); -int libpe_load_all_sections(PE *); -int libpe_load_section(PE *, PE_Scn *); -int libpe_open_object(PE *); -int libpe_pad(PE *, size_t); -int libpe_parse_msdos_header(PE *, char *); -int libpe_parse_coff_header(PE *, char *); -int libpe_parse_rich_header(PE *); -int libpe_parse_section_headers(PE *); -int libpe_read_msdos_stub(PE *); -void libpe_release_buffer(PE_SecBuf *); -void libpe_release_object(PE *); -void libpe_release_scn(PE_Scn *); -size_t libpe_resync_buffers(PE_Scn *); -int libpe_resync_sections(PE *, off_t); -int libpe_write_buffers(PE_Scn *); -off_t libpe_write_coff_header(PE *, off_t); -off_t libpe_write_msdos_stub(PE *, off_t); -off_t libpe_write_pe_header(PE *, off_t); -off_t libpe_write_sections(PE *, off_t); -off_t libpe_write_section_headers(PE *, off_t); - -#endif /* !__LIBPE_H_ */ diff --git a/contrib/elftoolchain/libpe/libpe.h b/contrib/elftoolchain/libpe/libpe.h deleted file mode 100644 index d78f47ee..00000000 --- a/contrib/elftoolchain/libpe/libpe.h +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _LIBPE_H_ -#define _LIBPE_H_ - -#include - -#include "pe.h" - -/* Library private data structures */ -typedef struct _PE PE; -typedef struct _PE_Scn PE_Scn; - -/* Section buffers */ -typedef struct PE_Buffer { - unsigned int pb_align; - off_t pb_off; - size_t pb_size; - void *pb_buf; -} PE_Buffer; - -/* Object types */ -typedef enum { - PE_O_UNKNOWN = 0, - PE_O_PE32, - PE_O_PE32P, - PE_O_COFF, -} PE_Object; - -/* Commands */ -typedef enum { - PE_C_NULL = 0, - PE_C_CLR, - PE_C_FDDONE, - PE_C_FDREAD, - PE_C_RDWR, - PE_C_READ, - PE_C_SET, - PE_C_WRITE, - PE_C_NUM -} PE_Cmd; - -/* Flags defined by the API. */ -#define PE_F_DIRTY 0x001U -#define PE_F_STRIP_DOS_STUB 0x002U -#define PE_F_STRIP_RICH_HEADER 0x004U -#define PE_F_STRIP_SYMTAB 0x008U -#define PE_F_STRIP_DEBUG 0x010U -#define PE_F_STRIP_SECTION 0x020U - -#ifdef __cplusplus -extern "C" { -#endif - -PE_CoffHdr *pe_coff_header(PE *); -int pe_cntl(PE *, PE_Cmd); -PE_DataDir *pe_data_dir(PE *); -void pe_finish(PE *); -int pe_flag(PE *, PE_Cmd, unsigned int); -int pe_flag_buffer(PE_Buffer *, PE_Cmd, unsigned int); -int pe_flag_coff_header(PE *, PE_Cmd, unsigned int); -int pe_flag_data_dir(PE *, PE_Cmd, unsigned int); -int pe_flag_dos_header(PE *, PE_Cmd, unsigned int); -int pe_flag_opt_header(PE *, PE_Cmd, unsigned int); -int pe_flag_section_header(PE_Scn *, PE_Cmd, unsigned int); -int pe_flag_scn(PE_Scn *, PE_Cmd, unsigned int); -PE_Buffer *pe_getbuffer(PE_Scn *, PE_Buffer *); -PE_Scn *pe_getscn(PE *, size_t); -PE *pe_init(int, PE_Cmd, PE_Object); -PE_Scn *pe_insertscn(PE *, size_t); -PE_DosHdr *pe_msdos_header(PE *); -char *pe_msdos_stub(PE *, size_t *); -size_t pe_ndxscn(PE_Scn *); -PE_Buffer *pe_newbuffer(PE_Scn *); -PE_Scn *pe_newscn(PE *); -PE_Scn *pe_nextscn(PE *, PE_Scn *); -PE_Object pe_object(PE *); -PE_OptHdr *pe_opt_header(PE *); -PE_RichHdr *pe_rich_header(PE *); -int pe_rich_header_validate(PE *); -PE_SecHdr *pe_section_header(PE_Scn *); -off_t pe_update(PE *); -int pe_update_coff_header(PE *, PE_CoffHdr *); -int pe_update_opt_header(PE *, PE_OptHdr *); -int pe_update_data_dir(PE *, PE_DataDir *); -int ps_update_msdos_header(PE *, PE_DosHdr *); -int ps_update_msdos_stub(PE *, char *, size_t); -int pe_update_section_header(PE_Scn *, PE_SecHdr *); -int pe_update_symtab(PE *, char *, size_t, unsigned int); - -#ifdef __cplusplus -} -#endif - -#endif /* !_LIBPE_H_ */ diff --git a/contrib/elftoolchain/libpe/libpe_buffer.c b/contrib/elftoolchain/libpe/libpe_buffer.c deleted file mode 100644 index 22ed5ea8..00000000 --- a/contrib/elftoolchain/libpe/libpe_buffer.c +++ /dev/null @@ -1,185 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_SecBuf * -libpe_alloc_buffer(PE_Scn *ps, size_t sz) -{ - PE_SecBuf *sb; - - if ((sb = malloc(sizeof(PE_SecBuf))) == NULL) { - errno = ENOMEM; - return (NULL); - } - - sb->sb_ps = ps; - sb->sb_flags = 0; - sb->sb_pb.pb_align = 1; - sb->sb_pb.pb_off = 0; - sb->sb_pb.pb_size = sz; - if (sz > 0) { - if ((sb->sb_pb.pb_buf = malloc(sz)) == NULL) { - free(sb); - errno = ENOMEM; - return (NULL); - } - sb->sb_flags |= LIBPE_F_BUFFER_MALLOCED; - } else - sb->sb_pb.pb_buf = NULL; - - STAILQ_INSERT_TAIL(&ps->ps_b, sb, sb_next); - - return (sb); -} - -void -libpe_release_buffer(PE_SecBuf *sb) -{ - PE_Scn *ps; - - assert(sb != NULL); - - ps = sb->sb_ps; - - STAILQ_REMOVE(&ps->ps_b, sb, _PE_SecBuf, sb_next); - - if (sb->sb_flags & LIBPE_F_BUFFER_MALLOCED) - free(sb->sb_pb.pb_buf); - - free(sb); -} - -static int -cmp_sb(PE_SecBuf *a, PE_SecBuf *b) -{ - - if (a->sb_pb.pb_off < b->sb_pb.pb_off) - return (-1); - else if (a->sb_pb.pb_off == b->sb_pb.pb_off) - return (0); - else - return (1); -} - -static void -sort_buffers(PE_Scn *ps) -{ - - if (STAILQ_EMPTY(&ps->ps_b)) - return; - - STAILQ_SORT(&ps->ps_b, _PE_SecBuf, sb_next, cmp_sb); -} - -size_t -libpe_resync_buffers(PE_Scn *ps) -{ - PE_SecBuf *sb; - PE_Buffer *pb; - size_t sz; - - assert(ps->ps_flags & LIBPE_F_LOAD_SECTION); - - sort_buffers(ps); - - sz = 0; - STAILQ_FOREACH(sb, &ps->ps_b, sb_next) { - if (ps->ps_flags & PE_F_DIRTY) - sb->sb_flags |= PE_F_DIRTY; - - pb = (PE_Buffer *) sb; - if (pb->pb_align > ps->ps_falign) - pb->pb_align = ps->ps_falign; - if (pb->pb_buf == NULL || pb->pb_size == 0) - continue; - - sz = roundup(sz, pb->pb_align); - - if (pb->pb_off != (off_t) sz) { - pb->pb_off = sz; - sb->sb_flags |= PE_F_DIRTY; - } - sz += pb->pb_size; - } - - return (sz); -} - -int -libpe_write_buffers(PE_Scn *ps) -{ - PE *pe; - PE_SecBuf *sb; - PE_Buffer *pb; - off_t off; - - assert(ps->ps_flags & LIBPE_F_LOAD_SECTION); - - pe = ps->ps_pe; - - off = 0; - STAILQ_FOREACH(sb, &ps->ps_b, sb_next) { - pb = &sb->sb_pb; - if (pb->pb_buf == NULL || pb->pb_size == 0) - continue; - - if ((sb->sb_flags & PE_F_DIRTY) == 0) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - if (lseek(pe->pe_fd, (off_t) pb->pb_size, SEEK_CUR) < - 0) { - errno = EIO; - return (-1); - } - goto next_buf; - } - - if (pb->pb_off > off) { - if (libpe_pad(pe, pb->pb_off - off) < 0) - return (-1); - off = pb->pb_off; - } - - if (write(pe->pe_fd, pb->pb_buf, pb->pb_size) != - (ssize_t) pb->pb_size) { - errno = EIO; - return (-1); - } - - next_buf: - off += pb->pb_size; - } - - return (0); -} diff --git a/contrib/elftoolchain/libpe/libpe_coff.c b/contrib/elftoolchain/libpe/libpe_coff.c deleted file mode 100644 index 1ef8491a..00000000 --- a/contrib/elftoolchain/libpe/libpe_coff.c +++ /dev/null @@ -1,535 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -int -libpe_parse_coff_header(PE *pe, char *hdr) -{ - char tmp[128]; - PE_CoffHdr *ch; - PE_OptHdr *oh; - PE_DataDir *dd; - unsigned p, r, s; - int i; - - if ((ch = malloc(sizeof(PE_CoffHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - - PE_READ16(hdr, ch->ch_machine); - PE_READ16(hdr, ch->ch_nsec); - PE_READ32(hdr, ch->ch_timestamp); - PE_READ32(hdr, ch->ch_symptr); - PE_READ32(hdr, ch->ch_nsym); - PE_READ16(hdr, ch->ch_optsize); - PE_READ16(hdr, ch->ch_char); - - pe->pe_ch = ch; - - /* - * The Optional header is omitted for object files. - */ - if (ch->ch_optsize == 0) - return (libpe_parse_section_headers(pe)); - - if ((oh = calloc(1, sizeof(PE_OptHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_oh = oh; - -#define READ_OPT(n) \ - do { \ - /* \ - * Since the Optional Header size is variable, we must \ - * check if the requested read size will overrun the \ - * remaining header bytes. \ - */ \ - if (p + (n) > ch->ch_optsize) { \ - /* Consume the "extra" bytes */ \ - r = ch->ch_optsize - p; \ - if (read(pe->pe_fd, tmp, r) != (ssize_t) r) { \ - pe->pe_flags |= LIBPE_F_BAD_SEC_HEADER;\ - return (0); \ - } \ - return (libpe_parse_section_headers(pe)); \ - } \ - if (read(pe->pe_fd, tmp, (n)) != (ssize_t) (n)) { \ - pe->pe_flags |= LIBPE_F_BAD_OPT_HEADER; \ - return (0); \ - } \ - p += (n); \ - } while (0) -#define READ_OPT8(v) do { READ_OPT(1); (v) = *tmp; } while(0) -#define READ_OPT16(v) do { READ_OPT(2); (v) = le16dec(tmp); } while(0) -#define READ_OPT32(v) do { READ_OPT(4); (v) = le32dec(tmp); } while(0) -#define READ_OPT64(v) do { READ_OPT(8); (v) = le64dec(tmp); } while(0) - - /* - * Read in the Optional header. Size of some fields are depending - * on the PE format specified by the oh_magic field. (PE32 or PE32+) - */ - - p = 0; - READ_OPT16(oh->oh_magic); - if (oh->oh_magic == PE_FORMAT_32P) - pe->pe_obj = PE_O_PE32P; - READ_OPT8(oh->oh_ldvermajor); - READ_OPT8(oh->oh_ldverminor); - READ_OPT32(oh->oh_textsize); - READ_OPT32(oh->oh_datasize); - READ_OPT32(oh->oh_bsssize); - READ_OPT32(oh->oh_entry); - READ_OPT32(oh->oh_textbase); - if (oh->oh_magic != PE_FORMAT_32P) { - READ_OPT32(oh->oh_database); - READ_OPT32(oh->oh_imgbase); - } else - READ_OPT64(oh->oh_imgbase); - READ_OPT32(oh->oh_secalign); - READ_OPT32(oh->oh_filealign); - READ_OPT16(oh->oh_osvermajor); - READ_OPT16(oh->oh_osverminor); - READ_OPT16(oh->oh_imgvermajor); - READ_OPT16(oh->oh_imgverminor); - READ_OPT16(oh->oh_subvermajor); - READ_OPT16(oh->oh_subverminor); - READ_OPT32(oh->oh_win32ver); - READ_OPT32(oh->oh_imgsize); - READ_OPT32(oh->oh_hdrsize); - READ_OPT32(oh->oh_checksum); - READ_OPT16(oh->oh_subsystem); - READ_OPT16(oh->oh_dllchar); - if (oh->oh_magic != PE_FORMAT_32P) { - READ_OPT32(oh->oh_stacksizer); - READ_OPT32(oh->oh_stacksizec); - READ_OPT32(oh->oh_heapsizer); - READ_OPT32(oh->oh_heapsizec); - } else { - READ_OPT64(oh->oh_stacksizer); - READ_OPT64(oh->oh_stacksizec); - READ_OPT64(oh->oh_heapsizer); - READ_OPT64(oh->oh_heapsizec); - } - READ_OPT32(oh->oh_ldrflags); - READ_OPT32(oh->oh_ndatadir); - - /* - * Read in the Data Directories. - */ - - if (oh->oh_ndatadir > 0) { - if ((dd = calloc(1, sizeof(PE_DataDir))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_dd = dd; - - dd->dd_total = oh->oh_ndatadir < PE_DD_MAX ? oh->oh_ndatadir : - PE_DD_MAX; - - for (i = 0; (uint32_t) i < dd->dd_total; i++) { - READ_OPT32(dd->dd_e[i].de_addr); - READ_OPT32(dd->dd_e[i].de_size); - } - } - - /* Consume the remaining bytes in the Optional header, if any. */ - if (ch->ch_optsize > p) { - r = ch->ch_optsize - p; - for (; r > 0; r -= s) { - s = r > sizeof(tmp) ? sizeof(tmp) : r; - if (read(pe->pe_fd, tmp, s) != (ssize_t) s) { - pe->pe_flags |= LIBPE_F_BAD_SEC_HEADER; - return (0); - } - } - } - - return (libpe_parse_section_headers(pe)); -} - -off_t -libpe_write_pe_header(PE *pe, off_t off) -{ - char tmp[4]; - - if (pe->pe_cmd == PE_C_RDWR && - (pe->pe_flags & LIBPE_F_BAD_PE_HEADER) == 0) { - assert(pe->pe_dh != NULL); - off = lseek(pe->pe_fd, (off_t) pe->pe_dh->dh_lfanew + 4, - SEEK_SET); - return (off); - } - - /* - * PE Header should to be aligned on 8-byte boundary according to - * the PE/COFF specification. - */ - if ((off = libpe_align(pe, off, 8)) < 0) - return (-1); - - le32enc(tmp, PE_SIGNATURE); - if (write(pe->pe_fd, tmp, sizeof(tmp)) != (ssize_t) sizeof(tmp)) { - errno = EIO; - return (-1); - } - - off += 4; - - pe->pe_flags &= ~LIBPE_F_BAD_PE_HEADER; - - /* Trigger rewrite for the following headers. */ - pe->pe_flags |= LIBPE_F_DIRTY_COFF_HEADER; - pe->pe_flags |= LIBPE_F_DIRTY_OPT_HEADER; - - return (off); -} - -off_t -libpe_write_coff_header(PE *pe, off_t off) -{ - char tmp[128], *hdr; - PE_CoffHdr *ch; - PE_DataDir *dd; - PE_OptHdr *oh; - PE_Scn *ps; - PE_SecHdr *sh; - unsigned p; - uint32_t reloc_rva, reloc_sz; - int i, reloc; - - reloc = 0; - reloc_rva = reloc_sz = 0; - - if (pe->pe_cmd == PE_C_RDWR) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - - if ((pe->pe_flags & LIBPE_F_DIRTY_COFF_HEADER) == 0 && - (pe->pe_flags & LIBPE_F_BAD_COFF_HEADER) == 0) { - if (lseek(pe->pe_fd, (off_t) sizeof(PE_CoffHdr), - SEEK_CUR) < 0) { - errno = EIO; - return (-1); - } - off += sizeof(PE_CoffHdr); - assert(pe->pe_ch != NULL); - ch = pe->pe_ch; - goto coff_done; - } - - /* lseek(2) to the offset of the COFF header. */ - if (lseek(pe->pe_fd, off, SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - } - - if (pe->pe_ch == NULL) { - if ((ch = calloc(1, sizeof(PE_CoffHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_ch = ch; - - /* - * Default value for ch_machine if not provided by the - * application. - */ - if (pe->pe_obj == PE_O_PE32P) - ch->ch_machine = IMAGE_FILE_MACHINE_AMD64; - else - ch->ch_machine = IMAGE_FILE_MACHINE_I386; - - } else - ch = pe->pe_ch; - - if (!ch->ch_timestamp) - ch->ch_timestamp = time(NULL); - - if (pe->pe_obj == PE_O_PE32) { - if (!ch->ch_optsize) - ch->ch_optsize = PE_COFF_OPT_SIZE_32; - ch->ch_char |= IMAGE_FILE_EXECUTABLE_IMAGE | - IMAGE_FILE_32BIT_MACHINE; - } else if (pe->pe_obj == PE_O_PE32P) { - if (!ch->ch_optsize) - ch->ch_optsize = PE_COFF_OPT_SIZE_32P; - ch->ch_char |= IMAGE_FILE_EXECUTABLE_IMAGE | - IMAGE_FILE_LARGE_ADDRESS_AWARE; - } else - ch->ch_optsize = 0; - - /* - * COFF line number is deprecated by the PE/COFF - * specification. COFF symbol table is deprecated - * for executables. - */ - ch->ch_char |= IMAGE_FILE_LINE_NUMS_STRIPPED; - if (pe->pe_obj == PE_O_PE32 || pe->pe_obj == PE_O_PE32P) - ch->ch_char |= IMAGE_FILE_LOCAL_SYMS_STRIPPED; - - ch->ch_nsec = pe->pe_nscn; - - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - sh = &ps->ps_sh; - - if (ps->ps_ndx == 0xFFFFFFFFU) { - ch->ch_symptr = sh->sh_rawptr; - ch->ch_nsym = pe->pe_nsym; - } - - if (pe->pe_obj == PE_O_PE32 || pe->pe_obj == PE_O_PE32P) { - if (ps->ps_ndx == (0xFFFF0000 | PE_DD_BASERELOC) || - strncmp(sh->sh_name, ".reloc", strlen(".reloc")) == - 0) { - reloc = 1; - reloc_rva = sh->sh_addr; - reloc_sz = sh->sh_virtsize; - } - } - } - - if (!reloc) - ch->ch_char |= IMAGE_FILE_RELOCS_STRIPPED; - - if (pe->pe_flags & LIBPE_F_BAD_OPT_HEADER) { - if (pe->pe_obj == PE_O_PE32) - ch->ch_optsize = PE_COFF_OPT_SIZE_32; - else if (pe->pe_obj == PE_O_PE32P) - ch->ch_optsize = PE_COFF_OPT_SIZE_32P; - else - ch->ch_optsize = 0; - } - - /* - * Write the COFF header. - */ - hdr = tmp; - PE_WRITE16(hdr, ch->ch_machine); - PE_WRITE16(hdr, ch->ch_nsec); - PE_WRITE32(hdr, ch->ch_timestamp); - PE_WRITE32(hdr, ch->ch_symptr); - PE_WRITE32(hdr, ch->ch_nsym); - PE_WRITE16(hdr, ch->ch_optsize); - PE_WRITE16(hdr, ch->ch_char); - if (write(pe->pe_fd, tmp, sizeof(PE_CoffHdr)) != - (ssize_t) sizeof(PE_CoffHdr)) { - errno = EIO; - return (-1); - } - -coff_done: - off += sizeof(PE_CoffHdr); - pe->pe_flags &= ~LIBPE_F_DIRTY_COFF_HEADER; - pe->pe_flags &= ~LIBPE_F_BAD_COFF_HEADER; - pe->pe_flags |= LIBPE_F_DIRTY_SEC_HEADER; - - if (ch->ch_optsize == 0) - return (off); - - /* - * Write the Optional header. - */ - - if (pe->pe_cmd == PE_C_RDWR) { - if ((pe->pe_flags & LIBPE_F_DIRTY_OPT_HEADER) == 0 && - (pe->pe_flags & LIBPE_F_BAD_OPT_HEADER) == 0) { - if (lseek(pe->pe_fd, (off_t) ch->ch_optsize, - SEEK_CUR) < 0) { - errno = EIO; - return (-1); - } - off += ch->ch_optsize; - return (off); - } - - } - - if (pe->pe_oh == NULL) { - if ((oh = calloc(1, sizeof(PE_OptHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_oh = oh; - } else - oh = pe->pe_oh; - - if (pe->pe_obj == PE_O_PE32) - oh->oh_magic = PE_FORMAT_32; - else - oh->oh_magic = PE_FORMAT_32P; - - /* - * LinkerVersion should not be less than 2.5, which will cause - * Windows to complain the executable is invalid in some case. - * By default we set LinkerVersion to 2.22 (binutils 2.22) - */ - if (!oh->oh_ldvermajor && !oh->oh_ldverminor) { - oh->oh_ldvermajor = 2; - oh->oh_ldverminor = 22; - } - - /* - * The library always tries to write out all 16 data directories - * but the actual data dir written will depend on ch_optsize. - */ - oh->oh_ndatadir = PE_DD_MAX; - - if (!oh->oh_filealign) - oh->oh_filealign = 0x200; - if (!oh->oh_secalign) - oh->oh_secalign = 0x1000; - oh->oh_hdrsize = roundup(off + ch->ch_optsize + pe->pe_nscn * - sizeof(PE_SecHdr), oh->oh_filealign); - oh->oh_imgsize = roundup(pe->pe_rvamax, oh->oh_secalign); - -#define WRITE_OPT(n) \ - do { \ - /* \ - * Since the Optional Header size is variable, we must \ - * check if the requested write size will overrun the \ - * remaining header bytes. \ - */ \ - if (p + (n) > ch->ch_optsize) { \ - /* Pad the "extra" bytes */ \ - if (libpe_pad(pe, ch->ch_optsize - p) < 0) { \ - errno = EIO; \ - return (-1); \ - } \ - goto opt_done; \ - } \ - if (write(pe->pe_fd, tmp, (n)) != (ssize_t) (n)) { \ - errno = EIO; \ - return (-1); \ - } \ - p += (n); \ - } while (0) -#define WRITE_OPT8(v) do { *tmp = (v); WRITE_OPT(1); } while(0) -#define WRITE_OPT16(v) do { le16enc(tmp, (v)); WRITE_OPT(2); } while(0) -#define WRITE_OPT32(v) do { le32enc(tmp, (v)); WRITE_OPT(4); } while(0) -#define WRITE_OPT64(v) do { le64enc(tmp, (v)); WRITE_OPT(8); } while(0) - - p = 0; - WRITE_OPT16(oh->oh_magic); - if (oh->oh_magic == PE_FORMAT_32P) - pe->pe_obj = PE_O_PE32P; - WRITE_OPT8(oh->oh_ldvermajor); - WRITE_OPT8(oh->oh_ldverminor); - WRITE_OPT32(oh->oh_textsize); - WRITE_OPT32(oh->oh_datasize); - WRITE_OPT32(oh->oh_bsssize); - WRITE_OPT32(oh->oh_entry); - WRITE_OPT32(oh->oh_textbase); - if (oh->oh_magic != PE_FORMAT_32P) { - WRITE_OPT32(oh->oh_database); - WRITE_OPT32(oh->oh_imgbase); - } else - WRITE_OPT64(oh->oh_imgbase); - WRITE_OPT32(oh->oh_secalign); - WRITE_OPT32(oh->oh_filealign); - WRITE_OPT16(oh->oh_osvermajor); - WRITE_OPT16(oh->oh_osverminor); - WRITE_OPT16(oh->oh_imgvermajor); - WRITE_OPT16(oh->oh_imgverminor); - WRITE_OPT16(oh->oh_subvermajor); - WRITE_OPT16(oh->oh_subverminor); - WRITE_OPT32(oh->oh_win32ver); - WRITE_OPT32(oh->oh_imgsize); - WRITE_OPT32(oh->oh_hdrsize); - WRITE_OPT32(oh->oh_checksum); - WRITE_OPT16(oh->oh_subsystem); - WRITE_OPT16(oh->oh_dllchar); - if (oh->oh_magic != PE_FORMAT_32P) { - WRITE_OPT32(oh->oh_stacksizer); - WRITE_OPT32(oh->oh_stacksizec); - WRITE_OPT32(oh->oh_heapsizer); - WRITE_OPT32(oh->oh_heapsizec); - } else { - WRITE_OPT64(oh->oh_stacksizer); - WRITE_OPT64(oh->oh_stacksizec); - WRITE_OPT64(oh->oh_heapsizer); - WRITE_OPT64(oh->oh_heapsizec); - } - WRITE_OPT32(oh->oh_ldrflags); - WRITE_OPT32(oh->oh_ndatadir); - - /* - * Write the Data Directories. - */ - - if (oh->oh_ndatadir > 0) { - if (pe->pe_dd == NULL) { - if ((dd = calloc(1, sizeof(PE_DataDir))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_dd = dd; - dd->dd_total = PE_DD_MAX; - } else - dd = pe->pe_dd; - - assert(oh->oh_ndatadir <= PE_DD_MAX); - - if (reloc) { - dd->dd_e[PE_DD_BASERELOC].de_addr = reloc_rva; - dd->dd_e[PE_DD_BASERELOC].de_size = reloc_sz; - } - - for (i = 0; (uint32_t) i < dd->dd_total; i++) { - WRITE_OPT32(dd->dd_e[i].de_addr); - WRITE_OPT32(dd->dd_e[i].de_size); - } - } - - /* Pad the remaining bytes in the Optional header, if any. */ - if (ch->ch_optsize > p) { - if (libpe_pad(pe, ch->ch_optsize - p) < 0) { - errno = EIO; - return (-1); - } - } - -opt_done: - off += ch->ch_optsize; - pe->pe_flags &= ~LIBPE_F_DIRTY_OPT_HEADER; - pe->pe_flags &= ~LIBPE_F_BAD_OPT_HEADER; - pe->pe_flags |= LIBPE_F_DIRTY_SEC_HEADER; - - return (off); -} diff --git a/contrib/elftoolchain/libpe/libpe_dos.c b/contrib/elftoolchain/libpe/libpe_dos.c deleted file mode 100644 index 5f4c2cce..00000000 --- a/contrib/elftoolchain/libpe/libpe_dos.c +++ /dev/null @@ -1,403 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -int -libpe_parse_msdos_header(PE *pe, char *hdr) -{ - PE_DosHdr *dh; - char coff[sizeof(PE_CoffHdr)]; - uint32_t pe_magic; - int i; - - if ((pe->pe_stub = malloc(sizeof(PE_DosHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - memcpy(pe->pe_stub, hdr, sizeof(PE_DosHdr)); - - if ((dh = malloc(sizeof(*dh))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_dh = dh; - - /* Read the conventional MS-DOS EXE header. */ - memcpy(dh->dh_magic, hdr, 2); - hdr += 2; - PE_READ16(hdr, dh->dh_lastsize); - PE_READ16(hdr, dh->dh_nblock); - PE_READ16(hdr, dh->dh_nreloc); - PE_READ16(hdr, dh->dh_hdrsize); - PE_READ16(hdr, dh->dh_minalloc); - PE_READ16(hdr, dh->dh_maxalloc); - PE_READ16(hdr, dh->dh_ss); - PE_READ16(hdr, dh->dh_sp); - PE_READ16(hdr, dh->dh_checksum); - PE_READ16(hdr, dh->dh_ip); - PE_READ16(hdr, dh->dh_cs); - PE_READ16(hdr, dh->dh_relocpos); - PE_READ16(hdr, dh->dh_noverlay); - - /* Do not continue if the EXE is not a PE/NE/... (new executable) */ - if (dh->dh_relocpos != 0x40) { - pe->pe_flags |= LIBPE_F_BAD_DOS_HEADER; - return (0); - } - - for (i = 0; i < 4; i++) - PE_READ16(hdr, dh->dh_reserved1[i]); - PE_READ16(hdr, dh->dh_oemid); - PE_READ16(hdr, dh->dh_oeminfo); - for (i = 0; i < 10; i++) - PE_READ16(hdr, dh->dh_reserved2[i]); - PE_READ32(hdr, dh->dh_lfanew); - - /* Check if the e_lfanew pointer is valid. */ - if (dh->dh_lfanew > pe->pe_fsize - 4) { - pe->pe_flags |= LIBPE_F_BAD_DOS_HEADER; - return (0); - } - - if (dh->dh_lfanew < sizeof(PE_DosHdr) && - (pe->pe_flags & LIBPE_F_SPECIAL_FILE)) { - pe->pe_flags |= LIBPE_F_BAD_DOS_HEADER; - return (0); - } - - if (dh->dh_lfanew > sizeof(PE_DosHdr)) { - pe->pe_stub_ex = dh->dh_lfanew - sizeof(PE_DosHdr); - if (pe->pe_flags & LIBPE_F_SPECIAL_FILE) { - /* Read in DOS stub now. */ - if (libpe_read_msdos_stub(pe) < 0) { - pe->pe_flags |= LIBPE_F_BAD_DOS_HEADER; - return (0); - } - } - } - - if ((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0) { - /* Jump to the PE header. */ - if (lseek(pe->pe_fd, (off_t) dh->dh_lfanew, SEEK_SET) < 0) { - pe->pe_flags |= LIBPE_F_BAD_PE_HEADER; - return (0); - } - } - - if (read(pe->pe_fd, &pe_magic, 4) != 4 || - htole32(pe_magic) != PE_SIGNATURE) { - pe->pe_flags |= LIBPE_F_BAD_PE_HEADER; - return (0); - } - - if (read(pe->pe_fd, coff, sizeof(coff)) != (ssize_t) sizeof(coff)) { - pe->pe_flags |= LIBPE_F_BAD_COFF_HEADER; - return (0); - } - - return (libpe_parse_coff_header(pe, coff)); -} - -int -libpe_read_msdos_stub(PE *pe) -{ - void *m; - - assert(pe->pe_stub_ex > 0 && - (pe->pe_flags & LIBPE_F_LOAD_DOS_STUB) == 0); - - if ((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0) { - if (lseek(pe->pe_fd, (off_t) sizeof(PE_DosHdr), SEEK_SET) < - 0) { - errno = EIO; - goto fail; - } - } - - if ((m = realloc(pe->pe_stub, sizeof(PE_DosHdr) + pe->pe_stub_ex)) == - NULL) { - errno = ENOMEM; - goto fail; - } - pe->pe_stub = m; - - if (read(pe->pe_fd, pe->pe_stub + sizeof(PE_DosHdr), pe->pe_stub_ex) != - (ssize_t) pe->pe_stub_ex) { - errno = EIO; - goto fail; - } - - pe->pe_flags |= LIBPE_F_LOAD_DOS_STUB; - - /* Search for the Rich header embedded just before the PE header. */ - (void) libpe_parse_rich_header(pe); - - return (0); - -fail: - pe->pe_stub_ex = 0; - - return (-1); -} - -/* - * The "standard" MS-DOS stub displaying "This program cannot be run in - * DOS mode". - */ -static const char msdos_stub[] = { - '\x0e','\x1f','\xba','\x0e','\x00','\xb4','\x09','\xcd', - '\x21','\xb8','\x01','\x4c','\xcd','\x21','\x54','\x68', - '\x69','\x73','\x20','\x70','\x72','\x6f','\x67','\x72', - '\x61','\x6d','\x20','\x63','\x61','\x6e','\x6e','\x6f', - '\x74','\x20','\x62','\x65','\x20','\x72','\x75','\x6e', - '\x20','\x69','\x6e','\x20','\x44','\x4f','\x53','\x20', - '\x6d','\x6f','\x64','\x65','\x2e','\x0d','\x0d','\x0a', - '\x24','\x00','\x00','\x00','\x00','\x00','\x00','\x00', -}; - -static void -init_dos_header(PE_DosHdr *dh) -{ - - dh->dh_magic[0] = 'M'; - dh->dh_magic[1] = 'Z'; - dh->dh_lastsize = 144; - dh->dh_nblock = 3; - dh->dh_hdrsize = 4; - dh->dh_maxalloc = 65535; - dh->dh_sp = 184; - dh->dh_relocpos = 0x40; - dh->dh_lfanew = 0x80; -} - -off_t -libpe_write_msdos_stub(PE *pe, off_t off) -{ - PE_DosHdr *dh; - char tmp[sizeof(PE_DosHdr)], *hdr; - off_t d; - int i, strip_rich; - - strip_rich = 0; - - if (pe->pe_cmd == PE_C_RDWR) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - - if (pe->pe_dh != NULL && - (pe->pe_flags & PE_F_STRIP_DOS_STUB)) { - /* - * If we strip MS-DOS stub, everything after it - * needs rewritten. - */ - pe->pe_flags |= LIBPE_F_BAD_PE_HEADER; - goto done; - } - - /* - * lseek(2) to the PE signature if MS-DOS stub is not - * modified. - */ - if (pe->pe_dh != NULL && - (pe->pe_flags & LIBPE_F_DIRTY_DOS_HEADER) == 0 && - (pe->pe_flags & LIBPE_F_BAD_DOS_HEADER) == 0 && - (pe->pe_flags & PE_F_STRIP_RICH_HEADER) == 0) { - if (lseek(pe->pe_fd, - (off_t) (sizeof(PE_DosHdr) + pe->pe_stub_ex), - SEEK_CUR) < 0) { - errno = EIO; - return (-1); - } - off = sizeof(PE_DosHdr) + pe->pe_stub_ex; - goto done; - } - - /* Check if we should strip the Rich header. */ - if (pe->pe_dh != NULL && pe->pe_stub_app == NULL && - (pe->pe_flags & LIBPE_F_BAD_DOS_HEADER) == 0 && - (pe->pe_flags & PE_F_STRIP_RICH_HEADER)) { - if ((pe->pe_flags & LIBPE_F_LOAD_DOS_STUB) == 0) { - (void) libpe_read_msdos_stub(pe); - if (lseek(pe->pe_fd, off, SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - } - if (pe->pe_rh != NULL) { - strip_rich = 1; - pe->pe_flags |= LIBPE_F_DIRTY_DOS_HEADER; - } - } - - /* - * If length of MS-DOS stub will change, Mark the PE - * signature is broken so that the PE signature and the - * headers follow it will be rewritten. - * - * The sections should be loaded now since the stub might - * overwrite the section data. - */ - if ((pe->pe_flags & LIBPE_F_BAD_DOS_HEADER) || - (pe->pe_stub_app != NULL && pe->pe_stub_app_sz != - sizeof(PE_DosHdr) + pe->pe_stub_ex) || strip_rich) { - if (libpe_load_all_sections(pe) < 0) - return (-1); - if (lseek(pe->pe_fd, off, SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - pe->pe_flags |= LIBPE_F_BAD_PE_HEADER; - } - } - - if (pe->pe_flags & PE_F_STRIP_DOS_STUB) - goto done; - - /* Always use application supplied MS-DOS stub, if exists. */ - if (pe->pe_stub_app != NULL && pe->pe_stub_app_sz > 0) { - if (write(pe->pe_fd, pe->pe_stub_app, pe->pe_stub_app_sz) != - (ssize_t) pe->pe_stub_app_sz) { - errno = EIO; - return (-1); - } - off = pe->pe_stub_app_sz; - goto done; - } - - /* - * Write MS-DOS header. - */ - - if (pe->pe_dh == NULL) { - if ((dh = calloc(1, sizeof(PE_DosHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - pe->pe_dh = dh; - - init_dos_header(dh); - - pe->pe_flags |= LIBPE_F_DIRTY_DOS_HEADER; - } else - dh = pe->pe_dh; - - if (pe->pe_flags & LIBPE_F_BAD_DOS_HEADER) - init_dos_header(dh); - - if (strip_rich) { - d = pe->pe_rh_start - pe->pe_stub; - dh->dh_lfanew = roundup(d, 8); - } - - if ((pe->pe_flags & LIBPE_F_DIRTY_DOS_HEADER) || - (pe->pe_flags & LIBPE_F_BAD_DOS_HEADER)) { - memcpy(tmp, dh->dh_magic, 2); - hdr = tmp + 2; - PE_WRITE16(hdr, dh->dh_lastsize); - PE_WRITE16(hdr, dh->dh_nblock); - PE_WRITE16(hdr, dh->dh_nreloc); - PE_WRITE16(hdr, dh->dh_hdrsize); - PE_WRITE16(hdr, dh->dh_minalloc); - PE_WRITE16(hdr, dh->dh_maxalloc); - PE_WRITE16(hdr, dh->dh_ss); - PE_WRITE16(hdr, dh->dh_sp); - PE_WRITE16(hdr, dh->dh_checksum); - PE_WRITE16(hdr, dh->dh_ip); - PE_WRITE16(hdr, dh->dh_cs); - PE_WRITE16(hdr, dh->dh_relocpos); - PE_WRITE16(hdr, dh->dh_noverlay); - for (i = 0; i < 4; i++) - PE_WRITE16(hdr, dh->dh_reserved1[i]); - PE_WRITE16(hdr, dh->dh_oemid); - PE_WRITE16(hdr, dh->dh_oeminfo); - for (i = 0; i < 10; i++) - PE_WRITE16(hdr, dh->dh_reserved2[i]); - PE_WRITE32(hdr, dh->dh_lfanew); - - if (write(pe->pe_fd, tmp, sizeof(tmp)) != - (ssize_t) sizeof(tmp)) { - errno = EIO; - return (-1); - } - } else { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - if (lseek(pe->pe_fd, (off_t) sizeof(PE_DosHdr), SEEK_CUR) < - 0) { - errno = EIO; - return (-1); - } - } - - off = sizeof(PE_DosHdr); - - /* - * Write the MS-DOS stub. - */ - - if (strip_rich) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - assert(pe->pe_stub != NULL && pe->pe_rh_start != NULL); - d = pe->pe_rh_start - pe->pe_stub; - if (lseek(pe->pe_fd, d, SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - off = d; - goto done; - } - - if (pe->pe_cmd == PE_C_RDWR) { - if (lseek(pe->pe_fd, (off_t) pe->pe_stub_ex, SEEK_CUR) < 0) { - errno = EIO; - return (-1); - } - off += pe->pe_stub_ex; - goto done; - } - - if (write(pe->pe_fd, msdos_stub, sizeof(msdos_stub)) != - (ssize_t) sizeof(msdos_stub)) { - errno = EIO; - return (-1); - } - off += sizeof(msdos_stub); - -done: - pe->pe_flags &= ~LIBPE_F_DIRTY_DOS_HEADER; - pe->pe_flags &= ~LIBPE_F_BAD_DOS_HEADER; - - return (off); -} diff --git a/contrib/elftoolchain/libpe/libpe_init.c b/contrib/elftoolchain/libpe/libpe_init.c deleted file mode 100644 index bab91959..00000000 --- a/contrib/elftoolchain/libpe/libpe_init.c +++ /dev/null @@ -1,145 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -int -libpe_open_object(PE *pe) -{ - struct stat sb; - mode_t mode; - char magic[sizeof(PE_DosHdr)]; - - if (fstat(pe->pe_fd, &sb) < 0) - return (-1); - - mode = sb.st_mode; - pe->pe_fsize = (size_t) sb.st_size; - - /* Reject unsupported file types. */ - if (!S_ISREG(mode) && !S_ISCHR(mode) && !S_ISFIFO(mode) && - !S_ISSOCK(mode)) { - errno = EINVAL; - return (-1); - } - - /* Read/Write mode is not supported for non-regular file. */ - if (pe->pe_cmd == PE_C_RDWR && !S_ISREG(mode)) { - errno = EINVAL; - return (-1); - } - - /* The minimal file should at least contain a COFF header. */ - if (S_ISREG(mode) && pe->pe_fsize < sizeof(PE_CoffHdr)) { - errno = ENOENT; - return (-1); - } - - /* - * Search for MS-DOS header or COFF header. - */ - - if (read(pe->pe_fd, magic, 2) != 2) { - errno = EIO; - return (-1); - } - - if (magic[0] == 'M' && magic[1] == 'Z') { - pe->pe_obj = PE_O_PE32; - if (read(pe->pe_fd, &magic[2], sizeof(PE_DosHdr) - 2) != - (ssize_t) sizeof(PE_DosHdr) - 2) { - errno = EIO; - return (-1); - } - return (libpe_parse_msdos_header(pe, magic)); - - } else if (magic[0] == 'P' && magic[1] == 'E') { - if (read(pe->pe_fd, magic, 2) != 2) { - errno = EIO; - return (-1); - } - if (magic[0] == '\0' && magic[1] == '\0') { - pe->pe_obj = PE_O_PE32; - if (read(pe->pe_fd, magic, sizeof(PE_CoffHdr)) != - (ssize_t) sizeof(PE_CoffHdr)) { - errno = EIO; - return (-1); - } - return (libpe_parse_coff_header(pe, magic)); - } - errno = ENOENT; - return (-1); - - } else { - pe->pe_obj = PE_O_COFF; - if (read(pe->pe_fd, &magic[2], sizeof(PE_CoffHdr) - 2) != - (ssize_t) sizeof(PE_CoffHdr) - 2) { - errno = EIO; - return (-1); - } - return (libpe_parse_coff_header(pe, magic)); - } -} - -void -libpe_release_object(PE *pe) -{ - PE_Scn *ps, *_ps; - - if (pe->pe_dh) - free(pe->pe_dh); - - if (pe->pe_rh) { - free(pe->pe_rh->rh_compid); - free(pe->pe_rh->rh_cnt); - free(pe->pe_rh); - } - - if (pe->pe_ch) - free(pe->pe_ch); - - if (pe->pe_oh) - free(pe->pe_oh); - - if (pe->pe_dd) - free(pe->pe_dd); - - if (pe->pe_stub) - free(pe->pe_stub); - - STAILQ_FOREACH_SAFE(ps, &pe->pe_scn, ps_next, _ps) - libpe_release_scn(ps); - - free(pe); -} diff --git a/contrib/elftoolchain/libpe/libpe_rich.c b/contrib/elftoolchain/libpe/libpe_rich.c deleted file mode 100644 index 0800a933..00000000 --- a/contrib/elftoolchain/libpe/libpe_rich.c +++ /dev/null @@ -1,128 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -static char * -memfind(char *s, const char *find, size_t slen, size_t flen) -{ - int i; - - if (slen == 0 || flen == 0 || flen > slen) - return (NULL); - - for (i = 0; (size_t) i <= slen - flen; i++) { - if (s[i] != find[0]) - continue; - if (flen == 1) - return (&s[i]); - if (memcmp(&s[i + 1], &find[1], flen - 1) == 0) - return (&s[i]); - } - - return (NULL); -} - -int -libpe_parse_rich_header(PE *pe) -{ - PE_RichHdr *rh; - char *p, *r, *s; - uint32_t x; - int found, i; - - assert(pe->pe_stub != NULL && pe->pe_stub_ex > 0); - - /* Search for the "Rich" keyword to locate the Rich header. */ - s = pe->pe_stub + sizeof(PE_DosHdr); - r = memfind(s, PE_RICH_TEXT, pe->pe_stub_ex, 4); - if (r == NULL || r + 8 > s + pe->pe_stub_ex) { - errno = ENOENT; - return (-1); - } - - if ((rh = calloc(1, sizeof(*rh))) == NULL) { - errno = ENOMEM; - return (-1); - } - - rh->rh_xor = le32dec(r + 4); /* Retrieve the "XOR mask" */ - - /* - * Search for the hidden keyword "DanS" by XOR the dwords before - * the "Rich" keyword with the XOR mask. - */ - found = 0; - for (p = r - 4; p >= s; p -= 4) { - x = le32dec(p) ^ rh->rh_xor; - if (x == PE_RICH_HIDDEN) { - found = 1; - break; - } - } - if (!found) { - free(rh); - errno = ENOENT; - return (-1); - } - - /* - * Found the "DanS" keyword, which is the start of the Rich header. - * The next step is to skip the first 16 bytes (DanS, XOR mask, - * XOR mask, XOR mask) and read the (compid,cnt) tuples. - */ - pe->pe_rh_start = p; - p += 16; - rh->rh_total = (r - p) / 8; - if ((rh->rh_compid = malloc(rh->rh_total * sizeof(*rh->rh_compid))) == - NULL) { - free(rh); - errno = ENOMEM; - return (-1); - } - if ((rh->rh_cnt = malloc(rh->rh_total * sizeof(*rh->rh_cnt))) == - NULL) { - free(rh->rh_compid); - free(rh); - errno = ENOMEM; - return (-1); - } - for (i = 0; (uint32_t) i < rh->rh_total; i++, p += 8) { - rh->rh_compid[i] = le32dec(p) ^ rh->rh_xor; - rh->rh_cnt[i] = le32dec(p + 4) ^ rh->rh_xor; - } - - pe->pe_rh = rh; - - return (0); -} diff --git a/contrib/elftoolchain/libpe/libpe_section.c b/contrib/elftoolchain/libpe/libpe_section.c deleted file mode 100644 index 1f84a216..00000000 --- a/contrib/elftoolchain/libpe/libpe_section.c +++ /dev/null @@ -1,518 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_Scn * -libpe_alloc_scn(PE *pe) -{ - PE_Scn *ps; - - if ((ps = calloc(1, sizeof(PE_Scn))) == NULL) { - errno = ENOMEM; - return (NULL); - } - STAILQ_INIT(&ps->ps_b); - ps->ps_pe = pe; - - return (ps); -} - -void -libpe_release_scn(PE_Scn *ps) -{ - PE *pe; - PE_SecBuf *sb, *_sb; - - assert(ps != NULL); - - pe = ps->ps_pe; - - STAILQ_REMOVE(&pe->pe_scn, ps, _PE_Scn, ps_next); - - STAILQ_FOREACH_SAFE(sb, &ps->ps_b, sb_next, _sb) - libpe_release_buffer(sb); - - free(ps); -} - -static int -cmp_scn(PE_Scn *a, PE_Scn *b) -{ - - if (a->ps_sh.sh_addr < b->ps_sh.sh_addr) - return (-1); - else if (a->ps_sh.sh_addr == b->ps_sh.sh_addr) - return (0); - else - return (1); -} - -static void -sort_sections(PE *pe) -{ - - if (STAILQ_EMPTY(&pe->pe_scn)) - return; - - /* Sort the list of Scn by RVA in ascending order. */ - STAILQ_SORT(&pe->pe_scn, _PE_Scn, ps_next, cmp_scn); -} - -int -libpe_parse_section_headers(PE *pe) -{ - char tmp[sizeof(PE_SecHdr)], *hdr; - PE_Scn *ps; - PE_SecHdr *sh; - PE_CoffHdr *ch; - PE_DataDir *dd; - int found, i; - - assert(pe->pe_ch != NULL); - - for (i = 0; (uint16_t) i < pe->pe_ch->ch_nsec; i++) { - if (read(pe->pe_fd, tmp, sizeof(PE_SecHdr)) != - (ssize_t) sizeof(PE_SecHdr)) { - pe->pe_flags |= LIBPE_F_BAD_SEC_HEADER; - return (0); - } - - if ((ps = libpe_alloc_scn(pe)) == NULL) - return (-1); - STAILQ_INSERT_TAIL(&pe->pe_scn, ps, ps_next); - ps->ps_ndx = ++pe->pe_nscn; /* Setion index is 1-based */ - sh = &ps->ps_sh; - - /* - * Note that the section name won't be NUL-terminated if - * its length happens to be 8. - */ - memcpy(sh->sh_name, tmp, sizeof(sh->sh_name)); - hdr = tmp + 8; - PE_READ32(hdr, sh->sh_virtsize); - PE_READ32(hdr, sh->sh_addr); - PE_READ32(hdr, sh->sh_rawsize); - PE_READ32(hdr, sh->sh_rawptr); - PE_READ32(hdr, sh->sh_relocptr); - PE_READ32(hdr, sh->sh_lineptr); - PE_READ16(hdr, sh->sh_nreloc); - PE_READ16(hdr, sh->sh_nline); - PE_READ32(hdr, sh->sh_char); - } - - /* - * For all the data directories that don't belong to any section, - * we create pseudo sections for them to make layout easier. - */ - dd = pe->pe_dd; - if (dd != NULL && dd->dd_total > 0) { - for (i = 0; (uint32_t) i < pe->pe_dd->dd_total; i++) { - if (dd->dd_e[i].de_size == 0) - continue; - found = 0; - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - sh = &ps->ps_sh; - if (dd->dd_e[i].de_addr >= sh->sh_addr && - dd->dd_e[i].de_addr + dd->dd_e[i].de_size <= - sh->sh_addr + sh->sh_virtsize) { - found = 1; - break; - } - } - if (found) - continue; - - if ((ps = libpe_alloc_scn(pe)) == NULL) - return (-1); - STAILQ_INSERT_TAIL(&pe->pe_scn, ps, ps_next); - ps->ps_ndx = 0xFFFF0000U | i; - sh = &ps->ps_sh; - sh->sh_rawptr = dd->dd_e[i].de_addr; /* FIXME */ - sh->sh_rawsize = dd->dd_e[i].de_size; - } - } - - /* - * Also consider the COFF symbol table as a pseudo section. - */ - ch = pe->pe_ch; - if (ch->ch_nsym > 0) { - if ((ps = libpe_alloc_scn(pe)) == NULL) - return (-1); - STAILQ_INSERT_TAIL(&pe->pe_scn, ps, ps_next); - ps->ps_ndx = 0xFFFFFFFFU; - sh = &ps->ps_sh; - sh->sh_rawptr = ch->ch_symptr; - sh->sh_rawsize = ch->ch_nsym * PE_SYM_ENTRY_SIZE; - pe->pe_nsym = ch->ch_nsym; - } - - /* PE file headers initialization is complete if we reach here. */ - return (0); -} - -int -libpe_load_section(PE *pe, PE_Scn *ps) -{ - PE_SecHdr *sh; - PE_SecBuf *sb; - size_t sz; - char tmp[4]; - - assert(pe != NULL && ps != NULL); - assert((ps->ps_flags & LIBPE_F_LOAD_SECTION) == 0); - - sh = &ps->ps_sh; - - /* Allocate a PE_SecBuf struct without buffer for empty sections. */ - if (sh->sh_rawsize == 0) { - (void) libpe_alloc_buffer(ps, 0); - ps->ps_flags |= LIBPE_F_LOAD_SECTION; - return (0); - } - - if ((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0) { - if (lseek(pe->pe_fd, (off_t) sh->sh_rawptr, SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - } - - if ((sb = libpe_alloc_buffer(ps, sh->sh_rawsize)) == NULL) - return (-1); - - if (read(pe->pe_fd, sb->sb_pb.pb_buf, sh->sh_rawsize) != - (ssize_t) sh->sh_rawsize) { - errno = EIO; - return (-1); - } - - if (ps->ps_ndx == 0xFFFFFFFFU) { - /* - * Index 0xFFFFFFFF indicates this section is a pseudo - * section that contains the COFF symbol table. We should - * read in the string table right after it. - */ - if (read(pe->pe_fd, tmp, sizeof(tmp)) != - (ssize_t) sizeof(tmp)) { - errno = EIO; - return (-1); - } - sz = le32dec(tmp); - - /* - * The minimum value for the size field is 4, which indicates - * there is no string table. - */ - if (sz > 4) { - sz -= 4; - if ((sb = libpe_alloc_buffer(ps, sz)) == NULL) - return (-1); - if (read(pe->pe_fd, sb->sb_pb.pb_buf, sz) != - (ssize_t) sz) { - errno = EIO; - return (-1); - } - } - } - - ps->ps_flags |= LIBPE_F_LOAD_SECTION; - - return (0); -} - -int -libpe_load_all_sections(PE *pe) -{ - PE_Scn *ps; - PE_SecHdr *sh; - unsigned r, s; - off_t off; - char tmp[256]; - - /* Calculate the current offset into the file. */ - off = 0; - if (pe->pe_dh != NULL) - off += pe->pe_dh->dh_lfanew + 4; - if (pe->pe_ch != NULL) - off += sizeof(PE_CoffHdr) + pe->pe_ch->ch_optsize; - - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - if (ps->ps_flags & LIBPE_F_LOAD_SECTION) - continue; - sh = &ps->ps_sh; - - /* - * For special files, we consume the padding in between - * and advance to the section offset. - */ - if (pe->pe_flags & LIBPE_F_SPECIAL_FILE) { - /* Can't go backwards. */ - if (off > sh->sh_rawptr) { - errno = EIO; - return (-1); - } - if (off < sh->sh_rawptr) { - r = sh->sh_rawptr - off; - for (; r > 0; r -= s) { - s = r > sizeof(tmp) ? sizeof(tmp) : r; - if (read(pe->pe_fd, tmp, s) != - (ssize_t) s) { - errno = EIO; - return (-1); - } - } - } - } - - /* Load the section content. */ - if (libpe_load_section(pe, ps) < 0) - return (-1); - } - - return (0); -} - -int -libpe_resync_sections(PE *pe, off_t off) -{ - PE_Scn *ps; - PE_SecHdr *sh; - size_t falign, nsec; - - /* Firstly, sort all sections by their file offsets. */ - sort_sections(pe); - - /* Count the number of sections. */ - nsec = 0; - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - if (ps->ps_flags & LIBPE_F_STRIP_SECTION) - continue; - if (ps->ps_ndx & 0xFFFF0000U) - continue; - nsec++; - } - pe->pe_nscn = nsec; - - /* - * Calculate the file offset for the first section. (`off' is - * currently pointing to the COFF header.) - */ - off += sizeof(PE_CoffHdr); - if (pe->pe_ch != NULL && pe->pe_ch->ch_optsize > 0) - off += pe->pe_ch->ch_optsize; - else { - switch (pe->pe_obj) { - case PE_O_PE32: - off += PE_COFF_OPT_SIZE_32; - break; - case PE_O_PE32P: - off += PE_COFF_OPT_SIZE_32P; - break; - case PE_O_COFF: - default: - break; - } - } - off += nsec * sizeof(PE_SecHdr); - - /* - * Determine the file alignment for sections. - */ - if (pe->pe_oh != NULL && pe->pe_oh->oh_filealign > 0) - falign = pe->pe_oh->oh_filealign; - else { - /* - * Use the default file alignment defined by the - * PE/COFF specification. - */ - if (pe->pe_obj == PE_O_COFF) - falign = 4; - else - falign = 512; - } - - /* - * Step through each section (and pseduo section) and verify - * alignment constraint and overlapping, make adjustment if need. - */ - pe->pe_rvamax = 0; - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - if (ps->ps_flags & LIBPE_F_STRIP_SECTION) - continue; - - sh = &ps->ps_sh; - - if (sh->sh_addr + sh->sh_virtsize > pe->pe_rvamax) - pe->pe_rvamax = sh->sh_addr + sh->sh_virtsize; - - if (ps->ps_ndx & 0xFFFF0000U) - ps->ps_falign = 4; - else - ps->ps_falign = falign; - - off = roundup(off, ps->ps_falign); - - if (off != sh->sh_rawptr) - ps->ps_flags |= PE_F_DIRTY; - - if (ps->ps_flags & PE_F_DIRTY) { - if ((ps->ps_flags & LIBPE_F_LOAD_SECTION) == 0) { - if (libpe_load_section(pe, ps) < 0) - return (-1); - } - sh->sh_rawsize = libpe_resync_buffers(ps); - } - - /* - * Sections only contains uninitialized data should set - * PointerToRawData to zero according to the PE/COFF - * specification. - */ - if (sh->sh_rawsize == 0) - sh->sh_rawptr = 0; - else - sh->sh_rawptr = off; - - off += sh->sh_rawsize; - } - - return (0); -} - -off_t -libpe_write_section_headers(PE *pe, off_t off) -{ - char tmp[sizeof(PE_SecHdr)], *hdr; - PE_Scn *ps; - PE_SecHdr *sh; - - if (pe->pe_flags & LIBPE_F_BAD_SEC_HEADER || pe->pe_nscn == 0) - return (off); - - if ((pe->pe_flags & LIBPE_F_DIRTY_SEC_HEADER) == 0) { - off += sizeof(PE_SecHdr) * pe->pe_ch->ch_nsec; - return (off); - } - - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - if (ps->ps_flags & LIBPE_F_STRIP_SECTION) - continue; - if (ps->ps_ndx & 0xFFFF0000U) - continue; - if ((pe->pe_flags & LIBPE_F_DIRTY_SEC_HEADER) == 0 && - (ps->ps_flags & PE_F_DIRTY) == 0) - goto next_header; - - sh = &ps->ps_sh; - - memcpy(tmp, sh->sh_name, sizeof(sh->sh_name)); - hdr = tmp + 8; - PE_WRITE32(hdr, sh->sh_virtsize); - PE_WRITE32(hdr, sh->sh_addr); - PE_WRITE32(hdr, sh->sh_rawsize); - PE_WRITE32(hdr, sh->sh_rawptr); - PE_WRITE32(hdr, sh->sh_relocptr); - PE_WRITE32(hdr, sh->sh_lineptr); - PE_WRITE16(hdr, sh->sh_nreloc); - PE_WRITE16(hdr, sh->sh_nline); - PE_WRITE32(hdr, sh->sh_char); - - if (write(pe->pe_fd, tmp, sizeof(PE_SecHdr)) != - (ssize_t) sizeof(PE_SecHdr)) { - errno = EIO; - return (-1); - } - - next_header: - off += sizeof(PE_SecHdr); - } - - return (off); -} - -off_t -libpe_write_sections(PE *pe, off_t off) -{ - PE_Scn *ps; - PE_SecHdr *sh; - - if (pe->pe_flags & LIBPE_F_BAD_SEC_HEADER) - return (off); - - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - sh = &ps->ps_sh; - - if (ps->ps_flags & LIBPE_F_STRIP_SECTION) - continue; - - /* Skip empty sections. */ - if (sh->sh_rawptr == 0 || sh->sh_rawsize == 0) - continue; - - /* - * Padding between sections. (padding always written - * in case the the section headers or sections are - * moved or shrunk.) - */ - assert(off <= sh->sh_rawptr); - if (off < sh->sh_rawptr) - libpe_pad(pe, sh->sh_rawptr - off); - - if ((ps->ps_flags & PE_F_DIRTY) == 0) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - if (lseek(pe->pe_fd, - (off_t) (sh->sh_rawptr + sh->sh_rawsize), - SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - off = sh->sh_rawptr + sh->sh_rawsize; - continue; - } - - off = sh->sh_rawptr; - - if (libpe_write_buffers(ps) < 0) - return (-1); - - off += sh->sh_rawsize; - - ps->ps_flags &= ~PE_F_DIRTY; - } - - return (off); -} diff --git a/contrib/elftoolchain/libpe/libpe_utils.c b/contrib/elftoolchain/libpe/libpe_utils.c deleted file mode 100644 index efca46e0..00000000 --- a/contrib/elftoolchain/libpe/libpe_utils.c +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -off_t -libpe_align(PE *pe, off_t off, size_t align) -{ - off_t n; - - assert(align > 0 && (align & (align - 1)) == 0); - - n = roundup(off, align); - if (n > off) { - if (libpe_pad(pe, n - off) < 0) - return (-1); - } - - return (n); -} - -int -libpe_pad(PE *pe, size_t pad) -{ - char tmp[128]; - size_t s; - - memset(tmp, 0, sizeof(tmp)); - for (; pad > 0; pad -= s) { - s = pad > sizeof(tmp) ? sizeof(tmp) : pad; - if (write(pe->pe_fd, tmp, s) != (ssize_t) s) { - errno = EIO; - return (-1); - } - } - - return (0); -} diff --git a/contrib/elftoolchain/libpe/os.Linux.mk b/contrib/elftoolchain/libpe/os.Linux.mk deleted file mode 100644 index 280995d6..00000000 --- a/contrib/elftoolchain/libpe/os.Linux.mk +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -CFLAGS+= -Wall -Wno-unused-parameter -Wstrict-prototypes \ - -Wmissing-prototypes -Wpointer-arith -Wreturn-type \ - -Wcast-qual -Wwrite-strings -Wswitch -Wshadow \ - -Wcast-align -Wunused-parameter diff --git a/contrib/elftoolchain/libpe/os.NetBSD.mk b/contrib/elftoolchain/libpe/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/libpe/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/libpe/pe.h b/contrib/elftoolchain/libpe/pe.h deleted file mode 100644 index 5a0500dd..00000000 --- a/contrib/elftoolchain/libpe/pe.h +++ /dev/null @@ -1,295 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _PE_H_ -#define _PE_H_ - -#include - -/* - * MS-DOS header. - */ - -typedef struct _PE_DosHdr { - char dh_magic[2]; - uint16_t dh_lastsize; - uint16_t dh_nblock; - uint16_t dh_nreloc; - uint16_t dh_hdrsize; - uint16_t dh_minalloc; - uint16_t dh_maxalloc; - uint16_t dh_ss; - uint16_t dh_sp; - uint16_t dh_checksum; - uint16_t dh_ip; - uint16_t dh_cs; - uint16_t dh_relocpos; - uint16_t dh_noverlay; - uint16_t dh_reserved1[4]; - uint16_t dh_oemid; - uint16_t dh_oeminfo; - uint16_t dh_reserved2[10]; - uint32_t dh_lfanew; -} PE_DosHdr; - -/* - * Rich header. - */ - -typedef struct _PE_RichHdr { - uint32_t rh_xor; - uint32_t rh_total; - uint32_t *rh_compid; - uint32_t *rh_cnt; -} PE_RichHdr; - -/* - * COFF header: Machine Types. - */ - -#define IMAGE_FILE_MACHINE_UNKNOWN 0x0 /* not specified */ -#define IMAGE_FILE_MACHINE_AM33 0x1d3 /* Matsushita AM33 */ -#define IMAGE_FILE_MACHINE_AMD64 0x8664 /* x86-64 */ -#define IMAGE_FILE_MACHINE_ARM 0x1c0 /* ARM LE */ -#define IMAGE_FILE_MACHINE_ARMNT 0x1c4 /* ARMv7(or higher) Thumb */ -#define IMAGE_FILE_MACHINE_ARM64 0xaa64 /* ARMv8 64-bit */ -#define IMAGE_FILE_MACHINE_EBC 0xebc /* EFI byte code */ -#define IMAGE_FILE_MACHINE_I386 0x14c /* x86 */ -#define IMAGE_FILE_MACHINE_IA64 0x200 /* IA64 */ -#define IMAGE_FILE_MACHINE_M32R 0x9041 /* Mitsubishi M32R LE */ -#define IMAGE_FILE_MACHINE_MIPS16 0x266 /* MIPS16 */ -#define IMAGE_FILE_MACHINE_MIPSFPU 0x366 /* MIPS with FPU */ -#define IMAGE_FILE_MACHINE_MIPSFPU16 0x466 /* MIPS16 with FPU */ -#define IMAGE_FILE_MACHINE_POWERPC 0x1f0 /* Power PC LE */ -#define IMAGE_FILE_MACHINE_POWERPCFP 0x1f1 /* Power PC floating point */ -#define IMAGE_FILE_MACHINE_R4000 0x166 /* MIPS R4000 LE */ -#define IMAGE_FILE_MACHINE_RISCV32 0x5032 /* RISC-V 32-bit */ -#define IMAGE_FILE_MACHINE_RISCV64 0x5064 /* RISC-V 64-bit */ -#define IMAGE_FILE_MACHINE_RISCV128 0x5128 /* RISC-V 128-bit */ -#define IMAGE_FILE_MACHINE_SH3 0x1a2 /* Hitachi SH3 */ -#define IMAGE_FILE_MACHINE_SH3DSP 0x1a3 /* Hitachi SH3 DSP */ -#define IMAGE_FILE_MACHINE_SH4 0x1a6 /* Hitachi SH4 */ -#define IMAGE_FILE_MACHINE_SH5 0x1a8 /* Hitachi SH5 */ -#define IMAGE_FILE_MACHINE_THUMB 0x1c2 /* ARM or Thumb interworking */ -#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x169 /* MIPS LE WCE v2 */ - -/* - * COFF header: Characteristics - */ - -#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 -#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 -#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 -#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 -#define IMAGE_FILE_AGGRESSIVE_WS_TRIM 0x0010 -#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 -#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 -#define IMAGE_FILE_32BIT_MACHINE 0x0100 -#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 -#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 -#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 -#define IMAGE_FILE_SYSTEM 0x1000 -#define IMAGE_FILE_DLL 0x2000 -#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 -#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 - -/* - * COFF Header. - */ - -typedef struct _PE_CoffHdr { - uint16_t ch_machine; - uint16_t ch_nsec; - uint32_t ch_timestamp; - uint32_t ch_symptr; - uint32_t ch_nsym; - uint16_t ch_optsize; - uint16_t ch_char; -} PE_CoffHdr; - - -/* - * Optional Header: Subsystem. - */ - -#define IMAGE_SUBSYSTEM_UNKNOWN 0 -#define IMAGE_SUBSYSTEM_NATIVE 1 -#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 -#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 -#define IMAGE_SUBSYSTEM_POSIX_CUI 7 -#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 -#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 -#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 -#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 -#define IMAGE_SUBSYSTEM_EFI_ROM 13 -#define IMAGE_SUBSYSTEM_XBOX 14 - -/* - * Optional Header: DLL Characteristics - */ - -#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE 0x0040 -#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY 0x0080 -#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT 0x0100 -#define IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION 0x0200 -#define IMAGE_DLL_CHARACTERISTICS_NO_SEH 0x0400 -#define IMAGE_DLL_CHARACTERISTICS_NO_BIND 0x0800 -#define IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER 0x2000 -#define IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 - -/* - * Optional Header. - */ - -#define PE_FORMAT_ROM 0x107 -#define PE_FORMAT_32 0x10b -#define PE_FORMAT_32P 0x20b - -typedef struct _PE_OptHdr { - uint16_t oh_magic; - uint8_t oh_ldvermajor; - uint8_t oh_ldverminor; - uint32_t oh_textsize; - uint32_t oh_datasize; - uint32_t oh_bsssize; - uint32_t oh_entry; - uint32_t oh_textbase; - uint32_t oh_database; - uint64_t oh_imgbase; - uint32_t oh_secalign; - uint32_t oh_filealign; - uint16_t oh_osvermajor; - uint16_t oh_osverminor; - uint16_t oh_imgvermajor; - uint16_t oh_imgverminor; - uint16_t oh_subvermajor; - uint16_t oh_subverminor; - uint32_t oh_win32ver; - uint32_t oh_imgsize; - uint32_t oh_hdrsize; - uint32_t oh_checksum; - uint16_t oh_subsystem; - uint16_t oh_dllchar; - uint64_t oh_stacksizer; - uint64_t oh_stacksizec; - uint64_t oh_heapsizer; - uint64_t oh_heapsizec; - uint32_t oh_ldrflags; - uint32_t oh_ndatadir; -} PE_OptHdr; - -/* - * Optional Header: Data Directories. - */ - -#define PE_DD_EXPORT 0 -#define PE_DD_IMPORT 1 -#define PE_DD_RESROUCE 2 -#define PE_DD_EXCEPTION 3 -#define PE_DD_CERTIFICATE 4 -#define PE_DD_BASERELOC 5 -#define PE_DD_DEBUG 6 -#define PE_DD_ARCH 7 -#define PE_DD_GLOBALPTR 8 -#define PE_DD_TLS 9 -#define PE_DD_LOADCONFIG 10 -#define PE_DD_BOUNDIMPORT 11 -#define PE_DD_IAT 12 -#define PE_DD_DELAYIMPORT 13 -#define PE_DD_CLRRUNTIME 14 -#define PE_DD_RESERVED 15 -#define PE_DD_MAX 16 - -typedef struct _PE_DataDirEntry { - uint32_t de_addr; - uint32_t de_size; -} PE_DataDirEntry; - -typedef struct _PE_DataDir { - PE_DataDirEntry dd_e[PE_DD_MAX]; - uint32_t dd_total; -} PE_DataDir; - -/* - * Section Headers: Section flags. - */ - -#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 -#define IMAGE_SCN_CNT_CODE 0x00000020 -#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 -#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 -#define IMAGE_SCN_LNK_OTHER 0x00000100 -#define IMAGE_SCN_LNK_INFO 0x00000200 -#define IMAGE_SCN_LNK_REMOVE 0x00000800 -#define IMAGE_SCN_LNK_COMDAT 0x00001000 -#define IMAGE_SCN_GPREL 0x00008000 -#define IMAGE_SCN_MEM_PURGEABLE 0x00020000 -#define IMAGE_SCN_MEM_16BIT 0x00020000 -#define IMAGE_SCN_MEM_LOCKED 0x00040000 -#define IMAGE_SCN_MEM_PRELOAD 0x00080000 -#define IMAGE_SCN_ALIGN_1BYTES 0x00100000 -#define IMAGE_SCN_ALIGN_2BYTES 0x00200000 -#define IMAGE_SCN_ALIGN_4BYTES 0x00300000 -#define IMAGE_SCN_ALIGN_8BYTES 0x00400000 -#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 -#define IMAGE_SCN_ALIGN_32BYTES 0x00600000 -#define IMAGE_SCN_ALIGN_64BYTES 0x00700000 -#define IMAGE_SCN_ALIGN_128BYTES 0x00800000 -#define IMAGE_SCN_ALIGN_256BYTES 0x00900000 -#define IMAGE_SCN_ALIGN_512BYTES 0x00A00000 -#define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000 -#define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000 -#define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 -#define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 -#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 -#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 -#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 -#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 -#define IMAGE_SCN_MEM_SHARED 0x10000000 -#define IMAGE_SCN_MEM_EXECUTE 0x20000000 -#define IMAGE_SCN_MEM_READ 0x40000000 -#define IMAGE_SCN_MEM_WRITE 0x80000000 - -/* - * Section Headers. - */ - -typedef struct _PE_SecHdr { - char sh_name[8]; - uint32_t sh_virtsize; - uint32_t sh_addr; - uint32_t sh_rawsize; - uint32_t sh_rawptr; - uint32_t sh_relocptr; - uint32_t sh_lineptr; - uint16_t sh_nreloc; - uint16_t sh_nline; - uint32_t sh_char; -} PE_SecHdr; - -#endif /* !_PE_H_ */ diff --git a/contrib/elftoolchain/libpe/pe_buffer.c b/contrib/elftoolchain/libpe/pe_buffer.c deleted file mode 100644 index 2a607e8b..00000000 --- a/contrib/elftoolchain/libpe/pe_buffer.c +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_Buffer * -pe_getbuffer(PE_Scn *ps, PE_Buffer *pb) -{ - PE *pe; - PE_SecBuf *sb; - - if (ps == NULL) { - errno = EINVAL; - return (NULL); - } - - pe = ps->ps_pe; - - if ((ps->ps_flags & LIBPE_F_LOAD_SECTION) == 0) { - if (pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (NULL); - } - if (pe->pe_flags & LIBPE_F_SPECIAL_FILE) { - if (libpe_load_all_sections(pe) < 0) - return (NULL); - } else { - if (libpe_load_section(pe, ps) < 0) - return (NULL); - } - } - - sb = (PE_SecBuf *) pb; - - if (sb == NULL) - sb = STAILQ_FIRST(&ps->ps_b); - else - sb = STAILQ_NEXT(sb, sb_next); - - return ((PE_Buffer *) sb); -} - -PE_Buffer * -pe_newbuffer(PE_Scn *ps) -{ - PE *pe; - PE_SecBuf *sb; - - if (ps == NULL) { - errno = EINVAL; - return (NULL); - } - - pe = ps->ps_pe; - - if (pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (NULL); - } - - if ((ps->ps_flags & LIBPE_F_LOAD_SECTION) == 0) { - if (libpe_load_section(pe, ps) < 0) - return (NULL); - } - - if ((sb = libpe_alloc_buffer(ps, 0)) == NULL) - return (NULL); - - sb->sb_flags |= PE_F_DIRTY; - ps->ps_flags |= PE_F_DIRTY; - - return ((PE_Buffer *) sb); -} diff --git a/contrib/elftoolchain/libpe/pe_cntl.c b/contrib/elftoolchain/libpe/pe_cntl.c deleted file mode 100644 index 9824cde1..00000000 --- a/contrib/elftoolchain/libpe/pe_cntl.c +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -int -pe_cntl(PE *pe, PE_Cmd cmd) -{ - - if (pe == NULL) { - errno = EINVAL; - return (-1); - } - - switch (cmd) { - case PE_C_FDDONE: - pe->pe_flags |= LIBPE_F_FD_DONE; - break; - - case PE_C_FDREAD: - if (pe->pe_cmd == PE_C_WRITE) { - errno = EACCES; - return (-1); - } - if (libpe_load_all_sections(pe) < 0) - return (-1); - break; - - default: - errno = EINVAL; - return (-1); - } - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_coff.c b/contrib/elftoolchain/libpe/pe_coff.c deleted file mode 100644 index e0cb9a3e..00000000 --- a/contrib/elftoolchain/libpe/pe_coff.c +++ /dev/null @@ -1,157 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_CoffHdr * -pe_coff_header(PE *pe) -{ - - if (pe->pe_ch == NULL) { - errno = ENOENT; - return (NULL); - } - - return (pe->pe_ch); -} - -PE_OptHdr * -pe_opt_header(PE *pe) -{ - - if (pe->pe_oh == NULL) { - errno = ENOENT; - return (NULL); - } - - return (pe->pe_oh); -} - -PE_DataDir * -pe_data_dir(PE *pe) -{ - - if (pe->pe_dd == NULL) { - errno = ENOENT; - return (NULL); - } - - return (pe->pe_dd); -} - -int -pe_update_coff_header(PE *pe, PE_CoffHdr *ch) -{ - - if (pe == NULL || ch == NULL) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - if (pe->pe_ch == NULL) { - if ((pe->pe_ch = malloc(sizeof(PE_CoffHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - } else { - /* Rewrite optional header if `optsize' field changed. */ - if (pe->pe_ch->ch_optsize != ch->ch_optsize) - pe->pe_flags |= LIBPE_F_DIRTY_OPT_HEADER; - } - - *pe->pe_ch = *ch; - - pe->pe_flags |= LIBPE_F_DIRTY_COFF_HEADER; - - return (0); -} - -int -pe_update_opt_header(PE *pe, PE_OptHdr *oh) -{ - - if (pe == NULL || oh == NULL) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - if (pe->pe_oh == NULL) { - if ((pe->pe_oh = malloc(sizeof(PE_OptHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - } - - *pe->pe_oh = *oh; - - pe->pe_flags |= LIBPE_F_DIRTY_OPT_HEADER; - - return (0); -} - -int -pe_update_data_dir(PE *pe, PE_DataDir *dd) -{ - - if (pe == NULL || dd == NULL) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - if (pe->pe_dd == NULL) { - if ((pe->pe_dd = malloc(sizeof(PE_DataDir))) == NULL) { - errno = ENOMEM; - return (-1); - } - } - - *pe->pe_dd = *dd; - - pe->pe_flags |= LIBPE_F_DIRTY_OPT_HEADER; - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_dos.c b/contrib/elftoolchain/libpe/pe_dos.c deleted file mode 100644 index aabcdcd5..00000000 --- a/contrib/elftoolchain/libpe/pe_dos.c +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_DosHdr * -pe_msdos_header(PE *pe) -{ - - if (pe == NULL) { - errno = EINVAL; - return (NULL); - } - - if (pe->pe_dh == NULL) { - errno = ENOENT; - return (NULL); - } - - return (pe->pe_dh); -} - -char * -pe_msdos_stub(PE *pe, size_t *len) -{ - - if (pe == NULL || len == NULL) { - errno = EINVAL; - return (NULL); - } - - if (pe->pe_stub_ex > 0 && - (pe->pe_flags & LIBPE_F_LOAD_DOS_STUB) == 0) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - (void) libpe_read_msdos_stub(pe); - } - - *len = sizeof(PE_DosHdr) + pe->pe_stub_ex; - - return (pe->pe_stub); -} - -int -ps_update_msdos_header(PE *pe, PE_DosHdr *dh) -{ - - if (pe == NULL || dh == NULL) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - if (pe->pe_dh == NULL) { - if ((pe->pe_dh = malloc(sizeof(PE_DosHdr))) == NULL) { - errno = ENOMEM; - return (-1); - } - } - - *pe->pe_dh = *dh; - - pe->pe_flags |= LIBPE_F_DIRTY_DOS_HEADER; - - return (0); -} - -int -ps_update_msdos_stub(PE *pe, char *dos_stub, size_t sz) -{ - - if (pe == NULL || dos_stub == NULL || sz == 0) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - pe->pe_stub_app = dos_stub; - pe->pe_stub_app_sz = sz; - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_flag.c b/contrib/elftoolchain/libpe/pe_flag.c deleted file mode 100644 index 3d1a267a..00000000 --- a/contrib/elftoolchain/libpe/pe_flag.c +++ /dev/null @@ -1,187 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -int -pe_flag(PE *pe, PE_Cmd c, unsigned int flags) -{ - - if (pe == NULL || (c != PE_C_SET && c != PE_C_CLR)) { - errno = EINVAL; - return (-1); - } - - if ((flags & ~(PE_F_STRIP_DOS_STUB | PE_F_STRIP_RICH_HEADER | - PE_F_STRIP_SYMTAB | PE_F_STRIP_DEBUG)) != 0) { - errno = EINVAL; - return (-1); - } - - if (c == PE_C_SET) - pe->pe_flags |= flags; - else - pe->pe_flags &= ~flags; - - return (0); -} - -int -pe_flag_dos_header(PE *pe, PE_Cmd c, unsigned int flags) -{ - - if (pe == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~PE_F_DIRTY) != 0) { - errno = EINVAL; - return (-1); - } - - if (c == PE_C_SET) - pe->pe_flags |= LIBPE_F_DIRTY_DOS_HEADER; - else - pe->pe_flags &= ~LIBPE_F_DIRTY_DOS_HEADER; - - return (0); -} - -int -pe_flag_coff_header(PE *pe, PE_Cmd c, unsigned int flags) -{ - - if (pe == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~PE_F_DIRTY) != 0) { - errno = EINVAL; - return (-1); - } - - if (c == PE_C_SET) - pe->pe_flags |= LIBPE_F_DIRTY_COFF_HEADER; - else - pe->pe_flags &= ~LIBPE_F_DIRTY_COFF_HEADER; - - return (0); -} - -int -pe_flag_opt_header(PE *pe, PE_Cmd c, unsigned int flags) -{ - - if (pe == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~PE_F_DIRTY) != 0) { - errno = EINVAL; - return (-1); - } - - if (c == PE_C_SET) - pe->pe_flags |= LIBPE_F_DIRTY_OPT_HEADER; - else - pe->pe_flags &= ~LIBPE_F_DIRTY_OPT_HEADER; - - return (0); -} - -int -pe_flag_data_dir(PE *pe, PE_Cmd c, unsigned int flags) -{ - - if (pe == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~PE_F_DIRTY) != 0) { - errno = EINVAL; - return (-1); - } - - if (c == PE_C_SET) - pe->pe_flags |= LIBPE_F_DIRTY_OPT_HEADER; - else - pe->pe_flags &= ~LIBPE_F_DIRTY_OPT_HEADER; - - return (0); -} - -int -pe_flag_scn(PE_Scn *ps, PE_Cmd c, unsigned int flags) -{ - - if (ps == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~(PE_F_DIRTY | PE_F_STRIP_SECTION)) == 0) { - errno = EINVAL; - return (-1); - } - - if (c == PE_C_SET) - ps->ps_flags |= flags; - else - ps->ps_flags &= ~flags; - - return (0); -} - -int -pe_flag_section_header(PE_Scn *ps, PE_Cmd c, unsigned int flags) -{ - PE *pe; - - if (ps == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~PE_F_DIRTY) != 0) { - errno = EINVAL; - return (-1); - } - - pe = ps->ps_pe; - - /* The library doesn't support per section header dirty flag. */ - if (c == PE_C_SET) - pe->pe_flags |= LIBPE_F_DIRTY_SEC_HEADER; - else - pe->pe_flags &= ~LIBPE_F_DIRTY_SEC_HEADER; - - return (0); -} - -int -pe_flag_buffer(PE_Buffer *pb, PE_Cmd c, unsigned int flags) -{ - PE_SecBuf *sb; - - if (pb == NULL || (c != PE_C_SET && c != PE_C_CLR) || - (flags & ~PE_F_DIRTY) != 0) { - errno = EINVAL; - return (-1); - } - - sb = (PE_SecBuf *) pb; - - if (c == PE_C_SET) - sb->sb_flags |= flags; - else - sb->sb_flags &= ~flags; - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_init.c b/contrib/elftoolchain/libpe/pe_init.c deleted file mode 100644 index a7291f77..00000000 --- a/contrib/elftoolchain/libpe/pe_init.c +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * Copyright (c) 2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE * -pe_init(int fd, PE_Cmd c, PE_Object o) -{ - PE *pe; - - if ((pe = calloc(1, sizeof(*pe))) == NULL) { - errno = ENOMEM; - return (NULL); - } - pe->pe_fd = fd; - pe->pe_cmd = c; - pe->pe_obj = o; - STAILQ_INIT(&pe->pe_scn); - - switch (c) { - case PE_C_READ: - case PE_C_RDWR: - if (libpe_open_object(pe) < 0) - goto init_fail; - break; - - case PE_C_WRITE: - if (o < PE_O_PE32 || o > PE_O_COFF) { - errno = EINVAL; - goto init_fail; - } - break; - - default: - errno = EINVAL; - goto init_fail; - } - - return (pe); - -init_fail: - pe_finish(pe); - return (NULL); -} - -void -pe_finish(PE *pe) -{ - - if (pe == NULL) - return; - - libpe_release_object(pe); -} - -PE_Object -pe_object(PE *pe) -{ - - if (pe == NULL) { - errno = EINVAL; - return (PE_O_UNKNOWN); - } - - return (pe->pe_obj); -} diff --git a/contrib/elftoolchain/libpe/pe_rich.c b/contrib/elftoolchain/libpe/pe_rich.c deleted file mode 100644 index 455a4b81..00000000 --- a/contrib/elftoolchain/libpe/pe_rich.c +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_RichHdr * -pe_rich_header(PE *pe) -{ - - if (pe == NULL) { - errno = EINVAL; - return (NULL); - } - - if (pe->pe_rh == NULL && pe->pe_stub_ex > 0 && - (pe->pe_flags & LIBPE_F_LOAD_DOS_STUB) == 0) { - assert((pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0); - (void) libpe_read_msdos_stub(pe); - } - - if (pe->pe_rh == NULL) { - errno = ENOENT; - return (NULL); - } - - return (pe->pe_rh); -} - -static uint32_t -rol32(uint32_t n, int c) -{ - - c &= 0x1f; - - return ((n << c) | (n >> (0x20 - c))); -} - -int -pe_rich_header_validate(PE *pe) -{ - PE_RichHdr *rh; - uint32_t cksum; - char *p; - int i, off; - - if (pe_rich_header(pe) == NULL) - return (-1); - - assert(pe->pe_rh_start != NULL); - - /* - * Initial value of the checksum is the offset to the begin of - * the Rich header. - */ - cksum = pe->pe_rh_start - pe->pe_stub; - - /* - * Add the bytes before the Rich header to the checksum, rotated - * left by the offset. - */ - for (p = pe->pe_stub; p < pe->pe_rh_start; p++) { - /* Skip dh_lfanew. */ - off = p - pe->pe_stub; - if (off >= 0x3c && off < 0x40) - continue; - cksum += rol32((unsigned char) *p, off); - } - - /* Add each compid rotated left by its count to the checksum. */ - rh = pe->pe_rh; - for (i = 0; (uint32_t) i < rh->rh_total; i++) - cksum += rol32(rh->rh_compid[i], rh->rh_cnt[i]); - - /* Validate the checksum with the XOR mask stored after "Rich". */ - if (cksum == rh->rh_xor) - return (1); - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_section.c b/contrib/elftoolchain/libpe/pe_section.c deleted file mode 100644 index 31d36b4f..00000000 --- a/contrib/elftoolchain/libpe/pe_section.c +++ /dev/null @@ -1,213 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -PE_Scn * -pe_getscn(PE *pe, size_t ndx) -{ - PE_Scn *ps; - - if (pe == NULL || ndx < 1 || ndx > 0xFFFFU) { - errno = EINVAL; - return (NULL); - } - - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - if (ps->ps_ndx == ndx) - return (ps); - } - - errno = ENOENT; - - return (NULL); -} - -size_t -pe_ndxscn(PE_Scn *ps) -{ - - if (ps == NULL) { - errno = EINVAL; - return (0); - } - - return (ps->ps_ndx); -} - -PE_Scn * -pe_nextscn(PE *pe, PE_Scn *ps) -{ - - if (pe == NULL) { - errno = EINVAL; - return (NULL); - } - - if (ps == NULL) - ps = STAILQ_FIRST(&pe->pe_scn); - else - ps = STAILQ_NEXT(ps, ps_next); - - while (ps != NULL) { - if (ps->ps_ndx >= 1 && ps->ps_ndx <= 0xFFFFU) - return (ps); - ps = STAILQ_NEXT(ps, ps_next); - } - - return (NULL); -} - -PE_Scn * -pe_newscn(PE *pe) -{ - PE_Scn *ps, *tps, *_tps; - - if (pe == NULL) { - errno = EINVAL; - return (NULL); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (NULL); - } - - if ((ps = libpe_alloc_scn(pe)) == NULL) - return (NULL); - - if (pe->pe_flags & LIBPE_F_BAD_SEC_HEADER) { - STAILQ_FOREACH_SAFE(tps, &pe->pe_scn, ps_next, _tps) - libpe_release_scn(tps); - pe->pe_flags &= ~LIBPE_F_BAD_SEC_HEADER; - } - - STAILQ_INSERT_TAIL(&pe->pe_scn, ps, ps_next); - - ps->ps_flags |= PE_F_DIRTY | LIBPE_F_LOAD_SECTION; - pe->pe_flags |= LIBPE_F_DIRTY_SEC_HEADER; - - return (ps); -} - -PE_Scn * -pe_insertscn(PE *pe, size_t ndx) -{ - PE_Scn *ps, *a, *b; - - if (pe == NULL || ndx < 1 || ndx > 0xFFFFU) { - errno = EINVAL; - return (NULL); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (NULL); - } - - if ((ps = libpe_alloc_scn(pe)) == NULL) - return (NULL); - - if (pe->pe_flags & LIBPE_F_BAD_SEC_HEADER) { - STAILQ_FOREACH_SAFE(a, &pe->pe_scn, ps_next, b) - libpe_release_scn(a); - pe->pe_flags &= ~LIBPE_F_BAD_SEC_HEADER; - } - - b = NULL; - STAILQ_FOREACH(a, &pe->pe_scn, ps_next) { - if (a->ps_ndx & 0xFFFF0000U) - continue; - if (a->ps_ndx == ndx) - break; - b = a; - } - - if (a == NULL) { - STAILQ_INSERT_TAIL(&pe->pe_scn, ps, ps_next); - if (b == NULL) - ps->ps_ndx = 1; - else - ps->ps_ndx = b->ps_ndx + 1; - } else if (b == NULL) { - STAILQ_INSERT_HEAD(&pe->pe_scn, ps, ps_next); - ps->ps_ndx = 1; - } else { - STAILQ_INSERT_AFTER(&pe->pe_scn, b, ps, ps_next); - ps->ps_ndx = ndx; - } - - a = ps; - while ((a = STAILQ_NEXT(a, ps_next)) != NULL) { - if ((a->ps_ndx & 0xFFFF0000U) == 0) - a->ps_ndx++; - } - - ps->ps_flags |= PE_F_DIRTY | LIBPE_F_LOAD_SECTION; - pe->pe_flags |= LIBPE_F_DIRTY_SEC_HEADER; - - return (ps); -} - -PE_SecHdr * -pe_section_header(PE_Scn *ps) -{ - - if (ps == NULL) { - errno = EINVAL; - return (NULL); - } - - return (&ps->ps_sh); -} - -int -pe_update_section_header(PE_Scn *ps, PE_SecHdr *sh) -{ - PE *pe; - - if (ps == NULL || sh == NULL) { - errno = EINVAL; - return (-1); - } - - pe = ps->ps_pe; - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - ps->ps_sh = *sh; - pe->pe_flags |= LIBPE_F_DIRTY_SEC_HEADER; - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_symtab.c b/contrib/elftoolchain/libpe/pe_symtab.c deleted file mode 100644 index 7956ab5d..00000000 --- a/contrib/elftoolchain/libpe/pe_symtab.c +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -int -pe_update_symtab(PE *pe, char *symtab, size_t sz, unsigned int nsym) -{ - PE_Scn *ps; - PE_SecBuf *sb; - PE_SecHdr *sh; - - if (pe == NULL || symtab == NULL || sz == 0) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - /* Remove the old symbol table. */ - STAILQ_FOREACH(ps, &pe->pe_scn, ps_next) { - if (ps->ps_ndx == 0xFFFFFFFFU) - libpe_release_scn(ps); - } - - /* - * Insert the new symbol table. - */ - - if ((ps = libpe_alloc_scn(pe)) == NULL) - return (-1); - - STAILQ_INSERT_TAIL(&pe->pe_scn, ps, ps_next); - ps->ps_ndx = 0xFFFFFFFFU; - ps->ps_flags |= PE_F_DIRTY; - - /* - * Set the symbol table section offset to the maximum to make sure - * that it will be placed in the end of the file during section - * layout. - */ - sh = &ps->ps_sh; - sh->sh_rawptr = 0xFFFFFFFFU; - sh->sh_rawsize = sz; - - /* Allocate the buffer. */ - if ((sb = libpe_alloc_buffer(ps, 0)) == NULL) - return (-1); - sb->sb_flags |= PE_F_DIRTY; - sb->sb_pb.pb_size = sz; - sb->sb_pb.pb_buf = symtab; - - pe->pe_nsym = nsym; - - return (0); -} diff --git a/contrib/elftoolchain/libpe/pe_update.c b/contrib/elftoolchain/libpe/pe_update.c deleted file mode 100644 index 4b2a5a37..00000000 --- a/contrib/elftoolchain/libpe/pe_update.c +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * Copyright (c) 2016 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -#include "_libpe.h" - -ELFTC_VCSID("$Id$"); - -off_t -pe_update(PE *pe) -{ - off_t off; - - if (pe == NULL) { - errno = EINVAL; - return (-1); - } - - if (pe->pe_cmd == PE_C_READ || pe->pe_flags & LIBPE_F_FD_DONE) { - errno = EACCES; - return (-1); - } - - if (pe->pe_cmd == PE_C_RDWR || (pe->pe_cmd == PE_C_WRITE && - (pe->pe_flags & LIBPE_F_SPECIAL_FILE) == 0)) { - if (lseek(pe->pe_fd, 0, SEEK_SET) < 0) { - errno = EIO; - return (-1); - } - } - - off = 0; - - if (pe->pe_obj == PE_O_PE32 || pe->pe_obj == PE_O_PE32P) { - if ((off = libpe_write_msdos_stub(pe, off)) < 0) - return (-1); - - if ((off = libpe_write_pe_header(pe, off)) < 0) - return (-1); - } - - if (libpe_resync_sections(pe, off) < 0) - return (-1); - - if ((off = libpe_write_coff_header(pe, off)) < 0) - return (-1); - - if ((off = libpe_write_section_headers(pe, off)) < 0) - return (-1); - - if ((off = libpe_write_sections(pe, off)) < 0) - return (-1); - - if (ftruncate(pe->pe_fd, off) < 0) { - errno = EIO; - return (-1); - } - - return (off); -} diff --git a/contrib/elftoolchain/mk/elftoolchain.components.mk b/contrib/elftoolchain/mk/elftoolchain.components.mk deleted file mode 100644 index 2cbf7d29..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.components.mk +++ /dev/null @@ -1,50 +0,0 @@ -# -# $Id$ -# - -# Knobs to turn parts of the source tree on or off. -# -# These knobs should be set to one of "yes" or "no". - -# Build additional tutorial documentation. (Manual page generation is -# controlled by the 'MKDOC' knob). -WITH_ADDITIONAL_DOCUMENTATION?=yes - -# Build the automation tools. -WITH_BUILD_TOOLS?= no - -# Build the instruction set analyser. -WITH_ISA?= no - -# Build PE support. -WITH_PE?= yes - -# Build test suites. -.if defined(MAKEOBJDIR) || defined(MAKEOBJDIRPREFIX) -.if defined(WITH_TESTS) && ${WITH_TESTS} == "yes" -.error Only in-tree builds are supported for tests currently [#271]. -.endif -WITH_TESTS?= no -.else -WITH_TESTS?= yes -.endif - -# Fail the build with an informative message if the value of any -# build knob is not a "yes" or "no". -.if ${WITH_ADDITIONAL_DOCUMENTATION} != "yes" && \ - ${WITH_ADDITIONAL_DOCUMENTATION} != "no" -.error Unrecognized value for WITH_ADDITIONAL_DOCUMENTATION:\ - "${WITH_ADDITIONAL_DOCUMENTATION}". -.endif -.if ${WITH_BUILD_TOOLS} != "yes" && ${WITH_BUILD_TOOLS} != "no" -.error Unrecognized value for WITH_BUILD_TOOLS: "${WITH_BUILD_TOOLS}". -.endif -.if ${WITH_ISA} != "yes" && ${WITH_ISA} != "no" -.error Unrecognized value for WITH_ISA: "${WITH_ISA}". -.endif -.if ${WITH_PE} != "yes" && ${WITH_PE} != "no" -.error Unrecognized value for WITH_PE: "${WITH_PE}". -.endif -.if ${WITH_TESTS} != "yes" && ${WITH_TESTS} != "no" -.error Unrecognized value for WITH_TESTS: "${WITH_TESTS}". -.endif diff --git a/contrib/elftoolchain/mk/elftoolchain.inc.mk b/contrib/elftoolchain/mk/elftoolchain.inc.mk deleted file mode 100644 index 270ea516..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.inc.mk +++ /dev/null @@ -1,36 +0,0 @@ -# -# Rules for handling include files. -# -# $Id$ - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -.include "${TOP}/mk/elftoolchain.os.mk" - -.include - -.if ${OS_HOST} == "Darwin" || ${OS_HOST} == "DragonFly" || \ - ${OS_HOST} == "FreeBSD" || ${OS_HOST} == "OpenBSD" -# Simulate . - -NOBINMODE?= 444 # Missing in OpenBSD's rule set. - -.PHONY: incinstall -includes: ${INCS} incinstall -.for inc in ${INCS} -install incinstall: ${DESTDIR}${INCSDIR}/${inc} -.PRECIOUS: ${DESTDIR}${INCSDIR}/${inc} -${DESTDIR}${INCSDIR}/${inc}: ${inc} - cmp -s $> $@ > /dev/null 2>&1 || \ - ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} $> $@ -.endfor -.else - -# Provide a default 'install' target. -install: incinstall .PHONY - -# Use the standard . -.include -.endif diff --git a/contrib/elftoolchain/mk/elftoolchain.lib.mk b/contrib/elftoolchain/mk/elftoolchain.lib.mk deleted file mode 100644 index 8d401443..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.lib.mk +++ /dev/null @@ -1,71 +0,0 @@ -# -# $Id$ -# - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -.include "${TOP}/mk/elftoolchain.os.mk" - -.include - -# Support a 'clobber' target. -clobber: clean os-specific-clobber .PHONY - -# Remove '.depend' files on a "make clean". -CLEANFILES+= .depend - -# Adjust CFLAGS -CFLAGS+= -I. # OBJDIR -CFLAGS+= -I${.CURDIR} # Sources -CFLAGS+= -I${.CURDIR}/${TOP}/common # Common code -.if defined(MAKEOBJDIRPREFIX) -CFLAGS+= -I${.OBJDIR}/${TOP}/common # Generated common code. -.else -.if ${.CURDIR} != ${.OBJDIR} -CFLAGS+= -I${.CURDIR}/${TOP}/common/${.OBJDIR:S/${.CURDIR}//} -.endif -.endif - -.if defined(LDADD) -_LDADD_LIBELF=${LDADD:M-lelf} -.if !empty(_LDADD_LIBELF) -CFLAGS+= -I${.CURDIR}/${TOP}/libelf -LDFLAGS+= -L${.OBJDIR}/${TOP}/libelf -.endif -.endif - -# Note: include the M4 ruleset after bsd.lib.mk. -.include "${TOP}/mk/elftoolchain.m4.mk" - -.if defined(DEBUG) -CFLAGS:= ${CFLAGS:N-O*} -g -.endif - -.if ${OS_HOST} == "DragonFly" || ${OS_HOST} == "FreeBSD" -# Install headers too, in the 'install' phase. -install: includes -.elif ${OS_HOST} == "Linux" || ${OS_HOST} == "NetBSD" || ${OS_HOST} == "Minix" -install: incinstall -.elif ${OS_HOST} == "OpenBSD" - -# OpenBSD's standard make ruleset does not install header files. Provide -# an alternative. - -NOBINMODE?= 444 - -install: ${INCS} incinstall - -.for inc in ${INCS} -incinstall:: ${DESTDIR}${INCSDIR}/${inc} -.PRECIOUS: ${DESTDIR}${INCSDIR}/${inc} -${DESTDIR}${INCSDIR}/${inc}: ${inc} - cmp -s $> $@ > /dev/null 2>&1 || \ - ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} $> $@ -.endfor - -.endif # OpenBSD - -# Bring in rules related to running the related test suite. -.include "${TOP}/mk/elftoolchain.test-target.mk" diff --git a/contrib/elftoolchain/mk/elftoolchain.m4.mk b/contrib/elftoolchain/mk/elftoolchain.m4.mk deleted file mode 100644 index 4e5c6033..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.m4.mk +++ /dev/null @@ -1,14 +0,0 @@ -# -# $Id$ -# - -# Implicit rules for the M4 pre-processor. - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -.SUFFIXES: .m4 .c -.m4.c: - m4 -D SRCDIR=${.CURDIR} ${M4FLAGS} ${.IMPSRC} > ${.TARGET} - diff --git a/contrib/elftoolchain/mk/elftoolchain.os.mk b/contrib/elftoolchain/mk/elftoolchain.os.mk deleted file mode 100644 index e6489786..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.os.mk +++ /dev/null @@ -1,26 +0,0 @@ -# -# $Id$ -# - -# OS specific build instructions - -.if !defined(OS_HOST) - -# Determine the host operating system flavor. -OS_HOST != uname -s - -# Bring in OS-specific Makefiles, if they exist -.if exists(${TOP}/mk/os.${OS_HOST}.mk) -.include "${TOP}/mk/os.${OS_HOST}.mk" -.endif - -# Bring in per-subproject OS-specific Makefiles, if they exist -.if exists(${.CURDIR}/os.${OS_HOST}.mk) -.include "${.CURDIR}/os.${OS_HOST}.mk" -.endif - -# Supply an OS-specific "clobber" rule, if one was not specified. -.if !target(os-specific-clobber) -os-specific-clobber: .PHONY -.endif -.endif diff --git a/contrib/elftoolchain/mk/elftoolchain.prog.mk b/contrib/elftoolchain/mk/elftoolchain.prog.mk deleted file mode 100644 index 8cfb4ab6..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.prog.mk +++ /dev/null @@ -1,129 +0,0 @@ -# -# Rules for building programs. -# -# $Id$ - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -.include "${TOP}/mk/elftoolchain.os.mk" - -LIBDWARF?= ${TOP}/libdwarf -LIBELF?= ${TOP}/libelf -LIBELFTC?= ${TOP}/libelftc - -BINDIR?= /usr/bin - -CFLAGS+= -I. -I${.CURDIR} -I${.CURDIR}/${TOP}/common -CLEANFILES+= .depend - -# TODO[#271]: Reduce the code duplication below. - -.if defined(LDADD) -_LDADD_LIBDWARF=${LDADD:M-ldwarf} -.if !empty(_LDADD_LIBDWARF) -CFLAGS+= -I${.CURDIR}/${TOP}/libdwarf -.if exists(${.OBJDIR}/${TOP}/libdwarf) -LDFLAGS+= -L${.OBJDIR}/${TOP}/libdwarf -.elif exists(${TOP}/libdwarf/${.OBJDIR:S,${.CURDIR}/,,}) -LDFLAGS+= -L${.CURDIR}/${TOP}/libdwarf/${.OBJDIR:S,${.CURDIR}/,,} -.else -.error Cannot determine LDFLAGS for -ldwarf. -.endif -.endif - -_LDADD_LIBELF=${LDADD:M-lelf} -.if !empty(_LDADD_LIBELF) -CFLAGS+= -I${.CURDIR}/${TOP}/libelf -.if exists(${.OBJDIR}/${TOP}/libelf) -LDFLAGS+= -L${.OBJDIR}/${TOP}/libelf -.elif exists(${TOP}/libelf/${.OBJDIR:S,${.CURDIR}/,,}) -LDFLAGS+= -L${.CURDIR}/${TOP}/libelf/${.OBJDIR:S,${.CURDIR}/,,} -.else -.error Cannot determine LDFLAGS for -lelf. -.endif -.endif - -_LDADD_LIBELFTC=${LDADD:M-lelftc} -.if !empty(_LDADD_LIBELFTC) -CFLAGS+= -I${.CURDIR}/${TOP}/libelftc -.if exists(${.OBJDIR}/${TOP}/libelftc) -LDFLAGS+= -L${.OBJDIR}/${TOP}/libelftc -.elif exists(${TOP}/libelftc/${.OBJDIR:S,${.CURDIR}/,,}) -LDFLAGS+= -L${.CURDIR}/${TOP}/libelftc/${.OBJDIR:S,${.CURDIR}/,,} -.else -.error Cannot determine LDFLAGS for -lelftc. -.endif -.endif - -_LDADD_LIBPE=${LDADD:M-lpe} -.if !empty(_LDADD_LIBPE) -CFLAGS+= -I${.CURDIR}/${TOP}/libpe -.if exists(${.OBJDIR}/${TOP}/libpe) -LDFLAGS+= -L${.OBJDIR}/${TOP}/libpe -.elif exists(${TOP}/libpe/${.OBJDIR:S,${.CURDIR}/,,}) -LDFLAGS+= -L${.CURDIR}/${TOP}/libpe/${.OBJDIR:S,${.CURDIR}/,,} -.else -.error Cannot determine LDFLAGS for -lpe. -.endif -.endif -.endif - -_LDADD_LIBARCHIVE=${LDADD:M-larchive} -.if !empty(_LDADD_LIBARCHIVE) -.if ${OS_HOST} == NetBSD -CFLAGS+= -I/usr/pkg/include -LDFLAGS+= -L/usr/pkg/lib -.elif ${OS_HOST} == OpenBSD -CFLAGS+= -I/usr/local/include -LDFLAGS+= -L/usr/local/lib -.endif -.endif - -# -# Handle lex(1) and yacc(1) in a portable fashion. -# -# New makefile variables used: -# -# LSRC -- a lexer definition suitable for use with lex(1) -# YSRC -- a parser definition for use with yacc(1) - -# Use standard rules from for building lexers. -.if defined(LSRC) -SRCS+= ${LSRC} -.endif - -# Handle the generation of yacc based parsers. -# If the program uses a lexer, add an automatic dependency -# on the generated parser header. -.if defined(YSRC) -.for _Y in ${YSRC} -SRCS+= ${_Y:R}.c -CLEANFILES+= ${_Y:R}.c ${_Y:R}.h -${_Y:R}.c ${_Y:R}.h: ${_Y} - ${YACC} -d -o ${_Y:R}.c ${.ALLSRC} - -.if defined(LSRC) -.for _L in ${LSRC} -${_L:R}.o: ${_Y:R}.h -.endfor -.endif - -.endfor -.endif - -.include - -# Note: include the M4 ruleset after bsd.prog.mk. -.include "${TOP}/mk/elftoolchain.m4.mk" - -# Support a 'clobber' target. -clobber: clean os-specific-clobber .PHONY - -.if defined(DEBUG) -CFLAGS:= ${CFLAGS:N-O*} -g -.endif - -# Bring in rules related to running the related test suite. -.include "${TOP}/mk/elftoolchain.test-target.mk" diff --git a/contrib/elftoolchain/mk/elftoolchain.subdir.mk b/contrib/elftoolchain/mk/elftoolchain.subdir.mk deleted file mode 100644 index e862c97c..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.subdir.mk +++ /dev/null @@ -1,17 +0,0 @@ -# -# Rules for recursing into directories -# $Id$ - -# Pass down 'test' as a valid target. - -.include "$(TOP)/mk/elftoolchain.os.mk" - -.if ${OS_HOST} == FreeBSD -SUBDIR_TARGETS+= clobber test -.elif ${OS_HOST} == OpenBSD -clobber: _SUBDIRUSE -.else # NetBSD, pmake on Linux -TARGETS+= cleandepend clobber test -.endif - -.include diff --git a/contrib/elftoolchain/mk/elftoolchain.test-target.mk b/contrib/elftoolchain/mk/elftoolchain.test-target.mk deleted file mode 100644 index 1724b098..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.test-target.mk +++ /dev/null @@ -1,16 +0,0 @@ -# $Id$ - -# -# Rules for invoking test suites. -# - -TEST_DIRECTORY= test -TEST_TARGET= test - -.if !target(test) -# The special target 'test' runs the test suite associated with a -# utility or library. -test: all .PHONY - cd ${TOP}/${TEST_DIRECTORY}/${.CURDIR:T} && \ - ${MAKE} all ${TEST_TARGET} -.endif diff --git a/contrib/elftoolchain/mk/elftoolchain.test.mk b/contrib/elftoolchain/mk/elftoolchain.test.mk deleted file mode 100644 index 77541b3d..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.test.mk +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# Rules for handling libtest based test suites. -# - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -TEST_BASE= $(TOP)/test/libtest -TEST_LIB= $(TEST_BASE)/lib # The test(3) API. -TEST_DRIVER= ${TEST_BASE}/driver # A command-line driver for tests. - -CFLAGS+= -I$(TEST_LIB) -I${TEST_DRIVER} - -MAKE_TEST_SCAFFOLDING?= yes - -.if exists(${.CURDIR}/../Makefile.tset) -.include "${.CURDIR}/../Makefile.tset" -.endif - -.if defined(TEST_SRCS) -PROG= tc_${.CURDIR:T:R} - -_C_SRCS= ${TEST_SRCS:M*.c} -_M4_SRCS= ${TEST_SRCS:M*.m4} - -SRCS= ${_C_SRCS} ${_M4_SRCS} # See -CLEANFILES+= ${_M4_SRCS:S/.m4$/.c/g} ${TEST_DATA} - -${PROG}: ${TEST_DATA} - -.if defined(MAKE_TEST_SCAFFOLDING) && ${MAKE_TEST_SCAFFOLDING} == "yes" -_TC_SRC= ${.OBJDIR}/tc.c # Test scaffolding. - -SRCS+= ${_TC_SRC} -CLEANFILES+= ${_TC_SRC} - -# Generate the scaffolding file "tc.c" from the test objects. -_TEST_OBJS= ${_C_SRCS:S/.c$/.o/g} ${_M4_SRCS:S/.m4$/.o/g} -_MAKE_SCAFFOLDING= ${TEST_BASE}/bin/make-test-scaffolding -${_TC_SRC}: ${_TEST_OBJS} - ${_MAKE_SCAFFOLDING} -o ${.TARGET} ${.ALLSRC} -.endif -.endif - -LDADD+= -L${TEST_LIB} -ltest -L${TEST_DRIVER} -ldriver - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/mk/elftoolchain.tet.mk b/contrib/elftoolchain/mk/elftoolchain.tet.mk deleted file mode 100644 index 866a18a0..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.tet.mk +++ /dev/null @@ -1,67 +0,0 @@ -# $Id$ -# -# Rules for handling TET based test suites. -# - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -.include "${TOP}/mk/elftoolchain.tetvars.mk" - -# Inform make(1) about the suffixes we use. -.SUFFIXES: .lsb32 .lsb64 .msb32 .msb64 .yaml - -TS_ROOT?= ${.CURDIR:H} -TS_OBJROOT?= ${.OBJDIR:H} - -TS_BASE= ${TOP}/test/tet - -TET_LIBS= ${TET_ROOT}/lib/tet3 -TET_OBJS= ${TET_LIBS}/tcm.o - -CFLAGS+= -I${TET_ROOT}/inc/tet3 -I${TS_ROOT}/common - -# Bring in test-suite specific definitions, if any. -.if exists(${.CURDIR}/../Makefile.tset) -.include "${.CURDIR}/../Makefile.tset" -.endif - -.if defined(TS_SRCS) -PROG= tc_${.CURDIR:T:R} - -_C_SRCS= ${TS_SRCS:M*.c} -_M4_SRCS= ${TS_SRCS:M*.m4} - -SRCS= ${_C_SRCS} ${_M4_SRCS} # See . -CLEANFILES+= ${_M4_SRCS:S/.m4$/.c/g} ${TS_DATA} - -${PROG}: ${TS_DATA} - -.if defined(GENERATE_TEST_SCAFFOLDING) -_TC_SRC= ${.OBJDIR}/tc.c # Test driver. -_TC_SCN= tet_scen # Scenario file. - -SRCS+= ${_TC_SRC} -CLEANFILES+= ${_TC_SRC} ${_TC_SCN} - -# Generate the driver file "tc.c" from the objects comprising the test case. -_TS_OBJS= ${_C_SRCS:S/.c$/.o/g} ${_M4_SRCS:S/.m4$/.o/g} -_MUNGE_TS= ${TS_BASE}/bin/munge-ts -${_TC_SRC}: ${_TS_OBJS} - ${_MUNGE_TS} -o ${.TARGET} -p ${.CURDIR:H:T}/${.CURDIR:T:R}/${PROG} \ - -s ${_TC_SCN} ${.ALLSRC} -.endif -.endif - -# M4->C translation. -M4FLAGS+= -I${TS_ROOT}/common -I${TS_BASE}/common - -.include "${TOP}/mk/elftoolchain.m4.mk" - -LDADD+= ${TET_OBJS} -L${TET_LIBS} -lapi -CLEANFILES+= tet_xres tet_captured - -ELFTOOLCHAIN_AR= ${TOP}/ar/ar - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/mk/elftoolchain.tetbase.mk b/contrib/elftoolchain/mk/elftoolchain.tetbase.mk deleted file mode 100644 index dc25b7dc..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.tetbase.mk +++ /dev/null @@ -1,47 +0,0 @@ -# $Id$ - -# Convenience rules for the top level directory containing a TET-based test -# suite. - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -.include "${TOP}/mk/elftoolchain.tetvars.mk" - -.MAIN: all -.PHONY: clobber execute tccbuild tccclean test - - -# Set up the environment for invoking "tcc", based on the target -# specified. - -.if !defined(TET_EXECUTE) -TET_EXECUTE= ${.OBJDIR} -.endif - -.if make(tccbuild) -TET_OPTIONS+= -b -.endif - -.if make(tccclean) -TET_OPTIONS+= -c -.endif - -.if make(execute) || make(test) -TET_OPTIONS+= -e -.endif - -execute tccbuild tccclean test: - TET_ROOT=${TET_ROOT} TET_EXECUTE=${TET_EXECUTE} \ - TET_SUITE_ROOT=${.CURDIR} ${TET_ROOT}/bin/tcc ${TET_OPTIONS} . - ${TOP}/test/tet/bin/check-tet-journal -t ${.OBJDIR} - -clobber: clean - rm -rf ${TET_RESULTS_DIR} ${TET_TMP_DIR} - -# Ensure that a 'make test' does not recurse further into the test suite's -# directory hierarchy. -.if !make(test) -.include "${TOP}/mk/elftoolchain.subdir.mk" -.endif diff --git a/contrib/elftoolchain/mk/elftoolchain.tetvars.mk b/contrib/elftoolchain/mk/elftoolchain.tetvars.mk deleted file mode 100644 index 4aa69e0a..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.tetvars.mk +++ /dev/null @@ -1,22 +0,0 @@ -# -# Configuration information for TET. -# -# $Id$ -# - -.if !defined(TOP) -.error Make variable \"TOP\" has not been defined. -.endif - -# Set TET_ROOT and version. -TET_VERSION?= 3.8 -TET_ROOT?= ${TOP}/test/tet/tet${TET_VERSION} - -TET_DOWNLOAD_URL= \ - http://tetworks.opengroup.org/downloads/38/software/Sources/${TET_VERSION}/tet${TET_VERSION}-src.tar.gz - -# The directory where test journals are placed. -TET_RESULTS_DIR?= results - -# The temporary directory used by TET. -TET_TMP_DIR?= tet_tmp_dir diff --git a/contrib/elftoolchain/mk/elftoolchain.tex.mk b/contrib/elftoolchain/mk/elftoolchain.tex.mk deleted file mode 100644 index de8ced17..00000000 --- a/contrib/elftoolchain/mk/elftoolchain.tex.mk +++ /dev/null @@ -1,139 +0,0 @@ -# -# Rules to build LateX documentation. -# -# $Id$ -# - -.include "${TOP}/mk/elftoolchain.os.mk" - -.if defined(MKTEX) && ${MKTEX} == "yes" && exists(${MPOST}) && exists(${PDFLATEX}) - -TEXINPUTS= `kpsepath tex`:${.CURDIR} -_TEX= TEXINPUTS=${TEXINPUTS} ${PDFLATEX} -file-line-error \ - -halt-on-error - -DOCSUBDIR= elftoolchain # Destination directory. -COVER_PAGE?= 1 # Cover page number in the document. -COVER_DPI?= 300 # Image resolution for cover page images. - -.MAIN: all - -all: ${DOC}.pdf .PHONY - -# Build an index. -# -# First, we need to remove the existing ".ind" file and run `latex` once -# to generate it afresh. This generates the appropriate ".idx" files used -# by `makeindex`. -# Next, `makeindex` is used to create the ".ind" file. -# Then another set of `latex` runs serves to typeset the index. -index: .PHONY - rm -f ${DOC}.ind - ${_TEX} ${DOC}.tex - ${MAKEINDEX} ${DOC}.idx - ${_TEX} ${DOC}.tex - @if grep 'Rerun to get' ${DOC}.log > /dev/null; then \ - ${_TEX} ${DOC}.tex; \ - fi - -# Cover page generation. -# -# Use the dedicated cover page if present. -.if exists(${DOC}.cover.tex) -${DOC}.cover.pdf: ${DOC}.cover.tex ${COVER_SRCS} - ${_TEX} ${.CURDIR}/${DOC}.cover.tex > /dev/null || \ - (cat ${DOC}.cover.log; rm -f ${.TARGET}; exit 1) -.else -# Otherwise, extract the cover page from the main document. -# -# This uses 'pdfjam' from the Tex Live package. -${DOC}.cover.pdf: ${DOC}.pdf ${GENERATED_VERSION_TEX} .PHONY - ${PDFJAM} -q -o ${DOC}.cover.pdf ${DOC}.pdf ${COVER_PAGE} -.endif - -CLEANFILES+= ${DOC}.cover.pdf - -# Converts the cover page to JPEG format, using US-Letter -# (8.5" x 11.0") dimensions. -# -# This step uses 'pdftoppm' from the Poppler package. -${DOC}.cover.usletter.jpeg: ${DOC}.cover.pdf .PHONY - _W=$$(echo 8.5 '*' ${COVER_DPI} | bc | sed -e 's/\.[0-9]*$$//'); \ - _H=$$(echo 11.0 '*' ${COVER_DPI} | bc | sed -e 's/\.[0-9]*$$//'); \ - pdftoppm -r ${COVER_DPI} -jpeg -scale-to-x $${_W} -scale-to-y $${_H} \ - -aa yes -freetype yes ${DOC}.cover.pdf > ${.TARGET} - -CLEANFILES+= ${DOC}.cover.usletter.jpeg - -# Recognize additional suffixes. -.SUFFIXES: .mp .eps .tex .pdf - -# Rules to build MetaPost figures. -.mp.eps: - @if [ "${.OBJDIR}" != "${.CURDIR}" ]; then cp ${.CURDIR}/${.IMPSRC:T} ${.OBJDIR}/; fi - TEX=${MPOSTTEX} ${MPOST} -halt-on-error ${.IMPSRC:T} || (rm ${.IMPSRC:T:R}.1; false) - mv ${.IMPSRC:T:R}.1 ${.TARGET} -.eps.pdf: - ${EPSTOPDF} ${.IMPSRC} > ${.TARGET} || (rm ${.TARGET}; false) - -.for f in ${IMAGES_MP} -${f:R}.eps: ${.CURDIR}/${f} -CLEANFILES+= ${f:R}.eps ${f:R}.log ${f:R}.pdf ${f:R}.mpx -.endfor - -CLEANFILES+= mpxerr.tex mpxerr.log makempx.log missfont.log - -${DOC}.pdf: ${SRCS} ${IMAGES_MP:S/.mp$/.pdf/g} ${GENERATED_VERSION_TEX} - ${_TEX} ${.CURDIR}/${DOC}.tex > /dev/null || \ - (cat ${DOC}.log; rm -f ${.TARGET}; exit 1) - @if grep 'undefined references' ${DOC}.log > /dev/null; then \ - ${_TEX} ${.CURDIR}/${DOC}.tex > /dev/null; \ - fi - @if grep 'Rerun to get' ${DOC}.log > /dev/null; then \ - ${_TEX} ${.CURDIR}/${DOC}.tex > /dev/null; \ - fi - -.if defined(GENERATED_VERSION_TEX) -${GENERATED_VERSION_TEX}: .PHONY - ${TOP}/libelftc/make-toolchain-version -t ${TOP} -o ${.TARGET} -h '' -p -.endif - -CLEANFILES+= ${DOC}.pdf - -# Remove temporary files. -.for file in ${DOC} ${DOC}.cover ${COVER_SRCS:M*.tex:C/.tex$//1g} -.for ext in aux log out toc ind idx ilg -CLEANFILES+= ${file}.${ext} -.endfor -.endfor - -# Do something sensible for the `depend` and `cleandepend` targets. -depend: .depend - @true -.depend: - @echo ${DOC}.pdf: ${SRCS} ${IMAGES_MP:S/.mp$/.pdf/g} > ${.TARGET} -cleandepend: .PHONY - rm -f .depend - -clean clobber: .PHONY - rm -f ${CLEANFILES} - -install: all - @mkdir -p ${DESTDIR}/${DOCDIR}/${DOCSUBDIR} - ${INSTALL} -g ${DOCGRP} -o ${DOCOWN} ${DOC}.pdf \ - ${DESTDIR}/${DOCDIR}/${DOCSUBDIR} - -# Include rules for `make obj` -.include - -.else - -all clean cleandepend clobber depend install obj: .PHONY .SILENT - echo -n WARNING: make \"${.TARGET}\" in \"${.CURDIR:T}\" skipped: -.if defined(MKTEX) && ${MKTEX} == "yes" - echo " missing tools." -.else - echo " builds of TeX documentation are disabled." -.endif - true -.endif diff --git a/contrib/elftoolchain/mk/os.Darwin.mk b/contrib/elftoolchain/mk/os.Darwin.mk deleted file mode 100644 index 450c671a..00000000 --- a/contrib/elftoolchain/mk/os.Darwin.mk +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -# -# Build definitions for Darwin - -# Apple ships libarchive, but for some reason does not provide the headers. -# Build against a homebrew-provided libarchive library and headers. -LDFLAGS+= -L/usr/local/opt/libarchive/lib -CFLAGS+= -I/usr/local/opt/libarchive/include diff --git a/contrib/elftoolchain/mk/os.DragonFly.mk b/contrib/elftoolchain/mk/os.DragonFly.mk deleted file mode 100644 index 8323131e..00000000 --- a/contrib/elftoolchain/mk/os.DragonFly.mk +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ -# -# Build definitions for DragonFly - -MKTESTS?= yes # Enable the test suites. -MKDOC?= yes # Build documentation. -MKNOWEB?= no # Build literate programs. - -NOSHARED= yes # Link programs statically by default. diff --git a/contrib/elftoolchain/mk/os.FreeBSD.mk b/contrib/elftoolchain/mk/os.FreeBSD.mk deleted file mode 100644 index 01c41c83..00000000 --- a/contrib/elftoolchain/mk/os.FreeBSD.mk +++ /dev/null @@ -1,28 +0,0 @@ -# $Id$ -# -# Build definitions for FreeBSD - -MKDOC?= yes # Build documentation. -MKTESTS?= yes # Enable the test suites. -MKTEX?= yes # TeX and friends are packaged in the teTeX package. -MKNOWEB?= no # Build literate programs. - -# Link programs statically by default. -NO_SHARED?= yes - -.if defined(MKTEX) && ${MKTEX} == "yes" -EPSTOPDF?= /usr/local/bin/epstopdf -MAKEINDEX?= /usr/local/bin/makeindex -MPOSTTEX?= /usr/local/bin/latex -MPOST?= /usr/local/bin/mpost -PDFJAM?= /usr/local/bin/pdfjam -PDFLATEX?= /usr/local/bin/pdflatex -.endif - -# Translate the spelling of a build knob (see ticket #316). -.if defined(NOMAN) -MK_MAN= no # FreeBSD 7 and later. -.endif - -# Literate programming utility. -NOWEB?= /usr/local/bin/noweb diff --git a/contrib/elftoolchain/mk/os.Linux.mk b/contrib/elftoolchain/mk/os.Linux.mk deleted file mode 100644 index 9e8442a0..00000000 --- a/contrib/elftoolchain/mk/os.Linux.mk +++ /dev/null @@ -1,22 +0,0 @@ -# $Id$ -# -# Build recipes for GNU/Linux based operating systems. - -MKDOC?= yes # Build documentation. -MKLINT?= no -MKPIC?= no -MKNOWEB?= yes # Build literate programs. -MKTESTS?= yes # Enable the test suites. -MKTEX?= yes # Build TeX-based documentation. - -OBJECT_FORMAT= ELF # work around a bug in the pmake package - -YFLAGS+= -d # force bison to write y.tab.h - -EPSTOPDF?= /usr/bin/epstopdf -MAKEINDEX?= /usr/bin/makeindex -MPOST?= /usr/bin/mpost -MPOSTTEX?= /usr/bin/latex -NOWEB?= /usr/bin/noweb -PDFJAM?= /usr/bin/pdfjam -PDFLATEX?= /usr/bin/pdflatex diff --git a/contrib/elftoolchain/mk/os.Minix.mk b/contrib/elftoolchain/mk/os.Minix.mk deleted file mode 100644 index 83de69f8..00000000 --- a/contrib/elftoolchain/mk/os.Minix.mk +++ /dev/null @@ -1,16 +0,0 @@ -# $Id$ -# -# Build definitions for Minix 3.2.0. - -MKDOC?= yes # Build documentation. -MKTESTS?= no # Enable the test suites. -MKNOWEB?= no # Build literate programs. - -# Use GCC to compile the source tree. -CC=/usr/pkg/bin/gcc - -# Use the correct compiler type (override ). -COMPILER_TYPE=gnu - -# Also choose GNU 'ar'. -AR=ar diff --git a/contrib/elftoolchain/mk/os.NetBSD.mk b/contrib/elftoolchain/mk/os.NetBSD.mk deleted file mode 100644 index 394e2a8f..00000000 --- a/contrib/elftoolchain/mk/os.NetBSD.mk +++ /dev/null @@ -1,21 +0,0 @@ -# $Id$ -# -# Build recipes for NetBSD. - -LDSTATIC?= -static # link programs statically - -MKDOC?= yes # Build documentation. -MKLINT?= no # lint dies with a sigbus -MKTESTS?= yes # Enable the test suites. -MKNOWEB?= no # Build literate programs. - -# Literate programming utility. -NOWEB?= /usr/pkgsrc/bin/noweb - -# NetBSD's 'clean' target does not remove 'cat[0-9]' and 'html[0-9]' -# files generate from manual page sources. Augment the 'clobber' -# target to remove these. -os-specific-clobber: .PHONY -.for f in cat html - rm -f ${MANPAGES:@M@${M:R}.$f${M:E}@} -.endfor diff --git a/contrib/elftoolchain/mk/os.OpenBSD.mk b/contrib/elftoolchain/mk/os.OpenBSD.mk deleted file mode 100644 index 4f7bc3a4..00000000 --- a/contrib/elftoolchain/mk/os.OpenBSD.mk +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ -# -# Build recipes for OpenBSD. - -MKDOC?= no # Build documentation. -MKTESTS?= yes # Enable the test suites. -MKNOWEB?= no # Build literate programs. - -NOPIC?= yes diff --git a/contrib/elftoolchain/nm/Makefile b/contrib/elftoolchain/nm/Makefile deleted file mode 100644 index f5326453..00000000 --- a/contrib/elftoolchain/nm/Makefile +++ /dev/null @@ -1,13 +0,0 @@ - -# $Id$ - -TOP= .. - -PROG= nm -SRCS= nm.c - -WARNS?= 6 - -LDADD= -ldwarf -lelftc -lelf - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/nm/nm.1 b/contrib/elftoolchain/nm/nm.1 deleted file mode 100644 index 2c9ce274..00000000 --- a/contrib/elftoolchain/nm/nm.1 +++ /dev/null @@ -1,340 +0,0 @@ -.\" Copyright (c) 2007 Hyogeol Lee -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer -.\" in this position and unchanged. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd September 13, 2017 -.Dt NM 1 -.Os -.Sh NAME -.Nm nm -.Nd display symbolic information in object files -.Sh SYNOPSIS -.Nm -.Op Fl -debug-syms -.Op Fl -defined-only -.Op Fl -demangle Ns Op = Ns style -.Op Fl -dynamic -.Op Fl -extern-only -.Op Fl -help -.Op Fl -line-numbers -.Op Fl -no-demangle -.Op Fl -no-sort -.Op Fl -numeric-sort -.Op Fl -print-armap -.Op Fl -print-file-name -.Op Fl -print-size -.Op Fl -radix= Ns Ar format -.Op Fl -reverse-sort -.Op Fl -size-sort -.Op Fl -undefined-only -.Op Fl -version -.Op Fl A -.Op Fl B -.Op Fl C Op Ar style -.Op Fl D -.Op Fl P -.Op Fl V -.Op Fl a -.Op Fl e -.Op Fl g -.Op Fl h -.Op Fl l -.Op Fl n -.Op Fl o -.Op Fl p -.Op Fl r -.Op Fl S -.Op Fl s -.Op Fl t Ar format -.Op Fl u -.Op Fl x -.Ar -.Sh DESCRIPTION -The -.Nm -utility displays symbolic information in the object files, -executables, and object library files named by its arguments. -Lack of symbolic information in an otherwise valid input -file, is not considered to be an error. -If no files are specified on the command line, -.Nm -will attempt to read -.Pa a.out . -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width ".Fl d Ar argument" -.It Fl -debug-syms -Display all symbols, including debugger-only symbols. -.It Fl -defined-only -Display only defined symbols. -.It Fl -demangle Ns Op = Ns Ar style -Decode (demangle) low-level symbol names into human-readable names. -Supported values for argument -.Ar style -are -.Sq auto , -.Sq gnu-v2 , -.Sq gnu-v3 -and -.Sq arm. -If argument -.Ar style -is not specified, it is taken to be -.Sq auto . -.It Fl -dynamic -Only display dynamic symbols. -This option is only meaningful for shared libraries. -.It Fl -extern-only -Only display information about global (external) symbols. -.It Fl -help -Display a help message and exit. -.It Fl -format Ns = Ns Ar format -Display output in the format specified by argument -.Ar format . -Supported values for the format argument are -.Sq bsd , -.Sq sysv , -and -.Sq posix . -The default output format is -.Sq bsd . -.It Fl -line-numbers -Display the filename and line number associated a symbol using -any debugging information present in the input file. -For defined symbols, look up the line number associated with -the address of the symbol. -For undefined symbols, look up the line number associated with -a relocation entry that refers to the symbol. -If line number information can be determined, it is displayed after -other symbol information. -.It Fl -no-demangle -Do not demangle symbol names (default). -.It Fl -no-sort -Do not sort symbols. -.It Fl -numeric-sort -Sort symbols numerically by address instead of alphabetically by name. -.It Fl -print-armap -For -.Xr ar 1 -archives, include the index of the archive's members. -.It Fl -print-file-name -Write the full pathname or library name of an object on each line, -before the rest of the information for a symbol. -If this option is not specified, -.Nm -will only identify an input file once, before its symbols are -listed. -.It Fl -print-size -Print the size of each symbol instead of its value. -.It Fl -radix Ns = Ns Ar radix -Print numeric values using the specified radix. -Supported values for argument -.Ar radix -are -.Sq d -for decimal, -.Sq o -for octal, and -.Sq x -for hexadecimal. -.It Fl -reverse-sort -Reverse the order of the sort. -.It Fl -size-sort -Sort symbols by size instead of alphabetically by name. -.It Fl -undefined-only -Display only undefined symbols. -.It Fl -version -Display the version identifier for -.Nm -and exit. -.It Fl A -Equivalent to specifying option -.Fl -print-file-name . -.It Fl B -Equivalent to specifying option -.Fl -format= Ns Ar bsd . -.It Fl C Op Ar style -Equivalent to specifying option -.Fl -demangle Ns Op = Ns Ar style . -.It Fl D -Equivalent to specifying option -.Fl -dynamic . -.It Fl F Ar format -Equivalent to specifying option -.Fl -format Ns = Ns Ar format . -.It Fl P -Equivalent to specifying option -.Fl -format Ns = Ns Ar posix . -.It Fl S -Equivalent to specifying option -.Fl -print-size . -.It Fl V -Equivalent to specifying option -.Fl -version . -.It Fl a -Equivalent to specifying option -.Fl -debug-syms . -.It Fl e -Only display information for global and static symbols. -.It Fl f -Produce full output (default). -.It Fl g -Equivalent to specifying option -.Fl -extern-only . -.It Fl h -Equivalent to specifying option -.Fl -help . -.It Fl l -Equivalent to specifying option -.Fl -line-numbers . -.It Fl n -Equivalent to specifying option -.Fl -numeric-sort . -.It Fl o -If POSIX output was specified using the -.Fl F Ar posix -or -.Fl P -options, this option is equivalent to specifying -.Fl -radix Ns = Ns Sq Ar o . -If POSIX output was not specified, this option -acts as a synonym for the -.Fl -print-file-name -option. -.It Fl p -Equivalent to specifying option -.Fl -no-sort . -.It Fl v -Equivalent to option -.Fl n . -.It Fl r -Equivalent to specifying option -.Fl -reverse-sort -.It Fl s -Equivalent to specifying option -.Fl -print-armap . -.It Fl t Ar radix -Equivalent to specifying option -.Fl -radix= Ns Ar radix . -.It Fl u -Equivalent to specifying option -.Fl -undefined-only . -.It Fl x -Write numeric values in hexadecimal (equivalent to -t x). -.El -.Sh OUTPUT FORMAT -.Pp -The -.Nm -utility can present its information in a number of formats, numeric -radices and sort orders. -By default -.Nm -uses BSD style output, a hexadecimal radix, without output sorted -alphabetically by name and without demangling of names. -.Pp -For each symbol listed, -.Nm -presents the following information: -.Bl -bullet -compact -.It -The library or object name, if options -.Fl A -or -.Fl -print-file-name -were specified. -.It -The symbol name. -.It -The type of the symbol denoted by a single character as below: -.Bl -tag -compact -width indent -.It A -A global, absolute symbol. -.It B -A global -.Dq bss -(uninitialized data) symbol. -.It C -A -.Dq common -symbol, representing uninitialized data. -.It D -A global symbol naming initialized data. -.It N -A debugger symbol. -.It R -A read-only data symbol. -.It T -A global text symbol. -.It U -An undefined symbol. -.It V -A weak object. -.It W -A weak reference. -.It a -A local absolute symbol. -.It b -A local -.Dq bss -(uninitialized data) symbol. -.It d -A local data symbol. -.It r -A local read-only data symbol. -.It t -A local text symbol. -.It v -A weak object that is undefined. -.It w -A weak symbol that is undefined. -.It ? -None of the above. -.El -.It -The value of the symbol. -.It -The size of the symbol if applicable. -.It -Line number information, if available and if options -.Fl l -or -.Fl -line-numbers -were specified. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr ar 1 , -.Xr objdump 1 , -.Xr ranlib 1 , -.Xr elf 3 -.Sh AUTHORS -The -.Nm -utility and this manual page were written by -.An Hyogeol Lee Aq Mt hyogeollee@gmail.com . diff --git a/contrib/elftoolchain/nm/nm.c b/contrib/elftoolchain/nm/nm.c deleted file mode 100644 index d7b2d4c9..00000000 --- a/contrib/elftoolchain/nm/nm.c +++ /dev/null @@ -1,2119 +0,0 @@ -/*- - * Copyright (c) 2007 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -/* symbol information list */ -STAILQ_HEAD(sym_head, sym_entry); - -struct sym_entry { - char *name; - GElf_Sym *sym; - STAILQ_ENTRY(sym_entry) sym_entries; -}; - -typedef int (*fn_sort)(const void *, const void *); -typedef void (*fn_elem_print)(char, const char *, const GElf_Sym *, const char *); -typedef void (*fn_sym_print)(const GElf_Sym *); -typedef int (*fn_filter)(char, const GElf_Sym *, const char *); - -/* output filter list */ -static SLIST_HEAD(filter_head, filter_entry) nm_out_filter = - SLIST_HEAD_INITIALIZER(nm_out_filter); - -struct filter_entry { - fn_filter fn; - SLIST_ENTRY(filter_entry) filter_entries; -}; - -struct sym_print_data { - struct sym_head *headp; - size_t sh_num, list_num; - const char *t_table, **s_table, *filename, *objname; -}; - -struct nm_prog_info { - const char *name; - const char *def_filename; -}; - -/* List for line number information. */ -struct line_info_entry { - uint64_t addr; /* address */ - uint64_t line; /* line number */ - char *file; /* file name with path */ - SLIST_ENTRY(line_info_entry) entries; -}; -SLIST_HEAD(line_info_head, line_info_entry); - -/* List for function line number information. */ -struct func_info_entry { - char *name; /* function name */ - char *file; /* file name with path */ - uint64_t lowpc; /* low address */ - uint64_t highpc; /* high address */ - uint64_t line; /* line number */ - SLIST_ENTRY(func_info_entry) entries; -}; -SLIST_HEAD(func_info_head, func_info_entry); - -/* List for variable line number information. */ -struct var_info_entry { - char *name; /* variable name */ - char *file; /* file name with path */ - uint64_t addr; /* address */ - uint64_t line; /* line number */ - SLIST_ENTRY(var_info_entry) entries; -}; -SLIST_HEAD(var_info_head, var_info_entry); - -/* output numric type */ -enum radix { - RADIX_OCT, - RADIX_HEX, - RADIX_DEC -}; - -/* output symbol type, PRINT_SYM_DYN for dynamic symbol only */ -enum print_symbol { - PRINT_SYM_SYM, - PRINT_SYM_DYN -}; - -/* output name type */ -enum print_name { - PRINT_NAME_NONE, - PRINT_NAME_FULL, - PRINT_NAME_MULTI -}; - -struct nm_prog_options { - enum print_symbol print_symbol; - enum print_name print_name; - enum radix t; - int demangle_type; - bool print_debug; - bool print_armap; - int print_size; - bool debug_line; - int def_only; - bool undef_only; - int sort_size; - bool sort_reverse; - int no_demangle; - - /* - * function pointer to sort symbol list. - * possible function - cmp_name, cmp_none, cmp_size, cmp_value - */ - fn_sort sort_fn; - - /* - * function pointer to print symbol elem. - * possible function - sym_elem_print_all - * sym_elem_print_all_portable - * sym_elem_print_all_sysv - */ - fn_elem_print elem_print_fn; - - fn_sym_print value_print_fn; - fn_sym_print size_print_fn; -}; - -#define CHECK_SYM_PRINT_DATA(p) (p->headp == NULL || p->sh_num == 0 || \ -p->t_table == NULL || p->s_table == NULL || p->filename == NULL) -#define IS_SYM_TYPE(t) ((t) == '?' || isalpha((t)) != 0) -#define IS_UNDEF_SYM_TYPE(t) ((t) == 'U' || (t) == 'v' || (t) == 'w') -#define UNUSED(p) ((void)p) - -static int cmp_name(const void *, const void *); -static int cmp_none(const void *, const void *); -static int cmp_size(const void *, const void *); -static int cmp_value(const void *, const void *); -static void filter_dest(void); -static int filter_insert(fn_filter); -static void get_opt(int, char **); -static int get_sym(Elf *, struct sym_head *, int, size_t, size_t, - const char *, const char **, int); -static const char * get_sym_name(Elf *, const GElf_Sym *, size_t, - const char **, int); -static char get_sym_type(const GElf_Sym *, const char *); -static void global_dest(void); -static void global_init(void); -static bool is_sec_data(GElf_Shdr *); -static bool is_sec_debug(const char *); -static bool is_sec_nobits(GElf_Shdr *); -static bool is_sec_readonly(GElf_Shdr *); -static bool is_sec_text(GElf_Shdr *); -static void print_ar_index(int, Elf *); -static void print_header(const char *, const char *); -static void print_version(void); -static int read_elf(Elf *, const char *, Elf_Kind); -static int read_object(const char *); -static int read_files(int, char **); -static void set_opt_value_print_fn(enum radix); -static int sym_elem_def(char, const GElf_Sym *, const char *); -static int sym_elem_global(char, const GElf_Sym *, const char *); -static int sym_elem_global_static(char, const GElf_Sym *, - const char *); -static int sym_elem_nondebug(char, const GElf_Sym *, const char *); -static int sym_elem_nonzero_size(char, const GElf_Sym *, - const char *); -static void sym_elem_print_all(char, const char *, - const GElf_Sym *, const char *); -static void sym_elem_print_all_portable(char, const char *, - const GElf_Sym *, const char *); -static void sym_elem_print_all_sysv(char, const char *, - const GElf_Sym *, const char *); -static int sym_elem_undef(char, const GElf_Sym *, const char *); -static void sym_list_dest(struct sym_head *); -static int sym_list_insert(struct sym_head *, const char *, - const GElf_Sym *); -static void sym_list_print(struct sym_print_data *, - struct func_info_head *, struct var_info_head *, - struct line_info_head *); -static void sym_list_print_each(struct sym_entry *, - struct sym_print_data *, struct func_info_head *, - struct var_info_head *, struct line_info_head *); -static struct sym_entry *sym_list_sort(struct sym_print_data *); -static void sym_size_oct_print(const GElf_Sym *); -static void sym_size_hex_print(const GElf_Sym *); -static void sym_size_dec_print(const GElf_Sym *); -static void sym_value_oct_print(const GElf_Sym *); -static void sym_value_hex_print(const GElf_Sym *); -static void sym_value_dec_print(const GElf_Sym *); -static void usage(int); - -static struct nm_prog_info nm_info; -static struct nm_prog_options nm_opts; -static int nm_elfclass; - -/* - * Point to current sym_print_data to use portable qsort function. - * (e.g. There is no qsort_r function in NetBSD.) - * - * Using in sym_list_sort. - */ -static struct sym_print_data *nm_print_data; - -static const struct option nm_longopts[] = { - { "debug-syms", no_argument, NULL, 'a' }, - { "defined-only", no_argument, &nm_opts.def_only, 1}, - { "demangle", optional_argument, NULL, 'C' }, - { "dynamic", no_argument, NULL, 'D' }, - { "extern-only", no_argument, NULL, 'g' }, - { "format", required_argument, NULL, 'F' }, - { "help", no_argument, NULL, 'h' }, - { "line-numbers", no_argument, NULL, 'l' }, - { "no-demangle", no_argument, &nm_opts.no_demangle, - 1}, - { "no-sort", no_argument, NULL, 'p' }, - { "numeric-sort", no_argument, NULL, 'v' }, - { "print-armap", no_argument, NULL, 's' }, - { "print-file-name", no_argument, NULL, 'A' }, - { "print-size", no_argument, NULL, 'S' }, - { "radix", required_argument, NULL, 't' }, - { "reverse-sort", no_argument, NULL, 'r' }, - { "size-sort", no_argument, &nm_opts.sort_size, 1}, - { "undefined-only", no_argument, NULL, 'u' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; - -#if defined(ELFTC_NEED_BYTEORDER_EXTENSIONS) -static __inline uint32_t -be32dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]); -} - -static __inline uint32_t -le32dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]); -} - -static __inline uint64_t -be64dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return (((uint64_t)be32dec(p) << 32) | be32dec(p + 4)); -} - -static __inline uint64_t -le64dec(const void *pp) -{ - unsigned char const *p = (unsigned char const *)pp; - - return (((uint64_t)le32dec(p + 4) << 32) | le32dec(p)); -} -#endif - -static int -cmp_name(const void *l, const void *r) -{ - - assert(l != NULL); - assert(r != NULL); - assert(((const struct sym_entry *)l)->name != NULL); - assert(((const struct sym_entry *)r)->name != NULL); - - return (strcmp(((const struct sym_entry *)l)->name, - ((const struct sym_entry *)r)->name)); -} - -static int -cmp_none(const void *l, const void *r) -{ - - UNUSED(l); - UNUSED(r); - - return (0); -} - -/* Size comparison. If l and r have same size, compare their name. */ -static int -cmp_size(const void *lp, const void *rp) -{ - const struct sym_entry *l, *r; - - l = lp; - r = rp; - - assert(l != NULL); - assert(l->name != NULL); - assert(l->sym != NULL); - assert(r != NULL); - assert(r->name != NULL); - assert(r->sym != NULL); - - if (l->sym->st_size == r->sym->st_size) - return (strcmp(l->name, r->name)); - - return (l->sym->st_size - r->sym->st_size); -} - -/* Value comparison. Undefined symbols come first. */ -static int -cmp_value(const void *lp, const void *rp) -{ - const struct sym_entry *l, *r; - const char *ttable; - int l_is_undef, r_is_undef; - - l = lp; - r = rp; - - assert(nm_print_data != NULL); - ttable = nm_print_data->t_table; - - assert(l != NULL); - assert(l->name != NULL); - assert(l->sym != NULL); - assert(r != NULL); - assert(r->name != NULL); - assert(r->sym != NULL); - assert(ttable != NULL); - - l_is_undef = IS_UNDEF_SYM_TYPE(get_sym_type(l->sym, ttable)) ? 1 : 0; - r_is_undef = IS_UNDEF_SYM_TYPE(get_sym_type(r->sym, ttable)) ? 1 : 0; - - assert(l_is_undef + r_is_undef >= 0); - assert(l_is_undef + r_is_undef <= 2); - - switch (l_is_undef + r_is_undef) { - case 0: - /* Both defined */ - if (l->sym->st_value == r->sym->st_value) - return (strcmp(l->name, r->name)); - return (l->sym->st_value > r->sym->st_value ? 1 : -1); - case 1: - /* One undefined */ - return (l_is_undef == 0 ? 1 : -1); - case 2: - /* Both undefined */ - return (strcmp(l->name, r->name)); - } - /* NOTREACHED */ - - return (l->sym->st_value - r->sym->st_value); -} - -static void -filter_dest(void) -{ - struct filter_entry *e; - - while (!SLIST_EMPTY(&nm_out_filter)) { - e = SLIST_FIRST(&nm_out_filter); - SLIST_REMOVE_HEAD(&nm_out_filter, filter_entries); - free(e); - } -} - -static int -filter_insert(fn_filter filter_fn) -{ - struct filter_entry *e; - - assert(filter_fn != NULL); - - if ((e = malloc(sizeof(struct filter_entry))) == NULL) { - warn("malloc"); - return (0); - } - e->fn = filter_fn; - SLIST_INSERT_HEAD(&nm_out_filter, e, filter_entries); - - return (1); -} - -static int -parse_demangle_option(const char *opt) -{ - - if (opt == NULL) - return (ELFTC_DEM_UNKNOWN); - else if (!strncasecmp(opt, "gnu-v2", 6)) - return (ELFTC_DEM_GNU2); - else if (!strncasecmp(opt, "gnu-v3", 6)) - return (ELFTC_DEM_GNU3); - else if (!strncasecmp(opt, "arm", 3)) - return (ELFTC_DEM_ARM); - else - errx(EXIT_FAILURE, "unknown demangling style '%s'", opt); - - /* NOTREACHED */ - return (0); -} - -static void -get_opt(int argc, char **argv) -{ - int ch; - bool is_posix, oflag; - - if (argc <= 0 || argv == NULL) - return; - - oflag = is_posix = false; - nm_opts.t = RADIX_HEX; - while ((ch = getopt_long(argc, argv, "ABCDF:PSVaefghlnoprst:uvx", - nm_longopts, NULL)) != -1) { - switch (ch) { - case 'A': - nm_opts.print_name = PRINT_NAME_FULL; - break; - case 'B': - nm_opts.elem_print_fn = &sym_elem_print_all; - break; - case 'C': - nm_opts.demangle_type = parse_demangle_option(optarg); - break; - case 'D': - nm_opts.print_symbol = PRINT_SYM_DYN; - break; - case 'F': - /* sysv, bsd, posix */ - switch (optarg[0]) { - case 'B': - case 'b': - nm_opts.elem_print_fn = &sym_elem_print_all; - break; - case 'P': - case 'p': - is_posix = true; - nm_opts.elem_print_fn = - &sym_elem_print_all_portable; - break; - case 'S': - case 's': - nm_opts.elem_print_fn = - &sym_elem_print_all_sysv; - break; - default: - warnx("%s: Invalid format", optarg); - usage(1); - } - - break; - case 'P': - is_posix = true; - nm_opts.elem_print_fn = &sym_elem_print_all_portable; - break; - case 'S': - nm_opts.print_size = 1; - break; - case 'V': - print_version(); - /* NOTREACHED */ - case 'a': - nm_opts.print_debug = true; - break; - case 'e': - filter_insert(sym_elem_global_static); - break; - case 'f': - break; - case 'g': - filter_insert(sym_elem_global); - break; - case 'h': - usage(0); - break; - case 'l': - nm_opts.debug_line = true; - break; - case 'n': - case 'v': - nm_opts.sort_fn = &cmp_value; - break; - case 'o': - oflag = true; - break; - case 'p': - nm_opts.sort_fn = &cmp_none; - break; - case 'r': - nm_opts.sort_reverse = true; - break; - case 's': - nm_opts.print_armap = true; - break; - case 't': - /* t require always argument to getopt_long */ - switch (optarg[0]) { - case 'd': - nm_opts.t = RADIX_DEC; - break; - case 'o': - nm_opts.t = RADIX_OCT; - break; - case 'x': - nm_opts.t = RADIX_HEX; - break; - default: - warnx("%s: Invalid radix", optarg); - usage(1); - } - break; - case 'u': - filter_insert(sym_elem_undef); - nm_opts.undef_only = true; - break; - /* case 'v': see case 'n' above. */ - case 'x': - nm_opts.t = RADIX_HEX; - break; - case 0: - if (nm_opts.sort_size != 0) { - nm_opts.sort_fn = &cmp_size; - filter_insert(sym_elem_def); - filter_insert(sym_elem_nonzero_size); - } - if (nm_opts.def_only != 0) - filter_insert(sym_elem_def); - if (nm_opts.no_demangle != 0) - nm_opts.demangle_type = -1; - break; - default : - usage(1); - } - } - - /* - * In POSIX mode, the '-o' option controls the output radix. - * In non-POSIX mode, the option is a synonym for the '-A' and - * '--print-file-name' options. - */ - if (oflag) { - if (is_posix) - nm_opts.t = RADIX_OCT; - else - nm_opts.print_name = PRINT_NAME_FULL; - } - - assert(nm_opts.sort_fn != NULL && "nm_opts.sort_fn is null"); - assert(nm_opts.elem_print_fn != NULL && - "nm_opts.elem_print_fn is null"); - assert(nm_opts.value_print_fn != NULL && - "nm_opts.value_print_fn is null"); - - set_opt_value_print_fn(nm_opts.t); - - if (nm_opts.undef_only == true) { - if (nm_opts.sort_fn == &cmp_size) - errx(EXIT_FAILURE, - "--size-sort with -u is meaningless"); - if (nm_opts.def_only != 0) - errx(EXIT_FAILURE, - "-u with --defined-only is meaningless"); - } - if (nm_opts.print_debug == false) - filter_insert(sym_elem_nondebug); - if (nm_opts.sort_reverse == true && nm_opts.sort_fn == cmp_none) - nm_opts.sort_reverse = false; -} - -/* - * Get symbol information from elf. - */ -static int -get_sym(Elf *elf, struct sym_head *headp, int shnum, size_t dynndx, - size_t strndx, const char *type_table, const char **sec_table, - int sec_table_size) -{ - Elf_Scn *scn; - Elf_Data *data; - GElf_Shdr shdr; - GElf_Sym sym; - struct filter_entry *fep; - size_t ndx; - int rtn; - const char *sym_name; - char type; - bool filter; - int i, j; - - assert(elf != NULL); - assert(headp != NULL); - - rtn = 0; - for (i = 1; i < shnum; i++) { - if ((scn = elf_getscn(elf, i)) == NULL) { - warnx("elf_getscn failed: %s", elf_errmsg(-1)); - continue; - } - if (gelf_getshdr(scn, &shdr) != &shdr) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - continue; - } - if (shdr.sh_type == SHT_SYMTAB) { - if (nm_opts.print_symbol != PRINT_SYM_SYM) - continue; - } else if (shdr.sh_type == SHT_DYNSYM) { - if (nm_opts.print_symbol != PRINT_SYM_DYN) - continue; - } else - continue; - - ndx = shdr.sh_type == SHT_DYNSYM ? dynndx : strndx; - - data = NULL; - while ((data = elf_getdata(scn, data)) != NULL) { - j = 1; - while (gelf_getsym(data, j++, &sym) != NULL) { - sym_name = get_sym_name(elf, &sym, ndx, - sec_table, sec_table_size); - filter = false; - type = get_sym_type(&sym, type_table); - SLIST_FOREACH(fep, &nm_out_filter, - filter_entries) { - if (!fep->fn(type, &sym, sym_name)) { - filter = true; - break; - } - } - if (filter == false) { - if (sym_list_insert(headp, sym_name, - &sym) == 0) - return (0); - rtn++; - } - } - } - } - - return (rtn); -} - -static const char * -get_sym_name(Elf *elf, const GElf_Sym *sym, size_t ndx, const char **sec_table, - int sec_table_size) -{ - const char *sym_name; - - sym_name = NULL; - - /* Show section name as symbol name for STT_SECTION symbols. */ - if (GELF_ST_TYPE(sym->st_info) == STT_SECTION) { - if (sec_table != NULL && sym->st_shndx < sec_table_size) - sym_name = sec_table[sym->st_shndx]; - } else - sym_name = elf_strptr(elf, ndx, sym->st_name); - - if (sym_name == NULL) - sym_name = "(null)"; - - return (sym_name); -} - -static char -get_sym_type(const GElf_Sym *sym, const char *type_table) -{ - bool is_local; - - if (sym == NULL || type_table == NULL) - return ('?'); - - is_local = sym->st_info >> 4 == STB_LOCAL; - - if (sym->st_shndx == SHN_ABS) /* absolute */ - return (is_local ? 'a' : 'A'); - - if (sym->st_shndx == SHN_COMMON) /* common */ - return ('C'); - - if ((sym->st_info) >> 4 == STB_WEAK) { /* weak */ - if ((sym->st_info & 0xf) == STT_OBJECT) - return (sym->st_shndx == SHN_UNDEF ? 'v' : 'V'); - - return (sym->st_shndx == SHN_UNDEF ? 'w' : 'W'); - } - - if (sym->st_shndx == SHN_UNDEF) /* undefined */ - return ('U'); - - return (is_local == true && type_table[sym->st_shndx] != 'N' ? - tolower((unsigned char) type_table[sym->st_shndx]) : - type_table[sym->st_shndx]); -} - -static void -global_dest(void) -{ - - filter_dest(); -} - -static void -global_init(void) -{ - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "elf_version error"); - - nm_info.name = ELFTC_GETPROGNAME(); - nm_info.def_filename = "a.out"; - nm_opts.print_symbol = PRINT_SYM_SYM; - nm_opts.print_name = PRINT_NAME_NONE; - nm_opts.demangle_type = -1; - nm_opts.print_debug = false; - nm_opts.print_armap = false; - nm_opts.print_size = 0; - nm_opts.debug_line = false; - nm_opts.def_only = 0; - nm_opts.undef_only = false; - nm_opts.sort_size = 0; - nm_opts.sort_reverse = false; - nm_opts.no_demangle = 0; - nm_opts.sort_fn = &cmp_name; - nm_opts.elem_print_fn = &sym_elem_print_all; - nm_opts.value_print_fn = &sym_value_dec_print; - nm_opts.size_print_fn = &sym_size_dec_print; - SLIST_INIT(&nm_out_filter); -} - -static bool -is_sec_data(GElf_Shdr *s) -{ - - assert(s != NULL && "shdr is NULL"); - - return (((s->sh_flags & SHF_ALLOC) != 0) && s->sh_type != SHT_NOBITS); -} - -static bool -is_sec_debug(const char *shname) -{ - const char *dbg_sec[] = { - ".debug", - ".gnu.linkonce.wi.", - ".line", - ".rel.debug", - ".rela.debug", - ".stab", - NULL - }; - const char **p; - - if (shname == NULL) - return (false); - - for (p = dbg_sec; *p; p++) { - if (!strncmp(shname, *p, strlen(*p))) - return (true); - } - - return (false); -} - -static bool -is_sec_nobits(GElf_Shdr *s) -{ - - assert(s != NULL && "shdr is NULL"); - - return (s->sh_type == SHT_NOBITS); -} - -static bool -is_sec_readonly(GElf_Shdr *s) -{ - - assert(s != NULL && "shdr is NULL"); - - return ((s->sh_flags & SHF_WRITE) == 0); -} - -static bool -is_sec_text(GElf_Shdr *s) -{ - - assert(s != NULL && "shdr is NULL"); - - return ((s->sh_flags & SHF_EXECINSTR) != 0); -} - -static void -print_ar_index(int fd, Elf *arf) -{ - Elf *elf; - Elf_Arhdr *arhdr; - Elf_Arsym *arsym; - Elf_Cmd cmd; - off_t start; - size_t arsym_size; - - if (arf == NULL) - return; - - if ((arsym = elf_getarsym(arf, &arsym_size)) == NULL) - return; - - printf("\nArchive index:\n"); - - start = arsym->as_off; - cmd = ELF_C_READ; - while (arsym_size > 1) { - if (elf_rand(arf, arsym->as_off) == arsym->as_off && - (elf = elf_begin(fd, cmd, arf)) != NULL) { - if ((arhdr = elf_getarhdr(elf)) != NULL) - printf("%s in %s\n", arsym->as_name, - arhdr->ar_name != NULL ? - arhdr->ar_name : arhdr->ar_rawname); - elf_end(elf); - } - ++arsym; - --arsym_size; - } - - elf_rand(arf, start); -} - -#define DEMANGLED_BUFFER_SIZE (8 * 1024) -#define PRINT_DEMANGLED_NAME(FORMAT, NAME) do { \ - char _demangled[DEMANGLED_BUFFER_SIZE]; \ - if (nm_opts.demangle_type < 0 || \ - elftc_demangle((NAME), _demangled, sizeof(_demangled), \ - nm_opts.demangle_type) < 0) \ - printf((FORMAT), (NAME)); \ - else \ - printf((FORMAT), _demangled); \ - } while (0) - -static void -print_header(const char *file, const char *obj) -{ - - if (file == NULL) - return; - - if (nm_opts.elem_print_fn == &sym_elem_print_all_sysv) { - printf("\n\n%s from %s", - nm_opts.undef_only == false ? "Symbols" : - "Undefined symbols", file); - if (obj != NULL) - printf("[%s]", obj); - printf(":\n\n"); - - printf("\ -Name Value Class Type Size Line Section\n\n"); - } else { - /* archive file without -A option and POSIX */ - if (nm_opts.print_name != PRINT_NAME_FULL && obj != NULL) { - if (nm_opts.elem_print_fn == - sym_elem_print_all_portable) - printf("%s[%s]:\n", file, obj); - else if (nm_opts.elem_print_fn == sym_elem_print_all) - printf("\n%s:\n", obj); - /* multiple files(not archive) without -A option */ - } else if (nm_opts.print_name == PRINT_NAME_MULTI) { - if (nm_opts.elem_print_fn == sym_elem_print_all) - printf("\n"); - printf("%s:\n", file); - } - } -} - -static void -print_version(void) -{ - - (void) printf("%s (%s)\n", nm_info.name, elftc_version()); - exit(0); -} - -static uint64_t -get_block_value(Dwarf_Debug dbg, Dwarf_Block *block) -{ - Elf *elf; - GElf_Ehdr eh; - Dwarf_Error de; - - if (dwarf_get_elf(dbg, &elf, &de) != DW_DLV_OK) { - warnx("dwarf_get_elf failed: %s", dwarf_errmsg(de)); - return (0); - } - - if (gelf_getehdr(elf, &eh) != &eh) { - warnx("gelf_getehdr failed: %s", elf_errmsg(-1)); - return (0); - } - - if (block->bl_len == 5) { - if (eh.e_ident[EI_DATA] == ELFDATA2LSB) - return (le32dec((uint8_t *) block->bl_data + 1)); - else - return (be32dec((uint8_t *) block->bl_data + 1)); - } else if (block->bl_len == 9) { - if (eh.e_ident[EI_DATA] == ELFDATA2LSB) - return (le64dec((uint8_t *) block->bl_data + 1)); - else - return (be64dec((uint8_t *) block->bl_data + 1)); - } - - return (0); -} - -static char * -find_object_name(Dwarf_Debug dbg, Dwarf_Die die) -{ - Dwarf_Die ret_die; - Dwarf_Attribute at; - Dwarf_Off off; - Dwarf_Error de; - const char *str; - char *name; - - if (dwarf_attrval_string(die, DW_AT_name, &str, &de) == DW_DLV_OK) { - if ((name = strdup(str)) == NULL) { - warn("strdup"); - return (NULL); - } - return (name); - } - - if (dwarf_attr(die, DW_AT_specification, &at, &de) != DW_DLV_OK) - return (NULL); - - if (dwarf_global_formref(at, &off, &de) != DW_DLV_OK) - return (NULL); - - if (dwarf_offdie(dbg, off, &ret_die, &de) != DW_DLV_OK) - return (NULL); - - return (find_object_name(dbg, ret_die)); -} - -static void -search_line_attr(Dwarf_Debug dbg, struct func_info_head *func_info, - struct var_info_head *var_info, Dwarf_Die die, char **src_files, - Dwarf_Signed filecount) -{ - Dwarf_Attribute at; - Dwarf_Unsigned udata; - Dwarf_Half tag; - Dwarf_Block *block; - Dwarf_Bool flag; - Dwarf_Die ret_die; - Dwarf_Error de; - struct func_info_entry *func; - struct var_info_entry *var; - int ret; - - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", dwarf_errmsg(de)); - goto cont_search; - } - - /* We're interested in DIEs which define functions or variables. */ - if (tag != DW_TAG_subprogram && tag != DW_TAG_entry_point && - tag != DW_TAG_inlined_subroutine && tag != DW_TAG_variable) - goto cont_search; - - if (tag == DW_TAG_variable) { - - /* Ignore "artificial" variable. */ - if (dwarf_attrval_flag(die, DW_AT_artificial, &flag, &de) == - DW_DLV_OK && flag) - goto cont_search; - - /* Ignore pure declaration. */ - if (dwarf_attrval_flag(die, DW_AT_declaration, &flag, &de) == - DW_DLV_OK && flag) - goto cont_search; - - /* Ignore stack varaibles. */ - if (dwarf_attrval_flag(die, DW_AT_external, &flag, &de) != - DW_DLV_OK || !flag) - goto cont_search; - - if ((var = calloc(1, sizeof(*var))) == NULL) { - warn("calloc failed"); - goto cont_search; - } - - if (dwarf_attrval_unsigned(die, DW_AT_decl_file, &udata, - &de) == DW_DLV_OK && udata > 0 && - (Dwarf_Signed) (udata - 1) < filecount) { - var->file = strdup(src_files[udata - 1]); - if (var->file == NULL) { - warn("strdup"); - free(var); - goto cont_search; - } - } - - if (dwarf_attrval_unsigned(die, DW_AT_decl_line, &udata, &de) == - DW_DLV_OK) - var->line = udata; - - var->name = find_object_name(dbg, die); - if (var->name == NULL) { - if (var->file) - free(var->file); - free(var); - goto cont_search; - } - - if (dwarf_attr(die, DW_AT_location, &at, &de) == DW_DLV_OK && - dwarf_formblock(at, &block, &de) == DW_DLV_OK) { - /* - * Since we ignored stack variables, the rest are the - * external varaibles which should always use DW_OP_addr - * operator for DW_AT_location value. - */ - if (*((uint8_t *)block->bl_data) == DW_OP_addr) - var->addr = get_block_value(dbg, block); - } - - SLIST_INSERT_HEAD(var_info, var, entries); - - } else { - - if ((func = calloc(1, sizeof(*func))) == NULL) { - warn("calloc failed"); - goto cont_search; - } - - /* - * Note that dwarf_attrval_unsigned() handles DW_AT_abstract_origin - * internally, so it can retrieve DW_AT_decl_file/DW_AT_decl_line - * attributes for inlined functions as well. - */ - if (dwarf_attrval_unsigned(die, DW_AT_decl_file, &udata, - &de) == DW_DLV_OK && udata > 0 && - (Dwarf_Signed) (udata - 1) < filecount) { - func->file = strdup(src_files[udata - 1]); - if (func->file == NULL) { - warn("strdup"); - free(func); - goto cont_search; - } - } - - if (dwarf_attrval_unsigned(die, DW_AT_decl_line, &udata, &de) == - DW_DLV_OK) - func->line = udata; - - func->name = find_object_name(dbg, die); - if (func->name == NULL) { - if (func->file) - free(func->file); - free(func); - goto cont_search; - } - - if (dwarf_attrval_unsigned(die, DW_AT_low_pc, &udata, &de) == - DW_DLV_OK) - func->lowpc = udata; - if (dwarf_attrval_unsigned(die, DW_AT_high_pc, &udata, &de) == - DW_DLV_OK) - func->highpc = udata; - - SLIST_INSERT_HEAD(func_info, func, entries); - } - -cont_search: - - /* Search children. */ - ret = dwarf_child(die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_child: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - search_line_attr(dbg, func_info, var_info, ret_die, src_files, - filecount); - - /* Search sibling. */ - ret = dwarf_siblingof(dbg, die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_siblingof: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - search_line_attr(dbg, func_info, var_info, ret_die, src_files, - filecount); - - dwarf_dealloc(dbg, die, DW_DLA_DIE); -} - -/* - * Read elf file and collect symbol information, sort them, print. - * Return 1 at failed, 0 at success. - */ -static int -read_elf(Elf *elf, const char *filename, Elf_Kind kind) -{ - Dwarf_Debug dbg; - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Half tag; - Elf_Arhdr *arhdr; - Elf_Scn *scn; - GElf_Shdr shdr; - Dwarf_Line *lbuf; - Dwarf_Unsigned lineno; - Dwarf_Signed lcount, filecount; - Dwarf_Addr lineaddr; - struct sym_print_data p_data; - struct sym_head list_head; - struct line_info_head *line_info; - struct func_info_head *func_info; - struct var_info_head *var_info; - struct line_info_entry *lie; - struct func_info_entry *func; - struct var_info_entry *var; - const char *shname, *objname; - char *type_table, **sec_table, *sfile, **src_files; - size_t i, shstrndx, shnum, dynndx, strndx; - int ret, rtn, e_err; - -#define OBJNAME (objname == NULL ? filename : objname) - - assert(filename != NULL && "filename is null"); - - STAILQ_INIT(&list_head); - type_table = NULL; - sec_table = NULL; - line_info = NULL; - func_info = NULL; - var_info = NULL; - objname = NULL; - dynndx = SHN_UNDEF; - strndx = SHN_UNDEF; - rtn = 0; - - nm_elfclass = gelf_getclass(elf); - - if (kind == ELF_K_AR) { - if ((arhdr = elf_getarhdr(elf)) == NULL) - goto next_cmd; - objname = arhdr->ar_name != NULL ? arhdr->ar_name : - arhdr->ar_rawname; - } - if (!elf_getshnum(elf, &shnum)) { - if ((e_err = elf_errno()) != 0) - warnx("%s: %s", OBJNAME, "File format not recognized"); - else - warnx("%s: cannot get section number", OBJNAME); - rtn = 1; - goto next_cmd; - } - if (shnum == 0) { - warnx("%s: has no section", OBJNAME); - rtn = 1; - goto next_cmd; - } - if (!elf_getshstrndx(elf, &shstrndx)) { - warnx("%s: cannot get str index", OBJNAME); - rtn = 1; - goto next_cmd; - } - /* type_table for type determine */ - if ((type_table = malloc(sizeof(char) * shnum)) == NULL) { - warn("%s: malloc", OBJNAME); - rtn = 1; - goto next_cmd; - } - /* sec_table for section name to display in sysv format */ - if ((sec_table = calloc(shnum, sizeof(char *))) == NULL) { - warn("%s: calloc", OBJNAME); - rtn = 1; - goto next_cmd; - } - - type_table[0] = 'U'; - if ((sec_table[0] = strdup("*UND*")) == NULL) { - warn("strdup"); - goto next_cmd; - } - - for (i = 1; i < shnum; ++i) { - type_table[i] = 'U'; - if ((scn = elf_getscn(elf, i)) == NULL) { - if ((e_err = elf_errno()) != 0) - warnx("%s: %s", OBJNAME, elf_errmsg(e_err)); - else - warnx("%s: cannot get section", OBJNAME); - rtn = 1; - goto next_cmd; - } - if (gelf_getshdr(scn, &shdr) == NULL) - goto next_cmd; - - /* - * Cannot test by type and attribute for dynstr, strtab - */ - shname = elf_strptr(elf, shstrndx, (size_t) shdr.sh_name); - if (shname != NULL) { - if ((sec_table[i] = strdup(shname)) == NULL) { - warn("strdup"); - goto next_cmd; - } - if (!strncmp(shname, ".dynstr", 7)) { - dynndx = elf_ndxscn(scn); - if (dynndx == SHN_UNDEF) { - warnx("%s: elf_ndxscn failed: %s", - OBJNAME, elf_errmsg(-1)); - goto next_cmd; - } - } - if (!strncmp(shname, ".strtab", 7)) { - strndx = elf_ndxscn(scn); - if (strndx == SHN_UNDEF) { - warnx("%s: elf_ndxscn failed: %s", - OBJNAME, elf_errmsg(-1)); - goto next_cmd; - } - } - } else { - sec_table[i] = strdup("*UND*"); - if (sec_table[i] == NULL) { - warn("strdup"); - goto next_cmd; - } - } - - - if (is_sec_text(&shdr)) - type_table[i] = 'T'; - else if (is_sec_data(&shdr)) { - if (is_sec_readonly(&shdr)) - type_table[i] = 'R'; - else - type_table[i] = 'D'; - } else if (is_sec_nobits(&shdr)) - type_table[i] = 'B'; - else if (is_sec_debug(shname)) - type_table[i] = 'N'; - else if (is_sec_readonly(&shdr) && !is_sec_nobits(&shdr)) - type_table[i] = 'n'; - } - - print_header(filename, objname); - - if ((dynndx == SHN_UNDEF && nm_opts.print_symbol == PRINT_SYM_DYN) || - (strndx == SHN_UNDEF && nm_opts.print_symbol == PRINT_SYM_SYM)) { - warnx("%s: no symbols", OBJNAME); - /* This is not an error case */ - goto next_cmd; - } - - STAILQ_INIT(&list_head); - - if (!nm_opts.debug_line) - goto process_sym; - - /* - * Collect dwarf line number information. - */ - - if (dwarf_elf_init(elf, DW_DLC_READ, NULL, NULL, &dbg, &de) != - DW_DLV_OK) { - warnx("dwarf_elf_init failed: %s", dwarf_errmsg(de)); - goto process_sym; - } - - line_info = malloc(sizeof(struct line_info_head)); - func_info = malloc(sizeof(struct func_info_head)); - var_info = malloc(sizeof(struct var_info_head)); - if (line_info == NULL || func_info == NULL || var_info == NULL) { - warn("malloc"); - (void) dwarf_finish(dbg, &de); - goto process_sym; - } - SLIST_INIT(line_info); - SLIST_INIT(func_info); - SLIST_INIT(var_info); - - while ((ret = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, NULL, - &de)) == DW_DLV_OK) { - die = NULL; - while (dwarf_siblingof(dbg, die, &die, &de) == DW_DLV_OK) { - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", - dwarf_errmsg(de)); - continue; - } - /* XXX: What about DW_TAG_partial_unit? */ - if (tag == DW_TAG_compile_unit) - break; - } - if (die == NULL) { - warnx("could not find DW_TAG_compile_unit die"); - continue; - } - - /* Retrieve source file list. */ - ret = dwarf_srcfiles(die, &src_files, &filecount, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_srclines: %s", dwarf_errmsg(de)); - if (ret != DW_DLV_OK) - continue; - - /* - * Retrieve line number information from .debug_line section. - */ - - ret = dwarf_srclines(die, &lbuf, &lcount, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_srclines: %s", dwarf_errmsg(de)); - if (ret != DW_DLV_OK) - goto line_attr; - for (i = 0; (Dwarf_Signed) i < lcount; i++) { - if (dwarf_lineaddr(lbuf[i], &lineaddr, &de)) { - warnx("dwarf_lineaddr: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_lineno(lbuf[i], &lineno, &de)) { - warnx("dwarf_lineno: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_linesrc(lbuf[i], &sfile, &de)) { - warnx("dwarf_linesrc: %s", dwarf_errmsg(de)); - continue; - } - if ((lie = malloc(sizeof(*lie))) == NULL) { - warn("malloc"); - continue; - } - lie->addr = lineaddr; - lie->line = lineno; - lie->file = strdup(sfile); - if (lie->file == NULL) { - warn("strdup"); - free(lie); - continue; - } - SLIST_INSERT_HEAD(line_info, lie, entries); - } - - line_attr: - /* Retrieve line number information from DIEs. */ - search_line_attr(dbg, func_info, var_info, die, src_files, filecount); - } - - (void) dwarf_finish(dbg, &de); - -process_sym: - - p_data.list_num = get_sym(elf, &list_head, shnum, dynndx, strndx, - type_table, (void *) sec_table, shnum); - - if (p_data.list_num == 0) - goto next_cmd; - - p_data.headp = &list_head; - p_data.sh_num = shnum; - p_data.t_table = type_table; - p_data.s_table = (void *) sec_table; - p_data.filename = filename; - p_data.objname = objname; - - sym_list_print(&p_data, func_info, var_info, line_info); - -next_cmd: - if (nm_opts.debug_line) { - if (func_info != NULL) { - while (!SLIST_EMPTY(func_info)) { - func = SLIST_FIRST(func_info); - SLIST_REMOVE_HEAD(func_info, entries); - free(func->file); - free(func->name); - free(func); - } - free(func_info); - func_info = NULL; - } - if (var_info != NULL) { - while (!SLIST_EMPTY(var_info)) { - var = SLIST_FIRST(var_info); - SLIST_REMOVE_HEAD(var_info, entries); - free(var->file); - free(var->name); - free(var); - } - free(var_info); - var_info = NULL; - } - if (line_info != NULL) { - while (!SLIST_EMPTY(line_info)) { - lie = SLIST_FIRST(line_info); - SLIST_REMOVE_HEAD(line_info, entries); - free(lie->file); - free(lie); - } - free(line_info); - line_info = NULL; - } - } - - if (sec_table != NULL) - for (i = 0; i < shnum; ++i) - free(sec_table[i]); - free(sec_table); - free(type_table); - - sym_list_dest(&list_head); - - return (rtn); - -#undef OBJNAME -} - -static int -read_object(const char *filename) -{ - Elf *elf, *arf; - Elf_Cmd elf_cmd; - Elf_Kind kind; - int fd, rtn, e_err; - - assert(filename != NULL && "filename is null"); - - if ((fd = open(filename, O_RDONLY)) == -1) { - warn("'%s'", filename); - return (1); - } - - elf_cmd = ELF_C_READ; - if ((arf = elf_begin(fd, elf_cmd, (Elf *) NULL)) == NULL) { - if ((e_err = elf_errno()) != 0) - warnx("elf_begin error: %s", elf_errmsg(e_err)); - else - warnx("elf_begin error"); - close(fd); - return (1); - } - - assert(arf != NULL && "arf is null."); - - rtn = 0; - if ((kind = elf_kind(arf)) == ELF_K_NONE) { - warnx("%s: File format not recognized", filename); - elf_end(arf); - close(fd); - return (1); - } - if (kind == ELF_K_AR) { - if (nm_opts.print_name == PRINT_NAME_MULTI && - nm_opts.elem_print_fn == sym_elem_print_all) - printf("\n%s:\n", filename); - if (nm_opts.print_armap == true) - print_ar_index(fd, arf); - } - - while ((elf = elf_begin(fd, elf_cmd, arf)) != NULL) { - rtn |= read_elf(elf, filename, kind); - - /* - * If file is not archive, elf_next return ELF_C_NULL and - * stop the loop. - */ - elf_cmd = elf_next(elf); - elf_end(elf); - } - - elf_end(arf); - close(fd); - - return (rtn); -} - -static int -read_files(int argc, char **argv) -{ - int rtn = 0; - - if (argc < 0 || argv == NULL) - return (1); - - if (argc == 0) - rtn |= read_object(nm_info.def_filename); - else { - if (nm_opts.print_name == PRINT_NAME_NONE && argc > 1) - nm_opts.print_name = PRINT_NAME_MULTI; - while (argc > 0) { - rtn |= read_object(*argv); - --argc; - ++argv; - } - } - - return (rtn); -} - -static void -print_lineno(struct sym_entry *ep, struct func_info_head *func_info, - struct var_info_head *var_info, struct line_info_head *line_info) -{ - struct func_info_entry *func; - struct var_info_entry *var; - struct line_info_entry *lie; - - /* For function symbol, search the function line information list. */ - if ((ep->sym->st_info & 0xf) == STT_FUNC && func_info != NULL) { - SLIST_FOREACH(func, func_info, entries) { - if (func->name != NULL && - !strcmp(ep->name, func->name) && - ep->sym->st_value >= func->lowpc && - ep->sym->st_value < func->highpc) { - printf("\t%s:%" PRIu64, func->file, func->line); - return; - } - } - } - - /* For variable symbol, search the variable line information list. */ - if ((ep->sym->st_info & 0xf) == STT_OBJECT && var_info != NULL) { - SLIST_FOREACH(var, var_info, entries) { - if (!strcmp(ep->name, var->name) && - ep->sym->st_value == var->addr) { - printf("\t%s:%" PRIu64, var->file, var->line); - return; - } - } - } - - /* Otherwise search line number information the .debug_line section. */ - if (line_info != NULL) { - SLIST_FOREACH(lie, line_info, entries) { - if (ep->sym->st_value == lie->addr) { - printf("\t%s:%" PRIu64, lie->file, lie->line); - return; - } - } - } -} - -static void -set_opt_value_print_fn(enum radix t) -{ - - switch (t) { - case RADIX_OCT: - nm_opts.value_print_fn = &sym_value_oct_print; - nm_opts.size_print_fn = &sym_size_oct_print; - - break; - case RADIX_DEC: - nm_opts.value_print_fn = &sym_value_dec_print; - nm_opts.size_print_fn = &sym_size_dec_print; - - break; - case RADIX_HEX: - default : - nm_opts.value_print_fn = &sym_value_hex_print; - nm_opts.size_print_fn = &sym_size_hex_print; - } - - assert(nm_opts.value_print_fn != NULL && - "nm_opts.value_print_fn is null"); -} - -static void -sym_elem_print_all(char type, const char *sec, const GElf_Sym *sym, - const char *name) -{ - - if (sec == NULL || sym == NULL || name == NULL || - nm_opts.value_print_fn == NULL) - return; - - if (IS_UNDEF_SYM_TYPE(type)) { - if (nm_opts.t == RADIX_HEX && nm_elfclass == ELFCLASS32) - printf("%-8s", ""); - else - printf("%-16s", ""); - } else { - switch ((nm_opts.sort_fn == & cmp_size ? 2 : 0) + - nm_opts.print_size) { - case 3: - if (sym->st_size != 0) { - nm_opts.value_print_fn(sym); - printf(" "); - nm_opts.size_print_fn(sym); - } - break; - - case 2: - if (sym->st_size != 0) - nm_opts.size_print_fn(sym); - break; - - case 1: - nm_opts.value_print_fn(sym); - if (sym->st_size != 0) { - printf(" "); - nm_opts.size_print_fn(sym); - } - break; - - case 0: - default: - nm_opts.value_print_fn(sym); - } - } - - printf(" %c ", type); - PRINT_DEMANGLED_NAME("%s", name); -} - -static void -sym_elem_print_all_portable(char type, const char *sec, const GElf_Sym *sym, - const char *name) -{ - - if (sec == NULL || sym == NULL || name == NULL || - nm_opts.value_print_fn == NULL) - return; - - PRINT_DEMANGLED_NAME("%s", name); - printf(" %c ", type); - if (!IS_UNDEF_SYM_TYPE(type)) { - nm_opts.value_print_fn(sym); - printf(" "); - if (sym->st_size != 0) - nm_opts.size_print_fn(sym); - } else - printf(" "); -} - -static void -sym_elem_print_all_sysv(char type, const char *sec, const GElf_Sym *sym, - const char *name) -{ - - if (sec == NULL || sym == NULL || name == NULL || - nm_opts.value_print_fn == NULL) - return; - - PRINT_DEMANGLED_NAME("%-20s|", name); - if (IS_UNDEF_SYM_TYPE(type)) - printf(" "); - else - nm_opts.value_print_fn(sym); - - printf("| %c |", type); - - switch (sym->st_info & 0xf) { - case STT_OBJECT: - printf("%18s|", "OBJECT"); - break; - - case STT_FUNC: - printf("%18s|", "FUNC"); - break; - - case STT_SECTION: - printf("%18s|", "SECTION"); - break; - - case STT_FILE: - printf("%18s|", "FILE"); - break; - - case STT_LOPROC: - printf("%18s|", "LOPROC"); - break; - - case STT_HIPROC: - printf("%18s|", "HIPROC"); - break; - - case STT_NOTYPE: - default: - printf("%18s|", "NOTYPE"); - } - - if (sym->st_size != 0) - nm_opts.size_print_fn(sym); - else - printf(" "); - - printf("| |%s", sec); -} - -static int -sym_elem_def(char type, const GElf_Sym *sym, const char *name) -{ - - assert(IS_SYM_TYPE((unsigned char) type)); - - UNUSED(sym); - UNUSED(name); - - return (!IS_UNDEF_SYM_TYPE((unsigned char) type)); -} - -static int -sym_elem_global(char type, const GElf_Sym *sym, const char *name) -{ - - assert(IS_SYM_TYPE((unsigned char) type)); - - UNUSED(sym); - UNUSED(name); - - /* weak symbols resemble global. */ - return (isupper((unsigned char) type) || type == 'w'); -} - -static int -sym_elem_global_static(char type, const GElf_Sym *sym, const char *name) -{ - unsigned char info; - - assert(sym != NULL); - - UNUSED(type); - UNUSED(name); - - info = sym->st_info >> 4; - - return (info == STB_LOCAL || - info == STB_GLOBAL || - info == STB_WEAK); -} - -static int -sym_elem_nondebug(char type, const GElf_Sym *sym, const char *name) -{ - - assert(sym != NULL); - - UNUSED(type); - UNUSED(name); - - if (sym->st_value == 0 && (sym->st_info & 0xf) == STT_FILE) - return (0); - if (sym->st_name == 0) - return (0); - - return (1); -} - -static int -sym_elem_nonzero_size(char type, const GElf_Sym *sym, const char *name) -{ - - assert(sym != NULL); - - UNUSED(type); - UNUSED(name); - - return (sym->st_size > 0); -} - -static int -sym_elem_undef(char type, const GElf_Sym *sym, const char *name) -{ - - assert(IS_SYM_TYPE((unsigned char) type)); - - UNUSED(sym); - UNUSED(name); - - return (IS_UNDEF_SYM_TYPE((unsigned char) type)); -} - -static void -sym_list_dest(struct sym_head *headp) -{ - struct sym_entry *ep, *ep_n; - - if (headp == NULL) - return; - - ep = STAILQ_FIRST(headp); - while (ep != NULL) { - ep_n = STAILQ_NEXT(ep, sym_entries); - free(ep->sym); - free(ep->name); - free(ep); - ep = ep_n; - } -} - -static int -sym_list_insert(struct sym_head *headp, const char *name, const GElf_Sym *sym) -{ - struct sym_entry *e; - - if (headp == NULL || name == NULL || sym == NULL) - return (0); - if ((e = malloc(sizeof(struct sym_entry))) == NULL) { - warn("malloc"); - return (0); - } - if ((e->name = strdup(name)) == NULL) { - warn("strdup"); - free(e); - return (0); - } - if ((e->sym = malloc(sizeof(GElf_Sym))) == NULL) { - warn("malloc"); - free(e->name); - free(e); - return (0); - } - - memcpy(e->sym, sym, sizeof(GElf_Sym)); - - /* Display size instead of value for common symbol. */ - if (sym->st_shndx == SHN_COMMON) - e->sym->st_value = sym->st_size; - - STAILQ_INSERT_TAIL(headp, e, sym_entries); - - return (1); -} - -/* If file has not .debug_info, line_info will be NULL */ -static void -sym_list_print(struct sym_print_data *p, struct func_info_head *func_info, - struct var_info_head *var_info, struct line_info_head *line_info) -{ - struct sym_entry *e_v; - size_t si; - int i; - - if (p == NULL || CHECK_SYM_PRINT_DATA(p)) - return; - if ((e_v = sym_list_sort(p)) == NULL) - return; - if (nm_opts.sort_reverse == false) - for (si = 0; si != p->list_num; ++si) - sym_list_print_each(&e_v[si], p, func_info, var_info, - line_info); - else - for (i = p->list_num - 1; i != -1; --i) - sym_list_print_each(&e_v[i], p, func_info, var_info, - line_info); - - free(e_v); -} - -/* If file has not .debug_info, line_info will be NULL */ -static void -sym_list_print_each(struct sym_entry *ep, struct sym_print_data *p, - struct func_info_head *func_info, struct var_info_head *var_info, - struct line_info_head *line_info) -{ - const char *sec; - char type; - - if (ep == NULL || CHECK_SYM_PRINT_DATA(p)) - return; - - assert(ep->name != NULL); - assert(ep->sym != NULL); - - type = get_sym_type(ep->sym, p->t_table); - - if (nm_opts.print_name == PRINT_NAME_FULL) { - printf("%s", p->filename); - if (nm_opts.elem_print_fn == &sym_elem_print_all_portable) { - if (p->objname != NULL) - printf("[%s]", p->objname); - printf(": "); - } else { - if (p->objname != NULL) - printf(":%s", p->objname); - printf(":"); - } - } - - switch (ep->sym->st_shndx) { - case SHN_LOPROC: - /* LOPROC or LORESERVE */ - sec = "*LOPROC*"; - break; - case SHN_HIPROC: - sec = "*HIPROC*"; - break; - case SHN_LOOS: - sec = "*LOOS*"; - break; - case SHN_HIOS: - sec = "*HIOS*"; - break; - case SHN_ABS: - sec = "*ABS*"; - break; - case SHN_COMMON: - sec = "*COM*"; - break; - case SHN_HIRESERVE: - /* HIRESERVE or XINDEX */ - sec = "*HIRESERVE*"; - break; - default: - if (ep->sym->st_shndx > p->sh_num) - return; - sec = p->s_table[ep->sym->st_shndx]; - break; - } - - nm_opts.elem_print_fn(type, sec, ep->sym, ep->name); - - if (nm_opts.debug_line == true && !IS_UNDEF_SYM_TYPE(type)) - print_lineno(ep, func_info, var_info, line_info); - - printf("\n"); -} - -static struct sym_entry * -sym_list_sort(struct sym_print_data *p) -{ - struct sym_entry *ep, *e_v; - int idx; - - if (p == NULL || CHECK_SYM_PRINT_DATA(p)) - return (NULL); - - if ((e_v = malloc(sizeof(struct sym_entry) * p->list_num)) == NULL) { - warn("malloc"); - return (NULL); - } - - idx = 0; - STAILQ_FOREACH(ep, p->headp, sym_entries) { - if (ep->name != NULL && ep->sym != NULL) { - e_v[idx].name = ep->name; - e_v[idx].sym = ep->sym; - ++idx; - } - } - - assert((size_t)idx == p->list_num); - - if (nm_opts.sort_fn != &cmp_none) { - nm_print_data = p; - assert(nm_print_data != NULL); - qsort(e_v, p->list_num, sizeof(struct sym_entry), - nm_opts.sort_fn); - } - - return (e_v); -} - -static void -sym_size_oct_print(const GElf_Sym *sym) -{ - - assert(sym != NULL && "sym is null"); - printf("%016" PRIo64, sym->st_size); -} - -static void -sym_size_hex_print(const GElf_Sym *sym) -{ - - assert(sym != NULL && "sym is null"); - if (nm_elfclass == ELFCLASS32) - printf("%08" PRIx64, sym->st_size); - else - printf("%016" PRIx64, sym->st_size); -} - -static void -sym_size_dec_print(const GElf_Sym *sym) -{ - - assert(sym != NULL && "sym is null"); - printf("%016" PRId64, sym->st_size); -} - -static void -sym_value_oct_print(const GElf_Sym *sym) -{ - - assert(sym != NULL && "sym is null"); - printf("%016" PRIo64, sym->st_value); -} - -static void -sym_value_hex_print(const GElf_Sym *sym) -{ - - assert(sym != NULL && "sym is null"); - if (nm_elfclass == ELFCLASS32) - printf("%08" PRIx64, sym->st_value); - else - printf("%016" PRIx64, sym->st_value); -} - -static void -sym_value_dec_print(const GElf_Sym *sym) -{ - - assert(sym != NULL && "sym is null"); - printf("%016" PRId64, sym->st_value); -} - -static void -usage(int exitcode) -{ - - printf("Usage: %s [options] file ...\ -\n Display symbolic information in file.\n\ -\n Options: \ -\n -A, --print-file-name Write the full pathname or library name of an\ -\n object on each line.\ -\n -a, --debug-syms Display all symbols include debugger-only\ -\n symbols.", nm_info.name); - printf("\ -\n -B Equivalent to specifying \"--format=bsd\".\ -\n -C, --demangle[=style] Decode low-level symbol names.\ -\n --no-demangle Do not demangle low-level symbol names.\ -\n -D, --dynamic Display only dynamic symbols.\ -\n -e Display only global and static symbols."); - printf("\ -\n -f Produce full output (default).\ -\n --format=format Display output in specific format. Allowed\ -\n formats are: \"bsd\", \"posix\" and \"sysv\".\ -\n -g, --extern-only Display only global symbol information.\ -\n -h, --help Show this help message.\ -\n -l, --line-numbers Display filename and linenumber using\ -\n debugging information.\ -\n -n, --numeric-sort Sort symbols numerically by value."); - printf("\ -\n -o Write numeric values in octal. Equivalent to\ -\n specifying \"-t o\".\ -\n -p, --no-sort Do not sort symbols.\ -\n -P Write information in a portable output format.\ -\n Equivalent to specifying \"--format=posix\".\ -\n -r, --reverse-sort Reverse the order of the sort.\ -\n -S, --print-size Print symbol sizes instead values.\ -\n -s, --print-armap Include an index of archive members.\ -\n --size-sort Sort symbols by size."); - printf("\ -\n -t, --radix=format Write each numeric value in the specified\ -\n format:\ -\n d In decimal,\ -\n o In octal,\ -\n x In hexadecimal."); - printf("\ -\n -u, --undefined-only Display only undefined symbols.\ -\n --defined-only Display only defined symbols.\ -\n -V, --version Show the version identifier for %s.\ -\n -v Sort output by value.\ -\n -x Write numeric values in hexadecimal.\ -\n Equivalent to specifying \"-t x\".", - nm_info.name); - printf("\n\ -\n The default options are: output in bsd format, use a hexadecimal radix,\ -\n sort by symbol name, do not demangle names.\n"); - - exit(exitcode); -} - -/* - * Display symbolic information in file. - * Return 0 at success, >0 at failed. - */ -int -main(int argc, char **argv) -{ - int rtn; - - global_init(); - get_opt(argc, argv); - rtn = read_files(argc - optind, argv + optind); - global_dest(); - - exit(rtn); -} diff --git a/contrib/elftoolchain/nm/os.NetBSD.mk b/contrib/elftoolchain/nm/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/nm/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/readelf/Makefile b/contrib/elftoolchain/readelf/Makefile deleted file mode 100644 index e74ba394..00000000 --- a/contrib/elftoolchain/readelf/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= readelf -SRCS= readelf.c - -WARNS?= 6 - -DPADD= ${LIBDWARF} ${LIBELF} -LDADD= -ldwarf -lelftc -lelf - -MAN1= readelf.1 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/readelf/os.NetBSD.mk b/contrib/elftoolchain/readelf/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/readelf/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/readelf/readelf.1 b/contrib/elftoolchain/readelf/readelf.1 deleted file mode 100644 index 22dafbe1..00000000 --- a/contrib/elftoolchain/readelf/readelf.1 +++ /dev/null @@ -1,199 +0,0 @@ -.\" Copyright (c) 2009,2011 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer -.\" in this position and unchanged. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd June 27, 2019 -.Dt READELF 1 -.Os -.Sh NAME -.Nm readelf -.Nd display information about ELF objects -.Sh SYNOPSIS -.Nm -.Op Fl a | Fl -all -.Op Fl c | Fl -archive-index -.Op Fl d | Fl -dynamic -.Op Fl e | Fl -headers -.Op Fl g | Fl -section-groups -.Op Fl h | Fl -file-header -.Op Fl l | Fl -program-headers -.Op Fl n | Fl -notes -.Op Fl p Ar section | Fl -string-dump Ns = Ns Ar section -.Op Fl r | Fl -relocs -.Op Fl t | Fl -section-details -.Op Fl v | Fl -version -.Oo -.Fl w Ns Oo Ns Ar afilmoprsFLR Ns Oc | -.Fl -debug-dump Ns Op Ns = Ns Ar long-option-name , Ns ... -.Oc -.Op Fl x Ar section | Fl -hex-dump Ns = Ns Ar section -.Op Fl A | Fl -arch-specific -.Op Fl D | Fl -use-dynamic -.Op Fl H | Fl -help -.Op Fl I | Fl -histogram -.Op Fl N | -full-section-name -.Op Fl S | Fl -sections | Fl -section-headers -.Op Fl V | Fl -version-info -.Op Fl W | Fl -wide -.Ar file... -.Sh DESCRIPTION -The -.Nm -utility displays information about ELF objects and -.Xr ar 1 -archives. -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width indent -.It Fl a | Fl -all -Turn on the following flags: -.Fl d , -.Fl h , -.Fl I , -.Fl l , -.Fl r , -.Fl s , -.Fl A , -.Fl S -and -.Fl V . -.It Fl c | Fl -archive-index -Print the archive symbol table for archives. -.It Fl d | Fl -dynamic -Print the contents of the -.Li SHT_DYNAMIC -sections in the ELF object. -.It Fl e | Fl -headers -Print all program, file and section headers in the ELF object. -.It Fl g | Fl -section-groups -Print the contents of the section groups in the ELF object. -.It Fl h | Fl -file-header -Print the file header of the ELF object. -.It Fl l | Fl -program-headers -Print the content of the program header table for the object. -.It Fl n | Fl -notes -Print the contents of -.Li PT_NOTE -segments or -.Li SHT_NOTE -sections present in the ELF object. -.It Fl p Ar section | Fl -string-dump Ns = Ns Ar section -Print the contents of the specified section as printable strings. -The argument -.Ar section -should be the name of a section or a numeric section index. -.It Fl r | Fl -relocs -Print relocation information. -.It Fl s | Fl -syms | Fl -symbols -Print symbol tables. -.It Fl t | Fl -section-details -Print additional information about sections, such as the flags -fields in section headers. -Implies -.Fl S . -.It Fl v | Fl -version -Prints a version identifier for -.Nm -and exits. -.It Fl w Ns Oo afilmoprsFLR Oc | Xo -.Fl -debug-dump Ns Op Ns = Ns Ar long-option-name , Ns ... -.Xc -Display DWARF information. -The -.Fl w -option is used with the short options in the following -table; the -.Fl -debug-dump -option is used with a comma-separated list of the corresponding long -option names: -.Bl -column ".Em Short Option" "aranges|ranges" -.It Em Short Option Ta Em Long Option Ta Em Description -.It a Ta abbrev Ta Show abbreviation information. -.It f Ta frames Ta Show frame information, displaying frame instructions. -.It i Ta info Ta Show debugging information entries. -.It l Ta rawline Ta Show line information in raw form. -.It m Ta macro Ta Show macro information. -.It o Ta loc Ta Show location list information. -.It p Ta pubnames Ta Show global names. -.It r Ta aranges|ranges Ta Show address range information. -.It s Ta str Ta Show the debug string table. -.It F Ta frames-interp Ta Show frame information, displaying register rules. -.It L Ta decodedline Ta Show line information in decoded form. -.It R Ta Ranges Ta Show range lists. -.El -.Pp -If no sub-options are specified, the default is to show information -corresponding to the -.Ar a , f , i, l , o , p , r , s -and -.Ar R -short options. -.It Fl x Ar section | Fl -hex-dump Ns = Ns Ar section -Display the contents of the specified section in hexadecimal. -The argument -.Ar section -should be the name of a section or a numeric section index. -.It Fl A | Fl -arch-specific -This option is accepted but is currently unimplemented. -.It Fl D | Fl -use-dynamic -Print the symbol table specified by the -.Li DT_SYMTAB -entry in the -.Dq Li .dynamic -section. -.It Fl H | Fl -help -Print a help message. -.It Fl I | Fl -histogram -Print information on bucket list lengths for sections of type -.Li SHT_HASH -and -.Li SHT_GNU_HASH . -.It Fl N | Fl -full-section-name -This option is accepted but is currently unimplemented. -.It Fl S | Fl -sections | Fl -section-headers -Print information in the section headers for each ELF object. -.It Fl V | Fl -version-info -Print symbol versioning information. -.It Fl W | Fl -wide -Print information about ELF structures using one long line per -structure. -If this option is not specified, -.Nm -will list information in the headers of 64 bit ELF objects on two -separate lines. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr nm 1 , -.Xr addr2line 1 , -.Xr elfcopy 1 , -.Sh AUTHORS -The -.Nm -utility was written by -.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/contrib/elftoolchain/readelf/readelf.c b/contrib/elftoolchain/readelf/readelf.c deleted file mode 100644 index 28706ab5..00000000 --- a/contrib/elftoolchain/readelf/readelf.c +++ /dev/null @@ -1,7636 +0,0 @@ -/*- - * Copyright (c) 2009-2015 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -/* - * readelf(1) options. - */ -#define RE_AA 0x00000001 -#define RE_C 0x00000002 -#define RE_DD 0x00000004 -#define RE_D 0x00000008 -#define RE_G 0x00000010 -#define RE_H 0x00000020 -#define RE_II 0x00000040 -#define RE_I 0x00000080 -#define RE_L 0x00000100 -#define RE_NN 0x00000200 -#define RE_N 0x00000400 -#define RE_P 0x00000800 -#define RE_R 0x00001000 -#define RE_SS 0x00002000 -#define RE_S 0x00004000 -#define RE_T 0x00008000 -#define RE_U 0x00010000 -#define RE_VV 0x00020000 -#define RE_WW 0x00040000 -#define RE_W 0x00080000 -#define RE_X 0x00100000 - -/* - * dwarf dump options. - */ -#define DW_A 0x00000001 -#define DW_FF 0x00000002 -#define DW_F 0x00000004 -#define DW_I 0x00000008 -#define DW_LL 0x00000010 -#define DW_L 0x00000020 -#define DW_M 0x00000040 -#define DW_O 0x00000080 -#define DW_P 0x00000100 -#define DW_RR 0x00000200 -#define DW_R 0x00000400 -#define DW_S 0x00000800 - -#define DW_DEFAULT_OPTIONS (DW_A | DW_F | DW_I | DW_L | DW_O | DW_P | \ - DW_R | DW_RR | DW_S) - -/* - * readelf(1) run control flags. - */ -#define DISPLAY_FILENAME 0x0001 - -/* - * Internal data structure for sections. - */ -struct section { - const char *name; /* section name */ - Elf_Scn *scn; /* section scn */ - uint64_t off; /* section offset */ - uint64_t sz; /* section size */ - uint64_t entsize; /* section entsize */ - uint64_t align; /* section alignment */ - uint64_t type; /* section type */ - uint64_t flags; /* section flags */ - uint64_t addr; /* section virtual addr */ - uint32_t link; /* section link ndx */ - uint32_t info; /* section info ndx */ -}; - -struct dumpop { - union { - size_t si; /* section index */ - const char *sn; /* section name */ - } u; - enum { - DUMP_BY_INDEX = 0, - DUMP_BY_NAME - } type; /* dump type */ -#define HEX_DUMP 0x0001 -#define STR_DUMP 0x0002 - int op; /* dump operation */ - STAILQ_ENTRY(dumpop) dumpop_list; -}; - -struct symver { - const char *name; - int type; -}; - -/* - * Structure encapsulates the global data for readelf(1). - */ -struct readelf { - const char *filename; /* current processing file. */ - int options; /* command line options. */ - int flags; /* run control flags. */ - int dop; /* dwarf dump options. */ - Elf *elf; /* underlying ELF descriptor. */ - Elf *ar; /* archive ELF descriptor. */ - Dwarf_Debug dbg; /* DWARF handle. */ - Dwarf_Half cu_psize; /* DWARF CU pointer size. */ - Dwarf_Half cu_osize; /* DWARF CU offset size. */ - Dwarf_Half cu_ver; /* DWARF CU version. */ - GElf_Ehdr ehdr; /* ELF header. */ - int ec; /* ELF class. */ - size_t shnum; /* #sections. */ - struct section *vd_s; /* Verdef section. */ - struct section *vn_s; /* Verneed section. */ - struct section *vs_s; /* Versym section. */ - uint16_t *vs; /* Versym array. */ - int vs_sz; /* Versym array size. */ - struct symver *ver; /* Version array. */ - int ver_sz; /* Size of version array. */ - struct section *sl; /* list of sections. */ - STAILQ_HEAD(, dumpop) v_dumpop; /* list of dump ops. */ - uint64_t (*dw_read)(Elf_Data *, uint64_t *, int); - uint64_t (*dw_decode)(uint8_t **, int); -}; - -enum options -{ - OPTION_DEBUG_DUMP -}; - -static struct option longopts[] = { - {"all", no_argument, NULL, 'a'}, - {"arch-specific", no_argument, NULL, 'A'}, - {"archive-index", no_argument, NULL, 'c'}, - {"debug-dump", optional_argument, NULL, OPTION_DEBUG_DUMP}, - {"dynamic", no_argument, NULL, 'd'}, - {"file-header", no_argument, NULL, 'h'}, - {"full-section-name", no_argument, NULL, 'N'}, - {"headers", no_argument, NULL, 'e'}, - {"help", no_argument, 0, 'H'}, - {"hex-dump", required_argument, NULL, 'x'}, - {"histogram", no_argument, NULL, 'I'}, - {"notes", no_argument, NULL, 'n'}, - {"program-headers", no_argument, NULL, 'l'}, - {"relocs", no_argument, NULL, 'r'}, - {"sections", no_argument, NULL, 'S'}, - {"section-headers", no_argument, NULL, 'S'}, - {"section-groups", no_argument, NULL, 'g'}, - {"section-details", no_argument, NULL, 't'}, - {"segments", no_argument, NULL, 'l'}, - {"string-dump", required_argument, NULL, 'p'}, - {"symbols", no_argument, NULL, 's'}, - {"syms", no_argument, NULL, 's'}, - {"unwind", no_argument, NULL, 'u'}, - {"use-dynamic", no_argument, NULL, 'D'}, - {"version-info", no_argument, 0, 'V'}, - {"version", no_argument, 0, 'v'}, - {"wide", no_argument, 0, 'W'}, - {NULL, 0, NULL, 0} -}; - -struct eflags_desc { - uint64_t flag; - const char *desc; -}; - -struct flag_desc { - uint64_t flag; - const char *desc; -}; - -struct mips_option { - uint64_t flag; - const char *desc; -}; - -static void add_dumpop(struct readelf *re, size_t si, const char *sn, int op, - int t); -static const char *aeabi_adv_simd_arch(uint64_t simd); -static const char *aeabi_align_needed(uint64_t an); -static const char *aeabi_align_preserved(uint64_t ap); -static const char *aeabi_arm_isa(uint64_t ai); -static const char *aeabi_cpu_arch(uint64_t arch); -static const char *aeabi_cpu_arch_profile(uint64_t pf); -static const char *aeabi_div(uint64_t du); -static const char *aeabi_enum_size(uint64_t es); -static const char *aeabi_fp_16bit_format(uint64_t fp16); -static const char *aeabi_fp_arch(uint64_t fp); -static const char *aeabi_fp_denormal(uint64_t fd); -static const char *aeabi_fp_exceptions(uint64_t fe); -static const char *aeabi_fp_hpext(uint64_t fh); -static const char *aeabi_fp_number_model(uint64_t fn); -static const char *aeabi_fp_optm_goal(uint64_t fog); -static const char *aeabi_fp_rounding(uint64_t fr); -static const char *aeabi_hardfp(uint64_t hfp); -static const char *aeabi_mpext(uint64_t mp); -static const char *aeabi_optm_goal(uint64_t og); -static const char *aeabi_pcs_config(uint64_t pcs); -static const char *aeabi_pcs_got(uint64_t got); -static const char *aeabi_pcs_r9(uint64_t r9); -static const char *aeabi_pcs_ro(uint64_t ro); -static const char *aeabi_pcs_rw(uint64_t rw); -static const char *aeabi_pcs_wchar_t(uint64_t wt); -static const char *aeabi_t2ee(uint64_t t2ee); -static const char *aeabi_thumb_isa(uint64_t ti); -static const char *aeabi_fp_user_exceptions(uint64_t fu); -static const char *aeabi_unaligned_access(uint64_t ua); -static const char *aeabi_vfp_args(uint64_t va); -static const char *aeabi_virtual(uint64_t vt); -static const char *aeabi_wmmx_arch(uint64_t wmmx); -static const char *aeabi_wmmx_args(uint64_t wa); -static const char *elf_class(unsigned int class); -static const char *elf_endian(unsigned int endian); -static const char *elf_machine(unsigned int mach); -static const char *elf_osabi(unsigned int abi); -static const char *elf_type(unsigned int type); -static const char *elf_ver(unsigned int ver); -static const char *dt_type(unsigned int mach, unsigned int dtype); -static void dump_ar(struct readelf *re, int); -static void dump_arm_attributes(struct readelf *re, uint8_t *p, uint8_t *pe); -static void dump_attributes(struct readelf *re); -static uint8_t *dump_compatibility_tag(uint8_t *p, uint8_t *pe); -static void dump_dwarf(struct readelf *re); -static void dump_dwarf_abbrev(struct readelf *re); -static void dump_dwarf_aranges(struct readelf *re); -static void dump_dwarf_block(struct readelf *re, uint8_t *b, - Dwarf_Unsigned len); -static void dump_dwarf_die(struct readelf *re, Dwarf_Die die, int level); -static void dump_dwarf_frame(struct readelf *re, int alt); -static void dump_dwarf_frame_inst(struct readelf *re, Dwarf_Cie cie, - uint8_t *insts, Dwarf_Unsigned len, Dwarf_Unsigned caf, Dwarf_Signed daf, - Dwarf_Addr pc, Dwarf_Debug dbg); -static int dump_dwarf_frame_regtable(struct readelf *re, Dwarf_Fde fde, - Dwarf_Addr pc, Dwarf_Unsigned func_len, Dwarf_Half cie_ra); -static void dump_dwarf_frame_section(struct readelf *re, struct section *s, - int alt); -static void dump_dwarf_info(struct readelf *re, Dwarf_Bool is_info); -static void dump_dwarf_macinfo(struct readelf *re); -static void dump_dwarf_line(struct readelf *re); -static void dump_dwarf_line_decoded(struct readelf *re); -static void dump_dwarf_loc(struct readelf *re, Dwarf_Loc *lr); -static void dump_dwarf_loclist(struct readelf *re); -static void dump_dwarf_pubnames(struct readelf *re); -static void dump_dwarf_ranges(struct readelf *re); -static void dump_dwarf_ranges_foreach(struct readelf *re, Dwarf_Die die, - Dwarf_Addr base); -static void dump_dwarf_str(struct readelf *re); -static void dump_eflags(struct readelf *re, uint64_t e_flags); -static void dump_elf(struct readelf *re); -static void dump_flags(struct flag_desc *fd, uint64_t flags); -static void dump_dyn_val(struct readelf *re, GElf_Dyn *dyn, uint32_t stab); -static void dump_dynamic(struct readelf *re); -static void dump_liblist(struct readelf *re); -static void dump_mips_abiflags(struct readelf *re, struct section *s); -static void dump_mips_attributes(struct readelf *re, uint8_t *p, uint8_t *pe); -static void dump_mips_odk_reginfo(struct readelf *re, uint8_t *p, size_t sz); -static void dump_mips_options(struct readelf *re, struct section *s); -static void dump_mips_option_flags(const char *name, struct mips_option *opt, - uint64_t info); -static void dump_mips_reginfo(struct readelf *re, struct section *s); -static void dump_mips_specific_info(struct readelf *re); -static void dump_notes(struct readelf *re); -static void dump_notes_content(struct readelf *re, const char *buf, size_t sz, - off_t off); -static void dump_notes_data(const char *name, uint32_t type, const char *buf, - size_t sz); -static void dump_svr4_hash(struct section *s); -static void dump_svr4_hash64(struct readelf *re, struct section *s); -static void dump_gnu_hash(struct readelf *re, struct section *s); -static void dump_hash(struct readelf *re); -static void dump_phdr(struct readelf *re); -static void dump_ppc_attributes(uint8_t *p, uint8_t *pe); -static void dump_section_groups(struct readelf *re); -static void dump_symtab(struct readelf *re, int i); -static void dump_symtabs(struct readelf *re); -static uint8_t *dump_unknown_tag(uint64_t tag, uint8_t *p, uint8_t *pe); -static void dump_ver(struct readelf *re); -static void dump_verdef(struct readelf *re, int dump); -static void dump_verneed(struct readelf *re, int dump); -static void dump_versym(struct readelf *re); -static const char *dwarf_reg(unsigned int mach, unsigned int reg); -static const char *dwarf_regname(struct readelf *re, unsigned int num); -static struct dumpop *find_dumpop(struct readelf *re, size_t si, - const char *sn, int op, int t); -static int get_ent_count(struct section *s, int *ent_count); -static int get_mips_register_size(uint8_t flag); -static char *get_regoff_str(struct readelf *re, Dwarf_Half reg, - Dwarf_Addr off); -static const char *get_string(struct readelf *re, int strtab, size_t off); -static const char *get_symbol_name(struct readelf *re, int symtab, int i); -static uint64_t get_symbol_value(struct readelf *re, int symtab, int i); -static void load_sections(struct readelf *re); -static const char *mips_abi_fp(uint64_t fp); -static const char *note_type(const char *note_name, unsigned int et, - unsigned int nt); -static const char *note_type_freebsd(unsigned int nt); -static const char *note_type_freebsd_core(unsigned int nt); -static const char *note_type_linux_core(unsigned int nt); -static const char *note_type_gnu(unsigned int nt); -static const char *note_type_netbsd(unsigned int nt); -static const char *note_type_openbsd(unsigned int nt); -static const char *note_type_unknown(unsigned int nt); -static const char *note_type_xen(unsigned int nt); -static const char *option_kind(uint8_t kind); -static const char *phdr_type(unsigned int mach, unsigned int ptype); -static const char *ppc_abi_fp(uint64_t fp); -static const char *ppc_abi_vector(uint64_t vec); -static void readelf_usage(int status); -static void readelf_version(void); -static void search_loclist_at(struct readelf *re, Dwarf_Die die, - Dwarf_Unsigned lowpc); -static void search_ver(struct readelf *re); -static const char *section_type(unsigned int mach, unsigned int stype); -static void set_cu_context(struct readelf *re, Dwarf_Half psize, - Dwarf_Half osize, Dwarf_Half ver); -static const char *st_bind(unsigned int sbind); -static const char *st_shndx(unsigned int shndx); -static const char *st_type(unsigned int mach, unsigned int os, - unsigned int stype); -static const char *st_vis(unsigned int svis); -static const char *top_tag(unsigned int tag); -static void unload_sections(struct readelf *re); -static uint64_t _read_lsb(Elf_Data *d, uint64_t *offsetp, - int bytes_to_read); -static uint64_t _read_msb(Elf_Data *d, uint64_t *offsetp, - int bytes_to_read); -static uint64_t _decode_lsb(uint8_t **data, int bytes_to_read); -static uint64_t _decode_msb(uint8_t **data, int bytes_to_read); -static int64_t _decode_sleb128(uint8_t **dp, uint8_t *dpe); -static uint64_t _decode_uleb128(uint8_t **dp, uint8_t *dpe); - -static struct eflags_desc arm_eflags_desc[] = { - {EF_ARM_RELEXEC, "relocatable executable"}, - {EF_ARM_HASENTRY, "has entry point"}, - {EF_ARM_SYMSARESORTED, "sorted symbol tables"}, - {EF_ARM_DYNSYMSUSESEGIDX, "dynamic symbols use segment index"}, - {EF_ARM_MAPSYMSFIRST, "mapping symbols precede others"}, - {EF_ARM_BE8, "BE8"}, - {EF_ARM_LE8, "LE8"}, - {EF_ARM_INTERWORK, "interworking enabled"}, - {EF_ARM_APCS_26, "uses APCS/26"}, - {EF_ARM_APCS_FLOAT, "uses APCS/float"}, - {EF_ARM_PIC, "position independent"}, - {EF_ARM_ALIGN8, "8 bit structure alignment"}, - {EF_ARM_NEW_ABI, "uses new ABI"}, - {EF_ARM_OLD_ABI, "uses old ABI"}, - {EF_ARM_SOFT_FLOAT, "software FP"}, - {EF_ARM_VFP_FLOAT, "VFP"}, - {EF_ARM_MAVERICK_FLOAT, "Maverick FP"}, - {0, NULL} -}; - -static struct eflags_desc mips_eflags_desc[] = { - {EF_MIPS_NOREORDER, "noreorder"}, - {EF_MIPS_PIC, "pic"}, - {EF_MIPS_CPIC, "cpic"}, - {EF_MIPS_UCODE, "ugen_reserved"}, - {EF_MIPS_ABI2, "abi2"}, - {EF_MIPS_OPTIONS_FIRST, "odk first"}, - {EF_MIPS_ARCH_ASE_MDMX, "mdmx"}, - {EF_MIPS_ARCH_ASE_M16, "mips16"}, - {0, NULL} -}; - -static struct eflags_desc powerpc_eflags_desc[] = { - {EF_PPC_EMB, "emb"}, - {EF_PPC_RELOCATABLE, "relocatable"}, - {EF_PPC_RELOCATABLE_LIB, "relocatable-lib"}, - {0, NULL} -}; - -static struct eflags_desc riscv_eflags_desc[] = { - {EF_RISCV_RVC, "RVC"}, - {EF_RISCV_RVE, "RVE"}, - {EF_RISCV_TSO, "TSO"}, - {0, NULL} -}; - -static struct eflags_desc sparc_eflags_desc[] = { - {EF_SPARC_32PLUS, "v8+"}, - {EF_SPARC_SUN_US1, "ultrasparcI"}, - {EF_SPARC_HAL_R1, "halr1"}, - {EF_SPARC_SUN_US3, "ultrasparcIII"}, - {0, NULL} -}; - -static const char * -elf_osabi(unsigned int abi) -{ - static char s_abi[32]; - - switch(abi) { - case ELFOSABI_NONE: return "NONE"; - case ELFOSABI_HPUX: return "HPUX"; - case ELFOSABI_NETBSD: return "NetBSD"; - case ELFOSABI_GNU: return "GNU"; - case ELFOSABI_HURD: return "HURD"; - case ELFOSABI_86OPEN: return "86OPEN"; - case ELFOSABI_SOLARIS: return "Solaris"; - case ELFOSABI_AIX: return "AIX"; - case ELFOSABI_IRIX: return "IRIX"; - case ELFOSABI_FREEBSD: return "FreeBSD"; - case ELFOSABI_TRU64: return "TRU64"; - case ELFOSABI_MODESTO: return "MODESTO"; - case ELFOSABI_OPENBSD: return "OpenBSD"; - case ELFOSABI_OPENVMS: return "OpenVMS"; - case ELFOSABI_NSK: return "NSK"; - case ELFOSABI_AROS: return "AROS"; - case ELFOSABI_FENIXOS: return "FenixOS"; - case ELFOSABI_CLOUDABI: return "CloudABI"; - case ELFOSABI_OPENVOS: return "OpenVOS"; - case ELFOSABI_ARM_AEABI: return "ARM EABI"; - case ELFOSABI_ARM: return "ARM"; - case ELFOSABI_STANDALONE: return "StandAlone"; - default: - snprintf(s_abi, sizeof(s_abi), "", abi); - return (s_abi); - } -}; - -static const char * -elf_machine(unsigned int mach) -{ - static char s_mach[32]; - - switch (mach) { - case EM_NONE: return "Unknown machine"; - case EM_M32: return "AT&T WE32100"; - case EM_SPARC: return "Sun SPARC"; - case EM_386: return "Intel i386"; - case EM_68K: return "Motorola 68000"; - case EM_IAMCU: return "Intel MCU"; - case EM_88K: return "Motorola 88000"; - case EM_860: return "Intel i860"; - case EM_MIPS: return "MIPS R3000 Big-Endian only"; - case EM_S370: return "IBM System/370"; - case EM_MIPS_RS3_LE: return "MIPS R3000 Little-Endian"; - case EM_PARISC: return "HP PA-RISC"; - case EM_VPP500: return "Fujitsu VPP500"; - case EM_SPARC32PLUS: return "SPARC v8plus"; - case EM_960: return "Intel 80960"; - case EM_PPC: return "PowerPC 32-bit"; - case EM_PPC64: return "PowerPC 64-bit"; - case EM_S390: return "IBM System/390"; - case EM_V800: return "NEC V800"; - case EM_FR20: return "Fujitsu FR20"; - case EM_RH32: return "TRW RH-32"; - case EM_RCE: return "Motorola RCE"; - case EM_ARM: return "ARM"; - case EM_SH: return "Hitachi SH"; - case EM_SPARCV9: return "SPARC v9 64-bit"; - case EM_TRICORE: return "Siemens TriCore embedded processor"; - case EM_ARC: return "Argonaut RISC Core"; - case EM_H8_300: return "Hitachi H8/300"; - case EM_H8_300H: return "Hitachi H8/300H"; - case EM_H8S: return "Hitachi H8S"; - case EM_H8_500: return "Hitachi H8/500"; - case EM_IA_64: return "Intel IA-64 Processor"; - case EM_MIPS_X: return "Stanford MIPS-X"; - case EM_COLDFIRE: return "Motorola ColdFire"; - case EM_68HC12: return "Motorola M68HC12"; - case EM_MMA: return "Fujitsu MMA"; - case EM_PCP: return "Siemens PCP"; - case EM_NCPU: return "Sony nCPU"; - case EM_NDR1: return "Denso NDR1 microprocessor"; - case EM_STARCORE: return "Motorola Star*Core processor"; - case EM_ME16: return "Toyota ME16 processor"; - case EM_ST100: return "STMicroelectronics ST100 processor"; - case EM_TINYJ: return "Advanced Logic Corp. TinyJ processor"; - case EM_X86_64: return "Advanced Micro Devices x86-64"; - case EM_PDSP: return "Sony DSP Processor"; - case EM_FX66: return "Siemens FX66 microcontroller"; - case EM_ST9PLUS: return "STMicroelectronics ST9+ 8/16 microcontroller"; - case EM_ST7: return "STmicroelectronics ST7 8-bit microcontroller"; - case EM_68HC16: return "Motorola MC68HC16 microcontroller"; - case EM_68HC11: return "Motorola MC68HC11 microcontroller"; - case EM_68HC08: return "Motorola MC68HC08 microcontroller"; - case EM_68HC05: return "Motorola MC68HC05 microcontroller"; - case EM_SVX: return "Silicon Graphics SVx"; - case EM_ST19: return "STMicroelectronics ST19 8-bit mc"; - case EM_VAX: return "Digital VAX"; - case EM_CRIS: return "Axis Communications 32-bit embedded processor"; - case EM_JAVELIN: return "Infineon Tech. 32bit embedded processor"; - case EM_FIREPATH: return "Element 14 64-bit DSP Processor"; - case EM_ZSP: return "LSI Logic 16-bit DSP Processor"; - case EM_MMIX: return "Donald Knuth's educational 64-bit proc"; - case EM_HUANY: return "Harvard University MI object files"; - case EM_PRISM: return "SiTera Prism"; - case EM_AVR: return "Atmel AVR 8-bit microcontroller"; - case EM_FR30: return "Fujitsu FR30"; - case EM_D10V: return "Mitsubishi D10V"; - case EM_D30V: return "Mitsubishi D30V"; - case EM_V850: return "NEC v850"; - case EM_M32R: return "Mitsubishi M32R"; - case EM_MN10300: return "Matsushita MN10300"; - case EM_MN10200: return "Matsushita MN10200"; - case EM_PJ: return "picoJava"; - case EM_OPENRISC: return "OpenRISC 32-bit embedded processor"; - case EM_ARC_A5: return "ARC Cores Tangent-A5"; - case EM_XTENSA: return "Tensilica Xtensa Architecture"; - case EM_VIDEOCORE: return "Alphamosaic VideoCore processor"; - case EM_TMM_GPP: return "Thompson Multimedia General Purpose Processor"; - case EM_NS32K: return "National Semiconductor 32000 series"; - case EM_TPC: return "Tenor Network TPC processor"; - case EM_SNP1K: return "Trebia SNP 1000 processor"; - case EM_ST200: return "STMicroelectronics ST200 microcontroller"; - case EM_IP2K: return "Ubicom IP2xxx microcontroller family"; - case EM_MAX: return "MAX Processor"; - case EM_CR: return "National Semiconductor CompactRISC microprocessor"; - case EM_F2MC16: return "Fujitsu F2MC16"; - case EM_MSP430: return "TI embedded microcontroller msp430"; - case EM_BLACKFIN: return "Analog Devices Blackfin (DSP) processor"; - case EM_SE_C33: return "S1C33 Family of Seiko Epson processors"; - case EM_SEP: return "Sharp embedded microprocessor"; - case EM_ARCA: return "Arca RISC Microprocessor"; - case EM_UNICORE: return "Microprocessor series from PKU-Unity Ltd"; - case EM_AARCH64: return "AArch64"; - case EM_RISCV: return "RISC-V"; - default: - snprintf(s_mach, sizeof(s_mach), "", mach); - return (s_mach); - } - -} - -static const char * -elf_class(unsigned int class) -{ - static char s_class[32]; - - switch (class) { - case ELFCLASSNONE: return "none"; - case ELFCLASS32: return "ELF32"; - case ELFCLASS64: return "ELF64"; - default: - snprintf(s_class, sizeof(s_class), "", class); - return (s_class); - } -} - -static const char * -elf_endian(unsigned int endian) -{ - static char s_endian[32]; - - switch (endian) { - case ELFDATANONE: return "none"; - case ELFDATA2LSB: return "2's complement, little endian"; - case ELFDATA2MSB: return "2's complement, big endian"; - default: - snprintf(s_endian, sizeof(s_endian), "", endian); - return (s_endian); - } -} - -static const char * -elf_type(unsigned int type) -{ - static char s_type[32]; - - switch (type) { - case ET_NONE: return "NONE (None)"; - case ET_REL: return "REL (Relocatable file)"; - case ET_EXEC: return "EXEC (Executable file)"; - case ET_DYN: return "DYN (Shared object file)"; - case ET_CORE: return "CORE (Core file)"; - default: - if (type >= ET_LOPROC) - snprintf(s_type, sizeof(s_type), "", type); - else if (type >= ET_LOOS && type <= ET_HIOS) - snprintf(s_type, sizeof(s_type), "", type); - else - snprintf(s_type, sizeof(s_type), "", - type); - return (s_type); - } -} - -static const char * -elf_ver(unsigned int ver) -{ - static char s_ver[32]; - - switch (ver) { - case EV_CURRENT: return "(current)"; - case EV_NONE: return "(none)"; - default: - snprintf(s_ver, sizeof(s_ver), "", - ver); - return (s_ver); - } -} - -static const char * -phdr_type(unsigned int mach, unsigned int ptype) -{ - static char s_ptype[32]; - - if (ptype >= PT_LOPROC && ptype <= PT_HIPROC) { - switch (mach) { - case EM_ARM: - switch (ptype) { - case PT_ARM_ARCHEXT: return "ARM_ARCHEXT"; - case PT_ARM_EXIDX: return "ARM_EXIDX"; - } - break; - } - snprintf(s_ptype, sizeof(s_ptype), "LOPROC+%#x", - ptype - PT_LOPROC); - return (s_ptype); - } - - switch (ptype) { - case PT_NULL: return "NULL"; - case PT_LOAD: return "LOAD"; - case PT_DYNAMIC: return "DYNAMIC"; - case PT_INTERP: return "INTERP"; - case PT_NOTE: return "NOTE"; - case PT_SHLIB: return "SHLIB"; - case PT_PHDR: return "PHDR"; - case PT_TLS: return "TLS"; - case PT_GNU_EH_FRAME: return "GNU_EH_FRAME"; - case PT_GNU_STACK: return "GNU_STACK"; - case PT_GNU_RELRO: return "GNU_RELRO"; - case PT_OPENBSD_RANDOMIZE: return "OPENBSD_RANDOMIZE"; - case PT_OPENBSD_WXNEEDED: return "OPENBSD_WXNEEDED"; - case PT_OPENBSD_BOOTDATA: return "OPENBSD_BOOTDATA"; - default: - if (ptype >= PT_LOOS && ptype <= PT_HIOS) - snprintf(s_ptype, sizeof(s_ptype), "LOOS+%#x", - ptype - PT_LOOS); - else - snprintf(s_ptype, sizeof(s_ptype), "", - ptype); - return (s_ptype); - } -} - -static const char * -section_type(unsigned int mach, unsigned int stype) -{ - static char s_stype[32]; - - if (stype >= SHT_LOPROC && stype <= SHT_HIPROC) { - switch (mach) { - case EM_ARM: - switch (stype) { - case SHT_ARM_EXIDX: return "ARM_EXIDX"; - case SHT_ARM_PREEMPTMAP: return "ARM_PREEMPTMAP"; - case SHT_ARM_ATTRIBUTES: return "ARM_ATTRIBUTES"; - case SHT_ARM_DEBUGOVERLAY: return "ARM_DEBUGOVERLAY"; - case SHT_ARM_OVERLAYSECTION: return "ARM_OVERLAYSECTION"; - } - break; - case EM_X86_64: - switch (stype) { - case SHT_X86_64_UNWIND: return "X86_64_UNWIND"; - default: - break; - } - break; - case EM_MIPS: - case EM_MIPS_RS3_LE: - switch (stype) { - case SHT_MIPS_LIBLIST: return "MIPS_LIBLIST"; - case SHT_MIPS_MSYM: return "MIPS_MSYM"; - case SHT_MIPS_CONFLICT: return "MIPS_CONFLICT"; - case SHT_MIPS_GPTAB: return "MIPS_GPTAB"; - case SHT_MIPS_UCODE: return "MIPS_UCODE"; - case SHT_MIPS_DEBUG: return "MIPS_DEBUG"; - case SHT_MIPS_REGINFO: return "MIPS_REGINFO"; - case SHT_MIPS_PACKAGE: return "MIPS_PACKAGE"; - case SHT_MIPS_PACKSYM: return "MIPS_PACKSYM"; - case SHT_MIPS_RELD: return "MIPS_RELD"; - case SHT_MIPS_IFACE: return "MIPS_IFACE"; - case SHT_MIPS_CONTENT: return "MIPS_CONTENT"; - case SHT_MIPS_OPTIONS: return "MIPS_OPTIONS"; - case SHT_MIPS_DELTASYM: return "MIPS_DELTASYM"; - case SHT_MIPS_DELTAINST: return "MIPS_DELTAINST"; - case SHT_MIPS_DELTACLASS: return "MIPS_DELTACLASS"; - case SHT_MIPS_DWARF: return "MIPS_DWARF"; - case SHT_MIPS_DELTADECL: return "MIPS_DELTADECL"; - case SHT_MIPS_SYMBOL_LIB: return "MIPS_SYMBOL_LIB"; - case SHT_MIPS_EVENTS: return "MIPS_EVENTS"; - case SHT_MIPS_TRANSLATE: return "MIPS_TRANSLATE"; - case SHT_MIPS_PIXIE: return "MIPS_PIXIE"; - case SHT_MIPS_XLATE: return "MIPS_XLATE"; - case SHT_MIPS_XLATE_DEBUG: return "MIPS_XLATE_DEBUG"; - case SHT_MIPS_WHIRL: return "MIPS_WHIRL"; - case SHT_MIPS_EH_REGION: return "MIPS_EH_REGION"; - case SHT_MIPS_XLATE_OLD: return "MIPS_XLATE_OLD"; - case SHT_MIPS_PDR_EXCEPTION: return "MIPS_PDR_EXCEPTION"; - case SHT_MIPS_ABIFLAGS: return "MIPS_ABIFLAGS"; - default: - break; - } - break; - default: - break; - } - - snprintf(s_stype, sizeof(s_stype), "LOPROC+%#x", - stype - SHT_LOPROC); - return (s_stype); - } - - switch (stype) { - case SHT_NULL: return "NULL"; - case SHT_PROGBITS: return "PROGBITS"; - case SHT_SYMTAB: return "SYMTAB"; - case SHT_STRTAB: return "STRTAB"; - case SHT_RELA: return "RELA"; - case SHT_HASH: return "HASH"; - case SHT_DYNAMIC: return "DYNAMIC"; - case SHT_NOTE: return "NOTE"; - case SHT_NOBITS: return "NOBITS"; - case SHT_REL: return "REL"; - case SHT_SHLIB: return "SHLIB"; - case SHT_DYNSYM: return "DYNSYM"; - case SHT_INIT_ARRAY: return "INIT_ARRAY"; - case SHT_FINI_ARRAY: return "FINI_ARRAY"; - case SHT_PREINIT_ARRAY: return "PREINIT_ARRAY"; - case SHT_GROUP: return "GROUP"; - case SHT_SYMTAB_SHNDX: return "SYMTAB_SHNDX"; - case SHT_SUNW_dof: return "SUNW_dof"; - case SHT_SUNW_cap: return "SUNW_cap"; - case SHT_GNU_HASH: return "GNU_HASH"; - case SHT_SUNW_ANNOTATE: return "SUNW_ANNOTATE"; - case SHT_SUNW_DEBUGSTR: return "SUNW_DEBUGSTR"; - case SHT_SUNW_DEBUG: return "SUNW_DEBUG"; - case SHT_SUNW_move: return "SUNW_move"; - case SHT_SUNW_COMDAT: return "SUNW_COMDAT"; - case SHT_SUNW_syminfo: return "SUNW_syminfo"; - case SHT_SUNW_verdef: return "SUNW_verdef"; - case SHT_SUNW_verneed: return "SUNW_verneed"; - case SHT_SUNW_versym: return "SUNW_versym"; - default: - if (stype >= SHT_LOOS && stype <= SHT_HIOS) - snprintf(s_stype, sizeof(s_stype), "LOOS+%#x", - stype - SHT_LOOS); - else if (stype >= SHT_LOUSER) - snprintf(s_stype, sizeof(s_stype), "LOUSER+%#x", - stype - SHT_LOUSER); - else - snprintf(s_stype, sizeof(s_stype), "", - stype); - return (s_stype); - } -} - -static const char * -dt_type(unsigned int mach, unsigned int dtype) -{ - static char s_dtype[32]; - - switch (dtype) { - case DT_NULL: return "NULL"; - case DT_NEEDED: return "NEEDED"; - case DT_PLTRELSZ: return "PLTRELSZ"; - case DT_PLTGOT: return "PLTGOT"; - case DT_HASH: return "HASH"; - case DT_STRTAB: return "STRTAB"; - case DT_SYMTAB: return "SYMTAB"; - case DT_RELA: return "RELA"; - case DT_RELASZ: return "RELASZ"; - case DT_RELAENT: return "RELAENT"; - case DT_STRSZ: return "STRSZ"; - case DT_SYMENT: return "SYMENT"; - case DT_INIT: return "INIT"; - case DT_FINI: return "FINI"; - case DT_SONAME: return "SONAME"; - case DT_RPATH: return "RPATH"; - case DT_SYMBOLIC: return "SYMBOLIC"; - case DT_REL: return "REL"; - case DT_RELSZ: return "RELSZ"; - case DT_RELENT: return "RELENT"; - case DT_PLTREL: return "PLTREL"; - case DT_DEBUG: return "DEBUG"; - case DT_TEXTREL: return "TEXTREL"; - case DT_JMPREL: return "JMPREL"; - case DT_BIND_NOW: return "BIND_NOW"; - case DT_INIT_ARRAY: return "INIT_ARRAY"; - case DT_FINI_ARRAY: return "FINI_ARRAY"; - case DT_INIT_ARRAYSZ: return "INIT_ARRAYSZ"; - case DT_FINI_ARRAYSZ: return "FINI_ARRAYSZ"; - case DT_RUNPATH: return "RUNPATH"; - case DT_FLAGS: return "FLAGS"; - case DT_PREINIT_ARRAY: return "PREINIT_ARRAY"; - case DT_PREINIT_ARRAYSZ: return "PREINIT_ARRAYSZ"; - case DT_MAXPOSTAGS: return "MAXPOSTAGS"; - case DT_SUNW_AUXILIARY: return "SUNW_AUXILIARY"; - case DT_SUNW_RTLDINF: return "SUNW_RTLDINF"; - case DT_SUNW_FILTER: return "SUNW_FILTER"; - case DT_SUNW_CAP: return "SUNW_CAP"; - case DT_SUNW_ASLR: return "SUNW_ASLR"; - case DT_CHECKSUM: return "CHECKSUM"; - case DT_PLTPADSZ: return "PLTPADSZ"; - case DT_MOVEENT: return "MOVEENT"; - case DT_MOVESZ: return "MOVESZ"; - case DT_FEATURE: return "FEATURE"; - case DT_POSFLAG_1: return "POSFLAG_1"; - case DT_SYMINSZ: return "SYMINSZ"; - case DT_SYMINENT: return "SYMINENT"; - case DT_GNU_HASH: return "GNU_HASH"; - case DT_TLSDESC_PLT: return "DT_TLSDESC_PLT"; - case DT_TLSDESC_GOT: return "DT_TLSDESC_GOT"; - case DT_GNU_CONFLICT: return "GNU_CONFLICT"; - case DT_GNU_LIBLIST: return "GNU_LIBLIST"; - case DT_CONFIG: return "CONFIG"; - case DT_DEPAUDIT: return "DEPAUDIT"; - case DT_AUDIT: return "AUDIT"; - case DT_PLTPAD: return "PLTPAD"; - case DT_MOVETAB: return "MOVETAB"; - case DT_SYMINFO: return "SYMINFO"; - case DT_VERSYM: return "VERSYM"; - case DT_RELACOUNT: return "RELACOUNT"; - case DT_RELCOUNT: return "RELCOUNT"; - case DT_FLAGS_1: return "FLAGS_1"; - case DT_VERDEF: return "VERDEF"; - case DT_VERDEFNUM: return "VERDEFNUM"; - case DT_VERNEED: return "VERNEED"; - case DT_VERNEEDNUM: return "VERNEEDNUM"; - case DT_AUXILIARY: return "AUXILIARY"; - case DT_USED: return "USED"; - case DT_FILTER: return "FILTER"; - case DT_GNU_PRELINKED: return "GNU_PRELINKED"; - case DT_GNU_CONFLICTSZ: return "GNU_CONFLICTSZ"; - case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ"; - } - - if (dtype >= DT_LOPROC && dtype <= DT_HIPROC) { - switch (mach) { - case EM_ARM: - switch (dtype) { - case DT_ARM_SYMTABSZ: - return "ARM_SYMTABSZ"; - default: - break; - } - break; - case EM_MIPS: - case EM_MIPS_RS3_LE: - switch (dtype) { - case DT_MIPS_RLD_VERSION: - return "MIPS_RLD_VERSION"; - case DT_MIPS_TIME_STAMP: - return "MIPS_TIME_STAMP"; - case DT_MIPS_ICHECKSUM: - return "MIPS_ICHECKSUM"; - case DT_MIPS_IVERSION: - return "MIPS_IVERSION"; - case DT_MIPS_FLAGS: - return "MIPS_FLAGS"; - case DT_MIPS_BASE_ADDRESS: - return "MIPS_BASE_ADDRESS"; - case DT_MIPS_CONFLICT: - return "MIPS_CONFLICT"; - case DT_MIPS_LIBLIST: - return "MIPS_LIBLIST"; - case DT_MIPS_LOCAL_GOTNO: - return "MIPS_LOCAL_GOTNO"; - case DT_MIPS_CONFLICTNO: - return "MIPS_CONFLICTNO"; - case DT_MIPS_LIBLISTNO: - return "MIPS_LIBLISTNO"; - case DT_MIPS_SYMTABNO: - return "MIPS_SYMTABNO"; - case DT_MIPS_UNREFEXTNO: - return "MIPS_UNREFEXTNO"; - case DT_MIPS_GOTSYM: - return "MIPS_GOTSYM"; - case DT_MIPS_HIPAGENO: - return "MIPS_HIPAGENO"; - case DT_MIPS_RLD_MAP: - return "MIPS_RLD_MAP"; - case DT_MIPS_DELTA_CLASS: - return "MIPS_DELTA_CLASS"; - case DT_MIPS_DELTA_CLASS_NO: - return "MIPS_DELTA_CLASS_NO"; - case DT_MIPS_DELTA_INSTANCE: - return "MIPS_DELTA_INSTANCE"; - case DT_MIPS_DELTA_INSTANCE_NO: - return "MIPS_DELTA_INSTANCE_NO"; - case DT_MIPS_DELTA_RELOC: - return "MIPS_DELTA_RELOC"; - case DT_MIPS_DELTA_RELOC_NO: - return "MIPS_DELTA_RELOC_NO"; - case DT_MIPS_DELTA_SYM: - return "MIPS_DELTA_SYM"; - case DT_MIPS_DELTA_SYM_NO: - return "MIPS_DELTA_SYM_NO"; - case DT_MIPS_DELTA_CLASSSYM: - return "MIPS_DELTA_CLASSSYM"; - case DT_MIPS_DELTA_CLASSSYM_NO: - return "MIPS_DELTA_CLASSSYM_NO"; - case DT_MIPS_CXX_FLAGS: - return "MIPS_CXX_FLAGS"; - case DT_MIPS_PIXIE_INIT: - return "MIPS_PIXIE_INIT"; - case DT_MIPS_SYMBOL_LIB: - return "MIPS_SYMBOL_LIB"; - case DT_MIPS_LOCALPAGE_GOTIDX: - return "MIPS_LOCALPAGE_GOTIDX"; - case DT_MIPS_LOCAL_GOTIDX: - return "MIPS_LOCAL_GOTIDX"; - case DT_MIPS_HIDDEN_GOTIDX: - return "MIPS_HIDDEN_GOTIDX"; - case DT_MIPS_PROTECTED_GOTIDX: - return "MIPS_PROTECTED_GOTIDX"; - case DT_MIPS_OPTIONS: - return "MIPS_OPTIONS"; - case DT_MIPS_INTERFACE: - return "MIPS_INTERFACE"; - case DT_MIPS_DYNSTR_ALIGN: - return "MIPS_DYNSTR_ALIGN"; - case DT_MIPS_INTERFACE_SIZE: - return "MIPS_INTERFACE_SIZE"; - case DT_MIPS_RLD_TEXT_RESOLVE_ADDR: - return "MIPS_RLD_TEXT_RESOLVE_ADDR"; - case DT_MIPS_PERF_SUFFIX: - return "MIPS_PERF_SUFFIX"; - case DT_MIPS_COMPACT_SIZE: - return "MIPS_COMPACT_SIZE"; - case DT_MIPS_GP_VALUE: - return "MIPS_GP_VALUE"; - case DT_MIPS_AUX_DYNAMIC: - return "MIPS_AUX_DYNAMIC"; - case DT_MIPS_PLTGOT: - return "MIPS_PLTGOT"; - case DT_MIPS_RLD_OBJ_UPDATE: - return "MIPS_RLD_OBJ_UPDATE"; - case DT_MIPS_RWPLT: - return "MIPS_RWPLT"; - default: - break; - } - break; - case EM_SPARC: - case EM_SPARC32PLUS: - case EM_SPARCV9: - switch (dtype) { - case DT_SPARC_REGISTER: - return "DT_SPARC_REGISTER"; - default: - break; - } - break; - default: - break; - } - } - - snprintf(s_dtype, sizeof(s_dtype), "", dtype); - return (s_dtype); -} - -static const char * -st_bind(unsigned int sbind) -{ - static char s_sbind[32]; - - switch (sbind) { - case STB_LOCAL: return "LOCAL"; - case STB_GLOBAL: return "GLOBAL"; - case STB_WEAK: return "WEAK"; - case STB_GNU_UNIQUE: return "UNIQUE"; - default: - if (sbind >= STB_LOOS && sbind <= STB_HIOS) - return "OS"; - else if (sbind >= STB_LOPROC && sbind <= STB_HIPROC) - return "PROC"; - else - snprintf(s_sbind, sizeof(s_sbind), "", - sbind); - return (s_sbind); - } -} - -static const char * -st_type(unsigned int mach, unsigned int os, unsigned int stype) -{ - static char s_stype[32]; - - switch (stype) { - case STT_NOTYPE: return "NOTYPE"; - case STT_OBJECT: return "OBJECT"; - case STT_FUNC: return "FUNC"; - case STT_SECTION: return "SECTION"; - case STT_FILE: return "FILE"; - case STT_COMMON: return "COMMON"; - case STT_TLS: return "TLS"; - default: - if (stype >= STT_LOOS && stype <= STT_HIOS) { - if ((os == ELFOSABI_GNU || os == ELFOSABI_FREEBSD) && - stype == STT_GNU_IFUNC) - return "IFUNC"; - snprintf(s_stype, sizeof(s_stype), "OS+%#x", - stype - STT_LOOS); - } else if (stype >= STT_LOPROC && stype <= STT_HIPROC) { - if (mach == EM_SPARCV9 && stype == STT_SPARC_REGISTER) - return "REGISTER"; - snprintf(s_stype, sizeof(s_stype), "PROC+%#x", - stype - STT_LOPROC); - } else - snprintf(s_stype, sizeof(s_stype), "", - stype); - return (s_stype); - } -} - -static const char * -st_vis(unsigned int svis) -{ - static char s_svis[32]; - - switch(svis) { - case STV_DEFAULT: return "DEFAULT"; - case STV_INTERNAL: return "INTERNAL"; - case STV_HIDDEN: return "HIDDEN"; - case STV_PROTECTED: return "PROTECTED"; - default: - snprintf(s_svis, sizeof(s_svis), "", svis); - return (s_svis); - } -} - -static const char * -st_shndx(unsigned int shndx) -{ - static char s_shndx[32]; - - switch (shndx) { - case SHN_UNDEF: return "UND"; - case SHN_ABS: return "ABS"; - case SHN_COMMON: return "COM"; - default: - if (shndx >= SHN_LOPROC && shndx <= SHN_HIPROC) - return "PRC"; - else if (shndx >= SHN_LOOS && shndx <= SHN_HIOS) - return "OS"; - else - snprintf(s_shndx, sizeof(s_shndx), "%u", shndx); - return (s_shndx); - } -} - -static struct { - const char *ln; - char sn; - int value; -} section_flag[] = { - {"WRITE", 'W', SHF_WRITE}, - {"ALLOC", 'A', SHF_ALLOC}, - {"EXEC", 'X', SHF_EXECINSTR}, - {"MERGE", 'M', SHF_MERGE}, - {"STRINGS", 'S', SHF_STRINGS}, - {"INFO LINK", 'I', SHF_INFO_LINK}, - {"OS NONCONF", 'O', SHF_OS_NONCONFORMING}, - {"GROUP", 'G', SHF_GROUP}, - {"TLS", 'T', SHF_TLS}, - {"COMPRESSED", 'C', SHF_COMPRESSED}, - {NULL, 0, 0} -}; - -static const char * -note_type(const char *name, unsigned int et, unsigned int nt) -{ - if ((strcmp(name, "CORE") == 0 || strcmp(name, "LINUX") == 0) && - et == ET_CORE) - return note_type_linux_core(nt); - else if (strcmp(name, "FreeBSD") == 0) - if (et == ET_CORE) - return note_type_freebsd_core(nt); - else - return note_type_freebsd(nt); - else if (strcmp(name, "GNU") == 0 && et != ET_CORE) - return note_type_gnu(nt); - else if (strcmp(name, "NetBSD") == 0 && et != ET_CORE) - return note_type_netbsd(nt); - else if (strcmp(name, "OpenBSD") == 0 && et != ET_CORE) - return note_type_openbsd(nt); - else if (strcmp(name, "Xen") == 0 && et != ET_CORE) - return note_type_xen(nt); - return note_type_unknown(nt); -} - -static const char * -note_type_freebsd(unsigned int nt) -{ - switch (nt) { - case 1: return "NT_FREEBSD_ABI_TAG"; - case 2: return "NT_FREEBSD_NOINIT_TAG"; - case 3: return "NT_FREEBSD_ARCH_TAG"; - case 4: return "NT_FREEBSD_FEATURE_CTL"; - default: return (note_type_unknown(nt)); - } -} - -static const char * -note_type_freebsd_core(unsigned int nt) -{ - switch (nt) { - case 1: return "NT_PRSTATUS"; - case 2: return "NT_FPREGSET"; - case 3: return "NT_PRPSINFO"; - case 7: return "NT_THRMISC"; - case 8: return "NT_PROCSTAT_PROC"; - case 9: return "NT_PROCSTAT_FILES"; - case 10: return "NT_PROCSTAT_VMMAP"; - case 11: return "NT_PROCSTAT_GROUPS"; - case 12: return "NT_PROCSTAT_UMASK"; - case 13: return "NT_PROCSTAT_RLIMIT"; - case 14: return "NT_PROCSTAT_OSREL"; - case 15: return "NT_PROCSTAT_PSSTRINGS"; - case 16: return "NT_PROCSTAT_AUXV"; - case 17: return "NT_PTLWPINFO"; - case 0x100: return "NT_PPC_VMX (ppc Altivec registers)"; - case 0x102: return "NT_PPC_VSX (ppc VSX registers)"; - case 0x202: return "NT_X86_XSTATE (x86 XSAVE extended state)"; - case 0x400: return "NT_ARM_VFP (arm VFP registers)"; - default: return (note_type_unknown(nt)); - } -} - -static const char * -note_type_linux_core(unsigned int nt) -{ - switch (nt) { - case 1: return "NT_PRSTATUS (Process status)"; - case 2: return "NT_FPREGSET (Floating point information)"; - case 3: return "NT_PRPSINFO (Process information)"; - case 4: return "NT_TASKSTRUCT (Task structure)"; - case 6: return "NT_AUXV (Auxiliary vector)"; - case 10: return "NT_PSTATUS (Linux process status)"; - case 12: return "NT_FPREGS (Linux floating point regset)"; - case 13: return "NT_PSINFO (Linux process information)"; - case 16: return "NT_LWPSTATUS (Linux lwpstatus_t type)"; - case 17: return "NT_LWPSINFO (Linux lwpinfo_t type)"; - case 18: return "NT_WIN32PSTATUS (win32_pstatus structure)"; - case 0x100: return "NT_PPC_VMX (ppc Altivec registers)"; - case 0x102: return "NT_PPC_VSX (ppc VSX registers)"; - case 0x202: return "NT_X86_XSTATE (x86 XSAVE extended state)"; - case 0x300: return "NT_S390_HIGH_GPRS (s390 upper register halves)"; - case 0x301: return "NT_S390_TIMER (s390 timer register)"; - case 0x302: return "NT_S390_TODCMP (s390 TOD comparator register)"; - case 0x303: return "NT_S390_TODPREG (s390 TOD programmable register)"; - case 0x304: return "NT_S390_CTRS (s390 control registers)"; - case 0x305: return "NT_S390_PREFIX (s390 prefix register)"; - case 0x400: return "NT_ARM_VFP (arm VFP registers)"; - case 0x46494c45UL: return "NT_FILE (mapped files)"; - case 0x46E62B7FUL: return "NT_PRXFPREG (Linux user_xfpregs structure)"; - case 0x53494749UL: return "NT_SIGINFO (siginfo_t data)"; - default: return (note_type_unknown(nt)); - } -} - -static const char * -note_type_gnu(unsigned int nt) -{ - switch (nt) { - case 1: return "NT_GNU_ABI_TAG"; - case 2: return "NT_GNU_HWCAP (Hardware capabilities)"; - case 3: return "NT_GNU_BUILD_ID (Build id set by ld(1))"; - case 4: return "NT_GNU_GOLD_VERSION (GNU gold version)"; - case 5: return "NT_GNU_PROPERTY_TYPE_0"; - default: return (note_type_unknown(nt)); - } -} - -static const char * -note_type_netbsd(unsigned int nt) -{ - switch (nt) { - case 1: return "NT_NETBSD_IDENT"; - default: return (note_type_unknown(nt)); - } -} - -static const char * -note_type_openbsd(unsigned int nt) -{ - switch (nt) { - case 1: return "NT_OPENBSD_IDENT"; - default: return (note_type_unknown(nt)); - } -} - -static const char * -note_type_unknown(unsigned int nt) -{ - static char s_nt[32]; - - snprintf(s_nt, sizeof(s_nt), - nt >= 0x100 ? "" : "", nt); - return (s_nt); -} - -static const char * -note_type_xen(unsigned int nt) -{ - switch (nt) { - case 0: return "XEN_ELFNOTE_INFO"; - case 1: return "XEN_ELFNOTE_ENTRY"; - case 2: return "XEN_ELFNOTE_HYPERCALL_PAGE"; - case 3: return "XEN_ELFNOTE_VIRT_BASE"; - case 4: return "XEN_ELFNOTE_PADDR_OFFSET"; - case 5: return "XEN_ELFNOTE_XEN_VERSION"; - case 6: return "XEN_ELFNOTE_GUEST_OS"; - case 7: return "XEN_ELFNOTE_GUEST_VERSION"; - case 8: return "XEN_ELFNOTE_LOADER"; - case 9: return "XEN_ELFNOTE_PAE_MODE"; - case 10: return "XEN_ELFNOTE_FEATURES"; - case 11: return "XEN_ELFNOTE_BSD_SYMTAB"; - case 12: return "XEN_ELFNOTE_HV_START_LOW"; - case 13: return "XEN_ELFNOTE_L1_MFN_VALID"; - case 14: return "XEN_ELFNOTE_SUSPEND_CANCEL"; - case 15: return "XEN_ELFNOTE_INIT_P2M"; - case 16: return "XEN_ELFNOTE_MOD_START_PFN"; - case 17: return "XEN_ELFNOTE_SUPPORTED_FEATURES"; - default: return (note_type_unknown(nt)); - } -} - -static struct { - const char *name; - int value; -} l_flag[] = { - {"EXACT_MATCH", LL_EXACT_MATCH}, - {"IGNORE_INT_VER", LL_IGNORE_INT_VER}, - {"REQUIRE_MINOR", LL_REQUIRE_MINOR}, - {"EXPORTS", LL_EXPORTS}, - {"DELAY_LOAD", LL_DELAY_LOAD}, - {"DELTA", LL_DELTA}, - {NULL, 0} -}; - -static struct mips_option mips_exceptions_option[] = { - {OEX_PAGE0, "PAGE0"}, - {OEX_SMM, "SMM"}, - {OEX_PRECISEFP, "PRECISEFP"}, - {OEX_DISMISS, "DISMISS"}, - {0, NULL} -}; - -static struct mips_option mips_pad_option[] = { - {OPAD_PREFIX, "PREFIX"}, - {OPAD_POSTFIX, "POSTFIX"}, - {OPAD_SYMBOL, "SYMBOL"}, - {0, NULL} -}; - -static struct mips_option mips_hwpatch_option[] = { - {OHW_R4KEOP, "R4KEOP"}, - {OHW_R8KPFETCH, "R8KPFETCH"}, - {OHW_R5KEOP, "R5KEOP"}, - {OHW_R5KCVTL, "R5KCVTL"}, - {0, NULL} -}; - -static struct mips_option mips_hwa_option[] = { - {OHWA0_R4KEOP_CHECKED, "R4KEOP_CHECKED"}, - {OHWA0_R4KEOP_CLEAN, "R4KEOP_CLEAN"}, - {0, NULL} -}; - -static struct mips_option mips_hwo_option[] = { - {OHWO0_FIXADE, "FIXADE"}, - {0, NULL} -}; - -static const char * -option_kind(uint8_t kind) -{ - static char s_kind[32]; - - switch (kind) { - case ODK_NULL: return "NULL"; - case ODK_REGINFO: return "REGINFO"; - case ODK_EXCEPTIONS: return "EXCEPTIONS"; - case ODK_PAD: return "PAD"; - case ODK_HWPATCH: return "HWPATCH"; - case ODK_FILL: return "FILL"; - case ODK_TAGS: return "TAGS"; - case ODK_HWAND: return "HWAND"; - case ODK_HWOR: return "HWOR"; - case ODK_GP_GROUP: return "GP_GROUP"; - case ODK_IDENT: return "IDENT"; - default: - snprintf(s_kind, sizeof(s_kind), "", kind); - return (s_kind); - } -} - -static const char * -top_tag(unsigned int tag) -{ - static char s_top_tag[32]; - - switch (tag) { - case 1: return "File Attributes"; - case 2: return "Section Attributes"; - case 3: return "Symbol Attributes"; - default: - snprintf(s_top_tag, sizeof(s_top_tag), "Unknown tag: %u", tag); - return (s_top_tag); - } -} - -static const char * -aeabi_cpu_arch(uint64_t arch) -{ - static char s_cpu_arch[32]; - - switch (arch) { - case 0: return "Pre-V4"; - case 1: return "ARM v4"; - case 2: return "ARM v4T"; - case 3: return "ARM v5T"; - case 4: return "ARM v5TE"; - case 5: return "ARM v5TEJ"; - case 6: return "ARM v6"; - case 7: return "ARM v6KZ"; - case 8: return "ARM v6T2"; - case 9: return "ARM v6K"; - case 10: return "ARM v7"; - case 11: return "ARM v6-M"; - case 12: return "ARM v6S-M"; - case 13: return "ARM v7E-M"; - default: - snprintf(s_cpu_arch, sizeof(s_cpu_arch), - "Unknown (%ju)", (uintmax_t) arch); - return (s_cpu_arch); - } -} - -static const char * -aeabi_cpu_arch_profile(uint64_t pf) -{ - static char s_arch_profile[32]; - - switch (pf) { - case 0: - return "Not applicable"; - case 0x41: /* 'A' */ - return "Application Profile"; - case 0x52: /* 'R' */ - return "Real-Time Profile"; - case 0x4D: /* 'M' */ - return "Microcontroller Profile"; - case 0x53: /* 'S' */ - return "Application or Real-Time Profile"; - default: - snprintf(s_arch_profile, sizeof(s_arch_profile), - "Unknown (%ju)\n", (uintmax_t) pf); - return (s_arch_profile); - } -} - -static const char * -aeabi_arm_isa(uint64_t ai) -{ - static char s_ai[32]; - - switch (ai) { - case 0: return "No"; - case 1: return "Yes"; - default: - snprintf(s_ai, sizeof(s_ai), "Unknown (%ju)\n", - (uintmax_t) ai); - return (s_ai); - } -} - -static const char * -aeabi_thumb_isa(uint64_t ti) -{ - static char s_ti[32]; - - switch (ti) { - case 0: return "No"; - case 1: return "16-bit Thumb"; - case 2: return "32-bit Thumb"; - default: - snprintf(s_ti, sizeof(s_ti), "Unknown (%ju)\n", - (uintmax_t) ti); - return (s_ti); - } -} - -static const char * -aeabi_fp_arch(uint64_t fp) -{ - static char s_fp_arch[32]; - - switch (fp) { - case 0: return "No"; - case 1: return "VFPv1"; - case 2: return "VFPv2"; - case 3: return "VFPv3"; - case 4: return "VFPv3-D16"; - case 5: return "VFPv4"; - case 6: return "VFPv4-D16"; - default: - snprintf(s_fp_arch, sizeof(s_fp_arch), "Unknown (%ju)", - (uintmax_t) fp); - return (s_fp_arch); - } -} - -static const char * -aeabi_wmmx_arch(uint64_t wmmx) -{ - static char s_wmmx[32]; - - switch (wmmx) { - case 0: return "No"; - case 1: return "WMMXv1"; - case 2: return "WMMXv2"; - default: - snprintf(s_wmmx, sizeof(s_wmmx), "Unknown (%ju)", - (uintmax_t) wmmx); - return (s_wmmx); - } -} - -static const char * -aeabi_adv_simd_arch(uint64_t simd) -{ - static char s_simd[32]; - - switch (simd) { - case 0: return "No"; - case 1: return "NEONv1"; - case 2: return "NEONv2"; - default: - snprintf(s_simd, sizeof(s_simd), "Unknown (%ju)", - (uintmax_t) simd); - return (s_simd); - } -} - -static const char * -aeabi_pcs_config(uint64_t pcs) -{ - static char s_pcs[32]; - - switch (pcs) { - case 0: return "None"; - case 1: return "Bare platform"; - case 2: return "Linux"; - case 3: return "Linux DSO"; - case 4: return "Palm OS 2004"; - case 5: return "Palm OS (future)"; - case 6: return "Symbian OS 2004"; - case 7: return "Symbian OS (future)"; - default: - snprintf(s_pcs, sizeof(s_pcs), "Unknown (%ju)", - (uintmax_t) pcs); - return (s_pcs); - } -} - -static const char * -aeabi_pcs_r9(uint64_t r9) -{ - static char s_r9[32]; - - switch (r9) { - case 0: return "V6"; - case 1: return "SB"; - case 2: return "TLS pointer"; - case 3: return "Unused"; - default: - snprintf(s_r9, sizeof(s_r9), "Unknown (%ju)", (uintmax_t) r9); - return (s_r9); - } -} - -static const char * -aeabi_pcs_rw(uint64_t rw) -{ - static char s_rw[32]; - - switch (rw) { - case 0: return "Absolute"; - case 1: return "PC-relative"; - case 2: return "SB-relative"; - case 3: return "None"; - default: - snprintf(s_rw, sizeof(s_rw), "Unknown (%ju)", (uintmax_t) rw); - return (s_rw); - } -} - -static const char * -aeabi_pcs_ro(uint64_t ro) -{ - static char s_ro[32]; - - switch (ro) { - case 0: return "Absolute"; - case 1: return "PC-relative"; - case 2: return "None"; - default: - snprintf(s_ro, sizeof(s_ro), "Unknown (%ju)", (uintmax_t) ro); - return (s_ro); - } -} - -static const char * -aeabi_pcs_got(uint64_t got) -{ - static char s_got[32]; - - switch (got) { - case 0: return "None"; - case 1: return "direct"; - case 2: return "indirect via GOT"; - default: - snprintf(s_got, sizeof(s_got), "Unknown (%ju)", - (uintmax_t) got); - return (s_got); - } -} - -static const char * -aeabi_pcs_wchar_t(uint64_t wt) -{ - static char s_wt[32]; - - switch (wt) { - case 0: return "None"; - case 2: return "wchar_t size 2"; - case 4: return "wchar_t size 4"; - default: - snprintf(s_wt, sizeof(s_wt), "Unknown (%ju)", (uintmax_t) wt); - return (s_wt); - } -} - -static const char * -aeabi_enum_size(uint64_t es) -{ - static char s_es[32]; - - switch (es) { - case 0: return "None"; - case 1: return "smallest"; - case 2: return "32-bit"; - case 3: return "visible 32-bit"; - default: - snprintf(s_es, sizeof(s_es), "Unknown (%ju)", (uintmax_t) es); - return (s_es); - } -} - -static const char * -aeabi_align_needed(uint64_t an) -{ - static char s_align_n[64]; - - switch (an) { - case 0: return "No"; - case 1: return "8-byte align"; - case 2: return "4-byte align"; - case 3: return "Reserved"; - default: - if (an >= 4 && an <= 12) - snprintf(s_align_n, sizeof(s_align_n), "8-byte align" - " and up to 2^%ju-byte extended align", - (uintmax_t) an); - else - snprintf(s_align_n, sizeof(s_align_n), "Unknown (%ju)", - (uintmax_t) an); - return (s_align_n); - } -} - -static const char * -aeabi_align_preserved(uint64_t ap) -{ - static char s_align_p[128]; - - switch (ap) { - case 0: return "No"; - case 1: return "8-byte align"; - case 2: return "8-byte align and SP % 8 == 0"; - case 3: return "Reserved"; - default: - if (ap >= 4 && ap <= 12) - snprintf(s_align_p, sizeof(s_align_p), "8-byte align" - " and SP %% 8 == 0 and up to 2^%ju-byte extended" - " align", (uintmax_t) ap); - else - snprintf(s_align_p, sizeof(s_align_p), "Unknown (%ju)", - (uintmax_t) ap); - return (s_align_p); - } -} - -static const char * -aeabi_fp_rounding(uint64_t fr) -{ - static char s_fp_r[32]; - - switch (fr) { - case 0: return "Unused"; - case 1: return "Needed"; - default: - snprintf(s_fp_r, sizeof(s_fp_r), "Unknown (%ju)", - (uintmax_t) fr); - return (s_fp_r); - } -} - -static const char * -aeabi_fp_denormal(uint64_t fd) -{ - static char s_fp_d[32]; - - switch (fd) { - case 0: return "Unused"; - case 1: return "Needed"; - case 2: return "Sign Only"; - default: - snprintf(s_fp_d, sizeof(s_fp_d), "Unknown (%ju)", - (uintmax_t) fd); - return (s_fp_d); - } -} - -static const char * -aeabi_fp_exceptions(uint64_t fe) -{ - static char s_fp_e[32]; - - switch (fe) { - case 0: return "Unused"; - case 1: return "Needed"; - default: - snprintf(s_fp_e, sizeof(s_fp_e), "Unknown (%ju)", - (uintmax_t) fe); - return (s_fp_e); - } -} - -static const char * -aeabi_fp_user_exceptions(uint64_t fu) -{ - static char s_fp_u[32]; - - switch (fu) { - case 0: return "Unused"; - case 1: return "Needed"; - default: - snprintf(s_fp_u, sizeof(s_fp_u), "Unknown (%ju)", - (uintmax_t) fu); - return (s_fp_u); - } -} - -static const char * -aeabi_fp_number_model(uint64_t fn) -{ - static char s_fp_n[32]; - - switch (fn) { - case 0: return "Unused"; - case 1: return "IEEE 754 normal"; - case 2: return "RTABI"; - case 3: return "IEEE 754"; - default: - snprintf(s_fp_n, sizeof(s_fp_n), "Unknown (%ju)", - (uintmax_t) fn); - return (s_fp_n); - } -} - -static const char * -aeabi_fp_16bit_format(uint64_t fp16) -{ - static char s_fp_16[64]; - - switch (fp16) { - case 0: return "None"; - case 1: return "IEEE 754"; - case 2: return "VFPv3/Advanced SIMD (alternative format)"; - default: - snprintf(s_fp_16, sizeof(s_fp_16), "Unknown (%ju)", - (uintmax_t) fp16); - return (s_fp_16); - } -} - -static const char * -aeabi_mpext(uint64_t mp) -{ - static char s_mp[32]; - - switch (mp) { - case 0: return "Not allowed"; - case 1: return "Allowed"; - default: - snprintf(s_mp, sizeof(s_mp), "Unknown (%ju)", - (uintmax_t) mp); - return (s_mp); - } -} - -static const char * -aeabi_div(uint64_t du) -{ - static char s_du[32]; - - switch (du) { - case 0: return "Yes (V7-R/V7-M)"; - case 1: return "No"; - case 2: return "Yes (V7-A)"; - default: - snprintf(s_du, sizeof(s_du), "Unknown (%ju)", - (uintmax_t) du); - return (s_du); - } -} - -static const char * -aeabi_t2ee(uint64_t t2ee) -{ - static char s_t2ee[32]; - - switch (t2ee) { - case 0: return "Not allowed"; - case 1: return "Allowed"; - default: - snprintf(s_t2ee, sizeof(s_t2ee), "Unknown(%ju)", - (uintmax_t) t2ee); - return (s_t2ee); - } - -} - -static const char * -aeabi_hardfp(uint64_t hfp) -{ - static char s_hfp[32]; - - switch (hfp) { - case 0: return "Tag_FP_arch"; - case 1: return "only SP"; - case 2: return "only DP"; - case 3: return "both SP and DP"; - default: - snprintf(s_hfp, sizeof(s_hfp), "Unknown (%ju)", - (uintmax_t) hfp); - return (s_hfp); - } -} - -static const char * -aeabi_vfp_args(uint64_t va) -{ - static char s_va[32]; - - switch (va) { - case 0: return "AAPCS (base variant)"; - case 1: return "AAPCS (VFP variant)"; - case 2: return "toolchain-specific"; - default: - snprintf(s_va, sizeof(s_va), "Unknown (%ju)", (uintmax_t) va); - return (s_va); - } -} - -static const char * -aeabi_wmmx_args(uint64_t wa) -{ - static char s_wa[32]; - - switch (wa) { - case 0: return "AAPCS (base variant)"; - case 1: return "Intel WMMX"; - case 2: return "toolchain-specific"; - default: - snprintf(s_wa, sizeof(s_wa), "Unknown(%ju)", (uintmax_t) wa); - return (s_wa); - } -} - -static const char * -aeabi_unaligned_access(uint64_t ua) -{ - static char s_ua[32]; - - switch (ua) { - case 0: return "Not allowed"; - case 1: return "Allowed"; - default: - snprintf(s_ua, sizeof(s_ua), "Unknown(%ju)", (uintmax_t) ua); - return (s_ua); - } -} - -static const char * -aeabi_fp_hpext(uint64_t fh) -{ - static char s_fh[32]; - - switch (fh) { - case 0: return "Not allowed"; - case 1: return "Allowed"; - default: - snprintf(s_fh, sizeof(s_fh), "Unknown(%ju)", (uintmax_t) fh); - return (s_fh); - } -} - -static const char * -aeabi_optm_goal(uint64_t og) -{ - static char s_og[32]; - - switch (og) { - case 0: return "None"; - case 1: return "Speed"; - case 2: return "Speed aggressive"; - case 3: return "Space"; - case 4: return "Space aggressive"; - case 5: return "Debugging"; - case 6: return "Best Debugging"; - default: - snprintf(s_og, sizeof(s_og), "Unknown(%ju)", (uintmax_t) og); - return (s_og); - } -} - -static const char * -aeabi_fp_optm_goal(uint64_t fog) -{ - static char s_fog[32]; - - switch (fog) { - case 0: return "None"; - case 1: return "Speed"; - case 2: return "Speed aggressive"; - case 3: return "Space"; - case 4: return "Space aggressive"; - case 5: return "Accurary"; - case 6: return "Best Accurary"; - default: - snprintf(s_fog, sizeof(s_fog), "Unknown(%ju)", - (uintmax_t) fog); - return (s_fog); - } -} - -static const char * -aeabi_virtual(uint64_t vt) -{ - static char s_virtual[64]; - - switch (vt) { - case 0: return "No"; - case 1: return "TrustZone"; - case 2: return "Virtualization extension"; - case 3: return "TrustZone and virtualization extension"; - default: - snprintf(s_virtual, sizeof(s_virtual), "Unknown(%ju)", - (uintmax_t) vt); - return (s_virtual); - } -} - -static struct { - uint64_t tag; - const char *s_tag; - const char *(*get_desc)(uint64_t val); -} aeabi_tags[] = { - {4, "Tag_CPU_raw_name", NULL}, - {5, "Tag_CPU_name", NULL}, - {6, "Tag_CPU_arch", aeabi_cpu_arch}, - {7, "Tag_CPU_arch_profile", aeabi_cpu_arch_profile}, - {8, "Tag_ARM_ISA_use", aeabi_arm_isa}, - {9, "Tag_THUMB_ISA_use", aeabi_thumb_isa}, - {10, "Tag_FP_arch", aeabi_fp_arch}, - {11, "Tag_WMMX_arch", aeabi_wmmx_arch}, - {12, "Tag_Advanced_SIMD_arch", aeabi_adv_simd_arch}, - {13, "Tag_PCS_config", aeabi_pcs_config}, - {14, "Tag_ABI_PCS_R9_use", aeabi_pcs_r9}, - {15, "Tag_ABI_PCS_RW_data", aeabi_pcs_rw}, - {16, "Tag_ABI_PCS_RO_data", aeabi_pcs_ro}, - {17, "Tag_ABI_PCS_GOT_use", aeabi_pcs_got}, - {18, "Tag_ABI_PCS_wchar_t", aeabi_pcs_wchar_t}, - {19, "Tag_ABI_FP_rounding", aeabi_fp_rounding}, - {20, "Tag_ABI_FP_denormal", aeabi_fp_denormal}, - {21, "Tag_ABI_FP_exceptions", aeabi_fp_exceptions}, - {22, "Tag_ABI_FP_user_exceptions", aeabi_fp_user_exceptions}, - {23, "Tag_ABI_FP_number_model", aeabi_fp_number_model}, - {24, "Tag_ABI_align_needed", aeabi_align_needed}, - {25, "Tag_ABI_align_preserved", aeabi_align_preserved}, - {26, "Tag_ABI_enum_size", aeabi_enum_size}, - {27, "Tag_ABI_HardFP_use", aeabi_hardfp}, - {28, "Tag_ABI_VFP_args", aeabi_vfp_args}, - {29, "Tag_ABI_WMMX_args", aeabi_wmmx_args}, - {30, "Tag_ABI_optimization_goals", aeabi_optm_goal}, - {31, "Tag_ABI_FP_optimization_goals", aeabi_fp_optm_goal}, - {32, "Tag_compatibility", NULL}, - {34, "Tag_CPU_unaligned_access", aeabi_unaligned_access}, - {36, "Tag_FP_HP_extension", aeabi_fp_hpext}, - {38, "Tag_ABI_FP_16bit_format", aeabi_fp_16bit_format}, - {42, "Tag_MPextension_use", aeabi_mpext}, - {44, "Tag_DIV_use", aeabi_div}, - {64, "Tag_nodefaults", NULL}, - {65, "Tag_also_compatible_with", NULL}, - {66, "Tag_T2EE_use", aeabi_t2ee}, - {67, "Tag_conformance", NULL}, - {68, "Tag_Virtualization_use", aeabi_virtual}, - {70, "Tag_MPextension_use", aeabi_mpext}, -}; - -static const char * -mips_abi_fp(uint64_t fp) -{ - static char s_mips_abi_fp[64]; - - switch (fp) { - case 0: return "N/A"; - case 1: return "Hard float (double precision)"; - case 2: return "Hard float (single precision)"; - case 3: return "Soft float"; - case 4: return "64-bit float (-mips32r2 -mfp64)"; - default: - snprintf(s_mips_abi_fp, sizeof(s_mips_abi_fp), "Unknown(%ju)", - (uintmax_t) fp); - return (s_mips_abi_fp); - } -} - -static const char * -ppc_abi_fp(uint64_t fp) -{ - static char s_ppc_abi_fp[64]; - - switch (fp) { - case 0: return "N/A"; - case 1: return "Hard float (double precision)"; - case 2: return "Soft float"; - case 3: return "Hard float (single precision)"; - default: - snprintf(s_ppc_abi_fp, sizeof(s_ppc_abi_fp), "Unknown(%ju)", - (uintmax_t) fp); - return (s_ppc_abi_fp); - } -} - -static const char * -ppc_abi_vector(uint64_t vec) -{ - static char s_vec[64]; - - switch (vec) { - case 0: return "N/A"; - case 1: return "Generic purpose registers"; - case 2: return "AltiVec registers"; - case 3: return "SPE registers"; - default: - snprintf(s_vec, sizeof(s_vec), "Unknown(%ju)", (uintmax_t) vec); - return (s_vec); - } -} - -static const char * -dwarf_reg(unsigned int mach, unsigned int reg) -{ - - switch (mach) { - case EM_386: - case EM_IAMCU: - switch (reg) { - case 0: return "eax"; - case 1: return "ecx"; - case 2: return "edx"; - case 3: return "ebx"; - case 4: return "esp"; - case 5: return "ebp"; - case 6: return "esi"; - case 7: return "edi"; - case 8: return "eip"; - case 9: return "eflags"; - case 11: return "st0"; - case 12: return "st1"; - case 13: return "st2"; - case 14: return "st3"; - case 15: return "st4"; - case 16: return "st5"; - case 17: return "st6"; - case 18: return "st7"; - case 21: return "xmm0"; - case 22: return "xmm1"; - case 23: return "xmm2"; - case 24: return "xmm3"; - case 25: return "xmm4"; - case 26: return "xmm5"; - case 27: return "xmm6"; - case 28: return "xmm7"; - case 29: return "mm0"; - case 30: return "mm1"; - case 31: return "mm2"; - case 32: return "mm3"; - case 33: return "mm4"; - case 34: return "mm5"; - case 35: return "mm6"; - case 36: return "mm7"; - case 37: return "fcw"; - case 38: return "fsw"; - case 39: return "mxcsr"; - case 40: return "es"; - case 41: return "cs"; - case 42: return "ss"; - case 43: return "ds"; - case 44: return "fs"; - case 45: return "gs"; - case 48: return "tr"; - case 49: return "ldtr"; - default: return (NULL); - } - case EM_RISCV: - switch (reg) { - case 0: return "zero"; - case 1: return "ra"; - case 2: return "sp"; - case 3: return "gp"; - case 4: return "tp"; - case 5: return "t0"; - case 6: return "t1"; - case 7: return "t2"; - case 8: return "s0"; - case 9: return "s1"; - case 10: return "a0"; - case 11: return "a1"; - case 12: return "a2"; - case 13: return "a3"; - case 14: return "a4"; - case 15: return "a5"; - case 16: return "a6"; - case 17: return "a7"; - case 18: return "s2"; - case 19: return "s3"; - case 20: return "s4"; - case 21: return "s5"; - case 22: return "s6"; - case 23: return "s7"; - case 24: return "s8"; - case 25: return "s9"; - case 26: return "s10"; - case 27: return "s11"; - case 28: return "t3"; - case 29: return "t4"; - case 30: return "t5"; - case 31: return "t6"; - case 32: return "ft0"; - case 33: return "ft1"; - case 34: return "ft2"; - case 35: return "ft3"; - case 36: return "ft4"; - case 37: return "ft5"; - case 38: return "ft6"; - case 39: return "ft7"; - case 40: return "fs0"; - case 41: return "fs1"; - case 42: return "fa0"; - case 43: return "fa1"; - case 44: return "fa2"; - case 45: return "fa3"; - case 46: return "fa4"; - case 47: return "fa5"; - case 48: return "fa6"; - case 49: return "fa7"; - case 50: return "fs2"; - case 51: return "fs3"; - case 52: return "fs4"; - case 53: return "fs5"; - case 54: return "fs6"; - case 55: return "fs7"; - case 56: return "fs8"; - case 57: return "fs9"; - case 58: return "fs10"; - case 59: return "fs11"; - case 60: return "ft8"; - case 61: return "ft9"; - case 62: return "ft10"; - case 63: return "ft11"; - default: return (NULL); - } - case EM_X86_64: - switch (reg) { - case 0: return "rax"; - case 1: return "rdx"; - case 2: return "rcx"; - case 3: return "rbx"; - case 4: return "rsi"; - case 5: return "rdi"; - case 6: return "rbp"; - case 7: return "rsp"; - case 16: return "rip"; - case 17: return "xmm0"; - case 18: return "xmm1"; - case 19: return "xmm2"; - case 20: return "xmm3"; - case 21: return "xmm4"; - case 22: return "xmm5"; - case 23: return "xmm6"; - case 24: return "xmm7"; - case 25: return "xmm8"; - case 26: return "xmm9"; - case 27: return "xmm10"; - case 28: return "xmm11"; - case 29: return "xmm12"; - case 30: return "xmm13"; - case 31: return "xmm14"; - case 32: return "xmm15"; - case 33: return "st0"; - case 34: return "st1"; - case 35: return "st2"; - case 36: return "st3"; - case 37: return "st4"; - case 38: return "st5"; - case 39: return "st6"; - case 40: return "st7"; - case 41: return "mm0"; - case 42: return "mm1"; - case 43: return "mm2"; - case 44: return "mm3"; - case 45: return "mm4"; - case 46: return "mm5"; - case 47: return "mm6"; - case 48: return "mm7"; - case 49: return "rflags"; - case 50: return "es"; - case 51: return "cs"; - case 52: return "ss"; - case 53: return "ds"; - case 54: return "fs"; - case 55: return "gs"; - case 58: return "fs.base"; - case 59: return "gs.base"; - case 62: return "tr"; - case 63: return "ldtr"; - case 64: return "mxcsr"; - case 65: return "fcw"; - case 66: return "fsw"; - default: return (NULL); - } - default: - return (NULL); - } -} - -static void -dump_ehdr(struct readelf *re) -{ - size_t phnum, shnum, shstrndx; - int i; - - printf("ELF Header:\n"); - - /* e_ident[]. */ - printf(" Magic: "); - for (i = 0; i < EI_NIDENT; i++) - printf("%.2x ", re->ehdr.e_ident[i]); - putchar('\n'); - - /* EI_CLASS. */ - printf("%-37s%s\n", " Class:", elf_class(re->ehdr.e_ident[EI_CLASS])); - - /* EI_DATA. */ - printf("%-37s%s\n", " Data:", elf_endian(re->ehdr.e_ident[EI_DATA])); - - /* EI_VERSION. */ - printf("%-37s%d %s\n", " Version:", re->ehdr.e_ident[EI_VERSION], - elf_ver(re->ehdr.e_ident[EI_VERSION])); - - /* EI_OSABI. */ - printf("%-37s%s\n", " OS/ABI:", elf_osabi(re->ehdr.e_ident[EI_OSABI])); - - /* EI_ABIVERSION. */ - printf("%-37s%d\n", " ABI Version:", re->ehdr.e_ident[EI_ABIVERSION]); - - /* e_type. */ - printf("%-37s%s\n", " Type:", elf_type(re->ehdr.e_type)); - - /* e_machine. */ - printf("%-37s%s\n", " Machine:", elf_machine(re->ehdr.e_machine)); - - /* e_version. */ - printf("%-37s%#x\n", " Version:", re->ehdr.e_version); - - /* e_entry. */ - printf("%-37s%#jx\n", " Entry point address:", - (uintmax_t)re->ehdr.e_entry); - - /* e_phoff. */ - printf("%-37s%ju (bytes into file)\n", " Start of program headers:", - (uintmax_t)re->ehdr.e_phoff); - - /* e_shoff. */ - printf("%-37s%ju (bytes into file)\n", " Start of section headers:", - (uintmax_t)re->ehdr.e_shoff); - - /* e_flags. */ - printf("%-37s%#x", " Flags:", re->ehdr.e_flags); - dump_eflags(re, re->ehdr.e_flags); - putchar('\n'); - - /* e_ehsize. */ - printf("%-37s%u (bytes)\n", " Size of this header:", - re->ehdr.e_ehsize); - - /* e_phentsize. */ - printf("%-37s%u (bytes)\n", " Size of program headers:", - re->ehdr.e_phentsize); - - /* e_phnum. */ - printf("%-37s%u", " Number of program headers:", re->ehdr.e_phnum); - if (re->ehdr.e_phnum == PN_XNUM) { - /* Extended program header numbering is in use. */ - if (elf_getphnum(re->elf, &phnum)) - printf(" (%zu)", phnum); - } - putchar('\n'); - - /* e_shentsize. */ - printf("%-37s%u (bytes)\n", " Size of section headers:", - re->ehdr.e_shentsize); - - /* e_shnum. */ - printf("%-37s%u", " Number of section headers:", re->ehdr.e_shnum); - if (re->ehdr.e_shnum == SHN_UNDEF) { - /* Extended section numbering is in use. */ - if (elf_getshnum(re->elf, &shnum)) - printf(" (%ju)", (uintmax_t)shnum); - } - putchar('\n'); - - /* e_shstrndx. */ - printf("%-37s%u", " Section header string table index:", - re->ehdr.e_shstrndx); - if (re->ehdr.e_shstrndx == SHN_XINDEX) { - /* Extended section numbering is in use. */ - if (elf_getshstrndx(re->elf, &shstrndx)) - printf(" (%ju)", (uintmax_t)shstrndx); - } - putchar('\n'); -} - -static void -dump_eflags(struct readelf *re, uint64_t e_flags) -{ - struct eflags_desc *edesc; - int arm_eabi; - - edesc = NULL; - switch (re->ehdr.e_machine) { - case EM_ARM: - arm_eabi = (e_flags & EF_ARM_EABIMASK) >> 24; - if (arm_eabi == 0) - printf(", GNU EABI"); - else if (arm_eabi <= 5) - printf(", Version%d EABI", arm_eabi); - edesc = arm_eflags_desc; - break; - case EM_MIPS: - case EM_MIPS_RS3_LE: - switch ((e_flags & EF_MIPS_ARCH) >> 28) { - case 0: printf(", mips1"); break; - case 1: printf(", mips2"); break; - case 2: printf(", mips3"); break; - case 3: printf(", mips4"); break; - case 4: printf(", mips5"); break; - case 5: printf(", mips32"); break; - case 6: printf(", mips64"); break; - case 7: printf(", mips32r2"); break; - case 8: printf(", mips64r2"); break; - default: break; - } - switch ((e_flags & 0x00FF0000) >> 16) { - case 0x81: printf(", 3900"); break; - case 0x82: printf(", 4010"); break; - case 0x83: printf(", 4100"); break; - case 0x85: printf(", 4650"); break; - case 0x87: printf(", 4120"); break; - case 0x88: printf(", 4111"); break; - case 0x8a: printf(", sb1"); break; - case 0x8b: printf(", octeon"); break; - case 0x8c: printf(", xlr"); break; - case 0x91: printf(", 5400"); break; - case 0x98: printf(", 5500"); break; - case 0x99: printf(", 9000"); break; - case 0xa0: printf(", loongson-2e"); break; - case 0xa1: printf(", loongson-2f"); break; - default: break; - } - switch ((e_flags & 0x0000F000) >> 12) { - case 1: printf(", o32"); break; - case 2: printf(", o64"); break; - case 3: printf(", eabi32"); break; - case 4: printf(", eabi64"); break; - default: break; - } - edesc = mips_eflags_desc; - break; - case EM_PPC64: - switch (e_flags) { - case 0: printf(", Unspecified or Power ELF V1 ABI"); break; - case 1: printf(", Power ELF V1 ABI"); break; - case 2: printf(", OpenPOWER ELF V2 ABI"); break; - default: break; - } - /* FALLTHROUGH */ - case EM_PPC: - edesc = powerpc_eflags_desc; - break; - case EM_RISCV: - switch (e_flags & EF_RISCV_FLOAT_ABI_MASK) { - case EF_RISCV_FLOAT_ABI_SOFT: - printf(", soft-float ABI"); - break; - case EF_RISCV_FLOAT_ABI_SINGLE: - printf(", single-float ABI"); - break; - case EF_RISCV_FLOAT_ABI_DOUBLE: - printf(", double-float ABI"); - break; - case EF_RISCV_FLOAT_ABI_QUAD: - printf(", quad-float ABI"); - break; - } - edesc = riscv_eflags_desc; - break; - case EM_SPARC: - case EM_SPARC32PLUS: - case EM_SPARCV9: - switch ((e_flags & EF_SPARCV9_MM)) { - case EF_SPARCV9_TSO: printf(", tso"); break; - case EF_SPARCV9_PSO: printf(", pso"); break; - case EF_SPARCV9_MM: printf(", rmo"); break; - default: break; - } - edesc = sparc_eflags_desc; - break; - default: - break; - } - - if (edesc != NULL) { - while (edesc->desc != NULL) { - if (e_flags & edesc->flag) - printf(", %s", edesc->desc); - edesc++; - } - } -} - -static void -dump_phdr(struct readelf *re) -{ - const char *rawfile; - GElf_Phdr phdr; - size_t phnum, size; - int i, j; - -#define PH_HDR "Type", "Offset", "VirtAddr", "PhysAddr", "FileSiz", \ - "MemSiz", "Flg", "Align" -#define PH_CT phdr_type(re->ehdr.e_machine, phdr.p_type), \ - (uintmax_t)phdr.p_offset, (uintmax_t)phdr.p_vaddr, \ - (uintmax_t)phdr.p_paddr, (uintmax_t)phdr.p_filesz, \ - (uintmax_t)phdr.p_memsz, \ - phdr.p_flags & PF_R ? 'R' : ' ', \ - phdr.p_flags & PF_W ? 'W' : ' ', \ - phdr.p_flags & PF_X ? 'E' : ' ', \ - (uintmax_t)phdr.p_align - - if (elf_getphnum(re->elf, &phnum) == 0) { - warnx("elf_getphnum failed: %s", elf_errmsg(-1)); - return; - } - if (phnum == 0) { - printf("\nThere are no program headers in this file.\n"); - return; - } - - printf("\nElf file type is %s", elf_type(re->ehdr.e_type)); - printf("\nEntry point 0x%jx\n", (uintmax_t)re->ehdr.e_entry); - printf("There are %ju program headers, starting at offset %ju\n", - (uintmax_t)phnum, (uintmax_t)re->ehdr.e_phoff); - - /* Dump program headers. */ - printf("\nProgram Headers:\n"); - if (re->ec == ELFCLASS32) - printf(" %-15s%-9s%-11s%-11s%-8s%-8s%-4s%s\n", PH_HDR); - else if (re->options & RE_WW) - printf(" %-15s%-9s%-19s%-19s%-9s%-9s%-4s%s\n", PH_HDR); - else - printf(" %-15s%-19s%-19s%s\n %-19s%-20s" - "%-7s%s\n", PH_HDR); - for (i = 0; (size_t) i < phnum; i++) { - if (gelf_getphdr(re->elf, i, &phdr) != &phdr) { - warnx("gelf_getphdr failed: %s", elf_errmsg(-1)); - continue; - } - /* TODO: Add arch-specific segment type dump. */ - if (re->ec == ELFCLASS32) - printf(" %-14.14s 0x%6.6jx 0x%8.8jx 0x%8.8jx " - "0x%5.5jx 0x%5.5jx %c%c%c %#jx\n", PH_CT); - else if (re->options & RE_WW) - printf(" %-14.14s 0x%6.6jx 0x%16.16jx 0x%16.16jx " - "0x%6.6jx 0x%6.6jx %c%c%c %#jx\n", PH_CT); - else - printf(" %-14.14s 0x%16.16jx 0x%16.16jx 0x%16.16jx\n" - " 0x%16.16jx 0x%16.16jx %c%c%c" - " %#jx\n", PH_CT); - if (phdr.p_type == PT_INTERP) { - if ((rawfile = elf_rawfile(re->elf, &size)) == NULL) { - warnx("elf_rawfile failed: %s", elf_errmsg(-1)); - continue; - } - if (phdr.p_offset >= size) { - warnx("invalid program header offset"); - continue; - } - printf(" [Requesting program interpreter: %s]\n", - rawfile + phdr.p_offset); - } - } - - /* Dump section to segment mapping. */ - if (re->shnum == 0) - return; - printf("\n Section to Segment mapping:\n"); - printf(" Segment Sections...\n"); - for (i = 0; (size_t)i < phnum; i++) { - if (gelf_getphdr(re->elf, i, &phdr) != &phdr) { - warnx("gelf_getphdr failed: %s", elf_errmsg(-1)); - continue; - } - printf(" %2.2d ", i); - /* skip NULL section. */ - for (j = 1; (size_t)j < re->shnum; j++) { - if (re->sl[j].off < phdr.p_offset) - continue; - if (re->sl[j].off + re->sl[j].sz > - phdr.p_offset + phdr.p_filesz && - re->sl[j].type != SHT_NOBITS) - continue; - if (re->sl[j].addr < phdr.p_vaddr || - re->sl[j].addr + re->sl[j].sz > - phdr.p_vaddr + phdr.p_memsz) - continue; - if (phdr.p_type == PT_TLS && - (re->sl[j].flags & SHF_TLS) == 0) - continue; - printf("%s ", re->sl[j].name); - } - printf("\n"); - } -#undef PH_HDR -#undef PH_CT -} - -static char * -section_flags(struct readelf *re, struct section *s) -{ -#define BUF_SZ 256 - static char buf[BUF_SZ]; - int i, p, nb; - - p = 0; - nb = re->ec == ELFCLASS32 ? 8 : 16; - if (re->options & RE_T) { - snprintf(buf, BUF_SZ, "[%*.*jx]: ", nb, nb, - (uintmax_t)s->flags); - p += nb + 4; - } - for (i = 0; section_flag[i].ln != NULL; i++) { - if ((s->flags & section_flag[i].value) == 0) - continue; - if (re->options & RE_T) { - snprintf(&buf[p], BUF_SZ - p, "%s, ", - section_flag[i].ln); - p += strlen(section_flag[i].ln) + 2; - } else - buf[p++] = section_flag[i].sn; - } - if (re->options & RE_T && p > nb + 4) - p -= 2; - buf[p] = '\0'; - - return (buf); -} - -static void -dump_shdr(struct readelf *re) -{ - struct section *s; - int i; - -#define S_HDR "[Nr] Name", "Type", "Addr", "Off", "Size", "ES", \ - "Flg", "Lk", "Inf", "Al" -#define S_HDRL "[Nr] Name", "Type", "Address", "Offset", "Size", \ - "EntSize", "Flags", "Link", "Info", "Align" -#define ST_HDR "[Nr] Name", "Type", "Addr", "Off", "Size", "ES", \ - "Lk", "Inf", "Al", "Flags" -#define ST_HDRL "[Nr] Name", "Type", "Address", "Offset", "Link", \ - "Size", "EntSize", "Info", "Align", "Flags" -#define S_CT i, s->name, section_type(re->ehdr.e_machine, s->type), \ - (uintmax_t)s->addr, (uintmax_t)s->off, (uintmax_t)s->sz,\ - (uintmax_t)s->entsize, section_flags(re, s), \ - s->link, s->info, (uintmax_t)s->align -#define ST_CT i, s->name, section_type(re->ehdr.e_machine, s->type), \ - (uintmax_t)s->addr, (uintmax_t)s->off, (uintmax_t)s->sz,\ - (uintmax_t)s->entsize, s->link, s->info, \ - (uintmax_t)s->align, section_flags(re, s) -#define ST_CTL i, s->name, section_type(re->ehdr.e_machine, s->type), \ - (uintmax_t)s->addr, (uintmax_t)s->off, s->link, \ - (uintmax_t)s->sz, (uintmax_t)s->entsize, s->info, \ - (uintmax_t)s->align, section_flags(re, s) - - if (re->shnum == 0) { - printf("\nThere are no sections in this file.\n"); - return; - } - printf("There are %ju section headers, starting at offset 0x%jx:\n", - (uintmax_t)re->shnum, (uintmax_t)re->ehdr.e_shoff); - printf("\nSection Headers:\n"); - if (re->ec == ELFCLASS32) { - if (re->options & RE_T) - printf(" %s\n %-16s%-9s%-7s%-7s%-5s%-3s%-4s%s\n" - "%12s\n", ST_HDR); - else - printf(" %-23s%-16s%-9s%-7s%-7s%-3s%-4s%-3s%-4s%s\n", - S_HDR); - } else if (re->options & RE_WW) { - if (re->options & RE_T) - printf(" %s\n %-16s%-17s%-7s%-7s%-5s%-3s%-4s%s\n" - "%12s\n", ST_HDR); - else - printf(" %-23s%-16s%-17s%-7s%-7s%-3s%-4s%-3s%-4s%s\n", - S_HDR); - } else { - if (re->options & RE_T) - printf(" %s\n %-18s%-17s%-18s%s\n %-18s" - "%-17s%-18s%s\n%12s\n", ST_HDRL); - else - printf(" %-23s%-17s%-18s%s\n %-18s%-17s%-7s%" - "-6s%-6s%s\n", S_HDRL); - } - for (i = 0; (size_t)i < re->shnum; i++) { - s = &re->sl[i]; - if (re->ec == ELFCLASS32) { - if (re->options & RE_T) - printf(" [%2d] %s\n %-15.15s %8.8jx" - " %6.6jx %6.6jx %2.2jx %2u %3u %2ju\n" - " %s\n", ST_CT); - else - printf(" [%2d] %-17.17s %-15.15s %8.8jx" - " %6.6jx %6.6jx %2.2jx %3s %2u %3u %2ju\n", - S_CT); - } else if (re->options & RE_WW) { - if (re->options & RE_T) - printf(" [%2d] %s\n %-15.15s %16.16jx" - " %6.6jx %6.6jx %2.2jx %2u %3u %2ju\n" - " %s\n", ST_CT); - else - printf(" [%2d] %-17.17s %-15.15s %16.16jx" - " %6.6jx %6.6jx %2.2jx %3s %2u %3u %2ju\n", - S_CT); - } else { - if (re->options & RE_T) - printf(" [%2d] %s\n %-15.15s %16.16jx" - " %16.16jx %u\n %16.16jx %16.16jx" - " %-16u %ju\n %s\n", ST_CTL); - else - printf(" [%2d] %-17.17s %-15.15s %16.16jx" - " %8.8jx\n %16.16jx %16.16jx " - "%3s %2u %3u %ju\n", S_CT); - } - } - if ((re->options & RE_T) == 0) - printf("Key to Flags:\n W (write), A (alloc)," - " X (execute), M (merge), S (strings)\n" - " I (info), L (link order), G (group), x (unknown)\n" - " O (extra OS processing required)" - " o (OS specific), p (processor specific)\n"); - -#undef S_HDR -#undef S_HDRL -#undef ST_HDR -#undef ST_HDRL -#undef S_CT -#undef ST_CT -#undef ST_CTL -} - -/* - * Return number of entries in the given section. We'd prefer ent_count be a - * size_t *, but libelf APIs already use int for section indices. - */ -static int -get_ent_count(struct section *s, int *ent_count) -{ - if (s->entsize == 0) { - warnx("section %s has entry size 0", s->name); - return (0); - } else if (s->sz / s->entsize > INT_MAX) { - warnx("section %s has invalid section count", s->name); - return (0); - } - *ent_count = (int)(s->sz / s->entsize); - return (1); -} - -static void -dump_dynamic(struct readelf *re) -{ - GElf_Dyn dyn; - Elf_Data *d; - struct section *s; - int elferr, i, is_dynamic, j, jmax, nentries; - - is_dynamic = 0; - - for (i = 0; (size_t)i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type != SHT_DYNAMIC) - continue; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - continue; - } - if (d->d_size <= 0) - continue; - - is_dynamic = 1; - - /* Determine the actual number of table entries. */ - nentries = 0; - if (!get_ent_count(s, &jmax)) - continue; - for (j = 0; j < jmax; j++) { - if (gelf_getdyn(d, j, &dyn) != &dyn) { - warnx("gelf_getdyn failed: %s", - elf_errmsg(-1)); - continue; - } - nentries ++; - if (dyn.d_tag == DT_NULL) - break; - } - - printf("\nDynamic section at offset 0x%jx", (uintmax_t)s->off); - printf(" contains %u entries:\n", nentries); - - if (re->ec == ELFCLASS32) - printf("%5s%12s%28s\n", "Tag", "Type", "Name/Value"); - else - printf("%5s%20s%28s\n", "Tag", "Type", "Name/Value"); - - for (j = 0; j < nentries; j++) { - if (gelf_getdyn(d, j, &dyn) != &dyn) - continue; - /* Dump dynamic entry type. */ - if (re->ec == ELFCLASS32) - printf(" 0x%8.8jx", (uintmax_t)dyn.d_tag); - else - printf(" 0x%16.16jx", (uintmax_t)dyn.d_tag); - printf(" %-20s", dt_type(re->ehdr.e_machine, - dyn.d_tag)); - /* Dump dynamic entry value. */ - dump_dyn_val(re, &dyn, s->link); - } - } - - if (!is_dynamic) - printf("\nThere is no dynamic section in this file.\n"); -} - -static char * -timestamp(time_t ti) -{ - static char ts[32]; - struct tm *t; - - t = gmtime(&ti); - snprintf(ts, sizeof(ts), "%04d-%02d-%02dT%02d:%02d:%02d", - t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, - t->tm_min, t->tm_sec); - - return (ts); -} - -static const char * -dyn_str(struct readelf *re, uint32_t stab, uint64_t d_val) -{ - const char *name; - - if (stab == SHN_UNDEF) - name = "ERROR"; - else if ((name = elf_strptr(re->elf, stab, d_val)) == NULL) { - (void) elf_errno(); /* clear error */ - name = "ERROR"; - } - - return (name); -} - -static void -dump_arch_dyn_val(struct readelf *re, GElf_Dyn *dyn) -{ - switch (re->ehdr.e_machine) { - case EM_MIPS: - case EM_MIPS_RS3_LE: - switch (dyn->d_tag) { - case DT_MIPS_RLD_VERSION: - case DT_MIPS_LOCAL_GOTNO: - case DT_MIPS_CONFLICTNO: - case DT_MIPS_LIBLISTNO: - case DT_MIPS_SYMTABNO: - case DT_MIPS_UNREFEXTNO: - case DT_MIPS_GOTSYM: - case DT_MIPS_HIPAGENO: - case DT_MIPS_DELTA_CLASS_NO: - case DT_MIPS_DELTA_INSTANCE_NO: - case DT_MIPS_DELTA_RELOC_NO: - case DT_MIPS_DELTA_SYM_NO: - case DT_MIPS_DELTA_CLASSSYM_NO: - case DT_MIPS_LOCALPAGE_GOTIDX: - case DT_MIPS_LOCAL_GOTIDX: - case DT_MIPS_HIDDEN_GOTIDX: - case DT_MIPS_PROTECTED_GOTIDX: - printf(" %ju\n", (uintmax_t) dyn->d_un.d_val); - break; - case DT_MIPS_ICHECKSUM: - case DT_MIPS_FLAGS: - case DT_MIPS_BASE_ADDRESS: - case DT_MIPS_CONFLICT: - case DT_MIPS_LIBLIST: - case DT_MIPS_RLD_MAP: - case DT_MIPS_DELTA_CLASS: - case DT_MIPS_DELTA_INSTANCE: - case DT_MIPS_DELTA_RELOC: - case DT_MIPS_DELTA_SYM: - case DT_MIPS_DELTA_CLASSSYM: - case DT_MIPS_CXX_FLAGS: - case DT_MIPS_PIXIE_INIT: - case DT_MIPS_SYMBOL_LIB: - case DT_MIPS_OPTIONS: - case DT_MIPS_INTERFACE: - case DT_MIPS_DYNSTR_ALIGN: - case DT_MIPS_INTERFACE_SIZE: - case DT_MIPS_RLD_TEXT_RESOLVE_ADDR: - case DT_MIPS_COMPACT_SIZE: - case DT_MIPS_GP_VALUE: - case DT_MIPS_AUX_DYNAMIC: - case DT_MIPS_PLTGOT: - case DT_MIPS_RLD_OBJ_UPDATE: - case DT_MIPS_RWPLT: - printf(" 0x%jx\n", (uintmax_t) dyn->d_un.d_val); - break; - case DT_MIPS_IVERSION: - case DT_MIPS_PERF_SUFFIX: - case DT_MIPS_TIME_STAMP: - printf(" %s\n", timestamp(dyn->d_un.d_val)); - break; - default: - printf("\n"); - break; - } - break; - default: - printf("\n"); - break; - } -} - -static void -dump_flags(struct flag_desc *desc, uint64_t val) -{ - struct flag_desc *fd; - - for (fd = desc; fd->flag != 0; fd++) { - if (val & fd->flag) { - val &= ~fd->flag; - printf(" %s", fd->desc); - } - } - if (val != 0) - printf(" unknown (0x%jx)", (uintmax_t)val); - printf("\n"); -} - -static struct flag_desc dt_flags[] = { - { DF_ORIGIN, "ORIGIN" }, - { DF_SYMBOLIC, "SYMBOLIC" }, - { DF_TEXTREL, "TEXTREL" }, - { DF_BIND_NOW, "BIND_NOW" }, - { DF_STATIC_TLS, "STATIC_TLS" }, - { 0, NULL } -}; - -static struct flag_desc dt_flags_1[] = { - { DF_1_BIND_NOW, "NOW" }, - { DF_1_GLOBAL, "GLOBAL" }, - { 0x4, "GROUP" }, - { DF_1_NODELETE, "NODELETE" }, - { DF_1_LOADFLTR, "LOADFLTR" }, - { 0x20, "INITFIRST" }, - { DF_1_NOOPEN, "NOOPEN" }, - { DF_1_ORIGIN, "ORIGIN" }, - { 0x100, "DIRECT" }, - { DF_1_INTERPOSE, "INTERPOSE" }, - { DF_1_NODEFLIB, "NODEFLIB" }, - { 0x1000, "NODUMP" }, - { 0x2000, "CONFALT" }, - { 0x4000, "ENDFILTEE" }, - { 0x8000, "DISPRELDNE" }, - { 0x10000, "DISPRELPND" }, - { 0x20000, "NODIRECT" }, - { 0x40000, "IGNMULDEF" }, - { 0x80000, "NOKSYMS" }, - { 0x100000, "NOHDR" }, - { 0x200000, "EDITED" }, - { 0x400000, "NORELOC" }, - { 0x800000, "SYMINTPOSE" }, - { 0x1000000, "GLOBAUDIT" }, - { 0, NULL } -}; - -static void -dump_dyn_val(struct readelf *re, GElf_Dyn *dyn, uint32_t stab) -{ - const char *name; - - if (dyn->d_tag >= DT_LOPROC && dyn->d_tag <= DT_HIPROC && - dyn->d_tag != DT_AUXILIARY && dyn->d_tag != DT_FILTER) { - dump_arch_dyn_val(re, dyn); - return; - } - - /* These entry values are index into the string table. */ - name = NULL; - if (dyn->d_tag == DT_AUXILIARY || dyn->d_tag == DT_FILTER || - dyn->d_tag == DT_NEEDED || dyn->d_tag == DT_SONAME || - dyn->d_tag == DT_RPATH || dyn->d_tag == DT_RUNPATH) - name = dyn_str(re, stab, dyn->d_un.d_val); - - switch(dyn->d_tag) { - case DT_NULL: - case DT_PLTGOT: - case DT_HASH: - case DT_STRTAB: - case DT_SYMTAB: - case DT_RELA: - case DT_INIT: - case DT_SYMBOLIC: - case DT_REL: - case DT_DEBUG: - case DT_TEXTREL: - case DT_JMPREL: - case DT_FINI: - case DT_VERDEF: - case DT_VERNEED: - case DT_VERSYM: - case DT_GNU_HASH: - case DT_GNU_LIBLIST: - case DT_GNU_CONFLICT: - printf(" 0x%jx\n", (uintmax_t) dyn->d_un.d_val); - break; - case DT_PLTRELSZ: - case DT_RELASZ: - case DT_RELAENT: - case DT_STRSZ: - case DT_SYMENT: - case DT_RELSZ: - case DT_RELENT: - case DT_PREINIT_ARRAYSZ: - case DT_INIT_ARRAYSZ: - case DT_FINI_ARRAYSZ: - case DT_GNU_CONFLICTSZ: - case DT_GNU_LIBLISTSZ: - printf(" %ju (bytes)\n", (uintmax_t) dyn->d_un.d_val); - break; - case DT_RELACOUNT: - case DT_RELCOUNT: - case DT_VERDEFNUM: - case DT_VERNEEDNUM: - printf(" %ju\n", (uintmax_t) dyn->d_un.d_val); - break; - case DT_AUXILIARY: - printf(" Auxiliary library: [%s]\n", name); - break; - case DT_FILTER: - printf(" Filter library: [%s]\n", name); - break; - case DT_NEEDED: - printf(" Shared library: [%s]\n", name); - break; - case DT_SONAME: - printf(" Library soname: [%s]\n", name); - break; - case DT_RPATH: - printf(" Library rpath: [%s]\n", name); - break; - case DT_RUNPATH: - printf(" Library runpath: [%s]\n", name); - break; - case DT_PLTREL: - printf(" %s\n", dt_type(re->ehdr.e_machine, dyn->d_un.d_val)); - break; - case DT_GNU_PRELINKED: - printf(" %s\n", timestamp(dyn->d_un.d_val)); - break; - case DT_FLAGS: - dump_flags(dt_flags, dyn->d_un.d_val); - break; - case DT_FLAGS_1: - dump_flags(dt_flags_1, dyn->d_un.d_val); - break; - default: - printf("\n"); - } -} - -static void -dump_rel(struct readelf *re, struct section *s, Elf_Data *d) -{ - GElf_Rel r; - const char *symname; - uint64_t symval; - int i, len; - uint32_t type; - uint8_t type2, type3; - - if (s->link >= re->shnum) - return; - -#define REL_HDR "r_offset", "r_info", "r_type", "st_value", "st_name" -#define REL_CT32 (uintmax_t)r.r_offset, (uintmax_t)r.r_info, \ - elftc_reloc_type_str(re->ehdr.e_machine, \ - ELF32_R_TYPE(r.r_info)), (uintmax_t)symval, symname -#define REL_CT64 (uintmax_t)r.r_offset, (uintmax_t)r.r_info, \ - elftc_reloc_type_str(re->ehdr.e_machine, type), \ - (uintmax_t)symval, symname - - printf("\nRelocation section (%s):\n", s->name); - if (re->ec == ELFCLASS32) - printf("%-8s %-8s %-19s %-8s %s\n", REL_HDR); - else { - if (re->options & RE_WW) - printf("%-16s %-16s %-24s %-16s %s\n", REL_HDR); - else - printf("%-12s %-12s %-19s %-16s %s\n", REL_HDR); - } - assert(d->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - for (i = 0; i < len; i++) { - if (gelf_getrel(d, i, &r) != &r) { - warnx("gelf_getrel failed: %s", elf_errmsg(-1)); - continue; - } - symname = get_symbol_name(re, s->link, GELF_R_SYM(r.r_info)); - symval = get_symbol_value(re, s->link, GELF_R_SYM(r.r_info)); - if (re->ec == ELFCLASS32) { - r.r_info = ELF32_R_INFO(ELF64_R_SYM(r.r_info), - ELF64_R_TYPE(r.r_info)); - printf("%8.8jx %8.8jx %-19.19s %8.8jx %s\n", REL_CT32); - } else { - type = ELF64_R_TYPE(r.r_info); - if (re->ehdr.e_machine == EM_MIPS) { - type2 = (type >> 8) & 0xFF; - type3 = (type >> 16) & 0xFF; - type = type & 0xFF; - } else { - type2 = type3 = 0; - } - if (re->options & RE_WW) - printf("%16.16jx %16.16jx %-24.24s" - " %16.16jx %s\n", REL_CT64); - else - printf("%12.12jx %12.12jx %-19.19s" - " %16.16jx %s\n", REL_CT64); - if (re->ehdr.e_machine == EM_MIPS) { - if (re->options & RE_WW) { - printf("%32s: %s\n", "Type2", - elftc_reloc_type_str(EM_MIPS, - type2)); - printf("%32s: %s\n", "Type3", - elftc_reloc_type_str(EM_MIPS, - type3)); - } else { - printf("%24s: %s\n", "Type2", - elftc_reloc_type_str(EM_MIPS, - type2)); - printf("%24s: %s\n", "Type3", - elftc_reloc_type_str(EM_MIPS, - type3)); - } - } - } - } - -#undef REL_HDR -#undef REL_CT -} - -static void -dump_rela(struct readelf *re, struct section *s, Elf_Data *d) -{ - GElf_Rela r; - const char *symname; - uint64_t symval; - int i, len; - uint32_t type; - uint8_t type2, type3; - - if (s->link >= re->shnum) - return; - -#define RELA_HDR "r_offset", "r_info", "r_type", "st_value", \ - "st_name + r_addend" -#define RELA_CT32 (uintmax_t)r.r_offset, (uintmax_t)r.r_info, \ - elftc_reloc_type_str(re->ehdr.e_machine, \ - ELF32_R_TYPE(r.r_info)), (uintmax_t)symval, symname -#define RELA_CT64 (uintmax_t)r.r_offset, (uintmax_t)r.r_info, \ - elftc_reloc_type_str(re->ehdr.e_machine, type), \ - (uintmax_t)symval, symname - - printf("\nRelocation section with addend (%s):\n", s->name); - if (re->ec == ELFCLASS32) - printf("%-8s %-8s %-19s %-8s %s\n", RELA_HDR); - else { - if (re->options & RE_WW) - printf("%-16s %-16s %-24s %-16s %s\n", RELA_HDR); - else - printf("%-12s %-12s %-19s %-16s %s\n", RELA_HDR); - } - assert(d->d_size == s->sz); - if (!get_ent_count(s, &len)) - return; - for (i = 0; i < len; i++) { - if (gelf_getrela(d, i, &r) != &r) { - warnx("gelf_getrel failed: %s", elf_errmsg(-1)); - continue; - } - symname = get_symbol_name(re, s->link, GELF_R_SYM(r.r_info)); - symval = get_symbol_value(re, s->link, GELF_R_SYM(r.r_info)); - if (re->ec == ELFCLASS32) { - r.r_info = ELF32_R_INFO(ELF64_R_SYM(r.r_info), - ELF64_R_TYPE(r.r_info)); - printf("%8.8jx %8.8jx %-19.19s %8.8jx %s", RELA_CT32); - printf(" + %x\n", (uint32_t) r.r_addend); - } else { - type = ELF64_R_TYPE(r.r_info); - if (re->ehdr.e_machine == EM_MIPS) { - type2 = (type >> 8) & 0xFF; - type3 = (type >> 16) & 0xFF; - type = type & 0xFF; - } else { - type2 = type3 = 0; - } - if (re->options & RE_WW) - printf("%16.16jx %16.16jx %-24.24s" - " %16.16jx %s", RELA_CT64); - else - printf("%12.12jx %12.12jx %-19.19s" - " %16.16jx %s", RELA_CT64); - printf(" + %jx\n", (uintmax_t) r.r_addend); - if (re->ehdr.e_machine == EM_MIPS) { - if (re->options & RE_WW) { - printf("%32s: %s\n", "Type2", - elftc_reloc_type_str(EM_MIPS, - type2)); - printf("%32s: %s\n", "Type3", - elftc_reloc_type_str(EM_MIPS, - type3)); - } else { - printf("%24s: %s\n", "Type2", - elftc_reloc_type_str(EM_MIPS, - type2)); - printf("%24s: %s\n", "Type3", - elftc_reloc_type_str(EM_MIPS, - type3)); - } - } - } - } - -#undef RELA_HDR -#undef RELA_CT -} - -static void -dump_reloc(struct readelf *re) -{ - struct section *s; - Elf_Data *d; - int i, elferr; - - for (i = 0; (size_t)i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type == SHT_REL || s->type == SHT_RELA) { - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - if (s->type == SHT_REL) - dump_rel(re, s, d); - else - dump_rela(re, s, d); - } - } -} - -static void -dump_symtab(struct readelf *re, int i) -{ - struct section *s; - Elf_Data *d; - GElf_Sym sym; - const char *name; - uint32_t stab; - int elferr, j, len; - uint16_t vs; - - s = &re->sl[i]; - if (s->link >= re->shnum) - return; - stab = s->link; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - if (d->d_size <= 0) - return; - if (!get_ent_count(s, &len)) - return; - printf("Symbol table (%s)", s->name); - printf(" contains %d entries:\n", len); - printf("%7s%9s%14s%5s%8s%6s%9s%5s\n", "Num:", "Value", "Size", "Type", - "Bind", "Vis", "Ndx", "Name"); - - for (j = 0; j < len; j++) { - if (gelf_getsym(d, j, &sym) != &sym) { - warnx("gelf_getsym failed: %s", elf_errmsg(-1)); - continue; - } - printf("%6d:", j); - printf(" %16.16jx", (uintmax_t) sym.st_value); - printf(" %5ju", (uintmax_t) sym.st_size); - printf(" %-7s", st_type(re->ehdr.e_machine, - re->ehdr.e_ident[EI_OSABI], GELF_ST_TYPE(sym.st_info))); - printf(" %-6s", st_bind(GELF_ST_BIND(sym.st_info))); - printf(" %-8s", st_vis(GELF_ST_VISIBILITY(sym.st_other))); - printf(" %3s", st_shndx(sym.st_shndx)); - if ((name = elf_strptr(re->elf, stab, sym.st_name)) != NULL) - printf(" %s", name); - /* Append symbol version string for SHT_DYNSYM symbol table. */ - if (s->type == SHT_DYNSYM && re->ver != NULL && - re->vs != NULL && re->vs[j] > 1) { - vs = re->vs[j] & VERSYM_VERSION; - if (vs >= re->ver_sz || re->ver[vs].name == NULL) { - warnx("invalid versym version index %u", vs); - break; - } - if (re->vs[j] & VERSYM_HIDDEN || re->ver[vs].type == 0) - printf("@%s (%d)", re->ver[vs].name, vs); - else - printf("@@%s (%d)", re->ver[vs].name, vs); - } - putchar('\n'); - } - -} - -static void -dump_symtabs(struct readelf *re) -{ - GElf_Dyn dyn; - Elf_Data *d; - struct section *s; - uint64_t dyn_off; - int elferr, i, len; - - /* - * If -D is specified, only dump the symbol table specified by - * the DT_SYMTAB entry in the .dynamic section. - */ - dyn_off = 0; - if (re->options & RE_DD) { - s = NULL; - for (i = 0; (size_t)i < re->shnum; i++) - if (re->sl[i].type == SHT_DYNAMIC) { - s = &re->sl[i]; - break; - } - if (s == NULL) - return; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - return; - } - if (d->d_size <= 0) - return; - if (!get_ent_count(s, &len)) - return; - - for (i = 0; i < len; i++) { - if (gelf_getdyn(d, i, &dyn) != &dyn) { - warnx("gelf_getdyn failed: %s", elf_errmsg(-1)); - continue; - } - if (dyn.d_tag == DT_SYMTAB) { - dyn_off = dyn.d_un.d_val; - break; - } - } - } - - /* Find and dump symbol tables. */ - for (i = 0; (size_t)i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type == SHT_SYMTAB || s->type == SHT_DYNSYM) { - if (re->options & RE_DD) { - if (dyn_off == s->addr) { - dump_symtab(re, i); - break; - } - } else - dump_symtab(re, i); - } - } -} - -static void -dump_svr4_hash(struct section *s) -{ - Elf_Data *d; - uint32_t *buf; - uint32_t nbucket, nchain; - uint32_t *bucket, *chain; - uint32_t *bl, *c, maxl, total; - int elferr, i, j; - - /* Read and parse the content of .hash section. */ - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - if (d->d_size < 2 * sizeof(uint32_t)) { - warnx(".hash section too small"); - return; - } - buf = d->d_buf; - nbucket = buf[0]; - nchain = buf[1]; - if (nbucket <= 0 || nchain <= 0) { - warnx("Malformed .hash section"); - return; - } - if (d->d_size != (nbucket + nchain + 2) * sizeof(uint32_t)) { - warnx("Malformed .hash section"); - return; - } - bucket = &buf[2]; - chain = &buf[2 + nbucket]; - - maxl = 0; - if ((bl = calloc(nbucket, sizeof(*bl))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - for (i = 0; (uint32_t)i < nbucket; i++) - for (j = bucket[i]; j > 0 && (uint32_t)j < nchain; j = chain[j]) - if (++bl[i] > maxl) - maxl = bl[i]; - if ((c = calloc(maxl + 1, sizeof(*c))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - for (i = 0; (uint32_t)i < nbucket; i++) - c[bl[i]]++; - printf("\nHistogram for bucket list length (total of %u buckets):\n", - nbucket); - printf(" Length\tNumber\t\t%% of total\tCoverage\n"); - total = 0; - for (i = 0; (uint32_t)i <= maxl; i++) { - total += c[i] * i; - printf("%7u\t%-10u\t(%5.1f%%)\t%5.1f%%\n", i, c[i], - c[i] * 100.0 / nbucket, total * 100.0 / (nchain - 1)); - } - free(c); - free(bl); -} - -static void -dump_svr4_hash64(struct readelf *re, struct section *s) -{ - Elf_Data *d, dst; - uint64_t *buf; - uint64_t nbucket, nchain; - uint64_t *bucket, *chain; - uint64_t *bl, *c, maxl, total; - int elferr, i, j; - - /* - * ALPHA uses 64-bit hash entries. Since libelf assumes that - * .hash section contains only 32-bit entry, an explicit - * gelf_xlatetom is needed here. - */ - (void) elf_errno(); - if ((d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", - elf_errmsg(elferr)); - return; - } - d->d_type = ELF_T_XWORD; - memcpy(&dst, d, sizeof(Elf_Data)); - if (gelf_xlatetom(re->elf, &dst, d, - re->ehdr.e_ident[EI_DATA]) != &dst) { - warnx("gelf_xlatetom failed: %s", elf_errmsg(-1)); - return; - } - if (dst.d_size < 2 * sizeof(uint64_t)) { - warnx(".hash section too small"); - return; - } - buf = dst.d_buf; - nbucket = buf[0]; - nchain = buf[1]; - if (nbucket <= 0 || nchain <= 0) { - warnx("Malformed .hash section"); - return; - } - if (d->d_size != (nbucket + nchain + 2) * sizeof(uint32_t)) { - warnx("Malformed .hash section"); - return; - } - bucket = &buf[2]; - chain = &buf[2 + nbucket]; - - maxl = 0; - if ((bl = calloc(nbucket, sizeof(*bl))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - for (i = 0; (uint32_t)i < nbucket; i++) - for (j = bucket[i]; j > 0 && (uint32_t)j < nchain; j = chain[j]) - if (++bl[i] > maxl) - maxl = bl[i]; - if ((c = calloc(maxl + 1, sizeof(*c))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - for (i = 0; (uint64_t)i < nbucket; i++) - c[bl[i]]++; - printf("Histogram for bucket list length (total of %ju buckets):\n", - (uintmax_t)nbucket); - printf(" Length\tNumber\t\t%% of total\tCoverage\n"); - total = 0; - for (i = 0; (uint64_t)i <= maxl; i++) { - total += c[i] * i; - printf("%7u\t%-10ju\t(%5.1f%%)\t%5.1f%%\n", i, (uintmax_t)c[i], - c[i] * 100.0 / nbucket, total * 100.0 / (nchain - 1)); - } - free(c); - free(bl); -} - -static void -dump_gnu_hash(struct readelf *re, struct section *s) -{ - struct section *ds; - Elf_Data *d; - uint32_t *buf; - uint32_t *bucket, *chain; - uint32_t nbucket, nchain, symndx, maskwords; - uint32_t *bl, *c, maxl, total; - int elferr, dynsymcount, i, j; - - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (d->d_size < 4 * sizeof(uint32_t)) { - warnx(".gnu.hash section too small"); - return; - } - buf = d->d_buf; - nbucket = buf[0]; - symndx = buf[1]; - maskwords = buf[2]; - buf += 4; - if (s->link >= re->shnum) - return; - ds = &re->sl[s->link]; - if (!get_ent_count(ds, &dynsymcount)) - return; - if (symndx >= (uint32_t)dynsymcount) { - warnx("Malformed .gnu.hash section (symndx out of range)"); - return; - } - nchain = dynsymcount - symndx; - if (d->d_size != 4 * sizeof(uint32_t) + maskwords * - (re->ec == ELFCLASS32 ? sizeof(uint32_t) : sizeof(uint64_t)) + - (nbucket + nchain) * sizeof(uint32_t)) { - warnx("Malformed .gnu.hash section"); - return; - } - bucket = buf + (re->ec == ELFCLASS32 ? maskwords : maskwords * 2); - chain = bucket + nbucket; - - maxl = 0; - if ((bl = calloc(nbucket, sizeof(*bl))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - for (i = 0; (uint32_t)i < nbucket; i++) - for (j = bucket[i]; j > 0 && (uint32_t)j - symndx < nchain; - j++) { - if (++bl[i] > maxl) - maxl = bl[i]; - if (chain[j - symndx] & 1) - break; - } - if ((c = calloc(maxl + 1, sizeof(*c))) == NULL) - errx(EXIT_FAILURE, "calloc failed"); - for (i = 0; (uint32_t)i < nbucket; i++) - c[bl[i]]++; - printf("Histogram for bucket list length (total of %u buckets):\n", - nbucket); - printf(" Length\tNumber\t\t%% of total\tCoverage\n"); - total = 0; - for (i = 0; (uint32_t)i <= maxl; i++) { - total += c[i] * i; - printf("%7u\t%-10u\t(%5.1f%%)\t%5.1f%%\n", i, c[i], - c[i] * 100.0 / nbucket, total * 100.0 / (nchain - 1)); - } - free(c); - free(bl); -} - -static void -dump_hash(struct readelf *re) -{ - struct section *s; - int i; - - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type == SHT_HASH || s->type == SHT_GNU_HASH) { - if (s->type == SHT_GNU_HASH) - dump_gnu_hash(re, s); - else if (re->ehdr.e_machine == EM_ALPHA && - s->entsize == 8) - dump_svr4_hash64(re, s); - else - dump_svr4_hash(s); - } - } -} - -static void -dump_notes(struct readelf *re) -{ - struct section *s; - const char *rawfile; - GElf_Phdr phdr; - Elf_Data *d; - size_t filesize, phnum; - int i, elferr; - - if (re->ehdr.e_type == ET_CORE) { - /* - * Search program headers in the core file for - * PT_NOTE entry. - */ - if (elf_getphnum(re->elf, &phnum) == 0) { - warnx("elf_getphnum failed: %s", elf_errmsg(-1)); - return; - } - if (phnum == 0) - return; - if ((rawfile = elf_rawfile(re->elf, &filesize)) == NULL) { - warnx("elf_rawfile failed: %s", elf_errmsg(-1)); - return; - } - for (i = 0; (size_t) i < phnum; i++) { - if (gelf_getphdr(re->elf, i, &phdr) != &phdr) { - warnx("gelf_getphdr failed: %s", - elf_errmsg(-1)); - continue; - } - if (phdr.p_type == PT_NOTE) { - if (phdr.p_offset >= filesize || - phdr.p_filesz > filesize - phdr.p_offset) { - warnx("invalid PHDR offset"); - continue; - } - /* - * XXX cross-endian core notes are not - * translated - ticket #583. - */ - dump_notes_content(re, rawfile + phdr.p_offset, - phdr.p_filesz, phdr.p_offset); - } - } - - } else { - /* - * For objects other than core files, Search for - * SHT_NOTE sections. - */ - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type == SHT_NOTE) { - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - dump_notes_content(re, d->d_buf, d->d_size, - s->off); - } - } - } -} - -static struct flag_desc note_feature_ctl_flags[] = { - { 0x1, "ASLR_DISABLE" }, - { 0x2, "PROTMAX_DISABLE" }, - { 0x4, "STKGAP_DISABLE" }, - { 0, NULL } -}; - -static void -dump_notes_data(const char *name, uint32_t type, const char *buf, size_t sz) -{ - size_t i; - const uint32_t *ubuf; - - /* Note data is at least 4-byte aligned. */ - if (((uintptr_t)buf & 3) != 0) { - warnx("bad note data alignment"); - goto unknown; - } - ubuf = (const uint32_t *)(const void *)buf; - - if (strcmp(name, "FreeBSD") == 0) { - switch (type) { - case NT_FREEBSD_ABI_TAG: - if (sz != 4) - goto unknown; - printf(" ABI tag: %u\n", ubuf[0]); - return; - /* NT_FREEBSD_NOINIT_TAG carries no data, treat as unknown. */ - case NT_FREEBSD_ARCH_TAG: - if (sz != 4) - goto unknown; - printf(" Arch tag: %x\n", ubuf[0]); - return; - case NT_FREEBSD_FEATURE_CTL: - if (sz != 4) - goto unknown; - printf(" Features:"); - dump_flags(note_feature_ctl_flags, ubuf[0]); - return; - } - } -unknown: - printf(" description data:"); - for (i = 0; i < sz; i++) - printf(" %02x", (unsigned char)buf[i]); - printf("\n"); -} - -static void -dump_notes_content(struct readelf *re, const char *buf, size_t sz, off_t off) -{ - Elf_Note *note; - const char *end, *name; - uint32_t namesz, descsz; - - printf("\nNotes at offset %#010jx with length %#010jx:\n", - (uintmax_t) off, (uintmax_t) sz); - printf(" %-13s %-15s %s\n", "Owner", "Data size", "Description"); - end = buf + sz; - while (buf < end) { - if (buf + sizeof(*note) > end) { - warnx("invalid note header"); - return; - } - note = (Elf_Note *)(uintptr_t) buf; - namesz = roundup2(note->n_namesz, 4); - descsz = roundup2(note->n_descsz, 4); - if (namesz < note->n_namesz || descsz < note->n_descsz || - buf + namesz + descsz > end) { - warnx("invalid note header"); - return; - } - buf += sizeof(Elf_Note); - name = buf; - buf += namesz; - /* - * The name field is required to be nul-terminated, and - * n_namesz includes the terminating nul in observed - * implementations (contrary to the ELF-64 spec). A special - * case is needed for cores generated by some older Linux - * versions, which write a note named "CORE" without a nul - * terminator and n_namesz = 4. - */ - if (note->n_namesz == 0) - name = ""; - else if (note->n_namesz == 4 && strncmp(name, "CORE", 4) == 0) - name = "CORE"; - else if (strnlen(name, note->n_namesz) >= note->n_namesz) - name = ""; - printf(" %-13s %#010jx", name, (uintmax_t) note->n_descsz); - printf(" %s\n", note_type(name, re->ehdr.e_type, - note->n_type)); - dump_notes_data(name, note->n_type, buf, note->n_descsz); - buf += descsz; - } -} - -/* - * Symbol versioning sections are the same for 32bit and 64bit - * ELF objects. - */ -#define Elf_Verdef Elf32_Verdef -#define Elf_Verdaux Elf32_Verdaux -#define Elf_Verneed Elf32_Verneed -#define Elf_Vernaux Elf32_Vernaux - -#define SAVE_VERSION_NAME(x, n, t) \ - do { \ - while (x >= re->ver_sz) { \ - nv = realloc(re->ver, \ - sizeof(*re->ver) * re->ver_sz * 2); \ - if (nv == NULL) { \ - warn("realloc failed"); \ - free(re->ver); \ - return; \ - } \ - re->ver = nv; \ - for (i = re->ver_sz; i < re->ver_sz * 2; i++) { \ - re->ver[i].name = NULL; \ - re->ver[i].type = 0; \ - } \ - re->ver_sz *= 2; \ - } \ - if (x > 1) { \ - re->ver[x].name = n; \ - re->ver[x].type = t; \ - } \ - } while (0) - - -static void -dump_verdef(struct readelf *re, int dump) -{ - struct section *s; - struct symver *nv; - Elf_Data *d; - Elf_Verdef *vd; - Elf_Verdaux *vda; - uint8_t *buf, *end, *buf2; - const char *name; - int elferr, i, j; - - if ((s = re->vd_s) == NULL) - return; - if (s->link >= re->shnum) - return; - - if (re->ver == NULL) { - re->ver_sz = 16; - if ((re->ver = calloc(re->ver_sz, sizeof(*re->ver))) == - NULL) { - warn("calloc failed"); - return; - } - re->ver[0].name = "*local*"; - re->ver[1].name = "*global*"; - } - - if (dump) - printf("\nVersion definition section (%s):\n", s->name); - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - if (d->d_size == 0) - return; - - buf = d->d_buf; - end = buf + d->d_size; - while (buf + sizeof(Elf_Verdef) <= end) { - vd = (Elf_Verdef *) (uintptr_t) buf; - if (dump) { - printf(" 0x%4.4lx", (unsigned long) - (buf - (uint8_t *)d->d_buf)); - printf(" vd_version: %u vd_flags: %d" - " vd_ndx: %u vd_cnt: %u", vd->vd_version, - vd->vd_flags, vd->vd_ndx, vd->vd_cnt); - } - buf2 = buf + vd->vd_aux; - j = 0; - while (buf2 + sizeof(Elf_Verdaux) <= end && j < vd->vd_cnt) { - vda = (Elf_Verdaux *) (uintptr_t) buf2; - name = get_string(re, s->link, vda->vda_name); - if (j == 0) { - if (dump) - printf(" vda_name: %s\n", name); - SAVE_VERSION_NAME((int)vd->vd_ndx, name, 1); - } else if (dump) - printf(" 0x%4.4lx parent: %s\n", - (unsigned long) (buf2 - - (uint8_t *)d->d_buf), name); - if (vda->vda_next == 0) - break; - buf2 += vda->vda_next; - j++; - } - if (vd->vd_next == 0) - break; - buf += vd->vd_next; - } -} - -static void -dump_verneed(struct readelf *re, int dump) -{ - struct section *s; - struct symver *nv; - Elf_Data *d; - Elf_Verneed *vn; - Elf_Vernaux *vna; - uint8_t *buf, *end, *buf2; - const char *name; - int elferr, i, j; - - if ((s = re->vn_s) == NULL) - return; - if (s->link >= re->shnum) - return; - - if (re->ver == NULL) { - re->ver_sz = 16; - if ((re->ver = calloc(re->ver_sz, sizeof(*re->ver))) == - NULL) { - warn("calloc failed"); - return; - } - re->ver[0].name = "*local*"; - re->ver[1].name = "*global*"; - } - - if (dump) - printf("\nVersion needed section (%s):\n", s->name); - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return; - } - if (d->d_size == 0) - return; - - buf = d->d_buf; - end = buf + d->d_size; - while (buf + sizeof(Elf_Verneed) <= end) { - vn = (Elf_Verneed *) (uintptr_t) buf; - if (dump) { - printf(" 0x%4.4lx", (unsigned long) - (buf - (uint8_t *)d->d_buf)); - printf(" vn_version: %u vn_file: %s vn_cnt: %u\n", - vn->vn_version, - get_string(re, s->link, vn->vn_file), - vn->vn_cnt); - } - buf2 = buf + vn->vn_aux; - j = 0; - while (buf2 + sizeof(Elf_Vernaux) <= end && j < vn->vn_cnt) { - vna = (Elf32_Vernaux *) (uintptr_t) buf2; - if (dump) - printf(" 0x%4.4lx", (unsigned long) - (buf2 - (uint8_t *)d->d_buf)); - name = get_string(re, s->link, vna->vna_name); - if (dump) - printf(" vna_name: %s vna_flags: %u" - " vna_other: %u\n", name, - vna->vna_flags, vna->vna_other); - SAVE_VERSION_NAME((int)vna->vna_other, name, 0); - if (vna->vna_next == 0) - break; - buf2 += vna->vna_next; - j++; - } - if (vn->vn_next == 0) - break; - buf += vn->vn_next; - } -} - -static void -dump_versym(struct readelf *re) -{ - int i; - uint16_t vs; - - if (re->vs_s == NULL || re->ver == NULL || re->vs == NULL) - return; - printf("\nVersion symbol section (%s):\n", re->vs_s->name); - for (i = 0; i < re->vs_sz; i++) { - if ((i & 3) == 0) { - if (i > 0) - putchar('\n'); - printf(" %03x:", i); - } - vs = re->vs[i] & VERSYM_VERSION; - if (vs >= re->ver_sz || re->ver[vs].name == NULL) { - warnx("invalid versym version index %u", re->vs[i]); - break; - } - if (re->vs[i] & VERSYM_HIDDEN) - printf(" %3xh %-12s ", vs, - re->ver[re->vs[i] & VERSYM_VERSION].name); - else - printf(" %3x %-12s ", vs, re->ver[re->vs[i]].name); - } - putchar('\n'); -} - -static void -dump_ver(struct readelf *re) -{ - - if (re->vs_s && re->ver && re->vs) - dump_versym(re); - if (re->vd_s) - dump_verdef(re, 1); - if (re->vn_s) - dump_verneed(re, 1); -} - -static void -search_ver(struct readelf *re) -{ - struct section *s; - Elf_Data *d; - int elferr, i; - - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type == SHT_SUNW_versym) - re->vs_s = s; - if (s->type == SHT_SUNW_verneed) - re->vn_s = s; - if (s->type == SHT_SUNW_verdef) - re->vd_s = s; - } - if (re->vd_s) - dump_verdef(re, 0); - if (re->vn_s) - dump_verneed(re, 0); - if (re->vs_s && re->ver != NULL) { - (void) elf_errno(); - if ((d = elf_getdata(re->vs_s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (d->d_size == 0) - return; - re->vs = d->d_buf; - re->vs_sz = d->d_size / sizeof(Elf32_Half); - } -} - -#undef Elf_Verdef -#undef Elf_Verdaux -#undef Elf_Verneed -#undef Elf_Vernaux -#undef SAVE_VERSION_NAME - -/* - * Elf32_Lib and Elf64_Lib are identical. - */ -#define Elf_Lib Elf32_Lib - -static void -dump_liblist(struct readelf *re) -{ - struct section *s; - struct tm *t; - time_t ti; - char tbuf[20]; - Elf_Data *d; - Elf_Lib *lib; - int i, j, k, elferr, first, len; - - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type != SHT_GNU_LIBLIST) - continue; - if (s->link >= re->shnum) - continue; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - if (d->d_size <= 0) - continue; - lib = d->d_buf; - if (!get_ent_count(s, &len)) - continue; - printf("\nLibrary list section '%s' ", s->name); - printf("contains %d entries:\n", len); - printf("%12s%24s%18s%10s%6s\n", "Library", "Time Stamp", - "Checksum", "Version", "Flags"); - for (j = 0; (uint64_t) j < s->sz / s->entsize; j++) { - printf("%3d: ", j); - printf("%-20.20s ", - get_string(re, s->link, lib->l_name)); - ti = lib->l_time_stamp; - t = gmtime(&ti); - snprintf(tbuf, sizeof(tbuf), "%04d-%02d-%02dT%02d:%02d" - ":%2d", t->tm_year + 1900, t->tm_mon + 1, - t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); - printf("%-19.19s ", tbuf); - printf("0x%08x ", lib->l_checksum); - printf("%-7d %#x", lib->l_version, lib->l_flags); - if (lib->l_flags != 0) { - first = 1; - putchar('('); - for (k = 0; l_flag[k].name != NULL; k++) { - if ((l_flag[k].value & lib->l_flags) == - 0) - continue; - if (!first) - putchar(','); - else - first = 0; - printf("%s", l_flag[k].name); - } - putchar(')'); - } - putchar('\n'); - lib++; - } - } -} - -#undef Elf_Lib - -static void -dump_section_groups(struct readelf *re) -{ - struct section *s; - const char *symname; - Elf_Data *d; - uint32_t *w; - int i, j, elferr; - size_t n; - - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type != SHT_GROUP) - continue; - if (s->link >= re->shnum) - continue; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - if (d->d_size <= 0) - continue; - - w = d->d_buf; - - /* We only support COMDAT section. */ - if ((*w++ & GRP_COMDAT) == 0) - return; - - if (s->entsize == 0) - s->entsize = 4; - - symname = get_symbol_name(re, s->link, s->info); - n = s->sz / s->entsize; - if (n-- < 1) - return; - - printf("\nCOMDAT group section [%5d] `%s' [%s] contains %ju" - " sections:\n", i, s->name, symname, (uintmax_t)n); - printf(" %-10.10s %s\n", "[Index]", "Name"); - for (j = 0; (size_t) j < n; j++, w++) { - if (*w >= re->shnum) { - warnx("invalid section index: %u", *w); - continue; - } - printf(" [%5u] %s\n", *w, re->sl[*w].name); - } - } -} - -static uint8_t * -dump_unknown_tag(uint64_t tag, uint8_t *p, uint8_t *pe) -{ - uint64_t val; - - /* - * According to ARM EABI: For tags > 32, even numbered tags have - * a ULEB128 param and odd numbered ones have NUL-terminated - * string param. This rule probably also applies for tags <= 32 - * if the object arch is not ARM. - */ - - printf(" Tag_unknown_%ju: ", (uintmax_t) tag); - - if (tag & 1) { - printf("%s\n", (char *) p); - p += strlen((char *) p) + 1; - } else { - val = _decode_uleb128(&p, pe); - printf("%ju\n", (uintmax_t) val); - } - - return (p); -} - -static uint8_t * -dump_compatibility_tag(uint8_t *p, uint8_t *pe) -{ - uint64_t val; - - val = _decode_uleb128(&p, pe); - printf("flag = %ju, vendor = %s\n", (uintmax_t) val, p); - p += strlen((char *) p) + 1; - - return (p); -} - -static void -dump_arm_attributes(struct readelf *re, uint8_t *p, uint8_t *pe) -{ - uint64_t tag, val; - size_t i; - int found, desc; - - (void) re; - - while (p < pe) { - tag = _decode_uleb128(&p, pe); - found = desc = 0; - for (i = 0; i < sizeof(aeabi_tags) / sizeof(aeabi_tags[0]); - i++) { - if (tag == aeabi_tags[i].tag) { - found = 1; - printf(" %s: ", aeabi_tags[i].s_tag); - if (aeabi_tags[i].get_desc) { - desc = 1; - val = _decode_uleb128(&p, pe); - printf("%s\n", - aeabi_tags[i].get_desc(val)); - } - break; - } - if (tag < aeabi_tags[i].tag) - break; - } - if (!found) { - p = dump_unknown_tag(tag, p, pe); - continue; - } - if (desc) - continue; - - switch (tag) { - case 4: /* Tag_CPU_raw_name */ - case 5: /* Tag_CPU_name */ - case 67: /* Tag_conformance */ - printf("%s\n", (char *) p); - p += strlen((char *) p) + 1; - break; - case 32: /* Tag_compatibility */ - p = dump_compatibility_tag(p, pe); - break; - case 64: /* Tag_nodefaults */ - /* ignored, written as 0. */ - (void) _decode_uleb128(&p, pe); - printf("True\n"); - break; - case 65: /* Tag_also_compatible_with */ - val = _decode_uleb128(&p, pe); - /* Must be Tag_CPU_arch */ - if (val != 6) { - printf("unknown\n"); - break; - } - val = _decode_uleb128(&p, pe); - printf("%s\n", aeabi_cpu_arch(val)); - /* Skip NUL terminator. */ - p++; - break; - default: - putchar('\n'); - break; - } - } -} - -#ifndef Tag_GNU_MIPS_ABI_FP -#define Tag_GNU_MIPS_ABI_FP 4 -#endif - -static void -dump_mips_attributes(struct readelf *re, uint8_t *p, uint8_t *pe) -{ - uint64_t tag, val; - - (void) re; - - while (p < pe) { - tag = _decode_uleb128(&p, pe); - switch (tag) { - case Tag_GNU_MIPS_ABI_FP: - val = _decode_uleb128(&p, pe); - printf(" Tag_GNU_MIPS_ABI_FP: %s\n", mips_abi_fp(val)); - break; - case 32: /* Tag_compatibility */ - p = dump_compatibility_tag(p, pe); - break; - default: - p = dump_unknown_tag(tag, p, pe); - break; - } - } -} - -#ifndef Tag_GNU_Power_ABI_FP -#define Tag_GNU_Power_ABI_FP 4 -#endif - -#ifndef Tag_GNU_Power_ABI_Vector -#define Tag_GNU_Power_ABI_Vector 8 -#endif - -static void -dump_ppc_attributes(uint8_t *p, uint8_t *pe) -{ - uint64_t tag, val; - - while (p < pe) { - tag = _decode_uleb128(&p, pe); - switch (tag) { - case Tag_GNU_Power_ABI_FP: - val = _decode_uleb128(&p, pe); - printf(" Tag_GNU_Power_ABI_FP: %s\n", ppc_abi_fp(val)); - break; - case Tag_GNU_Power_ABI_Vector: - val = _decode_uleb128(&p, pe); - printf(" Tag_GNU_Power_ABI_Vector: %s\n", - ppc_abi_vector(val)); - break; - case 32: /* Tag_compatibility */ - p = dump_compatibility_tag(p, pe); - break; - default: - p = dump_unknown_tag(tag, p, pe); - break; - } - } -} - -static void -dump_attributes(struct readelf *re) -{ - struct section *s; - Elf_Data *d; - uint8_t *p, *pe, *sp; - size_t len, seclen, nlen, sublen; - uint64_t val; - int tag, i, elferr; - - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->type != SHT_GNU_ATTRIBUTES && - (re->ehdr.e_machine != EM_ARM || s->type != SHT_LOPROC + 3)) - continue; - (void) elf_errno(); - if ((d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", - elf_errmsg(elferr)); - continue; - } - if (d->d_size <= 0) - continue; - p = d->d_buf; - pe = p + d->d_size; - if (*p != 'A') { - printf("Unknown Attribute Section Format: %c\n", - (char) *p); - continue; - } - len = d->d_size - 1; - p++; - while (len > 0) { - if (len < 4) { - warnx("truncated attribute section length"); - return; - } - seclen = re->dw_decode(&p, 4); - if (seclen > len) { - warnx("invalid attribute section length"); - return; - } - len -= seclen; - nlen = strlen((char *) p) + 1; - if (nlen + 4 > seclen) { - warnx("invalid attribute section name"); - return; - } - printf("Attribute Section: %s\n", (char *) p); - p += nlen; - seclen -= nlen + 4; - while (seclen > 0) { - sp = p; - tag = *p++; - sublen = re->dw_decode(&p, 4); - if (sublen > seclen) { - warnx("invalid attribute sub-section" - " length"); - return; - } - seclen -= sublen; - printf("%s", top_tag(tag)); - if (tag == 2 || tag == 3) { - putchar(':'); - for (;;) { - val = _decode_uleb128(&p, pe); - if (val == 0) - break; - printf(" %ju", (uintmax_t) val); - } - } - putchar('\n'); - if (re->ehdr.e_machine == EM_ARM && - s->type == SHT_LOPROC + 3) - dump_arm_attributes(re, p, sp + sublen); - else if (re->ehdr.e_machine == EM_MIPS || - re->ehdr.e_machine == EM_MIPS_RS3_LE) - dump_mips_attributes(re, p, - sp + sublen); - else if (re->ehdr.e_machine == EM_PPC) - dump_ppc_attributes(p, sp + sublen); - p = sp + sublen; - } - } - } -} - -static void -dump_mips_specific_info(struct readelf *re) -{ - struct section *s; - int i; - - s = NULL; - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && (!strcmp(s->name, ".MIPS.options") || - (s->type == SHT_MIPS_OPTIONS))) { - dump_mips_options(re, s); - } - } - - if (s->name != NULL && (!strcmp(s->name, ".MIPS.abiflags") || - (s->type == SHT_MIPS_ABIFLAGS))) - dump_mips_abiflags(re, s); - - /* - * Dump .reginfo if present (although it will be ignored by an OS if a - * .MIPS.options section is present, according to SGI mips64 spec). - */ - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && (!strcmp(s->name, ".reginfo") || - (s->type == SHT_MIPS_REGINFO))) - dump_mips_reginfo(re, s); - } -} - -static void -dump_mips_abiflags(struct readelf *re, struct section *s) -{ - Elf_Data *d; - uint8_t *p; - int elferr; - uint32_t isa_ext, ases, flags1, flags2; - uint16_t version; - uint8_t isa_level, isa_rev, gpr_size, cpr1_size, cpr2_size, fp_abi; - - if ((d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (d->d_size != 24) { - warnx("invalid MIPS abiflags section size"); - return; - } - - p = d->d_buf; - version = re->dw_decode(&p, 2); - printf("MIPS ABI Flags Version: %u", version); - if (version != 0) { - printf(" (unknown)\n\n"); - return; - } - printf("\n\n"); - - isa_level = re->dw_decode(&p, 1); - isa_rev = re->dw_decode(&p, 1); - gpr_size = re->dw_decode(&p, 1); - cpr1_size = re->dw_decode(&p, 1); - cpr2_size = re->dw_decode(&p, 1); - fp_abi = re->dw_decode(&p, 1); - isa_ext = re->dw_decode(&p, 4); - ases = re->dw_decode(&p, 4); - flags1 = re->dw_decode(&p, 4); - flags2 = re->dw_decode(&p, 4); - - printf("ISA: "); - if (isa_rev <= 1) - printf("MIPS%u\n", isa_level); - else - printf("MIPS%ur%u\n", isa_level, isa_rev); - printf("GPR size: %d\n", get_mips_register_size(gpr_size)); - printf("CPR1 size: %d\n", get_mips_register_size(cpr1_size)); - printf("CPR2 size: %d\n", get_mips_register_size(cpr2_size)); - printf("FP ABI: "); - switch (fp_abi) { - case 3: - printf("Soft float"); - break; - default: - printf("%u", fp_abi); - break; - } - printf("\nISA Extension: %u\n", isa_ext); - printf("ASEs: %u\n", ases); - printf("FLAGS 1: %08x\n", flags1); - printf("FLAGS 2: %08x\n", flags2); -} - -static int -get_mips_register_size(uint8_t flag) -{ - switch (flag) { - case 0: return 0; - case 1: return 32; - case 2: return 64; - case 3: return 128; - default: return -1; - } -} -static void -dump_mips_reginfo(struct readelf *re, struct section *s) -{ - Elf_Data *d; - int elferr, len; - - (void) elf_errno(); - if ((d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (d->d_size <= 0) - return; - if (!get_ent_count(s, &len)) - return; - - printf("\nSection '%s' contains %d entries:\n", s->name, len); - dump_mips_odk_reginfo(re, d->d_buf, d->d_size); -} - -static void -dump_mips_options(struct readelf *re, struct section *s) -{ - Elf_Data *d; - uint32_t info; - uint16_t sndx; - uint8_t *p, *pe; - uint8_t kind, size; - int elferr; - - (void) elf_errno(); - if ((d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_rawdata failed: %s", - elf_errmsg(elferr)); - return; - } - if (d->d_size == 0) - return; - - printf("\nSection %s contains:\n", s->name); - p = d->d_buf; - pe = p + d->d_size; - while (p < pe) { - if (pe - p < 8) { - warnx("Truncated MIPS option header"); - return; - } - kind = re->dw_decode(&p, 1); - size = re->dw_decode(&p, 1); - sndx = re->dw_decode(&p, 2); - info = re->dw_decode(&p, 4); - if (size < 8 || size - 8 > pe - p) { - warnx("Malformed MIPS option header"); - return; - } - size -= 8; - switch (kind) { - case ODK_REGINFO: - dump_mips_odk_reginfo(re, p, size); - break; - case ODK_EXCEPTIONS: - printf(" EXCEPTIONS FPU_MIN: %#x\n", - info & OEX_FPU_MIN); - printf("%11.11s FPU_MAX: %#x\n", "", - info & OEX_FPU_MAX); - dump_mips_option_flags("", mips_exceptions_option, - info); - break; - case ODK_PAD: - printf(" %-10.10s section: %ju\n", "OPAD", - (uintmax_t) sndx); - dump_mips_option_flags("", mips_pad_option, info); - break; - case ODK_HWPATCH: - dump_mips_option_flags("HWPATCH", mips_hwpatch_option, - info); - break; - case ODK_HWAND: - dump_mips_option_flags("HWAND", mips_hwa_option, info); - break; - case ODK_HWOR: - dump_mips_option_flags("HWOR", mips_hwo_option, info); - break; - case ODK_FILL: - printf(" %-10.10s %#jx\n", "FILL", (uintmax_t) info); - break; - case ODK_TAGS: - printf(" %-10.10s\n", "TAGS"); - break; - case ODK_GP_GROUP: - printf(" %-10.10s GP group number: %#x\n", "GP_GROUP", - info & 0xFFFF); - if (info & 0x10000) - printf(" %-10.10s GP group is " - "self-contained\n", ""); - break; - case ODK_IDENT: - printf(" %-10.10s default GP group number: %#x\n", - "IDENT", info & 0xFFFF); - if (info & 0x10000) - printf(" %-10.10s default GP group is " - "self-contained\n", ""); - break; - case ODK_PAGESIZE: - printf(" %-10.10s\n", "PAGESIZE"); - break; - default: - break; - } - p += size; - } -} - -static void -dump_mips_option_flags(const char *name, struct mips_option *opt, uint64_t info) -{ - int first; - - first = 1; - for (; opt->desc != NULL; opt++) { - if (info & opt->flag) { - printf(" %-10.10s %s\n", first ? name : "", - opt->desc); - first = 0; - } - } -} - -static void -dump_mips_odk_reginfo(struct readelf *re, uint8_t *p, size_t sz) -{ - uint32_t ri_gprmask; - uint32_t ri_cprmask[4]; - uint64_t ri_gp_value; - uint8_t *pe; - int i; - - pe = p + sz; - while (p < pe) { - ri_gprmask = re->dw_decode(&p, 4); - /* Skip ri_pad padding field for mips64. */ - if (re->ec == ELFCLASS64) - re->dw_decode(&p, 4); - for (i = 0; i < 4; i++) - ri_cprmask[i] = re->dw_decode(&p, 4); - if (re->ec == ELFCLASS32) - ri_gp_value = re->dw_decode(&p, 4); - else - ri_gp_value = re->dw_decode(&p, 8); - printf(" %s ", option_kind(ODK_REGINFO)); - printf("ri_gprmask: 0x%08jx\n", (uintmax_t) ri_gprmask); - for (i = 0; i < 4; i++) - printf("%11.11s ri_cprmask[%d]: 0x%08jx\n", "", i, - (uintmax_t) ri_cprmask[i]); - printf("%12.12s", ""); - printf("ri_gp_value: %#jx\n", (uintmax_t) ri_gp_value); - } -} - -static void -dump_arch_specific_info(struct readelf *re) -{ - - dump_liblist(re); - dump_attributes(re); - - switch (re->ehdr.e_machine) { - case EM_MIPS: - case EM_MIPS_RS3_LE: - dump_mips_specific_info(re); - default: - break; - } -} - -static const char * -dwarf_regname(struct readelf *re, unsigned int num) -{ - static char rx[32]; - const char *rn; - - if ((rn = dwarf_reg(re->ehdr.e_machine, num)) != NULL) - return (rn); - - snprintf(rx, sizeof(rx), "r%u", num); - - return (rx); -} - -static void -dump_dwarf_line(struct readelf *re) -{ - struct section *s; - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Half tag, version, pointer_size; - Dwarf_Unsigned offset, endoff, length, hdrlen, dirndx, mtime, fsize; - Dwarf_Small minlen, defstmt, lrange, opbase, oplen; - Elf_Data *d; - char *pn; - uint64_t address, file, line, column, isa, opsize, udelta; - int64_t sdelta; - uint8_t *p, *pe; - int8_t lbase; - int i, is_stmt, dwarf_size, elferr, ret; - - printf("\nDump of debug contents of section .debug_line:\n"); - - s = NULL; - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && !strcmp(s->name, ".debug_line")) - break; - } - if ((size_t) i >= re->shnum) - return; - - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - return; - } - if (d->d_size <= 0) - return; - - while ((ret = dwarf_next_cu_header(re->dbg, NULL, NULL, NULL, NULL, - NULL, &de)) == DW_DLV_OK) { - die = NULL; - while (dwarf_siblingof(re->dbg, die, &die, &de) == DW_DLV_OK) { - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", - dwarf_errmsg(de)); - return; - } - /* XXX: What about DW_TAG_partial_unit? */ - if (tag == DW_TAG_compile_unit) - break; - } - if (die == NULL) { - warnx("could not find DW_TAG_compile_unit die"); - return; - } - if (dwarf_attrval_unsigned(die, DW_AT_stmt_list, &offset, - &de) != DW_DLV_OK) - continue; - - length = re->dw_read(d, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = re->dw_read(d, &offset, 8); - } else - dwarf_size = 4; - - if (length > d->d_size - offset) { - warnx("invalid .dwarf_line section"); - continue; - } - - endoff = offset + length; - pe = (uint8_t *) d->d_buf + endoff; - version = re->dw_read(d, &offset, 2); - hdrlen = re->dw_read(d, &offset, dwarf_size); - minlen = re->dw_read(d, &offset, 1); - defstmt = re->dw_read(d, &offset, 1); - lbase = re->dw_read(d, &offset, 1); - lrange = re->dw_read(d, &offset, 1); - opbase = re->dw_read(d, &offset, 1); - - printf("\n"); - printf(" Length:\t\t\t%ju\n", (uintmax_t) length); - printf(" DWARF version:\t\t%u\n", version); - printf(" Prologue Length:\t\t%ju\n", (uintmax_t) hdrlen); - printf(" Minimum Instruction Length:\t%u\n", minlen); - printf(" Initial value of 'is_stmt':\t%u\n", defstmt); - printf(" Line Base:\t\t\t%d\n", lbase); - printf(" Line Range:\t\t\t%u\n", lrange); - printf(" Opcode Base:\t\t\t%u\n", opbase); - (void) dwarf_get_address_size(re->dbg, &pointer_size, &de); - printf(" (Pointer size:\t\t%u)\n", pointer_size); - - printf("\n"); - printf(" Opcodes:\n"); - for (i = 1; i < opbase; i++) { - oplen = re->dw_read(d, &offset, 1); - printf(" Opcode %d has %u args\n", i, oplen); - } - - printf("\n"); - printf(" The Directory Table:\n"); - p = (uint8_t *) d->d_buf + offset; - while (*p != '\0') { - printf(" %s\n", (char *) p); - p += strlen((char *) p) + 1; - } - - p++; - printf("\n"); - printf(" The File Name Table:\n"); - printf(" Entry\tDir\tTime\tSize\tName\n"); - i = 0; - while (*p != '\0') { - i++; - pn = (char *) p; - p += strlen(pn) + 1; - dirndx = _decode_uleb128(&p, pe); - mtime = _decode_uleb128(&p, pe); - fsize = _decode_uleb128(&p, pe); - printf(" %d\t%ju\t%ju\t%ju\t%s\n", i, - (uintmax_t) dirndx, (uintmax_t) mtime, - (uintmax_t) fsize, pn); - } - -#define RESET_REGISTERS \ - do { \ - address = 0; \ - file = 1; \ - line = 1; \ - column = 0; \ - is_stmt = defstmt; \ - } while(0) - -#define LINE(x) (lbase + (((x) - opbase) % lrange)) -#define ADDRESS(x) ((((x) - opbase) / lrange) * minlen) - - p++; - printf("\n"); - printf(" Line Number Statements:\n"); - - RESET_REGISTERS; - - while (p < pe) { - - if (*p == 0) { - /* - * Extended Opcodes. - */ - p++; - opsize = _decode_uleb128(&p, pe); - printf(" Extended opcode %u: ", *p); - switch (*p) { - case DW_LNE_end_sequence: - p++; - RESET_REGISTERS; - printf("End of Sequence\n"); - break; - case DW_LNE_set_address: - p++; - address = re->dw_decode(&p, - pointer_size); - printf("set Address to %#jx\n", - (uintmax_t) address); - break; - case DW_LNE_define_file: - p++; - pn = (char *) p; - p += strlen(pn) + 1; - dirndx = _decode_uleb128(&p, pe); - mtime = _decode_uleb128(&p, pe); - fsize = _decode_uleb128(&p, pe); - printf("define new file: %s\n", pn); - break; - default: - /* Unrecognized extened opcodes. */ - p += opsize; - printf("unknown opcode\n"); - } - } else if (*p > 0 && *p < opbase) { - /* - * Standard Opcodes. - */ - switch(*p++) { - case DW_LNS_copy: - printf(" Copy\n"); - break; - case DW_LNS_advance_pc: - udelta = _decode_uleb128(&p, pe) * - minlen; - address += udelta; - printf(" Advance PC by %ju to %#jx\n", - (uintmax_t) udelta, - (uintmax_t) address); - break; - case DW_LNS_advance_line: - sdelta = _decode_sleb128(&p, pe); - line += sdelta; - printf(" Advance Line by %jd to %ju\n", - (intmax_t) sdelta, - (uintmax_t) line); - break; - case DW_LNS_set_file: - file = _decode_uleb128(&p, pe); - printf(" Set File to %ju\n", - (uintmax_t) file); - break; - case DW_LNS_set_column: - column = _decode_uleb128(&p, pe); - printf(" Set Column to %ju\n", - (uintmax_t) column); - break; - case DW_LNS_negate_stmt: - is_stmt = !is_stmt; - printf(" Set is_stmt to %d\n", is_stmt); - break; - case DW_LNS_set_basic_block: - printf(" Set basic block flag\n"); - break; - case DW_LNS_const_add_pc: - address += ADDRESS(255); - printf(" Advance PC by constant %ju" - " to %#jx\n", - (uintmax_t) ADDRESS(255), - (uintmax_t) address); - break; - case DW_LNS_fixed_advance_pc: - udelta = re->dw_decode(&p, 2); - address += udelta; - printf(" Advance PC by fixed value " - "%ju to %#jx\n", - (uintmax_t) udelta, - (uintmax_t) address); - break; - case DW_LNS_set_prologue_end: - printf(" Set prologue end flag\n"); - break; - case DW_LNS_set_epilogue_begin: - printf(" Set epilogue begin flag\n"); - break; - case DW_LNS_set_isa: - isa = _decode_uleb128(&p, pe); - printf(" Set isa to %ju\n", - (uintmax_t) isa); - break; - default: - /* Unrecognized extended opcodes. */ - printf(" Unknown extended opcode %u\n", - *(p - 1)); - break; - } - - } else { - /* - * Special Opcodes. - */ - line += LINE(*p); - address += ADDRESS(*p); - printf(" Special opcode %u: advance Address " - "by %ju to %#jx and Line by %jd to %ju\n", - *p - opbase, (uintmax_t) ADDRESS(*p), - (uintmax_t) address, (intmax_t) LINE(*p), - (uintmax_t) line); - p++; - } - - - } - } - if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); - -#undef RESET_REGISTERS -#undef LINE -#undef ADDRESS -} - -static void -dump_dwarf_line_decoded(struct readelf *re) -{ - Dwarf_Die die; - Dwarf_Line *linebuf, ln; - Dwarf_Addr lineaddr; - Dwarf_Signed linecount, srccount; - Dwarf_Unsigned lineno, fn; - Dwarf_Error de; - const char *dir, *file; - char **srcfiles; - int i, ret; - - printf("Decoded dump of debug contents of section .debug_line:\n\n"); - while ((ret = dwarf_next_cu_header(re->dbg, NULL, NULL, NULL, NULL, - NULL, &de)) == DW_DLV_OK) { - if (dwarf_siblingof(re->dbg, NULL, &die, &de) != DW_DLV_OK) - continue; - if (dwarf_attrval_string(die, DW_AT_name, &file, &de) != - DW_DLV_OK) - file = NULL; - if (dwarf_attrval_string(die, DW_AT_comp_dir, &dir, &de) != - DW_DLV_OK) - dir = NULL; - printf("CU: "); - if (dir && file && file[0] != '/') - printf("%s/", dir); - if (file) - printf("%s", file); - putchar('\n'); - printf("%-37s %11s %s\n", "Filename", "Line Number", - "Starting Address"); - if (dwarf_srclines(die, &linebuf, &linecount, &de) != DW_DLV_OK) - continue; - if (dwarf_srcfiles(die, &srcfiles, &srccount, &de) != DW_DLV_OK) - continue; - for (i = 0; i < linecount; i++) { - ln = linebuf[i]; - if (dwarf_line_srcfileno(ln, &fn, &de) != DW_DLV_OK) - continue; - if (dwarf_lineno(ln, &lineno, &de) != DW_DLV_OK) - continue; - if (dwarf_lineaddr(ln, &lineaddr, &de) != DW_DLV_OK) - continue; - printf("%-37s %11ju %#18jx\n", - basename(srcfiles[fn - 1]), (uintmax_t) lineno, - (uintmax_t) lineaddr); - } - putchar('\n'); - } -} - -static void -dump_dwarf_die(struct readelf *re, Dwarf_Die die, int level) -{ - Dwarf_Attribute *attr_list; - Dwarf_Die ret_die; - Dwarf_Off dieoff, cuoff, culen, attroff; - Dwarf_Unsigned ate, lang, v_udata, v_sig; - Dwarf_Signed attr_count, v_sdata; - Dwarf_Off v_off; - Dwarf_Addr v_addr; - Dwarf_Half tag, attr, form; - Dwarf_Block *v_block; - Dwarf_Bool v_bool, is_info; - Dwarf_Sig8 v_sig8; - Dwarf_Error de; - Dwarf_Ptr v_expr; - const char *tag_str, *attr_str, *ate_str, *lang_str; - char unk_tag[32], unk_attr[32]; - char *v_str; - uint8_t *b, *p; - int i, j, abc, ret; - - if (dwarf_dieoffset(die, &dieoff, &de) != DW_DLV_OK) { - warnx("dwarf_dieoffset failed: %s", dwarf_errmsg(de)); - goto cont_search; - } - - printf(" <%d><%jx>: ", level, (uintmax_t) dieoff); - - if (dwarf_die_CU_offset_range(die, &cuoff, &culen, &de) != DW_DLV_OK) { - warnx("dwarf_die_CU_offset_range failed: %s", - dwarf_errmsg(de)); - cuoff = 0; - } - - abc = dwarf_die_abbrev_code(die); - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", dwarf_errmsg(de)); - goto cont_search; - } - if (dwarf_get_TAG_name(tag, &tag_str) != DW_DLV_OK) { - snprintf(unk_tag, sizeof(unk_tag), "[Unknown Tag: %#x]", tag); - tag_str = unk_tag; - } - - printf("Abbrev Number: %d (%s)\n", abc, tag_str); - - if ((ret = dwarf_attrlist(die, &attr_list, &attr_count, &de)) != - DW_DLV_OK) { - if (ret == DW_DLV_ERROR) - warnx("dwarf_attrlist failed: %s", dwarf_errmsg(de)); - goto cont_search; - } - - for (i = 0; i < attr_count; i++) { - if (dwarf_whatform(attr_list[i], &form, &de) != DW_DLV_OK) { - warnx("dwarf_whatform failed: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_whatattr(attr_list[i], &attr, &de) != DW_DLV_OK) { - warnx("dwarf_whatattr failed: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_get_AT_name(attr, &attr_str) != DW_DLV_OK) { - snprintf(unk_attr, sizeof(unk_attr), - "[Unknown AT: %#x]", attr); - attr_str = unk_attr; - } - if (dwarf_attroffset(attr_list[i], &attroff, &de) != - DW_DLV_OK) { - warnx("dwarf_attroffset failed: %s", dwarf_errmsg(de)); - attroff = 0; - } - printf(" <%jx> %-18s: ", (uintmax_t) attroff, attr_str); - switch (form) { - case DW_FORM_ref_addr: - case DW_FORM_sec_offset: - if (dwarf_global_formref(attr_list[i], &v_off, &de) != - DW_DLV_OK) { - warnx("dwarf_global_formref failed: %s", - dwarf_errmsg(de)); - continue; - } - if (form == DW_FORM_ref_addr) - printf("<0x%jx>", (uintmax_t) v_off); - else - printf("0x%jx", (uintmax_t) v_off); - break; - - case DW_FORM_ref1: - case DW_FORM_ref2: - case DW_FORM_ref4: - case DW_FORM_ref8: - case DW_FORM_ref_udata: - if (dwarf_formref(attr_list[i], &v_off, &de) != - DW_DLV_OK) { - warnx("dwarf_formref failed: %s", - dwarf_errmsg(de)); - continue; - } - v_off += cuoff; - printf("<0x%jx>", (uintmax_t) v_off); - break; - - case DW_FORM_addr: - if (dwarf_formaddr(attr_list[i], &v_addr, &de) != - DW_DLV_OK) { - warnx("dwarf_formaddr failed: %s", - dwarf_errmsg(de)); - continue; - } - printf("%#jx", (uintmax_t) v_addr); - break; - - case DW_FORM_data1: - case DW_FORM_data2: - case DW_FORM_data4: - case DW_FORM_data8: - case DW_FORM_udata: - if (dwarf_formudata(attr_list[i], &v_udata, &de) != - DW_DLV_OK) { - warnx("dwarf_formudata failed: %s", - dwarf_errmsg(de)); - continue; - } - if (attr == DW_AT_high_pc) - printf("0x%jx", (uintmax_t) v_udata); - else - printf("%ju", (uintmax_t) v_udata); - break; - - case DW_FORM_sdata: - if (dwarf_formsdata(attr_list[i], &v_sdata, &de) != - DW_DLV_OK) { - warnx("dwarf_formudata failed: %s", - dwarf_errmsg(de)); - continue; - } - printf("%jd", (intmax_t) v_sdata); - break; - - case DW_FORM_flag: - if (dwarf_formflag(attr_list[i], &v_bool, &de) != - DW_DLV_OK) { - warnx("dwarf_formflag failed: %s", - dwarf_errmsg(de)); - continue; - } - printf("%jd", (intmax_t) v_bool); - break; - - case DW_FORM_flag_present: - putchar('1'); - break; - - case DW_FORM_string: - case DW_FORM_strp: - if (dwarf_formstring(attr_list[i], &v_str, &de) != - DW_DLV_OK) { - warnx("dwarf_formstring failed: %s", - dwarf_errmsg(de)); - continue; - } - if (form == DW_FORM_string) - printf("%s", v_str); - else - printf("(indirect string) %s", v_str); - break; - - case DW_FORM_block: - case DW_FORM_block1: - case DW_FORM_block2: - case DW_FORM_block4: - if (dwarf_formblock(attr_list[i], &v_block, &de) != - DW_DLV_OK) { - warnx("dwarf_formblock failed: %s", - dwarf_errmsg(de)); - continue; - } - printf("%ju byte block:", (uintmax_t) v_block->bl_len); - b = v_block->bl_data; - for (j = 0; (Dwarf_Unsigned) j < v_block->bl_len; j++) - printf(" %x", b[j]); - printf("\t("); - dump_dwarf_block(re, v_block->bl_data, v_block->bl_len); - putchar(')'); - break; - - case DW_FORM_exprloc: - if (dwarf_formexprloc(attr_list[i], &v_udata, &v_expr, - &de) != DW_DLV_OK) { - warnx("dwarf_formexprloc failed: %s", - dwarf_errmsg(de)); - continue; - } - printf("%ju byte block:", (uintmax_t) v_udata); - b = v_expr; - for (j = 0; (Dwarf_Unsigned) j < v_udata; j++) - printf(" %x", b[j]); - printf("\t("); - dump_dwarf_block(re, v_expr, v_udata); - putchar(')'); - break; - - case DW_FORM_ref_sig8: - if (dwarf_formsig8(attr_list[i], &v_sig8, &de) != - DW_DLV_OK) { - warnx("dwarf_formsig8 failed: %s", - dwarf_errmsg(de)); - continue; - } - p = (uint8_t *)(uintptr_t) &v_sig8.signature[0]; - v_sig = re->dw_decode(&p, 8); - printf("signature: 0x%jx", (uintmax_t) v_sig); - } - switch (attr) { - case DW_AT_encoding: - if (dwarf_attrval_unsigned(die, attr, &ate, &de) != - DW_DLV_OK) - break; - if (dwarf_get_ATE_name(ate, &ate_str) != DW_DLV_OK) - ate_str = "DW_ATE_UNKNOWN"; - printf("\t(%s)", &ate_str[strlen("DW_ATE_")]); - break; - - case DW_AT_language: - if (dwarf_attrval_unsigned(die, attr, &lang, &de) != - DW_DLV_OK) - break; - if (dwarf_get_LANG_name(lang, &lang_str) != DW_DLV_OK) - break; - printf("\t(%s)", &lang_str[strlen("DW_LANG_")]); - break; - - case DW_AT_location: - case DW_AT_string_length: - case DW_AT_return_addr: - case DW_AT_data_member_location: - case DW_AT_frame_base: - case DW_AT_segment: - case DW_AT_static_link: - case DW_AT_use_location: - case DW_AT_vtable_elem_location: - switch (form) { - case DW_FORM_data4: - case DW_FORM_data8: - case DW_FORM_sec_offset: - printf("\t(location list)"); - break; - default: - break; - } - - default: - break; - } - putchar('\n'); - } - - -cont_search: - /* Search children. */ - ret = dwarf_child(die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_child: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - dump_dwarf_die(re, ret_die, level + 1); - - /* Search sibling. */ - is_info = dwarf_get_die_infotypes_flag(die); - ret = dwarf_siblingof_b(re->dbg, die, &ret_die, is_info, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_siblingof: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - dump_dwarf_die(re, ret_die, level); - - dwarf_dealloc(re->dbg, die, DW_DLA_DIE); -} - -static void -set_cu_context(struct readelf *re, Dwarf_Half psize, Dwarf_Half osize, - Dwarf_Half ver) -{ - - re->cu_psize = psize; - re->cu_osize = osize; - re->cu_ver = ver; -} - -static void -dump_dwarf_info(struct readelf *re, Dwarf_Bool is_info) -{ - struct section *s; - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Half tag, version, pointer_size, off_size; - Dwarf_Off cu_offset, cu_length; - Dwarf_Off aboff; - Dwarf_Unsigned typeoff; - Dwarf_Sig8 sig8; - Dwarf_Unsigned sig; - uint8_t *p; - const char *sn; - int i, ret; - - sn = is_info ? ".debug_info" : ".debug_types"; - - s = NULL; - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && !strcmp(s->name, sn)) - break; - } - if ((size_t) i >= re->shnum) - return; - - do { - printf("\nDump of debug contents of section %s:\n", sn); - - while ((ret = dwarf_next_cu_header_c(re->dbg, is_info, NULL, - &version, &aboff, &pointer_size, &off_size, NULL, &sig8, - &typeoff, NULL, &de)) == DW_DLV_OK) { - set_cu_context(re, pointer_size, off_size, version); - die = NULL; - while (dwarf_siblingof_b(re->dbg, die, &die, is_info, - &de) == DW_DLV_OK) { - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", - dwarf_errmsg(de)); - continue; - } - /* XXX: What about DW_TAG_partial_unit? */ - if ((is_info && tag == DW_TAG_compile_unit) || - (!is_info && tag == DW_TAG_type_unit)) - break; - } - if (die == NULL && is_info) { - warnx("could not find DW_TAG_compile_unit " - "die"); - continue; - } else if (die == NULL && !is_info) { - warnx("could not find DW_TAG_type_unit die"); - continue; - } - - if (dwarf_die_CU_offset_range(die, &cu_offset, - &cu_length, &de) != DW_DLV_OK) { - warnx("dwarf_die_CU_offset failed: %s", - dwarf_errmsg(de)); - continue; - } - - cu_length -= off_size == 4 ? 4 : 12; - - sig = 0; - if (!is_info) { - p = (uint8_t *)(uintptr_t) &sig8.signature[0]; - sig = re->dw_decode(&p, 8); - } - - printf("\n Type Unit @ offset 0x%jx:\n", - (uintmax_t) cu_offset); - printf(" Length:\t\t%#jx (%d-bit)\n", - (uintmax_t) cu_length, off_size == 4 ? 32 : 64); - printf(" Version:\t\t%u\n", version); - printf(" Abbrev Offset:\t0x%jx\n", - (uintmax_t) aboff); - printf(" Pointer Size:\t%u\n", pointer_size); - if (!is_info) { - printf(" Signature:\t\t0x%016jx\n", - (uintmax_t) sig); - printf(" Type Offset:\t0x%jx\n", - (uintmax_t) typeoff); - } - - dump_dwarf_die(re, die, 0); - } - if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); - if (is_info) - break; - } while (dwarf_next_types_section(re->dbg, &de) == DW_DLV_OK); -} - -static void -dump_dwarf_abbrev(struct readelf *re) -{ - Dwarf_Abbrev ab; - Dwarf_Off aboff, atoff; - Dwarf_Unsigned length, attr_count; - Dwarf_Signed flag, form; - Dwarf_Half tag, attr; - Dwarf_Error de; - const char *tag_str, *attr_str, *form_str; - char unk_tag[32], unk_attr[32], unk_form[32]; - int i, j, ret; - - printf("\nContents of section .debug_abbrev:\n\n"); - - while ((ret = dwarf_next_cu_header(re->dbg, NULL, NULL, &aboff, - NULL, NULL, &de)) == DW_DLV_OK) { - printf(" Number TAG\n"); - i = 0; - while ((ret = dwarf_get_abbrev(re->dbg, aboff, &ab, &length, - &attr_count, &de)) == DW_DLV_OK) { - if (length == 1) { - dwarf_dealloc(re->dbg, ab, DW_DLA_ABBREV); - break; - } - aboff += length; - printf("%4d", ++i); - if (dwarf_get_abbrev_tag(ab, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_get_abbrev_tag failed: %s", - dwarf_errmsg(de)); - goto next_abbrev; - } - if (dwarf_get_TAG_name(tag, &tag_str) != DW_DLV_OK) { - snprintf(unk_tag, sizeof(unk_tag), - "[Unknown Tag: %#x]", tag); - tag_str = unk_tag; - } - if (dwarf_get_abbrev_children_flag(ab, &flag, &de) != - DW_DLV_OK) { - warnx("dwarf_get_abbrev_children_flag failed:" - " %s", dwarf_errmsg(de)); - goto next_abbrev; - } - printf(" %s %s\n", tag_str, - flag ? "[has children]" : "[no children]"); - for (j = 0; (Dwarf_Unsigned) j < attr_count; j++) { - if (dwarf_get_abbrev_entry(ab, (Dwarf_Signed) j, - &attr, &form, &atoff, &de) != DW_DLV_OK) { - warnx("dwarf_get_abbrev_entry failed:" - " %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_get_AT_name(attr, &attr_str) != - DW_DLV_OK) { - snprintf(unk_attr, sizeof(unk_attr), - "[Unknown AT: %#x]", attr); - attr_str = unk_attr; - } - if (dwarf_get_FORM_name(form, &form_str) != - DW_DLV_OK) { - snprintf(unk_form, sizeof(unk_form), - "[Unknown Form: %#x]", - (Dwarf_Half) form); - form_str = unk_form; - } - printf(" %-18s %s\n", attr_str, form_str); - } - next_abbrev: - dwarf_dealloc(re->dbg, ab, DW_DLA_ABBREV); - } - if (ret != DW_DLV_OK) - warnx("dwarf_get_abbrev: %s", dwarf_errmsg(de)); - } - if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); -} - -static void -dump_dwarf_pubnames(struct readelf *re) -{ - struct section *s; - Dwarf_Off die_off; - Dwarf_Unsigned offset, length, nt_cu_offset, nt_cu_length; - Dwarf_Signed cnt; - Dwarf_Global *globs; - Dwarf_Half nt_version; - Dwarf_Error de; - Elf_Data *d; - char *glob_name; - int i, dwarf_size, elferr; - - printf("\nContents of the .debug_pubnames section:\n"); - - s = NULL; - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && !strcmp(s->name, ".debug_pubnames")) - break; - } - if ((size_t) i >= re->shnum) - return; - - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - return; - } - if (d->d_size <= 0) - return; - - /* Read in .debug_pubnames section table header. */ - offset = 0; - length = re->dw_read(d, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = re->dw_read(d, &offset, 8); - } else - dwarf_size = 4; - - if (length > d->d_size - offset) { - warnx("invalid .dwarf_pubnames section"); - return; - } - - nt_version = re->dw_read(d, &offset, 2); - nt_cu_offset = re->dw_read(d, &offset, dwarf_size); - nt_cu_length = re->dw_read(d, &offset, dwarf_size); - printf(" Length:\t\t\t\t%ju\n", (uintmax_t) length); - printf(" Version:\t\t\t\t%u\n", nt_version); - printf(" Offset into .debug_info section:\t%ju\n", - (uintmax_t) nt_cu_offset); - printf(" Size of area in .debug_info section:\t%ju\n", - (uintmax_t) nt_cu_length); - - if (dwarf_get_globals(re->dbg, &globs, &cnt, &de) != DW_DLV_OK) { - warnx("dwarf_get_globals failed: %s", dwarf_errmsg(de)); - return; - } - - printf("\n Offset Name\n"); - for (i = 0; i < cnt; i++) { - if (dwarf_globname(globs[i], &glob_name, &de) != DW_DLV_OK) { - warnx("dwarf_globname failed: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_global_die_offset(globs[i], &die_off, &de) != - DW_DLV_OK) { - warnx("dwarf_global_die_offset failed: %s", - dwarf_errmsg(de)); - continue; - } - printf(" %-11ju %s\n", (uintmax_t) die_off, glob_name); - } -} - -static void -dump_dwarf_aranges(struct readelf *re) -{ - struct section *s; - Dwarf_Arange *aranges; - Dwarf_Addr start; - Dwarf_Unsigned offset, length, as_cu_offset; - Dwarf_Off die_off; - Dwarf_Signed cnt; - Dwarf_Half as_version, as_addrsz, as_segsz; - Dwarf_Error de; - Elf_Data *d; - int i, dwarf_size, elferr; - - printf("\nContents of section .debug_aranges:\n"); - - s = NULL; - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && !strcmp(s->name, ".debug_aranges")) - break; - } - if ((size_t) i >= re->shnum) - return; - - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - return; - } - if (d->d_size <= 0) - return; - - /* Read in the .debug_aranges section table header. */ - offset = 0; - length = re->dw_read(d, &offset, 4); - if (length == 0xffffffff) { - dwarf_size = 8; - length = re->dw_read(d, &offset, 8); - } else - dwarf_size = 4; - - if (length > d->d_size - offset) { - warnx("invalid .dwarf_aranges section"); - return; - } - - as_version = re->dw_read(d, &offset, 2); - as_cu_offset = re->dw_read(d, &offset, dwarf_size); - as_addrsz = re->dw_read(d, &offset, 1); - as_segsz = re->dw_read(d, &offset, 1); - - printf(" Length:\t\t\t%ju\n", (uintmax_t) length); - printf(" Version:\t\t\t%u\n", as_version); - printf(" Offset into .debug_info:\t%ju\n", (uintmax_t) as_cu_offset); - printf(" Pointer Size:\t\t\t%u\n", as_addrsz); - printf(" Segment Size:\t\t\t%u\n", as_segsz); - - if (dwarf_get_aranges(re->dbg, &aranges, &cnt, &de) != DW_DLV_OK) { - warnx("dwarf_get_aranges failed: %s", dwarf_errmsg(de)); - return; - } - - printf("\n Address Length\n"); - for (i = 0; i < cnt; i++) { - if (dwarf_get_arange_info(aranges[i], &start, &length, - &die_off, &de) != DW_DLV_OK) { - warnx("dwarf_get_arange_info failed: %s", - dwarf_errmsg(de)); - continue; - } - printf(" %08jx %ju\n", (uintmax_t) start, - (uintmax_t) length); - } -} - -static void -dump_dwarf_ranges_foreach(struct readelf *re, Dwarf_Die die, Dwarf_Addr base) -{ - Dwarf_Attribute *attr_list; - Dwarf_Ranges *ranges; - Dwarf_Die ret_die; - Dwarf_Error de; - Dwarf_Addr base0; - Dwarf_Half attr; - Dwarf_Signed attr_count, cnt; - Dwarf_Unsigned off, bytecnt; - int i, j, ret; - - if ((ret = dwarf_attrlist(die, &attr_list, &attr_count, &de)) != - DW_DLV_OK) { - if (ret == DW_DLV_ERROR) - warnx("dwarf_attrlist failed: %s", dwarf_errmsg(de)); - goto cont_search; - } - - for (i = 0; i < attr_count; i++) { - if (dwarf_whatattr(attr_list[i], &attr, &de) != DW_DLV_OK) { - warnx("dwarf_whatattr failed: %s", dwarf_errmsg(de)); - continue; - } - if (attr != DW_AT_ranges) - continue; - if (dwarf_formudata(attr_list[i], &off, &de) != DW_DLV_OK) { - warnx("dwarf_formudata failed: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_get_ranges(re->dbg, (Dwarf_Off) off, &ranges, &cnt, - &bytecnt, &de) != DW_DLV_OK) - continue; - base0 = base; - for (j = 0; j < cnt; j++) { - printf(" %08jx ", (uintmax_t) off); - if (ranges[j].dwr_type == DW_RANGES_END) { - printf("%s\n", ""); - continue; - } else if (ranges[j].dwr_type == - DW_RANGES_ADDRESS_SELECTION) { - base0 = ranges[j].dwr_addr2; - continue; - } - if (re->ec == ELFCLASS32) - printf("%08jx %08jx\n", - (uintmax_t) (ranges[j].dwr_addr1 + base0), - (uintmax_t) (ranges[j].dwr_addr2 + base0)); - else - printf("%016jx %016jx\n", - (uintmax_t) (ranges[j].dwr_addr1 + base0), - (uintmax_t) (ranges[j].dwr_addr2 + base0)); - } - } - -cont_search: - /* Search children. */ - ret = dwarf_child(die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_child: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - dump_dwarf_ranges_foreach(re, ret_die, base); - - /* Search sibling. */ - ret = dwarf_siblingof(re->dbg, die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_siblingof: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - dump_dwarf_ranges_foreach(re, ret_die, base); -} - -static void -dump_dwarf_ranges(struct readelf *re) -{ - Dwarf_Ranges *ranges; - Dwarf_Die die; - Dwarf_Signed cnt; - Dwarf_Unsigned bytecnt; - Dwarf_Half tag; - Dwarf_Error de; - Dwarf_Unsigned lowpc; - int ret; - - if (dwarf_get_ranges(re->dbg, 0, &ranges, &cnt, &bytecnt, &de) != - DW_DLV_OK) - return; - - printf("Contents of the .debug_ranges section:\n\n"); - if (re->ec == ELFCLASS32) - printf(" %-8s %-8s %s\n", "Offset", "Begin", "End"); - else - printf(" %-8s %-16s %s\n", "Offset", "Begin", "End"); - - while ((ret = dwarf_next_cu_header(re->dbg, NULL, NULL, NULL, NULL, - NULL, &de)) == DW_DLV_OK) { - die = NULL; - if (dwarf_siblingof(re->dbg, die, &die, &de) != DW_DLV_OK) - continue; - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", dwarf_errmsg(de)); - continue; - } - /* XXX: What about DW_TAG_partial_unit? */ - lowpc = 0; - if (tag == DW_TAG_compile_unit) { - if (dwarf_attrval_unsigned(die, DW_AT_low_pc, &lowpc, - &de) != DW_DLV_OK) - lowpc = 0; - } - - dump_dwarf_ranges_foreach(re, die, (Dwarf_Addr) lowpc); - } - putchar('\n'); -} - -static void -dump_dwarf_macinfo(struct readelf *re) -{ - Dwarf_Unsigned offset; - Dwarf_Signed cnt; - Dwarf_Macro_Details *md; - Dwarf_Error de; - const char *mi_str; - char unk_mi[32]; - int i; - -#define _MAX_MACINFO_ENTRY 65535 - - printf("\nContents of section .debug_macinfo:\n\n"); - - offset = 0; - while (dwarf_get_macro_details(re->dbg, offset, _MAX_MACINFO_ENTRY, - &cnt, &md, &de) == DW_DLV_OK) { - for (i = 0; i < cnt; i++) { - offset = md[i].dmd_offset + 1; - if (md[i].dmd_type == 0) - break; - if (dwarf_get_MACINFO_name(md[i].dmd_type, &mi_str) != - DW_DLV_OK) { - snprintf(unk_mi, sizeof(unk_mi), - "[Unknown MACINFO: %#x]", md[i].dmd_type); - mi_str = unk_mi; - } - printf(" %s", mi_str); - switch (md[i].dmd_type) { - case DW_MACINFO_define: - case DW_MACINFO_undef: - printf(" - lineno : %jd macro : %s\n", - (intmax_t) md[i].dmd_lineno, - md[i].dmd_macro); - break; - case DW_MACINFO_start_file: - printf(" - lineno : %jd filenum : %jd\n", - (intmax_t) md[i].dmd_lineno, - (intmax_t) md[i].dmd_fileindex); - break; - default: - putchar('\n'); - break; - } - } - } - -#undef _MAX_MACINFO_ENTRY -} - -static void -dump_dwarf_frame_inst(struct readelf *re, Dwarf_Cie cie, uint8_t *insts, - Dwarf_Unsigned len, Dwarf_Unsigned caf, Dwarf_Signed daf, Dwarf_Addr pc, - Dwarf_Debug dbg) -{ - Dwarf_Frame_Op *oplist; - Dwarf_Signed opcnt, delta; - Dwarf_Small op; - Dwarf_Error de; - const char *op_str; - char unk_op[32]; - int i; - - if (dwarf_expand_frame_instructions(cie, insts, len, &oplist, - &opcnt, &de) != DW_DLV_OK) { - warnx("dwarf_expand_frame_instructions failed: %s", - dwarf_errmsg(de)); - return; - } - - for (i = 0; i < opcnt; i++) { - if (oplist[i].fp_base_op != 0) - op = oplist[i].fp_base_op << 6; - else - op = oplist[i].fp_extended_op; - if (dwarf_get_CFA_name(op, &op_str) != DW_DLV_OK) { - snprintf(unk_op, sizeof(unk_op), "[Unknown CFA: %#x]", - op); - op_str = unk_op; - } - printf(" %s", op_str); - switch (op) { - case DW_CFA_advance_loc: - delta = oplist[i].fp_offset * caf; - pc += delta; - printf(": %ju to %08jx", (uintmax_t) delta, - (uintmax_t) pc); - break; - case DW_CFA_offset: - case DW_CFA_offset_extended: - case DW_CFA_offset_extended_sf: - delta = oplist[i].fp_offset * daf; - printf(": r%u (%s) at cfa%+jd", oplist[i].fp_register, - dwarf_regname(re, oplist[i].fp_register), - (intmax_t) delta); - break; - case DW_CFA_restore: - printf(": r%u (%s)", oplist[i].fp_register, - dwarf_regname(re, oplist[i].fp_register)); - break; - case DW_CFA_set_loc: - pc = oplist[i].fp_offset; - printf(": to %08jx", (uintmax_t) pc); - break; - case DW_CFA_advance_loc1: - case DW_CFA_advance_loc2: - case DW_CFA_advance_loc4: - pc += oplist[i].fp_offset; - printf(": %jd to %08jx", (intmax_t) oplist[i].fp_offset, - (uintmax_t) pc); - break; - case DW_CFA_def_cfa: - printf(": r%u (%s) ofs %ju", oplist[i].fp_register, - dwarf_regname(re, oplist[i].fp_register), - (uintmax_t) oplist[i].fp_offset); - break; - case DW_CFA_def_cfa_sf: - printf(": r%u (%s) ofs %jd", oplist[i].fp_register, - dwarf_regname(re, oplist[i].fp_register), - (intmax_t) (oplist[i].fp_offset * daf)); - break; - case DW_CFA_def_cfa_register: - printf(": r%u (%s)", oplist[i].fp_register, - dwarf_regname(re, oplist[i].fp_register)); - break; - case DW_CFA_def_cfa_offset: - printf(": %ju", (uintmax_t) oplist[i].fp_offset); - break; - case DW_CFA_def_cfa_offset_sf: - printf(": %jd", (intmax_t) (oplist[i].fp_offset * daf)); - break; - default: - break; - } - putchar('\n'); - } - - dwarf_dealloc(dbg, oplist, DW_DLA_FRAME_BLOCK); -} - -static char * -get_regoff_str(struct readelf *re, Dwarf_Half reg, Dwarf_Addr off) -{ - static char rs[16]; - - if (reg == DW_FRAME_UNDEFINED_VAL || reg == DW_FRAME_REG_INITIAL_VALUE) - snprintf(rs, sizeof(rs), "%c", 'u'); - else if (reg == DW_FRAME_CFA_COL) - snprintf(rs, sizeof(rs), "c%+jd", (intmax_t) off); - else - snprintf(rs, sizeof(rs), "%s%+jd", dwarf_regname(re, reg), - (intmax_t) off); - - return (rs); -} - -static int -dump_dwarf_frame_regtable(struct readelf *re, Dwarf_Fde fde, Dwarf_Addr pc, - Dwarf_Unsigned func_len, Dwarf_Half cie_ra) -{ - Dwarf_Regtable rt; - Dwarf_Addr row_pc, end_pc, pre_pc, cur_pc; - Dwarf_Error de; - char *vec; - int i; - -#define BIT_SET(v, n) (v[(n)>>3] |= 1U << ((n) & 7)) -#define BIT_CLR(v, n) (v[(n)>>3] &= ~(1U << ((n) & 7))) -#define BIT_ISSET(v, n) (v[(n)>>3] & (1U << ((n) & 7))) -#define RT(x) rt.rules[(x)] - - vec = calloc((DW_REG_TABLE_SIZE + 7) / 8, 1); - if (vec == NULL) - err(EXIT_FAILURE, "calloc failed"); - - pre_pc = ~((Dwarf_Addr) 0); - cur_pc = pc; - end_pc = pc + func_len; - for (; cur_pc < end_pc; cur_pc++) { - if (dwarf_get_fde_info_for_all_regs(fde, cur_pc, &rt, &row_pc, - &de) != DW_DLV_OK) { - free(vec); - warnx("dwarf_get_fde_info_for_all_regs failed: %s\n", - dwarf_errmsg(de)); - return (-1); - } - if (row_pc == pre_pc) - continue; - pre_pc = row_pc; - for (i = 1; i < DW_REG_TABLE_SIZE; i++) { - if (rt.rules[i].dw_regnum != DW_FRAME_REG_INITIAL_VALUE) - BIT_SET(vec, i); - } - } - - printf(" LOC CFA "); - for (i = 1; i < DW_REG_TABLE_SIZE; i++) { - if (BIT_ISSET(vec, i)) { - if ((Dwarf_Half) i == cie_ra) - printf("ra "); - else - printf("%-5s", - dwarf_regname(re, (unsigned int) i)); - } - } - putchar('\n'); - - pre_pc = ~((Dwarf_Addr) 0); - cur_pc = pc; - end_pc = pc + func_len; - for (; cur_pc < end_pc; cur_pc++) { - if (dwarf_get_fde_info_for_all_regs(fde, cur_pc, &rt, &row_pc, - &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_info_for_all_regs failed: %s\n", - dwarf_errmsg(de)); - return (-1); - } - if (row_pc == pre_pc) - continue; - pre_pc = row_pc; - printf("%08jx ", (uintmax_t) row_pc); - printf("%-8s ", get_regoff_str(re, RT(0).dw_regnum, - RT(0).dw_offset)); - for (i = 1; i < DW_REG_TABLE_SIZE; i++) { - if (BIT_ISSET(vec, i)) { - printf("%-5s", get_regoff_str(re, - RT(i).dw_regnum, RT(i).dw_offset)); - } - } - putchar('\n'); - } - - free(vec); - - return (0); - -#undef BIT_SET -#undef BIT_CLR -#undef BIT_ISSET -#undef RT -} - -static void -dump_dwarf_frame_section(struct readelf *re, struct section *s, int alt) -{ - Dwarf_Cie *cie_list, cie, pre_cie; - Dwarf_Fde *fde_list, fde; - Dwarf_Off cie_offset, fde_offset; - Dwarf_Unsigned cie_length, fde_instlen; - Dwarf_Unsigned cie_caf, cie_daf, cie_instlen, func_len, fde_length; - Dwarf_Signed cie_count, fde_count, cie_index; - Dwarf_Addr low_pc; - Dwarf_Half cie_ra; - Dwarf_Small cie_version; - Dwarf_Ptr fde_addr, fde_inst, cie_inst; - char *cie_aug, c; - int i, eh_frame; - Dwarf_Error de; - - printf("\nThe section %s contains:\n\n", s->name); - - if (!strcmp(s->name, ".debug_frame")) { - eh_frame = 0; - if (dwarf_get_fde_list(re->dbg, &cie_list, &cie_count, - &fde_list, &fde_count, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_list failed: %s", - dwarf_errmsg(de)); - return; - } - } else if (!strcmp(s->name, ".eh_frame")) { - eh_frame = 1; - if (dwarf_get_fde_list_eh(re->dbg, &cie_list, &cie_count, - &fde_list, &fde_count, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_list_eh failed: %s", - dwarf_errmsg(de)); - return; - } - } else - return; - - pre_cie = NULL; - for (i = 0; i < fde_count; i++) { - if (dwarf_get_fde_n(fde_list, i, &fde, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_n failed: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_get_cie_of_fde(fde, &cie, &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_n failed: %s", dwarf_errmsg(de)); - continue; - } - if (dwarf_get_fde_range(fde, &low_pc, &func_len, &fde_addr, - &fde_length, &cie_offset, &cie_index, &fde_offset, - &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_range failed: %s", - dwarf_errmsg(de)); - continue; - } - if (dwarf_get_fde_instr_bytes(fde, &fde_inst, &fde_instlen, - &de) != DW_DLV_OK) { - warnx("dwarf_get_fde_instr_bytes failed: %s", - dwarf_errmsg(de)); - continue; - } - if (pre_cie == NULL || cie != pre_cie) { - pre_cie = cie; - if (dwarf_get_cie_info(cie, &cie_length, &cie_version, - &cie_aug, &cie_caf, &cie_daf, &cie_ra, - &cie_inst, &cie_instlen, &de) != DW_DLV_OK) { - warnx("dwarf_get_cie_info failed: %s", - dwarf_errmsg(de)); - continue; - } - printf("%08jx %08jx %8.8jx CIE", - (uintmax_t) cie_offset, - (uintmax_t) cie_length, - (uintmax_t) (eh_frame ? 0 : ~0U)); - if (!alt) { - putchar('\n'); - printf(" Version:\t\t\t%u\n", cie_version); - printf(" Augmentation:\t\t\t\""); - while ((c = *cie_aug++) != '\0') - putchar(c); - printf("\"\n"); - printf(" Code alignment factor:\t%ju\n", - (uintmax_t) cie_caf); - printf(" Data alignment factor:\t%jd\n", - (intmax_t) cie_daf); - printf(" Return address column:\t%ju\n", - (uintmax_t) cie_ra); - putchar('\n'); - dump_dwarf_frame_inst(re, cie, cie_inst, - cie_instlen, cie_caf, cie_daf, 0, - re->dbg); - putchar('\n'); - } else { - printf(" \""); - while ((c = *cie_aug++) != '\0') - putchar(c); - putchar('"'); - printf(" cf=%ju df=%jd ra=%ju\n", - (uintmax_t) cie_caf, - (uintmax_t) cie_daf, - (uintmax_t) cie_ra); - dump_dwarf_frame_regtable(re, fde, low_pc, 1, - cie_ra); - putchar('\n'); - } - } - printf("%08jx %08jx %08jx FDE cie=%08jx pc=%08jx..%08jx\n", - (uintmax_t) fde_offset, (uintmax_t) fde_length, - (uintmax_t) cie_offset, - (uintmax_t) (eh_frame ? fde_offset + 4 - cie_offset : - cie_offset), - (uintmax_t) low_pc, (uintmax_t) (low_pc + func_len)); - if (!alt) - dump_dwarf_frame_inst(re, cie, fde_inst, fde_instlen, - cie_caf, cie_daf, low_pc, re->dbg); - else - dump_dwarf_frame_regtable(re, fde, low_pc, func_len, - cie_ra); - putchar('\n'); - } -} - -static void -dump_dwarf_frame(struct readelf *re, int alt) -{ - struct section *s; - int i; - - (void) dwarf_set_frame_cfa_value(re->dbg, DW_FRAME_CFA_COL); - - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && (!strcmp(s->name, ".debug_frame") || - !strcmp(s->name, ".eh_frame"))) - dump_dwarf_frame_section(re, s, alt); - } -} - -static void -dump_dwarf_str(struct readelf *re) -{ - struct section *s; - Elf_Data *d; - unsigned char *p; - int elferr, end, i, j; - - printf("\nContents of section .debug_str:\n"); - - s = NULL; - for (i = 0; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (s->name != NULL && !strcmp(s->name, ".debug_str")) - break; - } - if ((size_t) i >= re->shnum) - return; - - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(-1)); - return; - } - if (d->d_size <= 0) - return; - - for (i = 0, p = d->d_buf; (size_t) i < d->d_size; i += 16) { - printf(" 0x%08x", (unsigned int) i); - if ((size_t) i + 16 > d->d_size) - end = d->d_size; - else - end = i + 16; - for (j = i; j < i + 16; j++) { - if ((j - i) % 4 == 0) - putchar(' '); - if (j >= end) { - printf(" "); - continue; - } - printf("%02x", (uint8_t) p[j]); - } - putchar(' '); - for (j = i; j < end; j++) { - if (isprint(p[j])) - putchar(p[j]); - else if (p[j] == 0) - putchar('.'); - else - putchar(' '); - } - putchar('\n'); - } -} - -struct loc_at { - Dwarf_Attribute la_at; - Dwarf_Unsigned la_off; - Dwarf_Unsigned la_lowpc; - Dwarf_Half la_cu_psize; - Dwarf_Half la_cu_osize; - Dwarf_Half la_cu_ver; - TAILQ_ENTRY(loc_at) la_next; -}; - -static TAILQ_HEAD(, loc_at) lalist = TAILQ_HEAD_INITIALIZER(lalist); - -static void -search_loclist_at(struct readelf *re, Dwarf_Die die, Dwarf_Unsigned lowpc) -{ - Dwarf_Attribute *attr_list; - Dwarf_Die ret_die; - Dwarf_Unsigned off; - Dwarf_Off ref; - Dwarf_Signed attr_count; - Dwarf_Half attr, form; - Dwarf_Bool is_info; - Dwarf_Error de; - struct loc_at *la, *nla; - int i, ret; - - is_info = dwarf_get_die_infotypes_flag(die); - - if ((ret = dwarf_attrlist(die, &attr_list, &attr_count, &de)) != - DW_DLV_OK) { - if (ret == DW_DLV_ERROR) - warnx("dwarf_attrlist failed: %s", dwarf_errmsg(de)); - goto cont_search; - } - for (i = 0; i < attr_count; i++) { - if (dwarf_whatattr(attr_list[i], &attr, &de) != DW_DLV_OK) { - warnx("dwarf_whatattr failed: %s", dwarf_errmsg(de)); - continue; - } - if (attr != DW_AT_location && - attr != DW_AT_string_length && - attr != DW_AT_return_addr && - attr != DW_AT_data_member_location && - attr != DW_AT_frame_base && - attr != DW_AT_segment && - attr != DW_AT_static_link && - attr != DW_AT_use_location && - attr != DW_AT_vtable_elem_location) - continue; - if (dwarf_whatform(attr_list[i], &form, &de) != DW_DLV_OK) { - warnx("dwarf_whatform failed: %s", dwarf_errmsg(de)); - continue; - } - if (form == DW_FORM_data4 || form == DW_FORM_data8) { - if (dwarf_formudata(attr_list[i], &off, &de) != - DW_DLV_OK) { - warnx("dwarf_formudata failed: %s", - dwarf_errmsg(de)); - continue; - } - } else if (form == DW_FORM_sec_offset) { - if (dwarf_global_formref(attr_list[i], &ref, &de) != - DW_DLV_OK) { - warnx("dwarf_global_formref failed: %s", - dwarf_errmsg(de)); - continue; - } - off = ref; - } else - continue; - - TAILQ_FOREACH(la, &lalist, la_next) { - if (off == la->la_off) - break; - if (off < la->la_off) { - if ((nla = malloc(sizeof(*nla))) == NULL) - err(EXIT_FAILURE, "malloc failed"); - nla->la_at = attr_list[i]; - nla->la_off = off; - nla->la_lowpc = lowpc; - nla->la_cu_psize = re->cu_psize; - nla->la_cu_osize = re->cu_osize; - nla->la_cu_ver = re->cu_ver; - TAILQ_INSERT_BEFORE(la, nla, la_next); - break; - } - } - if (la == NULL) { - if ((nla = malloc(sizeof(*nla))) == NULL) - err(EXIT_FAILURE, "malloc failed"); - nla->la_at = attr_list[i]; - nla->la_off = off; - nla->la_lowpc = lowpc; - nla->la_cu_psize = re->cu_psize; - nla->la_cu_osize = re->cu_osize; - nla->la_cu_ver = re->cu_ver; - TAILQ_INSERT_TAIL(&lalist, nla, la_next); - } - } - -cont_search: - /* Search children. */ - ret = dwarf_child(die, &ret_die, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_child: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - search_loclist_at(re, ret_die, lowpc); - - /* Search sibling. */ - ret = dwarf_siblingof_b(re->dbg, die, &ret_die, is_info, &de); - if (ret == DW_DLV_ERROR) - warnx("dwarf_siblingof: %s", dwarf_errmsg(de)); - else if (ret == DW_DLV_OK) - search_loclist_at(re, ret_die, lowpc); -} - -static void -dump_dwarf_loc(struct readelf *re, Dwarf_Loc *lr) -{ - const char *op_str; - char unk_op[32]; - uint8_t *b, n; - int i; - - if (dwarf_get_OP_name(lr->lr_atom, &op_str) != - DW_DLV_OK) { - snprintf(unk_op, sizeof(unk_op), - "[Unknown OP: %#x]", lr->lr_atom); - op_str = unk_op; - } - - printf("%s", op_str); - - switch (lr->lr_atom) { - case DW_OP_reg0: - case DW_OP_reg1: - case DW_OP_reg2: - case DW_OP_reg3: - case DW_OP_reg4: - case DW_OP_reg5: - case DW_OP_reg6: - case DW_OP_reg7: - case DW_OP_reg8: - case DW_OP_reg9: - case DW_OP_reg10: - case DW_OP_reg11: - case DW_OP_reg12: - case DW_OP_reg13: - case DW_OP_reg14: - case DW_OP_reg15: - case DW_OP_reg16: - case DW_OP_reg17: - case DW_OP_reg18: - case DW_OP_reg19: - case DW_OP_reg20: - case DW_OP_reg21: - case DW_OP_reg22: - case DW_OP_reg23: - case DW_OP_reg24: - case DW_OP_reg25: - case DW_OP_reg26: - case DW_OP_reg27: - case DW_OP_reg28: - case DW_OP_reg29: - case DW_OP_reg30: - case DW_OP_reg31: - printf(" (%s)", dwarf_regname(re, lr->lr_atom - DW_OP_reg0)); - break; - - case DW_OP_deref: - case DW_OP_lit0: - case DW_OP_lit1: - case DW_OP_lit2: - case DW_OP_lit3: - case DW_OP_lit4: - case DW_OP_lit5: - case DW_OP_lit6: - case DW_OP_lit7: - case DW_OP_lit8: - case DW_OP_lit9: - case DW_OP_lit10: - case DW_OP_lit11: - case DW_OP_lit12: - case DW_OP_lit13: - case DW_OP_lit14: - case DW_OP_lit15: - case DW_OP_lit16: - case DW_OP_lit17: - case DW_OP_lit18: - case DW_OP_lit19: - case DW_OP_lit20: - case DW_OP_lit21: - case DW_OP_lit22: - case DW_OP_lit23: - case DW_OP_lit24: - case DW_OP_lit25: - case DW_OP_lit26: - case DW_OP_lit27: - case DW_OP_lit28: - case DW_OP_lit29: - case DW_OP_lit30: - case DW_OP_lit31: - case DW_OP_dup: - case DW_OP_drop: - case DW_OP_over: - case DW_OP_swap: - case DW_OP_rot: - case DW_OP_xderef: - case DW_OP_abs: - case DW_OP_and: - case DW_OP_div: - case DW_OP_minus: - case DW_OP_mod: - case DW_OP_mul: - case DW_OP_neg: - case DW_OP_not: - case DW_OP_or: - case DW_OP_plus: - case DW_OP_shl: - case DW_OP_shr: - case DW_OP_shra: - case DW_OP_xor: - case DW_OP_eq: - case DW_OP_ge: - case DW_OP_gt: - case DW_OP_le: - case DW_OP_lt: - case DW_OP_ne: - case DW_OP_nop: - case DW_OP_push_object_address: - case DW_OP_form_tls_address: - case DW_OP_call_frame_cfa: - case DW_OP_stack_value: - case DW_OP_GNU_push_tls_address: - case DW_OP_GNU_uninit: - break; - - case DW_OP_const1u: - case DW_OP_pick: - case DW_OP_deref_size: - case DW_OP_xderef_size: - case DW_OP_const2u: - case DW_OP_bra: - case DW_OP_skip: - case DW_OP_const4u: - case DW_OP_const8u: - case DW_OP_constu: - case DW_OP_plus_uconst: - case DW_OP_regx: - case DW_OP_piece: - printf(": %ju", (uintmax_t) - lr->lr_number); - break; - - case DW_OP_const1s: - case DW_OP_const2s: - case DW_OP_const4s: - case DW_OP_const8s: - case DW_OP_consts: - printf(": %jd", (intmax_t) - lr->lr_number); - break; - - case DW_OP_breg0: - case DW_OP_breg1: - case DW_OP_breg2: - case DW_OP_breg3: - case DW_OP_breg4: - case DW_OP_breg5: - case DW_OP_breg6: - case DW_OP_breg7: - case DW_OP_breg8: - case DW_OP_breg9: - case DW_OP_breg10: - case DW_OP_breg11: - case DW_OP_breg12: - case DW_OP_breg13: - case DW_OP_breg14: - case DW_OP_breg15: - case DW_OP_breg16: - case DW_OP_breg17: - case DW_OP_breg18: - case DW_OP_breg19: - case DW_OP_breg20: - case DW_OP_breg21: - case DW_OP_breg22: - case DW_OP_breg23: - case DW_OP_breg24: - case DW_OP_breg25: - case DW_OP_breg26: - case DW_OP_breg27: - case DW_OP_breg28: - case DW_OP_breg29: - case DW_OP_breg30: - case DW_OP_breg31: - printf(" (%s): %jd", - dwarf_regname(re, lr->lr_atom - DW_OP_breg0), - (intmax_t) lr->lr_number); - break; - - case DW_OP_fbreg: - printf(": %jd", (intmax_t) - lr->lr_number); - break; - - case DW_OP_bregx: - printf(": %ju (%s) %jd", - (uintmax_t) lr->lr_number, - dwarf_regname(re, (unsigned int) lr->lr_number), - (intmax_t) lr->lr_number2); - break; - - case DW_OP_addr: - case DW_OP_GNU_encoded_addr: - printf(": %#jx", (uintmax_t) - lr->lr_number); - break; - - case DW_OP_GNU_implicit_pointer: - printf(": <0x%jx> %jd", (uintmax_t) lr->lr_number, - (intmax_t) lr->lr_number2); - break; - - case DW_OP_implicit_value: - printf(": %ju byte block:", (uintmax_t) lr->lr_number); - b = (uint8_t *)(uintptr_t) lr->lr_number2; - for (i = 0; (Dwarf_Unsigned) i < lr->lr_number; i++) - printf(" %x", b[i]); - break; - - case DW_OP_GNU_entry_value: - printf(": ("); - dump_dwarf_block(re, (uint8_t *)(uintptr_t) lr->lr_number2, - lr->lr_number); - putchar(')'); - break; - - case DW_OP_GNU_const_type: - printf(": <0x%jx> ", (uintmax_t) lr->lr_number); - b = (uint8_t *)(uintptr_t) lr->lr_number2; - n = *b; - for (i = 1; (uint8_t) i < n; i++) - printf(" %x", b[i]); - break; - - case DW_OP_GNU_regval_type: - printf(": %ju (%s) <0x%jx>", (uintmax_t) lr->lr_number, - dwarf_regname(re, (unsigned int) lr->lr_number), - (uintmax_t) lr->lr_number2); - break; - - case DW_OP_GNU_convert: - case DW_OP_GNU_deref_type: - case DW_OP_GNU_parameter_ref: - case DW_OP_GNU_reinterpret: - printf(": <0x%jx>", (uintmax_t) lr->lr_number); - break; - - default: - break; - } -} - -static void -dump_dwarf_block(struct readelf *re, uint8_t *b, Dwarf_Unsigned len) -{ - Dwarf_Locdesc *llbuf; - Dwarf_Signed lcnt; - Dwarf_Error de; - int i; - - if (dwarf_loclist_from_expr_b(re->dbg, b, len, re->cu_psize, - re->cu_osize, re->cu_ver, &llbuf, &lcnt, &de) != DW_DLV_OK) { - warnx("dwarf_loclist_form_expr_b: %s", dwarf_errmsg(de)); - return; - } - - for (i = 0; (Dwarf_Half) i < llbuf->ld_cents; i++) { - dump_dwarf_loc(re, &llbuf->ld_s[i]); - if (i < llbuf->ld_cents - 1) - printf("; "); - } - - dwarf_dealloc(re->dbg, llbuf->ld_s, DW_DLA_LOC_BLOCK); - dwarf_dealloc(re->dbg, llbuf, DW_DLA_LOCDESC); -} - -static void -dump_dwarf_loclist(struct readelf *re) -{ - Dwarf_Die die; - Dwarf_Locdesc **llbuf; - Dwarf_Unsigned lowpc; - Dwarf_Signed lcnt; - Dwarf_Half tag, version, pointer_size, off_size; - Dwarf_Error de; - struct loc_at *la; - int i, j, ret, has_content; - - /* Search .debug_info section. */ - while ((ret = dwarf_next_cu_header_b(re->dbg, NULL, &version, NULL, - &pointer_size, &off_size, NULL, NULL, &de)) == DW_DLV_OK) { - set_cu_context(re, pointer_size, off_size, version); - die = NULL; - if (dwarf_siblingof(re->dbg, die, &die, &de) != DW_DLV_OK) - continue; - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", dwarf_errmsg(de)); - continue; - } - /* XXX: What about DW_TAG_partial_unit? */ - lowpc = 0; - if (tag == DW_TAG_compile_unit) { - if (dwarf_attrval_unsigned(die, DW_AT_low_pc, - &lowpc, &de) != DW_DLV_OK) - lowpc = 0; - } - - /* Search attributes for reference to .debug_loc section. */ - search_loclist_at(re, die, lowpc); - } - if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); - - /* Search .debug_types section. */ - do { - while ((ret = dwarf_next_cu_header_c(re->dbg, 0, NULL, - &version, NULL, &pointer_size, &off_size, NULL, NULL, - NULL, NULL, &de)) == DW_DLV_OK) { - set_cu_context(re, pointer_size, off_size, version); - die = NULL; - if (dwarf_siblingof(re->dbg, die, &die, &de) != - DW_DLV_OK) - continue; - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - warnx("dwarf_tag failed: %s", - dwarf_errmsg(de)); - continue; - } - - lowpc = 0; - if (tag == DW_TAG_type_unit) { - if (dwarf_attrval_unsigned(die, DW_AT_low_pc, - &lowpc, &de) != DW_DLV_OK) - lowpc = 0; - } - - /* - * Search attributes for reference to .debug_loc - * section. - */ - search_loclist_at(re, die, lowpc); - } - if (ret == DW_DLV_ERROR) - warnx("dwarf_next_cu_header: %s", dwarf_errmsg(de)); - } while (dwarf_next_types_section(re->dbg, &de) == DW_DLV_OK); - - if (TAILQ_EMPTY(&lalist)) - return; - - has_content = 0; - TAILQ_FOREACH(la, &lalist, la_next) { - if ((ret = dwarf_loclist_n(la->la_at, &llbuf, &lcnt, &de)) != - DW_DLV_OK) { - if (ret != DW_DLV_NO_ENTRY) - warnx("dwarf_loclist_n failed: %s", - dwarf_errmsg(de)); - continue; - } - if (!has_content) { - has_content = 1; - printf("\nContents of section .debug_loc:\n"); - printf(" Offset Begin End Expression\n"); - } - set_cu_context(re, la->la_cu_psize, la->la_cu_osize, - la->la_cu_ver); - for (i = 0; i < lcnt; i++) { - printf(" %8.8jx ", (uintmax_t) la->la_off); - if (llbuf[i]->ld_lopc == 0 && llbuf[i]->ld_hipc == 0) { - printf("\n"); - continue; - } - - /* TODO: handle base selection entry. */ - - printf("%8.8jx %8.8jx ", - (uintmax_t) (la->la_lowpc + llbuf[i]->ld_lopc), - (uintmax_t) (la->la_lowpc + llbuf[i]->ld_hipc)); - - putchar('('); - for (j = 0; (Dwarf_Half) j < llbuf[i]->ld_cents; j++) { - dump_dwarf_loc(re, &llbuf[i]->ld_s[j]); - if (j < llbuf[i]->ld_cents - 1) - printf("; "); - } - putchar(')'); - - if (llbuf[i]->ld_lopc == llbuf[i]->ld_hipc) - printf(" (start == end)"); - putchar('\n'); - } - for (i = 0; i < lcnt; i++) { - dwarf_dealloc(re->dbg, llbuf[i]->ld_s, - DW_DLA_LOC_BLOCK); - dwarf_dealloc(re->dbg, llbuf[i], DW_DLA_LOCDESC); - } - dwarf_dealloc(re->dbg, llbuf, DW_DLA_LIST); - } - - if (!has_content) - printf("\nSection '.debug_loc' has no debugging data.\n"); -} - -/* - * Retrieve a string using string table section index and the string offset. - */ -static const char* -get_string(struct readelf *re, int strtab, size_t off) -{ - const char *name; - - if ((name = elf_strptr(re->elf, strtab, off)) == NULL) - return (""); - - return (name); -} - -/* - * Retrieve the name of a symbol using the section index of the symbol - * table and the index of the symbol within that table. - */ -static const char * -get_symbol_name(struct readelf *re, int symtab, int i) -{ - struct section *s; - const char *name; - GElf_Sym sym; - Elf_Data *data; - int elferr; - - s = &re->sl[symtab]; - if (s->type != SHT_SYMTAB && s->type != SHT_DYNSYM) - return (""); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return (""); - } - if (gelf_getsym(data, i, &sym) != &sym) - return (""); - /* Return section name for STT_SECTION symbol. */ - if (GELF_ST_TYPE(sym.st_info) == STT_SECTION) { - if (sym.st_shndx < re->shnum && - re->sl[sym.st_shndx].name != NULL) - return (re->sl[sym.st_shndx].name); - return (""); - } - if (s->link >= re->shnum || - (name = elf_strptr(re->elf, s->link, sym.st_name)) == NULL) - return (""); - - return (name); -} - -static uint64_t -get_symbol_value(struct readelf *re, int symtab, int i) -{ - struct section *s; - GElf_Sym sym; - Elf_Data *data; - int elferr; - - s = &re->sl[symtab]; - if (s->type != SHT_SYMTAB && s->type != SHT_DYNSYM) - return (0); - (void) elf_errno(); - if ((data = elf_getdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", elf_errmsg(elferr)); - return (0); - } - if (gelf_getsym(data, i, &sym) != &sym) - return (0); - - return (sym.st_value); -} - -static void -hex_dump(struct readelf *re) -{ - struct section *s; - Elf_Data *d; - uint8_t *buf; - size_t sz, nbytes; - uint64_t addr; - int elferr, i, j; - - for (i = 1; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (find_dumpop(re, (size_t) i, s->name, HEX_DUMP, -1) == NULL) - continue; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL && - (d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - (void) elf_errno(); - if (d->d_size <= 0 || d->d_buf == NULL) { - printf("\nSection '%s' has no data to dump.\n", - s->name); - continue; - } - buf = d->d_buf; - sz = d->d_size; - addr = s->addr; - printf("\nHex dump of section '%s':\n", s->name); - while (sz > 0) { - printf(" 0x%8.8jx ", (uintmax_t)addr); - nbytes = sz > 16? 16 : sz; - for (j = 0; j < 16; j++) { - if ((size_t)j < nbytes) - printf("%2.2x", buf[j]); - else - printf(" "); - if ((j & 3) == 3) - printf(" "); - } - for (j = 0; (size_t)j < nbytes; j++) { - if (isprint(buf[j])) - printf("%c", buf[j]); - else - printf("."); - } - printf("\n"); - buf += nbytes; - addr += nbytes; - sz -= nbytes; - } - } -} - -static void -str_dump(struct readelf *re) -{ - struct section *s; - Elf_Data *d; - unsigned char *start, *end, *buf_end; - unsigned int len; - int i, j, elferr, found; - - for (i = 1; (size_t) i < re->shnum; i++) { - s = &re->sl[i]; - if (find_dumpop(re, (size_t) i, s->name, STR_DUMP, -1) == NULL) - continue; - (void) elf_errno(); - if ((d = elf_getdata(s->scn, NULL)) == NULL && - (d = elf_rawdata(s->scn, NULL)) == NULL) { - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_getdata failed: %s", - elf_errmsg(elferr)); - continue; - } - (void) elf_errno(); - if (d->d_size <= 0 || d->d_buf == NULL) { - printf("\nSection '%s' has no data to dump.\n", - s->name); - continue; - } - buf_end = (unsigned char *) d->d_buf + d->d_size; - start = (unsigned char *) d->d_buf; - found = 0; - printf("\nString dump of section '%s':\n", s->name); - for (;;) { - while (start < buf_end && !isprint(*start)) - start++; - if (start >= buf_end) - break; - end = start + 1; - while (end < buf_end && isprint(*end)) - end++; - printf(" [%6lx] ", - (long) (start - (unsigned char *) d->d_buf)); - len = end - start; - for (j = 0; (unsigned int) j < len; j++) - putchar(start[j]); - putchar('\n'); - found = 1; - if (end >= buf_end) - break; - start = end + 1; - } - if (!found) - printf(" No strings found in this section."); - putchar('\n'); - } -} - -static void -load_sections(struct readelf *re) -{ - struct section *s; - const char *name; - Elf_Scn *scn; - GElf_Shdr sh; - size_t shstrndx, ndx; - int elferr; - - /* Allocate storage for internal section list. */ - if (!elf_getshnum(re->elf, &re->shnum)) { - warnx("elf_getshnum failed: %s", elf_errmsg(-1)); - return; - } - if (re->sl != NULL) - free(re->sl); - if ((re->sl = calloc(re->shnum, sizeof(*re->sl))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - - /* Get the index of .shstrtab section. */ - if (!elf_getshstrndx(re->elf, &shstrndx)) { - warnx("elf_getshstrndx failed: %s", elf_errmsg(-1)); - return; - } - - if ((scn = elf_getscn(re->elf, 0)) == NULL) - return; - - (void) elf_errno(); - do { - if (gelf_getshdr(scn, &sh) == NULL) { - warnx("gelf_getshdr failed: %s", elf_errmsg(-1)); - (void) elf_errno(); - continue; - } - if ((name = elf_strptr(re->elf, shstrndx, sh.sh_name)) == NULL) { - (void) elf_errno(); - name = ""; - } - if ((ndx = elf_ndxscn(scn)) == SHN_UNDEF) { - if ((elferr = elf_errno()) != 0) { - warnx("elf_ndxscn failed: %s", - elf_errmsg(elferr)); - continue; - } - } - if (ndx >= re->shnum) { - warnx("section index of '%s' out of range", name); - continue; - } - if (sh.sh_link >= re->shnum) - warnx("section link %llu of '%s' out of range", - (unsigned long long)sh.sh_link, name); - s = &re->sl[ndx]; - s->name = name; - s->scn = scn; - s->off = sh.sh_offset; - s->sz = sh.sh_size; - s->entsize = sh.sh_entsize; - s->align = sh.sh_addralign; - s->type = sh.sh_type; - s->flags = sh.sh_flags; - s->addr = sh.sh_addr; - s->link = sh.sh_link; - s->info = sh.sh_info; - } while ((scn = elf_nextscn(re->elf, scn)) != NULL); - elferr = elf_errno(); - if (elferr != 0) - warnx("elf_nextscn failed: %s", elf_errmsg(elferr)); -} - -static void -unload_sections(struct readelf *re) -{ - - if (re->sl != NULL) { - free(re->sl); - re->sl = NULL; - } - re->shnum = 0; - re->vd_s = NULL; - re->vn_s = NULL; - re->vs_s = NULL; - re->vs = NULL; - re->vs_sz = 0; - if (re->ver != NULL) { - free(re->ver); - re->ver = NULL; - re->ver_sz = 0; - } -} - -static void -dump_elf(struct readelf *re) -{ - - /* Fetch ELF header. No need to continue if it fails. */ - if (gelf_getehdr(re->elf, &re->ehdr) == NULL) { - warnx("gelf_getehdr failed: %s", elf_errmsg(-1)); - return; - } - if ((re->ec = gelf_getclass(re->elf)) == ELFCLASSNONE) { - warnx("gelf_getclass failed: %s", elf_errmsg(-1)); - return; - } - if (re->ehdr.e_ident[EI_DATA] == ELFDATA2MSB) { - re->dw_read = _read_msb; - re->dw_decode = _decode_msb; - } else { - re->dw_read = _read_lsb; - re->dw_decode = _decode_lsb; - } - - if (re->options & ~RE_H) - load_sections(re); - if ((re->options & RE_VV) || (re->options & RE_S)) - search_ver(re); - if (re->options & RE_H) - dump_ehdr(re); - if (re->options & RE_L) - dump_phdr(re); - if (re->options & RE_SS) - dump_shdr(re); - if (re->options & RE_G) - dump_section_groups(re); - if (re->options & RE_D) - dump_dynamic(re); - if (re->options & RE_R) - dump_reloc(re); - if (re->options & RE_S) - dump_symtabs(re); - if (re->options & RE_N) - dump_notes(re); - if (re->options & RE_II) - dump_hash(re); - if (re->options & RE_X) - hex_dump(re); - if (re->options & RE_P) - str_dump(re); - if (re->options & RE_VV) - dump_ver(re); - if (re->options & RE_AA) - dump_arch_specific_info(re); - if (re->options & RE_W) - dump_dwarf(re); - if (re->options & ~RE_H) - unload_sections(re); -} - -static void -dump_dwarf(struct readelf *re) -{ - struct loc_at *la, *_la; - Dwarf_Error de; - int error; - - if (dwarf_elf_init(re->elf, DW_DLC_READ, NULL, NULL, &re->dbg, &de)) { - if ((error = dwarf_errno(de)) != DW_DLE_DEBUG_INFO_NULL) - errx(EXIT_FAILURE, "dwarf_elf_init failed: %s", - dwarf_errmsg(de)); - return; - } - - if (re->dop & DW_A) - dump_dwarf_abbrev(re); - if (re->dop & DW_L) - dump_dwarf_line(re); - if (re->dop & DW_LL) - dump_dwarf_line_decoded(re); - if (re->dop & DW_I) { - dump_dwarf_info(re, 0); - dump_dwarf_info(re, 1); - } - if (re->dop & DW_P) - dump_dwarf_pubnames(re); - if (re->dop & DW_R) - dump_dwarf_aranges(re); - if (re->dop & DW_RR) - dump_dwarf_ranges(re); - if (re->dop & DW_M) - dump_dwarf_macinfo(re); - if (re->dop & DW_F) - dump_dwarf_frame(re, 0); - else if (re->dop & DW_FF) - dump_dwarf_frame(re, 1); - if (re->dop & DW_S) - dump_dwarf_str(re); - if (re->dop & DW_O) - dump_dwarf_loclist(re); - - TAILQ_FOREACH_SAFE(la, &lalist, la_next, _la) { - TAILQ_REMOVE(&lalist, la, la_next); - free(la); - } - - dwarf_finish(re->dbg, &de); -} - -static void -dump_ar(struct readelf *re, int fd) -{ - Elf_Arsym *arsym; - Elf_Arhdr *arhdr; - Elf_Cmd cmd; - Elf *e; - size_t sz; - off_t off; - int i; - - re->ar = re->elf; - - if (re->options & RE_C) { - if ((arsym = elf_getarsym(re->ar, &sz)) == NULL) { - warnx("elf_getarsym() failed: %s", elf_errmsg(-1)); - goto process_members; - } - printf("Index of archive %s: (%ju entries)\n", re->filename, - (uintmax_t) sz - 1); - off = 0; - for (i = 0; (size_t) i < sz; i++) { - if (arsym[i].as_name == NULL) - break; - if (arsym[i].as_off != off) { - off = arsym[i].as_off; - if (elf_rand(re->ar, off) != off) { - warnx("elf_rand() failed: %s", - elf_errmsg(-1)); - continue; - } - if ((e = elf_begin(fd, ELF_C_READ, re->ar)) == - NULL) { - warnx("elf_begin() failed: %s", - elf_errmsg(-1)); - continue; - } - if ((arhdr = elf_getarhdr(e)) == NULL) { - warnx("elf_getarhdr() failed: %s", - elf_errmsg(-1)); - elf_end(e); - continue; - } - printf("Binary %s(%s) contains:\n", - re->filename, arhdr->ar_name); - } - printf("\t%s\n", arsym[i].as_name); - } - if (elf_rand(re->ar, SARMAG) != SARMAG) { - warnx("elf_rand() failed: %s", elf_errmsg(-1)); - return; - } - } - -process_members: - - if ((re->options & ~RE_C) == 0) - return; - - cmd = ELF_C_READ; - while ((re->elf = elf_begin(fd, cmd, re->ar)) != NULL) { - if ((arhdr = elf_getarhdr(re->elf)) == NULL) { - warnx("elf_getarhdr() failed: %s", elf_errmsg(-1)); - goto next_member; - } - if (strcmp(arhdr->ar_name, "/") == 0 || - strcmp(arhdr->ar_name, "//") == 0 || - strcmp(arhdr->ar_name, "__.SYMDEF") == 0) - goto next_member; - printf("\nFile: %s(%s)\n", re->filename, arhdr->ar_name); - dump_elf(re); - - next_member: - cmd = elf_next(re->elf); - elf_end(re->elf); - } - re->elf = re->ar; -} - -static void -dump_object(struct readelf *re, int fd) -{ - if ((re->flags & DISPLAY_FILENAME) != 0) - printf("\nFile: %s\n", re->filename); - - if ((re->elf = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { - warnx("elf_begin() failed: %s", elf_errmsg(-1)); - goto done; - } - - switch (elf_kind(re->elf)) { - case ELF_K_NONE: - warnx("Not an ELF file."); - goto done; - case ELF_K_ELF: - dump_elf(re); - break; - case ELF_K_AR: - dump_ar(re, fd); - break; - default: - warnx("Internal: libelf returned unknown elf kind."); - } - -done: - elf_end(re->elf); -} - -static void -add_dumpop(struct readelf *re, size_t si, const char *sn, int op, int t) -{ - struct dumpop *d; - - if ((d = find_dumpop(re, si, sn, -1, t)) == NULL) { - if ((d = calloc(1, sizeof(*d))) == NULL) - err(EXIT_FAILURE, "calloc failed"); - if (t == DUMP_BY_INDEX) - d->u.si = si; - else - d->u.sn = sn; - d->type = t; - d->op = op; - STAILQ_INSERT_TAIL(&re->v_dumpop, d, dumpop_list); - } else - d->op |= op; -} - -static struct dumpop * -find_dumpop(struct readelf *re, size_t si, const char *sn, int op, int t) -{ - struct dumpop *d; - - STAILQ_FOREACH(d, &re->v_dumpop, dumpop_list) { - if ((op == -1 || op & d->op) && - (t == -1 || (unsigned) t == d->type)) { - if ((d->type == DUMP_BY_INDEX && d->u.si == si) || - (d->type == DUMP_BY_NAME && !strcmp(d->u.sn, sn))) - return (d); - } - } - - return (NULL); -} - -static struct { - const char *ln; - char sn; - int value; -} dwarf_op[] = { - {"rawline", 'l', DW_L}, - {"decodedline", 'L', DW_LL}, - {"info", 'i', DW_I}, - {"abbrev", 'a', DW_A}, - {"pubnames", 'p', DW_P}, - {"aranges", 'r', DW_R}, - {"ranges", 'r', DW_R}, - {"Ranges", 'R', DW_RR}, - {"macro", 'm', DW_M}, - {"frames", 'f', DW_F}, - {"frames-interp", 'F', DW_FF}, - {"str", 's', DW_S}, - {"loc", 'o', DW_O}, - {NULL, 0, 0} -}; - -static void -parse_dwarf_op_short(struct readelf *re, const char *op) -{ - int i; - - if (op == NULL) { - re->dop |= DW_DEFAULT_OPTIONS; - return; - } - - for (; *op != '\0'; op++) { - for (i = 0; dwarf_op[i].ln != NULL; i++) { - if (dwarf_op[i].sn == *op) { - re->dop |= dwarf_op[i].value; - break; - } - } - } -} - -static void -parse_dwarf_op_long(struct readelf *re, const char *op) -{ - char *p, *token, *bp; - int i; - - if (op == NULL) { - re->dop |= DW_DEFAULT_OPTIONS; - return; - } - - if ((p = strdup(op)) == NULL) - err(EXIT_FAILURE, "strdup failed"); - bp = p; - - while ((token = strsep(&p, ",")) != NULL) { - for (i = 0; dwarf_op[i].ln != NULL; i++) { - if (!strcmp(token, dwarf_op[i].ln)) { - re->dop |= dwarf_op[i].value; - break; - } - } - } - - free(bp); -} - -static uint64_t -_read_lsb(Elf_Data *d, uint64_t *offsetp, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = (uint8_t *) d->d_buf + *offsetp; - - ret = 0; - switch (bytes_to_read) { - case 8: - ret |= ((uint64_t) src[4]) << 32 | ((uint64_t) src[5]) << 40; - ret |= ((uint64_t) src[6]) << 48 | ((uint64_t) src[7]) << 56; - /* FALLTHROUGH */ - case 4: - ret |= ((uint64_t) src[2]) << 16 | ((uint64_t) src[3]) << 24; - /* FALLTHROUGH */ - case 2: - ret |= ((uint64_t) src[1]) << 8; - /* FALLTHROUGH */ - case 1: - ret |= src[0]; - break; - default: - return (0); - } - - *offsetp += bytes_to_read; - - return (ret); -} - -static uint64_t -_read_msb(Elf_Data *d, uint64_t *offsetp, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = (uint8_t *) d->d_buf + *offsetp; - - switch (bytes_to_read) { - case 1: - ret = src[0]; - break; - case 2: - ret = src[1] | ((uint64_t) src[0]) << 8; - break; - case 4: - ret = src[3] | ((uint64_t) src[2]) << 8; - ret |= ((uint64_t) src[1]) << 16 | ((uint64_t) src[0]) << 24; - break; - case 8: - ret = src[7] | ((uint64_t) src[6]) << 8; - ret |= ((uint64_t) src[5]) << 16 | ((uint64_t) src[4]) << 24; - ret |= ((uint64_t) src[3]) << 32 | ((uint64_t) src[2]) << 40; - ret |= ((uint64_t) src[1]) << 48 | ((uint64_t) src[0]) << 56; - break; - default: - return (0); - } - - *offsetp += bytes_to_read; - - return (ret); -} - -static uint64_t -_decode_lsb(uint8_t **data, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = *data; - - ret = 0; - switch (bytes_to_read) { - case 8: - ret |= ((uint64_t) src[4]) << 32 | ((uint64_t) src[5]) << 40; - ret |= ((uint64_t) src[6]) << 48 | ((uint64_t) src[7]) << 56; - /* FALLTHROUGH */ - case 4: - ret |= ((uint64_t) src[2]) << 16 | ((uint64_t) src[3]) << 24; - /* FALLTHROUGH */ - case 2: - ret |= ((uint64_t) src[1]) << 8; - /* FALLTHROUGH */ - case 1: - ret |= src[0]; - break; - default: - return (0); - } - - *data += bytes_to_read; - - return (ret); -} - -static uint64_t -_decode_msb(uint8_t **data, int bytes_to_read) -{ - uint64_t ret; - uint8_t *src; - - src = *data; - - ret = 0; - switch (bytes_to_read) { - case 1: - ret = src[0]; - break; - case 2: - ret = src[1] | ((uint64_t) src[0]) << 8; - break; - case 4: - ret = src[3] | ((uint64_t) src[2]) << 8; - ret |= ((uint64_t) src[1]) << 16 | ((uint64_t) src[0]) << 24; - break; - case 8: - ret = src[7] | ((uint64_t) src[6]) << 8; - ret |= ((uint64_t) src[5]) << 16 | ((uint64_t) src[4]) << 24; - ret |= ((uint64_t) src[3]) << 32 | ((uint64_t) src[2]) << 40; - ret |= ((uint64_t) src[1]) << 48 | ((uint64_t) src[0]) << 56; - break; - default: - return (0); - break; - } - - *data += bytes_to_read; - - return (ret); -} - -static int64_t -_decode_sleb128(uint8_t **dp, uint8_t *dpe) -{ - int64_t ret = 0; - uint8_t b = 0; - int shift = 0; - - uint8_t *src = *dp; - - do { - if (src >= dpe) - break; - b = *src++; - ret |= ((b & 0x7f) << shift); - shift += 7; - } while ((b & 0x80) != 0); - - if (shift < 32 && (b & 0x40) != 0) - ret |= (-1 << shift); - - *dp = src; - - return (ret); -} - -static uint64_t -_decode_uleb128(uint8_t **dp, uint8_t *dpe) -{ - uint64_t ret = 0; - uint8_t b; - int shift = 0; - - uint8_t *src = *dp; - - do { - if (src >= dpe) - break; - b = *src++; - ret |= ((b & 0x7f) << shift); - shift += 7; - } while ((b & 0x80) != 0); - - *dp = src; - - return (ret); -} - -static void -readelf_version(void) -{ - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), - elftc_version()); - exit(EXIT_SUCCESS); -} - -#define USAGE_MESSAGE "\ -Usage: %s [options] file...\n\ - Display information about ELF objects and ar(1) archives.\n\n\ - Options:\n\ - -a | --all Equivalent to specifying options '-dhIlrsASV'.\n\ - -c | --archive-index Print the archive symbol table for archives.\n\ - -d | --dynamic Print the contents of SHT_DYNAMIC sections.\n\ - -e | --headers Print all headers in the object.\n\ - -g | --section-groups Print the contents of the section groups.\n\ - -h | --file-header Print the file header for the object.\n\ - -l | --program-headers Print the PHDR table for the object.\n\ - -n | --notes Print the contents of SHT_NOTE sections.\n\ - -p INDEX | --string-dump=INDEX\n\ - Print the contents of section at index INDEX.\n\ - -r | --relocs Print relocation information.\n\ - -s | --syms | --symbols Print symbol tables.\n\ - -t | --section-details Print additional information about sections.\n\ - -v | --version Print a version identifier and exit.\n\ - -w[afilmoprsFLR] | --debug-dump={abbrev,aranges,decodedline,frames,\n\ - frames-interp,info,loc,macro,pubnames,\n\ - ranges,Ranges,rawline,str}\n\ - Display DWARF information.\n\ - -x INDEX | --hex-dump=INDEX\n\ - Display contents of a section as hexadecimal.\n\ - -A | --arch-specific (accepted, but ignored)\n\ - -D | --use-dynamic Print the symbol table specified by the DT_SYMTAB\n\ - entry in the \".dynamic\" section.\n\ - -H | --help Print a help message.\n\ - -I | --histogram Print information on bucket list lengths for \n\ - hash sections.\n\ - -N | --full-section-name (accepted, but ignored)\n\ - -S | --sections | --section-headers\n\ - Print information about section headers.\n\ - -V | --version-info Print symbol versoning information.\n\ - -W | --wide Print information without wrapping long lines.\n" - - -static void -readelf_usage(int status) -{ - fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(status); -} - -int -main(int argc, char **argv) -{ - struct readelf *re, re_storage; - unsigned long si; - int fd, opt, i; - char *ep; - - re = &re_storage; - memset(re, 0, sizeof(*re)); - STAILQ_INIT(&re->v_dumpop); - - while ((opt = getopt_long(argc, argv, "AacDdegHhIi:lNnp:rSstuVvWw::x:", - longopts, NULL)) != -1) { - switch(opt) { - case '?': - readelf_usage(EXIT_SUCCESS); - break; - case 'A': - re->options |= RE_AA; - break; - case 'a': - re->options |= RE_AA | RE_D | RE_G | RE_H | RE_II | - RE_L | RE_R | RE_SS | RE_S | RE_VV; - break; - case 'c': - re->options |= RE_C; - break; - case 'D': - re->options |= RE_DD; - break; - case 'd': - re->options |= RE_D; - break; - case 'e': - re->options |= RE_H | RE_L | RE_SS; - break; - case 'g': - re->options |= RE_G; - break; - case 'H': - readelf_usage(EXIT_SUCCESS); - break; - case 'h': - re->options |= RE_H; - break; - case 'I': - re->options |= RE_II; - break; - case 'i': - /* Not implemented yet. */ - break; - case 'l': - re->options |= RE_L; - break; - case 'N': - re->options |= RE_NN; - break; - case 'n': - re->options |= RE_N; - break; - case 'p': - re->options |= RE_P; - si = strtoul(optarg, &ep, 10); - if (*ep == '\0') - add_dumpop(re, (size_t) si, NULL, STR_DUMP, - DUMP_BY_INDEX); - else - add_dumpop(re, 0, optarg, STR_DUMP, - DUMP_BY_NAME); - break; - case 'r': - re->options |= RE_R; - break; - case 'S': - re->options |= RE_SS; - break; - case 's': - re->options |= RE_S; - break; - case 't': - re->options |= RE_SS | RE_T; - break; - case 'u': - re->options |= RE_U; - break; - case 'V': - re->options |= RE_VV; - break; - case 'v': - readelf_version(); - break; - case 'W': - re->options |= RE_WW; - break; - case 'w': - re->options |= RE_W; - parse_dwarf_op_short(re, optarg); - break; - case 'x': - re->options |= RE_X; - si = strtoul(optarg, &ep, 10); - if (*ep == '\0') - add_dumpop(re, (size_t) si, NULL, HEX_DUMP, - DUMP_BY_INDEX); - else - add_dumpop(re, 0, optarg, HEX_DUMP, - DUMP_BY_NAME); - break; - case OPTION_DEBUG_DUMP: - re->options |= RE_W; - parse_dwarf_op_long(re, optarg); - } - } - - argv += optind; - argc -= optind; - - if (argc == 0 || re->options == 0) - readelf_usage(EXIT_FAILURE); - - if (argc > 1) - re->flags |= DISPLAY_FILENAME; - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - for (i = 0; i < argc; i++) { - re->filename = argv[i]; - fd = open(re->filename, O_RDONLY); - if (fd < 0) { - warn("open %s failed", re->filename); - } else { - dump_object(re, fd); - close(fd); - } - } - - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/size/Makefile b/contrib/elftoolchain/size/Makefile deleted file mode 100644 index 91dfb580..00000000 --- a/contrib/elftoolchain/size/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= size -WARNS?= 6 -LDADD= -lelftc -lelf -DPADD= ${LIBELFTC} ${LIBELF} - -.include "${TOP}/mk/elftoolchain.prog.mk" - diff --git a/contrib/elftoolchain/size/os.NetBSD.mk b/contrib/elftoolchain/size/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/size/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/size/size.1 b/contrib/elftoolchain/size/size.1 deleted file mode 100644 index c7c964a3..00000000 --- a/contrib/elftoolchain/size/size.1 +++ /dev/null @@ -1,257 +0,0 @@ -.\" Copyright (c) 2007 S.Sam Arun Raj -.\" Copyright (c) 2008,2011 Joseph Koshy -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd August 25, 2011 -.Dt SIZE 1 -.Os -.Sh NAME -.Nm size -.Nd "display section sizes and total size of ELF objects" -.Sh SYNOPSIS -.Nm -.Op Fl -format= Ns Ar format -.Op Fl -help -.Op Fl -radix= Ns Ar radix -.Op Fl -totals -.Op Fl -version -.Op Fl ABVdhotx -.Op Ar -.Sh DESCRIPTION -The -.Nm -utility -lists the sizes of ELF sections, and optionally the total size, for -each input -.Ar file -specified on the command line. -The -.Nm -utility can operate on ELF objects, on -.Xr ar 1 -archives containing ELF objects, and on core dumps. -If no file name is specified on the command-line, -.Pa a.out -is assumed. -.Pp -The -.Nm -utility recognized the following options: -.Bl -tag -width indent -.It Fl -format= Ns Ar format -Display output using the format specified by argument -.Ar format . -Supported values for this argument are: -.Sq berkeley -and -.Sq sysv . -The default output format is -.Sq berkeley . -See -.Sx Display Formats -below for more information. -.It Fl -help -Display a help message and exit. -.It Fl -radix= Ns Ar radix -Display numeric values using the radix specified by argument -.Ar radix . -Supported values for -.Ar radix -are 8, 10 and 16. -The default radix is 10. -.It Fl -totals -Shows cumulative totals of section sizes from all objects. -This option is ignored for System V style output. -.It Fl -version -Display a version identifier and exit. -.It Fl A -Equivalent to specifying option -.Fl -format= Ns Ar sysv . -.It Fl B -Equivalent to specifying option -.Fl -format= Ns Ar berkeley . -.It Fl V -Equivalent to specifying option -.Fl -version . -.It Fl d -Equivalent to specifying option -.Fl -radix= Ns Ar 10 . -.It Fl h -Equivalent to specifying option -.Fl -help . -.It Fl o -Equivalent to specifying option -.Fl -radix= Ns Ar 8 . -.It Fl t -Equivalent to specifying option -.Fl -totals . -.It Fl x -Equivalent to specifying option -.Fl -radix= Ns Ar 16 . -.El -.Sh DISPLAY FORMATS -.Ss Berkeley Style Output -If -.Sq berkeley -style output is in effect, an initial header line naming fields will -be output, followed by one line of output for each ELF object specified -on the command line or found in an archive. -.Pp -Each line will contain the following whitespace separated fields -in order: -.Bl -enum -compact -.It -The size of the text segment in the object. -.It -The size of the data segment in the object. -.It -The size of the -.Sq bss -segment in the object. -.It -The total size of the object in either decimal or octal. -Decimal output is used if the specified output radix for numeric values -is 10 or 16. -Octal output is used if the radix being used for numeric values -is 8. -.It -The total size of the object in hexadecimal. -.It -The file name of the object. -.El -.Pp -If option -.Fl -totals -was specified, an additional line in the same format as above will be -output at the end containing the sum of the respective fields. -The file name field for the line will contain the string -.Sq (TOTALS) . -.Ss System V Style Output -If System V style output is selected, -.Nm -will output the following information for each object: -.Bl -enum -compact -.It -The name of the object followed by a colon. -.It -A header line containing the names of fields of subsequent lines. -.It -One line per section present in the object. -Each line has three fields: -.Bl -enum -compact -.It -The name of the section. -.It -Its size, in the selected radix for numeric values. -.It -The address associated with the section, in the selected numeric radix. -.El -.It -A line whose section name field contains the string -.Sq Total -and whose size field contains the sum of all reported section sizes. -.El -.Sh EXIT STATUS -.Ex -std -.Sh EXAMPLES -To display the section sizes for -.Pa /bin/ls -use: -.Bd -literal -$ size /bin/ls -text data bss dec hex filename -20975 540 392 21907 5593 /bin/ls -.Ed -.Pp -To display sizes and total for -.Pa /bin/ls -and -.Pa /bin/dd -in hexadecimal, use: -.Bd -literal -$ size -tx /bin/ls /bin/dd -text data bss dec hex filename -0x51ef 0x21c 0x188 21907 5593 /bin/ls -0x3df5 0x170 0x200 16741 4165 /bin/dd -0x8fe4 0x38c 0x388 38648 96f8 (TOTALS) -.Ed -.Pp -To display section sizes for -.Pa /bin/ls -in System V format use: -.Bd -literal -$ size -A /bin/ls -/bin/ls : -section size addr -\&.interp 21 4194704 -\&.note.ABI-tag 24 4194728 -\&.hash 624 4194752 -\&.dynsym 2088 4195376 -\&.dynstr 810 4197464 -\&.rela.dyn 120 4198280 -\&.rela.plt 1656 4198400 -\&.init 19 4200056 -\&.plt 1120 4200076 -\&.text 15224 4201200 -\&.fini 14 4216424 -\&.rodata 1472 4216448 -\&.data 80 5267456 -\&.eh_frame 1624 5267536 -\&.dynamic 384 5269160 -\&.ctors 16 5269544 -\&.dtors 16 5269560 -\&.jcr 8 5269576 -\&.got 576 5269584 -\&.bss 528 5270176 -\&.comment 686 0 -Total 27110 -.Ed -.Sh SEE ALSO -.Xr ar 1 , -.Xr nm 1 , -.Xr objdump 1 , -.Xr readelf 1 , -.Xr strings 1 , -.Xr elf 3 , -.Xr gelf 3 -.Rs -.%A "AT&T Unix Systems Labs" -.%T "System V Application Binary Interface" -.%O http://www.sco.com/developers/gabi/ -.Re -.Sh HISTORY -The -.Nm -utility first appeared in -.At v6 . -.Sh AUTHORS -.An -nosplit -The -.Nm -utility was re-written by -.An S. Sam Arun Raj Aq Mt samarunraj@gmail.com -This manual page was written by -.An S. Sam Arun Raj Aq Mt samarunraj@gmail.com diff --git a/contrib/elftoolchain/size/size.c b/contrib/elftoolchain/size/size.c deleted file mode 100644 index 4976fceb..00000000 --- a/contrib/elftoolchain/size/size.c +++ /dev/null @@ -1,926 +0,0 @@ -/*- - * Copyright (c) 2007 S.Sam Arun Raj - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -#define BUF_SIZE 1024 -#define ELF_ALIGN(val,x) (((val)+(x)-1) & ~((x)-1)) -#define SIZE_VERSION_STRING "size 1.0" - -enum return_code { - RETURN_OK, - RETURN_NOINPUT, - RETURN_DATAERR, - RETURN_USAGE -}; - -enum output_style { - STYLE_BERKELEY, - STYLE_SYSV -}; - -enum radix_style { - RADIX_OCTAL, - RADIX_DECIMAL, - RADIX_HEX -}; - -static uint64_t bss_size, data_size, text_size, total_size; -static uint64_t bss_size_total, data_size_total, text_size_total; -static int show_totals; -static int size_option; -static enum radix_style radix = RADIX_DECIMAL; -static enum output_style style = STYLE_BERKELEY; -static const char *default_args[2] = { "a.out", NULL }; - -static struct { - int row; - int col; - int *width; - char ***tbl; -} *tb; - -enum { - OPT_FORMAT, - OPT_RADIX -}; - -static struct option size_longopts[] = { - { "format", required_argument, &size_option, OPT_FORMAT }, - { "help", no_argument, NULL, 'h' }, - { "radix", required_argument, &size_option, OPT_RADIX }, - { "totals", no_argument, NULL, 't' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0 } -}; - -static void berkeley_calc(GElf_Shdr *); -static void berkeley_footer(const char *, const char *, const char *); -static void berkeley_header(void); -static void berkeley_totals(void); -static int handle_core(char const *, Elf *elf, GElf_Ehdr *); -static void handle_core_note(Elf *, GElf_Ehdr *, GElf_Phdr *, char **); -static int handle_elf(char const *); -static void handle_phdr(Elf *, GElf_Ehdr *, GElf_Phdr *, uint32_t, - const char *); -static void show_version(void); -static void sysv_header(const char *, Elf_Arhdr *); -static void sysv_footer(void); -static void sysv_calc(Elf *, GElf_Ehdr *, GElf_Shdr *); -static void usage(void); -static void tbl_new(int); -static void tbl_print(const char *, int); -static void tbl_print_num(uint64_t, enum radix_style, int); -static void tbl_append(void); -static void tbl_flush(void); - -/* - * size utility using elf(3) and gelf(3) API to list section sizes and - * total in elf files. Supports only elf files (core dumps in elf - * included) that can be opened by libelf, other formats are not supported. - */ -int -main(int argc, char **argv) -{ - int ch, r, rc; - const char **files, *fn; - - rc = RETURN_OK; - - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - while ((ch = getopt_long(argc, argv, "ABVdhotx", size_longopts, - NULL)) != -1) - switch((char)ch) { - case 'A': - style = STYLE_SYSV; - break; - case 'B': - style = STYLE_BERKELEY; - break; - case 'V': - show_version(); - break; - case 'd': - radix = RADIX_DECIMAL; - break; - case 'o': - radix = RADIX_OCTAL; - break; - case 't': - show_totals = 1; - break; - case 'x': - radix = RADIX_HEX; - break; - case 0: - switch (size_option) { - case OPT_FORMAT: - if (*optarg == 's' || *optarg == 'S') - style = STYLE_SYSV; - else if (*optarg == 'b' || *optarg == 'B') - style = STYLE_BERKELEY; - else { - warnx("unrecognized format \"%s\".", - optarg); - usage(); - } - break; - case OPT_RADIX: - r = strtol(optarg, NULL, 10); - if (r == 8) - radix = RADIX_OCTAL; - else if (r == 10) - radix = RADIX_DECIMAL; - else if (r == 16) - radix = RADIX_HEX; - else { - warnx("unsupported radix \"%s\".", - optarg); - usage(); - } - break; - default: - err(EXIT_FAILURE, "Error in option handling."); - /*NOTREACHED*/ - } - break; - case 'h': - case '?': - default: - usage(); - /* NOTREACHED */ - } - argc -= optind; - argv += optind; - - files = (argc == 0) ? default_args : (void *) argv; - - while ((fn = *files) != NULL) { - rc = handle_elf(fn); - if (rc != RETURN_OK) - warnx(rc == RETURN_NOINPUT ? - "'%s': No such file" : - "%s: File format not recognized", fn); - files++; - } - if (style == STYLE_BERKELEY) { - if (show_totals) - berkeley_totals(); - tbl_flush(); - } - return (rc); -} - -static int -xlatetom(Elf *elf, GElf_Ehdr *elfhdr, void *_src, void *_dst, - Elf_Type type, size_t size) -{ - Elf_Data src, dst; - - src.d_buf = _src; - src.d_type = type; - src.d_version = elfhdr->e_version; - src.d_size = size; - dst.d_buf = _dst; - dst.d_version = elfhdr->e_version; - dst.d_size = size; - return (gelf_xlatetom(elf, &dst, &src, elfhdr->e_ident[EI_DATA]) != - NULL ? 0 : 1); -} - -#define NOTE_OFFSET_32(nhdr, namesz, offset) \ - ((char *)nhdr + sizeof(Elf32_Nhdr) + \ - ELF_ALIGN((int32_t)namesz, 4) + offset) - -#define NOTE_OFFSET_64(nhdr, namesz, offset) \ - ((char *)nhdr + sizeof(Elf32_Nhdr) + \ - ELF_ALIGN((int32_t)namesz, 8) + offset) - -#define PID32(nhdr, namesz, offset) \ - (pid_t)*((int *)((uintptr_t)NOTE_OFFSET_32(nhdr, \ - namesz, offset))); - -#define PID64(nhdr, namesz, offset) \ - (pid_t)*((int *)((uintptr_t)NOTE_OFFSET_64(nhdr, \ - namesz, offset))); - -#define NEXT_NOTE(elfhdr, descsz, namesz, offset) do { \ - if (elfhdr->e_ident[EI_CLASS] == ELFCLASS32) { \ - offset += ELF_ALIGN((int32_t)descsz, 4) + \ - sizeof(Elf32_Nhdr) + \ - ELF_ALIGN((int32_t)namesz, 4); \ - } else { \ - offset += ELF_ALIGN((int32_t)descsz, 8) + \ - sizeof(Elf32_Nhdr) + \ - ELF_ALIGN((int32_t)namesz, 8); \ - } \ -} while (0) - -/* - * Parse individual note entries inside a PT_NOTE segment. - */ -static void -handle_core_note(Elf *elf, GElf_Ehdr *elfhdr, GElf_Phdr *phdr, - char **cmd_line) -{ - size_t max_size, segment_end; - uint64_t raw_size; - GElf_Off offset; - static pid_t pid; - uintptr_t ver; - Elf32_Nhdr *nhdr, nhdr_l; - static int reg_pseudo = 0, reg2_pseudo = 0, regxfp_pseudo = 0; - char buf[BUF_SIZE], *data, *name; - - if (elf == NULL || elfhdr == NULL || phdr == NULL) - return; - - data = elf_rawfile(elf, &max_size); - offset = phdr->p_offset; - if (offset >= max_size || phdr->p_filesz > max_size - offset) { - warnx("invalid PHDR offset"); - return; - } - segment_end = phdr->p_offset + phdr->p_filesz; - - while (data != NULL && offset + sizeof(Elf32_Nhdr) < segment_end) { - nhdr = (Elf32_Nhdr *)(uintptr_t)((char*)data + offset); - memset(&nhdr_l, 0, sizeof(Elf32_Nhdr)); - if (xlatetom(elf, elfhdr, &nhdr->n_type, &nhdr_l.n_type, - ELF_T_WORD, sizeof(Elf32_Word)) != 0 || - xlatetom(elf, elfhdr, &nhdr->n_descsz, &nhdr_l.n_descsz, - ELF_T_WORD, sizeof(Elf32_Word)) != 0 || - xlatetom(elf, elfhdr, &nhdr->n_namesz, &nhdr_l.n_namesz, - ELF_T_WORD, sizeof(Elf32_Word)) != 0) - break; - - if (offset + sizeof(Elf32_Nhdr) + - ELF_ALIGN(nhdr_l.n_namesz, 4) + - ELF_ALIGN(nhdr_l.n_descsz, 4) >= segment_end) { - warnx("invalid note header"); - return; - } - - name = (char *)((char *)nhdr + sizeof(Elf32_Nhdr)); - switch (nhdr_l.n_type) { - case NT_PRSTATUS: { - raw_size = 0; - if (elfhdr->e_ident[EI_OSABI] == ELFOSABI_FREEBSD && - nhdr_l.n_namesz == 0x8 && - !strcmp(name,"FreeBSD")) { - if (elfhdr->e_ident[EI_CLASS] == ELFCLASS32) { - raw_size = (uint64_t)*((uint32_t *) - (uintptr_t)(name + - ELF_ALIGN((int32_t) - nhdr_l.n_namesz, 4) + 8)); - ver = (uintptr_t)NOTE_OFFSET_32(nhdr, - nhdr_l.n_namesz,0); - if (*((int *)ver) == 1) - pid = PID32(nhdr, - nhdr_l.n_namesz, 24); - } else { - raw_size = *((uint64_t *)(uintptr_t) - (name + ELF_ALIGN((int32_t) - nhdr_l.n_namesz, 8) + 16)); - ver = (uintptr_t)NOTE_OFFSET_64(nhdr, - nhdr_l.n_namesz,0); - if (*((int *)ver) == 1) - pid = PID64(nhdr, - nhdr_l.n_namesz, 40); - } - (void)xlatetom(elf, elfhdr, &raw_size, - &raw_size, ELF_T_WORD, sizeof(uint64_t)); - (void)xlatetom(elf, elfhdr, &pid, &pid, - ELF_T_WORD, sizeof(pid_t)); - } - - if (raw_size != 0 && style == STYLE_SYSV) { - (void) snprintf(buf, BUF_SIZE, "%s/%d", - ".reg", pid); - tbl_append(); - tbl_print(buf, 0); - tbl_print_num(raw_size, radix, 1); - tbl_print_num(0, radix, 2); - if (!reg_pseudo) { - tbl_append(); - tbl_print(".reg", 0); - tbl_print_num(raw_size, radix, 1); - tbl_print_num(0, radix, 2); - reg_pseudo = 1; - text_size_total += raw_size; - } - text_size_total += raw_size; - } - } - break; - case NT_FPREGSET: /* same as NT_PRFPREG */ - if (style == STYLE_SYSV) { - (void) snprintf(buf, BUF_SIZE, - "%s/%d", ".reg2", pid); - tbl_append(); - tbl_print(buf, 0); - tbl_print_num(nhdr_l.n_descsz, radix, 1); - tbl_print_num(0, radix, 2); - if (!reg2_pseudo) { - tbl_append(); - tbl_print(".reg2", 0); - tbl_print_num(nhdr_l.n_descsz, radix, - 1); - tbl_print_num(0, radix, 2); - reg2_pseudo = 1; - text_size_total += nhdr_l.n_descsz; - } - text_size_total += nhdr_l.n_descsz; - } - break; - case NT_AUXV: - if (style == STYLE_SYSV) { - tbl_append(); - tbl_print(".auxv", 0); - tbl_print_num(nhdr_l.n_descsz, radix, 1); - tbl_print_num(0, radix, 2); - text_size_total += nhdr_l.n_descsz; - } - break; - case NT_PRXFPREG: - if (style == STYLE_SYSV) { - (void) snprintf(buf, BUF_SIZE, "%s/%d", - ".reg-xfp", pid); - tbl_append(); - tbl_print(buf, 0); - tbl_print_num(nhdr_l.n_descsz, radix, 1); - tbl_print_num(0, radix, 2); - if (!regxfp_pseudo) { - tbl_append(); - tbl_print(".reg-xfp", 0); - tbl_print_num(nhdr_l.n_descsz, radix, - 1); - tbl_print_num(0, radix, 2); - regxfp_pseudo = 1; - text_size_total += nhdr_l.n_descsz; - } - text_size_total += nhdr_l.n_descsz; - } - break; - case NT_PSINFO: - case NT_PRPSINFO: { - /* FreeBSD 64-bit */ - if (nhdr_l.n_descsz == 0x78 && - !strcmp(name,"FreeBSD")) { - *cmd_line = strdup(NOTE_OFFSET_64(nhdr, - nhdr_l.n_namesz, 33)); - /* FreeBSD 32-bit */ - } else if (nhdr_l.n_descsz == 0x6c && - !strcmp(name,"FreeBSD")) { - *cmd_line = strdup(NOTE_OFFSET_32(nhdr, - nhdr_l.n_namesz, 25)); - } - /* Strip any trailing spaces */ - if (*cmd_line != NULL) { - char *s; - - s = *cmd_line + strlen(*cmd_line); - while (s > *cmd_line) { - if (*(s-1) != 0x20) break; - s--; - } - *s = 0; - } - break; - } - case NT_PSTATUS: - case NT_LWPSTATUS: - default: - break; - } - NEXT_NOTE(elfhdr, nhdr_l.n_descsz, nhdr_l.n_namesz, offset); - } -} - -/* - * Handles program headers except for PT_NOTE, when sysv output style is - * chosen, prints out the segment name and length. For berkely output - * style only PT_LOAD segments are handled, and text, - * data, bss size is calculated for them. - */ -static void -handle_phdr(Elf *elf, GElf_Ehdr *elfhdr, GElf_Phdr *phdr, - uint32_t idx, const char *name) -{ - uint64_t addr, size; - int split; - char buf[BUF_SIZE]; - - if (elf == NULL || elfhdr == NULL || phdr == NULL) - return; - - split = (phdr->p_memsz > 0) && (phdr->p_filesz > 0) && - (phdr->p_memsz > phdr->p_filesz); - - if (style == STYLE_SYSV) { - (void) snprintf(buf, BUF_SIZE, - "%s%d%s", name, idx, (split ? "a" : "")); - tbl_append(); - tbl_print(buf, 0); - tbl_print_num(phdr->p_filesz, radix, 1); - tbl_print_num(phdr->p_vaddr, radix, 2); - text_size_total += phdr->p_filesz; - if (split) { - size = phdr->p_memsz - phdr->p_filesz; - addr = phdr->p_vaddr + phdr->p_filesz; - (void) snprintf(buf, BUF_SIZE, "%s%d%s", name, - idx, "b"); - text_size_total += phdr->p_memsz - phdr->p_filesz; - tbl_append(); - tbl_print(buf, 0); - tbl_print_num(size, radix, 1); - tbl_print_num(addr, radix, 2); - } - } else { - if (phdr->p_type != PT_LOAD) - return; - if ((phdr->p_flags & PF_W) && !(phdr->p_flags & PF_X)) { - data_size += phdr->p_filesz; - if (split) - data_size += phdr->p_memsz - phdr->p_filesz; - } else { - text_size += phdr->p_filesz; - if (split) - text_size += phdr->p_memsz - phdr->p_filesz; - } - } -} - -/* - * Given a core dump file, this function maps program headers to segments. - */ -static int -handle_core(char const *name, Elf *elf, GElf_Ehdr *elfhdr) -{ - GElf_Phdr phdr; - uint32_t i; - char *core_cmdline; - const char *seg_name; - - if (name == NULL || elf == NULL || elfhdr == NULL) - return (RETURN_DATAERR); - if (elfhdr->e_shnum != 0 || elfhdr->e_type != ET_CORE) - return (RETURN_DATAERR); - - seg_name = core_cmdline = NULL; - if (style == STYLE_SYSV) - sysv_header(name, NULL); - else - berkeley_header(); - - for (i = 0; i < elfhdr->e_phnum; i++) { - if (gelf_getphdr(elf, i, &phdr) != NULL) { - if (phdr.p_type == PT_NOTE) { - handle_phdr(elf, elfhdr, &phdr, i, "note"); - handle_core_note(elf, elfhdr, &phdr, - &core_cmdline); - } else { - switch(phdr.p_type) { - case PT_NULL: - seg_name = "null"; - break; - case PT_LOAD: - seg_name = "load"; - break; - case PT_DYNAMIC: - seg_name = "dynamic"; - break; - case PT_INTERP: - seg_name = "interp"; - break; - case PT_SHLIB: - seg_name = "shlib"; - break; - case PT_PHDR: - seg_name = "phdr"; - break; - case PT_GNU_EH_FRAME: - seg_name = "eh_frame_hdr"; - break; - case PT_GNU_STACK: - seg_name = "stack"; - break; - default: - seg_name = "segment"; - } - handle_phdr(elf, elfhdr, &phdr, i, seg_name); - } - } - } - - if (style == STYLE_BERKELEY) { - if (core_cmdline != NULL) { - berkeley_footer(core_cmdline, name, - "core file invoked as"); - } else { - berkeley_footer(core_cmdline, name, "core file"); - } - } else { - sysv_footer(); - if (core_cmdline != NULL) { - (void) printf(" (core file invoked as %s)\n\n", - core_cmdline); - } else { - (void) printf(" (core file)\n\n"); - } - } - free(core_cmdline); - return (RETURN_OK); -} - -/* - * Given an elf object,ar(1) filename, and based on the output style - * and radix format the various sections and their length will be printed - * or the size of the text, data, bss sections will be printed out. - */ -static int -handle_elf(char const *name) -{ - GElf_Ehdr elfhdr; - GElf_Shdr shdr; - Elf *elf, *elf1; - Elf_Arhdr *arhdr; - Elf_Scn *scn; - Elf_Cmd elf_cmd; - int exit_code, fd; - - if (name == NULL) - return (RETURN_NOINPUT); - - if ((fd = open(name, O_RDONLY, 0)) < 0) - return (RETURN_NOINPUT); - - elf_cmd = ELF_C_READ; - elf1 = elf_begin(fd, elf_cmd, NULL); - while ((elf = elf_begin(fd, elf_cmd, elf1)) != NULL) { - arhdr = elf_getarhdr(elf); - if (elf_kind(elf) == ELF_K_NONE && arhdr == NULL) { - (void) elf_end(elf); - (void) elf_end(elf1); - (void) close(fd); - return (RETURN_DATAERR); - } - if (elf_kind(elf) != ELF_K_ELF || - (gelf_getehdr(elf, &elfhdr) == NULL)) { - elf_cmd = elf_next(elf); - (void) elf_end(elf); - warnx("%s: File format not recognized", - arhdr != NULL ? arhdr->ar_name : name); - continue; - } - /* Core dumps are handled separately */ - if (elfhdr.e_shnum == 0 && elfhdr.e_type == ET_CORE) { - exit_code = handle_core(name, elf, &elfhdr); - (void) elf_end(elf); - (void) elf_end(elf1); - (void) close(fd); - return (exit_code); - } else { - scn = NULL; - if (style == STYLE_BERKELEY) { - berkeley_header(); - while ((scn = elf_nextscn(elf, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) != NULL) - berkeley_calc(&shdr); - } - } else { - sysv_header(name, arhdr); - scn = NULL; - while ((scn = elf_nextscn(elf, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) != NULL) - sysv_calc(elf, &elfhdr, &shdr); - } - } - if (style == STYLE_BERKELEY) { - if (arhdr != NULL) { - berkeley_footer(name, arhdr->ar_name, - "ex"); - } else { - berkeley_footer(name, NULL, "ex"); - } - } else { - sysv_footer(); - } - } - elf_cmd = elf_next(elf); - (void) elf_end(elf); - } - (void) elf_end(elf1); - (void) close(fd); - return (RETURN_OK); -} - -/* - * Sysv formatting helper functions. - */ -static void -sysv_header(const char *name, Elf_Arhdr *arhdr) -{ - - text_size_total = 0; - if (arhdr != NULL) - (void) printf("%s (ex %s):\n", arhdr->ar_name, name); - else - (void) printf("%s :\n", name); - tbl_new(3); - tbl_append(); - tbl_print("section", 0); - tbl_print("size", 1); - tbl_print("addr", 2); -} - -static void -sysv_calc(Elf *elf, GElf_Ehdr *elfhdr, GElf_Shdr *shdr) -{ - char *section_name; - - section_name = elf_strptr(elf, elfhdr->e_shstrndx, - (size_t) shdr->sh_name); - if ((shdr->sh_type == SHT_SYMTAB || - shdr->sh_type == SHT_STRTAB || shdr->sh_type == SHT_RELA || - shdr->sh_type == SHT_REL) && shdr->sh_addr == 0) - return; - tbl_append(); - tbl_print(section_name, 0); - tbl_print_num(shdr->sh_size, radix, 1); - tbl_print_num(shdr->sh_addr, radix, 2); - text_size_total += shdr->sh_size; -} - -static void -sysv_footer(void) -{ - tbl_append(); - tbl_print("Total", 0); - tbl_print_num(text_size_total, radix, 1); - tbl_flush(); - putchar('\n'); -} - -/* - * berkeley style output formatting helper functions. - */ -static void -berkeley_header(void) -{ - static int printed; - - text_size = data_size = bss_size = 0; - if (!printed) { - tbl_new(6); - tbl_append(); - tbl_print("text", 0); - tbl_print("data", 1); - tbl_print("bss", 2); - if (radix == RADIX_OCTAL) - tbl_print("oct", 3); - else - tbl_print("dec", 3); - tbl_print("hex", 4); - tbl_print("filename", 5); - printed = 1; - } -} - -static void -berkeley_calc(GElf_Shdr *shdr) -{ - if (shdr != NULL) { - if (!(shdr->sh_flags & SHF_ALLOC)) - return; - if ((shdr->sh_flags & SHF_ALLOC) && - ((shdr->sh_flags & SHF_EXECINSTR) || - !(shdr->sh_flags & SHF_WRITE))) - text_size += shdr->sh_size; - else if ((shdr->sh_flags & SHF_ALLOC) && - (shdr->sh_flags & SHF_WRITE) && - (shdr->sh_type != SHT_NOBITS)) - data_size += shdr->sh_size; - else - bss_size += shdr->sh_size; - } -} - -static void -berkeley_totals(void) -{ - uint64_t grand_total; - - grand_total = text_size_total + data_size_total + bss_size_total; - tbl_append(); - tbl_print_num(text_size_total, radix, 0); - tbl_print_num(data_size_total, radix, 1); - tbl_print_num(bss_size_total, radix, 2); - if (radix == RADIX_OCTAL) - tbl_print_num(grand_total, RADIX_OCTAL, 3); - else - tbl_print_num(grand_total, RADIX_DECIMAL, 3); - tbl_print_num(grand_total, RADIX_HEX, 4); -} - -static void -berkeley_footer(const char *name, const char *ar_name, const char *msg) -{ - char buf[BUF_SIZE]; - - total_size = text_size + data_size + bss_size; - if (show_totals) { - text_size_total += text_size; - bss_size_total += bss_size; - data_size_total += data_size; - } - - tbl_append(); - tbl_print_num(text_size, radix, 0); - tbl_print_num(data_size, radix, 1); - tbl_print_num(bss_size, radix, 2); - if (radix == RADIX_OCTAL) - tbl_print_num(total_size, RADIX_OCTAL, 3); - else - tbl_print_num(total_size, RADIX_DECIMAL, 3); - tbl_print_num(total_size, RADIX_HEX, 4); - if (ar_name != NULL && name != NULL) - (void) snprintf(buf, BUF_SIZE, "%s (%s %s)", ar_name, msg, - name); - else if (ar_name != NULL && name == NULL) - (void) snprintf(buf, BUF_SIZE, "%s (%s)", ar_name, msg); - else - (void) snprintf(buf, BUF_SIZE, "%s", name); - tbl_print(buf, 5); -} - - -static void -tbl_new(int col) -{ - - assert(tb == NULL); - assert(col > 0); - if ((tb = calloc(1, sizeof(*tb))) == NULL) - err(EXIT_FAILURE, "calloc"); - if ((tb->tbl = calloc(col, sizeof(*tb->tbl))) == NULL) - err(EXIT_FAILURE, "calloc"); - if ((tb->width = calloc(col, sizeof(*tb->width))) == NULL) - err(EXIT_FAILURE, "calloc"); - tb->col = col; - tb->row = 0; -} - -static void -tbl_print(const char *s, int col) -{ - int len; - - assert(tb != NULL && tb->col > 0 && tb->row > 0 && col < tb->col); - assert(s != NULL && tb->tbl[col][tb->row - 1] == NULL); - if ((tb->tbl[col][tb->row - 1] = strdup(s)) == NULL) - err(EXIT_FAILURE, "strdup"); - len = strlen(s); - if (len > tb->width[col]) - tb->width[col] = len; -} - -static void -tbl_print_num(uint64_t num, enum radix_style rad, int col) -{ - char buf[BUF_SIZE]; - - (void) snprintf(buf, BUF_SIZE, (rad == RADIX_DECIMAL ? "%ju" : - ((rad == RADIX_OCTAL) ? "0%jo" : "0x%jx")), (uintmax_t) num); - tbl_print(buf, col); -} - -static void -tbl_append(void) -{ - int i; - - assert(tb != NULL && tb->col > 0); - tb->row++; - for (i = 0; i < tb->col; i++) { - tb->tbl[i] = realloc(tb->tbl[i], sizeof(*tb->tbl[i]) * tb->row); - if (tb->tbl[i] == NULL) - err(EXIT_FAILURE, "realloc"); - tb->tbl[i][tb->row - 1] = NULL; - } -} - -static void -tbl_flush(void) -{ - const char *str; - int i, j; - - if (tb == NULL) - return; - - assert(tb->col > 0); - for (i = 0; i < tb->row; i++) { - if (style == STYLE_BERKELEY) - printf(" "); - for (j = 0; j < tb->col; j++) { - str = (tb->tbl[j][i] != NULL ? tb->tbl[j][i] : ""); - if (style == STYLE_SYSV && j == 0) - printf("%-*s", tb->width[j], str); - else if (style == STYLE_BERKELEY && j == tb->col - 1) - printf("%s", str); - else - printf("%*s", tb->width[j], str); - if (j == tb->col -1) - putchar('\n'); - else - printf(" "); - } - } - - for (i = 0; i < tb->col; i++) { - for (j = 0; j < tb->row; j++) { - if (tb->tbl[i][j]) - free(tb->tbl[i][j]); - } - free(tb->tbl[i]); - } - free(tb->tbl); - free(tb->width); - free(tb); - tb = NULL; -} - -#define USAGE_MESSAGE "\ -Usage: %s [options] file ...\n\ - Display sizes of ELF sections.\n\n\ - Options:\n\ - --format=format Display output in specified format. Supported\n\ - values are `berkeley' and `sysv'.\n\ - --help Display this help message and exit.\n\ - --radix=radix Display numeric values in the specified radix.\n\ - Supported values are: 8, 10 and 16.\n\ - --totals Show cumulative totals of section sizes.\n\ - --version Display a version identifier and exit.\n\ - -A Equivalent to `--format=sysv'.\n\ - -B Equivalent to `--format=berkeley'.\n\ - -V Equivalent to `--version'.\n\ - -d Equivalent to `--radix=10'.\n\ - -h Same as option --help.\n\ - -o Equivalent to `--radix=8'.\n\ - -t Equivalent to option --totals.\n\ - -x Equivalent to `--radix=16'.\n" - -static void -usage(void) -{ - (void) fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -static void -show_version(void) -{ - (void) printf("%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/strings/Makefile b/contrib/elftoolchain/strings/Makefile deleted file mode 100644 index 4058f65d..00000000 --- a/contrib/elftoolchain/strings/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# $Id$ - -TOP= .. - -PROG= strings -WARNS?= 6 -DPADD= ${LIBELFTC} ${LIBELF} -LDADD= -lelftc -lelf - -.include "${TOP}/mk/elftoolchain.prog.mk" - diff --git a/contrib/elftoolchain/strings/os.NetBSD.mk b/contrib/elftoolchain/strings/os.NetBSD.mk deleted file mode 100644 index ae214e31..00000000 --- a/contrib/elftoolchain/strings/os.NetBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -# TODO(#511): Revert after the source tree is -Wconversion clean. -WARNS=5 diff --git a/contrib/elftoolchain/strings/strings.1 b/contrib/elftoolchain/strings/strings.1 deleted file mode 100644 index a041167e..00000000 --- a/contrib/elftoolchain/strings/strings.1 +++ /dev/null @@ -1,165 +0,0 @@ -.\" Copyright (c) 2007 S.Sam Arun Raj -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $Id$ -.\" -.Dd January 24, 2016 -.Dt STRINGS 1 -.Os -.Sh NAME -.Nm strings -.Nd "print the strings of printable characters in files" -.Sh SYNOPSIS -.Nm -.Op Fl a | Fl -all -.Op Fl e Ar encoding | Fl -encoding= Ns Ar encoding -.Op Fl f | Fl -print-file-name -.Op Fl h | Fl -help -.Op Fl n Ar number | Fl -bytes= Ns Ar number | Fl Ar number -.Op Fl o -.Op Fl t Ar radix | Fl -radix= Ns Ar radix -.Op Fl v | Fl -version -.Op Ar -.Sh DESCRIPTION -For each -.Ar file -specified, the -.Nm -utility prints contiguous sequences of printable -characters that are at least -.Va n -characters long and are followed by an unprintable character. -The default value of -.Va n -is 4. -By default, the -.Nm -utility only scans the initialized and loaded sections of ELF objects; -for other file types, the entire file is scanned. -The -.Nm -utility is mainly used for determining the contents of non-text files. -.Pp -If no file name is specified as an argument, standard input is read. -.Pp -The following options are available: -.Bl -tag -width indent -.It Fl a | Fl -all -For ELF objects, scan the entire file for printable strings. -.It Fl e Ar encoding | Fl -encoding= Ns Ar encoding -Select the character encoding to be used while searching for strings. -Valid values for argument -.Ar encoding -are: -.Bl -tag -width indent -compact -.It Ar s -for single 7-bit-byte characters (ASCII, ISO 8859). -.It Ar S -for single 8-bit-byte characters. -.It Ar l -for 16-bit little-endian. -.It Ar b -for 16-bit big-endian. -.It Ar L -for 32-bit little-endian. -.It Ar B -for 32-bit big-endian. -.El -The default is to assume that characters are encoded using a single -7-bit byte. -.It Fl f | Fl -print-file-name -Print the name of the file before each string. -.It Fl h | Fl -help -Print a usage summary and exit. -.It Xo -.Fl n Ar number | -.Fl -bytes= Ns Ar number | -.Fl Ar number -.Xc -Print the contiguous character sequence of at least -.Ar number -characters long, instead of the default of 4 characters. -Argument -.Ar number -should specify a positive decimal integer. -.It Fl o -Equivalent to specifying -.Fl t Ar o . -.It Fl t Ar radix | Fl -radix= Ns Ar radix -Print the offset from the start of the file before each string -using the specified radix. -Valid values for argument -.Ar radix -are: -.Bl -tag -width indent -compact -.It Ar d -for decimal -.It Ar o -for octal -.It Ar x -for hexadecimal -.El -.It Fl v | Fl -version -Display a version identifier and exit. -.El -.Sh EXIT STATUS -.Ex -std -.Sh EXAMPLES -To display strings in -.Pa /bin/ls -use: -.Dl "$ strings /bin/ls" -.Pp -To display strings in all sections of -.Pa /bin/ln -use: -.Dl "$ strings -a /bin/ln" -.Pp -To display strings in all sections of -.Pa /bin/cat -prefixed with the filename and the offset within the file use: -.Dl "$ strings -a -f -t x /bin/cat" -.Sh SEE ALSO -.Xr ar 1 , -.Xr nm 1 , -.Xr objdump 1 , -.Xr ranlib , -.Xr readelf 1 , -.Xr size 1 -.Sh HISTORY -The first FreeBSD -.Nm -utility appeared in -.Fx v3. -It was later discontinued in -.Fx v5 , -when i386-only a.out format was dropped in favor of ELF. -.Sh AUTHORS -.An -nosplit -The -.Nm -utility was re-written by -.An S.Sam Arun Raj Aq Mt samarunraj@gmail.com . -This manual page was written by -.An S.Sam Arun Raj Aq Mt samarunraj@gmail.com . diff --git a/contrib/elftoolchain/strings/strings.c b/contrib/elftoolchain/strings/strings.c deleted file mode 100644 index 00e59868..00000000 --- a/contrib/elftoolchain/strings/strings.c +++ /dev/null @@ -1,448 +0,0 @@ -/*- - * Copyright (c) 2007 S.Sam Arun Raj - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "_elftc.h" - -ELFTC_VCSID("$Id$"); - -enum radix_style { - RADIX_DECIMAL, - RADIX_HEX, - RADIX_OCTAL -}; - -enum encoding_style { - ENCODING_7BIT, - ENCODING_8BIT, - ENCODING_16BIT_BIG, - ENCODING_16BIT_LITTLE, - ENCODING_32BIT_BIG, - ENCODING_32BIT_LITTLE -}; - -#define PRINTABLE(c) \ - ((c) >= 0 && (c) <= 255 && \ - ((c) == '\t' || isprint((c)) || \ - (encoding == ENCODING_8BIT && (c) > 127))) - -static int encoding_size, entire_file, show_filename, show_loc; -static enum encoding_style encoding; -static enum radix_style radix; -static intmax_t min_len; - -static struct option strings_longopts[] = { - { "all", no_argument, NULL, 'a'}, - { "bytes", required_argument, NULL, 'n'}, - { "encoding", required_argument, NULL, 'e'}, - { "help", no_argument, NULL, 'h'}, - { "print-file-name", no_argument, NULL, 'f'}, - { "radix", required_argument, NULL, 't'}, - { "version", no_argument, NULL, 'v'}, - { NULL, 0, NULL, 0 } -}; - -long getcharacter(void); -int handle_file(const char *); -int handle_elf(const char *, int); -int handle_binary(const char *, int); -int find_strings(const char *, off_t, off_t); -void show_version(void); -void usage(void); - -/* - * strings(1) extracts text(contiguous printable characters) - * from elf and binary files. - */ -int -main(int argc, char **argv) -{ - int ch, rc; - - rc = 0; - min_len = 0; - encoding_size = 1; - if (elf_version(EV_CURRENT) == EV_NONE) - errx(EXIT_FAILURE, "ELF library initialization failed: %s", - elf_errmsg(-1)); - - while ((ch = getopt_long(argc, argv, "1234567890ae:fhn:ot:Vv", - strings_longopts, NULL)) != -1) { - switch ((char)ch) { - case 'a': - entire_file = 1; - break; - case 'e': - if (*optarg == 's') { - encoding = ENCODING_7BIT; - } else if (*optarg == 'S') { - encoding = ENCODING_8BIT; - } else if (*optarg == 'b') { - encoding = ENCODING_16BIT_BIG; - encoding_size = 2; - } else if (*optarg == 'B') { - encoding = ENCODING_32BIT_BIG; - encoding_size = 4; - } else if (*optarg == 'l') { - encoding = ENCODING_16BIT_LITTLE; - encoding_size = 2; - } else if (*optarg == 'L') { - encoding = ENCODING_32BIT_LITTLE; - encoding_size = 4; - } else - usage(); - /* NOTREACHED */ - break; - case 'f': - show_filename = 1; - break; - case 'n': - min_len = strtoimax(optarg, (char**)NULL, 10); - if (min_len <= 0) - errx(EX_USAGE, "option -n should specify a " - "positive decimal integer."); - break; - case 'o': - show_loc = 1; - radix = RADIX_OCTAL; - break; - case 't': - show_loc = 1; - if (*optarg == 'd') - radix = RADIX_DECIMAL; - else if (*optarg == 'o') - radix = RADIX_OCTAL; - else if (*optarg == 'x') - radix = RADIX_HEX; - else - usage(); - /* NOTREACHED */ - break; - case 'v': - case 'V': - show_version(); - /* NOTREACHED */ - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - min_len *= 10; - min_len += ch - '0'; - break; - case 'h': - case '?': - default: - usage(); - /* NOTREACHED */ - } - } - argc -= optind; - argv += optind; - - if (min_len == 0) - min_len = 4; - if (*argv == NULL) - rc = find_strings("{standard input}", 0, 0); - else while (*argv != NULL) { - if (handle_file(*argv) != 0) - rc = 1; - argv++; - } - return (rc); -} - -int -handle_file(const char *name) -{ - int fd, rt; - - if (name == NULL) - return (1); - if (freopen(name, "rb", stdin) == NULL) { - warnx("'%s': %s", name, strerror(errno)); - return (1); - } - - fd = fileno(stdin); - if (fd < 0) - return (1); - rt = handle_elf(name, fd); - return (rt); -} - -/* - * Files not understood by handle_elf, will be passed off here and will - * treated as a binary file. This would include text file, core dumps ... - */ -int -handle_binary(const char *name, int fd) -{ - struct stat buf; - - memset(&buf, 0, sizeof(buf)); - (void)lseek(fd, 0, SEEK_SET); - if (!fstat(fd, &buf)) - return (find_strings(name, 0, buf.st_size)); - return (1); -} - -/* - * Will analyse a file to see if it ELF, other files including ar(1), - * core dumps are passed off and treated as flat binary files. Unlike - * GNU size in FreeBSD this routine will not treat ELF object from - * different archs as flat binary files(has to overridden using -a). - */ -int -handle_elf(const char *name, int fd) -{ - GElf_Ehdr elfhdr; - GElf_Shdr shdr; - Elf *elf; - Elf_Scn *scn; - int rc; - - rc = 0; - /* If entire file is chosen, treat it as a binary file */ - if (entire_file) - return (handle_binary(name, fd)); - - (void)lseek(fd, 0, SEEK_SET); - elf = elf_begin(fd, ELF_C_READ, NULL); - if (elf_kind(elf) != ELF_K_ELF) { - (void)elf_end(elf); - return (handle_binary(name, fd)); - } - - if (gelf_getehdr(elf, &elfhdr) == NULL) { - (void)elf_end(elf); - warnx("%s: ELF file could not be processed", name); - return (1); - } - - if (elfhdr.e_shnum == 0 && elfhdr.e_type == ET_CORE) { - (void)elf_end(elf); - return (handle_binary(name, fd)); - } else { - scn = NULL; - while ((scn = elf_nextscn(elf, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) == NULL) - continue; - if (shdr.sh_type != SHT_NOBITS && - (shdr.sh_flags & SHF_ALLOC) != 0) { - rc = find_strings(name, shdr.sh_offset, - shdr.sh_size); - } - } - } - (void)elf_end(elf); - return (rc); -} - -/* - * Retrieves a character from input stream based on the encoding - * type requested. - */ -long -getcharacter(void) -{ - long rt; - int i; - char buf[4], c; - - rt = EOF; - for(i = 0; i < encoding_size; i++) { - c = getc(stdin); - if (feof(stdin)) - return (EOF); - buf[i] = c; - } - - switch (encoding) { - case ENCODING_7BIT: - case ENCODING_8BIT: - rt = buf[0]; - break; - case ENCODING_16BIT_BIG: - rt = (buf[0] << 8) | buf[1]; - break; - case ENCODING_16BIT_LITTLE: - rt = buf[0] | (buf[1] << 8); - break; - case ENCODING_32BIT_BIG: - rt = ((long) buf[0] << 24) | ((long) buf[1] << 16) | - ((long) buf[2] << 8) | buf[3]; - break; - case ENCODING_32BIT_LITTLE: - rt = buf[0] | ((long) buf[1] << 8) | ((long) buf[2] << 16) | - ((long) buf[3] << 24); - break; - } - return (rt); -} - -/* - * Input stream stdin is read until the end of file is reached or until - * the section size is reached in case of ELF files. Contiguous - * characters of >= min_size(default 4) will be displayed. - */ -int -find_strings(const char *name, off_t offset, off_t size) -{ - off_t cur_off, start_off; - char *obuf; - long c; - int i; - - if ((obuf = (char*)calloc(1, min_len + 1)) == NULL) { - fprintf(stderr, "Unable to allocate memory: %s\n", - strerror(errno)); - return (1); - } - - (void)fseeko(stdin, offset, SEEK_SET); - cur_off = offset; - start_off = 0; - for (;;) { - if ((offset + size) && (cur_off >= offset + size)) - break; - start_off = cur_off; - memset(obuf, 0, min_len + 1); - for(i = 0; i < min_len; i++) { - c = getcharacter(); - if (c == EOF && feof(stdin)) - goto _exit1; - if (PRINTABLE(c)) { - obuf[i] = c; - obuf[i + 1] = 0; - cur_off += encoding_size; - } else { - if (encoding == ENCODING_8BIT && - (uint8_t)c > 127) { - obuf[i] = c; - obuf[i + 1] = 0; - cur_off += encoding_size; - continue; - } - cur_off += encoding_size; - break; - } - } - - if (i >= min_len && ((cur_off <= offset + size) || - !(offset + size))) { - if (show_filename) - printf("%s: ", name); - if (show_loc) { - switch (radix) { - case RADIX_DECIMAL: - printf("%7ju ", (uintmax_t)start_off); - break; - case RADIX_HEX: - printf("%7jx ", (uintmax_t)start_off); - break; - case RADIX_OCTAL: - printf("%7jo ", (uintmax_t)start_off); - break; - } - } - printf("%s", obuf); - - for (;;) { - if ((offset + size) && - (cur_off >= offset + size)) - break; - c = getcharacter(); - cur_off += encoding_size; - if (encoding == ENCODING_8BIT && - (uint8_t)c > 127) { - putchar(c); - continue; - } - if (!PRINTABLE(c) || c == EOF) - break; - putchar(c); - } - putchar('\n'); - } - } -_exit1: - free(obuf); - return (0); -} - -#define USAGE_MESSAGE "\ -Usage: %s [options] [file...]\n\ - Print contiguous sequences of printable characters.\n\n\ - Options:\n\ - -a | --all Scan the entire file for strings.\n\ - -e ENC | --encoding=ENC Select the character encoding to use.\n\ - -f | --print-file-name Print the file name before each string.\n\ - -h | --help Print a help message and exit.\n\ - -n N | --bytes=N | -N Print sequences with 'N' or more characters.\n\ - -o Print offsets in octal.\n\ - -t R | --radix=R Print offsets using the radix named by 'R'.\n\ - -v | --version Print a version identifier and exit.\n" - -void -usage(void) -{ - - fprintf(stderr, USAGE_MESSAGE, ELFTC_GETPROGNAME()); - exit(EXIT_FAILURE); -} - -void -show_version(void) -{ - - printf("%s (%s)\n", ELFTC_GETPROGNAME(), elftc_version()); - exit(EXIT_SUCCESS); -} diff --git a/contrib/elftoolchain/test/Makefile b/contrib/elftoolchain/test/Makefile deleted file mode 100644 index 770753bc..00000000 --- a/contrib/elftoolchain/test/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# $Id$ -# -# TET-based test suites used by the Elftoolchain project. -# - -TOP= .. - -# Build TET and LIBTEST first. -SUBDIR+= libtest -SUBDIR+= tet - -# Build tests for libraries. -SUBDIR+= libelf -SUBDIR+= libelftc -SUBDIR+= libdwarf - -# Build tests for tools. -SUBDIR+= ar -SUBDIR+= elfcopy -SUBDIR+= elfdump -SUBDIR+= nm - -.if !make(install) -.include "$(TOP)/mk/elftoolchain.subdir.mk" -.else -install: .SILENT .PHONY - echo Nothing to install. -.endif diff --git a/contrib/elftoolchain/test/ar/Makefile b/contrib/elftoolchain/test/ar/Makefile deleted file mode 100644 index f541ff47..00000000 --- a/contrib/elftoolchain/test/ar/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# $Id$ - -TOP= ../.. -AR= ${TOP}/ar/ar - -TEST_LOG= test.log - -.MAIN: all - -.PHONY: clobber execute test - -execute test: ${AR} - /bin/sh run.sh - -clean clobber: - rm -f ${TEST_LOG} - -SUBDIR= plugin - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/test/ar/README b/contrib/elftoolchain/test/ar/README deleted file mode 100644 index ca2f86a0..00000000 --- a/contrib/elftoolchain/test/ar/README +++ /dev/null @@ -1,15 +0,0 @@ -: $Id$ - -ar(1) test suite depends on libarchive and uudecode(1). To install -the dependencies under Debian/Ubuntu Linux: - - # apt-get install libarchive-dev - # apt-get install sharutils - -To build ar(1) test suite: - - % make - -To execute ar(1) test suite: - - % make execute diff --git a/contrib/elftoolchain/test/ar/func.sh b/contrib/elftoolchain/test/ar/func.sh deleted file mode 100644 index 3705e902..00000000 --- a/contrib/elftoolchain/test/ar/func.sh +++ /dev/null @@ -1,219 +0,0 @@ -# $Id$ -# `init' initializes test engine global data. -# -init() { - THISDIR=`/bin/pwd` - TOPDIR=${THISDIR}/../.. - AR=${TOPDIR}/ar/ar - RANLIB=${TOPDIR}/ar/ranlib - - # keep a record of total tests and number of tests passed. - TOTALCT=/tmp/bsdar-test-total - PASSEDCT=/tmp/bsdar-test-passed - echo 0 > ${TOTALCT} - echo 0 > ${PASSEDCT} -} - -# `inittest' initializes individual test process. (set up temp dirs, -# make copies of files used in the test if necessary, etc.) -# -inittest() { - if [ $# -ne 2 ]; then - echo "usage: inittest tcname tcdir" - exit 1 - fi - - TC=$1 - TCDIR=$2 - TESTDIR=/tmp/bsdar-${TC} - OUTDIR=/tmp/bsdar-${TC}-out - RLTDIR=/tmp/bsdar-${TC}-rlt - rm -rf ${TESTDIR} - rm -rf ${OUTDIR} - rm -rf ${RLTDIR} - mkdir -p ${TESTDIR} || exit 1 - mkdir -p ${OUTDIR} || exit 1 - mkdir -p ${RLTDIR} || exit 1 - - if [ -d "${TCDIR}/in" ]; then - cp -R ${TCDIR}/in/* ${TESTDIR} || exit 1 - fi - - if [ -d "${TCDIR}/out" ]; then - cp -R ${TCDIR}/out/* ${RLTDIR} || exit 1 - fi -} - -# `extshar' extracts shar file in the specific dir, -# then uudecode the resulting file(s). -# -extshar() { - if [ $# -ne 1 ]; then - echo "usage: extshar dir" - exit 1 - fi - - cd $1 || exit 1 - for f in *.shar; do - sh $f > /dev/null 2>&1 || exit 1 - rm -rf $f - done - - udecode $1 -} - -# `udecode' calls uudecode to decode files encoded by -# uuencode in the specific dir. -# -udecode() { - if [ $# -ne 1 ]; then - echo "usage: uudecode dir" - exit 1 - fi - - cd $1 || exit 1 - find . -type f -a -name '*.uu' -execdir uudecode {} \; - find . -type f -name '*.uu' -delete -} - -# `runcmd' runs `cmd' on the work/result dir. -# -# cmd: command to execute -# loc: work/result -# rec: true (keep a record of the stdout and stderr) -# false (do not record) -# -runcmd() { - if [ $# -ne 3 ]; then - echo "usage: runcmd cmd loc rec" - exit 1 - fi - - # prefix executable with abolute pathname. - executable=`echo $1 | cut -f 1 -d ' '` - relapath=`dirname ${executable}` - cd ${THISDIR} - absolpath=`cd ${relapath} && /bin/pwd` - newcmd=${absolpath}/`basename ${executable}`" "`echo $1 | cut -f 2- -d ' '` - redirin=`echo $newcmd | cut -f 2- -d '<'` - if [ "$redirin" != "$newcmd" ]; then - newcmd=`echo $newcmd | cut -f 1 -d '<'` - redirin=`echo ${redirin} | sed 's/^ *\(.*\) *$/\1/'` - fi - - if [ "$2" = work ]; then - cd ${TESTDIR} || exit 1 - elif [ "$2" = result ]; then - cd ${RLTDIR} || exit 1 - else - echo "loc must be work or result." - exit 1 - fi - - if [ "$3" = true ]; then - if [ "$redirin" != "$newcmd" ]; then - ${newcmd} < ${redirin} > ${OUTDIR}/${TC}.out 2> ${OUTDIR}/${TC}.err - else - ${newcmd} > ${OUTDIR}/${TC}.out 2> ${OUTDIR}/${TC}.err - fi - echo $? > ${OUTDIR}/${TC}.eval - elif [ "$3" = false ]; then - if [ "$redirin" != "$newcmd" ]; then - ${newcmd} < ${redirin} - else - ${newcmd} - fi - else - echo "rec must be true of false." - exit 1 - fi - - cd ${THISDIR} -} - -# `rundiff' performs standard diff to compare exit value, -# stdout output, stderr output and resulting files with -# "standard answers". -# -rundiff() { - # $1 indicates whether we should compare resulting files. - if [ $# -ne 1 ]; then - echo "usage: rundiff [true|false]" - exit 1 - fi - cd ${THISDIR} || exit 1 - if [ -f ${TCDIR}/${TC}.eval ]; then - incct ${TOTALCT} - diff -urN ${TCDIR}/${TC}.eval ${OUTDIR}/${TC}.eval - if [ $? -eq 0 ]; then - echo "${TC} exit value - ok" - incct ${PASSEDCT} - else - echo "${TC} exit value - not ok" - fi - fi - - if [ -f ${TCDIR}/${TC}.out ]; then - incct ${TOTALCT} - diff -urN ${TCDIR}/${TC}.out ${OUTDIR}/${TC}.out - if [ $? -eq 0 ]; then - echo "${TC} stdout - ok" - incct ${PASSEDCT} - else - echo "${TC} stdout - not ok" - fi - fi - - if [ -f ${TCDIR}/${TC}.err ]; then - incct ${TOTALCT} - diff -urN ${TCDIR}/${TC}.err ${OUTDIR}/${TC}.err - if [ $? -eq 0 ]; then - echo "${TC} stderr - ok" - incct ${PASSEDCT} - else - echo "${TC} stderr - not ok" - fi - fi - - if [ "$1" = true ]; then - incct ${TOTALCT} - diff -urN ${RLTDIR} ${TESTDIR} - if [ $? -eq 0 ]; then - echo "${TC} resulting files - ok" - incct ${PASSEDCT} - else - echo "${TC} resulting files - not ok" - fi - fi -} - -# `innct' increase specified counter by 1. -incct() { - if [ $# -ne 1 ]; then - echo "usage: incct counterfile" - exit 1 - fi - if [ -f $1 ]; then - exec 3< $1 - read val <&3 - exec 3<&- - newval=`expr ${val} + 1` - echo ${newval} > $1 - else - echo "$1 not exist" - exit 1 - fi -} - -# `statistic' shows number of test passed. -# -statistic() { - exec 3< ${TOTALCT} - read tval <&3 - exec 3<&- - exec 3< ${PASSEDCT} - read pval <&3 - exec 3<&- - - echo "${pval} out of ${tval} passed." -} diff --git a/contrib/elftoolchain/test/ar/plugin/Makefile b/contrib/elftoolchain/test/ar/plugin/Makefile deleted file mode 100644 index 09713960..00000000 --- a/contrib/elftoolchain/test/ar/plugin/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# $Id$ - -PLUGINS= ardiff teraser - -all: ${PLUGINS} - -${PLUGINS}: -.for plugin in ${.TARGET} - ${MAKE} -f Makefile.${plugin} -.endfor - -test: .PHONY - -clean cleandepend clobber depend: .PHONY -.for plugin in ${PLUGINS} - ${MAKE} -f Makefile.${plugin} ${.TARGET} -.endfor diff --git a/contrib/elftoolchain/test/ar/plugin/Makefile.ardiff b/contrib/elftoolchain/test/ar/plugin/Makefile.ardiff deleted file mode 100644 index 50e9a706..00000000 --- a/contrib/elftoolchain/test/ar/plugin/Makefile.ardiff +++ /dev/null @@ -1,18 +0,0 @@ -# $Id$ - -TOP= ../../.. - -PROG= ardiff - -NOMAN= noman - -WARNS?= 6 - -DPADD= ${LIBARCHIVE} -LDADD= -larchive - -.include "${TOP}/mk/elftoolchain.prog.mk" - -.if ${OS_HOST} == "DragonFly" -LDADD+= -lbz2 -.endif diff --git a/contrib/elftoolchain/test/ar/plugin/Makefile.teraser b/contrib/elftoolchain/test/ar/plugin/Makefile.teraser deleted file mode 100644 index 7ac7d743..00000000 --- a/contrib/elftoolchain/test/ar/plugin/Makefile.teraser +++ /dev/null @@ -1,11 +0,0 @@ -# $Id$ - -TOP= ../../.. - -PROG= teraser - -NOMAN= noman - -WARNS?= 6 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/test/ar/plugin/ardiff.c b/contrib/elftoolchain/test/ar/plugin/ardiff.c deleted file mode 100644 index 8e38f049..00000000 --- a/contrib/elftoolchain/test/ar/plugin/ardiff.c +++ /dev/null @@ -1,254 +0,0 @@ -/* Selectively compare two ar archives. - * Usage: - * ardiff [-ni] [-t name] ar1 ar2 - * Options: - * -c compare member content. (This implies -s) - * -n compare member name. - * -i compare member mtime. - * -l compare archive length (member count). - * -s compare member size. - * -t specify the test name. - * - * By default, it compares nothing and consider the test "not ok" - * iff it encounters errors while reading archive. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define COUNTER "/tmp/bsdar-test-total" -#define PASSED "/tmp/bsdar-test-passed" - -static void usage(void); -static void filediff(const char *tc, const char *msg, const char *e); -static void filesame(const char *tc); -static void incct(const char *pathname); - -int -main(int argc, char **argv) -{ - struct archive *a1; - struct archive *a2; - struct archive_entry *e1; - struct archive_entry *e2; - const char *tc; - char *buf1; - char *buf2; - char checkcont; - char checklen; - char checkname; - char checksize; - char checktime; - char a1end; - size_t size1; - size_t size2; - int opt, r; - - /* - * Parse command line options. - */ - checkcont = 0; - checklen = 0; - checkname = 0; - checksize = 0; - checktime = 0; - tc = NULL; - while ((opt = getopt(argc, argv, "cilnst:")) != -1) { - switch(opt) { - case 'c': - checkcont = 1; - break; - case 'i': - checktime = 1; - break; - case 'l': - checklen = 1; - break; - case 'n': - checkname = 1; - break; - case 's': - checksize = 1; - case 't': - tc = optarg; - break; - default: - usage(); - } - } - - argc -= optind; - argv += optind; - if (argc != 2) - usage(); - - /* Open file 1 */ - a1 = archive_read_new(); - archive_read_support_format_ar(a1); - if (archive_read_open_filename(a1, argv[0], - 1024*10)) { - warnx("%s", archive_error_string(a1)); - filediff(tc, "archive open failed", NULL); - } - - /* Open file 2 */ - a2 = archive_read_new(); - archive_read_support_format_ar(a2); - if (archive_read_open_filename(a2, argv[1], - 1024*10)) { - warnx("%s", archive_error_string(a2)); - filediff(tc, "archive open failed", NULL); - } - - /* Main loop */ - a1end = 0; - size1 = 0; - size2 = 0; - for (;;) { - /* - * Read header from each archive, compare length. - */ - r = archive_read_next_header(a1, &e1); - if (r == ARCHIVE_EOF) - a1end = 1; - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY || - r == ARCHIVE_FATAL) { - warnx("%s", archive_error_string(a1)); - filediff(tc, "archive data error", NULL); - } - r = archive_read_next_header(a2, &e2); - if (r == ARCHIVE_EOF) { - if (a1end > 0) - break; - else { - if (checklen) - filediff(tc, "length differ", NULL); - break; - } - } - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY || - r == ARCHIVE_FATAL) { - warnx("%s", archive_error_string(a2)); - filediff(tc, "archive data error", NULL); - } - if (a1end > 0) { - if (checklen) - filediff(tc, "length differ", NULL); - break; - } - - /* - * Check member name if required. - */ - if (checkname) { - if (strcmp(archive_entry_pathname(e1), - archive_entry_pathname(e2)) != 0) - filediff(tc, "member name differ", - archive_entry_pathname(e1)); - } - - /* - * Compare time if required. - */ - if (checktime) { - if (archive_entry_mtime(e1) != - archive_entry_mtime(e2)) - filediff(tc, "member mtime differ", - archive_entry_pathname(e1)); - } - - /* - * Compare member size if required. - */ - if (checksize || checkcont) { - size1 = (size_t) archive_entry_size(e1); - size2 = (size_t) archive_entry_size(e2); - if (size1 != size2) - filediff(tc, "member size differ", - archive_entry_pathname(e1)); - } - - /* - * Compare member content if required. - */ - if (checkcont) { - if ((buf1 = malloc(size1)) == NULL) - filediff(tc, "not enough memory", NULL); - if ((buf2 = malloc(size2)) == NULL) - filediff(tc, "not enough memory", NULL); - if ((size_t) archive_read_data(a1, buf1, size1) != - size1) - filediff(tc, "archive_read_data failed", - archive_entry_pathname(e1)); - if ((size_t) archive_read_data(a2, buf2, size2) != - size2) - filediff(tc, "archive_read_data failed", - archive_entry_pathname(e1)); - if (memcmp(buf1, buf2, size1) != 0) - filediff(tc, "member content differ", - archive_entry_pathname(e1)); - free(buf1); - free(buf2); - } - - /* Proceed to next header. */ - } - - /* Passed! */ - filesame(tc); - exit(EXIT_SUCCESS); -} - -static void -filediff(const char *tc, const char *msg, const char *e) -{ - if (e != NULL) - fprintf(stdout, "%s - archive diff not ok (%s (entry: %s))\n", - tc, msg, e); - else - fprintf(stdout, "%s - archive diff not ok (%s)\n", tc, msg); - - incct(COUNTER); - exit(EXIT_SUCCESS); -} - -static void -filesame(const char *tc) -{ - fprintf(stdout, "%s - archive diff ok\n", tc); - incct(COUNTER); - incct(PASSED); -} - -static void -incct(const char *pathname) -{ - FILE *fp; - char buf[10]; - - if ((fp = fopen(pathname, "r")) != NULL) { - if (fgets(buf, 10, fp) != buf) - perror("fgets"); - snprintf(buf, 10, "%d\n", atoi(buf) + 1); - fclose(fp); - } - if ((fp = fopen(pathname, "w")) != NULL) { - fputs(buf, fp); - fclose(fp); - } -} - -static void -usage(void) -{ - fprintf(stderr, "usage: ardiff archive1 archive2\n"); - exit(EXIT_FAILURE); -} diff --git a/contrib/elftoolchain/test/ar/plugin/os.FreeBSD.mk b/contrib/elftoolchain/test/ar/plugin/os.FreeBSD.mk deleted file mode 100644 index c29af705..00000000 --- a/contrib/elftoolchain/test/ar/plugin/os.FreeBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -DPADD+= ${LIBBZ2} -LDADD+= -lbz2 diff --git a/contrib/elftoolchain/test/ar/plugin/teraser.c b/contrib/elftoolchain/test/ar/plugin/teraser.c deleted file mode 100644 index 97851973..00000000 --- a/contrib/elftoolchain/test/ar/plugin/teraser.c +++ /dev/null @@ -1,147 +0,0 @@ -/* 1. Erase archive symbol table's timestamp from ar archives, - * make it easy to `diff'. (option -e) - * 2. Check the sanity of timestamp. (option -c) - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define TSPOS 24 /* position of timestamp */ -#define TSLEN 10 /* length of timstamp string */ -#define TDELAY 3 /* max delay allowed */ -#define COUNTER "/tmp/bsdar-test-total" -#define PASSED "/tmp/bsdar-test-passed" - -static void usage(void); - -int -main(int argc, char **argv) -{ - int opt; - char checktime; - char erasetime; - char buf[TSLEN + 1]; - char *tc; - int fd; - int ts; - time_t now; - FILE *ct, *ps; - - - checktime = 0; - erasetime = 0; - tc = NULL; - while ((opt = getopt(argc, argv, "cet:")) != -1) { - switch(opt) { - case 'c': - checktime = 1; - break; - case 'e': - erasetime = 1; - break; - case 't': - tc = optarg; - break; - default: - usage(); - } - } - - argv += optind; - if (*argv == NULL) - usage(); - - for (; *argv != NULL; argv++) { - if (checktime) { - if ((fd = open(*argv, O_RDONLY)) == -1) { - fprintf(stderr, - "open %s failed(%s), skipping time check...\n,", - *argv, strerror(errno)); - goto ctend; - } - if ((lseek(fd, TSPOS, SEEK_SET)) == -1) { - fprintf(stderr, - "lseek %s failed(%s), skipping...\n,", - *argv, strerror(errno)); - goto ctend; - } - if ((read(fd, buf, TSLEN)) != TSLEN) { - fprintf(stderr, - "read %s failed(%s), skipping...\n,", - *argv, strerror(errno)); - goto ctend; - } - buf[TSLEN] = '\0'; - ts = atoi(buf); - now = time(NULL); - if (ts <= now && ts >= now - TDELAY) { - fprintf(stderr, "%s - timestamp ok\n", tc); - if ((ps = fopen(PASSED, "r")) != NULL) { - if (fgets(buf, TSLEN, ps) != buf) - perror("fgets"); - snprintf(buf, TSLEN, "%d\n", - atoi(buf) + 1); - fclose(ps); - } - if ((ps = fopen(PASSED, "w")) != NULL) { - fputs(buf, ps); - fclose(ps); - } - } else { - fprintf(stderr, "%s - timestamp not ok\n", tc); - } - if ((ct = fopen(COUNTER, "r")) != NULL) { - if (fgets(buf, TSLEN, ct) != buf) - perror("fgets"); - snprintf(buf, TSLEN, "%d\n", atoi(buf) + 1); - fclose(ct); - } - if ((ct = fopen(COUNTER, "w")) != NULL) { - fputs(buf, ct); - fclose(ct); - } - - ctend: - close(fd); - } - - if (erasetime) { - if ((fd = open(*argv, O_RDWR)) == -1) { - fprintf(stderr, - "open %s failed(%s), skipping time check...\n,", - *argv, strerror(errno)); - goto etend; - } - if ((lseek(fd, TSPOS, SEEK_SET)) == -1) { - fprintf(stderr, "lseek %s failed(%s), skipping...,", - *argv, strerror(errno)); - goto etend; - } - memset(buf, 32, TSLEN); - if ((write(fd, buf, TSLEN)) != TSLEN) - fprintf(stderr, - "read %s failed(%s), skipping...\n,", - *argv, strerror(errno)); - - etend: - close(fd); - } - } - - exit(EXIT_SUCCESS); -} - -static void -usage(void) -{ - fprintf(stderr, "usage: teraser [-ce] [-t name] archive ...\n"); - exit(EXIT_FAILURE); -} diff --git a/contrib/elftoolchain/test/ar/run.sh b/contrib/elftoolchain/test/ar/run.sh deleted file mode 100644 index 57d01444..00000000 --- a/contrib/elftoolchain/test/ar/run.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# $Id$ -# -# Run all the tests. - -test_log=test.log - -# setup cleanup trap -trap 'rm -rf /tmp/bsdar-*' 0 2 3 15 - -# load functions. -. ./func.sh - -# global initialization. -init - -exec 4>&1 # Save stdout for later use. - -exec >${test_log} 2>&1 -echo @TEST-RUN: `date` - -# run tests. -for f in tc/*; do - if [ -d $f ]; then - . $f/`basename $f`.sh - fi -done - -# show statistics. -echo @RESULT: `statistic` - -# Exit with an error code if any test had failed. -if grep 'not ok' ${test_log} >&4; then - exit 1 -fi diff --git a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.err b/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.err deleted file mode 100644 index 852a7613..00000000 --- a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.err +++ /dev/null @@ -1 +0,0 @@ -ar: warning: can't open file: nonexistent: No such file or directory diff --git a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.eval b/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.eval deleted file mode 100644 index d00491fd..00000000 --- a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.eval +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.out b/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.sh b/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.sh deleted file mode 100644 index 7918ee5b..00000000 --- a/contrib/elftoolchain/test/ar/tc/add-nonexistent/add-nonexistent.sh +++ /dev/null @@ -1,4 +0,0 @@ -# $Id$ -inittest add-nonexistent tc/add-nonexistent -runcmd "${AR} rc archive.a nonexistent" work true -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/add-nonexistent/out/archive.a b/contrib/elftoolchain/test/ar/tc/add-nonexistent/out/archive.a deleted file mode 100644 index 8b277f0d..00000000 --- a/contrib/elftoolchain/test/ar/tc/add-nonexistent/out/archive.a +++ /dev/null @@ -1 +0,0 @@ -! diff --git a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.err b/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.err deleted file mode 100644 index 7257ba01..00000000 --- a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.err +++ /dev/null @@ -1 +0,0 @@ -ar: warning: cannot add archive "liba.a" to itself diff --git a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.eval b/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.eval deleted file mode 100644 index d00491fd..00000000 --- a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.eval +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.out b/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.sh b/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.sh deleted file mode 100644 index a79926f4..00000000 --- a/contrib/elftoolchain/test/ar/tc/addself-liba/addself-liba.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest addself-liba tc/addself-liba -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} cru liba.a liba.a" work true -rundiff false -runcmd "plugin/teraser -c -t addself-liba liba.a" work false -runcmd "plugin/ardiff -cnlt addself-liba ${RLTDIR}/liba.a liba.a" work false diff --git a/contrib/elftoolchain/test/ar/tc/addself-liba/in/addself-liba.in.shar b/contrib/elftoolchain/test/ar/tc/addself-liba/in/addself-liba.in.shar deleted file mode 100644 index eacc1e4b..00000000 --- a/contrib/elftoolchain/test/ar/tc/addself-liba/in/addself-liba.in.shar +++ /dev/null @@ -1,98 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# liba.a.uu -# -echo x - liba.a.uu -sed 's/^X//' >liba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Ma1_has_a_long_file_name.o.uu << 'END-of-a1_has_a_long_file_name.o.uu' -Xbegin 644 a1_has_a_long_file_name.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2_is_15_long.o.uu << 'END-of-a2_is_15_long.o.uu' -Xbegin 644 a2_is_15_long.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3_normal.o.uu << 'END-of-a3_normal.o.uu' -Xbegin 644 a3_normal.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3_normal.o.uu -echo x - a4_is_16_long_.o.uu -sed 's/^X//' >a4_is_16_long_.o.uu << 'END-of-a4_is_16_long_.o.uu' -Xbegin 644 a4_is_16_long_.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1_has_a_long_file_name.o.uu << 'END-of-a1_has_a_long_file_name.o.uu' -Xbegin 644 a1_has_a_long_file_name.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2_is_15_long.o.uu << 'END-of-a2_is_15_long.o.uu' -Xbegin 644 a2_is_15_long.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3_normal.o.uu << 'END-of-a3_normal.o.uu' -Xbegin 644 a3_normal.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3_normal.o.uu -echo x - a4_is_16_long_.o.uu -sed 's/^X//' >a4_is_16_long_.o.uu << 'END-of-a4_is_16_long_.o.uu' -Xbegin 644 a4_is_16_long_.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30U,3(R -XM.3@@(#$P,#$@(#`@("`@(#$P,#8T-"`@.#@X("`@("`@(&`*?T5,1@$!`0D` -XM``````````$``P`!``````````````#T`````````#0``````"@`"@`'```` -XM`````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0`````Z/S____) -XMPVUE'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1_has_a_long_file_name.o.uu << 'END-of-a1_has_a_long_file_name.o.uu' -Xbegin 644 a1_has_a_long_file_name.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2_non_elf.o.uu << 'END-of-a2_non_elf.o.uu' -Xbegin 644 a2_non_elf.o -X6,3(S-#4V-V%B8V1E9F=H:6IK;&UN"@`` -X` -Xend -END-of-a2_non_elf.o.uu -echo x - a3_non_elf_with_a_long_file_name.o.uu -sed 's/^X//' >a3_non_elf_with_a_long_file_name.o.uu << 'END-of-a3_non_elf_with_a_long_file_name.o.uu' -Xbegin 644 a3_non_elf_with_a_long_file_name.o -XM,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3(R,C(R,C(R,C(R,C(R,C(R,C(R,C,S,S,S -X8,S,S,S,S,S,S,S,S-34U-34U-34U-34* -X` -Xend -END-of-a3_non_elf_with_a_long_file_name.o.uu -echo x - a4_is_16_long_.o.uu -sed 's/^X//' >a4_is_16_long_.o.uu << 'END-of-a4_is_16_long_.o.uu' -Xbegin 644 a4_is_16_long_.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1_has_a_long_file_name.o.uu << 'END-of-a1_has_a_long_file_name.o.uu' -Xbegin 644 a1_has_a_long_file_name.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2_non_elf.o.uu << 'END-of-a2_non_elf.o.uu' -Xbegin 644 a2_non_elf.o -X6,3(S-#4V-V%B8V1E9F=H:6IK;&UN"@`` -X` -Xend -END-of-a2_non_elf.o.uu -echo x - a3_non_elf_with_a_long_file_name.o.uu -sed 's/^X//' >a3_non_elf_with_a_long_file_name.o.uu << 'END-of-a3_non_elf_with_a_long_file_name.o.uu' -Xbegin 644 a3_non_elf_with_a_long_file_name.o -XM,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3(R,C(R,C(R,C(R,C(R,C(R,C(R,C,S,S,S -X8,S,S,S,S,S,S,S,S-34U-34U-34U-34* -X` -Xend -END-of-a3_non_elf_with_a_long_file_name.o.uu -echo x - a4_is_16_long_.o.uu -sed 's/^X//' >a4_is_16_long_.o.uu << 'END-of-a4_is_16_long_.o.uu' -Xbegin 644 a4_is_16_long_.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1_ne.o.uu << 'END-of-a1_ne.o.uu' -Xbegin 644 a1_ne.o -X/,3(S-#4V-V%B8V1E9F<* -X` -Xend -END-of-a1_ne.o.uu -echo x - a2_ne.o.uu -sed 's/^X//' >a2_ne.o.uu << 'END-of-a2_ne.o.uu' -Xbegin 644 a2_ne.o -XM9F9F9F9F9F9F9F9F9F9F:&AH:&AH:&AH:&AH:&AH:&AH:VMK:VMK:VMK:VMK -X7:VMK:VMK;&QL;&QL;&QL;&QL;&QL;`H` -X` -Xend -END-of-a2_ne.o.uu -echo x - a3_non_elf_has_a_long_name.o.uu -sed 's/^X//' >a3_non_elf_has_a_long_name.o.uu << 'END-of-a3_non_elf_has_a_long_name.o.uu' -Xbegin 644 a3_non_elf_has_a_long_name.o -XM9F9F9F9F9F9O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]E965E965E965E965E -X&965E964* -X` -Xend -END-of-a3_non_elf_has_a_long_name.o.uu -exit - diff --git a/contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/out/archive-libnonelf-v.out.shar b/contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/out/archive-libnonelf-v.out.shar deleted file mode 100644 index 75a33235..00000000 --- a/contrib/elftoolchain/test/ar/tc/archive-libnonelf-v/out/archive-libnonelf-v.out.shar +++ /dev/null @@ -1,53 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# a1_ne.o.uu -# a2_ne.o.uu -# a3_non_elf_has_a_long_name.o.uu -# libnonelf.a.uu -# -echo x - a1_ne.o.uu -sed 's/^X//' >a1_ne.o.uu << 'END-of-a1_ne.o.uu' -Xbegin 644 a1_ne.o -X/,3(S-#4V-V%B8V1E9F<* -X` -Xend -END-of-a1_ne.o.uu -echo x - a2_ne.o.uu -sed 's/^X//' >a2_ne.o.uu << 'END-of-a2_ne.o.uu' -Xbegin 644 a2_ne.o -XM9F9F9F9F9F9F9F9F9F9F:&AH:&AH:&AH:&AH:&AH:&AH:VMK:VMK:VMK:VMK -X7:VMK:VMK;&QL;&QL;&QL;&QL;&QL;`H` -X` -Xend -END-of-a2_ne.o.uu -echo x - a3_non_elf_has_a_long_name.o.uu -sed 's/^X//' >a3_non_elf_has_a_long_name.o.uu << 'END-of-a3_non_elf_has_a_long_name.o.uu' -Xbegin 644 a3_non_elf_has_a_long_name.o -XM9F9F9F9F9F9O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]E965E965E965E965E -X&965E964* -X` -Xend -END-of-a3_non_elf_has_a_long_name.o.uu -echo x - libnonelf.a.uu -sed 's/^X//' >libnonelf.a.uu << 'END-of-libnonelf.a.uu' -Xbegin 644 libnonelf.a -XM(3QAkDep.a.ar-script.uu << '21ca52fca3d8603d40d15d6f65fd1e94' -Xbegin 644 kDep.a.ar-script -XE0U)%051%(&M$97`N80I!1$1-3T0@:T1E<"YO"E-!5D4*14Y$"@`` -X` -Xend -21ca52fca3d8603d40d15d6f65fd1e94 -echo x - kDep.o.uu -sed 's/^X//' >kDep.o.uu << 'a66b557a29668826603dd91bf8f66869' -Xbegin 644 kDep.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````+@K```` -XM`````````$```````$``&P`8`$B+/0````!32,<%``````````!(A?]U"^L8 -XM9F:09F:02(G?2(L?Z`````!(A=MFD'7N6\-F9F:09F9FD&9F9I!52(G]4TB# -XM[`A(BQT`````2(7;=!M(C5,8,<"^`````$B)[^@`````2(L;2(7;=>5(@\0( -XM6UW#9F:09F:09F:0059)B?Y!54%428GT53'M4P^V!X3`="L/MM!(B?EF9I") -XMZ,'@!HT$`HGJP>(0`=`IZ(G%#[9!`4B#P0&$P`^VT'7>2(L=`````$4Q[4B% -XMVW4-ZS=(BP-(A'SIG78 -XM2(G86UU!7$%=05[#28G=28U<)"!(B=_H`````$B%P'142(UX&$F-5"0!3(E@ -XM$$R)]DB)P^@`````387MB6L(=!=)BT4`2(D#28E=`$B)V%M=05Q!74%>PTB+ -XM!0````!(B0-(B=A(B1T`````6UU!7$%=05[#2(L]`````$B)VKX`````Z``` -XM``"_`0```.@`````9I!52(G]4TB#[`A(BQT`````2(7;=!M(C5,8,<"^```` -XM`$B)[^@`````2(L;2(7;=>5(@\0(2(GIN@(```!;7;X!````OP````#I```` -XM`&9FD$%7059!54%455-(@>PX!0``2(L%`````$C'!0``````````B7PD%$B% -XMP$B)1"08#X2?````28G'2(U$)"!(B40D".LMZ`````"+..@`````2(L]```` -XM`$B)P4B)VKX`````,<#H`````$V+/TV%_W1.08!_&#QT;D&`?QDZ28U'&DF- -XM7QA(#T38BT0D%(7`=69(C;0DL`0``$B)W^@`````A05_#28M'$$&`?`<7/G6&Z7+___](C7PD($B)WN@`````2(U\)"#K -XM#&9FD&:02(UX`<8`+[Y<````Z`````!(AY(C;0D,`0``$B-?"0@Q@,`Z`````"%P'1B3#MT)`@/ -XMA(T```!(C7PD($'&1O\`Z`````!)B<5!QD;_+TV%[0^$C@```$R)[^@````` -XM2(7`#X2*````3(U@"$R)]DR)Y^@`````A -XM2(/#`8`[+W75Z^R`?"0@`+\`````2`]%?"0(Z`````!)B<5-A>T/A7+___]` -XMB"M(C5PD(.E`_O__3(GOZ`````!`B"M(C5PD(.DK_O__#[9L)"!,C70D(.G/ -XM_O__`````1$!)0X3"P,.$0$2`1`&```")``+"SX+`PX```,6``,..@L["TD3 -XM```$)``+"SX+`P@```4D``L+/@L```8/``L+```'%P$+"SH+.PL!$P``"`T` -XM`PXZ"SL+21,```D!`4D3`1,```HA`$D3+PL```L3`0,."PLZ"SL+`1,```P- -XM``,..@L["TD3.`H```T/``L+21,```X3`0,."P4Z"SL+`1,```\-``,(.@L[ -XM"TD3.`H``!`5`2<,21,!$P``$04`21,``!(F`$D3```3$P`##CP,```4$P$+ -XM"SH+.PL!$P``%1,!"P4Z"SL+`1,``!86``,(.@L["TD3```7$P$#"`L+.@L[ -XM"P$3```8+@$##CH+.P4G#$D3(`L!$P``&04``P@Z"SL%21,``!HT``,..@L[ -XM!4D3```;-``#"#H+.P5)$P``'"X!/PP##CH+.P4G#!$!$@%`!@$3```=-``# -XM#CH+.P5)$P(&```>"P$1`1(!```?!0`##CH+.P5)$P(&```@+@$_#`,..@L[ -XM!2<,21,1`1(!0`8!$P``(1T!,1-5!E@+604``"(%`#$3```C"P%5!@``)#0` -XM,1,``"4T`#$3`@8``"8N`0,..@L["R<,21,@"P$3```G!0`##CH+.PM)$P`` -XM*#0``P@Z"SL+21,``"DN`0,..@L["R<,(`L!$P``*@L!```K-``##CH+.PM) -XM$P``+"X!/PP##CH+.PLG#!$!$@%`!@$3```M!0`##CH+.PM)$P(&```N-``# -XM#CH+.PM)$P(&```O-``##CH+.PM)$P(*```P-``#"#H+.PM)$P(*```Q'0$Q -XM$Q$!$@%8"UD+`1,``#(=`3$3$0$2`5@+60L``#,T`#$3`@H``#0A`$D3+P4` -XM`#4T``,..@L["TD3/PP\#````+@,```"```````(`0`````!```````````` -XM`````````````````````@$&``````,``````C0[`````@$(``````("!0`` -XM```#``````(V5`````("!P`````#``````(W9@````0$!6EN=``#``````(X -XM>`````($!P`````#``````(YB@````((!0`````#``````(ZG`````((!P`` -XM```""`0``````@0$``````,``````E*1`````P`````"5'\````%"`<&"`,` -XM`````R9M`````P`````#)W\````#``````,I;0````,``````RQM`````P`` -XM```#+FT````#``````,Q20````,``````S-)`````P`````#-'\````#```` -XM``,^;0````,``````U9F`````P`````#5R\!```#``````-;;0````>``V-O -XM`0``"``````#9&\!```(``````-E?P`````)?P$``'\!```*QP```'\``@$& -XM``````,``````V90`0```P`````$+QD!```#``````0RL0````L`````$`1& -XMT`$```P`````!$?0`0```B,`#``````$2&8````"(P@`#0@[````#@`````P -XM`01G1@,```]?<``$:-`!```"(P`/7W(`!&EF`````B,(#U]W``1J9@````(C -XM#`P`````!&M"`````B,0#``````$;$(````"(Q(/7V)F``1MIP$```(C&`P` -XM````!&YF`````B,H#``````$<=`!```"(V@/7W5R``1Z9@````(C<`P`````!'W-`P`` -XM`B-T#``````$?MT#```"(W`P`````!(1F`````R.( -XM`0P`````!(61`0```R.0`0P`````!(?S`P```R.8`0P`````!(C_`P```R.@ -XM`0P`````!(EF`````R.H`0P`````!(IF`````R.L`0P`````!(N&`0```R.P -XM`0`0`68```!6`P``$!````P`````%/FD$```5@!`%0&8%```,```` -XM``5!9@4```(C``P`````!4)V!0```B,(#``````%1*8%```"(R@,``````5% -XMT04```(C,`P`````!48Z`0```B,X#``````%2-<%```"(T`,``````5)YP4` -XM``,CP!`,``````5*YP4```,CP!@,``````51E`0```,CP"`,``````52E`0` -XM``,CT"`,``````53E`0```,CX"`,``````55R@````,C\"`,``````569@`` -XM``,C^"``"7\!``!V!0``"L<````'``E_`0``A@4```K'````'P`0`3H!``"@ -XM!0``$;P#```1L0```!&@!0````T(O`,```T(A@4``!`!9@```,L%```1.@$` -XM`!%V`P``$;$````1RP4````-"'8#```-"*P%```)G````.<%```*QP```/\` -XM"3H!``#W!0``"L<```#_``,`````!5>?!````P`````&+T````#``````9&^`````,`````!DL# -XM`0```P`````&4`X!```#``````95&0$```,`````!EJ\`````P`````&7R0! -XM```+`````!`'+ID&```,```````:#E`<```P`````!H1%`0```B,`#``````&A2X&```"(P0,``````:& -XM.08```(C"`P`````!H=$!@```B,*#``````&B&4&```"(PP,``````:)(P8` -XM``(C$`P`````!HI%`0```B,4#``````&C'`&```"(Q@,``````:-<`8```(C -XM*`P`````!HYP!@```B,X#``````&ET\&```"(T@,``````:8#08```(C4`P` -XM````!ID"!@```B-8#``````&FA@&```"(UP,``````:;;0````(C8`P````` -XM!IQ;`````B-D#``````&GG`&```"(V@`#@`````(`0@RZ`<```P`````"#-M -XM`````B,`#``````(-$D````"(P0,``````@U,`````(C!@P`````"#8P```` -XM`B,'#``````(.>@'```"(P@`"7\!``#X!P``"L<```#_``L`````4`E"D0@` -XM``P`````"4-F`````B,`#``````)1(H````"(P@,``````E%B@````(C$`P` -XM````"49V`P```B,8#``````)1V8````"(R`,``````E(B@````(C*`P````` -XM"4F*`````B,P#``````)2F8````"(S@,``````E+\P,```(C0`P`````"4R7 -XM"````B-(`!,``````0T(D0@``!9$25(`"4WX!P``%T1%4``@"B'M"```#``` -XM```*(^T(```"(P`,``````HE>`````(C"`P`````"B><`0```B,0#``````* -XM*?,(```"(Q@`#0BH"```"7\!```#"0``"L<````#``,`````"BKM"```&``` -XM```!(@$!>`````%#"0``&7-T<@`!(0&\`P``&@`````!(P%X````&V,``20! -XM9@`````<`0`````!9`$!``````````````````````````"4"0``'0`````! -XM90$#"0```````!X`````````````````````&@`````!:0$#"0`````<`0`` -XM```!#P$!``````````````````````````#7"0``'P`````!#@'7"0`````` -XM`!T``````1`!`PD`````````#0@%!```(`$``````34!`0,)```````````` -XM`````````````````'H*```?``````$T`;P#````````'P`````!-`&<`0`` -XM`````!T``````38!>``````````=``````$W`0,)````````'0`````!.`$# -XM"0```````"$."0````````$V`2(@"0``(P`````D+`D``"4X"0`````````` -XM`!P!``````$#`0$``````````````````````````+T*```?``````$"`=<) -XM````````'0`````!!`$#"0`````````F``````%!`78#```!Y0H``"<````` -XM`4!V`P``*'!S>@`!0G8#````*0`````!7@$!0@L``"<``````5UV`P``*'!S -XM>@`!7W8#```J*P`````!;7\!```H7!E -XM7!E7!E+F@`!``````)`@```````````^0"`7`?JO(Z -XM47<#HG_3C[@(*H$#(N\#<<4##RL#<1WP""H#&.$(J@,>"+<#8;<#"3G&7(Q( -XM`W@Y05@W.RUR3[.?-G0#;8T(.@.X?[>/N`@J@D:`*@.H?P@="!-S`WJI3C98 -XM`R2-`PRW`U`")0$##7]T`P[]`Q!_`PD(.0A-6(![6P-*"!T#%_T#ZGX(?W`# -XM(N'P1J$#"8T#<8T#$)M&`PG3`WK%/Y&N5%:`5Y/_""VM`PI_1CH#2G\#"8T# -XM+IM&5D8#87$(>`,1C<*"S`(/``$!)7,Z"@H`(%P*"25S``H*`"X`:T1E<#H@ -XM4VMI<'!I;F<@)R5S)R`M("5S(0H````*3W5T(&]F(&UE;6]R>2$@*')E<75E -XM`````````````````````(``````````EP`````````! -XM`%27`````````/D``````````0!Q@(` -XM```````V`P````````$`7C8#````````=@,````````!`%-V`P```````,T# -XM`````````0!>S0,```````#E`P````````$`4^4#````````[P,````````! -XM`%[O`P````````,$`````````0!3`P0```````!5!`````````$`7@`````` -XM``````````````"A`P```````+8#`````````0!0,00````````Y!``````` -XM``$`4``````````````````````D`@```````,$"`````````0!=Q@(````` -XM``!5!`````````$`70````````````````````!7`````@``````O`P``$,) -XM``!D97!#;&5A;G5P`)0)``!D97!0@H` -XM`&1E<%!R:6YT`$X+``!D97!/<'1I;6EZ90``````+`````(```````@````` -XM````````````500`````````````````````````````C0````````"/```` -XM`````)``````````P@``````````````````````````````C0````````"/ -XM`````````)``````````P@``````````````````````````````&`(````` -XM``!)`@```````,8"````````500```````!1`@```````)H"```````````` -XM`````````````````/`"````````]P(````````!`P````````8#```````` -XM``````````````````````8#````````4@,````````;!````````%4$```` -XM````N@,````````3!````````)X#````````JP,```````"(`P```````)8# -XM````````>P,```````"``P```````&<#````````=@,```````!?`P`````` -XM`&(#`````````````````````````````"T#````````-@,````````;!``` -XM`````%4$````````Y0,````````3!````````+H#````````W`,```````"> -XM`P```````*L#````````B`,```````"6`P```````'L#````````@`,````` -XM``!G`P```````'8#````````7P,```````!B`P```````$`#````````4@,` -XM````````````````````````````:P,```````!V`P```````!L$```````` -XM1@0````````#!````````!,$````````N@,```````#-`P```````)X#```` -XM````JP,```````"(`P```````)8#````````>P,```````"``P`````````` -XM``````````````````!S9&)M`'!S>D9I;&5N86UE`&9I>'-L87-H`%]#=7)R -XM96YT4G5N94QO8V%L90!F1FEX0V%S90!D97!/<'1I;6EZ90!U;G-I9VYE9"!I -XM;G0`7U]S<'5TE-T87)T`&9P;W-?=`!D97!0`!C8VA&:6QE;F%M90!? -XM7W)U;F5T>7!E7V5X=`!?7W9AF5?=`!?7V)L:W-I>F5?=`!? -XM7W5I9%]T`%]?=6EN=#A?=`!D97!0'0`9%]N86UL96X`7W-E96L`7U]R -XM=6YE7W0`7W5B=68``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&#(```````#8 -XM`P```````!H````3````"``````````8``````````D````#```````````` -XM`````````````%`V````````Q0````````````````````$````````````` -XM```````````````````````````````````````!````!`#Q_P`````````` -XM`````````````````P`!`````````````````````````````P`#```````` -XM`````````````````````P`$`````````````````````````````P`%```` -XM`````````````````````````P`&`````````````````````````````P`( -XM```````````````````````(`````0`$````````````"``````````````` -XM`P`*`````````````````````````````P`+```````````````````````` -XM`````P`,`````````````````````````````P`.```````````````````` -XM`````````P`0`````````````````````````````P`1```````````````` -XM`````````````P`3`````````````````````````````P`5```````````` -XM`````````````````P`6`````````````````````````````P`7```````` -XM```````````````0````$@`!````````````-``````````;````$``````` -XM```````````````````@````$@`!`$``````````-P`````````N````$``` -XM```````````````````````V````$@`!`(``````````#@$````````]```` -XM$`````````````````````````!$````$`````````````````````````!+ -XM````$`````````````````````````!5````$``````````````````````` -XM``!:````$@`!`)`!````````30````````!C````$``````````````````` -XM``````!J````$@`!`.`!````````=0(```````!V````$``````````````` -XM``````````!^````$`````````````````````````"'````$``````````` -XM``````````````",````$`````````````````````````"3````$``````` -XM``````````````````":````$`````````````````````````"A````$``` -XM``````````````````````"I````$`````````````````````````"Q```` -XM$`````````````````````````"\````$``````````````````````````` -XM:T1E<"YC`&=?<$1E<',`9&5P0VQE86YU<`!F0!?7W-T9&5RF4`7U]E``````````0!````````"@`` -XM`!$```"X`0````````\!````````"@```!$```">`````````!H!```````` -XM"@```!$```!8!0```````"4!````````"@```!$````I!````````#`!```` -XM````"@```!$````)`P```````#L!````````"@```!$````6!@```````$8! -XM````````"@```!$````5`P```````%D!````````"@```!$```"H```````` -XM`&0!````````"@```!$```#6`0```````((!````````"@```!$```!K`@`` -XM`````(`0```````)4$````````"@`` -XM`!$```#_`````````*D$````````"@```!$```!$!````````+<$```````` -XM"@```!$```#C!0```````,4$````````"@```!$```!Y`@```````-,$```` -XM````"@```!$```!/`````````.$$````````"@```!$````*!0```````.\$ -XM````````"@```!$```#2`@```````/T$````````"@```!$````C!0`````` -XM``P%````````"@```!$```!3`P```````!L%````````"@```!$````Z`@`` -XM`````"H%````````"@```!$````P`P```````#D%````````"@```!$```". -XM`@```````$@%````````"@```!$```!)`@```````%<%````````"@```!$` -XM``#:!````````/@%````````"@```!$```"N`P````````,&````````"@`` -XM`!$````9!0````````X&````````"@```!$```!P`@```````!D&```````` -XM"@```!$```"B`0```````"0&````````"@```!$```#(`P```````"\&```` -XM````"@```!$```#L`````````#H&````````"@```!$```![!0```````$4& -XM````````"@```!$```#I!````````%`&````````"@```!$```""!0`````` -XM`%L&````````"@```!$```"Q`@```````&8&````````"@```!$```#7`P`` -XM`````'$&````````"@```!$```!B`@```````'T&````````"@```!$```"C -XM!````````(L&````````"@```!$```"3`0```````)H&````````"@```!$` -XM``")`0```````*8&````````"@```!$```!H!0```````+0&````````"@`` -XM`!$```#=`@```````,(&````````"@```!$```#]`0```````-`&```````` -XM"@```!$```#4!0```````-X&````````"@```!$```!1!0```````.P&```` -XM````"@```!$```#/`0```````/H&````````"@```!$```#N!0````````@' -XM````````"@```!$```!,!````````!8'````````"@```!$```#R```````` -XM`"0'````````"@```!$```"K`0```````#('````````"@```!$````^!0`` -XM`````$`'````````"@```!$````_`0```````$X'````````"@```!$```!@ -XM`````````%P'````````"@```!$```!I`P```````&H'````````"@```!$` -XM```%!````````'@'````````"@```!$```"4`````````(8'````````"@`` -XM`!$```"\!````````)4'````````"@```!$```#!`P```````*('```````` -XM"@```!$```"E`P```````+`'````````"@```!$```!G`0```````+X'```` -XM````"@```!$```#!`0```````,P'````````"@```!$````'!@```````-H' -XM````````"@```!$```#"`````````/D'````````"@```!$```#W`P`````` -XM``4(````````"@```!$```!P`0```````!,(````````"@```!$```!/`0`` -XM`````"$(````````"@```!$````,!````````"\(````````"@```!$```#G -XM`P```````#T(````````"@```!$```"``P```````$L(````````"@```!$` -XM``!9!````````%D(````````"@```!$```"G`@```````&<(````````"@`` -XM`!$```#Z`@```````'4(````````"@```!$```!X`P```````(,(```````` -XM"@```!$```#F`````````)((````````"@```!$```#.`P```````+4(```` -XM````"@```!$````!!@```````,,(````````"@```!$```!R`P```````-$( -XM````````"@```!$````N`@```````-\(````````"@```!$```#J`0`````` -XM``0)````````"@```!$```".`0````````\)````````"@```!$````````` -XM`````"T)````````"@```!$`````!````````$4)````````"@```!$```!> -XM`P```````$T)`````````0````(``````````````%4)`````````0````(` -XM```T`````````%T)````````"@````T``````````````&8)````````"@`` -XM`!$```!,!0```````'$)````````"@````T````X`````````'8)```````` -XM`0````(````C`````````'X)`````````0````(````K`````````(<)```` -XM````"@```!$```!)`0```````)8)````````"@```!$````:`0```````)X) -XM`````````0````(```!``````````*8)`````````0````(```!W```````` -XM`*X)````````"@````T```"G`````````+<)````````"@```!$```!@!0`` -XM`````,()````````"@````T````'`0```````,<)````````"@```!$```!, -XM!0```````-()````````"@````T```!0`0```````-\)````````"@```!$` -XM``";!0```````.L)`````````0````(```"``````````/,)`````````0`` -XM``(```".`0```````/L)````````"@````T```!S`0````````0*```````` -XM"@```!$````%``````````\*````````"@````T```#[`0```````!0*```` -XM````"@```!$````N`@```````!\*````````"@````T```!J`@```````"0* -XM````````"@```!$```!R`P```````"\*````````"@````T```#9`@`````` -XM`#0*````````"@```!$```!,!0```````#\*````````"@````T```!(`P`` -XM`````$0*````````"@```!$````N`0```````$\*````````"@````T````# -XM!````````%@*````````"@```!```````````````&4*````````"@```!`` -XM```P`````````',*````````"@````T```!?!````````'P*````````"@`` -XM`!$````[!````````(0*`````````0````(```"0`0```````(P*```````` -XM`0````(```#=`0```````)0*````````"@````T```"5!````````)T*```` -XM````"@```!$```!@!0```````*@*````````"@````T```#U!````````*T* -XM````````"@```!$```!,!0```````+@*````````"@````T````^!0`````` -XM`+X*````````"@```!$````1`````````,\*````````"@```!$````%```` -XM`````.8*````````"@```!$````@`@```````/,*````````"@```!$````% -XM``````````H+````````"@```!$```#U`0```````!X+````````"@```!$` -XM```*`0```````"H+````````"@```!$```#(`0```````#4+````````"@`` -XM`!$```#)`````````%`+````````"@```!$````V`````````%<+```````` -XM`0````(```#@`0```````%\+`````````0````(```!5!````````&<+```` -XM````"@````T```!A!0```````'`+````````"@```!$````M`````````'H+ -XM````````"@````T````2!@```````'\+````````"@```!$```"X`@`````` -XM`(D+````````"@````T```!*!@```````(X+````````"@```!$```!,!0`` -XM`````)@+````````"@````T```#E!@```````)T+````````"@```!````!@ -XM`````````*(+````````"@```!$```#J`0```````+$+````````"@```!$` -XM```%`````````+L+````````"@````T````;!P```````-$+`````````0`` -XM``(```#P`@```````-D+`````````0````(````&`P```````.T+```````` -XM"@```!````"@`````````/8+````````"@````T```"=!P````````$,```` -XM`````0````(````&`P````````D,`````````0````(```!5!````````!D, -XM````````"@```!````#0`````````"(,````````"@````T````R"``````` -XM`"<,````````"@```!````!@`0```````#\,````````"@```!`````0`@`` -XM`````$@,````````"@````T```#:"````````%$,````````"@````T````0 -XM"0```````&T,````````"@```!$```#6`````````'D,`````````0````0` -XM`````````````((,````````"@```!$```"*`````````(\,````````"@`` -XM`!$```!4`@```````)P,````````"@```!$````=`P```````*D,```````` -XM"@```!$````:``````````,!`````````0````(``````````````!P````` -XM````"@````L``````````````"```````````0````(``````````````#P` -XM````````"@````L``````````````$```````````0````(```!````````` -XM`&0`````````"@````L``````````````&@``````````0````(```"````` -XM`````)P`````````"@````L``````````````*```````````0````(```"0 -XM`0```````,0`````````"@````L``````````````,@``````````0````(` -XM``#@`0```````"``````````"@````(``````````````#@`````````"@`` -XM``(```!``````````%@`````````"@````(```"``````````(@````````` -XM"@````(```"0`0```````*@`````````"@````(```#@`0````````8````` -XM````"@````8```````````````8`````````"@````8``````````````!`` -X6`````````0````(````````````````` -X` -Xend -a66b557a29668826603dd91bf8f66869 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/arscript-1/out/arscript-1.out.shar b/contrib/elftoolchain/test/ar/tc/arscript-1/out/arscript-1.out.shar deleted file mode 100644 index 1762bd00..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-1/out/arscript-1.out.shar +++ /dev/null @@ -1,971 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# kDep.a.ar-script.uu -# kDep.a.uu -# kDep.o.uu -# -echo x - kDep.a.ar-script.uu -sed 's/^X//' >kDep.a.ar-script.uu << '21ca52fca3d8603d40d15d6f65fd1e94' -Xbegin 644 kDep.a.ar-script -XE0U)%051%(&M$97`N80I!1$1-3T0@:T1E<"YO"E-!5D4*14Y$"@`` -X` -Xend -21ca52fca3d8603d40d15d6f65fd1e94 -echo x - kDep.a.uu -sed 's/^X//' >kDep.a.uu << 'c2beb6ea17f59cdb46a9c24bfb90a8e7' -Xbegin 644 kDep.a -XM(3QAY;PV9F9I!F9F:09F9FD%5(B?U32(/L"$B+'0````!(A=MT&TB-4Q@Q -XMP+X`````2(GOZ`````!(BQM(A=MUY4B#Q`A;7<-F9I!F9I!F9I!!5DF)_D%5 -XM051)B?15,>U3#[8'A,!T*P^VT$B)^69FD(GHP>`&C00"B>K!XA`!T"GHB<4/ -XMMD$!2(/!`83`#[;0==Y(BQT`````13'M2(7;=0WK-TB+`TB%P'0L2(G#.VL( -XM=?!,.6,0=>I(C7,833GD3(GW_$R)X?.F==A(B=A;74%<05U!7L-)B=U)C5PD -XM($B)W^@`````2(7`=%1(C7@828U4)`%,B6`03(GV2(G#Z`````!-A>V):PAT -XM%TF+10!(B0-)B5T`2(G86UU!7$%=05[#2(L%`````$B)`TB)V$B)'0````!; -XM74%<05U!7L-(BST`````2(G:O@````#H`````+\!````Z`````!FD%5(B?U3 -XM2(/L"$B+'0````!(A=MT&TB-4Q@QP+X`````2(GOZ`````!(BQM(A=MUY4B# -XMQ`A(B>FZ`@```%M=O@$```"_`````.D`````9F:005=!5D%505154TB![#@% -XM``!(BP4`````2,<%``````````")?"042(7`2(E$)!@/A)\```!)B<=(C40D -XM($B)1"0(ZRWH`````(LXZ`````!(BST`````2(G!2(G:O@`````QP.@````` -XM38L_387_=$Y!@'\8/'1N08!_&3I)C4<:28U?&$@/1-B+1"04A9(@<0X!0``6UU!7$%=05Y!7\-)BT<008!\!Q<^ -XM=8;IZ`````!(C7PD(.L,9F:09I!(C7@!Q@`OOEP```#H -XM`````$B%P'7J@'PD("\/A34!``!,C70D($F#Q@%!#[8N0(#]+W3R0(3M#X2X -XM````0(#]+TR)\W0<3(GS9F9FD&9FD$B#PP$/MBM`@/TO=`5`A.UU[DB-M"0P -XM!```2(U\)"#&`P#H`````(7`=&),.W0D"`^$C0```$B-?"0@0<9&_P#H```` -XM`$F)Q4'&1O\O387M#X2.````3(GOZ`````!(A<`/A(H```!,C6`(3(GV3(GG -XMZ`````"%P'7<3(GW3(GFZ`````!,B>_H`````$"`_2]`B"MT&0^V*TF)WD"$ -XM[0^%2/___TB-7"0@Z8+^__](@\,!@#LO==Y(@\,!@#LO==7K[(!\)"``OP`` -XM``!(#T5\)`CH`````$F)Q4V%[0^%_H```` -XM`$"(*TB-7"0@Z2O^__\/MFPD($R-="0@Z<_^__\````!$0$E#A,+`PX1`1(! -XM$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+/@L#"```!20`"PL^ -XM"P``!@\`"PL```<7`0L+.@L["P$3```(#0`##CH+.PM)$P``"0$!21,!$P`` -XM"B$`21,O"P``"Q,!`PX+"SH+.PL!$P``#`T``PXZ"SL+21,X"@``#0\`"PM) -XM$P``#A,!`PX+!3H+.PL!$P``#PT``P@Z"SL+21,X"@``$!4!)PQ)$P$3```1 -XM!0!)$P``$B8`21,``!,3``,./`P``!03`0L+.@L["P$3```5$P$+!3H+.PL! -XM$P``%A8``P@Z"SL+21,``!<3`0,("PLZ"SL+`1,``!@N`0,..@L[!2<,21,@ -XM"P$3```9!0`#"#H+.P5)$P``&C0``PXZ"SL%21,``!LT``,(.@L[!4D3```< -XM+@$_#`,..@L[!2<,$0$2`4`&`1,``!TT``,..@L[!4D3`@8``!X+`1$!$@$` -XM`!\%``,..@L[!4D3`@8``"`N`3\,`PXZ"SL%)PQ)$Q$!$@%`!@$3```A'0$Q -XM$U4&6`M9!0``(@4`,1,``",+`54&```D-``Q$P``)30`,1,"!@``)BX!`PXZ -XM"SL+)PQ)$R`+`1,``"<%``,..@L["TD3```H-``#"#H+.PM)$P``*2X!`PXZ -XM"SL+)PP@"P$3```J"P$``"LT``,..@L["TD3```L+@$_#`,..@L["R<,$0$2 -XM`4`&`1,``"T%``,..@L["TD3`@8``"XT``,..@L["TD3`@8``"\T``,..@L[ -XM"TD3`@H``#`T``,(.@L["TD3`@H``#$=`3$3$0$2`5@+60L!$P``,AT!,1,1 -XM`1(!6`M9"P``,S0`,1,""@``-"$`21,O!0``-30``PXZ"SL+21,_##P,```` -XMN`P```(```````@!``````$````````````````````````````````"`08` -XM`````P`````"-#L````"`0@``````@(%``````,``````C94`````@('```` -XM``,``````C=F````!`0%:6YT``,``````CAX`````@0'``````,``````CF* -XM`````@@%``````,``````CJ<`````@@'``````((!``````"!`0``````P`` -XM```"4I$````#``````)4?P````4(!P8(`P`````#)FT````#``````,G?P`` -XM``,``````REM`````P`````#+&T````#``````,N;0````,``````S%)```` -XM`P`````#,TD````#``````,T?P````,``````SYM`````P`````#5F8````# -XM``````-7+P$```,``````UMM````!X`#8V\!```(``````-D;P$```@````` -XM`V5_``````E_`0``?P$```K'````?P`"`08``````P`````#9E`!```#```` -XM``0O&0$```,`````!#*Q````"P`````0!$;0`0``#``````$1]`!```"(P`, -XM``````1(9@````(C"``-"#L````.`````#`!!&=&`P``#U]P``1HT`$```(C -XM``]?<@`$:68````"(P@/7W<`!&IF`````B,,#``````$:T(````"(Q`,```` -XM``1L0@````(C$@]?8F8`!&VG`0```B,8#``````$;F8````"(R@,``````1Q -XMR@````(C,`P`````!')6`P```B,X#``````$*<`8` -XM``(C:``.``````@!"#+H!P``#``````(,VT````"(P`,``````@T20````(C -XM!`P`````"#4P`````B,&#``````(-C`````"(P<,``````@YZ`<```(C"``) -XM?P$``/@'```*QP```/\`"P````!0"4*1"```#``````)0V8````"(P`,```` -XM``E$B@````(C"`P`````"46*`````B,0#``````)1G8#```"(Q@,``````E' -XM9@````(C(`P`````"4B*`````B,H#``````)28H````"(S`,``````E*9@`` -XM``(C.`P`````"4OS`P```B-`#``````)3)<(```"(T@`$P`````!#0B1"``` -XM%D1)4@`)3?@'```71$50`"`*(>T(```,``````HC[0@```(C``P`````"B5X -XM`````B,(#``````*)YP!```"(Q`,``````HI\P@```(C&``-"*@(```)?P$` -XM``,)```*QP````,``P`````**NT(```8``````$B`0%X`````4,)```9@H``!\` -XM`````30!O`,````````?``````$T`9P!````````'0`````!-@%X```````` -XM`!T``````3`0%""P``)P`````!778#```H<'-Z``%?=@,``"HK``````%M?P$` -XM`"AS``%NF08``"L``````6]V`P``*BL``````7]""P``*P`````!@$@+```` -XM```-")0'```-")T(```L`0`````!KP$``````````````````````````%L, -XM```M``````&N9@`````````N``````&S`PD````````N``````&T`PD````` -XM```C`````"\``````;M;#````Y&P=2X``````;UV`P```````#!S``&^F08` -XM``.1P'XQO0H````````````````````````!V_P+```BS@H``",`````)=D* -XM```````````RY0H````````````````````````!W"+R"@``(P`````E_0H` -XM```````C`````"0)"P``,Q0+```#D7,`+W5S -XM#E!6#<[+7)/LY\V=`-MC0@Z -XM`[A_MX^X""J"1H`J`ZA_"!T($W,#>JE.-E@#)(T##+<#4`(E`0,-?W0##OT# -XM$'\#"0@Y"$U8@'M;`TH('0,7_0/J?@A_<`,BX?!&H0,)C0-QC0,0FT8#"=,# -XM>L4_D:Y45H!7D_\(+:T#"G]&.@-*?P,)C0,NFT961@-A<0AX`Q&-PH+,`@\` -XM`0$E"!B>71E&!HP%C02.`X\"````````%``````````!>E(``7@0 -XM`0,,!PB0`0``%````!P`````````-`````!(#A"#`@``'````#0````````` -XM-P````!!#A"&`D0.&$0.((,#```L````5``````````.`0```$(.$(X"10X8 -XM0@X@C`2-`T0.*(8%0PXP@P8````````<````A`````````!-`````$$.$(8" -XM1`X81`X@@P,``#0```"D`````````'4"````0@X00@X80@X@0@XH00XP00XX -XM1P[P"H,'A@:,!8T$C@./`@`````````````````(``````````(`=P@(```` -XM`````#0``````````@!W$``````````````````````'`````````!H````` -XM`````0!5&@`````````C``````````$`4R,`````````)@`````````!`%4F -XM`````````#,``````````0!3,P`````````T``````````$`50`````````` -XM``````````!``````````$$``````````@!W"$$`````````10`````````" -XM`'<010````````!)``````````(`=QA)`````````'<``````````@!W(``` -XM``````````````````!``````````%4``````````0!550````````!V```` -XM``````$`5G8`````````=P`````````!`%4`````````````````````4``` -XM``````!U``````````$`4P````````````````````"``````````((````` -XM`````@!W"((`````````AP`````````"`'<0AP````````")``````````(` -XM=QB)`````````(T``````````@!W((T`````````D``````````"`' -XM4P$```````!O`0````````$`7G`!````````C@$````````!`%X````````` -XM````````````@`````````"7``````````$`5)<`````````^0`````````! -XM`%P'`0```````$X!`````````0!<4P$```````!K`0````````$`7'`!```` -XM````C@$````````!`%P`````````````````````CP````````"S```````` -XM``$`5K,```````````$````````!`%8'`0```````$P!`````````0!64P$` -XM``````!I`0````````$`5G`!````````C@$````````!`%8````````````` -XM````````R0````````#6``````````$`4]8`````````W@`````````!`%#> -XM`````````/\``````````0!3!P$````````*`0````````$`4`H!```````` -XM#P$````````!`%,/`0```````!L"````````]`(````````! -XM`%#T`@````````$#`````````0!5!`,```````!G`P````````$`4.4#```` -XM````[P,````````!`%!&!````````%4$`````````0!0```````````````` -XM`````"0"````````PP(````````!`%[&`@```````#8#`````````0!>-@,` -XM``````!V`P````````$`4W8#````````S0,````````!`%[-`P```````.4# -XM`````````0!3Y0,```````#O`P````````$`7N\#`````````P0````````! -XM`%,#!````````%4$`````````0!>`````````````````````*$#```````` -XMM@,````````!`%`Q!````````#D$`````````0!0```````````````````` -XM`"0"````````P0(````````!`%W&`@```````%4$`````````0!=```````` -XM`````````````%<````"``````"\#```0PD``&1E<$-L96%N=7``E`D``&1E -XM<%!R:6YT4W1U8G,`W0D``&1E<$%D9`!Z"@``9&5P4')I;G0`3@L``&1E<$]P -XM=&EM:7IE```````L`````@``````"`````````````````!5!``````````` -XM``````````````````"-`````````(\`````````D`````````#"```````` -XM``````````````````````"-`````````(\`````````D`````````#"```` -XM```````````````````````````8`@```````$D"````````Q@(```````!5 -XM!````````%$"````````F@(`````````````````````````````\`(````` -XM``#W`@````````$#````````!@,`````````````````````````````!@,` -XM``````!2`P```````!L$````````500```````"Z`P```````!,$```````` -XMG@,```````"K`P```````(@#````````E@,```````![`P```````(`#```` -XM````9P,```````!V`P```````%\#````````8@,````````````````````` -XM````````+0,````````V`P```````!L$````````500```````#E`P`````` -XM`!,$````````N@,```````#<`P```````)X#````````JP,```````"(`P`` -XM`````)8#````````>P,```````"``P```````&<#````````=@,```````!? -XM`P```````&(#````````0`,```````!2`P`````````````````````````` -XM``!K`P```````'8#````````&P0```````!&!`````````,$````````$P0` -XM``````"Z`P```````,T#````````G@,```````"K`P```````(@#```````` -XME@,```````![`P```````(`#`````````````````````````````'-D8FT` -XM<'-Z1FEL96YA;64`9FEXF4`7VQB9G-I>F4`7V9L86=S`%]?:6YT,S)?=`!&24Q%`%]? -XMF5?=`!F9FQA9W-?=`!S=%]C=&EM97-P96,`7U]M;V1E7W0`9%]T>7!E -XM`'!%;G1R>0!S=%]G:60`7VUB`!S>D9I;&5N86UE -XM`&-H4VQA7!EF4` -XM+W5SF5?=`!?7VUA<&QO=V5R`%]?=&EM95]T`%]?'0`+F1A=&$`+F)S``````````9````#@````@`````````&``````` -XM``"@`````0`````````````````````````0&````````$8)```````````` -XM```````!````````````````````L`````$````````````````````````` -XM5B$```````!;`````````````````````0```````````````````*L````$ -XM`````````````````````````+A1````````&``````````9````$0````@` -XM````````&`````````#%`````0````````````````````````"Q(0`````` -XM`#`````````````````````!````````````````````P`````0````````` -XM````````````````T%$````````P`````````!D````3````"``````````8 -XM`````````-0````!`````````````````````````.$A````````D`(````` -XM``````````````$```````````````````#B`````0```#`````````````` -XM``````!Q)````````"4&```````````````````!``````````$````````` -XM[0````$`````````````````````````EBH````````F```````````````` -XM`````0```````````````````!$````#`````````````````````````+PJ -XM````````]@````````````````````$````````````````````!`````@`` -XM``````````````````````!X,@```````-@#````````&@```!,````(```` -XM`````!@`````````"0````,`````````````````````````4#8```````#% -XM`````````````````````0`````````````````````````````````````` -XM``````````````$````$`/'_```````````````````````````#``$````` -XM```````````````````````#``,````````````````````````````#``0` -XM```````````````````````````#``4````````````````````````````# -XM``8````````````````````````````#``@```````````````````````@` -XM```!``0````````````(```````````````#``H````````````````````` -XM```````#``L````````````````````````````#``P````````````````` -XM```````````#``X````````````````````````````#`!`````````````` -XM```````````````#`!$````````````````````````````#`!,````````` -XM```````````````````#`!4````````````````````````````#`!8````` -XM```````````````````````#`!<``````````````````````!`````2``$` -XM```````````T`````````!L````0`````````````````````````"`````2 -XM``$`0``````````W`````````"X````0`````````````````````````#8` -XM```2``$`@``````````.`0```````#T````0```````````````````````` -XM`$0````0`````````````````````````$L````0```````````````````` -XM`````%4````0`````````````````````````%H````2``$`D`$```````!- -XM`````````&,````0`````````````````````````&H````2``$`X`$````` -XM``!U`@```````'8````0`````````````````````````'X````0```````` -XM`````````````````(<````0`````````````````````````(P````0```` -XM`````````````````````),````0`````````````````````````)H````0 -XM`````````````````````````*$````0`````````````````````````*D` -XM```0`````````````````````````+$````0```````````````````````` -XM`+P````0``````````````````````````!K1&5P+F,`9U]P1&5P&ET`&1E<%!R:6YT`&9W0!S -XM=')C:'(`;W!E;F1I<@!R96%D9&ER`'-TP$````````*````"@``````````````@`$` -XM```````"````%@```/S_________B@$````````"````&P```/S_________ -XMG`$````````"````!````/S_________K`$````````*````"0````8````` -XM````M`$````````"````%@```/S_________U`$````````*````"0````T` -XM````````]`$````````"````!````/S_________^P$````````"````!``` -XM`/C_________)0(````````"````'P```/S_________+`(````````"```` -XM(````/S_________,P(````````"````&@```/S_________/@(````````* -XM````"0```!(`````````10(````````"````%@```/S_________?0(````` -XM```"````(0```/S_________B0(````````"````(@```/S_________E`(` -XM```````"````%P```/S_________JP(````````"````%````/S_________ -XMX`(````````"````(P```/S__________0(````````"````)````/S_____ -XM____8P,````````"````(0```/S_________@0,````````"````)0```/S_ -XM________F@,````````"````)@```/S_________L@,````````"````)P`` -XM`/S_________P0,````````"````(P```/S_________R0,````````"```` -XM*````/S_________"00````````*````"0```!``````````%`0````````" -XM````)0```/S_________-00````````"````*````/S_________V0$````` -XM```"````'0```/S_________!@`````````*````!0``````````````#``` -XM```````*````$0```*(%````````$0`````````*````$0```&H$```````` -XM%0`````````!`````@``````````````'0`````````!`````@```%4$```` -XM````)0`````````*````!P``````````````+``````````*````$0```&\% -XM````````,0`````````*````$0```#$$````````/@`````````*````$0`` -XM`/$$````````10`````````*````$0```-T#````````2@`````````*```` -XM$0```'8!````````5P`````````*````$0```(@%````````7``````````* -XM````$0```'L`````````;@`````````*````$0```/\$````````>P`````` -XM```*````$0```$(`````````@``````````*````$0```),#````````C0`` -XM```````*````$0```.X#````````D@`````````*````$0````4"```````` -XMGP`````````*````$0```*H$````````I@`````````*````$0```,(%```` -XM````K0`````````*````$0```"@!````````L@`````````*````$0```!0$ -XM````````O0`````````*````$0```"X%````````S0`````````*````$0`` -XM`!T$````````V``````````*````$0```,D%````````XP`````````*```` -XM$0```/8%````````[@`````````*````$0```)T#````````^0`````````* -XM````$0```-X`````````!`$````````*````$0```+@!````````#P$````` -XM```*````$0```)X`````````&@$````````*````$0```%@%````````)0$` -XM```````*````$0```"D$````````,`$````````*````$0````D#```````` -XM.P$````````*````$0```!8&````````1@$````````*````$0```!4#```` -XM````60$````````*````$0```*@`````````9`$````````*````$0```-8! -XM````````@@$````````*````$0```&L"````````AP$````````*````$0`` -XM`(<#````````D@$````````*````$0```!,!````````G0$````````*```` -XM$0```)L!````````J`$````````*````$0```#<%````````M`$````````* -XM````$0````,#````````P@$````````*````$0```%H`````````UP$````` -XM```*````$0```%8!````````"P(````````*````$0```'0`````````&0(` -XM```````*````$0```#\#````````-0(````````*````$0```&L````````` -XM0P(````````*````$0```,X`````````40(````````*````$0```,`"```` -XM````7P(````````*````$0```+P`````````;0(````````*````$0```!`& -XM````````>P(````````*````$0```+H#````````LP(````````*````$0`` -XM`!\&````````P0(````````*````$0```-T%````````W0(````````*```` -XM$0```&$$````````[`(````````*````$0```($!````````^P(````````* -XM````$0```.`!````````"@,````````*````$0```(0"````````&0,````` -XM```*````$0```!`"````````*`,````````*````$0```,T$````````-P,` -XM```````*````$0```+,`````````[@,````````*````$0```$4#```````` -XM^@,````````*````$0```#`<````````* -XM````$0```)0`````````A@<````````*````$0```+P$````````E0<````` -XM```*````$0```,$#````````H@<````````*````$0```*4#````````L`<` -XM```````*````$0```&@L````````*````#0```!(&```` -XM````?PL````````*````$0```+@"````````B0L````````*````#0```$H& -XM````````C@L````````*````$0```$P%````````F`L````````*````#0`` -XM`.4&````````G0L````````*````$````&``````````H@L````````*```` -XM$0```.H!````````L0L````````*````$0````4`````````NPL````````* -XM````#0```!L'````````T0L````````!`````@```/`"````````V0L````` -XM```!`````@````8#````````[0L````````*````$````*``````````]@L` -XM```````*````#0```)T'`````````0P````````!`````@````8#```````` -XM"0P````````!`````@```%4$````````&0P````````*````$````-`````` -XM````(@P````````*````#0```#((````````)PP````````*````$````&`! -XM````````/PP````````*````$````!`"````````2`P````````*````#0`` -XM`-H(````````40P````````*````#0```!`)````````;0P````````*```` -XM$0```-8`````````>0P````````!````!```````````````@@P````````* -XM````$0```(H`````````CPP````````*````$0```%0"````````G`P````` -XM```*````$0```!T#````````J0P````````*````$0```!H``````````P$` -XM```````!`````@``````````````'``````````*````"P`````````````` -XM(``````````!`````@``````````````/``````````*````"P`````````` -XM````0``````````!`````@```$``````````9``````````*````"P`````` -XM````````:``````````!`````@```(``````````G``````````*````"P`` -XM````````````H``````````!`````@```)`!````````Q``````````*```` -XM"P``````````````R``````````!`````@```.`!````````(``````````* -XM`````@``````````````.``````````*`````@```$``````````6``````` -XM```*`````@```(``````````B``````````*`````@```)`!````````J``` -XM```````*`````@```.`!````````!@`````````*````!@`````````````` -XM!@`````````*````!@``````````````$``````````!`````@`````````` -X#```` -X` -Xend -c2beb6ea17f59cdb46a9c24bfb90a8e7 -echo x - kDep.o.uu -sed 's/^X//' >kDep.o.uu << 'a66b557a29668826603dd91bf8f66869' -Xbegin 644 kDep.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````+@K```` -XM`````````$```````$``&P`8`$B+/0````!32,<%``````````!(A?]U"^L8 -XM9F:09F:02(G?2(L?Z`````!(A=MFD'7N6\-F9F:09F9FD&9F9I!52(G]4TB# -XM[`A(BQT`````2(7;=!M(C5,8,<"^`````$B)[^@`````2(L;2(7;=>5(@\0( -XM6UW#9F:09F:09F:0059)B?Y!54%428GT53'M4P^V!X3`="L/MM!(B?EF9I") -XMZ,'@!HT$`HGJP>(0`=`IZ(G%#[9!`4B#P0&$P`^VT'7>2(L=`````$4Q[4B% -XMVW4-ZS=(BP-(A'SIG78 -XM2(G86UU!7$%=05[#28G=28U<)"!(B=_H`````$B%P'142(UX&$F-5"0!3(E@ -XM$$R)]DB)P^@`````387MB6L(=!=)BT4`2(D#28E=`$B)V%M=05Q!74%>PTB+ -XM!0````!(B0-(B=A(B1T`````6UU!7$%=05[#2(L]`````$B)VKX`````Z``` -XM``"_`0```.@`````9I!52(G]4TB#[`A(BQT`````2(7;=!M(C5,8,<"^```` -XM`$B)[^@`````2(L;2(7;=>5(@\0(2(GIN@(```!;7;X!````OP````#I```` -XM`&9FD$%7059!54%455-(@>PX!0``2(L%`````$C'!0``````````B7PD%$B% -XMP$B)1"08#X2?````28G'2(U$)"!(B40D".LMZ`````"+..@`````2(L]```` -XM`$B)P4B)VKX`````,<#H`````$V+/TV%_W1.08!_&#QT;D&`?QDZ28U'&DF- -XM7QA(#T38BT0D%(7`=69(C;0DL`0``$B)W^@`````A05_#28M'$$&`?`<7/G6&Z7+___](C7PD($B)WN@`````2(U\)"#K -XM#&9FD&:02(UX`<8`+[Y<````Z`````!(AY(C;0D,`0``$B-?"0@Q@,`Z`````"%P'1B3#MT)`@/ -XMA(T```!(C7PD($'&1O\`Z`````!)B<5!QD;_+TV%[0^$C@```$R)[^@````` -XM2(7`#X2*````3(U@"$R)]DR)Y^@`````A -XM2(/#`8`[+W75Z^R`?"0@`+\`````2`]%?"0(Z`````!)B<5-A>T/A7+___]` -XMB"M(C5PD(.E`_O__3(GOZ`````!`B"M(C5PD(.DK_O__#[9L)"!,C70D(.G/ -XM_O__`````1$!)0X3"P,.$0$2`1`&```")``+"SX+`PX```,6``,..@L["TD3 -XM```$)``+"SX+`P@```4D``L+/@L```8/``L+```'%P$+"SH+.PL!$P``"`T` -XM`PXZ"SL+21,```D!`4D3`1,```HA`$D3+PL```L3`0,."PLZ"SL+`1,```P- -XM``,..@L["TD3.`H```T/``L+21,```X3`0,."P4Z"SL+`1,```\-``,(.@L[ -XM"TD3.`H``!`5`2<,21,!$P``$04`21,``!(F`$D3```3$P`##CP,```4$P$+ -XM"SH+.PL!$P``%1,!"P4Z"SL+`1,``!86``,(.@L["TD3```7$P$#"`L+.@L[ -XM"P$3```8+@$##CH+.P4G#$D3(`L!$P``&04``P@Z"SL%21,``!HT``,..@L[ -XM!4D3```;-``#"#H+.P5)$P``'"X!/PP##CH+.P4G#!$!$@%`!@$3```=-``# -XM#CH+.P5)$P(&```>"P$1`1(!```?!0`##CH+.P5)$P(&```@+@$_#`,..@L[ -XM!2<,21,1`1(!0`8!$P``(1T!,1-5!E@+604``"(%`#$3```C"P%5!@``)#0` -XM,1,``"4T`#$3`@8``"8N`0,..@L["R<,21,@"P$3```G!0`##CH+.PM)$P`` -XM*#0``P@Z"SL+21,``"DN`0,..@L["R<,(`L!$P``*@L!```K-``##CH+.PM) -XM$P``+"X!/PP##CH+.PLG#!$!$@%`!@$3```M!0`##CH+.PM)$P(&```N-``# -XM#CH+.PM)$P(&```O-``##CH+.PM)$P(*```P-``#"#H+.PM)$P(*```Q'0$Q -XM$Q$!$@%8"UD+`1,``#(=`3$3$0$2`5@+60L``#,T`#$3`@H``#0A`$D3+P4` -XM`#4T``,..@L["TD3/PP\#````+@,```"```````(`0`````!```````````` -XM`````````````````````@$&``````,``````C0[`````@$(``````("!0`` -XM```#``````(V5`````("!P`````#``````(W9@````0$!6EN=``#``````(X -XM>`````($!P`````#``````(YB@````((!0`````#``````(ZG`````((!P`` -XM```""`0``````@0$``````,``````E*1`````P`````"5'\````%"`<&"`,` -XM`````R9M`````P`````#)W\````#``````,I;0````,``````RQM`````P`` -XM```#+FT````#``````,Q20````,``````S-)`````P`````#-'\````#```` -XM``,^;0````,``````U9F`````P`````#5R\!```#``````-;;0````>``V-O -XM`0``"``````#9&\!```(``````-E?P`````)?P$``'\!```*QP```'\``@$& -XM``````,``````V90`0```P`````$+QD!```#``````0RL0````L`````$`1& -XMT`$```P`````!$?0`0```B,`#``````$2&8````"(P@`#0@[````#@`````P -XM`01G1@,```]?<``$:-`!```"(P`/7W(`!&EF`````B,(#U]W``1J9@````(C -XM#`P`````!&M"`````B,0#``````$;$(````"(Q(/7V)F``1MIP$```(C&`P` -XM````!&YF`````B,H#``````$<=`!```"(V@/7W5R``1Z9@````(C<`P`````!'W-`P`` -XM`B-T#``````$?MT#```"(W`P`````!(1F`````R.( -XM`0P`````!(61`0```R.0`0P`````!(?S`P```R.8`0P`````!(C_`P```R.@ -XM`0P`````!(EF`````R.H`0P`````!(IF`````R.L`0P`````!(N&`0```R.P -XM`0`0`68```!6`P``$!````P`````%/FD$```5@!`%0&8%```,```` -XM``5!9@4```(C``P`````!4)V!0```B,(#``````%1*8%```"(R@,``````5% -XMT04```(C,`P`````!48Z`0```B,X#``````%2-<%```"(T`,``````5)YP4` -XM``,CP!`,``````5*YP4```,CP!@,``````51E`0```,CP"`,``````52E`0` -XM``,CT"`,``````53E`0```,CX"`,``````55R@````,C\"`,``````569@`` -XM``,C^"``"7\!``!V!0``"L<````'``E_`0``A@4```K'````'P`0`3H!``"@ -XM!0``$;P#```1L0```!&@!0````T(O`,```T(A@4``!`!9@```,L%```1.@$` -XM`!%V`P``$;$````1RP4````-"'8#```-"*P%```)G````.<%```*QP```/\` -XM"3H!``#W!0``"L<```#_``,`````!5>?!````P`````&+T````#``````9&^`````,`````!DL# -XM`0```P`````&4`X!```#``````95&0$```,`````!EJ\`````P`````&7R0! -XM```+`````!`'+ID&```,```````:#E`<```P`````!H1%`0```B,`#``````&A2X&```"(P0,``````:& -XM.08```(C"`P`````!H=$!@```B,*#``````&B&4&```"(PP,``````:)(P8` -XM``(C$`P`````!HI%`0```B,4#``````&C'`&```"(Q@,``````:-<`8```(C -XM*`P`````!HYP!@```B,X#``````&ET\&```"(T@,``````:8#08```(C4`P` -XM````!ID"!@```B-8#``````&FA@&```"(UP,``````:;;0````(C8`P````` -XM!IQ;`````B-D#``````&GG`&```"(V@`#@`````(`0@RZ`<```P`````"#-M -XM`````B,`#``````(-$D````"(P0,``````@U,`````(C!@P`````"#8P```` -XM`B,'#``````(.>@'```"(P@`"7\!``#X!P``"L<```#_``L`````4`E"D0@` -XM``P`````"4-F`````B,`#``````)1(H````"(P@,``````E%B@````(C$`P` -XM````"49V`P```B,8#``````)1V8````"(R`,``````E(B@````(C*`P````` -XM"4F*`````B,P#``````)2F8````"(S@,``````E+\P,```(C0`P`````"4R7 -XM"````B-(`!,``````0T(D0@``!9$25(`"4WX!P``%T1%4``@"B'M"```#``` -XM```*(^T(```"(P`,``````HE>`````(C"`P`````"B><`0```B,0#``````* -XM*?,(```"(Q@`#0BH"```"7\!```#"0``"L<````#``,`````"BKM"```&``` -XM```!(@$!>`````%#"0``&7-T<@`!(0&\`P``&@`````!(P%X````&V,``20! -XM9@`````<`0`````!9`$!``````````````````````````"4"0``'0`````! -XM90$#"0```````!X`````````````````````&@`````!:0$#"0`````<`0`` -XM```!#P$!``````````````````````````#7"0``'P`````!#@'7"0`````` -XM`!T``````1`!`PD`````````#0@%!```(`$``````34!`0,)```````````` -XM`````````````````'H*```?``````$T`;P#````````'P`````!-`&<`0`` -XM`````!T``````38!>``````````=``````$W`0,)````````'0`````!.`$# -XM"0```````"$."0````````$V`2(@"0``(P`````D+`D``"4X"0`````````` -XM`!P!``````$#`0$``````````````````````````+T*```?``````$"`=<) -XM````````'0`````!!`$#"0`````````F``````%!`78#```!Y0H``"<````` -XM`4!V`P``*'!S>@`!0G8#````*0`````!7@$!0@L``"<``````5UV`P``*'!S -XM>@`!7W8#```J*P`````!;7\!```H7!E -XM7!E7!E+F@`!``````)`@```````````^0"`7`?JO(Z -XM47<#HG_3C[@(*H$#(N\#<<4##RL#<1WP""H#&.$(J@,>"+<#8;<#"3G&7(Q( -XM`W@Y05@W.RUR3[.?-G0#;8T(.@.X?[>/N`@J@D:`*@.H?P@="!-S`WJI3C98 -XM`R2-`PRW`U`")0$##7]T`P[]`Q!_`PD(.0A-6(![6P-*"!T#%_T#ZGX(?W`# -XM(N'P1J$#"8T#<8T#$)M&`PG3`WK%/Y&N5%:`5Y/_""VM`PI_1CH#2G\#"8T# -XM+IM&5D8#87$(>`,1C<*"S`(/``$!)7,Z"@H`(%P*"25S``H*`"X`:T1E<#H@ -XM4VMI<'!I;F<@)R5S)R`M("5S(0H````*3W5T(&]F(&UE;6]R>2$@*')E<75E -XM`````````````````````(``````````EP`````````! -XM`%27`````````/D``````````0!Q@(` -XM```````V`P````````$`7C8#````````=@,````````!`%-V`P```````,T# -XM`````````0!>S0,```````#E`P````````$`4^4#````````[P,````````! -XM`%[O`P````````,$`````````0!3`P0```````!5!`````````$`7@`````` -XM``````````````"A`P```````+8#`````````0!0,00````````Y!``````` -XM``$`4``````````````````````D`@```````,$"`````````0!=Q@(````` -XM``!5!`````````$`70````````````````````!7`````@``````O`P``$,) -XM``!D97!#;&5A;G5P`)0)``!D97!0@H` -XM`&1E<%!R:6YT`$X+``!D97!/<'1I;6EZ90``````+`````(```````@````` -XM````````````500`````````````````````````````C0````````"/```` -XM`````)``````````P@``````````````````````````````C0````````"/ -XM`````````)``````````P@``````````````````````````````&`(````` -XM``!)`@```````,8"````````500```````!1`@```````)H"```````````` -XM`````````````````/`"````````]P(````````!`P````````8#```````` -XM``````````````````````8#````````4@,````````;!````````%4$```` -XM````N@,````````3!````````)X#````````JP,```````"(`P```````)8# -XM````````>P,```````"``P```````&<#````````=@,```````!?`P`````` -XM`&(#`````````````````````````````"T#````````-@,````````;!``` -XM`````%4$````````Y0,````````3!````````+H#````````W`,```````"> -XM`P```````*L#````````B`,```````"6`P```````'L#````````@`,````` -XM``!G`P```````'8#````````7P,```````!B`P```````$`#````````4@,` -XM````````````````````````````:P,```````!V`P```````!L$```````` -XM1@0````````#!````````!,$````````N@,```````#-`P```````)X#```` -XM````JP,```````"(`P```````)8#````````>P,```````"``P`````````` -XM``````````````````!S9&)M`'!S>D9I;&5N86UE`&9I>'-L87-H`%]#=7)R -XM96YT4G5N94QO8V%L90!F1FEX0V%S90!D97!/<'1I;6EZ90!U;G-I9VYE9"!I -XM;G0`7U]S<'5TE-T87)T`&9P;W-?=`!D97!0`!C8VA&:6QE;F%M90!? -XM7W)U;F5T>7!E7V5X=`!?7W9AF5?=`!?7V)L:W-I>F5?=`!? -XM7W5I9%]T`%]?=6EN=#A?=`!D97!0'0`9%]N86UL96X`7W-E96L`7U]R -XM=6YE7W0`7W5B=68``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&#(```````#8 -XM`P```````!H````3````"``````````8``````````D````#```````````` -XM`````````````%`V````````Q0````````````````````$````````````` -XM```````````````````````````````````````!````!`#Q_P`````````` -XM`````````````````P`!`````````````````````````````P`#```````` -XM`````````````````````P`$`````````````````````````````P`%```` -XM`````````````````````````P`&`````````````````````````````P`( -XM```````````````````````(`````0`$````````````"``````````````` -XM`P`*`````````````````````````````P`+```````````````````````` -XM`````P`,`````````````````````````````P`.```````````````````` -XM`````````P`0`````````````````````````````P`1```````````````` -XM`````````````P`3`````````````````````````````P`5```````````` -XM`````````````````P`6`````````````````````````````P`7```````` -XM```````````````0````$@`!````````````-``````````;````$``````` -XM```````````````````@````$@`!`$``````````-P`````````N````$``` -XM```````````````````````V````$@`!`(``````````#@$````````]```` -XM$`````````````````````````!$````$`````````````````````````!+ -XM````$`````````````````````````!5````$``````````````````````` -XM``!:````$@`!`)`!````````30````````!C````$``````````````````` -XM``````!J````$@`!`.`!````````=0(```````!V````$``````````````` -XM``````````!^````$`````````````````````````"'````$``````````` -XM``````````````",````$`````````````````````````"3````$``````` -XM``````````````````":````$`````````````````````````"A````$``` -XM``````````````````````"I````$`````````````````````````"Q```` -XM$`````````````````````````"\````$``````````````````````````` -XM:T1E<"YC`&=?<$1E<',`9&5P0VQE86YU<`!F0!?7W-T9&5RF4`7U]E``````````0!````````"@`` -XM`!$```"X`0````````\!````````"@```!$```">`````````!H!```````` -XM"@```!$```!8!0```````"4!````````"@```!$````I!````````#`!```` -XM````"@```!$````)`P```````#L!````````"@```!$````6!@```````$8! -XM````````"@```!$````5`P```````%D!````````"@```!$```"H```````` -XM`&0!````````"@```!$```#6`0```````((!````````"@```!$```!K`@`` -XM`````(`0```````)4$````````"@`` -XM`!$```#_`````````*D$````````"@```!$```!$!````````+<$```````` -XM"@```!$```#C!0```````,4$````````"@```!$```!Y`@```````-,$```` -XM````"@```!$```!/`````````.$$````````"@```!$````*!0```````.\$ -XM````````"@```!$```#2`@```````/T$````````"@```!$````C!0`````` -XM``P%````````"@```!$```!3`P```````!L%````````"@```!$````Z`@`` -XM`````"H%````````"@```!$````P`P```````#D%````````"@```!$```". -XM`@```````$@%````````"@```!$```!)`@```````%<%````````"@```!$` -XM``#:!````````/@%````````"@```!$```"N`P````````,&````````"@`` -XM`!$````9!0````````X&````````"@```!$```!P`@```````!D&```````` -XM"@```!$```"B`0```````"0&````````"@```!$```#(`P```````"\&```` -XM````"@```!$```#L`````````#H&````````"@```!$```![!0```````$4& -XM````````"@```!$```#I!````````%`&````````"@```!$```""!0`````` -XM`%L&````````"@```!$```"Q`@```````&8&````````"@```!$```#7`P`` -XM`````'$&````````"@```!$```!B`@```````'T&````````"@```!$```"C -XM!````````(L&````````"@```!$```"3`0```````)H&````````"@```!$` -XM``")`0```````*8&````````"@```!$```!H!0```````+0&````````"@`` -XM`!$```#=`@```````,(&````````"@```!$```#]`0```````-`&```````` -XM"@```!$```#4!0```````-X&````````"@```!$```!1!0```````.P&```` -XM````"@```!$```#/`0```````/H&````````"@```!$```#N!0````````@' -XM````````"@```!$```!,!````````!8'````````"@```!$```#R```````` -XM`"0'````````"@```!$```"K`0```````#('````````"@```!$````^!0`` -XM`````$`'````````"@```!$````_`0```````$X'````````"@```!$```!@ -XM`````````%P'````````"@```!$```!I`P```````&H'````````"@```!$` -XM```%!````````'@'````````"@```!$```"4`````````(8'````````"@`` -XM`!$```"\!````````)4'````````"@```!$```#!`P```````*('```````` -XM"@```!$```"E`P```````+`'````````"@```!$```!G`0```````+X'```` -XM````"@```!$```#!`0```````,P'````````"@```!$````'!@```````-H' -XM````````"@```!$```#"`````````/D'````````"@```!$```#W`P`````` -XM``4(````````"@```!$```!P`0```````!,(````````"@```!$```!/`0`` -XM`````"$(````````"@```!$````,!````````"\(````````"@```!$```#G -XM`P```````#T(````````"@```!$```"``P```````$L(````````"@```!$` -XM``!9!````````%D(````````"@```!$```"G`@```````&<(````````"@`` -XM`!$```#Z`@```````'4(````````"@```!$```!X`P```````(,(```````` -XM"@```!$```#F`````````)((````````"@```!$```#.`P```````+4(```` -XM````"@```!$````!!@```````,,(````````"@```!$```!R`P```````-$( -XM````````"@```!$````N`@```````-\(````````"@```!$```#J`0`````` -XM``0)````````"@```!$```".`0````````\)````````"@```!$````````` -XM`````"T)````````"@```!$`````!````````$4)````````"@```!$```!> -XM`P```````$T)`````````0````(``````````````%4)`````````0````(` -XM```T`````````%T)````````"@````T``````````````&8)````````"@`` -XM`!$```!,!0```````'$)````````"@````T````X`````````'8)```````` -XM`0````(````C`````````'X)`````````0````(````K`````````(<)```` -XM````"@```!$```!)`0```````)8)````````"@```!$````:`0```````)X) -XM`````````0````(```!``````````*8)`````````0````(```!W```````` -XM`*X)````````"@````T```"G`````````+<)````````"@```!$```!@!0`` -XM`````,()````````"@````T````'`0```````,<)````````"@```!$```!, -XM!0```````-()````````"@````T```!0`0```````-\)````````"@```!$` -XM``";!0```````.L)`````````0````(```"``````````/,)`````````0`` -XM``(```".`0```````/L)````````"@````T```!S`0````````0*```````` -XM"@```!$````%``````````\*````````"@````T```#[`0```````!0*```` -XM````"@```!$````N`@```````!\*````````"@````T```!J`@```````"0* -XM````````"@```!$```!R`P```````"\*````````"@````T```#9`@`````` -XM`#0*````````"@```!$```!,!0```````#\*````````"@````T```!(`P`` -XM`````$0*````````"@```!$````N`0```````$\*````````"@````T````# -XM!````````%@*````````"@```!```````````````&4*````````"@```!`` -XM```P`````````',*````````"@````T```!?!````````'P*````````"@`` -XM`!$````[!````````(0*`````````0````(```"0`0```````(P*```````` -XM`0````(```#=`0```````)0*````````"@````T```"5!````````)T*```` -XM````"@```!$```!@!0```````*@*````````"@````T```#U!````````*T* -XM````````"@```!$```!,!0```````+@*````````"@````T````^!0`````` -XM`+X*````````"@```!$````1`````````,\*````````"@```!$````%```` -XM`````.8*````````"@```!$````@`@```````/,*````````"@```!$````% -XM``````````H+````````"@```!$```#U`0```````!X+````````"@```!$` -XM```*`0```````"H+````````"@```!$```#(`0```````#4+````````"@`` -XM`!$```#)`````````%`+````````"@```!$````V`````````%<+```````` -XM`0````(```#@`0```````%\+`````````0````(```!5!````````&<+```` -XM````"@````T```!A!0```````'`+````````"@```!$````M`````````'H+ -XM````````"@````T````2!@```````'\+````````"@```!$```"X`@`````` -XM`(D+````````"@````T```!*!@```````(X+````````"@```!$```!,!0`` -XM`````)@+````````"@````T```#E!@```````)T+````````"@```!````!@ -XM`````````*(+````````"@```!$```#J`0```````+$+````````"@```!$` -XM```%`````````+L+````````"@````T````;!P```````-$+`````````0`` -XM``(```#P`@```````-D+`````````0````(````&`P```````.T+```````` -XM"@```!````"@`````````/8+````````"@````T```"=!P````````$,```` -XM`````0````(````&`P````````D,`````````0````(```!5!````````!D, -XM````````"@```!````#0`````````"(,````````"@````T````R"``````` -XM`"<,````````"@```!````!@`0```````#\,````````"@```!`````0`@`` -XM`````$@,````````"@````T```#:"````````%$,````````"@````T````0 -XM"0```````&T,````````"@```!$```#6`````````'D,`````````0````0` -XM`````````````((,````````"@```!$```"*`````````(\,````````"@`` -XM`!$```!4`@```````)P,````````"@```!$````=`P```````*D,```````` -XM"@```!$````:``````````,!`````````0````(``````````````!P````` -XM````"@````L``````````````"```````````0````(``````````````#P` -XM````````"@````L``````````````$```````````0````(```!````````` -XM`&0`````````"@````L``````````````&@``````````0````(```"````` -XM`````)P`````````"@````L``````````````*```````````0````(```"0 -XM`0```````,0`````````"@````L``````````````,@``````````0````(` -XM``#@`0```````"``````````"@````(``````````````#@`````````"@`` -XM``(```!``````````%@`````````"@````(```"``````````(@````````` -XM"@````(```"0`0```````*@`````````"@````(```#@`0````````8````` -XM````"@````8```````````````8`````````"@````8``````````````!`` -X6`````````0````(````````````````` -X` -Xend -a66b557a29668826603dd91bf8f66869 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.err b/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.eval b/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.out b/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.sh b/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.sh deleted file mode 100755 index 7e072652..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-2/arscript-2.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest arscript-2 tc/arscript-2 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} -M < kUtil.a.ar-script.bsd" work true -rundiff false -runcmd "plugin/teraser -c -t arscript-2 kUtil.a" work false -runcmd "plugin/ardiff -cnlt arscript-2 ${RLTDIR}/kUtil.a kUtil.a" work false diff --git a/contrib/elftoolchain/test/ar/tc/arscript-2/in/arscript-2.in.shar b/contrib/elftoolchain/test/ar/tc/arscript-2/in/arscript-2.in.shar deleted file mode 100644 index 32f31950..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-2/in/arscript-2.in.shar +++ /dev/null @@ -1,429 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./crc32.o.uu -# ./kUtil.a.ar-script.bsd.uu -# ./kUtil.a.ar-script.gnu.uu -# ./md5.o.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./crc32.o.uu -sed 's/^X//' >./crc32.o.uu << 'a324e56f72c95be57d41e586ca56b982' -Xbegin 644 crc32.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````&@*```` -XM`````````$```````$``&0`6`$B%TG0>B?C!YPC!Z!@R!DB#Q@$/ML`S/(4` -XM````2(/J`77BB?C#```!$0$E#A,+`PX1`1(!$`8```(D``L+/@L##@```Q8` -XM`PXZ"SL+21,```0D``L+/@L#"```!20`"PL^"P``!BX!/PP##CH+.PLG#$D3 -XM$0$2`4`*`1,```<%``,..@L["TD3`@H```@%``,(.@L["TD3`@8```D%``,( -XM.@L["TD3`@H```HT``,(.@L["TD3`@H```L/``L+21,```PF````#28`21,` -XM``X!`4D3`1,```\A`$D3+PL``!`T``,..@L["TD3`@H```!?`0```@`````` -XM"`$``````0````````````````````````````````(!!@`````#``````(T -XM.P````(!"``````"`@4``````@('``````0$!6EN=``#``````(X8@````($ -XM!P`````""`4``````P`````".GL````""`<``````@@$``````($!``````# -XM``````)2<`````4(!P(!!@`````#``````-4,`````,``````UY7`````P`` -XM```#Z)`````""`4`````!@$``````9L!L``````````````````````````" -XM=P@F`0``!P`````!FK`````!50AB=68``9HF`0````````EL96X``9J[```` -XM`5$*<``!G"T!```!5``+""P!```,"P@S`0``#:4````.L````$@!```/FP`` -XM`/\`$``````!.%T!```)`P``````````#3@!````J0````(`B@````$!^PX* -XM``$!`0$````!+W5S7!EGN?<,UF -XM7G3@MB.85ZOBG(Z-H9$YD&"5/,`GBXO=YH]2^Z6"Y>9DAEA;*[[O1NJZ-F"I -XMMX%]:+.$+2^M,S#NJ>H6K:1="VR@D&TRU"=P\]#^5K#=24MQV4P;-L?[!O?# -XM(B"TSI4]=C=1UV]V3:VS`4F^UYA%B`OO0 -XM9K]&GUX(6UY:T7T=5V9@W%-C,)M-U"U:20T+&42Z%MA`E\:EK"#;9*CY_2>E -XM3N#FH4NPH;_\K6"[)8LCMI*6XK(O*ZV*F#9LCD$0+X/V#>Z'\UVIF41`:)V= -XM9BN0*GOJE.<=M.!0`'7DB28VZ3X[]^T[:[#SC'9Q]U50,OKB3?/^7_"\QNCM -XM?<(QRS[/AM;_RX.&N-4TFWG1[;TZW%J@^]CNX`QI6?W-;8#;CF`WQD]D,I8( -XM>H6+R7YP!*$)-&3;U4-@R+':;/YMK6CLFUA4#DL+!FCOMKLGUP&FYM/8@*7>;YUDVFK-(\3=T.+`!/:AS;/K8,E^C3Z]R9#_ -XMN1"VO+2GJWVPHOLZKA7F^ZK,P+BG>]UYH\9@-IMQ??>?J%NTDA]&=98:%C*( -XMK0OSC'0ML('#,'&%F9"*72Z-2UGWJPA40+;)4$7FCD[R^T]**]T,1YS`S4,A -XM?8)[EF!#?T]&`'+X6\%V_0N&:$H61VR3,`1A)"W%9>E+FQ%>5EH5AW`9&#!M -XMV!PU/9\"@B!>!EL&'0OL&]P/4::3-^:[4C,_G1$^B(#0.HW0ER0ZS58@X^L5 -XM+53VU"EY)JG%SCMHP1<=*\R@`.K(I5"MUA)-;-++:R_??';NV\'+H>-VUF#G -XMK_`CZACMXNX=O:7PJJ!D]'.&)_G$F^;]"?VXB;[@>8UGQCJ`T-O[A-6+O)IB -XMEGV>N[`^DPRM_Y>Q$+"O!@UQJ]\K,J9H-O.B;6:TO-I[=;@#73:UM$#WL10` -XM``#_____`0`!>!`,!PB0`0```````!0````````````````````F```````` -XM`!0``````````7I2``%X$`$##`<(D`$``!0````<`````````"8````````` -XM````````````````$P`````````!`%0C`````````"8``````````0!4```` -XM`````````````````!@````"``````!C`0``S0```&-R8S,R```````L```` -XM`@``````"``````````````````F``````````````````````````````!L -XM;VYG(&QO;F<@:6YT`'-I>F5?=`!'3E4@0R`T+C(N,2`R,#`W,#6UT86(`+G-T./kUtil.a.ar-script.bsd.uu << '068e8339e6696dd7f0d5d05e54567937' -Xbegin 644 kUtil.a.ar-script.bsd -XM0U)%051%("XO:U5T:6PN80I!1$1-3T0@+B]C./kUtil.a.ar-script.gnu.uu << '8e00e678c1fca8191d5510a0884a1e14' -Xbegin 644 kUtil.a.ar-script.gnu -XM0U)%051%("XO:U5T:6PN80I!1$1-3T0@+B]M9#4N;PI!1$1-3T0@+B]C./md5.o.uu << '1f069cc1637871cdba87acd410259ce4' -Xbegin 644 md5.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````*@=```` -XM`````````$```````$``&``5`,<'`2-%9\='!(FKS>_'1PC^W+J8QT<,=E0R -XM$,='$`````#'1Q0`````PV9FD&9FD$%71(M'#(M/"$2+3P1!5D%505154XL? -XMBP9$BWX41(MF'(MN($2+;BA$BUXPB40DX(V4`WBD:M=$B<`QR(M>"$2+=C1$ -XM($$$!P(G00<'(%$0QR$$!T(E<)/!$( -XM/`'"1(G(P]D2)R#'(1"'`,<@!PHM$)/3! -XMRAM$`:AV$0QR$$!P$'!R!=!`=!$B<`QT$0AR#'0`<&+1"3PP)R$0QP"'01#'`00'!BT0D^$'!R0Q!`$A1(G(,- -XMC!$,..7]1#'``<%$B<#!R1`QT$0!P3'(00'!BT0DY$'!R0E!`2T2)R#'(0HV,(6!+N_8QT$$! -XMP(G00<'(%40QR$>-C"EPO+^^00'01#'``<%$B<#!R1`QT$*-E#+&?ILH1`'! -XM,AZD2)R#'( -XM,=!!`<"+1"3L0<'(%4$!T(V,`84P[]2)T$0QR$0QP`'!BT0D],')$$0!P46- -XMC`$%'8@$1(G`,=`QR$$!P8M$)/A!P-C#DYH)/\0<'(%O?000'01`G`,=`!P8G00HV4&L-96V7!R1'W -XMT$0!P0G(1#'`00'!1(G`0<')"_?000')1`G(,<@!PHM$).S!RAI$`1`%'#$'!R0M!7T0!R(E'!,-F9F:09F:09F:09F:02(E<).A(B6PD -XM\$B-;AA,B60D^$B#[!B+5A!)B?Q(B?/!Z@.#XC^)T$B-1`4`Q@"`2(UX`;@_ -XM````*="#^`=W8XG",?;H`````$B)WTB)[N@`````_+D'````,_S2*N+ -XM0Q!(B>Y(B=^)13B+0Q2)13SH`````$B+`TB+;"0(28D$)$B+0PA)B40D"$C' -XM`P````!,BV0D$$B+'"1(@\08PXU0^#'VZ`````#KLY!!5T%628G^055!B=5! -XM5%5(B?532(/L"(M7$$*-!.HYPHE'$'8$@T<4`42)Z,'J`TV-9AC!Z!U!`484 -XM@^(_#X2=````0;]`````B=!(B>Y!*==)C3P$1(GJ13G]#X*.````1(G[2(GN -XM12G]2(G:2`'=Z`````!,B>9,B??H`````$&#_3]V8$B+10!,B>9,B?=!@^U` -XM28E&&$B+10A)B40D"$B+11!)B40D$$B+11A)B40D&$B+12!)B40D($B+12A) -XMB40D*$B+13!)B40D,$B+13A(@\5`28E$)#CH`````$&#_3]WH$2)ZDB)[DR) -XMYTB#Q`A;74%<05U!7D%?Z0````````$1`24.$PL##A$!$@$0!@```B0`"PL^ -XM"P,.```#)``+"SX+`P@```06``,..@L["TD3```%)``+"SX+```&$P$##@L+ -XM.@L["P$3```'#0`#"#H+.PM)$S@*```(#0`##CH+.PM)$S@*```)`0%)$P$3 -XM```*(0!)$R\+```++@$_#`,..@L["R<,$0$2`4`*`1,```P%``,(.@L["TD3 -XM`@H```T/``L+21,```XN`3\,`PXZ"SL+)PP1`1(!0`8!$P``#P4``P@Z"SL+ -XM21,"!@``$#0``P@Z"SL+21,"!@``$04``PXZ"SL+21,"!@``$C0``PXZ"SL+ -XM21,"!@``$PL!$0$2`0``%"8`21,```",`@```@``````"`$``````0`````` -XM``````````````````````````(!!@`````"`0@``````@(%``````("!P`` -XM```#!`5I;G0`!``````".%<````"!`<``````@@%``````((!P`````""`0` -XM`````@0$``````4(!P(!!@`````""`4`````!``````#7DP````&`````%@$ -XM!LP````'8G5F``0'S`````(C``@`````!`C<`````B,0!VEN``0)[`````(C -XM&``)BP```-P````*>@````,`"8L```#L````"GH````!``DP````_`````IZ -XM````/P`+`0`````!-P$``````````````````````G<(*@$```QC='@``38J -XM`0```54`#0B6````#@$``````;$!``````````````````````````"A`0`` -XM#&)U9@`!L*$!```!50]I;@`!L*$!````````$&$``;*+`````````!!B``&R -XMBP`````````08P`!LHL`````````$&0``;*+```````````-"(L````.`0`` -XM```!=@$```````````````````````````,"```1``````%U`P(````````/ -XM8W1X``%U*@$````````2``````%W5P`````````0<``!>`,"``````````T( -XM,`````X!``````%&`0``````````````````````````A`(```]C='@``44J -XM`0````````]B=68``46$`@````````]L96X``457`````````!!T``%'BP`` -XM```````3`````````````````````!!P``%5`P(```````````T(B@(``!0P -XM`````&8"```"`)$````!`?L."@`!`0$!`````2]UF,\6"I% -XM2BAF`_5^TP,)FP-W1Y(T:&=R='17CZS;/&`Z95<[4\9R`W33`[9_Q0AH.JI( -XM.V]WD&$O-S=+.)%G-3PV5Z]D265#`CX21%=2`PICCM("!0`!`0```!0```#_ -XM____`0`!>!`,!PB0`0```````!0````````````````````J`````````#0` -XM``````````````````!C!P```````$(.$$T.&$(.($(.*$$.,$$..(,'A@:, -XM!8T$C@./`@``)````````````````````*\`````````2H8#@P1-#B",`@`` -XM`````#P````````````````````"`0```````$(.$$(.&(X#CP)%#B"-!$4. -XM*$$.,(8&C`5$#CA$#D"#!P`````````4``````````%Z4@`!>!`!`PP'")`! -XM```4````'``````````J```````````````L````-`````````!C!P```$(. -XM$$T.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`@`<````9`````````"O```` -XM`$J&`X,$30X@C`(``````#0```"$``````````(!````0@X00@X8C@./`D4. -XM((T$10XH00XPA@:,!40..$0.0(,'````````,``````````R``````````(` -XM=P@R`````````#\``````````@!W$#\`````````00`````````"`'<800`` -XM``````!#``````````(`=R!#`````````$0``````````@!W*$0````````` -XM10`````````"`'!````````#D%`````````0!90P4```````"A!0````````$` -XM6:L%````````]@4````````!`%D@!@```````'X&`````````0!9D08````` -XM``#8!@````````$`6?H&````````4P<````````!`%E[!P```````),'```` -XM`````0!9`````````````````````#D`````````J``````````!`%+&```` -XM`````#@!`````````0!230$```````"<`0````````$`4K,!````````#P(` -XM```````!`%(N`@```````(\"`````````0!2FP(```````#Q`@````````$` -XM4@H#````````=`,````````!`%*(`P```````-<#`````````0!2^`,````` -XM``!+!`````````$`4ET$````````J`0````````!`%+&!````````!T%```` -XM`````0!2)P4```````!V!0````````$`4H\%````````VP4````````!`%(& -XM!@```````$\&`````````0!2;`8```````"Y!@````````$`4N@&```````` -XM2`<````````!`%)"`````````(`=R!>"``` -XM`````%\(`````````@!W*%\(````````8P@````````"`' /dev/null 2>&1 -echo x - ./crc32.o.uu -sed 's/^X//' >./crc32.o.uu << 'a324e56f72c95be57d41e586ca56b982' -Xbegin 644 crc32.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````&@*```` -XM`````````$```````$``&0`6`$B%TG0>B?C!YPC!Z!@R!DB#Q@$/ML`S/(4` -XM````2(/J`77BB?C#```!$0$E#A,+`PX1`1(!$`8```(D``L+/@L##@```Q8` -XM`PXZ"SL+21,```0D``L+/@L#"```!20`"PL^"P``!BX!/PP##CH+.PLG#$D3 -XM$0$2`4`*`1,```<%``,..@L["TD3`@H```@%``,(.@L["TD3`@8```D%``,( -XM.@L["TD3`@H```HT``,(.@L["TD3`@H```L/``L+21,```PF````#28`21,` -XM``X!`4D3`1,```\A`$D3+PL``!`T``,..@L["TD3`@H```!?`0```@`````` -XM"`$``````0````````````````````````````````(!!@`````#``````(T -XM.P````(!"``````"`@4``````@('``````0$!6EN=``#``````(X8@````($ -XM!P`````""`4``````P`````".GL````""`<``````@@$``````($!``````# -XM``````)2<`````4(!P(!!@`````#``````-4,`````,``````UY7`````P`` -XM```#Z)`````""`4`````!@$``````9L!L``````````````````````````" -XM=P@F`0``!P`````!FK`````!50AB=68``9HF`0````````EL96X``9J[```` -XM`5$*<``!G"T!```!5``+""P!```,"P@S`0``#:4````.L````$@!```/FP`` -XM`/\`$``````!.%T!```)`P``````````#3@!````J0````(`B@````$!^PX* -XM``$!`0$````!+W5S7!EGN?<,UF -XM7G3@MB.85ZOBG(Z-H9$YD&"5/,`GBXO=YH]2^Z6"Y>9DAEA;*[[O1NJZ-F"I -XMMX%]:+.$+2^M,S#NJ>H6K:1="VR@D&TRU"=P\]#^5K#=24MQV4P;-L?[!O?# -XM(B"TSI4]=C=1UV]V3:VS`4F^UYA%B`OO0 -XM9K]&GUX(6UY:T7T=5V9@W%-C,)M-U"U:20T+&42Z%MA`E\:EK"#;9*CY_2>E -XM3N#FH4NPH;_\K6"[)8LCMI*6XK(O*ZV*F#9LCD$0+X/V#>Z'\UVIF41`:)V= -XM9BN0*GOJE.<=M.!0`'7DB28VZ3X[]^T[:[#SC'9Q]U50,OKB3?/^7_"\QNCM -XM?<(QRS[/AM;_RX.&N-4TFWG1[;TZW%J@^]CNX`QI6?W-;8#;CF`WQD]D,I8( -XM>H6+R7YP!*$)-&3;U4-@R+':;/YMK6CLFUA4#DL+!FCOMKLGUP&FYM/8@*7>;YUDVFK-(\3=T.+`!/:AS;/K8,E^C3Z]R9#_ -XMN1"VO+2GJWVPHOLZKA7F^ZK,P+BG>]UYH\9@-IMQ??>?J%NTDA]&=98:%C*( -XMK0OSC'0ML('#,'&%F9"*72Z-2UGWJPA40+;)4$7FCD[R^T]**]T,1YS`S4,A -XM?8)[EF!#?T]&`'+X6\%V_0N&:$H61VR3,`1A)"W%9>E+FQ%>5EH5AW`9&#!M -XMV!PU/9\"@B!>!EL&'0OL&]P/4::3-^:[4C,_G1$^B(#0.HW0ER0ZS58@X^L5 -XM+53VU"EY)JG%SCMHP1<=*\R@`.K(I5"MUA)-;-++:R_??';NV\'+H>-VUF#G -XMK_`CZACMXNX=O:7PJJ!D]'.&)_G$F^;]"?VXB;[@>8UGQCJ`T-O[A-6+O)IB -XMEGV>N[`^DPRM_Y>Q$+"O!@UQJ]\K,J9H-O.B;6:TO-I[=;@#73:UM$#WL10` -XM``#_____`0`!>!`,!PB0`0```````!0````````````````````F```````` -XM`!0``````````7I2``%X$`$##`<(D`$``!0````<`````````"8````````` -XM````````````````$P`````````!`%0C`````````"8``````````0!4```` -XM`````````````````!@````"``````!C`0``S0```&-R8S,R```````L```` -XM`@``````"``````````````````F``````````````````````````````!L -XM;VYG(&QO;F<@:6YT`'-I>F5?=`!'3E4@0R`T+C(N,2`R,#`W,#6UT86(`+G-T./kUtil.a.uu << 'd8fd496acedcfe487c40eb9a73d4241c' -Xbegin 644 kUtil.a -XM(3QA```6W@`` -XM%MYCB?C! -XMYPC!Z!@R!DB#Q@$/ML`S/(4`````2(/J`77BB?C#```!$0$E#A,+`PX1`1(! -XM$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+/@L#"```!20`"PL^ -XM"P``!BX!/PP##CH+.PLG#$D3$0$2`4`*`1,```<%``,..@L["TD3`@H```@% -XM``,(.@L["TD3`@8```D%``,(.@L["TD3`@H```HT``,(.@L["TD3`@H```L/ -XM``L+21,```PF````#28`21,```X!`4D3`1,```\A`$D3+PL``!`T``,..@L[ -XM"TD3`@H```!?`0```@``````"`$``````0`````````````````````````` -XM``````(!!@`````#``````(T.P````(!"``````"`@4``````@('``````0$ -XM!6EN=``#``````(X8@````($!P`````""`4``````P`````".GL````""`<` -XM`````@@$``````($!``````#``````)2<`````4(!P(!!@`````#``````-4 -XM,`````,``````UY7`````P`````#Z)`````""`4`````!@$``````9L!L``` -XM```````````````````````"=P@F`0``!P`````!FK`````!50AB=68``9HF -XM`0````````EL96X``9J[`````5$*<``!G"T!```!5``+""P!```,"P@S`0`` -XM#:4````.L````$@!```/FP```/\`$``````!.%T!```)`P``````````#3@! -XM````J0````(`B@````$!^PX*``$!`0$````!+W5S7!EGN?<,UF7G3@MB.85ZOBG(Z-H9$YD&"5/,`GBXO=YH]2 -XM^Z6"Y>9DAEA;*[[O1NJZ-F"IMX%]:+.$+2^M,S#NJ>H6K:1="VR@D&TRU"=P -XM\]#^5K#=24MQV4P;-L?[!O?#(B"TSI4]= -XMC=1UV]V3:VS`4F^UYA%B`OO09K]&GUX(6UY:T7T=5V9@W%-C,)M-U"U:20T+ -XM&42Z%MA`E\:EK"#;9*CY_2>E3N#FH4NPH;_\K6"[)8LCMI*6XK(O*ZV*F#9L -XMCD$0+X/V#>Z'\UVIF41`:)V=9BN0*GOJE.<=M.!0`'7DB28VZ3X[]^T[:[#S -XMC'9Q]U50,OKB3?/^7_"\QNCM?<(QRS[/AM;_RX.&N-4TFWG1[;TZW%J@^]CN -XMX`QI6?W-;8#;CF`WQD]D,I8(>H6+R7YP!*$)-&3;U4-@R+':; -XM/YMK6CLFUA4#DL+!FCOMKLGUP&FYM/8@*7>;YUDVFK-(\3= -XMT.+`!/:AS;/K8,E^C3Z]R9#_N1"VO+2GJWVPHOLZKA7F^ZK,P+BG>]UYH\9@ -XM-IMQ??>?J%NTDA]&=98:%C*(K0OSC'0ML('#,'&%F9"*72Z-2UGWJPA40+;) -XM4$7FCD[R^T]**]T,1YS`S4,A?8)[EF!#?T]&`'+X6\%V_0N&:$H61VR3,`1A -XM)"W%9>E+FQ%>5EH5AW`9&#!MV!PU/9\"@B!>!EL&'0OL&]P/4::3-^:[4C,_ -XMG1$^B(#0.HW0ER0ZS58@X^L5+53VU"EY)JG%SCMHP1<=*\R@`.K(I5"MUA)- -XM;-++:R_??';NV\'+H>-VUF#GK_`CZACMXNX=O:7PJJ!D]'.&)_G$F^;]"?VX -XMB;[@>8UGQCJ`T-O[A-6+O)IBEGV>N[`^DPRM_Y>Q$+"O!@UQJ]\K,J9H-O.B -XM;6:TO-I[=;@#73:UM$#WL10```#_____`0`!>!`,!PB0`0```````!0````` -XM```````````````F`````````!0``````````7I2``%X$`$##`<(D`$``!0` -XM```<`````````"8`````````````````````````$P`````````!`%0C```` -XM`````"8``````````0!4`````````````````````!@````"``````!C`0`` -XMS0```&-R8S,R```````L`````@``````"``````````````````F```````` -XM``````````````````````!L;VYG(&QO;F<@:6YT`'-I>F5?=`!'3E4@0R`T -XM+C(N,2`R,#`W,#6UT86(`+G-T,(E$)."- -XME`-XI&K71(G`,[.O<%$B<`QT"'(,="-E!JO -XM#WSUBUXD00'!B-A#@JQH='`<)$B-C"$!E4;]`<%$B<#!R0\QT$0!P2'(,="-E"K8F(!I00'!B-A#"3<9C] -XM`<)$BT46D4QT`'!P.I1#'`00'!0<')#$$!R42)R#'(1"'`,<@!PHM$ -XM).C!RAM$`-C!F*3"J-,=`!P<')$D0!P8G.1#'&B?`AT$*-E#I".?K_1#'` -XM18V$*('V<8=!`<%!PI$B<@QR#'000'`BT0D[$'!R!5!`="-C`&%,._4B=!$ -XM,-A!CEF=OF1#'(`<)$B-A""7_RI#]]!$"<@QR`'"BH# -XM@^(_B=!(C40%`,8`@$B->`&X/P```"G0@_@'=V.)PC'VZ`````!(B=](B>[H -XM`````/RY!P```#'`2(GO\TBKBT,02(GN2(G?B44XBT,4B44\Z`````!(BP-( -XMBVPD"$F)!"1(BT,(28E$)`A(QP,`````3(MD)!!(BQPD2(/$&,.-4/@Q]N@` -XM````Z[.005=!5DF)_D%508G505152(GU4TB#[`B+5Q!"C03J.<*)1Q!V!(-' -XM%`%$B>C!Z@--C688P>@=00%&%(/B/P^$G0```$&_0````(G02(GN02G728T\ -XM!$2)ZD4Y_0^"C@```$2)^TB)[D4I_4B)VD@!W>@`````3(GF3(GWZ`````!! -XM@_T_=F!(BT4`3(GF3(GW08/M0$F)1AA(BT4(28E$)`A(BT4028E$)!!(BT48 -XM28E$)!A(BT4@28E$)"!(BT4H28E$)"A(BT4P28E$)#!(BT4X2(/%0$F)1"0X -XMZ`````!!@_T_=Z!$B>I(B>Y,B>=(@\0(6UU!7$%=05Y!7^D````````!$0$E -XM#A,+`PX1`1(!$`8```(D``L+/@L##@```R0`"PL^"P,(```$%@`##CH+.PM) -XM$P``!20`"PL^"P``!A,!`PX+"SH+.PL!$P``!PT``P@Z"SL+21,X"@``"`T` -XM`PXZ"SL+21,X"@``"0$!21,!$P``"B$`21,O"P``"RX!/PP##CH+.PLG#!$! -XM$@%`"@$3```,!0`#"#H+.PM)$P(*```-#P`+"TD3```.+@$_#`,..@L["R<, -XM$0$2`4`&`1,```\%``,(.@L["TD3`@8``!`T``,(.@L["TD3`@8``!$%``,. -XM.@L["TD3`@8``!(T``,..@L["TD3`@8``!,+`1$!$@$``!0F`$D3````C`(` -XM``(```````@!``````$````````````````````````````````"`08````` -XM`@$(``````("!0`````"`@<``````P0%:6YT``0``````CA7`````@0'```` -XM``((!0`````""`<``````@@$``````($!``````%"`<"`08``````@@%```` -XM``0``````UY,````!@````!8!`;,````!V)U9@`$!\P````"(P`(``````0( -XMW`````(C$`=I;@`$">P````"(Q@`"8L```#<````"GH````#``F+````[``` -XM``IZ`````0`),````/P````*>@```#\`"P$``````3``!=2H!````````$@`````!=U<````` -XM````$'```7@#`@`````````-"#`````.`0`````!1@$````````````````` -XM`````````(0"```/8W1X``%%*@$````````/8G5F``%%A`(````````/;&5N -XM``%%5P`````````0=``!1XL`````````$P`````````````````````0<``! -XM50,"```````````-"(H"```4,`````!F`@```@"1`````0'[#@H``0$!`0`` -XM``$O=7-R+W!O7,` -XM`&UD-2YC``$``%]T>7!ECDZ*D@X/T)D?BPX.BHZ3DL.#HJ.DA^.BI(.#J`.&0(2'XZ*D@X.F1^+#@Z -XM*CI(?CHJ2#@Z9'XL.#HJ.G-%1G*X?E8X.BQO.E8J -XM2#@Z5D9D"!]%2-&AGO9$EE0P(^$D17 -XM4@,*8X[2`@4``0$````4````_____P$``7@0#`<(D`$````````4```````` -XM````````````*@`````````T````````````````````8P<```````!"#A!- -XM#AA"#B!"#BA!#C!!#CB#!X8&C`6-!(X#CP(``"0```````````````````"O -XM`````````$J&`X,$30X@C`(````````\`````````````````````@$````` -XM``!"#A!"#AB.`X\"10X@C01%#BA!#C"&!HP%1`XX1`Y`@P<`````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````*@`````````````` -XM+````#0`````````8P<```!"#A!-#AA"#B!"#BA!#C!!#CB#!X8&C`6-!(X# -XMCP(`'````&0`````````KP````!*A@.#!$T.((P"```````T````A``````` -XM```"`0```$(.$$(.&(X#CP)%#B"-!$4.*$$.,(8&C`5$#CA$#D"#!P`````` -XM`#``````````,@`````````"`'<(,@`````````_``````````(`=Q`_```` -XM`````$$``````````@!W&$$`````````0P`````````"`'<@0P````````!$ -XM``````````(`=RA$`````````$4``````````@!W,$4`````````DP<````` -XM```"`'\$````````504````````!`%%G!0`` -XM`````+T%`````````0!1T04````````0!@````````$`43,&````````AP8` -XM```````!`%&P!@````````P'`````````0!1)`<```````!@!P````````$` -XM40`````````````````````]`````````-L``````````0!9\0````````!+ -XM`0````````$`668!````````R`$````````!`%G<`0```````"P"```````` -XM`0!90`(```````"M`@````````$`6<("````````'`,````````!`%DI`P`` -XM`````(0#`````````0!9HP,```````#T`P````````$`61T$````````6`0` -XM```````!`%EM!````````+X$`````````0!9W@0````````Y!0````````$` -XM64,%````````H04````````!`%FK!0```````/8%`````````0!9(`8````` -XM``!^!@````````$`69$&````````V`8````````!`%GZ!@```````%,'```` -XM`````0!9>P<```````"3!P````````$`60`````````````````````Y```` -XM`````*@``````````0!2Q@`````````X`0````````$`4DT!````````G`$` -XM```````!`%*S`0````````\"`````````0!2+@(```````"/`@````````$` -XM4IL"````````\0(````````!`%(*`P```````'0#`````````0!2B`,````` -XM``#7`P````````$`4O@#````````2P0````````!`%)=!````````*@$```` -XM`````0!2Q@0````````=!0````````$`4B<%````````=@4````````!`%*/ -XM!0```````-L%`````````0!2!@8```````!/!@````````$`4FP&```````` -XMN08````````!`%+H!@```````$@'`````````0!27`<```````"3!P`````` -XM``$`4@`````````````````````V`````````)@``````````0!8K@`````` -XM```/`0````````$`6",!````````@`$````````!`%B?`0```````/8!```` -XM`````0!8$@(```````!P`@````````$`6'T"````````V0(````````!`%CW -XM`@```````$L#`````````0!88@,```````#(`P````````$`6-T#```````` -XM&@0````````!`%@Y!````````)L$`````````0!8K00````````!!0`````` -XM``$`6`L%````````8@4````````!`%A^!0```````,@%`````````0!8ZP4` -XM``````!%!@````````$`6%D&````````G`8````````!`%C-!@```````!<' -XM`````````0!8-@<```````"3!P````````$`6`````````````````````"@ -XM!P```````+<'`````````@!W"+<'````````3P@````````"`'<@```````` -XM`````````````*`'````````U`<````````!`%74!P```````#H(```````` -XM`0!<0P@```````!/"`````````$`7`````````````````````"@!P`````` -XM`.`'`````````0!4X`<````````^"`````````$`4T,(````````3P@````` -XM```!`%,`````````````````````N@<```````#(!P````````$`4<@'```` -XM````S0<````````!`%#9!P```````.('`````````0!0X@<```````#I!P`` -XM``````$`44,(````````30@````````!`%``````````````````````S0<` -XM``````#4!P````````$`4-0'````````Z0<````````!`%5#"````````$T( -XM`````````0!5`````````````````````%`(````````4@@````````"`'<( -XM4@@```````!4"`````````(`=Q!4"````````%D(`````````@!W&%D(```` -XM````7@@````````"`'<@7@@```````!?"`````````(`=RA?"````````&,( -XM`````````@!W,&,(````````9P@````````"`'`````````````````````%`(````````=0@````` -XM```!`%1U"````````+$(`````````0!6L0@```````#`"`````````$`5,`( -XM````````/PD````````!`%8_"0```````%()`````````0!4```````````` -XM`````````%`(````````:@@````````!`%%J"````````*@(`````````0!= -XMJ`@```````"Q"`````````$`4;$(````````.0D````````!`%TY"0`````` -XM`%()`````````0!1`````````````````````&H(````````F0@````````! -XM`%&9"````````)L(`````````0!?FP@```````"A"`````````$`4*$(```` -XM````30D````````!`%]-"0```````%()`````````0!0```````````````` -XM`````*4(````````Q0@````````!`%4_"0```````%()`````````0!5```` -XM`````````````````$8````"``````"0`@``_````$U$-4EN:70`,`$``$U$ -XM-51R86YS9F]R;0"G`0``340U1FEN86P`"0(``$U$-55P9&%T90``````+``` -XM``(```````@`````````````````4@D````````````````````````````` -XM+W5S6UT86(`+G-T`````$````"````````````````````./kUtil.a.ar-script.bsd.uu << '068e8339e6696dd7f0d5d05e54567937' -Xbegin 644 kUtil.a.ar-script.bsd -XM0U)%051%("XO:U5T:6PN80I!1$1-3T0@+B]C./kUtil.a.ar-script.gnu.uu << '8e00e678c1fca8191d5510a0884a1e14' -Xbegin 644 kUtil.a.ar-script.gnu -XM0U)%051%("XO:U5T:6PN80I!1$1-3T0@+B]M9#4N;PI!1$1-3T0@+B]C./md5.o.uu << '1f069cc1637871cdba87acd410259ce4' -Xbegin 644 md5.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````*@=```` -XM`````````$```````$``&``5`,<'`2-%9\='!(FKS>_'1PC^W+J8QT<,=E0R -XM$,='$`````#'1Q0`````PV9FD&9FD$%71(M'#(M/"$2+3P1!5D%505154XL? -XMBP9$BWX41(MF'(MN($2+;BA$BUXPB40DX(V4`WBD:M=$B<`QR(M>"$2+=C1$ -XM($$$!P(G00<'(%$0QR$$!T(E<)/!$( -XM/`'"1(G(P]D2)R#'(1"'`,<@!PHM$)/3! -XMRAM$`:AV$0QR$$!P$'!R!=!`=!$B<`QT$0AR#'0`<&+1"3PP)R$0QP"'01#'`00'!BT0D^$'!R0Q!`$A1(G(,- -XMC!$,..7]1#'``<%$B<#!R1`QT$0!P3'(00'!BT0DY$'!R0E!`2T2)R#'(0HV,(6!+N_8QT$$! -XMP(G00<'(%40QR$>-C"EPO+^^00'01#'``<%$B<#!R1`QT$*-E#+&?ILH1`'! -XM,AZD2)R#'( -XM,=!!`<"+1"3L0<'(%4$!T(V,`84P[]2)T$0QR$0QP`'!BT0D],')$$0!P46- -XMC`$%'8@$1(G`,=`QR$$!P8M$)/A!P-C#DYH)/\0<'(%O?000'01`G`,=`!P8G00HV4&L-96V7!R1'W -XMT$0!P0G(1#'`00'!1(G`0<')"_?000')1`G(,<@!PHM$).S!RAI$`1`%'#$'!R0M!7T0!R(E'!,-F9F:09F:09F:09F:02(E<).A(B6PD -XM\$B-;AA,B60D^$B#[!B+5A!)B?Q(B?/!Z@.#XC^)T$B-1`4`Q@"`2(UX`;@_ -XM````*="#^`=W8XG",?;H`````$B)WTB)[N@`````_+D'````,_S2*N+ -XM0Q!(B>Y(B=^)13B+0Q2)13SH`````$B+`TB+;"0(28D$)$B+0PA)B40D"$C' -XM`P````!,BV0D$$B+'"1(@\08PXU0^#'VZ`````#KLY!!5T%628G^055!B=5! -XM5%5(B?532(/L"(M7$$*-!.HYPHE'$'8$@T<4`42)Z,'J`TV-9AC!Z!U!`484 -XM@^(_#X2=````0;]`````B=!(B>Y!*==)C3P$1(GJ13G]#X*.````1(G[2(GN -XM12G]2(G:2`'=Z`````!,B>9,B??H`````$&#_3]V8$B+10!,B>9,B?=!@^U` -XM28E&&$B+10A)B40D"$B+11!)B40D$$B+11A)B40D&$B+12!)B40D($B+12A) -XMB40D*$B+13!)B40D,$B+13A(@\5`28E$)#CH`````$&#_3]WH$2)ZDB)[DR) -XMYTB#Q`A;74%<05U!7D%?Z0````````$1`24.$PL##A$!$@$0!@```B0`"PL^ -XM"P,.```#)``+"SX+`P@```06``,..@L["TD3```%)``+"SX+```&$P$##@L+ -XM.@L["P$3```'#0`#"#H+.PM)$S@*```(#0`##CH+.PM)$S@*```)`0%)$P$3 -XM```*(0!)$R\+```++@$_#`,..@L["R<,$0$2`4`*`1,```P%``,(.@L["TD3 -XM`@H```T/``L+21,```XN`3\,`PXZ"SL+)PP1`1(!0`8!$P``#P4``P@Z"SL+ -XM21,"!@``$#0``P@Z"SL+21,"!@``$04``PXZ"SL+21,"!@``$C0``PXZ"SL+ -XM21,"!@``$PL!$0$2`0``%"8`21,```",`@```@``````"`$``````0`````` -XM``````````````````````````(!!@`````"`0@``````@(%``````("!P`` -XM```#!`5I;G0`!``````".%<````"!`<``````@@%``````((!P`````""`0` -XM`````@0$``````4(!P(!!@`````""`4`````!``````#7DP````&`````%@$ -XM!LP````'8G5F``0'S`````(C``@`````!`C<`````B,0!VEN``0)[`````(C -XM&``)BP```-P````*>@````,`"8L```#L````"GH````!``DP````_`````IZ -XM````/P`+`0`````!-P$``````````````````````G<(*@$```QC='@``38J -XM`0```54`#0B6````#@$``````;$!``````````````````````````"A`0`` -XM#&)U9@`!L*$!```!50]I;@`!L*$!````````$&$``;*+`````````!!B``&R -XMBP`````````08P`!LHL`````````$&0``;*+```````````-"(L````.`0`` -XM```!=@$```````````````````````````,"```1``````%U`P(````````/ -XM8W1X``%U*@$````````2``````%W5P`````````0<``!>`,"``````````T( -XM,`````X!``````%&`0``````````````````````````A`(```]C='@``44J -XM`0````````]B=68``46$`@````````]L96X``457`````````!!T``%'BP`` -XM```````3`````````````````````!!P``%5`P(```````````T(B@(``!0P -XM`````&8"```"`)$````!`?L."@`!`0$!`````2]UF,\6"I% -XM2BAF`_5^TP,)FP-W1Y(T:&=R='17CZS;/&`Z95<[4\9R`W33`[9_Q0AH.JI( -XM.V]WD&$O-S=+.)%G-3PV5Z]D265#`CX21%=2`PICCM("!0`!`0```!0```#_ -XM____`0`!>!`,!PB0`0```````!0````````````````````J`````````#0` -XM``````````````````!C!P```````$(.$$T.&$(.($(.*$$.,$$..(,'A@:, -XM!8T$C@./`@``)````````````````````*\`````````2H8#@P1-#B",`@`` -XM`````#P````````````````````"`0```````$(.$$(.&(X#CP)%#B"-!$4. -XM*$$.,(8&C`5$#CA$#D"#!P`````````4``````````%Z4@`!>!`!`PP'")`! -XM```4````'``````````J```````````````L````-`````````!C!P```$(. -XM$$T.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`@`<````9`````````"O```` -XM`$J&`X,$30X@C`(``````#0```"$``````````(!````0@X00@X8C@./`D4. -XM((T$10XH00XPA@:,!40..$0.0(,'````````,``````````R``````````(` -XM=P@R`````````#\``````````@!W$#\`````````00`````````"`'<800`` -XM``````!#``````````(`=R!#`````````$0``````````@!W*$0````````` -XM10`````````"`'!````````#D%`````````0!90P4```````"A!0````````$` -XM6:L%````````]@4````````!`%D@!@```````'X&`````````0!9D08````` -XM``#8!@````````$`6?H&````````4P<````````!`%E[!P```````),'```` -XM`````0!9`````````````````````#D`````````J``````````!`%+&```` -XM`````#@!`````````0!230$```````"<`0````````$`4K,!````````#P(` -XM```````!`%(N`@```````(\"`````````0!2FP(```````#Q`@````````$` -XM4@H#````````=`,````````!`%*(`P```````-<#`````````0!2^`,````` -XM``!+!`````````$`4ET$````````J`0````````!`%+&!````````!T%```` -XM`````0!2)P4```````!V!0````````$`4H\%````````VP4````````!`%(& -XM!@```````$\&`````````0!2;`8```````"Y!@````````$`4N@&```````` -XM2`<````````!`%)"`````````(`=R!>"``` -XM`````%\(`````````@!W*%\(````````8P@````````"`' /dev/null 2>&1 -echo c - ./kmkbuiltin -mkdir -p ./kmkbuiltin > /dev/null 2>&1 -echo x - ./kmkbuiltin/kbuild_protection.o.uu -sed 's/^X//' >./kmkbuiltin/kbuild_protection.o.uu << 'ba9c783b814204367d9452f4eebce68e' -Xbegin 644 ./kbuild_protection.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````-@J```` -XM`````````$```````$``'``9`,<'`!$1`,9'"0#&1P@!QT<$`@```,-F9F:0 -XM9F:09F:0QP<`````PV9FD&9FD&9FD+@"````PV9F9I!F9I!F9I!(B5PD\$B) -XM;"3X2(/L&($_`!$1`$B)^XGU=!FY`````+KW````O@````"_`````.@````` -XM@_T!=AFY`````+KX````O@````"_`````.@`````B>B`9`,(_DB+7"0(2(ML -XM)!!(@\08PV9F9I!F9F:02(E<)/!(B6PD^$B#[!B!/P`1$0!(B?N)]709N0`` -XM``"Z[P```+X`````OP````#H`````(/]`789N0````"Z\````+X`````OP`` -XM``#H`````(GH@$P#"`%(BUPD"$B+;"002(/$&,-F9F:09F9FD%5%,E(@_D"=")( -XM@^D!=$I!@\`!A,!(C6H!=#$/MG4`0(#^+W6]2(/%`>OP0(#^+G7>@'T!+G78 -XM187`9F9FD'[308/H`83`2(UJ`77/2('$"!```$2)P%M=PT"`_BYUL.NR0(#_ -XM+@^%7/___X!^`2X/A5+___]%A<`/CDW___]!@^@!Z43___]F9F:09F:00(#_ -XM+@^%+____V9FD&9FD.DH____O@````"_`0```.@`````0;C_____ZY)F9F:0 -XM2(E<).A(B6PD\$B)^TR)9"3X2(/L&($_`!$1`(GU28G4=!FY`````+I6`0`` -XMO@````"_`````.@`````@_T!=AFY`````+I7`0``O@````"_`````.@````` -XMB>CV1`,(`W4&]D,)`W063(GGZ!_^__^%P+K_____>`<[0P1V%S'22(L<)$B+ -XM;"0(B=!,BV0D$$B#Q!C#3(GBO@````"_`0```#'`Z`````"Z_____^O09F9F -XMD&9F9I!F9F:09F:054B)_5-(B?-(@^P8#[X6A=)X+(LU`````#GR?2)(BPT` -XM````ZP](@\,!#[X3A=)X#CGR?0I(8\+V1,%!0'7G@_I_=PU(8\+V!,4````` -XM!'4<2(G?Z'?]__^%P(E%!`^$HP```$B#Q!@QP%M=P[X`````2(G?Z`````!( -XMA-``# -XM#CH+.PM)$P``'S0``P@Z"SL+21,``"`N`0,..@L["R<,21,1`1(!0`8!$P`` -XM(30``PXZ"SL+21,"!@``(@L!508!$P``(S0``PXZ"SL+21,""@``)!T!,1-5 -XM!E@+60L``"4%`#$3```F"P%5!@``)S0`,1,"!@``*#0`,1,``"DA`$D3+P4` -XM`"HN`3\,`PXZ"SL%)PQ)$Q$!$@%`!@$3```K!0`##CH+.P5)$P(&```L-``# -XM#CH+.P5)$P(&```M'0$Q$U4&6`M9!0$3```N!0`Q$P(&```O'0$Q$Q$!$@%8 -XM"UD%`1,``#`+`1$!$@$``#$=`3$35098"UD%```R-``#"#H+.P5)$P(&```S -XM-``##CH+.P5)$P``-#0``PXZ"SL+21,_##P,````<0@```(```````@!```` -XM``$````````````````````````````````"`08``````@$(``````("!0`` -XM```"`@<``````P0%:6YT``($!P`````""`4`````!``````#.F4````""`<` -XM`````@@$``````($!``````$``````-26@````4(!P8(!``````$5D4````$ -XM``````17B@````(!!@`````'"*`````'"+,````(H`````0`````!>AZ```` -XM`@@%``````D8!C0+`0``"@`````&-94````"(P`*``````8VE0````(C!`H` -XM````!C>5`````B,("@`````&.`L!```"(Q``!PAE````!``````&.@````]3`@````<(K0`` -XM``<(.0(```X!10```'X"```/E0````^G````#WH````/?@(````'"*<````' -XM"%\"```,90```)H"```-A0```/\`#)4```"J`@``#84```#_``0`````!E=2 -XM`0``$`0'(M8"```1```````1```````1``````$1``````(`!``````')[4" -XM```2``````P'+Q@#```*``````8H````47V8``GEE````%0`3``````*``44````#S0,``!1?8P`"?XH` -XM```47V8``G]E`````!8!``````':`0`````````````````````"=PC[`P`` -XM%P`````!V3,#```!50`6`0`````!Z`$``````````````````````G<(*00` -XM`!<``````>!```&@`````!]3,# -XM````````&@`````!]=8"````````&P`````]"````0D#````````````&0$` -XM`````>X!``````````````````````````#R!```&@`````![3,#```````` -XM&@`````![=8"````````&P`````H"````0D#````````````$P`````!1`%% -XM`````3(%```<``````%#K0```!P``````4-%````'1X``````4>M````'V-C -XM:``!2+@``````"```````74!10``````````````````````````````W@4` -XM`!H``````72M`````````"$``````79%`````````"(`````MP4``",````` -XM`<'>!0```Y'@7R3R!`````````'')0X%```E`P4``"8`````)QH%```````` -XM*"4%```````D\@0````````!T"4.!0``)0,%```F`````"@:!0``*"4%```` -XM```,H````.\%```IA0```/\/`"H!``````%5`0%%```````````````````` -XM``````````!T!@``*P`````!5`%$`P```````"L``````50!U@(````````K -XM``````%4`:T`````````(@````!?!@``+``````!7P%%```````````;```` -XM`$((```!"0,````````````J`0`````!!0$!10`````````````````````` -XM````````:@<``"L``````00!,P,````````K``````$$`:T`````````+8`# -XM`````````0R5U`P``+FL#```` -XM```````OIP,````````````````````````!"P$6!P``)<(#```EN`,````P -XM`````````````````````"P``````0\!IP`````````Q@`,````````!%`$E -XMFP,``"61`P``)%H#`````````GLE=0,``"YK`P`````````````J`0`````! -XM*P$!10``````````````````````````````$P@``"L``````2H!,P,````` -XM```K``````$J`7X"````````*P`````!*@&M`````````#)I``$L`4P````` -XM````+``````!+0$3"````````"8`````+``````!,0&M`````````#`````` -XM````````````````,P`````!-P&M````````"+@````,H````"@(```-A0`` -XM`!8`"!@(```,H````#T(```-A0```!<`""T(```(+0@``#0``````EI%```` -XM`0$T``````9;J@(```$!-``````&7&X(```!`0<(J@(````F`@```@#K```` -XM`0'[#@H``0$!`0````$O=7-R+W!O7,``&MB=6EL9%]P -XM7!E+F@``@``7W1Y<&5S+F@``P``7W1Y<&5S -XM+F@`!```='EP97,N:``$``!R=6YE='EP92YH``(``&MB=6EL9%]P.C`0"`]I^.00!`ZD!1PB2 -XM"#L##0A'_S=E5S<["((('T@((P@>@`@>`W%_`Q*D#"0B;"%8" -XM"P`!`7!4:&ES+3YU36%G:6,@/3T@2T)524Q$7U!23U1%0U1)3TY?34%'24,` -XM`````````"]U7!E(#P@2T)524Q$4%)/5$5#5$E/3E194$5?34%8("8F(&5N -XM;51Y<&4@/CT@2T)524Q$4%)/5$5#5$E/3E194$5?1DE24U0`9V5T8W=D`"5S -XM.B!P``````````$`4YX````` -XM````J``````````!`%4`````````````````````0`````````!;```````` -XM``$`5%L`````````E``````````!`%:4`````````*@``````````0!0```` -XM`````````````````+``````````O@`````````"`'<(O@`````````8`0`` -XM``````(`=R``````````````````````L`````````#+``````````$`5T!````````_0$````````!`%$> -XM`@```````"L"`````````0!1,P(```````!Z`@````````$`5``````````` -XM``````````"0`@```````*8"`````````@!W"*8"````````00,````````" -XM`'<@`````````````````````)`"````````QP(````````!`%7'`@`````` -XM`!4#`````````0!3%0,````````F`P````````$`528#````````00,````` -XM```!`%,`````````````````````D`(```````"S`@````````$`5+,"```` -XM````[`(````````!`%;L`@````````$#`````````0!0#P,````````<`P`` -XM``````$`4`````````````````````"0`@```````+,"`````````0!1LP(` -XM```````A`P````````$`7"8#````````00,````````!`%P````````````` -XM`````````P,````````<`P````````$`4"8#````````-0,````````!`%`` -XM````````````````````4`,```````!1`P````````(`=PA1`P```````%4# -XM`````````@!W$%4#````````7`,````````"`'<87`,```````!R!``````` -XM``(`=S``````````````````````4`,```````!C`P````````$`56,#```` -XM````O`,````````!`%:]`P```````'$$`````````0!6```````````````` -XM`````%`#````````:0,````````!`%1I`P```````+L#`````````0!3O0,` -XM``````!P!`````````$`4P````````````````````!?`P```````'8#```` -XM`````0!1=@,```````!]`P````````$`4'T#````````B`,````````!`%&( -XM`P```````(\#`````````0!0CP,```````"7`P````````$`49<#```````` -XMJ0,````````!`%"]`P```````,H#`````````0!0```````````````````` -XM`+0#````````O0,````````!`%'B`P```````/L#`````````@"18/L#```` -XM````'@0````````!`%$>!````````"T$`````````0!2+00````````]!``` -XM``````$`43T$````````200````````!`%))!````````%<$`````````0!1 -XM5P0```````!R!`````````(`D6``````````````````````M`,```````"Z -XM`P````````$`4/X#````````%00````````!`%`5!````````#D$```````` -XM`0!0.00```````!`!`````````$`4$D$````````9@0````````!`%`````` -XM````````````````@`0```````""!`````````(`=PB"!````````(<$```` -XM`````@!W$(<$````````C`0````````"`'<8C`0```````".!`````````(` -XM=R".!````````)4$`````````@!W*)4$````````E@0````````"`'7!E`'!A<'-Z -XM16YV`$M"54E,1%!23U1%0U1)3TY465!%7T9)4E-4`&QO;F<@:6YT`%]?;6%P -XM;&]W97(`2T)524Q$4%)/5$5#5$E/3E194$5?1E5,3`!P7!E`'!S>E9A<@!?0W5R0!C8VA0E9A;`!+0E5)3$104D]414-424].5%E015]-05@` -XM=6YS:6=N960@8VAA<@!?4G5N95)A;F=E`%]?E!R -XM969I>`!'3E4@0R`T+C(N,2`R,#`W,#7!E7V5X=`!?7VUA<`!? -XM7VUA>```1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#'0`+F1A=&$`+F)S -XM`!K0G5I;&10`````````%L` -XM````````"@```!4```"A`@```````&@`````````"@```!4```"A`0`````` -XM`&\`````````"@```!4````5`0```````'8`````````"@```!4```"L`@`` -XM`````'L`````````"@```!4```!B`0```````(L`````````"@```!4````/ -XM!````````)8`````````"@```!4```!L`````````*,`````````"@```!4` -XM``!:`P```````+D`````````"@```!4```!$`````````,8`````````"@`` -XM`!4```"*`````````-,`````````"@```!4````^`````````.$````````` -XM"@```!4```"!@```````#P'````````"@`` -XM`!0```"``0```````%('````````"@```!0```#``0```````&('```````` -XM"@```!$````(!P```````&P'````````"@```!4```!?`P```````'@'```` -XM`````0````(```"`!````````(`'`````````0````(```"$!0```````(@' -XM````````"@```!$```!W!P```````)$'````````"@```!4```#V`P`````` -XM`)P'````````"@```!$````H"````````*$'````````"@```!4```"Z```` -XM`````*P'````````"@```!$```!Q"````````+$'````````"@```!4````P -XM`P```````+P'````````"@```!$```"Z"````````,H'````````"@```!$` -XM```#"0```````,\'````````"@```!4```!'`@```````-H'````````"@`` -XM`!$```"8"0```````-\'````````"@```!0``````@```````.0'```````` -XM"@```!4````F`0```````.\'````````"@```!$```#."0```````/0'```` -XM`````0````(```!(!0```````/P'`````````0````(```!C!0````````4( -XM````````"@```!4```"[`@```````$@(````````"@```!4```!4`0`````` -XM`%4(````````"@```!4````)`P```````&((````````"@```!4````M`0`` -XM`````/@``````````0````(``````````````!P`````````"@````\````` -XM`````````"```````````0````(``````````````#0`````````"@````\` -XM`````````````#@``````````0````(````@`````````$P`````````"@`` -XM``\``````````````%```````````0````(````P`````````&0````````` -XM"@````\``````````````&@``````````0````(```!``````````(0````` -XM````"@````\``````````````(@``````````0````(```"P`````````*0` -XM````````"@````\``````````````*@``````````0````(````@`0`````` -XM`,P`````````"@````\``````````````-```````````0````(```"0`@`` -XM`````/0`````````"@````\``````````````/@``````````0````(```!0 -XM`P```````!P!````````"@````\``````````````"`!`````````0````(` -XM``"`!````````"``````````"@````(``````````````#@`````````"@`` -XM``(````@`````````%``````````"@````(````P`````````&@````````` -XM"@````(```!``````````(``````````"@````(```"P`````````)@````` -XM````"@````(````@`0```````+@`````````"@````(```"0`@```````-@` -XM````````"@````(```!0`P```````/@`````````"@````(```"`!``````` -XM``8`````````"@````8```````````````8`````````"@````8````````` -X<`````!```````````0````(````````````````` -X` -Xend -ba9c783b814204367d9452f4eebce68e -echo x - ./kmkbuiltin/err.o.uu -sed 's/^X//' >./kmkbuiltin/err.o.uu << '0e59f08b905695fcc4fe4d89f926df6c' -Xbegin 644 ./err.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````.@3```` -XM`````````$```````$``&@`7`%-(B?M(@>S0````2(E4)#`/MM!(B4PD.$B- -XM!)4`````N@````!,B40D0$R)3"1(2(ET)"A(*<)(C80DSP```/_B#REX\0\I -XM<.$/*6C1#RE@P0\I6+$/*5"A#RE(D0\I0('H`````$B+%0````!(BST````` -XMO@`````QP.@`````2(V$).````!(BST`````2(GB2(G>QP0D"````,=$)`0P -XM````2(E$)`A(C40D($B)1"00Z`````!(BS4`````OPH```#H`````$B!Q-`` -XM``!;PV9F9I!F9F:09F:09F:0051!B?Q32(GSO@````!(@>S8````2(E4)#`/ -XMMM!(B4PD.$B-!)4`````N@````!,B40D0$R)3"1(2"G"2(V$),\```#_X@\I -XM>/$/*7#A#REHT0\I8,$/*5BQ#RE0H0\I2)$/*4"!2(L5`````#'`2(L]```` -XM`.@`````2(V$)/````!(BST`````2(GB2(G>QP0D$````,=$)`0P````2(E$ -XM)`A(C40D($B)1"00Z`````!(BS4`````OPH```#H`````$B!Q-@```!$B>!; -XM05S#9F9FD&9F9I!F9I!F9I!!5%-(B?M(@>S8````2(E4)#`/MM!(B4PD.$B- -XM!)4`````N@````!,B40D0$R)3"1(2(ET)"A(*<)(C80DSP```/_B#REX\0\I -XM<.$/*6C1#RE@P0\I6+$/*5"A#RE(D0\I0('H`````$B+%0````!(BST````` -XMO@````!$BR`QP.@`````2(V$)/````!(BST`````2(GB2(G>QP0D"````,=$ -XM)`0P````2(E$)`A(C40D($B)1"00Z`````!$B>?H`````$B+/0````!(B<*^ -XM`````#'`Z`````!(@<38````6T%SH````08G]2(E4)#`/MM!(B4PD.$B-!)4`````N@````!,B40D -XM0$R)3"1(2"G"2(V$),\```#_X@\I>/$/*7#A#REHT0\I8,$/*5BQ#RE0H0\I -XM2)$/*4"!Z`````!(BQ4`````2(L]`````+X`````1(L@,<#H`````$B-A"3P -XM````2(L]`````$B)XDB)WL<$)!````#'1"0$,````$B)1"0(2(U$)"!(B40D -XM$.@`````1(GGZ`````!(BST`````2(G"O@`````QP.@`````1(GH2(N<)-`` -XM``!,BZ0DV````$R+K"3@````2('$Z````,,```````````$1`24.$PL##A$! -XM$@$0!@```B0`"PL^"P,.```#)``+"SX+`P@```06``,..@L["TD3```%`0%) -XM$P$3```&(0!)$R\+```')``+"SX+```($P$##@L+.@L["P$3```)#0`##CH+ -XM.PM)$S@*```*#P`+"P``"Q$$! -XM```"(U@/7W5P``5Y:@$```(C:`]?=7(`!7I%`````B-P"0`````%?6<#```" -XM(W0)``````5^=P,```(C=P]?;&(`!8%!`0```B-X"0`````%A$4````#(X@! -XM"0`````%A2L!```#(Y`!"0`````%AXT#```#(Y@!"0`````%B)D#```#(Z`! -XM"0`````%B44````#(Z@!"0`````%BD4````#(ZP!"0`````%BR`!```#([`! -XM`!`!10```/`"```1W0`````-".`"```0`44````0`P``$=T````1$`,``!%% -XM``````T(&0$```T(]@(``!`!*P$``#8#```1W0```!$K`0``$44`````#0@< -XM`P``$`%%````5@,``!'=````$58#```110`````-"%P#```2&0$```T(/`,` -XM``4P````=P,```:5`````@`%,````(<#```&E0``````$P`````!#0B'`P`` -XM$P`````!#0B3`P``!``````%C'`!```4`0`````!3`$````````````````` -XM`````````/8#```59FUT``%+5@,````````6%V5R<@`!344````8``````%. -XM-@$```.1H'X`&0$``````34!10``````````````````````````````2@0` -XM`!H``````31%`````````!5F;70``316`P```````!88``````$V-@$```.1 -XMD'X`%`$``````4$!``````````````````````````":!```%69M=``!0%8# -XM````````%AL``````4)%`````````!@``````4,V`0```Y&0?@`<`65R<@`! -XM)P%%``````````````````````````````#]!```&@`````!)D4````````` -XM%69M=``!)E8#````````%A@``````2@V`0```Y&0?AL``````2E%```````` -XM```=``````62"@4```$!#0B?`P``'@`````!(U8#```!"0,````````````C -XM`0```@"Z`````0'[#@H``0$!`0````$O=7-R+W!O7!EE(``7@0`0,,!PB0`0``'````!P`````````T@````!!#A"# -XM`DH.X`$````````<````/`````````#2`````$(.$(P"1`X8@P-/#O`!`!P` -XM``!<`````````.8`````0@X000X8@P.,`DH.\`$`'````'P`````````"`$` -XM``!*C`.#!$\.\`&-`@````````````````$``````````@!W"`$````````` -XM"P`````````"`'<0"P````````#2``````````,`=^`!```````````````` -XM````````````````9@`````````!`%5F`````````-$``````````0!3```` -XM`````````````````.``````````X@`````````"`'<(X@````````#F```` -XM``````(`=Q#F`````````/4``````````@!W&/4`````````L@$````````# -XM`'?P`0````````````````````#@`````````%8!`````````0!55@$````` -XM``"Q`0````````$`7`````````````````````#@`````````.X````````` -XM`0!4[@````````"O`0````````$`4P````````````````````#``0`````` -XM`,(!`````````@!W",(!````````PP$````````"`'<0PP$```````#-`0`` -XM``````(`=QC-`0```````*8"`````````P!W\`$````````````````````` -XMP`$````````H`@````````$`52@"````````HP(````````!`%,````````` -XM````````````/@(```````"E`@````````$`7`````````````````````"P -XM`@```````,D"`````````@!W",D"````````N`,````````#`'?P`0`````` -XM``````````````"P`@```````"(#`````````0!5(@,```````"P`P`````` -XM``$`70````````````````````"P`@```````"(#`````````0!4(@,````` -XM``"@`P````````$`4P`````````````````````X`P```````*@#```````` -XM`0!<`````````````````````$$````"```````G!0``J@,``'=AF4`9W!?;V9F`!?;W)I96YT871I;VX`7W5B=68` -XM7W-I>F4`7U]S1DE,10``1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#'0` -XM+G)E;&$N9&%T80`N8G-S`"YD96)U9U]A8F)R978`+G)E;&$N9&5B=6=?:6YF -XM;P`N`!?7V5R -XM`!W87)N`'-T`P````````(````1```` -XM_/________\E`P````````(````2````_/________\L`P````````(````3 -XM````_/________\Q`P````````H````(```````````````[`P````````(` -XM```4````_/________]*`P````````(````3````_/________]S`P`````` -XM``(````5````_/________][`P````````(````9````_/________^"`P`` -XM``````(````3````_/________^*`P````````H````(````!0````````"1 -XM`P````````(````4````_/________\```````````$````(````"P`````` -XM```&``````````H````%```````````````,``````````H````.````GP`` -XM```````1``````````H````.````1`$````````5``````````$````"```` -XM```````````=``````````$````"````N`,````````E``````````H````' -XM```````````````L``````````H````.````(0$````````S``````````H` -XM```.````"`$````````Z``````````H````.````.`````````!!```````` -XM``H````.````C`$```````!/``````````H````.````-P$```````!4```` -XM``````H````.````T@````````!A``````````H````.````R0````````!H -XM``````````H````.````V`$```````!O``````````H````.````Z@$````` -XM``!V``````````H````.````D`````````![``````````H````.````OP`` -XM``````"9``````````H````.````:`````````"E``````````H````.```` -XM[P````````"S``````````H````.````W`````````#!``````````H````. -XM````\0$```````#/``````````H````.````GP$```````#@``````````H` -XM```.`````P(```````#S``````````H````.````S0$```````#^```````` -XM``H````.````+0$````````<`0````````H````.````O`$````````A`0`` -XM``````H````.````"P`````````L`0````````H````.````Q@$````````W -XM`0````````H````.````6`````````!"`0````````H````.````)P`````` -XM``!.`0````````H````.````K0$```````!<`0````````H````.````2`(` -XM``````!Q`0````````H````.````3@(```````"E`0````````H````.```` -XM2@````````"S`0````````H````.````'P(```````#/`0````````H````. -XM````LP$```````#=`0````````H````.``````$```````#K`0````````H` -XM```.````^0````````#Y`0````````H````.````%@$````````'`@`````` -XM``H````.````&0(````````5`@````````H````.````40````````!-`@`` -XM``````H````.````0@(```````!;`@````````H````.````@`````````!W -XM`@````````H````.````Y@````````"&`@````````H````.````0@`````` -XM``"5`@````````H````.````+@````````"D`@````````H````.````%P`` -XM``````"S`@````````H````.````A@````````#"`@````````H````.```` -XM-0(```````#1`@````````H````.````E@````````"(`P````````H````. -XM````"P(```````"4`P````````H````.````8`````````"@`P````````H` -XM```.````*P(```````"L`P````````H````.````(0````````"S`P`````` -XM``$````"``````````````"[`P````````$````"````T@````````##`P`` -XM``````H````+``````````````#6`P````````H````+````30````````#G -XM`P````````H````.````AP$```````#X`P````````H````.````,`(````` -XM```#!`````````$````"````X``````````+!`````````$````"````L@$` -XM```````3!`````````H````+````@P`````````0(```````#?!`````````H````.````AP$```````#N!`````````H` -XM```.````)0(```````#X!`````````H````+````KP(```````#^!``````` -XM``H````.````=@`````````1!0````````H````.```````````````>!0`` -XM``````$````2``````````````#'``````````$````"```````````````< -XM``````````H````)```````````````@``````````$````"```````````` -XM``!$``````````H````)``````````````!(``````````$````"````X``` -XM``````!L``````````H````)``````````````!P``````````$````"```` -XMP`$```````"4``````````H````)``````````````"8``````````$````" -XM````L`(````````@``````````H````"``````````````!```````````H` -XM```"````X`````````!@``````````H````"````P`$```````"````````` -XM``H````"````L`(````````&``````````H````&```````````````&```` -XL``````H````&```````````````0``````````$````"```````````````` -X` -Xend -0e59f08b905695fcc4fe4d89f926df6c -echo x - ./kmkbuiltin/setmode.o.uu -sed 's/^X//' >./kmkbuiltin/setmode.o.uu << '045cd6eee6e4feeb0303b319509b422a' -Xbegin 644 ./setmode.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````'@Q```` -XM`````````$```````$``'0`:`$%42(7_08GT58GU4TB)^P^$.`$``$B-2P1% -XMB>*)[D&!XDE````/MD'\/&`&9B-!_O?0 -XM(<;VP@1T#XT$_0````!F(T'^]]`AQO;""`^$9O___V8C>?[WUR'^Z5G___]% -XMA=)TBF8+%M=05Q!74%>05_#2(U<)%!,C60D0$B)W^@`````2(G>3(GB -XMOP$```#H`````#'_Z`````")PP^W^.@`````]],QTDR)YK\#````9HE<)##H -XM`````+\@````Z`````!(A;__?__13'_QT0D -XM(`````")1"0(9F9FD&9FD`^V10"#Z%@\('9U187_#X7X`0``08#]/0^$:00` -XM`&:0BT0D((7`=#!(.UPD$`^#2P4``$B%VP^$(0<``,8#6`^W1"0P187V00]% -XMQF8C1"0@9HE#`DB#PP1$#[9M`$6$[0^$5P<``$&`_2P/A4#___](@\4!Z1/_ -XM__]F9F:09F:0#[;`_R3%`````$&#STEFD$B#Q0'I9____T&`SY)F9I#K[D6% -XM]G0+0??&^/___V:0=-Y!@;H`````$B%P$B)P@^$N?S__TB)V$@K1"0H38UD%/A(B50D -XM*$R)9"002(T<$.F$_O__08#];P^$0@(``$&`_74/A7/\__]!@<[`"0``2(/% -XM`40/MFT`08#]9P^%1_S__T&!SC@$``#KY,=$)!P!````QD0D#P#I,/[__T&` -XM_6]T"D&`_74/A>3^__]%A?9$B"L/A$@#``!$B?!$B?)FQT,"__\E``$``(/X -XM`42)\!G)@^`@]]"#^`$9P(/B!/?0@^`$@_H!&=()R/?2@^(("="(0P%! -XM@_\K#X1?`P``08/_+0^$F@,``$&#_ST/A7O^__^`2P$#D.EQ_O__08#\6`^% -XM]_W__T2)X(@##[=$)#!%A?9!#T7&9B-$)`AFB4,"Z=C]__]%A?:X_PT``,8# -XM+4$/1<9FB4,"2(/#!+@K````Z\:#1"0D!$B+?"0H2&-$)"1,C22%`````$R) -XMYN@`````2(7`2(G"#X1;^___2(G82"M$)"A-C604^$B)5"0H3(ED)!!(C1P0 -XMZ9K]__^+5"0;H`````$B%P$B)QP^$&?K__TB)V$@K1"0H38UD//A(B7PD*$R) -XM9"002(T<..EJ^O__@T0D)`1(BWPD*$AC1"0D3(TDA0````!,B>;H`````$B% -XMP$B)QP^$SOG__TB)V$@K1"0H3HUD)_A(B7PD*$R)9"002(T<..GB^O__187V -XMN/\-``#&`RU!#T7&9HE#`DB#PP2X*P```(@##[=$)#!%A?9!#T7&1"'X9HE# -XM`NG\^O__08#]6`^%\OK__P^V1"0(Z]5!@/TMD`^$)P$``$&`_3T/A8;[__^` -XM2P$#Z7W[___&0P$<#[=$)#!FB4,"Z3_\__^#1"0D!$B+?"0H2&-$)"1,C22% -XM`````$R)YN@`````2(7`2(G"#X0,^?__2(G82"M$)"A-C604^$B)5"0H3(ED -XM)!!(C1P0Z9_Z___&0P$<#[=$)#!FB4,"Z>7\__^Y`````+J``0``O@````"_ -XM`````.@`````Z;7Z__^Y`````+J``0``O@````"_`````.@`````Z0;[___& -XM0P$<#[=$)#!FB4,"Z0K^__^`2P$"Z2?[__^Y`````+J``0``O@````"_```` -XM`.@`````Z:+Y__^Y`````+J``0``O@````"_`````.@`````Z<'X__^`2P$! -XMZ>+Z__^`2P$"Z;GY__^`2P$!Z6#Z__^Y`````+J``0``O@````"_`````.@` -XM````ZCI#_;__TB-="1HN@@```!(B>_H -XM`````$B)PDB+1"1H@#@`=3SVQO")U74U2#M<)!!)B=QS6$B%VW1M2(U#!&:! -XMY?\/Q@,M9L=#`O\/QD,$*V:):`+&0`0`3(G@Z;3U__](B=_H`````#'`Z:7U -XM__^Y`````+K*`0``O@````"_`````.@`````Z6W^__^^,````$B)W^@````` -XM2(7`=,%(B<-)B<3KCKD`````NH`!``"^`````+\`````Z`````#I=?___P`` -XM``$1`24.$PL##A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM)$P``!"0` -XM"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,```D3`0,. -XM"PLZ"SL+`1,```H-``,..@L["TD3.`H```L!`4D3`1,```PA`$D3+PL```T3 -XM`0L+.@L["P$3```.$P$+!3H+.PL!$P``#Q4!)PQ)$P$3```0!0!)$P``$0T` -XM`P@Z"SL+21,X"@``$BX!/PP##CH+.PLG#$D3$0$2`4`&`1,``!,%``,..@L[ -XM"TD3`@8``!0T``,(.@L["TD3```5-``##CH+.PM)$P(&```6"@`##CH+.PL1 -XM`0``%S0``PY)$S0,`@H``!@F````&2X!`PXZ"SL+)PQ)$R`+`1,``!H%``,( -XM.@L["TD3```;+@$##CH+.P4G#$D3(`L!$P``'`4``P@Z"SL%21,``!T%``,. -XM.@L[!4D3```>+@$##CH+.P4G#"`+`1,``!\T``,..@L[!4D3```@-``#"#H+ -XM.P5)$P``(04``P@Z"SL+21,"!@``(C0``P@Z"SL+21,"!@``(S0``PXZ"SL+ -XM21,""@``)`H``PXZ"SL%```E"@`##CH+.P41`0``)AT!,1,1`1(!6`M9"P$3 -XM```G!0`Q$P``*`4`,1,"!@``*0L!508!$P``*AT!,1-5!E@+604!$P``*PL! -XM$0$2`0$3```L"P%5!@``+30`,1,``"XT`#$3`@8``"\T``,..@L["TD3```P -XM'0$Q$U4&6`M9"P``,30``PXZ"SL+21,_##P,````?P@```(```````@!```` -XM``$````````````````````````````````"`08``````@$(``````("!0`` -XM```#``````,V20````("!P`````$!`5I;G0``P`````#.&(````"!`<````` -XM`@@%``````,``````SI[`````@@'``````((!``````"!`0``````P`````# -XM4G`````%"`<&"`,`````!#$^`````P`````$5E`````#``````17JP````(! -XM!@`````#``````4T8@````<(P0````<(WP````C!`````P`````%RZ`````) -XM`````!`&,PH!```*``````8T"@$```(C```+5P```!H!```,FP````,``P`` -XM```&->\````#``````V`````B,("@`````(.'$!```"(Q``!PA[```` -XM`P`````(.3`!```-$`@[IP$```H`````"#Q0`````B,`"@`````(/:P`````#```,FP```/\`"[8````0`P``#)L` -XM``#_``,`````"%>X`0```@@%``````D`````!`%'60,``!%C;60``4C!```` -XM`B,`"@`````!2<$````"(P$*``````%*Y`````(C`@`#``````%+(@,``!(! -XM``````%O`>0```````````````````````````````,$```3``````%M`P0` -XM```````3``````%NY``````````4@&=!```'&]P``%\`5`````<=VAO``%[`5`````=```` -XM``%[`5`````=``````%]`<@````7`````%`(```!"0,````````````'"%D# -XM```>``````'&`0$!#04``!QS970``<4!G00``!\``````<`9T$````*CL$`````````4\!?@8` -XM`"=\!```)W`$```G9`0``"=9!```)TT$````*CL$`````````5X!J`8``"=\ -XM!```)W`$```G9`0``"=9!```)TT$````*CL$`````````48!T@8``"=\!``` -XM)W`$```G9`0``"=9!```)TT$````*CL$`````````4P!_`8``"=\!```)W`$ -XM```G9`0``"=9!```)TT$````*CL$`````````5H!)@<``"=\!```)W`$```G -XM9`0``"=9!```)TT$````*P````````````````````!(!P``'P`````!3P&= -XM!````"L`````````````````````:@<``!\``````5H!G00````K```````` -XM`````````````(P'```?``````%&`9T$````*P````````````````````"N -XM!P``'P`````!3`&=!````"JC!`````````%P`>L'```GL00``"P`````+;T$ -XM```NR00````````MU00``"WA!```+NT$```````````I```````(```O```` -XM``'WG00````P.P0````````!]R=\!```)W`$```G9`0``"=9!```)TT$```` -XM``A_`@``"\$````["```#)L````-``@K"```"\$```!0"```#)L````&``A` -XM"```,0`````"6E`````!`3$`````"%L0`P```0$Q``````A7!E7!E7!E+F@``@`````)`@```````````^X``2\U<3T#,V,#4N\#.0(I -XM`0-V1P,*.0-'';\#"=,#"N]65KA6U%8##G\#44<#$;="O%;Q5L96XHX#%<56 -XM`V%C`QK3`U'%`]4``B,!`PO]`Z(!52P#YW[A5E2`\?XMF5=:"$J3!`(#D']' -XM!`$#^``(1P,*"$<#=E4#"CD#$@BI`\D`"!T#NW_]`_4`?P.'?T=.`_(`"!T# -XMD'^I`SFI"$V``R*I`PV-.@,9"$<#OG]'U9T#M7_O`QV;`V)C`QB-`WJ-\'(# -XM=HWP`WB-`R6-5@,ZQ8\#)0)'`0.B?W&=""P#-*D##8TZ`QG]`V=_`QE'`ZA_ -XM1P,QJ0-/.0,Q564#)0([`0.Q?PA5G0,FJ8\#)0(\`0-;C0,3[S@Z9&9@`PD" -XM,P&J`Z]_C0.T?P)+`0@^`WIQ2.D#/HT#.0@=`Q/O.#ID9F`#"0(S`9V=G`-> -XMFP,+Q2P#=PB-?CJ``U2I`DL,N`,JQ0,+Q2P#=PAQ?CJ`I0,3[S@Z9&9@`PD" -XM,P&=G9P#X7Z-`PG3`]``C0-H`DL!`S\"2P%^.H"4+`-T"'$#'_VKG`-WC4@# -XML'_3`\\``DL!2`-DTP,;`CP!2-<#8(T#(@(\`8N/`UZ-`R((Q0-(C58#WP`Y -XMNPAD@#CB8L0#"PB;2T@#=K=($#K7X(Q0.)`0B-`AX``0%B -XM8F]X("$]($Y53$P`!`,!PB0`0```````"0```````````````````!K`0```````$(.$(P" -XM1PX8A@-##B"#!``\````````````````````R0H```````!"#A!"#AA"#B!" -XM#BA!#C"&!HP%C02.`X\"1`XX1`ZP`8,'````````%``````````!>E(``7@0 -XM`0,,!PB0`0``'````!P`````````:P$```!"#A",`D<.&(8#0PX@@P0T```` -XM/`````````#)"@```$(.$$(.&$(.($(.*$$.,(8&C`6-!(X#CP)$#CA$#K`! -XM@P<``````````````````@`````````"`'<(`@`````````)``````````(` -XM=Q`)``````````P``````````@!W&`P`````````:P$````````"`'<@```` -XM````````````````````````````%0`````````!`%45`````````$\````` -XM`````0!33P````````!6``````````$`558`````````:P$````````!`%,` -XM```````````````````````````````5``````````$`5!4`````````4``` -XM```````!`%96`````````&L!`````````0!6`````````````````````#$` -XM````````XP`````````!`%7C`````````.L``````````0!5ZP`````````> -XM`0````````$`51X!````````(`$````````!`%4@`0```````$T!```````` -XM`0!5`````````````````````!X`````````50`````````!`%15```````` -XM`%4``````````0!05@````````!D``````````$`5'``````````E@`````` -XM```!`%26`````````,P``````````0!4VP````````#]``````````$`5/T` -XM````````30$````````!`%0`````````````````````,0````````!L```` -XM``````$`6'``````````LP`````````!`%BS`````````-(``````````0!8 -XMVP`````````U`0````````$`6#4!````````.0$````````!`%@Y`0`````` -XM`$T!`````````0!8`````````````````````'`!````````<@$````````" -XM`'<(<@$```````!T`0````````(`=Q!T`0```````'8!`````````@!W&'8! -XM````````>`$````````"`'<@>`$```````!Y`0````````(`=RAY`0`````` -XM`'T!`````````@!W,'T!````````@0$````````"`'B@(```````!Y"P````````$` -XM7N,+`````````0P````````!`%X`````````````````````B`$```````"7 -XM`0````````,`D;A_DPL```````"8"P````````,`D;A_F`L```````"I"P`` -XM``````$`4*D+````````XPL````````#`)&X?P$,````````#@P````````! -XM`%`.#````````#D,`````````P"1N'\`````````````````````B`$````` -XM``"-`0````````$`4_4!````````F`H````````!`%/""@```````#<+```` -XM`````0!32PL```````!Q"P````````$`4WD+````````L@L````````!`%.R -XM"P```````,\+`````````0!0SPL````````Y#`````````$`4P`````````` -XM``````````"(`0```````)`!`````````0!0L````````# -XM`)'X?J<+````````XPL````````!`%SC"P````````$,`````````0!6`0P` -XM```````Y#`````````$`7`````````````````````"(`0```````)!P```````&<'`````````0!09P<```````#A"`````````,` -XMD8!_X0@```````#J"`````````$`4.H(````````.0P````````#`)&`?P`` -XM``````````````````"(`0```````)`@````````#`)'T?G@(````````B`@````````!`%"T"``````` -XM`#H)`````````P"1]'XZ"0```````$H)`````````0!0=@D```````!Y"P`` -XM``````,`D?1^XPL````````!#`````````,`D?1^```````````````````` -XM``("````````"0(````````!`%`)`@```````&P"`````````0!00L```````"+"P````````$`4`````````````````````"(`0`` -XM`````)0!?7VEN=F%L:61?7!E7V5X -XM=`!"251#340`7U]M87!U<'!E'0`8VQR8FET0!?7VUA>`!?7W-P=71R=6YE`%]? -XM;6%P;&]W97)?97AT`&QO;F<@=6YS:6=N960@:6YT`&1O=6)L90!C;VUM;VX` -XM7U)U;F5,;V-A;&4`;6%S:P!B8F]X`'-I9W-E=%]T`'!E6UT86(`+G-T%(````````8`````````!L````3````"``` -XM```````8`````````-(````!`````````````````````````)8I```````` -XM,`````````````````````$```````````````````#-````!``````````` -XM``````````````"04@```````#``````````&P```!4````(`````````!@` -XM````````X0````$`````````````````````````QBD````````0`P`````` -XM`````````````0```````````````````.\````!````,``````````````` -XM`````-8L`````````@`````` -XM`%("````````"@```!0````B`@```````&$"````````"@```!0```#5`0`` -XM`````'`"````````"@```!0````4`````````!$#````````"@```!0```#- -XM`@```````!X#````````"@```!0````W`0```````",#````````"@```!0` -XM``#@`0```````#T#````````"@```!0````'`@```````$L#````````"@`` -XM`!0```!%`0```````%H#````````"@```!0````;`@```````&8#```````` -XM"@```!0```#W`@```````'$#`````````0````(``````````````'D#```` -XM`````0````(```!K`0```````($#````````"@```!```````````````(H# -XM````````"@```!0```#>`@```````)0#````````"@```!````!@```````` -XM`)D#````````"@```!0```#M`0```````*,#````````"@```!````"\```` -XM`````+,#````````"@```!0```"E`````````+T#````````"@```!`````% -XM`0```````,(#````````"@```!0```"L`````````,P#````````"@```!`` -XM``!T`0```````-$#````````"@```!0```"?`````````-L#````````"@`` -XM`!`````)`@```````.`#````````"@```!0```#&`@```````.8#```````` -XM`0````(```!P`````````.\#````````"@```!0```#^`0```````/H#```` -XM`````0````L````=`0```````!8$````````"@```!0````Q`P```````#P$ -XM````````"@```!0```!G`@```````'$$````````"@```!0````C```````` -XM`'T$````````"@```!0```#9`@```````(D$````````"@```!0```#^`0`` -XM`````)0$`````````0````L````(`0```````*0$````````"@```!0````& -XM`````````+X$````````"@```!0````?`0```````,H$````````"@```!0` -XM```U`````````-8$````````"@```!0````Q`@```````.($````````"@`` -XM`!0```#G`0```````/D$````````"@```!0```#^`0````````0%```````` -XM`0````L````/`0````````\%````````"@```!0```#_`@```````!H%```` -XM`````0````(```!P`0```````"(%`````````0````(````Y#````````"H% -XM````````"@```!````"+`@```````#L%````````"@```!`````\`P`````` -XM`$`%````````"@```!0```#L`@```````$H%````````"@```!````"^`P`` -XM`````%D%````````"@```!````!`!````````'$%````````"@```!````"O -XM!````````(`%````````"@```!`````Y!0```````(4%````````"@```!0` -XM```A`P```````(\%````````"@```!````#.!0```````)0%````````"@`` -XM`!0```"T`````````)X%````````"@```!````#T!@```````*,%```````` -XM"@```!0````I`P```````+(%````````"@```!0```"-`````````,$%```` -XM````"@```!0```#9`@```````,L%````````"@```!`````N!P```````-`% -XM````````"@```!0```#$`````````-H%````````"@```!````"D"``````` -XM`-\%````````"@```!0```!B`````````.D%````````"@```!````#S"``` -XM`````.X%````````"@```!0````:`P```````/@%````````"@```!````!" -XM"0```````/T%````````"@```!0```!B`P````````4&````````"@```!0` -XM``!S`0````````P&`````````0````(```#X`@```````!D&`````````0`` -XM``(````"`@```````"$&`````````0````(````7`@```````#D&```````` -XM"@```!````!9"@```````#\&````````"@```!,``````````````$@&```` -XM````"@```!0```!%`P```````%D&````````"@```!,````P`````````(,& -XM````````"@```!,```#0`````````*T&````````"@```!,````0`0`````` -XM`-<&````````"@```!,```"0`0````````$'````````"@```!,```#``0`` -XM`````"<'`````````0````(```!^!0```````"\'`````````0````(```#) -XM!0```````#P'````````"@```!0```!%`P```````$D'`````````0````(` -XM``#./kmkbuiltin/strmode.o.uu << '665ec2e03604b3bfba9eb90e1fba7d44' -Xbegin 644 ./strmode.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````)`-```` -XM`````````$```````$``&P`8`%6)_5-(B?-(@^P(2(7V#X00`P``#[?-B<@E -XM`/```#T`8```#X37`@``#X[T````/0"@```/A+8"``!F9I!F9I`/CNH!```] -XM`,```&9FD&:0#X2V`@``/0#@``!F9I!FD`^%X````/;%`<8#=TB-0P$/A>,` -XM``#&`"U(@\`!A,D/B.,```#&`"U(C5`!B<@E0`@``(/X0`^%XP```,8">$B# -XMP@'VP2`/A>T```!F9F:0]L$0Q@(M2(U"`0^%Z0```,8`+4B-4`&)R"4(!``` -XM@_@(#X7I````Q@)X2(/"`?;!!`^%\P```/;!`L8"+4B-0@$/A?,```#&`"U( -XMC5`!B<@E`0(``(/X`0^%\P```,8">$B#P@'&`B#&0@$`2(/$"%M=PST`(``` -XM#X3J`0``/0!````/A`X!```]`!```&:0#X2<`0``2(U#`<8#/V9FD/;%`0^$ -XM'?___\8`````/0$"``!U!\8"=$B#P@'&`B#&0@$`2(/$"%M=PV:0/0"````/ -XMA0O___](C4,!Q@,MZ0G___](C4,!Q@-DZ?W^__\]``0``'0[/0@$``"0#X5K -XM____Q@)S2(/"`69FD.E<____/0`(``!T)3U`"```#X4)____Q@)S2(/"`6:0 -XMZ?O^___&`E-(@\(!Z3#____&`E-(@\(!Z>/^__]F9I#&`E1(@\(!Q@(@QD(! -XM`$B#Q`A;7<.%P`^%4____\8"+4B#P@'&`B#&0@$`2(/$"%M=PTB-0P'&`W#I -XM8O[__V:02(U#`<8#;.E4_O__9F9FD$B-0P'&`V+I1/[__TB-0P'&`W/I./[_ -XM_TB-0P'&`V/I+/[__[D`````NCX```"^`````+\`````Z`````#ITOS__P`` -XM`1$!)0X3"P,.$0$2`1`&```")``+"SX+`PX```,6``,..@L["TD3```$)``+ -XM"SX+`P@```4D``L+/@L```8/``L+21,```@````<`#?$`````4`$```(`HP````$!^PX*``$!`0$````!+W5S -XM7,``'-T7!E+<"'@`!`7`@ -XM(3T@3E5,3```````````+W5SE(``7@0`0,,!PB0 -XM`0``'````!P`````````0@,```!!#A"&`D,.&(,#1PX@``````````````$` -XM`````````@!W"`$`````````!``````````"`'<0!``````````+```````` -XM``(`=Q@+`````````$(#`````````@!W(``````````````````````````` -XM`````!0``````````0!5%``````````B`0````````$`5B(!````````(P$` -XM```````!`%4C`0```````"T"`````````0!6+0(````````N`@````````$` -XM52X"````````Q`(````````!`%;$`@```````,4"`````````0!5Q0(````` -XM``#A`@````````$`5N$"````````X@(````````!`%7B`@```````$(#```` -XM`````0!6````````````````````````````````%``````````!`%04```` -XM`````'```````````0!3<`````````",``````````$`4(P`````````N@`` -XM```````!`%&Z`````````,<``````````0!0QP````````#Q``````````$` -XM4?$`````````_@`````````!`%#^`````````",!`````````0!1(P$````` -XM``!*`0````````$`4TH!````````30$````````!`%!-`0```````%D!```` -XM`````0!360$```````!O`0````````$`4&\!````````HP$````````!`%&C -XM`0```````+`!`````````0!0L`$```````#D`0````````$`4>0!```````` -XM\0$````````!`%#Q`0```````"X"`````````0!1+@(````````_`@`````` -XM``$`4S\"````````1P(````````!`%!'`@```````$L"`````````0!32P(` -XM``````!3`@````````$`4%,"````````X@(````````!`%'B`@```````.8" -XM`````````0!3Y@(```````#N`@````````$`4.X"````````]`(````````! -XM`%/T`@```````/P"`````````0!0_`(````````$`P````````$`4P0#```` -XM````#`,````````!`%`,`P```````!`#`````````0!3$`,````````8`P`` -XM``````$`4!@#````````'`,````````!`%,<`P```````"0#`````````0!0 -XM)`,````````S`P````````$`5#,#````````0@,````````!`%,````````` -XM````````````&@````(```````6UT86(`+G-T!8```````!@`````````!D````! -XM````"``````````8`````````"8````!`````P```````````````````(0# -XM``````````````````````````````0````````````````````L````"``` -XM``,```````````````````"$`P`````````````````````````````$```` -XM````````````````,0````$`````````````````````````A`,```````"@ -XM`````````````````````0```````````````````$0````!```````````` -XM`````````````"0$````````!P$```````````````````$````````````` -XM```````_````!`````````````````````````#8%@```````*`"```````` -XM&0````8````(`````````!@`````````50````$````````````````````` -XM````*P4```````!4`0```````````````````0```````````````````%`` -XM```$`````````````````````````'@9````````&``````````9````"``` -XM``@`````````&`````````!A`````0```#(```````````````````!_!@`` -XM``````H````````````````````!``````````$`````````<`````$````R -XM````````````````````D`8```````!'````````````````````"``````` -XM```!`````````'\````!`````@```````````````````-<&````````"``` -XM``````````````````$```````````````````",`````0`````````````` -XM``````````#@!@```````$`````````````````````(```````````````` -XM````AP````0`````````````````````````D!D````````P`````````!D` -XM```-````"``````````8`````````)X````!`````@`````````````````` -XM`"`'````````.`````````````````````@```````````````````"9```` -XM!`````````````````````````#`&0```````!@`````````&0````\````( -XM`````````!@`````````J`````$`````````````````````````6`<````` -XM``#$`P```````````````````0```````````````````+@````!```````` -XM`````````````````!P+````````'@````````````````````$````````` -XM``````````"S````!`````````````````````````#8&0```````!@````` -XM````&0```!(````(`````````!@`````````S0````$````````````````` -XM````````.@L````````P`````````````````````0`````````````````` -XM`,@````$`````````````````````````/`9````````,``````````9```` -XM%`````@`````````&`````````#<`````0```#````````````````````!J -XM"P````````D!```````````````````!``````````$`````````YP````$` -XM`````````````````````````````````#H`````````"@```!$```#V`````````#\`````````"@`` -XM`!$```"3`````````$P`````````"@```!$```#(`````````%H````````` -XM"@```!$``````````````&$`````````"@```!$```"Q`````````&@````` -XM````"@```!$````R`````````&\`````````"@```!$```"Z`````````'8` -XM````````"@```!$```#P`````````'X`````````"@```!$```#G```````` -XM`(L`````````"@```!$```"L`````````)8`````````"@```!$```#!```` -XM`````*(`````````"@```!$```!$`````````*@``````````0````(````` -XM`````````+```````````0````(```!"`P```````+@`````````"@````X` -XM`````````````,$`````````"@```!$````M`````````,L`````````"@`` -XM``X```!@`````````-@`````````"@````X````N`0```````-T````````` -XM"@```!$``````0```````.@``````````0````L``````````````+`````` -XM`````0````(``````````````!P`````````"@````P``````````````"`` -XM`````````0````(``````````````"``````````"@````(````````````` -XM``8`````````"@````8```````````````8`````````"@````8````````` -X<`````!```````````0````(````````````````` -X` -Xend -665ec2e03604b3bfba9eb90e1fba7d44 -echo x - ./kmkbuiltin/kbuild_version.o.uu -sed 's/^X//' >./kmkbuiltin/kbuild_version.o.uu << '7a5d72540cc986f1046b76957afa7b12' -Xbegin 644 ./kbuild_version.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````'`&```` -XM`````````$```````$``&@`7`%.^`````$B)^TB#[!#H`````$B%P'062(U8 -XM`;X`````2(G?Z`````!(A!`!`PP'")`!```<````'`````````!]`````$$.$(,"3`X@```````````` -XM`````````0`````````"`'<(`0`````````-``````````(`=Q`-```````` -XM`'T``````````@!W(````````````````````````````````!(````````` -XM`0!5$@````````!P``````````$`4W$`````````?0`````````!`%,````` -XM````````````````%0`````````H``````````$`4"L`````````.@`````` -XM```!`%`]`````````%T``````````0!0<0````````![``````````$`4``` -XM```````````````````A`````@``````Q0```(0```!K8G5I;&1?=F5R6UT86(`+G-T /dev/null 2>&1 -echo x - ./glob/glob.o.uu -sed 's/^X//' >./glob/glob.o.uu << '08f54ce57ae16ee49e80e07b25b53cad' -Xbegin 644 ./glob.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````*!V```` -XM`````````$```````$``'``9``^V!X3`=":%]G5'2(U7`3')/%MT,W\:/"IT -XM)SP_9F:0="`/M@)(@\(!A,!UY#'`D,,\7'3M/%UUZ87)9F:09I!TX+@!```` -XMPP^V`KD!````Z],QTCQ;=!M_)SPJ9F9FD'3@/#]TW$B#QP$/M@>$P'7CZ[I( -XM@\M%9F9FD&9FD$R)XDR) -XM_DB)Q^@`````0L8$(R])BW3M`$F-?!P!3(GRZ`````!)BWSM`.@`````28E< -XM[0!(@\4!2#LL)'1428M\[0#H`````$F-?`0"3(UP`>@`````2(7`2(G#=:)( -XMA>UT&TF-7.T`2(M[^$B#[0%(@^L(Z`````!(A>UUZDB#Q`BX`0```%M=05Q! -XM74%>05_#2(/$"#'`6UU!7$%=05Y!7\-%,>1!@#\O00^5Q.DW____9F9FD&9F -XMD&9FD&9FD$B+/TB+-C'`2#GW=`=(A?^P`74"\\-(A?:X_____W3TZ0````!F -XM9F:09F9FD&9FD%5(B>5!5T%628GV055!5$F)S%.)TX/C0$B![+@```!(B;TP -XM____B94L____3(F%(/___P^V!X3`=#&%VP^$604``$B)^C')/#\/A-$```"0 -XM#X^R````/"H/A,(```!FD$B#P@$/M@*$P'7<]X4L____$`@```^$?P0``(.- -XM+/___Q!(QX4X____`````/:%+/___Q!(QX5`____``````^$V0(``$B+O3#_ -XM___H`````$B#["!(C7@!2(G#3(U\)`])@^?P2<<'`````.@`````2(7`28E' -XM"`^$&`,``$B+M3#___](B=I(B%0/___P$```#I -XMBP$``#Q;#X3#`@``/%T/A4C___^%R0^$0/____>%+/___P`"```/A:T"``!, -XMB??H`````$B)A3C___](@[TX____``^$<@,```^VA2S___](QX5`____```` -XM`(/@@#P!&<"#X`2#^P%%&?:!C2S___\``0``13'_BYTL____0??608/F`D$) -XMQH'C``(``(F=3/___XN53/___X72#X3*````2(N5(/___TB+O3C_____4BA( -XMA<`/A,4```!,C6`(2(N],/___T2)\DR)YN@`````A-,C6PD -XM#TF#Y?"+`TB#PP2-D/_^_O[WT"'"@>*`@("`=.B)T,'H$/?"@(````]$T$B- -XM0P)(#T38`-)(@]L#3"GC2(U[`>@`````2(7`2(G'28E%"`^$S@$``$B)VDR) -XMYN@`````28M%",8$&`"+E4S___](@X5`____`4V)?0!-B>^%T@^%//___V9F -XMD&9FD$B+O3C____H`````$B%P`^%.____TB#O4#___\`#X3Z_?__2(N=(/__ -XM_TB+`XN=+/___X/C"`^$X@$``$B+C2#___](BU$02(MY"$B+C4#___](C40! -XM`4@!T,'@`TB%_P^$Q@$``(G&Z`````!(B<9(BX4@____2(7V2(EP"`^$M`$` -XM`(7;#X1P`0``2(N-(/___TB+G2#___](BQ%(.U,02(G1;^__](B[TX____2(N-(/__ -XM__]1(.N72(N-(/___S'2Z1O^__^)Q^@`````Z37^__^+E2S___^!X@`"``") -XME4S____I2?___^@`````@S@4#X2U^___387D=!'H`````$R)]XLP0?_4A_H`````$'&1!T` -XM+TB+M3#___]*C7PK`4F-5"0!Z`````#WA2S___\``@``="9(BY4@____2(VU -XM4/___TR)[_]20(7`#Y3`A,`/A`+[___I]OK__TB-M5#___],B>_H`````(7` -XM#Y3`Z]U(BY4P____,"%R69F9I!TV.DY^___2(/"`8`Z`&:0 -XM=5!5TF)ST%6055)B?U!5%-(@>R(`0``2(7_ -XMB;5P_O__2(F5:/[__W0-2(7)=`B!Y@"!__]T*F9F9I!F9I#H`````$&\____ -XM_\<`%@```$B-9=A$B>!;05Q!74%>05_)P_>%P`` -XM`.@`````2(7`28G$#X0G`0``2(FE>/[__TR)[TR)X^@`````2(/`'4PIZTR) -XM[DB#X/!(B=I(*<1,C70D#TF#YO!,B?=)C1P>Z`````!)C40D`4B)G9#^__\Q -XMTDB)A?#^__]!#[9$)`%(BYWP_O__A=(/A.(#``"$P'1H/'UU"H/J`69F9I!F -XM9I!(@\,!#[8#A,!T3SQ]=?&%TG7C2(7;2(G:=#\\?69FD`^$10T``$B#P@$Q -XMR0^V`H7)#X1<"```A,!T'SQ]=0.#Z0%(@\(!#[8"A,!T#3Q]=?&%R77J2(72 -XM=<&!I7#^____^___2(N5:/[__TR)^8NU/[_ -XM_^G&_O__2&.%X/[__T4QY$DY!W7E]X5P_O__$`@``$&T`W362(NE>/[__[XO -XM````3(GOZ`````!(AY-*>Y)C48?3(GR2(/@\$@IQ$B-7"0/2(/C\$B)WTF)W>@`````0L8$ -XM,P!(@X6`_O__`4B+A8#^__^`.``/A9T!``!)@_X!#X:3`0``B[5P_O__2(N5 -XM:/[__TR)^4B)WX/.`N@`````A,`4``` -XM]H5P_O__('4/2<<'`````$G'1P@`````28L'A=M(B86(_O__=`M!@'T`?@^$ -XMFP0``$B#O8#^__\`#X1S`@``00^V10"+E7#^__^#XD"$P'0NA=(/A$D-``!, -XMB>HQR3P_#X3W````#X_5````/"H/A.D```!(@\(!#[8"A,!UWTB+C6C^__^+ -XME7#^__]-B?A(B[V`_O__3(GNZ,_V__^%P$&)Q`^%%?W__TV%]@^$?P,``/:% -XM](*<+H -XM6/7__X7`#X1$`P``28M7"$B%T@^$'0D``$F#/P!T'3';2(L\VDB%_W0)Z``` -XM``!)BU<(2(/#`4DY'W?E2(G70;P!````Z`````#ICOS__XN=$2+ -XMM7#^__]%,>1!@^;.08/.($B+18A(BXUH_O__38GX2(N]@/[__T2)\DV++TJ+ -XM-.#HI/7__X/X`XG#="Z%P`^%+00``$F+%TB+18A)8_5(*?)(P>8#20-W"$J+ -XM/.#H1_3__X7`#X6*!```2(M=@$F#Q`%,.>-WFH&-P^4PDB#PP$/M@/IZ_O__[D!````Z0+^__^+G7#^ -XM__^!XP!0``!T'4&`?0!^=19,B>_H`````$F)QNEI_?__9F:09F:03(FM@/[_ -XM_T4Q]D&]`````.E._?__]H5P_O__$`^$O@```(N= -XM,=M(BSS82(7_=`GH`````$B+18A(@\,!2#E=@'?D2(G'Z`````#VA7#^__\" -XM#X1R`0``2(N%B/[__TDY!P^&8@$``$2+M7#^__](B<-)B<1(P>,#08'F``(` -XM`.M$28M'"$B-M0#___](BSP#0?]70(7`#Y3`A,!T%P^WA0C___\E`/```#T` -XM0```#X23`@``28/$`4B#PPA-.2_H`````$B%P$B)A:C^__]T.4B)PTB+M;#^__],*>M(C4,>2(G: -XM2(/@\$@IQ$R-9"0/28/D\$R)Y^@`````0<9$'/\`3(FEL/[__TB+O;#^___H -XM`````$B%P`^%"`4``/>%,=M(BSS82(7_=`GH`````$B+18A(@\,!2#E=@'?D2(G' -XM0;P!````Z`````#I#OC__T4QY/:%1(*?Y(P><#20-_ -XM".@`````Z;GW__](@WV(`'0V2(-]@``/A#L$``!(BT6(13'D2HL\X$B%_W0) -XMZ`````!(BT6(28/$`4PY98!WY$B)Q^@`````28M7"$&)W$B%T@^$;/?__TF# -XM/P!T($4QY&:02HL\XDB%_W0)Z`````!)BU<(28/$`4TY)W?E2(G708G@````` -XM2(M%B$B#PP%(.5V`=^1(B`#2(7_#X1W`@``B<;H`````$B%P$F)1P@/A(G]__]%A>UT+4F+#TDY -XM3Q!V)$B--,T`````2(G"2(/!`4C'!!8`````2(/&"$DY3Q!)B0]WYTB#?8`` -XM#X2C^___BX5P_O__13'M)0`"``")A=S^___K,TB-M0#___],B>=!_U=`A%H/[__P````!(BX6P -XM_O__3(NMH/[__X`X``^$H/;__TR)[^@`````28G$28U$!AY,B>Y,B>)(@^#P -XM2"G$2(U<)`](@^/P2(G?28G=Z`````!(B[6P_O__2HT\(TR)\N@`````Z5?V -XM__])BU<0Z?#X__])BQ=F9F:09F:0Z4'Y__](C;4`____3(GOZ`````"%P`^$ -XMFOG__^DD^/__28M7$.F<_?__0;P!````Z9SS__^)Q^@`````9F9FD.G`^/__ -XMBC^__])C3P$Z`````!(BY5H_O__B[7\ -XM_O__3(GY3(GWZ`````"%P$&)Q'1.@_@#=$F+M73^__^%]@^%2?+__TF#?P@` -XM#X0^\O__28,_``^$Q@```$F+5P@QVTB+/-I(A?]T">@`````28M7"$B#PP%) -XM.1]WY>FD````@#M]#X01\O__#[93`4R-0P$QP$R)P87`=#6$TG14@/I]=0.# -XMZ`%(@\$!#[81A-)T08#Z?77PAND,=NY`````+KL`0`` -XMO@````"_`````$R)A5C^___H`````$R+A5C^___IO?[__TF+5PA(B=?H```` -XM`.E=\?__28M7".F%\___2(M%B)#I]?W__TR)ZC')/%MT*&:0?RL\*@^$IO/_ -XM_SP_9F9FD`^$FO/__TB#P@$/M@*$P'79Z:SR__^Y`0```.OI/%R0=!,\777@ -XMA\````"@`````$"`$D`0``"P`````0!2X!`@``#``` -XM```%+\$!```"(P`,``````4PB@````(C"``+`````'@&@_P"```,``````:$ -XM+P$```(C``P`````!H6*`0```B,$#``````&AI4!```"(P@,``````:'H`$` -XM``(C"@P`````!HC,`0```B,,#``````&B7\!```"(Q`,``````:*+P$```(C -XM%`P`````!HS8`0```B,8#``````&C=@!```"(R@,``````:.V`$```(C.`P` -XM````!I>K`0```B-(#``````&F&D!```"(U`,``````:97@$```(C6`P````` -XM!IIT`0```B-<#``````&FVT````"(V`,``````:<6P````(C9`P`````!I[8 -XM`0```B-H``L`````4`=THP,```P`````!W5-`0```B,`#``````'=DT!```" -XM(P@,``````=WS`$```(C$`P`````!WA_`0```B,4#``````'><$!```"(Q@, -XM``````=Z30$```(C(`P`````!WM-`0```B,H#``````'?$T!```"(S`,```` -XM``=]30$```(C.`P`````!W[!`0```B-`#``````'?V8````"(T@`#0`````( -XM`0@R]P,```P`````"#-M`````B,`#``````(-$D````"(P0,``````@U,``` -XM``(C!@P`````"#8P`````B,'#``````(.?<#```"(P@`#CH!```'!```#\<` -XM``#_``L`````4`E"H`0```P`````"4-F`````B,`#``````)1(H````"(P@, -XM``````E%B@````(C$`P`````"49-`0```B,8#``````)1V8````"(R`,```` -XM``E(B@````(C*`P`````"4F*`````B,P#``````)2F8````"(S@,``````E+ -XM00$```(C0`P`````"4RF!````B-(``@``````0<(H`0```((!0`````02`IY -XM.@4```P`````"GJV`0```B,`#``````*>SH%```"(P@,``````I\M@$```(C -XM$`P`````"GUF`````B,8#``````*@4P%```"(R`,``````J":`4```(C*`P` -XM````"H-^!0```B,P#``````*A)\%```"(S@,``````J(GP4```(C0``'"$T! -XM```1`4P%```2R@`````'"$`%```3`6(%``!B!0``$LH`````!PBC`P``!PA2 -XM!0``$P'*````?@4``!)3`0````<(;@4``!,!9@```)D%```24P$``!*9!0`` -XM``<(`0(```<(A`4```,`````"HJS!```%`$``````98$`68````!\@4``!4` -XM`````90$4P$``!4``````94$9@```!9P``&7!%,!```7``````&8!&8````` -XM&+`%`````````````````````````G<(,08``!G#!0```````!K/!0```50; -XMVP4````````;Y04`````````'`$``````2L$`0%9!@``%0`````!*@19!@`` -XM'19I``$N!+8!``````<(I04``!XQ!@````````````````````````````"5 -XM!@``&4`&````````'P`````;308``````````"```````5,$`68````````` -XM`````````````````````"T'```A``````%0!%,!````````(0`````!400Z -XM!0```````")N``%2!+8!````````(VD``50$M@$````````D``````%5!+8! -XM````````'P`````D``````%R!+8!````````(VYE=P`!$$M@$``"0``````>($M@$````````D -XM``````'C!$T!`````````"\`````1@D``"-L96X``5`%M@$`````````,0`` -XM``````````````````"^"0``)``````!%P5F`````````#(````````````` -XM````````)``````!(@53`0```````"-L96X``2,%M@$````````C9``!)`5B -XM!0```````!\`````%FYE=P`!.`4/"@``````+)@'`````````6$%W0D``!FQ -XM!P```````"VH!P```!\`````)``````!@P5F````````````$P%F````"0H` -XM`!)3`0``$F8`````!PCT"0``!PA`"```,P`````!/0$!4P$```-+"@``%0`` -XM```!/`%3`0``%P`````!/@%X````%F-P``$_`5,!````-`$``````6\!`68` -XM`````````````````````````````*D1```A``````%K`5,!````````(0`` -XM```!;`%F`````````"$``````6T!"0H````````A``````%N`5D&```````` -XM)``````!<`%3`0```````"0``````7$!4P$````````D``````%R`;8!```` -XM````)``````!@\``!FQ!P`` -XM`````"VH!P```#8Q!@````````````````````````&L`RU\!@``,@`````` -XM```````````````;308````````````V,08````````````````````````! -XMY0,M?`8``#(`````````````````````&TT&````````````+P`````($``` -XM)``````!&01F```````````O`````#P0```P0"N!$`````````,0````````````````````"S$```)``````!U@)- -XM`0`````````R`````````````````````"0``````0<#30$````````D```` -XM``$(`[8!````````)``````!"0.V`0``````````+P````"4$0``)``````! -XM;0)3`0```````#$`````````````````````11$``"0``````;X"30$````` -XM```D``````&_`K8!`````````#(`````````````````````%P`````!?@)F -XM````)``````!?P)-`0```````#(`````````````````````(W```8\"N!$` -XM```````````Y`````,X1```!"0,````````````..@$``+@1```ZQP`````' -XM"/P"```..@$``,X1```/QP````0`";X1````704```(`[P````$!^PX*``$! -XM`0$````!+W5S7,`+W5S$#&RL#4JD# -XM8`BW.CMS=BB=`_T`[P,1""L#;U5Q`U<(.0@Z`Q`(?P-O1P,]<0,<[P.7`7$# -XM1*D(<[E)0SN.-`Q/3`^EV`CH!CP.5"7&A -XM`WHY36:``B00"(Q(."Y6J#JH6<.!/%9^+"WP"!-7?2T#$E4#BG[A`^X`FP/, -XM``A_`RX('7*>N%0A_ -XM")0#>3G,"%<#K`7]`]AZ"!WQG#@Z`PO%`P\Y`W$Y`P^-`W%C`P]'`W$Y`P^W -XM.D9;4'8#I'\(50,,?TE(G$,#T0#A`Q0Y`VPY`PLKJP.6?XT##'])2#I#`]\` -XMX5L#P@`")0&T=#98"%L#"<4#=SD#"7$#&6,#"L4#''$#9#D#&#E+-?,\-E98 -XM@0,)"(T(G*H#3@BW`S@(X8]R@CPH=`.]`<4#^0+3`[I]50/&`HW^`Q`(50-O -XM1P//?G$(U*R2"((#-PC]R(".BY`#F'P(*P/1!/T#$.\#L7VW`B(3KP,3")L( -XM<#J1-2\OAP-=`B8!`RW%H?(#@@'%`Z=ZJ0C7`](&MP/N>IL(2@/)``A5`]$! -XM"$?+`YY[`B,!CP/G!'$#>3E.9H#P[D@X60,*"#D#=D<#"CG82#BJ`UOA`[$! -XM`D(!XIX#[WF;CP.2!G%6`\T`1Y".CHN>`TU_R@(J$`(S#OX#X7P(X0/H``CA -XMR35U,#YL=C3T@&4#'G&Y`Q>-`Y8""$?(N(Z+G@-D""OT;V5DG0,.`B@!=`@> -XMCHN>`WI_\JJ.BY`#>N]T_HZ+G@-Z?\BXCHN0`Y-Z?P(B$P/!!;<#P'D(.0/` -XM!CD#P'G%90/`!L62U`.,?\6\;*X#IWH(FX\#W@5Q`WDY3FE6"#KN2#@N"/4# -XM>@(E`=6`@F`\"(4(JT4[`PWOJO`")A(#F7V-`P^;`W$Y`P]Q`P]Q5P,<58%6 -XMK-4#"0B;"&BJ6E[T/#96`^8`"'$#>@AQ`_T`"*D#^P"-`ZUYJ0/D!@(P`0/1 -XM?8U,-'9F@'XZ".)VE@AV@`@@-E8#GG^;`YQ\"$<#Y`:WF`@2\(Z+T'3^CHN> -XM`WJWD+B.BP.*>],(S0@3\#7'$#_7[3")$#HP&-`\8$`C(!"%(#ZP";5@BH\`,0 -XM[P-WX0(2``$!;F5X="`A/2!.54Q,`"\`+@!(3TU%`'X`+W5S-!8X$38,'C`8````4``````````%Z4@`!>!`!`PP'")`!```4```` -XM'`````````"C```````````````<````-`````````!1`````$$.$(8"1`X8 -XM1`X@@P,``#0```!4`````````/,`````0@X0CP)%#AA"#B"-!(X#10XH00XP -XM00XX1`Y`@P>&!HP%````````%````(P`````````)0``````````````)``` -XM`*0`````````]P4```!!#A"&`D,-!D2.!(\#1XP&C05$@P<``"0```#,```` -XM`````)<0````00X0A@)##09"CP-'C06.!$V#!XP&`````````````&H````` -XM`````0!5X@$```````#P`0````````$`7@````````````````````!9`0`` -XM`````%X!`````````0!5`````````````````````!`"````````$P(````` -XM```!`%4`````````````````````$`(````````6`@````````$`5``````` -XM```````````````3`@```````#4"`````````0!5```````````````````` -XM`!8"````````-0(````````!`%0`````````````````````0`(```````!! -XM`@````````(`=PA!`@```````$0"`````````@!W$$0"````````-P@````` -XM```"`'80`````````````````````$`"````````AP(````````!`%6'`@`` -XM`````+L"`````````0!1NP(```````!(`P````````,`=K!^2`,```````!X -XM`P````````$`47@#````````$P8````````#`':P?A,&````````*@8````` -XM```!`%$J!@```````#H'`````````P!VL'XZ!P```````$8'`````````0!1 -XM1@<```````#;!P````````,`=K!^VP<```````#D!P````````$`5>0'```` -XM````-P@````````!`%$`````````````````````0`(```````!Z`@`````` -XM``$`5'H"````````KP,````````!`%[3!`````````\&`````````0!>$P8` -XM``````"7!@````````$`7IL&````````-P@````````!`%X````````````` -XM````````0`(```````!Z`@````````$`47H"````````Y0(````````#`':L -XM?D@#````````-@8````````#`':L?D@&````````-P@````````#`':L?@`` -XM``````````````````!``@```````'H"`````````0!2>@(````````$!``` -XM``````$`7*H$````````"P8````````!`%P3!@```````),&`````````0!< -XMFP8```````!,!P````````$`7-L'````````-P@````````!`%P````````` -XM````````````0`(```````!Z`@````````$`6'H"````````-P@````````# -XM`':@?@````````````````````#"`@```````$@#`````````P!VN'Y_`P`` -XM`````!,&`````````P!VN'XQ!@```````#H'`````````P!VN'X````````` -XM````````````S0(```````!(`P````````$`7[P#````````$08````````! -XM`%\V!@```````)D&`````````0!?FP8```````#_!@````````$`7P`````` -XM``````````````#-`@```````$@#`````````P!VP'Z?`P```````!,&```` -XM`````P!VP'XV!@```````/\&`````````P!VP'X````````````````````` -XMS04````````)!@````````$`4YL&````````K`8````````!`%,````````` -XM````````````AP(```````#Q`@````````$`4D@#````````>`,````````! -XM`%*^!0```````,,%`````````0!2$P8````````8!@````````$`4A@&```` -XM````)`8````````!`%(Z!P```````$8'`````````0!2Y`<````````/"``` -XM``````$`4@\(````````-P@````````!`%(`````````````````````7P<` -XM``````!W!P````````$`40````````````````````!R!P```````'<'```` -XM`````0!5L`<```````"S!P````````$`5<\'````````U`<````````!`%4` -XM````````````````````^0(```````#\`@````````$`4/P"````````2`,` -XM```````!`%/3!````````-H$`````````0!3-@8```````!/!@````````$` -XM4P````````````````````#-`@```````$@#`````````0!>KP,````````/ -XM!@````````$`7C8&````````EP8````````!`%Z;!@```````/\&```````` -XM`0!>`````````````````````,T"````````2`,````````!`%S8`P`````` -XM``L&`````````0!<-@8```````"3!@````````$`7)L&````````_P8````` -XM```!`%P`````````````````````S0(```````#\`@````````$`4]@#```` -XM````V@0````````!`%.^!0```````,T%`````````0!32`8```````!/!@`` -XM``````$`4P````````````````````#-`@```````/$"`````````0!0^@,` -XM```````6!`````````$`4+\$````````W00````````!`%"^!0```````,,% -XM`````````0!0``````````````````````T%````````&`4````````!`%`8 -XM!0```````!T%`````````0!4W`8```````#>!@````````$`4-X&```````` -XMXP8````````!`%4`````````````````````3P8```````"1!@````````$` -XM4[L&````````S@8````````!`%,`````````````````````0`@```````!! -XM"`````````(`=PA!"````````$0(`````````@!W$$0(````````UQ@````` -XM```"`'80`````````````````````$`(````````A0@````````!`%6%"``` -XM`````)T(`````````0!=HP@```````"]"`````````$`5;T(````````1`H` -XM```````!`%U$"@```````$D*`````````0!4LPH```````#'"@````````$` -XM7=,*`````````PP````````!`%T4#````````),,`````````0!=W@P````` -XM``"`#0````````$`784-````````D@X````````!`%W.#@```````#L0```` -XM`````0!=W@P````````0#0````````$`7CL-```````` -XM10T````````!`%YE#0```````&H-`````````0!>>@T````````H#P`````` -XM``$`7I\/````````V!`````````!`%Y<$@````````43`````````0!>.!,` -XM``````!1$P````````$`7N<3````````!14````````!`%X5%0```````"45 -XM`````````0!>+A4```````#K%0````````$`7G48````````UQ@````````! -XM`%X`````````````````````D0@```````"8"`````````$`4)@(```````` -XMF0@````````!`%-V"P````````,,`````````0!05PP```````"A#``````` -XM``$`4*$,````````JPP````````!`%.K#````````+(,`````````0!0L@P` -XM``````#5#`````````$`4]X,````````$`T````````!`%"2#@```````)\/ -XM`````````0!0.Q````````#N$`````````$`4.X0````````H4````````]10````````!`%$/%0```````!45`````````0!1]14` -XM```````4%@````````$`46(8````````9A@````````!`%$````````````` -XM````````D0@```````"9"`````````$`4_`+`````````PP````````!`%,6 -XM%@```````#86`````````0!3`````````````````````"42````````+1(` -XM```````!`%`M$@```````#42`````````0!4!14````````'%0````````$` -XM4`<5````````#!4````````!`%4`````````````````````D0@```````"= -XM"`````````$`7?`+`````````PP````````!`%UP#````````.L,```````` -XM`0!1`````````!`%R#$``` -XM`````-@0`````````0!=V!````````#Q$`````````$`7`T1````````'!$` -XM```````!`%Q;$0```````-,1`````````0!<`1(````````)$@````````$` -XM7?@2````````YQ,````````!`%WJ%````````/`4`````````0!<\!0````` -XM``#U%`````````$`7245````````+A4````````!`%S?%0```````.L5```` -XM`````0!=ZQ4```````#U%0````````$`7#86````````JQ8````````!`%UK -XM&````````'48`````````0!=`````````````````````/$0````````'!$` -XM```````!`%P`````````````````````+A$```````!1$0````````$`7``` -XM``````````````````"1"````````)D(`````````0!3A(```````#G$P`` -XM``````,`=LA]X10```````#U%`````````,`=LA]!14````````E%0`````` -XM``,`=LA]WQ4```````#K%0````````,`=LA]]14```````"K%@````````,` -XM=LA]8A@```````!U&`````````,`=LA]`````````````````````/`+```` -XM````^0L````````!`%R2#@```````"X/`````````0!<@Q````````"&$``` -XM``````$`7`43````````YQ,````````!`%SJ%````````/`4`````````0!< -XMWQ4```````#K%0````````$`7#86````````JQ8````````!`%QK&``````` -XM`'48`````````0!<`````````````````````)$(````````GP@````````! -XM`%[P"P````````,,`````````0!>D@X````````H#P````````$`7H,0```` -XM````V!`````````!`%X%$P```````.<3`````````0!>ZA0```````#U%``` -XM``````$`7M\5````````ZQ4````````!`%XV%@```````*L6`````````0!> -XM:Q@```````!U&`````````$`7@````````````````````"1"````````)D( -XM`````````0!3\`L````````##`````````$`4XL6````````JQ8````````! -XM`%,`````````````````````D0@```````"9"`````````$`4_`+```````` -XM`PP````````!`%/J%````````/44`````````0!33A8```````"+%@`````` -XM``$`4P````````````````````"5$@```````*`2`````````0!0H!(````` -XM``"E$@````````$`5!45````````%Q4````````!`%`7%0```````!P5```` -XM`````0!5`````````````````````+4.````````P`X````````!`%#`#@`` -XM`````,4.`````````0!4WQ4```````#A%0````````$`4.$5````````YA4` -XM```````!`%4`````````````````````D0@```````"9"`````````$`4U00 -XM````````@Q`````````!`%,`````````````````````D0@```````"9"``` -XM``````$`4^`.````````*P\````````!`%.#$````````-@0`````````0!3 -XM`````````````````````*`0````````P!`````````!`%$````````````` -XM````````M0T```````#`#0````````$`4,`-````````Q0T````````!`%3U -XM%````````/<4`````````0!0]Q0```````#\%`````````$`50`````````` -XM``````````"1"````````*,(`````````P!VJ'T$"P````````,,```````` -XM`P!VJ'T4#````````!`-`````````P!VJ'T[#0```````$4-`````````P!V -XMJ'V%#0```````)\/`````````P!VJ'W6#P```````-,1`````````P!VJ'T! -XM$@```````.<3`````````P!VJ'VM%````````,H5`````````P!VJ'W?%0`` -XM`````*L6`````````P!VJ'UB&````````-<8`````````P!VJ'T````````` -XM````````````D0@```````"C"`````````,`=K!]!`L````````##``````` -XM``,`=K!]%`P````````0#0````````,`=K!].PT```````!%#0````````,` -XM=K!]A0T```````"?#P````````,`=K!]J@\```````#3$0````````,`=K!] -XM`1(```````"K%@````````,`=K!]8A@```````#7&`````````,`=K!]```` -XM`````````````````)$(````````HP@````````#`':X?00+`````````PP` -XM```````#`':X?10,````````$`T````````#`':X?3L-````````10T````` -XM```#`':X?84-````````GP\````````#`':X?280````````TQ$````````# -XM`':X?0$2````````YQ,````````#`':X?:T4````````+A4````````#`':X -XM?3P5````````114````````#`':X?445````````2A4````````!`%6#%0`` -XM`````,H5`````````P!VN'W?%0```````*L6`````````P!VN'UB&``````` -XM`-<8`````````P!VN'T`````````````````````D0@```````"8"``````` -XM``$`4`0+````````%PL````````!`%`%#0```````!`-`````````0!0A0T` -XM``````";#0````````$`4%`.````````;@X````````!`%`@$````````#L0 -XM`````````0!0Q10```````#4%`````````$`4"X5````````,A4````````! -XM`%``````````````````````_P\````````$$`````````$`50`````````` -XM``````````"A%0```````*85`````````0!5`````````````````````%45 -XM````````NQ4````````!`%T`````````````````````D0@```````"C"``` -XM``````,`=L!]!`L````````##`````````,`=L!]%`P````````0#0`````` -XM``,`=L!].PT```````!%#0````````,`=L!]A0T```````"?#P````````,` -XM=L!].Q````````#3$0````````,`=L!]`1(```````#G$P````````,`=L!] -XMK10````````N%0````````,`=L!]8!4```````#*%0````````,`=L!]WQ4` -XM``````"K%@````````,`=L!]8A@```````#7&`````````,`=L!]```````` -XM`````````````)$(````````HP@````````#`':@?00+`````````PP````` -XM```#`':@?10,````````$`T````````#`':@?3L-````````10T````````# -XM`':@?84-````````GP\````````#`':@?3L0````````TQ$````````#`':@ -XM?0$2````````YQ,````````#`':@??L3````````9Q0````````#`':@?6<4 -XM````````;!0````````!`%5W%````````)44`````````0!4K10````````N -XM%0````````,`=J!]RA4```````"K%@````````,`=J!]8A@```````#7&``` -XM``````,`=J!]`````````````````````(T4````````E10````````!`%4` -XM````````````````````>A0```````"5%`````````$`40`````````````` -XM``````"1"````````)@(`````````0!0!0T````````0#0````````$`4`H4 -XM````````%!0````````!`%`D%````````%04`````````0!0RA4```````#1 -XM%0````````$`4`````````````````````"1"````````)@(`````````0!0 -XM!0T````````0#0````````$`4!<4````````'10````````!`%`D%``````` -XM`%04`````````0!0RA4```````#1%0````````$`4``````````````````` -XM```Y`````@``````U!$``/(%``!?7V=L;V)?<&%T=&5R;E]P`%\&``!G;&]B -XM9G)E90!+"@``9VQO8@``````+`````(```````@`````````````````UQ@` -XM````````````````````````````P@````````#L`````````/4````````` -XM^@````````#P`````````/,``````````````````````````````%`!```` -XM````A`$```````".`0```````,X!`````````````````````````````'," -XM````````JP(```````#;!P```````#<(````````$P8````````=!@`````` -XM`$@#````````8`,`````````````````````````````F4``!P=U]S:&5L;`!?7VEN -XM;U]T`'!W7W!AF5?=`!?7V)L:W-I>F5?=`!M>5]R -XM96%L;&]C`&9IF5?=`!?7W1I;65?=`!S=%]S:7IE`'-T7W5I9`!?7V]F9E]T -XM`'-T7V1E=@!S:6=N960@8VAA<@!M;V1E7W0`;V9F7W0`'0` -XM+F1A=&$`+F)S`````0````(```````````````````"@-````````/`````` -XM```````````````(````````````````````F0````0````````````````` -XM````````$+(```````"0`````````!H````/````"``````````8```````` -XM`*@````!`````````````````````````)`U````````'2X````````````` -XM``````$```````````````````"X`````0````````````````````````"M -XM8P```````#T````````````````````!````````````````````LP````0` -XM````````````````````````H+(````````8`````````!H````2````"``` -XM```````8`````````,T````!`````````````````````````.IC```````` -XM,`````````````````````$```````````````````#(````!``````````` -XM``````````````"XL@```````#``````````&@```!0````(`````````!@` -XM````````W`````$`````````````````````````&F0```````"0"P`````` -XM`````````````0```````````````````.H````!````,``````````````` -XM`````*IO````````T`4```````````````````$``````````0````````#U -XM`````0````````````````````````!Z=0```````"8````````````````` -XM```!````````````````````$0````,`````````````````````````H'4` -XM``````#^`````````````````````0````````````````````$````"```` -XM`````````````````````*!]````````4`0````````;````%P````@````` -XM````&``````````)`````P````````````````````````#P@0```````/4` -XM```````````````````!```````````````````````````````````````` -XM`````````````0````0`\?\```````````````````````````,``0`````` -XM``````````````````````,``P````````````````````````````,`!``` -XM``````````````````````````,`!0````````````````````````````,` -XM!@````````````````````````````,`"```````````````````````"``` -XM``(``0`0`0```````/,`````````%0````(``0`0`@```````"4````````` -XM)@````(``0!``@```````/<%``````````````,`"@`````````````````` -XM``````````,`"P``````````````````````,@````$`#`````````````4` -XM``````````````,`#`````````````````````````````,`#0`````````` -XM``````````````````,`#P````````````````````````````,`$0`````` -XM``````````````````````,`$@````````````````````````````,`%``` -XM``````````````````````````,`%@````````````````````````````,` -XM%P````````````````````````````,`&```````````````````````0``` -XM`!(``0```````````*,`````````40```!(``0"P`````````%$````````` -XM6@```!``````````````````````````7P```!`````````````````````` -XM````9@```!``````````````````````````;0```!`````````````````` -XM````````=````!``````````````````````````?````!`````````````` -XM````````````A````!``````````````````````````C````!`````````` -XM````````````````E````!``````````````````````````G````!`````` -XM````````````````````I````!``````````````````````````K0```!`` -XM````````````````````````L@```!(``0!`"````````)<0````````MP`` -XM`!``````````````````````````O@```!`````````````````````````` -XMQ@```!``````````````````````````S0```!`````````````````````` -XM````U@```!``````````````````````````W````!`````````````````` -XM````````XP```!``````````````````````````[````!`````````````` -XM`````````````&=L;V(N8P!P````_/__ -XM______\2!`````````(````?````_/________]F!`````````(````<```` -XM_/________^!!`````````(````;````_/________^X!`````````(````@ -XM````_/________\9!0````````(````A````_/________^_!0````````(` -XM```B````_/_________Q!0````````(````B````_/________])!@`````` -XM``(````B````_/________]A!@````````(````C````_/________]F!@`` -XM``````(````B````_/________][!@````````(````9````_/________^C -XM!@````````(````C````_/_________?!@````````(````<````_/______ -XM__\`!P````````(````B````_/________\3!P````````(````B````_/__ -XM______]"!P````````(````:````_/________]-!P````````(````:```` -XM_/________]S!P````````(````;````_/________^/!P````````(````; -XM````_/_________0!P````````(````D````_/________^!"`````````(` -XM```B````_/________^Y"`````````(````F````_/_________7"``````` -XM``(````:````_/________\`"0````````(````;````_/________^X"0`` -XM``````(````E````_/_________Y"0````````(````G````_/________]% -XM"@````````(````;````_/________^'"@````````(````E````_/______ -XM___#"@````````H````+````#0````````#?"P````````(````9````_/__ -XM_______Z"P````````(````9````_/________].#`````````(````E```` -XM_/________]>#0````````(````:````_/________]\#0````````H````+ -XM````#P````````#!#0````````(````A````_/________\6#@````````(` -XM```H````_/_________!#@````````(````A````_/_________J#@`````` -XM``(````9````_/________\`#P````````(````9````_/________^4#P`` -XM``````(````D````_/_________(#P````````(````F````_/________\` -XM$`````````(````;````_/________\9$`````````(````I````_/______ -XM__]>$`````````(````9````_/________]Z$`````````(````9````_/__ -XM______^W$`````````H````"````$`(```````#/$`````````(````J```` -XM_/_________[$`````````(````9````_/________\1$0````````(````9 -XM````_/________\Z$0````````(````9````_/________]2$0````````(` -XM```9````_/________]]$0````````(````9````_/________^3$0`````` -XM``(````9````_/________^Z$0````````(````9````_/________\-$@`` -XM``````(````:````_/________\Q$@````````(````A````_/________]D -XM$@````````(````:````_/________^A$@````````(````A````_/______ -XM__]$$P````````(````:````_/________]@$P````````(````D````_/__ -XM______^"$P````````(````<````_/________^D$P````````(````;```` -XM_/_________:$P````````(````;````_/_________H$P````````H````+ -XM````$0````````#M$P````````(````K````_/________\#%`````````(` -XM```L````_/________\0%`````````(````I````_/________])%``````` -XM``L````+````%@````````!H%`````````(````:````_/________^1%``` -XM``````(````;````_/________^D%`````````(````;````_/_________0 -XM%`````````(````D````_/_________X%`````````(````<````_/______ -XM__\(%0````````(````<````_/________\8%0````````(````<````_/__ -XM______]&%0````````(````:````_/________]J%0````````(````:```` -XM_/________^B%0````````(````;````_/________^\%0````````(````; -XM````_/_________B%0````````(````<````_/________\@%@````````(` -XM```9````_/________]8%@````````(````9````_/________]N%@`````` -XM``(````9````_/________^5%@````````(````9````_/________^Z%@`` -XM``````(````:````_/________\B%P````````(````;````_/________]` -XM%P````````(````;````_/________]8%P````````(````E````_/______ -XM__^;%P````````(````9````_/________\F&`````````H````+```````` -XM```````P&`````````H````,```````````````U&`````````H````.```` -XM``````````!!&`````````(````M````_/________]9&`````````(````9 -XM````_/_________V``````````(````9````_/________\Q`@````````(` -XM```=````_/________\&``````````H````%```````````````,```````` -XM``H````5````6@4````````1``````````H````5````P`$````````5```` -XM``````$````"```````````````=``````````$````"````UQ@````````E -XM``````````H````'```````````````L``````````H````5````%@4````` -XM```Q``````````H````5````(@0````````^``````````H````5````O00` -XM``````!%``````````H````5````G`,```````!*``````````H````5```` -XM60$```````!7``````````H````5````+P4```````!<``````````H````5 -XM````=P````````!N``````````H````5````RP0```````![``````````H` -XM```5````/P````````"```````````H````5````00,```````"-```````` -XM``H````5````QP,```````"2``````````H````5````(@(```````"?```` -XM``````H````5````;@0```````"F``````````H````5````>@4```````"M -XM``````````H````5````!0$```````"R``````````H````5````YP,````` -XM``"]``````````H````5````[P0```````#-``````````H````5````\`,` -XM``````#8``````````H````5````@04```````#C``````````H````5```` -XMJP4```````#N``````````H````5````2P,```````#Y``````````H````5 -XM````T@`````````$`0````````H````5````L`$````````/`0````````H` -XM```5````BP`````````:`0````````H````5````!P4````````E`0`````` -XM``H````5````&@0````````P`0````````H````5````X`(````````]`0`` -XM``````H````5````3P(```````!(`0````````H````5````NP````````!? -XM`0````````H````5````Y00```````!J`0````````H````5````5`(````` -XM``!U`0````````H````5````F@$```````"``0````````H````5````;`,` -XM``````"+`0````````H````5````Y`````````"6`0````````H````5```` -XM(@4```````"A`0````````H````5````M00```````"L`0````````H````5 -XM````*04```````"W`0````````H````5````DP$```````#"`0````````H` -XM```5````B@(```````#-`0````````H````5````A`,```````#9`0`````` -XM``H````5````1@(```````#E`0````````H````5````9P0```````#S`0`` -XM``````H````5````BP$````````"`@````````H````5````?P$````````. -XM`@````````H````5````#P4````````<`@````````H````5````H`(````` -XM```J`@````````H````5````%`(````````X`@````````H````5````+0(` -XM``````!&`@````````H````5``````4```````!4`@````````H````5```` -XM#0(```````!B`@````````H````5````HP4```````!P`@````````H````5 -XM````+`0```````!^`@````````H````5````Z@````````",`@````````H` -XM```5````HP$```````":`@````````H````5````^`0```````"H`@`````` -XM``H````5````,@$```````"V`@````````H````5````60````````#$`@`` -XM``````H````5````]@(```````#2`@````````H````5````9`````````#@ -XM`@````````H````5````@0````````#N`@````````H````5````@`0````` -XM``#]`@````````H````5````-@(````````)`P````````H````5````40`` -XM```````7`P````````H````5````V@`````````E`P````````H````5```` -XM)P`````````S`P````````H````5````L`(```````!!`P````````H````5 -XM````;P(```````!/`P````````H````5````404```````!=`P````````H` -XM```5````'@````````!K`P````````H````5````A`$```````!Y`P`````` -XM``H````5````R0````````"'`P````````H````5````_P(```````"5`P`` -XM``````H````5````*`$```````"D`P````````H````5````90,```````"Q -XM`P````````H````5````4P,```````"_`P````````H````5````2@$````` -XM``#-`P````````H````5````N0$```````#;`P````````H````5````M@4` -XM``````#I`P````````H````5````IP`````````(!`````````H````5```` -XMC`4````````4!`````````H````5````4P$````````B!`````````H````5 -XM````/`$````````P!`````````H````5````U@,````````^!`````````H` -XM```5````I@,```````!,!`````````H````5````-`,```````!:!``````` -XM``H````5````5@0```````!H!`````````H````5````@`(```````!V!``` -XM``````H````5````]P````````"$!`````````H````5````(@,```````"2 -XM!`````````H````5````Q0(```````"A!`````````H````5````>P,````` -XM``"O!`````````H````5````MP(```````"\!`````````H````5````IP(` -XM``````#*!`````````H````5````UP(```````#8!`````````H````5```` -XM[@(```````#F!`````````H````5````W@,```````#T!`````````H````5 -XM````:P`````````"!0````````H````5````$P`````````0!0````````H` -XM```5````1@0````````>!0````````H````5````K`0````````L!0`````` -XM``H````5````+@````````"F!0````````H````5````RP(```````"R!0`` -XM``````H````5````FP0```````#$!0````````H````5````U@0```````#0 -XM!0````````H````5````T`,```````#F!0````````H````5````400````` -XM``#W!0````````$````"``````````````#_!0````````$````"````HP`` -XM```````3!@````````H````1```````````````C!@````````H````1```` -XM20`````````L!@````````H````1````D@`````````S!@````````H````5 -XM````E04```````!!!@````````H````5````#P,```````!D!@````````$` -XM```"````L`````````!L!@````````$````"`````0$```````!T!@`````` -XM``H````1````.@$```````"!!@````````H````1````F@$```````"&!@`` -XM``````H````4``````````````"/!@````````H````1````XP$```````"6 -XM!@````````H````5````F@````````"B!@````````$````"````$`$````` -XM``"J!@````````$````"`````P(```````"R!@````````H````1````!@(` -XM``````"[!@````````H````5````;@$```````#&!@````````H````1```` -XMMP(```````#+!@````````H````5````.P,```````#6!@````````H````1 -XM````$P,```````#D!@````````H````1````;P,```````#R!@````````H` -XM```1````I@,```````#W!@````````H````5````#``````````"!P`````` -XM``H````1````W`,````````'!P````````H````4````0``````````,!P`` -XM``````H````5````D0(````````7!P````````H````1````.`0````````G -XM!P````````H````1````;@0````````N!P````````H````5````M@,````` -XM```Z!P````````$````"````$`(```````!"!P````````$````"````-0(` -XM``````!;!P````````H````1````D00```````!I!P````````H````1```` -XMM`0```````!X!P````````H````1````UP0```````"'!P````````H````1 -XM````^@0```````"9!P````````H````5````_`,```````"\!P````````H` -XM```5````#@0```````#(!P````````$````"````0`(```````#0!P`````` -XM``$````"````-P@```````#8!P````````H````1````'04```````#A!P`` -XM``````H````5````U@0```````#L!P````````H````1````:04```````#Q -XM!P````````H````5````*@,```````#\!P````````H````1````4@8````` -XM```!"`````````H````5````'`(````````,"`````````H````1````P08` -XM```````1"`````````H````5````B@,````````<"`````````H````1```` -XM(P<````````A"`````````H````5````#P,````````L"`````````H````1 -XM````I0<````````Q"`````````H````5````R04````````\"`````````H` -XM```1````W0<```````!!"`````````H````5````9@(```````!."``````` -XM``H````5````3`````````!="`````````H````5````.00```````!M"``` -XM``````H````5````"0,```````!X"`````````H````1````+`@```````!] -XM"`````````H````5````0P$```````"("`````````H````1````B`@````` -XM``"-"`````````H````5````"P$```````"9"`````````H````5````E0`` -XM``````"D"`````````H````1````UP@```````"I"`````````H````5```` -XMK@````````"P"`````````$````"````2`8```````"]"`````````H````4 -XM````<`````````#3"`````````H````4````P`````````#A"`````````H` -XM```1````#0D```````#H"`````````H````4````$`$`````````"0`````` -XM``H````5```````````````,"0````````H````5````#``````````7"0`` -XM``````H````1````M0D````````<"0````````H````5````<@,````````G -XM"0````````H````1````V`D````````M"0````````H````4````0`$````` -XM``!!"0````````H````1````(0H```````!'"0````````$````"````C0,` -XM``````!/"0````````$````"````Q00```````!<"0````````H````5```` -XMD@,```````!G"0````````H````1````?0H```````!L"0````````$````" -XM````V`,```````!T"0````````$````"````Q00```````!]"0````````H` -XM```5````.00```````"("0````````H````1````V0H```````"8"0`````` -XM``H````1````-0L```````"F"0````````H````1````D0L```````"K"0`` -XM``````H````4````<`$```````##"0````````H````4````H`$```````#3 -XM"0````````H````1````[0L```````#>"0````````H````4````T`$````` -XM``#C"0````````H````5````E0````````#N"0````````H````1````20P` -XM```````6"@````````H````5````_@$````````H"@````````H````5```` -XM0@4````````T"@````````H````5````Z`(```````!-"@````````H````5 -XM``````$```````!9"@````````$````"````0`@```````!A"@````````$` -XM```"````UQ@```````!I"@````````H````1````?PP```````!R"@`````` -XM``H````5````U@0```````!]"@````````H````1````RPP```````"""@`` -XM``````H````5````'`(```````"-"@````````H````1````:@X```````"2 -XM"@````````H````5````B@,```````"="@````````H````1````B0\````` -XM``"B"@````````H````5````#P,```````"M"@````````H````1````P0\` -XM``````"R"@````````H````5````70(```````"]"@````````H````1```` -XM0Q````````#""@````````H````5````;@$```````#-"@````````H````1 -XM````O!````````#2"@````````H````5````#`````````#="@````````H` -XM```1````6Q(```````#B"@````````H````5````>0(```````#M"@`````` -XM``H````1````=1,```````#R"@````````H````5````7@0```````#]"@`` -XM``````H````1````%!4````````""P````````H````4````$`(````````+ -XM"P````````H````5````0@4````````7"P````````H````4````8`(````` -XM```<"P````````H````5````!P0````````H"P````````H````5````%P$` -XM```````S"P````````H````1````S!4```````!!"P````````H````1```` -XM!A8```````!&"P````````H````5````3`````````!1"P````````H````1 -XM````8A8```````!6"P````````H````5````G@4```````!A"P````````H` -XM```1````M!<```````!F"P````````H````5````K0,```````!Q"P`````` -XM``H````1````CA@```````!V"P````````H````5````W@0```````"&"P`` -XM``````H````4````L`(```````"7"P````````H````4````X`(```````"@ -XM"P````````H````1````!QD```````"P"P````````H````4````$`,````` -XM``#!"P````````H````4````0`,```````#*"P````````H````1````8QD` -XM``````#6"P````````H````4````<`,```````#;"P````````H````5```` -XM(0$```````#F"P````````H````1````OQD```````#O"P````````H````4 -XM````H`,`````````#`````````H````4````T`,````````)#`````````H` -XM```1````O1L````````9#`````````H````4``````0````````F#``````` -XM``H````4````,`0````````O#`````````H````1````!AP````````Y#``` -XM``````H````4````8`0```````!"#`````````H````5````!P````````!- -XM#`````````H````1````8AP```````!2#`````````H````4````H`0````` -XM``!B#`````````H````1````A1P```````!M#`````````H````4````T`0` -XM``````"##`````````H````4````,`4```````"1#`````````H````1```` -XMNQP```````"8#`````````$````"````A0L```````"@#`````````$````" -XM````\`L```````"M#`````````H````5````$`$```````"X#`````````H` -XM```1````/1T```````#!#`````````$````"````P`L```````#)#``````` -XM``$````"````\`L```````#:#`````````$````"````S0L```````#B#``` -XM``````$````"````\`L```````#O#`````````H````1````8!T```````#W -XM#`````````H````4````D`4````````)#0````````H````1````EAT````` -XM```=#0````````H````4````\`4````````M#0````````H````1````/AX` -XM```````]#0````````H````1````HAX```````!�````````H````4```` -XM0`8```````!7#0````````H````4````<`8```````!@#0````````H````1 -XM````71\```````!K#0````````H````4````H`8```````!W#0````````H` -XM```1````IA\```````"$#0````````H````4````X`8```````"-#0`````` -XM``H````5````T@(```````"F#0````````H````1`````B````````"K#0`` -XM``````H````4````D`<```````"T#0````````H````5````9`$```````#$ -XM#0````````H````4````X`<```````#5#0````````H````4````$`@````` -XM``#>#0````````H````1````:"$```````#I#0````````$````"````%1$` -XM``````#Q#0````````$````"````6Q$````````&#@````````$````"```` -XM)1$````````.#@````````$````"````6Q$````````;#@````````H````1 -XM````BR$````````F#@````````H````4````0`@````````W#@````````H` -XM```4````<`@```````!`#@````````H````1````KB$```````!+#@`````` -XM``$````"````EQ$```````!3#@````````$````"````TQ$```````!D#@`` -XM``````$````"````I!$```````!L#@````````$````"````TQ$```````!Y -XM#@````````H````1````'2(```````"!#@````````H````4````H`@````` -XM``"*#@````````H````5````%0,```````"5#@````````H````1````9B(` -XM``````":#@````````H````5````OP4```````"U#@````````H````4```` -XM,`D```````#)#@````````H````1````72,```````#.#@````````H````5 -XM````F`(```````#9#@````````H````1````!20```````#B#@````````$` -XM```"````=A8```````#J#@````````$````"````JQ8```````#_#@`````` -XM``$````"````?Q8````````'#P````````$````"````JQ8````````4#P`` -XM``````H````1````P"0````````?#P````````H````4````@`D````````L -XM#P````````H````4````L`D````````U#P````````H````1````"24````` -XM``!!#P````````H````4````X`D```````!1#P````````H````1````924` -XM``````!@#P````````H````4````$`H```````!P#P````````H````1```` -XMP24```````!_#P````````$````"````.Q````````"'#P````````$````" -XM````@Q````````"8#P````````$````"````2!````````"@#P````````$` -XM```"````@Q````````"M#P````````H````1````'28```````"Y#P`````` -XM``$````"````S@X```````#!#P````````$````"````!`\```````#2#P`` -XM``````$````"````UPX```````#:#P````````$````"````!`\```````#G -XM#P````````H````1````4R8```````#O#P````````H````4````0`H````` -XM``#X#P````````H````5````7`,````````#$`````````H````1````G"8` -XM```````)$`````````H````4````@`H````````E$`````````H````4```` -XMP`H````````Q$`````````H````1````OR8````````]$`````````H````4 -XM````\`H```````!&$`````````H````5````-@````````!1$`````````H` -XM```1````&R<```````!6$`````````H````5````D00```````!A$``````` -XM``H````1````_2<```````!F$`````````H````5````/0(```````!Q$``` -XM``````H````1````M2@```````!V$`````````H````4````(`L```````"( -XM$`````````H````1````U"D```````".$`````````$````"````V`\````` -XM``"6$`````````$````"````$1````````"C$`````````H````5````!P`` -XM``````"N$`````````H````1````?"H```````"T$`````````$````"```` -XM0A4```````"\$`````````$````"````RA4```````#%$`````````H````5 -XM````!P````````#0$`````````H````1````GRH```````#5$`````````H` -XM```5````=@$```````#@$`````````H````1````PBH```````#E$``````` -XM``H````5````K0,```````#P$`````````H````1````Y2H```````#W$``` -XM``````H````4````8`L`````````$0````````H````5````/0(````````+ -XM$0````````H````1````W"L````````0$0````````$````"````9!0````` -XM```8$0````````$````"````K10````````E$0````````H````5````!P`` -XM```````P$0````````H````1````^2P````````U$0````````H````5```` -XM=@$```````!`$0````````H````1````'"T```````!&$0````````$````" -XM`````A0```````!.$0````````$````"````)!0```````!7$0````````H` -XM```5````/@0```````!C$0````````H````5````.00```````!N$0`````` -XM``H````1````/RT```````!S$0````````$````"````#!0```````![$0`` -XM``````$````"````)!0```````"-$0````````H````1````KBT```````"5 -XM$0````````H````5````2`4```````"@$0````````$````.```````````` -XM``#\``````````$````"```````````````<``````````H````/```````` -XM```````@``````````$````"```````````````T``````````H````/```` -XM```````````X``````````$````"````L`````````!<``````````H````/ -XM``````````````!@``````````$````"````$`$```````"<``````````H` -XM```/``````````````"@``````````$````"````$`(```````"T```````` -XM``H````/``````````````"X``````````$````"````0`(```````#D```` -XM``````H````/``````````````#H``````````$````"````0`@````````@ -XM``````````H````"```````````````X``````````H````"````L``````` -XM``!8``````````H````"````$`$```````"0``````````H````"````$`(` -XM``````"H``````````H````"````0`(```````#0``````````H````"```` -XM0`@````````&``````````H````&```````````````&``````````H````& -XC```````````````0``````````$````"```````````````` -X` -Xend -08f54ce57ae16ee49e80e07b25b53cad -echo x - ./glob/fnmatch.o.uu -sed 's/^X//' >./glob/fnmatch.o.uu << 'b483319a2b8624af2d41c47d4e321b7b' -Xbegin 644 ./fnmatch.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````(A2```` -XM`````````$```````$``&@`7`$%7059!54%455-(@^Q(2(ET)!B)5"04B4PD -XM$`^V!X3`#X3R!P``08G-08G.2(GS@^$"2(UO`4R-?"0P08/E$$&#Y@&)3"0D -XM2(/#`4F)]&:0187M=&L/MM`[%0````!]$DB+-0````!(8\IF@WS.0`!X0CP_ -XM=%$/AX0````\*F:0#X0#`@``187M9F9FD&9FD`^%5`,```^V0_\YT'1"9I"X -XM`0```$B#Q$A;74%<05U!7D%?PP^VA(Y`"```9F9FD#P_#[;0=:\/MD/_A,!T -XMT3PO#X31`P``/"X/A*8#``"0#[9%`$F#Q`%(@\,!A,`/A"<'``!(@\4!Z5/_ -XM__]F9I`\6W1L/%P/A7K___^+1"0DOEP```"%P'4Y#[9%`(3`#X1[____187M -XM="$/MM`[%0````!]%DB+#0````!(8])F@WS10``/B"8'``!(@\4!#[;P187M -XM#X7!`@``#[9#_SGP#X1Y____Z33___]F9F:01(L%`````$6%P`^$=@4``$0/ -XMMD/_183`#X02____08#X+@^$'@,``$&`^"\/A#L#```/MD4`/"$/A)\%``"+ -XM-0````"%]@^(B04``,=$)"P`````BTPD)$B#Q0%%#[;0B<)-8]J%R4$/E,%F -XM9I!FD$6%[42)QG0H1#L5`````'T?2(L%`````&9"@WS80`!Y#T(/MK280`@` -XM`&9FD&9FD(#Z7`^$W@(``(#Z6P^$/@,``(32#X1V_O__#[;"187M="*%P'@> -XM.P4`````?19(BST`````2&/(9H-\ST``#XA#!0``0`^V]CGP#X3J"0``#[9% -XM`$B#Q0$\+8A$)`\/A/P#``"`?"0/70^$9@0```^V5"0/Z5?___]!#[84)(#Z -XM+@^$?00```^V70!(@\4!@/L_#Y3`#X6C`0``187V#X3X"P``@/HO#X3C_?__ -XMA,"0=`R$T@^$UOW__TF#Q`$/MET`2(/%`8#[/P^4P`^$_@```(#[*@^$]0`` -XM`(3;#X1L`0``1(GV3(GG18GW]]Z#YB_H`````$B%P$F)Q@^$;@D``(#[6P^$ -XM8P4``(#[+V:0#X3:"```BT0D$$6$_XE$)"@/A&P$``"`^UP/A!4)``!%A>T/ -XMA?<$``!(@^T!33GF#X9*_?__187M#[;;#X2E"0``1(M<)!1%A=L/A"()``!% -XMA/]T&.F["@``9F:09F:028/$`4TY]`^$$_W__T$/M@0D.04`````?AE(BPT` -XM````2&/09H-\T4``>0>+A)%`"```.=AUR3'23#MD)!B+3"0H3(GF2(GO#Y3" -XMZ##\__^%P'6L,<#IROS__V9FD&:000^V%"3IRO[__P^V0_\[!0`````/C:#\ -XM__](BS4`````2&/(9H-\SD``#XF*_/__BX2.0`@``.E^_/__#[9#_SL%```` -XM``^-,_W__TB+#0````!(8]!F@WS10``/B1W]__^+A)%`"```Z1']__^`^RH/ -XMA%3^__^$VP^%E/[__S'`187V#X0[_/__OB\```!,B>?H`````$B%P`^5P`^V -XMP.D@_/__BT0D%(7`#X1/_/__3#MD)!@/A`3\__]!@'PD_R\/A3C\__]%A?8/ -XMA"_\___IZOO__XM\)!2%_V9F9I`/A-S\__],.V0D&`^$S_O__T&`?"3_+P^% -XMQ?S__T6%]@^%NOO__P^V10`\(0^%O/S__^E6`@``183)#X0J_?__#[9%`(3` -XM#X24^___187MB$0D#W0@#[;`.P4`````?15(BQ4`````2)AF@WS"0``/B"T" -XM``!(@\4!0#IT)`\/A3#]__^`?"0/70^$&P<``(!\)`\`#X5M`@``Z4'[__^0 -XM@'T`.@^%P/S__P^V30%(C7T!@/DZB$PD#P^$:@,```^V1"0/@^AA/!@/A]4` -XM```/MD0D#TB#QP&(1"0P#[8/@/DZB$PD#P^$W`4```^V1"0/@^AA/!@/AZ@` -XM```/MD0D#TB#QP&(1"0Q#[8/@/DZB$PD#P^$QP4```^V1"0/@^AA/!AW?P^V -XM1"0/2(/'`8A$)#(/M@^`^3J(3"0/#X2S!0``#[9$)`^#Z&$\&'=6#[9$)`]( -XM@\T/ML%T)`^VP3L%`````'T92(L-`````$ACT&:#?-%``'D'BX210`@``#GP -XM#XWY````#[95`$B#Q0&(5"0/@'PD#UT/A9K[__^+5"0LA=(/A>_Y___IJOG_ -XM_[\`````Z`````!(@_@!&<"#R`&)!0````#I;/K__XM$)!2%P`^$=_O__TP[ -XM9"08#X1U^?__08!\)/\O#X5@^___187V#X17^___Z5OY__\\7@^%;_K__TB# -XMQ0$/MD4`QT0D+`$```#I8OK__P^VA()`"```2(/%`8A$)`]`.G0D#P^%]_K_ -XM_^G"_?__/%P/A0'___\/MDT`2(/%`>GT_O__BX2/0`@``.FQ^O__BU0D$(/B -XM^XE4)"CIA/O__SQ;=#$\70^$JP0``(3`#X39^/__#[9%`$B#Q0%%A,ETWSQ< -XM==N`?0``#X2^^/__2(/%`>O7@'T`.F9F9I!US0^V10&$P`^$HOC__TB#Q0$\ -XM.G7L#[9%`3Q==.A(@\4"#[9%`.N?28GT00^V!"2$P`^$K/O___9$)!`(#X1M -XM^/__/"\/E<`/ML#I9?C__P^VPSL%``````^-^OK__TB+%0````!(F&:#?,)` -XM``^)Y?K__P^VG()`"```Z=CZ__\/MH210`@``.G-^/__BT0D$$2+;"002(U= -XM_X/@^T6$_T0/1.A-.>8/A@+X__^+1"04A<`/A%0&``!%A/]T%Y#IO`4``$F# -XMQ`%-.?1F9F:0#X3:]___,=),.V0D&$2)Z4R)YDB)WP^4PN@B]___AN_B%0D#V:0Z>_X__^+1"0DA<`/A=_V__\/MET`Z=;V -XM__^+1"0LA<`/A&KT___I)?3__V9FD&:0,?9,B>?H`````$F)QNF`]O__183_ -XM=3A!#[8$)#D%`````'X92(L-`````$ACT&:#?-%``'D'BX210`@``#G8='!) -XM@\0!33GT=0>+ -XMA)%`"```.=AT6$F#Q`%-.?1US>F9\___183_#X68````1(M4)!1%A=)T=T$/ -XMM@0D.<-T2DF#Q`%-.?1U[NEO\___BTPD*#'23(GF2(GOZ+[R__^%P`^%=___ -XM_S'`Z53S__^+3"0H,=),B>9(B>_HGO+__X7`=9,QP.DX\___,=),.V0D&(M, -XM)"A,B>9(B>\/E,+H>O+__X7`=9DQP.D4\___00^V!"0YV'0O28/$`4TY]'7N -XMZ?CR__]$BTPD%$6%R71E00^V!"0YPW0J28/$`4TY]'7NZ=?R__^+3"0H,=), -XMB>9(B>_H)O+__X7`=;PQP.G`\O__3#MD)!BZ`0```)!T"S'208!\)/\O#Y3" -XMBTPD*$R)YDB)[^CT\?__AB0Z6OR__]!#[8$)#D%`````'X92(L-`````$ACT&:#?-%``'D'BX21 -XM0`@``#G8#X3&````28/$`4TY]'7)Z2_R__],.V0D&+H!````=`LQTD&`?"3_ -XM+P^4PD2)Z4R)YDB)W^AJ\?__A<`/A#;U__])@\0!33GT= -XM-``##CH+.P5)$P(&```?'0$Q$Q$!$@%8"UD%`1,``"`%`#$3```A'0$Q$Q$! -XM$@%8"UD+```B'0$Q$U4&6`M9!0``(P4`,1,"!@``)#0``P@Z"SL%21,""@`` -XM)1T!,1,1`1(!6`M9!0``)AT!,1,1`1(!6`M9"P$3```G'0$Q$U4&6`M9!0$3 -XM```H'0$Q$U4&6`M9"P$3```I-``##CH+.PM)$P(&```J-``Q$P(&```K'0$Q -XM$U4&6`M9"P``+#0``PXZ"SL%21,""@``+2X!/PP##CH+.P4G#$D3$0$2`4`* -XM`1,``"X%``,..@L[!4D3`@8``"\T``,..@L["TD3/PP\#````$<,```"```` -XM```(`0`````!`````````````````````````````````@$&``````(!"``` -XM```"`@4``````@('``````,$!6EN=``"!`<``````@@%``````0``````SIE -XM`````@@'``````((!``````"!`0`````!``````#4EH````%"`<&"`0````` -XM!%9%````!``````$5XH````"`08`````!Q@%-.@````(``````4UE0````(C -XM``@`````!3:5`````B,$"``````%-Y4````"(P@(``````4XZ`````(C$``) -XM"&4````$``````4YIP````<0!3L>`0``"``````%/$4````"(P`(``````4] -XM'@$```(C"``)".X````$``````4^^0````J`$`5`]@$```@`````!4'V`0`` -XM`B,`"``````%0@8"```"(P@(``````5$00(```(C*`@`````!45R`@```B,P -XM"``````%1I4````"(S@(``````5(>`(```(C0`@`````!4F(`@```R/`$`@` -XM````!4J(`@```R/`&`@`````!5$D`0```R/`(`@`````!5(D`0```R/0(`@` -XM````!5,D`0```R/@(`@`````!56(`````R/P(`@`````!59%`````R/X(``+ -XMH`````8"```,A0````<`"Z`````6`@``#(4````?``T!E0```#`"```.,`(` -XM``YZ````#CL"````"0@V`@``#Z`````)"#`"```)"!8"```-`44```!F`@`` -XM#I4````.9@(```YZ````#FP"````"0B@````"0AF`@``"0A'`@``"V4```"( -XM`@``#(4```#_``N5````F`(```R%````_P`$``````57+P$```0`````!B1Z -XM`````@@%`````!```````FT!10````/;`@``$5]C``)LB@```!%?9@`";&4` -XM````$``````">@%%`````P(#```17V,``GF*````$5]F``)Y90```!(`$``` -XM```"G`&*`````QX#```17V,``IN*`````!```````H`!10````-$`P``$5]C -XM``)_B@```!%?9@`"?V4`````$P`````!B68"```!<@,``!%S``&',`(``!%C -XM``&(10```!0``````8IF`@```!4``````:,!10`````````````````````` -XM````````MPL``!8``````9\P`@```````!8``````:`P`@```````!8````` -XM`:%%`````````!8``````:)%`````````!=P``&D,`(````````7;@`!I#`" -XM````````%V,``:4P`````````!@``````:L!&0`````!C`$``````````!H` -XM````2PD``!MN;W0``28!10`````````<``````$G`:`````=`````!MF;@`! -XM0`$P`````````!H`````PP0``!X``````98!,``````````?VP(````````` -XM```````````````!G`&L!```(/8"```@[`(``"&U`@`````````````````` -XM``````)[(-`"```@Q@(`````(@(#`````````9P!(Q,#```````````?VP(` -XM```````````````````````!C0$,!0``(/8"```@[`(``"&U`@`````````` -XM``````````````)[(-`"```@Q@(`````']L"```````````````````````` -XM`4`!504``"#V`@``(.P"```AM0(````````````````````````">R#0`@`` -XM(,8"`````!H`````W@@``"1S='(``4\!MPL```.1L'\;8S$``5`!HP(````` -XM```<``````%4`3`"```?VP(````````````````````````!>`'6!0``(/8" -XM```@[`(``"&U`@````````````````````````)[(-`"```CQ@(````````` -XM`!_;`@````````````````````````%X`2,&```@]@(``"#L`@``(;4"```` -XM`````````````````````GL@T`(``"/&`@``````````']L"```````````` -XM`````````````7@!<`8``"#V`@``(.P"```AM0(````````````````````` -XM```">R#0`@``(\8"```````````?VP(````````````````````````!>`&] -XM!@``(/8"```@[`(``"&U`@````````````````````````)[(-`"```CQ@(` -XM`````````!\>`P````````````````````````%X`>@&```@.0,``",O`P`` -XM```````?VP(````````````````````````!>`$U!P``(/8"```@[`(``"&U -XM`@````````````````````````)[(-`"```CQ@(``````````!_;`@`````` -XM``````````````````%X`8('```@]@(``"#L`@``(;4"```````````````` -XM`````````GL@T`(``"/&`@``````````']L"```````````````````````` -XM`7@!SP<``"#V`@``(.P"```AM0(````````````````````````">R#0`@`` -XM(\8"```````````?VP(````````````````````````!>`$<"```(/8"```@ -XM[`(``"&U`@````````````````````````)[(-`"```CQ@(``````````!_; -XM`@````````````````````````%X`6D(```@]@(``"#L`@``(;4"```````` -XM`````````````````GL@T`(``"/&`@``````````']L"```````````````` -XM`````````7@!M@@``"#V`@``(.P"```AM0(````````````````````````" -XM>R#0`@``(\8"```````````E'@,````````````````````````!>`$@.0,` -XM`",O`P``````````']L"`````````````````````````48!)PD``"#V`@`` -XM(.P"```AM0(````````````````````````">R#0`@``(,8"`````"4"`P`` -XM``````````````````````&-`2,3`P```````````";;`@`````````````` -XM``````````&PDPD``"#V`@``(.P"```AM0(````````````````````````" -XM>R#0`@``(,8"`````"<"`P````````'+`:T)```C$P,`````````)ML"```` -XM`````````````````````<;U"0``(/8"```@[`(``"&U`@`````````````` -XM``````````)[(-`"```@Q@(`````*`(#`````````<@."@``(Q,#```````` -XM`!H`````#PL``!0``````>TP`@``&@`````["@``*0`````!\T4````````` -XM`"A$`P````````'O:`H``"-=`P```````"!4`P``'0`````J9@,````````` -XM`!T`````'@`````!#`%%`````````!_;`@````````````````````````$1 -XM`<8*```@]@(``"#L`@``(;4"`````````````````````````GL@T`(``"#& -XM`@`````G`@,````````!$P'@"@``(Q,#`````````"+;`@````````$3`2#V -XM`@``(.P"```KM0(````````">R#0`@``(,8"````````']L"```````````` -XM`````````````R#0`@``(,8"`````";;`@````````````````````````'(H`L``"#V -XM`@``(.P"```AM0(````````````````````````">R#0`@``(,8"`````"P` -XM`````24!10````D#````````````"Z````#'"P``#(4````&`"T!``````'D -XM`0%%``````````````````````````)W"!T,```N``````'A`3`"```````` -XM+@`````!X@$P`@```````"X``````>,!10``````````+P`````"6D4````! -XM`2\`````!5N8`@```0$O``````5<1`P```$!"0B8`@```)P$```"`,8````! -XM`?L."@`!`0$!`````2]U7!E+F@` -XM`@``&Y -XM*3LN@8$#=8T#H0)'`]]]1PAU`PZWQTB"!`(#J']_!`$#V`#AW7<#X0`(Q?+6 -XMH9\(CX&"1"XVK`0"`ZY^?P0!`](![PAS`PJ-`SN-KP0"`^%]500!`Y\"""L( -XMGX$I20,08ZH#J7Z;V`BYD%B&`W%'`Q,(MP,*?P.;?SD#Y0`Y`YM_?U8X.@/F -XM`&,#$(T##*G_CXX"1!`$`@/;?E4$`0.E`>$$`@.*?ZD$`0/V`'$#P@$([P/] -XM?;<#^0&;!`(#HWU'!`$#W0((*P0"`])]X00!`RNW!`(#IG]'!`$#V@`(*P0" -XM`U7A!`$#-;<#$XV#`U`")@$#]@`",0$")Q61`PG]C[D$`@.H?K<$`0/8`>'4 -XM20/D`*FK`YU__0,1FX`X2&CW`W)5`PY'`W)'.CA(:/<#9=:Y -XMN$@#$(W(`[Q^"'$$`@/=?CD$`0.C`0@K`[5_")L#+L6/19T",1`#W@$(J0.) -XM?W$##\4#"U4#:%4#&$<$`@/V?0@Y!`$#B@)_!`(#]GT",0$$`0.*`G\$`@/V -XM?0(N`00!`XH"?P0"`_9]`BX!!`$#B@)_!`(#B7X"+@$$`0/W`0A'!`(#]GT( -XM?P0!`XH"?P0"`_9]`BX!!`$#B@)_!`(#]GT"+@$$`0.*`G\$`@/V?0(N`00! -XM`XH"?P0"`_9]`BX!!`$#B@)_!`(#]GT"+@$$`0.*`G\$`@.)?@(S`00!`]T! -XM",4#HW\">`&/CP(N#4@#B0%C`X)_J;@#M0&-`\=]"%4#A@$('58$`@/;?E4$ -XM`0.E`>$$`@.*?ZD$`0/V`'%&U`0"`]M^500!`Z4!X00"`XI_J00!`_8`<48( -XM\(S4`\(!"'\#OGYQ`\(!"$<#OGYQ`\(!"+<#OGYQC`ARC-0#P@$(1P.^?G$# -XMP@$"*P$#OGYQX.($`@/;?E4$`0.E`>$$`@.*?ZD$`0/V`'%^`V73`BT.`V'3 -XM9H8#<4<#P0`(X0/"`0A_`Z%^<58(<`,=TP/"`0(N`0.B?G$(<`/N`0B-+`(( -XM``$!4$]325A,65]#3U)214-4`&%L;G5M`&%L<&AA`&)L86YK`&-N=')L`&1I -XM9VET`&=R87!H`&QO=V5R`'!R:6YT`'!U;F-T`'-P86-E`'5P<&5R`'AD:6=I -XM=```````%````/____\!``%X$`P'")`!````````/``````````````````` -XM`(4/````````0@X00@X80@X@0@XH00XP00XX1`Z``8,'A@:,!8T$C@./`@`` -XM`````!0````````````````````*`````````!0``````````7I2``%X$`$# -XM#`<(D`$``#0````<`````````(4/````0@X00@X80@X@0@XH00XP00XX1`Z` -XM`8,'A@:,!8T$C@./`@``````%````%0`````````"@`````````````````` -XM```````"``````````(`=P@"``````````0``````````@!W$`0````````` -XM!@`````````"`'<8!@`````````(``````````(`=R`(``````````D````` -XM`````@!W*`D`````````"@`````````"`'PP````````!`%6L#@```````-X.`````````0!5```` -XM````````````````````````````)@`````````!`%0F`````````$X````` -XM`````P"1F'].`````````&<``````````0!49P````````"%#P````````,` -XMD9A_````````````````````````````````)@`````````!`%$F```````` -XM`(4/`````````P"1E'\````````````````````````````````F```````` -XM``$`4B8`````````,@`````````#`)&0?S(`````````G@`````````!`%*> -XM`````````+0``````````P"1D'^T`````````#P!`````````0!22P$````` -XM``#(`0````````$`4HD"````````!@,````````!`%(J`P```````-L#```` -XM`````P"1D'_;`P````````0$`````````0!2'`0````````S!`````````$` -XM4DX$````````=P0````````!`%*%!````````/<$`````````0!2]@8````` -XM````!P````````$`4A0'````````8@<````````!`%*C!P```````+,'```` -XM`````P"1D'\8"````````!L(`````````P"1D'\;"````````#,(```````` -XM`0!20`@```````!Q"`````````,`D9!_@@@```````#I"`````````,`D9!_ -XM'@P````````_#`````````,`D9!_50P```````!J#`````````,`D9!_D@P` -XM``````"L#@````````,`D9!_K`X```````#>#@````````$`4MX.```````` -XMA0\````````#`)&0?P`````````````````````V`````````)X````````` -XM`0!6G@````````"E``````````$`4Z4`````````JP`````````!`%:K```` -XM`````+0``````````0!5M`````````!R!0````````$`5G(%````````;@8` -XM```````!`%5N!@```````!@(`````````0!6&P@```````"+"`````````$` -XM5HL(````````Z0@````````!`%/I"`````````0)`````````0!5!`D````` -XM``"("P````````$`5H@+````````^0L````````!`%7Y"P```````'$.```` -XM`````0!6<0X```````"L#@````````$`4ZP.````````_@X````````!`%;^ -XM#@```````"D/`````````0!3*0\```````!>#P````````$`5EX/```````` -XMA0\````````!`%,`````````````````````3@````````"M``````````$` -XM7+0`````````&`@````````!`%P;"````````(4/`````````0!<```````` -XM`````````````$X`````````8``````````#`)&/?V``````````F@`````` -XM```!`%":`````````)X``````````P"1CW^>`````````*H``````````0!3 -XMJ@````````"T``````````,`D8]_M`````````#+``````````$`4,L````` -XM````_0`````````#`)&/?_T`````````$`$````````!`%`0`0```````#4! -XM`````````P"1CW\U`0```````%(!`````````0!04@$```````!L`0`````` -XM``,`D8]_;`$```````"``0````````$`4(`!````````T@$````````#`)&/ -XM?](!````````+0(````````!`%$M`@```````(D"`````````P"1CW^)`@`` -XM`````)<"`````````0!0EP(```````";`@````````,`D8]_FP(```````!< -XM`P````````$`4]0#````````VP,````````#`)&/?]L#````````Z@,````` -XM```!`%/J`P```````.X#`````````0!0[@,```````!.!`````````,`D8]_ -XM3@0```````"%!`````````$`4X4$````````]P0````````#`)&/?_<$```` -XM````$P4````````!`%$3!0```````%\%`````````P"1CW]?!0```````'D% -XM`````````0!1>04```````"6!@````````,`D8]_E@8```````"@!@`````` -XM``$`4,X&````````V@8````````!`%#:!@```````/8&`````````P"1CW_V -XM!@`````````'`````````0!0``<````````4!P````````,`D8]_%`<````` -XM```8!P````````$`4!@'````````HP<````````#`)&/?Z,'````````LP<` -XM```````!`%.S!P```````,<'`````````0!0QP<```````#+!P````````,` -XMD8]_RP<```````#V!P````````$`4!8(````````&`@````````!`%`;"``` -XM`````$`(`````````P"1CW]`"````````'$(`````````0!3<0@```````!^ -XM"`````````$`4'X(````````BP@````````!`%/I"````````/D+```````` -XM`P"1CW_Y"P```````$H,`````````0!32@P```````!5#`````````,`D8]_ -XM50P```````!J#`````````$`4VH,````````;@P````````!`%!N#``````` -XM`'L,`````````P"1CW][#````````)(,`````````0!3K`X```````#>#@`` -XM``````$`4P````````````````````!.`````````!@(`````````P"1K'\; -XM"````````(4/`````````P"1K'\`````````````````````3@````````!G -XM``````````$`5'(`````````M``````````!`%2\`````````!4!```````` -XM`0!4;`$```````"T`0````````$`5,0!````````6`(````````!`%1T`@`` -XM`````/8"`````````0!4U`,````````!!`````````$`5$X$````````;P0` -XM```````!`%2%!````````&X&`````````0!4Y08`````````!P````````$` -XM5!0'````````10<````````!`%1-!P```````(('`````````0!4EP<````` -XM``"C!P````````$`5+,'````````&`@````````!`%0;"````````$`(```` -XM`````0!4Z0@````````-"0````````$`5(@+````````^0L````````!`%1J -XM#````````'L,`````````0!4K`X```````#>#@````````$`5``````````` -XM``````````!.`````````&H``````````0!2<@````````"T``````````$` -XM4KP`````````/`$````````!`%)+`0```````,@!`````````0!2VP$````` -XM``!(`@````````$`4E0"````````!@,````````!`%+4`P```````#,$```` -XM`````0!23@0```````!W!`````````$`4H4$````````;@4````````!`%)N -XM!@```````+0&`````````0!2Q@8`````````!P````````$`4A0'```````` -XMB@<````````!`%**!P```````(X'`````````0!0C@<```````"7!P`````` -XM``$`4K,'````````&`@````````!`%(;"````````$`(`````````0!22@P` -XM``````!5#`````````$`4FH,````````>PP````````!`%*L#@```````-X. -XM`````````0!2`````````````````````$X`````````6``````````!`%&> -XM`````````+0``````````0!1O`````````#%``````````$`4=\````````` -XMY``````````!`%#D`````````/T``````````0!1VP$```````#X`0`````` -XM``$`4`H"````````+0(````````!`%!_`@```````(D"`````````0!0U`,` -XM``````#;`P````````$`4?<$````````!`4````````!`%!?!0```````(0% -XM`````````0!0H`8```````"W!@````````$`4+<&````````Q@8````````! -XM`%'&!@```````/8&`````````0!0LP<````````8"`````````$`41L(```` -XM````0`@````````!`%'I"````````.L(`````````0!0:@P```````![#``` -XM``````$`40````````````````````!_!0```````(0%`````````0!0K`4` -XM``````"Q!0````````$`4-D%````````W@4````````!`%`"!@````````<& -XM`````````0!0*P8````````P!@````````$`4.L(``````````D````````! -XM`%"1"P```````)P+`````````0!0J0L```````"U"P````````$`4+X+```` -XM````RPL````````!`%#9"P```````.4+`````````0!0]`L```````#Y"P`` -XM``````$`4`````````````````````!.`````````(0"`````````0!1B0(` -XM```````8"`````````$`41L(````````&`D````````!`%$8"0```````",) -XM`````````0!0(PD```````!<"0````````$`46X)````````D@D````````! -XM`%&D"0```````,@)`````````0!1V@D````````L"@````````$`43X*```` -XM````8@H````````!`%%T"@```````)@*`````````0!1J@H```````#."@`` -XM``````$`4>`*````````!`L````````!`%$6"P```````#H+`````````0!1 -XM30L```````"%#P````````$`40````````````````````!.`````````%@` -XM`````````0!1G@````````"T``````````$`4;P`````````Q0`````````! -XM`%'?`````````/T``````````0!1?P(```````"$`@````````$`4=0#```` -XM````VP,````````!`%&S!P```````!@(`````````0!1&P@```````!`"``` -XM``````$`45$)````````7`D````````!`%!<"0```````)()`````````0!1 -XMI`D```````#("0````````$`4=H)````````+`H````````!`%$^"@`````` -XM`&(*`````````0!1=`H```````"8"@````````$`4:H*````````S@H````` -XM```!`%'@"@````````0+`````````0!1%@L````````Z"P````````$`44T+ -XM````````B`L````````!`%%J#````````'L,`````````0!1```````````` -XM`````````$X`````````6``````````!`%&>`````````+0``````````0!1 -XMO`````````#%``````````$`4=\`````````_0`````````!`%%_`@`````` -XM`(0"`````````0!1U`,```````#;`P````````$`4;,'````````&`@````` -XM```!`%$;"````````$`(`````````0!1APD```````"2"0````````$`4)() -XM````````R`D````````!`%':"0```````"P*`````````0!1/@H```````!B -XM"@````````$`470*````````F`H````````!`%&J"@```````,X*```````` -XM`0!1X`H````````$"P````````$`418+````````.@L````````!`%%-"P`` -XM`````(@+`````````0!1:@P```````![#`````````$`40`````````````` -XM``````!.`````````%@``````````0!1G@````````"T``````````$`4;P` -XM````````Q0`````````!`%'?`````````/T``````````0!1?P(```````"$ -XM`@````````$`4=0#````````VP,````````!`%&S!P```````!@(```````` -XM`0!1&P@```````!`"`````````$`4;T)````````R`D````````!`%#("0`` -XM`````"P*`````````0!1/@H```````!B"@````````$`470*````````F`H` -XM```````!`%&J"@```````,X*`````````0!1X`H````````$"P````````$` -XM418+````````.@L````````!`%%-"P```````(@+`````````0!1:@P````` -XM``![#`````````$`40````````````````````#'!P```````,L'```````` -XM`0!0\PD```````#Z"0````````$`4/H)````````#0H````````!`%`````` -XM````````````````3@````````!8``````````$`49X`````````M``````` -XM```!`%&\`````````,4``````````0!1WP````````#]``````````$`47\" -XM````````A`(````````!`%'4`P```````-L#`````````0!1LP<````````8 -XM"`````````$`41L(````````0`@````````!`%$A"@```````"P*```````` -XM`0!0+`H```````!B"@````````$`470*````````F`H````````!`%&J"@`` -XM`````,X*`````````0!1X`H````````$"P````````$`418+````````.@L` -XM```````!`%%-"P```````(@+`````````0!1:@P```````![#`````````$` -XM40````````````````````!.`````````%@``````````0!1G@````````"T -XM``````````$`4;P`````````Q0`````````!`%'?`````````/T````````` -XM`0!1?P(```````"$`@````````$`4=0#````````VP,````````!`%&S!P`` -XM`````!@(`````````0!1&P@```````!`"`````````$`45<*````````8@H` -XM```````!`%!B"@```````)@*`````````0!1J@H```````#."@````````$` -XM4>`*````````!`L````````!`%$6"P```````#H+`````````0!130L````` -XM``"("P````````$`46H,````````>PP````````!`%$````````````````` -XM````3@````````!8``````````$`49X`````````M``````````!`%&\```` -XM`````,4``````````0!1WP````````#]``````````$`47\"````````A`(` -XM```````!`%'4`P```````-L#`````````0!1LP<````````8"`````````$` -XM41L(````````0`@````````!`%&-"@```````)@*`````````0!0F`H````` -XM``#."@````````$`4>`*````````!`L````````!`%$6"P```````#H+```` -XM`````0!130L```````"("P````````$`46H,````````>PP````````!`%$` -XM````````````````````3@````````!8``````````$`49X`````````M``` -XM```````!`%&\`````````,4``````````0!1WP````````#]``````````$` -XM47\"````````A`(````````!`%'4`P```````-L#`````````0!1LP<````` -XM```8"`````````$`41L(````````0`@````````!`%'#"@```````,X*```` -XM`````0!0S@H````````$"P````````$`418+````````.@L````````!`%%- -XM"P```````(@+`````````0!1:@P```````![#`````````$`40`````````` -XM``````````!.`````````%@``````````0!1G@````````"T``````````$` -XM4;P`````````Q0`````````!`%'?`````````/T``````````0!1?P(````` -XM``"$`@````````$`4=0#````````VP,````````!`%&S!P```````!@(```` -XM`````0!1&P@```````!`"`````````$`4?D*````````!`L````````!`%`$ -XM"P```````#H+`````````0!130L```````"("P````````$`46H,```````` -XM>PP````````!`%$`````````````````````3@````````!8``````````$` -XM49X`````````M``````````!`%&\`````````,4``````````0!1WP`````` -XM``#]``````````$`47\"````````A`(````````!`%'4`P```````-L#```` -XM`````0!1LP<````````8"`````````$`41L(````````0`@````````!`%$O -XM"P```````#H+`````````0!0.@L```````"("P````````$`46H,```````` -XM>PP````````!`%$`````````````````````G@````````"E``````````$` -XM4-L!````````^`$````````!`%`*`@```````"T"`````````0!0?P(````` -XM``")`@````````$`4/<$````````!`4````````!`%!?!0```````(0%```` -XM`````0!0QP<```````#+!P````````$`4.D(````````ZP@````````!`%!J -XM"P```````'4+`````````0!0=0L```````"("P````````$`4``````````` -XM``````````!.`````````&H``````````0!2<@````````"T``````````$` -XM4KP`````````/`$````````!`%)+`0```````,@!`````````0!2VP$````` -XM```M`@````````$`4BT"````````2`(````````!`%!(`@```````%0"```` -XM`````0!25`(```````!D`@````````$`4&0"````````!@,````````!`%+4 -XM`P```````#,$`````````0!23@0```````!W!`````````$`4H4$```````` -XM;@4````````!`%)I!@```````&X&`````````0!0;@8```````"%!@`````` -XM``$`4N4&``````````<````````!`%(4!P```````(('`````````0!2EP<` -XM``````">!P````````$`4IX'````````HP<````````!`%"S!P```````!@( -XM`````````0!2&P@```````!`"`````````$`4DH,````````50P````````! -XM`%!J#````````'L,`````````0!2K`X```````#>#@````````$`4@`````` -XM``````````````!.`````````&H``````````0!2<@````````":```````` -XM``$`4IH`````````G@`````````!`%">`````````+0``````````0!2O``` -XM```````\`0````````$`4DL!````````R`$````````!`%*)`@````````8# -XM`````````0!2U`,```````#N`P````````$`4NX#````````!`0````````! -XM`%`$!````````!<$`````````0!2%P0````````#P```````(4/`````````0!=```````````````` -XM`````/8"````````!@,````````!`%0`````````````````````G@`````` -XM``"Q``````````$`7@D#````````#`,````````!`%`,`P```````-L#```` -XM`````0!>HP<```````"S!P````````$`7D`(````````<0@````````!`%Y^ -XM"````````.D(`````````0!>^0L```````!*#`````````$`7E4,```````` -XM:@P````````!`%Y[#````````*P.`````````0!>W@X```````"%#P`````` -XM``$`7@````````````````````">`````````+0``````````P"1J'\Q`P`` -XM`````-L#`````````P"1J'^C!P```````+,'`````````P"1J']`"``````` -XM`'$(`````````P"1J']5#````````&H,`````````P"1J'^2#````````'$. -XM`````````P"1J'_>#@```````/X.`````````P"1J'\I#P```````%X/```` -XM`````P"1J'\`````````````````````G@````````"E``````````$`4*4` -XM````````M``````````!`%%Z`P```````*0#`````````0!0I`,```````"S -XM`P````````$`4;,#````````T`,````````!`%"7#````````*X,```````` -XM`0!0K@P```````"]#`````````$`4;T,````````Y@P````````!`%#F#``` -XM`````/4,`````````0!1]0P````````'#0````````$`4#$-````````0@T` -XM```````!`%!1#0```````&(-`````````0!0-0X```````!,#@````````$` -XM4$P.````````6PX````````!`%%;#@```````'$.`````````0!0*0\````` -XM``!/#P````````$`4`````````````````````"0#P```````)H/```````` -XM`0!5`````````````````````)`/````````F@\````````!`%0````````` -XM````````````D`\```````"5#P````````$`494/````````F@\````````! -XM`%(`````````````````````&@````(``````$L,``#'"P``9FYM871C:``` -XM````+`````(```````@`````````````````F@\````````````````````` -XM````````-@`````````[`````````&H,````````@`P```````!*#``````` -XM`%4,````````Z0@`````````#````````+,'````````&P@```````!%!P`` -XM`````*,'````````M@0````````4!P```````'`!````````B0(````````` -XM````````````````````-@`````````[`````````$H,````````50P````` -XM``#I"``````````,````````8@<```````"C!P```````&`%````````Y08` -XM``````#W!````````$0%````````X`$```````")`@```````-(!```````` -XMU0$```````#,`0```````-`!`````````````````````````````'P&```` -XM````V@8```````""!P```````)<'`````````````````````````````)T& -XM````````H`8```````"_!@```````,8&```````````````````````````` -XM`#8`````````.P````````#I"``````````,````````:@4```````!D!@`` -XM``````````````````````````"6`````````)H`````````$`0````````< -XM!`````````````````````````````!;`0```````%\!````````0@0````` -XM``!.!`````````````````````````````#S`@```````-0#````````7@\` -XM``````"%#P```````/X.````````5P\```````#>#@```````/<.```````` -XM%PX```````"L#@```````.4-````````$`X```````"1#0```````-X-```` -XM````;0T```````"*#0```````%$-````````9@T```````"`#````````$H- -XM````````50P```````!J#``````````,````````2@P```````!^"``````` -XM`.((````````0`@```````!Q"````````*,'````````LP<````````````` -XM````````````````?@@```````#B"````````%X/````````A0\```````#^ -XM#@```````"D/````````<0X```````"L#@`````````````````````````` -XM``#V`@```````/D"````````@`P```````"2#`````````$#````````$@,` -XM````````````````````````````!@,````````)`P````````P#```````` -XM$@,`````````````````````````````)@,```````#4`P```````"D/```` -XM````5P\```````#>#@```````/<.````````%PX```````!Q#@```````.4- -XM````````$`X```````"1#0```````-X-````````;0T```````"*#0`````` -XM`%$-````````9@T```````"2#````````$H-````````50P```````!J#``` -XM`````$`(````````<0@```````"C!P```````+,'```````````````````` -XM`````````*P#````````LP,```````!4#@```````%L.````````[@P````` -XM``#U#````````+8,````````O0P`````````````````````````````D@,` -XM``````"A`P```````#H.````````20X```````#4#````````.,,```````` -XMG`P```````"K#`````````````````````````````"2`P```````*$#```` -XM````.@X```````!)#@```````-0,````````XPP```````"<#````````*L, -XM`````````````````````````````')E'0`+F1A=&$`+F)S````````H`0```````````````````$` -XM``````````````````!0````!`````````````````````````#P=0`````` -XM`!@`````````&`````@````(`````````!@`````````80````$````R```` -XM````````````````*R,```````!9`````````````````````0`````````! -XM`````````'4````!`````````````````````````(@C````````<``````` -XM``````````````@```````````````````!P````!``````````````````` -XM```````(=@```````&``````````&`````L````(`````````!@````````` -XMAP````$````"````````````````````^",```````!H```````````````` -XM````"````````````````````((````$`````````````````````````&AV -XM````````,``````````8````#0````@`````````&`````````"1`````0`` -XM``````````````````````!@)````````!XD```````````````````!```` -XM````````````````H0````$`````````````````````````?D@````````> -XM`````````````````````0```````````````````)P````$```````````` -XM`````````````)AV````````&``````````8````$`````@`````````&``` -XM``````"V`````0````````````````````````"<2````````#`````````` -XM```````````!````````````````````L0````0````````````````````` -XM````L'8````````P`````````!@````2````"``````````8`````````,4` -XM```!`````````````````````````,Q(````````L`4````````````````` -XM``$```````````````````#3`````0```#````````````````````!\3@`` -XM`````/@"```````````````````!``````````$`````````W@````$````` -XM````````````````````=%$````````F`````````````````````0`````` -XM`````````````!$````#`````````````````````````)I1````````YP`` -XM``````````````````$````````````````````!`````@`````````````` -XM```````````(60```````%@"````````&0```!,````(`````````!@````` -XM````"0````,`````````````````````````8%L```````![```````````` -XM`````````0`````````````````````````````````````````````````` -XM``$````$`/'_```````````````````````````#``$````````````````` -XM```````````#``,````````````````````````````#``0````````````` -XM```````````````#``4````````````````````````````#``8````````` -XM```````````````````#``@````````````````````````````#``H````` -XM``````````````````L````"``$```````````"%#P```````!P````!``0` -XM```````````$```````````````#``L````````````````````````````# -XM``T````````````````````````````#``\````````````````````````` -XM```#`!`````````````````````````````#`!(````````````````````` -XM```````#`!0````````````````````````````#`!4````````````````` -XM```````````#`!8``````````````````````#$````0```````````````` -XM`````````#\````0`````````````````````````%(````0```````````` -XM`````````````%D````0`````````````````````````&`````0```````` -XM`````````````````',````2``$`D`\````````*``````````!F;FUA=&-H -XM+F,`:6YT97)N86Q?9FYM871C:`!P;W-I>&QY7V-O@H````````*```` -XM"````#H`````````CPH````````"````$P```/S_________FPH````````" -XM````%````/S_________L`H````````*````"````$``````````Q0H````` -XM```"````$P```/S_________T0H````````"````%````/S_________Y@H` -XM```````*````"````$8`````````^PH````````"````$P```/S_________ -XM!PL````````"````%````/S_________'`L````````*````"````$P````` -XM````,0L````````"````$P```/S_________/0L````````"````%````/S_ -XM________4PL````````*````"````%(`````````>`L````````+````%P`` -XM`$(`````````A@P````````"````%0```/S_________G@P````````"```` -XM$P```/S_________IPP````````"````%````/S_________U@P````````" -XM````$P```/S_________WPP````````"````%````/S_________/`X````` -XM```"````$P```/S_________10X````````"````%````/S_________!@`` -XM```````*````!0``````````````#``````````*````$0```,H````````` -XM$0`````````*````$0````8!````````%0`````````!`````@`````````` -XM````'0`````````!`````@```)H/````````)0`````````*````!P`````` -XM````````+``````````*````$0```)0!````````,P`````````*````$0`` -XM`'@!````````.@`````````*````$0```#$`````````00`````````*```` -XM$0```.X!````````3P`````````*````$0```+4!````````5@`````````* -XM````$0```.H`````````6P`````````*````$0```"L"````````:``````` -XM```*````$0```&L"````````;P`````````*````$0```'T"````````=@`` -XM```````*````$0```+8`````````>P`````````*````$0```!4"```````` -XMBP`````````*````$0```&P!````````E@`````````*````$0```(D````` -XM````HP`````````*````$0```!`"````````L``````````*````$0```)L" -XM````````O@`````````*````$0```$L"````````S``````````*````$0`` -XM`&8!````````V@`````````*````$0```*D"````````[P`````````*```` -XM$0```$`"`````````@$````````*````$0```,8"````````$`$````````* -XM````$0```$(`````````)0$````````*````$0```.,!````````.0$````` -XM```*````$0```)T`````````1P$````````*````$0```-L"````````50$` -XM```````*````$0```-`"````````8P$````````*````$0```%$"```````` -XM<0$````````*````$0```$04````````*````#0```(0.```````` -XM?@4````````*````$0```,T!````````C@4````````!`````@```!@)```` -XM````E@4````````!`````@```"`)````````M`4````````!`````@```!@) -XM````````O`4````````!`````@```"`)````````T`4````````*````#0`` -XM`&4/````````VP4````````!`````@```%$)````````XP4````````!```` -XM`@```%D)`````````08````````!`````@```%$)````````"08````````! -XM`````@```%D)````````'08````````*````#0```'\0````````*`8````` -XM```!`````@```(<)````````,`8````````!`````@```(\)````````3@8` -XM```````!`````@```(<)````````5@8````````!`````@```(\)```````` -XM:@8````````*````#0```/@1````````=08````````!`````@```+T)```` -XM````?08````````!`````@```,4)````````FP8````````!`````@```+T) -XM````````HP8````````!`````@```,4)````````MP8````````*````#0`` -XM`%X3````````P@8````````!`````@```/,)````````R@8````````!```` -XM`@````@*````````XP8````````*````#0```+$4````````[08````````! -XM`````@```"$*````````]08````````!`````@```"D*````````$P<````` -XM```!`````@```"$*````````&P<````````!`````@```"D*````````+P<` -XM```````*````#0```/H4````````.@<````````!`````@```%<*```````` -XM0@<````````!`````@```%\*````````8`<````````!`````@```%<*```` -XM````:`<````````!`````@```%\*````````?`<````````*````#0```#H6 -XM````````AP<````````!`````@```(T*````````CP<````````!`````@`` -XM`)4*````````K0<````````!`````@```(T*````````M0<````````!```` -XM`@```)4*````````R0<````````*````#0```&<7````````U`<````````! -XM`````@```,,*````````W`<````````!`````@```,L*````````^@<````` -XM```!`````@```,,*`````````@@````````!`````@```,L*````````%@@` -XM```````*````#0```($8````````(0@````````!`````@```/D*```````` -XM*0@````````!`````@````$+````````1P@````````!`````@```/D*```` -XM````3P@````````!`````@````$+````````8P@````````*````#0```(@9 -XM````````;@@````````!`````@```"\+````````=@@````````!`````@`` -XM`#<+````````E`@````````!`````@```"\+````````G`@````````!```` -XM`@```#<+````````L`@````````*````#0```'P:````````NP@````````! -XM`````@```&H+````````PP@````````!`````@```(@+````````V`@````` -XM```*````#0```%T;````````XP@````````!`````@```!@%````````ZP@` -XM```````!`````@```"<%````````"0D````````!`````@```!@%```````` -XM$0D````````!`````@```"<%````````+`D````````!`````@```)<'```` -XM````-`D````````!`````@```*,'````````1`D````````*````#0```"L< -XM````````4`D````````!`````@```%@`````````6`D````````!`````@`` -XM`&<`````````=0D````````!`````@```%@`````````?0D````````!```` -XM`@```&<`````````F`D````````*````$````-`!````````J`D````````* -XM````#0```/`=````````L@D````````!`````@```"T!````````N@D````` -XM```!`````@```#P!````````UPD````````!`````@```"T!````````WPD` -XM```````!`````@```#P!````````^@D````````*````$``````"```````` -XM"0H````````*````#0```%8?````````#PH````````*````$````#`"```` -XM````&`H````````*````$0```(0`````````(PH````````*````$````#`# -XM````````+`H````````*````$0```$L`````````-@H````````*````#0`` -XM`#<@````````0`H````````*````$````(`#````````3PH````````*```` -XM#0```+D@````````60H````````*````$````,`#````````8@H````````* -XM````#0```-P@````````:0H````````*````$````/`#````````;@H````` -XM```*````$0```$L`````````>0H````````*````#0```*HA````````@@H` -XM```````!`````@```$,(````````B@H````````!`````@```%8(```````` -XMJ`H````````!`````@```$,(````````L`H````````!`````@```%8(```` -XM````RPH````````*````$````,`$````````VPH````````*````#0```&(B -XM````````Y0H````````*````$````!`%````````^PH````````*````$``` -XM`&`%````````%`L````````!`````@```.X#````````'`L````````!```` -XM`@````$$````````.@L````````!`````@```.X#````````0@L````````! -XM`````@````$$````````70L````````!`````@```"`$````````90L````` -XM```!`````@```#,$````````@@L````````!`````@```"`$````````B@L` -XM```````!`````@```#,$````````H0L````````*````$0```%8!```````` -XMK@L````````!````!```````````````R0L````````*````$0```*$"```` -XM````U0L````````!`````@```)`/````````W0L````````!`````@```)H/ -XM````````[0L````````*````$0```!H`````````^`L````````*````#0`` -XM`*(C````````_0L````````*````$0```/,`````````"`P````````*```` -XM#0```,4C````````#0P````````*````$0```*`!````````&`P````````* -XM````#0```.@C````````'@P````````*````$0```(8!````````*PP````` -XM```*````$0````<`````````.`P````````*````$0```&4`````````TP`` -XM```````!`````@``````````````'``````````*````"P`````````````` -XM(``````````!`````@``````````````7``````````*````"P`````````` -XM````8``````````!`````@```)`/````````(``````````*`````@`````` -XM````````6``````````*`````@```)`/````````!@`````````*````!@`` -XM````````````!@`````````*````!@``````````````$``````````!```` -X,`@`````````````` -X` -Xend -b483319a2b8624af2d41c47d4e321b7b -echo x - ./kmkmissing.a.ar-script.bsd.uu -sed 's/^X//' >./kmkmissing.a.ar-script.bsd.uu << 'fa712d1134c6f057fe43287b8ef97632' -Xbegin 644 ./kmkmissing.a.ar-script.bsd -XM0U)%051%(&MM:VUI./kmkmissing.a.ar-script.gnu.uu << '88a4bce8c229186f85a9fbea1abe4663' -Xbegin 644 ./kmkmissing.a.ar-script.gnu -XM0U)%051%(&MM:VUI./getopt1.o.uu << '7f9a18e3e97f698c8a70c0f5493cdc24' -Xbegin 644 ./getopt1.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````-`'```` -XM`````````$```````$``&``5`$&Y`0```.D`````9F:09I!%,0````!`,!PB0`0```````!0````````````````````+```` -XM`````!0````````````````````(`````````!0``````````7I2``%X$`$# -XM#`<(D`$``!0````<``````````L``````````````!0````T``````````@` -XM````````````````````````"P`````````!`%4````````````````````` -XM```````````+``````````$`5`````````````````````````````````L` -XM`````````0!1````````````````````````````````"P`````````!`%(` -XM```````````````````````````````+``````````$`6``````````````` -XM```````0`````````!@``````````0!5`````````````````````!`````` -XM````&``````````!`%0`````````````````````$``````````8```````` -XM``$`40`````````````````````0`````````!@``````````0!2```````` -XM`````````````!``````````&``````````!`%@````````````````````` -XM,P````(``````,P!``#5````9V5T;W!T7VQO;F=?;VYL>0!?`0``9V5T;W!T -XM7VQO;F<``````"P````"```````(`````````````````!@````````````` -XM`````````````````&]P=%]I;F1E>`!'3E4@0R`T+C(N,2`R,#`W,#0!O<'1I;VYS``!' -XM0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(` -XM+G-T./getopt.o.uu << 'e91f2be53ccef7c31a70c80e46567ff3' -Xbegin 644 ./getopt.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````+!$```` -XM`````````$```````$``&P`8`$%7059!54%455-(@^QXBP4`````2,<%```` -XM``````")?"1`2(ET)#A(B50D,$B)3"0HA -XM!P``N/____](@\1X6UU!7$%=05Y!7\-!@#DM#X5A`P``00^V40%)C4D!A-(/ -XMA%`#```QP$B#?"0H`'0)@/HM#Y3`@^`!3(TT"$R)-0````!(@WPD*`!T-XL5 -XM`````$B+3"0X2&/"B50D<$B+!,%(B40D:`^V0`$\+8A$)'Y( -XMBU0D,`^$EP0``$B+5"0PZPL/OL`YQ0^$A00``$B#P@$/M@*$P'7J,?:X`0`` -XM`(`Y`8L5`````(/2`(3`B14`````#X7Y`P``0(#_.@^$[P,``(`^5P^$T@4` -XM``^V?@%`@/\ZB>@/A>G^__^`?@(Z#X0N"0``@#D`#X1@"```@P4``````4B) -XM#0````")Z$C'!0``````````Z;;^___'!0`````!````Z3[]__](BU0D:(!Z -XM`@!U/$B+3"0P#[8!A,!T,$B)R@^^3"1W#[[P.?$/A#4&``!(BU0D,.L+#[[` -XM.<$/A",&``!(@\(!#[8"A,!UZD$/M@:$P(A$)$8/A,\$```\/4V)]`^$Q`0` -XM`$F#Q`%!#[8$)(3`#X7=`0``2(M4)"A(BQI(A=L/A#L&``!-B>=$B>%(B=5$ -XM*?%-*?=%,>U(QT0D2`````#'1"10`````,=$)%3_____B4PD#.L12(/%($B+ -XM70!(A=MT24&#Q0%,B?I,B?9(B=_H`````(7`==U(B=_H`````#E$)`P/A&L# -XM``!(@WPD2``/A.\"``!(@\4@QT0D4`$```!(BUT`2(7;=;>+1"10A<`/A$@# -XM``!$BST`````187_#X4"`P``3(GWZ`````!)`<:#!0`````!QP4````````` -XM`$R)-0````!(@\1XN#\```!;74%<05U!7D%?PTB#P0''!0`````"````2(E, -XM)##I(?S__SG008G%B=,/A(L#``!!.=-T-$&)Q$ACPDB+5"0X1(G=3(T\PF9F -XMD&9FD#G=#X]3`0``0XU$'0!$B1T`````*=B)!0````!$.5PD0$B+3"0X26/# -XM2(T4P7\@'@! -XM`'381(L=`````$2)%0````#I]/O__TB#1"0P`<<%``````````#I=OO__T6% -XM]@^$>/S__T&-0P%,B0T`````B04`````2(/$>+@!````6UU!7$%=05Y!7\.0 -XM/#T/A0K^___I%O[__V9FD$0YTP^-!?S__T6)V$6)T44IT$$IV44YR'Y'187) -XM#XZ>`0``2(M4)#A(8\-%*05_# -XM2(EL)$A$B6PD5.G!_/__2(722(G6#Y3`Z7_[__]$BUPD0$2)%0````#I[?G_ -XM_T&)[8DM`````.ED^O__12G+Z3SZ__](BT0D.$B+3"1HO@````!(BST````` -XM2(L0,<#H`````$R+-0````#ITOS__TB);"1(1(EL)%1(@WPD2``/A%0"``"+ -XM1"1P@\`!B04`````08`\)``/A*L```!(BU0D2$2+:@A%A>T/A8L#``!$BR4` -XM````187D=$-(BTPD.$B82(M$P?B`>`$M#X07`P``2(M4)$@/O@B^`````$B+ -XM1"0X2(L]`````$R+`DB+$#'`Z`````!,BS4`````3(GWZ`````!(BU0D2$D! -XMQDR)-0````"+0AB)!0````"X/P```.F9^?__03G#BP4`````00]%PXD%```` -XM`.F6_/__38GTZ47[__](BTPD2(-Y"`$/A/$!``!,B??H`````$D!QDB#?"0@ -XM`$R)-0````!T"XM4)%1(BT0D((D02(M,)$A(BU$02(72#X3D`0``BT$8B0(Q -XMP.DG^?__#[9^`4"`_SL/A23Z__^`.0`/A(@#``"#!0`````!2(D-`````$R+ -XM-0````!,B34`````00^V!H3`#Y5$)$F^`````$B+$#'`Z`````#I&/W__T2+ -XM+0````#IUO?__XM<)!R%VP^%F0$``$2+'0````!%A=MT,8!\)'??__SE$)$!^,4B+5"0X2)A( -XMBP3"2(D%`````(M$)'"#P`*)!0````#IY?W__TB+5"1(BT(8Z4+W__^++0`` -XM``"%[70I2(M4)#A(F$B+/0````"^`````$B+3,+X2(L2,<#H`````$R+-0`` -XM``!,B??H`````$B+5"1(20'&2(M,)#!,B34`````BT(8B04`````,<"`.3H/ -XME<"-1(`ZZ=GV__](BT0D2$B+/0````"^`````$B+"$B+1"0X2(L0,<#H```` -XM`$R+-0````#IY_S__TB+1"0X2(L]`````$R)\;X`````2(L0,<#H`````.GH -XM_O__28U$)`%(B04`````Z0S]__^+#0`````[3"1`#X3'`0``2(M4)#A(8\%( -XMBP3"2(D%`````(U!`8D%`````(GHZ7WW__^`?"1W+0^$7/[__TB+3"0P#[8! -XMA,`/A$S^__\/ODPD1@^^\$B+5"0P.?%T&TB+5"0P2(/"`0^V`H3`#X0G_O__ -XM#[[`.<%UZDB%T@^%M/W__^D2_O__9F9FD&9FD#P]3(GU#X3Y_/__2(/%`0^V -XM10"$P`^51"1'#X3G_/__/#UUY^G>_/__38GE1(E\)%SI$OW__X`Y``^$C@`` -XM`(,%``````%(B0T`````B>A(QP4``````````.F(]?__.U0D0'1X2(M,)#A( -XM8\)(BP3!2(D%`````(U"`8D%`````.E?_/__1(M$)%A%A<`/A)8```"+/0`` -XM``"%_P^%Z0```$B+'0````!(B=_H`````(,%``````%,C30#N#\```!,B34` -XM````Z1KU__](QP4``````````.EP____1(L-`````$6%R70=2(M$)#A(BST` -XM````B>F^`````$B+$#'`Z`````")+0````!(BU0D,#'`@#HZ#Y7`C42`.NG% -XM]/__38GE1(E\)%Q-A>T/A8,```"X5P```$C'!0``````````Z9_T__^+!0`` -XM``"%P'0=2(M$)#A(BST`````B>F^`````$B+$#'`Z`````!(BU0D,#'`B2T` -XM````@#HZ#Y7`C42`.NF6]?__2&,%`````$B+5"0XO@````!(BST`````2(L, -XMPDB+$C'`Z`````#I[/[__X!\)$<`#X2;````08MU"(7V=4V+#0````"%R70? -XM2(M$)#A)BTT`O@````!(BST`````2(L0,<#H`````$B+'0````!(B=_H```` -XM`$R--`.X/P```$R)-0````#IT?/__TB-10%(B04`````3(GWZ`````!)`<9( -XM@WPD(`!,B34`````=`N+1"1<2(M,)"")`4F+51!(A=)T/D&+11B)`C'`Z8OS -XM__]!@WT(`76^BPT`````.4PD0'XG2(M4)#A(8\%(BP3"2(D%`````(U!`8D% -XM`````.N408M%&.E1\___BQ4`````A=)T(TB+5"0X2&/!2(L]`````+X````` -XM2(M,POA(BQ(QP.@`````2(L=`````$B)W^@`````3(TT`TR)-0````#I*O[_ -XM_V9F9I!F9F:09F:09F:013')13'`,"P$``!\N -XM`3\,`PXZ"SL%)PQ)$Q$!$@%`!@$3```@!0`##CH+.P5)$P(&```A'0$Q$U4& -XM6`M9!0$3```B!0`Q$P``(PL!508``"0T`#$3`@8``"4T`#$3```F"P%5!@$3 -XM```G-``#"#H+.P5)$P(&```H-``##CH+.P5)$P(&```I!0`Q$P(&```J'0$Q -XM$U4&6`M9!0``*R8``PY)$P``+"X!/PP##CH+.P4G#$D3$0$2`4`*`1,``"TT -XM``,..@L["TD3`@H``"XT``,..@L["TD3/PP\#```+S0``PXZ"SL+21,_#`(* -XM````N`@```(```````@!``````$````````````````````````````````" -XM`08``````@$(``````("!0`````"`@<``````P0%:6YT``($!P`````$```` -XM``(Y7@````((!0`````""`<``````@@$``````($!``````%"`<&"`0````` -XM`S13````!X`#8ZD````(``````-DJ0````@``````V53``````FY````N0`` -XM``IZ````?P`"`08`````!``````#9HH````$``````0O?P````L`````$`1& -XM_P````P`````!$?_`````B,`#``````$2$4````"(P@`#0@P````#@`````P -XM`01G=0(```]?<``$:/\````"(P`/7W(`!&E%`````B,(#U]W``1J10````(C -XM#`P`````!&LW`````B,0#``````$;#<````"(Q(/7V)F``1MU@````(C&`P` -XM````!&Y%`````B,H#``````$<7T````"(S`,``````1RA0(```(C.`P````` -XM!'.K`@```B-`#``````$=,L"```"(T@,``````1U]@(```(C4`]?=6(`!'C6 -XM`````B-8#U]U<``$>?\````"(V@/7W5R``1Z10````(C<`P`````!'W\`@`` -XM`B-T#``````$?@P#```"(W`P`````!(1%`````R.( -XM`0P`````!(7+`````R.0`0P`````!(@````(`"3`````<`P``"GH``````!,``````0T('`,` -XM`!,``````0T(*`,```0`````!(P%`0``"P`````@!5*$`P``#``````%5.L" -XM```"(P`,``````5:10````(C"`P`````!5N$`P```B,0#W9A;``%7$4````" -XM(Q@`#0A%````%`0!MZ4#```5```````5``````$5``````(`%@`````!U@&E -XM`@```L"```! -XM!`0``!D``````8`!10```!D``````8`!!`0``!D``````8`!ZP(````-"`H$ -XM```2I0(``!H``````2T!`0&.!```&0`````!+`&.!```&P`````!+@%%```` -XM&P`````!+P%%````''1O<``!,`%%````''1E;0`!,0&E`@``'74$```<;&5N -XM``%3`44````<:0`!5`%%`````!X<;&5N``%D`44````<:0`!90%%```````- -XM"*4"```?`0`````!^0$!10``````````````````````````````;`<``"`` -XM`````?!``` -XM)&H$``````````````T(<@<``"L`````/P,``"P!``````&Y`P%%```````` -XM``````````````````)W"-$'```@``````&X`T4`````````(``````!N`,$ -XM!````````"```````;@#ZP(`````````+0`````!C*4"```)`P`````````` -XM+0`````!N8H#```)`P``````````+0`````!O*4"```)`P``````````+0`` -XM```!]$4````)`P``````````+0`````!]44````)`P``````````+@`````$ -XMDD<(```!`0T(-`,``"\``````6ZE`@```0D#```````````O``````%]10`` -XM``$)`P``````````+P`````!D44````!"0,``````````"\``````9=%```` -XM`0D#```````````O`````` ````$)`P```````````(D#```"`+`````! -XM`?L."@`!`0$!`````2]U7!E7!E$#"PB;`Q,(Q0/K?`(_`0.T=SQG"K0P.A!-.Y -XM*64#$.\#^0"-2;D##YN2;G0#%2L#SWSO`^T`X0/K?*D#E0/A`^U\50.3`ZD# -XM[7QQJT,#H0-Q`BP4"#PV/#8(UF#^"!\#"0@=`W2W`PQ'`W1_`Q>-N?*J&/`^,"_0.=?4<#XP)5`\-]MP/6?>^/"!8#$8T# -XM<0BW.C8\.C4#$0@=`V]5`Q/].C8\.C7-`UY_CP@6`Q&-`W$(<3HV/#HU`Q$( -XM'0-O50,3"#DZ-CPZ-ZD#A`3O`_Y[50." -XM!+<#@'Q50ZL#@@1Q`]@`"$<#$`(I`0/'`,60<'8#BW\('0,28P,?"._5UN)P -XM2%0#/K<#CG_ON@BZ`]$`8P-?"%6!`RR-`QT(1YX(O'!D`ZE_X0,)`BL!K8.< -XM"-<#>`(D`0,:J:IBF5D(&]P=&EO;B!@)6,EQ^```````````````` -XM`````&X!````````O`$````````!`%-M!0```````)L%`````````0!3FP4` -XM``````"G!0````````$`4-$%````````W@4````````!`%/>!0```````.T% -XM`````````0!0`P8````````+!@````````$`4S$'````````.0<````````! -XM`%.0"0```````*$)`````````0!3`````````````````````$\!```````` -XM=0$````````!`%9U`0```````)4!`````````0!;E0$```````"]`0`````` -XM``$`5KT!````````Q@$````````!`%MM!0```````*<%`````````0!;IP4` -XM``````"V!0````````$`4-$%````````"P8````````!`%LC!P```````#$' -XM`````````0!6,0<````````Y!P````````$`6Y`)````````H0D````````! -XM`%8`````````````````````=0$```````#&`0````````$`46T%```````` -XMF`4````````!`%&S!0````````L&`````````0!1,0<````````Y!P`````` -XM``$`49`)````````H0D````````!`%$`````````````````````=0$````` -XM``#&`0````````$`56T%````````H`4````````!`%71!0```````.`%```` -XM`````0!5X`4```````#P!0````````$`5?`%````````"P8````````!`%4Q -XM!P```````#D'`````````0!5D`D```````"A"0````````$`50`````````` -XM``````````!U`0```````,8!`````````0!5;04```````"@!0````````$` -XM5:`%````````N04````````!`%6Y!0```````.`%`````````0!5`P8````` -XM```+!@````````$`53$'````````.0<````````!`%60"0```````*$)```` -XM`````0!5`````````````````````+ -XM"`````````$`5CX(````````D`@````````!`%9X"0```````(L)```````` -XM`0!6SPD```````!["@````````$`5MX*````````00L````````!`%9T"P`` -XM`````,D+`````````0!6`````````````````````+"``````` -XM``,`D:1_/@@```````!G"0````````,`D:1_>`D```````"0"0````````,` -XMD:1_H0D```````##"0````````,`D:1_SPD```````"R#@````````,`D:1_ -XM`````````````````````+`D```````"0"0`` -XM``````$`7:$)````````PPD````````!`%W/"0```````-X*`````````0!= -XM#0L````````P"P````````$`74$+````````^0L````````!`%T&#``````` -XM`%8,`````````0!=G0P```````#R#`````````$`70,-````````6PT````` -XM```!`%T`````````````````````MP$```````#&`0````````$`4G@)```` -XM````@`D````````!`%+;"0````````X*`````````0!2&`H````````^"@`` -XM``````$`4@T+````````'`L````````!`%*4"P```````,D+`````````0!2 -XM`````````````````````!`!````````=0$````````!`%R5`0```````+\! -XM`````````0!08````````!`%5Y!@`` -XM`````(D&`````````0!5B08```````"D!@````````$`51('````````(P<` -XM```````!`%5G"0```````&\)`````````0!5D`D```````"A"0````````$` -XM5<,)````````SPD````````!`%4`````````````````````$`$````````H -XM`0````````$`5:4!````````Q@$````````!`%6J!````````!P%```````` -XM`0!5"P8````````[!@````````$`53L&````````3P8````````!`%5/!@`` -XM`````'D&`````````0!5G`8```````"D!@````````$`51('````````(P<` -XM```````!`%5G"0```````&\)`````````0!5D`D```````"A"0````````$` -XM5<,)````````SPD````````!`%4`````````````````````P`X```````#- -XM#@````````$`50````````````````````#`#@```````,T.`````````0!4 -XM`````````````````````,`.````````S0X````````!`%$````````````` -XM````````F5D```````L`````@`````` -XM"`````````````````#-#@````````````````````````````!.```````` -XM`*<`````````'`4````````Q!0```````&X$````````A@0````````````` -XM````````````````8P$```````!K`0```````#$'````````.0<```````!P -XM!0````````L&````````<0$```````"5`0`````````````````````````` -XM``!C`0```````&L!````````,0<````````Y!P```````'`%````````"P8` -XM``````!Q`0```````)4!`````````````````````````````),%```````` -XML`4```````#G!0````````L&````````T04```````#6!0`````````````` -XM``````````````!C`0```````&L!````````,0<````````Y!P```````-8% -XM````````YP4```````"P!0```````-$%````````B@4```````"3!0`````` -XM`'$!````````=0$`````````````````````````````L@$```````"W`0`` -XM`````-`+````````L@X```````!!"P```````'0+````````H0D```````#/ -XM"0```````'@)````````D`D```````"0"````````&<)````````!`<````` -XM```7!P```````.4&````````Z@8```````"D!@```````.$&````````/@(` -XM```````!`P`````````````````````````````^`@```````$,"```````` -XM!`<````````7!P```````%D"````````D0(```````!2`@```````%4"```` -XM`````````````````````````+X"````````P@(```````!;#0```````+(. -XM````````K0P````````8#0```````"\,````````G0P```````#0"P`````` -XM``8,````````G@@```````!G"0`````````````````````````````;`P`` -XM`````"H#````````00,```````!7`P```````"\#````````.@,````````` -XM````````````````````5P,```````!:!````````'0+````````T`L````` -XM``#/"0```````$$+````````-@@```````"0"````````#D'````````'@@` -XM``````#U!@````````0'````````8`4```````!P!0```````%X$```````` -XM8P0`````````````````````````````?PL```````"/"P```````*4+```` -XM````NPL```````"4"P```````*`+`````````````````````````````)L$ -XM````````HP0```````!G"0```````&\)````````"P8```````"D!@`````` -XM`*8$````````S`0`````````````````````````````FP0```````"C!``` -XM`````&<)````````;PD````````+!@```````*0&````````I@0```````#, -XM!``````````````````````````````N!@```````$8&````````@`8````` -XM``"D!@```````&<&````````;`8`````````````````````````````FP0` -XM``````"C!````````&<)````````;PD```````!L!@```````(`&```````` -XM1@8```````!G!@```````"4&````````+@8```````"F!````````+`$```` -XM`````````````````````````&]P=&EN9`!O<'1A`!E -XM>&-H86YG90!S:&]R="!I;G0`7V]F9G-E=`!?9FQA9W,`7W=R:71E`'!T:')E -XM860`7U]S=&1E0!?7VUB`!N86UE96YD -XM`&UY7VEN9&5X`'!T:')E861?;75T97@`7W-E96L`<&9O=6YD`%]F:6QE`'!O -XM6UT86(`+G-T5]C -XM;W)R96-T`&]R9&5R:6YG`%]G971O<'1?:6YT97)N86P`;W!T:6YD`&]P=&%R -XM9P!?7V=E=&]P=%]I;FET:6%L:7IE9`!G971E;G8`````_/________\[!`````````(````=````_/________]$!``````` -XM``(````8````^_________]+!`````````(````?````^/________]6!``` -XM``````(````$````#`````````!T!`````````(````$````$`````````#` -XM!`````````(````$````*`````````#(!`````````(````$````)``````` -XM``#Q!`````````(````8````_/________\,!0````````(````8````_/__ -XM______\3!0````````(````$````*``````````D!0````````(````$```` -XM$`````````!!!0````````(````9````_/________]'!0````````(````8 -XM````_/________^G!@````````(````>````_/________^S!@````````(` -XM```$````&P````````#&!@````````(````@````_/_________-!@`````` -XM``H````(````,@````````#7!@````````(````A````_/_________=!@`` -XM``````(````?````_/________\:!P````````(````$````*``````````H -XM!P````````(````$````)`````````!$!P````````H````(````$P`````` -XM``!+!P````````(````@````_/________]5!P````````(````A````_/__ -XM______]````_/_________0!P````````H````) -XM````,`````````# -XM"0````````(````>````_/________\""@````````(````@````_/______ -XM__\'"@````````H````)````J``````````4"@````````(````A````_/__ -XM______\:"@````````(````8````^_________\G"@````````(````$```` -XM"``````````K"@````````L````(````,0`````````Q"@````````(````? -XM````^/________]2"@````````(````9````_/________]?"@````````(` -XM```8````_/________]W"@````````(````>````_/________^)"@`````` -XM``(````@````_/________^."@````````H````)````8`````````"="@`` -XM``````(````A````_/________^D"@````````(````$````#`````````"L -XM"@````````(````=````_/_________`"@````````(````$````#``````` -XM``#)"@````````(````?````_/_________F"@````````(````@````_/__ -XM_______K"@````````H````)``````````````#]"@````````(````A```` -XM_/________\$"P````````(````$````#``````````5"P````````(````@ -XM````_/________\="P````````H````)````B``````````G"P````````(` -XM```A````_/________\X"P````````(````9````_/________]#"P`````` -XM``(````8````_/________]@"P````````(````9````_/________]I"P`` -XM``````(````8````_/________\1#`````````(````8````^_________\9 -XM#`````````(````9````_/________\B#`````````(````$````"``````` -XM``!$#`````````(````9````_/________]-#`````````(````8````_/__ -XM______]F#`````````(````>````_/________]U#`````````(````$```` -XM#`````````!]#`````````(````=````_/________^##`````````(````8 -XM````^_________^4#`````````(````$````#`````````"@#`````````(` -XM```9````^/________^P#`````````(````>````_/_________!#``````` -XM``(````@````_/_________(#`````````H````)````R`````````#2#``` -XM``````(````A````_/_________8#`````````(````?````_/________\+ -XM#0````````(````$````"``````````:#0````````(````>````_/______ -XM__\J#0````````(````@````_/________\Q#0````````H````)````R``` -XM```````[#0````````(````A````_/________](#0````````(````?```` -XM_/________]>#0````````(````8````_/________]H#0````````H````) -XM````\`````````!O#0````````(````@````_/________]]#0````````(` -XM```A````_/________^;#0````````(````>````_/________^M#0`````` -XM``H````)````&`$```````"T#0````````(````@````_/________^^#0`` -XM``````(````A````_/_________%#0````````(````$````#`````````#- -XM#0````````(````=````_/_________=#0````````(````$````#``````` -XM``#M#0````````(````9````_/_________U#0````````(````=````_/__ -XM______\%#@````````(````$````#``````````U#@````````(````8```` -XM_/________].#@````````(````9````_/________]7#@````````(````8 -XM````_/________]H#@````````(````>````_/________][#@````````(` -XM```@````_/________^`#@````````H````)````8`````````"/#@`````` -XM``(````A````_/________^6#@````````(````$````#`````````">#@`` -XM``````(````=````_/________^I#@````````(````$````#`````````#) -XM#@````````(````7````_/________\&``````````H````%```````````` -XM```,``````````H````5````&P$````````1``````````H````5````@0`` -XM```````5``````````$````"```````````````=``````````$````"```` -XMS0X````````E``````````H````'```````````````L``````````H````5 -XM````Q`$````````S``````````H````5````CP$````````Z``````````H` -XM```5````3P````````!!``````````H````5````$`(```````!/```````` -XM``H````5````ZP$```````!4``````````H````5````1`$```````!A```` -XM``````H````5````.P$```````!H``````````H````5````B`(```````!O -XM``````````H````5````F@(```````!V``````````H````5````_P`````` -XM``"```````````H````5````H0(```````"3``````````H````5````?0(` -XM``````">``````````H````5````X0$```````"\``````````H````5```` -XM0P(```````#!``````````H````5````%@````````#,``````````H````5 -XM````90(```````#7``````````H````5````-0````````#C``````````H` -XM```5````-`(```````#Q``````````H````5````'`,````````&`0`````` -XM``H````5````(@,````````Z`0````````H````5````80````````!(`0`` -XM``````H````5````X@(```````!D`0````````H````5````.@(```````!R -XM`0````````H````5````+`(```````"``0````````H````5````?@$````` -XM``".`0````````H````5````L`$```````"<`0````````H````5````U0(` -XM``````"J`0````````H````5````:`````````#B`0````````H````5```` -XM%@,```````#P`0````````H````5````P@`````````,`@````````H````5 -XM````8P$````````;`@````````H````5````60`````````J`@````````H` -XM```5````/``````````Y`@````````H````5````(@````````!(`@`````` -XM``H````5````]0````````!7`@````````H````5````"0,```````!F`@`` -XM``````H````5````!0$````````=`P````````H````5````QP(````````I -XM`P````````H````5````;P`````````U`P````````H````5````!`,````` -XM``!``P````````H````5````T`````````!,`P````````H````5````B@$` -XM``````!:`P````````H````5````$P$```````!H`P````````H````5```` -XM^`(```````"3`P````````H````5````YP````````"9`P````````H````5 -XM````#@````````"?`P````````H````5````50(```````"F`P````````H` -XM```5````O@(```````#.`P````````H````5````G0$```````#@`P`````` -XM``H````5````M@$```````#L`P````````H````5````A0$```````#X`P`` -XM``````H````5````^`$````````0!`````````H````5````1@`````````> -XM!`````````H````5````A0$````````J!`````````H````5````X``````` -XM```V!`````````H````5````;`(```````"6!`````````H````5````T`$` -XM``````"B!`````````$````"``````````````"J!`````````$````"```` -XML@X```````"R!`````````H````1``````````````"[!`````````H````5 -XM````M@$```````#&!`````````H````1````L0````````#+!`````````H` -XM```5````A0$```````#6!`````````H````1````Z0````````#;!``````` -XM``H````5````^`$```````#F!`````````H````1````(0$```````#K!``` -XM``````H````5````(P(```````#V!`````````H````1````<0(```````#[ -XM!`````````H````5````R``````````&!0````````H````1````J0(````` -XM```+!0````````H````5````!0````````H````1````S@@```````#I!0````````H````4```` -XMD`(```````#N!0````````H````5````M@(```````#Y!0````````H````1 -XM````*@D````````'!@````````H````1````OPD````````,!@````````H` -XM```5````VP(````````7!@````````H````1````00H````````!@````````H````4``````,` -XM``````!N!@````````H````1````=`P```````!Y!@````````H````4```` -XM0`,```````""!@````````H````5````M@(```````"-!@````````H````1 -XM````+PT```````";!@````````H````1````]`X```````"@!@````````H` -XM```5````VP(```````"K!@````````H````1````KP\```````"P!@`````` -XM``H````5````O`````````"\!@````````H````5````;`$```````#'!@`` -XM``````H````1````?!````````#,!@````````H````5````NP$```````#7 -XM!@````````H````1````21$```````#!P````````$````$````$`````````#G!P`````` -XM``H````5````+`````````#S!P````````$````$````&`````````#\!P`` -XM``````H````5````Z`(````````("`````````$````$````(``````````1 -XM"`````````H````5````2`(````````="`````````$````$````*``````` -XM```F"`````````H````5````<@$````````R"`````````$````$````+``` -XM```````["`````````H````5````=P````````!."`````````H````5```` -XM!P````````!;"`````````$````9``````````````!D"`````````H````5 -XM``````````````!Q"`````````$````8``````````````!Z"`````````H` -XM```5`````@(```````"'"`````````$````>``````````````"0"``````` -XM``H````5````_0(```````"="`````````$````?``````````````"F"``` -XM``````H````5````3@$```````"S"`````````$````:``````````````"] -XM``````````$````"```````````````<``````````H````/```````````` -XM```@``````````$````"``````````````!<``````````H````/```````` -XM``````!@``````````$````"````P`X````````@``````````H````"```` -XM``````````!8``````````H````"````P`X````````&``````````H````& -XM```````````````&``````````H````&```````````````0``````````$` -X.```"```````````````` -X` -Xend -e91f2be53ccef7c31a70c80e46567ff3 -echo x - ./electric.o.uu -sed 's/^X//' >./electric.o.uu << '4c9616b2b1efe66bd65b3a3736cfd629' -Xbegin 644 ./electric.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````.`````` -XM`````````$```````$``"P`(```6`````@`0`````0'[#@H``0$!`0````$` -XM``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT -XM86(`+G-T'0`+F1A=&$`+F)S`0````````,```` -XM`````````````````0`````````````````````````````````````````` -XM``````````$````$`/'_```````````````````````````#``$````````` -XM```````````````````#``(````````````````````````````#``,````` -XM```````````````````````#``0````````````````````````````#``4` -XM```````````````````````````#``8````````````````````````````# -X?``<```````````````````````!E;&5C=')I8RYC```` -X` -Xend -4c9616b2b1efe66bd65b3a3736cfd629 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/arscript-3/out/arscript-3.out.shar b/contrib/elftoolchain/test/ar/tc/arscript-3/out/arscript-3.out.shar deleted file mode 100644 index a070700f..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-3/out/arscript-3.out.shar +++ /dev/null @@ -1,7940 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./glob -# ./glob/glob.o.uu -# ./glob/fnmatch.o.uu -# ./kmkbuiltin -# ./kmkbuiltin/kbuild_protection.o.uu -# ./kmkbuiltin/err.o.uu -# ./kmkbuiltin/setmode.o.uu -# ./kmkbuiltin/strmode.o.uu -# ./kmkbuiltin/kbuild_version.o.uu -# ./kmkmissing.a.uu -# ./getopt1.o.uu -# ./getopt.o.uu -# ./kmkmissing.a.ar-script.gnu.uu -# ./electric.o.uu -# ./kmkmissing.a.ar-script.bsd.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo c - ./glob -mkdir -p ./glob > /dev/null 2>&1 -echo x - ./glob/glob.o.uu -sed 's/^X//' >./glob/glob.o.uu << '08f54ce57ae16ee49e80e07b25b53cad' -Xbegin 644 ./glob.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````*!V```` -XM`````````$```````$``'``9``^V!X3`=":%]G5'2(U7`3')/%MT,W\:/"IT -XM)SP_9F:0="`/M@)(@\(!A,!UY#'`D,,\7'3M/%UUZ87)9F:09I!TX+@!```` -XMPP^V`KD!````Z],QTCQ;=!M_)SPJ9F9FD'3@/#]TW$B#QP$/M@>$P'7CZ[I( -XM@\M%9F9FD&9FD$R)XDR) -XM_DB)Q^@`````0L8$(R])BW3M`$F-?!P!3(GRZ`````!)BWSM`.@`````28E< -XM[0!(@\4!2#LL)'1428M\[0#H`````$F-?`0"3(UP`>@`````2(7`2(G#=:)( -XMA>UT&TF-7.T`2(M[^$B#[0%(@^L(Z`````!(A>UUZDB#Q`BX`0```%M=05Q! -XM74%>05_#2(/$"#'`6UU!7$%=05Y!7\-%,>1!@#\O00^5Q.DW____9F9FD&9F -XMD&9FD&9FD$B+/TB+-C'`2#GW=`=(A?^P`74"\\-(A?:X_____W3TZ0````!F -XM9F:09F9FD&9FD%5(B>5!5T%628GV055!5$F)S%.)TX/C0$B![+@```!(B;TP -XM____B94L____3(F%(/___P^V!X3`=#&%VP^$604``$B)^C')/#\/A-$```"0 -XM#X^R````/"H/A,(```!FD$B#P@$/M@*$P'7<]X4L____$`@```^$?P0``(.- -XM+/___Q!(QX4X____`````/:%+/___Q!(QX5`____``````^$V0(``$B+O3#_ -XM___H`````$B#["!(C7@!2(G#3(U\)`])@^?P2<<'`````.@`````2(7`28E' -XM"`^$&`,``$B+M3#___](B=I(B%0/___P$```#I -XMBP$``#Q;#X3#`@``/%T/A4C___^%R0^$0/____>%+/___P`"```/A:T"``!, -XMB??H`````$B)A3C___](@[TX____``^$<@,```^VA2S___](QX5`____```` -XM`(/@@#P!&<"#X`2#^P%%&?:!C2S___\``0``13'_BYTL____0??608/F`D$) -XMQH'C``(``(F=3/___XN53/___X72#X3*````2(N5(/___TB+O3C_____4BA( -XMA<`/A,4```!,C6`(2(N],/___T2)\DR)YN@`````A-,C6PD -XM#TF#Y?"+`TB#PP2-D/_^_O[WT"'"@>*`@("`=.B)T,'H$/?"@(````]$T$B- -XM0P)(#T38`-)(@]L#3"GC2(U[`>@`````2(7`2(G'28E%"`^$S@$``$B)VDR) -XMYN@`````28M%",8$&`"+E4S___](@X5`____`4V)?0!-B>^%T@^%//___V9F -XMD&9FD$B+O3C____H`````$B%P`^%.____TB#O4#___\`#X3Z_?__2(N=(/__ -XM_TB+`XN=+/___X/C"`^$X@$``$B+C2#___](BU$02(MY"$B+C4#___](C40! -XM`4@!T,'@`TB%_P^$Q@$``(G&Z`````!(B<9(BX4@____2(7V2(EP"`^$M`$` -XM`(7;#X1P`0``2(N-(/___TB+G2#___](BQ%(.U,02(G1;^__](B[TX____2(N-(/__ -XM__]1(.N72(N-(/___S'2Z1O^__^)Q^@`````Z37^__^+E2S___^!X@`"``") -XME4S____I2?___^@`````@S@4#X2U^___387D=!'H`````$R)]XLP0?_4A_H`````$'&1!T` -XM+TB+M3#___]*C7PK`4F-5"0!Z`````#WA2S___\``@``="9(BY4@____2(VU -XM4/___TR)[_]20(7`#Y3`A,`/A`+[___I]OK__TB-M5#___],B>_H`````(7` -XM#Y3`Z]U(BY4P____,"%R69F9I!TV.DY^___2(/"`8`Z`&:0 -XM=5!5TF)ST%6055)B?U!5%-(@>R(`0``2(7_ -XMB;5P_O__2(F5:/[__W0-2(7)=`B!Y@"!__]T*F9F9I!F9I#H`````$&\____ -XM_\<`%@```$B-9=A$B>!;05Q!74%>05_)P_>%P`` -XM`.@`````2(7`28G$#X0G`0``2(FE>/[__TR)[TR)X^@`````2(/`'4PIZTR) -XM[DB#X/!(B=I(*<1,C70D#TF#YO!,B?=)C1P>Z`````!)C40D`4B)G9#^__\Q -XMTDB)A?#^__]!#[9$)`%(BYWP_O__A=(/A.(#``"$P'1H/'UU"H/J`69F9I!F -XM9I!(@\,!#[8#A,!T3SQ]=?&%TG7C2(7;2(G:=#\\?69FD`^$10T``$B#P@$Q -XMR0^V`H7)#X1<"```A,!T'SQ]=0.#Z0%(@\(!#[8"A,!T#3Q]=?&%R77J2(72 -XM=<&!I7#^____^___2(N5:/[__TR)^8NU/[_ -XM_^G&_O__2&.%X/[__T4QY$DY!W7E]X5P_O__$`@``$&T`W362(NE>/[__[XO -XM````3(GOZ`````!(AY-*>Y)C48?3(GR2(/@\$@IQ$B-7"0/2(/C\$B)WTF)W>@`````0L8$ -XM,P!(@X6`_O__`4B+A8#^__^`.``/A9T!``!)@_X!#X:3`0``B[5P_O__2(N5 -XM:/[__TR)^4B)WX/.`N@`````A,`4``` -XM]H5P_O__('4/2<<'`````$G'1P@`````28L'A=M(B86(_O__=`M!@'T`?@^$ -XMFP0``$B#O8#^__\`#X1S`@``00^V10"+E7#^__^#XD"$P'0NA=(/A$D-``!, -XMB>HQR3P_#X3W````#X_5````/"H/A.D```!(@\(!#[8"A,!UWTB+C6C^__^+ -XME7#^__]-B?A(B[V`_O__3(GNZ,_V__^%P$&)Q`^%%?W__TV%]@^$?P,``/:% -XM](*<+H -XM6/7__X7`#X1$`P``28M7"$B%T@^$'0D``$F#/P!T'3';2(L\VDB%_W0)Z``` -XM``!)BU<(2(/#`4DY'W?E2(G70;P!````Z`````#ICOS__XN=$2+ -XMM7#^__]%,>1!@^;.08/.($B+18A(BXUH_O__38GX2(N]@/[__T2)\DV++TJ+ -XM-.#HI/7__X/X`XG#="Z%P`^%+00``$F+%TB+18A)8_5(*?)(P>8#20-W"$J+ -XM/.#H1_3__X7`#X6*!```2(M=@$F#Q`%,.>-WFH&-P^4PDB#PP$/M@/IZ_O__[D!````Z0+^__^+G7#^ -XM__^!XP!0``!T'4&`?0!^=19,B>_H`````$F)QNEI_?__9F:09F:03(FM@/[_ -XM_T4Q]D&]`````.E._?__]H5P_O__$`^$O@```(N= -XM,=M(BSS82(7_=`GH`````$B+18A(@\,!2#E=@'?D2(G'Z`````#VA7#^__\" -XM#X1R`0``2(N%B/[__TDY!P^&8@$``$2+M7#^__](B<-)B<1(P>,#08'F``(` -XM`.M$28M'"$B-M0#___](BSP#0?]70(7`#Y3`A,!T%P^WA0C___\E`/```#T` -XM0```#X23`@``28/$`4B#PPA-.2_H`````$B%P$B)A:C^__]T.4B)PTB+M;#^__],*>M(C4,>2(G: -XM2(/@\$@IQ$R-9"0/28/D\$R)Y^@`````0<9$'/\`3(FEL/[__TB+O;#^___H -XM`````$B%P`^%"`4``/>%,=M(BSS82(7_=`GH`````$B+18A(@\,!2#E=@'?D2(G' -XM0;P!````Z`````#I#OC__T4QY/:%1(*?Y(P><#20-_ -XM".@`````Z;GW__](@WV(`'0V2(-]@``/A#L$``!(BT6(13'D2HL\X$B%_W0) -XMZ`````!(BT6(28/$`4PY98!WY$B)Q^@`````28M7"$&)W$B%T@^$;/?__TF# -XM/P!T($4QY&:02HL\XDB%_W0)Z`````!)BU<(28/$`4TY)W?E2(G708G@````` -XM2(M%B$B#PP%(.5V`=^1(B`#2(7_#X1W`@``B<;H`````$B%P$F)1P@/A(G]__]%A>UT+4F+#TDY -XM3Q!V)$B--,T`````2(G"2(/!`4C'!!8`````2(/&"$DY3Q!)B0]WYTB#?8`` -XM#X2C^___BX5P_O__13'M)0`"``")A=S^___K,TB-M0#___],B>=!_U=`A%H/[__P````!(BX6P -XM_O__3(NMH/[__X`X``^$H/;__TR)[^@`````28G$28U$!AY,B>Y,B>)(@^#P -XM2"G$2(U<)`](@^/P2(G?28G=Z`````!(B[6P_O__2HT\(TR)\N@`````Z5?V -XM__])BU<0Z?#X__])BQ=F9F:09F:0Z4'Y__](C;4`____3(GOZ`````"%P`^$ -XMFOG__^DD^/__28M7$.F<_?__0;P!````Z9SS__^)Q^@`````9F9FD.G`^/__ -XMBC^__])C3P$Z`````!(BY5H_O__B[7\ -XM_O__3(GY3(GWZ`````"%P$&)Q'1.@_@#=$F+M73^__^%]@^%2?+__TF#?P@` -XM#X0^\O__28,_``^$Q@```$F+5P@QVTB+/-I(A?]T">@`````28M7"$B#PP%) -XM.1]WY>FD````@#M]#X01\O__#[93`4R-0P$QP$R)P87`=#6$TG14@/I]=0.# -XMZ`%(@\$!#[81A-)T08#Z?77PAND,=NY`````+KL`0`` -XMO@````"_`````$R)A5C^___H`````$R+A5C^___IO?[__TF+5PA(B=?H```` -XM`.E=\?__28M7".F%\___2(M%B)#I]?W__TR)ZC')/%MT*&:0?RL\*@^$IO/_ -XM_SP_9F9FD`^$FO/__TB#P@$/M@*$P'79Z:SR__^Y`0```.OI/%R0=!,\777@ -XMA\````"@`````$"`$D`0``"P`````0!2X!`@``#``` -XM```%+\$!```"(P`,``````4PB@````(C"``+`````'@&@_P"```,``````:$ -XM+P$```(C``P`````!H6*`0```B,$#``````&AI4!```"(P@,``````:'H`$` -XM``(C"@P`````!HC,`0```B,,#``````&B7\!```"(Q`,``````:*+P$```(C -XM%`P`````!HS8`0```B,8#``````&C=@!```"(R@,``````:.V`$```(C.`P` -XM````!I>K`0```B-(#``````&F&D!```"(U`,``````:97@$```(C6`P````` -XM!IIT`0```B-<#``````&FVT````"(V`,``````:<6P````(C9`P`````!I[8 -XM`0```B-H``L`````4`=THP,```P`````!W5-`0```B,`#``````'=DT!```" -XM(P@,``````=WS`$```(C$`P`````!WA_`0```B,4#``````'><$!```"(Q@, -XM``````=Z30$```(C(`P`````!WM-`0```B,H#``````'?$T!```"(S`,```` -XM``=]30$```(C.`P`````!W[!`0```B-`#``````'?V8````"(T@`#0`````( -XM`0@R]P,```P`````"#-M`````B,`#``````(-$D````"(P0,``````@U,``` -XM``(C!@P`````"#8P`````B,'#``````(.?<#```"(P@`#CH!```'!```#\<` -XM``#_``L`````4`E"H`0```P`````"4-F`````B,`#``````)1(H````"(P@, -XM``````E%B@````(C$`P`````"49-`0```B,8#``````)1V8````"(R`,```` -XM``E(B@````(C*`P`````"4F*`````B,P#``````)2F8````"(S@,``````E+ -XM00$```(C0`P`````"4RF!````B-(``@``````0<(H`0```((!0`````02`IY -XM.@4```P`````"GJV`0```B,`#``````*>SH%```"(P@,``````I\M@$```(C -XM$`P`````"GUF`````B,8#``````*@4P%```"(R`,``````J":`4```(C*`P` -XM````"H-^!0```B,P#``````*A)\%```"(S@,``````J(GP4```(C0``'"$T! -XM```1`4P%```2R@`````'"$`%```3`6(%``!B!0``$LH`````!PBC`P``!PA2 -XM!0``$P'*````?@4``!)3`0````<(;@4``!,!9@```)D%```24P$``!*9!0`` -XM``<(`0(```<(A`4```,`````"HJS!```%`$``````98$`68````!\@4``!4` -XM`````90$4P$``!4``````94$9@```!9P``&7!%,!```7``````&8!&8````` -XM&+`%`````````````````````````G<(,08``!G#!0```````!K/!0```50; -XMVP4````````;Y04`````````'`$``````2L$`0%9!@``%0`````!*@19!@`` -XM'19I``$N!+8!``````<(I04``!XQ!@````````````````````````````"5 -XM!@``&4`&````````'P`````;308``````````"```````5,$`68````````` -XM`````````````````````"T'```A``````%0!%,!````````(0`````!400Z -XM!0```````")N``%2!+8!````````(VD``50$M@$````````D``````%5!+8! -XM````````'P`````D``````%R!+8!````````(VYE=P`!$$M@$``"0``````>($M@$````````D -XM``````'C!$T!`````````"\`````1@D``"-L96X``5`%M@$`````````,0`` -XM``````````````````"^"0``)``````!%P5F`````````#(````````````` -XM````````)``````!(@53`0```````"-L96X``2,%M@$````````C9``!)`5B -XM!0```````!\`````%FYE=P`!.`4/"@``````+)@'`````````6$%W0D``!FQ -XM!P```````"VH!P```!\`````)``````!@P5F````````````$P%F````"0H` -XM`!)3`0``$F8`````!PCT"0``!PA`"```,P`````!/0$!4P$```-+"@``%0`` -XM```!/`%3`0``%P`````!/@%X````%F-P``$_`5,!````-`$``````6\!`68` -XM`````````````````````````````*D1```A``````%K`5,!````````(0`` -XM```!;`%F`````````"$``````6T!"0H````````A``````%N`5D&```````` -XM)``````!<`%3`0```````"0``````7$!4P$````````D``````%R`;8!```` -XM````)``````!@\``!FQ!P`` -XM`````"VH!P```#8Q!@````````````````````````&L`RU\!@``,@`````` -XM```````````````;308````````````V,08````````````````````````! -XMY0,M?`8``#(`````````````````````&TT&````````````+P`````($``` -XM)``````!&01F```````````O`````#P0```P0"N!$`````````,0````````````````````"S$```)``````!U@)- -XM`0`````````R`````````````````````"0``````0<#30$````````D```` -XM``$(`[8!````````)``````!"0.V`0``````````+P````"4$0``)``````! -XM;0)3`0```````#$`````````````````````11$``"0``````;X"30$````` -XM```D``````&_`K8!`````````#(`````````````````````%P`````!?@)F -XM````)``````!?P)-`0```````#(`````````````````````(W```8\"N!$` -XM```````````Y`````,X1```!"0,````````````..@$``+@1```ZQP`````' -XM"/P"```..@$``,X1```/QP````0`";X1````704```(`[P````$!^PX*``$! -XM`0$````!+W5S7,`+W5S$#&RL#4JD# -XM8`BW.CMS=BB=`_T`[P,1""L#;U5Q`U<(.0@Z`Q`(?P-O1P,]<0,<[P.7`7$# -XM1*D(<[E)0SN.-`Q/3`^EV`CH!CP.5"7&A -XM`WHY36:``B00"(Q(."Y6J#JH6<.!/%9^+"WP"!-7?2T#$E4#BG[A`^X`FP/, -XM``A_`RX('7*>N%0A_ -XM")0#>3G,"%<#K`7]`]AZ"!WQG#@Z`PO%`P\Y`W$Y`P^-`W%C`P]'`W$Y`P^W -XM.D9;4'8#I'\(50,,?TE(G$,#T0#A`Q0Y`VPY`PLKJP.6?XT##'])2#I#`]\` -XMX5L#P@`")0&T=#98"%L#"<4#=SD#"7$#&6,#"L4#''$#9#D#&#E+-?,\-E98 -XM@0,)"(T(G*H#3@BW`S@(X8]R@CPH=`.]`<4#^0+3`[I]50/&`HW^`Q`(50-O -XM1P//?G$(U*R2"((#-PC]R(".BY`#F'P(*P/1!/T#$.\#L7VW`B(3KP,3")L( -XM<#J1-2\OAP-=`B8!`RW%H?(#@@'%`Z=ZJ0C7`](&MP/N>IL(2@/)``A5`]$! -XM"$?+`YY[`B,!CP/G!'$#>3E.9H#P[D@X60,*"#D#=D<#"CG82#BJ`UOA`[$! -XM`D(!XIX#[WF;CP.2!G%6`\T`1Y".CHN>`TU_R@(J$`(S#OX#X7P(X0/H``CA -XMR35U,#YL=C3T@&4#'G&Y`Q>-`Y8""$?(N(Z+G@-D""OT;V5DG0,.`B@!=`@> -XMCHN>`WI_\JJ.BY`#>N]T_HZ+G@-Z?\BXCHN0`Y-Z?P(B$P/!!;<#P'D(.0/` -XM!CD#P'G%90/`!L62U`.,?\6\;*X#IWH(FX\#W@5Q`WDY3FE6"#KN2#@N"/4# -XM>@(E`=6`@F`\"(4(JT4[`PWOJO`")A(#F7V-`P^;`W$Y`P]Q`P]Q5P,<58%6 -XMK-4#"0B;"&BJ6E[T/#96`^8`"'$#>@AQ`_T`"*D#^P"-`ZUYJ0/D!@(P`0/1 -XM?8U,-'9F@'XZ".)VE@AV@`@@-E8#GG^;`YQ\"$<#Y`:WF`@2\(Z+T'3^CHN> -XM`WJWD+B.BP.*>],(S0@3\#7'$#_7[3")$#HP&-`\8$`C(!"%(#ZP";5@BH\`,0 -XM[P-WX0(2``$!;F5X="`A/2!.54Q,`"\`+@!(3TU%`'X`+W5S-!8X$38,'C`8````4``````````%Z4@`!>!`!`PP'")`!```4```` -XM'`````````"C```````````````<````-`````````!1`````$$.$(8"1`X8 -XM1`X@@P,``#0```!4`````````/,`````0@X0CP)%#AA"#B"-!(X#10XH00XP -XM00XX1`Y`@P>&!HP%````````%````(P`````````)0``````````````)``` -XM`*0`````````]P4```!!#A"&`D,-!D2.!(\#1XP&C05$@P<``"0```#,```` -XM`````)<0````00X0A@)##09"CP-'C06.!$V#!XP&`````````````&H````` -XM`````0!5X@$```````#P`0````````$`7@````````````````````!9`0`` -XM`````%X!`````````0!5`````````````````````!`"````````$P(````` -XM```!`%4`````````````````````$`(````````6`@````````$`5``````` -XM```````````````3`@```````#4"`````````0!5```````````````````` -XM`!8"````````-0(````````!`%0`````````````````````0`(```````!! -XM`@````````(`=PA!`@```````$0"`````````@!W$$0"````````-P@````` -XM```"`'80`````````````````````$`"````````AP(````````!`%6'`@`` -XM`````+L"`````````0!1NP(```````!(`P````````,`=K!^2`,```````!X -XM`P````````$`47@#````````$P8````````#`':P?A,&````````*@8````` -XM```!`%$J!@```````#H'`````````P!VL'XZ!P```````$8'`````````0!1 -XM1@<```````#;!P````````,`=K!^VP<```````#D!P````````$`5>0'```` -XM````-P@````````!`%$`````````````````````0`(```````!Z`@`````` -XM``$`5'H"````````KP,````````!`%[3!`````````\&`````````0!>$P8` -XM``````"7!@````````$`7IL&````````-P@````````!`%X````````````` -XM````````0`(```````!Z`@````````$`47H"````````Y0(````````#`':L -XM?D@#````````-@8````````#`':L?D@&````````-P@````````#`':L?@`` -XM``````````````````!``@```````'H"`````````0!2>@(````````$!``` -XM``````$`7*H$````````"P8````````!`%P3!@```````),&`````````0!< -XMFP8```````!,!P````````$`7-L'````````-P@````````!`%P````````` -XM````````````0`(```````!Z`@````````$`6'H"````````-P@````````# -XM`':@?@````````````````````#"`@```````$@#`````````P!VN'Y_`P`` -XM`````!,&`````````P!VN'XQ!@```````#H'`````````P!VN'X````````` -XM````````````S0(```````!(`P````````$`7[P#````````$08````````! -XM`%\V!@```````)D&`````````0!?FP8```````#_!@````````$`7P`````` -XM``````````````#-`@```````$@#`````````P!VP'Z?`P```````!,&```` -XM`````P!VP'XV!@```````/\&`````````P!VP'X````````````````````` -XMS04````````)!@````````$`4YL&````````K`8````````!`%,````````` -XM````````````AP(```````#Q`@````````$`4D@#````````>`,````````! -XM`%*^!0```````,,%`````````0!2$P8````````8!@````````$`4A@&```` -XM````)`8````````!`%(Z!P```````$8'`````````0!2Y`<````````/"``` -XM``````$`4@\(````````-P@````````!`%(`````````````````````7P<` -XM``````!W!P````````$`40````````````````````!R!P```````'<'```` -XM`````0!5L`<```````"S!P````````$`5<\'````````U`<````````!`%4` -XM````````````````````^0(```````#\`@````````$`4/P"````````2`,` -XM```````!`%/3!````````-H$`````````0!3-@8```````!/!@````````$` -XM4P````````````````````#-`@```````$@#`````````0!>KP,````````/ -XM!@````````$`7C8&````````EP8````````!`%Z;!@```````/\&```````` -XM`0!>`````````````````````,T"````````2`,````````!`%S8`P`````` -XM``L&`````````0!<-@8```````"3!@````````$`7)L&````````_P8````` -XM```!`%P`````````````````````S0(```````#\`@````````$`4]@#```` -XM````V@0````````!`%.^!0```````,T%`````````0!32`8```````!/!@`` -XM``````$`4P````````````````````#-`@```````/$"`````````0!0^@,` -XM```````6!`````````$`4+\$````````W00````````!`%"^!0```````,,% -XM`````````0!0``````````````````````T%````````&`4````````!`%`8 -XM!0```````!T%`````````0!4W`8```````#>!@````````$`4-X&```````` -XMXP8````````!`%4`````````````````````3P8```````"1!@````````$` -XM4[L&````````S@8````````!`%,`````````````````````0`@```````!! -XM"`````````(`=PA!"````````$0(`````````@!W$$0(````````UQ@````` -XM```"`'80`````````````````````$`(````````A0@````````!`%6%"``` -XM`````)T(`````````0!=HP@```````"]"`````````$`5;T(````````1`H` -XM```````!`%U$"@```````$D*`````````0!4LPH```````#'"@````````$` -XM7=,*`````````PP````````!`%T4#````````),,`````````0!=W@P````` -XM``"`#0````````$`784-````````D@X````````!`%W.#@```````#L0```` -XM`````0!=W@P````````0#0````````$`7CL-```````` -XM10T````````!`%YE#0```````&H-`````````0!>>@T````````H#P`````` -XM``$`7I\/````````V!`````````!`%Y<$@````````43`````````0!>.!,` -XM``````!1$P````````$`7N<3````````!14````````!`%X5%0```````"45 -XM`````````0!>+A4```````#K%0````````$`7G48````````UQ@````````! -XM`%X`````````````````````D0@```````"8"`````````$`4)@(```````` -XMF0@````````!`%-V"P````````,,`````````0!05PP```````"A#``````` -XM``$`4*$,````````JPP````````!`%.K#````````+(,`````````0!0L@P` -XM``````#5#`````````$`4]X,````````$`T````````!`%"2#@```````)\/ -XM`````````0!0.Q````````#N$`````````$`4.X0````````H4````````]10````````!`%$/%0```````!45`````````0!1]14` -XM```````4%@````````$`46(8````````9A@````````!`%$````````````` -XM````````D0@```````"9"`````````$`4_`+`````````PP````````!`%,6 -XM%@```````#86`````````0!3`````````````````````"42````````+1(` -XM```````!`%`M$@```````#42`````````0!4!14````````'%0````````$` -XM4`<5````````#!4````````!`%4`````````````````````D0@```````"= -XM"`````````$`7?`+`````````PP````````!`%UP#````````.L,```````` -XM`0!1`````````!`%R#$``` -XM`````-@0`````````0!=V!````````#Q$`````````$`7`T1````````'!$` -XM```````!`%Q;$0```````-,1`````````0!<`1(````````)$@````````$` -XM7?@2````````YQ,````````!`%WJ%````````/`4`````````0!<\!0````` -XM``#U%`````````$`7245````````+A4````````!`%S?%0```````.L5```` -XM`````0!=ZQ4```````#U%0````````$`7#86````````JQ8````````!`%UK -XM&````````'48`````````0!=`````````````````````/$0````````'!$` -XM```````!`%P`````````````````````+A$```````!1$0````````$`7``` -XM``````````````````"1"````````)D(`````````0!3A(```````#G$P`` -XM``````,`=LA]X10```````#U%`````````,`=LA]!14````````E%0`````` -XM``,`=LA]WQ4```````#K%0````````,`=LA]]14```````"K%@````````,` -XM=LA]8A@```````!U&`````````,`=LA]`````````````````````/`+```` -XM````^0L````````!`%R2#@```````"X/`````````0!<@Q````````"&$``` -XM``````$`7`43````````YQ,````````!`%SJ%````````/`4`````````0!< -XMWQ4```````#K%0````````$`7#86````````JQ8````````!`%QK&``````` -XM`'48`````````0!<`````````````````````)$(````````GP@````````! -XM`%[P"P````````,,`````````0!>D@X````````H#P````````$`7H,0```` -XM````V!`````````!`%X%$P```````.<3`````````0!>ZA0```````#U%``` -XM``````$`7M\5````````ZQ4````````!`%XV%@```````*L6`````````0!> -XM:Q@```````!U&`````````$`7@````````````````````"1"````````)D( -XM`````````0!3\`L````````##`````````$`4XL6````````JQ8````````! -XM`%,`````````````````````D0@```````"9"`````````$`4_`+```````` -XM`PP````````!`%/J%````````/44`````````0!33A8```````"+%@`````` -XM``$`4P````````````````````"5$@```````*`2`````````0!0H!(````` -XM``"E$@````````$`5!45````````%Q4````````!`%`7%0```````!P5```` -XM`````0!5`````````````````````+4.````````P`X````````!`%#`#@`` -XM`````,4.`````````0!4WQ4```````#A%0````````$`4.$5````````YA4` -XM```````!`%4`````````````````````D0@```````"9"`````````$`4U00 -XM````````@Q`````````!`%,`````````````````````D0@```````"9"``` -XM``````$`4^`.````````*P\````````!`%.#$````````-@0`````````0!3 -XM`````````````````````*`0````````P!`````````!`%$````````````` -XM````````M0T```````#`#0````````$`4,`-````````Q0T````````!`%3U -XM%````````/<4`````````0!0]Q0```````#\%`````````$`50`````````` -XM``````````"1"````````*,(`````````P!VJ'T$"P````````,,```````` -XM`P!VJ'T4#````````!`-`````````P!VJ'T[#0```````$4-`````````P!V -XMJ'V%#0```````)\/`````````P!VJ'W6#P```````-,1`````````P!VJ'T! -XM$@```````.<3`````````P!VJ'VM%````````,H5`````````P!VJ'W?%0`` -XM`````*L6`````````P!VJ'UB&````````-<8`````````P!VJ'T````````` -XM````````````D0@```````"C"`````````,`=K!]!`L````````##``````` -XM``,`=K!]%`P````````0#0````````,`=K!].PT```````!%#0````````,` -XM=K!]A0T```````"?#P````````,`=K!]J@\```````#3$0````````,`=K!] -XM`1(```````"K%@````````,`=K!]8A@```````#7&`````````,`=K!]```` -XM`````````````````)$(````````HP@````````#`':X?00+`````````PP` -XM```````#`':X?10,````````$`T````````#`':X?3L-````````10T````` -XM```#`':X?84-````````GP\````````#`':X?280````````TQ$````````# -XM`':X?0$2````````YQ,````````#`':X?:T4````````+A4````````#`':X -XM?3P5````````114````````#`':X?445````````2A4````````!`%6#%0`` -XM`````,H5`````````P!VN'W?%0```````*L6`````````P!VN'UB&``````` -XM`-<8`````````P!VN'T`````````````````````D0@```````"8"``````` -XM``$`4`0+````````%PL````````!`%`%#0```````!`-`````````0!0A0T` -XM``````";#0````````$`4%`.````````;@X````````!`%`@$````````#L0 -XM`````````0!0Q10```````#4%`````````$`4"X5````````,A4````````! -XM`%``````````````````````_P\````````$$`````````$`50`````````` -XM``````````"A%0```````*85`````````0!5`````````````````````%45 -XM````````NQ4````````!`%T`````````````````````D0@```````"C"``` -XM``````,`=L!]!`L````````##`````````,`=L!]%`P````````0#0`````` -XM``,`=L!].PT```````!%#0````````,`=L!]A0T```````"?#P````````,` -XM=L!].Q````````#3$0````````,`=L!]`1(```````#G$P````````,`=L!] -XMK10````````N%0````````,`=L!]8!4```````#*%0````````,`=L!]WQ4` -XM``````"K%@````````,`=L!]8A@```````#7&`````````,`=L!]```````` -XM`````````````)$(````````HP@````````#`':@?00+`````````PP````` -XM```#`':@?10,````````$`T````````#`':@?3L-````````10T````````# -XM`':@?84-````````GP\````````#`':@?3L0````````TQ$````````#`':@ -XM?0$2````````YQ,````````#`':@??L3````````9Q0````````#`':@?6<4 -XM````````;!0````````!`%5W%````````)44`````````0!4K10````````N -XM%0````````,`=J!]RA4```````"K%@````````,`=J!]8A@```````#7&``` -XM``````,`=J!]`````````````````````(T4````````E10````````!`%4` -XM````````````````````>A0```````"5%`````````$`40`````````````` -XM``````"1"````````)@(`````````0!0!0T````````0#0````````$`4`H4 -XM````````%!0````````!`%`D%````````%04`````````0!0RA4```````#1 -XM%0````````$`4`````````````````````"1"````````)@(`````````0!0 -XM!0T````````0#0````````$`4!<4````````'10````````!`%`D%``````` -XM`%04`````````0!0RA4```````#1%0````````$`4``````````````````` -XM```Y`````@``````U!$``/(%``!?7V=L;V)?<&%T=&5R;E]P`%\&``!G;&]B -XM9G)E90!+"@``9VQO8@``````+`````(```````@`````````````````UQ@` -XM````````````````````````````P@````````#L`````````/4````````` -XM^@````````#P`````````/,``````````````````````````````%`!```` -XM````A`$```````".`0```````,X!`````````````````````````````'," -XM````````JP(```````#;!P```````#<(````````$P8````````=!@`````` -XM`$@#````````8`,`````````````````````````````F4``!P=U]S:&5L;`!?7VEN -XM;U]T`'!W7W!AF5?=`!?7V)L:W-I>F5?=`!M>5]R -XM96%L;&]C`&9IF5?=`!?7W1I;65?=`!S=%]S:7IE`'-T7W5I9`!?7V]F9E]T -XM`'-T7V1E=@!S:6=N960@8VAA<@!M;V1E7W0`;V9F7W0`'0` -XM+F1A=&$`+F)S`````0````(```````````````````"@-````````/`````` -XM```````````````(````````````````````F0````0````````````````` -XM````````$+(```````"0`````````!H````/````"``````````8```````` -XM`*@````!`````````````````````````)`U````````'2X````````````` -XM``````$```````````````````"X`````0````````````````````````"M -XM8P```````#T````````````````````!````````````````````LP````0` -XM````````````````````````H+(````````8`````````!H````2````"``` -XM```````8`````````,T````!`````````````````````````.IC```````` -XM,`````````````````````$```````````````````#(````!``````````` -XM``````````````"XL@```````#``````````&@```!0````(`````````!@` -XM````````W`````$`````````````````````````&F0```````"0"P`````` -XM`````````````0```````````````````.H````!````,``````````````` -XM`````*IO````````T`4```````````````````$``````````0````````#U -XM`````0````````````````````````!Z=0```````"8````````````````` -XM```!````````````````````$0````,`````````````````````````H'4` -XM``````#^`````````````````````0````````````````````$````"```` -XM`````````````````````*!]````````4`0````````;````%P````@````` -XM````&``````````)`````P````````````````````````#P@0```````/4` -XM```````````````````!```````````````````````````````````````` -XM`````````````0````0`\?\```````````````````````````,``0`````` -XM``````````````````````,``P````````````````````````````,`!``` -XM``````````````````````````,`!0````````````````````````````,` -XM!@````````````````````````````,`"```````````````````````"``` -XM``(``0`0`0```````/,`````````%0````(``0`0`@```````"4````````` -XM)@````(``0!``@```````/<%``````````````,`"@`````````````````` -XM``````````,`"P``````````````````````,@````$`#`````````````4` -XM``````````````,`#`````````````````````````````,`#0`````````` -XM``````````````````,`#P````````````````````````````,`$0`````` -XM``````````````````````,`$@````````````````````````````,`%``` -XM``````````````````````````,`%@````````````````````````````,` -XM%P````````````````````````````,`&```````````````````````0``` -XM`!(``0```````````*,`````````40```!(``0"P`````````%$````````` -XM6@```!``````````````````````````7P```!`````````````````````` -XM````9@```!``````````````````````````;0```!`````````````````` -XM````````=````!``````````````````````````?````!`````````````` -XM````````````A````!``````````````````````````C````!`````````` -XM````````````````E````!``````````````````````````G````!`````` -XM````````````````````I````!``````````````````````````K0```!`` -XM````````````````````````L@```!(``0!`"````````)<0````````MP`` -XM`!``````````````````````````O@```!`````````````````````````` -XMQ@```!``````````````````````````S0```!`````````````````````` -XM````U@```!``````````````````````````W````!`````````````````` -XM````````XP```!``````````````````````````[````!`````````````` -XM`````````````&=L;V(N8P!P````_/__ -XM______\2!`````````(````?````_/________]F!`````````(````<```` -XM_/________^!!`````````(````;````_/________^X!`````````(````@ -XM````_/________\9!0````````(````A````_/________^_!0````````(` -XM```B````_/_________Q!0````````(````B````_/________])!@`````` -XM``(````B````_/________]A!@````````(````C````_/________]F!@`` -XM``````(````B````_/________][!@````````(````9````_/________^C -XM!@````````(````C````_/_________?!@````````(````<````_/______ -XM__\`!P````````(````B````_/________\3!P````````(````B````_/__ -XM______]"!P````````(````:````_/________]-!P````````(````:```` -XM_/________]S!P````````(````;````_/________^/!P````````(````; -XM````_/_________0!P````````(````D````_/________^!"`````````(` -XM```B````_/________^Y"`````````(````F````_/_________7"``````` -XM``(````:````_/________\`"0````````(````;````_/________^X"0`` -XM``````(````E````_/_________Y"0````````(````G````_/________]% -XM"@````````(````;````_/________^'"@````````(````E````_/______ -XM___#"@````````H````+````#0````````#?"P````````(````9````_/__ -XM_______Z"P````````(````9````_/________].#`````````(````E```` -XM_/________]>#0````````(````:````_/________]\#0````````H````+ -XM````#P````````#!#0````````(````A````_/________\6#@````````(` -XM```H````_/_________!#@````````(````A````_/_________J#@`````` -XM``(````9````_/________\`#P````````(````9````_/________^4#P`` -XM``````(````D````_/_________(#P````````(````F````_/________\` -XM$`````````(````;````_/________\9$`````````(````I````_/______ -XM__]>$`````````(````9````_/________]Z$`````````(````9````_/__ -XM______^W$`````````H````"````$`(```````#/$`````````(````J```` -XM_/_________[$`````````(````9````_/________\1$0````````(````9 -XM````_/________\Z$0````````(````9````_/________]2$0````````(` -XM```9````_/________]]$0````````(````9````_/________^3$0`````` -XM``(````9````_/________^Z$0````````(````9````_/________\-$@`` -XM``````(````:````_/________\Q$@````````(````A````_/________]D -XM$@````````(````:````_/________^A$@````````(````A````_/______ -XM__]$$P````````(````:````_/________]@$P````````(````D````_/__ -XM______^"$P````````(````<````_/________^D$P````````(````;```` -XM_/_________:$P````````(````;````_/_________H$P````````H````+ -XM````$0````````#M$P````````(````K````_/________\#%`````````(` -XM```L````_/________\0%`````````(````I````_/________])%``````` -XM``L````+````%@````````!H%`````````(````:````_/________^1%``` -XM``````(````;````_/________^D%`````````(````;````_/_________0 -XM%`````````(````D````_/_________X%`````````(````<````_/______ -XM__\(%0````````(````<````_/________\8%0````````(````<````_/__ -XM______]&%0````````(````:````_/________]J%0````````(````:```` -XM_/________^B%0````````(````;````_/________^\%0````````(````; -XM````_/_________B%0````````(````<````_/________\@%@````````(` -XM```9````_/________]8%@````````(````9````_/________]N%@`````` -XM``(````9````_/________^5%@````````(````9````_/________^Z%@`` -XM``````(````:````_/________\B%P````````(````;````_/________]` -XM%P````````(````;````_/________]8%P````````(````E````_/______ -XM__^;%P````````(````9````_/________\F&`````````H````+```````` -XM```````P&`````````H````,```````````````U&`````````H````.```` -XM``````````!!&`````````(````M````_/________]9&`````````(````9 -XM````_/_________V``````````(````9````_/________\Q`@````````(` -XM```=````_/________\&``````````H````%```````````````,```````` -XM``H````5````6@4````````1``````````H````5````P`$````````5```` -XM``````$````"```````````````=``````````$````"````UQ@````````E -XM``````````H````'```````````````L``````````H````5````%@4````` -XM```Q``````````H````5````(@0````````^``````````H````5````O00` -XM``````!%``````````H````5````G`,```````!*``````````H````5```` -XM60$```````!7``````````H````5````+P4```````!<``````````H````5 -XM````=P````````!N``````````H````5````RP0```````![``````````H` -XM```5````/P````````"```````````H````5````00,```````"-```````` -XM``H````5````QP,```````"2``````````H````5````(@(```````"?```` -XM``````H````5````;@0```````"F``````````H````5````>@4```````"M -XM``````````H````5````!0$```````"R``````````H````5````YP,````` -XM``"]``````````H````5````[P0```````#-``````````H````5````\`,` -XM``````#8``````````H````5````@04```````#C``````````H````5```` -XMJP4```````#N``````````H````5````2P,```````#Y``````````H````5 -XM````T@`````````$`0````````H````5````L`$````````/`0````````H` -XM```5````BP`````````:`0````````H````5````!P4````````E`0`````` -XM``H````5````&@0````````P`0````````H````5````X`(````````]`0`` -XM``````H````5````3P(```````!(`0````````H````5````NP````````!? -XM`0````````H````5````Y00```````!J`0````````H````5````5`(````` -XM``!U`0````````H````5````F@$```````"``0````````H````5````;`,` -XM``````"+`0````````H````5````Y`````````"6`0````````H````5```` -XM(@4```````"A`0````````H````5````M00```````"L`0````````H````5 -XM````*04```````"W`0````````H````5````DP$```````#"`0````````H` -XM```5````B@(```````#-`0````````H````5````A`,```````#9`0`````` -XM``H````5````1@(```````#E`0````````H````5````9P0```````#S`0`` -XM``````H````5````BP$````````"`@````````H````5````?P$````````. -XM`@````````H````5````#P4````````<`@````````H````5````H`(````` -XM```J`@````````H````5````%`(````````X`@````````H````5````+0(` -XM``````!&`@````````H````5``````4```````!4`@````````H````5```` -XM#0(```````!B`@````````H````5````HP4```````!P`@````````H````5 -XM````+`0```````!^`@````````H````5````Z@````````",`@````````H` -XM```5````HP$```````":`@````````H````5````^`0```````"H`@`````` -XM``H````5````,@$```````"V`@````````H````5````60````````#$`@`` -XM``````H````5````]@(```````#2`@````````H````5````9`````````#@ -XM`@````````H````5````@0````````#N`@````````H````5````@`0````` -XM``#]`@````````H````5````-@(````````)`P````````H````5````40`` -XM```````7`P````````H````5````V@`````````E`P````````H````5```` -XM)P`````````S`P````````H````5````L`(```````!!`P````````H````5 -XM````;P(```````!/`P````````H````5````404```````!=`P````````H` -XM```5````'@````````!K`P````````H````5````A`$```````!Y`P`````` -XM``H````5````R0````````"'`P````````H````5````_P(```````"5`P`` -XM``````H````5````*`$```````"D`P````````H````5````90,```````"Q -XM`P````````H````5````4P,```````"_`P````````H````5````2@$````` -XM``#-`P````````H````5````N0$```````#;`P````````H````5````M@4` -XM``````#I`P````````H````5````IP`````````(!`````````H````5```` -XMC`4````````4!`````````H````5````4P$````````B!`````````H````5 -XM````/`$````````P!`````````H````5````U@,````````^!`````````H` -XM```5````I@,```````!,!`````````H````5````-`,```````!:!``````` -XM``H````5````5@0```````!H!`````````H````5````@`(```````!V!``` -XM``````H````5````]P````````"$!`````````H````5````(@,```````"2 -XM!`````````H````5````Q0(```````"A!`````````H````5````>P,````` -XM``"O!`````````H````5````MP(```````"\!`````````H````5````IP(` -XM``````#*!`````````H````5````UP(```````#8!`````````H````5```` -XM[@(```````#F!`````````H````5````W@,```````#T!`````````H````5 -XM````:P`````````"!0````````H````5````$P`````````0!0````````H` -XM```5````1@0````````>!0````````H````5````K`0````````L!0`````` -XM``H````5````+@````````"F!0````````H````5````RP(```````"R!0`` -XM``````H````5````FP0```````#$!0````````H````5````U@0```````#0 -XM!0````````H````5````T`,```````#F!0````````H````5````400````` -XM``#W!0````````$````"``````````````#_!0````````$````"````HP`` -XM```````3!@````````H````1```````````````C!@````````H````1```` -XM20`````````L!@````````H````1````D@`````````S!@````````H````5 -XM````E04```````!!!@````````H````5````#P,```````!D!@````````$` -XM```"````L`````````!L!@````````$````"`````0$```````!T!@`````` -XM``H````1````.@$```````"!!@````````H````1````F@$```````"&!@`` -XM``````H````4``````````````"/!@````````H````1````XP$```````"6 -XM!@````````H````5````F@````````"B!@````````$````"````$`$````` -XM``"J!@````````$````"`````P(```````"R!@````````H````1````!@(` -XM``````"[!@````````H````5````;@$```````#&!@````````H````1```` -XMMP(```````#+!@````````H````5````.P,```````#6!@````````H````1 -XM````$P,```````#D!@````````H````1````;P,```````#R!@````````H` -XM```1````I@,```````#W!@````````H````5````#``````````"!P`````` -XM``H````1````W`,````````'!P````````H````4````0``````````,!P`` -XM``````H````5````D0(````````7!P````````H````1````.`0````````G -XM!P````````H````1````;@0````````N!P````````H````5````M@,````` -XM```Z!P````````$````"````$`(```````!"!P````````$````"````-0(` -XM``````!;!P````````H````1````D00```````!I!P````````H````1```` -XMM`0```````!X!P````````H````1````UP0```````"'!P````````H````1 -XM````^@0```````"9!P````````H````5````_`,```````"\!P````````H` -XM```5````#@0```````#(!P````````$````"````0`(```````#0!P`````` -XM``$````"````-P@```````#8!P````````H````1````'04```````#A!P`` -XM``````H````5````U@0```````#L!P````````H````1````:04```````#Q -XM!P````````H````5````*@,```````#\!P````````H````1````4@8````` -XM```!"`````````H````5````'`(````````,"`````````H````1````P08` -XM```````1"`````````H````5````B@,````````<"`````````H````1```` -XM(P<````````A"`````````H````5````#P,````````L"`````````H````1 -XM````I0<````````Q"`````````H````5````R04````````\"`````````H` -XM```1````W0<```````!!"`````````H````5````9@(```````!."``````` -XM``H````5````3`````````!="`````````H````5````.00```````!M"``` -XM``````H````5````"0,```````!X"`````````H````1````+`@```````!] -XM"`````````H````5````0P$```````"("`````````H````1````B`@````` -XM``"-"`````````H````5````"P$```````"9"`````````H````5````E0`` -XM``````"D"`````````H````1````UP@```````"I"`````````H````5```` -XMK@````````"P"`````````$````"````2`8```````"]"`````````H````4 -XM````<`````````#3"`````````H````4````P`````````#A"`````````H` -XM```1````#0D```````#H"`````````H````4````$`$`````````"0`````` -XM``H````5```````````````,"0````````H````5````#``````````7"0`` -XM``````H````1````M0D````````<"0````````H````5````<@,````````G -XM"0````````H````1````V`D````````M"0````````H````4````0`$````` -XM``!!"0````````H````1````(0H```````!'"0````````$````"````C0,` -XM``````!/"0````````$````"````Q00```````!<"0````````H````5```` -XMD@,```````!G"0````````H````1````?0H```````!L"0````````$````" -XM````V`,```````!T"0````````$````"````Q00```````!]"0````````H` -XM```5````.00```````"("0````````H````1````V0H```````"8"0`````` -XM``H````1````-0L```````"F"0````````H````1````D0L```````"K"0`` -XM``````H````4````<`$```````##"0````````H````4````H`$```````#3 -XM"0````````H````1````[0L```````#>"0````````H````4````T`$````` -XM``#C"0````````H````5````E0````````#N"0````````H````1````20P` -XM```````6"@````````H````5````_@$````````H"@````````H````5```` -XM0@4````````T"@````````H````5````Z`(```````!-"@````````H````5 -XM``````$```````!9"@````````$````"````0`@```````!A"@````````$` -XM```"````UQ@```````!I"@````````H````1````?PP```````!R"@`````` -XM``H````5````U@0```````!]"@````````H````1````RPP```````"""@`` -XM``````H````5````'`(```````"-"@````````H````1````:@X```````"2 -XM"@````````H````5````B@,```````"="@````````H````1````B0\````` -XM``"B"@````````H````5````#P,```````"M"@````````H````1````P0\` -XM``````"R"@````````H````5````70(```````"]"@````````H````1```` -XM0Q````````#""@````````H````5````;@$```````#-"@````````H````1 -XM````O!````````#2"@````````H````5````#`````````#="@````````H` -XM```1````6Q(```````#B"@````````H````5````>0(```````#M"@`````` -XM``H````1````=1,```````#R"@````````H````5````7@0```````#]"@`` -XM``````H````1````%!4````````""P````````H````4````$`(````````+ -XM"P````````H````5````0@4````````7"P````````H````4````8`(````` -XM```<"P````````H````5````!P0````````H"P````````H````5````%P$` -XM```````S"P````````H````1````S!4```````!!"P````````H````1```` -XM!A8```````!&"P````````H````5````3`````````!1"P````````H````1 -XM````8A8```````!6"P````````H````5````G@4```````!A"P````````H` -XM```1````M!<```````!F"P````````H````5````K0,```````!Q"P`````` -XM``H````1````CA@```````!V"P````````H````5````W@0```````"&"P`` -XM``````H````4````L`(```````"7"P````````H````4````X`(```````"@ -XM"P````````H````1````!QD```````"P"P````````H````4````$`,````` -XM``#!"P````````H````4````0`,```````#*"P````````H````1````8QD` -XM``````#6"P````````H````4````<`,```````#;"P````````H````5```` -XM(0$```````#F"P````````H````1````OQD```````#O"P````````H````4 -XM````H`,`````````#`````````H````4````T`,````````)#`````````H` -XM```1````O1L````````9#`````````H````4``````0````````F#``````` -XM``H````4````,`0````````O#`````````H````1````!AP````````Y#``` -XM``````H````4````8`0```````!"#`````````H````5````!P````````!- -XM#`````````H````1````8AP```````!2#`````````H````4````H`0````` -XM``!B#`````````H````1````A1P```````!M#`````````H````4````T`0` -XM``````"##`````````H````4````,`4```````"1#`````````H````1```` -XMNQP```````"8#`````````$````"````A0L```````"@#`````````$````" -XM````\`L```````"M#`````````H````5````$`$```````"X#`````````H` -XM```1````/1T```````#!#`````````$````"````P`L```````#)#``````` -XM``$````"````\`L```````#:#`````````$````"````S0L```````#B#``` -XM``````$````"````\`L```````#O#`````````H````1````8!T```````#W -XM#`````````H````4````D`4````````)#0````````H````1````EAT````` -XM```=#0````````H````4````\`4````````M#0````````H````1````/AX` -XM```````]#0````````H````1````HAX```````!�````````H````4```` -XM0`8```````!7#0````````H````4````<`8```````!@#0````````H````1 -XM````71\```````!K#0````````H````4````H`8```````!W#0````````H` -XM```1````IA\```````"$#0````````H````4````X`8```````"-#0`````` -XM``H````5````T@(```````"F#0````````H````1`````B````````"K#0`` -XM``````H````4````D`<```````"T#0````````H````5````9`$```````#$ -XM#0````````H````4````X`<```````#5#0````````H````4````$`@````` -XM``#>#0````````H````1````:"$```````#I#0````````$````"````%1$` -XM``````#Q#0````````$````"````6Q$````````&#@````````$````"```` -XM)1$````````.#@````````$````"````6Q$````````;#@````````H````1 -XM````BR$````````F#@````````H````4````0`@````````W#@````````H` -XM```4````<`@```````!`#@````````H````1````KB$```````!+#@`````` -XM``$````"````EQ$```````!3#@````````$````"````TQ$```````!D#@`` -XM``````$````"````I!$```````!L#@````````$````"````TQ$```````!Y -XM#@````````H````1````'2(```````"!#@````````H````4````H`@````` -XM``"*#@````````H````5````%0,```````"5#@````````H````1````9B(` -XM``````":#@````````H````5````OP4```````"U#@````````H````4```` -XM,`D```````#)#@````````H````1````72,```````#.#@````````H````5 -XM````F`(```````#9#@````````H````1````!20```````#B#@````````$` -XM```"````=A8```````#J#@````````$````"````JQ8```````#_#@`````` -XM``$````"````?Q8````````'#P````````$````"````JQ8````````4#P`` -XM``````H````1````P"0````````?#P````````H````4````@`D````````L -XM#P````````H````4````L`D````````U#P````````H````1````"24````` -XM``!!#P````````H````4````X`D```````!1#P````````H````1````924` -XM``````!@#P````````H````4````$`H```````!P#P````````H````1```` -XMP24```````!_#P````````$````"````.Q````````"'#P````````$````" -XM````@Q````````"8#P````````$````"````2!````````"@#P````````$` -XM```"````@Q````````"M#P````````H````1````'28```````"Y#P`````` -XM``$````"````S@X```````#!#P````````$````"````!`\```````#2#P`` -XM``````$````"````UPX```````#:#P````````$````"````!`\```````#G -XM#P````````H````1````4R8```````#O#P````````H````4````0`H````` -XM``#X#P````````H````5````7`,````````#$`````````H````1````G"8` -XM```````)$`````````H````4````@`H````````E$`````````H````4```` -XMP`H````````Q$`````````H````1````OR8````````]$`````````H````4 -XM````\`H```````!&$`````````H````5````-@````````!1$`````````H` -XM```1````&R<```````!6$`````````H````5````D00```````!A$``````` -XM``H````1````_2<```````!F$`````````H````5````/0(```````!Q$``` -XM``````H````1````M2@```````!V$`````````H````4````(`L```````"( -XM$`````````H````1````U"D```````".$`````````$````"````V`\````` -XM``"6$`````````$````"````$1````````"C$`````````H````5````!P`` -XM``````"N$`````````H````1````?"H```````"T$`````````$````"```` -XM0A4```````"\$`````````$````"````RA4```````#%$`````````H````5 -XM````!P````````#0$`````````H````1````GRH```````#5$`````````H` -XM```5````=@$```````#@$`````````H````1````PBH```````#E$``````` -XM``H````5````K0,```````#P$`````````H````1````Y2H```````#W$``` -XM``````H````4````8`L`````````$0````````H````5````/0(````````+ -XM$0````````H````1````W"L````````0$0````````$````"````9!0````` -XM```8$0````````$````"````K10````````E$0````````H````5````!P`` -XM```````P$0````````H````1````^2P````````U$0````````H````5```` -XM=@$```````!`$0````````H````1````'"T```````!&$0````````$````" -XM`````A0```````!.$0````````$````"````)!0```````!7$0````````H` -XM```5````/@0```````!C$0````````H````5````.00```````!N$0`````` -XM``H````1````/RT```````!S$0````````$````"````#!0```````![$0`` -XM``````$````"````)!0```````"-$0````````H````1````KBT```````"5 -XM$0````````H````5````2`4```````"@$0````````$````.```````````` -XM``#\``````````$````"```````````````<``````````H````/```````` -XM```````@``````````$````"```````````````T``````````H````/```` -XM```````````X``````````$````"````L`````````!<``````````H````/ -XM``````````````!@``````````$````"````$`$```````"<``````````H` -XM```/``````````````"@``````````$````"````$`(```````"T```````` -XM``H````/``````````````"X``````````$````"````0`(```````#D```` -XM``````H````/``````````````#H``````````$````"````0`@````````@ -XM``````````H````"```````````````X``````````H````"````L``````` -XM``!8``````````H````"````$`$```````"0``````````H````"````$`(` -XM``````"H``````````H````"````0`(```````#0``````````H````"```` -XM0`@````````&``````````H````&```````````````&``````````H````& -XC```````````````0``````````$````"```````````````` -X` -Xend -08f54ce57ae16ee49e80e07b25b53cad -echo x - ./glob/fnmatch.o.uu -sed 's/^X//' >./glob/fnmatch.o.uu << 'b483319a2b8624af2d41c47d4e321b7b' -Xbegin 644 ./fnmatch.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````(A2```` -XM`````````$```````$``&@`7`$%7059!54%455-(@^Q(2(ET)!B)5"04B4PD -XM$`^V!X3`#X3R!P``08G-08G.2(GS@^$"2(UO`4R-?"0P08/E$$&#Y@&)3"0D -XM2(/#`4F)]&:0187M=&L/MM`[%0````!]$DB+-0````!(8\IF@WS.0`!X0CP_ -XM=%$/AX0````\*F:0#X0#`@``187M9F9FD&9FD`^%5`,```^V0_\YT'1"9I"X -XM`0```$B#Q$A;74%<05U!7D%?PP^VA(Y`"```9F9FD#P_#[;0=:\/MD/_A,!T -XMT3PO#X31`P``/"X/A*8#``"0#[9%`$F#Q`%(@\,!A,`/A"<'``!(@\4!Z5/_ -XM__]F9I`\6W1L/%P/A7K___^+1"0DOEP```"%P'4Y#[9%`(3`#X1[____187M -XM="$/MM`[%0````!]%DB+#0````!(8])F@WS10``/B"8'``!(@\4!#[;P187M -XM#X7!`@``#[9#_SGP#X1Y____Z33___]F9F:01(L%`````$6%P`^$=@4``$0/ -XMMD/_183`#X02____08#X+@^$'@,``$&`^"\/A#L#```/MD4`/"$/A)\%``"+ -XM-0````"%]@^(B04``,=$)"P`````BTPD)$B#Q0%%#[;0B<)-8]J%R4$/E,%F -XM9I!FD$6%[42)QG0H1#L5`````'T?2(L%`````&9"@WS80`!Y#T(/MK280`@` -XM`&9FD&9FD(#Z7`^$W@(``(#Z6P^$/@,``(32#X1V_O__#[;"187M="*%P'@> -XM.P4`````?19(BST`````2&/(9H-\ST``#XA#!0``0`^V]CGP#X3J"0``#[9% -XM`$B#Q0$\+8A$)`\/A/P#``"`?"0/70^$9@0```^V5"0/Z5?___]!#[84)(#Z -XM+@^$?00```^V70!(@\4!@/L_#Y3`#X6C`0``187V#X3X"P``@/HO#X3C_?__ -XMA,"0=`R$T@^$UOW__TF#Q`$/MET`2(/%`8#[/P^4P`^$_@```(#[*@^$]0`` -XM`(3;#X1L`0``1(GV3(GG18GW]]Z#YB_H`````$B%P$F)Q@^$;@D``(#[6P^$ -XM8P4``(#[+V:0#X3:"```BT0D$$6$_XE$)"@/A&P$``"`^UP/A!4)``!%A>T/ -XMA?<$``!(@^T!33GF#X9*_?__187M#[;;#X2E"0``1(M<)!1%A=L/A"()``!% -XMA/]T&.F["@``9F:09F:028/$`4TY]`^$$_W__T$/M@0D.04`````?AE(BPT` -XM````2&/09H-\T4``>0>+A)%`"```.=AUR3'23#MD)!B+3"0H3(GF2(GO#Y3" -XMZ##\__^%P'6L,<#IROS__V9FD&:000^V%"3IRO[__P^V0_\[!0`````/C:#\ -XM__](BS4`````2&/(9H-\SD``#XF*_/__BX2.0`@``.E^_/__#[9#_SL%```` -XM``^-,_W__TB+#0````!(8]!F@WS10``/B1W]__^+A)%`"```Z1']__^`^RH/ -XMA%3^__^$VP^%E/[__S'`187V#X0[_/__OB\```!,B>?H`````$B%P`^5P`^V -XMP.D@_/__BT0D%(7`#X1/_/__3#MD)!@/A`3\__]!@'PD_R\/A3C\__]%A?8/ -XMA"_\___IZOO__XM\)!2%_V9F9I`/A-S\__],.V0D&`^$S_O__T&`?"3_+P^% -XMQ?S__T6%]@^%NOO__P^V10`\(0^%O/S__^E6`@``183)#X0J_?__#[9%`(3` -XM#X24^___187MB$0D#W0@#[;`.P4`````?15(BQ4`````2)AF@WS"0``/B"T" -XM``!(@\4!0#IT)`\/A3#]__^`?"0/70^$&P<``(!\)`\`#X5M`@``Z4'[__^0 -XM@'T`.@^%P/S__P^V30%(C7T!@/DZB$PD#P^$:@,```^V1"0/@^AA/!@/A]4` -XM```/MD0D#TB#QP&(1"0P#[8/@/DZB$PD#P^$W`4```^V1"0/@^AA/!@/AZ@` -XM```/MD0D#TB#QP&(1"0Q#[8/@/DZB$PD#P^$QP4```^V1"0/@^AA/!AW?P^V -XM1"0/2(/'`8A$)#(/M@^`^3J(3"0/#X2S!0``#[9$)`^#Z&$\&'=6#[9$)`]( -XM@\T/ML%T)`^VP3L%`````'T92(L-`````$ACT&:#?-%``'D'BX210`@``#GP -XM#XWY````#[95`$B#Q0&(5"0/@'PD#UT/A9K[__^+5"0LA=(/A>_Y___IJOG_ -XM_[\`````Z`````!(@_@!&<"#R`&)!0````#I;/K__XM$)!2%P`^$=_O__TP[ -XM9"08#X1U^?__08!\)/\O#X5@^___187V#X17^___Z5OY__\\7@^%;_K__TB# -XMQ0$/MD4`QT0D+`$```#I8OK__P^VA()`"```2(/%`8A$)`]`.G0D#P^%]_K_ -XM_^G"_?__/%P/A0'___\/MDT`2(/%`>GT_O__BX2/0`@``.FQ^O__BU0D$(/B -XM^XE4)"CIA/O__SQ;=#$\70^$JP0``(3`#X39^/__#[9%`$B#Q0%%A,ETWSQ< -XM==N`?0``#X2^^/__2(/%`>O7@'T`.F9F9I!US0^V10&$P`^$HOC__TB#Q0$\ -XM.G7L#[9%`3Q==.A(@\4"#[9%`.N?28GT00^V!"2$P`^$K/O___9$)!`(#X1M -XM^/__/"\/E<`/ML#I9?C__P^VPSL%``````^-^OK__TB+%0````!(F&:#?,)` -XM``^)Y?K__P^VG()`"```Z=CZ__\/MH210`@``.G-^/__BT0D$$2+;"002(U= -XM_X/@^T6$_T0/1.A-.>8/A@+X__^+1"04A<`/A%0&``!%A/]T%Y#IO`4``$F# -XMQ`%-.?1F9F:0#X3:]___,=),.V0D&$2)Z4R)YDB)WP^4PN@B]___AN_B%0D#V:0Z>_X__^+1"0DA<`/A=_V__\/MET`Z=;V -XM__^+1"0LA<`/A&KT___I)?3__V9FD&:0,?9,B>?H`````$F)QNF`]O__183_ -XM=3A!#[8$)#D%`````'X92(L-`````$ACT&:#?-%``'D'BX210`@``#G8='!) -XM@\0!33GT=0>+ -XMA)%`"```.=AT6$F#Q`%-.?1US>F9\___183_#X68````1(M4)!1%A=)T=T$/ -XMM@0D.<-T2DF#Q`%-.?1U[NEO\___BTPD*#'23(GF2(GOZ+[R__^%P`^%=___ -XM_S'`Z53S__^+3"0H,=),B>9(B>_HGO+__X7`=9,QP.DX\___,=),.V0D&(M, -XM)"A,B>9(B>\/E,+H>O+__X7`=9DQP.D4\___00^V!"0YV'0O28/$`4TY]'7N -XMZ?CR__]$BTPD%$6%R71E00^V!"0YPW0J28/$`4TY]'7NZ=?R__^+3"0H,=), -XMB>9(B>_H)O+__X7`=;PQP.G`\O__3#MD)!BZ`0```)!T"S'208!\)/\O#Y3" -XMBTPD*$R)YDB)[^CT\?__AB0Z6OR__]!#[8$)#D%`````'X92(L-`````$ACT&:#?-%``'D'BX21 -XM0`@``#G8#X3&````28/$`4TY]'7)Z2_R__],.V0D&+H!````=`LQTD&`?"3_ -XM+P^4PD2)Z4R)YDB)W^AJ\?__A<`/A#;U__])@\0!33GT= -XM-``##CH+.P5)$P(&```?'0$Q$Q$!$@%8"UD%`1,``"`%`#$3```A'0$Q$Q$! -XM$@%8"UD+```B'0$Q$U4&6`M9!0``(P4`,1,"!@``)#0``P@Z"SL%21,""@`` -XM)1T!,1,1`1(!6`M9!0``)AT!,1,1`1(!6`M9"P$3```G'0$Q$U4&6`M9!0$3 -XM```H'0$Q$U4&6`M9"P$3```I-``##CH+.PM)$P(&```J-``Q$P(&```K'0$Q -XM$U4&6`M9"P``+#0``PXZ"SL%21,""@``+2X!/PP##CH+.P4G#$D3$0$2`4`* -XM`1,``"X%``,..@L[!4D3`@8``"\T``,..@L["TD3/PP\#````$<,```"```` -XM```(`0`````!`````````````````````````````````@$&``````(!"``` -XM```"`@4``````@('``````,$!6EN=``"!`<``````@@%``````0``````SIE -XM`````@@'``````((!``````"!`0`````!``````#4EH````%"`<&"`0````` -XM!%9%````!``````$5XH````"`08`````!Q@%-.@````(``````4UE0````(C -XM``@`````!3:5`````B,$"``````%-Y4````"(P@(``````4XZ`````(C$``) -XM"&4````$``````4YIP````<0!3L>`0``"``````%/$4````"(P`(``````4] -XM'@$```(C"``)".X````$``````4^^0````J`$`5`]@$```@`````!4'V`0`` -XM`B,`"``````%0@8"```"(P@(``````5$00(```(C*`@`````!45R`@```B,P -XM"``````%1I4````"(S@(``````5(>`(```(C0`@`````!4F(`@```R/`$`@` -XM````!4J(`@```R/`&`@`````!5$D`0```R/`(`@`````!5(D`0```R/0(`@` -XM````!5,D`0```R/@(`@`````!56(`````R/P(`@`````!59%`````R/X(``+ -XMH`````8"```,A0````<`"Z`````6`@``#(4````?``T!E0```#`"```.,`(` -XM``YZ````#CL"````"0@V`@``#Z`````)"#`"```)"!8"```-`44```!F`@`` -XM#I4````.9@(```YZ````#FP"````"0B@````"0AF`@``"0A'`@``"V4```"( -XM`@``#(4```#_``N5````F`(```R%````_P`$``````57+P$```0`````!B1Z -XM`````@@%`````!```````FT!10````/;`@``$5]C``)LB@```!%?9@`";&4` -XM````$``````">@%%`````P(#```17V,``GF*````$5]F``)Y90```!(`$``` -XM```"G`&*`````QX#```17V,``IN*`````!```````H`!10````-$`P``$5]C -XM``)_B@```!%?9@`"?V4`````$P`````!B68"```!<@,``!%S``&',`(``!%C -XM``&(10```!0``````8IF`@```!4``````:,!10`````````````````````` -XM````````MPL``!8``````9\P`@```````!8``````:`P`@```````!8````` -XM`:%%`````````!8``````:)%`````````!=P``&D,`(````````7;@`!I#`" -XM````````%V,``:4P`````````!@``````:L!&0`````!C`$``````````!H` -XM````2PD``!MN;W0``28!10`````````<``````$G`:`````=`````!MF;@`! -XM0`$P`````````!H`````PP0``!X``````98!,``````````?VP(````````` -XM```````````````!G`&L!```(/8"```@[`(``"&U`@`````````````````` -XM``````)[(-`"```@Q@(`````(@(#`````````9P!(Q,#```````````?VP(` -XM```````````````````````!C0$,!0``(/8"```@[`(``"&U`@`````````` -XM``````````````)[(-`"```@Q@(`````']L"```````````````````````` -XM`4`!504``"#V`@``(.P"```AM0(````````````````````````">R#0`@`` -XM(,8"`````!H`````W@@``"1S='(``4\!MPL```.1L'\;8S$``5`!HP(````` -XM```<``````%4`3`"```?VP(````````````````````````!>`'6!0``(/8" -XM```@[`(``"&U`@````````````````````````)[(-`"```CQ@(````````` -XM`!_;`@````````````````````````%X`2,&```@]@(``"#L`@``(;4"```` -XM`````````````````````GL@T`(``"/&`@``````````']L"```````````` -XM`````````````7@!<`8``"#V`@``(.P"```AM0(````````````````````` -XM```">R#0`@``(\8"```````````?VP(````````````````````````!>`&] -XM!@``(/8"```@[`(``"&U`@````````````````````````)[(-`"```CQ@(` -XM`````````!\>`P````````````````````````%X`>@&```@.0,``",O`P`` -XM```````?VP(````````````````````````!>`$U!P``(/8"```@[`(``"&U -XM`@````````````````````````)[(-`"```CQ@(``````````!_;`@`````` -XM``````````````````%X`8('```@]@(``"#L`@``(;4"```````````````` -XM`````````GL@T`(``"/&`@``````````']L"```````````````````````` -XM`7@!SP<``"#V`@``(.P"```AM0(````````````````````````">R#0`@`` -XM(\8"```````````?VP(````````````````````````!>`$<"```(/8"```@ -XM[`(``"&U`@````````````````````````)[(-`"```CQ@(``````````!_; -XM`@````````````````````````%X`6D(```@]@(``"#L`@``(;4"```````` -XM`````````````````GL@T`(``"/&`@``````````']L"```````````````` -XM`````````7@!M@@``"#V`@``(.P"```AM0(````````````````````````" -XM>R#0`@``(\8"```````````E'@,````````````````````````!>`$@.0,` -XM`",O`P``````````']L"`````````````````````````48!)PD``"#V`@`` -XM(.P"```AM0(````````````````````````">R#0`@``(,8"`````"4"`P`` -XM``````````````````````&-`2,3`P```````````";;`@`````````````` -XM``````````&PDPD``"#V`@``(.P"```AM0(````````````````````````" -XM>R#0`@``(,8"`````"<"`P````````'+`:T)```C$P,`````````)ML"```` -XM`````````````````````<;U"0``(/8"```@[`(``"&U`@`````````````` -XM``````````)[(-`"```@Q@(`````*`(#`````````<@."@``(Q,#```````` -XM`!H`````#PL``!0``````>TP`@``&@`````["@``*0`````!\T4````````` -XM`"A$`P````````'O:`H``"-=`P```````"!4`P``'0`````J9@,````````` -XM`!T`````'@`````!#`%%`````````!_;`@````````````````````````$1 -XM`<8*```@]@(``"#L`@``(;4"`````````````````````````GL@T`(``"#& -XM`@`````G`@,````````!$P'@"@``(Q,#`````````"+;`@````````$3`2#V -XM`@``(.P"```KM0(````````">R#0`@``(,8"````````']L"```````````` -XM`````````````R#0`@``(,8"`````";;`@````````````````````````'(H`L``"#V -XM`@``(.P"```AM0(````````````````````````">R#0`@``(,8"`````"P` -XM`````24!10````D#````````````"Z````#'"P``#(4````&`"T!``````'D -XM`0%%``````````````````````````)W"!T,```N``````'A`3`"```````` -XM+@`````!X@$P`@```````"X``````>,!10``````````+P`````"6D4````! -XM`2\`````!5N8`@```0$O``````5<1`P```$!"0B8`@```)P$```"`,8````! -XM`?L."@`!`0$!`````2]U7!E+F@` -XM`@``&Y -XM*3LN@8$#=8T#H0)'`]]]1PAU`PZWQTB"!`(#J']_!`$#V`#AW7<#X0`(Q?+6 -XMH9\(CX&"1"XVK`0"`ZY^?P0!`](![PAS`PJ-`SN-KP0"`^%]500!`Y\"""L( -XMGX$I20,08ZH#J7Z;V`BYD%B&`W%'`Q,(MP,*?P.;?SD#Y0`Y`YM_?U8X.@/F -XM`&,#$(T##*G_CXX"1!`$`@/;?E4$`0.E`>$$`@.*?ZD$`0/V`'$#P@$([P/] -XM?;<#^0&;!`(#HWU'!`$#W0((*P0"`])]X00!`RNW!`(#IG]'!`$#V@`(*P0" -XM`U7A!`$#-;<#$XV#`U`")@$#]@`",0$")Q61`PG]C[D$`@.H?K<$`0/8`>'4 -XM20/D`*FK`YU__0,1FX`X2&CW`W)5`PY'`W)'.CA(:/<#9=:Y -XMN$@#$(W(`[Q^"'$$`@/=?CD$`0.C`0@K`[5_")L#+L6/19T",1`#W@$(J0.) -XM?W$##\4#"U4#:%4#&$<$`@/V?0@Y!`$#B@)_!`(#]GT",0$$`0.*`G\$`@/V -XM?0(N`00!`XH"?P0"`_9]`BX!!`$#B@)_!`(#B7X"+@$$`0/W`0A'!`(#]GT( -XM?P0!`XH"?P0"`_9]`BX!!`$#B@)_!`(#]GT"+@$$`0.*`G\$`@/V?0(N`00! -XM`XH"?P0"`_9]`BX!!`$#B@)_!`(#]GT"+@$$`0.*`G\$`@.)?@(S`00!`]T! -XM",4#HW\">`&/CP(N#4@#B0%C`X)_J;@#M0&-`\=]"%4#A@$('58$`@/;?E4$ -XM`0.E`>$$`@.*?ZD$`0/V`'%&U`0"`]M^500!`Z4!X00"`XI_J00!`_8`<48( -XM\(S4`\(!"'\#OGYQ`\(!"$<#OGYQ`\(!"+<#OGYQC`ARC-0#P@$(1P.^?G$# -XMP@$"*P$#OGYQX.($`@/;?E4$`0.E`>$$`@.*?ZD$`0/V`'%^`V73`BT.`V'3 -XM9H8#<4<#P0`(X0/"`0A_`Z%^<58(<`,=TP/"`0(N`0.B?G$(<`/N`0B-+`(( -XM``$!4$]325A,65]#3U)214-4`&%L;G5M`&%L<&AA`&)L86YK`&-N=')L`&1I -XM9VET`&=R87!H`&QO=V5R`'!R:6YT`'!U;F-T`'-P86-E`'5P<&5R`'AD:6=I -XM=```````%````/____\!``%X$`P'")`!````````/``````````````````` -XM`(4/````````0@X00@X80@X@0@XH00XP00XX1`Z``8,'A@:,!8T$C@./`@`` -XM`````!0````````````````````*`````````!0``````````7I2``%X$`$# -XM#`<(D`$``#0````<`````````(4/````0@X00@X80@X@0@XH00XP00XX1`Z` -XM`8,'A@:,!8T$C@./`@``````%````%0`````````"@`````````````````` -XM```````"``````````(`=P@"``````````0``````````@!W$`0````````` -XM!@`````````"`'<8!@`````````(``````````(`=R`(``````````D````` -XM`````@!W*`D`````````"@`````````"`'PP````````!`%6L#@```````-X.`````````0!5```` -XM````````````````````````````)@`````````!`%0F`````````$X````` -XM`````P"1F'].`````````&<``````````0!49P````````"%#P````````,` -XMD9A_````````````````````````````````)@`````````!`%$F```````` -XM`(4/`````````P"1E'\````````````````````````````````F```````` -XM``$`4B8`````````,@`````````#`)&0?S(`````````G@`````````!`%*> -XM`````````+0``````````P"1D'^T`````````#P!`````````0!22P$````` -XM``#(`0````````$`4HD"````````!@,````````!`%(J`P```````-L#```` -XM`````P"1D'_;`P````````0$`````````0!2'`0````````S!`````````$` -XM4DX$````````=P0````````!`%*%!````````/<$`````````0!2]@8````` -XM````!P````````$`4A0'````````8@<````````!`%*C!P```````+,'```` -XM`````P"1D'\8"````````!L(`````````P"1D'\;"````````#,(```````` -XM`0!20`@```````!Q"`````````,`D9!_@@@```````#I"`````````,`D9!_ -XM'@P````````_#`````````,`D9!_50P```````!J#`````````,`D9!_D@P` -XM``````"L#@````````,`D9!_K`X```````#>#@````````$`4MX.```````` -XMA0\````````#`)&0?P`````````````````````V`````````)X````````` -XM`0!6G@````````"E``````````$`4Z4`````````JP`````````!`%:K```` -XM`````+0``````````0!5M`````````!R!0````````$`5G(%````````;@8` -XM```````!`%5N!@```````!@(`````````0!6&P@```````"+"`````````$` -XM5HL(````````Z0@````````!`%/I"`````````0)`````````0!5!`D````` -XM``"("P````````$`5H@+````````^0L````````!`%7Y"P```````'$.```` -XM`````0!6<0X```````"L#@````````$`4ZP.````````_@X````````!`%;^ -XM#@```````"D/`````````0!3*0\```````!>#P````````$`5EX/```````` -XMA0\````````!`%,`````````````````````3@````````"M``````````$` -XM7+0`````````&`@````````!`%P;"````````(4/`````````0!<```````` -XM`````````````$X`````````8``````````#`)&/?V``````````F@`````` -XM```!`%":`````````)X``````````P"1CW^>`````````*H``````````0!3 -XMJ@````````"T``````````,`D8]_M`````````#+``````````$`4,L````` -XM````_0`````````#`)&/?_T`````````$`$````````!`%`0`0```````#4! -XM`````````P"1CW\U`0```````%(!`````````0!04@$```````!L`0`````` -XM``,`D8]_;`$```````"``0````````$`4(`!````````T@$````````#`)&/ -XM?](!````````+0(````````!`%$M`@```````(D"`````````P"1CW^)`@`` -XM`````)<"`````````0!0EP(```````";`@````````,`D8]_FP(```````!< -XM`P````````$`4]0#````````VP,````````#`)&/?]L#````````Z@,````` -XM```!`%/J`P```````.X#`````````0!0[@,```````!.!`````````,`D8]_ -XM3@0```````"%!`````````$`4X4$````````]P0````````#`)&/?_<$```` -XM````$P4````````!`%$3!0```````%\%`````````P"1CW]?!0```````'D% -XM`````````0!1>04```````"6!@````````,`D8]_E@8```````"@!@`````` -XM``$`4,X&````````V@8````````!`%#:!@```````/8&`````````P"1CW_V -XM!@`````````'`````````0!0``<````````4!P````````,`D8]_%`<````` -XM```8!P````````$`4!@'````````HP<````````#`)&/?Z,'````````LP<` -XM```````!`%.S!P```````,<'`````````0!0QP<```````#+!P````````,` -XMD8]_RP<```````#V!P````````$`4!8(````````&`@````````!`%`;"``` -XM`````$`(`````````P"1CW]`"````````'$(`````````0!3<0@```````!^ -XM"`````````$`4'X(````````BP@````````!`%/I"````````/D+```````` -XM`P"1CW_Y"P```````$H,`````````0!32@P```````!5#`````````,`D8]_ -XM50P```````!J#`````````$`4VH,````````;@P````````!`%!N#``````` -XM`'L,`````````P"1CW][#````````)(,`````````0!3K`X```````#>#@`` -XM``````$`4P````````````````````!.`````````!@(`````````P"1K'\; -XM"````````(4/`````````P"1K'\`````````````````````3@````````!G -XM``````````$`5'(`````````M``````````!`%2\`````````!4!```````` -XM`0!4;`$```````"T`0````````$`5,0!````````6`(````````!`%1T`@`` -XM`````/8"`````````0!4U`,````````!!`````````$`5$X$````````;P0` -XM```````!`%2%!````````&X&`````````0!4Y08`````````!P````````$` -XM5!0'````````10<````````!`%1-!P```````(('`````````0!4EP<````` -XM``"C!P````````$`5+,'````````&`@````````!`%0;"````````$`(```` -XM`````0!4Z0@````````-"0````````$`5(@+````````^0L````````!`%1J -XM#````````'L,`````````0!4K`X```````#>#@````````$`5``````````` -XM``````````!.`````````&H``````````0!2<@````````"T``````````$` -XM4KP`````````/`$````````!`%)+`0```````,@!`````````0!2VP$````` -XM``!(`@````````$`4E0"````````!@,````````!`%+4`P```````#,$```` -XM`````0!23@0```````!W!`````````$`4H4$````````;@4````````!`%)N -XM!@```````+0&`````````0!2Q@8`````````!P````````$`4A0'```````` -XMB@<````````!`%**!P```````(X'`````````0!0C@<```````"7!P`````` -XM``$`4K,'````````&`@````````!`%(;"````````$`(`````````0!22@P` -XM``````!5#`````````$`4FH,````````>PP````````!`%*L#@```````-X. -XM`````````0!2`````````````````````$X`````````6``````````!`%&> -XM`````````+0``````````0!1O`````````#%``````````$`4=\````````` -XMY``````````!`%#D`````````/T``````````0!1VP$```````#X`0`````` -XM``$`4`H"````````+0(````````!`%!_`@```````(D"`````````0!0U`,` -XM``````#;`P````````$`4?<$````````!`4````````!`%!?!0```````(0% -XM`````````0!0H`8```````"W!@````````$`4+<&````````Q@8````````! -XM`%'&!@```````/8&`````````0!0LP<````````8"`````````$`41L(```` -XM````0`@````````!`%'I"````````.L(`````````0!0:@P```````![#``` -XM``````$`40````````````````````!_!0```````(0%`````````0!0K`4` -XM``````"Q!0````````$`4-D%````````W@4````````!`%`"!@````````<& -XM`````````0!0*P8````````P!@````````$`4.L(``````````D````````! -XM`%"1"P```````)P+`````````0!0J0L```````"U"P````````$`4+X+```` -XM````RPL````````!`%#9"P```````.4+`````````0!0]`L```````#Y"P`` -XM``````$`4`````````````````````!.`````````(0"`````````0!1B0(` -XM```````8"`````````$`41L(````````&`D````````!`%$8"0```````",) -XM`````````0!0(PD```````!<"0````````$`46X)````````D@D````````! -XM`%&D"0```````,@)`````````0!1V@D````````L"@````````$`43X*```` -XM````8@H````````!`%%T"@```````)@*`````````0!1J@H```````#."@`` -XM``````$`4>`*````````!`L````````!`%$6"P```````#H+`````````0!1 -XM30L```````"%#P````````$`40````````````````````!.`````````%@` -XM`````````0!1G@````````"T``````````$`4;P`````````Q0`````````! -XM`%'?`````````/T``````````0!1?P(```````"$`@````````$`4=0#```` -XM````VP,````````!`%&S!P```````!@(`````````0!1&P@```````!`"``` -XM``````$`45$)````````7`D````````!`%!<"0```````)()`````````0!1 -XMI`D```````#("0````````$`4=H)````````+`H````````!`%$^"@`````` -XM`&(*`````````0!1=`H```````"8"@````````$`4:H*````````S@H````` -XM```!`%'@"@````````0+`````````0!1%@L````````Z"P````````$`44T+ -XM````````B`L````````!`%%J#````````'L,`````````0!1```````````` -XM`````````$X`````````6``````````!`%&>`````````+0``````````0!1 -XMO`````````#%``````````$`4=\`````````_0`````````!`%%_`@`````` -XM`(0"`````````0!1U`,```````#;`P````````$`4;,'````````&`@````` -XM```!`%$;"````````$`(`````````0!1APD```````"2"0````````$`4)() -XM````````R`D````````!`%':"0```````"P*`````````0!1/@H```````!B -XM"@````````$`470*````````F`H````````!`%&J"@```````,X*```````` -XM`0!1X`H````````$"P````````$`418+````````.@L````````!`%%-"P`` -XM`````(@+`````````0!1:@P```````![#`````````$`40`````````````` -XM``````!.`````````%@``````````0!1G@````````"T``````````$`4;P` -XM````````Q0`````````!`%'?`````````/T``````````0!1?P(```````"$ -XM`@````````$`4=0#````````VP,````````!`%&S!P```````!@(```````` -XM`0!1&P@```````!`"`````````$`4;T)````````R`D````````!`%#("0`` -XM`````"P*`````````0!1/@H```````!B"@````````$`470*````````F`H` -XM```````!`%&J"@```````,X*`````````0!1X`H````````$"P````````$` -XM418+````````.@L````````!`%%-"P```````(@+`````````0!1:@P````` -XM``![#`````````$`40````````````````````#'!P```````,L'```````` -XM`0!0\PD```````#Z"0````````$`4/H)````````#0H````````!`%`````` -XM````````````````3@````````!8``````````$`49X`````````M``````` -XM```!`%&\`````````,4``````````0!1WP````````#]``````````$`47\" -XM````````A`(````````!`%'4`P```````-L#`````````0!1LP<````````8 -XM"`````````$`41L(````````0`@````````!`%$A"@```````"P*```````` -XM`0!0+`H```````!B"@````````$`470*````````F`H````````!`%&J"@`` -XM`````,X*`````````0!1X`H````````$"P````````$`418+````````.@L` -XM```````!`%%-"P```````(@+`````````0!1:@P```````![#`````````$` -XM40````````````````````!.`````````%@``````````0!1G@````````"T -XM``````````$`4;P`````````Q0`````````!`%'?`````````/T````````` -XM`0!1?P(```````"$`@````````$`4=0#````````VP,````````!`%&S!P`` -XM`````!@(`````````0!1&P@```````!`"`````````$`45<*````````8@H` -XM```````!`%!B"@```````)@*`````````0!1J@H```````#."@````````$` -XM4>`*````````!`L````````!`%$6"P```````#H+`````````0!130L````` -XM``"("P````````$`46H,````````>PP````````!`%$````````````````` -XM````3@````````!8``````````$`49X`````````M``````````!`%&\```` -XM`````,4``````````0!1WP````````#]``````````$`47\"````````A`(` -XM```````!`%'4`P```````-L#`````````0!1LP<````````8"`````````$` -XM41L(````````0`@````````!`%&-"@```````)@*`````````0!0F`H````` -XM``#."@````````$`4>`*````````!`L````````!`%$6"P```````#H+```` -XM`````0!130L```````"("P````````$`46H,````````>PP````````!`%$` -XM````````````````````3@````````!8``````````$`49X`````````M``` -XM```````!`%&\`````````,4``````````0!1WP````````#]``````````$` -XM47\"````````A`(````````!`%'4`P```````-L#`````````0!1LP<````` -XM```8"`````````$`41L(````````0`@````````!`%'#"@```````,X*```` -XM`````0!0S@H````````$"P````````$`418+````````.@L````````!`%%- -XM"P```````(@+`````````0!1:@P```````![#`````````$`40`````````` -XM``````````!.`````````%@``````````0!1G@````````"T``````````$` -XM4;P`````````Q0`````````!`%'?`````````/T``````````0!1?P(````` -XM``"$`@````````$`4=0#````````VP,````````!`%&S!P```````!@(```` -XM`````0!1&P@```````!`"`````````$`4?D*````````!`L````````!`%`$ -XM"P```````#H+`````````0!130L```````"("P````````$`46H,```````` -XM>PP````````!`%$`````````````````````3@````````!8``````````$` -XM49X`````````M``````````!`%&\`````````,4``````````0!1WP`````` -XM``#]``````````$`47\"````````A`(````````!`%'4`P```````-L#```` -XM`````0!1LP<````````8"`````````$`41L(````````0`@````````!`%$O -XM"P```````#H+`````````0!0.@L```````"("P````````$`46H,```````` -XM>PP````````!`%$`````````````````````G@````````"E``````````$` -XM4-L!````````^`$````````!`%`*`@```````"T"`````````0!0?P(````` -XM``")`@````````$`4/<$````````!`4````````!`%!?!0```````(0%```` -XM`````0!0QP<```````#+!P````````$`4.D(````````ZP@````````!`%!J -XM"P```````'4+`````````0!0=0L```````"("P````````$`4``````````` -XM``````````!.`````````&H``````````0!2<@````````"T``````````$` -XM4KP`````````/`$````````!`%)+`0```````,@!`````````0!2VP$````` -XM```M`@````````$`4BT"````````2`(````````!`%!(`@```````%0"```` -XM`````0!25`(```````!D`@````````$`4&0"````````!@,````````!`%+4 -XM`P```````#,$`````````0!23@0```````!W!`````````$`4H4$```````` -XM;@4````````!`%)I!@```````&X&`````````0!0;@8```````"%!@`````` -XM``$`4N4&``````````<````````!`%(4!P```````(('`````````0!2EP<` -XM``````">!P````````$`4IX'````````HP<````````!`%"S!P```````!@( -XM`````````0!2&P@```````!`"`````````$`4DH,````````50P````````! -XM`%!J#````````'L,`````````0!2K`X```````#>#@````````$`4@`````` -XM``````````````!.`````````&H``````````0!2<@````````":```````` -XM``$`4IH`````````G@`````````!`%">`````````+0``````````0!2O``` -XM```````\`0````````$`4DL!````````R`$````````!`%*)`@````````8# -XM`````````0!2U`,```````#N`P````````$`4NX#````````!`0````````! -XM`%`$!````````!<$`````````0!2%P0````````#P```````(4/`````````0!=```````````````` -XM`````/8"````````!@,````````!`%0`````````````````````G@`````` -XM``"Q``````````$`7@D#````````#`,````````!`%`,`P```````-L#```` -XM`````0!>HP<```````"S!P````````$`7D`(````````<0@````````!`%Y^ -XM"````````.D(`````````0!>^0L```````!*#`````````$`7E4,```````` -XM:@P````````!`%Y[#````````*P.`````````0!>W@X```````"%#P`````` -XM``$`7@````````````````````">`````````+0``````````P"1J'\Q`P`` -XM`````-L#`````````P"1J'^C!P```````+,'`````````P"1J']`"``````` -XM`'$(`````````P"1J']5#````````&H,`````````P"1J'^2#````````'$. -XM`````````P"1J'_>#@```````/X.`````````P"1J'\I#P```````%X/```` -XM`````P"1J'\`````````````````````G@````````"E``````````$`4*4` -XM````````M``````````!`%%Z`P```````*0#`````````0!0I`,```````"S -XM`P````````$`4;,#````````T`,````````!`%"7#````````*X,```````` -XM`0!0K@P```````"]#`````````$`4;T,````````Y@P````````!`%#F#``` -XM`````/4,`````````0!1]0P````````'#0````````$`4#$-````````0@T` -XM```````!`%!1#0```````&(-`````````0!0-0X```````!,#@````````$` -XM4$P.````````6PX````````!`%%;#@```````'$.`````````0!0*0\````` -XM``!/#P````````$`4`````````````````````"0#P```````)H/```````` -XM`0!5`````````````````````)`/````````F@\````````!`%0````````` -XM````````````D`\```````"5#P````````$`494/````````F@\````````! -XM`%(`````````````````````&@````(``````$L,``#'"P``9FYM871C:``` -XM````+`````(```````@`````````````````F@\````````````````````` -XM````````-@`````````[`````````&H,````````@`P```````!*#``````` -XM`%4,````````Z0@`````````#````````+,'````````&P@```````!%!P`` -XM`````*,'````````M@0````````4!P```````'`!````````B0(````````` -XM````````````````````-@`````````[`````````$H,````````50P````` -XM``#I"``````````,````````8@<```````"C!P```````&`%````````Y08` -XM``````#W!````````$0%````````X`$```````")`@```````-(!```````` -XMU0$```````#,`0```````-`!`````````````````````````````'P&```` -XM````V@8```````""!P```````)<'`````````````````````````````)T& -XM````````H`8```````"_!@```````,8&```````````````````````````` -XM`#8`````````.P````````#I"``````````,````````:@4```````!D!@`` -XM``````````````````````````"6`````````)H`````````$`0````````< -XM!`````````````````````````````!;`0```````%\!````````0@0````` -XM``!.!`````````````````````````````#S`@```````-0#````````7@\` -XM``````"%#P```````/X.````````5P\```````#>#@```````/<.```````` -XM%PX```````"L#@```````.4-````````$`X```````"1#0```````-X-```` -XM````;0T```````"*#0```````%$-````````9@T```````"`#````````$H- -XM````````50P```````!J#``````````,````````2@P```````!^"``````` -XM`.((````````0`@```````!Q"````````*,'````````LP<````````````` -XM````````````````?@@```````#B"````````%X/````````A0\```````#^ -XM#@```````"D/````````<0X```````"L#@`````````````````````````` -XM``#V`@```````/D"````````@`P```````"2#`````````$#````````$@,` -XM````````````````````````````!@,````````)`P````````P#```````` -XM$@,`````````````````````````````)@,```````#4`P```````"D/```` -XM````5P\```````#>#@```````/<.````````%PX```````!Q#@```````.4- -XM````````$`X```````"1#0```````-X-````````;0T```````"*#0`````` -XM`%$-````````9@T```````"2#````````$H-````````50P```````!J#``` -XM`````$`(````````<0@```````"C!P```````+,'```````````````````` -XM`````````*P#````````LP,```````!4#@```````%L.````````[@P````` -XM``#U#````````+8,````````O0P`````````````````````````````D@,` -XM``````"A`P```````#H.````````20X```````#4#````````.,,```````` -XMG`P```````"K#`````````````````````````````"2`P```````*$#```` -XM````.@X```````!)#@```````-0,````````XPP```````"<#````````*L, -XM`````````````````````````````')E'0`+F1A=&$`+F)S````````H`0```````````````````$` -XM``````````````````!0````!`````````````````````````#P=0`````` -XM`!@`````````&`````@````(`````````!@`````````80````$````R```` -XM````````````````*R,```````!9`````````````````````0`````````! -XM`````````'4````!`````````````````````````(@C````````<``````` -XM``````````````@```````````````````!P````!``````````````````` -XM```````(=@```````&``````````&`````L````(`````````!@````````` -XMAP````$````"````````````````````^",```````!H```````````````` -XM````"````````````````````((````$`````````````````````````&AV -XM````````,``````````8````#0````@`````````&`````````"1`````0`` -XM``````````````````````!@)````````!XD```````````````````!```` -XM````````````````H0````$`````````````````````````?D@````````> -XM`````````````````````0```````````````````)P````$```````````` -XM`````````````)AV````````&``````````8````$`````@`````````&``` -XM``````"V`````0````````````````````````"<2````````#`````````` -XM```````````!````````````````````L0````0````````````````````` -XM````L'8````````P`````````!@````2````"``````````8`````````,4` -XM```!`````````````````````````,Q(````````L`4````````````````` -XM``$```````````````````#3`````0```#````````````````````!\3@`` -XM`````/@"```````````````````!``````````$`````````W@````$````` -XM````````````````````=%$````````F`````````````````````0`````` -XM`````````````!$````#`````````````````````````)I1````````YP`` -XM``````````````````$````````````````````!`````@`````````````` -XM```````````(60```````%@"````````&0```!,````(`````````!@````` -XM````"0````,`````````````````````````8%L```````![```````````` -XM`````````0`````````````````````````````````````````````````` -XM``$````$`/'_```````````````````````````#``$````````````````` -XM```````````#``,````````````````````````````#``0````````````` -XM```````````````#``4````````````````````````````#``8````````` -XM```````````````````#``@````````````````````````````#``H````` -XM``````````````````L````"``$```````````"%#P```````!P````!``0` -XM```````````$```````````````#``L````````````````````````````# -XM``T````````````````````````````#``\````````````````````````` -XM```#`!`````````````````````````````#`!(````````````````````` -XM```````#`!0````````````````````````````#`!4````````````````` -XM```````````#`!8``````````````````````#$````0```````````````` -XM`````````#\````0`````````````````````````%(````0```````````` -XM`````````````%D````0`````````````````````````&`````0```````` -XM`````````````````',````2``$`D`\````````*``````````!F;FUA=&-H -XM+F,`:6YT97)N86Q?9FYM871C:`!P;W-I>&QY7V-O@H````````*```` -XM"````#H`````````CPH````````"````$P```/S_________FPH````````" -XM````%````/S_________L`H````````*````"````$``````````Q0H````` -XM```"````$P```/S_________T0H````````"````%````/S_________Y@H` -XM```````*````"````$8`````````^PH````````"````$P```/S_________ -XM!PL````````"````%````/S_________'`L````````*````"````$P````` -XM````,0L````````"````$P```/S_________/0L````````"````%````/S_ -XM________4PL````````*````"````%(`````````>`L````````+````%P`` -XM`$(`````````A@P````````"````%0```/S_________G@P````````"```` -XM$P```/S_________IPP````````"````%````/S_________U@P````````" -XM````$P```/S_________WPP````````"````%````/S_________/`X````` -XM```"````$P```/S_________10X````````"````%````/S_________!@`` -XM```````*````!0``````````````#``````````*````$0```,H````````` -XM$0`````````*````$0````8!````````%0`````````!`````@`````````` -XM````'0`````````!`````@```)H/````````)0`````````*````!P`````` -XM````````+``````````*````$0```)0!````````,P`````````*````$0`` -XM`'@!````````.@`````````*````$0```#$`````````00`````````*```` -XM$0```.X!````````3P`````````*````$0```+4!````````5@`````````* -XM````$0```.H`````````6P`````````*````$0```"L"````````:``````` -XM```*````$0```&L"````````;P`````````*````$0```'T"````````=@`` -XM```````*````$0```+8`````````>P`````````*````$0```!4"```````` -XMBP`````````*````$0```&P!````````E@`````````*````$0```(D````` -XM````HP`````````*````$0```!`"````````L``````````*````$0```)L" -XM````````O@`````````*````$0```$L"````````S``````````*````$0`` -XM`&8!````````V@`````````*````$0```*D"````````[P`````````*```` -XM$0```$`"`````````@$````````*````$0```,8"````````$`$````````* -XM````$0```$(`````````)0$````````*````$0```.,!````````.0$````` -XM```*````$0```)T`````````1P$````````*````$0```-L"````````50$` -XM```````*````$0```-`"````````8P$````````*````$0```%$"```````` -XM<0$````````*````$0```$04````````*````#0```(0.```````` -XM?@4````````*````$0```,T!````````C@4````````!`````@```!@)```` -XM````E@4````````!`````@```"`)````````M`4````````!`````@```!@) -XM````````O`4````````!`````@```"`)````````T`4````````*````#0`` -XM`&4/````````VP4````````!`````@```%$)````````XP4````````!```` -XM`@```%D)`````````08````````!`````@```%$)````````"08````````! -XM`````@```%D)````````'08````````*````#0```'\0````````*`8````` -XM```!`````@```(<)````````,`8````````!`````@```(\)````````3@8` -XM```````!`````@```(<)````````5@8````````!`````@```(\)```````` -XM:@8````````*````#0```/@1````````=08````````!`````@```+T)```` -XM````?08````````!`````@```,4)````````FP8````````!`````@```+T) -XM````````HP8````````!`````@```,4)````````MP8````````*````#0`` -XM`%X3````````P@8````````!`````@```/,)````````R@8````````!```` -XM`@````@*````````XP8````````*````#0```+$4````````[08````````! -XM`````@```"$*````````]08````````!`````@```"D*````````$P<````` -XM```!`````@```"$*````````&P<````````!`````@```"D*````````+P<` -XM```````*````#0```/H4````````.@<````````!`````@```%<*```````` -XM0@<````````!`````@```%\*````````8`<````````!`````@```%<*```` -XM````:`<````````!`````@```%\*````````?`<````````*````#0```#H6 -XM````````AP<````````!`````@```(T*````````CP<````````!`````@`` -XM`)4*````````K0<````````!`````@```(T*````````M0<````````!```` -XM`@```)4*````````R0<````````*````#0```&<7````````U`<````````! -XM`````@```,,*````````W`<````````!`````@```,L*````````^@<````` -XM```!`````@```,,*`````````@@````````!`````@```,L*````````%@@` -XM```````*````#0```($8````````(0@````````!`````@```/D*```````` -XM*0@````````!`````@````$+````````1P@````````!`````@```/D*```` -XM````3P@````````!`````@````$+````````8P@````````*````#0```(@9 -XM````````;@@````````!`````@```"\+````````=@@````````!`````@`` -XM`#<+````````E`@````````!`````@```"\+````````G`@````````!```` -XM`@```#<+````````L`@````````*````#0```'P:````````NP@````````! -XM`````@```&H+````````PP@````````!`````@```(@+````````V`@````` -XM```*````#0```%T;````````XP@````````!`````@```!@%````````ZP@` -XM```````!`````@```"<%````````"0D````````!`````@```!@%```````` -XM$0D````````!`````@```"<%````````+`D````````!`````@```)<'```` -XM````-`D````````!`````@```*,'````````1`D````````*````#0```"L< -XM````````4`D````````!`````@```%@`````````6`D````````!`````@`` -XM`&<`````````=0D````````!`````@```%@`````````?0D````````!```` -XM`@```&<`````````F`D````````*````$````-`!````````J`D````````* -XM````#0```/`=````````L@D````````!`````@```"T!````````N@D````` -XM```!`````@```#P!````````UPD````````!`````@```"T!````````WPD` -XM```````!`````@```#P!````````^@D````````*````$``````"```````` -XM"0H````````*````#0```%8?````````#PH````````*````$````#`"```` -XM````&`H````````*````$0```(0`````````(PH````````*````$````#`# -XM````````+`H````````*````$0```$L`````````-@H````````*````#0`` -XM`#<@````````0`H````````*````$````(`#````````3PH````````*```` -XM#0```+D@````````60H````````*````$````,`#````````8@H````````* -XM````#0```-P@````````:0H````````*````$````/`#````````;@H````` -XM```*````$0```$L`````````>0H````````*````#0```*HA````````@@H` -XM```````!`````@```$,(````````B@H````````!`````@```%8(```````` -XMJ`H````````!`````@```$,(````````L`H````````!`````@```%8(```` -XM````RPH````````*````$````,`$````````VPH````````*````#0```&(B -XM````````Y0H````````*````$````!`%````````^PH````````*````$``` -XM`&`%````````%`L````````!`````@```.X#````````'`L````````!```` -XM`@````$$````````.@L````````!`````@```.X#````````0@L````````! -XM`````@````$$````````70L````````!`````@```"`$````````90L````` -XM```!`````@```#,$````````@@L````````!`````@```"`$````````B@L` -XM```````!`````@```#,$````````H0L````````*````$0```%8!```````` -XMK@L````````!````!```````````````R0L````````*````$0```*$"```` -XM````U0L````````!`````@```)`/````````W0L````````!`````@```)H/ -XM````````[0L````````*````$0```!H`````````^`L````````*````#0`` -XM`*(C````````_0L````````*````$0```/,`````````"`P````````*```` -XM#0```,4C````````#0P````````*````$0```*`!````````&`P````````* -XM````#0```.@C````````'@P````````*````$0```(8!````````*PP````` -XM```*````$0````<`````````.`P````````*````$0```&4`````````TP`` -XM```````!`````@``````````````'``````````*````"P`````````````` -XM(``````````!`````@``````````````7``````````*````"P`````````` -XM````8``````````!`````@```)`/````````(``````````*`````@`````` -XM````````6``````````*`````@```)`/````````!@`````````*````!@`` -XM````````````!@`````````*````!@``````````````$``````````!```` -X,`@`````````````` -X` -Xend -b483319a2b8624af2d41c47d4e321b7b -echo c - ./kmkbuiltin -mkdir -p ./kmkbuiltin > /dev/null 2>&1 -echo x - ./kmkbuiltin/kbuild_protection.o.uu -sed 's/^X//' >./kmkbuiltin/kbuild_protection.o.uu << 'ba9c783b814204367d9452f4eebce68e' -Xbegin 644 ./kbuild_protection.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````-@J```` -XM`````````$```````$``'``9`,<'`!$1`,9'"0#&1P@!QT<$`@```,-F9F:0 -XM9F:09F:0QP<`````PV9FD&9FD&9FD+@"````PV9F9I!F9I!F9I!(B5PD\$B) -XM;"3X2(/L&($_`!$1`$B)^XGU=!FY`````+KW````O@````"_`````.@````` -XM@_T!=AFY`````+KX````O@````"_`````.@`````B>B`9`,(_DB+7"0(2(ML -XM)!!(@\08PV9F9I!F9F:02(E<)/!(B6PD^$B#[!B!/P`1$0!(B?N)]709N0`` -XM``"Z[P```+X`````OP````#H`````(/]`789N0````"Z\````+X`````OP`` -XM``#H`````(GH@$P#"`%(BUPD"$B+;"002(/$&,-F9F:09F9FD%5%,E(@_D"=")( -XM@^D!=$I!@\`!A,!(C6H!=#$/MG4`0(#^+W6]2(/%`>OP0(#^+G7>@'T!+G78 -XM187`9F9FD'[308/H`83`2(UJ`77/2('$"!```$2)P%M=PT"`_BYUL.NR0(#_ -XM+@^%7/___X!^`2X/A5+___]%A<`/CDW___]!@^@!Z43___]F9F:09F:00(#_ -XM+@^%+____V9FD&9FD.DH____O@````"_`0```.@`````0;C_____ZY)F9F:0 -XM2(E<).A(B6PD\$B)^TR)9"3X2(/L&($_`!$1`(GU28G4=!FY`````+I6`0`` -XMO@````"_`````.@`````@_T!=AFY`````+I7`0``O@````"_`````.@````` -XMB>CV1`,(`W4&]D,)`W063(GGZ!_^__^%P+K_____>`<[0P1V%S'22(L<)$B+ -XM;"0(B=!,BV0D$$B#Q!C#3(GBO@````"_`0```#'`Z`````"Z_____^O09F9F -XMD&9F9I!F9F:09F:054B)_5-(B?-(@^P8#[X6A=)X+(LU`````#GR?2)(BPT` -XM````ZP](@\,!#[X3A=)X#CGR?0I(8\+V1,%!0'7G@_I_=PU(8\+V!,4````` -XM!'4<2(G?Z'?]__^%P(E%!`^$HP```$B#Q!@QP%M=P[X`````2(G?Z`````!( -XMA-``# -XM#CH+.PM)$P``'S0``P@Z"SL+21,``"`N`0,..@L["R<,21,1`1(!0`8!$P`` -XM(30``PXZ"SL+21,"!@``(@L!508!$P``(S0``PXZ"SL+21,""@``)!T!,1-5 -XM!E@+60L``"4%`#$3```F"P%5!@``)S0`,1,"!@``*#0`,1,``"DA`$D3+P4` -XM`"HN`3\,`PXZ"SL%)PQ)$Q$!$@%`!@$3```K!0`##CH+.P5)$P(&```L-``# -XM#CH+.P5)$P(&```M'0$Q$U4&6`M9!0$3```N!0`Q$P(&```O'0$Q$Q$!$@%8 -XM"UD%`1,``#`+`1$!$@$``#$=`3$35098"UD%```R-``#"#H+.P5)$P(&```S -XM-``##CH+.P5)$P``-#0``PXZ"SL+21,_##P,````<0@```(```````@!```` -XM``$````````````````````````````````"`08``````@$(``````("!0`` -XM```"`@<``````P0%:6YT``($!P`````""`4`````!``````#.F4````""`<` -XM`````@@$``````($!``````$``````-26@````4(!P8(!``````$5D4````$ -XM``````17B@````(!!@`````'"*`````'"+,````(H`````0`````!>AZ```` -XM`@@%``````D8!C0+`0``"@`````&-94````"(P`*``````8VE0````(C!`H` -XM````!C>5`````B,("@`````&.`L!```"(Q``!PAE````!``````&.@````]3`@````<(K0`` -XM``<(.0(```X!10```'X"```/E0````^G````#WH````/?@(````'"*<````' -XM"%\"```,90```)H"```-A0```/\`#)4```"J`@``#84```#_``0`````!E=2 -XM`0``$`0'(M8"```1```````1```````1``````$1``````(`!``````')[4" -XM```2``````P'+Q@#```*``````8H````47V8``GEE````%0`3``````*``44````#S0,``!1?8P`"?XH` -XM```47V8``G]E`````!8!``````':`0`````````````````````"=PC[`P`` -XM%P`````!V3,#```!50`6`0`````!Z`$``````````````````````G<(*00` -XM`!<``````>!```&@`````!]3,# -XM````````&@`````!]=8"````````&P`````]"````0D#````````````&0$` -XM`````>X!``````````````````````````#R!```&@`````![3,#```````` -XM&@`````![=8"````````&P`````H"````0D#````````````$P`````!1`%% -XM`````3(%```<``````%#K0```!P``````4-%````'1X``````4>M````'V-C -XM:``!2+@``````"```````74!10``````````````````````````````W@4` -XM`!H``````72M`````````"$``````79%`````````"(`````MP4``",````` -XM`<'>!0```Y'@7R3R!`````````'')0X%```E`P4``"8`````)QH%```````` -XM*"4%```````D\@0````````!T"4.!0``)0,%```F`````"@:!0``*"4%```` -XM```,H````.\%```IA0```/\/`"H!``````%5`0%%```````````````````` -XM``````````!T!@``*P`````!5`%$`P```````"L``````50!U@(````````K -XM``````%4`:T`````````(@````!?!@``+``````!7P%%```````````;```` -XM`$((```!"0,````````````J`0`````!!0$!10`````````````````````` -XM````````:@<``"L``````00!,P,````````K``````$$`:T`````````+8`# -XM`````````0R5U`P``+FL#```` -XM```````OIP,````````````````````````!"P$6!P``)<(#```EN`,````P -XM`````````````````````"P``````0\!IP`````````Q@`,````````!%`$E -XMFP,``"61`P``)%H#`````````GLE=0,``"YK`P`````````````J`0`````! -XM*P$!10``````````````````````````````$P@``"L``````2H!,P,````` -XM```K``````$J`7X"````````*P`````!*@&M`````````#)I``$L`4P````` -XM````+``````!+0$3"````````"8`````+``````!,0&M`````````#`````` -XM````````````````,P`````!-P&M````````"+@````,H````"@(```-A0`` -XM`!8`"!@(```,H````#T(```-A0```!<`""T(```(+0@``#0``````EI%```` -XM`0$T``````9;J@(```$!-``````&7&X(```!`0<(J@(````F`@```@#K```` -XM`0'[#@H``0$!`0````$O=7-R+W!O7,``&MB=6EL9%]P -XM7!E+F@``@``7W1Y<&5S+F@``P``7W1Y<&5S -XM+F@`!```='EP97,N:``$``!R=6YE='EP92YH``(``&MB=6EL9%]P.C`0"`]I^.00!`ZD!1PB2 -XM"#L##0A'_S=E5S<["((('T@((P@>@`@>`W%_`Q*D#"0B;"%8" -XM"P`!`7!4:&ES+3YU36%G:6,@/3T@2T)524Q$7U!23U1%0U1)3TY?34%'24,` -XM`````````"]U7!E(#P@2T)524Q$4%)/5$5#5$E/3E194$5?34%8("8F(&5N -XM;51Y<&4@/CT@2T)524Q$4%)/5$5#5$E/3E194$5?1DE24U0`9V5T8W=D`"5S -XM.B!P``````````$`4YX````` -XM````J``````````!`%4`````````````````````0`````````!;```````` -XM``$`5%L`````````E``````````!`%:4`````````*@``````````0!0```` -XM`````````````````+``````````O@`````````"`'<(O@`````````8`0`` -XM``````(`=R``````````````````````L`````````#+``````````$`5T!````````_0$````````!`%$> -XM`@```````"L"`````````0!1,P(```````!Z`@````````$`5``````````` -XM``````````"0`@```````*8"`````````@!W"*8"````````00,````````" -XM`'<@`````````````````````)`"````````QP(````````!`%7'`@`````` -XM`!4#`````````0!3%0,````````F`P````````$`528#````````00,````` -XM```!`%,`````````````````````D`(```````"S`@````````$`5+,"```` -XM````[`(````````!`%;L`@````````$#`````````0!0#P,````````<`P`` -XM``````$`4`````````````````````"0`@```````+,"`````````0!1LP(` -XM```````A`P````````$`7"8#````````00,````````!`%P````````````` -XM`````````P,````````<`P````````$`4"8#````````-0,````````!`%`` -XM````````````````````4`,```````!1`P````````(`=PA1`P```````%4# -XM`````````@!W$%4#````````7`,````````"`'<87`,```````!R!``````` -XM``(`=S``````````````````````4`,```````!C`P````````$`56,#```` -XM````O`,````````!`%:]`P```````'$$`````````0!6```````````````` -XM`````%`#````````:0,````````!`%1I`P```````+L#`````````0!3O0,` -XM``````!P!`````````$`4P````````````````````!?`P```````'8#```` -XM`````0!1=@,```````!]`P````````$`4'T#````````B`,````````!`%&( -XM`P```````(\#`````````0!0CP,```````"7`P````````$`49<#```````` -XMJ0,````````!`%"]`P```````,H#`````````0!0```````````````````` -XM`+0#````````O0,````````!`%'B`P```````/L#`````````@"18/L#```` -XM````'@0````````!`%$>!````````"T$`````````0!2+00````````]!``` -XM``````$`43T$````````200````````!`%))!````````%<$`````````0!1 -XM5P0```````!R!`````````(`D6``````````````````````M`,```````"Z -XM`P````````$`4/X#````````%00````````!`%`5!````````#D$```````` -XM`0!0.00```````!`!`````````$`4$D$````````9@0````````!`%`````` -XM````````````````@`0```````""!`````````(`=PB"!````````(<$```` -XM`````@!W$(<$````````C`0````````"`'<8C`0```````".!`````````(` -XM=R".!````````)4$`````````@!W*)4$````````E@0````````"`'7!E`'!A<'-Z -XM16YV`$M"54E,1%!23U1%0U1)3TY465!%7T9)4E-4`&QO;F<@:6YT`%]?;6%P -XM;&]W97(`2T)524Q$4%)/5$5#5$E/3E194$5?1E5,3`!P7!E`'!S>E9A<@!?0W5R0!C8VA0E9A;`!+0E5)3$104D]414-424].5%E015]-05@` -XM=6YS:6=N960@8VAA<@!?4G5N95)A;F=E`%]?E!R -XM969I>`!'3E4@0R`T+C(N,2`R,#`W,#7!E7V5X=`!?7VUA<`!? -XM7VUA>```1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#'0`+F1A=&$`+F)S -XM`!K0G5I;&10`````````%L` -XM````````"@```!4```"A`@```````&@`````````"@```!4```"A`0`````` -XM`&\`````````"@```!4````5`0```````'8`````````"@```!4```"L`@`` -XM`````'L`````````"@```!4```!B`0```````(L`````````"@```!4````/ -XM!````````)8`````````"@```!4```!L`````````*,`````````"@```!4` -XM``!:`P```````+D`````````"@```!4```!$`````````,8`````````"@`` -XM`!4```"*`````````-,`````````"@```!4````^`````````.$````````` -XM"@```!4```"!@```````#P'````````"@`` -XM`!0```"``0```````%('````````"@```!0```#``0```````&('```````` -XM"@```!$````(!P```````&P'````````"@```!4```!?`P```````'@'```` -XM`````0````(```"`!````````(`'`````````0````(```"$!0```````(@' -XM````````"@```!$```!W!P```````)$'````````"@```!4```#V`P`````` -XM`)P'````````"@```!$````H"````````*$'````````"@```!4```"Z```` -XM`````*P'````````"@```!$```!Q"````````+$'````````"@```!4````P -XM`P```````+P'````````"@```!$```"Z"````````,H'````````"@```!$` -XM```#"0```````,\'````````"@```!4```!'`@```````-H'````````"@`` -XM`!$```"8"0```````-\'````````"@```!0``````@```````.0'```````` -XM"@```!4````F`0```````.\'````````"@```!$```#."0```````/0'```` -XM`````0````(```!(!0```````/P'`````````0````(```!C!0````````4( -XM````````"@```!4```"[`@```````$@(````````"@```!4```!4`0`````` -XM`%4(````````"@```!4````)`P```````&((````````"@```!4````M`0`` -XM`````/@``````````0````(``````````````!P`````````"@````\````` -XM`````````"```````````0````(``````````````#0`````````"@````\` -XM`````````````#@``````````0````(````@`````````$P`````````"@`` -XM``\``````````````%```````````0````(````P`````````&0````````` -XM"@````\``````````````&@``````````0````(```!``````````(0````` -XM````"@````\``````````````(@``````````0````(```"P`````````*0` -XM````````"@````\``````````````*@``````````0````(````@`0`````` -XM`,P`````````"@````\``````````````-```````````0````(```"0`@`` -XM`````/0`````````"@````\``````````````/@``````````0````(```!0 -XM`P```````!P!````````"@````\``````````````"`!`````````0````(` -XM``"`!````````"``````````"@````(``````````````#@`````````"@`` -XM``(````@`````````%``````````"@````(````P`````````&@````````` -XM"@````(```!``````````(``````````"@````(```"P`````````)@````` -XM````"@````(````@`0```````+@`````````"@````(```"0`@```````-@` -XM````````"@````(```!0`P```````/@`````````"@````(```"`!``````` -XM``8`````````"@````8```````````````8`````````"@````8````````` -X<`````!```````````0````(````````````````` -X` -Xend -ba9c783b814204367d9452f4eebce68e -echo x - ./kmkbuiltin/err.o.uu -sed 's/^X//' >./kmkbuiltin/err.o.uu << '0e59f08b905695fcc4fe4d89f926df6c' -Xbegin 644 ./err.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````.@3```` -XM`````````$```````$``&@`7`%-(B?M(@>S0````2(E4)#`/MM!(B4PD.$B- -XM!)4`````N@````!,B40D0$R)3"1(2(ET)"A(*<)(C80DSP```/_B#REX\0\I -XM<.$/*6C1#RE@P0\I6+$/*5"A#RE(D0\I0('H`````$B+%0````!(BST````` -XMO@`````QP.@`````2(V$).````!(BST`````2(GB2(G>QP0D"````,=$)`0P -XM````2(E$)`A(C40D($B)1"00Z`````!(BS4`````OPH```#H`````$B!Q-`` -XM``!;PV9F9I!F9F:09F:09F:0051!B?Q32(GSO@````!(@>S8````2(E4)#`/ -XMMM!(B4PD.$B-!)4`````N@````!,B40D0$R)3"1(2"G"2(V$),\```#_X@\I -XM>/$/*7#A#REHT0\I8,$/*5BQ#RE0H0\I2)$/*4"!2(L5`````#'`2(L]```` -XM`.@`````2(V$)/````!(BST`````2(GB2(G>QP0D$````,=$)`0P````2(E$ -XM)`A(C40D($B)1"00Z`````!(BS4`````OPH```#H`````$B!Q-@```!$B>!; -XM05S#9F9FD&9F9I!F9I!F9I!!5%-(B?M(@>S8````2(E4)#`/MM!(B4PD.$B- -XM!)4`````N@````!,B40D0$R)3"1(2(ET)"A(*<)(C80DSP```/_B#REX\0\I -XM<.$/*6C1#RE@P0\I6+$/*5"A#RE(D0\I0('H`````$B+%0````!(BST````` -XMO@````!$BR`QP.@`````2(V$)/````!(BST`````2(GB2(G>QP0D"````,=$ -XM)`0P````2(E$)`A(C40D($B)1"00Z`````!$B>?H`````$B+/0````!(B<*^ -XM`````#'`Z`````!(@<38````6T%SH````08G]2(E4)#`/MM!(B4PD.$B-!)4`````N@````!,B40D -XM0$R)3"1(2"G"2(V$),\```#_X@\I>/$/*7#A#REHT0\I8,$/*5BQ#RE0H0\I -XM2)$/*4"!Z`````!(BQ4`````2(L]`````+X`````1(L@,<#H`````$B-A"3P -XM````2(L]`````$B)XDB)WL<$)!````#'1"0$,````$B)1"0(2(U$)"!(B40D -XM$.@`````1(GGZ`````!(BST`````2(G"O@`````QP.@`````1(GH2(N<)-`` -XM``!,BZ0DV````$R+K"3@````2('$Z````,,```````````$1`24.$PL##A$! -XM$@$0!@```B0`"PL^"P,.```#)``+"SX+`P@```06``,..@L["TD3```%`0%) -XM$P$3```&(0!)$R\+```')``+"SX+```($P$##@L+.@L["P$3```)#0`##CH+ -XM.PM)$S@*```*#P`+"P``"Q$$! -XM```"(U@/7W5P``5Y:@$```(C:`]?=7(`!7I%`````B-P"0`````%?6<#```" -XM(W0)``````5^=P,```(C=P]?;&(`!8%!`0```B-X"0`````%A$4````#(X@! -XM"0`````%A2L!```#(Y`!"0`````%AXT#```#(Y@!"0`````%B)D#```#(Z`! -XM"0`````%B44````#(Z@!"0`````%BD4````#(ZP!"0`````%BR`!```#([`! -XM`!`!10```/`"```1W0`````-".`"```0`44````0`P``$=T````1$`,``!%% -XM``````T(&0$```T(]@(``!`!*P$``#8#```1W0```!$K`0``$44`````#0@< -XM`P``$`%%````5@,``!'=````$58#```110`````-"%P#```2&0$```T(/`,` -XM``4P````=P,```:5`````@`%,````(<#```&E0``````$P`````!#0B'`P`` -XM$P`````!#0B3`P``!``````%C'`!```4`0`````!3`$````````````````` -XM`````````/8#```59FUT``%+5@,````````6%V5R<@`!344````8``````%. -XM-@$```.1H'X`&0$``````34!10``````````````````````````````2@0` -XM`!H``````31%`````````!5F;70``316`P```````!88``````$V-@$```.1 -XMD'X`%`$``````4$!``````````````````````````":!```%69M=``!0%8# -XM````````%AL``````4)%`````````!@``````4,V`0```Y&0?@`<`65R<@`! -XM)P%%``````````````````````````````#]!```&@`````!)D4````````` -XM%69M=``!)E8#````````%A@``````2@V`0```Y&0?AL``````2E%```````` -XM```=``````62"@4```$!#0B?`P``'@`````!(U8#```!"0,````````````C -XM`0```@"Z`````0'[#@H``0$!`0````$O=7-R+W!O7!EE(``7@0`0,,!PB0`0``'````!P`````````T@````!!#A"# -XM`DH.X`$````````<````/`````````#2`````$(.$(P"1`X8@P-/#O`!`!P` -XM``!<`````````.8`````0@X000X8@P.,`DH.\`$`'````'P`````````"`$` -XM``!*C`.#!$\.\`&-`@````````````````$``````````@!W"`$````````` -XM"P`````````"`'<0"P````````#2``````````,`=^`!```````````````` -XM````````````````9@`````````!`%5F`````````-$``````````0!3```` -XM`````````````````.``````````X@`````````"`'<(X@````````#F```` -XM``````(`=Q#F`````````/4``````````@!W&/4`````````L@$````````# -XM`'?P`0````````````````````#@`````````%8!`````````0!55@$````` -XM``"Q`0````````$`7`````````````````````#@`````````.X````````` -XM`0!4[@````````"O`0````````$`4P````````````````````#``0`````` -XM`,(!`````````@!W",(!````````PP$````````"`'<0PP$```````#-`0`` -XM``````(`=QC-`0```````*8"`````````P!W\`$````````````````````` -XMP`$````````H`@````````$`52@"````````HP(````````!`%,````````` -XM````````````/@(```````"E`@````````$`7`````````````````````"P -XM`@```````,D"`````````@!W",D"````````N`,````````#`'?P`0`````` -XM``````````````"P`@```````"(#`````````0!5(@,```````"P`P`````` -XM``$`70````````````````````"P`@```````"(#`````````0!4(@,````` -XM``"@`P````````$`4P`````````````````````X`P```````*@#```````` -XM`0!<`````````````````````$$````"```````G!0``J@,``'=AF4`9W!?;V9F`!?;W)I96YT871I;VX`7W5B=68` -XM7W-I>F4`7U]S1DE,10``1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#'0` -XM+G)E;&$N9&%T80`N8G-S`"YD96)U9U]A8F)R978`+G)E;&$N9&5B=6=?:6YF -XM;P`N`!?7V5R -XM`!W87)N`'-T`P````````(````1```` -XM_/________\E`P````````(````2````_/________\L`P````````(````3 -XM````_/________\Q`P````````H````(```````````````[`P````````(` -XM```4````_/________]*`P````````(````3````_/________]S`P`````` -XM``(````5````_/________][`P````````(````9````_/________^"`P`` -XM``````(````3````_/________^*`P````````H````(````!0````````"1 -XM`P````````(````4````_/________\```````````$````(````"P`````` -XM```&``````````H````%```````````````,``````````H````.````GP`` -XM```````1``````````H````.````1`$````````5``````````$````"```` -XM```````````=``````````$````"````N`,````````E``````````H````' -XM```````````````L``````````H````.````(0$````````S``````````H` -XM```.````"`$````````Z``````````H````.````.`````````!!```````` -XM``H````.````C`$```````!/``````````H````.````-P$```````!4```` -XM``````H````.````T@````````!A``````````H````.````R0````````!H -XM``````````H````.````V`$```````!O``````````H````.````Z@$````` -XM``!V``````````H````.````D`````````![``````````H````.````OP`` -XM``````"9``````````H````.````:`````````"E``````````H````.```` -XM[P````````"S``````````H````.````W`````````#!``````````H````. -XM````\0$```````#/``````````H````.````GP$```````#@``````````H` -XM```.`````P(```````#S``````````H````.````S0$```````#^```````` -XM``H````.````+0$````````<`0````````H````.````O`$````````A`0`` -XM``````H````.````"P`````````L`0````````H````.````Q@$````````W -XM`0````````H````.````6`````````!"`0````````H````.````)P`````` -XM``!.`0````````H````.````K0$```````!<`0````````H````.````2`(` -XM``````!Q`0````````H````.````3@(```````"E`0````````H````.```` -XM2@````````"S`0````````H````.````'P(```````#/`0````````H````. -XM````LP$```````#=`0````````H````.``````$```````#K`0````````H` -XM```.````^0````````#Y`0````````H````.````%@$````````'`@`````` -XM``H````.````&0(````````5`@````````H````.````40````````!-`@`` -XM``````H````.````0@(```````!;`@````````H````.````@`````````!W -XM`@````````H````.````Y@````````"&`@````````H````.````0@`````` -XM``"5`@````````H````.````+@````````"D`@````````H````.````%P`` -XM``````"S`@````````H````.````A@````````#"`@````````H````.```` -XM-0(```````#1`@````````H````.````E@````````"(`P````````H````. -XM````"P(```````"4`P````````H````.````8`````````"@`P````````H` -XM```.````*P(```````"L`P````````H````.````(0````````"S`P`````` -XM``$````"``````````````"[`P````````$````"````T@````````##`P`` -XM``````H````+``````````````#6`P````````H````+````30````````#G -XM`P````````H````.````AP$```````#X`P````````H````.````,`(````` -XM```#!`````````$````"````X``````````+!`````````$````"````L@$` -XM```````3!`````````H````+````@P`````````0(```````#?!`````````H````.````AP$```````#N!`````````H` -XM```.````)0(```````#X!`````````H````+````KP(```````#^!``````` -XM``H````.````=@`````````1!0````````H````.```````````````>!0`` -XM``````$````2``````````````#'``````````$````"```````````````< -XM``````````H````)```````````````@``````````$````"```````````` -XM``!$``````````H````)``````````````!(``````````$````"````X``` -XM``````!L``````````H````)``````````````!P``````````$````"```` -XMP`$```````"4``````````H````)``````````````"8``````````$````" -XM````L`(````````@``````````H````"``````````````!```````````H` -XM```"````X`````````!@``````````H````"````P`$```````"````````` -XM``H````"````L`(````````&``````````H````&```````````````&```` -XL``````H````&```````````````0``````````$````"```````````````` -X` -Xend -0e59f08b905695fcc4fe4d89f926df6c -echo x - ./kmkbuiltin/setmode.o.uu -sed 's/^X//' >./kmkbuiltin/setmode.o.uu << '045cd6eee6e4feeb0303b319509b422a' -Xbegin 644 ./setmode.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````'@Q```` -XM`````````$```````$``'0`:`$%42(7_08GT58GU4TB)^P^$.`$``$B-2P1% -XMB>*)[D&!XDE````/MD'\/&`&9B-!_O?0 -XM(<;VP@1T#XT$_0````!F(T'^]]`AQO;""`^$9O___V8C>?[WUR'^Z5G___]% -XMA=)TBF8+%M=05Q!74%>05_#2(U<)%!,C60D0$B)W^@`````2(G>3(GB -XMOP$```#H`````#'_Z`````")PP^W^.@`````]],QTDR)YK\#````9HE<)##H -XM`````+\@````Z`````!(A;__?__13'_QT0D -XM(`````")1"0(9F9FD&9FD`^V10"#Z%@\('9U187_#X7X`0``08#]/0^$:00` -XM`&:0BT0D((7`=#!(.UPD$`^#2P4``$B%VP^$(0<``,8#6`^W1"0P187V00]% -XMQF8C1"0@9HE#`DB#PP1$#[9M`$6$[0^$5P<``$&`_2P/A4#___](@\4!Z1/_ -XM__]F9F:09F:0#[;`_R3%`````$&#STEFD$B#Q0'I9____T&`SY)F9I#K[D6% -XM]G0+0??&^/___V:0=-Y!@;H`````$B%P$B)P@^$N?S__TB)V$@K1"0H38UD%/A(B50D -XM*$R)9"002(T<$.F$_O__08#];P^$0@(``$&`_74/A7/\__]!@<[`"0``2(/% -XM`40/MFT`08#]9P^%1_S__T&!SC@$``#KY,=$)!P!````QD0D#P#I,/[__T&` -XM_6]T"D&`_74/A>3^__]%A?9$B"L/A$@#``!$B?!$B?)FQT,"__\E``$``(/X -XM`42)\!G)@^`@]]"#^`$9P(/B!/?0@^`$@_H!&=()R/?2@^(("="(0P%! -XM@_\K#X1?`P``08/_+0^$F@,``$&#_ST/A7O^__^`2P$#D.EQ_O__08#\6`^% -XM]_W__T2)X(@##[=$)#!%A?9!#T7&9B-$)`AFB4,"Z=C]__]%A?:X_PT``,8# -XM+4$/1<9FB4,"2(/#!+@K````Z\:#1"0D!$B+?"0H2&-$)"1,C22%`````$R) -XMYN@`````2(7`2(G"#X1;^___2(G82"M$)"A-C604^$B)5"0H3(ED)!!(C1P0 -XMZ9K]__^+5"0;H`````$B%P$B)QP^$&?K__TB)V$@K1"0H38UD//A(B7PD*$R) -XM9"002(T<..EJ^O__@T0D)`1(BWPD*$AC1"0D3(TDA0````!,B>;H`````$B% -XMP$B)QP^$SOG__TB)V$@K1"0H3HUD)_A(B7PD*$R)9"002(T<..GB^O__187V -XMN/\-``#&`RU!#T7&9HE#`DB#PP2X*P```(@##[=$)#!%A?9!#T7&1"'X9HE# -XM`NG\^O__08#]6`^%\OK__P^V1"0(Z]5!@/TMD`^$)P$``$&`_3T/A8;[__^` -XM2P$#Z7W[___&0P$<#[=$)#!FB4,"Z3_\__^#1"0D!$B+?"0H2&-$)"1,C22% -XM`````$R)YN@`````2(7`2(G"#X0,^?__2(G82"M$)"A-C604^$B)5"0H3(ED -XM)!!(C1P0Z9_Z___&0P$<#[=$)#!FB4,"Z>7\__^Y`````+J``0``O@````"_ -XM`````.@`````Z;7Z__^Y`````+J``0``O@````"_`````.@`````Z0;[___& -XM0P$<#[=$)#!FB4,"Z0K^__^`2P$"Z2?[__^Y`````+J``0``O@````"_```` -XM`.@`````Z:+Y__^Y`````+J``0``O@````"_`````.@`````Z<'X__^`2P$! -XMZ>+Z__^`2P$"Z;GY__^`2P$!Z6#Z__^Y`````+J``0``O@````"_`````.@` -XM````ZCI#_;__TB-="1HN@@```!(B>_H -XM`````$B)PDB+1"1H@#@`=3SVQO")U74U2#M<)!!)B=QS6$B%VW1M2(U#!&:! -XMY?\/Q@,M9L=#`O\/QD,$*V:):`+&0`0`3(G@Z;3U__](B=_H`````#'`Z:7U -XM__^Y`````+K*`0``O@````"_`````.@`````Z6W^__^^,````$B)W^@````` -XM2(7`=,%(B<-)B<3KCKD`````NH`!``"^`````+\`````Z`````#I=?___P`` -XM``$1`24.$PL##A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM)$P``!"0` -XM"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,```D3`0,. -XM"PLZ"SL+`1,```H-``,..@L["TD3.`H```L!`4D3`1,```PA`$D3+PL```T3 -XM`0L+.@L["P$3```.$P$+!3H+.PL!$P``#Q4!)PQ)$P$3```0!0!)$P``$0T` -XM`P@Z"SL+21,X"@``$BX!/PP##CH+.PLG#$D3$0$2`4`&`1,``!,%``,..@L[ -XM"TD3`@8``!0T``,(.@L["TD3```5-``##CH+.PM)$P(&```6"@`##CH+.PL1 -XM`0``%S0``PY)$S0,`@H``!@F````&2X!`PXZ"SL+)PQ)$R`+`1,``!H%``,( -XM.@L["TD3```;+@$##CH+.P4G#$D3(`L!$P``'`4``P@Z"SL%21,``!T%``,. -XM.@L[!4D3```>+@$##CH+.P4G#"`+`1,``!\T``,..@L[!4D3```@-``#"#H+ -XM.P5)$P``(04``P@Z"SL+21,"!@``(C0``P@Z"SL+21,"!@``(S0``PXZ"SL+ -XM21,""@``)`H``PXZ"SL%```E"@`##CH+.P41`0``)AT!,1,1`1(!6`M9"P$3 -XM```G!0`Q$P``*`4`,1,"!@``*0L!508!$P``*AT!,1-5!E@+604!$P``*PL! -XM$0$2`0$3```L"P%5!@``+30`,1,``"XT`#$3`@8``"\T``,..@L["TD3```P -XM'0$Q$U4&6`M9"P``,30``PXZ"SL+21,_##P,````?P@```(```````@!```` -XM``$````````````````````````````````"`08``````@$(``````("!0`` -XM```#``````,V20````("!P`````$!`5I;G0``P`````#.&(````"!`<````` -XM`@@%``````,``````SI[`````@@'``````((!``````"!`0``````P`````# -XM4G`````%"`<&"`,`````!#$^`````P`````$5E`````#``````17JP````(! -XM!@`````#``````4T8@````<(P0````<(WP````C!`````P`````%RZ`````) -XM`````!`&,PH!```*``````8T"@$```(C```+5P```!H!```,FP````,``P`` -XM```&->\````#``````V`````B,("@`````(.'$!```"(Q``!PA[```` -XM`P`````(.3`!```-$`@[IP$```H`````"#Q0`````B,`"@`````(/:P`````#```,FP```/\`"[8````0`P``#)L` -XM``#_``,`````"%>X`0```@@%``````D`````!`%'60,``!%C;60``4C!```` -XM`B,`"@`````!2<$````"(P$*``````%*Y`````(C`@`#``````%+(@,``!(! -XM``````%O`>0```````````````````````````````,$```3``````%M`P0` -XM```````3``````%NY``````````4@&=!```'&]P``%\`5`````<=VAO``%[`5`````=```` -XM``%[`5`````=``````%]`<@````7`````%`(```!"0,````````````'"%D# -XM```>``````'&`0$!#04``!QS970``<4!G00``!\``````<`9T$````*CL$`````````4\!?@8` -XM`"=\!```)W`$```G9`0``"=9!```)TT$````*CL$`````````5X!J`8``"=\ -XM!```)W`$```G9`0``"=9!```)TT$````*CL$`````````48!T@8``"=\!``` -XM)W`$```G9`0``"=9!```)TT$````*CL$`````````4P!_`8``"=\!```)W`$ -XM```G9`0``"=9!```)TT$````*CL$`````````5H!)@<``"=\!```)W`$```G -XM9`0``"=9!```)TT$````*P````````````````````!(!P``'P`````!3P&= -XM!````"L`````````````````````:@<``!\``````5H!G00````K```````` -XM`````````````(P'```?``````%&`9T$````*P````````````````````"N -XM!P``'P`````!3`&=!````"JC!`````````%P`>L'```GL00``"P`````+;T$ -XM```NR00````````MU00``"WA!```+NT$```````````I```````(```O```` -XM``'WG00````P.P0````````!]R=\!```)W`$```G9`0``"=9!```)TT$```` -XM``A_`@``"\$````["```#)L````-``@K"```"\$```!0"```#)L````&``A` -XM"```,0`````"6E`````!`3$`````"%L0`P```0$Q``````A7!E7!E7!E+F@``@`````)`@```````````^X``2\U<3T#,V,#4N\#.0(I -XM`0-V1P,*.0-'';\#"=,#"N]65KA6U%8##G\#44<#$;="O%;Q5L96XHX#%<56 -XM`V%C`QK3`U'%`]4``B,!`PO]`Z(!52P#YW[A5E2`\?XMF5=:"$J3!`(#D']' -XM!`$#^``(1P,*"$<#=E4#"CD#$@BI`\D`"!T#NW_]`_4`?P.'?T=.`_(`"!T# -XMD'^I`SFI"$V``R*I`PV-.@,9"$<#OG]'U9T#M7_O`QV;`V)C`QB-`WJ-\'(# -XM=HWP`WB-`R6-5@,ZQ8\#)0)'`0.B?W&=""P#-*D##8TZ`QG]`V=_`QE'`ZA_ -XM1P,QJ0-/.0,Q564#)0([`0.Q?PA5G0,FJ8\#)0(\`0-;C0,3[S@Z9&9@`PD" -XM,P&J`Z]_C0.T?P)+`0@^`WIQ2.D#/HT#.0@=`Q/O.#ID9F`#"0(S`9V=G`-> -XMFP,+Q2P#=PB-?CJ``U2I`DL,N`,JQ0,+Q2P#=PAQ?CJ`I0,3[S@Z9&9@`PD" -XM,P&=G9P#X7Z-`PG3`]``C0-H`DL!`S\"2P%^.H"4+`-T"'$#'_VKG`-WC4@# -XML'_3`\\``DL!2`-DTP,;`CP!2-<#8(T#(@(\`8N/`UZ-`R((Q0-(C58#WP`Y -XMNPAD@#CB8L0#"PB;2T@#=K=($#K7X(Q0.)`0B-`AX``0%B -XM8F]X("$]($Y53$P`!`,!PB0`0```````"0```````````````````!K`0```````$(.$(P" -XM1PX8A@-##B"#!``\````````````````````R0H```````!"#A!"#AA"#B!" -XM#BA!#C"&!HP%C02.`X\"1`XX1`ZP`8,'````````%``````````!>E(``7@0 -XM`0,,!PB0`0``'````!P`````````:P$```!"#A",`D<.&(8#0PX@@P0T```` -XM/`````````#)"@```$(.$$(.&$(.($(.*$$.,(8&C`6-!(X#CP)$#CA$#K`! -XM@P<``````````````````@`````````"`'<(`@`````````)``````````(` -XM=Q`)``````````P``````````@!W&`P`````````:P$````````"`'<@```` -XM````````````````````````````%0`````````!`%45`````````$\````` -XM`````0!33P````````!6``````````$`558`````````:P$````````!`%,` -XM```````````````````````````````5``````````$`5!4`````````4``` -XM```````!`%96`````````&L!`````````0!6`````````````````````#$` -XM````````XP`````````!`%7C`````````.L``````````0!5ZP`````````> -XM`0````````$`51X!````````(`$````````!`%4@`0```````$T!```````` -XM`0!5`````````````````````!X`````````50`````````!`%15```````` -XM`%4``````````0!05@````````!D``````````$`5'``````````E@`````` -XM```!`%26`````````,P``````````0!4VP````````#]``````````$`5/T` -XM````````30$````````!`%0`````````````````````,0````````!L```` -XM``````$`6'``````````LP`````````!`%BS`````````-(``````````0!8 -XMVP`````````U`0````````$`6#4!````````.0$````````!`%@Y`0`````` -XM`$T!`````````0!8`````````````````````'`!````````<@$````````" -XM`'<(<@$```````!T`0````````(`=Q!T`0```````'8!`````````@!W&'8! -XM````````>`$````````"`'<@>`$```````!Y`0````````(`=RAY`0`````` -XM`'T!`````````@!W,'T!````````@0$````````"`'B@(```````!Y"P````````$` -XM7N,+`````````0P````````!`%X`````````````````````B`$```````"7 -XM`0````````,`D;A_DPL```````"8"P````````,`D;A_F`L```````"I"P`` -XM``````$`4*D+````````XPL````````#`)&X?P$,````````#@P````````! -XM`%`.#````````#D,`````````P"1N'\`````````````````````B`$````` -XM``"-`0````````$`4_4!````````F`H````````!`%/""@```````#<+```` -XM`````0!32PL```````!Q"P````````$`4WD+````````L@L````````!`%.R -XM"P```````,\+`````````0!0SPL````````Y#`````````$`4P`````````` -XM``````````"(`0```````)`!`````````0!0L````````# -XM`)'X?J<+````````XPL````````!`%SC"P````````$,`````````0!6`0P` -XM```````Y#`````````$`7`````````````````````"(`0```````)!P```````&<'`````````0!09P<```````#A"`````````,` -XMD8!_X0@```````#J"`````````$`4.H(````````.0P````````#`)&`?P`` -XM``````````````````"(`0```````)`@````````#`)'T?G@(````````B`@````````!`%"T"``````` -XM`#H)`````````P"1]'XZ"0```````$H)`````````0!0=@D```````!Y"P`` -XM``````,`D?1^XPL````````!#`````````,`D?1^```````````````````` -XM``("````````"0(````````!`%`)`@```````&P"`````````0!00L```````"+"P````````$`4`````````````````````"(`0`` -XM`````)0!?7VEN=F%L:61?7!E7V5X -XM=`!"251#340`7U]M87!U<'!E'0`8VQR8FET0!?7VUA>`!?7W-P=71R=6YE`%]? -XM;6%P;&]W97)?97AT`&QO;F<@=6YS:6=N960@:6YT`&1O=6)L90!C;VUM;VX` -XM7U)U;F5,;V-A;&4`;6%S:P!B8F]X`'-I9W-E=%]T`'!E6UT86(`+G-T%(````````8`````````!L````3````"``` -XM```````8`````````-(````!`````````````````````````)8I```````` -XM,`````````````````````$```````````````````#-````!``````````` -XM``````````````"04@```````#``````````&P```!4````(`````````!@` -XM````````X0````$`````````````````````````QBD````````0`P`````` -XM`````````````0```````````````````.\````!````,``````````````` -XM`````-8L`````````@`````` -XM`%("````````"@```!0````B`@```````&$"````````"@```!0```#5`0`` -XM`````'`"````````"@```!0````4`````````!$#````````"@```!0```#- -XM`@```````!X#````````"@```!0````W`0```````",#````````"@```!0` -XM``#@`0```````#T#````````"@```!0````'`@```````$L#````````"@`` -XM`!0```!%`0```````%H#````````"@```!0````;`@```````&8#```````` -XM"@```!0```#W`@```````'$#`````````0````(``````````````'D#```` -XM`````0````(```!K`0```````($#````````"@```!```````````````(H# -XM````````"@```!0```#>`@```````)0#````````"@```!````!@```````` -XM`)D#````````"@```!0```#M`0```````*,#````````"@```!````"\```` -XM`````+,#````````"@```!0```"E`````````+T#````````"@```!`````% -XM`0```````,(#````````"@```!0```"L`````````,P#````````"@```!`` -XM``!T`0```````-$#````````"@```!0```"?`````````-L#````````"@`` -XM`!`````)`@```````.`#````````"@```!0```#&`@```````.8#```````` -XM`0````(```!P`````````.\#````````"@```!0```#^`0```````/H#```` -XM`````0````L````=`0```````!8$````````"@```!0````Q`P```````#P$ -XM````````"@```!0```!G`@```````'$$````````"@```!0````C```````` -XM`'T$````````"@```!0```#9`@```````(D$````````"@```!0```#^`0`` -XM`````)0$`````````0````L````(`0```````*0$````````"@```!0````& -XM`````````+X$````````"@```!0````?`0```````,H$````````"@```!0` -XM```U`````````-8$````````"@```!0````Q`@```````.($````````"@`` -XM`!0```#G`0```````/D$````````"@```!0```#^`0````````0%```````` -XM`0````L````/`0````````\%````````"@```!0```#_`@```````!H%```` -XM`````0````(```!P`0```````"(%`````````0````(````Y#````````"H% -XM````````"@```!````"+`@```````#L%````````"@```!`````\`P`````` -XM`$`%````````"@```!0```#L`@```````$H%````````"@```!````"^`P`` -XM`````%D%````````"@```!````!`!````````'$%````````"@```!````"O -XM!````````(`%````````"@```!`````Y!0```````(4%````````"@```!0` -XM```A`P```````(\%````````"@```!````#.!0```````)0%````````"@`` -XM`!0```"T`````````)X%````````"@```!````#T!@```````*,%```````` -XM"@```!0````I`P```````+(%````````"@```!0```"-`````````,$%```` -XM````"@```!0```#9`@```````,L%````````"@```!`````N!P```````-`% -XM````````"@```!0```#$`````````-H%````````"@```!````"D"``````` -XM`-\%````````"@```!0```!B`````````.D%````````"@```!````#S"``` -XM`````.X%````````"@```!0````:`P```````/@%````````"@```!````!" -XM"0```````/T%````````"@```!0```!B`P````````4&````````"@```!0` -XM``!S`0````````P&`````````0````(```#X`@```````!D&`````````0`` -XM``(````"`@```````"$&`````````0````(````7`@```````#D&```````` -XM"@```!````!9"@```````#\&````````"@```!,``````````````$@&```` -XM````"@```!0```!%`P```````%D&````````"@```!,````P`````````(,& -XM````````"@```!,```#0`````````*T&````````"@```!,````0`0`````` -XM`-<&````````"@```!,```"0`0````````$'````````"@```!,```#``0`` -XM`````"<'`````````0````(```!^!0```````"\'`````````0````(```#) -XM!0```````#P'````````"@```!0```!%`P```````$D'`````````0````(` -XM``#./kmkbuiltin/strmode.o.uu << '665ec2e03604b3bfba9eb90e1fba7d44' -Xbegin 644 ./strmode.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````)`-```` -XM`````````$```````$``&P`8`%6)_5-(B?-(@^P(2(7V#X00`P``#[?-B<@E -XM`/```#T`8```#X37`@``#X[T````/0"@```/A+8"``!F9I!F9I`/CNH!```] -XM`,```&9FD&:0#X2V`@``/0#@``!F9I!FD`^%X````/;%`<8#=TB-0P$/A>,` -XM``#&`"U(@\`!A,D/B.,```#&`"U(C5`!B<@E0`@``(/X0`^%XP```,8">$B# -XMP@'VP2`/A>T```!F9F:0]L$0Q@(M2(U"`0^%Z0```,8`+4B-4`&)R"4(!``` -XM@_@(#X7I````Q@)X2(/"`?;!!`^%\P```/;!`L8"+4B-0@$/A?,```#&`"U( -XMC5`!B<@E`0(``(/X`0^%\P```,8">$B#P@'&`B#&0@$`2(/$"%M=PST`(``` -XM#X3J`0``/0!````/A`X!```]`!```&:0#X2<`0``2(U#`<8#/V9FD/;%`0^$ -XM'?___\8`````/0$"``!U!\8"=$B#P@'&`B#&0@$`2(/$"%M=PV:0/0"````/ -XMA0O___](C4,!Q@,MZ0G___](C4,!Q@-DZ?W^__\]``0``'0[/0@$``"0#X5K -XM____Q@)S2(/"`69FD.E<____/0`(``!T)3U`"```#X4)____Q@)S2(/"`6:0 -XMZ?O^___&`E-(@\(!Z3#____&`E-(@\(!Z>/^__]F9I#&`E1(@\(!Q@(@QD(! -XM`$B#Q`A;7<.%P`^%4____\8"+4B#P@'&`B#&0@$`2(/$"%M=PTB-0P'&`W#I -XM8O[__V:02(U#`<8#;.E4_O__9F9FD$B-0P'&`V+I1/[__TB-0P'&`W/I./[_ -XM_TB-0P'&`V/I+/[__[D`````NCX```"^`````+\`````Z`````#ITOS__P`` -XM`1$!)0X3"P,.$0$2`1`&```")``+"SX+`PX```,6``,..@L["TD3```$)``+ -XM"SX+`P@```4D``L+/@L```8/``L+21,```@````<`#?$`````4`$```(`HP````$!^PX*``$!`0$````!+W5S -XM7,``'-T7!E+<"'@`!`7`@ -XM(3T@3E5,3```````````+W5SE(``7@0`0,,!PB0 -XM`0``'````!P`````````0@,```!!#A"&`D,.&(,#1PX@``````````````$` -XM`````````@!W"`$`````````!``````````"`'<0!``````````+```````` -XM``(`=Q@+`````````$(#`````````@!W(``````````````````````````` -XM`````!0``````````0!5%``````````B`0````````$`5B(!````````(P$` -XM```````!`%4C`0```````"T"`````````0!6+0(````````N`@````````$` -XM52X"````````Q`(````````!`%;$`@```````,4"`````````0!5Q0(````` -XM``#A`@````````$`5N$"````````X@(````````!`%7B`@```````$(#```` -XM`````0!6````````````````````````````````%``````````!`%04```` -XM`````'```````````0!3<`````````",``````````$`4(P`````````N@`` -XM```````!`%&Z`````````,<``````````0!0QP````````#Q``````````$` -XM4?$`````````_@`````````!`%#^`````````",!`````````0!1(P$````` -XM``!*`0````````$`4TH!````````30$````````!`%!-`0```````%D!```` -XM`````0!360$```````!O`0````````$`4&\!````````HP$````````!`%&C -XM`0```````+`!`````````0!0L`$```````#D`0````````$`4>0!```````` -XM\0$````````!`%#Q`0```````"X"`````````0!1+@(````````_`@`````` -XM``$`4S\"````````1P(````````!`%!'`@```````$L"`````````0!32P(` -XM``````!3`@````````$`4%,"````````X@(````````!`%'B`@```````.8" -XM`````````0!3Y@(```````#N`@````````$`4.X"````````]`(````````! -XM`%/T`@```````/P"`````````0!0_`(````````$`P````````$`4P0#```` -XM````#`,````````!`%`,`P```````!`#`````````0!3$`,````````8`P`` -XM``````$`4!@#````````'`,````````!`%,<`P```````"0#`````````0!0 -XM)`,````````S`P````````$`5#,#````````0@,````````!`%,````````` -XM````````````&@````(```````6UT86(`+G-T!8```````!@`````````!D````! -XM````"``````````8`````````"8````!`````P```````````````````(0# -XM``````````````````````````````0````````````````````L````"``` -XM``,```````````````````"$`P`````````````````````````````$```` -XM````````````````,0````$`````````````````````````A`,```````"@ -XM`````````````````````0```````````````````$0````!```````````` -XM`````````````"0$````````!P$```````````````````$````````````` -XM```````_````!`````````````````````````#8%@```````*`"```````` -XM&0````8````(`````````!@`````````50````$````````````````````` -XM````*P4```````!4`0```````````````````0```````````````````%`` -XM```$`````````````````````````'@9````````&``````````9````"``` -XM``@`````````&`````````!A`````0```#(```````````````````!_!@`` -XM``````H````````````````````!``````````$`````````<`````$````R -XM````````````````````D`8```````!'````````````````````"``````` -XM```!`````````'\````!`````@```````````````````-<&````````"``` -XM``````````````````$```````````````````",`````0`````````````` -XM``````````#@!@```````$`````````````````````(```````````````` -XM````AP````0`````````````````````````D!D````````P`````````!D` -XM```-````"``````````8`````````)X````!`````@`````````````````` -XM`"`'````````.`````````````````````@```````````````````"9```` -XM!`````````````````````````#`&0```````!@`````````&0````\````( -XM`````````!@`````````J`````$`````````````````````````6`<````` -XM``#$`P```````````````````0```````````````````+@````!```````` -XM`````````````````!P+````````'@````````````````````$````````` -XM``````````"S````!`````````````````````````#8&0```````!@````` -XM````&0```!(````(`````````!@`````````S0````$````````````````` -XM````````.@L````````P`````````````````````0`````````````````` -XM`,@````$`````````````````````````/`9````````,``````````9```` -XM%`````@`````````&`````````#<`````0```#````````````````````!J -XM"P````````D!```````````````````!``````````$`````````YP````$` -XM`````````````````````````````````#H`````````"@```!$```#V`````````#\`````````"@`` -XM`!$```"3`````````$P`````````"@```!$```#(`````````%H````````` -XM"@```!$``````````````&$`````````"@```!$```"Q`````````&@````` -XM````"@```!$````R`````````&\`````````"@```!$```"Z`````````'8` -XM````````"@```!$```#P`````````'X`````````"@```!$```#G```````` -XM`(L`````````"@```!$```"L`````````)8`````````"@```!$```#!```` -XM`````*(`````````"@```!$```!$`````````*@``````````0````(````` -XM`````````+```````````0````(```!"`P```````+@`````````"@````X` -XM`````````````,$`````````"@```!$````M`````````,L`````````"@`` -XM``X```!@`````````-@`````````"@````X````N`0```````-T````````` -XM"@```!$``````0```````.@``````````0````L``````````````+`````` -XM`````0````(``````````````!P`````````"@````P``````````````"`` -XM`````````0````(``````````````"``````````"@````(````````````` -XM``8`````````"@````8```````````````8`````````"@````8````````` -X<`````!```````````0````(````````````````` -X` -Xend -665ec2e03604b3bfba9eb90e1fba7d44 -echo x - ./kmkbuiltin/kbuild_version.o.uu -sed 's/^X//' >./kmkbuiltin/kbuild_version.o.uu << '7a5d72540cc986f1046b76957afa7b12' -Xbegin 644 ./kbuild_version.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````'`&```` -XM`````````$```````$``&@`7`%.^`````$B)^TB#[!#H`````$B%P'062(U8 -XM`;X`````2(G?Z`````!(A!`!`PP'")`!```<````'`````````!]`````$$.$(,"3`X@```````````` -XM`````````0`````````"`'<(`0`````````-``````````(`=Q`-```````` -XM`'T``````````@!W(````````````````````````````````!(````````` -XM`0!5$@````````!P``````````$`4W$`````````?0`````````!`%,````` -XM````````````````%0`````````H``````````$`4"L`````````.@`````` -XM```!`%`]`````````%T``````````0!0<0````````![``````````$`4``` -XM```````````````````A`````@``````Q0```(0```!K8G5I;&1?=F5R6UT86(`+G-T./kmkmissing.a.uu << '776edfa43506423aabbff616cf01a388' -Xbegin 644 ./kmkmissing.a -XM(3QA```"M@```K8```*V```"M@`` -XM`K8``"X"```N`@``@/X``)M:``"N9@``KF8``*YF``"N9@``KF8``*YF``"N -XM9@``KF8``/S*``#\R@``_,H``/S*``#\R@``_,H``/S*``%LA@`!;(8``8;* -XM``&&R@`!ALH``CGN=V%R;G@`9U]PF5D`&]P=&5R<@!O<'1O<'0`9V5T;W!T`&=E=&]P=%]L;VYG7V]N -XM;'D`9V5T;W!T7VQO;F<`7U]G;&]B7W!A='1E/$/*7#A#REHT0\I8,$/ -XM*5BQ#RE0H0\I2)$/*4"!Z`````!(BQ4`````2(L]`````+X`````,<#H```` -XM`$B-A"3@````2(L]`````$B)XDB)WL<$)`@```#'1"0$,````$B)1"0(2(U$ -XM)"!(B40D$.@`````2(LU`````+\*````Z`````!(@<30````6\-F9F:09F9F -XMD&9FD&9FD$%408G\4TB)\[X`````2('LV````$B)5"0P#[;02(E,)#A(C025 -XM`````+H`````3(E$)$!,B4PD2$@IPDB-A"3/````_^(/*7CQ#REPX0\I:-$/ -XM*6#!#RE8L0\I4*$/*4B1#RE`@4B+%0`````QP$B+/0````#H`````$B-A"3P -XM````2(L]`````$B)XDB)WL<$)!````#'1"0$,````$B)1"0(2(U$)"!(B40D -XM$.@`````2(LU`````+\*````Z`````!(@<38````1(G@6T%/$/*7#A#REHT0\I8,$/ -XM*5BQ#RE0H0\I2)$/*4"!Z`````!(BQ4`````2(L]`````+X`````1(L@,<#H -XM`````$B-A"3P````2(L]`````$B)XDB)WL<$)`@```#'1"0$,````$B)1"0( -XM2(U$)"!(B40D$.@`````1(GGZ`````!(BST`````2(G"O@`````QP.@````` -XM2('$V````%M!7,-F9F:09F:09F:02(E<).A,B60D\$B)\TR);"3X2('LZ``` -XM`$&)_4B)5"0P#[;02(E,)#A(C025`````+H`````3(E$)$!,B4PD2$@IPDB- -XMA"3/````_^(/*7CQ#REPX0\I:-$/*6#!#RE8L0\I4*$/*4B1#RE`@>@````` -XM2(L5`````$B+/0````"^`````$2+(#'`Z`````!(C80D\````$B+/0````!( -XMB>)(B=['!"00````QT0D!#````!(B40D"$B-1"0@2(E$)!#H`````$2)Y^@` -XM````2(L]`````$B)PKX`````,<#H`````$2)Z$B+G"30````3(ND)-@```!, -XMBZPDX````$B!Q.@```##```````````!$0$E#A,+`PX1`1(!$`8```(D``L+ -XM/@L##@```R0`"PL^"P,(```$%@`##CH+.PM)$P``!0$!21,!$P``!B$`21,O -XM"P``!R0`"PL^"P``"!,!`PX+"SH+.PL!$P``"0T``PXZ"SL+21,X"@``"@\` -XM"PL```L7`0L+.@L["P$3```,#0`##CH+.PM)$P``#0\`"PM)$P``#A,!`PX+ -XM!3H+.PL!$P``#PT``P@Z"SL+21,X"@``$!4!)PQ)$P$3```1!0!)$P``$B8` -XM21,``!,3``,./`P``!0N`3\,`PXZ"SL+)PP1`1(!0`8!$P``%04``P@Z"SL+ -XM21,"!@``%A@````7-``#"#H+.PM)$P``�``PXZ"SL+21,""@``&2X!/PP# -XM#CH+.PLG#$D3$0$2`4`&`1,``!H%``,..@L["TD3`@8``!LT``,..@L["TD3 -XM`@8``!PN`3\,`P@Z"SL+)PQ)$Q$!$@%`!@$3```=-``##CH+.PM)$S\,/`P` -XM`!XT``,..@L["TD3/PP""@```",%```"```````(`0`````!```````````` -XM`````````````````````@$&``````(!"``````"`@4``````@('``````,$ -XM!6EN=``"!`<`````!``````".5X````""`4``````@@'``````((!``````" -XM!`0`````!``````":X4````%F````)4````&E0``````!P@'"``````8`P#= -XM````"0`````#`$P````"(P`)``````,`3`````(C!`D``````P#=`````B,( -XM"0`````#`-T````"(Q``"@@$``````0T4P````N`!&,)`0``#``````$9`D! -XM```,``````1E4P`````%&0$``!D!```&E0```'\``@$&``````0`````!&;J -XM````!``````%+]\````$``````4X>@````@`````$`5&:@$```D`````!4=J -XM`0```B,`"0`````%2$4````"(P@`#0@P````#@`````P`05GX`(```]?<``% -XM:&H!```"(P`/7W(`!6E%`````B,(#U]W``5J10````(C#`D`````!6LW```` -XM`B,0"0`````%;#<````"(Q(/7V)F``5M00$```(C&`D`````!6Y%`````B,H -XM"0`````%<=T````"(S`)``````5R\`(```(C.`D`````!7,6`P```B-`"0`` -XM```%=#8#```"(T@)``````5U80,```(C4`]?=6(`!7A!`0```B-8#U]U<``% -XM>6H!```"(V@/7W5R``5Z10````(C<`D`````!7UG`P```B-T"0`````%?G<# -XM```"(W`D`````!81%`````R.(`0D`````!84K`0`` -XM`R.0`0D`````!8>-`P```R.8`0D`````!8B9`P```R.@`0D`````!8E%```` -XM`R.H`0D`````!8I%`````R.L`0D`````!8L@`0```R.P`0`0`44```#P`@`` -XM$=T`````#0C@`@``$`%%````$`,``!'=````$1`#```110`````-"!D!```- -XM"/8"```0`2L!```V`P``$=T````1*P$``!%%``````T('`,``!`!10```%8# -XM```1W0```!%6`P``$44`````#0A<`P``$AD!```-"#P#```%,````'<#```& -XME0````(`!3````"'`P``!I4``````!,``````0T(AP,``!,``````0T(DP,` -XM``0`````!8QP`0``%`$``````4P!``````````````````````````#V`P`` -XM%69M=``!2U8#````````%A=E7,`+W5S7!E`#V`P``97)R>`!*!``` -XM=V%R;@":!```97)R`!`%``!G7W!R;V=N86UE```````L`````@``````"``` -XM``````````````"X`P````````````````````````````!G7W!R;V=N86UE -XM`%]?;6)S=&%T95]T`%]F;%]O=VYE<@!W87)N>`!?7W-B=68`7V9L7VUU=&5X -XM`'-H;W)T(&EN=`!?;V9F`!?@````$`````````````````````````\`L```````"X```````````` -XM````````"````````````````````'4````$```````````````````````` -XM`*@I````````P``````````8````#`````@`````````&`````````",```` -XM`0````(```````````````````"H#````````)@````````````````````( -XM````````````````````AP````0`````````````````````````:"H````` -XM``!@`````````!@````.````"``````````8`````````)8````!```````` -XM`````````````````$`-````````T@(```````````````````$````````` -XM``````````"F`````0`````````````````````````2$````````$4````` -XM```````````````!````````````````````H0````0````````````````` -XM````````R"H````````8`````````!@````1````"``````````8```````` -XM`+L````!`````````````````````````%<0````````,``````````````` -XM``````$```````````````````"V````!`````````````````````````#@ -XM*@```````#``````````&````!,````(`````````!@`````````R@````$` -XM```P````````````````````AQ````````!6`@```````````````````0`` -XM```````!`````````-4````!`````````````````````````-T2```````` -XM)@````````````````````$````````````````````1`````P`````````` -XM```````````````#$P```````-X````````````````````!```````````` -XM`````````0````(`````````````````````````:!H```````"(`@`````` -XM`!D````0````"``````````8``````````D````#```````````````````` -XM`````/`<````````6`````````````````````$````````````````````` -XM```````````````````````````````!````!`#Q_P`````````````````` -XM`````````P`!`````````````````````````````P`#```````````````` -XM`````````````P`%`````````````````````````````P`&```````````` -XM`````````````````P`'`````````````````````````````P`)```````` -XM`````````````````````P`+`````````````````````````````P`,```` -XM`````````````````````````P`.`````````````````````````````P`0 -XM`````````````````````````````P`1```````````````````````````` -XM`P`3`````````````````````````````P`5```````````````````````` -XM`````P`6```````````````````````'````$@`!````````````T@`````` -XM```-````$``````````````````````````5````$0`#````````````"``` -XM```````@````$``````````````````````````J````$``````````````` -XM```````````R````$``````````````````````````[````$``````````` -XM``````````````!!````$@`!`.``````````T@````````!&````$@`!`,`! -XM````````Y@````````!+````$`````````````````````````!4````$@`! -XM`+`"````````"`$`````````97)R+F,`=V%R;G@`7U]EP,````````"````&0```/S_________@@,````````"````$P`` -XM`/S_________B@,````````*````"`````4`````````D0,````````"```` -XM%````/S_________```````````!````"`````L`````````!@`````````* -XM````!0``````````````#``````````*````#@```)\`````````$0`````` -XM```*````#@```$0!````````%0`````````!`````@``````````````'0`` -XM```````!`````@```+@#````````)0`````````*````!P`````````````` -XM+``````````*````#@```"$!````````,P`````````*````#@````@!```` -XM````.@`````````*````#@```#@`````````00`````````*````#@```(P! -XM````````3P`````````*````#@```#P`````````*````#@```+\`````````F0`````` -XM```*````#@```&@`````````I0`````````*````#@```.\`````````LP`` -XM```````*````#@```-P`````````P0`````````*````#@```/$!```````` -XMSP`````````*````#@```)\!````````X``````````*````#@````,"```` -XM````\P`````````*````#@```,T!````````_@`````````*````#@```"T! -XM````````'`$````````*````#@```+P!````````(0$````````*````#@`` -XM``L`````````+`$````````*````#@```,8!````````-P$````````*```` -XM#@```%@`````````0@$````````*````#@```"<`````````3@$````````* -XM````#@```*T!````````7`$````````*````#@```$@"````````<0$````` -XM```*````#@```$X"````````I0$````````*````#@```$H`````````LP$` -XM```````*````#@```!\"````````SP$````````*````#@```+,!```````` -XMW0$````````*````#@`````!````````ZP$````````*````#@```/D````` -XM````^0$````````*````#@```!8!````````!P(````````*````#@```!D" -XM````````%0(````````*````#@```%$`````````30(````````*````#@`` -XM`$("````````6P(````````*````#@```(``````````=P(````````*```` -XM#@```.8`````````A@(````````*````#@```$(`````````E0(````````* -XM````#@```"X`````````I`(````````*````#@```!<`````````LP(````` -XM```*````#@```(8`````````P@(````````*````#@```#4"````````T0(` -XM```````*````#@```)8`````````B`,````````*````#@````L"```````` -XME`,````````*````#@```&``````````H`,````````*````#@```"L"```` -XM````K`,````````*````#@```"$`````````LP,````````!`````@`````` -XM````````NP,````````!`````@```-(`````````PP,````````*````"P`` -XM````````````U@,````````*````"P```$T`````````YP,````````*```` -XM#@```(*)[D&!XDE````/MD'\/&`&9B-! -XM_O?0(<;VP@1T#XT$_0````!F(T'^]]`AQO;""`^$9O___V8C>?[WUR'^Z5G_ -XM__]%A=)TBF8+%M=05Q!74%>05_#2(U<)%!,C60D0$B)W^@`````2(G> -XM3(GBOP$```#H`````#'_Z`````")PP^W^.@`````]],QTDR)YK\#````9HE< -XM)##H`````+\@````Z`````!(A;__?__13'_ -XMQT0D(`````")1"0(9F9FD&9FD`^V10"#Z%@\('9U187_#X7X`0``08#]/0^$ -XM:00``&:0BT0D((7`=#!(.UPD$`^#2P4``$B%VP^$(0<``,8#6`^W1"0P187V -XM00]%QF8C1"0@9HE#`DB#PP1$#[9M`$6$[0^$5P<``$&`_2P/A4#___](@\4! -XMZ1/___]F9F:09F:0#[;`_R3%`````$&#STEFD$B#Q0'I9____T&`SY)F9I#K -XM[D6%]G0+0??&^/___V:0=-Y!@;H`````$B%P$B)P@^$N?S__TB)V$@K1"0H38UD%/A( -XMB50D*$R)9"002(T<$.F$_O__08#];P^$0@(``$&`_74/A7/\__]!@<[`"0`` -XM2(/%`40/MFT`08#]9P^%1_S__T&!SC@$``#KY,=$)!P!````QD0D#P#I,/[_ -XM_T&`_6]T"D&`_74/A>3^__]%A?9$B"L/A$@#``!$B?!$B?)FQT,"__\E``$` -XM`(/X`42)\!G)@^`@]]"#^`$9P(/B!/?0@^`$@_H!&=()R/?2@^(("="( -XM0P%!@_\K#X1?`P``08/_+0^$F@,``$&#_ST/A7O^__^`2P$#D.EQ_O__08#\ -XM6`^%]_W__T2)X(@##[=$)#!%A?9!#T7&9B-$)`AFB4,"Z=C]__]%A?:X_PT` -XM`,8#+4$/1<9FB4,"2(/#!+@K````Z\:#1"0D!$B+?"0H2&-$)"1,C22%```` -XM`$R)YN@`````2(7`2(G"#X1;^___2(G82"M$)"A-C604^$B)5"0H3(ED)!!( -XMC1P0Z9K]__^+5"0;H`````$B%P$B)QP^$&?K__TB)V$@K1"0H38UD//A(B7PD -XM*$R)9"002(T<..EJ^O__@T0D)`1(BWPD*$AC1"0D3(TDA0````!,B>;H```` -XM`$B%P$B)QP^$SOG__TB)V$@K1"0H3HUD)_A(B7PD*$R)9"002(T<..GB^O__ -XM187VN/\-``#&`RU!#T7&9HE#`DB#PP2X*P```(@##[=$)#!%A?9!#T7&1"'X -XM9HE#`NG\^O__08#]6`^%\OK__P^V1"0(Z]5!@/TMD`^$)P$``$&`_3T/A8;[ -XM__^`2P$#Z7W[___&0P$<#[=$)#!FB4,"Z3_\__^#1"0D!$B+?"0H2&-$)"1, -XMC22%`````$R)YN@`````2(7`2(G"#X0,^?__2(G82"M$)"A-C604^$B)5"0H -XM3(ED)!!(C1P0Z9_Z___&0P$<#[=$)#!FB4,"Z>7\__^Y`````+J``0``O@`` -XM``"_`````.@`````Z;7Z__^Y`````+J``0``O@````"_`````.@`````Z0;[ -XM___&0P$<#[=$)#!FB4,"Z0K^__^`2P$"Z2?[__^Y`````+J``0``O@````"_ -XM`````.@`````Z:+Y__^Y`````+J``0``O@````"_`````.@`````Z<'X__^` -XM2P$!Z>+Z__^`2P$"Z;GY__^`2P$!Z6#Z__^Y`````+J``0``O@````"_```` -XM`.@`````ZCI#_;__TB-="1HN@@```!( -XMB>_H`````$B)PDB+1"1H@#@`=3SVQO")U74U2#M<)!!)B=QS6$B%VW1M2(U# -XM!&:!Y?\/Q@,M9L=#`O\/QD,$*V:):`+&0`0`3(G@Z;3U__](B=_H`````#'` -XMZ:7U__^Y`````+K*`0``O@````"_`````.@`````Z6W^__^^,````$B)W^@` -XM````2(7`=,%(B<-)B<3KCKD`````NH`!``"^`````+\`````Z`````#I=?__ -XM_P````$1`24.$PL##A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM)$P`` -XM!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,```D3 -XM`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L!`4D3`1,```PA`$D3+PL` -XM``T3`0L+.@L["P$3```.$P$+!3H+.PL!$P``#Q4!)PQ)$P$3```0!0!)$P`` -XM$0T``P@Z"SL+21,X"@``$BX!/PP##CH+.PLG#$D3$0$2`4`&`1,``!,%``,. -XM.@L["TD3`@8``!0T``,(.@L["TD3```5-``##CH+.PM)$P(&```6"@`##CH+ -XM.PL1`0``%S0``PY)$S0,`@H``!@F````&2X!`PXZ"SL+)PQ)$R`+`1,``!H% -XM``,(.@L["TD3```;+@$##CH+.P4G#$D3(`L!$P``'`4``P@Z"SL%21,``!T% -XM``,..@L[!4D3```>+@$##CH+.P4G#"`+`1,``!\T``,..@L[!4D3```@-``# -XM"#H+.P5)$P``(04``P@Z"SL+21,"!@``(C0``P@Z"SL+21,"!@``(S0``PXZ -XM"SL+21,""@``)`H``PXZ"SL%```E"@`##CH+.P41`0``)AT!,1,1`1(!6`M9 -XM"P$3```G!0`Q$P``*`4`,1,"!@``*0L!508!$P``*AT!,1-5!E@+604!$P`` -XM*PL!$0$2`0$3```L"P%5!@``+30`,1,``"XT`#$3`@8``"\T``,..@L["TD3 -XM```P'0$Q$U4&6`M9"P``,30``PXZ"SL+21,_##P,````?P@```(```````@! -XM``````$````````````````````````````````"`08``````@$(``````(" -XM!0`````#``````,V20````("!P`````$!`5I;G0``P`````#.&(````"!`<` -XM`````@@%``````,``````SI[`````@@'``````((!``````"!`0``````P`` -XM```#4G`````%"`<&"`,`````!#$^`````P`````$5E`````#``````17JP`` -XM``(!!@`````#``````4T8@````<(P0````<(WP````C!`````P`````%RZ`` -XM```)`````!`&,PH!```*``````8T"@$```(C```+5P```!H!```,FP````,` -XM`P`````&->\````#``````V`````B,("@`````(.'$!```"(Q``!PA[ -XM`````P`````(.3`!```-$`@[IP$```H`````"#Q0`````B,`"@`````(/:P`````#```,FP```/\`"[8````0`P`` -XM#)L```#_``,`````"%>X`0```@@%``````D`````!`%'60,``!%C;60``4C! -XM`````B,`"@`````!2<$````"(P$*``````%*Y`````(C`@`#``````%+(@,` -XM`!(!``````%O`>0```````````````````````````````,$```3``````%M -XM`P0````````3``````%NY``````````4@&=!```'&]P``%\`5`````<=VAO``%[`5`````= -XM``````%[`5`````=``````%]`<@````7`````%`(```!"0,````````````' -XM"%D#```>``````'&`0$!#04``!QS970``<4!G00``!\``````<`9T$````*CL$`````````4\! -XM?@8``"=\!```)W`$```G9`0``"=9!```)TT$````*CL$`````````5X!J`8` -XM`"=\!```)W`$```G9`0``"=9!```)TT$````*CL$`````````48!T@8``"=\ -XM!```)W`$```G9`0``"=9!```)TT$````*CL$`````````4P!_`8``"=\!``` -XM)W`$```G9`0``"=9!```)TT$````*CL$`````````5H!)@<``"=\!```)W`$ -XM```G9`0``"=9!```)TT$````*P````````````````````!(!P``'P`````! -XM3P&=!````"L`````````````````````:@<``!\``````5H!G00````K```` -XM`````````````````(P'```?``````%&`9T$````*P`````````````````` -XM``"N!P``'P`````!3`&=!````"JC!`````````%P`>L'```GL00``"P````` -XM+;T$```NR00````````MU00``"WA!```+NT$```````````I```````(```O -XM``````'WG00````P.P0````````!]R=\!```)W`$```G9`0``"=9!```)TT$ -XM``````A_`@``"\$````["```#)L````-``@K"```"\$```!0"```#)L````& -XM``A`"```,0`````"6E`````!`3$`````"%L0`P```0$Q``````A7!E7!E7!E+F@``@`````)`@```````````^X``2\U<3T#,V,#4N\# -XM.0(I`0-V1P,*.0-'';\#"=,#"N]65KA6U%8##G\#44<#$;="O%;Q5L96XHX# -XM%<56`V%C`QK3`U'%`]4``B,!`PO]`Z(!52P#YW[A5E2`\?XMF5=:"$J3!`(# -XMD']'!`$#^``(1P,*"$<#=E4#"CD#$@BI`\D`"!T#NW_]`_4`?P.'?T=.`_(` -XM"!T#D'^I`SFI"$V``R*I`PV-.@,9"$<#OG]'U9T#M7_O`QV;`V)C`QB-`WJ- -XM\'(#=HWP`WB-`R6-5@,ZQ8\#)0)'`0.B?W&=""P#-*D##8TZ`QG]`V=_`QE' -XM`ZA_1P,QJ0-/.0,Q564#)0([`0.Q?PA5G0,FJ8\#)0(\`0-;C0,3[S@Z9&9@ -XM`PD",P&J`Z]_C0.T?P)+`0@^`WIQ2.D#/HT#.0@=`Q/O.#ID9F`#"0(S`9V= -XMG`->FP,+Q2P#=PB-?CJ``U2I`DL,N`,JQ0,+Q2P#=PAQ?CJ`I0,3[S@Z9&9@ -XM`PD",P&=G9P#X7Z-`PG3`]``C0-H`DL!`S\"2P%^.H"4+`-T"'$#'_VKG`-W -XMC4@#L'_3`\\``DL!2`-DTP,;`CP!2-<#8(T#(@(\`8N/`UZ-`R((Q0-(C58# -XMWP`YNPAD@#CB8L0#"PB;2T@#=K=($#K7X(Q0.)`0B-`AX` -XM`0%B8F]X("$]($Y53$P`!`,!PB0`0```````"0```````````````````!K`0```````$(. -XM$(P"1PX8A@-##B"#!``\````````````````````R0H```````!"#A!"#AA" -XM#B!"#BA!#C"&!HP%C02.`X\"1`XX1`ZP`8,'````````%``````````!>E(` -XM`7@0`0,,!PB0`0``'````!P`````````:P$```!"#A",`D<.&(8#0PX@@P0T -XM````/`````````#)"@```$(.$$(.&$(.($(.*$$.,(8&C`6-!(X#CP)$#CA$ -XM#K`!@P<``````````````````@`````````"`'<(`@`````````)```````` -XM``(`=Q`)``````````P``````````@!W&`P`````````:P$````````"`'<@ -XM````````````````````````````````%0`````````!`%45`````````$\` -XM`````````0!33P````````!6``````````$`558`````````:P$````````! -XM`%,````````````````````````````````5``````````$`5!4````````` -XM4``````````!`%96`````````&L!`````````0!6```````````````````` -XM`#$`````````XP`````````!`%7C`````````.L``````````0!5ZP`````` -XM```>`0````````$`51X!````````(`$````````!`%4@`0```````$T!```` -XM`````0!5`````````````````````!X`````````50`````````!`%15```` -XM`````%4``````````0!05@````````!D``````````$`5'``````````E@`` -XM```````!`%26`````````,P``````````0!4VP````````#]``````````$` -XM5/T`````````30$````````!`%0`````````````````````,0````````!L -XM``````````$`6'``````````LP`````````!`%BS`````````-(````````` -XM`0!8VP`````````U`0````````$`6#4!````````.0$````````!`%@Y`0`` -XM`````$T!`````````0!8`````````````````````'`!````````<@$````` -XM```"`'<(<@$```````!T`0````````(`=Q!T`0```````'8!`````````@!W -XM&'8!````````>`$````````"`'<@>`$```````!Y`0````````(`=RAY`0`` -XM`````'T!`````````@!W,'T!````````@0$````````"`'B@(```````!Y"P`````` -XM``$`7N,+`````````0P````````!`%X`````````````````````B`$````` -XM``"7`0````````,`D;A_DPL```````"8"P````````,`D;A_F`L```````"I -XM"P````````$`4*D+````````XPL````````#`)&X?P$,````````#@P````` -XM```!`%`.#````````#D,`````````P"1N'\`````````````````````B`$` -XM``````"-`0````````$`4_4!````````F`H````````!`%/""@```````#<+ -XM`````````0!32PL```````!Q"P````````$`4WD+````````L@L````````! -XM`%.R"P```````,\+`````````0!0SPL````````Y#`````````$`4P`````` -XM``````````````"(`0```````)`!`````````0!0L````` -XM```#`)'X?J<+````````XPL````````!`%SC"P````````$,`````````0!6 -XM`0P````````Y#`````````$`7`````````````````````"(`0```````)!P```````&<'`````````0!09P<```````#A"``````` -XM``,`D8!_X0@```````#J"`````````$`4.H(````````.0P````````#`)&` -XM?P````````````````````"(`0```````)`@````````#`)'T?G@(````````B`@````````!`%"T"``` -XM`````#H)`````````P"1]'XZ"0```````$H)`````````0!0=@D```````!Y -XM"P````````,`D?1^XPL````````!#`````````,`D?1^```````````````` -XM``````("````````"0(````````!`%`)`@```````&P"`````````0!00L```````"+"P````````$`4`````````````````````"( -XM`0```````)0!?7VEN=F%L:61?7!E -XM7V5X=`!"251#340`7U]M87!U<'!E'0`8VQR8FET0!?7VUA>`!?7W-P=71R=6YE -XM`%]?;6%P;&]W97)?97AT`&QO;F<@=6YS:6=N960@:6YT`&1O=6)L90!C;VUM -XM;VX`7U)U;F5,;V-A;&4`;6%S:P!B8F]X`'-I9W-E=%]T`'!E6UT86(`+G-T%(````````8`````````!L````3```` -XM"``````````8`````````-(````!`````````````````````````)8I```` -XM````,`````````````````````$```````````````````#-````!``````` -XM``````````````````"04@```````#``````````&P```!4````(```````` -XM`!@`````````X0````$`````````````````````````QBD````````0`P`` -XM`````````````````0```````````````````.\````!````,``````````` -XM`````````-8L`````````@`` -XM`````%("````````"@```!0````B`@```````&$"````````"@```!0```#5 -XM`0```````'`"````````"@```!0````4`````````!$#````````"@```!0` -XM``#-`@```````!X#````````"@```!0````W`0```````",#````````"@`` -XM`!0```#@`0```````#T#````````"@```!0````'`@```````$L#```````` -XM"@```!0```!%`0```````%H#````````"@```!0````;`@```````&8#```` -XM````"@```!0```#W`@```````'$#`````````0````(``````````````'D# -XM`````````0````(```!K`0```````($#````````"@```!`````````````` -XM`(H#````````"@```!0```#>`@```````)0#````````"@```!````!@```` -XM`````)D#````````"@```!0```#M`0```````*,#````````"@```!````"\ -XM`````````+,#````````"@```!0```"E`````````+T#````````"@```!`` -XM```%`0```````,(#````````"@```!0```"L`````````,P#````````"@`` -XM`!````!T`0```````-$#````````"@```!0```"?`````````-L#```````` -XM"@```!`````)`@```````.`#````````"@```!0```#&`@```````.8#```` -XM`````0````(```!P`````````.\#````````"@```!0```#^`0```````/H# -XM`````````0````L````=`0```````!8$````````"@```!0````Q`P`````` -XM`#P$````````"@```!0```!G`@```````'$$````````"@```!0````C```` -XM`````'T$````````"@```!0```#9`@```````(D$````````"@```!0```#^ -XM`0```````)0$`````````0````L````(`0```````*0$````````"@```!0` -XM```&`````````+X$````````"@```!0````?`0```````,H$````````"@`` -XM`!0````U`````````-8$````````"@```!0````Q`@```````.($```````` -XM"@```!0```#G`0```````/D$````````"@```!0```#^`0````````0%```` -XM`````0````L````/`0````````\%````````"@```!0```#_`@```````!H% -XM`````````0````(```!P`0```````"(%`````````0````(````Y#``````` -XM`"H%````````"@```!````"+`@```````#L%````````"@```!`````\`P`` -XM`````$`%````````"@```!0```#L`@```````$H%````````"@```!````"^ -XM`P```````%D%````````"@```!````!`!````````'$%````````"@```!`` -XM``"O!````````(`%````````"@```!`````Y!0```````(4%````````"@`` -XM`!0````A`P```````(\%````````"@```!````#.!0```````)0%```````` -XM"@```!0```"T`````````)X%````````"@```!````#T!@```````*,%```` -XM````"@```!0````I`P```````+(%````````"@```!0```"-`````````,$% -XM````````"@```!0```#9`@```````,L%````````"@```!`````N!P`````` -XM`-`%````````"@```!0```#$`````````-H%````````"@```!````"D"``` -XM`````-\%````````"@```!0```!B`````````.D%````````"@```!````#S -XM"````````.X%````````"@```!0````:`P```````/@%````````"@```!`` -XM``!""0```````/T%````````"@```!0```!B`P````````4&````````"@`` -XM`!0```!S`0````````P&`````````0````(```#X`@```````!D&```````` -XM`0````(````"`@```````"$&`````````0````(````7`@```````#D&```` -XM````"@```!````!9"@```````#\&````````"@```!,``````````````$@& -XM````````"@```!0```!%`P```````%D&````````"@```!,````P```````` -XM`(,&````````"@```!,```#0`````````*T&````````"@```!,````0`0`` -XM`````-<&````````"@```!,```"0`0````````$'````````"@```!,```#` -XM`0```````"<'`````````0````(```!^!0```````"\'`````````0````(` -XM``#)!0```````#P'````````"@```!0```!%`P```````$D'`````````0`` -XM``(```#````#VQ0'&`W=( -XMC4,!#X7C````Q@`M2(/``83)#XCC````Q@`M2(U0`8G()4`(``"#^$`/A>,` -XM``#&`GA(@\(!]L$@#X7M````9F9FD/;!$,8"+4B-0@$/A>D```#&`"U(C5`! -XMB<@E"`0``(/X"`^%Z0```,8">$B#P@'VP00/A?,```#VP0+&`BU(C4(!#X7S -XM````Q@`M2(U0`8G()0$"``"#^`$/A?,```#&`GA(@\(!Q@(@QD(!`$B#Q`A; -XM7<,]`"````^$Z@$``#T`0```#X0.`0``/0`0``!FD`^$G`$``$B-0P'&`S]F -XM9I#VQ0$/A!W____&`')(@\`!A,D/B1W____&`'=(C5`!B<@E0`@``(/X0`^$ -XM'?___P^/\````(7`=0?&`BU(@\(!]L$@#X07____]L$0Q@)R2(U"`0^$%___ -XM_\8`=TB-4`&)R"4(!```@_@(#X07____#X^-````AD)____2(U#`<8#9.G]_O__/0`$``!T.ST( -XM!```D`^%:____\8"DP____Q@)32(/"`>GC_O__9F:0Q@)42(/" -XM`<8"(,9"`0!(@\0(6UW#A<`/A5/____&`BU(@\(!Q@(@QD(!`$B#Q`A;7<-( -XMC4,!Q@-PZ6+^__]FD$B-0P'&`VSI5/[__V9F9I!(C4,!Q@-BZ43^__](C4,! -XMQ@-SZ3C^__](C4,!Q@-CZ2S^__^Y`````+H^````O@````"_`````.@````` -XMZ=+\__\```$1`24.$PL##A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM) -XM$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"TD3```'+@$_#`,..@L["Q$! -XM$@%`!@$3```(!0`##CH+.PM)$P(&```)!0`#"#H+.PM)$P(&```*-``##DD3 -XM-`P""@``"P$!21,!$P``#"$`21,O"P``#28`21,````#`0```@``````"`$` -XM`````0````````````````````````````````(!!@`````"`0@``````@(% -XM``````,``````C9)`````@('``````0$!6EN=``"!`<``````@@%``````(( -XM!P`````""`0``````@0$``````4(!P,``````S$^`````@$&``````8(B``` -XM``,`````!,M]````!P$``````3P``````````````````````````/$````( -XM``````$ZE0`````````)<``!.X\`````````"@`````!`0```0D#```````` -XM````"X@````!`0``#'H````'``WQ`````%`!```"`*,````!`?L."@`!`0$! -XM`````2]U -XMX0,+"!T#%-,#:;<#,^%X.D@#:W&$`PYQ.D@#HG]Q`W;3`V[O`Q>W`V6W`WBW -XM`AX``0%P("$]($Y53$P``````````"]U`````0````(````````` -XM```````````@!P```````#@````````````````````(```````````````` -XM````F0````0`````````````````````````P!D````````8`````````!D` -XM```/````"``````````8`````````*@````!```````````````````````` -XM`%@'````````Q`,```````````````````$```````````````````"X```` -XM`0`````````````````````````<"P```````!X````````````````````! -XM````````````````````LP````0`````````````````````````V!D````` -XM```8`````````!D````2````"``````````8`````````,T````!```````` -XM`````````````````#H+````````,`````````````````````$````````` -XM``````````#(````!`````````````````````````#P&0```````#`````` -XM````&0```!0````(`````````!@`````````W`````$````P```````````` -XM````````:@L````````)`0```````````````````0`````````!```````` -XM`.<````!`````````````````````````',,````````)@`````````````` -XM``````$````````````````````1`````P````````````````````````"9 -XM#````````/`````````````````````!`````````````````````0````(` -XM````````````````````````4!0```````#X`0```````!H````3````"``` -XM```````8``````````D````#`````````````````````````$@6```````` -XM*@````````````````````$````````````````````````````````````` -XM```````````````!````!`#Q_P```````````````````````````P`!```` -XM`````````````````````````P`#`````````````````````````````P`$ -XM`````````````````````````````P`%```````````````````````````` -XM`P`&`````````````````````````````P`(```````````````````````` -XM`````P`*`````````````````````````````P`+```````````````````` -XM```+`````0`,````````````"````````````````P`,```````````````` -XM`````````````P`-`````````````````````````````P`/```````````` -XM`````````````````P`1`````````````````````````````P`2```````` -XM`````````````````````P`4`````````````````````````````P`6```` -XM`````````````````````````P`7```````````````````````9````$@`! -XM````````````0@,````````A````$```````````````````````````B`9`,(_DB+7"0(2(ML)!!(@\08PV9F9I!F9F:02(E<)/!(B6PD -XM^$B#[!B!/P`1$0!(B?N)]709N0````"Z[P```+X`````OP````#H`````(/] -XM`789N0````"Z\````+X`````OP````#H`````(GH@$P#"`%(BUPD"$B+;"00 -XM2(/$&,-F9F:09F9FD%5%,E(@_D"=")(@^D!=$I!@\`!A,!(C6H!=#$/MG4`0(#^ -XM+W6]2(/%`>OP0(#^+G7>@'T!+G78187`9F9FD'[308/H`83`2(UJ`77/2('$ -XM"!```$2)P%M=PT"`_BYUL.NR0(#_+@^%7/___X!^`2X/A5+___]%A<`/CDW_ -XM__]!@^@!Z43___]F9F:09F:00(#_+@^%+____V9FD&9FD.DH____O@````"_ -XM`0```.@`````0;C_____ZY)F9F:02(E<).A(B6PD\$B)^TR)9"3X2(/L&($_ -XM`!$1`(GU28G4=!FY`````+I6`0``O@````"_`````.@`````@_T!=AFY```` -XM`+I7`0``O@````"_`````.@`````B>CV1`,(`W4&]D,)`W063(GGZ!_^__^% -XMP+K_____>`<[0P1V%S'22(L<)$B+;"0(B=!,BV0D$$B#Q!C#3(GBO@````"_ -XM`0```#'`Z`````"Z_____^O09F9FD&9F9I!F9F:09F:054B)_5-(B?-(@^P8 -XM#[X6A=)X+(LU`````#GR?2)(BPT`````ZP](@\,!#[X3A=)X#CGR?0I(8\+V -XM1,%!0'7G@_I_=PU(8\+V!,4`````!'4<2(G?Z'?]__^%P(E%!`^$HP```$B# -XMQ!@QP%M=P[X`````2(G?Z`````!(A-``##CH+.PM)$P``'S0``P@Z"SL+21,``"`N -XM`0,..@L["R<,21,1`1(!0`8!$P``(30``PXZ"SL+21,"!@``(@L!508!$P`` -XM(S0``PXZ"SL+21,""@``)!T!,1-5!E@+60L``"4%`#$3```F"P%5!@``)S0` -XM,1,"!@``*#0`,1,``"DA`$D3+P4``"HN`3\,`PXZ"SL%)PQ)$Q$!$@%`!@$3 -XM```K!0`##CH+.P5)$P(&```L-``##CH+.P5)$P(&```M'0$Q$U4&6`M9!0$3 -XM```N!0`Q$P(&```O'0$Q$Q$!$@%8"UD%`1,``#`+`1$!$@$``#$=`3$35098 -XM"UD%```R-``#"#H+.P5)$P(&```S-``##CH+.P5)$P``-#0``PXZ"SL+21,_ -XM##P,````<0@```(```````@!``````$````````````````````````````` -XM```"`08``````@$(``````("!0`````"`@<``````P0%:6YT``($!P`````" -XM"`4`````!``````#.F4````""`<``````@@$``````($!``````$``````-2 -XM6@````4(!P8(!``````$5D4````$``````17B@````(!!@`````'"*`````' -XM"+,````(H`````0`````!>AZ`````@@%``````D8!C0+`0``"@`````&-94` -XM```"(P`*``````8VE0````(C!`H`````!C>5`````B,("@`````&.`L!```" -XM(Q``!PAE````!``````&.@````]3`@````<(K0````<(.0(```X!10```'X"```/E0````^G -XM````#WH````/?@(````'"*<````'"%\"```,90```)H"```-A0```/\`#)4` -XM``"J`@``#84```#_``0`````!E=2`0``$`0'(M8"```1```````1```````1 -XM``````$1``````(`!``````')[4"```2``````P'+Q@#```*``````8H````47V8``GEE````%0`3```` -XM``*``44````#S0,``!1?8P`"?XH````47V8``G]E`````!8!``````':`0`` -XM```````````````````"=PC[`P``%P`````!V3,#```!50`6`0`````!Z`$` -XM`````````````````````G<(*00``!<``````>!```&@`````!]3,#````````&@`````!]=8"````````&P`` -XM```]"````0D#````````````&0$``````>X!```````````````````````` -XM``#R!```&@`````![3,#````````&@`````![=8"````````&P`````H"``` -XM`0D#````````````$P`````!1`%%`````3(%```<``````%#K0```!P````` -XM`4-%````'1X``````4>M````'V-C:``!2+@``````"```````74!10`````` -XM````````````````````````W@4``!H``````72M`````````"$``````79% -XM`````````"(`````MP4``",``````<'>!0```Y'@7R3R!`````````'')0X% -XM```E`P4``"8`````)QH%````````*"4%```````D\@0````````!T"4.!0`` -XM)0,%```F`````"@:!0``*"4%```````,H````.\%```IA0```/\/`"H!```` -XM``%5`0%%``````````````````````````````!T!@``*P`````!5`%$`P`` -XM`````"L``````50!U@(````````K``````%4`:T`````````(@````!?!@`` -XM+``````!7P%%```````````;`````$((```!"0,````````````J`0`````! -XM!0$!10``````````````````````````````:@<``"L``````00!,P,````` -XM```K``````$$`:T`````````+8`#`````````0R5U`P``+FL#```````````OIP,````````````````````` -XM```!"P$6!P``)<(#```EN`,````P`````````````````````"P``````0\! -XMIP`````````Q@`,````````!%`$EFP,``"61`P``)%H#`````````GLE=0,` -XM`"YK`P`````````````J`0`````!*P$!10`````````````````````````` -XM````$P@``"L``````2H!,P,````````K``````$J`7X"````````*P`````! -XM*@&M`````````#)I``$L`4P`````````+``````!+0$3"````````"8````` -XM+``````!,0&M`````````#``````````````````````,P`````!-P&M```` -XM````"+@````,H````"@(```-A0```!8`"!@(```,H````#T(```-A0```!<` -XM""T(```(+0@``#0``````EI%`````0$T``````9;J@(```$!-``````&7&X( -XM```!`0<(J@(````F`@```@#K`````0'[#@H``0$!`0````$O=7-R+W!O7,``&MB=6EL9%]P7!E+F@` -XM`@``7W1Y<&5S+F@``P``7W1Y<&5S+F@`!```='EP97,N:``$``!R=6YE='EP -XM92YH``(``&MB=6EL9%]P.C`0"`]I^.00!`ZD!1PB2"#L##0A'_S=E5S<["((('T@((P@>@`@> -XM`W%_`Q*D#"0B;"%8""P`!`7!4:&ES+3YU36%G:6,@/3T@2T)5 -XM24Q$7U!23U1%0U1)3TY?34%'24,``````````"]U7!E(#P@2T)524Q$4%)/ -XM5$5#5$E/3E194$5?34%8("8F(&5N;51Y<&4@/CT@2T)524Q$4%)/5$5#5$E/ -XM3E194$5?1DE24U0`9V5T8W=D`"5S.B!P``````````$`4YX`````````J``````````!`%4````````````` -XM````````0`````````!;``````````$`5%L`````````E``````````!`%:4 -XM`````````*@``````````0!0`````````````````````+``````````O@`` -XM```````"`'<(O@`````````8`0````````(`=R`````````````````````` -XML`````````#+``````````$`5T!````````_0$````````!`%$>`@```````"L"`````````0!1,P(````` -XM``!Z`@````````$`5`````````````````````"0`@```````*8"```````` -XM`@!W"*8"````````00,````````"`'<@`````````````````````)`"```` -XM````QP(````````!`%7'`@```````!4#`````````0!3%0,````````F`P`` -XM``````$`528#````````00,````````!`%,`````````````````````D`(` -XM``````"S`@````````$`5+,"````````[`(````````!`%;L`@````````$# -XM`````````0!0#P,````````<`P````````$`4`````````````````````"0 -XM`@```````+,"`````````0!1LP(````````A`P````````$`7"8#```````` -XM00,````````!`%P``````````````````````P,````````<`P````````$` -XM4"8#````````-0,````````!`%``````````````````````4`,```````!1 -XM`P````````(`=PA1`P```````%4#`````````@!W$%4#````````7`,````` -XM```"`'<87`,```````!R!`````````(`=S``````````````````````4`,` -XM``````!C`P````````$`56,#````````O`,````````!`%:]`P```````'$$ -XM`````````0!6`````````````````````%`#````````:0,````````!`%1I -XM`P```````+L#`````````0!3O0,```````!P!`````````$`4P`````````` -XM``````````!?`P```````'8#`````````0!1=@,```````!]`P````````$` -XM4'T#````````B`,````````!`%&(`P```````(\#`````````0!0CP,````` -XM``"7`P````````$`49<#````````J0,````````!`%"]`P```````,H#```` -XM`````0!0`````````````````````+0#````````O0,````````!`%'B`P`` -XM`````/L#`````````@"18/L#````````'@0````````!`%$>!````````"T$ -XM`````````0!2+00````````]!`````````$`43T$````````200````````! -XM`%))!````````%<$`````````0!15P0```````!R!`````````(`D6`````` -XM````````````````M`,```````"Z`P````````$`4/X#````````%00````` -XM```!`%`5!````````#D$`````````0!0.00```````!`!`````````$`4$D$ -XM````````9@0````````!`%``````````````````````@`0```````""!``` -XM``````(`=PB"!````````(<$`````````@!W$(<$````````C`0````````" -XM`'<8C`0```````".!`````````(`=R".!````````)4$`````````@!W*)4$ -XM````````E@0````````"`'7!E`'!A<'-Z16YV`$M"54E,1%!23U1%0U1)3TY465!% -XM7T9)4E-4`&QO;F<@:6YT`%]?;6%P;&]W97(`2T)524Q$4%)/5$5#5$E/3E19 -XM4$5?1E5,3`!P7!E`'!S>E9A<@!?0W5R -XM0!C8VA0E9A;`!+0E5) -XM3$104D]414-424].5%E015]-05@`=6YS:6=N960@8VAA<@!?4G5N95)A;F=E -XM`%]?E!R969I>`!'3E4@0R`T+C(N,2`R,#`W,#7!E7V5X=`!?7VUA<`!?7VUA>```1T-#.B`H1TY5*2`T+C(N,2`R -XM,#`W,#'0`+F1A=&$`+F)S`!K -XM0G5I;&10`````````%L`````````"@```!4```"A`@```````&@` -XM````````"@```!4```"A`0```````&\`````````"@```!4````5`0`````` -XM`'8`````````"@```!4```"L`@```````'L`````````"@```!4```!B`0`` -XM`````(L`````````"@```!4````/!````````)8`````````"@```!4```!L -XM`````````*,`````````"@```!4```!:`P```````+D`````````"@```!4` -XM``!$`````````,8`````````"@```!4```"*`````````-,`````````"@`` -XM`!4````^`````````.$`````````"@```!4```"!@```````#P'````````"@```!0```"``0```````%('````````"@`` -XM`!0```#``0```````&('````````"@```!$````(!P```````&P'```````` -XM"@```!4```!?`P```````'@'`````````0````(```"`!````````(`'```` -XM`````0````(```"$!0```````(@'````````"@```!$```!W!P```````)$' -XM````````"@```!4```#V`P```````)P'````````"@```!$````H"``````` -XM`*$'````````"@```!4```"Z`````````*P'````````"@```!$```!Q"``` -XM`````+$'````````"@```!4````P`P```````+P'````````"@```!$```"Z -XM"````````,H'````````"@```!$````#"0```````,\'````````"@```!4` -XM``!'`@```````-H'````````"@```!$```"8"0```````-\'````````"@`` -XM`!0``````@```````.0'````````"@```!4````F`0```````.\'```````` -XM"@```!$```#."0```````/0'`````````0````(```!(!0```````/P'```` -XM`````0````(```!C!0````````4(````````"@```!4```"[`@```````$@( -XM````````"@```!4```!4`0```````%4(````````"@```!4````)`P`````` -XM`&((````````"@```!4````M`0```````/@``````````0````(````````` -XM`````!P`````````"@````\``````````````"```````````0````(````` -XM`````````#0`````````"@````\``````````````#@``````````0````(` -XM```@`````````$P`````````"@````\``````````````%```````````0`` -XM``(````P`````````&0`````````"@````\``````````````&@````````` -XM`0````(```!``````````(0`````````"@````\``````````````(@````` -XM`````0````(```"P`````````*0`````````"@````\``````````````*@` -XM`````````0````(````@`0```````,P`````````"@````\````````````` -XM`-```````````0````(```"0`@```````/0`````````"@````\````````` -XM`````/@``````````0````(```!0`P```````!P!````````"@````\````` -XM`````````"`!`````````0````(```"`!````````"``````````"@````(` -XM`````````````#@`````````"@````(````@`````````%``````````"@`` -XM``(````P`````````&@`````````"@````(```!``````````(`````````` -XM"@````(```"P`````````)@`````````"@````(````@`0```````+@````` -XM````"@````(```"0`@```````-@`````````"@````(```!0`P```````/@` -XM````````"@````(```"`!`````````8`````````"@````8````````````` -XM``8`````````"@````8``````````````!```````````0````(````````` -XM`````&=E=&]P="YO+R`@("`@("`Q,C$Y,3DX.#`Y("`Q,#`Q("`P("`@("`Q -XM,#`V-#0@(#(X-30T("`@("!@"G]%3$8"`0$)```````````!`#X``0`````` -XM``````````````````"P1`````````````!```````!``!L`&`!!5T%6055! -XM5%532(/L>(L%`````$C'!0``````````B7PD0$B)="0X2(E4)#!(B4PD*(7` -XM3(E$)"!$B4PD'`^$O0(``(L%`````(7`=6.+!0````"_`````$C'!0`````` -XM````B04`````B04`````,<#H`````$B+3"0P2(D%``````^V$8#Z+0^$WP,` -XM`(#Z*P^$A`0``$B%P`^4P`^VP(D%`````,<%``````$```!,BS4`````387V -XM=`I!@#X`#X4X`0``1(L=`````$0Y'0````"+%0````"+!0````!$BS4````` -XM18G:00]/TT0['0````")%0````!!#TS#08/^`8D%``````^$=@,``$0[7"1` -XM#X2H"```2(M4)#A)8\._`````/RY`P```$R+#,),B<[SI@^%B0```$2++0`` -XM``!$BQ4`````08UK`8DM`````$4YU0^$Q04``$0YU70R2(M,)#A)8\)$B>M! -XMB>M,C23!13G3#X_R`P``B>B)+0````!$*=!$`>B)!0````!!B<6+1"1`B04` -XM````B04`````1#LM``````^%W@<``+C_____2(/$>%M=05Q!74%>05_#08`Y -XM+0^%80,``$$/ME$!28U)`832#X10`P``,+%0````!(BTPD.$ACPHE4)'!(BP3!2(E$)&@/ -XMMD`!/"V(1"1W#X0E`0``BT0D'(7`#X72````2(M4)#!)C4X!00^V/DB)#0`` -XM```/M@)`#[[OA,!T+0^^\#GN2(M4)#`/A)<$``!(BU0D,.L+#[[`.<4/A(4$ -XM``!(@\(!#[8"A,!UZC'VN`$```"`.0&+%0````"#T@"$P(D5``````^%^0,` -XM`$"`_SH/A.\#``"`/EA(QP4``````````.FV_O__QP4` -XM`````0```.D^_?__2(M4)&B`>@(`=3Q(BTPD,`^V`83`=#!(BI!#[8&A,"( -XM1"1/!```/#U-B?0/A,0$``!)@\0!00^V!"2$P`^%W0$``$B+5"0H2(L: -XM2(7;#X0[!@``38GG1(GA2(G51"GQ32GW13'M2,=$)$@`````QT0D4`````#' -XM1"14_____XE,)`SK$4B#Q2!(BUT`2(7;=$E!@\4!3(GZ3(GV2(G?Z`````"% -XMP'7=2(G?Z``````Y1"0,#X1K`P``2(-\)$@`#X3O`@``2(/%(,=$)%`!```` -XM2(M=`$B%VW6WBT0D4(7`#X1(`P``1(L]`````$6%_P^%`@,``$R)]^@````` -XM20'&@P4``````<<%``````````!,B34`````2(/$>+@_````6UU!7$%=05Y! -XM7\-(@\$!QP4``````@```$B)3"0PZ2'\__\YT$&)Q8G3#X2+`P``03G3=#1! -XMB<1(8\)(BU0D.$2)W4R-/,)F9I!F9I`YW0^/4P$``$.-1!T`1(D=`````"G8 -XMB04`````1#E<)$!(BTPD.$ECPTB-%,%_'.LO08/"`4B#P@A$.U0D0$2)%0`` -XM```/A!<"``!(BP*`."UUWH!X`0!TV$2+'0````!$B14`````Z?3[__](@T0D -XM,`''!0``````````Z7;[__]%A?8/A'C\__]!C4,!3(D-`````(D%`````$B# -XMQ'BX`0```%M=05Q!74%>05_#D#P]#X4*_O__Z1;^__]F9I!$.=,/C07\__]% -XMB=A%B=%%*=!!*=E%.1$`1%`<3I#/[__T2+%0````!%A=)T*TB#/0`` -XM````#X3C`@``2(M$)#A(BST`````B>F^`````$B+$#'`Z`````")+0````!( -XM@\1XN#\```!;74%<05U!7D%?PTB);"1(1(EL)%3IP?S__TB%TDB)U@^4P.E_ -XM^___1(M<)$!$B14`````Z>WY__]!B>V)+0````#I9/K__T4IR^D\^O__2(M$ -XM)#A(BTPD:+X`````2(L]`````$B+$#'`Z`````!,BS4`````Z=+\__](B6PD -XM2$2);"142(-\)$@`#X14`@``BT0D<(/``8D%`````$&`/"0`#X2K````2(M4 -XM)$A$BVH(187M#X6+`P``1(LE`````$6%Y'1#2(M,)#A(F$B+1,'X@'@!+0^$ -XM%P,``$B+5"1(#[X(O@````!(BT0D.$B+/0````!,BP)(BQ`QP.@`````3(LU -XM`````$R)]^@`````2(M4)$A)`<9,B34`````BT(8B04`````N#\```#IF?G_ -XM_T$YPXL%`````$$/1<.)!0````#IEOS__TV)].E%^___2(M,)$B#>0@!#X3Q -XM`0``3(GWZ`````!)`<9(@WPD(`!,B34`````=`N+5"142(M$)"")$$B+3"1( -XM2(M1$$B%T@^$Y`$``(M!&(D",<#I)_G__P^V?@%`@/\[#X4D^O__@#D`#X2( -XM`P``@P4``````4B)#0````!,BS4`````3(DU`````$$/M@:$P`^51"1'#X7\ -XM`@``3(GU2(M$)"A(BQA(A=L/A!L$``!(B>J)Z4F)Q$PI\D0I\44Q[44Q_TB) -XM5"1@QT0D6`````#'1"1<`````$B)3"00ZQI)@\0@28L<)$B%VP^$+0,``$B+ -XM5"1@08/'`4R)]DB)W^@`````AT/ -XMA)P"``#'1"18`0```.NQ1"G-Z4'[__](A=(/A-_Y__]!#[8^28U.`4B)#0`` -XM``!`#[[OZ=#X__^X_____T2)+0````#I%OC__TB+1"0X2(L]`````(GIO@`` -XM``!(BQ`QP.@`````Z1C]__]$BRT`````Z=;W__^+7"07] -XM__](BU0D2(M"&.E"]___BRT`````A>UT*4B+5"0X2)A(BST`````O@````!( -XMBTS"^$B+$C'`Z`````!,BS4`````3(GWZ`````!(BU0D2$D!QDB+3"0P3(DU -XM`````(M"&(D%`````#'`@#DZ#Y7`C42`.NG9]O__2(M$)$A(BST`````O@`` -XM``!(BPA(BT0D.$B+$#'`Z`````!,BS4`````Z>?\__](BT0D.$B+/0````!, -XMB?&^`````$B+$#'`Z`````#IZ/[__TF-1"0!2(D%`````.D,_?__BPT````` -XM.TPD0`^$QP$``$B+5"0X2&/!2(L$PDB)!0````"-00&)!0````")Z.E]]___ -XM@'PD=RT/A%S^__](BTPD,`^V`83`#X1,_O__#[Y,)$8/OO!(BU0D,#GQ=!M( -XMBU0D,$B#P@$/M@*$P`^$)_[__P^^P#G!=>I(A=(/A;3]___I$O[__V9F9I!F -XM9I`\/4R)]0^$^?S__TB#Q0$/MD4`A,`/E40D1P^$Y_S__SP]=>?IWOS__TV) -XMY42)?"1$B+3"0X2&/"2(L$P4B)!0````"-0@&)!0````#I7_S_ -XM_T2+1"18187`#X26````BST`````A?\/A>D```!(BQT`````2(G?Z`````"# -XM!0`````!3(TT`[@_````3(DU`````.D:]?__2,<%``````````#IS^__^`?"1'``^$FP`` -XM`$&+=0B%]G5-BPT`````A``V.I````"``````#9*D````( -XM``````-E4P`````)N0```+D````*>@```'\``@$&``````0``````V:*```` -XM!``````$+W\````+`````!`$1O\````,``````1'_P````(C``P`````!$A% -XM`````B,(``T(,`````X`````,`$$9W4"```/7W``!&C_`````B,`#U]R``1I -XM10````(C"`]?=P`$:D4````"(PP,``````1K-P````(C$`P`````!&PW```` -XM`B,2#U]B9@`$;=8````"(Q@,``````1N10````(C*`P`````!'%]`````B,P -XM#``````$D4````"(W`,``````1]_`(```(C=`P`````!'X,`P```B-W#U]L8@`$@=8` -XM```"(W@,``````2$10````,CB`$,``````2%RP````,CD`$,``````2'(@,` -XM``,CF`$,``````2(+@,```,CH`$,``````2)10````,CJ`$,``````2*10`` -XM``,CK`$,``````2+P`````,CL`$`$`%%````A0(``!%]``````T(=0(``!`! -XM10```*4"```1?0```!&E`@``$44`````#0BY````#0B+`@``$`'+````RP(` -XM`!%]````$E`P``%0``````%0`` -XM```!%0`````"`!8``````=8!I0(```'-`P``%W-T<@`!U>L"```78VAR``'5 -XM10`````8``````&!`0'K`@```00$```9``````&``44````9``````&``00$ -XM```9``````&``>L"````#0@*!```$J4"```:``````$M`0$!C@0``!D````` -XM`2P!C@0``!L``````2X!10```!L``````2\!10```!QT;W```3`!10```!QT -XM96T``3$!I0(``!UU!```'&QE;@`!4P%%````'&D``50!10`````>'&QE;@`! -XM9`%%````'&D``64!10``````#0BE`@``'P$``````?D!`44````````````` -XM`````````````````&P'```@``````'W`44`````````(``````!]P$$!``` -XM`````"```````?!```)&H$````````````)@````!9!@``)V,``?,"N0`````` -XM```H``````'T`J4"````````(:4#`````````?0"Z`4``"G!`P```````"*V -XM`P```",`````*``````!#`.E`@```````"=P``$-`VP'````````*``````! -XM#@-L!P```````!L``````0\#10```"@``````1`#10`````````H``````$1 -XM`T4`````````*``````!$@-%````````````(:4#`````````6P">`8``"G! -XM`P```````"*V`P```"8`````!P<``"@``````7`"I0(````````G<``!<0)L -XM!P```````"@``````7(";`<````````;``````%S`D4````H``````%T`D4` -XM````````*``````!=0)%`````````"@``````78"10`````````JI0,````` -XM```!VP(IP0,````````BM@,`````*@\$`````````2$"(AT$```C`````"0I -XM!````````"4U!```)$$$````````)$T$````````)@````!5!P``)78$```D -XM@@0`````````(P`````E7@0``"1J!``````````````-"'('```K`````#\# -XM```L`0`````!N0,!10`````````````````````````"=PC1!P``(``````! -XMN`-%`````````"```````;@#!`0````````@``````&X`^L"`````````"T` -XM`````8RE`@``"0,``````````"T``````;F*`P``"0,``````````"T````` -XM`;RE`@``"0,``````````"T``````?1%````"0,``````````"T``````?5% -XM````"0,``````````"X`````!))'"````0$-"#0#```O``````%NI0(```$) -XM`P``````````+P`````!?44````!"0,``````````"\``````9%%`````0D# -XM```````````O``````&710````$)`P``````````+P`````!@T4````!"0,` -XM``````````")`P```@"P`````0'[#@H``0$!`0````$O=7-R+W!O7,`+W5S`XI_[V=3I[MU -XM476\DP/H`.$##YL(6W+'96PZ26]E245E`Q=C`BT3T9T#H7[3`]\!?P.A?F,# -XM=T<#*(TL8@/$`>&=`PIC`^H"Q5H#F7WA`PL(FP,3",4#ZWP"/P$#G`15`^1[ -XMX0.=!#D#XWM'<\9PJT,#H033N2EE`Q#O`_D`C4FY`P^;DFYT`Q4K`\]\[P/M -XM`.$#ZWRI`Y4#X0/M?%4#DP.I`^U\<:M#`Z$#<0(L%`@\-CPV"-9@_@@?`PD( -XM'0-TMP,,1P-T?P,7C;GRJG*9`YP"<0/F?4<#F@)5`]Q[J4:<`X\!FP.W?@A' -XM`\D!?P.W?CD#=YL#*']6<`.R`7\(2'Y6<`B=`^Q^MV(#NP'ACP/C`OT#G7U' -XM`^,"50/#?;<#UGWOCP@6`Q&-`W$(MSHV/#HU`Q$('0-O50,3_3HV/#HUS0-> -XM?X\(%@,1C0-Q"'$Z-CPZ-0,1"!T#;U4#$P@Y.C8\.C7-`XP#?[G5"+T#KP%C -XM`]%^1P.O`54#U'VI`]%\X0/0`@@K`P_A`YY^J0/``G\"+!2>NL:M""&X"%P" -XM+1.!4YT#ZGX(*P/5``AQ`\4`?P,/X:IBU4#@@2W`X!\54.K`X($<0/8``A'`Q`"*0$#QP#% -XMD'!V`XM_"!T#$F,#'PCOU=;B<$A4`SZW`XY_[[H(N@/1`&,#7PA5@0,LC0,= -XM"$>>"+QP9`.I?^$#"0(K`:V#G`C7`W@")`$#&JFJ8G(LJH\#;<5SN`,3",4# -XM<(V<`B,2`\8``BT!`@T``0%03U-)6$Q97T-/4E)%0U0`+2T`)7,Z(&]P=&EO -XM;B!@)7,G(&ES(&%M8FEG=6]U!`,!PB0`0```````#P```````````````````"R -XM#@```````$(.$$(.&$(.($(.*$$.,$$..$0.L`&#!X8&C`6-!(X#CP(````` -XM```4````````````````````#0`````````4``````````%Z4@`!>!`!`PP' -XM")`!```T````'`````````"R#@```$(.$$(.&$(.($(.*$$.,$$..$0.L`&# -XM!X8&C`6-!(X#CP(``````!0```!4``````````T````````````````````` -XM`````@`````````"`'<(`@`````````$``````````(`=Q`$``````````8` -XM`````````@!W&`8`````````"``````````"`'<@"``````````)```````` -XM``(`=R@)``````````H``````````@!W,`H`````````#@`````````"`'`%````````\`4````````!`%7P -XM!0````````L&`````````0!5,0<````````Y!P````````$`59`)```````` -XMH0D````````!`%4`````````````````````=0$```````#&`0````````$` -XM56T%````````H`4````````!`%6@!0```````+D%`````````0!5N04````` -XM``#@!0````````$`50,&````````"P8````````!`%4Q!P```````#D'```` -XM`````0!5D`D```````"A"0````````$`50````````````````````"W`0`` -XM`````+T!`````````0!62P(```````!9`@````````$`55D"````````M0(` -XM```````!`%:U`@```````,("`````````0!5P@(````````!`P````````$` -XM5J0&````````[`8````````!`%;L!@```````/4&`````````0!5!`<````` -XM```2!P````````$`5I`(````````E`@````````!`%64"````````-<(```` -XM`````0!6?`D```````"+"0````````$`58L)````````D`D````````!`%:A -XM"0```````,,)`````````0!600L```````!T"P````````$`5LD+```````` -XMU0L````````!`%8&#````````%8,`````````0!6G0P```````#R#``````` -XM``$`5A@-````````6PT````````!`%8`````````````````````MP$````` -XM``#&`0````````$`5(P"`````````0,````````!`%2D!@```````-$&```` -XM`````0!4VP8```````#U!@````````$`5`<'````````"@<````````!`%$* -XM!P```````!('`````````0!4D`@````````8"0````````$`5#()```````` -XM-0D````````!`%2A"0```````+0)`````````0!400L```````!T"P`````` -XM``$`5,D+````````^0L````````!`%0&#````````%8,`````````0!4G0P` -XM``````#,#`````````$`5-8,````````\@P````````!`%0##0```````#4- -XM`````````0!4/PT```````!;#0````````$`5`````````````````````#, -XM!@```````-L&`````````0!2KPD```````"^"0````````$`4L<,```````` -XMU@P````````!`%(P#0```````#\-`````````0!2```````````````````` -XM`+`D```````"0"0````````$`7*$) -XM````````PPD````````!`%S/"0```````/\)`````````0!<_PD````````8 -XM"@````````$`6!@*````````:`H````````!`%QU"@```````-X*```````` -XM`0!<#0L````````<"P````````$`7!P+````````*PL````````!`%(P"P`` -XM`````/D+`````````0!`D```````"+"0````````$`5L\)````````>PH````````!`%;>"@`` -XM`````$$+`````````0!6=`L```````#)"P````````$`5@`````````````` -XM``````"W`0```````,8!`````````P"1F']@`@````````$#`````````P"1 -XMF'^O`P```````&X$`````````P"1F'^D!@```````!('`````````P"1F'\Y -XM!P```````!X(`````````P"1F'\^"````````&<)`````````P"1F']X"0`` -XM`````)`)`````````P"1F'^A"0```````,,)`````````P"1F'_/"0`````` -XM`+(.`````````P"1F'\`````````````````````MP$```````#&`0`````` -XM``,`D:!_8`(````````!`P````````,`D:!_MP,```````!N!`````````,` -XMD:!_I`8````````2!P````````,`D:!_.0<````````>"`````````,`D:!_ -XM/@@```````!G"0````````,`D:!_>`D```````"0"0````````,`D:!_H0D` -XM``````##"0````````,`D:!_SPD```````"R#@````````,`D:!_```````` -XM`````````````+"@````````$`70T+````````,`L````````!`%U!"P`````` -XM`/D+`````````0!=!@P```````!6#`````````$`79T,````````\@P````` -XM```!`%T##0```````%L-`````````0!=`````````````````````+"``` -XM`````#X(`````````0!:D`@````````8"0````````$`6C()````````/0D` -XM```````!`%IG"0```````&\)`````````0!6;PD```````"A"0````````$` -XM6L,)````````&`H````````!`%H8"@```````#X*`````````0!:#0L````` -XM```K"P````````$`6D$+````````^0L````````!`%H&#````````%8,```` -XM`````0!:G0P```````#6#`````````$`6M8,````````\@P````````!`%H# -XM#0```````#\-`````````0!:/PT```````!;#0````````$`6@`````````` -XM``````````"J!````````-T$`````````0!1"P8```````!Q!@````````$` -XM48,&````````I`8````````!`%%G"0```````&\)`````````0!1```````` -XM`````````````!`!````````*`$````````!`%6E`0```````,8!```````` -XM`0!5J@0````````08```````")!@````````$`58D&````````I`8` -XM```````!`%42!P```````",'`````````0!59PD```````!O"0````````$` -XM59`)````````H0D````````!`%7#"0```````,\)`````````0!5```````` -XM`````````````!`!````````*`$````````!`%6E`0```````,8!```````` -XM`0!5J@0````````P<``&=E=&]P=`!-"```;W!T87)G`&,(``!O<'1I -XM;F0`>0@``&]P=&5R<@"/"```;W!T;W!T`*4(``!?7V=E=&]P=%]I;FET:6%L -XM:7IE9```````+`````(```````@`````````````````S0X````````````` -XM````````````````3@````````"G`````````!P%````````,04```````!N -XM!````````(8$`````````````````````````````&,!````````:P$````` -XM```Q!P```````#D'````````<`4````````+!@```````'$!````````E0$` -XM````````````````````````````8P$```````!K`0```````#$'```````` -XM.0<```````!P!0````````L&````````<0$```````"5`0`````````````` -XM``````````````"3!0```````+`%````````YP4````````+!@```````-$% -XM````````U@4`````````````````````````````8P$```````!K`0`````` -XM`#$'````````.0<```````#6!0```````.<%````````L`4```````#1!0`` -XM`````(H%````````DP4```````!Q`0```````'4!```````````````````` -XM`````````+(!````````MP$```````#0"P```````+(.````````00L````` -XM``!T"P```````*$)````````SPD```````!X"0```````)`)````````D`@` -XM``````!G"0````````0'````````%P<```````#E!@```````.H&```````` -XMI`8```````#A!@```````#X"`````````0,````````````````````````` -XM````/@(```````!#`@````````0'````````%P<```````!9`@```````)$" -XM````````4@(```````!5`@````````````````````````````"^`@`````` -XM`,("````````6PT```````"R#@```````*T,````````&`T````````O#``` -XM`````)T,````````T`L````````&#````````)X(````````9PD````````` -XM````````````````````&P,````````J`P```````$$#````````5P,````` -XM```O`P```````#H#`````````````````````````````%<#````````6@0` -XM``````!T"P```````-`+````````SPD```````!!"P```````#8(```````` -XMD`@````````Y!P```````!X(````````]08````````$!P```````&`%```` -XM````<`4```````!>!````````&,$`````````````````````````````'\+ -XM````````CPL```````"E"P```````+L+````````E`L```````"@"P`````` -XM``````````````````````";!````````*,$````````9PD```````!O"0`` -XM``````L&````````I`8```````"F!````````,P$```````````````````` -XM`````````)L$````````HP0```````!G"0```````&\)````````"P8````` -XM``"D!@```````*8$````````S`0`````````````````````````````+@8` -XM``````!&!@```````(`&````````I`8```````!G!@```````&P&```````` -XM`````````````````````)L$````````HP0```````!G"0```````&\)```` -XM````;`8```````"`!@```````$8&````````9P8````````E!@```````"X& -XM````````I@0```````"P!`````````````````````````````!O<'1I;F0` -XM;W!T87)G`%!%4DU55$4`7U]M8G-T871E7W0`7V9L7V]W;F5R`&]R9&5R:6YG -XM`%]?'1C:&%R`&)O='1O;0!2 -XM15%525)%7T]21$52`%]F;%]C;W5N=`!F;&]A=`!?;6)S=&%T90!T96UP`&AA -XMF4`86UB -XM:6<`;&%S=%]N;VYO<'0`7V-L;W-E`&%R9W8`;F%M90!U;G-I9VYE9"!C:&%R -XM`%]G971O<'1?:6YI=&EA;&EZ90!?5]I;F1E>`!P=&AR96%D7VUU=&5X`%]S -XM965K`'!F;W5N9`!?9FEL90!P;W-I>&QY7V-OF4`7U]S1DE,10``1T-#.B`H -XM1TY5*2`T+C(N,2`R,#`W,#'0`+F1A=&$`+F)S````````1@$```````````````````@````` -XM`````0````````"$`````0````````````````````````!H'P```````'`` -XM```````````````````(````````````````````?P````0````````````` -XM````````````J&X```````!@`````````!D````,````"``````````8```` -XM`````)8````!`````@```````````````````-@?````````:``````````` -XM``````````@```````````````````"1````!``````````````````````` -XM```(;P```````#``````````&0````X````(`````````!@`````````H``` -XM``$`````````````````````````0"`````````B&@`````````````````` -XM`0```````````````````+`````!`````````````````````````&(Z```` -XM````=P````````````````````$```````````````````"K````!``````` -XM```````````````````X;P```````!@`````````&0```!$````(```````` -XM`!@`````````Q0````$`````````````````````````V3H````````P```` -XM`````````````````0```````````````````,`````$```````````````` -XM`````````%!O````````,``````````9````$P````@`````````&``````` -XM``#4`````0`````````````````````````).P```````&`%```````````` -XM```````!````````````````````X@````$````P```````````````````` -XM:4`````````J`P```````````````````0`````````!`````````.T````! -XM`````````````````````````)-#````````)@````````````````````$` -XM```````````````````1`````P````````````````````````"Y0P`````` -XM`/8````````````````````!`````````````````````0````(````````` -XM````````````````<$L```````!(`P```````!H````7````"``````````8 -XM``````````D````#`````````````````````````+A.````````M@`````` -XM``````````````$````````````````````````````````````````````` -XM```````!````!`#Q_P```````````````````````````P`!```````````` -XM`````````````````P`#`````````````````````````````P`$```````` -XM`````````````````````P`%`````````````````````````````P`&```` -XM`````````````````````````P`(`````````````````````````````P`* -XM`````````````````````````````P`+```````````````````````*```` -XM`0`$`!``````````"``````````3`````0`$`"P`````````!``````````? -XM`````0`$`"@`````````!``````````L`````0`$`"``````````"``````` -XM```\`````0`$`!@`````````!````````````````P`,```````````````` -XM`````````````P`.`````````````````````````````P`0```````````` -XM`````````````````P`1`````````````````````````````P`3```````` -XM`````````````````````P`5`````````````````````````````P`6```` -XM`````````````````````````P`7``````````````````````!%````$@`! -XM````````````L@X```````!6````$0`#````````````!`````````!=```` -XM$0`$````````````"`````````!D````$0`$``@`````````!`````````!Y -XM````$`````````````````````````"`````$``````````````````````` -XM``"(````$`````````````````````````"/````$0`#``0`````````!``` -XM``````"6````$0`#``@`````````!`````````"=````$``````````````` -XM``````````"G````$`````````````````````````"O````$@`!`,`.```` -XM````#0``````````9V5T;W!T+F,`;F5X=&-H87(`;&%S=%]N;VYO<'0`9FER -XMPX````````"````(````/S_________@`X````````*```` -XM"0```&``````````CPX````````"````(0```/S_________E@X````````" -XM````!`````P`````````G@X````````"````'0```/S_________J0X````` -XM```"````!`````P`````````R0X````````"````%P```/S_________!@`` -XM```````*````!0``````````````#``````````*````%0```!L!```````` -XM$0`````````*````%0```($`````````%0`````````!`````@`````````` -XM````'0`````````!`````@```,T.````````)0`````````*````!P`````` -XM````````+``````````*````%0```,0!````````,P`````````*````%0`` -XM`(\!````````.@`````````*````%0```$\`````````00`````````*```` -XM%0```!`"````````3P`````````*````%0```.L!````````5``````````* -XM````%0```$0!````````80`````````*````%0```#L!````````:``````` -XM```*````%0```(@"````````;P`````````*````%0```)H"````````=@`` -XM```````*````%0```/\`````````@``````````*````%0```*$"```````` -XMDP`````````*````%0```'T"````````G@`````````*````%0```.$!```` -XM````O``````````*````%0```$,"````````P0`````````*````%0```!8` -XM````````S``````````*````%0```&4"````````UP`````````*````%0`` -XM`#4`````````XP`````````*````%0```#0"````````\0`````````*```` -XM%0```!P#````````!@$````````*````%0```"(#````````.@$````````* -XM````%0```&$`````````2`$````````*````%0```.("````````9`$````` -XM```*````%0```#H"````````<@$````````*````%0```"P"````````@`$` -XM```````*````%0```'X!````````C@$````````*````%0```+`!```````` -XMG`$````````*````%0```-4"````````J@$````````*````%0```&@````` -XM````X@$````````*````%0```!8#````````\`$````````*````%0```,(` -XM````````#`(````````*````%0```&,!````````&P(````````*````%0`` -XM`%D`````````*@(````````*````%0```#P`````````.0(````````*```` -XM%0```"(`````````2`(````````*````%0```/4`````````5P(````````* -XM````%0````D#````````9@(````````*````%0````4!````````'0,````` -XM```*````%0```,<"````````*0,````````*````%0```&\`````````-0,` -XM```````*````%0````0#````````0`,````````*````%0```-`````````` -XM3`,````````*````%0```(H!````````6@,````````*````%0```!,!```` -XM````:`,````````*````%0```/@"````````DP,````````*````%0```.<` -XM````````F0,````````*````%0````X`````````GP,````````*````%0`` -XM`%4"````````I@,````````*````%0```+X"````````S@,````````*```` -XM%0```)T!````````X`,````````*````%0```+8!````````[`,````````* -XM````%0```(4!````````^`,````````*````%0```/@!````````$`0````` -XM```*````%0```$8`````````'@0````````*````%0```(4!````````*@0` -XM```````*````%0```.``````````-@0````````*````%0```&P"```````` -XME@0````````*````%0```-`!````````H@0````````!`````@`````````` -XM````J@0````````!`````@```+(.````````L@0````````*````$0`````` -XM````````NP0````````*````%0```+8!````````Q@0````````*````$0`` -XM`+$`````````RP0````````*````%0```(4!````````U@0````````*```` -XM$0```.D`````````VP0````````*````%0```/@!````````Y@0````````* -XM````$0```"$!````````ZP0````````*````%0```","````````]@0````` -XM```*````$0```'$"````````^P0````````*````%0```,@`````````!@4` -XM```````*````$0```*D"````````"P4````````*````%0```',"```````` -XM%@4````````*````$0```.$"````````'P4````````*````%``````````` -XM````/P4````````*````%````$``````````4`4````````*````%````)`` -XM````````604````````*````$0```!D#````````9P4````````*````$0`` -XM`,$#````````<`4````````*````$0```(\$````````=04````````*```` -XM%````.``````````AP4````````*````$0```/X$````````C04````````* -XM````%````"`!````````FP4````````*````$0```),%````````HP4````` -XM```*````%````)`!````````M04````````*````$0```"@&````````N@4` -XM```````*````%0````X!````````Q04````````*````$0```(X'```````` -XMS@4````````*````%````$`"````````W@4````````*````$0```,X(```` -XM````Z04````````*````%````)`"````````[@4````````*````%0```+8" -XM````````^04````````*````$0```"H)````````!P8````````*````$0`` -XM`+\)````````#`8````````*````%0```-L"````````%P8````````*```` -XM$0```$$*````````'`8````````*````%0```+P`````````*`8````````* -XM````%0```&P!````````,P8````````*````$0```,,*````````.`8````` -XM```*````%0```+L!````````0P8````````*````$0```%$+````````2`8` -XM```````*````%0```*D"````````4P8````````*````$0```-\+```````` -XM7@8````````*````%``````#````````;@8````````*````$0```'0,```` -XM````>08````````*````%````$`#````````@@8````````*````%0```+8" -XM````````C08````````*````$0```"\-````````FP8````````*````$0`` -XM`/0.````````H`8````````*````%0```-L"````````JP8````````*```` -XM$0```*\/````````L`8````````*````%0```+P`````````O`8````````* -XM````%0```&P!````````QP8````````*````$0```'P0````````S`8````` -XM```*````%0```+L!````````UP8````````*````$0```$D1````````W`8` -XM```````*````%0```*D"````````YP8````````*````$0```!82```````` -XM\`8````````*````%````-`#````````_`8````````*````$0```%83```` -XM````#`<````````*````%````!`$````````&0<````````*````%````&`$ -XM````````(@<````````*````$0```-@3````````,`<````````*````$0`` -XM`&05````````.0<````````*````$0```)L7````````/@<````````*```` -XM%````+`$````````4`<````````*````$0```/<7````````5@<````````* -XM````%````/`$````````9`<````````*````$0```-@8````````@@````````*````%0````("````````AP@````````!```` -XM'@``````````````D`@````````*````%0```/T"````````G0@````````! -XM````'P``````````````I@@````````*````%0```$X!````````LP@````` -XM```!````&@``````````````O0`````````!`````@``````````````'``` -XM```````*````#P``````````````(``````````!`````@`````````````` -XM7``````````*````#P``````````````8``````````!`````@```,`.```` -XM````(``````````*`````@``````````````6``````````*`````@```,`. -XM````````!@`````````*````!@``````````````!@`````````*````!@`` -XM````````````$``````````!`````@``````````````9V5T;W!T,2YO+R`@ -XM("`@(#$R,3DQ.3@X,#D@(#$P,#$@(#`@("`@(#$P,#8T-"`@-30T."`@("`@ -XM(&`*?T5,1@(!`0D```````````$`/@`!`````````````````````````-`' -XM`````````````$```````$``&``5`$&Y`0```.D`````9F:09I!%,0````!`,!PB0`0```````!0````````````````````+ -XM`````````!0````````````````````(`````````!0``````````7I2``%X -XM$`$##`<(D`$``!0````<``````````L``````````````!0````T```````` -XM``@`````````````````````````"P`````````!`%4````````````````` -XM```````````````+``````````$`5``````````````````````````````` -XM``L``````````0!1````````````````````````````````"P`````````! -XM`%(````````````````````````````````+``````````$`6``````````` -XM```````````0`````````!@``````````0!5`````````````````````!`` -XM````````&``````````!`%0`````````````````````$``````````8```` -XM``````$`40`````````````````````0`````````!@``````````0!2```` -XM`````````````````!``````````&``````````!`%@````````````````` -XM````,P````(``````,P!``#5````9V5T;W!T7VQO;F=?;VYL>0!?`0``9V5T -XM;W!T7VQO;F<``````"P````"```````(`````````````````!@````````` -XM`````````````````````&]P=%]I;F1E>`!'3E4@0R`T+C(N,2`R,#`W,#0!O<'1I;VYS -XM``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT -XM86(`+G-T6UT86(`+G-T'0`+F1A=&$`+F)S`0````````,`````````````````````0`````````````` -XM``````````````````````````````````````$````$`/'_```````````` -XM```````````````#``$````````````````````````````#``(````````` -XM```````````````````#``,````````````````````````````#``0````` -XM```````````````````````#``4````````````````````````````#``8` -XM```````````````````````````#``<```````````````````````!E;&5C -XM=')I8RYC`&=L;V(N;R\@("`@("`@("`Q,C$Y,3DX.#`Y("`Q,#`Q("`P("`@ -XM("`Q,#`V-#0@(#0U.#`P("`@("!@"G]%3$8"`0$)```````````!`#X``0`` -XM``````````````````````"@=@````````````!```````!``!P`&0`/M@>$ -XMP'0FA?9U1TB-5P$QR3Q;=#-_&CPJ="<\/V9FD'0@#[8"2(/"`83`=>0QP)## -XM/%QT[3Q==>F%R69FD&:0=."X`0```,,/M@*Y`0```.O3,=(\6W0;?R<\*F9F -XM9I!TX#P_=-Q(@\D`````2(/$"%M=PV9F9I!F9F:09F9FD&9FD$%7 -XM28G_059!54F)]4%455-(@^P(2(D4).@`````2(/X`4F)Q`^$N0```$B#/"0` -XM#X2=````,>WK169F9I!F9I!,B>),B?Y(B_A(@^T!2(/K".@` -XM````2(7M=>I(@\0(N`$```!;74%<05U!7D%?PTB#Q`@QP%M=05Q!74%>05_# -XM13'D08`_+T$/E<3I-____V9F9I!F9I!F9I!F9I!(BS](BS8QP$@Y]W0'2(7_ -XML`%U`O/#2(7VN/____]T].D`````9F9FD&9F9I!F9I!52(GE05=!5DF)]D%5 -XM051)BRX````2(F],/___XF5+/___TR)A2#___\/M@>$P'0Q -XMA=L/A%D%``!(B?HQR3P_#X31````D`^/L@```#PJ#X3"````9I!(@\(!#[8" -XMA,!UW/>%+/___Q`(```/A'\$``"#C2S___\02,>%./___P````#VA2S___\0 -XM2,>%0/___P`````/A-D"``!(B[TP____Z`````!(@^P@2(UX`4B)PTR-?"0/ -XM28/G\$G'!P````#H`````$B%P$F)1P@/A!@#``!(B[4P____2(G:2(G'Z``` -XM``!)BT<(Q@08`$C'A4#___\!````Z8L!```\6P^$PP(``#Q=#X5(____A%0/___P````"#X(`\`1G`@^`$@_L!11GV@8TL____ -XM``$``$4Q_XN=+/___T'WUD&#Y@)!"<:!XP`"``")G4S___^+E4S___^%T@^$ -XMR@```$B+E2#___](B[TX_____U(H2(7`#X3%````3(U@"$B+O3#___]$B?), -XMB>;H`````(7`=;Y(@^P@3(GC3(UL)`])@^7PBP-(@\,$C9#__O[^]]`APH'B -XM@("`@'3HB=#!Z!#WPH"````/1-!(C4,"2`]$V`#22(/;`TPIXTB->P'H```` -XM`$B%P$B)QTF)10@/A,X!``!(B=I,B>;H`````$F+10C&!!@`BY5,____2(.% -XM0/___P%-B7T`38GOA=(/A3S___]F9I!F9I!(B[TX____Z`````!(A<`/A3O_ -XM__](@[U`____``^$^OW__TB+G2#___](BP.+G2S___^#XP@/A.(!``!(BXT@ -XM____2(M1$$B+>0A(BXU`____2(U$`0%(`=#!X`-(A?\/A,8!``")QN@````` -XM2(G&2(N%(/___TB%]DB)<`@/A+0!``"%VP^$<`$``$B+C2#___](BYT@____ -XM2(L12#M3$$B)T7-+2(T$U0````!FD$B+G2#___](@\$!2,<$!@````!(@\`( -XM2(G*2#E+$$B)"W?=387_=!Y)BT<(2(N-(/___TV+/TB)!-9(@\(!2(D1387_ -XM=>*+A2S___](BYT@____2,<$U@````")0QCH`````$B#O3C___\`BQAT(?>% -XM+/___P`"```/A+P```!(BY4@____2(N]./____]2(.@`````2(.]0/___P&) -XM&!G`@^`#2(UEV%M!7$%=05Y!7\G#N0$```#I@_S__TB+C2#___],B??_43!( -XMB84X____Z4G]__^+C2S___^!X0`"``")C4S____H`````(L8BX5,____A@`````38L_387_ -XM=>I(C678N`$```!;05Q!74%>05_)PTB+O3C____H`````.E$____2(N%(/__ -XM_TB+$.GF_O__2(N]./___TB+C2#_____42#KETB+C2#___\QTND;_O__B(``@``B95,____Z4G____H`````(,X%`^$M?O_ -XM_TV%Y'01Z`````!,B?>+,$'_U(7`=0WVA2S___\!#X22^___N`(```#IRO[_ -XM_TB+O3#____H`````$R)]TF)Q.@`````2(G#28U$!"!,B?9(B=I(@^#P2"G$ -XM3(UL)`])@^7P3(GOZ`````!!QD0=`"](B[4P____2HU\*P%)C50D`>@````` -XM]X4L____``(``'0F2(N5(/___TB-M5#___],B>__4D"%P`^4P(3`#X0"^___ -XMZ?;Z__](C;50____3(GOZ`````"%P`^4P.O=2(N5,/___S')/%MT(G\H/"H/ -XMA&[[__\\/P^$9OO__TB#P@$/M@*$P'7?Z:'Z__^Y`0```)#KZ#Q<=!$\777@ -XMA8` -XM@?__="IF9F:09F:0Z`````!!O/_____'`!8```!(C6781(G@6T%<05U!7D%? -XMR],B>/H`````$B#P!U,*>M,B>Y(@^#P2(G:2"G$3(UT)`])@^;P3(GW -XM28T<'N@`````28U$)`%(B9V0_O__,=)(B87P_O__00^V1"0!2(N=\/[__X72 -XM#X3B`P``A,!T:#Q]=0J#Z@%F9F:09F:02(/#`0^V`X3`=$\\?77QA=)UXTB% -XMVTB)VG0_/'UF9I`/A$4-``!(@\(!,_H`````$&)Q$B+I7C^___IQO[__TACA>#^__]%,>1).0=UY?>% -XM@`````28M7"$B#PP%).1]WY4B)UT&\`0`` -XM`.@`````Z8[\__^+G7#^__^!XP!0``#IO_[__SQ;#X0?`0``/%T/A2/___^% -XMR0^$&____V9F9I"+M7#^__](BY5H_O__2(U-@$R)[X/F48'.!"```.@````` -XMAO[__^Y`0```.D"_O__BYUP_O__@>,`4```=!U!@'T`?G463(GOZ``` -XM``!)B<;I:?W__V9FD&9FD$R)K8#^__]%,?9!O0````#I3OW___:%#XP@/A0D'```QTDF+?PA(C00"C03%$````$B%_P^$ -XM-P<``(G&Z`````!(A(#2(/!`4C'!!``````2(/""$DY3Q!)B0]WYTB)RDB-'-4`````20-?"$R) -XM[^@`````28M_"$B)`TF+!TB#/,<`#X1$`@``2(/``44QY$F)!TC'!,<````` -XMBX5P_O__08E'&.E!^O__]X5P_O__``(```^$908``$B-M0#___],B>]!_U=` -XMA<`/A8_^__\/MX4(____)0#P```]`$````^%>/[__^D`____28L'28M_"$C' -XM!,<`````BX5P_O__08E'&$F+!TB#P`'!X`-(A?\/A"$'``")QN@`````2(7` -XM=`1)B4<(2(M%B$B%P'0M2(-]@`!T'C';2(L\V$B%_W0)Z`````!(BT6(2(/# -XM`4@Y78!WY$B)Q^@`````]H5P_O__`@^$<@$``$B+A8C^__]).0?H```` -XM`$'&1!S_`$R)I;#^__](B[VP_O__Z`````!(A<`/A0@%``#WA7#^__\`0``` -XM#X3.^O__Z3VA7#^ -XM__\$#X7^]___]H5P_O__"(N5B/[__W0.28M'$$@YA8C^__\/0M!)BS=(8_JY -XM`````+H(````13'D2"G^2,'G`TD#?PCH`````.FY]___2(-]B`!T-DB#?8`` -XM#X0[!```2(M%B$4QY$J+/.!(A?]T">@`````2(M%B$F#Q`%,.66`=^1(B1FD$J+/.)(A?]T">@````` -XM28M7"$F#Q`%-.2=WY4B)UT&)W.@`````Z3;W__](@WV(`'0U2(-]@``/A'X$ -XM``!(BT6(,=M(BSS82(7_=`GH`````$B+18A(@\,!2#E=@'?D2(G'Z`````!) -XMBU<(2(72#X1&`P``28,_`'0A,=MF9F:02(L\VDB%_W0)Z`````!)BU<(2(/# -XM`4DY'W?E2(G7Z:#^__\\+`^$NO?__SQ]9F:0#X2O]___A,`/A*?W__\QR3Q[ -XM#Y3!2(/"`0^V`NEN]___28M'"$R++`-,B>_H`````$B#P`)-A>U(B870_O__ -XMBX70_O__#X3:`@``B<9,B>_H`````$B)PDB%T@^$M`,``$B+A=#^__]FQT0" -XM_B\`28M'"$B)%`/I$OW__TB+O8#^___H`````$2+K7#^__](@\`!2(F%R/[_ -XM_T&#Y0@/A5T"```QTDF+?PA*C40C`4@!T,'@`TB%_P^$=P(``(G&Z`````!( -XMA?H`````(7`=<+KK4F+'TB+A,#20-?"$F-?`8!Z`````!) -XMBU<(2(D#28L'2(L\PDB%_P^$F0(``$R)\DR)YN@`````28L728M'"$B+!-!" -XMQ@0P+TF+%TF+1PA(B[6`_O__2(L\T$B+EE#____OP````#H`````$B%P$B)A:#^__]T!8`X`'4BZ`````!(A_H -XM`````$F)Q$F-1`8>3(GN3(GB2(/@\$@IQ$B-7"0/2(/C\$B)WTF)W>@````` -XM2(NUL/[__TJ-/"-,B?+H`````.E7]O__28M7$.GP^/__28L79F9FD&9FD.E! -XM^?__2(VU`/___TR)[^@`````A<`/A)KY___I)/C__TF+5Q#IG/W__T&\`0`` -XM`.F<\___B%P/[__P````!T$TB+O:C^___H`````$B)A<#^__], -XMBZ7`_O__2(NUN/[__TR)ZDT![$F-1"0?2(/@\$@IQ$B-7"0/2(/C\$B)W^@` -XM````2(N5P/[__TB+M:C^__]*C3PK28G=Z`````!!Q@0<`.DZ]?__2(N%H/[_ -XM_X`X``^%<_[__^E3_O__B@`````28M7"$B# -XMPP%).1]WY>FZ]?__2(-]B`!T.4B#?8``#X0C`@``2(M%B#';2(L\V$B%_W0) -XMZ`````!(BT6(2(/#`4@Y78!WY$B)Q^@`````28M7"$B%T@^$:_[__TF#/P`/ -XMA&?U__\QVTB+/-I(A?]T">@`````28M7"$B#PP%).1]WY>E%]?__2(/"`4B) -XME>C^__](B=?H`````$B#P`%(B868_O__BX5P_O__@^`@B85T_O__=0])QP<` -XM````2<='"`````!)BP=,BX7P_O__2(F%X/[__XN%DQ -XMVTB%R70S2(G+Z13___]F9I!F9I"`^BQTYH#Z?73AA-)F9F:0=-DQP(#Z>P^4 -XMP$B#P0$/MA'KI#';N0````"Z[`$``+X`````OP````!,B858_O__Z`````!, -XMBX58_O__Z;W^__])BU<(2(G7Z`````#I7?'__TF+5PCIA?/__TB+18B0Z?7] -XM__],B>HQR3Q;="AFD'\K/"H/A*;S__\\/V9F9I`/A)KS__](@\(!#[8"A,!U -XMV>FL\O__N0$```#KZ3Q_+__P`!$0$E#A,+`PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ -XM"SL+21,```0D``L+/@L#"```!20`"PL^"P``!@\`"PL```V`$```(C:``+`````%`'=*,#```,```` -XM``=U30$```(C``P`````!W9-`0```B,(#``````'=\P!```"(Q`,``````=X -XM?P$```(C%`P`````!WG!`0```B,8#``````'>DT!```"(R`,``````=[30$` -XM``(C*`P`````!WQ-`0```B,P#``````'?4T!```"(S@,``````=^P0$```(C -XM0`P`````!W]F`````B-(``T`````"`$(,O<#```,``````@S;0````(C``P` -XM````"#1)`````B,$#``````(-3`````"(P8,``````@V,`````(C!PP````` -XM"#GW`P```B,(``XZ`0``!P0```_'````_P`+`````%`)0J`$```,``````E# -XM9@````(C``P`````"42*`````B,(#``````)18H````"(Q`,``````E&30$` -XM``(C&`P`````"4=F`````B,@#``````)2(H````"(R@,``````E)B@````(C -XM,`P`````"4IF`````B,X#``````)2T$!```"(T`,``````E,I@0```(C2``( -XM``````$'"*`$```""`4`````$$@*>3H%```,``````IZM@$```(C``P````` -XM"GLZ!0```B,(#``````*?+8!```"(Q`,``````I]9@````(C&`P`````"H%, -XM!0```B,@#``````*@F@%```"(R@,``````J#?@4```(C,`P`````"H2?!0`` -XM`B,X#``````*B)\%```"(T``!PA-`0``$0%,!0``$LH`````!PA`!0``$P%B -XM!0``8@4``!+*``````<(HP,```<(4@4``!,!R@```'X%```24P$````'"&X% -XM```3`68```"9!0``$E,!```2F04````'"`$"```'"(0%```#``````J*LP0` -XM`!0!``````&6!`%F`````?(%```5``````&4!%,!```5``````&5!&8````6 -XM<``!EP13`0``%P`````!F`1F`````!BP!0````````````````````````)W -XM"#$&```9PP4````````:SP4```%4&]L%````````&^4%`````````!P!```` -XM``$K!`$!608``!4``````2H$608``!T6:0`!+@2V`0`````'"*4%```>,08` -XM````````````````````````````E08``!E`!@```````!\`````&TT&```` -XM```````@``````%3!`%F```````````````````````````````M!P``(0`` -XM```!4`13`0```````"$``````5$$.@4````````B;@`!4@2V`0```````"-I -XM``%4!+8!````````)``````!502V`0```````!\`````)``````!<@2V`0`` -XM`````"-N97<``7,$30$``````````"4``````3P$`68````````````````` -XM`````````G<(C`<``")A``$Z!(P'````````(F(``3L$C`<````````C``````@``````'#!`%F```````` -XM``````````````````````#T"0``(0`````!O@13`0```````"$``````;\$ -XM4P$````````A``````'`!&8`````````(0`````!P00)"@```````"$````` -XM`<($608````````D``````'$!,H`````````*0`````0`<<$;`@``"H````` -XM`<@$#PH```(C`"H```````$`0(```.1P'X7``````'A -XM!+8!```D``````'B!+8!````````)``````!XP1-`0`````````O`````$8) -XM```C;&5N``%0!;8!`````````#$`````````````````````O@D``"0````` -XM`1<%9@`````````R`````````````````````"0``````2(%4P$````````C -XM;&5N``$C!;8!````````(V0``20%8@4````````?`````!9N97<``3@%#PH` -XM`````"R8!P````````%A!=T)```9L0<````````MJ`<````?`````"0````` -XM`8,%9@```````````!,!9@````D*```24P$``!)F``````<(]`D```<(0`@` -XM`#,``````3T!`5,!```#2PH``!4``````3P!4P$``!<``````3X!>````!9C -XM<``!/P%3`0```#0!``````%O`0%F``````````````````````````````"I -XM$0``(0`````!:P%3`0```````"$``````6P!9@`````````A``````%M`0D* -XM````````(0`````!;@%9!@```````"0``````7`!4P$````````D``````%Q -XM`5,!````````)``````!<@&V`0```````"0``````7,!9@`````````D```` -XM``%T`;8!````````+P`````X#```%P`````!?@%3`0``'P`````7``````&# -XM`68````D``````&$`4T!````````(W```84!4P$````````D``````&&`5,! -XM````````)``````!AP%3`0```````"0``````8@!M@$````````7``````&* -XM`:D1```L%0H````````!K0&K"P``+2<*```?`````!LS"@```````"X_"@`` -XM```L%0H````````!GP'5"P``+2<*```?`````!LS"@```````"X_"@`````? -XM`````"0``````4#+7P&```R```````````````````` -XM`!M-!@```````````"\`````"!```"0``````1D$9@``````````+P`````\ -XM$```,'-T``$C`P$"```#D?!]-9@'`````````2P#&;$'````````+:@'```` -XM`"\`````]A```"0``````=,#$'\#=ZD#B7\( -XMJ8Z0U(Z+H$4[*5<#'PA5"#E)70-X1T$#$V,#$@A5U%8('YP#:56=G%1(5C@Z -XM+9S\`Q55`V5'`QM5`V7A`QLK`U*I`V`(MSH[`'\(U@,0TW.G\0@IG;\(U`,-C4D(6$@XC@(W$(XX6/V@&0( -XM5P.L?P)(`8X(5/`#$.\#=\4#S7D(?PB4`WDYS`A7`ZP%_0/8>@@=\9PX.@,+ -XMQ0,/.0-Q.0,/C0-Q8P,/1P-Q.0,/MSI&6U!V`Z1_"%4##'])2)Q#`]$`X0,4 -XM.0-L.0,+*ZL#EG^-`PQ_24@Z0P/?`.%;`\(``B4!M'0V6`A;`PG%`WJD(UP/2!K<#[GJ;"$H#R0`(50/1`0A'RP.>>P(C`8\#YP1Q`WDY3F:`\.Y( -XM.%D#"@@Y`W9'`PHYV$@XJ@-;X0.Q`0)"`>*>`^]YFX\#D@9Q5@/-`$>0CHZ+ -XMG@--?\H"*A`",P[^`^%\".$#Z``(XG_( -XMN(Z+D`.3>G\"(A,#P06W`\!Y"#D#P`8Y`\!YQ64#P`;%DM0#C'_%O&RN`Z=Z -XM")N/`]X%<0-Y.4YI5@@Z[D@X+@CU`WH")0'5@()@/`B%"*M%.P,-[ZKP`B82 -XM`YE]C0,/FP-Q.0,/<0,/<5<#'%6!5JS5`PD(FPAHJEI>]#PV5@/F``AQ`WH( -XM<0/]``BI`_L`C0.M>:D#Y`8",`$#T7V-3#1V9H!^.@CB=I8(=H`((#96`YY_ -XMFP.].1`]E^Q0,,1TE6.D,#G0'O`UQQ`_U^TPB1 -XM`Z,!C0/&!`(R`0A2`^L`FU8(J/`#$.\#=^$"$@`!`6YE>'0@(3T@3E5,3``O -XM`"X`2$]-10!^`"]U!`,!PB0`0```````!0```````````````````"C`````````"0````` -XM``````````````!1`````````$$.$(8"1`X81`X@@P,````\```````````` -XM````````\P````````!"#A"/`D4.&$(.((T$C@-%#BA!#C!!#CA$#D"#!X8& -XMC`4`````````%````````````````````"4`````````+``````````````` -XM`````/<%````````00X0A@)##09$C@2/`T>,!HT%1(,'````+``````````` -XM`````````)<0````````00X0A@)##09"CP-'C06.!$V#!XP&````%``````` -XM```!>E(``7@0`0,,!PB0`0``%````!P`````````HP``````````````'``` -XM`#0`````````40````!!#A"&`D0.&$0.((,#```T````5`````````#S```` -XM`$(.$(\"10X80@X@C02.`T4.*$$.,$$..$0.0(,'A@:,!0```````!0```", -XM`````````"4``````````````"0```"D`````````/<%````00X0A@)##09$ -XMC@2/`T>,!HT%1(,'```D````S`````````"7$````$$.$(8"0PT&0H\#1XT% -XMC@1-@P>,!@````````````!J``````````$`57,`````````=P`````````! -XM`%6!`````````)X``````````0!5`````````````````````"T````````` -XM,0`````````!`%5"`````````$@``````````0!55`````````"C```````` -XM``$`50`````````````````````1`````````"T``````````0!2+0`````` -XM```Q``````````$`43$`````````0@`````````!`%)"`````````$@````` -XM`````0!12`````````!0``````````$`4E``````````4@`````````!`%)4 -XM`````````'P``````````0!1?`````````"C``````````$`40`````````` -XM``````````"P`````````+$``````````@!W"+$`````````M0`````````" -XM`'<0M0````````"Y``````````(`=QBY``````````$!`````````@!W(``` -XM``````````````````"P`````````,H``````````0!5R@````````#U```` -XM``````$`5OH``````````0$````````!`%4`````````````````````R@`` -XM``````#T``````````$`4P`````````````````````0`0```````!(!```` -XM`````@!W"!(!````````%P$````````"`'<0%P$````````9`0````````(` -XM=Q@9`0```````!X!`````````@!W(!X!````````'P$````````"`'`0````````$`50`````````` -XM```````````0`@```````!,"`````````0!5`````````````````````!`" -XM````````%@(````````!`%0`````````````````````$P(````````U`@`` -XM``````$`50`````````````````````6`@```````#4"`````````0!4```` -XM`````````````````$`"````````00(````````"`'<(00(```````!$`@`` -XM``````(`=Q!$`@```````#<(`````````@!V$`````````````````````!` -XM`@```````(<"`````````0!5AP(```````"[`@````````$`4;L"```````` -XM2`,````````#`':P?D@#````````>`,````````!`%%X`P```````!,&```` -XM`````P!VL'X3!@```````"H&`````````0!1*@8````````Z!P````````,` -XM=K!^.@<```````!&!P````````$`448'````````VP<````````#`':P?ML' -XM````````Y`<````````!`%7D!P```````#<(`````````0!1```````````` -XM`````````$`"````````>@(````````!`%1Z`@```````*\#`````````0!> -XMTP0````````/!@````````$`7A,&````````EP8````````!`%Z;!@`````` -XM`#<(`````````0!>`````````````````````$`"````````>@(````````! -XM`%%Z`@```````.4"`````````P!VK'Y(`P```````#8&`````````P!VK'Y( -XM!@```````#<(`````````P!VK'X`````````````````````0`(```````!Z -XM`@````````$`4GH"````````!`0````````!`%RJ!`````````L&```````` -XM`0!<$P8```````"3!@````````$`7)L&````````3`<````````!`%S;!P`` -XM`````#<(`````````0!<`````````````````````$`"````````>@(````` -XM```!`%AZ`@```````#<(`````````P!VH'X`````````````````````P@(` -XM``````!(`P````````,`=KA^?P,````````3!@````````,`=KA^,08````` -XM```Z!P````````,`=KA^`````````````````````,T"````````2`,````` -XM```!`%^\`P```````!$&`````````0!?-@8```````"9!@````````$`7YL& -XM````````_P8````````!`%\`````````````````````S0(```````!(`P`` -XM``````,`=L!^GP,````````3!@````````,`=L!^-@8```````#_!@`````` -XM``,`=L!^`````````````````````,T%````````"08````````!`%.;!@`` -XM`````*P&`````````0!3`````````````````````(<"````````\0(````` -XM```!`%)(`P```````'@#`````````0!2O@4```````##!0````````$`4A,& -XM````````&`8````````!`%(8!@```````"0&`````````0!2.@<```````!& -XM!P````````$`4N0'````````#P@````````!`%(/"````````#<(```````` -XM`0!2`````````````````````%\'````````=P<````````!`%$````````` -XM````````````<@<```````!W!P````````$`5;`'````````LP<````````! -XM`%7/!P```````-0'`````````0!5`````````````````````/D"```````` -XM_`(````````!`%#\`@```````$@#`````````0!3TP0```````#:!``````` -XM``$`4S8&````````3P8````````!`%,`````````````````````S0(````` -XM``!(`P````````$`7J\#````````#P8````````!`%XV!@```````)<&```` -XM`````0!>FP8```````#_!@````````$`7@````````````````````#-`@`` -XM`````$@#`````````0!!@```````.,&`````````0!5```````````````` -XM`````$\&````````D08````````!`%.[!@```````,X&`````````0!3```` -XM`````````````````$`(````````00@````````"`'<(00@```````!$"``` -XM``````(`=Q!$"````````-<8`````````@!V$`````````````````````!` -XM"````````(4(`````````0!5A0@```````"="`````````$`7:,(```````` -XMO0@````````!`%6]"````````$0*`````````0!=1`H```````!)"@`````` -XM``$`5+,*````````QPH````````!`%W3"@````````,,`````````0!=%`P` -XM``````"3#`````````$`7=X,````````@`T````````!`%V%#0```````)(. -XM`````````0!=S@X````````[$`````````$`77,0````````V!`````````! -XM`%W3$0````````D2`````````0!=7!(```````!O$@````````$`7><3```` -XM````6Q0````````!`%VM%````````.$4`````````0!=ZA0````````%%0`` -XM``````$`72X5````````514````````!`%W*%0```````-\5`````````0!= -XMJQ8```````!B&`````````$`7748````````UQ@````````!`%T````````` -XM````````````0`@```````!L"`````````$`5&P(````````W`H````````# -XM`';P?"0+````````E0L````````#`';P?/`+````````A0T````````#`';P -XM?*0-````````4`X````````#`';P?&`.````````$0\````````#`';P?#L/ -XM````````GP\````````#`';P?#80````````@Q`````````#`';P?-@0```` -XM````7!(````````#`';P?(02````````YQ,````````#`';P?$(4```````` -XM310````````#`';P?*T4````````+A4````````#`';P?-\5````````UQ@` -XM```````#`';P?`````````````````````!`"````````&P(`````````0!1 -XM;`@```````#7&`````````,`=NA\`````````````````````$`(```````` -XM;`@````````!`%)L"````````'$(`````````0!?<0@```````"%"``````` -XM``$`4H4(````````H0@````````!`%^C"````````+T(`````````0!2O0@` -XM``````#7&`````````$`7P````````````````````"1"````````*,(```` -XM`````P!V@'T'"@```````!`-`````````P!V@'T[#0```````-,1```````` -XM`P!V@'T!$@```````*L6`````````P!V@'UB&````````-<8`````````P!V -XM@'T`````````````````````D0@```````"="`````````$`740*```````` -XME@H````````!`%V6"@```````+,*`````````0!3QPH````````Q"P`````` -XM``$`73$+````````7PL````````!`%%?"P```````!0,`````````0!=%`P` -XM```````]#`````````$`43T,````````DPP````````!`%W>#````````!`- -XM`````````0!=.PT```````!%#0````````$`48`-````````D@X````````! -XM`%W.#@```````#L0`````````0!=H4````````!14````````!`%TN%0```````%45`````````0!= -XMNQ4```````#?%0````````$`7748````````>A@````````!`%UZ&``````` -XM`-<8`````````0!1`````````````````````)$(````````GP@````````! -XM`%XA"@```````+,*`````````0!>S0H```````!M#`````````$`7MX,```` -XM````$`T````````!`%X[#0```````$4-`````````0!>90T```````!J#0`` -XM``````$`7GH-````````*`\````````!`%Z?#P```````-@0`````````0!> -XM7!(````````%$P````````$`7C@3````````41,````````!`%[G$P`````` -XM``45`````````0!>%14````````E%0````````$`7BX5````````ZQ4````` -XM```!`%YU&````````-<8`````````0!>`````````````````````)$(```` -XM````F`@````````!`%"8"````````)D(`````````0!3=@L````````##``` -XM``````$`4%<,````````H0P````````!`%"A#````````*L,`````````0!3 -XMJPP```````"R#`````````$`4+(,````````U0P````````!`%/>#``````` -XM`!`-`````````0!0D@X```````"?#P````````$`4#L0````````[A`````` -XM```!`%#N$````````',1`````````0!3CQ$```````"L$0````````$`4\L1 -XM````````TQ$````````!`%,!$@```````.<3`````````0!0X10```````#U -XM%`````````$`4`45````````*14````````!`%`I%0```````"X5```````` -XM`0!3WQ4```````#K%0````````$`4.L5````````]14````````!`%/U%0`` -XM`````*L6`````````0!08A@```````!U&`````````$`4``````````````` -XM``````"1"````````*,(`````````P!VB'WW"@````````,,`````````P!V -XMB'T4#````````!`-`````````P!VB'T[#0```````$4-`````````P!VB'V% -XM#0```````*(0`````````P!VB'W8$````````-,1`````````P!VB'T!$@`` -XM`````*L6`````````P!VB'UB&````````-<8`````````P!VB'T````````` -XM````````````D0@```````"C"`````````,`=I!]$`D```````#7&``````` -XM``,`=I!]`````````````````````/,6````````)A<````````!`%C"%P`` -XM`````,<7`````````0!8QQ<````````J&`````````$`4BH8````````0!@` -XM```````!`%@`````````````````````D0@```````"C"`````````,`=O!] -XM&0D````````F"0````````,`=O!])@D````````Z"@````````$`4SH*```` -XM````LPH````````#`';P?;,*````````N0H````````!`%.Y"@```````!`- -XM`````````P!V\'T0#0```````#L-`````````0!3.PT```````!%#0`````` -XM``,`=O!]10T```````!+#0````````$`4TL-````````TQ$````````#`';P -XM?=,1`````````1(````````!`%,!$@```````*L6`````````P!V\'VK%@`` -XM`````)$7`````````0!3D1<```````"Q%P````````,`=O!]L1<```````!5 -XM&`````````$`4U48````````UQ@````````#`';P?0`````````````````` -XM``"1"````````*,(`````````P!VZ'U9"0```````*L)`````````0!1OPD` -XM```````0#0````````,`=NA].PT```````#3$0````````,`=NA]TQ$````` -XM```!$@````````$`40$2````````JQ8````````#`';H?:L6````````KQ8` -XM```````!`%&V%@```````+D6`````````P!VZ'VY%@```````+X6```````` -XM`0!5#A<```````#7&`````````,`=NA]`````````````````````)$(```` -XM````HP@````````#`':8?;\)````````$`T````````#`':8?3L-```````` -XMTQ$````````#`':8?0$2````````JQ8````````#`':8?%P```````&$7`````````0!081<```````!H%P````````$`7&@7 -XM````````GQ<````````!`%"?%P```````%$8`````````0!<41@```````!= -XM&`````````$`4%T8````````8A@````````!`%P````````````````````` -XM#A<````````F%P````````$`4,07````````%!@````````!`%`4&``````` -XM`!H8`````````0!0`````````````````````)$(````````F0@````````! -XM`%._"0```````,L)`````````0!3D1<```````"Q%P````````$`4U48```` -XM````8A@````````!`%,`````````````````````00H```````!)"@`````` -XM``$`50````````````````````"1"````````*,(`````````0!0D`H````` -XM``"S"@````````$`4``````````````````````Q"P```````%D+```````` -XM`0!2%`P```````!!#`````````$`4CL-````````0`T````````!`%)`#0`` -XM`````$4-`````````0!2>A@```````"K&`````````$`4JL8````````UQ@` -XM```````!`%(`````````````````````DPL```````"X"P````````$`4``` -XM``````````````````"1"````````)D(`````````0!3U0L````````##``` -XM``````$`4P````````````````````#P"P```````/D+`````````0!<+@\` -XM``````"?#P````````$`7(,0````````AA`````````!`%P!$@```````%P2 -XM`````````0!L5````````]14````````! -XM`%PV%@```````*L6`````````0!=:Q@```````!U&`````````$`70`````` -XM``````````````#Q$````````!P1`````````0!<```````````````````` -XM`"X1````````41$````````!`%P`````````````````````D0@```````"9 -XM"`````````$`4W,0````````@Q`````````!`%-S$0```````*P1```````` -XM`0!3RQ$```````#3$0````````$`4^H4````````]10````````!`%,````` -XM````````````````D0@```````"9"`````````$`4W,0````````@Q`````` -XM```!`%.L$0```````-,1`````````0!3`````````````````````)$(```` -XM````HP@````````#`';(??`+`````````PP````````#`';(?9(.```````` -XMGP\````````#`';(?3L0````````V!`````````#`';(?0$2````````7!(` -XM```````#`';(?7H2````````YQ,````````#`';(?>$4````````]10````` -XM```#`';(?045````````)14````````#`';(?=\5````````ZQ4````````# -XM`';(??45````````JQ8````````#`';(?6(8````````=1@````````#`';( -XM?0````````````````````#P"P```````/D+`````````0!\`L````````##`````````$`7I(. -XM````````*`\````````!`%Z#$````````-@0`````````0!>!1,```````#G -XM$P````````$`7NH4````````]10````````!`%[?%0```````.L5```````` -XM`0!>-A8```````"K%@````````$`7FL8````````=1@````````!`%X````` -XM````````````````D0@```````"9"`````````$`4_`+`````````PP````` -XM```!`%.+%@```````*L6`````````0!3`````````````````````)$(```` -XM````F0@````````!`%/P"P````````,,`````````0!3ZA0```````#U%``` -XM``````$`4TX6````````BQ8````````!`%,`````````````````````E1(` -XM``````"@$@````````$`4*`2````````I1(````````!`%05%0```````!<5 -XM`````````0!0%Q4````````<%0````````$`50````````````````````"U -XM#@```````,`.`````````0!0P`X```````#%#@````````$`5-\5```````` -XMX14````````!`%#A%0```````.85`````````0!5```````````````````` -XM`)$(````````F0@````````!`%-4$````````(,0`````````0!3```````` -XM`````````````)$(````````F0@````````!`%/@#@```````"L/```````` -XM`0!3@Q````````#8$`````````$`4P````````````````````"@$``````` -XM`,`0`````````0!1`````````````````````+4-````````P`T````````! -XM`%#`#0```````,4-`````````0!4]10```````#W%`````````$`4/<4```` -XM````_!0````````!`%4`````````````````````D0@```````"C"``````` -XM``,`=JA]!`L````````##`````````,`=JA]%`P````````0#0````````,` -XM=JA].PT```````!%#0````````,`=JA]A0T```````"?#P````````,`=JA] -XMU@\```````#3$0````````,`=JA]`1(```````#G$P````````,`=JA]K10` -XM``````#*%0````````,`=JA]WQ4```````"K%@````````,`=JA]8A@````` -XM``#7&`````````,`=JA]`````````````````````)$(````````HP@````` -XM```#`':P?00+`````````PP````````#`':P?10,````````$`T````````# -XM`':P?3L-````````10T````````#`':P?84-````````GP\````````#`':P -XM?:H/````````TQ$````````#`':P?0$2````````JQ8````````#`':P?6(8 -XM````````UQ@````````#`':P?0````````````````````"1"````````*,( -XM`````````P!VN'T$"P````````,,`````````P!VN'T4#````````!`-```` -XM`````P!VN'T[#0```````$4-`````````P!VN'V%#0```````)\/```````` -XM`P!VN'TF$````````-,1`````````P!VN'T!$@```````.<3`````````P!V -XMN'VM%````````"X5`````````P!VN'T\%0```````$45`````````P!VN'U% -XM%0```````$H5`````````0!5@Q4```````#*%0````````,`=KA]WQ4````` -XM``"K%@````````,`=KA]8A@```````#7&`````````,`=KA]```````````` -XM`````````)$(````````F`@````````!`%`$"P```````!<+`````````0!0 -XM!0T````````0#0````````$`4(4-````````FPT````````!`%!0#@`````` -XM`&X.`````````0!0(!`````````[$`````````$`4,44````````U!0````` -XM```!`%`N%0```````#(5`````````0!0`````````````````````/\/```` -XM````!!`````````!`%4`````````````````````H14```````"F%0`````` -XM``$`50````````````````````!5%0```````+L5`````````0!=```````` -XM`````````````)$(````````HP@````````#`';`?00+`````````PP````` -XM```#`';`?10,````````$`T````````#`';`?3L-````````10T````````# -XM`';`?84-````````GP\````````#`';`?3L0````````TQ$````````#`';` -XM?0$2````````YQ,````````#`';`?:T4````````+A4````````#`';`?6`5 -XM````````RA4````````#`';`?=\5````````JQ8````````#`';`?6(8```` -XM````UQ@````````#`';`?0````````````````````"1"````````*,(```` -XM`````P!VH'T$"P````````,,`````````P!VH'T4#````````!`-```````` -XM`P!VH'T[#0```````$4-`````````P!VH'V%#0```````)\/`````````P!V -XMH'T[$````````-,1`````````P!VH'T!$@```````.<3`````````P!VH'W[ -XM$P```````&<4`````````P!VH'UG%````````&P4`````````0!5=Q0````` -XM``"5%`````````$`5*T4````````+A4````````#`':@?'0`<'=?;F%M90!S=%]B;&MS:7IE`'-T -XM7V=E;@!G;%]C;&]S961I<@!?7VEN=#,R7W0`%]A0!D7VYA;64`;65M;W)Y7V5RF5?=`!F9FQA9W-? -XM=`!S=%]C=&EM97-P96,`7U]M;V1E7W0`9%]T>7!E`"]U'!I0!?7VEN=#8T7W0`7U]G:61?=`!D7V9I;&5N;P!N;VY?F4`9VQ?9FQA9W,`7U]S -XM:7IE7W0`7U]B;&MS:7IE7W0`;7E?G4````````F`````````````````````0```````````````````!$````# -XM`````````````````````````*!U````````_@````````````````````$` -XM```````````````````!`````@````````````````````````"@?0`````` -XM`%`$````````&P```!<````(`````````!@`````````"0````,````````` -XM````````````````\($```````#U`````````````````````0`````````` -XM``````````````````````````````````````````$````$`/'_```````` -XM```````````````````#``$````````````````````````````#``,````` -XM```````````````````````#``0````````````````````````````#``4` -XM```````````````````````````#``8````````````````````````````# -XM``@```````````````````````@````"``$`$`$```````#S`````````!4` -XM```"``$`$`(````````E`````````"8````"``$`0`(```````#W!0`````` -XM```````#``H````````````````````````````#``L````````````````` -XM`````#(````!``P````````````%```````````````#``P````````````` -XM```````````````#``T````````````````````````````#``\````````` -XM```````````````````#`!$````````````````````````````#`!(````` -XM```````````````````````#`!0````````````````````````````#`!8` -XM```````````````````````````#`!<````````````````````````````# -XM`!@``````````````````````$`````2``$```````````"C`````````%$` -XM```2``$`L`````````!1`````````%H````0```````````````````````` -XM`%\````0`````````````````````````&8````0```````````````````` -XM`````&T````0`````````````````````````'0````0```````````````` -XM`````````'P````0`````````````````````````(0````0```````````` -XM`````````````(P````0`````````````````````````)0````0```````` -XM`````````````````)P````0`````````````````````````*0````0```` -XM`````````````````````*T````0`````````````````````````+(````2 -XM``$`0`@```````"7$````````+<````0`````````````````````````+X` -XM```0`````````````````````````,8````0```````````````````````` -XM`,T````0`````````````````````````-8````0```````````````````` -XM`````-P````0`````````````````````````.,````0```````````````` -XM`````````.P````0``````````````````````````!G;&]B+F,`<')E9FEX -XM7V%R0!M86QL;V,`P$````````"````&0```/S_________E`$````` -XM```"````&@```/S_________H@$````````"````'````/S_________Q0$` -XM```````"````&0```/S_________[0(````````"````&@```/S_________ -XM#0,````````"````'````/S_________+`,````````"````&P```/S_____ -XM____=`,````````"````'@```/S_________$@0````````"````'P```/S_ -XM________9@0````````"````'````/S_________@00````````"````&P`` -XM`/S_________N`0````````"````(````/S_________&04````````"```` -XM(0```/S_________OP4````````"````(@```/S_________\04````````" -XM````(@```/S_________208````````"````(@```/S_________808````` -XM```"````(P```/S_________9@8````````"````(@```/S_________>P8` -XM```````"````&0```/S_________HP8````````"````(P```/S_________ -XMWP8````````"````'````/S_________``<````````"````(@```/S_____ -XM____$P<````````"````(@```/S_________0@<````````"````&@```/S_ -XM________30<````````"````&@```/S_________A`````````"````&0```/S_________MQ`````````*`````@```!`" -XM````````SQ`````````"````*@```/S_________^Q`````````"````&0`` -XM`/S_________$1$````````"````&0```/S_________.A$````````"```` -XM&0```/S_________4A$````````"````&0```/S_________?1$````````" -XM````&0```/S_________DQ$````````"````&0```/S_________NA$````` -XM```"````&0```/S_________#1(````````"````&@```/S_________,1(` -XM```````"````(0```/S_________9!(````````"````&@```/S_________ -XMH1(````````"````(0```/S_________1!,````````"````&@```/S_____ -XM____8!,````````"````)````/S_________@A,````````"````'````/S_ -XM________I!,````````"````&P```/S_________VA,````````"````&P`` -XM`/S_________Z!,````````*````"P```!$`````````[1,````````"```` -XM*P```/S_________`Q0````````"````+````/S_________$!0````````" -XM````*0```/S_________210````````+````"P```!8`````````:!0````` -XM```"````&@```/S_________D10````````"````&P```/S_________I!0` -XM```````"````&P```/S_________T!0````````"````)````/S_________ -XM^!0````````"````'````/S_________"!4````````"````'````/S_____ -XM____&!4````````"````'````/S_________1A4````````"````&@```/S_ -XM________:A4````````"````&@```/S_________HA4````````"````&P`` -XM`/S_________O!4````````"````&P```/S_________XA4````````"```` -XM'````/S_________(!8````````"````&0```/S_________6!8````````" -XM````&0```/S_________;A8````````"````&0```/S_________E18````` -XM```"````&0```/S_________NA8````````"````&@```/S_________(A<` -XM```````"````&P```/S_________0!<````````"````&P```/S_________ -XM6!<````````"````)0```/S_________FQ<````````"````&0```/S_____ -XM____)A@````````*````"P``````````````,!@````````*````#``````` -XM````````-1@````````*````#@``````````````01@````````"````+0`` -XM`/S_________61@````````"````&0```/S_________]@`````````"```` -XM&0```/S_________,0(````````"````'0```/S_________!@`````````* -XM````!0``````````````#``````````*````%0```%H%````````$0`````` -XM```*````%0```,`!````````%0`````````!`````@``````````````'0`` -XM```````!`````@```-<8````````)0`````````*````!P`````````````` -XM+``````````*````%0```!8%````````,0`````````*````%0```"($```` -XM````/@`````````*````%0```+T$````````10`````````*````%0```)P# -XM````````2@`````````*````%0```%D!````````5P`````````*````%0`` -XM`"\%````````7``````````*````%0```'<`````````;@`````````*```` -XM%0```,L$````````>P`````````*````%0```#\`````````@``````````* -XM````%0```$$#````````C0`````````*````%0```,<#````````D@`````` -XM```*````%0```"("````````GP`````````*````%0```&X$````````I@`` -XM```````*````%0```'H%````````K0`````````*````%0````4!```````` -XML@`````````*````%0```.<#````````O0`````````*````%0```.\$```` -XM````S0`````````*````%0```/`#````````V``````````*````%0```($% -XM````````XP`````````*````%0```*L%````````[@`````````*````%0`` -XM`$L#````````^0`````````*````%0```-(`````````!`$````````*```` -XM%0```+`!````````#P$````````*````%0```(L`````````&@$````````* -XM````%0````<%````````)0$````````*````%0```!H$````````,`$````` -XM```*````%0```.`"````````/0$````````*````%0```$\"````````2`$` -XM```````*````%0```+L`````````7P$````````*````%0```.4$```````` -XM:@$````````*````%0```%0"````````=0$````````*````%0```)H!```` -XM````@`$````````*````%0```&P#````````BP$````````*````%0```.0` -XM````````E@$````````*````%0```"(%````````H0$````````*````%0`` -XM`+4$````````K`$````````*````%0```"D%````````MP$````````*```` -XM%0```),!````````P@$````````*````%0```(H"````````S0$````````* -XM````%0```(0#````````V0$````````*````%0```$8"````````Y0$````` -XM```*````%0```&<$````````\P$````````*````%0```(L!`````````@(` -XM```````*````%0```'\!````````#@(````````*````%0````\%```````` -XM'`(````````*````%0```*`"````````*@(````````*````%0```!0"```` -XM````.`(````````*````%0```"T"````````1@(````````*````%0`````% -XM````````5`(````````*````%0````T"````````8@(````````*````%0`` -XM`*,%````````<`(````````*````%0```"P$````````?@(````````*```` -XM%0```.H`````````C`(````````*````%0```*,!````````F@(````````* -XM````%0```/@$````````J`(````````*````%0```#(!````````M@(````` -XM```*````%0```%D`````````Q`(````````*````%0```/8"````````T@(` -XM```````*````%0```&0`````````X`(````````*````%0```($````````` -XM[@(````````*````%0```(`$````````_0(````````*````%0```#8"```` -XM````"0,````````*````%0```%$`````````%P,````````*````%0```-H` -XM````````)0,````````*````%0```"<`````````,P,````````*````%0`` -XM`+`"````````00,````````*````%0```&\"````````3P,````````*```` -XM%0```%$%````````70,````````*````%0```!X`````````:P,````````* -XM````%0```(0!````````>0,````````*````%0```,D`````````AP,````` -XM```*````%0```/\"````````E0,````````*````%0```"@!````````I`,` -XM```````*````%0```&4#````````L0,````````*````%0```%,#```````` -XMOP,````````*````%0```$H!````````S0,````````*````%0```+D!```` -XM````VP,````````*````%0```+8%````````Z0,````````*````%0```*<` -XM````````"`0````````*````%0```(P%````````%`0````````*````%0`` -XM`%,!````````(@0````````*````%0```#P!````````,`0````````*```` -XM%0```-8#````````/@0````````*````%0```*8#````````3`0````````* -XM````%0```#0#````````6@0````````*````%0```%8$````````:`0````` -XM```*````%0```(`"````````=@0````````*````%0```/<`````````A`0` -XM```````*````%0```"(#````````D@0````````*````%0```,4"```````` -XMH00````````*````%0```'L#````````KP0````````*````%0```+<"```` -XM````O`0````````*````%0```*<"````````R@0````````*````%0```-<" -XM````````V`0````````*````%0```.X"````````Y@0````````*````%0`` -XM`-X#````````]`0````````*````%0```&L``````````@4````````*```` -XM%0```!,`````````$`4````````*````%0```$8$````````'@4````````* -XM````%0```*P$````````+`4````````*````%0```"X`````````I@4````` -XM```*````%0```,L"````````L@4````````*````%0```)L$````````Q`4` -XM```````*````%0```-8$````````T`4````````*````%0```-`#```````` -XMY@4````````*````%0```%$$````````]P4````````!`````@`````````` -XM````_P4````````!`````@```*,`````````$P8````````*````$0`````` -XM````````(P8````````*````$0```$D`````````+`8````````*````$0`` -XM`)(`````````,P8````````*````%0```)4%````````008````````*```` -XM%0````\#````````9`8````````!`````@```+``````````;`8````````! -XM`````@````$!````````=`8````````*````$0```#H!````````@08````` -XM```*````$0```)H!````````A@8````````*````%```````````````CP8` -XM```````*````$0```.,!````````E@8````````*````%0```)H````````` -XMH@8````````!`````@```!`!````````J@8````````!`````@````,"```` -XM````L@8````````*````$0````8"````````NP8````````*````%0```&X! -XM````````Q@8````````*````$0```+<"````````RP8````````*````%0`` -XM`#L#````````U@8````````*````$0```!,#````````Y`8````````*```` -XM$0```&\#````````\@8````````*````$0```*8#````````]P8````````* -XM````%0````P``````````@<````````*````$0```-P#````````!P<````` -XM```*````%````$``````````#`<````````*````%0```)$"````````%P<` -XM```````*````$0```#@$````````)P<````````*````$0```&X$```````` -XM+@<````````*````%0```+8#````````.@<````````!`````@```!`"```` -XM````0@<````````!`````@```#4"````````6P<````````*````$0```)$$ -XM````````:0<````````*````$0```+0$````````>`<````````*````$0`` -XM`-<$````````AP<````````*````$0```/H$````````F0<````````*```` -XM%0```/P#````````O`<````````*````%0````X$````````R`<````````! -XM`````@```$`"````````T`<````````!`````@```#<(````````V`<````` -XM```*````$0```!T%````````X0<````````*````%0```-8$````````[`<` -XM```````*````$0```&D%````````\0<````````*````%0```"H#```````` -XM_`<````````*````$0```%(&`````````0@````````*````%0```!P"```` -XM````#`@````````*````$0```,$&````````$0@````````*````%0```(H# -XM````````'`@````````*````$0```",'````````(0@````````*````%0`` -XM``\#````````+`@````````*````$0```*4'````````,0@````````*```` -XM%0```,D%````````/`@````````*````$0```-T'````````00@````````* -XM````%0```&8"````````3@@````````*````%0```$P`````````70@````` -XM```*````%0```#D$````````;0@````````*````%0````D#````````>`@` -XM```````*````$0```"P(````````?0@````````*````%0```$,!```````` -XMB`@````````*````$0```(@(````````C0@````````*````%0````L!```` -XM````F0@````````*````%0```)4`````````I`@````````*````$0```-<( -XM````````J0@````````*````%0```*X`````````L`@````````!`````@`` -XM`$@&````````O0@````````*````%````'``````````TP@````````*```` -XM%````,``````````X0@````````*````$0````T)````````Z`@````````* -XM````%````!`!``````````D````````*````%0``````````````#`D````` -XM```*````%0````P`````````%PD````````*````$0```+4)````````'`D` -XM```````*````%0```'(#````````)PD````````*````$0```-@)```````` -XM+0D````````*````%````$`!````````00D````````*````$0```"$*```` -XM````1PD````````!`````@```(T#````````3PD````````!`````@```,4$ -XM````````7`D````````*````%0```)(#````````9PD````````*````$0`` -XM`'T*````````;`D````````!`````@```-@#````````=`D````````!```` -XM`@```,4$````````?0D````````*````%0```#D$````````B`D````````* -XM````$0```-D*````````F`D````````*````$0```#4+````````I@D````` -XM```*````$0```)$+````````JPD````````*````%````'`!````````PPD` -XM```````*````%````*`!````````TPD````````*````$0```.T+```````` -XMW@D````````*````%````-`!````````XPD````````*````%0```)4````` -XM````[@D````````*````$0```$D,````````%@H````````*````%0```/X! -XM````````*`H````````*````%0```$(%````````-`H````````*````%0`` -XM`.@"````````30H````````*````%0`````!````````60H````````!```` -XM`@```$`(````````80H````````!`````@```-<8````````:0H````````* -XM````$0```'\,````````<@H````````*````%0```-8$````````?0H````` -XM```*````$0```,L,````````@@H````````*````%0```!P"````````C0H` -XM```````*````$0```&H.````````D@H````````*````%0```(H#```````` -XMG0H````````*````$0```(D/````````H@H````````*````%0````\#```` -XM````K0H````````*````$0```,$/````````L@H````````*````%0```%T" -XM````````O0H````````*````$0```$,0````````P@H````````*````%0`` -XM`&X!````````S0H````````*````$0```+P0````````T@H````````*```` -XM%0````P`````````W0H````````*````$0```%L2````````X@H````````* -XM````%0```'D"````````[0H````````*````$0```'43````````\@H````` -XM```*````%0```%X$````````_0H````````*````$0```!05`````````@L` -XM```````*````%````!`"````````"PL````````*````%0```$(%```````` -XM%PL````````*````%````&`"````````'`L````````*````%0````<$```` -XM````*`L````````*````%0```!````````/0T````````*````$0```*(> -XM````````1@T````````*````%````$`&````````5PT````````*````%``` -XM`'`&````````8`T````````*````$0```%T?````````:PT````````*```` -XM%````*`&````````=PT````````*````$0```*8?````````A`T````````* -XM````%````.`&````````C0T````````*````%0```-("````````I@T````` -XM```*````$0````(@````````JPT````````*````%````)`'````````M`T` -XM```````*````%0```&0!````````Q`T````````*````%````.`'```````` -XMU0T````````*````%````!`(````````W@T````````*````$0```&@A```` -XM````Z0T````````!`````@```!41````````\0T````````!`````@```%L1 -XM````````!@X````````!`````@```"41````````#@X````````!`````@`` -XM`%L1````````&PX````````*````$0```(LA````````)@X````````*```` -XM%````$`(````````-PX````````*````%````'`(````````0`X````````* -XM````$0```*XA````````2PX````````!`````@```)<1````````4PX````` -XM```!`````@```-,1````````9`X````````!`````@```*01````````;`X` -XM```````!`````@```-,1````````>0X````````*````$0```!TB```````` -XM@0X````````*````%````*`(````````B@X````````*````%0```!4#```` -XM````E0X````````*````$0```&8B````````F@X````````*````%0```+\% -XM````````M0X````````*````%````#`)````````R0X````````*````$0`` -XM`%TC````````S@X````````*````%0```)@"````````V0X````````*```` -XM$0````4D````````X@X````````!`````@```'86````````Z@X````````! -XM`````@```*L6````````_PX````````!`````@```'\6````````!P\````` -XM```!`````@```*L6````````%`\````````*````$0```,`D````````'P\` -XM```````*````%````(`)````````+`\````````*````%````+`)```````` -XM-0\````````*````$0````DE````````00\````````*````%````.`)```` -XM````40\````````*````$0```&4E````````8`\````````*````%````!`* -XM````````<`\````````*````$0```,$E````````?P\````````!`````@`` -XM`#L0````````AP\````````!`````@```(,0````````F`\````````!```` -XM`@```$@0````````H`\````````!`````@```(,0````````K0\````````* -XM````$0```!TF````````N0\````````!`````@```,X.````````P0\````` -XM```!`````@````0/````````T@\````````!`````@```-<.````````V@\` -XM```````!`````@````0/````````YP\````````*````$0```%,F```````` -XM[P\````````*````%````$`*````````^`\````````*````%0```%P#```` -XM`````Q`````````*````$0```)PF````````"1`````````*````%````(`* -XM````````)1`````````*````%````,`*````````,1`````````*````$0`` -XM`+\F````````/1`````````*````%````/`*````````1A`````````*```` -XM%0```#8`````````41`````````*````$0```!LG````````5A`````````* -XM````%0```)$$````````81`````````*````$0```/TG````````9A`````` -XM```*````%0```#T"````````<1`````````*````$0```+4H````````=A`` -XM```````*````%````"`+````````B!`````````*````$0```-0I```````` -XMCA`````````!`````@```-@/````````EA`````````!`````@```!$0```` -XM````HQ`````````*````%0````<`````````KA`````````*````$0```'PJ -XM````````M!`````````!`````@```$(5````````O!`````````!`````@`` -XM`,H5````````Q1`````````*````%0````<`````````T!`````````*```` -XM$0```)\J````````U1`````````*````%0```'8!````````X!`````````* -XM````$0```,(J````````Y1`````````*````%0```*T#````````\!`````` -XM```*````$0```.4J````````]Q`````````*````%````&`+`````````!$` -XM```````*````%0```#T"````````"Q$````````*````$0```-PK```````` -XM$!$````````!`````@```&04````````&!$````````!`````@```*T4```` -XM````)1$````````*````%0````<`````````,!$````````*````$0```/DL -XM````````-1$````````*````%0```'8!````````0!$````````*````$0`` -XM`!PM````````1A$````````!`````@````(4````````3A$````````!```` -XM`@```"04````````5Q$````````*````%0```#X$````````8Q$````````* -XM````%0```#D$````````;A$````````*````$0```#\M````````Q$````````!`````@```"04````````C1$` -XM```````*````$0```*XM````````E1$````````*````%0```$@%```````` -XMH!$````````!````#@``````````````_``````````!`````@`````````` -XM````'``````````*````#P``````````````(``````````!`````@`````` -XM````````-``````````*````#P``````````````.``````````!`````@`` -XM`+``````````7``````````*````#P``````````````8``````````!```` -XM`@```!`!````````G``````````*````#P``````````````H``````````! -XM`````@```!`"````````M``````````*````#P``````````````N``````` -XM```!`````@```$`"````````Y``````````*````#P``````````````Z``` -XM```````!`````@```$`(````````(``````````*`````@`````````````` -XM.``````````*`````@```+``````````6``````````*`````@```!`!```` -XM````D``````````*`````@```!`"````````J``````````*`````@```$`" -XM````````T``````````*`````@```$`(````````!@`````````*````!@`` -XM````````````!@`````````*````!@``````````````$``````````!```` -XM`@``````````````9FYM871C:"YO+R`@("`@(#$R,3DQ.3@X,#D@(#$P,#$@ -XM(#`@("`@(#$P,#8T-"`@,S`T,S(@("`@(&`*?T5,1@(!`0D```````````$` -XM/@`!`````````````````````````(A2`````````````$```````$``&@`7 -XM`$%7059!54%455-(@^Q(2(ET)!B)5"04B4PD$`^V!X3`#X3R!P``08G-08G. -XM2(GS@^$"2(UO`4R-?"0P08/E$$&#Y@&)3"0D2(/#`4F)]&:0187M=&L/MM`[ -XM%0````!]$DB+-0````!(8\IF@WS.0`!X0CP_=%$/AX0````\*F:0#X0#`@`` -XM187M9F9FD&9FD`^%5`,```^V0_\YT'1"9I"X`0```$B#Q$A;74%<05U!7D%? -XMPP^VA(Y`"```9F9FD#P_#[;0=:\/MD/_A,!TT3PO#X31`P``/"X/A*8#``"0 -XM#[9%`$F#Q`%(@\,!A,`/A"<'``!(@\4!Z5/___]F9I`\6W1L/%P/A7K___^+ -XM1"0DOEP```"%P'4Y#[9%`(3`#X1[____187M="$/MM`[%0````!]%DB+#0`` -XM``!(8])F@WS10``/B"8'``!(@\4!#[;P187M#X7!`@``#[9#_SGP#X1Y____ -XMZ33___]F9F:01(L%`````$6%P`^$=@4``$0/MD/_183`#X02____08#X+@^$ -XM'@,``$&`^"\/A#L#```/MD4`/"$/A)\%``"+-0````"%]@^(B04``,=$)"P` -XM````BTPD)$B#Q0%%#[;0B<)-8]J%R4$/E,%F9I!FD$6%[42)QG0H1#L5```` -XM`'T?2(L%`````&9"@WS80`!Y#T(/MK280`@``&9FD&9FD(#Z7`^$W@(``(#Z -XM6P^$/@,``(32#X1V_O__#[;"187M="*%P'@>.P4`````?19(BST`````2&/( -XM9H-\ST``#XA#!0``0`^V]CGP#X3J"0``#[9%`$B#Q0$\+8A$)`\/A/P#``"` -XM?"0/70^$9@0```^V5"0/Z5?___]!#[84)(#Z+@^$?00```^V70!(@\4!@/L_ -XM#Y3`#X6C`0``187V#X3X"P``@/HO#X3C_?__A,"0=`R$T@^$UOW__TF#Q`$/ -XMMET`2(/%`8#[/P^4P`^$_@```(#[*@^$]0```(3;#X1L`0``1(GV3(GG18GW -XM]]Z#YB_H`````$B%P$F)Q@^$;@D``(#[6P^$8P4``(#[+V:0#X3:"```BT0D -XM$$6$_XE$)"@/A&P$``"`^UP/A!4)``!%A>T/A?<$``!(@^T!33GF#X9*_?__ -XM187M#[;;#X2E"0``1(M<)!1%A=L/A"()``!%A/]T&.F["@``9F:09F:028/$ -XM`4TY]`^$$_W__T$/M@0D.04`````?AE(BPT`````2&/09H-\T4``>0>+A)%` -XM"```.=AUR3'23#MD)!B+3"0H3(GF2(GO#Y3"Z##\__^%P'6L,<#IROS__V9F -XMD&:000^V%"3IRO[__P^V0_\[!0`````/C:#\__](BS4`````2&/(9H-\SD`` -XM#XF*_/__BX2.0`@``.E^_/__#[9#_SL%``````^-,_W__TB+#0````!(8]!F -XM@WS10``/B1W]__^+A)%`"```Z1']__^`^RH/A%3^__^$VP^%E/[__S'`187V -XM#X0[_/__OB\```!,B>?H`````$B%P`^5P`^VP.D@_/__BT0D%(7`#X1/_/__ -XM3#MD)!@/A`3\__]!@'PD_R\/A3C\__]%A?8/A"_\___IZOO__XM\)!2%_V9F -XM9I`/A-S\__],.V0D&`^$S_O__T&`?"3_+P^%Q?S__T6%]@^%NOO__P^V10`\ -XM(0^%O/S__^E6`@``183)#X0J_?__#[9%`(3`#X24^___187MB$0D#W0@#[;` -XM.P4`````?15(BQ4`````2)AF@WS"0``/B"T"``!(@\4!0#IT)`\/A3#]__^` -XM?"0/70^$&P<``(!\)`\`#X5M`@``Z4'[__^0@'T`.@^%P/S__P^V30%(C7T! -XM@/DZB$PD#P^$:@,```^V1"0/@^AA/!@/A]4````/MD0D#TB#QP&(1"0P#[8/ -XM@/DZB$PD#P^$W`4```^V1"0/@^AA/!@/AZ@````/MD0D#TB#QP&(1"0Q#[8/ -XM@/DZB$PD#P^$QP4```^V1"0/@^AA/!AW?P^V1"0/2(/'`8A$)#(/M@^`^3J( -XM3"0/#X2S!0``#[9$)`^#Z&$\&'=6#[9$)`](@\T/ML%T)`^VP3L%`````'T9 -XM2(L-`````$ACT&:#?-%``'D'BX210`@``#GP#XWY````#[95`$B#Q0&(5"0/ -XM@'PD#UT/A9K[__^+5"0LA=(/A>_Y___IJOG__[\`````Z`````!(@_@!&<"# -XMR`&)!0````#I;/K__XM$)!2%P`^$=_O__TP[9"08#X1U^?__08!\)/\O#X5@ -XM^___187V#X17^___Z5OY__\\7@^%;_K__TB#Q0$/MD4`QT0D+`$```#I8OK_ -XM_P^VA()`"```2(/%`8A$)`]`.G0D#P^%]_K__^G"_?__/%P/A0'___\/MDT` -XM2(/%`>GT_O__BX2/0`@``.FQ^O__BU0D$(/B^XE4)"CIA/O__SQ;=#$\70^$ -XMJP0``(3`#X39^/__#[9%`$B#Q0%%A,ETWSQ<==N`?0``#X2^^/__2(/%`>O7 -XM@'T`.F9F9I!US0^V10&$P`^$HOC__TB#Q0$\.G7L#[9%`3Q==.A(@\4"#[9% -XM`.N?28GT00^V!"2$P`^$K/O___9$)!`(#X1M^/__/"\/E<`/ML#I9?C__P^V -XMPSL%``````^-^OK__TB+%0````!(F&:#?,)```^)Y?K__P^VG()`"```Z=CZ -XM__\/MH210`@``.G-^/__BT0D$$2+;"002(U=_X/@^T6$_T0/1.A-.>8/A@+X -XM__^+1"04A<`/A%0&``!%A/]T%Y#IO`4``$F#Q`%-.?1F9F:0#X3:]___,=), -XM.V0D&$2)Z4R)YDB)WP^4PN@B]___AN_B%0D -XM#V:0Z>_X__^+1"0DA<`/A=_V__\/MET`Z=;V__^+1"0LA<`/A&KT___I)?3_ -XM_V9FD&:0,?9,B>?H`````$F)QNF`]O__183_=3A!#[8$)#D%`````'X92(L- -XM`````$ACT&:#?-%``'D'BX210`@``#G8='!)@\0!33GT=0>+A)%`"```.=AT6$F#Q`%-.?1U -XMS>F9\___183_#X68````1(M4)!1%A=)T=T$/M@0D.<-T2DF#Q`%-.?1U[NEO -XM\___BTPD*#'23(GF2(GOZ+[R__^%P`^%=____S'`Z53S__^+3"0H,=),B>9( -XMB>_HGO+__X7`=9,QP.DX\___,=),.V0D&(M,)"A,B>9(B>\/E,+H>O+__X7` -XM=9DQP.D4\___00^V!"0YV'0O28/$`4TY]'7NZ?CR__]$BTPD%$6%R71E00^V -XM!"0YPW0J28/$`4TY]'7NZ=?R__^+3"0H,=),B>9(B>_H)O+__X7`=;PQP.G` -XM\O__3#MD)!BZ`0```)!T"S'208!\)/\O#Y3"BTPD*$R)YDB)[^CT\?__AB0Z6OR__]!#[8$)#D% -XM`````'X92(L-`````$ACT&:#?-%``'D'BX210`@``#G8#X3&````28/$`4TY -XM]'7)Z2_R__],.V0D&+H!````=`LQTD&`?"3_+P^4PD2)Z4R)YDB)W^AJ\?__ -XMA<`/A#;U__])@\0!33GT=-``##CH+.P5)$P(&```?'0$Q -XM$Q$!$@%8"UD%`1,``"`%`#$3```A'0$Q$Q$!$@%8"UD+```B'0$Q$U4&6`M9 -XM!0``(P4`,1,"!@``)#0``P@Z"SL%21,""@``)1T!,1,1`1(!6`M9!0``)AT! -XM,1,1`1(!6`M9"P$3```G'0$Q$U4&6`M9!0$3```H'0$Q$U4&6`M9"P$3```I -XM-``##CH+.PM)$P(&```J-``Q$P(&```K'0$Q$U4&6`M9"P``+#0``PXZ"SL% -XM21,""@``+2X!/PP##CH+.P4G#$D3$0$2`4`*`1,``"X%``,..@L[!4D3`@8` -XM`"\T``,..@L["TD3/PP\#````$<,```"```````(`0`````!```````````` -XM`````````````````````@$&``````(!"``````"`@4``````@('``````,$ -XM!6EN=``"!`<``````@@%``````0``````SIE`````@@'``````((!``````" -XM!`0`````!``````#4EH````%"`<&"`0`````!%9%````!``````$5XH````" -XM`08`````!Q@%-.@````(``````4UE0````(C``@`````!3:5`````B,$"``` -XM```%-Y4````"(P@(``````4XZ`````(C$``)"&4````$``````4YIP````<0 -XM!3L>`0``"``````%/$4````"(P`(``````4]'@$```(C"``)".X````$```` -XM``4^^0````J`$`5`]@$```@`````!4'V`0```B,`"``````%0@8"```"(P@( -XM``````5$00(```(C*`@`````!45R`@```B,P"``````%1I4````"(S@(```` -XM``5(>`(```(C0`@`````!4F(`@```R/`$`@`````!4J(`@```R/`&`@````` -XM!5$D`0```R/`(`@`````!5(D`0```R/0(`@`````!5,D`0```R/@(`@````` -XM!56(`````R/P(`@`````!59%`````R/X(``+H`````8"```,A0````<`"Z`` -XM```6`@``#(4````?``T!E0```#`"```.,`(```YZ````#CL"````"0@V`@`` -XM#Z`````)"#`"```)"!8"```-`44```!F`@``#I4````.9@(```YZ````#FP" -XM````"0B@````"0AF`@``"0A'`@``"V4```"(`@``#(4```#_``N5````F`(` -XM``R%````_P`$``````57+P$```0`````!B1Z`````@@%`````!```````FT! -XM10````/;`@``$5]C``)LB@```!%?9@`";&4`````$``````">@%%`````P(# -XM```17V,``GF*````$5]F``)Y90```!(`$``````"G`&*`````QX#```17V,` -XM`IN*`````!```````H`!10````-$`P``$5]C``)_B@```!%?9@`"?V4````` -XM$P`````!B68"```!<@,``!%S``&',`(``!%C``&(10```!0``````8IF`@`` -XM`!4``````:,!10``````````````````````````````MPL``!8``````9\P -XM`@```````!8``````:`P`@```````!8``````:%%`````````!8``````:)% -XM`````````!=P``&D,`(````````7;@`!I#`"````````%V,``:4P```````` -XM`!@``````:L!&0`````!C`$``````````!H`````2PD``!MN;W0``28!10`` -XM```````<``````$G`:`````=`````!MF;@`!0`$P`````````!H`````PP0` -XM`!X``````98!,``````````?VP(````````````````````````!G`&L!``` -XM(/8"```@[`(``"&U`@````````````````````````)[(-`"```@Q@(````` -XM(@(#`````````9P!(Q,#```````````?VP(````````````````````````! -XMC0$,!0``(/8"```@[`(``"&U`@````````````````````````)[(-`"```@ -XMQ@(`````']L"`````````````````````````4`!504``"#V`@``(.P"```A -XMM0(````````````````````````">R#0`@``(,8"`````!H`````W@@``"1S -XM='(``4\!MPL```.1L'\;8S$``5`!HP(````````<``````%4`3`"```?VP(` -XM```````````````````````!>`'6!0``(/8"```@[`(``"&U`@`````````` -XM``````````````)[(-`"```CQ@(``````````!_;`@`````````````````` -XM``````%X`2,&```@]@(``"#L`@``(;4"`````````````````````````GL@ -XMT`(``"/&`@``````````']L"`````````````````````````7@!<`8``"#V -XM`@``(.P"```AM0(````````````````````````">R#0`@``(\8"```````` -XM```?VP(````````````````````````!>`&]!@``(/8"```@[`(``"&U`@`` -XM``````````````````````)[(-`"```CQ@(``````````!\>`P`````````` -XM``````````````%X`>@&```@.0,``",O`P`````````?VP(````````````` -XM```````````!>`$U!P``(/8"```@[`(``"&U`@`````````````````````` -XM``)[(-`"```CQ@(``````````!_;`@````````````````````````%X`8(' -XM```@]@(``"#L`@``(;4"`````````````````````````GL@T`(``"/&`@`` -XM````````']L"`````````````````````````7@!SP<``"#V`@``(.P"```A -XMM0(````````````````````````">R#0`@``(\8"```````````?VP(````` -XM```````````````````!>`$<"```(/8"```@[`(``"&U`@`````````````` -XM``````````)[(-`"```CQ@(``````````!_;`@`````````````````````` -XM``%X`6D(```@]@(``"#L`@``(;4"`````````````````````````GL@T`(` -XM`"/&`@``````````']L"`````````````````````````7@!M@@``"#V`@`` -XM(.P"```AM0(````````````````````````">R#0`@``(\8"```````````E -XM'@,````````````````````````!>`$@.0,``",O`P``````````']L"```` -XM`````````````````````48!)PD``"#V`@``(.P"```AM0(````````````` -XM```````````">R#0`@``(,8"`````"4"`P````````````````````````&- -XM`2,3`P```````````";;`@````````````````````````&PDPD``"#V`@`` -XM(.P"```AM0(````````````````````````">R#0`@``(,8"`````"<"`P`` -XM``````'+`:T)```C$P,`````````)ML"`````````````````````````<;U -XM"0``(/8"```@[`(``"&U`@````````````````````````)[(-`"```@Q@(` -XM````*`(#`````````<@."@``(Q,#`````````!H`````#PL``!0``````>TP -XM`@``&@`````["@``*0`````!\T4``````````"A$`P````````'O:`H``"-= -XM`P```````"!4`P``'0`````J9@,``````````!T`````'@`````!#`%%```` -XM`````!_;`@````````````````````````$1`<8*```@]@(``"#L`@``(;4" -XM`````````````````````````GL@T`(``"#&`@`````G`@,````````!$P'@ -XM"@``(Q,#`````````"+;`@````````$3`2#V`@``(.P"```KM0(````````" -XM>R#0`@``(,8"````````']L"`````````````````````````R#0`@``(,8"`````";; -XM`@````````````````````````'(H`L``"#V`@``(.P"```AM0(````````` -XM```````````````">R#0`@``(,8"`````"P``````24!10````D#```````` -XM````"Z````#'"P``#(4````&`"T!``````'D`0%%```````````````````` -XM``````)W"!T,```N``````'A`3`"````````+@`````!X@$P`@```````"X` -XM`````>,!10``````````+P`````"6D4````!`2\`````!5N8`@```0$O```` -XM``5<1`P```$!"0B8`@```)P$```"`,8````!`?L."@`!`0$!`````2]U7!E7!E7!E+F@``@``&Y*3LN@8$#=8T#H0)'`]]]1PAU -XM`PZWQTB"!`(#J']_!`$#V`#AW7<#X0`(Q?+6H9\(CX&"1"XVK`0"`ZY^?P0! -XM`](![PAS`PJ-`SN-KP0"`^%]500!`Y\"""L(GX$I20,08ZH#J7Z;V`BYD%B& -XM`W%'`Q,(MP,*?P.;?SD#Y0`Y`YM_?U8X.@/F`&,#$(T##*G_CXX"1!`$`@/; -XM?E4$`0.E`>$$`@.*?ZD$`0/V`'$#P@$([P/]?;<#^0&;!`(#HWU'!`$#W0(( -XM*P0"`])]X00!`RNW!`(#IG]'!`$#V@`(*P0"`U7A!`$#-;<#$XV#`U`")@$# -XM]@`",0$")Q61`PG]C[D$`@.H?K<$`0/8`>'420/D`*FK`YU__0,1FX`X2&CW -XM`W)5`PY'`W)'.CA(:/<#9=:YN$@#$(W(`[Q^"'$$`@/=?CD$ -XM`0.C`0@K`[5_")L#+L6/19T",1`#W@$(J0.)?W$##\4#"U4#:%4#&$<$`@/V -XM?0@Y!`$#B@)_!`(#]GT",0$$`0.*`G\$`@/V?0(N`00!`XH"?P0"`_9]`BX! -XM!`$#B@)_!`(#B7X"+@$$`0/W`0A'!`(#]GT(?P0!`XH"?P0"`_9]`BX!!`$# -XMB@)_!`(#]GT"+@$$`0.*`G\$`@/V?0(N`00!`XH"?P0"`_9]`BX!!`$#B@)_ -XM!`(#]GT"+@$$`0.*`G\$`@.)?@(S`00!`]T!",4#HW\">`&/CP(N#4@#B0%C -XM`X)_J;@#M0&-`\=]"%4#A@$('58$`@/;?E4$`0.E`>$$`@.*?ZD$`0/V`'%& -XMU`0"`]M^500!`Z4!X00"`XI_J00!`_8`<48(\(S4`\(!"'\#OGYQ`\(!"$<# -XMOGYQ`\(!"+<#OGYQC`ARC-0#P@$(1P.^?G$#P@$"*P$#OGYQX.($`@/;?E4$ -XM`0.E`>$$`@.*?ZD$`0/V`'%^`V73`BT.`V'39H8#<4<#P0`(X0/"`0A_`Z%^ -XM<58(<`,=TP/"`0(N`0.B?G$(<`/N`0B-+`((``$!4$]325A,65]#3U)214-4 -XM`&%L;G5M`&%L<&AA`&)L86YK`&-N=')L`&1I9VET`&=R87!H`&QO=V5R`'!R -XM:6YT`'!U;F-T`'-P86-E`'5P<&5R`'AD:6=I=```````%````/____\!``%X -XM$`P'")`!````````/````````````````````(4/````````0@X00@X80@X@ -XM0@XH00XP00XX1`Z``8,'A@:,!8T$C@./`@```````!0````````````````` -XM```*`````````!0``````````7I2``%X$`$##`<(D`$``#0````<```````` -XM`(4/````0@X00@X80@X@0@XH00XP00XX1`Z``8,'A@:,!8T$C@./`@`````` -XM%````%0`````````"@`````````````````````````"``````````(`=P@" -XM``````````0``````````@!W$`0`````````!@`````````"`'<8!@`````` -XM```(``````````(`=R`(``````````D``````````@!W*`D`````````"@`` -XM```````"`'PP````` -XM```!`%6L#@```````-X.`````````0!5```````````````````````````` -XM````)@`````````!`%0F`````````$X``````````P"1F'].`````````&<` -XM`````````0!49P````````"%#P````````,`D9A_```````````````````` -XM````````````)@`````````!`%$F`````````(4/`````````P"1E'\````` -XM```````````````````````````F``````````$`4B8`````````,@`````` -XM```#`)&0?S(`````````G@`````````!`%*>`````````+0``````````P"1 -XMD'^T`````````#P!`````````0!22P$```````#(`0````````$`4HD"```` -XM````!@,````````!`%(J`P```````-L#`````````P"1D'_;`P````````0$ -XM`````````0!2'`0````````S!`````````$`4DX$````````=P0````````! -XM`%*%!````````/<$`````````0!2]@8`````````!P````````$`4A0'```` -XM````8@<````````!`%*C!P```````+,'`````````P"1D'\8"````````!L( -XM`````````P"1D'\;"````````#,(`````````0!20`@```````!Q"``````` -XM``,`D9!_@@@```````#I"`````````,`D9!_'@P````````_#`````````,` -XMD9!_50P```````!J#`````````,`D9!_D@P```````"L#@````````,`D9!_ -XMK`X```````#>#@````````$`4MX.````````A0\````````#`)&0?P`````` -XM```````````````V`````````)X``````````0!6G@````````"E```````` -XM``$`4Z4`````````JP`````````!`%:K`````````+0``````````0!5M``` -XM``````!R!0````````$`5G(%````````;@8````````!`%5N!@```````!@( -XM`````````0!6&P@```````"+"`````````$`5HL(````````Z0@````````! -XM`%/I"`````````0)`````````0!5!`D```````"("P````````$`5H@+```` -XM````^0L````````!`%7Y"P```````'$.`````````0!6<0X```````"L#@`` -XM``````$`4ZP.````````_@X````````!`%;^#@```````"D/`````````0!3 -XM*0\```````!>#P````````$`5EX/````````A0\````````!`%,````````` -XM````````````3@````````"M``````````$`7+0`````````&`@````````! -XM`%P;"````````(4/`````````0!<`````````````````````$X````````` -XM8``````````#`)&/?V``````````F@`````````!`%":`````````)X````` -XM`````P"1CW^>`````````*H``````````0!3J@````````"T``````````,` -XMD8]_M`````````#+``````````$`4,L`````````_0`````````#`)&/?_T` -XM````````$`$````````!`%`0`0```````#4!`````````P"1CW\U`0`````` -XM`%(!`````````0!04@$```````!L`0````````,`D8]_;`$```````"``0`` -XM``````$`4(`!````````T@$````````#`)&/?](!````````+0(````````! -XM`%$M`@```````(D"`````````P"1CW^)`@```````)<"`````````0!0EP(` -XM``````";`@````````,`D8]_FP(```````!<`P````````$`4]0#```````` -XMVP,````````#`)&/?]L#````````Z@,````````!`%/J`P```````.X#```` -XM`````0!0[@,```````!.!`````````,`D8]_3@0```````"%!`````````$` -XM4X4$````````]P0````````#`)&/?_<$````````$P4````````!`%$3!0`` -XM`````%\%`````````P"1CW]?!0```````'D%`````````0!1>04```````"6 -XM!@````````,`D8]_E@8```````"@!@````````$`4,X&````````V@8````` -XM```!`%#:!@```````/8&`````````P"1CW_V!@`````````'`````````0!0 -XM``<````````4!P````````,`D8]_%`<````````8!P````````$`4!@'```` -XM````HP<````````#`)&/?Z,'````````LP<````````!`%.S!P```````,<' -XM`````````0!0QP<```````#+!P````````,`D8]_RP<```````#V!P`````` -XM``$`4!8(````````&`@````````!`%`;"````````$`(`````````P"1CW]` -XM"````````'$(`````````0!3<0@```````!^"`````````$`4'X(```````` -XMBP@````````!`%/I"````````/D+`````````P"1CW_Y"P```````$H,```` -XM`````0!32@P```````!5#`````````,`D8]_50P```````!J#`````````$` -XM4VH,````````;@P````````!`%!N#````````'L,`````````P"1CW][#``` -XM`````)(,`````````0!3K`X```````#>#@````````$`4P`````````````` -XM``````!.`````````!@(`````````P"1K'\;"````````(4/`````````P"1 -XMK'\`````````````````````3@````````!G``````````$`5'(````````` -XMM``````````!`%2\`````````!4!`````````0!4;`$```````"T`0`````` -XM``$`5,0!````````6`(````````!`%1T`@```````/8"`````````0!4U`,` -XM```````!!`````````$`5$X$````````;P0````````!`%2%!````````&X& -XM`````````0!4Y08`````````!P````````$`5!0'````````10<````````! -XM`%1-!P```````(('`````````0!4EP<```````"C!P````````$`5+,'```` -XM````&`@````````!`%0;"````````$`(`````````0!4Z0@````````-"0`` -XM``````$`5(@+````````^0L````````!`%1J#````````'L,`````````0!4 -XMK`X```````#>#@````````$`5`````````````````````!.`````````&H` -XM`````````0!2<@````````"T``````````$`4KP`````````/`$````````! -XM`%)+`0```````,@!`````````0!2VP$```````!(`@````````$`4E0"```` -XM````!@,````````!`%+4`P```````#,$`````````0!23@0```````!W!``` -XM``````$`4H4$````````;@4````````!`%)N!@```````+0&`````````0!2 -XMQ@8`````````!P````````$`4A0'````````B@<````````!`%**!P`````` -XM`(X'`````````0!0C@<```````"7!P````````$`4K,'````````&`@````` -XM```!`%(;"````````$`(`````````0!22@P```````!5#`````````$`4FH, -XM````````>PP````````!`%*L#@```````-X.`````````0!2```````````` -XM`````````$X`````````6``````````!`%&>`````````+0``````````0!1 -XMO`````````#%``````````$`4=\`````````Y``````````!`%#D```````` -XM`/T``````````0!1VP$```````#X`0````````$`4`H"````````+0(````` -XM```!`%!_`@```````(D"`````````0!0U`,```````#;`P````````$`4?<$ -XM````````!`4````````!`%!?!0```````(0%`````````0!0H`8```````"W -XM!@````````$`4+<&````````Q@8````````!`%'&!@```````/8&```````` -XM`0!0LP<````````8"`````````$`41L(````````0`@````````!`%'I"``` -XM`````.L(`````````0!0:@P```````![#`````````$`40`````````````` -XM``````!_!0```````(0%`````````0!0K`4```````"Q!0````````$`4-D% -XM````````W@4````````!`%`"!@````````<&`````````0!0*P8````````P -XM!@````````$`4.L(``````````D````````!`%"1"P```````)P+```````` -XM`0!0J0L```````"U"P````````$`4+X+````````RPL````````!`%#9"P`` -XM`````.4+`````````0!0]`L```````#Y"P````````$`4``````````````` -XM``````!.`````````(0"`````````0!1B0(````````8"`````````$`41L( -XM````````&`D````````!`%$8"0```````",)`````````0!0(PD```````!< -XM"0````````$`46X)````````D@D````````!`%&D"0```````,@)```````` -XM`0!1V@D````````L"@````````$`43X*````````8@H````````!`%%T"@`` -XM`````)@*`````````0!1J@H```````#."@````````$`4>`*````````!`L` -XM```````!`%$6"P```````#H+`````````0!130L```````"%#P````````$` -XM40````````````````````!.`````````%@``````````0!1G@````````"T -XM``````````$`4;P`````````Q0`````````!`%'?`````````/T````````` -XM`0!1?P(```````"$`@````````$`4=0#````````VP,````````!`%&S!P`` -XM`````!@(`````````0!1&P@```````!`"`````````$`45$)````````7`D` -XM```````!`%!<"0```````)()`````````0!1I`D```````#("0````````$` -XM4=H)````````+`H````````!`%$^"@```````&(*`````````0!1=`H````` -XM``"8"@````````$`4:H*````````S@H````````!`%'@"@````````0+```` -XM`````0!1%@L````````Z"P````````$`44T+````````B`L````````!`%%J -XM#````````'L,`````````0!1`````````````````````$X`````````6``` -XM```````!`%&>`````````+0``````````0!1O`````````#%``````````$` -XM4=\`````````_0`````````!`%%_`@```````(0"`````````0!1U`,````` -XM``#;`P````````$`4;,'````````&`@````````!`%$;"````````$`(```` -XM`````0!1APD```````"2"0````````$`4)()````````R`D````````!`%': -XM"0```````"P*`````````0!1/@H```````!B"@````````$`470*```````` -XMF`H````````!`%&J"@```````,X*`````````0!1X`H````````$"P`````` -XM``$`418+````````.@L````````!`%%-"P```````(@+`````````0!1:@P` -XM``````![#`````````$`40````````````````````!.`````````%@````` -XM`````0!1G@````````"T``````````$`4;P`````````Q0`````````!`%'? -XM`````````/T``````````0!1?P(```````"$`@````````$`4=0#```````` -XMVP,````````!`%&S!P```````!@(`````````0!1&P@```````!`"``````` -XM``$`4;T)````````R`D````````!`%#("0```````"P*`````````0!1/@H` -XM``````!B"@````````$`470*````````F`H````````!`%&J"@```````,X* -XM`````````0!1X`H````````$"P````````$`418+````````.@L````````! -XM`%%-"P```````(@+`````````0!1:@P```````![#`````````$`40`````` -XM``````````````#'!P```````,L'`````````0!0\PD```````#Z"0`````` -XM``$`4/H)````````#0H````````!`%``````````````````````3@`````` -XM``!8``````````$`49X`````````M``````````!`%&\`````````,4````` -XM`````0!1WP````````#]``````````$`47\"````````A`(````````!`%'4 -XM`P```````-L#`````````0!1LP<````````8"`````````$`41L(```````` -XM0`@````````!`%$A"@```````"P*`````````0!0+`H```````!B"@`````` -XM``$`470*````````F`H````````!`%&J"@```````,X*`````````0!1X`H` -XM```````$"P````````$`418+````````.@L````````!`%%-"P```````(@+ -XM`````````0!1:@P```````![#`````````$`40````````````````````!. -XM`````````%@``````````0!1G@````````"T``````````$`4;P````````` -XMQ0`````````!`%'?`````````/T``````````0!1?P(```````"$`@`````` -XM``$`4=0#````````VP,````````!`%&S!P```````!@(`````````0!1&P@` -XM``````!`"`````````$`45<*````````8@H````````!`%!B"@```````)@* -XM`````````0!1J@H```````#."@````````$`4>`*````````!`L````````! -XM`%$6"P```````#H+`````````0!130L```````"("P````````$`46H,```` -XM````>PP````````!`%$`````````````````````3@````````!8```````` -XM``$`49X`````````M``````````!`%&\`````````,4``````````0!1WP`` -XM``````#]``````````$`47\"````````A`(````````!`%'4`P```````-L# -XM`````````0!1LP<````````8"`````````$`41L(````````0`@````````! -XM`%&-"@```````)@*`````````0!0F`H```````#."@````````$`4>`*```` -XM````!`L````````!`%$6"P```````#H+`````````0!130L```````"("P`` -XM``````$`46H,````````>PP````````!`%$`````````````````````3@`` -XM``````!8``````````$`49X`````````M``````````!`%&\`````````,4` -XM`````````0!1WP````````#]``````````$`47\"````````A`(````````! -XM`%'4`P```````-L#`````````0!1LP<````````8"`````````$`41L(```` -XM````0`@````````!`%'#"@```````,X*`````````0!0S@H````````$"P`` -XM``````$`418+````````.@L````````!`%%-"P```````(@+`````````0!1 -XM:@P```````![#`````````$`40````````````````````!.`````````%@` -XM`````````0!1G@````````"T``````````$`4;P`````````Q0`````````! -XM`%'?`````````/T``````````0!1?P(```````"$`@````````$`4=0#```` -XM````VP,````````!`%&S!P```````!@(`````````0!1&P@```````!`"``` -XM``````$`4?D*````````!`L````````!`%`$"P```````#H+`````````0!1 -XM30L```````"("P````````$`46H,````````>PP````````!`%$````````` -XM````````````3@````````!8``````````$`49X`````````M``````````! -XM`%&\`````````,4``````````0!1WP````````#]``````````$`47\"```` -XM````A`(````````!`%'4`P```````-L#`````````0!1LP<````````8"``` -XM``````$`41L(````````0`@````````!`%$O"P```````#H+`````````0!0 -XM.@L```````"("P````````$`46H,````````>PP````````!`%$````````` -XM````````````G@````````"E``````````$`4-L!````````^`$````````! -XM`%`*`@```````"T"`````````0!0?P(```````")`@````````$`4/<$```` -XM````!`4````````!`%!?!0```````(0%`````````0!0QP<```````#+!P`` -XM``````$`4.D(````````ZP@````````!`%!J"P```````'4+`````````0!0 -XM=0L```````"("P````````$`4`````````````````````!.`````````&H` -XM`````````0!2<@````````"T``````````$`4KP`````````/`$````````! -XM`%)+`0```````,@!`````````0!2VP$````````M`@````````$`4BT"```` -XM````2`(````````!`%!(`@```````%0"`````````0!25`(```````!D`@`` -XM``````$`4&0"````````!@,````````!`%+4`P```````#,$`````````0!2 -XM3@0```````!W!`````````$`4H4$````````;@4````````!`%)I!@`````` -XM`&X&`````````0!0;@8```````"%!@````````$`4N4&``````````<````` -XM```!`%(4!P```````(('`````````0!2EP<```````">!P````````$`4IX' -XM````````HP<````````!`%"S!P```````!@(`````````0!2&P@```````!` -XM"`````````$`4DH,````````50P````````!`%!J#````````'L,```````` -XM`0!2K`X```````#>#@````````$`4@````````````````````!.```````` -XM`&H``````````0!2<@````````":``````````$`4IH`````````G@`````` -XM```!`%">`````````+0``````````0!2O``````````\`0````````$`4DL! -XM````````R`$````````!`%*)`@````````8#`````````0!2U`,```````#N -XM`P````````$`4NX#````````!`0````````!`%`$!````````!<$```````` -XM`0!2%P0````````#P`` -XM`````(4/`````````0!=`````````````````````/8"````````!@,````` -XM```!`%0`````````````````````G@````````"Q``````````$`7@D#```` -XM````#`,````````!`%`,`P```````-L#`````````0!>HP<```````"S!P`` -XM``````$`7D`(````````<0@````````!`%Y^"````````.D(`````````0!> -XM^0L```````!*#`````````$`7E4,````````:@P````````!`%Y[#``````` -XM`*P.`````````0!>W@X```````"%#P````````$`7@`````````````````` -XM``">`````````+0``````````P"1J'\Q`P```````-L#`````````P"1J'^C -XM!P```````+,'`````````P"1J']`"````````'$(`````````P"1J']5#``` -XM`````&H,`````````P"1J'^2#````````'$.`````````P"1J'_>#@`````` -XM`/X.`````````P"1J'\I#P```````%X/`````````P"1J'\````````````` -XM````````G@````````"E``````````$`4*4`````````M``````````!`%%Z -XM`P```````*0#`````````0!0I`,```````"S`P````````$`4;,#```````` -XMT`,````````!`%"7#````````*X,`````````0!0K@P```````"]#``````` -XM``$`4;T,````````Y@P````````!`%#F#````````/4,`````````0!1]0P` -XM```````'#0````````$`4#$-````````0@T````````!`%!1#0```````&(- -XM`````````0!0-0X```````!,#@````````$`4$P.````````6PX````````! -XM`%%;#@```````'$.`````````0!0*0\```````!/#P````````$`4``````` -XM``````````````"0#P```````)H/`````````0!5```````````````````` -XM`)`/````````F@\````````!`%0`````````````````````D`\```````"5 -XM#P````````$`494/````````F@\````````!`%(````````````````````` -XM&@````(``````$L,``#'"P``9FYM871C:```````+`````(```````@````` -XM````````````F@\`````````````````````````````-@`````````[```` -XM`````&H,````````@`P```````!*#````````%4,````````Z0@````````` -XM#````````+,'````````&P@```````!%!P```````*,'````````M@0````` -XM```4!P```````'`!````````B0(`````````````````````````````-@`` -XM```````[`````````$H,````````50P```````#I"``````````,```````` -XM8@<```````"C!P```````&`%````````Y08```````#W!````````$0%```` -XM````X`$```````")`@```````-(!````````U0$```````#,`0```````-`! -XM`````````````````````````````'P&````````V@8```````""!P`````` -XM`)<'`````````````````````````````)T&````````H`8```````"_!@`` -XM`````,8&`````````````````````````````#8`````````.P````````#I -XM"``````````,````````:@4```````!D!@`````````````````````````` -XM``"6`````````)H`````````$`0````````#@```````/<.````````%PX```````"L#@```````.4- -XM````````$`X```````"1#0```````-X-````````;0T```````"*#0`````` -XM`%$-````````9@T```````"`#````````$H-````````50P```````!J#``` -XM```````,````````2@P```````!^"````````.((````````0`@```````!Q -XM"````````*,'````````LP<`````````````````````````````?@@````` -XM``#B"````````%X/````````A0\```````#^#@```````"D/````````<0X` -XM``````"L#@````````````````````````````#V`@```````/D"```````` -XM@`P```````"2#`````````$#````````$@,````````````````````````` -XM````!@,````````)`P````````P#````````$@,````````````````````` -XM````````)@,```````#4`P```````"D/````````5P\```````#>#@`````` -XM`/<.````````%PX```````!Q#@```````.4-````````$`X```````"1#0`` -XM`````-X-````````;0T```````"*#0```````%$-````````9@T```````"2 -XM#````````$H-````````50P```````!J#````````$`(````````<0@````` -XM``"C!P```````+,'`````````````````````````````*P#````````LP,` -XM``````!4#@```````%L.````````[@P```````#U#````````+8,```````` -XMO0P`````````````````````````````D@,```````"A`P```````#H.```` -XM````20X```````#4#````````.,,````````G`P```````"K#``````````` -XM``````````````````"2`P```````*$#````````.@X```````!)#@`````` -XM`-0,````````XPP```````"<#````````*L,```````````````````````` -XM`````')E````````H`0```````````````````$```````````````````!0```` -XM!`````````````````````````#P=0```````!@`````````&`````@````( -XM`````````!@`````````80````$````R````````````````````*R,````` -XM``!9`````````````````````0`````````!`````````'4````!```````` -XM`````````````````(@C````````<`````````````````````@````````` -XM``````````!P````!``````````````````````````(=@```````&`````` -XM````&`````L````(`````````!@`````````AP````$````"```````````` -XM````````^",```````!H````````````````````"``````````````````` -XM`((````$`````````````````````````&AV````````,``````````8```` -XM#0````@`````````&`````````"1`````0````````````````````````!@ -XM)````````!XD```````````````````!````````````````````H0````$` -XM````````````````````````?D@````````>`````````````````````0`` -XM`````````````````)P````$`````````````````````````)AV```````` -XM&``````````8````$`````@`````````&`````````"V`````0`````````` -XM``````````````"<2````````#`````````````````````!```````````` -XM````````L0````0`````````````````````````L'8````````P```````` -XM`!@````2````"``````````8`````````,4````!```````````````````` -XM`````,Q(````````L`4```````````````````$```````````````````#3 -XM`````0```#````````````````````!\3@```````/@"```````````````` -XM```!``````````$`````````W@````$`````````````````````````=%$` -XM```````F`````````````````````0```````````````````!$````#```` -XM`````````````````````)I1````````YP````````````````````$````` -XM```````````````!`````@`````````````````````````(60```````%@" -XM````````&0```!,````(`````````!@`````````"0````,````````````` -XM````````````8%L```````![`````````````````````0`````````````` -XM``````````````````````````````````````$````$`/'_```````````` -XM```````````````#``$````````````````````````````#``,````````` -XM```````````````````#``0````````````````````````````#``4````` -XM```````````````````````#``8````````````````````````````#``@` -XM```````````````````````````#``H```````````````````````L````" -XM``$```````````"%#P```````!P````!``0````````````$```````````` -XM```#``L````````````````````````````#``T````````````````````` -XM```````#``\````````````````````````````#`!`````````````````` -XM```````````#`!(````````````````````````````#`!0````````````` -XM```````````````#`!4````````````````````````````#`!8````````` -XM`````````````#$````0`````````````````````````#\````0```````` -XM`````````````````%(````0`````````````````````````%D````0```` -XM`````````````````````&`````0`````````````````````````',````2 -XM``$`D`\````````*``````````!F;FUA=&-H+F,`:6YT97)N86Q?9FYM871C -XM:`!P;W-I>&QY7V-O@H````````*````"````#H`````````CPH````` -XM```"````$P```/S_________FPH````````"````%````/S_________L`H` -XM```````*````"````$``````````Q0H````````"````$P```/S_________ -XMT0H````````"````%````/S_________Y@H````````*````"````$8````` -XM````^PH````````"````$P```/S_________!PL````````"````%````/S_ -XM________'`L````````*````"````$P`````````,0L````````"````$P`` -XM`/S_________/0L````````"````%````/S_________4PL````````*```` -XM"````%(`````````>`L````````+````%P```$(`````````A@P````````" -XM````%0```/S_________G@P````````"````$P```/S_________IPP````` -XM```"````%````/S_________U@P````````"````$P```/S_________WPP` -XM```````"````%````/S_________/`X````````"````$P```/S_________ -XM10X````````"````%````/S_________!@`````````*````!0`````````` -XM````#``````````*````$0```,H`````````$0`````````*````$0````8! -XM````````%0`````````!`````@``````````````'0`````````!`````@`` -XM`)H/````````)0`````````*````!P``````````````+``````````*```` -XM$0```)0!````````,P`````````*````$0```'@!````````.@`````````* -XM````$0```#$`````````00`````````*````$0```.X!````````3P`````` -XM```*````$0```+4!````````5@`````````*````$0```.H`````````6P`` -XM```````*````$0```"L"````````:``````````*````$0```&L"```````` -XM;P`````````*````$0```'T"````````=@`````````*````$0```+8````` -XM````>P`````````*````$0```!4"````````BP`````````*````$0```&P! -XM````````E@`````````*````$0```(D`````````HP`````````*````$0`` -XM`!`"````````L``````````*````$0```)L"````````O@`````````*```` -XM$0```$L"````````S``````````*````$0```&8!````````V@`````````* -XM````$0```*D"````````[P`````````*````$0```$`"`````````@$````` -XM```*````$0```,8"````````$`$````````*````$0```$(`````````)0$` -XM```````*````$0```.,!````````.0$````````*````$0```)T````````` -XM1P$````````*````$0```-L"````````50$````````*````$0```-`"```` -XM````8P$````````*````$0```%$"````````<0$````````*````$0```$04````````*````#0```(0.````````?@4````````*````$0```,T! -XM````````C@4````````!`````@```!@)````````E@4````````!`````@`` -XM`"`)````````M`4````````!`````@```!@)````````O`4````````!```` -XM`@```"`)````````T`4````````*````#0```&4/````````VP4````````! -XM`````@```%$)````````XP4````````!`````@```%D)`````````08````` -XM```!`````@```%$)````````"08````````!`````@```%D)````````'08` -XM```````*````#0```'\0````````*`8````````!`````@```(<)```````` -XM,`8````````!`````@```(\)````````3@8````````!`````@```(<)```` -XM````5@8````````!`````@```(\)````````:@8````````*````#0```/@1 -XM````````=08````````!`````@```+T)````````?08````````!`````@`` -XM`,4)````````FP8````````!`````@```+T)````````HP8````````!```` -XM`@```,4)````````MP8````````*````#0```%X3````````P@8````````! -XM`````@```/,)````````R@8````````!`````@````@*````````XP8````` -XM```*````#0```+$4````````[08````````!`````@```"$*````````]08` -XM```````!`````@```"D*````````$P<````````!`````@```"$*```````` -XM&P<````````!`````@```"D*````````+P<````````*````#0```/H4```` -XM````.@<````````!`````@```%<*````````0@<````````!`````@```%\* -XM````````8`<````````!`````@```%<*````````:`<````````!`````@`` -XM`%\*````````?`<````````*````#0```#H6````````AP<````````!```` -XM`@```(T*````````CP<````````!`````@```)4*````````K0<````````! -XM`````@```(T*````````M0<````````!`````@```)4*````````R0<````` -XM```*````#0```&<7````````U`<````````!`````@```,,*````````W`<` -XM```````!`````@```,L*````````^@<````````!`````@```,,*```````` -XM`@@````````!`````@```,L*````````%@@````````*````#0```($8```` -XM````(0@````````!`````@```/D*````````*0@````````!`````@````$+ -XM````````1P@````````!`````@```/D*````````3P@````````!`````@`` -XM``$+````````8P@````````*````#0```(@9````````;@@````````!```` -XM`@```"\+````````=@@````````!`````@```#<+````````E`@````````! -XM`````@```"\+````````G`@````````!`````@```#<+````````L`@````` -XM```*````#0```'P:````````NP@````````!`````@```&H+````````PP@` -XM```````!`````@```(@+````````V`@````````*````#0```%T;```````` -XMXP@````````!`````@```!@%````````ZP@````````!`````@```"<%```` -XM````"0D````````!`````@```!@%````````$0D````````!`````@```"<% -XM````````+`D````````!`````@```)<'````````-`D````````!`````@`` -XM`*,'````````1`D````````*````#0```"L<````````4`D````````!```` -XM`@```%@`````````6`D````````!`````@```&<`````````=0D````````! -XM`````@```%@`````````?0D````````!`````@```&<`````````F`D````` -XM```*````$````-`!````````J`D````````*````#0```/`=````````L@D` -XM```````!`````@```"T!````````N@D````````!`````@```#P!```````` -XMUPD````````!`````@```"T!````````WPD````````!`````@```#P!```` -XM````^@D````````*````$``````"````````"0H````````*````#0```%8? -XM````````#PH````````*````$````#`"````````&`H````````*````$0`` -XM`(0`````````(PH````````*````$````#`#````````+`H````````*```` -XM$0```$L`````````-@H````````*````#0```#<@````````0`H````````* -XM````$````(`#````````3PH````````*````#0```+D@````````60H````` -XM```*````$````,`#````````8@H````````*````#0```-P@````````:0H` -XM```````*````$````/`#````````;@H````````*````$0```$L````````` -XM>0H````````*````#0```*HA````````@@H````````!`````@```$,(```` -XM````B@H````````!`````@```%8(````````J`H````````!`````@```$,( -XM````````L`H````````!`````@```%8(````````RPH````````*````$``` -XM`,`$````````VPH````````*````#0```&(B````````Y0H````````*```` -XM$````!`%````````^PH````````*````$````&`%````````%`L````````! -XM`````@```.X#````````'`L````````!`````@````$$````````.@L````` -XM```!`````@```.X#````````0@L````````!`````@````$$````````70L` -XM```````!`````@```"`$````````90L````````!`````@```#,$```````` -XM@@L````````!`````@```"`$````````B@L````````!`````@```#,$```` -XM````H0L````````*````$0```%8!````````K@L````````!````!``````` -XM````````R0L````````*````$0```*$"````````U0L````````!`````@`` -XM`)`/````````W0L````````!`````@```)H/````````[0L````````*```` -XM$0```!H`````````^`L````````*````#0```*(C````````_0L````````* -XM````$0```/,`````````"`P````````*````#0```,4C````````#0P````` -XM```*````$0```*`!````````&`P````````*````#0```.@C````````'@P` -XM```````*````$0```(8!````````*PP````````*````$0````<````````` -XM.`P````````*````$0```&4`````````TP`````````!`````@`````````` -XM````'``````````*````"P``````````````(``````````!`````@`````` -XM````````7``````````*````"P``````````````8``````````!`````@`` -XM`)`/````````(``````````*`````@``````````````6``````````*```` -XM`@```)`/````````!@`````````*````!@``````````````!@`````````* -XG````!@``````````````$``````````!`````@`````````````` -X` -Xend -776edfa43506423aabbff616cf01a388 -echo x - ./getopt1.o.uu -sed 's/^X//' >./getopt1.o.uu << '7f9a18e3e97f698c8a70c0f5493cdc24' -Xbegin 644 ./getopt1.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````-`'```` -XM`````````$```````$``&``5`$&Y`0```.D`````9F:09I!%,0````!`,!PB0`0```````!0````````````````````+```` -XM`````!0````````````````````(`````````!0``````````7I2``%X$`$# -XM#`<(D`$``!0````<``````````L``````````````!0````T``````````@` -XM````````````````````````"P`````````!`%4````````````````````` -XM```````````+``````````$`5`````````````````````````````````L` -XM`````````0!1````````````````````````````````"P`````````!`%(` -XM```````````````````````````````+``````````$`6``````````````` -XM```````0`````````!@``````````0!5`````````````````````!`````` -XM````&``````````!`%0`````````````````````$``````````8```````` -XM``$`40`````````````````````0`````````!@``````````0!2```````` -XM`````````````!``````````&``````````!`%@````````````````````` -XM,P````(``````,P!``#5````9V5T;W!T7VQO;F=?;VYL>0!?`0``9V5T;W!T -XM7VQO;F<``````"P````"```````(`````````````````!@````````````` -XM`````````````````&]P=%]I;F1E>`!'3E4@0R`T+C(N,2`R,#`W,#0!O<'1I;VYS``!' -XM0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(` -XM+G-T./getopt.o.uu << 'e91f2be53ccef7c31a70c80e46567ff3' -Xbegin 644 ./getopt.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````+!$```` -XM`````````$```````$``&P`8`$%7059!54%455-(@^QXBP4`````2,<%```` -XM``````")?"1`2(ET)#A(B50D,$B)3"0HA -XM!P``N/____](@\1X6UU!7$%=05Y!7\-!@#DM#X5A`P``00^V40%)C4D!A-(/ -XMA%`#```QP$B#?"0H`'0)@/HM#Y3`@^`!3(TT"$R)-0````!(@WPD*`!T-XL5 -XM`````$B+3"0X2&/"B50D<$B+!,%(B40D:`^V0`$\+8A$)'Y( -XMBU0D,`^$EP0``$B+5"0PZPL/OL`YQ0^$A00``$B#P@$/M@*$P'7J,?:X`0`` -XM`(`Y`8L5`````(/2`(3`B14`````#X7Y`P``0(#_.@^$[P,``(`^5P^$T@4` -XM``^V?@%`@/\ZB>@/A>G^__^`?@(Z#X0N"0``@#D`#X1@"```@P4``````4B) -XM#0````")Z$C'!0``````````Z;;^___'!0`````!````Z3[]__](BU0D:(!Z -XM`@!U/$B+3"0P#[8!A,!T,$B)R@^^3"1W#[[P.?$/A#4&``!(BU0D,.L+#[[` -XM.<$/A",&``!(@\(!#[8"A,!UZD$/M@:$P(A$)$8/A,\$```\/4V)]`^$Q`0` -XM`$F#Q`%!#[8$)(3`#X7=`0``2(M4)"A(BQI(A=L/A#L&``!-B>=$B>%(B=5$ -XM*?%-*?=%,>U(QT0D2`````#'1"10`````,=$)%3_____B4PD#.L12(/%($B+ -XM70!(A=MT24&#Q0%,B?I,B?9(B=_H`````(7`==U(B=_H`````#E$)`P/A&L# -XM``!(@WPD2``/A.\"``!(@\4@QT0D4`$```!(BUT`2(7;=;>+1"10A<`/A$@# -XM``!$BST`````187_#X4"`P``3(GWZ`````!)`<:#!0`````!QP4````````` -XM`$R)-0````!(@\1XN#\```!;74%<05U!7D%?PTB#P0''!0`````"````2(E, -XM)##I(?S__SG008G%B=,/A(L#``!!.=-T-$&)Q$ACPDB+5"0X1(G=3(T\PF9F -XMD&9FD#G=#X]3`0``0XU$'0!$B1T`````*=B)!0````!$.5PD0$B+3"0X26/# -XM2(T4P7\@'@! -XM`'381(L=`````$2)%0````#I]/O__TB#1"0P`<<%``````````#I=OO__T6% -XM]@^$>/S__T&-0P%,B0T`````B04`````2(/$>+@!````6UU!7$%=05Y!7\.0 -XM/#T/A0K^___I%O[__V9FD$0YTP^-!?S__T6)V$6)T44IT$$IV44YR'Y'187) -XM#XZ>`0``2(M4)#A(8\-%*05_# -XM2(EL)$A$B6PD5.G!_/__2(722(G6#Y3`Z7_[__]$BUPD0$2)%0````#I[?G_ -XM_T&)[8DM`````.ED^O__12G+Z3SZ__](BT0D.$B+3"1HO@````!(BST````` -XM2(L0,<#H`````$R+-0````#ITOS__TB);"1(1(EL)%1(@WPD2``/A%0"``"+ -XM1"1P@\`!B04`````08`\)``/A*L```!(BU0D2$2+:@A%A>T/A8L#``!$BR4` -XM````187D=$-(BTPD.$B82(M$P?B`>`$M#X07`P``2(M4)$@/O@B^`````$B+ -XM1"0X2(L]`````$R+`DB+$#'`Z`````!,BS4`````3(GWZ`````!(BU0D2$D! -XMQDR)-0````"+0AB)!0````"X/P```.F9^?__03G#BP4`````00]%PXD%```` -XM`.F6_/__38GTZ47[__](BTPD2(-Y"`$/A/$!``!,B??H`````$D!QDB#?"0@ -XM`$R)-0````!T"XM4)%1(BT0D((D02(M,)$A(BU$02(72#X3D`0``BT$8B0(Q -XMP.DG^?__#[9^`4"`_SL/A23Z__^`.0`/A(@#``"#!0`````!2(D-`````$R+ -XM-0````!,B34`````00^V!H3`#Y5$)$F^`````$B+$#'`Z`````#I&/W__T2+ -XM+0````#IUO?__XM<)!R%VP^%F0$``$2+'0````!%A=MT,8!\)'??__SE$)$!^,4B+5"0X2)A( -XMBP3"2(D%`````(M$)'"#P`*)!0````#IY?W__TB+5"1(BT(8Z4+W__^++0`` -XM``"%[70I2(M4)#A(F$B+/0````"^`````$B+3,+X2(L2,<#H`````$R+-0`` -XM``!,B??H`````$B+5"1(20'&2(M,)#!,B34`````BT(8B04`````,<"`.3H/ -XME<"-1(`ZZ=GV__](BT0D2$B+/0````"^`````$B+"$B+1"0X2(L0,<#H```` -XM`$R+-0````#IY_S__TB+1"0X2(L]`````$R)\;X`````2(L0,<#H`````.GH -XM_O__28U$)`%(B04`````Z0S]__^+#0`````[3"1`#X3'`0``2(M4)#A(8\%( -XMBP3"2(D%`````(U!`8D%`````(GHZ7WW__^`?"1W+0^$7/[__TB+3"0P#[8! -XMA,`/A$S^__\/ODPD1@^^\$B+5"0P.?%T&TB+5"0P2(/"`0^V`H3`#X0G_O__ -XM#[[`.<%UZDB%T@^%M/W__^D2_O__9F9FD&9FD#P]3(GU#X3Y_/__2(/%`0^V -XM10"$P`^51"1'#X3G_/__/#UUY^G>_/__38GE1(E\)%SI$OW__X`Y``^$C@`` -XM`(,%``````%(B0T`````B>A(QP4``````````.F(]?__.U0D0'1X2(M,)#A( -XM8\)(BP3!2(D%`````(U"`8D%`````.E?_/__1(M$)%A%A<`/A)8```"+/0`` -XM``"%_P^%Z0```$B+'0````!(B=_H`````(,%``````%,C30#N#\```!,B34` -XM````Z1KU__](QP4``````````.EP____1(L-`````$6%R70=2(M$)#A(BST` -XM````B>F^`````$B+$#'`Z`````")+0````!(BU0D,#'`@#HZ#Y7`C42`.NG% -XM]/__38GE1(E\)%Q-A>T/A8,```"X5P```$C'!0``````````Z9_T__^+!0`` -XM``"%P'0=2(M$)#A(BST`````B>F^`````$B+$#'`Z`````!(BU0D,#'`B2T` -XM````@#HZ#Y7`C42`.NF6]?__2&,%`````$B+5"0XO@````!(BST`````2(L, -XMPDB+$C'`Z`````#I[/[__X!\)$<`#X2;````08MU"(7V=4V+#0````"%R70? -XM2(M$)#A)BTT`O@````!(BST`````2(L0,<#H`````$B+'0````!(B=_H```` -XM`$R--`.X/P```$R)-0````#IT?/__TB-10%(B04`````3(GWZ`````!)`<9( -XM@WPD(`!,B34`````=`N+1"1<2(M,)"")`4F+51!(A=)T/D&+11B)`C'`Z8OS -XM__]!@WT(`76^BPT`````.4PD0'XG2(M4)#A(8\%(BP3"2(D%`````(U!`8D% -XM`````.N408M%&.E1\___BQ4`````A=)T(TB+5"0X2&/!2(L]`````+X````` -XM2(M,POA(BQ(QP.@`````2(L=`````$B)W^@`````3(TT`TR)-0````#I*O[_ -XM_V9F9I!F9F:09F:09F:013')13'`,"P$``!\N -XM`3\,`PXZ"SL%)PQ)$Q$!$@%`!@$3```@!0`##CH+.P5)$P(&```A'0$Q$U4& -XM6`M9!0$3```B!0`Q$P``(PL!508``"0T`#$3`@8``"4T`#$3```F"P%5!@$3 -XM```G-``#"#H+.P5)$P(&```H-``##CH+.P5)$P(&```I!0`Q$P(&```J'0$Q -XM$U4&6`M9!0``*R8``PY)$P``+"X!/PP##CH+.P4G#$D3$0$2`4`*`1,``"TT -XM``,..@L["TD3`@H``"XT``,..@L["TD3/PP\#```+S0``PXZ"SL+21,_#`(* -XM````N`@```(```````@!``````$````````````````````````````````" -XM`08``````@$(``````("!0`````"`@<``````P0%:6YT``($!P`````$```` -XM``(Y7@````((!0`````""`<``````@@$``````($!``````%"`<&"`0````` -XM`S13````!X`#8ZD````(``````-DJ0````@``````V53``````FY````N0`` -XM``IZ````?P`"`08`````!``````#9HH````$``````0O?P````L`````$`1& -XM_P````P`````!$?_`````B,`#``````$2$4````"(P@`#0@P````#@`````P -XM`01G=0(```]?<``$:/\````"(P`/7W(`!&E%`````B,(#U]W``1J10````(C -XM#`P`````!&LW`````B,0#``````$;#<````"(Q(/7V)F``1MU@````(C&`P` -XM````!&Y%`````B,H#``````$<7T````"(S`,``````1RA0(```(C.`P````` -XM!'.K`@```B-`#``````$=,L"```"(T@,``````1U]@(```(C4`]?=6(`!'C6 -XM`````B-8#U]U<``$>?\````"(V@/7W5R``1Z10````(C<`P`````!'W\`@`` -XM`B-T#``````$?@P#```"(W`P`````!(1%`````R.( -XM`0P`````!(7+`````R.0`0P`````!(@````(`"3`````<`P``"GH``````!,``````0T('`,` -XM`!,``````0T(*`,```0`````!(P%`0``"P`````@!5*$`P``#``````%5.L" -XM```"(P`,``````5:10````(C"`P`````!5N$`P```B,0#W9A;``%7$4````" -XM(Q@`#0A%````%`0!MZ4#```5```````5``````$5``````(`%@`````!U@&E -XM`@```L"```! -XM!`0``!D``````8`!10```!D``````8`!!`0``!D``````8`!ZP(````-"`H$ -XM```2I0(``!H``````2T!`0&.!```&0`````!+`&.!```&P`````!+@%%```` -XM&P`````!+P%%````''1O<``!,`%%````''1E;0`!,0&E`@``'74$```<;&5N -XM``%3`44````<:0`!5`%%`````!X<;&5N``%D`44````<:0`!90%%```````- -XM"*4"```?`0`````!^0$!10``````````````````````````````;`<``"`` -XM`````?!``` -XM)&H$``````````````T(<@<``"L`````/P,``"P!``````&Y`P%%```````` -XM``````````````````)W"-$'```@``````&X`T4`````````(``````!N`,$ -XM!````````"```````;@#ZP(`````````+0`````!C*4"```)`P`````````` -XM+0`````!N8H#```)`P``````````+0`````!O*4"```)`P``````````+0`` -XM```!]$4````)`P``````````+0`````!]44````)`P``````````+@`````$ -XMDD<(```!`0T(-`,``"\``````6ZE`@```0D#```````````O``````%]10`` -XM``$)`P``````````+P`````!D44````!"0,``````````"\``````9=%```` -XM`0D#```````````O`````` ````$)`P```````````(D#```"`+`````! -XM`?L."@`!`0$!`````2]U7!E7!E$#"PB;`Q,(Q0/K?`(_`0.T=SQG"K0P.A!-.Y -XM*64#$.\#^0"-2;D##YN2;G0#%2L#SWSO`^T`X0/K?*D#E0/A`^U\50.3`ZD# -XM[7QQJT,#H0-Q`BP4"#PV/#8(UF#^"!\#"0@=`W2W`PQ'`W1_`Q>-N?*J&/`^,"_0.=?4<#XP)5`\-]MP/6?>^/"!8#$8T# -XM<0BW.C8\.C4#$0@=`V]5`Q/].C8\.C7-`UY_CP@6`Q&-`W$(<3HV/#HU`Q$( -XM'0-O50,3"#DZ-CPZ-ZD#A`3O`_Y[50." -XM!+<#@'Q50ZL#@@1Q`]@`"$<#$`(I`0/'`,60<'8#BW\('0,28P,?"._5UN)P -XM2%0#/K<#CG_ON@BZ`]$`8P-?"%6!`RR-`QT(1YX(O'!D`ZE_X0,)`BL!K8.< -XM"-<#>`(D`0,:J:IBF5D(&]P=&EO;B!@)6,EQ^```````````````` -XM`````&X!````````O`$````````!`%-M!0```````)L%`````````0!3FP4` -XM``````"G!0````````$`4-$%````````W@4````````!`%/>!0```````.T% -XM`````````0!0`P8````````+!@````````$`4S$'````````.0<````````! -XM`%.0"0```````*$)`````````0!3`````````````````````$\!```````` -XM=0$````````!`%9U`0```````)4!`````````0!;E0$```````"]`0`````` -XM``$`5KT!````````Q@$````````!`%MM!0```````*<%`````````0!;IP4` -XM``````"V!0````````$`4-$%````````"P8````````!`%LC!P```````#$' -XM`````````0!6,0<````````Y!P````````$`6Y`)````````H0D````````! -XM`%8`````````````````````=0$```````#&`0````````$`46T%```````` -XMF`4````````!`%&S!0````````L&`````````0!1,0<````````Y!P`````` -XM``$`49`)````````H0D````````!`%$`````````````````````=0$````` -XM``#&`0````````$`56T%````````H`4````````!`%71!0```````.`%```` -XM`````0!5X`4```````#P!0````````$`5?`%````````"P8````````!`%4Q -XM!P```````#D'`````````0!5D`D```````"A"0````````$`50`````````` -XM``````````!U`0```````,8!`````````0!5;04```````"@!0````````$` -XM5:`%````````N04````````!`%6Y!0```````.`%`````````0!5`P8````` -XM```+!@````````$`53$'````````.0<````````!`%60"0```````*$)```` -XM`````0!5`````````````````````+ -XM"`````````$`5CX(````````D`@````````!`%9X"0```````(L)```````` -XM`0!6SPD```````!["@````````$`5MX*````````00L````````!`%9T"P`` -XM`````,D+`````````0!6`````````````````````+"``````` -XM``,`D:1_/@@```````!G"0````````,`D:1_>`D```````"0"0````````,` -XMD:1_H0D```````##"0````````,`D:1_SPD```````"R#@````````,`D:1_ -XM`````````````````````+`D```````"0"0`` -XM``````$`7:$)````````PPD````````!`%W/"0```````-X*`````````0!= -XM#0L````````P"P````````$`74$+````````^0L````````!`%T&#``````` -XM`%8,`````````0!=G0P```````#R#`````````$`70,-````````6PT````` -XM```!`%T`````````````````````MP$```````#&`0````````$`4G@)```` -XM````@`D````````!`%+;"0````````X*`````````0!2&`H````````^"@`` -XM``````$`4@T+````````'`L````````!`%*4"P```````,D+`````````0!2 -XM`````````````````````!`!````````=0$````````!`%R5`0```````+\! -XM`````````0!08````````!`%5Y!@`` -XM`````(D&`````````0!5B08```````"D!@````````$`51('````````(P<` -XM```````!`%5G"0```````&\)`````````0!5D`D```````"A"0````````$` -XM5<,)````````SPD````````!`%4`````````````````````$`$````````H -XM`0````````$`5:4!````````Q@$````````!`%6J!````````!P%```````` -XM`0!5"P8````````[!@````````$`53L&````````3P8````````!`%5/!@`` -XM`````'D&`````````0!5G`8```````"D!@````````$`51('````````(P<` -XM```````!`%5G"0```````&\)`````````0!5D`D```````"A"0````````$` -XM5<,)````````SPD````````!`%4`````````````````````P`X```````#- -XM#@````````$`50````````````````````#`#@```````,T.`````````0!4 -XM`````````````````````,`.````````S0X````````!`%$````````````` -XM````````F5D```````L`````@`````` -XM"`````````````````#-#@````````````````````````````!.```````` -XM`*<`````````'`4````````Q!0```````&X$````````A@0````````````` -XM````````````````8P$```````!K`0```````#$'````````.0<```````!P -XM!0````````L&````````<0$```````"5`0`````````````````````````` -XM``!C`0```````&L!````````,0<````````Y!P```````'`%````````"P8` -XM``````!Q`0```````)4!`````````````````````````````),%```````` -XML`4```````#G!0````````L&````````T04```````#6!0`````````````` -XM``````````````!C`0```````&L!````````,0<````````Y!P```````-8% -XM````````YP4```````"P!0```````-$%````````B@4```````"3!0`````` -XM`'$!````````=0$`````````````````````````````L@$```````"W`0`` -XM`````-`+````````L@X```````!!"P```````'0+````````H0D```````#/ -XM"0```````'@)````````D`D```````"0"````````&<)````````!`<````` -XM```7!P```````.4&````````Z@8```````"D!@```````.$&````````/@(` -XM```````!`P`````````````````````````````^`@```````$,"```````` -XM!`<````````7!P```````%D"````````D0(```````!2`@```````%4"```` -XM`````````````````````````+X"````````P@(```````!;#0```````+(. -XM````````K0P````````8#0```````"\,````````G0P```````#0"P`````` -XM``8,````````G@@```````!G"0`````````````````````````````;`P`` -XM`````"H#````````00,```````!7`P```````"\#````````.@,````````` -XM````````````````````5P,```````!:!````````'0+````````T`L````` -XM``#/"0```````$$+````````-@@```````"0"````````#D'````````'@@` -XM``````#U!@````````0'````````8`4```````!P!0```````%X$```````` -XM8P0`````````````````````````````?PL```````"/"P```````*4+```` -XM````NPL```````"4"P```````*`+`````````````````````````````)L$ -XM````````HP0```````!G"0```````&\)````````"P8```````"D!@`````` -XM`*8$````````S`0`````````````````````````````FP0```````"C!``` -XM`````&<)````````;PD````````+!@```````*0&````````I@0```````#, -XM!``````````````````````````````N!@```````$8&````````@`8````` -XM``"D!@```````&<&````````;`8`````````````````````````````FP0` -XM``````"C!````````&<)````````;PD```````!L!@```````(`&```````` -XM1@8```````!G!@```````"4&````````+@8```````"F!````````+`$```` -XM`````````````````````````&]P=&EN9`!O<'1A`!E -XM>&-H86YG90!S:&]R="!I;G0`7V]F9G-E=`!?9FQA9W,`7W=R:71E`'!T:')E -XM860`7U]S=&1E0!?7VUB`!N86UE96YD -XM`&UY7VEN9&5X`'!T:')E861?;75T97@`7W-E96L`<&9O=6YD`%]F:6QE`'!O -XM6UT86(`+G-T5]C -XM;W)R96-T`&]R9&5R:6YG`%]G971O<'1?:6YT97)N86P`;W!T:6YD`&]P=&%R -XM9P!?7V=E=&]P=%]I;FET:6%L:7IE9`!G971E;G8`````_/________\[!`````````(````=````_/________]$!``````` -XM``(````8````^_________]+!`````````(````?````^/________]6!``` -XM``````(````$````#`````````!T!`````````(````$````$`````````#` -XM!`````````(````$````*`````````#(!`````````(````$````)``````` -XM``#Q!`````````(````8````_/________\,!0````````(````8````_/__ -XM______\3!0````````(````$````*``````````D!0````````(````$```` -XM$`````````!!!0````````(````9````_/________]'!0````````(````8 -XM````_/________^G!@````````(````>````_/________^S!@````````(` -XM```$````&P````````#&!@````````(````@````_/_________-!@`````` -XM``H````(````,@````````#7!@````````(````A````_/_________=!@`` -XM``````(````?````_/________\:!P````````(````$````*``````````H -XM!P````````(````$````)`````````!$!P````````H````(````$P`````` -XM``!+!P````````(````@````_/________]5!P````````(````A````_/__ -XM______]````_/_________0!P````````H````) -XM````,`````````# -XM"0````````(````>````_/________\""@````````(````@````_/______ -XM__\'"@````````H````)````J``````````4"@````````(````A````_/__ -XM______\:"@````````(````8````^_________\G"@````````(````$```` -XM"``````````K"@````````L````(````,0`````````Q"@````````(````? -XM````^/________]2"@````````(````9````_/________]?"@````````(` -XM```8````_/________]W"@````````(````>````_/________^)"@`````` -XM``(````@````_/________^."@````````H````)````8`````````"="@`` -XM``````(````A````_/________^D"@````````(````$````#`````````"L -XM"@````````(````=````_/_________`"@````````(````$````#``````` -XM``#)"@````````(````?````_/_________F"@````````(````@````_/__ -XM_______K"@````````H````)``````````````#]"@````````(````A```` -XM_/________\$"P````````(````$````#``````````5"P````````(````@ -XM````_/________\="P````````H````)````B``````````G"P````````(` -XM```A````_/________\X"P````````(````9````_/________]#"P`````` -XM``(````8````_/________]@"P````````(````9````_/________]I"P`` -XM``````(````8````_/________\1#`````````(````8````^_________\9 -XM#`````````(````9````_/________\B#`````````(````$````"``````` -XM``!$#`````````(````9````_/________]-#`````````(````8````_/__ -XM______]F#`````````(````>````_/________]U#`````````(````$```` -XM#`````````!]#`````````(````=````_/________^##`````````(````8 -XM````^_________^4#`````````(````$````#`````````"@#`````````(` -XM```9````^/________^P#`````````(````>````_/_________!#``````` -XM``(````@````_/_________(#`````````H````)````R`````````#2#``` -XM``````(````A````_/_________8#`````````(````?````_/________\+ -XM#0````````(````$````"``````````:#0````````(````>````_/______ -XM__\J#0````````(````@````_/________\Q#0````````H````)````R``` -XM```````[#0````````(````A````_/________](#0````````(````?```` -XM_/________]>#0````````(````8````_/________]H#0````````H````) -XM````\`````````!O#0````````(````@````_/________]]#0````````(` -XM```A````_/________^;#0````````(````>````_/________^M#0`````` -XM``H````)````&`$```````"T#0````````(````@````_/________^^#0`` -XM``````(````A````_/_________%#0````````(````$````#`````````#- -XM#0````````(````=````_/_________=#0````````(````$````#``````` -XM``#M#0````````(````9````_/_________U#0````````(````=````_/__ -XM______\%#@````````(````$````#``````````U#@````````(````8```` -XM_/________].#@````````(````9````_/________]7#@````````(````8 -XM````_/________]H#@````````(````>````_/________][#@````````(` -XM```@````_/________^`#@````````H````)````8`````````"/#@`````` -XM``(````A````_/________^6#@````````(````$````#`````````">#@`` -XM``````(````=````_/________^I#@````````(````$````#`````````#) -XM#@````````(````7````_/________\&``````````H````%```````````` -XM```,``````````H````5````&P$````````1``````````H````5````@0`` -XM```````5``````````$````"```````````````=``````````$````"```` -XMS0X````````E``````````H````'```````````````L``````````H````5 -XM````Q`$````````S``````````H````5````CP$````````Z``````````H` -XM```5````3P````````!!``````````H````5````$`(```````!/```````` -XM``H````5````ZP$```````!4``````````H````5````1`$```````!A```` -XM``````H````5````.P$```````!H``````````H````5````B`(```````!O -XM``````````H````5````F@(```````!V``````````H````5````_P`````` -XM``"```````````H````5````H0(```````"3``````````H````5````?0(` -XM``````">``````````H````5````X0$```````"\``````````H````5```` -XM0P(```````#!``````````H````5````%@````````#,``````````H````5 -XM````90(```````#7``````````H````5````-0````````#C``````````H` -XM```5````-`(```````#Q``````````H````5````'`,````````&`0`````` -XM``H````5````(@,````````Z`0````````H````5````80````````!(`0`` -XM``````H````5````X@(```````!D`0````````H````5````.@(```````!R -XM`0````````H````5````+`(```````"``0````````H````5````?@$````` -XM``".`0````````H````5````L`$```````"<`0````````H````5````U0(` -XM``````"J`0````````H````5````:`````````#B`0````````H````5```` -XM%@,```````#P`0````````H````5````P@`````````,`@````````H````5 -XM````8P$````````;`@````````H````5````60`````````J`@````````H` -XM```5````/``````````Y`@````````H````5````(@````````!(`@`````` -XM``H````5````]0````````!7`@````````H````5````"0,```````!F`@`` -XM``````H````5````!0$````````=`P````````H````5````QP(````````I -XM`P````````H````5````;P`````````U`P````````H````5````!`,````` -XM``!``P````````H````5````T`````````!,`P````````H````5````B@$` -XM``````!:`P````````H````5````$P$```````!H`P````````H````5```` -XM^`(```````"3`P````````H````5````YP````````"9`P````````H````5 -XM````#@````````"?`P````````H````5````50(```````"F`P````````H` -XM```5````O@(```````#.`P````````H````5````G0$```````#@`P`````` -XM``H````5````M@$```````#L`P````````H````5````A0$```````#X`P`` -XM``````H````5````^`$````````0!`````````H````5````1@`````````> -XM!`````````H````5````A0$````````J!`````````H````5````X``````` -XM```V!`````````H````5````;`(```````"6!`````````H````5````T`$` -XM``````"B!`````````$````"``````````````"J!`````````$````"```` -XML@X```````"R!`````````H````1``````````````"[!`````````H````5 -XM````M@$```````#&!`````````H````1````L0````````#+!`````````H` -XM```5````A0$```````#6!`````````H````1````Z0````````#;!``````` -XM``H````5````^`$```````#F!`````````H````1````(0$```````#K!``` -XM``````H````5````(P(```````#V!`````````H````1````<0(```````#[ -XM!`````````H````5````R``````````&!0````````H````1````J0(````` -XM```+!0````````H````5````!0````````H````1````S@@```````#I!0````````H````4```` -XMD`(```````#N!0````````H````5````M@(```````#Y!0````````H````1 -XM````*@D````````'!@````````H````1````OPD````````,!@````````H` -XM```5````VP(````````7!@````````H````1````00H````````!@````````H````4``````,` -XM``````!N!@````````H````1````=`P```````!Y!@````````H````4```` -XM0`,```````""!@````````H````5````M@(```````"-!@````````H````1 -XM````+PT```````";!@````````H````1````]`X```````"@!@````````H` -XM```5````VP(```````"K!@````````H````1````KP\```````"P!@`````` -XM``H````5````O`````````"\!@````````H````5````;`$```````#'!@`` -XM``````H````1````?!````````#,!@````````H````5````NP$```````#7 -XM!@````````H````1````21$```````#!P````````$````$````$`````````#G!P`````` -XM``H````5````+`````````#S!P````````$````$````&`````````#\!P`` -XM``````H````5````Z`(````````("`````````$````$````(``````````1 -XM"`````````H````5````2`(````````="`````````$````$````*``````` -XM```F"`````````H````5````<@$````````R"`````````$````$````+``` -XM```````["`````````H````5````=P````````!."`````````H````5```` -XM!P````````!;"`````````$````9``````````````!D"`````````H````5 -XM``````````````!Q"`````````$````8``````````````!Z"`````````H` -XM```5`````@(```````"'"`````````$````>``````````````"0"``````` -XM``H````5````_0(```````"="`````````$````?``````````````"F"``` -XM``````H````5````3@$```````"S"`````````$````:``````````````"] -XM``````````$````"```````````````<``````````H````/```````````` -XM```@``````````$````"``````````````!<``````````H````/```````` -XM``````!@``````````$````"````P`X````````@``````````H````"```` -XM``````````!8``````````H````"````P`X````````&``````````H````& -XM```````````````&``````````H````&```````````````0``````````$` -X.```"```````````````` -X` -Xend -e91f2be53ccef7c31a70c80e46567ff3 -echo x - ./kmkmissing.a.ar-script.gnu.uu -sed 's/^X//' >./kmkmissing.a.ar-script.gnu.uu << '88a4bce8c229186f85a9fbea1abe4663' -Xbegin 644 ./kmkmissing.a.ar-script.gnu -XM0U)%051%(&MM:VUI./electric.o.uu << '4c9616b2b1efe66bd65b3a3736cfd629' -Xbegin 644 ./electric.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````.`````` -XM`````````$```````$``"P`(```6`````@`0`````0'[#@H``0$!`0````$` -XM``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT -XM86(`+G-T'0`+F1A=&$`+F)S`0````````,```` -XM`````````````````0`````````````````````````````````````````` -XM``````````$````$`/'_```````````````````````````#``$````````` -XM```````````````````#``(````````````````````````````#``,````` -XM```````````````````````#``0````````````````````````````#``4` -XM```````````````````````````#``8````````````````````````````# -X?``<```````````````````````!E;&5C=')I8RYC```` -X` -Xend -4c9616b2b1efe66bd65b3a3736cfd629 -echo x - ./kmkmissing.a.ar-script.bsd.uu -sed 's/^X//' >./kmkmissing.a.ar-script.bsd.uu << 'fa712d1134c6f057fe43287b8ef97632' -Xbegin 644 ./kmkmissing.a.ar-script.bsd -XM0U)%051%(&MM:VUI /dev/null 2>&1 -echo x - ./liba.script.gnu.uu -sed 's/^X//' >./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM9&ER96-T;W)Y(&QI8F$N80IO<&5N(&QI8F$N80ID:7)E8W1O2!L:6)A+F$@*&$T+F\@83(N;RD@ -XA;W5T<'5T+F1A=`IE>'1R86-T(&$S+F\@830N;PIE;F0* -X` -Xend -ab91cf74d50fd10bcd49f7bc6f94d47a -echo x - ./liba.script.bsd.uu -sed 's/^X//' >./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM9&ER96-T;W)Y(&QI8F$N80IO<&5N(&QI8F$N80ID:7)E8W1O2!L:6)A+F$@*&$R+F\@830N;RD@ -XA;W5T<'5T+F1A=`IE>'1R86-T(&$S+F\@830N;PIE;F0* -X` -Xend -4ca6d98e1563a067085e73394a418d6c -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M /dev/null 2>&1 -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM9&ER96-T;W)Y(&QI8F$N80IO<&5N(&QI8F$N80ID:7)E8W1O2!L:6)A+F$@*&$T+F\@83(N;RD@ -XA;W5T<'5T+F1A=`IE>'1R86-T(&$S+F\@830N;PIE;F0* -X` -Xend -ab91cf74d50fd10bcd49f7bc6f94d47a -echo x - ./liba.script.bsd.uu -sed 's/^X//' >./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM9&ER96-T;W)Y(&QI8F$N80IO<&5N(&QI8F$N80ID:7)E8W1O2!L:6)A+F$@*&$R+F\@830N;RD@ -XA;W5T<'5T+F1A=`IE>'1R86-T(&$S+F\@830N;PIE;F0* -X` -Xend -4ca6d98e1563a067085e73394a418d6c -echo x - ./output.dat.uu -sed 's/^X//' >./output.dat.uu << '2effc3599ede8bc4735d57657edbd110' -Xbegin 644 ./output.dat -X*83(N;PIA-"YO"@`` -X` -Xend -2effc3599ede8bc4735d57657edbd110 -echo x - ./a4.o.uu -sed 's/^X//' >./a4.o.uu << 'deb5d4d127ac38de8c0d1ea9ac8c5730' -Xbegin 644 ./a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M./a3.o.uu << '3fff05c17767873ca1d611a677ec9310' -Xbegin 644 ./a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -3fff05c17767873ca1d611a677ec9310 -echo x - ./a2.o.uu -sed 's/^X//' >./a2.o.uu << '231e338f0580059987136ed236efeb57' -Xbegin 644 ./a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)S /dev/null 2>&1 -echo x - ./liba.script.gnu.uu -sed 's/^X//' >./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)A+F$*97AT./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM;W!E;B!L:6)A+F$*97AT./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M /dev/null 2>&1 -echo x - ./libb.a.uu -sed 's/^X//' >./libb.a.uu << '88795142510a1228862de7a09856d8a1' -Xbegin 644 ./libb.a -XM(3QA0!A,RYO+R`@("`@("`@("`@,3(R,34P-C`P-"`@,3`P,2`@,"`@ -XM("`@,3`P-C0T("`W-C@@("`@("`@8`I_14Q&`0$!"0```````````0`#``$` -XM`````````````-0`````````-```````*``)``8`````````````````58GE -XMQP4``````0```,<%``````(```"+%0````"+10B)P2G1B6UT86(`+G-T./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)A+F$*97AT./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM;W!E;B!L:6)A+F$*97AT./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA````'@```/T```#]``` -XM`_1M0``83(N;R\@("`@("`@("`@ -XM(#$R,C$U,#8P,#0@(#$P,#$@(#`@("`@(#$P,#8T-"`@.#,R("`@("`@(&`* -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)S7'!0`````!````QP4``````@```(L5`````(M%"(G! -XM*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@ -XM(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G`````0@````` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -echo x - ./a3.o.uu -sed 's/^X//' >./a3.o.uu << '3fff05c17767873ca1d611a677ec9310' -Xbegin 644 ./a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -3fff05c17767873ca1d611a677ec9310 -echo x - ./a2.o.uu -sed 's/^X//' >./a2.o.uu << '231e338f0580059987136ed236efeb57' -Xbegin 644 ./a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)S /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71M./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)L;VYG+F$*861D;&EB(&QI8F$N82`H83$N;R!A,BYO(&$S+F\@ -XM830N;RD*./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM;W!E;B!L:6)A+F$*861D;&EB(&QI8FQO;F./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA8``!5B```5 -XM8@``%6(``!B>```8G@``&)YS=6UM=6P`80!M0!M`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`````%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#6UT86(`+G-T`!Y``4````! -XM!P``#P````$(```9`````0<``"<````!"```830N;R\@("`@("`@("`@(#$Q -XM.30U,#DS-#D@(#$P,#$@(#`@("`@(#$P,#8T-"`@.#@X("`@("`@(&`*?T5, -XM1@$!`0D```````````$``P`!``````````````#T`````````#0``````"@` -XM"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0````` -XMZ/S____)PVUE'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````" -XM`````````'@````5```````````````!`````````#@````!```````````` -XM``"-````)@```````````````0`````````1`````P``````````````LP`` -XM`$$```````````````$``````````0````(``````````````(0"``"P```` -XM"0````<````$````$`````D````#```````````````T`P``(0`````````` -XM`````0```````````````````````````````0``````````````!`#Q_P`` -XM``````````````,``0`````````````````#``,``````````````````P`$ -XM``````````````````,`!0`````````````````#``8`!@`````````)```` -XM$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````````` -XM````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$`+F)S -XM6#[`C'1"0$`````,<$)``` -XM``#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4```````````````$` -XM````````.`````$``````````````(T````F```````````````!```````` -XM`!$````#``````````````"S````00```````````````0`````````!```` -XM`@``````````````A`(``+`````)````!P````0````0````"0````,````` -XM`````````#0#```A```````````````!```````````````````````````` -XM```!```````````````$`/'_`````````````````P`!```````````````` -XM``,``P`````````````````#``0``````````````````P`%```````````` -XM``````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`````` -XM````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)L;VYG+F$*861D;&EB(&QI8F$N82`H83$N;R!A,BYO(&$S+F\@ -XM830N;RD*./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM;W!E;B!L:6)A+F$*861D;&EB(&QI8FQO;F./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA```'W@``"QH```L:```+&@``#LX```[.```1T@``$=(``!'2```5 -XM#@``%0X``!4.`!Y`&US -XM9S$`;7-G,@!O=71P=71M'0`+F1A=&$`+F)S7'!0`````!````QP4``````@`` -XM`(L5`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR -XM+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G -XM`````0@``"\R-R`@("`@("`@("`@("`Q,3DT-S6# -XM[!C'1"0(`````,=$)`0`````QP0D`````.C\____R<-M97-S86=E,0!M97-S -XM86=E,@```&US9S$@/2`E6UT86(`+G-T`````@H``&$Q+F\O("`@("`@("`@("`Q,3DT-3`Y,S0Y("`Q,#`Q("`P -XM("`@("`Q,#`V-#0@(#7'!0`````%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#6UT86(`+G-T6UT86(`+G-T````!4```````````````$`````````.`````$` -XM`````````````(T````F```````````````!`````````!$````#```````` -XM``````"S````00```````````````0`````````!`````@`````````````` -XMA`(``+`````)````!P````0````0````"0````,``````````````#0#```A -XM```````````````!```````````````````````````````!```````````` -XM```$`/'_`````````````````P`!``````````````````,``P`````````` -XM```````#``0``````````````````P`%``````````````````,`!@`&```` -XM``````D````1``,`"P````D````)````$0`#`!``````````)````!(``0`: -XM```````````````0`````&$T+F,`;7-G,0!M /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71M./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)L;VYG+F$*861D;&EB(&QI8F$N82`H83$N;R!A,BYO(&$S+F\@ -XM830N;RD*./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM;W!E;B!L:6)A+F$*861D;&EB(&QI8FQO;F./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QAL```'K```"N@```KH```*Z```#IP```Z<```2&```$A@``!(8'0`+F1A=&$`+F)S -XM6#[`C'1"0$`````,<$)``` -XM``#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4```````````````$` -XM````````.`````$``````````````(T````F```````````````!```````` -XM`!$````#``````````````"S````00```````````````0`````````!```` -XM`@``````````````A`(``+`````)````!P````0````0````"0````,````` -XM`````````#0#```A```````````````!```````````````````````````` -XM```!```````````````$`/'_`````````````````P`!```````````````` -XM``,``P`````````````````#``0``````````````````P`%```````````` -XM``````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`````` -XM````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M'0`+F1A=&$`+F)S`````````````````````0` -XM````````,`````$````"`````````'@````5```````````````!```````` -XM`#@````!``````````````"-````)@```````````````0`````````1```` -XM`P``````````````LP```$$```````````````$``````````0````(````` -XM`````````(0"``"P````"0````<````$````$`````D````#```````````` -XM```T`P``(0```````````````0```````````````````````````````0`` -XM````````````!`#Q_P````````````````,``0`````````````````#``,` -XM`````````````````P`$``````````````````,`!0`````````````````# -XM``8`!@`````````)````$0`#``L````)````"0```!$``P`0`````````"0` -XM```2``$`&@``````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M -XM./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)L;VYG+F$*861D;&EB(&QI8F$N82`H83$N;R!A,BYO(&$S+F\@ -XM830N;RD*./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XM;W!E;B!L:6)A+F$*861D;&EB(&QI8FQO;F./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA`!Y``4````!!P``#P````$(```9```` -XM`0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S``` -XM``````````````````0`````````,`````$````"`````````'@````5```` -XM```````````!`````````#@````!``````````````"-````)@`````````` -XM`````0`````````1`````P``````````````LP```$$```````````````$` -XM`````````0````(``````````````(0"``"P````"0````<````$````$``` -XM``D````#```````````````T`P``(0```````````````0`````````````` -XM`````````````````0``````````````!`#Q_P````````````````,``0`` -XM```````````````#``,``````````````````P`$``````````````````,` -XM!0`````````````````#``8`!@`````````)````$0`#``L````)````"0`` -XM`!$``P`0`````````"0````2``$`&@``````````````$`````!A-"YC`&US -XM9S$`;7-G,@!O=71P=71M'0`+F1A=&$`+F)S6#[!C'1"0(`````,=$)`0`````QP0D`````.C\____ -XMR<-M97-S86=E,0!M97-S86=E,@```&US9S$@/2`E6UT86(` -XM+G-T`````@H````` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.err b/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.eval b/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.out b/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.sh b/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.sh deleted file mode 100755 index 8a247e94..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-8/arscript-8.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest arscript-8 tc/arscript-8 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} -M < liba.script.bsd" work true -rundiff false -runcmd "plugin/teraser -c -t arscript-8 liblong.a" work false -runcmd "plugin/ardiff -cnlt arscript-8 ${RLTDIR}/liba.a liblong.a" work false diff --git a/contrib/elftoolchain/test/ar/tc/arscript-8/in/arscript-8.in.shar b/contrib/elftoolchain/test/ar/tc/arscript-8/in/arscript-8.in.shar deleted file mode 100644 index 297c3ec0..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-8/in/arscript-8.in.shar +++ /dev/null @@ -1,248 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./liblong.a.uu -# ./liba.script.gnu.uu -# ./liba.script.bsd.uu -# ./liba.a.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71M./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)A+F$*861D;&EB(&QI8FQO;F./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XF;W!E;B!L:6)L;VYG+F$*861D;&EB(&QI8F$N80IS879E"F5N9`H` -X` -Xend -4ca6d98e1563a067085e73394a418d6c -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA0``83$N;R\@("`@ -XM("`@("`@(#$Q.30U,#DS-#D@(#$P,#$@(#`@("`@(#$P,#8T-"`@-S$R("`@ -XM("`@(&`*?T5,1@$!`0D```````````$``P`!``````````````#````````` -XM`#0``````"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@! -XMPJ$`````#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A -XM=&$`+F)S6#[`C'1"0$```` -XM`,<$)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T -XM6UT86(`+G-T````!4````````` -XM``````$`````````.`````$``````````````(T````F```````````````! -XM`````````!$````#``````````````"S````00```````````````0`````` -XM```!`````@``````````````A`(``+`````)````!P````0````0````"0`` -XM``,``````````````#0#```A```````````````!```````````````````` -XM```````````!```````````````$`/'_`````````````````P`!```````` -XM``````````,``P`````````````````#``0``````````````````P`%```` -XM``````````````,`!@`&``````````D````1``,`"P````D````)````$0`# -XM`!``````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M -XM`!Y``4````!!P``#P`` -X5``$(```9`````0<``"<````!"``` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/arscript-8/out/arscript-8.out.shar b/contrib/elftoolchain/test/ar/tc/arscript-8/out/arscript-8.out.shar deleted file mode 100644 index abcf8031..00000000 --- a/contrib/elftoolchain/test/ar/tc/arscript-8/out/arscript-8.out.shar +++ /dev/null @@ -1,329 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./liblong.a.uu -# ./liba.script.gnu.uu -# ./liba.script.bsd.uu -# ./liba.a.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71M./liba.script.gnu.uu << 'ab91cf74d50fd10bcd49f7bc6f94d47a' -Xbegin 644 ./liba.script.gnu -XM;W!E;B!L:6)A+F$*861D;&EB(&QI8FQO;F./liba.script.bsd.uu << '4ca6d98e1563a067085e73394a418d6c' -Xbegin 644 ./liba.script.bsd -XF;W!E;B!L:6)L;VYG+F$*861D;&EB(&QI8F$N80IS879E"F5N9`H` -X` -Xend -4ca6d98e1563a067085e73394a418d6c -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA```+7@``#Q(```\2```2%@``$A8``!62```5 -XMD@``%9(``!C.```8S@``&,X``!R"```<@@``'_X``!_^```?_G-U;6UU;`!A -XM`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M -XM0``+R\@ -XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ -XM-#8@("`@("`@(&`*83%?:&%S7V%?;&]N9U]F:6QE7VYA;64N;R\*831?:7-? -XM,39?;&]N9U\N;R\*"B\P("`@("`@("`@("`@("`Q,3DT-S7'!0`````%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-T`!Y``4` -XM```!!P``#P````$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@ -XM(#$Q.30W-S'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!M`!Y``4````!!P``#P````$( -X2```9`````0<``"<````!"``` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.err b/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.eval b/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.out b/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.sh b/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.sh deleted file mode 100644 index 5a87de5d..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/bsd-archive-liba32.sh +++ /dev/null @@ -1,10 +0,0 @@ -# $Id$ -if ! uname -m | grep -q 64; then - inittest bsd-archive-liba32 tc/bsd-archive-liba32 - extshar ${TESTDIR} - extshar ${RLTDIR} - runcmd "${AR} cru --flavor bsd liba.a a1.o a2.o a3.o a4.o" work true - rundiff false - runcmd "plugin/teraser -c -t bsd-archive-liba32 liba.a" work false - runcmd "plugin/ardiff -cnlt bsd-archive-liba32 ${RLTDIR}/liba.a liba.a" work false -fi diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/in/bsd-archive-liba32.in.shar b/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/in/bsd-archive-liba32.in.shar deleted file mode 100644 index 6ac4bef2..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-liba32/in/bsd-archive-liba32.in.shar +++ /dev/null @@ -1,114 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./a4.o.uu -# ./a3.o.uu -# ./a2.o.uu -# ./a1.o.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./a4.o.uu -sed 's/^X//' >./a4.o.uu << 'deb5d4d127ac38de8c0d1ea9ac8c5730' -Xbegin 644 ./a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M./a3.o.uu << '3fff05c17767873ca1d611a677ec9310' -Xbegin 644 ./a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -3fff05c17767873ca1d611a677ec9310 -echo x - ./a2.o.uu -sed 's/^X//' >./a2.o.uu << '231e338f0580059987136ed236efeb57' -Xbegin 644 ./a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)S./a1.o.uu << '56a3926c746858fb21a06cfcde8816f4' -Xbegin 644 ./a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XM /dev/null 2>&1 -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA'0`+F1A=&$`+F)S7'!0`````!````QP4``````@```(L5 -XM`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@ -XM,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G```` -XM`0@``&$T+F\@("`@("`@("`@("`Q,CDS,C$Q,SDU("`Q,#`Q("`P("`@("`Q -XM,#`V-#0@(#@X."`@("`@("!@"G]%3$8!`0$)```````````!``,``0`````` -XM````````]``````````T```````H``H`!P````````````````!5B>6#[!C' -XM1"0(`````,=$)`0`````QP0D`````.C\____R<-M97-S86=E,0!M97-S86=E -XM,@```&US9S$@/2`E6UT86(`+G-T -X'`````@H````` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -echo x - ./a4.o.uu -sed 's/^X//' >./a4.o.uu << 'deb5d4d127ac38de8c0d1ea9ac8c5730' -Xbegin 644 ./a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M./a3.o.uu << '3fff05c17767873ca1d611a677ec9310' -Xbegin 644 ./a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -3fff05c17767873ca1d611a677ec9310 -echo x - ./a2.o.uu -sed 's/^X//' >./a2.o.uu << '231e338f0580059987136ed236efeb57' -Xbegin 644 ./a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)S./a1.o.uu << '56a3926c746858fb21a06cfcde8816f4' -Xbegin 644 ./a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XM /dev/null 2>&1 -echo x - ./ne4_very_very_very_long.uu -sed 's/^X//' >./ne4_very_very_very_long.uu << '38e9cb51d72527a87fe0e0e66470b9e5' -Xbegin 644 ./ne4_very_very_very_long -XM1T='1T='1T='1T='2$A(2$A(2$A(2$A(2$A(2$A("DI*2DI*2DI*2DI*2DI* -X12DI*2DI*2DI*2DI*2DI*2@H` -X` -Xend -38e9cb51d72527a87fe0e0e66470b9e5 -echo x - ./ne3_long_name_16.uu -sed 's/^X//' >./ne3_long_name_16.uu << 'b1fdd644021ba83d965d875119c22965' -Xbegin 644 ./ne3_long_name_16 -X)145%149&1D8* -X` -Xend -b1fdd644021ba83d965d875119c22965 -echo x - ./ne2_long_name15.uu -sed 's/^X//' >./ne2_long_name15.uu << '6b25863a7f0f9097fe6d88ce7adbcd9b' -Xbegin 644 ./ne2_long_name15 -X)0T-#0T1$1$0* -X` -Xend -6b25863a7f0f9097fe6d88ce7adbcd9b -echo x - ./ne1.uu -sed 's/^X//' >./ne1.uu << '27d76f04a0fca7543fae879698386b4c' -Xbegin 644 ./ne1 -X-04%!04%!0D)"0D)""@`` -X` -Xend -27d76f04a0fca7543fae879698386b4c -exit - diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/out/bsd-archive-liblong.out.shar b/contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/out/bsd-archive-liblong.out.shar deleted file mode 100644 index 6721385a..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-liblong/out/bsd-archive-liblong.out.shar +++ /dev/null @@ -1,62 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./ne4_very_very_very_long.uu -# ./ne3_long_name_16.uu -# ./ne2_long_name15.uu -# ./ne1.uu -# ./liblong.a.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./ne4_very_very_very_long.uu -sed 's/^X//' >./ne4_very_very_very_long.uu << '38e9cb51d72527a87fe0e0e66470b9e5' -Xbegin 644 ./ne4_very_very_very_long -XM1T='1T='1T='1T='2$A(2$A(2$A(2$A(2$A(2$A("DI*2DI*2DI*2DI*2DI* -X12DI*2DI*2DI*2DI*2DI*2@H` -X` -Xend -38e9cb51d72527a87fe0e0e66470b9e5 -echo x - ./ne3_long_name_16.uu -sed 's/^X//' >./ne3_long_name_16.uu << 'b1fdd644021ba83d965d875119c22965' -Xbegin 644 ./ne3_long_name_16 -X)145%149&1D8* -X` -Xend -b1fdd644021ba83d965d875119c22965 -echo x - ./ne2_long_name15.uu -sed 's/^X//' >./ne2_long_name15.uu << '6b25863a7f0f9097fe6d88ce7adbcd9b' -Xbegin 644 ./ne2_long_name15 -X)0T-#0T1$1$0* -X` -Xend -6b25863a7f0f9097fe6d88ce7adbcd9b -echo x - ./ne1.uu -sed 's/^X//' >./ne1.uu << '27d76f04a0fca7543fae879698386b4c' -Xbegin 644 ./ne1 -X-04%!04%!0D)"0D)""@`` -X` -Xend -27d76f04a0fca7543fae879698386b4c -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA5]V97)Y7VQO;F='1T='1T='1T=' -XM1T=(2$A(2$A(2$A(2$A(2$A(2$@*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI* -X(2DI*2DI*"@H` -X` -Xend -1413ebc840040523373ed6a077bf0d85 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.err b/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.eval b/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.out b/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.sh b/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.sh deleted file mode 100755 index 874c5c4a..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/bsd-archive-libnonelf.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest bsd-archive-libnonelf tc/bsd-archive-libnonelf -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} cruF bsd libnonelf.a ne1 ne2 ne3 ne4" work true -rundiff false -runcmd "plugin/teraser -c -t bsd-archive-libnonelf libnonelf.a" work false -runcmd "plugin/ardiff -cnlt bsd-archive-libnonelf ${RLTDIR}/libnonelf.a libnonelf.a" work false diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/in/bsd-archive-libnonelf.in.shar b/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/in/bsd-archive-libnonelf.in.shar deleted file mode 100644 index 4208fdcc..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/in/bsd-archive-libnonelf.in.shar +++ /dev/null @@ -1,46 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./ne4.uu -# ./ne3.uu -# ./ne2.uu -# ./ne1.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./ne4.uu -sed 's/^X//' >./ne4.uu << '44ca5310aca07067daa8d5304194531f' -Xbegin 644 ./ne4 -XM1T='1T='1T='1T='2$A(2$A(2$A(2$A(2$A(2$A("DI*2DI*2DI*2DI*2DI* -X12DI*2DI*2DI*2DI*2DI*2@H` -X` -Xend -44ca5310aca07067daa8d5304194531f -echo x - ./ne3.uu -sed 's/^X//' >./ne3.uu << 'b840d8f043d79804f9edcd5a741a9f42' -Xbegin 644 ./ne3 -X)145%149&1D8* -X` -Xend -b840d8f043d79804f9edcd5a741a9f42 -echo x - ./ne2.uu -sed 's/^X//' >./ne2.uu << 'c343785f5b3ea9d2019b9db76eafd76c' -Xbegin 644 ./ne2 -X)0T-#0T1$1$0* -X` -Xend -c343785f5b3ea9d2019b9db76eafd76c -echo x - ./ne1.uu -sed 's/^X//' >./ne1.uu << '27d76f04a0fca7543fae879698386b4c' -Xbegin 644 ./ne1 -X-04%!04%!0D)"0D)""@`` -X` -Xend -27d76f04a0fca7543fae879698386b4c -exit - diff --git a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/out/bsd-archive-libnonelf.out.shar b/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/out/bsd-archive-libnonelf.out.shar deleted file mode 100644 index 1077b6d0..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-archive-libnonelf/out/bsd-archive-libnonelf.out.shar +++ /dev/null @@ -1,61 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./ne4.uu -# ./ne3.uu -# ./ne2.uu -# ./ne1.uu -# ./libnonelf.a.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./ne4.uu -sed 's/^X//' >./ne4.uu << '44ca5310aca07067daa8d5304194531f' -Xbegin 644 ./ne4 -XM1T='1T='1T='1T='2$A(2$A(2$A(2$A(2$A(2$A("DI*2DI*2DI*2DI*2DI* -X12DI*2DI*2DI*2DI*2DI*2@H` -X` -Xend -44ca5310aca07067daa8d5304194531f -echo x - ./ne3.uu -sed 's/^X//' >./ne3.uu << 'b840d8f043d79804f9edcd5a741a9f42' -Xbegin 644 ./ne3 -X)145%149&1D8* -X` -Xend -b840d8f043d79804f9edcd5a741a9f42 -echo x - ./ne2.uu -sed 's/^X//' >./ne2.uu << 'c343785f5b3ea9d2019b9db76eafd76c' -Xbegin 644 ./ne2 -X)0T-#0T1$1$0* -X` -Xend -c343785f5b3ea9d2019b9db76eafd76c -echo x - ./ne1.uu -sed 's/^X//' >./ne1.uu << '27d76f04a0fca7543fae879698386b4c' -Xbegin 644 ./ne1 -X-04%!04%!0D)"0D)""@`` -X` -Xend -27d76f04a0fca7543fae879698386b4c -echo x - ./libnonelf.a.uu -sed 's/^X//' >./libnonelf.a.uu << 'ce608b040c1ac44e7f22a4d700718c2b' -Xbegin 644 ./libnonelf.a -XM(3QA /dev/null 2>&1 -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA'0`+F1A=&$`+F)S7'!0`````!````QP4``````@```(L5 -XM`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@ -XM,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G```` -XM`0@``&$T+F\@("`@("`@("`@("`Q,CDS,C$Q,SDU("`Q,#`Q("`P("`@("`Q -XM,#`V-#0@(#@X."`@("`@("!@"G]%3$8!`0$)```````````!``,``0`````` -XM````````]``````````T```````H``H`!P````````````````!5B>6#[!C' -XM1"0(`````,=$)`0`````QP0D`````.C\____R<-M97-S86=E,0!M97-S86=E -XM,@```&US9S$@/2`E6UT86(`+G-T -X'`````@H````` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/out/bsd-extract-liba32-v.out.shar b/contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/out/bsd-extract-liba32-v.out.shar deleted file mode 100644 index 79ae7648..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-extract-liba32-v/out/bsd-extract-liba32-v.out.shar +++ /dev/null @@ -1,203 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./liba.a.uu -# ./a4.o.uu -# ./a3.o.uu -# ./a2.o.uu -# ./a1.o.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./liba.a.uu -sed 's/^X//' >./liba.a.uu << 'a786d1a9b733e5206b0b9bedb49c8298' -Xbegin 644 ./liba.a -XM(3QA'0`+F1A=&$`+F)S7'!0`````!````QP4``````@```(L5 -XM`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@ -XM,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G```` -XM`0@``&$T+F\@("`@("`@("`@("`Q,CDS,C$Q,SDU("`Q,#`Q("`P("`@("`Q -XM,#`V-#0@(#@X."`@("`@("!@"G]%3$8!`0$)```````````!``,``0`````` -XM````````]``````````T```````H``H`!P````````````````!5B>6#[!C' -XM1"0(`````,=$)`0`````QP0D`````.C\____R<-M97-S86=E,0!M97-S86=E -XM,@```&US9S$@/2`E6UT86(`+G-T -X'`````@H````` -X` -Xend -a786d1a9b733e5206b0b9bedb49c8298 -echo x - ./a4.o.uu -sed 's/^X//' >./a4.o.uu << 'deb5d4d127ac38de8c0d1ea9ac8c5730' -Xbegin 644 ./a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M./a3.o.uu << '3fff05c17767873ca1d611a677ec9310' -Xbegin 644 ./a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -3fff05c17767873ca1d611a677ec9310 -echo x - ./a2.o.uu -sed 's/^X//' >./a2.o.uu << '231e338f0580059987136ed236efeb57' -Xbegin 644 ./a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)S./a1.o.uu << '56a3926c746858fb21a06cfcde8816f4' -Xbegin 644 ./a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XM /dev/null 2>&1 -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA5]V97)Y7VQO;F='1T='1T='1T=' -XM1T=(2$A(2$A(2$A(2$A(2$A(2$@*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI* -X(2DI*2DI*"@H` -X` -Xend -1413ebc840040523373ed6a077bf0d85 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/out/bsd-extract-liblong-v.out.shar b/contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/out/bsd-extract-liblong-v.out.shar deleted file mode 100644 index 6721385a..00000000 --- a/contrib/elftoolchain/test/ar/tc/bsd-extract-liblong-v/out/bsd-extract-liblong-v.out.shar +++ /dev/null @@ -1,62 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# . -# ./ne4_very_very_very_long.uu -# ./ne3_long_name_16.uu -# ./ne2_long_name15.uu -# ./ne1.uu -# ./liblong.a.uu -# -echo c - . -mkdir -p . > /dev/null 2>&1 -echo x - ./ne4_very_very_very_long.uu -sed 's/^X//' >./ne4_very_very_very_long.uu << '38e9cb51d72527a87fe0e0e66470b9e5' -Xbegin 644 ./ne4_very_very_very_long -XM1T='1T='1T='1T='2$A(2$A(2$A(2$A(2$A(2$A("DI*2DI*2DI*2DI*2DI* -X12DI*2DI*2DI*2DI*2DI*2@H` -X` -Xend -38e9cb51d72527a87fe0e0e66470b9e5 -echo x - ./ne3_long_name_16.uu -sed 's/^X//' >./ne3_long_name_16.uu << 'b1fdd644021ba83d965d875119c22965' -Xbegin 644 ./ne3_long_name_16 -X)145%149&1D8* -X` -Xend -b1fdd644021ba83d965d875119c22965 -echo x - ./ne2_long_name15.uu -sed 's/^X//' >./ne2_long_name15.uu << '6b25863a7f0f9097fe6d88ce7adbcd9b' -Xbegin 644 ./ne2_long_name15 -X)0T-#0T1$1$0* -X` -Xend -6b25863a7f0f9097fe6d88ce7adbcd9b -echo x - ./ne1.uu -sed 's/^X//' >./ne1.uu << '27d76f04a0fca7543fae879698386b4c' -Xbegin 644 ./ne1 -X-04%!04%!0D)"0D)""@`` -X` -Xend -27d76f04a0fca7543fae879698386b4c -echo x - ./liblong.a.uu -sed 's/^X//' >./liblong.a.uu << '1413ebc840040523373ed6a077bf0d85' -Xbegin 644 ./liblong.a -XM(3QA5]V97)Y7VQO;F='1T='1T='1T=' -XM1T=(2$A(2$A(2$A(2$A(2$A(2$@*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI* -X(2DI*2DI*"@H` -X` -Xend -1413ebc840040523373ed6a077bf0d85 -exit - diff --git a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.err b/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.eval b/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.out b/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.out deleted file mode 100644 index edf5a64f..00000000 --- a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.out +++ /dev/null @@ -1 +0,0 @@ -m - ./a1.o diff --git a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.sh b/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.sh deleted file mode 100644 index 89f3919d..00000000 --- a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/compbase-liba-v.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest compbase-liba-v tc/compbase-liba-v -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} mv liba.a ./a1.o" work true -runcmd "plugin/teraser -ce -t compbase-liba-v liba.a" work false -runcmd "plugin/teraser -e liba.a" result false -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/in/compbase-liba-v.in.shar b/contrib/elftoolchain/test/ar/tc/compbase-liba-v/in/compbase-liba-v.in.shar deleted file mode 100644 index eacc1e4b..00000000 --- a/contrib/elftoolchain/test/ar/tc/compbase-liba-v/in/compbase-liba-v.in.shar +++ /dev/null @@ -1,98 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# liba.a.uu -# -echo x - liba.a.uu -sed 's/^X//' >liba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$`+F)S7'!0`````!````QP4``````@```(L5`````(M% -XM"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W -XM,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G`````0@``&$T -XM+F\O("`@("`@("`@("`Q,3DT-3`Y,S0Y("`Q,#`Q("`P("`@("`Q,#`V-#0@ -XM(#@X."`@("`@("!@"G]%3$8!`0$)```````````!``,``0`````````````` -XM]``````````T```````H``H`!P````````````````!5B>6#[!C'1"0(```` -XM`,=$)`0`````QP0D`````.C\____R<-M97-S86=E,0!M97-S86=E,@```&US -XM9S$@/2`E6UT86(`+G-T`````@H` -XM`&$Q+F\O("`@("`@("`@("`Q,3DT-3`Y,S0Y("`Q,#`Q("`P("`@("`Q,#`V -XM-#0@(#7'!0`````% -XM````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

6UT86(`+G-Tliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA'0`+F1A=&$`+F)S6#[!C'1"0(`````,=$)`0`````QP0D```` -XM`.C\____R<-M97-S86=E,0!M97-S86=E,@```&US9S$@/2`E6UT86(`+G-T`````@H````` -X` -Xend -END-of-liba.a.uu -exit - diff --git a/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.err b/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.eval b/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.out b/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.sh b/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.sh deleted file mode 100644 index e0627649..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-liblong/delete-liblong.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest delete-liblong tc/delete-liblong -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} d liblong.a a2_is_15_long.o a4_is_16_long_.o" work true -runcmd "plugin/teraser -ce -t delete-liblong liblong.a" work false -runcmd "plugin/teraser -e liblong.a" result false -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/delete-liblong/in/delete-liblong.in.shar b/contrib/elftoolchain/test/ar/tc/delete-liblong/in/delete-liblong.in.shar deleted file mode 100644 index 7f1222bc..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-liblong/in/delete-liblong.in.shar +++ /dev/null @@ -1,100 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# liblong.a.uu -# -echo x - liblong.a.uu -sed 's/^X//' >liblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA`!Y```O+R`@("`@("`@("`@("`@("`@ -XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`R."`@("`@("`@8`IA,5]H -XM87-?85]L;VYG7V9I;&5?;F%M92YO+PH*+S`@("`@("`@("`@("`@(#$Q.30W -XM-S'0`+F1A=&$`+F)S7'!0`````!````QP4``````@```(L5 -XM`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@ -XM,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0````$'```G```` -X$`0@````` -X` -Xend -END-of-liblong.a.uu -exit - diff --git a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.err b/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.eval b/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.out b/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.out deleted file mode 100644 index 9b74e4fc..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.out +++ /dev/null @@ -1 +0,0 @@ -d - a2_non_elf.o diff --git a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.sh b/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.sh deleted file mode 100644 index b5762f11..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/delete-libmix-v.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest delete-libmix-v tc/delete-libmix-v -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} dv libmix.a a2_non_elf.o" work true -runcmd "plugin/teraser -ce -t delete-libmix-v libmix.a" work false -runcmd "plugin/teraser -e libmix.a" result false -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/in/delete-libmix-v.in.shar b/contrib/elftoolchain/test/ar/tc/delete-libmix-v/in/delete-libmix-v.in.shar deleted file mode 100644 index 162e705c..00000000 --- a/contrib/elftoolchain/test/ar/tc/delete-libmix-v/in/delete-libmix-v.in.shar +++ /dev/null @@ -1,66 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# libmix.a.uu -# -echo x - libmix.a.uu -sed 's/^X//' >libmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S````!4```````````````$````````` -XM.`````$``````````````(T````F```````````````!`````````!$````# -XM``````````````"S````00```````````````0`````````!`````@`````` -XM````````A`(``+`````)````!P````0````0````"0````,````````````` -XM`#0#```A```````````````!```````````````````````````````!```` -XM```````````$`/'_`````````````````P`!``````````````````,``P`` -XM```````````````#``0``````````````````P`%``````````````````,` -XM!@`&``````````D````1``,`"P````D````)````$0`#`!``````````)``` -XM`!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -X((3QAliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1_has_a_long_file_name.o.uu << 'END-of-a1_has_a_long_file_name.o.uu' -Xbegin 644 a1_has_a_long_file_name.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2_is_15_long.o.uu << 'END-of-a2_is_15_long.o.uu' -Xbegin 644 a2_is_15_long.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3_normal.o.uu << 'END-of-a3_normal.o.uu' -Xbegin 644 a3_normal.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3_normal.o.uu -echo x - a4_is_16_long_.o.uu -sed 's/^X//' >a4_is_16_long_.o.uu << 'END-of-a4_is_16_long_.o.uu' -Xbegin 644 a4_is_16_long_.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1_has_a_long_file_name.o.uu << 'END-of-a1_has_a_long_file_name.o.uu' -Xbegin 644 a1_has_a_long_file_name.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2_non_elf.o.uu << 'END-of-a2_non_elf.o.uu' -Xbegin 644 a2_non_elf.o -X6,3(S-#4V-V%B8V1E9F=H:6IK;&UN"@`` -X` -Xend -END-of-a2_non_elf.o.uu -echo x - a3_non_elf_with_a_long_file_name.o.uu -sed 's/^X//' >a3_non_elf_with_a_long_file_name.o.uu << 'END-of-a3_non_elf_with_a_long_file_name.o.uu' -Xbegin 644 a3_non_elf_with_a_long_file_name.o -XM,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3(R,C(R,C(R,C(R,C(R,C(R,C(R,C,S,S,S -X8,S,S,S,S,S,S,S,S-34U-34U-34U-34* -X` -Xend -END-of-a3_non_elf_with_a_long_file_name.o.uu -echo x - a4_is_16_long_.o.uu -sed 's/^X//' >a4_is_16_long_.o.uu << 'END-of-a4_is_16_long_.o.uu' -Xbegin 644 a4_is_16_long_.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibnonelf.a.uu << 'END-of-libnonelf.a.uu' -Xbegin 644 libnonelf.a -XM(3QAa1_ne.o.uu << 'END-of-a1_ne.o.uu' -Xbegin 644 a1_ne.o -X/,3(S-#4V-V%B8V1E9F<* -X` -Xend -END-of-a1_ne.o.uu -echo x - a2_ne.o.uu -sed 's/^X//' >a2_ne.o.uu << 'END-of-a2_ne.o.uu' -Xbegin 644 a2_ne.o -XM9F9F9F9F9F9F9F9F9F9F:&AH:&AH:&AH:&AH:&AH:&AH:VMK:VMK:VMK:VMK -X7:VMK:VMK;&QL;&QL;&QL;&QL;&QL;`H` -X` -Xend -END-of-a2_ne.o.uu -echo x - a3_non_elf_has_a_long_name.o.uu -sed 's/^X//' >a3_non_elf_has_a_long_name.o.uu << 'END-of-a3_non_elf_has_a_long_name.o.uu' -Xbegin 644 a3_non_elf_has_a_long_name.o -XM9F9F9F9F9F9O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]E965E965E965E965E -X&965E964* -X` -Xend -END-of-a3_non_elf_has_a_long_name.o.uu -echo x - libnonelf.a.uu -sed 's/^X//' >libnonelf.a.uu << 'END-of-libnonelf.a.uu' -Xbegin 644 libnonelf.a -XM(3QA. -# Source directory was '/home/jkoshy/Work/Elftoolchain/trunk/test/ar/tc/extract-nonexistent/in'. -# -# Existing files will *not* be overwritten, unless '-c' is specified. -# -# This shar contains: -# length mode name -# ------ ---------- ------------------------------------------ -# 80 -rw-rw-r-- valid.a -# -if test "X$1" = "X-c" -then keep_file='' -else keep_file=true -fi -echo=echo -shar_tty= -shar_n= -shar_c='\n' -if test ! -d ${lock_dir} ; then : -else ${echo} "lock directory ${lock_dir} exists" - exit 1 -fi -if mkdir ${lock_dir} ; then : -else ${echo} "failed to create ${lock_dir} lock directory" - exit 1 -fi -# ============= valid.a ============== -if test -n "${keep_file}" && test -f 'valid.a' -then -${echo} "x - SKIPPING valid.a (file already exists)" - -else -${echo} "x - extracting valid.a (text)" - sed 's/^X//' << 'SHAR_EOF' > 'valid.a' && -X! -Xs1/ 0 0 0 644 12 ` -Xs1-contents -SHAR_EOF -: -if test $? -ne 0 -then ${echo} "restore of valid.a failed" -fi -fi -if rm -fr ${lock_dir} -then ${echo} "x - removed lock directory ${lock_dir}." -else ${echo} "x - failed to remove lock directory ${lock_dir}." - exit 1 -fi -exit 0 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonexistent/out/valid.shar b/contrib/elftoolchain/test/ar/tc/extract-nonexistent/out/valid.shar deleted file mode 100644 index b5a569ea..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonexistent/out/valid.shar +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# This is a shell archive (produced by GNU sharutils 4.15.2). -# To extract the files from this archive, save it to some FILE, remove -# everything before the '#!/bin/sh' line above, then type 'sh FILE'. -# -lock_dir=_sh05539 -# Made on 2018-09-30 19:46 BST by . -# Source directory was '/home/jkoshy/Work/Elftoolchain/trunk/test/ar/tc/extract-nonexistent/in'. -# -# Existing files will *not* be overwritten, unless '-c' is specified. -# -# This shar contains: -# length mode name -# ------ ---------- ------------------------------------------ -# 80 -rw-rw-r-- valid.a -# -if test "X$1" = "X-c" -then keep_file='' -else keep_file=true -fi -echo=echo -shar_tty= -shar_n= -shar_c='\n' -if test ! -d ${lock_dir} ; then : -else ${echo} "lock directory ${lock_dir} exists" - exit 1 -fi -if mkdir ${lock_dir} ; then : -else ${echo} "failed to create ${lock_dir} lock directory" - exit 1 -fi -# ============= valid.a ============== -if test -n "${keep_file}" && test -f 'valid.a' -then -${echo} "x - SKIPPING valid.a (file already exists)" - -else -${echo} "x - extracting valid.a (text)" - sed 's/^X//' << 'SHAR_EOF' > 'valid.a' && -X! -Xs1/ 0 0 0 644 12 ` -Xs1-contents -SHAR_EOF -: -if test $? -ne 0 -then ${echo} "restore of valid.a failed" -fi -fi -if rm -fr ${lock_dir} -then ${echo} "x - removed lock directory ${lock_dir}." -else ${echo} "x - failed to remove lock directory ${lock_dir}." - exit 1 -fi -exit 0 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.err b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.err deleted file mode 100644 index 4d22e623..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.err +++ /dev/null @@ -1 +0,0 @@ -ar: warning: ignoring entry: a/s1 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.eval b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.out b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.out deleted file mode 100644 index d4fb851e..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.out +++ /dev/null @@ -1 +0,0 @@ -x - s1 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.sh b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.sh deleted file mode 100644 index 67183386..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/extract-nonleaf.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest extract-nonleaf tc/extract-nonleaf -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} xv invalid.a" work true -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/in/invalid.shar b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/in/invalid.shar deleted file mode 100644 index 7e718a81..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/in/invalid.shar +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# This is invalid, a shell archive (produced by GNU sharutils 4.15.2). -# To extract the files from this archive, save it to some FILE, remove -# everything before the '#!/bin/sh' line above, then type 'sh FILE'. -# -lock_dir=_sh29263 -# Existing files will *not* be overwritten, unless '-c' is specified. -# -# This shar contains: -# length mode name -# ------ ---------- ------------------------------------------ -# 152 -rw-rw-r-- invalid.a -# -if test "X$1" = "X-c" -then keep_file='' -else keep_file=true -fi -echo=echo -shar_tty= -shar_n= -shar_c='\n' -if test ! -d ${lock_dir} ; then : -else ${echo} "lock directory ${lock_dir} exists" - exit 1 -fi -if mkdir ${lock_dir} ; then : -else ${echo} "failed to create ${lock_dir} lock directory" - exit 1 -fi -# ============= invalid.a ============== -if test -n "${keep_file}" && test -f 'invalid.a' -then -${echo} "x - SKIPPING invalid.a (file already exists)" - -else -${echo} "x - extracting invalid.a (text)" - sed 's/^X//' << 'SHAR_EOF' > 'invalid.a' && -X! -Xa/s1/ 0 0 0 644 12 ` -Xs1-contents -Xs1/ 0 0 0 644 12 ` -Xs1-contents -SHAR_EOF -: -if test $? -ne 0 -then ${echo} "restore of invalid.a failed" -fi -fi -if rm -fr ${lock_dir} -then ${echo} "x - removed lock directory ${lock_dir}." -else ${echo} "x - failed to remove lock directory ${lock_dir}." - exit 1 -fi -exit 0 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/invalid.shar b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/invalid.shar deleted file mode 100644 index 7e718a81..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/invalid.shar +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -# This is invalid, a shell archive (produced by GNU sharutils 4.15.2). -# To extract the files from this archive, save it to some FILE, remove -# everything before the '#!/bin/sh' line above, then type 'sh FILE'. -# -lock_dir=_sh29263 -# Existing files will *not* be overwritten, unless '-c' is specified. -# -# This shar contains: -# length mode name -# ------ ---------- ------------------------------------------ -# 152 -rw-rw-r-- invalid.a -# -if test "X$1" = "X-c" -then keep_file='' -else keep_file=true -fi -echo=echo -shar_tty= -shar_n= -shar_c='\n' -if test ! -d ${lock_dir} ; then : -else ${echo} "lock directory ${lock_dir} exists" - exit 1 -fi -if mkdir ${lock_dir} ; then : -else ${echo} "failed to create ${lock_dir} lock directory" - exit 1 -fi -# ============= invalid.a ============== -if test -n "${keep_file}" && test -f 'invalid.a' -then -${echo} "x - SKIPPING invalid.a (file already exists)" - -else -${echo} "x - extracting invalid.a (text)" - sed 's/^X//' << 'SHAR_EOF' > 'invalid.a' && -X! -Xa/s1/ 0 0 0 644 12 ` -Xs1-contents -Xs1/ 0 0 0 644 12 ` -Xs1-contents -SHAR_EOF -: -if test $? -ne 0 -then ${echo} "restore of invalid.a failed" -fi -fi -if rm -fr ${lock_dir} -then ${echo} "x - removed lock directory ${lock_dir}." -else ${echo} "x - failed to remove lock directory ${lock_dir}." - exit 1 -fi -exit 0 diff --git a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/s1 b/contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/s1 deleted file mode 100644 index c77eb94d..00000000 --- a/contrib/elftoolchain/test/ar/tc/extract-nonleaf/out/s1 +++ /dev/null @@ -1 +0,0 @@ -s1-contents diff --git a/contrib/elftoolchain/test/ar/tc/list-lib65536/in/list-lib65536.in.shar b/contrib/elftoolchain/test/ar/tc/list-lib65536/in/list-lib65536.in.shar deleted file mode 100644 index 2ca60138..00000000 --- a/contrib/elftoolchain/test/ar/tc/list-lib65536/in/list-lib65536.in.shar +++ /dev/null @@ -1,2669 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# lib65536.a.uu -# -echo x - lib65536.a.uu -sed 's/^X//' >lib65536.a.uu << 'END-of-lib65536.a.uu' -Xbegin 644 lib65536.a -XM(3QAlib65536.a.uu << 'END-of-lib65536.a.uu' -Xbegin 644 lib65536.a -XM(3QAliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71MlibaS.a.uu << 'END-of-libaS.a.uu' -Xbegin 644 libaS.a -XM(3QA'0`+F1A -XM=&$`+F)S7' -XM!0`````!````QP4``````@```(L5`````(M%"(G!*=&)RJ$`````B=$IP8G( -XM7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<` -XM``\````!"```&0````$'```G`````0@``&$T+F\O("`@("`@("`@("`Q,C`Q -XM.3$Y,#$P("`Q,#`Q("`P("`@("`Q,#`V-#0@(#@X."`@("`@("!@"G]%3$8! -XM`0$)```````````!``,``0``````````````]``````````T```````H``H` -XM!P````````````````!5B>6#[!C'1"0(`````,=$)`0`````QP0D`````.C\ -XM____R<-M97-S86=E,0!M97-S86=E,@```&US9S$@/2`E6UT -XM86(`+G-T`````@H````` -X` -Xend -END-of-libaS.a.uu -exit - diff --git a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.err b/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.eval b/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.out b/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.out deleted file mode 100644 index 36a925a8..00000000 --- a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.out +++ /dev/null @@ -1,4 +0,0 @@ -a1.o -a2.o -a3.o -a4.o diff --git a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.sh b/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.sh deleted file mode 100644 index 71429742..00000000 --- a/contrib/elftoolchain/test/ar/tc/list_s-libaS/list_s-libaS.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest list_s-libaS tc/list_s-libaS -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} ts libaS.a" work true -runcmd "plugin/teraser -ce -t list_s-libaS libaS.a" work false -runcmd "plugin/teraser -e libaS.a" result false -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/list_s-libaS/out/list_s-libaS.out.shar b/contrib/elftoolchain/test/ar/tc/list_s-libaS/out/list_s-libaS.out.shar deleted file mode 100644 index e8e7962a..00000000 --- a/contrib/elftoolchain/test/ar/tc/list_s-libaS/out/list_s-libaS.out.shar +++ /dev/null @@ -1,98 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# libaS.a.uu -# -echo x - libaS.a.uu -sed 's/^X//' >libaS.a.uu << 'END-of-libaS.a.uu' -Xbegin 644 libaS.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T````!4```````````````$`````````.`````$````` -XM`````````(T````F```````````````!`````````!$````#```````````` -XM``"S````00```````````````0`````````!`````@``````````````A`(` -XM`+`````)````!P````0````0````"0````,``````````````#0#```A```` -XM```````````!```````````````````````````````!```````````````$ -XM`/'_`````````````````P`!``````````````````,``P`````````````` -XM```#``0``````````````````P`%``````````````````,`!@`&```````` -XM``D````1``,`"P````D````)````$0`#`!``````````)````!(``0`:```` -XM```````````0`````&$T+F,`;7-G,0!M6UT86(`+G-Tlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S````!4```````````````$````````` -XM.`````$``````````````(T````F```````````````!`````````!$````# -XM``````````````"S````00```````````````0`````````!`````@`````` -XM````````A`(``+`````)````!P````0````0````"0````,````````````` -XM`#0#```A```````````````!```````````````````````````````!```` -XM```````````$`/'_`````````````````P`!``````````````````,``P`` -XM```````````````#``0``````````````````P`%``````````````````,` -XM!@`&``````````D````1``,`"P````D````)````$0`#`!``````````)``` -XM`!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA'0`+F1A=&$` -XM+F)S7'!0`````!````QP4` -XM`````@```(L5`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=. -XM52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S0`%`````0<```\````!"```&0`` -XM``$'```G`````0@``&$T+F\O("`@("`@("`@("`Q,3DT-3`Y,S0Y("`Q,#`Q -XM("`P("`@("`Q,#`V-#0@(#@X."`@("`@("!@"G]%3$8!`0$)```````````! -XM``,``0``````````````]``````````T```````H``H`!P`````````````` -XM``!5B>6#[!C'1"0(`````,=$)`0`````QP0D`````.C\____R<-M97-S86=E -XM,0!M97-S86=E,@```&US9S$@/2`E6UT86(`+G-T`````@H``&$R+F\O("`@("`@("`@("`Q,3DT-3`Y,S0Y("`Q -XM,#`Q("`P("`@("`Q,#`V-#0@(#@S,B`@("`@("!@"G]%3$8!`0$)```````` -XM```!``,``0``````````````W``````````T```````H``H`!P`````````` -XM``````!5B>6#[`C'1"0$`````,<$)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-Tliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M'0`+F1A -XM=&$`+F)S6#[`C'1"0$```` -XM`,<$)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T -XM6UT86(`+G-Tlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA0!S=6UM=6P`80!M'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71M`!Y``4````!!P``#P````$(```9`````0<` -XM`"<````!"```83$N;R\@("`@("`@("`@(#$Q.30U,#DS-#D@(#$P,#$@(#`@ -XM("`@(#$P,#8T-"`@-S$R("`@("`@(&`*?T5,1@$!`0D```````````$``P`! -XM``````````````#``````````#0``````"@`"0`&`````````````````%6) -XMY<<%``````4```"+10R+50@!PJ$`````#Z_"7<,``$=#0SH@*$=.52D@-"XR -XM+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S6#[`C'1"0$`````,<$)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-Tlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA````!4```````````````$`````````.`````$````````````` -XM`(T````F```````````````!`````````!$````#``````````````"S```` -XM00```````````````0`````````!`````@``````````````A`(``+`````) -XM````!P````0````0````"0````,``````````````#0#```A```````````` -XM```!```````````````````````````````!```````````````$`/'_```` -XM`````````````P`!``````````````````,``P`````````````````#``0` -XM`````````````````P`%``````````````````,`!@`&``````````D````1 -XM``,`"P````D````)````$0`#`!``````````)````!(``0`:```````````` -XM```0`````&$T+F,`;7-G,0!Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71MQSG5BUJ4#Pco95!Q9KIq``+%PYe;N_3OexKyqP!eZ)U!oO$^wn?6mD? z?W~*6O=Tx%Tqm2eJ;%zQOeAg&pFe9D##$ATp<0z80{Dw)oY6d~)~eN!CS)U}PYbI! zWLF+uUmj^UUd>Ul@yV;vd8N(`4)&YLa~DQ>%#4+`Qf9ih_h|3Y)N#|ie74{?XD$wn zDrNaMyucm<4+=owz9^2Us>aM&vSAC&uNbK!i?{d+n>UiI-yO` zU>A7R85lorQHpbG(73)0tsSj9l3T$^S9QPC(T;QwjrPmg^};6Z_p6ZiqY24e2Nbdw z=kB5%=O7}nBgfUNl!R~#67NDE@P2$3-x}ZVG3+)%CnWocEIh7nQ(r5hC;v5rD92Br zEZzxMwIX>WE{sVhJh1_sR%{*WTSeI^Yh3w7&nvph4%5v*P_|*7JTYLWvon4+by#P4 zQ@Q;CYe|yZ2_5B7#~!(T`%C-6P?x^$LR%M=pMO*;l{fR#j_c+Rnb-3LcYW6;Z(TNKfn!N)_`o#ujwWDjyVlT$8)N8mi0Sm*uf;bT4gvJ-PcvY*Jp zh%NIP`Z3<8Cv5q8oYFI1ioUm#z1m&$my`7^}TI_jQdi{^r zk3QZsqDDCSh!>i$VNUVcjc`<3$^;*^IBH}kIKmN{Xx9ur9>A`d`Z0ia+=uOQ_2V7v zw&)v#9p7A!;`)`qhv0!RVg557^dTGTM`w+!>^@yj#_*eAj|Xa2-O#@YU`_hs=}2hOp`1Rsg9CK%%dQ_tC%uoxkuk-REj46YS_tw~`~LINliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.uu << 'END-of-liblong.a.uu' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71M3pLeyAUGgjQ3OAxQ(ZMZwzNM%+k2&_bu}*a}HgG81f96%-)^ z!L@Ge&YglAm$qG0#ZAGb3paubH;PLkp7UmII}M46P(d%exu19EeeS(y?ko*o88Hl_ zNd;u6h%!V0e;vpv&10%b?G7wH8!LQX-$jv+;&4lGENZMS)6n{Sb$m^!(ZRufGd6m4 ztlLakNh@I{vm)i3wBndw1o5?tH9`~t_PQs1%lG9&;Oq|Yf8EK zOeUXJwqI@rl5!aH>_iCJVrfOcmlrxz7UYCK`wi8Dh=f+IQJ&5 zdA>?mXhB?#Vopfb6J2=Nz7trGb;%<@hG2uSZ-WJer-`{GRt^L@na;7D1XfU`YCd;+ z&f64jVV>_2FZ_-e_+}G74G2Un{Ct2PN$^v(4=@;hM_|Z{hxk%)I9gcg-YC3VrdHVK zUMal!$9qE$Pa04)+?oS5I%afO|ZG zZ>`?&9)1V)3H%4|T#3T=oxp?CKXbx*XFeE14)%ujGF{m{x>ro%7s8(M)Ph>nzbCAF z_BI0-JwgusOrY1Q{~z!prSvlf95L%#r29t)`UiukD)*6$geSn6FfX#3 zKuY@3|Ik-Dx32DgbD)?1J6*^3(}bNN`5iu{G0z+dF|VX@d@T6p&8PSYKKQ{Q(NBMO zwC3+kvAnN5gsmPNy@cNY7YIn|n_Twf)O{!~z-#rD6ykD;libmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71MP5Y`((^1?RZrkdD^Qt!ira})qOA2 zfp0gin&zX~n{$R?^r;MnDkwu7@cYazB|M_~)PXFL(!%qP+xuy<+n7DPvCwO5zGR^P z_2%N1QuEW(m#vZcTMHMglI_}#nMC0#! z(0b8^Grs^PmXdy_V;yl3jrD)3E21WU?o05`qX{H8fPjp}+%vRE8X2UHjHP!l0_QP2 zu7zj7^>JU^Yks^}sOv{eAmfQIoR9aYFKvmFe||yq^E1$w(@B3-z~hm7;hhZPB#wYt z#WtY6wv~456&1CDpjB5oeQpLWyDFSt;daC5Zj9}KbCtYWN1@b;v)Z`cnZdNY%km&VvbZ%;m- z*q#~UMJjM|l-oT+bU%G>x7#1K0zZm$#dlO@xJU(2#j&nf!;uNgO|AbW&SoQ3>fegA zn?{p;ac{uyG{Jm)TE$Xg!8INPhoJ>E3^9D@q^1H1+#NiqZO~UVwh^JSqtMbYfUr*m(Kg;_uwQM L|4C=S`;hzrm@K;y diff --git a/contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.sh b/contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.sh deleted file mode 100644 index 0a6fc92f..00000000 --- a/contrib/elftoolchain/test/ar/tc/print-libmix-v/print-libmix-v.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest print-libmix-v tc/print-libmix-v -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} pv libmix.a" work true -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/print-libmix/in/print-libmix.in.shar b/contrib/elftoolchain/test/ar/tc/print-libmix/in/print-libmix.in.shar deleted file mode 100644 index 162e705c..00000000 --- a/contrib/elftoolchain/test/ar/tc/print-libmix/in/print-libmix.in.shar +++ /dev/null @@ -1,66 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# libmix.a.uu -# -echo x - libmix.a.uu -sed 's/^X//' >libmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mlibmix.a.uu << 'END-of-libmix.a.uu' -Xbegin 644 libmix.a -XM(3QA'0` -XM+F1A=&$`+F)S'0`+F1A=&$` -XM+F)S`````````````````````0`````````,``` -XM``$````"`````````'@````5```````````````!`````````#@````!```` -XM``````````"-````)@```````````````0`````````1`````P`````````` -XM````LP```$$```````````````$``````````0````(``````````````(0" -XM``"P````"0````<````$````$`````D````#```````````````T`P``(0`` -XM`````````````0```````````````````````````````0`````````````` -XM!`#Q_P````````````````,``0`````````````````#``,````````````` -XM`````P`$``````````````````,`!0`````````````````#``8`!@`````` -XM```)````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`` -XM````````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mxo#E~?p7|FCCjmF(Q?A&hGMO_p(|E32*g@$`o7l)`JIE| z0@}DQUHwh?%qdPJ&N*=RFyOx*5@GEKjK9yqhG7#)oBGZgV{wJlW!eyZEIPAw(qy=;>OR-z@?l*ooqXk zrKziBx4OLIt=87oA3m!4jhy{EoI#lE$5aowt$if&9ZMioBDv_X#5sX| zgUIh4`fd%Fk8|laS$>A#EtqoSpAxQbko-zGmy4(=(reNjIi3F(@=MR1ff!YeT<;hJ zdlXDxW4+fra+K>?up+9tCCHU8n1dtDcDT_F;mSs9y%DamHwQCt>AYV`_zW5UM$UtW GQ2YrC&zG(M diff --git a/contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.sh b/contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.sh deleted file mode 100644 index 4ab333aa..00000000 --- a/contrib/elftoolchain/test/ar/tc/print-libmix/print-libmix.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest print-libmix tc/print-libmix -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${AR} p libmix.a" work true -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/quickadd-liba-v/in/quickadd-liba-v.in.shar b/contrib/elftoolchain/test/ar/tc/quickadd-liba-v/in/quickadd-liba-v.in.shar deleted file mode 100644 index ca8547d8..00000000 --- a/contrib/elftoolchain/test/ar/tc/quickadd-liba-v/in/quickadd-liba-v.in.shar +++ /dev/null @@ -1,111 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# a1.o.uu -# a2.o.uu -# a3.o.uu -# a4.o.uu -# -echo x - a1.o.uu -sed 's/^X//' >a1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Ma1.o.uu << 'END-of-a1.o.uu' -Xbegin 644 a1.o -XM?T5,1@$!`0D```````````$``P`!``````````````#``````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````4```"+10R+50@!PJ$````` -XM#Z_"7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&'0`+F1A=&$`+F)S -XMa2.o.uu << 'END-of-a2.o.uu' -Xbegin 644 a2.o -XM?T5,1@$!`0D```````````$``P`!``````````````#<`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L",=$)`0`````QP0D`````.C\____ -XMR<-H96QL;RP@=V]R;&0`````;7-G.B`E'0`+F1A=&$`+F)Sa3.o.uu << 'END-of-a3.o.uu' -Xbegin 644 a3.o -XM?T5,1@$!`0D```````````$``P`!``````````````#4`````````#0````` -XM`"@`"0`&`````````````````%6)Y<<%``````$```#'!0`````"````BQ4` -XM````BT4(B<$IT8G*H0````")T2G!B`!Y``4````!!P``#P````$(```9`````0<``"<````! -X#"``` -X` -Xend -END-of-a3.o.uu -echo x - a4.o.uu -sed 's/^X//' >a4.o.uu << 'END-of-a4.o.uu' -Xbegin 644 a4.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&,=$)`@`````QT0D!`````#'!"0` -XM````Z/S____)PVUE'0`+F1A=&$`+F)S -XM`````````````````````0`````````,`````$` -XM```"`````````'@````5```````````````!`````````#@````!```````` -XM``````"-````)@```````````````0`````````1`````P`````````````` -XMLP```$$```````````````$``````````0````(``````````````(0"``"P -XM````"0````<````$````$`````D````#```````````````T`P``(0`````` -XM`````````0```````````````````````````````0``````````````!`#Q -XM_P````````````````,``0`````````````````#``,````````````````` -XM`P`$``````````````````,`!0`````````````````#``8`!@`````````) -XM````$0`#``L````)````"0```!$``P`0`````````"0````2``$`&@`````` -XM````````$`````!A-"YC`&US9S$`;7-G,@!O=71P=71Mliba.a.uu << 'END-of-liba.a.uu' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Msbrk.o.uu << 'END-of-sbrk.o.uu' -Xbegin 644 sbrk.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`(M,)`2A`````(7)=!@!1"0$N!$```#-@'(,H0`````!#0````## -XMZ?S___\`````````````)$9R965"4T0Z('-R8R]L:6(O;&EB8R]I,S@V+W-Y -XM7,Olibsbrk.a.uu << 'END-of-libsbrk.a.uu' -Xbegin 644 libsbrk.a -XM(3QA7,O'`@)```+G-Y;71A8@`N'0`+G)E;"YD871A`"YB7-C86QL+F@` -XM+W5S7,O8V1E9G,N -XM:``\8V]M;6%N9"!L:6YE/@`\8G5I;'0M:6X^`&)A8VL`97)R`%]E;F0`+FUI -XM;F)R:P`N8W5R8G)K`'-Bsbrk.o.uu << 'END-of-sbrk.o.uu' -Xbegin 644 sbrk.o -XM?T5,1@$!`0D```````````$``P`!``````````````#T`````````#0````` -XM`"@`"@`'`(M,)`2A`````(7)=!@!1"0$N!$```#-@'(,H0`````!#0````## -XMZ?S___\`````````````)$9R965"4T0Z('-R8R]L:6(O;&EB8R]I,S@V+W-Y -XM7,O [options] archive file... - Manage archives. - - Where is one of: - -d Delete members from the archive. - -m Move archive members within the archive. - -p Write the contents of members to standard output. - -q Append files to an archive. - -r Replace (add) files to an archive. - -s Add an archive symbol to an archive. - -t List files in an archive. - -x Extract members from an archive. - -M Execute MRI librarian commands. - -V Print a version identifier and exit. - - Options: - -a MEMBER Add members after the specified member. - -b MEMBER | -i MEMBER - Add members before the specified member. - -c Do not print a message when creating a new archive. - -f | -T Only use the first fifteen characters of the member name. - -j (This option is accepted, but is ignored). - -l (This option is accepted, but is ignored). - -o Preserve modification times when extracting members. - -u Conditionally update or extract members. - -v Be verbose. - -z (This option is accepted, but is ignored). - -C Do not overwrite existing files in the file system. - -D Use fixed metadata, for consistent archive checksums. - -F FORMAT | --flavor=FORMAT - Create archives with the specified format. - -S Do not generate an archive symbol table. - -U Use original metadata for archive members. diff --git a/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.eval b/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.eval deleted file mode 100644 index d00491fd..00000000 --- a/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.eval +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.out b/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.sh b/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.sh deleted file mode 100644 index 81750b76..00000000 --- a/contrib/elftoolchain/test/ar/tc/usage-bi/usage-bi.sh +++ /dev/null @@ -1,4 +0,0 @@ -# $Id$ -inittest usage-bi tc/usage-bi -runcmd "${AR} bi bar.o foo.a bar2.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.err b/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.err deleted file mode 100644 index fe88f76c..00000000 --- a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.err +++ /dev/null @@ -1 +0,0 @@ -ar: fatal: Can't specify both -x and -t diff --git a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.eval b/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.eval deleted file mode 100644 index d00491fd..00000000 --- a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.eval +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.out b/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.sh b/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.sh deleted file mode 100644 index a1227018..00000000 --- a/contrib/elftoolchain/test/ar/tc/usage-tx/usage-tx.sh +++ /dev/null @@ -1,4 +0,0 @@ -# $Id$ -inittest usage-tx tc/usage-tx -runcmd "${AR} tx foo.a" work true -rundiff true diff --git a/contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/in/weaksymbol-libweak.in.shar b/contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/in/weaksymbol-libweak.in.shar deleted file mode 100644 index ec75b775..00000000 --- a/contrib/elftoolchain/test/ar/tc/weaksymbol-libweak/in/weaksymbol-libweak.in.shar +++ /dev/null @@ -1,40 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# quotactl.o.uu -# -echo x - quotactl.o.uu -sed 's/^X//' >quotactl.o.uu << 'END-of-quotactl.o.uu' -Xbegin 644 quotactl.o -XM?T5,1@$!`0D```````````$``P`!``````````````!X`````````#0````` -XM`"@`"``%`.G\____C78`N)0```#-@'+OPP```"YS>6UT86(`+G-T7,O8V1E9G,N:``O=7-R+V]B -XM:B]U7,Olibweak.a.uu << 'END-of-libweak.a.uu' -Xbegin 644 libweak.a -XM(3QA7-? -XM<75O=&%C=&P`<75O=&%C=&P`7W%U;W1A8W1L`'%U;W1A8W1L+F\O("`@("`Q -XM,3DX.#`T,#8S("`Q,#`Q("`P("`@("`Q,#`V-#0@(#$P,38@("`@("!@"G]% -XM3$8!`0$)```````````!``,``0``````````````>``````````T```````H -XM``@`!0#I_/___XUV`+B4````S8!R[\,````N7-?<75O=&%C=&P`<75O -X8=&%C=&P`7W%U;W1A8W1L``$````"$``` -X` -Xend -END-of-libweak.a.uu -echo x - quotactl.o.uu -sed 's/^X//' >quotactl.o.uu << 'END-of-quotactl.o.uu' -Xbegin 644 quotactl.o -XM?T5,1@$!`0D```````````$``P`!``````````````!X`````````#0````` -XM`"@`"``%`.G\____C78`N)0```#-@'+OPP```"YS>6UT86(`+G-T7,O8V1E9G,N:``O=7-R+V]B -XM:B]U7,O ${OPATH}/${1}/$TC.${1}.shar - elif [ "${USE_UUENCODE}" = yes ]; then - cp -R ${WORKDIR}.uu.${1}/* ${OPATH}/${1} - else - cp -R ${WORKDIR}/* ${OPATH}/${1} - fi - fi -} - -THISDIR=`/bin/pwd` - -# Check the command line options. -# -while getopts "nsui:o:c:g:" COMMAND_LINE_ARGUMENT ; do - case "${COMMAND_LINE_ARGUMENT}" in - n) - NODIFFRLT=yes; - ;; - s) - USE_SHAR=yes; - USE_UUENCODE=yes; - ;; - u) - USE_UUENCODE=yes; - ;; - i) - IPATH=${OPTARG} - ;; - o) - OPATH=${OPTARG} - ;; - g) - GCMD=${OPTARG} - ;; - c) - RCMD=${OPTARG} - ;; - *) - usage - exit 1 - ;; - esac -done - -if [ $# -ne $OPTIND ]; then - usage - exit 1 -fi -eval TC=$"{${OPTIND}}" - -if [ -z "${OPATH}" ]; then - OPATH=${TC}; -fi -mkdir -p ${OPATH} || exit 1 - -if [ -z "${RCMD}" ]; then - RCMD=":" -fi - -if [ -z "${GCMD}" ]; then - GCMD=${RCMD} -fi - -# Convert to absolute pathnames. -# -if [ -n "${IPATH}" ]; then - IPATH=`cd ${IPATH} 2>/dev/null && /bin/pwd \ - || echo "can't locate ${IPATH}" && exit 1` -fi - -ROPATH=${OPATH} # backup relative opath for later use. -OPATH=`cd ${OPATH} 2>/dev/null && /bin/pwd \ - || echo "can't locate ${OPATH}" && exit 1` - -# Prefix $GCMD with absolute pathnames. -# -executable=`echo ${GCMD} | cut -f 1 -d ' '` -relapath=`dirname ${executable}` -cd ${THISDIR} -absolpath=`cd ${relapath} && /bin/pwd` -GCMD=${absolpath}/`basename ${executable}`" "`echo ${GCMD} | cut -f 2- -d ' '` - -# Set up temporary directories. -# -WORKDIR=/tmp/bsdar-tcgen-work -rm -rf ${WORKDIR} -rm -rf ${WORKDIR}.uu.in -rm -rf ${WORKDIR}.uu.out -mkdir -p ${WORKDIR} || exit 1 -mkdir -p ${WORKDIR}.uu.in || exit 1 # Keep encoded input files -mkdir -p ${WORKDIR}.uu.out || exit 1 # Keep encoded output files - -if [ -n "${IPATH}" ]; then - cp -R ${IPATH}/* ${WORKDIR} 2>/dev/null -fi - -# Keep a record of input state. -# -recstate "in" - -# Execute the cmd, record stdout, stderr and exit value. -# -redirin=`echo ${GCMD} | cut -f 2- -d '<'` -if [ "${redirin}" != "${GCMD}" ]; then - GCMD=`echo ${GCMD} | cut -f 1 -d '<'` - redirin=`echo ${redirin} | sed 's/^ *\(.*\) *$/\1/'` -fi - -cd ${WORKDIR} || exit 1 -if [ "${redirin}" != "${GCMD}" ]; then - ${GCMD} < ${redirin} > ${OPATH}/$TC.out 2> ${OPATH}/$TC.err -else - ${GCMD} > ${OPATH}/$TC.out 2> ${OPATH}/$TC.err -fi -echo $? > ${OPATH}/$TC.eval - -# Keep a record of output state. -# -recstate "out" - -# Generate test script. -# -echo "inittest ${TC} ${ROPATH}" > ${OPATH}/${TC}.sh -if [ "${USE_SHAR}" = yes ]; then - echo 'extshar ${TESTDIR}' >> ${OPATH}/${TC}.sh - echo 'extshar ${RLTDIR}' >> ${OPATH}/${TC}.sh -elif [ "${USE_UUENCODE}" = yes ]; then - echo 'udecode ${TESTDIR}' >> ${OPATH}/${TC}.sh - echo 'udecode ${RLTDIR}' >> ${OPATH}/${TC}.sh -fi -echo "runcmd \"${RCMD}\" work true" >> ${OPATH}/${TC}.sh -if [ "${NODIFFRLT}" = yes ]; then - echo "rundiff false" >> ${OPATH}/${TC}.sh -else - echo "rundiff true" >> ${OPATH}/${TC}.sh -fi - -cd ${THISDIR} || exit 1 -echo "done." diff --git a/contrib/elftoolchain/test/cxxfilt/Makefile b/contrib/elftoolchain/test/cxxfilt/Makefile deleted file mode 100644 index adc67069..00000000 --- a/contrib/elftoolchain/test/cxxfilt/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -TOP= ../.. -SUBDIR= ts - -.include "${TOP}/mk/elftoolchain.tetbase.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/tet_scen b/contrib/elftoolchain/test/cxxfilt/tet_scen deleted file mode 100644 index 9ec6da84..00000000 --- a/contrib/elftoolchain/test/cxxfilt/tet_scen +++ /dev/null @@ -1,41 +0,0 @@ -# $Id$ - -all - "Starting Test Suite" - ^builtin - ^misc - ^qualifiers - ^regression - ^substitute - ^template - "Complete Test Suite" - -builtin - "Starting builtin Test" - /ts/builtin/tc - "Complete builtin Test" - -misc - "Starting misc Test" - /ts/misc/tc - "Complete misc Test" - -qualifiers - "Starting qualifiers Test" - /ts/qualifiers/tc - "Complete qualifiers Test" - -regression - "Starting regression Test" - /ts/regression/tc - "Complete regression Test" - -substitute - "Starting substitute Test" - /ts/substitute/tc - "Complete substitute Test" - -template - "Starting template Test" - /ts/template/tc - "Complete template Test" diff --git a/contrib/elftoolchain/test/cxxfilt/tetexec.cfg b/contrib/elftoolchain/test/cxxfilt/tetexec.cfg deleted file mode 100644 index 580b3aea..00000000 --- a/contrib/elftoolchain/test/cxxfilt/tetexec.cfg +++ /dev/null @@ -1,5 +0,0 @@ -# elfdump Test Suite. -# -# $Id$ - -TET_OUTPUT_CAPTURE=False diff --git a/contrib/elftoolchain/test/cxxfilt/ts/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/Makefile deleted file mode 100644 index 45e4e556..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# $Id$ - -TOP= ../../.. - -SUBDIR+= builtin -SUBDIR+= misc -SUBDIR+= qualifiers -SUBDIR+= regression -SUBDIR+= substitute -SUBDIR+= template - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/builtin/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/builtin/Makefile deleted file mode 100644 index ecc228b0..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/builtin/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "../common/ts.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/builtin/tclist b/contrib/elftoolchain/test/cxxfilt/ts/builtin/tclist deleted file mode 100644 index 3c8ae278..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/builtin/tclist +++ /dev/null @@ -1,48 +0,0 @@ -# ::= v # void -# ::= w # wchar_t -# ::= b # bool -# ::= c # char -# ::= a # signed char -# ::= h # unsigned char -# ::= s # short -# ::= t # unsigned short -# ::= i # int -# ::= j # unsigned int -# ::= l # long -# ::= m # unsigned long -# ::= x # long long, __int64 -# ::= y # unsigned long long, __int64 -# ::= n # __int128 -# ::= o # unsigned __int128 -# ::= f # float -# ::= d # double -# ::= e # long double, __float80 -# ::= g # __float128 -# ::= z # ellipsis -# ::= Dd # IEEE 754r decimal floating point (64 bits) -# ::= De # IEEE 754r decimal floating point (128 bits) -# ::= Df # IEEE 754r decimal floating point (32 bits) -# ::= Dh # IEEE 754r half-precision floating point (16 bits) -# ::= Di # char32_t -# ::= Ds # char16_t -# ::= Da # auto -# ::= Dc # decltype(auto) -# ::= Dn # std::nullptr_t (i.e., decltype(nullptr)) -# ::= u # vendor extended type - -"_Z3barv", "bar()" -"_Z3barPv", "bar(void*)" -"_Z3bariPv", "bar(int, void*)" -"_Z3fooww", "foo(wchar_t, wchar_t)" -"_Z3foob", "foo(bool)" -"_Z3foocah", "foo(char, signed char, unsigned char)" -"_Z3barstij", "bar(short, unsigned short, int, unsigned int)" -"_Z3barlmxy", "bar(long, unsigned long, long long, unsigned long long)" -"_Z3barno", "bar(__int128, unsigned __int128)" -"_Z3foofdeg", "foo(float, double, long double, __float128)" -"_Z3fooiPcz", "foo(int, char*, ...)" -"_Z3fooDdDeDfDh", "foo(decimal64, decimal128, decimal32, half)" -"_Z3barDiDs", "bar(char32_t, char16_t)" -"_Z3barIiEDai", "auto bar(int)" -"_Z3barIiEDci", "decltype(auto) bar(int)" -"_Z3barIiEDni", "decltype(nullptr) bar(int)" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/common/func.sh b/contrib/elftoolchain/test/cxxfilt/ts/common/func.sh deleted file mode 100755 index b3956eb7..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/common/func.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tpstart() # write test purpose banner and initialise variables -{ - tet_infoline "$*" - FAIL=N -} - -tpresult() # give test purpose result -{ - # $1 is result code to give if FAIL=N (default PASS) - if [ $FAIL = N ]; then - tet_result ${1-PASS} - else - tet_result FAIL - fi -} - -check_rlt() # execute command (saving output) and check exit code -{ - # $1 is command, $2 is expected exit code (0 or "N" for non-zero) - RLT=`$1` - CODE=$? - if [ $2 = 0 -a $CODE -ne 0 ]; then - tet_infoline "Command ($1) gave exit code $CODE, expected 0" - FAIL=Y - elif [ $2 != 0 -a $CODE -eq 0 ]; then - tet_infoline "Command ($1) gave exit code $CODE, expected non-zero" - FAIL=Y - fi - - # $3 is expected result. - if [ "$RLT" != "$3" ]; then - tet_infoline "Command ($1) gave wrong result:" - tet_infoline "$RLT" - tet_infoline "expected:" - tet_infoline "$3" - FAIL=Y - fi -} - -run() -{ - tpstart "Running test '$1'" - check_rlt "$TET_SUITE_ROOT/../../cxxfilt/c++filt $1" 0 "$2" - tpresult -} diff --git a/contrib/elftoolchain/test/cxxfilt/ts/common/gen.awk b/contrib/elftoolchain/test/cxxfilt/ts/common/gen.awk deleted file mode 100755 index 9aa89736..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/common/gen.awk +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/awk -f -# -# $Id$ - -BEGIN { - FS = "\"" - tp = 0 - print "#!/bin/sh\n" -} - -{ - sub(/#.*/, ""); - if (NF >= 5) { - tp++ - printf("tp%d()\n{\n run \"%s\" \"%s\"\n}\n\n", tp, $2, $4); - } -} - -END { - print "tet_startup=\"\"" - print "tet_cleanup=\"\"\n" - printf("%s", "iclist=\""); - for (i = 1; i <= tp; i++) { - printf("ic%d", i); - if (i != tp) - printf(" "); - } - printf("\"\n\n"); - for (i = 1; i <= tp; i++) - printf("ic%d=\"tp%d\"\n", i, i); - print "\n. $TET_SUITE_ROOT/ts/common/func.sh"; - print ". $TET_ROOT/lib/xpg3sh/tcm.sh"; -} diff --git a/contrib/elftoolchain/test/cxxfilt/ts/common/ts.mk b/contrib/elftoolchain/test/cxxfilt/ts/common/ts.mk deleted file mode 100644 index 12429b2a..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/common/ts.mk +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -TCLIST?= tclist - -.PHONY: all - -all: tc - -tc: ${TCLIST} - ${.CURDIR}/../common/gen.awk ${.ALLSRC} > ${.TARGET} - chmod +x ${.TARGET} - -clean: - rm -rf tc - diff --git a/contrib/elftoolchain/test/cxxfilt/ts/misc/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/misc/Makefile deleted file mode 100644 index ecc228b0..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/misc/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "../common/ts.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/misc/tclist b/contrib/elftoolchain/test/cxxfilt/ts/misc/tclist deleted file mode 100644 index ebe3e65c..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/misc/tclist +++ /dev/null @@ -1,51 +0,0 @@ -# simple function -"_Z1f", "f" -"_Z1fi", "f(int)" -"_Z1fic", "f(int, char)" -"_Z1f3bar", "f(bar)" -"_Z1fFviE", "f(void (int))" - -# namespace -"_ZN12elftoolchainE", "elftoolchain" -"_ZN11elftoolchainE", "_ZN11elftoolchainE" -"_ZN12elftoolchain", "_ZN12elftoolchain" -"_ZN12elftoolchain3foo3barE", "elftoolchain::foo::bar" -"_ZN12elftoolchain3foo3barEi", "elftoolchain::foo::bar(int)" -"_ZN12elftoolchain3foo3barEic", "elftoolchain::foo::bar(int, char)" - -# non-static member function with qualifiers -# N [] [] E -"_ZNKR12elftoolchain3fooEi", "elftoolchain::foo(int) const &" -"_ZNKO12elftoolchain3fooEi", "elftoolchain::foo(int) const &&" - -# function type with qualifiers. (note that the place to encode qualifiers -# is different than ) -# ::= [] [Dx] F [Y] - [] E -"_Z3fooKFviRE", "foo(void (int) const &)" -"_Z3fooKFviOE", "foo(void (int) const &&)" - -# Pointer-to-member type and type qualifiers -# ::= M -"_Z3barM12elftoolchainFviE", "bar(void (elftoolchain::*)(int))" -"_Z3barM12elftoolchainKFviRE", "bar(void (elftoolchain::*)(int) const &)" -"_Z3fooFvvEM1AFvvE", "foo(void (), void (A::*)())" -"_Z3fooPFvvEM1AFvvE", "foo(void (*)(), void (A::*)())" -"_Z3fooPFvvREM1AFvvE", "foo(void (*)() &, void (A::*)())" -"_Z3fooPFvvREM1AFvvOE", "foo(void (*)() &, void (A::*)() &&)" -"_Z3fooKFvvREM1AFvvE", "foo(void () const &, void (A::*)())" -"_Z3fooKPFvvREM1AFvvE", "foo(void (* const)() &, void (A::*)())" -"_Z3fooPKFvvREM1AFvvE", "foo(void (*)() const &, void (A::*)())" -"_Z3fooPKFvvREPM1AFvvE", "foo(void (*)() const &, void (A::**)())" -"_Z3fooPKFviREPM1AFvidE", "foo(void (*)(int) const &, void (A::**)(int, double))" -"_Z3fooPrKFvvREPKVM1APKFvvE", "foo(void (*)() const restrict &, void (* A::* volatile const*)() const)" - -# local names - - - -# abbreviation St -"_ZSt3foo", '::std::foo' -"_ZNSt3for3barE", 'std::for::bar' - -# c++11 decltype diff --git a/contrib/elftoolchain/test/cxxfilt/ts/qualifiers/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/qualifiers/Makefile deleted file mode 100644 index ecc228b0..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/qualifiers/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "../common/ts.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/qualifiers/tclist b/contrib/elftoolchain/test/cxxfilt/ts/qualifiers/tclist deleted file mode 100644 index 98e725c7..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/qualifiers/tclist +++ /dev/null @@ -1,36 +0,0 @@ -# ::= -# ::= P # pointer-to -# ::= R # reference-to -# ::= O # rvalue reference-to (C++0x) -# ::= C # complex pair (C 2000) -# ::= G # imaginary (C 2000) -# ::= U [] # vendor extended type qualifier - -# ::= [r] [V] [K] -"_Z3foorPirPirPi", "foo(int* restrict, int* restrict, int* restrict)" -"_Z3fooVPd", "foo(double* volatile)" - -# Pointer -"_Z3fooPi", "foo(int*)" -"_Z3fooPPi", "foo(int**)" -"_Z3fooKPi", "foo(int* const)" -"_Z3fooPKi", "foo(int const*)" -"_Z3fooKPKi", "foo(int const* const)" -"_Z3fooKPPi", "foo(int** const)" -"_Z3fooPKPi", "foo(int* const*)" -"_Z3fooPPKi", "foo(int const**)" -"_Z3fooKPKPi", "foo(int* const* const)" - -# Reference -"_Z3barRi", "bar(int&)" -"_Z3barRKi", "bar(int const&)" -"_ZplR1XS0_", "operator+(X&, X&)" -"_ZrsRK1XS1_", "operator>>(X const&, X const&)" -"_ZN1XaSEO1X", "X::operator=(X&&)" - -# Complex -"_Z3fooCd", "foo(double complex)" -"_Z3fooGdGf", "foo(double imaginary, float imaginary)" - -# Vendor -"_Z3fooPU3farc", "foo(char far*)" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/regression/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/regression/Makefile deleted file mode 100644 index ecc228b0..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/regression/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "../common/ts.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/regression/tclist b/contrib/elftoolchain/test/cxxfilt/ts/regression/tclist deleted file mode 100644 index e10ea439..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/regression/tclist +++ /dev/null @@ -1,34 +0,0 @@ -# ticket 481, TLS wrappers -"_ZTWL20PrettyStackTraceHead", "TLS wrapper function for PrettyStackTraceHead" - -# ticket 488, trailing E -"_ZN1fILi4EEE", "f<4>" - -# ticket 489, handle Dv (__vector) -"_Z22__gen_ocl_write_imagef11ocl_image2dDv2_iDv4_f", "__gen_ocl_write_imagef(ocl_image2d, int __vector(2), float __vector(4))" -"_Z23__gen_ocl_write_imageui16ocl_image2darrayDv3_iDv4_j", "__gen_ocl_write_imageui(ocl_image2darray, int __vector(3), unsigned int __vector(4))" -"_Z1fDv2_i", "f(int __vector(2))" - -# ticket 491, omit "void" -"_Z1fv", "f()" -"_Z1fPv", "f(void*)" -"_Z1fiv", "f(int, void)" -"_Z1fvi", "f(void, int)" - -# ticket 508, demangler failure -"_ZN8TaskPool11AddTaskImplEONSt3__18functionIFvvEEE", "TaskPool::AddTaskImpl(std::__1::function&&)" - -# ticket 530, assertion failure -"_ZNSp16invalidOargumentC1ERKSs", "invalidOargument::invalidOargument(std::basic_string, std::allocator > const&)" - -# ticket 531, assertion failure -"____new_strtold_internal", "____new_strtold_internal" - -# ticket 537, demangler fails on a symbol from GNU gold -"_ZN4gold15relocate_relocsILi64ELb1ENS_22Default_classify_relocILi4ELi64ELb1EEEEEvPKNS_13Relocate_infoIXT_EXT0_EEEPKhmPNS_14Output_sectionEN6elfcpp9Elf_typesIXT_EE7Elf_OffEPhNSD_8Elf_AddrEmSF_m", "void gold::relocate_relocs<64, true, gold::Default_classify_reloc<4, 64, true> >(gold::Relocate_info<64, true> const*, unsigned char const*, unsigned long, gold::Output_section*, elfcpp::Elf_types<64>::Elf_Off, unsigned char*, elfcpp::Elf_types<64>::Elf_Addr, unsigned long, unsigned char*, unsigned long)" - -# ticket 538, demangler uses incorrect back-ref -"_ZN1f1gEP1hNS0_1iE", "f::g(h*, h::i)" - -# ticket 539, demangler does not demangle lambdas -"_ZZN9libunwind17LocalAddressSpace18findUnwindSectionsEjRNS_18UnwindInfoSectionsEENUlP12dl_phdr_infojPvE_8__invokeES4_jS5_", "libunwind::LocalAddressSpace::findUnwindSections(unsigned int, libunwind::UnwindInfoSections&)::{lambda(dl_phdr_info*, unsigned int, void*)#1}::__invoke(dl_phdr_info*, unsigned int, void*)" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/substitute/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/substitute/Makefile deleted file mode 100644 index ecc228b0..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/substitute/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "../common/ts.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/substitute/tclist b/contrib/elftoolchain/test/cxxfilt/ts/substitute/tclist deleted file mode 100644 index 41173dc6..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/substitute/tclist +++ /dev/null @@ -1,56 +0,0 @@ -# ::= S _ -# ::= S_ - -"_ZN1N1TIiiE2mfES_IddE", "N::T::mf(N)" -"_ZN1N1TIiiE2mfES0_IddE", "N::T::mf(N::T)" -"_ZN1N1TIiiE2mfES1_IddE", "N::T::mf(N::T)" -"_ZN1N1TIiiE2mfES2_IddE", "_ZN1N1TIiiE2mfES2_IddE" -# wrong result: -# "_ZN1N1TIiiE2mfES2_IddE", "N::T::mf(N::T::mf)" - -"_ZN1f1gEP1hNS_1iE", "f::g(h*, f::i)" -"_ZN1f1gEP1hNS0_1iE", "f::g(h*, h::i)" -# wrong result: -# "_ZN1f1gEP1hNS0_1iE", "f::g(h*, f::g::i)" -"_ZN1f1gEP1hNS1_1iE", "f::g(h*, h*::i)" - -"_Z3fooN1A1B1TES_", "foo(A::B::T, A)" -"_Z3fooN1A1B1TES0_", "foo(A::B::T, A::B)" -"_Z3fooN1A1B1TES1_", "foo(A::B::T, A::B::T)" - -"_Z3foo5Hello5WorldS_S0_", "foo(Hello, World, Hello, World)" - -# qualifiers with builtin type should be substitute candidates -"_Z3fooPiS_", "foo(int*, int*)" -"_Z3fooKPiS_", "foo(int* const, int*)" -"_Z3fooKPiS0_", "foo(int* const, int* const)" -"_Z3fooRKiS_", "foo(int const&, int const)" -"_Z3fooRKiS0_", "foo(int const&, int const&)" -"_Z3foorKiS_", "foo(int const restrict, int const restrict)" -"_Z3fooPrKiS_", "foo(int const restrict*, int const restrict)" -"_Z3fooPrKiS0_", "foo(int const restrict*, int const restrict*)" -"_Z3foorPKiS_", "foo(int const* restrict, int const)" -"_Z3foorPKiS0_", "foo(int const* restrict, int const*)" -"_Z3foorPKiS1_", "foo(int const* restrict, int const* restrict)" -"_Z3foorKPiS_", "foo(int* const restrict, int*)" -"_Z3foorKPiS0_", "foo(int* const restrict, int* const restrict)" - -# qualifers with non-builin type -"_Z3fooP3BarS_", "foo(Bar*, Bar)" -"_Z3fooP3BarS0_", "foo(Bar*, Bar*)" -"_Z3fooPK3BarS_", "foo(Bar const*, Bar)" -"_Z3fooPK3BarS1_", "foo(Bar const*, Bar const*)" -"_Z3foorKP3BarS0_", "foo(Bar* const restrict, Bar*)" -"_Z3foorKP3BarS1_", "foo(Bar* const restrict, Bar* const restrict)" - -# vendor extended qualifiers and substitution -# note that ABI requires that "the type with all the K, V, and r qualifiers -# " plus any vendor extended types in the same order-insensitive set is -# substitutible". Here vendor extended type is not handled as above -# requirement. -"_Z3fooU3barKiS_", "foo(int const bar, int const)" -"_Z3fooU3barKiS0_", "foo(int const bar, int const bar)" - -# bug introduced with a botched fix for omitting "void" -"_Z3barvPvS_", "bar(void, void*, void*)" -# wrong result: bar(void, void*, void, void*) diff --git a/contrib/elftoolchain/test/cxxfilt/ts/template/Makefile b/contrib/elftoolchain/test/cxxfilt/ts/template/Makefile deleted file mode 100644 index ecc228b0..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/template/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "../common/ts.mk" diff --git a/contrib/elftoolchain/test/cxxfilt/ts/template/tclist b/contrib/elftoolchain/test/cxxfilt/ts/template/tclist deleted file mode 100644 index bb1a6234..00000000 --- a/contrib/elftoolchain/test/cxxfilt/ts/template/tclist +++ /dev/null @@ -1,10 +0,0 @@ -# Misc -"_Z1TIiE", "T" -"_Z1TIidE", "T" -"_Z1TIidET_T0_", "int T(double)" -"_ZN3Foo3BarIiiE1fEii", "Foo::Bar::f(int, int)" -"_ZN3Foo3BarIiiE1fIiiEEii", "int Foo::Bar::f(int)" -"_ZN3Foo3BarIiiE1fE1TIiE", "Foo::Bar::f(T)" -"_ZN3Foo3BarIiiE1fE1TIiEi", "Foo::Bar::f(T, int)" -"_ZN3Foo3BarIiiE1fE1TIiEii", "Foo::Bar::f(T, int, int)" -"_Z3foo1TIiEdh", "foo(T, double, unsigned char)" diff --git a/contrib/elftoolchain/test/elfcopy/Makefile b/contrib/elftoolchain/test/elfcopy/Makefile deleted file mode 100644 index 706a0a22..00000000 --- a/contrib/elftoolchain/test/elfcopy/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# $Id$ - -TOP= ../.. - -ELFCOPY= ${TOP}/elfcopy/elfcopy - -TEST_LOG= test.log - -.MAIN: all - -.PHONY: clobber execute test - -execute test: ${ELFCOPY} - /bin/sh run.sh - -clean clobber: - rm -f ${TEST_LOG} - -SUBDIR= plugin - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/test/elfcopy/func.sh b/contrib/elftoolchain/test/elfcopy/func.sh deleted file mode 100644 index 7a373668..00000000 --- a/contrib/elftoolchain/test/elfcopy/func.sh +++ /dev/null @@ -1,210 +0,0 @@ -# $Id$ -# -# `init' initializes test engine global data. -# -init() { - THISDIR=`/bin/pwd` - TOPDIR=${THISDIR}/../.. - ELFCOPY=${TOPDIR}/elfcopy/elfcopy - STRIP=${TOPDIR}/elfcopy/strip - MCS=${TOPDIR}/elfcopy/mcs - - # keep a record of total tests and number of tests passed. - TOTALCT=/tmp/elfcopy-test-total - PASSEDCT=/tmp/elfcopy-test-passed - echo 0 > ${TOTALCT} - echo 0 > ${PASSEDCT} -} - -# `inittest' initializes individual test process. (set up temp dirs, -# make copies of files used in the test if necessary, etc.) -# -inittest() { - if [ $# -ne 2 ]; then - echo "usage: inittest tcname tcdir" - exit 1 - fi - - TC=$1 - TCDIR=$2 - TESTDIR=/tmp/${TC} - OUTDIR=/tmp/${TC}-out - RLTDIR=/tmp/${TC}-rlt - rm -rf ${TESTDIR} - rm -rf ${OUTDIR} - rm -rf ${RLTDIR} - mkdir -p ${TESTDIR} || exit 1 - mkdir -p ${OUTDIR} || exit 1 - mkdir -p ${RLTDIR} || exit 1 - - if [ -d "${TCDIR}/in" ]; then - cp -R ${TCDIR}/in/* ${TESTDIR} || exit 1 - fi - - if [ -d "${TCDIR}/out" ]; then - cp -R ${TCDIR}/out/* ${RLTDIR} || exit 1 - fi -} - -# `extshar' extracts shar file in the specific dir, -# then uudecode the resulting file(s). -# -extshar() { - if [ $# -ne 1 ]; then - echo "usage: extshar dir" - exit 1 - fi - - cd $1 || exit 1 - for f in *.shar; do - sh $f > /dev/null 2>&1 || exit 1 - rm -rf $f - done - - udecode $1 -} - -# `udecode' calls uudecode to decode files encoded by -# uuencode in the specific dir. -# -udecode() { - if [ $# -ne 1 ]; then - echo "usage: uudecode dir" - exit 1 - fi - - cd $1 || exit 1 - for f in *.uu; do - uudecode $f || exit 1 - rm -rf $f - done -} - -# `runcmd' runs `cmd' on the work/result dir. -# -# cmd: command to execute -# loc: work/result -# rec: true (keep a record of the stdout and stderr) -# false (do not record) -# -runcmd() { - if [ $# -ne 3 ]; then - echo "usage: dotest cmd loc rec" - exit 1 - fi - - # prefix executable with abolute pathname. - executable=`echo $1 | cut -f 1 -d ' '` - relapath=`dirname ${executable}` - cd ${THISDIR} - absolpath=`cd ${relapath} && /bin/pwd` - newcmd=${absolpath}/`basename ${executable}`" "`echo $1 | cut -f 2- -d ' '` - - if [ "$2" = work ]; then - cd ${TESTDIR} || exit 1 - elif [ "$2" = result ]; then - cd ${RLTDIR} || exit 1 - else - echo "loc must be work or result." - exit 1 - fi - - if [ "$3" = true ]; then - ${newcmd} > ${OUTDIR}/${TC}.out 2> ${OUTDIR}/${TC}.err - echo $? > ${OUTDIR}/${TC}.eval - elif [ "$3" = false ]; then - ${newcmd} - else - echo "rec must be true of false." - exit 1 - fi - - cd ${THISDIR} -} - -# `rundiff' performs standard diff to compare exit value, -# stdout output, stderr output and resulting files with -# "standard answers". -# -rundiff() { - # $1 indicates whether we should compare resulting files. - if [ $# -ne 1 ]; then - echo "usage: rundiff [true|false]" - exit 1 - fi - cd ${THISDIR} || exit 1 - if [ -f ${TCDIR}/${TC}.eval ]; then - incct ${TOTALCT} - diff -urN ${TCDIR}/${TC}.eval ${OUTDIR}/${TC}.eval - if [ $? -eq 0 ]; then - echo "${TC} exit value - ok" - incct ${PASSEDCT} - else - echo "${TC} exit value - not ok" - fi - fi - - if [ -f ${TCDIR}/${TC}.out ]; then - incct ${TOTALCT} - diff -urN ${TCDIR}/${TC}.out ${OUTDIR}/${TC}.out - if [ $? -eq 0 ]; then - echo "${TC} stdout - ok" - incct ${PASSEDCT} - else - echo "${TC} stdout - not ok" - fi - fi - - if [ -f ${TCDIR}/${TC}.err ]; then - incct ${TOTALCT} - diff -urN ${TCDIR}/${TC}.err ${OUTDIR}/${TC}.err - if [ $? -eq 0 ]; then - echo "${TC} stderr - ok" - incct ${PASSEDCT} - else - echo "${TC} stderr - not ok" - fi - fi - - if [ "$1" = true ]; then - incct ${TOTALCT} - diff -urN ${RLTDIR} ${TESTDIR} - if [ $? -eq 0 ]; then - echo "${TC} resulting files - ok" - incct ${PASSEDCT} - else - echo "${TC} resulting files - not ok" - fi - fi -} - -# `innct' increase specified counter by 1. -incct() { - if [ $# -ne 1 ]; then - echo "usage: incct counterfile" - exit 1 - fi - if [ -f $1 ]; then - exec 3< $1 - read val <&3 - exec 3<&- - newval=`expr ${val} + 1` - echo ${newval} > $1 - else - echo "$1 not exist" - exit 1 - fi -} - -# `statistic' shows number of test passed. -# -statistic() { - exec 3< ${TOTALCT} - read tval <&3 - exec 3<&- - exec 3< ${PASSEDCT} - read pval <&3 - exec 3<&- - - echo "${pval} out of ${tval} passed." -} diff --git a/contrib/elftoolchain/test/elfcopy/plugin/Makefile b/contrib/elftoolchain/test/elfcopy/plugin/Makefile deleted file mode 100644 index 09713960..00000000 --- a/contrib/elftoolchain/test/elfcopy/plugin/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# $Id$ - -PLUGINS= ardiff teraser - -all: ${PLUGINS} - -${PLUGINS}: -.for plugin in ${.TARGET} - ${MAKE} -f Makefile.${plugin} -.endfor - -test: .PHONY - -clean cleandepend clobber depend: .PHONY -.for plugin in ${PLUGINS} - ${MAKE} -f Makefile.${plugin} ${.TARGET} -.endfor diff --git a/contrib/elftoolchain/test/elfcopy/plugin/Makefile.ardiff b/contrib/elftoolchain/test/elfcopy/plugin/Makefile.ardiff deleted file mode 100644 index b065e177..00000000 --- a/contrib/elftoolchain/test/elfcopy/plugin/Makefile.ardiff +++ /dev/null @@ -1,18 +0,0 @@ -# $Id$ - -TOP= ../../.. - -PROG= ardiff - -NOMAN= - -WARNS?= 6 - -DPADD= ${LIBARCHIVE} -LDADD= -larchive - -.include "${TOP}/mk/elftoolchain.prog.mk" - -.if ${OS_HOST} == "DragonFly" -LDADD+= -lbz2 -.endif diff --git a/contrib/elftoolchain/test/elfcopy/plugin/Makefile.teraser b/contrib/elftoolchain/test/elfcopy/plugin/Makefile.teraser deleted file mode 100644 index 3176ab33..00000000 --- a/contrib/elftoolchain/test/elfcopy/plugin/Makefile.teraser +++ /dev/null @@ -1,11 +0,0 @@ -# $Id$ - -TOP= ../../.. - -PROG= teraser - -NOMAN= - -WARNS?= 6 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/test/elfcopy/plugin/ardiff.c b/contrib/elftoolchain/test/elfcopy/plugin/ardiff.c deleted file mode 100644 index 8e38f049..00000000 --- a/contrib/elftoolchain/test/elfcopy/plugin/ardiff.c +++ /dev/null @@ -1,254 +0,0 @@ -/* Selectively compare two ar archives. - * Usage: - * ardiff [-ni] [-t name] ar1 ar2 - * Options: - * -c compare member content. (This implies -s) - * -n compare member name. - * -i compare member mtime. - * -l compare archive length (member count). - * -s compare member size. - * -t specify the test name. - * - * By default, it compares nothing and consider the test "not ok" - * iff it encounters errors while reading archive. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define COUNTER "/tmp/bsdar-test-total" -#define PASSED "/tmp/bsdar-test-passed" - -static void usage(void); -static void filediff(const char *tc, const char *msg, const char *e); -static void filesame(const char *tc); -static void incct(const char *pathname); - -int -main(int argc, char **argv) -{ - struct archive *a1; - struct archive *a2; - struct archive_entry *e1; - struct archive_entry *e2; - const char *tc; - char *buf1; - char *buf2; - char checkcont; - char checklen; - char checkname; - char checksize; - char checktime; - char a1end; - size_t size1; - size_t size2; - int opt, r; - - /* - * Parse command line options. - */ - checkcont = 0; - checklen = 0; - checkname = 0; - checksize = 0; - checktime = 0; - tc = NULL; - while ((opt = getopt(argc, argv, "cilnst:")) != -1) { - switch(opt) { - case 'c': - checkcont = 1; - break; - case 'i': - checktime = 1; - break; - case 'l': - checklen = 1; - break; - case 'n': - checkname = 1; - break; - case 's': - checksize = 1; - case 't': - tc = optarg; - break; - default: - usage(); - } - } - - argc -= optind; - argv += optind; - if (argc != 2) - usage(); - - /* Open file 1 */ - a1 = archive_read_new(); - archive_read_support_format_ar(a1); - if (archive_read_open_filename(a1, argv[0], - 1024*10)) { - warnx("%s", archive_error_string(a1)); - filediff(tc, "archive open failed", NULL); - } - - /* Open file 2 */ - a2 = archive_read_new(); - archive_read_support_format_ar(a2); - if (archive_read_open_filename(a2, argv[1], - 1024*10)) { - warnx("%s", archive_error_string(a2)); - filediff(tc, "archive open failed", NULL); - } - - /* Main loop */ - a1end = 0; - size1 = 0; - size2 = 0; - for (;;) { - /* - * Read header from each archive, compare length. - */ - r = archive_read_next_header(a1, &e1); - if (r == ARCHIVE_EOF) - a1end = 1; - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY || - r == ARCHIVE_FATAL) { - warnx("%s", archive_error_string(a1)); - filediff(tc, "archive data error", NULL); - } - r = archive_read_next_header(a2, &e2); - if (r == ARCHIVE_EOF) { - if (a1end > 0) - break; - else { - if (checklen) - filediff(tc, "length differ", NULL); - break; - } - } - if (r == ARCHIVE_WARN || r == ARCHIVE_RETRY || - r == ARCHIVE_FATAL) { - warnx("%s", archive_error_string(a2)); - filediff(tc, "archive data error", NULL); - } - if (a1end > 0) { - if (checklen) - filediff(tc, "length differ", NULL); - break; - } - - /* - * Check member name if required. - */ - if (checkname) { - if (strcmp(archive_entry_pathname(e1), - archive_entry_pathname(e2)) != 0) - filediff(tc, "member name differ", - archive_entry_pathname(e1)); - } - - /* - * Compare time if required. - */ - if (checktime) { - if (archive_entry_mtime(e1) != - archive_entry_mtime(e2)) - filediff(tc, "member mtime differ", - archive_entry_pathname(e1)); - } - - /* - * Compare member size if required. - */ - if (checksize || checkcont) { - size1 = (size_t) archive_entry_size(e1); - size2 = (size_t) archive_entry_size(e2); - if (size1 != size2) - filediff(tc, "member size differ", - archive_entry_pathname(e1)); - } - - /* - * Compare member content if required. - */ - if (checkcont) { - if ((buf1 = malloc(size1)) == NULL) - filediff(tc, "not enough memory", NULL); - if ((buf2 = malloc(size2)) == NULL) - filediff(tc, "not enough memory", NULL); - if ((size_t) archive_read_data(a1, buf1, size1) != - size1) - filediff(tc, "archive_read_data failed", - archive_entry_pathname(e1)); - if ((size_t) archive_read_data(a2, buf2, size2) != - size2) - filediff(tc, "archive_read_data failed", - archive_entry_pathname(e1)); - if (memcmp(buf1, buf2, size1) != 0) - filediff(tc, "member content differ", - archive_entry_pathname(e1)); - free(buf1); - free(buf2); - } - - /* Proceed to next header. */ - } - - /* Passed! */ - filesame(tc); - exit(EXIT_SUCCESS); -} - -static void -filediff(const char *tc, const char *msg, const char *e) -{ - if (e != NULL) - fprintf(stdout, "%s - archive diff not ok (%s (entry: %s))\n", - tc, msg, e); - else - fprintf(stdout, "%s - archive diff not ok (%s)\n", tc, msg); - - incct(COUNTER); - exit(EXIT_SUCCESS); -} - -static void -filesame(const char *tc) -{ - fprintf(stdout, "%s - archive diff ok\n", tc); - incct(COUNTER); - incct(PASSED); -} - -static void -incct(const char *pathname) -{ - FILE *fp; - char buf[10]; - - if ((fp = fopen(pathname, "r")) != NULL) { - if (fgets(buf, 10, fp) != buf) - perror("fgets"); - snprintf(buf, 10, "%d\n", atoi(buf) + 1); - fclose(fp); - } - if ((fp = fopen(pathname, "w")) != NULL) { - fputs(buf, fp); - fclose(fp); - } -} - -static void -usage(void) -{ - fprintf(stderr, "usage: ardiff archive1 archive2\n"); - exit(EXIT_FAILURE); -} diff --git a/contrib/elftoolchain/test/elfcopy/plugin/os.FreeBSD.mk b/contrib/elftoolchain/test/elfcopy/plugin/os.FreeBSD.mk deleted file mode 100644 index c29af705..00000000 --- a/contrib/elftoolchain/test/elfcopy/plugin/os.FreeBSD.mk +++ /dev/null @@ -1,2 +0,0 @@ -DPADD+= ${LIBBZ2} -LDADD+= -lbz2 diff --git a/contrib/elftoolchain/test/elfcopy/plugin/teraser.c b/contrib/elftoolchain/test/elfcopy/plugin/teraser.c deleted file mode 100644 index 266e7f54..00000000 --- a/contrib/elftoolchain/test/elfcopy/plugin/teraser.c +++ /dev/null @@ -1,147 +0,0 @@ -/* 1. Erase archive symbol table's timestamp from ar archives, - * make it easy to `diff'. (option -e) - * 2. Check the sanity of timestamp. (option -c) - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define TSPOS 24 /* position of timestamp */ -#define TSLEN 10 /* length of timstamp string */ -#define TDELAY 3 /* max delay allowed */ -#define COUNTER "/tmp/bsdar-test-total" -#define PASSED "/tmp/bsdar-test-passed" - -static void usage(void); - -int -main(int argc, char **argv) -{ - int opt; - char checktime; - char erasetime; - char buf[TSLEN + 1]; - char *tc; - int fd; - int ts; - time_t now; - FILE *ct, *ps; - - - checktime = 0; - erasetime = 0; - tc = NULL; - while ((opt = getopt(argc, argv, "cet:")) != -1) { - switch(opt) { - case 'c': - checktime = 1; - break; - case 'e': - erasetime = 1; - break; - case 't': - tc = optarg; - break; - default: - usage(); - } - } - - argv += optind; - if (*argv == NULL) - usage(); - - for (; *argv != NULL; argv++) { - if (checktime) { - if ((fd = open(*argv, O_RDONLY)) == -1) { - fprintf(stderr, - "open %s failed(%s), skipping time check...\n,", - *argv, strerror(errno)); - goto ctend; - } - if ((lseek(fd, TSPOS, SEEK_SET)) == -1) { - fprintf(stderr, - "lseek %s failed(%s), skipping...\n,", - *argv, strerror(errno)); - goto ctend; - } - if ((read(fd, buf, TSLEN)) != TSLEN) { - fprintf(stderr, - "read %s failed(%s), skipping...\n,", - *argv, strerror(errno)); - goto ctend; - } - buf[TSLEN] = '\0'; - ts = atoi(buf); - now = time(NULL); - if (ts <= now && ts >= now - TDELAY) { - fprintf(stderr, "%s - timestamp ok\n", tc); - if ((ps = fopen(PASSED, "r")) != NULL) { - if (fgets(buf, TSLEN, ps) != buf) - perror("fgets"); - snprintf(buf, TSLEN, "%d\n", - atoi(buf) + 1); - fclose(ps); - } - if ((ps = fopen(PASSED, "w")) != NULL) { - fputs(buf, ps); - fclose(ps); - } - } else { - fprintf(stderr, "%s - timestamp not ok\n", tc); - } - if ((ct = fopen(COUNTER, "r")) != NULL) { - if (fgets(buf, TSLEN, ct) != NULL) - perror("fgets"); - snprintf(buf, TSLEN, "%d\n", atoi(buf) + 1); - fclose(ct); - } - if ((ct = fopen(COUNTER, "w")) != NULL) { - fputs(buf, ct); - fclose(ct); - } - - ctend: - close(fd); - } - - if (erasetime) { - if ((fd = open(*argv, O_RDWR)) == -1) { - fprintf(stderr, - "open %s failed(%s), skipping time check...\n,", - *argv, strerror(errno)); - goto etend; - } - if ((lseek(fd, TSPOS, SEEK_SET)) == -1) { - fprintf(stderr, "lseek %s failed(%s), skipping...,", - *argv, strerror(errno)); - goto etend; - } - memset(buf, 32, TSLEN); - if ((write(fd, buf, TSLEN)) != TSLEN) - fprintf(stderr, - "read %s failed(%s), skipping...\n,", - *argv, strerror(errno)); - - etend: - close(fd); - } - } - - exit(EXIT_SUCCESS); -} - -static void -usage(void) -{ - fprintf(stderr, "usage: teraser [-ce] [-t name] archive ...\n"); - exit(EXIT_FAILURE); -} diff --git a/contrib/elftoolchain/test/elfcopy/run.sh b/contrib/elftoolchain/test/elfcopy/run.sh deleted file mode 100644 index 90e81881..00000000 --- a/contrib/elftoolchain/test/elfcopy/run.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# Run all the tests. - -test_log=test.log - -# setup cleanup trap -trap 'rm -rf /tmp/elfcopy-*; rm -rf /tmp/strip-*' 0 2 3 15 - -# load functions. -. ./func.sh - -# global initialization. -init - -exec 4>&1 # Save stdout for later use. - -exec >${test_log} 2>&1 -echo @TEST-RUN: `date` - -# run tests. -for f in tc/*; do - if [ -d $f ]; then - . $f/`basename $f`.sh - fi -done - -# show statistics. -echo @RESULT: `statistic` - -# Exit with an error if any test had failed. -if grep 'not ok' ${test_log} >&4; then - status=1 - exit 1 -fi diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.err b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.eval b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.out b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.sh b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.sh deleted file mode 100755 index c88166fc..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/elfcopy-L-1.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest elfcopy-L-1 tc/elfcopy-L-1 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${ELFCOPY} -L bar -L foo2 sym.o sym.o.1" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/in/elfcopy-L-1.in.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/in/elfcopy-L-1.in.shar deleted file mode 100644 index c0e329c7..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-L-1/in/elfcopy-L-1.in.shar +++ /dev/null @@ -1,34 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sym.o.uu -# -echo x - sym.o.uu -sed 's/^X//' >sym.o.uu << '07b26866a0eaf5d2a40d8f75b1109c67' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.1.uu << 'cc3b7341ff25eb16b80756fcb867a66b' -Xbegin 644 sym.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````"4`0```````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.uu << '07b26866a0eaf5d2a40d8f75b1109c67' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Ta.out.uu << 'debc64a5f6aece67b22914f9f4be2988' -Xbegin 755 a.out -XM?T5,1@(!`0D```````````(`/@`!````L`1```````!``````````'@+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````-0&````````U`8````````` -XM`!````````$````&````V`8```````#8!E```````-@&4```````H`(````` -XM``"P`@``````````$````````@````8```"P!P```````+`'4```````L`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````S`8```````#,!D```````,P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``9-0P``P````H````)````"`````4```````````````$````````` -XM`P````0````"````!@````<````````````````````````````````````` -XM`````````"8````2````7`1```````#2`````````#X````2````;`1````` -XM```"`````````"L````1`!8`@`E0```````(`````````#,````1``\`V`90 -XM```````(`````````!\````2````?`1```````"B`````````$H````2```` -XMC`1````````O`````````$\````0`/'_B`E0`````````````````$@````2 -XM````G`1````````O``````````$````@``````````````````````````!? -XM2G9?4F5G:7-T97)#;&%SX$$`#_)?`$$`"0D)"0_R7N!!``:``` -XM``#IX/____\EY@00`&@!````Z=#_____)=X$$`!H`@```.G`_____R76!!`` -XM:`,```#IL/____\ES@00`&@$````Z:#___\`````051,C6<(55.+'TACPX7; -XM2(ULQQ!(B2VU!!``?CI(BU<(2(72=#%(B17[`1``#[8"A,!T(TB#P@$\+TB+ -XM!>?___^@0____B=](B>I,B>;HBP```(G'Z%#____H*____^O6D)"0 -XMD)"0D)"0D)"0D$B#[`B`/1T$$```=!#K))!(@\`(2(D%?0$0`/_22(L%=`$0 -XM`$B+$$B%TG7DQ@7U`Q```4B#Q`C#9F9FD&9F9I!(@SV8`Q```'06N`````!( -XMA'`@)````1O__R``$```````)@9` -XM`````````````````"@)4```````%``````````!>E(``7@0`0,,!PB0`0`` -XM'````!P```"P!$``DP````!"#A",`D4.&$$.((,$A@,4````/````%`%0``X -XM`````$0.$``````4````5````)`%0``B```````````````<````;````,`% -XM0``M`````$$.$(8"0PT&```````````````8``````````%Z4@`!>!`!`PP' -XM")`!````````%````"````#P!4``)0````!(#A"#`@```0`````````5```` -XM``````P`````````.`1````````-`````````!@&0```````!`````````#X -XM`4````````4`````````*`-````````&`````````#@"0```````"@`````` -XM``!=``````````L`````````&``````````5`````````````````````P`` -XM```````X"5````````(`````````>``````````4``````````<````````` -XM%P````````#``T```````/[__V\`````H`-```````#___]O``````$````` -XM````\/__;P````"&`T`````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````/__________``````````#_____ -XM_____P````````````````````"P!U````````````````````````````!B -XM!$```````'($0```````@@1```````"2!$```````*($0````````"1&'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(`+G-T``````````$````"@````@`````````&``````` -XM``!M`````0````8`````````.`1````````X!````````!,````````````` -XM```````$````````````````````:`````$````&`````````$P$0``````` -XM3`0```````!@````````````````````!``````````0`````````',````! -XM````!@````````"P!$```````+`$````````:`$``````````````````!`` -XM``````````````````!Y`````0````8`````````&`9````````8!@`````` -XM``X````````````````````$````````````````````?P````$````"```` -XM`````"8&0```````)@8```````"E`````````````````````0`````````` -XM`````````(<````!`````@````````#,!D```````,P&````````"``````` -XM``````````````0```````````````````"5`````0````,`````````V`90 -XM``````#8!@```````!@````````````````````(```````````````````` -XMFP````$````"`````````/`&4```````\`8```````#````````````````` -XM````"````````````````````*4````&`````P````````"P!U```````+`' -XM````````8`$````````%``````````@`````````$`````````"N`````0`` -XM``,`````````$`E0```````0"0```````!`````````````````````(```` -XM````````````````M0````$````#`````````"`)4```````(`D````````0 -XM````````````````````"````````````````````+P````!`````P`````` -XM```P"5```````#`)````````"`````````````````````@````````````` -XM``````#!`````0````,`````````.`E0```````X"0```````$`````````` -XM```````````(``````````@`````````Q@````@````#`````````'@)4``` -XM````>`D````````0````````````````````"````````````````````,L` -XM```!`````````````````````````'@)````````+`$````````````````` -XM``$````````````````````1`````P````````````````````````"D"@`` -XM`````-0````````````````````!`````````````````````0````(````` -XM````````````````````.!(```````"0!@```````!H````T````"``````` -XM```8``````````D````#`````````````````````````,@8````````^0$` -XM``````````````````$````````````````````````````````````````` -XM`````````````````P`!`,@!0````````````````````````P`"`.`!0``` -XM`````````````````````P`#`/@!0````````````````````````P`$`#@" -XM0````````````````````````P`%`"@#0````````````````````````P`& -XM`(8#0````````````````````````P`'`*`#0``````````````````````` -XM`P`(`,`#0````````````````````````P`)`#@$0``````````````````` -XM`````P`*`$P$0````````````````````````P`+`+`$0``````````````` -XM`````````P`,`!@&0````````````````````````P`-`"8&0``````````` -XM`````````````P`.`,P&0````````````````````````P`/`-@&4``````` -XM`````````````````P`0`/`&4````````````````````````P`1`+`'4``` -XM`````````````````````P`2`!`)4````````````````````````P`3`"`) -XM4````````````````````````P`4`#`)4````````````````````````P`5 -XM`#@)4````````````````````````P`6`'@)4``````````````````````` -XM`P`7`````````````````````````````P`8```````````````````````` -XM`````P`9`````````````````````````````P`:```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`2`!`) -XM4`````````````````!@`````0`3`"`)4`````````````````!N`````0`4 -XM`#`)4`````````````````![`````@`+`%`%0`````````````````"1```` -XM`0`6`'@)4````````0````````"@`````0`/`.@&4`````````````````"G -XM`````@`+`)`%0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`2`!@)4`````````````````#``````0`3`"@)4``````````` -XM``````#-`````0`0`'@'4`````````````````#;`````0`4`#`)4``````` -XM``````````#G`````@`+`/`%0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0``$@```%P$0```````T@`````````Q`0`` -XM$0`1`+`'4``````````````````Z`0``$0(/`.`&4`````````````````!' -XM`0``$@```&P$0````````@````````!;`0``$@`)`#@$0``````````````` -XM``!A`0``$0`6`(`)4```````"`````````!I`0``$0`/`-@&4```````"``` -XM``````!T`0``$@`+`+`$0```````DP````````![`0``$@```'P$0``````` -XMH@````````",`0``$`#Q_W@)4`````````````````"8`0``$@`+`,`%0``` -XM````+0````````"=`0``$@`,`!@&0`````````````````"C`0``$@```(P$ -XM0```````+P````````"R`0``$`#Q_W@)4`````````````````"Y`0``$0`5 -XM`#@)4`````````````````#/`0``$`#Q_X@)4`````````````````#4`0`` -XM$@```)P$0```````+P````````#E`0``(``````````````````````````` -XM8W)T,2YC`&%B:71A9P`O=7-R+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\ -XM8V]M;6%N9"UL:6YE/@`\8G5I;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ) -XM4U1?7P!?7T143U)?3$E35%]?`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D -XM=&]Ra.out.1.uu << 'f933ed5eb3f7f89e0de47764c538d3cb' -Xbegin 644 a.out.1 -XM?T5,1@(!`0D```````````(`/@`!````L`1```````!``````````!`4```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````-0&````````U`8````````` -XM`!````````$````&````V`8```````#8!E```````-@&4```````H`(````` -XM``"P`@``````````$````````@````8```"P!P```````+`'4```````L`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````S`8```````#,!D```````,P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``9-0P``P````H````)````"`````4```````````````$````````` -XM`P````0````"````!@````<````````````````````````````````````` -XM`````````"8````2````7`1```````#2`````````#X````2````;`1````` -XM```"`````````"L````1`!8`@`E0```````(`````````#,````1``\`V`90 -XM```````(`````````!\````2````?`1```````"B`````````$H````2```` -XMC`1````````O`````````$\````0`/'_B`E0`````````````````$@````2 -XM````G`1````````O``````````$````@``````````````````````````!? -XM2G9?4F5G:7-T97)#;&%SX$$`#_)?`$$`"0D)"0_R7N!!``:``` -XM``#IX/____\EY@00`&@!````Z=#_____)=X$$`!H`@```.G`_____R76!!`` -XM:`,```#IL/____\ES@00`&@$````Z:#___\`````051,C6<(55.+'TACPX7; -XM2(ULQQ!(B2VU!!``?CI(BU<(2(72=#%(B17[`1``#[8"A,!T(TB#P@$\+TB+ -XM!>?___^@0____B=](B>I,B>;HBP```(G'Z%#____H*____^O6D)"0 -XMD)"0D)"0D)"0D$B#[`B`/1T$$```=!#K))!(@\`(2(D%?0$0`/_22(L%=`$0 -XM`$B+$$B%TG7DQ@7U`Q```4B#Q`C#9F9FD&9F9I!(@SV8`Q```'06N`````!( -XMA'`@)````1O__R``$```````)@9` -XM`````````````````"@)4```````%``````````!>E(``7@0`0,,!PB0`0`` -XM'````!P```"P!$``DP````!"#A",`D4.&$$.((,$A@,4````/````%`%0``X -XM`````$0.$``````4````5````)`%0``B```````````````<````;````,`% -XM0``M`````$$.$(8"0PT&```````````````8``````````%Z4@`!>!`!`PP' -XM")`!````````%````"````#P!4``)0````!(#A"#`@```0`````````5```` -XM``````P`````````.`1````````-`````````!@&0```````!`````````#X -XM`4````````4`````````*`-````````&`````````#@"0```````"@`````` -XM``!=``````````L`````````&``````````5`````````````````````P`` -XM```````X"5````````(`````````>``````````4``````````<````````` -XM%P````````#``T```````/[__V\`````H`-```````#___]O``````$````` -XM````\/__;P````"&`T`````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````/__________``````````#_____ -XM_____P````````````````````"P!U````````````````````````````!B -XM!$```````'($0```````@@1```````"2!$```````*($0````````"1&'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(`+G-T'0`+F9I;FD`+G)O9&%T80`N96A?9G)A;65?:&1R`"YD -XM871A`"YE:%]F`E0```````````````````````#`!<````````` -XM```````````````````#`!@````````````````````````````#`!D````` -XM```````````````````````#`!H```````````````````````$````$`/'_ -XM``````````````````````@````!``(`X`%````````8``````````\````$ -XM`/'_`````````````````````"T````$`/'_`````````````````````#P` -XM```$`/'_``````````````````````\````$`/'_```````````````````` -XM`$<````$`/'_`````````````````````%(````!`!(`$`E0```````````` -XM`````&`````!`!,`(`E0`````````````````&X````!`!0`,`E0```````` -XM`````````'L````"``L`4`5``````````````````)$````!`!8`>`E0```` -XM```!`````````*`````!``\`Z`90`````````````````*<````"``L`D`5` -XM`````````````````$<````$`/'_`````````````````````+,````!`!(` -XM&`E0`````````````````,`````!`!,`*`E0`````````````````,T````! -XM`!``>`=0`````````````````-L````!`!0`,`E0`````````````````.<` -XM```"``L`\`5``````````````````/T````$`/'_```````````````````` -XM`"T````$`/'_`````````````````````#P````$`/'_```````````````` -XM`````/T````$`/'_`````````````````````!L!```$`/'_```````````` -XM`````````"(!`````/'_B`E0`````````````````"`E0```````````````` -XM`)T!```2``L`P`5````````M`````````*(!```2``P`&`9````````````` -XM`````*@!```2````C`1````````O`````````+`E0```````` -XM`````````+X!```1`!4`.`E0`````````````````-0!```2````G`1````` -XM```O`````````.4!```@``````````````````````````!C`!C -XM;VUP;&5T960N-3`R.0!P+C4P,C<`9G)A;65?9'5M;7D`7U]#5$]27T5.1%]? -XM`%]?1%1/4E]%3D1?7P!?7T9204U%7T5.1%]?`%]?2D-27T5.1%]?`%]?9&]? -XM9VQO8F%L7V-T;W)S7V%U>``O=7-R+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&XN -XM4P!T97-T+F,`7V5N9`!P=71S0$!&0E-$7S$N,`!?1%E.04U)0P!?7V1S;U]H -XM86YD;&4`7VEN:71?=&QS0$!&0E-$7S$N,`!?:6YI=`!E;G9I&ET0$!&0E-$7S$N,`!?961A=&$`7T=,3T)!3%]/1D93151? -XM5$%"3$5?`&%T97AI=$!`1D)31%\Q+C``7TIV7U)E9VES=&5R0VQAa.out.uu << 'debc64a5f6aece67b22914f9f4be2988' -Xbegin 644 a.out -XM?T5,1@(!`0D```````````(`/@`!````L`1```````!``````````'@+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````-0&````````U`8````````` -XM`!````````$````&````V`8```````#8!E```````-@&4```````H`(````` -XM``"P`@``````````$````````@````8```"P!P```````+`'4```````L`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````S`8```````#,!D```````,P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``9-0P``P````H````)````"`````4```````````````$````````` -XM`P````0````"````!@````<````````````````````````````````````` -XM`````````"8````2````7`1```````#2`````````#X````2````;`1````` -XM```"`````````"L````1`!8`@`E0```````(`````````#,````1``\`V`90 -XM```````(`````````!\````2````?`1```````"B`````````$H````2```` -XMC`1````````O`````````$\````0`/'_B`E0`````````````````$@````2 -XM````G`1````````O``````````$````@``````````````````````````!? -XM2G9?4F5G:7-T97)#;&%SX$$`#_)?`$$`"0D)"0_R7N!!``:``` -XM``#IX/____\EY@00`&@!````Z=#_____)=X$$`!H`@```.G`_____R76!!`` -XM:`,```#IL/____\ES@00`&@$````Z:#___\`````051,C6<(55.+'TACPX7; -XM2(ULQQ!(B2VU!!``?CI(BU<(2(72=#%(B17[`1``#[8"A,!T(TB#P@$\+TB+ -XM!>?___^@0____B=](B>I,B>;HBP```(G'Z%#____H*____^O6D)"0 -XMD)"0D)"0D)"0D$B#[`B`/1T$$```=!#K))!(@\`(2(D%?0$0`/_22(L%=`$0 -XM`$B+$$B%TG7DQ@7U`Q```4B#Q`C#9F9FD&9F9I!(@SV8`Q```'06N`````!( -XMA'`@)````1O__R``$```````)@9` -XM`````````````````"@)4```````%``````````!>E(``7@0`0,,!PB0`0`` -XM'````!P```"P!$``DP````!"#A",`D4.&$$.((,$A@,4````/````%`%0``X -XM`````$0.$``````4````5````)`%0``B```````````````<````;````,`% -XM0``M`````$$.$(8"0PT&```````````````8``````````%Z4@`!>!`!`PP' -XM")`!````````%````"````#P!4``)0````!(#A"#`@```0`````````5```` -XM``````P`````````.`1````````-`````````!@&0```````!`````````#X -XM`4````````4`````````*`-````````&`````````#@"0```````"@`````` -XM``!=``````````L`````````&``````````5`````````````````````P`` -XM```````X"5````````(`````````>``````````4``````````<````````` -XM%P````````#``T```````/[__V\`````H`-```````#___]O``````$````` -XM````\/__;P````"&`T`````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````/__________``````````#_____ -XM_____P````````````````````"P!U````````````````````````````!B -XM!$```````'($0```````@@1```````"2!$```````*($0````````"1&'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(`+G-T``````````$````"@````@`````````&``````` -XM``!M`````0````8`````````.`1````````X!````````!,````````````` -XM```````$````````````````````:`````$````&`````````$P$0``````` -XM3`0```````!@````````````````````!``````````0`````````',````! -XM````!@````````"P!$```````+`$````````:`$``````````````````!`` -XM``````````````````!Y`````0````8`````````&`9````````8!@`````` -XM``X````````````````````$````````````````````?P````$````"```` -XM`````"8&0```````)@8```````"E`````````````````````0`````````` -XM`````````(<````!`````@````````#,!D```````,P&````````"``````` -XM``````````````0```````````````````"5`````0````,`````````V`90 -XM``````#8!@```````!@````````````````````(```````````````````` -XMFP````$````"`````````/`&4```````\`8```````#````````````````` -XM````"````````````````````*4````&`````P````````"P!U```````+`' -XM````````8`$````````%``````````@`````````$`````````"N`````0`` -XM``,`````````$`E0```````0"0```````!`````````````````````(```` -XM````````````````M0````$````#`````````"`)4```````(`D````````0 -XM````````````````````"````````````````````+P````!`````P`````` -XM```P"5```````#`)````````"`````````````````````@````````````` -XM``````#!`````0````,`````````.`E0```````X"0```````$`````````` -XM```````````(``````````@`````````Q@````@````#`````````'@)4``` -XM````>`D````````0````````````````````"````````````````````,L` -XM```!`````````````````````````'@)````````+`$````````````````` -XM``$````````````````````1`````P````````````````````````"D"@`` -XM`````-0````````````````````!`````````````````````0````(````` -XM````````````````````.!(```````"0!@```````!H````T````"``````` -XM```8``````````D````#`````````````````````````,@8````````^0$` -XM``````````````````$````````````````````````````````````````` -XM`````````````````P`!`,@!0````````````````````````P`"`.`!0``` -XM`````````````````````P`#`/@!0````````````````````````P`$`#@" -XM0````````````````````````P`%`"@#0````````````````````````P`& -XM`(8#0````````````````````````P`'`*`#0``````````````````````` -XM`P`(`,`#0````````````````````````P`)`#@$0``````````````````` -XM`````P`*`$P$0````````````````````````P`+`+`$0``````````````` -XM`````````P`,`!@&0````````````````````````P`-`"8&0``````````` -XM`````````````P`.`,P&0````````````````````````P`/`-@&4``````` -XM`````````````````P`0`/`&4````````````````````````P`1`+`'4``` -XM`````````````````````P`2`!`)4````````````````````````P`3`"`) -XM4````````````````````````P`4`#`)4````````````````````````P`5 -XM`#@)4````````````````````````P`6`'@)4``````````````````````` -XM`P`7`````````````````````````````P`8```````````````````````` -XM`````P`9`````````````````````````````P`:```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`2`!`) -XM4`````````````````!@`````0`3`"`)4`````````````````!N`````0`4 -XM`#`)4`````````````````![`````@`+`%`%0`````````````````"1```` -XM`0`6`'@)4````````0````````"@`````0`/`.@&4`````````````````"G -XM`````@`+`)`%0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`2`!@)4`````````````````#``````0`3`"@)4``````````` -XM``````#-`````0`0`'@'4`````````````````#;`````0`4`#`)4``````` -XM``````````#G`````@`+`/`%0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0``$@```%P$0```````T@`````````Q`0`` -XM$0`1`+`'4``````````````````Z`0``$0(/`.`&4`````````````````!' -XM`0``$@```&P$0````````@````````!;`0``$@`)`#@$0``````````````` -XM``!A`0``$0`6`(`)4```````"`````````!I`0``$0`/`-@&4```````"``` -XM``````!T`0``$@`+`+`$0```````DP````````![`0``$@```'P$0``````` -XMH@````````",`0``$`#Q_W@)4`````````````````"8`0``$@`+`,`%0``` -XM````+0````````"=`0``$@`,`!@&0`````````````````"C`0``$@```(P$ -XM0```````+P````````"R`0``$`#Q_W@)4`````````````````"Y`0``$0`5 -XM`#@)4`````````````````#/`0``$`#Q_X@)4`````````````````#4`0`` -XM$@```)P$0```````+P````````#E`0``(``````````````````````````` -XM8W)T,2YC`&%B:71A9P`O=7-R+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\ -XM8V]M;6%N9"UL:6YE/@`\8G5I;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ) -XM4U1?7P!?7T143U)?3$E35%]?`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D -XM=&]Rsym.o.uu << 'END-of-sym.o.uu' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.1.uu << 'cc3b7341ff25eb16b80756fcb867a66b' -Xbegin 644 sym.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````"``0```````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.uu << '07b26866a0eaf5d2a40d8f75b1109c67' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tdup.o.uu << 'END-of-dup.o.uu' -Xbegin 644 dup.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tdup.o.1.uu << 'f11d3ae31690547dd28efbfd6006f908' -Xbegin 644 dup.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````"$`0```````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tdup.o.uu << 'b473e23605eb82e8423dd39bf18cc444' -Xbegin 644 dup.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tpkill.uu << 'END-of-pkill.uu' -Xbegin 755 pkill -XM?T5,1@$!`0D```````````(``P`!````D(X$"#0```#T+@```````#0`(``& -XM`"@`&P`8``8````T````-(`$"#2`!`C`````P`````4````$`````P```/0` -XM``#T@`0(](`$"!4````5````!`````$````!``````````"`!`@`@`0(YBH` -XM`.8J```%`````!````$```#H*@``Z+H$".BZ!`C$`0``R`(```8`````$``` -XM`@````0K```$NP0(!+L$"-````#0````!@````0````$````#`$```R!!`@, -XM@00(&````!@````$````!````"]L:6)E>&5C+VQD+65L9BYS;RXQ``````@` -XM```$`````0```$9R965"4T0`%C4,`"4```!"`````````$`````%```````` -XM``D````W````$````"\````4````!P```"4````H````*P```"(````D```` -XM-``````````]````,````#D````;`````````#4````N````$@```#,````6 -XM````(0`````````_````*@```#(````8`````0`````````Q````00`````` -XM`````````````````````````````````````````@````8````````````` -XM````````````#0`````````````````````````+```````````````````` -XM```````````,```````````````9````'````````````````````!$````` -XM`````P```!H````.`````````",````$````'P````\`````````'@```"D` -XM```(````)P```!4````L`````````"8````=`````````!,`````````%P`` -XM`#8````X````+0```#L````*````(````#P````^````.@`````````````` -XM```````````P`0```````#0````2````ZP$```````!6`0``$@````T````$ -XMNP0(`````!$`\?\X`0`````````````2````S`$```````"A````$@```-$! -XM````````'0```!(```#;`````````&H````2````70$```````"_````$@`` -XM`*0!````````!0```!(````-`0```````,H````2````%@```(R+!`@````` -XM$@`*`%P$```````#*#``` -XM$@```-H!````````*P```!(```"Z```````````````2````$`(````````` -XM````$@```$\`````````M@```!(````@`0`````````````2````70`````` -XM````````(````.X`````````&````!(```#'`````````(0````2````<0`` -XM``````!J!```$@````!L:6)K=FTN@<```(`/`(```````"PO`0( -XM!1```#"]!`@%$@``-+T$"`47```XO00(!2(``#R]!`@%(P``0+T$"`4G``!$ -XMO00(!2@``$B]!`@%-0``3+T$"`4V``#TNP0(!P$``/B[!`@'`@``_+L$"`<$ -XM````O`0(!P4```2\!`@'!@``"+P$"`<'```,O`0(!P@``!"\!`@'"0``%+P$ -XM"`<*```8O`0(!PP``!R\!`@'#0``(+P$"`<.```DO`0(!Q$``"B\!`@'$P`` -XM++P$"`<5```PO`0(!Q8``#2\!`@'&```.+P$"`<9```\O`0(!QH``$"\!`@' -XM&P``1+P$"`<<``!(O`0(!QT``$R\!`@''P``4+P$"`<@``!4O`0(!R$``%B\ -XM!`@')```7+P$"`#_____)?B[!`AH -XM"````.G0_____R7\NP0(:!````#IP/____\E`+P$"&@8````Z;#_____)02\ -XM!`AH(````.F@_____R4(O`0(:"@```#ID/____\E#+P$"&@P````Z8#_____ -XM)1"\!`AH.````.EP_____R44O`0(:$````#I8/____\E&+P$"&A(````Z5#_ -XM____)1R\!`AH4````.E`_____R4@O`0(:%@```#I,/____\E)+P$"&A@```` -XMZ2#_____)2B\!`AH:````.D0_____R4LO`0(:'````#I`/____\E,+P$"&AX -XM````Z?#^____)32\!`AH@````.G@_O___R4XO`0(:(@```#IT/[___\E/+P$ -XM"&B0````Z<#^____)4"\!`AHF````.FP_O___R5$O`0(:*````#IH/[___\E -XM2+P$"&BH````Z9#^____)4R\!`AHL````.F`_O___R50O`0(:+@```#I+P$"&@(`0``Z=#]____)7R\!`AH$`$``.G`_?___R6` -XMO`0(:!@!``#IL/W___\EA+P$"&@@`0``Z:#]____)8B\!`AH*`$``.F0_?__ -XM_R6,O`0(:#`!``#I@/W___\ED+P$"&@X`0``Z7#]____)92\!`AH0`$``.E@ -XM_?___R68O`0(:$@!``#I4/W___\EG+P$"&A0`0``Z4#]____):"\!`AH6`$` -XM`.DP_?___R6DO`0(:&`!``#I(/W___\EJ+P$"&AH`0``Z1#]__]5B>564X/L -XM$(/D\(M=!(G1C72=#(7;B36LO00(?C:+10B%P'0OH^BZ!`@/MA"$TG0C@\`! -XMZPH/MA"#P`&$TG04@/HO=?&CZ+H$"`^V$(/``832=>RX!+L$"(7`=#2)#"3H -XM&____\<$)(RE!`CH#____^B&_/__C44(B70D"(E$)`2)'"3HEP0``(D$).A_ -XM_O__Z/K\___KS9"0D)"0D)"058GE@^P(@#U0O00(`'0,ZQR#P`2C\+H$"/_2 -XMH?"Z!`B+$(72=>O&!5"]!`@!R<.058GE@^P(H>2[!`B%P'02N`````"%P'0) -XMQP0DY+L$"/_0R<.0D)"0D)"0D)"0D)"058GE4[OBI00(@^P4H8"]!`B%P'4% -XMN_JE!`CHL?[__XE<)`S'1"0$#*@$"(E$)`BA2+T$"(D$).CD^___QP0D`@`` -XM`.C(_?__D(VT)@````!5B>575KX!````4X'LG`0``(F%=/O__XF5%?/O__Q"F!`B-=@"-E8#[___'1"0$V:8$"(D4).@J_?__A<")PP^$ -XM@`(``(`[``^$BP```,<$)`@```#H:_W__X7`B85L^___#X1P`@``BY5T^___ -XMB[UL^___BP*)!XU%\(DZQT0D"`````")1"0$B1PDZ$3\__^)1P2)PHM%\(`X -XM`'4?@[UP^___!`^$.@$``'%>/O__W"F!`@/E\(/DL`XP@^%R0```(N5?/O_ -XM_XV]D/O__XN%>/O__\=$)`B!I@0(QT0D!``$``")5"0,B40D$(D\).C(^O__ -XMC460B40D!(D\).@Y^O__@\`!#X3R````]D69(`^$"@$``(M%I#'VBY5L^___ -XMB4($Z9/]__^XP*8$"+D$````_(G>B7UW#QT0D"`@```#'1"0$ -XM%J8$",<$)`,```#HX?K__[A]I@0(N0,```")G7C[__^)WHG'\Z8/A!O____' -XMA7S[__]XI@0(Z0S___^)7"0(QT0D!$:F!`C'!"0"````Z"[Y__^)7"0(QT0D -XM!#"F!`C'!"0"````Z!;Y__^)7"0(QT0D!%BF!`C'!"0"````Z/[X___H>?G_ -XM_X,X`G4PB5PD",=$)`2&I@0(QP0D`@```.C<^/__B5PD",=$)`2KI@0(QP0D -XM`@```.C$^/__B5PD",=$)`28I@0(QP0D`P```.@<^O__C;8`````C;\````` -XMC4PD!(/D\/]Q_%6)Y5>_VZ8$"%9348'LJ`P``(L9BTD$QT0D!+^G!`C'!"0` -XM````B8UP\___Z.7Y___H%=//__P`````Q]L>%>//__^6F!`C'A7SS___EI@0(QX6` -XM\___`````,>%B//__P````"+E7#S___'1"0(L*@$"(D<)(E4)`3H'OC__X/X -XM_P^$I`(``(/H1(/X-'8%Z!C[____)(7(J00(QP6FY_?__BX5P\___BY5P\___@\`$@_L!B86T\___BW($QX6, -XM\___X*,$"`^.6OW__X`^+0^%4?W__XU%[(U^`<=$)`@*````B40D!(D\).CC -XM]?__B<*+1>R`.``/A5<&``"+C;3S__^#ZP&)%?2Z!`C'A8SS___@HP0(B8UP -XM\___Z07]__^+/4R]!`@I^XF=O//__P^$'0$``(L=A+T$"(7;#X7M````BY5T -XM\___A=(/A%X!``"+C73S___'1"0$[Z8$"(D,).CK]?__A<")PP^$DPH``(N% -XMB//__X7`=#>A,+T$"(7`#X5[!@``#[]##L=$)`0&````B00DZ+;T__^%P`^$ -XM.@H``.@Y]?__@S@C#X6."@``C;7(^___B5PD",=$)`0`!```B30DZ*;T__^% -XMP`^$E@```(D<).@6]O__C47HQT0D"`H```")1"0$B30DZ-_T__^)P8M%Z`^V -XM`(3`#X0?!0``#[;0.Q4XO00(#XP`!0``BXUT\___QT0D!%:G!`C'!"0#```` -XMB4PD".@R]/__BPV(O00(A,'```/OT,,P>@%@^`! -XMA,`/A"\)``")'"3H8?7__XN%=//__\=$)`1`IP0(QP0D`P```(E$)`CHL_/_ -XM_XN%B//__\>%A//_______^%P`^%F@@``.AF]?__BXU\\___C97(\___B50D -XM$,=$)`P`````QT0D"`````")3"0$HZB]!`B+A7CS__^)!"3H3_7__X7`HZ2] -XM!`@/A(H(``#'1"0,?+T$",=$)`@`````QT0D!`@```")!"3H8O7__X7`HW2] -XM!`@/A#@(``"A?+T$"(D$).AX]/__A<")PJ-XO00(#X0%"0``BXUP\___H7R] -XM!`B)%"3'1"0$`````(T\N8F]N//__XE$)`CH0?/__XN%N//__XL0A=(/A&X" -XM``"A_+H$"(E4)`2-5=B)%"2)1"0(Z>__^%P`^%AP4``*%\O00(BSUTO00( -XMA<`/CAD"``#'A9SS__\`````ZV&)]O:'*`$```1T:HNU@//__X7V?BV-AV\! -XM``")1"00BX>(````B50D",=$)`2JIP0(B40D#*%(O00(B00DZ+#Q__^#A9SS -XM__\!BX6<\___.05\O00(#XZR`0``@<<``P``BU+E83S__^%TG@(.86$\___=:2A7+T$"(7`#X0=`0``BY.,````.U`$=1/I -XM#0$``)"-="8`.5`$#X3_````BP"%P(UV`'7NBY68\___QD0Z_P"+-7R]!`CI -XM:____XD<).A0\?__,T70"T74#X6D_?__H7B]!`B+E9SS___&!`(!Z9#]__^A -XM1+T$"/9$D#5`#X3P^O__C4'[/9J&`0")C83S__\/AI'[__^+A73S___'1"0$ -XM5J<$",<$)`,```")1"0(Z`[O___'1"0(`P```,=$)`3AI@0(B3PDZ-;N__^% -XMP'4#C7X$O@$```#K#(/&`8/^(`^$<0,``(L$M;"\!`B)?"0$B00DZ(GN__^% -XMP'7=@_X@#X11`P``BX6T\___@^L!B37TN@0(QX6,\___X*,$"(F%%E//__P````")C:SS__\QR>L_BX6L\___AN/C8W(\___C578B4PD"(E4)`3'1"0,``@``(D$).AY[/__BY6X -XM\___C8W(\___B4PD#(L"QT0D!'"I!`C'!"0"````B40D".C?[/__BX6H\___ -XMBX`8`0``B85L\___Z2W___^)="0(QT0D!`````")'"3H%.W__X/__W0)H7B] -XM!`C&!#@!BQ5\O00(N`$```"+'72]!`B%TGYG,?8Q_^LFBPV0O00(ANP,<"%_P^4P(D$).AR -XM[?__BX6H\___BY60\___.Y`<`0``#YS`Z<[^__^)'"3HL.O__X7`#Y7`Z17X -XM__^A8+T$"(7`="*+4S`[4`1U"NL8C78`.5`$=!"+`(7`=?60C70F`.E6_?__ -XMH6R]!`B%P'48B?;K)3E31'0@BP"%P)"-="8`#X2,^___BU`$@_K_=>3V@R@! -XM```"==NA:+T$"(7`=#6+4S@[4`1U#>LKC;8`````.5`$=""+`(7`=?60C70F -XM`.G=^___QX6,\___X*,$")#I'_/__XL59+T$"(72="R+BP`"``"+0@0YP746 -XMZQV)]HL2A=(/A,'\__^+0@0YR)!T"87)?NJ#P`%UY8N%O//__X7`#X4*^___ -XMBX68\___QD0X_P&+-7R]!`CI]/K__\=$)`0@J00(QP0D`P```.CMZO__H:2] -XM!`B)!"3H<.O__\=$)`2-IP0(QP0D`P```(E$)`CHR.K__XV5R//__XE4)`C' -XM1"0$;Z<$",<$)`,```#HJNK__XD<).@R[/__BY5T\___QT0D!`"I!`C'!"0# -XM````B50D".CTZ___B1PDZ`SL__^+E73S___'1"0$"J<$",<$)`,```")5"0( -XMZ%[J__^+A73S___'1"0$\:8$",<$)`,```")1"0(Z+#K__^A>+T$"(ET)`C' -XM1"0$`````(D$).B'ZO__Z7S]__^+C73S___'1"0$(J<$",<$)`,```")3"0( -XMZ`3J__^A?+T$",=$)`1(J00(QP0D`P```(E$)`CH5^O__XVT)@````!5B>56 -XMB<93@^P0H92]!`B%P'4-BQV`O00(A=MU0XUV`(L-F+T$"(7)=5:AE+T$"(7` -XM="2-AF\!``")1"0(BT8HQP0DZ:<$"(E$)`3H0.K__X/$$%M>7<.A@+T$"(7` -XM=-.+1BC'!"0'J`0(B40D!.@=ZO__@\006UY=PXVV`````*&DO00(QT0D"``` -XM``")="0$B00DZ&?J__^%P(G#=(N+1BC'!"3EIP0(B40D!.C>Z?__BP.%P'28 -XM@\,$B40D!,<$).RG!`CHQ>G__XL3A=)TX:$PO00(A#.+`L8`((/``8D"BP.%P'6[Z4[___^A0+T$",<$)"````")1"0$ -XMZ%GH___KF8VT)@`````[0AA]R(E4)`3'!"0@````Z-OI___I>/___XVV```` -XM`%6)Y8/L"(M%".BR_O__H?BZ!`C'!"3LIP0(B40D!.@MZ?__N`$```#)PXVV -XM`````%6)Y593@^P0H8R]!`B+=0B%P`^$N````,<$).^G!`CH_.C__XGPZ&7^ -XM___'!"3UIP0(Z.GH__^A0+T$"(D$).A,Z/__H3"]!`B%P`^%^````*$\O00( -XMBU`$@^H!A=*)4`0/B/8```"+%3R]!`B+`@^V&(/``8D"B=F-M"8`````@_D* -XM=#N#P0%T-J$PO00(A70+@_M9=1^-M@````"A]+H$"(E$)`2+1BB) -XM!"3H#.?__X/``70VN@$```"#Q!")T%M>7<.A/+T$"(D$).B,Z?__B<'I=?__ -XM_Z$\O00(B00DZ/CH__^)P>EA____Z,SG__\QTH,X`W3#BT8HQP0D^*<$"(E$ -XM)`3H`NC__X/$$#'26XG07EW#H3R]!`B)!"3H.NG__XG#Z1K___^A/+T$"(D$ -XM).BFZ/__B'`@)`!;+4Q39FEL;F]V>%T@6RUD(&1E;&EM -XM70!;+7-I9VYA;%T@6RU)3&9I;F]V>%T`+V1E=B\`0V%N;F]T(&%L;&]C871E -XM("5Z=2!B>71E0`E0!);G9A;&ED('!I -XM9"!I;B!F:6QE(&`E7-T -XM96U="B`@("`@("`@("`@("!;+5`@<'!I9%T@6RU5('5I9%T@6RUG('!G'!R97-S:6]N(&`E'`@ -XM)````+^G!`@`````X+L$"`\```"^IP0(`0`````````!`````0````$```!^ -XM````#````(R+!`@-````C*4$"`0````D@00(!0```.B&!`@&````R(($"`H` -XM``!%`@``"P```!`````5``````````,```#HNP0(`@```'`!```4````$0`` -XM`!<````'`@)``D1G)E94)3 -XM1#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

6%R($5X<"`D`$=#0SH@*$=. -XM52D@-"XR+C$@,C`P-S`W,3D@(%M&6YS -XM='(`+F=N=2YV97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R`$``````````````0`````````1`````P``````````````)"X``,X````` -XM``````````$``````````0````(``````````````"PS``!@"0``&@```%(` -XM```$````$`````D````#``````````````",/```9@8``````````````0`` -XM`````````````````````````````````/2`!`@``````P`!```````,@00( -XM``````,``@``````)($$"``````#``,``````,B"!`@``````P`$``````#H -XMA@0(``````,`!0``````+HD$"``````#``8``````+2)!`@``````P`'```` -XM``#4B00(``````,`"```````'(H$"``````#``D``````(R+!`@``````P`* -XM``````"@BP0(``````,`"P``````D(X$"``````#``P``````(RE!`@````` -XM`P`-``````"8I00(``````,`#@``````Z+H$"``````#``\```````"[!`@` -XM`````P`0```````$NP0(``````,`$0``````U+L$"``````#`!(``````-R[ -XM!`@``````P`3``````#DNP0(``````,`%```````Z+L$"``````#`!4````` -XM`*R\!`@``````P`6``````````````````,`%P`````````````````#`!@` -XM`````````````````P`9``````````````````,`&@`!```````````````$ -XM`/'_"`````R!!`@8`````0`"``\```````````````0`\?\P```````````` -XM```$`/'_/P``````````````!`#Q_P\```````````````0`\?]*```````` -XM```````$`/'_50```-2[!`@``````0`2`&,```#````Y+L$"``````!`!0`Z@```&"E!`@``````@`,```!```````` -XM``````0`\?\P```````````````$`/'_/P``````````````!`#Q_P`!```` -XM``````````0`\?\A`0`````````````$`/'_*0$``)"/!`A(`````@`,`"\! -XM``"`O00(!`````$`%@`U`0``X(\$",0#```"``P`/@$``*B]!`@$`````0`6 -XM`$0!``"PHP0(*@````(`#`!,`0``G+T$"`0````!`!8`5@$``)"]!`@$```` -XM`0`6`%X!``!PO00(!`````$`%@!G`0``;+T$"`0````!`!8`<`$``&B]!`@$ -XM`````0`6`'@!``"(O00(!`````$`%@!_`0``A+T$"`0````!`!8`A@$``)2] -XM!`@$`````0`6`(X!``!DO00(!`````$`%@"6`0``_+H$"`0````!``\`G0$` -XM`&"]!`@$`````0`6`*8!``"8O00(!`````$`%@"P`0``^+H$"`0````!``\` -XMM@$``%R]!`@$`````0`6`+\!``"@O00(!`````$`%@#(`0``6+T$"`0````! -XM`!8`T0$``(R]!`@$`````0`6`-T!``!4O00(!`````$`%@#F`0``X*,$"'$! -XM```"``P`[@$``/2Z!`@$`````0`/`/4!``"DO00(!`````$`%@#X`0``?+T$ -XM"`0````!`!8`_@$``'2]!`@$`````0`6``0"``!XO00(!`````$`%@`-`@`` -XM<*($"#H!```"``P`&@(````````T````$@```"P"````````5@$``!(````_ -XM`@``!+L$"``````1`/'_2`(`````````````$@```%<"````````H0```!(` -XM``!F`@```````!T````2````>0(```````!J````$@```(@"``#LN@0(```` -XM`!$"#P"5`@```````+\````2````J@(````````%````$@```+X"```````` -XMR@```!(```#4`@``C(L$"``````2``H`V@(`````````````$@```.H"```` -XM````+@```!(```#Y`@```````)(!```2````"0,``*R]!`@$````$0`6`!$# -XM``"PO`0(@````!$`%@`G`P```````)`````2````.`,``#"]!`@$````$0`6 -XM`$\#````````90(``!(```!@`P``Z+H$"`0````1``\`:P,``)".!`B8```` -XM$@`,`'(#`````````````!(```"!`P```````%(7```2````DP,``#2]!`@$ -XM````$0`6`*0#`````````````!(```"U`P```````!T"```2````Q@,````` -XM```6````$@```-@#````````"P```!(```#C`P```````!T````2````]@,` -XM```````Y````$@````<$``"LO`0(`````!``\?\3!```L),$"+D.```2``P` -XM&`0```````#?````$@```"L$````````00```!(````Z!``````````````2 -XM````2P0``#B]!`@$````$0`6`&,$```\O00(!````!$`%@!V!````````-,` -XM```2````A@0```````!?````$@```)<$``",I00(`````!(`#0"=!```0+T$ -XM"`0````1`!8`L00``$2]!`@$````$0`6`,X$````````8@```!(```#?!``` -XM`````"8"```2````ZP0```````#+````$@```/T$````````^@```!(````/ -XM!0```````$,````2````'@4```````##````$@```"\%````````/@```!(` -XM```]!0``K+P$"``````0`/'_1`4``.B[!`@`````$0#Q_UH%``"PO00(```` -XM`!``\?]?!0```````&(#```2````&5C0$!&0E-$7S$N,`!O<'1Apkill.new.uu << '672fadc176202ece55dbb7d4b04d86b9' -Xbegin 644 pkill.new -XM?T5,1@$!`0D```````````(``P`!````D(X$"#0```#`/@```````#0`(``& -XM`"@`&P`8``8````T````-(`$"#2`!`C`````P`````4````$`````P```/0` -XM``#T@`0(](`$"!4````5````!`````$````!``````````"`!`@`@`0(YBH` -XM`.8J```%`````!````$```#H*@``Z+H$".BZ!`C$`0``R`(```8`````$``` -XM`@````0K```$NP0(!+L$"-````#0````!@````0````$````#`$```R!!`@, -XM@00(&````!@````$````!````"]L:6)E>&5C+VQD+65L9BYS;RXQ``````@` -XM```$`````0```$9R965"4T0`%C4,`"4```!"`````````$`````%```````` -XM``D````W````$````"\````4````!P```"4````H````*P```"(````D```` -XM-``````````]````,````#D````;`````````#4````N````$@```#,````6 -XM````(0`````````_````*@```#(````8`````0`````````Q````00`````` -XM`````````````````````````````````````````@````8````````````` -XM````````````#0`````````````````````````+```````````````````` -XM```````````,```````````````9````'````````````````````!$````` -XM`````P```!H````.`````````",````$````'P````\`````````'@```"D` -XM```(````)P```!4````L`````````"8````=`````````!,`````````%P`` -XM`#8````X````+0```#L````*````(````#P````^````.@`````````````` -XM```````````P`0```````#0````2````ZP$```````!6`0``$@````T````$ -XMNP0(`````!$`\?\X`0`````````````2````S`$```````"A````$@```-$! -XM````````'0```!(```#;`````````&H````2````70$```````"_````$@`` -XM`*0!````````!0```!(````-`0```````,H````2````%@```(R+!`@````` -XM$@`*`%P$```````#*#``` -XM$@```-H!````````*P```!(```"Z```````````````2````$`(````````` -XM````$@```$\`````````M@```!(````@`0`````````````2````70`````` -XM````````(````.X`````````&````!(```#'`````````(0````2````<0`` -XM``````!J!```$@````!L:6)K=FTN@<```(`/`(```````"PO`0( -XM!1```#"]!`@%$@``-+T$"`47```XO00(!2(``#R]!`@%(P``0+T$"`4G``!$ -XMO00(!2@``$B]!`@%-0``3+T$"`4V``#TNP0(!P$``/B[!`@'`@``_+L$"`<$ -XM````O`0(!P4```2\!`@'!@``"+P$"`<'```,O`0(!P@``!"\!`@'"0``%+P$ -XM"`<*```8O`0(!PP``!R\!`@'#0``(+P$"`<.```DO`0(!Q$``"B\!`@'$P`` -XM++P$"`<5```PO`0(!Q8``#2\!`@'&```.+P$"`<9```\O`0(!QH``$"\!`@' -XM&P``1+P$"`<<``!(O`0(!QT``$R\!`@''P``4+P$"`<@``!4O`0(!R$``%B\ -XM!`@')```7+P$"`#_____)?B[!`AH -XM"````.G0_____R7\NP0(:!````#IP/____\E`+P$"&@8````Z;#_____)02\ -XM!`AH(````.F@_____R4(O`0(:"@```#ID/____\E#+P$"&@P````Z8#_____ -XM)1"\!`AH.````.EP_____R44O`0(:$````#I8/____\E&+P$"&A(````Z5#_ -XM____)1R\!`AH4````.E`_____R4@O`0(:%@```#I,/____\E)+P$"&A@```` -XMZ2#_____)2B\!`AH:````.D0_____R4LO`0(:'````#I`/____\E,+P$"&AX -XM````Z?#^____)32\!`AH@````.G@_O___R4XO`0(:(@```#IT/[___\E/+P$ -XM"&B0````Z<#^____)4"\!`AHF````.FP_O___R5$O`0(:*````#IH/[___\E -XM2+P$"&BH````Z9#^____)4R\!`AHL````.F`_O___R50O`0(:+@```#I+P$"&@(`0``Z=#]____)7R\!`AH$`$``.G`_?___R6` -XMO`0(:!@!``#IL/W___\EA+P$"&@@`0``Z:#]____)8B\!`AH*`$``.F0_?__ -XM_R6,O`0(:#`!``#I@/W___\ED+P$"&@X`0``Z7#]____)92\!`AH0`$``.E@ -XM_?___R68O`0(:$@!``#I4/W___\EG+P$"&A0`0``Z4#]____):"\!`AH6`$` -XM`.DP_?___R6DO`0(:&`!``#I(/W___\EJ+P$"&AH`0``Z1#]__]5B>564X/L -XM$(/D\(M=!(G1C72=#(7;B36LO00(?C:+10B%P'0OH^BZ!`@/MA"$TG0C@\`! -XMZPH/MA"#P`&$TG04@/HO=?&CZ+H$"`^V$(/``832=>RX!+L$"(7`=#2)#"3H -XM&____\<$)(RE!`CH#____^B&_/__C44(B70D"(E$)`2)'"3HEP0``(D$).A_ -XM_O__Z/K\___KS9"0D)"0D)"058GE@^P(@#U0O00(`'0,ZQR#P`2C\+H$"/_2 -XMH?"Z!`B+$(72=>O&!5"]!`@!R<.058GE@^P(H>2[!`B%P'02N`````"%P'0) -XMQP0DY+L$"/_0R<.0D)"0D)"0D)"0D)"058GE4[OBI00(@^P4H8"]!`B%P'4% -XMN_JE!`CHL?[__XE<)`S'1"0$#*@$"(E$)`BA2+T$"(D$).CD^___QP0D`@`` -XM`.C(_?__D(VT)@````!5B>575KX!````4X'LG`0``(F%=/O__XF5%?/O__Q"F!`B-=@"-E8#[___'1"0$V:8$"(D4).@J_?__A<")PP^$ -XM@`(``(`[``^$BP```,<$)`@```#H:_W__X7`B85L^___#X1P`@``BY5T^___ -XMB[UL^___BP*)!XU%\(DZQT0D"`````")1"0$B1PDZ$3\__^)1P2)PHM%\(`X -XM`'4?@[UP^___!`^$.@$``'%>/O__W"F!`@/E\(/DL`XP@^%R0```(N5?/O_ -XM_XV]D/O__XN%>/O__\=$)`B!I@0(QT0D!``$``")5"0,B40D$(D\).C(^O__ -XMC460B40D!(D\).@Y^O__@\`!#X3R````]D69(`^$"@$``(M%I#'VBY5L^___ -XMB4($Z9/]__^XP*8$"+D$````_(G>B7UW#QT0D"`@```#'1"0$ -XM%J8$",<$)`,```#HX?K__[A]I@0(N0,```")G7C[__^)WHG'\Z8/A!O____' -XMA7S[__]XI@0(Z0S___^)7"0(QT0D!$:F!`C'!"0"````Z"[Y__^)7"0(QT0D -XM!#"F!`C'!"0"````Z!;Y__^)7"0(QT0D!%BF!`C'!"0"````Z/[X___H>?G_ -XM_X,X`G4PB5PD",=$)`2&I@0(QP0D`@```.C<^/__B5PD",=$)`2KI@0(QP0D -XM`@```.C$^/__B5PD",=$)`28I@0(QP0D`P```.@<^O__C;8`````C;\````` -XMC4PD!(/D\/]Q_%6)Y5>_VZ8$"%9348'LJ`P``(L9BTD$QT0D!+^G!`C'!"0` -XM````B8UP\___Z.7Y___H%=//__P`````Q]L>%>//__^6F!`C'A7SS___EI@0(QX6` -XM\___`````,>%B//__P````"+E7#S___'1"0(L*@$"(D<)(E4)`3H'OC__X/X -XM_P^$I`(``(/H1(/X-'8%Z!C[____)(7(J00(QP6FY_?__BX5P\___BY5P\___@\`$@_L!B86T\___BW($QX6, -XM\___X*,$"`^.6OW__X`^+0^%4?W__XU%[(U^`<=$)`@*````B40D!(D\).CC -XM]?__B<*+1>R`.``/A5<&``"+C;3S__^#ZP&)%?2Z!`C'A8SS___@HP0(B8UP -XM\___Z07]__^+/4R]!`@I^XF=O//__P^$'0$``(L=A+T$"(7;#X7M````BY5T -XM\___A=(/A%X!``"+C73S___'1"0$[Z8$"(D,).CK]?__A<")PP^$DPH``(N% -XMB//__X7`=#>A,+T$"(7`#X5[!@``#[]##L=$)`0&````B00DZ+;T__^%P`^$ -XM.@H``.@Y]?__@S@C#X6."@``C;7(^___B5PD",=$)`0`!```B30DZ*;T__^% -XMP`^$E@```(D<).@6]O__C47HQT0D"`H```")1"0$B30DZ-_T__^)P8M%Z`^V -XM`(3`#X0?!0``#[;0.Q4XO00(#XP`!0``BXUT\___QT0D!%:G!`C'!"0#```` -XMB4PD".@R]/__BPV(O00(A,'```/OT,,P>@%@^`! -XMA,`/A"\)``")'"3H8?7__XN%=//__\=$)`1`IP0(QP0D`P```(E$)`CHL_/_ -XM_XN%B//__\>%A//_______^%P`^%F@@``.AF]?__BXU\\___C97(\___B50D -XM$,=$)`P`````QT0D"`````")3"0$HZB]!`B+A7CS__^)!"3H3_7__X7`HZ2] -XM!`@/A(H(``#'1"0,?+T$",=$)`@`````QT0D!`@```")!"3H8O7__X7`HW2] -XM!`@/A#@(``"A?+T$"(D$).AX]/__A<")PJ-XO00(#X0%"0``BXUP\___H7R] -XM!`B)%"3'1"0$`````(T\N8F]N//__XE$)`CH0?/__XN%N//__XL0A=(/A&X" -XM``"A_+H$"(E4)`2-5=B)%"2)1"0(Z>__^%P`^%AP4``*%\O00(BSUTO00( -XMA<`/CAD"``#'A9SS__\`````ZV&)]O:'*`$```1T:HNU@//__X7V?BV-AV\! -XM``")1"00BX>(````B50D",=$)`2JIP0(B40D#*%(O00(B00DZ+#Q__^#A9SS -XM__\!BX6<\___.05\O00(#XZR`0``@<<``P``BU+E83S__^%TG@(.86$\___=:2A7+T$"(7`#X0=`0``BY.,````.U`$=1/I -XM#0$``)"-="8`.5`$#X3_````BP"%P(UV`'7NBY68\___QD0Z_P"+-7R]!`CI -XM:____XD<).A0\?__,T70"T74#X6D_?__H7B]!`B+E9SS___&!`(!Z9#]__^A -XM1+T$"/9$D#5`#X3P^O__C4'[/9J&`0")C83S__\/AI'[__^+A73S___'1"0$ -XM5J<$",<$)`,```")1"0(Z`[O___'1"0(`P```,=$)`3AI@0(B3PDZ-;N__^% -XMP'4#C7X$O@$```#K#(/&`8/^(`^$<0,``(L$M;"\!`B)?"0$B00DZ(GN__^% -XMP'7=@_X@#X11`P``BX6T\___@^L!B37TN@0(QX6,\___X*,$"(F%%E//__P````")C:SS__\QR>L_BX6L\___AN/C8W(\___C578B4PD"(E4)`3'1"0,``@``(D$).AY[/__BY6X -XM\___C8W(\___B4PD#(L"QT0D!'"I!`C'!"0"````B40D".C?[/__BX6H\___ -XMBX`8`0``B85L\___Z2W___^)="0(QT0D!`````")'"3H%.W__X/__W0)H7B] -XM!`C&!#@!BQ5\O00(N`$```"+'72]!`B%TGYG,?8Q_^LFBPV0O00(ANP,<"%_P^4P(D$).AR -XM[?__BX6H\___BY60\___.Y`<`0``#YS`Z<[^__^)'"3HL.O__X7`#Y7`Z17X -XM__^A8+T$"(7`="*+4S`[4`1U"NL8C78`.5`$=!"+`(7`=?60C70F`.E6_?__ -XMH6R]!`B%P'48B?;K)3E31'0@BP"%P)"-="8`#X2,^___BU`$@_K_=>3V@R@! -XM```"==NA:+T$"(7`=#6+4S@[4`1U#>LKC;8`````.5`$=""+`(7`=?60C70F -XM`.G=^___QX6,\___X*,$")#I'_/__XL59+T$"(72="R+BP`"``"+0@0YP746 -XMZQV)]HL2A=(/A,'\__^+0@0YR)!T"87)?NJ#P`%UY8N%O//__X7`#X4*^___ -XMBX68\___QD0X_P&+-7R]!`CI]/K__\=$)`0@J00(QP0D`P```.CMZO__H:2] -XM!`B)!"3H<.O__\=$)`2-IP0(QP0D`P```(E$)`CHR.K__XV5R//__XE4)`C' -XM1"0$;Z<$",<$)`,```#HJNK__XD<).@R[/__BY5T\___QT0D!`"I!`C'!"0# -XM````B50D".CTZ___B1PDZ`SL__^+E73S___'1"0$"J<$",<$)`,```")5"0( -XMZ%[J__^+A73S___'1"0$\:8$",<$)`,```")1"0(Z+#K__^A>+T$"(ET)`C' -XM1"0$`````(D$).B'ZO__Z7S]__^+C73S___'1"0$(J<$",<$)`,```")3"0( -XMZ`3J__^A?+T$",=$)`1(J00(QP0D`P```(E$)`CH5^O__XVT)@````!5B>56 -XMB<93@^P0H92]!`B%P'4-BQV`O00(A=MU0XUV`(L-F+T$"(7)=5:AE+T$"(7` -XM="2-AF\!``")1"0(BT8HQP0DZ:<$"(E$)`3H0.K__X/$$%M>7<.A@+T$"(7` -XM=-.+1BC'!"0'J`0(B40D!.@=ZO__@\006UY=PXVV`````*&DO00(QT0D"``` -XM``")="0$B00DZ&?J__^%P(G#=(N+1BC'!"3EIP0(B40D!.C>Z?__BP.%P'28 -XM@\,$B40D!,<$).RG!`CHQ>G__XL3A=)TX:$PO00(A#.+`L8`((/``8D"BP.%P'6[Z4[___^A0+T$",<$)"````")1"0$ -XMZ%GH___KF8VT)@`````[0AA]R(E4)`3'!"0@````Z-OI___I>/___XVV```` -XM`%6)Y8/L"(M%".BR_O__H?BZ!`C'!"3LIP0(B40D!.@MZ?__N`$```#)PXVV -XM`````%6)Y593@^P0H8R]!`B+=0B%P`^$N````,<$).^G!`CH_.C__XGPZ&7^ -XM___'!"3UIP0(Z.GH__^A0+T$"(D$).A,Z/__H3"]!`B%P`^%^````*$\O00( -XMBU`$@^H!A=*)4`0/B/8```"+%3R]!`B+`@^V&(/``8D"B=F-M"8`````@_D* -XM=#N#P0%T-J$PO00(A70+@_M9=1^-M@````"A]+H$"(E$)`2+1BB) -XM!"3H#.?__X/``70VN@$```"#Q!")T%M>7<.A/+T$"(D$).B,Z?__B<'I=?__ -XM_Z$\O00(B00DZ/CH__^)P>EA____Z,SG__\QTH,X`W3#BT8HQP0D^*<$"(E$ -XM)`3H`NC__X/$$#'26XG07EW#H3R]!`B)!"3H.NG__XG#Z1K___^A/+T$"(D$ -XM).BFZ/__B'`@)`!;+4Q39FEL;F]V>%T@6RUD(&1E;&EM -XM70!;+7-I9VYA;%T@6RU)3&9I;F]V>%T`+V1E=B\`0V%N;F]T(&%L;&]C871E -XM("5Z=2!B>71E0`E0!);G9A;&ED('!I -XM9"!I;B!F:6QE(&`E7-T -XM96U="B`@("`@("`@("`@("!;+5`@<'!I9%T@6RU5('5I9%T@6RUG('!G'!R97-S:6]N(&`E'`@ -XM)````+^G!`@`````X+L$"`\```"^IP0(`0`````````!`````0````$```!^ -XM````#````(R+!`@-````C*4$"`0````D@00(!0```.B&!`@&````R(($"`H` -XM``!%`@``"P```!`````5``````````,```#HNP0(`@```'`!```4````$0`` -XM`!<````'`@)``D1G)E94)3 -XM1#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

6%R($5X<"`D`$=#0SH@*$=. -XM52D@-"XR+C$@,C`P-S`W,3D@(%M&6YS -XM='(`+F=N=2YV97)S:6]N`"YG;G4N=F5R'0`+F9I;FD`+G)O9&%T80`N9&%T80`N96A? -XM9G)A;64`+F1Y;F%M:6,`+F-T;W)S`"YD=&]R`0``<+T$"`0````!`!8`9P$``&R]!`@$`````0`6`'`!``!H -XMO00(!`````$`%@!X`0``B+T$"`0````!`!8`?P$``(2]!`@$`````0`6`(8! -XM``"4O00(!`````$`%@".`0``9+T$"`0````!`!8`E@$``/RZ!`@$`````0`/ -XM`)T!``!@O00(!`````$`%@"F`0``F+T$"`0````!`!8`L`$``/BZ!`@$```` -XM`0`/`+8!``!+T$"`0````!`!8` -XM#0(``'"B!`@Z`0```@`,`!H"````````-````!(````L`@```````%8!```2 -XM````/P(```2[!`@`````$0#Q_T@"`````````````!(```!7`@```````*$` -XM```2````9@(````````=````$@```'D"````````:@```!(```"(`@``[+H$ -XM"``````1`@\`E0(```````"_````$@```*H"````````!0```!(```"^`@`` -XM`````,H````2````U`(``(R+!`@`````$@`*`-H"`````````````!(```#J -XM`@```````"X````2````^0(```````"2`0``$@````D#``"LO00(!````!$` -XM%@`1`P``L+P$"(`````1`!8`)P,```````"0````$@```#@#```PO00(!``` -XM`!$`%@!/`P```````&4"```2````8`,``.BZ!`@$````$0`/`&L#``"0C@0( -XMF````!(`#`!R`P`````````````2````@0,```````!2%P``$@```),#```T -XMO00(!````!$`%@"D`P`````````````2````M0,````````=`@``$@```,8# -XM````````%@```!(```#8`P````````L````2````XP,````````=````$@`` -XM`/8#````````.0```!(````'!```K+P$"``````0`/'_$P0``+"3!`BY#@`` -XM$@`,`!@$````````WP```!(````K!````````$$````2````.@0````````` -XM````$@```$L$```XO00(!````!$`%@!C!```/+T$"`0````1`!8`=@0````` -XM``#3````$@```(8$````````7P```!(```"7!```C*4$"``````2``T`G00` -XM`$"]!`@$````$0`6`+$$``!$O00(!````!$`%@#.!````````&(````2```` -XMWP0````````F`@``$@```.L$````````RP```!(```#]!````````/H````2 -XM````#P4```````!#````$@```!X%````````PP```!(````O!0```````#X` -XM```2````/04``*R\!`@`````$`#Q_T0%``#HNP0(`````!$`\?]:!0``L+T$ -XM"``````0`/'_7P4```````!B`P``$@```',%`````````P$``!(```"$!0`` -XM2+T$"`0````1`!8`F`4``$R]!`@$````$0`6`*D%````````10```!(```"[ -XM!0```````,H,```2````S04````````K````$@```-X%`````````````!(` -XM``#O!0`````````````2``````8```````"V````$@````X&```````````` -XM`!(````@!@`````````````@````-`8````````8````$@```$H&```````` -XMA````!(```!9!@```````&H$```2`````&-R=#$N8P!A8FET86<`+W5S0!?7T-43U)?14Y$7U\`7U]$5$]2 -XM7T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G;&]B86Q? -XM8W1O7-?&ET0$!&0E-$7S$N,`!G971P -XM:61`0$9"4T1?,2XP`'-T`$````` -XM`````````0`````````1`````P``````````````)"X``-,````````````` -XM``$``````````0````(``````````````/@N``!@"0``&@```%(````$```` -XL$`````D````#``````````````!8.```9@8``````````````0`````````` -X` -Xend -672fadc176202ece55dbb7d4b04d86b9 -echo x - pkill.uu -sed 's/^X//' >pkill.uu << '521a9e5ac40550eee504b066258ae35d' -Xbegin 644 pkill -XM?T5,1@$!`0D```````````(``P`!````D(X$"#0```#T+@```````#0`(``& -XM`"@`&P`8``8````T````-(`$"#2`!`C`````P`````4````$`````P```/0` -XM``#T@`0(](`$"!4````5````!`````$````!``````````"`!`@`@`0(YBH` -XM`.8J```%`````!````$```#H*@``Z+H$".BZ!`C$`0``R`(```8`````$``` -XM`@````0K```$NP0(!+L$"-````#0````!@````0````$````#`$```R!!`@, -XM@00(&````!@````$````!````"]L:6)E>&5C+VQD+65L9BYS;RXQ``````@` -XM```$`````0```$9R965"4T0`%C4,`"4```!"`````````$`````%```````` -XM``D````W````$````"\````4````!P```"4````H````*P```"(````D```` -XM-``````````]````,````#D````;`````````#4````N````$@```#,````6 -XM````(0`````````_````*@```#(````8`````0`````````Q````00`````` -XM`````````````````````````````````````````@````8````````````` -XM````````````#0`````````````````````````+```````````````````` -XM```````````,```````````````9````'````````````````````!$````` -XM`````P```!H````.`````````",````$````'P````\`````````'@```"D` -XM```(````)P```!4````L`````````"8````=`````````!,`````````%P`` -XM`#8````X````+0```#L````*````(````#P````^````.@`````````````` -XM```````````P`0```````#0````2````ZP$```````!6`0``$@````T````$ -XMNP0(`````!$`\?\X`0`````````````2````S`$```````"A````$@```-$! -XM````````'0```!(```#;`````````&H````2````70$```````"_````$@`` -XM`*0!````````!0```!(````-`0```````,H````2````%@```(R+!`@````` -XM$@`*`%P$```````#*#``` -XM$@```-H!````````*P```!(```"Z```````````````2````$`(````````` -XM````$@```$\`````````M@```!(````@`0`````````````2````70`````` -XM````````(````.X`````````&````!(```#'`````````(0````2````<0`` -XM``````!J!```$@````!L:6)K=FTN@<```(`/`(```````"PO`0( -XM!1```#"]!`@%$@``-+T$"`47```XO00(!2(``#R]!`@%(P``0+T$"`4G``!$ -XMO00(!2@``$B]!`@%-0``3+T$"`4V``#TNP0(!P$``/B[!`@'`@``_+L$"`<$ -XM````O`0(!P4```2\!`@'!@``"+P$"`<'```,O`0(!P@``!"\!`@'"0``%+P$ -XM"`<*```8O`0(!PP``!R\!`@'#0``(+P$"`<.```DO`0(!Q$``"B\!`@'$P`` -XM++P$"`<5```PO`0(!Q8``#2\!`@'&```.+P$"`<9```\O`0(!QH``$"\!`@' -XM&P``1+P$"`<<``!(O`0(!QT``$R\!`@''P``4+P$"`<@``!4O`0(!R$``%B\ -XM!`@')```7+P$"`#_____)?B[!`AH -XM"````.G0_____R7\NP0(:!````#IP/____\E`+P$"&@8````Z;#_____)02\ -XM!`AH(````.F@_____R4(O`0(:"@```#ID/____\E#+P$"&@P````Z8#_____ -XM)1"\!`AH.````.EP_____R44O`0(:$````#I8/____\E&+P$"&A(````Z5#_ -XM____)1R\!`AH4````.E`_____R4@O`0(:%@```#I,/____\E)+P$"&A@```` -XMZ2#_____)2B\!`AH:````.D0_____R4LO`0(:'````#I`/____\E,+P$"&AX -XM````Z?#^____)32\!`AH@````.G@_O___R4XO`0(:(@```#IT/[___\E/+P$ -XM"&B0````Z<#^____)4"\!`AHF````.FP_O___R5$O`0(:*````#IH/[___\E -XM2+P$"&BH````Z9#^____)4R\!`AHL````.F`_O___R50O`0(:+@```#I+P$"&@(`0``Z=#]____)7R\!`AH$`$``.G`_?___R6` -XMO`0(:!@!``#IL/W___\EA+P$"&@@`0``Z:#]____)8B\!`AH*`$``.F0_?__ -XM_R6,O`0(:#`!``#I@/W___\ED+P$"&@X`0``Z7#]____)92\!`AH0`$``.E@ -XM_?___R68O`0(:$@!``#I4/W___\EG+P$"&A0`0``Z4#]____):"\!`AH6`$` -XM`.DP_?___R6DO`0(:&`!``#I(/W___\EJ+P$"&AH`0``Z1#]__]5B>564X/L -XM$(/D\(M=!(G1C72=#(7;B36LO00(?C:+10B%P'0OH^BZ!`@/MA"$TG0C@\`! -XMZPH/MA"#P`&$TG04@/HO=?&CZ+H$"`^V$(/``832=>RX!+L$"(7`=#2)#"3H -XM&____\<$)(RE!`CH#____^B&_/__C44(B70D"(E$)`2)'"3HEP0``(D$).A_ -XM_O__Z/K\___KS9"0D)"0D)"058GE@^P(@#U0O00(`'0,ZQR#P`2C\+H$"/_2 -XMH?"Z!`B+$(72=>O&!5"]!`@!R<.058GE@^P(H>2[!`B%P'02N`````"%P'0) -XMQP0DY+L$"/_0R<.0D)"0D)"0D)"0D)"058GE4[OBI00(@^P4H8"]!`B%P'4% -XMN_JE!`CHL?[__XE<)`S'1"0$#*@$"(E$)`BA2+T$"(D$).CD^___QP0D`@`` -XM`.C(_?__D(VT)@````!5B>575KX!````4X'LG`0``(F%=/O__XF5%?/O__Q"F!`B-=@"-E8#[___'1"0$V:8$"(D4).@J_?__A<")PP^$ -XM@`(``(`[``^$BP```,<$)`@```#H:_W__X7`B85L^___#X1P`@``BY5T^___ -XMB[UL^___BP*)!XU%\(DZQT0D"`````")1"0$B1PDZ$3\__^)1P2)PHM%\(`X -XM`'4?@[UP^___!`^$.@$``'%>/O__W"F!`@/E\(/DL`XP@^%R0```(N5?/O_ -XM_XV]D/O__XN%>/O__\=$)`B!I@0(QT0D!``$``")5"0,B40D$(D\).C(^O__ -XMC460B40D!(D\).@Y^O__@\`!#X3R````]D69(`^$"@$``(M%I#'VBY5L^___ -XMB4($Z9/]__^XP*8$"+D$````_(G>B7UW#QT0D"`@```#'1"0$ -XM%J8$",<$)`,```#HX?K__[A]I@0(N0,```")G7C[__^)WHG'\Z8/A!O____' -XMA7S[__]XI@0(Z0S___^)7"0(QT0D!$:F!`C'!"0"````Z"[Y__^)7"0(QT0D -XM!#"F!`C'!"0"````Z!;Y__^)7"0(QT0D!%BF!`C'!"0"````Z/[X___H>?G_ -XM_X,X`G4PB5PD",=$)`2&I@0(QP0D`@```.C<^/__B5PD",=$)`2KI@0(QP0D -XM`@```.C$^/__B5PD",=$)`28I@0(QP0D`P```.@<^O__C;8`````C;\````` -XMC4PD!(/D\/]Q_%6)Y5>_VZ8$"%9348'LJ`P``(L9BTD$QT0D!+^G!`C'!"0` -XM````B8UP\___Z.7Y___H%=//__P`````Q]L>%>//__^6F!`C'A7SS___EI@0(QX6` -XM\___`````,>%B//__P````"+E7#S___'1"0(L*@$"(D<)(E4)`3H'OC__X/X -XM_P^$I`(``(/H1(/X-'8%Z!C[____)(7(J00(QP6FY_?__BX5P\___BY5P\___@\`$@_L!B86T\___BW($QX6, -XM\___X*,$"`^.6OW__X`^+0^%4?W__XU%[(U^`<=$)`@*````B40D!(D\).CC -XM]?__B<*+1>R`.``/A5<&``"+C;3S__^#ZP&)%?2Z!`C'A8SS___@HP0(B8UP -XM\___Z07]__^+/4R]!`@I^XF=O//__P^$'0$``(L=A+T$"(7;#X7M````BY5T -XM\___A=(/A%X!``"+C73S___'1"0$[Z8$"(D,).CK]?__A<")PP^$DPH``(N% -XMB//__X7`=#>A,+T$"(7`#X5[!@``#[]##L=$)`0&````B00DZ+;T__^%P`^$ -XM.@H``.@Y]?__@S@C#X6."@``C;7(^___B5PD",=$)`0`!```B30DZ*;T__^% -XMP`^$E@```(D<).@6]O__C47HQT0D"`H```")1"0$B30DZ-_T__^)P8M%Z`^V -XM`(3`#X0?!0``#[;0.Q4XO00(#XP`!0``BXUT\___QT0D!%:G!`C'!"0#```` -XMB4PD".@R]/__BPV(O00(A,'```/OT,,P>@%@^`! -XMA,`/A"\)``")'"3H8?7__XN%=//__\=$)`1`IP0(QP0D`P```(E$)`CHL_/_ -XM_XN%B//__\>%A//_______^%P`^%F@@``.AF]?__BXU\\___C97(\___B50D -XM$,=$)`P`````QT0D"`````")3"0$HZB]!`B+A7CS__^)!"3H3_7__X7`HZ2] -XM!`@/A(H(``#'1"0,?+T$",=$)`@`````QT0D!`@```")!"3H8O7__X7`HW2] -XM!`@/A#@(``"A?+T$"(D$).AX]/__A<")PJ-XO00(#X0%"0``BXUP\___H7R] -XM!`B)%"3'1"0$`````(T\N8F]N//__XE$)`CH0?/__XN%N//__XL0A=(/A&X" -XM``"A_+H$"(E4)`2-5=B)%"2)1"0(Z>__^%P`^%AP4``*%\O00(BSUTO00( -XMA<`/CAD"``#'A9SS__\`````ZV&)]O:'*`$```1T:HNU@//__X7V?BV-AV\! -XM``")1"00BX>(````B50D",=$)`2JIP0(B40D#*%(O00(B00DZ+#Q__^#A9SS -XM__\!BX6<\___.05\O00(#XZR`0``@<<``P``BU+E83S__^%TG@(.86$\___=:2A7+T$"(7`#X0=`0``BY.,````.U`$=1/I -XM#0$``)"-="8`.5`$#X3_````BP"%P(UV`'7NBY68\___QD0Z_P"+-7R]!`CI -XM:____XD<).A0\?__,T70"T74#X6D_?__H7B]!`B+E9SS___&!`(!Z9#]__^A -XM1+T$"/9$D#5`#X3P^O__C4'[/9J&`0")C83S__\/AI'[__^+A73S___'1"0$ -XM5J<$",<$)`,```")1"0(Z`[O___'1"0(`P```,=$)`3AI@0(B3PDZ-;N__^% -XMP'4#C7X$O@$```#K#(/&`8/^(`^$<0,``(L$M;"\!`B)?"0$B00DZ(GN__^% -XMP'7=@_X@#X11`P``BX6T\___@^L!B37TN@0(QX6,\___X*,$"(F%%E//__P````")C:SS__\QR>L_BX6L\___AN/C8W(\___C578B4PD"(E4)`3'1"0,``@``(D$).AY[/__BY6X -XM\___C8W(\___B4PD#(L"QT0D!'"I!`C'!"0"````B40D".C?[/__BX6H\___ -XMBX`8`0``B85L\___Z2W___^)="0(QT0D!`````")'"3H%.W__X/__W0)H7B] -XM!`C&!#@!BQ5\O00(N`$```"+'72]!`B%TGYG,?8Q_^LFBPV0O00(ANP,<"%_P^4P(D$).AR -XM[?__BX6H\___BY60\___.Y`<`0``#YS`Z<[^__^)'"3HL.O__X7`#Y7`Z17X -XM__^A8+T$"(7`="*+4S`[4`1U"NL8C78`.5`$=!"+`(7`=?60C70F`.E6_?__ -XMH6R]!`B%P'48B?;K)3E31'0@BP"%P)"-="8`#X2,^___BU`$@_K_=>3V@R@! -XM```"==NA:+T$"(7`=#6+4S@[4`1U#>LKC;8`````.5`$=""+`(7`=?60C70F -XM`.G=^___QX6,\___X*,$")#I'_/__XL59+T$"(72="R+BP`"``"+0@0YP746 -XMZQV)]HL2A=(/A,'\__^+0@0YR)!T"87)?NJ#P`%UY8N%O//__X7`#X4*^___ -XMBX68\___QD0X_P&+-7R]!`CI]/K__\=$)`0@J00(QP0D`P```.CMZO__H:2] -XM!`B)!"3H<.O__\=$)`2-IP0(QP0D`P```(E$)`CHR.K__XV5R//__XE4)`C' -XM1"0$;Z<$",<$)`,```#HJNK__XD<).@R[/__BY5T\___QT0D!`"I!`C'!"0# -XM````B50D".CTZ___B1PDZ`SL__^+E73S___'1"0$"J<$",<$)`,```")5"0( -XMZ%[J__^+A73S___'1"0$\:8$",<$)`,```")1"0(Z+#K__^A>+T$"(ET)`C' -XM1"0$`````(D$).B'ZO__Z7S]__^+C73S___'1"0$(J<$",<$)`,```")3"0( -XMZ`3J__^A?+T$",=$)`1(J00(QP0D`P```(E$)`CH5^O__XVT)@````!5B>56 -XMB<93@^P0H92]!`B%P'4-BQV`O00(A=MU0XUV`(L-F+T$"(7)=5:AE+T$"(7` -XM="2-AF\!``")1"0(BT8HQP0DZ:<$"(E$)`3H0.K__X/$$%M>7<.A@+T$"(7` -XM=-.+1BC'!"0'J`0(B40D!.@=ZO__@\006UY=PXVV`````*&DO00(QT0D"``` -XM``")="0$B00DZ&?J__^%P(G#=(N+1BC'!"3EIP0(B40D!.C>Z?__BP.%P'28 -XM@\,$B40D!,<$).RG!`CHQ>G__XL3A=)TX:$PO00(A#.+`L8`((/``8D"BP.%P'6[Z4[___^A0+T$",<$)"````")1"0$ -XMZ%GH___KF8VT)@`````[0AA]R(E4)`3'!"0@````Z-OI___I>/___XVV```` -XM`%6)Y8/L"(M%".BR_O__H?BZ!`C'!"3LIP0(B40D!.@MZ?__N`$```#)PXVV -XM`````%6)Y593@^P0H8R]!`B+=0B%P`^$N````,<$).^G!`CH_.C__XGPZ&7^ -XM___'!"3UIP0(Z.GH__^A0+T$"(D$).A,Z/__H3"]!`B%P`^%^````*$\O00( -XMBU`$@^H!A=*)4`0/B/8```"+%3R]!`B+`@^V&(/``8D"B=F-M"8`````@_D* -XM=#N#P0%T-J$PO00(A70+@_M9=1^-M@````"A]+H$"(E$)`2+1BB) -XM!"3H#.?__X/``70VN@$```"#Q!")T%M>7<.A/+T$"(D$).B,Z?__B<'I=?__ -XM_Z$\O00(B00DZ/CH__^)P>EA____Z,SG__\QTH,X`W3#BT8HQP0D^*<$"(E$ -XM)`3H`NC__X/$$#'26XG07EW#H3R]!`B)!"3H.NG__XG#Z1K___^A/+T$"(D$ -XM).BFZ/__B'`@)`!;+4Q39FEL;F]V>%T@6RUD(&1E;&EM -XM70!;+7-I9VYA;%T@6RU)3&9I;F]V>%T`+V1E=B\`0V%N;F]T(&%L;&]C871E -XM("5Z=2!B>71E0`E0!);G9A;&ED('!I -XM9"!I;B!F:6QE(&`E7-T -XM96U="B`@("`@("`@("`@("!;+5`@<'!I9%T@6RU5('5I9%T@6RUG('!G'!R97-S:6]N(&`E'`@ -XM)````+^G!`@`````X+L$"`\```"^IP0(`0`````````!`````0````$```!^ -XM````#````(R+!`@-````C*4$"`0````D@00(!0```.B&!`@&````R(($"`H` -XM``!%`@``"P```!`````5``````````,```#HNP0(`@```'`!```4````$0`` -XM`!<````'`@)``D1G)E94)3 -XM1#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

6%R($5X<"`D`$=#0SH@*$=. -XM52D@-"XR+C$@,C`P-S`W,3D@(%M&6YS -XM='(`+F=N=2YV97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R`$``````````````0`````````1`````P``````````````)"X``,X````` -XM``````````$``````````0````(``````````````"PS``!@"0``&@```%(` -XM```$````$`````D````#``````````````",/```9@8``````````````0`` -XM`````````````````````````````````/2`!`@``````P`!```````,@00( -XM``````,``@``````)($$"``````#``,``````,B"!`@``````P`$``````#H -XMA@0(``````,`!0``````+HD$"``````#``8``````+2)!`@``````P`'```` -XM``#4B00(``````,`"```````'(H$"``````#``D``````(R+!`@``````P`* -XM``````"@BP0(``````,`"P``````D(X$"``````#``P``````(RE!`@````` -XM`P`-``````"8I00(``````,`#@``````Z+H$"``````#``\```````"[!`@` -XM`````P`0```````$NP0(``````,`$0``````U+L$"``````#`!(``````-R[ -XM!`@``````P`3``````#DNP0(``````,`%```````Z+L$"``````#`!4````` -XM`*R\!`@``````P`6``````````````````,`%P`````````````````#`!@` -XM`````````````````P`9``````````````````,`&@`!```````````````$ -XM`/'_"`````R!!`@8`````0`"``\```````````````0`\?\P```````````` -XM```$`/'_/P``````````````!`#Q_P\```````````````0`\?]*```````` -XM```````$`/'_50```-2[!`@``````0`2`&,```#````Y+L$"``````!`!0`Z@```&"E!`@``````@`,```!```````` -XM``````0`\?\P```````````````$`/'_/P``````````````!`#Q_P`!```` -XM``````````0`\?\A`0`````````````$`/'_*0$``)"/!`A(`````@`,`"\! -XM``"`O00(!`````$`%@`U`0``X(\$",0#```"``P`/@$``*B]!`@$`````0`6 -XM`$0!``"PHP0(*@````(`#`!,`0``G+T$"`0````!`!8`5@$``)"]!`@$```` -XM`0`6`%X!``!PO00(!`````$`%@!G`0``;+T$"`0````!`!8`<`$``&B]!`@$ -XM`````0`6`'@!``"(O00(!`````$`%@!_`0``A+T$"`0````!`!8`A@$``)2] -XM!`@$`````0`6`(X!``!DO00(!`````$`%@"6`0``_+H$"`0````!``\`G0$` -XM`&"]!`@$`````0`6`*8!``"8O00(!`````$`%@"P`0``^+H$"`0````!``\` -XMM@$``%R]!`@$`````0`6`+\!``"@O00(!`````$`%@#(`0``6+T$"`0````! -XM`!8`T0$``(R]!`@$`````0`6`-T!``!4O00(!`````$`%@#F`0``X*,$"'$! -XM```"``P`[@$``/2Z!`@$`````0`/`/4!``"DO00(!`````$`%@#X`0``?+T$ -XM"`0````!`!8`_@$``'2]!`@$`````0`6``0"``!XO00(!`````$`%@`-`@`` -XM<*($"#H!```"``P`&@(````````T````$@```"P"````````5@$``!(````_ -XM`@``!+L$"``````1`/'_2`(`````````````$@```%<"````````H0```!(` -XM``!F`@```````!T````2````>0(```````!J````$@```(@"``#LN@0(```` -XM`!$"#P"5`@```````+\````2````J@(````````%````$@```+X"```````` -XMR@```!(```#4`@``C(L$"``````2``H`V@(`````````````$@```.H"```` -XM````+@```!(```#Y`@```````)(!```2````"0,``*R]!`@$````$0`6`!$# -XM``"PO`0(@````!$`%@`G`P```````)`````2````.`,``#"]!`@$````$0`6 -XM`$\#````````90(``!(```!@`P``Z+H$"`0````1``\`:P,``)".!`B8```` -XM$@`,`'(#`````````````!(```"!`P```````%(7```2````DP,``#2]!`@$ -XM````$0`6`*0#`````````````!(```"U`P```````!T"```2````Q@,````` -XM```6````$@```-@#````````"P```!(```#C`P```````!T````2````]@,` -XM```````Y````$@````<$``"LO`0(`````!``\?\3!```L),$"+D.```2``P` -XM&`0```````#?````$@```"L$````````00```!(````Z!``````````````2 -XM````2P0``#B]!`@$````$0`6`&,$```\O00(!````!$`%@!V!````````-,` -XM```2````A@0```````!?````$@```)<$``",I00(`````!(`#0"=!```0+T$ -XM"`0````1`!8`L00``$2]!`@$````$0`6`,X$````````8@```!(```#?!``` -XM`````"8"```2````ZP0```````#+````$@```/T$````````^@```!(````/ -XM!0```````$,````2````'@4```````##````$@```"\%````````/@```!(` -XM```]!0``K+P$"``````0`/'_1`4``.B[!`@`````$0#Q_UH%``"PO00(```` -XM`!``\?]?!0```````&(#```2````&5C0$!&0E-$7S$N,`!O<'1Als.uu << 'END-of-ls.uu' -Xbegin 755 ls -XM?T5,1@$!`0D```````````(``P`!````D),$"#0```!T7@```````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(<%@` -XM`'!8```%`````!````$```!P6```<.@$"'#H!`AH`@``V`,```8`````$``` -XM`@```-!8``#0Z`0(T.@$"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1<6```7-@$"%S8!`@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%4````]````40```!8`````````.P```%`````````` -XM.@```#@```!.````0P```!4`````````/@```#8```!!````2P`````````L -XM`````````!<````%````2@```%(```!%`````````!P````M````)P```$8` -XM`````````````#,`````````4P```"@`````````"0````@````````````` -XM```````,````/````#4```!/````"P```"````!4````,0```"$````````` -XM`````$T````?````1P```$P``````````````#\`````````20```$`````` -XM````,````#0````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````"@`` -XM``T````````````````````&```````````````2```````````````````` -XM`````````````````````!$````````````````````B`````````!L````9 -XM``````````(````3```````````````E````#@```!`````/````!P```!H` -XM```4````````````````````)@```"\````C```````````````D````&``` -XM```````Y````,@``````````````'@```"D````J`````````#<````$```` -XM2````$(`````````'0```$0`````````+@`````````K```````````````` -XM``````````````!N`0```````*,````2````T`(```````#&````$@```)D! -XM````````-````!(```"3`@```````#,````2````=0(```````!#````$@`` -XM`"T!````````2````!(```![`@`````````````2````]@````````!K`0`` -XM$@````X```#0Z`0(`````!$`\?^A`0`````````````2````%P````````!L -XM!```$@```&T`````````U`,``!(```!2`@```````*$````2````$`(````` -XM``!:````$@```!0`````````A!@`` -XM$@```,P!````````>````!(````M````W-,$"``````2``T`I@$```````", -XM`@``$@```.@(````` -XM``"Q````$@```/8!``#LZ@0(!````!$`%P"*`@```````,\!```2````2@(` -XM``````#+````$@```%D"````````0P```!(````\`0```````,,````2```` -XM80$````````J````$@```#P"````````/@```!(```#G`@``V.H$"``````0 -XM`/'_0P$````````S````$@```#,```"\Z00(`````!$`\?_Z`@``2.P$"``` -XM```0`/'_7@(```````!B`P``$@````T!``#PZ@0(!````!$`%P`!`0`````` -XM`),````2````L@$``/3J!`@$````$0`7`#4!`````````````!(```!7`@`` -XM`````"L````2````@0(````````I````$@````8!`````````````!(```"R -XM`@`````````````2````H0``````````````$@```$D``````````````"`` -XM```D`0`````````````2````@0`````````4`0``$@```,8`````````6P`` -XM`!(`````;&EB=71I;"YS;RXW`%]$64Y!34E#`&AU;6%N:7IE7VYU;6)E<@!? -XM:6YI=`!?9FEN:0!?1TQ/0D%,7T]&1E-%5%]404),15\`7TIV7U)E9VES=&5R -XM0VQA0!?7W-T9&]U -XM='``=V%R;G@`:6]C=&P`0!A8VQ?9V5T7V5N=')Y`&9T7!E`'-T#I!`AH,````.F`_____R7DZ00(:#@```#ISI!`AH2````.E0_____R7PZ00(:%````#I0/____\E].D$"&A8```` -XMZ3#_____)?CI!`AH8````.D@_____R7\Z00(:&@```#I$/____\E`.H$"&AP -XM````Z0#_____)03J!`AH>````.GP_O___R4(Z@0(:(````#IX/[___\E#.H$ -XM"&B(````Z=#^____)1#J!`AHD````.G`_O___R44Z@0(:)@```#IL/[___\E -XM&.H$"&B@````Z:#^____)1SJ!`AHJ````.F0_O___R4@Z@0(:+````#I@/[_ -XM__\E).H$"&BX````Z7#^____)2CJ!`AHP````.E@_O___R4LZ@0(:,@```#I -XM4/[___\E,.H$"&C0````Z4#^____)33J!`AHV````.DP_O___R4XZ@0(:.`` -XM``#I(/[___\E/.H$"&CH````Z1#^____)4#J!`AH\````.D`_O___R5$Z@0( -XM:/@```#I\/W___\E2.H$"&@``0``Z>#]____)4SJ!`AH"`$``.G0_?___R50 -XMZ@0(:!`!``#IP/W___\E5.H$"&@8`0``Z;#]____)5CJ!`AH(`$``.F@_?__ -XM_R5.H$"&A@`0``Z2#]____)7SJ!`AH -XM:`$``.D0_?___R6`Z@0(:'`!``#I`/W___\EA.H$"&AX`0``Z?#\____)8CJ -XM!`AH@`$``.G@_/___R6,Z@0(:(@!``#IT/S___\ED.H$"&B0`0``Z<#\____ -XM)93J!`AHF`$``.FP_/___R68Z@0(:*`!``#IH/S___\EG.H$"&BH`0``Z9#\ -XM____):#J!`AHL`$``.F`_/___R6DZ@0(:+@!``#I3K!`A^-HM% -XM"(7`="^C<.@$"`^V$(32=".#P`'K"@^V$(/``832=!2`^B]U\:-PZ`0(#[80 -XM@\`!A-)U[+C0Z`0(A6#[`B` -XM/?CJ!`@`=`SK'(/`!*-XZ`0(_]*A>.@$"(L0A=)UZ\8%^.H$"`')PY!5B>6# -XM[`BAN.D$"(7`=!*X`````(7`=`G'!"2XZ00(_]#)PY"0D)"0D)"0D)"0D)!5 -XMB>6#[`R)'"2)="0$B7PD"(MU#(M]"(M&/(M8-(M(,(M'/(M0-(M`,#G3?12X -XM_____XL<)(MT)`2+?"0(B>Q=PWX-N`$```#KZ(VV`````#G!=^\YTWX?BT9` -XMB44,BT=`B44(BQPDBW0D!(M\)`B)[%WI/?S__WRT.<%SVXUV`.NKC;0F```` -XM`(V\)P````!5B>6+50R+10B)50B)10Q=Z5O___^-="8`C;PG`````%6)Y8/L -XM"(D<)(ET)`2+=0B+70R+5CR+2SR+0B@Y02A^$+@!````BQPDBW0D!(GL7<-\ -XM#XM"+#E!+'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+'"2+="0$B>Q= -XMZ:#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG -XM`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0E`Y05!^$+@!````BQPD -XMBW0D!(GL7<-\#XM"5#E!5'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+ -XM'"2+="0$B>Q=Z1#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O_ -XM__^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0A@Y01A^ -XM$+@!````BQPDBW0D!(GL7<-\#XM"'#E!''_FD(UT)@!]![C_____Z]V+0T") -XM10R+1D")10B+'"2+="0$B>Q=Z8#Z__^-M@````"-OP````!5B>6+50R+10B) -XM50B)10Q=Z7O___^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+ -XM2SR+0B`Y02!^$+@!````BQPDBW0D!(GL7<-\#XM")#E!)'_FD(UT)@!]![C_ -XM____Z]V+0T")10R+1D")10B+'"2+="0$B>Q=Z?#Y__^-M@````"-OP````!5 -XMB>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG`````%6)Y8M%"(M5#(M`0(E% -XM#(M"0(E%"%WIJ?G__Y"-="8`58GEBT4,BT!`B44,BT4(BT!`B44(7>F)^?__ -XMD)"0D)!5B>6#[`R)'"2)="0$B7PD"(M%"(M5#(LP#[=&-&:#^`DW____C;0F```` -XM`#'2BQPDB="+="0$BWPD"(GL7<.-M@````"-O"<`````58GE5U93@>PL!0`` -XMBST\[`0(B848^___B944^___B8T0^___A?_'1%//O__P$```#'!"0RU`0(Z-'V___'1<``````QT7$`````,=%V``` -XM``#'1=0`````QT70`````(7`B``````QT7D`````,=%Z`````#'1>P` -XM````QT7<`````'0)@#@`#X6"!@``BYT4^___A=L/A!8&``"+A1#[__^+O13[ -XM___'A2S[__\`````QX4P^___`````(/@`L>%3/O__P````#'A4C[__\````` -XMB84,^___Z9P"``!F@_@*#X2@`@``BXT8^___A2A(.P$"(7`=0FA[.L$"(7`=!L/MT2+A3S[__^%P`^$(P(``(M7/(G0B94H^___BT@\BT7L -XMBU(XB<;!_A\Y\7P)?P0YPG8#B57LBY4H^___BT($.T7H=@.)1>B+C2C[__\/ -XMMT$*.T7@=@.)1>"+C2C[__^+430[5<2+03!\#7\%.T7`=@:)1<")5<2+A2C[ -XM__^+0#@!A2S[__^A0.P$"(7`#X2@`0``H1CK!`B%P`^$MP(``(N5*/O__XUU -XMIHU=LXM"#,=$)`A-U`0(QT0D!`T```")-"2)1"0,Z$;W__^+C2C[__^+01#' -XM1"0(3=0$",=$)`0-````B1PDB40D#.@A]___B;5`^___B9U$^___BX5`^___ -XMB00DZ$?X__\[1=")A3C[__]V`XE%T(N51/O__XD4).@K^/__.T74B<-V`XE% -XMU(LU..P$",>%-/O__P````"%]@^%E0(``(L-!.P$"#'2QT7,`````(7)#X7I -XM`@``B[4X^___BXTT^___`=Z-1#$8`=")!"3H-O?__X7`B<,/A/,'``"-0!") -XM`XN50/O__XD$)(E4)`3HQ??__XN-./O__XU$&1&)0P2+E43[__^)!"2)5"0$ -XMZ*;W__^+C2C[__\/MT$()0#P```]`"````^$Q0$``#T`8```#X2Z`0``H3CL -XM!`B%P`^%Q`$``*$$[`0(A\O__@\`!#X1[ -XM!```9H-_,@`/A=X```"+1T"-M5?[___'1"0(2M0$",=$)`0!!```B30DB40D -XM#.B%\___BY4,^___A=)T6XM%R(DT)(E$)`3H'/3__X/``71;C47,B40D!(M% -XMR(D$).C%\?__@\`!=$2+1U`0(B40D!.C_\O__BT7(B00DZ`3R__^+1%,/O__P````#'A2S[__\` -XM````H4#L!`B%P'4-H?3K!`B%P`^$8OW__XN]&/O__X7_#X7<_/__Z4_]__\Q -XMP(,]].L$"``/E<")A3S[___I'?G__XD$).AR\___C40``HD$).C&\O__A<") -XMA1S[__\/A'\#```/M@,\.@^$B`,``(N5'/O__XG1B`*#P0'&0@$`#[9#`83` -XM=#V)VNL4B`&#P0'&00$`#[9"`H/"`83`="6`.CIUYSPZ=>/&`3`/MD(!B$$! -XM@\$"QD$!``^V0@*#P@&$P'7;@'G_.@^$50,``(U%W(N-'/O__XE$)"B-1>2) -XM1"0DC47`B40D((U%V(E$)!R-1=2)1"08C470B40D%(U%X(E$)!"-1>R)1"0, -XMC47HB40D",=$)`3HU`0(B0PDZ/CP___'!13L!`@!````@_@(#X8M`@``BW7H -XM,<"%]G0=N0$```"X"@```/?A@^X!B<%U\L=%Z`````"-0/^+?>R)1>@QP(7_ -XM?C*)_KD!````,=MKTPJX"@```(F5!/O___?AB=.)P0.=!/O__X/N`77AQT7L -XM`````(U`_XMUX(E%[#'`A?9T';D!````N`H```#WX8/N`8G!=?+'1>`````` -XMC4#_BTW$BU7`B47@@_D`B94@^___B8TD^___#XZ)`0``BXT@^___O@$````Q -XM_XN=)/O__VO'"HF%!/O__[@*````]^:)UXG&`[T$^___@\'_@]/_B=H)RG7: -XMB?")^H/`_\=%P`````"#TO_'1<0`````BXT<^___B47`B57$B0PDZ"7Q___I -XM=/?__XN%+/O__XU=CHN-,/O__\=$)`ARU`0(QT0D!!@```")A5S___^+1>R) -XMC6#___^)'"2)1"0,Z/;O__^)'"3H+O'__\=$)`ARU`0(QT0D!!@```")'"2) -XMA6S___^+1=B)A7#___^+1=R)A73___^+1=2)A7C___^+1>B)1"0,Z*[O__^) -XM'"3HYO#__\=$)`ARU`0(QT0D!!@```")'"2)A7S___^+1>")1"0,Z('O__^) -XM'"3HN?#__XM5Q,=$)`AVU`0(QT0D!!@```")'"2)5"00B46`BT7`B40D#.A0 -XM[___B1PDZ(CP__^)182+1=")18CI[_G__XM'0(E$)`B+1P2+0!C'!"1>U`0( -XMB40D!.@M[___Z=/[____)(5$U00(?!&#^@"0C;0F``````^'9/[__S'`,=+I -XMK/[__\=%Z`````#'1>P`````QT7@`````,=%T`````#'1=0`````QT78```` -XM`,=%P`````#'1<0`````QT7D`````(,]&.P$"`''1=P`````&<#WT"$%%.P$ -XM".E4_?__QT0D!#_4!`C'!"0!````Z$7O__^+A1S[__^)P8/!`F;'`#`ZQD`" -XM`.EP_/__QT0D!%+4!`C'!"0!````Z!CO__]FQP$P`.FA_/__C78`C;PG```` -XM`%6)Y5=64X/L'(,]%.L$"`&)1>R)3>@9P"7`EP0(B40D"(E,)`2)%"3H!^W_ -XM_X7`B<CJ!`B+ -XM0@B#Z`&%P(E""`^(;P$``(L"Q@`*@\`!B0*+0QB)!"3H*Q```,<$)*#4!`CH -XMD^K__XM%\(D\)(E$)`3H-.S__XM-Z(G"B<:)V.BR\___H1SK!`B%P`^%1?__ -XM_X7V#X0]____B5PD!,=$)`@$````B3PDZ#WK__^)/"3HE>O__X7`B<,/A2G_ -XM___HENS__XL`A<`/A?T```"#Q!Q;7E]=PV:#^`1T"F:#^`O__XE$)`B+0T#'!"1&U`0(B40D!.@2[/__QP4XZP0(`0```.F__O__ -XMBT-`QP0D@]0$"(E$)`3H\.O__^FG_O__C;0F`````(-][`$/CB?___^+0QB) -XM!"3H.P\``,<$)*#4!`CHH^G__\<%/.L$"`$```#I`?___Z$$[`0(A<`/A5;^ -XM___V1>@(QT7P``$```^%4O[__^E`_O__H>CJ!`C'!"0*````B40D!.C\Z?__ -XMZ:W^__^A#.L$"(7`#X0F_O__Z6#^__^)5"0$QP0D"@```.A5[/__D.F%_O__ -XMQT0D!*+4!`C'!"0!````Z'OL___'1"0$>M0$",<$)`$```#H9^S__XUV`(U, -XM)`2#Y/#_575E-1@>PH!@``BQF+202-A>#]__^)1>C'1"0$*]<$",<$ -XM)`````")C=SY___H1>S__\<$)`$```#H*>S__X7`#X24````QP5\Z`0(4``` -XM`,<$)*O4!`CH^^C__X7`=`F`.``/A=@'``"-1>")1"0(QT0D!&AT"$#'!"0! -XM````Z)/I__^#P`%T$0^W1>)FA -XM``#KS\<%).L$"`$```#'!"2KU`0(Z&?H__^%P'2PB00DZ!OH__^C?.@$".NA -XM_R2%:-4$"(L5#.L$"(L]].H$"(72#X1X!0``QP0DL]0$".@MZ/__AO__X7`#X2D`0``QP0DR]0$".@)Z/__B40D!(V%X/G__XD$).A7 -XMZO__@^@!#X0B!@``H1CL!`B%P'1&QP44[`0(`0```,=$)`30KP0(QP0D`@`` -XM`.@WZO__QT0D!-"O!`C'!"0#````Z"/J___'!"3?U`0(Z*?G__^)!"3H*P@` -XM`*$\[`0(A<`/A,8```"A0.P$"(7`=1B+%0CK!`B%TG4.BPTL[`0(ASK!`@`````Z5/\___'!1SL -XM!`@!````Z43\___'!3#K!`@!````QP4LZP0(`````.DK_/__QP4GO^___QT0D"`$```#'1"0$*]<$",<$)+/4!`CH$>?__^G.^___QP40[`0( -XM`0```,<%+.P$"`$```#IM?O__\<%..P$"`$```#IIOO__\<%&.L$"`$```#I -XME_O__\<%*.L$"`$```#'!23K!`@`````QP5`[`0(`````.ET^___QP5`[`0( -XM`0```,<%).L$"`````#'!2CK!`@`````Z5'[___'!?CK!`@`````QP4$ZP0( -XM`0```.DX^___QP4\[`0(`0```.DI^___QP7XZP0(`0```.D:^___QP44ZP0( -XM`0```.D+^___QP4(ZP0(`0```,<%'.L$"`````#I\OK__\<%Z.L$"`$```#' -XM!0#L!`@`````QP4T[`0(`````.G/^O__QP4([`0(`````,<%(.P$"`````#' -XM!>SK!`@!````Z:SZ___'!03L!`@!````Z9WZ___'!33K!`@!````Z8[Z___' -XM!33L!`@!````QP4`[`0(`````,<%Z.L$"`````#I:_K__XGQNH#H!`BX`0`` -XM`.@$]___Z2K\__^A0.P$"(7`#X2M````QP7\Z@0(X+X$".GT^___H2SK!`B% -XMP'5&BPTPZP0(AS' -XM1"0$#.P$"(D$).C.Y/__BQ4,[`0(B=#!^!_!Z!CZ___'!0#K!`B@EP0(Z=GZ__^#S@'I:OK__\<%_.H$"&"Z -XM!`CIV?K__XU-Z(E,)`3'!"30U`0(Z&GE___'!"33U`0(H_#K!`B-1>B)1"0$ -XMZ%'E__^-3>B)3"0$QP0DUM0$"*,H[`0(Z#GE___'!"39U`0(HT3L!`B-1>B) -XM1"0$Z"'E__^-3>B)3"0$QP0DW-0$"*,D[`0(Z`GE__^%P*/\ZP0(#X30```` -XMH?#K!`B%P`^$4?G__Z$H[`0(A<`/A$3Y__^A_.L$"(7`#X0W^?__QP48[`0( -XM`0```.DQ^?__B00DZ,[@___'!0CL!`@!````HWSH!`CI1_C__Z$T[`0(A6#[!B%P'0]H?SK!`C'1"0($+`$ -XM",=$)`0!````B00DZ/WA__^X$+`$"(E$)`BA1.P$",=$)`0!````B00DZ-_A -XM___)PZ'\ZP0(QT0D"""U!`C'1"0$`0```(D$).C`X?__N""U!`CKP9"-="8` -XM58GE4X/L%(M="(G8Z'____^)'"3'1"0$`````.@SXO__Z"[C__^)7"0$B00D -XMZ,+?__^#Q!1;7<.0C;0F`````%6)Y8/L*(M%",=$)`@!````QP0D`0```(A% -XM_XU%_XE$)`3H;=___S'`R<.0C70F`%6)Y5=64X/L+(M%"(7`#X1``0``BT4( -XM,?^)!"3HT^+__XL5O-<$"&;'1=H``,=%W`````")5>")1=3K/(UT)@`/OL*# -XMZ#")`V:#?=H`#X2N````9L=%V@$`@\8!@\,$@_X"=46#QP=P,@T7@`H/_ -XM"P^$U````(M%W,>`:.L$"`````"-!#\Y1=1W.8M5X`^V`HA%\@^V0@&(1?.- -XM!'\Q]HT3J!`A]#*'LZ@0(BXR( -XM-`0``(/Y>'03#[["B40D!,<$))#7!`CH\]___\<#_____^D-____@\0L6UY? -XM7564XG#C31`@^P0BQ2U:.L$"(72#X64````BP2U -XM8.L$"(/X_W0XB40D"*'PZP0(QT0D!`````")!"3H`][__X7`=!O'1"0((+4$ -XM",=$)`0!````B00DZ(??__^-=@"-!%N+!(5DZP0(@_C_=#6)1"0(H2CL!`C' -XM1"0$`````(D$).B\W?__A7<.0C70F`*$D[`0(QT0D"""U!`C'1"0$`0```(D$).@7W___Z4K___^- -XMM"8`````C;PG``````^WP(G"58'B`/```(GE@^P(@?H`0```#X3&````?E&! -XM^@"@```/A'T```"!^@#```!T8H'Z`&````^$?````#'2J$ET7_;$"`^%X@`` -XM`/;$!`^$MP```+@(````C70F`.B[_O__N@$```#K.(UT)@"!^@`0``!T6('Z -XM`"```(GV=;VX!@```.B4_O__N@$```#)B=##N`(```#H@?[__[H!````R8G0 -XMP[@!````Z&[^__^Z`0```,F)T,.X!0```.A;_O__N@$```#)B=##B?:X`P`` -XM`.A&_O__N@$```#)B=##J`)T./;$`G01N`D```#H*O[__[H!````ZZ>X"@`` -XM`.@9_O__N@$```#KEK@$````Z`C^__^Z`0```.N%,<#H^OW__[H!````Z73_ -XM__^X!P```.CF_?__N@$```"0Z5____^-="8`C;PG`````%6)Y5.#[&2)1:BA -XMD.@$"(7`#XC9````H43K!`B%P`^$L@```*$<[`0(A\`.=!_ -XM'8L-D.@$"+NVU@0(A-M"8`````C8(`\>\`.<%]V:&0Z`0( -XMNZ+6!`B%P`^%=/___[NLU@0(Z6K____'!"0`````Z-+:__^C1.L$".DX____ -XMC70F`,<$)#D```#H:-W__X`X9`^4P`^VP*.0Z`0(Z0C___^0BQ4@[`0(58GE -XMBT4(A=)U"HL-[.L$"(7)=`F)10A=Z;T7``"+%0CL!`B%TG0)B44(7>E:$@`` -XMB44(7>EA%0``D%6)Y8/L"*'@Z@0(BTT(A"*+`H@(@\`!B0+),<##H>CJ!`B)#"2)1"0$Z)':__\QP,G#.T(8?`:`^0J0 -XM==.)5"0$B0PDZ/;<___KSE6)Y8/L"(L-$.P$"(7)=!`E`/```#T`0```='3) -XM,<##B<*!X@#P``"!^@"@```/A-\````/AXP```"!^@`0```/A%,!``"!^@!` -XM``"-="8`=#ZH273&H>#J!`B%P`^%AP$``(L5Z.H$"(M""(/H`87`B4((#XAX -XM`@``BP+&`"J#P`&)`K@!````R<.0C70F`(L5X.H$"(72#X6J````BQ7HZ@0( -XMBT((@^@!A<")0@@/B!4!``"+`L8`+X/``8D"N`$```#)PX'Z`,````^$D@`` -XM`('Z`.````^%=/___Z'@Z@0(A<`/A9CJ!`B+0@B#Z`&%P(E""`^( -XM8`$``(L"Q@`E@\`!B0*X`0```,G#H>#J!`B%P`^%?@$``(L5Z.H$"(M""(/H -XM`87`B4((#XC/````BP+&`$"#P`&)`K@!````R<.AZ.H$",<$)"\```")1"0$ -XMZ!?9__^X`0```,G#H>#J!`B%P`^%90$``(L5Z.H$"(M""(/H`87`B4((#XBZ -XM````BP+&`#V#P`&)`K@!````R<.AX.H$"(7`#X44`0``BQ7HZ@0(BT((@^@! -XMA<")0@AX;8L"Q@!\@\`!B0*X`0```,G#.T(8#XWB_O__B50D!,<$)"\```#H -XM$=O__[@!````R<.AZ.H$",<$)"H```")1"0$Z'78__^X`0```,G#.T(8#XTH -XM____B50D!,<$)$````#HU=K__[@!````R<,[0AA]CHE4)`3'!"1\````Z+G: -XM__^X`0```,G#.T(8#XT]____B50D!,<$)#T```#HF=K__[@!````R<,[0A@/ -XMC9?^__^)5"0$QP0D)0```.AYVO__N`$```#)PZ'HZ@0(QP0D)0```(E$)`3H -XMW=?__[@!````R<.AZ.H$",<$)$````")1"0$Z,'7__^X`0```,G#H>CJ!`C' -XM!"1\````B40D!.BEU___N`$```#)PZ'HZ@0(QP0D/0```(E$)`3HB=?__[@! -XM````R<,[0A@/C7_]__^)5"0$QP0D*@```.CIV?__N`$```#)PXVT)@````"- -XMO"<`````58GE@^PXB5WTB<.)??R)SXEU^(MP/*$\[`0(QT7L`````(7`#X7> -XM````H?3K!`B%P'5RH1CL!`B%P'1)#[=&".B;^?__B<>+0T")!"3H[OO__XM- -XM[(T<"*$8[`0(AQ=PXM#0(D$).BP^___BU7LC1P0Z\F%_W3%,<#H'?;__^N\H0SL!`B#Z`&) -XMPL'Z'XE%X(E5Y(M&.(M6/`%%X*$,[`0($57DBTWDB<+!^A^)5"0,BU7@B4PD -XM!(E$)`B)%"3HF!@``(E\)`3'!"04UP0(B40D"(E4)`SH--C__P%%[.DK____ -XMBT8$B50D!,<$),S6!`B)1"0(Z!78__^)1>SI`____XGVC;PG`````%6)Y593 -XM@^P0BW4(BQZ%VW4FZUR+%>CJ!`B+0@B#Z`&%P(E""'A0BP+&``J#P`&)`HM; -XM"(7;=#B#>PP!=/.+3A2)V(M6).B&_O__H>#J!`B%P'3`H>CJ!`C'!"0*```` -XMB40D!.B\U?__BUL(A=MUR(/$$%M>7<.)5"0$QP0D"@```.@>V/__ZZB0C;0F -XM`````%6)Y5=64X/L/(M%"(,]%.P$"`$9TH/B!X/"`8E%T(E5Z(M`##L%C.@$ -XM"`^/O@(``(M=T(L#QT7<`````(7`=!^+%4#K!`B#>`P!=`R+3=R)!(J#P0&) -XM3=R+0`B%P'7GH3SL!`B+7="%P(M3$'0(BT,D@\`!`<*+#?3K!`B%R70+BUW0 -XMBT,4@\`!`<*#/2SL!`@!BT7H@]K_`U7H]]B)1=0APHE5\(M%\(L5?.@$"`'` -XM.=`/CR0"``")T,'Z'_=]\(M5W(E%S(G0P?H?]WW,@_H!BU70@]C_B47@BP*% -XMP`^$N0$``&:#>#(`#X6N`0``BW7@A?8/CG(!``#'1=@`````QT7D`````(L= -XM,.P$"(7;=0:+5>2)5=B+3P/C:D```"+%>#J -XM!`B%TG5.BPWHZ@0(@ST4[`0(`8M!"!G2@^+I@\(@@^@!A<")00AX48L!B=Z( -XM$(/``8D!BU7HC1P6(UW4.?M^IHM-S#E-['1=@T7L`0-]\.E*____@ST4[`0( -XM`8G>BQ7HZ@0(&<"#X.F#P"")5"0$B00DZ(S3___KNCM!&'P%@/H*=:6)3"0$ -XMB=Z)%"3H\M7__^N@BU7@`578BTW<.4W8#XPR____H>#J!`B%P'4UBQ7HZ@0( -XMBT((@^@!A<")0@AX.8L"Q@`*@\`!B0*#1>0!BUW@.5WD#X6<_O__@\0\6UY? -XM7<.AZ.H$",<$)`H```")1"0$Z`O3___KT8E4)`3'!"0*````Z'G5___KOXL] -XM0.P$"(7_=0B%R0^$0/[__XM-T(L=#.P$"(M1!,<$)-+6!`B#Z@&-#!HQTHG( -XM]_.)1"0$Z)W4___I$_[__XM5T(E5"(/$/%M>7UWI@OS__\'@`HE$)`2A0.L$ -XM"(D$).ART___A<")PG06BTW0BT$,B15`ZP0(HXSH!`CI$OW__\<$)`````#H -XM>M3__XM=T(E=".NPC;0F`````(V\)P````!5B>575E.#[`R+=0B+'H7;#X2^ -XM````,?_K'(VV`````,<$)-W6!`B#QP+H!=3__XM;"(7;='2#>PP!=/.+0T") -XM!"3H3=7__X-["`$9TO?2@^("C00'`=`[!7SH!`AR,:'@Z@0(A+0PB%P`^%=O___X7_=":AX.H$"(7`=3Z+%>CJ!`B+0@B#Z`&%P(E" -XM"'A?BP+&``J#P`&)`H/$#%M>7UW#H>CJ!`@Q_\<$)`H```")1"0$Z&'1___K -XMFZ'HZ@0(QP0D"@```(E$)`3H2M'__X/$#%M>7UW#B50D!#'_QP0D"@```.BP -XMT___Z6?___^)5"0$QP0D"@```.B;T___ZYF0C70F`%6)Y5=64X'L7`@``(M% -XM"(LXA?\/A#,#``!F@W\R``^%*`,``,>%Q/?__P````#'A%T/?__P$```"# -XMZ`$/A+\%``")'"3H-=/__\>%R/?__P$```"-M"8`````BP:)A+\__\/ML2)5"0(B40D -XM!,<$)`?7!`CH.K^__\/C)````#'A8KZ0SZ -XM__^)5"0$QP0D"@```.B9S/__Z;3[___HS\O__X,X%@^$8O___XV=V_O__XE< -XM)`3'!"1*U`0(Z`#,___IY_G__X.]T/?__P,/CL'Y___KJI"0D)"0D)"058GE -XM@^P8H?#J!`C'1"0(/@```,=$)`0!````QP0DP-<$"(E$)`SH"A?]UIXN%8/___X'$K``` -XM`%M>7UW#C;8`````BX5@____C028B85@____Z]*)%"3H"\G__^NZD(UT)@"- -XMA7#___^#Q@&#A6#___\$@^\!QT0D"(````#'1"0$`````(D$).A)RO__ZYB+ -XMA6#___^-!+B)A6#____KBXGV58GE5U93@>RL````C85P____QT0D"(````#' -XM1"0$`````(D$).@*RO__QX5@____`````(M5"(V%'>+`H@(@\`!B0*#Q@$Y]W0HH>#J -XM!`B%P'3-H>CJ!`B+50B)1"0$#[8$%H/&`8D$).B4Q___.?=UV(M=\#'`A=MT -XM*('[_P````^'@0$``*'LZ@0(BT28-(G"@>(```#@#X18`0``B=#!Z!X!?0@! -XMA6#____I`?___SM"&`^VV7P)@/L*#X5X____B50D!(D<).BTR?__Z7#___^+ -XM%>#J!`B%T@^%F@```(L5Z.H$"(M""(/H`87`B4((#X@=`0``BP+&`#^#P`&) -XM`@%]"(.%8/___P'IH?[__XL=X.H$"(7;#X6]````BQ7HZ@0(BT((@^@!A<") -XM0@@/B/T```"+`L8`/X/``8D"C95P____@T4(`8.%8/___P''1"0(@````,=$ -XM)`0`````B10DZ$G(___I1/[__XD<).C,QO__Z9+^__^AZ.H$",<$)#\```") -XM1"0$Z'+&___I;?___XL-X.H$"(7)#X6N````BQ7HZ@0(BT((@^@!A<")0@@/ -XMB+$```"+`L8`/X/``8D"@X5@____`8N%8/___X'$K````%M>7UW#H>CJ!`C' -XM!"0_````B40D!.@1QO__Z4K___\E```$`(/X`1G`@\@!Z9O^__^)'"3H,L;_ -XM_^E[_O__.T(8#XW:_O__B50D!,<$)#\```#H5,C__^G/_O__.T(8#XWZ_O__ -XMB50D!,<$)#\```#H-LC__^GO_O__H>CJ!`C'!"0_````B40D!.B%8/___P````"+ -XM50B-A7#___^)1"0,C47PQT0D"`8```")!"2)5"0$Z+S$__^%P(GR`0`` -XM@_[^#X10`0``@_[_B?8/A.P````QVX7V?S2-="8`ZU>+10B+%>CJ!`@/M@P# -XMBT((@^@!A<")0@@/B)0```"+`H@(@\`!B0*#PP$YWG0IBSW@Z@0(A?]TR*'H -XMZ@0(BU4(B40D!`^V!!.#PP&)!"3HG\3__SG>==>+7?`!=0B!^_\```!W<*'L -XMZ@0(BT28-*D```0`#X0Y____,<"%VW0H@?O_````#X?J````H>SJ!`B+1)@T -XMB<*!X@```.`/A,$```")T,'H'@&%8/___^D`____.T(8#[;Y?`J)^#P*#X5: -XM____B50D!(D\).BBQO__Z5+___^)'"3H5<3__Y#KCHV%XM%"(L5Z.H$"`^V"(M""(/H`87` -XMB4((>'N+`H@(@\`!B0*#10@!@X5@____`>EY_O__BU4(QP0D2M0$"(E4)`3H -XMAL7__P&%8/___XN%8/___X'$K````%M>7UW#)0``!`"#^`$9P(/(`>DR____ -XMB1PDZ+7#___I$O___Z'HZ@0(BU4(B40D!`^V`HD$).A9P___ZXX[0A@/MME\ -XM"8#["@^%=/___XE4)`2)'"3HNL7__^EL____D%6)Y5=64X'LK````(V%%8/___P````"+50B-A7#___^) -XM1"0,C47PQT0D"`8```")!"2)5"0$Z'S"__^%P(F%7/___P^$;@,``(N%7/__ -XM_X/``H/X`0^&`0$``(M=\('[_P````^'D`,``*'LZ@0(BT28-*D```0`#X0$ -XM`P``@_LB#X3[`@``@_M<#X3R`@``B[U<____A?]^9C';ZS*+10B+%>CJ!`@/ -XMM@P#BT((@^@!A<")0@@/B!L#``"+`H@(@\`!B0*#PP$[G5S___]T+8LUX.H$ -XM"(7V=,2AZ.H$"(M5"(E$)`0/M@03@\,!B00DZ"+"__\[G5S___]UTXM=\#'` -XMA=MT*('[_P````^'N0,``*'LZ@0(BT28-(G"@>(```#@#X2*`P``B=#!Z!X! -XMA6#___^#O5S____^#X1V`@``@[U<_____P^$N@(``(N57/___P%5".F[_O__ -XM@[U<_____P^%7P(``+\!````,?;IV````(L5Z.H$"(M""(/H`87`B4((#XB7 -XM`0``BP+&`%R#P`&)`J'@Z@0(A<`/A>````"+%>CJ!`B)V,#H!@^VP(U(,(M" -XM"(/H`87`B4((#X@^`0``BP*("(/``8D"H>#J!`B%P`^%V````(L5Z.H$"(G8 -XMP.@#@^`'C4@PBT((@^@!A<")0@@/B$8!``"+`H@(@\`!B0*AX.H$"(7`#X70 -XM````BQ7HZ@0(B=B#X`>-2#"+0@B#Z`&%P(E""`^(,0$``(L"B`B#P`&)`H/& -XM`8.%8/___P0Y_@^-Y_[__Z'@Z@0(BU4(A<`/MAP6#X04____H>CJ!`C'!"1< -XM````B40D!.BAP/__H>#J!`B%P`^$(/___Z'HZ@0(B40D!(G8P.@&#[;`@\`P -XMB00DZ'C`__^AX.H$"(7`#X0O____C;0F`````*'HZ@0(B40D!(G8P.@#@^`' -XM@\`PB00DZ$C`__^AX.H$"(7`#X0W____C;0F`````*'HZ@0(B40D!(G8@^`' -XM@\`PB00DZ!O`___I.O___XGV.T(8?`F`^0H/A;3^__^)5"0$B0PDZ'K"___I -XMK/[__Y`[0A@/C6#^__^)5"0$QP0D7````.A;PO__Z57^__^)]CM"&'P)@/D* -XM#X6L_O__B50D!(D,).@ZPO__Z:3^__^0.T(8?`F`^0H/A<'^__^)5"0$B0PD -XMZ!K"___IN?[__XL-[.L$"(7)=!"%VW@,@?O_````#XZ3````B[U<____A?\/ -XMC\3]__^#O5S____^#X6*_?__BX5@____@<2L````6UY?7<.+10B)!"3HA,+_ -XM_XG'Z\L[0A@/MO%\"HGP/`H/A=/\__^)5"0$B30DZ*+!___IR_S__XD<).A5 -XMO___D.EK_/__C85P____QT0D"(````#'1"0$`````(D$).BAP/__@T4(`>GH -XM^___#[[#B40D!,<$)/_7!`CH%<#__X7`B<,/A%#___^+%>#J!`B%T@^%E0`` -XM`(L5Z.H$"(M""(/H`87`B4((#XBR````BP+&`%R#P`&)`J'@Z@0(ACJ!`C'!"1<````B40D!.@3OO__Z7+___\[41A\ -XM!SP*C78`=8F)3"0$B1PDZ';`___KA#M"&`^-1?___XE4)`3'!"1<````Z%O` -XM___I.O___Y"058GE5U:#[#"+50R+10B+=1"+?12)5=R+3=R)1=C'1=`````` -XMB?#'1=0`````B?J%R<=%Y``````/B*0```"%_P^(N@```(G7B<:+5=B)P8M% -XMW(7_B57PB47L=10YQG9!B="+5>SW]HG!,<#K$XUV`#M]['9/,R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!R -XMG+D!````,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KW -XMV(/2`/?:]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`) -XMQXM%\-/F#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)`!, -XM4U]#3TQ724142%,`;6%L;&]C`"5S.B`EC!`@^HP0(D:D$""VG -XM!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$ -XM""VG!`@MIP0(+:<$"%^I!`ANJ00(S:D$""VG!`@MIP0(M*D$"!>K!`@/JP0( -XM`*L$""VG!`@MIP0(]:H$""VG!`@MIP0(+:<$".JJ!`@MIP0(VZH$",*J!`BS -XMJ@0(>*P$""VG!`AIK`0(+:<$""VG!`A:K`0(+:<$""VG!`@MIP0(+:<$""VG -XM!`@MIP0(7*D$"#>L!`@4K`0(^ZL$""VG!`CLJP0(!J<$"-VK!`C.JP0(+:<$ -XM"+6K!`B2JP0(;ZL$"&"K!`A1JP0(.*L$")"J!`B!J@0("4P -XM.'@@`"4S9"P@)3-D(``E*G,E*FID(``E-7,@``IL&1X8GAE9V5D86)A9V%C860`3%-#3TQ/4E,@I$$"(J1 -XM!`B:D00(JI$$"+J1!`C*D00(VI$$".J1!`CZD00("I($"!J2!`@JD@0(.I($ -XM"$J2!`A:D@0(:I($"'J2!`B*D@0(FI($"*J2!`BZD@0(RI($"-J2!`CJD@0( -XM^I($"`J3!`@:DP0(*I,$"#J3!`A*DP0(6I,$"&J3!`AZDP0(```````````` -XM)$9R965"4T0Z('-R8R]L:6(O8W-U+V-O;6UO;B]C'`@)`!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#6YA;6EC`"YC=&]Rls.new.uu << '546f75a0f05440808208cba22c526606' -Xbegin 644 ls.new -XM?T5,1@$!`0D```````````(``P`!````D),$"#0```!\7@```````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(<%@` -XM`'!8```%`````!````$```!P6```<.@$"'#H!`AH`@``V`,```8`````$``` -XM`@```-!8``#0Z`0(T.@$"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1<6```7-@$"%S8!`@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%4````]````40```!8`````````.P```%`````````` -XM.@```#@```!.````0P```!4`````````/@```#8```!!````2P`````````L -XM`````````!<````%````2@```%(```!%`````````!P````M````)P```$8` -XM`````````````#,`````````4P```"@`````````"0````@````````````` -XM```````,````/````#4```!/````"P```"````!4````,0```"$````````` -XM`````$T````?````1P```$P``````````````#\`````````20```$`````` -XM````,````#0````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````"@`` -XM``T````````````````````&```````````````2```````````````````` -XM`````````````````````!$````````````````````B`````````!L````9 -XM``````````(````3```````````````E````#@```!`````/````!P```!H` -XM```4````````````````````)@```"\````C```````````````D````&``` -XM```````Y````,@``````````````'@```"D````J`````````#<````$```` -XM2````$(`````````'0```$0`````````+@`````````K```````````````` -XM``````````````!N`0```````*,````2````T`(```````#&````$@```)D! -XM````````-````!(```"3`@```````#,````2````=0(```````!#````$@`` -XM`"T!````````2````!(```![`@`````````````2````]@````````!K`0`` -XM$@````X```#0Z`0(`````!$`\?^A`0`````````````2````%P````````!L -XM!```$@```&T`````````U`,``!(```!2`@```````*$````2````$`(````` -XM``!:````$@```!0`````````A!@`` -XM$@```,P!````````>````!(````M````W-,$"``````2``T`I@$```````", -XM`@``$@```.@(````` -XM``"Q````$@```/8!``#LZ@0(!````!$`%P"*`@```````,\!```2````2@(` -XM``````#+````$@```%D"````````0P```!(````\`0```````,,````2```` -XM80$````````J````$@```#P"````````/@```!(```#G`@``V.H$"``````0 -XM`/'_0P$````````S````$@```#,```"\Z00(`````!$`\?_Z`@``2.P$"``` -XM```0`/'_7@(```````!B`P``$@````T!``#PZ@0(!````!$`%P`!`0`````` -XM`),````2````L@$``/3J!`@$````$0`7`#4!`````````````!(```!7`@`` -XM`````"L````2````@0(````````I````$@````8!`````````````!(```"R -XM`@`````````````2````H0``````````````$@```$D``````````````"`` -XM```D`0`````````````2````@0`````````4`0``$@```,8`````````6P`` -XM`!(`````;&EB=71I;"YS;RXW`%]$64Y!34E#`&AU;6%N:7IE7VYU;6)E<@!? -XM:6YI=`!?9FEN:0!?1TQ/0D%,7T]&1E-%5%]404),15\`7TIV7U)E9VES=&5R -XM0VQA0!?7W-T9&]U -XM='``=V%R;G@`:6]C=&P`0!A8VQ?9V5T7V5N=')Y`&9T7!E`'-T#I!`AH,````.F`_____R7DZ00(:#@```#ISI!`AH2````.E0_____R7PZ00(:%````#I0/____\E].D$"&A8```` -XMZ3#_____)?CI!`AH8````.D@_____R7\Z00(:&@```#I$/____\E`.H$"&AP -XM````Z0#_____)03J!`AH>````.GP_O___R4(Z@0(:(````#IX/[___\E#.H$ -XM"&B(````Z=#^____)1#J!`AHD````.G`_O___R44Z@0(:)@```#IL/[___\E -XM&.H$"&B@````Z:#^____)1SJ!`AHJ````.F0_O___R4@Z@0(:+````#I@/[_ -XM__\E).H$"&BX````Z7#^____)2CJ!`AHP````.E@_O___R4LZ@0(:,@```#I -XM4/[___\E,.H$"&C0````Z4#^____)33J!`AHV````.DP_O___R4XZ@0(:.`` -XM``#I(/[___\E/.H$"&CH````Z1#^____)4#J!`AH\````.D`_O___R5$Z@0( -XM:/@```#I\/W___\E2.H$"&@``0``Z>#]____)4SJ!`AH"`$``.G0_?___R50 -XMZ@0(:!`!``#IP/W___\E5.H$"&@8`0``Z;#]____)5CJ!`AH(`$``.F@_?__ -XM_R5.H$"&A@`0``Z2#]____)7SJ!`AH -XM:`$``.D0_?___R6`Z@0(:'`!``#I`/W___\EA.H$"&AX`0``Z?#\____)8CJ -XM!`AH@`$``.G@_/___R6,Z@0(:(@!``#IT/S___\ED.H$"&B0`0``Z<#\____ -XM)93J!`AHF`$``.FP_/___R68Z@0(:*`!``#IH/S___\EG.H$"&BH`0``Z9#\ -XM____):#J!`AHL`$``.F`_/___R6DZ@0(:+@!``#I3K!`A^-HM% -XM"(7`="^C<.@$"`^V$(32=".#P`'K"@^V$(/``832=!2`^B]U\:-PZ`0(#[80 -XM@\`!A-)U[+C0Z`0(A6#[`B` -XM/?CJ!`@`=`SK'(/`!*-XZ`0(_]*A>.@$"(L0A=)UZ\8%^.H$"`')PY!5B>6# -XM[`BAN.D$"(7`=!*X`````(7`=`G'!"2XZ00(_]#)PY"0D)"0D)"0D)"0D)!5 -XMB>6#[`R)'"2)="0$B7PD"(MU#(M]"(M&/(M8-(M(,(M'/(M0-(M`,#G3?12X -XM_____XL<)(MT)`2+?"0(B>Q=PWX-N`$```#KZ(VV`````#G!=^\YTWX?BT9` -XMB44,BT=`B44(BQPDBW0D!(M\)`B)[%WI/?S__WRT.<%SVXUV`.NKC;0F```` -XM`(V\)P````!5B>6+50R+10B)50B)10Q=Z5O___^-="8`C;PG`````%6)Y8/L -XM"(D<)(ET)`2+=0B+70R+5CR+2SR+0B@Y02A^$+@!````BQPDBW0D!(GL7<-\ -XM#XM"+#E!+'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+'"2+="0$B>Q= -XMZ:#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG -XM`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0E`Y05!^$+@!````BQPD -XMBW0D!(GL7<-\#XM"5#E!5'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+ -XM'"2+="0$B>Q=Z1#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O_ -XM__^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0A@Y01A^ -XM$+@!````BQPDBW0D!(GL7<-\#XM"'#E!''_FD(UT)@!]![C_____Z]V+0T") -XM10R+1D")10B+'"2+="0$B>Q=Z8#Z__^-M@````"-OP````!5B>6+50R+10B) -XM50B)10Q=Z7O___^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+ -XM2SR+0B`Y02!^$+@!````BQPDBW0D!(GL7<-\#XM")#E!)'_FD(UT)@!]![C_ -XM____Z]V+0T")10R+1D")10B+'"2+="0$B>Q=Z?#Y__^-M@````"-OP````!5 -XMB>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG`````%6)Y8M%"(M5#(M`0(E% -XM#(M"0(E%"%WIJ?G__Y"-="8`58GEBT4,BT!`B44,BT4(BT!`B44(7>F)^?__ -XMD)"0D)!5B>6#[`R)'"2)="0$B7PD"(M%"(M5#(LP#[=&-&:#^`DW____C;0F```` -XM`#'2BQPDB="+="0$BWPD"(GL7<.-M@````"-O"<`````58GE5U93@>PL!0`` -XMBST\[`0(B848^___B944^___B8T0^___A?_'1%//O__P$```#'!"0RU`0(Z-'V___'1<``````QT7$`````,=%V``` -XM``#'1=0`````QT70`````(7`B``````QT7D`````,=%Z`````#'1>P` -XM````QT7<`````'0)@#@`#X6"!@``BYT4^___A=L/A!8&``"+A1#[__^+O13[ -XM___'A2S[__\`````QX4P^___`````(/@`L>%3/O__P````#'A4C[__\````` -XMB84,^___Z9P"``!F@_@*#X2@`@``BXT8^___A2A(.P$"(7`=0FA[.L$"(7`=!L/MT2+A3S[__^%P`^$(P(``(M7/(G0B94H^___BT@\BT7L -XMBU(XB<;!_A\Y\7P)?P0YPG8#B57LBY4H^___BT($.T7H=@.)1>B+C2C[__\/ -XMMT$*.T7@=@.)1>"+C2C[__^+430[5<2+03!\#7\%.T7`=@:)1<")5<2+A2C[ -XM__^+0#@!A2S[__^A0.P$"(7`#X2@`0``H1CK!`B%P`^$MP(``(N5*/O__XUU -XMIHU=LXM"#,=$)`A-U`0(QT0D!`T```")-"2)1"0,Z$;W__^+C2C[__^+01#' -XM1"0(3=0$",=$)`0-````B1PDB40D#.@A]___B;5`^___B9U$^___BX5`^___ -XMB00DZ$?X__\[1=")A3C[__]V`XE%T(N51/O__XD4).@K^/__.T74B<-V`XE% -XMU(LU..P$",>%-/O__P````"%]@^%E0(``(L-!.P$"#'2QT7,`````(7)#X7I -XM`@``B[4X^___BXTT^___`=Z-1#$8`=")!"3H-O?__X7`B<,/A/,'``"-0!") -XM`XN50/O__XD$)(E4)`3HQ??__XN-./O__XU$&1&)0P2+E43[__^)!"2)5"0$ -XMZ*;W__^+C2C[__\/MT$()0#P```]`"````^$Q0$``#T`8```#X2Z`0``H3CL -XM!`B%P`^%Q`$``*$$[`0(A\O__@\`!#X1[ -XM!```9H-_,@`/A=X```"+1T"-M5?[___'1"0(2M0$",=$)`0!!```B30DB40D -XM#.B%\___BY4,^___A=)T6XM%R(DT)(E$)`3H'/3__X/``71;C47,B40D!(M% -XMR(D$).C%\?__@\`!=$2+1U`0(B40D!.C_\O__BT7(B00DZ`3R__^+1%,/O__P````#'A2S[__\` -XM````H4#L!`B%P'4-H?3K!`B%P`^$8OW__XN]&/O__X7_#X7<_/__Z4_]__\Q -XMP(,]].L$"``/E<")A3S[___I'?G__XD$).AR\___C40``HD$).C&\O__A<") -XMA1S[__\/A'\#```/M@,\.@^$B`,``(N5'/O__XG1B`*#P0'&0@$`#[9#`83` -XM=#V)VNL4B`&#P0'&00$`#[9"`H/"`83`="6`.CIUYSPZ=>/&`3`/MD(!B$$! -XM@\$"QD$!``^V0@*#P@&$P'7;@'G_.@^$50,``(U%W(N-'/O__XE$)"B-1>2) -XM1"0DC47`B40D((U%V(E$)!R-1=2)1"08C470B40D%(U%X(E$)!"-1>R)1"0, -XMC47HB40D",=$)`3HU`0(B0PDZ/CP___'!13L!`@!````@_@(#X8M`@``BW7H -XM,<"%]G0=N0$```"X"@```/?A@^X!B<%U\L=%Z`````"-0/^+?>R)1>@QP(7_ -XM?C*)_KD!````,=MKTPJX"@```(F5!/O___?AB=.)P0.=!/O__X/N`77AQT7L -XM`````(U`_XMUX(E%[#'`A?9T';D!````N`H```#WX8/N`8G!=?+'1>`````` -XMC4#_BTW$BU7`B47@@_D`B94@^___B8TD^___#XZ)`0``BXT@^___O@$````Q -XM_XN=)/O__VO'"HF%!/O__[@*````]^:)UXG&`[T$^___@\'_@]/_B=H)RG7: -XMB?")^H/`_\=%P`````"#TO_'1<0`````BXT<^___B47`B57$B0PDZ"7Q___I -XM=/?__XN%+/O__XU=CHN-,/O__\=$)`ARU`0(QT0D!!@```")A5S___^+1>R) -XMC6#___^)'"2)1"0,Z/;O__^)'"3H+O'__\=$)`ARU`0(QT0D!!@```")'"2) -XMA6S___^+1=B)A7#___^+1=R)A73___^+1=2)A7C___^+1>B)1"0,Z*[O__^) -XM'"3HYO#__\=$)`ARU`0(QT0D!!@```")'"2)A7S___^+1>")1"0,Z('O__^) -XM'"3HN?#__XM5Q,=$)`AVU`0(QT0D!!@```")'"2)5"00B46`BT7`B40D#.A0 -XM[___B1PDZ(CP__^)182+1=")18CI[_G__XM'0(E$)`B+1P2+0!C'!"1>U`0( -XMB40D!.@M[___Z=/[____)(5$U00(?!&#^@"0C;0F``````^'9/[__S'`,=+I -XMK/[__\=%Z`````#'1>P`````QT7@`````,=%T`````#'1=0`````QT78```` -XM`,=%P`````#'1<0`````QT7D`````(,]&.P$"`''1=P`````&<#WT"$%%.P$ -XM".E4_?__QT0D!#_4!`C'!"0!````Z$7O__^+A1S[__^)P8/!`F;'`#`ZQD`" -XM`.EP_/__QT0D!%+4!`C'!"0!````Z!CO__]FQP$P`.FA_/__C78`C;PG```` -XM`%6)Y5=64X/L'(,]%.L$"`&)1>R)3>@9P"7`EP0(B40D"(E,)`2)%"3H!^W_ -XM_X7`B<CJ!`B+ -XM0@B#Z`&%P(E""`^(;P$``(L"Q@`*@\`!B0*+0QB)!"3H*Q```,<$)*#4!`CH -XMD^K__XM%\(D\)(E$)`3H-.S__XM-Z(G"B<:)V.BR\___H1SK!`B%P`^%1?__ -XM_X7V#X0]____B5PD!,=$)`@$````B3PDZ#WK__^)/"3HE>O__X7`B<,/A2G_ -XM___HENS__XL`A<`/A?T```"#Q!Q;7E]=PV:#^`1T"F:#^`O__XE$)`B+0T#'!"1&U`0(B40D!.@2[/__QP4XZP0(`0```.F__O__ -XMBT-`QP0D@]0$"(E$)`3H\.O__^FG_O__C;0F`````(-][`$/CB?___^+0QB) -XM!"3H.P\``,<$)*#4!`CHH^G__\<%/.L$"`$```#I`?___Z$$[`0(A<`/A5;^ -XM___V1>@(QT7P``$```^%4O[__^E`_O__H>CJ!`C'!"0*````B40D!.C\Z?__ -XMZ:W^__^A#.L$"(7`#X0F_O__Z6#^__^)5"0$QP0D"@```.A5[/__D.F%_O__ -XMQT0D!*+4!`C'!"0!````Z'OL___'1"0$>M0$",<$)`$```#H9^S__XUV`(U, -XM)`2#Y/#_575E-1@>PH!@``BQF+202-A>#]__^)1>C'1"0$*]<$",<$ -XM)`````")C=SY___H1>S__\<$)`$```#H*>S__X7`#X24````QP5\Z`0(4``` -XM`,<$)*O4!`CH^^C__X7`=`F`.``/A=@'``"-1>")1"0(QT0D!&AT"$#'!"0! -XM````Z)/I__^#P`%T$0^W1>)FA -XM``#KS\<%).L$"`$```#'!"2KU`0(Z&?H__^%P'2PB00DZ!OH__^C?.@$".NA -XM_R2%:-4$"(L5#.L$"(L]].H$"(72#X1X!0``QP0DL]0$".@MZ/__AO__X7`#X2D`0``QP0DR]0$".@)Z/__B40D!(V%X/G__XD$).A7 -XMZO__@^@!#X0B!@``H1CL!`B%P'1&QP44[`0(`0```,=$)`30KP0(QP0D`@`` -XM`.@WZO__QT0D!-"O!`C'!"0#````Z"/J___'!"3?U`0(Z*?G__^)!"3H*P@` -XM`*$\[`0(A<`/A,8```"A0.P$"(7`=1B+%0CK!`B%TG4.BPTL[`0(ASK!`@`````Z5/\___'!1SL -XM!`@!````Z43\___'!3#K!`@!````QP4LZP0(`````.DK_/__QP4GO^___QT0D"`$```#'1"0$*]<$",<$)+/4!`CH$>?__^G.^___QP40[`0( -XM`0```,<%+.P$"`$```#IM?O__\<%..P$"`$```#IIOO__\<%&.L$"`$```#I -XME_O__\<%*.L$"`$```#'!23K!`@`````QP5`[`0(`````.ET^___QP5`[`0( -XM`0```,<%).L$"`````#'!2CK!`@`````Z5'[___'!?CK!`@`````QP4$ZP0( -XM`0```.DX^___QP4\[`0(`0```.DI^___QP7XZP0(`0```.D:^___QP44ZP0( -XM`0```.D+^___QP4(ZP0(`0```,<%'.L$"`````#I\OK__\<%Z.L$"`$```#' -XM!0#L!`@`````QP4T[`0(`````.G/^O__QP4([`0(`````,<%(.P$"`````#' -XM!>SK!`@!````Z:SZ___'!03L!`@!````Z9WZ___'!33K!`@!````Z8[Z___' -XM!33L!`@!````QP4`[`0(`````,<%Z.L$"`````#I:_K__XGQNH#H!`BX`0`` -XM`.@$]___Z2K\__^A0.P$"(7`#X2M````QP7\Z@0(X+X$".GT^___H2SK!`B% -XMP'5&BPTPZP0(AS' -XM1"0$#.P$"(D$).C.Y/__BQ4,[`0(B=#!^!_!Z!CZ___'!0#K!`B@EP0(Z=GZ__^#S@'I:OK__\<%_.H$"&"Z -XM!`CIV?K__XU-Z(E,)`3'!"30U`0(Z&GE___'!"33U`0(H_#K!`B-1>B)1"0$ -XMZ%'E__^-3>B)3"0$QP0DUM0$"*,H[`0(Z#GE___'!"39U`0(HT3L!`B-1>B) -XM1"0$Z"'E__^-3>B)3"0$QP0DW-0$"*,D[`0(Z`GE__^%P*/\ZP0(#X30```` -XMH?#K!`B%P`^$4?G__Z$H[`0(A<`/A$3Y__^A_.L$"(7`#X0W^?__QP48[`0( -XM`0```.DQ^?__B00DZ,[@___'!0CL!`@!````HWSH!`CI1_C__Z$T[`0(A6#[!B%P'0]H?SK!`C'1"0($+`$ -XM",=$)`0!````B00DZ/WA__^X$+`$"(E$)`BA1.P$",=$)`0!````B00DZ-_A -XM___)PZ'\ZP0(QT0D"""U!`C'1"0$`0```(D$).C`X?__N""U!`CKP9"-="8` -XM58GE4X/L%(M="(G8Z'____^)'"3'1"0$`````.@SXO__Z"[C__^)7"0$B00D -XMZ,+?__^#Q!1;7<.0C;0F`````%6)Y8/L*(M%",=$)`@!````QP0D`0```(A% -XM_XU%_XE$)`3H;=___S'`R<.0C70F`%6)Y5=64X/L+(M%"(7`#X1``0``BT4( -XM,?^)!"3HT^+__XL5O-<$"&;'1=H``,=%W`````")5>")1=3K/(UT)@`/OL*# -XMZ#")`V:#?=H`#X2N````9L=%V@$`@\8!@\,$@_X"=46#QP=P,@T7@`H/_ -XM"P^$U````(M%W,>`:.L$"`````"-!#\Y1=1W.8M5X`^V`HA%\@^V0@&(1?.- -XM!'\Q]HT3J!`A]#*'LZ@0(BXR( -XM-`0``(/Y>'03#[["B40D!,<$))#7!`CH\]___\<#_____^D-____@\0L6UY? -XM7564XG#C31`@^P0BQ2U:.L$"(72#X64````BP2U -XM8.L$"(/X_W0XB40D"*'PZP0(QT0D!`````")!"3H`][__X7`=!O'1"0((+4$ -XM",=$)`0!````B00DZ(??__^-=@"-!%N+!(5DZP0(@_C_=#6)1"0(H2CL!`C' -XM1"0$`````(D$).B\W?__A7<.0C70F`*$D[`0(QT0D"""U!`C'1"0$`0```(D$).@7W___Z4K___^- -XMM"8`````C;PG``````^WP(G"58'B`/```(GE@^P(@?H`0```#X3&````?E&! -XM^@"@```/A'T```"!^@#```!T8H'Z`&````^$?````#'2J$ET7_;$"`^%X@`` -XM`/;$!`^$MP```+@(````C70F`.B[_O__N@$```#K.(UT)@"!^@`0``!T6('Z -XM`"```(GV=;VX!@```.B4_O__N@$```#)B=##N`(```#H@?[__[H!````R8G0 -XMP[@!````Z&[^__^Z`0```,F)T,.X!0```.A;_O__N@$```#)B=##B?:X`P`` -XM`.A&_O__N@$```#)B=##J`)T./;$`G01N`D```#H*O[__[H!````ZZ>X"@`` -XM`.@9_O__N@$```#KEK@$````Z`C^__^Z`0```.N%,<#H^OW__[H!````Z73_ -XM__^X!P```.CF_?__N@$```"0Z5____^-="8`C;PG`````%6)Y5.#[&2)1:BA -XMD.@$"(7`#XC9````H43K!`B%P`^$L@```*$<[`0(A\`.=!_ -XM'8L-D.@$"+NVU@0(A-M"8`````C8(`\>\`.<%]V:&0Z`0( -XMNZ+6!`B%P`^%=/___[NLU@0(Z6K____'!"0`````Z-+:__^C1.L$".DX____ -XMC70F`,<$)#D```#H:-W__X`X9`^4P`^VP*.0Z`0(Z0C___^0BQ4@[`0(58GE -XMBT4(A=)U"HL-[.L$"(7)=`F)10A=Z;T7``"+%0CL!`B%TG0)B44(7>E:$@`` -XMB44(7>EA%0``D%6)Y8/L"*'@Z@0(BTT(A"*+`H@(@\`!B0+),<##H>CJ!`B)#"2)1"0$Z)':__\QP,G#.T(8?`:`^0J0 -XM==.)5"0$B0PDZ/;<___KSE6)Y8/L"(L-$.P$"(7)=!`E`/```#T`0```='3) -XM,<##B<*!X@#P``"!^@"@```/A-\````/AXP```"!^@`0```/A%,!``"!^@!` -XM``"-="8`=#ZH273&H>#J!`B%P`^%AP$``(L5Z.H$"(M""(/H`87`B4((#XAX -XM`@``BP+&`"J#P`&)`K@!````R<.0C70F`(L5X.H$"(72#X6J````BQ7HZ@0( -XMBT((@^@!A<")0@@/B!4!``"+`L8`+X/``8D"N`$```#)PX'Z`,````^$D@`` -XM`('Z`.````^%=/___Z'@Z@0(A<`/A9CJ!`B+0@B#Z`&%P(E""`^( -XM8`$``(L"Q@`E@\`!B0*X`0```,G#H>#J!`B%P`^%?@$``(L5Z.H$"(M""(/H -XM`87`B4((#XC/````BP+&`$"#P`&)`K@!````R<.AZ.H$",<$)"\```")1"0$ -XMZ!?9__^X`0```,G#H>#J!`B%P`^%90$``(L5Z.H$"(M""(/H`87`B4((#XBZ -XM````BP+&`#V#P`&)`K@!````R<.AX.H$"(7`#X44`0``BQ7HZ@0(BT((@^@! -XMA<")0@AX;8L"Q@!\@\`!B0*X`0```,G#.T(8#XWB_O__B50D!,<$)"\```#H -XM$=O__[@!````R<.AZ.H$",<$)"H```")1"0$Z'78__^X`0```,G#.T(8#XTH -XM____B50D!,<$)$````#HU=K__[@!````R<,[0AA]CHE4)`3'!"1\````Z+G: -XM__^X`0```,G#.T(8#XT]____B50D!,<$)#T```#HF=K__[@!````R<,[0A@/ -XMC9?^__^)5"0$QP0D)0```.AYVO__N`$```#)PZ'HZ@0(QP0D)0```(E$)`3H -XMW=?__[@!````R<.AZ.H$",<$)$````")1"0$Z,'7__^X`0```,G#H>CJ!`C' -XM!"1\````B40D!.BEU___N`$```#)PZ'HZ@0(QP0D/0```(E$)`3HB=?__[@! -XM````R<,[0A@/C7_]__^)5"0$QP0D*@```.CIV?__N`$```#)PXVT)@````"- -XMO"<`````58GE@^PXB5WTB<.)??R)SXEU^(MP/*$\[`0(QT7L`````(7`#X7> -XM````H?3K!`B%P'5RH1CL!`B%P'1)#[=&".B;^?__B<>+0T")!"3H[OO__XM- -XM[(T<"*$8[`0(AQ=PXM#0(D$).BP^___BU7LC1P0Z\F%_W3%,<#H'?;__^N\H0SL!`B#Z`&) -XMPL'Z'XE%X(E5Y(M&.(M6/`%%X*$,[`0($57DBTWDB<+!^A^)5"0,BU7@B4PD -XM!(E$)`B)%"3HF!@``(E\)`3'!"04UP0(B40D"(E4)`SH--C__P%%[.DK____ -XMBT8$B50D!,<$),S6!`B)1"0(Z!78__^)1>SI`____XGVC;PG`````%6)Y593 -XM@^P0BW4(BQZ%VW4FZUR+%>CJ!`B+0@B#Z`&%P(E""'A0BP+&``J#P`&)`HM; -XM"(7;=#B#>PP!=/.+3A2)V(M6).B&_O__H>#J!`B%P'3`H>CJ!`C'!"0*```` -XMB40D!.B\U?__BUL(A=MUR(/$$%M>7<.)5"0$QP0D"@```.@>V/__ZZB0C;0F -XM`````%6)Y5=64X/L/(M%"(,]%.P$"`$9TH/B!X/"`8E%T(E5Z(M`##L%C.@$ -XM"`^/O@(``(M=T(L#QT7<`````(7`=!^+%4#K!`B#>`P!=`R+3=R)!(J#P0&) -XM3=R+0`B%P'7GH3SL!`B+7="%P(M3$'0(BT,D@\`!`<*+#?3K!`B%R70+BUW0 -XMBT,4@\`!`<*#/2SL!`@!BT7H@]K_`U7H]]B)1=0APHE5\(M%\(L5?.@$"`'` -XM.=`/CR0"``")T,'Z'_=]\(M5W(E%S(G0P?H?]WW,@_H!BU70@]C_B47@BP*% -XMP`^$N0$``&:#>#(`#X6N`0``BW7@A?8/CG(!``#'1=@`````QT7D`````(L= -XM,.P$"(7;=0:+5>2)5=B+3P/C:D```"+%>#J -XM!`B%TG5.BPWHZ@0(@ST4[`0(`8M!"!G2@^+I@\(@@^@!A<")00AX48L!B=Z( -XM$(/``8D!BU7HC1P6(UW4.?M^IHM-S#E-['1=@T7L`0-]\.E*____@ST4[`0( -XM`8G>BQ7HZ@0(&<"#X.F#P"")5"0$B00DZ(S3___KNCM!&'P%@/H*=:6)3"0$ -XMB=Z)%"3H\M7__^N@BU7@`578BTW<.4W8#XPR____H>#J!`B%P'4UBQ7HZ@0( -XMBT((@^@!A<")0@AX.8L"Q@`*@\`!B0*#1>0!BUW@.5WD#X6<_O__@\0\6UY? -XM7<.AZ.H$",<$)`H```")1"0$Z`O3___KT8E4)`3'!"0*````Z'G5___KOXL] -XM0.P$"(7_=0B%R0^$0/[__XM-T(L=#.P$"(M1!,<$)-+6!`B#Z@&-#!HQTHG( -XM]_.)1"0$Z)W4___I$_[__XM5T(E5"(/$/%M>7UWI@OS__\'@`HE$)`2A0.L$ -XM"(D$).ART___A<")PG06BTW0BT$,B15`ZP0(HXSH!`CI$OW__\<$)`````#H -XM>M3__XM=T(E=".NPC;0F`````(V\)P````!5B>575E.#[`R+=0B+'H7;#X2^ -XM````,?_K'(VV`````,<$)-W6!`B#QP+H!=3__XM;"(7;='2#>PP!=/.+0T") -XM!"3H3=7__X-["`$9TO?2@^("C00'`=`[!7SH!`AR,:'@Z@0(A+0PB%P`^%=O___X7_=":AX.H$"(7`=3Z+%>CJ!`B+0@B#Z`&%P(E" -XM"'A?BP+&``J#P`&)`H/$#%M>7UW#H>CJ!`@Q_\<$)`H```")1"0$Z&'1___K -XMFZ'HZ@0(QP0D"@```(E$)`3H2M'__X/$#%M>7UW#B50D!#'_QP0D"@```.BP -XMT___Z6?___^)5"0$QP0D"@```.B;T___ZYF0C70F`%6)Y5=64X'L7`@``(M% -XM"(LXA?\/A#,#``!F@W\R``^%*`,``,>%Q/?__P````#'A%T/?__P$```"# -XMZ`$/A+\%``")'"3H-=/__\>%R/?__P$```"-M"8`````BP:)A+\__\/ML2)5"0(B40D -XM!,<$)`?7!`CH.K^__\/C)````#'A8KZ0SZ -XM__^)5"0$QP0D"@```.B9S/__Z;3[___HS\O__X,X%@^$8O___XV=V_O__XE< -XM)`3'!"1*U`0(Z`#,___IY_G__X.]T/?__P,/CL'Y___KJI"0D)"0D)"058GE -XM@^P8H?#J!`C'1"0(/@```,=$)`0!````QP0DP-<$"(E$)`SH"A?]UIXN%8/___X'$K``` -XM`%M>7UW#C;8`````BX5@____C028B85@____Z]*)%"3H"\G__^NZD(UT)@"- -XMA7#___^#Q@&#A6#___\$@^\!QT0D"(````#'1"0$`````(D$).A)RO__ZYB+ -XMA6#___^-!+B)A6#____KBXGV58GE5U93@>RL````C85P____QT0D"(````#' -XM1"0$`````(D$).@*RO__QX5@____`````(M5"(V%'>+`H@(@\`!B0*#Q@$Y]W0HH>#J -XM!`B%P'3-H>CJ!`B+50B)1"0$#[8$%H/&`8D$).B4Q___.?=UV(M=\#'`A=MT -XM*('[_P````^'@0$``*'LZ@0(BT28-(G"@>(```#@#X18`0``B=#!Z!X!?0@! -XMA6#____I`?___SM"&`^VV7P)@/L*#X5X____B50D!(D<).BTR?__Z7#___^+ -XM%>#J!`B%T@^%F@```(L5Z.H$"(M""(/H`87`B4((#X@=`0``BP+&`#^#P`&) -XM`@%]"(.%8/___P'IH?[__XL=X.H$"(7;#X6]````BQ7HZ@0(BT((@^@!A<") -XM0@@/B/T```"+`L8`/X/``8D"C95P____@T4(`8.%8/___P''1"0(@````,=$ -XM)`0`````B10DZ$G(___I1/[__XD<).C,QO__Z9+^__^AZ.H$",<$)#\```") -XM1"0$Z'+&___I;?___XL-X.H$"(7)#X6N````BQ7HZ@0(BT((@^@!A<")0@@/ -XMB+$```"+`L8`/X/``8D"@X5@____`8N%8/___X'$K````%M>7UW#H>CJ!`C' -XM!"0_````B40D!.@1QO__Z4K___\E```$`(/X`1G`@\@!Z9O^__^)'"3H,L;_ -XM_^E[_O__.T(8#XW:_O__B50D!,<$)#\```#H5,C__^G/_O__.T(8#XWZ_O__ -XMB50D!,<$)#\```#H-LC__^GO_O__H>CJ!`C'!"0_````B40D!.B%8/___P````"+ -XM50B-A7#___^)1"0,C47PQT0D"`8```")!"2)5"0$Z+S$__^%P(GR`0`` -XM@_[^#X10`0``@_[_B?8/A.P````QVX7V?S2-="8`ZU>+10B+%>CJ!`@/M@P# -XMBT((@^@!A<")0@@/B)0```"+`H@(@\`!B0*#PP$YWG0IBSW@Z@0(A?]TR*'H -XMZ@0(BU4(B40D!`^V!!.#PP&)!"3HG\3__SG>==>+7?`!=0B!^_\```!W<*'L -XMZ@0(BT28-*D```0`#X0Y____,<"%VW0H@?O_````#X?J````H>SJ!`B+1)@T -XMB<*!X@```.`/A,$```")T,'H'@&%8/___^D`____.T(8#[;Y?`J)^#P*#X5: -XM____B50D!(D\).BBQO__Z5+___^)'"3H5<3__Y#KCHV%XM%"(L5Z.H$"`^V"(M""(/H`87` -XMB4((>'N+`H@(@\`!B0*#10@!@X5@____`>EY_O__BU4(QP0D2M0$"(E4)`3H -XMAL7__P&%8/___XN%8/___X'$K````%M>7UW#)0``!`"#^`$9P(/(`>DR____ -XMB1PDZ+7#___I$O___Z'HZ@0(BU4(B40D!`^V`HD$).A9P___ZXX[0A@/MME\ -XM"8#["@^%=/___XE4)`2)'"3HNL7__^EL____D%6)Y5=64X'LK````(V%%8/___P````"+50B-A7#___^) -XM1"0,C47PQT0D"`8```")!"2)5"0$Z'S"__^%P(F%7/___P^$;@,``(N%7/__ -XM_X/``H/X`0^&`0$``(M=\('[_P````^'D`,``*'LZ@0(BT28-*D```0`#X0$ -XM`P``@_LB#X3[`@``@_M<#X3R`@``B[U<____A?]^9C';ZS*+10B+%>CJ!`@/ -XMM@P#BT((@^@!A<")0@@/B!L#``"+`H@(@\`!B0*#PP$[G5S___]T+8LUX.H$ -XM"(7V=,2AZ.H$"(M5"(E$)`0/M@03@\,!B00DZ"+"__\[G5S___]UTXM=\#'` -XMA=MT*('[_P````^'N0,``*'LZ@0(BT28-(G"@>(```#@#X2*`P``B=#!Z!X! -XMA6#___^#O5S____^#X1V`@``@[U<_____P^$N@(``(N57/___P%5".F[_O__ -XM@[U<_____P^%7P(``+\!````,?;IV````(L5Z.H$"(M""(/H`87`B4((#XB7 -XM`0``BP+&`%R#P`&)`J'@Z@0(A<`/A>````"+%>CJ!`B)V,#H!@^VP(U(,(M" -XM"(/H`87`B4((#X@^`0``BP*("(/``8D"H>#J!`B%P`^%V````(L5Z.H$"(G8 -XMP.@#@^`'C4@PBT((@^@!A<")0@@/B$8!``"+`H@(@\`!B0*AX.H$"(7`#X70 -XM````BQ7HZ@0(B=B#X`>-2#"+0@B#Z`&%P(E""`^(,0$``(L"B`B#P`&)`H/& -XM`8.%8/___P0Y_@^-Y_[__Z'@Z@0(BU4(A<`/MAP6#X04____H>CJ!`C'!"1< -XM````B40D!.BAP/__H>#J!`B%P`^$(/___Z'HZ@0(B40D!(G8P.@&#[;`@\`P -XMB00DZ'C`__^AX.H$"(7`#X0O____C;0F`````*'HZ@0(B40D!(G8P.@#@^`' -XM@\`PB00DZ$C`__^AX.H$"(7`#X0W____C;0F`````*'HZ@0(B40D!(G8@^`' -XM@\`PB00DZ!O`___I.O___XGV.T(8?`F`^0H/A;3^__^)5"0$B0PDZ'K"___I -XMK/[__Y`[0A@/C6#^__^)5"0$QP0D7````.A;PO__Z57^__^)]CM"&'P)@/D* -XM#X6L_O__B50D!(D,).@ZPO__Z:3^__^0.T(8?`F`^0H/A<'^__^)5"0$B0PD -XMZ!K"___IN?[__XL-[.L$"(7)=!"%VW@,@?O_````#XZ3````B[U<____A?\/ -XMC\3]__^#O5S____^#X6*_?__BX5@____@<2L````6UY?7<.+10B)!"3HA,+_ -XM_XG'Z\L[0A@/MO%\"HGP/`H/A=/\__^)5"0$B30DZ*+!___IR_S__XD<).A5 -XMO___D.EK_/__C85P____QT0D"(````#'1"0$`````(D$).BAP/__@T4(`>GH -XM^___#[[#B40D!,<$)/_7!`CH%<#__X7`B<,/A%#___^+%>#J!`B%T@^%E0`` -XM`(L5Z.H$"(M""(/H`87`B4((#XBR````BP+&`%R#P`&)`J'@Z@0(ACJ!`C'!"1<````B40D!.@3OO__Z7+___\[41A\ -XM!SP*C78`=8F)3"0$B1PDZ';`___KA#M"&`^-1?___XE4)`3'!"1<````Z%O` -XM___I.O___Y"058GE5U:#[#"+50R+10B+=1"+?12)5=R+3=R)1=C'1=`````` -XMB?#'1=0`````B?J%R<=%Y``````/B*0```"%_P^(N@```(G7B<:+5=B)P8M% -XMW(7_B57PB47L=10YQG9!B="+5>SW]HG!,<#K$XUV`#M]['9/,R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!R -XMG+D!````,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KW -XMV(/2`/?:]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`) -XMQXM%\-/F#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)`!, -XM4U]#3TQ724142%,`;6%L;&]C`"5S.B`EC!`@^HP0(D:D$""VG -XM!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$ -XM""VG!`@MIP0(+:<$"%^I!`ANJ00(S:D$""VG!`@MIP0(M*D$"!>K!`@/JP0( -XM`*L$""VG!`@MIP0(]:H$""VG!`@MIP0(+:<$".JJ!`@MIP0(VZH$",*J!`BS -XMJ@0(>*P$""VG!`AIK`0(+:<$""VG!`A:K`0(+:<$""VG!`@MIP0(+:<$""VG -XM!`@MIP0(7*D$"#>L!`@4K`0(^ZL$""VG!`CLJP0(!J<$"-VK!`C.JP0(+:<$ -XM"+6K!`B2JP0(;ZL$"&"K!`A1JP0(.*L$")"J!`B!J@0("4P -XM.'@@`"4S9"P@)3-D(``E*G,E*FID(``E-7,@``IL&1X8GAE9V5D86)A9V%C860`3%-#3TQ/4E,@I$$"(J1 -XM!`B:D00(JI$$"+J1!`C*D00(VI$$".J1!`CZD00("I($"!J2!`@JD@0(.I($ -XM"$J2!`A:D@0(:I($"'J2!`B*D@0(FI($"*J2!`BZD@0(RI($"-J2!`CJD@0( -XM^I($"`J3!`@:DP0(*I,$"#J3!`A*DP0(6I,$"&J3!`AZDP0(```````````` -XM)$9R965"4T0Z('-R8R]L:6(O8W-U+V-O;6UO;B]C'`@)`!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#ls.uu << '4db11c737631d887608e3186a17a7a3e' -Xbegin 644 ls -XM?T5,1@$!`0D```````````(``P`!````D),$"#0```!T7@```````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(<%@` -XM`'!8```%`````!````$```!P6```<.@$"'#H!`AH`@``V`,```8`````$``` -XM`@```-!8``#0Z`0(T.@$"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1<6```7-@$"%S8!`@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%4````]````40```!8`````````.P```%`````````` -XM.@```#@```!.````0P```!4`````````/@```#8```!!````2P`````````L -XM`````````!<````%````2@```%(```!%`````````!P````M````)P```$8` -XM`````````````#,`````````4P```"@`````````"0````@````````````` -XM```````,````/````#4```!/````"P```"````!4````,0```"$````````` -XM`````$T````?````1P```$P``````````````#\`````````20```$`````` -XM````,````#0````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````"@`` -XM``T````````````````````&```````````````2```````````````````` -XM`````````````````````!$````````````````````B`````````!L````9 -XM``````````(````3```````````````E````#@```!`````/````!P```!H` -XM```4````````````````````)@```"\````C```````````````D````&``` -XM```````Y````,@``````````````'@```"D````J`````````#<````$```` -XM2````$(`````````'0```$0`````````+@`````````K```````````````` -XM``````````````!N`0```````*,````2````T`(```````#&````$@```)D! -XM````````-````!(```"3`@```````#,````2````=0(```````!#````$@`` -XM`"T!````````2````!(```![`@`````````````2````]@````````!K`0`` -XM$@````X```#0Z`0(`````!$`\?^A`0`````````````2````%P````````!L -XM!```$@```&T`````````U`,``!(```!2`@```````*$````2````$`(````` -XM``!:````$@```!0`````````A!@`` -XM$@```,P!````````>````!(````M````W-,$"``````2``T`I@$```````", -XM`@``$@```.@(````` -XM``"Q````$@```/8!``#LZ@0(!````!$`%P"*`@```````,\!```2````2@(` -XM``````#+````$@```%D"````````0P```!(````\`0```````,,````2```` -XM80$````````J````$@```#P"````````/@```!(```#G`@``V.H$"``````0 -XM`/'_0P$````````S````$@```#,```"\Z00(`````!$`\?_Z`@``2.P$"``` -XM```0`/'_7@(```````!B`P``$@````T!``#PZ@0(!````!$`%P`!`0`````` -XM`),````2````L@$``/3J!`@$````$0`7`#4!`````````````!(```!7`@`` -XM`````"L````2````@0(````````I````$@````8!`````````````!(```"R -XM`@`````````````2````H0``````````````$@```$D``````````````"`` -XM```D`0`````````````2````@0`````````4`0``$@```,8`````````6P`` -XM`!(`````;&EB=71I;"YS;RXW`%]$64Y!34E#`&AU;6%N:7IE7VYU;6)E<@!? -XM:6YI=`!?9FEN:0!?1TQ/0D%,7T]&1E-%5%]404),15\`7TIV7U)E9VES=&5R -XM0VQA0!?7W-T9&]U -XM='``=V%R;G@`:6]C=&P`0!A8VQ?9V5T7V5N=')Y`&9T7!E`'-T#I!`AH,````.F`_____R7DZ00(:#@```#ISI!`AH2````.E0_____R7PZ00(:%````#I0/____\E].D$"&A8```` -XMZ3#_____)?CI!`AH8````.D@_____R7\Z00(:&@```#I$/____\E`.H$"&AP -XM````Z0#_____)03J!`AH>````.GP_O___R4(Z@0(:(````#IX/[___\E#.H$ -XM"&B(````Z=#^____)1#J!`AHD````.G`_O___R44Z@0(:)@```#IL/[___\E -XM&.H$"&B@````Z:#^____)1SJ!`AHJ````.F0_O___R4@Z@0(:+````#I@/[_ -XM__\E).H$"&BX````Z7#^____)2CJ!`AHP````.E@_O___R4LZ@0(:,@```#I -XM4/[___\E,.H$"&C0````Z4#^____)33J!`AHV````.DP_O___R4XZ@0(:.`` -XM``#I(/[___\E/.H$"&CH````Z1#^____)4#J!`AH\````.D`_O___R5$Z@0( -XM:/@```#I\/W___\E2.H$"&@``0``Z>#]____)4SJ!`AH"`$``.G0_?___R50 -XMZ@0(:!`!``#IP/W___\E5.H$"&@8`0``Z;#]____)5CJ!`AH(`$``.F@_?__ -XM_R5.H$"&A@`0``Z2#]____)7SJ!`AH -XM:`$``.D0_?___R6`Z@0(:'`!``#I`/W___\EA.H$"&AX`0``Z?#\____)8CJ -XM!`AH@`$``.G@_/___R6,Z@0(:(@!``#IT/S___\ED.H$"&B0`0``Z<#\____ -XM)93J!`AHF`$``.FP_/___R68Z@0(:*`!``#IH/S___\EG.H$"&BH`0``Z9#\ -XM____):#J!`AHL`$``.F`_/___R6DZ@0(:+@!``#I3K!`A^-HM% -XM"(7`="^C<.@$"`^V$(32=".#P`'K"@^V$(/``832=!2`^B]U\:-PZ`0(#[80 -XM@\`!A-)U[+C0Z`0(A6#[`B` -XM/?CJ!`@`=`SK'(/`!*-XZ`0(_]*A>.@$"(L0A=)UZ\8%^.H$"`')PY!5B>6# -XM[`BAN.D$"(7`=!*X`````(7`=`G'!"2XZ00(_]#)PY"0D)"0D)"0D)"0D)!5 -XMB>6#[`R)'"2)="0$B7PD"(MU#(M]"(M&/(M8-(M(,(M'/(M0-(M`,#G3?12X -XM_____XL<)(MT)`2+?"0(B>Q=PWX-N`$```#KZ(VV`````#G!=^\YTWX?BT9` -XMB44,BT=`B44(BQPDBW0D!(M\)`B)[%WI/?S__WRT.<%SVXUV`.NKC;0F```` -XM`(V\)P````!5B>6+50R+10B)50B)10Q=Z5O___^-="8`C;PG`````%6)Y8/L -XM"(D<)(ET)`2+=0B+70R+5CR+2SR+0B@Y02A^$+@!````BQPDBW0D!(GL7<-\ -XM#XM"+#E!+'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+'"2+="0$B>Q= -XMZ:#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG -XM`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0E`Y05!^$+@!````BQPD -XMBW0D!(GL7<-\#XM"5#E!5'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+ -XM'"2+="0$B>Q=Z1#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O_ -XM__^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0A@Y01A^ -XM$+@!````BQPDBW0D!(GL7<-\#XM"'#E!''_FD(UT)@!]![C_____Z]V+0T") -XM10R+1D")10B+'"2+="0$B>Q=Z8#Z__^-M@````"-OP````!5B>6+50R+10B) -XM50B)10Q=Z7O___^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+ -XM2SR+0B`Y02!^$+@!````BQPDBW0D!(GL7<-\#XM")#E!)'_FD(UT)@!]![C_ -XM____Z]V+0T")10R+1D")10B+'"2+="0$B>Q=Z?#Y__^-M@````"-OP````!5 -XMB>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG`````%6)Y8M%"(M5#(M`0(E% -XM#(M"0(E%"%WIJ?G__Y"-="8`58GEBT4,BT!`B44,BT4(BT!`B44(7>F)^?__ -XMD)"0D)!5B>6#[`R)'"2)="0$B7PD"(M%"(M5#(LP#[=&-&:#^`DW____C;0F```` -XM`#'2BQPDB="+="0$BWPD"(GL7<.-M@````"-O"<`````58GE5U93@>PL!0`` -XMBST\[`0(B848^___B944^___B8T0^___A?_'1%//O__P$```#'!"0RU`0(Z-'V___'1<``````QT7$`````,=%V``` -XM``#'1=0`````QT70`````(7`B``````QT7D`````,=%Z`````#'1>P` -XM````QT7<`````'0)@#@`#X6"!@``BYT4^___A=L/A!8&``"+A1#[__^+O13[ -XM___'A2S[__\`````QX4P^___`````(/@`L>%3/O__P````#'A4C[__\````` -XMB84,^___Z9P"``!F@_@*#X2@`@``BXT8^___A2A(.P$"(7`=0FA[.L$"(7`=!L/MT2+A3S[__^%P`^$(P(``(M7/(G0B94H^___BT@\BT7L -XMBU(XB<;!_A\Y\7P)?P0YPG8#B57LBY4H^___BT($.T7H=@.)1>B+C2C[__\/ -XMMT$*.T7@=@.)1>"+C2C[__^+430[5<2+03!\#7\%.T7`=@:)1<")5<2+A2C[ -XM__^+0#@!A2S[__^A0.P$"(7`#X2@`0``H1CK!`B%P`^$MP(``(N5*/O__XUU -XMIHU=LXM"#,=$)`A-U`0(QT0D!`T```")-"2)1"0,Z$;W__^+C2C[__^+01#' -XM1"0(3=0$",=$)`0-````B1PDB40D#.@A]___B;5`^___B9U$^___BX5`^___ -XMB00DZ$?X__\[1=")A3C[__]V`XE%T(N51/O__XD4).@K^/__.T74B<-V`XE% -XMU(LU..P$",>%-/O__P````"%]@^%E0(``(L-!.P$"#'2QT7,`````(7)#X7I -XM`@``B[4X^___BXTT^___`=Z-1#$8`=")!"3H-O?__X7`B<,/A/,'``"-0!") -XM`XN50/O__XD$)(E4)`3HQ??__XN-./O__XU$&1&)0P2+E43[__^)!"2)5"0$ -XMZ*;W__^+C2C[__\/MT$()0#P```]`"````^$Q0$``#T`8```#X2Z`0``H3CL -XM!`B%P`^%Q`$``*$$[`0(A\O__@\`!#X1[ -XM!```9H-_,@`/A=X```"+1T"-M5?[___'1"0(2M0$",=$)`0!!```B30DB40D -XM#.B%\___BY4,^___A=)T6XM%R(DT)(E$)`3H'/3__X/``71;C47,B40D!(M% -XMR(D$).C%\?__@\`!=$2+1U`0(B40D!.C_\O__BT7(B00DZ`3R__^+1%,/O__P````#'A2S[__\` -XM````H4#L!`B%P'4-H?3K!`B%P`^$8OW__XN]&/O__X7_#X7<_/__Z4_]__\Q -XMP(,]].L$"``/E<")A3S[___I'?G__XD$).AR\___C40``HD$).C&\O__A<") -XMA1S[__\/A'\#```/M@,\.@^$B`,``(N5'/O__XG1B`*#P0'&0@$`#[9#`83` -XM=#V)VNL4B`&#P0'&00$`#[9"`H/"`83`="6`.CIUYSPZ=>/&`3`/MD(!B$$! -XM@\$"QD$!``^V0@*#P@&$P'7;@'G_.@^$50,``(U%W(N-'/O__XE$)"B-1>2) -XM1"0DC47`B40D((U%V(E$)!R-1=2)1"08C470B40D%(U%X(E$)!"-1>R)1"0, -XMC47HB40D",=$)`3HU`0(B0PDZ/CP___'!13L!`@!````@_@(#X8M`@``BW7H -XM,<"%]G0=N0$```"X"@```/?A@^X!B<%U\L=%Z`````"-0/^+?>R)1>@QP(7_ -XM?C*)_KD!````,=MKTPJX"@```(F5!/O___?AB=.)P0.=!/O__X/N`77AQT7L -XM`````(U`_XMUX(E%[#'`A?9T';D!````N`H```#WX8/N`8G!=?+'1>`````` -XMC4#_BTW$BU7`B47@@_D`B94@^___B8TD^___#XZ)`0``BXT@^___O@$````Q -XM_XN=)/O__VO'"HF%!/O__[@*````]^:)UXG&`[T$^___@\'_@]/_B=H)RG7: -XMB?")^H/`_\=%P`````"#TO_'1<0`````BXT<^___B47`B57$B0PDZ"7Q___I -XM=/?__XN%+/O__XU=CHN-,/O__\=$)`ARU`0(QT0D!!@```")A5S___^+1>R) -XMC6#___^)'"2)1"0,Z/;O__^)'"3H+O'__\=$)`ARU`0(QT0D!!@```")'"2) -XMA6S___^+1=B)A7#___^+1=R)A73___^+1=2)A7C___^+1>B)1"0,Z*[O__^) -XM'"3HYO#__\=$)`ARU`0(QT0D!!@```")'"2)A7S___^+1>")1"0,Z('O__^) -XM'"3HN?#__XM5Q,=$)`AVU`0(QT0D!!@```")'"2)5"00B46`BT7`B40D#.A0 -XM[___B1PDZ(CP__^)182+1=")18CI[_G__XM'0(E$)`B+1P2+0!C'!"1>U`0( -XMB40D!.@M[___Z=/[____)(5$U00(?!&#^@"0C;0F``````^'9/[__S'`,=+I -XMK/[__\=%Z`````#'1>P`````QT7@`````,=%T`````#'1=0`````QT78```` -XM`,=%P`````#'1<0`````QT7D`````(,]&.P$"`''1=P`````&<#WT"$%%.P$ -XM".E4_?__QT0D!#_4!`C'!"0!````Z$7O__^+A1S[__^)P8/!`F;'`#`ZQD`" -XM`.EP_/__QT0D!%+4!`C'!"0!````Z!CO__]FQP$P`.FA_/__C78`C;PG```` -XM`%6)Y5=64X/L'(,]%.L$"`&)1>R)3>@9P"7`EP0(B40D"(E,)`2)%"3H!^W_ -XM_X7`B<CJ!`B+ -XM0@B#Z`&%P(E""`^(;P$``(L"Q@`*@\`!B0*+0QB)!"3H*Q```,<$)*#4!`CH -XMD^K__XM%\(D\)(E$)`3H-.S__XM-Z(G"B<:)V.BR\___H1SK!`B%P`^%1?__ -XM_X7V#X0]____B5PD!,=$)`@$````B3PDZ#WK__^)/"3HE>O__X7`B<,/A2G_ -XM___HENS__XL`A<`/A?T```"#Q!Q;7E]=PV:#^`1T"F:#^`O__XE$)`B+0T#'!"1&U`0(B40D!.@2[/__QP4XZP0(`0```.F__O__ -XMBT-`QP0D@]0$"(E$)`3H\.O__^FG_O__C;0F`````(-][`$/CB?___^+0QB) -XM!"3H.P\``,<$)*#4!`CHH^G__\<%/.L$"`$```#I`?___Z$$[`0(A<`/A5;^ -XM___V1>@(QT7P``$```^%4O[__^E`_O__H>CJ!`C'!"0*````B40D!.C\Z?__ -XMZ:W^__^A#.L$"(7`#X0F_O__Z6#^__^)5"0$QP0D"@```.A5[/__D.F%_O__ -XMQT0D!*+4!`C'!"0!````Z'OL___'1"0$>M0$",<$)`$```#H9^S__XUV`(U, -XM)`2#Y/#_575E-1@>PH!@``BQF+202-A>#]__^)1>C'1"0$*]<$",<$ -XM)`````")C=SY___H1>S__\<$)`$```#H*>S__X7`#X24````QP5\Z`0(4``` -XM`,<$)*O4!`CH^^C__X7`=`F`.``/A=@'``"-1>")1"0(QT0D!&AT"$#'!"0! -XM````Z)/I__^#P`%T$0^W1>)FA -XM``#KS\<%).L$"`$```#'!"2KU`0(Z&?H__^%P'2PB00DZ!OH__^C?.@$".NA -XM_R2%:-4$"(L5#.L$"(L]].H$"(72#X1X!0``QP0DL]0$".@MZ/__AO__X7`#X2D`0``QP0DR]0$".@)Z/__B40D!(V%X/G__XD$).A7 -XMZO__@^@!#X0B!@``H1CL!`B%P'1&QP44[`0(`0```,=$)`30KP0(QP0D`@`` -XM`.@WZO__QT0D!-"O!`C'!"0#````Z"/J___'!"3?U`0(Z*?G__^)!"3H*P@` -XM`*$\[`0(A<`/A,8```"A0.P$"(7`=1B+%0CK!`B%TG4.BPTL[`0(ASK!`@`````Z5/\___'!1SL -XM!`@!````Z43\___'!3#K!`@!````QP4LZP0(`````.DK_/__QP4GO^___QT0D"`$```#'1"0$*]<$",<$)+/4!`CH$>?__^G.^___QP40[`0( -XM`0```,<%+.P$"`$```#IM?O__\<%..P$"`$```#IIOO__\<%&.L$"`$```#I -XME_O__\<%*.L$"`$```#'!23K!`@`````QP5`[`0(`````.ET^___QP5`[`0( -XM`0```,<%).L$"`````#'!2CK!`@`````Z5'[___'!?CK!`@`````QP4$ZP0( -XM`0```.DX^___QP4\[`0(`0```.DI^___QP7XZP0(`0```.D:^___QP44ZP0( -XM`0```.D+^___QP4(ZP0(`0```,<%'.L$"`````#I\OK__\<%Z.L$"`$```#' -XM!0#L!`@`````QP4T[`0(`````.G/^O__QP4([`0(`````,<%(.P$"`````#' -XM!>SK!`@!````Z:SZ___'!03L!`@!````Z9WZ___'!33K!`@!````Z8[Z___' -XM!33L!`@!````QP4`[`0(`````,<%Z.L$"`````#I:_K__XGQNH#H!`BX`0`` -XM`.@$]___Z2K\__^A0.P$"(7`#X2M````QP7\Z@0(X+X$".GT^___H2SK!`B% -XMP'5&BPTPZP0(AS' -XM1"0$#.P$"(D$).C.Y/__BQ4,[`0(B=#!^!_!Z!CZ___'!0#K!`B@EP0(Z=GZ__^#S@'I:OK__\<%_.H$"&"Z -XM!`CIV?K__XU-Z(E,)`3'!"30U`0(Z&GE___'!"33U`0(H_#K!`B-1>B)1"0$ -XMZ%'E__^-3>B)3"0$QP0DUM0$"*,H[`0(Z#GE___'!"39U`0(HT3L!`B-1>B) -XM1"0$Z"'E__^-3>B)3"0$QP0DW-0$"*,D[`0(Z`GE__^%P*/\ZP0(#X30```` -XMH?#K!`B%P`^$4?G__Z$H[`0(A<`/A$3Y__^A_.L$"(7`#X0W^?__QP48[`0( -XM`0```.DQ^?__B00DZ,[@___'!0CL!`@!````HWSH!`CI1_C__Z$T[`0(A6#[!B%P'0]H?SK!`C'1"0($+`$ -XM",=$)`0!````B00DZ/WA__^X$+`$"(E$)`BA1.P$",=$)`0!````B00DZ-_A -XM___)PZ'\ZP0(QT0D"""U!`C'1"0$`0```(D$).C`X?__N""U!`CKP9"-="8` -XM58GE4X/L%(M="(G8Z'____^)'"3'1"0$`````.@SXO__Z"[C__^)7"0$B00D -XMZ,+?__^#Q!1;7<.0C;0F`````%6)Y8/L*(M%",=$)`@!````QP0D`0```(A% -XM_XU%_XE$)`3H;=___S'`R<.0C70F`%6)Y5=64X/L+(M%"(7`#X1``0``BT4( -XM,?^)!"3HT^+__XL5O-<$"&;'1=H``,=%W`````")5>")1=3K/(UT)@`/OL*# -XMZ#")`V:#?=H`#X2N````9L=%V@$`@\8!@\,$@_X"=46#QP=P,@T7@`H/_ -XM"P^$U````(M%W,>`:.L$"`````"-!#\Y1=1W.8M5X`^V`HA%\@^V0@&(1?.- -XM!'\Q]HT3J!`A]#*'LZ@0(BXR( -XM-`0``(/Y>'03#[["B40D!,<$))#7!`CH\]___\<#_____^D-____@\0L6UY? -XM7564XG#C31`@^P0BQ2U:.L$"(72#X64````BP2U -XM8.L$"(/X_W0XB40D"*'PZP0(QT0D!`````")!"3H`][__X7`=!O'1"0((+4$ -XM",=$)`0!````B00DZ(??__^-=@"-!%N+!(5DZP0(@_C_=#6)1"0(H2CL!`C' -XM1"0$`````(D$).B\W?__A7<.0C70F`*$D[`0(QT0D"""U!`C'1"0$`0```(D$).@7W___Z4K___^- -XMM"8`````C;PG``````^WP(G"58'B`/```(GE@^P(@?H`0```#X3&````?E&! -XM^@"@```/A'T```"!^@#```!T8H'Z`&````^$?````#'2J$ET7_;$"`^%X@`` -XM`/;$!`^$MP```+@(````C70F`.B[_O__N@$```#K.(UT)@"!^@`0``!T6('Z -XM`"```(GV=;VX!@```.B4_O__N@$```#)B=##N`(```#H@?[__[H!````R8G0 -XMP[@!````Z&[^__^Z`0```,F)T,.X!0```.A;_O__N@$```#)B=##B?:X`P`` -XM`.A&_O__N@$```#)B=##J`)T./;$`G01N`D```#H*O[__[H!````ZZ>X"@`` -XM`.@9_O__N@$```#KEK@$````Z`C^__^Z`0```.N%,<#H^OW__[H!````Z73_ -XM__^X!P```.CF_?__N@$```"0Z5____^-="8`C;PG`````%6)Y5.#[&2)1:BA -XMD.@$"(7`#XC9````H43K!`B%P`^$L@```*$<[`0(A\`.=!_ -XM'8L-D.@$"+NVU@0(A-M"8`````C8(`\>\`.<%]V:&0Z`0( -XMNZ+6!`B%P`^%=/___[NLU@0(Z6K____'!"0`````Z-+:__^C1.L$".DX____ -XMC70F`,<$)#D```#H:-W__X`X9`^4P`^VP*.0Z`0(Z0C___^0BQ4@[`0(58GE -XMBT4(A=)U"HL-[.L$"(7)=`F)10A=Z;T7``"+%0CL!`B%TG0)B44(7>E:$@`` -XMB44(7>EA%0``D%6)Y8/L"*'@Z@0(BTT(A"*+`H@(@\`!B0+),<##H>CJ!`B)#"2)1"0$Z)':__\QP,G#.T(8?`:`^0J0 -XM==.)5"0$B0PDZ/;<___KSE6)Y8/L"(L-$.P$"(7)=!`E`/```#T`0```='3) -XM,<##B<*!X@#P``"!^@"@```/A-\````/AXP```"!^@`0```/A%,!``"!^@!` -XM``"-="8`=#ZH273&H>#J!`B%P`^%AP$``(L5Z.H$"(M""(/H`87`B4((#XAX -XM`@``BP+&`"J#P`&)`K@!````R<.0C70F`(L5X.H$"(72#X6J````BQ7HZ@0( -XMBT((@^@!A<")0@@/B!4!``"+`L8`+X/``8D"N`$```#)PX'Z`,````^$D@`` -XM`('Z`.````^%=/___Z'@Z@0(A<`/A9CJ!`B+0@B#Z`&%P(E""`^( -XM8`$``(L"Q@`E@\`!B0*X`0```,G#H>#J!`B%P`^%?@$``(L5Z.H$"(M""(/H -XM`87`B4((#XC/````BP+&`$"#P`&)`K@!````R<.AZ.H$",<$)"\```")1"0$ -XMZ!?9__^X`0```,G#H>#J!`B%P`^%90$``(L5Z.H$"(M""(/H`87`B4((#XBZ -XM````BP+&`#V#P`&)`K@!````R<.AX.H$"(7`#X44`0``BQ7HZ@0(BT((@^@! -XMA<")0@AX;8L"Q@!\@\`!B0*X`0```,G#.T(8#XWB_O__B50D!,<$)"\```#H -XM$=O__[@!````R<.AZ.H$",<$)"H```")1"0$Z'78__^X`0```,G#.T(8#XTH -XM____B50D!,<$)$````#HU=K__[@!````R<,[0AA]CHE4)`3'!"1\````Z+G: -XM__^X`0```,G#.T(8#XT]____B50D!,<$)#T```#HF=K__[@!````R<,[0A@/ -XMC9?^__^)5"0$QP0D)0```.AYVO__N`$```#)PZ'HZ@0(QP0D)0```(E$)`3H -XMW=?__[@!````R<.AZ.H$",<$)$````")1"0$Z,'7__^X`0```,G#H>CJ!`C' -XM!"1\````B40D!.BEU___N`$```#)PZ'HZ@0(QP0D/0```(E$)`3HB=?__[@! -XM````R<,[0A@/C7_]__^)5"0$QP0D*@```.CIV?__N`$```#)PXVT)@````"- -XMO"<`````58GE@^PXB5WTB<.)??R)SXEU^(MP/*$\[`0(QT7L`````(7`#X7> -XM````H?3K!`B%P'5RH1CL!`B%P'1)#[=&".B;^?__B<>+0T")!"3H[OO__XM- -XM[(T<"*$8[`0(AQ=PXM#0(D$).BP^___BU7LC1P0Z\F%_W3%,<#H'?;__^N\H0SL!`B#Z`&) -XMPL'Z'XE%X(E5Y(M&.(M6/`%%X*$,[`0($57DBTWDB<+!^A^)5"0,BU7@B4PD -XM!(E$)`B)%"3HF!@``(E\)`3'!"04UP0(B40D"(E4)`SH--C__P%%[.DK____ -XMBT8$B50D!,<$),S6!`B)1"0(Z!78__^)1>SI`____XGVC;PG`````%6)Y593 -XM@^P0BW4(BQZ%VW4FZUR+%>CJ!`B+0@B#Z`&%P(E""'A0BP+&``J#P`&)`HM; -XM"(7;=#B#>PP!=/.+3A2)V(M6).B&_O__H>#J!`B%P'3`H>CJ!`C'!"0*```` -XMB40D!.B\U?__BUL(A=MUR(/$$%M>7<.)5"0$QP0D"@```.@>V/__ZZB0C;0F -XM`````%6)Y5=64X/L/(M%"(,]%.P$"`$9TH/B!X/"`8E%T(E5Z(M`##L%C.@$ -XM"`^/O@(``(M=T(L#QT7<`````(7`=!^+%4#K!`B#>`P!=`R+3=R)!(J#P0&) -XM3=R+0`B%P'7GH3SL!`B+7="%P(M3$'0(BT,D@\`!`<*+#?3K!`B%R70+BUW0 -XMBT,4@\`!`<*#/2SL!`@!BT7H@]K_`U7H]]B)1=0APHE5\(M%\(L5?.@$"`'` -XM.=`/CR0"``")T,'Z'_=]\(M5W(E%S(G0P?H?]WW,@_H!BU70@]C_B47@BP*% -XMP`^$N0$``&:#>#(`#X6N`0``BW7@A?8/CG(!``#'1=@`````QT7D`````(L= -XM,.P$"(7;=0:+5>2)5=B+3P/C:D```"+%>#J -XM!`B%TG5.BPWHZ@0(@ST4[`0(`8M!"!G2@^+I@\(@@^@!A<")00AX48L!B=Z( -XM$(/``8D!BU7HC1P6(UW4.?M^IHM-S#E-['1=@T7L`0-]\.E*____@ST4[`0( -XM`8G>BQ7HZ@0(&<"#X.F#P"")5"0$B00DZ(S3___KNCM!&'P%@/H*=:6)3"0$ -XMB=Z)%"3H\M7__^N@BU7@`578BTW<.4W8#XPR____H>#J!`B%P'4UBQ7HZ@0( -XMBT((@^@!A<")0@AX.8L"Q@`*@\`!B0*#1>0!BUW@.5WD#X6<_O__@\0\6UY? -XM7<.AZ.H$",<$)`H```")1"0$Z`O3___KT8E4)`3'!"0*````Z'G5___KOXL] -XM0.P$"(7_=0B%R0^$0/[__XM-T(L=#.P$"(M1!,<$)-+6!`B#Z@&-#!HQTHG( -XM]_.)1"0$Z)W4___I$_[__XM5T(E5"(/$/%M>7UWI@OS__\'@`HE$)`2A0.L$ -XM"(D$).ART___A<")PG06BTW0BT$,B15`ZP0(HXSH!`CI$OW__\<$)`````#H -XM>M3__XM=T(E=".NPC;0F`````(V\)P````!5B>575E.#[`R+=0B+'H7;#X2^ -XM````,?_K'(VV`````,<$)-W6!`B#QP+H!=3__XM;"(7;='2#>PP!=/.+0T") -XM!"3H3=7__X-["`$9TO?2@^("C00'`=`[!7SH!`AR,:'@Z@0(A+0PB%P`^%=O___X7_=":AX.H$"(7`=3Z+%>CJ!`B+0@B#Z`&%P(E" -XM"'A?BP+&``J#P`&)`H/$#%M>7UW#H>CJ!`@Q_\<$)`H```")1"0$Z&'1___K -XMFZ'HZ@0(QP0D"@```(E$)`3H2M'__X/$#%M>7UW#B50D!#'_QP0D"@```.BP -XMT___Z6?___^)5"0$QP0D"@```.B;T___ZYF0C70F`%6)Y5=64X'L7`@``(M% -XM"(LXA?\/A#,#``!F@W\R``^%*`,``,>%Q/?__P````#'A%T/?__P$```"# -XMZ`$/A+\%``")'"3H-=/__\>%R/?__P$```"-M"8`````BP:)A+\__\/ML2)5"0(B40D -XM!,<$)`?7!`CH.K^__\/C)````#'A8KZ0SZ -XM__^)5"0$QP0D"@```.B9S/__Z;3[___HS\O__X,X%@^$8O___XV=V_O__XE< -XM)`3'!"1*U`0(Z`#,___IY_G__X.]T/?__P,/CL'Y___KJI"0D)"0D)"058GE -XM@^P8H?#J!`C'1"0(/@```,=$)`0!````QP0DP-<$"(E$)`SH"A?]UIXN%8/___X'$K``` -XM`%M>7UW#C;8`````BX5@____C028B85@____Z]*)%"3H"\G__^NZD(UT)@"- -XMA7#___^#Q@&#A6#___\$@^\!QT0D"(````#'1"0$`````(D$).A)RO__ZYB+ -XMA6#___^-!+B)A6#____KBXGV58GE5U93@>RL````C85P____QT0D"(````#' -XM1"0$`````(D$).@*RO__QX5@____`````(M5"(V%'>+`H@(@\`!B0*#Q@$Y]W0HH>#J -XM!`B%P'3-H>CJ!`B+50B)1"0$#[8$%H/&`8D$).B4Q___.?=UV(M=\#'`A=MT -XM*('[_P````^'@0$``*'LZ@0(BT28-(G"@>(```#@#X18`0``B=#!Z!X!?0@! -XMA6#____I`?___SM"&`^VV7P)@/L*#X5X____B50D!(D<).BTR?__Z7#___^+ -XM%>#J!`B%T@^%F@```(L5Z.H$"(M""(/H`87`B4((#X@=`0``BP+&`#^#P`&) -XM`@%]"(.%8/___P'IH?[__XL=X.H$"(7;#X6]````BQ7HZ@0(BT((@^@!A<") -XM0@@/B/T```"+`L8`/X/``8D"C95P____@T4(`8.%8/___P''1"0(@````,=$ -XM)`0`````B10DZ$G(___I1/[__XD<).C,QO__Z9+^__^AZ.H$",<$)#\```") -XM1"0$Z'+&___I;?___XL-X.H$"(7)#X6N````BQ7HZ@0(BT((@^@!A<")0@@/ -XMB+$```"+`L8`/X/``8D"@X5@____`8N%8/___X'$K````%M>7UW#H>CJ!`C' -XM!"0_````B40D!.@1QO__Z4K___\E```$`(/X`1G`@\@!Z9O^__^)'"3H,L;_ -XM_^E[_O__.T(8#XW:_O__B50D!,<$)#\```#H5,C__^G/_O__.T(8#XWZ_O__ -XMB50D!,<$)#\```#H-LC__^GO_O__H>CJ!`C'!"0_````B40D!.B%8/___P````"+ -XM50B-A7#___^)1"0,C47PQT0D"`8```")!"2)5"0$Z+S$__^%P(GR`0`` -XM@_[^#X10`0``@_[_B?8/A.P````QVX7V?S2-="8`ZU>+10B+%>CJ!`@/M@P# -XMBT((@^@!A<")0@@/B)0```"+`H@(@\`!B0*#PP$YWG0IBSW@Z@0(A?]TR*'H -XMZ@0(BU4(B40D!`^V!!.#PP&)!"3HG\3__SG>==>+7?`!=0B!^_\```!W<*'L -XMZ@0(BT28-*D```0`#X0Y____,<"%VW0H@?O_````#X?J````H>SJ!`B+1)@T -XMB<*!X@```.`/A,$```")T,'H'@&%8/___^D`____.T(8#[;Y?`J)^#P*#X5: -XM____B50D!(D\).BBQO__Z5+___^)'"3H5<3__Y#KCHV%XM%"(L5Z.H$"`^V"(M""(/H`87` -XMB4((>'N+`H@(@\`!B0*#10@!@X5@____`>EY_O__BU4(QP0D2M0$"(E4)`3H -XMAL7__P&%8/___XN%8/___X'$K````%M>7UW#)0``!`"#^`$9P(/(`>DR____ -XMB1PDZ+7#___I$O___Z'HZ@0(BU4(B40D!`^V`HD$).A9P___ZXX[0A@/MME\ -XM"8#["@^%=/___XE4)`2)'"3HNL7__^EL____D%6)Y5=64X'LK````(V%%8/___P````"+50B-A7#___^) -XM1"0,C47PQT0D"`8```")!"2)5"0$Z'S"__^%P(F%7/___P^$;@,``(N%7/__ -XM_X/``H/X`0^&`0$``(M=\('[_P````^'D`,``*'LZ@0(BT28-*D```0`#X0$ -XM`P``@_LB#X3[`@``@_M<#X3R`@``B[U<____A?]^9C';ZS*+10B+%>CJ!`@/ -XMM@P#BT((@^@!A<")0@@/B!L#``"+`H@(@\`!B0*#PP$[G5S___]T+8LUX.H$ -XM"(7V=,2AZ.H$"(M5"(E$)`0/M@03@\,!B00DZ"+"__\[G5S___]UTXM=\#'` -XMA=MT*('[_P````^'N0,``*'LZ@0(BT28-(G"@>(```#@#X2*`P``B=#!Z!X! -XMA6#___^#O5S____^#X1V`@``@[U<_____P^$N@(``(N57/___P%5".F[_O__ -XM@[U<_____P^%7P(``+\!````,?;IV````(L5Z.H$"(M""(/H`87`B4((#XB7 -XM`0``BP+&`%R#P`&)`J'@Z@0(A<`/A>````"+%>CJ!`B)V,#H!@^VP(U(,(M" -XM"(/H`87`B4((#X@^`0``BP*("(/``8D"H>#J!`B%P`^%V````(L5Z.H$"(G8 -XMP.@#@^`'C4@PBT((@^@!A<")0@@/B$8!``"+`H@(@\`!B0*AX.H$"(7`#X70 -XM````BQ7HZ@0(B=B#X`>-2#"+0@B#Z`&%P(E""`^(,0$``(L"B`B#P`&)`H/& -XM`8.%8/___P0Y_@^-Y_[__Z'@Z@0(BU4(A<`/MAP6#X04____H>CJ!`C'!"1< -XM````B40D!.BAP/__H>#J!`B%P`^$(/___Z'HZ@0(B40D!(G8P.@&#[;`@\`P -XMB00DZ'C`__^AX.H$"(7`#X0O____C;0F`````*'HZ@0(B40D!(G8P.@#@^`' -XM@\`PB00DZ$C`__^AX.H$"(7`#X0W____C;0F`````*'HZ@0(B40D!(G8@^`' -XM@\`PB00DZ!O`___I.O___XGV.T(8?`F`^0H/A;3^__^)5"0$B0PDZ'K"___I -XMK/[__Y`[0A@/C6#^__^)5"0$QP0D7````.A;PO__Z57^__^)]CM"&'P)@/D* -XM#X6L_O__B50D!(D,).@ZPO__Z:3^__^0.T(8?`F`^0H/A<'^__^)5"0$B0PD -XMZ!K"___IN?[__XL-[.L$"(7)=!"%VW@,@?O_````#XZ3````B[U<____A?\/ -XMC\3]__^#O5S____^#X6*_?__BX5@____@<2L````6UY?7<.+10B)!"3HA,+_ -XM_XG'Z\L[0A@/MO%\"HGP/`H/A=/\__^)5"0$B30DZ*+!___IR_S__XD<).A5 -XMO___D.EK_/__C85P____QT0D"(````#'1"0$`````(D$).BAP/__@T4(`>GH -XM^___#[[#B40D!,<$)/_7!`CH%<#__X7`B<,/A%#___^+%>#J!`B%T@^%E0`` -XM`(L5Z.H$"(M""(/H`87`B4((#XBR````BP+&`%R#P`&)`J'@Z@0(ACJ!`C'!"1<````B40D!.@3OO__Z7+___\[41A\ -XM!SP*C78`=8F)3"0$B1PDZ';`___KA#M"&`^-1?___XE4)`3'!"1<````Z%O` -XM___I.O___Y"058GE5U:#[#"+50R+10B+=1"+?12)5=R+3=R)1=C'1=`````` -XMB?#'1=0`````B?J%R<=%Y``````/B*0```"%_P^(N@```(G7B<:+5=B)P8M% -XMW(7_B57PB47L=10YQG9!B="+5>SW]HG!,<#K$XUV`#M]['9/,R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!R -XMG+D!````,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KW -XMV(/2`/?:]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`) -XMQXM%\-/F#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)`!, -XM4U]#3TQ724142%,`;6%L;&]C`"5S.B`EC!`@^HP0(D:D$""VG -XM!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$ -XM""VG!`@MIP0(+:<$"%^I!`ANJ00(S:D$""VG!`@MIP0(M*D$"!>K!`@/JP0( -XM`*L$""VG!`@MIP0(]:H$""VG!`@MIP0(+:<$".JJ!`@MIP0(VZH$",*J!`BS -XMJ@0(>*P$""VG!`AIK`0(+:<$""VG!`A:K`0(+:<$""VG!`@MIP0(+:<$""VG -XM!`@MIP0(7*D$"#>L!`@4K`0(^ZL$""VG!`CLJP0(!J<$"-VK!`C.JP0(+:<$ -XM"+6K!`B2JP0(;ZL$"&"K!`A1JP0(.*L$")"J!`B!J@0("4P -XM.'@@`"4S9"P@)3-D(``E*G,E*FID(``E-7,@``IL&1X8GAE9V5D86)A9V%C860`3%-#3TQ/4E,@I$$"(J1 -XM!`B:D00(JI$$"+J1!`C*D00(VI$$".J1!`CZD00("I($"!J2!`@JD@0(.I($ -XM"$J2!`A:D@0(:I($"'J2!`B*D@0(FI($"*J2!`BZD@0(RI($"-J2!`CJD@0( -XM^I($"`J3!`@:DP0(*I,$"#J3!`A*DP0(6I,$"&J3!`AZDP0(```````````` -XM)$9R965"4T0Z('-R8R]L:6(O8W-U+V-O;6UO;B]C'`@)`!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#6YA;6EC`"YC=&]Rps.uu << 'END-of-ps.uu' -Xbegin 755 ps -XM?T5,1@$!`0D```````````(``P`!````T)0$"#0````(>````````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(!&`` -XM``1@```%`````!````$````@8```(/`$""#P!`BX$P``C"````8`````$``` -XM`@```+QQ``"\`04(O`$%"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&3H7P``Z-\$".C?!`@<````'`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%L````*````50```!,````O````1@```%0````L```` -XM/0```#L`````````1P```!H```!#````00`````````Q````3P`````````+ -XM`````````!0```!:````3@````````!)`````````!@````N````)P```$H` -XM``!6`````````#8````_`````````!<`````````4````"D`````````4P`` -XM`%D``````````````!$```!8`````````#<````A````-````!\````K```` -XM````````````````2P```%$``````````````$0`````````30```$4````` -XM````,P```%<````````````````````````````````````````````````` -XM```````````````````%````````````````````````````````````#@`` -XM``````````````````P````&````"``````````2```````````````-```` -XM`````!P````````````````````````````````````B`````````"0````' -XM`````````"H``````````````!D````6````!````"4````F````#P`````` -XM```!`````````!X`````````&P```#`````0````.@```#(````````````` -XM`"T`````````````````````````'0```"`````C````-0```#D````H```` -XM`````#X````\`````@```$P````)````2`````````!````````````````X -XM````%0```%(```!"`````P````````````````````````"U`0```````#0` -XM```2````OP(````````S````$@```*$"````````0P```!(```"F`0`````` -XM`&$````2````6P$`````````````$@```(H"````````*@```!(```#L```` -XM`````&L!```2````$`$```````#]"```$@```#,```"\`04(`````!$`\?\Z -XM`@```````)@````2````0@(```````"A````$@````0!````````?P```!(` -XM``!?`@```````!T````2````\P$`````````````$@````,"````````6@`` -XM`!(```#C`````````!T````2````T@(````````S````$@```,4````````` -XM`````!(```#L`@```````.T````2````G0(```````#G`0``$@```"@"```` -XM````!0```!(````\````=)$$"#D````2````^P$```````#=`P``$@```$@` -XM```0D`0(`````!(`"@"8`0``(*\$"$8````2``P`00$````````N````$@`` -XM`!X"````````,P$``!(```#+```````````````2````I@````````"C```` -XM$@```*T!``!X$`4(!````!$`%P#[`````````#T````2````Y0(````````` -XM````$@```-(`````````Q@0``!(````*`@``V`,%"`0````1`!<`8@$````` -XM```5`@``$@`````#````````G@```!(````7`@```````&4"```2````G@$` -XM````````````$@```-@!```@\`0(!````!$`$`"_`````````"T````2```` -XML0(`````````````$@```%0!``#<`P4(!````!$`%P"%`0``X`,%"%0,```1 -XM`!<`3@(```````#,````$@```'X!````````'0(``!(```#C`0```````!8` -XM```2````3@`````````+````$@```+8"````````'0```!(```!'`@`````` -XM```````2````M@$````````Y````$@```,0"````````[0```!(````4`P`` -XMV`,%"``````0`/'_V@````````#?````$@```/L"````````00```!(````+ -XM```````````````2````E@(```````!?````$@```/,`````````;0```!(` -XM``!9````+-8$"``````2``T`Q0$```````",`@``$@```%8"````````'0`` -XM`!(```"U````-!`%"`0````1`!<`#P``````````````$@```*8"```````` -XM30$``!(```!?````=),$""8"```2````,@(```````#+````$@```!8!```` -XM````+0```!(```!H`@````````,!```2`````(````` -XM``"\````$@```'$"````````*P```!(```#>`@`````````````2````@0`` -XM``````"V````$@```*X``````````````!(````3```````````````@```` -XM:0(```````"\````$@```'(!````````&````!(```!J`0```````)<````2 -XM````CP````````!J!```$@```.L!````````1````!(`````;&EB;2YS;RXU -XM`&QO9P!E>'``7TIV7U)E9VES=&5R0VQA7-C;VYF`'-N<')I;G1F`&=E=&=R9VED -XM`&=E=&5N=@!B6YA -XM;64`9V5T<'=U:60`9V5T<'=N86T`87-P&ET`'-T7-C=&QB -XM>6YA;64`7V5D871A`%]?8G-S7W-T87)T`%]E;F0`1D)31%\Q+C`````"``(` -XM`@`"``(``@`"``(``0`"``(``@`"``(``@`"``(``@`"``(``@````(``0`! -XM``(``@`"``(``0`"``(``@`"``(``@`"``(``0`"``(``@`"``(``@`"```` -XM`@`"``(``@`!``(``@`#``(``@`!``(``@`"``,``@````(``@`"``(``@`" -XM``$``@`!``$``@`"``(``@`"``(``@`"`````@````(``@`"`````@`!``$` -XM`0```!`````@````L"AZ!P```P`E`P````````$``0"<````$`````````"P -XM*'H'```"`"4#````````V`,%"`4B``#<`P4(!2H``.`#!0@%*P``-!`%"`4] -XM```X$`4(!4P``#P0!0@%3@``M`(%"`0"!0AH8````.D@_____R7H`@4(:&@` -XM``#I$/____\E[`(%"&AP````Z0#_____)?`"!0AH>````.GP_O___R7T`@4( -XM:(````#IX/[___\E^`(%"&B(````Z=#^____)?P"!0AHD````.G`_O___R4` -XM`P4(:)@```#IL/[___\E!`,%"&B@````Z:#^____)0@#!0AHJ````.F0_O__ -XM_R4,`P4(:+````#I@/[___\E$`,%"&BX````Z7#^____)10#!0AHP````.E@ -XM_O___R48`P4(:,@```#I4/[___\E'`,%"&C0````Z4#^____)2`#!0AHV``` -XM`.DP_O___R4D`P4(:.````#I(/[___\E*`,%"&CH````Z1#^____)2P#!0AH -XM\````.D`_O___R4P`P4(:/@```#I\/W___\E-`,%"&@``0``Z>#]____)3@# -XM!0AH"`$``.G0_?___R4\`P4(:!`!``#IP/W___\E0`,%"&@8`0``Z;#]____ -XM)40#!0AH(`$``.F@_?___R5(`P4(:"@!``#ID/W___\E3`,%"&@P`0``Z8#] -XM____)5`#!0AH.`$``.EP_?___R54`P4(:$`!``#I8/W___\E6`,%"&A(`0`` -XMZ5#]____)5P#!0AH4`$``.E`_?___R5@`P4(:%@!``#I,/W___\E9`,%"&A@ -XM`0``Z2#]____)6@#!0AH:`$``.D0_?___R5L`P4(:'`!``#I`/W___\E<`,% -XM"&AX`0``Z?#\____)70#!0AH@`$``.G@_/___R5X`P4(:(@!``#IT/S___\E -XM?`,%"&B0`0``Z<#\____)8`#!0AHF`$``.FP_/___R6$`P4(:*`!``#IH/S_ -XM__\EB`,%"&BH`0``Z9#\____)8P#!0AHL`$``.F`_/___R60`P4(:+@!``#I -XM!`% -XM"'XVBT4(AL*#[80@\`!A-)T%(#Z+W7QHR#P -XM!`@/MA"#P`&$TG7LN+P!!0B%P'0TB0PDZ/_^___'!"0LU@0(Z//^___HROK_ -XM_XU%"(ET)`B)1"0$B1PDZ'`2#P`2)1?"%_P^$A0```(`_ -XM`'3GBQU($`4(*?''1"0,$@```(D\)(/K`0'+Z/[]___!ZP*)PHG8.=-V`HG0 -XMB40D"(E\)`2)-"3H,?[__X`^`'0(@\8!@#X`=?B+#400!0BA2!`%"(G*@^@! -XM*?(!T(/X`W:'Q@8@BT7P@\8!BPU$$`4(BW@$@\`$B47PA?\/A7O___\Y\8E- -XM['0+,<"`?O\@#Y3`*<;&!@"+5>R)%"3H>_W__XM5$(U$`@2)!"3H[/S__X7` -XMB<8/A`\!``"+1>R%P`^$E````(M%"(L8QT0D!"\```")'"3H,OO__X7`=`.- -XM6`&+51"+10R)'"2)5"0(B40D!.C5^?__A7UW#BT7LB30DB40D!.@#_?__ -XMZ^6+30RXSML$"(7)=-N+11#'1>P`````@\`#Z4____^+10R+51#'1"0$J]8$ -XM"(DT)(E$)`R)5"0(Z-7\___KI\<$)`$```#H1_K__X/X_W1G/?[__Q]_3(T$ -XMA0$```"C2!`%"(D$).CW^___A<")1>RC1!`%"'08BU4(BSJ%_P^%&?[__XM% -XM[,8``.G-_O__QT0D!)W6!`C'!"0!````Z(_Y___'1"0$O-8$",<$)`$```#H -XM>_G__\=$)`2"U@0(QP0D`0```.AG^?__D)"058GEBT4,BP")10R+10B+`(E% -XM"%WI:_K__XVT)@````!5B>575E.#[!R+'4#P!`B`.P!T8\=%\`````"_SML$ -XM"#'VB1PDZ,K[__^+%:@0!0B%TG07UW#D(UT)@!5B>575E.#[$R+10B)!"3H$/C__XE% -XMO(E%\(VV`````(M=\(7;#X3P````@#L`#X3G````QT0D!.K6!`B)'"3H`/O_ -XM_X`\`ST/A>D```#'1?``````QT0D!#T```")'"3HG_C__X7`B<9T!L8``(/& -XM`8U5Q(E=Q,=$)!`PF`0(QT0D#"P```#'1"0(60```,=$)`1`\`0(B10DZ*7Y -XM__^%P(G'#X3)````BT`(A<`/A/H```"%]@^$H@```(D$).B@^O__B30DB7<.)]HV\)P````!5B>53 -XM@^PDBT4,BU@(C47TQT7X`````(D$).BE]O__@\`!='^+1?2)1"0$BU4(BP*+ -XM0"B)!"3H>?/__X7`=$&+1?2)!"3HNO3__XM%^(7`=&6)1"0(#[]#&,<$)(': -XM!`B)1"0$Z(OU__^+1?B)!"3HP/;__X/$)%M=PXVV`````(U%^(E$)`2+1?2) -XM!"3HPO/__X/``0^4P`^VP(/H`2%%^.N6#[!B+10S'1"0(B-H$"(M`"`^_0!C'!"2*V@0( -XMB40D!.BL]/__R<.-M@````!5B>6#[!B+10R+30B+4`@QP(-Y#`!T"(L!BX`T -XM`@``B40D"`^_0AC'!"2.V@0(B40D!.AM]/__R<.-M"8`````58GE@^P8BT4( -XMBP"+@.````#!Z`J)1"0(BT4,BT`(#[]`&,<$))/:!`B)1"0$Z#+T___)PXVV -XM`````(V_`````%6)Y8/L&(M%#(M("(M%"(L`BU`DA=)T2("X2P$```!T(P^_ -XM41@%2P$``(E$)`R)5"0(B50D!,<$))C:!`CHXO/__\G#B50D"`^_01C'!"2? -XMV@0(B40D!.C(\___R<.)]O:`+`$```1T,H"X9@$```!T"P^_41@%9@$``.NM -XMQT0D"*7:!`@/OT$8QP0D@=H$"(E$)`3HB_/__\G#QT0D"(C:!`@/OT$8QP0D -XM@=H$"(E$)`3H;?/__\G#C;0F`````%6)Y8/L&(M%#(M0"(M%"(L`BT`DA6#[!B+10R+4`B+10B+`/:`+`$```1T2H"X9@$```!T(P^_4A@% -XM9@$``(E$)`S'!"28V@0(B50D"(E4)`3H4/+__\G#QT0D"*7:!`@/OT(8QP0D -XM@=H$"(E$)`3H,O+__\G#QT0D"(C:!`@/OT(8QP0D@=H$"(E$)`3H%/+__\G# -XMC;0F`````(V\)P````!5B>6#[!B+10B+``^V@`\"``"#Z%2)1"0(BT4,BT`( -XM#[]`&,<$)*_:!`B)1"0$Z-'Q___)PXUT)@"-O"<`````58GE@^P8BT4(BP`/ -XMMH`-`@``@^A4B40D"(M%#(M`"`^_0!C'!"2OV@0(B40D!.B1\?__R<.-="8` -XMC;PG`````%6)Y593@^P@BT4,BW`(BT4(BPB`N30!```'BYDH`0``BY'\`@`` -XM#X:X````QD7H/_?#````$(U5Z74'QD7I5XU5ZH"Y-0$````/C*,```!^!L8" -XM3H/"`?;'"'0&Q@)8@\(!]L<@=`^`N30!```%=`;&`D6#P@'VPQ!T!L8"5H/" -XM`?;'`G4)@+DV`0```'X&Q@),@\(!]H$L`0```G0&Q@)S@\(!]L,"=`B+03`[ -XM031T3X'C`````70&Q@)*@\(!C47HQ@(`B40D"`^_1AC'!"2!V@0(B40D!.BG -XM\/__@\0@6UY=PP^V@30!``#_)(58VP0(Q@(\@\(!Z5K___^-=@#&`BN#P@'K -XMJ<9%Z%KI'____\9%Z%?I%O___\9%Z$R)]ND+____@^((="F#N00!```4&<"# -XMX`J#P$F(1>CI[_[__\9%Z%3IYO[__\9%Z%+IW?[__\9%Z$3IU/[__XUT)@!5 -XMNHC:!`B)Y8/L&(M%#(M("(M%"(L`@+A4`0```'0&C9!4`0``B50D"`^_01C' -XM!"2!V@0(B40D!.CG[___R<.058GE@^P8BT4,BU`(H8P0!0B%P'0MBTT(BP&# -XMN`0"```!?A\%.@$``(E$)`@/OT(8QP0D@=H$"(E$)`3HI.___\G#QT0D"+/: -XM!`@/OT(8QP0D@=H$"(E$)`3HAN___\G#58GE4X/L%(M%#(M="(L(BU`(A56B<93 -XMB=.#[!"XP?\$"(M2)/9##`)T#HG(N@*ZZF0 -XM58GE@^P8BT4,BTT(BU`(BT$,A6+10R+30A= -XMBU`(BT(<`P'IV?[__XGVC;PG`````%6)Y5=64X'LK````(M%#(L-D!`%"(MX -XM"(M%"(L0*XH8`0``N@=%+L*)R/?JC30*B6#[#B+10R)7?B)=?R+<`B+10B+`(M01(/Z_W11B=`P -XM](U=Z(E$)!`/ML:)'"2)1"0,QT0D".':!`C'1"0$$````.AK[/__B5PD"`^_ -XM1AC'!"2*V@0(B40D!.@S[/__BUWXBW7\B>Q=PY"-="8`QT0D"*;:!`@/OT88 -XMQP0DBMH$"(E$)`3H".S__XM=^(MU_(GL7<.-=@"-O"<`````58GE5E.#[#"+ -XM10R+6`B+10B+``^VD`P"```/MH`-`@``@/H"#X29````=U>`^@$/A+(```") -XM1"00C77P#[;"B40D#,=$)`C_V@0(QT0D!`@```")-"3HN>O__Y"-="8`B70D -XM",9%]P`/OT,8QP0DBMH$"(E$)`3H>.O__X/$,%M>7<.`^@-T*(#Z!'6HC77P -XMB40D#,=$)`CWV@0(QT0D!`@```")-"3H:.O__^NRB?:-=?#'1?!N;W)MQT7T -XM86P``.N=C77PB40D#,=$)`COV@0(QT0D!`@```")-"3H,NO__^EY____C77P -XMB40D#,=$)`CGV@0(QT0D!`@```")-"3H#NO__^E5____D(UT)@!5B>53@^P4 -XMBT4,BU@(H7P0!0B%P'1:H4P0!0B%P'4QBU4(BP+V@"L!```0="/;@.0````Q -XMTJ&($`4(4E#?+"2#Q`C>^=@-H-L$".L&C70F`-GNW5PD"`^_0QC'!"0%VP0( -XMB40D!.AZZO__@\046UW#Z`OS__^C3!`%".N:C70F`%6)Y5.#[!2+'7P0!0B% -XMVW1?BPU0$`4(A\=T<).CNZ?__,=)24]\L)(/$"-[) -XMW1PDZ"KJ___<+:C;!`C=1?#>\>N,B?:-O"<`````58GE4X/L%(M%#(M8"(M% -XM"(D$).@(____W5PD"`^_0QC'!"0%VP0(B40D!.A4Z?__@\046UW#C78`C;PG -XM`````%6)Y5=64X'LK````(M="(`]5!`%"``/A$0!``"+10R+0`B)A6S___^+ -XM>PR%_P^$)`$``(L[B[<4`0``BY\0`0``QT0D"$!"#P#'1"0,`````(ET)`2) -XM'"3HTRH``(ET)`3'1"0(0$(/`,=$)`P`````B1PDB85P____Z$$I``"+-9@0 -XM!0B%]@^%LP```(V(B!,``+NMB]MHBQ=PXL"C5V0BX`8`0``B47TC47TB00DZ$;F__^)'"3'1"0(4-L$",=$ -XM)`1D````B40D#.C:Y?__B5PD"`^_1AC'!"2!V@0(B40D!.@RY___BUWXBW7\ -XMB>Q=PXUT)@!5B>564X/$@(M%#(M="(MP"(M##(7`#X2J````H>#_!`B%P`^( -XM^P```(L#BX`8`0``B47TC47TB00DZ,7E__^+%9`0!0B)P8L#*Y`8`0``@?I_ -XM40$`?EF!^G\Z"0`/CYT```"+%>#_!`BX+=L$"(72='Z-79")3"0,B40D",=$ -XM)`1D````B1PDZ"?E__^)7"0(#[]&&,<$)(':!`B)1"0$Z'_F__^#[(!;7EW# -XMC70F`(L=X/\$"+@=VP0(A=MUL[@EVP0(ZZS'1"0(B-H$"`^_1AC'!"2!V@0( -XMB40D!.A"YO__@^R`6UY=PXVT)@````"X--L$".EX____C;8`````C5V0B4PD -XM#,=$)`@[VP0(QT0D!&0```")'"3HE>3__^EI____QP0D!````.ADYO__@#@` -XM#Y7`#[;`H^#_!`CIYO[__XVV`````(V\)P````!5B>53@^P4BT4,BU@(BT4( -XMBP"+0$2#^/]T-L=$)`0`(```B00DZ+KF__^%P'0BB40D"`^_0QC'!"2!V@0( -XMB40D!.B.Y?__@\046UW#C70F`,=$)`BFV@0(#[]#&,<$)(':!`B)1"0$Z&CE -XM__^#Q!1;7<.-M"8`````C;PG`````%6)Y8/L*(M%#(M5"(E=](EU^(E]_(M8 -XM"(L"BT!$@_C_#X2,````QT0D!``@``")!"3H+N;__X7`B47P='6+=?"X`P`` -XM`+\Q=PXGVBW7PN`,```"_1]L$"(G!\Z8/A6+____I -XM6?___XUT)@!5B>6#[`C'1"0$`````(M%"(L`BX",````B00DZ$/D__^)10C) -XMZ:KE__^-M@````!5B>53@^P4BT4,BU@(BT4(QT0D!`````"+`(N`C````(D$ -XM).@,Y/__B40D"`^_0QC'!"2!V@0(B40D!.CDX___@\046UW#C78`C;PG```` -XM`%6)Y8/L",=$)`0`````BT4(BP"+@(@```")!"3HP^/__XE%",GI*N7__XVV -XM`````%6)Y5.#[!2+10R+6`B+10C'1"0$`````(L`BX"(````B00DZ(SC__^) -XM1"0(#[]#&,<$)(':!`B)1"0$Z&3C__^#Q!1;7<.-=@"-O"<`````58GE@^P( -XMQT0D!`````"+10B+`(N`E````(D$).BSX?__B44(R>FJY/__C;8`````58GE -XM4X/L%(M%#(M8"(M%",=$)`0`````BP"+@)0```")!"3H?.'__XE$)`@/OT,8 -XMQP0D@=H$"(E$)`3HY.+__X/$%%M=PXUV`(V\)P````!5B>53@^P4BQT```4( -XMA=MT'8M+!(G:@#D`=`WK'F+`L8`"H/``8D"@\046UW#H300!0C'!"0@```` -XMB40D!.C=W___BQOKC8E,)`3'!"3+W`0(Z,GA___I1O___SM"&`^-8____XE4 -XM)`3'!"0@````Z&OB__^+&^E8____H300!0C'!"0*````B40D!.B/W___@\04 -XM6UW#B50D!,<$)`H```#H.>+__^G._O__58GE5U93@^P+__XT$A0$```")!"3H"N+__X7`B47L -XM#X2<`@``QT0D"%@```"+0P2)1"0$BT7LB00DZ(7>__^+0PC'1?``````AS'!"28V@0(B40D"(E4)`R) -XM1"0$Z';@__^+3>R)#"3HJ^'__XM-\(7)#X0Q____BT7PB44(@\0<6UY?7>F. -XMX?__BQ6H$`4(A=)U?HM%\(7`=!.+3?#'!"13VP0(B4PD!.@JX/__BT7LQP0D -XMR]P$"(E$)`3H%^#__^N?D(L#QP0DR]P$"`5O`0``B40D!.C]W___H8P0!0B% -XMP`^$P?[__XL#@[@$`@```0^.LO[__P4Z`0``B44,QT4(NMH$"(/$'%M>7UWI -XMQM___P^_7QB)V"L%G!`%"`'0ALDBQ4T$`4(#[[YBT((@^@!A<")0@AX0XL"B?F("(/``8D"@\8!@^L! -XM#XAM_O__#[9._X3)#X1A_O__BSW8`P4(A?]TO:$T$`4(B40D!`^^P8D$).BY -XMW/__Z\@[0AA\!8#Y"G6SB50D!(D\).AAW___Z[`[0AA\#(#Y"HUV``^%"?__ -XM_XE4)`2)/"3H0M___^D#____H300!0C'!"0@````B40D!.AHW/__Z4O____' -XM1"0$G=8$",<$)`$```#H']W__SM"&`^-)/___XE4)`3'!"0@````Z/;>___I -XM&?___XVV`````(V\)P````!5B>575E.#[!R+70B+=0R+0P2+?@B)!"3HA]__ -XM_XT$A0$```")!"3H^-[__X7`B47P#X0!`0``QT0D"%@```"+0P2)1"0$BT7P -XMB00DZ'/;__^+!H7`=#$/OT<8BU7PQP0DF-H$"(E$)`B)5"0,B40D!.BNW?__ -XMBTWPB4T(@\0<6UY?7>GLDBQ4T$`4(#[[YBT((@^@!A<")0@AX.XL"B?F("(/` -XM`8D"@\,!@^X!>)L/MDO_A,ETDXL]V`,%"(7_=,6A-!`%"(E$)`0/OL&)!"3H -XM(]O__^O0.T(8?`J`^0J0C70F`'6VB50D!(D\).C&W?__Z[.+5?#'!"3+W`0( -XMB50D!.CQW/__Z3[____'1"0$G=8$",<$)`$```#HJ-O__Y"0D)!5B>6)4`R+ -XM50A=QT`$`````,<``````(E("(E0$,=`%`````##C70F`(V\)P````"A7!`% -XM"%6)Y5:+50B#^`*+=0Q3="N#Z`%T2(L*BQ:+642+0D0YPW5JBT(H.4$H=$`/ -XMG<`/MM"-5!+_6XG07EW#W480W4(0V=BZZ____ -XM_Y#KV(M"&#E&&'7&ZZZ-="8`BX((`@``,=(Y@0@"``!UL.NXW=C=V.N2N@$` -XM``"-=@#KJ(/[_[K_____=)Z#^/^Z`0```'24.<,9TH/*`>N+D%6)Y593@^P0 -XMBQT```4(A=MT*8M%"(LPZPV-M"8`````BQN%VW05BT,(BP")="0$B00DZ*W; -XM__^%P'7E@\00B=A;7EW#C;8`````C;\`````58GE@^P8H3@0!0C'1"04L-L$ -XM",=$)!!\W00(QT0D#,#=!`C'1"0(X-T$",=$)`2_VP0(B00DZ-G8___'!"0! -XM````Z$W<__^)]HV\)P````!5B>575HG64X'L'`0``(F%[/O__P^V`H3`#X2N -XM`0``D`^^V(E<)`3'!"3,VP0(Z$':__^%P'0,@\8!#[8&A,!UWS';B5PD!(V= -XM]/O__\<$)-';!`CH&]K__X7`='C&`P"+E>S[__^-A?3[__^)1"0$B10D_U(, -XMZQH/OMB)7"0$QP0DS-L$".CIV?__AVZ43___^+A>S[ -XM__^)="0$B00D_U`,#[8&A,`/A5C^___IT/[__XN5[/O__XV%]/O__XE$)`2) -XM%"3_4@P/M@:$P`^%,O[__^FJ_O__C;8`````C;PG`````%6)Y5.)RX/L%(L- -XMJ!`%"(E,)`B+$HE4)`2+%6`0!0B)%"3_T(M5"(E<)`2)5"0(B00DZ"G<__^# -XMQ!1;7<.-=@!5B>53B<.#[`3'0`0`````QT`(`````,<``````(M`%(7`=`B) -XM!"3H*-K__\=##`````#'0Q``````QT,4`````(/$!%M=PXGVC;PG`````%6) -XMY8/L&(E=^(G#B77\BT`$@\`!C30`B?`/KT,(B40D!(M#%(D$).A8U___A575E.!['P,``"+70S&A93W__\`QH64 -XM\___``^V`SPO#X1(`@``/&,/A!("``"-A93[__^_%]P$",=$)`@`!```QT0D -XM!!'N0,```#SIKX$W`0(C7V4#Y?"#Y+`.,(/ -XMA"W^___IQ/W__XUT)@"%VW26# -XM["B)7?2+70R)=?B+=0B)??R`.P!U)L<$)$C>!`CHCM/__S'`QP5T$`4(`0`` -XM`(M=](MU^(M]_(GL7<.0Z*_3___'``````"-1?#'1"0("@```(E$)`2)'"3H -XM@M/__XG'BT7P@#@`=$6)7"0(BT80QP0DKMP$"(E$)`3H,=/__^ALT___QP`B -XM````Z&'3__^#.")T:(L6.U8$?7*+1A2)/)"-0@&)!K@!````ZX&%_WBW.<-T -XMLXVT)@````#H+]/__XL0A=)U"('_GX8!`'Z[B5PD"(M&$,<$)+W6#[#B)=?B+=0R)??R+?0B)7?2`/@!T)HDT).AR -XMU/__@_@0=DF)="0(BT<0QP0D:MP$"(E$)`3H5M+__^L3BT<0QP0D3-P$"(E$ -XM)`3H0=+__\<%=!`%"`$````QP(M=](MU^(M]_(GL7<.-="8`Z%_2___'```` -XM``"-1?#'1"0("@```(E$)`2)-"3HPM'__XG#Z#O2__^+"(7)=0B+1?"`.`!T -XM/,=%X.')^.AQ^?__BP_KX(D<).AYT/__QT7@SMP$"(7`B<-UQ.NTBT7@B70D -XM#(E$)`B+1Q#'!"3GW`0(B40D!.A\T?__Z3;___^-=@"-3"0$@^3P_W'\58GE -XM5U9348'L"`L``(L!BTD$QT0D!,[;!`C'!"0`````B844]?__B8T0]?__Z.C2 -XM___'!"20$`4(Z#S/___'!"3UW`0(Z'#/__^%P'0)@#@`#X6U"P``C5WDB5PD -XM",=$)`1H=`A`QP0D`0```.CHS___@\`!#X3/#0``#[=%YF:%P`^%E0(``,<% -XMJ!`%"$\```"#O13U__\!#XXG`0``BY40]?__BXT0]?__B[T0]?__@\($B948 -XM]?__BTD(B8T<]?__BW<$#[8^B?B$P'0UB?*0C70F``^^P(G3B40D!,<$)&S> -XM!`CH']#__X7`=`J`>`$Z#X2$"@``#[9#`8U3`83`==(QVXDT).A%+/7__P`` -XM``#'A3#U__\`````QX5`]?__`````,>%1/7__P````#'A4SU__\`````QX4D -XM]?__(=T$",>%2/7_______^)]HN5$/7__XN-%/7__\=$)`ALW@0(B50D!(D, -XM).A$SO__@_C_#X1@`P``@^A!/#=V%^@K\___Z\D/M\"#Z`&CJ!`%".EE_?__ -XM#[;`_R2%O-X$"(.%0/7__P''A2SU__\!````QX5(]?__`0```.N2QP0D```` -XM`.@JSO__A<"CW`,%"`^$8PP``(L5W`,%"(V%5/___^@8\___@X5`]?__`<>% -XM3/7__P$```#I4O___\=$)`0`````QP0DP``%".A>U/__QP5<$`4(`@```,8% -XMP``%"`#'A3#U__\!````Z1[___^%VP^$3@@``,<%J!`%"`````"#PP'I!/__ -XM_\=$)`0`````QP0D``$%".@0U/__QP5<$`4(`0```,8%``$%"`#'A3#U__\! -XM````Z=#^___'!5P0!0@"````Z<'^__^+%=P#!0B-19SH8_+__X.%0/7__P'I -XMI_[__Z'<`P4(QT0D!`$```")!"3HLM/__\>%,/7__P$```#I@_[__\<%7!`% -XM"`$```#I=/[__\=$)`0`````QP0D8``%".B`T___Q@5@``4(`,>%,/7__P$` -XM``#I2O[__\=$)`0`````QP0D(``%".A6T___Q@4@``4(`,>%,/7__P$```#I -XM(/[__P^W1>3'A43U__\6````9H/X!0^&"/[__P^WP(F%1/7__^GZ_?__Z$G. -XM__^%P`^%T@@``,<%6!`%"`$```#IWOW__\<%;!`%"`$```#IS_W__\<%E!`% -XM"`$```#IP/W__X.%0/7__P''A2SU__\!````Z:K]___'1"0$`````,<$)#\! -XM!0CHMM+__\8%/P$%"`#IBOW__\>%2/7__P````#I>_W__XL5W`,%"(V%//__ -XM_^@:\?__@X5`]?__`<>%3/7__P$```#I5/W__\<%F!`%"`$```#I1?W__\=$ -XM)`0!````QP0DGP`%".A1TO__H=P#!0C'1"0$`0```(D$).@\TO__QT0D!`$` -XM``#'!"2C``4(Z"C2___&!:,`!0@`Q@6?``4(`,>%,/7__P$```#IZ_S__Z'< -XM`P4(B84D]?__Z=O\__^+/=P#!0B)O2CU___IROS__^A5T?__QP0D`````.BM -XMS/__QP6,$`4($````.FJ_/__BQ7<`P4(C47,Z$SP__^#A4#U__\!QX5,]?__ -XM`0```.F&_/__QP6@$`4(`0```.EW_/__H3P0!0B+O1#U__^#/6P0!0@!C02' -XMB84(]?__#X07"```BX4(]?__BQB%VW1/#[8#@_A_#X=5"P``]@2%%00%"`2+ -XMM0CU__]U(NE`"P``#[8#@_A_#XR)1"0,H6`0!0C'1>S_____B50D"(E, -XM)`2)!"3HU,O__X7`B84@]?__#X21`P``BT7L@_@`#XPW!0``#XZ*`P``:\`< -XMB00DZ,G*__^%P*-D$`4(#X0[`P``BT7LB84T]?__@^@!#XA@`P``QX4\]?__ -XM`````,>%7/7__P````")]HM=G(7;?AZ+E2#U__\QP(M**(M5L#L,@@^$6@$` -XM`(/``3G8=?"+A4CU__^%P'4=BXT@]?__@WE$_P^$$0$``/:!*`$```(/A`0! -XM``"+A4#U__^%P`^$'@$``(M=S(7;?B&+O2#U__\QP(M5X(N/E````#D,@@^$ -XM_0```(/``3G8=?"+7;2%VWX>BX4@]?__BU7(BT@P,<`Y#((/A-@```"#P`$Y -XMV'7PBUV$A=M^(HN5(/7__S'`BXJ,````BU68D#L,@@^$KP```(/``3G8=?"+ -XMG6S___^%VWX>B[T@]?__,<"+58"+3S@[#((/A(<```"#P`$YV'7PBYU4____ -XMA=M^'8N%(/7__XN5:/___XM(1#'`.0R"=&"#P`$YV'7TBYT\____A=M^)XN5 -XM(/7__S'`BXJ(````BY50____.PR"=#:#P`$YV'7TC;0F`````(.%7/7__P&+ -XMC33U__\YC5SU__\/A.L!``"!A2#U__\``P``Z8C^__]KO3SU__\[__XD$).BYQ?__B4<$BU\$A=L/A.H```"+#6P0!0B%R0^%F````,=' -XM"`````")]HLU```%"(7V=0SK0HUT)@"+-H7V=#B+7@CV0PP(C78`=.Z)/"3_ -XM4Q0/MU,8B<$/O\(YP7X&B%0/7__P````#I -XMG?K__XET)`2)/"3H2,;__^EQ]/__H6`0!0B)!"3H9L3__\=$)`3+W`0(QP0D -XM`0```(E$)`CH3L/__\<$)`0```#H%0/7__P````#IN_?__SM"&`^-7/___XE4)`3'!"0@````Z'G" -XM___I4?___Z'8`P4(A<`/A10!``"+%300!0B+0@B#Z`&%P(E""`^(<@$``(L" -XMQ@`*@\`!B0*+A43U__^%P'09BY4,]?__.94X]?__#X3Q````@X4X]?__`8/' -XM`8/&'#N]//7__P^%N?[__XU%S.@UZ/__C46C__XU%A.@= -XMZ/__C85L____Z!+H__^-A53____H!^C__XV%//___^C\Y___H:00!0B)!"3H -XM\\'__XV";P$``(E$)`B-1P3'1"0$6-T$"(D$).C&P?__Z6OY__^)P8M%L(/) -XM`8L0QX5`]?__`````.FQ]O__B<&+18"#R0.+$,>%0/7__P````#IF/;__XG! -XMBX5H____@\D$BQ#'A4#U__\`````Z7SV__^A-!`%",<$)`H```")1"0$Z'Z^ -XM___I\_[__XL=V`,%"(7;#X6_````BQ4T$`4(BT((@^@!A<")0@@/B),```"+ -XM`L8`"H/``8D"Z''=___'A3CU__\`````Z=/^__^)7"0(QT0D!,O]___I2/___Y"0D)"0D)"0D)"0D)"058GE5U:#[#"+11"+512+=0B+ -XM?0R)1>R)P8E5Z(M%Z,=%T`````#'1=0`````B?J)=>2%P(EU\(E]X'44.?EV -XM8(GP]_&)5=#'1=0`````ZQ"+3>`Y3>AV&(EUT(E]U(GVBT70BU74@\0P7E]= -XMPXUV``^]1>B#\!^)1=AU1HM%Z#E%X`^'R0```(M-[#E-Y`^#O0```(M-\(E5 -XMU(E-T.O!D(M%[(7`=0RX`0```#'2]W7LB<&+1>"+5>CW\8M%Y/?QZX*X(``` -XM`(M5["M%V(MU[(M]Y(G!B47@/MDW8T^`)PHM%Y-/F#[9-W(E5](M5 -XMX-/H#[9-V-/B"="+5>#3YP^V3=S3ZO=U](E5S/?F.57,575H/L((M% -XM$(M5%,=%X`````"+=0S'1>0`````B47TB<&+10B%THG7B47L=2,Y\0^&F``` -XM`(GR]_&)P3'`B4W@B47DBT7@BU7D@\0@7E]=PSGR#X>U````#[W"@_`?B47H -XM#X26````N"````"+5?0K1>B)P=/J#[9-Z(E%\(GXBWWTT^`)PHM%[-/G#[9- -XM\(E5W(GRT^@/MDWHT^(/MDWP"=#3[HGR]W7P/MDWHT^`YQG:'BTW8,<"#Z0'I^O[_ -XM_Y"0D)"0D)"0D)!5B>53@^P$H90"!0B#^/]T$C';_]"+@Y`"!0B#ZP2#^/]U -XM\(/$!%M=PY"0D(/L#.@\O___@\0,PR1&@!64UH`>'-T870`6%-4050```!N;R!V86QI9"!K97EW -XM;W)DF5R;RUL96YG=&@I("5S(&YA;64`)7,@;F%M92!T;V\@ -XM;&]N9SH@)7,`3F\@)7,@;F%M960@)R5S)P!.;R`E`````4```"C -XMV@0(`````)C7!`AAV00(``````````#@I`0(``````@```!H````!0```*/: -XM!`@`````2-<$"&G9!`@``````````."D!`@`````"````%@````%````H]H$ -XM"`````!QV00(=-D$"``````0````X*0$"``````#````!`$```4```#,V@0( -XM``````?8!`@-V`0(``````8```"@JP0(``````<````````````````````` -XM````$]H$",[;!`AWV00(```````````````````````````````````````` -XM``!WV00(&=H$"```````````0*$$"``````$```````````````````````` -XM`'W9!`B#V00(``````````#@I`0(``````4```"8````!0```/W:!`@````` -XMB=D$"(_9!`@``````````."D!`@`````!0```)`````%````_=H$"`````"5 -XMV00(FMD$"```````````,*8$"``````$`````````````````````````)_9 -XM!`BEV00(``````(```#@H@0(`````!,`````````````````````````>]<$ -XM"*O9!`@`````!````("I!`@`````"0````````````````````````"PV00( -XMMMD$"```````````X*0$"``````$````-`````4```#,V@0(`````+S9!`C! -XMV00(``````````#@I`0(``````4````\````!0```,S:!`@`````QMD$",O9 -XM!`@``````````."D!`@`````!````.P````)````D-H$"`````#0V00(T]D$ -XM"```````````<*T$"``````$`````````````````````````!SBPE8W!U+"5M -XM96TL8V]M;6%N9`!L86)E;`!P:60L='0LI($"(J2!`B:D@0( -XMJI($"+J2!`C*D@0(VI($".J2!`CZD@0("I,$"!J3!`@JDP0(.I,$"$J3!`A: -XMDP0(:I,$"'J3!`B*DP0(FI,$"*J3!`BZDP0(RI,$"-J3!`CJDP0(^I,$"`J4 -XM!`@:E`0(*I0$"#J4!`A*E`0(6I0$"&J4!`AZE`0(BI0$")J4!`BJE`0(NI0$ -XM"``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

7=O6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G1E>'0`+F9I;FD`+G)O -XM9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]Fps.new.uu << 'cffb18ef50dd17690799ebccb9f304ef' -Xbegin 644 ps.new -XM?T5,1@$!`0D```````````(``P`!````T)0$"#0````,>````````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(!&`` -XM``1@```%`````!````$````@8```(/`$""#P!`BX$P``C"````8`````$``` -XM`@```+QQ``"\`04(O`$%"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&3H7P``Z-\$".C?!`@<````'`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%L````*````50```!,````O````1@```%0````L```` -XM/0```#L`````````1P```!H```!#````00`````````Q````3P`````````+ -XM`````````!0```!:````3@````````!)`````````!@````N````)P```$H` -XM``!6`````````#8````_`````````!<`````````4````"D`````````4P`` -XM`%D``````````````!$```!8`````````#<````A````-````!\````K```` -XM````````````````2P```%$``````````````$0`````````30```$4````` -XM````,P```%<````````````````````````````````````````````````` -XM```````````````````%````````````````````````````````````#@`` -XM``````````````````P````&````"``````````2```````````````-```` -XM`````!P````````````````````````````````````B`````````"0````' -XM`````````"H``````````````!D````6````!````"4````F````#P`````` -XM```!`````````!X`````````&P```#`````0````.@```#(````````````` -XM`"T`````````````````````````'0```"`````C````-0```#D````H```` -XM`````#X````\`````@```$P````)````2`````````!````````````````X -XM````%0```%(```!"`````P````````````````````````"U`0```````#0` -XM```2````OP(````````S````$@```*$"````````0P```!(```"F`0`````` -XM`&$````2````6P$`````````````$@```(H"````````*@```!(```#L```` -XM`````&L!```2````$`$```````#]"```$@```#,```"\`04(`````!$`\?\Z -XM`@```````)@````2````0@(```````"A````$@````0!````````?P```!(` -XM``!?`@```````!T````2````\P$`````````````$@````,"````````6@`` -XM`!(```#C`````````!T````2````T@(````````S````$@```,4````````` -XM`````!(```#L`@```````.T````2````G0(```````#G`0``$@```"@"```` -XM````!0```!(````\````=)$$"#D````2````^P$```````#=`P``$@```$@` -XM```0D`0(`````!(`"@"8`0``(*\$"$8````2``P`00$````````N````$@`` -XM`!X"````````,P$``!(```#+```````````````2````I@````````"C```` -XM$@```*T!``!X$`4(!````!$`%P#[`````````#T````2````Y0(````````` -XM````$@```-(`````````Q@0``!(````*`@``V`,%"`0````1`!<`8@$````` -XM```5`@``$@`````#````````G@```!(````7`@```````&4"```2````G@$` -XM````````````$@```-@!```@\`0(!````!$`$`"_`````````"T````2```` -XML0(`````````````$@```%0!``#<`P4(!````!$`%P"%`0``X`,%"%0,```1 -XM`!<`3@(```````#,````$@```'X!````````'0(``!(```#C`0```````!8` -XM```2````3@`````````+````$@```+8"````````'0```!(```!'`@`````` -XM```````2````M@$````````Y````$@```,0"````````[0```!(````4`P`` -XMV`,%"``````0`/'_V@````````#?````$@```/L"````````00```!(````+ -XM```````````````2````E@(```````!?````$@```/,`````````;0```!(` -XM``!9````+-8$"``````2``T`Q0$```````",`@``$@```%8"````````'0`` -XM`!(```"U````-!`%"`0````1`!<`#P``````````````$@```*8"```````` -XM30$``!(```!?````=),$""8"```2````,@(```````#+````$@```!8!```` -XM````+0```!(```!H`@````````,!```2`````(````` -XM``"\````$@```'$"````````*P```!(```#>`@`````````````2````@0`` -XM``````"V````$@```*X``````````````!(````3```````````````@```` -XM:0(```````"\````$@```'(!````````&````!(```!J`0```````)<````2 -XM````CP````````!J!```$@```.L!````````1````!(`````;&EB;2YS;RXU -XM`&QO9P!E>'``7TIV7U)E9VES=&5R0VQA7-C;VYF`'-N<')I;G1F`&=E=&=R9VED -XM`&=E=&5N=@!B6YA -XM;64`9V5T<'=U:60`9V5T<'=N86T`87-P&ET`'-T7-C=&QB -XM>6YA;64`7V5D871A`%]?8G-S7W-T87)T`%]E;F0`1D)31%\Q+C`````"``(` -XM`@`"``(``@`"``(``0`"``(``@`"``(``@`"``(``@`"``(``@````(``0`! -XM``(``@`"``(``0`"``(``@`"``(``@`"``(``0`"``(``@`"``(``@`"```` -XM`@`"``(``@`!``(``@`#``(``@`!``(``@`"``,``@````(``@`"``(``@`" -XM``$``@`!``$``@`"``(``@`"``(``@`"`````@````(``@`"`````@`!``$` -XM`0```!`````@````L"AZ!P```P`E`P````````$``0"<````$`````````"P -XM*'H'```"`"4#````````V`,%"`4B``#<`P4(!2H``.`#!0@%*P``-!`%"`4] -XM```X$`4(!4P``#P0!0@%3@``M`(%"`0"!0AH8````.D@_____R7H`@4(:&@` -XM``#I$/____\E[`(%"&AP````Z0#_____)?`"!0AH>````.GP_O___R7T`@4( -XM:(````#IX/[___\E^`(%"&B(````Z=#^____)?P"!0AHD````.G`_O___R4` -XM`P4(:)@```#IL/[___\E!`,%"&B@````Z:#^____)0@#!0AHJ````.F0_O__ -XM_R4,`P4(:+````#I@/[___\E$`,%"&BX````Z7#^____)10#!0AHP````.E@ -XM_O___R48`P4(:,@```#I4/[___\E'`,%"&C0````Z4#^____)2`#!0AHV``` -XM`.DP_O___R4D`P4(:.````#I(/[___\E*`,%"&CH````Z1#^____)2P#!0AH -XM\````.D`_O___R4P`P4(:/@```#I\/W___\E-`,%"&@``0``Z>#]____)3@# -XM!0AH"`$``.G0_?___R4\`P4(:!`!``#IP/W___\E0`,%"&@8`0``Z;#]____ -XM)40#!0AH(`$``.F@_?___R5(`P4(:"@!``#ID/W___\E3`,%"&@P`0``Z8#] -XM____)5`#!0AH.`$``.EP_?___R54`P4(:$`!``#I8/W___\E6`,%"&A(`0`` -XMZ5#]____)5P#!0AH4`$``.E`_?___R5@`P4(:%@!``#I,/W___\E9`,%"&A@ -XM`0``Z2#]____)6@#!0AH:`$``.D0_?___R5L`P4(:'`!``#I`/W___\E<`,% -XM"&AX`0``Z?#\____)70#!0AH@`$``.G@_/___R5X`P4(:(@!``#IT/S___\E -XM?`,%"&B0`0``Z<#\____)8`#!0AHF`$``.FP_/___R6$`P4(:*`!``#IH/S_ -XM__\EB`,%"&BH`0``Z9#\____)8P#!0AHL`$``.F`_/___R60`P4(:+@!``#I -XM!`% -XM"'XVBT4(AL*#[80@\`!A-)T%(#Z+W7QHR#P -XM!`@/MA"#P`&$TG7LN+P!!0B%P'0TB0PDZ/_^___'!"0LU@0(Z//^___HROK_ -XM_XU%"(ET)`B)1"0$B1PDZ'`2#P`2)1?"%_P^$A0```(`_ -XM`'3GBQU($`4(*?''1"0,$@```(D\)(/K`0'+Z/[]___!ZP*)PHG8.=-V`HG0 -XMB40D"(E\)`2)-"3H,?[__X`^`'0(@\8!@#X`=?B+#400!0BA2!`%"(G*@^@! -XM*?(!T(/X`W:'Q@8@BT7P@\8!BPU$$`4(BW@$@\`$B47PA?\/A7O___\Y\8E- -XM['0+,<"`?O\@#Y3`*<;&!@"+5>R)%"3H>_W__XM5$(U$`@2)!"3H[/S__X7` -XMB<8/A`\!``"+1>R%P`^$E````(M%"(L8QT0D!"\```")'"3H,OO__X7`=`.- -XM6`&+51"+10R)'"2)5"0(B40D!.C5^?__A7UW#BT7LB30DB40D!.@#_?__ -XMZ^6+30RXSML$"(7)=-N+11#'1>P`````@\`#Z4____^+10R+51#'1"0$J]8$ -XM"(DT)(E$)`R)5"0(Z-7\___KI\<$)`$```#H1_K__X/X_W1G/?[__Q]_3(T$ -XMA0$```"C2!`%"(D$).CW^___A<")1>RC1!`%"'08BU4(BSJ%_P^%&?[__XM% -XM[,8``.G-_O__QT0D!)W6!`C'!"0!````Z(_Y___'1"0$O-8$",<$)`$```#H -XM>_G__\=$)`2"U@0(QP0D`0```.AG^?__D)"058GEBT4,BP")10R+10B+`(E% -XM"%WI:_K__XVT)@````!5B>575E.#[!R+'4#P!`B`.P!T8\=%\`````"_SML$ -XM"#'VB1PDZ,K[__^+%:@0!0B%TG07UW#D(UT)@!5B>575E.#[$R+10B)!"3H$/C__XE% -XMO(E%\(VV`````(M=\(7;#X3P````@#L`#X3G````QT0D!.K6!`B)'"3H`/O_ -XM_X`\`ST/A>D```#'1?``````QT0D!#T```")'"3HG_C__X7`B<9T!L8``(/& -XM`8U5Q(E=Q,=$)!`PF`0(QT0D#"P```#'1"0(60```,=$)`1`\`0(B10DZ*7Y -XM__^%P(G'#X3)````BT`(A<`/A/H```"%]@^$H@```(D$).B@^O__B30DB7<.)]HV\)P````!5B>53 -XM@^PDBT4,BU@(C47TQT7X`````(D$).BE]O__@\`!='^+1?2)1"0$BU4(BP*+ -XM0"B)!"3H>?/__X7`=$&+1?2)!"3HNO3__XM%^(7`=&6)1"0(#[]#&,<$)(': -XM!`B)1"0$Z(OU__^+1?B)!"3HP/;__X/$)%M=PXVV`````(U%^(E$)`2+1?2) -XM!"3HPO/__X/``0^4P`^VP(/H`2%%^.N6#[!B+10S'1"0(B-H$"(M`"`^_0!C'!"2*V@0( -XMB40D!.BL]/__R<.-M@````!5B>6#[!B+10R+30B+4`@QP(-Y#`!T"(L!BX`T -XM`@``B40D"`^_0AC'!"2.V@0(B40D!.AM]/__R<.-M"8`````58GE@^P8BT4( -XMBP"+@.````#!Z`J)1"0(BT4,BT`(#[]`&,<$))/:!`B)1"0$Z#+T___)PXVV -XM`````(V_`````%6)Y8/L&(M%#(M("(M%"(L`BU`DA=)T2("X2P$```!T(P^_ -XM41@%2P$``(E$)`R)5"0(B50D!,<$))C:!`CHXO/__\G#B50D"`^_01C'!"2? -XMV@0(B40D!.C(\___R<.)]O:`+`$```1T,H"X9@$```!T"P^_41@%9@$``.NM -XMQT0D"*7:!`@/OT$8QP0D@=H$"(E$)`3HB_/__\G#QT0D"(C:!`@/OT$8QP0D -XM@=H$"(E$)`3H;?/__\G#C;0F`````%6)Y8/L&(M%#(M0"(M%"(L`BT`DA6#[!B+10R+4`B+10B+`/:`+`$```1T2H"X9@$```!T(P^_4A@% -XM9@$``(E$)`S'!"28V@0(B50D"(E4)`3H4/+__\G#QT0D"*7:!`@/OT(8QP0D -XM@=H$"(E$)`3H,O+__\G#QT0D"(C:!`@/OT(8QP0D@=H$"(E$)`3H%/+__\G# -XMC;0F`````(V\)P````!5B>6#[!B+10B+``^V@`\"``"#Z%2)1"0(BT4,BT`( -XM#[]`&,<$)*_:!`B)1"0$Z-'Q___)PXUT)@"-O"<`````58GE@^P8BT4(BP`/ -XMMH`-`@``@^A4B40D"(M%#(M`"`^_0!C'!"2OV@0(B40D!.B1\?__R<.-="8` -XMC;PG`````%6)Y593@^P@BT4,BW`(BT4(BPB`N30!```'BYDH`0``BY'\`@`` -XM#X:X````QD7H/_?#````$(U5Z74'QD7I5XU5ZH"Y-0$````/C*,```!^!L8" -XM3H/"`?;'"'0&Q@)8@\(!]L<@=`^`N30!```%=`;&`D6#P@'VPQ!T!L8"5H/" -XM`?;'`G4)@+DV`0```'X&Q@),@\(!]H$L`0```G0&Q@)S@\(!]L,"=`B+03`[ -XM031T3X'C`````70&Q@)*@\(!C47HQ@(`B40D"`^_1AC'!"2!V@0(B40D!.BG -XM\/__@\0@6UY=PP^V@30!``#_)(58VP0(Q@(\@\(!Z5K___^-=@#&`BN#P@'K -XMJ<9%Z%KI'____\9%Z%?I%O___\9%Z$R)]ND+____@^((="F#N00!```4&<"# -XMX`J#P$F(1>CI[_[__\9%Z%3IYO[__\9%Z%+IW?[__\9%Z$3IU/[__XUT)@!5 -XMNHC:!`B)Y8/L&(M%#(M("(M%"(L`@+A4`0```'0&C9!4`0``B50D"`^_01C' -XM!"2!V@0(B40D!.CG[___R<.058GE@^P8BT4,BU`(H8P0!0B%P'0MBTT(BP&# -XMN`0"```!?A\%.@$``(E$)`@/OT(8QP0D@=H$"(E$)`3HI.___\G#QT0D"+/: -XM!`@/OT(8QP0D@=H$"(E$)`3HAN___\G#58GE4X/L%(M%#(M="(L(BU`(A56B<93 -XMB=.#[!"XP?\$"(M2)/9##`)T#HG(N@*ZZF0 -XM58GE@^P8BT4,BTT(BU`(BT$,A6+10R+30A= -XMBU`(BT(<`P'IV?[__XGVC;PG`````%6)Y5=64X'LK````(M%#(L-D!`%"(MX -XM"(M%"(L0*XH8`0``N@=%+L*)R/?JC30*B6#[#B+10R)7?B)=?R+<`B+10B+`(M01(/Z_W11B=`P -XM](U=Z(E$)!`/ML:)'"2)1"0,QT0D".':!`C'1"0$$````.AK[/__B5PD"`^_ -XM1AC'!"2*V@0(B40D!.@S[/__BUWXBW7\B>Q=PY"-="8`QT0D"*;:!`@/OT88 -XMQP0DBMH$"(E$)`3H".S__XM=^(MU_(GL7<.-=@"-O"<`````58GE5E.#[#"+ -XM10R+6`B+10B+``^VD`P"```/MH`-`@``@/H"#X29````=U>`^@$/A+(```") -XM1"00C77P#[;"B40D#,=$)`C_V@0(QT0D!`@```")-"3HN>O__Y"-="8`B70D -XM",9%]P`/OT,8QP0DBMH$"(E$)`3H>.O__X/$,%M>7<.`^@-T*(#Z!'6HC77P -XMB40D#,=$)`CWV@0(QT0D!`@```")-"3H:.O__^NRB?:-=?#'1?!N;W)MQT7T -XM86P``.N=C77PB40D#,=$)`COV@0(QT0D!`@```")-"3H,NO__^EY____C77P -XMB40D#,=$)`CGV@0(QT0D!`@```")-"3H#NO__^E5____D(UT)@!5B>53@^P4 -XMBT4,BU@(H7P0!0B%P'1:H4P0!0B%P'4QBU4(BP+V@"L!```0="/;@.0````Q -XMTJ&($`4(4E#?+"2#Q`C>^=@-H-L$".L&C70F`-GNW5PD"`^_0QC'!"0%VP0( -XMB40D!.AZZO__@\046UW#Z`OS__^C3!`%".N:C70F`%6)Y5.#[!2+'7P0!0B% -XMVW1?BPU0$`4(A\=T<).CNZ?__,=)24]\L)(/$"-[) -XMW1PDZ"KJ___<+:C;!`C=1?#>\>N,B?:-O"<`````58GE4X/L%(M%#(M8"(M% -XM"(D$).@(____W5PD"`^_0QC'!"0%VP0(B40D!.A4Z?__@\046UW#C78`C;PG -XM`````%6)Y5=64X'LK````(M="(`]5!`%"``/A$0!``"+10R+0`B)A6S___^+ -XM>PR%_P^$)`$``(L[B[<4`0``BY\0`0``QT0D"$!"#P#'1"0,`````(ET)`2) -XM'"3HTRH``(ET)`3'1"0(0$(/`,=$)`P`````B1PDB85P____Z$$I``"+-9@0 -XM!0B%]@^%LP```(V(B!,``+NMB]MHBQ=PXL"C5V0BX`8`0``B47TC47TB00DZ$;F__^)'"3'1"0(4-L$",=$ -XM)`1D````B40D#.C:Y?__B5PD"`^_1AC'!"2!V@0(B40D!.@RY___BUWXBW7\ -XMB>Q=PXUT)@!5B>564X/$@(M%#(M="(MP"(M##(7`#X2J````H>#_!`B%P`^( -XM^P```(L#BX`8`0``B47TC47TB00DZ,7E__^+%9`0!0B)P8L#*Y`8`0``@?I_ -XM40$`?EF!^G\Z"0`/CYT```"+%>#_!`BX+=L$"(72='Z-79")3"0,B40D",=$ -XM)`1D````B1PDZ"?E__^)7"0(#[]&&,<$)(':!`B)1"0$Z'_F__^#[(!;7EW# -XMC70F`(L=X/\$"+@=VP0(A=MUL[@EVP0(ZZS'1"0(B-H$"`^_1AC'!"2!V@0( -XMB40D!.A"YO__@^R`6UY=PXVT)@````"X--L$".EX____C;8`````C5V0B4PD -XM#,=$)`@[VP0(QT0D!&0```")'"3HE>3__^EI____QP0D!````.ADYO__@#@` -XM#Y7`#[;`H^#_!`CIYO[__XVV`````(V\)P````!5B>53@^P4BT4,BU@(BT4( -XMBP"+0$2#^/]T-L=$)`0`(```B00DZ+KF__^%P'0BB40D"`^_0QC'!"2!V@0( -XMB40D!.B.Y?__@\046UW#C70F`,=$)`BFV@0(#[]#&,<$)(':!`B)1"0$Z&CE -XM__^#Q!1;7<.-M"8`````C;PG`````%6)Y8/L*(M%#(M5"(E=](EU^(E]_(M8 -XM"(L"BT!$@_C_#X2,````QT0D!``@``")!"3H+N;__X7`B47P='6+=?"X`P`` -XM`+\Q=PXGVBW7PN`,```"_1]L$"(G!\Z8/A6+____I -XM6?___XUT)@!5B>6#[`C'1"0$`````(M%"(L`BX",````B00DZ$/D__^)10C) -XMZ:KE__^-M@````!5B>53@^P4BT4,BU@(BT4(QT0D!`````"+`(N`C````(D$ -XM).@,Y/__B40D"`^_0QC'!"2!V@0(B40D!.CDX___@\046UW#C78`C;PG```` -XM`%6)Y8/L",=$)`0`````BT4(BP"+@(@```")!"3HP^/__XE%",GI*N7__XVV -XM`````%6)Y5.#[!2+10R+6`B+10C'1"0$`````(L`BX"(````B00DZ(SC__^) -XM1"0(#[]#&,<$)(':!`B)1"0$Z&3C__^#Q!1;7<.-=@"-O"<`````58GE@^P( -XMQT0D!`````"+10B+`(N`E````(D$).BSX?__B44(R>FJY/__C;8`````58GE -XM4X/L%(M%#(M8"(M%",=$)`0`````BP"+@)0```")!"3H?.'__XE$)`@/OT,8 -XMQP0D@=H$"(E$)`3HY.+__X/$%%M=PXUV`(V\)P````!5B>53@^P4BQT```4( -XMA=MT'8M+!(G:@#D`=`WK'F+`L8`"H/``8D"@\046UW#H300!0C'!"0@```` -XMB40D!.C=W___BQOKC8E,)`3'!"3+W`0(Z,GA___I1O___SM"&`^-8____XE4 -XM)`3'!"0@````Z&OB__^+&^E8____H300!0C'!"0*````B40D!.B/W___@\04 -XM6UW#B50D!,<$)`H```#H.>+__^G._O__58GE5U93@^P+__XT$A0$```")!"3H"N+__X7`B47L -XM#X2<`@``QT0D"%@```"+0P2)1"0$BT7LB00DZ(7>__^+0PC'1?``````AS'!"28V@0(B40D"(E4)`R) -XM1"0$Z';@__^+3>R)#"3HJ^'__XM-\(7)#X0Q____BT7PB44(@\0<6UY?7>F. -XMX?__BQ6H$`4(A=)U?HM%\(7`=!.+3?#'!"13VP0(B4PD!.@JX/__BT7LQP0D -XMR]P$"(E$)`3H%^#__^N?D(L#QP0DR]P$"`5O`0``B40D!.C]W___H8P0!0B% -XMP`^$P?[__XL#@[@$`@```0^.LO[__P4Z`0``B44,QT4(NMH$"(/$'%M>7UWI -XMQM___P^_7QB)V"L%G!`%"`'0ALDBQ4T$`4(#[[YBT((@^@!A<")0@AX0XL"B?F("(/``8D"@\8!@^L! -XM#XAM_O__#[9._X3)#X1A_O__BSW8`P4(A?]TO:$T$`4(B40D!`^^P8D$).BY -XMW/__Z\@[0AA\!8#Y"G6SB50D!(D\).AAW___Z[`[0AA\#(#Y"HUV``^%"?__ -XM_XE4)`2)/"3H0M___^D#____H300!0C'!"0@````B40D!.AHW/__Z4O____' -XM1"0$G=8$",<$)`$```#H']W__SM"&`^-)/___XE4)`3'!"0@````Z/;>___I -XM&?___XVV`````(V\)P````!5B>575E.#[!R+70B+=0R+0P2+?@B)!"3HA]__ -XM_XT$A0$```")!"3H^-[__X7`B47P#X0!`0``QT0D"%@```"+0P2)1"0$BT7P -XMB00DZ'/;__^+!H7`=#$/OT<8BU7PQP0DF-H$"(E$)`B)5"0,B40D!.BNW?__ -XMBTWPB4T(@\0<6UY?7>GLDBQ4T$`4(#[[YBT((@^@!A<")0@AX.XL"B?F("(/` -XM`8D"@\,!@^X!>)L/MDO_A,ETDXL]V`,%"(7_=,6A-!`%"(E$)`0/OL&)!"3H -XM(]O__^O0.T(8?`J`^0J0C70F`'6VB50D!(D\).C&W?__Z[.+5?#'!"3+W`0( -XMB50D!.CQW/__Z3[____'1"0$G=8$",<$)`$```#HJ-O__Y"0D)!5B>6)4`R+ -XM50A=QT`$`````,<``````(E("(E0$,=`%`````##C70F`(V\)P````"A7!`% -XM"%6)Y5:+50B#^`*+=0Q3="N#Z`%T2(L*BQ:+642+0D0YPW5JBT(H.4$H=$`/ -XMG<`/MM"-5!+_6XG07EW#W480W4(0V=BZZ____ -XM_Y#KV(M"&#E&&'7&ZZZ-="8`BX((`@``,=(Y@0@"``!UL.NXW=C=V.N2N@$` -XM``"-=@#KJ(/[_[K_____=)Z#^/^Z`0```'24.<,9TH/*`>N+D%6)Y593@^P0 -XMBQT```4(A=MT*8M%"(LPZPV-M"8`````BQN%VW05BT,(BP")="0$B00DZ*W; -XM__^%P'7E@\00B=A;7EW#C;8`````C;\`````58GE@^P8H3@0!0C'1"04L-L$ -XM",=$)!!\W00(QT0D#,#=!`C'1"0(X-T$",=$)`2_VP0(B00DZ-G8___'!"0! -XM````Z$W<__^)]HV\)P````!5B>575HG64X'L'`0``(F%[/O__P^V`H3`#X2N -XM`0``D`^^V(E<)`3'!"3,VP0(Z$':__^%P'0,@\8!#[8&A,!UWS';B5PD!(V= -XM]/O__\<$)-';!`CH&]K__X7`='C&`P"+E>S[__^-A?3[__^)1"0$B10D_U(, -XMZQH/OMB)7"0$QP0DS-L$".CIV?__AVZ43___^+A>S[ -XM__^)="0$B00D_U`,#[8&A,`/A5C^___IT/[__XN5[/O__XV%]/O__XE$)`2) -XM%"3_4@P/M@:$P`^%,O[__^FJ_O__C;8`````C;PG`````%6)Y5.)RX/L%(L- -XMJ!`%"(E,)`B+$HE4)`2+%6`0!0B)%"3_T(M5"(E<)`2)5"0(B00DZ"G<__^# -XMQ!1;7<.-=@!5B>53B<.#[`3'0`0`````QT`(`````,<``````(M`%(7`=`B) -XM!"3H*-K__\=##`````#'0Q``````QT,4`````(/$!%M=PXGVC;PG`````%6) -XMY8/L&(E=^(G#B77\BT`$@\`!C30`B?`/KT,(B40D!(M#%(D$).A8U___A575E.!['P,``"+70S&A93W__\`QH64 -XM\___``^V`SPO#X1(`@``/&,/A!("``"-A93[__^_%]P$",=$)`@`!```QT0D -XM!!'N0,```#SIKX$W`0(C7V4#Y?"#Y+`.,(/ -XMA"W^___IQ/W__XUT)@"%VW26# -XM["B)7?2+70R)=?B+=0B)??R`.P!U)L<$)$C>!`CHCM/__S'`QP5T$`4(`0`` -XM`(M=](MU^(M]_(GL7<.0Z*_3___'``````"-1?#'1"0("@```(E$)`2)'"3H -XM@M/__XG'BT7P@#@`=$6)7"0(BT80QP0DKMP$"(E$)`3H,=/__^ALT___QP`B -XM````Z&'3__^#.")T:(L6.U8$?7*+1A2)/)"-0@&)!K@!````ZX&%_WBW.<-T -XMLXVT)@````#H+]/__XL0A=)U"('_GX8!`'Z[B5PD"(M&$,<$)+W6#[#B)=?B+=0R)??R+?0B)7?2`/@!T)HDT).AR -XMU/__@_@0=DF)="0(BT<0QP0D:MP$"(E$)`3H5M+__^L3BT<0QP0D3-P$"(E$ -XM)`3H0=+__\<%=!`%"`$````QP(M=](MU^(M]_(GL7<.-="8`Z%_2___'```` -XM``"-1?#'1"0("@```(E$)`2)-"3HPM'__XG#Z#O2__^+"(7)=0B+1?"`.`!T -XM/,=%X.')^.AQ^?__BP_KX(D<).AYT/__QT7@SMP$"(7`B<-UQ.NTBT7@B70D -XM#(E$)`B+1Q#'!"3GW`0(B40D!.A\T?__Z3;___^-=@"-3"0$@^3P_W'\58GE -XM5U9348'L"`L``(L!BTD$QT0D!,[;!`C'!"0`````B844]?__B8T0]?__Z.C2 -XM___'!"20$`4(Z#S/___'!"3UW`0(Z'#/__^%P'0)@#@`#X6U"P``C5WDB5PD -XM",=$)`1H=`A`QP0D`0```.CHS___@\`!#X3/#0``#[=%YF:%P`^%E0(``,<% -XMJ!`%"$\```"#O13U__\!#XXG`0``BY40]?__BXT0]?__B[T0]?__@\($B948 -XM]?__BTD(B8T<]?__BW<$#[8^B?B$P'0UB?*0C70F``^^P(G3B40D!,<$)&S> -XM!`CH']#__X7`=`J`>`$Z#X2$"@``#[9#`8U3`83`==(QVXDT).A%+/7__P`` -XM``#'A3#U__\`````QX5`]?__`````,>%1/7__P````#'A4SU__\`````QX4D -XM]?__(=T$",>%2/7_______^)]HN5$/7__XN-%/7__\=$)`ALW@0(B50D!(D, -XM).A$SO__@_C_#X1@`P``@^A!/#=V%^@K\___Z\D/M\"#Z`&CJ!`%".EE_?__ -XM#[;`_R2%O-X$"(.%0/7__P''A2SU__\!````QX5(]?__`0```.N2QP0D```` -XM`.@JSO__A<"CW`,%"`^$8PP``(L5W`,%"(V%5/___^@8\___@X5`]?__`<>% -XM3/7__P$```#I4O___\=$)`0`````QP0DP``%".A>U/__QP5<$`4(`@```,8% -XMP``%"`#'A3#U__\!````Z1[___^%VP^$3@@``,<%J!`%"`````"#PP'I!/__ -XM_\=$)`0`````QP0D``$%".@0U/__QP5<$`4(`0```,8%``$%"`#'A3#U__\! -XM````Z=#^___'!5P0!0@"````Z<'^__^+%=P#!0B-19SH8_+__X.%0/7__P'I -XMI_[__Z'<`P4(QT0D!`$```")!"3HLM/__\>%,/7__P$```#I@_[__\<%7!`% -XM"`$```#I=/[__\=$)`0`````QP0D8``%".B`T___Q@5@``4(`,>%,/7__P$` -XM``#I2O[__\=$)`0`````QP0D(``%".A6T___Q@4@``4(`,>%,/7__P$```#I -XM(/[__P^W1>3'A43U__\6````9H/X!0^&"/[__P^WP(F%1/7__^GZ_?__Z$G. -XM__^%P`^%T@@``,<%6!`%"`$```#IWOW__\<%;!`%"`$```#IS_W__\<%E!`% -XM"`$```#IP/W__X.%0/7__P''A2SU__\!````Z:K]___'1"0$`````,<$)#\! -XM!0CHMM+__\8%/P$%"`#IBOW__\>%2/7__P````#I>_W__XL5W`,%"(V%//__ -XM_^@:\?__@X5`]?__`<>%3/7__P$```#I5/W__\<%F!`%"`$```#I1?W__\=$ -XM)`0!````QP0DGP`%".A1TO__H=P#!0C'1"0$`0```(D$).@\TO__QT0D!`$` -XM``#'!"2C``4(Z"C2___&!:,`!0@`Q@6?``4(`,>%,/7__P$```#IZ_S__Z'< -XM`P4(B84D]?__Z=O\__^+/=P#!0B)O2CU___IROS__^A5T?__QP0D`````.BM -XMS/__QP6,$`4($````.FJ_/__BQ7<`P4(C47,Z$SP__^#A4#U__\!QX5,]?__ -XM`0```.F&_/__QP6@$`4(`0```.EW_/__H3P0!0B+O1#U__^#/6P0!0@!C02' -XMB84(]?__#X07"```BX4(]?__BQB%VW1/#[8#@_A_#X=5"P``]@2%%00%"`2+ -XMM0CU__]U(NE`"P``#[8#@_A_#XR)1"0,H6`0!0C'1>S_____B50D"(E, -XM)`2)!"3HU,O__X7`B84@]?__#X21`P``BT7L@_@`#XPW!0``#XZ*`P``:\`< -XMB00DZ,G*__^%P*-D$`4(#X0[`P``BT7LB84T]?__@^@!#XA@`P``QX4\]?__ -XM`````,>%7/7__P````")]HM=G(7;?AZ+E2#U__\QP(M**(M5L#L,@@^$6@$` -XM`(/``3G8=?"+A4CU__^%P'4=BXT@]?__@WE$_P^$$0$``/:!*`$```(/A`0! -XM``"+A4#U__^%P`^$'@$``(M=S(7;?B&+O2#U__\QP(M5X(N/E````#D,@@^$ -XM_0```(/``3G8=?"+7;2%VWX>BX4@]?__BU7(BT@P,<`Y#((/A-@```"#P`$Y -XMV'7PBUV$A=M^(HN5(/7__S'`BXJ,````BU68D#L,@@^$KP```(/``3G8=?"+ -XMG6S___^%VWX>B[T@]?__,<"+58"+3S@[#((/A(<```"#P`$YV'7PBYU4____ -XMA=M^'8N%(/7__XN5:/___XM(1#'`.0R"=&"#P`$YV'7TBYT\____A=M^)XN5 -XM(/7__S'`BXJ(````BY50____.PR"=#:#P`$YV'7TC;0F`````(.%7/7__P&+ -XMC33U__\YC5SU__\/A.L!``"!A2#U__\``P``Z8C^__]KO3SU__\[__XD$).BYQ?__B4<$BU\$A=L/A.H```"+#6P0!0B%R0^%F````,=' -XM"`````")]HLU```%"(7V=0SK0HUT)@"+-H7V=#B+7@CV0PP(C78`=.Z)/"3_ -XM4Q0/MU,8B<$/O\(YP7X&B%0/7__P````#I -XMG?K__XET)`2)/"3H2,;__^EQ]/__H6`0!0B)!"3H9L3__\=$)`3+W`0(QP0D -XM`0```(E$)`CH3L/__\<$)`0```#H%0/7__P````#IN_?__SM"&`^-7/___XE4)`3'!"0@````Z'G" -XM___I4?___Z'8`P4(A<`/A10!``"+%300!0B+0@B#Z`&%P(E""`^(<@$``(L" -XMQ@`*@\`!B0*+A43U__^%P'09BY4,]?__.94X]?__#X3Q````@X4X]?__`8/' -XM`8/&'#N]//7__P^%N?[__XU%S.@UZ/__C46C__XU%A.@= -XMZ/__C85L____Z!+H__^-A53____H!^C__XV%//___^C\Y___H:00!0B)!"3H -XM\\'__XV";P$``(E$)`B-1P3'1"0$6-T$"(D$).C&P?__Z6OY__^)P8M%L(/) -XM`8L0QX5`]?__`````.FQ]O__B<&+18"#R0.+$,>%0/7__P````#IF/;__XG! -XMBX5H____@\D$BQ#'A4#U__\`````Z7SV__^A-!`%",<$)`H```")1"0$Z'Z^ -XM___I\_[__XL=V`,%"(7;#X6_````BQ4T$`4(BT((@^@!A<")0@@/B),```"+ -XM`L8`"H/``8D"Z''=___'A3CU__\`````Z=/^__^)7"0(QT0D!,O]___I2/___Y"0D)"0D)"0D)"0D)"058GE5U:#[#"+11"+512+=0B+ -XM?0R)1>R)P8E5Z(M%Z,=%T`````#'1=0`````B?J)=>2%P(EU\(E]X'44.?EV -XM8(GP]_&)5=#'1=0`````ZQ"+3>`Y3>AV&(EUT(E]U(GVBT70BU74@\0P7E]= -XMPXUV``^]1>B#\!^)1=AU1HM%Z#E%X`^'R0```(M-[#E-Y`^#O0```(M-\(E5 -XMU(E-T.O!D(M%[(7`=0RX`0```#'2]W7LB<&+1>"+5>CW\8M%Y/?QZX*X(``` -XM`(M5["M%V(MU[(M]Y(G!B47@/MDW8T^`)PHM%Y-/F#[9-W(E5](M5 -XMX-/H#[9-V-/B"="+5>#3YP^V3=S3ZO=U](E5S/?F.57,575H/L((M% -XM$(M5%,=%X`````"+=0S'1>0`````B47TB<&+10B%THG7B47L=2,Y\0^&F``` -XM`(GR]_&)P3'`B4W@B47DBT7@BU7D@\0@7E]=PSGR#X>U````#[W"@_`?B47H -XM#X26````N"````"+5?0K1>B)P=/J#[9-Z(E%\(GXBWWTT^`)PHM%[-/G#[9- -XM\(E5W(GRT^@/MDWHT^(/MDWP"=#3[HGR]W7P/MDWHT^`YQG:'BTW8,<"#Z0'I^O[_ -XM_Y"0D)"0D)"0D)!5B>53@^P$H90"!0B#^/]T$C';_]"+@Y`"!0B#ZP2#^/]U -XM\(/$!%M=PY"0D(/L#.@\O___@\0,PR1&@!64UH`>'-T870`6%-4050```!N;R!V86QI9"!K97EW -XM;W)DF5R;RUL96YG=&@I("5S(&YA;64`)7,@;F%M92!T;V\@ -XM;&]N9SH@)7,`3F\@)7,@;F%M960@)R5S)P!.;R`E`````4```"C -XMV@0(`````)C7!`AAV00(``````````#@I`0(``````@```!H````!0```*/: -XM!`@`````2-<$"&G9!`@``````````."D!`@`````"````%@````%````H]H$ -XM"`````!QV00(=-D$"``````0````X*0$"``````#````!`$```4```#,V@0( -XM``````?8!`@-V`0(``````8```"@JP0(``````<````````````````````` -XM````$]H$",[;!`AWV00(```````````````````````````````````````` -XM``!WV00(&=H$"```````````0*$$"``````$```````````````````````` -XM`'W9!`B#V00(``````````#@I`0(``````4```"8````!0```/W:!`@````` -XMB=D$"(_9!`@``````````."D!`@`````!0```)`````%````_=H$"`````"5 -XMV00(FMD$"```````````,*8$"``````$`````````````````````````)_9 -XM!`BEV00(``````(```#@H@0(`````!,`````````````````````````>]<$ -XM"*O9!`@`````!````("I!`@`````"0````````````````````````"PV00( -XMMMD$"```````````X*0$"``````$````-`````4```#,V@0(`````+S9!`C! -XMV00(``````````#@I`0(``````4````\````!0```,S:!`@`````QMD$",O9 -XM!`@``````````."D!`@`````!````.P````)````D-H$"`````#0V00(T]D$ -XM"```````````<*T$"``````$`````````````````````````!SBPE8W!U+"5M -XM96TL8V]M;6%N9`!L86)E;`!P:60L='0LI($"(J2!`B:D@0( -XMJI($"+J2!`C*D@0(VI($".J2!`CZD@0("I,$"!J3!`@JDP0(.I,$"$J3!`A: -XMDP0(:I,$"'J3!`B*DP0(FI,$"*J3!`BZDP0(RI,$"-J3!`CJDP0(^I,$"`J4 -XM!`@:E`0(*I0$"#J4!`A*E`0(6I0$"&J4!`AZE`0(BI0$")J4!`BJE`0(NI0$ -XM"``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

7=O6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G!L=``N=&5X=``N9FEN -XM:0`N6YA -XM;6EC`"YC=&]Rps.uu << '1d41113d6c473df8a15e4a4e0ea90bc3' -Xbegin 644 ps -XM?T5,1@$!`0D```````````(``P`!````T)0$"#0````(>````````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(!&`` -XM``1@```%`````!````$````@8```(/`$""#P!`BX$P``C"````8`````$``` -XM`@```+QQ``"\`04(O`$%"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&3H7P``Z-\$".C?!`@<````'`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%L````*````50```!,````O````1@```%0````L```` -XM/0```#L`````````1P```!H```!#````00`````````Q````3P`````````+ -XM`````````!0```!:````3@````````!)`````````!@````N````)P```$H` -XM``!6`````````#8````_`````````!<`````````4````"D`````````4P`` -XM`%D``````````````!$```!8`````````#<````A````-````!\````K```` -XM````````````````2P```%$``````````````$0`````````30```$4````` -XM````,P```%<````````````````````````````````````````````````` -XM```````````````````%````````````````````````````````````#@`` -XM``````````````````P````&````"``````````2```````````````-```` -XM`````!P````````````````````````````````````B`````````"0````' -XM`````````"H``````````````!D````6````!````"4````F````#P`````` -XM```!`````````!X`````````&P```#`````0````.@```#(````````````` -XM`"T`````````````````````````'0```"`````C````-0```#D````H```` -XM`````#X````\`````@```$P````)````2`````````!````````````````X -XM````%0```%(```!"`````P````````````````````````"U`0```````#0` -XM```2````OP(````````S````$@```*$"````````0P```!(```"F`0`````` -XM`&$````2````6P$`````````````$@```(H"````````*@```!(```#L```` -XM`````&L!```2````$`$```````#]"```$@```#,```"\`04(`````!$`\?\Z -XM`@```````)@````2````0@(```````"A````$@````0!````````?P```!(` -XM``!?`@```````!T````2````\P$`````````````$@````,"````````6@`` -XM`!(```#C`````````!T````2````T@(````````S````$@```,4````````` -XM`````!(```#L`@```````.T````2````G0(```````#G`0``$@```"@"```` -XM````!0```!(````\````=)$$"#D````2````^P$```````#=`P``$@```$@` -XM```0D`0(`````!(`"@"8`0``(*\$"$8````2``P`00$````````N````$@`` -XM`!X"````````,P$``!(```#+```````````````2````I@````````"C```` -XM$@```*T!``!X$`4(!````!$`%P#[`````````#T````2````Y0(````````` -XM````$@```-(`````````Q@0``!(````*`@``V`,%"`0````1`!<`8@$````` -XM```5`@``$@`````#````````G@```!(````7`@```````&4"```2````G@$` -XM````````````$@```-@!```@\`0(!````!$`$`"_`````````"T````2```` -XML0(`````````````$@```%0!``#<`P4(!````!$`%P"%`0``X`,%"%0,```1 -XM`!<`3@(```````#,````$@```'X!````````'0(``!(```#C`0```````!8` -XM```2````3@`````````+````$@```+8"````````'0```!(```!'`@`````` -XM```````2````M@$````````Y````$@```,0"````````[0```!(````4`P`` -XMV`,%"``````0`/'_V@````````#?````$@```/L"````````00```!(````+ -XM```````````````2````E@(```````!?````$@```/,`````````;0```!(` -XM``!9````+-8$"``````2``T`Q0$```````",`@``$@```%8"````````'0`` -XM`!(```"U````-!`%"`0````1`!<`#P``````````````$@```*8"```````` -XM30$``!(```!?````=),$""8"```2````,@(```````#+````$@```!8!```` -XM````+0```!(```!H`@````````,!```2`````(````` -XM``"\````$@```'$"````````*P```!(```#>`@`````````````2````@0`` -XM``````"V````$@```*X``````````````!(````3```````````````@```` -XM:0(```````"\````$@```'(!````````&````!(```!J`0```````)<````2 -XM````CP````````!J!```$@```.L!````````1````!(`````;&EB;2YS;RXU -XM`&QO9P!E>'``7TIV7U)E9VES=&5R0VQA7-C;VYF`'-N<')I;G1F`&=E=&=R9VED -XM`&=E=&5N=@!B6YA -XM;64`9V5T<'=U:60`9V5T<'=N86T`87-P&ET`'-T7-C=&QB -XM>6YA;64`7V5D871A`%]?8G-S7W-T87)T`%]E;F0`1D)31%\Q+C`````"``(` -XM`@`"``(``@`"``(``0`"``(``@`"``(``@`"``(``@`"``(``@````(``0`! -XM``(``@`"``(``0`"``(``@`"``(``@`"``(``0`"``(``@`"``(``@`"```` -XM`@`"``(``@`!``(``@`#``(``@`!``(``@`"``,``@````(``@`"``(``@`" -XM``$``@`!``$``@`"``(``@`"``(``@`"`````@````(``@`"`````@`!``$` -XM`0```!`````@````L"AZ!P```P`E`P````````$``0"<````$`````````"P -XM*'H'```"`"4#````````V`,%"`4B``#<`P4(!2H``.`#!0@%*P``-!`%"`4] -XM```X$`4(!4P``#P0!0@%3@``M`(%"`0"!0AH8````.D@_____R7H`@4(:&@` -XM``#I$/____\E[`(%"&AP````Z0#_____)?`"!0AH>````.GP_O___R7T`@4( -XM:(````#IX/[___\E^`(%"&B(````Z=#^____)?P"!0AHD````.G`_O___R4` -XM`P4(:)@```#IL/[___\E!`,%"&B@````Z:#^____)0@#!0AHJ````.F0_O__ -XM_R4,`P4(:+````#I@/[___\E$`,%"&BX````Z7#^____)10#!0AHP````.E@ -XM_O___R48`P4(:,@```#I4/[___\E'`,%"&C0````Z4#^____)2`#!0AHV``` -XM`.DP_O___R4D`P4(:.````#I(/[___\E*`,%"&CH````Z1#^____)2P#!0AH -XM\````.D`_O___R4P`P4(:/@```#I\/W___\E-`,%"&@``0``Z>#]____)3@# -XM!0AH"`$``.G0_?___R4\`P4(:!`!``#IP/W___\E0`,%"&@8`0``Z;#]____ -XM)40#!0AH(`$``.F@_?___R5(`P4(:"@!``#ID/W___\E3`,%"&@P`0``Z8#] -XM____)5`#!0AH.`$``.EP_?___R54`P4(:$`!``#I8/W___\E6`,%"&A(`0`` -XMZ5#]____)5P#!0AH4`$``.E`_?___R5@`P4(:%@!``#I,/W___\E9`,%"&A@ -XM`0``Z2#]____)6@#!0AH:`$``.D0_?___R5L`P4(:'`!``#I`/W___\E<`,% -XM"&AX`0``Z?#\____)70#!0AH@`$``.G@_/___R5X`P4(:(@!``#IT/S___\E -XM?`,%"&B0`0``Z<#\____)8`#!0AHF`$``.FP_/___R6$`P4(:*`!``#IH/S_ -XM__\EB`,%"&BH`0``Z9#\____)8P#!0AHL`$``.F`_/___R60`P4(:+@!``#I -XM!`% -XM"'XVBT4(AL*#[80@\`!A-)T%(#Z+W7QHR#P -XM!`@/MA"#P`&$TG7LN+P!!0B%P'0TB0PDZ/_^___'!"0LU@0(Z//^___HROK_ -XM_XU%"(ET)`B)1"0$B1PDZ'`2#P`2)1?"%_P^$A0```(`_ -XM`'3GBQU($`4(*?''1"0,$@```(D\)(/K`0'+Z/[]___!ZP*)PHG8.=-V`HG0 -XMB40D"(E\)`2)-"3H,?[__X`^`'0(@\8!@#X`=?B+#400!0BA2!`%"(G*@^@! -XM*?(!T(/X`W:'Q@8@BT7P@\8!BPU$$`4(BW@$@\`$B47PA?\/A7O___\Y\8E- -XM['0+,<"`?O\@#Y3`*<;&!@"+5>R)%"3H>_W__XM5$(U$`@2)!"3H[/S__X7` -XMB<8/A`\!``"+1>R%P`^$E````(M%"(L8QT0D!"\```")'"3H,OO__X7`=`.- -XM6`&+51"+10R)'"2)5"0(B40D!.C5^?__A7UW#BT7LB30DB40D!.@#_?__ -XMZ^6+30RXSML$"(7)=-N+11#'1>P`````@\`#Z4____^+10R+51#'1"0$J]8$ -XM"(DT)(E$)`R)5"0(Z-7\___KI\<$)`$```#H1_K__X/X_W1G/?[__Q]_3(T$ -XMA0$```"C2!`%"(D$).CW^___A<")1>RC1!`%"'08BU4(BSJ%_P^%&?[__XM% -XM[,8``.G-_O__QT0D!)W6!`C'!"0!````Z(_Y___'1"0$O-8$",<$)`$```#H -XM>_G__\=$)`2"U@0(QP0D`0```.AG^?__D)"058GEBT4,BP")10R+10B+`(E% -XM"%WI:_K__XVT)@````!5B>575E.#[!R+'4#P!`B`.P!T8\=%\`````"_SML$ -XM"#'VB1PDZ,K[__^+%:@0!0B%TG07UW#D(UT)@!5B>575E.#[$R+10B)!"3H$/C__XE% -XMO(E%\(VV`````(M=\(7;#X3P````@#L`#X3G````QT0D!.K6!`B)'"3H`/O_ -XM_X`\`ST/A>D```#'1?``````QT0D!#T```")'"3HG_C__X7`B<9T!L8``(/& -XM`8U5Q(E=Q,=$)!`PF`0(QT0D#"P```#'1"0(60```,=$)`1`\`0(B10DZ*7Y -XM__^%P(G'#X3)````BT`(A<`/A/H```"%]@^$H@```(D$).B@^O__B30DB7<.)]HV\)P````!5B>53 -XM@^PDBT4,BU@(C47TQT7X`````(D$).BE]O__@\`!='^+1?2)1"0$BU4(BP*+ -XM0"B)!"3H>?/__X7`=$&+1?2)!"3HNO3__XM%^(7`=&6)1"0(#[]#&,<$)(': -XM!`B)1"0$Z(OU__^+1?B)!"3HP/;__X/$)%M=PXVV`````(U%^(E$)`2+1?2) -XM!"3HPO/__X/``0^4P`^VP(/H`2%%^.N6#[!B+10S'1"0(B-H$"(M`"`^_0!C'!"2*V@0( -XMB40D!.BL]/__R<.-M@````!5B>6#[!B+10R+30B+4`@QP(-Y#`!T"(L!BX`T -XM`@``B40D"`^_0AC'!"2.V@0(B40D!.AM]/__R<.-M"8`````58GE@^P8BT4( -XMBP"+@.````#!Z`J)1"0(BT4,BT`(#[]`&,<$))/:!`B)1"0$Z#+T___)PXVV -XM`````(V_`````%6)Y8/L&(M%#(M("(M%"(L`BU`DA=)T2("X2P$```!T(P^_ -XM41@%2P$``(E$)`R)5"0(B50D!,<$))C:!`CHXO/__\G#B50D"`^_01C'!"2? -XMV@0(B40D!.C(\___R<.)]O:`+`$```1T,H"X9@$```!T"P^_41@%9@$``.NM -XMQT0D"*7:!`@/OT$8QP0D@=H$"(E$)`3HB_/__\G#QT0D"(C:!`@/OT$8QP0D -XM@=H$"(E$)`3H;?/__\G#C;0F`````%6)Y8/L&(M%#(M0"(M%"(L`BT`DA6#[!B+10R+4`B+10B+`/:`+`$```1T2H"X9@$```!T(P^_4A@% -XM9@$``(E$)`S'!"28V@0(B50D"(E4)`3H4/+__\G#QT0D"*7:!`@/OT(8QP0D -XM@=H$"(E$)`3H,O+__\G#QT0D"(C:!`@/OT(8QP0D@=H$"(E$)`3H%/+__\G# -XMC;0F`````(V\)P````!5B>6#[!B+10B+``^V@`\"``"#Z%2)1"0(BT4,BT`( -XM#[]`&,<$)*_:!`B)1"0$Z-'Q___)PXUT)@"-O"<`````58GE@^P8BT4(BP`/ -XMMH`-`@``@^A4B40D"(M%#(M`"`^_0!C'!"2OV@0(B40D!.B1\?__R<.-="8` -XMC;PG`````%6)Y593@^P@BT4,BW`(BT4(BPB`N30!```'BYDH`0``BY'\`@`` -XM#X:X````QD7H/_?#````$(U5Z74'QD7I5XU5ZH"Y-0$````/C*,```!^!L8" -XM3H/"`?;'"'0&Q@)8@\(!]L<@=`^`N30!```%=`;&`D6#P@'VPQ!T!L8"5H/" -XM`?;'`G4)@+DV`0```'X&Q@),@\(!]H$L`0```G0&Q@)S@\(!]L,"=`B+03`[ -XM031T3X'C`````70&Q@)*@\(!C47HQ@(`B40D"`^_1AC'!"2!V@0(B40D!.BG -XM\/__@\0@6UY=PP^V@30!``#_)(58VP0(Q@(\@\(!Z5K___^-=@#&`BN#P@'K -XMJ<9%Z%KI'____\9%Z%?I%O___\9%Z$R)]ND+____@^((="F#N00!```4&<"# -XMX`J#P$F(1>CI[_[__\9%Z%3IYO[__\9%Z%+IW?[__\9%Z$3IU/[__XUT)@!5 -XMNHC:!`B)Y8/L&(M%#(M("(M%"(L`@+A4`0```'0&C9!4`0``B50D"`^_01C' -XM!"2!V@0(B40D!.CG[___R<.058GE@^P8BT4,BU`(H8P0!0B%P'0MBTT(BP&# -XMN`0"```!?A\%.@$``(E$)`@/OT(8QP0D@=H$"(E$)`3HI.___\G#QT0D"+/: -XM!`@/OT(8QP0D@=H$"(E$)`3HAN___\G#58GE4X/L%(M%#(M="(L(BU`(A56B<93 -XMB=.#[!"XP?\$"(M2)/9##`)T#HG(N@*ZZF0 -XM58GE@^P8BT4,BTT(BU`(BT$,A6+10R+30A= -XMBU`(BT(<`P'IV?[__XGVC;PG`````%6)Y5=64X'LK````(M%#(L-D!`%"(MX -XM"(M%"(L0*XH8`0``N@=%+L*)R/?JC30*B6#[#B+10R)7?B)=?R+<`B+10B+`(M01(/Z_W11B=`P -XM](U=Z(E$)!`/ML:)'"2)1"0,QT0D".':!`C'1"0$$````.AK[/__B5PD"`^_ -XM1AC'!"2*V@0(B40D!.@S[/__BUWXBW7\B>Q=PY"-="8`QT0D"*;:!`@/OT88 -XMQP0DBMH$"(E$)`3H".S__XM=^(MU_(GL7<.-=@"-O"<`````58GE5E.#[#"+ -XM10R+6`B+10B+``^VD`P"```/MH`-`@``@/H"#X29````=U>`^@$/A+(```") -XM1"00C77P#[;"B40D#,=$)`C_V@0(QT0D!`@```")-"3HN>O__Y"-="8`B70D -XM",9%]P`/OT,8QP0DBMH$"(E$)`3H>.O__X/$,%M>7<.`^@-T*(#Z!'6HC77P -XMB40D#,=$)`CWV@0(QT0D!`@```")-"3H:.O__^NRB?:-=?#'1?!N;W)MQT7T -XM86P``.N=C77PB40D#,=$)`COV@0(QT0D!`@```")-"3H,NO__^EY____C77P -XMB40D#,=$)`CGV@0(QT0D!`@```")-"3H#NO__^E5____D(UT)@!5B>53@^P4 -XMBT4,BU@(H7P0!0B%P'1:H4P0!0B%P'4QBU4(BP+V@"L!```0="/;@.0````Q -XMTJ&($`4(4E#?+"2#Q`C>^=@-H-L$".L&C70F`-GNW5PD"`^_0QC'!"0%VP0( -XMB40D!.AZZO__@\046UW#Z`OS__^C3!`%".N:C70F`%6)Y5.#[!2+'7P0!0B% -XMVW1?BPU0$`4(A\=T<).CNZ?__,=)24]\L)(/$"-[) -XMW1PDZ"KJ___<+:C;!`C=1?#>\>N,B?:-O"<`````58GE4X/L%(M%#(M8"(M% -XM"(D$).@(____W5PD"`^_0QC'!"0%VP0(B40D!.A4Z?__@\046UW#C78`C;PG -XM`````%6)Y5=64X'LK````(M="(`]5!`%"``/A$0!``"+10R+0`B)A6S___^+ -XM>PR%_P^$)`$``(L[B[<4`0``BY\0`0``QT0D"$!"#P#'1"0,`````(ET)`2) -XM'"3HTRH``(ET)`3'1"0(0$(/`,=$)`P`````B1PDB85P____Z$$I``"+-9@0 -XM!0B%]@^%LP```(V(B!,``+NMB]MHBQ=PXL"C5V0BX`8`0``B47TC47TB00DZ$;F__^)'"3'1"0(4-L$",=$ -XM)`1D````B40D#.C:Y?__B5PD"`^_1AC'!"2!V@0(B40D!.@RY___BUWXBW7\ -XMB>Q=PXUT)@!5B>564X/$@(M%#(M="(MP"(M##(7`#X2J````H>#_!`B%P`^( -XM^P```(L#BX`8`0``B47TC47TB00DZ,7E__^+%9`0!0B)P8L#*Y`8`0``@?I_ -XM40$`?EF!^G\Z"0`/CYT```"+%>#_!`BX+=L$"(72='Z-79")3"0,B40D",=$ -XM)`1D````B1PDZ"?E__^)7"0(#[]&&,<$)(':!`B)1"0$Z'_F__^#[(!;7EW# -XMC70F`(L=X/\$"+@=VP0(A=MUL[@EVP0(ZZS'1"0(B-H$"`^_1AC'!"2!V@0( -XMB40D!.A"YO__@^R`6UY=PXVT)@````"X--L$".EX____C;8`````C5V0B4PD -XM#,=$)`@[VP0(QT0D!&0```")'"3HE>3__^EI____QP0D!````.ADYO__@#@` -XM#Y7`#[;`H^#_!`CIYO[__XVV`````(V\)P````!5B>53@^P4BT4,BU@(BT4( -XMBP"+0$2#^/]T-L=$)`0`(```B00DZ+KF__^%P'0BB40D"`^_0QC'!"2!V@0( -XMB40D!.B.Y?__@\046UW#C70F`,=$)`BFV@0(#[]#&,<$)(':!`B)1"0$Z&CE -XM__^#Q!1;7<.-M"8`````C;PG`````%6)Y8/L*(M%#(M5"(E=](EU^(E]_(M8 -XM"(L"BT!$@_C_#X2,````QT0D!``@``")!"3H+N;__X7`B47P='6+=?"X`P`` -XM`+\Q=PXGVBW7PN`,```"_1]L$"(G!\Z8/A6+____I -XM6?___XUT)@!5B>6#[`C'1"0$`````(M%"(L`BX",````B00DZ$/D__^)10C) -XMZ:KE__^-M@````!5B>53@^P4BT4,BU@(BT4(QT0D!`````"+`(N`C````(D$ -XM).@,Y/__B40D"`^_0QC'!"2!V@0(B40D!.CDX___@\046UW#C78`C;PG```` -XM`%6)Y8/L",=$)`0`````BT4(BP"+@(@```")!"3HP^/__XE%",GI*N7__XVV -XM`````%6)Y5.#[!2+10R+6`B+10C'1"0$`````(L`BX"(````B00DZ(SC__^) -XM1"0(#[]#&,<$)(':!`B)1"0$Z&3C__^#Q!1;7<.-=@"-O"<`````58GE@^P( -XMQT0D!`````"+10B+`(N`E````(D$).BSX?__B44(R>FJY/__C;8`````58GE -XM4X/L%(M%#(M8"(M%",=$)`0`````BP"+@)0```")!"3H?.'__XE$)`@/OT,8 -XMQP0D@=H$"(E$)`3HY.+__X/$%%M=PXUV`(V\)P````!5B>53@^P4BQT```4( -XMA=MT'8M+!(G:@#D`=`WK'F+`L8`"H/``8D"@\046UW#H300!0C'!"0@```` -XMB40D!.C=W___BQOKC8E,)`3'!"3+W`0(Z,GA___I1O___SM"&`^-8____XE4 -XM)`3'!"0@````Z&OB__^+&^E8____H300!0C'!"0*````B40D!.B/W___@\04 -XM6UW#B50D!,<$)`H```#H.>+__^G._O__58GE5U93@^P+__XT$A0$```")!"3H"N+__X7`B47L -XM#X2<`@``QT0D"%@```"+0P2)1"0$BT7LB00DZ(7>__^+0PC'1?``````AS'!"28V@0(B40D"(E4)`R) -XM1"0$Z';@__^+3>R)#"3HJ^'__XM-\(7)#X0Q____BT7PB44(@\0<6UY?7>F. -XMX?__BQ6H$`4(A=)U?HM%\(7`=!.+3?#'!"13VP0(B4PD!.@JX/__BT7LQP0D -XMR]P$"(E$)`3H%^#__^N?D(L#QP0DR]P$"`5O`0``B40D!.C]W___H8P0!0B% -XMP`^$P?[__XL#@[@$`@```0^.LO[__P4Z`0``B44,QT4(NMH$"(/$'%M>7UWI -XMQM___P^_7QB)V"L%G!`%"`'0ALDBQ4T$`4(#[[YBT((@^@!A<")0@AX0XL"B?F("(/``8D"@\8!@^L! -XM#XAM_O__#[9._X3)#X1A_O__BSW8`P4(A?]TO:$T$`4(B40D!`^^P8D$).BY -XMW/__Z\@[0AA\!8#Y"G6SB50D!(D\).AAW___Z[`[0AA\#(#Y"HUV``^%"?__ -XM_XE4)`2)/"3H0M___^D#____H300!0C'!"0@````B40D!.AHW/__Z4O____' -XM1"0$G=8$",<$)`$```#H']W__SM"&`^-)/___XE4)`3'!"0@````Z/;>___I -XM&?___XVV`````(V\)P````!5B>575E.#[!R+70B+=0R+0P2+?@B)!"3HA]__ -XM_XT$A0$```")!"3H^-[__X7`B47P#X0!`0``QT0D"%@```"+0P2)1"0$BT7P -XMB00DZ'/;__^+!H7`=#$/OT<8BU7PQP0DF-H$"(E$)`B)5"0,B40D!.BNW?__ -XMBTWPB4T(@\0<6UY?7>GLDBQ4T$`4(#[[YBT((@^@!A<")0@AX.XL"B?F("(/` -XM`8D"@\,!@^X!>)L/MDO_A,ETDXL]V`,%"(7_=,6A-!`%"(E$)`0/OL&)!"3H -XM(]O__^O0.T(8?`J`^0J0C70F`'6VB50D!(D\).C&W?__Z[.+5?#'!"3+W`0( -XMB50D!.CQW/__Z3[____'1"0$G=8$",<$)`$```#HJ-O__Y"0D)!5B>6)4`R+ -XM50A=QT`$`````,<``````(E("(E0$,=`%`````##C70F`(V\)P````"A7!`% -XM"%6)Y5:+50B#^`*+=0Q3="N#Z`%T2(L*BQ:+642+0D0YPW5JBT(H.4$H=$`/ -XMG<`/MM"-5!+_6XG07EW#W480W4(0V=BZZ____ -XM_Y#KV(M"&#E&&'7&ZZZ-="8`BX((`@``,=(Y@0@"``!UL.NXW=C=V.N2N@$` -XM``"-=@#KJ(/[_[K_____=)Z#^/^Z`0```'24.<,9TH/*`>N+D%6)Y593@^P0 -XMBQT```4(A=MT*8M%"(LPZPV-M"8`````BQN%VW05BT,(BP")="0$B00DZ*W; -XM__^%P'7E@\00B=A;7EW#C;8`````C;\`````58GE@^P8H3@0!0C'1"04L-L$ -XM",=$)!!\W00(QT0D#,#=!`C'1"0(X-T$",=$)`2_VP0(B00DZ-G8___'!"0! -XM````Z$W<__^)]HV\)P````!5B>575HG64X'L'`0``(F%[/O__P^V`H3`#X2N -XM`0``D`^^V(E<)`3'!"3,VP0(Z$':__^%P'0,@\8!#[8&A,!UWS';B5PD!(V= -XM]/O__\<$)-';!`CH&]K__X7`='C&`P"+E>S[__^-A?3[__^)1"0$B10D_U(, -XMZQH/OMB)7"0$QP0DS-L$".CIV?__AVZ43___^+A>S[ -XM__^)="0$B00D_U`,#[8&A,`/A5C^___IT/[__XN5[/O__XV%]/O__XE$)`2) -XM%"3_4@P/M@:$P`^%,O[__^FJ_O__C;8`````C;PG`````%6)Y5.)RX/L%(L- -XMJ!`%"(E,)`B+$HE4)`2+%6`0!0B)%"3_T(M5"(E<)`2)5"0(B00DZ"G<__^# -XMQ!1;7<.-=@!5B>53B<.#[`3'0`0`````QT`(`````,<``````(M`%(7`=`B) -XM!"3H*-K__\=##`````#'0Q``````QT,4`````(/$!%M=PXGVC;PG`````%6) -XMY8/L&(E=^(G#B77\BT`$@\`!C30`B?`/KT,(B40D!(M#%(D$).A8U___A575E.!['P,``"+70S&A93W__\`QH64 -XM\___``^V`SPO#X1(`@``/&,/A!("``"-A93[__^_%]P$",=$)`@`!```QT0D -XM!!'N0,```#SIKX$W`0(C7V4#Y?"#Y+`.,(/ -XMA"W^___IQ/W__XUT)@"%VW26# -XM["B)7?2+70R)=?B+=0B)??R`.P!U)L<$)$C>!`CHCM/__S'`QP5T$`4(`0`` -XM`(M=](MU^(M]_(GL7<.0Z*_3___'``````"-1?#'1"0("@```(E$)`2)'"3H -XM@M/__XG'BT7P@#@`=$6)7"0(BT80QP0DKMP$"(E$)`3H,=/__^ALT___QP`B -XM````Z&'3__^#.")T:(L6.U8$?7*+1A2)/)"-0@&)!K@!````ZX&%_WBW.<-T -XMLXVT)@````#H+]/__XL0A=)U"('_GX8!`'Z[B5PD"(M&$,<$)+W6#[#B)=?B+=0R)??R+?0B)7?2`/@!T)HDT).AR -XMU/__@_@0=DF)="0(BT<0QP0D:MP$"(E$)`3H5M+__^L3BT<0QP0D3-P$"(E$ -XM)`3H0=+__\<%=!`%"`$````QP(M=](MU^(M]_(GL7<.-="8`Z%_2___'```` -XM``"-1?#'1"0("@```(E$)`2)-"3HPM'__XG#Z#O2__^+"(7)=0B+1?"`.`!T -XM/,=%X.')^.AQ^?__BP_KX(D<).AYT/__QT7@SMP$"(7`B<-UQ.NTBT7@B70D -XM#(E$)`B+1Q#'!"3GW`0(B40D!.A\T?__Z3;___^-=@"-3"0$@^3P_W'\58GE -XM5U9348'L"`L``(L!BTD$QT0D!,[;!`C'!"0`````B844]?__B8T0]?__Z.C2 -XM___'!"20$`4(Z#S/___'!"3UW`0(Z'#/__^%P'0)@#@`#X6U"P``C5WDB5PD -XM",=$)`1H=`A`QP0D`0```.CHS___@\`!#X3/#0``#[=%YF:%P`^%E0(``,<% -XMJ!`%"$\```"#O13U__\!#XXG`0``BY40]?__BXT0]?__B[T0]?__@\($B948 -XM]?__BTD(B8T<]?__BW<$#[8^B?B$P'0UB?*0C70F``^^P(G3B40D!,<$)&S> -XM!`CH']#__X7`=`J`>`$Z#X2$"@``#[9#`8U3`83`==(QVXDT).A%+/7__P`` -XM``#'A3#U__\`````QX5`]?__`````,>%1/7__P````#'A4SU__\`````QX4D -XM]?__(=T$",>%2/7_______^)]HN5$/7__XN-%/7__\=$)`ALW@0(B50D!(D, -XM).A$SO__@_C_#X1@`P``@^A!/#=V%^@K\___Z\D/M\"#Z`&CJ!`%".EE_?__ -XM#[;`_R2%O-X$"(.%0/7__P''A2SU__\!````QX5(]?__`0```.N2QP0D```` -XM`.@JSO__A<"CW`,%"`^$8PP``(L5W`,%"(V%5/___^@8\___@X5`]?__`<>% -XM3/7__P$```#I4O___\=$)`0`````QP0DP``%".A>U/__QP5<$`4(`@```,8% -XMP``%"`#'A3#U__\!````Z1[___^%VP^$3@@``,<%J!`%"`````"#PP'I!/__ -XM_\=$)`0`````QP0D``$%".@0U/__QP5<$`4(`0```,8%``$%"`#'A3#U__\! -XM````Z=#^___'!5P0!0@"````Z<'^__^+%=P#!0B-19SH8_+__X.%0/7__P'I -XMI_[__Z'<`P4(QT0D!`$```")!"3HLM/__\>%,/7__P$```#I@_[__\<%7!`% -XM"`$```#I=/[__\=$)`0`````QP0D8``%".B`T___Q@5@``4(`,>%,/7__P$` -XM``#I2O[__\=$)`0`````QP0D(``%".A6T___Q@4@``4(`,>%,/7__P$```#I -XM(/[__P^W1>3'A43U__\6````9H/X!0^&"/[__P^WP(F%1/7__^GZ_?__Z$G. -XM__^%P`^%T@@``,<%6!`%"`$```#IWOW__\<%;!`%"`$```#IS_W__\<%E!`% -XM"`$```#IP/W__X.%0/7__P''A2SU__\!````Z:K]___'1"0$`````,<$)#\! -XM!0CHMM+__\8%/P$%"`#IBOW__\>%2/7__P````#I>_W__XL5W`,%"(V%//__ -XM_^@:\?__@X5`]?__`<>%3/7__P$```#I5/W__\<%F!`%"`$```#I1?W__\=$ -XM)`0!````QP0DGP`%".A1TO__H=P#!0C'1"0$`0```(D$).@\TO__QT0D!`$` -XM``#'!"2C``4(Z"C2___&!:,`!0@`Q@6?``4(`,>%,/7__P$```#IZ_S__Z'< -XM`P4(B84D]?__Z=O\__^+/=P#!0B)O2CU___IROS__^A5T?__QP0D`````.BM -XMS/__QP6,$`4($````.FJ_/__BQ7<`P4(C47,Z$SP__^#A4#U__\!QX5,]?__ -XM`0```.F&_/__QP6@$`4(`0```.EW_/__H3P0!0B+O1#U__^#/6P0!0@!C02' -XMB84(]?__#X07"```BX4(]?__BQB%VW1/#[8#@_A_#X=5"P``]@2%%00%"`2+ -XMM0CU__]U(NE`"P``#[8#@_A_#XR)1"0,H6`0!0C'1>S_____B50D"(E, -XM)`2)!"3HU,O__X7`B84@]?__#X21`P``BT7L@_@`#XPW!0``#XZ*`P``:\`< -XMB00DZ,G*__^%P*-D$`4(#X0[`P``BT7LB84T]?__@^@!#XA@`P``QX4\]?__ -XM`````,>%7/7__P````")]HM=G(7;?AZ+E2#U__\QP(M**(M5L#L,@@^$6@$` -XM`(/``3G8=?"+A4CU__^%P'4=BXT@]?__@WE$_P^$$0$``/:!*`$```(/A`0! -XM``"+A4#U__^%P`^$'@$``(M=S(7;?B&+O2#U__\QP(M5X(N/E````#D,@@^$ -XM_0```(/``3G8=?"+7;2%VWX>BX4@]?__BU7(BT@P,<`Y#((/A-@```"#P`$Y -XMV'7PBUV$A=M^(HN5(/7__S'`BXJ,````BU68D#L,@@^$KP```(/``3G8=?"+ -XMG6S___^%VWX>B[T@]?__,<"+58"+3S@[#((/A(<```"#P`$YV'7PBYU4____ -XMA=M^'8N%(/7__XN5:/___XM(1#'`.0R"=&"#P`$YV'7TBYT\____A=M^)XN5 -XM(/7__S'`BXJ(````BY50____.PR"=#:#P`$YV'7TC;0F`````(.%7/7__P&+ -XMC33U__\YC5SU__\/A.L!``"!A2#U__\``P``Z8C^__]KO3SU__\[__XD$).BYQ?__B4<$BU\$A=L/A.H```"+#6P0!0B%R0^%F````,=' -XM"`````")]HLU```%"(7V=0SK0HUT)@"+-H7V=#B+7@CV0PP(C78`=.Z)/"3_ -XM4Q0/MU,8B<$/O\(YP7X&B%0/7__P````#I -XMG?K__XET)`2)/"3H2,;__^EQ]/__H6`0!0B)!"3H9L3__\=$)`3+W`0(QP0D -XM`0```(E$)`CH3L/__\<$)`0```#H%0/7__P````#IN_?__SM"&`^-7/___XE4)`3'!"0@````Z'G" -XM___I4?___Z'8`P4(A<`/A10!``"+%300!0B+0@B#Z`&%P(E""`^(<@$``(L" -XMQ@`*@\`!B0*+A43U__^%P'09BY4,]?__.94X]?__#X3Q````@X4X]?__`8/' -XM`8/&'#N]//7__P^%N?[__XU%S.@UZ/__C46C__XU%A.@= -XMZ/__C85L____Z!+H__^-A53____H!^C__XV%//___^C\Y___H:00!0B)!"3H -XM\\'__XV";P$``(E$)`B-1P3'1"0$6-T$"(D$).C&P?__Z6OY__^)P8M%L(/) -XM`8L0QX5`]?__`````.FQ]O__B<&+18"#R0.+$,>%0/7__P````#IF/;__XG! -XMBX5H____@\D$BQ#'A4#U__\`````Z7SV__^A-!`%",<$)`H```")1"0$Z'Z^ -XM___I\_[__XL=V`,%"(7;#X6_````BQ4T$`4(BT((@^@!A<")0@@/B),```"+ -XM`L8`"H/``8D"Z''=___'A3CU__\`````Z=/^__^)7"0(QT0D!,O]___I2/___Y"0D)"0D)"0D)"0D)"058GE5U:#[#"+11"+512+=0B+ -XM?0R)1>R)P8E5Z(M%Z,=%T`````#'1=0`````B?J)=>2%P(EU\(E]X'44.?EV -XM8(GP]_&)5=#'1=0`````ZQ"+3>`Y3>AV&(EUT(E]U(GVBT70BU74@\0P7E]= -XMPXUV``^]1>B#\!^)1=AU1HM%Z#E%X`^'R0```(M-[#E-Y`^#O0```(M-\(E5 -XMU(E-T.O!D(M%[(7`=0RX`0```#'2]W7LB<&+1>"+5>CW\8M%Y/?QZX*X(``` -XM`(M5["M%V(MU[(M]Y(G!B47@/MDW8T^`)PHM%Y-/F#[9-W(E5](M5 -XMX-/H#[9-V-/B"="+5>#3YP^V3=S3ZO=U](E5S/?F.57,575H/L((M% -XM$(M5%,=%X`````"+=0S'1>0`````B47TB<&+10B%THG7B47L=2,Y\0^&F``` -XM`(GR]_&)P3'`B4W@B47DBT7@BU7D@\0@7E]=PSGR#X>U````#[W"@_`?B47H -XM#X26````N"````"+5?0K1>B)P=/J#[9-Z(E%\(GXBWWTT^`)PHM%[-/G#[9- -XM\(E5W(GRT^@/MDWHT^(/MDWP"=#3[HGR]W7P/MDWHT^`YQG:'BTW8,<"#Z0'I^O[_ -XM_Y"0D)"0D)"0D)!5B>53@^P$H90"!0B#^/]T$C';_]"+@Y`"!0B#ZP2#^/]U -XM\(/$!%M=PY"0D(/L#.@\O___@\0,PR1&@!64UH`>'-T870`6%-4050```!N;R!V86QI9"!K97EW -XM;W)DF5R;RUL96YG=&@I("5S(&YA;64`)7,@;F%M92!T;V\@ -XM;&]N9SH@)7,`3F\@)7,@;F%M960@)R5S)P!.;R`E`````4```"C -XMV@0(`````)C7!`AAV00(``````````#@I`0(``````@```!H````!0```*/: -XM!`@`````2-<$"&G9!`@``````````."D!`@`````"````%@````%````H]H$ -XM"`````!QV00(=-D$"``````0````X*0$"``````#````!`$```4```#,V@0( -XM``````?8!`@-V`0(``````8```"@JP0(``````<````````````````````` -XM````$]H$",[;!`AWV00(```````````````````````````````````````` -XM``!WV00(&=H$"```````````0*$$"``````$```````````````````````` -XM`'W9!`B#V00(``````````#@I`0(``````4```"8````!0```/W:!`@````` -XMB=D$"(_9!`@``````````."D!`@`````!0```)`````%````_=H$"`````"5 -XMV00(FMD$"```````````,*8$"``````$`````````````````````````)_9 -XM!`BEV00(``````(```#@H@0(`````!,`````````````````````````>]<$ -XM"*O9!`@`````!````("I!`@`````"0````````````````````````"PV00( -XMMMD$"```````````X*0$"``````$````-`````4```#,V@0(`````+S9!`C! -XMV00(``````````#@I`0(``````4````\````!0```,S:!`@`````QMD$",O9 -XM!`@``````````."D!`@`````!````.P````)````D-H$"`````#0V00(T]D$ -XM"```````````<*T$"``````$`````````````````````````!SBPE8W!U+"5M -XM96TL8V]M;6%N9`!L86)E;`!P:60L='0LI($"(J2!`B:D@0( -XMJI($"+J2!`C*D@0(VI($".J2!`CZD@0("I,$"!J3!`@JDP0(.I,$"$J3!`A: -XMDP0(:I,$"'J3!`B*DP0(FI,$"*J3!`BZDP0(RI,$"-J3!`CJDP0(^I,$"`J4 -XM!`@:E`0(*I0$"#J4!`A*E`0(6I0$"&J4!`AZE`0(BI0$")J4!`BJE`0(NI0$ -XM"``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

7=O6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G1E>'0`+F9I;FD`+G)O -XM9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]Fvi.uu << 'END-of-vi.uu' -Xbegin 755 vi -XM?T5,1@$!`0D```````````(``P`!````X*0$"#0````8IP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(@(\$ -XM`("/!``%`````!````$`````D`0``!`)"``0"0B$!```@!$```8`````$``` -XM`@```%"1!`!0$0D(4!$)"-````#0````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1LCP0`;`\)"&P/"0@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*@````Q```````````````W`````````&<```!4```` -XMH@````````"(`````````'<```"9````3@```&X````_``````````````"0 -XM````@@``````````````I0```*<```"/`````````(````!6````G0```)$` -XM``"*`````````)L```!2``````````4`````````F````&$````T````>@`` -XM``````"+````G````)X````-`````````'\``````````````'D````````` -XM)P```$,````8````:@````````!T````H0````````"$`````````$P````X -XM````H``````````?````E0```#``````````8P`````````6`````````#T` -XM``!F````E@``````````````EP```!$```!:``````````````!B````@P`` -XM`($```!7````7````)0`````````%P```'4````N````?0````````!H```` -XM`````(P``````````````'````"'````F@```*0```!)````<@```*8````` -XM````4`````````!8````>P```)(`````````HP```````````````````)\` -XM```\````;P```%4```!^`````````(D```!?````60```(4````Z```````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````0```````````````````!(````` -XM````````````````````!`````(````````````````````.````#``````` -XM```5`````````!0````(````````````````````````````````````*0`` -XM````````````(P````D``````````````"H````E````+P`````````````` -XM"@`````````````````````````L```````````````<```````````````9 -XM`````````"@````D`````````$(``````````P`````````V`````````$H` -XM```Y````,P`````````;`````````$$````````````````````+````-0`` -XM`````````````````!T````0````&@````\````'````70`````````````` -XM`````#X```!$`````````!X````A````:0``````````````(````&0````` -XM````````````````````$P````````!1````````````````````10```$\` -XM```R````!@```#L``````````````&P```!(`````````$<````````````` -XM`',```!`````````````````````6P````````!@````)@```(T```!+```` -XM`````%X```!Q`````````'P```!-````C@```'@```!M`````````"(```"& -XM`````````&L```!&`````````%,````M````DP```'8````K````90`````` -XM``````````````````!\!````````,8````2````VP$````````R`@``$@`` -XM`*P"````````-````!(```!3!````````#,````2````N@(```````!#```` -XM$@```!($````````5@$``!(````]!``````````````2````K@,````````R -XM````$@```#8$````````H0```!(```!0`0```````'(#```2````+P$````` -XM``""`0``$@```+\"`````````````!(```"C`0```````&L!```2````R`$` -XM``````#]"```$@```!$```!0$0D(`````!$`\?^T`@`````````````2```` -XM.0(`````````````$@```!H`````````U`,``!(```"1!``````````````2 -XM````-P0```````"A````$@```/\"`````````````!(```!/`P```````%H` -XM```2````50(```````!7````$@```$(!````````.0```!(````P!``````` -XM```````2````!@(```````!J````$@```"``````````30```!(````G```` -XM`````/8#```2````>P0```````":````$@```"0$`````````````!(````O -XM`````````!D````2````XP$```````#!````$@```/,!`````````````!(` -XM``">`P```````%T````2````2@$`````````````$@```&X!````````3P`` -XM`!(```",`P````````4````2````S`(`````````````$@```.`#```````` -XM3@4``!(````5`P```````-T#```2````:@(```````#8````$@```#<```"@ -XMFP0(`````!(`"@`@`@```````.H````2````=P(`````````````$@```%X# -XM`````````````!(```#M`@`````````````2````S@$```````"2`0``$@`` -XM`)`0```````#,````2````3``` -XM``````"2````$@```'$#``"@%`D(!````!$`%P!5`````````"0````2```` -XM*@(````````5`@``$@```'X#````````90(``!(```"/`@`````````````2 -XM````,`,````````T````$@```-,"````$`D(!````!$`$`!:`````````-T` -XM```2````9`````````!"````$@```&L`````````;@```!(```!U```````` -XM`-P#```2````0P0`````````````$@```*<"`````````````!(```"X`P`` -XM`````%(7```2````&0(``*04"0@$````$0`7`,`#````````*P```!(````^ -XM`P```````,T````2````?`(``*@4"0A4#```$0`7`(4#`````````````!(` -XM``#/`P```````,P````2````90(```````"A````$@```'L`````````)``` -XM`!(```"0`0```````#````!(```";````'(H("``````2 -XM``T`,0$```````"8````$@```-<#````````'0```!(```"7!````````.T` -XM```2````.`$```0A"0@$````$0`7`*H!`````````````!(````\!``````` -XM`+$````2````&P0````````D````$@```#0"`````````````!(````=`P`` -XM""$)"`0````1`!<`8@$````````E````$@```'\!`````````````!(```"A -XM`````````#D````2````7P0`````````````$@```%@$````````8@```!(` -XM``"6`P```````,L````2````@00`````````````$@```*L````,(0D(!``` -XM`!$`%P!L!````````/H````2````8`0```````!#````$@```*$$```````` -XM`````!(````+`@```````,,````2````KP0``(04"0@`````$`#Q_Z<$```` -XM````/0```!(````2`@```````#,````2````U`$`````````````$@```+(` -XM```T$@D(`````!$`\?_M`P```````($````2````P@0``(`A"0@`````$`#Q -XM_P@$````````8@,``!(```"K`0`````````````2````R`````````!T```` -XM$@```$`"````````80```!(```"G`P````````,!```2````Z0$``!`A"0@$ -XM````$0`7`&\$````````DP```!(```#%`@``%"$)"`0````1`!<`^`$````` -XM````````$@```,T`````````H@```!(```"Q`0```````$4````2````5@,` -XM``````#*#```$@````$$````````*P```!(```#6````&"$)"`0````1`!<` -XM7P(`````````````$@```,$!`````````````!(```#=`````````+4````2 -XM````YP`````````%`0``$@```#("````````[````!(```!E!``````````` -XM```2````(P0`````````````$@```'0!S971V8G5F`&5X96-L`%]?7-T96T`9F5O9@!M86QL;V,`:7-A='1Y`&]P=&%R9P!V&5C -XM`&]P96YD:7(`6YA;64`9V5T<'=U:60`9V5T8W=D`&9G971C -XM`&=E=&AO&ET`'-E=&QO8V%L90!R96=E&ET`'-T@<` -XM``(`QP0```````"@%`D(!3P``*04"0@%2@``J!0)"`5-``#\(`D(!6(````A -XM"0@%9P``!"$)"`5Q```((0D(!78```PA"0@%?@``$"$)"`6/```4(0D(!9$` -XM`!@A"0@%EP``'"$)"`6C``!`$@D(!P$``$02"0@'`@``2!()"`<#``!,$@D( -XM!P0``%`2"0@'!0``5!()"`<&``!8$@D(!P<``%P2"0@'"```8!()"`<)``!D -XM$@D(!PH``&@2"0@'"P``;!()"`<,``!P$@D(!PT``'02"0@'#@``>!()"`<0 -XM``!\$@D(!Q$``(`2"0@'$@``A!()"`<3``"($@D(!Q0``(P2"0@'%0``D!() -XM"`<6``"4$@D(!Q<``)@2"0@'&```G!()"`<9``"@$@D(!QH``*02"0@'&P`` -XMJ!()"`<<``"L$@D(!QT``+`2"0@''@``M!()"````[!,)"`=Y``#P$PD(!WH``/03"0@'>P``^!,) -XM"`=\``#\$PD(!WT````4"0@'?P``!!0)"`>````(%`D(!X$```P4"0@'@@`` -XM$!0)"`>$```4%`D(!X4``!@4"0@'A@``'!0)"`>(```@%`D(!XH``"04"0@' -XMBP``*!0)"`>,```L%`D(!XT``#`4"0@'C@``-!0)"`>0```X%`D(!Y(``#P4 -XM"0@'DP``0!0)"`>4``!$%`D(!Y4``$@4"0@'E@``3!0)"`>8``!0%`D(!YD` -XM`%04"0@'F@``6!0)"`>;``!<%`D(!YP``&`4"0@'G0``9!0)"`>>``!H%`D( -XM!Y\``&P4"0@'H```A``!T%`D(!Z(``'@4"0@'I0``?!0)"`>F``"` -XM%`D(!Z<``(/L#.@("@``Z$/N`P"#Q`S#````_S4X$@D(_R4\$@D(`````/\E -XM0!()"&@`````Z>#_____)402"0AH"````.G0_____R5($@D(:!````#IP/__ -XM__\E3!()"&@8````Z;#_____)5`2"0AH(````.F@_____R54$@D(:"@```#I -XMD/____\E6!()"&@P````Z8#_____)5P2"0AH.````.EP_____R5@$@D(:$`` -XM``#I8/____\E9!()"&A(````Z5#_____)6@2"0AH4````.E`_____R5L$@D( -XM:%@```#I,/____\E`2"0AH0`$``.E@_?___R7D$@D(:$@!``#I4/W___\EZ!() -XM"&A0`0``Z4#]____)>P2"0AH6`$``.DP_?___R7P$@D(:&`!``#I(/W___\E -XM]!()"&AH`0``Z1#]____)?@2"0AH<`$``.D`_?___R7\$@D(:'@!``#I\/S_ -XM__\E`!,)"&B``0``Z>#\____)003"0AHB`$``.G0_/___R4($PD(:)`!``#I -XMP/S___\E#!,)"&B8`0``Z;#\____)1`3"0AHH`$``.F@_/___R44$PD(:*@! -XM``#ID/S___\E&!,)"&BP`0``Z8#\____)1P3"0AHN`$``.EP_/___R4@$PD( -XM:,`!``#I8/S___\E)!,)"&C(`0``Z5#\____)2@3"0AHT`$``.E`_/___R4L -XM$PD(:-@!``#I,/S___\E,!,)"&C@`0``Z2#\____)303"0AHZ`$``.D0_/__ -XM_R4X$PD(:/`!``#I`/S___\E/!,)"&CX`0``Z?#[____)4`3"0AH``(``.G@ -XM^____R5$$PD(:`@"``#IT/O___\E2!,)"&@0`@``Z<#[____)4P3"0AH&`(` -XM`.FP^____R50$PD(:"`"``#IH/O___\E5!,)"&@H`@``Z9#[____)5@3"0AH -XM,`(``.F`^____R5<$PD(:#@"``#I!,)"&AP`@``Z0#[ -XM____)7P3"0AH>`(``.GP^O___R6`$PD(:(`"``#IX/K___\EA!,)"&B(`@`` -XMZ=#Z____)8@3"0AHD`(``.G`^O___R6,$PD(:)@"``#IL/K___\ED!,)"&B@ -XM`@``Z:#Z____)903"0AHJ`(``.F0^O___R68$PD(:+`"``#I@/K___\EG!,) -XM"&BX`@``Z7#Z____):`3"0AHP`(``.E@^O___R6D$PD(:,@"``#I4/K___\E -XMJ!,)"&C0`@``Z4#Z____):P3"0AHV`(``.DP^O___R6P$PD(:.`"``#I(/K_ -XM__\EM!,)"&CH`@``Z1#Z____);@3"0AH\`(``.D`^O___R6\$PD(:/@"``#I -XM\/G___\EP!,)"&@``P``Z>#Y____)<03"0AH"`,``.G0^?___R7($PD(:!`# -XM``#IP/G___\ES!,)"&@8`P``Z;#Y____)=`3"0AH(`,``.F@^?___R74$PD( -XM:"@#``#ID/G___\EV!,)"&@P`P``Z8#Y____)=P3"0AH.`,``.EP^?___R7@ -XM$PD(:$`#``#I8/G___\EY!,)"&A(`P``Z5#Y____)>@3"0AH4`,``.E`^?__ -XM_R7L$PD(:%@#``#I,/G___\E\!,)"&A@`P``Z2#Y____)?03"0AH:`,``.D0 -XM^?___R7X$PD(:'`#``#I`/G___\E_!,)"&AX`P``Z?#X____)0`4"0AH@`,` -XM`.G@^/___R4$%`D(:(@#``#IT/C___\E"!0)"&B0`P``Z<#X____)0P4"0AH -XMF`,``.FP^/___R40%`D(:*`#``#IH/C___\E%!0)"&BH`P``Z9#X____)1@4 -XM"0AHL`,``.F`^/___R4<%`D(:+@#``#I#V__\```````````````!5B>564X/L$(/D -XM\(M=!(G1C72=#(7;B35H(0D(?C:+10B%P'0OHP`0"0@/MA"$TG0C@\`!ZPH/ -XMMA"#P`&$TG04@/HO=?&C`!`)"`^V$(/``832=>RX4!$)"(7`=#2)#"3HG_[_ -XM_\<$)!R*"`CHD_[__^A*]O__C44(B70D"(E$)`2)'"3H5P\``(D$).AC_?__ -XMZ'[X___KS9"0D)"0D)"058GE@^P(@#T@(0D(`'0,ZQR#P`2C"!`)"/_2H0@0 -XM"0B+$(72=>O&!2`A"0@!R<.058GE@^P(H3`2"0B%P'02N`````"%P'0)QP0D -XM,!()"/_0R<.0D)"0D)"0D)"0D)"0H0PA"0BZ_____U6)Y8M-#(7`=`,/OQ") -XM$:$,(0D(NO____^%P'0$#[]0`HM%$(D0BT4(BT!(*0$QP%W#C70F`%6)Y8M% -XM"(M5#(M-%(M`$(/Z`8M`)'0Y6#[!BA$"$)",=$)`B`````QT0D!`$```#' -XM!"2,B@@(B40D#.AI^___R<.-=@!5B>6#[!B+10B)7?2)=?B)??R+0!"+4"2) -XM5?"+<%R+11"%P'0;BYH0`@``]L,$=46+7?0QP(MU^(M]_(GL7<.0BTWPBX$0 -XM`@``J`)TXX/@_8F!$`(``(ET)`3'!"0UBP@(Z,[Y__^A!"$)"(D$).CA]___ -XMZ[NX!0```+\OBP@(_(G!\Z9UJHM%\(/+`HF8$`(``(M5#(E4)`3KOY"-="8` -XM53'2B>6#[`B+10B+0!"+0"2+B*0!``"%R74@*A -XM'"$)"(D4),=$)`@`````@^@!B40D!.@(^?__H0PA"0B)!"3H6_;__Z$,(0D( -XMQT0D!`````")!"3H)O?__\=$)`@`````QT0D!`````")-"3H*O[__^BY]/__ -XMC8,$`0``B40D",=$)`01````QP0D`````.A+^?__QT0D!!(```#'!"0````` -XMZ-?S__^+@Z0!``"%P'0Y@Z,0`@``YS'2BUWTB="+=?B+??R)[%W#D(U%Q(E$ -XM)`C'1"0$$0```,<$)`````#H^?C__S'2Z]&0QT0D"`$```"+1B"+0`B)-"2) -XM1"0$Z);]__^A#"$)",=$)`0!````B00DZ&7V__^+1<")?"0(B40D!*$,(0D( -XMB00DZ`WX___'1"0$`0```(DT).CY_?__C47PB40D$,=$)`P`````QT0D"``` -XM``#'1"0$`0```(DT).AB(0``N@$```"%P`^%1?___XM=\(7;#X1R_O__BT80 -XM,-*+0"2!B!`"`````0``Z2/___^-=@"-1<2)1"0$QP0D`````.AA\O__C8,$ -XM`0``B40D",=$)`01````QP0D`````.@3^/__Z0'^__^-=@"-O"<`````58GE -XM@^PHB5WTBUT(B77XBW40B7W\BWT,B70D"(GX`T-(B40D!*$,(0D(B00DZ#+W -XM__\QTH/``70/BUWTB="+=?B+??R)[%W#BT-(B70D$(E\)`S'1"0($(L("(E$ -XM)!3'1"0$`P```(D<).@1H@``N@$```#KPXUV`(V\)P````!5B>6#[`BA#"$) -XM",=$)`0!````B00DZ!GU___)@\`!#Y3`#[;`PXUV`(V\)P````!5B>6#["B+ -XM50B)7?2)=?B)??SV@JP$```0BT(0#X64````@\`(.0(/A,,```"+#0PA"0B_ -XM_____[[_____A0(/OS&+0D"+6DB+4C0YT`^#B`````'8QT0D"``` -XM``")1"0$B0PDZ$7V__^#P`%T+:$,(0D(QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!/____^)!"3HT_C__Z$,(0D(B7PD"(ET)`2)!"3H_O7__Z$,(0D( -XMQT0D!/____^)!"3H.?3__XM=](MU^(M]_(/``0^4P(GL70^VP,.-0O_I`" -XM`T(0BT`XA<`/E<"$P'7___S'`R<.)]HV\)P````!5B>6#[`B+10B+0!"+0"0%!`$``(D$).A8 -XM]/__/98```!T378Q/2P!``"-M@````!T/G9,/5@"``"-M"8`````="X]L`0` -XM`'4^BT4,QP"P!```,<#)PX/X2W05=C>#^&YT#CV&````=1Z-M"8`````BT4, -XMQP!8`@``,<#)PXUV`#W(````=.F+10S'`(`E```QP,G#@_@R=>[KU9"-="8` -XM58GE4X/L%(M-"(M5#(M!$(72BU@D=5F+51"%T@^%S@```(N##`(``(7`#X20 -XM````BX.@`0``QX,,`@```````(7`#X0[`0``QT0D"(#*!`C'1"0$`0```(D$ -XM).AD\O__H00A"0B)!"3HI_'__^M1D(/J`70+Z+KP__^-M@````#V@:P$```1 -XM=$R+DY@!``"X`0```(72=%*+11"%P`^$E````,=$)`B`R@0(QT0D!`$```") -XM%"3H"?+__Y"-="8`H00A"0B)!"3H1_'__X/$%#'`6UW#BT40A?KB(GV58GE4X/L -XM%(M%"(M5#(M`$(72BU@D=#"#Z@%T!>BC[O__BX.0`0``A<`/A'(!``#'1"0( -XM@,H$",=$)`0!````B00DZ`WP__^+@X@!``"%P'1GH:`4"0B%P'5'BQ4$(0D( -XMBT((@^@!A<")0@@/B%\!``"+`L8`#8/``8D"QT0D"(#*!`C'1"0$`0```(N# -XMB`$``(D$).B[[___@\04,6+0"2# -XMB!`"```@QX"D`0```0```%W#B?:A?"$)"%6)Y8M`)(.($`(``$!=PXVV```` -XM`(V_`````*%\(0D(58GEBT`D@8@0`@``@````,>`I`$```\```!=P^L-D)"0 -XMD)"0D)"0D)"0D*%\(0D(58GEBT`D@8@0`@````$``%W#B?:-O"<`````58GE -XM4XG3@^P4B40D"*$0(0D(QT0D!$F+"`B)!"3H4NG__X7;=!FA$"$)"(E<)`C' -XM1"0$28L("(D$).@UZ?__Z-#M__^+`(D$).@FZ___QT0D!'WI"`B)1"0(H1`A -XM"0B)!"3H#>G__\<$)`$```#H\>___XVV`````(V\)P````!5B>6#[#B)7?2- -XM7=R)=?B)UHE]_(G'C47DB4W[__XM=](MU^(M]_(GL7<.0C;0F`````%6)Y8/L&(EU^(MU#(E]_(M]"(E= -XM](7VBU\D='8QTKG@L00(N`$```#H@____X7`="?'1"0(38L(",=$)`0%```` -XMB30DZ/>8```QP(M=](MU^(M]_(GL7<,QTKD`L@0(L`+H2O___X7`=<"Q!`BP`>CH_O__ -XMAC__X7` -XM==6-D\`!``"Y`+($"+`"Z*?^__^%P'6_QT0D!`\```#'!"1L(0D(Z+/H__^% -XMP'6GC9/8`0``N2"R!`BP#^AY_O__A575E-1@^PXBP&+202)1=2A)"$)"(E-T(/``:,D -XM(0D(@^@!#X5F`P``BT70BQC'1"0$+P```(D<).AJZO__AB35\(0D(QT0D!!0"``#'!"0! -XM````Z"GL__^%P(G'#X3J`@``B7XDQP0D`````.BP[?__A<`/A7@!``"#CE0( -XM```0]H<1`@```@^$>P$``(V'!`$``(E$)`3'!"0`````Z)[F__^#P`$/A*&8`@``&"L!`C'AF0(``#@JP0(QX9H -XM"````````,>&;`@``,"K!`C'AG`(``#@I00(QX9T"```L*H$",>&>`@``)"Y -XM!`C'AGP(``!PKP0(QX:`"```L-`$",>&B`@``("J!`C'AH0(```@I@0(QX:0 -XM"````*H$",>&E`@```````#'AHP(``#0S@0(QX:8"```8*<$",>&G`@``,"F -XM!`C'AJ`(``!`PP0(QX:D"```P*<$",>&J`@``)"F!`C'!"1MBP@(Z`?F__^% -XMP(E%W`^$G0$``(U%Y(L>B40D"(M%W,=$)`0!````B00DZ-#K__^+1>2#^/\/ -XMA%`!``"%P`^%J````(M%W(E<)`C'1"0$E(L("(E$)`RA$"$)"(D$).@,Y?__ -XMQP0D`0```.CPZ___@8\0`@````(``/:'$0(```(/A87^___'1"0(`````,=$ -XM)`0`````QP0D6HL(".@MZ___@_C_B<,/A'W^__^-AP0!``")1"0$B1PDZ`#E -XM__^#P`%T#8D<).C3Z?__Z5G^__^+!KICBP@(Z![[___'!"0!````Z';K__^) -XM]HM%W(D$).B9Y?__A<")1ER)1F`/A-0```"-1>B)1"0,C47LQT0D$`````") -XM1"0(QT0D!`````#'!"0`````Z$T3``"%P'5+BT7LQT0D#`````#'1"0(```` -XM`,=$)`0`````B49(B49$BT7HB48\B48XH00A"0B)!"3H]N/__\=$)`0````` -XMB30DZ%+[__^%P'1NQP0D`0```.C6ZO__B?:A$"$)"(E<)`C'1"0$=(L("(D$ -XM).C+X___QP0D`0```.BOZO__QT7____Z-3E__^+1=")-"2)1"0(BT74 -XMB40D!.C*=P``BUXDQT0D!`````#'!"0!````B478C8.H`0``B40D".CJZ/__ -XMC8/``0``B40D",=$)`0`````QP0D`@```.C,Z/__C8/8`0``@]H<0`@```G5=BX>D`0``A?__Z$$(0D(B00DZ(CE___K@9"058GE5U93@>PL!0``BU4(BTT4BT(0BT`D -XMB87P^O__N---8A#W;12+113!^@;!^!\IPFG"Z`,``(F5Z/K__RG!:<'H`P`` -XM]D40`8F%[/K__P^%C@4``(N5\/K__XN"$`(``*A`#X5:!0``J:`!``!T&:@@ -XM#X6,!0``A,`/B)4%``#VQ`$/A5\"``"+310QTH7)=!6+E>CZ__^+C>SZ__^) -XM5>"-5>")3>2+10B+0!")A?SZ__^+2"2X(````(F-`/O___:!$0(```(/A'`! -XM``")]L>$A03___\`````@^@!=?"%TG1'@XT(____`8E4)!"-E0C____'1"0, -XM`````,=$)`@`````B50D!,<$)`$```#H#^+__X/X_P^$4P$``(7`NP0````/ -XMA#\!``#V11`PD`^%GP,``,>%^/K__P````"+C?SZ__^X(````(N5_/K__X/! -XM"(F-Y/K___:"5`@``"`/A.X"``"%P`^%O````(N-_/K__[`!@XT(____`8MQ -XM"#NUY/K__W1(,?^0C70F`(M%"/:`KP0```%T*(N8@````+@!````BTL$B+-CNUY/K__W7"C4%^/K__P````#H=.3__[L#````@S@$=!W'1"0( -XM=+P("+,"QT0D!`4```"+10B)!"3H29```(N%^/K__X7`#X6``0``@_L$=K#H -XMY>'__XN%]/K__XN-\/K__XM5#(E"%#'`B4H0QT(("0```('$+`4``%M>7UW# -XMBY7P^O__@.3^C4WHB8(0`@``C47LB40D#(U%\(E,)!")1"0(QT0D!`$```"+ -XM50B)%"3H00X``(7`#X7_`@``BUWHA=L/A%?]__^-18B+=>R)A0C___^-1;2) -XMA0S___^+1?"-G0C[__^)78C'1;0`````QT6\`````,=%D`````")1"0,QT0D -XM"+.+"`C'1"0$``0``(D<).@0Y/__B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,IV8E-D(V-"/___\=$)`@`````B4PD!(M% -XM"(D$).CNI```A<`/A%8"``"+10S'0`@+````,<#I\O[__Y"-="8`BU4,,<#' -XM0@@#````@<0L!0``6UY?7<.+10S'0`@"````@<0L!0``,7UW#C46TB40D",=$)`01````QP0D`````.@DY/__ -XMZ6#^___'1"0(_P```(N%\/K__\<$)`````")1"0$Z('F__^#^/^)P@^$_?W_ -XM_X7`#X2B````BTT(]H&L!````70FBX7P^O__@'P"_PIT&8N-`/O__P^V@10! -XM``"+C?#Z__^(!!&#P@&+A0#[__\QV\>```$```````")E?3Z___ITOW__XU% -XMM(E$)`3'!"0`````Z+S=__^%P`^%1OS___9%$!!U=8N%`/O__P5<`0``B40D -XM",=$)`01````QP0D`````.A;X___QX7X^O__`0```.D8_/__BY4`^___NP$` -XM``"+@@`!``"#P`&#^#&)@@`!```/CUS]__\/MH(4`0``,-N+C?#Z__^(`<>% -XM]/K__P$```#I//W__XM%M(E%B(M%N(%EB/_Y__^)18R+1;R)19"+1<")192+ -XM1<2!991_____B468BT7(B46*`@("`=.GWPH"```!U -XM!L'J$(/!`@#2@]D#*=F-E0C___^)39#'1"0(`````(E4)`2+30B)#"3H)J(` -XM`.D[_?__D%6)Y8/L&(M%#(E=^(EU_(D$).A=X/__A<")PW01@_C_=`R)!"3H -XMZN/__X7`=1(QP(M=^(MU_(GL7<.-M@````"-<`&)-"3H>>+__XM5$(7`B0)T -XM'(ET)`B)7"0$B00DZ-#A__^+7?@QP(MU_(GL7C;0F`````(V\)P````!5B>53B<.#[`2+@(@! -XM``"%P'02B00DZ*GB___'@X@!````````BX.,`0``A+__\>#D`$```````"+@Y0!``"%P'02 -XMB00DZ%7B___'@Y0!````````BX.8`0``A6#[!B)=?B+=0B)??PQ_XE=](M>)/:#$`(``!AU$(GXBUWT -XMBW7XBWW\B>Q=PY")-"3HR`X``(7`#Y7`#[;XBX,0`@``)1`"```]$`(``'0Y -XMBX,0`@``)0@"```]"`(``'0YC8,$`0``B40D",=$)`01````QP0D`````.AB -XMW___@Z,0`@``Y^N5B?#HOO[__X7`=+R_`0```.NUBT8DZ`O^___KO8GVC;PG -XM`````%6)Y8/L2(72B77\B<:)7?AT'L=$)`@!````B50D!(D$).CNWO__BUWX -XMBW7\B>Q=PXU=T(E,)`R)'"3'1"0(^I8(",=$)`0H````Z`7>__^)7"0$B30D -XMQT0D"`$```#HL=[__XM=^(MU_(GL7<.-=@!5B>575E.#["R+=0B+7A"+0R2) -XM1>2`NU0(````#XB^`0``#[95#(/B`8G7#X0_`0``BX:L!```J`0/A5$!``#V -XM10P"=`BH"`^%0P$``*@$D'0)@^#[B8:L!```J`AT:X/@]XF&K`0``(U#"#D& -XM="S'1"0(`````(M&2`-&-(E$)`2A#"$)"(D$).B6W?__H0PA"0B)!"3HN=O_ -XM_\=$)`@`````BT8T`T9(@^@!B40D!*$,(0D(B00DZ&?=__^A#"$)"(D$).BZ -XMVO__B?B$P`^$S````(M&$(M8)(N#$`(``*@(#X75!```]L0"#X4Q`P``BU7D -XM@XH0`@``"?:&K`0```$/A(@```"+1>2+D(P!``"%TG1[]H8@`@```0^$`@4` -XM`(N&&`(``(T$0,'@`@-&$(M`.(/H`8D4)(E$)`C'1"0$`````.@YV/__QT0D -XM"(#*!`C'1"0$`0```(D$).@AV___@\0L,)-"3'1"0('(P(",=$)`0#````Z&^'``"#Q"RX -XM`0```%M>7UW#B?:)'"3H^/S__X7`#X7``P``@:-4"```?____^DC_O__D,<$ -XM)`$```#HR-W__X7`=*G'1"0(`````,=$)`0_````B30DZ!B0``"%P`^%@`,` -XM`/:&]`,```$/A"P$``"+ANP#``"-!$#!X`(#1A"+6#C'!"1MBP@(Z.G6__\Q -XMR8G:B47HN&V+"`CH)/W__\<$)/2+"`CHS-;__XE%[/:&(`(```$/A/<#``"+ -XMAA@"``"-!$#!X`(#1A"+2#@QTKCTBP@(Z.K\___'!"3ZBP@(Z)+6__^)1?#V -XMAF`!```!#X2R`P``BX98`0``C01`P>`"`T80BT@X,=*X^HL(".BP_/__Z%_: -XM___'``````"A`"$)"(D<)(E$)`BA!"$)"(E$)`3H']?__X7`#X2:`P``BTWH -XMAR%T@^$UP,``(M%\(7`#X2[`P``B70D!(M&$(V?7`$``(D$ -XM).B][/__Z,S9___HM]C__XUV`.B_VO__H0PA"0C'1"0$`0```(D$).CZU___ -XMH0PA"0C'1"0$`0```(D$).CEV/__QX<,`@```0```,=$)`0`````QP0D$@`` -XM`.CWVO__B5PD!,<$)`````#H1]7__X7`#X75`@``BX<$`0``]L0"=`J!CUP! -XM`````@``]L0$=`J!CUP!````!```@8]H`0``@````,:'=P$``/_&AW4!``#_ -XMQH=V`0``_\:'>P$``/_&AWH!``#_QH=^`0``_XDT).@+"@``A<`/A?4!``#I -XMK@$``(V#C`$``(E$)`C'1"0$18L("(DT).BT^/__C8.8`0``B40D",=$)`3@ -XMBP@(B30DZ)KX__^-@Y0!``")1"0(QT0D!.6+"`B)-"3H@/C__XV#B`$``(E$ -XM)`C'1"0$N8P("(DT).AF^/__C8.0`0``B40D",=$)`27C0@(B30DZ$SX__^+ -XM@Y@!``"%P`^$D@$``(N3E`$``(72#X1R`0``BX,$`0``BY,(`0``B8,P`0`` -XMBX,,`0``@\H#@8LP`0````$``(F#.`$``(N#$`$``(F3-`$``(F#/`$``(N# -XM%`$``(&+/`$``,\%``")@T`!``"+@Q@!``")@T0!``"+@QP!``")@T@!``"+ -XM@R`!``")@TP!``"+@R0!``")@U`!``"+@R@!``")@U0!``"+@RP!``")@U@! -XM``"!PS`!``")7"0(QT0D!!$```#'!"0`````Z$O9__^%P`^$7UW#@\0L -XMN`$```!;7E]=PX'#,`$``.NTO__Z1C\__^)7"0,QT0D"`*,"`C'1"0$ -XM`P```(DT).@9@@``N`$```#I8?K__Y"0D)"0D)"0D)"0D)"0D%6)Y8/L"*&@ -XM%`D(BU4(A"N+`8@0@\`!#[;2B0')B=## -XMH00A"0B)%"2)1"0$Z![2___)B<*)T,.-="8`.T$8?`6`^@IURXD4)(E,)`3H -XMOM?__XG"Z\>-M@````!5B>575E.#["R+=1B%]G0&QP8!````C47LB40D",=$ -XM)`1H=`A`QP0D`@```.BSTO__@\`!#X2&`0``#[=][`^W1>Z%_P^4PX7`B47< -XM#Y1%XXM%#(7`=!R$VP^$Y````(7V=`;'!@````"#Q"PQP%M>7UW#A-L/A+D` -XM``#'!"1MBP@(Z`W1__^%P'05A-L/A8P!``"`?>,`#X51`0``C78`A?]U!&:_ -XM&`"+7=R%VW4'QT7<4````,<$)/2+"`CHTM#__X7`=!K'1"0("@```,=$)`0` -XM````B00DZ*;4__^)Q\<$)/J+"`CHJ-#__X7`=!O'1"0("@```,=$)`0````` -XMB00DZ'S4__^)1=R+31"%R70%BU40B3J+512%T@^$1____XM%%(M5W(D0@\0L -XM,,!Z7G^__^+@A@"``"-!$#! -XMX`(#0A"+0#CI>____\<$)&R,"`CHRM;__X7`>#B)1=SIFO[__XG"BX!8`0`` -XMC01`P>`"`T(0BT`XZ6?____'!"1'@QP(/$<%M>7<.-M"8`````#[=%H(D<)"7O_P`` -XMB40D!.@_U?__A -XM7<.%]G0FB5PD#,=$)`BXC0@(QT0D!`4```")-"3H^'T``+@!````Z6#___^# -XMQ'"X`0```%M>7<.)]H7V=.Z)7"0,B30DQT0D")^M"`C'1"0$!0```.C`?0`` -XM@\1PN`$```!;7EW#C70F`%6)Y5.#[!2+70B+50R+0Q"#^AZ+2"1T>WX6@_H_ -XM="&#^DIT-8/$%#'`6UW#C70F`(/Z"'0+@_H8=>J-M@````"!B%0(``"````` -XM,<"#HZP$``#S@\046UW#BT44BP"%P'56@XD0`@``!(M#((7`=+2+0`B%P'2M -XMB1PDQT0D"`$```")1"0$Z&77__^#Q!0QP%M=PXM%%(L0B1PDB4PD!(72#Y3` -XM#[;`B40D".CP_?__@\04,Q=Z9_^__^+7?0QP(MU^(M]_(GL7<-5B>53@^P$BT4(BX!$`0``A@`````B?:+5>B+@B"."`B)!"3H$\__ -XM_X7`B<B+@CB."`B#PA")5>B%P`^%3?___XL=2(\("(7;#X3+````QT7D -XM`````(MUY(N&0(\("(D$).A+SO__A<")1?`/A)$```"#P`$/A(@````/MH9, -XMCP@(OR`0"0@Y!2`0"0AT"X/'"#D'=?F%_W1IBT7DBU7PBX!(CP@(B470B10D -XMZ*'1__^+==")-"2)P^B4T?__C5<$QT0D(`8```#'1"0<`@```,=$)!@!```` -XMB50D%(E<)!"+5?")1"0(B70D!(E4)`R+=0B)-"3HX\\``(7`#X5E`0``BU7D -XMBX)8CP@(@\(0B57DA<`/A3S___^+#6B/"`B%R0^$30$``,=%X`````#ID0`` -XM`(M5X(MU[(N2:(\("(E5U(DT).@'T?__B478BT7$B00DZ/G0__^+5=2)%"2) -XMP^CLT/__QT0D(`8```#'1"0<`@```(MUV(ET)!B+5>R)7"00B50D%(MUQ(E$ -XM)`B)="0,BT74B40D!(M5"(D4).@YSP``A<`/A;L```"0BW7@BX9XCP@(@\80 -XMB77@A<`/A+````"+=>"+AF"/"`B)!"3HW,S__X7`B47$=-&#^/]TS/R_C8P( -XM"+D"````B<;SIG2[BT7@BX!DCP@(A<")1>P/A2W___^+=<2+5>")-"2+NFB/ -XM"`CH-]#__XD\)(G#Z"W0___'1"0@!@```,=$)!P"````QT0D&`````#'1"04 -XM`````(E<)!")="0,B40D"(E\)`2+10B)!"3H?LX``(7`#X1&____@\1____XL3A=)T!HM#!(E"!(M#!(D0B1PDZ`;.__^+GD`!``"%VW7-C88L -XM`0``.88L`0``=`Z)10B#Q!!;7EWI//___X/$$%M>7<.0C70F`%6)Y5.#[`2+ -XM0!"+D$`!``"%TG1*,=L/MD(0@^@Q/`AW#P^VP/\DA;"/"`B)TXUV`(L2A=)U -XMX(7;="2+$X72=`:+0P2)0@2+0P2)$(U#"(D$).C:_O__B1PDZ';-__^#Q`1; -XM7QD(0->N8QD(0-(UT)@#KCHVT)@````"-O"<`````58GE@^P8QT0D!#P` -XM``")7?2)=?B+=12)??S'!"0!````Z-[*__^%P(G##X2#````A?:)QXEP#'47 -XMBT40B4,0B?B+7?2+=?B+??R)[%W#B?:)-"3H+,S__X7`B4,(=":+30R%R733 -XMBU40A=)TS(M5$(D$)(E4)`B+50R)5"0$Z#',___KM(M5",=$)`@`````QT0D -XM!`4```")%"3H<'4``(M#"(7`=;B)'"0Q_^ASS/__ZXR+10@Q_\=$)`@````` -XMQT0D!`4```")!"3H0'4``.EJ____C70F`(V\)P````!5B>564X/L,(M="(U% -XM](MU&(E$)!"-1?")1"0,QT0D"`$```"+10R)'"2)1"0$Z*U```"%P'0,@\0P -XMN`$```!;7EW#BT7TB1PDQT0D"`````#'1"0$`````(E$)`SHOO[__X7`B<-T -XMSXM%](7`="R+512%TG1,BU7PBT,(`540BU44B50D"(M5$(D$)(E4)`3H/\O_ -XM_XM%%(E#$(U6"(D3BT8,B4,$.U8(=!^+1@R)&(E>#(M#$`%&%(/$,%LQP%Y= -XMPRM%$(E%%.NLB5X(Z^&058GE5U93@^PLBT4,BWT(A<`/A,X"```/M@#V11@$ -XMB$7K#X4-`0``]D48`@^%^0```,=%[``````/ME7K,N+1Q"+L$`!``"%]G4/Z9`"``"+-H7V#X2&`@``.E80=?&% -XM]@^$>0(``(7)B?8/A(X!``#V11@!#X2'````@$X8`8M5$(M-%(L:.QEV$^D@ -XM`0``BT44@\,!.1@/@A(!``")="00QT0D#`````#'1"0(`````(E<)`2)/"3H -XM+?[__X7`=,Z-1@B)!"3HOOO__[@!````QT84`````,9&&`"#Q"Q;7E]=P_9% -XM&`$/A(X!``")^.AE_/__QT7L`0```.GQ_O__BTT0,<"+$8M-%#L1#X0E`0`` -XMBTT0B70D$(E$)`R+002)5"0$B3PDB40D".BY_?__ALQQT7L`````,=% -XM\`````#I0?W__\=$)`0<````QP0D`0```.@;QO__A<`/A)````")Q@^V1>N( -XM1A"-1@B)1@B)1@R+5Q"+@D`!``"%P(D&=`R+@D`!``")<`2+5Q")LD`!``"+ -XM1Q`%0`$``(E&!.DR_?__,<"#?>P`#Y3`B47P#[:4DS0$``"(5>L/MM+IP_S_ -XM_XM5$(M-%(L".P$/A4W___^+=Q`QR<=%[`````#'1?``````@<8D`0``Z=/\ -XM___'1"0(`````,=$)`0%````B3PDZ'=P``"X`0```.DO_?__D)"0D)"0D)"0 -XMD)"0D%6)Y5=64X/L/(M=%(MU"(M]#(7;#X2D````BT40BPB)3?")RCD/=FOI -XMA0```(UV`(-&9`&Z'X7K48M-\(G(]^+!Z@5KTF0YT74_BT80]H!4"```!'5< -XMQT0D#`$```#'1"0(`````,=$)`0`````B30DZ!HT``"%P'4,BT80]H!4"``` -XM!'4LBTWPC5'_B57P.1=W'XE4)`2)-"3H040``(7`=(V[`0```(/$/(G86UY? -XM7<,QVX/$/(G86UY?7<.-1?")1"0$B30DZ(,]``"%P'72BTT0BQ$[5?`/@M4` -XM``"0#X23````B57P.Q=W=XUV`.DF`P``@T9D`;H?A>M1BTWPB+1A#V@%0(```$#X7\`@``QT0D#`$```#'1"0(`````,=$)`0````` -XMB30DZ%$S``"%P'40BT80]H!4"```!`^%R`(``(M-\(U1_XE5\#D7#X.W`@`` -XMB50D!(DT).AP0P``ADJ____C47HC5WDB40D$(E<)`S'1"0(`0```(E4 -XM)`2)-"3H=3H``(7`#X4`____BU40BT($.T7H#X-%!0``BQ*+!SG0#X22`P`` -XMBU\$QT7@`````(7;B5W<#X20````C57DQT0D$`````")5"0,QT0D"`$```") -XM1"0$B30DZ!HZ``"%P`^%I?[__X7V#X3^`@``BUX0A=L/A/,"``#V@U4(```! -XM#X7F`@``BT7"+0WB)1>R!BU0(`````0`` -XMBUW")!"3HIL3__XM-$(L1C47HC5WDB40D$(E<)`S' -XM1"0(`0```(E4)`2)-"3HBSD``(7`#X57`0``BU7HA=(/A)@```"+11"+0`2) -XM1=2-0O\Y1=0/A(,```"+3=R-1!'_*T74.<$/AQ8$``"+3=R%R0^%MP,``(7V -XM=!2+7A"%VW0-]H-5"````0^$*00``(7`QT7L`````,=%X``````/A08%``"+ -XM1>2+7>`K5=0#7=R#P`$#1=2#Z@&)5"0(B1PDB40D!.CGP___BU40BT7H`47< -XM@VW<`8M2!"E5W(M-W(E,)`R+7>")7"0(BP>)-"2)1"0$Z'0]``"%P`^%D``` -XM`(M5$(L"B47P.0=R=.E5`0``@T9D`;H?A>M1BTWPB+ -XM1A#V@%0(```$#X4K`0``QT0D#`$```#'1"0(`````,=$)`0`````B30DZ.$P -XM``"%P'40BT80]H!4"```!`^%]P```(M-\(U!_XE%\#D'#X/F````B40D!(DT -XM).@`00``AP___Z8W\__^-1>B)1"00C47DB40D#,=$)`@!````BP>) -XM-"2)1"0$Z-$W``"%P`^%7/S__X7V=':+7A"%VW1O]H-5"````75FBT<$.T-X -XM#X?4`@``BU-TB57@BT-XB47L@8M4"`````$``(M'!(E$)`B+1>2)1"0$BTW@ -XMB0PDZ&["__^+1P2)1"0,BUW@B5PD"(L'B30DB40D!.@./```A<`/A>G[__\Q -XMV^DH____QT7L`````(M'!,=%X`````"%P'2JB40D#(U%[(E$)`C'1"0$```` -XM`(DT).@/X```A<`/A*K[__^)1>"+1P3I?/___XM%W,=%[`````#'1>`````` -XM!0`!```/A"7]__^)1"0,C47LB40D",=$)`0`````B30DZ,7?``"%P(E%X`^% -XM__S__^E8^___D(UT)@"-1>B)1"00C47DB40D#,=$)`@!````B50D!(DT).B> -XM-@``A<`/A2G[__^%]@^$NP```(M>$(7;#X2P````]H-5"````0^%HP```(M% -XMZ#E#>`^"+@(``(M3=(E5X(M#>(E%[(&+5`@````!``"+1P2%P`^%G@$``(M= -XM$(M%Y(M;!(/``8E=V(M5V(M=X`-?!`-%V/?2`U7HB40D!(D<)(E4)`CH#<'_ -XM_XM'!(M5$`-%Z(/H`2M"!(E$)`R+3>")3"0(BP>)-"2)1"0$Z*$Z``"%P`^% -XMO?W__S';Z;O]__^!H%0(``#__O__Z6OZ__^+1>C'1>P`````QT7@`````(7` -XM#X1F____B40D#(U%[(E$)`C'1"0$`````(DT).B/W@``A<")1>`/A4#____I -XM(OK__S';A?9T>HM>$(7;='.+3>`Y2W1T:SM%[`^&6?S__XE$)`R-1>R)1"0( -XMBTW@B30DB4PD!.A'W@``A<`/A.+Y__^+71")1>"+5>B+6P2)7=3I(_S__\=$ -XM)`C4CP@(NP$```#'1"0$`P```(DT).AN:0``Z?+\__^+71"+$^GE^?__@:-4 -XM"```__[__SM#>`^'E@```(M#=(E%X(M#>(E%[(&+5`@````!``"+51"+4@2) -XM5=2+5>CIO?O__XE$)`R-0WB)1"0(BT-TB30DB40D!.BKW0``A<`/A$;Y__^) -XM0W3I`OW__XE$)`B+1>2)1"0$BTW@B0PDZ(F____I1_[__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AFW0``A<`/A`'Y__^)0W3IA?K__XE$)`R-0WB)1"0(BT-T -XMB30DB40D!.@\W0``A<`/A-?X__^)0W3I0/___XE$)`R-0WB)1"0(BT-TB30D -XMB40D!.@2W0``A<`/A*WX__^)0W3IJ/W__XE$)`R-1>R)1"0(QT0D!`````") -XM-"3HY]P``(7`#X6@_O__Z7WX__^0D)"0D)"0D)"058GE@^P8BU4(]H)$`@`` -XM`70DBX(\`@``C01`P>`"`T(0BU`XA=*Z`0````^4P(3`=!C)B=##BX(\`@`` -XMN@$```"%P`^4P(3`=>CHY;O__\<``````,=$)`0&````BT44B00DZ+RY__^% -XMP'4DQT0D"`$```#'1"0$`@```(M%%(D$).C]M___N@$```#)B=##Z)^[__^# -XM."-T%HVV`````.B/N___,=*#."-UAHUT)@#)N@(```")T,.-M"8`````58GE -XM@^P8B5WXBUT(B77\BW4,BX.D````AQ=PXD<),=$ -XM)`@`````QT0D!`4```#H`&<``(M=^(MU_(GL7<.-M@````!5B>6#[!B+30B+ -XM41R%TG0.BT$@]D`80'0%@SH!?@3),<##BT4,ABX48VO__A%#-K__P````"%P`^$/@$``(M%&(/@`H/X`1G2@>+X`P``@<()`@`` -XMB84(VO__B94`"`T(0BW`XZ*6X___'```` -XM``#'1"0(`````,=$)`0`````BY5`VO__B10DZ$&Z__^%P(F%*-K__P^(L@4` -XM`(V=C/[__S'_B5PD!(M%"(D$).A8)P$`QT0D&`````#'1"04`````,=$)!`` -XM````QT0D#`````#'1"0(`````,=$)`0`````B1PDZ!`R`@"`/DX/A`<%``") -XM-"3HT[O__XET)`B)7"0$B40D#(M5"(D4).B(-0$`A<`/A*`#``"`O0;:__\` -XM#X2&`0``N`$```"!Q!PF``!;7E]=PXUV`("]!]K__P`/A#,#``"%VP^%*P,` -XM`(N5$-K___9"6`$/A?0&``"+E1#:__^+19`[0D0/A`D#``#V11@0N"R1"`AU -XM!;ATD0@(B40D#(N%0-K__\=$)`0#````B40D"(M5"(D4).AX:```N`$```#I -XM@/___XM5"/:"^`(```$/A#X#``"+@O`"``"-!$#!X`(#0A"+6#B%VP^5P(3` -XM#X1:_?__]D48$+ATD`@(=06XJ)`("(E$)`C'1"0$`P```(M5"(D4).@(8P`` -XM@<0<)@``N`$```!;7E]=PXM5&(F=0-K__\>%&-K__P````#&A0?:__\`@^($ -XMB94`VO__#Y2%!MK__^D%_?__B<*+@*`$``"-!$#!X`(#0A"+4#B%T@^4P.D1 -XM_?__BX4DVO__B00DZ#&W__^%P`^%D@D``(N%.-K__X7`="Z+10B%P'09BU4( -XMBT(0A#91@#@WT8`0^$E@4``(U%Z(E$)`B+A4#:__^)1"0$ -XMBU4(B10DZ.A4``"+G0S:__^%VXF%(-K__P^%+00``,=$)`@`````QT0D!$R2 -XM"`B+10B-O4SZ__^)!"3H,U<``(M5[(E4)!2+5?")5"00BY4@VO__B40D",=$ -XM)`1`!```B3PDB50D#.BKM?__B?F)PXM%"(MP.#GS#X-5!@``B4PD#,=$)`B? -XMK0@(QT0D!`0```"+10B)!"3HUF```(M5Z#'`A=(/A.O\__^+10B%P'09BU4( -XMBT(0AWZ__^-E7#___^) -XM5"0$BX5`VO__B00DZ%"R__^%P`^%F`0``(N5$-K__X!*6`&+A7#___^)0CR+ -XMA73___^)0D"+19")0D3I&/W__^B\LO__@S@"#X12_/__B[5`VO__QX4PVO__ -XM`````,>%.-K__P````#'A23:________@[THVO___W0.BY4HVO__B10DZ`BS -XM__^#O23:____=!R+A3#:__^)!"3HL;#__XN5)-K__XD4).CCLO__A?9T'\=$ -XM)`R?K0@(B70D",=$)`0%````BT4(B00DZ#QC``"+O3C:__^%_P^$+OK__XMU -XM"(7V=!F+50B+0A"%P'0/BY4XVO__.5!T#X0&!0``BX4XVO__B00DZ`2U___I -XM^_G__X7_#X13`0``BT4(A<`/A*(#``"+10B+6!"%VP^$E`,``/:#50@```$/ -XMA8<#``"+A0#___^+`(M`"(U$`#([0W@/A[\%``"+4W2)E3C:__^+0WB)1>2! -XMBU0(`````0``BX4`____BXTXVO__BQ"#P0&+`@^V$(32#X3Y!```BYTXVO__ -XMC4@!QX4TVO__`````.L@@/HO#X17`0``#[9!_X@##[81@\,!@\$!A-(/A,@! -XM``"`^B5UVX`Y)73?Q@,E@\,!Z]>#O0S:__\!=$+HS:[__XU=T,=%V`$```#' -XM1=P`````B5PD!(M5"(D4).CI*@``A<`/A0[Y__^-1=C'1=0`````B44,B5T0 -XMZ>OZ__^+C0C:__^X>)(("(7)=06XI)((",=$)`@`````B40D!.ES^___BX5P -XM____.T(\#X4/^?__BX5T____.T)`#X4`^?__Z>GX__^-="8`BX4`____BP"+ -XM`,>%.-K__P````")A3#:__^-A1#___^)1"0$BY4PVO__B10DZ,*O__^Z`0H` -XM`(7`#X7/`@``#[>%&/___R4`\```/0"````/A'0#``#'1"0,190("(ET)`@Q -XM]L=$)`0#````BT4(B00DZ"EA``#'A23:________Z7_]__^!H%0(``#__O__ -XM,<#I&_C__XF=--K__^F>_O__BY40VO__@&)8^XN5%-K__P^W0AB$P`^)3OK_ -XM_X"]!]K__P`/A#X#``"#R$!FB4(8Z37Z___HN*___X,X#9!U#HN=`-K__X7; -XM#X5]`P``QT0D#)^M"`B+A4#:___'1"0$!0```(E$)`B+50B)%"3HBV```+@! -XM````Z9/W___&`R7&0P%DQD,"`(N%--K__X7`#X3U`@``BY4TVO__Q@(`BX4X -XMVO__B00DZ,6N__^+E33:___&`B^#P@&)E3S:__^)QX7_#X0\`@``QX4LVO__ -XM`````(D\).@'LO__A<`/A$0!``"-5>"#P`B)5"0(BY4\VO__B00DB50D!.B# -XMKO__@^@!=<^+1>`YA2S:__]]Q(F%+-K__^N\QT0D#)^M"`B+E4#:___'1"0$ -XM!0```(E4)`B+10B)!"3HPE\``(D<).@^K___N`$```#IPO;__XN5(-K__XD4 -XM).A6LO__C4[]C10'B?@YUW(0ZQJ-="8`@\`!.<)V#X/K`8`X+XUV`'7N.%.-K__P````"-1``R -XMA<`/A([\__^)1"0,C47DB40D",=$)`0`````BU4(B10DZ(O.``"%P`^$)@(` -XM`(F%.-K__XN%`/___XN-.-K__XL0@\$!Z4S\__^)/"3HL['__XN%+-K__\=$ -XM)`A:W@@(@\`!B40D#(N%.-K__P-%Y(D<)"G8B40D!.@WKO__BX4XVO__B84P -XMVO__Z0S]___'1"0(@`$``(E4)`2+E3#:__^)%"3H+*___X7`B84DVO__#XC/ -XM^O__C95,VO__QT0D"``@``")5"0$BX4HVO__B00DZ#ZQ__^#^`")QP^.EP$` -XM`#';ZP8IQW3-`<.-A4S:__\!V(E\)`B)1"0$BX4DVO__B00DZ*NH__^%P'G8 -XMB[4PVO__Z6WZ__^!H%0(``#__O__Z?GT__^+A0#___^+`(LPQX4PVO__```` -XM`,>%)-K________I._K__XN='/___^C?K___.<-T%)-K________I_/G__XN5%-K__X/@OV:) -XM0ACI\?;__XN%.-K__\8`)8G#Q@%DQD$!`,<$)$'Q"`CHVZO__XG'BX4XVO__ -XMB84\VO__Z1?]__\/MX48____N@$$``"H-@^$KO[__\=$)`S4D0@(Z?'[__^- -XMA1#___^)1"0$BY5`VO__B10DZ&^K__^%P'41#[>U&/___XGPA,`/B8$```#H -XM]:O__\<`#0```.E&_/__B40D#(U#>(E$)`B+0W2)1"0$BT4(B00DZ&G,``"% -XMP'0(B4-TZ1CZ__\Q]L>%,-K__P````#'A3C:__\`````QX4DVO_______^D- -XM^?__?!:+E2C:__^)%"3H'*S__X7`#X35]/__B[5`VO__Z>KX__^+G1S____H -XMCJ[__SG##X5L____9H'.@``/M\:)1"0$BY5`VO__B10DZ!RN__^%P`^%2O__ -XM_\=$)`BV`0``BX4___\G#C;0F`````(N"\`(``(7`#Y7`ZX&-=@!5,G"[O__B?:+@QP! -XM``"-!$#!X`(#0Q"+0#B%P`^5P(3`=____Y"-M"8`````58GE5U93@>R\"``` -XMBU4,#[="&*@@="&#X-]FB4(8B50D!(M-"(D,).BCK@``@<2\"```6UY?7<.+ -XM50R#X`%FB4(8QT0D!%P```#'!"0!````Z!ZF__^%P(F%5/?__P^$UP8``(N% -XM5/?__X!(6`+'0!0`````QT`0`````,=`2/_____'0%3_____BU4,BU((A=*) -XME5SW__\/A!@"``"+C5SW__\/M@$\+P^$)P,``#PN#X0#`P``C95L____B50D -XM!(N-7/?__XD,).@5I/__N@$```"%P`^$Z0```(M%"/:`U`(```$/A-P&``") -XMPHN`S`(``(T$0,'@`@-"$(M0.(UR`>L-A-L/A&,&``")\H/&`0^V7O^`^SIT -XM!(3;=?"-1OXYPG/?QD;_`(N%7/?__XV];/?__XE4)`S'1"0(N90(",=$)`0` -XM!```B40D$(D\).C.I/__C95L____B85@]___B%[_B50D!(D\).ASH___A)UL'_'XG_P?\? -XMB?Z)_L'N%C'_`<81UP^L_@K!_PJ#_@IW#(7V9KL`!`^%E@4``(N%5/?__X!( -XM6`&+A6S___^+E53W__^)0CR+A7#___^)0D"+18R)0D0/MX5T____)0#P```] -XM`(````^$)`(``,=$)`RXDP@(BXU8]___QT0D!`,```")3"0(BT4(B00DZ-]3 -XM``#I^@$``(MU%(/F"(UT)@#'1"0(`````,=$)`0*````BU4(B10DZ*57``"% -XMP`^$%P$``(M5#(M""(7`=!*)!"3HGZ7__XM-#,=!"`````"+50PQVXM"#(7` -XM="")!"3HP:#__XM-#(M!#(D$).ASI?__BT4,QT`,`````(N55/?___9"6$`/ -XMA24$``"+C53W__^+04R%P'05B00DZ$2E__^+A53W___'0$P`````BY54]___ -XMBT($A7UW##[9! -XM`3PO=!0\+@^%[?S__X!Y`B^)]@^%X?S__XV%;/___XE$)`2+A5SW__^)!"3H -XM]J#__S'2A<`/E,+IR_W__XM-"/:!>`$```$/A+`#``"+@7`!``"-!$#!X`(# -XM01"+0#B-G6S[__^)1"0,QT0D"+^4"`C'1"0$``0``(D<).CFH?__B1PDZ.ZB -XM__^#^/\/A-4#``")!"3HO:'__XM%#(M0"(72#X0L!```B1PDZ)>=__^+50R% -XMP(E"#`^$[@,``(M""(7`#X2^`P``BU4,A?:+4@R)E5CW__\/A#P#``"+A53W -XM__^[``0``(/`1(D$).A4G/__BU4(QT7,`````,=%X`````#'1=``````QT78 -XM`````,=%W`````#'1>0`````QD7@"HE=U(M"$(N`5`@``(/@0(/X`1G`]]"# -XMX`2)12+A53W__\QTH!(6`2-1Z``"%P'4,BY54]___BT),B47DBY58]___Z0_] -XM___'1"0(E),(",=$)`0%````BTT(B0PDZ$%)``#IG_K__XD<).BXF?__BTT, -XMA<")00@/A2S\__^+00R%P'0(B00DZ"N@___'1"0(`````,=$)`0%````BT4( -XMB00DZ/Q(``")'"3H2)O__^E2^O__9H%(&(``Z__^%P'5WBU4,9H%*&``!Z1/[__^[`0```(U][(UUZ.L1C;0F```` -XM`(M%[(7`=2:#PP&)?"00B70D#,=$)`@`````B5PD!(M%"(D$).CG$0``AR%P'0(BT7H@#@C=,N+30B)64R[`0```.GK^O__#[9``3PJ -XM=&P\+P^%8?___XM5"(&*K`0````!``"#1>@"@VWL`NL*@T7H`8/H`8E%[(M% -XM[(/X`780BU7H@#HO=>:`>@$O=>#KIX/#`8E\)!")="0,QT0D"`````")7"0$ -XMBT4(B00DZ,L0``"%P'3"Z?W^__^+50B!BJP$`````0``ZPV-=@"#1>@!@^@! -XMB47LBT7L@_@!=A.+5>B`.BIUYH!Z`2]UX.E%____@\,!B7PD$(ET)`S'1"0( -XM`````(E<)`2+10B)!"3H:1```(7`=+_IF_[__U6)Y5:)UE.#[""+6!"-5?") -XM5"0,C57WB50D"(E,)`2)!"3_DX0(``"%P'54BT7PA53BUT(#[9-#/:#X`(```$/A!P!``"+@]@"``"-!$#!X`(# -XM0Q"+0#B%P'0]#[80A-)U$.LT#[90`832C78`="F#P`$XT77NB(N(````N`$` -XM``")@Y````#&A!B(`````(V#B````%M=P_:#C`(```$/A<<```"+@X0"``"% -XMP`^$TP````^V$(32=13IQP````^V4`&$T@^$NP```(/``3C1=>T/MM$[%?P@ -XM"0A]$*$((0D(]D20-0(/A0H!``#V@Z0"```!#X3M````BX.<`@``C01`P>`" -XM`T,0BT`XA<`/E<"$P`^$D0```,'J!@^V@CR6"`C&@X@```!`"`T,0BT`XA<`/A2W___\/MM$[%?P@ -XM"0@/C4#___^A""$)"/9$D#8$#X0P____Z -XM=`.-04"(@XD```"X`@```.E8_O__C70F`%6)Y5.#[`B+70B+10R)'"2)1"0$ -XMZ.?]__^+@Y````"#Q`A;7<.-="8`C;PG`````%6)Y5=6,?93@^P,BT4(BW@0 -XMB7WPBU4(B70D!(D4).BM_?__BU4(B<.+@I````"(AUT!```/ML"-2/^#^?]T -XM)(M%\(T4=HV44%@!``"-="8`#[8#@^D!@\,!B`*#P@&#^?]U[8/&`8/'!H'^ -XM_P```'6C@\0,6UY?7<.-M"8`````58GEBT4(5XM]#%8Q]E.+2!#K#\>!'`$` -XM``````"^`0```(N9&`$``(7;="QKD1P!```53@^P4BUT,BU4(@WL(#'8%Z'R2__^+0PC_)(7H -XME0@(QT0D",N5"`C'1"0$`P```(D4).BF0```C;8`````BT,,A6# -XM["B+10S'1"00@`L%",=$)`P(````QT0D!"`0"0B(1?RAZ!`)"(E$)`B-1?B) -XM!"3H+)3__S'2A`` -XM``"+BQ0!```Y310/A]<```"-="8`BTT4`8L8`0``BY,0`0``A7UW#BY,8`0``A=(/A$?___\K112)@QP!``#I.?___XN[&`$` -XM`(N+%`$``(M5%(U$`AZ-%#@YRG-'A?]U:K@>````QX,<`0``'@```.D'____ -XMBU4(BT(0,=*`N%('``#_#X5X____BTT(QT0D!/\```")#"3H/_[__XG"Z5[_ -XM__^#^D!S!;I`````BT4(Z+;]__^Z`0```(7`#X5:____B[L8`0``ZY)KQQR+ -XMDQ`!``")1"0(:X,<`0``'(T$`HE$)`1K110@0"0C'1"0,@`L% -XM",=$)`@(````QP0D(!`)"(E$)`3HA(S__\:&4@<```"+'>@0"0B%VW0^,575E.#[&R+10B+>!"+10R%P`^$WP4``(M-%(M%%(/A0(/@08E- -XML(E%K(N'&`$``(7`="J+1;"%P`^%L04``(M%K,=%R`````#'1<0`````A<`/ -XMA#0!``"-M@````#VAU0(```@#X6F`P``QT7(`````(M-$(E,)`R+112#X#&) -XM1"0(BT4,B40D!(M5"(D4)/^7>`@``(7`#X7P`@``BTT,BT$(C5#]@_H'=R3_ -XM))40@)#X3?`@``BTT,BP&)`HM!!(E"!(M!"(E" -XM"(M!#(E"#(M!$(E"$(M!%(E"%(M!&(E"&,=%Q`````"+3:R%R0^%9`0``(M% -XM%(M5%(/@!H/B`HE%N(E5M&NW'`$``!P#MQ`!``"#?@@!#X6 -XM_?__BT4(]H`<`P```0^%S0(``(M%"(N`%`,``(7`#Y7`A,`/A!`#``"#1<@! -XM@WW(`70?BT7(NF=F9F;WZHM%R,'Z`L'X'RG"C122`=(Y57UW#QT7$`0```.G:_?__@_@( -XM#Y7`#[;PBT4(@\8&BT`0B47,BU@(B<>#QP@Y^W08C;8`````B1PDB70D!.AD -XMI```BQLY^W7NBU7,BUH0B=>#QQ`Y^W2?B1PDB70D!.A#I```BQLY^W7NZXN+ -XM0Q@!AQP!``#IL/[__XM5"(D4).AB?P$`A<`/A$?\___I9?___Y"-="8`BUW0 -XMBT$0A=MT?XG&BT70C5H<`?")1;SK)XVT)@````"+30@/ML"+41`/MI0"4P<` -XM`(E3],9#^`"#PQP[=;QT2<=#[`$````/M@:#Q@$\_XA#\'7,BU4(BT(0,=*` -XMN%('``#_=''`$```````#IZOW__XG!BX`4`P``C01`P>`"`T$0BT`XA<`/E<#I(_W_ -XM__9%%`ATBXM-##'`QD$,8<=!$`````#'00@!````QD$4`(/$;%M>7UW#,<#I -XMG/W__XU5U(E5#.D6^O__QT0D$`8```"+0R")5"0(QT0D!`````")1"0,BU4( -XMB10DZ,;V__^%P`^%7OW__P^V5@R#^G]WCI"-="8`Z0O___^#AQP!```!,<#I -XM0OW__XL&BTT,B0&+1@2)002+1@B)00B+1@R)00R+1A")01"+1A2)012+1AB) -XM01CI`O___XM5"/:"&`0```%T58N"$`0``(T$0,'@`@-"$(M`.(7`#Y7`A,#' -XM11``````#X2_^?__@WX0"71+BT4(]H`(`@```70MB<*+@``"``"-!$#!X`(# -XM0A!K0#ADB440Z9#Y__^+30B+@1`$``"%P`^5P.NRBTT(:XD``@``9(E-$.EN -XM^?__BT4(]H"0`0```70HB<*+@(@!``#KLXM-"(M!$(.(5`@```2+10S'0`@$ -XM````,<#I6_S__XM-"&N)B`$``&2)31#I*/G__Y"0D)!5B>6#[!B+10S'1"0( -XM6)8(",=$)`0#````B40D#(M%"(D$).A8-```R<.-M@````!5B>6#[#B+50R) -XM??R+?1B)7?2)=?B%T@^$PP```(M%"(M8'(7;#X0X`0``]D40`G5"BT4(]H"O -XM!```"'0CBTAXBT!\BW$4B47@BT`4.?*)1=P/@]L````[5=P/AR`!``"+0Q`[ -XM10P/A+H```#'0Q``````C44,B47DC47LQT7H!````(M3!(E$)`B-1>3'1"0, -XM`````(E$)`2)%"3_4@R#^/]T;H/H`70WBT4,A?^)0Q"+1?")0PR+1>R)0PAT -XM!8M%\(D'BT44A<`/A+\```"+0PB+512)`C'`ZRJ0C70F`/9%$`%U+(7_=`;' -XM!P````"+512X`0```(72=`F+513'`@````"+7?2+=?B+??R)[%W#BT4,B40D -XM!(M%"(D$).BL_O__Z\"%_W2:BT,,B0>0ZY(YPG=*.?)T#8VV`````(L).U$4 -XM=?F%_W0%BT$0B0>+712%VW0WBT$(BU44B0(QP.NBQT0D"`0```#'1"0$```` -XM`(D$).CU_0$`Z6;___\I==PK5=R)50SITO[__S'`Z7#___^-="8`C;PG```` -XM`%6)Y5.#[!2+30B+70R+41R%TG1A,<"%VW0CBU(4A=)T(O:!KP0```AT#(M! -XM?`-0%(M!>"M0%#'`.=H/D\"#Q!1;7<.)7"0$QT0D$`````#'1"0,`````,=$ -XM)`@`````B0PDZ/G]__^%P`^4P(/$%%L/ML!=P\=$)`@$````QT0D!`````") -XM#"3H0_T!`+@!````ZZF-M@````"-OP````!5B>6#[$B)=?B+=0B)??R+?0R) -XM7?2+7AR%VP^$NP```(M3%(72="J)%S'`]H:O!```"'00BT9\`U`4BT9X*U`4 -XM,<")%XM=](MU^(M]_(GL7<.-1?")1>"-1>C'1>0$````BU,$B40D"(U%X,=$ -XM)`P&````B40D!(D4)/]2%(/X_W0Q@^@!=':+1>"+`(E%\(E#$(E#%(M%[(E# -XM#(M%Z(E#"/:&KP0```AU8(M%\(D',<#KD<=$)`C%E@@(QT0D!`4```")-"3H -XM13$``+@!````QP<`````Z6G____'1"0(!````,=$)`0`````B30DZ#W\`0"X -XM`0```.E'____,<#'!P````#I.O___XM&?(M`%#M%\'>8ZY.)]HV\)P````!5 -XMB>6#[#B)=?B+=1B)7?2+70R)??R+?0B%]G0&QP8`````BT44QT0D"`````") -XM7"0$B3PDB40D$(M%$(E$)`SH7/S__S'2ASVAJP$```!=4N+?AR#/P%T2XM&$(M8"(/`"#G#=0[K -XM/(M&$(L;@\`(.=AT,#G>=/`Y>QQUZXM%[(E$)`B+1?")'"2)1"0$Z.))`P"% -XMP'31N`$```"#Q!Q;7E]=PXM5"#'`A=)T[XM%[(E$)`B+1?")-"2)1"0$Z+)) -XM`P"#Q!Q;7E]=PXUV`(V\)P````!5B>564X/L((MU"(M>'(7;#X2\````QT0D -XM"`<```"+10R)-"2)1"0$Z),/``"-10R)1>B+11#'1>P$````B47PBT44B47T -XMBU,$C47PB40D"(U%Z,=$)`P`````B40D!(D4)/]2$(/``0^$B````(M#$#M% -XM#'1*]D-8`G4X@$M8!,=$)`@&````BT4,B30DB40D!.@I#P``BU4,B?"Y`P`` -XM`,<$)`$```#HL_[__X/$(%M>7<.)-"3H-)X``.N^B?;V0U@"QT,0`````'2O -XMC78`Z^*)-"3'1"0(!````,=$)`0`````Z-;Y`0"#Q""X`0```%M>7<.+10R) -XM-"3'1"0(X98(",=$)`0%````B40D#.B++@``@\0@N`$```!;7EW#ZPV0D)"0 -XMD)"0D)"0D)"058GE5U93@^PLBW4(BUX2+11#'1>@$ -XM````B47LBT44B47PBU,$C47LB40D"(U%Y,=$)`P%````B40D!(D4)/]2$(/` -XM`0^$Z````(M#$#M%#'<'QT,0`````(M#%(7`=`:#P`&)0Q3V0U@"#X6'```` -XM@$M8!+\!````QT0D"`4```"+10R)-"2)1"0$Z/(-``"+10S'1"0$`@```(DT -XM)(E$)`CH6QT``(G#BT4,QT0D!`(```")-"2)1"0(Z&(X`0"%P'4(A=L/E<`/ -XMMOB+50RY`@```(GPQP0D`0```.A`_?__N@$```"%P'4"B?J#Q"R)T%M>7UW# -XMB30DZ+.<``#I;/___XDT),=$)`@$````QT0D!`````#H9O@!`(/$++H!```` -XM6XG07E]=PXVT)@````"+10R)-"3'1"0(@)8(",=$)`0%````B40D#.@1+0`` -XM@\0LN@$```!;B=!>7UW#B?95B>575E.#["R+=0B+7AR%VP^$"0$``(U%$(E% -XMY(M%%,=%Z`0```")1>R+11B)1?"+4P2-1>R)1"0(C47DQT0D#`0```")1"0$ -XMB10D_U(0@\`!#X3O````BT,0.T40=@?'0Q``````BT,4A7UW#C70F`(V\)P````!5B>56 -XM4X/L((MU"(M>'(7;#X3*````BT4,QT0D!`$```")-"2)1"0(Z/,:``"%P'0/ -XMN`$```"#Q"!;7EW#C78`BT4,QT0D!`$```")-"2)1"0(Z.DU`0"%P'76QT0D -XM"`0```"+10R)-"2)1"0$Z"X+``"-10R)1?"-1?#'1?0$````BU,$QT0D"``` -XM``")1"0$B10D_U((@^@!='*+0Q`[10QR!\=#$`````"+0Q2%P'0&@^@!B4,4 -XM]D-8`G5&@$M8!(GPBU4,N0$```#'!"0!````Z&CZ__^#Q"!;7EW#D(DT),=$ -XM)`@$````QT0D!`````#HJ/4!`(/$(+@!````6UY=PXDT).C$F0``Z["+10S' -XM1"0(_I8(",=$)`0%````B30DB40D#.A3*@``N`$```#I__[__Y"0D)"0D)"0 -XMD%6)Y5.#[`2+70R+0QB%P'0-B00D_U`$QT,8`````(M#'(7`=`^)!"3H)X'_ -XM_\=#'`````#'0R``````,<#'0RP!````QT,P`````,=#*`$```#'0R0!```` -XM@\0$6UW#D%6)Y5.#[!2+70S'0QP`````QT,@`````,=#+`$```#'0S`````` -XMQT,H`0```,=#)`$```#'1"00`````,=$)`P"````QT0D"(`!``#'1"0$!@(` -XM`,<$)`````#H-('__S'2A<")0QAT"(/$%(G06UW#QT0D"!R7"`C'1"0$!0`` -XM`(M%"(D$).A4*0``N@$```"`2U@0@\046XG07<.-=@!5B>56B<93B7<.058GE5U93@^Q,BWT(BW<<#[966/;"$`^%Z`$``(M&*#M&)`^$ -XM`0(``(/*$(U&*(A66(E%Z,=%[`0```#'1<``````BT88C57@@T8H`8E4)`B- -XM5>C'1"0,`````(E4)`2)!"3_4`R%P`^%X0$``(M=X(`["'8+Z`IZ__^-M@`` -XM```/M@/_)(5\F`@(C57$C4,!B10DQT0D"!0```")1"0$Z!!^__^+1C'1>P$````B?:+1AB-5>"# -XM;B@!B50D"(U5Z,=$)`P`````B50D!(D$)/]0#(7`#X5W`0``BUW@@#L(=@7H -XMC'?__P^V`_\DA:"8"`B-0P&)1"0$C478QT0D"`@```")!"3HF'O__XM5"(M% -XMV#M"3'29@T8H`8!F6.\QP(/$3%M>7UW#C7L!C47$QT0D"!0```")?"0$B00D -XMZ&%[__^+1___BT4(BU!,.U7P='R+50B+1?`Y0E@/A'3___^#0F`!B4)8Z6C___^- -XM0P&)1"0$C478QT0D"`@```")!"3HQGK__XM5"(M%V#M"3`^%+O___X-^*`$/ -XMA;G^___I'____XUT)@")!"3'1"0(%)@(",=$)`0#````Z*@D``"#Q$RX`0`` -XM`%M>7UW#BT7DB50D!(/H!8E$)`R-0P6)1"0(BU4(B10DZ-OT__^%P`^$7/__ -XM_^DG____BT4(N>\!``"ZP)<(".@<^___N`$```#IL_[__XGV58GE5U93@^Q, -XMBWT(BW<<#[9&6*@0#X7=`0``@WXH`0^$^`$``(/($(A&6(U&*(E%Z,=%[`0` -XM``#'1<``````D(M&&(U5X(-N*`&)5"0(C57HQT0D#`````")5"0$B00D_U`, -XMA<`/A="`.PAV!>B,=?__#[8#_R2%Q)@("(U5Q(U#`8D4),=$)`@4 -XM````B40D!.B8>?__BT7,B478BT70B472#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3HF_/__X7` -XM#X4]`0``BT7P.4=8=*J#1V`!B4=8QT7``0```.D(____C4,!B40D!(U%\,=$ -XM)`@$````B00DZ.)X__^+1>2#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3H;O3_ -XM_X7`#X7@````@T=<`<=%P`$```#IMO[__XU#`8E$)`2-1?#'1"0(!````(D$ -XM).B0>/__BT7PB3PDB40D!.@=]___A<`/A9\```"#1V0!QT7``0```.EU_O__ -XMBU7`A=(/A&K^__^-0P''1"0("````(E$)`2+10R)!"3H1'C__S'`@&98[^L= -XMQT0D"$B8"`C'1"0$`P```(D\).A`(@``N`$```"#Q$Q;7E]=PXD\),=$)`AL -XMEP@(QT0D!`(```#H&R(``(/$3+@!````6UY?7<.)^+F(`0``NL"7"`CHO?C_ -XM_[@!````Z[N`9ECON`$```#KL(UT)@"-O"<`````58GE5XG75HG&4X/L+(M8 -XM'(-[(`AW*HU#(,=$)`P)````B40D"(M#'(DT)(E$)`3H3)8``+H!````ABT,H,=*#P`&)0RB)0R2#Q"R)T%M>7UW#C;8`````B?"Z -XMP)<("+G#````Z,_W__^#Q"RZ`0```%N)T%Y?7<-5,<")Y593@^P@BW4(BUX< -XM]D-8$`^%J0```(M++(7)#X6K````@WL@%'B+1?2#P`6)1>R+4QB-1>B)1"0(C47@QT0D#`````")1"0$ -XMB10D_U(0@\`!#X2-````BT,H@\`!B4,HB4,D,<"#Q$!;7EW#N@$```")\.C$ -XM_/__A7<.0C47TB40D -XM$(U%\(E$)`S'1"0(`@```(M%#(DT)(E$)`3H"^K__X7`#X38_O__BT4,@_@! -XM="Z)1"0$B30DZ+_I__^X`0```.N!B?"Y$0$``+K`EP@(Z.?T__^X`0```.EF -XM____QT7T`````,=%\$^-"`CIC_[__XUV`(V\)P````!5B>6+30B+41SV0E@0 -XM=1.+0BR%P'00BT%,B4(LBT%0B4(P73'`PXM!3(E"+(M!4(E",+H"````B'[__^058GE5E.#[""+=0B+1AB%P'0CQT0D"`$```#'1"0$`````(D$).AF -XMR/__BT88B00DZ'M>``"+1@B-7@@YV'00D(D$).AH7@``BT8(.=AU\8M&$(U> -XM$#G8=!:-M"8`````B00DZ$A>``"+1A`YV'7Q]H94"````G10ZUR-M@````"# -XM>P@#N>B8"`B+4PR+0Q!T!;E/C0@(B40D#*$0(0D(B50D$(E,)`C'1"0$\)@( -XM"(D$).AM;/__BQ.%TG0&BT,$B4($BT,$B1"+7FR%VW6Q@\0@6UY=PZ$0(0D( -XMQP0D!P```(E$)`3HF6S__^O;C78`58GE5HG64XG+@^P0BQ40(0D(B00DB50D -XM!.BF;?__A=MT&:$0(0D(B5PD",=$)`2=K0@(B00DZ/EK__^%]G0HZ)!P__^+ -XM`(D$).CF;?__QT0D!)VM"`B)1"0(H1`A"0B)!"3HS6O__Z$0(0D(QP0D"@`` -XM`(E$)`3H&&S__X/$$%M>7<.-M@````"-O"<`````58GE5U93@>R<`0``BT4( -XMBYAH"```A=L/A'L#``"+50B+BI0(``"%R0^$A0,``(M="+_XF`@(BTT(_(G8 -XM@\$(@\`0B8U\_O__BS.)0Q")0Q2#P'")0WR#Z`2)@X0```"#Z$R)0S")0S0% -XM_````(E+"(E+#+D#````QX.``````````,9#<`&)@RP!``")@S`!``#'@T`! -XM````````QX-$`0```````(FU@/[___.F#X6;`@``QX6(_O__`0```,>%E/[_ -XM_P````"+71"0C70F`(/#!(L3A=*)E7C^__]T9OR_`9D("+D#````B=;SIG15 -XMBY5X_O__#[8"/"L/A,\````\+77+B[5X_O__#[9&`83`#X0I`0``/&-T##Q4 -XM=`@\='0$/'=UJ8N%>/[__X!X`@!UG8/#!(/#!(L3A=*)E7C^__]UFHM%"#'_ -XM,=LQ]H.(5`@``$#'A8S^__\`````QX68_O__`````,>%G/[__P````#'A9#^ -XM__\`````C78`QT0D"`29"`B+31")3"0$BT4,B00DZ(IM__^#^/\/A!\"``"# -XMZ$:#^#$/AK4```"+50B[`0```/^2J`@``('$G`$``(G86UY?7<.-M@````") -XMUX/'`8!Z`0!U)<<$)`0```#HS7#__X7`B0,/A'H"``#'`"UC)`#IU/[__XUT -XM)@"+C7C^__^)#"3H]G'__X/``HD$).B;%D/[__P$```#I7O[__\>%E/[__P$```#I3_[__\>%F/[__P$` -XM``#I0/[__XM-"(.A5`@``+_I,?[__XNU@/[__[_WF`@(N00```#SI@^$3?W_ -XM_XNU@/[__[_[F`@(N08```#SI@^%J`0``,>%B/[__P(```#'A93^__\!```` -XMZ3#]___'@&@(```0,@@(BU4(BXJ4"```A7UW#BT7P@XBL!``` -XM`8M="(M%\(M3"(D0BY5\_O__BT7PB5`$.U,,#X1G`P``BTT(BT7PBU$(B4($ -XMBU7PBUT(B5,(B10DZ`?:__^%P'68BX6,_O__A<`/A#`#``#'1<`9````C47( -XMQT7$-P```(N=E/[__X7;=`G'`"H```"#P`2+C9C^__^%R70)QP`2````@\`$ -XMBY60_O__A=)T"<<`,P```(/`!,<`_____XU%P(E$)`2+1?")!"3H8S8``(7` -XM#X4@____A?8/A(H```"-G:3^__^)="0,QT0D"!29"`C'1"0$``$``(D<).@% -XM:___B=F)7=2+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(```'4&P>H0@\$" -XM`-*-1=2#V0.)1>0IV8U%Y(U5P(E-W,=%P`````#'1<@`````B57HQT0D"``` -XM``")1"0$BT7PB00DZ,DK``"+A:#^__^%P`^%M`(``(M5\/:"(`(```$/A(D" -XM``"+@A@"``"-!$#!X`(#0A"+0#B)0C2+5?#V@F`!```!#X19`@``BX)8`0`` -XMC01`P>`"`T(0BT`XB4(XBX6@_O__A<`/A/;]__^+5?"+C83^__^#_W*+=1"- -XM'(X/A`(#``#V@FP$```!#X0G`@``BX)D!```C01`P>`"`T(0BT`X@\`!T>B) -XM@H0```"+10B+@`P!``"%P`^$^P(``(N%G/[__X7`=!V+E9S^__^)5"0$BT7P -XMB00DZ)'.`0"%P`^%KOW__XLSA?9T;(M5\(M"((7`=#V+0`B#ZP2)!"3HOVS_ -XM_X/``8D$).AD:___A<")PHD##X3.`P``BT7PBT`@BT`(B10DB40D!.CC;/__ -XMBU7PB5HHB5HDBT7P@8BL!````"```(/_3\__^-1>R)%"2-7:2)1"0(QT0D!`,```#H^@@``(M5[,<$)`$```") -XM5"0(B40D!.B78?__ZQ2#^`QT2XM%\(D$)(M5"/^29`@``,=$)`P`````QT0D -XM"`````")7"0$BT7PB00DZ.[5__^%P`^%2_K__XM%K(/X!'0-@^@!=;V+1;2# -XM^`AUL(M5\.D-_?__BT(DA564XM`'(G3BU`XA=)T'P^V2A`Q]HG0 -XM.L9D`^V2!`YV7,.B<*+`H7`=?!;B=!>7<.)UCG9=`*)\%N)PEZ)T%W# -XMC78`C;PG`````%6)Y593@^P@BT4,BW40@_@!=%US"^CZ8?__C;8`````@_@" -XM=`LQTH/$((G06UY=PXM5",=$)`0"````B10DZ&W=__^%P'10BU4(BT(WKO(VT)@````"+50B+0AR+6#B%VW2H -XMC78`BT,(.?!R"'0\@^@!B4,(BQN%VW7KZXZ-1?2)1"0$BT4(B00DZ*?=__^Z -XM`0```(7`#X5Q____@WWT`76+C70F`.E@____@$L1`8M%"(E<)`2)!"3HB.[_ -XM_^NUC;8`````58GE5U93@^P,BW4,BWT(@_Y@#X2(````B?*)^.BO_O__A<") -XMPW0/#[9($`^VP3GP#X1Z````QP0D%````.BR9?__A<")P@^$S0```(7;#X2? -XM````BP.%P(D"=`6+`XE0!(D3B5H$BTT0B=.+`8E""(M!!(E"#(GPB$(0BTT4 -XM,<"%R74/B$,1,=*#Q`R)T%M>7UW#B=.X`@```.OHC70F`&:^)P#I;____XVT -XM)@````"+112%P'4I#[9#$3'2@^`#@_@"=,2+51"+`HE#"(M"!(A+$(E###'` -XMZZJ-M@````"+51"+`HE#"(M"!(A+$(E##.NBBT\6#["B)7?2+70R)=?B)??R#^V!T;8M%"(G:Z&_] -XM__^%P(G&=`X/MD`0#[;X.=^(1?-T4X#[_P^$XP```(M5"`^VPXT$0(V$`%`! -XM```#0A"#P`B)1"0,QT0D"(":"`B+10B+512)!"2)5"0$Z,X-``"X`0```(M= -XM](MU^(M]_(GL7<.S)^N/]D81`70R@'WS_P^$G0```(M5"(T$?XV$`%`!```# -XM0A"#P`B)1"0,QT0D")B:"`CKIXVT)@````"+1@B#^`%U!XM>#(7;=$"+50B) -XM1"0$B10DZ++:__^%P'4J@'WS_W1ABU4(C01_C80`4`$```-"$(/`"(E$)`S' -XM1"0(O)H(".E4____BT8(BU40B0*+1@R)0@0QP.E6____BT4(B5PD!(D$).@` -XMR?__Z1____^+10B)?"0$B00DZ.S(___I8O___XM%"(E\)`2)!"3HV,C__^NA -XMC;8`````58GE4X/L!(M=#(M3.(72=""+"H7)=`:+0@2)002+0@2)"(D4).C* -XM8___BU,XA=)UX(/$!#'`6UW#D)"0D)"0D%6)Y8M%"(M`:(7`=`F)10B+2`1= -XM_^%=PY"-M"8`````58GE5U93@^PLBW40QP8`````BU4,#[8"A,!T00^^P(7` -XM>$N+'?P@"0@YV'U!BPT((0D(]D2!-@1U&^LRC70F``^^P(7`>"`Y4'0/A`X!``"+1>`Q]HD$).AZ8O__BU4(@47<``$``(72#X5;____BU7< -XMB10DZ+UA__^%P'5*QT7@3XT(".D<____BT7#I -XM-____XM=X(G7.?,/@T?___\\_W0]BU4(#[;`C01`C80`4`$```-"$(/`"#G> -XM#[80#Y?!A-)U0`^V1P&#QP&$P`^$%?___X3)#X0-____//]UPXM%",=$)`3_ -XM____B00DZ(+&__\YW@^7P0^V$(32=,:-M@````"$R72\B!,/ME`!@\,!.=X/ -XME\&#P`&$TG7GZZ6!H%0(``#__O__,?;I[O[__XE$)`R-0WB+50B)1"0(BT-T -XMB10DB40D!.C7?@``A<`/A.K^__^)0W3I5?[__XM5X#'VB10DZ"YA___IK_[_ -XM_\8#`.GP_?__C;8`````C;PG`````%6)Y8/L.(E=^(M=#(EU_(MU$`^^`X/X -XM?W<*]@2%W10)"`1U'(7V=`J)'"3HE&'__XD&B=B+=?R+7?B)[%W#B?8/OD,! -XM@_A_=]OV!(7=%`D(!'31#[Y#`H/X?W?(]@2%W10)"`1TOH![`WQUN(U%](E% -XMY,=%Z`0```")'"3H\UC__XE%](M%"(7`=%6+50B+0A"%P'1+BU!HA=)T1(U% -XM[(E$)`B-1>3'1"0,`````(E$)`2)%"3_4@R%P'4DBU7PA=)T'87V=`6-0O^) -XM!HM%[,9$`O\`BUWLZ5;___^-="8`@\,$Z3S___^0C;0F`````%6)Y8/L"(M% -XM#(M-"(M5$(/X!78,Z*M:__^-M"8`````_R2%')T("(E5$,=%#,2<"`B)30C) -XMZ=;^__^)51#'10SJF@@(B4T(R>G#_O__B540QT4,9)P("(E-",GIL/[__XE5 -XM$,=%#(2<"`B)30C)Z9W^__^)51#'10S]F@@(B4T(R>F*_O__B540QT4,&YL( -XM"(E-",GI=_[__XVT)@````!5B>575E.#["R+10B+<""+1@B)!"3H&F#__XM= -XM"(7;B47H#X3M````BU4(BUH0A=L/A-\```#V@U4(```!#X72````C02%@``` -XM`#M#>`^'9`4``(M+=(E-X(M#>(E%[(&+5`@````!``"+10B+<""+5@B+?>`/ -XMM@*$P`^$Y@```(G6ZU>+50@/ML"-!$`!P`-"$`^VF%T!``")7>@/M@8\_W1= -XMBU4(#[;`C01`C80`4`$```-"$(/`"(D\)(E<)`B)1"0$Z$M>__\/MD8!@\8! -XM`WWHA,`/A(L````\_W6EQT0D!/____^+30B)#"3H;L7__XG#B5WH#[8&//]U -XMI8GVQT0D!/____^+30B)#"3H3`"`T$0BT`XA<`/E<"$P`^%"0(``,8".HUR -XM`L9"`2#V11`!#X0K`0``C47PB40D!(M%"(D$).BMT___A<`/A0D!``"+1?"% -XMP`^%C0(``(U5Z(E4)`C'1"0$CYL("(M-"(D,).B0^___BU7HB30DB50D"(E$ -XM)`3H(5S__XGP`T7HZ0B)%"2)3"0(QT0D!%F;"`CH7/O__XG"Z1O_ -XM__^-5>B)5"0(QT0D!$B;"`B+30B)#"3H._O__XM5Z(D<)(E4)`B)1"0$Z,Q; -XM__^)V`-%Z,8`+(U8`L9``2"+50B+0ASV0%@$#X2S_O__ZY2+=>"+30B)#"3H -XM*34!`(M%"(M0$(M%Z(ET)`C'1"0$!````(E$)`R+30B)#"3_DI0(``"+10B% -XMP'06BU4(BT(0AB)1"0(QT0D!+J;"`B+50B)%"3HBOK__XM-#(DT)(E,)`B)1"0$Z)M<__^) -XM-"3H,US__XT$!HU(`<8`"HG(*T7@]D40`HE%Z`^$3?___XM5"(MR.#GP#X8_ -XM____BU7@C5[].?IR+#G7=#>-C&0@$@C5H"B0PDB40D",=$)`1UFP@(Z'CY__^+5>B)'"2)5"0(B40D!.@) -XM6O__B=H#5>CI2?W__X/@[V:)01B-3>B)3"0(QT0D!#N;"`B+10B)!"3H.OG_ -XM_XM5Z(D<)(E4)`B)1"0$Z,M9__^)V@-5Z.G[_/__C47HB40D",=$)`2>FP@( -XMBU4(B10DZ`/Y__\QTHE$)`2+3?!K70QDB4PD#(G8]_&)1"00BTT,B30DB4PD -XM".C_6O__B30DZ)=:__^-!`;I7_[__X&@5`@``/_^__^#Q"Q;7E]=PXE$)`R- -XM0WB)1"0(BT-TB40D!(M5"(D4).@\=P``A<`/A.C]__^)0W3I;_K__XVV```` -XM`(V_`````%6)Y5=64X/L/(MU"/:&K@0```0/A;"`C'1"0$&0```(E$)`SH-%;__XU5[(E%U`'#B47L,<")5"0(@WR^7`&) -XM-"0/E<"+!(50G0@(B40D!.AD]___BU7LB1PDB50D"(E$)`3H]5?__XM%[(U5 -XM[`'#B47@Q@,@BP2]6)T("(/#`8E4)`B)-"2)1"0$Z"GW__^+5>R)'"2)5"0( -XMB40D!.BZ5___BT7LBU7@`<.-1!`!`T78`T74B478,<#'1+Y<`````(/'`8/_ -XM!P^%'?___\8#"HDT).@0,0$`BT78BU80@\`!B40D#(M%W,=$)`0$````B30D -XMB40D"/^2E`@``(7V=`^+1A"%P'0(BU7<.5!T=&B+1=R)!"3HL5?__X/$/%M> -XM7UW#BX8@`P``C01`P>`"`T80BT@XZ3'^__\PP,=$AEP`````@\`!@_@'=?"# -XMQ#Q;7E]=PX%[>+P"``!V)XM#=(E%W(M#>(E%\(&+5`@````!``#I8?[__X&@ -XM5`@``/_^___KEXU#>,=$)`R]`@``B40D"(M#=(DT)(E$)`3HMG0``(7`#X1Q -XM____B4-TZZZ)]HV\)P````!5B>575E.#[#R+?0B%_P^$9`0``(M%"(-]#`:+ -XM0!")1=AV!>B,4?__BU4,_R25-)T(",=%#`,```"A*"$)"(/``:,H(0D(@^@! -XM=$:#Q#Q;7E]=PXM%"/:`,`0```$/A#@$``"+@"@$``"+5=B-!$"+3((XA+1>R- -XM'`8[7?!W'(!]UP"--`$`0`` -XMBU-TB57@BT-XB47P@8M4"`````$``(-]#`4/A`L!``"#?0P##X7R_O__BWW@ -XM,?;&1=<`BT4(A<`/A.?^__^+1=B%P`^$W/[__XM%V(N0!`$``(72#X3+_O__ -XM#[8"A,`/A$P!``")T^M5C78`BU4(#[;`C01`C80`4`$```-"$(/`"(E$)`S' -XM1"0(GZT("(M%\(D\)"GPB40D!.B!4O__`<8[=?")1>P/A^_^__\!QP^V0P&# -XMPP&$P`^$\P```#S_=:K'1"0$_____XM%"(D$).B7N?__ZZN0C70F`(M%W,=% -XM\`````#'1>``````A<`/A"'___^+1=R-5?")5"0(QT0D!`````")1"0,BT4( -XMB00DZ`9R``"%P`^$A@$``(-]#`6)1>`/A?7^__^-1>R)1"0(QT0D!,R;"`B+ -XM10B)!"3H-_/__XM5[#E5\`^"2_[__XE4)`B)1"0$BU7@B10DZ+Q3__^+=>R+ -XM?>#&1=(E4)`R)1"0(BT-TB40D -XM!(M%"(D$).A[<0``A<`/A/L```")0W3I3_[__XM5V(N""`$``,=$)`C8FP@( -XMB40D#(M%\(D\)"GPB40D!.A)4?__`<8[=?")1>P/A[?]__\!Q^DY_?__Z(]0 -XM__^+`(D$).CE3?__QT0D")VM"`B)1"0,BT7PB30D*=B)1"0$Z`A1__\!PSM= -XM\(E%[`^'=OW__P'&@\,!.UWPQT4,`P````^'8?W__\8&"HM]"(7_=`N+10B) -XM!"3H7"P!`(MUV(7V#X3Y````B5PD#(M5X(E4)`B+10R)1"0$BU4(B10DBT78 -XM_Y"4"```BTT(A`Y4'0/A.````"+1>")!"3H[%+_ -XM_\<%*"$)"`````"#Q#Q;7E]=PXM%"/:`K`0```(/A.C[___V@#`$```!=6Z+ -XM10B+F"@$``"%VP^4P(3`#X3)^___BU78@XI4"````NG3^___@WT,`G0P@WT, -XM!L=%V``````/A:K[___'10P$````Z9[[__^+10B+D"@$``"%T@^4P.G*^___ -XMQT4,`P```,=%V`````#I>/O__XN`*`0``(M5V(T$0(MT@CB%]@^4P.N)BU7@ -XMH1`A"0B)7"0(QT0D!/*8"`B)5"0,B00DZ&Q*___I`____X&@5`@``/_^___I -XM'/___XUT)@!5B>6#[#B)=?B+=1")??R+?0B)7?2%]G1IZ-9.__^+&(U%\(ET -XM)`2)1"0(B3PDZ#WN__^)QNBZ3O__B1B+112)="0,B3PDB40D"(M%#(E$)`3H -XMFOK__XM%\(7`=!B%_W0,BT<0A"-1>C'1>0$````QT7P`0```(E$)`B- -XM1>#'1"0,`````(E$)`2)'"3_4PR%P'4*@WWL$@^$`P$``(D<)/]3!*'L$`D( -XMA<`/A+L```#'!>P0"0@`````N`$```"!Q#P$``!;7E]=PZ'L$`D(A7UW#QP0DWYL(".@H2?__ABX\)L("+D2````_(G'\Z8/A>7^ -XM__^+10C'!>P0"0@`````BU`0BT)HA575C'V4X/L#(M]"(G[ZQ*#QA"#PPR!_O`$```/A+P```"#OFBC -XM"`@#=>7VAFRC"`@!==P/MI,``0``@^(!#X2B````BX/X````C01`P>`"`T<0 -XMBT`XA<`/E<"$P'0LA-(/A*0```"+@_@```"-!$#!X`(#1Q"+0#B)!"3HX4[_ -XM_P^VDP`!``"#X@&$TG1GBX/X````C01`P>`"`T<0BT@\A7UW#BX/X````A<`/E<#I9?___XN#_````(7`#Y7`ZZ.+@_P` -XM``#KN8N#^````.EC____D(VT)@````!5B>6#[!B+10S'1"0,=)T(",=$)`0# -XM````B40D"(M%"(D$).@8_/__R<.-M@````!5B>53@^P4BTT,BUT(C01)C02# -XM]H```0```70TBX#X````C01`P>`"`T,0BU`XA=)T!S'`@#H`=0R+51"X`0`` -XM`(72=!.#Q!1;7<.0C70F`(N0^````.O6P>$$BX%@HP@(B1PDQT0D#+"="`C' -XM1"0$`P```(E$)`CHD_O__X/$%+@!````6UW#D(VT)@````!5B>6#[%B)7?2+ -XM70B-1>R)=?B)??S'1"000%<%"(E=[,=$)`P(````QT0D""8```#'1"0$8*@( -XM"(D$).AD2___AQ=PXU%W(E=W,=$ -XM)!`@5P4(QT0D#!````#'1"0(3P```,=$)`1@HP@(B00DZ!I+__^%P'7!B1PD -XMZ)Y-__^+-6"C"`B%]HE%R'19#[8#QT708*,(",=%Q`````"(1<_K%(VT)@`` -XM``"#1=`0BT70BS"%]G0G#[9%SS@&?.M_'8M%R(G?_#G`B<'SIG7;BTW$A`"`T80BU`XBP.)5"0,QT0D!':?"`B)-"2)1"0(Z/XD -XM`0")PNGZ_O__C;0F`````(N`^````(T$0,'@`@-&$(M`.(7`#Y3`ZY:-M"8` -XM````BX#X````C01`P>`"`T80BT`XZ3+___^+@/@```"-!$#!X`(#1A"+0#B% -XMP`^5P.G/_O__C01)BY2&^````.EV____C;0F`````(V\)P````!5B>575E.! -XM[,P"``"+10B+2#C'A53]__\*````C70F`#'2B#'A43]__\`````QX50_?__`````,>%7/W__P````"#Z@*)E3S]__^) -XMC3C]__^+E5S]__\/MH)LHP@(J`0/A1`!``")U\'_!(-]#`)T%8-]#`,/A&(" -XM``"#?0P!=%'H7$3__Z@!=4B+C5S]__^+@6BC"`B#^`(/A\\#``"+50B-!'^- -XM!(+V@``!```!#X2=!```BX#X````C01`P>`"`T(0BU`XBT`\.<(/A*0```"+ -XM50B-!'^--(*-AO`````/ME@0@^/]B%@0BXU<_?__BX%@HP@(B00DZ/-)__^+ -XME5S]__^)A4S]__^+@FBC"`B#^`(/A'D"```/@]8!``"#XP$/A%H"``"+AO@` -XM``"+30B-!$#!X`(#01"+0#B%P`^4P(3`=`>#A4S]__\"BX4\_?__.85,_?__ -XM#X\(`@``BY50_?__B;R5:/W__X/"`8F54/W__XN57/W__XN"<*,("(/"$(F5 -XM7/W__X7`#X6^_O__BY50_?__A=(/CNX```"+C5#]__\YC53]__\/C#L#``#' -XMA5C]__\!````QX5`_?__`````,>%8/W__P````"+A53]__^%P'Y[BX58_?__ -XM,?8QVXN50/W__XT\$.LXBX5(_?__@\8!BTT(QT0D#$^-"`C'1"0$?I\(""G0 -XMB40D"(D,).@D(@$``YU8_?__.[54_?__="Z+E4#]__^-!!.+E(5H_?__BT4( -XMP>($@<)@HP@(Z,7[__^)PHT$'SF%4/W__W^:@X5@_?__`8N%8/W__SF%6/W_ -XM_P^/'0,``(.]1/W__P`/A+(!``"+50C'1"0$)KH("(D4).@?(0$`BX5$_?__ -XM,=N-M:3^__^%P`^.B0$``(L4GH/#`8M%",'B!('"8*,(".A2^___.YU$_?__ -XM#X1F`0``BTT(QT0D!":Z"`B)#"3HTR`!`.O(BTT(C01_]H2!``$```(/A(7^ -XM___IW/W__X/X`P^%3_[__XG:@^(!#X1"`0``BTT(C01_BX2!^````(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,!T(X32#X7O`0``BTT(C01_BX2!^````(D$).BI1___ -XM`85,_?__@X5,_?__`XN%//W__SF%3/W__P^.^/W__XN-1/W__XF\C:3^__^# -XMP0&)C43]___I\_W__XNV^````(7V#Y3`Z;#]__^#XP$/A,<```"+AO@```"+ -XM50B-!$#!X`(#0A"+0#B-3>")#"2)1"0,QT0D"+.@"`C'1"0$%````.@"1/__ -XMC4W@BP&#P02-D/_^_O[WT"'"@>*`@("`=.GWPH"````/A"(!````TH/9`RN- -XM./W__P&-3/W__^E"_?__@\`&,=*#X/J)A4C]__^)R/>U2/W__XF%5/W__^GA -XM^___D(M%",=$)`0FN@@(B00DZ&T?`0"!Q,P"``!;7E]=PXM-"(T$?XN,@?@` -XM``"%R0^5P.G%_O__BX;X````Z4/___^#^`,/A5O\__^+30B-!'^-!($/MH@` -XM`0``@^$!#X2Q````BX#X````BU4(C01`P>`"`T(0BU`XBT`\.<(/A,;\__^$ -XMR0^%JP```(M5"(T$?XT$@HN0_````(72#X0#_/__BX#X````B50D!(D$).BQ -XM0O__A<`/A(W\___IY/O__XN54/W__XG0P?H?][U4_?__@_H!@]C_A<")A5C] -XM__\/CZK\___I=_W__\'J$(/!`NG3_O__BU4(C01_BX2"^````(T$0,'@`@-" -XM$(M`..D`_O__BY#X````BX#\````Z5;___^+D/@```"+@/P```#I9_O__XM- -XM"(T$?XN$@?@```"-!$#!X`(#01"+4#R%T@^$3OO__XM`..E)____BU4(QT0D -XM!":Z"`B)%"3H#QX!`(N-8/W__XF-0/W__^DA_/__C;0F`````(V\)P````!5 -XMB>6#[!B+10R)??R+?0B)7?2)=?B+=1"-!$#!X`*-%#CV@@`!```!C9P'^``` -XM`'06BX+X````C01`C02%,`````-'$(U8"/?&"````'5Q]\8!````=#[WQ@P` -XM```/A)T```"#Y@)U&(M#!(7`C78`=`Z)!"3H"D3__XVV`````(M5%#'`B5,$ -XMBUWTBW7XBWW\B>Q=P_?&#````'18@^8"=0Z+`X7`=`B)!"3HU$/__XM5%#'` -XMB1/KSXVT)@````"+112)!"3H*3W__X7`B444#X5Y____QT0D"`````#'1"0$ -XM!0```(D\).B"[/__N`$```#KDXM%&(D#,<#KBHGVBT48B4,$,<#I>____XUV -XM`%6)Y57VAVRC"`@!==R+1?"%P`^%'`$``/:#``$```$/A`$!``"+@_@```"+50R- -XM!$#!X`(#0A"+0#B%P`^$\@```(M5#,=$)!``````B40D#,=$)`@*````B70D -XM!(D4).@T_O__A<`/A2H!```/MI,``0``@^(!#X0*`0``BX/X````BTT,C01` -XMP>`"`T$0BT`\A<`/E<"$P`^$2O___X32#X0<`0``BX/X````BU4,C01`P>`" -XM`T(0BT`\BTT,QT0D$`````")1"0,QT0D"`L```")="0$B0PDZ+K]__^%P`^$ -XM`O___XM%"(/&`8/'$,=$)`@`````@\,,QT0D!`4```")!"3H_NK__X/^3\=% -XM\`$````/A>#^__^+1?"#Q!Q;7E]=PXN#^````(7`#X4.____BTT,QT0D$``` -XM``#'1"0,`````,=$)`@&````B70D!(D,).@^_?__BT4,QT0D$`````#'1"0, -XM`````,=$)`@'````B70D!(D$).@7_?__Z6+^__^+@_P```"%P`^5P.D`____ -XMBTT,QT0D$`````#'1"0,`````,=$)`@'````B70D!(D,).C;_/__Z23___^+ -XM@_P```#I[O[__XUT)@"-O"<`````58GE5U93@^Q\Z8/A&4YV9`/A%H(``"`^CW'1<0!````QT7(`````'0.QT7$```` -XM`,=%R`$```"%R<=%[`````#'1=``````=`G&`0"#P0&)3=")'"3H]O+__X7` -XMB<P/MD<, -XMA=(/E<&H(`^%`0(``*@0#X57`@``BU7$A=(/A3H%``"+5R%P`^%#`,``(M%R(7`#X1V`0``BT6X -XMA_O__]D<,`G5@BTT(C01;C02!#[:0``$``(/B`0^$ -XM&00``(N`^````(T$0,'@`@-!$(MP.(7V#Y7`A,!T+(32#X6)!```BTT(C01; -XMBX2!^````(M5T(D$)(E4)`3HPSO__X7`#X33_O__BT<$A/[__X3)#X3W_?__QT0D#-"= -XM"`B+10B)="0(QT0D!`,```")!"3HY>O__\=%S`$```#I1?[__X![`6\/A8C^ -XM__^-P!````B30DZ#WP__^%P(G'#X5'_?__Z6?^__^%T@^%H?W__\=$ -XM)`P`G@@(Z9,!``"+1<2%P`^$?_[__XM5T`^^`H/X?P^'GP```/8$A=T4"0@$ -XM#X21````C47@C4WPQT0D#`H```")1"0(B50D!(D,).CS6```B46\@^@!#X25 -XM`P``BU4(C47HB70D!(E$)`B)%"3HH=G__XM5"(U-Y(E,)`B)%"2)PXM%T(E$ -XM)`3HAMG__X-]O`&)Q@^#-P4``(M-"(E$)!")7"0,QT0D")"?"`C'1"0$!0`` -XM`(D,).C7Y?__ZUN0C70F`(M5"(U%Z(ET)`2)1"0(B10DZ#K9__^+50B-3>2) -XM3"0(B10DB<.+1=")1"0$Z!_9__^+30B)7"0,QT0D"*B>"`C'1"0$`P```(D, -XM)(G&B40D$.AZY?__BT7HA2%VP^$/O[__XM-"(7)=!.+30B+01"%P'0).W!T#X1#!``` -XMB30DZ#@\___'1`/M@"$P'0G#[[0A=(/B+W\__\[%?P@ -XM"0@/C;'\__^A""$)"/9$D#8"#X2A_/__#[9'#*A`=`N+5?"%T@^$VP$``*@" -XM=3&+50B-!%N-!(+V@``!```!#X3.`0``BX#X````C01`P>`"`T(0BT`X.T7P -XM#X2E^?__BT<$ASIM/S__XNP^````(7V#Y3`Z6O\__^!H%0( -XM``#__O__Z9C[__^!H%0(``#__O__QT7,`0```.E/^/__BY#X````A=(/E<#I -XM-OS__X-]O`)T$H-]O`,/A3G[__^-=@#ID?C__XE$)!"+10B)7"0,QT0D"("> -XM"`C'1"0$`P```(D$).B(X/__Z0G[___'1"0,U)X(".F*^?__BX#X````Z3G^ -XM__^+10C'1"00`0```,=$)`P`````QT0D"`````")7"0$B00DZ-3R___IN_?_ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y8'L6`0``(EU^(MU"(U%V(E=](V=R/O__XE% -XMZ(U%R(E]_(G?B5W8QT7(`````,=%T`````#'1>``````B47LQT0D$`,```#' -XM1"0,`````,=$)`@`````QT0D!#\```")-"3H5_+__X7`=3.`CO0#```!QT0D -XM$`$```#'1"0,`````,=$)`@`````QT0D!!@```")-"3H)/+__X7`=$#!XP2+ -XM@V"C"`C'1"0(2)\(",=$)`0#````B30DB40D#.AKW___N@$```"+7?2)T(MU -XM^(M]_(GL7<.-M"8`````@(X@`@```<=$)!``````QT0D#`````#'1"0(```` -XM`,=$)`0(````B30DZ+'Q__^%P'6-@(Y@`0```<=$)!`"````QT0D#`````#' -XM1"0(`````,=$)`0S````B30DZ'[Q__^%P`^%5O___X".9`,```''!"2GGP@( -XMZ-*`@("`=.GWPH"```!U!L'J$(/!`@#2NPH```"#V0,I -XM^8U5Z(E-X,=$)`@`````B50D!(DT).BL\___A<`/A43^__^!_]*?"`B)^W0E -XMQX7(^___97-C8<>%S/O__W!E=&G'A=#[__]M93TVQH74^___`(G9BP&#P02- -XMD/_^_O[WT"'"@>*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*?F-1>B)3>#' -XM1"0(`````(E$)`2)-"3H+?/__X7`=!2[#````.F__?__N"'5"`CI>O[__X'_ -XMWY\("'0=QX7(^___:V5Y=,>%S/O__VEM93UFQX70^___-@")^8L!@\$$C9#_ -XM_O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D -XM"`````")5"0$B30DZ*CR__^%P'04NQ8```#I.OW__[B_GP@(Z7O^__^!^^F? -XM"`AT'L>%R/O__VUA=&/'A*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0( -XM`````(E$)`2)-"3H(O+__X7`=`J['0```.FT_/__QT0D#/6?"`C'1"0(#*`( -XM",=$)`0`!```B1PDZ,@P__^)V8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*` -XM@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D"`````")5"0$B30DZ*SQ__^% -XMP'0*NR````#I/OS__X'[%J`("(G?=!O'A%S/O__V=R87#'A=#[__]H% -XMV/O__U!14%#'A=S[__\@3$EPQX7@^___<&QP:<>%Y/O__W!B<`")V8L!@\$$ -XMC9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLF````@]D#*?F- -XM5>B)3>#'1"0(`````(E4)`2)-"3HA/#__X7`#X4<^___QT0D#$^-"`C'1"0( -XML)\(",=$)`0`!```B3PDZ#`O__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I -XM]\*`@```=0;!ZA"#P0(`TKLG````@]D#*?F-1>B)3>#'1"0(`````(E$)`2) -XM-"3H#_#__X7`#X6G^O__QT0D#!^@"`C'1"0(,Z`(",=$)`0`!```B3PDZ+LN -XM__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLK -XM````@]D#*?F-5>B)3>#'1"0(`````(E4)`2)-"3HFN___X7`#X4R^O__@?\] -XMH`@(B?MT.\>%R/O__W-E8W3'A%U/O__TA( -XM($C'A=C[__]5;FAS9L>%W/O__V@`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,I^8U%Z(E-X,=$)`@`````B40D!(DT).@% -XM[___A%S/O__VQM973'A=#[__]A/7Y[QX74^___6RH_),>% -XMV/O__V`G(ES&A=S[__\`C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0(`````(E$)`2)-"3HS.W_ -XM_X7`=`J[-0```.E>^/__@?M_H`@(="7'A% -XMT/O__W1H/3C&A=3[__\`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(`` -XM`'4&P>H0@\$"`-*[-@```(/9`RN-O/O__XU5Z,=$)`@`````B4W@B50D!(DT -XM).A`[?__A<`/A=CW__^!O;S[__^,H`@(="?'A%T/O__VQL/3%FQX74^___-@"-CH0@\$"`-*[.0```(/9`RN-O/O__XU%Z,=$)`@````` -XMB4W@B40D!(DT).BP[/__A<`/A4CW__^!O;S[__^:H`@(=!W'A")5"0$B30DZ"KL__^%P`^%PO;__XV%R/O__\=$)`Q@P0@(QT0D"*2@"`C' -XM1"0$``0``(D$).C0*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NSX```"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3HI^O__X7`#X4_]O__]H8@`@```0^$QP$``(N&&`(``(T$0,'@`@-& -XM$(M`.(/H`='HA<")1?!U!\=%\`$```"+1?#'1"0(K*`(",=$)`0`!```B40D -XM#(V%R/O__XD$).@<*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NS````"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3H\^K__X7`#X6+]?__BT80C57PB50D!(DT)/^08`@``+H!````A<`/ -XMA97U__^+1?`]6`(```^'U````,=%\`@```"+1?#'1"0(MZ`(",=$)`0`!``` -XMB40D#(V%R/O__XD$).AE*?__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("` -XM=.GWPH"```!U!L'J$(/!`@#2NTD```"#V0,KC;S[__^-5>C'1"0(`````(E- -XMX(E4)`2)-"3H/.K__X7`#X74]/__H6"C"`B%P`^$L`$``(GS,?^)^,'@!(F% -XMP/O__XN`:*,("(/X`0^$9`$```^"L0```(/X`@^$`@$``(/X`XVT)@````!T -XM,^C-)?__/;`$``"-="8`#X>\````QT7P$````(UV`.D5____BX88`@``@^@! -XMT>CI0/[__P^VDP`!``"#X@$/A(````"+@_@```"-!$#!X`(#1A"+0#B%P`^5 -XMP(3`=#Z$TG19BX/X````C01`P>`"`T80BT`XQT0D$`````")1"0,QT0D"`L` -XM``")?"0$B30DZ!KF__^%P`^%\O/__XN%P/O__X/##(N`<*,("(7`#X3$```` -XM@\O___S'2Z:3R__^+&^ES\O__ -XMC78`58GE5U93@^PLBQ5@HP@(BWT,A=(/A)L"``#'1?``````Z8(```"+3>2- -XM!$F+30B-!('V@``!```!#X1>`@``BX#X````C01`P>`"`T$0BT`XA<`/E<"$ -XMP`^$%@(``(E4)`C'1"0$PJ`("(D\).CR(/__H:`4"0B%P`^%<0$```^_1PS! -XMZ`:#X`&$P`^%=`$``(M-\(N1<*,("(/!$(E-\(72#X0-`@``BT7P]H!LHP@( -XM"'7=BTWPP?@$B47DBX%HHP@(@_@"#X1D`0``#X)4____@_@#=9N+5>2+30B- -XM!%*-!('V@``!```!#X2=`0``BX#X````C01`P>`"`T$0BT`XA<`/E,"$P`^% -XM8____XE\)`S'1"0(!````,=$)`0!````QP0DXJ`(".AU)O__BU7PBX)@HP@( -XM#[8PB?&$R0^$L`$```^^V8E%[.MTC78`H0@A"0CV1)@V`G1QH:`4"0B%P`^% -XM=P$``(M'"(/H`87`B4<(#XC4`@``BP?&`%R#P`&)!Z&@%`D(A(&(/``8D'BTWL#[9Q`8/!`8E-[(GPA,`/A#2-!$F+30B-!('V@``!```!=&B+ -XM@/@```"-!$#!X`(#01"+0#B)1"0,B50D",=$)`34H`@(B3PDZ/4>___I_OW_ -XM_XE4)`C'1"0$RJ`("(D\).C<'O__Z>7]__^+@/@```"%P`^4P.EJ_O__BX#X -XM````A<`/E<#IJ?W__XN`^````.NB@\0L,CK;8GVH0@A"0CV1)@V`G1KBPV@%`D(A+%:`4"0B%TG5)BT<(@^@!A<")1PAX2HL' -XMB!B#P`&)!XM5Z`^V<@&#P@&)5>B)\83)=%T/OMF%VW@(.1W\(`D(?XF)\8#Y -XM7'2.BQ6@%`D(A=)TMXE\)`2)'"3H)\#P*D'6JB7PD!(D< -XM).@6)/__ZZ6)?"0$QP0D7````.A$'O__Z7#___^AH!0)"(7`=6>+1PB#Z`&% -XMP(E'"`^(G@```(L'Q@`*@\`!B0?I)/S__SM'&`^-(_W__XE\)`3'!"1<```` -XMZ+TC___I&/W__SM'&`^-%O___XE\)`3'!"1<````Z)\C___I"____XN`^``` -XM`.FT_O__B7PD!,<$)`H```#HOQW__^G(^___B7PD!,<$)#T```#HJAW__^E? -XM_O__.T<8#XU,_O__B7PD!,<$)#T```#H3"/__^E!_O__B7PD!,<$)`H```#H -XM-R/__XUV`.E]^___D)"0D)"0D)"0D)!5B>6+112+50B+`(7`=!&!HJP$``#_ -XM_]__,6+10B#B*P$```@,Q=PXN1&`(``(U"_^O+C012P>`"`T$0 -XMBT`X@^@!Z\>-M"8`````C;PG`````%6)Y5.#["2+70B-5?B+0Q")5"0$B1PD -XM_Y!@"```N@$```"%P'4+,-*!??C`$@``=P^#Q"2)T%M=PXVT)@````"+112) -XM1"0,BT40B40D"(M%#(D<)(E$)`3H$____X/$)%M=B<*)T,.)]HV\)P````!5 -XMB>53@^PDBUT(C57XBT,0B50D!(D<)/^08`@``+H!````A6#[!B+112+"(7)=2N+10C'1"00`````,=$ -XM)`P`````QT0D"`````#'1"0$0P```(D$).CFW/__R3'`PXGV58GE@^P8BT40 -XMB00DZ`,B__\QTJ@!=""+10C'1"0(F*D(",=$)`0#````B00DZ![*__^Z`0`` -XM`,F)T,.0C70F`%6)Y8/L&(M%$(D$).C#(?__,=*H`70@BT4(QT0D"-"I"`C' -XM1"0$`P```(D$).C>R?__N@$```#)B=##D(UT)@!5B>6#[!B+10C'1"0(#*H( -XM",=$)`0#````B00DZ*_)__\QP,G#C70F`(V\)P````!5B>6#["B)=?B+=12) -XM7?2+70B)??R+!H7`#X01`0``/?0!``!V,L=$)`ST`0``QT0D"&"J"`C'1"0$ -XM`P```(D<).A:R?__N`$```"+7?2+=?B+??R)[%W#B40D$,=$)`P`````QT0D -XM"`````#'1"0$&````(D<).BTV___BP:#^`$/A/D```"#Z`'1Z(F#A`````^V -XM@VP$``"#X`&)QP^%O````(N+9`0``(N#:`0``(G*.<$/A%L!``")^(3`=`R- -XM!%+!X`(#0Q"+4#B+!CG"#X8:`0``@^@!B40D$,=$)`P`````QT0D"`````#' -XM1"0$20```(D<).@SV___BP:#Z`&)1"00QT0D#`````#'1"0(`0```,=$)`1) -XM````B1PDZ`K;__\QP.D>____C78`QT0D#`$```#'1"0(-*H(",=$)`0#```` -XMB1PDZ%#(__^X`0```.GQ_O__C;8`````BY-D!```C012P>`"`T,0BT@XBT`\ -XMZ3C___^-M@`````/MH-L!```QX.$`````0```(/@`8G'=%^+DV0$``"-!%+! -XMX`(#0Q"+2#B+0#PYP70*B?B$P'50.Q9V-<=$)!`!````QT0D#`````#'1"0( -XM`````,=$)`1)````B1PDZ$W:___'1"00`0```.D6____,<#I5/[__XN+9`0` -XM`(N#:`0``(G*ZZ:-!%+!X`(#0Q"+4#CKHHL&Z;K^__^-="8`58GE@^P8BT44 -XMBP"#^!-V0#'2/?0!``!W!\F)T,.-=@#'1"0,]`$``,=$)`BXJ@@(QT0D!`,` -XM``"+10B)!"3H/53@^P$BUT( -XMB1PDZ*Z$__\QP(.+K`0``""#Q`1;76#[`B+ -XM11")1"0$BT4(B00DZ!C,__\QP,G#D)"0D%6)Y5=64X/L3(MU#(M]"(7V#X3I -XM`@``BU44BUX(@SH!#X1B`P``]D88`0^$G0```(M%'(7`=6*+312+`8/H`8M5 -XM&(/&"(E%\(/``3GSB0)U$.M-@T7P`8-'7`&+&SGS=#^+0Q")1"00BT,(B40D -XM#(M%\,=$)`0!````B3PDB40D".C*F/__A2)1"0,QT0D"`$```")5"0$B3PDZ`F1 -XM__^%P'6/A?\/A/,"``"+5Q"%THE5T`^$Y0(``/:"50@```$/A=@"``"+1>B+ -XM3=`#0Q"#P`$[07@/A[T#``"+3="+5="+272)3R!BE0(`````0`` -XMB4W4BT7HA`[`P^$\`(``(M5\(M#$(E$)!"+0PB)5"0( -XMQT0D!`$```")/"2)1"0,Z(66__^%P'3"NP$```"%_W03BT<0A#X1\ -XM`@``BT,0B40D$(M#"(E$)`R+1?#'1"0$`0```(D\)(E$)`CH8Y7__X7`=,7I -XME/S__XM%Z,=%[``````#0Q#'1<@`````QT74`````(/``0^$./W__XE$)`R- -XM1>R)1"0(QT0D!`````")/"3HNS8``(7`B47(B474#X4/_?__Z4+\__^!IE0( -XM``#__O__BU7`BT7$`T(0.T9X=V:+3G2)3R!CE0(`````0``B4W4 -XMZ:#]__\QP(-[$``/E<#I-_W__P^VA)`T!```Z9;^__^)1"0,C47LB40D"(M- -XMR(D\)(E,)`3H/38``(7`#X3/^___B47(B474Z5C]__^)1"0,C49XB40D"(M& -XM=(D\)(E$)`3H$#8``(7`#X2B^___B49TZ7#___^)1"0,B2)1"0$BT7(B00DZ,,6__^+5=B+3<@!5>0! -XMT8E-S.DS^___BTT8,=O'`0$```#'000`````Z33Z__^!H%0(``#__O__Z27Z -XM___'1"0$_P```(D\).C&>___Z>/\__^+5<2)5"0(BT7DB40D!(M-S(D,).A< -XM%O__BT7$`47,BU7PZ3/___^0D)"0D)"0D)"058GEBT4(5U93BT@0BU$(C7D( -XM.?IT"CG0=3N+$CG7=4"+41"-<1`Y\G1`BQHYWG1,BT($B4,$BT($.<9T.HD8 -XMBT$(B7H$B0(Y>0QT)HM!"(E0!(E1"%N)T%Y?7<.-="8`.=!U\3G0=/CKZS'2 -XMC70F`.OCB5$,Z]N)61#KPXM"!(E!%(L:Z["-=@"-O"<`````58GE5S'_5E.# -XM[`R+=0B+1@R#Z`&%P(E&#`^%'`$``(L6A=)T)(M>$(U#"#G"#X1&`0``BT8$ -XMB4($BTX$C4,(.<$/A$L!``")$8.FK`0``/._`0```(DT).B3P`$`B30DBN?C8;(````B00DZ.<3__^+AN`` -XM``"%P'6:ZZ"+1@2)0PR+7A"+3@2+%HU#"#G!#X6U_O__B5,(Z:_^__^-M@`` -XM``!5B>575E.#[`R+11"+=0B+?0S'``````#'1"0$L`0``,<$)`$```#H.!+_ -XM_X7`B<,/A%0"``"+11")&(M&!(/``87_B48$B4,(C4-XQT,,`0```(ES$,=# -XM+`(```")0WB)0WP/A.1H````@8NL!````(```(B#J````(N7P````#'` -XM@[^L``````^5P(72B8.L````="2+A\0```")5"0$B1PDB40D".C$+P``A<") -XM@\`````/A$8!``"+E]@```"+A\0```"%THF#Q````'0DBX?<````B50D!(D< -XM)(E$)`CHBB\``(7`B8/8````#X0,`0``BY?@````BX?<````A=*)@]P```!T -XM)(N'Y````(E4)`2)'"2)1"0(Z%`O``"%P(F#X`````^$T@```(N'Y````(F# -XMY````(N'[````(7`=$V--(4`````B30DZ&$2__^%P(F#Z````'1XBX?L```` -XMBY/H````B8/L````BX?P````B8/P````BX?H````B70D"(D4)(E$)`3H4Q+_ -XM_XE<)`2)/"3H0\___X7`=1^+AZP$``")7"0$B3PD@^`#"8.L!```Z(36``"% -XMP'1ZB1PDZ&C\__^X`0```(/$#%M>7UW#QT0D"`````#'1"0$!0```(D<).A3 -XMN___BY/H````A=(/A6+___^0C70F`,=$)`@`````QT0D!`4```")/"3H*+O_ -XM_^NFC;8`````QX.L`````````(E<)`2)/"3H"M8``(7`=8:)7"0$B3PDZ%J] -XM`0"%P`^%`/MDL!.,@/A`0!``"#[@$/A"`"```/OM`XP8E5V(M5X(G3=%*+5>") -XMT^LCC70F``^V"H/"`8@+@\,!@^X!#X35`0``#[8*#[[!.T78="B#_@%VW(#Y -XM7'77C4(!B47<#[9*`0^^P3M%V`^$2P$```^V"HM5W.N_B=Z#P@$K=>"+10R% -XMP'0%BT4,B1"+7>")]HM%$`^V51"+31")="0(@^`0@_@!&<"#XH"#X`2#P`*` -XM^@$9TH/A`??2"N!```0'59 -XMBT40QT0D$`````#'1"0,`````(/@$(/X`1G`@^`$@\`"B40D&(V'L````(E$ -XM)!2+A\0```")5"0$B3PDB40D".BT(`$`A7UW#C;0F`````(/$/#'`6UY?7<.#[@&# -XMP@+I*W7@Z5S^__^)^+("Z-3\__^X`0```.G3_O__BU7@Z4'^__^)]E6Z`@`` -XM`(GE5U93@^QLBT4@BW4(B40D"(M%'(E$)`2+11B)!"2+312)\.A1_?__A<`/ -XMA>````#V12`(#X3E````BU4,BP*)1>R+2@2#P0&)3<2+12"[9````#'_QT7` -XM`0```(/@$(E%K.M8D(UT)@"+AI0$``"-!$#!X`(#1A"+0#B%P`^4P(3`#X4N -XM`P``C47LB40D!(DT).BBA/__A<`/A<\"``"+1>R%P'1@@\`!OP$```")1>R# -XM;>P!QT7$`````(/K`8/[_P^$D0$``(7_=`Z+50R+`CM%[`^'OP(``(M5[(72 -XM=6B%_P^%L`(``/:&G`0```$/A7/___^+AI0$``"%P`^4P.EZ____]D4@$`^% -XMW@(``+L!````@\1LB=A;7E]=PXM5#(MZ!(7_#X6I`0``BQ*#^@$/A-`"``"- -XM0O^)1>SIFP$``(VV`````(U-Z(U%Y(E,)!")1"0,QT0D"`````")5"0$B30D -XMZ(Z!__^%P`^%^P$``(M%Z(V6L````(U-U,=%U`````#'1=@`````B47 -XM`0``BTW$QT6T`````(E-L(M%U(M5V(M-Z(E%R(/``8E5S(/2`#';@_H`B474 -XMB578#X[)````BT7LBTT0BU7(B0'V12`"#X7#`0``BT7H.<(/@K@!``"#^`&- -XM4/\9P/?0,=LAPHE1!.D:`0``BT80]H!4"```!`^%!0$``,=$)`P!````QT0D -XM"`````#'1"0$`````(DT).CP>/__A")1"00B50D#,=$)`@!````BT7DB40D!(M-O(D,).B2 -XM!___@_@!#X3O_O__A<`/A10!``"+1<2%P`^$MO[__X-]V``/C*S^__\/C\S^ -XM__^+3;`Y3=0/@IK^__^-M@````#IM?[__[L!````]D4@$(GV#X26_?__B30D -XMQT0D!`(```#H^OC__X/$;(G86UY?7575E.#[$R+12")1"0(BT4R)1"0,QT0D"`````")="0$BU4(B10DZ+E]__^%P`^$ -XM-0$``(M%T(7`#X7!````BTT(]H&R-??")?"00B50D#,=$)`@!````BTT,BP&)1"0$BT4(B00D -XMZ*)\__^%P'7#BU4,]D4@"(LR#X0=`0``BUH$A=L/A&K^__^#ZP'I8O[__XM5 -XM\(72=`2!P;````")3@`````B5W< -XMQT7@`````(E$)!"-1=R)1"0,QT0D"`$```"+1>R)#"2)1"0$Z.@#__^#^`%U -XM?8/&`3';Z:S^__^0C70F`(M%"(N`E`0``(7`#Y3`A,`/A(/^___V12`0#X05 -XM____BT4(N@$```#HH_7__^L-BT4(N@,```#HE/7__[L!````QT0D!`(```"+ -XM10B)!"3H3/7__X/$3(G86UY?7<.[`0```/9%(!!UV.G,_O__A<`/A+L```#V -XM12`0C;8`````#X3^````BU7(B40D!(E4)`B+30B)#"3HI!BT4,BU@$ -XM@\,!.UWP#X)&_?__@\8!,=N-5>R)?"00B50D#,=$)`@`````B70D!(M-"(D, -XM).@Y>___A<`/A!?]__^+10CV@)P$```!#X2N````B<*+@)0$``"-!$#!X`(# -XM0A"+2#B%R0^4P(3`#X3?_/__]D4@$`^$&_[__XM%"+H!````NP$```#HI/3_ -XM_^D)_O__BT70AP/A)\!``"+ -XM1>R+50PY4`AUY?9`)`%UWXMP&+L&````BW@4A?9^>##;ZS.-="8`BU4(#[;` -XMC01`C80`4`$```-"$(/`"(M5"(E$)`2)%"3H6]X```'#@^X!=!^#QP$/M@<\ -XM_W7*BT4(QT0D!/\```")!"3HIVG__^O+B=BZJZJJ*O?JB=C!^!\IPHT44@'2 -XM*=J-6@:%VWX@C;0F`````(M5",=$)`32U`@(B10DZ/W=```IPX7;?^>+1>R+ -XMR+$H72 -XMB57L#X5A_O__BT7P@\0<6UY?7<.+50@/ML"-!$"-A`!0`0```T(0@\`(BU4( -XMB40D!(D4).C9W```@^L!=*2#Q@$/M@8\_W7,BT4(QT0D!/\```")!"3H)VC_ -XM_^O-D(UT)@!5B>564X/L$(MU"(N>1`$``(7;=%"+0PR%P'0(B00DZ"`#__^+ -XM0Q2%P'0(B00DZ!$#__^+0QR%P'0(B00DZ`(#__^+$X72=`:+0P2)0@2+0P2) -XM$(D<).CI`O__BYY$`0``A=MUL(/$$%M>7<.-="8`58GE4X/L!(M="(L3A=)T -XM!HM#!(E"!(M#!(D0BT,,A(```"+ -XM31"+4Q0/MD$,.`(/A]````!R"(M]'#E["'1?BP.)7?"%P`^$T````(G#BT40 -XMA?````+31PY2PAUS_9#)`%UR8M+&(M%&#G( -XM=@*)R(M]%#G`B<'\\Z8/DL`/E\(HP@^^PNLHD(UT)@#V0R0!=9N+2QB+11@Y -XMR'=JB40D"(M%$(D4)(E$)`3HW?O__X/X`'\_#XQS____BU48.U,8D%_O__D(UT -XM)@#)N`$```##B?:-O"<`````58GE@^PXBT4DB77XBU44BW48B5WTB40D%(U% -XM\(E$)`2+10B)??R+?2#'1"08`````(ET)!")5"0,QT0D"`````")!"3H!_[_ -XM_X7`B<-T9?9%*`)U6XM%'(7`=$J%_XGV=$2+51R+10B)?"0(B50D!(D$).AH -XM'```A<")Q@^$I0$``(M#'(7`=`B)!"3H,P#__XE[(#'`B7,Q=PS'_,?;KUHUT)@`QP.OEQT0D!"@```#'!"0!````Z-S]_O^%P(G##X0Z -XM`0``BT4,A____QT,,`````(M5$(E3$(M%%(M5"(ET)`B)1"0$ -XMB10DZ((;``"%P(E#%`^$!`$``(ES&(M%'(7`#X2*````BT4____Z$+[_O^+,(M##(7`#X2(_O__B00DZ#W^_O_I>_[__XUT)@#H -XM'_O^_XLPBT,4B00DZ"+^_O_KT(VV`````(V_`````%6)Y5=64X/L'(M5"(MU -XM#(M"$(N`1`$``(7`B47D=17I3@(``(M%Y(L`A<")1>0/A#X"``"+1>2+510Y -XM4`AUY?9`)`ATWXM%$(7`=`^+11")="0$B00DZ)GW_O^+5>2+1>2+4A2)5>"+ -XM0!B%P(E%Z'5DZ<8```"#^WQT<#L=_"`)"'T,H0@A"0CV1)@V`G5%R+!HGZB!"#P`&)!H-MZ`%T9XM5X`^V.H/"`8E5X(GX#[;8@_L6=8NAH!0) -XM"(7`#X6(`0``BT8(@^@!A<")1@@/B#<"``"+!L8`%H/``8D&BT8(@^@!A<") -XM1@AYI#M&&'P%@/L*=9J)="0$B1PDZ.[[_O^#;>@!=9FAH!0)"(7`#X5(`@`` -XMBT8(@^@!A<")1@@/B$P"``"+!L8`((/``8D&BT7DBT`P/A,0```"+ -XM5>2+4B"%THE5\'50Z;(```"#^WQT7(#"`9`/A'L!``"+50B+0A"`O`-3!P`` -XM#'1"BPV@%`D(A+1>P/MCB#P`&)1>R)^@^VVH/[%G6?H:`4"0B%P`^%ZP```(M&"(/H`87` -XMB48(#XA8`0``BP;&`!:#P`&)!HM&"(/H`87`B48(>:0[1AA\!8#["G6:B70D -XM!(D<).CQ^O[_@VWP`769BQ6@%`D(A=(/A34!``"+1@B#Z`&%P(E&"`^(;`$` -XM`(L&Q@`*@\`!B0:+1>2+`(7`B47D#X7"_?__@\0<,% -XM://__P````#'A7#S__\`````QX5X\___`````(F%@//__\>%?//________' -XMA8SS__\`````QX60\___`````(F58//__XN%9//__XD$).C3^/[_A<`/A!0! -XM``"-6`B_<:P("/RY"````(G>\Z9UUHE<)!"+A8CS__^-E93S__^)%"3'1"0( -XMN90(",=$)`0`!```B40D#.@[]O[_C864\___QT0D"`````#'1"0$`@```(D$ -XM).@]]_[_@_C_B85L\___=(''1"00`0```(E$)`S'1"0(`````,=$)`0````` -XMBU4(B10DZ!//__P%^&\=$)`CXK0@(QT0D!`0```"+10B)!"3H>:#__XN5>//__SF5 -XM%=//__P$```#I;?[__XN5C//__XD4).BA -XM]O[_BX60\___B00DZ)/V_O^+E7SS__^)%"3H!?3^_X'$K`P``+H!````6XG0 -XM7E]=PXV5E/O__\=$)`0*````B10DZ+WQ_O^%P(F%A//__P^$0/[__XN-;//_ -XM_XV%E/?__[H`!```B85<\___Z/_[__^%P`^$'/[__XNU7//__[\TK`@(N1,` -XM``#\\Z8/A0/^__^-E93W___'1"0$"@```(D4).A<\?[_A<`/A.7]___&``"+ -XMA83S__^-=93&``"#A7#S__\!Z,GR_O_'``````"-A:?W__^)="0$B00DZ!'R -XM_O^%P'0/Z*CR_O^#.`*0#X1(`0``BY6`\___C86G^___B00DB50D!.CF\O[_ -XMA<`/A:3]__^#A7CS__\!B70D!(N%;//__XD$).BE]O[_BX6,\___A[_[_Z6_\ -XM___'1"0(`````,=$)`0%````BU4(B10DZ"J=___I3_S__\=$)`@`````QT0D -XM!`4```"+50B)%"3H"IW__XD<).@6]/[_Z2?\__^-M@````"-O"<`````58GE -XM5U93@>R,"```QT0D"`````#'1"0$*P```(M%"(D$).C)I?__N@$```"%P`^% -XM<@(``(M5"/:"!`,```$/A6\"``"+?0B+M_P"``")-"3HC^S^_X7`#X5X`@`` -XMQP0D0?$(".@+\/[_A<")A8CW__\/A%X"``"-A93[__^-E93W___'A8SW__\` -XM````B86$]___B96`]___C;0F`````(N5B/?__XD4).@V\_[_A<`/A,H!``"- -XM6`B_<:P("/RY"````(G>\Z9UUL=$)`13K`@(B1PDZ"KQ_O^%P(F%?/?__W2\ -XMBQ6@%`D(A=(/A5D"```/OT`.QT0D$`$```")1"0,QT0D"`````#'1"0$```` -XM`(M5"(D4).BC,___@_@"#X02`@``BX5\]___C964^___QT0D!``$``")%"2) -XM1"0(Z*[M_O^%P`^$N`$``(NUA/?__[@@K`@(N1,```#\B0$``(N5?/?__XV]E/?_ -XM_\=$)`0`!```B3PDB50D".A'[?[_A<`/A%$!``"+M8#W__^X-*P("+D3```` -XM_(G'\Z8/A38!``"-A93W___'1"0$"@```(D$).A^[?[_A<`/A!@!``#&``"+ -XMO9#W__^-=93&!P#H\N[^_\<``````(V%I_?__XET)`2)!"3H.N[^_X7`#X4\ -XM`0``H:`4"0B%P`^%1P$``(N5?/?__P^_0@Z)="0$B00DZ._R_O^-1;2)!"3H -XM!.W^_XV5I_O__XE4)`C'!"16K`@(B40D!.CZ[O[_QX6,]___`0```.FL```` -XMC;0F`````(N%C/?__X7`=0S'!"1AK`@(Z)[I_O^+O8CW__^)/"3H0/+^_S'2 -XM@<2,"```B=!;7E]=PXN"_`(``(T$0,'@`@-"$(MP.(DT).@7ZO[_A<`/A(C] -XM__^)="0(QT0D#$BL"`C'1"0$!0```(M]"(D\).@,G___@<2,"```N@$```!; -XMB=!>7UW#QT0D#&BN"`B)7"0(QT0D!`,```"+50B)%"3HVY[__XN%?/?__XD$ -XM).C!\/[_Z6C]__^+O7SW__^)/"3HKO#^_^E5_?__BX5\]___B00DZ*OO_O_I -XMF/W__^B1[?[_@S@"#X6V_O__B1PDZ-#K_O_KKXN]?/?__XD\).B`[_[_Z;#^ -XM__^-M"8`````58GE@>RH"```B77\B<:-19B)7?B)TXE$)`3'!"1ZK`@(Z)[L -XM_O^%P'0JB30DQT0D#(VL"`C'1"0(>JP(",=$)`0%````Z":>__^+7?B+=?R) -XM[%W#B5PD$(V=A/?__XD<),=$)`QZK`@(QT0D"*>L"`C'1"0$%`@``.B&[?[_ -XMB1PDZ%[K_O^+7?B+=?R)[%W#58GE@^PHB10DB5WTB=.)=?B)??R)SXE%\.AF -XM[O[_@_C_B<9T'P^W10B)'"2)1"0$Z&_O_O^)\(M=](MU^(M]_(GL7<.+1?#' -XM1"0,GZT("(E\)`C'1"0$!0```(D$).A]G?__Z]"-="8`C;PG`````%6)Y5>) -XMQU93BK^_[@!````@<1\%0``6UY? -XM7<.+A_P"``"-!$#!X`(#1Q"+<#CI-?[__XVV`````('$?!4``+@!````6UY? -XM7<.+E=3J__^+A7UW#BX7,ZO__BY70ZO__BQB-1?"+,HD$).B5Y_[_ -XMBY78ZO__QT0D1`:M"`B)7"1`QT0D/`NM"`B)5"1(C97P_O__B5PD.,=$)#08 -XMKP@(QT0D,$"O"`C'1"0L=*\("(E4)"C'1"0D$*T("(N5V.K__XE$)!"-A?#J -XM___'1"0<(:T("(ET)!B)5"0@QT0D%#RM"`C'1"0,2*T(",=$)`B8KP@(QT0D -XM!``0``")!"3H0>G^_SW_#P``B87@ZO__#X<+_O__A<"-M?#J__]U0>FN```` -XMQ@(*@\(!B=,I\XF5W.K__XE<)`B)="0$BY74ZO__B10DZ/OC_O\YPP^%G_[_ -XM_RF=X.K__XNUW.K__W1RBX7@ZO__@_@\C50P_W:UQT0D!`H```")-"3HEN;^ -XM_XG"*?"#^#Q^G#GR=IB)T.L(D(/J`3GR=A:`.B!U](G0*?"#^#P/CGK___^) -XMT.OCB<+I;____\=$)`@`````QT0D!`4```")/"3HU)/__^E%_O__BYW$ZO__ -XMA=MU!S'`Z7;]__^-E?#Z__^)^.A1^O__BX74ZO__B00DZ#?H_O^%P`^%Z_W_ -XM_S'`Z4S]__^-="8`58GE@>PH)```B7W\BWT(B5WTB77XBU\Q= -XMPY`Q]NOLBT,$QT0D!`L```")!"3_4!B%P`^%Y0$``/9%#`1T!(!+6"#V10P! -XM=*N+4U")^.BI^?__ZY^-M"8`````QT0D"`````#'1"0$*P```(D\).CHF___ -XMA<`/A9`!``#VAP0#```!#X7"`0``B[?\`@``C87T^___B70D#,=$)`AYK0@( -XMQT0D!``$``")!"3H3^?^_XGQB?B-E?3[___'!"2``0``Z,7Y__^)A>C;__^# -XMP`$/A#8!``"+1Q#'1"0(`0```,=$)`3DKP@(B3PD_Y!H"```BUM,QT0D"``` -XM``#'1"0$`````(F=[-O__XD<).@-Z/[_B87PV___@\`!=%>-A?3;__^)1"0$ -XMBX7PV___QT0D"``@``")!"3H(NK^_X/X`(G##XX9`0``,?;K!BG#=,T!QHV% -XM]-O__P'PB40D!(N%Z-O__XE<)`B)!"3HC^'^_X7`>=B+A>S;___'1"0,GZT( -XM",=$)`0%````B3PDB40D".C5EO__C87T^___O@$```")!"3H!N3^_XN%Z-O_ -XM_XD$).@XYO[_BT<0QT0D"`(```#'1"0$`````(D\)/^0:`@``.DC_O__C78` -XMQT0D"`$```#'1"0$`````(D\).@X//__A<`/A!#^__^^`0```.D&_O__C;8` -XM````]D4,`KX!````#X3Q_?__D.N^@&-8G[X!````QT0D#%ZM"`B+0TS'1"0$ -XM!0```(D\)(E$)`CH)I;__^G!_?__BX?\`@``C01`P>`"`T<0BW`XZ2W^__\/ -XMA0W___^+A>C;__^)!"3H>N7^_X7`#X49____C8WT^___N@$```")^#'VZ&KX -XM__^%P`^$'O___^GX_O__C;8`````C;PG`````%4QR8GE@^PHB77\BW4(B5WX -XMBUX<#[936(G0@^#]J$"(0UAT)HM#4(/BO8A36(7`="7'1"0$@`$``(M#3(D$ -XM).A`Y_[_,Q\!``` -XMBW4(QT0D"`````#'1"0$*P```(DT).A)F/__A'^__^058GE4X/L%(M=".BUX?[_QP``````BT44B40D"(M% -XM$(E$)`2+10R)!"3HAN'^_XD#Z(_A_O^Z`0```(L`A'^_\<``````(M%%(E$)`B+11")1"0$BT4,B00DZ/;?_O^)`^@?X?[_ -XMN@$```"+"(7)=0B#Q!2)T%M=P^@'X?[_@S@B=`Z#Q!0QTEN)T%W#C70F`(,[ -XM_[H"````=>B#Q!2)T%M=PXVT)@````"-O"<`````58GE@^P8B77\BW40B5WX -XMC48!B00DZ"KC_O^%P'0EB<.+10R)="0(B1PDB40D!.A!X_[_Q@0S`(G8BW7\ -XMBUWXB>Q=PXM%"#';QT0D"`````#'1"0$!0```(D$).APC/__Z]6-M"8````` -XMC;PG`````%6)Y5.#[!2+70C'1"0$+P```(D<).@ZW_[_A7UW# -XMBT7LAQT*0^V`SP@=.8\"73BB0^#Q"PQP%M>7UW# -XMC;8`````@\0L,6#[!B+ -XM112)7?2+70R)??R+?1")=?B%P'54/0`!``"+%W)8A=N--`)T78D<)(ET)`3H -XMS-S^_XG#A=MT5XL'B?+'1"0$`````"G"`=B)5"0(B00DZ*K>_O^)-XG8BW7X -XMBUWTBWW\B>Q=PY"-="8`BQ53@^PDBT44BUT(@_@"=&Z#^`-T287`=27'1"0(`````,=$)`0% -XM````B1PDZ&V*__^#Q"1;7<.-M"8`````BTL)___I-?___^A1V_[_C47XB40D -XM!(D<).A^5___A<`/A1G___^+1?B%P`^$>?___XE$)`S'1"0(`+((",=$)`0# -XM````B1PDZ%^)___I[?[__XM5##'`A=)T!8M5#(L"QT0D"`0```")1"0$B1PD -XMZ%A4`0#IQO[__XUV`%6)Y5=64X/L#(L]P,P("(E%\(E5[(7_=$( -XM1>NXP,P("#A5ZWT6ZS*)]HM[&(7_="D/MA>-0Q@X5>M\'CA5ZXG#=>>+3>R+ -XM=?#\.Q`/MC>-1MP\.`^&)@$``(M# -XM%(7`#X01`0``BTL0#[8QB?`/OM"%TGA#.17\(`D(?R_K.8M#%(U1`8E3$(/H -XM`87`B4,4#X3A````#[8RB=&)\`^^T(72>!0[%?P@"0A]#*$((0D(]D20-@)U -XMQX/Z?P^'R@```/8$E=T4"0@$#X2\````BTT(BS&%]G47QP$!````BU7=='I)/___X-K%`&ZT)D%"(E+$(`Y+W0%NC"5!0B+3=R+ -XM04R+3=B)`8M-W(M!4(M-V(E!!(N#@````"4````!@_@!&<`PP`5P`0``B40D -XM&(U%[(E$)!2+0Q2)1"00BT,0B4PD"(E,)`2)1"0,BT7Q0!#X:R````BU,0#[Y"`8/X?P^'H@```/8$A=T4 -XM"0@$#X24````Q@(KZ7?]__^+50C'`@$```"!BX````````0`@WL4`0^$,@,` -XM`,=$)`P#````BU78B50D"(M#$`^^0`&)1"0$BTWS'`@$` -XM``"!BX````````0`QT0D#`H```")1"0(BT,0B40D!(U%\(D$).CN]O__@_@! -XM#X6L````BT7PBU78B0+'0@0`````BU7LB=`K0Q`I0Q2)4Q#I?_S__[K0F04( -XMZ=O]__^#^G\/AZ0```#V!)7=%`D(!`^$E@```(#Y+0^$'0$``#'_@/E>#X02 -XM`0``C47LC57PQT0D#`H```")1"0(B70D!(D4).AP]O__@_@!=3*#?>``#XR@ -XM````D`^.L````(M5\(72D(UT)@!^$+C___]_*T7@.=`/@Y0```"X`@```(E$ -XM)`S'1"0(`P```,=$)`0`````BTW`%%X(-#$`&-1_^)0Q3I(OS__XM5\(72>1"X````@"M%X#G" -XM#XT!`0``A?]T1HM%\/?8BU7L`47@B=`K0Q`I0Q2)4Q#I[/O___8$E=T4"0@$ -XM=(WIVO[__X-K%`&_`0```(U&`8G&B4,0Z=C^__^-M@````"+1?#KNK@!```` -XMZX&+3=B+1>"+$??8.=`/A@_\___'1"0(C+((",=$)`0#````BT7" -XM__^+50S'`@$```#I\?O__X/$/+@!````6UY?7<.+>Q`/MC?'!"0*L0@(B?(/ -XMOL*)1"0$Z"75_O^%P`^$FOK__\=$)`P!````QT0D"`$```#'1"0$`````(M- -XMW(D,).CF]___BT4,QP`!````,<#ID/O__X-#$`*#:Q0"Z67Z__^X`P```.EF -XM_O__QT0D#`(```#'1"0(`P```,=$)`0`````BT7575KX"````4X/L+(M=#(M%$(M]",<``````,=#8``` -XM``"+0Q2%P'1_BTL0#[81C4+W/#(/AJ0```"+11"-3>B)VHE$)`2-1?")!"2) -XM^.@K^?__A<`/A4<"``"+11"+`(7`=6J+1?"%P'0]A?8/A#D"``"+0V"#^`$/ -XMA)H!``"#^`(/A'(!```Q]H7`=92+1>B+5>S'0V`!````B4-DBT,4B5-HAG<_O__]H.#````!`^%>____XM7'(72#X01 -XM`0``A?8/A$8!``"-0VR)1"0$B3PDZ$E.__^%P`^%)0$``#'`@WML`,=#<``` -XM``#'0V@`````#Y7`,?:#0Q`!@VL4`8E#9,=#8`(```#I=?[__Y"+0V"#^`%T -XM?8/X`@^$D@```(7`#X5M____C;0F`````.BOT?[_BU-LBT-PB5-DB4-HBT=, -XMB4-LBT=0QT-@`@```(E#<`^V$>DU____BU-L,?:+0W")4V2)0VB+1>B+5>R) -XM0VR)4W#I"?[__XM%Z#'VBU7LQT-@`@```(E#;(E3<.GO_?__BT-DO@$```") -XM1TR+0VB)1U"#0Q`!@VL4`>G1_?__BT-LO@$```")1TR+0W")1U"#0Q`!@VL4 -XM`>FS_?__QT0D#`$```#'1"0(`0```(D\),=$)`0`````Z)_T__^+11#'``$` -XM``"#Q"PQP%M>7UW#N`$```#I)/[__\=$)`P!````QT0D"`````#KP8M#8(/X -XM`71<@_@"=$N%P)`/A>G]__^+1TR)0V2+1U#'0V`!````B4-H,<#IXOW__\=$ -XM)`BXL@@(QT0D!`,```")/"3HR'[__XM%$,<``0```#'`Z;K]__^+4VR+0W") -XM4V2)0VB+1TR)0VR+1U#'0V`"````B4-PZ8C]__^-="8`58GE5U93@>R,```` -XMBT4(BU4(BTT(BT`0@\%,B464BY*8````B560BUA\B4V$BT,(A%"+1:`[!?P@"0A]1:$((0D(BU6@]D20 -XM-@)T-KX!````BTL4@T,0`8/I`87)B4L4=#&+0Q`/M@`/OM`\"HE5H'6YBTV4 -XM@X$(`0```8-##`'KSX7)=`J#?:`Z#X0[`0``BTL4A0`````Z?$%``"0BTL4@^D!A2)3"0(B5PD!(DT).C)^?__A<`/A5H%``"+5>2%T@^%D0X` -XM`(M#%(7`=$*+>Q`/MA!0[!?P@"0A]#*$((0D(]D2P-@)U -XM"8#Z.@^%Y@,``(U'`8E#$(M#%(/H`87`B4,4=;['0R!0T`@(BW60BT8H"8.` -XM````BT-@A`P`` -XMQT6L`0```.G2`P``H0@A"0B+?:#V1+@V`@^$UOW__XM+%(U"`8E#$(/I`87) -XMB4L4#X0__/__B<(/O@"%P(E%H`^(K_W__SL%_"`)"'R^Z:+]__^)]HM#%(/H -XM`87`B4,4#X2Z`0``BU,0C4(!B4,0@'H!"G7@@8N```````"``(-#$`&#:Q0! -XMBTV4BUE\Z=#Z__^+182+50B)1"0$B10DZ!%'__^%P`^%X@(``(M-",=!4``` -XM``"+@X`````E__^__XF#@````.G#^O__BU9(BT9,B580C0P"B10DB40D"(E, -XM)`3H@<_^_XM&3(E&%(M'"(M5"(E"3(E&1(/``8E'"`^V1E"H#`^$>_S__XM% -XM"(&(K`0``````@"+592+6GR+2Q2%R0^%./K__^EI_/__C;8`````BW,4A?:) -XM\0^$>P(``(M]C`^V%X#Z(0^$EA0```^^\H7V>!0Y-?P@"0A^#*$((0D(]D2P -XM-@)U38#Z*P^$G!0``(MS%,=%G`````#'19@`````QT6P`````.E<_O__#[X7 -XMA=(/B.$1```[%?P@"0@/C=41``"A""$)"/9$D#8"#X3%$0``BWL0C4'_B4,4 -XMB<&#QP&%P(E[$'7$,?:+>Q")\,=%K`````#'19@`````QT6<`````,=%L``` -XM``#IZ`$``(M3(.DE_?__@:.`````___^_^GR_/__BTT(B[F0`@``A?\/E<#I -XMQ_S__XM#$(`X"@^$2?[__XMUE(M>?.DK^?__BT4(]H"L!````@^%-OK__XN3 -XM@````/;&"`^$I?O__^DB^O__@/I\#X0D_/__@/H*#X0;_/__BT6@QP0D5;$( -XM"(E$)`3HN-2KN`^1\/ -XMABP4```Q]HM5J(GXZ.'M__^%P(E#(`^$0QP``(M3(('Z.-,("(G1#X2.&P`` -XMA?8/A#$6```/MT$(]L0!#X4K%@``@?E0T`@(#X06%@``@?F8T`@(#X0*%@`` -XM#[8/#[[1A=)X%#L5_"`)"'T,H0@A"0B+E)`T"```B!?I_1L``(UV`(M#2(D$ -XM).BIS?[_BQ.%TG0&BT,$B4($BT,$B1")'"3HD,W^_XM>?#E=P`^%7@H``,=# -XM%`````"+50C'1"0$`@```(D4).CV-/__A7UW#BWV,,<#'19P`````QT6L`````,=%F`````#'1;`````` -XMA<`/A'0@``")^.L\B?*`^A9T9(-]H`H/A,4```"#?:!\#X2[````#[9-H(@/ -XMBT,0@VL4`8M3%(/``8E#$(72#X2\````@\Q0!=I:+0Q`/OD`!@_@* -XMB47D=6J+=92#A@@!```!@T,,`8-%G`&#:Q0!@T,0`8M%Y(E%H.EV____BU4( -XMBT(0@+A2!P``_P^%3____XM-H(D4)(E,)`3HY#7__X/X$G2?@WV@"@^%.___ -XM_XGR@/H*#X1#$```@VL4`8MS%.L-@_A\#X4H____ZYDQ]HM#$(M3&(ES'(/` -XM`8E#&"G0B5,0*T6<@^@!@7L@H-$("(E#%`^$L0X``(N#@````(G"@^(/@_H" -XM#X0<#@``#X?`````@^H!#X7-````BU-@A=*)]@^%=!````T```@`J"#'0V`! -XM````B8.`````#X5V&P``BU4(BT),B4-DBTT(@7L@P,P("(M!4(E#:`^%GP`` -XM`,=#8`(```"+50B+0DR#P`&)0V2+30CV@4`#```!BU%,#X4V$```BW4(BX8X -XM`P```=")0VR+?0B+1U")0W")0VB-1?")1"0$B3PDZ/)!__^%P`^%!0<``(M% -XM\(7`=$$[1TQV/#M#;',WB4-LZS*-="8`@_H$#X3F`@``@_H(C70F``^$7@,` -XM`(MS8(7V#X6E!@``@7L@P,P("`^$8?___XM#(,=#7`````"+>`P/MC>)\(3` -XM#X26&@``BTL4B?*`^B$/A'$$``"%R71GBT,0#[X0A=(/B,4#```Y%?P@"0@/ -XMCKD#``"A""$)"/9$D#8"=2SIJ`,```^^$H72#XB:`P``.Q7\(`D(#XV.`P`` -XMH0@A"0CV1)`V`@^$?@,``(M3$(U!_XE#%(G!@\(!A<")4Q!UQ,=$)`2WL0@( -XMB3PDZ)/)_O^%P`^%[04``(M#8(/X`0^$P`0``(/X`@^$,@L``(M-"(N#@``` -XM`(N1K`0``/;"`@^%?P,``/;$0`^%=@,``*D```0`#X59#0``@^(!C78`=`>+ -XM10B#0"P!BU4(BTH((``"+ -XM30CV@:X$```"#X72"```]H$8`0```0^%P1<``(MU"(N&$`$``(7`#Y7`A,`/ -XMA*\(``#V@X````!`#X2B"```N@`0``#IG`@``,=#8`$```"+1TR#P`&)0V2+ -XM1U")0VCIWO7__XM38(72#X6%````#0``"`")@X````#'0V`"````BW4(BT8< -XMA<`/A+$3``"+?0B-0VR)1"0$B3PDZ*0^__^%P`^%MP,``/:#@````"`/A)$1 -XM``"+0VR%P`^%AA$``(.+@````!#'0V0`````@XN`````!,=#<`````#'0V@` -XM````Z:W\__^+4V"%T@^$HOS__X/J`0^%F?S__XM39(M#:,=#8`(```")4VR) -XM0W#I@?S__XMS%(M]C(7VB?`/A'$2``")^<=%G`````#K+(#Z"@^$UO?__P^V -XM1:"(`8M[$(-K%`&+Q"%]HGP#X0`^O__@\$!#[87#[["@/IL!```Z3'[__\/ML#_)(5(M@@(9H-+?""#:Q0!@T,0 -XM`8MS%(7VB?$/A.?^__^+0Q`/M@`\+@^$XPT```^/*P@``#PK#X3?#0``/"V) -XM]G3$B?'IOO[__SPCD(UT)@!U\(&C@````/___O]F@4M\``*+39"!22@``@`` -XM@VL4`8-#$`&+O$B4PD#(M-"(M#$(E<)`2)#"2)1"0(Z"XN``"%P'55 -XM#[9'`8U7`3Q.#X0T^O__#[[`@^@PB47D@'H!;P^$4`L``(MUD(M6)#G0#X03 -XM^O__BT,@BW4(BT`0QT0D"+JQ"`C'1"0$`P```(DT)(E$)`SH]6S__XM['(7_ -XM#X6C````BW,4A?9U+XUV`.F"````@/H6=%>#_@J-=@`/A!H/``"#_GP/A!$/ -XM``"+0Q2#Z`&%P(E#%'14BT,0#[80@\`!]H."`````HE#$`^^\G7!B?`\_P^$ -XM7`8``(M]"`^VP(M7$("\`E,'```2=:F+0Q2#^`%VH8/H`8E#%(M#%(-#$`&# -XMZ`&%P(E#%'6LBTL?(V&@````(E%P#G##X2B]?__]D-0 -XM#P^$<_7__XM3/(U[/#GZ=2?I6?7__XM"!(E!!(M"!#G'="J)"(D4).CVPO[_ -XMBU,\.=2%T@^%;O[__XM%Z(7`#X3& -XM%0``BT74A<`/A<R)!"3H!]W__X/X`0^%VQ0``(M-[(7)#X02$0``BT7@*T,0*4,4BT7@ -XMB4,0@#]A#X35$0``BT7LB4-89H-+?`2+2Q3I?_O__XM#$`^V,(GR@/HK#X0K -XM"0``@/HM#X0B"0``@/I>#X09"0``@/HCB?8/A`X)``")\0^^P8/X?W<.]@2% -XMW10)"`0/A>+Z__^#:Q0!B?"#0Q`!9H-+?`&+2Q2(0U'I'_O__XM[$(E]R(E] -XMX(M#%(7`#X3R````@\(7V>!@[-?P@"0A]$*$((0D(]D2P -XM-@(/A;L```"+5<2)^(A"_X-K%`�Q`!@T7$`8M#%(7`#X2J````BT7$B47( -XM@^@!B47,BT,0]H."`````@^V.(GZ#[[R=:")\#S_#X2'"```BTT(#[;`BU$0 -XM@+P"4P<``!)UB(M#%(/X`7:`BU,0@^@!B4,4C4(!B4,0#[9"`8M-Q(A!_^N) -XM,<"!>R#8S`@(B4PD#(M-"`^4P(E$)!"+0Q")7"0$B0PDB40D".AB,P``A<`/ -XMA#/V___I0/S__Y"-="8`@T,0`8-K%`&+=`I1Q")?8P/O@>% -XMP(E%H`^(W`D``#D%_"`)"`^.T`D``*$((0D(BU6@]D20-@)U,NF\"0``#[X" -XMA<")1:`/B*L)```[!?P@"0@/C9\)``"A""$)"(MUH/9$L#8"#X2,"0``BU,0 -XMC4'_B4,4B<&#P@&%P(E3$'6^Z5K[__^%TG0KBWT(BT=,QT78`````(E4)!") -XM7"0$B474C474B40D#(E$)`B)/"3H)9\``(M%F(7`=%GV@X(````"#X1.`P`` -XMBT68BU6P@'P0_Q8/E,"$P'01BU,8C4+_B4,8QD+_%H-#'`&+39@I2Q@!2QR+ -XM0QB+=;")3"0(B00DB70D!.B3OO[_@8N```````!``(M#&(E#$(M#'(E#%(M] -XM"(N7K`0``/;&'G5BBT64BUA\Z5WI__^+0VR%P`^%/?G__XN#@````*@0#X5L -XM^?__BWT(]H>L!````74+J0````(/A57Y___'1"0,`0```,=$)`@$````BT,@ -XMB40D!(M%"(D$).C.W/__Z73Z__^+30B+01"+6'R%VW15,?\Q]H![4`AV!>@! -XMN?[_#[9#4/\DA62W"`B%_W4@BWT(QT0D"*RS"`C'1"0$`P```(D\)+\!```` -XMZ!YG__^+&X7;=<`)]P^%R?K__XM-"(N1K`0``(#F%@^$9>___^G,ZO__A?9U -XMUXM%"&:^`0#'1"0(Y+,(",=$)`0#````B00DZ-9F__^+&X7;#X5T____Z[*+ -XM30B+D:P$``#VP@%U"ZD````"#X7.\___QT0D#`$```"+=0C'1"0(!````(M# -XM((DT)(E$)`3H[]O__^F5^?__BU-@A=(/A1[V__\-```(`,=#8`(```")@X`` -XM``"+30B+44R#^@$/A,X$``")4VR)4V2+?0B+1U")0W")0VCIB/+__P^V%X#Z -XM*P^%Z^W__^F"`@``BU4(BT(0@+A2!P``_P^%3?G__XET)`2)%"3HYR;__X/X -XM$@^%./G__^F*^?__A<"-M"8`````=1?I/_'__X/H`8VV``````^$,/'__X/" -XM`8`Z7(UT)@!UY<8"%NO@BWT(B40D!(D\).@:,___A<`/A"4/``"+EZP$``"+ -XM@X````#ISO+__SP]#X2_!0``/%X/A=/W__]F@TM\`NF2]___/&R0C70F``^$ -XMOP4``#QP#X6T]___9H%+?``0BT60@4@H`!```.G)]___BWT(BT=,B474BT=0 -XMB478C474@:.`````___[_\=$)`P!````B40D",=$)`0G````B3PDZ+55__^% -XMP`^%./C__XN7K`0``.E<\O__B10DZ)IB___I'//__XM-"(E$)`2)#"3H5C+_ -XM_X7`#X2U!P``BT9$BWT(B4=,Z63H__^)%"3HZ$;__^E#\O__BTV8BW6P#[9$ -XM,?\\_P^$"P,``(M]"`^VP(M7$("\`E,'```2#Y3`Z93\__^!BX```````(`` -XMZ:[O__^+4VR+=0B%THG0BTY,=06X`0```#G!#X1<]?__A=)U`K(!BWT(B?B) -XM5TR#P%#'1U``````B40D"(E4)`2)/"3H--C__^DO]?__BU-DBT4(A=*+2$R) -XMT'4%N`$````YP0^$$_7__X72=0*R`8M-"(G(B5%,@\!0QT%0`````(E$)`B) -XM5"0$B0PDZ.O7___IYO3__X/Z`@^%3O#__XM3;(M#<,=#8`$```")4V2)0VCI -XM-O#__XN!.`,``(T$0,'@`@-!$(M`..F\[___@VL4`8MS%(U'`6:!2WP``8E# -XM$(7VB?&)0Q@/A,GK__\/MA")Q^E`Z___BT,4@\!Z+1:`[!?P@"0A]$Z$((0D(BU6@ -XM]D20-@(/A5`#```/MDV@B`Z+0Q"#:Q0!BU,4@\`!B4,0A=(/A#(#``"#Q@$/ -XMM@`/OM")5:#V@X(````"=:0/MD6@//\/A#H"``"+30@/ML"+41"`O`)3!P`` -XM$G6)BT,4@_@!=HP!@^@!BU,0B4,4C4(!B4,0#[Y2`8E5H.N*N`$```#3 -XMX*D#B@(`#X5%!0``A<`/B;KK__^+%7#."`B)^8E5X`^V!SH"=1"#P0&#P@&) -XM5>`/M@$Z`G3P/&QT&SQP=!<\*W03/"UT#SQ>C78`=`@\(P^%>>O__XM#$#'V -XMB4L0*<@!0Q2A<,X("(E#)*%TS@@(B4,HH7C."`B)0RRA?,X("(E#,*&`S@@( -XMQT,P>;$("(E#-*&$S@@(B4,XC4,DB4,@Z4'K__^+0Q"`.`0/A(SF__^`YG^) -XMDX````#I?N;__ZD````"=0V!>R#`S`@(#X6G[___BWT(BU64QT0D!`$```") -XM/"3_DGP(``#IB^___X`_*P^%E/+__SPKB?8/A/+V__\\+0^%@O+__V:#2WP( -XMZ?#V__^+?9"+5R2%T@^$P^[__^FC]/__BU4(BT(0@+A2!P``_P^%I/G__\=$ -XM)`3_____B10DZ'(B__^#^!(/A8OY___I=?G__XUT)@"H(`^$*OO__XU%\(E$ -XM)`2)#"3H:2___X7`#X5\]/__BWWPA?\/A9L*``"#BX`````0QT-L`````,=# -XM9`````#I]/K__\=$)`0Q````B3PDZ+"S_O^%P`^%U/'__^G5]O__BT,4A<`/ -XMA`7N__^-="8`Z0'T__^+50B+0A"`N%('``#_#X4!]___B70D!(D4).C,(?__ -XM@_@2#X7L]O__Z5_W__^+50B+0A"`N%('``#_#X5/_?__BTV@B10DB4PD!.B< -XM(?__@_@2#X4W_?__Z:G]__\Q]HM3(`^W0@CVQ`)T+XM5"/:"9`,```$/A)<# -XM``"+@EP#``"-!$#!X`(#0A"+0#B%P`^5P(3`#X71"@``@?DXS0@(#X0O!0`` -XM@?EHS0@(#X1N!@``@?GPS`@(#X2"!@``@?F0SP@(#X1F!@``@?E0T`@(#X0T -XM!P``@:.`````_____>DOY?__@VL4`8/``6:!2WP``8M+%(E#$.D5\?__,?;I -XMO^+__XM#$(G&*?Z)=9B+0`````BW,4A?8/A'P```"+0Q`/O@"%P(E%H`^(E3`0``C78`#[X`A<")1:`/ -XMB$(!```[!?P@"0@/C38!``"A""$)"(M-H/9$B#8"#X0C`0``QT7D`0```(M# -XM$(-K%`&+"+0Q2%P'4FZ9T```")\H#Z%G1,B?"(!X-K -XM%`&#QP&+0Q2#0Q`!A<`/A'P```"+0Q`/MC")\`^^P(E%H/:#@@````)UR`^V -XM1:`\_W0RBTT(#[;`BU$0@+P"4P<``!)UM(M#%(/X`7:LBU,0@^@!B4,4C4(! -XMB4,0#[9"`8@'ZYF+50B+0A"`N%('``#_=8:+3:")%"2)3"0$Z"T?__^#^!(/ -XMA6[____KN(GVBT7@BU4(B5PD!"G'B7PD#(E$)`B)%"3HA"$``(7`#X0EZ___ -XMZ3+Q__^-M"8`````A?:)\`^$[O[__X-]H"&)]@^%XO[__X%[(/C0"`AT"XM] -XMY(7_#X3._O__A?8/A"\(``"+>Q`/MA>`^@IU$8UV`.F.Y?__@#\*#X0T!0`` -XMBWL0@^@!B4,4@\Q!UY,=%G`````#IM^?__XUV`(-[%`$/AD;Q___' -XM0QP!````Z5/Q__\/OM*%TG@4.Q7\(`D(?0RA""$)"(N4D#0$``"^`0```(@7 -XMZ5CF__^)T/?8.4%,#X>TZ___QT0D"&2S"`C'1"0$`P```(D,).A.7?__Z53P -XM__^+182+50B)1"0$B10DZ"3__P^V!SP\#X7V^O__#[[`B46@BTL4A -XM``"%P`^%UNW__XM+(.E:^O__#[8/@/EK#X1]`0``@/ES#X2N`@``A?8/A>'C -XM__^+10B%P)`/A#("``"+50B+P_O^+=;R+?0C'1"0,?[$(",=$)`0#````B70D"(D\).@Q7___ -XMBWT(BT<0AQ"+0Q3'19P`````Z:7C__^`/S`/A.7N -XM__^+?0C'1"0(G;$(",=$)`0#````B3PDZ'U9___I@^S__XN!$`$``(T$0,'@ -XM`@-!$(M`.(7`#Y7`Z3'H__^+30C'1"0$_____XD,).@Y%?__Z;SI__]F@TM\ -XM$.E2[O__@WVH`HVV``````^%?/[__X-K$`&Y>,\("(-#%`''0R!XSP@(Z1SB -XM__^+39#'02@`$```Z;WX__^+2Q3I`>K__XMU"(U%\(E$)`2)-"3HV";__X7` -XM#X7KZ___BT7PAR)0VSI%^[__XM]"(M'3(E#9.DWY/__N@H```")QL=%G`````#I1>#_ -XM_XL"QT0D".RR"`C'1"0$`P```(D\)(E$)`SH;5C__^ESZ___BT6HQT7<```` -XM`,=%O`````"#P`$/A>L"``"+5:B+1;S&!!``B50D"(E\)`2)!"3HV*[^_XMU -XM"(M-O,=$)`Q_L0@(QT0D!`,```")-"2)3"0(Z")=__^%]@^%Z?W__^GZ_?__ -XMD(UT)@"#?:@!="B+1:@QTH/H`8E%B`^V1#H!/&-T##QG=`@\<@^%+/W__X/" -XM`3M5B'7CBT,0@\`!*T6HB4,0BT,4@^@!`T6HB4,4H7#1"`B)0R2A=-$("(E# -XM**%XT0@(QT,H4-T&"(E#+*%\T0@(B4,PH8#1"`B)0S2AA-$("(E#.(U#)(E# -XM(.ERX/__BU,4C4$!B4,0@^H!A=*)4Q3'1:0"````#X3E````BTL0#[8!/%QT -XM+P^^P#G'#Y3`#[;`*46D@VL4`8MS%(-#$`&%]HGR#X0%^/__BTVDA(E$)`B+1G2) -XM1"0$BT4(B00DZ-7*__^%P`^$..G__XE&=.FU^___BW4(QT0D#`$```#'1"0( -XM`@```,=$)`0`````B30DZ&++___I".G__XM3$(E5C.D"^___@:!4"```__[_ -XM_^GNZ/__BW4(B40D#,=$)`@#````QT0D!`````")-"3H),O__^G*Z/__BWL0 -XMQT6<`````.FTW___QT0D"`@```"+50B+`8D4)(E$)`3HMR`!`.F=Z/__QT0D -XM#!BS"`B+=0B+0Q#'1"0$`P```(DT)(E$)`CH@%K__^EVZ/__BW,4Z7_@__^+ -XM30B)1"0,C47575E.#[!R+10B)1?"+,(M^$(DT).C$'@$`A4"```BQ.%TG0&BT,$B4($BT,$ -XMB1"+0PR)!"3HM:O^_XD<).BMJ_[_BU]LA=MUM_:'5`@``!`/A9,"``"-5GB[ -XM(`H``(V'D````(E5[(E%Z.FH`0``BX8T`0``BU80C01`BTR".(7)#Y7`A,!T -XM`X/+0/:&[`(```$/A.,!``"+AN0"``"-!$"+1((XA<`/E<"$P'0&@'D````-+4"`C'AY0````!````QX<``0```(`` -XM`(DT).C:U/__A,`````8N&K`0` -XM`*D````"=!&I```$`'1W@::L!```_____8DT).C.@@``]H8\`0```0^%)?[_ -XM_XN&-`$``(M6$(7`#Y7`Z2?^___'1"0$)KH("(DT).CN@@``B30DZ):"``#K -XMF8UT)@"+AN0"``"%P`^5P.D?_O__BT((B8>0````BT(0B8>4````Z;W^___' -XM1"0(`````(M&3(DT)(E$)`3HLDG__^EM____@>(`!```B50D",=$)`0````` -XMB30DZ-/\_O^%P'0U@\0'C`````$```#'AX@```#(L0@( -XMZ53]__^+5?`QP(DR@\0<6UY?7<.)-"3H(I+__XM5\(D"B74(@\0<6UY?7>F> -XMDO__D)"0D)"0D)"0D)"0D)!5B>564X/L$(M%#(MU"(M`=(L8BT80]H!4"``` -XM`70CQT0D#`````"+0PB)1"0(BP.)-"2)1"0$Z%2G__\QTH7`="/'1"0,B+<( -XM"(L#QT0D!`,```")-"2)1"0(Z%!6__^Z`0```(/$$(G06UY=PXGV58GE5U93 -XM@^P\BT4,BU!XA=)U+\=$)`@`````QT0D!`````"+10B)!"3HHJ+__S'2A<`/ -XMA&L!``"#Q#R)T%M>7UW#@_H"=`7HF*+^_XM`=(E%X(L`BSB)?>B+0`B)1>0/ -XMMDP'_P^VT3L5_"`)"`^-_0```*$((0D(]T20-``%```/A.H```"+1>@/M@B$ -XMR70NBQW\(`D(B@/ML`YV'T+]D2&-@(/A80!```/MD(!@\(! -XMA,!UXX-]Y`(/A@(!``"+=>2#[@(/A/8```"+/?P@"0BA""$)"(M5Z(E]W(E% -XM[.L2C;8`````@\(!@^X!#X3.````#[;!.T7S&1?,!]T2#-``%``!U -XM!X#Y7P^41?,/MDH!#[;!.47R[`0```/=$AS0`!0``=0R-M@````"` -XM^5\/E,,Z7?-TI<=$)`@PN`@(QT0D!`,```"+10B)!"3HRD___[H!````Z"+4P3'1"0@"````,=$)!P`````BT((B40D&(L"B40D%(M]Y(E\)!"+ -XM1>C'1"0(`````,=$)`0`````B40D#(M5"(D4).AJI?__N@$```"%P`^%%?[_ -XM_XM="##2BT,0@XA4"````>D!_O__QT0D"/RW"`C'1"0$`P```(M="(D<).C> -XM3O__N@$```#IW/W__Y"0D)!5B>575E.#[#R)1=R)5=B+5=R+0!")1>"+0AR% -XMP`^$L`,``(M%V(M5W(MX9(U!_X/X`8EZ3`^&>`$``(/I`0^$?@$``(M-V(MQ -XM'(7V=&N+41B)TX`["@^$Y`$``(/#`8/N`77OBT7<]H"N!````@^$ZP$``(G8 -XM*="#^`$/A.`"`T$0 -XMBW`XA?8/E<"$P+H0$!``=06Z`!`0`(M-W/:!/`$```$/A=0!``"+1=R+@#0! -XM``"%P`^5P(3`=`.#RD"-=>R)=>R)=?")5"0,QT0D"`````")="0$BU7DR0C70F``^$E0```#'` -XM@\0\6UY?7<,YTP^%'/[__X7V#X04_O__@^X!=#^#PP&)VNGT_?__B=@IT.D9 -XM_O__@#HN#X40_O__A?8/A#K^__^#[@&-="8`#X0M_O__BU78C4,!B4(8Z1_^ -XM___'1"00`````,=$)`Q/C0@(B7PD",=$)`0!````BTWGH_?__QT0D!`$```")%"3H11G__X7`#X13____BTW<,<#'04P! -XM````@\0\6UY?7<.+@30!``"-!$#!X`(#01"+2#B%R0^5P.D>_O__BT7$P/A17____'1"0$`0```(D$).CO&/__A<`/A/W^__^+5=PQP,="3`$```#I -XM[O[__\=$)`0!````BT7P``Z3S___^-M@````!5N0(` -XM``")Y8M%"(M5#%WIG/O__XVV`````(V_`````%6Y`0```(GEBT4(BU4,7>E\ -XM^___C;8`````C;\`````53')B>6+10B+50Q=Z5_[__^0D)"0D)"0D)"0D)"0 -XMD)!5N`(```")Y5=64X/L'(M=#(M]"(7;=`:+0WB#P`''1"0$!````(D$).CF -XMGO[_A<`/A)$```"%VXE%\'1-BTMTBW7PBP&+4`B%TG1JB) -XMUH/&!,<&`````(M%\(/$'%M>7UW#QT0D"`````#'1"0$!0```(D\).A!2?__ -XMQT7P`````.O4D(VT)@````!5B>575E.#["R+?0B+7R2%VP^$1`$``(L#A<`/ -XMA"`!``#'1>@!````QT7L`````,=%\`````#IGP```)"-="8`@WWH`70:QT0D -XM!-+4"`B)/"3H6GD``(M/*,=%\`$````YRP^$R````(L3N4^-"`B)R(E$)!") -XM5"0,B4PD",=$)`2RN`@(B3PDZ+-Y``"+1Q#V@%0(```$#X6D````QT0D#`$` -XM``#'1"0(`````,=$)`0`````B3PDZ*,,__^%P'4,BT<0]H!4"```!'5T@\,$ -XMBP.%P'1K@T7H`8D$).@2H/[_BT\H,=(YV0^4P@-%\(TT4`%U[(M'.(/H`3E% -XM[`^"//___\=$)`0FN@@(B3PDZ)QX``"+3RB)=>S'1?``````.```@\0L,56 -XM4X/L$(M="(MU#(M#)(7`#X2(````QT0D"!$````/MT9\B1PD)0`!``")1"0$ -XMZ&KQ_O^%P'0,@\00N`$```!;7EW#BT,DB4,HBP")'"2)1"0$Z%;T_O^%P(G" -XM=-H/MT9\QT0D"`````")5"0$B1PD)0`!``"#^`$9P(/@_(/`)(E$)`SHI/7^ -XM_X7`=:J!BZP$````"``$@\006UY=PXD<),=$)`CTN`@(QT0D!`,```#H]T;_ -XM_X/$$+@!````6UY=PXUT)@"-O"<`````58GE@^PHB77XBW4(B7W\BWT,B5WT -XMBT8H.T8D#X3>````]H>!`````74VQT0D"!$````/MT=\B30D)0`!``")1"0$ -XMZ(GP_O^%P'15N`$```"+7?2+=?B+??R)[%W#C78`BUC\B1PDZ#F>_O^)7"0( -XMB7PD!(DT)(E$)`SHL0D``(7`=(72=1:+1RB%P`^$GP$` -XM`(M(!(7)#X24`0``BTT,]H&!`````71XA=)T-(U%\(E$)`B)?"0$BT<0B00D -XMZ.Z'__^Z`0```(7`#X2(`0``@\0LB=!;7E]=PXVT)@````"+1RB+6`2)'"3H -XM]IS^_XE<)`B)1"0,BT4,B3PDB40D!.AK"```A<`/A`0!``"#Q"RZ`0```%N) -XMT%Y?7<.-="8`QT0D"!$```"+50P/MT)\B3PD)0`!``")1"0$Z-#N_O^%P'7) -XMBTT,BU%XA=(/A"`"``#VAZT$```@=3*+5R2%TG0KBP*%P'0=B=.-M@````") -XM!"3HO)O^_XM#!(/#!(7`=>Z+5R2)%"3HIYO^_X&GK`0``/^?___'1R@````` -XMQT0D!`0```"+50R+0GB#P`&)!"3H79G^_X7`B<:)1R0/A"8"``"+10R+2'2+ -XM`8M0"(72#X0;`0``B -XM7UV)PHG0PXUT)@")/"3'1"0(U[@(",=$)`0#````Z-A#__^#Q"RZ`0```%N) -XMT%Y?70O__N@$```#IP_S__Y"0D)!5B>57 -XM5E.#[`R+10B+F)@```"+4QR%TG1,BT,@A) -XM%"3HOYC^_\=#'``````QP,=#(`````#'0R0`````@\0,6UY?7<.-M@````"- -XMOP````!5B>575E.#[!R)1>R)5>B+L)@```"+1B2)1?"+3B"%R70,B<*#P@*- -XM0?\YPGQ/BU8((M]\,'G -XM`HG[`UXB#P`$Y0P1S(XL3B4,$ -XMA=)T8HE$)`2)%"3H99+^_X7`B0,/A!$!``"`2PP!BT7P@\`!B2) -XM^P->'(L+A6_O^-=@#KG<=$)`00````QP0D`0```.@^E?[_ -XMA<")`P^$U0```(M&'(M5\(L4D(72#X5$____BU7LQT0D"`````#'1"0$!0`` -XM`(D4).@40/__N`$```#KAL=$)`00````QP0D`0```.CME/[_A<")`P^$I``` -XM`(M&'(M5Y(L4D(72#X5+____ZZV+5>S'1"0(`````,=$)`0%````B10DZ,$_ -XM__^+5AR%T@^%DO[__XM%[(D$).B;_?__Z7?___^+1>S'1"0(`````,=$)`0% -XM````B00DZ(L___^+.X7_#X7*_O__@&,,_L<#`````,=#!`````#I//___XM5 -XM[,=$)`@`````QT0D!`4```")%"3H4#___^D+____BU7LQT0D"`````#'1"0$ -XM!0```(D4).@P/___Z3S___^-="8`C;PG`````%6)Y5=64X/L'(M%"(MU%(N` -XMF````(7VB47D=#:+#?P@"0B+%0@A"0B+?1#K!HUV`(/'`0^^!X7`>#0YR'TP -XM]D2"-@(/A+T!``"#[@&-="8`==Z+5>2+30R+0AR)072+0B2)07B#Q!PQP%M> -XM7UW#A?9TX(E]$,=%\`````#K+8GV/!9T6(7;>!8['?P@"0B)]GT,H0@A"0CV -XM1)@V`G57@T40`8-%\`&#[@%T2HM5$(M-#`^V`O:!@@````(/OMAUP(#[_P^$ -XMN@```(M-"`^VPXM1$("\`E,'```2=:B#_@%VHX-%$`&#[@ `!@T7P`8/N -XM`76VBU7PBT4(Z*#\__^+3>2+422+01R+3?"+!)")2`B+3>2+7?"+01R%VXL$ -XMD(L`B47L#X3!````BT7PB?N+?>R)1>CK(H`[%@^4P(3`=`.#PP$/M@.(!X/' -XM`8-MZ`$/A(D```"#PP&+50SV@H(````"==(/M@,\_W1#BTT(#[;`BU$0@+P" -XM4P<``!(/E,#KNXM5"(M"$("X4@<``/\/A>[^__^)7"0$B10DZ$[^_O^#^!(/ -XMA=G^___I+/___XM5"(M"$("X4@<``/]UAL=$)`3_____B10DZ"'^_O^#^!(/ -XMA6W____I9?___XUV`(M%[(M-\(T$`8E%[(M5[,8"`(M-Y(-!)`&%]@^%&_[_ -XM_^E,_O__A?:)?1#'1?``````#X5:_O__Z=C^__^-=@!5N@$```")Y8/L"(M% -XM"(ET)`2+=0R)'"2+F)@```#'0R0`````Z%;[__^+0QR)1G2+0R2)1GB+'"0Q -XMP(MT)`2)[%W#C;8`````C;PG`````%6)Y8/L&(M%"(EU^(MU%(E]_(M]#(E= -XM](N8F````(GRZ`O[__^+4R2+0QR+!)"+$(M%$(ET)`B)%"2)1"0$Z!&3_O^+ -XM4R2+0QR+!)"+`,8$,`"+4R2+0QR+!)")<`B+0QR#0R0!B4=TBT,DB4=XBUWT -XM,<"+=?B+??R)[%W#C78`58GE5U93@^Q,BWT,B47`BT44B56\BU48B4VXBTT0 -XMBP")1>"+`HM5"(E%\(L)A=*)37UW#BTW`BT$@ -XMBT`(A<")1<@/A&H#``"+7`^''@$``(M#>(MS=(E%\(&+5`@` -XM```!``#I;?___XU-\(E4)`R)3"0(BUW@B5PD!(M%P(D$).@'K?__A<`/A*P! -XM``")P>FJ_/__C4-XB4PD#(E$)`B+0W2)1"0$BT7`B00DZ-NL__^%P`^$@`$` -XM`(E#=.D1_?__@:-4"```__[__XM-S#M+>`^'$`$``(M#>(MS=(E%\(&+5`@` -XM```!``#I8_W__XU-\(E4)`R)3"0(B70D!(M%P(D$).B#K/__A<`/A"@!``") -XMQNDS_O__C5WPB4PD#(E<)`B)="0$BU7`B10DZ%JL__^%P`^$_P```(G&Z93^ -XM__^-0WB)3"0,B40D"(M#=(E$)`2+1<")!"3H+JS__X7`#X33````B4-TZ;3^ -XM__^)1"0,C4-XB40D"(M#=(E$)`2+5<")%"3H`:S__X7`#X2F````B4-TZ;7^ -XM__^!HU0(``#__O__.W-X=V:+0WB+4W2)1?"!BU0(`````0``Z0C]__^-3?") -XM5"0,B4PD"(ET)`2+1<")!"3HL*O__X7`=%F)QNEK_/__C4-XB4PD#(E$)`B+ -XM0W2)1"0$BT7`B00DZ(BK__^%P'0QB4-TZ7UW#QT0D"#RY"`C'1"0$ -XM`P```(D,).AF-O__@\1,N`$```!;7E]=PXU%\(ET)`R)1"0(B50D!(M%P(D$ -XM).C?JO__A*_O^-=@!5B>575E.#[#R+?0B%_W04BU\0A=MT#?:#50@```$/A$P! -XM``#'1>@`````C5WPQT7P`````,=$)`P``@``B5PD",=$)`0`````B3PDZ"^J -XM__^%P`^$D`$``(E%Z(M%&,=%[`````")7"00B40D%(U%Z(E$)`R-1>R)1"0( -XMBT7HB40D!(M5%(GXB10DBTT0BU4,Z!KY__^%P`^%H@```(M%[(7`B47<=&B+ -XM5>B)T0'!.`/@]T````/O@*%P`^(T@```(LU_"`)"#G&#X[$````BQT( -XM(0D(]D2#-@)U(^FR````#[X"A<`/B+`````YQ@^.J````/9$@S8"#X2=```` -XM@\(!.7UW#C70F`(7_=!.+5Q"%TG0,BT)T.T7H#X2O````BT7HB00D -XMZ)*+_O^X`0```(/$/%M>7UW#D(%[>/\!``!V28M#=(E%Z(M#>(E%\(&+5`@` -XM```!``"-7?#IQ?[__SE-X`^$")5"0(BT4,B3PDB40D -XM!.AS]___Z4[___^-0WC'1"0,``(``(E$)`B+0W2)/"2)1"0$Z*"H__^%P'0% -XMB4-TZY"X`0```(GVZ7+___^!HE0(``#__O__,<#I8?___X&B5`@``/_^__^X -XM`0```.E-____C;8`````58GE5U93@^Q,B47(B57$B4W`]H!D`P```0^$D0(` -XM`(G"BX!<`P``C01`P>`"`T(0BT`XA<`/E<"$P`^%A@(``(M%R/:`<`,```$/ -XMA9X"``"+1#'1"0$+P```(M5X(D4).A%AO[_BU7@B57S'1?#_____QT7L_____XE5U(D$).CL -XMA/[_A<`/B-8#``#'1"0$D+X("(M%[(D$).B!A_[_A<")1

7UW# -XMB<*+@&@#``"-!$#!X`(#0A"+0#B)1>#I4OW__\=$)`0!````BT7PB00DZ->! -XM_O^+1>R)!"3H+(7^_XM%\(D$).@AA?[_QP0D`@```.@5A?[_QT0D$`````"+ -XM1=C'1"0(V[D("(E$)`R+5=R)5"0$BT7@B00DZ'R!_O_'1"0,WKD("(M5X,=$ -XM)`0%````B50D"(M%R(D$).A&-?__QP0D?P```.@NAO[_@:-4"```__[__XM5 -XMP(L"`<`[0WAW8(M3=(E5V(M5P(M#>(D"@8M4"`````$``(L"Z9C]__^)5"0, -XMBT7`B40D"(M5V(E4)`2+1*3__X7`#X1*`0``BU7`B478BP+I9OW_ -XM_XD4).C_AO[_B<;I%?W__XE$)`R-0WB)1"0(BT-TB40D!(M%R(D$).@WI/__ -XMA<`/A`D!``")0W3I<____\=$)`C5N0@(QT0D!`4```"+5 -XM7UW#QT0D"%;?"`C'1"0$!0```(M%R(D$).@?+___@\1,N`$```!;7E]=P\=$ -XM)`SSN0@(BT7<,?;'1"0$`P```(E$)`B+5@/A)X! -XM``"+1>B)!"3HKX3^_X/$;(GP6UY?7<.0@7YX_P$```^&CP$``(M&=(E%Z(M& -XM>(E%\(&.5`@````!``#I5/___\=$)`@!````QT0D!#0```")'"3H4#;__X7` -XM="V+1>R+5>B#Z`6#P@6)1>R)1"0,B50D"(M5#(D<)(E4)`3H!N[__XG&Z6+_ -XM___'1"0(`0```,=$)`0U````B1PDZ`)1:2#[P4/ME$%A-(/A,(```"%_W4%_P^$\_[_ -XM_X/O`0^$"P$``(U%[(D$)(U-\(G8C57HZ&/X__^%P`^%6?[__XM%[(E$)`R+ -XM1>B)1"0(Z=/^__^!HE0(``#__O__B?"#Q&Q;7E]=PXU&>,=$)`P``@``B40D -XM"(M&=(D<)(E$)`3H=J#__X7`=`B)1G3I1_[__[X!````D(UT)@#I(/[__X7_ -XM#X1G_O__H?P@"0@Q]HL-""$)"(E%K(E-L.L(BT78#[94!@6+1=B-1#`%B47< -XMBT6D*?"#Z`6)1=0/OL*%P'@:.T6L?16+5;#V1((V`G4>]T2"-``%``!U%)") -XM1"0$BTVHB0PDZ,5]_O^%P'4:@\8!.?=UJ.GU_?__BX-T`P``B46HZ5+^__^+ -XM?=3IY/[__XM-W(`Y*@^%Z?[__\8!`(M%Z(/`!8E%M(N3F````(E5S,=$)`0O -XM````B00DZ.Y]_O^%P(G`0``.46T#X2_`0``Q@``BT6TB00DZ)V"_O^) -XM1<"#Q@&)=>"+5>")%"3HB8+^_XM-M(E%N(D,).@[?O[_A<")1<@/A+T!``"+ -XM5`@ND'3; -XM@\`(B470B00DZ#2"_O^)1;R+?;R)V`-]P(U7`NC=Z/__BT7,BU`DBT`?[_Z>K[__^#P`B)1=")!"3H -XM78'^_SE%N(E%O`^'ZO[__XM-N(MUT(M]X/PYR?.F#X76_O__Z0?___^+1<") -XM1"0(BU6TB30DB50D!.@"@/[_`W7`@WW``799Q@8O@\8!Z0;____'1"0(!;H( -XM"+X!````QT0D!`,```")'"3H+2G__^EK^___QT7``0```,=%M`J@"`CI/_[_ -XM_XM-M,=%P`````#'1;1!\0@(B4W@Z2S^__^+3;2`.2]UG^FK_O__QT0D#)^M -XM"`B+1;2^`0```,=$)`0%````B1PDB40D".C;+?__Z0G[__^0D)"0D)!5B>57 -XM5E.#[!R+?0SV1WP!=`X/ME=1@/I`=`6`^BIU&XM%"&:#N*P$````#XGB`0`` -XMBTT(#[:1J````(M="`^VRH&+K`0```"```"(DZ@````[#?P@"0@/C&4!``") -XMT(M="(MS$(N>0`$``(7;=0_I;`$``(L;A=L/A&(!```Z0Q!U\<=$)`2$```` -XMQP0D`0```.@=??[_A<")1?`/A*4!``"+=?"+1?"#QCR)<#R)<$#'1"0$$``` -XM`,<$)`$```#H[WS^_X7`B<(/A+H!``"+1V2)0@CVAX(````(#X56`0``BT=L -XMB4(,BT7P@$A0`8M-\(M!/(ER!(D".W%`#X1^`0``B5`$BT7PC7L(,?:)4#R+ -XM4PPQP#G7=!B-M@````"+0A"+4@2#P`$!QCG7=?&-!#:)!"3H^GW^_XM5\(7` -XMB4(0#X3_````BU7PB4)(B7),Q@0P`(M;##G?="P!QHGVBT,(BU,0B30DB40D -XM!(E4)`CH[GW^_XGP`T,0Q@`*BUL$C7`!.=]UV(M-"(M=\(M1$(M"?(7`B0-T -XM"8M"?(E8!(M1$(M%\(E"?(M5"(M-\(M"$(/`?(E!!(/$'#'`6UY?7<.A""$) -XM"&:#?(@T``^)BO[__P^VA(@T!```Z7_^__^-!$F`P@&-A$98`0``='J)1"0$ -XMQT0D"`````"+50B)%"3HVO$``+@!````@\0<6UY?7<.)!"3'1"0(!0```,=$ -XM)`0`````Z+7Q``"#Q!RX`0```%M>7UW#B4(,BTWP@$E0`NFH_O__QT0D"``` -XM``#'1"0$!0```(M-"(D,).A>)O__N`$```#KHL=$)`3_````BT4(B00DZ#3B -XM_O_I;O___XE10.E]_O__QT0D"`````#'1"0$!0```(M5"(D4).@<)O__N`$` -XM``#I7?___Y"058GE5U93@^P\BWT,BW4(BT=TBP")1>"+0`B%P`^$K@$``(N> -XMF````(M#&(7`=`B)!"3H[7S^_XM5X(L"B00DZ%!V_O^%P(E#&`^$3`(``/:' -XM@@```"!T+HN&K`0``*D```0`=2&H`@^$^`$``(M5X(L"QT0D!-7:"`B)-"2) -XM1"0(Z+H)`@"+1V"%P`^%L@```(M&'(7`=&CV0%@$=&+VAB0!```!#X3@`0`` -XMBX8<`0``C01`P>`"`T80BT`XA<`/E<"$P`^%(@(``/:&8`0```$/A.8!``"+ -XMAE@$``"-!$#!X`(#1A"+0#B%P`^5P(3`=`[VAJX$```$#X3.`0``D#'2,<#V -XMAJP$```1B50D#`^4P(E$)!"+5>"+`HE\)`2)-"2)1"0(Z/6```#WAJP$```" -XM``0`='TQTH/$/(G06UY?7<.+3AR%R0^$NP$``(./@````$"#?V0!#X2A```` -XM,<")1"08BU7@BP*)?"0$B30DB40D%(U%Z(E$)!"-1VR)1"0,C4=DB40D".B! -XM)P``BU7H]H:L!````HE63`^%I````(M%[/>&K`0```(`!`")1E!U@XDT),=$ -XM)`0EN@@(Z,Q4``"#Q#PQTEN)T%Y?7P<"```BU4(BUT,BT(<]D!8!'0Y]D-] -XM`74SBT(@BT`(@#@O="C'1"0(3+H(",=$)`0#````B10DZ)PB__^!Q!P(``"X -XM`0```%M>7UW#BT-XA<`/A:,```#'!"2_N@@(Z'ER_O^%P(F%\/?__P^$HP$` -XM`(N5\/?__XD4).A-`"`T(0BU`XC7(!ZPB`^SIT"X/&`0^V7O^$VW7PC4;^.<)R:X3;="") -XM\NOF@^@!=$SHB'/^_X!Y`2YUJ`^V00(\+W0$A,!UG,=$)`R?K0@(BX7P]___ -XMQT0D!`4```")1"0(BU4(B10DZ*TF__^X`0```('$'`@``%M>7UW#BT-TBP"+ -XM`(F%\/?__^D4____QD;_`(N%\/?__XV]]/?__XE4)`S'1"0(N90(",=$)`0` -XM"```B40D$(D\).CO=?[_B%[_B3PDZ#1Q_O^%P'0R#[9>_^E-____@<0<"``` -XM,7<.0QX:L`````0```.O*C70F`(M5#(M"%(DT),=$ -XM)`0"````B40D".AFNP``@\0PN`$```!;7EW#BT,575KX!````4X/L'(M]"(N'F````(M8$(7;=#>)]HM# -XM$(E$)!"+0PB)="0(@\8!QT0D!%C4"`B)/"2)1"0,Z"M0``"+&X7;==6#Q!PQ -XMP%M>7UW#B3PDQT0D!$#4"`CH"U```(/$'#'`6UY?7<.058GE4X'L-`@``(F% -XMZ/?__XU%](F5Y/?__XF-X/?__\=%[/_____'1?C_____QT7T_____XD$).B( -XMR)!"3H=7#^_X7`#XCY````Z&AV_O^+E>3W__^#^/^) -XM0A`/A+@!``"%P`^%2P$``,=$)`0`````BT7TC9WL]___B00DZ)5O_O_'1"0$ -XM`0```(M%\(D$).B";_[_QT0D!`(```"+1?")!"3H;V_^_XM%^(D$).C$#W__^)5"00BY7D]___BT((QT0D"*S5"`C'1"0$``@` -XM`(D<)(E$)`SHFG+^_\=$)!``````B5PD#,=$)`C;N0@(QT0D!%Z@"`C'!"19 -XMH`@(Z/)N_O_'1"0,Z;D("(E<)`C'1"0$!0```(N%Z/?__XD$).B\(O__QP0D -XM?P```.BD<_[_QT0D"%;?"`C'1"0$!0```(N%Z/?__XD$).B"'?__BT7T@_C_ -XM=`B)!"3H!G+^_XM%^(/X_W0(B00DZ/9Q_O^+1>R#^/]T"(D$).CF3W__^)0AB!Q#0(```QP%M=P\=$ -XM)`C5N0@(QT0D!`4```"+A>CW__^)!"3HK!S__^DE____C;0F`````%6)Y5.) -XMTX/L)(7;BY"8````='V+0QB%P'0(B00DZ()S_O^+0R"%P'0(B00DZ'-S_O^- -XM1?C'1"0(`````(E$)`2+0Q")!"3H^6S^_XL3A=)T!HM#!(E"!(M#!(D0BT,L -XMA -XM7UW#D(UT)@!5B>57B<=64X/L#(D$).BAB70D"(E$)`2)/"3H)FK^_X7`=>.#Q`R)V%M>7UW#,=N#Q`R) -XMV%M>7UW#D(VT)@````!5B>575HG&4XG3@^PDH``(L5(-@("(72=#4QVXN#*-@("(E4)`S'1"0(!0```,=$)`22U`@( -XMB40D$(DT).A(2@``BY,PV`@(@\,0A=)US3'`@\0<6UY?7<.)T.@J____A<") -XMQW0^BT`(B40D#(L'B30DQT0D!&[4"`B)1"0(Z`=*``"+1PR)-"3'1"0$7ND( -XM"(E$)`CH\$D``(/$'#'`6UY?7<.)7"0(QT0D!/#5"`B)-"3HTDD``+@!```` -XMZY*-="8`C;PG`````%6)Y8M%"(M5$%WI$?___Y!5B>575E.![.P,``"+10B+ -XM71"+@)@```")A33S__^+0!"%P`^$8`$``(N--//__\>%///__P````#'A4#S -XM__\`````.0D/A&,!``"%VW0]#[8##[[0A=)X+XLU_"`)"#G6?B6+#0@A"0CK -XM%I"-="8`@\,!#[8##[[0A=)X"SGR?0?V1)$V`G7HA,!U38M%"+JGU`@(Z'?^ -XM__^+A3SS__^%P'0.BX4\\___B00DZ`-O_O^+A4#S__^%P'0.BY5`\___B10D -XMZ.MN_O^X`0```('$[`P``%M>7UW#C5,!B95<\___#[9[`8GY#[[1A=)XG8LU -XM_"`)"#GR?9.+#0@A"0B)C5CS___V1)$V`G2`/'/'A4SS__\`````#X0<`0`` -XMN9W4"`CK$H.%3//__P&#P0$XP@^$`P$```^V40&$TG7F//\/A#$!``"+50@/ -XMML"-!$"-A`!0`0```T(0@\`(BWT(QT0D$)W4"`B)1"0,QT0D"#S6"`C'1"0$ -XM`P```(D\).@<%___Z1#___^+50C'1"0(&-8(",=$)`0#````B10DZ/P6__^X -XM`0```.D@____QT0D!"````#'!"0!````Z-)K_O^%P(F%///__P^$^?[__XN] -XM///__XG&@\8(B7<(B7<,QT0D!"P```#'!"0!````Z)]K_O^%P(F%0//__P^$ -XMEO[__XM'"(N50//__XD"B7($.W<,#X2\!@``BXU`\___B4@$BX5`\___B[T\ -XM\___B4<(B4<0Z1'^__^)^(3`=1_I1_[__P^^PH7`>$0YQHGV?CZ+C5CS___V -XM1($V`G0Q@X5<\___`8N%7//__P^V$(32==+I%/[__XM-",=$)`3_____B0PD -XMZ`72_O_IS?[__X#Z(@^%*`8``(N]7//__P^V5P&$T@^$%@8``(!_`@`/A0P& -XM```/OL*%P'@<.<:)]GX6BXU8\___9H-\@30`>0@/MI2!-`0``(M]"(M'$(N` -XM0`$``(7`=1+IU`4``(UV`(L`A<`/A,<%```Z4!"-=@!U[HM`"(M("(F-7//_ -XM_XMP$(U&(XE$)`3'!"0!````Z'!J_O^%P(F%9//__P^$*@<``(N]9//__XN- -XM9//__XGZ@\$(@\(=B8U@\___B4\(B4\,B5<4#[8#B$<=C48"QD(!((E'&(M' -XM%(N57//__XET)`B#P`*)5"0$B00DZ,-K_O^+1Q3&1`8"`(!/'`&+30B+?0B+ -XM10B+22")C3CS__^+?TR)O43S__^+0%#'A5#S__\`````B85(\___@'D8`'D7 -XMBU4,BY*`````P>H(]]*#X@&)E5#S__^+C33S__^+21"%R8F-+//__P^$E08` -XM`,>%5//__P````"+O2SS__^+E63S__^+C4SS__^+/XF],//__XM"%(N]+//_ -XM_XE,)`C'1"0$K-0("(/``HE$)`R+1R")!"3HRF/^_XM'((D$).CO9O[_ZW^- -XM1>R-E8CS__^-??*)?"0,B40D",=$)`2RU`@(B10DZ,EG_O^#^`(/A#$#``"- -XMC8CS___'1"0$"@```(D,).B*9O[_A<")1>AT`\8``(N5+//__XV]B//__XE\ -XM)!"+30B+0@C'1"0(R-0(",=$)`0#````B0PDB40D#.C:$___BY4L\___C8V( -XM\___BT(8QT0D!``(``")#"2)1"0(Z+ME_O^%P`^%5O___XL=H!0)"(7;#X43 -XM!0``BY4L\___BT(8#[]`#,'H!8/@`83`=`OHB6?^_\<`!0```(N]+//__XM' -XM",=$)`B?K0@(QT0D!`4```")1"0,BT4(B00DZ&<8__^+10@QR8GZZ*OV__^+ -XMC3SS__^%R70.BY4\\___B10DZ$=J_O^+C63S__^+?0B)3"0$B3PDZ"ZL``"X -XM`0```.E"^___@_L"#X09`P``@_\"B?L/CK`"``"#^P,/A?P!``"+5>B%THF5 -XM://__P^$ZP$``(7V#X3C`0``B10DZ)IJ_O^+C2SS__^)A7CS__^+62B+`X7` -XM#X1*!```C76(ZPV#PP2+`X7`#X0X!```B[UL\___B40D#(V%B/O__\=$)`BY -XME`@(QT0D!``$``")?"00B00DZ"-G_O^-E8C[__^)="0$B10DZ-%E_O^%P'6Q -XMBQN)G7#S__^)'"3H'6K^_XN-+//__XF%*//__XM%J#M!%`^%://__P````"+E2CS__^+C7SS -XM___'!"0!````C40*,`.%>//__XE$)`3HYV;^_X7`B<,/A.\#``"-0"B)0Q2+ -XMO2CS__^%_W0RBY4H\___BXUP\___B00DB50D"(E,)`3H86C^_XN]*//__XM# -XM%,8$."^#QP&)O2CS__^+A7SS__^+E2CS__\#4Q2#P`&)1"0(BX5L\___B10D -XMB40D!.@C:/[_BX4H\___`X5\\___B4,8BY6`\___B5,//__XE+)(N]://__XG(@\`!B40D"(D4)(E\)`3HU&?^_XN% -XM8//__XD#BY5D\___BT(,B4,$BXU@\___.TH(#X3I`@``B1B+O63S__^)7PR# -XMA53S__\!BT7L@^@!B47L@\`!#X0V`0``B[TL\___BT<8QT0D!``(``")1"0( -XMC86(\___B00DZ,IB_O^%P`^$#_W__XV5B//__\=$)`0*````B10DZ!QC_O^% -XMP(E%Z`^$C0```(V-B//__[\!````Q@``B4WHC47HQT0D!-'4"`B-7_^)!"3H -XMFF7^_X7`B<8/A&S]__^%VP^%4/W__XDT).@@:/[_B;5L\___B85\\___@\C\__^+A5SS__^)!"3HE6?^_XG&Z3OZ__^)5PSI -XM1?G__XM!&(D$).C[9O[_B<'KD8N5+//__XM%".CU\___BX4P\___A<")A2SS -XM__\/A>KZ__^+E53S__^%T@^$9P$``(N-9//__XM1"(E1$(M]#`^W1WPE``$` -XM`/:'@0````$/A/$!``")1"0(BT4(B50D!(D$).@KM```A<`/A3SW__^+50B+ -XM4A2)50B+BI@```")C33S__^+A33S__^+E33S__^+&#G3B=@/A&\!``"+O63S -XM__^)!XE7!(N%-//__SM`!`^$30$``(N5-//__XN-9//__XL"B4@$BX5D\___ -XMB[TT\___B0>+E63S__^+30B+0A")5"0$B0PDB40D".A1[O__BX50\___A<`/ -XMA-D```"+?0B+4Q"+1R")0@B+4Q"+1TR)0@R+1U"+4Q")0A`QP.F\]O__BXTL -XM\___BT$8B00DZ$%?_O^%P`^5P.GE^O__QX4H\___`````.DI_/__B[5H\___ -XMN-34"`BY"@```/R)Q_.F#X4P_/__Z1?\__^+50C'1"0(`````,=$)`0%```` -XMB10DZ"D.___I'?;__XE:".D1_?__BT4(QT0D"-[4"`C'1"0$!````(D$).@! -XM#O__,<#I*/;__XM]",=$)`@`````QT0D!`4```")/"3HWPW__^F/^O__BT,0 -XMBY4X\___B5`(BT,0BXU$\___B4@,BT,0B[U(\___B7@0,<#IW?7__XEX!.F\ -XM_O__BY4\\___B1J+C3SS__^)VHE9!#M;!'1"BP.+O3SS__^)>`2+C3SS__^+ -XMA33S__^)RXD(B>(D\).C29/[_BU4(B7PD"(ET)`2)%"2)1"0,Z(?>__^Z -XM`0```(7`=2Z+5G@YV@^$QP$``(U#`3G"="R+10C'1"0(`0```(E\)`2)!"3H -XMY=<``+H!````BUWTB="+=?B+??R)[%W#D(M&=(U]E(L$F(LPB7PD!(DT).C] -XM7_[_A<`/A3`"```/MT6<)0#P```]`$````^$/0(``,=$)`0O````B30DZ&%? -XM_O^%P(F%+//__W0,Q@``@\`!B84L\___B30DZ!-D_O_'!"0!````B<.-0#B) -XM1"0$Z"YA_O^%P(G'#X19`@``C4`TB4<(B5\,B5PD"(ET)`2)!"3HNV+^_XM% -XMM(E'%,=$)!`&U0@(BT<(QT0D"+F4"`C'1"0$``@``(E$)`R-A33S__^)!"3H -XMB&#^_XV%-/___XV5-//__XE$)`2)%"3H,%_^_X7`#X2_````BT<(B00DZ#U< -XM_O^%P(E'+`^$Y`$``,=$)`0$````QP0D`@```.B.8/[_A<")PHE'*`^$XP$` -XM`(M'+(D"BXTL\___B?J+10CHB.S__X7`#X7]````BY4H\___BT(0A<")!W0& -XMBT(0B7@$BX4H\___B?J)>!"+A2CS__^#P!")1P2+10CHC.___S'2A<`/A'+^ -XM__^+10B)^C')Z(;N__^Z`0```.E<_O__BT4(NO?4"`CH?_'__[H!````Z47^ -XM__^+M63___^-1@&)!"3H:&'^_X7`B4%+//___O4"`B%P`^$H?W_ -XM_XM%"(E<)`C'1"0$!0```(D$).CA"?__N@$```#I%_W__\=$)`@`````Z6W_ -XM__^+10C'1"0(`````,=$)`0%````B00DZ*\)___I-____XM'+(7`#X0L____ -XMB00DZ*M@_O_'1RP`````Z1C___^)'"3H%U[^_XM'++D!````BY4P\___Q@00 -XM`(M'+`^V$(32="6#P`$PR>L*#[80A-)T%(/``8#Z.G7Q#[80A-)T!8/!`>OL -XM@\$!QT0D!`0```")#"3H)E[^_X7`B<.)1R@/A'O____'1"0$(=4("(M'+(D$ -XM).@67/[_A<`/A(+]__^)`X/#!,=$)`0AU0@(QP0D`````.CU6_[_A575E.#[#R+10B+L)@```#VAC@$```!#X0X`0`` -XM@(XX!````8M5#(M"=(L`BU`(BS"%TGYC#[X&A7'1"0(:-8( -XM",=$)`0#````BT4(B00DZ",(__^X`0```(/$/%M>7UW#A=)TU(72#XX2`@`` -XMBSW\(`D(B?.A""$)"(E]U(E%X(VT)@`````/M@L/OL&%P'@/.T74?0J+?>#V -XM1(#"+#?P@ -XM"0@YR'TFBQ4((0D(ZQ>)]H/#`0^V`X3`=!(/OL"%P'@+.<%^!_9$@C5`=>2) -XM\.B-[?__A<`/A#?___^)7"0(BU4,B50D!(M]"(D\)/]0!(/$/%M>7UW#QP0D -XM$]4(".A15_[_A<")QP^$LO[__XD$).C_7O[_B47%W^_XM]V(E] -XM[,=$)`0?U0@(B1PDZ.);_O^%P'0=@#@`=.>)1"0(BT4,B40D!(M5"(D4).A? -XM^?__Z\^+10B%P'06BWT(BT<0AO__A<")1=@/A3O___^X`0```.D#_O__B40D#(U# -XM>(E$)`B+0W2)1"0$BU4(B10DZ*1Z__^%P'35B4-TZ?+^__\/M@Z)\XUV`.D? -XM_O__@:!4"```__[__^E+_?__D)"0D)"0D)"0D)"058GE@^PXB77XBW4(B5WT -XMBUT,B7W\BT8`/MT-\C5-1C7MDQT0D$`$```")?"0( -XM@^`!]]@APHM%X(E4)`2)-"2)1"0,Z!J1_O^%P'06N`$```"+7?2+=?B+??R) -XM[%W#C70F`(M%X,=$)`P!````B7PD!(DT)(E$)`CHY93^_X7`=57OX#8"`A6B=93B<.# -XM[!R+4!#V1A@!=06_C=@("(7)#X3R````B7PD#(E,)`C'1"0$G]@("(D<).C` -XM-0``BT8(@\8(B77L.?")1?`/A+X```"+5?"+>A"+0@B%_XE%Z`^$AP```#'V -XMZV:-="8`#[;`C01`C80`4`$```-#$(/`"(E$)`2)'"3HX30``(M#$/:`5`@` -XM``1U=\=$)`P!````QT0D"`````#'1"0$`````(D<).AER/[_A@/M@06//]UD\=$)`3_````B1PDZ/.__O_KE,=$ -XM)`0FN@@(B1PDZ'$T``"+1?"+5>R+`#G0B47P#X5"____@\0<6UY?7<,/MD80 -XM//]T$@^VP(T$0(V,0E@!``#I]/[__\=$)`3_````B1PDZ)R__O^)P>G=_O__ -XMD(UT)@!5B>6#["B+50R+10B)7?2)=?B)??R)1>R)5?"+0G2+`(L8#[83@/IC -XM#X2W````=T*`^F(/A.<```"-M"8`````QT0D"`H```"+5?"+0B"+0!")1"0$ -XMBWWLB3PDZ&#.``"X`0```(M=](MU^(M]_(GL7<.`^G-T.8#Z='7$BT`(@_@$ -XM=[RZ8,$("#G`_(G>B=>)P?.F=:J+1>R+7?2+=?B+??R)10B)[%WIPZ$``(UV -XM`(M`"(/X!W>(NA_N"`@YP/R)WHG7B<'SI@^%GK10``BT`(@_@+#X=/____NN78"`@YP/R)WHG7B<'SI@^%.?___XM% -XM[(M=](MU^(M]_(E%"(GL7>DBX___B?:+0`B#^` -XMB=>)P?.F#X7^_O__BU7LBT(0BYA``0``A=L/A"$!```/MD,0@_A_=PKV!(7= -XM%`D(!'5>C4,(.4,(=`R+1>PQR8G:Z#/]__^+5>R+0A#V@%0(```$#X7@```` -XMQT0D#`$```#'1"0(`````,=$)`0`````B10DZ"#&_O^%P'43BWWLBT<0]H!4 -XM"```!`^%J0```(L;A=MUB8M5[(M"$(NP0`$``(7V='6-=@`/MD80@_A_=UWV -XM!(7=%`D(!'13C48(.48(=`R+1>PQR8GRZ*G\__^+?>R+1Q#V@%0(```$=5K' -XM1"0,`0```,=$)`@`````QT0D!`````")/"3HFL7^_X7`=0R+1Q#V@%0(```$ -XM=2J+-H7V=92+5>R+0A"+D"`!``"%TG04BT7LN=;8"`CH1_S__S'`Z?7]__\Q -XMP.GN_?__BY`@`0``A=)UV\=$)`BXV`@(QT0D!`0```"+?>R)/"3H!`'__S'` -XMZ<+]__^0D)"0D)"0D)"0D)"058GE@^PXB5WTBUT,B77XBW4(B7W\BT-XA#' -XM1"0(`````(E\)`0E``$``/?:@^(@@_@!&<#WT(/@!`G0B40D#(DT).A'KO[_ -XMA+0&2) -XM1?B+1?C'1"0$\=@("(D<)(E$)`CH5B\``#'2@\0DB=!;7<.-1?B)1"0$B1PD -XMZ!W,_O^Z`0```(7`=,?KWL=$)`@$````BT`@BP")'"2)1"0$Z"G)``"Z`0`` -XM`.N^D)!5B>6#[!B)7?2+70B)=?B+50R)??R+0QR%P`^$O0```(M">(7`=2G' -XM1"0(`0```(M#3(D<)(E$)`3H4O7^_S'`BUWTBW7XBWW\B>Q=PXUV`(/H`70+ -XMZ%I/_O^-M@````"+0G2+#_____QT7<_____\=%Z/_____'1>3_ -XM____=!.-1>2)!"3H84[^_X7`#XCP!```C47") -XM!"3H0TW^_\=$)`0"````BT7@B00DZ#!-_O^+1>2#^/]T"(D$).B`4/[_BT7H -XM@_C_=`B)!"3H<%#^_XM%W(D$).AE4/[_BT7@B00DZ%I0_O^+10@/MIAP`P`` -XM@^,!#X2/`P``B<*+@&@#``"-!$#!X`(#0A"+0#C'1"0$+P```(D$).B#3O[_ -XMA<"-4`$/A-8$``"$VP^$2@,``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!`` -XM````BTT`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B) -XM!"3H$0#__\<$)'\```#H^5#^_Y"-="8`N@$```"#Q$R)T%M>7UW#D(M%Y(/X -XM_W0(B00DZ&1/_O^+1>")!"3H64_^_XM%((/H`8/X`0^&H`(``(M-"(M!'(!( -XM6`CHJTO^_X/X_XG'#X2S`P``A<`/A"8#``"+1>B)!"3H'4_^_X-](`,/A?,# -XM``"+50B+LI@```"-1>R)1"0(BU70B50D!(M-"(D,).CMQ@``AR)1"0(BT8LB40D -XM!(M-"(D,).B.+P``A<`/A'#___^+%:`4"0B%T@^%%`0``(M5T`^_0@S!Z`:# -XMX`&$P`^%WP,``(M5T#'VB10DZ+I0_O_'1"00`0```,=$)`P`````QT0D"`G9 -XM"`B)?"0$BT4(B00DZ`]3``"%P`^$00,``+X!````BU48BP*#^`%V&8E$)`2+ -XM30B)#"3HN<;^_X7`=0:+11B#*`&+50B+0AR`8%CW@WT@`@^$G`$``#'`QT0D -XM$`````")1"0,BT4B#^/]T"(D$).AB3?[_BUW0A=MT+HM-T(D,).C` -XM3_[_BT7@@_C_#X3`_?__B00DZ#Q-_O^#Q$RZ`0```%N)T%Y?7<.+1=R#^/]T -XMU8D$).@=3?[_Z\N-M"8`````QT0D"-6Y"`C'1"0$!0```(M5"(D4).AE^/[_ -XMZ7+____'1"0(SKD(",=$)`0%````BT4(B00DZ$7X_O_I4O___XM-"(N!:`,` -XM`.D2_?__BTT(BX%H`P``Z;W\__^+30B+@6@#``#I=_S__X-](`$/A-````"- -XM1?#'1"04`0```(E$)!"+31")3"0,BT70QT0D!/;8"`B)1"0(BU4(B10DZ*PR -XM``"+30B%P`^5P`^V\(M%\`%!7(-](`(/A7;^__^+51"+"H7)#X7&`0``BTT8 -XMB0&+30BX`0```/:!K`0```(/A5'^___I2O[__\=$)`A6WP@(QT0D!`4```"+ -XM50B)%"3H>O?^_\=%T`````#I@/[__XM%W(D$).CW2_[_QT0D!!KW"`B+1>B) -XM!"3HU$O^_X7`#X7#`0``QP0D`0```.A`3?[_BT7HB00DZ,5+_O^-1?#'1"04 -XM`0```(E$)!"+51")5"0,BTW0QT0D!/;8"`B)3"0(BT4(B00DZ-$Q``"+50B% -XMP`^5P`^V\(M%\`%"7#'`Z:#]___'1"0(UKD("+X!````QT0D!`4```"+10B) -XM!"3HR?;^_XM%Z(D$).A22_[_BT7`"`T(0BU`XZ0C[__^-1?#'1"04`0```(E$)!"+312)3"0, -XMBT70QT0D!/;8"`B)1"0(BU4(B10DZ"PQ``"+30B%P`^5P`^V\(M%\`%!7.F0 -XM_/__A?8/A;S\__^+12"%P`^%L?S__\=$)!`!````BU44B50D#(M-$,=$)`0` -XM````B4PD"(M%"(D$).BJ@?[_AR)5>B+5?`/MD)0J`UT1(M:/(UZ/#G?=#&+,XM###M%$(GQ -XMR)0@B+0PR#P`&)0@R+1>B)6@2)0PR+`XD"BP,Y -XMQW0=B5`$B1.)\^E@____@VL,`8U"_XE#"(GSZ4____^+1?")4$")$^O>BT7P -XMB4@\ZX>+0P2+5?")0D"+"^EN____QT0D"`````#'1"0$!0```(M5"(D4).C0 -XM\_[_@\057B<=64X/L -XM;(E5M(E-L(MP'(7V#X1?`0``]H"N!````@^%(0$``(M-M(M9>(7;#X3I```` -XMBT%TBS7\(`D(BP"+"`^V$0^VVCGS?1NA""$)".L-@\$!#[81#[;:.?-]!_9$ -XMF#8"=>R$T@^$KP```#D=_"`)"`^/CP```(#Z7`^$F@```(#Z?`^$D0```(#Z -XM"@^$B````(U!`8E%S`^V40&$T@^$;@$``(MUS`^VPCG#B?%U*^GR````D(UT -XM)@`/MA:#Q@&($0^V%H/!`832#X1'`0``#[;".<,/A-$```"`^EQUVHU&`8E% -XMT`^V5@$/ML(YPP^$J@```(#Z7`^$EP````^V%HMUT.NZH0@A"0CW1)@T``4` -XM``^$7O___Y#'1"0("@```(MUM(M&((M`$(D\)(E$)`3HD[T``+@!````@\1L -XM6UY?7<.+5;2+0B"+`(D\),=$)`@8V0@(QT0D!`,```")1"0,Z$+R_O^#Q&RX -XM`0```%M>7UW#QT0D"`0```"+0B"+`(D\)(E$)`3H/+T``+@!````ZZ?&`5P/ -XMME8!@\$!@\8"Z1G___^+=N!```0`^$&@,``(M'3(E%Y(M'4(E%Z(U%Y,=$)`P!````B40D -XM",=$)`0G````B3PDZ";B_O^%P'08N`$```#I*O___XMUS(GQ#[;".<-UD>N, -XMQT0D!(0```#'!"0!````Z&I&_O^%P(E%N`^$^0(``(M-N(M%N(/!/(E-O(E( -XM/(E(0(M5M(M"=(GRBP`K$(M`""G0A<")1?!U#+Y+C0@(QT7P`0```(M%\`'` -XMB00DZ)Q'_O^+3;B%P(E!$`^$J`(``(M5N(E"2(M%\(E"3(M-N(G"`U$0B70D -XM!(E$)`B)%"3HFD?^_XMUN,=&1`````"#?;`!&<"#X/R#P`@(1E"+1Q"+4'R% -XMTHD6=`F+0'R)<`2+1Q"+5;B)4'R+1Q"#P'R)0@2+3;2+662+<6PY\XEUQ`^' -XM?P(``,=%P`$```#'1R)5"00B4PD#,=$)`@!````B5PD!(D\).A+N_[_ -XMA<`/A?']__^+=?"-1=3'1=0`````QT78`````,=%X`````")==R-M[````#' -XM1"00!````(E$)`S'1"0(`````(M%[(DT)(E$)`3HP$+^_X7`#X2O_O__@_@! -XM=!6)="0(B40D!(D\).@/5P``Z9O^__^+5;"%T@^$Z_[__^F+_O__B5H,Z=[^ -XM__^)03SIT/[__XV'L````(E$)!2-A\0```")1"00C8?`````QT0D&`(```") -XM1"0,*TW,B4PD"(M5S(D\)(E4)`3H;E<``(7`#X4D_?__QX>L`````0```.GF -XM_/__C8>P````QT0D&`(```")1"04QT0D$`````#'1"0,`````(N'Q````(E4 -XM)`2)/"2)1"0(Z!]7``"%P`^$IOS__^G0_/__QT0D"`````#'1"0$!0```(D\ -XM).A:[O[_N`$```#IXOO__XM%N(L0A=)T!HM`!(E"!(MUN(M&!(D0BT80B00D -XMZ$)%_O^)-"3H.D7^_\=$)`0"````B3PDZ%8S__\QP.FA^___QT0D"`8```#' -XM1"0$`````(D\).@7N0``N`$```#I?_O__XVV`````(V\)P````!5N0$```") -XMY8M%"(M5#%WI'/K__XVV`````(V_`````%6)Y8M5#(M%"%T/MDI]@^$!Z?KY -XM__^0D)"0D)"0D)"058GE@^P8BT4(B5WTB7W\BWT,B77XBW`0BT9\C9Z````` -XMBU`4A=(/A80```"#?1@!&<#WT"4`:`(`B8.`````BT4Q=PS'`QT,(```` -XM`.OHD(UT)@#'1"0$A````,<$)`$```#HT$'^_X7`=$V)PXM&?(7`B0-T!HM& -XM?(E8!(U&?(E>?(E#!.E%____BT44B40D"(M%$(E$)`2+10B)!"3HT%___X7` -XMB4,0#X5%____N`$```#I?O___XM%",=$)`@`````QT0D!`4```")!"3H<.S^ -XM_[@!````Z5G___^-M@````!5B>6![#@$``")5"0$B5WTB=.)=?B)SHE]_(G' -XMB0PDZ*`__O\QTH7`=!:+7?2)T(MU^(M]_(GL7<.-M"8`````Z/]#_O^+50B% -XMT@^$Q@```(M+#(7)#X6[````#[=#"+H"````J!)TPKL"````C47PB40D"(ET -XM)`2)/"3H8-_^_\=$)`0O````B30DB87@^___Z#X^_O^%P`^$!`$``(/[`0^$ -XMP`````^"DP```(/[`G4BBY7@^___QT0D"%C:"`C'1"0$`P```(D\)(E4)`SH -XMC.O^_XM-\+H!````A_O__C47LB70D!(E$)`B)/"3H#=[^_X/[`8G^```` -XM#[__^)="0,QT0D"%S9"`C'1"0$`P```(E$)!")/"3H6NK^_XM=[(7; -XM#X3#_O__A?]T#8M'$(7`=`8[<'20=&*)-"3H2D'^_^FE_O__@_L"==*+A>#[ -XM__^)="0,QT0D"+S9"`C'1"0$`P```(E$)!")/"3H!NK^_^NJBY7@^___B40D -XM#,=$)`B0V0@(QT0D!`,```")5"00B3PDZ-[I_O_K@H&@5`@``/_^___I0?[_ -XM_XVV`````(V\)P````!5B>6![,@```")7?2-G5C___^)=?B)UHE]_(G'C47L -XMB40D&(D<),=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D!#8` -XM``#H7;<``(DT).@I0?[_B70D"(D<)(E$)`R-1=R)1"0$Z.ZR``")7"0$B3PD -XMZ")/``"+7?2+=?B+??R)[%W#D(UT)@!5N9;:"`B)Y8'LZ`0``(EU^(MU"(E] -XM_(U]E(GZB5WTB?#'1"0$`````,<$)`$```#HF_S__X/X`@^$4@$``(M&$(M` -XM?(M`%(7`#X5B`0``]X:L!`````8``'05,<"+7?2+=?B+??R)[%W#C;8````` -XMQP0DH]H(".BX./[_A<")PP^$50$``(D$).AF0/[_QT0D%`````#'1"00`0`` -XM`(E<)`C'1"0$H]H("(DT)(E$)`SHVOK__X7`#X7(````BT80BT!\BT`4A<`/ -XMA>\```#WAJP$````!@``=8#VAJ@!```!#X3C````BX:@`0``C01`P>`"`T80 -XMBW@XA?\/E<"$P`^$5/___XV=-/___[FKV@@(B=J)\,=$)`0`````QP0D```` -XM`.BF^___A<`/A?P```"YG=H("(G:B?#'1"0$`````,<$)`````#H@?O__X/X -XM`@^%VP```(N%-/___SM%E'4/BX4X____.T68#X3!````NIW:"`B)\.CR_?__ -XMA<`/A*T```"X`0```.G-_O__NI;:"`B)\.C4_?__A_O__B30DZ.=H___ID?[__XDT).C::/__Z03___^+GJ`!``"%VP^5P.DD -XM____QP0DI-H(".A--_[_A<")PP^$C0```(D$).C[/O[_QT0D%`````#'1"00 -XM`0```(E<)`C'1"0$I-H("(DT)(E$)`SH;_G__X7`#X25_O__Z5C___^#^`)T -XM((M&$(M`?(M(%(7)#X07_O__B30DZ%1H__\QP.D*_O__BX4T____.T64=0N+ -XMA3C___\[19ATRKJKV@@(B?#H^_S__X7`=+KI"/___\<$)+^Z"`CHJC;^_X7` -XMB<,/A"K^__^`.``/A"'^__^)1"0,C84T^___QT0D$*O:"`C'1"0(N90(",=$ -XM)`0`!```B00DZ`T[_O^-C33[__^)^HGPQT0D!`$```#'!"0`````Z.OY__^% -XMP'5(C84T^___QT0D$)W:"`B)7"0,QT0D"+F4"`C'1"0$``0``(D$).C!.O[_ -XMC8TT^___B?J)\,=$)`0!````QP0D`````.B?^?__@_@"#X6$_?__C94T^___ -XMB?#H*?S__X7`#X1O_?__Z3+^__^-M@````"-OP````!5B>6#?0P^BT40=`1= -XM,<##B44,7>D7@```C;0F`````%6)Y8/L&(EU^(MU"(E]_#'_B5WTBYZ8```` -XMA=MT4_:&KP0```%U:3'_B30DZ&^C__^%P'52BT,LA)]HDT)&:_`0#H9"L``(7`=8GK -XMA8VT)@````"-O"<`````58GE@^P8QT0D!#P$``")7?2)=?B+=0B)??R+?0S' -XM!"0!````Z,LY_O^%P(G#=&*)AY@```")`XE#!,=`"`````"-0`B)0PPQP(7V -XMQT,0`````'0PBX:8````BT`8AQ=P\=$)`@`````QT0D!`4```")-"3H -XM5^3^_[@!````Z]3'1"0(`````,=$)`0%````B3PDZ#CD_O^X`0```.NUD%6) -XMY5=64X/L3(M%"(M`'(7`#X1Z!0``BW4,BT9D@\`!B40D!(M%"(D$).A1L?[_ -XMA<`/A,P$``"+10B%P'07BTT(BUD0A=MT#?:#50@```$/A.<$``"-1?#'1?`` -XM````QT0D#``!``")1"0(QT0D!`````"+=0B)-"3H4EC__X7`B478#X1"!0`` -XMBTT,]D%\!'0$@T%L`8MU#(M&9(M6;(G'.=")5>`/A!$%```Y1>#'1=0!```` -XM#X*F`0``QT7(`````,=%S`````"-M@````"-1>R-5>B)1"00B50D#,=$)`@` -XM````B7PD!(M-"(D,).CKKO[_A<`/A2X$``"+1>R%P`^$2`$``(M5S#';C50" -XM`HM%"(E5S(7`#X2T`0``BTT(BUD0A=L/A*8!``"+1=@Y0W0/A)H!``"+5R%]HEU -XMQ(EUO'1EBTWH#[X!B`/AG3^__^+=0R+1F2+50B)0DR+30R+<62+66PYWG(6Z3<" -XM``"-M@````"#ZP$YW@^#)@(``(E<)`2+10B)!"3H%K;^_X7`=.*+50B%TG06 -XMBU4(BT(0AR+30@IT(/H`8E!4#M]X,=%U``````/AJ+] -XM___I*?___XM-Z(E$)`B)3"0$BT7R+5>@!1=P!1<@/OG00 -XM_^G(_O__BTWH@#DI#X2E_O__B70D!,<$)-/:"`CH*3/^_\=%T`````"%P'07 -XMBT7R#P@<@!B57_/__ -XMC4-XB50D#(E$)`B+0W2)1"0$BTT(B0PDZ$Q4__^%P`^$/P$``(E#=.E5_O__ -XMB57$QT70`````(M%Q.F0_O__B57$BT7$Z87^__^+3=2%R0^$J````(M%"(7` -XM=!:+50B+0A"%P'0,BTW8.4AT#X0]`0``BW78B30DZ&`V_O^+50R+30B+0FP# -XM06B#P`$K0F2)06B#Q$PQP%M>7UW#QT0D"+3:"`C'1"0$`P```(M5"(D4).@2 -XMW_[_@\1,N`$```!;7E]=PXMU#(U'_XE&;(M&9.DF_?__@7MX_P````^&C``` -XM`(M3=(E5V(M#>(E%\(&+5`@````!``#I)?O__XM5V"E5W(M-W(ET)`2)5"0( -XMB4PD#(MU"(DT).@,K_[_A<`/A##____I#?W__\=$)`@$````BU4,BT(@BP") -XM1"0$BTT(B0PDZ*"I``"#Q$RX`0```%M>7UW#C4@!B4W@B4YLZ>'Z__^X`0`` -XM`.GV_/__C4-XQT0D#``!``")1"0(BT-TB40D!(M%"(D$).C:4O__AR+`8E%\`^V.(GZ@/HC#X2@````@_L!=$Z+ -XM5@3'1"0@"````(E<)!R+0@B)1"08BP*+50B)1"04BP:+0`B)%"3'1"0(```` -XM`,=$)`0`````B40D$(M%\(E$)`SHUC+__XG"Z6[___^+1?"`>`$`=:F)^H#" -XM`0^$A`$``(M-"(M1$(GY#[;!#[:,`E,'``"#^0P/AQ0!``"X`0```-/@J8`2 -XM```/A0T!``"+30R+<73I9?___XM-\`^V40&#^G\/AU#____V!)7=%`D(!`^$ -XM0O___P^V00(/MM"#^G]V%^L?C;8`````#[9!`P^VT(/Z?W<-@\$!]@25W10) -XM"`1UYX3`#X4-____BU8$QT0D(`D```"+3?")7"0?[__XM5"(M"$#'2B["`"```A?8/A&/^__^+10R+2'2+402+0@B)1"04 -XMBP*+5?")1"00BP&+30B+0`B)5"0(B5PD!(D,)(E$)`S_UHG"Z2K^__^+50R+ -XM@@! -XM="/'1"0(6-L(",=$)`0#````B1PDZ&G:_O^X`0```(/$%%M=PXU!9,=$)`P! -XM````B40D"(L"#[8`B1PDB40D!.B^RO[_@\046UW#QT0D"`0```"+02"+`(D< -XM)(E$)`3H/Z4``+@!````Z[20D)"0D)"0D%6)Y8'LB````(E=](M=#(EU^(E] -XM_(M#>,=%D)W:"`B%P'0F@^@!=`CHERO^_XUV`(M#=(L`BP")19")1"0$BT4( -XMB00DZ%=R_O_V0WT!=1J-192)1"0$BT60B00DZ!,M_O^%P`^$D0$``(M%D,=$ -XM)`BD`0``QT0D!`$&``")!"3H4"_^_X7`B<,/B#@!``#'1"0$&O<("(D$).CV -XM+?[_A<")QP^$>P$``(E$)`2+10C'1"0,`````,=$)`B"VP@(B00DZ$DR__^% -XMP`^%X0```(L=H!0)"(7;#X7#````]D<,0`^%R0```(M%",=$)`P!````QT0D -XM"([;"`B)?"0$B00DZ`HR__^%P`^%H@```(L-H!0)"(7)#X48`0``]D<,0`^% -XMB@```(M%",=$)`P"````QT0D")/;"`B)?"0$B00DZ,LQ__^%P'5GBQ6@%`D( -XMA=(/A?0```#V1PQ`=5.+10B)?"0$B00DZ*0&__^%P'5`H:`4"0B%P`^%Z``` -XM`/9'#$!U+8D\).B)+_[_A<`/A.@```#H?"S^_XLPZR.-="8`B3PDZ*PM_O^% -XMP`^$-____^A?+/[_BS")/"3H52_^_^A0+/[_B3"+19#'1"0,GZT(",=$)`0% -XM````B40D"(M%"(D$).@XW?[_N`$```"+7?2+=?B+??R)[%W#BT60QT0D#+#; -XM"`C'1"0$`P```(E$)`B+10B)!"3H!-W^_[@!````Z\KH["O^_XLPB1PDZ'(L -XM_O_KBXD\).@8+?[_A<")]@^%:O___^G;_O__B3PDB?;H_RS^_X7`#X53____ -XMC78`Z?C^__^)/"3HYRS^_X7`D`^%.O___^D(____BT60QT0D#)G;"`C'1"0$ -XM!````(E$)`B+10B)!"3H@]S^_S'`Z4G___^0D)"0D)"0D)"0D)!5B>575E.# -XM[$R+30B+10R+41R%T@^$:`,``(M(;(MP9(E-V(M`5#GPB47<#X.S`0``BUHX -XMQT74`````(7;=0CK/8L;A=MT-X![$">0C70F`'3OBT,(.?!RZ#E%W'+C@&,1 -XM_8E<)`2+50B)%"3H[[7^_\=%U`$```"+&X7;=7UW#.<@/AT7^___'1"0(X-L(",=$ -XM)`0#````BT4(B00DZ%G5_O^#Q$RX`0```%M>7UW#B?.+==R)3>"-="8`@VW@ -XM`8-]X/\/A`P"``"-3>R-1>B)3"00B40D#,=$)`@!````B5PD!(M5"(D4).B] -XMH/[_A4_?__Z<#^__^-0WC'1"0,``$` -XM`(E$)`B+0W2)1"0$BU4(B10DZ(M(__^%P`^$6O[__XE#=.NFQT0D"`0```"+ -XM0""+`(D,)(E$)`3HY9X``+@!````Z3?^__^+1=R+5=PK1*O[_BT4(BU77UW#BU4,@$W@`8M"5,=%Z`````")1>2-1>R) -XM1"00C47DB40D#(U%R,=$)!0!````QT0D"`````")1"0$B3PDZ,<+__^%P'6A -XM`W7L,=LK=<#'1U``````B7=,ZY+'1"0(!````(M5#+L!````BT(@BP")/"2) -XM1"0$Z/Z<``"#Q$R)V%M>7UW#D)"0D%6)Y8/L&(M5"/:"L`(```%T/HN"J`(` -XM`(T$0,'@`@-"$(M(.(7)#Y3`A,!T,L=$)`@,W`@(QT0D!`,```")%"3HB]'^ -XM_[@!````R<.-="8`BX*H`@``A<`/E,"$P'7.QT0D"$C<"`C'1"0$`P```(D4 -XM).A9T?[_N`$```#)PY"058GE@^PHB77XBW4,B7W\BWT(B5WTBT9TBQB+`XD\ -XM)(E$)`3HN&G^_P^W1GR)/"0E``$``(E$)`3HD(VT)@````!5B>53@^PDBUT(BT,_O^%P'00N`$```"#Q"1;7<.0C70F -XM`,=$)`0(````B1PDZ+`\__^%P'757,?]64X/L#(MU#(M% -XM"(`^`(N8F````'1IQT7P`````.LEBX,T!```#[84-XA4#P`&`^@J)@S0$ -XM``!T(H/'`8`\-P!T*8&[-`0````$``!VSXM%"(D$).A/____Z\*#QP''1?`! -XM````@#PW`'77BT7PA6#[#B+ -XM10B)??R)7?2)=?B+L)@```"-11")1?"+GC0$``")1"0,BT4,B40D"+@`!``` -XM*=B)1"0$C40>-(D$).AN(/[_B<>-!!B`?#`S"HF&-`0``'0'/0`"``!V"XM% -XM"(D$).BV_O__B?B+7?2+=?B+??R)[%W#C;0F`````%6)Y5=6B<93@^PLB4W@ -XMBTT,B57D]H`X`@```0^$`0(``(M0$(N`,`(``(T$0(M$@CB%P`^5P(3`=`.` -XMS03VAM`#```!#X3*`0``BX;(`P``C01`BT2".(E%\(M5X('A``0``(L:B4W< -XM@VT(`8-]"/\/A(\!``"+3>0/M@$\"0^$\P```#S_#X2I`0``BU80#[;`C01` -XM`<"-C`)8`0``B4WH#[:4`ET!``")5>R+31"%R74.BWWL`=\[?C@/@IP```"+ -XM5>PQ_X72=7?IGP```)"+11"%P'4'BU7H#[8$%XE$)`C'1"0$BNP("(DT).B. -XM_O__BT80]H!4"```!`^%`P$``,=$)`P!````QT0D"`````#'1"0$`````(DT -XM).A^D?[_AQT+3E>.'6*QT0D -XM!":Z"`@QVXDT).B8_?__Z7/___^+1>B)^XDT)(E$)`3H@OW__X-%Y`'I\?[_ -XM_XM]W(7_#X4*____.UXX<^`QP(D9@\0L6UY?7<.+AL@#``")1?#I./[__XN`,`(``(M6 -XM$(7`#Y7`Z0'^___'1"0$_P```(DT).@;B/[_QT0D!/\```")-"2)1>CH"(K^ -XM_XE%[.E,_O__58GE5U93@^PLBUT(QT7L`````(MU#/:#F`(```$/A($```"+ -XM@Y`"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=#&-3>RZLMP("(G8QT7PLMP(",=$ -XM)`@`````QT0D!`````#'!"0(````Z#7]__^%P'4HC57PC47HB40D$(E4)`S' -XM1"0(`0```(L&B1PDB40D!.@ME_[_AS'1"0$`````(M&!(GYB00DB=CHROS__X7` -XM=;V+5?"+11`#5@2)5?"+2`2+1@2^`0```#G!=`2)SBG&B?F)V,=$)`A>```` -XMQT0D!`````")-"3HB_S__X7`#X5Z____BT,0]H!4"```!`^%:O___\=$)`P! -XM````QT0D"`````#'1"0$`````(D<).CSCO[_A____\=$)`0FN@@(B1PDZ"KZ__\QP.EF____ -XMC78`QT0D"`````"+11B-312)%"0E``0``(E$)`2+50R)V.@,^___A<`/A"G_ -XM__^#Q!2X`0```%M=PXM#$/:`5`@```0/A1K____I3/___XE$)`2-312Z+?`( -XM"(G8QT0D"`````#'!"0!````Z,+Z__^%P`^$,/___^NTD(VT)@````!5B>57 -XM5E.#[#R+=0B+?1B+1AR%P`^$@P$``(M%$(M5%(L8BQ(YTXE5S`^'5P$``(GX -XM)0`"``")1=#IX````(GVQT7HPMP("(M5Z(U-\(GPQT0D"`````#'1"0$```` -XM`,<$)`@```#H1?K__X7`#X4=`0``C47LB40D$(U%Z(E$)`S'1"0(`0```(E< -XM)`2)-"3H.Y3^_X7`#X7S````BU7LA=)U#/?'``0```^$M@```(E\)!"+1?") -XM5"0(B40D#(M%Z(DT)(E$)`3H\OW__X7`#X6Z````BT80]H!4"```!`^%H``` -XM`,=$)`P!````QT0D"`````#'1"0$`````(DT).A*C/[_A -XMB5PD#,=$)`B[W`@(QT0D!`H```")%"3H:1S^_XU%WHE%Z.GA_O__QT0D!":Z -XM"`B)-"3H*OC__XM&$/:`5`@```0/A&#___^#Q#PQP%M>7UW#N`$```"#Q#Q; -XM7E]=P\=$)`@$````BU4,BT(@BP")-"2)1"0$Z(>2``"X`0```.O558GE5E.# -XM[""+70R+=0@/MT-\B5PD!(DT)(E$)!"-0VR)1"0,C4-DB40D".@0_O__N@$` -XM``"%P'4.BT-L,-*)1DR+0W")1E"#Q"")T%M>7<-5B>564X/L((M=#(MU"`^W -XM0WR)7"0$B30D@,P"#[?`B40D$(U#;(E$)`R-0V2)1"0(Z+K]__^Z`0```(7` -XM=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PXUV`(V\)P````!5B>564X/L((M= -XM#(MU"`^W0WR)7"0$B30D@,P$#[?`B40D$(U#;(E$)`R-0V2)1"0(Z%K]__^Z -XM`0```(7`=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PY"0D)"0D)"0D)!5B>53 -XM@^PTBUT(BTT,BT,575E.#[#R+?0B+1Q")1=2+112+EY@```")5="+ -XM,,=%V`````#'1=P`````QT7@R]P(".G/````C;8`````BUW8NA^%ZU&#PP&) -XMV/?BP>H%:])D.=-U=XM'$/:`5`@```0/A;X```#'1"0,`0```,=$)`@````` -XMQT0D!`````")/"3HUXC^_X7`=1"+1Q#V@%0(```$#X6*````BT4")/"2)1"0$_]+'1>``````BT7P -XMBU70B40D$(M"+(ET)`C'1"0$`0```(D\)(E$)`SH.Y?^_X7`#X7L````BT7P -XM@\8!`47R)1"0(BT4,B3PDB40D!.@IM_[_ -XMBU7R%TG08A?]T#(M'$(7`=`4[6'1T>XD<).AR&O[_,=OK28M%$(D$).B3&/[_ -XMA<`/A%G___^+50R[`0```,=$)`R?K0@(QT0D!`4```")/"2)5"0(Z#/(_O^+ -XM11")!"3H'!K^_XM%'(7`=1R+5=3'1"0(`@```,=$)`0`````B3PD_Y)H"``` -XM@\0\B=A;7E]=PX&@5`@``/_^__\QV^O,C;8`````C;PG`````%6)Y8'LJ``` -XM`(E]_(M]"(E=](M5##';B77XBT<0B85X____BT)XAL -XM!```J`(/A:D"``"+10SV@((````@#X0C`P``BT!TBP28BP#'1"0$(+H("(D\ -XM)(E$)`CHW_'__XD\).CW\/__BX>L!```J!!U"PT```@`B8>L!```J`)T)HN5 -XM>/___\=$)`0!````B3PD_Y*@"```A<`/A2$#``"#CZP$```4BU4,QT0D&`(` -XM``"+0G2+E73___^+!`*+`,=$)`P`````B3PDB40D%(U%Z(E$)!"+10R#P&2) -XM1"0(BT4,B40D!.A#P___A<`/A1,!``"+50PQR8.*@````$"+5>CVAZP$```" -XMB5=,#X2M````QT=0`````(U'4(E$)`B)5"0$B3PDZ-(S__\QR>F,````BX5\ -XM____BU4,B70D"(D\)(E$)`R)5"0$Z&Z1__^%P`^%K@```(M5#(M">(7`>!*# -XM^`$/CB+]__^#^`(/A)\!``"+50S'1"0(`0```(M"=(L`BP")/"2)1"0$Z+R* -XM``"Y`0```.LFD(UT)@#'1"0,GZT("(ET)`C'1"0$!0```(D\).B$Q/[_N0$` -XM``"+7?2)R(MU^(M]_(GL7_S__XM5#(M"9`-%\(E'3.D`____BX=<`P``BY5X____ -XMC01`BT2".(7`#Y7`Z>7[__^+50SV@H(````@#X2!_?__BT)TBP28BP#'1"0$ -XMU=H("(D\)(E$)`CH5J(!`(N'K`0``.E:_?__BU4,BT)TBU`$BT<@BS(/MT`8 -XM)80```"#P(`/A*````")="0$B3PDZ']6_O_INOO__XD<).CV$_[_B?;IS/[_ -XM_XM5#,=$)`@)````BT(@Z1[^___'1"0$);H("(D\).@X[O__Z>3\__^)="0, -XMQT0D"#3="`C'1"0$`P```(D\).B7O?[_Z;#^___'1"0("@```(M"((M`$(D\ -XM)(E$)`3HF(@``+D!````Z?_]__^+50S'1"0(`P```(M"(.FQ_?__BT((B70D -XM!(D\)(E$)`CH>##__X7`B<-T%(M'((M`"(D$).A(%/[_BT<@B5@(BT<@9H%@ -XM&#__BT<@9H-(&`R+5Q#'1"0(`0```(M'((M`"(D\)(E$)`3_DIP(``#IROK_ -XM_\=$)`@`````QT0D!`4```")/"3HXKS^_[D!````Z6G]__^0D)"0D)"0D%6) -XMY5=64X/L+(M]"(M'$(MP$(U0$(E5Y#G6#X39````QT7H`0```,=%[`````#' -XM1?``````ZT&#?>@!=!?'1"0$TM0("(D\).@#[?__QT7P`0```(M&((M`"(D\ -XM)(E$)`3HZNS__XLV.77D#X2O````@T7H`8M'$/:`5`@```0/A8P```#'1"0, -XM`0```,=$)`@`````QT0D!`````")/"3H6X#^_X7`=0R+1Q#V@%0(```$=5R+ -XM1B"+0`B)!"3HT1/^_XM=\`'#`5WLBT7UW#C78`C;PG`````%6)Y5.#[!2+30R+70@/MT%\@^`<@_@, -XM=%>#^!1T,H/X!+H"````="W'1"0("@```(M!((M`$(D<)(E$)`3H+H8``(/$ -XM%+@!````6UW#C78`N@$```")5"0(BT%8B1PDB40D!.A(Z@$`@\046UW#B?8Q -XMTNOAC;8`````C;\`````53'`B>564X/L((M5#(MU"(N:@````(M*>('C``$` -XM`(7)=`>+0G2+`(L`B40D"(U%](E<)`R)1"0$B30DZ-_T`0"Z`0```(7`=18P -XMTH7;=!"+1?2!CJP$````$```B484@\0@B=!;7EW#C;0F`````%6)Y5WIQ^\! -XM`)"0D)"0D)!5B>56B=93BY"`````B0` -XM````BU@(N`$````Y^W1),?;V@Z\$```!=#6+@X````"+2`2X`0```(G*@^$? -XMP>H%T^`)A)58____BX.`````BT`$.?!^"8G&C;0F`````(L;.?MUO(U&`8U5 -XMX(E4)!"-E5C____'1"0,`````,=$)`@`````B50D!(D$).C"!_[_@_C_=!&% -XMP'4U,<"!Q%P!``!;7E]=PXD<),=$)`B*W0@(QT0D!`4```#H8+?^_X'$7`$` -XM`+@!````6UY?7<.+A;S^__^+<`@Y_@^$"O____:&KP0```$/A`H!``"+AH`` -XM``"+2`2)R(/A'\'H!8N$A5C____3Z*@!#X3H````C57PB50D!(DT).CQA/[_ -XMA<`/A<<```"%]@^$V````(M>$(7;#X3-````]H-5"````0^%P````(%[>/\# -XM```/AFX#``"+0W2)A<#^__^+0WB)1>R!BU0(`````0``BYW`_O__BY:````` -XMB=B#P`&)ES'1"0,``0``(E$)`C'1"0$`````(DT).B3*O__ -XMAS'1"0$_P```(DT).C0=?[_@_@(#Y3"@_@,#Y3`Z[['1"0(A-T("+L!```` -XMQT0D!`4```")-"3HU;3^_^ER_O__.=@/AAL!```IV(G:B87$_O__C47HB00D -XMBXW$_O__B?#H6_K__X7`=`N+3>B%R0^$J0```,=%V`````"X(````,=%W*"& -XM`0#'A(74_O__`````(/H`77PBY7(_O__N`$```"+2@2)RH/A'\'J!=/@"825 -XMV/[__XU%V(E$)!"-A=C^___'1"0,`````,=$)`@`````B40D!(N5R/[__XM" -XM!(/``8D$).A9!/[_@^@!=2V+A<3^__^)7"0$B40D"(N5P/[__XD4).CH"?[_ -XMBYW`_O__`YW$_O__Z5W]__^+C<3^__^)VHGPZ/3Z__^%P`^%JOW__XM%\(U0 -XM`8E5\(N5Q/[__XE<)`R)1"0(QT0D!`$```")5"00B30DZ+&&_O^%P'4VBT7P -XMB49,BY7$_O__@^H!@[W$_O__`1G`]]`APHE64,=$)`0!````B30DZ%ZV`0") -XMP^D9_?__NP$```#I#_W__X&@5`@``/_^___I*/W__XU#>,=$)`P`!```B40D -XM"(M#=(DT)(E$)`3HX"?__X7`#X0&_?__B4-TZ63\__]5B>6#[$B)=?B+=0B- -XM1?")7?2)??R)1"0$B30DZ/^`_O^%P'0;NP$```")V(MU^(M=](M]_(GL7<.- -XMM"8`````C47DB40D$(M%\(U]V(E\)`S'1"0(`0```(DT)(E$)`3H>W[^_X7` -XM=;R+3>2-1>"+5=B)!"2)\.AD^/__A$(7; -XM#X3<````]H-5"````0^%SP```(M%Y(/H@#M#>`^'E0$``(M3=(E5T(M#>(E% -XM[(&+5`@````!``"+1>2)1"0(BT78B40D!(M%T(D$).@O"/[_QT7,`0```.L) -XMB?;'1")!"2)\.@%]___AB+1>B+OH`` -XM``")1"0(BT78B40D!(M'!(D$).C``/[_.T7HB<-T9X7;=%;'1"0(A-T(",=$ -XM)`0%````B30DZ/FP_O_I`____X&@5`@``/_^___IW_W__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AK)?__A<`/A+C]__^)0W3I0?[__^BZ!/[_QP`%````ZYW' -XM1"0(`0```,=$)`0FN@@(BT<$B00DZ#<`_O^#Z`$/A77___^+?$(7;=%N+5=`Y4W1T4XM%Y`-%Z#M%['=UBT7H,=N)1"0(BT78 -XMB40D!(M%T`-%Y(D$).@E!O[_BT7D`T7HB30DB40D#(M%T(E$)`B+1?")1"0$ -XMZ(&`_O^%P`^5P^DV_O__@:-4"```__[__XM%Y`-%Z#M#>'="BT-TB470BT-X -XMB47L@8M4"`````$``.N+BU70B40D#(U%[(E$)`B)-"2)5"0$Z'`D__^%P`^$ -XMO?S__XE%T.EA____B40D#(U#>(E$)`B+0W2)-"2)1"0$Z$8D__^%P`^$D_S_ -XM_XE#=.N7B?:-O"<`````58GE5U93@>S,!```BU4(BT4,]H*L!````@^$"@(` -XM`(M0>(72=!.)1"0$BTT(B0PDZ&NN__^%P'4?QT0D"`````#'1"0$-````(M% -XM"(D$).@\N/[_A% -XM8/O__ZO="`BX<````+^QW0@(HO@0"0CI@P```,8%]1`)"'3H8`7^_XN55/O_ -XM_\<$)/`0"0B)5"0(B40D!.B6!?[_QT0D!)`!``#'!"3P$`D(Z.($_O_'!"3P -XM$`D(Z,8"_O_'1"0(`````,=$)`0"````QP0D\!`)".BJ`_[_@_C_B<8/A2(! -XM``")'"3H9P+^_P^V!X/'`83`#X3A````Q@7U$`D(<`^V1__'1"0(`````,=$ -XM)`0"````QP0D\!`)"*+Y$`D(Z%T#_O^#^/^)PP^%1O___^B-`?[_@S@"=;'' -XM1"0(7`H)",=$)`0%````BT4(B00DZ&FM_O_K0\=$)`@`W@@(QT0D!`,```") -XM%"3H3ZW^_X'$S`0``+@!````6UY?77UW#BXU@^___#[9!`8/!`8F-8/O__X3` -XM#X5R_O__Z,@`_O_'``(```#I-?___XN-3/O__XE!"(G(@\`4B5D$=!#'1"0$ -XM\!`)"(D$).BJ!/[_BX50^___A`'^_\=$)`@!````QT0D!,?="`C'!"3.W0@(Z%P!_O_'1"0(`0```,=$ -XM)`3-H0@(QP0DUMT(".A``?[_Z`L"_O_'1"0(`````,=$)`1A=``@BXU,^___ -XMBT$(B00DZ`K]_?^+E4S[__^+0@2)!"3H.0#^_\=$)`0`````BXU,^___BT$( -XMB00DZ,#\_?_'1"0$`0```(N53/O__XM""(D$).BG_/W_QT0D!`(```"+C4S[ -XM__^+00B)!"3HCOS]_XN53/O__XM""(D$).C=__W_BTT(]H%P`P```0^$V@$` -XM`(N!:`,``(T$0,'@`@-!$(M8.,=$)`0O````B1PDZ`O^_?^)VH7`=`.-4`&) -XM5"0$QT0D#`````#'1"0(G-X("(D<).@6_/W_QT0D#.FY"`B)7"0(QT0D!`4` -XM``"+50B)%"3HXZ_^_\<$)'\```#HRP#^_\=$)`@`````QT0D!`4```"+50B) -XM%"3HK*K^_[@!````Z6_[__\QP(VU:/___\=$AGP`````@^@!@_C@=?"+30BX -XM`0```,=%Z`4```#'1>P`````BXF`````B8U8^___BTD$BB)5"00QT0D#`````#'1"0(`````(ET)`2+C5C[__^+002#P`&) -XM!"3H6?K]_X/X_P^$Z````(7`#X3#````C85H^___B85$^___B<.+A43[__^) -XM7"0$*=@%``0``(E$)`B+E5C[__^+0@2)!"3HY`'^_X/X_P^$KP$``(7`#X6[ -XM````QT0D".W="`C'1"0$`P```(M-"(D,).BTJ?[_BT4(B00DZ/GO__^X`0`` -XM`.EL^O__QT0D"&.+"`C'1"0$!0```(M%"(D$).B$J?[_Z5O\___'1"0(UKD( -XM",=$)`0%````BU4(B10DZ&2I_O_I._S__XM%"(N8:`,``.DJ_O__QT0D"-S= -XM"`C'1"0$`P```(M-"(D,).@VJ?[_ZX#'1"0(BMT(",=$)`0%````BU4(B10D -XMZ!FI_O_I8/___P'#.9U$^___#X,Q`0``C95H^___C;UI^___B95<^___ZV:- -XM3?")3"0$BT4(B00DZ-!V_O^%P`^%)/___XU'_RN%7/O__XE$)!"+E5S[__^) -XM5"0,BT7PQT0D!`````")1"0(BTT(B0PDZ*=[_O^%P`^%Z_[__XF]7/O__XGX -XM@\EC____BU4(BT(0@+A2!P``_W6MB10DQT0D!/\` -XM``#H!FG^_X/X"`^4PH/X#`^4P.O"QT0D"(3="`C'1"0$!0```(M%"(D$).@- -XMJ/[_Z53^__\YA43[__]S*RN=7/O__XV5:/O__XE<)`B+A5S[__^)%"2)1"0$ -XMZ,+]_?^-C6C[__^-'!DYG43[__\/A,/]__^-1>C'1>@`````QT7LH(8!`(E$ -XM)!#'1"0,`````,=$)`@`````B70D!(N56/O__XM"!(/``8D$).C`]_W_@_C_ -XM#X23````@^@!#X1T_?__C47PB40D!(M%"(D$).A8=?[_A<`/A:S]__\KG43[ -XM__^-E6C[__^)5"0,B5PD$(M%\,=$)`0`````B40D"(M-"(D,).@R>O[_A<`/ -XMA7;]__^+10B)V8V5:/O__^@J[O__A<`/A=KW__^+50B+0A"!BJP$```````! -XM@XA4"```(#'`Z<'W__^-="8`QT0D"(K="`C'1"0$!0```(M-"(D,).C5IO[_ -XMZ1S]__]5B>6#[!B+50R+30B+0GB%P'44QT0D!`(```")#"3H/;/^_S'`R<.+ -XM0B"+0!")1"0(BT)TB0PDB40D!.A@O/[_R87`#Y7`#[;`PY"0D)"0D%6)Y5=6 -XM4X/L/(M]#(M=$(UU[.AM^OW_QP``````QT0D"`````")="0$B3PDZ//V_?^# -XMP`%U-.A)^OW_@S@$B?9TT,=$)`@TW@@(QT0D!`4```"+10B)!"3H(Z;^_[@! -XM````@\0\6UY?7<.+5>R)T(/@?X/X?P^$O0$``(7`#X3^````BWT8A?]T#(/X -XM#8UV``^$H@$```^V`SP@#X2'`0``/`D/A'\!``"-1?"_/-X("(E<)`2)1"0( -XMBU4(B10DZ#R9_O^)!"2)P^AV_?W_B<:+1>R$P'@%OT^-"`B)PKB@X`@(@^)_ -XMZPX]F.$("`^$3P$``(/`"#L0=>Z+0`2#_A2Z/O$("'<%ND^-"`B#_A2)1"08 -XMB?")?"0EF_O__@\,!Z5____^#Q#PQP%M>7UW#B50D#,=$)`A*W@@( -XMQT0D!"@```#'!"1`(0D(Z,+X_?^X0"$)".F1_O__N4^-"`CI9?___X&@5`@` -XM`/_^__^X`0```.G8_?__C;8`````58GE4X/L%(M%"(M8$,=$)`@`````QT0D -XM!#0```")!"3HRZS^_[H!````A<`/A58!``"+50CV@JP$```"#X5.`0``BT48 -XMA<`/A80!``"+112%P'0EBU44B50D!(M-"(D,).@*U/__QT0D!":Z"`B+10B) -XM!"3H]]/__XM5"(D4).B]OW_A<"-4`$/ -XMA+H!``"$VP^$I`$``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!``````BTT0 -XMQT0D"-NY"`B)5"0$B00DB4PD#.@#]/W_BT4(]H!P`P```0^$3@$``(G"BX!H -XM`P``C01`P>`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B)!"3HK*?^ -XM_\<$)'\```#HE/C]_\=$)!``````QT0D#`````"+51")1"0$B50D"(M-"(D, -XM).CJ^___B<*#Q!2)T%M=P\=$)`0!````B10D_Y.@"```A\=$)`@"```` -XMBTT,BT$@BP")1"0$BT4(B00DZ$QM``"#Q!2Z`0```%N)T%W#QT0D!":Z"`B+ -XM10B)!"3HC-+__XM%%(7`#X5E_O__Z87^___'1"0(U;D(",=$)`0%````BTT( -XMB0PDZ.&A_O^#Q!2Z`0```%N)T%W#C70F`,=$)`@`````QT0D!`````"+50B) -XM%"3_DUP(``"+30B#B:P$```4BT48A<`/A/S]___I>____XG"BX!H`P``C01` -XMP>`"`T(0BT`XZ4?^__^+30B+@6@#``#IN/[__XM-"(N!:`,``.EC_O__A-MT -XM'(M5"(N":`,``(T$0,'@`@-"$(M`.(G"Z2;^__^+30B+@6@#``")PND6_O__ -XMD(UT)@!5B>564[L!````@>P@!```BW4(QT0D"`````#'1"0$-````(DT).@% -XMJO[_A<`/A:D```#VAG`#```!#X6H````BX9H`P``C9WX^___B1PDB40D#,=$ -XM)`B9W@@(QT0D!``$``#H;/7]_XM&$,=$)`@`````QT0D!`````")-"3_D)P( -XM``"+AJP$``")7"0(QT0D#`````")-"2#\!#!Z`2#X`&)1"00BT4,B40D!.B. -XM_/__BU80QT0D"`$```")PXM&((M`"(DT)(E$)`3_DIP(``"!CJP$``````@` -XM@<0@!```B=A;7EW#BX9H`P``C01`P>`"`T80BT`XZ4?___^058GE5XG'5E.# -XM[%R)5<")3;R+6!R%VP^$$`4``/:`B`,```%U,8N0@`,``(72#Y3`A,!T/<=$ -XM)`B@X0@(QT0D!`0```")/"3HY)_^_S'`@\1<6UY?7<.+@(`#``"-!$#!X`(# -XM1Q"+2#B%R0^4P(3`=WC_````#X9^!```BW-TB77@QR<=%T`````")1;CK,HN'R`,``(T$0,'@ -XM`@-'$(M0.(T$"HG6B46T,=*)R/?VBTVT@T70`2G1.5W0#X2[````BU70BW6X -XM#[8$,CP@#X29````/`D/A:$```#VA]`#```!=:N+E\@#``#KM<=%\`````"- -XM1?#'1"0,``$``(E$)`C'1"0$`````(D\).BZ$O__A<")1=P/A>[^__^#Q%RX -XM`0```%M>7UW#QT74`````(N/@`,``(T<2?:'B`,```&)R'0-C02=``````-' -XM$(M`.(/"`0%%U(E5Z`^V`CP^=-@\/`^%7O[__^O.@T70`8/!`3E=T`^%1?__ -XM_X-]O`$/A.8!``")SBMUU#M-U!G`]]`AQCGQ#X3;`0``A?_'1>``````#X2& -XM`0``BT<0A<")1>`/A'@!``"+5=PY4'0/A&P!``"-!!X[1?`/A[X!```/MH_0 -XM`P``BY?(`P``BUWPK7=R)7"0,BW7"+5>"+0'2)1=R+0GB)1?"!BE0(`````0``Z67^ -XM__^+1=2--`'I)?[__XM5Q#E73`^%M_S__\=%V`$```#IJ_S__XE$)`R-1?") -XM1"0(BU7(E$ -XM)`B+0G2)/"2)1"0$Z/,=$ -XM)`P``0``B40D"(M#=(D\)(E$)`3H.P___X7`#X2$_/__B4-TZ53[__^!H%0( -XM``#__O__N`$```#IE?K__X&@5`@``/_^___I-/[__Y"-M"8`````5;D!```` -XMB>6+10B+50Q=Z1SZ__^-M@````"-OP````!5,"N-192)1"0$B1PDZ!OR_?^%P'48 -XMBU7(BT7$@_H`?$A^/.C%[?W_QP`,````BU4(QT0D#)^M"`B)="0(QT0D!`4` -XM``")%"3HK)[^_[@!````BUWTBW7XBWW\B>Q=PST``!``=[V-=@"#P`&)!"3H -XMZ>_]_X7`B460=&F+59"+1<3&!!``B50D!(E$)`B)'"3H6/']_XD<)(G'Z-[M -XM_?^#__]T+HM5R(G[BT7$P?L?,=HQ^`G"=%KH,>W]_\<`!0```(M%D(D$).@P -XM\/W_Z5S___^+5N?]_XD$ -XM)(G&Z%#N_?^%P(G#=$J)="0,B7PD!(E$)`B+1>R)!"3H4^?]_XE<)`S'1"0( -XMO^$(",=$)`0#````BT7PB00DZ*"7_O^+=?B)70B+??R+7?2)[%WIH.[]_XM% -XM\,=%$`````"+7?3'10P%````BW7XBWW\B44(B>Q=Z6>7_O^-M"8`````58GE -XM5U93@^P\]D4@$<=%V``````/A;P```"+10CV@+0!```!#X55!```BTT(BX&L -XM`0``A<`/E<"+70@/ML")1=CV@_P!```!#X1B!```BX/T`0``C01`P>`"`T,0 -XMBT`XA<`/E<"$P'0$@TW8`HM%"/:`\`$```$/A"`$``")PHN`Z`$``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T/(MU$(7V=#&+'?P@"0B+-0@A"0B+31"+50SK`X/" -XM`0^^`H7`>`PYV'T(9H-\AC0`>`N#Z0&)]G7C@TW8`HM=((/C`HE=T'00BWT( -XM]H>N!```0`^%>@4``(M%((/@"(E%U'00BU4(]H*N!```@`^%?04``(M=%(7; -XM#X01`@``]D4@`0^$6@(``(M-$+@W````A+?0B+7Q"%VW0-]H-5"``` -XM`0^$.`4``(7`QT7P``````^%HP<``,=%X`````"P`;X:````BUW@Q@->QP`H -XM6R`)QT`$77PO7,=`""HH6U['0`PJ77QMXD(UT)@`/OL.)1"0$QP0DS.$(".CQY_W_A@\8!@VT0`71%@T4,`8M]#`^V'X#[('7#QP8H6R`)QT8$77PO7,=&""HH -XM6U['1@PJ77QO]_XM-%(L!Q@0X`(7V="B+70B%VW06BUT(BT,0A7UW#]D4@$`^$/@$``(M% -XM"(7`#X1R`P``BTT(BUD0A=L/A&0#``#V@U4(```!#X57`P``BT40`<`[0W@/ -XMAP\(``"+0W2)1>"+0WB)1?"!BU0(`````0``BT40A<`/A?4$``"+50P/M@+' -XM1=P`````/%Z+=>`/A%H&``"+11"%P'5T#``")]@^V00&)SX/'`3PO#X2_ -XM`P``/#\/A+<#``"-M"8`````#[[#B40D!,<$)-OA"`CHH>7]_X7`=`S&!ER+ -XM10R#Q@$/MAB('H/&`8-M$`$/A)D#``")?0R+30P/MAF`^UQTH(M]#(/'`>NX -XM]D4@!`^$V0$``(/$/+@!````6UY?7<.)PHN`K`$``(T$0,'@`@-"$(M`.(7` -XM#Y7`Z9O[__^+30B+N>@!``"%_P^5P.GF^___BWT(BX?T`0``A<`/E<#IHOO_ -XM_XM%$#'VNP$```"%P`^$:P$``(M5$##;BTT,ZQR0/"H/A.T````\+@^$Y0`` -XM`(/&`8/J`71:@\$!#[8!/%L/A,\```!^V#Q<#X2`````/'YUW(M]"/:'4`(` -XM``$/A.D```"+AT@"``"-!$#!X`(#1Q"+0#B%P`^5P(3`=+2+70@#L^0```"# -XMZ@&[`0```'6FA=L/A)L!``"+70B%VW07BU4(BUH0A=MT#?:#50@```$/A$(% -XM```Q_X7VQT7P``````^%$@8``(G[Z>D!``"#^@$/AE?___^#P0&#Z@$/M@$\ -XM/'0@#XXL`0``/%L/A``$```\?@^$GP,``#P^B?8/A2(!``"#Q@B[`0```(GV -XMZ1[___^+?0CVAU`"```!=#^+AT@"``"-!$#!X`(#1Q"+0#B%P`^4P(3`#X3S -XM_O__@\8"NP$```#IYO[__XM%"(N`2`(``(7`#Y7`Z1O___^+10B+N$@"``"% -XM_P^4P.O(*?N^`0```(E=$(/#`8E]#(M]#(E]X.E$_/__B7PD"(E$)`2+10B) -XM!"3HXOC__X/$/+@!````6UY?7<.)^`6P````B00DZ"KG_?^!IZP$``#__[__ -XMZ6CZ__^)T`7(````B00DZ`SG_?^+30B!H:P$``#__W__Z6+Z__\Y0W@/@C0$ -XM``"+2W2)3>"+0WB)SH/&&HE%\(G(@8M4"`````$``(/``>FW^O__/"H/A-0" -XM```\+@^$S`(``(/&`I"-="8`Z?[]__^+71`Q]H/#`>D^____BT40QT7P```` -XM`,=%X``````!P`^$M/S__XE$)`R-1?")1"0(QT0D!`````"+70B)'"3HQP3_ -XM_X7`B47@#X6+_/__Z2G]__^-M"8`````@/HJ#X07`0``@/HNC70F``^$"@$` -XM`(@3@\,!@VT0`0^$N_[__X-%#`&+10P/MA"`^EL/A.@```!^QH#Z7'1^@/I^ -XM==*+30CV@5`"```!#X0(`0``BX%(`@``C01`P>`"`T$0BT`XA<`/E<"$P`^% -XM+0(``,8#?H/#`>N@D(UT)@"+?0R)PX-M$`&('H/&`8/'`H-M$`$/A6?\__^+ -XM1=R%P'0&Q@8D@\8!*W7@B?.)=1"#PP&^`0```.F"^O__@WT0`0^&<@(``(-% -XM#`&+30R#;1`!#[81@/H\#X0_`P``#X_I`0``@/HJ=`V`^BZ-="8`#X7R`0`` -XMBTT(]H%0`@```0^$L@,``(N!2`(``(T$0,'@`@-!$(M`.(7`#Y7`ZR20BTT( -XM]H%0`@```71#BX%(`@``C01`P>`"`T$0BT`XA<`/E,"$P`^$R_[__\8#7(M- -XM#(/#`0^V$>FZ_O__BT4(BX!(`@``A<`/E<#I_/[__XM%"(N`2`(``(7`#Y3` -XMZ\2+30R+71"+50P/MD09_X/J`3PO#X2)`0``/#\/A($!```\),=%W``````/ -XMA(8"``"+?0P/M@<\+W0(/#\/A=;Z__^#10P!BU4,@VT0`0^V`NG#^O__B40D -XM#(U%\(E$)`C'1"0$`````(M%"(D$).B^`O__A<`/A"C[__^)1>"+=>"#P`&# -XMQAKI-/C__XM]"/:'4`(```$/A#P!``"+AT@"``"-!$#!X`(#1Q"+>#B%_P^4 -XMP.FT^___QT0D"`````#'1"0$!0```(M-"(D,).B^C?[_BUT4BP.%P`^%'OG_ -XM_^DX^?__BWT(]H=0`@```0^$T````(N'2`(``(T$0,'@`@-'$(M`.(7`#Y3` -XMA,`/A!#[__^#Q@&[`0```.D#^___BTT(BY'@````BX'D````B1PDB50D!(E$ -XM)`CH]>/]_XM%"`.8Y````.E._?__@/I;#X0@_O__@/I^#X3]````@/H^#X3< -XM````Q@-"#10P!@VT0`8/&`>F0^?__ -XM@:!4"```__[__^FG^/__@VT0`75DBWT,#[8'QT7<`````.E>^?__Q@-<@\,! -XMZ=?\__^+10B+@$@"``"%P`^4P.DT____BT4(BX!(`@``A<`/E,#I@?K__SMS -XM>`^'6`$``(M#>(M[=(E%\(&+5`@````!``#IKOK__XM-$`^V!!'I"?[__XE$ -XM)`R-0WB)1"0(BT-TB40D!(M5"(D4).C\`/__A<`/A&;Y__^)0W3IG_O__\<# -XM6ULZ/F;'0P0Z7<9#!EV#PP?I/_S__XM%"/:`4`(```$/A+D```")PHN`2`(` -XM`(T$0,'@`@-"$(M(.(7)#Y7`A,`/A6;\__^+10B+D.````")P>F,_O__QP-; -XM6SH\9L=#!#I=QD,&78/#!^GF^___@VT0`0^$N0```,=%W`$```#I9/W__XU% -XM\(ET)`R)1"0(QT0D!`````"+30B)#"3H1P#__X7`B<%N/[__P````#'A;S^__\`````QX7`_O__`````,>% -XMQ/[__P````"#Y@&)C93^__^#Z`D\:793BY6@_O__NP$```#'1"0("@```(M" -XM((M`$(D\)(E$)`3H/E4``('$?`$``(G86UY?7<.+AWP!``"-!$#!X`(#1Q"+ -XM6#B%VP^4P.E$____D(UT)@`/ML#_)(6TX@@(A?8/A2`5``#VAZX$``!`#X0U -XM%0``BXV4_O__QX7$_O__`0```(E-"(N%$/___X/``8F%$/___P^V`(3`#X5: -XM____BY7$_O__A=(/A*80``#VAZP$```"="&`O_0`````=!B+A;S^__\+A;C^ -XM__\+A<#^__\/A2T2``"+C:#^___'1?``````BX6@_O__BTEDB8T,____BT!L -XM.<&)A:3^__\/A_\4``"+1Q#V@%0(```$#X7O%```BY6\_O__BXW`_O__"Y6X -XM_O__QX70_O__`````,>%U/[__P`````)RL>%V/[__P````#'A0C___\````` -XMQX4$____`````(F5F/[__\=$)`P!````QT0D"`````#'1"0$`````(D\).CS -XM3/[_A\.``"+C0S___^-1>R-E1#___^)1"00B50D -XM#,=$)`@!````B4PD!(D\).@T5/[_A<`/A7,%``"`O_0`````=&:+A=C^__^% -XMP`^$BA(``#';A?\/A'H/``"+7Q"%VP^$;P\``(N5V/[__SE3=`^$8`\``(M5 -XM[#M5\`^'PQ```(E4)`B+A1#___^+E=C^__^)1"0$B10DZ+W>_?^+C=C^__^) -XMC1#___^+1>R[`0```#'VQX6P_O__`````,>%R/[__P$```#'A%&/___P````#' -XMA1S___\`````B8T@____BTT(B40D$(N%L/[__P.%$/___\>%)/___P````") -XM5"0,QT0D"`H```")1"0$B0PDZ.C:_?^#^`$/A$$#``"%P`^%%!4``(.-S/[_ -XM_P&%VP^%!`(``(N%&/___PN%'/___P^%\@$``(N%(/___PN%)/___P^%X`$` -XM`(N%K/[__X7`#X1M#P``BYT`____@\,!.YT(____=DF!^P`!``")V',%N``! -XM```!A0C___^+A03___^%P`^$O!0``(N%"/___XN5!/___XE$)`2)%"3H>MC] -XM_X7`#X1`$0``B84$____BX6P_O__`X40____BXT`____BY4$____#[8`B`01 -XM@X6P_O__`8.MK/[__P&)G0#___^[`0```,>%T/[__P$```#IK?[__\>%P/[_ -XM_P$```#IM?S__\>%N/[__P$```#IIOS__X"_]0`````/E(?U````Z9/\__^` -XMO_0`````#Y2']````/:'K`0```$/A'C\__^-1=2)1=2)1=CI:OS__X72#X7= -XM^___Z!_:_?_'``````"-A1#___^)1"0$BX40____QT0D"`H```")!"3HR=C] -XM_XG#BX40____@#@`=0F#Z`&)A1#____HWMG]_X,X(@^$5Q$``(N5H/[__XM" -XM;(E"9(/H`0'8B4)LB40D!(D\).@!4_[_AC[__^+C:#^__^#:5P! -XMZ=G[__^+A:#^__^#0%P!ZB+A;#^__\#A2#___^)3=R)3>2)1>"+1>R% -XMP'4.QT7@`````,=%Z`````#VAZP$```"#X1&`@``BU7L.57@<@:-0O^)1>`Y -XM5>AR!HU"_XE%Z(M%Y,=$)`0!````B3PDB4=,BT7HB4=0Z**'`0"%P`^%L0$` -XM`,=$)`@`````C5VXQT0D!`GB"`B)/"3HGWK^_\=$)`@`````B3PDB40D!.B[ -XM:`$`QT0D#`````#'1"0(`````(E<)`2)/"3HGTC^_X7`#X5>`0``BT7`@_@! -XM#X0H`@``<@6#^`1V#(E<)`2)/"3H:$/^_XM'$(.(5`@```3'A=#^__\!```` -XMQX74_O__`0```(7V#X1-"@``BYVL_O__A=L/A)<```"+G0#___\#G:S^__\[ -XMG0C___]V28'[``$``(G8_O__C474QT0D#``(``#'1"0(`````(E$)`2)/"3H)ST``(7` -XM#X4V____BT74BT`(#[8`B$7$#[9%Q#QQ#X3?_?__/'D/A:\)``"+A0S___\Q -XMTHNU&/___XN-"/___XE'3(N%`/___P.%&/___Q.5'/___XEW4(/Z`'P.#X]0 -XM`P``.<@/AT@#``"+E0#___^+A;#^__\#E03___\#A1#___^)="0(B10DB40D -XM!.AS^__\/A&,#```\7`^$$P,```^VM>S^__^)\8#Y -XM_P^$O@(```^VT8M'$`^VA`)3!P``@_@(#Y3"@_@,#Y3`A,!U"(32#X2H`@`` -XMBX?L````.X?P````#X0D!0``BX?P````BY?H````BXT`____B0R"@\`!B8?P -XM````BYT`____@\,!.9T(____OW__X.]^/[__P(/A.L"```/AS(#``"#O?C^__\! -XM#X3B`@``Z+;/_?^+C?3^__^^7````+I<````AS^__\/AHT"``"#A?#^__\!Z:7\___VAU`"```! -XM#X2*`0``BX=(`@``C01`P>`"`T<0BW`XA?8/E<"$P(V5&/___P^$<_S__XL: -XMBW($B=@A\(/``0^$8?S__XM*#(M2"(G0(C^__^+E>C^__^)\(@" -XM@\(!.YV<_O__B97H_O__#X0O_/__@X7D_O__`8N%Y/[__P^V,(GR@,(!#X4> -XM____BT<0@+A2!P``_P^%#O___\=$)`3_````B3PDZ/@\_O_I^?[__XN?2`(` -XM`(7;#Y7`Z7W^___'A;C^__\`````QX6\_O__`````,>%P/[__P````#I6O+_ -XM_X.]^/[__P,/A($"``"#O?C^__\$#X7/_?__B?(/ML([!?P@"0@/C>7^__^+ -XM%0@A"0CV1((U$`^$U/[__P^VM((T"```Z_[_BX?H````A<`/A8+Z__^[`0```,>'[`````````#I -XM-?C__P^VP/\DA5SD"`C'A?C^__\`````B?(/ML([!?P@"0@/C6?Z__^+%0@A -XM"0AF@WR"-``/B57Z__\/MK2"-`0``.E(^O__BX4(____B00DZ%O1_?_I@?K_ -XM_X.]^/[__P,/A"L"``"#O?C^__\$#X7!_/__B?$/ML$[!?P@"0@/C0KZ__^+ -XM%0@A"0CV1((U$`^$^?G__P^VM((T"```Z>SY__\IE0#___^)T,>'\``````` -XM``"+E0#___^+C0S___\#A03___^)/"2)5"0,B40D"(E,)`3HP4K^_X7`#X50 -XM]___BX4,____.4=8=`>#1V`!B4=8BX68_O__A@`````A<")5=R)5>0/A2,(``"+A;S^__^%P`^%Z`<``(NUP/[_ -XM_X7V="B+E:#^__^-1=R)1"0,C47DQT0D$``0``")1"0(B50D!(D\).BUL/__ -XMBYW4_O__@X4,____`87;#X0E`0``@+_T`````'4SBX6H_O__.4=,=0N+E;3^ -XM__\Y5U!T'8U'4(E$)`B+1TS'1U``````B3PDB40D!.A4[?[_BXW0_O__A%^/[__P````#I??W__\>%^/[_ -XM_P````#I1/S__\=$)`@$````BT(@NP$```"+`(D\)(E$)`3H1D0``.D#[___ -XMBXT(____B0PDZ(?/_?_I=/S__\>%P/[__P````#'A;C^__\`````QX6\_O__ -XM`````/9%#`(/A%#O___IGN[__X&C5`@``/_^__^+1>PY0W@/@JX!``"+2W2) -XMC=C^__^+0WB)1?"!BU0(`````0``BU7LZ77P___'A?C^__\`````Z=/]__^+ -XMC0S___\YC:3^__\/@LG^__^+1Q#V@%0(```$#X26[___Z;3^__^-="8`BX4` -XM____,=(#A2#___\3E23___^+C0C___^#^@!\27\$.0(``,>%T/[__P$```#I?//__XVV`````,=$)`3_````B3PDZ&`X_O^#^`@/ -XME,*#^`P/E,#IEO;__P^VM((T!```Z9+Z__^-1?")1"0(BX78_O__B50D#(D\ -XM)(E$)`3H]>O^_X7`#X3M\?__BU7LB878_O__Z0KO___'1"0(;.(("+L!```` -XMQT0D!`,```")/"3H(G?^_^G_[/__B40D#(U#>(E$)`B+0W2)/"2)1"0$Z*/K -XM_O^%P`^$F_'__XE#=.DH_O__@X7P_O__`<>%^/[__P````#I@_7__XN%[/[_ -XM_X.%\/[__P'!X`2-E"@8_/__Z3GY__^#A?#^__\!]H=0`@```0^$WP$``(N' -XM2`(``(T$0,'@`@-'$(M0.(72#Y3`Z?OX__^#A?#^__\!QX7X_O__`P```.DA -XM]?__@X7P_O__`<>%^/[__P0```#I"_7__X.%\/[__P''A?C^__\!````Z?7T -XM__^#A?#^__\!QX7X_O__`@```.G?]/__@:!4"```__[__^E8\___QT0D""'B -XM"`B[`0```,=$)`0#````B3PDZ`UV_O_I!//__\'@`HD$).AQS/W_Z7?Z__]\ -XM##T``0``D`^#8/?__[@``0``D(UT)@#I4??__X7_#X3+````BU\0A=L/A,`` -XM``#V@U4(```!#X6S````BT7L.4-X#X)G!```BT-TB878_O__BT-XB47P@8M4 -XM"`````$``(M5[.E9[?__QT0D"`````"[`0```,=$)`0%````B3PDZ'%U_O_I -XM3NO__XN5"/___XD4).C2R_W_Z?OV___'1"0(`````,=$)`0%````B3PDZ$%U -XM_O_I,_+__XN%R/[__X7`#X1Y_?__BX6L_O__,=N%P`^%C>[__X.-S/[__P+' -XMAS'1?``````A=(/A,'L__^-1?")5"0,B40D",=$ -XM)`0`````B3PDZ'OI_O^%P`^%AOW__^EN[___BX=(`@``A<`/E,#I*/?__\=$ -XM)`@TX@@(NP$```#'1"0$`P```(D\).BA=/[_Z7[J___'1"0(!@```+L!```` -XMQT0D!`````")/"3HGS\``.E%T/[__P````#' -XMA=C^__\`````QX4$____`````.E=^O__BX4`____*97\_O__QX?P```````` -XM`"G0B86P_O__B="+E?S^__^+C0S___\#A=S^__^)/"2)5"0,B40D"(E,)`3H -XM-T3^_X7`#X7&\/__BXT,____C47LC940____B40D$(E4)`S'1"0(`0```(E, -XM)`2)/"3H5#_^_X7`#X63\/__,=N%_P^$S0$``(M?$(7;#X3"`0``BX78_O__ -XM.4-T#X2S`0``BU7L.U7P#X>R`@``B50D"(N%$/___XN5V/[__XE$)`2)%"3H -XM],G]_XN-V/[__XN%"/___SF%L/[__XM=[(F-$/___W9,BX6P_O__/0`!``!S -XM!;@``0```84(____BX7<_O__A<`/A$`"``"+C0C___^+A=S^__^)3"0$B00D -XMZ)G$_?^%P`^$7_W__XF%!/___XN5L/[__XN%$/___XN-!/___RN=L/[__XE4 -XM)`B)1"0$B9VL_O__B0PDZ%W)_?^+AP$``(N5L/[__S';O@$```")E0#____I\.O__XN-N/[__PF-O/[__XN% -XMO/[__PN%P/[__P^%^OC__XN5H/[__S';@XJ`````0.E+[___BU4(NP$```") -XM1"0$B3PDB50D".@7VO__Z2[O__^+C0C___^)#"3HF,C]_^E)Z___C47`^".P$``(M3=(F5V/[__XM#>(E%\(&+5`@````!``"+5>SI -XM(O[__XN-"/___XD,).CTQ_W_Z;;M__]\#ST``0``C70F``^#*/G__[@``0`` -XMD(UT)@#I&?G__XN%"/___XD$).C!Q_W_Z3+Y__^)1"0,C4-XB40D"(M#=(D\ -XM)(E$)`3HSN7^_X7`#X3&Z___B4-TZ6_[__^+E;#^__\QV[X!````@XW,_O__ -XM`L>%R/[__P````")E:S^__^)E0#____I7NK__\=$)`CBX0@(NP$```#'1"0$ -XM`P```(D\).C2O__XM5[(F%V/[__^D;_?__BXT( -XM____B0PDZ.W&_?_I`O'__XE$)`R-0WB)1"0(BT-TB3PDB40D!.CZY/[_A<`/ -XMA/+J__^)0W3IF_[__XN-L/[__XN%!/___XF-`/___XF%W/[__XN5W/[__\>% -XMT/[__P$```")E03____I]>O__XVT)@````!5B>6#["B)7?2+70B)=?B+=0R) -XM??R+D\````"%T@^$E0```/:#K@0``$"-N[````!T/HM&>#')AQ=Z;;D__^-M@````"+1G2+`(L(Z]*-M"8` -XM````QT0D&`(```")?"04QT0D$`````#'1"0,`````(N#Q````(E4)`2)'"2) -XM1"0(Z`[8__^%P'2,BUWTN`$```"+=?B+??R)[%W#QT0D"`8```#'1"0$```` -XM`(D<).A@.@``Z]2-M"8`````C;PG`````%6)Y8/L*(E=](M="(EU^(MU#(E] -XM_(N3V````(72#X25````]H.N!```@(V[R````'0^BT9X,7UW#@\`!.3W\(`D(B47!Y``` -XM``````"+5=2)V8E4)`2+10@%L````(D$)(M5#(M%".C[X/__@\1,6UY?7<.) -XMSBMUW,=$)!@"````BT4(!;````")1"04BT4(!<0```")1"00BT4(B70D"`7` -XM````B40D#(M%W(E$)`2+50B)%"3H3-3__X7`=`JX`0```.G-_?__QT0D&`@` -XM``"+10@%R````(E$)!2+10@%W````(E$)!"+10B)="0(!=@```")1"0,BTW< -XMB4PD!(M%"(D$).C\T___A"K`````$```#'1=0!````Z7O^__^# -XMPP'I\?[__XM%"(7`#X0L`@``BU4(BW(0A?8/A!X"``#VAE4(```!#X41`@`` -XMBU70.59X#X(G`P``BT9TB478BT9XB47P@8Y4"`````$``(MUV,=%X``````/ -XMMA.$TG0P#[[".?@/A","``"`^EP/A*4```"`^GX/A/<```"#PP&(%H/&`8-% -XMX`$/MA.$TG70A?\/A/8!``"+1>"+30B%P(F!Y````'1$BX'@````A`"`T$0 -XMBT`XA<`/E<"$P`^$V/[__XM5"(/#`8N"X````(N2Y````(DT)(E$)`2)5"0( -XMZ!O`_?^+50B+@N0````!1>`!QNE__O__!;````#'1"08`@```(E$)!3'1"00 -XM`````,=$)`P`````BTT(BX'$````B50D!(D,)(E$)`CHRM'__X7`#X17_/__ -XMZ77]__^+10B+@$@"``"%P`^5P.EI____@\,!B`!#[83 -XM@\,!Z=7]__\/ME,!C4L!A-)T2@^^PCGX#X7;^___C4L"BS,``+@!````Z8#Z__^+30B+D4@"``"%T@^4P.EC -XM_O__A?]TO8G+Z1G\__^!H%0(``#__O__Z0K\___'1"0(`````,=$)`0%```` -XMB0PDZ`QH_O^+10B%P'02BU4(BT(0A=G,/MA.`^@ET:X#Z(+C_____=&%;7E]=PSGR -XM"(NX -XMF````#G:=2#K18M"!(E!!(M"!#G8=":)"(D4).C,O?W_BU8(.=IT)XL*.=EU -XMW(M"!(E&#(M"!(L*.=AUVHE."(D4).BEO?W_BU8(.=IUV8L6A=)T#SGZ=!V+ -XM1@2)0@2+1@2)$(DT).B!O?W_@\0,,53B=.#[`2+$HN(F````(72="N+0P2)0@2+0P2)$(M#"(D$).@YO?W_ -XMB1PDZ#&]_?^#Q`0QP%M=PY"-="8`BT,$B4$,BQ/KT8VV`````%6)Y593@^P0 -XMBW4(BYZ8````BP,YV'0@B40D!(DT).CM_O__BP,YV'7NBU,(A=)T#HGPZ'G_ -XM__^+4PB%TG7RBT,4AR+4`B% -XMTG7NC7L!B5WPZTV-M@````")="0(BU7PB00DB50D!.CQN_W_BT,(Q@0P`,9# -XM$`#'`P````"+5>R+0@R)0P2+0@R)&(E:#`^V3_^$R0^$EP```(E]\(/'`0^V -XM3_^$R70A#[[1A=)X[CL5_"`)"'WFH0@A"0CV1)`V`G3:C;8`````C7?_*W7P -XM@_X!=K['!"04````Z$V[_?^%P(G#=%6-1@&)!"3H/+O]_X7`B4,(#X5=____ -XMQT0D"`````#'1"0$!0```(M%"(D$).BB9/[_BT,(A<`/A3?___^)'"3HH[O] -XM_[@!````ZP(QP(/$'%M>7UW#QT0D"`````#'1"0$!0```(M5"(D4).AC9/[_ -XM@\0B+1?")7"0(B4PD!(D$).@"NOW_BU7PBTWP@\(( -XMB57LB5$(B5$,QT$0`````(M%Z(MP%(7V=`B)R(/`'8E!%(M5Z(MR"(/""(E5 -XMW#G6=2_IN````(M-[(D+BU7PBT(,B4,$.TH(#X2-````B1B+3?")60R+-CMU -XMW`^$C@```(M>%+\L````A=MT!HM^&(/'+8M.((7)=`B+1B2#P`$!QXD\).@_ -XMN?W_A<")PP^$$@$``(E\)`B)="0$B00DZ%6Y_?^+5A2%TG0&C4,HB4,4BT8@ -XMA2+1?")$(M"!(M-\(E!!#L2#X3&````BU7DBTWP -XMBT($B0B+1>2+5?")4`2+3>B+1>"+"3G!B4WH#X6*_O__BU7@BW((A?9U6^FY -XM````C;0F`````(L&B0.+1@2)0P2+1@B)0PB+1@R)0PR+1A")0Q"+1@B)!"3H -XM;;+]_X7`B4,(#X2@````QP,`````BU7DBT(,B4,$BT(,B1B)6@R+-H7V=&/' -XM!"04````Z"FX_?^%P(G#=9^+30S'1"0(`````,=$)`0%````B0PDZ)1A_O^X -XM`0```(/$+%M>7UW#B0KI/O___XM5#,=$)`@`````QT0D!`4```")%"3H96'^ -XM_[@!````Z\^+3>"+012%P'02B00DZ-"Q_?^+5>2%P(E"%'23,<#KK[`!ZZN- -XM=@"-O"<`````58GE5U93@^PLBT4(BX"8````B47HBS@YQP^$-P(``(M%"(-X -XM."(/A@4"``"+0!#'1>P!````]H!4"```!`^%"0(``,=$)`P!````QT0D"``` -XM``#'1"0$`````(M%"(D$).CZ)/[_A@/A,8!``"+=PB-5PB)5>0YU@^$@`$``(GPZV.0C70F`(U$`^:)1"00QT0D -XM#!H```#'1"0(&@```,=$)`0.YP@(BU4(B10DZ'61__\Y=Q`/A)0````Y=P@/ -XMA*<```#'1"0$)KH("(M%"(D$).A0D?__BS8[=>0/A!P!``"+1P@YQ@^$\@`` -XM`,=$)`2WW`@(BT4(B00DZ">1__^+1@B%P`^$S````(M8"(D<).C%M_W_@_@> -XM#X=H____B5PD$,=$)`P>````QT0D"!X```#'1"0$&^<("(M%"(D$).CAD/__ -XM.7<0#X5L____QT0D!.#A"`B+50B)%"3HQ9#__SEW"`^%6?___XM?%(7;#X1. -XM____BT4(BT`XB47P@^@>@_@8#X8Y____B1PDZ$BW_?^YMMP("#MW$(G"=`6Y -XMM=P("(E<)!"+1?"#Z",YT'8"B=")1"0,B4PD",=$)`3PF`@(BU4(B10DZ%B0 -XM___I\/[__XUV`(M>%.DO____BT7LQT0D!`GG"`B)1"0(BU4(B10DZ"Z0___I -XM`O___XM5"(L_BT(0]H!4"```!'4D@T7L`>D2_O__QT0D"/+F"`C'1"0$`P`` -XM`(M%"(D$).CD7O[_@\0L, -XM7UW#BU,(BT,,B4(0BT,0BU,(B4(4BT8@9H-(&`''1"0,(````,=$)`@````` -XMBT,(B30DB40D!.BM#/[_A$``0``7>GM_O__B1PDQT0D"`````#'1"0$`0```.@U -XM^?__@\04N`$```!;7<.-=@"-O"<`````58GE5U93@^PLBT4(B[B8````BQ(7`=1V+10P/MTA\BT4(@>$``0``Z(7^__^#Q"Q;7E]= -XMPX/H`70%Z->N_?^+072+`(L`QT0D"`H```")1=R-1?")1"0$BT7+5>`/A9+^__\QP.F@_O__D(UT)@!5B>564X/L$(MU -XM#(M="(M&"(7`='(QTCE#('0@QT0D"!$```"+11")'"2)1"0$Z(T%_O^%P'0. -XMN@$```"#Q!")T%M>77<.+1A2)'"2)1"0$ -XMZ#H(_O^%P(E&"`^%=/___^N4C;8`````C;PG`````%6)Y8/L.(E]_(M]#(EU -XM^(MU"(E=](M'"(7`#X0``0``C47PB40D"(ET)`2+1A")!"3H>IW^_X7`=!:X -XM`0```(M=](MU^(M]_(GL7<.-="8`BT7PQT0D"`````")-"2)1"0$Z!F1`0"% -XMP`^%T0```(M'"#M&(`^$]0```(M5$(E$)`2+1?#'1"0(`````(E4)`R)!"3H -XM!PG^_X7`=52+1PB+7?"+0`C'1"0$`````(DT)(E$)`CH1A#__XE#)(E#*(M% -XM\(&@K`0``/_^__^+1?"!B*P$``"`````BT7P@8ZL!````!```(E&%#'`Z4[_ -XM__^+1?#'1"0$`````(D$).@IO[_A<`/A88```"+@ZP```"%P'0OBU7LC4-0 -XMQT-0`````(E$)`B)'"2)4TR)5"0$Z*S,_O\QP(M=](MU^(M]_(GL7R)1"0$Z/DE_O^%P'6IBT4(QT0D!``` -XM``")'"2)1"0(Z#[T__^X`0```.NMC;0F`````,=$)`0H````B30DZ&2K_?^% -XMP'0R*?#'1"08A````,=$)!0`````B40D$(ET)`R)?"0(B7PD!(D<).B2I?[_ -XMA<`/A#3___^+10C'1"0$`@```(D<)(E$)`CHT_/__[@!````Z3____^)]HV\ -XM)P````!5B>6#[!B)??R+?0B)7?2)=?B+AY@```"+&#G##X24````BT,0BW`$ -XMC4,(.<9T:(M5#`^W0GR)="0$B3PD)0`!``")1"0(Z/7[__^Z`0```(7`=1SV -XM0QP!B7,0=".)="0(B5PD!(D\).@S-___,=*0BUWTB="+=?B+??R)[%W#D(M# -XM%(M6((M.)(D$)(GXZ`W^__\QTNO9QT0D"(#F"`C'1"0$`P```(D\).AA5_[_ -XMN@$```#KNL=$)`@`````QT0D!`$```")/"3H\O+__S'2ZYZ-M"8`````C;PG -XM`````%6)Y8/L&(E]_(M]"(E=](EU^(N'F````(L8.<,/A)0```"+0Q"+,(U# -XM"#G&=&F+50P/MT)\B70D!(D\)"4``0``B40D".@6^___N@$```"%P'4=]D,< -XM`8ES$'0DB70D"(E<)`2)/"3H5#;__S'2B?:+7?2)T(MU^(M]_(GL7<.0BT,4 -XMBU8@BTXDB00DB?CH+?W__S'2Z]G'1"0(K.8(",=$)`0#````B3PDZ(%6_O^Z -XM`0```.NZQT0D"`````#'1"0$`0```(D\).@2\O__N@$```#KFXUT)@"-O"<` -XM````58GE5U93@>R<#```BT4(BU4,BX"8````B86(\___BT)XA<`/A5,#``"+ -XME8CS__^+C[__^) -XM1"0,QT0D"$/G"`C'1"0$``0``(E4)!")'"3HRJG]_\=$)`20O@@(B1PDZ.JD -XM_?^-C>CW__^)C7SS__^%P(F%I//__P^$QP```(N%I//__XV5Z/?__\=$)`0` -XM!```B10DB40D".C@IOW_A<`/A)$```"-C>CW__^+`8/!!(V0__[^_O?0(<*! -XMXH"`@(!TZ??"@(```'4&P>H0@\$"`-*#V0,KC7SS__^-0?^`O`7H]___"@^% -XMUP@``,:$!>CW__\`#[:%Z/?__X3`=#.+#?P@"0B-E>CW__^+'0@A"0@/OL"% -XMP'@/.%G//__P````"`>A@`#XE0!```BU4,]H*!`````0^%4PD``(M5#`^W -XM0GS'A9SS__\!````)0`!``")1"0(BXV0\___BT$(B40D!(M%"(D$).BS]___ -XMA<`/A4,$``"+E8CS__^+&CG3B=@/A#P*``"+M9#S__^)!HE6!(N%B//__SM` -XM!`^$&@H``(N5B//__XN-D//__XL"B4@$BX60\___B[6(\___B0:+E9#S__^+ -XMM9#S__^+0A"+2"2+4""+1A2)!"2+10CHG?G__XN%G//__X7`#X1D"```BTT( -XMBU,0BT$@B4((BU,0BT%,B4(,BU,0BT%0B4(0@<2<#```,`"`T80BU@XA=L/E<"$P`^%M_S__XNUB//_ -XM_XM%"(MV%(FUV//__XN`F````(F%L//__XDT).A%JOW_QP0D`0```(G#C4`A -XMB40D!.A@I_W_A<")A8#S__\/A(X'``")A9#S__^+E9#S__^#P`B)ACW__^)="0$ -XMBX7`\___B00DZ/>I_?^%P`^%N`(``,=$)!0`````QT0D&`````"+E<#S___' -XM1"0,`@```,=$)`@#````B50D$(N%&/C__\<$)`````")1"0$Z"^E_?^)A=3S -XM__^#P`$/A&D"``"+A=3S__\#A1CX__^+G=3S__^)PBN5U//__XF%X//__XG0 -XMP>@?`=#1^`'#.9W@\___=Q7K'8VT)@`````[G>#S__\/A#8*```/M@.#PP$\ -XM"G7J.9W@\___#X0@"@``B[W4\___B[7@\___BX78\___B?&)VNA3Z?__@^@! -XM#X3@`0``B=Z)\BGZB=#!Z!\!T-'XC1PX.=YW".L0B?8Y\W0.#[8#@\,!/`IU -XM\CG>=;PYO>#S__]V.HN-X//__XGZBX78\___Z`/I__^#^/]T(H7`#X3*`0`` -XM.[W@\___#QP$\"G3&.[W@\___=>Z+A1CX__^)1"0$B[74\___B30D -XMZ&BB_?^%P`^%=@0``(N5P//__XD4).C2I/W_A<`/A4`$``"+E=SS__^`8A#\ -XMBX7<\___BP"%P(F%W//__P^%'/[__XN5@//__XM""#F%S//__P^$,0<``(NU -XM@//__XE&$.G<^___BXV(\___BT$4A7UW#B=_I&_[__^CR -XMHOW_BXW<\___BP")00R+M<#S__^)-"3H::/]_XNUW//__X!.$`''A:SS__\! -XM````Z9#^__^%_P^$2/[__SN]X//__XE]Z',A@#\*=!R)^.L%@#@*="&#P`$[ -XMA>#S__^)1>AU[>D<_O__.[W@\___#X00_O__B?B`.`H/A07^___&``"+5>B) -XM?>B_`0```(F5T//__XU-Z,=$)`31U`@(C5__B0PDZ&NC_?^%P(G&=!^%VW4+ -XMB;6\\___@\B%_W0:A?9T%HD\ -XM).C.I?W_A<")A<3S__\/A0$!``"-=?")="0(BX78\___B40D!(M5"(D4).A@ -XM0?[_B47HC47LB40D"(N-W//__XM!"(E$)`2+=0B)-"3H/D'^_XE$)!")PXM% -XMZ,=$)`AIYP@(QT0D!`,```")-"2)1"0,Z)E-_O^+5?"%TG0>A?9T#XM6$(72 -XM=`B+0G0[1>AT5XM%Z(D$).B(I/W_BT7LAF-_O__B30DZ/VD_?^)M;3S__^)A@/H?W_BXW<\___BP") -XM00SI)O[__XN-O//__XE,)`2+M=CS__^)-"3H1Z']_X7`#X5O_/__BX6T\___ -XM@#@O=!J-E>C[__^)5"0$B00DZ"*@_?^%P`^%20$``#'VBY7(\___BXW$\___ -XMQP0D`0```(U$"C`!\(E$)`3HAJ']_X7`B<,/A!S\__^-0"B%]HE#%`^%N@$` -XM`(N%R//__XGR`U,4@\`!B40D"(N-M//__XD4)(E,)`3H^J+]_XN5R//__XT$ -XM%HE#&`-#%(/``8E#((N-Q//__XG*B4LD@\(!B50D"(E\)`2)!"3HQZ+]_XNU -XMS//__XDSBY6`\___BT(,B4,$.W((#X2<`0``B1B+C8#S__^)60SII_[__\=$ -XM)`B0E`@(QT0D!`4```"+30B)#"3HVTO^_^F@^___QT0D"(7G"`C'1"0$!0`` -XM`(M%"(D$).B[2_[_Z6K[__^+M:3S__^)-"3H[)_]_X/X"G7MZ1GW__^+@=0# -XM``"-!$#!X`(#01"+<#CIY_O__XM%"(M`%(E%"(N0F````(F5B//__^GR]___ -XMQT0D!"\```"+C=SS__^+00B)!"3H2)[]_X7`B<8/A)3^___&``"+A;3S__^- -XMG>CS__^)1"00BY7<\___BT((QT0D"+F4"`C'1"0$``0``(D<)(E$)`SHMI_] -XM_XV-Z/O__\8&+XE,)`2)'"3H89[]_X7`#X4__O__B[7<\___BW8(B;6X\___ -XMB30DZ**B_?^)QNDC_O__C;0F`````('$G`P``+@!````6UY?7<.)="0(BY6X -XM\___B00DB50D!.A.H?W_BT,4Q@0P+X/&`>DA_O__BT,0B[6,\___B7`(BT,0 -XMBY64\___B5`,BT,0BXV8\___B4@0@<2<#```,_O__BTT, -XM#[=!?,>%G//__P`````E``$``.GK^O__#[9"`8UR`<8"`(3`=2+I[?7__XUT -XM)@`YP7X<]D2#-4!T%8/&`0^V!H3`#X30]?__#[[`A_?^%P(G< -XM^O__C5@(B5X(B5X,QT0D!"P```#'!"0!````Z%*>_?^%P(G'#X0<^O__BT8( -XMB5\$B0<[7@P/A%T"``")>`2)?@B)?A#I,/7__XEP!.GO]?__B1Z)VHE>!#M; -XM!`^$)`(``(L#B7`$BXV(\___B?.)\(DQZ9[U___'1"0,4^<("(N%H//__\=$ -XM)`0#````B40D"(M5"(D4).CR3?[_B30DZ.Z?_?^X`0```.G+^?__QT0D#%/G -XM"`B+C=CS___'1"0$`P```(E,)`B+=0B)-"3HNTW^_XN%K//__X7`=%6+A;#S -XM__^+6`B%VW4*ZT:)]HL;A=MT/@^V0Q"#X`.#Z`%U[NA]G/W_BU,,B1#'1"0, -XMGZT("(M#",=$)`0%````B40D"(M5"(D4).AB3?[_@$L0`NN\BXV`\___B0PD -XMZ%*?_?^X`0```.DO^?__#[9"`8UZ`<8"`(3`#X3;\___#[[`A<`/B$0!``"+ -XM#?P@"0@YP0^.&`$``(L=""$)".L9@\")^NL2#[9"`8/"`83`#X2'\___#[[`A;V1(,U0'3? -XMQ@(`@+WH]___``^$9?/__X`^``^$7//__X`_``^$4_/__XDT).@&E_W_A<`/ -XMCD/S__^)/"3H1I_]_XDT)(G#Z#R?_?_'!"0!````C40#+HE$)`3H6)S]_X7` -XMB<,/A(K\__^-0"B)0Q2)?"0$B00DZ%R?_?^)/"3H!)_]_XE#&`-#%(/``8E# -XM((ET)`2)!"3H/)_]_XN%J//__XD#BY6$\___BT(,B4,$BXVH\___.TH(=$>) -XM&(NUA//__XE>#.G]\?__B7,$Z=G]__^+'0@A"0CI!?___XE^#.F>_?__B[W4 -XM\___Z27V__^+#?P@"0B+'0@A"0CIX?[__XE:".NVC;8`````C;PG`````%6) -XMY8M%#(&(@`````````B)10Q=Z4?P__^-M"8`````58GE@>S(````B77XBW4, -XMC47LB5WTC9U8____B7W\BWT(B40D&,=$)!0`````QT0D$`````#'1"0,```` -XM`,=$)`@`````QT0D!#H```")'"3H*Q0``(DT).CWG?W_B70D"(D<)(E$)`R- -XM1=R)1"0$Z+P/``")7"0$B3PDZ,#O__^%P'41BX>L!```@.3^#(")AZP$``"+ -XM7?0QP(MU^(M]_(GL7<.0D)"0D)"0D)"0D)!5B>6#[!B)7?2+70B)=?B)QHE] -XM_(G7]\,``$``#X6.````]\,``!``=!CVAI@"```!=4V+AI`"``"%P`^5P(3` -XM=5F#XQ!T&HM'"(E$)`B+1QS'!"3RF`@(B40D!.CSF?W_H00A"0B+7?2+=?B+ -XM??R)10B)[%WI^I?]_XVV`````(N&D`(``(T$0,'@`@-&$(M0.(72#Y7`A,!T -XMIXM'%,<$)+O<"`B)1"0$Z*:9_?_KDHD,).A575E.! -XM[,P```"+?0R+=12+'SG[=!`Y.P^$%0(``(D\).AHS?W_QT0D#"````#'1"0( -XM`````,=$)`0`````BT4(B00DZ,7._?^%P(G##X0K`0``BP>)>P2)`SE_!`^$ -XM,@,``(L'B5@$B1^+50B+0DR#P`&)0Q2+2A")C53____V@50(```0#X2B```` -XM@^;OB?&)\(/A0"4``@``QX5<____`````(F-4/___XF%3/___XU5V,=$)`P` -XM````QT0D"`````")5"0$BTT(B0PDZ'L(_O^%P`^%HP```(-]X`L/AJL```"- -XM1=@Q]HE$)`2+50B)%"3H10/^_XL3.?H/A+$```"+0P2)0@2+0P0Y^`^$LP`` -XM`(D0B1PDZ$#,_?^!Q,P```")\%M>7UW#C78`]\80````=#")7"00QT0D#``` -XM``#'1"0(`````(M5"(M"3(D4)(E$)`3H$HX``(7`=1Z!S@!```")-"2+31") -XMVHM%".C(_?__Z13___^-=@"^`0```('$S````(GP6UY?7<.+1>#_)(6,YP@( -XMBT,(@'P"_RX/A1D!``"+$S'V.?H/A4____^+0P2)1P2+0P2+$SGX#X5-____ -XMB1?I2/___[X!````Z2'___^+0Q"#P`$[0PQWBX50____A0[%?P@"0A]&J$((0D(]D20-0)T#H/Y"G0)@_D/#X66_O__BT,0#[95 -XMY(M+"(@4`8/``8E#$.E^_O__@WL,'P^&X?W__\=#$`````#I(?[__Y"-="8` -XM_R2-O.<("(E$)`R-0PR)1"0(BT,(B40D!(M-"(D,).A,M_[_A<`/A`3___^) -XM0PCI8?____9%[`(/A%_____WQB`````/A04!``#WQ@`(```/A84$``#WQ@`0 -XM``"-="8`=!&+0QR+4Q"#P`$YP@^$V?[__\=$)`P@````QT0D"`````#'1"0$ -XM`````(M%"(D$).@JS/W_A<")A5C___\/A(S^__^+0Q2+E5C___^#P`'WQA`` -XM``")0A1T1X.]7/___P(/A,@"``"+A5C___^)1"00BT,0B5PD",=$)`0````` -XMB40D#(M5"(D4).@PC```A<`/A3C^___'A5S___\`````B30DBTT0BT4(BY58 -XM____Z-K[__^+C5C___^).8M'!(E!!#D_#X2K`@``BT<$BY58____B1"+C5C_ -XM__^)RXE/!.D<_?__B5\$Z2+E43___^( -XM`HM#",9``0"AH!0)"(7`#X7=`P``BQ4$(0D(BT((@^@!A<")0@@/B.(#``"+ -XM`C'VQ@`*@\`!B0+I2OS__XM#$#M#'`^'"_W___?&$`````^$__S__\>%7/__ -XM_P$```#I\/S___?&$`````^$JOO__XM+$(7)B4V`#X2<^___@[U<____`0^$ -XM'`$```^#!`$``(M%@#M#'`^'??O__XM5"/:"T`,```$/A/,"``"+@L@#``"- -XM!$#!X`(#0A"+0#B)A7#___^+10CV@(@#```!#X2W`@``B<*+@(`#``"-!$#! -XMX`(#0A"+0#B)A73___^+0P@QTL=%D`````")A7S____K%XUT)@"#P@`! -XMBT6`.460#X2)`0``BTV0BX5\____@#P!"77>BXUP____B=`!T3'2][5P____ -XMB8U(____*=&)RNO#B50D$(M%N,=$)`0`````B40D#(U%G(E$)`B+30B)#"3H -XM:XD``(7`#X5S^___BT6DB00DZ!R6_?_'A5S___\`````Z2O]__^)#^E9_?__ -XM@[U<____`P^$U0```.B4D/W_BT,<@\`!.46`#X=D^O__BU,E?W_BT,%7/___P````#KCHM3"#'VBT,0Q@0"`.GD^?__ -XM@^H!B95(____B=`QTO>U=/___S'`BXU(____QX5H____`````"G1.8UP____ -XMB4V,=S.+A7#___^)18CK`XE-B(M%B#'2][5P____BTV(`XUP____@X5H____ -XM`2G1.4V,<]N+18B+58PIPHF5;/___P.5:/___XG0B95X____@\`!.T,,#X>' -XM````BY5X____QT,0`````(E3'(N%:/___X7`=!F+0Q"+4PC&!`()@\`!B4,0 -XM@ZUH____`77GBX5L____A<`/A-K^__^+0Q"+4PC&!`(@@\`!B4,0@ZUL____ -XM`77GZ;S^__^+30B+B8`#``")C73____I3_W__XM-"(N)R`,``(F-$:#R("(0UC'0S0!````B7PD!(DT).BK%_[_AR)1DR+1?")1E`QP.L%N`$```"+7?2+=?B+??R)[%W#BT,T@_@! -XM=+]S"8UT)@#H;XW]_X/X`G7&B7PD!(DT).C:$O[_A53@^P4BUT(QT0D!!#H"`B)'"3H]FO__XD<),=$)`1( -XMZ`@(Z.9K__^)'"3'1"0$@.@(".C6:___B1PDQT0D!,#H"`CHQFO__XD<),=$ -XM)`0?Z0@(Z+9K__^#Q!0QP%M=PXVT)@````"-O"<`````58GE5U93@^Q,BU4, -XMBT)XA<`/A0@!``"+'<#,"`B%VP^$\````(M5"+O`S`@(C77CBT(0]H!4"``` -XM!`^%U0```,=$)`P!````QT0D"`````#'1"0$`````(M%"(D$).CM_OW_A!0[%?P@"0A]#*$((0D(BY20-`@``(A5Y`^V`3'2QD7F78A% -XMY0^V1`H!B$0R!(/"`83`=?")\HM#%(/#&(E4)`S'1"0(#````,=$)`24U`@( -XMB40D$(M%"(D$).@T:___BP.%P'03BU4(BT(0]H!4"```!`^$*____X/$3#'` -XM6UY?7<.#Z`%T!>BKB_W_BT)TBP")1D( -XM"(E$)`B+10B)!"3HGFG__X/$3#'`6UY?7<.-="8`58GE5U93@^PC;0F`````(N&!`0``(7`=(NX8`L)".N&@^@!=`7H28G]_XM"=(L` -XM@W@(`70GQT0D"`H```"+0B"+0!")-"2)1"0$Z)`"``"#Q!RX`0```%M>7UW# -XMBP`/MA@/MM.#^GY_=X/Z6W1J@_I==&6`^WX/A)$```")T,'@!`4`_`@(BW@( -XMA?]T4XM(#`^^$872>!D[%?P@"0A]$:$((0D(NT^-"`CV1)`V`G4%N]+4"`B) -XM?"00B4PD#(E<)`C'1"0$:^D("(DT).C^9___,<#I`O___P^V0`$YT'23C012 -XM@,,!C81!6`$``'1&B30DB40D",=$)`3\Z`@(Z,QG__^#Q!PQP%M>7UW#]H8, -XM!````70MBX8$!```C01`BT2!.(7`#X11____N&`+"0CI4?___XE4)`2)-"3H -XM;O+]_^NLBX8$!```A(M1=(/``8E!>,<$@@````!;7<.-M@`` -XM``"-OP````!5B>564X/L$(M="(MS$,=$)`0!````B1PD_Y:@"```N@$```"% -XMP'0)@\00B=!;7EW#QT0D"`````#'1"0$`````(D<)/^67`@``/:#(`(```%T -XM4(N#&`(``(T$0,'@`@-#$/:#8`$```&+0#B)0S1T1(N#6`$``(T$0,'@`@-# -XM$(M`.(E#.(N#K`0``#'2@^#]@\@%B8.L!```@\00B=!;7EW#BX,8`@``]H-@ -XM`0```8E#-'6\BX-8`0``Z\:-=@!5B>53@^P4BT4,BUT(AGQ,_[_QT40\.H(",=%#`,```")30C) -XMZ=HS_O_'11`4ZP@(QT4,`P```(E-",GIPS/^_XE4)`S'1"0(/.L(",=$)`0# -XM````B0PDZ*EP,_[_58GE5S'_5E.#[!R+10B+=0R+@)@```") -XM1?#H58?]_\<``````(M5\(M:+(/",(E5[(M5\(M",#G'<@^-5P$YT')3BT7P -XMB?L#6"RAH!0)"(7`=6Z+1@2#Z`&%P(E&!`^(W0```(L&#[80@\`!B0:#^O]T -XM78/Z"@^$U````(@3BU7P@\(/]_^GP_O__B30DZ&N)_?^)PND>____BU40 -XM,<").H/$'%M>7UW#D%6)Y8/L&(E=](M=#(EU^(MU"(E]_(M](,=$)`B$```` -XMC1Q;C1S=P,P(",=$)`0`````B30DZ'J%_?^)7B"+11")1F"+112)1F2+11C' -XM1G`!````QT9H`0```(E&;(M%'(7`=`9F@4Y\``&%_\=&>`````")?G1T!L<' -XM`````(M=](MU^(M]_(GL7<.0D)"0D%6)Y8/L&(M%",=$)`CXZP@(QT0D!`0` -XM``")!"3H7S'^_S'`R<.0D)"0D)"0D)"0D%6)Y5=64X'L+`$``(M="(M]#/:# -XML`(```$/A)$```"+@Z@"``"-!$#!X`(#0Q"+4#B%T@^4P(3`#X6%````BU=D -XMA=(/A*<```")4TP/MT]\B<@E8@@``(/X(`^$X`````^/D0```(/X`@^%G``` -XM`(/A!+Y>````#X71````C78`B70D$(VU\/[__XE4)`S'1"0(ANP(",=$)`0` -XM`0``B30DZ$Z%_?_IT````)"-="8`BX.H`@``A<`/E,"$P`^$>____\=$)`A` -XM[`@(QT0D!`,```")'"3H=3#^_[@!````@<0L`0``6UY?7<.0C70F`+(!Z5+_ -XM__^#^$`/A!4!```]``@```^$<@$``(M#((E0$(M#(,=`%`````"-0U")1"0( -XMBT-,B1PDB40D!.COH_[_BT,@9H-(&`'IH@```(GVOBT```"#X00/A#+___^+ -XM1UB)="00C;7P_O__B50D#,=$)`A\[`@(B40D%,=$)`0``0``B30DZ'F$_?_' -XM1"00#````(E$)`R)="0(QT0D!`````")'"3HU?#]_P^W1WPE`!8``#T``@`` -XM#X2A````/0`$``!U*L=$)!`!````QT0D#`````#'1"0(`````,=$)`0:```` -XMB1PDZ`)"_O^)]HN#K`0``*@0=0L-```(`(F#K`0``*D```(`=22#X/J#R`*) -XM@ZP$``"!Q"P!```QP%M>7UW#OBX```#I)O___Y"+0QR#0PP!@P`!C47PB5WP -XMB00DZ"CG``"%P'1+@<0L`0``N`$```!;7E]=PXUT)@#'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$(@```(D<).AH0?[_Z6/___^^*P```.F^_O__B1PD -XMC;8`````Z)OX__^%P'6CQT0D!":Z"`B)'"3H)U___S'`Z3#^__]5B>575E.! -XM[)P```"+10B+?1"+0!")A7#___^+112+,(M%&(L`B85X____BT4/___X7`#X1S`@``.[5X____#X=G`@``QX5T -XM____`````,>%?/___P````#'18"-[`@(ZSR0C70F`(M'"(/H`87`B4<(#X@9 -XM`@``BP?&``J#P`&)!X.%=/___P&#Q@$YM7C___\/@H0"``")G7S___^+G7S_ -XM__^Z'X7K48/#`8G8]^+!Z@5KTF0YTP^%@P```(M5"(M"$/:`5`@```0/A>T` -XM``#'1"0,`0```,=$)`@`````QT0D!`````")%"3HQO']_X7`=1.+50B+0A#V -XM@%0(```$#X6V````BT4DA%?/___P`` -XM``")/"3H4W[]_X7`#X7Z_O__Z4/___^+10S'1"0,GZT(",=$)`0%````B10D -XMB40D".BC,/[_Z>'^__^+#:`4"0B%R75##[]'#HD$).@L?/W_A<`/A;/^___I -XM-?___XF=?/___XD\).CQ??W_A<`/A9C^___IX?[__XD\).A<@?W_B<+IY/[_ -XM_XD\).A-@?W_Z[>-M"8`````58GE5XG75E.#[#R)1=B)3=2+!T5HM'=(L`BQ@/M@.$P'0U -XM#[[`A2#?=0"=0V`.R$/A+P```"-="8`@W]D`0^&7`(``(M%X(7`D'0; -XM@WW4`W0)@#L^#X2O`0``BT7@A7UW#B1PDZ`*"_?^+5=B)7"0(B7PD -XM!(D4)(E$)`SHM_O^_X7`#X4,`@``BT=XA!K`0` -XM``(`!``/A:#^___'1"0$);H("(D,).A>6?__,<#IB?[__XVT)@````"`>P$^ -XM#X5'_O__@\,"@\X"#[8#A,`/A#;^__\/OL"%P`^(*_[__XL-_"`)"#G!#XX= -XM_O__BQ4((0D(ZR6-="8`@\,!#[8#A,`/A`/^__\/OL"%P`^(^/W__SG!#X[P -XM_?__]D2"-@)UV.GD_?__C78`QT0D"`0```"+0B"+`(E$)`2+1=B)!"3H9//_ -XM_[@!````Z>S]__^+1VR#P`&)1"0$BT78B00DZ'7U_?^%P'4=BT]X@\X!B4W@ -XMZ7W]__^X`0```.F[_?__Z+AY_?^+5WB)5>#I8_W__XN!7`,``(T$0,'@`@-! -XM$(M(.(7)#Y7`Z1/^__^+1W2+3=B+4`2+02"+&@^W0!@EA````(/`@`^$@@`` -XM`(M%V(E<)`2)!"3H/L#]_XM-V(U';(E$)`B-1V2)="00B5PD#(E$)`2)#"3H -XM3<']_^DZ_?__BT<@QT0D"`H```"+3=B+0!")#"2)1"0$Z(OR__^X`0```.D3 -XM_?__BT<@QT0D"`D```"+5=B+`(D4)(E$)`3H9?+__[@!````Z>W\__^+0@B) -XM7"0$B0PDB40D".A8FO[_A<")1=QT'8M5V(M"((M`"(D$).@D?OW_BTW8BU7< -XMBT$@B5`(BTW8BT$@9H%@&#__BT$@9H-(&`R+41#'1"0(`0```(M!((M`"(D, -XM)(E$)`3_DIP(``#I'____XVV`````(V\)P````!5B>564X/L$(MU"(M&'(7` -XM='GV0%@$=!.+50RY`P```(GPZ&G[__^%P'44QT0D!`````")-"3HE;_]_X7` -XM=!&X`0```(/$$%M>7<.0C70F`(M%#`^W6'R)-"2!XP`!``")7"0$Z/?P__^% -XMP'72@_L!&<`E`/[__P4`!```"8:L!```@\006S'`7EW#QT0D"`0```"+50R+ -XM0B"+`(DT)(E$)`3H.?'__[@!````ZY:)]E6Y`@```(GEBT4(BU4,7>G,^O__ -XMC;8`````C;\`````5;D!````B>6#[!B)=?R+=0B+50R)7?B)\.BB^O__AQ=P\=$)`0`````B30DZ+^^_?^%P'7=BT4,#[=8?(DT -XM)('C``$``(E<)`3H,O#__X7`=<"#^P$9P"4`_O__!0`$```)AJP$```QP(M= -XM^(MU_(GL7<.-M@````"-O"<`````53')B>6#[!B)7?B+70R)=?R+=0B)VHGP -XMZ!/Z__^%P'0/BUWXN`$```"+=?R)[%W#QT0D!`````")-"3H,+[]_X7`==W' -XM0W@`````B5T,BUWXB74(BW7\B>Q=Z5'?_O^058GE4X/L%(M="(M-#(M#'(7` -XM=#8/MT%\C5%1QT0D$`$```")'"2#X`'WV"'"C4%LB40D#(U!9(E$)`B)5"0$ -XMZ%RP_?^#Q!1;7+B -XM"```@_I`B47P#X2+`0``#X^5````@_H"#X1-`0``@_H@#X0A`0``]H."```` -XM"'0&@\`!B47PBT7PB4-DBT7P@^@!```````C47PB40D!(DT).C- -XM\?W_A<`/A<4```"+1?`Y0VQV`XE#;(E<)`2)-"3H7ES__X7`#X6F````BU7@ -XMA=)T"(M%X(E&3#'`@\0L6UY?7<.+2UCI5____XVT)@````"!^H````!T$X'Z -XM``@``(GV#X5G____Z7'___^->?^Z`0```-'O.?AV!(G"*?J)4V2+1?"#Z`&) -XM0VR)7"0$B30DZ.M;__^%P'4WQT0D!)SL"`B)-"3HMU/__XM%\(E%X(E#9(E# -XM;(E<)`2)-"3HOUO__X7`#X3Z````C;0F`````(/$++@!````6UY?7<.-=@"+ -XMCF0$``"#Z0'ILO[__SG!N@$```!S!8U0`2G*B5-DBT7PB4-LQT7@`````.D% -XM____C10).=`/AIL```"#P`$IT(E#9(M#9(/H`0'(B4-LQT7@`````.FY_O__ -XMD(UT)@"-4?^Y`0```-'J.=!V!(G!*=&)2V2)T`-%\(E#;(M&3(E%Z(M&4(E% -XM[(U%Z,=$)`P!````B40D",=$)`0G````B30DZ-@2_O_'1>``````Z6#^___' -XM1"0(!````(M#((L`B30DB40D!.A3[?__N`$```#I@O[__\=#9`$```#I8?__ -XM_\=$)`2<[`@(B30DZ(U2__^+1?"#P`&)0V2+1?"#Z`$!^(E#;.D(_O__D)"0 -XMD%6)Y8/L&(M%",=$)`C([`@(QT0D!`,```")!"3HSR'^_[@!````R<.0D)"0 -XMD)"0D%6)Y8/L&(M%",=$)`CX[`@(QT0D!`,```")!"3HGR'^_[@!````R<.0 -XMD)"0D)"0D%6)Y5.#[!2+70R#>Q0$=@7H+W/]_XM#%/\DA2CM"`B0,<"#Q!1; -XM7<.+`X/X`71QC5#_C4,,B1.)1"00C4,(B40D#,=$)`@!````B50D!(M%"(D$ -XM).CG[/W_A____C;8`````58GE5E.#[#"+70R-1?2+=0B)1"00 -XMC4,,B40D#(U#"(E$)`B+`XDT)(E$)`3H;^[]_X7`=!.+5?2X`0```(72=26# -XMQ#!;7EW#BT,,A7<.X`0```.ORC;8`````C;\`````58GE -XM5E.#[!"+=0B+70R)]HE<)`2)-"3HQ/S__X7`=3.+0Q2#^`-TZ(/X`73CA<"0 -XM=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X`0```%M> -XM7<.058GE5E.#[!"+=0B+70R)]HE<)`2)-"3H=/W__X7`=3.+0Q2#^`-TZ(/X -XM`73CA<"0=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X -XM`0```%M>7<.058GE5U93@^P\BT4,]D`Q`G0.#[90`8#Z0'0%@/HJ=1N+50AF -XM@[JL!`````^)0P$``(M="`^VDZ@```"+10@/MLJ!B*P$````@```.PW\(`D( -XM#XS(````B="+70B+7UW#QT0D"`4```#'1"0$`````(D4).A$Y___ -XM@\0\N`$```!;7E]=PXM5##'`]D(Q"`^$;____XM"!(U=X(D<),=$)`CZE@@( -XMQT0D!!0```")1"0,Z(IP_?_'1"00`````(E<)`C'1"0$`````(E$)`R+70B) -XM'"3HX]S]_X7`#Y7`#[;`Z1W____'1"0$_P```(M%"(D$).B3U_W_Z3[___^0 -XMD)"0D)"0D)"0D)"0D%6)Y5.)PX/L%(#Z_W0U#[;"C01`C80`4`$```-#$(/` -XM"(D<)(E$)`S'1"0(2^T(",=$)`0"````Z%,;_O^#Q!1;7<.)5"0$B1PDZ#'7 -XM_?_KT.L-D)"0D)"0D)"0D)"0D%6)Y5=64X/L+(M]#`^V5P+V1S$@#[;:=0^+ -XM30B+@9P```"(D(0!``"+50B+@IP```#'@(@!```!````C47LB40D$(U%\(E$ -XM)`R-1>B)1"0(BT7UW#BT7PAAS!P^^`CG8=>PYT77B)5T2)1T")1TB+1RR%P'0.]D`&('0(@V\X`3'`ZX0Q -XMP.N`B?95B>6#[!B)7?B+70R)=?R+=0B)7"0$B30DZ.+^__^Z`0```(7`=22+ -XM0T"+4SR#P`&)4T0QTHE#0(E#2(N&G````,>`B`$```,```"+7?B)T(MU_(GL -XM7<.)]HV\)P````!5B>575E.#["R+?0P/ME<"]DC]_X7`=".+3>RX`0```(7)=`^+10B)VNC'_?__N`$` -XM``"#Q"Q;7E]=PXM%\(7`=.*+3>B^`0```(E-X`'!BT7@`TAV!P^^`CG8=>PYT77@ZYV+=P3K -XMV8M'+(M5Z"M5X(7`B5=`=`;V0`8@=0V+1SR)5TB)1T0QP.N$BT`B`$```0` -XM``"+7?B)T(MU_(GL7<.0C70F`(M#/(E32(E#1.O2D(UT)@!5B>6#[!C'1"0( -XM7.T(",=$)`0"````B00DZ#(8_O_)PU6)Y8/L&(EU_(MU"(E=^(M5#(N&G``` -XM``^V@(0!``"(0@*+AIP```"+F(@!``"#^P1V!>BL:?W__R2=@.T("(E4)`2) -XM-"3HM?W__XG"C78`BX:<````B9B(`0``BUWXB="+=?R)[%W#B?#HR)T%W#B50D!(DT).C4_?__B<+KP(E4)`2)-"3H9/S__XG" -XMZ[")5"0$B30DZ,3^__^)PNN@58GE@^P(BU4(BTT,BX*<````#[:`A`$``(A! -XM`HN"G````(.XB`$```1V!>@$:?W_BX"(`0``_R2%E.T("(E-#(E5",GI=_[_ -XM_XG0Z.#^__^X`0```,G#B4T,B54(R>GM^___B4T,B54(R>E!_?__B4T,B54( -XMR>G5_/__D)"0D)!5B>575E.#["R+10R+?0R+70R+2#")SHG(P>X#@^`"@^8! -XM@_@!BT4,&=*!X0`"``"#XOZ#QS2#P@2#PP&#P#R#^0&)1>`9P`GR]]`APXM% -XM"(E4)!"+5>")?"0(B5PD!(D$)(E4)`SH-:+]_X7`=!&X`0```(/$+%M>7UW# -XMC70F`(M5X(M%"(ET)`R)?"0$B50D"(D$).@&IOW_AR)7"00QT0D#`````#'1"0(`````(M" -XM1(E$)`2+10B)!"3HRN']_X7`#X63````BT4,BT@P]L$(=1>!X0_^__^#R2") -XM2#"+50R+1>PY0DAS73'`]L$$#X19____BU4,@>$/_O__@\E`B4HPZ47___^0 -XMBU4(C47PB40D!(D4).BNX_W_A<`/A27___^+1?"%P`^%9?___XM%#,=`1`$` -XM``#'0$@`````,<#I!____X/X`8U0_QG`]]`APHM%#(E02.N/BT7PBU4(B5PD -XM$,=$)`P`````QT0D"`$```")1"0$B10DZ`GA_?^%P`^%P/[__XM%\(M5#(E" -XM1.DQ____D)"058GE4X/L-(M="(U%^(E$)!"-1?2)1"0,QT0D"`````"+0TR) -XM'"2)1"0$Z,'@_?^%P'0&@WM,`71\BT7XA<")]G1.QT0D%`````#'1"00```` -XM`(E$)`R+1?3'1"0$`````(D<)(E$)`CH,R?__[H!````A6#["B)7?2)PXE]_(EU^(MP$,=$)`0`````B00DZ#S!_?^% -XMP(G'=!>-1AB)1"0(B5PD!(DT).BS5O[_AQ= -XMP\=$)`P`````QT0D"`````")?"0$BT88B00DZ&["_?^%P'4.BT88BT`<@&!8 -XMOS'`Z\*+1AB)!"3HP53^_[@!````Z["-=@"-O"<`````58GE@^PXB5WTB<.) -XM??R)UXEU^(M`$(M`&(7`=&6+7<.+1?0Y0U!RU8/X`8U0_QG`]]`A -XMPHE34.O$58GE@^P8B5WTB<.+02")=?B)UHE]_(E,)`2)'"3_4`2)\HG'B=CH -XM5?___[H!````A57 -XM5E.#["R+70B+>Q#'1>``````Z>,```"0C70F`(N#3`$``(T$0,'@`@-#$(M` -XM.(7`#Y7`A,!T$8GRB=CH3/[__X7`#X6.`0``QT0D%`$```#'1"00`````(M& -XM$(E$)`R+1@C'1"0$`````(D<)(E$)`CH-B3__X7`#X58`0``B1PDZ$;H``#V -XM@ZP$```0="ZAH!0)"(7`#X7#````BQ4$(0D(BT((@^@!A<")0@@/B#`!``"+ -XM`L8`"H/``8D"B1PDZ/>2_O^)'"3HKT'__XU%\(E$)`2)'"3H0/,``(7`#X7R -XM````BT7PA<`/A(H```"#0RP!QT7@`0```(M'?(M`%(7`#X5V____BT4,QT0D -XM#(`!00#'1"0(.@```(D<)(E$)`3H!:(``(7`#X6G````BW-XBT8X@_@!#X2Z -XM````A7UW#B50D!,<$)`H```#H -XM?6;]_^G%_O__@WX0`78-B?*)V.B%_/__AS'1"0( -XM`0```(D<)(E$)`3H@$8!`(7`=".+1>R)!"3H`5'^_[@!````ZYF)V.BC^___ -XMA<"0=8CI;/___XM&&(M0'(M%[(E0'(M%[(M`'(,``8M&&(M0((M%[(E0((M% -XM[(M0((M#(`^W0!AFB4(8BU7LC4),B10DB40D!.BEW?W_BT7LBU!,A=)U"L=` -XM3`$```"+1>R!B*P$``````$`B5L8BT7L@8NL!````!```(E#%#'`Z0S___^- -XMM@````"-O"<`````58GE4X'LM````(V=>/___XD<),=$)!@`````QT0D%``` -XM``#'1"00`````,=$)`P`````QT0D"`````#'1"0$/````.@8W?__BU4,B=F+ -XM10CH>_S__X'$M````%M=PXGV58GE5E.![+````"+=0R+1C3V1C$(C4@!=`R+ -XM5@2#^@)V!(U,`O^-G73___^)3"00B40D#(D<),=$)!@`````QT0D%`````#' -XM1"0(`@```,=$)`0<````Z*3<__^+10B)V8GRZ`C\__^!Q+````!;7EW#C;0F -XM`````(V\)P````!5B>6![+@```")=?R+=0R)7?B+1A2#^`5T"H/X#'19Z"!@ -XM_?^-G73____'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!"P```")'"3H'MS__XM%"(G9B?+H@OO__XM=^(MU_(GL7<.-G73_ -XM___'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D -XM!$@```")'"3HRMO__^NJD(VT)@````!5B>6![+@```")=?B+=0R)??R+?0B) -XM7?3V1C$@=6*+1BP]X``)"'18/>`""0AT4<=$)`R`B$$`QT0D""$```")="0$ -XMB3PDZ&6>``"%P`^%G@```(M?>(-[.`0/A,(```"+1TR)1D2+1U")1D@QP(GV -XMBUWTBW7XBWW\B>Q=PXUV`,=$)!@`````C9UP____QT0D%`````"+1CR)1"00 -XMBT8TQT0D"`(```#'1"0$`0```(D<)(E$)`SH!-O__XN'F````,=`)`````#' -XM1"00`0```,=$)`P!````QT0D"-7:"`B)7"0$B3PDZ`/7_O^%P'0/N`$```#I -XM=?___Y"-="8`BX>8````B=F+4"2)5>B+0!R)\HE%Y(GXZ!/Z___I3O___XD\ -XM).@FXP``QT0D&`````#'1"04`````(M&/(E$)!"+1C3'1"0(`@```,=$)`0! -XM````B40D#(V%8````QT`D`````,=$)!`!````BT,0 -XM@^@!B40D#(M#"(D\)(/``8E$)`B-A7#___^)1"0$Z$_6_O^%P`^%2/___XN' -XMF````(V-R-O5C___^)1"08QT0D%`````#'1"00`````,=$)`P` -XM````QT0D"`````#'1"0$.@```(D\).ASV?__BX:<````BY@P`0``B1PDZ#-C -XM_?^)7"0(B3PDB40D#(U%W(E$)`3H^-3__XM5#(GYB?#HK/C__XM=](MU^(M] -XM_(GL7<.+EM`!``"%T@^$____D%6)Y5.![,0```"-G6#___^-1?2)1"08B1PDQT0D%`````#' -XM1"00`````,=$)`P`````QT0D"`````#'1"0$-P```.B)V/__C47DB40D!(D< -XM),=$)`P'````QT0D"'[`"`CH&M3__XM5#(G9BT4(Z,WW__^!Q,0```!;7<.- -XM="8`58GE5E.![,````"+=0R-1?")1"08C9U<____QT0D%`````"+1CR)1"00 -XMBT8TB1PDQT0D"`(```#'1"0$!P```(E$)`SH!]C__XU%X(E$)`2)'"3'1"0, -XM`0```,=$)`B9[P@(Z)C3__^+10B)V8GRZ$SW__^!Q,````!;7EW#B?95B>56 -XM4X'LP````(MU#(U%\(E$)!B-G5S____'1"04`````(M&/(E$)!"+1C2)'"3' -XM1"0(`@```,=$)`0%````B40D#.B'U___C47@B40D!(D<),=$)`P!````QT0D -XM"':["`CH&-/__XM%"(G9B?+HS/;__X'$P````%M>7<.)]E6)Y593@>S````` -XMBW4,C9U<____C47PBU8TB40D&(D<),=$)!0!````B50D$(E4)`S'1"0(`@`` -XM`,=$)`0#````Z`K7__^-1>")1"0$B1PDQT0D#`$```#'1"0(3XT(".B;TO__ -XMBT4(B=F)\NA/]O__@<3`````6UY=PY"-="8`58GE@>S(````B7W\BWT(B5WT -XMB77XB[>D````A?8/A)T```#'1"0(`0```,=$)`0`````B3PDZ)6R_?^Z`0`` -XM`(7`=`^+7?2)T(MU^(M]_(GL7<.-1>R-G5C___^)1"08QT0D%`````#'1"00 -XM`````,=$)`P`````QT0D"`````#'1"0$%````(D<).A`UO__B30DZ`Q@_?^) -XM="0(B1PDB40D#(U%W(E$)`3HT='__XM5#(G9B?CHA?7__XG"ZX60QT0D"`T$ -XM"0C'1"0$`P```(D\).@("/[_N@$```#I8O___XVT)@````"-O"<`````58GE -XM5E.#[!"+70B+7<.)'"3'1"0(`````,=$)`0`````_Y9< -XM"```BU,@BT-,B4(0BT-0BU,@B4(4BT,@9H-(&`&+@ZP$``"#X/6#R`&)@ZP$ -XM``")'"3'1"0$)KH(".C4-___@\00,6#[!B# -XM^@)T-8/Z`W05@^H!=`+)PXGVC;PG`````.C/6/W_QT0D"(0$"0C'1"0$`P`` -XM`(D$).@#!_[_R<.0QT0D"&0$"0C'1"0$`P```(D$).CH!O[_R<.-M@````!5 -XMB>575E.![+P```"+50P/MD("/"-T.CPK=#H\+70VQT0D"`8```"+30R[`0`` -XM`(M!*(M`"(E$)`2+=0B)-"3HC)T``('$O````(G86UY?72+0#@Y^(F%7/__ -XM_W-XBU7'@Y -XM\'UT@\(!]D2!-4!T:H/#`3G[=>/K"XM=X(7;#X1X`0``QT0D"+\$"0B[`0`` -XM`,=$)`0#````BTT(B0PDZ)`%_O^!Q+P```")V%M>7UW#QX58____`0```.D' -XM____BT4(N@(```"[`0```.@B_O__Z]"+G5S___\[G5S___\/A,`!``"+30B) -XM65#'1"0$`````(D,).@8"`$`BW7%9/___P````"#P#(/ -XMA(P!``")1"0,C47HB40D",=$)`0`````BU4(B10DZ.9X_O^%P(F%9/___P^% -XM8`$``+L!````@<2\````B=A;7E]=PX/X`G8JB[5L____#[94%@&`^EB(E4__ -XM__\/E(57____#X3P`0``@/IX#X3G`0``A,D/A//^__^#^`$/ANK^__^+M5S_ -XM__^+C5#___^#Q@$/MA0Q#[["@_A_#X?3_O__]@2%W10)"`0/A,7^__^`^C@/ -XMA+S^__^`^CG'A6C___^S!`D(QX5@____"`````^%T_[__^F:_O__B9UL____ -XMB9U<____Z5W^__\/MD,!#[[0@_I_#X;#`0``@^@X/`%W0\>%:/___[.@"`C' -XMA6#___\*````@\,!Z9+^__\/OD,!@_A_=PKV!(7=%`D(!'7EB40D!,<$)-H$ -XM"0CHFU7]_X7`==&+30B%R0^$E_[__XM%"(M8$(7;#X2)_O__]H-5"````0^% -XM?/[__XU',CM#>`^'8`,``(M#=(F%9/___XM#>(E%Z(&+5`@````!``")\BN5 -XM7/___SMUY(F5%8/___Q````#IZOS___8$E=T4"0@$#X0O_O__/#@/ -XMA"[^__\\.0^%.O[__^DA_O__@/LKC70F`'0)@/LM#X6!_/__B[5<____BY50 -XM____QX5H____N@0)"(/&`0^^!#*#^'\/AY_[___IS'1"0, -XM"@```,=$)`@`````B00DZ&MS_O^#^`$/A:'^__^+30R+E5C___^`>0(M=0+W -XMVHM-[(7)#X[4`0``A=(/CLP!``"X____?RG(.=`/@[T!``"X`@```.ED_O__ -XMBT4,@'@"*P^$@P$``(M%\#F%6/___P^'+@$``"N%6/___XE%\(.]8/___Q"+ -XME7#___]U`X/J`HM%\(V->/___XE4)`R)1"00BY5H____QT0D!&0```")#"2) -XM5"0(Z"=5_?^)QXN%7/___XE$)`B+1=R)1"0$BY5D____B10DZ$96_?^+G63_ -XM__^-C7C___\#G6S___^)3"0$B7PD"(D<)`'[Z")6_?^+1>0KA5S___\KA7#_ -XM__^)1"0(`W72)1"0,B[5D____ -XMB70D"(M5#(M"-(E$)`2+30B)#"3H2]#]_XG#Z7+]__^)5"0(BX5L____`T7< -XMB40D!(N-9/___XD,).BI5?W_BX5D____BY5P____Q@00`(N%9/___^GR_/__ -XMA=)Y>+@```"`*<@YPGUMN`,```#I$/W__XE$)`R-0WB)1"0(BT-TB40D!(M- -XM"(D,).@4=/[_A<`/A#3[__^)0W3I<_S__X&@5`@``/_^___IQ?G__XM5\(G0 -XM]]`[A5C___\/@E/^__^+A5C___\!T(E%\.ER_O__AD?&@`` -XMBX'``@``C01`P>`"`T$0BT`XB5T0B4T(B44,6UWI_1D``(N!4`,``(T$0,'@ -XM`@-!$(M`.(E=#(E-"(E%$%M=Z=L9``"-="8`C;PG`````%6)Y593@^P0BW4( -XMBYZ<````A=MT8(N#,`$``(7`=`B)!"3H#57]_XN#1`$``(7`=`B)!"3H^U3] -XM_XN#?`$``(7`=`B)!"3HZ53]_XN&G````(N`C`$``(7`=`B)!"3HT53]_XD< -XM).C)5/W_QX:<`````````(/$$#'`6UY=PXGV58GE@^P8QT0D!,P!``")7?2+ -XM70B)=?B)??S'!"0!````Z&Y2_?^%P(G6````BT4,A=N)L)P```#'AJP! -XM````````#X3:````B[N<````BX=(`0``A$`0``,=*( -XMAH0!``"+AX@!``")AH@!``"+A[0!``")AK0!``"+7?2)T(MU^(M]_(GL7<.) -XM!"3H1U/]_X7`B<*)AD0!``!T+8N'2`$``(E$)`B+AT0!``")%"2)1"0$Z(]2 -XM_?^+AT@!``")AD@!``#I5?___\=$)`@`````QT0D!`4```")'"3H@OS]_[H! -XM````ZY$QTL>&B`$```````#K@Y"0D)"0D)"0D)"0D)!5B>575HG.4XMZ,('. -XM`(2$!(G#]\<`(```=`B)SH'.`(2$!O:#``$```$/A*`!``"+@_@```"-!$#! -XMX`(#0Q"+0#B%P`^5P(3`=`.#S@3V@PP!```!#X1E`0``BX,$`0``C01`P>`" -XM`T,0BT`XA<`/E<"$P'0#@\X0]H,\`0```0^$*@$``(N#-`$``(T$0,'@`@-# -XM$(M(.(7)#Y7`A,!T`X/.0/:#E`,```$/A.\```"+@XP#``"-!$#!X`(#0Q"+ -XM0#B%P`^5P(3`=`:!S@```!#V@Z\$```!=`:!S@`(``#V@R0$```!#X2B```` -XMBX,`"`T,0BT`XA<`/E<"$P'0&@'E`````$```")QHU%[(E$)!"-1?")1"0,C47HB40D"(M#-(D\)(E$ -XM)`3HYLC]_X7`=!J+5>R%T@^$!P$``(/.",=%\`````")=>#K%(M%\(7`#X3A -XM````@B%P`^$O0```(M#,(U3`8US/,=$)!``````B70D#"4``@`` -XM@_@!&<#WT"'"C4,TB40D"(E4)`2)/"3HVH3]_X7`=7:+1>#'1"0<`0```,=$ -XM)!@`````QT0D%`````")1"0@BT7PB40D$(M%Z(ET)`B)7"0$B3PDB40D#.BY -XM4P``@\0\6UY?7<.0B5-`Z6W___^+4P2#Z@&-!`*)0T"+5?"#Z@$YT`^&4___ -XM_^O<@\X(Z1?___^-="8`@\0\N`$```!;7E]=PXUS/.EU____C70F`(V\)P`` -XM``!5,'E`````0```")QHU%[(E$ -XM)!"-1?")1"0,C47HB40D"(M#-(D\)(E$)`3H9L?]_X7`=!B+5>RX`0```(72 -XM='B#S@C'1?``````ZQ"+3?"%R74#@\X(@B)1"0(B50D!(DT).B#QOW_A7UW# -XMBU7PA=)UKX/+".NJD(M'!.NOC70F`(V\)P````!5,&E`````````"+5S2)5DR)PXU%[(E$)!"-1?")1"0,C47H -XMB40D"(E4)`2)-"3HL\7]_X7`=&6+5>RX`0```(72=%$QTH/+",=%\`````#V -XM1S$(N`$```!T`XM'!(E$)!R+1>B)7"0@QT0D&`````#'1"04`````(E4)!") -XM1"0,QT0D"`````")?"0$B30DZ`)1``"#Q#Q;7E]=PXM5\(72=!.+1E"#P`$Y -XMPG0.B490ZYV-="8`@\L(ZY2#RPB)5E#KC(UV`%6)Y8/L&(E=^(M="(EU_(MU -XM#(U#4,=#4`````")1"0(BT8TB1PDB40D!.BQ:?[_AQ= -XMZ>#]__^+7?BX`0```(MU_(GL7<.058GE5E.#[#"+=0R-1?2+70B)1"00QT0D -XM#`````#'1"0(`````(M&-(D<)(E$)`3H#,']_X7`=1*+1?2#^`&-4/\9P/?0 -XM(<*)4U"+0Q"+D!@!``"%TG04BY`0`0``:X`<`0``'/9$`A0"=0B)'"3H'=?] -XM_XET)`2)'"3H(?[__X/$,%M>7<.-=@"-O"<`````58GE5U93@^Q,BUT,BW4( -XMBT,PBU,T)0_^__^#R"`[4SR)0S`/A!<"```QR8G:B?#H;/C__XE%T,>&E``` -XM``$```"+0S#!Z`.)QX/G`70SQT,X`````/:&#`$```$/A!X"``"+A@0!``"- -XM!$#!X`(#1A"+0#B%P`^5P(3`#X42`@``BT,TB49,BT,XB490BT80BY`8`0`` -XMA=)T%(N0$`$``&N`'`$``!SV1`(4`G4(B30DZ$K6_?^%_W4,BT,T.T,\#X0* -XM`@``C4,\C5,TB57R-1>B)1"00C47LB40D#(U%Y(E$)`B+0S2)-"2)1"0$Z'#"_?^%P`^% -XM#@$``(M5[#E3.'($@TW0"/9#,0BX`0```'0#BT,$BTW0B40D',=$)!@````` -XMQT0D%`````")3"0@B50D$(M%Y(E<)`3'1"0(`````(DT)(E$)`SHQ$T``(M- -XMU(7)B<-T,87V=!.+1A"%P'0,BU74.5!T#X0E`@``BTW4B0PDZ.U)_?^#Q$R) -XMV%M>7UW#NP$```"#Q$R)V%M>7UW#C47HB40D$(U%[(E$)`R-1>2)1"0(B50D -XM!(DT).BOP?W_A<`/A,#]__^+1>B%P'3!B5PD!(DT).B4^___BP`````Z>'^__^0BT,PC5,!C7L\QT0D$``` -XM``")?"0,)0`"``"#^`$9P/?0(<*-0S2)1"0(B50D!(DT).B:??W_A<`/A2/_ -XM__^+1>R%P'4$@TW0"/9#,0BZ`0````^%T0```(%-T``@(`"+3=")5"0B)1"0,QT0D"`$```")5"0$B1PDZ`6[_?^%P`^% -XM6____XM33(/J`?9',0BX`0```'0#BT<$BTW@B40D'(E4)!C'1"04`````(E, -XM)""+1>R)1"00BT7HB7PD!(D<),=$)`@`````B40D#.C`20``@\0\6UY?7<.- -XM1?")1"0$B1PDZ-F\_?^%P`^%[_[__XM-\(7)#X6&_O__,=+'1>@`````QT7L -XM`````.EZ____D%4QR8GEBT4(BU4,7>DO_O__ZPV0D)"0D)"0D)"0D)"05;D! -XM````B>6+10B+50Q=Z0S^__^0D)"0D)"0D)"0D)!5B>6#[`B+30R+02R%P'0& -XM]D`&('4JA<#'04``````=`KV0`8@=`2#:3@!BT%`BU$\B4%(,<")443)PY"- -XM="8`BU$XA=)USXM%"(D$).C^A0``N`$```#)PXVT)@````!5B>6#[`B+30R+ -XM03B%P'10]D$Q"+H!````=34YPG(HQT%``````(M!+(7`=`KV0`8@=`2#:3@! -XMBT%`BU$\B4%(,<")443)PRG0B4%`Z]B)]HM1!#G"<\CK[HVT)@````"+10B) -XM!"3HA84``+@!````R<.-M"8`````C;PG`````%6)Y5.#[!2+70SV0S$(='"+ -XM0P2#^`%V:(/H`8E#!(E$)`B+0S2)1"0$BT4(B00DZ,SR``")P8E#0(M#+(7` -XM=`KV0`8@#X66````BU,X.=%V1H7`#X2D````]D`&((UV``^$EP```(U!_XE# -XM0(M#-(E32(E#1#'`ZS:-M"8`````BT,LA-M"8`````A!W5`^$*`$``(M+.(/N`8E+2(E[1`^$D0```(M#/#E#-',+ -XMBU-`A=(/A(4```"#:T`!,<#I0____XM#0(M3/(E#2#'`B5-$Z3#___^+4SR+ -XM>S2)5>#KIXM30(M+.(G(B=&)4SB+5>")>SR)0T")UXE3-.N8@TLP"+X!```` -XMZ37___^+4T"+2S@YR@^$KP```#G1#X9T____Z\.%T@^$.?___Y"-="8`Z>O^ -XM__\QP.G)_O__@^@!B4,\C77PB40D!(M%W(ET)!#'1"0,`````,=$)`@!```` -XMB00DZ'BT_?^%P`^%D/[__XM%\(ET)`C'1?``````@_@!C5#_&<#WT"'"BT,T -XMB5-`BU7EO_?__ZPV0 -XMD)"0D)"0D)"0D)"058GE@^P8BU4,QT0D#`$```"-0C2)1"0(#[9"`HE$)`2+ -XM10B)!"3H9=C]_\G#D)"058GE5U93@^Q,BTT,C47HBW4(B40D$(U5Y(U%[(E$ -XM)`R)5"0(BT$TB30DB40D!.B]MOW_A7UW#BT4,BUWLBT@X.=ESRXG*`U7D -XM#[8"#[[P/#Z)=<`/A`0"``!_)SPI#X0M`@``/#P/A!0"```\*(UV``^$^`$` -XM`(/!`8/"`3G9=-(E.0#G##X.C`0``BW4,BU8L -XMA=(/A+P!``#V0@8@#X2R`0``BT8XB5Y$B49(A=(/A*````#V0@8@#X26```` -XMBW4,B=J+1CPYPP^$A@````^#CP$``(GS@\,TBTL$AP/A-\````/M@(\ -XM(`^$O0```#P)#X2U````,<")]NDY_O__#[9%W#M%P'07.46\#X7*_O__@^X! -XM#X7!_O__Z?'^__^#Q@'IM/[__SQ[D'09/'T/A4S^__^[\"H'",=%O'L```#I -XM:_[__[L`+`<(QT6\?0```.E:_O__N_`J!PC'1;Q;````Z4G^__^[\"H'",=% -XMO#P```#I./[__[L`+`<(QT6\*0```.DG_O__NP`L!PC'1;P^````Z1;^__^[ -XM\"H'",=%O"@```#I!?[__XM%[(/"`8E5Y(/H`87`B47L#X4A____BTT,,<"# -XM23`(Z6C]__\/A(8```"+50R)2DB)0D2+30R+42SI9/[__\=$)`@,!0D(Z2G] -XM__^+=0R)3DB)1D3I2?[__XM=#(/#/.EK_O__BUT,@\,TZ7G^__^-1?#'1?`` -XM````B40D"(L#B40D!(M%"(D$).A06/[_A<`/A?'\__^+0P0[1?`/AZC^__^+ -XM30R+432+03SI*O[__SM..`^&R+@'P!``"%P'0(B00DZ-@Z_?^%_W03BT7HB7PD!(D< -XM)(E$)`CHD3G]_XM%$(7`=!R+51"-1@&)1"0(B50D!(M5\(T$$XD$).AN.?W_ -XMBT7LB9A\`0``,<#I-(7`=`;V0`8@=52)V(/X -XM`78IBT4(C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2)!"3HN*[]_X7`=$2[ -XM`0```(E>/#'`QT9``````,=&2`````")7D2#Q#Q;7E]=PY"+1CB%P`^%50$` -XM`(/[`0^$T0$``(-.,`B-0_^)1C3KCL=%W`(```#V1C$(#X4_`0``BT7PA<`/ -XMA70!``#'1=@!````BT4(@^L!C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2) -XM!"3H):[]_X7`#X5I____BTW8A0'K$HUV``^V0@*#P@*$P`^$ -XM5/___XGY.,AUZP^V0@$\(`^$``$``(M-U#I!`G77@VW<`771D.G,_O__@WW8 -XM`8VT)@````!T!>AM,_W_BT7PA<`/A!'___^)1"0$BT7LB00DZ!]X``"%P`^% -XM^O[__X-MW`$/A([^___'1=@`````Z>3^__^0@^@!B48XB=CI0?[__XUV`(M& -XM!`'`B47`"#X7V_O__D(UT)@#I]/[__XUT)@"-O"<`````58GE5U93 -XM@^P\BWT,BTB) -XM3=2)1"00B50D#,=$)`@`````B5PD!(M%"(D$).C"J_W_A@8,?W_C70F`(M-\(7)#X05____B4PD -XM!(M%Z(D$).C&=0``A<`/A6W___^#;=@!='.+3?#'1=``````Z>G^__^+3?"# -XM^0$/AMW^__^+50B+@IP```"+@'P!``")1

.+ -XM5-U[`^V0@$\(`^$F`$``#I&`G7; -XM@VW8`775BT7UW#@?M``@D(#X7, -XM_O__BTB)!"3H%70``(7`#X2F -XM_?__Z9#]__^#;=@!C70F``^%J?W__^FP_O__D(UT)@"+3?"-<_^#^0$9P(U1 -XM__?0(<(Y5S@/A:+]___'1"0$`````(M%"(D$).AB=@``N`$```#IP?W__X/Y -XM`@^%7_[__^E?_O__N`$```"0C70F`.FD_?__BTWPZ#[;` -XM_R2%,`4)"+DY````BX.<````B$H!B(B9````6UW#N3(```#KY[DS````Z^"Y -XM-````.O9N34```"-="8`Z\ZY-@```.O'N3<```")]NN^N3@```#KMXVT)@`` -XM``!5B>575E.#["R+70R+?0B+0S#VQ"`/A<(```#VQ`B^`0```'0#BW,$C4,! -XMB47PC4-$B47L@^X!@_[_#X2N````BT,P)0`"``"#^`$9TO?2(U7PQT0D%`$` -XM``"+1>S'1"0$`````(E4)`B)/"2)1"00C4,TB40D#.BT%?[_A<````B46TC47LB40D$(U%Z(E$)`S' -XM1"0(`0```(M&-(D\)(E$)`3HTZ7]_X7`#X6A`0``BT7LA<`/A$,!``#'1;@! -XM````]D8Q"'0&BU8$B56XBT8TB48\BT8X@^@!`T6XB49`BU7L@^H!.=`/A[4! -XM``#'1;P`````]D8Q(`^$)@$``(7_#X19`0``BU\0A=L/A$X!``#V@U4(```! -XM#X5!`0``BT7L.4-X#X(@/A$\!``"+ -XM5;2+@D`!``"#^`P/A$\!``"+3;2+5<`#5C@/MH$\`0``BTVXB10DB40D!(E, -XM)`CHR"S]_XM%[(E$)`R+1<")1"0(BT8TB3PDB40D!.AGJ?W_B<.%_W03BT<0 -XMA' -XME`````0```"-77UW#BT7LQT7P`````,=%P`````"%P`^$TO[__XE$)`R-1?") -XM1"0(QT0D!`````")/"3HUTS^_X7`=+F)1<"+1>SIJ/[__XU&-+L!````B40D -XM!(D\).B4<```@\1QT6/:'#`$```$/A$,"``"+AP0!``"- -XM!$#!X`(#1Q"+0#B%P`^5P(3`B=%T+HM=Z`^^$X72>"<[%?P@"0A]'Z$((0D( -XM]D20-@)T$XU!_X-%Z`&%P(G!B47L==*+7>B+1>R)7"0$B3PDB40D#(E$)`CH -XM*&']_X7`B<-T_?_IZ?S__\=$)`@'````,=O'1"0$`````(D\).C$;``` -XMZ1_]__^)7"0$B3PDZ,/#``"%P`^$(____^D\_?__@_@)C78`=60QV^GW_/__ -XM@8^L!`````0``+L!````Z>/\__^!H%0(``#__O__Z:'\__^)1"0,C4-XB40D -XM"(M#=(D\)(E$)`3H"DK^_X7`#X3H_/__B4-TZ;K[__^+GP0!``"%VP^5P.G$ -XM_?__#[9%V(M-M(B!/`$``(M%W(F!0`$``.EC^___D)"0D)"0D)"0D)"0D)"0 -XM58GE5E.#[#"+70R+=0CV0S$(=%R#>P0!=%:-0T#'0T``````B40D"(M#-(DT -XM)(E$)`3HN4C^_X7`#X7"````BT,LA7<.+1?2%P'3)C5#_ -XMBT,LB5-`A7<.- -XM=@"#Q#`QP%M>7<.-M"8`````BT,\B5-(B4-$@\0P,6#[#B)7?2+70R-1>R)1"00C47PB77XBW4(B7W\B40D#,=$)`@` -XM````BT,TB30DB40D!.BVHOW_A6#[`B)'"2)="0$BT@\BW!`B4A$B7!(BT`LA/KV(GVC;PG`````%6X`0```(GE4X/L%(M=#/9#,0AT -XM`XM#!(E$)`B-0SR)1"0$BT4(QT0D#`(```")!"3HJO0``+H!````AR+61"-0P@Y`0^$D`````^V@6P$ -XM``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L#Z_"N@$```"#^`)V`XU0 -XM_HU'/(E4)`C'1"0,`````(E$)`2)#"3HHO,``+H!````AR+61"- -XM0P@Y`0^$D`````^V@6P$``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L -XM#Z_"N@$```"#^`)V`XU0_HU'/(E4)`C'1"0,`P```(E$)`2)#"3HLO(``+H! -XM````AED&O__C70F -XM`(E-#(E5"%WI-/___XUT)@!=Z3JX__^-=@"-O"<`````5;H!````B>6#[`B+ -XM30SV03$(=`.+402+030YPG,4*=")PHE!/(M!0(E11(E!2#'`R<.-032)1"0$ -XMBT4(B00DZ"QE``"X`0```,G#D(UT)@!5,<")Y5.#[!2+70SV0S$(=`:+0P2# -XMZ`&)1"0(C4,\B40D!(M%",=$)`P`````B00DZ+KA``"Z`0```(7`=0F)V.BZ -XM^O__,=*#Q!2)T%M=PU6)Y5.#[!2+70S'1"0,`@```,=$)`@`````C4,\B40D -XM!(M%"(D$).ATX0``N@$```"%P'4)B=CH=/K__S'2@\04B=!;7<.-=@"-O"<` -XM````53'`B>53@^P4BUT,]D,Q"'0&BT,$@^@!B40D"(U#/(E$)`2+10C'1"0, -XM`P```(D$).@:X0``N@$```"%P'4)B=CH&OK__S'2@\04B=!;7<-5B>564X/L -XM((M=#(MU"/9#,0AT+(M#!(DT)(E$)`3H79G]_X7`=#N+0P2)0SR)V.C<^?__ -XM,<"#Q"!;7EW#C78`C47TB40D!(DT).C1F?W_A9_?^%P'0/C78`@\0@N`$```!;7EW#BU7TA=)UM>N!D)"0D)"0 -XMD)"0D)!5B>6#[#B)7?2+70R)??R+?1")=?B+2S2+Q=PXGV==,[4T!VSHGVC;PG`````.NP -XMBU-`A=)UTH/H`8E#/(UU\(E$)`2+10B)="00QT0D#`````#'1"0(`0```(D$ -XM).AKEOW_A6#[#B)7?2)TXE-\(M-#(EU -XM^(G&BT,LB7W\BWT0BW2)1?"!BU0(`````0``QT0D%'T&"0B+AIP```"+@#`!``#' -XM1"0,A08)",=$)`BRN`@(B40D$(M%\(D\)(E$)`3H^AS]_XGYQT0D"`$```#' -XM1"0$0````(D$)(M5#(GPZ!?^__^)P^MFC78`,?^%TL=%\`````!U=,=$)!1] -XM!@D(BX`P`0``QT0D#(4&"0C'1"0(LK@("(E$)!"+1?")/"2)1"0$Z)8<_?^) -XM^<=$)`@!````QT0D!$````")!"2+50R)\.BS_?__A?:)PW0,BT80A_?^#Q"R)V%M>7UW#C47PB50D#(E$)`C'1"0$`````(DT).@T -XM//[_A(E4)`R)1"0(BT-TB30DB40D!.CR._[_AZ`0`` -XM`(GVB50D"(M5##')QT0D!"````#'!"0`````Z*/\___)PY"Z`@```.O9B?:- -XMO"<`````58GE5XG75HG&4X/L3/9",2`/A1D"``#V@$P#```!#X7<`0``BX!$ -XM`P``A<`/E<`\`1G`,=(E````^`6`B$`(@_D"#Y3"@^H!@^+P@\(_B40D#(E4 -XM)`B)?"0$B30DZ"Y7``"%P`^%M@$``(M6>(M".(7`#X2H`0``@_@%#X31`0`` -XMBT((BUX0B8.0````BT(0QX,``0``````!(F#E````(M&$(N`&`$``(7`=0K' -XM@P`!```````%BT9,B47$BT90B47,C47PB40D"(V#@````(E$)`2)-"3H!$3^ -XM_X7`#X4\`0``BX.0````B470BX.4````B47(QX.4`````````(M%\(7`#X75 -XM````BX/@````@_@!#X2B`0``@_@"#X2"`0``BT<\B30DB40D!.C.DOW_A<`/ -XMA#X!``"+1RR%P'0*]D`&(`^%T`$``(N+``$``(M=R(7;#X20`0``BT70@#AZ -XM=5V+7LA@^L!#X2O`0``@\(! -XM#[8*#[[!@_A_=PKV!(7=%`D(!'7?C4'3/`$/AE8"``"`^2L/A$T"``"`^5X/ -XMA$0"``#'1"0(/`8)",=$)`0#````B30DZ-?$_?^-M"8`````BT7$B4=$BT7, -XMB4=(@\1,N`$```!;7E]=PXVT)@````"+@$0#``"-!$#!X`(#1A"+0#B%P`^5 -XMP.D3_O__C70F`+@!````@\1,6UY?7<.-=@")3"0(,7UW#BT9,B4<\BT$``!``B5=$#X0?____BTK^___'1"00#````,=$)`P!````QT0D"#\- -XM"0C'1"0$`````(DT).AMA/W_A<`/A;7^___'1"00#````(M%R(E$)`R+1=#' -XM1"0$`````(DT)(E$)`CH/X3]_X7`#X6'_O__BT<\C5W6+10B+50Q=Z"+5>"X`0```(72#X3N````BT4,]D`Q"`^%40$``,=%W`$```"# -XM[@&-5?"-3>R)5"00B4PD#,=$)`@`````B70D!(M="(D<).B`C?W_A<`/A>T` -XM``"+3?"%R73)BUWLB5W8#[8#/'L/A+0````\#`^$K````#PN=:R#^0&0=J:+ -XM5>`/M@*$P'2L+#[9"`H/"`H3`=(B)^SC8=>\/MD(!/"`/A'X` -XM``"+7=@Z0P)UVX-MW`%UU8M%#(EP/,=`0`````"+50R+0CB%P`^%B0```(M" -XM,(-J-`$E#_[__X/(0(E",(-*,`B+70R+0T"+4SR)0T@QP(E31(/$/%M>7UW# -XMBX%0`P``C01`P>`"`T$0BT`XB47@Z>#^__^#;=P!#X7Z_O__ZY"#^0(/A7G_ -XM__^-M"8`````Z77___^+10S'0#P!````QT!``````(M5#(M".(7`#X1W____ -XMBTT,@^@!B4$XZ7____^+50R+4@2)5=SIJ/[__\=$)`0`````BU4(B10DZ(U8 -XM``"#Q#RX`0```%M>7UW#58GE5U93@^P\BT4(]H!8`P```0^$%P(``(G"BX!0 -XM`P``C01`P>`"`T(0BT`XB478!``"+50R+6C2#PP&- -XM5?"-3>R)5"00B4PD#,=$)`@`````B5PD!(M%"(D$).B4B_W_A<`/A?X```"+ -XM3?"%R73)BW7L#[8&/'MT?8M5#(MZ+(7_=!'V1P8@=`L\?71IC;0F`````#P, -XM#X2D````/"YUF(/Y`9!VDHM5W`^V`H3`=(@/ME8!B%7CBU7-U[`^V0@$\('1T.D8"==^#;=@!C78`==:%_W0F]D<&('0@ -XM@^L!D.M_@VW8`0^%./___SQ[B?8/A',!``"+30R+>2R+10R%_XE8/,=`0``` -XM```/A9T```"+10R+4#R)P8M`0(E11(E!2(/$/#'`6UY?7<.#;=@!#X7N_O__ -XMZYJ#^0*0C70F`'6"@VW8`0^%7/___XUT)@#K@(M5#(/K`3E:-`^$[@```(U% -XM\(E$)!#'1"0,`````,=$)`@!````B5PD!(M5"(D4).A9BOW_A -XM_O__D)"0D)"0D)"0D)"058GE5U93@^P\BU4,C7W8BT(TB478BT(XB47R#^`$/ -XMA,T!``"%P`^$I0$``+L!````B7PD!(M-"(D,).C$G/__A<`/A4R# -XM^`(/A.N#@_L"C;8`````=`B%VP^%_O[_ -XM_X/N`8UV``^%\O[__XE\)`2+70B)'"3HNYO__X7`=4*+=>R%]@^%9?___P^V -XM5>@[%?P@"0@/C57___^A""$)"/9$D#8"#X1%____B7PD!(M%"(D$).CMG?__ -XMA<`/A"[___^X`0```(/$/%M>7UW#@_X!#X08____B7PD!(M5"(D4).C`G?__ -XMA7UW##[95Z#L5_"`)"'T,H0@A"0CV1)`V`G47B5PD!(DT -XM).A+F/__AR%P'4K#[9%Z#PI=-T\7739/")TU3PG -XM=-$/MM`[%?P@"0A](*$((0D(]D20-@)T%(E<)`2)-"3HRYK__X7`#X7'_O__ -XMBU78.5R#^`-TY(7`#X6\````#[95Z#L5_"`)"'T,H0@A"0CV1)`V`G7$BT7$@T7, -XM`8E%V(M%R(E%W.F:_O__@/H_#X7?_O__BT70A<`/A(W^__^#;7UW#B5PD!(DT).B:F?__A<`/A#+^___I\?W__XE<)`2)-"3H89;_ -XM_X7`#X7=_?__@WWL`W3FC78`Z0O^__^#Z`$/A5/___^+5=B+1RR)5SR+5=R% -XMP(E70'1B]D`&('1#0!#X0N`0``BX*0`0``BP")@I0!``"+@9P```"+ -XM@)`!``"+0`B)@IP!``"+@9P```"+@)`!``"+0`2)@I@!``"+04")@J`!``"+ -XM042)@J0!``"+03R)@J@!``"+04`Y040/A-4```"+F9P```"-!$"+DXP!``"# -XMZAB--,*+DY`!```YUG90BP*#P`&)0AB+@9P```"+D)`!``"+@(P!``"+0`2) -XM0AR+@9P```"+@)`!``#'0"`!````BX&<````@X"0`0``&(N9G````(N3D`$` -XM`#G6=["+DY`!``"+`H/``8E"&(N!G````(N`D`$``,=`(`$```"+@9P```"+ -XM@)`!``#'0!P`````BX&<````BX"0`0``QD`N`(N!G````(.`D`$``!B+04"# -XMP`&)04")042)03Q;,7<.+F9P```#KDHVV`````(V\)P````!5B>575E.# -XM["R+11"%P`^$"`$``(M`"(E%\(M-%(M]\(7)#X2:````#[X'A<`/B(\```"+ -XM-?P@"0@YQ@^.@0```(L=""$)"(GZ]D2#-@)U&>MP#[X"A(M5&(E""(M-&(M1$(72=)2+31B+00B)5"0(B40D!`'8B00DZ'T* -XM_?_I=____XM%#(7`=12+11C'0!P`````@\0L,575E.)PX/L/(E5U(E-T,#B+5=2+3=B+4@B%R8E5Z`^$80$` -XM``^V$@^^PH7`#XA3`0``BS7\(`D(.?")=>P/C4(!``"+#0@A"0B)3?#V1($V -XM`@^$+@$``(MUZ#';BT78QT7<`````,=%X`````"-!`:)1#@[1>Q],XM-\/9$@38"="F`^@EUTX7;=`?'1>`! -XM````BU70`````=QR)^^L"B#1>0!C0P[*=$[3=QV -XMZHG8BWW)\"M%Z(T4#SG0=&HI1=B)PXM%V"G3B70D!"G>B30DB40D -XM".B*"/W_BU74*5H0*5H8BUWDBTW4@^L!@_O_BU$(=!J+=>2)T(T,%HUT)@#& -XM``F#P`$YR'7VC50:`87_=`V-!#K&`B"#P@$YPG7VBT70QP`!````@\0\6UY? -XM76#[!C'1"0(Y`<)",=$)`0"````B00DZ`*R_?_)PU6)Y5>)QU:) -XMUE.#[#SV10L!B4W8#X1>`0``BT(HA<`/A`L!``"#Z`&)0BB0C70F`(M=V(M& -XM&(M."`^V$X@4`8/``8E&&#'`@\0\6UY?7<.)T0-.$#M.#'8KC48,B40D"(M& -XM"(E,)`R)/"2)1"0$Z"TF_O^%P`^$U0(``(E&"(M5[(M%Z"G"BT8HB57['1>@`````BT7@A``````ZTT\_P^$Q@````^VP(T$0`'``T<0#[:`70$``(E%[(M5[(M%Z#G" -XM#X0)____#X-,_O__*="#1>`!A<")1>@/A/G^__^+1BB%P`^$[O[__X/H`8M6 -XM"(E&*(M%\`^V!`(\"76?C47LB40D$(M&%(E<)`R)5"0$B3PDB40D".@_N``` -XMZYR)1"0,C48,B40D"(M&"(D\)(E$)`3H,R3^_X7`#X3;````BU8@@T80`8E& -XM"(72#X2I_?__Z<+^__^+3@B+5A@/M@01B$01`>F1_?__D,=$)`3_____B3PD -XMZ$!M_?_I-____\=$)`3_````B3PDZ"MM_?_IX_[__XM%W(7`#X0Q_O__,<#& -XM1!`!((/``3M%W'7SZ1W^__^)T`-&"`^V&,8`"8U%Z(E$)!"-1?")1"0,BT84 -XMB3PDB40D"(M&"(E$)`3H>+<``(M6"(M%\(@<`NF*_O__BT7PBU8HBUW@`T8( -XM`U8@`U7@B00DB50D"(T4&(E4)`3HF03]_^G5_?__N`$```#I[?S__\=$)`3_ -XM____B3PDZ(9J_?^+3@B)PNEN_?__C;8`````C;\`````58GE5U:)UE.#[$R) -XM1#B+5`"`T(0BT`XB47,BUX8,)^"G0`47@.5X8=]^+5>`QVSE5 -XMU,=%V`````!V'8G3B=`QT@'[]_>+1>`ITSE=U`^#O````(M=U"G#BT7-=@"+1BB+?C2%P(E^$'1#@R'WBPLYT715 -XMBT,$B4$$BT,$B0B)'"3H=S/]_\=$)`@!````BT84@\`!B40D!(M%\(D$).@: -XMQ0``@_@!&=LA\^N%D(M&((7`=;:+1@C&!#@@@T8@`8-&$`&#"0CKI8M#!(E! -XM!(L+ZZ>-="8`C;PG`````%6)Y5=64X/L7(E%U(M%#(E5T(E-S,<``````(M" -XM&(M2)#G0B578#X1,`0``BUW0C4C_BW,(`"+7<"#Z0$I -XM^X/'`3M-V'12BW7`B?CWV`^V%#`/ML([1>!]#8MUR/=$AC0`!0``=3*`^E]T -XM+3M%X'W&BU7(]D2"-@)TO.L7UW#B7PD -XM!(D<).C2(/[_A<`/A+<```"+11#'``$```"#Q%PQP%M>7UW#QT0D$`$```"+ -XM0R")1"0,BT,7UW#BUW(]T2#-``%```/A%+^__^A_"`) -XM"+\!````BUW`B47<@^D!@^L!@\B+2AB+0QR#Z0&) -XMR@-3"(E%Y*$((0D(B7WLB47PZPLY2R1T)(/J`8/I`0^^`H7`>`\[1>Q]"HM] -XM\/9$AS8"=32#Q@$[3>1UUXET)`2)%"3H%Q_^_X7`=0Z+?>B##P2#Q!Q;7E]= -XMPXM%Z(,@^X/$'%M>7UW#@\(!.4WD=,PY2R1UU^O%D(VT)@````!5B>57B==6 -XM4X/L'(M"&`-""`^V$(A5\\8``(M'&(/H`8G#`U\(@#L8=#"+3QPYP70IBUNBT<8BU<(#[9-\X@,`HM' -XM""EW&(M7&"EW$(A<`O^+5RB%TG4HBU<@A=)TD(M'&`-'"`-'*(E4)`B-%#") -XM5"0$B00DZ)'\_/_I;____XM'&`-'"(E4)`B-%#")5"0$B00DZ'/\_/_KO8VV -XM`````(V\)P````!5B>575HG&4X/L#(NXG````(-X-`&)^0^$TP```(N7J`$` -XM`(E0/(N'I`$``(E&1(N'H`$``#M&1(E&0`^$Y````#G0B=-R,HM&$(E<)`2# -XMPP''1"0(`````(DT)/^0D`@``(M&$(DT)/^0;`@``#E>0'/4BXZ<````BT8\ -XMBY&,`0``C01`@^H8C03"B8&0`0``]H84`@```75RBXX,`@``AL`0`````` -XM`(/$#%M>7UW#BX8,`@``C01`P>`"`T80BU@XA=L/E,#K@(.OD`$``!CI8/__ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y5=64X'LO`(``(M%"(M5"(M-"(MU%(M`$(F% -XMB/W__XN2G````(F5?/W__X&)K`0```````B#P7B+70B)C8S]__^+6W@YRXF= -XM8/W__P^$6A$``#D+#X1;"```BUT8@\,@BX6,_?__B00DZ$`M_?^)7"0,BWT8 -XMB70D!(E\)`B+10B)!"3HIB[]_X7`B85@_?__#X3H!P``BU4(BXU@_?__BT)X -XMB0&+G8S]__^)600Y6GP/A$$/``"+=0B+O6#]__^+1GB)>`2+E6#]__^+10B) -XM4'B+C6#]___'03@$````BUT(BT-,B4$4BU-0B5$8BUT8A=L/A#]``"%P`^%3P8``(M%**@0=$B+ -XM52"%TG1!B[U@_?__QT0D#`````#'1"0(`````(E\)!"+12")1"0$BU4(B10D -XMZ"7M__^%P`^%#08``(M''(E'&.L9D(UT)@"H`@^%"`8``(N=8/W__XM#&(E# -XM)/9%*D!T(8NU8/W__P^V31R+1AB+5@B(#`*#P`A`!@T8D`8E&&/9%*`@/ -XMA6(&``#V12M`QX6@_?__`````'0OBWT(]H>0!````0^%>08``(M5"(N"B`0` -XM`(7`#X2"!@``BTT(BTDX*<&)C:#]__^+O8C]___'1=P`````]H=4"````0^$ -XMB@4``/9%*@3'A9#]__\"````#X1V!0``BU4H]\(````"=!:)T"7__W__B44H -XMB<+'A9#]__\`````B="+30@E````"(/X`1G`@>(```0`]]"#X`.#^@&+E6#] -XM__^(A:C]__\9P/?0@^`$B47@BT(4B4%,BT(8B4%0QT0D!`$```")#"3H?J0` -XM`(7`#X76!```BUT,]D,Q(`^$QP@``,>%F/W__P````#'A%I/W__P````#'A=3]__\`````QX64_?__`````,>%P/W__P`` -XM``#'A)O83]__^+M=3]__^%]G0:BY6$_?__@'H,(`^$ -XM!Q\``,>%U/W__P````"+C83]___V010(#X68"P``@[V8_?__`@^4PH.]F/W_ -XM_P0/E,&$TG4$A,ET3(M%X(/@[_9%*@2)1>!T!H/(!(E%X(32=!6+G83]__^+ -XM0Q"#Z!"#^`$/AM8B``"$R700BX6$_?__@W@0#`^%8R,``,>%F/W__P````"# -XMO%`D(`74@BY5@_?__BT4(Z)7X -XM__^%P`^%$`<``,>%R/W__P````"+G83]__^+2Q"#^10/AD@'``#V12A`#X32 -XM"@``BX6$_?__#[90##L5_"`)"`^-:0T``*$((0D(]D20-0(/A%D-``"#^0H/ -XMA%`-``"#^0\/A$<-``#'1"0(<`@)",=$)`0"````BU4(B10DZ+2?_?_V12L" -XM#X65#```BXV@_?__A%S/W__P````"+A7S]__^+@%P!``"% -XMP`^$@@P``(M-"/:!KP0``!!U*HN%Q/W__X7`=2#'1"0(`````,=$)`0````` -XMB0PDZ'1X``"%P`^%+`(``(N%H/W__X7`=1"+70B+0Q"+@!@!``"%P'4UB[5@ -XM_?__BWT(BT84B4=,BT88B4=0,<"#O:#]__\`B3PD#Y7`B40D!.B%H0``A<`/ -XMA=T!```/MH6H_?__J`*)A5S^__\/A/T```"+50B#>C0!#X3I````BXU@_?__ -XMBTD8@_D!B8TX_O__#X;<&P``B[5@_?__BUX(B[4X_O__#[9$'O\\7(B%/_[_ -XM_P^$#AL``(M5"/:"?`,```$/A+<:``"+@G0#``"-!$#!X`(#0A"+4#@/OH4_ -XM_O__B10DB40D!.B`\/S_A"(MV&(FU./[__P^V1![_B(4__O__#[:5 -XM/_[__SH3#X6O&```@[TX_O__`G0+@'P>_EP/A)L8``"+30R+432+03B)442) -XM04B`I:C]___]]D4K`@^%4OS__^D=!0``#[:%#/___SGP#X0N&@``.<,/A0(7 -XM``"#K2#^__\!#X7U%@``BY7\_O__.Y5X_O__#X(&_O__#X6;)@``BX4`____ -XM.X5\_O__#X+N_?__BTT(B5%,B4%0QT0D!`$```")#"3H]9\``(7`=5&+70CV -XM@UP"```!#X1-)@``BX-4`@``C01`P>`"`T,0:T`X9,=$)`Q`````B40D",=$ -XM)`0`````BWT(B3PDZ/]@_?^%P`^$A_W__XVT)@````"X`0```('$O`(``%M> -XM7UW#BXU@_?__BT$8QT$D`````(E!'.GL^?__QX60_?__`````.E[^O__BUT8 -XMB[U@_?__@\,@.5\,#X*6]___BY5@_?__A?;'0B@`````QT(D`````,="(``` -XM``#'0AP`````#X3#"```BTT8B4H0B4PD"(ET)`2+0@B)!"3H%?+\_^F_]___ -XMBT48B[U@_?__*=")1R#I]_?__XN=8/W__XM#"(M3&,8$$""#0Q`!@T,@`<=$ -XM)`@#````BT,4B40D!(MU"(DT).CGM0``Z6?Y__^+AX@$``"-!$#!X`(#1Q"+ -XM0#B%P`^%?OG__XM="/:#A`0```$/A!((``"+@WP$``"-!$#!X`(#0Q"+0#B) -XMA:#]___I7_G__XN]8/W__XM'&`-'"(T,&(M%"/:`#`$```$/A/4=``")PHN` -XM!`$``(T$0,'@`@-"$(M0.(72#Y7`A,!T08N%G/W__X7`=##O93]__\"#X15(```B70D -XM$(N-8/W__XM!&(E,)`C'1"0$`````(E$)`R+70B)'"3HPN3__X7`#X5-`0`` -XMQX64_?__`````(M&'(E&&(N%T/W__X7`#X3(````BX5@_O__A$(N-8/[__P%.&(N=,/[__XE>*(N]+/[__XE^(,>%T/W_ -XM_P````"+?BB%_W4LBUX@A=MU)8M&$(/``3M&#`^'("```(--*`B+5@B+1AC& -XM!`(@@T8@`8-&$`''1"0(`@```(M&%(E$)`2+50B)%"3H-[,``(N-8/[__XFU -XM8/W__XF--/[__X7`#X1S^?__BU4(BT)XBU@4ZPF)]H7;=!J#ZP&)7"0$BTT( -XMB0PDZ$IF_?^%P'3FA=MU!;L!````BW4(N`$```"#CJP$``!`B5Y,QT90```` -XM`('$O`(``%M>7UW#_R2-J`@)"(UUM,>%F/W__P````#'A%I/W__P````#'A=3]__\`````B;6$_?__QX64_?__`````,>% -XMP/W__P````#'A`7`$```````#'@%@!````````QX!4`0`` -XM`````(E<)`2+50B)%"3HM(4``,=$)`0!````BTT(B0PDZ(&:``#'A<3]__\` -XM````B[V$_?__@W\("P^&UP,``(N=A/W__XE<)`2+=0B)-"3HDE;]_X.]D/W_ -XM_P(/A!,+``#V1>`$=`KV12H"#X7-!0``]D4H")!T$8N]8/W__XM/((7)#X7P -XM!```]D4K`0^$R@```(N%8/W__XMP*(7V#X3^````BU4(,=N+2GB)RNL2BT(0 -XM`T(LBQ(!PSF5C/W__W03.Y5@_?__=>:+O6#]__^+1QCKX3E=&`^&C````(U% -XMT,=$)!``````B40D#,=$)`@#````BT$4B40D!(M%"(D$).AO8OW_A(F%$/[__P^% -XMCP0``,=%T`````"+0Q")1"0,BT,(B40D"(M#%(E$)`2+30B)#"3H.F;]_X7` -XM#X6U_/__BU70A=(/A3,0``"+`$=!?V12H"=!&+E6#]__^-3>"+10CH;NS__XN%D/W__X7`="R+O83]__\/ -XMMD\,#[;1.Q7\(`D(#XS)`0``@/E?QX60_?__`0````^$R0$``(M%*(G9B00D -XMBY5@_?__BT4(Z&+B__^%P`^%/?O__X.]F/W__P,/A``)``"+O>[__X-O$`&#;R`!Z0/[__^)P2G1Z4KZ___'1"0(!P```,=$)`0````` -XMBTT(B0PDZ`PI``#II?K__XET)`2+50B)%"3H"(```(7`#X2G^?__Z3OU__^+ -XM10B!B*P$````!```N`$```#I*?7__XN-I/W__X7)#X5E!P``BT4HJ0````(/ -XMA5<'``"+O83]__^`?PP`#X5'!P``BY5\_?__BY)$`0``A=(/A(_^__\E__]_ -XM_PT````"B44HQX60_?__`````.E9\/__BY5@_?__C4W@BT4(Z#?I___I'?K_ -XM_XM%"(U-T(G:Z#7=___I9OO__XE$)`R)T(/`#(E$)`B+0@B)1"0$BTT(B0PD -XMZ.$%_O^%P`^$'/C__XN=8/W__XE#".G+_?__B[5@_?__BT88.T8<#X<(\?__ -XM]D4H$`^$_O#__\>%E/W__P,```#I[_#___9%*00/A.7P__^+E6#]__^Y`0`` -XM`(M%".ACXO__A<`/A;[W___IM?S___9%*!")]@^$N?#__XN]8/W__XM?&(7; -XM#X0/\?__@[V4_?__`0^$LA,```^#.A$``(NU8/W__XM&'(7`#X2$\/__`T8D -XM.<,/AWGP__^+10@QR8GRZ/[A___IS_#__XN=8/W__XM#&#M#'`^'5O#___9% -XM*!`/A$SP___'A93]__\!````Z3WP__^+O6#]__^+7QB%VXG9#X3?"@``BX5@ -XM_?__.4@D#X.D!0``BY5@_?__BT("-7PS'A9C]__\#````@\@0@^#[B47@ -XMZ8#Z__^+C6#]__^+41B%T@^$MPD``(N=8/W__SM3)`^&4`0``(NU8/W__XM& -XM'(7`=`8YPHG!=Q"+O6#]__^+3R3'1QP`````BY5@_?__BT(H`T(8*E!____B[U@_?__BT<8BU%S/W__P$```#I&>[__XM%*&:%P`^)#>[__X-] -XM)`$/AA\5```E__]__PT````"@VTD`:@!B44H#X7A%```J0````%T&HNU8/W_ -XM_XM&*,=&*`````")1B"!92C____^QX60_?__`````,>%I/W__P````#IDNS_ -XM_XNU-/[__XFU8/[__XM5*/;&"`^$F@4``('B```"``^%Z0H``(M5"/:"KP0` -XM``$/A?0-``"+C6#]__^+01@[021W!\=!.`(```#VA:C]__\"#X3^!P``BYU@ -XM_?__BT,D@\`!.4,8#X+I!P``QT,X!0```(NU8/[__XFU-/[__^G,]?__QX7( -XM_?__`0```.GZ]___BY5@_?__BT4(Z('E__^%P`^%_//__\>%R/W__P````#I -XMV_C__\=$)`@#````BT,4B3PDB40D!.CSI@``A<`/A'KW___IR?/__XVV```` -XM`(G(@\`,B50D#(E$)`B+00B)1"0$BW4(B30DZ&$!_O^%P`^$^>___XN]8/W_ -XM_XE'"(M%T.GSZ/__BXU@_?__BT74`T$(B50D"(/``8E$)`0!V(D$).AKXOS_ -XMZ>+H__^-!!.%VXE%U`^$,^G__XGPC1P>Q@`@@\`!.=AU]ND?Z?__B[6$_?__ -XMC5X,Z:3W__^+52CWP@````(/A=[T__^+G8C]___V@U0(```!#X3+]/__BYV$ -XM_?__C47<@>(```(`B40D"(U%V(E$)`2)%"2+E6#]__^+10B#PPR)V>@@X?__ -XMA<`/A=OR__^+1=B%P`^$B/3___9%*H`/A#GL__^+M:3]__\IQHGP@^@!B86D -XM_?__Z2'L__^+52CWP@````(/A=/V__^+A8C]___V@%0(```!#X3`]O__C47< -XM@>(```(`B40D"(U%V(G9B40D!(D4)(N58/W__XM%".BBX/__A<`/A5WR__^+ -XM1=B%P`^$AO;___9%*H`/A+OK__^+E:3]__\IPHG0@^@!B86D_?__Z:/K__^+ -XMA6#]__^#:!@!@T`H`>GM]O__C47DB40D!(M5"(D4).C(CP``A<`/A0/R__^+ -XMC:#]__\[3>0/A_#V__^+72B+M6#]__^+O6#]__^A""$)"(F=%/[__XMV&(GQ -XM@^D!B;4<_O__B!4Y\'T1B[T8_O__]D2'-@(/A>,.``"+O6#]__\Y -XM3QQUQ,=%V`````#I9_;___9%*P(/A=3J__^+10CH5MC__^G'ZO__B[V8_?__ -XMA?\/A?$```"+32CVQ0$/A)($``"+70@/MI-4`0``@^(!#X2&"```BX-,`0`` -XMC01`P>`"`T,0BW`XA?8/E<"$P`^$8`0``(32#X1B#```BWT(BX=,`0``C01` -XMP>`"`T<0BT`XBYV$_?__#[X`#[93##';.=`/E,.!X0```0`/A!P$``"+=0@/ -XMMI;``0``@^(!#X0$"```BX:X`0``C01`P>`"`T80BT`XA<`/E<"$P`^$Z@,` -XM`(32#X3E"P``BU4(BX*X`0``C01`P>`"`T(0BT`XB[6$_?__#[X`#[96##G0 -XM#Y3`#[;0@^L!#X1A!@``@^H!#X3[!P``BY6$_?__]D(4`0^$AP,``(.%P/W_ -XM_P&!O<#]__\``0``#X^@!P``]D4J@`^$$NC__XN=I/W__XNU?/W__X/#`6O# -XM'#N&2`$```^'4PD``(NUA/W__XN%?/W__VN5I/W__QR+B$0!``"+!HD$"HM& -XM!(E$"@2+1@B)1`H(BT8,B40*#(M&$(E$"A"+1A2)1`H4BT88B40*&(F=I/W_ -XM_^FAY___QT0D!/____^+10B)!"3HK4;]_^GAY/__A<`/A$0%```YT`^&(/[_ -XM_XU0_XN%8/W__XE0&`^VC:C]__^#X0)T#8N=8/W__XM#",8$$""+M6#]__^+ -XM1AR#1B@!.488C__^DR^?__QT0D!/____^+30B)#"3H -XM.T3]_XG!Z>?D__^)1"0,B="#P`R)1"0(BT((B40D!(M-"(D,).C%_/W_A<`/ -XMA`#O__^+G6#]__^)0PCI"/3__X.]D/W__P(/A(\%``"+G9#]__^%VP^%:P0` -XM`/9%X`1T"O9%*@(/A04*``#V12@(=!6+G6#]__^+2R"%R70(@VL0`8-K(`&+ -XMM6#]__^+1A")1C2+1AB)1C")1A#'1"0(`P```(M&%(E$)`2+?0B)/"3HFJ$` -XM`(7`#X5U[O__BT8@QT8L`````(M>*/9%*P&)A9S]__\/A-KK__^%VP^$TNO_ -XM_XM.&`-."`^^$872#XA`[/__.17\(`D(?S+I,^S__XN58/W__X/!`8-"+`&# -XMZP$/A,4)```/OA&%T@^($NS__SL5_"`)"`^-!NS__Z$((0D(]D20-@)UQ^GU -XMZ___D(NU8/W__XM&%(E#3(M&&(E#4,=$)`0!````B1PDZ,Z)``"%P`^%)NK_ -XM_XV%>/[__\=$)`P#````QT0D"`````")1"0$B1PDZ)2;``"%P`^%_.G__XM& -XM%(V]_/[__XF%_/[__XM&&(/H`8F%`/___XE\)`2)'"3H!6?__X7`#X7-Z?__ -XM#[:%#/___S';QX4@_O__`0```#PI#[;P#Y7#@^L!@^.MB(4G_O__@\-[C97\ -XM_O__B50D!(M-"(D,).B^9/__A<`/A8;I__^+A1#___^%P`^$O.C__X/X`G0% -XM@_@$=%F/W__P(```#I,>;__\>% -XMP/W__P````#I@?S__S'2Z4'\__\QV^G*^___BT4(@:"L!```____]^E<\O__ -XMBX5@_?__BW`DBT@8QT`<`````.F#]?__QT0D"`,```"+0Q2)1"0$BW4(B30D -XMZ'J?``"%P`^%5>S__^FF[___BXU@_O__B8TT_O__Z>KM__^-12B)^8D$)(N5 -XMC/W__XM%".B6V?__A<`/A"'L__^+2!B)A6#]___I]?3__XU%*(D$)(N5C/W_ -XM_XM%".ALV?__A<`/A/?K__^+4!B)A6#]___I'_;__XM]"(NU8/W__XN'G``` -XM`(M>%&:!B,@!``"``(GX@:>L!```____Y^A:WO__A<`/A1+H___VA5S^__\! -XM#X1W!0``BT4,BU`TBT`XB95X_O__B85\_O__N$````"+O6#]__^+5PB`.B\/ -XMA&D(``")1"08QT0D%`````"+C6#]__^+01B#Z`&)1"00C4(!B40D#(M%#(/` -XM1(E$)`B-A7C^__^)1"0$BW4(B30DZ`?-_?^%P`^4P(3`#X3P!```BWT,BU4( -XMBT=$B4),BT=(B4)0@*6H_?___HM"$(NX&`$``(7_#X2N"@``BT4(Z`C-__^% -XMP`^%4.?__XM-"(N!G````&:!H,@!``!__XN!G````(&)K`0``````!B+M6#] -XM__^+@)`!``"+`(E&%(N!G````(N`D`$``#D8#X0^YO__QT0D#`````#'1"0( -XM`````(E$)`2)#"3HO4L``(7`#X7EYO__BWT(BT<0QT0D!`````")/"3_D)@( -XM``#I_N7__\>%D/W__P$```#IAOO__XM-"(N1=`,``.E-Y?__C44HB00DBXU@ -XM_?__BY6,_?__BT4(Z*+7__^%P(F%8/W__P^%FN/__^DBZO__@X4@_O__`>G0 -XM_/__@_X"#X2?Y?__@'P>_EP/A93E___IV>3__X72=!*+O6#]__^+1Q@[1R0/ -XMA8GY__^+A6#]___'0#@!````Z8#K__^H!`^%NP,```^VE:C]__^+A6#]__^# -XMX@*+2!B)E4#^__\YS@^"_0,```^VA:C]__^#X`*)A4#^___I>O/__\=$)`@# -XM````B[U@_?__BT<4B40D!(M%"(D$).B4G```A<`/A6_I___I^O3__XM=#(M3 -XM-(M#.(E31(E#2.GHY/__]\(````"#X7>_O__B[V(_?__]H=4"````0^$R_[_ -XM_XN=A/W__XU%W('B```"`(E$)`B-1=B)1"0$B10DBY5@_?__BT4(@\,,B=GH -XM1-?__X7`#X7_Z/__BT78A<`/A(C^__^+E6#^___V12J`B94T_O__#X11XO__ -XMBXVD_?__*<&)R(/H`8F%I/W__^DYXO__C78`QX74_?__`````.DGXO__BWT( -XMBX>X`0``A<`/E<#I`/C__XMU"(N>3`$``(7;#Y7`Z7[W___'1"0$`0```(M- -XM"(D,).@X0/W_A<`/A2,'``#V12L"QX7`_?__``````^%9^[__^G-X?__BY5@ -XM_?__BUH8QX7<_?__`````,>%Q/W__P````"#^P$/A,H&``"+M6#]__^+/?P@ -XM"0BA""$)"(MV"(F]9/W__XF%V/W__\>%6/[__P````"-3![_B;5T_O__ZP@Y -XM1R1T0(/I`0^^$8G8*X58_O__@^@!A=)X&3N59/W__WT1B[78_?__]D26-@(/ -XMA9,'``"+O6#]__^#A5C^__\!.4<<=;N)RRN==/[__XN58/W__XM"$(/``3M" -XM#'8SB40D#(G0@\`,B40D"(N-=/[__XE,)`2+=0B)-"3H._7]_X7`#X1VY___ -XMB[U@_?__B4<(BX5@_?__`U@(B9UP_O__`YU8_O__B9UL_O__#[8SQ@,JC9UX -XM_O__QT0D&`````#'1"04`````,=$)!``````QT0D#`````#'1"0(`````,=$ -XM)`0`````B1PDZ!M.__^)7"0$BU4(B10DZ!Q#_O^%P`^%]^;__XN%6/[__X/` -XM`8E$)`R+C7#^__^)7"0$B4PD"(M="(D<).A^4?[_A<`/A#0'``"+E6S^__^) -XM\(@"Z2W@__^-M"8`````B40D#(GP!4@!``")1"0(BX9$`0``B40D!(M]"(D\ -XM).A,]/W_A<`/A(?F__^)AD0!``#I=O;__\=$)!`$````QT0D#`$```#'1"0( -XME@@)",=$)`0`````B10DZ)%`_?_IW_'__X.]E/W__P,/A'4#``#H#M'\_X"- -XMJ/W__P'I+OO__XMU#(M&2(M61(F%?/[__[A(````B95X_O__Z83Z__^-4?^+ -XMC6#]__^#02@!B5$8#[:=J/W__X/C`HF=0/[__W0'BT$(Q@00((N]8/W__XM/ -XM&(M'"`^^5`'_A=(/B!S\__\[%?P@"0@/C1#\__^A""$)"/9$D#8"#X4GW___ -XMZ?O[__^+E6#]__^+0@@/MEP!_P^^TX72>!P[%?P@"0A]%*$((0D(N0$```#W -XM1)`T``4``'4(,"+10CHCM7__^GE]?__BTT(BX&X -XM`0``Z2+T__^+50B+@DP!``#II?/__XNU8/W__X-N&`B@!B[V$_?__QX68 -XM_?__`````(U?#.D/Z?__BUT(BX,$`0``A<`/E<#I$>+__XNUG/W__X7V#X1( -XMXO__#[X1A=(/B#_B__\Y%?P@"0A_-NDRXO__B[5@_?__@\$!@T8L`8.MG/W_ -XM_P$/A!;B__\/OA&%T@^(#>+__SL5_"`)"`^-`>+__Z$((0D(]D20-@)UP^GP -XMX?__C5@,QX68_?__`````.F"Z/__BX5@_?__BU`%:/___P````")5"0, -XMB40D",=$)`0`````BWT(B3PDZ#[Q_?^%P(G"#X1WX___B85D____BT8%E/W__P(```"+7AB)A6S___^)A7C___^+ -XMC6#]__^+00C&1`/_((M!*`-!&"M!),=!'`````")02B+022)01CIAMS__XE$ -XM)!C'1"04`````(M'&(/H`8E$)!"-0@&)1"0,BT4,@\!$B40D"(V%>/[__XE$ -XM)`2+10B)!"3H1,G]_X7`#Y3`Z9CW__^+E6#]__^+0AR%P`^$R-O__P-")(/` -XM`3G##X>ZV___QX64_?__`````.E@____]H44_O__"(U"`8F%*/[__P^$WP$` -XM`(N%8/W__XN]8/[__XM8((/K`8F=+/[__XMP*"F]'/[__XN='/[__XFU,/[_ -XM_XE8&(NU8/W__XM&$(/``2M&("M&*,=&(`$````I^(E&$(N%8/W__\=`*``` -XM```/OAJ%VWAP.1W\(`D(?FBA""$)"/9$F#8"=%R+G6#]__^#:Q@!@VL0`3M+ -XM''1)B[5@_?__B=,[3B1U-.LZ.Q7\(`D(?3*A""$)"/9$D#8"=":+O6#]__^# -XMZ0&#;Q@!@V\0`3E/''00@^L!.4\D=`@/OE/_A=)YQHN%A/W__\=%V`$````/ -XMME`,.Q7\(`D(?26A""$)"/9$D#8"=!G'A=#]__\!````QX74_?__`0```.GA -XM[/__QX70_?__`0```.G2[/__BTH(,-O'A5C^__\`````B8UT_O__Z9_Y___' -XM1"0(,`@)",=$)`0#````BUT(B1PDZ%)Z_?_IO?C__XER>.EWW___B70D$(N% -XM>/___\=$)`0`````B3PDB40D#(V%7/___XE$)`CH;<3__X7`#X7XX/__A?\/ -XMA(P#``"+5Q"%T@^$@0,``(N%9/___SM"=`^$60,``(D$).C_T/S_QX64_?__ -XM`````.E\W___#[:5J/W__X/B`HF50/[__^F-ZO__B[U@_?__BX5@_?__BYU@ -XM_O__B[5@_?__BW\@B;TL_O__BT`H*9T<_O__B[T<_O__B84P_O__B7X8BX4L -XM_O__QT8@`````/?8*T8H*=@!1A#I&O[__\=$)`0`````B10DZ$)\``"%P`^$ -XM.O7__^F5W/__C5D!*YUT_O__Z7GX__^)1"0,C48,B40D"(M&"(E$)`2+10B) -XM!"3HRNW]_X7`#X0%X/__B48(Z;/?__^+G33^___'A:3]__\`````QX60_?__ -XM`````(F=8/[__^E`Z___B[U@_?__BT<8.T'__XN58/W__XM")(/``3E"&`^"3.'__\=".`4```#I0.'__XN-\/[__XGP -XMBYWL_O__BY5L_O__A#]__^)G03^__^(`G4BBX7<_?__A<`/A=38__^+ -XM30B+01")#"3_D&0(``#IP-C__X/I`0^$_P$``(M5"(N-!/[__XM2$(F5`/[_ -XM_XL!BP")A4C^___'1"0$+P```(D$).@IR_S_A<`/A+#]__\KA4C^ -XM__^#ZP&#P`&%VXF%[/W__XF=#]__\QVX/J`HF5:/W__^LDC70F`#N=:/W__W0]BXT$_O__B[7L_?__BT29 -XM"(/#`3MP"'<;B[WL_?__BS"+C>S]___\.?^+O4C^___SIG3%QX7L_?__```` -XM`(N%X/W__XN-!/[__\>%3/[__P8```"%P`^.6`0``(NUX/W__XF-5/[__\>% -XM:/[__P````"+E>S]__\#E4C^__\/M@*$P'1XB=/'A?3]__\`````ZR:+50@/ -XMML"-!$`!P`-"$`^V@%T!```!A?3]__\/MD,!@\,!A,!T,#S_==;'1"0$_P`` -XM`(M-"(D,).CY-/W_Z]:)="0$BW4(B30DZ.@R_?_IY?#__XUV`(N=]/W__SF= -XM:/[__W,&B9UH_O__@^X!#X2"`P``B[U4_O__BT<$@\<$BP")O53^__^)A4C^ -XM___I3?___XMU"&N&5`(``&3IM]G__XN%`/___^ELV?__@:)4"```__[__\>% -XME/W__P````#I(=S__XN%9/___^F#_/__BX7@_?__@^@!B85P_?__Z;W^__^+ -XMA>S^__^+`(L`B85$_O__B00DZ`[._/\YA5C^__^)PP^$P````(N%6/[__XNU -XM1/[__X7`#Y7`#X6&````A=MT1XN-8/W__XM!*(7`=1/I`0$``(MX*(/&`87_ -XM#X3S````#[8&B[UP_O__B`>+A6#]__^#QP&)O7#^__^#:"@!@T`8`8/K`77+ -XMB[5P_O__B;5L_O__Z6P!```/M@:#ZP&#Q@&+O7#^__^(!X/'`8.M6/[__P&) -XMO7#^__\/E<`/A'K___^%VW72A,`/A&[___^+A6#]__^+E5C^__\I4!@!4"CI -XM5____XNU1/[__SG`B<&+O7#^___\\Z8/A2?___^+A=S]__^%P`^%J]7__XV% -XM_/[__XE$)`2+A43^__^)!"3HH3]__^-7#,!B9UL_O__@[W@_?__`0^%IM3__XV%_/[__XE$)`2+ -XMA>S^__^+`(L`B00DZ)C'_/^%P`^%@M3__P^WA03___\E`/```#T`0```#X5K -XMU/__B[U@_?__BT%W/W__P$```#I -XM//+__XE$)`R)^(/`#(E$)`B)7"0$BT4(B00DZ!'H_?^%P`^$3-K__XG"B4<( -XMZ6O___^+M6#]__^#Z`&)1BCKGXN%X/W__XN5!/[__XT,@HN%:/[__[JKJJJJ -XM]^+!Z@*-%%*-5!(&B95,_O__BUT(BY.L!```QX7H_?__`````/?"````$'06 -XM@>+____OB9.L!```QX7H_?__`0```(MU"(M&.#F%3/[__P^'Q0$``(/H`3'2 -XMB[W@_?__][5,_O__.?B)A7C]__\/@@@#``#'A?#]__\!````BY7P_?__,<#' -XMA?S]__\`````P>("B95L_?__BY5X_?__A=(/A"T!``"+G?#]__^+O03^___' -XMA?C]__\``````<.--(>)G5#^___ID@```(D<).AVR?S_BX4`_O__]H!4"``` -XM!`^%U@$``(N54/[__SF5X/W__P^&V@```,=$)`Q/C0@(BX5,_O__*X4(_O__ -XMQT0D!'Z?"`B)1"0(BTT(B0PDZ"*C_O^+G0#^___V@U0(```$#X6&`0``@X7X -XM_?__`8N]\/W__XN%>/W__P&]4/[__P.U;/W__SF%^/W__W1UC570B50D"(L& -XMBP`#A>S]__^)1"0$BTT(B0PDZ#AE_?_'1"0$GZT("(E$)`B+?0B)PXD\).BO -XMHO[_BTW0A#]__^%P'XY -XMBYW@_?__ZPN-M@````"#ZP%T)HET)`C'1"0$?>D("(M5"(D4).C4H?[_BXT` -XM_O__]H%4"```!'35BWW0A?]T(HM="(7;=!.+70B+0Q"%P'0).7!T#X1C`0`` -XMB30DZ*#'_/^+M0#^___VAE0(```$#X0&`0``BYT`_O__@Z-4"```^XN%Z/W_ -XM_X7`=`V+=0B!CJP$```````0BX7L_O__B[W@_?__BQ"--+B+6@B+$HF5=/W_ -XM_XN5L:C70F`(N]=/W__P^V!!,Z!#MU!X/#`3G+=>J+A7#]__^#[@2# -XMZ`&)A7#]___KG8N-=/W__\>%Q/W__P$```")C43^___I?_G__XN%X/W__S'2 -XM][5X_?__@_H!@]C_A<")A?#]__\/A>#\___'1"0$)KH("(M%"(D$).@&H/[_ -XMBY4`_O__]H)4"```!`^%^O[__XM-"(D,).B8G_[_Z??^__^)1"0,BL```"+@YP```"+@)`!``"+`(&+K`0``````!#'0U``````B4-,BU44 -XM@)QU:)SE.#["R%P(E5W`^$Y@```(M8$(7;#X3;````]H-5"``` -XM`0^%S@```(M5"#E3>`^"3@$``(M+=(E-X(M#>(E%\(&+5`@````!``"+10B) -XM="0$B40D"(M5X(D4).@\P_S_BTW@BT40BU7@`U4,C5P!`3G:7UW#BT4(QT7P`````,=% -XMX`````"%P`^$.____XM%",=$)`0`````B3PDB40D#(U%\(E$)`CH*^']_X7` -XMB47@#X42____NP$```#KK8M5"+L!````B50D#(M-X(E,)`B+1=R)/"2)1"0$ -XMZ+<\_?^%P`^%8?___^E:____@:!4"```__[__X/$+(G86UY?7<.-0WB)5"0, -XMB40D"(M#=(D\)(E$)`3HO.#]_X7`=)B)0W3IC/[__U6)Y5=64X/L+(MU#(M> -XM-)"-1>R)1"00C47PB40D#,=$)`@!````B5PD!(M%"(D$).B+-_W_A575E.#["R+10SV0#$(BW@TBW`X#X7`````QT7@`0`` -XM`(U%\(U-[(E$)!")3"0,QT0D"`````")?"0$BT4(B00DZ-@V_?^%P`^%H``` -XM`(M5\(72=1F+10S'0$@`````@VW@`71%,?;KN)"-="8`BT7@`?`YPG='BTT, -XMC5K_B=`I\"E%X(E92(M-[(D4)(GZB5PD"(ET)`2+10CH#_W__X7`=56+5>"% -XMTG4FBT4,B7A$,<"#Q"Q;7E]=PXUT)@"+30R-6/^)04C'1>``````Z[>#QP$Q -XM]NE'____BTT,BTD$A`/A3;____KO9"#_P%T$H/O`>NR@\0LN`$```!; -XM7E]=P\=$)`@!````QT0D!`````"+30B)#"3H/@$``+@!````ZXN0D)"0D)"0 -XM58GE4X/L!(M-"(M=#(N1G````(M!+(F"@`$``(M1'`^V0EB$P'@@@\B`B$)8 -XMQT(T`@```(U#1(E%#(E-"(/$!%M=Z:E%_?_V0S$@=0\QP(-Z-`(/E<"#P`&) -XM0C2+0C2#^`%T"H/X`G3+Z(:[_/^-0T2)10R)30B#Q`1;7>GO0/W_ZPV0D)"0 -XMD)"0D)"0D)"058GEBU4(BT4,QT!(`````(M"'(!(6("+0AS'0#0"````B54( -XM7>DV0_W_D)"0D)"058GE5E.+30R+50B#Z0&#^?]T00^^`H7`>$.+-?P@"0@Y -XM\'TYBQT((0D(]D2#-@)U&^LJ#[Y"`87`>"(Y\(UV`'T;@\(!]D2#-@)T$8/I -XM`8/Y_W7?6[@!````7EW#6S'`7EW#C;8`````C;PG`````%6)Y8/L&(M%$(M5 -XM"(M-#(/X!W8"RFN:/W_QT40 -XM8`H)",=%#`(```")50C)Z9=H_?_'11!["@D(QT4,`@```(E5",GI@&C]_X/X -XM!0^5P`^VP(/``HE,)`S'1"0(E@H)"(E$)`2)%"3H7&C]_\G#B4PD#,=$)`BP -XM"@D(QT0D!`,```")%"3H/FC]_\G#C;8`````C;\`````58GE@^P8BT4(QT0D -XM"(P)"0C'1"0$`@```(D$).@/:/W_R<.-M@````"-O"<`````58GE@^P8BT4, -XMAQT0D"-@)"0C'1"0$`@```(M%"(D$).C39_W_R<.0QT0D"*P) -XM"0C'1"0$`@```(M%"(D$).BU9_W_R<.-=@!5B>6#[!B+10C'1"0(O@H)",=$ -XM)`0"````B00DZ(]G_?_)PXVV`````(V\)P````!5B>6#[#B)7?B+70R)=?R+ -XM=0B%VW1:C47TB40D$,=$)`P`````QT0D"`$```"+`XDT)(E$)`3H]3+]_X7` -XM=2.+1?2#Z`$Y0P1T)L=$)`@$"@D(QT0D!`(```")-"3H'F?]_XM=^(MU_(GL -XM7<.-="8`B30DQT0D"`,```#'1"0$`````.CH_?__BUWXBW7\B>Q=PXVT)@`` -XM``"-O"<`````58GE@^PHB5WXBUT,B77\BW4(A=MT&HU%](E$)`2)-"3HJS3] -XM_X7`=1^+`SM%]'(BQT0D"`(```#'1"0$`````(DT).B(_?__BUWXBW7\B>Q= -XMPXDT),=$)`@H"@D(QT0D!`(```#H=F;]_XM=^(MU_(GL7<.0D)"0D)"0D)"0 -XMD)!5B>575HG&4XG+@^P\B57,QT70`0```/9",0AT!HM"!(E%T(M5S(U-W(M" -XM-(E%W(M".(E%X(E,)`2)-"3HCT;__X7`#X47`0``BT7PAP[%?P@ -XM"0@/C0T!``"A""$)"/9$D#8"#X3]````C57#??`$=9"+3"+3"+??"%_P^%Y?[__P^V5>P[%?P@ -XM"0@/C>S^__^A""$)"/9$D#8"#X3<_O__Z<#^__^A""$)"&8Q__=$D#0`!0`` -XM=0Z`^5\/E<`/MOB0C70F`(U-W(E,)`2)-"3H\4+__X7`#X5Y____BUWP@_L$ -XM#X0,____A=MU/P^V3>P/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X6F```` -XM.Q7\(`D(?0^A""$)"/=$D#0`!0``=9^`^5]TFHM%T(7`#X0"____A=MU&`^V -XM5>P[%?P@"0A]+:$((0D(]D20-@)T(8U5W(E4)`2)-"3HA$7__X7`#X7L_O__ -XM@WWP!`^$@?[__X-MT`&#?=#_#X1S_O__BU7POP$```"%T@^%-/___P^V3>P/ -XMMM$[%?P@"0@/C`'___^`^5\/E<`/MOCI$____XUV`#L5_"`)"'T3H0@A"0CW -XM1)`T``4```^%6____X#Y7P^%[/[__^E-____BT7@.T$XD`^%&_[__XG(@\`T -XMB40D!(DT).A9^___N`$```#I5/[__S'`Z4W^__^%R0^%W_W__^DB_O__C70F -XM`(V\)P````!5N0$```")Y8M%"(M5#%WIO/S__XVV`````(V_`````%4QR8GE -XMBT4(BU4,7>F?_/__ZPV0D)"0D)"0D)"0D)"058GE5XG75HG&4XG+@^P\QT70 -XM`0```/9",0AT!HM"!(E%T(M'-(E%W(M7.(U%W(E5X(E$)`2)-"3H(T/__X7` -XM#X4+`0``BU7PA=)U(`^V5>P[%?P@"0@/C0$!``"A""$)"/9$D#8"#X3Q```` -XMC47P[%?P@"0A]T:$( -XM(0D(]D20-@)TQ8M%T(7`#X1+`@``C47"+1?"%P`^%\?[_ -XM_P^V5>P[%?P@"0@/C?C^__^A""$)"/9$D#8"#X3H_O__Z/___XM=\(/[`@^$$/___X7;=4(/MDWL#[;1.Q7\(`D(?0RA""$)"/9$D#8" -XM=2>+1+1="% -XMP`^$`O___X7;=1@/ME7L.Q7\(`D(?2VA""$)"/9$D#8"="&-1=R)1"0$B30D -XMZ(!"__^%P`^%Z/[__X-]\`(/A(+^__^#;=`!@WW0_P^$=/[__XM%\,=%S`$` -XM``"%P`^%+____P^V3>P/MM$[%?P@"0@/C/O^__\QP(#Y7P^5P(E%S.D,____ -XM.Q7\(`D(?1.A""$)"/=$D#0`!0``#X5:____@/E?#X7H_O__Z4S___^+1=P[ -XM1S1T&XM5X.DA_O__BT<\B5=(B4=$@\0\,FL_/__C;8`````C;\`````53')B>6+10B+ -XM50Q=Z8_\___K#9"0D)"0D)"0D)"0D)!5B>575HG&4XG+@^P\B57,QT70`0`` -XM`/9",0AT!HM"!(E%T(M5S(U-W(M"-(E%W(M".(E%X(E,)`2)-"3HGS___X7` -XM#X6;`0``BU7P@_H!#X0O`0``A=)U$`^V3>P[#?P@"0@/C`L!``"%VP^%70(` -XM`(-MT`&#?=#_#X1\````D(U=W(E<)`2)-"3H83[__X7`#X5-`0``BT7P@_@" -XM=%R%P'48#[95[#L5_"`)"'W1H0@A"0CV1)`V`G3%BT70AP/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X7:````.Q7\(`D(?0^A -XM""$)"/=$D#0`!0``=:.`^5]TGHM]T(7_=1B+1`[0S@/A9K]__^)V(/`-(E$)`2)-"3H -XM\O3__[@!````Z4'^__^!^D`""0@/A!G^__^!^I`#"0@/A4W]___I"/[__XUT -XM)@"-O"<`````5;D!````B>6+10B+50Q=Z1S\__^-M@````"-OP````!5,"+0S"-4P&->S3'1"00`````(E\ -XM)`@E``(``(/X`1G`]]`APHM%X(E4)`2)-"2)1"0,Z#?E_/^%P'4CBT7@QT0D -XM#`````")?"0$B30DB40D".@8Z?S_Z6G___^-=@"X`0```.E<____C;8````` -XMB4-`BT,X@_@!C5#_&<#WT"'"B5-(Z7/___^0D)"0D)!5B>564X/L,(M=#(MU -XM"(M3,(U+`8DT)(G0)0`"``"#^`$9P/?0(<'!Z@.-0SR#X@&)1"0,C4,TB50D -XM$(E$)`B)3"0$Z)CD_/^%P'0,@\0PN`$```!;7EW#BT,\`T9T@\`!*T,TB49T -XMC47TB40D$,=$)`P`````QT0D"`$```"+0T2)-"2)1"0$Z&,D_?^%P'6[BT,P -XMJ`AU*R4/_O__@\@@B4,PBT7T.4-( -XM7<.#Q#`QP%M>7<.0D)"058GEBT4,4XM="(E#/(E#1(M#-(/H`3E#/'8&B4,\ -XMB4-$BXN<````BT,\BY&,`0``C01`@^H8C03"B8&0`0``,<"#BZP$``!`6UW# -XMD(UT)@!5B>6#[#B)7?2+70R)=?B+=0B)??SV0S$(#X51`0``BT,TB47PBT7P -XM]D,Q$(E#1(M#.(E#2'1>BU,(A=)T5P^VAFP$``"#X`&)QP^%5@$``(N.9`0` -XM`(G(.=!S%XGXA,!T#(T$2<'@`@-&$(M(.(G*B4L(B50D!(DT).@Q____AQ=PP^V4P*`^BT/A+0!``!V8X#Z+@^$1`$``(#Z -XM7G5>]D,Q"`^$J@$``(M%\,=$)`@`````B30DB40D!.B-:```AQ=PXVV -XM`````(M#"/\DA1@+"0B)7"0$B30DZ%I"``"%P'2AN`,```#KS(-[$!)U++@0 -XM````C70F`.N)BT80B30D_Y!D"```N`0```#KJ(M5\+@"````A=)TCNN:N`4` -XM``#KDXVV`````%6)Y5=6B<93@^P\B%7D#[;2C5K0C7W8B4W0ZP:-="8`B<,Q -XMTHGYB?#'!"0*````Z`S___^#^`5U:`^V5>2#^G]W;/8$E=T4"0@$=&*-!)N- -XM1$+0.=ASR3'2B?F)\,<$)`H```#HU_[__X/X!74S#[9%Y(/X?W<*]@2%W10) -XM"`1UUL=$)`S_____QT0D"'`+"0C'1"0$`P```(DT).AO4_W_@\0\N`$```!; -XM7E]=PXM%T(D8@\0\,`)B46P#X0\`0``]D7D`G0)BT40QP`!````BTT(#[9]W(7) -XM#X2F`0``B?J`^B(/A.8```")^0^VT8/Z?W<.]@25W10)"`0/A8\!``"+50S' -XM`@````")^8#Y(@^$=@(``(GX/'X/APD!``")^(GZB`,/ML#!X`0%`/P("(#Z -XM1(E%M`^$'0,``(M%M(L`A<`/A,0$``")^8#Y?@^$*P,``(M%M(E#*(L`A<`/ -XMA-8$``"+1;2+0`2)1;B+0S#VQ`@/A$D"``#W1;@```0`#X4\`@``BT4(A<`/ -XMA`$&``"+?0@/MA>`^GX/A%P&```/ML+!X`2+@`C\"`C'1"0(!@```(E$)`2+ -XM1:R)!"3HM^C__S'V@\1\B?!;7E]=PXM5"(72#X0-`0``QT0D"``````Q]L=$ -XM)`0`````BTVLB0PDZ(/H___IG?[__XM-L(7)=6''1"0(O0L)"+X!````QT0D -XM!`(```"+3:R)#"3H9U']_^EQ_O__//\/A$D$``"+5:P/ML"-!$"-A`!0`0`` -XM`T(0@\`(QT0D"`0````Q]HE$)`2+?:R)/"3H&^C__^DU_O__@WVP`@^%5?__ -XM_XM]K#'VBT<0B3PD_Y!D"```Z4'____'1;`"````Z4[^__^`^3"-M"8````` -XM#X1A_O__BT6LC4L$Z,_\__^%P`^%$/___X%+,``(```QTHM]#(U-T,<'`0`` -XM`,<$)`(```"+1:SHX_O__X/X!0^$B0```(G&Z;+]___'!"0`````BT6L,=*- -XM3=#HO_O__X/X!77@@WW@"0^$N?[___9%Y`)T"8M]$,<'`0````^V1=PQTH%+ -XM,``"``"-3="(0P''!"0"````BT6LZ'_[__^#^`5UH(-]X`D/A'G^___V1>0" -XM=`F+11#'``$````/MGW`)#X3@_/__ -XM]D7D`HUV`'0)BTT0QP$!````#[9]W`^V`XGZ.-`/A8#\___IW?[__\=$)`@8 -XM#`D(QT0D!`,```"+?:PQ]HD\).AB3OW_Z9C\___W1;@```(`#X7%!0``BTVT -XM]D$&$`^$4OO__XU%\(E$)!"-1>R)1"0,QT0D"`$```"+?:R+1TR)/"2)1"0$ -XMZ,L9_?^%P`^%3/S__XM?4(M%\#G8B46@=F>+3>P/O@09A<`/B,(#``"+%?P@ -XM"0@YPHE5G`^.N0,``(L]""$)"(E]I/9$AS5`#X2)!0``C10+ZR8/OD(!A<`/ -XMB+($```[19P/C:D$``"+3:2#P@'V1($U0`^$F`0``(/#`3M=H'72QT0D"*0+ -XM"0@Q]L=$)`0"````BWVLB3PDZ()-_?_IC/K__P^V`SQ$#X0/`P``B?8/AWT! -XM```\0P^$\P(``(M%M(7`#X46^___,?;IB_O__XGZ@/HN#X3M`0``,=N#?>`) -XM#Y3#@\,$@/K_#X3Q`P``BTVL#[;"C01`C80`4`$```-!$(/`"(E<)`CI._O_ -XM_\=$)`3_````BTVLB0PDZ.X(_?_IM?O__XM-K(N!!`0``(7`#Y7`Z03^___W -XM1;@``(``=0GVQ`(/A=P```#W1;@````!#X0*_?__QP0D`````(M%K#'2C4W0 -XMZ./W__^#^`4/A0#\__^#?>`)#X39^O__]D7D`G0)BU40QP(!````#[9%W(%+ -XM,``"``"(0P'IP?S__\<$)`````"+1:PQTHU-T.B:]___@_@%#X6W^___@WW@ -XM"0^$D/K___9%Y`*-=@!T"8M5$,<"`0````^V1=PQTH%+,``"``"-3="(0P'' -XM!"0"````BT6LZ%/W__^#^`4/A7#[__^#?>`)#X1)^O__]D7D`G0)BTT0QP$! -XM````#[9]W.F#^?__BTVTBT$(Z0_Z__\\4P^$C@$``#Q9C78`#X5X_O__QD7P -XM7\8#>8U%\,=$)!`,````QT0D#`$```")1"0(QT0D!`````"+5:R)%"3HR0S] -XM_X7`#X7:^?__#[8#P>`$!0#\"`B)1;3I+/[__XM%K/:`#`0```$/A#,!``") -XMP8N`!`0``(T$0,'@`@-!$(M`.(7`#X1X^?__H6@+"0CI>OG__XM-J(7)#X1) -XM^?__BU6LBX*<````BX"``0``.T(L#X53`@``@4LP`"```,=#*%`#"0CI,?C_ -XM_\<$)`````"+1:PQTHU-T.@^]O__@_@%#X5;^O__@WW@"0^$-/G___9%Y`)T -XM"8M5$,<"`0````^V1=P/MM"#^G^(0P(/AS_[___V!)7=%`D(!`^$,?O__XM% -XMK(U+".BP]O__A<`/A?'X__^!2S``$```,=*-3=#'!"0`````BT6LZ,WU__^# -XM^`4/A>KY__^#?>`)#X3#^/__]D7D`G0)BTT0QP$!````#[9%W(A#`NG5^O__ -XMQD7P),8#8^F0_O__QD7P),8#9.F$_O__QD7P7\8#8^EX_O__BWVLBX<$!``` -XMA<`/A%#X___IT_[__Z'\(`D(B46<#[84"P^^PH7`#XC"````BST((0D(B7VD -XM.P7\(`D(#XVU````BWVD]T2'-``%```/A*0```#'1;P!````C3P9B=F#P0$[ -XM3:!S/@^V5P&(59L/OM*%TG@9.U6R)7"0$BXR)5:"+/?P@"0B)?9SIM?[__XM-J(M1,/;& -XM(`^$S````(M#,/;$"'05BT6H@,X(B5`PBT,$BU6HB4($BT,P]L0"=`H/MD,! -XMBTVHB$$!QT0D"$P```"+?:B)'"2)?"0$Z#2?_/_IFO7__\<$)`````"+1:PQ -XMTHU-T.BG\___@_@%#X7$]___@WW@"0^$G?;___9%Y`)T"8M5$,<"`0````^V -XM1=R(0P+I^?G__P^V%`L/OL+I*/[__XE$)`R-AS0!``")1"0(BXS\````BT4(BS"-18R+5A#'1"0(3````,=$)`0` -XM````B00DB948____Z%^;_/^#3;P@BUX0B[Z<````QT0D!`(```")-"3_DZ`( -XM``"%P'00N`$```"!Q/P```!;7E]=P\=$)`@!````QT0D!`````")-"3_DUP( -XM``"+AJP$``"#X/J#R`+VAB`"```!B8:L!```#X0I!P``BX88`@``C01`P>`" -XM`T80BT`XB8>T`0``]H9@`0```8E&-`^$]@8``(N&6`$``(T$0,'@`@-&$(M` -XM./:&;`0```&)1C@/A+`&``"+AF0$``"+5C2-!$#!X`(#1A"#^@&+0#B)1D2) -XM1CP/A*0&``"#Z@$YT`^'E0D``(M&-(/H`8E&0(N>G````,=&2`````#'1"0$ -XM&````(N#M`$``(/``8D$).B=F_S_A<")@XP!```/A"<*``"+CIP```"+1CR+ -XMD8P!``"-!$"#ZAB-!,*)@9`!``"+AIP```"+D(P!``"+1DR)`HN&G````(N` -XMC`$``,=`!`````"+AIP```"+@(P!``#'0`@!````@8ZL!```H````&:#C\@! -XM```%BU80QT0D"`$```"+1B"+0`B)-"2)1"0$_Y*<"```BYZ<````BT80BX@8 -XM`0``AB% -XM_W5;BX:<````C56,QT0D"$P```")5"0$!9@```")!"3HJ)O\_XN&G````(&( -XMR``````@``#V1;T$=!"+AIP```"!B,@`````"```BX:<````@:#(`````/[_ -XM_XM%O"7P`0``@_@@#X0"!```#X8Q!0``/8`````/A.D#```]``$``(VT)@`` -XM``!T$(/X0`^%(`4``,=%U`````"-1=2)1"0(BT70B30DB40D!.A(N/W_A<`/ -XMA+4#``#'1"0$`@```(DT).@``_W_A<`/A7@#``"+1A#V@%0(```$#X0H`P`` -XM@Z!4"```^\=$)`0"````B30DZ-$"_?^%P`^$^@$``,=$)`C0#`D(QT0D!`,` -XM``")-"3H$43]_XN&K`0``/;$$`^%^@$``/;$"`^%60(``(N%&/___X"X5`@` -XM``!X#?:&K`0```$/A,W]__^+50B),HM^$(M?"(U'"(U7$(F%+/___\>%*/__ -XM_P`````YPXF5%/___W5-Z9$&``"+0P2)0@2+0P0YA2S___]T?(D0BY44____ -XMB1.+1Q2)0P0[5Q`/A#@&``"+1Q2)&(E?%(.%*/___P&+7P@YG2S___\/A$D& -XM``"+@YP```"+@(P!``"%P'08B00DZ&&:_/^+@YP```#'@(P!````````BQ,Y -XME2S___]UAHM#!(E'#(M#!#F%+/___XL3=82)5PCK@8DT).@3)?W_A<"0#X6: -XM_O__BY48____QT7H`````(M"?(M`%(7`#X6+_?__C46,QT0D"$P```"-?>C' -XM1"0$`````(D$).AUEOS_BY:<````C47LB40D!(U-C(GPB7PD",<$)`````"! -XMPI@```#H6>___X/X!`^&0@(``(M-M/9!!P(/A%P#``#VAF0#```!#X1+!P`` -XMBX9<`P``C01`P>`"`T80BT`XA<`/E<"$P`^$,`,```^V18P\_P^$=0@```^V -XMP(T$0(V$`%`!```#1A"#P`C'1"0("````(E$)`2)-"3H5`W__^F__?__QT0D -XM"-D+"0C'1"0$`P```(DT).@70OW_BX:L!```]L00#X0&_O__@.3O#0````*) -XMAJP$``"+=A2+GIP```"+5A#'1"0(`0```(M&((M`"(DT)(E$)`3_DIP(``!F -XM@XO(`0```<=$)`0!````B30DZ)M$``"%P`^%&OK__XN&K`0``/;$"`^$J_W_ -XM_XUT)@"`Y/>)AJP$``"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``#I -XM>_W__XUT)@#'AI0````"````QT0D!`````")-"3H-D0``(7`#X6U^?__]T6\ -XM8`$```^$F?O__Y!F@Z/(`0``OXU&5(E$)`2)-"3HR44``.E\^___C70F`,=$ -XM)`P!````QT0D"`````#'1"0$`````(DT).@P!?W_A<`/A>?\__^+1A#V@%0( -XM```$#X37_/__Z9O\__^-=@#'1"0(H`P)",=$)`0"````B30DZ,A`_?_I:_S_ -XM_V:#B\@!``!`BU70B59,BTW4B4Y0BT6\]L1`=1VI```!``^%,0$``&:%P`^) -XM._S__SM5V`^$-`4``(U5V,=$)`P!````B50D",=$)`0G````B30DZ.LP_?^% -XMP`^$"_S__^GN^____R2%3`L)"(M6-(N&9`0``(/Z`8E&1(E&/`^%7/G__\=& -XM0`$```#I9/G__XN&6`$``.D1^?__BX88`@``Z=[X__\E``0``(E$)`C'1"0$ -XM`````(DT).C4ZOS_A<`/A6/X__^-7?")7"0$B30DZ.US``"%P`^%3/C__XM% -XM\(7`#X2(`P``BT7PBU4(B0*)-"3HNH#]_X7`#X4I^/__BW7PA?8/A&\$``"+ -XMGIP```"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``!F@XO(`0```>EV -XM^?__A<`/A,/^__^#^!`/A-P"``"0C70F`.@?D?S_.U78#X78_O__B?;IO_[_ -XM_XU5C(E4)`2)-"3HO##__X7`#X74^O__Z?GY__^+1A#I[_K__XM5O/;&()!T -XM%XM%[(7`=!"+AIP```#'@.@````!````B=`+002I`,`!`(E%O'0,BT9,B478 -XMBT90B47`S`2)1;P/MD6,.H5`____#X3>`P``BT6TQX4<____```` -XM`#U@"PD(B85L____#X2J`P``BT6\B<*!XO`!``"H((F5(/___W0,@\H0@^+? -XMB94@____BY5H____)0_^__^)1;R+0@0E#_[__PF%0```")!"3H))+\_XN5 -XM)/___XN%,/___XF0Z````(M%O"4("```/0@(``!T48-&+`'I^?7__SM-W`^% -XMP_K__^GP]O__,<"-M@````#II_/__XN&7`,``(7`#Y7`Z;SX__^)=PCI3O[_ -XM_XE7$.DD_O__BT8$B4<4BQ;I!O[__XM%D`-%R(/H`8E%R.NAC95`____B10D -XMQT0D"$P```#'1"0$`````.B&COS_C47@,=*)1"0$C46,B00DC8U`____B?") -XM?"0(Z'+G__^#^`4/A1_]___I)OS__XM%R(DT)(E$)`3H]0?]_X7`#X5S_O__ -XM@WW(`745#[9%C#QCD`^$6?[__SPA#X11_O__QT0D"`$```#'1"0$`````(DT -XM).A:T?__Z0#5DR)1"00QT0D#`````"#Z@&)52#^`&-4/\9P/?0(<*)5/___SM-@`^&R/W__^O$ -XMD)"0D)"0D)"0D)"0D)"058GE5U93@^P\BW4(]H:O!```$(M^$(N&G````'0* -XM@\0\,*)!"3H%8W\_XDT)(E$)`B-1>*)1"0$_Y=8"```BY:<````@\,8 -XM.9J0`0``0"```@\0\,%2/___P````#WP@`` -XM`!!U&8N`G````(.X7`$```$/E\`/ML")A4C___^#XA!T.8M="(N#G````(M3 -XM0(N(C`$``(M#-#G"#X.B)1"0$BUT(B1PD_Y%P"```QT0D"`````"+@YP```"+50PKD(P!``")'"2) -XMT,'X`VG`JZJJJHE$)`2+C23_____D9`(``"-1?")1"00C47DB40D#,=$)`@` -XM````BUT,BP.)1"0$BT4(B00DZ(4"_?^+50B+30B+4CB)QHF5+/____:!%`(` -XM``$/A68$``"+70B+@PP"``"%P`^5P(3`#X1O!```BT4,BUT(BT`$QX4\____ -XM`````(F%./____:#.`(```$/A'4$``"+@S`"``"-!$#!X`(#0Q"+0#B)A4S_ -XM__^+50C'A5#___\`````]H*O!```$'51]H*8`@```0^$504``(N"D`(``(T$ -XM0,'@`@-"$(M`.(7`#Y7`A,!T'8.M+/___PB%]@^%+`0``(N=./___X7;#X2* -XM"```BY5,____B950____A?8/A20$``"+3?"%R0^$&00``(N%./___X7`#X4# -XM!0``BU4,QT(,`````,9"%`#'A3#___\`````QX4T____`````(M%$(7`=!&+ -XM50R+30B+`CM!3`^$>PD``(N=2/___\>%*/___P`````)^P^%"P,``(N5-/__ -XM_SM5\`^#?@L```N]2/___XV=9/___XU%XXF]5/___XG?QX5<____`````,>% -XM1/___P````")G1S___^)A2#___^-=@"+1>0/MA"#P`&)1>0/MLJ`^@F(E6/_ -XM__^)C4#___\/A,P$``"`O6/_____#X2M!0``BY5`____BTT(C012`<`#01`/ -XMMH!=`0``B<8QTBNU,/___P&U7/___XN-7/___SF-+/___W=4@_H!#X1.!0`` -XMBT4,B?.(6!:+A5S___\KA2S___^+70PIQHGQB$L5BX5<____.84L____<#``"+70B+30R+ -XM@YP```"+71`KB(P!``")R,'X`VG`JZJJJHD#BT4(]H"O!```"`^$5@4``(N% -XM7/___XM-%"GPB0&+10CV@)@"```!#X0F!0``B<&+@)`"``"-!$#!X`(#01"+ -XM0#B%P`^5P(3`=!J+10CV@*\$```0=0Z+C3C___^%R0^$5@,``(N%5/___X7` -XM#X4^`0``A=(/A+@#``"%]G15,=OK#8/#`<8'((/'`3GS=$0[O2#___]RZ\8' -XM`(V%9/___X/#`2N]'/___XE$)`2)?"0(BU4(C;UD____B10DBXTD_____Y%8 -XM"```Q@<@@\# -XMQP&#^?]U[8N%7/___X/``3F%+/___W82BU4(B10DBXTD_____Y%L"```.;T< -XM____#X()!@``BT7LB40D"(M%Z(E$)`2+30B)#"2+G23_____DY`(``"!Q.P` -XM```QP%M>7UW#BX$,`@``C01`P>`"`T$0BT`XA<`/E<"$P`^%D?O__XM5#(M= -XM"(M*"(/I`8F-//___P^OC2S___^)C3C____V@S@"```!#X6+^___BT4(BX`P -XM`@``B85,____Z8_[__^-4/_I7/K__XN=3/___XM%#(F=4/___X,X`0^$O/O_ -XM_XGVBU40A=)T$8M-#(M="(L!.T-,#X1P`@``"[U(____#X4N____BUT,QT,0 -XM`````,=##`````#&0Q4`QD,4`(N%./___X7`=4J%]@^$S`(``(,[`;I^```` -XM#X2^`@``BTT(C112`=*+01`/MHP070$``(V$$%@!``")1"0$B4PD"(M="(D< -XM)(N5)/____^26`@``(M-"(D,)(N=)/____^3;`@``(M%[(E$)`B+1>B)1"0$ -XMBT4(B00D_Y.0"```@<3L````,^?__@<3L```` -XM,2)G3#____V@!0"```!#X5=!```BTT(BX$,`@``A`"`T,0BT@XBX5<____,=*)SO?Q*=:Z -XM`0```"NU,/___P&U7/___^D5^___C1PW.9T@____#X;4````@+UC_____P^$ -XM0P$``(N-0/___XM="(T$28V$`%`!```#0Q"#P`B-3O^)C5C___^#P0$/A%K\ -XM__^+G3#___^)^8T4&(T<-XVT)@`````/M@*#P@&(`8/!`3G9=?&+A5C___^- -XM?#@!Z2?\__^+G2S___\IV2G.BTT,B?"(016(01:)G5S____IR/K__XN=0/__ -XM_XE<)`2+10B)!"3H/>W\_^E1^O__BX.<````BU40*XB,`0``B0/MA"#P`&) -XM1>0/MLJ`^@F)C4#___]UH8N53/___X72=:"+10CV@-`#```!#X0J`@``B<*+ -XM@,@#``"-!$#!X`(#0A"+2#B)V#'2]_&)R"G0ZXB+50R-G63___^+`HD<),=$ -XM)`@K#0D(QT0D!(````")1"0,Z/N!_/^)7"0$B40D"(M-"(D,)(N=)/____^3 -XM6`@``(N%3/___XF%4/___^DP]___@,(!#X0V`0``BY5`____BTT(C012`<`# -XM01`/MH!=`0```<,[G2S___]R'XM-""N=+/___XM).(.M//___P&)C2S___\/ -XMA#P!``"#A33___\!BY4T____.57P#X8F`0``BT7D#[80@\`!B47D#[;*@/H) -XMB8U`____=8:+A4S___^%P'6%BT4(]H#0`P```0^$%@$``(G"BX#(`P``C01` -XMP>`"`T(0BT@XB=@QTO?QB<@IT.EJ____Q@<`C9UD____*[T<____B5PD!(E\ -XM)`B+10B)!"2+E23_____DE@(``#IR?G__XG"BX`,`@``C01`P>`"`T(0BT`X -XMA<`/A:;[___IC_O__XM14#F5-/___P^'=O;__XN%-/___P.%+/___SG"#X=B -XM]O__BX4T____@\(!*<*)E2C____I9/;__XN%0/___XE$)`2+50B)%"3HR.G\ -XM_^G(_O__BX5`____B40D!(M5"(D4).BNZ?S_ZG)]?__BT4( -XMBXC(`P``Z?#^__^+10B+B,@#``#IW/W__XM%"(M`.(F%+/___XN%-/___XM= -XM#(E##,9#%/_'A3#___\`````Z8+U__^#A33___\!BYTT____BTT,B5D,QD$4 -XM`,>%,/___P````#I7/7__XM5"(N--/___SM-\(M2.(F5+/___W.D.YTX____ -XM#X0B`0``BXTT____BU4,B4H,*YTX____*=B)A3#___^(0A2#;>0!Z1/U___& -XM!P"-E63___\KO1S___^)5"0$B7PD"(M-"(V]9/___XD,)(N=)/____^36`@` -XM`(M%"(M8$.G$]___BX5`____B40D!(M5"(D4).AMZ/S_Z7/W__\/MD(5.,$/ -XMA,(```"+4A`/ML")A3#___\/MH4P____B94T____BXTT____BU4,B4H,B$(4 -XMBUT(`4WD]H,4`@```716BX,,`@``C01`P>`"`T,0BT`XA%,/___P````#I\?/__XM2$#'`QX4P____`````(/"`8F5-/___^DZ -XM____D)"0D)"0D)"0D)"0D%6)Y5.#[!2+70B+0Q"+4S2+B)`(``"+0T`YT'(# -XMC4+_B1PDQT0D"`````")1"0$_]&+0Q")'"3'1"0$`````/^0F`@``(/$%%M= -XMPY"-="8`58GE5U93B<.#[#R)5=")3S0!#X1/`0``@WW,`0^$!0$```^# -XML````(U%\(E$)`C'1"0$`0```(D<).BQ'_W_B<*+1?")5"0$B1PDB40D"/^6 -XM6`@``(.'7`$```''AU0!````````C7W4B1PD_Y9L"```QT0D!`````")'"3_ -XMEI@(``"+5="%TG0ABT70QP``````ZQ:+1=R#^`%T48/X!'1!B1PD_Y9D"``` -XMQT0D#`````#'1"0(`````(E\)`2)'"3H:>S\_X7`=,J0C70F`(/$/%M>7UW# -XM@WW,`G0KZ-%Y_/_&1>!Q@XY4"```!(-]S`%T48-]S`)UUH!]X'%UT(..5`@` -XM``3KQXU%\(E$)`C'1"0$!0```(D<).C0'OW_B<+I&O___XU%\(E$)`C'1"0$ -XM`@```(D<).BR'OW_B<+I_/[__X!]X#IUA8M%T(7`#X1Z____BT70QP`!```` -XM@\0\6UY?7<.-1?")1"0(QT0D!`0```")'"3H@"=#&+3>B)V(M5[(M=](MU^(M]_(GL7>F3_?__C78` -XMBU-`.=!V*2G*ZX60C70F`(U"_^NOBU7PBX)4`0``.T-`<\&+7?2+=?B+??R) -XM[%W#C5#_*L!```"`^$ -XM;0$``(M#$(E$)`R+0PR)1"0(BT,(B3PDB40D!/^6E`@``(L3A=)T!HM#!(E" -XM!(M#!(D0BT,,B00DZ.)\_/^)'"3HVGS\_XM>;(7;=;>+1+1<#'@%P!````````QX!8`0```````,>`5`$```````"+ -XM1>R+50R)1"0(BT7PB10DB40D!/^6D`@``#'2@\1,B=!;7E]=PX/H`71F,"7`$```````#'@E@!````````QX)4`0```````(E$)`2)/"3H -XM^A(``.EO____BTT0AL -XM!```QT0D"`(```"+1TR)/"2)1"0$Z$<<_?_ICO[__X/@_8F&5`@``(D\)/^6 -XM9`@``.EF_O__QT0D!`$```")/"3H:R<``+H!````A<`/A+C^___I#____XG! -XM*='I0/___XE]#.D+_O__,S<````B85`____B94\____BY5`____B8TX____BT`0B85$____BT4(BY*< -XM````B8U4____A<")E4C___\/CI8#``"-C7#___^-7>^)C3#___^)G33___^+ -XM70B+M3C____'1"0$"@```(E<)`B)-"3H6'7\_XF=4/___XF%5/___XN%5/__ -XM_X7`=!"+E53___\I\HF54/___XG3BXU(____B[5`____BY%8`0``BTXXC003 -XM.7UW#B[5`____BYU,____B30DB5PD!.@OWOS_ -XMB<;I"?[__XN-0/___XNU1/___XM!0(M)-(N>D`@``#G(<@.-0?^)1"0$BX5` -XM____B50D"(D$)/_3@[T\____`P^%7/W__XN50/___XN-1/___\=$)`@!```` -XMQT0D!`$```")%"3_D5P(``#I,OW__XN-0/___XN=1/___\=$)`@`````QT0D -XM!`$```")#"3_DUP(``#IX?[__XN%0/___[D"````,=+H(_C__^E*_/__BY5( -XM____BX)<`0``Z3'\__^+E4C____V@L@!```"#X0>_/__@ZI4`0```8/H`6:# -XMHL@!``#]B8)<`0``Z0'\__^+M4#___^+G43___^+1D"+BY`(```YP@^&Q0`` -XM`(/H`8E$)`2+A4#____'1"0(`````(D$)/_1BY5`____BXU$____B10D_Y%L -XM"```BYU`____BW,X@_X/=@6^#P```(N%0/___XM8$,=$)`@!````QT0D!`$` -XM``")!"3_DUP(``"+E4#___^)="0(QT0D!#$-"0B)%"3_DU@(``"+C4#____' -XM1"0(`````,=$)`0!````B0PD_Y-<"```BYU(____@X-<`0```6:#B\@!```" -XM@X-4`0```8N#7`$``.D0^___C4+^Z3;___^+A4C___^+M4#___^+E43___\% -XM6`$``(E$)`B-1?")1"0$B30D_Y)P"```Z=']__^-=@!5B>575E.#[#R+=0B+ -XM?0R+1A")1="+GIP```#'!P````"+@U@!``!F@XO(`0```87`#X5)`0``BY:L -XM!```]L(0#X40`0``]\(``!``=0V#NUP!```!#X:X`0``B=`E___O_X'B```( -XM`(F&K`0``'40BT80]H!4"```!`^$,@$``/:&K`0``!`/A;4```"+1A"#P`@Y -XM!G0'@XZL!```0/:#R`$```@/A8L```#'1"0(`0```,=$)`0`````B30DBU70 -XM_Y)<"```@::L!```[__W_X.[7`$```$/AD@!``#'1>`&````BY-<`0``N0$` -XM``"+1C0YPG)9B47LC478B4WDQX-<`0```````,>#6`$```````#'@U0!```` -XM````B40D!(DT).@&"P``,=*#Q#R)T%M>7UW#@XZL!```(.EI____9H.+R`$` -XM``3I/O___Y")P2G1ZZ&+1A#'1"0$`@```(DT)/^0H`@``+H!````A#4`$```$```#IA?[__\=$)`P!````QT0D"`````#'1"0$`````(DT).B. -XMX/S_A7UW#B?J)\.BG -XM\O__ZZ>0C70F`%6)Y5=64X/L+(MU"(M=#/:&K`0``!"+?A!T-8M5$(72#X0L -XM`0``A=N)V`^$&`$``(E4)`R)1"0(QT0D!'WI"`B)-"3HF$S^_XDT).BP2_[_ -XMC47PB40D"(U%[(E$)`2)-"3_EW`(``"+1D"+5C2+CY`(```YT'(#C4+_QT0D -XM"`````")1"0$B30D_]&)-"3_EVP(``"%V\=%X`````!T+HD<).CM'````BT7@B40D"(E<)`2)-"3_EU@(``"+51"%TG0PBT40 -XMB00DZ+5R_/^+7CB+5>")P0'"C4/^.<)W1(M%$(E,)`B)-"2)1"0$_Y=8"``` -XMBT7PB30DB40D"(M%[(E$)`3_EY`(``")-"3'1"0$`````/^7F`@``(/$+%M> -XM7UW#*UW@C4O^Z[2-="8`B47@Z73___^X3XT(".G>_O__ND^-"`CIRO[__XUT -XM)@!5B>6#[#B)=?B+=0B)7?2+11")??SVAJP$```1=3.#^`*+?A"+GIP```!T -XM-(/X`P^$JP$``(/H`0^$D@```(GVQT0D!`````")-"3_EY@(``"+7?2+=?B+ -XM??R)[%W#B?:+@V`!``"%P'36BY-<`0``@^@!B8-@`0``A=)U,87`=2V+1D"+ -XM5C2+CY`(```YT'(#C4+_QT0D"`````")1"0$B30D_]&)-"3_EVP(``"+@W`! -XM``")1"0(BX-L`0``B30DB40D!/^7D`@``.EP____BX-@`0``BXM<`0``@\`! -XMA`$``&G`0$(/``'"@?I'Z`$`#XX<_O__BT7DBU7H@[MD`0``!(F#=`$` -XM`(F3>`$```^$A0```(N'D`@``(E%W(M&0(M6-(N+:`$``#G0<@.-0O^)3"0( -XMB40D!(DT)/]5W(N39`$``(N'6`@``(U*`8'"1PT)"(F+9`$``(E4)`3'1"0( -XM`0```(DT)/_0BX>0"```B47@BU9`BTXTBX-H`0``.7UW#BTW<@Z%4"```_8M%"(D$)/^19`@``.GB_O__J!`/A.T"``"+ -XM50B+0A#'1"0$`0```(D4)/^0H`@``(7`#X37_O__Z2;___^-1?")1"0(C47L -XMB40D!(M-"(D,)(M5W/^2<`@``(-]#`$/A`$"``"+512+11"+30B`?!#_"@^4 -XMP`^VP"G"B544@WDT`0^$?`,``,=%Z`````"+5>B+10B#P@*)5>B+2#B#Z0&) -XM3>"+3=B+@5@!``"%P'0IC00"`T44.47@#X/U`@``BY%0`0``N574"`C'!"0" -XM````BT4(Z/[P__^+30R+5=B)BE`!``"+112+71"%P'4FZ8L-B?8Y^'T2]D2&-@)T"X/I`0^^0?^%P'GJB=:)\"G8*444#X7P```` -XMB<@IV(/X`7X+@'P8_RX/A`P!``")!"2+50R)V8M%".C7[___BTT(BT$0]H!4 -XM"```!'5LQT0D#`$```#'1"0(`````,=$)`0`````B0PDZ"C8_/^%P'4/BU4( -XMBT(0]H!4"```!'4YB?/IP?[__XM!$,=$)`0"````B0PD_Y"@"```@\0L6UY? -XM7<.+312Z`0```(D,)(M-$(M%".A<[___BT7PB40D"(M%[(E$)`2+30B)#"2+ -XM5=S_DI`(``#'1"0$`````(M-"(D,)(M5W/^2F`@``(/$+%M>7UW#BU44C303 -XMB?")\2G8*444#X00____*=F)#"2+50R)V8M%".CY[O__N2:Z"`BZ`0```,<$ -XM)`$```"+10CHX.[__^D$____C4'_*=CIZO[__XM-"(D,).CVW/[_A<`/A/;[ -XM___I1?S__\=$)`@!````QT0D!`$```"+10B)!"2+5=S_DEP(``"+31")3"0( -XMBT44QP0D\I@("(E$)`3H1&?\_\=$)`@`````QT0D!`$```"+50B)%"2+3=S_ -XMD5P(``#IO/O__XG1B=;I2_[__XD<).BO:?S_BT40B40D#*$0(0D(BU44QT0D -XM!$$-"0B)!"2)5"0(Z-QA_/_IK_O__XM%V+E8\0@(BY!0`0``QP0D`0```(M% -XM".@&[O__N=+4"`BZ`0```,<$)`$```"+10CH[>W__^GJ_/__QP,`````B5AL -XM@\!LB4,$Z6#[__^-1>B)1"0(QT0D!`0```")#"3H_0C]_^EO_/__D)"0D)"0 -XMD)!5B>564X/L$(M=#(MU"(M3##M3%'80ZU.+4PR#P@$Y4Q2)4PQR18N&G``` -XM`(T44L'B`P.0C`$``(/J&,9"%@#'1"0,`````,=$)`@`````B50D!(DT).BU -XMV?__ARL````B95P____BT`0B85X____BY:<````B95\____B='VAJP$```@ -XM='7'@JP!````````BX:L!```]L0!#X6/!P``A,!Y+\=$)`@"````BT9,B30D -XMB40D!.A8(@``A7UW#QT0D"`,```#'1"0$ -XM`````(DT).@H(@``A2)?"0,B40D"(E<)`2)-"3HH=?__X7`#X5Y -XM_O__@WWD_W3&BY5\____BX+$`0``A``"Z`0```(G#BT9`@_@!=`2)PM'J.=H/@OD'``"%VP^$?@```#M& -XM/'4'ZW`"`T80BT`XA<`/E<"$P`^%.@<``(N-?/___\=%Y/_____'@<0!```````` -XMBX:<````.9B0`0``#X+J"0``BP,[1DP/A=\)``"-N<`!``#K(9"+AIP```"# -XMPQ@YF)`!```/@MH&``"+`SM&3`^%SP8``(U%Y(E\)`R)1"0(B5PD!(DT).C) -XMU/__A<`/A:'[__^#?>3_=+N+E7S___^)FL0!```QTL=%B`````#K&O:&K`0` -XM`$!T#(M&0#E&1`^%?0<``+H!````BXU\____BYG$`0``A=L/A$P)``"+1E"+ -XMC7S___^)@;P!``"+1DR)@;@!``#VAI@"```!#X4=`0``BX:0`@``A<`/E<"$ -XMP'07BX5\____]H#(`0``('0(A=(/A"<#``"+18B%P'0'@XUP____`XN5_K)`^VP(T$0`'``T80#[:`70$```%%D#M]D`^"P@@``(M& -XM((M`"(/K`3G8#X-L!P``#[8#/"\/A%X'```\_W7"QT0D!/____^)-"3H%LG\ -XM_^O"BX:0`@``C01`P>`"`T80BT@XAF)5"0(B5PD!(E,)`R)-"3H&QD``(M6/(/Z -XM`8G#N`$```!T!(G0T>@YV`^'>P@``,=%J`$```"+AIP```"#^@&+@(P!``#' -XM1;`!````BT`$B46LN`$```!T!(G0T>B)1"0,BT9,B30DB40D"(U%J(E$)`3H -XMN!@``(M6/+D!````@_H!=`2)T='I.<$/AQ0)``"+5DS'1"0(`@```(E4)`2) -XM-"3H^!H``(7`#X6@^/__@XZL!```0.GX^/__QT0D"`,```#I/X__^+0@@YQP^&V/C_ -XM_XM./+L!````@_D!=`2)R]'KB?DIP3G+#X)_"@``B30DZ"(B``"%P`^%^O?_ -XM_XN&G````(N`D`$``#MX"'??Z97X__^)-"3H;,___X7`#X3)_/__C70F`.G+ -XM]___QT60`````#M&!)`/A3/]__^)-"2+593_DFP(``"+7CB#ZP'VAC0#```! -XM#X3?!@``BX8L`P``C01`P>`"`T80BT`XA<`/E<"$P`^%+0<``(M]D(/'`O:& -XMH`,```$/A)T&``"+AI@#``"-!$#!X`(#1A"+0#B%P`^5P(3`=#:+1AP/MD!8 -XM@^`$@_@!C474@]/_B40D"(N&E````(DT)(L$A9`-"0B)1"0$Z"[^_/\K7=2) -XM18PY^W9TBT64BU8TBXB0"```BT9`.=!R`XU"_XE<)`B)1"0$B30D_]'VAJ`# -XM```!#X1>!P``BX:8`P``C01`P>`"`T80BU@XA=L/E<"$P'0IBT8<]D!8!`^% -XM00H``(M%U(E$)`B+38R)-"2)3"0$BU64_Y)8"```B?;VA7#___\!#X5=`0`` -XMBX5T____A<`/A2/____^2D`@``(DT)(N->/__ -XM__^1;`@``(N&G````(-N/`&#J)`!```8BT8\.T9$=Z+'1"0(`0```(M&3(E$ -XM)`2)-"3HRQ<``(7`#X33_/__Z6[U__^+A@P"``"%P`^5P.DY^?__BXU\____ -XM#[>!R`$``(DT)(/@!(E$)`2+E7C_____DI@(``#IL?[__XN-?/___XN!P`$` -XM`(E$)`B+1>2)-"2)1"0$BY5X_____Y*0"```BU6(A=(/A'+^__^-1E2)1"0$ -XMB30DZ*8*``#I7O[__S'2QT6(`````.EY^?__C490QT0D$`````")1"0,B50D -XM",=$)`0`````B30DZ&`.``")1:`/MHZ8`@``@^$!#X6?````BY:0`@``A=(/ -XME<"$P'0*@WV@!W8$@VV@"(M[!#E]H`^'WP```(N6I`,```^VCJP#``"-!%*# -XMX0&)A6S___^$R8G0=`^+A6S____!X`(#1A"+0#@YQP^"I@,``(3)B=!T#XN% -XM;/___\'@`@-&$(M`."G'.7V@=L?VAJ\$```0#X3>`0``B7L$BX:<````BXB0 -XM`0``QT6(`````.D+]?__BY:0`@``C012P>`"`T80BT`XA<`/E<#I4/___XM> -XM/#G8#X)X^/__C;0F`````(E<)`2#PP''1"0(`````(DT)(N->/____^1D`@` -XM`(DT)(N5>/____^2;`@``#E>0'/.Z3KX__^%_XVT)@`````/A?$!``"$R0^$ -XM.0,``(T$4L'@`@-&$(M`.(7`#Y7`A,`/A!,#``"+5CB)T(E5G(/H"#E%H`^& -XMSP$``(N&I`,```^VCJP#``"-%$"#X0&)A63___^)E6C___^%R8N%9/___W0/ -XMBX5H____P>`"`T80BT`XBU6<`<>-!!@2+AIP```"#PAB+B)`!```YT7/JQT6(`0```.D'\___@XZL!```((GP -XMBY5P____Z(;Q___I]O'__XM&4#N!O`$```^$W0(``(U%X(E$)!"-1>R)1"0, -XMC47B)1"0(C47DB40D!(DT)(N5>/____^2<`@``#'2QT6(`````.EP\___BX5\ -XM____BY"\`0``.590#X-A`0``B=<#?=R)?=R+@+P!```[1>R+3E`/@S?V__^- -XM4`$IRHN-?/___XN!P`$``(/`!3G"#X<;]O__C5K_@_O_QT6`_____P^$#/__ -XM_P^V%XU'_XE%W(#Z"0^$]O7__P^VPC'_B46$ZSN+582-!%(!P`-&$`^V@%T! -XM``"#ZP$!QX/[_P^$RO[__XM%W`^V$(/H`8E%W(#Z"0^$M_7__P^VRHE-A(#" -XM`77`BTV$B30DB4PD!.@1O?S_Z\''1"0$_____XDT).C_NOS_Z6#[__^)>0C' -XM1"0(`P```,=$)`0`````B30DZ"\0``"+1DR#CJP$``!`BY:<````Z8KU__^+ -XM?9"#QP*-!#HYPP^&[_W__\=$)`@"````QT0D!+C<"`B)-"2+593_DE@(``"+ -XM1=2+39"#P`*-?`$"Z<']__^)>@C'1"0(`````,=$)`0`````B30DZ,`/``"# -XMCJP$``!`Z17N__^+1=R+C7S___^#P`$!T(E%W(M>4(NYP`$``"N9O`$``.LE -XMBX:0`@``C01`P>`"`T80BT`XA<`/E<"$P'16BT8X@^@(.?AV7X/K`8/[_W17 -XMBT7<#[80@\`!B47<@/H)#X2,]/__#[;"@,(!="R-!$`!P`-&$`^V@%T!```! -XMQ_:&F`(```%UG(N.D`(``(7)#Y7`ZZ:+1CCKJXE$)`2)-"3HP+O\_^O5BX5\ -XM____B;C``0``]H:8`@```71;BX:0`@``C01`P>`"`T80BU`XA=(/E<"$P'0[ -XMBT8X@^@(.<GD_/__58GE5U93@^P< -XMBWT(BT<0B47L]H>L!```0`^%%@$``(M8"(UP"/:'F`(```$/A#T!``"+AY`" -XM``"+5>R-!$"+1((XA<`/E<`\`1G`@^#@@\`Q.=Z)1?!U0NM;C;8`````BY.< -XM````#[>"R`$``(5%\'0B#[>2R`$``(G8@^(!@\H"Z!KK__^+AYP```!F@XC( -XM`0```8L;.?-T&SG[=/:+@ZP$``#VQ`9UZZA@=+.+DYP```#KO8M=#(7;=0WV -XMAZP$```(#X6V````N@,```")^.C+ZO__N@$```"%P'5-BU7LBUH(.?-U#NLX -XMC;8`````BQLY\W0H]H.O!````G3QB1PDQT0D"`````")?"0$Z(W5__^+&[@! -XM````.?-UV(7`=7B#CZP$```(,=*#Q!R)T%M>7UW#BU7LBUH(B=:#Q@@Y\P^$ -XMW?[__SG[=`J!BZP$``!````"BQLY\W7LBT7L]H>8`@```8M8"`^%P_[__XN' -XMD`(``(7`#Y7`ZS' -XM1"0$`````(D\)/^2F`@``#'2@X^L!```".EO____D)"0D%6)Y8M-"%/V@10" -XM```!BY&<````=&*+@0P"``"-!$#!X`(#01"+0#B%P`^5P(3`=%:+@L0!``#V -XM@9@"```!BY+``0``BU@$=%V+@9`"``"-!$#!X`(#01"+2#B%R0^5P,'@'\'X -XM'X/@"(T4$RG"BT4,B1`QP%M=PXN9#`(``(7;#Y7`A,!UJHN"Q`$``(N2P`$` -XM`(M8"(/K`0^O63CV@9@"```!=:.+@9`"``"%P`^5P.NMC;8`````C;PG```` -XM`%6)Y5=64X/L3(U%\(E$)!"-1>R)1"0,QT0D"`````"+10R)1"0$BT4(B00D -XMZ!_&_/^+=>R%]@^$A0$``(M=\(7;#X1Z`0``BU4(]H(X`@```0^%\````(M- -XM"(M%"(N),`(``(E-W/:`%`(```$/A/D```")PHN`#`(``(T$0,'@`@-"$(M` -XM.(E%V(M-"#'2,?^+11#W<3B)5/^__\Q_^G<_O__ -XM@\1,,/_#[9%XW1W -XMBU4(C01``<`#0A`/MH!=`0```<,)=&:#ZP$I3D#____BT7`"`T(0BT@XZ\R)^#'2]_''1`"`T(0BT`XB474,?^%VP^$$@$``(L[B77@QT70`````.M7@/O_#[;# -XM#X1]`0``BU4(C01``<`#0A`/MH!=`0```470C30PBT74A`" -XM`T(0BT@XBT70,=+W\8G(*=#I>____XM%"(N0D`(``(72#Y7`Z=C^__^-=@"` -XM^_\/ML,/A!"+51B%TG0)BU48B?`IV(D"@\0\B?!;7E]=PXM%"(N(R`,``.G+_O__ -XMB?`QTO?QQT70`````"G6Z6W^__^)1"0$BT4(B00DZ,ZR_/_IY_[__XG"BX#( -XM`P``C01`P>`"`T(0BT@XZ3C___^+3=B%R720BU4(BT(0#[:`-0(```'&Z7S_ -XM__^)R#'2]W7,,?\IT>G(_O__C47PBU4(B40D$(U%#(E$)`R+11#'1"0(```` -XM`(D4)(E$)`3H'<#\_XM%\(7`=1F+11B%P`^$0O___XM5&,<"`````.DT____ -XMBT4,A<")1=P/A1W]___KUXVV`````(V\)P````!5B>564X/L((M="(MU$/:# -XM%`(```$/A)@```"+@PP"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=6^%]@^$A0`` -XM`(L&A7<.Z`0```(/$((G06UY=PXN##`(``(7`#Y7`Z6____^+ -XM@YP```"+50PYD*P!```/A6S___^+D+`!``#KRE6)Y5=64XG#@^PLB57@BW`0 -XM@W@T`71_C47LB40D"(U%\(E$)`2)'"3_EG`(``"+1>"%P'17,?^)'"3_EG0( -XM``"+0T"+4S2+CI`(```YT'(#C4+_QT0D"`````"#QP&)1"0$B1PD_]&)'"3_ -XMEH@(``"+1>R)1"0(BT7PB1PDB40D!/^6D`@``#M]X'6K@\0L,R)'"2)1"0(BT7PB40D!/^6D`@``(D<)/^6B`@``#M] -XMX'0WBU-`BT,TBXZ0"```.<)RJX/H`NNIQT0D"`````#'1"0$`````(D$)/^6 -XMD`@``(D<)/^6;`@``(/$+#'`6UY?7<.)]HV\)P````!5B>575E.#[`R+?0B+ -XM=0SVAQ0"```!=#B+APP"``"-!$#!X`(#1Q"+6#B%VP^5P(3`="R+!CM%$'=S -XMBW40*<:#Q`R)\%M>7UW#C;0F`````(N/#`(``(7)#Y7`A,!UU(L>.UT0=%8Y -XM71!S88MV"(/K`8/N`3E=$'?&.W44=@?KOSEU%'*ZB5PD!(/K`<=$)`@````` -XMB3PDZ&3\__\!QCE=$';=@\0,B?!;7E]=PXG&*W40@\0,6XGP7E]=PXMV"(/$ -XM#%N#[@&)\%Y?7<.)7"0$@\,!QT0D"`````")/"3H'?S__RM&"#E=$(UP`753@^P4BU4(BUT0BTT,QD,6`/:"%`(```%T-HN"#`(``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T*HL!@^@!B0.+002)0P0QP(,[``^4P(/$%%M=PXN" -XM#`(``(7`#Y7`A,!UUH-Y"`%T&XL!B0.+00B#Z`&)0P@QP(,[``^4P(/$%%M= -XMPXL!@^@!B0/'1"0(`````(E$)`2)%"3H0OO__XE#".NBC;8`````C;PG```` -XM`%6)Y593@^P0BU4(BUT0BW4,QD,6`/:"%`(```%T,HN"#`(``(T$0,'@`@-" -XM$(M`.(7`#Y7`A,!T)HL&@\`!B0.+1@2)0P2#Q!`QP%M>7<.0BX(,`@``A<`/ -XME<"$P'7:QT0D"`````"+!HD4)(E$)`3HN_K__SM&"'06BP:)`XM&"(/``8E# -XM"(/$$#'`6UY=PXL&QT,(`0```(/``8D#ZZ95B>575E.#[#R+?0B+=0R+71"+ -XM3SR+AYP```"%R8N`C`$``'00,=*#P@'&0!8`@\`8.<````BX*0`0``ZPV0C70F`(N7G````(G8.X*,`0``#X8-`0``C5CHB5PD -XM"(E$)`2)/"3H"?[__X7`=-6^`0```(N'G````(N`C`$``(DPBX><````BX", -XM`0``QT`$`````(N'G````(N`C`$``,=`"`$```"+AYP```"+7SR+@(P!``#K -XM`HGP@^L!#X2A````C7`8B70D"(E$)`2)/"3H3?[__X7`=-Z+AYP```"+@(P! -XM``#'``$```"+AYP```"+@(P!``#'0`0`````BX><````BX",`0``QT`(`0`` -XM`(N7G````(N"C`$``.L+C78`BY><````B=@[@I`!``!S,8U8&(E<)`B)1"0$ -XMB3PDZ-W]__^%P'39@\0\N`$```!;7E]=PX7V#X44____Z4/___^#Q#PQP%M> -XM7UW#QT7<`0```+H!````QT7@`````,=%Y`$```"+1SR#^`%T!(G"T>J-7=R) -XM5"0,B70D"(E<)`2)/"3HJ/O__XM7/+D!````@_H!=`2)T='I.<$/@ZK^__^) -XM7"0$B3PDZ*.Z_/^%P`^%<````BY"0`0``BT7")0@2+AYP```"+D)`!``"+1>2)0@CIO_W__XN'G````(N` -XMD`$``(DPBX><````BX"0`0``QT`$`````(N'G````(N8D`$``,=$)`@````` -XMB70D!(D\).BA]___B4,(Z7;]__^+3SR+EYP```#1Z8T$2<'@`P."C`$``(DP -XMQT`$`````,=`"`$```#K`HG8BY><````BXJ,`0``.L(BY><````B=@[@I`!```/ -XM@S+^__^-6!B)7"0(B40D!(D\).C>^___AF,_?__D(UT)@!5B>6#[#B+ -XM112)=?B+=1")??R+?0B)7?2#^`(/A+\```"#^`-T4H7`=4F+AYP```"+D)`! -XM``")T2N(C`$``(G(P?@#:<"KJJJJ.<8/A@4!``#'1"0(R`T)",=$)`0"```` -XMB3PDZ,?J_/^X`0```.G6````Z&P\_/^+AYP```"+D(P!``"+@)`!```IT,'X -XM`VG`JZJJJCGP-!':%]HT@?`=#1^`'PC01`C1S!@'L6``^$!@$``(L#BTT,B0&+ -XM0PR)000QP(M=](MU^(M]_(GL7<.-!':)T\'@`RG#B47@BP.)/"2)1"0$Z`^W -XM_/^%P'6[C47PB40D!(D\).B@?`=#1^(T$0,'@`RG#Z?;^__^-M@````#'1"0,`````,=$)`@````` -XMB5PD!(D\).CDL/__A<`/A-;^__^X`0```.G;_O__BX",`0``ZYF+AYP```"+ -XM@(P!``#I*?___XGVC;PG`````%6)Y593@^P0BW4(BX:<````BU9,BYB,`0`` -XMBPLYRG(@BX"0`0``.Q!W%CG*=%F)]H/#&#L3=?DYV'-0D(UT)@"#Q!"X`0`` -XM`%M>7<.-="8`QT0D#`````#'1"0(`````(E<)`2)-"3H1+#__X7`=="+0Q`[ -XM1E!S+(N&G````(/#&(N`D`$``#G87<.-M"8`````C;PG`````%6)Y5.#[!2+70B+0Q#' -XM1"0(`````,=$)`0`````B1PD_Y"0"```N@$```")V.BN]?__A<`/A88```"+ -XM2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H____B40D"(E4)`2#PAB) -XM%"3H53W\_XN#G````(N`C`$``(E$)`B#P!B)1"0$B1PDZ$+W__^%P'4NQT0D -XM#`````#'1"0(`````(N#G````(N`C`$``(D<)(E$)`3H-J___X/$%%M=PX/$ -XM%+@!````6UW#D(UT)@"+@YP```"+@(P!``")1"0(ZZ"-M"8`````C;PG```` -XM`%6)Y5.#[!2+70B+0Q#'1"0(`````,=$)`0`````B1PD_Y"0"```N@$```") -XMV.AN\___A<`/A88```"+2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H -XM____B40D"(U"&(E$)`2)%"3H93S\_XN#G````(N`D`$``(E$)`B#Z!B)1"0$ -XMB1PDZ`+W__^%P'4NQT0D#`````#'1"0(`````(N#G````(N`D`$``(D<)(E$ -XM)`3H1J[__X/$%%M=PX/$%+@!````6UW#D(UT)@"+@YP```"+@)`!``")1"0( -XMZZ"-M"8`````C;PG`````%6)Y5=64X/L/(M%"(M=$(M]#(N`G````(7;#Y3" -XMB=:)1=!U3(7_=4C'1"0$`@```(M-"(D,).@5L_S_A^@*-_S_C;8`````BT4(BY"<````Z[V0C70F`(/_`76PZ5[___^-M@````"+ -XM==!F@X[(`0``$,>&K`$```````"+10@Y>$P/A'\!``"+50B+@JP$``"I```` -XM$'5UJ!!T8HM-T#'`9H.)R`$```B#Q#Q;7E]=PXVV`````(/[`@^%-____XMU -XM"(M./(7)=`\QTH/"`8,``8/`&#G*=?.+50B+0DPYQW<&@\`!B4),BTW0,7UW#BX*<````@[A<`0```7>/BW4(C57LBT80B50D"(U5 -XM\(E4)`2)-"3_D'`(``"#^P(/A!H!``"#^P,/A&L!``"#ZP$/A??^__^+EIP` -XM``"+BHP!```[.8G+=`>#PQ@[.W7YBT4(]H`4`@```0^$M0$``(G&BX`,`@`` -XMC01`P>`"`T80BT`XA<`/E<"$P`^%B@$``(N2D`$``(U#&#G0#X=Y`0``.WL8 -XM#X5P`0``O@$```#K"XVT)@`````[.'4*@\`8@\8!.=!V\HM5"#MR/`^"C0(` -XM`(.*K`0``""+==!F@X[(`0``((MU"(M5[(M&$(E4)`B+5?")-"2)5"0$_Y"0 -XM"```,<#I\OW__V:#CL@!```!Z73^__^+=0B+3CR%R706,=*-M"8`````@\(! -XM@R@!@\`8.G_O__@^@!B4),Z9S^__^+50B+@IP```"+ -XMF(P!``"+2P2)3=0[.W0(D(/#&#L[=?G'1"0(`````(E\)`2+=0B)-"3HXN[_ -XM_SM&/(G!#X+J`@``@XZL!```((M-T&:#B<@!```@Z3S___^+=0B+EIP```"+ -XMLHP!```[/G0'@\88.SYU^8M%"/:`%`(```$/A'H!``")P8N`#`(``(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,`/A`H!``")\\=%X`$```#'1=@!````BTT(BT7@.T$\ -XM`!.=AS\<=$)`@`````B7PD!(M5"(D4).@D[?__B478 -XMZ;?^__^+10B+B`P"``"%R0^5P.F,_O__BU4(BT(0B=HIRL'Z`VG2JZJJJL=$ -XM)`@`````B50D!(M-"(D,)/^0D`@``(M%"(GRZ+3M__^%P`^%(O___XM5"(T$ -XM=HT\Q0````"+@IP```"+@)`!``")'"0IV,'X`VG`JZJJJH/``2GPC01`P>`# -XMB40D"(T$'XE$)`3HGC;\_XM-"(N!G````(N0D`$``(G0*?@YV'(=@RL!@\,8 -XM.=AS]HMU"(N&G````(N0D`$``(G0*?B-6!B-0^B)WCG0`#B40D".A;-?S_BU4(BX*<````.["0`0``=Q>#!@&# -XMQAB+30B+@9P````YL)`!``!SZ8MUW(7V#X1$_/__O@$```#K#X/&`3MUW`^' -XM,?S__X/#&(D[BT74B7,(QD,6`(E#!,=$)`P`````QT0D"`````")7"0$BU4( -XMB10DZ!"G__^%P'2_Z1W]__^+30B+@9P```"+@)`!``")="0$*?#!^`-IP*NJ -XMJJJ#P`$IV(T$0,'@`XE$)`B-!%N-!,:)!"3HH#3\_XM%V(7`#X3]^O__BU4( -XMBX*<````.["0`0``#X?H^O__NP$```#K*9"-="8`.UW8#X33^O__BU4(@\88 -XMBX*<````.;"0`0``#X*[^O__@\,!B3Z)7@C&1A8`QT0D#`````#'1"0(```` -XM`(ET)`2+30B)#"3H5*;__X7`=+#I8?S__XM-"(M=X"M=V(M1$,=$)`@````` -XMBX&<````B?$KB(P!``")R,'X`VG`JZJJJHE$)`2+10B)!"3_DI`(``"+10B) -XMVNBDZO__A<`/A1+\__^+50B-!%O!X`.)1`#B40D"(M%S(DT)`'PB40D!.B-,_S_BT78A",9&%@#'1"0,`````,=$)`@`````B70D!(M-"(D, -XM).A]I?__A<`/A8O[__\[7=AUQ8MU"(N&G````(N0D`$``(G0*T7,C7`8C4;H -XMB?,YT',;B70D"(E$)`2+10B)!"3HS>W__X7`#X5+^___QT0D#`````#'1"0( -XM`````(ET)`2+50B)%"3H%J7__X7`#X4D^___BTT(@\88BX&<````BY"0`0`` -XM.=IUG^DO^?__B?/'1>``````Z6K[__^0C70F`%6)Y5=64X/L?(M]"(MU$(N' -XMG````&:#B,@!```!C47PB40D!(D\).@$]/__A<`/A7P!``"#?10'=@N-M@`` -XM``#H/R[\_P^V312P`=/@J(X/A6@!``"H<73ABX><````BUWPBY",`0``BPJ# -XM^0$/A-$#``"+1T`Y1T0/A!\$```YQ@^"NP(``(L"B46\BT($B47`BT((B47$ -XMBT(,B47(BT(0B47,BT(4B470B?CH?^G__X7`#X7W````A?9T?3';D.LKBT78 -XM@\,!BTW4.?.)1<"+1=R)3;R)1<2+1>")12)1B)1=!T4(U%U(U5 -XMO(E$)`B)5"0$B3PDZ+WK__^%P`^%I0```(-]U`%UL?:'%`(```$/A!8&``"+ -XMAPP"``"-!$#!X`(#1Q"+0#B%P'4&@WW<`76(BTW4BX><````BY",`0``B0J+ -XM1=B)0@2+1=R)0@B+1>")0@R+1>2)0A"+1>B)0A3'1"0(`P```,=$)`0````` -XMB3PDZ(_L__^%P'4KQT0D#`````#'1"0(`````(M-#(D\)(E,)`3H_.___X7` -XM#X1@`@``C70F`+@!````@\1\6UY?7<.+3?"-1=2)39R)1"0(BX><````BX"0 -XM`0``B3PDB40D!.B.Z___A<````BX"0`0``B3PDB40D!.@[ZO__A<`/A"/_ -XM___I;O[__XM%%(7`#X0Z_?__@WT4!0^$X0```(U%[(E$)`2)/"3HRO#__\=% -XMF`````"%P`^%PP```(7V='2+1SP[1T!U2.MJBX<,`@``C01`P>`"`T<0BT`X -XMAR+30R+$(D1BT`,B4$$A?8/A0(#``"#?10%#Y5%JX!]JP!T%(-] -XM%`)T#HM-#(M!!(7`#X2\`@``@\1\,_[___'1"0$`````(D\).@\<````BYB,`0``QT6P`0```.F9_O__BX><````BY"0 -XM`0``BP*)1=2+0@2)1=B+0@B)1=R+0@R)1>"+0A")1>2+0A2)1>B)^.C+X___ -XMA<`/A4/[__^%]@^$20,``#';ZU*-M"8`````BT6\.T74=!2)1"0$B3PDZ(RC -XM_/^%P`^$(@,``(M%P(/#`8M-O#GSB478BT7$B4W4B47R+30R+$(D1BT`,B4$$A?8/A!#\ -XM__\QV\=%H`````#K$X-]%`<```` -XMBX"0`0``B3PDB40D!.@WY?__A<`/A6_Y__^+AYP```"+5=2+@)`!```Y$'04 -XMB50D!(D\).C`H?S_A<`/A"H!``")/"3H<.W__X7`#X4X^?__@WT4`G6)BX>< -XM````BU6<.Y",`0``=S#'1:`!````Z7;___^%VW0IBX><````BTV<.XB,`0`` -XM#X9=____@^D8B4V<````BU6<.Y"0`0``=1OK.(UV`(/N`70P -XMBX><````BTV<.8B0`0``=!^+79R#19P8BU6`#*<.)7:SI?/O__XM% -XME(7`#X2;^?__BP.+30R)`?:'%`(```$/A&@!``"+APP"``"-!$#!X`(#1Q"+ -XM0#B%P`^5P(3`#X0Y`0``BTL$BT=4,=+W=SB-%!&)5"0(BP.)/"2)1"0$Z&37 -XM__^+50R)0@3I/?G__\=$)`P`````QT0D"`````")3"0$B3PDZ.V9__^%P`^$ -XM_/K__^FP]O__@WT4`P^$@P```(-]%`>)]@^%)/7__^E*_O__BT6@A<`/A.;X -XM__^+39R+50R+`8D"]H<4`@```0^$V@```(N'#`(``(T$0,'@`@-'$(M`.(7` -XM#Y7`A,`/A*D```"+19R+2`2+1U0QTO=W.(T4$8E4)`B+39R+`8D\)(E$)`3H -XMKM;__XM5#(E"!.E_^/__A?8/A87]__^+AYP```"+@(P!``")19SIO/W__\=$ -XM)`P`````QT0D"`````")3"0$B3PDZ!N9__^%P`^$I?W__^G>]?__QT64```` -XM`(VT)@````#IA?G__XM+"(/I`0^O3SB0Z;K^__^+MPP"``"%]@^5P.F?_O__ -XMBU6R+3P2#P`@YP0^$ -XM0`$``(GRB?LQP`%32"ES-`%!2(M!1`%Q-`%Q/#M!0`^$\0```(N1G````(T$ -XM=@%Q0(T\Q0`````!NI`!``"+0T"!B:P$```@```"*7,\*?`[0T2)0T!S`XE# -XM1(N#G````"FXD`$``#'`@8NL!```(````NLEQT0D#`$```#'1"0(+`X)",=$ -XM)`0"````B3PDZ*_/_/^X`0```(M=](MU^(M]_(GL7<,QP.OO*=:-M"8````` -XMBU7LBQ^#P@@YTW0(C48!.4-`)\(G[]]@QTNFN_O__D(VT)@````!5B>57 -XM5E.#[`R%THE5\(M`$'1_BW`0C7@0.?=T?XGSZP:+&SG?="^+0R"+5?"+0`B) -XM5"0$B00DZ`@C_/^%P'7A@\0,B=A;7E]=PXVV`````(LV.?=T1HM&((M8",=$ -XM)`0O````B1PDZ&@A_/^%P'0#C5@!BT7PB1PDB40D!.C"(OS_A+ -XM1TR)0A"+1U"+5R")0A2+1R!F@T@8`8N'G````(&/K`0````0``"+EIP```") -XM=Q2+@+0!``")@K0!``"+1SB)1CB+1S2)1C2+1TB)1DB+1D0[1D`/A#,!``#V -XMAFP$```!#X7[````BX9D!```BU=`B48\.=")1D0/A@G````-'HB8:$````QT0D!!@```"+@[0!``"#P`&)!"3H/2+\_X7` -XMB8.,`0``#X3@````BXZ<````BT8\BY&,`0``C01`@^H8C03"B8&0`0``QT0D -XM"`$```"+1DR)-"2)1"0$Z$;>__^Z`0```(7`=5F+3?"+%H/!$#G*#X3/```` -XMBT8$B4($BT8$.<$/A+,```")$(L'B7X$B0:+1?"+%X/`"#G"#X2/````B7($ -XMBX:<````,=*)-V:#B,@!```!@8ZL!```0````H/$'(G06UY?7<.+AF0$``"+ -XM5T"-!$#!X`(#1A"+0#@YT(E&/(E&1`^'^?[__XM&0.GW_O__BT8T@^@!B49$ -XMB49`B48\Z>O^__^)-"3'1"0(`````,=$)`0%````Z$/,_/^#Q!RZ`0```%N) -XMT%Y?7<.+5?")<@SI:?___XM%\(E0$.E$____BU7PBT8$B4(4BQ;I)____XVT -XM)@````"-O"<`````58GE5U93@^P%]@^$KP```(M&1#M&0`^$R0```(M&-(N6G````(/H`8E&0-'HB8:$ -XM````BT8\BXJ0`0``C01`P>`#`X*,`0``BQ&-6.B)4.B+002)0P2+00B)0PB+ -XM00R)0PR+01")0Q"+012)0Q2+CIP```"+1CR+D8P!``"-!$"#ZAB-!,*)@9`! -XM``"#??`!=#>#??`"=`7HS!S\_\=$)`@`````QT0D!`````")-"3H0-S__X&. -XMK`0```````*#Q!PQP%M>7UW#QT0D"`,```#'1"0$`````(DT).@4W/__Z]*) -XM]HM&-(/H`8E&1(E&/.DF____BQDQ]CG:#X0`____BT%(B=Z)0TB+030!0S3' -XM1?`"````Z>;^__^)]HV\)P````!5B>564X/L((M="(U%](MS$(E$)`2)'"3H -XM<_[__[H!````A`C`$```````"+1?2!BZP$````$```B4,4@\0@B=!;7EW# -XMBT,$B48,BT,$BQ,YP768D(E6"(U6$(D3BT84B4,$.U80=9:)7A#KEL=$)`A8 -XM#@D(QT0D!`,```")'"3HL,G\_[H!````Z[")]HV\)P````!5B>575E.#[#R+ -XM=0B+?0R+1A")1>"#?C0#=RW'1"0,`P```,=$)`B0#@D(QT0D!`,```")-"3H -XM9@2)/C';BT8TN@$```"# -XM^`%T`XU0_XM/-(E60+H!````@_D!=`.-4?^)5T"+5=PY5=@/A.(!``"%VW0# -XM*4X\BT9`.48\=@.)1CPY1D1V`XE&1/:&;`0```$/A=X```"+AF0$``")1SR) -XM1T2+1T`Y1SQV`XE'/#M'1',#B4=$@WXT`8N.G`````^$?`$``(N1C`$``(M& -XM/(/J&(T$0(T$PHF!D`$``(N/G````(-_-`$/A$@!``"+D8P!``"+1SR#ZAB- -XM!$"-!,*)@9`!``"+1D#1Z(7`B8:$````=0K'AH0````!````BT=`T>B%P(F' -XMA````'4*QX>$`````0```(N'K`0``(N6K`0```T@```"@^(/"=")AZP$``"# -XMQ#PQP%M>7UW#C70F`(/[!@^&"_[__[L&````Z0'^__^+AF0$``"-!$#!X`(# -XM1A"+0#CI$?___XVV`````(U%\(E$)`2)-"3H8=[__S'2A-(M/ -XM-(E'2(M&!`%.2(E'!(M%X(M6!(/`"#G"#X3<````B3J+AIP```"[`0```(E^ -XM!(N0C`$``(M&0(D4)"G(C01`P>`#B40D"(T$28T$PHE$)`3H51S\_^D(_O__ -XMBX&,`0``Z;_^__^0BX&,`0``Z8O^__^0C70F`(/X`;H!````=`.-4/_VAFP$ -XM```!B58\B59$=#R+AF0$``"-!$#!X`(#1A"+0#B)1SR)1T2-0?\Y1SP/AB3^ -XM__^#Z0%T.(E'/.D4_O__BU7@B7H,Z9#]__^+AF0$``#KSL=$)`@`````QT0D -XM!`4```")-"3HV,7\_^G@_/__N`$```#KP8M%X(EX"(M/-(UV`.D5____C70F -XM`(V\)P````!5B>575E.#["R+112+=0B+?1"%P(M>$'1KB?J)\.BN]O__BU4, -XMB47PBT7PA<")`G1[BWT4A?\/A:4```"+%HU+"#G*#X0&`0``BT8$B4($BT8$ -XM.<$/A!D!``")$(U3$(D6BT,4B48$.U,0#X3[````BT,4B3")SW]HG!,<#K$XUV`#M]['9/,2)1=2+1="+5=2%R70']]B#T@#WVH/$,%Y?7<.%]G4+N`$````QTO?VB<&+ -XM1>R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!RG+D!```` -XM,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KWV(/2`/?: -XM]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`)QXM%\-/F -XM#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)````'5S86=E.B!E>"!;+65&4G)3F5= -XM(%MF:6QE("XN+ET*`````$5R7!E"@!L -XM:6YE]!`B`O00(Y;D$"*Z]!`AS -XM;7-O`')MC0@(`````&"<"`AHC0@(:XT( -XM"`````"#C0@(+_8("(F-"`@`````EHT("!+V"`B&ET('=I;&P@9&ES8V%R -XM9"!M;V1I9FEC871I;VYS`````#(V-'Q&:6QE(&UO9&EF:65D('-I;F-E(&QA -XM2!T:&%N('1H:7,@8V]P>0``,C4X?"5S -XM(&5X<&%N9&5D(&EN=&\@=&]O(&UA;GD@9FEL92!N86UE6]U`#(T,'PE -XMF4@979E;G0`,C@W?%5N97AP96-T960@=W)I=&4@979E;G0` -XM``"S"P4(]`L%",$,!0BS"P4(APP%"*0,!0@9#`4(LPL%"+,+!0@S#`4(30P% -XM"&H,!0C""P4(610%"&41!0B"$04(@A$%"%D4!0A9%`4(@A$%"$T4!0@P,3(S -XM-#4V-P`P,3(S-#4V-S@Y86)C9&5F````,#`X?$5R"]V:3H@`"5S)2XJ2!O;F4@=&%G(&9I;&4@;6%Y(&)E('-P96-I9FEE9"X`+7,@ -XM;W!T:6]N(&ES(&]N;'D@87!P;&EC86)L92!T;R!E>"X`@#,%"'$S!0CO,04( -XM[S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04(8C,%"%,S!0CO -XM,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q -XM!0CO,04([S$%".\Q!0@O,P4([S$%"!PS!0CO,04([S$%".\Q!0CO,04([S$% -XM".\Q!0@-,P4([S$%".\Q!0CO,04([S$%".\Q!0CZ,@4(\#(%",DR!0CO,04( -XMMC(%"*LR!0@P,3=\36%R:R`E&ES=',`,C8X?&-O;F9I2!K97D@=&\@8V]N=&EN=64Z(``R-S!\4')E2!T;R!C;VYT:6YU92!;.B!T;R!E;G1E2!K97D@=&\@8V]N=&EN=64@6W$@=&\@<75I=%TZ -XM(``P,S!\5&AE(&9I;&4@)7,@:7,@;F]T(&$@;65S3TEULJ/R1@)R)<`'-H:69T=VED=&@].`!S:61EA"`@``````P````````##]0@(`(4%"`(````(````+:$("``` -XM`````````````*>\"`@``````P`````````UH0@(````````````````0J$( -XM"``````"`````````$VA"`@```````````````">V@@(```````````````` -XM6*$("'"%!0@``````````&&A"`@``````P````````!GH0@(``````$````` -XM````;:$("````````````````'>A"`@``````@````````"`H0@(<(4%"``` -XM````````B*$("'"%!0@``````````).A"`@``````@````````";H0@(L'\% -XM"```````````7(P(".""!0@"````"````*6A"`BP@@4(``````@```!8O`@( -XML'\%"```````````L=X("``````!`````````*JA"`@``````0````````"P -XMH0@(``````(`````````NJ$("``````!`````````+^A"`@``````````!`` -XM``#(H0@($(8%"`,`````````SZ$("."%!0@#`````````-,$"0BP?P4(```` -XM``````#7H0@(X(4%"```````````T+D("``````!`````````-VA"`@````` -XM`0````````#FH0@(<((%"`,`````````(J$("``````#`````````-&A"`C@ -XMA04(`P````````#QH0@(``````$`````````AIL("(!_!0@``````@```/BA -XM"`@``````P````````#_H0@(````````````````!J(("``````!```````` -XM``RB"`@``````@`````````3H@@(````````````````8*(("``````"```` -XM`````!FB"`@````````````````DH@@(,((%"`,`````````+:(("``````` -XM````(````(3="`@``````P`````````TH@@(``````,`````````/J(("``` -XM```"````0````$FB"`@```````````````!3H@@(````````````````7*(( -XM"``````"````0````&>B"`@```````````````!PH@@(```````````0```` -XM>J(("+!_!0@"````0````(*B"`@``````@````````!@P0@(``````,````` -XM````,(L("``````#````"0```(RB"`@```````````````"2H@@(```````` -XM````````FJ(("``````!`````````**B"`BP@04(``````````"LH@@(```` -XM````````````M*(("-"`!0@"````#````+JB"`A`@04(`@````P```"_H@@( -XM8(`%"`(````,````Q:(("``````!`````````,JB"`C0?P4(`@````````#1 -XMH@@(````````````````W*(("``````"`````````.2B"`@``````@`````` -XM``#OH@@(``````$`````````^*(("``````````````````````````````` -XM```````!HP@(`0````FB"`@"`````Z(("`,````$HP@(!0````>C"`@(```` -XM^Z$("`H````*HP@(#0```!V<"`@+````^)@("`X````-HP@($@```).-"`@3 -XM````K:$("!4````0HP@(&````!.C"`@?````':,(""(````@HP@()0```"2C -XM"`@F````,:((""P```"TL0@(*@```"FC"`@P````+:,("#(```!>H`@(-``` -XM`#*C"`@Z````-Z,("#<````ZHP@(.````#ZC"`@V````/<$("#X```!!HP@( -XM/0```$2C"`A"````1Z,("#P```!?BP@(/P```$JC"`@_````&O<("$D```!2 -XMHP@(3@```%6C"`A)````6*,("$L```!;HP@(3````+^_"`A-```````````` -XM```P-#E\5&AE('-E8W1I;VX@;W!T:6]N(&UU2!0A8+79I+7)E8V]V97(M9FEL93H@`%@M=FDM -XM2!F:6QE`````$9R;VTZ(')O -XM;W0@*$YV:2!R96-O=F5R>2!P2X@```E2`O(&]R -XM(#\`!"$C)BH\/3Y`?@`P.#!\56YK;F]W;B!C;VUM86YD(&YA;64`,6)C83$` -XM,#DX?%1H92`E2!N -XM;W0@8F4@>F5R;P!L<@`P.#9\57-A9V4Z("5S`'-C2`E;'4@;&EN97,@:6X@=&AE(&9I;&4`,3`S -XM?$EL;&5G86P@861D"!M;V1E -XM`````#`X-'PE"!T86)L92!E"!C;VUM86YD(&9A:6QE9#H@<&5N9&EN9R!C;VUM86YDP@4(N,(%"%W'!0A\Q`4(?,0%"`7'!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0BOQ@4(_<<%")['!0B>QP4(GL<%")[' -XM!0B>QP4(GL<%")['!0B>QP4(GL<%")['!0A\Q`4(?,0%"'S$!0A\Q`4(?,0% -XM"-W%!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4( -XM?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(9\8%".O+!0CLR@4([,H%".S* -XM!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H% -XM".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(Z\L%".S*!0CLR@4( -XM[,H%".S*!0CXRP4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(FLL%".S*!0CL -XMR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S* -XM!0CLR@4(H\L%".3>!0B#W@4(@]X%"-C$%"-C&-E<'0@870@=&AE(&5N9``R-S-\16YT97)I;F<@ -XM97@@:6YP=70@;6]D92X`,3$T?$YO(&9I;&4@;&ES="!T;R!D:7-P;&%Y`"5S -XM)7,E'!A;G-I;VX@9F%I -XM;&5D`"$E3H@)7,`&5C=71E(&$@8G5F9F5R`#P`2!L:6YE(&YU;6)E<@!S -XM:&EF="!L:6YE5T`8V]P>0!C'5S86=E`%ME>'5=')C -XM(&9I;&4`(69.`%ML:6YE72!O6W!E;ET@6R]212]=(%MF;&%G2!L:6YEF4@6RLM -XM77)O=W,`5T@;&EN92!;9FQA9W-= -XM``!C;W!Y(&QI;F5S(&5L2!B6W5F9F5R2!S970I(&9I;&4@;F%M -XM90``8G)I;F<@82!B86-K9W)O=6YD960@72!;=VEN -XM9&]W7W-I>F5=(%MF;&%G2!D:69F97)E;G0@,,( -XM")S#"`C3O`@(T$,&"`````#:O`@(W;P(",##"`@1"PD(L$8&"$(```!ZL0@( -XM[,,("/6\"`C.V`@(X$@&"`````#+P0@(),0("%S$"`@E!`D(D$L&"``!``!^ -XMO`@($+T(""N]"`CXF`@(D$L&"``!``!^O`@(1KT(""N]"`A=O0@(8!$'"``` -XM``#;OP@(9;T("(S$"`B;T("+#$"`B'O0@(L)$& -XM"``%``!^O`@(BKT("-C$"`B7O0@(P%X&"`0```#:O`@(",4("#S%"`B>O0@( -XM\!`'"`````!/C0@(H[T("*J]"`C!O0@(``(&"#$```#5V@@(R+T("-N]"`CV -XMO0@(4&@&"$(```#[O0@(<,4("`"^"`@2]@@(X'$&"`$```#+P0@('KX(""N^ -XM"`A8O`@(T(4&"((```#\O0@(G,4(",#%"`B#E`@(('4&"$(````O]@@(0+X( -XM".C%"`C3]`@(X'$&"`$```#+P0@(6[X(""N^"`@(H@@(`&\&"`````!MO@@( -XM<+X("`S&"`B&O@@(<'(&"`````"-O@@(DKX("*&^"`C)P`@(T`8&"``!``"T -XMO@@(.,8("%C&"`C3!`D(<(4&"((```#\O0@(A,8("*C&"`C0N0@(L'H&"`$` -XM``#;O`@(N+X(",C&"`C1H0@(((4&"((```#\O0@([,8("-6^"`CCO@@(P"H' -XM"#0"``#;O`@(Z+X("!#'"`CSO@@(P"H'"#0"``#;O`@(^KX("#S'"`@'OP@( -XMX'L&"`````!/C0@($+\("'3'"`@;OP@(H`4&"``!``#5V@@()+\(")S'"`AV -XMO`@(,(8&"'$```#_]`@(-;\("-#'"`A+OP@(T(8&"`````#5V@@(4+\("%J_ -XM"`@$V0@(L(D&"#$```#;O`@(9;\("/#'"`@KH`@(,'L&"`````"-O@@(@[\( -XM")._"`BHOP@(,)$&"``$``"OOP@(LK\(""#("`C"OP@(T`0&"`````#5V@@( -XMR;\("$3("`C5OP@(T`4'"``!``#:OP@(W[\("'3("`C;O`@(,-X&"`(```#; -XMO`@(F,@("-3("`C(L0@(\)P&"``"``!]O`@(];\("`C`"`B1F@@(L*4&"``` -XM```@P`@(^,@("#C)"`B$W0@(4*L&"``"``!/C0@((\`("&C)"`@KP`@(8+(& -XM"`````".O@@(,L`("$#`"`A]H@@(X+,&"``"``#5V@@(6\`("&7`"`A^P`@( -XMX+,&"``"``#5V@@(AL`("&7`"`C-H0@(@'D&"$(````9C0@(D\`(")S#"`@] -XMP0@(,/8&"``!``#:OP@(L<`("'3("`C&P`@(4/4&"`````#5V@@(SL`("-O` -XM"`CPP`@($.\&"`````#:OP@(]\`("(C)"`@3P0@(L0@(<-P&"`(```#;O`@( -XM7,P("(3,"`@```````````````````````````````!.;R!C0!A9&0`8W-C;W!E -XM+F]U=`!C&5C(&-S8V]P92`M9&P@+68@)7,`````,S$R?"5D.B!N;R!S=6-H(&-S -XM8V]P92!S97-S:6]N```E2!C7!E.B!U2!Y;W4@;W(@2!Y;W4````Q,S!\)7,Z(&YO="!S;W5R8V5D.B!W2!M87!P960`,3,T -XM?%1H92`E2!B92!R96%D```Q-#9\)7,Z(')E860@;&]C -XM:R!W87,@=6YA=F%I;&%B;&4````Q-#E\3F\@8F%C:V=R;W5N9"!S8W)E96YS -XM('1O(&1I&5C=71E`'!Q&ET960`0V]N=&EN=65D`$5- -XM5"!T'!IF4@;&EM:70@97AC965D960````````` -XM```````&````G]X("`X```"JW@@("@```+;>"`@4````P-X("!,```#-W@@( -XM!P```-?>"`@(````X-X("`$```#YW@@(!`````#?"`@=````%-\("`(````H -XMWP@(%P```#+?"`@&````/]\("`D```!(WP@(#0```$_?"`@;````6]\("`,` -XM``!SWP@("P```'C?"`@1````B]\("`P```">WP@(#P```*[?"`@%````N=\( -XM"!(```#(WP@(%0```-+?"`@6````YM\("!````#[WP@('@```!#@"`@?```` -XM)N`("!H````\X`@('````%+@"`@8````9N`("!D```!]X`@(,34R?'-H:69T -XM=VED=&@@;W!T:6]N('-E="!T;R`P`%)%(&5R+EM=)"H`,34S?$-O=6YT(&]V97)F;&]W`#$U-'Q#;W5N="!U;F1E -XM2!N -XM;W0@8F4@8V]M8FEN960@=VET:"!T:&4@8R!F;&%G(&EN('9I(&UO9&4`PL(& -XM"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@C" -XMP@8(/<(&"#W"!@CXQ@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&".G& -XM!@@]P@8(VL8&"#W"!@@]P@8(6,8&"%C&!@A8Q@8(6,8&"%C&!@A8Q@8(6,8& -XM"%C&!@A8Q@8(6,8&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@] -XMP@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W" -XM!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(+\8& -XM"#W"!@@]P@8(/<(&"!S&!@@]P@8(/<(&"#W"!@@]P@8(#<8&"#W"!@@]P@8( -XM/<(&"/[%!@@]P@8(FL(&"+_5!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5 -XM!@BCU08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@B-U08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(&]8&"+K.!@BZS@8( -XMNLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(!=8&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"(W5 -XM!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@@QU@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@BZS@8(NLX&"+K.!@COU08(,38T?"5S.B!T:&4@=&%G)W,@;&EN92!N -XM=6UB97(@:7,@<&%S="!T:&4@96YD(&]F('1H92!F:6QE````,38V?"5S.B!S -XM96%R8V@@<&%T=&5R;B!N;W0@9F]U;F0`````,34Y?$QE2!A="!T:&4@;&%S -XM="!T86<@;V8@=&AI'5S86=E -XM(%MC;61=/$-2/B(*````1F]R(&$@=FD@:V5Y('5S86=E('-T871E;65N="!E -XM;G1E5T\0U(^(@H`````5&AE("5S(&ME>2!H87,@ -XM;F\@8W5R&ET+"!E;G1E0`Q-S1\57-A9V4Z("5S -XM`#$T-'PE2!F:6QE(&YA;65S```` -XM,C@S?%1H92`E"!T97)M:6YA;"!I -XM;G1E"!T97)M:6YA;"!I;G1E2!O9B!#86QI9F]R;FEA+"!" -XM97)K96QE>2X````Q-S5\5&AE('9IB5C`#(U -XM,WQ72!S8W)E96YS`%Y#`%MC;W5N=%U>1`!;8V]U;G1=7D4`7D4@2!C:&%R86-T97)S`%MC;W5N=%U>2@!>2B!M;W9E(&1O=VX@8GD@;&EN97,` -XM7DP`7DP@2!L:6YE2!L:6YE -XM4@!>4B!R961R87<@5@!>5B!I;G!U="!A(&QI -XM=&5R86P@8VAA"!M;V1E`%Y=`%Y= -XM('1A9R!P=7-H(&-U`%Y>('-W:71C:"!T;R!P&ET`%M;`%M;(&UO=F4@8F%C:R!S96-T:6]N`%U=(&UO=F4@ -XM9F]R=V%R9"!S96-T:6]N`"!>(&UO=F4@=&\@9FER2!C;VQU;6YS`&U;82UZ70`@;2!S970@;6%R:P`@;B!R97!E870@ -XM;&%S="!S96%R8V@`6V-O=6YT76\`(&\@87!P96YD(&%F=&5R(&QI;F4`6V)U -XM9F9EB!R97!O02!S96%R8V@@9F]R=V%R9"!F;W(@8W5R -XM0R!I;G1E2!L:6YE2!L:6YE2!L -XM:6YE2!T -XM97AT('1O(&UO=&EO;B!I;G1O(&$@8W5T(&)U9F9E<@````!;;&EN95UZ6W=I -XM;F1O=U]S:7IE75LM?"Y\*WQ>?#Q#4CY=```````````````````````````` -XM````````````H(,'"")`5`"H[0@(!/@(")![!P@@``0`LNT("+SM"`@````` -XM`````-3M"`@H^`@(<'T'""``!`#7[0@(8/@("-!Z!P@```0`X>T(".OM"`B` -XM?`<((``$``/N"`@-[@@(0)4'"``````G[@@(*NX("&!>!P@@`$0`.>X("$/N -XM"`@`````````````````````,'X'"!@`1`!>[@@(:.X("``````````````` -XM````````<@<(`````'[N"`B![@@(P'X'"$@`1`"2[@@(D/@("#!^!P@8`$0` -XMG.X("*;N"`@`````````````````````$'\'"!@`1`"\[@@(QNX("``````` -XM````````````````<@<(`````-KN"`C=[@@(`````````````````````!`] -XM!P@@0```[NX("/'N"`C0?0<((``$`/SN"`@&[P@(```````````B[P@()>\( -XM"-!Y!P@`````0N\("$7O"`@`````````````````````,'L'"```!`!<[P@( -XM9N\("*!!!P@````">N\("'WO"`@``````````(_O"`B\^`@(D$0'"`````"; -XM[P@(GN\("(!`!P@@0!``M.\("+?O"`B@0P<(`````,_O"`C2[P@(```````` -XM`````````````*!X!P@@`$0`[>\("/3X"`BP/@<((``L`ACY"`@\^0@(```` -XM`````````````````*!%!P@@``X`^.\("`?P"`A@=P<(@`!$`"7P"`@O\`@( -XMH&0'"")`1`!&\`@(2/`(""!#!P@`````/+L("%GP"`@P9`<(*`!#`'#P"`AD -XM^0@($)('"")`1`!X\`@(@?`("-".!P@B0$0`E_`("*#P"`@````````````` -XM````````,'X'"$@`1`"Y\`@(C/D("%`T!P@@`$0`PO`("+CY"`@0?P<(2`!$ -XM`,OP"`C<^0@(``````````!!\0@(U/`("/")!P@B@$``[_`("/WP"`@`7@<( -XM(`!``+BB"`@/\0@(```````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````,#H'"``````J\0@(0_$("``U!P@@`$0` -XM4?$("`CZ"`B@0@<((``L`%KQ"`AP\0@(`````````````````````"!"!P@@ -XM`"P`CO$(""SZ"`@0B@<((H!``*3Q"`BR\0@(T"X'""``!`'%\0@(S?$("/!6 -XM!P@@``P`W_$(".CQ"`APZ0<((`!$`/[Q"`@'\@@(```````````<\@@(+?(( -XM"```````````1O(("%#R"`CP[`<((`!$`&GR"`AR\@@(4#$'""``1@",\@@( -XM3/H("%"`!PA(`$4`G_(("*CR"`@`@`<("`%%`+CR"`AT^@@(<%8'""``#`#! -XM\@@(G/H("'`]!P@@``P`RO(("-/R"`@`````````````````````8'\'"`@! -XM10#A\@@(ZO(("+!_!P@(`44`<(L("`/S"`B`A0<((H!``/:B"`@<\P@(X%T' -XM""``#``S\P@(//,("`!Q!P@@`(P`4?,("+SZ"`B01`<(`````%OS"`A=\P@( -XMX%,'""``#`!R\P@(>_,("```````````D?,("*+S"`A0,@<((`!&`,#S"`C@ -XM^@@(T.('""`````$[P@(T_,("```````````````````````\0<((`!$`._S -XM"`CX\P@((/$'""``C``0]`@(#/L("```````````(?0("#+T"`@@]P<(```` -XM`#_T"`A"]`@(,(H'""!`1`!8]`@(6_0("```````````````````````C`<( -XM($!$`(H&"0AP]`@(\%\'""``1``!P@@`$0` -XMJO4("+/U"`C`5`<((``,`,OU"`C4]0@(,'X'"!@`1`#L]0@(]?4("!!_!P@8 -XM`$0`"_8("!3V"`B@>`<((`!$`"CV"`@Q]@@(<&0'"````@!*]@@(4?8("%"% -XM!P@B@$``]J(("%WV"`C`70<((``,`'/V"`A\]@@(`'`'""``C`"1]@@(5/L( -XM"``````````````````````@<@<((``,`)OV"`BN]@@(8%('""``C`##]@@( -XMU/8(",`S!P@@`$8`[/8("'C["`A`X@<((````/R6"`C_]@@(```````````` -XM`````````.#P!P@@`$0`$_<("!SW"`@0\@<((`",`#'W"`A"]P@(0/,'""`` -XMK`!6]P@(I/L("&#T!PA```4`T/L("'3W"`@P:0<((D!$`(WW"`B6]P@(X%X' -XM""``1`"M]P@(MO<(",!K!P@B0$0`R/<("-'W"`@0X0<((``,`.OW"`CT]P@( -XM,S`W?$YO(&5X(&-O;6UA;F0@=&\@97AE8W5T90`Q.#!\3F\@<')E=FEO=7,@ -XM9FEL92!T;R!E9&ET````,C`W?%1H92!1(&-O;6UA;F0@/!P@HCP<(*(\'""B/!P@HCP<(=X\'""B/!PAWCP<(*(\'""B/ -XM!P@HCP<(*(\'"(*/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\' -XM""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(@H\'""B/!P@HCP<( -XM*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@H -XMCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/ -XM!P@HCP<(*(\'""B/!P@HCP<(=X\'"#$Y-'Q.;R!M;W)E(&-H87)A8W1E\!PBJNP<(;ZP'"("[!PAOK`<(;ZP'"+^^!PA6O@<(;ZP'"$*_!PB_O@<( -XM/;X'"#V^!PAOK`<($[X'"(B]!PA@O0<(,KP'"%6[!PCYM`<(G+H'"(6Z!PB% -XMN@<(#K4'"/FT!PAIN@<(^;0'"/FT!PCYM`<(^;0'"$FZ!P@R,#%\0G5F9F5R -XM2!I;B!T:&4@9FER,'"#(P-GQ.;R!C:&%R86-T97)S('1O(&1E;&5T90#O]P<(,?@'""KX!P@J -XM^`<(0O@'"%7X!P@:^`<([_<'"._W!PCO]P<([_<'"/OW!PA5^`<($`@(""@( -XM"`@E#0@(YP0("$$-"`APX`<((``L`.D+"0C_"PD(,C,U?$YU;6)E2!I;B!C;VUM86YD(&UO9&4` -XM,C,V?$EN=&5R7,@9&ES8V%R9&5D`````#(S,7Q);G1E7,@9&ES8V%R9&5D```E9"!S8W)E96YS(&)A8VMG6]U'`@)````1L#.Z0!```!````]'C__\`!```````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````````$^-"`@`````+!()"``````` -XM`````````````````````0```%P````"````7@````,````$````!````!(` -XM```%````%`````8````:````!P```#H````(````#0````D````;````"@`` -XM``P````+````&`````P````*````#0```'T````.````*0````\````)```` -XM$`````@````1````%0```!(````1````$@```!8````3````%P```!0````P -XM```````````````````````````````````````````````5`````0```"]D -XM978O<'1Y6%@``"SS"`@``````````````````````````!0``````````7I2 -XM``%\"`$;#`0$B`$``!P````<````+'?__X)`$"`8```#XA00("@```-`$```+````$````!4``````````P```#02 -XM"0@"````B`0``!0````1````%P```!B7!`@1````N)8$"!(```!@````$P`` -XM``@```#^__]OF)8$"/___V\!````\/__;TB5!`@````````````````````` -XM``````````````````````````````````````````#_____`````/____\` -XM`````````%`1"0@``````````,J;!`C:FP0(ZIL$"/J;!`@*G`0(&IP$""J< -XM!`@ZG`0(2IP$"%JIP$"(J!`@:G@0(*IX$"#J>!`A* -XMG@0(6IX$"&J>!`AZG@0(BIX$")J>!`BJG@0(NIX$",J>!`C:G@0(ZIX$"/J> -XM!`@*GP0(&I\$""J?!`@ZGP0(2I\$"%J?!`AJGP0(>I\$"(J?!`B:GP0(JI\$ -XM"+J?!`C*GP0(VI\$".J?!`CZGP0("J`$"!J@!`@JH`0(.J`$"$J@!`A:H`0( -XM:J`$"'J@!`B*H`0(FJ`$"*J@!`BZH`0(RJ`$"-J@!`CJH`0(^J`$"`JA!`@: -XMH00(*J$$"#JA!`A*H00(6J$$"&JA!`AZH00(BJ$$")JA!`BJH00(NJ$$",JA -XM!`C:H00(ZJ$$"/JA!`@*H@0(&J($""JB!`@ZH@0(2J($"%JB!`AJH@0(>J($ -XM"(JB!`B:H@0(JJ($"+JB!`C*H@0(VJ($".JB!`CZH@0("J,$"!JC!`@JHP0( -XM.J,$"$JC!`A:HP0(:J,$"'JC!`B*HP0(FJ,$"*JC!`BZHP0(RJ,$"-JC!`CJ -XMHP0(^J,$"`JD!`@:I`0(*J0$"#JD!`A*I`0(6J0$"&JD!`AZI`0(BJ0$")JD -XM!`BJI`0(NJ0$",JD!`@``````````````````````````````````````"1& -XM'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6YA -XM;6EC`"YC=&]R!```-`$```` -XM``````````$`````````-P```/___V\"````2)4$"$@5``!0`0``!``````` -XM```"`````@```$0```#^__]O`@```)B6!`B8%@``(`````4````!````!``` -XM``````!3````"0````(```"XE@0(N!8``&`````$``````````0````(```` -XM7`````D````"````&)<$"!@7``"(!```!`````L````$````"````&4````! -XM````!@```*";!`B@&P``$0``````````````!`````````!@`````0````8` -XM``"TFP0(M!L``"`)``````````````0````$````:P````$````&````X*0$ -XM".`D```\Y0,````````````0`````````'$````!````!@```!R*"`@<"@0` -XM#```````````````!`````````!W`````0````(```!`B@@(0`H$`"N%```` -XM`````````"``````````?P````$````"````;`\)"&R/!``4```````````` -XM```$`````````(T````!`````P`````0"0@`D`0`%`$`````````````(``` -XM``````"3`````0````(````4$0D(%)$$`#P```````````````0````````` -XMG0````8````#````4!$)"%"1!`#0````!0`````````$````"````*8````! -XM`````P```"`2"0@@D@0`"```````````````!`````````"M`````0````,` -XM```H$@D(*)($``@```````````````0`````````M`````$````#````,!() -XM"#"2!``$```````````````$`````````+D````!`````P```#02"0@TD@0` -XM4`(`````````````!`````0```"^````"`````,```"@%`D(H)0$`.`,```` -XM`````````"``````````PP````$``````````````*"4!`"I$0`````````` -XM```!``````````$````#``````````````!)I@0`S````````````````0`` -X%```````` -X` -Xend -END-of-vi.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/out/elfcopy-noops-4.out.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/out/elfcopy-noops-4.out.shar deleted file mode 100644 index b55a5d87..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-4/out/elfcopy-noops-4.out.shar +++ /dev/null @@ -1,13624 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# vi.new.uu -# vi.uu -# -echo x - vi.new.uu -sed 's/^X//' >vi.new.uu << 'c6a212f79bb8cf302d242d299c785f85' -Xbegin 644 vi.new -XM?T5,1@$!`0D```````````(``P`!````X*0$"#0````@`` -XM``````"+````G````)X````-`````````'\``````````````'D````````` -XM)P```$,````8````:@````````!T````H0````````"$`````````$P````X -XM````H``````````?````E0```#``````````8P`````````6`````````#T` -XM``!F````E@``````````````EP```!$```!:``````````````!B````@P`` -XM`($```!7````7````)0`````````%P```'4````N````?0````````!H```` -XM`````(P``````````````'````"'````F@```*0```!)````<@```*8````` -XM````4`````````!8````>P```)(`````````HP```````````````````)\` -XM```\````;P```%4```!^`````````(D```!?````60```(4````Z```````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````0```````````````````!(````` -XM````````````````````!`````(````````````````````.````#``````` -XM```5`````````!0````(````````````````````````````````````*0`` -XM````````````(P````D``````````````"H````E````+P`````````````` -XM"@`````````````````````````L```````````````<```````````````9 -XM`````````"@````D`````````$(``````````P`````````V`````````$H` -XM```Y````,P`````````;`````````$$````````````````````+````-0`` -XM`````````````````!T````0````&@````\````'````70`````````````` -XM`````#X```!$`````````!X````A````:0``````````````(````&0````` -XM````````````````````$P````````!1````````````````````10```$\` -XM```R````!@```#L``````````````&P```!(`````````$<````````````` -XM`',```!`````````````````````6P````````!@````)@```(T```!+```` -XM`````%X```!Q`````````'P```!-````C@```'@```!M`````````"(```"& -XM`````````&L```!&`````````%,````M````DP```'8````K````90`````` -XM``````````````````!\!````````,8````2````VP$````````R`@``$@`` -XM`*P"````````-````!(```!3!````````#,````2````N@(```````!#```` -XM$@```!($````````5@$``!(````]!``````````````2````K@,````````R -XM````$@```#8$````````H0```!(```!0`0```````'(#```2````+P$````` -XM``""`0``$@```+\"`````````````!(```"C`0```````&L!```2````R`$` -XM``````#]"```$@```!$```!0$0D(`````!$`\?^T`@`````````````2```` -XM.0(`````````````$@```!H`````````U`,``!(```"1!``````````````2 -XM````-P0```````"A````$@```/\"`````````````!(```!/`P```````%H` -XM```2````50(```````!7````$@```$(!````````.0```!(````P!``````` -XM```````2````!@(```````!J````$@```"``````````30```!(````G```` -XM`````/8#```2````>P0```````":````$@```"0$`````````````!(````O -XM`````````!D````2````XP$```````#!````$@```/,!`````````````!(` -XM``">`P```````%T````2````2@$`````````````$@```&X!````````3P`` -XM`!(```",`P````````4````2````S`(`````````````$@```.`#```````` -XM3@4``!(````5`P```````-T#```2````:@(```````#8````$@```#<```"@ -XMFP0(`````!(`"@`@`@```````.H````2````=P(`````````````$@```%X# -XM`````````````!(```#M`@`````````````2````S@$```````"2`0``$@`` -XM`)`0```````#,````2````3``` -XM``````"2````$@```'$#``"@%`D(!````!$`%P!5`````````"0````2```` -XM*@(````````5`@``$@```'X#````````90(``!(```"/`@`````````````2 -XM````,`,````````T````$@```-,"````$`D(!````!$`$`!:`````````-T` -XM```2````9`````````!"````$@```&L`````````;@```!(```!U```````` -XM`-P#```2````0P0`````````````$@```*<"`````````````!(```"X`P`` -XM`````%(7```2````&0(``*04"0@$````$0`7`,`#````````*P```!(````^ -XM`P```````,T````2````?`(``*@4"0A4#```$0`7`(4#`````````````!(` -XM``#/`P```````,P````2````90(```````"A````$@```'L`````````)``` -XM`!(```"0`0```````#````!(```";````'(H("``````2 -XM``T`,0$```````"8````$@```-<#````````'0```!(```"7!````````.T` -XM```2````.`$```0A"0@$````$0`7`*H!`````````````!(````\!``````` -XM`+$````2````&P0````````D````$@```#0"`````````````!(````=`P`` -XM""$)"`0````1`!<`8@$````````E````$@```'\!`````````````!(```"A -XM`````````#D````2````7P0`````````````$@```%@$````````8@```!(` -XM``"6`P```````,L````2````@00`````````````$@```*L````,(0D(!``` -XM`!$`%P!L!````````/H````2````8`0```````!#````$@```*$$```````` -XM`````!(````+`@```````,,````2````KP0``(04"0@`````$`#Q_Z<$```` -XM````/0```!(````2`@```````#,````2````U`$`````````````$@```+(` -XM```T$@D(`````!$`\?_M`P```````($````2````P@0``(`A"0@`````$`#Q -XM_P@$````````8@,``!(```"K`0`````````````2````R`````````!T```` -XM$@```$`"````````80```!(```"G`P````````,!```2````Z0$``!`A"0@$ -XM````$0`7`&\$````````DP```!(```#%`@``%"$)"`0````1`!<`^`$````` -XM````````$@```,T`````````H@```!(```"Q`0```````$4````2````5@,` -XM``````#*#```$@````$$````````*P```!(```#6````&"$)"`0````1`!<` -XM7P(`````````````$@```,$!`````````````!(```#=`````````+4````2 -XM````YP`````````%`0``$@```#("````````[````!(```!E!``````````` -XM```2````(P0`````````````$@```'0!S971V8G5F`&5X96-L`%]?7-T96T`9F5O9@!M86QL;V,`:7-A='1Y`&]P=&%R9P!V&5C -XM`&]P96YD:7(`6YA;64`9V5T<'=U:60`9V5T8W=D`&9G971C -XM`&=E=&AO&ET`'-E=&QO8V%L90!R96=E&ET`'-T@<` -XM``(`QP0```````"@%`D(!3P``*04"0@%2@``J!0)"`5-``#\(`D(!6(````A -XM"0@%9P``!"$)"`5Q```((0D(!78```PA"0@%?@``$"$)"`6/```4(0D(!9$` -XM`!@A"0@%EP``'"$)"`6C``!`$@D(!P$``$02"0@'`@``2!()"`<#``!,$@D( -XM!P0``%`2"0@'!0``5!()"`<&``!8$@D(!P<``%P2"0@'"```8!()"`<)``!D -XM$@D(!PH``&@2"0@'"P``;!()"`<,``!P$@D(!PT``'02"0@'#@``>!()"`<0 -XM``!\$@D(!Q$``(`2"0@'$@``A!()"`<3``"($@D(!Q0``(P2"0@'%0``D!() -XM"`<6``"4$@D(!Q<``)@2"0@'&```G!()"`<9``"@$@D(!QH``*02"0@'&P`` -XMJ!()"`<<``"L$@D(!QT``+`2"0@''@``M!()"````[!,)"`=Y``#P$PD(!WH``/03"0@'>P``^!,) -XM"`=\``#\$PD(!WT````4"0@'?P``!!0)"`>````(%`D(!X$```P4"0@'@@`` -XM$!0)"`>$```4%`D(!X4``!@4"0@'A@``'!0)"`>(```@%`D(!XH``"04"0@' -XMBP``*!0)"`>,```L%`D(!XT``#`4"0@'C@``-!0)"`>0```X%`D(!Y(``#P4 -XM"0@'DP``0!0)"`>4``!$%`D(!Y4``$@4"0@'E@``3!0)"`>8``!0%`D(!YD` -XM`%04"0@'F@``6!0)"`>;``!<%`D(!YP``&`4"0@'G0``9!0)"`>>``!H%`D( -XM!Y\``&P4"0@'H```A``!T%`D(!Z(``'@4"0@'I0``?!0)"`>F``"` -XM%`D(!Z<``(/L#.@("@``Z$/N`P"#Q`S#````_S4X$@D(_R4\$@D(`````/\E -XM0!()"&@`````Z>#_____)402"0AH"````.G0_____R5($@D(:!````#IP/__ -XM__\E3!()"&@8````Z;#_____)5`2"0AH(````.F@_____R54$@D(:"@```#I -XMD/____\E6!()"&@P````Z8#_____)5P2"0AH.````.EP_____R5@$@D(:$`` -XM``#I8/____\E9!()"&A(````Z5#_____)6@2"0AH4````.E`_____R5L$@D( -XM:%@```#I,/____\E`2"0AH0`$``.E@_?___R7D$@D(:$@!``#I4/W___\EZ!() -XM"&A0`0``Z4#]____)>P2"0AH6`$``.DP_?___R7P$@D(:&`!``#I(/W___\E -XM]!()"&AH`0``Z1#]____)?@2"0AH<`$``.D`_?___R7\$@D(:'@!``#I\/S_ -XM__\E`!,)"&B``0``Z>#\____)003"0AHB`$``.G0_/___R4($PD(:)`!``#I -XMP/S___\E#!,)"&B8`0``Z;#\____)1`3"0AHH`$``.F@_/___R44$PD(:*@! -XM``#ID/S___\E&!,)"&BP`0``Z8#\____)1P3"0AHN`$``.EP_/___R4@$PD( -XM:,`!``#I8/S___\E)!,)"&C(`0``Z5#\____)2@3"0AHT`$``.E`_/___R4L -XM$PD(:-@!``#I,/S___\E,!,)"&C@`0``Z2#\____)303"0AHZ`$``.D0_/__ -XM_R4X$PD(:/`!``#I`/S___\E/!,)"&CX`0``Z?#[____)4`3"0AH``(``.G@ -XM^____R5$$PD(:`@"``#IT/O___\E2!,)"&@0`@``Z<#[____)4P3"0AH&`(` -XM`.FP^____R50$PD(:"`"``#IH/O___\E5!,)"&@H`@``Z9#[____)5@3"0AH -XM,`(``.F`^____R5<$PD(:#@"``#I!,)"&AP`@``Z0#[ -XM____)7P3"0AH>`(``.GP^O___R6`$PD(:(`"``#IX/K___\EA!,)"&B(`@`` -XMZ=#Z____)8@3"0AHD`(``.G`^O___R6,$PD(:)@"``#IL/K___\ED!,)"&B@ -XM`@``Z:#Z____)903"0AHJ`(``.F0^O___R68$PD(:+`"``#I@/K___\EG!,) -XM"&BX`@``Z7#Z____):`3"0AHP`(``.E@^O___R6D$PD(:,@"``#I4/K___\E -XMJ!,)"&C0`@``Z4#Z____):P3"0AHV`(``.DP^O___R6P$PD(:.`"``#I(/K_ -XM__\EM!,)"&CH`@``Z1#Z____);@3"0AH\`(``.D`^O___R6\$PD(:/@"``#I -XM\/G___\EP!,)"&@``P``Z>#Y____)<03"0AH"`,``.G0^?___R7($PD(:!`# -XM``#IP/G___\ES!,)"&@8`P``Z;#Y____)=`3"0AH(`,``.F@^?___R74$PD( -XM:"@#``#ID/G___\EV!,)"&@P`P``Z8#Y____)=P3"0AH.`,``.EP^?___R7@ -XM$PD(:$`#``#I8/G___\EY!,)"&A(`P``Z5#Y____)>@3"0AH4`,``.E`^?__ -XM_R7L$PD(:%@#``#I,/G___\E\!,)"&A@`P``Z2#Y____)?03"0AH:`,``.D0 -XM^?___R7X$PD(:'`#``#I`/G___\E_!,)"&AX`P``Z?#X____)0`4"0AH@`,` -XM`.G@^/___R4$%`D(:(@#``#IT/C___\E"!0)"&B0`P``Z<#X____)0P4"0AH -XMF`,``.FP^/___R40%`D(:*`#``#IH/C___\E%!0)"&BH`P``Z9#X____)1@4 -XM"0AHL`,``.F`^/___R4<%`D(:+@#``#I#V__\```````````````!5B>564X/L$(/D -XM\(M=!(G1C72=#(7;B35H(0D(?C:+10B%P'0OHP`0"0@/MA"$TG0C@\`!ZPH/ -XMMA"#P`&$TG04@/HO=?&C`!`)"`^V$(/``832=>RX4!$)"(7`=#2)#"3HG_[_ -XM_\<$)!R*"`CHD_[__^A*]O__C44(B70D"(E$)`2)'"3H5P\``(D$).AC_?__ -XMZ'[X___KS9"0D)"0D)"058GE@^P(@#T@(0D(`'0,ZQR#P`2C"!`)"/_2H0@0 -XM"0B+$(72=>O&!2`A"0@!R<.058GE@^P(H3`2"0B%P'02N`````"%P'0)QP0D -XM,!()"/_0R<.0D)"0D)"0D)"0D)"0H0PA"0BZ_____U6)Y8M-#(7`=`,/OQ") -XM$:$,(0D(NO____^%P'0$#[]0`HM%$(D0BT4(BT!(*0$QP%W#C70F`%6)Y8M% -XM"(M5#(M-%(M`$(/Z`8M`)'0Y6#[!BA$"$)",=$)`B`````QT0D!`$```#' -XM!"2,B@@(B40D#.AI^___R<.-=@!5B>6#[!B+10B)7?2)=?B)??R+0!"+4"2) -XM5?"+<%R+11"%P'0;BYH0`@``]L,$=46+7?0QP(MU^(M]_(GL7<.0BTWPBX$0 -XM`@``J`)TXX/@_8F!$`(``(ET)`3'!"0UBP@(Z,[Y__^A!"$)"(D$).CA]___ -XMZ[NX!0```+\OBP@(_(G!\Z9UJHM%\(/+`HF8$`(``(M5#(E4)`3KOY"-="8` -XM53'2B>6#[`B+10B+0!"+0"2+B*0!``"%R74@*A -XM'"$)"(D4),=$)`@`````@^@!B40D!.@(^?__H0PA"0B)!"3H6_;__Z$,(0D( -XMQT0D!`````")!"3H)O?__\=$)`@`````QT0D!`````")-"3H*O[__^BY]/__ -XMC8,$`0``B40D",=$)`01````QP0D`````.A+^?__QT0D!!(```#'!"0````` -XMZ-?S__^+@Z0!``"%P'0Y@Z,0`@``YS'2BUWTB="+=?B+??R)[%W#D(U%Q(E$ -XM)`C'1"0$$0```,<$)`````#H^?C__S'2Z]&0QT0D"`$```"+1B"+0`B)-"2) -XM1"0$Z);]__^A#"$)",=$)`0!````B00DZ&7V__^+1<")?"0(B40D!*$,(0D( -XMB00DZ`WX___'1"0$`0```(DT).CY_?__C47PB40D$,=$)`P`````QT0D"``` -XM``#'1"0$`0```(DT).AB(0``N@$```"%P`^%1?___XM=\(7;#X1R_O__BT80 -XM,-*+0"2!B!`"`````0``Z2/___^-=@"-1<2)1"0$QP0D`````.AA\O__C8,$ -XM`0``B40D",=$)`01````QP0D`````.@3^/__Z0'^__^-=@"-O"<`````58GE -XM@^PHB5WTBUT(B77XBW40B7W\BWT,B70D"(GX`T-(B40D!*$,(0D(B00DZ#+W -XM__\QTH/``70/BUWTB="+=?B+??R)[%W#BT-(B70D$(E\)`S'1"0($(L("(E$ -XM)!3'1"0$`P```(D<).@1H@``N@$```#KPXUV`(V\)P````!5B>6#[`BA#"$) -XM",=$)`0!````B00DZ!GU___)@\`!#Y3`#[;`PXUV`(V\)P````!5B>6#["B+ -XM50B)7?2)=?B)??SV@JP$```0BT(0#X64````@\`(.0(/A,,```"+#0PA"0B_ -XM_____[[_____A0(/OS&+0D"+6DB+4C0YT`^#B`````'8QT0D"``` -XM``")1"0$B0PDZ$7V__^#P`%T+:$,(0D(QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!/____^)!"3HT_C__Z$,(0D(B7PD"(ET)`2)!"3H_O7__Z$,(0D( -XMQT0D!/____^)!"3H.?3__XM=](MU^(M]_(/``0^4P(GL70^VP,.-0O_I`" -XM`T(0BT`XA<`/E<"$P'7___S'`R<.)]HV\)P````!5B>6#[`B+10B+0!"+0"0%!`$``(D$).A8 -XM]/__/98```!T378Q/2P!``"-M@````!T/G9,/5@"``"-M"8`````="X]L`0` -XM`'4^BT4,QP"P!```,<#)PX/X2W05=C>#^&YT#CV&````=1Z-M"8`````BT4, -XMQP!8`@``,<#)PXUV`#W(````=.F+10S'`(`E```QP,G#@_@R=>[KU9"-="8` -XM58GE4X/L%(M-"(M5#(M!$(72BU@D=5F+51"%T@^%S@```(N##`(``(7`#X20 -XM````BX.@`0``QX,,`@```````(7`#X0[`0``QT0D"(#*!`C'1"0$`0```(D$ -XM).AD\O__H00A"0B)!"3HI_'__^M1D(/J`70+Z+KP__^-M@````#V@:P$```1 -XM=$R+DY@!``"X`0```(72=%*+11"%P`^$E````,=$)`B`R@0(QT0D!`$```") -XM%"3H"?+__Y"-="8`H00A"0B)!"3H1_'__X/$%#'`6UW#BT40A?KB(GV58GE4X/L -XM%(M%"(M5#(M`$(72BU@D=#"#Z@%T!>BC[O__BX.0`0``A<`/A'(!``#'1"0( -XM@,H$",=$)`0!````B00DZ`WP__^+@X@!``"%P'1GH:`4"0B%P'5'BQ4$(0D( -XMBT((@^@!A<")0@@/B%\!``"+`L8`#8/``8D"QT0D"(#*!`C'1"0$`0```(N# -XMB`$``(D$).B[[___@\04,6+0"2# -XMB!`"```@QX"D`0```0```%W#B?:A?"$)"%6)Y8M`)(.($`(``$!=PXVV```` -XM`(V_`````*%\(0D(58GEBT`D@8@0`@``@````,>`I`$```\```!=P^L-D)"0 -XMD)"0D)"0D)"0D*%\(0D(58GEBT`D@8@0`@````$``%W#B?:-O"<`````58GE -XM4XG3@^P4B40D"*$0(0D(QT0D!$F+"`B)!"3H4NG__X7;=!FA$"$)"(E<)`C' -XM1"0$28L("(D$).@UZ?__Z-#M__^+`(D$).@FZ___QT0D!'WI"`B)1"0(H1`A -XM"0B)!"3H#>G__\<$)`$```#H\>___XVV`````(V\)P````!5B>6#[#B)7?2- -XM7=R)=?B)UHE]_(G'C47DB4W[__XM=](MU^(M]_(GL7<.0C;0F`````%6)Y8/L&(EU^(MU#(E]_(M]"(E= -XM](7VBU\D='8QTKG@L00(N`$```#H@____X7`="?'1"0(38L(",=$)`0%```` -XMB30DZ/>8```QP(M=](MU^(M]_(GL7<,QTKD`L@0(L`+H2O___X7`=<"Q!`BP`>CH_O__ -XMAC__X7` -XM==6-D\`!``"Y`+($"+`"Z*?^__^%P'6_QT0D!`\```#'!"1L(0D(Z+/H__^% -XMP'6GC9/8`0``N2"R!`BP#^AY_O__A575E-1@^PXBP&+202)1=2A)"$)"(E-T(/``:,D -XM(0D(@^@!#X5F`P``BT70BQC'1"0$+P```(D<).AJZO__AB35\(0D(QT0D!!0"``#'!"0! -XM````Z"GL__^%P(G'#X3J`@``B7XDQP0D`````.BP[?__A<`/A7@!``"#CE0( -XM```0]H<1`@```@^$>P$``(V'!`$``(E$)`3'!"0`````Z)[F__^#P`$/A*&8`@``&"L!`C'AF0(``#@JP0(QX9H -XM"````````,>&;`@``,"K!`C'AG`(``#@I00(QX9T"```L*H$",>&>`@``)"Y -XM!`C'AGP(``!PKP0(QX:`"```L-`$",>&B`@``("J!`C'AH0(```@I@0(QX:0 -XM"````*H$",>&E`@```````#'AHP(``#0S@0(QX:8"```8*<$",>&G`@``,"F -XM!`C'AJ`(``!`PP0(QX:D"```P*<$",>&J`@``)"F!`C'!"1MBP@(Z`?F__^% -XMP(E%W`^$G0$``(U%Y(L>B40D"(M%W,=$)`0!````B00DZ-#K__^+1>2#^/\/ -XMA%`!``"%P`^%J````(M%W(E<)`C'1"0$E(L("(E$)`RA$"$)"(D$).@,Y?__ -XMQP0D`0```.CPZ___@8\0`@````(``/:'$0(```(/A87^___'1"0(`````,=$ -XM)`0`````QP0D6HL(".@MZ___@_C_B<,/A'W^__^-AP0!``")1"0$B1PDZ`#E -XM__^#P`%T#8D<).C3Z?__Z5G^__^+!KICBP@(Z![[___'!"0!````Z';K__^) -XM]HM%W(D$).B9Y?__A<")1ER)1F`/A-0```"-1>B)1"0,C47LQT0D$`````") -XM1"0(QT0D!`````#'!"0`````Z$T3``"%P'5+BT7LQT0D#`````#'1"0(```` -XM`,=$)`0`````B49(B49$BT7HB48\B48XH00A"0B)!"3H]N/__\=$)`0````` -XMB30DZ%+[__^%P'1NQP0D`0```.C6ZO__B?:A$"$)"(E<)`C'1"0$=(L("(D$ -XM).C+X___QP0D`0```.BOZO__QT7____Z-3E__^+1=")-"2)1"0(BT74 -XMB40D!.C*=P``BUXDQT0D!`````#'!"0!````B478C8.H`0``B40D".CJZ/__ -XMC8/``0``B40D",=$)`0`````QP0D`@```.C,Z/__C8/8`0``@]H<0`@```G5=BX>D`0``A?__Z$$(0D(B00DZ(CE___K@9"058GE5U93@>PL!0``BU4(BTT4BT(0BT`D -XMB87P^O__N---8A#W;12+113!^@;!^!\IPFG"Z`,``(F5Z/K__RG!:<'H`P`` -XM]D40`8F%[/K__P^%C@4``(N5\/K__XN"$`(``*A`#X5:!0``J:`!``!T&:@@ -XM#X6,!0``A,`/B)4%``#VQ`$/A5\"``"+310QTH7)=!6+E>CZ__^+C>SZ__^) -XM5>"-5>")3>2+10B+0!")A?SZ__^+2"2X(````(F-`/O___:!$0(```(/A'`! -XM``")]L>$A03___\`````@^@!=?"%TG1'@XT(____`8E4)!"-E0C____'1"0, -XM`````,=$)`@`````B50D!,<$)`$```#H#^+__X/X_P^$4P$``(7`NP0````/ -XMA#\!``#V11`PD`^%GP,``,>%^/K__P````"+C?SZ__^X(````(N5_/K__X/! -XM"(F-Y/K___:"5`@``"`/A.X"``"%P`^%O````(N-_/K__[`!@XT(____`8MQ -XM"#NUY/K__W1(,?^0C70F`(M%"/:`KP0```%T*(N8@````+@!````BTL$B+-CNUY/K__W7"C4%^/K__P````#H=.3__[L#````@S@$=!W'1"0( -XM=+P("+,"QT0D!`4```"+10B)!"3H29```(N%^/K__X7`#X6``0``@_L$=K#H -XMY>'__XN%]/K__XN-\/K__XM5#(E"%#'`B4H0QT(("0```('$+`4``%M>7UW# -XMBY7P^O__@.3^C4WHB8(0`@``C47LB40D#(U%\(E,)!")1"0(QT0D!`$```"+ -XM50B)%"3H00X``(7`#X7_`@``BUWHA=L/A%?]__^-18B+=>R)A0C___^-1;2) -XMA0S___^+1?"-G0C[__^)78C'1;0`````QT6\`````,=%D`````")1"0,QT0D -XM"+.+"`C'1"0$``0``(D<).@0Y/__B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,IV8E-D(V-"/___\=$)`@`````B4PD!(M% -XM"(D$).CNI```A<`/A%8"``"+10S'0`@+````,<#I\O[__Y"-="8`BU4,,<#' -XM0@@#````@<0L!0``6UY?7<.+10S'0`@"````@<0L!0``,7UW#C46TB40D",=$)`01````QP0D`````.@DY/__ -XMZ6#^___'1"0(_P```(N%\/K__\<$)`````")1"0$Z('F__^#^/^)P@^$_?W_ -XM_X7`#X2B````BTT(]H&L!````70FBX7P^O__@'P"_PIT&8N-`/O__P^V@10! -XM``"+C?#Z__^(!!&#P@&+A0#[__\QV\>```$```````")E?3Z___ITOW__XU% -XMM(E$)`3'!"0`````Z+S=__^%P`^%1OS___9%$!!U=8N%`/O__P5<`0``B40D -XM",=$)`01````QP0D`````.A;X___QX7X^O__`0```.D8_/__BY4`^___NP$` -XM``"+@@`!``"#P`&#^#&)@@`!```/CUS]__\/MH(4`0``,-N+C?#Z__^(`<>% -XM]/K__P$```#I//W__XM%M(E%B(M%N(%EB/_Y__^)18R+1;R)19"+1<")192+ -XM1<2!991_____B468BT7(B46*`@("`=.GWPH"```!U -XM!L'J$(/!`@#2@]D#*=F-E0C___^)39#'1"0(`````(E4)`2+30B)#"3H)J(` -XM`.D[_?__D%6)Y8/L&(M%#(E=^(EU_(D$).A=X/__A<")PW01@_C_=`R)!"3H -XMZN/__X7`=1(QP(M=^(MU_(GL7<.-M@````"-<`&)-"3H>>+__XM5$(7`B0)T -XM'(ET)`B)7"0$B00DZ-#A__^+7?@QP(MU_(GL7C;0F`````(V\)P````!5B>53B<.#[`2+@(@! -XM``"%P'02B00DZ*GB___'@X@!````````BX.,`0``A+__\>#D`$```````"+@Y0!``"%P'02 -XMB00DZ%7B___'@Y0!````````BX.8`0``A6#[!B)=?B+=0B)??PQ_XE=](M>)/:#$`(``!AU$(GXBUWT -XMBW7XBWW\B>Q=PY")-"3HR`X``(7`#Y7`#[;XBX,0`@``)1`"```]$`(``'0Y -XMBX,0`@``)0@"```]"`(``'0YC8,$`0``B40D",=$)`01````QP0D`````.AB -XMW___@Z,0`@``Y^N5B?#HOO[__X7`=+R_`0```.NUBT8DZ`O^___KO8GVC;PG -XM`````%6)Y8/L2(72B77\B<:)7?AT'L=$)`@!````B50D!(D$).CNWO__BUWX -XMBW7\B>Q=PXU=T(E,)`R)'"3'1"0(^I8(",=$)`0H````Z`7>__^)7"0$B30D -XMQT0D"`$```#HL=[__XM=^(MU_(GL7<.-=@!5B>575E.#["R+=0B+7A"+0R2) -XM1>2`NU0(````#XB^`0``#[95#(/B`8G7#X0_`0``BX:L!```J`0/A5$!``#V -XM10P"=`BH"`^%0P$``*@$D'0)@^#[B8:L!```J`AT:X/@]XF&K`0``(U#"#D& -XM="S'1"0(`````(M&2`-&-(E$)`2A#"$)"(D$).B6W?__H0PA"0B)!"3HN=O_ -XM_\=$)`@`````BT8T`T9(@^@!B40D!*$,(0D(B00DZ&?=__^A#"$)"(D$).BZ -XMVO__B?B$P`^$S````(M&$(M8)(N#$`(``*@(#X75!```]L0"#X4Q`P``BU7D -XM@XH0`@``"?:&K`0```$/A(@```"+1>2+D(P!``"%TG1[]H8@`@```0^$`@4` -XM`(N&&`(``(T$0,'@`@-&$(M`.(/H`8D4)(E$)`C'1"0$`````.@YV/__QT0D -XM"(#*!`C'1"0$`0```(D$).@AV___@\0L,)-"3'1"0('(P(",=$)`0#````Z&^'``"#Q"RX -XM`0```%M>7UW#B?:)'"3H^/S__X7`#X7``P``@:-4"```?____^DC_O__D,<$ -XM)`$```#HR-W__X7`=*G'1"0(`````,=$)`0_````B30DZ!B0``"%P`^%@`,` -XM`/:&]`,```$/A"P$``"+ANP#``"-!$#!X`(#1A"+6#C'!"1MBP@(Z.G6__\Q -XMR8G:B47HN&V+"`CH)/W__\<$)/2+"`CHS-;__XE%[/:&(`(```$/A/<#``"+ -XMAA@"``"-!$#!X`(#1A"+2#@QTKCTBP@(Z.K\___'!"3ZBP@(Z)+6__^)1?#V -XMAF`!```!#X2R`P``BX98`0``C01`P>`"`T80BT@X,=*X^HL(".BP_/__Z%_: -XM___'``````"A`"$)"(D<)(E$)`BA!"$)"(E$)`3H']?__X7`#X2:`P``BTWH -XMAR%T@^$UP,``(M%\(7`#X2[`P``B70D!(M&$(V?7`$``(D$ -XM).B][/__Z,S9___HM]C__XUV`.B_VO__H0PA"0C'1"0$`0```(D$).CZU___ -XMH0PA"0C'1"0$`0```(D$).CEV/__QX<,`@```0```,=$)`0`````QP0D$@`` -XM`.CWVO__B5PD!,<$)`````#H1]7__X7`#X75`@``BX<$`0``]L0"=`J!CUP! -XM`````@``]L0$=`J!CUP!````!```@8]H`0``@````,:'=P$``/_&AW4!``#_ -XMQH=V`0``_\:'>P$``/_&AWH!``#_QH=^`0``_XDT).@+"@``A<`/A?4!``#I -XMK@$``(V#C`$``(E$)`C'1"0$18L("(DT).BT^/__C8.8`0``B40D",=$)`3@ -XMBP@(B30DZ)KX__^-@Y0!``")1"0(QT0D!.6+"`B)-"3H@/C__XV#B`$``(E$ -XM)`C'1"0$N8P("(DT).AF^/__C8.0`0``B40D",=$)`27C0@(B30DZ$SX__^+ -XM@Y@!``"%P`^$D@$``(N3E`$``(72#X1R`0``BX,$`0``BY,(`0``B8,P`0`` -XMBX,,`0``@\H#@8LP`0````$``(F#.`$``(N#$`$``(F3-`$``(F#/`$``(N# -XM%`$``(&+/`$``,\%``")@T`!``"+@Q@!``")@T0!``"+@QP!``")@T@!``"+ -XM@R`!``")@TP!``"+@R0!``")@U`!``"+@R@!``")@U0!``"+@RP!``")@U@! -XM``"!PS`!``")7"0(QT0D!!$```#'!"0`````Z$O9__^%P`^$7UW#@\0L -XMN`$```!;7E]=PX'#,`$``.NTO__Z1C\__^)7"0,QT0D"`*,"`C'1"0$ -XM`P```(DT).@9@@``N`$```#I8?K__Y"0D)"0D)"0D)"0D)"0D%6)Y8/L"*&@ -XM%`D(BU4(A"N+`8@0@\`!#[;2B0')B=## -XMH00A"0B)%"2)1"0$Z![2___)B<*)T,.-="8`.T$8?`6`^@IURXD4)(E,)`3H -XMOM?__XG"Z\>-M@````!5B>575E.#["R+=1B%]G0&QP8!````C47LB40D",=$ -XM)`1H=`A`QP0D`@```.BSTO__@\`!#X2&`0``#[=][`^W1>Z%_P^4PX7`B47< -XM#Y1%XXM%#(7`=!R$VP^$Y````(7V=`;'!@````"#Q"PQP%M>7UW#A-L/A+D` -XM``#'!"1MBP@(Z`W1__^%P'05A-L/A8P!``"`?>,`#X51`0``C78`A?]U!&:_ -XM&`"+7=R%VW4'QT7<4````,<$)/2+"`CHTM#__X7`=!K'1"0("@```,=$)`0` -XM````B00DZ*;4__^)Q\<$)/J+"`CHJ-#__X7`=!O'1"0("@```,=$)`0````` -XMB00DZ'S4__^)1=R+31"%R70%BU40B3J+512%T@^$1____XM%%(M5W(D0@\0L -XM,,!Z7G^__^+@A@"``"-!$#! -XMX`(#0A"+0#CI>____\<$)&R,"`CHRM;__X7`>#B)1=SIFO[__XG"BX!8`0`` -XMC01`P>`"`T(0BT`XZ6?____'!"1'@QP(/$<%M>7<.-M"8`````#[=%H(D<)"7O_P`` -XMB40D!.@_U?__A -XM7<.%]G0FB5PD#,=$)`BXC0@(QT0D!`4```")-"3H^'T``+@!````Z6#___^# -XMQ'"X`0```%M>7<.)]H7V=.Z)7"0,B30DQT0D")^M"`C'1"0$!0```.C`?0`` -XM@\1PN`$```!;7EW#C70F`%6)Y5.#[!2+70B+50R+0Q"#^AZ+2"1T>WX6@_H_ -XM="&#^DIT-8/$%#'`6UW#C70F`(/Z"'0+@_H8=>J-M@````"!B%0(``"````` -XM,<"#HZP$``#S@\046UW#BT44BP"%P'56@XD0`@``!(M#((7`=+2+0`B%P'2M -XMB1PDQT0D"`$```")1"0$Z&77__^#Q!0QP%M=PXM%%(L0B1PDB4PD!(72#Y3` -XM#[;`B40D".CP_?__@\04,Q=Z9_^__^+7?0QP(MU^(M]_(GL7<-5B>53@^P$BT4(BX!$`0``A@`````B?:+5>B+@B"."`B)!"3H$\__ -XM_X7`B<B+@CB."`B#PA")5>B%P`^%3?___XL=2(\("(7;#X3+````QT7D -XM`````(MUY(N&0(\("(D$).A+SO__A<")1?`/A)$```"#P`$/A(@````/MH9, -XMCP@(OR`0"0@Y!2`0"0AT"X/'"#D'=?F%_W1IBT7DBU7PBX!(CP@(B470B10D -XMZ*'1__^+==")-"2)P^B4T?__C5<$QT0D(`8```#'1"0<`@```,=$)!@!```` -XMB50D%(E<)!"+5?")1"0(B70D!(E4)`R+=0B)-"3HX\\``(7`#X5E`0``BU7D -XMBX)8CP@(@\(0B57DA<`/A3S___^+#6B/"`B%R0^$30$``,=%X`````#ID0`` -XM`(M5X(MU[(N2:(\("(E5U(DT).@'T?__B478BT7$B00DZ/G0__^+5=2)%"2) -XMP^CLT/__QT0D(`8```#'1"0<`@```(MUV(ET)!B+5>R)7"00B50D%(MUQ(E$ -XM)`B)="0,BT74B40D!(M5"(D4).@YSP``A<`/A;L```"0BW7@BX9XCP@(@\80 -XMB77@A<`/A+````"+=>"+AF"/"`B)!"3HW,S__X7`B47$=-&#^/]TS/R_C8P( -XM"+D"````B<;SIG2[BT7@BX!DCP@(A<")1>P/A2W___^+=<2+5>")-"2+NFB/ -XM"`CH-]#__XD\)(G#Z"W0___'1"0@!@```,=$)!P"````QT0D&`````#'1"04 -XM`````(E<)!")="0,B40D"(E\)`2+10B)!"3H?LX``(7`#X1&____@\1____XL3A=)T!HM#!(E"!(M#!(D0B1PDZ`;.__^+GD`!``"%VW7-C88L -XM`0``.88L`0``=`Z)10B#Q!!;7EWI//___X/$$%M>7<.0C70F`%6)Y5.#[`2+ -XM0!"+D$`!``"%TG1*,=L/MD(0@^@Q/`AW#P^VP/\DA;"/"`B)TXUV`(L2A=)U -XMX(7;="2+$X72=`:+0P2)0@2+0P2)$(U#"(D$).C:_O__B1PDZ';-__^#Q`1; -XM7QD(0->N8QD(0-(UT)@#KCHVT)@````"-O"<`````58GE@^P8QT0D!#P` -XM``")7?2)=?B+=12)??S'!"0!````Z-[*__^%P(G##X2#````A?:)QXEP#'47 -XMBT40B4,0B?B+7?2+=?B+??R)[%W#B?:)-"3H+,S__X7`B4,(=":+30R%R733 -XMBU40A=)TS(M5$(D$)(E4)`B+50R)5"0$Z#',___KM(M5",=$)`@`````QT0D -XM!`4```")%"3H<'4``(M#"(7`=;B)'"0Q_^ASS/__ZXR+10@Q_\=$)`@````` -XMQT0D!`4```")!"3H0'4``.EJ____C70F`(V\)P````!5B>564X/L,(M="(U% -XM](MU&(E$)!"-1?")1"0,QT0D"`$```"+10R)'"2)1"0$Z*U```"%P'0,@\0P -XMN`$```!;7EW#BT7TB1PDQT0D"`````#'1"0$`````(E$)`SHOO[__X7`B<-T -XMSXM%](7`="R+512%TG1,BU7PBT,(`540BU44B50D"(M5$(D$)(E4)`3H/\O_ -XM_XM%%(E#$(U6"(D3BT8,B4,$.U8(=!^+1@R)&(E>#(M#$`%&%(/$,%LQP%Y= -XMPRM%$(E%%.NLB5X(Z^&058GE5U93@^PLBT4,BWT(A<`/A,X"```/M@#V11@$ -XMB$7K#X4-`0``]D48`@^%^0```,=%[``````/ME7K,N+1Q"+L$`!``"%]G4/Z9`"``"+-H7V#X2&`@``.E80=?&% -XM]@^$>0(``(7)B?8/A(X!``#V11@!#X2'````@$X8`8M5$(M-%(L:.QEV$^D@ -XM`0``BT44@\,!.1@/@A(!``")="00QT0D#`````#'1"0(`````(E<)`2)/"3H -XM+?[__X7`=,Z-1@B)!"3HOOO__[@!````QT84`````,9&&`"#Q"Q;7E]=P_9% -XM&`$/A(X!``")^.AE_/__QT7L`0```.GQ_O__BTT0,<"+$8M-%#L1#X0E`0`` -XMBTT0B70D$(E$)`R+002)5"0$B3PDB40D".BY_?__ALQQT7L`````,=% -XM\`````#I0?W__\=$)`0<````QP0D`0```.@;QO__A<`/A)````")Q@^V1>N( -XM1A"-1@B)1@B)1@R+5Q"+@D`!``"%P(D&=`R+@D`!``")<`2+5Q")LD`!``"+ -XM1Q`%0`$``(E&!.DR_?__,<"#?>P`#Y3`B47P#[:4DS0$``"(5>L/MM+IP_S_ -XM_XM5$(M-%(L".P$/A4W___^+=Q`QR<=%[`````#'1?``````@<8D`0``Z=/\ -XM___'1"0(`````,=$)`0%````B3PDZ'=P``"X`0```.DO_?__D)"0D)"0D)"0 -XMD)"0D%6)Y5=64X/L/(M=%(MU"(M]#(7;#X2D````BT40BPB)3?")RCD/=FOI -XMA0```(UV`(-&9`&Z'X7K48M-\(G(]^+!Z@5KTF0YT74_BT80]H!4"```!'5< -XMQT0D#`$```#'1"0(`````,=$)`0`````B30DZ!HT``"%P'4,BT80]H!4"``` -XM!'4LBTWPC5'_B57P.1=W'XE4)`2)-"3H040``(7`=(V[`0```(/$/(G86UY? -XM7<,QVX/$/(G86UY?7<.-1?")1"0$B30DZ(,]``"%P'72BTT0BQ$[5?`/@M4` -XM``"0#X23````B57P.Q=W=XUV`.DF`P``@T9D`;H?A>M1BTWPB+1A#V@%0(```$#X7\`@``QT0D#`$```#'1"0(`````,=$)`0````` -XMB30DZ%$S``"%P'40BT80]H!4"```!`^%R`(``(M-\(U1_XE5\#D7#X.W`@`` -XMB50D!(DT).AP0P``ADJ____C47HC5WDB40D$(E<)`S'1"0(`0```(E4 -XM)`2)-"3H=3H``(7`#X4`____BU40BT($.T7H#X-%!0``BQ*+!SG0#X22`P`` -XMBU\$QT7@`````(7;B5W<#X20````C57DQT0D$`````")5"0,QT0D"`$```") -XM1"0$B30DZ!HZ``"%P`^%I?[__X7V#X3^`@``BUX0A=L/A/,"``#V@U4(```! -XM#X7F`@``BT7"+0WB)1>R!BU0(`````0`` -XMBUW")!"3HIL3__XM-$(L1C47HC5WDB40D$(E<)`S' -XM1"0(`0```(E4)`2)-"3HBSD``(7`#X57`0``BU7HA=(/A)@```"+11"+0`2) -XM1=2-0O\Y1=0/A(,```"+3=R-1!'_*T74.<$/AQ8$``"+3=R%R0^%MP,``(7V -XM=!2+7A"%VW0-]H-5"````0^$*00``(7`QT7L`````,=%X``````/A08%``"+ -XM1>2+7>`K5=0#7=R#P`$#1=2#Z@&)5"0(B1PDB40D!.CGP___BU40BT7H`47< -XM@VW<`8M2!"E5W(M-W(E,)`R+7>")7"0(BP>)-"2)1"0$Z'0]``"%P`^%D``` -XM`(M5$(L"B47P.0=R=.E5`0``@T9D`;H?A>M1BTWPB+ -XM1A#V@%0(```$#X4K`0``QT0D#`$```#'1"0(`````,=$)`0`````B30DZ.$P -XM``"%P'40BT80]H!4"```!`^%]P```(M-\(U!_XE%\#D'#X/F````B40D!(DT -XM).@`00``AP___Z8W\__^-1>B)1"00C47DB40D#,=$)`@!````BP>) -XM-"2)1"0$Z-$W``"%P`^%7/S__X7V=':+7A"%VW1O]H-5"````75FBT<$.T-X -XM#X?4`@``BU-TB57@BT-XB47L@8M4"`````$``(M'!(E$)`B+1>2)1"0$BTW@ -XMB0PDZ&["__^+1P2)1"0,BUW@B5PD"(L'B30DB40D!.@./```A<`/A>G[__\Q -XMV^DH____QT7L`````(M'!,=%X`````"%P'2JB40D#(U%[(E$)`C'1"0$```` -XM`(DT).@/X```A<`/A*K[__^)1>"+1P3I?/___XM%W,=%[`````#'1>`````` -XM!0`!```/A"7]__^)1"0,C47LB40D",=$)`0`````B30DZ,7?``"%P(E%X`^% -XM__S__^E8^___D(UT)@"-1>B)1"00C47DB40D#,=$)`@!````B50D!(DT).B> -XM-@``A<`/A2G[__^%]@^$NP```(M>$(7;#X2P````]H-5"````0^%HP```(M% -XMZ#E#>`^"+@(``(M3=(E5X(M#>(E%[(&+5`@````!``"+1P2%P`^%G@$``(M= -XM$(M%Y(M;!(/``8E=V(M5V(M=X`-?!`-%V/?2`U7HB40D!(D<)(E4)`CH#<'_ -XM_XM'!(M5$`-%Z(/H`2M"!(E$)`R+3>")3"0(BP>)-"2)1"0$Z*$Z``"%P`^% -XMO?W__S';Z;O]__^!H%0(``#__O__Z6OZ__^+1>C'1>P`````QT7@`````(7` -XM#X1F____B40D#(U%[(E$)`C'1"0$`````(DT).B/W@``A<")1>`/A4#____I -XM(OK__S';A?9T>HM>$(7;='.+3>`Y2W1T:SM%[`^&6?S__XE$)`R-1>R)1"0( -XMBTW@B30DB4PD!.A'W@``A<`/A.+Y__^+71")1>"+5>B+6P2)7=3I(_S__\=$ -XM)`C4CP@(NP$```#'1"0$`P```(DT).AN:0``Z?+\__^+71"+$^GE^?__@:-4 -XM"```__[__SM#>`^'E@```(M#=(E%X(M#>(E%[(&+5`@````!``"+51"+4@2) -XM5=2+5>CIO?O__XE$)`R-0WB)1"0(BT-TB30DB40D!.BKW0``A<`/A$;Y__^) -XM0W3I`OW__XE$)`B+1>2)1"0$BTW@B0PDZ(F____I1_[__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AFW0``A<`/A`'Y__^)0W3IA?K__XE$)`R-0WB)1"0(BT-T -XMB30DB40D!.@\W0``A<`/A-?X__^)0W3I0/___XE$)`R-0WB)1"0(BT-TB30D -XMB40D!.@2W0``A<`/A*WX__^)0W3IJ/W__XE$)`R-1>R)1"0(QT0D!`````") -XM-"3HY]P``(7`#X6@_O__Z7WX__^0D)"0D)"0D)"058GE@^P8BU4(]H)$`@`` -XM`70DBX(\`@``C01`P>`"`T(0BU`XA=*Z`0````^4P(3`=!C)B=##BX(\`@`` -XMN@$```"%P`^4P(3`=>CHY;O__\<``````,=$)`0&````BT44B00DZ+RY__^% -XMP'4DQT0D"`$```#'1"0$`@```(M%%(D$).C]M___N@$```#)B=##Z)^[__^# -XM."-T%HVV`````.B/N___,=*#."-UAHUT)@#)N@(```")T,.-M"8`````58GE -XM@^P8B5WXBUT(B77\BW4,BX.D````AQ=PXD<),=$ -XM)`@`````QT0D!`4```#H`&<``(M=^(MU_(GL7<.-M@````!5B>6#[!B+30B+ -XM41R%TG0.BT$@]D`80'0%@SH!?@3),<##BT4,ABX48VO__A%#-K__P````"%P`^$/@$``(M%&(/@`H/X`1G2@>+X`P``@<()`@`` -XMB84(VO__B94`"`T(0BW`XZ*6X___'```` -XM``#'1"0(`````,=$)`0`````BY5`VO__B10DZ$&Z__^%P(F%*-K__P^(L@4` -XM`(V=C/[__S'_B5PD!(M%"(D$).A8)P$`QT0D&`````#'1"04`````,=$)!`` -XM````QT0D#`````#'1"0(`````,=$)`0`````B1PDZ!`R`@"`/DX/A`<%``") -XM-"3HT[O__XET)`B)7"0$B40D#(M5"(D4).B(-0$`A<`/A*`#``"`O0;:__\` -XM#X2&`0``N`$```"!Q!PF``!;7E]=PXUV`("]!]K__P`/A#,#``"%VP^%*P,` -XM`(N5$-K___9"6`$/A?0&``"+E1#:__^+19`[0D0/A`D#``#V11@0N"R1"`AU -XM!;ATD0@(B40D#(N%0-K__\=$)`0#````B40D"(M5"(D4).AX:```N`$```#I -XM@/___XM5"/:"^`(```$/A#X#``"+@O`"``"-!$#!X`(#0A"+6#B%VP^5P(3` -XM#X1:_?__]D48$+ATD`@(=06XJ)`("(E$)`C'1"0$`P```(M5"(D4).@(8P`` -XM@<0<)@``N`$```!;7E]=PXM5&(F=0-K__\>%&-K__P````#&A0?:__\`@^($ -XMB94`VO__#Y2%!MK__^D%_?__B<*+@*`$``"-!$#!X`(#0A"+4#B%T@^4P.D1 -XM_?__BX4DVO__B00DZ#&W__^%P`^%D@D``(N%.-K__X7`="Z+10B%P'09BU4( -XMBT(0A#91@#@WT8`0^$E@4``(U%Z(E$)`B+A4#:__^)1"0$ -XMBU4(B10DZ.A4``"+G0S:__^%VXF%(-K__P^%+00``,=$)`@`````QT0D!$R2 -XM"`B+10B-O4SZ__^)!"3H,U<``(M5[(E4)!2+5?")5"00BY4@VO__B40D",=$ -XM)`1`!```B3PDB50D#.BKM?__B?F)PXM%"(MP.#GS#X-5!@``B4PD#,=$)`B? -XMK0@(QT0D!`0```"+10B)!"3HUF```(M5Z#'`A=(/A.O\__^+10B%P'09BU4( -XMBT(0AWZ__^-E7#___^) -XM5"0$BX5`VO__B00DZ%"R__^%P`^%F`0``(N5$-K__X!*6`&+A7#___^)0CR+ -XMA73___^)0D"+19")0D3I&/W__^B\LO__@S@"#X12_/__B[5`VO__QX4PVO__ -XM`````,>%.-K__P````#'A23:________@[THVO___W0.BY4HVO__B10DZ`BS -XM__^#O23:____=!R+A3#:__^)!"3HL;#__XN5)-K__XD4).CCLO__A?9T'\=$ -XM)`R?K0@(B70D",=$)`0%````BT4(B00DZ#QC``"+O3C:__^%_P^$+OK__XMU -XM"(7V=!F+50B+0A"%P'0/BY4XVO__.5!T#X0&!0``BX4XVO__B00DZ`2U___I -XM^_G__X7_#X13`0``BT4(A<`/A*(#``"+10B+6!"%VP^$E`,``/:#50@```$/ -XMA8<#``"+A0#___^+`(M`"(U$`#([0W@/A[\%``"+4W2)E3C:__^+0WB)1>2! -XMBU0(`````0``BX4`____BXTXVO__BQ"#P0&+`@^V$(32#X3Y!```BYTXVO__ -XMC4@!QX4TVO__`````.L@@/HO#X17`0``#[9!_X@##[81@\,!@\$!A-(/A,@! -XM``"`^B5UVX`Y)73?Q@,E@\,!Z]>#O0S:__\!=$+HS:[__XU=T,=%V`$```#' -XM1=P`````B5PD!(M5"(D4).CI*@``A<`/A0[Y__^-1=C'1=0`````B44,B5T0 -XMZ>OZ__^+C0C:__^X>)(("(7)=06XI)((",=$)`@`````B40D!.ES^___BX5P -XM____.T(\#X4/^?__BX5T____.T)`#X4`^?__Z>GX__^-="8`BX4`____BP"+ -XM`,>%.-K__P````")A3#:__^-A1#___^)1"0$BY4PVO__B10DZ,*O__^Z`0H` -XM`(7`#X7/`@``#[>%&/___R4`\```/0"````/A'0#``#'1"0,190("(ET)`@Q -XM]L=$)`0#````BT4(B00DZ"EA``#'A23:________Z7_]__^!H%0(``#__O__ -XM,<#I&_C__XF=--K__^F>_O__BY40VO__@&)8^XN5%-K__P^W0AB$P`^)3OK_ -XM_X"]!]K__P`/A#X#``"#R$!FB4(8Z37Z___HN*___X,X#9!U#HN=`-K__X7; -XM#X5]`P``QT0D#)^M"`B+A4#:___'1"0$!0```(E$)`B+50B)%"3HBV```+@! -XM````Z9/W___&`R7&0P%DQD,"`(N%--K__X7`#X3U`@``BY4TVO__Q@(`BX4X -XMVO__B00DZ,6N__^+E33:___&`B^#P@&)E3S:__^)QX7_#X0\`@``QX4LVO__ -XM`````(D\).@'LO__A<`/A$0!``"-5>"#P`B)5"0(BY4\VO__B00DB50D!.B# -XMKO__@^@!=<^+1>`YA2S:__]]Q(F%+-K__^N\QT0D#)^M"`B+E4#:___'1"0$ -XM!0```(E4)`B+10B)!"3HPE\``(D<).@^K___N`$```#IPO;__XN5(-K__XD4 -XM).A6LO__C4[]C10'B?@YUW(0ZQJ-="8`@\`!.<)V#X/K`8`X+XUV`'7N.%.-K__P````"-1``R -XMA<`/A([\__^)1"0,C47DB40D",=$)`0`````BU4(B10DZ(O.``"%P`^$)@(` -XM`(F%.-K__XN%`/___XN-.-K__XL0@\$!Z4S\__^)/"3HL['__XN%+-K__\=$ -XM)`A:W@@(@\`!B40D#(N%.-K__P-%Y(D<)"G8B40D!.@WKO__BX4XVO__B84P -XMVO__Z0S]___'1"0(@`$``(E4)`2+E3#:__^)%"3H+*___X7`B84DVO__#XC/ -XM^O__C95,VO__QT0D"``@``")5"0$BX4HVO__B00DZ#ZQ__^#^`")QP^.EP$` -XM`#';ZP8IQW3-`<.-A4S:__\!V(E\)`B)1"0$BX4DVO__B00DZ*NH__^%P'G8 -XMB[4PVO__Z6WZ__^!H%0(``#__O__Z?GT__^+A0#___^+`(LPQX4PVO__```` -XM`,>%)-K________I._K__XN='/___^C?K___.<-T%)-K________I_/G__XN5%-K__X/@OV:) -XM0ACI\?;__XN%.-K__\8`)8G#Q@%DQD$!`,<$)$'Q"`CHVZO__XG'BX4XVO__ -XMB84\VO__Z1?]__\/MX48____N@$$``"H-@^$KO[__\=$)`S4D0@(Z?'[__^- -XMA1#___^)1"0$BY5`VO__B10DZ&^K__^%P'41#[>U&/___XGPA,`/B8$```#H -XM]:O__\<`#0```.E&_/__B40D#(U#>(E$)`B+0W2)1"0$BT4(B00DZ&G,``"% -XMP'0(B4-TZ1CZ__\Q]L>%,-K__P````#'A3C:__\`````QX4DVO_______^D- -XM^?__?!:+E2C:__^)%"3H'*S__X7`#X35]/__B[5`VO__Z>KX__^+G1S____H -XMCJ[__SG##X5L____9H'.@``/M\:)1"0$BY5`VO__B10DZ!RN__^%P`^%2O__ -XM_\=$)`BV`0``BX4___\G#C;0F`````(N"\`(``(7`#Y7`ZX&-=@!5,G"[O__B?:+@QP! -XM``"-!$#!X`(#0Q"+0#B%P`^5P(3`=____Y"-M"8`````58GE5U93@>R\"``` -XMBU4,#[="&*@@="&#X-]FB4(8B50D!(M-"(D,).BCK@``@<2\"```6UY?7<.+ -XM50R#X`%FB4(8QT0D!%P```#'!"0!````Z!ZF__^%P(F%5/?__P^$UP8``(N% -XM5/?__X!(6`+'0!0`````QT`0`````,=`2/_____'0%3_____BU4,BU((A=*) -XME5SW__\/A!@"``"+C5SW__\/M@$\+P^$)P,``#PN#X0#`P``C95L____B50D -XM!(N-7/?__XD,).@5I/__N@$```"%P`^$Z0```(M%"/:`U`(```$/A-P&``") -XMPHN`S`(``(T$0,'@`@-"$(M0.(UR`>L-A-L/A&,&``")\H/&`0^V7O^`^SIT -XM!(3;=?"-1OXYPG/?QD;_`(N%7/?__XV];/?__XE4)`S'1"0(N90(",=$)`0` -XM!```B40D$(D\).C.I/__C95L____B85@]___B%[_B50D!(D\).ASH___A)UL'_'XG_P?\? -XMB?Z)_L'N%C'_`<81UP^L_@K!_PJ#_@IW#(7V9KL`!`^%E@4``(N%5/?__X!( -XM6`&+A6S___^+E53W__^)0CR+A7#___^)0D"+18R)0D0/MX5T____)0#P```] -XM`(````^$)`(``,=$)`RXDP@(BXU8]___QT0D!`,```")3"0(BT4(B00DZ-]3 -XM``#I^@$``(MU%(/F"(UT)@#'1"0(`````,=$)`0*````BU4(B10DZ*57``"% -XMP`^$%P$``(M5#(M""(7`=!*)!"3HGZ7__XM-#,=!"`````"+50PQVXM"#(7` -XM="")!"3HP:#__XM-#(M!#(D$).ASI?__BT4,QT`,`````(N55/?___9"6$`/ -XMA24$``"+C53W__^+04R%P'05B00DZ$2E__^+A53W___'0$P`````BY54]___ -XMBT($A7UW##[9! -XM`3PO=!0\+@^%[?S__X!Y`B^)]@^%X?S__XV%;/___XE$)`2+A5SW__^)!"3H -XM]J#__S'2A<`/E,+IR_W__XM-"/:!>`$```$/A+`#``"+@7`!``"-!$#!X`(# -XM01"+0#B-G6S[__^)1"0,QT0D"+^4"`C'1"0$``0``(D<).CFH?__B1PDZ.ZB -XM__^#^/\/A-4#``")!"3HO:'__XM%#(M0"(72#X0L!```B1PDZ)>=__^+50R% -XMP(E"#`^$[@,``(M""(7`#X2^`P``BU4,A?:+4@R)E5CW__\/A#P#``"+A53W -XM__^[``0``(/`1(D$).A4G/__BU4(QT7,`````,=%X`````#'1=``````QT78 -XM`````,=%W`````#'1>0`````QD7@"HE=U(M"$(N`5`@``(/@0(/X`1G`]]"# -XMX`2)12+A53W__\QTH!(6`2-1Z``"%P'4,BY54]___BT),B47DBY58]___Z0_] -XM___'1"0(E),(",=$)`0%````BTT(B0PDZ$%)``#IG_K__XD<).BXF?__BTT, -XMA<")00@/A2S\__^+00R%P'0(B00DZ"N@___'1"0(`````,=$)`0%````BT4( -XMB00DZ/Q(``")'"3H2)O__^E2^O__9H%(&(``Z__^%P'5WBU4,9H%*&``!Z1/[__^[`0```(U][(UUZ.L1C;0F```` -XM`(M%[(7`=2:#PP&)?"00B70D#,=$)`@`````B5PD!(M%"(D$).CG$0``AR%P'0(BT7H@#@C=,N+30B)64R[`0```.GK^O__#[9``3PJ -XM=&P\+P^%8?___XM5"(&*K`0````!``"#1>@"@VWL`NL*@T7H`8/H`8E%[(M% -XM[(/X`780BU7H@#HO=>:`>@$O=>#KIX/#`8E\)!")="0,QT0D"`````")7"0$ -XMBT4(B00DZ,L0``"%P'3"Z?W^__^+50B!BJP$`````0``ZPV-=@"#1>@!@^@! -XMB47LBT7L@_@!=A.+5>B`.BIUYH!Z`2]UX.E%____@\,!B7PD$(ET)`S'1"0( -XM`````(E<)`2+10B)!"3H:1```(7`=+_IF_[__U6)Y5:)UE.#[""+6!"-5?") -XM5"0,C57WB50D"(E,)`2)!"3_DX0(``"%P'54BT7PA53BUT(#[9-#/:#X`(```$/A!P!``"+@]@"``"-!$#!X`(# -XM0Q"+0#B%P'0]#[80A-)U$.LT#[90`832C78`="F#P`$XT77NB(N(````N`$` -XM``")@Y````#&A!B(`````(V#B````%M=P_:#C`(```$/A<<```"+@X0"``"% -XMP`^$TP````^V$(32=13IQP````^V4`&$T@^$NP```(/``3C1=>T/MM$[%?P@ -XM"0A]$*$((0D(]D20-0(/A0H!``#V@Z0"```!#X3M````BX.<`@``C01`P>`" -XM`T,0BT`XA<`/E<"$P`^$D0```,'J!@^V@CR6"`C&@X@```!`"`T,0BT`XA<`/A2W___\/MM$[%?P@ -XM"0@/C4#___^A""$)"/9$D#8$#X0P____Z -XM=`.-04"(@XD```"X`@```.E8_O__C70F`%6)Y5.#[`B+70B+10R)'"2)1"0$ -XMZ.?]__^+@Y````"#Q`A;7<.-="8`C;PG`````%6)Y5=6,?93@^P,BT4(BW@0 -XMB7WPBU4(B70D!(D4).BM_?__BU4(B<.+@I````"(AUT!```/ML"-2/^#^?]T -XM)(M%\(T4=HV44%@!``"-="8`#[8#@^D!@\,!B`*#P@&#^?]U[8/&`8/'!H'^ -XM_P```'6C@\0,6UY?7<.-M"8`````58GEBT4(5XM]#%8Q]E.+2!#K#\>!'`$` -XM``````"^`0```(N9&`$``(7;="QKD1P!```53@^P4BUT,BU4(@WL(#'8%Z'R2__^+0PC_)(7H -XME0@(QT0D",N5"`C'1"0$`P```(D4).BF0```C;8`````BT,,A6# -XM["B+10S'1"00@`L%",=$)`P(````QT0D!"`0"0B(1?RAZ!`)"(E$)`B-1?B) -XM!"3H+)3__S'2A`` -XM``"+BQ0!```Y310/A]<```"-="8`BTT4`8L8`0``BY,0`0``A7UW#BY,8`0``A=(/A$?___\K112)@QP!``#I.?___XN[&`$` -XM`(N+%`$``(M5%(U$`AZ-%#@YRG-'A?]U:K@>````QX,<`0``'@```.D'____ -XMBU4(BT(0,=*`N%('``#_#X5X____BTT(QT0D!/\```")#"3H/_[__XG"Z5[_ -XM__^#^D!S!;I`````BT4(Z+;]__^Z`0```(7`#X5:____B[L8`0``ZY)KQQR+ -XMDQ`!``")1"0(:X,<`0``'(T$`HE$)`1K110@0"0C'1"0,@`L% -XM",=$)`@(````QP0D(!`)"(E$)`3HA(S__\:&4@<```"+'>@0"0B%VW0^,575E.#[&R+10B+>!"+10R%P`^$WP4``(M-%(M%%(/A0(/@08E- -XML(E%K(N'&`$``(7`="J+1;"%P`^%L04``(M%K,=%R`````#'1<0`````A<`/ -XMA#0!``"-M@````#VAU0(```@#X6F`P``QT7(`````(M-$(E,)`R+112#X#&) -XM1"0(BT4,B40D!(M5"(D4)/^7>`@``(7`#X7P`@``BTT,BT$(C5#]@_H'=R3_ -XM))40@)#X3?`@``BTT,BP&)`HM!!(E"!(M!"(E" -XM"(M!#(E"#(M!$(E"$(M!%(E"%(M!&(E"&,=%Q`````"+3:R%R0^%9`0``(M% -XM%(M5%(/@!H/B`HE%N(E5M&NW'`$``!P#MQ`!``"#?@@!#X6 -XM_?__BT4(]H`<`P```0^%S0(``(M%"(N`%`,``(7`#Y7`A,`/A!`#``"#1<@! -XM@WW(`70?BT7(NF=F9F;WZHM%R,'Z`L'X'RG"C122`=(Y57UW#QT7$`0```.G:_?__@_@( -XM#Y7`#[;PBT4(@\8&BT`0B47,BU@(B<>#QP@Y^W08C;8`````B1PDB70D!.AD -XMI```BQLY^W7NBU7,BUH0B=>#QQ`Y^W2?B1PDB70D!.A#I```BQLY^W7NZXN+ -XM0Q@!AQP!``#IL/[__XM5"(D4).AB?P$`A<`/A$?\___I9?___Y"-="8`BUW0 -XMBT$0A=MT?XG&BT70C5H<`?")1;SK)XVT)@````"+30@/ML"+41`/MI0"4P<` -XM`(E3],9#^`"#PQP[=;QT2<=#[`$````/M@:#Q@$\_XA#\'7,BU4(BT(0,=*` -XMN%('``#_=''`$```````#IZOW__XG!BX`4`P``C01`P>`"`T$0BT`XA<`/E<#I(_W_ -XM__9%%`ATBXM-##'`QD$,8<=!$`````#'00@!````QD$4`(/$;%M>7UW#,<#I -XMG/W__XU5U(E5#.D6^O__QT0D$`8```"+0R")5"0(QT0D!`````")1"0,BU4( -XMB10DZ,;V__^%P`^%7OW__P^V5@R#^G]WCI"-="8`Z0O___^#AQP!```!,<#I -XM0OW__XL&BTT,B0&+1@2)002+1@B)00B+1@R)00R+1A")01"+1A2)012+1AB) -XM01CI`O___XM5"/:"&`0```%T58N"$`0``(T$0,'@`@-"$(M`.(7`#Y7`A,#' -XM11``````#X2_^?__@WX0"71+BT4(]H`(`@```70MB<*+@``"``"-!$#!X`(# -XM0A!K0#ADB440Z9#Y__^+30B+@1`$``"%P`^5P.NRBTT(:XD``@``9(E-$.EN -XM^?__BT4(]H"0`0```70HB<*+@(@!``#KLXM-"(M!$(.(5`@```2+10S'0`@$ -XM````,<#I6_S__XM-"&N)B`$``&2)31#I*/G__Y"0D)!5B>6#[!B+10S'1"0( -XM6)8(",=$)`0#````B40D#(M%"(D$).A8-```R<.-M@````!5B>6#[#B+50R) -XM??R+?1B)7?2)=?B%T@^$PP```(M%"(M8'(7;#X0X`0``]D40`G5"BT4(]H"O -XM!```"'0CBTAXBT!\BW$4B47@BT`4.?*)1=P/@]L````[5=P/AR`!``"+0Q`[ -XM10P/A+H```#'0Q``````C44,B47DC47LQT7H!````(M3!(E$)`B-1>3'1"0, -XM`````(E$)`2)%"3_4@R#^/]T;H/H`70WBT4,A?^)0Q"+1?")0PR+1>R)0PAT -XM!8M%\(D'BT44A<`/A+\```"+0PB+512)`C'`ZRJ0C70F`/9%$`%U+(7_=`;' -XM!P````"+512X`0```(72=`F+513'`@````"+7?2+=?B+??R)[%W#BT4,B40D -XM!(M%"(D$).BL_O__Z\"%_W2:BT,,B0>0ZY(YPG=*.?)T#8VV`````(L).U$4 -XM=?F%_W0%BT$0B0>+712%VW0WBT$(BU44B0(QP.NBQT0D"`0```#'1"0$```` -XM`(D$).CU_0$`Z6;___\I==PK5=R)50SITO[__S'`Z7#___^-="8`C;PG```` -XM`%6)Y5.#[!2+30B+70R+41R%TG1A,<"%VW0CBU(4A=)T(O:!KP0```AT#(M! -XM?`-0%(M!>"M0%#'`.=H/D\"#Q!1;7<.)7"0$QT0D$`````#'1"0,`````,=$ -XM)`@`````B0PDZ/G]__^%P`^4P(/$%%L/ML!=P\=$)`@$````QT0D!`````") -XM#"3H0_T!`+@!````ZZF-M@````"-OP````!5B>6#[$B)=?B+=0B)??R+?0R) -XM7?2+7AR%VP^$NP```(M3%(72="J)%S'`]H:O!```"'00BT9\`U`4BT9X*U`4 -XM,<")%XM=](MU^(M]_(GL7<.-1?")1>"-1>C'1>0$````BU,$B40D"(U%X,=$ -XM)`P&````B40D!(D4)/]2%(/X_W0Q@^@!=':+1>"+`(E%\(E#$(E#%(M%[(E# -XM#(M%Z(E#"/:&KP0```AU8(M%\(D',<#KD<=$)`C%E@@(QT0D!`4```")-"3H -XM13$``+@!````QP<`````Z6G____'1"0(!````,=$)`0`````B30DZ#W\`0"X -XM`0```.E'____,<#'!P````#I.O___XM&?(M`%#M%\'>8ZY.)]HV\)P````!5 -XMB>6#[#B)=?B+=1B)7?2+70R)??R+?0B%]G0&QP8`````BT44QT0D"`````") -XM7"0$B3PDB40D$(M%$(E$)`SH7/S__S'2ASVAJP$```!=4N+?AR#/P%T2XM&$(M8"(/`"#G#=0[K -XM/(M&$(L;@\`(.=AT,#G>=/`Y>QQUZXM%[(E$)`B+1?")'"2)1"0$Z.))`P"% -XMP'31N`$```"#Q!Q;7E]=PXM5"#'`A=)T[XM%[(E$)`B+1?")-"2)1"0$Z+)) -XM`P"#Q!Q;7E]=PXUV`(V\)P````!5B>564X/L((MU"(M>'(7;#X2\````QT0D -XM"`<```"+10R)-"2)1"0$Z),/``"-10R)1>B+11#'1>P$````B47PBT44B47T -XMBU,$C47PB40D"(U%Z,=$)`P`````B40D!(D4)/]2$(/``0^$B````(M#$#M% -XM#'1*]D-8`G4X@$M8!,=$)`@&````BT4,B30DB40D!.@I#P``BU4,B?"Y`P`` -XM`,<$)`$```#HL_[__X/$(%M>7<.)-"3H-)X``.N^B?;V0U@"QT,0`````'2O -XMC78`Z^*)-"3'1"0(!````,=$)`0`````Z-;Y`0"#Q""X`0```%M>7<.+10R) -XM-"3'1"0(X98(",=$)`0%````B40D#.B++@``@\0@N`$```!;7EW#ZPV0D)"0 -XMD)"0D)"0D)"058GE5U93@^PLBW4(BUX2+11#'1>@$ -XM````B47LBT44B47PBU,$C47LB40D"(U%Y,=$)`P%````B40D!(D4)/]2$(/` -XM`0^$Z````(M#$#M%#'<'QT,0`````(M#%(7`=`:#P`&)0Q3V0U@"#X6'```` -XM@$M8!+\!````QT0D"`4```"+10R)-"2)1"0$Z/(-``"+10S'1"0$`@```(DT -XM)(E$)`CH6QT``(G#BT4,QT0D!`(```")-"2)1"0(Z&(X`0"%P'4(A=L/E<`/ -XMMOB+50RY`@```(GPQP0D`0```.A`_?__N@$```"%P'4"B?J#Q"R)T%M>7UW# -XMB30DZ+.<``#I;/___XDT),=$)`@$````QT0D!`````#H9O@!`(/$++H!```` -XM6XG07E]=PXVT)@````"+10R)-"3'1"0(@)8(",=$)`0%````B40D#.@1+0`` -XM@\0LN@$```!;B=!>7UW#B?95B>575E.#["R+=0B+7AR%VP^$"0$``(U%$(E% -XMY(M%%,=%Z`0```")1>R+11B)1?"+4P2-1>R)1"0(C47DQT0D#`0```")1"0$ -XMB10D_U(0@\`!#X3O````BT,0.T40=@?'0Q``````BT,4A7UW#C70F`(V\)P````!5B>56 -XM4X/L((MU"(M>'(7;#X3*````BT4,QT0D!`$```")-"2)1"0(Z/,:``"%P'0/ -XMN`$```"#Q"!;7EW#C78`BT4,QT0D!`$```")-"2)1"0(Z.DU`0"%P'76QT0D -XM"`0```"+10R)-"2)1"0$Z"X+``"-10R)1?"-1?#'1?0$````BU,$QT0D"``` -XM``")1"0$B10D_U((@^@!='*+0Q`[10QR!\=#$`````"+0Q2%P'0&@^@!B4,4 -XM]D-8`G5&@$M8!(GPBU4,N0$```#'!"0!````Z&CZ__^#Q"!;7EW#D(DT),=$ -XM)`@$````QT0D!`````#HJ/4!`(/$(+@!````6UY=PXDT).C$F0``Z["+10S' -XM1"0(_I8(",=$)`0%````B30DB40D#.A3*@``N`$```#I__[__Y"0D)"0D)"0 -XMD%6)Y5.#[`2+70R+0QB%P'0-B00D_U`$QT,8`````(M#'(7`=`^)!"3H)X'_ -XM_\=#'`````#'0R``````,<#'0RP!````QT,P`````,=#*`$```#'0R0!```` -XM@\0$6UW#D%6)Y5.#[!2+70S'0QP`````QT,@`````,=#+`$```#'0S`````` -XMQT,H`0```,=#)`$```#'1"00`````,=$)`P"````QT0D"(`!``#'1"0$!@(` -XM`,<$)`````#H-('__S'2A<")0QAT"(/$%(G06UW#QT0D"!R7"`C'1"0$!0`` -XM`(M%"(D$).A4*0``N@$```"`2U@0@\046XG07<.-=@!5B>56B<93B7<.058GE5U93@^Q,BWT(BW<<#[966/;"$`^%Z`$``(M&*#M&)`^$ -XM`0(``(/*$(U&*(A66(E%Z,=%[`0```#'1<``````BT88C57@@T8H`8E4)`B- -XM5>C'1"0,`````(E4)`2)!"3_4`R%P`^%X0$``(M=X(`["'8+Z`IZ__^-M@`` -XM```/M@/_)(5\F`@(C57$C4,!B10DQT0D"!0```")1"0$Z!!^__^+1C'1>P$````B?:+1AB-5>"# -XM;B@!B50D"(U5Z,=$)`P`````B50D!(D$)/]0#(7`#X5W`0``BUW@@#L(=@7H -XMC'?__P^V`_\DA:"8"`B-0P&)1"0$C478QT0D"`@```")!"3HF'O__XM5"(M% -XMV#M"3'29@T8H`8!F6.\QP(/$3%M>7UW#C7L!C47$QT0D"!0```")?"0$B00D -XMZ&%[__^+1___BT4(BU!,.U7P='R+50B+1?`Y0E@/A'3___^#0F`!B4)8Z6C___^- -XM0P&)1"0$C478QT0D"`@```")!"3HQGK__XM5"(M%V#M"3`^%+O___X-^*`$/ -XMA;G^___I'____XUT)@")!"3'1"0(%)@(",=$)`0#````Z*@D``"#Q$RX`0`` -XM`%M>7UW#BT7DB50D!(/H!8E$)`R-0P6)1"0(BU4(B10DZ-OT__^%P`^$7/__ -XM_^DG____BT4(N>\!``"ZP)<(".@<^___N`$```#IL_[__XGV58GE5U93@^Q, -XMBWT(BW<<#[9&6*@0#X7=`0``@WXH`0^$^`$``(/($(A&6(U&*(E%Z,=%[`0` -XM``#'1<``````D(M&&(U5X(-N*`&)5"0(C57HQT0D#`````")5"0$B00D_U`, -XMA<`/A="`.PAV!>B,=?__#[8#_R2%Q)@("(U5Q(U#`8D4),=$)`@4 -XM````B40D!.B8>?__BT7,B478BT70B472#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3HF_/__X7` -XM#X4]`0``BT7P.4=8=*J#1V`!B4=8QT7``0```.D(____C4,!B40D!(U%\,=$ -XM)`@$````B00DZ.)X__^+1>2#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3H;O3_ -XM_X7`#X7@````@T=<`<=%P`$```#IMO[__XU#`8E$)`2-1?#'1"0(!````(D$ -XM).B0>/__BT7PB3PDB40D!.@=]___A<`/A9\```"#1V0!QT7``0```.EU_O__ -XMBU7`A=(/A&K^__^-0P''1"0("````(E$)`2+10R)!"3H1'C__S'`@&98[^L= -XMQT0D"$B8"`C'1"0$`P```(D\).A`(@``N`$```"#Q$Q;7E]=PXD\),=$)`AL -XMEP@(QT0D!`(```#H&R(``(/$3+@!````6UY?7<.)^+F(`0``NL"7"`CHO?C_ -XM_[@!````Z[N`9ECON`$```#KL(UT)@"-O"<`````58GE5XG75HG&4X/L+(M8 -XM'(-[(`AW*HU#(,=$)`P)````B40D"(M#'(DT)(E$)`3H3)8``+H!````ABT,H,=*#P`&)0RB)0R2#Q"R)T%M>7UW#C;8`````B?"Z -XMP)<("+G#````Z,_W__^#Q"RZ`0```%N)T%Y?7<-5,<")Y593@^P@BW4(BUX< -XM]D-8$`^%J0```(M++(7)#X6K````@WL@%'B+1?2#P`6)1>R+4QB-1>B)1"0(C47@QT0D#`````")1"0$ -XMB10D_U(0@\`!#X2-````BT,H@\`!B4,HB4,D,<"#Q$!;7EW#N@$```")\.C$ -XM_/__A7<.0C47TB40D -XM$(U%\(E$)`S'1"0(`@```(M%#(DT)(E$)`3H"^K__X7`#X38_O__BT4,@_@! -XM="Z)1"0$B30DZ+_I__^X`0```.N!B?"Y$0$``+K`EP@(Z.?T__^X`0```.EF -XM____QT7T`````,=%\$^-"`CIC_[__XUV`(V\)P````!5B>6+30B+41SV0E@0 -XM=1.+0BR%P'00BT%,B4(LBT%0B4(P73'`PXM!3(E"+(M!4(E",+H"````B'[__^058GE5E.#[""+=0B+1AB%P'0CQT0D"`$```#'1"0$`````(D$).AF -XMR/__BT88B00DZ'M>``"+1@B-7@@YV'00D(D$).AH7@``BT8(.=AU\8M&$(U> -XM$#G8=!:-M"8`````B00DZ$A>``"+1A`YV'7Q]H94"````G10ZUR-M@````"# -XM>P@#N>B8"`B+4PR+0Q!T!;E/C0@(B40D#*$0(0D(B50D$(E,)`C'1"0$\)@( -XM"(D$).AM;/__BQ.%TG0&BT,$B4($BT,$B1"+7FR%VW6Q@\0@6UY=PZ$0(0D( -XMQP0D!P```(E$)`3HF6S__^O;C78`58GE5HG64XG+@^P0BQ40(0D(B00DB50D -XM!.BF;?__A=MT&:$0(0D(B5PD",=$)`2=K0@(B00DZ/EK__^%]G0HZ)!P__^+ -XM`(D$).CF;?__QT0D!)VM"`B)1"0(H1`A"0B)!"3HS6O__Z$0(0D(QP0D"@`` -XM`(E$)`3H&&S__X/$$%M>7<.-M@````"-O"<`````58GE5U93@>R<`0``BT4( -XMBYAH"```A=L/A'L#``"+50B+BI0(``"%R0^$A0,``(M="+_XF`@(BTT(_(G8 -XM@\$(@\`0B8U\_O__BS.)0Q")0Q2#P'")0WR#Z`2)@X0```"#Z$R)0S")0S0% -XM_````(E+"(E+#+D#````QX.``````````,9#<`&)@RP!``")@S`!``#'@T`! -XM````````QX-$`0```````(FU@/[___.F#X6;`@``QX6(_O__`0```,>%E/[_ -XM_P````"+71"0C70F`(/#!(L3A=*)E7C^__]T9OR_`9D("+D#````B=;SIG15 -XMBY5X_O__#[8"/"L/A,\````\+77+B[5X_O__#[9&`83`#X0I`0``/&-T##Q4 -XM=`@\='0$/'=UJ8N%>/[__X!X`@!UG8/#!(/#!(L3A=*)E7C^__]UFHM%"#'_ -XM,=LQ]H.(5`@``$#'A8S^__\`````QX68_O__`````,>%G/[__P````#'A9#^ -XM__\`````C78`QT0D"`29"`B+31")3"0$BT4,B00DZ(IM__^#^/\/A!\"``"# -XMZ$:#^#$/AK4```"+50B[`0```/^2J`@``('$G`$``(G86UY?7<.-M@````") -XMUX/'`8!Z`0!U)<<$)`0```#HS7#__X7`B0,/A'H"``#'`"UC)`#IU/[__XUT -XM)@"+C7C^__^)#"3H]G'__X/``HD$).B;%D/[__P$```#I7O[__\>%E/[__P$```#I3_[__\>%F/[__P$` -XM``#I0/[__XM-"(.A5`@``+_I,?[__XNU@/[__[_WF`@(N00```#SI@^$3?W_ -XM_XNU@/[__[_[F`@(N08```#SI@^%J`0``,>%B/[__P(```#'A93^__\!```` -XMZ3#]___'@&@(```0,@@(BU4(BXJ4"```A7UW#BT7P@XBL!``` -XM`8M="(M%\(M3"(D0BY5\_O__BT7PB5`$.U,,#X1G`P``BTT(BT7PBU$(B4($ -XMBU7PBUT(B5,(B10DZ`?:__^%P'68BX6,_O__A<`/A#`#``#'1<`9````C47( -XMQT7$-P```(N=E/[__X7;=`G'`"H```"#P`2+C9C^__^%R70)QP`2````@\`$ -XMBY60_O__A=)T"<<`,P```(/`!,<`_____XU%P(E$)`2+1?")!"3H8S8``(7` -XM#X4@____A?8/A(H```"-G:3^__^)="0,QT0D"!29"`C'1"0$``$``(D<).@% -XM:___B=F)7=2+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(```'4&P>H0@\$" -XM`-*-1=2#V0.)1>0IV8U%Y(U5P(E-W,=%P`````#'1<@`````B57HQT0D"``` -XM``")1"0$BT7PB00DZ,DK``"+A:#^__^%P`^%M`(``(M5\/:"(`(```$/A(D" -XM``"+@A@"``"-!$#!X`(#0A"+0#B)0C2+5?#V@F`!```!#X19`@``BX)8`0`` -XMC01`P>`"`T(0BT`XB4(XBX6@_O__A<`/A/;]__^+5?"+C83^__^#_W*+=1"- -XM'(X/A`(#``#V@FP$```!#X0G`@``BX)D!```C01`P>`"`T(0BT`X@\`!T>B) -XM@H0```"+10B+@`P!``"%P`^$^P(``(N%G/[__X7`=!V+E9S^__^)5"0$BT7P -XMB00DZ)'.`0"%P`^%KOW__XLSA?9T;(M5\(M"((7`=#V+0`B#ZP2)!"3HOVS_ -XM_X/``8D$).AD:___A<")PHD##X3.`P``BT7PBT`@BT`(B10DB40D!.CC;/__ -XMBU7PB5HHB5HDBT7P@8BL!````"```(/_3\__^-1>R)%"2-7:2)1"0(QT0D!`,```#H^@@``(M5[,<$)`$```") -XM5"0(B40D!.B78?__ZQ2#^`QT2XM%\(D$)(M5"/^29`@``,=$)`P`````QT0D -XM"`````")7"0$BT7PB00DZ.[5__^%P`^%2_K__XM%K(/X!'0-@^@!=;V+1;2# -XM^`AUL(M5\.D-_?__BT(DA564XM`'(G3BU`XA=)T'P^V2A`Q]HG0 -XM.L9D`^V2!`YV7,.B<*+`H7`=?!;B=!>7<.)UCG9=`*)\%N)PEZ)T%W# -XMC78`C;PG`````%6)Y593@^P@BT4,BW40@_@!=%US"^CZ8?__C;8`````@_@" -XM=`LQTH/$((G06UY=PXM5",=$)`0"````B10DZ&W=__^%P'10BU4(BT(WKO(VT)@````"+50B+0AR+6#B%VW2H -XMC78`BT,(.?!R"'0\@^@!B4,(BQN%VW7KZXZ-1?2)1"0$BT4(B00DZ*?=__^Z -XM`0```(7`#X5Q____@WWT`76+C70F`.E@____@$L1`8M%"(E<)`2)!"3HB.[_ -XM_^NUC;8`````58GE5U93@^P,BW4,BWT(@_Y@#X2(````B?*)^.BO_O__A<") -XMPW0/#[9($`^VP3GP#X1Z````QP0D%````.BR9?__A<")P@^$S0```(7;#X2? -XM````BP.%P(D"=`6+`XE0!(D3B5H$BTT0B=.+`8E""(M!!(E"#(GPB$(0BTT4 -XM,<"%R74/B$,1,=*#Q`R)T%M>7UW#B=.X`@```.OHC70F`&:^)P#I;____XVT -XM)@````"+112%P'4I#[9#$3'2@^`#@_@"=,2+51"+`HE#"(M"!(A+$(E###'` -XMZZJ-M@````"+51"+`HE#"(M"!(A+$(E##.NBBT\6#["B)7?2+70R)=?B)??R#^V!T;8M%"(G:Z&_] -XM__^%P(G&=`X/MD`0#[;X.=^(1?-T4X#[_P^$XP```(M5"`^VPXT$0(V$`%`! -XM```#0A"#P`B)1"0,QT0D"(":"`B+10B+512)!"2)5"0$Z,X-``"X`0```(M= -XM](MU^(M]_(GL7<.S)^N/]D81`70R@'WS_P^$G0```(M5"(T$?XV$`%`!```# -XM0A"#P`B)1"0,QT0D")B:"`CKIXVT)@````"+1@B#^`%U!XM>#(7;=$"+50B) -XM1"0$B10DZ++:__^%P'4J@'WS_W1ABU4(C01_C80`4`$```-"$(/`"(E$)`S' -XM1"0(O)H(".E4____BT8(BU40B0*+1@R)0@0QP.E6____BT4(B5PD!(D$).@` -XMR?__Z1____^+10B)?"0$B00DZ.S(___I8O___XM%"(E\)`2)!"3HV,C__^NA -XMC;8`````58GE4X/L!(M=#(M3.(72=""+"H7)=`:+0@2)002+0@2)"(D4).C* -XM8___BU,XA=)UX(/$!#'`6UW#D)"0D)"0D%6)Y8M%"(M`:(7`=`F)10B+2`1= -XM_^%=PY"-M"8`````58GE5U93@^PLBW40QP8`````BU4,#[8"A,!T00^^P(7` -XM>$N+'?P@"0@YV'U!BPT((0D(]D2!-@1U&^LRC70F``^^P(7`>"`Y4'0/A`X!``"+1>`Q]HD$).AZ8O__BU4(@47<``$``(72#X5;____BU7< -XMB10DZ+UA__^%P'5*QT7@3XT(".D<____BT7#I -XM-____XM=X(G7.?,/@T?___\\_W0]BU4(#[;`C01`C80`4`$```-"$(/`"#G> -XM#[80#Y?!A-)U0`^V1P&#QP&$P`^$%?___X3)#X0-____//]UPXM%",=$)`3_ -XM____B00DZ(+&__\YW@^7P0^V$(32=,:-M@````"$R72\B!,/ME`!@\,!.=X/ -XME\&#P`&$TG7GZZ6!H%0(``#__O__,?;I[O[__XE$)`R-0WB+50B)1"0(BT-T -XMB10DB40D!.C7?@``A<`/A.K^__^)0W3I5?[__XM5X#'VB10DZ"YA___IK_[_ -XM_\8#`.GP_?__C;8`````C;PG`````%6)Y8/L.(E=^(M=#(EU_(MU$`^^`X/X -XM?W<*]@2%W10)"`1U'(7V=`J)'"3HE&'__XD&B=B+=?R+7?B)[%W#B?8/OD,! -XM@_A_=]OV!(7=%`D(!'31#[Y#`H/X?W?(]@2%W10)"`1TOH![`WQUN(U%](E% -XMY,=%Z`0```")'"3H\UC__XE%](M%"(7`=%6+50B+0A"%P'1+BU!HA=)T1(U% -XM[(E$)`B-1>3'1"0,`````(E$)`2)%"3_4@R%P'4DBU7PA=)T'87V=`6-0O^) -XM!HM%[,9$`O\`BUWLZ5;___^-="8`@\,$Z3S___^0C;0F`````%6)Y8/L"(M% -XM#(M-"(M5$(/X!78,Z*M:__^-M"8`````_R2%')T("(E5$,=%#,2<"`B)30C) -XMZ=;^__^)51#'10SJF@@(B4T(R>G#_O__B540QT4,9)P("(E-",GIL/[__XE5 -XM$,=%#(2<"`B)30C)Z9W^__^)51#'10S]F@@(B4T(R>F*_O__B540QT4,&YL( -XM"(E-",GI=_[__XVT)@````!5B>575E.#["R+10B+<""+1@B)!"3H&F#__XM= -XM"(7;B47H#X3M````BU4(BUH0A=L/A-\```#V@U4(```!#X72````C02%@``` -XM`#M#>`^'9`4``(M+=(E-X(M#>(E%[(&+5`@````!``"+10B+<""+5@B+?>`/ -XMM@*$P`^$Y@```(G6ZU>+50@/ML"-!$`!P`-"$`^VF%T!``")7>@/M@8\_W1= -XMBU4(#[;`C01`C80`4`$```-"$(/`"(D\)(E<)`B)1"0$Z$M>__\/MD8!@\8! -XM`WWHA,`/A(L````\_W6EQT0D!/____^+30B)#"3H;L7__XG#B5WH#[8&//]U -XMI8GVQT0D!/____^+30B)#"3H3`"`T$0BT`XA<`/E<"$P`^%"0(``,8".HUR -XM`L9"`2#V11`!#X0K`0``C47PB40D!(M%"(D$).BMT___A<`/A0D!``"+1?"% -XMP`^%C0(``(U5Z(E4)`C'1"0$CYL("(M-"(D,).B0^___BU7HB30DB50D"(E$ -XM)`3H(5S__XGP`T7HZ0B)%"2)3"0(QT0D!%F;"`CH7/O__XG"Z1O_ -XM__^-5>B)5"0(QT0D!$B;"`B+30B)#"3H._O__XM5Z(D<)(E4)`B)1"0$Z,Q; -XM__^)V`-%Z,8`+(U8`L9``2"+50B+0ASV0%@$#X2S_O__ZY2+=>"+30B)#"3H -XM*34!`(M%"(M0$(M%Z(ET)`C'1"0$!````(E$)`R+30B)#"3_DI0(``"+10B% -XMP'06BU4(BT(0AB)1"0(QT0D!+J;"`B+50B)%"3HBOK__XM-#(DT)(E,)`B)1"0$Z)M<__^) -XM-"3H,US__XT$!HU(`<8`"HG(*T7@]D40`HE%Z`^$3?___XM5"(MR.#GP#X8_ -XM____BU7@C5[].?IR+#G7=#>-C&0@$@C5H"B0PDB40D",=$)`1UFP@(Z'CY__^+5>B)'"2)5"0(B40D!.@) -XM6O__B=H#5>CI2?W__X/@[V:)01B-3>B)3"0(QT0D!#N;"`B+10B)!"3H.OG_ -XM_XM5Z(D<)(E4)`B)1"0$Z,M9__^)V@-5Z.G[_/__C47HB40D",=$)`2>FP@( -XMBU4(B10DZ`/Y__\QTHE$)`2+3?!K70QDB4PD#(G8]_&)1"00BTT,B30DB4PD -XM".C_6O__B30DZ)=:__^-!`;I7_[__X&@5`@``/_^__^#Q"Q;7E]=PXE$)`R- -XM0WB)1"0(BT-TB40D!(M5"(D4).@\=P``A<`/A.C]__^)0W3I;_K__XVV```` -XM`(V_`````%6)Y5=64X/L/(MU"/:&K@0```0/A;"`C'1"0$&0```(E$)`SH-%;__XU5[(E%U`'#B47L,<")5"0(@WR^7`&) -XM-"0/E<"+!(50G0@(B40D!.AD]___BU7LB1PDB50D"(E$)`3H]5?__XM%[(U5 -XM[`'#B47@Q@,@BP2]6)T("(/#`8E4)`B)-"2)1"0$Z"GW__^+5>R)'"2)5"0( -XMB40D!.BZ5___BT7LBU7@`<.-1!`!`T78`T74B478,<#'1+Y<`````(/'`8/_ -XM!P^%'?___\8#"HDT).@0,0$`BT78BU80@\`!B40D#(M%W,=$)`0$````B30D -XMB40D"/^2E`@``(7V=`^+1A"%P'0(BU7<.5!T=&B+1=R)!"3HL5?__X/$/%M> -XM7UW#BX8@`P``C01`P>`"`T80BT@XZ3'^__\PP,=$AEP`````@\`!@_@'=?"# -XMQ#Q;7E]=PX%[>+P"``!V)XM#=(E%W(M#>(E%\(&+5`@````!``#I8?[__X&@ -XM5`@``/_^___KEXU#>,=$)`R]`@``B40D"(M#=(DT)(E$)`3HMG0``(7`#X1Q -XM____B4-TZZZ)]HV\)P````!5B>575E.#[#R+?0B%_P^$9`0``(M%"(-]#`:+ -XM0!")1=AV!>B,4?__BU4,_R25-)T(",=%#`,```"A*"$)"(/``:,H(0D(@^@! -XM=$:#Q#Q;7E]=PXM%"/:`,`0```$/A#@$``"+@"@$``"+5=B-!$"+3((XA+1>R- -XM'`8[7?!W'(!]UP"--`$`0`` -XMBU-TB57@BT-XB47P@8M4"`````$``(-]#`4/A`L!``"#?0P##X7R_O__BWW@ -XM,?;&1=<`BT4(A<`/A.?^__^+1=B%P`^$W/[__XM%V(N0!`$``(72#X3+_O__ -XM#[8"A,`/A$P!``")T^M5C78`BU4(#[;`C01`C80`4`$```-"$(/`"(E$)`S' -XM1"0(GZT("(M%\(D\)"GPB40D!.B!4O__`<8[=?")1>P/A^_^__\!QP^V0P&# -XMPP&$P`^$\P```#S_=:K'1"0$_____XM%"(D$).B7N?__ZZN0C70F`(M%W,=% -XM\`````#'1>``````A<`/A"'___^+1=R-5?")5"0(QT0D!`````")1"0,BT4( -XMB00DZ`9R``"%P`^$A@$``(-]#`6)1>`/A?7^__^-1>R)1"0(QT0D!,R;"`B+ -XM10B)!"3H-_/__XM5[#E5\`^"2_[__XE4)`B)1"0$BU7@B10DZ+Q3__^+=>R+ -XM?>#&1=(E4)`R)1"0(BT-TB40D -XM!(M%"(D$).A[<0``A<`/A/L```")0W3I3_[__XM5V(N""`$``,=$)`C8FP@( -XMB40D#(M%\(D\)"GPB40D!.A)4?__`<8[=?")1>P/A[?]__\!Q^DY_?__Z(]0 -XM__^+`(D$).CE3?__QT0D")VM"`B)1"0,BT7PB30D*=B)1"0$Z`A1__\!PSM= -XM\(E%[`^'=OW__P'&@\,!.UWPQT4,`P````^'8?W__\8&"HM]"(7_=`N+10B) -XM!"3H7"P!`(MUV(7V#X3Y````B5PD#(M5X(E4)`B+10R)1"0$BU4(B10DBT78 -XM_Y"4"```BTT(A`Y4'0/A.````"+1>")!"3H[%+_ -XM_\<%*"$)"`````"#Q#Q;7E]=PXM%"/:`K`0```(/A.C[___V@#`$```!=6Z+ -XM10B+F"@$``"%VP^4P(3`#X3)^___BU78@XI4"````NG3^___@WT,`G0P@WT, -XM!L=%V``````/A:K[___'10P$````Z9[[__^+10B+D"@$``"%T@^4P.G*^___ -XMQT4,`P```,=%V`````#I>/O__XN`*`0``(M5V(T$0(MT@CB%]@^4P.N)BU7@ -XMH1`A"0B)7"0(QT0D!/*8"`B)5"0,B00DZ&Q*___I`____X&@5`@``/_^___I -XM'/___XUT)@!5B>6#[#B)=?B+=1")??R+?0B)7?2%]G1IZ-9.__^+&(U%\(ET -XM)`2)1"0(B3PDZ#WN__^)QNBZ3O__B1B+112)="0,B3PDB40D"(M%#(E$)`3H -XMFOK__XM%\(7`=!B%_W0,BT<0A"-1>C'1>0$````QT7P`0```(E$)`B- -XM1>#'1"0,`````(E$)`2)'"3_4PR%P'4*@WWL$@^$`P$``(D<)/]3!*'L$`D( -XMA<`/A+L```#'!>P0"0@`````N`$```"!Q#P$``!;7E]=PZ'L$`D(A7UW#QP0DWYL(".@H2?__ABX\)L("+D2````_(G'\Z8/A>7^ -XM__^+10C'!>P0"0@`````BU`0BT)HA575C'V4X/L#(M]"(G[ZQ*#QA"#PPR!_O`$```/A+P```"#OFBC -XM"`@#=>7VAFRC"`@!==P/MI,``0``@^(!#X2B````BX/X````C01`P>`"`T<0 -XMBT`XA<`/E<"$P'0LA-(/A*0```"+@_@```"-!$#!X`(#1Q"+0#B)!"3HX4[_ -XM_P^VDP`!``"#X@&$TG1GBX/X````C01`P>`"`T<0BT@\A7UW#BX/X````A<`/E<#I9?___XN#_````(7`#Y7`ZZ.+@_P` -XM``#KN8N#^````.EC____D(VT)@````!5B>6#[!B+10S'1"0,=)T(",=$)`0# -XM````B40D"(M%"(D$).@8_/__R<.-M@````!5B>53@^P4BTT,BUT(C01)C02# -XM]H```0```70TBX#X````C01`P>`"`T,0BU`XA=)T!S'`@#H`=0R+51"X`0`` -XM`(72=!.#Q!1;7<.0C70F`(N0^````.O6P>$$BX%@HP@(B1PDQT0D#+"="`C' -XM1"0$`P```(E$)`CHD_O__X/$%+@!````6UW#D(VT)@````!5B>6#[%B)7?2+ -XM70B-1>R)=?B)??S'1"000%<%"(E=[,=$)`P(````QT0D""8```#'1"0$8*@( -XM"(D$).AD2___AQ=PXU%W(E=W,=$ -XM)!`@5P4(QT0D#!````#'1"0(3P```,=$)`1@HP@(B00DZ!I+__^%P'7!B1PD -XMZ)Y-__^+-6"C"`B%]HE%R'19#[8#QT708*,(",=%Q`````"(1<_K%(VT)@`` -XM``"#1=`0BT70BS"%]G0G#[9%SS@&?.M_'8M%R(G?_#G`B<'SIG7;BTW$A`"`T80BU`XBP.)5"0,QT0D!':?"`B)-"2)1"0(Z/XD -XM`0")PNGZ_O__C;0F`````(N`^````(T$0,'@`@-&$(M`.(7`#Y3`ZY:-M"8` -XM````BX#X````C01`P>`"`T80BT`XZ3+___^+@/@```"-!$#!X`(#1A"+0#B% -XMP`^5P.G/_O__C01)BY2&^````.EV____C;0F`````(V\)P````!5B>575E.! -XM[,P"``"+10B+2#C'A53]__\*````C70F`#'2B#'A43]__\`````QX50_?__`````,>%7/W__P````"#Z@*)E3S]__^) -XMC3C]__^+E5S]__\/MH)LHP@(J`0/A1`!``")U\'_!(-]#`)T%8-]#`,/A&(" -XM``"#?0P!=%'H7$3__Z@!=4B+C5S]__^+@6BC"`B#^`(/A\\#``"+50B-!'^- -XM!(+V@``!```!#X2=!```BX#X````C01`P>`"`T(0BU`XBT`\.<(/A*0```"+ -XM50B-!'^--(*-AO`````/ME@0@^/]B%@0BXU<_?__BX%@HP@(B00DZ/-)__^+ -XME5S]__^)A4S]__^+@FBC"`B#^`(/A'D"```/@]8!``"#XP$/A%H"``"+AO@` -XM``"+30B-!$#!X`(#01"+0#B%P`^4P(3`=`>#A4S]__\"BX4\_?__.85,_?__ -XM#X\(`@``BY50_?__B;R5:/W__X/"`8F54/W__XN57/W__XN"<*,("(/"$(F5 -XM7/W__X7`#X6^_O__BY50_?__A=(/CNX```"+C5#]__\YC53]__\/C#L#``#' -XMA5C]__\!````QX5`_?__`````,>%8/W__P````"+A53]__^%P'Y[BX58_?__ -XM,?8QVXN50/W__XT\$.LXBX5(_?__@\8!BTT(QT0D#$^-"`C'1"0$?I\(""G0 -XMB40D"(D,).@D(@$``YU8_?__.[54_?__="Z+E4#]__^-!!.+E(5H_?__BT4( -XMP>($@<)@HP@(Z,7[__^)PHT$'SF%4/W__W^:@X5@_?__`8N%8/W__SF%6/W_ -XM_P^/'0,``(.]1/W__P`/A+(!``"+50C'1"0$)KH("(D4).@?(0$`BX5$_?__ -XM,=N-M:3^__^%P`^.B0$``(L4GH/#`8M%",'B!('"8*,(".A2^___.YU$_?__ -XM#X1F`0``BTT(QT0D!":Z"`B)#"3HTR`!`.O(BTT(C01_]H2!``$```(/A(7^ -XM___IW/W__X/X`P^%3_[__XG:@^(!#X1"`0``BTT(C01_BX2!^````(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,!T(X32#X7O`0``BTT(C01_BX2!^````(D$).BI1___ -XM`85,_?__@X5,_?__`XN%//W__SF%3/W__P^.^/W__XN-1/W__XF\C:3^__^# -XMP0&)C43]___I\_W__XNV^````(7V#Y3`Z;#]__^#XP$/A,<```"+AO@```"+ -XM50B-!$#!X`(#0A"+0#B-3>")#"2)1"0,QT0D"+.@"`C'1"0$%````.@"1/__ -XMC4W@BP&#P02-D/_^_O[WT"'"@>*`@("`=.GWPH"````/A"(!````TH/9`RN- -XM./W__P&-3/W__^E"_?__@\`&,=*#X/J)A4C]__^)R/>U2/W__XF%5/W__^GA -XM^___D(M%",=$)`0FN@@(B00DZ&T?`0"!Q,P"``!;7E]=PXM-"(T$?XN,@?@` -XM``"%R0^5P.G%_O__BX;X````Z4/___^#^`,/A5O\__^+30B-!'^-!($/MH@` -XM`0``@^$!#X2Q````BX#X````BU4(C01`P>`"`T(0BU`XBT`\.<(/A,;\__^$ -XMR0^%JP```(M5"(T$?XT$@HN0_````(72#X0#_/__BX#X````B50D!(D$).BQ -XM0O__A<`/A(W\___IY/O__XN54/W__XG0P?H?][U4_?__@_H!@]C_A<")A5C] -XM__\/CZK\___I=_W__\'J$(/!`NG3_O__BU4(C01_BX2"^````(T$0,'@`@-" -XM$(M`..D`_O__BY#X````BX#\````Z5;___^+D/@```"+@/P```#I9_O__XM- -XM"(T$?XN$@?@```"-!$#!X`(#01"+4#R%T@^$3OO__XM`..E)____BU4(QT0D -XM!":Z"`B)%"3H#QX!`(N-8/W__XF-0/W__^DA_/__C;0F`````(V\)P````!5 -XMB>6#[!B+10R)??R+?0B)7?2)=?B+=1"-!$#!X`*-%#CV@@`!```!C9P'^``` -XM`'06BX+X````C01`C02%,`````-'$(U8"/?&"````'5Q]\8!````=#[WQ@P` -XM```/A)T```"#Y@)U&(M#!(7`C78`=`Z)!"3H"D3__XVV`````(M5%#'`B5,$ -XMBUWTBW7XBWW\B>Q=P_?&#````'18@^8"=0Z+`X7`=`B)!"3HU$/__XM5%#'` -XMB1/KSXVT)@````"+112)!"3H*3W__X7`B444#X5Y____QT0D"`````#'1"0$ -XM!0```(D\).B"[/__N`$```#KDXM%&(D#,<#KBHGVBT48B4,$,<#I>____XUV -XM`%6)Y57VAVRC"`@!==R+1?"%P`^%'`$``/:#``$```$/A`$!``"+@_@```"+50R- -XM!$#!X`(#0A"+0#B%P`^$\@```(M5#,=$)!``````B40D#,=$)`@*````B70D -XM!(D4).@T_O__A<`/A2H!```/MI,``0``@^(!#X0*`0``BX/X````BTT,C01` -XMP>`"`T$0BT`\A<`/E<"$P`^$2O___X32#X0<`0``BX/X````BU4,C01`P>`" -XM`T(0BT`\BTT,QT0D$`````")1"0,QT0D"`L```")="0$B0PDZ+K]__^%P`^$ -XM`O___XM%"(/&`8/'$,=$)`@`````@\,,QT0D!`4```")!"3H_NK__X/^3\=% -XM\`$````/A>#^__^+1?"#Q!Q;7E]=PXN#^````(7`#X4.____BTT,QT0D$``` -XM``#'1"0,`````,=$)`@&````B70D!(D,).@^_?__BT4,QT0D$`````#'1"0, -XM`````,=$)`@'````B70D!(D$).@7_?__Z6+^__^+@_P```"%P`^5P.D`____ -XMBTT,QT0D$`````#'1"0,`````,=$)`@'````B70D!(D,).C;_/__Z23___^+ -XM@_P```#I[O[__XUT)@"-O"<`````58GE5U93@^Q\Z8/A&4YV9`/A%H(``"`^CW'1<0!````QT7(`````'0.QT7$```` -XM`,=%R`$```"%R<=%[`````#'1=``````=`G&`0"#P0&)3=")'"3H]O+__X7` -XMB<P/MD<, -XMA=(/E<&H(`^%`0(``*@0#X57`@``BU7$A=(/A3H%``"+5R%P`^%#`,``(M%R(7`#X1V`0``BT6X -XMA_O__]D<,`G5@BTT(C01;C02!#[:0``$``(/B`0^$ -XM&00``(N`^````(T$0,'@`@-!$(MP.(7V#Y7`A,!T+(32#X6)!```BTT(C01; -XMBX2!^````(M5T(D$)(E4)`3HPSO__X7`#X33_O__BT<$A/[__X3)#X3W_?__QT0D#-"= -XM"`B+10B)="0(QT0D!`,```")!"3HY>O__\=%S`$```#I1?[__X![`6\/A8C^ -XM__^-P!````B30DZ#WP__^%P(G'#X5'_?__Z6?^__^%T@^%H?W__\=$ -XM)`P`G@@(Z9,!``"+1<2%P`^$?_[__XM5T`^^`H/X?P^'GP```/8$A=T4"0@$ -XM#X21````C47@C4WPQT0D#`H```")1"0(B50D!(D,).CS6```B46\@^@!#X25 -XM`P``BU4(C47HB70D!(E$)`B)%"3HH=G__XM5"(U-Y(E,)`B)%"2)PXM%T(E$ -XM)`3HAMG__X-]O`&)Q@^#-P4``(M-"(E$)!")7"0,QT0D")"?"`C'1"0$!0`` -XM`(D,).C7Y?__ZUN0C70F`(M5"(U%Z(ET)`2)1"0(B10DZ#K9__^+50B-3>2) -XM3"0(B10DB<.+1=")1"0$Z!_9__^+30B)7"0,QT0D"*B>"`C'1"0$`P```(D, -XM)(G&B40D$.AZY?__BT7HA2%VP^$/O[__XM-"(7)=!.+30B+01"%P'0).W!T#X1#!``` -XMB30DZ#@\___'1`/M@"$P'0G#[[0A=(/B+W\__\[%?P@ -XM"0@/C;'\__^A""$)"/9$D#8"#X2A_/__#[9'#*A`=`N+5?"%T@^$VP$``*@" -XM=3&+50B-!%N-!(+V@``!```!#X3.`0``BX#X````C01`P>`"`T(0BT`X.T7P -XM#X2E^?__BT<$ASIM/S__XNP^````(7V#Y3`Z6O\__^!H%0( -XM``#__O__Z9C[__^!H%0(``#__O__QT7,`0```.E/^/__BY#X````A=(/E<#I -XM-OS__X-]O`)T$H-]O`,/A3G[__^-=@#ID?C__XE$)!"+10B)7"0,QT0D"("> -XM"`C'1"0$`P```(D$).B(X/__Z0G[___'1"0,U)X(".F*^?__BX#X````Z3G^ -XM__^+10C'1"00`0```,=$)`P`````QT0D"`````")7"0$B00DZ-3R___IN_?_ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y8'L6`0``(EU^(MU"(U%V(E=](V=R/O__XE% -XMZ(U%R(E]_(G?B5W8QT7(`````,=%T`````#'1>``````B47LQT0D$`,```#' -XM1"0,`````,=$)`@`````QT0D!#\```")-"3H5_+__X7`=3.`CO0#```!QT0D -XM$`$```#'1"0,`````,=$)`@`````QT0D!!@```")-"3H)/+__X7`=$#!XP2+ -XM@V"C"`C'1"0(2)\(",=$)`0#````B30DB40D#.AKW___N@$```"+7?2)T(MU -XM^(M]_(GL7<.-M"8`````@(X@`@```<=$)!``````QT0D#`````#'1"0(```` -XM`,=$)`0(````B30DZ+'Q__^%P'6-@(Y@`0```<=$)!`"````QT0D#`````#' -XM1"0(`````,=$)`0S````B30DZ'[Q__^%P`^%5O___X".9`,```''!"2GGP@( -XMZ-*`@("`=.GWPH"```!U!L'J$(/!`@#2NPH```"#V0,I -XM^8U5Z(E-X,=$)`@`````B50D!(DT).BL\___A<`/A43^__^!_]*?"`B)^W0E -XMQX7(^___97-C8<>%S/O__W!E=&G'A=#[__]M93TVQH74^___`(G9BP&#P02- -XMD/_^_O[WT"'"@>*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*?F-1>B)3>#' -XM1"0(`````(E$)`2)-"3H+?/__X7`=!2[#````.F__?__N"'5"`CI>O[__X'_ -XMWY\("'0=QX7(^___:V5Y=,>%S/O__VEM93UFQX70^___-@")^8L!@\$$C9#_ -XM_O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D -XM"`````")5"0$B30DZ*CR__^%P'04NQ8```#I.OW__[B_GP@(Z7O^__^!^^F? -XM"`AT'L>%R/O__VUA=&/'A*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0( -XM`````(E$)`2)-"3H(O+__X7`=`J['0```.FT_/__QT0D#/6?"`C'1"0(#*`( -XM",=$)`0`!```B1PDZ,@P__^)V8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*` -XM@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D"`````")5"0$B30DZ*SQ__^% -XMP'0*NR````#I/OS__X'[%J`("(G?=!O'A%S/O__V=R87#'A=#[__]H% -XMV/O__U!14%#'A=S[__\@3$EPQX7@^___<&QP:<>%Y/O__W!B<`")V8L!@\$$ -XMC9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLF````@]D#*?F- -XM5>B)3>#'1"0(`````(E4)`2)-"3HA/#__X7`#X4<^___QT0D#$^-"`C'1"0( -XML)\(",=$)`0`!```B3PDZ#`O__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I -XM]\*`@```=0;!ZA"#P0(`TKLG````@]D#*?F-1>B)3>#'1"0(`````(E$)`2) -XM-"3H#_#__X7`#X6G^O__QT0D#!^@"`C'1"0(,Z`(",=$)`0`!```B3PDZ+LN -XM__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLK -XM````@]D#*?F-5>B)3>#'1"0(`````(E4)`2)-"3HFN___X7`#X4R^O__@?\] -XMH`@(B?MT.\>%R/O__W-E8W3'A%U/O__TA( -XM($C'A=C[__]5;FAS9L>%W/O__V@`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,I^8U%Z(E-X,=$)`@`````B40D!(DT).@% -XM[___A%S/O__VQM973'A=#[__]A/7Y[QX74^___6RH_),>% -XMV/O__V`G(ES&A=S[__\`C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0(`````(E$)`2)-"3HS.W_ -XM_X7`=`J[-0```.E>^/__@?M_H`@(="7'A% -XMT/O__W1H/3C&A=3[__\`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(`` -XM`'4&P>H0@\$"`-*[-@```(/9`RN-O/O__XU5Z,=$)`@`````B4W@B50D!(DT -XM).A`[?__A<`/A=CW__^!O;S[__^,H`@(="?'A%T/O__VQL/3%FQX74^___-@"-CH0@\$"`-*[.0```(/9`RN-O/O__XU%Z,=$)`@````` -XMB4W@B40D!(DT).BP[/__A<`/A4CW__^!O;S[__^:H`@(=!W'A")5"0$B30DZ"KL__^%P`^%PO;__XV%R/O__\=$)`Q@P0@(QT0D"*2@"`C' -XM1"0$``0``(D$).C0*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NSX```"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3HI^O__X7`#X4_]O__]H8@`@```0^$QP$``(N&&`(``(T$0,'@`@-& -XM$(M`.(/H`='HA<")1?!U!\=%\`$```"+1?#'1"0(K*`(",=$)`0`!```B40D -XM#(V%R/O__XD$).@<*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NS````"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3H\^K__X7`#X6+]?__BT80C57PB50D!(DT)/^08`@``+H!````A<`/ -XMA97U__^+1?`]6`(```^'U````,=%\`@```"+1?#'1"0(MZ`(",=$)`0`!``` -XMB40D#(V%R/O__XD$).AE*?__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("` -XM=.GWPH"```!U!L'J$(/!`@#2NTD```"#V0,KC;S[__^-5>C'1"0(`````(E- -XMX(E4)`2)-"3H/.K__X7`#X74]/__H6"C"`B%P`^$L`$``(GS,?^)^,'@!(F% -XMP/O__XN`:*,("(/X`0^$9`$```^"L0```(/X`@^$`@$``(/X`XVT)@````!T -XM,^C-)?__/;`$``"-="8`#X>\````QT7P$````(UV`.D5____BX88`@``@^@! -XMT>CI0/[__P^VDP`!``"#X@$/A(````"+@_@```"-!$#!X`(#1A"+0#B%P`^5 -XMP(3`=#Z$TG19BX/X````C01`P>`"`T80BT`XQT0D$`````")1"0,QT0D"`L` -XM``")?"0$B30DZ!KF__^%P`^%\O/__XN%P/O__X/##(N`<*,("(7`#X3$```` -XM@\O___S'2Z:3R__^+&^ES\O__ -XMC78`58GE5U93@^PLBQ5@HP@(BWT,A=(/A)L"``#'1?``````Z8(```"+3>2- -XM!$F+30B-!('V@``!```!#X1>`@``BX#X````C01`P>`"`T$0BT`XA<`/E<"$ -XMP`^$%@(``(E4)`C'1"0$PJ`("(D\).CR(/__H:`4"0B%P`^%<0$```^_1PS! -XMZ`:#X`&$P`^%=`$``(M-\(N1<*,("(/!$(E-\(72#X0-`@``BT7P]H!LHP@( -XM"'7=BTWPP?@$B47DBX%HHP@(@_@"#X1D`0``#X)4____@_@#=9N+5>2+30B- -XM!%*-!('V@``!```!#X2=`0``BX#X````C01`P>`"`T$0BT`XA<`/E,"$P`^% -XM8____XE\)`S'1"0(!````,=$)`0!````QP0DXJ`(".AU)O__BU7PBX)@HP@( -XM#[8PB?&$R0^$L`$```^^V8E%[.MTC78`H0@A"0CV1)@V`G1QH:`4"0B%P`^% -XM=P$``(M'"(/H`87`B4<(#XC4`@``BP?&`%R#P`&)!Z&@%`D(A(&(/``8D'BTWL#[9Q`8/!`8E-[(GPA,`/A#2-!$F+30B-!('V@``!```!=&B+ -XM@/@```"-!$#!X`(#01"+0#B)1"0,B50D",=$)`34H`@(B3PDZ/4>___I_OW_ -XM_XE4)`C'1"0$RJ`("(D\).C<'O__Z>7]__^+@/@```"%P`^4P.EJ_O__BX#X -XM````A<`/E<#IJ?W__XN`^````.NB@\0L,CK;8GVH0@A"0CV1)@V`G1KBPV@%`D(A+%:`4"0B%TG5)BT<(@^@!A<")1PAX2HL' -XMB!B#P`&)!XM5Z`^V<@&#P@&)5>B)\83)=%T/OMF%VW@(.1W\(`D(?XF)\8#Y -XM7'2.BQ6@%`D(A=)TMXE\)`2)'"3H)\#P*D'6JB7PD!(D< -XM).@6)/__ZZ6)?"0$QP0D7````.A$'O__Z7#___^AH!0)"(7`=6>+1PB#Z`&% -XMP(E'"`^(G@```(L'Q@`*@\`!B0?I)/S__SM'&`^-(_W__XE\)`3'!"1<```` -XMZ+TC___I&/W__SM'&`^-%O___XE\)`3'!"1<````Z)\C___I"____XN`^``` -XM`.FT_O__B7PD!,<$)`H```#HOQW__^G(^___B7PD!,<$)#T```#HJAW__^E? -XM_O__.T<8#XU,_O__B7PD!,<$)#T```#H3"/__^E!_O__B7PD!,<$)`H```#H -XM-R/__XUV`.E]^___D)"0D)"0D)"0D)!5B>6+112+50B+`(7`=!&!HJP$``#_ -XM_]__,6+10B#B*P$```@,Q=PXN1&`(``(U"_^O+C012P>`"`T$0 -XMBT`X@^@!Z\>-M"8`````C;PG`````%6)Y5.#["2+70B-5?B+0Q")5"0$B1PD -XM_Y!@"```N@$```"%P'4+,-*!??C`$@``=P^#Q"2)T%M=PXVT)@````"+112) -XM1"0,BT40B40D"(M%#(D<)(E$)`3H$____X/$)%M=B<*)T,.)]HV\)P````!5 -XMB>53@^PDBUT(C57XBT,0B50D!(D<)/^08`@``+H!````A6#[!B+112+"(7)=2N+10C'1"00`````,=$ -XM)`P`````QT0D"`````#'1"0$0P```(D$).CFW/__R3'`PXGV58GE@^P8BT40 -XMB00DZ`,B__\QTJ@!=""+10C'1"0(F*D(",=$)`0#````B00DZ![*__^Z`0`` -XM`,F)T,.0C70F`%6)Y8/L&(M%$(D$).C#(?__,=*H`70@BT4(QT0D"-"I"`C' -XM1"0$`P```(D$).C>R?__N@$```#)B=##D(UT)@!5B>6#[!B+10C'1"0(#*H( -XM",=$)`0#````B00DZ*_)__\QP,G#C70F`(V\)P````!5B>6#["B)=?B+=12) -XM7?2+70B)??R+!H7`#X01`0``/?0!``!V,L=$)`ST`0``QT0D"&"J"`C'1"0$ -XM`P```(D<).A:R?__N`$```"+7?2+=?B+??R)[%W#B40D$,=$)`P`````QT0D -XM"`````#'1"0$&````(D<).BTV___BP:#^`$/A/D```"#Z`'1Z(F#A`````^V -XM@VP$``"#X`&)QP^%O````(N+9`0``(N#:`0``(G*.<$/A%L!``")^(3`=`R- -XM!%+!X`(#0Q"+4#B+!CG"#X8:`0``@^@!B40D$,=$)`P`````QT0D"`````#' -XM1"0$20```(D<).@SV___BP:#Z`&)1"00QT0D#`````#'1"0(`0```,=$)`1) -XM````B1PDZ`K;__\QP.D>____C78`QT0D#`$```#'1"0(-*H(",=$)`0#```` -XMB1PDZ%#(__^X`0```.GQ_O__C;8`````BY-D!```C012P>`"`T,0BT@XBT`\ -XMZ3C___^-M@`````/MH-L!```QX.$`````0```(/@`8G'=%^+DV0$``"-!%+! -XMX`(#0Q"+2#B+0#PYP70*B?B$P'50.Q9V-<=$)!`!````QT0D#`````#'1"0( -XM`````,=$)`1)````B1PDZ$W:___'1"00`0```.D6____,<#I5/[__XN+9`0` -XM`(N#:`0``(G*ZZ:-!%+!X`(#0Q"+4#CKHHL&Z;K^__^-="8`58GE@^P8BT44 -XMBP"#^!-V0#'2/?0!``!W!\F)T,.-=@#'1"0,]`$``,=$)`BXJ@@(QT0D!`,` -XM``"+10B)!"3H/53@^P$BUT( -XMB1PDZ*Z$__\QP(.+K`0``""#Q`1;76#[`B+ -XM11")1"0$BT4(B00DZ!C,__\QP,G#D)"0D%6)Y5=64X/L3(MU#(M]"(7V#X3I -XM`@``BU44BUX(@SH!#X1B`P``]D88`0^$G0```(M%'(7`=6*+312+`8/H`8M5 -XM&(/&"(E%\(/``3GSB0)U$.M-@T7P`8-'7`&+&SGS=#^+0Q")1"00BT,(B40D -XM#(M%\,=$)`0!````B3PDB40D".C*F/__A2)1"0,QT0D"`$```")5"0$B3PDZ`F1 -XM__^%P'6/A?\/A/,"``"+5Q"%THE5T`^$Y0(``/:"50@```$/A=@"``"+1>B+ -XM3=`#0Q"#P`$[07@/A[T#``"+3="+5="+272)3R!BE0(`````0`` -XMB4W4BT7HA`[`P^$\`(``(M5\(M#$(E$)!"+0PB)5"0( -XMQT0D!`$```")/"2)1"0,Z(66__^%P'3"NP$```"%_W03BT<0A#X1\ -XM`@``BT,0B40D$(M#"(E$)`R+1?#'1"0$`0```(D\)(E$)`CH8Y7__X7`=,7I -XME/S__XM%Z,=%[``````#0Q#'1<@`````QT74`````(/``0^$./W__XE$)`R- -XM1>R)1"0(QT0D!`````")/"3HNS8``(7`B47(B474#X4/_?__Z4+\__^!IE0( -XM``#__O__BU7`BT7$`T(0.T9X=V:+3G2)3R!CE0(`````0``B4W4 -XMZ:#]__\QP(-[$``/E<#I-_W__P^VA)`T!```Z9;^__^)1"0,C47LB40D"(M- -XMR(D\)(E,)`3H/38``(7`#X3/^___B47(B474Z5C]__^)1"0,C49XB40D"(M& -XM=(D\)(E$)`3H$#8``(7`#X2B^___B49TZ7#___^)1"0,B2)1"0$BT7(B00DZ,,6__^+5=B+3<@!5>0! -XMT8E-S.DS^___BTT8,=O'`0$```#'000`````Z33Z__^!H%0(``#__O__Z27Z -XM___'1"0$_P```(D\).C&>___Z>/\__^+5<2)5"0(BT7DB40D!(M-S(D,).A< -XM%O__BT7$`47,BU7PZ3/___^0D)"0D)"0D)"058GEBT4(5U93BT@0BU$(C7D( -XM.?IT"CG0=3N+$CG7=4"+41"-<1`Y\G1`BQHYWG1,BT($B4,$BT($.<9T.HD8 -XMBT$(B7H$B0(Y>0QT)HM!"(E0!(E1"%N)T%Y?7<.-="8`.=!U\3G0=/CKZS'2 -XMC70F`.OCB5$,Z]N)61#KPXM"!(E!%(L:Z["-=@"-O"<`````58GE5S'_5E.# -XM[`R+=0B+1@R#Z`&%P(E&#`^%'`$``(L6A=)T)(M>$(U#"#G"#X1&`0``BT8$ -XMB4($BTX$C4,(.<$/A$L!``")$8.FK`0``/._`0```(DT).B3P`$`B30DBN?C8;(````B00DZ.<3__^+AN`` -XM``"%P'6:ZZ"+1@2)0PR+7A"+3@2+%HU#"#G!#X6U_O__B5,(Z:_^__^-M@`` -XM``!5B>575E.#[`R+11"+=0B+?0S'``````#'1"0$L`0``,<$)`$```#H.!+_ -XM_X7`B<,/A%0"``"+11")&(M&!(/``87_B48$B4,(C4-XQT,,`0```(ES$,=# -XM+`(```")0WB)0WP/A.1H````@8NL!````(```(B#J````(N7P````#'` -XM@[^L``````^5P(72B8.L````="2+A\0```")5"0$B1PDB40D".C$+P``A<") -XM@\`````/A$8!``"+E]@```"+A\0```"%THF#Q````'0DBX?<````B50D!(D< -XM)(E$)`CHBB\``(7`B8/8````#X0,`0``BY?@````BX?<````A=*)@]P```!T -XM)(N'Y````(E4)`2)'"2)1"0(Z%`O``"%P(F#X`````^$T@```(N'Y````(F# -XMY````(N'[````(7`=$V--(4`````B30DZ&$2__^%P(F#Z````'1XBX?L```` -XMBY/H````B8/L````BX?P````B8/P````BX?H````B70D"(D4)(E$)`3H4Q+_ -XM_XE<)`2)/"3H0\___X7`=1^+AZP$``")7"0$B3PD@^`#"8.L!```Z(36``"% -XMP'1ZB1PDZ&C\__^X`0```(/$#%M>7UW#QT0D"`````#'1"0$!0```(D<).A3 -XMN___BY/H````A=(/A6+___^0C70F`,=$)`@`````QT0D!`4```")/"3H*+O_ -XM_^NFC;8`````QX.L`````````(E<)`2)/"3H"M8``(7`=8:)7"0$B3PDZ%J] -XM`0"%P`^%`/MDL!.,@/A`0!``"#[@$/A"`"```/OM`XP8E5V(M5X(G3=%*+5>") -XMT^LCC70F``^V"H/"`8@+@\,!@^X!#X35`0``#[8*#[[!.T78="B#_@%VW(#Y -XM7'77C4(!B47<#[9*`0^^P3M%V`^$2P$```^V"HM5W.N_B=Z#P@$K=>"+10R% -XMP'0%BT4,B1"+7>")]HM%$`^V51"+31")="0(@^`0@_@!&<"#XH"#X`2#P`*` -XM^@$9TH/A`??2"N!```0'59 -XMBT40QT0D$`````#'1"0,`````(/@$(/X`1G`@^`$@\`"B40D&(V'L````(E$ -XM)!2+A\0```")5"0$B3PDB40D".BT(`$`A7UW#C;0F`````(/$/#'`6UY?7<.#[@&# -XMP@+I*W7@Z5S^__^)^+("Z-3\__^X`0```.G3_O__BU7@Z4'^__^)]E6Z`@`` -XM`(GE5U93@^QLBT4@BW4(B40D"(M%'(E$)`2+11B)!"2+312)\.A1_?__A<`/ -XMA>````#V12`(#X3E````BU4,BP*)1>R+2@2#P0&)3<2+12"[9````#'_QT7` -XM`0```(/@$(E%K.M8D(UT)@"+AI0$``"-!$#!X`(#1A"+0#B%P`^4P(3`#X4N -XM`P``C47LB40D!(DT).BBA/__A<`/A<\"``"+1>R%P'1@@\`!OP$```")1>R# -XM;>P!QT7$`````(/K`8/[_P^$D0$``(7_=`Z+50R+`CM%[`^'OP(``(M5[(72 -XM=6B%_P^%L`(``/:&G`0```$/A7/___^+AI0$``"%P`^4P.EZ____]D4@$`^% -XMW@(``+L!````@\1LB=A;7E]=PXM5#(MZ!(7_#X6I`0``BQ*#^@$/A-`"``"- -XM0O^)1>SIFP$``(VV`````(U-Z(U%Y(E,)!")1"0,QT0D"`````")5"0$B30D -XMZ(Z!__^%P`^%^P$``(M%Z(V6L````(U-U,=%U`````#'1=@`````B47 -XM`0``BTW$QT6T`````(E-L(M%U(M5V(M-Z(E%R(/``8E5S(/2`#';@_H`B474 -XMB578#X[)````BT7LBTT0BU7(B0'V12`"#X7#`0``BT7H.<(/@K@!``"#^`&- -XM4/\9P/?0,=LAPHE1!.D:`0``BT80]H!4"```!`^%!0$``,=$)`P!````QT0D -XM"`````#'1"0$`````(DT).CP>/__A")1"00B50D#,=$)`@!````BT7DB40D!(M-O(D,).B2 -XM!___@_@!#X3O_O__A<`/A10!``"+1<2%P`^$MO[__X-]V``/C*S^__\/C\S^ -XM__^+3;`Y3=0/@IK^__^-M@````#IM?[__[L!````]D4@$(GV#X26_?__B30D -XMQT0D!`(```#H^OC__X/$;(G86UY?7575E.#[$R+12")1"0(BT4R)1"0,QT0D"`````")="0$BU4(B10DZ+E]__^%P`^$ -XM-0$``(M%T(7`#X7!````BTT(]H&R-??")?"00B50D#,=$)`@!````BTT,BP&)1"0$BT4(B00D -XMZ*)\__^%P'7#BU4,]D4@"(LR#X0=`0``BUH$A=L/A&K^__^#ZP'I8O[__XM5 -XM\(72=`2!P;````")3@`````B5W< -XMQT7@`````(E$)!"-1=R)1"0,QT0D"`$```"+1>R)#"2)1"0$Z.@#__^#^`%U -XM?8/&`3';Z:S^__^0C70F`(M%"(N`E`0``(7`#Y3`A,`/A(/^___V12`0#X05 -XM____BT4(N@$```#HH_7__^L-BT4(N@,```#HE/7__[L!````QT0D!`(```"+ -XM10B)!"3H3/7__X/$3(G86UY?7<.[`0```/9%(!!UV.G,_O__A<`/A+L```#V -XM12`0C;8`````#X3^````BU7(B40D!(E4)`B+30B)#"3HI!BT4,BU@$ -XM@\,!.UWP#X)&_?__@\8!,=N-5>R)?"00B50D#,=$)`@`````B70D!(M-"(D, -XM).@Y>___A<`/A!?]__^+10CV@)P$```!#X2N````B<*+@)0$``"-!$#!X`(# -XM0A"+2#B%R0^4P(3`#X3?_/__]D4@$`^$&_[__XM%"+H!````NP$```#HI/3_ -XM_^D)_O__BT70AP/A)\!``"+ -XM1>R+50PY4`AUY?9`)`%UWXMP&+L&````BW@4A?9^>##;ZS.-="8`BU4(#[;` -XMC01`C80`4`$```-"$(/`"(M5"(E$)`2)%"3H6]X```'#@^X!=!^#QP$/M@<\ -XM_W7*BT4(QT0D!/\```")!"3HIVG__^O+B=BZJZJJ*O?JB=C!^!\IPHT44@'2 -XM*=J-6@:%VWX@C;0F`````(M5",=$)`32U`@(B10DZ/W=```IPX7;?^>+1>R+ -XMR+$H72 -XMB57L#X5A_O__BT7P@\0<6UY?7<.+50@/ML"-!$"-A`!0`0```T(0@\`(BU4( -XMB40D!(D4).C9W```@^L!=*2#Q@$/M@8\_W7,BT4(QT0D!/\```")!"3H)VC_ -XM_^O-D(UT)@!5B>564X/L$(MU"(N>1`$``(7;=%"+0PR%P'0(B00DZ"`#__^+ -XM0Q2%P'0(B00DZ!$#__^+0QR%P'0(B00DZ`(#__^+$X72=`:+0P2)0@2+0P2) -XM$(D<).CI`O__BYY$`0``A=MUL(/$$%M>7<.-="8`58GE4X/L!(M="(L3A=)T -XM!HM#!(E"!(M#!(D0BT,,A(```"+ -XM31"+4Q0/MD$,.`(/A]````!R"(M]'#E["'1?BP.)7?"%P`^$T````(G#BT40 -XMA?````+31PY2PAUS_9#)`%UR8M+&(M%&#G( -XM=@*)R(M]%#G`B<'\\Z8/DL`/E\(HP@^^PNLHD(UT)@#V0R0!=9N+2QB+11@Y -XMR'=JB40D"(M%$(D4)(E$)`3HW?O__X/X`'\_#XQS____BU48.U,8D%_O__D(UT -XM)@#)N`$```##B?:-O"<`````58GE@^PXBT4DB77XBU44BW48B5WTB40D%(U% -XM\(E$)`2+10B)??R+?2#'1"08`````(ET)!")5"0,QT0D"`````")!"3H!_[_ -XM_X7`B<-T9?9%*`)U6XM%'(7`=$J%_XGV=$2+51R+10B)?"0(B50D!(D$).AH -XM'```A<")Q@^$I0$``(M#'(7`=`B)!"3H,P#__XE[(#'`B7,Q=PS'_,?;KUHUT)@`QP.OEQT0D!"@```#'!"0!````Z-S]_O^%P(G##X0Z -XM`0``BT4,A____QT,,`````(M5$(E3$(M%%(M5"(ET)`B)1"0$ -XMB10DZ((;``"%P(E#%`^$!`$``(ES&(M%'(7`#X2*````BT4____Z$+[_O^+,(M##(7`#X2(_O__B00DZ#W^_O_I>_[__XUT)@#H -XM'_O^_XLPBT,4B00DZ"+^_O_KT(VV`````(V_`````%6)Y5=64X/L'(M5"(MU -XM#(M"$(N`1`$``(7`B47D=17I3@(``(M%Y(L`A<")1>0/A#X"``"+1>2+510Y -XM4`AUY?9`)`ATWXM%$(7`=`^+11")="0$B00DZ)GW_O^+5>2+1>2+4A2)5>"+ -XM0!B%P(E%Z'5DZ<8```"#^WQT<#L=_"`)"'T,H0@A"0CV1)@V`G5%R+!HGZB!"#P`&)!H-MZ`%T9XM5X`^V.H/"`8E5X(GX#[;8@_L6=8NAH!0) -XM"(7`#X6(`0``BT8(@^@!A<")1@@/B#<"``"+!L8`%H/``8D&BT8(@^@!A<") -XM1@AYI#M&&'P%@/L*=9J)="0$B1PDZ.[[_O^#;>@!=9FAH!0)"(7`#X5(`@`` -XMBT8(@^@!A<")1@@/B$P"``"+!L8`((/``8D&BT7DBT`P/A,0```"+ -XM5>2+4B"%THE5\'50Z;(```"#^WQT7(#"`9`/A'L!``"+50B+0A"`O`-3!P`` -XM#'1"BPV@%`D(A+1>P/MCB#P`&)1>R)^@^VVH/[%G6?H:`4"0B%P`^%ZP```(M&"(/H`87` -XMB48(#XA8`0``BP;&`!:#P`&)!HM&"(/H`87`B48(>:0[1AA\!8#["G6:B70D -XM!(D<).CQ^O[_@VWP`769BQ6@%`D(A=(/A34!``"+1@B#Z`&%P(E&"`^(;`$` -XM`(L&Q@`*@\`!B0:+1>2+`(7`B47D#X7"_?__@\0<,% -XM://__P````#'A7#S__\`````QX5X\___`````(F%@//__\>%?//________' -XMA8SS__\`````QX60\___`````(F58//__XN%9//__XD$).C3^/[_A<`/A!0! -XM``"-6`B_<:P("/RY"````(G>\Z9UUHE<)!"+A8CS__^-E93S__^)%"3'1"0( -XMN90(",=$)`0`!```B40D#.@[]O[_C864\___QT0D"`````#'1"0$`@```(D$ -XM).@]]_[_@_C_B85L\___=(''1"00`0```(E$)`S'1"0(`````,=$)`0````` -XMBU4(B10DZ!//__P%^&\=$)`CXK0@(QT0D!`0```"+10B)!"3H>:#__XN5>//__SF5 -XM%=//__P$```#I;?[__XN5C//__XD4).BA -XM]O[_BX60\___B00DZ)/V_O^+E7SS__^)%"3H!?3^_X'$K`P``+H!````6XG0 -XM7E]=PXV5E/O__\=$)`0*````B10DZ+WQ_O^%P(F%A//__P^$0/[__XN-;//_ -XM_XV%E/?__[H`!```B85<\___Z/_[__^%P`^$'/[__XNU7//__[\TK`@(N1,` -XM``#\\Z8/A0/^__^-E93W___'1"0$"@```(D4).A<\?[_A<`/A.7]___&``"+ -XMA83S__^-=93&``"#A7#S__\!Z,GR_O_'``````"-A:?W__^)="0$B00DZ!'R -XM_O^%P'0/Z*CR_O^#.`*0#X1(`0``BY6`\___C86G^___B00DB50D!.CF\O[_ -XMA<`/A:3]__^#A7CS__\!B70D!(N%;//__XD$).BE]O[_BX6,\___A[_[_Z6_\ -XM___'1"0(`````,=$)`0%````BU4(B10DZ"J=___I3_S__\=$)`@`````QT0D -XM!`4```"+50B)%"3H"IW__XD<).@6]/[_Z2?\__^-M@````"-O"<`````58GE -XM5U93@>R,"```QT0D"`````#'1"0$*P```(M%"(D$).C)I?__N@$```"%P`^% -XM<@(``(M5"/:"!`,```$/A6\"``"+?0B+M_P"``")-"3HC^S^_X7`#X5X`@`` -XMQP0D0?$(".@+\/[_A<")A8CW__\/A%X"``"-A93[__^-E93W___'A8SW__\` -XM````B86$]___B96`]___C;0F`````(N5B/?__XD4).@V\_[_A<`/A,H!``"- -XM6`B_<:P("/RY"````(G>\Z9UUL=$)`13K`@(B1PDZ"KQ_O^%P(F%?/?__W2\ -XMBQ6@%`D(A=(/A5D"```/OT`.QT0D$`$```")1"0,QT0D"`````#'1"0$```` -XM`(M5"(D4).BC,___@_@"#X02`@``BX5\]___C964^___QT0D!``$``")%"2) -XM1"0(Z*[M_O^%P`^$N`$``(NUA/?__[@@K`@(N1,```#\B0$``(N5?/?__XV]E/?_ -XM_\=$)`0`!```B3PDB50D".A'[?[_A<`/A%$!``"+M8#W__^X-*P("+D3```` -XM_(G'\Z8/A38!``"-A93W___'1"0$"@```(D$).A^[?[_A<`/A!@!``#&``"+ -XMO9#W__^-=93&!P#H\N[^_\<``````(V%I_?__XET)`2)!"3H.N[^_X7`#X4\ -XM`0``H:`4"0B%P`^%1P$``(N5?/?__P^_0@Z)="0$B00DZ._R_O^-1;2)!"3H -XM!.W^_XV5I_O__XE4)`C'!"16K`@(B40D!.CZ[O[_QX6,]___`0```.FL```` -XMC;0F`````(N%C/?__X7`=0S'!"1AK`@(Z)[I_O^+O8CW__^)/"3H0/+^_S'2 -XM@<2,"```B=!;7E]=PXN"_`(``(T$0,'@`@-"$(MP.(DT).@7ZO[_A<`/A(C] -XM__^)="0(QT0D#$BL"`C'1"0$!0```(M]"(D\).@,G___@<2,"```N@$```!; -XMB=!>7UW#QT0D#&BN"`B)7"0(QT0D!`,```"+50B)%"3HVY[__XN%?/?__XD$ -XM).C!\/[_Z6C]__^+O7SW__^)/"3HKO#^_^E5_?__BX5\]___B00DZ*OO_O_I -XMF/W__^B1[?[_@S@"#X6V_O__B1PDZ-#K_O_KKXN]?/?__XD\).B`[_[_Z;#^ -XM__^-M"8`````58GE@>RH"```B77\B<:-19B)7?B)TXE$)`3'!"1ZK`@(Z)[L -XM_O^%P'0JB30DQT0D#(VL"`C'1"0(>JP(",=$)`0%````Z":>__^+7?B+=?R) -XM[%W#B5PD$(V=A/?__XD<),=$)`QZK`@(QT0D"*>L"`C'1"0$%`@``.B&[?[_ -XMB1PDZ%[K_O^+7?B+=?R)[%W#58GE@^PHB10DB5WTB=.)=?B)??R)SXE%\.AF -XM[O[_@_C_B<9T'P^W10B)'"2)1"0$Z&_O_O^)\(M=](MU^(M]_(GL7<.+1?#' -XM1"0,GZT("(E\)`C'1"0$!0```(D$).A]G?__Z]"-="8`C;PG`````%6)Y5>) -XMQU93BK^_[@!````@<1\%0``6UY? -XM7<.+A_P"``"-!$#!X`(#1Q"+<#CI-?[__XVV`````('$?!4``+@!````6UY? -XM7<.+E=3J__^+A7UW#BX7,ZO__BY70ZO__BQB-1?"+,HD$).B5Y_[_ -XMBY78ZO__QT0D1`:M"`B)7"1`QT0D/`NM"`B)5"1(C97P_O__B5PD.,=$)#08 -XMKP@(QT0D,$"O"`C'1"0L=*\("(E4)"C'1"0D$*T("(N5V.K__XE$)!"-A?#J -XM___'1"0<(:T("(ET)!B)5"0@QT0D%#RM"`C'1"0,2*T(",=$)`B8KP@(QT0D -XM!``0``")!"3H0>G^_SW_#P``B87@ZO__#X<+_O__A<"-M?#J__]U0>FN```` -XMQ@(*@\(!B=,I\XF5W.K__XE<)`B)="0$BY74ZO__B10DZ/OC_O\YPP^%G_[_ -XM_RF=X.K__XNUW.K__W1RBX7@ZO__@_@\C50P_W:UQT0D!`H```")-"3HEN;^ -XM_XG"*?"#^#Q^G#GR=IB)T.L(D(/J`3GR=A:`.B!U](G0*?"#^#P/CGK___^) -XMT.OCB<+I;____\=$)`@`````QT0D!`4```")/"3HU)/__^E%_O__BYW$ZO__ -XMA=MU!S'`Z7;]__^-E?#Z__^)^.A1^O__BX74ZO__B00DZ#?H_O^%P`^%Z_W_ -XM_S'`Z4S]__^-="8`58GE@>PH)```B7W\BWT(B5WTB77XBU\Q= -XMPY`Q]NOLBT,$QT0D!`L```")!"3_4!B%P`^%Y0$``/9%#`1T!(!+6"#V10P! -XM=*N+4U")^.BI^?__ZY^-M"8`````QT0D"`````#'1"0$*P```(D\).CHF___ -XMA<`/A9`!``#VAP0#```!#X7"`0``B[?\`@``C87T^___B70D#,=$)`AYK0@( -XMQT0D!``$``")!"3H3^?^_XGQB?B-E?3[___'!"2``0``Z,7Y__^)A>C;__^# -XMP`$/A#8!``"+1Q#'1"0(`0```,=$)`3DKP@(B3PD_Y!H"```BUM,QT0D"``` -XM``#'1"0$`````(F=[-O__XD<).@-Z/[_B87PV___@\`!=%>-A?3;__^)1"0$ -XMBX7PV___QT0D"``@``")!"3H(NK^_X/X`(G##XX9`0``,?;K!BG#=,T!QHV% -XM]-O__P'PB40D!(N%Z-O__XE<)`B)!"3HC^'^_X7`>=B+A>S;___'1"0,GZT( -XM",=$)`0%````B3PDB40D".C5EO__C87T^___O@$```")!"3H!N3^_XN%Z-O_ -XM_XD$).@XYO[_BT<0QT0D"`(```#'1"0$`````(D\)/^0:`@``.DC_O__C78` -XMQT0D"`$```#'1"0$`````(D\).@X//__A<`/A!#^__^^`0```.D&_O__C;8` -XM````]D4,`KX!````#X3Q_?__D.N^@&-8G[X!````QT0D#%ZM"`B+0TS'1"0$ -XM!0```(D\)(E$)`CH)I;__^G!_?__BX?\`@``C01`P>`"`T<0BW`XZ2W^__\/ -XMA0W___^+A>C;__^)!"3H>N7^_X7`#X49____C8WT^___N@$```")^#'VZ&KX -XM__^%P`^$'O___^GX_O__C;8`````C;PG`````%4QR8GE@^PHB77\BW4(B5WX -XMBUX<#[936(G0@^#]J$"(0UAT)HM#4(/BO8A36(7`="7'1"0$@`$``(M#3(D$ -XM).A`Y_[_,Q\!``` -XMBW4(QT0D"`````#'1"0$*P```(DT).A)F/__A'^__^058GE4X/L%(M=".BUX?[_QP``````BT44B40D"(M% -XM$(E$)`2+10R)!"3HAN'^_XD#Z(_A_O^Z`0```(L`A'^_\<``````(M%%(E$)`B+11")1"0$BT4,B00DZ/;?_O^)`^@?X?[_ -XMN@$```"+"(7)=0B#Q!2)T%M=P^@'X?[_@S@B=`Z#Q!0QTEN)T%W#C70F`(,[ -XM_[H"````=>B#Q!2)T%M=PXVT)@````"-O"<`````58GE@^P8B77\BW40B5WX -XMC48!B00DZ"KC_O^%P'0EB<.+10R)="0(B1PDB40D!.A!X_[_Q@0S`(G8BW7\ -XMBUWXB>Q=PXM%"#';QT0D"`````#'1"0$!0```(D$).APC/__Z]6-M"8````` -XMC;PG`````%6)Y5.#[!2+70C'1"0$+P```(D<).@ZW_[_A7UW# -XMBT7LAQT*0^V`SP@=.8\"73BB0^#Q"PQP%M>7UW# -XMC;8`````@\0L,6#[!B+ -XM112)7?2+70R)??R+?1")=?B%P'54/0`!``"+%W)8A=N--`)T78D<)(ET)`3H -XMS-S^_XG#A=MT5XL'B?+'1"0$`````"G"`=B)5"0(B00DZ*K>_O^)-XG8BW7X -XMBUWTBWW\B>Q=PY"-="8`BQ53@^PDBT44BUT(@_@"=&Z#^`-T287`=27'1"0(`````,=$)`0% -XM````B1PDZ&V*__^#Q"1;7<.-M"8`````BTL)___I-?___^A1V_[_C47XB40D -XM!(D<).A^5___A<`/A1G___^+1?B%P`^$>?___XE$)`S'1"0(`+((",=$)`0# -XM````B1PDZ%^)___I[?[__XM5##'`A=)T!8M5#(L"QT0D"`0```")1"0$B1PD -XMZ%A4`0#IQO[__XUV`%6)Y5=64X/L#(L]P,P("(E%\(E5[(7_=$( -XM1>NXP,P("#A5ZWT6ZS*)]HM[&(7_="D/MA>-0Q@X5>M\'CA5ZXG#=>>+3>R+ -XM=?#\.Q`/MC>-1MP\.`^&)@$``(M# -XM%(7`#X01`0``BTL0#[8QB?`/OM"%TGA#.17\(`D(?R_K.8M#%(U1`8E3$(/H -XM`87`B4,4#X3A````#[8RB=&)\`^^T(72>!0[%?P@"0A]#*$((0D(]D20-@)U -XMQX/Z?P^'R@```/8$E=T4"0@$#X2\````BTT(BS&%]G47QP$!````BU7=='I)/___X-K%`&ZT)D%"(E+$(`Y+W0%NC"5!0B+3=R+ -XM04R+3=B)`8M-W(M!4(M-V(E!!(N#@````"4````!@_@!&<`PP`5P`0``B40D -XM&(U%[(E$)!2+0Q2)1"00BT,0B4PD"(E,)`2)1"0,BT7Q0!#X:R````BU,0#[Y"`8/X?P^'H@```/8$A=T4 -XM"0@$#X24````Q@(KZ7?]__^+50C'`@$```"!BX````````0`@WL4`0^$,@,` -XM`,=$)`P#````BU78B50D"(M#$`^^0`&)1"0$BTWS'`@$` -XM``"!BX````````0`QT0D#`H```")1"0(BT,0B40D!(U%\(D$).CN]O__@_@! -XM#X6L````BT7PBU78B0+'0@0`````BU7LB=`K0Q`I0Q2)4Q#I?_S__[K0F04( -XMZ=O]__^#^G\/AZ0```#V!)7=%`D(!`^$E@```(#Y+0^$'0$``#'_@/E>#X02 -XM`0``C47LC57PQT0D#`H```")1"0(B70D!(D4).AP]O__@_@!=3*#?>``#XR@ -XM````D`^.L````(M5\(72D(UT)@!^$+C___]_*T7@.=`/@Y0```"X`@```(E$ -XM)`S'1"0(`P```,=$)`0`````BTW`%%X(-#$`&-1_^)0Q3I(OS__XM5\(72>1"X````@"M%X#G" -XM#XT!`0``A?]T1HM%\/?8BU7L`47@B=`K0Q`I0Q2)4Q#I[/O___8$E=T4"0@$ -XM=(WIVO[__X-K%`&_`0```(U&`8G&B4,0Z=C^__^-M@````"+1?#KNK@!```` -XMZX&+3=B+1>"+$??8.=`/A@_\___'1"0(C+((",=$)`0#````BT7" -XM__^+50S'`@$```#I\?O__X/$/+@!````6UY?7<.+>Q`/MC?'!"0*L0@(B?(/ -XMOL*)1"0$Z"75_O^%P`^$FOK__\=$)`P!````QT0D"`$```#'1"0$`````(M- -XMW(D,).CF]___BT4,QP`!````,<#ID/O__X-#$`*#:Q0"Z67Z__^X`P```.EF -XM_O__QT0D#`(```#'1"0(`P```,=$)`0`````BT7575KX"````4X/L+(M=#(M%$(M]",<``````,=#8``` -XM``"+0Q2%P'1_BTL0#[81C4+W/#(/AJ0```"+11"-3>B)VHE$)`2-1?")!"2) -XM^.@K^?__A<`/A4<"``"+11"+`(7`=6J+1?"%P'0]A?8/A#D"``"+0V"#^`$/ -XMA)H!``"#^`(/A'(!```Q]H7`=92+1>B+5>S'0V`!````B4-DBT,4B5-HAG<_O__]H.#````!`^%>____XM7'(72#X01 -XM`0``A?8/A$8!``"-0VR)1"0$B3PDZ$E.__^%P`^%)0$``#'`@WML`,=#<``` -XM``#'0V@`````#Y7`,?:#0Q`!@VL4`8E#9,=#8`(```#I=?[__Y"+0V"#^`%T -XM?8/X`@^$D@```(7`#X5M____C;0F`````.BOT?[_BU-LBT-PB5-DB4-HBT=, -XMB4-LBT=0QT-@`@```(E#<`^V$>DU____BU-L,?:+0W")4V2)0VB+1>B+5>R) -XM0VR)4W#I"?[__XM%Z#'VBU7LQT-@`@```(E#;(E3<.GO_?__BT-DO@$```") -XM1TR+0VB)1U"#0Q`!@VL4`>G1_?__BT-LO@$```")1TR+0W")1U"#0Q`!@VL4 -XM`>FS_?__QT0D#`$```#'1"0(`0```(D\),=$)`0`````Z)_T__^+11#'``$` -XM``"#Q"PQP%M>7UW#N`$```#I)/[__\=$)`P!````QT0D"`````#KP8M#8(/X -XM`71<@_@"=$N%P)`/A>G]__^+1TR)0V2+1U#'0V`!````B4-H,<#IXOW__\=$ -XM)`BXL@@(QT0D!`,```")/"3HR'[__XM%$,<``0```#'`Z;K]__^+4VR+0W") -XM4V2)0VB+1TR)0VR+1U#'0V`"````B4-PZ8C]__^-="8`58GE5U93@>R,```` -XMBT4(BU4(BTT(BT`0@\%,B464BY*8````B560BUA\B4V$BT,(A%"+1:`[!?P@"0A]1:$((0D(BU6@]D20 -XM-@)T-KX!````BTL4@T,0`8/I`87)B4L4=#&+0Q`/M@`/OM`\"HE5H'6YBTV4 -XM@X$(`0```8-##`'KSX7)=`J#?:`Z#X0[`0``BTL4A0`````Z?$%``"0BTL4@^D!A2)3"0(B5PD!(DT).C)^?__A<`/A5H%``"+5>2%T@^%D0X` -XM`(M#%(7`=$*+>Q`/MA!0[!?P@"0A]#*$((0D(]D2P-@)U -XM"8#Z.@^%Y@,``(U'`8E#$(M#%(/H`87`B4,4=;['0R!0T`@(BW60BT8H"8.` -XM````BT-@A`P`` -XMQT6L`0```.G2`P``H0@A"0B+?:#V1+@V`@^$UOW__XM+%(U"`8E#$(/I`87) -XMB4L4#X0__/__B<(/O@"%P(E%H`^(K_W__SL%_"`)"'R^Z:+]__^)]HM#%(/H -XM`87`B4,4#X2Z`0``BU,0C4(!B4,0@'H!"G7@@8N```````"``(-#$`&#:Q0! -XMBTV4BUE\Z=#Z__^+182+50B)1"0$B10DZ!%'__^%P`^%X@(``(M-",=!4``` -XM``"+@X`````E__^__XF#@````.G#^O__BU9(BT9,B580C0P"B10DB40D"(E, -XM)`3H@<_^_XM&3(E&%(M'"(M5"(E"3(E&1(/``8E'"`^V1E"H#`^$>_S__XM% -XM"(&(K`0``````@"+592+6GR+2Q2%R0^%./K__^EI_/__C;8`````BW,4A?:) -XM\0^$>P(``(M]C`^V%X#Z(0^$EA0```^^\H7V>!0Y-?P@"0A^#*$((0D(]D2P -XM-@)U38#Z*P^$G!0``(MS%,=%G`````#'19@`````QT6P`````.E<_O__#[X7 -XMA=(/B.$1```[%?P@"0@/C=41``"A""$)"/9$D#8"#X3%$0``BWL0C4'_B4,4 -XMB<&#QP&%P(E[$'7$,?:+>Q")\,=%K`````#'19@`````QT6<`````,=%L``` -XM``#IZ`$``(M3(.DE_?__@:.`````___^_^GR_/__BTT(B[F0`@``A?\/E<#I -XMQ_S__XM#$(`X"@^$2?[__XMUE(M>?.DK^?__BT4(]H"L!````@^%-OK__XN3 -XM@````/;&"`^$I?O__^DB^O__@/I\#X0D_/__@/H*#X0;_/__BT6@QP0D5;$( -XM"(E$)`3HN-2KN`^1\/ -XMABP4```Q]HM5J(GXZ.'M__^%P(E#(`^$0QP``(M3(('Z.-,("(G1#X2.&P`` -XMA?8/A#$6```/MT$(]L0!#X4K%@``@?E0T`@(#X06%@``@?F8T`@(#X0*%@`` -XM#[8/#[[1A=)X%#L5_"`)"'T,H0@A"0B+E)`T"```B!?I_1L``(UV`(M#2(D$ -XM).BIS?[_BQ.%TG0&BT,$B4($BT,$B1")'"3HD,W^_XM>?#E=P`^%7@H``,=# -XM%`````"+50C'1"0$`@```(D4).CV-/__A7UW#BWV,,<#'19P`````QT6L`````,=%F`````#'1;`````` -XMA<`/A'0@``")^.L\B?*`^A9T9(-]H`H/A,4```"#?:!\#X2[````#[9-H(@/ -XMBT,0@VL4`8M3%(/``8E#$(72#X2\````@\Q0!=I:+0Q`/OD`!@_@* -XMB47D=6J+=92#A@@!```!@T,,`8-%G`&#:Q0!@T,0`8M%Y(E%H.EV____BU4( -XMBT(0@+A2!P``_P^%3____XM-H(D4)(E,)`3HY#7__X/X$G2?@WV@"@^%.___ -XM_XGR@/H*#X1#$```@VL4`8MS%.L-@_A\#X4H____ZYDQ]HM#$(M3&(ES'(/` -XM`8E#&"G0B5,0*T6<@^@!@7L@H-$("(E#%`^$L0X``(N#@````(G"@^(/@_H" -XM#X0<#@``#X?`````@^H!#X7-````BU-@A=*)]@^%=!````T```@`J"#'0V`! -XM````B8.`````#X5V&P``BU4(BT),B4-DBTT(@7L@P,P("(M!4(E#:`^%GP`` -XM`,=#8`(```"+50B+0DR#P`&)0V2+30CV@4`#```!BU%,#X4V$```BW4(BX8X -XM`P```=")0VR+?0B+1U")0W")0VB-1?")1"0$B3PDZ/)!__^%P`^%!0<``(M% -XM\(7`=$$[1TQV/#M#;',WB4-LZS*-="8`@_H$#X3F`@``@_H(C70F``^$7@,` -XM`(MS8(7V#X6E!@``@7L@P,P("`^$8?___XM#(,=#7`````"+>`P/MC>)\(3` -XM#X26&@``BTL4B?*`^B$/A'$$``"%R71GBT,0#[X0A=(/B,4#```Y%?P@"0@/ -XMCKD#``"A""$)"/9$D#8"=2SIJ`,```^^$H72#XB:`P``.Q7\(`D(#XV.`P`` -XMH0@A"0CV1)`V`@^$?@,``(M3$(U!_XE#%(G!@\(!A<")4Q!UQ,=$)`2WL0@( -XMB3PDZ)/)_O^%P`^%[04``(M#8(/X`0^$P`0``(/X`@^$,@L``(M-"(N#@``` -XM`(N1K`0``/;"`@^%?P,``/;$0`^%=@,``*D```0`#X59#0``@^(!C78`=`>+ -XM10B#0"P!BU4(BTH((``"+ -XM30CV@:X$```"#X72"```]H$8`0```0^%P1<``(MU"(N&$`$``(7`#Y7`A,`/ -XMA*\(``#V@X````!`#X2B"```N@`0``#IG`@``,=#8`$```"+1TR#P`&)0V2+ -XM1U")0VCIWO7__XM38(72#X6%````#0``"`")@X````#'0V`"````BW4(BT8< -XMA<`/A+$3``"+?0B-0VR)1"0$B3PDZ*0^__^%P`^%MP,``/:#@````"`/A)$1 -XM``"+0VR%P`^%AA$``(.+@````!#'0V0`````@XN`````!,=#<`````#'0V@` -XM````Z:W\__^+4V"%T@^$HOS__X/J`0^%F?S__XM39(M#:,=#8`(```")4VR) -XM0W#I@?S__XMS%(M]C(7VB?`/A'$2``")^<=%G`````#K+(#Z"@^$UO?__P^V -XM1:"(`8M[$(-K%`&+Q"%]HGP#X0`^O__@\$!#[87#[["@/IL!```Z3'[__\/ML#_)(5(M@@(9H-+?""#:Q0!@T,0 -XM`8MS%(7VB?$/A.?^__^+0Q`/M@`\+@^$XPT```^/*P@``#PK#X3?#0``/"V) -XM]G3$B?'IOO[__SPCD(UT)@!U\(&C@````/___O]F@4M\``*+39"!22@``@`` -XM@VL4`8-#$`&+O$B4PD#(M-"(M#$(E<)`2)#"2)1"0(Z"XN``"%P'55 -XM#[9'`8U7`3Q.#X0T^O__#[[`@^@PB47D@'H!;P^$4`L``(MUD(M6)#G0#X03 -XM^O__BT,@BW4(BT`0QT0D"+JQ"`C'1"0$`P```(DT)(E$)`SH]6S__XM['(7_ -XM#X6C````BW,4A?9U+XUV`.F"````@/H6=%>#_@J-=@`/A!H/``"#_GP/A!$/ -XM``"+0Q2#Z`&%P(E#%'14BT,0#[80@\`!]H."`````HE#$`^^\G7!B?`\_P^$ -XM7`8``(M]"`^VP(M7$("\`E,'```2=:F+0Q2#^`%VH8/H`8E#%(M#%(-#$`&# -XMZ`&%P(E#%'6LBTL?(V&@````(E%P#G##X2B]?__]D-0 -XM#P^$<_7__XM3/(U[/#GZ=2?I6?7__XM"!(E!!(M"!#G'="J)"(D4).CVPO[_ -XMBU,\.=2%T@^%;O[__XM%Z(7`#X3& -XM%0``BT74A<`/A<R)!"3H!]W__X/X`0^%VQ0``(M-[(7)#X02$0``BT7@*T,0*4,4BT7@ -XMB4,0@#]A#X35$0``BT7LB4-89H-+?`2+2Q3I?_O__XM#$`^V,(GR@/HK#X0K -XM"0``@/HM#X0B"0``@/I>#X09"0``@/HCB?8/A`X)``")\0^^P8/X?W<.]@2% -XMW10)"`0/A>+Z__^#:Q0!B?"#0Q`!9H-+?`&+2Q2(0U'I'_O__XM[$(E]R(E] -XMX(M#%(7`#X3R````@\(7V>!@[-?P@"0A]$*$((0D(]D2P -XM-@(/A;L```"+5<2)^(A"_X-K%`�Q`!@T7$`8M#%(7`#X2J````BT7$B47( -XM@^@!B47,BT,0]H."`````@^V.(GZ#[[R=:")\#S_#X2'"```BTT(#[;`BU$0 -XM@+P"4P<``!)UB(M#%(/X`7:`BU,0@^@!B4,4C4(!B4,0#[9"`8M-Q(A!_^N) -XM,<"!>R#8S`@(B4PD#(M-"`^4P(E$)!"+0Q")7"0$B0PDB40D".AB,P``A<`/ -XMA#/V___I0/S__Y"-="8`@T,0`8-K%`&+=`I1Q")?8P/O@>% -XMP(E%H`^(W`D``#D%_"`)"`^.T`D``*$((0D(BU6@]D20-@)U,NF\"0``#[X" -XMA<")1:`/B*L)```[!?P@"0@/C9\)``"A""$)"(MUH/9$L#8"#X2,"0``BU,0 -XMC4'_B4,4B<&#P@&%P(E3$'6^Z5K[__^%TG0KBWT(BT=,QT78`````(E4)!") -XM7"0$B474C474B40D#(E$)`B)/"3H)9\``(M%F(7`=%GV@X(````"#X1.`P`` -XMBT68BU6P@'P0_Q8/E,"$P'01BU,8C4+_B4,8QD+_%H-#'`&+39@I2Q@!2QR+ -XM0QB+=;")3"0(B00DB70D!.B3OO[_@8N```````!``(M#&(E#$(M#'(E#%(M] -XM"(N7K`0``/;&'G5BBT64BUA\Z5WI__^+0VR%P`^%/?G__XN#@````*@0#X5L -XM^?__BWT(]H>L!````74+J0````(/A57Y___'1"0,`0```,=$)`@$````BT,@ -XMB40D!(M%"(D$).C.W/__Z73Z__^+30B+01"+6'R%VW15,?\Q]H![4`AV!>@! -XMN?[_#[9#4/\DA62W"`B%_W4@BWT(QT0D"*RS"`C'1"0$`P```(D\)+\!```` -XMZ!YG__^+&X7;=<`)]P^%R?K__XM-"(N1K`0``(#F%@^$9>___^G,ZO__A?9U -XMUXM%"&:^`0#'1"0(Y+,(",=$)`0#````B00DZ-9F__^+&X7;#X5T____Z[*+ -XM30B+D:P$``#VP@%U"ZD````"#X7.\___QT0D#`$```"+=0C'1"0(!````(M# -XM((DT)(E$)`3H[]O__^F5^?__BU-@A=(/A1[V__\-```(`,=#8`(```")@X`` -XM``"+30B+44R#^@$/A,X$``")4VR)4V2+?0B+1U")0W")0VCIB/+__P^V%X#Z -XM*P^%Z^W__^F"`@``BU4(BT(0@+A2!P``_P^%3?G__XET)`2)%"3HYR;__X/X -XM$@^%./G__^F*^?__A<"-M"8`````=1?I/_'__X/H`8VV``````^$,/'__X/" -XM`8`Z7(UT)@!UY<8"%NO@BWT(B40D!(D\).@:,___A<`/A"4/``"+EZP$``"+ -XM@X````#ISO+__SP]#X2_!0``/%X/A=/W__]F@TM\`NF2]___/&R0C70F``^$ -XMOP4``#QP#X6T]___9H%+?``0BT60@4@H`!```.G)]___BWT(BT=,B474BT=0 -XMB478C474@:.`````___[_\=$)`P!````B40D",=$)`0G````B3PDZ+55__^% -XMP`^%./C__XN7K`0``.E<\O__B10DZ)IB___I'//__XM-"(E$)`2)#"3H5C+_ -XM_X7`#X2U!P``BT9$BWT(B4=,Z63H__^)%"3HZ$;__^E#\O__BTV8BW6P#[9$ -XM,?\\_P^$"P,``(M]"`^VP(M7$("\`E,'```2#Y3`Z93\__^!BX```````(`` -XMZ:[O__^+4VR+=0B%THG0BTY,=06X`0```#G!#X1<]?__A=)U`K(!BWT(B?B) -XM5TR#P%#'1U``````B40D"(E4)`2)/"3H--C__^DO]?__BU-DBT4(A=*+2$R) -XMT'4%N`$````YP0^$$_7__X72=0*R`8M-"(G(B5%,@\!0QT%0`````(E$)`B) -XM5"0$B0PDZ.O7___IYO3__X/Z`@^%3O#__XM3;(M#<,=#8`$```")4V2)0VCI -XM-O#__XN!.`,``(T$0,'@`@-!$(M`..F\[___@VL4`8MS%(U'`6:!2WP``8E# -XM$(7VB?&)0Q@/A,GK__\/MA")Q^E`Z___BT,4@\!Z+1:`[!?P@"0A]$Z$((0D(BU6@ -XM]D20-@(/A5`#```/MDV@B`Z+0Q"#:Q0!BU,4@\`!B4,0A=(/A#(#``"#Q@$/ -XMM@`/OM")5:#V@X(````"=:0/MD6@//\/A#H"``"+30@/ML"+41"`O`)3!P`` -XM$G6)BT,4@_@!=HP!@^@!BU,0B4,4C4(!B4,0#[Y2`8E5H.N*N`$```#3 -XMX*D#B@(`#X5%!0``A<`/B;KK__^+%7#."`B)^8E5X`^V!SH"=1"#P0&#P@&) -XM5>`/M@$Z`G3P/&QT&SQP=!<\*W03/"UT#SQ>C78`=`@\(P^%>>O__XM#$#'V -XMB4L0*<@!0Q2A<,X("(E#)*%TS@@(B4,HH7C."`B)0RRA?,X("(E#,*&`S@@( -XMQT,P>;$("(E#-*&$S@@(B4,XC4,DB4,@Z4'K__^+0Q"`.`0/A(SF__^`YG^) -XMDX````#I?N;__ZD````"=0V!>R#`S`@(#X6G[___BWT(BU64QT0D!`$```") -XM/"3_DGP(``#IB^___X`_*P^%E/+__SPKB?8/A/+V__\\+0^%@O+__V:#2WP( -XMZ?#V__^+?9"+5R2%T@^$P^[__^FC]/__BU4(BT(0@+A2!P``_P^%I/G__\=$ -XM)`3_____B10DZ'(B__^#^!(/A8OY___I=?G__XUT)@"H(`^$*OO__XU%\(E$ -XM)`2)#"3H:2___X7`#X5\]/__BWWPA?\/A9L*``"#BX`````0QT-L`````,=# -XM9`````#I]/K__\=$)`0Q````B3PDZ+"S_O^%P`^%U/'__^G5]O__BT,4A<`/ -XMA`7N__^-="8`Z0'T__^+50B+0A"`N%('``#_#X4!]___B70D!(D4).C,(?__ -XM@_@2#X7L]O__Z5_W__^+50B+0A"`N%('``#_#X5/_?__BTV@B10DB4PD!.B< -XM(?__@_@2#X4W_?__Z:G]__\Q]HM3(`^W0@CVQ`)T+XM5"/:"9`,```$/A)<# -XM``"+@EP#``"-!$#!X`(#0A"+0#B%P`^5P(3`#X71"@``@?DXS0@(#X0O!0`` -XM@?EHS0@(#X1N!@``@?GPS`@(#X2"!@``@?F0SP@(#X1F!@``@?E0T`@(#X0T -XM!P``@:.`````_____>DOY?__@VL4`8/``6:!2WP``8M+%(E#$.D5\?__,?;I -XMO^+__XM#$(G&*?Z)=9B+0`````BW,4A?8/A'P```"+0Q`/O@"%P(E%H`^(E3`0``C78`#[X`A<")1:`/ -XMB$(!```[!?P@"0@/C38!``"A""$)"(M-H/9$B#8"#X0C`0``QT7D`0```(M# -XM$(-K%`&+"+0Q2%P'4FZ9T```")\H#Z%G1,B?"(!X-K -XM%`&#QP&+0Q2#0Q`!A<`/A'P```"+0Q`/MC")\`^^P(E%H/:#@@````)UR`^V -XM1:`\_W0RBTT(#[;`BU$0@+P"4P<``!)UM(M#%(/X`7:LBU,0@^@!B4,4C4(! -XMB4,0#[9"`8@'ZYF+50B+0A"`N%('``#_=8:+3:")%"2)3"0$Z"T?__^#^!(/ -XMA6[____KN(GVBT7@BU4(B5PD!"G'B7PD#(E$)`B)%"3HA"$``(7`#X0EZ___ -XMZ3+Q__^-M"8`````A?:)\`^$[O[__X-]H"&)]@^%XO[__X%[(/C0"`AT"XM] -XMY(7_#X3._O__A?8/A"\(``"+>Q`/MA>`^@IU$8UV`.F.Y?__@#\*#X0T!0`` -XMBWL0@^@!B4,4@\Q!UY,=%G`````#IM^?__XUV`(-[%`$/AD;Q___' -XM0QP!````Z5/Q__\/OM*%TG@4.Q7\(`D(?0RA""$)"(N4D#0$``"^`0```(@7 -XMZ5CF__^)T/?8.4%,#X>TZ___QT0D"&2S"`C'1"0$`P```(D,).A.7?__Z53P -XM__^+182+50B)1"0$B10DZ"3__P^V!SP\#X7V^O__#[[`B46@BTL4A -XM``"%P`^%UNW__XM+(.E:^O__#[8/@/EK#X1]`0``@/ES#X2N`@``A?8/A>'C -XM__^+10B%P)`/A#("``"+50B+P_O^+=;R+?0C'1"0,?[$(",=$)`0#````B70D"(D\).@Q7___ -XMBWT(BT<0AQ"+0Q3'19P`````Z:7C__^`/S`/A.7N -XM__^+?0C'1"0(G;$(",=$)`0#````B3PDZ'U9___I@^S__XN!$`$``(T$0,'@ -XM`@-!$(M`.(7`#Y7`Z3'H__^+30C'1"0$_____XD,).@Y%?__Z;SI__]F@TM\ -XM$.E2[O__@WVH`HVV``````^%?/[__X-K$`&Y>,\("(-#%`''0R!XSP@(Z1SB -XM__^+39#'02@`$```Z;WX__^+2Q3I`>K__XMU"(U%\(E$)`2)-"3HV";__X7` -XM#X7KZ___BT7PAR)0VSI%^[__XM]"(M'3(E#9.DWY/__N@H```")QL=%G`````#I1>#_ -XM_XL"QT0D".RR"`C'1"0$`P```(D\)(E$)`SH;5C__^ESZ___BT6HQT7<```` -XM`,=%O`````"#P`$/A>L"``"+5:B+1;S&!!``B50D"(E\)`2)!"3HV*[^_XMU -XM"(M-O,=$)`Q_L0@(QT0D!`,```")-"2)3"0(Z")=__^%]@^%Z?W__^GZ_?__ -XMD(UT)@"#?:@!="B+1:@QTH/H`8E%B`^V1#H!/&-T##QG=`@\<@^%+/W__X/" -XM`3M5B'7CBT,0@\`!*T6HB4,0BT,4@^@!`T6HB4,4H7#1"`B)0R2A=-$("(E# -XM**%XT0@(QT,H4-T&"(E#+*%\T0@(B4,PH8#1"`B)0S2AA-$("(E#.(U#)(E# -XM(.ERX/__BU,4C4$!B4,0@^H!A=*)4Q3'1:0"````#X3E````BTL0#[8!/%QT -XM+P^^P#G'#Y3`#[;`*46D@VL4`8MS%(-#$`&%]HGR#X0%^/__BTVDA(E$)`B+1G2) -XM1"0$BT4(B00DZ-7*__^%P`^$..G__XE&=.FU^___BW4(QT0D#`$```#'1"0( -XM`@```,=$)`0`````B30DZ&++___I".G__XM3$(E5C.D"^___@:!4"```__[_ -XM_^GNZ/__BW4(B40D#,=$)`@#````QT0D!`````")-"3H),O__^G*Z/__BWL0 -XMQT6<`````.FTW___QT0D"`@```"+50B+`8D4)(E$)`3HMR`!`.F=Z/__QT0D -XM#!BS"`B+=0B+0Q#'1"0$`P```(DT)(E$)`CH@%K__^EVZ/__BW,4Z7_@__^+ -XM30B)1"0,C47575E.#[!R+10B)1?"+,(M^$(DT).C$'@$`A4"```BQ.%TG0&BT,$B4($BT,$ -XMB1"+0PR)!"3HM:O^_XD<).BMJ_[_BU]LA=MUM_:'5`@``!`/A9,"``"-5GB[ -XM(`H``(V'D````(E5[(E%Z.FH`0``BX8T`0``BU80C01`BTR".(7)#Y7`A,!T -XM`X/+0/:&[`(```$/A.,!``"+AN0"``"-!$"+1((XA<`/E<"$P'0&@'D````-+4"`C'AY0````!````QX<``0```(`` -XM`(DT).C:U/__A,`````8N&K`0` -XM`*D````"=!&I```$`'1W@::L!```_____8DT).C.@@``]H8\`0```0^%)?[_ -XM_XN&-`$``(M6$(7`#Y7`Z2?^___'1"0$)KH("(DT).CN@@``B30DZ):"``#K -XMF8UT)@"+AN0"``"%P`^5P.D?_O__BT((B8>0````BT(0B8>4````Z;W^___' -XM1"0(`````(M&3(DT)(E$)`3HLDG__^EM____@>(`!```B50D",=$)`0````` -XMB30DZ-/\_O^%P'0U@\0'C`````$```#'AX@```#(L0@( -XMZ53]__^+5?`QP(DR@\0<6UY?7<.)-"3H(I+__XM5\(D"B74(@\0<6UY?7>F> -XMDO__D)"0D)"0D)"0D)"0D)!5B>564X/L$(M%#(MU"(M`=(L8BT80]H!4"``` -XM`70CQT0D#`````"+0PB)1"0(BP.)-"2)1"0$Z%2G__\QTH7`="/'1"0,B+<( -XM"(L#QT0D!`,```")-"2)1"0(Z%!6__^Z`0```(/$$(G06UY=PXGV58GE5U93 -XM@^P\BT4,BU!XA=)U+\=$)`@`````QT0D!`````"+10B)!"3HHJ+__S'2A<`/ -XMA&L!``"#Q#R)T%M>7UW#@_H"=`7HF*+^_XM`=(E%X(L`BSB)?>B+0`B)1>0/ -XMMDP'_P^VT3L5_"`)"`^-_0```*$((0D(]T20-``%```/A.H```"+1>@/M@B$ -XMR70NBQW\(`D(B@/ML`YV'T+]D2&-@(/A80!```/MD(!@\(! -XMA,!UXX-]Y`(/A@(!``"+=>2#[@(/A/8```"+/?P@"0BA""$)"(M5Z(E]W(E% -XM[.L2C;8`````@\(!@^X!#X3.````#[;!.T7S&1?,!]T2#-``%``!U -XM!X#Y7P^41?,/MDH!#[;!.47R[`0```/=$AS0`!0``=0R-M@````"` -XM^5\/E,,Z7?-TI<=$)`@PN`@(QT0D!`,```"+10B)!"3HRD___[H!````Z"+4P3'1"0@"````,=$)!P`````BT((B40D&(L"B40D%(M]Y(E\)!"+ -XM1>C'1"0(`````,=$)`0`````B40D#(M5"(D4).AJI?__N@$```"%P`^%%?[_ -XM_XM="##2BT,0@XA4"````>D!_O__QT0D"/RW"`C'1"0$`P```(M="(D<).C> -XM3O__N@$```#IW/W__Y"0D)!5B>575E.#[#R)1=R)5=B+5=R+0!")1>"+0AR% -XMP`^$L`,``(M%V(M5W(MX9(U!_X/X`8EZ3`^&>`$``(/I`0^$?@$``(M-V(MQ -XM'(7V=&N+41B)TX`["@^$Y`$``(/#`8/N`77OBT7<]H"N!````@^$ZP$``(G8 -XM*="#^`$/A.`"`T$0 -XMBW`XA?8/E<"$P+H0$!``=06Z`!`0`(M-W/:!/`$```$/A=0!``"+1=R+@#0! -XM``"%P`^5P(3`=`.#RD"-=>R)=>R)=?")5"0,QT0D"`````")="0$BU7DR0C70F``^$E0```#'` -XM@\0\6UY?7<,YTP^%'/[__X7V#X04_O__@^X!=#^#PP&)VNGT_?__B=@IT.D9 -XM_O__@#HN#X40_O__A?8/A#K^__^#[@&-="8`#X0M_O__BU78C4,!B4(8Z1_^ -XM___'1"00`````,=$)`Q/C0@(B7PD",=$)`0!````BTWGH_?__QT0D!`$```")%"3H11G__X7`#X13____BTW<,<#'04P! -XM````@\0\6UY?7<.+@30!``"-!$#!X`(#01"+2#B%R0^5P.D>_O__BT7$P/A17____'1"0$`0```(D$).CO&/__A<`/A/W^__^+5=PQP,="3`$```#I -XM[O[__\=$)`0!````BT7P``Z3S___^-M@````!5N0(` -XM``")Y8M%"(M5#%WIG/O__XVV`````(V_`````%6Y`0```(GEBT4(BU4,7>E\ -XM^___C;8`````C;\`````53')B>6+10B+50Q=Z5_[__^0D)"0D)"0D)"0D)"0 -XMD)!5N`(```")Y5=64X/L'(M=#(M]"(7;=`:+0WB#P`''1"0$!````(D$).CF -XMGO[_A<`/A)$```"%VXE%\'1-BTMTBW7PBP&+4`B%TG1JB) -XMUH/&!,<&`````(M%\(/$'%M>7UW#QT0D"`````#'1"0$!0```(D\).A!2?__ -XMQT7P`````.O4D(VT)@````!5B>575E.#["R+?0B+7R2%VP^$1`$``(L#A<`/ -XMA"`!``#'1>@!````QT7L`````,=%\`````#IGP```)"-="8`@WWH`70:QT0D -XM!-+4"`B)/"3H6GD``(M/*,=%\`$````YRP^$R````(L3N4^-"`B)R(E$)!") -XM5"0,B4PD",=$)`2RN`@(B3PDZ+-Y``"+1Q#V@%0(```$#X6D````QT0D#`$` -XM``#'1"0(`````,=$)`0`````B3PDZ*,,__^%P'4,BT<0]H!4"```!'5T@\,$ -XMBP.%P'1K@T7H`8D$).@2H/[_BT\H,=(YV0^4P@-%\(TT4`%U[(M'.(/H`3E% -XM[`^"//___\=$)`0FN@@(B3PDZ)QX``"+3RB)=>S'1?``````.```@\0L,56 -XM4X/L$(M="(MU#(M#)(7`#X2(````QT0D"!$````/MT9\B1PD)0`!``")1"0$ -XMZ&KQ_O^%P'0,@\00N`$```!;7EW#BT,DB4,HBP")'"2)1"0$Z%;T_O^%P(G" -XM=-H/MT9\QT0D"`````")5"0$B1PD)0`!``"#^`$9P(/@_(/`)(E$)`SHI/7^ -XM_X7`=:J!BZP$````"``$@\006UY=PXD<),=$)`CTN`@(QT0D!`,```#H]T;_ -XM_X/$$+@!````6UY=PXUT)@"-O"<`````58GE@^PHB77XBW4(B7W\BWT,B5WT -XMBT8H.T8D#X3>````]H>!`````74VQT0D"!$````/MT=\B30D)0`!``")1"0$ -XMZ(GP_O^%P'15N`$```"+7?2+=?B+??R)[%W#C78`BUC\B1PDZ#F>_O^)7"0( -XMB7PD!(DT)(E$)`SHL0D``(7`=(72=1:+1RB%P`^$GP$` -XM`(M(!(7)#X24`0``BTT,]H&!`````71XA=)T-(U%\(E$)`B)?"0$BT<0B00D -XMZ.Z'__^Z`0```(7`#X2(`0``@\0LB=!;7E]=PXVT)@````"+1RB+6`2)'"3H -XM]IS^_XE<)`B)1"0,BT4,B3PDB40D!.AK"```A<`/A`0!``"#Q"RZ`0```%N) -XMT%Y?7<.-="8`QT0D"!$```"+50P/MT)\B3PD)0`!``")1"0$Z-#N_O^%P'7) -XMBTT,BU%XA=(/A"`"``#VAZT$```@=3*+5R2%TG0KBP*%P'0=B=.-M@````") -XM!"3HO)O^_XM#!(/#!(7`=>Z+5R2)%"3HIYO^_X&GK`0``/^?___'1R@````` -XMQT0D!`0```"+50R+0GB#P`&)!"3H79G^_X7`B<:)1R0/A"8"``"+10R+2'2+ -XM`8M0"(72#X0;`0``B -XM7UV)PHG0PXUT)@")/"3'1"0(U[@(",=$)`0#````Z-A#__^#Q"RZ`0```%N) -XMT%Y?70O__N@$```#IP_S__Y"0D)!5B>57 -XM5E.#[`R+10B+F)@```"+4QR%TG1,BT,@A) -XM%"3HOYC^_\=#'``````QP,=#(`````#'0R0`````@\0,6UY?7<.-M@````"- -XMOP````!5B>575E.#[!R)1>R)5>B+L)@```"+1B2)1?"+3B"%R70,B<*#P@*- -XM0?\YPGQ/BU8((M]\,'G -XM`HG[`UXB#P`$Y0P1S(XL3B4,$ -XMA=)T8HE$)`2)%"3H99+^_X7`B0,/A!$!``"`2PP!BT7P@\`!B2) -XM^P->'(L+A6_O^-=@#KG<=$)`00````QP0D`0```.@^E?[_ -XMA<")`P^$U0```(M&'(M5\(L4D(72#X5$____BU7LQT0D"`````#'1"0$!0`` -XM`(D4).@40/__N`$```#KAL=$)`00````QP0D`0```.CME/[_A<")`P^$I``` -XM`(M&'(M5Y(L4D(72#X5+____ZZV+5>S'1"0(`````,=$)`0%````B10DZ,$_ -XM__^+5AR%T@^%DO[__XM%[(D$).B;_?__Z7?___^+1>S'1"0(`````,=$)`0% -XM````B00DZ(L___^+.X7_#X7*_O__@&,,_L<#`````,=#!`````#I//___XM5 -XM[,=$)`@`````QT0D!`4```")%"3H4#___^D+____BU7LQT0D"`````#'1"0$ -XM!0```(D4).@P/___Z3S___^-="8`C;PG`````%6)Y5=64X/L'(M%"(MU%(N` -XMF````(7VB47D=#:+#?P@"0B+%0@A"0B+?1#K!HUV`(/'`0^^!X7`>#0YR'TP -XM]D2"-@(/A+T!``"#[@&-="8`==Z+5>2+30R+0AR)072+0B2)07B#Q!PQP%M> -XM7UW#A?9TX(E]$,=%\`````#K+8GV/!9T6(7;>!8['?P@"0B)]GT,H0@A"0CV -XM1)@V`G57@T40`8-%\`&#[@%T2HM5$(M-#`^V`O:!@@````(/OMAUP(#[_P^$ -XMN@```(M-"`^VPXM1$("\`E,'```2=:B#_@%VHX-%$`&#[@ `!@T7P`8/N -XM`76VBU7PBT4(Z*#\__^+3>2+422+01R+3?"+!)")2`B+3>2+7?"+01R%VXL$ -XMD(L`B47L#X3!````BT7PB?N+?>R)1>CK(H`[%@^4P(3`=`.#PP$/M@.(!X/' -XM`8-MZ`$/A(D```"#PP&+50SV@H(````"==(/M@,\_W1#BTT(#[;`BU$0@+P" -XM4P<``!(/E,#KNXM5"(M"$("X4@<``/\/A>[^__^)7"0$B10DZ$[^_O^#^!(/ -XMA=G^___I+/___XM5"(M"$("X4@<``/]UAL=$)`3_____B10DZ"'^_O^#^!(/ -XMA6W____I9?___XUV`(M%[(M-\(T$`8E%[(M5[,8"`(M-Y(-!)`&%]@^%&_[_ -XM_^E,_O__A?:)?1#'1?``````#X5:_O__Z=C^__^-=@!5N@$```")Y8/L"(M% -XM"(ET)`2+=0R)'"2+F)@```#'0R0`````Z%;[__^+0QR)1G2+0R2)1GB+'"0Q -XMP(MT)`2)[%W#C;8`````C;PG`````%6)Y8/L&(M%"(EU^(MU%(E]_(M]#(E= -XM](N8F````(GRZ`O[__^+4R2+0QR+!)"+$(M%$(ET)`B)%"2)1"0$Z!&3_O^+ -XM4R2+0QR+!)"+`,8$,`"+4R2+0QR+!)")<`B+0QR#0R0!B4=TBT,DB4=XBUWT -XM,<"+=?B+??R)[%W#C78`58GE5U93@^Q,BWT,B47`BT44B56\BU48B4VXBTT0 -XMBP")1>"+`HM5"(E%\(L)A=*)37UW#BTW`BT$@ -XMBT`(A<")1<@/A&H#``"+7`^''@$``(M#>(MS=(E%\(&+5`@` -XM```!``#I;?___XU-\(E4)`R)3"0(BUW@B5PD!(M%P(D$).@'K?__A<`/A*P! -XM``")P>FJ_/__C4-XB4PD#(E$)`B+0W2)1"0$BT7`B00DZ-NL__^%P`^$@`$` -XM`(E#=.D1_?__@:-4"```__[__XM-S#M+>`^'$`$``(M#>(MS=(E%\(&+5`@` -XM```!``#I8_W__XU-\(E4)`R)3"0(B70D!(M%P(D$).B#K/__A<`/A"@!``") -XMQNDS_O__C5WPB4PD#(E<)`B)="0$BU7`B10DZ%JL__^%P`^$_P```(G&Z93^ -XM__^-0WB)3"0,B40D"(M#=(E$)`2+1<")!"3H+JS__X7`#X33````B4-TZ;3^ -XM__^)1"0,C4-XB40D"(M#=(E$)`2+5<")%"3H`:S__X7`#X2F````B4-TZ;7^ -XM__^!HU0(``#__O__.W-X=V:+0WB+4W2)1?"!BU0(`````0``Z0C]__^-3?") -XM5"0,B4PD"(ET)`2+1<")!"3HL*O__X7`=%F)QNEK_/__C4-XB4PD#(E$)`B+ -XM0W2)1"0$BT7`B00DZ(BK__^%P'0QB4-TZ7UW#QT0D"#RY"`C'1"0$ -XM`P```(D,).AF-O__@\1,N`$```!;7E]=PXU%\(ET)`R)1"0(B50D!(M%P(D$ -XM).C?JO__A*_O^-=@!5B>575E.#[#R+?0B%_W04BU\0A=MT#?:#50@```$/A$P! -XM``#'1>@`````C5WPQT7P`````,=$)`P``@``B5PD",=$)`0`````B3PDZ"^J -XM__^%P`^$D`$``(E%Z(M%&,=%[`````")7"00B40D%(U%Z(E$)`R-1>R)1"0( -XMBT7HB40D!(M5%(GXB10DBTT0BU4,Z!KY__^%P`^%H@```(M%[(7`B47<=&B+ -XM5>B)T0'!.`/@]T````/O@*%P`^(T@```(LU_"`)"#G&#X[$````BQT( -XM(0D(]D2#-@)U(^FR````#[X"A<`/B+`````YQ@^.J````/9$@S8"#X2=```` -XM@\(!.7UW#C70F`(7_=!.+5Q"%TG0,BT)T.T7H#X2O````BT7HB00D -XMZ)*+_O^X`0```(/$/%M>7UW#D(%[>/\!``!V28M#=(E%Z(M#>(E%\(&+5`@` -XM```!``"-7?#IQ?[__SE-X`^$")5"0(BT4,B3PDB40D -XM!.AS]___Z4[___^-0WC'1"0,``(``(E$)`B+0W2)/"2)1"0$Z*"H__^%P'0% -XMB4-TZY"X`0```(GVZ7+___^!HE0(``#__O__,<#I8?___X&B5`@``/_^__^X -XM`0```.E-____C;8`````58GE5U93@^Q,B47(B57$B4W`]H!D`P```0^$D0(` -XM`(G"BX!<`P``C01`P>`"`T(0BT`XA<`/E<"$P`^%A@(``(M%R/:`<`,```$/ -XMA9X"``"+1#'1"0$+P```(M5X(D4).A%AO[_BU7@B57S'1?#_____QT7L_____XE5U(D$).CL -XMA/[_A<`/B-8#``#'1"0$D+X("(M%[(D$).B!A_[_A<")1

7UW# -XMB<*+@&@#``"-!$#!X`(#0A"+0#B)1>#I4OW__\=$)`0!````BT7PB00DZ->! -XM_O^+1>R)!"3H+(7^_XM%\(D$).@AA?[_QP0D`@```.@5A?[_QT0D$`````"+ -XM1=C'1"0(V[D("(E$)`R+5=R)5"0$BT7@B00DZ'R!_O_'1"0,WKD("(M5X,=$ -XM)`0%````B50D"(M%R(D$).A&-?__QP0D?P```.@NAO[_@:-4"```__[__XM5 -XMP(L"`<`[0WAW8(M3=(E5V(M5P(M#>(D"@8M4"`````$``(L"Z9C]__^)5"0, -XMBT7`B40D"(M5V(E4)`2+1*3__X7`#X1*`0``BU7`B478BP+I9OW_ -XM_XD4).C_AO[_B<;I%?W__XE$)`R-0WB)1"0(BT-TB40D!(M%R(D$).@WI/__ -XMA<`/A`D!``")0W3I<____\=$)`C5N0@(QT0D!`4```"+5 -XM7UW#QT0D"%;?"`C'1"0$!0```(M%R(D$).@?+___@\1,N`$```!;7E]=P\=$ -XM)`SSN0@(BT7<,?;'1"0$`P```(E$)`B+5@/A)X! -XM``"+1>B)!"3HKX3^_X/$;(GP6UY?7<.0@7YX_P$```^&CP$``(M&=(E%Z(M& -XM>(E%\(&.5`@````!``#I5/___\=$)`@!````QT0D!#0```")'"3H4#;__X7` -XM="V+1>R+5>B#Z`6#P@6)1>R)1"0,B50D"(M5#(D<)(E4)`3H!N[__XG&Z6+_ -XM___'1"0(`0```,=$)`0U````B1PDZ`)1:2#[P4/ME$%A-(/A,(```"%_W4%_P^$\_[_ -XM_X/O`0^$"P$``(U%[(D$)(U-\(G8C57HZ&/X__^%P`^%6?[__XM%[(E$)`R+ -XM1>B)1"0(Z=/^__^!HE0(``#__O__B?"#Q&Q;7E]=PXU&>,=$)`P``@``B40D -XM"(M&=(D<)(E$)`3H=J#__X7`=`B)1G3I1_[__[X!````D(UT)@#I(/[__X7_ -XM#X1G_O__H?P@"0@Q]HL-""$)"(E%K(E-L.L(BT78#[94!@6+1=B-1#`%B47< -XMBT6D*?"#Z`6)1=0/OL*%P'@:.T6L?16+5;#V1((V`G4>]T2"-``%``!U%)") -XM1"0$BTVHB0PDZ,5]_O^%P'4:@\8!.?=UJ.GU_?__BX-T`P``B46HZ5+^__^+ -XM?=3IY/[__XM-W(`Y*@^%Z?[__\8!`(M%Z(/`!8E%M(N3F````(E5S,=$)`0O -XM````B00DZ.Y]_O^%P(G`0``.46T#X2_`0``Q@``BT6TB00DZ)V"_O^) -XM1<"#Q@&)=>"+5>")%"3HB8+^_XM-M(E%N(D,).@[?O[_A<")1<@/A+T!``"+ -XM5`@ND'3; -XM@\`(B470B00DZ#2"_O^)1;R+?;R)V`-]P(U7`NC=Z/__BT7,BU`DBT`?[_Z>K[__^#P`B)1=")!"3H -XM78'^_SE%N(E%O`^'ZO[__XM-N(MUT(M]X/PYR?.F#X76_O__Z0?___^+1<") -XM1"0(BU6TB30DB50D!.@"@/[_`W7`@WW``799Q@8O@\8!Z0;____'1"0(!;H( -XM"+X!````QT0D!`,```")'"3H+2G__^EK^___QT7``0```,=%M`J@"`CI/_[_ -XM_XM-M,=%P`````#'1;1!\0@(B4W@Z2S^__^+3;2`.2]UG^FK_O__QT0D#)^M -XM"`B+1;2^`0```,=$)`0%````B1PDB40D".C;+?__Z0G[__^0D)"0D)!5B>57 -XM5E.#[!R+?0SV1WP!=`X/ME=1@/I`=`6`^BIU&XM%"&:#N*P$````#XGB`0`` -XMBTT(#[:1J````(M="`^VRH&+K`0```"```"(DZ@````[#?P@"0@/C&4!``") -XMT(M="(MS$(N>0`$``(7;=0_I;`$``(L;A=L/A&(!```Z0Q!U\<=$)`2$```` -XMQP0D`0```.@=??[_A<")1?`/A*4!``"+=?"+1?"#QCR)<#R)<$#'1"0$$``` -XM`,<$)`$```#H[WS^_X7`B<(/A+H!``"+1V2)0@CVAX(````(#X56`0``BT=L -XMB4(,BT7P@$A0`8M-\(M!/(ER!(D".W%`#X1^`0``B5`$BT7PC7L(,?:)4#R+ -XM4PPQP#G7=!B-M@````"+0A"+4@2#P`$!QCG7=?&-!#:)!"3H^GW^_XM5\(7` -XMB4(0#X3_````BU7PB4)(B7),Q@0P`(M;##G?="P!QHGVBT,(BU,0B30DB40D -XM!(E4)`CH[GW^_XGP`T,0Q@`*BUL$C7`!.=]UV(M-"(M=\(M1$(M"?(7`B0-T -XM"8M"?(E8!(M1$(M%\(E"?(M5"(M-\(M"$(/`?(E!!(/$'#'`6UY?7<.A""$) -XM"&:#?(@T``^)BO[__P^VA(@T!```Z7_^__^-!$F`P@&-A$98`0``='J)1"0$ -XMQT0D"`````"+50B)%"3HVO$``+@!````@\0<6UY?7<.)!"3'1"0(!0```,=$ -XM)`0`````Z+7Q``"#Q!RX`0```%M>7UW#B4(,BTWP@$E0`NFH_O__QT0D"``` -XM``#'1"0$!0```(M-"(D,).A>)O__N`$```#KHL=$)`3_````BT4(B00DZ#3B -XM_O_I;O___XE10.E]_O__QT0D"`````#'1"0$!0```(M5"(D4).@<)O__N`$` -XM``#I7?___Y"058GE5U93@^P\BWT,BW4(BT=TBP")1>"+0`B%P`^$K@$``(N> -XMF````(M#&(7`=`B)!"3H[7S^_XM5X(L"B00DZ%!V_O^%P(E#&`^$3`(``/:' -XM@@```"!T+HN&K`0``*D```0`=2&H`@^$^`$``(M5X(L"QT0D!-7:"`B)-"2) -XM1"0(Z+H)`@"+1V"%P`^%L@```(M&'(7`=&CV0%@$=&+VAB0!```!#X3@`0`` -XMBX8<`0``C01`P>`"`T80BT`XA<`/E<"$P`^%(@(``/:&8`0```$/A.8!``"+ -XMAE@$``"-!$#!X`(#1A"+0#B%P`^5P(3`=`[VAJX$```$#X3.`0``D#'2,<#V -XMAJP$```1B50D#`^4P(E$)!"+5>"+`HE\)`2)-"2)1"0(Z/6```#WAJP$```" -XM``0`='TQTH/$/(G06UY?7<.+3AR%R0^$NP$``(./@````$"#?V0!#X2A```` -XM,<")1"08BU7@BP*)?"0$B30DB40D%(U%Z(E$)!"-1VR)1"0,C4=DB40D".B! -XM)P``BU7H]H:L!````HE63`^%I````(M%[/>&K`0```(`!`")1E!U@XDT),=$ -XM)`0EN@@(Z,Q4``"#Q#PQTEN)T%Y?7P<"```BU4(BUT,BT(<]D!8!'0Y]D-] -XM`74SBT(@BT`(@#@O="C'1"0(3+H(",=$)`0#````B10DZ)PB__^!Q!P(``"X -XM`0```%M>7UW#BT-XA<`/A:,```#'!"2_N@@(Z'ER_O^%P(F%\/?__P^$HP$` -XM`(N5\/?__XD4).A-`"`T(0BU`XC7(!ZPB`^SIT"X/&`0^V7O^$VW7PC4;^.<)R:X3;="") -XM\NOF@^@!=$SHB'/^_X!Y`2YUJ`^V00(\+W0$A,!UG,=$)`R?K0@(BX7P]___ -XMQT0D!`4```")1"0(BU4(B10DZ*TF__^X`0```('$'`@``%M>7UW#BT-TBP"+ -XM`(F%\/?__^D4____QD;_`(N%\/?__XV]]/?__XE4)`S'1"0(N90(",=$)`0` -XM"```B40D$(D\).CO=?[_B%[_B3PDZ#1Q_O^%P'0R#[9>_^E-____@<0<"``` -XM,7<.0QX:L`````0```.O*C70F`(M5#(M"%(DT),=$ -XM)`0"````B40D".AFNP``@\0PN`$```!;7EW#BT,575KX!````4X/L'(M]"(N'F````(M8$(7;=#>)]HM# -XM$(E$)!"+0PB)="0(@\8!QT0D!%C4"`B)/"2)1"0,Z"M0``"+&X7;==6#Q!PQ -XMP%M>7UW#B3PDQT0D!$#4"`CH"U```(/$'#'`6UY?7<.058GE4X'L-`@``(F% -XMZ/?__XU%](F5Y/?__XF-X/?__\=%[/_____'1?C_____QT7T_____XD$).B( -XMR)!"3H=7#^_X7`#XCY````Z&AV_O^+E>3W__^#^/^) -XM0A`/A+@!``"%P`^%2P$``,=$)`0`````BT7TC9WL]___B00DZ)5O_O_'1"0$ -XM`0```(M%\(D$).B";_[_QT0D!`(```"+1?")!"3H;V_^_XM%^(D$).C$#W__^)5"00BY7D]___BT((QT0D"*S5"`C'1"0$``@` -XM`(D<)(E$)`SHFG+^_\=$)!``````B5PD#,=$)`C;N0@(QT0D!%Z@"`C'!"19 -XMH`@(Z/)N_O_'1"0,Z;D("(E<)`C'1"0$!0```(N%Z/?__XD$).B\(O__QP0D -XM?P```.BD<_[_QT0D"%;?"`C'1"0$!0```(N%Z/?__XD$).B"'?__BT7T@_C_ -XM=`B)!"3H!G+^_XM%^(/X_W0(B00DZ/9Q_O^+1>R#^/]T"(D$).CF3W__^)0AB!Q#0(```QP%M=P\=$ -XM)`C5N0@(QT0D!`4```"+A>CW__^)!"3HK!S__^DE____C;0F`````%6)Y5.) -XMTX/L)(7;BY"8````='V+0QB%P'0(B00DZ()S_O^+0R"%P'0(B00DZ'-S_O^- -XM1?C'1"0(`````(E$)`2+0Q")!"3H^6S^_XL3A=)T!HM#!(E"!(M#!(D0BT,L -XMA -XM7UW#D(UT)@!5B>57B<=64X/L#(D$).BAB70D"(E$)`2)/"3H)FK^_X7`=>.#Q`R)V%M>7UW#,=N#Q`R) -XMV%M>7UW#D(VT)@````!5B>575HG&4XG3@^PDH``(L5(-@("(72=#4QVXN#*-@("(E4)`S'1"0(!0```,=$)`22U`@( -XMB40D$(DT).A(2@``BY,PV`@(@\,0A=)US3'`@\0<6UY?7<.)T.@J____A<") -XMQW0^BT`(B40D#(L'B30DQT0D!&[4"`B)1"0(Z`=*``"+1PR)-"3'1"0$7ND( -XM"(E$)`CH\$D``(/$'#'`6UY?7<.)7"0(QT0D!/#5"`B)-"3HTDD``+@!```` -XMZY*-="8`C;PG`````%6)Y8M%"(M5$%WI$?___Y!5B>575E.![.P,``"+10B+ -XM71"+@)@```")A33S__^+0!"%P`^$8`$``(N--//__\>%///__P````#'A4#S -XM__\`````.0D/A&,!``"%VW0]#[8##[[0A=)X+XLU_"`)"#G6?B6+#0@A"0CK -XM%I"-="8`@\,!#[8##[[0A=)X"SGR?0?V1)$V`G7HA,!U38M%"+JGU`@(Z'?^ -XM__^+A3SS__^%P'0.BX4\\___B00DZ`-O_O^+A4#S__^%P'0.BY5`\___B10D -XMZ.MN_O^X`0```('$[`P``%M>7UW#C5,!B95<\___#[9[`8GY#[[1A=)XG8LU -XM_"`)"#GR?9.+#0@A"0B)C5CS___V1)$V`G2`/'/'A4SS__\`````#X0<`0`` -XMN9W4"`CK$H.%3//__P&#P0$XP@^$`P$```^V40&$TG7F//\/A#$!``"+50@/ -XMML"-!$"-A`!0`0```T(0@\`(BWT(QT0D$)W4"`B)1"0,QT0D"#S6"`C'1"0$ -XM`P```(D\).@<%___Z1#___^+50C'1"0(&-8(",=$)`0#````B10DZ/P6__^X -XM`0```.D@____QT0D!"````#'!"0!````Z-)K_O^%P(F%///__P^$^?[__XN] -XM///__XG&@\8(B7<(B7<,QT0D!"P```#'!"0!````Z)]K_O^%P(F%0//__P^$ -XMEO[__XM'"(N50//__XD"B7($.W<,#X2\!@``BXU`\___B4@$BX5`\___B[T\ -XM\___B4<(B4<0Z1'^__^)^(3`=1_I1_[__P^^PH7`>$0YQHGV?CZ+C5CS___V -XM1($V`G0Q@X5<\___`8N%7//__P^V$(32==+I%/[__XM-",=$)`3_____B0PD -XMZ`72_O_IS?[__X#Z(@^%*`8``(N]7//__P^V5P&$T@^$%@8``(!_`@`/A0P& -XM```/OL*%P'@<.<:)]GX6BXU8\___9H-\@30`>0@/MI2!-`0``(M]"(M'$(N` -XM0`$``(7`=1+IU`4``(UV`(L`A<`/A,<%```Z4!"-=@!U[HM`"(M("(F-7//_ -XM_XMP$(U&(XE$)`3'!"0!````Z'!J_O^%P(F%9//__P^$*@<``(N]9//__XN- -XM9//__XGZ@\$(@\(=B8U@\___B4\(B4\,B5<4#[8#B$<=C48"QD(!((E'&(M' -XM%(N57//__XET)`B#P`*)5"0$B00DZ,-K_O^+1Q3&1`8"`(!/'`&+30B+?0B+ -XM10B+22")C3CS__^+?TR)O43S__^+0%#'A5#S__\`````B85(\___@'D8`'D7 -XMBU4,BY*`````P>H(]]*#X@&)E5#S__^+C33S__^+21"%R8F-+//__P^$E08` -XM`,>%5//__P````"+O2SS__^+E63S__^+C4SS__^+/XF],//__XM"%(N]+//_ -XM_XE,)`C'1"0$K-0("(/``HE$)`R+1R")!"3HRF/^_XM'((D$).CO9O[_ZW^- -XM1>R-E8CS__^-??*)?"0,B40D",=$)`2RU`@(B10DZ,EG_O^#^`(/A#$#``"- -XMC8CS___'1"0$"@```(D,).B*9O[_A<")1>AT`\8``(N5+//__XV]B//__XE\ -XM)!"+30B+0@C'1"0(R-0(",=$)`0#````B0PDB40D#.C:$___BY4L\___C8V( -XM\___BT(8QT0D!``(``")#"2)1"0(Z+ME_O^%P`^%5O___XL=H!0)"(7;#X43 -XM!0``BY4L\___BT(8#[]`#,'H!8/@`83`=`OHB6?^_\<`!0```(N]+//__XM' -XM",=$)`B?K0@(QT0D!`4```")1"0,BT4(B00DZ&<8__^+10@QR8GZZ*OV__^+ -XMC3SS__^%R70.BY4\\___B10DZ$=J_O^+C63S__^+?0B)3"0$B3PDZ"ZL``"X -XM`0```.E"^___@_L"#X09`P``@_\"B?L/CK`"``"#^P,/A?P!``"+5>B%THF5 -XM://__P^$ZP$``(7V#X3C`0``B10DZ)IJ_O^+C2SS__^)A7CS__^+62B+`X7` -XM#X1*!```C76(ZPV#PP2+`X7`#X0X!```B[UL\___B40D#(V%B/O__\=$)`BY -XME`@(QT0D!``$``")?"00B00DZ"-G_O^-E8C[__^)="0$B10DZ-%E_O^%P'6Q -XMBQN)G7#S__^)'"3H'6K^_XN-+//__XF%*//__XM%J#M!%`^%://__P````"+E2CS__^+C7SS -XM___'!"0!````C40*,`.%>//__XE$)`3HYV;^_X7`B<,/A.\#``"-0"B)0Q2+ -XMO2CS__^%_W0RBY4H\___BXUP\___B00DB50D"(E,)`3H86C^_XN]*//__XM# -XM%,8$."^#QP&)O2CS__^+A7SS__^+E2CS__\#4Q2#P`&)1"0(BX5L\___B10D -XMB40D!.@C:/[_BX4H\___`X5\\___B4,8BY6`\___B5,//__XE+)(N]://__XG(@\`!B40D"(D4)(E\)`3HU&?^_XN% -XM8//__XD#BY5D\___BT(,B4,$BXU@\___.TH(#X3I`@``B1B+O63S__^)7PR# -XMA53S__\!BT7L@^@!B47L@\`!#X0V`0``B[TL\___BT<8QT0D!``(``")1"0( -XMC86(\___B00DZ,IB_O^%P`^$#_W__XV5B//__\=$)`0*````B10DZ!QC_O^% -XMP(E%Z`^$C0```(V-B//__[\!````Q@``B4WHC47HQT0D!-'4"`B-7_^)!"3H -XMFF7^_X7`B<8/A&S]__^%VP^%4/W__XDT).@@:/[_B;5L\___B85\\___@\C\__^+A5SS__^)!"3HE6?^_XG&Z3OZ__^)5PSI -XM1?G__XM!&(D$).C[9O[_B<'KD8N5+//__XM%".CU\___BX4P\___A<")A2SS -XM__\/A>KZ__^+E53S__^%T@^$9P$``(N-9//__XM1"(E1$(M]#`^W1WPE``$` -XM`/:'@0````$/A/$!``")1"0(BT4(B50D!(D$).@KM```A<`/A3SW__^+50B+ -XM4A2)50B+BI@```")C33S__^+A33S__^+E33S__^+&#G3B=@/A&\!``"+O63S -XM__^)!XE7!(N%-//__SM`!`^$30$``(N5-//__XN-9//__XL"B4@$BX5D\___ -XMB[TT\___B0>+E63S__^+30B+0A")5"0$B0PDB40D".A1[O__BX50\___A<`/ -XMA-D```"+?0B+4Q"+1R")0@B+4Q"+1TR)0@R+1U"+4Q")0A`QP.F\]O__BXTL -XM\___BT$8B00DZ$%?_O^%P`^5P.GE^O__QX4H\___`````.DI_/__B[5H\___ -XMN-34"`BY"@```/R)Q_.F#X4P_/__Z1?\__^+50C'1"0(`````,=$)`0%```` -XMB10DZ"D.___I'?;__XE:".D1_?__BT4(QT0D"-[4"`C'1"0$!````(D$).@! -XM#O__,<#I*/;__XM]",=$)`@`````QT0D!`4```")/"3HWPW__^F/^O__BT,0 -XMBY4X\___B5`(BT,0BXU$\___B4@,BT,0B[U(\___B7@0,<#IW?7__XEX!.F\ -XM_O__BY4\\___B1J+C3SS__^)VHE9!#M;!'1"BP.+O3SS__^)>`2+C3SS__^+ -XMA33S__^)RXD(B>(D\).C29/[_BU4(B7PD"(ET)`2)%"2)1"0,Z(?>__^Z -XM`0```(7`=2Z+5G@YV@^$QP$``(U#`3G"="R+10C'1"0(`0```(E\)`2)!"3H -XMY=<``+H!````BUWTB="+=?B+??R)[%W#D(M&=(U]E(L$F(LPB7PD!(DT).C] -XM7_[_A<`/A3`"```/MT6<)0#P```]`$````^$/0(``,=$)`0O````B30DZ&%? -XM_O^%P(F%+//__W0,Q@``@\`!B84L\___B30DZ!-D_O_'!"0!````B<.-0#B) -XM1"0$Z"YA_O^%P(G'#X19`@``C4`TB4<(B5\,B5PD"(ET)`2)!"3HNV+^_XM% -XMM(E'%,=$)!`&U0@(BT<(QT0D"+F4"`C'1"0$``@``(E$)`R-A33S__^)!"3H -XMB&#^_XV%-/___XV5-//__XE$)`2)%"3H,%_^_X7`#X2_````BT<(B00DZ#U< -XM_O^%P(E'+`^$Y`$``,=$)`0$````QP0D`@```.B.8/[_A<")PHE'*`^$XP$` -XM`(M'+(D"BXTL\___B?J+10CHB.S__X7`#X7]````BY4H\___BT(0A<")!W0& -XMBT(0B7@$BX4H\___B?J)>!"+A2CS__^#P!")1P2+10CHC.___S'2A<`/A'+^ -XM__^+10B)^C')Z(;N__^Z`0```.E<_O__BT4(NO?4"`CH?_'__[H!````Z47^ -XM__^+M63___^-1@&)!"3H:&'^_X7`B4%+//___O4"`B%P`^$H?W_ -XM_XM%"(E<)`C'1"0$!0```(D$).CA"?__N@$```#I%_W__\=$)`@`````Z6W_ -XM__^+10C'1"0(`````,=$)`0%````B00DZ*\)___I-____XM'+(7`#X0L____ -XMB00DZ*M@_O_'1RP`````Z1C___^)'"3H%U[^_XM'++D!````BY4P\___Q@00 -XM`(M'+`^V$(32="6#P`$PR>L*#[80A-)T%(/``8#Z.G7Q#[80A-)T!8/!`>OL -XM@\$!QT0D!`0```")#"3H)E[^_X7`B<.)1R@/A'O____'1"0$(=4("(M'+(D$ -XM).@67/[_A<`/A(+]__^)`X/#!,=$)`0AU0@(QP0D`````.CU6_[_A575E.#[#R+10B+L)@```#VAC@$```!#X0X`0`` -XM@(XX!````8M5#(M"=(L`BU`(BS"%TGYC#[X&A7'1"0(:-8( -XM",=$)`0#````BT4(B00DZ",(__^X`0```(/$/%M>7UW#A=)TU(72#XX2`@`` -XMBSW\(`D(B?.A""$)"(E]U(E%X(VT)@`````/M@L/OL&%P'@/.T74?0J+?>#V -XM1(#"+#?P@ -XM"0@YR'TFBQ4((0D(ZQ>)]H/#`0^V`X3`=!(/OL"%P'@+.<%^!_9$@C5`=>2) -XM\.B-[?__A<`/A#?___^)7"0(BU4,B50D!(M]"(D\)/]0!(/$/%M>7UW#QP0D -XM$]4(".A15_[_A<")QP^$LO[__XD$).C_7O[_B47%W^_XM]V(E] -XM[,=$)`0?U0@(B1PDZ.);_O^%P'0=@#@`=.>)1"0(BT4,B40D!(M5"(D4).A? -XM^?__Z\^+10B%P'06BWT(BT<0AO__A<")1=@/A3O___^X`0```.D#_O__B40D#(U# -XM>(E$)`B+0W2)1"0$BU4(B10DZ*1Z__^%P'35B4-TZ?+^__\/M@Z)\XUV`.D? -XM_O__@:!4"```__[__^E+_?__D)"0D)"0D)"0D)"058GE@^PXB77XBW4(B5WT -XMBUT,B7W\BT8`/MT-\C5-1C7MDQT0D$`$```")?"0( -XM@^`!]]@APHM%X(E4)`2)-"2)1"0,Z!J1_O^%P'06N`$```"+7?2+=?B+??R) -XM[%W#C70F`(M%X,=$)`P!````B7PD!(DT)(E$)`CHY93^_X7`=57OX#8"`A6B=93B<.# -XM[!R+4!#V1A@!=06_C=@("(7)#X3R````B7PD#(E,)`C'1"0$G]@("(D<).C` -XM-0``BT8(@\8(B77L.?")1?`/A+X```"+5?"+>A"+0@B%_XE%Z`^$AP```#'V -XMZV:-="8`#[;`C01`C80`4`$```-#$(/`"(E$)`2)'"3HX30``(M#$/:`5`@` -XM``1U=\=$)`P!````QT0D"`````#'1"0$`````(D<).AER/[_A@/M@06//]UD\=$)`3_````B1PDZ/.__O_KE,=$ -XM)`0FN@@(B1PDZ'$T``"+1?"+5>R+`#G0B47P#X5"____@\0<6UY?7<,/MD80 -XM//]T$@^VP(T$0(V,0E@!``#I]/[__\=$)`3_````B1PDZ)R__O^)P>G=_O__ -XMD(UT)@!5B>6#["B+50R+10B)7?2)=?B)??R)1>R)5?"+0G2+`(L8#[83@/IC -XM#X2W````=T*`^F(/A.<```"-M"8`````QT0D"`H```"+5?"+0B"+0!")1"0$ -XMBWWLB3PDZ&#.``"X`0```(M=](MU^(M]_(GL7<.`^G-T.8#Z='7$BT`(@_@$ -XM=[RZ8,$("#G`_(G>B=>)P?.F=:J+1>R+7?2+=?B+??R)10B)[%WIPZ$``(UV -XM`(M`"(/X!W>(NA_N"`@YP/R)WHG7B<'SI@^%GK10``BT`(@_@+#X=/____NN78"`@YP/R)WHG7B<'SI@^%.?___XM% -XM[(M=](MU^(M]_(E%"(GL7>DBX___B?:+0`B#^` -XMB=>)P?.F#X7^_O__BU7LBT(0BYA``0``A=L/A"$!```/MD,0@_A_=PKV!(7= -XM%`D(!'5>C4,(.4,(=`R+1>PQR8G:Z#/]__^+5>R+0A#V@%0(```$#X7@```` -XMQT0D#`$```#'1"0(`````,=$)`0`````B10DZ"#&_O^%P'43BWWLBT<0]H!4 -XM"```!`^%J0```(L;A=MUB8M5[(M"$(NP0`$``(7V='6-=@`/MD80@_A_=UWV -XM!(7=%`D(!'13C48(.48(=`R+1>PQR8GRZ*G\__^+?>R+1Q#V@%0(```$=5K' -XM1"0,`0```,=$)`@`````QT0D!`````")/"3HFL7^_X7`=0R+1Q#V@%0(```$ -XM=2J+-H7V=92+5>R+0A"+D"`!``"%TG04BT7LN=;8"`CH1_S__S'`Z?7]__\Q -XMP.GN_?__BY`@`0``A=)UV\=$)`BXV`@(QT0D!`0```"+?>R)/"3H!`'__S'` -XMZ<+]__^0D)"0D)"0D)"0D)"058GE@^PXB5WTBUT,B77XBW4(B7W\BT-XA#' -XM1"0(`````(E\)`0E``$``/?:@^(@@_@!&<#WT(/@!`G0B40D#(DT).A'KO[_ -XMA+0&2) -XM1?B+1?C'1"0$\=@("(D<)(E$)`CH5B\``#'2@\0DB=!;7<.-1?B)1"0$B1PD -XMZ!W,_O^Z`0```(7`=,?KWL=$)`@$````BT`@BP")'"2)1"0$Z"G)``"Z`0`` -XM`.N^D)!5B>6#[!B)7?2+70B)=?B+50R)??R+0QR%P`^$O0```(M">(7`=2G' -XM1"0(`0```(M#3(D<)(E$)`3H4O7^_S'`BUWTBW7XBWW\B>Q=PXUV`(/H`70+ -XMZ%I/_O^-M@````"+0G2+#_____QT7<_____\=%Z/_____'1>3_ -XM____=!.-1>2)!"3H84[^_X7`#XCP!```C47") -XM!"3H0TW^_\=$)`0"````BT7@B00DZ#!-_O^+1>2#^/]T"(D$).B`4/[_BT7H -XM@_C_=`B)!"3H<%#^_XM%W(D$).AE4/[_BT7@B00DZ%I0_O^+10@/MIAP`P`` -XM@^,!#X2/`P``B<*+@&@#``"-!$#!X`(#0A"+0#C'1"0$+P```(D$).B#3O[_ -XMA<"-4`$/A-8$``"$VP^$2@,``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!`` -XM````BTT`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B) -XM!"3H$0#__\<$)'\```#H^5#^_Y"-="8`N@$```"#Q$R)T%M>7UW#D(M%Y(/X -XM_W0(B00DZ&1/_O^+1>")!"3H64_^_XM%((/H`8/X`0^&H`(``(M-"(M!'(!( -XM6`CHJTO^_X/X_XG'#X2S`P``A<`/A"8#``"+1>B)!"3H'4_^_X-](`,/A?,# -XM``"+50B+LI@```"-1>R)1"0(BU70B50D!(M-"(D,).CMQ@``AR)1"0(BT8LB40D -XM!(M-"(D,).B.+P``A<`/A'#___^+%:`4"0B%T@^%%`0``(M5T`^_0@S!Z`:# -XMX`&$P`^%WP,``(M5T#'VB10DZ+I0_O_'1"00`0```,=$)`P`````QT0D"`G9 -XM"`B)?"0$BT4(B00DZ`]3``"%P`^$00,``+X!````BU48BP*#^`%V&8E$)`2+ -XM30B)#"3HN<;^_X7`=0:+11B#*`&+50B+0AR`8%CW@WT@`@^$G`$``#'`QT0D -XM$`````")1"0,BT4B#^/]T"(D$).AB3?[_BUW0A=MT+HM-T(D,).C` -XM3_[_BT7@@_C_#X3`_?__B00DZ#Q-_O^#Q$RZ`0```%N)T%Y?7<.+1=R#^/]T -XMU8D$).@=3?[_Z\N-M"8`````QT0D"-6Y"`C'1"0$!0```(M5"(D4).AE^/[_ -XMZ7+____'1"0(SKD(",=$)`0%````BT4(B00DZ$7X_O_I4O___XM-"(N!:`,` -XM`.D2_?__BTT(BX%H`P``Z;W\__^+30B+@6@#``#I=_S__X-](`$/A-````"- -XM1?#'1"04`0```(E$)!"+31")3"0,BT70QT0D!/;8"`B)1"0(BU4(B10DZ*PR -XM``"+30B%P`^5P`^V\(M%\`%!7(-](`(/A7;^__^+51"+"H7)#X7&`0``BTT8 -XMB0&+30BX`0```/:!K`0```(/A5'^___I2O[__\=$)`A6WP@(QT0D!`4```"+ -XM50B)%"3H>O?^_\=%T`````#I@/[__XM%W(D$).CW2_[_QT0D!!KW"`B+1>B) -XM!"3HU$O^_X7`#X7#`0``QP0D`0```.A`3?[_BT7HB00DZ,5+_O^-1?#'1"04 -XM`0```(E$)!"+51")5"0,BTW0QT0D!/;8"`B)3"0(BT4(B00DZ-$Q``"+50B% -XMP`^5P`^V\(M%\`%"7#'`Z:#]___'1"0(UKD("+X!````QT0D!`4```"+10B) -XM!"3HR?;^_XM%Z(D$).A22_[_BT7`"`T(0BU`XZ0C[__^-1?#'1"04`0```(E$)!"+312)3"0, -XMBT70QT0D!/;8"`B)1"0(BU4(B10DZ"PQ``"+30B%P`^5P`^V\(M%\`%!7.F0 -XM_/__A?8/A;S\__^+12"%P`^%L?S__\=$)!`!````BU44B50D#(M-$,=$)`0` -XM````B4PD"(M%"(D$).BJ@?[_AR)5>B+5?`/MD)0J`UT1(M:/(UZ/#G?=#&+,XM###M%$(GQ -XMR)0@B+0PR#P`&)0@R+1>B)6@2)0PR+`XD"BP,Y -XMQW0=B5`$B1.)\^E@____@VL,`8U"_XE#"(GSZ4____^+1?")4$")$^O>BT7P -XMB4@\ZX>+0P2+5?")0D"+"^EN____QT0D"`````#'1"0$!0```(M5"(D4).C0 -XM\_[_@\057B<=64X/L -XM;(E5M(E-L(MP'(7V#X1?`0``]H"N!````@^%(0$``(M-M(M9>(7;#X3I```` -XMBT%TBS7\(`D(BP"+"`^V$0^VVCGS?1NA""$)".L-@\$!#[81#[;:.?-]!_9$ -XMF#8"=>R$T@^$KP```#D=_"`)"`^/CP```(#Z7`^$F@```(#Z?`^$D0```(#Z -XM"@^$B````(U!`8E%S`^V40&$T@^$;@$``(MUS`^VPCG#B?%U*^GR````D(UT -XM)@`/MA:#Q@&($0^V%H/!`832#X1'`0``#[;".<,/A-$```"`^EQUVHU&`8E% -XMT`^V5@$/ML(YPP^$J@```(#Z7`^$EP````^V%HMUT.NZH0@A"0CW1)@T``4` -XM``^$7O___Y#'1"0("@```(MUM(M&((M`$(D\)(E$)`3HD[T``+@!````@\1L -XM6UY?7<.+5;2+0B"+`(D\),=$)`@8V0@(QT0D!`,```")1"0,Z$+R_O^#Q&RX -XM`0```%M>7UW#QT0D"`0```"+0B"+`(D\)(E$)`3H/+T``+@!````ZZ?&`5P/ -XMME8!@\$!@\8"Z1G___^+=N!```0`^$&@,``(M'3(E%Y(M'4(E%Z(U%Y,=$)`P!````B40D -XM",=$)`0G````B3PDZ";B_O^%P'08N`$```#I*O___XMUS(GQ#[;".<-UD>N, -XMQT0D!(0```#'!"0!````Z&I&_O^%P(E%N`^$^0(``(M-N(M%N(/!/(E-O(E( -XM/(E(0(M5M(M"=(GRBP`K$(M`""G0A<")1?!U#+Y+C0@(QT7P`0```(M%\`'` -XMB00DZ)Q'_O^+3;B%P(E!$`^$J`(``(M5N(E"2(M%\(E"3(M-N(G"`U$0B70D -XM!(E$)`B)%"3HFD?^_XMUN,=&1`````"#?;`!&<"#X/R#P`@(1E"+1Q"+4'R% -XMTHD6=`F+0'R)<`2+1Q"+5;B)4'R+1Q"#P'R)0@2+3;2+662+<6PY\XEUQ`^' -XM?P(``,=%P`$```#'1R)5"00B4PD#,=$)`@!````B5PD!(D\).A+N_[_ -XMA<`/A?']__^+=?"-1=3'1=0`````QT78`````,=%X`````")==R-M[````#' -XM1"00!````(E$)`S'1"0(`````(M%[(DT)(E$)`3HP$+^_X7`#X2O_O__@_@! -XM=!6)="0(B40D!(D\).@/5P``Z9O^__^+5;"%T@^$Z_[__^F+_O__B5H,Z=[^ -XM__^)03SIT/[__XV'L````(E$)!2-A\0```")1"00C8?`````QT0D&`(```") -XM1"0,*TW,B4PD"(M5S(D\)(E4)`3H;E<``(7`#X4D_?__QX>L`````0```.GF -XM_/__C8>P````QT0D&`(```")1"04QT0D$`````#'1"0,`````(N'Q````(E4 -XM)`2)/"2)1"0(Z!]7``"%P`^$IOS__^G0_/__QT0D"`````#'1"0$!0```(D\ -XM).A:[O[_N`$```#IXOO__XM%N(L0A=)T!HM`!(E"!(MUN(M&!(D0BT80B00D -XMZ$)%_O^)-"3H.D7^_\=$)`0"````B3PDZ%8S__\QP.FA^___QT0D"`8```#' -XM1"0$`````(D\).@7N0``N`$```#I?_O__XVV`````(V\)P````!5N0$```") -XMY8M%"(M5#%WI'/K__XVV`````(V_`````%6)Y8M5#(M%"%T/MDI]@^$!Z?KY -XM__^0D)"0D)"0D)"058GE@^P8BT4(B5WTB7W\BWT,B77XBW`0BT9\C9Z````` -XMBU`4A=(/A80```"#?1@!&<#WT"4`:`(`B8.`````BT4Q=PS'`QT,(```` -XM`.OHD(UT)@#'1"0$A````,<$)`$```#HT$'^_X7`=$V)PXM&?(7`B0-T!HM& -XM?(E8!(U&?(E>?(E#!.E%____BT44B40D"(M%$(E$)`2+10B)!"3HT%___X7` -XMB4,0#X5%____N`$```#I?O___XM%",=$)`@`````QT0D!`4```")!"3H<.S^ -XM_[@!````Z5G___^-M@````!5B>6![#@$``")5"0$B5WTB=.)=?B)SHE]_(G' -XMB0PDZ*`__O\QTH7`=!:+7?2)T(MU^(M]_(GL7<.-M"8`````Z/]#_O^+50B% -XMT@^$Q@```(M+#(7)#X6[````#[=#"+H"````J!)TPKL"````C47PB40D"(ET -XM)`2)/"3H8-_^_\=$)`0O````B30DB87@^___Z#X^_O^%P`^$!`$``(/[`0^$ -XMP`````^"DP```(/[`G4BBY7@^___QT0D"%C:"`C'1"0$`P```(D\)(E4)`SH -XMC.O^_XM-\+H!````A_O__C47LB70D!(E$)`B)/"3H#=[^_X/[`8G^```` -XM#[__^)="0,QT0D"%S9"`C'1"0$`P```(E$)!")/"3H6NK^_XM=[(7; -XM#X3#_O__A?]T#8M'$(7`=`8[<'20=&*)-"3H2D'^_^FE_O__@_L"==*+A>#[ -XM__^)="0,QT0D"+S9"`C'1"0$`P```(E$)!")/"3H!NK^_^NJBY7@^___B40D -XM#,=$)`B0V0@(QT0D!`,```")5"00B3PDZ-[I_O_K@H&@5`@``/_^___I0?[_ -XM_XVV`````(V\)P````!5B>6![,@```")7?2-G5C___^)=?B)UHE]_(G'C47L -XMB40D&(D<),=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D!#8` -XM``#H7;<``(DT).@I0?[_B70D"(D<)(E$)`R-1=R)1"0$Z.ZR``")7"0$B3PD -XMZ")/``"+7?2+=?B+??R)[%W#D(UT)@!5N9;:"`B)Y8'LZ`0``(EU^(MU"(E] -XM_(U]E(GZB5WTB?#'1"0$`````,<$)`$```#HF_S__X/X`@^$4@$``(M&$(M` -XM?(M`%(7`#X5B`0``]X:L!`````8``'05,<"+7?2+=?B+??R)[%W#C;8````` -XMQP0DH]H(".BX./[_A<")PP^$50$``(D$).AF0/[_QT0D%`````#'1"00`0`` -XM`(E<)`C'1"0$H]H("(DT)(E$)`SHVOK__X7`#X7(````BT80BT!\BT`4A<`/ -XMA>\```#WAJP$````!@``=8#VAJ@!```!#X3C````BX:@`0``C01`P>`"`T80 -XMBW@XA?\/E<"$P`^$5/___XV=-/___[FKV@@(B=J)\,=$)`0`````QP0D```` -XM`.BF^___A<`/A?P```"YG=H("(G:B?#'1"0$`````,<$)`````#H@?O__X/X -XM`@^%VP```(N%-/___SM%E'4/BX4X____.T68#X3!````NIW:"`B)\.CR_?__ -XMA<`/A*T```"X`0```.G-_O__NI;:"`B)\.C4_?__A_O__B30DZ.=H___ID?[__XDT).C::/__Z03___^+GJ`!``"%VP^5P.DD -XM____QP0DI-H(".A--_[_A<")PP^$C0```(D$).C[/O[_QT0D%`````#'1"00 -XM`0```(E<)`C'1"0$I-H("(DT)(E$)`SH;_G__X7`#X25_O__Z5C___^#^`)T -XM((M&$(M`?(M(%(7)#X07_O__B30DZ%1H__\QP.D*_O__BX4T____.T64=0N+ -XMA3C___\[19ATRKJKV@@(B?#H^_S__X7`=+KI"/___\<$)+^Z"`CHJC;^_X7` -XMB<,/A"K^__^`.``/A"'^__^)1"0,C84T^___QT0D$*O:"`C'1"0(N90(",=$ -XM)`0`!```B00DZ`T[_O^-C33[__^)^HGPQT0D!`$```#'!"0`````Z.OY__^% -XMP'5(C84T^___QT0D$)W:"`B)7"0,QT0D"+F4"`C'1"0$``0``(D$).C!.O[_ -XMC8TT^___B?J)\,=$)`0!````QP0D`````.B?^?__@_@"#X6$_?__C94T^___ -XMB?#H*?S__X7`#X1O_?__Z3+^__^-M@````"-OP````!5B>6#?0P^BT40=`1= -XM,<##B44,7>D7@```C;0F`````%6)Y8/L&(EU^(MU"(E]_#'_B5WTBYZ8```` -XMA=MT4_:&KP0```%U:3'_B30DZ&^C__^%P'52BT,LA)]HDT)&:_`0#H9"L``(7`=8GK -XMA8VT)@````"-O"<`````58GE@^P8QT0D!#P$``")7?2)=?B+=0B)??R+?0S' -XM!"0!````Z,LY_O^%P(G#=&*)AY@```")`XE#!,=`"`````"-0`B)0PPQP(7V -XMQT,0`````'0PBX:8````BT`8AQ=P\=$)`@`````QT0D!`4```")-"3H -XM5^3^_[@!````Z]3'1"0(`````,=$)`0%````B3PDZ#CD_O^X`0```.NUD%6) -XMY5=64X/L3(M%"(M`'(7`#X1Z!0``BW4,BT9D@\`!B40D!(M%"(D$).A1L?[_ -XMA<`/A,P$``"+10B%P'07BTT(BUD0A=MT#?:#50@```$/A.<$``"-1?#'1?`` -XM````QT0D#``!``")1"0(QT0D!`````"+=0B)-"3H4EC__X7`B478#X1"!0`` -XMBTT,]D%\!'0$@T%L`8MU#(M&9(M6;(G'.=")5>`/A!$%```Y1>#'1=0!```` -XM#X*F`0``QT7(`````,=%S`````"-M@````"-1>R-5>B)1"00B50D#,=$)`@` -XM````B7PD!(M-"(D,).CKKO[_A<`/A2X$``"+1>R%P`^$2`$``(M5S#';C50" -XM`HM%"(E5S(7`#X2T`0``BTT(BUD0A=L/A*8!``"+1=@Y0W0/A)H!``"+5R%]HEU -XMQ(EUO'1EBTWH#[X!B`/AG3^__^+=0R+1F2+50B)0DR+30R+<62+66PYWG(6Z3<" -XM``"-M@````"#ZP$YW@^#)@(``(E<)`2+10B)!"3H%K;^_X7`=.*+50B%TG06 -XMBU4(BT(0AR+30@IT(/H`8E!4#M]X,=%U``````/AJ+] -XM___I*?___XM-Z(E$)`B)3"0$BT7R+5>@!1=P!1<@/OG00 -XM_^G(_O__BTWH@#DI#X2E_O__B70D!,<$)-/:"`CH*3/^_\=%T`````"%P'07 -XMBT7R#P@<@!B57_/__ -XMC4-XB50D#(E$)`B+0W2)1"0$BTT(B0PDZ$Q4__^%P`^$/P$``(E#=.E5_O__ -XMB57$QT70`````(M%Q.F0_O__B57$BT7$Z87^__^+3=2%R0^$J````(M%"(7` -XM=!:+50B+0A"%P'0,BTW8.4AT#X0]`0``BW78B30DZ&`V_O^+50R+30B+0FP# -XM06B#P`$K0F2)06B#Q$PQP%M>7UW#QT0D"+3:"`C'1"0$`P```(M5"(D4).@2 -XMW_[_@\1,N`$```!;7E]=PXMU#(U'_XE&;(M&9.DF_?__@7MX_P````^&C``` -XM`(M3=(E5V(M#>(E%\(&+5`@````!``#I)?O__XM5V"E5W(M-W(ET)`2)5"0( -XMB4PD#(MU"(DT).@,K_[_A<`/A##____I#?W__\=$)`@$````BU4,BT(@BP") -XM1"0$BTT(B0PDZ*"I``"#Q$RX`0```%M>7UW#C4@!B4W@B4YLZ>'Z__^X`0`` -XM`.GV_/__C4-XQT0D#``!``")1"0(BT-TB40D!(M%"(D$).C:4O__AR+`8E%\`^V.(GZ@/HC#X2@````@_L!=$Z+ -XM5@3'1"0@"````(E<)!R+0@B)1"08BP*+50B)1"04BP:+0`B)%"3'1"0(```` -XM`,=$)`0`````B40D$(M%\(E$)`SHUC+__XG"Z6[___^+1?"`>`$`=:F)^H#" -XM`0^$A`$``(M-"(M1$(GY#[;!#[:,`E,'``"#^0P/AQ0!``"X`0```-/@J8`2 -XM```/A0T!``"+30R+<73I9?___XM-\`^V40&#^G\/AU#____V!)7=%`D(!`^$ -XM0O___P^V00(/MM"#^G]V%^L?C;8`````#[9!`P^VT(/Z?W<-@\$!]@25W10) -XM"`1UYX3`#X4-____BU8$QT0D(`D```"+3?")7"0?[__XM5"(M"$#'2B["`"```A?8/A&/^__^+10R+2'2+402+0@B)1"04 -XMBP*+5?")1"00BP&+30B+0`B)5"0(B5PD!(D,)(E$)`S_UHG"Z2K^__^+50R+ -XM@@! -XM="/'1"0(6-L(",=$)`0#````B1PDZ&G:_O^X`0```(/$%%M=PXU!9,=$)`P! -XM````B40D"(L"#[8`B1PDB40D!.B^RO[_@\046UW#QT0D"`0```"+02"+`(D< -XM)(E$)`3H/Z4``+@!````Z[20D)"0D)"0D%6)Y8'LB````(E=](M=#(EU^(E] -XM_(M#>,=%D)W:"`B%P'0F@^@!=`CHERO^_XUV`(M#=(L`BP")19")1"0$BT4( -XMB00DZ%=R_O_V0WT!=1J-192)1"0$BT60B00DZ!,M_O^%P`^$D0$``(M%D,=$ -XM)`BD`0``QT0D!`$&``")!"3H4"_^_X7`B<,/B#@!``#'1"0$&O<("(D$).CV -XM+?[_A<")QP^$>P$``(E$)`2+10C'1"0,`````,=$)`B"VP@(B00DZ$DR__^% -XMP`^%X0```(L=H!0)"(7;#X7#````]D<,0`^%R0```(M%",=$)`P!````QT0D -XM"([;"`B)?"0$B00DZ`HR__^%P`^%H@```(L-H!0)"(7)#X48`0``]D<,0`^% -XMB@```(M%",=$)`P"````QT0D")/;"`B)?"0$B00DZ,LQ__^%P'5GBQ6@%`D( -XMA=(/A?0```#V1PQ`=5.+10B)?"0$B00DZ*0&__^%P'5`H:`4"0B%P`^%Z``` -XM`/9'#$!U+8D\).B)+_[_A<`/A.@```#H?"S^_XLPZR.-="8`B3PDZ*PM_O^% -XMP`^$-____^A?+/[_BS")/"3H52_^_^A0+/[_B3"+19#'1"0,GZT(",=$)`0% -XM````B40D"(M%"(D$).@XW?[_N`$```"+7?2+=?B+??R)[%W#BT60QT0D#+#; -XM"`C'1"0$`P```(E$)`B+10B)!"3H!-W^_[@!````Z\KH["O^_XLPB1PDZ'(L -XM_O_KBXD\).@8+?[_A<")]@^%:O___^G;_O__B3PDB?;H_RS^_X7`#X53____ -XMC78`Z?C^__^)/"3HYRS^_X7`D`^%.O___^D(____BT60QT0D#)G;"`C'1"0$ -XM!````(E$)`B+10B)!"3H@]S^_S'`Z4G___^0D)"0D)"0D)"0D)!5B>575E.# -XM[$R+30B+10R+41R%T@^$:`,``(M(;(MP9(E-V(M`5#GPB47<#X.S`0``BUHX -XMQT74`````(7;=0CK/8L;A=MT-X![$">0C70F`'3OBT,(.?!RZ#E%W'+C@&,1 -XM_8E<)`2+50B)%"3H[[7^_\=%U`$```"+&X7;=7UW#.<@/AT7^___'1"0(X-L(",=$ -XM)`0#````BT4(B00DZ%G5_O^#Q$RX`0```%M>7UW#B?.+==R)3>"-="8`@VW@ -XM`8-]X/\/A`P"``"-3>R-1>B)3"00B40D#,=$)`@!````B5PD!(M5"(D4).B] -XMH/[_A4_?__Z<#^__^-0WC'1"0,``$` -XM`(E$)`B+0W2)1"0$BU4(B10DZ(M(__^%P`^$6O[__XE#=.NFQT0D"`0```"+ -XM0""+`(D,)(E$)`3HY9X``+@!````Z3?^__^+1=R+5=PK1*O[_BT4(BU77UW#BU4,@$W@`8M"5,=%Z`````")1>2-1>R) -XM1"00C47DB40D#(U%R,=$)!0!````QT0D"`````")1"0$B3PDZ,<+__^%P'6A -XM`W7L,=LK=<#'1U``````B7=,ZY+'1"0(!````(M5#+L!````BT(@BP")/"2) -XM1"0$Z/Z<``"#Q$R)V%M>7UW#D)"0D%6)Y8/L&(M5"/:"L`(```%T/HN"J`(` -XM`(T$0,'@`@-"$(M(.(7)#Y3`A,!T,L=$)`@,W`@(QT0D!`,```")%"3HB]'^ -XM_[@!````R<.-="8`BX*H`@``A<`/E,"$P'7.QT0D"$C<"`C'1"0$`P```(D4 -XM).A9T?[_N`$```#)PY"058GE@^PHB77XBW4,B7W\BWT(B5WTBT9TBQB+`XD\ -XM)(E$)`3HN&G^_P^W1GR)/"0E``$``(E$)`3HD(VT)@````!5B>53@^PDBUT(BT,_O^%P'00N`$```"#Q"1;7<.0C70F -XM`,=$)`0(````B1PDZ+`\__^%P'757,?]64X/L#(MU#(M% -XM"(`^`(N8F````'1IQT7P`````.LEBX,T!```#[84-XA4#P`&`^@J)@S0$ -XM``!T(H/'`8`\-P!T*8&[-`0````$``!VSXM%"(D$).A/____Z\*#QP''1?`! -XM````@#PW`'77BT7PA6#[#B+ -XM10B)??R)7?2)=?B+L)@```"-11")1?"+GC0$``")1"0,BT4,B40D"+@`!``` -XM*=B)1"0$C40>-(D$).AN(/[_B<>-!!B`?#`S"HF&-`0``'0'/0`"``!V"XM% -XM"(D$).BV_O__B?B+7?2+=?B+??R)[%W#C;0F`````%6)Y5=6B<93@^PLB4W@ -XMBTT,B57D]H`X`@```0^$`0(``(M0$(N`,`(``(T$0(M$@CB%P`^5P(3`=`.` -XMS03VAM`#```!#X3*`0``BX;(`P``C01`BT2".(E%\(M5X('A``0``(L:B4W< -XM@VT(`8-]"/\/A(\!``"+3>0/M@$\"0^$\P```#S_#X2I`0``BU80#[;`C01` -XM`<"-C`)8`0``B4WH#[:4`ET!``")5>R+31"%R74.BWWL`=\[?C@/@IP```"+ -XM5>PQ_X72=7?IGP```)"+11"%P'4'BU7H#[8$%XE$)`C'1"0$BNP("(DT).B. -XM_O__BT80]H!4"```!`^%`P$``,=$)`P!````QT0D"`````#'1"0$`````(DT -XM).A^D?[_AQT+3E>.'6*QT0D -XM!":Z"`@QVXDT).B8_?__Z7/___^+1>B)^XDT)(E$)`3H@OW__X-%Y`'I\?[_ -XM_XM]W(7_#X4*____.UXX<^`QP(D9@\0L6UY?7<.+AL@#``")1?#I./[__XN`,`(``(M6 -XM$(7`#Y7`Z0'^___'1"0$_P```(DT).@;B/[_QT0D!/\```")-"2)1>CH"(K^ -XM_XE%[.E,_O__58GE5U93@^PLBUT(QT7L`````(MU#/:#F`(```$/A($```"+ -XM@Y`"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=#&-3>RZLMP("(G8QT7PLMP(",=$ -XM)`@`````QT0D!`````#'!"0(````Z#7]__^%P'4HC57PC47HB40D$(E4)`S' -XM1"0(`0```(L&B1PDB40D!.@ME_[_AS'1"0$`````(M&!(GYB00DB=CHROS__X7` -XM=;V+5?"+11`#5@2)5?"+2`2+1@2^`0```#G!=`2)SBG&B?F)V,=$)`A>```` -XMQT0D!`````")-"3HB_S__X7`#X5Z____BT,0]H!4"```!`^%:O___\=$)`P! -XM````QT0D"`````#'1"0$`````(D<).CSCO[_A____\=$)`0FN@@(B1PDZ"KZ__\QP.EF____ -XMC78`QT0D"`````"+11B-312)%"0E``0``(E$)`2+50R)V.@,^___A<`/A"G_ -XM__^#Q!2X`0```%M=PXM#$/:`5`@```0/A1K____I3/___XE$)`2-312Z+?`( -XM"(G8QT0D"`````#'!"0!````Z,+Z__^%P`^$,/___^NTD(VT)@````!5B>57 -XM5E.#[#R+=0B+?1B+1AR%P`^$@P$``(M%$(M5%(L8BQ(YTXE5S`^'5P$``(GX -XM)0`"``")1=#IX````(GVQT7HPMP("(M5Z(U-\(GPQT0D"`````#'1"0$```` -XM`,<$)`@```#H1?K__X7`#X4=`0``C47LB40D$(U%Z(E$)`S'1"0(`0```(E< -XM)`2)-"3H.Y3^_X7`#X7S````BU7LA=)U#/?'``0```^$M@```(E\)!"+1?") -XM5"0(B40D#(M%Z(DT)(E$)`3H\OW__X7`#X6Z````BT80]H!4"```!`^%H``` -XM`,=$)`P!````QT0D"`````#'1"0$`````(DT).A*C/[_A -XMB5PD#,=$)`B[W`@(QT0D!`H```")%"3H:1S^_XU%WHE%Z.GA_O__QT0D!":Z -XM"`B)-"3H*OC__XM&$/:`5`@```0/A&#___^#Q#PQP%M>7UW#N`$```"#Q#Q; -XM7E]=P\=$)`@$````BU4,BT(@BP")-"2)1"0$Z(>2``"X`0```.O558GE5E.# -XM[""+70R+=0@/MT-\B5PD!(DT)(E$)!"-0VR)1"0,C4-DB40D".@0_O__N@$` -XM``"%P'4.BT-L,-*)1DR+0W")1E"#Q"")T%M>7<-5B>564X/L((M=#(MU"`^W -XM0WR)7"0$B30D@,P"#[?`B40D$(U#;(E$)`R-0V2)1"0(Z+K]__^Z`0```(7` -XM=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PXUV`(V\)P````!5B>564X/L((M= -XM#(MU"`^W0WR)7"0$B30D@,P$#[?`B40D$(U#;(E$)`R-0V2)1"0(Z%K]__^Z -XM`0```(7`=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PY"0D)"0D)"0D)!5B>53 -XM@^PTBUT(BTT,BT,575E.#[#R+?0B+1Q")1=2+112+EY@```")5="+ -XM,,=%V`````#'1=P`````QT7@R]P(".G/````C;8`````BUW8NA^%ZU&#PP&) -XMV/?BP>H%:])D.=-U=XM'$/:`5`@```0/A;X```#'1"0,`0```,=$)`@````` -XMQT0D!`````")/"3HUXC^_X7`=1"+1Q#V@%0(```$#X6*````BT4")/"2)1"0$_]+'1>``````BT7P -XMBU70B40D$(M"+(ET)`C'1"0$`0```(D\)(E$)`SH.Y?^_X7`#X7L````BT7P -XM@\8!`47R)1"0(BT4,B3PDB40D!.@IM_[_ -XMBU7R%TG08A?]T#(M'$(7`=`4[6'1T>XD<).AR&O[_,=OK28M%$(D$).B3&/[_ -XMA<`/A%G___^+50R[`0```,=$)`R?K0@(QT0D!`4```")/"2)5"0(Z#/(_O^+ -XM11")!"3H'!K^_XM%'(7`=1R+5=3'1"0(`@```,=$)`0`````B3PD_Y)H"``` -XM@\0\B=A;7E]=PX&@5`@``/_^__\QV^O,C;8`````C;PG`````%6)Y8'LJ``` -XM`(E]_(M]"(E=](M5##';B77XBT<0B85X____BT)XAL -XM!```J`(/A:D"``"+10SV@((````@#X0C`P``BT!TBP28BP#'1"0$(+H("(D\ -XM)(E$)`CHW_'__XD\).CW\/__BX>L!```J!!U"PT```@`B8>L!```J`)T)HN5 -XM>/___\=$)`0!````B3PD_Y*@"```A<`/A2$#``"#CZP$```4BU4,QT0D&`(` -XM``"+0G2+E73___^+!`*+`,=$)`P`````B3PDB40D%(U%Z(E$)!"+10R#P&2) -XM1"0(BT4,B40D!.A#P___A<`/A1,!``"+50PQR8.*@````$"+5>CVAZP$```" -XMB5=,#X2M````QT=0`````(U'4(E$)`B)5"0$B3PDZ-(S__\QR>F,````BX5\ -XM____BU4,B70D"(D\)(E$)`R)5"0$Z&Z1__^%P`^%K@```(M5#(M">(7`>!*# -XM^`$/CB+]__^#^`(/A)\!``"+50S'1"0(`0```(M"=(L`BP")/"2)1"0$Z+R* -XM``"Y`0```.LFD(UT)@#'1"0,GZT("(ET)`C'1"0$!0```(D\).B$Q/[_N0$` -XM``"+7?2)R(MU^(M]_(GL7_S__XM5#(M"9`-%\(E'3.D`____BX=<`P``BY5X____ -XMC01`BT2".(7`#Y7`Z>7[__^+50SV@H(````@#X2!_?__BT)TBP28BP#'1"0$ -XMU=H("(D\)(E$)`CH5J(!`(N'K`0``.E:_?__BU4,BT)TBU`$BT<@BS(/MT`8 -XM)80```"#P(`/A*````")="0$B3PDZ']6_O_INOO__XD<).CV$_[_B?;IS/[_ -XM_XM5#,=$)`@)````BT(@Z1[^___'1"0$);H("(D\).@X[O__Z>3\__^)="0, -XMQT0D"#3="`C'1"0$`P```(D\).B7O?[_Z;#^___'1"0("@```(M"((M`$(D\ -XM)(E$)`3HF(@``+D!````Z?_]__^+50S'1"0(`P```(M"(.FQ_?__BT((B70D -XM!(D\)(E$)`CH>##__X7`B<-T%(M'((M`"(D$).A(%/[_BT<@B5@(BT<@9H%@ -XM&#__BT<@9H-(&`R+5Q#'1"0(`0```(M'((M`"(D\)(E$)`3_DIP(``#IROK_ -XM_\=$)`@`````QT0D!`4```")/"3HXKS^_[D!````Z6G]__^0D)"0D)"0D%6) -XMY5=64X/L+(M]"(M'$(MP$(U0$(E5Y#G6#X39````QT7H`0```,=%[`````#' -XM1?``````ZT&#?>@!=!?'1"0$TM0("(D\).@#[?__QT7P`0```(M&((M`"(D\ -XM)(E$)`3HZNS__XLV.77D#X2O````@T7H`8M'$/:`5`@```0/A8P```#'1"0, -XM`0```,=$)`@`````QT0D!`````")/"3H6X#^_X7`=0R+1Q#V@%0(```$=5R+ -XM1B"+0`B)!"3HT1/^_XM=\`'#`5WLBT7UW#C78`C;PG`````%6)Y5.#[!2+30R+70@/MT%\@^`<@_@, -XM=%>#^!1T,H/X!+H"````="W'1"0("@```(M!((M`$(D<)(E$)`3H+H8``(/$ -XM%+@!````6UW#C78`N@$```")5"0(BT%8B1PDB40D!.A(Z@$`@\046UW#B?8Q -XMTNOAC;8`````C;\`````53'`B>564X/L((M5#(MU"(N:@````(M*>('C``$` -XM`(7)=`>+0G2+`(L`B40D"(U%](E<)`R)1"0$B30DZ-_T`0"Z`0```(7`=18P -XMTH7;=!"+1?2!CJP$````$```B484@\0@B=!;7EW#C;0F`````%6)Y5WIQ^\! -XM`)"0D)"0D)!5B>56B=93BY"`````B0` -XM````BU@(N`$````Y^W1),?;V@Z\$```!=#6+@X````"+2`2X`0```(G*@^$? -XMP>H%T^`)A)58____BX.`````BT`$.?!^"8G&C;0F`````(L;.?MUO(U&`8U5 -XMX(E4)!"-E5C____'1"0,`````,=$)`@`````B50D!(D$).C"!_[_@_C_=!&% -XMP'4U,<"!Q%P!``!;7E]=PXD<),=$)`B*W0@(QT0D!`4```#H8+?^_X'$7`$` -XM`+@!````6UY?7<.+A;S^__^+<`@Y_@^$"O____:&KP0```$/A`H!``"+AH`` -XM``"+2`2)R(/A'\'H!8N$A5C____3Z*@!#X3H````C57PB50D!(DT).CQA/[_ -XMA<`/A<<```"%]@^$V````(M>$(7;#X3-````]H-5"````0^%P````(%[>/\# -XM```/AFX#``"+0W2)A<#^__^+0WB)1>R!BU0(`````0``BYW`_O__BY:````` -XMB=B#P`&)ES'1"0,``0``(E$)`C'1"0$`````(DT).B3*O__ -XMAS'1"0$_P```(DT).C0=?[_@_@(#Y3"@_@,#Y3`Z[['1"0(A-T("+L!```` -XMQT0D!`4```")-"3HU;3^_^ER_O__.=@/AAL!```IV(G:B87$_O__C47HB00D -XMBXW$_O__B?#H6_K__X7`=`N+3>B%R0^$J0```,=%V`````"X(````,=%W*"& -XM`0#'A(74_O__`````(/H`77PBY7(_O__N`$```"+2@2)RH/A'\'J!=/@"825 -XMV/[__XU%V(E$)!"-A=C^___'1"0,`````,=$)`@`````B40D!(N5R/[__XM" -XM!(/``8D$).A9!/[_@^@!=2V+A<3^__^)7"0$B40D"(N5P/[__XD4).CH"?[_ -XMBYW`_O__`YW$_O__Z5W]__^+C<3^__^)VHGPZ/3Z__^%P`^%JOW__XM%\(U0 -XM`8E5\(N5Q/[__XE<)`R)1"0(QT0D!`$```")5"00B30DZ+&&_O^%P'4VBT7P -XMB49,BY7$_O__@^H!@[W$_O__`1G`]]`APHE64,=$)`0!````B30DZ%ZV`0") -XMP^D9_?__NP$```#I#_W__X&@5`@``/_^___I*/W__XU#>,=$)`P`!```B40D -XM"(M#=(DT)(E$)`3HX"?__X7`#X0&_?__B4-TZ63\__]5B>6#[$B)=?B+=0B- -XM1?")7?2)??R)1"0$B30DZ/^`_O^%P'0;NP$```")V(MU^(M=](M]_(GL7<.- -XMM"8`````C47DB40D$(M%\(U]V(E\)`S'1"0(`0```(DT)(E$)`3H>W[^_X7` -XM=;R+3>2-1>"+5=B)!"2)\.AD^/__A$(7; -XM#X3<````]H-5"````0^%SP```(M%Y(/H@#M#>`^'E0$``(M3=(E5T(M#>(E% -XM[(&+5`@````!``"+1>2)1"0(BT78B40D!(M%T(D$).@O"/[_QT7,`0```.L) -XMB?;'1")!"2)\.@%]___AB+1>B+OH`` -XM``")1"0(BT78B40D!(M'!(D$).C``/[_.T7HB<-T9X7;=%;'1"0(A-T(",=$ -XM)`0%````B30DZ/FP_O_I`____X&@5`@``/_^___IW_W__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AK)?__A<`/A+C]__^)0W3I0?[__^BZ!/[_QP`%````ZYW' -XM1"0(`0```,=$)`0FN@@(BT<$B00DZ#<`_O^#Z`$/A77___^+?$(7;=%N+5=`Y4W1T4XM%Y`-%Z#M%['=UBT7H,=N)1"0(BT78 -XMB40D!(M%T`-%Y(D$).@E!O[_BT7D`T7HB30DB40D#(M%T(E$)`B+1?")1"0$ -XMZ(&`_O^%P`^5P^DV_O__@:-4"```__[__XM%Y`-%Z#M#>'="BT-TB470BT-X -XMB47L@8M4"`````$``.N+BU70B40D#(U%[(E$)`B)-"2)5"0$Z'`D__^%P`^$ -XMO?S__XE%T.EA____B40D#(U#>(E$)`B+0W2)-"2)1"0$Z$8D__^%P`^$D_S_ -XM_XE#=.N7B?:-O"<`````58GE5U93@>S,!```BU4(BT4,]H*L!````@^$"@(` -XM`(M0>(72=!.)1"0$BTT(B0PDZ&NN__^%P'4?QT0D"`````#'1"0$-````(M% -XM"(D$).@\N/[_A% -XM8/O__ZO="`BX<````+^QW0@(HO@0"0CI@P```,8%]1`)"'3H8`7^_XN55/O_ -XM_\<$)/`0"0B)5"0(B40D!.B6!?[_QT0D!)`!``#'!"3P$`D(Z.($_O_'!"3P -XM$`D(Z,8"_O_'1"0(`````,=$)`0"````QP0D\!`)".BJ`_[_@_C_B<8/A2(! -XM``")'"3H9P+^_P^V!X/'`83`#X3A````Q@7U$`D(<`^V1__'1"0(`````,=$ -XM)`0"````QP0D\!`)"*+Y$`D(Z%T#_O^#^/^)PP^%1O___^B-`?[_@S@"=;'' -XM1"0(7`H)",=$)`0%````BT4(B00DZ&FM_O_K0\=$)`@`W@@(QT0D!`,```") -XM%"3H3ZW^_X'$S`0``+@!````6UY?77UW#BXU@^___#[9!`8/!`8F-8/O__X3` -XM#X5R_O__Z,@`_O_'``(```#I-?___XN-3/O__XE!"(G(@\`4B5D$=!#'1"0$ -XM\!`)"(D$).BJ!/[_BX50^___A`'^_\=$)`@!````QT0D!,?="`C'!"3.W0@(Z%P!_O_'1"0(`0```,=$ -XM)`3-H0@(QP0DUMT(".A``?[_Z`L"_O_'1"0(`````,=$)`1A=``@BXU,^___ -XMBT$(B00DZ`K]_?^+E4S[__^+0@2)!"3H.0#^_\=$)`0`````BXU,^___BT$( -XMB00DZ,#\_?_'1"0$`0```(N53/O__XM""(D$).BG_/W_QT0D!`(```"+C4S[ -XM__^+00B)!"3HCOS]_XN53/O__XM""(D$).C=__W_BTT(]H%P`P```0^$V@$` -XM`(N!:`,``(T$0,'@`@-!$(M8.,=$)`0O````B1PDZ`O^_?^)VH7`=`.-4`&) -XM5"0$QT0D#`````#'1"0(G-X("(D<).@6_/W_QT0D#.FY"`B)7"0(QT0D!`4` -XM``"+50B)%"3HXZ_^_\<$)'\```#HRP#^_\=$)`@`````QT0D!`4```"+50B) -XM%"3HK*K^_[@!````Z6_[__\QP(VU:/___\=$AGP`````@^@!@_C@=?"+30BX -XM`0```,=%Z`4```#'1>P`````BXF`````B8U8^___BTD$BB)5"00QT0D#`````#'1"0(`````(ET)`2+C5C[__^+002#P`&) -XM!"3H6?K]_X/X_P^$Z````(7`#X3#````C85H^___B85$^___B<.+A43[__^) -XM7"0$*=@%``0``(E$)`B+E5C[__^+0@2)!"3HY`'^_X/X_P^$KP$``(7`#X6[ -XM````QT0D".W="`C'1"0$`P```(M-"(D,).BTJ?[_BT4(B00DZ/GO__^X`0`` -XM`.EL^O__QT0D"&.+"`C'1"0$!0```(M%"(D$).B$J?[_Z5O\___'1"0(UKD( -XM",=$)`0%````BU4(B10DZ&2I_O_I._S__XM%"(N8:`,``.DJ_O__QT0D"-S= -XM"`C'1"0$`P```(M-"(D,).@VJ?[_ZX#'1"0(BMT(",=$)`0%````BU4(B10D -XMZ!FI_O_I8/___P'#.9U$^___#X,Q`0``C95H^___C;UI^___B95<^___ZV:- -XM3?")3"0$BT4(B00DZ-!V_O^%P`^%)/___XU'_RN%7/O__XE$)!"+E5S[__^) -XM5"0,BT7PQT0D!`````")1"0(BTT(B0PDZ*=[_O^%P`^%Z_[__XF]7/O__XGX -XM@\EC____BU4(BT(0@+A2!P``_W6MB10DQT0D!/\` -XM``#H!FG^_X/X"`^4PH/X#`^4P.O"QT0D"(3="`C'1"0$!0```(M%"(D$).@- -XMJ/[_Z53^__\YA43[__]S*RN=7/O__XV5:/O__XE<)`B+A5S[__^)%"2)1"0$ -XMZ,+]_?^-C6C[__^-'!DYG43[__\/A,/]__^-1>C'1>@`````QT7LH(8!`(E$ -XM)!#'1"0,`````,=$)`@`````B70D!(N56/O__XM"!(/``8D$).C`]_W_@_C_ -XM#X23````@^@!#X1T_?__C47PB40D!(M%"(D$).A8=?[_A<`/A:S]__\KG43[ -XM__^-E6C[__^)5"0,B5PD$(M%\,=$)`0`````B40D"(M-"(D,).@R>O[_A<`/ -XMA7;]__^+10B)V8V5:/O__^@J[O__A<`/A=KW__^+50B+0A"!BJP$```````! -XM@XA4"```(#'`Z<'W__^-="8`QT0D"(K="`C'1"0$!0```(M-"(D,).C5IO[_ -XMZ1S]__]5B>6#[!B+50R+30B+0GB%P'44QT0D!`(```")#"3H/;/^_S'`R<.+ -XM0B"+0!")1"0(BT)TB0PDB40D!.A@O/[_R87`#Y7`#[;`PY"0D)"0D%6)Y5=6 -XM4X/L/(M]#(M=$(UU[.AM^OW_QP``````QT0D"`````")="0$B3PDZ//V_?^# -XMP`%U-.A)^OW_@S@$B?9TT,=$)`@TW@@(QT0D!`4```"+10B)!"3H(Z;^_[@! -XM````@\0\6UY?7<.+5>R)T(/@?X/X?P^$O0$``(7`#X3^````BWT8A?]T#(/X -XM#8UV``^$H@$```^V`SP@#X2'`0``/`D/A'\!``"-1?"_/-X("(E<)`2)1"0( -XMBU4(B10DZ#R9_O^)!"2)P^AV_?W_B<:+1>R$P'@%OT^-"`B)PKB@X`@(@^)_ -XMZPX]F.$("`^$3P$``(/`"#L0=>Z+0`2#_A2Z/O$("'<%ND^-"`B#_A2)1"08 -XMB?")?"0EF_O__@\,!Z5____^#Q#PQP%M>7UW#B50D#,=$)`A*W@@( -XMQT0D!"@```#'!"1`(0D(Z,+X_?^X0"$)".F1_O__N4^-"`CI9?___X&@5`@` -XM`/_^__^X`0```.G8_?__C;8`````58GE4X/L%(M%"(M8$,=$)`@`````QT0D -XM!#0```")!"3HRZS^_[H!````A<`/A58!``"+50CV@JP$```"#X5.`0``BT48 -XMA<`/A80!``"+112%P'0EBU44B50D!(M-"(D,).@*U/__QT0D!":Z"`B+10B) -XM!"3H]]/__XM5"(D4).B]OW_A<"-4`$/ -XMA+H!``"$VP^$I`$``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!``````BTT0 -XMQT0D"-NY"`B)5"0$B00DB4PD#.@#]/W_BT4(]H!P`P```0^$3@$``(G"BX!H -XM`P``C01`P>`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B)!"3HK*?^ -XM_\<$)'\```#HE/C]_\=$)!``````QT0D#`````"+51")1"0$B50D"(M-"(D, -XM).CJ^___B<*#Q!2)T%M=P\=$)`0!````B10D_Y.@"```A\=$)`@"```` -XMBTT,BT$@BP")1"0$BT4(B00DZ$QM``"#Q!2Z`0```%N)T%W#QT0D!":Z"`B+ -XM10B)!"3HC-+__XM%%(7`#X5E_O__Z87^___'1"0(U;D(",=$)`0%````BTT( -XMB0PDZ.&A_O^#Q!2Z`0```%N)T%W#C70F`,=$)`@`````QT0D!`````"+50B) -XM%"3_DUP(``"+30B#B:P$```4BT48A<`/A/S]___I>____XG"BX!H`P``C01` -XMP>`"`T(0BT`XZ4?^__^+30B+@6@#``#IN/[__XM-"(N!:`,``.EC_O__A-MT -XM'(M5"(N":`,``(T$0,'@`@-"$(M`.(G"Z2;^__^+30B+@6@#``")PND6_O__ -XMD(UT)@!5B>564[L!````@>P@!```BW4(QT0D"`````#'1"0$-````(DT).@% -XMJO[_A<`/A:D```#VAG`#```!#X6H````BX9H`P``C9WX^___B1PDB40D#,=$ -XM)`B9W@@(QT0D!``$``#H;/7]_XM&$,=$)`@`````QT0D!`````")-"3_D)P( -XM``"+AJP$``")7"0(QT0D#`````")-"2#\!#!Z`2#X`&)1"00BT4,B40D!.B. -XM_/__BU80QT0D"`$```")PXM&((M`"(DT)(E$)`3_DIP(``"!CJP$``````@` -XM@<0@!```B=A;7EW#BX9H`P``C01`P>`"`T80BT`XZ4?___^058GE5XG'5E.# -XM[%R)5<")3;R+6!R%VP^$$`4``/:`B`,```%U,8N0@`,``(72#Y3`A,!T/<=$ -XM)`B@X0@(QT0D!`0```")/"3HY)_^_S'`@\1<6UY?7<.+@(`#``"-!$#!X`(# -XM1Q"+2#B%R0^4P(3`=WC_````#X9^!```BW-TB77@QR<=%T`````")1;CK,HN'R`,``(T$0,'@ -XM`@-'$(M0.(T$"HG6B46T,=*)R/?VBTVT@T70`2G1.5W0#X2[````BU70BW6X -XM#[8$,CP@#X29````/`D/A:$```#VA]`#```!=:N+E\@#``#KM<=%\`````"- -XM1?#'1"0,``$``(E$)`C'1"0$`````(D\).BZ$O__A<")1=P/A>[^__^#Q%RX -XM`0```%M>7UW#QT74`````(N/@`,``(T<2?:'B`,```&)R'0-C02=``````-' -XM$(M`.(/"`0%%U(E5Z`^V`CP^=-@\/`^%7O[__^O.@T70`8/!`3E=T`^%1?__ -XM_X-]O`$/A.8!``")SBMUU#M-U!G`]]`AQCGQ#X3;`0``A?_'1>``````#X2& -XM`0``BT<0A<")1>`/A'@!``"+5=PY4'0/A&P!``"-!!X[1?`/A[X!```/MH_0 -XM`P``BY?(`P``BUWPK7=R)7"0,BW7"+5>"+0'2)1=R+0GB)1?"!BE0(`````0``Z67^ -XM__^+1=2--`'I)?[__XM5Q#E73`^%M_S__\=%V`$```#IJ_S__XE$)`R-1?") -XM1"0(BU7(E$ -XM)`B+0G2)/"2)1"0$Z/,=$ -XM)`P``0``B40D"(M#=(D\)(E$)`3H.P___X7`#X2$_/__B4-TZ53[__^!H%0( -XM``#__O__N`$```#IE?K__X&@5`@``/_^___I-/[__Y"-M"8`````5;D!```` -XMB>6+10B+50Q=Z1SZ__^-M@````"-OP````!5,"N-192)1"0$B1PDZ!OR_?^%P'48 -XMBU7(BT7$@_H`?$A^/.C%[?W_QP`,````BU4(QT0D#)^M"`B)="0(QT0D!`4` -XM``")%"3HK)[^_[@!````BUWTBW7XBWW\B>Q=PST``!``=[V-=@"#P`&)!"3H -XMZ>_]_X7`B460=&F+59"+1<3&!!``B50D!(E$)`B)'"3H6/']_XD<)(G'Z-[M -XM_?^#__]T+HM5R(G[BT7$P?L?,=HQ^`G"=%KH,>W]_\<`!0```(M%D(D$).@P -XM\/W_Z5S___^+5N?]_XD$ -XM)(G&Z%#N_?^%P(G#=$J)="0,B7PD!(E$)`B+1>R)!"3H4^?]_XE<)`S'1"0( -XMO^$(",=$)`0#````BT7PB00DZ*"7_O^+=?B)70B+??R+7?2)[%WIH.[]_XM% -XM\,=%$`````"+7?3'10P%````BW7XBWW\B44(B>Q=Z6>7_O^-M"8`````58GE -XM5U93@^P\]D4@$<=%V``````/A;P```"+10CV@+0!```!#X55!```BTT(BX&L -XM`0``A<`/E<"+70@/ML")1=CV@_P!```!#X1B!```BX/T`0``C01`P>`"`T,0 -XMBT`XA<`/E<"$P'0$@TW8`HM%"/:`\`$```$/A"`$``")PHN`Z`$``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T/(MU$(7V=#&+'?P@"0B+-0@A"0B+31"+50SK`X/" -XM`0^^`H7`>`PYV'T(9H-\AC0`>`N#Z0&)]G7C@TW8`HM=((/C`HE=T'00BWT( -XM]H>N!```0`^%>@4``(M%((/@"(E%U'00BU4(]H*N!```@`^%?04``(M=%(7; -XM#X01`@``]D4@`0^$6@(``(M-$+@W````A+?0B+7Q"%VW0-]H-5"``` -XM`0^$.`4``(7`QT7P``````^%HP<``,=%X`````"P`;X:````BUW@Q@->QP`H -XM6R`)QT`$77PO7,=`""HH6U['0`PJ77QMXD(UT)@`/OL.)1"0$QP0DS.$(".CQY_W_A@\8!@VT0`71%@T4,`8M]#`^V'X#[('7#QP8H6R`)QT8$77PO7,=&""HH -XM6U['1@PJ77QO]_XM-%(L!Q@0X`(7V="B+70B%VW06BUT(BT,0A7UW#]D4@$`^$/@$``(M% -XM"(7`#X1R`P``BTT(BUD0A=L/A&0#``#V@U4(```!#X57`P``BT40`<`[0W@/ -XMAP\(``"+0W2)1>"+0WB)1?"!BU0(`````0``BT40A<`/A?4$``"+50P/M@+' -XM1=P`````/%Z+=>`/A%H&``"+11"%P'5T#``")]@^V00&)SX/'`3PO#X2_ -XM`P``/#\/A+<#``"-M"8`````#[[#B40D!,<$)-OA"`CHH>7]_X7`=`S&!ER+ -XM10R#Q@$/MAB('H/&`8-M$`$/A)D#``")?0R+30P/MAF`^UQTH(M]#(/'`>NX -XM]D4@!`^$V0$``(/$/+@!````6UY?7<.)PHN`K`$``(T$0,'@`@-"$(M`.(7` -XM#Y7`Z9O[__^+30B+N>@!``"%_P^5P.GF^___BWT(BX?T`0``A<`/E<#IHOO_ -XM_XM%$#'VNP$```"%P`^$:P$``(M5$##;BTT,ZQR0/"H/A.T````\+@^$Y0`` -XM`(/&`8/J`71:@\$!#[8!/%L/A,\```!^V#Q<#X2`````/'YUW(M]"/:'4`(` -XM``$/A.D```"+AT@"``"-!$#!X`(#1Q"+0#B%P`^5P(3`=+2+70@#L^0```"# -XMZ@&[`0```'6FA=L/A)L!``"+70B%VW07BU4(BUH0A=MT#?:#50@```$/A$(% -XM```Q_X7VQT7P``````^%$@8``(G[Z>D!``"#^@$/AE?___^#P0&#Z@$/M@$\ -XM/'0@#XXL`0``/%L/A``$```\?@^$GP,``#P^B?8/A2(!``"#Q@B[`0```(GV -XMZ1[___^+?0CVAU`"```!=#^+AT@"``"-!$#!X`(#1Q"+0#B%P`^4P(3`#X3S -XM_O__@\8"NP$```#IYO[__XM%"(N`2`(``(7`#Y7`Z1O___^+10B+N$@"``"% -XM_P^4P.O(*?N^`0```(E=$(/#`8E]#(M]#(E]X.E$_/__B7PD"(E$)`2+10B) -XM!"3HXOC__X/$/+@!````6UY?7<.)^`6P````B00DZ"KG_?^!IZP$``#__[__ -XMZ6CZ__^)T`7(````B00DZ`SG_?^+30B!H:P$``#__W__Z6+Z__\Y0W@/@C0$ -XM``"+2W2)3>"+0WB)SH/&&HE%\(G(@8M4"`````$``(/``>FW^O__/"H/A-0" -XM```\+@^$S`(``(/&`I"-="8`Z?[]__^+71`Q]H/#`>D^____BT40QT7P```` -XM`,=%X``````!P`^$M/S__XE$)`R-1?")1"0(QT0D!`````"+70B)'"3HQP3_ -XM_X7`B47@#X6+_/__Z2G]__^-M"8`````@/HJ#X07`0``@/HNC70F``^$"@$` -XM`(@3@\,!@VT0`0^$N_[__X-%#`&+10P/MA"`^EL/A.@```!^QH#Z7'1^@/I^ -XM==*+30CV@5`"```!#X0(`0``BX%(`@``C01`P>`"`T$0BT`XA<`/E<"$P`^% -XM+0(``,8#?H/#`>N@D(UT)@"+?0R)PX-M$`&('H/&`8/'`H-M$`$/A6?\__^+ -XM1=R%P'0&Q@8D@\8!*W7@B?.)=1"#PP&^`0```.F"^O__@WT0`0^&<@(``(-% -XM#`&+30R#;1`!#[81@/H\#X0_`P``#X_I`0``@/HJ=`V`^BZ-="8`#X7R`0`` -XMBTT(]H%0`@```0^$L@,``(N!2`(``(T$0,'@`@-!$(M`.(7`#Y7`ZR20BTT( -XM]H%0`@```71#BX%(`@``C01`P>`"`T$0BT`XA<`/E,"$P`^$R_[__\8#7(M- -XM#(/#`0^V$>FZ_O__BT4(BX!(`@``A<`/E<#I_/[__XM%"(N`2`(``(7`#Y3` -XMZ\2+30R+71"+50P/MD09_X/J`3PO#X2)`0``/#\/A($!```\),=%W``````/ -XMA(8"``"+?0P/M@<\+W0(/#\/A=;Z__^#10P!BU4,@VT0`0^V`NG#^O__B40D -XM#(U%\(E$)`C'1"0$`````(M%"(D$).B^`O__A<`/A"C[__^)1>"+=>"#P`&# -XMQAKI-/C__XM]"/:'4`(```$/A#P!``"+AT@"``"-!$#!X`(#1Q"+>#B%_P^4 -XMP.FT^___QT0D"`````#'1"0$!0```(M-"(D,).B^C?[_BUT4BP.%P`^%'OG_ -XM_^DX^?__BWT(]H=0`@```0^$T````(N'2`(``(T$0,'@`@-'$(M`.(7`#Y3` -XMA,`/A!#[__^#Q@&[`0```.D#^___BTT(BY'@````BX'D````B1PDB50D!(E$ -XM)`CH]>/]_XM%"`.8Y````.E._?__@/I;#X0@_O__@/I^#X3]````@/H^#X3< -XM````Q@-"#10P!@VT0`8/&`>F0^?__ -XM@:!4"```__[__^FG^/__@VT0`75DBWT,#[8'QT7<`````.E>^?__Q@-<@\,! -XMZ=?\__^+10B+@$@"``"%P`^4P.DT____BT4(BX!(`@``A<`/E,#I@?K__SMS -XM>`^'6`$``(M#>(M[=(E%\(&+5`@````!``#IKOK__XM-$`^V!!'I"?[__XE$ -XM)`R-0WB)1"0(BT-TB40D!(M5"(D4).C\`/__A<`/A&;Y__^)0W3IG_O__\<# -XM6ULZ/F;'0P0Z7<9#!EV#PP?I/_S__XM%"/:`4`(```$/A+D```")PHN`2`(` -XM`(T$0,'@`@-"$(M(.(7)#Y7`A,`/A6;\__^+10B+D.````")P>F,_O__QP-; -XM6SH\9L=#!#I=QD,&78/#!^GF^___@VT0`0^$N0```,=%W`$```#I9/W__XU% -XM\(ET)`R)1"0(QT0D!`````"+30B)#"3H1P#__X7`B<%N/[__P````#'A;S^__\`````QX7`_O__`````,>% -XMQ/[__P````"#Y@&)C93^__^#Z`D\:793BY6@_O__NP$```#'1"0("@```(M" -XM((M`$(D\)(E$)`3H/E4``('$?`$``(G86UY?7<.+AWP!``"-!$#!X`(#1Q"+ -XM6#B%VP^4P.E$____D(UT)@`/ML#_)(6TX@@(A?8/A2`5``#VAZX$``!`#X0U -XM%0``BXV4_O__QX7$_O__`0```(E-"(N%$/___X/``8F%$/___P^V`(3`#X5: -XM____BY7$_O__A=(/A*80``#VAZP$```"="&`O_0`````=!B+A;S^__\+A;C^ -XM__\+A<#^__\/A2T2``"+C:#^___'1?``````BX6@_O__BTEDB8T,____BT!L -XM.<&)A:3^__\/A_\4``"+1Q#V@%0(```$#X7O%```BY6\_O__BXW`_O__"Y6X -XM_O__QX70_O__`````,>%U/[__P`````)RL>%V/[__P````#'A0C___\````` -XMQX4$____`````(F5F/[__\=$)`P!````QT0D"`````#'1"0$`````(D\).CS -XM3/[_A\.``"+C0S___^-1>R-E1#___^)1"00B50D -XM#,=$)`@!````B4PD!(D\).@T5/[_A<`/A7,%``"`O_0`````=&:+A=C^__^% -XMP`^$BA(``#';A?\/A'H/``"+7Q"%VP^$;P\``(N5V/[__SE3=`^$8`\``(M5 -XM[#M5\`^'PQ```(E4)`B+A1#___^+E=C^__^)1"0$B10DZ+W>_?^+C=C^__^) -XMC1#___^+1>R[`0```#'VQX6P_O__`````,>%R/[__P$```#'A%&/___P````#' -XMA1S___\`````B8T@____BTT(B40D$(N%L/[__P.%$/___\>%)/___P````") -XM5"0,QT0D"`H```")1"0$B0PDZ.C:_?^#^`$/A$$#``"%P`^%%!4``(.-S/[_ -XM_P&%VP^%!`(``(N%&/___PN%'/___P^%\@$``(N%(/___PN%)/___P^%X`$` -XM`(N%K/[__X7`#X1M#P``BYT`____@\,!.YT(____=DF!^P`!``")V',%N``! -XM```!A0C___^+A03___^%P`^$O!0``(N%"/___XN5!/___XE$)`2)%"3H>MC] -XM_X7`#X1`$0``B84$____BX6P_O__`X40____BXT`____BY4$____#[8`B`01 -XM@X6P_O__`8.MK/[__P&)G0#___^[`0```,>%T/[__P$```#IK?[__\>%P/[_ -XM_P$```#IM?S__\>%N/[__P$```#IIOS__X"_]0`````/E(?U````Z9/\__^` -XMO_0`````#Y2']````/:'K`0```$/A'C\__^-1=2)1=2)1=CI:OS__X72#X7= -XM^___Z!_:_?_'``````"-A1#___^)1"0$BX40____QT0D"`H```")!"3HR=C] -XM_XG#BX40____@#@`=0F#Z`&)A1#____HWMG]_X,X(@^$5Q$``(N5H/[__XM" -XM;(E"9(/H`0'8B4)LB40D!(D\).@!4_[_AC[__^+C:#^__^#:5P! -XMZ=G[__^+A:#^__^#0%P!ZB+A;#^__\#A2#___^)3=R)3>2)1>"+1>R% -XMP'4.QT7@`````,=%Z`````#VAZP$```"#X1&`@``BU7L.57@<@:-0O^)1>`Y -XM5>AR!HU"_XE%Z(M%Y,=$)`0!````B3PDB4=,BT7HB4=0Z**'`0"%P`^%L0$` -XM`,=$)`@`````C5VXQT0D!`GB"`B)/"3HGWK^_\=$)`@`````B3PDB40D!.B[ -XM:`$`QT0D#`````#'1"0(`````(E<)`2)/"3HGTC^_X7`#X5>`0``BT7`@_@! -XM#X0H`@``<@6#^`1V#(E<)`2)/"3H:$/^_XM'$(.(5`@```3'A=#^__\!```` -XMQX74_O__`0```(7V#X1-"@``BYVL_O__A=L/A)<```"+G0#___\#G:S^__\[ -XMG0C___]V28'[``$``(G8_O__C474QT0D#``(``#'1"0(`````(E$)`2)/"3H)ST``(7` -XM#X4V____BT74BT`(#[8`B$7$#[9%Q#QQ#X3?_?__/'D/A:\)``"+A0S___\Q -XMTHNU&/___XN-"/___XE'3(N%`/___P.%&/___Q.5'/___XEW4(/Z`'P.#X]0 -XM`P``.<@/AT@#``"+E0#___^+A;#^__\#E03___\#A1#___^)="0(B10DB40D -XM!.AS^__\/A&,#```\7`^$$P,```^VM>S^__^)\8#Y -XM_P^$O@(```^VT8M'$`^VA`)3!P``@_@(#Y3"@_@,#Y3`A,!U"(32#X2H`@`` -XMBX?L````.X?P````#X0D!0``BX?P````BY?H````BXT`____B0R"@\`!B8?P -XM````BYT`____@\,!.9T(____OW__X.]^/[__P(/A.L"```/AS(#``"#O?C^__\! -XM#X3B`@``Z+;/_?^+C?3^__^^7````+I<````AS^__\/AHT"``"#A?#^__\!Z:7\___VAU`"```! -XM#X2*`0``BX=(`@``C01`P>`"`T<0BW`XA?8/E<"$P(V5&/___P^$<_S__XL: -XMBW($B=@A\(/``0^$8?S__XM*#(M2"(G0(C^__^+E>C^__^)\(@" -XM@\(!.YV<_O__B97H_O__#X0O_/__@X7D_O__`8N%Y/[__P^V,(GR@,(!#X4> -XM____BT<0@+A2!P``_P^%#O___\=$)`3_````B3PDZ/@\_O_I^?[__XN?2`(` -XM`(7;#Y7`Z7W^___'A;C^__\`````QX6\_O__`````,>%P/[__P````#I6O+_ -XM_X.]^/[__P,/A($"``"#O?C^__\$#X7/_?__B?(/ML([!?P@"0@/C>7^__^+ -XM%0@A"0CV1((U$`^$U/[__P^VM((T"```Z_[_BX?H````A<`/A8+Z__^[`0```,>'[`````````#I -XM-?C__P^VP/\DA5SD"`C'A?C^__\`````B?(/ML([!?P@"0@/C6?Z__^+%0@A -XM"0AF@WR"-``/B57Z__\/MK2"-`0``.E(^O__BX4(____B00DZ%O1_?_I@?K_ -XM_X.]^/[__P,/A"L"``"#O?C^__\$#X7!_/__B?$/ML$[!?P@"0@/C0KZ__^+ -XM%0@A"0CV1((U$`^$^?G__P^VM((T"```Z>SY__\IE0#___^)T,>'\``````` -XM``"+E0#___^+C0S___\#A03___^)/"2)5"0,B40D"(E,)`3HP4K^_X7`#X50 -XM]___BX4,____.4=8=`>#1V`!B4=8BX68_O__A@`````A<")5=R)5>0/A2,(``"+A;S^__^%P`^%Z`<``(NUP/[_ -XM_X7V="B+E:#^__^-1=R)1"0,C47DQT0D$``0``")1"0(B50D!(D\).BUL/__ -XMBYW4_O__@X4,____`87;#X0E`0``@+_T`````'4SBX6H_O__.4=,=0N+E;3^ -XM__\Y5U!T'8U'4(E$)`B+1TS'1U``````B3PDB40D!.A4[?[_BXW0_O__A%^/[__P````#I??W__\>%^/[_ -XM_P````#I1/S__\=$)`@$````BT(@NP$```"+`(D\)(E$)`3H1D0``.D#[___ -XMBXT(____B0PDZ(?/_?_I=/S__\>%P/[__P````#'A;C^__\`````QX6\_O__ -XM`````/9%#`(/A%#O___IGN[__X&C5`@``/_^__^+1>PY0W@/@JX!``"+2W2) -XMC=C^__^+0WB)1?"!BU0(`````0``BU7LZ77P___'A?C^__\`````Z=/]__^+ -XMC0S___\YC:3^__\/@LG^__^+1Q#V@%0(```$#X26[___Z;3^__^-="8`BX4` -XM____,=(#A2#___\3E23___^+C0C___^#^@!\27\$.0(``,>%T/[__P$```#I?//__XVV`````,=$)`3_````B3PDZ&`X_O^#^`@/ -XME,*#^`P/E,#IEO;__P^VM((T!```Z9+Z__^-1?")1"0(BX78_O__B50D#(D\ -XM)(E$)`3H]>O^_X7`#X3M\?__BU7LB878_O__Z0KO___'1"0(;.(("+L!```` -XMQT0D!`,```")/"3H(G?^_^G_[/__B40D#(U#>(E$)`B+0W2)/"2)1"0$Z*/K -XM_O^%P`^$F_'__XE#=.DH_O__@X7P_O__`<>%^/[__P````#I@_7__XN%[/[_ -XM_X.%\/[__P'!X`2-E"@8_/__Z3GY__^#A?#^__\!]H=0`@```0^$WP$``(N' -XM2`(``(T$0,'@`@-'$(M0.(72#Y3`Z?OX__^#A?#^__\!QX7X_O__`P```.DA -XM]?__@X7P_O__`<>%^/[__P0```#I"_7__X.%\/[__P''A?C^__\!````Z?7T -XM__^#A?#^__\!QX7X_O__`@```.G?]/__@:!4"```__[__^E8\___QT0D""'B -XM"`B[`0```,=$)`0#````B3PDZ`UV_O_I!//__\'@`HD$).AQS/W_Z7?Z__]\ -XM##T``0``D`^#8/?__[@``0``D(UT)@#I4??__X7_#X3+````BU\0A=L/A,`` -XM``#V@U4(```!#X6S````BT7L.4-X#X)G!```BT-TB878_O__BT-XB47P@8M4 -XM"`````$``(M5[.E9[?__QT0D"`````"[`0```,=$)`0%````B3PDZ'%U_O_I -XM3NO__XN5"/___XD4).C2R_W_Z?OV___'1"0(`````,=$)`0%````B3PDZ$%U -XM_O_I,_+__XN%R/[__X7`#X1Y_?__BX6L_O__,=N%P`^%C>[__X.-S/[__P+' -XMAS'1?``````A=(/A,'L__^-1?")5"0,B40D",=$ -XM)`0`````B3PDZ'OI_O^%P`^%AOW__^EN[___BX=(`@``A<`/E,#I*/?__\=$ -XM)`@TX@@(NP$```#'1"0$`P```(D\).BA=/[_Z7[J___'1"0(!@```+L!```` -XMQT0D!`````")/"3HGS\``.E%T/[__P````#' -XMA=C^__\`````QX4$____`````.E=^O__BX4`____*97\_O__QX?P```````` -XM`"G0B86P_O__B="+E?S^__^+C0S___\#A=S^__^)/"2)5"0,B40D"(E,)`3H -XM-T3^_X7`#X7&\/__BXT,____C47LC940____B40D$(E4)`S'1"0(`0```(E, -XM)`2)/"3H5#_^_X7`#X63\/__,=N%_P^$S0$``(M?$(7;#X3"`0``BX78_O__ -XM.4-T#X2S`0``BU7L.U7P#X>R`@``B50D"(N%$/___XN5V/[__XE$)`2)%"3H -XM],G]_XN-V/[__XN%"/___SF%L/[__XM=[(F-$/___W9,BX6P_O__/0`!``!S -XM!;@``0```84(____BX7<_O__A<`/A$`"``"+C0C___^+A=S^__^)3"0$B00D -XMZ)G$_?^%P`^$7_W__XF%!/___XN5L/[__XN%$/___XN-!/___RN=L/[__XE4 -XM)`B)1"0$B9VL_O__B0PDZ%W)_?^+AP$``(N5L/[__S';O@$```")E0#____I\.O__XN-N/[__PF-O/[__XN% -XMO/[__PN%P/[__P^%^OC__XN5H/[__S';@XJ`````0.E+[___BU4(NP$```") -XM1"0$B3PDB50D".@7VO__Z2[O__^+C0C___^)#"3HF,C]_^E)Z___C47`^".P$``(M3=(F5V/[__XM#>(E%\(&+5`@````!``"+5>SI -XM(O[__XN-"/___XD,).CTQ_W_Z;;M__]\#ST``0``C70F``^#*/G__[@``0`` -XMD(UT)@#I&?G__XN%"/___XD$).C!Q_W_Z3+Y__^)1"0,C4-XB40D"(M#=(D\ -XM)(E$)`3HSN7^_X7`#X3&Z___B4-TZ6_[__^+E;#^__\QV[X!````@XW,_O__ -XM`L>%R/[__P````")E:S^__^)E0#____I7NK__\=$)`CBX0@(NP$```#'1"0$ -XM`P```(D\).C2O__XM5[(F%V/[__^D;_?__BXT( -XM____B0PDZ.W&_?_I`O'__XE$)`R-0WB)1"0(BT-TB3PDB40D!.CZY/[_A<`/ -XMA/+J__^)0W3IF_[__XN-L/[__XN%!/___XF-`/___XF%W/[__XN5W/[__\>% -XMT/[__P$```")E03____I]>O__XVT)@````!5B>6#["B)7?2+70B)=?B+=0R) -XM??R+D\````"%T@^$E0```/:#K@0``$"-N[````!T/HM&>#')AQ=Z;;D__^-M@````"+1G2+`(L(Z]*-M"8` -XM````QT0D&`(```")?"04QT0D$`````#'1"0,`````(N#Q````(E4)`2)'"2) -XM1"0(Z`[8__^%P'2,BUWTN`$```"+=?B+??R)[%W#QT0D"`8```#'1"0$```` -XM`(D<).A@.@``Z]2-M"8`````C;PG`````%6)Y8/L*(E=](M="(EU^(MU#(E] -XM_(N3V````(72#X25````]H.N!```@(V[R````'0^BT9X,7UW#@\`!.3W\(`D(B47!Y``` -XM``````"+5=2)V8E4)`2+10@%L````(D$)(M5#(M%".C[X/__@\1,6UY?7<.) -XMSBMUW,=$)!@"````BT4(!;````")1"04BT4(!<0```")1"00BT4(B70D"`7` -XM````B40D#(M%W(E$)`2+50B)%"3H3-3__X7`=`JX`0```.G-_?__QT0D&`@` -XM``"+10@%R````(E$)!2+10@%W````(E$)!"+10B)="0(!=@```")1"0,BTW< -XMB4PD!(M%"(D$).C\T___A"K`````$```#'1=0!````Z7O^__^# -XMPP'I\?[__XM%"(7`#X0L`@``BU4(BW(0A?8/A!X"``#VAE4(```!#X41`@`` -XMBU70.59X#X(G`P``BT9TB478BT9XB47P@8Y4"`````$``(MUV,=%X``````/ -XMMA.$TG0P#[[".?@/A","``"`^EP/A*4```"`^GX/A/<```"#PP&(%H/&`8-% -XMX`$/MA.$TG70A?\/A/8!``"+1>"+30B%P(F!Y````'1$BX'@````A`"`T$0 -XMBT`XA<`/E<"$P`^$V/[__XM5"(/#`8N"X````(N2Y````(DT)(E$)`2)5"0( -XMZ!O`_?^+50B+@N0````!1>`!QNE__O__!;````#'1"08`@```(E$)!3'1"00 -XM`````,=$)`P`````BTT(BX'$````B50D!(D,)(E$)`CHRM'__X7`#X17_/__ -XMZ77]__^+10B+@$@"``"%P`^5P.EI____@\,!B`!#[83 -XM@\,!Z=7]__\/ME,!C4L!A-)T2@^^PCGX#X7;^___C4L"BS,``+@!````Z8#Z__^+30B+D4@"``"%T@^4P.EC -XM_O__A?]TO8G+Z1G\__^!H%0(``#__O__Z0K\___'1"0(`````,=$)`0%```` -XMB0PDZ`QH_O^+10B%P'02BU4(BT(0A=G,/MA.`^@ET:X#Z(+C_____=&%;7E]=PSGR -XM"(NX -XMF````#G:=2#K18M"!(E!!(M"!#G8=":)"(D4).C,O?W_BU8(.=IT)XL*.=EU -XMW(M"!(E&#(M"!(L*.=AUVHE."(D4).BEO?W_BU8(.=IUV8L6A=)T#SGZ=!V+ -XM1@2)0@2+1@2)$(DT).B!O?W_@\0,,53B=.#[`2+$HN(F````(72="N+0P2)0@2+0P2)$(M#"(D$).@YO?W_ -XMB1PDZ#&]_?^#Q`0QP%M=PY"-="8`BT,$B4$,BQ/KT8VV`````%6)Y593@^P0 -XMBW4(BYZ8````BP,YV'0@B40D!(DT).CM_O__BP,YV'7NBU,(A=)T#HGPZ'G_ -XM__^+4PB%TG7RBT,4AR+4`B% -XMTG7NC7L!B5WPZTV-M@````")="0(BU7PB00DB50D!.CQN_W_BT,(Q@0P`,9# -XM$`#'`P````"+5>R+0@R)0P2+0@R)&(E:#`^V3_^$R0^$EP```(E]\(/'`0^V -XM3_^$R70A#[[1A=)X[CL5_"`)"'WFH0@A"0CV1)`V`G3:C;8`````C7?_*W7P -XM@_X!=K['!"04````Z$V[_?^%P(G#=%6-1@&)!"3H/+O]_X7`B4,(#X5=____ -XMQT0D"`````#'1"0$!0```(M%"(D$).BB9/[_BT,(A<`/A3?___^)'"3HH[O] -XM_[@!````ZP(QP(/$'%M>7UW#QT0D"`````#'1"0$!0```(M5"(D4).AC9/[_ -XM@\0B+1?")7"0(B4PD!(D$).@"NOW_BU7PBTWP@\(( -XMB57LB5$(B5$,QT$0`````(M%Z(MP%(7V=`B)R(/`'8E!%(M5Z(MR"(/""(E5 -XMW#G6=2_IN````(M-[(D+BU7PBT(,B4,$.TH(#X2-````B1B+3?")60R+-CMU -XMW`^$C@```(M>%+\L````A=MT!HM^&(/'+8M.((7)=`B+1B2#P`$!QXD\).@_ -XMN?W_A<")PP^$$@$``(E\)`B)="0$B00DZ%6Y_?^+5A2%TG0&C4,HB4,4BT8@ -XMA2+1?")$(M"!(M-\(E!!#L2#X3&````BU7DBTWP -XMBT($B0B+1>2+5?")4`2+3>B+1>"+"3G!B4WH#X6*_O__BU7@BW((A?9U6^FY -XM````C;0F`````(L&B0.+1@2)0P2+1@B)0PB+1@R)0PR+1A")0Q"+1@B)!"3H -XM;;+]_X7`B4,(#X2@````QP,`````BU7DBT(,B4,$BT(,B1B)6@R+-H7V=&/' -XM!"04````Z"FX_?^%P(G#=9^+30S'1"0(`````,=$)`0%````B0PDZ)1A_O^X -XM`0```(/$+%M>7UW#B0KI/O___XM5#,=$)`@`````QT0D!`4```")%"3H96'^ -XM_[@!````Z\^+3>"+012%P'02B00DZ-"Q_?^+5>2%P(E"%'23,<#KK[`!ZZN- -XM=@"-O"<`````58GE5U93@^PLBT4(BX"8````B47HBS@YQP^$-P(``(M%"(-X -XM."(/A@4"``"+0!#'1>P!````]H!4"```!`^%"0(``,=$)`P!````QT0D"``` -XM``#'1"0$`````(M%"(D$).CZ)/[_A@/A,8!``"+=PB-5PB)5>0YU@^$@`$``(GPZV.0C70F`(U$`^:)1"00QT0D -XM#!H```#'1"0(&@```,=$)`0.YP@(BU4(B10DZ'61__\Y=Q`/A)0````Y=P@/ -XMA*<```#'1"0$)KH("(M%"(D$).A0D?__BS8[=>0/A!P!``"+1P@YQ@^$\@`` -XM`,=$)`2WW`@(BT4(B00DZ">1__^+1@B%P`^$S````(M8"(D<).C%M_W_@_@> -XM#X=H____B5PD$,=$)`P>````QT0D"!X```#'1"0$&^<("(M%"(D$).CAD/__ -XM.7<0#X5L____QT0D!.#A"`B+50B)%"3HQ9#__SEW"`^%6?___XM?%(7;#X1. -XM____BT4(BT`XB47P@^@>@_@8#X8Y____B1PDZ$BW_?^YMMP("#MW$(G"=`6Y -XMM=P("(E<)!"+1?"#Z",YT'8"B=")1"0,B4PD",=$)`3PF`@(BU4(B10DZ%B0 -XM___I\/[__XUV`(M>%.DO____BT7LQT0D!`GG"`B)1"0(BU4(B10DZ"Z0___I -XM`O___XM5"(L_BT(0]H!4"```!'4D@T7L`>D2_O__QT0D"/+F"`C'1"0$`P`` -XM`(M%"(D$).CD7O[_@\0L, -XM7UW#BU,(BT,,B4(0BT,0BU,(B4(4BT8@9H-(&`''1"0,(````,=$)`@````` -XMBT,(B30DB40D!.BM#/[_A$``0``7>GM_O__B1PDQT0D"`````#'1"0$`0```.@U -XM^?__@\04N`$```!;7<.-=@"-O"<`````58GE5U93@^PLBT4(B[B8````BQ(7`=1V+10P/MTA\BT4(@>$``0``Z(7^__^#Q"Q;7E]= -XMPX/H`70%Z->N_?^+072+`(L`QT0D"`H```")1=R-1?")1"0$BT7+5>`/A9+^__\QP.F@_O__D(UT)@!5B>564X/L$(MU -XM#(M="(M&"(7`='(QTCE#('0@QT0D"!$```"+11")'"2)1"0$Z(T%_O^%P'0. -XMN@$```"#Q!")T%M>77<.+1A2)'"2)1"0$ -XMZ#H(_O^%P(E&"`^%=/___^N4C;8`````C;PG`````%6)Y8/L.(E]_(M]#(EU -XM^(MU"(E=](M'"(7`#X0``0``C47PB40D"(ET)`2+1A")!"3H>IW^_X7`=!:X -XM`0```(M=](MU^(M]_(GL7<.-="8`BT7PQT0D"`````")-"2)1"0$Z!F1`0"% -XMP`^%T0```(M'"#M&(`^$]0```(M5$(E$)`2+1?#'1"0(`````(E4)`R)!"3H -XM!PG^_X7`=52+1PB+7?"+0`C'1"0$`````(DT)(E$)`CH1A#__XE#)(E#*(M% -XM\(&@K`0``/_^__^+1?"!B*P$``"`````BT7P@8ZL!````!```(E&%#'`Z4[_ -XM__^+1?#'1"0$`````(D$).@IO[_A<`/A88```"+@ZP```"%P'0OBU7LC4-0 -XMQT-0`````(E$)`B)'"2)4TR)5"0$Z*S,_O\QP(M=](MU^(M]_(GL7R)1"0$Z/DE_O^%P'6IBT4(QT0D!``` -XM``")'"2)1"0(Z#[T__^X`0```.NMC;0F`````,=$)`0H````B30DZ&2K_?^% -XMP'0R*?#'1"08A````,=$)!0`````B40D$(ET)`R)?"0(B7PD!(D<).B2I?[_ -XMA<`/A#3___^+10C'1"0$`@```(D<)(E$)`CHT_/__[@!````Z3____^)]HV\ -XM)P````!5B>6#[!B)??R+?0B)7?2)=?B+AY@```"+&#G##X24````BT,0BW`$ -XMC4,(.<9T:(M5#`^W0GR)="0$B3PD)0`!``")1"0(Z/7[__^Z`0```(7`=1SV -XM0QP!B7,0=".)="0(B5PD!(D\).@S-___,=*0BUWTB="+=?B+??R)[%W#D(M# -XM%(M6((M.)(D$)(GXZ`W^__\QTNO9QT0D"(#F"`C'1"0$`P```(D\).AA5_[_ -XMN@$```#KNL=$)`@`````QT0D!`$```")/"3H\O+__S'2ZYZ-M"8`````C;PG -XM`````%6)Y8/L&(E]_(M]"(E=](EU^(N'F````(L8.<,/A)0```"+0Q"+,(U# -XM"#G&=&F+50P/MT)\B70D!(D\)"4``0``B40D".@6^___N@$```"%P'4=]D,< -XM`8ES$'0DB70D"(E<)`2)/"3H5#;__S'2B?:+7?2)T(MU^(M]_(GL7<.0BT,4 -XMBU8@BTXDB00DB?CH+?W__S'2Z]G'1"0(K.8(",=$)`0#````B3PDZ(%6_O^Z -XM`0```.NZQT0D"`````#'1"0$`0```(D\).@2\O__N@$```#KFXUT)@"-O"<` -XM````58GE5U93@>R<#```BT4(BU4,BX"8````B86(\___BT)XA<`/A5,#``"+ -XME8CS__^+C[__^) -XM1"0,QT0D"$/G"`C'1"0$``0``(E4)!")'"3HRJG]_\=$)`20O@@(B1PDZ.JD -XM_?^-C>CW__^)C7SS__^%P(F%I//__P^$QP```(N%I//__XV5Z/?__\=$)`0` -XM!```B10DB40D".C@IOW_A<`/A)$```"-C>CW__^+`8/!!(V0__[^_O?0(<*! -XMXH"`@(!TZ??"@(```'4&P>H0@\$"`-*#V0,KC7SS__^-0?^`O`7H]___"@^% -XMUP@``,:$!>CW__\`#[:%Z/?__X3`=#.+#?P@"0B-E>CW__^+'0@A"0@/OL"% -XMP'@/.%G//__P````"`>A@`#XE0!```BU4,]H*!`````0^%4PD``(M5#`^W -XM0GS'A9SS__\!````)0`!``")1"0(BXV0\___BT$(B40D!(M%"(D$).BS]___ -XMA<`/A4,$``"+E8CS__^+&CG3B=@/A#P*``"+M9#S__^)!HE6!(N%B//__SM` -XM!`^$&@H``(N5B//__XN-D//__XL"B4@$BX60\___B[6(\___B0:+E9#S__^+ -XMM9#S__^+0A"+2"2+4""+1A2)!"2+10CHG?G__XN%G//__X7`#X1D"```BTT( -XMBU,0BT$@B4((BU,0BT%,B4(,BU,0BT%0B4(0@<2<#```,`"`T80BU@XA=L/E<"$P`^%M_S__XNUB//_ -XM_XM%"(MV%(FUV//__XN`F````(F%L//__XDT).A%JOW_QP0D`0```(G#C4`A -XMB40D!.A@I_W_A<")A8#S__\/A(X'``")A9#S__^+E9#S__^#P`B)ACW__^)="0$ -XMBX7`\___B00DZ/>I_?^%P`^%N`(``,=$)!0`````QT0D&`````"+E<#S___' -XM1"0,`@```,=$)`@#````B50D$(N%&/C__\<$)`````")1"0$Z"^E_?^)A=3S -XM__^#P`$/A&D"``"+A=3S__\#A1CX__^+G=3S__^)PBN5U//__XF%X//__XG0 -XMP>@?`=#1^`'#.9W@\___=Q7K'8VT)@`````[G>#S__\/A#8*```/M@.#PP$\ -XM"G7J.9W@\___#X0@"@``B[W4\___B[7@\___BX78\___B?&)VNA3Z?__@^@! -XM#X3@`0``B=Z)\BGZB=#!Z!\!T-'XC1PX.=YW".L0B?8Y\W0.#[8#@\,!/`IU -XM\CG>=;PYO>#S__]V.HN-X//__XGZBX78\___Z`/I__^#^/]T(H7`#X3*`0`` -XM.[W@\___#QP$\"G3&.[W@\___=>Z+A1CX__^)1"0$B[74\___B30D -XMZ&BB_?^%P`^%=@0``(N5P//__XD4).C2I/W_A<`/A4`$``"+E=SS__^`8A#\ -XMBX7<\___BP"%P(F%W//__P^%'/[__XN5@//__XM""#F%S//__P^$,0<``(NU -XM@//__XE&$.G<^___BXV(\___BT$4A7UW#B=_I&_[__^CR -XMHOW_BXW<\___BP")00R+M<#S__^)-"3H::/]_XNUW//__X!.$`''A:SS__\! -XM````Z9#^__^%_P^$2/[__SN]X//__XE]Z',A@#\*=!R)^.L%@#@*="&#P`$[ -XMA>#S__^)1>AU[>D<_O__.[W@\___#X00_O__B?B`.`H/A07^___&``"+5>B) -XM?>B_`0```(F5T//__XU-Z,=$)`31U`@(C5__B0PDZ&NC_?^%P(G&=!^%VW4+ -XMB;6\\___@\B%_W0:A?9T%HD\ -XM).C.I?W_A<")A<3S__\/A0$!``"-=?")="0(BX78\___B40D!(M5"(D4).A@ -XM0?[_B47HC47LB40D"(N-W//__XM!"(E$)`2+=0B)-"3H/D'^_XE$)!")PXM% -XMZ,=$)`AIYP@(QT0D!`,```")-"2)1"0,Z)E-_O^+5?"%TG0>A?9T#XM6$(72 -XM=`B+0G0[1>AT5XM%Z(D$).B(I/W_BT7LAF-_O__B30DZ/VD_?^)M;3S__^)A@/H?W_BXW<\___BP") -XM00SI)O[__XN-O//__XE,)`2+M=CS__^)-"3H1Z']_X7`#X5O_/__BX6T\___ -XM@#@O=!J-E>C[__^)5"0$B00DZ"*@_?^%P`^%20$``#'VBY7(\___BXW$\___ -XMQP0D`0```(U$"C`!\(E$)`3HAJ']_X7`B<,/A!S\__^-0"B%]HE#%`^%N@$` -XM`(N%R//__XGR`U,4@\`!B40D"(N-M//__XD4)(E,)`3H^J+]_XN5R//__XT$ -XM%HE#&`-#%(/``8E#((N-Q//__XG*B4LD@\(!B50D"(E\)`2)!"3HQZ+]_XNU -XMS//__XDSBY6`\___BT(,B4,$.W((#X2<`0``B1B+C8#S__^)60SII_[__\=$ -XM)`B0E`@(QT0D!`4```"+30B)#"3HVTO^_^F@^___QT0D"(7G"`C'1"0$!0`` -XM`(M%"(D$).B[2_[_Z6K[__^+M:3S__^)-"3H[)_]_X/X"G7MZ1GW__^+@=0# -XM``"-!$#!X`(#01"+<#CIY_O__XM%"(M`%(E%"(N0F````(F5B//__^GR]___ -XMQT0D!"\```"+C=SS__^+00B)!"3H2)[]_X7`B<8/A)3^___&``"+A;3S__^- -XMG>CS__^)1"00BY7<\___BT((QT0D"+F4"`C'1"0$``0``(D<)(E$)`SHMI_] -XM_XV-Z/O__\8&+XE,)`2)'"3H89[]_X7`#X4__O__B[7<\___BW8(B;6X\___ -XMB30DZ**B_?^)QNDC_O__C;0F`````('$G`P``+@!````6UY?7<.)="0(BY6X -XM\___B00DB50D!.A.H?W_BT,4Q@0P+X/&`>DA_O__BT,0B[6,\___B7`(BT,0 -XMBY64\___B5`,BT,0BXV8\___B4@0@<2<#```,_O__BTT, -XM#[=!?,>%G//__P`````E``$``.GK^O__#[9"`8UR`<8"`(3`=2+I[?7__XUT -XM)@`YP7X<]D2#-4!T%8/&`0^V!H3`#X30]?__#[[`A_?^%P(G< -XM^O__C5@(B5X(B5X,QT0D!"P```#'!"0!````Z%*>_?^%P(G'#X0<^O__BT8( -XMB5\$B0<[7@P/A%T"``")>`2)?@B)?A#I,/7__XEP!.GO]?__B1Z)VHE>!#M; -XM!`^$)`(``(L#B7`$BXV(\___B?.)\(DQZ9[U___'1"0,4^<("(N%H//__\=$ -XM)`0#````B40D"(M5"(D4).CR3?[_B30DZ.Z?_?^X`0```.G+^?__QT0D#%/G -XM"`B+C=CS___'1"0$`P```(E,)`B+=0B)-"3HNTW^_XN%K//__X7`=%6+A;#S -XM__^+6`B%VW4*ZT:)]HL;A=MT/@^V0Q"#X`.#Z`%U[NA]G/W_BU,,B1#'1"0, -XMGZT("(M#",=$)`0%````B40D"(M5"(D4).AB3?[_@$L0`NN\BXV`\___B0PD -XMZ%*?_?^X`0```.DO^?__#[9"`8UZ`<8"`(3`#X3;\___#[[`A<`/B$0!``"+ -XM#?P@"0@YP0^.&`$``(L=""$)".L9@\")^NL2#[9"`8/"`83`#X2'\___#[[`A;V1(,U0'3? -XMQ@(`@+WH]___``^$9?/__X`^``^$7//__X`_``^$4_/__XDT).@&E_W_A<`/ -XMCD/S__^)/"3H1I_]_XDT)(G#Z#R?_?_'!"0!````C40#+HE$)`3H6)S]_X7` -XMB<,/A(K\__^-0"B)0Q2)?"0$B00DZ%R?_?^)/"3H!)_]_XE#&`-#%(/``8E# -XM((ET)`2)!"3H/)_]_XN%J//__XD#BY6$\___BT(,B4,$BXVH\___.TH(=$>) -XM&(NUA//__XE>#.G]\?__B7,$Z=G]__^+'0@A"0CI!?___XE^#.F>_?__B[W4 -XM\___Z27V__^+#?P@"0B+'0@A"0CIX?[__XE:".NVC;8`````C;PG`````%6) -XMY8M%#(&(@`````````B)10Q=Z4?P__^-M"8`````58GE@>S(````B77XBW4, -XMC47LB5WTC9U8____B7W\BWT(B40D&,=$)!0`````QT0D$`````#'1"0,```` -XM`,=$)`@`````QT0D!#H```")'"3H*Q0``(DT).CWG?W_B70D"(D<)(E$)`R- -XM1=R)1"0$Z+P/``")7"0$B3PDZ,#O__^%P'41BX>L!```@.3^#(")AZP$``"+ -XM7?0QP(MU^(M]_(GL7<.0D)"0D)"0D)"0D)!5B>6#[!B)7?2+70B)=?B)QHE] -XM_(G7]\,``$``#X6.````]\,``!``=!CVAI@"```!=4V+AI`"``"%P`^5P(3` -XM=5F#XQ!T&HM'"(E$)`B+1QS'!"3RF`@(B40D!.CSF?W_H00A"0B+7?2+=?B+ -XM??R)10B)[%WI^I?]_XVV`````(N&D`(``(T$0,'@`@-&$(M0.(72#Y7`A,!T -XMIXM'%,<$)+O<"`B)1"0$Z*:9_?_KDHD,).A575E.! -XM[,P```"+?0R+=12+'SG[=!`Y.P^$%0(``(D\).AHS?W_QT0D#"````#'1"0( -XM`````,=$)`0`````BT4(B00DZ,7._?^%P(G##X0K`0``BP>)>P2)`SE_!`^$ -XM,@,``(L'B5@$B1^+50B+0DR#P`&)0Q2+2A")C53____V@50(```0#X2B```` -XM@^;OB?&)\(/A0"4``@``QX5<____`````(F-4/___XF%3/___XU5V,=$)`P` -XM````QT0D"`````")5"0$BTT(B0PDZ'L(_O^%P`^%HP```(-]X`L/AJL```"- -XM1=@Q]HE$)`2+50B)%"3H10/^_XL3.?H/A+$```"+0P2)0@2+0P0Y^`^$LP`` -XM`(D0B1PDZ$#,_?^!Q,P```")\%M>7UW#C78`]\80````=#")7"00QT0D#``` -XM``#'1"0(`````(M5"(M"3(D4)(E$)`3H$HX``(7`=1Z!S@!```")-"2+31") -XMVHM%".C(_?__Z13___^-=@"^`0```('$S````(GP6UY?7<.+1>#_)(6,YP@( -XMBT,(@'P"_RX/A1D!``"+$S'V.?H/A4____^+0P2)1P2+0P2+$SGX#X5-____ -XMB1?I2/___[X!````Z2'___^+0Q"#P`$[0PQWBX50____A0[%?P@"0A]&J$((0D(]D20-0)T#H/Y"G0)@_D/#X66_O__BT,0#[95 -XMY(M+"(@4`8/``8E#$.E^_O__@WL,'P^&X?W__\=#$`````#I(?[__Y"-="8` -XM_R2-O.<("(E$)`R-0PR)1"0(BT,(B40D!(M-"(D,).A,M_[_A<`/A`3___^) -XM0PCI8?____9%[`(/A%_____WQB`````/A04!``#WQ@`(```/A84$``#WQ@`0 -XM``"-="8`=!&+0QR+4Q"#P`$YP@^$V?[__\=$)`P@````QT0D"`````#'1"0$ -XM`````(M%"(D$).@JS/W_A<")A5C___\/A(S^__^+0Q2+E5C___^#P`'WQA`` -XM``")0A1T1X.]7/___P(/A,@"``"+A5C___^)1"00BT,0B5PD",=$)`0````` -XMB40D#(M5"(D4).@PC```A<`/A3C^___'A5S___\`````B30DBTT0BT4(BY58 -XM____Z-K[__^+C5C___^).8M'!(E!!#D_#X2K`@``BT<$BY58____B1"+C5C_ -XM__^)RXE/!.D<_?__B5\$Z2+E43___^( -XM`HM#",9``0"AH!0)"(7`#X7=`P``BQ4$(0D(BT((@^@!A<")0@@/B.(#``"+ -XM`C'VQ@`*@\`!B0+I2OS__XM#$#M#'`^'"_W___?&$`````^$__S__\>%7/__ -XM_P$```#I\/S___?&$`````^$JOO__XM+$(7)B4V`#X2<^___@[U<____`0^$ -XM'`$```^#!`$``(M%@#M#'`^'??O__XM5"/:"T`,```$/A/,"``"+@L@#``"- -XM!$#!X`(#0A"+0#B)A7#___^+10CV@(@#```!#X2W`@``B<*+@(`#``"-!$#! -XMX`(#0A"+0#B)A73___^+0P@QTL=%D`````")A7S____K%XUT)@"#P@`! -XMBT6`.460#X2)`0``BTV0BX5\____@#P!"77>BXUP____B=`!T3'2][5P____ -XMB8U(____*=&)RNO#B50D$(M%N,=$)`0`````B40D#(U%G(E$)`B+30B)#"3H -XM:XD``(7`#X5S^___BT6DB00DZ!R6_?_'A5S___\`````Z2O]__^)#^E9_?__ -XM@[U<____`P^$U0```.B4D/W_BT,<@\`!.46`#X=D^O__BU,E?W_BT,%7/___P````#KCHM3"#'VBT,0Q@0"`.GD^?__ -XM@^H!B95(____B=`QTO>U=/___S'`BXU(____QX5H____`````"G1.8UP____ -XMB4V,=S.+A7#___^)18CK`XE-B(M%B#'2][5P____BTV(`XUP____@X5H____ -XM`2G1.4V,<]N+18B+58PIPHF5;/___P.5:/___XG0B95X____@\`!.T,,#X>' -XM````BY5X____QT,0`````(E3'(N%:/___X7`=!F+0Q"+4PC&!`()@\`!B4,0 -XM@ZUH____`77GBX5L____A<`/A-K^__^+0Q"+4PC&!`(@@\`!B4,0@ZUL____ -XM`77GZ;S^__^+30B+B8`#``")C73____I3_W__XM-"(N)R`,``(F-$:#R("(0UC'0S0!````B7PD!(DT).BK%_[_AR)1DR+1?")1E`QP.L%N`$```"+7?2+=?B+??R)[%W#BT,T@_@! -XM=+]S"8UT)@#H;XW]_X/X`G7&B7PD!(DT).C:$O[_A53@^P4BUT(QT0D!!#H"`B)'"3H]FO__XD<),=$)`1( -XMZ`@(Z.9K__^)'"3'1"0$@.@(".C6:___B1PDQT0D!,#H"`CHQFO__XD<),=$ -XM)`0?Z0@(Z+9K__^#Q!0QP%M=PXVT)@````"-O"<`````58GE5U93@^Q,BU4, -XMBT)XA<`/A0@!``"+'<#,"`B%VP^$\````(M5"+O`S`@(C77CBT(0]H!4"``` -XM!`^%U0```,=$)`P!````QT0D"`````#'1"0$`````(M%"(D$).CM_OW_A!0[%?P@"0A]#*$((0D(BY20-`@``(A5Y`^V`3'2QD7F78A% -XMY0^V1`H!B$0R!(/"`83`=?")\HM#%(/#&(E4)`S'1"0(#````,=$)`24U`@( -XMB40D$(M%"(D$).@T:___BP.%P'03BU4(BT(0]H!4"```!`^$*____X/$3#'` -XM6UY?7<.#Z`%T!>BKB_W_BT)TBP")1D( -XM"(E$)`B+10B)!"3HGFG__X/$3#'`6UY?7<.-="8`58GE5U93@^PC;0F`````(N&!`0``(7`=(NX8`L)".N&@^@!=`7H28G]_XM"=(L` -XM@W@(`70GQT0D"`H```"+0B"+0!")-"2)1"0$Z)`"``"#Q!RX`0```%M>7UW# -XMBP`/MA@/MM.#^GY_=X/Z6W1J@_I==&6`^WX/A)$```")T,'@!`4`_`@(BW@( -XMA?]T4XM(#`^^$872>!D[%?P@"0A]$:$((0D(NT^-"`CV1)`V`G4%N]+4"`B) -XM?"00B4PD#(E<)`C'1"0$:^D("(DT).C^9___,<#I`O___P^V0`$YT'23C012 -XM@,,!C81!6`$``'1&B30DB40D",=$)`3\Z`@(Z,QG__^#Q!PQP%M>7UW#]H8, -XM!````70MBX8$!```C01`BT2!.(7`#X11____N&`+"0CI4?___XE4)`2)-"3H -XM;O+]_^NLBX8$!```A(M1=(/``8E!>,<$@@````!;7<.-M@`` -XM``"-OP````!5B>564X/L$(M="(MS$,=$)`0!````B1PD_Y:@"```N@$```"% -XMP'0)@\00B=!;7EW#QT0D"`````#'1"0$`````(D<)/^67`@``/:#(`(```%T -XM4(N#&`(``(T$0,'@`@-#$/:#8`$```&+0#B)0S1T1(N#6`$``(T$0,'@`@-# -XM$(M`.(E#.(N#K`0``#'2@^#]@\@%B8.L!```@\00B=!;7EW#BX,8`@``]H-@ -XM`0```8E#-'6\BX-8`0``Z\:-=@!5B>53@^P4BT4,BUT(AGQ,_[_QT40\.H(",=%#`,```")30C) -XMZ=HS_O_'11`4ZP@(QT4,`P```(E-",GIPS/^_XE4)`S'1"0(/.L(",=$)`0# -XM````B0PDZ*EP,_[_58GE5S'_5E.#[!R+10B+=0R+@)@```") -XM1?#H58?]_\<``````(M5\(M:+(/",(E5[(M5\(M",#G'<@^-5P$YT')3BT7P -XMB?L#6"RAH!0)"(7`=6Z+1@2#Z`&%P(E&!`^(W0```(L&#[80@\`!B0:#^O]T -XM78/Z"@^$U````(@3BU7P@\(/]_^GP_O__B30DZ&N)_?^)PND>____BU40 -XM,<").H/$'%M>7UW#D%6)Y8/L&(E=](M=#(EU^(MU"(E]_(M](,=$)`B$```` -XMC1Q;C1S=P,P(",=$)`0`````B30DZ'J%_?^)7B"+11")1F"+112)1F2+11C' -XM1G`!````QT9H`0```(E&;(M%'(7`=`9F@4Y\``&%_\=&>`````")?G1T!L<' -XM`````(M=](MU^(M]_(GL7<.0D)"0D%6)Y8/L&(M%",=$)`CXZP@(QT0D!`0` -XM``")!"3H7S'^_S'`R<.0D)"0D)"0D)"0D%6)Y5=64X'L+`$``(M="(M]#/:# -XML`(```$/A)$```"+@Z@"``"-!$#!X`(#0Q"+4#B%T@^4P(3`#X6%````BU=D -XMA=(/A*<```")4TP/MT]\B<@E8@@``(/X(`^$X`````^/D0```(/X`@^%G``` -XM`(/A!+Y>````#X71````C78`B70D$(VU\/[__XE4)`S'1"0(ANP(",=$)`0` -XM`0``B30DZ$Z%_?_IT````)"-="8`BX.H`@``A<`/E,"$P`^$>____\=$)`A` -XM[`@(QT0D!`,```")'"3H=3#^_[@!````@<0L`0``6UY?7<.0C70F`+(!Z5+_ -XM__^#^$`/A!4!```]``@```^$<@$``(M#((E0$(M#(,=`%`````"-0U")1"0( -XMBT-,B1PDB40D!.COH_[_BT,@9H-(&`'IH@```(GVOBT```"#X00/A#+___^+ -XM1UB)="00C;7P_O__B50D#,=$)`A\[`@(B40D%,=$)`0``0``B30DZ'F$_?_' -XM1"00#````(E$)`R)="0(QT0D!`````")'"3HU?#]_P^W1WPE`!8``#T``@`` -XM#X2A````/0`$``!U*L=$)!`!````QT0D#`````#'1"0(`````,=$)`0:```` -XMB1PDZ`)"_O^)]HN#K`0``*@0=0L-```(`(F#K`0``*D```(`=22#X/J#R`*) -XM@ZP$``"!Q"P!```QP%M>7UW#OBX```#I)O___Y"+0QR#0PP!@P`!C47PB5WP -XMB00DZ"CG``"%P'1+@<0L`0``N`$```!;7E]=PXUT)@#'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$(@```(D<).AH0?[_Z6/___^^*P```.F^_O__B1PD -XMC;8`````Z)OX__^%P'6CQT0D!":Z"`B)'"3H)U___S'`Z3#^__]5B>575E.! -XM[)P```"+10B+?1"+0!")A7#___^+112+,(M%&(L`B85X____BT4/___X7`#X1S`@``.[5X____#X=G`@``QX5T -XM____`````,>%?/___P````#'18"-[`@(ZSR0C70F`(M'"(/H`87`B4<(#X@9 -XM`@``BP?&``J#P`&)!X.%=/___P&#Q@$YM7C___\/@H0"``")G7S___^+G7S_ -XM__^Z'X7K48/#`8G8]^+!Z@5KTF0YTP^%@P```(M5"(M"$/:`5`@```0/A>T` -XM``#'1"0,`0```,=$)`@`````QT0D!`````")%"3HQO']_X7`=1.+50B+0A#V -XM@%0(```$#X6V````BT4DA%?/___P`` -XM``")/"3H4W[]_X7`#X7Z_O__Z4/___^+10S'1"0,GZT(",=$)`0%````B10D -XMB40D".BC,/[_Z>'^__^+#:`4"0B%R75##[]'#HD$).@L?/W_A<`/A;/^___I -XM-?___XF=?/___XD\).CQ??W_A<`/A9C^___IX?[__XD\).A<@?W_B<+IY/[_ -XM_XD\).A-@?W_Z[>-M"8`````58GE5XG75E.#[#R)1=B)3=2+!T5HM'=(L`BQ@/M@.$P'0U -XM#[[`A2#?=0"=0V`.R$/A+P```"-="8`@W]D`0^&7`(``(M%X(7`D'0; -XM@WW4`W0)@#L^#X2O`0``BT7@A7UW#B1PDZ`*"_?^+5=B)7"0(B7PD -XM!(D4)(E$)`SHM_O^_X7`#X4,`@``BT=XA!K`0` -XM``(`!``/A:#^___'1"0$);H("(D,).A>6?__,<#IB?[__XVT)@````"`>P$^ -XM#X5'_O__@\,"@\X"#[8#A,`/A#;^__\/OL"%P`^(*_[__XL-_"`)"#G!#XX= -XM_O__BQ4((0D(ZR6-="8`@\,!#[8#A,`/A`/^__\/OL"%P`^(^/W__SG!#X[P -XM_?__]D2"-@)UV.GD_?__C78`QT0D"`0```"+0B"+`(E$)`2+1=B)!"3H9//_ -XM_[@!````Z>S]__^+1VR#P`&)1"0$BT78B00DZ'7U_?^%P'4=BT]X@\X!B4W@ -XMZ7W]__^X`0```.F[_?__Z+AY_?^+5WB)5>#I8_W__XN!7`,``(T$0,'@`@-! -XM$(M(.(7)#Y7`Z1/^__^+1W2+3=B+4`2+02"+&@^W0!@EA````(/`@`^$@@`` -XM`(M%V(E<)`2)!"3H/L#]_XM-V(U';(E$)`B-1V2)="00B5PD#(E$)`2)#"3H -XM3<']_^DZ_?__BT<@QT0D"`H```"+3=B+0!")#"2)1"0$Z(OR__^X`0```.D3 -XM_?__BT<@QT0D"`D```"+5=B+`(D4)(E$)`3H9?+__[@!````Z>W\__^+0@B) -XM7"0$B0PDB40D".A8FO[_A<")1=QT'8M5V(M"((M`"(D$).@D?OW_BTW8BU7< -XMBT$@B5`(BTW8BT$@9H%@&#__BT$@9H-(&`R+41#'1"0(`0```(M!((M`"(D, -XM)(E$)`3_DIP(``#I'____XVV`````(V\)P````!5B>564X/L$(MU"(M&'(7` -XM='GV0%@$=!.+50RY`P```(GPZ&G[__^%P'44QT0D!`````")-"3HE;_]_X7` -XM=!&X`0```(/$$%M>7<.0C70F`(M%#`^W6'R)-"2!XP`!``")7"0$Z/?P__^% -XMP'72@_L!&<`E`/[__P4`!```"8:L!```@\006S'`7EW#QT0D"`0```"+50R+ -XM0B"+`(DT)(E$)`3H.?'__[@!````ZY:)]E6Y`@```(GEBT4(BU4,7>G,^O__ -XMC;8`````C;\`````5;D!````B>6#[!B)=?R+=0B+50R)7?B)\.BB^O__AQ=P\=$)`0`````B30DZ+^^_?^%P'7=BT4,#[=8?(DT -XM)('C``$``(E<)`3H,O#__X7`=<"#^P$9P"4`_O__!0`$```)AJP$```QP(M= -XM^(MU_(GL7<.-M@````"-O"<`````53')B>6#[!B)7?B+70R)=?R+=0B)VHGP -XMZ!/Z__^%P'0/BUWXN`$```"+=?R)[%W#QT0D!`````")-"3H,+[]_X7`==W' -XM0W@`````B5T,BUWXB74(BW7\B>Q=Z5'?_O^058GE4X/L%(M="(M-#(M#'(7` -XM=#8/MT%\C5%1QT0D$`$```")'"2#X`'WV"'"C4%LB40D#(U!9(E$)`B)5"0$ -XMZ%RP_?^#Q!1;7+B -XM"```@_I`B47P#X2+`0``#X^5````@_H"#X1-`0``@_H@#X0A`0``]H."```` -XM"'0&@\`!B47PBT7PB4-DBT7P@^@!```````C47PB40D!(DT).C- -XM\?W_A<`/A<4```"+1?`Y0VQV`XE#;(E<)`2)-"3H7ES__X7`#X6F````BU7@ -XMA=)T"(M%X(E&3#'`@\0L6UY?7<.+2UCI5____XVT)@````"!^H````!T$X'Z -XM``@``(GV#X5G____Z7'___^->?^Z`0```-'O.?AV!(G"*?J)4V2+1?"#Z`&) -XM0VR)7"0$B30DZ.M;__^%P'4WQT0D!)SL"`B)-"3HMU/__XM%\(E%X(E#9(E# -XM;(E<)`2)-"3HOUO__X7`#X3Z````C;0F`````(/$++@!````6UY?7<.-=@"+ -XMCF0$``"#Z0'ILO[__SG!N@$```!S!8U0`2G*B5-DBT7PB4-LQT7@`````.D% -XM____C10).=`/AIL```"#P`$IT(E#9(M#9(/H`0'(B4-LQT7@`````.FY_O__ -XMD(UT)@"-4?^Y`0```-'J.=!V!(G!*=&)2V2)T`-%\(E#;(M&3(E%Z(M&4(E% -XM[(U%Z,=$)`P!````B40D",=$)`0G````B30DZ-@2_O_'1>``````Z6#^___' -XM1"0(!````(M#((L`B30DB40D!.A3[?__N`$```#I@O[__\=#9`$```#I8?__ -XM_\=$)`2<[`@(B30DZ(U2__^+1?"#P`&)0V2+1?"#Z`$!^(E#;.D(_O__D)"0 -XMD%6)Y8/L&(M%",=$)`C([`@(QT0D!`,```")!"3HSR'^_[@!````R<.0D)"0 -XMD)"0D%6)Y8/L&(M%",=$)`CX[`@(QT0D!`,```")!"3HGR'^_[@!````R<.0 -XMD)"0D)"0D%6)Y5.#[!2+70R#>Q0$=@7H+W/]_XM#%/\DA2CM"`B0,<"#Q!1; -XM7<.+`X/X`71QC5#_C4,,B1.)1"00C4,(B40D#,=$)`@!````B50D!(M%"(D$ -XM).CG[/W_A____C;8`````58GE5E.#[#"+70R-1?2+=0B)1"00 -XMC4,,B40D#(U#"(E$)`B+`XDT)(E$)`3H;^[]_X7`=!.+5?2X`0```(72=26# -XMQ#!;7EW#BT,,A7<.X`0```.ORC;8`````C;\`````58GE -XM5E.#[!"+=0B+70R)]HE<)`2)-"3HQ/S__X7`=3.+0Q2#^`-TZ(/X`73CA<"0 -XM=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X`0```%M> -XM7<.058GE5E.#[!"+=0B+70R)]HE<)`2)-"3H=/W__X7`=3.+0Q2#^`-TZ(/X -XM`73CA<"0=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X -XM`0```%M>7<.058GE5U93@^P\BT4,]D`Q`G0.#[90`8#Z0'0%@/HJ=1N+50AF -XM@[JL!`````^)0P$``(M="`^VDZ@```"+10@/MLJ!B*P$````@```.PW\(`D( -XM#XS(````B="+70B+7UW#QT0D"`4```#'1"0$`````(D4).A$Y___ -XM@\0\N`$```!;7E]=PXM5##'`]D(Q"`^$;____XM"!(U=X(D<),=$)`CZE@@( -XMQT0D!!0```")1"0,Z(IP_?_'1"00`````(E<)`C'1"0$`````(E$)`R+70B) -XM'"3HX]S]_X7`#Y7`#[;`Z1W____'1"0$_P```(M%"(D$).B3U_W_Z3[___^0 -XMD)"0D)"0D)"0D)"0D%6)Y5.)PX/L%(#Z_W0U#[;"C01`C80`4`$```-#$(/` -XM"(D<)(E$)`S'1"0(2^T(",=$)`0"````Z%,;_O^#Q!1;7<.)5"0$B1PDZ#'7 -XM_?_KT.L-D)"0D)"0D)"0D)"0D%6)Y5=64X/L+(M]#`^V5P+V1S$@#[;:=0^+ -XM30B+@9P```"(D(0!``"+50B+@IP```#'@(@!```!````C47LB40D$(U%\(E$ -XM)`R-1>B)1"0(BT7UW#BT7PAAS!P^^`CG8=>PYT77B)5T2)1T")1TB+1RR%P'0.]D`&('0(@V\X`3'`ZX0Q -XMP.N`B?95B>6#[!B)7?B+70R)=?R+=0B)7"0$B30DZ.+^__^Z`0```(7`=22+ -XM0T"+4SR#P`&)4T0QTHE#0(E#2(N&G````,>`B`$```,```"+7?B)T(MU_(GL -XM7<.)]HV\)P````!5B>575E.#["R+?0P/ME<"]DC]_X7`=".+3>RX`0```(7)=`^+10B)VNC'_?__N`$` -XM``"#Q"Q;7E]=PXM%\(7`=.*+3>B^`0```(E-X`'!BT7@`TAV!P^^`CG8=>PYT77@ZYV+=P3K -XMV8M'+(M5Z"M5X(7`B5=`=`;V0`8@=0V+1SR)5TB)1T0QP.N$BT`B`$```0` -XM``"+7?B)T(MU_(GL7<.0C70F`(M#/(E32(E#1.O2D(UT)@!5B>6#[!C'1"0( -XM7.T(",=$)`0"````B00DZ#(8_O_)PU6)Y8/L&(EU_(MU"(E=^(M5#(N&G``` -XM``^V@(0!``"(0@*+AIP```"+F(@!``"#^P1V!>BL:?W__R2=@.T("(E4)`2) -XM-"3HM?W__XG"C78`BX:<````B9B(`0``BUWXB="+=?R)[%W#B?#HR)T%W#B50D!(DT).C4_?__B<+KP(E4)`2)-"3H9/S__XG" -XMZ[")5"0$B30DZ,3^__^)PNN@58GE@^P(BU4(BTT,BX*<````#[:`A`$``(A! -XM`HN"G````(.XB`$```1V!>@$:?W_BX"(`0``_R2%E.T("(E-#(E5",GI=_[_ -XM_XG0Z.#^__^X`0```,G#B4T,B54(R>GM^___B4T,B54(R>E!_?__B4T,B54( -XMR>G5_/__D)"0D)!5B>575E.#["R+10R+?0R+70R+2#")SHG(P>X#@^`"@^8! -XM@_@!BT4,&=*!X0`"``"#XOZ#QS2#P@2#PP&#P#R#^0&)1>`9P`GR]]`APXM% -XM"(E4)!"+5>")?"0(B5PD!(D$)(E4)`SH-:+]_X7`=!&X`0```(/$+%M>7UW# -XMC70F`(M5X(M%"(ET)`R)?"0$B50D"(D$).@&IOW_AR)7"00QT0D#`````#'1"0(`````(M" -XM1(E$)`2+10B)!"3HRN']_X7`#X63````BT4,BT@P]L$(=1>!X0_^__^#R2") -XM2#"+50R+1>PY0DAS73'`]L$$#X19____BU4,@>$/_O__@\E`B4HPZ47___^0 -XMBU4(C47PB40D!(D4).BNX_W_A<`/A27___^+1?"%P`^%9?___XM%#,=`1`$` -XM``#'0$@`````,<#I!____X/X`8U0_QG`]]`APHM%#(E02.N/BT7PBU4(B5PD -XM$,=$)`P`````QT0D"`$```")1"0$B10DZ`GA_?^%P`^%P/[__XM%\(M5#(E" -XM1.DQ____D)"058GE4X/L-(M="(U%^(E$)!"-1?2)1"0,QT0D"`````"+0TR) -XM'"2)1"0$Z,'@_?^%P'0&@WM,`71\BT7XA<")]G1.QT0D%`````#'1"00```` -XM`(E$)`R+1?3'1"0$`````(D<)(E$)`CH,R?__[H!````A6#["B)7?2)PXE]_(EU^(MP$,=$)`0`````B00DZ#S!_?^% -XMP(G'=!>-1AB)1"0(B5PD!(DT).BS5O[_AQ= -XMP\=$)`P`````QT0D"`````")?"0$BT88B00DZ&["_?^%P'4.BT88BT`<@&!8 -XMOS'`Z\*+1AB)!"3HP53^_[@!````Z["-=@"-O"<`````58GE@^PXB5WTB<.) -XM??R)UXEU^(M`$(M`&(7`=&6+7<.+1?0Y0U!RU8/X`8U0_QG`]]`A -XMPHE34.O$58GE@^P8B5WTB<.+02")=?B)UHE]_(E,)`2)'"3_4`2)\HG'B=CH -XM5?___[H!````A57 -XM5E.#["R+70B+>Q#'1>``````Z>,```"0C70F`(N#3`$``(T$0,'@`@-#$(M` -XM.(7`#Y7`A,!T$8GRB=CH3/[__X7`#X6.`0``QT0D%`$```#'1"00`````(M& -XM$(E$)`R+1@C'1"0$`````(D<)(E$)`CH-B3__X7`#X58`0``B1PDZ$;H``#V -XM@ZP$```0="ZAH!0)"(7`#X7#````BQ4$(0D(BT((@^@!A<")0@@/B#`!``"+ -XM`L8`"H/``8D"B1PDZ/>2_O^)'"3HKT'__XU%\(E$)`2)'"3H0/,``(7`#X7R -XM````BT7PA<`/A(H```"#0RP!QT7@`0```(M'?(M`%(7`#X5V____BT4,QT0D -XM#(`!00#'1"0(.@```(D<)(E$)`3H!:(``(7`#X6G````BW-XBT8X@_@!#X2Z -XM````A7UW#B50D!,<$)`H```#H -XM?6;]_^G%_O__@WX0`78-B?*)V.B%_/__AS'1"0( -XM`0```(D<)(E$)`3H@$8!`(7`=".+1>R)!"3H`5'^_[@!````ZYF)V.BC^___ -XMA<"0=8CI;/___XM&&(M0'(M%[(E0'(M%[(M`'(,``8M&&(M0((M%[(E0((M% -XM[(M0((M#(`^W0!AFB4(8BU7LC4),B10DB40D!.BEW?W_BT7LBU!,A=)U"L=` -XM3`$```"+1>R!B*P$``````$`B5L8BT7L@8NL!````!```(E#%#'`Z0S___^- -XMM@````"-O"<`````58GE4X'LM````(V=>/___XD<),=$)!@`````QT0D%``` -XM``#'1"00`````,=$)`P`````QT0D"`````#'1"0$/````.@8W?__BU4,B=F+ -XM10CH>_S__X'$M````%M=PXGV58GE5E.![+````"+=0R+1C3V1C$(C4@!=`R+ -XM5@2#^@)V!(U,`O^-G73___^)3"00B40D#(D<),=$)!@`````QT0D%`````#' -XM1"0(`@```,=$)`0<````Z*3<__^+10B)V8GRZ`C\__^!Q+````!;7EW#C;0F -XM`````(V\)P````!5B>6![+@```")=?R+=0R)7?B+1A2#^`5T"H/X#'19Z"!@ -XM_?^-G73____'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!"P```")'"3H'MS__XM%"(G9B?+H@OO__XM=^(MU_(GL7<.-G73_ -XM___'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D -XM!$@```")'"3HRMO__^NJD(VT)@````!5B>6![+@```")=?B+=0R)??R+?0B) -XM7?3V1C$@=6*+1BP]X``)"'18/>`""0AT4<=$)`R`B$$`QT0D""$```")="0$ -XMB3PDZ&6>``"%P`^%G@```(M?>(-[.`0/A,(```"+1TR)1D2+1U")1D@QP(GV -XMBUWTBW7XBWW\B>Q=PXUV`,=$)!@`````C9UP____QT0D%`````"+1CR)1"00 -XMBT8TQT0D"`(```#'1"0$`0```(D<)(E$)`SH!-O__XN'F````,=`)`````#' -XM1"00`0```,=$)`P!````QT0D"-7:"`B)7"0$B3PDZ`/7_O^%P'0/N`$```#I -XM=?___Y"-="8`BX>8````B=F+4"2)5>B+0!R)\HE%Y(GXZ!/Z___I3O___XD\ -XM).@FXP``QT0D&`````#'1"04`````(M&/(E$)!"+1C3'1"0(`@```,=$)`0! -XM````B40D#(V%8````QT`D`````,=$)!`!````BT,0 -XM@^@!B40D#(M#"(D\)(/``8E$)`B-A7#___^)1"0$Z$_6_O^%P`^%2/___XN' -XMF````(V-R-O5C___^)1"08QT0D%`````#'1"00`````,=$)`P` -XM````QT0D"`````#'1"0$.@```(D\).ASV?__BX:<````BY@P`0``B1PDZ#-C -XM_?^)7"0(B3PDB40D#(U%W(E$)`3H^-3__XM5#(GYB?#HK/C__XM=](MU^(M] -XM_(GL7<.+EM`!``"%T@^$____D%6)Y5.![,0```"-G6#___^-1?2)1"08B1PDQT0D%`````#' -XM1"00`````,=$)`P`````QT0D"`````#'1"0$-P```.B)V/__C47DB40D!(D< -XM),=$)`P'````QT0D"'[`"`CH&M3__XM5#(G9BT4(Z,WW__^!Q,0```!;7<.- -XM="8`58GE5E.![,````"+=0R-1?")1"08C9U<____QT0D%`````"+1CR)1"00 -XMBT8TB1PDQT0D"`(```#'1"0$!P```(E$)`SH!]C__XU%X(E$)`2)'"3'1"0, -XM`0```,=$)`B9[P@(Z)C3__^+10B)V8GRZ$SW__^!Q,````!;7EW#B?95B>56 -XM4X'LP````(MU#(U%\(E$)!B-G5S____'1"04`````(M&/(E$)!"+1C2)'"3' -XM1"0(`@```,=$)`0%````B40D#.B'U___C47@B40D!(D<),=$)`P!````QT0D -XM"':["`CH&-/__XM%"(G9B?+HS/;__X'$P````%M>7<.)]E6)Y593@>S````` -XMBW4,C9U<____C47PBU8TB40D&(D<),=$)!0!````B50D$(E4)`S'1"0(`@`` -XM`,=$)`0#````Z`K7__^-1>")1"0$B1PDQT0D#`$```#'1"0(3XT(".B;TO__ -XMBT4(B=F)\NA/]O__@<3`````6UY=PY"-="8`58GE@>S(````B7W\BWT(B5WT -XMB77XB[>D````A?8/A)T```#'1"0(`0```,=$)`0`````B3PDZ)6R_?^Z`0`` -XM`(7`=`^+7?2)T(MU^(M]_(GL7<.-1>R-G5C___^)1"08QT0D%`````#'1"00 -XM`````,=$)`P`````QT0D"`````#'1"0$%````(D<).A`UO__B30DZ`Q@_?^) -XM="0(B1PDB40D#(U%W(E$)`3HT='__XM5#(G9B?CHA?7__XG"ZX60QT0D"`T$ -XM"0C'1"0$`P```(D\).@("/[_N@$```#I8O___XVT)@````"-O"<`````58GE -XM5E.#[!"+70B+7<.)'"3'1"0(`````,=$)`0`````_Y9< -XM"```BU,@BT-,B4(0BT-0BU,@B4(4BT,@9H-(&`&+@ZP$``"#X/6#R`&)@ZP$ -XM``")'"3'1"0$)KH(".C4-___@\00,6#[!B# -XM^@)T-8/Z`W05@^H!=`+)PXGVC;PG`````.C/6/W_QT0D"(0$"0C'1"0$`P`` -XM`(D$).@#!_[_R<.0QT0D"&0$"0C'1"0$`P```(D$).CH!O[_R<.-M@````!5 -XMB>575E.![+P```"+50P/MD("/"-T.CPK=#H\+70VQT0D"`8```"+30R[`0`` -XM`(M!*(M`"(E$)`2+=0B)-"3HC)T``('$O````(G86UY?72+0#@Y^(F%7/__ -XM_W-XBU7'@Y -XM\'UT@\(!]D2!-4!T:H/#`3G[=>/K"XM=X(7;#X1X`0``QT0D"+\$"0B[`0`` -XM`,=$)`0#````BTT(B0PDZ)`%_O^!Q+P```")V%M>7UW#QX58____`0```.D' -XM____BT4(N@(```"[`0```.@B_O__Z]"+G5S___\[G5S___\/A,`!``"+30B) -XM65#'1"0$`````(D,).@8"`$`BW7%9/___P````"#P#(/ -XMA(P!``")1"0,C47HB40D",=$)`0`````BU4(B10DZ.9X_O^%P(F%9/___P^% -XM8`$``+L!````@<2\````B=A;7E]=PX/X`G8JB[5L____#[94%@&`^EB(E4__ -XM__\/E(57____#X3P`0``@/IX#X3G`0``A,D/A//^__^#^`$/ANK^__^+M5S_ -XM__^+C5#___^#Q@$/MA0Q#[["@_A_#X?3_O__]@2%W10)"`0/A,7^__^`^C@/ -XMA+S^__^`^CG'A6C___^S!`D(QX5@____"`````^%T_[__^F:_O__B9UL____ -XMB9U<____Z5W^__\/MD,!#[[0@_I_#X;#`0``@^@X/`%W0\>%:/___[.@"`C' -XMA6#___\*````@\,!Z9+^__\/OD,!@_A_=PKV!(7=%`D(!'7EB40D!,<$)-H$ -XM"0CHFU7]_X7`==&+30B%R0^$E_[__XM%"(M8$(7;#X2)_O__]H-5"````0^% -XM?/[__XU',CM#>`^'8`,``(M#=(F%9/___XM#>(E%Z(&+5`@````!``")\BN5 -XM7/___SMUY(F5%8/___Q````#IZOS___8$E=T4"0@$#X0O_O__/#@/ -XMA"[^__\\.0^%.O[__^DA_O__@/LKC70F`'0)@/LM#X6!_/__B[5<____BY50 -XM____QX5H____N@0)"(/&`0^^!#*#^'\/AY_[___IS'1"0, -XM"@```,=$)`@`````B00DZ&MS_O^#^`$/A:'^__^+30R+E5C___^`>0(M=0+W -XMVHM-[(7)#X[4`0``A=(/CLP!``"X____?RG(.=`/@[T!``"X`@```.ED_O__ -XMBT4,@'@"*P^$@P$``(M%\#F%6/___P^'+@$``"N%6/___XE%\(.]8/___Q"+ -XME7#___]U`X/J`HM%\(V->/___XE4)`R)1"00BY5H____QT0D!&0```")#"2) -XM5"0(Z"=5_?^)QXN%7/___XE$)`B+1=R)1"0$BY5D____B10DZ$96_?^+G63_ -XM__^-C7C___\#G6S___^)3"0$B7PD"(D<)`'[Z")6_?^+1>0KA5S___\KA7#_ -XM__^)1"0(`W72)1"0,B[5D____ -XMB70D"(M5#(M"-(E$)`2+30B)#"3H2]#]_XG#Z7+]__^)5"0(BX5L____`T7< -XMB40D!(N-9/___XD,).BI5?W_BX5D____BY5P____Q@00`(N%9/___^GR_/__ -XMA=)Y>+@```"`*<@YPGUMN`,```#I$/W__XE$)`R-0WB)1"0(BT-TB40D!(M- -XM"(D,).@4=/[_A<`/A#3[__^)0W3I<_S__X&@5`@``/_^___IQ?G__XM5\(G0 -XM]]`[A5C___\/@E/^__^+A5C___\!T(E%\.ER_O__AD?&@`` -XMBX'``@``C01`P>`"`T$0BT`XB5T0B4T(B44,6UWI_1D``(N!4`,``(T$0,'@ -XM`@-!$(M`.(E=#(E-"(E%$%M=Z=L9``"-="8`C;PG`````%6)Y593@^P0BW4( -XMBYZ<````A=MT8(N#,`$``(7`=`B)!"3H#57]_XN#1`$``(7`=`B)!"3H^U3] -XM_XN#?`$``(7`=`B)!"3HZ53]_XN&G````(N`C`$``(7`=`B)!"3HT53]_XD< -XM).C)5/W_QX:<`````````(/$$#'`6UY=PXGV58GE@^P8QT0D!,P!``")7?2+ -XM70B)=?B)??S'!"0!````Z&Y2_?^%P(G6````BT4,A=N)L)P```#'AJP! -XM````````#X3:````B[N<````BX=(`0``A$`0``,=*( -XMAH0!``"+AX@!``")AH@!``"+A[0!``")AK0!``"+7?2)T(MU^(M]_(GL7<.) -XM!"3H1U/]_X7`B<*)AD0!``!T+8N'2`$``(E$)`B+AT0!``")%"2)1"0$Z(]2 -XM_?^+AT@!``")AD@!``#I5?___\=$)`@`````QT0D!`4```")'"3H@OS]_[H! -XM````ZY$QTL>&B`$```````#K@Y"0D)"0D)"0D)"0D)!5B>575HG.4XMZ,('. -XM`(2$!(G#]\<`(```=`B)SH'.`(2$!O:#``$```$/A*`!``"+@_@```"-!$#! -XMX`(#0Q"+0#B%P`^5P(3`=`.#S@3V@PP!```!#X1E`0``BX,$`0``C01`P>`" -XM`T,0BT`XA<`/E<"$P'0#@\X0]H,\`0```0^$*@$``(N#-`$``(T$0,'@`@-# -XM$(M(.(7)#Y7`A,!T`X/.0/:#E`,```$/A.\```"+@XP#``"-!$#!X`(#0Q"+ -XM0#B%P`^5P(3`=`:!S@```!#V@Z\$```!=`:!S@`(``#V@R0$```!#X2B```` -XMBX,`"`T,0BT`XA<`/E<"$P'0&@'E`````$```")QHU%[(E$)!"-1?")1"0,C47HB40D"(M#-(D\)(E$ -XM)`3HYLC]_X7`=!J+5>R%T@^$!P$``(/.",=%\`````")=>#K%(M%\(7`#X3A -XM````@B%P`^$O0```(M#,(U3`8US/,=$)!``````B70D#"4``@`` -XM@_@!&<#WT"'"C4,TB40D"(E4)`2)/"3HVH3]_X7`=7:+1>#'1"0<`0```,=$ -XM)!@`````QT0D%`````")1"0@BT7PB40D$(M%Z(ET)`B)7"0$B3PDB40D#.BY -XM4P``@\0\6UY?7<.0B5-`Z6W___^+4P2#Z@&-!`*)0T"+5?"#Z@$YT`^&4___ -XM_^O<@\X(Z1?___^-="8`@\0\N`$```!;7E]=PXUS/.EU____C70F`(V\)P`` -XM``!5,'E`````0```")QHU%[(E$ -XM)!"-1?")1"0,C47HB40D"(M#-(D\)(E$)`3H9L?]_X7`=!B+5>RX`0```(72 -XM='B#S@C'1?``````ZQ"+3?"%R74#@\X(@B)1"0(B50D!(DT).B#QOW_A7UW# -XMBU7PA=)UKX/+".NJD(M'!.NOC70F`(V\)P````!5,&E`````````"+5S2)5DR)PXU%[(E$)!"-1?")1"0,C47H -XMB40D"(E4)`2)-"3HL\7]_X7`=&6+5>RX`0```(72=%$QTH/+",=%\`````#V -XM1S$(N`$```!T`XM'!(E$)!R+1>B)7"0@QT0D&`````#'1"04`````(E4)!") -XM1"0,QT0D"`````")?"0$B30DZ`)1``"#Q#Q;7E]=PXM5\(72=!.+1E"#P`$Y -XMPG0.B490ZYV-="8`@\L(ZY2#RPB)5E#KC(UV`%6)Y8/L&(E=^(M="(EU_(MU -XM#(U#4,=#4`````")1"0(BT8TB1PDB40D!.BQ:?[_AQ= -XMZ>#]__^+7?BX`0```(MU_(GL7<.058GE5E.#[#"+=0R-1?2+70B)1"00QT0D -XM#`````#'1"0(`````(M&-(D<)(E$)`3H#,']_X7`=1*+1?2#^`&-4/\9P/?0 -XM(<*)4U"+0Q"+D!@!``"%TG04BY`0`0``:X`<`0``'/9$`A0"=0B)'"3H'=?] -XM_XET)`2)'"3H(?[__X/$,%M>7<.-=@"-O"<`````58GE5U93@^Q,BUT,BW4( -XMBT,PBU,T)0_^__^#R"`[4SR)0S`/A!<"```QR8G:B?#H;/C__XE%T,>&E``` -XM``$```"+0S#!Z`.)QX/G`70SQT,X`````/:&#`$```$/A!X"``"+A@0!``"- -XM!$#!X`(#1A"+0#B%P`^5P(3`#X42`@``BT,TB49,BT,XB490BT80BY`8`0`` -XMA=)T%(N0$`$``&N`'`$``!SV1`(4`G4(B30DZ$K6_?^%_W4,BT,T.T,\#X0* -XM`@``C4,\C5,TB57R-1>B)1"00C47LB40D#(U%Y(E$)`B+0S2)-"2)1"0$Z'#"_?^%P`^% -XM#@$``(M5[#E3.'($@TW0"/9#,0BX`0```'0#BT,$BTW0B40D',=$)!@````` -XMQT0D%`````")3"0@B50D$(M%Y(E<)`3'1"0(`````(DT)(E$)`SHQ$T``(M- -XMU(7)B<-T,87V=!.+1A"%P'0,BU74.5!T#X0E`@``BTW4B0PDZ.U)_?^#Q$R) -XMV%M>7UW#NP$```"#Q$R)V%M>7UW#C47HB40D$(U%[(E$)`R-1>2)1"0(B50D -XM!(DT).BOP?W_A<`/A,#]__^+1>B%P'3!B5PD!(DT).B4^___BP`````Z>'^__^0BT,PC5,!C7L\QT0D$``` -XM``")?"0,)0`"``"#^`$9P/?0(<*-0S2)1"0(B50D!(DT).B:??W_A<`/A2/_ -XM__^+1>R%P'4$@TW0"/9#,0BZ`0````^%T0```(%-T``@(`"+3=")5"0B)1"0,QT0D"`$```")5"0$B1PDZ`6[_?^%P`^% -XM6____XM33(/J`?9',0BX`0```'0#BT<$BTW@B40D'(E4)!C'1"04`````(E, -XM)""+1>R)1"00BT7HB7PD!(D<),=$)`@`````B40D#.C`20``@\0\6UY?7<.- -XM1?")1"0$B1PDZ-F\_?^%P`^%[_[__XM-\(7)#X6&_O__,=+'1>@`````QT7L -XM`````.EZ____D%4QR8GEBT4(BU4,7>DO_O__ZPV0D)"0D)"0D)"0D)"05;D! -XM````B>6+10B+50Q=Z0S^__^0D)"0D)"0D)"0D)!5B>6#[`B+30R+02R%P'0& -XM]D`&('4JA<#'04``````=`KV0`8@=`2#:3@!BT%`BU$\B4%(,<")443)PY"- -XM="8`BU$XA=)USXM%"(D$).C^A0``N`$```#)PXVT)@````!5B>6#[`B+30R+ -XM03B%P'10]D$Q"+H!````=34YPG(HQT%``````(M!+(7`=`KV0`8@=`2#:3@! -XMBT%`BU$\B4%(,<")443)PRG0B4%`Z]B)]HM1!#G"<\CK[HVT)@````"+10B) -XM!"3HA84``+@!````R<.-M"8`````C;PG`````%6)Y5.#[!2+70SV0S$(='"+ -XM0P2#^`%V:(/H`8E#!(E$)`B+0S2)1"0$BT4(B00DZ,SR``")P8E#0(M#+(7` -XM=`KV0`8@#X66````BU,X.=%V1H7`#X2D````]D`&((UV``^$EP```(U!_XE# -XM0(M#-(E32(E#1#'`ZS:-M"8`````BT,LA-M"8`````A!W5`^$*`$``(M+.(/N`8E+2(E[1`^$D0```(M#/#E#-',+ -XMBU-`A=(/A(4```"#:T`!,<#I0____XM#0(M3/(E#2#'`B5-$Z3#___^+4SR+ -XM>S2)5>#KIXM30(M+.(G(B=&)4SB+5>")>SR)0T")UXE3-.N8@TLP"+X!```` -XMZ37___^+4T"+2S@YR@^$KP```#G1#X9T____Z\.%T@^$.?___Y"-="8`Z>O^ -XM__\QP.G)_O__@^@!B4,\C77PB40D!(M%W(ET)!#'1"0,`````,=$)`@!```` -XMB00DZ'BT_?^%P`^%D/[__XM%\(ET)`C'1?``````@_@!C5#_&<#WT"'"BT,T -XMB5-`BU7EO_?__ZPV0 -XMD)"0D)"0D)"0D)"058GE@^P8BU4,QT0D#`$```"-0C2)1"0(#[9"`HE$)`2+ -XM10B)!"3H9=C]_\G#D)"058GE5U93@^Q,BTT,C47HBW4(B40D$(U5Y(U%[(E$ -XM)`R)5"0(BT$TB30DB40D!.B]MOW_A7UW#BT4,BUWLBT@X.=ESRXG*`U7D -XM#[8"#[[P/#Z)=<`/A`0"``!_)SPI#X0M`@``/#P/A!0"```\*(UV``^$^`$` -XM`(/!`8/"`3G9=-(E.0#G##X.C`0``BW4,BU8L -XMA=(/A+P!``#V0@8@#X2R`0``BT8XB5Y$B49(A=(/A*````#V0@8@#X26```` -XMBW4,B=J+1CPYPP^$A@````^#CP$``(GS@\,TBTL$AP/A-\````/M@(\ -XM(`^$O0```#P)#X2U````,<")]NDY_O__#[9%W#M%P'07.46\#X7*_O__@^X! -XM#X7!_O__Z?'^__^#Q@'IM/[__SQ[D'09/'T/A4S^__^[\"H'",=%O'L```#I -XM:_[__[L`+`<(QT6\?0```.E:_O__N_`J!PC'1;Q;````Z4G^__^[\"H'",=% -XMO#P```#I./[__[L`+`<(QT6\*0```.DG_O__NP`L!PC'1;P^````Z1;^__^[ -XM\"H'",=%O"@```#I!?[__XM%[(/"`8E5Y(/H`87`B47L#X4A____BTT,,<"# -XM23`(Z6C]__\/A(8```"+50R)2DB)0D2+30R+42SI9/[__\=$)`@,!0D(Z2G] -XM__^+=0R)3DB)1D3I2?[__XM=#(/#/.EK_O__BUT,@\,TZ7G^__^-1?#'1?`` -XM````B40D"(L#B40D!(M%"(D$).A06/[_A<`/A?'\__^+0P0[1?`/AZC^__^+ -XM30R+432+03SI*O[__SM..`^&R+@'P!``"%P'0(B00DZ-@Z_?^%_W03BT7HB7PD!(D< -XM)(E$)`CHD3G]_XM%$(7`=!R+51"-1@&)1"0(B50D!(M5\(T$$XD$).AN.?W_ -XMBT7LB9A\`0``,<#I-(7`=`;V0`8@=52)V(/X -XM`78IBT4(C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2)!"3HN*[]_X7`=$2[ -XM`0```(E>/#'`QT9``````,=&2`````")7D2#Q#Q;7E]=PY"+1CB%P`^%50$` -XM`(/[`0^$T0$``(-.,`B-0_^)1C3KCL=%W`(```#V1C$(#X4_`0``BT7PA<`/ -XMA70!``#'1=@!````BT4(@^L!C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2) -XM!"3H):[]_X7`#X5I____BTW8A0'K$HUV``^V0@*#P@*$P`^$ -XM5/___XGY.,AUZP^V0@$\(`^$``$``(M-U#I!`G77@VW<`771D.G,_O__@WW8 -XM`8VT)@````!T!>AM,_W_BT7PA<`/A!'___^)1"0$BT7LB00DZ!]X``"%P`^% -XM^O[__X-MW`$/A([^___'1=@`````Z>3^__^0@^@!B48XB=CI0?[__XUV`(M& -XM!`'`B47`"#X7V_O__D(UT)@#I]/[__XUT)@"-O"<`````58GE5U93 -XM@^P\BWT,BTB) -XM3=2)1"00B50D#,=$)`@`````B5PD!(M%"(D$).C"J_W_A@8,?W_C70F`(M-\(7)#X05____B4PD -XM!(M%Z(D$).C&=0``A<`/A6W___^#;=@!='.+3?#'1=``````Z>G^__^+3?"# -XM^0$/AMW^__^+50B+@IP```"+@'P!``")1

.+ -XM5-U[`^V0@$\(`^$F`$``#I&`G7; -XM@VW8`775BT7UW#@?M``@D(#X7, -XM_O__BTB)!"3H%70``(7`#X2F -XM_?__Z9#]__^#;=@!C70F``^%J?W__^FP_O__D(UT)@"+3?"-<_^#^0$9P(U1 -XM__?0(<(Y5S@/A:+]___'1"0$`````(M%"(D$).AB=@``N`$```#IP?W__X/Y -XM`@^%7_[__^E?_O__N`$```"0C70F`.FD_?__BTWPZ#[;` -XM_R2%,`4)"+DY````BX.<````B$H!B(B9````6UW#N3(```#KY[DS````Z^"Y -XM-````.O9N34```"-="8`Z\ZY-@```.O'N3<```")]NN^N3@```#KMXVT)@`` -XM``!5B>575E.#["R+70R+?0B+0S#VQ"`/A<(```#VQ`B^`0```'0#BW,$C4,! -XMB47PC4-$B47L@^X!@_[_#X2N````BT,P)0`"``"#^`$9TO?2(U7PQT0D%`$` -XM``"+1>S'1"0$`````(E4)`B)/"2)1"00C4,TB40D#.BT%?[_A<````B46TC47LB40D$(U%Z(E$)`S' -XM1"0(`0```(M&-(D\)(E$)`3HTZ7]_X7`#X6A`0``BT7LA<`/A$,!``#'1;@! -XM````]D8Q"'0&BU8$B56XBT8TB48\BT8X@^@!`T6XB49`BU7L@^H!.=`/A[4! -XM``#'1;P`````]D8Q(`^$)@$``(7_#X19`0``BU\0A=L/A$X!``#V@U4(```! -XM#X5!`0``BT7L.4-X#X(@/A$\!``"+ -XM5;2+@D`!``"#^`P/A$\!``"+3;2+5<`#5C@/MH$\`0``BTVXB10DB40D!(E, -XM)`CHR"S]_XM%[(E$)`R+1<")1"0(BT8TB3PDB40D!.AGJ?W_B<.%_W03BT<0 -XMA' -XME`````0```"-77UW#BT7LQT7P`````,=%P`````"%P`^$TO[__XE$)`R-1?") -XM1"0(QT0D!`````")/"3HUTS^_X7`=+F)1<"+1>SIJ/[__XU&-+L!````B40D -XM!(D\).B4<```@\1QT6/:'#`$```$/A$,"``"+AP0!``"- -XM!$#!X`(#1Q"+0#B%P`^5P(3`B=%T+HM=Z`^^$X72>"<[%?P@"0A]'Z$((0D( -XM]D20-@)T$XU!_X-%Z`&%P(G!B47L==*+7>B+1>R)7"0$B3PDB40D#(E$)`CH -XM*&']_X7`B<-T_?_IZ?S__\=$)`@'````,=O'1"0$`````(D\).C$;``` -XMZ1_]__^)7"0$B3PDZ,/#``"%P`^$(____^D\_?__@_@)C78`=60QV^GW_/__ -XM@8^L!`````0``+L!````Z>/\__^!H%0(``#__O__Z:'\__^)1"0,C4-XB40D -XM"(M#=(D\)(E$)`3H"DK^_X7`#X3H_/__B4-TZ;K[__^+GP0!``"%VP^5P.G$ -XM_?__#[9%V(M-M(B!/`$``(M%W(F!0`$``.EC^___D)"0D)"0D)"0D)"0D)"0 -XM58GE5E.#[#"+70R+=0CV0S$(=%R#>P0!=%:-0T#'0T``````B40D"(M#-(DT -XM)(E$)`3HN4C^_X7`#X7"````BT,LA7<.+1?2%P'3)C5#_ -XMBT,LB5-`A7<.- -XM=@"#Q#`QP%M>7<.-M"8`````BT,\B5-(B4-$@\0P,6#[#B)7?2+70R-1>R)1"00C47PB77XBW4(B7W\B40D#,=$)`@` -XM````BT,TB30DB40D!.BVHOW_A6#[`B)'"2)="0$BT@\BW!`B4A$B7!(BT`LA/KV(GVC;PG`````%6X`0```(GE4X/L%(M=#/9#,0AT -XM`XM#!(E$)`B-0SR)1"0$BT4(QT0D#`(```")!"3HJO0``+H!````AR+61"-0P@Y`0^$D`````^V@6P$ -XM``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L#Z_"N@$```"#^`)V`XU0 -XM_HU'/(E4)`C'1"0,`````(E$)`2)#"3HHO,``+H!````AR+61"- -XM0P@Y`0^$D`````^V@6P$``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L -XM#Z_"N@$```"#^`)V`XU0_HU'/(E4)`C'1"0,`P```(E$)`2)#"3HLO(``+H! -XM````AED&O__C70F -XM`(E-#(E5"%WI-/___XUT)@!=Z3JX__^-=@"-O"<`````5;H!````B>6#[`B+ -XM30SV03$(=`.+402+030YPG,4*=")PHE!/(M!0(E11(E!2#'`R<.-032)1"0$ -XMBT4(B00DZ"QE``"X`0```,G#D(UT)@!5,<")Y5.#[!2+70SV0S$(=`:+0P2# -XMZ`&)1"0(C4,\B40D!(M%",=$)`P`````B00DZ+KA``"Z`0```(7`=0F)V.BZ -XM^O__,=*#Q!2)T%M=PU6)Y5.#[!2+70S'1"0,`@```,=$)`@`````C4,\B40D -XM!(M%"(D$).ATX0``N@$```"%P'4)B=CH=/K__S'2@\04B=!;7<.-=@"-O"<` -XM````53'`B>53@^P4BUT,]D,Q"'0&BT,$@^@!B40D"(U#/(E$)`2+10C'1"0, -XM`P```(D$).@:X0``N@$```"%P'4)B=CH&OK__S'2@\04B=!;7<-5B>564X/L -XM((M=#(MU"/9#,0AT+(M#!(DT)(E$)`3H79G]_X7`=#N+0P2)0SR)V.C<^?__ -XM,<"#Q"!;7EW#C78`C47TB40D!(DT).C1F?W_A9_?^%P'0/C78`@\0@N`$```!;7EW#BU7TA=)UM>N!D)"0D)"0 -XMD)"0D)!5B>6#[#B)7?2+70R)??R+?1")=?B+2S2+Q=PXGV==,[4T!VSHGVC;PG`````.NP -XMBU-`A=)UTH/H`8E#/(UU\(E$)`2+10B)="00QT0D#`````#'1"0(`0```(D$ -XM).AKEOW_A6#[#B)7?2)TXE-\(M-#(EU -XM^(G&BT,LB7W\BWT0BW2)1?"!BU0(`````0``QT0D%'T&"0B+AIP```"+@#`!``#' -XM1"0,A08)",=$)`BRN`@(B40D$(M%\(D\)(E$)`3H^AS]_XGYQT0D"`$```#' -XM1"0$0````(D$)(M5#(GPZ!?^__^)P^MFC78`,?^%TL=%\`````!U=,=$)!1] -XM!@D(BX`P`0``QT0D#(4&"0C'1"0(LK@("(E$)!"+1?")/"2)1"0$Z)8<_?^) -XM^<=$)`@!````QT0D!$````")!"2+50R)\.BS_?__A?:)PW0,BT80A_?^#Q"R)V%M>7UW#C47PB50D#(E$)`C'1"0$`````(DT).@T -XM//[_A(E4)`R)1"0(BT-TB30DB40D!.CR._[_AZ`0`` -XM`(GVB50D"(M5##')QT0D!"````#'!"0`````Z*/\___)PY"Z`@```.O9B?:- -XMO"<`````58GE5XG75HG&4X/L3/9",2`/A1D"``#V@$P#```!#X7<`0``BX!$ -XM`P``A<`/E<`\`1G`,=(E````^`6`B$`(@_D"#Y3"@^H!@^+P@\(_B40D#(E4 -XM)`B)?"0$B30DZ"Y7``"%P`^%M@$``(M6>(M".(7`#X2H`0``@_@%#X31`0`` -XMBT((BUX0B8.0````BT(0QX,``0``````!(F#E````(M&$(N`&`$``(7`=0K' -XM@P`!```````%BT9,B47$BT90B47,C47PB40D"(V#@````(E$)`2)-"3H!$3^ -XM_X7`#X4\`0``BX.0````B470BX.4````B47(QX.4`````````(M%\(7`#X75 -XM````BX/@````@_@!#X2B`0``@_@"#X2"`0``BT<\B30DB40D!.C.DOW_A<`/ -XMA#X!``"+1RR%P'0*]D`&(`^%T`$``(N+``$``(M=R(7;#X20`0``BT70@#AZ -XM=5V+7LA@^L!#X2O`0``@\(! -XM#[8*#[[!@_A_=PKV!(7=%`D(!'7?C4'3/`$/AE8"``"`^2L/A$T"``"`^5X/ -XMA$0"``#'1"0(/`8)",=$)`0#````B30DZ-?$_?^-M"8`````BT7$B4=$BT7, -XMB4=(@\1,N`$```!;7E]=PXVT)@````"+@$0#``"-!$#!X`(#1A"+0#B%P`^5 -XMP.D3_O__C70F`+@!````@\1,6UY?7<.-=@")3"0(,7UW#BT9,B4<\BT$``!``B5=$#X0?____BTK^___'1"00#````,=$)`P!````QT0D"#\- -XM"0C'1"0$`````(DT).AMA/W_A<`/A;7^___'1"00#````(M%R(E$)`R+1=#' -XM1"0$`````(DT)(E$)`CH/X3]_X7`#X6'_O__BT<\C5W6+10B+50Q=Z"+5>"X`0```(72#X3N````BT4,]D`Q"`^%40$``,=%W`$```"# -XM[@&-5?"-3>R)5"00B4PD#,=$)`@`````B70D!(M="(D<).B`C?W_A<`/A>T` -XM``"+3?"%R73)BUWLB5W8#[8#/'L/A+0````\#`^$K````#PN=:R#^0&0=J:+ -XM5>`/M@*$P'2L+#[9"`H/"`H3`=(B)^SC8=>\/MD(!/"`/A'X` -XM``"+7=@Z0P)UVX-MW`%UU8M%#(EP/,=`0`````"+50R+0CB%P`^%B0```(M" -XM,(-J-`$E#_[__X/(0(E",(-*,`B+70R+0T"+4SR)0T@QP(E31(/$/%M>7UW# -XMBX%0`P``C01`P>`"`T$0BT`XB47@Z>#^__^#;=P!#X7Z_O__ZY"#^0(/A7G_ -XM__^-M"8`````Z77___^+10S'0#P!````QT!``````(M5#(M".(7`#X1W____ -XMBTT,@^@!B4$XZ7____^+50R+4@2)5=SIJ/[__\=$)`0`````BU4(B10DZ(U8 -XM``"#Q#RX`0```%M>7UW#58GE5U93@^P\BT4(]H!8`P```0^$%P(``(G"BX!0 -XM`P``C01`P>`"`T(0BT`XB478!``"+50R+6C2#PP&- -XM5?"-3>R)5"00B4PD#,=$)`@`````B5PD!(M%"(D$).B4B_W_A<`/A?X```"+ -XM3?"%R73)BW7L#[8&/'MT?8M5#(MZ+(7_=!'V1P8@=`L\?71IC;0F`````#P, -XM#X2D````/"YUF(/Y`9!VDHM5W`^V`H3`=(@/ME8!B%7CBU7-U[`^V0@$\('1T.D8"==^#;=@!C78`==:%_W0F]D<&('0@ -XM@^L!D.M_@VW8`0^%./___SQ[B?8/A',!``"+30R+>2R+10R%_XE8/,=`0``` -XM```/A9T```"+10R+4#R)P8M`0(E11(E!2(/$/#'`6UY?7<.#;=@!#X7N_O__ -XMZYJ#^0*0C70F`'6"@VW8`0^%7/___XUT)@#K@(M5#(/K`3E:-`^$[@```(U% -XM\(E$)!#'1"0,`````,=$)`@!````B5PD!(M5"(D4).A9BOW_A -XM_O__D)"0D)"0D)"0D)"058GE5U93@^P\BU4,C7W8BT(TB478BT(XB47R#^`$/ -XMA,T!``"%P`^$I0$``+L!````B7PD!(M-"(D,).C$G/__A<`/A4R# -XM^`(/A.N#@_L"C;8`````=`B%VP^%_O[_ -XM_X/N`8UV``^%\O[__XE\)`2+70B)'"3HNYO__X7`=4*+=>R%]@^%9?___P^V -XM5>@[%?P@"0@/C57___^A""$)"/9$D#8"#X1%____B7PD!(M%"(D$).CMG?__ -XMA<`/A"[___^X`0```(/$/%M>7UW#@_X!#X08____B7PD!(M5"(D4).C`G?__ -XMA7UW##[95Z#L5_"`)"'T,H0@A"0CV1)`V`G47B5PD!(DT -XM).A+F/__AR%P'4K#[9%Z#PI=-T\7739/")TU3PG -XM=-$/MM`[%?P@"0A](*$((0D(]D20-@)T%(E<)`2)-"3HRYK__X7`#X7'_O__ -XMBU78.5R#^`-TY(7`#X6\````#[95Z#L5_"`)"'T,H0@A"0CV1)`V`G7$BT7$@T7, -XM`8E%V(M%R(E%W.F:_O__@/H_#X7?_O__BT70A<`/A(W^__^#;7UW#B5PD!(DT).B:F?__A<`/A#+^___I\?W__XE<)`2)-"3H89;_ -XM_X7`#X7=_?__@WWL`W3FC78`Z0O^__^#Z`$/A5/___^+5=B+1RR)5SR+5=R% -XMP(E70'1B]D`&('1#0!#X0N`0``BX*0`0``BP")@I0!``"+@9P```"+ -XM@)`!``"+0`B)@IP!``"+@9P```"+@)`!``"+0`2)@I@!``"+04")@J`!``"+ -XM042)@J0!``"+03R)@J@!``"+04`Y040/A-4```"+F9P```"-!$"+DXP!``"# -XMZAB--,*+DY`!```YUG90BP*#P`&)0AB+@9P```"+D)`!``"+@(P!``"+0`2) -XM0AR+@9P```"+@)`!``#'0"`!````BX&<````@X"0`0``&(N9G````(N3D`$` -XM`#G6=["+DY`!``"+`H/``8E"&(N!G````(N`D`$``,=`(`$```"+@9P```"+ -XM@)`!``#'0!P`````BX&<````BX"0`0``QD`N`(N!G````(.`D`$``!B+04"# -XMP`&)04")042)03Q;,7<.+F9P```#KDHVV`````(V\)P````!5B>575E.# -XM["R+11"%P`^$"`$``(M`"(E%\(M-%(M]\(7)#X2:````#[X'A<`/B(\```"+ -XM-?P@"0@YQ@^.@0```(L=""$)"(GZ]D2#-@)U&>MP#[X"A(M5&(E""(M-&(M1$(72=)2+31B+00B)5"0(B40D!`'8B00DZ'T* -XM_?_I=____XM%#(7`=12+11C'0!P`````@\0L,575E.)PX/L/(E5U(E-T,#B+5=2+3=B+4@B%R8E5Z`^$80$` -XM``^V$@^^PH7`#XA3`0``BS7\(`D(.?")=>P/C4(!``"+#0@A"0B)3?#V1($V -XM`@^$+@$``(MUZ#';BT78QT7<`````,=%X`````"-!`:)1#@[1>Q],XM-\/9$@38"="F`^@EUTX7;=`?'1>`! -XM````BU70`````=QR)^^L"B#1>0!C0P[*=$[3=QV -XMZHG8BWW)\"M%Z(T4#SG0=&HI1=B)PXM%V"G3B70D!"G>B30DB40D -XM".B*"/W_BU74*5H0*5H8BUWDBTW4@^L!@_O_BU$(=!J+=>2)T(T,%HUT)@#& -XM``F#P`$YR'7VC50:`87_=`V-!#K&`B"#P@$YPG7VBT70QP`!````@\0\6UY? -XM76#[!C'1"0(Y`<)",=$)`0"````B00DZ`*R_?_)PU6)Y5>)QU:) -XMUE.#[#SV10L!B4W8#X1>`0``BT(HA<`/A`L!``"#Z`&)0BB0C70F`(M=V(M& -XM&(M."`^V$X@4`8/``8E&&#'`@\0\6UY?7<.)T0-.$#M.#'8KC48,B40D"(M& -XM"(E,)`R)/"2)1"0$Z"TF_O^%P`^$U0(``(E&"(M5[(M%Z"G"BT8HB57['1>@`````BT7@A``````ZTT\_P^$Q@````^VP(T$0`'``T<0#[:`70$``(E%[(M5[(M%Z#G" -XM#X0)____#X-,_O__*="#1>`!A<")1>@/A/G^__^+1BB%P`^$[O[__X/H`8M6 -XM"(E&*(M%\`^V!`(\"76?C47LB40D$(M&%(E<)`R)5"0$B3PDB40D".@_N``` -XMZYR)1"0,C48,B40D"(M&"(D\)(E$)`3H,R3^_X7`#X3;````BU8@@T80`8E& -XM"(72#X2I_?__Z<+^__^+3@B+5A@/M@01B$01`>F1_?__D,=$)`3_____B3PD -XMZ$!M_?_I-____\=$)`3_````B3PDZ"MM_?_IX_[__XM%W(7`#X0Q_O__,<#& -XM1!`!((/``3M%W'7SZ1W^__^)T`-&"`^V&,8`"8U%Z(E$)!"-1?")1"0,BT84 -XMB3PDB40D"(M&"(E$)`3H>+<``(M6"(M%\(@<`NF*_O__BT7PBU8HBUW@`T8( -XM`U8@`U7@B00DB50D"(T4&(E4)`3HF03]_^G5_?__N`$```#I[?S__\=$)`3_ -XM____B3PDZ(9J_?^+3@B)PNEN_?__C;8`````C;\`````58GE5U:)UE.#[$R) -XM1#B+5`"`T(0BT`XB47,BUX8,)^"G0`47@.5X8=]^+5>`QVSE5 -XMU,=%V`````!V'8G3B=`QT@'[]_>+1>`ITSE=U`^#O````(M=U"G#BT7-=@"+1BB+?C2%P(E^$'1#@R'WBPLYT715 -XMBT,$B4$$BT,$B0B)'"3H=S/]_\=$)`@!````BT84@\`!B40D!(M%\(D$).@: -XMQ0``@_@!&=LA\^N%D(M&((7`=;:+1@C&!#@@@T8@`8-&$`&#"0CKI8M#!(E! -XM!(L+ZZ>-="8`C;PG`````%6)Y5=64X/L7(E%U(M%#(E5T(E-S,<``````(M" -XM&(M2)#G0B578#X1,`0``BUW0C4C_BW,(`"+7<"#Z0$I -XM^X/'`3M-V'12BW7`B?CWV`^V%#`/ML([1>!]#8MUR/=$AC0`!0``=3*`^E]T -XM+3M%X'W&BU7(]D2"-@)TO.L7UW#B7PD -XM!(D<).C2(/[_A<`/A+<```"+11#'``$```"#Q%PQP%M>7UW#QT0D$`$```"+ -XM0R")1"0,BT,7UW#BUW(]T2#-``%```/A%+^__^A_"`) -XM"+\!````BUW`B47<@^D!@^L!@\B+2AB+0QR#Z0&) -XMR@-3"(E%Y*$((0D(B7WLB47PZPLY2R1T)(/J`8/I`0^^`H7`>`\[1>Q]"HM] -XM\/9$AS8"=32#Q@$[3>1UUXET)`2)%"3H%Q_^_X7`=0Z+?>B##P2#Q!Q;7E]= -XMPXM%Z(,@^X/$'%M>7UW#@\(!.4WD=,PY2R1UU^O%D(VT)@````!5B>57B==6 -XM4X/L'(M"&`-""`^V$(A5\\8``(M'&(/H`8G#`U\(@#L8=#"+3QPYP70IBUNBT<8BU<(#[9-\X@,`HM' -XM""EW&(M7&"EW$(A<`O^+5RB%TG4HBU<@A=)TD(M'&`-'"`-'*(E4)`B-%#") -XM5"0$B00DZ)'\_/_I;____XM'&`-'"(E4)`B-%#")5"0$B00DZ'/\_/_KO8VV -XM`````(V\)P````!5B>575HG&4X/L#(NXG````(-X-`&)^0^$TP```(N7J`$` -XM`(E0/(N'I`$``(E&1(N'H`$``#M&1(E&0`^$Y````#G0B=-R,HM&$(E<)`2# -XMPP''1"0(`````(DT)/^0D`@``(M&$(DT)/^0;`@``#E>0'/4BXZ<````BT8\ -XMBY&,`0``C01`@^H8C03"B8&0`0``]H84`@```75RBXX,`@``AL`0`````` -XM`(/$#%M>7UW#BX8,`@``C01`P>`"`T80BU@XA=L/E,#K@(.OD`$``!CI8/__ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y5=64X'LO`(``(M%"(M5"(M-"(MU%(M`$(F% -XMB/W__XN2G````(F5?/W__X&)K`0```````B#P7B+70B)C8S]__^+6W@YRXF= -XM8/W__P^$6A$``#D+#X1;"```BUT8@\,@BX6,_?__B00DZ$`M_?^)7"0,BWT8 -XMB70D!(E\)`B+10B)!"3HIB[]_X7`B85@_?__#X3H!P``BU4(BXU@_?__BT)X -XMB0&+G8S]__^)600Y6GP/A$$/``"+=0B+O6#]__^+1GB)>`2+E6#]__^+10B) -XM4'B+C6#]___'03@$````BUT(BT-,B4$4BU-0B5$8BUT8A=L/A#]``"%P`^%3P8``(M%**@0=$B+ -XM52"%TG1!B[U@_?__QT0D#`````#'1"0(`````(E\)!"+12")1"0$BU4(B10D -XMZ"7M__^%P`^%#08``(M''(E'&.L9D(UT)@"H`@^%"`8``(N=8/W__XM#&(E# -XM)/9%*D!T(8NU8/W__P^V31R+1AB+5@B(#`*#P`A`!@T8D`8E&&/9%*`@/ -XMA6(&``#V12M`QX6@_?__`````'0OBWT(]H>0!````0^%>08``(M5"(N"B`0` -XM`(7`#X2"!@``BTT(BTDX*<&)C:#]__^+O8C]___'1=P`````]H=4"````0^$ -XMB@4``/9%*@3'A9#]__\"````#X1V!0``BU4H]\(````"=!:)T"7__W__B44H -XMB<+'A9#]__\`````B="+30@E````"(/X`1G`@>(```0`]]"#X`.#^@&+E6#] -XM__^(A:C]__\9P/?0@^`$B47@BT(4B4%,BT(8B4%0QT0D!`$```")#"3H?J0` -XM`(7`#X76!```BUT,]D,Q(`^$QP@``,>%F/W__P````#'A%I/W__P````#'A=3]__\`````QX64_?__`````,>%P/W__P`` -XM``#'A)O83]__^+M=3]__^%]G0:BY6$_?__@'H,(`^$ -XM!Q\``,>%U/W__P````"+C83]___V010(#X68"P``@[V8_?__`@^4PH.]F/W_ -XM_P0/E,&$TG4$A,ET3(M%X(/@[_9%*@2)1>!T!H/(!(E%X(32=!6+G83]__^+ -XM0Q"#Z!"#^`$/AM8B``"$R700BX6$_?__@W@0#`^%8R,``,>%F/W__P````"# -XMO%`D(`74@BY5@_?__BT4(Z)7X -XM__^%P`^%$`<``,>%R/W__P````"+G83]__^+2Q"#^10/AD@'``#V12A`#X32 -XM"@``BX6$_?__#[90##L5_"`)"`^-:0T``*$((0D(]D20-0(/A%D-``"#^0H/ -XMA%`-``"#^0\/A$<-``#'1"0(<`@)",=$)`0"````BU4(B10DZ+2?_?_V12L" -XM#X65#```BXV@_?__A%S/W__P````"+A7S]__^+@%P!``"% -XMP`^$@@P``(M-"/:!KP0``!!U*HN%Q/W__X7`=2#'1"0(`````,=$)`0````` -XMB0PDZ'1X``"%P`^%+`(``(N%H/W__X7`=1"+70B+0Q"+@!@!``"%P'4UB[5@ -XM_?__BWT(BT84B4=,BT88B4=0,<"#O:#]__\`B3PD#Y7`B40D!.B%H0``A<`/ -XMA=T!```/MH6H_?__J`*)A5S^__\/A/T```"+50B#>C0!#X3I````BXU@_?__ -XMBTD8@_D!B8TX_O__#X;<&P``B[5@_?__BUX(B[4X_O__#[9$'O\\7(B%/_[_ -XM_P^$#AL``(M5"/:"?`,```$/A+<:``"+@G0#``"-!$#!X`(#0A"+4#@/OH4_ -XM_O__B10DB40D!.B`\/S_A"(MV&(FU./[__P^V1![_B(4__O__#[:5 -XM/_[__SH3#X6O&```@[TX_O__`G0+@'P>_EP/A)L8``"+30R+432+03B)442) -XM04B`I:C]___]]D4K`@^%4OS__^D=!0``#[:%#/___SGP#X0N&@``.<,/A0(7 -XM``"#K2#^__\!#X7U%@``BY7\_O__.Y5X_O__#X(&_O__#X6;)@``BX4`____ -XM.X5\_O__#X+N_?__BTT(B5%,B4%0QT0D!`$```")#"3H]9\``(7`=5&+70CV -XM@UP"```!#X1-)@``BX-4`@``C01`P>`"`T,0:T`X9,=$)`Q`````B40D",=$ -XM)`0`````BWT(B3PDZ/]@_?^%P`^$A_W__XVT)@````"X`0```('$O`(``%M> -XM7UW#BXU@_?__BT$8QT$D`````(E!'.GL^?__QX60_?__`````.E[^O__BUT8 -XMB[U@_?__@\,@.5\,#X*6]___BY5@_?__A?;'0B@`````QT(D`````,="(``` -XM``#'0AP`````#X3#"```BTT8B4H0B4PD"(ET)`2+0@B)!"3H%?+\_^F_]___ -XMBT48B[U@_?__*=")1R#I]_?__XN=8/W__XM#"(M3&,8$$""#0Q`!@T,@`<=$ -XM)`@#````BT,4B40D!(MU"(DT).CGM0``Z6?Y__^+AX@$``"-!$#!X`(#1Q"+ -XM0#B%P`^%?OG__XM="/:#A`0```$/A!((``"+@WP$``"-!$#!X`(#0Q"+0#B) -XMA:#]___I7_G__XN]8/W__XM'&`-'"(T,&(M%"/:`#`$```$/A/4=``")PHN` -XM!`$``(T$0,'@`@-"$(M0.(72#Y7`A,!T08N%G/W__X7`=##O93]__\"#X15(```B70D -XM$(N-8/W__XM!&(E,)`C'1"0$`````(E$)`R+70B)'"3HPN3__X7`#X5-`0`` -XMQX64_?__`````(M&'(E&&(N%T/W__X7`#X3(````BX5@_O__A$(N-8/[__P%.&(N=,/[__XE>*(N]+/[__XE^(,>%T/W_ -XM_P````"+?BB%_W4LBUX@A=MU)8M&$(/``3M&#`^'("```(--*`B+5@B+1AC& -XM!`(@@T8@`8-&$`''1"0(`@```(M&%(E$)`2+50B)%"3H-[,``(N-8/[__XFU -XM8/W__XF--/[__X7`#X1S^?__BU4(BT)XBU@4ZPF)]H7;=!J#ZP&)7"0$BTT( -XMB0PDZ$IF_?^%P'3FA=MU!;L!````BW4(N`$```"#CJP$``!`B5Y,QT90```` -XM`('$O`(``%M>7UW#_R2-J`@)"(UUM,>%F/W__P````#'A%I/W__P````#'A=3]__\`````B;6$_?__QX64_?__`````,>% -XMP/W__P````#'A`7`$```````#'@%@!````````QX!4`0`` -XM`````(E<)`2+50B)%"3HM(4``,=$)`0!````BTT(B0PDZ(&:``#'A<3]__\` -XM````B[V$_?__@W\("P^&UP,``(N=A/W__XE<)`2+=0B)-"3HDE;]_X.]D/W_ -XM_P(/A!,+``#V1>`$=`KV12H"#X7-!0``]D4H")!T$8N]8/W__XM/((7)#X7P -XM!```]D4K`0^$R@```(N%8/W__XMP*(7V#X3^````BU4(,=N+2GB)RNL2BT(0 -XM`T(LBQ(!PSF5C/W__W03.Y5@_?__=>:+O6#]__^+1QCKX3E=&`^&C````(U% -XMT,=$)!``````B40D#,=$)`@#````BT$4B40D!(M%"(D$).AO8OW_A(F%$/[__P^% -XMCP0``,=%T`````"+0Q")1"0,BT,(B40D"(M#%(E$)`2+30B)#"3H.F;]_X7` -XM#X6U_/__BU70A=(/A3,0``"+`$=!?V12H"=!&+E6#]__^-3>"+10CH;NS__XN%D/W__X7`="R+O83]__\/ -XMMD\,#[;1.Q7\(`D(#XS)`0``@/E?QX60_?__`0````^$R0$``(M%*(G9B00D -XMBY5@_?__BT4(Z&+B__^%P`^%/?O__X.]F/W__P,/A``)``"+O>[__X-O$`&#;R`!Z0/[__^)P2G1Z4KZ___'1"0(!P```,=$)`0````` -XMBTT(B0PDZ`PI``#II?K__XET)`2+50B)%"3H"(```(7`#X2G^?__Z3OU__^+ -XM10B!B*P$````!```N`$```#I*?7__XN-I/W__X7)#X5E!P``BT4HJ0````(/ -XMA5<'``"+O83]__^`?PP`#X5'!P``BY5\_?__BY)$`0``A=(/A(_^__\E__]_ -XM_PT````"B44HQX60_?__`````.E9\/__BY5@_?__C4W@BT4(Z#?I___I'?K_ -XM_XM%"(U-T(G:Z#7=___I9OO__XE$)`R)T(/`#(E$)`B+0@B)1"0$BTT(B0PD -XMZ.$%_O^%P`^$'/C__XN=8/W__XE#".G+_?__B[5@_?__BT88.T8<#X<(\?__ -XM]D4H$`^$_O#__\>%E/W__P,```#I[_#___9%*00/A.7P__^+E6#]__^Y`0`` -XM`(M%".ACXO__A<`/A;[W___IM?S___9%*!")]@^$N?#__XN]8/W__XM?&(7; -XM#X0/\?__@[V4_?__`0^$LA,```^#.A$``(NU8/W__XM&'(7`#X2$\/__`T8D -XM.<,/AWGP__^+10@QR8GRZ/[A___IS_#__XN=8/W__XM#&#M#'`^'5O#___9% -XM*!`/A$SP___'A93]__\!````Z3WP__^+O6#]__^+7QB%VXG9#X3?"@``BX5@ -XM_?__.4@D#X.D!0``BY5@_?__BT("-7PS'A9C]__\#````@\@0@^#[B47@ -XMZ8#Z__^+C6#]__^+41B%T@^$MPD``(N=8/W__SM3)`^&4`0``(NU8/W__XM& -XM'(7`=`8YPHG!=Q"+O6#]__^+3R3'1QP`````BY5@_?__BT(H`T(8*E!____B[U@_?__BT<8BU%S/W__P$```#I&>[__XM%*&:%P`^)#>[__X-] -XM)`$/AA\5```E__]__PT````"@VTD`:@!B44H#X7A%```J0````%T&HNU8/W_ -XM_XM&*,=&*`````")1B"!92C____^QX60_?__`````,>%I/W__P````#IDNS_ -XM_XNU-/[__XFU8/[__XM5*/;&"`^$F@4``('B```"``^%Z0H``(M5"/:"KP0` -XM``$/A?0-``"+C6#]__^+01@[021W!\=!.`(```#VA:C]__\"#X3^!P``BYU@ -XM_?__BT,D@\`!.4,8#X+I!P``QT,X!0```(NU8/[__XFU-/[__^G,]?__QX7( -XM_?__`0```.GZ]___BY5@_?__BT4(Z('E__^%P`^%_//__\>%R/W__P````#I -XMV_C__\=$)`@#````BT,4B3PDB40D!.CSI@``A<`/A'KW___IR?/__XVV```` -XM`(G(@\`,B50D#(E$)`B+00B)1"0$BW4(B30DZ&$!_O^%P`^$^>___XN]8/W_ -XM_XE'"(M%T.GSZ/__BXU@_?__BT74`T$(B50D"(/``8E$)`0!V(D$).AKXOS_ -XMZ>+H__^-!!.%VXE%U`^$,^G__XGPC1P>Q@`@@\`!.=AU]ND?Z?__B[6$_?__ -XMC5X,Z:3W__^+52CWP@````(/A=[T__^+G8C]___V@U0(```!#X3+]/__BYV$ -XM_?__C47<@>(```(`B40D"(U%V(E$)`2)%"2+E6#]__^+10B#PPR)V>@@X?__ -XMA<`/A=OR__^+1=B%P`^$B/3___9%*H`/A#GL__^+M:3]__\IQHGP@^@!B86D -XM_?__Z2'L__^+52CWP@````(/A=/V__^+A8C]___V@%0(```!#X3`]O__C47< -XM@>(```(`B40D"(U%V(G9B40D!(D4)(N58/W__XM%".BBX/__A<`/A5WR__^+ -XM1=B%P`^$AO;___9%*H`/A+OK__^+E:3]__\IPHG0@^@!B86D_?__Z:/K__^+ -XMA6#]__^#:!@!@T`H`>GM]O__C47DB40D!(M5"(D4).C(CP``A<`/A0/R__^+ -XMC:#]__\[3>0/A_#V__^+72B+M6#]__^+O6#]__^A""$)"(F=%/[__XMV&(GQ -XM@^D!B;4<_O__B!4Y\'T1B[T8_O__]D2'-@(/A>,.``"+O6#]__\Y -XM3QQUQ,=%V`````#I9_;___9%*P(/A=3J__^+10CH5MC__^G'ZO__B[V8_?__ -XMA?\/A?$```"+32CVQ0$/A)($``"+70@/MI-4`0``@^(!#X2&"```BX-,`0`` -XMC01`P>`"`T,0BW`XA?8/E<"$P`^$8`0``(32#X1B#```BWT(BX=,`0``C01` -XMP>`"`T<0BT`XBYV$_?__#[X`#[93##';.=`/E,.!X0```0`/A!P$``"+=0@/ -XMMI;``0``@^(!#X0$"```BX:X`0``C01`P>`"`T80BT`XA<`/E<"$P`^$Z@,` -XM`(32#X3E"P``BU4(BX*X`0``C01`P>`"`T(0BT`XB[6$_?__#[X`#[96##G0 -XM#Y3`#[;0@^L!#X1A!@``@^H!#X3[!P``BY6$_?__]D(4`0^$AP,``(.%P/W_ -XM_P&!O<#]__\``0``#X^@!P``]D4J@`^$$NC__XN=I/W__XNU?/W__X/#`6O# -XM'#N&2`$```^'4PD``(NUA/W__XN%?/W__VN5I/W__QR+B$0!``"+!HD$"HM& -XM!(E$"@2+1@B)1`H(BT8,B40*#(M&$(E$"A"+1A2)1`H4BT88B40*&(F=I/W_ -XM_^FAY___QT0D!/____^+10B)!"3HK4;]_^GAY/__A<`/A$0%```YT`^&(/[_ -XM_XU0_XN%8/W__XE0&`^VC:C]__^#X0)T#8N=8/W__XM#",8$$""+M6#]__^+ -XM1AR#1B@!.488C__^DR^?__QT0D!/____^+30B)#"3H -XM.T3]_XG!Z>?D__^)1"0,B="#P`R)1"0(BT((B40D!(M-"(D,).C%_/W_A<`/ -XMA`#O__^+G6#]__^)0PCI"/3__X.]D/W__P(/A(\%``"+G9#]__^%VP^%:P0` -XM`/9%X`1T"O9%*@(/A04*``#V12@(=!6+G6#]__^+2R"%R70(@VL0`8-K(`&+ -XMM6#]__^+1A")1C2+1AB)1C")1A#'1"0(`P```(M&%(E$)`2+?0B)/"3HFJ$` -XM`(7`#X5U[O__BT8@QT8L`````(M>*/9%*P&)A9S]__\/A-KK__^%VP^$TNO_ -XM_XM.&`-."`^^$872#XA`[/__.17\(`D(?S+I,^S__XN58/W__X/!`8-"+`&# -XMZP$/A,4)```/OA&%T@^($NS__SL5_"`)"`^-!NS__Z$((0D(]D20-@)UQ^GU -XMZ___D(NU8/W__XM&%(E#3(M&&(E#4,=$)`0!````B1PDZ,Z)``"%P`^%)NK_ -XM_XV%>/[__\=$)`P#````QT0D"`````")1"0$B1PDZ)2;``"%P`^%_.G__XM& -XM%(V]_/[__XF%_/[__XM&&(/H`8F%`/___XE\)`2)'"3H!6?__X7`#X7-Z?__ -XM#[:%#/___S';QX4@_O__`0```#PI#[;P#Y7#@^L!@^.MB(4G_O__@\-[C97\ -XM_O__B50D!(M-"(D,).B^9/__A<`/A8;I__^+A1#___^%P`^$O.C__X/X`G0% -XM@_@$=%F/W__P(```#I,>;__\>% -XMP/W__P````#I@?S__S'2Z4'\__\QV^G*^___BT4(@:"L!```____]^E<\O__ -XMBX5@_?__BW`DBT@8QT`<`````.F#]?__QT0D"`,```"+0Q2)1"0$BW4(B30D -XMZ'J?``"%P`^%5>S__^FF[___BXU@_O__B8TT_O__Z>KM__^-12B)^8D$)(N5 -XMC/W__XM%".B6V?__A<`/A"'L__^+2!B)A6#]___I]?3__XU%*(D$)(N5C/W_ -XM_XM%".ALV?__A<`/A/?K__^+4!B)A6#]___I'_;__XM]"(NU8/W__XN'G``` -XM`(M>%&:!B,@!``"``(GX@:>L!```____Y^A:WO__A<`/A1+H___VA5S^__\! -XM#X1W!0``BT4,BU`TBT`XB95X_O__B85\_O__N$````"+O6#]__^+5PB`.B\/ -XMA&D(``")1"08QT0D%`````"+C6#]__^+01B#Z`&)1"00C4(!B40D#(M%#(/` -XM1(E$)`B-A7C^__^)1"0$BW4(B30DZ`?-_?^%P`^4P(3`#X3P!```BWT,BU4( -XMBT=$B4),BT=(B4)0@*6H_?___HM"$(NX&`$``(7_#X2N"@``BT4(Z`C-__^% -XMP`^%4.?__XM-"(N!G````&:!H,@!``!__XN!G````(&)K`0``````!B+M6#] -XM__^+@)`!``"+`(E&%(N!G````(N`D`$``#D8#X0^YO__QT0D#`````#'1"0( -XM`````(E$)`2)#"3HO4L``(7`#X7EYO__BWT(BT<0QT0D!`````")/"3_D)@( -XM``#I_N7__\>%D/W__P$```#IAOO__XM-"(N1=`,``.E-Y?__C44HB00DBXU@ -XM_?__BY6,_?__BT4(Z*+7__^%P(F%8/W__P^%FN/__^DBZO__@X4@_O__`>G0 -XM_/__@_X"#X2?Y?__@'P>_EP/A93E___IV>3__X72=!*+O6#]__^+1Q@[1R0/ -XMA8GY__^+A6#]___'0#@!````Z8#K__^H!`^%NP,```^VE:C]__^+A6#]__^# -XMX@*+2!B)E4#^__\YS@^"_0,```^VA:C]__^#X`*)A4#^___I>O/__\=$)`@# -XM````B[U@_?__BT<4B40D!(M%"(D$).B4G```A<`/A6_I___I^O3__XM=#(M3 -XM-(M#.(E31(E#2.GHY/__]\(````"#X7>_O__B[V(_?__]H=4"````0^$R_[_ -XM_XN=A/W__XU%W('B```"`(E$)`B-1=B)1"0$B10DBY5@_?__BT4(@\,,B=GH -XM1-?__X7`#X7_Z/__BT78A<`/A(C^__^+E6#^___V12J`B94T_O__#X11XO__ -XMBXVD_?__*<&)R(/H`8F%I/W__^DYXO__C78`QX74_?__`````.DGXO__BWT( -XMBX>X`0``A<`/E<#I`/C__XMU"(N>3`$``(7;#Y7`Z7[W___'1"0$`0```(M- -XM"(D,).@X0/W_A<`/A2,'``#V12L"QX7`_?__``````^%9^[__^G-X?__BY5@ -XM_?__BUH8QX7<_?__`````,>%Q/W__P````"#^P$/A,H&``"+M6#]__^+/?P@ -XM"0BA""$)"(MV"(F]9/W__XF%V/W__\>%6/[__P````"-3![_B;5T_O__ZP@Y -XM1R1T0(/I`0^^$8G8*X58_O__@^@!A=)X&3N59/W__WT1B[78_?__]D26-@(/ -XMA9,'``"+O6#]__^#A5C^__\!.4<<=;N)RRN==/[__XN58/W__XM"$(/``3M" -XM#'8SB40D#(G0@\`,B40D"(N-=/[__XE,)`2+=0B)-"3H._7]_X7`#X1VY___ -XMB[U@_?__B4<(BX5@_?__`U@(B9UP_O__`YU8_O__B9UL_O__#[8SQ@,JC9UX -XM_O__QT0D&`````#'1"04`````,=$)!``````QT0D#`````#'1"0(`````,=$ -XM)`0`````B1PDZ!M.__^)7"0$BU4(B10DZ!Q#_O^%P`^%]^;__XN%6/[__X/` -XM`8E$)`R+C7#^__^)7"0$B4PD"(M="(D<).A^4?[_A<`/A#0'``"+E6S^__^) -XM\(@"Z2W@__^-M"8`````B40D#(GP!4@!``")1"0(BX9$`0``B40D!(M]"(D\ -XM).A,]/W_A<`/A(?F__^)AD0!``#I=O;__\=$)!`$````QT0D#`$```#'1"0( -XME@@)",=$)`0`````B10DZ)%`_?_IW_'__X.]E/W__P,/A'4#``#H#M'\_X"- -XMJ/W__P'I+OO__XMU#(M&2(M61(F%?/[__[A(````B95X_O__Z83Z__^-4?^+ -XMC6#]__^#02@!B5$8#[:=J/W__X/C`HF=0/[__W0'BT$(Q@00((N]8/W__XM/ -XM&(M'"`^^5`'_A=(/B!S\__\[%?P@"0@/C1#\__^A""$)"/9$D#8"#X4GW___ -XMZ?O[__^+E6#]__^+0@@/MEP!_P^^TX72>!P[%?P@"0A]%*$((0D(N0$```#W -XM1)`T``4``'4(,"+10CHCM7__^GE]?__BTT(BX&X -XM`0``Z2+T__^+50B+@DP!``#II?/__XNU8/W__X-N&`B@!B[V$_?__QX68 -XM_?__`````(U?#.D/Z?__BUT(BX,$`0``A<`/E<#I$>+__XNUG/W__X7V#X1( -XMXO__#[X1A=(/B#_B__\Y%?P@"0A_-NDRXO__B[5@_?__@\$!@T8L`8.MG/W_ -XM_P$/A!;B__\/OA&%T@^(#>+__SL5_"`)"`^-`>+__Z$((0D(]D20-@)UP^GP -XMX?__C5@,QX68_?__`````.F"Z/__BX5@_?__BU`%:/___P````")5"0, -XMB40D",=$)`0`````BWT(B3PDZ#[Q_?^%P(G"#X1WX___B85D____BT8%E/W__P(```"+7AB)A6S___^)A7C___^+ -XMC6#]__^+00C&1`/_((M!*`-!&"M!),=!'`````")02B+022)01CIAMS__XE$ -XM)!C'1"04`````(M'&(/H`8E$)!"-0@&)1"0,BT4,@\!$B40D"(V%>/[__XE$ -XM)`2+10B)!"3H1,G]_X7`#Y3`Z9CW__^+E6#]__^+0AR%P`^$R-O__P-")(/` -XM`3G##X>ZV___QX64_?__`````.E@____]H44_O__"(U"`8F%*/[__P^$WP$` -XM`(N%8/W__XN]8/[__XM8((/K`8F=+/[__XMP*"F]'/[__XN='/[__XFU,/[_ -XM_XE8&(NU8/W__XM&$(/``2M&("M&*,=&(`$````I^(E&$(N%8/W__\=`*``` -XM```/OAJ%VWAP.1W\(`D(?FBA""$)"/9$F#8"=%R+G6#]__^#:Q@!@VL0`3M+ -XM''1)B[5@_?__B=,[3B1U-.LZ.Q7\(`D(?3*A""$)"/9$D#8"=":+O6#]__^# -XMZ0&#;Q@!@V\0`3E/''00@^L!.4\D=`@/OE/_A=)YQHN%A/W__\=%V`$````/ -XMME`,.Q7\(`D(?26A""$)"/9$D#8"=!G'A=#]__\!````QX74_?__`0```.GA -XM[/__QX70_?__`0```.G2[/__BTH(,-O'A5C^__\`````B8UT_O__Z9_Y___' -XM1"0(,`@)",=$)`0#````BUT(B1PDZ%)Z_?_IO?C__XER>.EWW___B70D$(N% -XM>/___\=$)`0`````B3PDB40D#(V%7/___XE$)`CH;<3__X7`#X7XX/__A?\/ -XMA(P#``"+5Q"%T@^$@0,``(N%9/___SM"=`^$60,``(D$).C_T/S_QX64_?__ -XM`````.E\W___#[:5J/W__X/B`HF50/[__^F-ZO__B[U@_?__BX5@_?__BYU@ -XM_O__B[5@_?__BW\@B;TL_O__BT`H*9T<_O__B[T<_O__B84P_O__B7X8BX4L -XM_O__QT8@`````/?8*T8H*=@!1A#I&O[__\=$)`0`````B10DZ$)\``"%P`^$ -XM.O7__^F5W/__C5D!*YUT_O__Z7GX__^)1"0,C48,B40D"(M&"(E$)`2+10B) -XM!"3HRNW]_X7`#X0%X/__B48(Z;/?__^+G33^___'A:3]__\`````QX60_?__ -XM`````(F=8/[__^E`Z___B[U@_?__BT<8.T'__XN58/W__XM")(/``3E"&`^"3.'__\=".`4```#I0.'__XN-\/[__XGP -XMBYWL_O__BY5L_O__A#]__^)G03^__^(`G4BBX7<_?__A<`/A=38__^+ -XM30B+01")#"3_D&0(``#IP-C__X/I`0^$_P$``(M5"(N-!/[__XM2$(F5`/[_ -XM_XL!BP")A4C^___'1"0$+P```(D$).@IR_S_A<`/A+#]__\KA4C^ -XM__^#ZP&#P`&%VXF%[/W__XF=#]__\QVX/J`HF5:/W__^LDC70F`#N=:/W__W0]BXT$_O__B[7L_?__BT29 -XM"(/#`3MP"'<;B[WL_?__BS"+C>S]___\.?^+O4C^___SIG3%QX7L_?__```` -XM`(N%X/W__XN-!/[__\>%3/[__P8```"%P`^.6`0``(NUX/W__XF-5/[__\>% -XM:/[__P````"+E>S]__\#E4C^__\/M@*$P'1XB=/'A?3]__\`````ZR:+50@/ -XMML"-!$`!P`-"$`^V@%T!```!A?3]__\/MD,!@\,!A,!T,#S_==;'1"0$_P`` -XM`(M-"(D,).CY-/W_Z]:)="0$BW4(B30DZ.@R_?_IY?#__XUV`(N=]/W__SF= -XM:/[__W,&B9UH_O__@^X!#X2"`P``B[U4_O__BT<$@\<$BP")O53^__^)A4C^ -XM___I3?___XMU"&N&5`(``&3IM]G__XN%`/___^ELV?__@:)4"```__[__\>% -XME/W__P````#I(=S__XN%9/___^F#_/__BX7@_?__@^@!B85P_?__Z;W^__^+ -XMA>S^__^+`(L`B85$_O__B00DZ`[._/\YA5C^__^)PP^$P````(N%6/[__XNU -XM1/[__X7`#Y7`#X6&````A=MT1XN-8/W__XM!*(7`=1/I`0$``(MX*(/&`87_ -XM#X3S````#[8&B[UP_O__B`>+A6#]__^#QP&)O7#^__^#:"@!@T`8`8/K`77+ -XMB[5P_O__B;5L_O__Z6P!```/M@:#ZP&#Q@&+O7#^__^(!X/'`8.M6/[__P&) -XMO7#^__\/E<`/A'K___^%VW72A,`/A&[___^+A6#]__^+E5C^__\I4!@!4"CI -XM5____XNU1/[__SG`B<&+O7#^___\\Z8/A2?___^+A=S]__^%P`^%J]7__XV% -XM_/[__XE$)`2+A43^__^)!"3HH3]__^-7#,!B9UL_O__@[W@_?__`0^%IM3__XV%_/[__XE$)`2+ -XMA>S^__^+`(L`B00DZ)C'_/^%P`^%@M3__P^WA03___\E`/```#T`0```#X5K -XMU/__B[U@_?__BT%W/W__P$```#I -XM//+__XE$)`R)^(/`#(E$)`B)7"0$BT4(B00DZ!'H_?^%P`^$3-K__XG"B4<( -XMZ6O___^+M6#]__^#Z`&)1BCKGXN%X/W__XN5!/[__XT,@HN%:/[__[JKJJJJ -XM]^+!Z@*-%%*-5!(&B95,_O__BUT(BY.L!```QX7H_?__`````/?"````$'06 -XM@>+____OB9.L!```QX7H_?__`0```(MU"(M&.#F%3/[__P^'Q0$``(/H`3'2 -XMB[W@_?__][5,_O__.?B)A7C]__\/@@@#``#'A?#]__\!````BY7P_?__,<#' -XMA?S]__\`````P>("B95L_?__BY5X_?__A=(/A"T!``"+G?#]__^+O03^___' -XMA?C]__\``````<.--(>)G5#^___ID@```(D<).AVR?S_BX4`_O__]H!4"``` -XM!`^%U@$``(N54/[__SF5X/W__P^&V@```,=$)`Q/C0@(BX5,_O__*X4(_O__ -XMQT0D!'Z?"`B)1"0(BTT(B0PDZ"*C_O^+G0#^___V@U0(```$#X6&`0``@X7X -XM_?__`8N]\/W__XN%>/W__P&]4/[__P.U;/W__SF%^/W__W1UC570B50D"(L& -XMBP`#A>S]__^)1"0$BTT(B0PDZ#AE_?_'1"0$GZT("(E$)`B+?0B)PXD\).BO -XMHO[_BTW0A#]__^%P'XY -XMBYW@_?__ZPN-M@````"#ZP%T)HET)`C'1"0$?>D("(M5"(D4).C4H?[_BXT` -XM_O__]H%4"```!'35BWW0A?]T(HM="(7;=!.+70B+0Q"%P'0).7!T#X1C`0`` -XMB30DZ*#'_/^+M0#^___VAE0(```$#X0&`0``BYT`_O__@Z-4"```^XN%Z/W_ -XM_X7`=`V+=0B!CJP$```````0BX7L_O__B[W@_?__BQ"--+B+6@B+$HF5=/W_ -XM_XN5L:C70F`(N]=/W__P^V!!,Z!#MU!X/#`3G+=>J+A7#]__^#[@2# -XMZ`&)A7#]___KG8N-=/W__\>%Q/W__P$```")C43^___I?_G__XN%X/W__S'2 -XM][5X_?__@_H!@]C_A<")A?#]__\/A>#\___'1"0$)KH("(M%"(D$).@&H/[_ -XMBY4`_O__]H)4"```!`^%^O[__XM-"(D,).B8G_[_Z??^__^)1"0,BL```"+@YP```"+@)`!``"+`(&+K`0``````!#'0U``````B4-,BU44 -XM@)QU:)SE.#["R%P(E5W`^$Y@```(M8$(7;#X3;````]H-5"``` -XM`0^%S@```(M5"#E3>`^"3@$``(M+=(E-X(M#>(E%\(&+5`@````!``"+10B) -XM="0$B40D"(M5X(D4).@\P_S_BTW@BT40BU7@`U4,C5P!`3G:7UW#BT4(QT7P`````,=% -XMX`````"%P`^$.____XM%",=$)`0`````B3PDB40D#(U%\(E$)`CH*^']_X7` -XMB47@#X42____NP$```#KK8M5"+L!````B50D#(M-X(E,)`B+1=R)/"2)1"0$ -XMZ+<\_?^%P`^%8?___^E:____@:!4"```__[__X/$+(G86UY?7<.-0WB)5"0, -XMB40D"(M#=(D\)(E$)`3HO.#]_X7`=)B)0W3IC/[__U6)Y5=64X/L+(MU#(M> -XM-)"-1>R)1"00C47PB40D#,=$)`@!````B5PD!(M%"(D$).B+-_W_A575E.#["R+10SV0#$(BW@TBW`X#X7`````QT7@`0`` -XM`(U%\(U-[(E$)!")3"0,QT0D"`````")?"0$BT4(B00DZ-@V_?^%P`^%H``` -XM`(M5\(72=1F+10S'0$@`````@VW@`71%,?;KN)"-="8`BT7@`?`YPG='BTT, -XMC5K_B=`I\"E%X(E92(M-[(D4)(GZB5PD"(ET)`2+10CH#_W__X7`=56+5>"% -XMTG4FBT4,B7A$,<"#Q"Q;7E]=PXUT)@"+30R-6/^)04C'1>``````Z[>#QP$Q -XM]NE'____BTT,BTD$A`/A3;____KO9"#_P%T$H/O`>NR@\0LN`$```!; -XM7E]=P\=$)`@!````QT0D!`````"+30B)#"3H/@$``+@!````ZXN0D)"0D)"0 -XM58GE4X/L!(M-"(M=#(N1G````(M!+(F"@`$``(M1'`^V0EB$P'@@@\B`B$)8 -XMQT(T`@```(U#1(E%#(E-"(/$!%M=Z:E%_?_V0S$@=0\QP(-Z-`(/E<"#P`&) -XM0C2+0C2#^`%T"H/X`G3+Z(:[_/^-0T2)10R)30B#Q`1;7>GO0/W_ZPV0D)"0 -XMD)"0D)"0D)"058GEBU4(BT4,QT!(`````(M"'(!(6("+0AS'0#0"````B54( -XM7>DV0_W_D)"0D)"058GE5E.+30R+50B#Z0&#^?]T00^^`H7`>$.+-?P@"0@Y -XM\'TYBQT((0D(]D2#-@)U&^LJ#[Y"`87`>"(Y\(UV`'T;@\(!]D2#-@)T$8/I -XM`8/Y_W7?6[@!````7EW#6S'`7EW#C;8`````C;PG`````%6)Y8/L&(M%$(M5 -XM"(M-#(/X!W8"RFN:/W_QT40 -XM8`H)",=%#`(```")50C)Z9=H_?_'11!["@D(QT4,`@```(E5",GI@&C]_X/X -XM!0^5P`^VP(/``HE,)`S'1"0(E@H)"(E$)`2)%"3H7&C]_\G#B4PD#,=$)`BP -XM"@D(QT0D!`,```")%"3H/FC]_\G#C;8`````C;\`````58GE@^P8BT4(QT0D -XM"(P)"0C'1"0$`@```(D$).@/:/W_R<.-M@````"-O"<`````58GE@^P8BT4, -XMAQT0D"-@)"0C'1"0$`@```(M%"(D$).C39_W_R<.0QT0D"*P) -XM"0C'1"0$`@```(M%"(D$).BU9_W_R<.-=@!5B>6#[!B+10C'1"0(O@H)",=$ -XM)`0"````B00DZ(]G_?_)PXVV`````(V\)P````!5B>6#[#B)7?B+70R)=?R+ -XM=0B%VW1:C47TB40D$,=$)`P`````QT0D"`$```"+`XDT)(E$)`3H]3+]_X7` -XM=2.+1?2#Z`$Y0P1T)L=$)`@$"@D(QT0D!`(```")-"3H'F?]_XM=^(MU_(GL -XM7<.-="8`B30DQT0D"`,```#'1"0$`````.CH_?__BUWXBW7\B>Q=PXVT)@`` -XM``"-O"<`````58GE@^PHB5WXBUT,B77\BW4(A=MT&HU%](E$)`2)-"3HJS3] -XM_X7`=1^+`SM%]'(BQT0D"`(```#'1"0$`````(DT).B(_?__BUWXBW7\B>Q= -XMPXDT),=$)`@H"@D(QT0D!`(```#H=F;]_XM=^(MU_(GL7<.0D)"0D)"0D)"0 -XMD)!5B>575HG&4XG+@^P\B57,QT70`0```/9",0AT!HM"!(E%T(M5S(U-W(M" -XM-(E%W(M".(E%X(E,)`2)-"3HCT;__X7`#X47`0``BT7PAP[%?P@ -XM"0@/C0T!``"A""$)"/9$D#8"#X3]````C57#??`$=9"+3"+3"+??"%_P^%Y?[__P^V5>P[%?P@ -XM"0@/C>S^__^A""$)"/9$D#8"#X3<_O__Z<#^__^A""$)"&8Q__=$D#0`!0`` -XM=0Z`^5\/E<`/MOB0C70F`(U-W(E,)`2)-"3H\4+__X7`#X5Y____BUWP@_L$ -XM#X0,____A=MU/P^V3>P/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X6F```` -XM.Q7\(`D(?0^A""$)"/=$D#0`!0``=9^`^5]TFHM%T(7`#X0"____A=MU&`^V -XM5>P[%?P@"0A]+:$((0D(]D20-@)T(8U5W(E4)`2)-"3HA$7__X7`#X7L_O__ -XM@WWP!`^$@?[__X-MT`&#?=#_#X1S_O__BU7POP$```"%T@^%-/___P^V3>P/ -XMMM$[%?P@"0@/C`'___^`^5\/E<`/MOCI$____XUV`#L5_"`)"'T3H0@A"0CW -XM1)`T``4```^%6____X#Y7P^%[/[__^E-____BT7@.T$XD`^%&_[__XG(@\`T -XMB40D!(DT).A9^___N`$```#I5/[__S'`Z4W^__^%R0^%W_W__^DB_O__C70F -XM`(V\)P````!5N0$```")Y8M%"(M5#%WIO/S__XVV`````(V_`````%4QR8GE -XMBT4(BU4,7>F?_/__ZPV0D)"0D)"0D)"0D)"058GE5XG75HG&4XG+@^P\QT70 -XM`0```/9",0AT!HM"!(E%T(M'-(E%W(M7.(U%W(E5X(E$)`2)-"3H(T/__X7` -XM#X4+`0``BU7PA=)U(`^V5>P[%?P@"0@/C0$!``"A""$)"/9$D#8"#X3Q```` -XMC47P[%?P@"0A]T:$( -XM(0D(]D20-@)TQ8M%T(7`#X1+`@``C47"+1?"%P`^%\?[_ -XM_P^V5>P[%?P@"0@/C?C^__^A""$)"/9$D#8"#X3H_O__Z/___XM=\(/[`@^$$/___X7;=4(/MDWL#[;1.Q7\(`D(?0RA""$)"/9$D#8" -XM=2>+1+1="% -XMP`^$`O___X7;=1@/ME7L.Q7\(`D(?2VA""$)"/9$D#8"="&-1=R)1"0$B30D -XMZ(!"__^%P`^%Z/[__X-]\`(/A(+^__^#;=`!@WW0_P^$=/[__XM%\,=%S`$` -XM``"%P`^%+____P^V3>P/MM$[%?P@"0@/C/O^__\QP(#Y7P^5P(E%S.D,____ -XM.Q7\(`D(?1.A""$)"/=$D#0`!0``#X5:____@/E?#X7H_O__Z4S___^+1=P[ -XM1S1T&XM5X.DA_O__BT<\B5=(B4=$@\0\,FL_/__C;8`````C;\`````53')B>6+10B+ -XM50Q=Z8_\___K#9"0D)"0D)"0D)"0D)!5B>575HG&4XG+@^P\B57,QT70`0`` -XM`/9",0AT!HM"!(E%T(M5S(U-W(M"-(E%W(M".(E%X(E,)`2)-"3HGS___X7` -XM#X6;`0``BU7P@_H!#X0O`0``A=)U$`^V3>P[#?P@"0@/C`L!``"%VP^%70(` -XM`(-MT`&#?=#_#X1\````D(U=W(E<)`2)-"3H83[__X7`#X5-`0``BT7P@_@" -XM=%R%P'48#[95[#L5_"`)"'W1H0@A"0CV1)`V`G3%BT70AP/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X7:````.Q7\(`D(?0^A -XM""$)"/=$D#0`!0``=:.`^5]TGHM]T(7_=1B+1`[0S@/A9K]__^)V(/`-(E$)`2)-"3H -XM\O3__[@!````Z4'^__^!^D`""0@/A!G^__^!^I`#"0@/A4W]___I"/[__XUT -XM)@"-O"<`````5;D!````B>6+10B+50Q=Z1S\__^-M@````"-OP````!5,"+0S"-4P&->S3'1"00`````(E\ -XM)`@E``(``(/X`1G`]]`APHM%X(E4)`2)-"2)1"0,Z#?E_/^%P'4CBT7@QT0D -XM#`````")?"0$B30DB40D".@8Z?S_Z6G___^-=@"X`0```.E<____C;8````` -XMB4-`BT,X@_@!C5#_&<#WT"'"B5-(Z7/___^0D)"0D)!5B>564X/L,(M=#(MU -XM"(M3,(U+`8DT)(G0)0`"``"#^`$9P/?0(<'!Z@.-0SR#X@&)1"0,C4,TB50D -XM$(E$)`B)3"0$Z)CD_/^%P'0,@\0PN`$```!;7EW#BT,\`T9T@\`!*T,TB49T -XMC47TB40D$,=$)`P`````QT0D"`$```"+0T2)-"2)1"0$Z&,D_?^%P'6[BT,P -XMJ`AU*R4/_O__@\@@B4,PBT7T.4-( -XM7<.#Q#`QP%M>7<.0D)"058GEBT4,4XM="(E#/(E#1(M#-(/H`3E#/'8&B4,\ -XMB4-$BXN<````BT,\BY&,`0``C01`@^H8C03"B8&0`0``,<"#BZP$``!`6UW# -XMD(UT)@!5B>6#[#B)7?2+70R)=?B+=0B)??SV0S$(#X51`0``BT,TB47PBT7P -XM]D,Q$(E#1(M#.(E#2'1>BU,(A=)T5P^VAFP$``"#X`&)QP^%5@$``(N.9`0` -XM`(G(.=!S%XGXA,!T#(T$2<'@`@-&$(M(.(G*B4L(B50D!(DT).@Q____AQ=PP^V4P*`^BT/A+0!``!V8X#Z+@^$1`$``(#Z -XM7G5>]D,Q"`^$J@$``(M%\,=$)`@`````B30DB40D!.B-:```AQ=PXVV -XM`````(M#"/\DA1@+"0B)7"0$B30DZ%I"``"%P'2AN`,```#KS(-[$!)U++@0 -XM````C70F`.N)BT80B30D_Y!D"```N`0```#KJ(M5\+@"````A=)TCNN:N`4` -XM``#KDXVV`````%6)Y5=6B<93@^P\B%7D#[;2C5K0C7W8B4W0ZP:-="8`B<,Q -XMTHGYB?#'!"0*````Z`S___^#^`5U:`^V5>2#^G]W;/8$E=T4"0@$=&*-!)N- -XM1$+0.=ASR3'2B?F)\,<$)`H```#HU_[__X/X!74S#[9%Y(/X?W<*]@2%W10) -XM"`1UUL=$)`S_____QT0D"'`+"0C'1"0$`P```(DT).AO4_W_@\0\N`$```!; -XM7E]=PXM%T(D8@\0\,`)B46P#X0\`0``]D7D`G0)BT40QP`!````BTT(#[9]W(7) -XM#X2F`0``B?J`^B(/A.8```")^0^VT8/Z?W<.]@25W10)"`0/A8\!``"+50S' -XM`@````")^8#Y(@^$=@(``(GX/'X/APD!``")^(GZB`,/ML#!X`0%`/P("(#Z -XM1(E%M`^$'0,``(M%M(L`A<`/A,0$``")^8#Y?@^$*P,``(M%M(E#*(L`A<`/ -XMA-8$``"+1;2+0`2)1;B+0S#VQ`@/A$D"``#W1;@```0`#X4\`@``BT4(A<`/ -XMA`$&``"+?0@/MA>`^GX/A%P&```/ML+!X`2+@`C\"`C'1"0(!@```(E$)`2+ -XM1:R)!"3HM^C__S'V@\1\B?!;7E]=PXM5"(72#X0-`0``QT0D"``````Q]L=$ -XM)`0`````BTVLB0PDZ(/H___IG?[__XM-L(7)=6''1"0(O0L)"+X!````QT0D -XM!`(```"+3:R)#"3H9U']_^EQ_O__//\/A$D$``"+5:P/ML"-!$"-A`!0`0`` -XM`T(0@\`(QT0D"`0````Q]HE$)`2+?:R)/"3H&^C__^DU_O__@WVP`@^%5?__ -XM_XM]K#'VBT<0B3PD_Y!D"```Z4'____'1;`"````Z4[^__^`^3"-M"8````` -XM#X1A_O__BT6LC4L$Z,_\__^%P`^%$/___X%+,``(```QTHM]#(U-T,<'`0`` -XM`,<$)`(```"+1:SHX_O__X/X!0^$B0```(G&Z;+]___'!"0`````BT6L,=*- -XM3=#HO_O__X/X!77@@WW@"0^$N?[___9%Y`)T"8M]$,<'`0````^V1=PQTH%+ -XM,``"``"-3="(0P''!"0"````BT6LZ'_[__^#^`5UH(-]X`D/A'G^___V1>0" -XM=`F+11#'``$````/MGW`)#X3@_/__ -XM]D7D`HUV`'0)BTT0QP$!````#[9]W`^V`XGZ.-`/A8#\___IW?[__\=$)`@8 -XM#`D(QT0D!`,```"+?:PQ]HD\).AB3OW_Z9C\___W1;@```(`#X7%!0``BTVT -XM]D$&$`^$4OO__XU%\(E$)!"-1>R)1"0,QT0D"`$```"+?:R+1TR)/"2)1"0$ -XMZ,L9_?^%P`^%3/S__XM?4(M%\#G8B46@=F>+3>P/O@09A<`/B,(#``"+%?P@ -XM"0@YPHE5G`^.N0,``(L]""$)"(E]I/9$AS5`#X2)!0``C10+ZR8/OD(!A<`/ -XMB+($```[19P/C:D$``"+3:2#P@'V1($U0`^$F`0``(/#`3M=H'72QT0D"*0+ -XM"0@Q]L=$)`0"````BWVLB3PDZ()-_?_IC/K__P^V`SQ$#X0/`P``B?8/AWT! -XM```\0P^$\P(``(M%M(7`#X46^___,?;IB_O__XGZ@/HN#X3M`0``,=N#?>`) -XM#Y3#@\,$@/K_#X3Q`P``BTVL#[;"C01`C80`4`$```-!$(/`"(E<)`CI._O_ -XM_\=$)`3_````BTVLB0PDZ.X(_?_IM?O__XM-K(N!!`0``(7`#Y7`Z03^___W -XM1;@``(``=0GVQ`(/A=P```#W1;@````!#X0*_?__QP0D`````(M%K#'2C4W0 -XMZ./W__^#^`4/A0#\__^#?>`)#X39^O__]D7D`G0)BU40QP(!````#[9%W(%+ -XM,``"``"(0P'IP?S__\<$)`````"+1:PQTHU-T.B:]___@_@%#X6W^___@WW@ -XM"0^$D/K___9%Y`*-=@!T"8M5$,<"`0````^V1=PQTH%+,``"``"-3="(0P'' -XM!"0"````BT6LZ%/W__^#^`4/A7#[__^#?>`)#X1)^O__]D7D`G0)BTT0QP$! -XM````#[9]W.F#^?__BTVTBT$(Z0_Z__\\4P^$C@$``#Q9C78`#X5X_O__QD7P -XM7\8#>8U%\,=$)!`,````QT0D#`$```")1"0(QT0D!`````"+5:R)%"3HR0S] -XM_X7`#X7:^?__#[8#P>`$!0#\"`B)1;3I+/[__XM%K/:`#`0```$/A#,!``") -XMP8N`!`0``(T$0,'@`@-!$(M`.(7`#X1X^?__H6@+"0CI>OG__XM-J(7)#X1) -XM^?__BU6LBX*<````BX"``0``.T(L#X53`@``@4LP`"```,=#*%`#"0CI,?C_ -XM_\<$)`````"+1:PQTHU-T.@^]O__@_@%#X5;^O__@WW@"0^$-/G___9%Y`)T -XM"8M5$,<"`0````^V1=P/MM"#^G^(0P(/AS_[___V!)7=%`D(!`^$,?O__XM% -XMK(U+".BP]O__A<`/A?'X__^!2S``$```,=*-3=#'!"0`````BT6LZ,WU__^# -XM^`4/A>KY__^#?>`)#X3#^/__]D7D`G0)BTT0QP$!````#[9%W(A#`NG5^O__ -XMQD7P),8#8^F0_O__QD7P),8#9.F$_O__QD7P7\8#8^EX_O__BWVLBX<$!``` -XMA<`/A%#X___IT_[__Z'\(`D(B46<#[84"P^^PH7`#XC"````BST((0D(B7VD -XM.P7\(`D(#XVU````BWVD]T2'-``%```/A*0```#'1;P!````C3P9B=F#P0$[ -XM3:!S/@^V5P&(59L/OM*%TG@9.U6R)7"0$BXR)5:"+/?P@"0B)?9SIM?[__XM-J(M1,/;& -XM(`^$S````(M#,/;$"'05BT6H@,X(B5`PBT,$BU6HB4($BT,P]L0"=`H/MD,! -XMBTVHB$$!QT0D"$P```"+?:B)'"2)?"0$Z#2?_/_IFO7__\<$)`````"+1:PQ -XMTHU-T.BG\___@_@%#X7$]___@WW@"0^$G?;___9%Y`)T"8M5$,<"`0````^V -XM1=R(0P+I^?G__P^V%`L/OL+I*/[__XE$)`R-AS0!``")1"0(BXS\````BT4(BS"-18R+5A#'1"0(3````,=$)`0` -XM````B00DB948____Z%^;_/^#3;P@BUX0B[Z<````QT0D!`(```")-"3_DZ`( -XM``"%P'00N`$```"!Q/P```!;7E]=P\=$)`@!````QT0D!`````")-"3_DUP( -XM``"+AJP$``"#X/J#R`+VAB`"```!B8:L!```#X0I!P``BX88`@``C01`P>`" -XM`T80BT`XB8>T`0``]H9@`0```8E&-`^$]@8``(N&6`$``(T$0,'@`@-&$(M` -XM./:&;`0```&)1C@/A+`&``"+AF0$``"+5C2-!$#!X`(#1A"#^@&+0#B)1D2) -XM1CP/A*0&``"#Z@$YT`^'E0D``(M&-(/H`8E&0(N>G````,=&2`````#'1"0$ -XM&````(N#M`$``(/``8D$).B=F_S_A<")@XP!```/A"<*``"+CIP```"+1CR+ -XMD8P!``"-!$"#ZAB-!,*)@9`!``"+AIP```"+D(P!``"+1DR)`HN&G````(N` -XMC`$``,=`!`````"+AIP```"+@(P!``#'0`@!````@8ZL!```H````&:#C\@! -XM```%BU80QT0D"`$```"+1B"+0`B)-"2)1"0$_Y*<"```BYZ<````BT80BX@8 -XM`0``AB% -XM_W5;BX:<````C56,QT0D"$P```")5"0$!9@```")!"3HJ)O\_XN&G````(&( -XMR``````@``#V1;T$=!"+AIP```"!B,@`````"```BX:<````@:#(`````/[_ -XM_XM%O"7P`0``@_@@#X0"!```#X8Q!0``/8`````/A.D#```]``$``(VT)@`` -XM``!T$(/X0`^%(`4``,=%U`````"-1=2)1"0(BT70B30DB40D!.A(N/W_A<`/ -XMA+4#``#'1"0$`@```(DT).@``_W_A<`/A7@#``"+1A#V@%0(```$#X0H`P`` -XM@Z!4"```^\=$)`0"````B30DZ-$"_?^%P`^$^@$``,=$)`C0#`D(QT0D!`,` -XM``")-"3H$43]_XN&K`0``/;$$`^%^@$``/;$"`^%60(``(N%&/___X"X5`@` -XM``!X#?:&K`0```$/A,W]__^+50B),HM^$(M?"(U'"(U7$(F%+/___\>%*/__ -XM_P`````YPXF5%/___W5-Z9$&``"+0P2)0@2+0P0YA2S___]T?(D0BY44____ -XMB1.+1Q2)0P0[5Q`/A#@&``"+1Q2)&(E?%(.%*/___P&+7P@YG2S___\/A$D& -XM``"+@YP```"+@(P!``"%P'08B00DZ&&:_/^+@YP```#'@(P!````````BQ,Y -XME2S___]UAHM#!(E'#(M#!#F%+/___XL3=82)5PCK@8DT).@3)?W_A<"0#X6: -XM_O__BY48____QT7H`````(M"?(M`%(7`#X6+_?__C46,QT0D"$P```"-?>C' -XM1"0$`````(D$).AUEOS_BY:<````C47LB40D!(U-C(GPB7PD",<$)`````"! -XMPI@```#H6>___X/X!`^&0@(``(M-M/9!!P(/A%P#``#VAF0#```!#X1+!P`` -XMBX9<`P``C01`P>`"`T80BT`XA<`/E<"$P`^$,`,```^V18P\_P^$=0@```^V -XMP(T$0(V$`%`!```#1A"#P`C'1"0("````(E$)`2)-"3H5`W__^F__?__QT0D -XM"-D+"0C'1"0$`P```(DT).@70OW_BX:L!```]L00#X0&_O__@.3O#0````*) -XMAJP$``"+=A2+GIP```"+5A#'1"0(`0```(M&((M`"(DT)(E$)`3_DIP(``!F -XM@XO(`0```<=$)`0!````B30DZ)M$``"%P`^%&OK__XN&K`0``/;$"`^$J_W_ -XM_XUT)@"`Y/>)AJP$``"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``#I -XM>_W__XUT)@#'AI0````"````QT0D!`````")-"3H-D0``(7`#X6U^?__]T6\ -XM8`$```^$F?O__Y!F@Z/(`0``OXU&5(E$)`2)-"3HR44``.E\^___C70F`,=$ -XM)`P!````QT0D"`````#'1"0$`````(DT).@P!?W_A<`/A>?\__^+1A#V@%0( -XM```$#X37_/__Z9O\__^-=@#'1"0(H`P)",=$)`0"````B30DZ,A`_?_I:_S_ -XM_V:#B\@!``!`BU70B59,BTW4B4Y0BT6\]L1`=1VI```!``^%,0$``&:%P`^) -XM._S__SM5V`^$-`4``(U5V,=$)`P!````B50D",=$)`0G````B30DZ.LP_?^% -XMP`^$"_S__^GN^____R2%3`L)"(M6-(N&9`0``(/Z`8E&1(E&/`^%7/G__\=& -XM0`$```#I9/G__XN&6`$``.D1^?__BX88`@``Z=[X__\E``0``(E$)`C'1"0$ -XM`````(DT).C4ZOS_A<`/A6/X__^-7?")7"0$B30DZ.US``"%P`^%3/C__XM% -XM\(7`#X2(`P``BT7PBU4(B0*)-"3HNH#]_X7`#X4I^/__BW7PA?8/A&\$``"+ -XMGIP```"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``!F@XO(`0```>EV -XM^?__A<`/A,/^__^#^!`/A-P"``"0C70F`.@?D?S_.U78#X78_O__B?;IO_[_ -XM_XU5C(E4)`2)-"3HO##__X7`#X74^O__Z?GY__^+1A#I[_K__XM5O/;&()!T -XM%XM%[(7`=!"+AIP```#'@.@````!````B=`+002I`,`!`(E%O'0,BT9,B478 -XMBT90B47`S`2)1;P/MD6,.H5`____#X3>`P``BT6TQX4<____```` -XM`#U@"PD(B85L____#X2J`P``BT6\B<*!XO`!``"H((F5(/___W0,@\H0@^+? -XMB94@____BY5H____)0_^__^)1;R+0@0E#_[__PF%0```")!"3H))+\_XN5 -XM)/___XN%,/___XF0Z````(M%O"4("```/0@(``!T48-&+`'I^?7__SM-W`^% -XMP_K__^GP]O__,<"-M@````#II_/__XN&7`,``(7`#Y7`Z;SX__^)=PCI3O[_ -XM_XE7$.DD_O__BT8$B4<4BQ;I!O[__XM%D`-%R(/H`8E%R.NAC95`____B10D -XMQT0D"$P```#'1"0$`````.B&COS_C47@,=*)1"0$C46,B00DC8U`____B?") -XM?"0(Z'+G__^#^`4/A1_]___I)OS__XM%R(DT)(E$)`3H]0?]_X7`#X5S_O__ -XM@WW(`745#[9%C#QCD`^$6?[__SPA#X11_O__QT0D"`$```#'1"0$`````(DT -XM).A:T?__Z0#5DR)1"00QT0D#`````"#Z@&)52#^`&-4/\9P/?0(<*)5/___SM-@`^&R/W__^O$ -XMD)"0D)"0D)"0D)"0D)"058GE5U93@^P\BW4(]H:O!```$(M^$(N&G````'0* -XM@\0\,*)!"3H%8W\_XDT)(E$)`B-1>*)1"0$_Y=8"```BY:<````@\,8 -XM.9J0`0``0"```@\0\,%2/___P````#WP@`` -XM`!!U&8N`G````(.X7`$```$/E\`/ML")A4C___^#XA!T.8M="(N#G````(M3 -XM0(N(C`$``(M#-#G"#X.B)1"0$BUT(B1PD_Y%P"```QT0D"`````"+@YP```"+50PKD(P!``")'"2) -XMT,'X`VG`JZJJJHE$)`2+C23_____D9`(``"-1?")1"00C47DB40D#,=$)`@` -XM````BUT,BP.)1"0$BT4(B00DZ(4"_?^+50B+30B+4CB)QHF5+/____:!%`(` -XM``$/A68$``"+70B+@PP"``"%P`^5P(3`#X1O!```BT4,BUT(BT`$QX4\____ -XM`````(F%./____:#.`(```$/A'4$``"+@S`"``"-!$#!X`(#0Q"+0#B)A4S_ -XM__^+50C'A5#___\`````]H*O!```$'51]H*8`@```0^$504``(N"D`(``(T$ -XM0,'@`@-"$(M`.(7`#Y7`A,!T'8.M+/___PB%]@^%+`0``(N=./___X7;#X2* -XM"```BY5,____B950____A?8/A20$``"+3?"%R0^$&00``(N%./___X7`#X4# -XM!0``BU4,QT(,`````,9"%`#'A3#___\`````QX4T____`````(M%$(7`=!&+ -XM50R+30B+`CM!3`^$>PD``(N=2/___\>%*/___P`````)^P^%"P,``(N5-/__ -XM_SM5\`^#?@L```N]2/___XV=9/___XU%XXF]5/___XG?QX5<____`````,>% -XM1/___P````")G1S___^)A2#___^-=@"+1>0/MA"#P`&)1>0/MLJ`^@F(E6/_ -XM__^)C4#___\/A,P$``"`O6/_____#X2M!0``BY5`____BTT(C012`<`#01`/ -XMMH!=`0``B<8QTBNU,/___P&U7/___XN-7/___SF-+/___W=4@_H!#X1.!0`` -XMBT4,B?.(6!:+A5S___\KA2S___^+70PIQHGQB$L5BX5<____.84L____<#``"+70B+30R+ -XM@YP```"+71`KB(P!``")R,'X`VG`JZJJJHD#BT4(]H"O!```"`^$5@4``(N% -XM7/___XM-%"GPB0&+10CV@)@"```!#X0F!0``B<&+@)`"``"-!$#!X`(#01"+ -XM0#B%P`^5P(3`=!J+10CV@*\$```0=0Z+C3C___^%R0^$5@,``(N%5/___X7` -XM#X4^`0``A=(/A+@#``"%]G15,=OK#8/#`<8'((/'`3GS=$0[O2#___]RZ\8' -XM`(V%9/___X/#`2N]'/___XE$)`2)?"0(BU4(C;UD____B10DBXTD_____Y%8 -XM"```Q@<@@\# -XMQP&#^?]U[8N%7/___X/``3F%+/___W82BU4(B10DBXTD_____Y%L"```.;T< -XM____#X()!@``BT7LB40D"(M%Z(E$)`2+30B)#"2+G23_____DY`(``"!Q.P` -XM```QP%M>7UW#BX$,`@``C01`P>`"`T$0BT`XA<`/E<"$P`^%D?O__XM5#(M= -XM"(M*"(/I`8F-//___P^OC2S___^)C3C____V@S@"```!#X6+^___BT4(BX`P -XM`@``B85,____Z8_[__^-4/_I7/K__XN=3/___XM%#(F=4/___X,X`0^$O/O_ -XM_XGVBU40A=)T$8M-#(M="(L!.T-,#X1P`@``"[U(____#X4N____BUT,QT,0 -XM`````,=##`````#&0Q4`QD,4`(N%./___X7`=4J%]@^$S`(``(,[`;I^```` -XM#X2^`@``BTT(C112`=*+01`/MHP070$``(V$$%@!``")1"0$B4PD"(M="(D< -XM)(N5)/____^26`@``(M-"(D,)(N=)/____^3;`@``(M%[(E$)`B+1>B)1"0$ -XMBT4(B00D_Y.0"```@<3L````,^?__@<3L```` -XM,2)G3#____V@!0"```!#X5=!```BTT(BX$,`@``A`"`T,0BT@XBX5<____,=*)SO?Q*=:Z -XM`0```"NU,/___P&U7/___^D5^___C1PW.9T@____#X;4````@+UC_____P^$ -XM0P$``(N-0/___XM="(T$28V$`%`!```#0Q"#P`B-3O^)C5C___^#P0$/A%K\ -XM__^+G3#___^)^8T4&(T<-XVT)@`````/M@*#P@&(`8/!`3G9=?&+A5C___^- -XM?#@!Z2?\__^+G2S___\IV2G.BTT,B?"(016(01:)G5S____IR/K__XN=0/__ -XM_XE<)`2+10B)!"3H/>W\_^E1^O__BX.<````BU40*XB,`0``B0/MA"#P`&) -XM1>0/MLJ`^@F)C4#___]UH8N53/___X72=:"+10CV@-`#```!#X0J`@``B<*+ -XM@,@#``"-!$#!X`(#0A"+2#B)V#'2]_&)R"G0ZXB+50R-G63___^+`HD<),=$ -XM)`@K#0D(QT0D!(````")1"0,Z/N!_/^)7"0$B40D"(M-"(D,)(N=)/____^3 -XM6`@``(N%3/___XF%4/___^DP]___@,(!#X0V`0``BY5`____BTT(C012`<`# -XM01`/MH!=`0```<,[G2S___]R'XM-""N=+/___XM).(.M//___P&)C2S___\/ -XMA#P!``"#A33___\!BY4T____.57P#X8F`0``BT7D#[80@\`!B47D#[;*@/H) -XMB8U`____=8:+A4S___^%P'6%BT4(]H#0`P```0^$%@$``(G"BX#(`P``C01` -XMP>`"`T(0BT@XB=@QTO?QB<@IT.EJ____Q@<`C9UD____*[T<____B5PD!(E\ -XM)`B+10B)!"2+E23_____DE@(``#IR?G__XG"BX`,`@``C01`P>`"`T(0BT`X -XMA<`/A:;[___IC_O__XM14#F5-/___P^'=O;__XN%-/___P.%+/___SG"#X=B -XM]O__BX4T____@\(!*<*)E2C____I9/;__XN%0/___XE$)`2+50B)%"3HR.G\ -XM_^G(_O__BX5`____B40D!(M5"(D4).BNZ?S_ZG)]?__BT4( -XMBXC(`P``Z?#^__^+10B+B,@#``#IW/W__XM%"(M`.(F%+/___XN%-/___XM= -XM#(E##,9#%/_'A3#___\`````Z8+U__^#A33___\!BYTT____BTT,B5D,QD$4 -XM`,>%,/___P````#I7/7__XM5"(N--/___SM-\(M2.(F5+/___W.D.YTX____ -XM#X0B`0``BXTT____BU4,B4H,*YTX____*=B)A3#___^(0A2#;>0!Z1/U___& -XM!P"-E63___\KO1S___^)5"0$B7PD"(M-"(V]9/___XD,)(N=)/____^36`@` -XM`(M%"(M8$.G$]___BX5`____B40D!(M5"(D4).AMZ/S_Z7/W__\/MD(5.,$/ -XMA,(```"+4A`/ML")A3#___\/MH4P____B94T____BXTT____BU4,B4H,B$(4 -XMBUT(`4WD]H,4`@```716BX,,`@``C01`P>`"`T,0BT`XA%,/___P````#I\?/__XM2$#'`QX4P____`````(/"`8F5-/___^DZ -XM____D)"0D)"0D)"0D)"0D%6)Y5.#[!2+70B+0Q"+4S2+B)`(``"+0T`YT'(# -XMC4+_B1PDQT0D"`````")1"0$_]&+0Q")'"3'1"0$`````/^0F`@``(/$%%M= -XMPY"-="8`58GE5U93B<.#[#R)5=")3S0!#X1/`0``@WW,`0^$!0$```^# -XML````(U%\(E$)`C'1"0$`0```(D<).BQ'_W_B<*+1?")5"0$B1PDB40D"/^6 -XM6`@``(.'7`$```''AU0!````````C7W4B1PD_Y9L"```QT0D!`````")'"3_ -XMEI@(``"+5="%TG0ABT70QP``````ZQ:+1=R#^`%T48/X!'1!B1PD_Y9D"``` -XMQT0D#`````#'1"0(`````(E\)`2)'"3H:>S\_X7`=,J0C70F`(/$/%M>7UW# -XM@WW,`G0KZ-%Y_/_&1>!Q@XY4"```!(-]S`%T48-]S`)UUH!]X'%UT(..5`@` -XM``3KQXU%\(E$)`C'1"0$!0```(D<).C0'OW_B<+I&O___XU%\(E$)`C'1"0$ -XM`@```(D<).BR'OW_B<+I_/[__X!]X#IUA8M%T(7`#X1Z____BT70QP`!```` -XM@\0\6UY?7<.-1?")1"0(QT0D!`0```")'"3H@"=#&+3>B)V(M5[(M=](MU^(M]_(GL7>F3_?__C78` -XMBU-`.=!V*2G*ZX60C70F`(U"_^NOBU7PBX)4`0``.T-`<\&+7?2+=?B+??R) -XM[%W#C5#_*L!```"`^$ -XM;0$``(M#$(E$)`R+0PR)1"0(BT,(B3PDB40D!/^6E`@``(L3A=)T!HM#!(E" -XM!(M#!(D0BT,,B00DZ.)\_/^)'"3HVGS\_XM>;(7;=;>+1+1<#'@%P!````````QX!8`0```````,>`5`$```````"+ -XM1>R+50R)1"0(BT7PB10DB40D!/^6D`@``#'2@\1,B=!;7E]=PX/H`71F,"7`$```````#'@E@!````````QX)4`0```````(E$)`2)/"3H -XM^A(``.EO____BTT0AL -XM!```QT0D"`(```"+1TR)/"2)1"0$Z$<<_?_ICO[__X/@_8F&5`@``(D\)/^6 -XM9`@``.EF_O__QT0D!`$```")/"3H:R<``+H!````A<`/A+C^___I#____XG! -XM*='I0/___XE]#.D+_O__,S<````B85`____B94\____BY5`____B8TX____BT`0B85$____BT4(BY*< -XM````B8U4____A<")E4C___\/CI8#``"-C7#___^-7>^)C3#___^)G33___^+ -XM70B+M3C____'1"0$"@```(E<)`B)-"3H6'7\_XF=4/___XF%5/___XN%5/__ -XM_X7`=!"+E53___\I\HF54/___XG3BXU(____B[5`____BY%8`0``BTXXC003 -XM.7UW#B[5`____BYU,____B30DB5PD!.@OWOS_ -XMB<;I"?[__XN-0/___XNU1/___XM!0(M)-(N>D`@``#G(<@.-0?^)1"0$BX5` -XM____B50D"(D$)/_3@[T\____`P^%7/W__XN50/___XN-1/___\=$)`@!```` -XMQT0D!`$```")%"3_D5P(``#I,OW__XN-0/___XN=1/___\=$)`@`````QT0D -XM!`$```")#"3_DUP(``#IX?[__XN%0/___[D"````,=+H(_C__^E*_/__BY5( -XM____BX)<`0``Z3'\__^+E4C____V@L@!```"#X0>_/__@ZI4`0```8/H`6:# -XMHL@!``#]B8)<`0``Z0'\__^+M4#___^+G43___^+1D"+BY`(```YP@^&Q0`` -XM`(/H`8E$)`2+A4#____'1"0(`````(D$)/_1BY5`____BXU$____B10D_Y%L -XM"```BYU`____BW,X@_X/=@6^#P```(N%0/___XM8$,=$)`@!````QT0D!`$` -XM``")!"3_DUP(``"+E4#___^)="0(QT0D!#$-"0B)%"3_DU@(``"+C4#____' -XM1"0(`````,=$)`0!````B0PD_Y-<"```BYU(____@X-<`0```6:#B\@!```" -XM@X-4`0```8N#7`$``.D0^___C4+^Z3;___^+A4C___^+M4#___^+E43___\% -XM6`$``(E$)`B-1?")1"0$B30D_Y)P"```Z=']__^-=@!5B>575E.#[#R+=0B+ -XM?0R+1A")1="+GIP```#'!P````"+@U@!``!F@XO(`0```87`#X5)`0``BY:L -XM!```]L(0#X40`0``]\(``!``=0V#NUP!```!#X:X`0``B=`E___O_X'B```( -XM`(F&K`0``'40BT80]H!4"```!`^$,@$``/:&K`0``!`/A;4```"+1A"#P`@Y -XM!G0'@XZL!```0/:#R`$```@/A8L```#'1"0(`0```,=$)`0`````B30DBU70 -XM_Y)<"```@::L!```[__W_X.[7`$```$/AD@!``#'1>`&````BY-<`0``N0$` -XM``"+1C0YPG)9B47LC478B4WDQX-<`0```````,>#6`$```````#'@U0!```` -XM````B40D!(DT).@&"P``,=*#Q#R)T%M>7UW#@XZL!```(.EI____9H.+R`$` -XM``3I/O___Y")P2G1ZZ&+1A#'1"0$`@```(DT)/^0H`@``+H!````A#4`$```$```#IA?[__\=$)`P!````QT0D"`````#'1"0$`````(DT).B. -XMX/S_A7UW#B?J)\.BG -XM\O__ZZ>0C70F`%6)Y5=64X/L+(MU"(M=#/:&K`0``!"+?A!T-8M5$(72#X0L -XM`0``A=N)V`^$&`$``(E4)`R)1"0(QT0D!'WI"`B)-"3HF$S^_XDT).BP2_[_ -XMC47PB40D"(U%[(E$)`2)-"3_EW`(``"+1D"+5C2+CY`(```YT'(#C4+_QT0D -XM"`````")1"0$B30D_]&)-"3_EVP(``"%V\=%X`````!T+HD<).CM'````BT7@B40D"(E<)`2)-"3_EU@(``"+51"%TG0PBT40 -XMB00DZ+5R_/^+7CB+5>")P0'"C4/^.<)W1(M%$(E,)`B)-"2)1"0$_Y=8"``` -XMBT7PB30DB40D"(M%[(E$)`3_EY`(``")-"3'1"0$`````/^7F`@``(/$+%M> -XM7UW#*UW@C4O^Z[2-="8`B47@Z73___^X3XT(".G>_O__ND^-"`CIRO[__XUT -XM)@!5B>6#[#B)=?B+=0B)7?2+11")??SVAJP$```1=3.#^`*+?A"+GIP```!T -XM-(/X`P^$JP$``(/H`0^$D@```(GVQT0D!`````")-"3_EY@(``"+7?2+=?B+ -XM??R)[%W#B?:+@V`!``"%P'36BY-<`0``@^@!B8-@`0``A=)U,87`=2V+1D"+ -XM5C2+CY`(```YT'(#C4+_QT0D"`````")1"0$B30D_]&)-"3_EVP(``"+@W`! -XM``")1"0(BX-L`0``B30DB40D!/^7D`@``.EP____BX-@`0``BXM<`0``@\`! -XMA`$``&G`0$(/``'"@?I'Z`$`#XX<_O__BT7DBU7H@[MD`0``!(F#=`$` -XM`(F3>`$```^$A0```(N'D`@``(E%W(M&0(M6-(N+:`$``#G0<@.-0O^)3"0( -XMB40D!(DT)/]5W(N39`$``(N'6`@``(U*`8'"1PT)"(F+9`$``(E4)`3'1"0( -XM`0```(DT)/_0BX>0"```B47@BU9`BTXTBX-H`0``.7UW#BTW<@Z%4"```_8M%"(D$)/^19`@``.GB_O__J!`/A.T"``"+ -XM50B+0A#'1"0$`0```(D4)/^0H`@``(7`#X37_O__Z2;___^-1?")1"0(C47L -XMB40D!(M-"(D,)(M5W/^2<`@``(-]#`$/A`$"``"+512+11"+30B`?!#_"@^4 -XMP`^VP"G"B544@WDT`0^$?`,``,=%Z`````"+5>B+10B#P@*)5>B+2#B#Z0&) -XM3>"+3=B+@5@!``"%P'0IC00"`T44.47@#X/U`@``BY%0`0``N574"`C'!"0" -XM````BT4(Z/[P__^+30R+5=B)BE`!``"+112+71"%P'4FZ8L-B?8Y^'T2]D2&-@)T"X/I`0^^0?^%P'GJB=:)\"G8*444#X7P```` -XMB<@IV(/X`7X+@'P8_RX/A`P!``")!"2+50R)V8M%".C7[___BTT(BT$0]H!4 -XM"```!'5LQT0D#`$```#'1"0(`````,=$)`0`````B0PDZ"C8_/^%P'4/BU4( -XMBT(0]H!4"```!'4YB?/IP?[__XM!$,=$)`0"````B0PD_Y"@"```@\0L6UY? -XM7<.+312Z`0```(D,)(M-$(M%".A<[___BT7PB40D"(M%[(E$)`2+30B)#"2+ -XM5=S_DI`(``#'1"0$`````(M-"(D,)(M5W/^2F`@``(/$+%M>7UW#BU44C303 -XMB?")\2G8*444#X00____*=F)#"2+50R)V8M%".CY[O__N2:Z"`BZ`0```,<$ -XM)`$```"+10CHX.[__^D$____C4'_*=CIZO[__XM-"(D,).CVW/[_A<`/A/;[ -XM___I1?S__\=$)`@!````QT0D!`$```"+10B)!"2+5=S_DEP(``"+31")3"0( -XMBT44QP0D\I@("(E$)`3H1&?\_\=$)`@`````QT0D!`$```"+50B)%"2+3=S_ -XMD5P(``#IO/O__XG1B=;I2_[__XD<).BO:?S_BT40B40D#*$0(0D(BU44QT0D -XM!$$-"0B)!"2)5"0(Z-QA_/_IK_O__XM%V+E8\0@(BY!0`0``QP0D`0```(M% -XM".@&[O__N=+4"`BZ`0```,<$)`$```"+10CH[>W__^GJ_/__QP,`````B5AL -XM@\!LB4,$Z6#[__^-1>B)1"0(QT0D!`0```")#"3H_0C]_^EO_/__D)"0D)"0 -XMD)!5B>564X/L$(M=#(MU"(M3##M3%'80ZU.+4PR#P@$Y4Q2)4PQR18N&G``` -XM`(T44L'B`P.0C`$``(/J&,9"%@#'1"0,`````,=$)`@`````B50D!(DT).BU -XMV?__ARL````B95P____BT`0B85X____BY:<````B95\____B='VAJP$```@ -XM='7'@JP!````````BX:L!```]L0!#X6/!P``A,!Y+\=$)`@"````BT9,B30D -XMB40D!.A8(@``A7UW#QT0D"`,```#'1"0$ -XM`````(DT).@H(@``A2)?"0,B40D"(E<)`2)-"3HH=?__X7`#X5Y -XM_O__@WWD_W3&BY5\____BX+$`0``A``"Z`0```(G#BT9`@_@!=`2)PM'J.=H/@OD'``"%VP^$?@```#M& -XM/'4'ZW`"`T80BT`XA<`/E<"$P`^%.@<``(N-?/___\=%Y/_____'@<0!```````` -XMBX:<````.9B0`0``#X+J"0``BP,[1DP/A=\)``"-N<`!``#K(9"+AIP```"# -XMPQ@YF)`!```/@MH&``"+`SM&3`^%SP8``(U%Y(E\)`R)1"0(B5PD!(DT).C) -XMU/__A<`/A:'[__^#?>3_=+N+E7S___^)FL0!```QTL=%B`````#K&O:&K`0` -XM`$!T#(M&0#E&1`^%?0<``+H!````BXU\____BYG$`0``A=L/A$P)``"+1E"+ -XMC7S___^)@;P!``"+1DR)@;@!``#VAI@"```!#X4=`0``BX:0`@``A<`/E<"$ -XMP'07BX5\____]H#(`0``('0(A=(/A"<#``"+18B%P'0'@XUP____`XN5_K)`^VP(T$0`'``T80#[:`70$```%%D#M]D`^"P@@``(M& -XM((M`"(/K`3G8#X-L!P``#[8#/"\/A%X'```\_W7"QT0D!/____^)-"3H%LG\ -XM_^O"BX:0`@``C01`P>`"`T80BT@XAF)5"0(B5PD!(E,)`R)-"3H&QD``(M6/(/Z -XM`8G#N`$```!T!(G0T>@YV`^'>P@``,=%J`$```"+AIP```"#^@&+@(P!``#' -XM1;`!````BT`$B46LN`$```!T!(G0T>B)1"0,BT9,B30DB40D"(U%J(E$)`3H -XMN!@``(M6/+D!````@_H!=`2)T='I.<$/AQ0)``"+5DS'1"0(`@```(E4)`2) -XM-"3H^!H``(7`#X6@^/__@XZL!```0.GX^/__QT0D"`,```#I/X__^+0@@YQP^&V/C_ -XM_XM./+L!````@_D!=`2)R]'KB?DIP3G+#X)_"@``B30DZ"(B``"%P`^%^O?_ -XM_XN&G````(N`D`$``#MX"'??Z97X__^)-"3H;,___X7`#X3)_/__C70F`.G+ -XM]___QT60`````#M&!)`/A3/]__^)-"2+593_DFP(``"+7CB#ZP'VAC0#```! -XM#X3?!@``BX8L`P``C01`P>`"`T80BT`XA<`/E<"$P`^%+0<``(M]D(/'`O:& -XMH`,```$/A)T&``"+AI@#``"-!$#!X`(#1A"+0#B%P`^5P(3`=#:+1AP/MD!8 -XM@^`$@_@!C474@]/_B40D"(N&E````(DT)(L$A9`-"0B)1"0$Z"[^_/\K7=2) -XM18PY^W9TBT64BU8TBXB0"```BT9`.=!R`XU"_XE<)`B)1"0$B30D_]'VAJ`# -XM```!#X1>!P``BX:8`P``C01`P>`"`T80BU@XA=L/E<"$P'0IBT8<]D!8!`^% -XM00H``(M%U(E$)`B+38R)-"2)3"0$BU64_Y)8"```B?;VA7#___\!#X5=`0`` -XMBX5T____A<`/A2/____^2D`@``(DT)(N->/__ -XM__^1;`@``(N&G````(-N/`&#J)`!```8BT8\.T9$=Z+'1"0(`0```(M&3(E$ -XM)`2)-"3HRQ<``(7`#X33_/__Z6[U__^+A@P"``"%P`^5P.DY^?__BXU\____ -XM#[>!R`$``(DT)(/@!(E$)`2+E7C_____DI@(``#IL?[__XN-?/___XN!P`$` -XM`(E$)`B+1>2)-"2)1"0$BY5X_____Y*0"```BU6(A=(/A'+^__^-1E2)1"0$ -XMB30DZ*8*``#I7O[__S'2QT6(`````.EY^?__C490QT0D$`````")1"0,B50D -XM",=$)`0`````B30DZ&`.``")1:`/MHZ8`@``@^$!#X6?````BY:0`@``A=(/ -XME<"$P'0*@WV@!W8$@VV@"(M[!#E]H`^'WP```(N6I`,```^VCJP#``"-!%*# -XMX0&)A6S___^$R8G0=`^+A6S____!X`(#1A"+0#@YQP^"I@,``(3)B=!T#XN% -XM;/___\'@`@-&$(M`."G'.7V@=L?VAJ\$```0#X3>`0``B7L$BX:<````BXB0 -XM`0``QT6(`````.D+]?__BY:0`@``C012P>`"`T80BT`XA<`/E<#I4/___XM> -XM/#G8#X)X^/__C;0F`````(E<)`2#PP''1"0(`````(DT)(N->/____^1D`@` -XM`(DT)(N5>/____^2;`@``#E>0'/.Z3KX__^%_XVT)@`````/A?$!``"$R0^$ -XM.0,``(T$4L'@`@-&$(M`.(7`#Y7`A,`/A!,#``"+5CB)T(E5G(/H"#E%H`^& -XMSP$``(N&I`,```^VCJP#``"-%$"#X0&)A63___^)E6C___^%R8N%9/___W0/ -XMBX5H____P>`"`T80BT`XBU6<`<>-!!@2+AIP```"#PAB+B)`!```YT7/JQT6(`0```.D'\___@XZL!```((GP -XMBY5P____Z(;Q___I]O'__XM&4#N!O`$```^$W0(``(U%X(E$)!"-1>R)1"0, -XMC47B)1"0(C47DB40D!(DT)(N5>/____^2<`@``#'2QT6(`````.EP\___BX5\ -XM____BY"\`0``.590#X-A`0``B=<#?=R)?=R+@+P!```[1>R+3E`/@S?V__^- -XM4`$IRHN-?/___XN!P`$``(/`!3G"#X<;]O__C5K_@_O_QT6`_____P^$#/__ -XM_P^V%XU'_XE%W(#Z"0^$]O7__P^VPC'_B46$ZSN+582-!%(!P`-&$`^V@%T! -XM``"#ZP$!QX/[_P^$RO[__XM%W`^V$(/H`8E%W(#Z"0^$M_7__P^VRHE-A(#" -XM`77`BTV$B30DB4PD!.@1O?S_Z\''1"0$_____XDT).C_NOS_Z6#[__^)>0C' -XM1"0(`P```,=$)`0`````B30DZ"\0``"+1DR#CJP$``!`BY:<````Z8KU__^+ -XM?9"#QP*-!#HYPP^&[_W__\=$)`@"````QT0D!+C<"`B)-"2+593_DE@(``"+ -XM1=2+39"#P`*-?`$"Z<']__^)>@C'1"0(`````,=$)`0`````B30DZ,`/``"# -XMCJP$``!`Z17N__^+1=R+C7S___^#P`$!T(E%W(M>4(NYP`$``"N9O`$``.LE -XMBX:0`@``C01`P>`"`T80BT`XA<`/E<"$P'16BT8X@^@(.?AV7X/K`8/[_W17 -XMBT7<#[80@\`!B47<@/H)#X2,]/__#[;"@,(!="R-!$`!P`-&$`^V@%T!```! -XMQ_:&F`(```%UG(N.D`(``(7)#Y7`ZZ:+1CCKJXE$)`2)-"3HP+O\_^O5BX5\ -XM____B;C``0``]H:8`@```71;BX:0`@``C01`P>`"`T80BU`XA=(/E<"$P'0[ -XMBT8X@^@(.<GD_/__58GE5U93@^P< -XMBWT(BT<0B47L]H>L!```0`^%%@$``(M8"(UP"/:'F`(```$/A#T!``"+AY`" -XM``"+5>R-!$"+1((XA<`/E<`\`1G`@^#@@\`Q.=Z)1?!U0NM;C;8`````BY.< -XM````#[>"R`$``(5%\'0B#[>2R`$``(G8@^(!@\H"Z!KK__^+AYP```!F@XC( -XM`0```8L;.?-T&SG[=/:+@ZP$``#VQ`9UZZA@=+.+DYP```#KO8M=#(7;=0WV -XMAZP$```(#X6V````N@,```")^.C+ZO__N@$```"%P'5-BU7LBUH(.?-U#NLX -XMC;8`````BQLY\W0H]H.O!````G3QB1PDQT0D"`````")?"0$Z(W5__^+&[@! -XM````.?-UV(7`=7B#CZP$```(,=*#Q!R)T%M>7UW#BU7LBUH(B=:#Q@@Y\P^$ -XMW?[__SG[=`J!BZP$``!````"BQLY\W7LBT7L]H>8`@```8M8"`^%P_[__XN' -XMD`(``(7`#Y7`ZS' -XM1"0$`````(D\)/^2F`@``#'2@X^L!```".EO____D)"0D%6)Y8M-"%/V@10" -XM```!BY&<````=&*+@0P"``"-!$#!X`(#01"+0#B%P`^5P(3`=%:+@L0!``#V -XM@9@"```!BY+``0``BU@$=%V+@9`"``"-!$#!X`(#01"+2#B%R0^5P,'@'\'X -XM'X/@"(T4$RG"BT4,B1`QP%M=PXN9#`(``(7;#Y7`A,!UJHN"Q`$``(N2P`$` -XM`(M8"(/K`0^O63CV@9@"```!=:.+@9`"``"%P`^5P.NMC;8`````C;PG```` -XM`%6)Y5=64X/L3(U%\(E$)!"-1>R)1"0,QT0D"`````"+10R)1"0$BT4(B00D -XMZ!_&_/^+=>R%]@^$A0$``(M=\(7;#X1Z`0``BU4(]H(X`@```0^%\````(M- -XM"(M%"(N),`(``(E-W/:`%`(```$/A/D```")PHN`#`(``(T$0,'@`@-"$(M` -XM.(E%V(M-"#'2,?^+11#W<3B)5/^__\Q_^G<_O__ -XM@\1,,/_#[9%XW1W -XMBU4(C01``<`#0A`/MH!=`0```<,)=&:#ZP$I3D#____BT7`"`T(0BT@XZ\R)^#'2]_''1`"`T(0BT`XB474,?^%VP^$$@$``(L[B77@QT70`````.M7@/O_#[;# -XM#X1]`0``BU4(C01``<`#0A`/MH!=`0```470C30PBT74A`" -XM`T(0BT@XBT70,=+W\8G(*=#I>____XM%"(N0D`(``(72#Y7`Z=C^__^-=@"` -XM^_\/ML,/A!"+51B%TG0)BU48B?`IV(D"@\0\B?!;7E]=PXM%"(N(R`,``.G+_O__ -XMB?`QTO?QQT70`````"G6Z6W^__^)1"0$BT4(B00DZ,ZR_/_IY_[__XG"BX#( -XM`P``C01`P>`"`T(0BT@XZ3C___^+3=B%R720BU4(BT(0#[:`-0(```'&Z7S_ -XM__^)R#'2]W7,,?\IT>G(_O__C47PBU4(B40D$(U%#(E$)`R+11#'1"0(```` -XM`(D4)(E$)`3H'<#\_XM%\(7`=1F+11B%P`^$0O___XM5&,<"`````.DT____ -XMBT4,A<")1=P/A1W]___KUXVV`````(V\)P````!5B>564X/L((M="(MU$/:# -XM%`(```$/A)@```"+@PP"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=6^%]@^$A0`` -XM`(L&A7<.Z`0```(/$((G06UY=PXN##`(``(7`#Y7`Z6____^+ -XM@YP```"+50PYD*P!```/A6S___^+D+`!``#KRE6)Y5=64XG#@^PLB57@BW`0 -XM@W@T`71_C47LB40D"(U%\(E$)`2)'"3_EG`(``"+1>"%P'17,?^)'"3_EG0( -XM``"+0T"+4S2+CI`(```YT'(#C4+_QT0D"`````"#QP&)1"0$B1PD_]&)'"3_ -XMEH@(``"+1>R)1"0(BT7PB1PDB40D!/^6D`@``#M]X'6K@\0L,R)'"2)1"0(BT7PB40D!/^6D`@``(D<)/^6B`@``#M] -XMX'0WBU-`BT,TBXZ0"```.<)RJX/H`NNIQT0D"`````#'1"0$`````(D$)/^6 -XMD`@``(D<)/^6;`@``(/$+#'`6UY?7<.)]HV\)P````!5B>575E.#[`R+?0B+ -XM=0SVAQ0"```!=#B+APP"``"-!$#!X`(#1Q"+6#B%VP^5P(3`="R+!CM%$'=S -XMBW40*<:#Q`R)\%M>7UW#C;0F`````(N/#`(``(7)#Y7`A,!UU(L>.UT0=%8Y -XM71!S88MV"(/K`8/N`3E=$'?&.W44=@?KOSEU%'*ZB5PD!(/K`<=$)`@````` -XMB3PDZ&3\__\!QCE=$';=@\0,B?!;7E]=PXG&*W40@\0,6XGP7E]=PXMV"(/$ -XM#%N#[@&)\%Y?7<.)7"0$@\,!QT0D"`````")/"3H'?S__RM&"#E=$(UP`753@^P4BU4(BUT0BTT,QD,6`/:"%`(```%T-HN"#`(``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T*HL!@^@!B0.+002)0P0QP(,[``^4P(/$%%M=PXN" -XM#`(``(7`#Y7`A,!UUH-Y"`%T&XL!B0.+00B#Z`&)0P@QP(,[``^4P(/$%%M= -XMPXL!@^@!B0/'1"0(`````(E$)`2)%"3H0OO__XE#".NBC;8`````C;PG```` -XM`%6)Y593@^P0BU4(BUT0BW4,QD,6`/:"%`(```%T,HN"#`(``(T$0,'@`@-" -XM$(M`.(7`#Y7`A,!T)HL&@\`!B0.+1@2)0P2#Q!`QP%M>7<.0BX(,`@``A<`/ -XME<"$P'7:QT0D"`````"+!HD4)(E$)`3HN_K__SM&"'06BP:)`XM&"(/``8E# -XM"(/$$#'`6UY=PXL&QT,(`0```(/``8D#ZZ95B>575E.#[#R+?0B+=0R+71"+ -XM3SR+AYP```"%R8N`C`$``'00,=*#P@'&0!8`@\`8.<````BX*0`0``ZPV0C70F`(N7G````(G8.X*,`0``#X8-`0``C5CHB5PD -XM"(E$)`2)/"3H"?[__X7`=-6^`0```(N'G````(N`C`$``(DPBX><````BX", -XM`0``QT`$`````(N'G````(N`C`$``,=`"`$```"+AYP```"+7SR+@(P!``#K -XM`HGP@^L!#X2A````C7`8B70D"(E$)`2)/"3H3?[__X7`=-Z+AYP```"+@(P! -XM``#'``$```"+AYP```"+@(P!``#'0`0`````BX><````BX",`0``QT`(`0`` -XM`(N7G````(N"C`$``.L+C78`BY><````B=@[@I`!``!S,8U8&(E<)`B)1"0$ -XMB3PDZ-W]__^%P'39@\0\N`$```!;7E]=PX7V#X44____Z4/___^#Q#PQP%M> -XM7UW#QT7<`0```+H!````QT7@`````,=%Y`$```"+1SR#^`%T!(G"T>J-7=R) -XM5"0,B70D"(E<)`2)/"3HJ/O__XM7/+D!````@_H!=`2)T='I.<$/@ZK^__^) -XM7"0$B3PDZ*.Z_/^%P`^%<````BY"0`0``BT7")0@2+AYP```"+D)`!``"+1>2)0@CIO_W__XN'G````(N` -XMD`$``(DPBX><````BX"0`0``QT`$`````(N'G````(N8D`$``,=$)`@````` -XMB70D!(D\).BA]___B4,(Z7;]__^+3SR+EYP```#1Z8T$2<'@`P."C`$``(DP -XMQT`$`````,=`"`$```#K`HG8BY><````BXJ,`0``.L(BY><````B=@[@I`!```/ -XM@S+^__^-6!B)7"0(B40D!(D\).C>^___AF,_?__D(UT)@!5B>6#[#B+ -XM112)=?B+=1")??R+?0B)7?2#^`(/A+\```"#^`-T4H7`=4F+AYP```"+D)`! -XM``")T2N(C`$``(G(P?@#:<"KJJJJ.<8/A@4!``#'1"0(R`T)",=$)`0"```` -XMB3PDZ,?J_/^X`0```.G6````Z&P\_/^+AYP```"+D(P!``"+@)`!```IT,'X -XM`VG`JZJJJCGP-!':%]HT@?`=#1^`'PC01`C1S!@'L6``^$!@$``(L#BTT,B0&+ -XM0PR)000QP(M=](MU^(M]_(GL7<.-!':)T\'@`RG#B47@BP.)/"2)1"0$Z`^W -XM_/^%P'6[C47PB40D!(D\).B@?`=#1^(T$0,'@`RG#Z?;^__^-M@````#'1"0,`````,=$)`@````` -XMB5PD!(D\).CDL/__A<`/A-;^__^X`0```.G;_O__BX",`0``ZYF+AYP```"+ -XM@(P!``#I*?___XGVC;PG`````%6)Y593@^P0BW4(BX:<````BU9,BYB,`0`` -XMBPLYRG(@BX"0`0``.Q!W%CG*=%F)]H/#&#L3=?DYV'-0D(UT)@"#Q!"X`0`` -XM`%M>7<.-="8`QT0D#`````#'1"0(`````(E<)`2)-"3H1+#__X7`=="+0Q`[ -XM1E!S+(N&G````(/#&(N`D`$``#G87<.-M"8`````C;PG`````%6)Y5.#[!2+70B+0Q#' -XM1"0(`````,=$)`0`````B1PD_Y"0"```N@$```")V.BN]?__A<`/A88```"+ -XM2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H____B40D"(E4)`2#PAB) -XM%"3H53W\_XN#G````(N`C`$``(E$)`B#P!B)1"0$B1PDZ$+W__^%P'4NQT0D -XM#`````#'1"0(`````(N#G````(N`C`$``(D<)(E$)`3H-J___X/$%%M=PX/$ -XM%+@!````6UW#D(UT)@"+@YP```"+@(P!``")1"0(ZZ"-M"8`````C;PG```` -XM`%6)Y5.#[!2+70B+0Q#'1"0(`````,=$)`0`````B1PD_Y"0"```N@$```") -XMV.AN\___A<`/A88```"+2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H -XM____B40D"(U"&(E$)`2)%"3H93S\_XN#G````(N`D`$``(E$)`B#Z!B)1"0$ -XMB1PDZ`+W__^%P'4NQT0D#`````#'1"0(`````(N#G````(N`D`$``(D<)(E$ -XM)`3H1J[__X/$%%M=PX/$%+@!````6UW#D(UT)@"+@YP```"+@)`!``")1"0( -XMZZ"-M"8`````C;PG`````%6)Y5=64X/L/(M%"(M=$(M]#(N`G````(7;#Y3" -XMB=:)1=!U3(7_=4C'1"0$`@```(M-"(D,).@5L_S_A^@*-_S_C;8`````BT4(BY"<````Z[V0C70F`(/_`76PZ5[___^-M@````"+ -XM==!F@X[(`0``$,>&K`$```````"+10@Y>$P/A'\!``"+50B+@JP$``"I```` -XM$'5UJ!!T8HM-T#'`9H.)R`$```B#Q#Q;7E]=PXVV`````(/[`@^%-____XMU -XM"(M./(7)=`\QTH/"`8,``8/`&#G*=?.+50B+0DPYQW<&@\`!B4),BTW0,7UW#BX*<````@[A<`0```7>/BW4(C57LBT80B50D"(U5 -XM\(E4)`2)-"3_D'`(``"#^P(/A!H!``"#^P,/A&L!``"#ZP$/A??^__^+EIP` -XM``"+BHP!```[.8G+=`>#PQ@[.W7YBT4(]H`4`@```0^$M0$``(G&BX`,`@`` -XMC01`P>`"`T80BT`XA<`/E<"$P`^%B@$``(N2D`$``(U#&#G0#X=Y`0``.WL8 -XM#X5P`0``O@$```#K"XVT)@`````[.'4*@\`8@\8!.=!V\HM5"#MR/`^"C0(` -XM`(.*K`0``""+==!F@X[(`0``((MU"(M5[(M&$(E4)`B+5?")-"2)5"0$_Y"0 -XM"```,<#I\OW__V:#CL@!```!Z73^__^+=0B+3CR%R706,=*-M"8`````@\(! -XM@R@!@\`8.G_O__@^@!B4),Z9S^__^+50B+@IP```"+ -XMF(P!``"+2P2)3=0[.W0(D(/#&#L[=?G'1"0(`````(E\)`2+=0B)-"3HXN[_ -XM_SM&/(G!#X+J`@``@XZL!```((M-T&:#B<@!```@Z3S___^+=0B+EIP```"+ -XMLHP!```[/G0'@\88.SYU^8M%"/:`%`(```$/A'H!``")P8N`#`(``(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,`/A`H!``")\\=%X`$```#'1=@!````BTT(BT7@.T$\ -XM`!.=AS\<=$)`@`````B7PD!(M5"(D4).@D[?__B478 -XMZ;?^__^+10B+B`P"``"%R0^5P.F,_O__BU4(BT(0B=HIRL'Z`VG2JZJJJL=$ -XM)`@`````B50D!(M-"(D,)/^0D`@``(M%"(GRZ+3M__^%P`^%(O___XM5"(T$ -XM=HT\Q0````"+@IP```"+@)`!``")'"0IV,'X`VG`JZJJJH/``2GPC01`P>`# -XMB40D"(T$'XE$)`3HGC;\_XM-"(N!G````(N0D`$``(G0*?@YV'(=@RL!@\,8 -XM.=AS]HMU"(N&G````(N0D`$``(G0*?B-6!B-0^B)WCG0`#B40D".A;-?S_BU4(BX*<````.["0`0``=Q>#!@&# -XMQAB+30B+@9P````YL)`!``!SZ8MUW(7V#X1$_/__O@$```#K#X/&`3MUW`^' -XM,?S__X/#&(D[BT74B7,(QD,6`(E#!,=$)`P`````QT0D"`````")7"0$BU4( -XMB10DZ!"G__^%P'2_Z1W]__^+30B+@9P```"+@)`!``")="0$*?#!^`-IP*NJ -XMJJJ#P`$IV(T$0,'@`XE$)`B-!%N-!,:)!"3HH#3\_XM%V(7`#X3]^O__BU4( -XMBX*<````.["0`0``#X?H^O__NP$```#K*9"-="8`.UW8#X33^O__BU4(@\88 -XMBX*<````.;"0`0``#X*[^O__@\,!B3Z)7@C&1A8`QT0D#`````#'1"0(```` -XM`(ET)`2+30B)#"3H5*;__X7`=+#I8?S__XM-"(M=X"M=V(M1$,=$)`@````` -XMBX&<````B?$KB(P!``")R,'X`VG`JZJJJHE$)`2+10B)!"3_DI`(``"+10B) -XMVNBDZO__A<`/A1+\__^+50B-!%O!X`.)1`#B40D"(M%S(DT)`'PB40D!.B-,_S_BT78A",9&%@#'1"0,`````,=$)`@`````B70D!(M-"(D, -XM).A]I?__A<`/A8O[__\[7=AUQ8MU"(N&G````(N0D`$``(G0*T7,C7`8C4;H -XMB?,YT',;B70D"(E$)`2+10B)!"3HS>W__X7`#X5+^___QT0D#`````#'1"0( -XM`````(ET)`2+50B)%"3H%J7__X7`#X4D^___BTT(@\88BX&<````BY"0`0`` -XM.=IUG^DO^?__B?/'1>``````Z6K[__^0C70F`%6)Y5=64X/L?(M]"(MU$(N' -XMG````&:#B,@!```!C47PB40D!(D\).@$]/__A<`/A7P!``"#?10'=@N-M@`` -XM``#H/R[\_P^V312P`=/@J(X/A6@!``"H<73ABX><````BUWPBY",`0``BPJ# -XM^0$/A-$#``"+1T`Y1T0/A!\$```YQ@^"NP(``(L"B46\BT($B47`BT((B47$ -XMBT(,B47(BT(0B47,BT(4B470B?CH?^G__X7`#X7W````A?9T?3';D.LKBT78 -XM@\,!BTW4.?.)1<"+1=R)3;R)1<2+1>")12)1B)1=!T4(U%U(U5 -XMO(E$)`B)5"0$B3PDZ+WK__^%P`^%I0```(-]U`%UL?:'%`(```$/A!8&``"+ -XMAPP"``"-!$#!X`(#1Q"+0#B%P'4&@WW<`76(BTW4BX><````BY",`0``B0J+ -XM1=B)0@2+1=R)0@B+1>")0@R+1>2)0A"+1>B)0A3'1"0(`P```,=$)`0````` -XMB3PDZ(_L__^%P'4KQT0D#`````#'1"0(`````(M-#(D\)(E,)`3H_.___X7` -XM#X1@`@``C70F`+@!````@\1\6UY?7<.+3?"-1=2)39R)1"0(BX><````BX"0 -XM`0``B3PDB40D!.B.Z___A<````BX"0`0``B3PDB40D!.@[ZO__A<`/A"/_ -XM___I;O[__XM%%(7`#X0Z_?__@WT4!0^$X0```(U%[(E$)`2)/"3HRO#__\=% -XMF`````"%P`^%PP```(7V='2+1SP[1T!U2.MJBX<,`@``C01`P>`"`T<0BT`X -XMAR+30R+$(D1BT`,B4$$A?8/A0(#``"#?10%#Y5%JX!]JP!T%(-] -XM%`)T#HM-#(M!!(7`#X2\`@``@\1\,_[___'1"0$`````(D\).@\<````BYB,`0``QT6P`0```.F9_O__BX><````BY"0 -XM`0``BP*)1=2+0@2)1=B+0@B)1=R+0@R)1>"+0A")1>2+0A2)1>B)^.C+X___ -XMA<`/A4/[__^%]@^$20,``#';ZU*-M"8`````BT6\.T74=!2)1"0$B3PDZ(RC -XM_/^%P`^$(@,``(M%P(/#`8M-O#GSB478BT7$B4W4B47R+30R+$(D1BT`,B4$$A?8/A!#\ -XM__\QV\=%H`````#K$X-]%`<```` -XMBX"0`0``B3PDB40D!.@WY?__A<`/A6_Y__^+AYP```"+5=2+@)`!```Y$'04 -XMB50D!(D\).C`H?S_A<`/A"H!``")/"3H<.W__X7`#X4X^?__@WT4`G6)BX>< -XM````BU6<.Y",`0``=S#'1:`!````Z7;___^%VW0IBX><````BTV<.XB,`0`` -XM#X9=____@^D8B4V<````BU6<.Y"0`0``=1OK.(UV`(/N`70P -XMBX><````BTV<.8B0`0``=!^+79R#19P8BU6`#*<.)7:SI?/O__XM% -XME(7`#X2;^?__BP.+30R)`?:'%`(```$/A&@!``"+APP"``"-!$#!X`(#1Q"+ -XM0#B%P`^5P(3`#X0Y`0``BTL$BT=4,=+W=SB-%!&)5"0(BP.)/"2)1"0$Z&37 -XM__^+50R)0@3I/?G__\=$)`P`````QT0D"`````")3"0$B3PDZ.V9__^%P`^$ -XM_/K__^FP]O__@WT4`P^$@P```(-]%`>)]@^%)/7__^E*_O__BT6@A<`/A.;X -XM__^+39R+50R+`8D"]H<4`@```0^$V@```(N'#`(``(T$0,'@`@-'$(M`.(7` -XM#Y7`A,`/A*D```"+19R+2`2+1U0QTO=W.(T4$8E4)`B+39R+`8D\)(E$)`3H -XMKM;__XM5#(E"!.E_^/__A?8/A87]__^+AYP```"+@(P!``")19SIO/W__\=$ -XM)`P`````QT0D"`````")3"0$B3PDZ!N9__^%P`^$I?W__^G>]?__QT64```` -XM`(VT)@````#IA?G__XM+"(/I`0^O3SB0Z;K^__^+MPP"``"%]@^5P.F?_O__ -XMBU6R+3P2#P`@YP0^$ -XM0`$``(GRB?LQP`%32"ES-`%!2(M!1`%Q-`%Q/#M!0`^$\0```(N1G````(T$ -XM=@%Q0(T\Q0`````!NI`!``"+0T"!B:P$```@```"*7,\*?`[0T2)0T!S`XE# -XM1(N#G````"FXD`$``#'`@8NL!```(````NLEQT0D#`$```#'1"0(+`X)",=$ -XM)`0"````B3PDZ*_/_/^X`0```(M=](MU^(M]_(GL7<,QP.OO*=:-M"8````` -XMBU7LBQ^#P@@YTW0(C48!.4-`)\(G[]]@QTNFN_O__D(VT)@````!5B>57 -XM5E.#[`R%THE5\(M`$'1_BW`0C7@0.?=T?XGSZP:+&SG?="^+0R"+5?"+0`B) -XM5"0$B00DZ`@C_/^%P'7A@\0,B=A;7E]=PXVV`````(LV.?=T1HM&((M8",=$ -XM)`0O````B1PDZ&@A_/^%P'0#C5@!BT7PB1PDB40D!.C"(OS_A+ -XM1TR)0A"+1U"+5R")0A2+1R!F@T@8`8N'G````(&/K`0````0``"+EIP```") -XM=Q2+@+0!``")@K0!``"+1SB)1CB+1S2)1C2+1TB)1DB+1D0[1D`/A#,!``#V -XMAFP$```!#X7[````BX9D!```BU=`B48\.=")1D0/A@G````-'HB8:$````QT0D!!@```"+@[0!``"#P`&)!"3H/2+\_X7` -XMB8.,`0``#X3@````BXZ<````BT8\BY&,`0``C01`@^H8C03"B8&0`0``QT0D -XM"`$```"+1DR)-"2)1"0$Z$;>__^Z`0```(7`=5F+3?"+%H/!$#G*#X3/```` -XMBT8$B4($BT8$.<$/A+,```")$(L'B7X$B0:+1?"+%X/`"#G"#X2/````B7($ -XMBX:<````,=*)-V:#B,@!```!@8ZL!```0````H/$'(G06UY?7<.+AF0$``"+ -XM5T"-!$#!X`(#1A"+0#@YT(E&/(E&1`^'^?[__XM&0.GW_O__BT8T@^@!B49$ -XMB49`B48\Z>O^__^)-"3'1"0(`````,=$)`0%````Z$/,_/^#Q!RZ`0```%N) -XMT%Y?7<.+5?")<@SI:?___XM%\(E0$.E$____BU7PBT8$B4(4BQ;I)____XVT -XM)@````"-O"<`````58GE5U93@^P%]@^$KP```(M&1#M&0`^$R0```(M&-(N6G````(/H`8E&0-'HB8:$ -XM````BT8\BXJ0`0``C01`P>`#`X*,`0``BQ&-6.B)4.B+002)0P2+00B)0PB+ -XM00R)0PR+01")0Q"+012)0Q2+CIP```"+1CR+D8P!``"-!$"#ZAB-!,*)@9`! -XM``"#??`!=#>#??`"=`7HS!S\_\=$)`@`````QT0D!`````")-"3H0-S__X&. -XMK`0```````*#Q!PQP%M>7UW#QT0D"`,```#'1"0$`````(DT).@4W/__Z]*) -XM]HM&-(/H`8E&1(E&/.DF____BQDQ]CG:#X0`____BT%(B=Z)0TB+030!0S3' -XM1?`"````Z>;^__^)]HV\)P````!5B>564X/L((M="(U%](MS$(E$)`2)'"3H -XM<_[__[H!````A`C`$```````"+1?2!BZP$````$```B4,4@\0@B=!;7EW# -XMBT,$B48,BT,$BQ,YP768D(E6"(U6$(D3BT84B4,$.U80=9:)7A#KEL=$)`A8 -XM#@D(QT0D!`,```")'"3HL,G\_[H!````Z[")]HV\)P````!5B>575E.#[#R+ -XM=0B+?0R+1A")1>"#?C0#=RW'1"0,`P```,=$)`B0#@D(QT0D!`,```")-"3H -XM9@2)/C';BT8TN@$```"# -XM^`%T`XU0_XM/-(E60+H!````@_D!=`.-4?^)5T"+5=PY5=@/A.(!``"%VW0# -XM*4X\BT9`.48\=@.)1CPY1D1V`XE&1/:&;`0```$/A=X```"+AF0$``")1SR) -XM1T2+1T`Y1SQV`XE'/#M'1',#B4=$@WXT`8N.G`````^$?`$``(N1C`$``(M& -XM/(/J&(T$0(T$PHF!D`$``(N/G````(-_-`$/A$@!``"+D8P!``"+1SR#ZAB- -XM!$"-!,*)@9`!``"+1D#1Z(7`B8:$````=0K'AH0````!````BT=`T>B%P(F' -XMA````'4*QX>$`````0```(N'K`0``(N6K`0```T@```"@^(/"=")AZP$``"# -XMQ#PQP%M>7UW#C70F`(/[!@^&"_[__[L&````Z0'^__^+AF0$``"-!$#!X`(# -XM1A"+0#CI$?___XVV`````(U%\(E$)`2)-"3H8=[__S'2A-(M/ -XM-(E'2(M&!`%.2(E'!(M%X(M6!(/`"#G"#X3<````B3J+AIP```"[`0```(E^ -XM!(N0C`$``(M&0(D4)"G(C01`P>`#B40D"(T$28T$PHE$)`3H51S\_^D(_O__ -XMBX&,`0``Z;_^__^0BX&,`0``Z8O^__^0C70F`(/X`;H!````=`.-4/_VAFP$ -XM```!B58\B59$=#R+AF0$``"-!$#!X`(#1A"+0#B)1SR)1T2-0?\Y1SP/AB3^ -XM__^#Z0%T.(E'/.D4_O__BU7@B7H,Z9#]__^+AF0$``#KSL=$)`@`````QT0D -XM!`4```")-"3HV,7\_^G@_/__N`$```#KP8M%X(EX"(M/-(UV`.D5____C70F -XM`(V\)P````!5B>575E.#["R+112+=0B+?1"%P(M>$'1KB?J)\.BN]O__BU4, -XMB47PBT7PA<")`G1[BWT4A?\/A:4```"+%HU+"#G*#X0&`0``BT8$B4($BT8$ -XM.<$/A!D!``")$(U3$(D6BT,4B48$.U,0#X3[````BT,4B3")SW]HG!,<#K$XUV`#M]['9/,2)1=2+1="+5=2%R70']]B#T@#WVH/$,%Y?7<.%]G4+N`$````QTO?VB<&+ -XM1>R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!RG+D!```` -XM,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KWV(/2`/?: -XM]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`)QXM%\-/F -XM#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)````'5S86=E.B!E>"!;+65&4G)3F5= -XM(%MF:6QE("XN+ET*`````$5R7!E"@!L -XM:6YE]!`B`O00(Y;D$"*Z]!`AS -XM;7-O`')MC0@(`````&"<"`AHC0@(:XT( -XM"`````"#C0@(+_8("(F-"`@`````EHT("!+V"`B&ET('=I;&P@9&ES8V%R -XM9"!M;V1I9FEC871I;VYS`````#(V-'Q&:6QE(&UO9&EF:65D('-I;F-E(&QA -XM2!T:&%N('1H:7,@8V]P>0``,C4X?"5S -XM(&5X<&%N9&5D(&EN=&\@=&]O(&UA;GD@9FEL92!N86UE6]U`#(T,'PE -XMF4@979E;G0`,C@W?%5N97AP96-T960@=W)I=&4@979E;G0` -XM``"S"P4(]`L%",$,!0BS"P4(APP%"*0,!0@9#`4(LPL%"+,+!0@S#`4(30P% -XM"&H,!0C""P4(610%"&41!0B"$04(@A$%"%D4!0A9%`4(@A$%"$T4!0@P,3(S -XM-#4V-P`P,3(S-#4V-S@Y86)C9&5F````,#`X?$5R"]V:3H@`"5S)2XJ2!O;F4@=&%G(&9I;&4@;6%Y(&)E('-P96-I9FEE9"X`+7,@ -XM;W!T:6]N(&ES(&]N;'D@87!P;&EC86)L92!T;R!E>"X`@#,%"'$S!0CO,04( -XM[S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04(8C,%"%,S!0CO -XM,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q -XM!0CO,04([S$%".\Q!0@O,P4([S$%"!PS!0CO,04([S$%".\Q!0CO,04([S$% -XM".\Q!0@-,P4([S$%".\Q!0CO,04([S$%".\Q!0CZ,@4(\#(%",DR!0CO,04( -XMMC(%"*LR!0@P,3=\36%R:R`E&ES=',`,C8X?&-O;F9I2!K97D@=&\@8V]N=&EN=64Z(``R-S!\4')E2!T;R!C;VYT:6YU92!;.B!T;R!E;G1E2!K97D@=&\@8V]N=&EN=64@6W$@=&\@<75I=%TZ -XM(``P,S!\5&AE(&9I;&4@)7,@:7,@;F]T(&$@;65S3TEULJ/R1@)R)<`'-H:69T=VED=&@].`!S:61EA"`@``````P````````##]0@(`(4%"`(````(````+:$("``` -XM`````````````*>\"`@``````P`````````UH0@(````````````````0J$( -XM"``````"`````````$VA"`@```````````````">V@@(```````````````` -XM6*$("'"%!0@``````````&&A"`@``````P````````!GH0@(``````$````` -XM````;:$("````````````````'>A"`@``````@````````"`H0@(<(4%"``` -XM````````B*$("'"%!0@``````````).A"`@``````@````````";H0@(L'\% -XM"```````````7(P(".""!0@"````"````*6A"`BP@@4(``````@```!8O`@( -XML'\%"```````````L=X("``````!`````````*JA"`@``````0````````"P -XMH0@(``````(`````````NJ$("``````!`````````+^A"`@``````````!`` -XM``#(H0@($(8%"`,`````````SZ$("."%!0@#`````````-,$"0BP?P4(```` -XM``````#7H0@(X(4%"```````````T+D("``````!`````````-VA"`@````` -XM`0````````#FH0@(<((%"`,`````````(J$("``````#`````````-&A"`C@ -XMA04(`P````````#QH0@(``````$`````````AIL("(!_!0@``````@```/BA -XM"`@``````P````````#_H0@(````````````````!J(("``````!```````` -XM``RB"`@``````@`````````3H@@(````````````````8*(("``````"```` -XM`````!FB"`@````````````````DH@@(,((%"`,`````````+:(("``````` -XM````(````(3="`@``````P`````````TH@@(``````,`````````/J(("``` -XM```"````0````$FB"`@```````````````!3H@@(````````````````7*(( -XM"``````"````0````&>B"`@```````````````!PH@@(```````````0```` -XM>J(("+!_!0@"````0````(*B"`@``````@````````!@P0@(``````,````` -XM````,(L("``````#````"0```(RB"`@```````````````"2H@@(```````` -XM````````FJ(("``````!`````````**B"`BP@04(``````````"LH@@(```` -XM````````````M*(("-"`!0@"````#````+JB"`A`@04(`@````P```"_H@@( -XM8(`%"`(````,````Q:(("``````!`````````,JB"`C0?P4(`@````````#1 -XMH@@(````````````````W*(("``````"`````````.2B"`@``````@`````` -XM``#OH@@(``````$`````````^*(("``````````````````````````````` -XM```````!HP@(`0````FB"`@"`````Z(("`,````$HP@(!0````>C"`@(```` -XM^Z$("`H````*HP@(#0```!V<"`@+````^)@("`X````-HP@($@```).-"`@3 -XM````K:$("!4````0HP@(&````!.C"`@?````':,(""(````@HP@()0```"2C -XM"`@F````,:((""P```"TL0@(*@```"FC"`@P````+:,("#(```!>H`@(-``` -XM`#*C"`@Z````-Z,("#<````ZHP@(.````#ZC"`@V````/<$("#X```!!HP@( -XM/0```$2C"`A"````1Z,("#P```!?BP@(/P```$JC"`@_````&O<("$D```!2 -XMHP@(3@```%6C"`A)````6*,("$L```!;HP@(3````+^_"`A-```````````` -XM```P-#E\5&AE('-E8W1I;VX@;W!T:6]N(&UU2!0A8+79I+7)E8V]V97(M9FEL93H@`%@M=FDM -XM2!F:6QE`````$9R;VTZ(')O -XM;W0@*$YV:2!R96-O=F5R>2!P2X@```E2`O(&]R -XM(#\`!"$C)BH\/3Y`?@`P.#!\56YK;F]W;B!C;VUM86YD(&YA;64`,6)C83$` -XM,#DX?%1H92`E2!N -XM;W0@8F4@>F5R;P!L<@`P.#9\57-A9V4Z("5S`'-C2`E;'4@;&EN97,@:6X@=&AE(&9I;&4`,3`S -XM?$EL;&5G86P@861D"!M;V1E -XM`````#`X-'PE"!T86)L92!E"!C;VUM86YD(&9A:6QE9#H@<&5N9&EN9R!C;VUM86YDP@4(N,(%"%W'!0A\Q`4(?,0%"`7'!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0BOQ@4(_<<%")['!0B>QP4(GL<%")[' -XM!0B>QP4(GL<%")['!0B>QP4(GL<%")['!0A\Q`4(?,0%"'S$!0A\Q`4(?,0% -XM"-W%!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4( -XM?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(9\8%".O+!0CLR@4([,H%".S* -XM!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H% -XM".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(Z\L%".S*!0CLR@4( -XM[,H%".S*!0CXRP4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(FLL%".S*!0CL -XMR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S* -XM!0CLR@4(H\L%".3>!0B#W@4(@]X%"-C$%"-C&-E<'0@870@=&AE(&5N9``R-S-\16YT97)I;F<@ -XM97@@:6YP=70@;6]D92X`,3$T?$YO(&9I;&4@;&ES="!T;R!D:7-P;&%Y`"5S -XM)7,E'!A;G-I;VX@9F%I -XM;&5D`"$E3H@)7,`&5C=71E(&$@8G5F9F5R`#P`2!L:6YE(&YU;6)E<@!S -XM:&EF="!L:6YE5T`8V]P>0!C'5S86=E`%ME>'5=')C -XM(&9I;&4`(69.`%ML:6YE72!O6W!E;ET@6R]212]=(%MF;&%G2!L:6YEF4@6RLM -XM77)O=W,`5T@;&EN92!;9FQA9W-= -XM``!C;W!Y(&QI;F5S(&5L2!B6W5F9F5R2!S970I(&9I;&4@;F%M -XM90``8G)I;F<@82!B86-K9W)O=6YD960@72!;=VEN -XM9&]W7W-I>F5=(%MF;&%G2!D:69F97)E;G0@,,( -XM")S#"`C3O`@(T$,&"`````#:O`@(W;P(",##"`@1"PD(L$8&"$(```!ZL0@( -XM[,,("/6\"`C.V`@(X$@&"`````#+P0@(),0("%S$"`@E!`D(D$L&"``!``!^ -XMO`@($+T(""N]"`CXF`@(D$L&"``!``!^O`@(1KT(""N]"`A=O0@(8!$'"``` -XM``#;OP@(9;T("(S$"`B;T("+#$"`B'O0@(L)$& -XM"``%``!^O`@(BKT("-C$"`B7O0@(P%X&"`0```#:O`@(",4("#S%"`B>O0@( -XM\!`'"`````!/C0@(H[T("*J]"`C!O0@(``(&"#$```#5V@@(R+T("-N]"`CV -XMO0@(4&@&"$(```#[O0@(<,4("`"^"`@2]@@(X'$&"`$```#+P0@('KX(""N^ -XM"`A8O`@(T(4&"((```#\O0@(G,4(",#%"`B#E`@(('4&"$(````O]@@(0+X( -XM".C%"`C3]`@(X'$&"`$```#+P0@(6[X(""N^"`@(H@@(`&\&"`````!MO@@( -XM<+X("`S&"`B&O@@(<'(&"`````"-O@@(DKX("*&^"`C)P`@(T`8&"``!``"T -XMO@@(.,8("%C&"`C3!`D(<(4&"((```#\O0@(A,8("*C&"`C0N0@(L'H&"`$` -XM``#;O`@(N+X(",C&"`C1H0@(((4&"((```#\O0@([,8("-6^"`CCO@@(P"H' -XM"#0"``#;O`@(Z+X("!#'"`CSO@@(P"H'"#0"``#;O`@(^KX("#S'"`@'OP@( -XMX'L&"`````!/C0@($+\("'3'"`@;OP@(H`4&"``!``#5V@@()+\(")S'"`AV -XMO`@(,(8&"'$```#_]`@(-;\("-#'"`A+OP@(T(8&"`````#5V@@(4+\("%J_ -XM"`@$V0@(L(D&"#$```#;O`@(9;\("/#'"`@KH`@(,'L&"`````"-O@@(@[\( -XM")._"`BHOP@(,)$&"``$``"OOP@(LK\(""#("`C"OP@(T`0&"`````#5V@@( -XMR;\("$3("`C5OP@(T`4'"``!``#:OP@(W[\("'3("`C;O`@(,-X&"`(```#; -XMO`@(F,@("-3("`C(L0@(\)P&"``"``!]O`@(];\("`C`"`B1F@@(L*4&"``` -XM```@P`@(^,@("#C)"`B$W0@(4*L&"``"``!/C0@((\`("&C)"`@KP`@(8+(& -XM"`````".O@@(,L`("$#`"`A]H@@(X+,&"``"``#5V@@(6\`("&7`"`A^P`@( -XMX+,&"``"``#5V@@(AL`("&7`"`C-H0@(@'D&"$(````9C0@(D\`(")S#"`@] -XMP0@(,/8&"``!``#:OP@(L<`("'3("`C&P`@(4/4&"`````#5V@@(SL`("-O` -XM"`CPP`@($.\&"`````#:OP@(]\`("(C)"`@3P0@(L0@(<-P&"`(```#;O`@( -XM7,P("(3,"`@```````````````````````````````!.;R!C0!A9&0`8W-C;W!E -XM+F]U=`!C&5C(&-S8V]P92`M9&P@+68@)7,`````,S$R?"5D.B!N;R!S=6-H(&-S -XM8V]P92!S97-S:6]N```E2!C7!E.B!U2!Y;W4@;W(@2!Y;W4````Q,S!\)7,Z(&YO="!S;W5R8V5D.B!W2!M87!P960`,3,T -XM?%1H92`E2!B92!R96%D```Q-#9\)7,Z(')E860@;&]C -XM:R!W87,@=6YA=F%I;&%B;&4````Q-#E\3F\@8F%C:V=R;W5N9"!S8W)E96YS -XM('1O(&1I&5C=71E`'!Q&ET960`0V]N=&EN=65D`$5- -XM5"!T'!IF4@;&EM:70@97AC965D960````````` -XM```````&````G]X("`X```"JW@@("@```+;>"`@4````P-X("!,```#-W@@( -XM!P```-?>"`@(````X-X("`$```#YW@@(!`````#?"`@=````%-\("`(````H -XMWP@(%P```#+?"`@&````/]\("`D```!(WP@(#0```$_?"`@;````6]\("`,` -XM``!SWP@("P```'C?"`@1````B]\("`P```">WP@(#P```*[?"`@%````N=\( -XM"!(```#(WP@(%0```-+?"`@6````YM\("!````#[WP@('@```!#@"`@?```` -XM)N`("!H````\X`@('````%+@"`@8````9N`("!D```!]X`@(,34R?'-H:69T -XM=VED=&@@;W!T:6]N('-E="!T;R`P`%)%(&5R+EM=)"H`,34S?$-O=6YT(&]V97)F;&]W`#$U-'Q#;W5N="!U;F1E -XM2!N -XM;W0@8F4@8V]M8FEN960@=VET:"!T:&4@8R!F;&%G(&EN('9I(&UO9&4`PL(& -XM"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@C" -XMP@8(/<(&"#W"!@CXQ@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&".G& -XM!@@]P@8(VL8&"#W"!@@]P@8(6,8&"%C&!@A8Q@8(6,8&"%C&!@A8Q@8(6,8& -XM"%C&!@A8Q@8(6,8&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@] -XMP@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W" -XM!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(+\8& -XM"#W"!@@]P@8(/<(&"!S&!@@]P@8(/<(&"#W"!@@]P@8(#<8&"#W"!@@]P@8( -XM/<(&"/[%!@@]P@8(FL(&"+_5!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5 -XM!@BCU08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@B-U08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(&]8&"+K.!@BZS@8( -XMNLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(!=8&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"(W5 -XM!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@@QU@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@BZS@8(NLX&"+K.!@COU08(,38T?"5S.B!T:&4@=&%G)W,@;&EN92!N -XM=6UB97(@:7,@<&%S="!T:&4@96YD(&]F('1H92!F:6QE````,38V?"5S.B!S -XM96%R8V@@<&%T=&5R;B!N;W0@9F]U;F0`````,34Y?$QE2!A="!T:&4@;&%S -XM="!T86<@;V8@=&AI'5S86=E -XM(%MC;61=/$-2/B(*````1F]R(&$@=FD@:V5Y('5S86=E('-T871E;65N="!E -XM;G1E5T\0U(^(@H`````5&AE("5S(&ME>2!H87,@ -XM;F\@8W5R&ET+"!E;G1E0`Q-S1\57-A9V4Z("5S -XM`#$T-'PE2!F:6QE(&YA;65S```` -XM,C@S?%1H92`E"!T97)M:6YA;"!I -XM;G1E"!T97)M:6YA;"!I;G1E2!O9B!#86QI9F]R;FEA+"!" -XM97)K96QE>2X````Q-S5\5&AE('9IB5C`#(U -XM,WQ72!S8W)E96YS`%Y#`%MC;W5N=%U>1`!;8V]U;G1=7D4`7D4@2!C:&%R86-T97)S`%MC;W5N=%U>2@!>2B!M;W9E(&1O=VX@8GD@;&EN97,` -XM7DP`7DP@2!L:6YE2!L:6YE -XM4@!>4B!R961R87<@5@!>5B!I;G!U="!A(&QI -XM=&5R86P@8VAA"!M;V1E`%Y=`%Y= -XM('1A9R!P=7-H(&-U`%Y>('-W:71C:"!T;R!P&ET`%M;`%M;(&UO=F4@8F%C:R!S96-T:6]N`%U=(&UO=F4@ -XM9F]R=V%R9"!S96-T:6]N`"!>(&UO=F4@=&\@9FER2!C;VQU;6YS`&U;82UZ70`@;2!S970@;6%R:P`@;B!R97!E870@ -XM;&%S="!S96%R8V@`6V-O=6YT76\`(&\@87!P96YD(&%F=&5R(&QI;F4`6V)U -XM9F9EB!R97!O02!S96%R8V@@9F]R=V%R9"!F;W(@8W5R -XM0R!I;G1E2!L:6YE2!L:6YE2!L -XM:6YE2!T -XM97AT('1O(&UO=&EO;B!I;G1O(&$@8W5T(&)U9F9E<@````!;;&EN95UZ6W=I -XM;F1O=U]S:7IE75LM?"Y\*WQ>?#Q#4CY=```````````````````````````` -XM````````````H(,'"")`5`"H[0@(!/@(")![!P@@``0`LNT("+SM"`@````` -XM`````-3M"`@H^`@(<'T'""``!`#7[0@(8/@("-!Z!P@```0`X>T(".OM"`B` -XM?`<((``$``/N"`@-[@@(0)4'"``````G[@@(*NX("&!>!P@@`$0`.>X("$/N -XM"`@`````````````````````,'X'"!@`1`!>[@@(:.X("``````````````` -XM````````<@<(`````'[N"`B![@@(P'X'"$@`1`"2[@@(D/@("#!^!P@8`$0` -XMG.X("*;N"`@`````````````````````$'\'"!@`1`"\[@@(QNX("``````` -XM````````````````<@<(`````-KN"`C=[@@(`````````````````````!`] -XM!P@@0```[NX("/'N"`C0?0<((``$`/SN"`@&[P@(```````````B[P@()>\( -XM"-!Y!P@`````0N\("$7O"`@`````````````````````,'L'"```!`!<[P@( -XM9N\("*!!!P@````">N\("'WO"`@``````````(_O"`B\^`@(D$0'"`````"; -XM[P@(GN\("(!`!P@@0!``M.\("+?O"`B@0P<(`````,_O"`C2[P@(```````` -XM`````````````*!X!P@@`$0`[>\("/3X"`BP/@<((``L`ACY"`@\^0@(```` -XM`````````````````*!%!P@@``X`^.\("`?P"`A@=P<(@`!$`"7P"`@O\`@( -XMH&0'"")`1`!&\`@(2/`(""!#!P@`````/+L("%GP"`@P9`<(*`!#`'#P"`AD -XM^0@($)('"")`1`!X\`@(@?`("-".!P@B0$0`E_`("*#P"`@````````````` -XM````````,'X'"$@`1`"Y\`@(C/D("%`T!P@@`$0`PO`("+CY"`@0?P<(2`!$ -XM`,OP"`C<^0@(``````````!!\0@(U/`("/")!P@B@$``[_`("/WP"`@`7@<( -XM(`!``+BB"`@/\0@(```````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````,#H'"``````J\0@(0_$("``U!P@@`$0` -XM4?$("`CZ"`B@0@<((``L`%KQ"`AP\0@(`````````````````````"!"!P@@ -XM`"P`CO$(""SZ"`@0B@<((H!``*3Q"`BR\0@(T"X'""``!`'%\0@(S?$("/!6 -XM!P@@``P`W_$(".CQ"`APZ0<((`!$`/[Q"`@'\@@(```````````<\@@(+?(( -XM"```````````1O(("%#R"`CP[`<((`!$`&GR"`AR\@@(4#$'""``1@",\@@( -XM3/H("%"`!PA(`$4`G_(("*CR"`@`@`<("`%%`+CR"`AT^@@(<%8'""``#`#! -XM\@@(G/H("'`]!P@@``P`RO(("-/R"`@`````````````````````8'\'"`@! -XM10#A\@@(ZO(("+!_!P@(`44`<(L("`/S"`B`A0<((H!``/:B"`@<\P@(X%T' -XM""``#``S\P@(//,("`!Q!P@@`(P`4?,("+SZ"`B01`<(`````%OS"`A=\P@( -XMX%,'""``#`!R\P@(>_,("```````````D?,("*+S"`A0,@<((`!&`,#S"`C@ -XM^@@(T.('""`````$[P@(T_,("```````````````````````\0<((`!$`._S -XM"`CX\P@((/$'""``C``0]`@(#/L("```````````(?0("#+T"`@@]P<(```` -XM`#_T"`A"]`@(,(H'""!`1`!8]`@(6_0("```````````````````````C`<( -XM($!$`(H&"0AP]`@(\%\'""``1``!P@@`$0` -XMJO4("+/U"`C`5`<((``,`,OU"`C4]0@(,'X'"!@`1`#L]0@(]?4("!!_!P@8 -XM`$0`"_8("!3V"`B@>`<((`!$`"CV"`@Q]@@(<&0'"````@!*]@@(4?8("%"% -XM!P@B@$``]J(("%WV"`C`70<((``,`'/V"`A\]@@(`'`'""``C`"1]@@(5/L( -XM"``````````````````````@<@<((``,`)OV"`BN]@@(8%('""``C`##]@@( -XMU/8(",`S!P@@`$8`[/8("'C["`A`X@<((````/R6"`C_]@@(```````````` -XM`````````.#P!P@@`$0`$_<("!SW"`@0\@<((`",`#'W"`A"]P@(0/,'""`` -XMK`!6]P@(I/L("&#T!PA```4`T/L("'3W"`@P:0<((D!$`(WW"`B6]P@(X%X' -XM""``1`"M]P@(MO<(",!K!P@B0$0`R/<("-'W"`@0X0<((``,`.OW"`CT]P@( -XM,S`W?$YO(&5X(&-O;6UA;F0@=&\@97AE8W5T90`Q.#!\3F\@<')E=FEO=7,@ -XM9FEL92!T;R!E9&ET````,C`W?%1H92!1(&-O;6UA;F0@/!P@HCP<(*(\'""B/!P@HCP<(=X\'""B/!PAWCP<(*(\'""B/ -XM!P@HCP<(*(\'"(*/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\' -XM""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(@H\'""B/!P@HCP<( -XM*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@H -XMCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/ -XM!P@HCP<(*(\'""B/!P@HCP<(=X\'"#$Y-'Q.;R!M;W)E(&-H87)A8W1E\!PBJNP<(;ZP'"("[!PAOK`<(;ZP'"+^^!PA6O@<(;ZP'"$*_!PB_O@<( -XM/;X'"#V^!PAOK`<($[X'"(B]!PA@O0<(,KP'"%6[!PCYM`<(G+H'"(6Z!PB% -XMN@<(#K4'"/FT!PAIN@<(^;0'"/FT!PCYM`<(^;0'"$FZ!P@R,#%\0G5F9F5R -XM2!I;B!T:&4@9FER,'"#(P-GQ.;R!C:&%R86-T97)S('1O(&1E;&5T90#O]P<(,?@'""KX!P@J -XM^`<(0O@'"%7X!P@:^`<([_<'"._W!PCO]P<([_<'"/OW!PA5^`<($`@(""@( -XM"`@E#0@(YP0("$$-"`APX`<((``L`.D+"0C_"PD(,C,U?$YU;6)E2!I;B!C;VUM86YD(&UO9&4` -XM,C,V?$EN=&5R7,@9&ES8V%R9&5D`````#(S,7Q);G1E7,@9&ES8V%R9&5D```E9"!S8W)E96YS(&)A8VMG6]U'`@)````1L#.Z0!```!````]'C__\`!```````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````````$^-"`@`````+!()"``````` -XM`````````````````````0```%P````"````7@````,````$````!````!(` -XM```%````%`````8````:````!P```#H````(````#0````D````;````"@`` -XM``P````+````&`````P````*````#0```'T````.````*0````\````)```` -XM$`````@````1````%0```!(````1````$@```!8````3````%P```!0````P -XM```````````````````````````````````````````````5`````0```"]D -XM978O<'1Y6%@``"SS"`@``````````````````````````!0``````````7I2 -XM``%\"`$;#`0$B`$``!P````<````+'?__X)`$"`8```#XA00("@```-`$```+````$````!4``````````P```#02 -XM"0@"````B`0``!0````1````%P```!B7!`@1````N)8$"!(```!@````$P`` -XM``@```#^__]OF)8$"/___V\!````\/__;TB5!`@````````````````````` -XM``````````````````````````````````````````#_____`````/____\` -XM`````````%`1"0@``````````,J;!`C:FP0(ZIL$"/J;!`@*G`0(&IP$""J< -XM!`@ZG`0(2IP$"%JIP$"(J!`@:G@0(*IX$"#J>!`A* -XMG@0(6IX$"&J>!`AZG@0(BIX$")J>!`BJG@0(NIX$",J>!`C:G@0(ZIX$"/J> -XM!`@*GP0(&I\$""J?!`@ZGP0(2I\$"%J?!`AJGP0(>I\$"(J?!`B:GP0(JI\$ -XM"+J?!`C*GP0(VI\$".J?!`CZGP0("J`$"!J@!`@JH`0(.J`$"$J@!`A:H`0( -XM:J`$"'J@!`B*H`0(FJ`$"*J@!`BZH`0(RJ`$"-J@!`CJH`0(^J`$"`JA!`@: -XMH00(*J$$"#JA!`A*H00(6J$$"&JA!`AZH00(BJ$$")JA!`BJH00(NJ$$",JA -XM!`C:H00(ZJ$$"/JA!`@*H@0(&J($""JB!`@ZH@0(2J($"%JB!`AJH@0(>J($ -XM"(JB!`B:H@0(JJ($"+JB!`C*H@0(VJ($".JB!`CZH@0("J,$"!JC!`@JHP0( -XM.J,$"$JC!`A:HP0(:J,$"'JC!`B*HP0(FJ,$"*JC!`BZHP0(RJ,$"-JC!`CJ -XMHP0(^J,$"`JD!`@:I`0(*J0$"#JD!`A*I`0(6J0$"&JD!`AZI`0(BJ0$")JD -XM!`BJI`0(NJ0$",JD!`@``````````````````````````````````````"1& -XM'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#)`$"'@0``#0 -XM!``````````````!`````````#<```#___]O`@```$B5!`A(%0``4`$```0` -XM`````````@````(```!$````_O__;P(```"8E@0(F!8``"`````%`````0`` -XM``0`````````4P````D```!"````N)8$"+@6``!@````!``````````$```` -XM"````%P````)````0@```!B7!`@8%P``B`0```0````+````!`````@```!E -XM`````0````8```"@FP0(H!L``!$```````````````0`````````:P````$` -XM```&````M)L$"+0;```@"0`````````````$````!````'`````!````!@`` -XM`."D!`C@)```/.4#````````````$`````````!V`````0````8````vi.uu << '5f6cb34c34598fc980a32aede89eafe8' -Xbegin 644 vi -XM?T5,1@$!`0D```````````(``P`!````X*0$"#0````8IP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(@(\$ -XM`("/!``%`````!````$`````D`0``!`)"``0"0B$!```@!$```8`````$``` -XM`@```%"1!`!0$0D(4!$)"-````#0````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1LCP0`;`\)"&P/"0@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*@````Q```````````````W`````````&<```!4```` -XMH@````````"(`````````'<```"9````3@```&X````_``````````````"0 -XM````@@``````````````I0```*<```"/`````````(````!6````G0```)$` -XM``"*`````````)L```!2``````````4`````````F````&$````T````>@`` -XM``````"+````G````)X````-`````````'\``````````````'D````````` -XM)P```$,````8````:@````````!T````H0````````"$`````````$P````X -XM````H``````````?````E0```#``````````8P`````````6`````````#T` -XM``!F````E@``````````````EP```!$```!:``````````````!B````@P`` -XM`($```!7````7````)0`````````%P```'4````N````?0````````!H```` -XM`````(P``````````````'````"'````F@```*0```!)````<@```*8````` -XM````4`````````!8````>P```)(`````````HP```````````````````)\` -XM```\````;P```%4```!^`````````(D```!?````60```(4````Z```````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````0```````````````````!(````` -XM````````````````````!`````(````````````````````.````#``````` -XM```5`````````!0````(````````````````````````````````````*0`` -XM````````````(P````D``````````````"H````E````+P`````````````` -XM"@`````````````````````````L```````````````<```````````````9 -XM`````````"@````D`````````$(``````````P`````````V`````````$H` -XM```Y````,P`````````;`````````$$````````````````````+````-0`` -XM`````````````````!T````0````&@````\````'````70`````````````` -XM`````#X```!$`````````!X````A````:0``````````````(````&0````` -XM````````````````````$P````````!1````````````````````10```$\` -XM```R````!@```#L``````````````&P```!(`````````$<````````````` -XM`',```!`````````````````````6P````````!@````)@```(T```!+```` -XM`````%X```!Q`````````'P```!-````C@```'@```!M`````````"(```"& -XM`````````&L```!&`````````%,````M````DP```'8````K````90`````` -XM``````````````````!\!````````,8````2````VP$````````R`@``$@`` -XM`*P"````````-````!(```!3!````````#,````2````N@(```````!#```` -XM$@```!($````````5@$``!(````]!``````````````2````K@,````````R -XM````$@```#8$````````H0```!(```!0`0```````'(#```2````+P$````` -XM``""`0``$@```+\"`````````````!(```"C`0```````&L!```2````R`$` -XM``````#]"```$@```!$```!0$0D(`````!$`\?^T`@`````````````2```` -XM.0(`````````````$@```!H`````````U`,``!(```"1!``````````````2 -XM````-P0```````"A````$@```/\"`````````````!(```!/`P```````%H` -XM```2````50(```````!7````$@```$(!````````.0```!(````P!``````` -XM```````2````!@(```````!J````$@```"``````````30```!(````G```` -XM`````/8#```2````>P0```````":````$@```"0$`````````````!(````O -XM`````````!D````2````XP$```````#!````$@```/,!`````````````!(` -XM``">`P```````%T````2````2@$`````````````$@```&X!````````3P`` -XM`!(```",`P````````4````2````S`(`````````````$@```.`#```````` -XM3@4``!(````5`P```````-T#```2````:@(```````#8````$@```#<```"@ -XMFP0(`````!(`"@`@`@```````.H````2````=P(`````````````$@```%X# -XM`````````````!(```#M`@`````````````2````S@$```````"2`0``$@`` -XM`)`0```````#,````2````3``` -XM``````"2````$@```'$#``"@%`D(!````!$`%P!5`````````"0````2```` -XM*@(````````5`@``$@```'X#````````90(``!(```"/`@`````````````2 -XM````,`,````````T````$@```-,"````$`D(!````!$`$`!:`````````-T` -XM```2````9`````````!"````$@```&L`````````;@```!(```!U```````` -XM`-P#```2````0P0`````````````$@```*<"`````````````!(```"X`P`` -XM`````%(7```2````&0(``*04"0@$````$0`7`,`#````````*P```!(````^ -XM`P```````,T````2````?`(``*@4"0A4#```$0`7`(4#`````````````!(` -XM``#/`P```````,P````2````90(```````"A````$@```'L`````````)``` -XM`!(```"0`0```````#````!(```";````'(H("``````2 -XM``T`,0$```````"8````$@```-<#````````'0```!(```"7!````````.T` -XM```2````.`$```0A"0@$````$0`7`*H!`````````````!(````\!``````` -XM`+$````2````&P0````````D````$@```#0"`````````````!(````=`P`` -XM""$)"`0````1`!<`8@$````````E````$@```'\!`````````````!(```"A -XM`````````#D````2````7P0`````````````$@```%@$````````8@```!(` -XM``"6`P```````,L````2````@00`````````````$@```*L````,(0D(!``` -XM`!$`%P!L!````````/H````2````8`0```````!#````$@```*$$```````` -XM`````!(````+`@```````,,````2````KP0``(04"0@`````$`#Q_Z<$```` -XM````/0```!(````2`@```````#,````2````U`$`````````````$@```+(` -XM```T$@D(`````!$`\?_M`P```````($````2````P@0``(`A"0@`````$`#Q -XM_P@$````````8@,``!(```"K`0`````````````2````R`````````!T```` -XM$@```$`"````````80```!(```"G`P````````,!```2````Z0$``!`A"0@$ -XM````$0`7`&\$````````DP```!(```#%`@``%"$)"`0````1`!<`^`$````` -XM````````$@```,T`````````H@```!(```"Q`0```````$4````2````5@,` -XM``````#*#```$@````$$````````*P```!(```#6````&"$)"`0````1`!<` -XM7P(`````````````$@```,$!`````````````!(```#=`````````+4````2 -XM````YP`````````%`0``$@```#("````````[````!(```!E!``````````` -XM```2````(P0`````````````$@```'0!S971V8G5F`&5X96-L`%]?7-T96T`9F5O9@!M86QL;V,`:7-A='1Y`&]P=&%R9P!V&5C -XM`&]P96YD:7(`6YA;64`9V5T<'=U:60`9V5T8W=D`&9G971C -XM`&=E=&AO&ET`'-E=&QO8V%L90!R96=E&ET`'-T@<` -XM``(`QP0```````"@%`D(!3P``*04"0@%2@``J!0)"`5-``#\(`D(!6(````A -XM"0@%9P``!"$)"`5Q```((0D(!78```PA"0@%?@``$"$)"`6/```4(0D(!9$` -XM`!@A"0@%EP``'"$)"`6C``!`$@D(!P$``$02"0@'`@``2!()"`<#``!,$@D( -XM!P0``%`2"0@'!0``5!()"`<&``!8$@D(!P<``%P2"0@'"```8!()"`<)``!D -XM$@D(!PH``&@2"0@'"P``;!()"`<,``!P$@D(!PT``'02"0@'#@``>!()"`<0 -XM``!\$@D(!Q$``(`2"0@'$@``A!()"`<3``"($@D(!Q0``(P2"0@'%0``D!() -XM"`<6``"4$@D(!Q<``)@2"0@'&```G!()"`<9``"@$@D(!QH``*02"0@'&P`` -XMJ!()"`<<``"L$@D(!QT``+`2"0@''@``M!()"````[!,)"`=Y``#P$PD(!WH``/03"0@'>P``^!,) -XM"`=\``#\$PD(!WT````4"0@'?P``!!0)"`>````(%`D(!X$```P4"0@'@@`` -XM$!0)"`>$```4%`D(!X4``!@4"0@'A@``'!0)"`>(```@%`D(!XH``"04"0@' -XMBP``*!0)"`>,```L%`D(!XT``#`4"0@'C@``-!0)"`>0```X%`D(!Y(``#P4 -XM"0@'DP``0!0)"`>4``!$%`D(!Y4``$@4"0@'E@``3!0)"`>8``!0%`D(!YD` -XM`%04"0@'F@``6!0)"`>;``!<%`D(!YP``&`4"0@'G0``9!0)"`>>``!H%`D( -XM!Y\``&P4"0@'H```A``!T%`D(!Z(``'@4"0@'I0``?!0)"`>F``"` -XM%`D(!Z<``(/L#.@("@``Z$/N`P"#Q`S#````_S4X$@D(_R4\$@D(`````/\E -XM0!()"&@`````Z>#_____)402"0AH"````.G0_____R5($@D(:!````#IP/__ -XM__\E3!()"&@8````Z;#_____)5`2"0AH(````.F@_____R54$@D(:"@```#I -XMD/____\E6!()"&@P````Z8#_____)5P2"0AH.````.EP_____R5@$@D(:$`` -XM``#I8/____\E9!()"&A(````Z5#_____)6@2"0AH4````.E`_____R5L$@D( -XM:%@```#I,/____\E`2"0AH0`$``.E@_?___R7D$@D(:$@!``#I4/W___\EZ!() -XM"&A0`0``Z4#]____)>P2"0AH6`$``.DP_?___R7P$@D(:&`!``#I(/W___\E -XM]!()"&AH`0``Z1#]____)?@2"0AH<`$``.D`_?___R7\$@D(:'@!``#I\/S_ -XM__\E`!,)"&B``0``Z>#\____)003"0AHB`$``.G0_/___R4($PD(:)`!``#I -XMP/S___\E#!,)"&B8`0``Z;#\____)1`3"0AHH`$``.F@_/___R44$PD(:*@! -XM``#ID/S___\E&!,)"&BP`0``Z8#\____)1P3"0AHN`$``.EP_/___R4@$PD( -XM:,`!``#I8/S___\E)!,)"&C(`0``Z5#\____)2@3"0AHT`$``.E`_/___R4L -XM$PD(:-@!``#I,/S___\E,!,)"&C@`0``Z2#\____)303"0AHZ`$``.D0_/__ -XM_R4X$PD(:/`!``#I`/S___\E/!,)"&CX`0``Z?#[____)4`3"0AH``(``.G@ -XM^____R5$$PD(:`@"``#IT/O___\E2!,)"&@0`@``Z<#[____)4P3"0AH&`(` -XM`.FP^____R50$PD(:"`"``#IH/O___\E5!,)"&@H`@``Z9#[____)5@3"0AH -XM,`(``.F`^____R5<$PD(:#@"``#I!,)"&AP`@``Z0#[ -XM____)7P3"0AH>`(``.GP^O___R6`$PD(:(`"``#IX/K___\EA!,)"&B(`@`` -XMZ=#Z____)8@3"0AHD`(``.G`^O___R6,$PD(:)@"``#IL/K___\ED!,)"&B@ -XM`@``Z:#Z____)903"0AHJ`(``.F0^O___R68$PD(:+`"``#I@/K___\EG!,) -XM"&BX`@``Z7#Z____):`3"0AHP`(``.E@^O___R6D$PD(:,@"``#I4/K___\E -XMJ!,)"&C0`@``Z4#Z____):P3"0AHV`(``.DP^O___R6P$PD(:.`"``#I(/K_ -XM__\EM!,)"&CH`@``Z1#Z____);@3"0AH\`(``.D`^O___R6\$PD(:/@"``#I -XM\/G___\EP!,)"&@``P``Z>#Y____)<03"0AH"`,``.G0^?___R7($PD(:!`# -XM``#IP/G___\ES!,)"&@8`P``Z;#Y____)=`3"0AH(`,``.F@^?___R74$PD( -XM:"@#``#ID/G___\EV!,)"&@P`P``Z8#Y____)=P3"0AH.`,``.EP^?___R7@ -XM$PD(:$`#``#I8/G___\EY!,)"&A(`P``Z5#Y____)>@3"0AH4`,``.E`^?__ -XM_R7L$PD(:%@#``#I,/G___\E\!,)"&A@`P``Z2#Y____)?03"0AH:`,``.D0 -XM^?___R7X$PD(:'`#``#I`/G___\E_!,)"&AX`P``Z?#X____)0`4"0AH@`,` -XM`.G@^/___R4$%`D(:(@#``#IT/C___\E"!0)"&B0`P``Z<#X____)0P4"0AH -XMF`,``.FP^/___R40%`D(:*`#``#IH/C___\E%!0)"&BH`P``Z9#X____)1@4 -XM"0AHL`,``.F`^/___R4<%`D(:+@#``#I#V__\```````````````!5B>564X/L$(/D -XM\(M=!(G1C72=#(7;B35H(0D(?C:+10B%P'0OHP`0"0@/MA"$TG0C@\`!ZPH/ -XMMA"#P`&$TG04@/HO=?&C`!`)"`^V$(/``832=>RX4!$)"(7`=#2)#"3HG_[_ -XM_\<$)!R*"`CHD_[__^A*]O__C44(B70D"(E$)`2)'"3H5P\``(D$).AC_?__ -XMZ'[X___KS9"0D)"0D)"058GE@^P(@#T@(0D(`'0,ZQR#P`2C"!`)"/_2H0@0 -XM"0B+$(72=>O&!2`A"0@!R<.058GE@^P(H3`2"0B%P'02N`````"%P'0)QP0D -XM,!()"/_0R<.0D)"0D)"0D)"0D)"0H0PA"0BZ_____U6)Y8M-#(7`=`,/OQ") -XM$:$,(0D(NO____^%P'0$#[]0`HM%$(D0BT4(BT!(*0$QP%W#C70F`%6)Y8M% -XM"(M5#(M-%(M`$(/Z`8M`)'0Y6#[!BA$"$)",=$)`B`````QT0D!`$```#' -XM!"2,B@@(B40D#.AI^___R<.-=@!5B>6#[!B+10B)7?2)=?B)??R+0!"+4"2) -XM5?"+<%R+11"%P'0;BYH0`@``]L,$=46+7?0QP(MU^(M]_(GL7<.0BTWPBX$0 -XM`@``J`)TXX/@_8F!$`(``(ET)`3'!"0UBP@(Z,[Y__^A!"$)"(D$).CA]___ -XMZ[NX!0```+\OBP@(_(G!\Z9UJHM%\(/+`HF8$`(``(M5#(E4)`3KOY"-="8` -XM53'2B>6#[`B+10B+0!"+0"2+B*0!``"%R74@*A -XM'"$)"(D4),=$)`@`````@^@!B40D!.@(^?__H0PA"0B)!"3H6_;__Z$,(0D( -XMQT0D!`````")!"3H)O?__\=$)`@`````QT0D!`````")-"3H*O[__^BY]/__ -XMC8,$`0``B40D",=$)`01````QP0D`````.A+^?__QT0D!!(```#'!"0````` -XMZ-?S__^+@Z0!``"%P'0Y@Z,0`@``YS'2BUWTB="+=?B+??R)[%W#D(U%Q(E$ -XM)`C'1"0$$0```,<$)`````#H^?C__S'2Z]&0QT0D"`$```"+1B"+0`B)-"2) -XM1"0$Z);]__^A#"$)",=$)`0!````B00DZ&7V__^+1<")?"0(B40D!*$,(0D( -XMB00DZ`WX___'1"0$`0```(DT).CY_?__C47PB40D$,=$)`P`````QT0D"``` -XM``#'1"0$`0```(DT).AB(0``N@$```"%P`^%1?___XM=\(7;#X1R_O__BT80 -XM,-*+0"2!B!`"`````0``Z2/___^-=@"-1<2)1"0$QP0D`````.AA\O__C8,$ -XM`0``B40D",=$)`01````QP0D`````.@3^/__Z0'^__^-=@"-O"<`````58GE -XM@^PHB5WTBUT(B77XBW40B7W\BWT,B70D"(GX`T-(B40D!*$,(0D(B00DZ#+W -XM__\QTH/``70/BUWTB="+=?B+??R)[%W#BT-(B70D$(E\)`S'1"0($(L("(E$ -XM)!3'1"0$`P```(D<).@1H@``N@$```#KPXUV`(V\)P````!5B>6#[`BA#"$) -XM",=$)`0!````B00DZ!GU___)@\`!#Y3`#[;`PXUV`(V\)P````!5B>6#["B+ -XM50B)7?2)=?B)??SV@JP$```0BT(0#X64````@\`(.0(/A,,```"+#0PA"0B_ -XM_____[[_____A0(/OS&+0D"+6DB+4C0YT`^#B`````'8QT0D"``` -XM``")1"0$B0PDZ$7V__^#P`%T+:$,(0D(QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!/____^)!"3HT_C__Z$,(0D(B7PD"(ET)`2)!"3H_O7__Z$,(0D( -XMQT0D!/____^)!"3H.?3__XM=](MU^(M]_(/``0^4P(GL70^VP,.-0O_I`" -XM`T(0BT`XA<`/E<"$P'7___S'`R<.)]HV\)P````!5B>6#[`B+10B+0!"+0"0%!`$``(D$).A8 -XM]/__/98```!T378Q/2P!``"-M@````!T/G9,/5@"``"-M"8`````="X]L`0` -XM`'4^BT4,QP"P!```,<#)PX/X2W05=C>#^&YT#CV&````=1Z-M"8`````BT4, -XMQP!8`@``,<#)PXUV`#W(````=.F+10S'`(`E```QP,G#@_@R=>[KU9"-="8` -XM58GE4X/L%(M-"(M5#(M!$(72BU@D=5F+51"%T@^%S@```(N##`(``(7`#X20 -XM````BX.@`0``QX,,`@```````(7`#X0[`0``QT0D"(#*!`C'1"0$`0```(D$ -XM).AD\O__H00A"0B)!"3HI_'__^M1D(/J`70+Z+KP__^-M@````#V@:P$```1 -XM=$R+DY@!``"X`0```(72=%*+11"%P`^$E````,=$)`B`R@0(QT0D!`$```") -XM%"3H"?+__Y"-="8`H00A"0B)!"3H1_'__X/$%#'`6UW#BT40A?KB(GV58GE4X/L -XM%(M%"(M5#(M`$(72BU@D=#"#Z@%T!>BC[O__BX.0`0``A<`/A'(!``#'1"0( -XM@,H$",=$)`0!````B00DZ`WP__^+@X@!``"%P'1GH:`4"0B%P'5'BQ4$(0D( -XMBT((@^@!A<")0@@/B%\!``"+`L8`#8/``8D"QT0D"(#*!`C'1"0$`0```(N# -XMB`$``(D$).B[[___@\04,6+0"2# -XMB!`"```@QX"D`0```0```%W#B?:A?"$)"%6)Y8M`)(.($`(``$!=PXVV```` -XM`(V_`````*%\(0D(58GEBT`D@8@0`@``@````,>`I`$```\```!=P^L-D)"0 -XMD)"0D)"0D)"0D*%\(0D(58GEBT`D@8@0`@````$``%W#B?:-O"<`````58GE -XM4XG3@^P4B40D"*$0(0D(QT0D!$F+"`B)!"3H4NG__X7;=!FA$"$)"(E<)`C' -XM1"0$28L("(D$).@UZ?__Z-#M__^+`(D$).@FZ___QT0D!'WI"`B)1"0(H1`A -XM"0B)!"3H#>G__\<$)`$```#H\>___XVV`````(V\)P````!5B>6#[#B)7?2- -XM7=R)=?B)UHE]_(G'C47DB4W[__XM=](MU^(M]_(GL7<.0C;0F`````%6)Y8/L&(EU^(MU#(E]_(M]"(E= -XM](7VBU\D='8QTKG@L00(N`$```#H@____X7`="?'1"0(38L(",=$)`0%```` -XMB30DZ/>8```QP(M=](MU^(M]_(GL7<,QTKD`L@0(L`+H2O___X7`=<"Q!`BP`>CH_O__ -XMAC__X7` -XM==6-D\`!``"Y`+($"+`"Z*?^__^%P'6_QT0D!`\```#'!"1L(0D(Z+/H__^% -XMP'6GC9/8`0``N2"R!`BP#^AY_O__A575E-1@^PXBP&+202)1=2A)"$)"(E-T(/``:,D -XM(0D(@^@!#X5F`P``BT70BQC'1"0$+P```(D<).AJZO__AB35\(0D(QT0D!!0"``#'!"0! -XM````Z"GL__^%P(G'#X3J`@``B7XDQP0D`````.BP[?__A<`/A7@!``"#CE0( -XM```0]H<1`@```@^$>P$``(V'!`$``(E$)`3'!"0`````Z)[F__^#P`$/A*&8`@``&"L!`C'AF0(``#@JP0(QX9H -XM"````````,>&;`@``,"K!`C'AG`(``#@I00(QX9T"```L*H$",>&>`@``)"Y -XM!`C'AGP(``!PKP0(QX:`"```L-`$",>&B`@``("J!`C'AH0(```@I@0(QX:0 -XM"````*H$",>&E`@```````#'AHP(``#0S@0(QX:8"```8*<$",>&G`@``,"F -XM!`C'AJ`(``!`PP0(QX:D"```P*<$",>&J`@``)"F!`C'!"1MBP@(Z`?F__^% -XMP(E%W`^$G0$``(U%Y(L>B40D"(M%W,=$)`0!````B00DZ-#K__^+1>2#^/\/ -XMA%`!``"%P`^%J````(M%W(E<)`C'1"0$E(L("(E$)`RA$"$)"(D$).@,Y?__ -XMQP0D`0```.CPZ___@8\0`@````(``/:'$0(```(/A87^___'1"0(`````,=$ -XM)`0`````QP0D6HL(".@MZ___@_C_B<,/A'W^__^-AP0!``")1"0$B1PDZ`#E -XM__^#P`%T#8D<).C3Z?__Z5G^__^+!KICBP@(Z![[___'!"0!````Z';K__^) -XM]HM%W(D$).B9Y?__A<")1ER)1F`/A-0```"-1>B)1"0,C47LQT0D$`````") -XM1"0(QT0D!`````#'!"0`````Z$T3``"%P'5+BT7LQT0D#`````#'1"0(```` -XM`,=$)`0`````B49(B49$BT7HB48\B48XH00A"0B)!"3H]N/__\=$)`0````` -XMB30DZ%+[__^%P'1NQP0D`0```.C6ZO__B?:A$"$)"(E<)`C'1"0$=(L("(D$ -XM).C+X___QP0D`0```.BOZO__QT7____Z-3E__^+1=")-"2)1"0(BT74 -XMB40D!.C*=P``BUXDQT0D!`````#'!"0!````B478C8.H`0``B40D".CJZ/__ -XMC8/``0``B40D",=$)`0`````QP0D`@```.C,Z/__C8/8`0``@]H<0`@```G5=BX>D`0``A?__Z$$(0D(B00DZ(CE___K@9"058GE5U93@>PL!0``BU4(BTT4BT(0BT`D -XMB87P^O__N---8A#W;12+113!^@;!^!\IPFG"Z`,``(F5Z/K__RG!:<'H`P`` -XM]D40`8F%[/K__P^%C@4``(N5\/K__XN"$`(``*A`#X5:!0``J:`!``!T&:@@ -XM#X6,!0``A,`/B)4%``#VQ`$/A5\"``"+310QTH7)=!6+E>CZ__^+C>SZ__^) -XM5>"-5>")3>2+10B+0!")A?SZ__^+2"2X(````(F-`/O___:!$0(```(/A'`! -XM``")]L>$A03___\`````@^@!=?"%TG1'@XT(____`8E4)!"-E0C____'1"0, -XM`````,=$)`@`````B50D!,<$)`$```#H#^+__X/X_P^$4P$``(7`NP0````/ -XMA#\!``#V11`PD`^%GP,``,>%^/K__P````"+C?SZ__^X(````(N5_/K__X/! -XM"(F-Y/K___:"5`@``"`/A.X"``"%P`^%O````(N-_/K__[`!@XT(____`8MQ -XM"#NUY/K__W1(,?^0C70F`(M%"/:`KP0```%T*(N8@````+@!````BTL$B+-CNUY/K__W7"C4%^/K__P````#H=.3__[L#````@S@$=!W'1"0( -XM=+P("+,"QT0D!`4```"+10B)!"3H29```(N%^/K__X7`#X6``0``@_L$=K#H -XMY>'__XN%]/K__XN-\/K__XM5#(E"%#'`B4H0QT(("0```('$+`4``%M>7UW# -XMBY7P^O__@.3^C4WHB8(0`@``C47LB40D#(U%\(E,)!")1"0(QT0D!`$```"+ -XM50B)%"3H00X``(7`#X7_`@``BUWHA=L/A%?]__^-18B+=>R)A0C___^-1;2) -XMA0S___^+1?"-G0C[__^)78C'1;0`````QT6\`````,=%D`````")1"0,QT0D -XM"+.+"`C'1"0$``0``(D<).@0Y/__B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,IV8E-D(V-"/___\=$)`@`````B4PD!(M% -XM"(D$).CNI```A<`/A%8"``"+10S'0`@+````,<#I\O[__Y"-="8`BU4,,<#' -XM0@@#````@<0L!0``6UY?7<.+10S'0`@"````@<0L!0``,7UW#C46TB40D",=$)`01````QP0D`````.@DY/__ -XMZ6#^___'1"0(_P```(N%\/K__\<$)`````")1"0$Z('F__^#^/^)P@^$_?W_ -XM_X7`#X2B````BTT(]H&L!````70FBX7P^O__@'P"_PIT&8N-`/O__P^V@10! -XM``"+C?#Z__^(!!&#P@&+A0#[__\QV\>```$```````")E?3Z___ITOW__XU% -XMM(E$)`3'!"0`````Z+S=__^%P`^%1OS___9%$!!U=8N%`/O__P5<`0``B40D -XM",=$)`01````QP0D`````.A;X___QX7X^O__`0```.D8_/__BY4`^___NP$` -XM``"+@@`!``"#P`&#^#&)@@`!```/CUS]__\/MH(4`0``,-N+C?#Z__^(`<>% -XM]/K__P$```#I//W__XM%M(E%B(M%N(%EB/_Y__^)18R+1;R)19"+1<")192+ -XM1<2!991_____B468BT7(B46*`@("`=.GWPH"```!U -XM!L'J$(/!`@#2@]D#*=F-E0C___^)39#'1"0(`````(E4)`2+30B)#"3H)J(` -XM`.D[_?__D%6)Y8/L&(M%#(E=^(EU_(D$).A=X/__A<")PW01@_C_=`R)!"3H -XMZN/__X7`=1(QP(M=^(MU_(GL7<.-M@````"-<`&)-"3H>>+__XM5$(7`B0)T -XM'(ET)`B)7"0$B00DZ-#A__^+7?@QP(MU_(GL7C;0F`````(V\)P````!5B>53B<.#[`2+@(@! -XM``"%P'02B00DZ*GB___'@X@!````````BX.,`0``A+__\>#D`$```````"+@Y0!``"%P'02 -XMB00DZ%7B___'@Y0!````````BX.8`0``A6#[!B)=?B+=0B)??PQ_XE=](M>)/:#$`(``!AU$(GXBUWT -XMBW7XBWW\B>Q=PY")-"3HR`X``(7`#Y7`#[;XBX,0`@``)1`"```]$`(``'0Y -XMBX,0`@``)0@"```]"`(``'0YC8,$`0``B40D",=$)`01````QP0D`````.AB -XMW___@Z,0`@``Y^N5B?#HOO[__X7`=+R_`0```.NUBT8DZ`O^___KO8GVC;PG -XM`````%6)Y8/L2(72B77\B<:)7?AT'L=$)`@!````B50D!(D$).CNWO__BUWX -XMBW7\B>Q=PXU=T(E,)`R)'"3'1"0(^I8(",=$)`0H````Z`7>__^)7"0$B30D -XMQT0D"`$```#HL=[__XM=^(MU_(GL7<.-=@!5B>575E.#["R+=0B+7A"+0R2) -XM1>2`NU0(````#XB^`0``#[95#(/B`8G7#X0_`0``BX:L!```J`0/A5$!``#V -XM10P"=`BH"`^%0P$``*@$D'0)@^#[B8:L!```J`AT:X/@]XF&K`0``(U#"#D& -XM="S'1"0(`````(M&2`-&-(E$)`2A#"$)"(D$).B6W?__H0PA"0B)!"3HN=O_ -XM_\=$)`@`````BT8T`T9(@^@!B40D!*$,(0D(B00DZ&?=__^A#"$)"(D$).BZ -XMVO__B?B$P`^$S````(M&$(M8)(N#$`(``*@(#X75!```]L0"#X4Q`P``BU7D -XM@XH0`@``"?:&K`0```$/A(@```"+1>2+D(P!``"%TG1[]H8@`@```0^$`@4` -XM`(N&&`(``(T$0,'@`@-&$(M`.(/H`8D4)(E$)`C'1"0$`````.@YV/__QT0D -XM"(#*!`C'1"0$`0```(D$).@AV___@\0L,)-"3'1"0('(P(",=$)`0#````Z&^'``"#Q"RX -XM`0```%M>7UW#B?:)'"3H^/S__X7`#X7``P``@:-4"```?____^DC_O__D,<$ -XM)`$```#HR-W__X7`=*G'1"0(`````,=$)`0_````B30DZ!B0``"%P`^%@`,` -XM`/:&]`,```$/A"P$``"+ANP#``"-!$#!X`(#1A"+6#C'!"1MBP@(Z.G6__\Q -XMR8G:B47HN&V+"`CH)/W__\<$)/2+"`CHS-;__XE%[/:&(`(```$/A/<#``"+ -XMAA@"``"-!$#!X`(#1A"+2#@QTKCTBP@(Z.K\___'!"3ZBP@(Z)+6__^)1?#V -XMAF`!```!#X2R`P``BX98`0``C01`P>`"`T80BT@X,=*X^HL(".BP_/__Z%_: -XM___'``````"A`"$)"(D<)(E$)`BA!"$)"(E$)`3H']?__X7`#X2:`P``BTWH -XMAR%T@^$UP,``(M%\(7`#X2[`P``B70D!(M&$(V?7`$``(D$ -XM).B][/__Z,S9___HM]C__XUV`.B_VO__H0PA"0C'1"0$`0```(D$).CZU___ -XMH0PA"0C'1"0$`0```(D$).CEV/__QX<,`@```0```,=$)`0`````QP0D$@`` -XM`.CWVO__B5PD!,<$)`````#H1]7__X7`#X75`@``BX<$`0``]L0"=`J!CUP! -XM`````@``]L0$=`J!CUP!````!```@8]H`0``@````,:'=P$``/_&AW4!``#_ -XMQH=V`0``_\:'>P$``/_&AWH!``#_QH=^`0``_XDT).@+"@``A<`/A?4!``#I -XMK@$``(V#C`$``(E$)`C'1"0$18L("(DT).BT^/__C8.8`0``B40D",=$)`3@ -XMBP@(B30DZ)KX__^-@Y0!``")1"0(QT0D!.6+"`B)-"3H@/C__XV#B`$``(E$ -XM)`C'1"0$N8P("(DT).AF^/__C8.0`0``B40D",=$)`27C0@(B30DZ$SX__^+ -XM@Y@!``"%P`^$D@$``(N3E`$``(72#X1R`0``BX,$`0``BY,(`0``B8,P`0`` -XMBX,,`0``@\H#@8LP`0````$``(F#.`$``(N#$`$``(F3-`$``(F#/`$``(N# -XM%`$``(&+/`$``,\%``")@T`!``"+@Q@!``")@T0!``"+@QP!``")@T@!``"+ -XM@R`!``")@TP!``"+@R0!``")@U`!``"+@R@!``")@U0!``"+@RP!``")@U@! -XM``"!PS`!``")7"0(QT0D!!$```#'!"0`````Z$O9__^%P`^$7UW#@\0L -XMN`$```!;7E]=PX'#,`$``.NTO__Z1C\__^)7"0,QT0D"`*,"`C'1"0$ -XM`P```(DT).@9@@``N`$```#I8?K__Y"0D)"0D)"0D)"0D)"0D%6)Y8/L"*&@ -XM%`D(BU4(A"N+`8@0@\`!#[;2B0')B=## -XMH00A"0B)%"2)1"0$Z![2___)B<*)T,.-="8`.T$8?`6`^@IURXD4)(E,)`3H -XMOM?__XG"Z\>-M@````!5B>575E.#["R+=1B%]G0&QP8!````C47LB40D",=$ -XM)`1H=`A`QP0D`@```.BSTO__@\`!#X2&`0``#[=][`^W1>Z%_P^4PX7`B47< -XM#Y1%XXM%#(7`=!R$VP^$Y````(7V=`;'!@````"#Q"PQP%M>7UW#A-L/A+D` -XM``#'!"1MBP@(Z`W1__^%P'05A-L/A8P!``"`?>,`#X51`0``C78`A?]U!&:_ -XM&`"+7=R%VW4'QT7<4````,<$)/2+"`CHTM#__X7`=!K'1"0("@```,=$)`0` -XM````B00DZ*;4__^)Q\<$)/J+"`CHJ-#__X7`=!O'1"0("@```,=$)`0````` -XMB00DZ'S4__^)1=R+31"%R70%BU40B3J+512%T@^$1____XM%%(M5W(D0@\0L -XM,,!Z7G^__^+@A@"``"-!$#! -XMX`(#0A"+0#CI>____\<$)&R,"`CHRM;__X7`>#B)1=SIFO[__XG"BX!8`0`` -XMC01`P>`"`T(0BT`XZ6?____'!"1'@QP(/$<%M>7<.-M"8`````#[=%H(D<)"7O_P`` -XMB40D!.@_U?__A -XM7<.%]G0FB5PD#,=$)`BXC0@(QT0D!`4```")-"3H^'T``+@!````Z6#___^# -XMQ'"X`0```%M>7<.)]H7V=.Z)7"0,B30DQT0D")^M"`C'1"0$!0```.C`?0`` -XM@\1PN`$```!;7EW#C70F`%6)Y5.#[!2+70B+50R+0Q"#^AZ+2"1T>WX6@_H_ -XM="&#^DIT-8/$%#'`6UW#C70F`(/Z"'0+@_H8=>J-M@````"!B%0(``"````` -XM,<"#HZP$``#S@\046UW#BT44BP"%P'56@XD0`@``!(M#((7`=+2+0`B%P'2M -XMB1PDQT0D"`$```")1"0$Z&77__^#Q!0QP%M=PXM%%(L0B1PDB4PD!(72#Y3` -XM#[;`B40D".CP_?__@\04,Q=Z9_^__^+7?0QP(MU^(M]_(GL7<-5B>53@^P$BT4(BX!$`0``A@`````B?:+5>B+@B"."`B)!"3H$\__ -XM_X7`B<B+@CB."`B#PA")5>B%P`^%3?___XL=2(\("(7;#X3+````QT7D -XM`````(MUY(N&0(\("(D$).A+SO__A<")1?`/A)$```"#P`$/A(@````/MH9, -XMCP@(OR`0"0@Y!2`0"0AT"X/'"#D'=?F%_W1IBT7DBU7PBX!(CP@(B470B10D -XMZ*'1__^+==")-"2)P^B4T?__C5<$QT0D(`8```#'1"0<`@```,=$)!@!```` -XMB50D%(E<)!"+5?")1"0(B70D!(E4)`R+=0B)-"3HX\\``(7`#X5E`0``BU7D -XMBX)8CP@(@\(0B57DA<`/A3S___^+#6B/"`B%R0^$30$``,=%X`````#ID0`` -XM`(M5X(MU[(N2:(\("(E5U(DT).@'T?__B478BT7$B00DZ/G0__^+5=2)%"2) -XMP^CLT/__QT0D(`8```#'1"0<`@```(MUV(ET)!B+5>R)7"00B50D%(MUQ(E$ -XM)`B)="0,BT74B40D!(M5"(D4).@YSP``A<`/A;L```"0BW7@BX9XCP@(@\80 -XMB77@A<`/A+````"+=>"+AF"/"`B)!"3HW,S__X7`B47$=-&#^/]TS/R_C8P( -XM"+D"````B<;SIG2[BT7@BX!DCP@(A<")1>P/A2W___^+=<2+5>")-"2+NFB/ -XM"`CH-]#__XD\)(G#Z"W0___'1"0@!@```,=$)!P"````QT0D&`````#'1"04 -XM`````(E<)!")="0,B40D"(E\)`2+10B)!"3H?LX``(7`#X1&____@\1____XL3A=)T!HM#!(E"!(M#!(D0B1PDZ`;.__^+GD`!``"%VW7-C88L -XM`0``.88L`0``=`Z)10B#Q!!;7EWI//___X/$$%M>7<.0C70F`%6)Y5.#[`2+ -XM0!"+D$`!``"%TG1*,=L/MD(0@^@Q/`AW#P^VP/\DA;"/"`B)TXUV`(L2A=)U -XMX(7;="2+$X72=`:+0P2)0@2+0P2)$(U#"(D$).C:_O__B1PDZ';-__^#Q`1; -XM7QD(0->N8QD(0-(UT)@#KCHVT)@````"-O"<`````58GE@^P8QT0D!#P` -XM``")7?2)=?B+=12)??S'!"0!````Z-[*__^%P(G##X2#````A?:)QXEP#'47 -XMBT40B4,0B?B+7?2+=?B+??R)[%W#B?:)-"3H+,S__X7`B4,(=":+30R%R733 -XMBU40A=)TS(M5$(D$)(E4)`B+50R)5"0$Z#',___KM(M5",=$)`@`````QT0D -XM!`4```")%"3H<'4``(M#"(7`=;B)'"0Q_^ASS/__ZXR+10@Q_\=$)`@````` -XMQT0D!`4```")!"3H0'4``.EJ____C70F`(V\)P````!5B>564X/L,(M="(U% -XM](MU&(E$)!"-1?")1"0,QT0D"`$```"+10R)'"2)1"0$Z*U```"%P'0,@\0P -XMN`$```!;7EW#BT7TB1PDQT0D"`````#'1"0$`````(E$)`SHOO[__X7`B<-T -XMSXM%](7`="R+512%TG1,BU7PBT,(`540BU44B50D"(M5$(D$)(E4)`3H/\O_ -XM_XM%%(E#$(U6"(D3BT8,B4,$.U8(=!^+1@R)&(E>#(M#$`%&%(/$,%LQP%Y= -XMPRM%$(E%%.NLB5X(Z^&058GE5U93@^PLBT4,BWT(A<`/A,X"```/M@#V11@$ -XMB$7K#X4-`0``]D48`@^%^0```,=%[``````/ME7K,N+1Q"+L$`!``"%]G4/Z9`"``"+-H7V#X2&`@``.E80=?&% -XM]@^$>0(``(7)B?8/A(X!``#V11@!#X2'````@$X8`8M5$(M-%(L:.QEV$^D@ -XM`0``BT44@\,!.1@/@A(!``")="00QT0D#`````#'1"0(`````(E<)`2)/"3H -XM+?[__X7`=,Z-1@B)!"3HOOO__[@!````QT84`````,9&&`"#Q"Q;7E]=P_9% -XM&`$/A(X!``")^.AE_/__QT7L`0```.GQ_O__BTT0,<"+$8M-%#L1#X0E`0`` -XMBTT0B70D$(E$)`R+002)5"0$B3PDB40D".BY_?__ALQQT7L`````,=% -XM\`````#I0?W__\=$)`0<````QP0D`0```.@;QO__A<`/A)````")Q@^V1>N( -XM1A"-1@B)1@B)1@R+5Q"+@D`!``"%P(D&=`R+@D`!``")<`2+5Q")LD`!``"+ -XM1Q`%0`$``(E&!.DR_?__,<"#?>P`#Y3`B47P#[:4DS0$``"(5>L/MM+IP_S_ -XM_XM5$(M-%(L".P$/A4W___^+=Q`QR<=%[`````#'1?``````@<8D`0``Z=/\ -XM___'1"0(`````,=$)`0%````B3PDZ'=P``"X`0```.DO_?__D)"0D)"0D)"0 -XMD)"0D%6)Y5=64X/L/(M=%(MU"(M]#(7;#X2D````BT40BPB)3?")RCD/=FOI -XMA0```(UV`(-&9`&Z'X7K48M-\(G(]^+!Z@5KTF0YT74_BT80]H!4"```!'5< -XMQT0D#`$```#'1"0(`````,=$)`0`````B30DZ!HT``"%P'4,BT80]H!4"``` -XM!'4LBTWPC5'_B57P.1=W'XE4)`2)-"3H040``(7`=(V[`0```(/$/(G86UY? -XM7<,QVX/$/(G86UY?7<.-1?")1"0$B30DZ(,]``"%P'72BTT0BQ$[5?`/@M4` -XM``"0#X23````B57P.Q=W=XUV`.DF`P``@T9D`;H?A>M1BTWPB+1A#V@%0(```$#X7\`@``QT0D#`$```#'1"0(`````,=$)`0````` -XMB30DZ%$S``"%P'40BT80]H!4"```!`^%R`(``(M-\(U1_XE5\#D7#X.W`@`` -XMB50D!(DT).AP0P``ADJ____C47HC5WDB40D$(E<)`S'1"0(`0```(E4 -XM)`2)-"3H=3H``(7`#X4`____BU40BT($.T7H#X-%!0``BQ*+!SG0#X22`P`` -XMBU\$QT7@`````(7;B5W<#X20````C57DQT0D$`````")5"0,QT0D"`$```") -XM1"0$B30DZ!HZ``"%P`^%I?[__X7V#X3^`@``BUX0A=L/A/,"``#V@U4(```! -XM#X7F`@``BT7"+0WB)1>R!BU0(`````0`` -XMBUW")!"3HIL3__XM-$(L1C47HC5WDB40D$(E<)`S' -XM1"0(`0```(E4)`2)-"3HBSD``(7`#X57`0``BU7HA=(/A)@```"+11"+0`2) -XM1=2-0O\Y1=0/A(,```"+3=R-1!'_*T74.<$/AQ8$``"+3=R%R0^%MP,``(7V -XM=!2+7A"%VW0-]H-5"````0^$*00``(7`QT7L`````,=%X``````/A08%``"+ -XM1>2+7>`K5=0#7=R#P`$#1=2#Z@&)5"0(B1PDB40D!.CGP___BU40BT7H`47< -XM@VW<`8M2!"E5W(M-W(E,)`R+7>")7"0(BP>)-"2)1"0$Z'0]``"%P`^%D``` -XM`(M5$(L"B47P.0=R=.E5`0``@T9D`;H?A>M1BTWPB+ -XM1A#V@%0(```$#X4K`0``QT0D#`$```#'1"0(`````,=$)`0`````B30DZ.$P -XM``"%P'40BT80]H!4"```!`^%]P```(M-\(U!_XE%\#D'#X/F````B40D!(DT -XM).@`00``AP___Z8W\__^-1>B)1"00C47DB40D#,=$)`@!````BP>) -XM-"2)1"0$Z-$W``"%P`^%7/S__X7V=':+7A"%VW1O]H-5"````75FBT<$.T-X -XM#X?4`@``BU-TB57@BT-XB47L@8M4"`````$``(M'!(E$)`B+1>2)1"0$BTW@ -XMB0PDZ&["__^+1P2)1"0,BUW@B5PD"(L'B30DB40D!.@./```A<`/A>G[__\Q -XMV^DH____QT7L`````(M'!,=%X`````"%P'2JB40D#(U%[(E$)`C'1"0$```` -XM`(DT).@/X```A<`/A*K[__^)1>"+1P3I?/___XM%W,=%[`````#'1>`````` -XM!0`!```/A"7]__^)1"0,C47LB40D",=$)`0`````B30DZ,7?``"%P(E%X`^% -XM__S__^E8^___D(UT)@"-1>B)1"00C47DB40D#,=$)`@!````B50D!(DT).B> -XM-@``A<`/A2G[__^%]@^$NP```(M>$(7;#X2P````]H-5"````0^%HP```(M% -XMZ#E#>`^"+@(``(M3=(E5X(M#>(E%[(&+5`@````!``"+1P2%P`^%G@$``(M= -XM$(M%Y(M;!(/``8E=V(M5V(M=X`-?!`-%V/?2`U7HB40D!(D<)(E4)`CH#<'_ -XM_XM'!(M5$`-%Z(/H`2M"!(E$)`R+3>")3"0(BP>)-"2)1"0$Z*$Z``"%P`^% -XMO?W__S';Z;O]__^!H%0(``#__O__Z6OZ__^+1>C'1>P`````QT7@`````(7` -XM#X1F____B40D#(U%[(E$)`C'1"0$`````(DT).B/W@``A<")1>`/A4#____I -XM(OK__S';A?9T>HM>$(7;='.+3>`Y2W1T:SM%[`^&6?S__XE$)`R-1>R)1"0( -XMBTW@B30DB4PD!.A'W@``A<`/A.+Y__^+71")1>"+5>B+6P2)7=3I(_S__\=$ -XM)`C4CP@(NP$```#'1"0$`P```(DT).AN:0``Z?+\__^+71"+$^GE^?__@:-4 -XM"```__[__SM#>`^'E@```(M#=(E%X(M#>(E%[(&+5`@````!``"+51"+4@2) -XM5=2+5>CIO?O__XE$)`R-0WB)1"0(BT-TB30DB40D!.BKW0``A<`/A$;Y__^) -XM0W3I`OW__XE$)`B+1>2)1"0$BTW@B0PDZ(F____I1_[__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AFW0``A<`/A`'Y__^)0W3IA?K__XE$)`R-0WB)1"0(BT-T -XMB30DB40D!.@\W0``A<`/A-?X__^)0W3I0/___XE$)`R-0WB)1"0(BT-TB30D -XMB40D!.@2W0``A<`/A*WX__^)0W3IJ/W__XE$)`R-1>R)1"0(QT0D!`````") -XM-"3HY]P``(7`#X6@_O__Z7WX__^0D)"0D)"0D)"058GE@^P8BU4(]H)$`@`` -XM`70DBX(\`@``C01`P>`"`T(0BU`XA=*Z`0````^4P(3`=!C)B=##BX(\`@`` -XMN@$```"%P`^4P(3`=>CHY;O__\<``````,=$)`0&````BT44B00DZ+RY__^% -XMP'4DQT0D"`$```#'1"0$`@```(M%%(D$).C]M___N@$```#)B=##Z)^[__^# -XM."-T%HVV`````.B/N___,=*#."-UAHUT)@#)N@(```")T,.-M"8`````58GE -XM@^P8B5WXBUT(B77\BW4,BX.D````AQ=PXD<),=$ -XM)`@`````QT0D!`4```#H`&<``(M=^(MU_(GL7<.-M@````!5B>6#[!B+30B+ -XM41R%TG0.BT$@]D`80'0%@SH!?@3),<##BT4,ABX48VO__A%#-K__P````"%P`^$/@$``(M%&(/@`H/X`1G2@>+X`P``@<()`@`` -XMB84(VO__B94`"`T(0BW`XZ*6X___'```` -XM``#'1"0(`````,=$)`0`````BY5`VO__B10DZ$&Z__^%P(F%*-K__P^(L@4` -XM`(V=C/[__S'_B5PD!(M%"(D$).A8)P$`QT0D&`````#'1"04`````,=$)!`` -XM````QT0D#`````#'1"0(`````,=$)`0`````B1PDZ!`R`@"`/DX/A`<%``") -XM-"3HT[O__XET)`B)7"0$B40D#(M5"(D4).B(-0$`A<`/A*`#``"`O0;:__\` -XM#X2&`0``N`$```"!Q!PF``!;7E]=PXUV`("]!]K__P`/A#,#``"%VP^%*P,` -XM`(N5$-K___9"6`$/A?0&``"+E1#:__^+19`[0D0/A`D#``#V11@0N"R1"`AU -XM!;ATD0@(B40D#(N%0-K__\=$)`0#````B40D"(M5"(D4).AX:```N`$```#I -XM@/___XM5"/:"^`(```$/A#X#``"+@O`"``"-!$#!X`(#0A"+6#B%VP^5P(3` -XM#X1:_?__]D48$+ATD`@(=06XJ)`("(E$)`C'1"0$`P```(M5"(D4).@(8P`` -XM@<0<)@``N`$```!;7E]=PXM5&(F=0-K__\>%&-K__P````#&A0?:__\`@^($ -XMB94`VO__#Y2%!MK__^D%_?__B<*+@*`$``"-!$#!X`(#0A"+4#B%T@^4P.D1 -XM_?__BX4DVO__B00DZ#&W__^%P`^%D@D``(N%.-K__X7`="Z+10B%P'09BU4( -XMBT(0A#91@#@WT8`0^$E@4``(U%Z(E$)`B+A4#:__^)1"0$ -XMBU4(B10DZ.A4``"+G0S:__^%VXF%(-K__P^%+00``,=$)`@`````QT0D!$R2 -XM"`B+10B-O4SZ__^)!"3H,U<``(M5[(E4)!2+5?")5"00BY4@VO__B40D",=$ -XM)`1`!```B3PDB50D#.BKM?__B?F)PXM%"(MP.#GS#X-5!@``B4PD#,=$)`B? -XMK0@(QT0D!`0```"+10B)!"3HUF```(M5Z#'`A=(/A.O\__^+10B%P'09BU4( -XMBT(0AWZ__^-E7#___^) -XM5"0$BX5`VO__B00DZ%"R__^%P`^%F`0``(N5$-K__X!*6`&+A7#___^)0CR+ -XMA73___^)0D"+19")0D3I&/W__^B\LO__@S@"#X12_/__B[5`VO__QX4PVO__ -XM`````,>%.-K__P````#'A23:________@[THVO___W0.BY4HVO__B10DZ`BS -XM__^#O23:____=!R+A3#:__^)!"3HL;#__XN5)-K__XD4).CCLO__A?9T'\=$ -XM)`R?K0@(B70D",=$)`0%````BT4(B00DZ#QC``"+O3C:__^%_P^$+OK__XMU -XM"(7V=!F+50B+0A"%P'0/BY4XVO__.5!T#X0&!0``BX4XVO__B00DZ`2U___I -XM^_G__X7_#X13`0``BT4(A<`/A*(#``"+10B+6!"%VP^$E`,``/:#50@```$/ -XMA8<#``"+A0#___^+`(M`"(U$`#([0W@/A[\%``"+4W2)E3C:__^+0WB)1>2! -XMBU0(`````0``BX4`____BXTXVO__BQ"#P0&+`@^V$(32#X3Y!```BYTXVO__ -XMC4@!QX4TVO__`````.L@@/HO#X17`0``#[9!_X@##[81@\,!@\$!A-(/A,@! -XM``"`^B5UVX`Y)73?Q@,E@\,!Z]>#O0S:__\!=$+HS:[__XU=T,=%V`$```#' -XM1=P`````B5PD!(M5"(D4).CI*@``A<`/A0[Y__^-1=C'1=0`````B44,B5T0 -XMZ>OZ__^+C0C:__^X>)(("(7)=06XI)((",=$)`@`````B40D!.ES^___BX5P -XM____.T(\#X4/^?__BX5T____.T)`#X4`^?__Z>GX__^-="8`BX4`____BP"+ -XM`,>%.-K__P````")A3#:__^-A1#___^)1"0$BY4PVO__B10DZ,*O__^Z`0H` -XM`(7`#X7/`@``#[>%&/___R4`\```/0"````/A'0#``#'1"0,190("(ET)`@Q -XM]L=$)`0#````BT4(B00DZ"EA``#'A23:________Z7_]__^!H%0(``#__O__ -XM,<#I&_C__XF=--K__^F>_O__BY40VO__@&)8^XN5%-K__P^W0AB$P`^)3OK_ -XM_X"]!]K__P`/A#X#``"#R$!FB4(8Z37Z___HN*___X,X#9!U#HN=`-K__X7; -XM#X5]`P``QT0D#)^M"`B+A4#:___'1"0$!0```(E$)`B+50B)%"3HBV```+@! -XM````Z9/W___&`R7&0P%DQD,"`(N%--K__X7`#X3U`@``BY4TVO__Q@(`BX4X -XMVO__B00DZ,6N__^+E33:___&`B^#P@&)E3S:__^)QX7_#X0\`@``QX4LVO__ -XM`````(D\).@'LO__A<`/A$0!``"-5>"#P`B)5"0(BY4\VO__B00DB50D!.B# -XMKO__@^@!=<^+1>`YA2S:__]]Q(F%+-K__^N\QT0D#)^M"`B+E4#:___'1"0$ -XM!0```(E4)`B+10B)!"3HPE\``(D<).@^K___N`$```#IPO;__XN5(-K__XD4 -XM).A6LO__C4[]C10'B?@YUW(0ZQJ-="8`@\`!.<)V#X/K`8`X+XUV`'7N.%.-K__P````"-1``R -XMA<`/A([\__^)1"0,C47DB40D",=$)`0`````BU4(B10DZ(O.``"%P`^$)@(` -XM`(F%.-K__XN%`/___XN-.-K__XL0@\$!Z4S\__^)/"3HL['__XN%+-K__\=$ -XM)`A:W@@(@\`!B40D#(N%.-K__P-%Y(D<)"G8B40D!.@WKO__BX4XVO__B84P -XMVO__Z0S]___'1"0(@`$``(E4)`2+E3#:__^)%"3H+*___X7`B84DVO__#XC/ -XM^O__C95,VO__QT0D"``@``")5"0$BX4HVO__B00DZ#ZQ__^#^`")QP^.EP$` -XM`#';ZP8IQW3-`<.-A4S:__\!V(E\)`B)1"0$BX4DVO__B00DZ*NH__^%P'G8 -XMB[4PVO__Z6WZ__^!H%0(``#__O__Z?GT__^+A0#___^+`(LPQX4PVO__```` -XM`,>%)-K________I._K__XN='/___^C?K___.<-T%)-K________I_/G__XN5%-K__X/@OV:) -XM0ACI\?;__XN%.-K__\8`)8G#Q@%DQD$!`,<$)$'Q"`CHVZO__XG'BX4XVO__ -XMB84\VO__Z1?]__\/MX48____N@$$``"H-@^$KO[__\=$)`S4D0@(Z?'[__^- -XMA1#___^)1"0$BY5`VO__B10DZ&^K__^%P'41#[>U&/___XGPA,`/B8$```#H -XM]:O__\<`#0```.E&_/__B40D#(U#>(E$)`B+0W2)1"0$BT4(B00DZ&G,``"% -XMP'0(B4-TZ1CZ__\Q]L>%,-K__P````#'A3C:__\`````QX4DVO_______^D- -XM^?__?!:+E2C:__^)%"3H'*S__X7`#X35]/__B[5`VO__Z>KX__^+G1S____H -XMCJ[__SG##X5L____9H'.@``/M\:)1"0$BY5`VO__B10DZ!RN__^%P`^%2O__ -XM_\=$)`BV`0``BX4___\G#C;0F`````(N"\`(``(7`#Y7`ZX&-=@!5,G"[O__B?:+@QP! -XM``"-!$#!X`(#0Q"+0#B%P`^5P(3`=____Y"-M"8`````58GE5U93@>R\"``` -XMBU4,#[="&*@@="&#X-]FB4(8B50D!(M-"(D,).BCK@``@<2\"```6UY?7<.+ -XM50R#X`%FB4(8QT0D!%P```#'!"0!````Z!ZF__^%P(F%5/?__P^$UP8``(N% -XM5/?__X!(6`+'0!0`````QT`0`````,=`2/_____'0%3_____BU4,BU((A=*) -XME5SW__\/A!@"``"+C5SW__\/M@$\+P^$)P,``#PN#X0#`P``C95L____B50D -XM!(N-7/?__XD,).@5I/__N@$```"%P`^$Z0```(M%"/:`U`(```$/A-P&``") -XMPHN`S`(``(T$0,'@`@-"$(M0.(UR`>L-A-L/A&,&``")\H/&`0^V7O^`^SIT -XM!(3;=?"-1OXYPG/?QD;_`(N%7/?__XV];/?__XE4)`S'1"0(N90(",=$)`0` -XM!```B40D$(D\).C.I/__C95L____B85@]___B%[_B50D!(D\).ASH___A)UL'_'XG_P?\? -XMB?Z)_L'N%C'_`<81UP^L_@K!_PJ#_@IW#(7V9KL`!`^%E@4``(N%5/?__X!( -XM6`&+A6S___^+E53W__^)0CR+A7#___^)0D"+18R)0D0/MX5T____)0#P```] -XM`(````^$)`(``,=$)`RXDP@(BXU8]___QT0D!`,```")3"0(BT4(B00DZ-]3 -XM``#I^@$``(MU%(/F"(UT)@#'1"0(`````,=$)`0*````BU4(B10DZ*57``"% -XMP`^$%P$``(M5#(M""(7`=!*)!"3HGZ7__XM-#,=!"`````"+50PQVXM"#(7` -XM="")!"3HP:#__XM-#(M!#(D$).ASI?__BT4,QT`,`````(N55/?___9"6$`/ -XMA24$``"+C53W__^+04R%P'05B00DZ$2E__^+A53W___'0$P`````BY54]___ -XMBT($A7UW##[9! -XM`3PO=!0\+@^%[?S__X!Y`B^)]@^%X?S__XV%;/___XE$)`2+A5SW__^)!"3H -XM]J#__S'2A<`/E,+IR_W__XM-"/:!>`$```$/A+`#``"+@7`!``"-!$#!X`(# -XM01"+0#B-G6S[__^)1"0,QT0D"+^4"`C'1"0$``0``(D<).CFH?__B1PDZ.ZB -XM__^#^/\/A-4#``")!"3HO:'__XM%#(M0"(72#X0L!```B1PDZ)>=__^+50R% -XMP(E"#`^$[@,``(M""(7`#X2^`P``BU4,A?:+4@R)E5CW__\/A#P#``"+A53W -XM__^[``0``(/`1(D$).A4G/__BU4(QT7,`````,=%X`````#'1=``````QT78 -XM`````,=%W`````#'1>0`````QD7@"HE=U(M"$(N`5`@``(/@0(/X`1G`]]"# -XMX`2)12+A53W__\QTH!(6`2-1Z``"%P'4,BY54]___BT),B47DBY58]___Z0_] -XM___'1"0(E),(",=$)`0%````BTT(B0PDZ$%)``#IG_K__XD<).BXF?__BTT, -XMA<")00@/A2S\__^+00R%P'0(B00DZ"N@___'1"0(`````,=$)`0%````BT4( -XMB00DZ/Q(``")'"3H2)O__^E2^O__9H%(&(``Z__^%P'5WBU4,9H%*&``!Z1/[__^[`0```(U][(UUZ.L1C;0F```` -XM`(M%[(7`=2:#PP&)?"00B70D#,=$)`@`````B5PD!(M%"(D$).CG$0``AR%P'0(BT7H@#@C=,N+30B)64R[`0```.GK^O__#[9``3PJ -XM=&P\+P^%8?___XM5"(&*K`0````!``"#1>@"@VWL`NL*@T7H`8/H`8E%[(M% -XM[(/X`780BU7H@#HO=>:`>@$O=>#KIX/#`8E\)!")="0,QT0D"`````")7"0$ -XMBT4(B00DZ,L0``"%P'3"Z?W^__^+50B!BJP$`````0``ZPV-=@"#1>@!@^@! -XMB47LBT7L@_@!=A.+5>B`.BIUYH!Z`2]UX.E%____@\,!B7PD$(ET)`S'1"0( -XM`````(E<)`2+10B)!"3H:1```(7`=+_IF_[__U6)Y5:)UE.#[""+6!"-5?") -XM5"0,C57WB50D"(E,)`2)!"3_DX0(``"%P'54BT7PA53BUT(#[9-#/:#X`(```$/A!P!``"+@]@"``"-!$#!X`(# -XM0Q"+0#B%P'0]#[80A-)U$.LT#[90`832C78`="F#P`$XT77NB(N(````N`$` -XM``")@Y````#&A!B(`````(V#B````%M=P_:#C`(```$/A<<```"+@X0"``"% -XMP`^$TP````^V$(32=13IQP````^V4`&$T@^$NP```(/``3C1=>T/MM$[%?P@ -XM"0A]$*$((0D(]D20-0(/A0H!``#V@Z0"```!#X3M````BX.<`@``C01`P>`" -XM`T,0BT`XA<`/E<"$P`^$D0```,'J!@^V@CR6"`C&@X@```!`"`T,0BT`XA<`/A2W___\/MM$[%?P@ -XM"0@/C4#___^A""$)"/9$D#8$#X0P____Z -XM=`.-04"(@XD```"X`@```.E8_O__C70F`%6)Y5.#[`B+70B+10R)'"2)1"0$ -XMZ.?]__^+@Y````"#Q`A;7<.-="8`C;PG`````%6)Y5=6,?93@^P,BT4(BW@0 -XMB7WPBU4(B70D!(D4).BM_?__BU4(B<.+@I````"(AUT!```/ML"-2/^#^?]T -XM)(M%\(T4=HV44%@!``"-="8`#[8#@^D!@\,!B`*#P@&#^?]U[8/&`8/'!H'^ -XM_P```'6C@\0,6UY?7<.-M"8`````58GEBT4(5XM]#%8Q]E.+2!#K#\>!'`$` -XM``````"^`0```(N9&`$``(7;="QKD1P!```53@^P4BUT,BU4(@WL(#'8%Z'R2__^+0PC_)(7H -XME0@(QT0D",N5"`C'1"0$`P```(D4).BF0```C;8`````BT,,A6# -XM["B+10S'1"00@`L%",=$)`P(````QT0D!"`0"0B(1?RAZ!`)"(E$)`B-1?B) -XM!"3H+)3__S'2A`` -XM``"+BQ0!```Y310/A]<```"-="8`BTT4`8L8`0``BY,0`0``A7UW#BY,8`0``A=(/A$?___\K112)@QP!``#I.?___XN[&`$` -XM`(N+%`$``(M5%(U$`AZ-%#@YRG-'A?]U:K@>````QX,<`0``'@```.D'____ -XMBU4(BT(0,=*`N%('``#_#X5X____BTT(QT0D!/\```")#"3H/_[__XG"Z5[_ -XM__^#^D!S!;I`````BT4(Z+;]__^Z`0```(7`#X5:____B[L8`0``ZY)KQQR+ -XMDQ`!``")1"0(:X,<`0``'(T$`HE$)`1K110@0"0C'1"0,@`L% -XM",=$)`@(````QP0D(!`)"(E$)`3HA(S__\:&4@<```"+'>@0"0B%VW0^,575E.#[&R+10B+>!"+10R%P`^$WP4``(M-%(M%%(/A0(/@08E- -XML(E%K(N'&`$``(7`="J+1;"%P`^%L04``(M%K,=%R`````#'1<0`````A<`/ -XMA#0!``"-M@````#VAU0(```@#X6F`P``QT7(`````(M-$(E,)`R+112#X#&) -XM1"0(BT4,B40D!(M5"(D4)/^7>`@``(7`#X7P`@``BTT,BT$(C5#]@_H'=R3_ -XM))40@)#X3?`@``BTT,BP&)`HM!!(E"!(M!"(E" -XM"(M!#(E"#(M!$(E"$(M!%(E"%(M!&(E"&,=%Q`````"+3:R%R0^%9`0``(M% -XM%(M5%(/@!H/B`HE%N(E5M&NW'`$``!P#MQ`!``"#?@@!#X6 -XM_?__BT4(]H`<`P```0^%S0(``(M%"(N`%`,``(7`#Y7`A,`/A!`#``"#1<@! -XM@WW(`70?BT7(NF=F9F;WZHM%R,'Z`L'X'RG"C122`=(Y57UW#QT7$`0```.G:_?__@_@( -XM#Y7`#[;PBT4(@\8&BT`0B47,BU@(B<>#QP@Y^W08C;8`````B1PDB70D!.AD -XMI```BQLY^W7NBU7,BUH0B=>#QQ`Y^W2?B1PDB70D!.A#I```BQLY^W7NZXN+ -XM0Q@!AQP!``#IL/[__XM5"(D4).AB?P$`A<`/A$?\___I9?___Y"-="8`BUW0 -XMBT$0A=MT?XG&BT70C5H<`?")1;SK)XVT)@````"+30@/ML"+41`/MI0"4P<` -XM`(E3],9#^`"#PQP[=;QT2<=#[`$````/M@:#Q@$\_XA#\'7,BU4(BT(0,=*` -XMN%('``#_=''`$```````#IZOW__XG!BX`4`P``C01`P>`"`T$0BT`XA<`/E<#I(_W_ -XM__9%%`ATBXM-##'`QD$,8<=!$`````#'00@!````QD$4`(/$;%M>7UW#,<#I -XMG/W__XU5U(E5#.D6^O__QT0D$`8```"+0R")5"0(QT0D!`````")1"0,BU4( -XMB10DZ,;V__^%P`^%7OW__P^V5@R#^G]WCI"-="8`Z0O___^#AQP!```!,<#I -XM0OW__XL&BTT,B0&+1@2)002+1@B)00B+1@R)00R+1A")01"+1A2)012+1AB) -XM01CI`O___XM5"/:"&`0```%T58N"$`0``(T$0,'@`@-"$(M`.(7`#Y7`A,#' -XM11``````#X2_^?__@WX0"71+BT4(]H`(`@```70MB<*+@``"``"-!$#!X`(# -XM0A!K0#ADB440Z9#Y__^+30B+@1`$``"%P`^5P.NRBTT(:XD``@``9(E-$.EN -XM^?__BT4(]H"0`0```70HB<*+@(@!``#KLXM-"(M!$(.(5`@```2+10S'0`@$ -XM````,<#I6_S__XM-"&N)B`$``&2)31#I*/G__Y"0D)!5B>6#[!B+10S'1"0( -XM6)8(",=$)`0#````B40D#(M%"(D$).A8-```R<.-M@````!5B>6#[#B+50R) -XM??R+?1B)7?2)=?B%T@^$PP```(M%"(M8'(7;#X0X`0``]D40`G5"BT4(]H"O -XM!```"'0CBTAXBT!\BW$4B47@BT`4.?*)1=P/@]L````[5=P/AR`!``"+0Q`[ -XM10P/A+H```#'0Q``````C44,B47DC47LQT7H!````(M3!(E$)`B-1>3'1"0, -XM`````(E$)`2)%"3_4@R#^/]T;H/H`70WBT4,A?^)0Q"+1?")0PR+1>R)0PAT -XM!8M%\(D'BT44A<`/A+\```"+0PB+512)`C'`ZRJ0C70F`/9%$`%U+(7_=`;' -XM!P````"+512X`0```(72=`F+513'`@````"+7?2+=?B+??R)[%W#BT4,B40D -XM!(M%"(D$).BL_O__Z\"%_W2:BT,,B0>0ZY(YPG=*.?)T#8VV`````(L).U$4 -XM=?F%_W0%BT$0B0>+712%VW0WBT$(BU44B0(QP.NBQT0D"`0```#'1"0$```` -XM`(D$).CU_0$`Z6;___\I==PK5=R)50SITO[__S'`Z7#___^-="8`C;PG```` -XM`%6)Y5.#[!2+30B+70R+41R%TG1A,<"%VW0CBU(4A=)T(O:!KP0```AT#(M! -XM?`-0%(M!>"M0%#'`.=H/D\"#Q!1;7<.)7"0$QT0D$`````#'1"0,`````,=$ -XM)`@`````B0PDZ/G]__^%P`^4P(/$%%L/ML!=P\=$)`@$````QT0D!`````") -XM#"3H0_T!`+@!````ZZF-M@````"-OP````!5B>6#[$B)=?B+=0B)??R+?0R) -XM7?2+7AR%VP^$NP```(M3%(72="J)%S'`]H:O!```"'00BT9\`U`4BT9X*U`4 -XM,<")%XM=](MU^(M]_(GL7<.-1?")1>"-1>C'1>0$````BU,$B40D"(U%X,=$ -XM)`P&````B40D!(D4)/]2%(/X_W0Q@^@!=':+1>"+`(E%\(E#$(E#%(M%[(E# -XM#(M%Z(E#"/:&KP0```AU8(M%\(D',<#KD<=$)`C%E@@(QT0D!`4```")-"3H -XM13$``+@!````QP<`````Z6G____'1"0(!````,=$)`0`````B30DZ#W\`0"X -XM`0```.E'____,<#'!P````#I.O___XM&?(M`%#M%\'>8ZY.)]HV\)P````!5 -XMB>6#[#B)=?B+=1B)7?2+70R)??R+?0B%]G0&QP8`````BT44QT0D"`````") -XM7"0$B3PDB40D$(M%$(E$)`SH7/S__S'2ASVAJP$```!=4N+?AR#/P%T2XM&$(M8"(/`"#G#=0[K -XM/(M&$(L;@\`(.=AT,#G>=/`Y>QQUZXM%[(E$)`B+1?")'"2)1"0$Z.))`P"% -XMP'31N`$```"#Q!Q;7E]=PXM5"#'`A=)T[XM%[(E$)`B+1?")-"2)1"0$Z+)) -XM`P"#Q!Q;7E]=PXUV`(V\)P````!5B>564X/L((MU"(M>'(7;#X2\````QT0D -XM"`<```"+10R)-"2)1"0$Z),/``"-10R)1>B+11#'1>P$````B47PBT44B47T -XMBU,$C47PB40D"(U%Z,=$)`P`````B40D!(D4)/]2$(/``0^$B````(M#$#M% -XM#'1*]D-8`G4X@$M8!,=$)`@&````BT4,B30DB40D!.@I#P``BU4,B?"Y`P`` -XM`,<$)`$```#HL_[__X/$(%M>7<.)-"3H-)X``.N^B?;V0U@"QT,0`````'2O -XMC78`Z^*)-"3'1"0(!````,=$)`0`````Z-;Y`0"#Q""X`0```%M>7<.+10R) -XM-"3'1"0(X98(",=$)`0%````B40D#.B++@``@\0@N`$```!;7EW#ZPV0D)"0 -XMD)"0D)"0D)"058GE5U93@^PLBW4(BUX2+11#'1>@$ -XM````B47LBT44B47PBU,$C47LB40D"(U%Y,=$)`P%````B40D!(D4)/]2$(/` -XM`0^$Z````(M#$#M%#'<'QT,0`````(M#%(7`=`:#P`&)0Q3V0U@"#X6'```` -XM@$M8!+\!````QT0D"`4```"+10R)-"2)1"0$Z/(-``"+10S'1"0$`@```(DT -XM)(E$)`CH6QT``(G#BT4,QT0D!`(```")-"2)1"0(Z&(X`0"%P'4(A=L/E<`/ -XMMOB+50RY`@```(GPQP0D`0```.A`_?__N@$```"%P'4"B?J#Q"R)T%M>7UW# -XMB30DZ+.<``#I;/___XDT),=$)`@$````QT0D!`````#H9O@!`(/$++H!```` -XM6XG07E]=PXVT)@````"+10R)-"3'1"0(@)8(",=$)`0%````B40D#.@1+0`` -XM@\0LN@$```!;B=!>7UW#B?95B>575E.#["R+=0B+7AR%VP^$"0$``(U%$(E% -XMY(M%%,=%Z`0```")1>R+11B)1?"+4P2-1>R)1"0(C47DQT0D#`0```")1"0$ -XMB10D_U(0@\`!#X3O````BT,0.T40=@?'0Q``````BT,4A7UW#C70F`(V\)P````!5B>56 -XM4X/L((MU"(M>'(7;#X3*````BT4,QT0D!`$```")-"2)1"0(Z/,:``"%P'0/ -XMN`$```"#Q"!;7EW#C78`BT4,QT0D!`$```")-"2)1"0(Z.DU`0"%P'76QT0D -XM"`0```"+10R)-"2)1"0$Z"X+``"-10R)1?"-1?#'1?0$````BU,$QT0D"``` -XM``")1"0$B10D_U((@^@!='*+0Q`[10QR!\=#$`````"+0Q2%P'0&@^@!B4,4 -XM]D-8`G5&@$M8!(GPBU4,N0$```#'!"0!````Z&CZ__^#Q"!;7EW#D(DT),=$ -XM)`@$````QT0D!`````#HJ/4!`(/$(+@!````6UY=PXDT).C$F0``Z["+10S' -XM1"0(_I8(",=$)`0%````B30DB40D#.A3*@``N`$```#I__[__Y"0D)"0D)"0 -XMD%6)Y5.#[`2+70R+0QB%P'0-B00D_U`$QT,8`````(M#'(7`=`^)!"3H)X'_ -XM_\=#'`````#'0R``````,<#'0RP!````QT,P`````,=#*`$```#'0R0!```` -XM@\0$6UW#D%6)Y5.#[!2+70S'0QP`````QT,@`````,=#+`$```#'0S`````` -XMQT,H`0```,=#)`$```#'1"00`````,=$)`P"````QT0D"(`!``#'1"0$!@(` -XM`,<$)`````#H-('__S'2A<")0QAT"(/$%(G06UW#QT0D"!R7"`C'1"0$!0`` -XM`(M%"(D$).A4*0``N@$```"`2U@0@\046XG07<.-=@!5B>56B<93B7<.058GE5U93@^Q,BWT(BW<<#[966/;"$`^%Z`$``(M&*#M&)`^$ -XM`0(``(/*$(U&*(A66(E%Z,=%[`0```#'1<``````BT88C57@@T8H`8E4)`B- -XM5>C'1"0,`````(E4)`2)!"3_4`R%P`^%X0$``(M=X(`["'8+Z`IZ__^-M@`` -XM```/M@/_)(5\F`@(C57$C4,!B10DQT0D"!0```")1"0$Z!!^__^+1C'1>P$````B?:+1AB-5>"# -XM;B@!B50D"(U5Z,=$)`P`````B50D!(D$)/]0#(7`#X5W`0``BUW@@#L(=@7H -XMC'?__P^V`_\DA:"8"`B-0P&)1"0$C478QT0D"`@```")!"3HF'O__XM5"(M% -XMV#M"3'29@T8H`8!F6.\QP(/$3%M>7UW#C7L!C47$QT0D"!0```")?"0$B00D -XMZ&%[__^+1___BT4(BU!,.U7P='R+50B+1?`Y0E@/A'3___^#0F`!B4)8Z6C___^- -XM0P&)1"0$C478QT0D"`@```")!"3HQGK__XM5"(M%V#M"3`^%+O___X-^*`$/ -XMA;G^___I'____XUT)@")!"3'1"0(%)@(",=$)`0#````Z*@D``"#Q$RX`0`` -XM`%M>7UW#BT7DB50D!(/H!8E$)`R-0P6)1"0(BU4(B10DZ-OT__^%P`^$7/__ -XM_^DG____BT4(N>\!``"ZP)<(".@<^___N`$```#IL_[__XGV58GE5U93@^Q, -XMBWT(BW<<#[9&6*@0#X7=`0``@WXH`0^$^`$``(/($(A&6(U&*(E%Z,=%[`0` -XM``#'1<``````D(M&&(U5X(-N*`&)5"0(C57HQT0D#`````")5"0$B00D_U`, -XMA<`/A="`.PAV!>B,=?__#[8#_R2%Q)@("(U5Q(U#`8D4),=$)`@4 -XM````B40D!.B8>?__BT7,B478BT70B472#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3HF_/__X7` -XM#X4]`0``BT7P.4=8=*J#1V`!B4=8QT7``0```.D(____C4,!B40D!(U%\,=$ -XM)`@$````B00DZ.)X__^+1>2#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3H;O3_ -XM_X7`#X7@````@T=<`<=%P`$```#IMO[__XU#`8E$)`2-1?#'1"0(!````(D$ -XM).B0>/__BT7PB3PDB40D!.@=]___A<`/A9\```"#1V0!QT7``0```.EU_O__ -XMBU7`A=(/A&K^__^-0P''1"0("````(E$)`2+10R)!"3H1'C__S'`@&98[^L= -XMQT0D"$B8"`C'1"0$`P```(D\).A`(@``N`$```"#Q$Q;7E]=PXD\),=$)`AL -XMEP@(QT0D!`(```#H&R(``(/$3+@!````6UY?7<.)^+F(`0``NL"7"`CHO?C_ -XM_[@!````Z[N`9ECON`$```#KL(UT)@"-O"<`````58GE5XG75HG&4X/L+(M8 -XM'(-[(`AW*HU#(,=$)`P)````B40D"(M#'(DT)(E$)`3H3)8``+H!````ABT,H,=*#P`&)0RB)0R2#Q"R)T%M>7UW#C;8`````B?"Z -XMP)<("+G#````Z,_W__^#Q"RZ`0```%N)T%Y?7<-5,<")Y593@^P@BW4(BUX< -XM]D-8$`^%J0```(M++(7)#X6K````@WL@%'B+1?2#P`6)1>R+4QB-1>B)1"0(C47@QT0D#`````")1"0$ -XMB10D_U(0@\`!#X2-````BT,H@\`!B4,HB4,D,<"#Q$!;7EW#N@$```")\.C$ -XM_/__A7<.0C47TB40D -XM$(U%\(E$)`S'1"0(`@```(M%#(DT)(E$)`3H"^K__X7`#X38_O__BT4,@_@! -XM="Z)1"0$B30DZ+_I__^X`0```.N!B?"Y$0$``+K`EP@(Z.?T__^X`0```.EF -XM____QT7T`````,=%\$^-"`CIC_[__XUV`(V\)P````!5B>6+30B+41SV0E@0 -XM=1.+0BR%P'00BT%,B4(LBT%0B4(P73'`PXM!3(E"+(M!4(E",+H"````B'[__^058GE5E.#[""+=0B+1AB%P'0CQT0D"`$```#'1"0$`````(D$).AF -XMR/__BT88B00DZ'M>``"+1@B-7@@YV'00D(D$).AH7@``BT8(.=AU\8M&$(U> -XM$#G8=!:-M"8`````B00DZ$A>``"+1A`YV'7Q]H94"````G10ZUR-M@````"# -XM>P@#N>B8"`B+4PR+0Q!T!;E/C0@(B40D#*$0(0D(B50D$(E,)`C'1"0$\)@( -XM"(D$).AM;/__BQ.%TG0&BT,$B4($BT,$B1"+7FR%VW6Q@\0@6UY=PZ$0(0D( -XMQP0D!P```(E$)`3HF6S__^O;C78`58GE5HG64XG+@^P0BQ40(0D(B00DB50D -XM!.BF;?__A=MT&:$0(0D(B5PD",=$)`2=K0@(B00DZ/EK__^%]G0HZ)!P__^+ -XM`(D$).CF;?__QT0D!)VM"`B)1"0(H1`A"0B)!"3HS6O__Z$0(0D(QP0D"@`` -XM`(E$)`3H&&S__X/$$%M>7<.-M@````"-O"<`````58GE5U93@>R<`0``BT4( -XMBYAH"```A=L/A'L#``"+50B+BI0(``"%R0^$A0,``(M="+_XF`@(BTT(_(G8 -XM@\$(@\`0B8U\_O__BS.)0Q")0Q2#P'")0WR#Z`2)@X0```"#Z$R)0S")0S0% -XM_````(E+"(E+#+D#````QX.``````````,9#<`&)@RP!``")@S`!``#'@T`! -XM````````QX-$`0```````(FU@/[___.F#X6;`@``QX6(_O__`0```,>%E/[_ -XM_P````"+71"0C70F`(/#!(L3A=*)E7C^__]T9OR_`9D("+D#````B=;SIG15 -XMBY5X_O__#[8"/"L/A,\````\+77+B[5X_O__#[9&`83`#X0I`0``/&-T##Q4 -XM=`@\='0$/'=UJ8N%>/[__X!X`@!UG8/#!(/#!(L3A=*)E7C^__]UFHM%"#'_ -XM,=LQ]H.(5`@``$#'A8S^__\`````QX68_O__`````,>%G/[__P````#'A9#^ -XM__\`````C78`QT0D"`29"`B+31")3"0$BT4,B00DZ(IM__^#^/\/A!\"``"# -XMZ$:#^#$/AK4```"+50B[`0```/^2J`@``('$G`$``(G86UY?7<.-M@````") -XMUX/'`8!Z`0!U)<<$)`0```#HS7#__X7`B0,/A'H"``#'`"UC)`#IU/[__XUT -XM)@"+C7C^__^)#"3H]G'__X/``HD$).B;%D/[__P$```#I7O[__\>%E/[__P$```#I3_[__\>%F/[__P$` -XM``#I0/[__XM-"(.A5`@``+_I,?[__XNU@/[__[_WF`@(N00```#SI@^$3?W_ -XM_XNU@/[__[_[F`@(N08```#SI@^%J`0``,>%B/[__P(```#'A93^__\!```` -XMZ3#]___'@&@(```0,@@(BU4(BXJ4"```A7UW#BT7P@XBL!``` -XM`8M="(M%\(M3"(D0BY5\_O__BT7PB5`$.U,,#X1G`P``BTT(BT7PBU$(B4($ -XMBU7PBUT(B5,(B10DZ`?:__^%P'68BX6,_O__A<`/A#`#``#'1<`9````C47( -XMQT7$-P```(N=E/[__X7;=`G'`"H```"#P`2+C9C^__^%R70)QP`2````@\`$ -XMBY60_O__A=)T"<<`,P```(/`!,<`_____XU%P(E$)`2+1?")!"3H8S8``(7` -XM#X4@____A?8/A(H```"-G:3^__^)="0,QT0D"!29"`C'1"0$``$``(D<).@% -XM:___B=F)7=2+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(```'4&P>H0@\$" -XM`-*-1=2#V0.)1>0IV8U%Y(U5P(E-W,=%P`````#'1<@`````B57HQT0D"``` -XM``")1"0$BT7PB00DZ,DK``"+A:#^__^%P`^%M`(``(M5\/:"(`(```$/A(D" -XM``"+@A@"``"-!$#!X`(#0A"+0#B)0C2+5?#V@F`!```!#X19`@``BX)8`0`` -XMC01`P>`"`T(0BT`XB4(XBX6@_O__A<`/A/;]__^+5?"+C83^__^#_W*+=1"- -XM'(X/A`(#``#V@FP$```!#X0G`@``BX)D!```C01`P>`"`T(0BT`X@\`!T>B) -XM@H0```"+10B+@`P!``"%P`^$^P(``(N%G/[__X7`=!V+E9S^__^)5"0$BT7P -XMB00DZ)'.`0"%P`^%KOW__XLSA?9T;(M5\(M"((7`=#V+0`B#ZP2)!"3HOVS_ -XM_X/``8D$).AD:___A<")PHD##X3.`P``BT7PBT`@BT`(B10DB40D!.CC;/__ -XMBU7PB5HHB5HDBT7P@8BL!````"```(/_3\__^-1>R)%"2-7:2)1"0(QT0D!`,```#H^@@``(M5[,<$)`$```") -XM5"0(B40D!.B78?__ZQ2#^`QT2XM%\(D$)(M5"/^29`@``,=$)`P`````QT0D -XM"`````")7"0$BT7PB00DZ.[5__^%P`^%2_K__XM%K(/X!'0-@^@!=;V+1;2# -XM^`AUL(M5\.D-_?__BT(DA564XM`'(G3BU`XA=)T'P^V2A`Q]HG0 -XM.L9D`^V2!`YV7,.B<*+`H7`=?!;B=!>7<.)UCG9=`*)\%N)PEZ)T%W# -XMC78`C;PG`````%6)Y593@^P@BT4,BW40@_@!=%US"^CZ8?__C;8`````@_@" -XM=`LQTH/$((G06UY=PXM5",=$)`0"````B10DZ&W=__^%P'10BU4(BT(WKO(VT)@````"+50B+0AR+6#B%VW2H -XMC78`BT,(.?!R"'0\@^@!B4,(BQN%VW7KZXZ-1?2)1"0$BT4(B00DZ*?=__^Z -XM`0```(7`#X5Q____@WWT`76+C70F`.E@____@$L1`8M%"(E<)`2)!"3HB.[_ -XM_^NUC;8`````58GE5U93@^P,BW4,BWT(@_Y@#X2(````B?*)^.BO_O__A<") -XMPW0/#[9($`^VP3GP#X1Z````QP0D%````.BR9?__A<")P@^$S0```(7;#X2? -XM````BP.%P(D"=`6+`XE0!(D3B5H$BTT0B=.+`8E""(M!!(E"#(GPB$(0BTT4 -XM,<"%R74/B$,1,=*#Q`R)T%M>7UW#B=.X`@```.OHC70F`&:^)P#I;____XVT -XM)@````"+112%P'4I#[9#$3'2@^`#@_@"=,2+51"+`HE#"(M"!(A+$(E###'` -XMZZJ-M@````"+51"+`HE#"(M"!(A+$(E##.NBBT\6#["B)7?2+70R)=?B)??R#^V!T;8M%"(G:Z&_] -XM__^%P(G&=`X/MD`0#[;X.=^(1?-T4X#[_P^$XP```(M5"`^VPXT$0(V$`%`! -XM```#0A"#P`B)1"0,QT0D"(":"`B+10B+512)!"2)5"0$Z,X-``"X`0```(M= -XM](MU^(M]_(GL7<.S)^N/]D81`70R@'WS_P^$G0```(M5"(T$?XV$`%`!```# -XM0A"#P`B)1"0,QT0D")B:"`CKIXVT)@````"+1@B#^`%U!XM>#(7;=$"+50B) -XM1"0$B10DZ++:__^%P'4J@'WS_W1ABU4(C01_C80`4`$```-"$(/`"(E$)`S' -XM1"0(O)H(".E4____BT8(BU40B0*+1@R)0@0QP.E6____BT4(B5PD!(D$).@` -XMR?__Z1____^+10B)?"0$B00DZ.S(___I8O___XM%"(E\)`2)!"3HV,C__^NA -XMC;8`````58GE4X/L!(M=#(M3.(72=""+"H7)=`:+0@2)002+0@2)"(D4).C* -XM8___BU,XA=)UX(/$!#'`6UW#D)"0D)"0D%6)Y8M%"(M`:(7`=`F)10B+2`1= -XM_^%=PY"-M"8`````58GE5U93@^PLBW40QP8`````BU4,#[8"A,!T00^^P(7` -XM>$N+'?P@"0@YV'U!BPT((0D(]D2!-@1U&^LRC70F``^^P(7`>"`Y4'0/A`X!``"+1>`Q]HD$).AZ8O__BU4(@47<``$``(72#X5;____BU7< -XMB10DZ+UA__^%P'5*QT7@3XT(".D<____BT7#I -XM-____XM=X(G7.?,/@T?___\\_W0]BU4(#[;`C01`C80`4`$```-"$(/`"#G> -XM#[80#Y?!A-)U0`^V1P&#QP&$P`^$%?___X3)#X0-____//]UPXM%",=$)`3_ -XM____B00DZ(+&__\YW@^7P0^V$(32=,:-M@````"$R72\B!,/ME`!@\,!.=X/ -XME\&#P`&$TG7GZZ6!H%0(``#__O__,?;I[O[__XE$)`R-0WB+50B)1"0(BT-T -XMB10DB40D!.C7?@``A<`/A.K^__^)0W3I5?[__XM5X#'VB10DZ"YA___IK_[_ -XM_\8#`.GP_?__C;8`````C;PG`````%6)Y8/L.(E=^(M=#(EU_(MU$`^^`X/X -XM?W<*]@2%W10)"`1U'(7V=`J)'"3HE&'__XD&B=B+=?R+7?B)[%W#B?8/OD,! -XM@_A_=]OV!(7=%`D(!'31#[Y#`H/X?W?(]@2%W10)"`1TOH![`WQUN(U%](E% -XMY,=%Z`0```")'"3H\UC__XE%](M%"(7`=%6+50B+0A"%P'1+BU!HA=)T1(U% -XM[(E$)`B-1>3'1"0,`````(E$)`2)%"3_4@R%P'4DBU7PA=)T'87V=`6-0O^) -XM!HM%[,9$`O\`BUWLZ5;___^-="8`@\,$Z3S___^0C;0F`````%6)Y8/L"(M% -XM#(M-"(M5$(/X!78,Z*M:__^-M"8`````_R2%')T("(E5$,=%#,2<"`B)30C) -XMZ=;^__^)51#'10SJF@@(B4T(R>G#_O__B540QT4,9)P("(E-",GIL/[__XE5 -XM$,=%#(2<"`B)30C)Z9W^__^)51#'10S]F@@(B4T(R>F*_O__B540QT4,&YL( -XM"(E-",GI=_[__XVT)@````!5B>575E.#["R+10B+<""+1@B)!"3H&F#__XM= -XM"(7;B47H#X3M````BU4(BUH0A=L/A-\```#V@U4(```!#X72````C02%@``` -XM`#M#>`^'9`4``(M+=(E-X(M#>(E%[(&+5`@````!``"+10B+<""+5@B+?>`/ -XMM@*$P`^$Y@```(G6ZU>+50@/ML"-!$`!P`-"$`^VF%T!``")7>@/M@8\_W1= -XMBU4(#[;`C01`C80`4`$```-"$(/`"(D\)(E<)`B)1"0$Z$M>__\/MD8!@\8! -XM`WWHA,`/A(L````\_W6EQT0D!/____^+30B)#"3H;L7__XG#B5WH#[8&//]U -XMI8GVQT0D!/____^+30B)#"3H3`"`T$0BT`XA<`/E<"$P`^%"0(``,8".HUR -XM`L9"`2#V11`!#X0K`0``C47PB40D!(M%"(D$).BMT___A<`/A0D!``"+1?"% -XMP`^%C0(``(U5Z(E4)`C'1"0$CYL("(M-"(D,).B0^___BU7HB30DB50D"(E$ -XM)`3H(5S__XGP`T7HZ0B)%"2)3"0(QT0D!%F;"`CH7/O__XG"Z1O_ -XM__^-5>B)5"0(QT0D!$B;"`B+30B)#"3H._O__XM5Z(D<)(E4)`B)1"0$Z,Q; -XM__^)V`-%Z,8`+(U8`L9``2"+50B+0ASV0%@$#X2S_O__ZY2+=>"+30B)#"3H -XM*34!`(M%"(M0$(M%Z(ET)`C'1"0$!````(E$)`R+30B)#"3_DI0(``"+10B% -XMP'06BU4(BT(0AB)1"0(QT0D!+J;"`B+50B)%"3HBOK__XM-#(DT)(E,)`B)1"0$Z)M<__^) -XM-"3H,US__XT$!HU(`<8`"HG(*T7@]D40`HE%Z`^$3?___XM5"(MR.#GP#X8_ -XM____BU7@C5[].?IR+#G7=#>-C&0@$@C5H"B0PDB40D",=$)`1UFP@(Z'CY__^+5>B)'"2)5"0(B40D!.@) -XM6O__B=H#5>CI2?W__X/@[V:)01B-3>B)3"0(QT0D!#N;"`B+10B)!"3H.OG_ -XM_XM5Z(D<)(E4)`B)1"0$Z,M9__^)V@-5Z.G[_/__C47HB40D",=$)`2>FP@( -XMBU4(B10DZ`/Y__\QTHE$)`2+3?!K70QDB4PD#(G8]_&)1"00BTT,B30DB4PD -XM".C_6O__B30DZ)=:__^-!`;I7_[__X&@5`@``/_^__^#Q"Q;7E]=PXE$)`R- -XM0WB)1"0(BT-TB40D!(M5"(D4).@\=P``A<`/A.C]__^)0W3I;_K__XVV```` -XM`(V_`````%6)Y5=64X/L/(MU"/:&K@0```0/A;"`C'1"0$&0```(E$)`SH-%;__XU5[(E%U`'#B47L,<")5"0(@WR^7`&) -XM-"0/E<"+!(50G0@(B40D!.AD]___BU7LB1PDB50D"(E$)`3H]5?__XM%[(U5 -XM[`'#B47@Q@,@BP2]6)T("(/#`8E4)`B)-"2)1"0$Z"GW__^+5>R)'"2)5"0( -XMB40D!.BZ5___BT7LBU7@`<.-1!`!`T78`T74B478,<#'1+Y<`````(/'`8/_ -XM!P^%'?___\8#"HDT).@0,0$`BT78BU80@\`!B40D#(M%W,=$)`0$````B30D -XMB40D"/^2E`@``(7V=`^+1A"%P'0(BU7<.5!T=&B+1=R)!"3HL5?__X/$/%M> -XM7UW#BX8@`P``C01`P>`"`T80BT@XZ3'^__\PP,=$AEP`````@\`!@_@'=?"# -XMQ#Q;7E]=PX%[>+P"``!V)XM#=(E%W(M#>(E%\(&+5`@````!``#I8?[__X&@ -XM5`@``/_^___KEXU#>,=$)`R]`@``B40D"(M#=(DT)(E$)`3HMG0``(7`#X1Q -XM____B4-TZZZ)]HV\)P````!5B>575E.#[#R+?0B%_P^$9`0``(M%"(-]#`:+ -XM0!")1=AV!>B,4?__BU4,_R25-)T(",=%#`,```"A*"$)"(/``:,H(0D(@^@! -XM=$:#Q#Q;7E]=PXM%"/:`,`0```$/A#@$``"+@"@$``"+5=B-!$"+3((XA+1>R- -XM'`8[7?!W'(!]UP"--`$`0`` -XMBU-TB57@BT-XB47P@8M4"`````$``(-]#`4/A`L!``"#?0P##X7R_O__BWW@ -XM,?;&1=<`BT4(A<`/A.?^__^+1=B%P`^$W/[__XM%V(N0!`$``(72#X3+_O__ -XM#[8"A,`/A$P!``")T^M5C78`BU4(#[;`C01`C80`4`$```-"$(/`"(E$)`S' -XM1"0(GZT("(M%\(D\)"GPB40D!.B!4O__`<8[=?")1>P/A^_^__\!QP^V0P&# -XMPP&$P`^$\P```#S_=:K'1"0$_____XM%"(D$).B7N?__ZZN0C70F`(M%W,=% -XM\`````#'1>``````A<`/A"'___^+1=R-5?")5"0(QT0D!`````")1"0,BT4( -XMB00DZ`9R``"%P`^$A@$``(-]#`6)1>`/A?7^__^-1>R)1"0(QT0D!,R;"`B+ -XM10B)!"3H-_/__XM5[#E5\`^"2_[__XE4)`B)1"0$BU7@B10DZ+Q3__^+=>R+ -XM?>#&1=(E4)`R)1"0(BT-TB40D -XM!(M%"(D$).A[<0``A<`/A/L```")0W3I3_[__XM5V(N""`$``,=$)`C8FP@( -XMB40D#(M%\(D\)"GPB40D!.A)4?__`<8[=?")1>P/A[?]__\!Q^DY_?__Z(]0 -XM__^+`(D$).CE3?__QT0D")VM"`B)1"0,BT7PB30D*=B)1"0$Z`A1__\!PSM= -XM\(E%[`^'=OW__P'&@\,!.UWPQT4,`P````^'8?W__\8&"HM]"(7_=`N+10B) -XM!"3H7"P!`(MUV(7V#X3Y````B5PD#(M5X(E4)`B+10R)1"0$BU4(B10DBT78 -XM_Y"4"```BTT(A`Y4'0/A.````"+1>")!"3H[%+_ -XM_\<%*"$)"`````"#Q#Q;7E]=PXM%"/:`K`0```(/A.C[___V@#`$```!=6Z+ -XM10B+F"@$``"%VP^4P(3`#X3)^___BU78@XI4"````NG3^___@WT,`G0P@WT, -XM!L=%V``````/A:K[___'10P$````Z9[[__^+10B+D"@$``"%T@^4P.G*^___ -XMQT4,`P```,=%V`````#I>/O__XN`*`0``(M5V(T$0(MT@CB%]@^4P.N)BU7@ -XMH1`A"0B)7"0(QT0D!/*8"`B)5"0,B00DZ&Q*___I`____X&@5`@``/_^___I -XM'/___XUT)@!5B>6#[#B)=?B+=1")??R+?0B)7?2%]G1IZ-9.__^+&(U%\(ET -XM)`2)1"0(B3PDZ#WN__^)QNBZ3O__B1B+112)="0,B3PDB40D"(M%#(E$)`3H -XMFOK__XM%\(7`=!B%_W0,BT<0A"-1>C'1>0$````QT7P`0```(E$)`B- -XM1>#'1"0,`````(E$)`2)'"3_4PR%P'4*@WWL$@^$`P$``(D<)/]3!*'L$`D( -XMA<`/A+L```#'!>P0"0@`````N`$```"!Q#P$``!;7E]=PZ'L$`D(A7UW#QP0DWYL(".@H2?__ABX\)L("+D2````_(G'\Z8/A>7^ -XM__^+10C'!>P0"0@`````BU`0BT)HA575C'V4X/L#(M]"(G[ZQ*#QA"#PPR!_O`$```/A+P```"#OFBC -XM"`@#=>7VAFRC"`@!==P/MI,``0``@^(!#X2B````BX/X````C01`P>`"`T<0 -XMBT`XA<`/E<"$P'0LA-(/A*0```"+@_@```"-!$#!X`(#1Q"+0#B)!"3HX4[_ -XM_P^VDP`!``"#X@&$TG1GBX/X````C01`P>`"`T<0BT@\A7UW#BX/X````A<`/E<#I9?___XN#_````(7`#Y7`ZZ.+@_P` -XM``#KN8N#^````.EC____D(VT)@````!5B>6#[!B+10S'1"0,=)T(",=$)`0# -XM````B40D"(M%"(D$).@8_/__R<.-M@````!5B>53@^P4BTT,BUT(C01)C02# -XM]H```0```70TBX#X````C01`P>`"`T,0BU`XA=)T!S'`@#H`=0R+51"X`0`` -XM`(72=!.#Q!1;7<.0C70F`(N0^````.O6P>$$BX%@HP@(B1PDQT0D#+"="`C' -XM1"0$`P```(E$)`CHD_O__X/$%+@!````6UW#D(VT)@````!5B>6#[%B)7?2+ -XM70B-1>R)=?B)??S'1"000%<%"(E=[,=$)`P(````QT0D""8```#'1"0$8*@( -XM"(D$).AD2___AQ=PXU%W(E=W,=$ -XM)!`@5P4(QT0D#!````#'1"0(3P```,=$)`1@HP@(B00DZ!I+__^%P'7!B1PD -XMZ)Y-__^+-6"C"`B%]HE%R'19#[8#QT708*,(",=%Q`````"(1<_K%(VT)@`` -XM``"#1=`0BT70BS"%]G0G#[9%SS@&?.M_'8M%R(G?_#G`B<'SIG7;BTW$A`"`T80BU`XBP.)5"0,QT0D!':?"`B)-"2)1"0(Z/XD -XM`0")PNGZ_O__C;0F`````(N`^````(T$0,'@`@-&$(M`.(7`#Y3`ZY:-M"8` -XM````BX#X````C01`P>`"`T80BT`XZ3+___^+@/@```"-!$#!X`(#1A"+0#B% -XMP`^5P.G/_O__C01)BY2&^````.EV____C;0F`````(V\)P````!5B>575E.! -XM[,P"``"+10B+2#C'A53]__\*````C70F`#'2B#'A43]__\`````QX50_?__`````,>%7/W__P````"#Z@*)E3S]__^) -XMC3C]__^+E5S]__\/MH)LHP@(J`0/A1`!``")U\'_!(-]#`)T%8-]#`,/A&(" -XM``"#?0P!=%'H7$3__Z@!=4B+C5S]__^+@6BC"`B#^`(/A\\#``"+50B-!'^- -XM!(+V@``!```!#X2=!```BX#X````C01`P>`"`T(0BU`XBT`\.<(/A*0```"+ -XM50B-!'^--(*-AO`````/ME@0@^/]B%@0BXU<_?__BX%@HP@(B00DZ/-)__^+ -XME5S]__^)A4S]__^+@FBC"`B#^`(/A'D"```/@]8!``"#XP$/A%H"``"+AO@` -XM``"+30B-!$#!X`(#01"+0#B%P`^4P(3`=`>#A4S]__\"BX4\_?__.85,_?__ -XM#X\(`@``BY50_?__B;R5:/W__X/"`8F54/W__XN57/W__XN"<*,("(/"$(F5 -XM7/W__X7`#X6^_O__BY50_?__A=(/CNX```"+C5#]__\YC53]__\/C#L#``#' -XMA5C]__\!````QX5`_?__`````,>%8/W__P````"+A53]__^%P'Y[BX58_?__ -XM,?8QVXN50/W__XT\$.LXBX5(_?__@\8!BTT(QT0D#$^-"`C'1"0$?I\(""G0 -XMB40D"(D,).@D(@$``YU8_?__.[54_?__="Z+E4#]__^-!!.+E(5H_?__BT4( -XMP>($@<)@HP@(Z,7[__^)PHT$'SF%4/W__W^:@X5@_?__`8N%8/W__SF%6/W_ -XM_P^/'0,``(.]1/W__P`/A+(!``"+50C'1"0$)KH("(D4).@?(0$`BX5$_?__ -XM,=N-M:3^__^%P`^.B0$``(L4GH/#`8M%",'B!('"8*,(".A2^___.YU$_?__ -XM#X1F`0``BTT(QT0D!":Z"`B)#"3HTR`!`.O(BTT(C01_]H2!``$```(/A(7^ -XM___IW/W__X/X`P^%3_[__XG:@^(!#X1"`0``BTT(C01_BX2!^````(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,!T(X32#X7O`0``BTT(C01_BX2!^````(D$).BI1___ -XM`85,_?__@X5,_?__`XN%//W__SF%3/W__P^.^/W__XN-1/W__XF\C:3^__^# -XMP0&)C43]___I\_W__XNV^````(7V#Y3`Z;#]__^#XP$/A,<```"+AO@```"+ -XM50B-!$#!X`(#0A"+0#B-3>")#"2)1"0,QT0D"+.@"`C'1"0$%````.@"1/__ -XMC4W@BP&#P02-D/_^_O[WT"'"@>*`@("`=.GWPH"````/A"(!````TH/9`RN- -XM./W__P&-3/W__^E"_?__@\`&,=*#X/J)A4C]__^)R/>U2/W__XF%5/W__^GA -XM^___D(M%",=$)`0FN@@(B00DZ&T?`0"!Q,P"``!;7E]=PXM-"(T$?XN,@?@` -XM``"%R0^5P.G%_O__BX;X````Z4/___^#^`,/A5O\__^+30B-!'^-!($/MH@` -XM`0``@^$!#X2Q````BX#X````BU4(C01`P>`"`T(0BU`XBT`\.<(/A,;\__^$ -XMR0^%JP```(M5"(T$?XT$@HN0_````(72#X0#_/__BX#X````B50D!(D$).BQ -XM0O__A<`/A(W\___IY/O__XN54/W__XG0P?H?][U4_?__@_H!@]C_A<")A5C] -XM__\/CZK\___I=_W__\'J$(/!`NG3_O__BU4(C01_BX2"^````(T$0,'@`@-" -XM$(M`..D`_O__BY#X````BX#\````Z5;___^+D/@```"+@/P```#I9_O__XM- -XM"(T$?XN$@?@```"-!$#!X`(#01"+4#R%T@^$3OO__XM`..E)____BU4(QT0D -XM!":Z"`B)%"3H#QX!`(N-8/W__XF-0/W__^DA_/__C;0F`````(V\)P````!5 -XMB>6#[!B+10R)??R+?0B)7?2)=?B+=1"-!$#!X`*-%#CV@@`!```!C9P'^``` -XM`'06BX+X````C01`C02%,`````-'$(U8"/?&"````'5Q]\8!````=#[WQ@P` -XM```/A)T```"#Y@)U&(M#!(7`C78`=`Z)!"3H"D3__XVV`````(M5%#'`B5,$ -XMBUWTBW7XBWW\B>Q=P_?&#````'18@^8"=0Z+`X7`=`B)!"3HU$/__XM5%#'` -XMB1/KSXVT)@````"+112)!"3H*3W__X7`B444#X5Y____QT0D"`````#'1"0$ -XM!0```(D\).B"[/__N`$```#KDXM%&(D#,<#KBHGVBT48B4,$,<#I>____XUV -XM`%6)Y57VAVRC"`@!==R+1?"%P`^%'`$``/:#``$```$/A`$!``"+@_@```"+50R- -XM!$#!X`(#0A"+0#B%P`^$\@```(M5#,=$)!``````B40D#,=$)`@*````B70D -XM!(D4).@T_O__A<`/A2H!```/MI,``0``@^(!#X0*`0``BX/X````BTT,C01` -XMP>`"`T$0BT`\A<`/E<"$P`^$2O___X32#X0<`0``BX/X````BU4,C01`P>`" -XM`T(0BT`\BTT,QT0D$`````")1"0,QT0D"`L```")="0$B0PDZ+K]__^%P`^$ -XM`O___XM%"(/&`8/'$,=$)`@`````@\,,QT0D!`4```")!"3H_NK__X/^3\=% -XM\`$````/A>#^__^+1?"#Q!Q;7E]=PXN#^````(7`#X4.____BTT,QT0D$``` -XM``#'1"0,`````,=$)`@&````B70D!(D,).@^_?__BT4,QT0D$`````#'1"0, -XM`````,=$)`@'````B70D!(D$).@7_?__Z6+^__^+@_P```"%P`^5P.D`____ -XMBTT,QT0D$`````#'1"0,`````,=$)`@'````B70D!(D,).C;_/__Z23___^+ -XM@_P```#I[O[__XUT)@"-O"<`````58GE5U93@^Q\Z8/A&4YV9`/A%H(``"`^CW'1<0!````QT7(`````'0.QT7$```` -XM`,=%R`$```"%R<=%[`````#'1=``````=`G&`0"#P0&)3=")'"3H]O+__X7` -XMB<P/MD<, -XMA=(/E<&H(`^%`0(``*@0#X57`@``BU7$A=(/A3H%``"+5R%P`^%#`,``(M%R(7`#X1V`0``BT6X -XMA_O__]D<,`G5@BTT(C01;C02!#[:0``$``(/B`0^$ -XM&00``(N`^````(T$0,'@`@-!$(MP.(7V#Y7`A,!T+(32#X6)!```BTT(C01; -XMBX2!^````(M5T(D$)(E4)`3HPSO__X7`#X33_O__BT<$A/[__X3)#X3W_?__QT0D#-"= -XM"`B+10B)="0(QT0D!`,```")!"3HY>O__\=%S`$```#I1?[__X![`6\/A8C^ -XM__^-P!````B30DZ#WP__^%P(G'#X5'_?__Z6?^__^%T@^%H?W__\=$ -XM)`P`G@@(Z9,!``"+1<2%P`^$?_[__XM5T`^^`H/X?P^'GP```/8$A=T4"0@$ -XM#X21````C47@C4WPQT0D#`H```")1"0(B50D!(D,).CS6```B46\@^@!#X25 -XM`P``BU4(C47HB70D!(E$)`B)%"3HH=G__XM5"(U-Y(E,)`B)%"2)PXM%T(E$ -XM)`3HAMG__X-]O`&)Q@^#-P4``(M-"(E$)!")7"0,QT0D")"?"`C'1"0$!0`` -XM`(D,).C7Y?__ZUN0C70F`(M5"(U%Z(ET)`2)1"0(B10DZ#K9__^+50B-3>2) -XM3"0(B10DB<.+1=")1"0$Z!_9__^+30B)7"0,QT0D"*B>"`C'1"0$`P```(D, -XM)(G&B40D$.AZY?__BT7HA2%VP^$/O[__XM-"(7)=!.+30B+01"%P'0).W!T#X1#!``` -XMB30DZ#@\___'1`/M@"$P'0G#[[0A=(/B+W\__\[%?P@ -XM"0@/C;'\__^A""$)"/9$D#8"#X2A_/__#[9'#*A`=`N+5?"%T@^$VP$``*@" -XM=3&+50B-!%N-!(+V@``!```!#X3.`0``BX#X````C01`P>`"`T(0BT`X.T7P -XM#X2E^?__BT<$ASIM/S__XNP^````(7V#Y3`Z6O\__^!H%0( -XM``#__O__Z9C[__^!H%0(``#__O__QT7,`0```.E/^/__BY#X````A=(/E<#I -XM-OS__X-]O`)T$H-]O`,/A3G[__^-=@#ID?C__XE$)!"+10B)7"0,QT0D"("> -XM"`C'1"0$`P```(D$).B(X/__Z0G[___'1"0,U)X(".F*^?__BX#X````Z3G^ -XM__^+10C'1"00`0```,=$)`P`````QT0D"`````")7"0$B00DZ-3R___IN_?_ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y8'L6`0``(EU^(MU"(U%V(E=](V=R/O__XE% -XMZ(U%R(E]_(G?B5W8QT7(`````,=%T`````#'1>``````B47LQT0D$`,```#' -XM1"0,`````,=$)`@`````QT0D!#\```")-"3H5_+__X7`=3.`CO0#```!QT0D -XM$`$```#'1"0,`````,=$)`@`````QT0D!!@```")-"3H)/+__X7`=$#!XP2+ -XM@V"C"`C'1"0(2)\(",=$)`0#````B30DB40D#.AKW___N@$```"+7?2)T(MU -XM^(M]_(GL7<.-M"8`````@(X@`@```<=$)!``````QT0D#`````#'1"0(```` -XM`,=$)`0(````B30DZ+'Q__^%P'6-@(Y@`0```<=$)!`"````QT0D#`````#' -XM1"0(`````,=$)`0S````B30DZ'[Q__^%P`^%5O___X".9`,```''!"2GGP@( -XMZ-*`@("`=.GWPH"```!U!L'J$(/!`@#2NPH```"#V0,I -XM^8U5Z(E-X,=$)`@`````B50D!(DT).BL\___A<`/A43^__^!_]*?"`B)^W0E -XMQX7(^___97-C8<>%S/O__W!E=&G'A=#[__]M93TVQH74^___`(G9BP&#P02- -XMD/_^_O[WT"'"@>*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*?F-1>B)3>#' -XM1"0(`````(E$)`2)-"3H+?/__X7`=!2[#````.F__?__N"'5"`CI>O[__X'_ -XMWY\("'0=QX7(^___:V5Y=,>%S/O__VEM93UFQX70^___-@")^8L!@\$$C9#_ -XM_O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D -XM"`````")5"0$B30DZ*CR__^%P'04NQ8```#I.OW__[B_GP@(Z7O^__^!^^F? -XM"`AT'L>%R/O__VUA=&/'A*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0( -XM`````(E$)`2)-"3H(O+__X7`=`J['0```.FT_/__QT0D#/6?"`C'1"0(#*`( -XM",=$)`0`!```B1PDZ,@P__^)V8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*` -XM@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D"`````")5"0$B30DZ*SQ__^% -XMP'0*NR````#I/OS__X'[%J`("(G?=!O'A%S/O__V=R87#'A=#[__]H% -XMV/O__U!14%#'A=S[__\@3$EPQX7@^___<&QP:<>%Y/O__W!B<`")V8L!@\$$ -XMC9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLF````@]D#*?F- -XM5>B)3>#'1"0(`````(E4)`2)-"3HA/#__X7`#X4<^___QT0D#$^-"`C'1"0( -XML)\(",=$)`0`!```B3PDZ#`O__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I -XM]\*`@```=0;!ZA"#P0(`TKLG````@]D#*?F-1>B)3>#'1"0(`````(E$)`2) -XM-"3H#_#__X7`#X6G^O__QT0D#!^@"`C'1"0(,Z`(",=$)`0`!```B3PDZ+LN -XM__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLK -XM````@]D#*?F-5>B)3>#'1"0(`````(E4)`2)-"3HFN___X7`#X4R^O__@?\] -XMH`@(B?MT.\>%R/O__W-E8W3'A%U/O__TA( -XM($C'A=C[__]5;FAS9L>%W/O__V@`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,I^8U%Z(E-X,=$)`@`````B40D!(DT).@% -XM[___A%S/O__VQM973'A=#[__]A/7Y[QX74^___6RH_),>% -XMV/O__V`G(ES&A=S[__\`C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0(`````(E$)`2)-"3HS.W_ -XM_X7`=`J[-0```.E>^/__@?M_H`@(="7'A% -XMT/O__W1H/3C&A=3[__\`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(`` -XM`'4&P>H0@\$"`-*[-@```(/9`RN-O/O__XU5Z,=$)`@`````B4W@B50D!(DT -XM).A`[?__A<`/A=CW__^!O;S[__^,H`@(="?'A%T/O__VQL/3%FQX74^___-@"-CH0@\$"`-*[.0```(/9`RN-O/O__XU%Z,=$)`@````` -XMB4W@B40D!(DT).BP[/__A<`/A4CW__^!O;S[__^:H`@(=!W'A")5"0$B30DZ"KL__^%P`^%PO;__XV%R/O__\=$)`Q@P0@(QT0D"*2@"`C' -XM1"0$``0``(D$).C0*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NSX```"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3HI^O__X7`#X4_]O__]H8@`@```0^$QP$``(N&&`(``(T$0,'@`@-& -XM$(M`.(/H`='HA<")1?!U!\=%\`$```"+1?#'1"0(K*`(",=$)`0`!```B40D -XM#(V%R/O__XD$).@<*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NS````"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3H\^K__X7`#X6+]?__BT80C57PB50D!(DT)/^08`@``+H!````A<`/ -XMA97U__^+1?`]6`(```^'U````,=%\`@```"+1?#'1"0(MZ`(",=$)`0`!``` -XMB40D#(V%R/O__XD$).AE*?__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("` -XM=.GWPH"```!U!L'J$(/!`@#2NTD```"#V0,KC;S[__^-5>C'1"0(`````(E- -XMX(E4)`2)-"3H/.K__X7`#X74]/__H6"C"`B%P`^$L`$``(GS,?^)^,'@!(F% -XMP/O__XN`:*,("(/X`0^$9`$```^"L0```(/X`@^$`@$``(/X`XVT)@````!T -XM,^C-)?__/;`$``"-="8`#X>\````QT7P$````(UV`.D5____BX88`@``@^@! -XMT>CI0/[__P^VDP`!``"#X@$/A(````"+@_@```"-!$#!X`(#1A"+0#B%P`^5 -XMP(3`=#Z$TG19BX/X````C01`P>`"`T80BT`XQT0D$`````")1"0,QT0D"`L` -XM``")?"0$B30DZ!KF__^%P`^%\O/__XN%P/O__X/##(N`<*,("(7`#X3$```` -XM@\O___S'2Z:3R__^+&^ES\O__ -XMC78`58GE5U93@^PLBQ5@HP@(BWT,A=(/A)L"``#'1?``````Z8(```"+3>2- -XM!$F+30B-!('V@``!```!#X1>`@``BX#X````C01`P>`"`T$0BT`XA<`/E<"$ -XMP`^$%@(``(E4)`C'1"0$PJ`("(D\).CR(/__H:`4"0B%P`^%<0$```^_1PS! -XMZ`:#X`&$P`^%=`$``(M-\(N1<*,("(/!$(E-\(72#X0-`@``BT7P]H!LHP@( -XM"'7=BTWPP?@$B47DBX%HHP@(@_@"#X1D`0``#X)4____@_@#=9N+5>2+30B- -XM!%*-!('V@``!```!#X2=`0``BX#X````C01`P>`"`T$0BT`XA<`/E,"$P`^% -XM8____XE\)`S'1"0(!````,=$)`0!````QP0DXJ`(".AU)O__BU7PBX)@HP@( -XM#[8PB?&$R0^$L`$```^^V8E%[.MTC78`H0@A"0CV1)@V`G1QH:`4"0B%P`^% -XM=P$``(M'"(/H`87`B4<(#XC4`@``BP?&`%R#P`&)!Z&@%`D(A(&(/``8D'BTWL#[9Q`8/!`8E-[(GPA,`/A#2-!$F+30B-!('V@``!```!=&B+ -XM@/@```"-!$#!X`(#01"+0#B)1"0,B50D",=$)`34H`@(B3PDZ/4>___I_OW_ -XM_XE4)`C'1"0$RJ`("(D\).C<'O__Z>7]__^+@/@```"%P`^4P.EJ_O__BX#X -XM````A<`/E<#IJ?W__XN`^````.NB@\0L,CK;8GVH0@A"0CV1)@V`G1KBPV@%`D(A+%:`4"0B%TG5)BT<(@^@!A<")1PAX2HL' -XMB!B#P`&)!XM5Z`^V<@&#P@&)5>B)\83)=%T/OMF%VW@(.1W\(`D(?XF)\8#Y -XM7'2.BQ6@%`D(A=)TMXE\)`2)'"3H)\#P*D'6JB7PD!(D< -XM).@6)/__ZZ6)?"0$QP0D7````.A$'O__Z7#___^AH!0)"(7`=6>+1PB#Z`&% -XMP(E'"`^(G@```(L'Q@`*@\`!B0?I)/S__SM'&`^-(_W__XE\)`3'!"1<```` -XMZ+TC___I&/W__SM'&`^-%O___XE\)`3'!"1<````Z)\C___I"____XN`^``` -XM`.FT_O__B7PD!,<$)`H```#HOQW__^G(^___B7PD!,<$)#T```#HJAW__^E? -XM_O__.T<8#XU,_O__B7PD!,<$)#T```#H3"/__^E!_O__B7PD!,<$)`H```#H -XM-R/__XUV`.E]^___D)"0D)"0D)"0D)!5B>6+112+50B+`(7`=!&!HJP$``#_ -XM_]__,6+10B#B*P$```@,Q=PXN1&`(``(U"_^O+C012P>`"`T$0 -XMBT`X@^@!Z\>-M"8`````C;PG`````%6)Y5.#["2+70B-5?B+0Q")5"0$B1PD -XM_Y!@"```N@$```"%P'4+,-*!??C`$@``=P^#Q"2)T%M=PXVT)@````"+112) -XM1"0,BT40B40D"(M%#(D<)(E$)`3H$____X/$)%M=B<*)T,.)]HV\)P````!5 -XMB>53@^PDBUT(C57XBT,0B50D!(D<)/^08`@``+H!````A6#[!B+112+"(7)=2N+10C'1"00`````,=$ -XM)`P`````QT0D"`````#'1"0$0P```(D$).CFW/__R3'`PXGV58GE@^P8BT40 -XMB00DZ`,B__\QTJ@!=""+10C'1"0(F*D(",=$)`0#````B00DZ![*__^Z`0`` -XM`,F)T,.0C70F`%6)Y8/L&(M%$(D$).C#(?__,=*H`70@BT4(QT0D"-"I"`C' -XM1"0$`P```(D$).C>R?__N@$```#)B=##D(UT)@!5B>6#[!B+10C'1"0(#*H( -XM",=$)`0#````B00DZ*_)__\QP,G#C70F`(V\)P````!5B>6#["B)=?B+=12) -XM7?2+70B)??R+!H7`#X01`0``/?0!``!V,L=$)`ST`0``QT0D"&"J"`C'1"0$ -XM`P```(D<).A:R?__N`$```"+7?2+=?B+??R)[%W#B40D$,=$)`P`````QT0D -XM"`````#'1"0$&````(D<).BTV___BP:#^`$/A/D```"#Z`'1Z(F#A`````^V -XM@VP$``"#X`&)QP^%O````(N+9`0``(N#:`0``(G*.<$/A%L!``")^(3`=`R- -XM!%+!X`(#0Q"+4#B+!CG"#X8:`0``@^@!B40D$,=$)`P`````QT0D"`````#' -XM1"0$20```(D<).@SV___BP:#Z`&)1"00QT0D#`````#'1"0(`0```,=$)`1) -XM````B1PDZ`K;__\QP.D>____C78`QT0D#`$```#'1"0(-*H(",=$)`0#```` -XMB1PDZ%#(__^X`0```.GQ_O__C;8`````BY-D!```C012P>`"`T,0BT@XBT`\ -XMZ3C___^-M@`````/MH-L!```QX.$`````0```(/@`8G'=%^+DV0$``"-!%+! -XMX`(#0Q"+2#B+0#PYP70*B?B$P'50.Q9V-<=$)!`!````QT0D#`````#'1"0( -XM`````,=$)`1)````B1PDZ$W:___'1"00`0```.D6____,<#I5/[__XN+9`0` -XM`(N#:`0``(G*ZZ:-!%+!X`(#0Q"+4#CKHHL&Z;K^__^-="8`58GE@^P8BT44 -XMBP"#^!-V0#'2/?0!``!W!\F)T,.-=@#'1"0,]`$``,=$)`BXJ@@(QT0D!`,` -XM``"+10B)!"3H/53@^P$BUT( -XMB1PDZ*Z$__\QP(.+K`0``""#Q`1;76#[`B+ -XM11")1"0$BT4(B00DZ!C,__\QP,G#D)"0D%6)Y5=64X/L3(MU#(M]"(7V#X3I -XM`@``BU44BUX(@SH!#X1B`P``]D88`0^$G0```(M%'(7`=6*+312+`8/H`8M5 -XM&(/&"(E%\(/``3GSB0)U$.M-@T7P`8-'7`&+&SGS=#^+0Q")1"00BT,(B40D -XM#(M%\,=$)`0!````B3PDB40D".C*F/__A2)1"0,QT0D"`$```")5"0$B3PDZ`F1 -XM__^%P'6/A?\/A/,"``"+5Q"%THE5T`^$Y0(``/:"50@```$/A=@"``"+1>B+ -XM3=`#0Q"#P`$[07@/A[T#``"+3="+5="+272)3R!BE0(`````0`` -XMB4W4BT7HA`[`P^$\`(``(M5\(M#$(E$)!"+0PB)5"0( -XMQT0D!`$```")/"2)1"0,Z(66__^%P'3"NP$```"%_W03BT<0A#X1\ -XM`@``BT,0B40D$(M#"(E$)`R+1?#'1"0$`0```(D\)(E$)`CH8Y7__X7`=,7I -XME/S__XM%Z,=%[``````#0Q#'1<@`````QT74`````(/``0^$./W__XE$)`R- -XM1>R)1"0(QT0D!`````")/"3HNS8``(7`B47(B474#X4/_?__Z4+\__^!IE0( -XM``#__O__BU7`BT7$`T(0.T9X=V:+3G2)3R!CE0(`````0``B4W4 -XMZ:#]__\QP(-[$``/E<#I-_W__P^VA)`T!```Z9;^__^)1"0,C47LB40D"(M- -XMR(D\)(E,)`3H/38``(7`#X3/^___B47(B474Z5C]__^)1"0,C49XB40D"(M& -XM=(D\)(E$)`3H$#8``(7`#X2B^___B49TZ7#___^)1"0,B2)1"0$BT7(B00DZ,,6__^+5=B+3<@!5>0! -XMT8E-S.DS^___BTT8,=O'`0$```#'000`````Z33Z__^!H%0(``#__O__Z27Z -XM___'1"0$_P```(D\).C&>___Z>/\__^+5<2)5"0(BT7DB40D!(M-S(D,).A< -XM%O__BT7$`47,BU7PZ3/___^0D)"0D)"0D)"058GEBT4(5U93BT@0BU$(C7D( -XM.?IT"CG0=3N+$CG7=4"+41"-<1`Y\G1`BQHYWG1,BT($B4,$BT($.<9T.HD8 -XMBT$(B7H$B0(Y>0QT)HM!"(E0!(E1"%N)T%Y?7<.-="8`.=!U\3G0=/CKZS'2 -XMC70F`.OCB5$,Z]N)61#KPXM"!(E!%(L:Z["-=@"-O"<`````58GE5S'_5E.# -XM[`R+=0B+1@R#Z`&%P(E&#`^%'`$``(L6A=)T)(M>$(U#"#G"#X1&`0``BT8$ -XMB4($BTX$C4,(.<$/A$L!``")$8.FK`0``/._`0```(DT).B3P`$`B30DBN?C8;(````B00DZ.<3__^+AN`` -XM``"%P'6:ZZ"+1@2)0PR+7A"+3@2+%HU#"#G!#X6U_O__B5,(Z:_^__^-M@`` -XM``!5B>575E.#[`R+11"+=0B+?0S'``````#'1"0$L`0``,<$)`$```#H.!+_ -XM_X7`B<,/A%0"``"+11")&(M&!(/``87_B48$B4,(C4-XQT,,`0```(ES$,=# -XM+`(```")0WB)0WP/A.1H````@8NL!````(```(B#J````(N7P````#'` -XM@[^L``````^5P(72B8.L````="2+A\0```")5"0$B1PDB40D".C$+P``A<") -XM@\`````/A$8!``"+E]@```"+A\0```"%THF#Q````'0DBX?<````B50D!(D< -XM)(E$)`CHBB\``(7`B8/8````#X0,`0``BY?@````BX?<````A=*)@]P```!T -XM)(N'Y````(E4)`2)'"2)1"0(Z%`O``"%P(F#X`````^$T@```(N'Y````(F# -XMY````(N'[````(7`=$V--(4`````B30DZ&$2__^%P(F#Z````'1XBX?L```` -XMBY/H````B8/L````BX?P````B8/P````BX?H````B70D"(D4)(E$)`3H4Q+_ -XM_XE<)`2)/"3H0\___X7`=1^+AZP$``")7"0$B3PD@^`#"8.L!```Z(36``"% -XMP'1ZB1PDZ&C\__^X`0```(/$#%M>7UW#QT0D"`````#'1"0$!0```(D<).A3 -XMN___BY/H````A=(/A6+___^0C70F`,=$)`@`````QT0D!`4```")/"3H*+O_ -XM_^NFC;8`````QX.L`````````(E<)`2)/"3H"M8``(7`=8:)7"0$B3PDZ%J] -XM`0"%P`^%`/MDL!.,@/A`0!``"#[@$/A"`"```/OM`XP8E5V(M5X(G3=%*+5>") -XMT^LCC70F``^V"H/"`8@+@\,!@^X!#X35`0``#[8*#[[!.T78="B#_@%VW(#Y -XM7'77C4(!B47<#[9*`0^^P3M%V`^$2P$```^V"HM5W.N_B=Z#P@$K=>"+10R% -XMP'0%BT4,B1"+7>")]HM%$`^V51"+31")="0(@^`0@_@!&<"#XH"#X`2#P`*` -XM^@$9TH/A`??2"N!```0'59 -XMBT40QT0D$`````#'1"0,`````(/@$(/X`1G`@^`$@\`"B40D&(V'L````(E$ -XM)!2+A\0```")5"0$B3PDB40D".BT(`$`A7UW#C;0F`````(/$/#'`6UY?7<.#[@&# -XMP@+I*W7@Z5S^__^)^+("Z-3\__^X`0```.G3_O__BU7@Z4'^__^)]E6Z`@`` -XM`(GE5U93@^QLBT4@BW4(B40D"(M%'(E$)`2+11B)!"2+312)\.A1_?__A<`/ -XMA>````#V12`(#X3E````BU4,BP*)1>R+2@2#P0&)3<2+12"[9````#'_QT7` -XM`0```(/@$(E%K.M8D(UT)@"+AI0$``"-!$#!X`(#1A"+0#B%P`^4P(3`#X4N -XM`P``C47LB40D!(DT).BBA/__A<`/A<\"``"+1>R%P'1@@\`!OP$```")1>R# -XM;>P!QT7$`````(/K`8/[_P^$D0$``(7_=`Z+50R+`CM%[`^'OP(``(M5[(72 -XM=6B%_P^%L`(``/:&G`0```$/A7/___^+AI0$``"%P`^4P.EZ____]D4@$`^% -XMW@(``+L!````@\1LB=A;7E]=PXM5#(MZ!(7_#X6I`0``BQ*#^@$/A-`"``"- -XM0O^)1>SIFP$``(VV`````(U-Z(U%Y(E,)!")1"0,QT0D"`````")5"0$B30D -XMZ(Z!__^%P`^%^P$``(M%Z(V6L````(U-U,=%U`````#'1=@`````B47 -XM`0``BTW$QT6T`````(E-L(M%U(M5V(M-Z(E%R(/``8E5S(/2`#';@_H`B474 -XMB578#X[)````BT7LBTT0BU7(B0'V12`"#X7#`0``BT7H.<(/@K@!``"#^`&- -XM4/\9P/?0,=LAPHE1!.D:`0``BT80]H!4"```!`^%!0$``,=$)`P!````QT0D -XM"`````#'1"0$`````(DT).CP>/__A")1"00B50D#,=$)`@!````BT7DB40D!(M-O(D,).B2 -XM!___@_@!#X3O_O__A<`/A10!``"+1<2%P`^$MO[__X-]V``/C*S^__\/C\S^ -XM__^+3;`Y3=0/@IK^__^-M@````#IM?[__[L!````]D4@$(GV#X26_?__B30D -XMQT0D!`(```#H^OC__X/$;(G86UY?7575E.#[$R+12")1"0(BT4R)1"0,QT0D"`````")="0$BU4(B10DZ+E]__^%P`^$ -XM-0$``(M%T(7`#X7!````BTT(]H&R-??")?"00B50D#,=$)`@!````BTT,BP&)1"0$BT4(B00D -XMZ*)\__^%P'7#BU4,]D4@"(LR#X0=`0``BUH$A=L/A&K^__^#ZP'I8O[__XM5 -XM\(72=`2!P;````")3@`````B5W< -XMQT7@`````(E$)!"-1=R)1"0,QT0D"`$```"+1>R)#"2)1"0$Z.@#__^#^`%U -XM?8/&`3';Z:S^__^0C70F`(M%"(N`E`0``(7`#Y3`A,`/A(/^___V12`0#X05 -XM____BT4(N@$```#HH_7__^L-BT4(N@,```#HE/7__[L!````QT0D!`(```"+ -XM10B)!"3H3/7__X/$3(G86UY?7<.[`0```/9%(!!UV.G,_O__A<`/A+L```#V -XM12`0C;8`````#X3^````BU7(B40D!(E4)`B+30B)#"3HI!BT4,BU@$ -XM@\,!.UWP#X)&_?__@\8!,=N-5>R)?"00B50D#,=$)`@`````B70D!(M-"(D, -XM).@Y>___A<`/A!?]__^+10CV@)P$```!#X2N````B<*+@)0$``"-!$#!X`(# -XM0A"+2#B%R0^4P(3`#X3?_/__]D4@$`^$&_[__XM%"+H!````NP$```#HI/3_ -XM_^D)_O__BT70AP/A)\!``"+ -XM1>R+50PY4`AUY?9`)`%UWXMP&+L&````BW@4A?9^>##;ZS.-="8`BU4(#[;` -XMC01`C80`4`$```-"$(/`"(M5"(E$)`2)%"3H6]X```'#@^X!=!^#QP$/M@<\ -XM_W7*BT4(QT0D!/\```")!"3HIVG__^O+B=BZJZJJ*O?JB=C!^!\IPHT44@'2 -XM*=J-6@:%VWX@C;0F`````(M5",=$)`32U`@(B10DZ/W=```IPX7;?^>+1>R+ -XMR+$H72 -XMB57L#X5A_O__BT7P@\0<6UY?7<.+50@/ML"-!$"-A`!0`0```T(0@\`(BU4( -XMB40D!(D4).C9W```@^L!=*2#Q@$/M@8\_W7,BT4(QT0D!/\```")!"3H)VC_ -XM_^O-D(UT)@!5B>564X/L$(MU"(N>1`$``(7;=%"+0PR%P'0(B00DZ"`#__^+ -XM0Q2%P'0(B00DZ!$#__^+0QR%P'0(B00DZ`(#__^+$X72=`:+0P2)0@2+0P2) -XM$(D<).CI`O__BYY$`0``A=MUL(/$$%M>7<.-="8`58GE4X/L!(M="(L3A=)T -XM!HM#!(E"!(M#!(D0BT,,A(```"+ -XM31"+4Q0/MD$,.`(/A]````!R"(M]'#E["'1?BP.)7?"%P`^$T````(G#BT40 -XMA?````+31PY2PAUS_9#)`%UR8M+&(M%&#G( -XM=@*)R(M]%#G`B<'\\Z8/DL`/E\(HP@^^PNLHD(UT)@#V0R0!=9N+2QB+11@Y -XMR'=JB40D"(M%$(D4)(E$)`3HW?O__X/X`'\_#XQS____BU48.U,8D%_O__D(UT -XM)@#)N`$```##B?:-O"<`````58GE@^PXBT4DB77XBU44BW48B5WTB40D%(U% -XM\(E$)`2+10B)??R+?2#'1"08`````(ET)!")5"0,QT0D"`````")!"3H!_[_ -XM_X7`B<-T9?9%*`)U6XM%'(7`=$J%_XGV=$2+51R+10B)?"0(B50D!(D$).AH -XM'```A<")Q@^$I0$``(M#'(7`=`B)!"3H,P#__XE[(#'`B7,Q=PS'_,?;KUHUT)@`QP.OEQT0D!"@```#'!"0!````Z-S]_O^%P(G##X0Z -XM`0``BT4,A____QT,,`````(M5$(E3$(M%%(M5"(ET)`B)1"0$ -XMB10DZ((;``"%P(E#%`^$!`$``(ES&(M%'(7`#X2*````BT4____Z$+[_O^+,(M##(7`#X2(_O__B00DZ#W^_O_I>_[__XUT)@#H -XM'_O^_XLPBT,4B00DZ"+^_O_KT(VV`````(V_`````%6)Y5=64X/L'(M5"(MU -XM#(M"$(N`1`$``(7`B47D=17I3@(``(M%Y(L`A<")1>0/A#X"``"+1>2+510Y -XM4`AUY?9`)`ATWXM%$(7`=`^+11")="0$B00DZ)GW_O^+5>2+1>2+4A2)5>"+ -XM0!B%P(E%Z'5DZ<8```"#^WQT<#L=_"`)"'T,H0@A"0CV1)@V`G5%R+!HGZB!"#P`&)!H-MZ`%T9XM5X`^V.H/"`8E5X(GX#[;8@_L6=8NAH!0) -XM"(7`#X6(`0``BT8(@^@!A<")1@@/B#<"``"+!L8`%H/``8D&BT8(@^@!A<") -XM1@AYI#M&&'P%@/L*=9J)="0$B1PDZ.[[_O^#;>@!=9FAH!0)"(7`#X5(`@`` -XMBT8(@^@!A<")1@@/B$P"``"+!L8`((/``8D&BT7DBT`P/A,0```"+ -XM5>2+4B"%THE5\'50Z;(```"#^WQT7(#"`9`/A'L!``"+50B+0A"`O`-3!P`` -XM#'1"BPV@%`D(A+1>P/MCB#P`&)1>R)^@^VVH/[%G6?H:`4"0B%P`^%ZP```(M&"(/H`87` -XMB48(#XA8`0``BP;&`!:#P`&)!HM&"(/H`87`B48(>:0[1AA\!8#["G6:B70D -XM!(D<).CQ^O[_@VWP`769BQ6@%`D(A=(/A34!``"+1@B#Z`&%P(E&"`^(;`$` -XM`(L&Q@`*@\`!B0:+1>2+`(7`B47D#X7"_?__@\0<,% -XM://__P````#'A7#S__\`````QX5X\___`````(F%@//__\>%?//________' -XMA8SS__\`````QX60\___`````(F58//__XN%9//__XD$).C3^/[_A<`/A!0! -XM``"-6`B_<:P("/RY"````(G>\Z9UUHE<)!"+A8CS__^-E93S__^)%"3'1"0( -XMN90(",=$)`0`!```B40D#.@[]O[_C864\___QT0D"`````#'1"0$`@```(D$ -XM).@]]_[_@_C_B85L\___=(''1"00`0```(E$)`S'1"0(`````,=$)`0````` -XMBU4(B10DZ!//__P%^&\=$)`CXK0@(QT0D!`0```"+10B)!"3H>:#__XN5>//__SF5 -XM%=//__P$```#I;?[__XN5C//__XD4).BA -XM]O[_BX60\___B00DZ)/V_O^+E7SS__^)%"3H!?3^_X'$K`P``+H!````6XG0 -XM7E]=PXV5E/O__\=$)`0*````B10DZ+WQ_O^%P(F%A//__P^$0/[__XN-;//_ -XM_XV%E/?__[H`!```B85<\___Z/_[__^%P`^$'/[__XNU7//__[\TK`@(N1,` -XM``#\\Z8/A0/^__^-E93W___'1"0$"@```(D4).A<\?[_A<`/A.7]___&``"+ -XMA83S__^-=93&``"#A7#S__\!Z,GR_O_'``````"-A:?W__^)="0$B00DZ!'R -XM_O^%P'0/Z*CR_O^#.`*0#X1(`0``BY6`\___C86G^___B00DB50D!.CF\O[_ -XMA<`/A:3]__^#A7CS__\!B70D!(N%;//__XD$).BE]O[_BX6,\___A[_[_Z6_\ -XM___'1"0(`````,=$)`0%````BU4(B10DZ"J=___I3_S__\=$)`@`````QT0D -XM!`4```"+50B)%"3H"IW__XD<).@6]/[_Z2?\__^-M@````"-O"<`````58GE -XM5U93@>R,"```QT0D"`````#'1"0$*P```(M%"(D$).C)I?__N@$```"%P`^% -XM<@(``(M5"/:"!`,```$/A6\"``"+?0B+M_P"``")-"3HC^S^_X7`#X5X`@`` -XMQP0D0?$(".@+\/[_A<")A8CW__\/A%X"``"-A93[__^-E93W___'A8SW__\` -XM````B86$]___B96`]___C;0F`````(N5B/?__XD4).@V\_[_A<`/A,H!``"- -XM6`B_<:P("/RY"````(G>\Z9UUL=$)`13K`@(B1PDZ"KQ_O^%P(F%?/?__W2\ -XMBQ6@%`D(A=(/A5D"```/OT`.QT0D$`$```")1"0,QT0D"`````#'1"0$```` -XM`(M5"(D4).BC,___@_@"#X02`@``BX5\]___C964^___QT0D!``$``")%"2) -XM1"0(Z*[M_O^%P`^$N`$``(NUA/?__[@@K`@(N1,```#\B0$``(N5?/?__XV]E/?_ -XM_\=$)`0`!```B3PDB50D".A'[?[_A<`/A%$!``"+M8#W__^X-*P("+D3```` -XM_(G'\Z8/A38!``"-A93W___'1"0$"@```(D$).A^[?[_A<`/A!@!``#&``"+ -XMO9#W__^-=93&!P#H\N[^_\<``````(V%I_?__XET)`2)!"3H.N[^_X7`#X4\ -XM`0``H:`4"0B%P`^%1P$``(N5?/?__P^_0@Z)="0$B00DZ._R_O^-1;2)!"3H -XM!.W^_XV5I_O__XE4)`C'!"16K`@(B40D!.CZ[O[_QX6,]___`0```.FL```` -XMC;0F`````(N%C/?__X7`=0S'!"1AK`@(Z)[I_O^+O8CW__^)/"3H0/+^_S'2 -XM@<2,"```B=!;7E]=PXN"_`(``(T$0,'@`@-"$(MP.(DT).@7ZO[_A<`/A(C] -XM__^)="0(QT0D#$BL"`C'1"0$!0```(M]"(D\).@,G___@<2,"```N@$```!; -XMB=!>7UW#QT0D#&BN"`B)7"0(QT0D!`,```"+50B)%"3HVY[__XN%?/?__XD$ -XM).C!\/[_Z6C]__^+O7SW__^)/"3HKO#^_^E5_?__BX5\]___B00DZ*OO_O_I -XMF/W__^B1[?[_@S@"#X6V_O__B1PDZ-#K_O_KKXN]?/?__XD\).B`[_[_Z;#^ -XM__^-M"8`````58GE@>RH"```B77\B<:-19B)7?B)TXE$)`3'!"1ZK`@(Z)[L -XM_O^%P'0JB30DQT0D#(VL"`C'1"0(>JP(",=$)`0%````Z":>__^+7?B+=?R) -XM[%W#B5PD$(V=A/?__XD<),=$)`QZK`@(QT0D"*>L"`C'1"0$%`@``.B&[?[_ -XMB1PDZ%[K_O^+7?B+=?R)[%W#58GE@^PHB10DB5WTB=.)=?B)??R)SXE%\.AF -XM[O[_@_C_B<9T'P^W10B)'"2)1"0$Z&_O_O^)\(M=](MU^(M]_(GL7<.+1?#' -XM1"0,GZT("(E\)`C'1"0$!0```(D$).A]G?__Z]"-="8`C;PG`````%6)Y5>) -XMQU93BK^_[@!````@<1\%0``6UY? -XM7<.+A_P"``"-!$#!X`(#1Q"+<#CI-?[__XVV`````('$?!4``+@!````6UY? -XM7<.+E=3J__^+A7UW#BX7,ZO__BY70ZO__BQB-1?"+,HD$).B5Y_[_ -XMBY78ZO__QT0D1`:M"`B)7"1`QT0D/`NM"`B)5"1(C97P_O__B5PD.,=$)#08 -XMKP@(QT0D,$"O"`C'1"0L=*\("(E4)"C'1"0D$*T("(N5V.K__XE$)!"-A?#J -XM___'1"0<(:T("(ET)!B)5"0@QT0D%#RM"`C'1"0,2*T(",=$)`B8KP@(QT0D -XM!``0``")!"3H0>G^_SW_#P``B87@ZO__#X<+_O__A<"-M?#J__]U0>FN```` -XMQ@(*@\(!B=,I\XF5W.K__XE<)`B)="0$BY74ZO__B10DZ/OC_O\YPP^%G_[_ -XM_RF=X.K__XNUW.K__W1RBX7@ZO__@_@\C50P_W:UQT0D!`H```")-"3HEN;^ -XM_XG"*?"#^#Q^G#GR=IB)T.L(D(/J`3GR=A:`.B!U](G0*?"#^#P/CGK___^) -XMT.OCB<+I;____\=$)`@`````QT0D!`4```")/"3HU)/__^E%_O__BYW$ZO__ -XMA=MU!S'`Z7;]__^-E?#Z__^)^.A1^O__BX74ZO__B00DZ#?H_O^%P`^%Z_W_ -XM_S'`Z4S]__^-="8`58GE@>PH)```B7W\BWT(B5WTB77XBU\Q= -XMPY`Q]NOLBT,$QT0D!`L```")!"3_4!B%P`^%Y0$``/9%#`1T!(!+6"#V10P! -XM=*N+4U")^.BI^?__ZY^-M"8`````QT0D"`````#'1"0$*P```(D\).CHF___ -XMA<`/A9`!``#VAP0#```!#X7"`0``B[?\`@``C87T^___B70D#,=$)`AYK0@( -XMQT0D!``$``")!"3H3^?^_XGQB?B-E?3[___'!"2``0``Z,7Y__^)A>C;__^# -XMP`$/A#8!``"+1Q#'1"0(`0```,=$)`3DKP@(B3PD_Y!H"```BUM,QT0D"``` -XM``#'1"0$`````(F=[-O__XD<).@-Z/[_B87PV___@\`!=%>-A?3;__^)1"0$ -XMBX7PV___QT0D"``@``")!"3H(NK^_X/X`(G##XX9`0``,?;K!BG#=,T!QHV% -XM]-O__P'PB40D!(N%Z-O__XE<)`B)!"3HC^'^_X7`>=B+A>S;___'1"0,GZT( -XM",=$)`0%````B3PDB40D".C5EO__C87T^___O@$```")!"3H!N3^_XN%Z-O_ -XM_XD$).@XYO[_BT<0QT0D"`(```#'1"0$`````(D\)/^0:`@``.DC_O__C78` -XMQT0D"`$```#'1"0$`````(D\).@X//__A<`/A!#^__^^`0```.D&_O__C;8` -XM````]D4,`KX!````#X3Q_?__D.N^@&-8G[X!````QT0D#%ZM"`B+0TS'1"0$ -XM!0```(D\)(E$)`CH)I;__^G!_?__BX?\`@``C01`P>`"`T<0BW`XZ2W^__\/ -XMA0W___^+A>C;__^)!"3H>N7^_X7`#X49____C8WT^___N@$```")^#'VZ&KX -XM__^%P`^$'O___^GX_O__C;8`````C;PG`````%4QR8GE@^PHB77\BW4(B5WX -XMBUX<#[936(G0@^#]J$"(0UAT)HM#4(/BO8A36(7`="7'1"0$@`$``(M#3(D$ -XM).A`Y_[_,Q\!``` -XMBW4(QT0D"`````#'1"0$*P```(DT).A)F/__A'^__^058GE4X/L%(M=".BUX?[_QP``````BT44B40D"(M% -XM$(E$)`2+10R)!"3HAN'^_XD#Z(_A_O^Z`0```(L`A'^_\<``````(M%%(E$)`B+11")1"0$BT4,B00DZ/;?_O^)`^@?X?[_ -XMN@$```"+"(7)=0B#Q!2)T%M=P^@'X?[_@S@B=`Z#Q!0QTEN)T%W#C70F`(,[ -XM_[H"````=>B#Q!2)T%M=PXVT)@````"-O"<`````58GE@^P8B77\BW40B5WX -XMC48!B00DZ"KC_O^%P'0EB<.+10R)="0(B1PDB40D!.A!X_[_Q@0S`(G8BW7\ -XMBUWXB>Q=PXM%"#';QT0D"`````#'1"0$!0```(D$).APC/__Z]6-M"8````` -XMC;PG`````%6)Y5.#[!2+70C'1"0$+P```(D<).@ZW_[_A7UW# -XMBT7LAQT*0^V`SP@=.8\"73BB0^#Q"PQP%M>7UW# -XMC;8`````@\0L,6#[!B+ -XM112)7?2+70R)??R+?1")=?B%P'54/0`!``"+%W)8A=N--`)T78D<)(ET)`3H -XMS-S^_XG#A=MT5XL'B?+'1"0$`````"G"`=B)5"0(B00DZ*K>_O^)-XG8BW7X -XMBUWTBWW\B>Q=PY"-="8`BQ53@^PDBT44BUT(@_@"=&Z#^`-T287`=27'1"0(`````,=$)`0% -XM````B1PDZ&V*__^#Q"1;7<.-M"8`````BTL)___I-?___^A1V_[_C47XB40D -XM!(D<).A^5___A<`/A1G___^+1?B%P`^$>?___XE$)`S'1"0(`+((",=$)`0# -XM````B1PDZ%^)___I[?[__XM5##'`A=)T!8M5#(L"QT0D"`0```")1"0$B1PD -XMZ%A4`0#IQO[__XUV`%6)Y5=64X/L#(L]P,P("(E%\(E5[(7_=$( -XM1>NXP,P("#A5ZWT6ZS*)]HM[&(7_="D/MA>-0Q@X5>M\'CA5ZXG#=>>+3>R+ -XM=?#\.Q`/MC>-1MP\.`^&)@$``(M# -XM%(7`#X01`0``BTL0#[8QB?`/OM"%TGA#.17\(`D(?R_K.8M#%(U1`8E3$(/H -XM`87`B4,4#X3A````#[8RB=&)\`^^T(72>!0[%?P@"0A]#*$((0D(]D20-@)U -XMQX/Z?P^'R@```/8$E=T4"0@$#X2\````BTT(BS&%]G47QP$!````BU7=='I)/___X-K%`&ZT)D%"(E+$(`Y+W0%NC"5!0B+3=R+ -XM04R+3=B)`8M-W(M!4(M-V(E!!(N#@````"4````!@_@!&<`PP`5P`0``B40D -XM&(U%[(E$)!2+0Q2)1"00BT,0B4PD"(E,)`2)1"0,BT7Q0!#X:R````BU,0#[Y"`8/X?P^'H@```/8$A=T4 -XM"0@$#X24````Q@(KZ7?]__^+50C'`@$```"!BX````````0`@WL4`0^$,@,` -XM`,=$)`P#````BU78B50D"(M#$`^^0`&)1"0$BTWS'`@$` -XM``"!BX````````0`QT0D#`H```")1"0(BT,0B40D!(U%\(D$).CN]O__@_@! -XM#X6L````BT7PBU78B0+'0@0`````BU7LB=`K0Q`I0Q2)4Q#I?_S__[K0F04( -XMZ=O]__^#^G\/AZ0```#V!)7=%`D(!`^$E@```(#Y+0^$'0$``#'_@/E>#X02 -XM`0``C47LC57PQT0D#`H```")1"0(B70D!(D4).AP]O__@_@!=3*#?>``#XR@ -XM````D`^.L````(M5\(72D(UT)@!^$+C___]_*T7@.=`/@Y0```"X`@```(E$ -XM)`S'1"0(`P```,=$)`0`````BTW`%%X(-#$`&-1_^)0Q3I(OS__XM5\(72>1"X````@"M%X#G" -XM#XT!`0``A?]T1HM%\/?8BU7L`47@B=`K0Q`I0Q2)4Q#I[/O___8$E=T4"0@$ -XM=(WIVO[__X-K%`&_`0```(U&`8G&B4,0Z=C^__^-M@````"+1?#KNK@!```` -XMZX&+3=B+1>"+$??8.=`/A@_\___'1"0(C+((",=$)`0#````BT7" -XM__^+50S'`@$```#I\?O__X/$/+@!````6UY?7<.+>Q`/MC?'!"0*L0@(B?(/ -XMOL*)1"0$Z"75_O^%P`^$FOK__\=$)`P!````QT0D"`$```#'1"0$`````(M- -XMW(D,).CF]___BT4,QP`!````,<#ID/O__X-#$`*#:Q0"Z67Z__^X`P```.EF -XM_O__QT0D#`(```#'1"0(`P```,=$)`0`````BT7575KX"````4X/L+(M=#(M%$(M]",<``````,=#8``` -XM``"+0Q2%P'1_BTL0#[81C4+W/#(/AJ0```"+11"-3>B)VHE$)`2-1?")!"2) -XM^.@K^?__A<`/A4<"``"+11"+`(7`=6J+1?"%P'0]A?8/A#D"``"+0V"#^`$/ -XMA)H!``"#^`(/A'(!```Q]H7`=92+1>B+5>S'0V`!````B4-DBT,4B5-HAG<_O__]H.#````!`^%>____XM7'(72#X01 -XM`0``A?8/A$8!``"-0VR)1"0$B3PDZ$E.__^%P`^%)0$``#'`@WML`,=#<``` -XM``#'0V@`````#Y7`,?:#0Q`!@VL4`8E#9,=#8`(```#I=?[__Y"+0V"#^`%T -XM?8/X`@^$D@```(7`#X5M____C;0F`````.BOT?[_BU-LBT-PB5-DB4-HBT=, -XMB4-LBT=0QT-@`@```(E#<`^V$>DU____BU-L,?:+0W")4V2)0VB+1>B+5>R) -XM0VR)4W#I"?[__XM%Z#'VBU7LQT-@`@```(E#;(E3<.GO_?__BT-DO@$```") -XM1TR+0VB)1U"#0Q`!@VL4`>G1_?__BT-LO@$```")1TR+0W")1U"#0Q`!@VL4 -XM`>FS_?__QT0D#`$```#'1"0(`0```(D\),=$)`0`````Z)_T__^+11#'``$` -XM``"#Q"PQP%M>7UW#N`$```#I)/[__\=$)`P!````QT0D"`````#KP8M#8(/X -XM`71<@_@"=$N%P)`/A>G]__^+1TR)0V2+1U#'0V`!````B4-H,<#IXOW__\=$ -XM)`BXL@@(QT0D!`,```")/"3HR'[__XM%$,<``0```#'`Z;K]__^+4VR+0W") -XM4V2)0VB+1TR)0VR+1U#'0V`"````B4-PZ8C]__^-="8`58GE5U93@>R,```` -XMBT4(BU4(BTT(BT`0@\%,B464BY*8````B560BUA\B4V$BT,(A%"+1:`[!?P@"0A]1:$((0D(BU6@]D20 -XM-@)T-KX!````BTL4@T,0`8/I`87)B4L4=#&+0Q`/M@`/OM`\"HE5H'6YBTV4 -XM@X$(`0```8-##`'KSX7)=`J#?:`Z#X0[`0``BTL4A0`````Z?$%``"0BTL4@^D!A2)3"0(B5PD!(DT).C)^?__A<`/A5H%``"+5>2%T@^%D0X` -XM`(M#%(7`=$*+>Q`/MA!0[!?P@"0A]#*$((0D(]D2P-@)U -XM"8#Z.@^%Y@,``(U'`8E#$(M#%(/H`87`B4,4=;['0R!0T`@(BW60BT8H"8.` -XM````BT-@A`P`` -XMQT6L`0```.G2`P``H0@A"0B+?:#V1+@V`@^$UOW__XM+%(U"`8E#$(/I`87) -XMB4L4#X0__/__B<(/O@"%P(E%H`^(K_W__SL%_"`)"'R^Z:+]__^)]HM#%(/H -XM`87`B4,4#X2Z`0``BU,0C4(!B4,0@'H!"G7@@8N```````"``(-#$`&#:Q0! -XMBTV4BUE\Z=#Z__^+182+50B)1"0$B10DZ!%'__^%P`^%X@(``(M-",=!4``` -XM``"+@X`````E__^__XF#@````.G#^O__BU9(BT9,B580C0P"B10DB40D"(E, -XM)`3H@<_^_XM&3(E&%(M'"(M5"(E"3(E&1(/``8E'"`^V1E"H#`^$>_S__XM% -XM"(&(K`0``````@"+592+6GR+2Q2%R0^%./K__^EI_/__C;8`````BW,4A?:) -XM\0^$>P(``(M]C`^V%X#Z(0^$EA0```^^\H7V>!0Y-?P@"0A^#*$((0D(]D2P -XM-@)U38#Z*P^$G!0``(MS%,=%G`````#'19@`````QT6P`````.E<_O__#[X7 -XMA=(/B.$1```[%?P@"0@/C=41``"A""$)"/9$D#8"#X3%$0``BWL0C4'_B4,4 -XMB<&#QP&%P(E[$'7$,?:+>Q")\,=%K`````#'19@`````QT6<`````,=%L``` -XM``#IZ`$``(M3(.DE_?__@:.`````___^_^GR_/__BTT(B[F0`@``A?\/E<#I -XMQ_S__XM#$(`X"@^$2?[__XMUE(M>?.DK^?__BT4(]H"L!````@^%-OK__XN3 -XM@````/;&"`^$I?O__^DB^O__@/I\#X0D_/__@/H*#X0;_/__BT6@QP0D5;$( -XM"(E$)`3HN-2KN`^1\/ -XMABP4```Q]HM5J(GXZ.'M__^%P(E#(`^$0QP``(M3(('Z.-,("(G1#X2.&P`` -XMA?8/A#$6```/MT$(]L0!#X4K%@``@?E0T`@(#X06%@``@?F8T`@(#X0*%@`` -XM#[8/#[[1A=)X%#L5_"`)"'T,H0@A"0B+E)`T"```B!?I_1L``(UV`(M#2(D$ -XM).BIS?[_BQ.%TG0&BT,$B4($BT,$B1")'"3HD,W^_XM>?#E=P`^%7@H``,=# -XM%`````"+50C'1"0$`@```(D4).CV-/__A7UW#BWV,,<#'19P`````QT6L`````,=%F`````#'1;`````` -XMA<`/A'0@``")^.L\B?*`^A9T9(-]H`H/A,4```"#?:!\#X2[````#[9-H(@/ -XMBT,0@VL4`8M3%(/``8E#$(72#X2\````@\Q0!=I:+0Q`/OD`!@_@* -XMB47D=6J+=92#A@@!```!@T,,`8-%G`&#:Q0!@T,0`8M%Y(E%H.EV____BU4( -XMBT(0@+A2!P``_P^%3____XM-H(D4)(E,)`3HY#7__X/X$G2?@WV@"@^%.___ -XM_XGR@/H*#X1#$```@VL4`8MS%.L-@_A\#X4H____ZYDQ]HM#$(M3&(ES'(/` -XM`8E#&"G0B5,0*T6<@^@!@7L@H-$("(E#%`^$L0X``(N#@````(G"@^(/@_H" -XM#X0<#@``#X?`````@^H!#X7-````BU-@A=*)]@^%=!````T```@`J"#'0V`! -XM````B8.`````#X5V&P``BU4(BT),B4-DBTT(@7L@P,P("(M!4(E#:`^%GP`` -XM`,=#8`(```"+50B+0DR#P`&)0V2+30CV@4`#```!BU%,#X4V$```BW4(BX8X -XM`P```=")0VR+?0B+1U")0W")0VB-1?")1"0$B3PDZ/)!__^%P`^%!0<``(M% -XM\(7`=$$[1TQV/#M#;',WB4-LZS*-="8`@_H$#X3F`@``@_H(C70F``^$7@,` -XM`(MS8(7V#X6E!@``@7L@P,P("`^$8?___XM#(,=#7`````"+>`P/MC>)\(3` -XM#X26&@``BTL4B?*`^B$/A'$$``"%R71GBT,0#[X0A=(/B,4#```Y%?P@"0@/ -XMCKD#``"A""$)"/9$D#8"=2SIJ`,```^^$H72#XB:`P``.Q7\(`D(#XV.`P`` -XMH0@A"0CV1)`V`@^$?@,``(M3$(U!_XE#%(G!@\(!A<")4Q!UQ,=$)`2WL0@( -XMB3PDZ)/)_O^%P`^%[04``(M#8(/X`0^$P`0``(/X`@^$,@L``(M-"(N#@``` -XM`(N1K`0``/;"`@^%?P,``/;$0`^%=@,``*D```0`#X59#0``@^(!C78`=`>+ -XM10B#0"P!BU4(BTH((``"+ -XM30CV@:X$```"#X72"```]H$8`0```0^%P1<``(MU"(N&$`$``(7`#Y7`A,`/ -XMA*\(``#V@X````!`#X2B"```N@`0``#IG`@``,=#8`$```"+1TR#P`&)0V2+ -XM1U")0VCIWO7__XM38(72#X6%````#0``"`")@X````#'0V`"````BW4(BT8< -XMA<`/A+$3``"+?0B-0VR)1"0$B3PDZ*0^__^%P`^%MP,``/:#@````"`/A)$1 -XM``"+0VR%P`^%AA$``(.+@````!#'0V0`````@XN`````!,=#<`````#'0V@` -XM````Z:W\__^+4V"%T@^$HOS__X/J`0^%F?S__XM39(M#:,=#8`(```")4VR) -XM0W#I@?S__XMS%(M]C(7VB?`/A'$2``")^<=%G`````#K+(#Z"@^$UO?__P^V -XM1:"(`8M[$(-K%`&+Q"%]HGP#X0`^O__@\$!#[87#[["@/IL!```Z3'[__\/ML#_)(5(M@@(9H-+?""#:Q0!@T,0 -XM`8MS%(7VB?$/A.?^__^+0Q`/M@`\+@^$XPT```^/*P@``#PK#X3?#0``/"V) -XM]G3$B?'IOO[__SPCD(UT)@!U\(&C@````/___O]F@4M\``*+39"!22@``@`` -XM@VL4`8-#$`&+O$B4PD#(M-"(M#$(E<)`2)#"2)1"0(Z"XN``"%P'55 -XM#[9'`8U7`3Q.#X0T^O__#[[`@^@PB47D@'H!;P^$4`L``(MUD(M6)#G0#X03 -XM^O__BT,@BW4(BT`0QT0D"+JQ"`C'1"0$`P```(DT)(E$)`SH]6S__XM['(7_ -XM#X6C````BW,4A?9U+XUV`.F"````@/H6=%>#_@J-=@`/A!H/``"#_GP/A!$/ -XM``"+0Q2#Z`&%P(E#%'14BT,0#[80@\`!]H."`````HE#$`^^\G7!B?`\_P^$ -XM7`8``(M]"`^VP(M7$("\`E,'```2=:F+0Q2#^`%VH8/H`8E#%(M#%(-#$`&# -XMZ`&%P(E#%'6LBTL?(V&@````(E%P#G##X2B]?__]D-0 -XM#P^$<_7__XM3/(U[/#GZ=2?I6?7__XM"!(E!!(M"!#G'="J)"(D4).CVPO[_ -XMBU,\.=2%T@^%;O[__XM%Z(7`#X3& -XM%0``BT74A<`/A<R)!"3H!]W__X/X`0^%VQ0``(M-[(7)#X02$0``BT7@*T,0*4,4BT7@ -XMB4,0@#]A#X35$0``BT7LB4-89H-+?`2+2Q3I?_O__XM#$`^V,(GR@/HK#X0K -XM"0``@/HM#X0B"0``@/I>#X09"0``@/HCB?8/A`X)``")\0^^P8/X?W<.]@2% -XMW10)"`0/A>+Z__^#:Q0!B?"#0Q`!9H-+?`&+2Q2(0U'I'_O__XM[$(E]R(E] -XMX(M#%(7`#X3R````@\(7V>!@[-?P@"0A]$*$((0D(]D2P -XM-@(/A;L```"+5<2)^(A"_X-K%`�Q`!@T7$`8M#%(7`#X2J````BT7$B47( -XM@^@!B47,BT,0]H."`````@^V.(GZ#[[R=:")\#S_#X2'"```BTT(#[;`BU$0 -XM@+P"4P<``!)UB(M#%(/X`7:`BU,0@^@!B4,4C4(!B4,0#[9"`8M-Q(A!_^N) -XM,<"!>R#8S`@(B4PD#(M-"`^4P(E$)!"+0Q")7"0$B0PDB40D".AB,P``A<`/ -XMA#/V___I0/S__Y"-="8`@T,0`8-K%`&+=`I1Q")?8P/O@>% -XMP(E%H`^(W`D``#D%_"`)"`^.T`D``*$((0D(BU6@]D20-@)U,NF\"0``#[X" -XMA<")1:`/B*L)```[!?P@"0@/C9\)``"A""$)"(MUH/9$L#8"#X2,"0``BU,0 -XMC4'_B4,4B<&#P@&%P(E3$'6^Z5K[__^%TG0KBWT(BT=,QT78`````(E4)!") -XM7"0$B474C474B40D#(E$)`B)/"3H)9\``(M%F(7`=%GV@X(````"#X1.`P`` -XMBT68BU6P@'P0_Q8/E,"$P'01BU,8C4+_B4,8QD+_%H-#'`&+39@I2Q@!2QR+ -XM0QB+=;")3"0(B00DB70D!.B3OO[_@8N```````!``(M#&(E#$(M#'(E#%(M] -XM"(N7K`0``/;&'G5BBT64BUA\Z5WI__^+0VR%P`^%/?G__XN#@````*@0#X5L -XM^?__BWT(]H>L!````74+J0````(/A57Y___'1"0,`0```,=$)`@$````BT,@ -XMB40D!(M%"(D$).C.W/__Z73Z__^+30B+01"+6'R%VW15,?\Q]H![4`AV!>@! -XMN?[_#[9#4/\DA62W"`B%_W4@BWT(QT0D"*RS"`C'1"0$`P```(D\)+\!```` -XMZ!YG__^+&X7;=<`)]P^%R?K__XM-"(N1K`0``(#F%@^$9>___^G,ZO__A?9U -XMUXM%"&:^`0#'1"0(Y+,(",=$)`0#````B00DZ-9F__^+&X7;#X5T____Z[*+ -XM30B+D:P$``#VP@%U"ZD````"#X7.\___QT0D#`$```"+=0C'1"0(!````(M# -XM((DT)(E$)`3H[]O__^F5^?__BU-@A=(/A1[V__\-```(`,=#8`(```")@X`` -XM``"+30B+44R#^@$/A,X$``")4VR)4V2+?0B+1U")0W")0VCIB/+__P^V%X#Z -XM*P^%Z^W__^F"`@``BU4(BT(0@+A2!P``_P^%3?G__XET)`2)%"3HYR;__X/X -XM$@^%./G__^F*^?__A<"-M"8`````=1?I/_'__X/H`8VV``````^$,/'__X/" -XM`8`Z7(UT)@!UY<8"%NO@BWT(B40D!(D\).@:,___A<`/A"4/``"+EZP$``"+ -XM@X````#ISO+__SP]#X2_!0``/%X/A=/W__]F@TM\`NF2]___/&R0C70F``^$ -XMOP4``#QP#X6T]___9H%+?``0BT60@4@H`!```.G)]___BWT(BT=,B474BT=0 -XMB478C474@:.`````___[_\=$)`P!````B40D",=$)`0G````B3PDZ+55__^% -XMP`^%./C__XN7K`0``.E<\O__B10DZ)IB___I'//__XM-"(E$)`2)#"3H5C+_ -XM_X7`#X2U!P``BT9$BWT(B4=,Z63H__^)%"3HZ$;__^E#\O__BTV8BW6P#[9$ -XM,?\\_P^$"P,``(M]"`^VP(M7$("\`E,'```2#Y3`Z93\__^!BX```````(`` -XMZ:[O__^+4VR+=0B%THG0BTY,=06X`0```#G!#X1<]?__A=)U`K(!BWT(B?B) -XM5TR#P%#'1U``````B40D"(E4)`2)/"3H--C__^DO]?__BU-DBT4(A=*+2$R) -XMT'4%N`$````YP0^$$_7__X72=0*R`8M-"(G(B5%,@\!0QT%0`````(E$)`B) -XM5"0$B0PDZ.O7___IYO3__X/Z`@^%3O#__XM3;(M#<,=#8`$```")4V2)0VCI -XM-O#__XN!.`,``(T$0,'@`@-!$(M`..F\[___@VL4`8MS%(U'`6:!2WP``8E# -XM$(7VB?&)0Q@/A,GK__\/MA")Q^E`Z___BT,4@\!Z+1:`[!?P@"0A]$Z$((0D(BU6@ -XM]D20-@(/A5`#```/MDV@B`Z+0Q"#:Q0!BU,4@\`!B4,0A=(/A#(#``"#Q@$/ -XMM@`/OM")5:#V@X(````"=:0/MD6@//\/A#H"``"+30@/ML"+41"`O`)3!P`` -XM$G6)BT,4@_@!=HP!@^@!BU,0B4,4C4(!B4,0#[Y2`8E5H.N*N`$```#3 -XMX*D#B@(`#X5%!0``A<`/B;KK__^+%7#."`B)^8E5X`^V!SH"=1"#P0&#P@&) -XM5>`/M@$Z`G3P/&QT&SQP=!<\*W03/"UT#SQ>C78`=`@\(P^%>>O__XM#$#'V -XMB4L0*<@!0Q2A<,X("(E#)*%TS@@(B4,HH7C."`B)0RRA?,X("(E#,*&`S@@( -XMQT,P>;$("(E#-*&$S@@(B4,XC4,DB4,@Z4'K__^+0Q"`.`0/A(SF__^`YG^) -XMDX````#I?N;__ZD````"=0V!>R#`S`@(#X6G[___BWT(BU64QT0D!`$```") -XM/"3_DGP(``#IB^___X`_*P^%E/+__SPKB?8/A/+V__\\+0^%@O+__V:#2WP( -XMZ?#V__^+?9"+5R2%T@^$P^[__^FC]/__BU4(BT(0@+A2!P``_P^%I/G__\=$ -XM)`3_____B10DZ'(B__^#^!(/A8OY___I=?G__XUT)@"H(`^$*OO__XU%\(E$ -XM)`2)#"3H:2___X7`#X5\]/__BWWPA?\/A9L*``"#BX`````0QT-L`````,=# -XM9`````#I]/K__\=$)`0Q````B3PDZ+"S_O^%P`^%U/'__^G5]O__BT,4A<`/ -XMA`7N__^-="8`Z0'T__^+50B+0A"`N%('``#_#X4!]___B70D!(D4).C,(?__ -XM@_@2#X7L]O__Z5_W__^+50B+0A"`N%('``#_#X5/_?__BTV@B10DB4PD!.B< -XM(?__@_@2#X4W_?__Z:G]__\Q]HM3(`^W0@CVQ`)T+XM5"/:"9`,```$/A)<# -XM``"+@EP#``"-!$#!X`(#0A"+0#B%P`^5P(3`#X71"@``@?DXS0@(#X0O!0`` -XM@?EHS0@(#X1N!@``@?GPS`@(#X2"!@``@?F0SP@(#X1F!@``@?E0T`@(#X0T -XM!P``@:.`````_____>DOY?__@VL4`8/``6:!2WP``8M+%(E#$.D5\?__,?;I -XMO^+__XM#$(G&*?Z)=9B+0`````BW,4A?8/A'P```"+0Q`/O@"%P(E%H`^(E3`0``C78`#[X`A<")1:`/ -XMB$(!```[!?P@"0@/C38!``"A""$)"(M-H/9$B#8"#X0C`0``QT7D`0```(M# -XM$(-K%`&+"+0Q2%P'4FZ9T```")\H#Z%G1,B?"(!X-K -XM%`&#QP&+0Q2#0Q`!A<`/A'P```"+0Q`/MC")\`^^P(E%H/:#@@````)UR`^V -XM1:`\_W0RBTT(#[;`BU$0@+P"4P<``!)UM(M#%(/X`7:LBU,0@^@!B4,4C4(! -XMB4,0#[9"`8@'ZYF+50B+0A"`N%('``#_=8:+3:")%"2)3"0$Z"T?__^#^!(/ -XMA6[____KN(GVBT7@BU4(B5PD!"G'B7PD#(E$)`B)%"3HA"$``(7`#X0EZ___ -XMZ3+Q__^-M"8`````A?:)\`^$[O[__X-]H"&)]@^%XO[__X%[(/C0"`AT"XM] -XMY(7_#X3._O__A?8/A"\(``"+>Q`/MA>`^@IU$8UV`.F.Y?__@#\*#X0T!0`` -XMBWL0@^@!B4,4@\Q!UY,=%G`````#IM^?__XUV`(-[%`$/AD;Q___' -XM0QP!````Z5/Q__\/OM*%TG@4.Q7\(`D(?0RA""$)"(N4D#0$``"^`0```(@7 -XMZ5CF__^)T/?8.4%,#X>TZ___QT0D"&2S"`C'1"0$`P```(D,).A.7?__Z53P -XM__^+182+50B)1"0$B10DZ"3__P^V!SP\#X7V^O__#[[`B46@BTL4A -XM``"%P`^%UNW__XM+(.E:^O__#[8/@/EK#X1]`0``@/ES#X2N`@``A?8/A>'C -XM__^+10B%P)`/A#("``"+50B+P_O^+=;R+?0C'1"0,?[$(",=$)`0#````B70D"(D\).@Q7___ -XMBWT(BT<0AQ"+0Q3'19P`````Z:7C__^`/S`/A.7N -XM__^+?0C'1"0(G;$(",=$)`0#````B3PDZ'U9___I@^S__XN!$`$``(T$0,'@ -XM`@-!$(M`.(7`#Y7`Z3'H__^+30C'1"0$_____XD,).@Y%?__Z;SI__]F@TM\ -XM$.E2[O__@WVH`HVV``````^%?/[__X-K$`&Y>,\("(-#%`''0R!XSP@(Z1SB -XM__^+39#'02@`$```Z;WX__^+2Q3I`>K__XMU"(U%\(E$)`2)-"3HV";__X7` -XM#X7KZ___BT7PAR)0VSI%^[__XM]"(M'3(E#9.DWY/__N@H```")QL=%G`````#I1>#_ -XM_XL"QT0D".RR"`C'1"0$`P```(D\)(E$)`SH;5C__^ESZ___BT6HQT7<```` -XM`,=%O`````"#P`$/A>L"``"+5:B+1;S&!!``B50D"(E\)`2)!"3HV*[^_XMU -XM"(M-O,=$)`Q_L0@(QT0D!`,```")-"2)3"0(Z")=__^%]@^%Z?W__^GZ_?__ -XMD(UT)@"#?:@!="B+1:@QTH/H`8E%B`^V1#H!/&-T##QG=`@\<@^%+/W__X/" -XM`3M5B'7CBT,0@\`!*T6HB4,0BT,4@^@!`T6HB4,4H7#1"`B)0R2A=-$("(E# -XM**%XT0@(QT,H4-T&"(E#+*%\T0@(B4,PH8#1"`B)0S2AA-$("(E#.(U#)(E# -XM(.ERX/__BU,4C4$!B4,0@^H!A=*)4Q3'1:0"````#X3E````BTL0#[8!/%QT -XM+P^^P#G'#Y3`#[;`*46D@VL4`8MS%(-#$`&%]HGR#X0%^/__BTVDA(E$)`B+1G2) -XM1"0$BT4(B00DZ-7*__^%P`^$..G__XE&=.FU^___BW4(QT0D#`$```#'1"0( -XM`@```,=$)`0`````B30DZ&++___I".G__XM3$(E5C.D"^___@:!4"```__[_ -XM_^GNZ/__BW4(B40D#,=$)`@#````QT0D!`````")-"3H),O__^G*Z/__BWL0 -XMQT6<`````.FTW___QT0D"`@```"+50B+`8D4)(E$)`3HMR`!`.F=Z/__QT0D -XM#!BS"`B+=0B+0Q#'1"0$`P```(DT)(E$)`CH@%K__^EVZ/__BW,4Z7_@__^+ -XM30B)1"0,C47575E.#[!R+10B)1?"+,(M^$(DT).C$'@$`A4"```BQ.%TG0&BT,$B4($BT,$ -XMB1"+0PR)!"3HM:O^_XD<).BMJ_[_BU]LA=MUM_:'5`@``!`/A9,"``"-5GB[ -XM(`H``(V'D````(E5[(E%Z.FH`0``BX8T`0``BU80C01`BTR".(7)#Y7`A,!T -XM`X/+0/:&[`(```$/A.,!``"+AN0"``"-!$"+1((XA<`/E<"$P'0&@'D````-+4"`C'AY0````!````QX<``0```(`` -XM`(DT).C:U/__A,`````8N&K`0` -XM`*D````"=!&I```$`'1W@::L!```_____8DT).C.@@``]H8\`0```0^%)?[_ -XM_XN&-`$``(M6$(7`#Y7`Z2?^___'1"0$)KH("(DT).CN@@``B30DZ):"``#K -XMF8UT)@"+AN0"``"%P`^5P.D?_O__BT((B8>0````BT(0B8>4````Z;W^___' -XM1"0(`````(M&3(DT)(E$)`3HLDG__^EM____@>(`!```B50D",=$)`0````` -XMB30DZ-/\_O^%P'0U@\0'C`````$```#'AX@```#(L0@( -XMZ53]__^+5?`QP(DR@\0<6UY?7<.)-"3H(I+__XM5\(D"B74(@\0<6UY?7>F> -XMDO__D)"0D)"0D)"0D)"0D)!5B>564X/L$(M%#(MU"(M`=(L8BT80]H!4"``` -XM`70CQT0D#`````"+0PB)1"0(BP.)-"2)1"0$Z%2G__\QTH7`="/'1"0,B+<( -XM"(L#QT0D!`,```")-"2)1"0(Z%!6__^Z`0```(/$$(G06UY=PXGV58GE5U93 -XM@^P\BT4,BU!XA=)U+\=$)`@`````QT0D!`````"+10B)!"3HHJ+__S'2A<`/ -XMA&L!``"#Q#R)T%M>7UW#@_H"=`7HF*+^_XM`=(E%X(L`BSB)?>B+0`B)1>0/ -XMMDP'_P^VT3L5_"`)"`^-_0```*$((0D(]T20-``%```/A.H```"+1>@/M@B$ -XMR70NBQW\(`D(B@/ML`YV'T+]D2&-@(/A80!```/MD(!@\(! -XMA,!UXX-]Y`(/A@(!``"+=>2#[@(/A/8```"+/?P@"0BA""$)"(M5Z(E]W(E% -XM[.L2C;8`````@\(!@^X!#X3.````#[;!.T7S&1?,!]T2#-``%``!U -XM!X#Y7P^41?,/MDH!#[;!.47R[`0```/=$AS0`!0``=0R-M@````"` -XM^5\/E,,Z7?-TI<=$)`@PN`@(QT0D!`,```"+10B)!"3HRD___[H!````Z"+4P3'1"0@"````,=$)!P`````BT((B40D&(L"B40D%(M]Y(E\)!"+ -XM1>C'1"0(`````,=$)`0`````B40D#(M5"(D4).AJI?__N@$```"%P`^%%?[_ -XM_XM="##2BT,0@XA4"````>D!_O__QT0D"/RW"`C'1"0$`P```(M="(D<).C> -XM3O__N@$```#IW/W__Y"0D)!5B>575E.#[#R)1=R)5=B+5=R+0!")1>"+0AR% -XMP`^$L`,``(M%V(M5W(MX9(U!_X/X`8EZ3`^&>`$``(/I`0^$?@$``(M-V(MQ -XM'(7V=&N+41B)TX`["@^$Y`$``(/#`8/N`77OBT7<]H"N!````@^$ZP$``(G8 -XM*="#^`$/A.`"`T$0 -XMBW`XA?8/E<"$P+H0$!``=06Z`!`0`(M-W/:!/`$```$/A=0!``"+1=R+@#0! -XM``"%P`^5P(3`=`.#RD"-=>R)=>R)=?")5"0,QT0D"`````")="0$BU7DR0C70F``^$E0```#'` -XM@\0\6UY?7<,YTP^%'/[__X7V#X04_O__@^X!=#^#PP&)VNGT_?__B=@IT.D9 -XM_O__@#HN#X40_O__A?8/A#K^__^#[@&-="8`#X0M_O__BU78C4,!B4(8Z1_^ -XM___'1"00`````,=$)`Q/C0@(B7PD",=$)`0!````BTWGH_?__QT0D!`$```")%"3H11G__X7`#X13____BTW<,<#'04P! -XM````@\0\6UY?7<.+@30!``"-!$#!X`(#01"+2#B%R0^5P.D>_O__BT7$P/A17____'1"0$`0```(D$).CO&/__A<`/A/W^__^+5=PQP,="3`$```#I -XM[O[__\=$)`0!````BT7P``Z3S___^-M@````!5N0(` -XM``")Y8M%"(M5#%WIG/O__XVV`````(V_`````%6Y`0```(GEBT4(BU4,7>E\ -XM^___C;8`````C;\`````53')B>6+10B+50Q=Z5_[__^0D)"0D)"0D)"0D)"0 -XMD)!5N`(```")Y5=64X/L'(M=#(M]"(7;=`:+0WB#P`''1"0$!````(D$).CF -XMGO[_A<`/A)$```"%VXE%\'1-BTMTBW7PBP&+4`B%TG1JB) -XMUH/&!,<&`````(M%\(/$'%M>7UW#QT0D"`````#'1"0$!0```(D\).A!2?__ -XMQT7P`````.O4D(VT)@````!5B>575E.#["R+?0B+7R2%VP^$1`$``(L#A<`/ -XMA"`!``#'1>@!````QT7L`````,=%\`````#IGP```)"-="8`@WWH`70:QT0D -XM!-+4"`B)/"3H6GD``(M/*,=%\`$````YRP^$R````(L3N4^-"`B)R(E$)!") -XM5"0,B4PD",=$)`2RN`@(B3PDZ+-Y``"+1Q#V@%0(```$#X6D````QT0D#`$` -XM``#'1"0(`````,=$)`0`````B3PDZ*,,__^%P'4,BT<0]H!4"```!'5T@\,$ -XMBP.%P'1K@T7H`8D$).@2H/[_BT\H,=(YV0^4P@-%\(TT4`%U[(M'.(/H`3E% -XM[`^"//___\=$)`0FN@@(B3PDZ)QX``"+3RB)=>S'1?``````.```@\0L,56 -XM4X/L$(M="(MU#(M#)(7`#X2(````QT0D"!$````/MT9\B1PD)0`!``")1"0$ -XMZ&KQ_O^%P'0,@\00N`$```!;7EW#BT,DB4,HBP")'"2)1"0$Z%;T_O^%P(G" -XM=-H/MT9\QT0D"`````")5"0$B1PD)0`!``"#^`$9P(/@_(/`)(E$)`SHI/7^ -XM_X7`=:J!BZP$````"``$@\006UY=PXD<),=$)`CTN`@(QT0D!`,```#H]T;_ -XM_X/$$+@!````6UY=PXUT)@"-O"<`````58GE@^PHB77XBW4(B7W\BWT,B5WT -XMBT8H.T8D#X3>````]H>!`````74VQT0D"!$````/MT=\B30D)0`!``")1"0$ -XMZ(GP_O^%P'15N`$```"+7?2+=?B+??R)[%W#C78`BUC\B1PDZ#F>_O^)7"0( -XMB7PD!(DT)(E$)`SHL0D``(7`=(72=1:+1RB%P`^$GP$` -XM`(M(!(7)#X24`0``BTT,]H&!`````71XA=)T-(U%\(E$)`B)?"0$BT<0B00D -XMZ.Z'__^Z`0```(7`#X2(`0``@\0LB=!;7E]=PXVT)@````"+1RB+6`2)'"3H -XM]IS^_XE<)`B)1"0,BT4,B3PDB40D!.AK"```A<`/A`0!``"#Q"RZ`0```%N) -XMT%Y?7<.-="8`QT0D"!$```"+50P/MT)\B3PD)0`!``")1"0$Z-#N_O^%P'7) -XMBTT,BU%XA=(/A"`"``#VAZT$```@=3*+5R2%TG0KBP*%P'0=B=.-M@````") -XM!"3HO)O^_XM#!(/#!(7`=>Z+5R2)%"3HIYO^_X&GK`0``/^?___'1R@````` -XMQT0D!`0```"+50R+0GB#P`&)!"3H79G^_X7`B<:)1R0/A"8"``"+10R+2'2+ -XM`8M0"(72#X0;`0``B -XM7UV)PHG0PXUT)@")/"3'1"0(U[@(",=$)`0#````Z-A#__^#Q"RZ`0```%N) -XMT%Y?70O__N@$```#IP_S__Y"0D)!5B>57 -XM5E.#[`R+10B+F)@```"+4QR%TG1,BT,@A) -XM%"3HOYC^_\=#'``````QP,=#(`````#'0R0`````@\0,6UY?7<.-M@````"- -XMOP````!5B>575E.#[!R)1>R)5>B+L)@```"+1B2)1?"+3B"%R70,B<*#P@*- -XM0?\YPGQ/BU8((M]\,'G -XM`HG[`UXB#P`$Y0P1S(XL3B4,$ -XMA=)T8HE$)`2)%"3H99+^_X7`B0,/A!$!``"`2PP!BT7P@\`!B2) -XM^P->'(L+A6_O^-=@#KG<=$)`00````QP0D`0```.@^E?[_ -XMA<")`P^$U0```(M&'(M5\(L4D(72#X5$____BU7LQT0D"`````#'1"0$!0`` -XM`(D4).@40/__N`$```#KAL=$)`00````QP0D`0```.CME/[_A<")`P^$I``` -XM`(M&'(M5Y(L4D(72#X5+____ZZV+5>S'1"0(`````,=$)`0%````B10DZ,$_ -XM__^+5AR%T@^%DO[__XM%[(D$).B;_?__Z7?___^+1>S'1"0(`````,=$)`0% -XM````B00DZ(L___^+.X7_#X7*_O__@&,,_L<#`````,=#!`````#I//___XM5 -XM[,=$)`@`````QT0D!`4```")%"3H4#___^D+____BU7LQT0D"`````#'1"0$ -XM!0```(D4).@P/___Z3S___^-="8`C;PG`````%6)Y5=64X/L'(M%"(MU%(N` -XMF````(7VB47D=#:+#?P@"0B+%0@A"0B+?1#K!HUV`(/'`0^^!X7`>#0YR'TP -XM]D2"-@(/A+T!``"#[@&-="8`==Z+5>2+30R+0AR)072+0B2)07B#Q!PQP%M> -XM7UW#A?9TX(E]$,=%\`````#K+8GV/!9T6(7;>!8['?P@"0B)]GT,H0@A"0CV -XM1)@V`G57@T40`8-%\`&#[@%T2HM5$(M-#`^V`O:!@@````(/OMAUP(#[_P^$ -XMN@```(M-"`^VPXM1$("\`E,'```2=:B#_@%VHX-%$`&#[@ `!@T7P`8/N -XM`76VBU7PBT4(Z*#\__^+3>2+422+01R+3?"+!)")2`B+3>2+7?"+01R%VXL$ -XMD(L`B47L#X3!````BT7PB?N+?>R)1>CK(H`[%@^4P(3`=`.#PP$/M@.(!X/' -XM`8-MZ`$/A(D```"#PP&+50SV@H(````"==(/M@,\_W1#BTT(#[;`BU$0@+P" -XM4P<``!(/E,#KNXM5"(M"$("X4@<``/\/A>[^__^)7"0$B10DZ$[^_O^#^!(/ -XMA=G^___I+/___XM5"(M"$("X4@<``/]UAL=$)`3_____B10DZ"'^_O^#^!(/ -XMA6W____I9?___XUV`(M%[(M-\(T$`8E%[(M5[,8"`(M-Y(-!)`&%]@^%&_[_ -XM_^E,_O__A?:)?1#'1?``````#X5:_O__Z=C^__^-=@!5N@$```")Y8/L"(M% -XM"(ET)`2+=0R)'"2+F)@```#'0R0`````Z%;[__^+0QR)1G2+0R2)1GB+'"0Q -XMP(MT)`2)[%W#C;8`````C;PG`````%6)Y8/L&(M%"(EU^(MU%(E]_(M]#(E= -XM](N8F````(GRZ`O[__^+4R2+0QR+!)"+$(M%$(ET)`B)%"2)1"0$Z!&3_O^+ -XM4R2+0QR+!)"+`,8$,`"+4R2+0QR+!)")<`B+0QR#0R0!B4=TBT,DB4=XBUWT -XM,<"+=?B+??R)[%W#C78`58GE5U93@^Q,BWT,B47`BT44B56\BU48B4VXBTT0 -XMBP")1>"+`HM5"(E%\(L)A=*)37UW#BTW`BT$@ -XMBT`(A<")1<@/A&H#``"+7`^''@$``(M#>(MS=(E%\(&+5`@` -XM```!``#I;?___XU-\(E4)`R)3"0(BUW@B5PD!(M%P(D$).@'K?__A<`/A*P! -XM``")P>FJ_/__C4-XB4PD#(E$)`B+0W2)1"0$BT7`B00DZ-NL__^%P`^$@`$` -XM`(E#=.D1_?__@:-4"```__[__XM-S#M+>`^'$`$``(M#>(MS=(E%\(&+5`@` -XM```!``#I8_W__XU-\(E4)`R)3"0(B70D!(M%P(D$).B#K/__A<`/A"@!``") -XMQNDS_O__C5WPB4PD#(E<)`B)="0$BU7`B10DZ%JL__^%P`^$_P```(G&Z93^ -XM__^-0WB)3"0,B40D"(M#=(E$)`2+1<")!"3H+JS__X7`#X33````B4-TZ;3^ -XM__^)1"0,C4-XB40D"(M#=(E$)`2+5<")%"3H`:S__X7`#X2F````B4-TZ;7^ -XM__^!HU0(``#__O__.W-X=V:+0WB+4W2)1?"!BU0(`````0``Z0C]__^-3?") -XM5"0,B4PD"(ET)`2+1<")!"3HL*O__X7`=%F)QNEK_/__C4-XB4PD#(E$)`B+ -XM0W2)1"0$BT7`B00DZ(BK__^%P'0QB4-TZ7UW#QT0D"#RY"`C'1"0$ -XM`P```(D,).AF-O__@\1,N`$```!;7E]=PXU%\(ET)`R)1"0(B50D!(M%P(D$ -XM).C?JO__A*_O^-=@!5B>575E.#[#R+?0B%_W04BU\0A=MT#?:#50@```$/A$P! -XM``#'1>@`````C5WPQT7P`````,=$)`P``@``B5PD",=$)`0`````B3PDZ"^J -XM__^%P`^$D`$``(E%Z(M%&,=%[`````")7"00B40D%(U%Z(E$)`R-1>R)1"0( -XMBT7HB40D!(M5%(GXB10DBTT0BU4,Z!KY__^%P`^%H@```(M%[(7`B47<=&B+ -XM5>B)T0'!.`/@]T````/O@*%P`^(T@```(LU_"`)"#G&#X[$````BQT( -XM(0D(]D2#-@)U(^FR````#[X"A<`/B+`````YQ@^.J````/9$@S8"#X2=```` -XM@\(!.7UW#C70F`(7_=!.+5Q"%TG0,BT)T.T7H#X2O````BT7HB00D -XMZ)*+_O^X`0```(/$/%M>7UW#D(%[>/\!``!V28M#=(E%Z(M#>(E%\(&+5`@` -XM```!``"-7?#IQ?[__SE-X`^$")5"0(BT4,B3PDB40D -XM!.AS]___Z4[___^-0WC'1"0,``(``(E$)`B+0W2)/"2)1"0$Z*"H__^%P'0% -XMB4-TZY"X`0```(GVZ7+___^!HE0(``#__O__,<#I8?___X&B5`@``/_^__^X -XM`0```.E-____C;8`````58GE5U93@^Q,B47(B57$B4W`]H!D`P```0^$D0(` -XM`(G"BX!<`P``C01`P>`"`T(0BT`XA<`/E<"$P`^%A@(``(M%R/:`<`,```$/ -XMA9X"``"+1#'1"0$+P```(M5X(D4).A%AO[_BU7@B57S'1?#_____QT7L_____XE5U(D$).CL -XMA/[_A<`/B-8#``#'1"0$D+X("(M%[(D$).B!A_[_A<")1

7UW# -XMB<*+@&@#``"-!$#!X`(#0A"+0#B)1>#I4OW__\=$)`0!````BT7PB00DZ->! -XM_O^+1>R)!"3H+(7^_XM%\(D$).@AA?[_QP0D`@```.@5A?[_QT0D$`````"+ -XM1=C'1"0(V[D("(E$)`R+5=R)5"0$BT7@B00DZ'R!_O_'1"0,WKD("(M5X,=$ -XM)`0%````B50D"(M%R(D$).A&-?__QP0D?P```.@NAO[_@:-4"```__[__XM5 -XMP(L"`<`[0WAW8(M3=(E5V(M5P(M#>(D"@8M4"`````$``(L"Z9C]__^)5"0, -XMBT7`B40D"(M5V(E4)`2+1*3__X7`#X1*`0``BU7`B478BP+I9OW_ -XM_XD4).C_AO[_B<;I%?W__XE$)`R-0WB)1"0(BT-TB40D!(M%R(D$).@WI/__ -XMA<`/A`D!``")0W3I<____\=$)`C5N0@(QT0D!`4```"+5 -XM7UW#QT0D"%;?"`C'1"0$!0```(M%R(D$).@?+___@\1,N`$```!;7E]=P\=$ -XM)`SSN0@(BT7<,?;'1"0$`P```(E$)`B+5@/A)X! -XM``"+1>B)!"3HKX3^_X/$;(GP6UY?7<.0@7YX_P$```^&CP$``(M&=(E%Z(M& -XM>(E%\(&.5`@````!``#I5/___\=$)`@!````QT0D!#0```")'"3H4#;__X7` -XM="V+1>R+5>B#Z`6#P@6)1>R)1"0,B50D"(M5#(D<)(E4)`3H!N[__XG&Z6+_ -XM___'1"0(`0```,=$)`0U````B1PDZ`)1:2#[P4/ME$%A-(/A,(```"%_W4%_P^$\_[_ -XM_X/O`0^$"P$``(U%[(D$)(U-\(G8C57HZ&/X__^%P`^%6?[__XM%[(E$)`R+ -XM1>B)1"0(Z=/^__^!HE0(``#__O__B?"#Q&Q;7E]=PXU&>,=$)`P``@``B40D -XM"(M&=(D<)(E$)`3H=J#__X7`=`B)1G3I1_[__[X!````D(UT)@#I(/[__X7_ -XM#X1G_O__H?P@"0@Q]HL-""$)"(E%K(E-L.L(BT78#[94!@6+1=B-1#`%B47< -XMBT6D*?"#Z`6)1=0/OL*%P'@:.T6L?16+5;#V1((V`G4>]T2"-``%``!U%)") -XM1"0$BTVHB0PDZ,5]_O^%P'4:@\8!.?=UJ.GU_?__BX-T`P``B46HZ5+^__^+ -XM?=3IY/[__XM-W(`Y*@^%Z?[__\8!`(M%Z(/`!8E%M(N3F````(E5S,=$)`0O -XM````B00DZ.Y]_O^%P(G`0``.46T#X2_`0``Q@``BT6TB00DZ)V"_O^) -XM1<"#Q@&)=>"+5>")%"3HB8+^_XM-M(E%N(D,).@[?O[_A<")1<@/A+T!``"+ -XM5`@ND'3; -XM@\`(B470B00DZ#2"_O^)1;R+?;R)V`-]P(U7`NC=Z/__BT7,BU`DBT`?[_Z>K[__^#P`B)1=")!"3H -XM78'^_SE%N(E%O`^'ZO[__XM-N(MUT(M]X/PYR?.F#X76_O__Z0?___^+1<") -XM1"0(BU6TB30DB50D!.@"@/[_`W7`@WW``799Q@8O@\8!Z0;____'1"0(!;H( -XM"+X!````QT0D!`,```")'"3H+2G__^EK^___QT7``0```,=%M`J@"`CI/_[_ -XM_XM-M,=%P`````#'1;1!\0@(B4W@Z2S^__^+3;2`.2]UG^FK_O__QT0D#)^M -XM"`B+1;2^`0```,=$)`0%````B1PDB40D".C;+?__Z0G[__^0D)"0D)!5B>57 -XM5E.#[!R+?0SV1WP!=`X/ME=1@/I`=`6`^BIU&XM%"&:#N*P$````#XGB`0`` -XMBTT(#[:1J````(M="`^VRH&+K`0```"```"(DZ@````[#?P@"0@/C&4!``") -XMT(M="(MS$(N>0`$``(7;=0_I;`$``(L;A=L/A&(!```Z0Q!U\<=$)`2$```` -XMQP0D`0```.@=??[_A<")1?`/A*4!``"+=?"+1?"#QCR)<#R)<$#'1"0$$``` -XM`,<$)`$```#H[WS^_X7`B<(/A+H!``"+1V2)0@CVAX(````(#X56`0``BT=L -XMB4(,BT7P@$A0`8M-\(M!/(ER!(D".W%`#X1^`0``B5`$BT7PC7L(,?:)4#R+ -XM4PPQP#G7=!B-M@````"+0A"+4@2#P`$!QCG7=?&-!#:)!"3H^GW^_XM5\(7` -XMB4(0#X3_````BU7PB4)(B7),Q@0P`(M;##G?="P!QHGVBT,(BU,0B30DB40D -XM!(E4)`CH[GW^_XGP`T,0Q@`*BUL$C7`!.=]UV(M-"(M=\(M1$(M"?(7`B0-T -XM"8M"?(E8!(M1$(M%\(E"?(M5"(M-\(M"$(/`?(E!!(/$'#'`6UY?7<.A""$) -XM"&:#?(@T``^)BO[__P^VA(@T!```Z7_^__^-!$F`P@&-A$98`0``='J)1"0$ -XMQT0D"`````"+50B)%"3HVO$``+@!````@\0<6UY?7<.)!"3'1"0(!0```,=$ -XM)`0`````Z+7Q``"#Q!RX`0```%M>7UW#B4(,BTWP@$E0`NFH_O__QT0D"``` -XM``#'1"0$!0```(M-"(D,).A>)O__N`$```#KHL=$)`3_````BT4(B00DZ#3B -XM_O_I;O___XE10.E]_O__QT0D"`````#'1"0$!0```(M5"(D4).@<)O__N`$` -XM``#I7?___Y"058GE5U93@^P\BWT,BW4(BT=TBP")1>"+0`B%P`^$K@$``(N> -XMF````(M#&(7`=`B)!"3H[7S^_XM5X(L"B00DZ%!V_O^%P(E#&`^$3`(``/:' -XM@@```"!T+HN&K`0``*D```0`=2&H`@^$^`$``(M5X(L"QT0D!-7:"`B)-"2) -XM1"0(Z+H)`@"+1V"%P`^%L@```(M&'(7`=&CV0%@$=&+VAB0!```!#X3@`0`` -XMBX8<`0``C01`P>`"`T80BT`XA<`/E<"$P`^%(@(``/:&8`0```$/A.8!``"+ -XMAE@$``"-!$#!X`(#1A"+0#B%P`^5P(3`=`[VAJX$```$#X3.`0``D#'2,<#V -XMAJP$```1B50D#`^4P(E$)!"+5>"+`HE\)`2)-"2)1"0(Z/6```#WAJP$```" -XM``0`='TQTH/$/(G06UY?7<.+3AR%R0^$NP$``(./@````$"#?V0!#X2A```` -XM,<")1"08BU7@BP*)?"0$B30DB40D%(U%Z(E$)!"-1VR)1"0,C4=DB40D".B! -XM)P``BU7H]H:L!````HE63`^%I````(M%[/>&K`0```(`!`")1E!U@XDT),=$ -XM)`0EN@@(Z,Q4``"#Q#PQTEN)T%Y?7P<"```BU4(BUT,BT(<]D!8!'0Y]D-] -XM`74SBT(@BT`(@#@O="C'1"0(3+H(",=$)`0#````B10DZ)PB__^!Q!P(``"X -XM`0```%M>7UW#BT-XA<`/A:,```#'!"2_N@@(Z'ER_O^%P(F%\/?__P^$HP$` -XM`(N5\/?__XD4).A-`"`T(0BU`XC7(!ZPB`^SIT"X/&`0^V7O^$VW7PC4;^.<)R:X3;="") -XM\NOF@^@!=$SHB'/^_X!Y`2YUJ`^V00(\+W0$A,!UG,=$)`R?K0@(BX7P]___ -XMQT0D!`4```")1"0(BU4(B10DZ*TF__^X`0```('$'`@``%M>7UW#BT-TBP"+ -XM`(F%\/?__^D4____QD;_`(N%\/?__XV]]/?__XE4)`S'1"0(N90(",=$)`0` -XM"```B40D$(D\).CO=?[_B%[_B3PDZ#1Q_O^%P'0R#[9>_^E-____@<0<"``` -XM,7<.0QX:L`````0```.O*C70F`(M5#(M"%(DT),=$ -XM)`0"````B40D".AFNP``@\0PN`$```!;7EW#BT,575KX!````4X/L'(M]"(N'F````(M8$(7;=#>)]HM# -XM$(E$)!"+0PB)="0(@\8!QT0D!%C4"`B)/"2)1"0,Z"M0``"+&X7;==6#Q!PQ -XMP%M>7UW#B3PDQT0D!$#4"`CH"U```(/$'#'`6UY?7<.058GE4X'L-`@``(F% -XMZ/?__XU%](F5Y/?__XF-X/?__\=%[/_____'1?C_____QT7T_____XD$).B( -XMR)!"3H=7#^_X7`#XCY````Z&AV_O^+E>3W__^#^/^) -XM0A`/A+@!``"%P`^%2P$``,=$)`0`````BT7TC9WL]___B00DZ)5O_O_'1"0$ -XM`0```(M%\(D$).B";_[_QT0D!`(```"+1?")!"3H;V_^_XM%^(D$).C$#W__^)5"00BY7D]___BT((QT0D"*S5"`C'1"0$``@` -XM`(D<)(E$)`SHFG+^_\=$)!``````B5PD#,=$)`C;N0@(QT0D!%Z@"`C'!"19 -XMH`@(Z/)N_O_'1"0,Z;D("(E<)`C'1"0$!0```(N%Z/?__XD$).B\(O__QP0D -XM?P```.BD<_[_QT0D"%;?"`C'1"0$!0```(N%Z/?__XD$).B"'?__BT7T@_C_ -XM=`B)!"3H!G+^_XM%^(/X_W0(B00DZ/9Q_O^+1>R#^/]T"(D$).CF3W__^)0AB!Q#0(```QP%M=P\=$ -XM)`C5N0@(QT0D!`4```"+A>CW__^)!"3HK!S__^DE____C;0F`````%6)Y5.) -XMTX/L)(7;BY"8````='V+0QB%P'0(B00DZ()S_O^+0R"%P'0(B00DZ'-S_O^- -XM1?C'1"0(`````(E$)`2+0Q")!"3H^6S^_XL3A=)T!HM#!(E"!(M#!(D0BT,L -XMA -XM7UW#D(UT)@!5B>57B<=64X/L#(D$).BAB70D"(E$)`2)/"3H)FK^_X7`=>.#Q`R)V%M>7UW#,=N#Q`R) -XMV%M>7UW#D(VT)@````!5B>575HG&4XG3@^PDH``(L5(-@("(72=#4QVXN#*-@("(E4)`S'1"0(!0```,=$)`22U`@( -XMB40D$(DT).A(2@``BY,PV`@(@\,0A=)US3'`@\0<6UY?7<.)T.@J____A<") -XMQW0^BT`(B40D#(L'B30DQT0D!&[4"`B)1"0(Z`=*``"+1PR)-"3'1"0$7ND( -XM"(E$)`CH\$D``(/$'#'`6UY?7<.)7"0(QT0D!/#5"`B)-"3HTDD``+@!```` -XMZY*-="8`C;PG`````%6)Y8M%"(M5$%WI$?___Y!5B>575E.![.P,``"+10B+ -XM71"+@)@```")A33S__^+0!"%P`^$8`$``(N--//__\>%///__P````#'A4#S -XM__\`````.0D/A&,!``"%VW0]#[8##[[0A=)X+XLU_"`)"#G6?B6+#0@A"0CK -XM%I"-="8`@\,!#[8##[[0A=)X"SGR?0?V1)$V`G7HA,!U38M%"+JGU`@(Z'?^ -XM__^+A3SS__^%P'0.BX4\\___B00DZ`-O_O^+A4#S__^%P'0.BY5`\___B10D -XMZ.MN_O^X`0```('$[`P``%M>7UW#C5,!B95<\___#[9[`8GY#[[1A=)XG8LU -XM_"`)"#GR?9.+#0@A"0B)C5CS___V1)$V`G2`/'/'A4SS__\`````#X0<`0`` -XMN9W4"`CK$H.%3//__P&#P0$XP@^$`P$```^V40&$TG7F//\/A#$!``"+50@/ -XMML"-!$"-A`!0`0```T(0@\`(BWT(QT0D$)W4"`B)1"0,QT0D"#S6"`C'1"0$ -XM`P```(D\).@<%___Z1#___^+50C'1"0(&-8(",=$)`0#````B10DZ/P6__^X -XM`0```.D@____QT0D!"````#'!"0!````Z-)K_O^%P(F%///__P^$^?[__XN] -XM///__XG&@\8(B7<(B7<,QT0D!"P```#'!"0!````Z)]K_O^%P(F%0//__P^$ -XMEO[__XM'"(N50//__XD"B7($.W<,#X2\!@``BXU`\___B4@$BX5`\___B[T\ -XM\___B4<(B4<0Z1'^__^)^(3`=1_I1_[__P^^PH7`>$0YQHGV?CZ+C5CS___V -XM1($V`G0Q@X5<\___`8N%7//__P^V$(32==+I%/[__XM-",=$)`3_____B0PD -XMZ`72_O_IS?[__X#Z(@^%*`8``(N]7//__P^V5P&$T@^$%@8``(!_`@`/A0P& -XM```/OL*%P'@<.<:)]GX6BXU8\___9H-\@30`>0@/MI2!-`0``(M]"(M'$(N` -XM0`$``(7`=1+IU`4``(UV`(L`A<`/A,<%```Z4!"-=@!U[HM`"(M("(F-7//_ -XM_XMP$(U&(XE$)`3'!"0!````Z'!J_O^%P(F%9//__P^$*@<``(N]9//__XN- -XM9//__XGZ@\$(@\(=B8U@\___B4\(B4\,B5<4#[8#B$<=C48"QD(!((E'&(M' -XM%(N57//__XET)`B#P`*)5"0$B00DZ,-K_O^+1Q3&1`8"`(!/'`&+30B+?0B+ -XM10B+22")C3CS__^+?TR)O43S__^+0%#'A5#S__\`````B85(\___@'D8`'D7 -XMBU4,BY*`````P>H(]]*#X@&)E5#S__^+C33S__^+21"%R8F-+//__P^$E08` -XM`,>%5//__P````"+O2SS__^+E63S__^+C4SS__^+/XF],//__XM"%(N]+//_ -XM_XE,)`C'1"0$K-0("(/``HE$)`R+1R")!"3HRF/^_XM'((D$).CO9O[_ZW^- -XM1>R-E8CS__^-??*)?"0,B40D",=$)`2RU`@(B10DZ,EG_O^#^`(/A#$#``"- -XMC8CS___'1"0$"@```(D,).B*9O[_A<")1>AT`\8``(N5+//__XV]B//__XE\ -XM)!"+30B+0@C'1"0(R-0(",=$)`0#````B0PDB40D#.C:$___BY4L\___C8V( -XM\___BT(8QT0D!``(``")#"2)1"0(Z+ME_O^%P`^%5O___XL=H!0)"(7;#X43 -XM!0``BY4L\___BT(8#[]`#,'H!8/@`83`=`OHB6?^_\<`!0```(N]+//__XM' -XM",=$)`B?K0@(QT0D!`4```")1"0,BT4(B00DZ&<8__^+10@QR8GZZ*OV__^+ -XMC3SS__^%R70.BY4\\___B10DZ$=J_O^+C63S__^+?0B)3"0$B3PDZ"ZL``"X -XM`0```.E"^___@_L"#X09`P``@_\"B?L/CK`"``"#^P,/A?P!``"+5>B%THF5 -XM://__P^$ZP$``(7V#X3C`0``B10DZ)IJ_O^+C2SS__^)A7CS__^+62B+`X7` -XM#X1*!```C76(ZPV#PP2+`X7`#X0X!```B[UL\___B40D#(V%B/O__\=$)`BY -XME`@(QT0D!``$``")?"00B00DZ"-G_O^-E8C[__^)="0$B10DZ-%E_O^%P'6Q -XMBQN)G7#S__^)'"3H'6K^_XN-+//__XF%*//__XM%J#M!%`^%://__P````"+E2CS__^+C7SS -XM___'!"0!````C40*,`.%>//__XE$)`3HYV;^_X7`B<,/A.\#``"-0"B)0Q2+ -XMO2CS__^%_W0RBY4H\___BXUP\___B00DB50D"(E,)`3H86C^_XN]*//__XM# -XM%,8$."^#QP&)O2CS__^+A7SS__^+E2CS__\#4Q2#P`&)1"0(BX5L\___B10D -XMB40D!.@C:/[_BX4H\___`X5\\___B4,8BY6`\___B5,//__XE+)(N]://__XG(@\`!B40D"(D4)(E\)`3HU&?^_XN% -XM8//__XD#BY5D\___BT(,B4,$BXU@\___.TH(#X3I`@``B1B+O63S__^)7PR# -XMA53S__\!BT7L@^@!B47L@\`!#X0V`0``B[TL\___BT<8QT0D!``(``")1"0( -XMC86(\___B00DZ,IB_O^%P`^$#_W__XV5B//__\=$)`0*````B10DZ!QC_O^% -XMP(E%Z`^$C0```(V-B//__[\!````Q@``B4WHC47HQT0D!-'4"`B-7_^)!"3H -XMFF7^_X7`B<8/A&S]__^%VP^%4/W__XDT).@@:/[_B;5L\___B85\\___@\C\__^+A5SS__^)!"3HE6?^_XG&Z3OZ__^)5PSI -XM1?G__XM!&(D$).C[9O[_B<'KD8N5+//__XM%".CU\___BX4P\___A<")A2SS -XM__\/A>KZ__^+E53S__^%T@^$9P$``(N-9//__XM1"(E1$(M]#`^W1WPE``$` -XM`/:'@0````$/A/$!``")1"0(BT4(B50D!(D$).@KM```A<`/A3SW__^+50B+ -XM4A2)50B+BI@```")C33S__^+A33S__^+E33S__^+&#G3B=@/A&\!``"+O63S -XM__^)!XE7!(N%-//__SM`!`^$30$``(N5-//__XN-9//__XL"B4@$BX5D\___ -XMB[TT\___B0>+E63S__^+30B+0A")5"0$B0PDB40D".A1[O__BX50\___A<`/ -XMA-D```"+?0B+4Q"+1R")0@B+4Q"+1TR)0@R+1U"+4Q")0A`QP.F\]O__BXTL -XM\___BT$8B00DZ$%?_O^%P`^5P.GE^O__QX4H\___`````.DI_/__B[5H\___ -XMN-34"`BY"@```/R)Q_.F#X4P_/__Z1?\__^+50C'1"0(`````,=$)`0%```` -XMB10DZ"D.___I'?;__XE:".D1_?__BT4(QT0D"-[4"`C'1"0$!````(D$).@! -XM#O__,<#I*/;__XM]",=$)`@`````QT0D!`4```")/"3HWPW__^F/^O__BT,0 -XMBY4X\___B5`(BT,0BXU$\___B4@,BT,0B[U(\___B7@0,<#IW?7__XEX!.F\ -XM_O__BY4\\___B1J+C3SS__^)VHE9!#M;!'1"BP.+O3SS__^)>`2+C3SS__^+ -XMA33S__^)RXD(B>(D\).C29/[_BU4(B7PD"(ET)`2)%"2)1"0,Z(?>__^Z -XM`0```(7`=2Z+5G@YV@^$QP$``(U#`3G"="R+10C'1"0(`0```(E\)`2)!"3H -XMY=<``+H!````BUWTB="+=?B+??R)[%W#D(M&=(U]E(L$F(LPB7PD!(DT).C] -XM7_[_A<`/A3`"```/MT6<)0#P```]`$````^$/0(``,=$)`0O````B30DZ&%? -XM_O^%P(F%+//__W0,Q@``@\`!B84L\___B30DZ!-D_O_'!"0!````B<.-0#B) -XM1"0$Z"YA_O^%P(G'#X19`@``C4`TB4<(B5\,B5PD"(ET)`2)!"3HNV+^_XM% -XMM(E'%,=$)!`&U0@(BT<(QT0D"+F4"`C'1"0$``@``(E$)`R-A33S__^)!"3H -XMB&#^_XV%-/___XV5-//__XE$)`2)%"3H,%_^_X7`#X2_````BT<(B00DZ#U< -XM_O^%P(E'+`^$Y`$``,=$)`0$````QP0D`@```.B.8/[_A<")PHE'*`^$XP$` -XM`(M'+(D"BXTL\___B?J+10CHB.S__X7`#X7]````BY4H\___BT(0A<")!W0& -XMBT(0B7@$BX4H\___B?J)>!"+A2CS__^#P!")1P2+10CHC.___S'2A<`/A'+^ -XM__^+10B)^C')Z(;N__^Z`0```.E<_O__BT4(NO?4"`CH?_'__[H!````Z47^ -XM__^+M63___^-1@&)!"3H:&'^_X7`B4%+//___O4"`B%P`^$H?W_ -XM_XM%"(E<)`C'1"0$!0```(D$).CA"?__N@$```#I%_W__\=$)`@`````Z6W_ -XM__^+10C'1"0(`````,=$)`0%````B00DZ*\)___I-____XM'+(7`#X0L____ -XMB00DZ*M@_O_'1RP`````Z1C___^)'"3H%U[^_XM'++D!````BY4P\___Q@00 -XM`(M'+`^V$(32="6#P`$PR>L*#[80A-)T%(/``8#Z.G7Q#[80A-)T!8/!`>OL -XM@\$!QT0D!`0```")#"3H)E[^_X7`B<.)1R@/A'O____'1"0$(=4("(M'+(D$ -XM).@67/[_A<`/A(+]__^)`X/#!,=$)`0AU0@(QP0D`````.CU6_[_A575E.#[#R+10B+L)@```#VAC@$```!#X0X`0`` -XM@(XX!````8M5#(M"=(L`BU`(BS"%TGYC#[X&A7'1"0(:-8( -XM",=$)`0#````BT4(B00DZ",(__^X`0```(/$/%M>7UW#A=)TU(72#XX2`@`` -XMBSW\(`D(B?.A""$)"(E]U(E%X(VT)@`````/M@L/OL&%P'@/.T74?0J+?>#V -XM1(#"+#?P@ -XM"0@YR'TFBQ4((0D(ZQ>)]H/#`0^V`X3`=!(/OL"%P'@+.<%^!_9$@C5`=>2) -XM\.B-[?__A<`/A#?___^)7"0(BU4,B50D!(M]"(D\)/]0!(/$/%M>7UW#QP0D -XM$]4(".A15_[_A<")QP^$LO[__XD$).C_7O[_B47%W^_XM]V(E] -XM[,=$)`0?U0@(B1PDZ.);_O^%P'0=@#@`=.>)1"0(BT4,B40D!(M5"(D4).A? -XM^?__Z\^+10B%P'06BWT(BT<0AO__A<")1=@/A3O___^X`0```.D#_O__B40D#(U# -XM>(E$)`B+0W2)1"0$BU4(B10DZ*1Z__^%P'35B4-TZ?+^__\/M@Z)\XUV`.D? -XM_O__@:!4"```__[__^E+_?__D)"0D)"0D)"0D)"058GE@^PXB77XBW4(B5WT -XMBUT,B7W\BT8`/MT-\C5-1C7MDQT0D$`$```")?"0( -XM@^`!]]@APHM%X(E4)`2)-"2)1"0,Z!J1_O^%P'06N`$```"+7?2+=?B+??R) -XM[%W#C70F`(M%X,=$)`P!````B7PD!(DT)(E$)`CHY93^_X7`=57OX#8"`A6B=93B<.# -XM[!R+4!#V1A@!=06_C=@("(7)#X3R````B7PD#(E,)`C'1"0$G]@("(D<).C` -XM-0``BT8(@\8(B77L.?")1?`/A+X```"+5?"+>A"+0@B%_XE%Z`^$AP```#'V -XMZV:-="8`#[;`C01`C80`4`$```-#$(/`"(E$)`2)'"3HX30``(M#$/:`5`@` -XM``1U=\=$)`P!````QT0D"`````#'1"0$`````(D<).AER/[_A@/M@06//]UD\=$)`3_````B1PDZ/.__O_KE,=$ -XM)`0FN@@(B1PDZ'$T``"+1?"+5>R+`#G0B47P#X5"____@\0<6UY?7<,/MD80 -XM//]T$@^VP(T$0(V,0E@!``#I]/[__\=$)`3_````B1PDZ)R__O^)P>G=_O__ -XMD(UT)@!5B>6#["B+50R+10B)7?2)=?B)??R)1>R)5?"+0G2+`(L8#[83@/IC -XM#X2W````=T*`^F(/A.<```"-M"8`````QT0D"`H```"+5?"+0B"+0!")1"0$ -XMBWWLB3PDZ&#.``"X`0```(M=](MU^(M]_(GL7<.`^G-T.8#Z='7$BT`(@_@$ -XM=[RZ8,$("#G`_(G>B=>)P?.F=:J+1>R+7?2+=?B+??R)10B)[%WIPZ$``(UV -XM`(M`"(/X!W>(NA_N"`@YP/R)WHG7B<'SI@^%GK10``BT`(@_@+#X=/____NN78"`@YP/R)WHG7B<'SI@^%.?___XM% -XM[(M=](MU^(M]_(E%"(GL7>DBX___B?:+0`B#^` -XMB=>)P?.F#X7^_O__BU7LBT(0BYA``0``A=L/A"$!```/MD,0@_A_=PKV!(7= -XM%`D(!'5>C4,(.4,(=`R+1>PQR8G:Z#/]__^+5>R+0A#V@%0(```$#X7@```` -XMQT0D#`$```#'1"0(`````,=$)`0`````B10DZ"#&_O^%P'43BWWLBT<0]H!4 -XM"```!`^%J0```(L;A=MUB8M5[(M"$(NP0`$``(7V='6-=@`/MD80@_A_=UWV -XM!(7=%`D(!'13C48(.48(=`R+1>PQR8GRZ*G\__^+?>R+1Q#V@%0(```$=5K' -XM1"0,`0```,=$)`@`````QT0D!`````")/"3HFL7^_X7`=0R+1Q#V@%0(```$ -XM=2J+-H7V=92+5>R+0A"+D"`!``"%TG04BT7LN=;8"`CH1_S__S'`Z?7]__\Q -XMP.GN_?__BY`@`0``A=)UV\=$)`BXV`@(QT0D!`0```"+?>R)/"3H!`'__S'` -XMZ<+]__^0D)"0D)"0D)"0D)"058GE@^PXB5WTBUT,B77XBW4(B7W\BT-XA#' -XM1"0(`````(E\)`0E``$``/?:@^(@@_@!&<#WT(/@!`G0B40D#(DT).A'KO[_ -XMA+0&2) -XM1?B+1?C'1"0$\=@("(D<)(E$)`CH5B\``#'2@\0DB=!;7<.-1?B)1"0$B1PD -XMZ!W,_O^Z`0```(7`=,?KWL=$)`@$````BT`@BP")'"2)1"0$Z"G)``"Z`0`` -XM`.N^D)!5B>6#[!B)7?2+70B)=?B+50R)??R+0QR%P`^$O0```(M">(7`=2G' -XM1"0(`0```(M#3(D<)(E$)`3H4O7^_S'`BUWTBW7XBWW\B>Q=PXUV`(/H`70+ -XMZ%I/_O^-M@````"+0G2+#_____QT7<_____\=%Z/_____'1>3_ -XM____=!.-1>2)!"3H84[^_X7`#XCP!```C47") -XM!"3H0TW^_\=$)`0"````BT7@B00DZ#!-_O^+1>2#^/]T"(D$).B`4/[_BT7H -XM@_C_=`B)!"3H<%#^_XM%W(D$).AE4/[_BT7@B00DZ%I0_O^+10@/MIAP`P`` -XM@^,!#X2/`P``B<*+@&@#``"-!$#!X`(#0A"+0#C'1"0$+P```(D$).B#3O[_ -XMA<"-4`$/A-8$``"$VP^$2@,``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!`` -XM````BTT`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B) -XM!"3H$0#__\<$)'\```#H^5#^_Y"-="8`N@$```"#Q$R)T%M>7UW#D(M%Y(/X -XM_W0(B00DZ&1/_O^+1>")!"3H64_^_XM%((/H`8/X`0^&H`(``(M-"(M!'(!( -XM6`CHJTO^_X/X_XG'#X2S`P``A<`/A"8#``"+1>B)!"3H'4_^_X-](`,/A?,# -XM``"+50B+LI@```"-1>R)1"0(BU70B50D!(M-"(D,).CMQ@``AR)1"0(BT8LB40D -XM!(M-"(D,).B.+P``A<`/A'#___^+%:`4"0B%T@^%%`0``(M5T`^_0@S!Z`:# -XMX`&$P`^%WP,``(M5T#'VB10DZ+I0_O_'1"00`0```,=$)`P`````QT0D"`G9 -XM"`B)?"0$BT4(B00DZ`]3``"%P`^$00,``+X!````BU48BP*#^`%V&8E$)`2+ -XM30B)#"3HN<;^_X7`=0:+11B#*`&+50B+0AR`8%CW@WT@`@^$G`$``#'`QT0D -XM$`````")1"0,BT4B#^/]T"(D$).AB3?[_BUW0A=MT+HM-T(D,).C` -XM3_[_BT7@@_C_#X3`_?__B00DZ#Q-_O^#Q$RZ`0```%N)T%Y?7<.+1=R#^/]T -XMU8D$).@=3?[_Z\N-M"8`````QT0D"-6Y"`C'1"0$!0```(M5"(D4).AE^/[_ -XMZ7+____'1"0(SKD(",=$)`0%````BT4(B00DZ$7X_O_I4O___XM-"(N!:`,` -XM`.D2_?__BTT(BX%H`P``Z;W\__^+30B+@6@#``#I=_S__X-](`$/A-````"- -XM1?#'1"04`0```(E$)!"+31")3"0,BT70QT0D!/;8"`B)1"0(BU4(B10DZ*PR -XM``"+30B%P`^5P`^V\(M%\`%!7(-](`(/A7;^__^+51"+"H7)#X7&`0``BTT8 -XMB0&+30BX`0```/:!K`0```(/A5'^___I2O[__\=$)`A6WP@(QT0D!`4```"+ -XM50B)%"3H>O?^_\=%T`````#I@/[__XM%W(D$).CW2_[_QT0D!!KW"`B+1>B) -XM!"3HU$O^_X7`#X7#`0``QP0D`0```.A`3?[_BT7HB00DZ,5+_O^-1?#'1"04 -XM`0```(E$)!"+51")5"0,BTW0QT0D!/;8"`B)3"0(BT4(B00DZ-$Q``"+50B% -XMP`^5P`^V\(M%\`%"7#'`Z:#]___'1"0(UKD("+X!````QT0D!`4```"+10B) -XM!"3HR?;^_XM%Z(D$).A22_[_BT7`"`T(0BU`XZ0C[__^-1?#'1"04`0```(E$)!"+312)3"0, -XMBT70QT0D!/;8"`B)1"0(BU4(B10DZ"PQ``"+30B%P`^5P`^V\(M%\`%!7.F0 -XM_/__A?8/A;S\__^+12"%P`^%L?S__\=$)!`!````BU44B50D#(M-$,=$)`0` -XM````B4PD"(M%"(D$).BJ@?[_AR)5>B+5?`/MD)0J`UT1(M:/(UZ/#G?=#&+,XM###M%$(GQ -XMR)0@B+0PR#P`&)0@R+1>B)6@2)0PR+`XD"BP,Y -XMQW0=B5`$B1.)\^E@____@VL,`8U"_XE#"(GSZ4____^+1?")4$")$^O>BT7P -XMB4@\ZX>+0P2+5?")0D"+"^EN____QT0D"`````#'1"0$!0```(M5"(D4).C0 -XM\_[_@\057B<=64X/L -XM;(E5M(E-L(MP'(7V#X1?`0``]H"N!````@^%(0$``(M-M(M9>(7;#X3I```` -XMBT%TBS7\(`D(BP"+"`^V$0^VVCGS?1NA""$)".L-@\$!#[81#[;:.?-]!_9$ -XMF#8"=>R$T@^$KP```#D=_"`)"`^/CP```(#Z7`^$F@```(#Z?`^$D0```(#Z -XM"@^$B````(U!`8E%S`^V40&$T@^$;@$``(MUS`^VPCG#B?%U*^GR````D(UT -XM)@`/MA:#Q@&($0^V%H/!`832#X1'`0``#[;".<,/A-$```"`^EQUVHU&`8E% -XMT`^V5@$/ML(YPP^$J@```(#Z7`^$EP````^V%HMUT.NZH0@A"0CW1)@T``4` -XM``^$7O___Y#'1"0("@```(MUM(M&((M`$(D\)(E$)`3HD[T``+@!````@\1L -XM6UY?7<.+5;2+0B"+`(D\),=$)`@8V0@(QT0D!`,```")1"0,Z$+R_O^#Q&RX -XM`0```%M>7UW#QT0D"`0```"+0B"+`(D\)(E$)`3H/+T``+@!````ZZ?&`5P/ -XMME8!@\$!@\8"Z1G___^+=N!```0`^$&@,``(M'3(E%Y(M'4(E%Z(U%Y,=$)`P!````B40D -XM",=$)`0G````B3PDZ";B_O^%P'08N`$```#I*O___XMUS(GQ#[;".<-UD>N, -XMQT0D!(0```#'!"0!````Z&I&_O^%P(E%N`^$^0(``(M-N(M%N(/!/(E-O(E( -XM/(E(0(M5M(M"=(GRBP`K$(M`""G0A<")1?!U#+Y+C0@(QT7P`0```(M%\`'` -XMB00DZ)Q'_O^+3;B%P(E!$`^$J`(``(M5N(E"2(M%\(E"3(M-N(G"`U$0B70D -XM!(E$)`B)%"3HFD?^_XMUN,=&1`````"#?;`!&<"#X/R#P`@(1E"+1Q"+4'R% -XMTHD6=`F+0'R)<`2+1Q"+5;B)4'R+1Q"#P'R)0@2+3;2+662+<6PY\XEUQ`^' -XM?P(``,=%P`$```#'1R)5"00B4PD#,=$)`@!````B5PD!(D\).A+N_[_ -XMA<`/A?']__^+=?"-1=3'1=0`````QT78`````,=%X`````")==R-M[````#' -XM1"00!````(E$)`S'1"0(`````(M%[(DT)(E$)`3HP$+^_X7`#X2O_O__@_@! -XM=!6)="0(B40D!(D\).@/5P``Z9O^__^+5;"%T@^$Z_[__^F+_O__B5H,Z=[^ -XM__^)03SIT/[__XV'L````(E$)!2-A\0```")1"00C8?`````QT0D&`(```") -XM1"0,*TW,B4PD"(M5S(D\)(E4)`3H;E<``(7`#X4D_?__QX>L`````0```.GF -XM_/__C8>P````QT0D&`(```")1"04QT0D$`````#'1"0,`````(N'Q````(E4 -XM)`2)/"2)1"0(Z!]7``"%P`^$IOS__^G0_/__QT0D"`````#'1"0$!0```(D\ -XM).A:[O[_N`$```#IXOO__XM%N(L0A=)T!HM`!(E"!(MUN(M&!(D0BT80B00D -XMZ$)%_O^)-"3H.D7^_\=$)`0"````B3PDZ%8S__\QP.FA^___QT0D"`8```#' -XM1"0$`````(D\).@7N0``N`$```#I?_O__XVV`````(V\)P````!5N0$```") -XMY8M%"(M5#%WI'/K__XVV`````(V_`````%6)Y8M5#(M%"%T/MDI]@^$!Z?KY -XM__^0D)"0D)"0D)"058GE@^P8BT4(B5WTB7W\BWT,B77XBW`0BT9\C9Z````` -XMBU`4A=(/A80```"#?1@!&<#WT"4`:`(`B8.`````BT4Q=PS'`QT,(```` -XM`.OHD(UT)@#'1"0$A````,<$)`$```#HT$'^_X7`=$V)PXM&?(7`B0-T!HM& -XM?(E8!(U&?(E>?(E#!.E%____BT44B40D"(M%$(E$)`2+10B)!"3HT%___X7` -XMB4,0#X5%____N`$```#I?O___XM%",=$)`@`````QT0D!`4```")!"3H<.S^ -XM_[@!````Z5G___^-M@````!5B>6![#@$``")5"0$B5WTB=.)=?B)SHE]_(G' -XMB0PDZ*`__O\QTH7`=!:+7?2)T(MU^(M]_(GL7<.-M"8`````Z/]#_O^+50B% -XMT@^$Q@```(M+#(7)#X6[````#[=#"+H"````J!)TPKL"````C47PB40D"(ET -XM)`2)/"3H8-_^_\=$)`0O````B30DB87@^___Z#X^_O^%P`^$!`$``(/[`0^$ -XMP`````^"DP```(/[`G4BBY7@^___QT0D"%C:"`C'1"0$`P```(D\)(E4)`SH -XMC.O^_XM-\+H!````A_O__C47LB70D!(E$)`B)/"3H#=[^_X/[`8G^```` -XM#[__^)="0,QT0D"%S9"`C'1"0$`P```(E$)!")/"3H6NK^_XM=[(7; -XM#X3#_O__A?]T#8M'$(7`=`8[<'20=&*)-"3H2D'^_^FE_O__@_L"==*+A>#[ -XM__^)="0,QT0D"+S9"`C'1"0$`P```(E$)!")/"3H!NK^_^NJBY7@^___B40D -XM#,=$)`B0V0@(QT0D!`,```")5"00B3PDZ-[I_O_K@H&@5`@``/_^___I0?[_ -XM_XVV`````(V\)P````!5B>6![,@```")7?2-G5C___^)=?B)UHE]_(G'C47L -XMB40D&(D<),=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D!#8` -XM``#H7;<``(DT).@I0?[_B70D"(D<)(E$)`R-1=R)1"0$Z.ZR``")7"0$B3PD -XMZ")/``"+7?2+=?B+??R)[%W#D(UT)@!5N9;:"`B)Y8'LZ`0``(EU^(MU"(E] -XM_(U]E(GZB5WTB?#'1"0$`````,<$)`$```#HF_S__X/X`@^$4@$``(M&$(M` -XM?(M`%(7`#X5B`0``]X:L!`````8``'05,<"+7?2+=?B+??R)[%W#C;8````` -XMQP0DH]H(".BX./[_A<")PP^$50$``(D$).AF0/[_QT0D%`````#'1"00`0`` -XM`(E<)`C'1"0$H]H("(DT)(E$)`SHVOK__X7`#X7(````BT80BT!\BT`4A<`/ -XMA>\```#WAJP$````!@``=8#VAJ@!```!#X3C````BX:@`0``C01`P>`"`T80 -XMBW@XA?\/E<"$P`^$5/___XV=-/___[FKV@@(B=J)\,=$)`0`````QP0D```` -XM`.BF^___A<`/A?P```"YG=H("(G:B?#'1"0$`````,<$)`````#H@?O__X/X -XM`@^%VP```(N%-/___SM%E'4/BX4X____.T68#X3!````NIW:"`B)\.CR_?__ -XMA<`/A*T```"X`0```.G-_O__NI;:"`B)\.C4_?__A_O__B30DZ.=H___ID?[__XDT).C::/__Z03___^+GJ`!``"%VP^5P.DD -XM____QP0DI-H(".A--_[_A<")PP^$C0```(D$).C[/O[_QT0D%`````#'1"00 -XM`0```(E<)`C'1"0$I-H("(DT)(E$)`SH;_G__X7`#X25_O__Z5C___^#^`)T -XM((M&$(M`?(M(%(7)#X07_O__B30DZ%1H__\QP.D*_O__BX4T____.T64=0N+ -XMA3C___\[19ATRKJKV@@(B?#H^_S__X7`=+KI"/___\<$)+^Z"`CHJC;^_X7` -XMB<,/A"K^__^`.``/A"'^__^)1"0,C84T^___QT0D$*O:"`C'1"0(N90(",=$ -XM)`0`!```B00DZ`T[_O^-C33[__^)^HGPQT0D!`$```#'!"0`````Z.OY__^% -XMP'5(C84T^___QT0D$)W:"`B)7"0,QT0D"+F4"`C'1"0$``0``(D$).C!.O[_ -XMC8TT^___B?J)\,=$)`0!````QP0D`````.B?^?__@_@"#X6$_?__C94T^___ -XMB?#H*?S__X7`#X1O_?__Z3+^__^-M@````"-OP````!5B>6#?0P^BT40=`1= -XM,<##B44,7>D7@```C;0F`````%6)Y8/L&(EU^(MU"(E]_#'_B5WTBYZ8```` -XMA=MT4_:&KP0```%U:3'_B30DZ&^C__^%P'52BT,LA)]HDT)&:_`0#H9"L``(7`=8GK -XMA8VT)@````"-O"<`````58GE@^P8QT0D!#P$``")7?2)=?B+=0B)??R+?0S' -XM!"0!````Z,LY_O^%P(G#=&*)AY@```")`XE#!,=`"`````"-0`B)0PPQP(7V -XMQT,0`````'0PBX:8````BT`8AQ=P\=$)`@`````QT0D!`4```")-"3H -XM5^3^_[@!````Z]3'1"0(`````,=$)`0%````B3PDZ#CD_O^X`0```.NUD%6) -XMY5=64X/L3(M%"(M`'(7`#X1Z!0``BW4,BT9D@\`!B40D!(M%"(D$).A1L?[_ -XMA<`/A,P$``"+10B%P'07BTT(BUD0A=MT#?:#50@```$/A.<$``"-1?#'1?`` -XM````QT0D#``!``")1"0(QT0D!`````"+=0B)-"3H4EC__X7`B478#X1"!0`` -XMBTT,]D%\!'0$@T%L`8MU#(M&9(M6;(G'.=")5>`/A!$%```Y1>#'1=0!```` -XM#X*F`0``QT7(`````,=%S`````"-M@````"-1>R-5>B)1"00B50D#,=$)`@` -XM````B7PD!(M-"(D,).CKKO[_A<`/A2X$``"+1>R%P`^$2`$``(M5S#';C50" -XM`HM%"(E5S(7`#X2T`0``BTT(BUD0A=L/A*8!``"+1=@Y0W0/A)H!``"+5R%]HEU -XMQ(EUO'1EBTWH#[X!B`/AG3^__^+=0R+1F2+50B)0DR+30R+<62+66PYWG(6Z3<" -XM``"-M@````"#ZP$YW@^#)@(``(E<)`2+10B)!"3H%K;^_X7`=.*+50B%TG06 -XMBU4(BT(0AR+30@IT(/H`8E!4#M]X,=%U``````/AJ+] -XM___I*?___XM-Z(E$)`B)3"0$BT7R+5>@!1=P!1<@/OG00 -XM_^G(_O__BTWH@#DI#X2E_O__B70D!,<$)-/:"`CH*3/^_\=%T`````"%P'07 -XMBT7R#P@<@!B57_/__ -XMC4-XB50D#(E$)`B+0W2)1"0$BTT(B0PDZ$Q4__^%P`^$/P$``(E#=.E5_O__ -XMB57$QT70`````(M%Q.F0_O__B57$BT7$Z87^__^+3=2%R0^$J````(M%"(7` -XM=!:+50B+0A"%P'0,BTW8.4AT#X0]`0``BW78B30DZ&`V_O^+50R+30B+0FP# -XM06B#P`$K0F2)06B#Q$PQP%M>7UW#QT0D"+3:"`C'1"0$`P```(M5"(D4).@2 -XMW_[_@\1,N`$```!;7E]=PXMU#(U'_XE&;(M&9.DF_?__@7MX_P````^&C``` -XM`(M3=(E5V(M#>(E%\(&+5`@````!``#I)?O__XM5V"E5W(M-W(ET)`2)5"0( -XMB4PD#(MU"(DT).@,K_[_A<`/A##____I#?W__\=$)`@$````BU4,BT(@BP") -XM1"0$BTT(B0PDZ*"I``"#Q$RX`0```%M>7UW#C4@!B4W@B4YLZ>'Z__^X`0`` -XM`.GV_/__C4-XQT0D#``!``")1"0(BT-TB40D!(M%"(D$).C:4O__AR+`8E%\`^V.(GZ@/HC#X2@````@_L!=$Z+ -XM5@3'1"0@"````(E<)!R+0@B)1"08BP*+50B)1"04BP:+0`B)%"3'1"0(```` -XM`,=$)`0`````B40D$(M%\(E$)`SHUC+__XG"Z6[___^+1?"`>`$`=:F)^H#" -XM`0^$A`$``(M-"(M1$(GY#[;!#[:,`E,'``"#^0P/AQ0!``"X`0```-/@J8`2 -XM```/A0T!``"+30R+<73I9?___XM-\`^V40&#^G\/AU#____V!)7=%`D(!`^$ -XM0O___P^V00(/MM"#^G]V%^L?C;8`````#[9!`P^VT(/Z?W<-@\$!]@25W10) -XM"`1UYX3`#X4-____BU8$QT0D(`D```"+3?")7"0?[__XM5"(M"$#'2B["`"```A?8/A&/^__^+10R+2'2+402+0@B)1"04 -XMBP*+5?")1"00BP&+30B+0`B)5"0(B5PD!(D,)(E$)`S_UHG"Z2K^__^+50R+ -XM@@! -XM="/'1"0(6-L(",=$)`0#````B1PDZ&G:_O^X`0```(/$%%M=PXU!9,=$)`P! -XM````B40D"(L"#[8`B1PDB40D!.B^RO[_@\046UW#QT0D"`0```"+02"+`(D< -XM)(E$)`3H/Z4``+@!````Z[20D)"0D)"0D%6)Y8'LB````(E=](M=#(EU^(E] -XM_(M#>,=%D)W:"`B%P'0F@^@!=`CHERO^_XUV`(M#=(L`BP")19")1"0$BT4( -XMB00DZ%=R_O_V0WT!=1J-192)1"0$BT60B00DZ!,M_O^%P`^$D0$``(M%D,=$ -XM)`BD`0``QT0D!`$&``")!"3H4"_^_X7`B<,/B#@!``#'1"0$&O<("(D$).CV -XM+?[_A<")QP^$>P$``(E$)`2+10C'1"0,`````,=$)`B"VP@(B00DZ$DR__^% -XMP`^%X0```(L=H!0)"(7;#X7#````]D<,0`^%R0```(M%",=$)`P!````QT0D -XM"([;"`B)?"0$B00DZ`HR__^%P`^%H@```(L-H!0)"(7)#X48`0``]D<,0`^% -XMB@```(M%",=$)`P"````QT0D")/;"`B)?"0$B00DZ,LQ__^%P'5GBQ6@%`D( -XMA=(/A?0```#V1PQ`=5.+10B)?"0$B00DZ*0&__^%P'5`H:`4"0B%P`^%Z``` -XM`/9'#$!U+8D\).B)+_[_A<`/A.@```#H?"S^_XLPZR.-="8`B3PDZ*PM_O^% -XMP`^$-____^A?+/[_BS")/"3H52_^_^A0+/[_B3"+19#'1"0,GZT(",=$)`0% -XM````B40D"(M%"(D$).@XW?[_N`$```"+7?2+=?B+??R)[%W#BT60QT0D#+#; -XM"`C'1"0$`P```(E$)`B+10B)!"3H!-W^_[@!````Z\KH["O^_XLPB1PDZ'(L -XM_O_KBXD\).@8+?[_A<")]@^%:O___^G;_O__B3PDB?;H_RS^_X7`#X53____ -XMC78`Z?C^__^)/"3HYRS^_X7`D`^%.O___^D(____BT60QT0D#)G;"`C'1"0$ -XM!````(E$)`B+10B)!"3H@]S^_S'`Z4G___^0D)"0D)"0D)"0D)!5B>575E.# -XM[$R+30B+10R+41R%T@^$:`,``(M(;(MP9(E-V(M`5#GPB47<#X.S`0``BUHX -XMQT74`````(7;=0CK/8L;A=MT-X![$">0C70F`'3OBT,(.?!RZ#E%W'+C@&,1 -XM_8E<)`2+50B)%"3H[[7^_\=%U`$```"+&X7;=7UW#.<@/AT7^___'1"0(X-L(",=$ -XM)`0#````BT4(B00DZ%G5_O^#Q$RX`0```%M>7UW#B?.+==R)3>"-="8`@VW@ -XM`8-]X/\/A`P"``"-3>R-1>B)3"00B40D#,=$)`@!````B5PD!(M5"(D4).B] -XMH/[_A4_?__Z<#^__^-0WC'1"0,``$` -XM`(E$)`B+0W2)1"0$BU4(B10DZ(M(__^%P`^$6O[__XE#=.NFQT0D"`0```"+ -XM0""+`(D,)(E$)`3HY9X``+@!````Z3?^__^+1=R+5=PK1*O[_BT4(BU77UW#BU4,@$W@`8M"5,=%Z`````")1>2-1>R) -XM1"00C47DB40D#(U%R,=$)!0!````QT0D"`````")1"0$B3PDZ,<+__^%P'6A -XM`W7L,=LK=<#'1U``````B7=,ZY+'1"0(!````(M5#+L!````BT(@BP")/"2) -XM1"0$Z/Z<``"#Q$R)V%M>7UW#D)"0D%6)Y8/L&(M5"/:"L`(```%T/HN"J`(` -XM`(T$0,'@`@-"$(M(.(7)#Y3`A,!T,L=$)`@,W`@(QT0D!`,```")%"3HB]'^ -XM_[@!````R<.-="8`BX*H`@``A<`/E,"$P'7.QT0D"$C<"`C'1"0$`P```(D4 -XM).A9T?[_N`$```#)PY"058GE@^PHB77XBW4,B7W\BWT(B5WTBT9TBQB+`XD\ -XM)(E$)`3HN&G^_P^W1GR)/"0E``$``(E$)`3HD(VT)@````!5B>53@^PDBUT(BT,_O^%P'00N`$```"#Q"1;7<.0C70F -XM`,=$)`0(````B1PDZ+`\__^%P'757,?]64X/L#(MU#(M% -XM"(`^`(N8F````'1IQT7P`````.LEBX,T!```#[84-XA4#P`&`^@J)@S0$ -XM``!T(H/'`8`\-P!T*8&[-`0````$``!VSXM%"(D$).A/____Z\*#QP''1?`! -XM````@#PW`'77BT7PA6#[#B+ -XM10B)??R)7?2)=?B+L)@```"-11")1?"+GC0$``")1"0,BT4,B40D"+@`!``` -XM*=B)1"0$C40>-(D$).AN(/[_B<>-!!B`?#`S"HF&-`0``'0'/0`"``!V"XM% -XM"(D$).BV_O__B?B+7?2+=?B+??R)[%W#C;0F`````%6)Y5=6B<93@^PLB4W@ -XMBTT,B57D]H`X`@```0^$`0(``(M0$(N`,`(``(T$0(M$@CB%P`^5P(3`=`.` -XMS03VAM`#```!#X3*`0``BX;(`P``C01`BT2".(E%\(M5X('A``0``(L:B4W< -XM@VT(`8-]"/\/A(\!``"+3>0/M@$\"0^$\P```#S_#X2I`0``BU80#[;`C01` -XM`<"-C`)8`0``B4WH#[:4`ET!``")5>R+31"%R74.BWWL`=\[?C@/@IP```"+ -XM5>PQ_X72=7?IGP```)"+11"%P'4'BU7H#[8$%XE$)`C'1"0$BNP("(DT).B. -XM_O__BT80]H!4"```!`^%`P$``,=$)`P!````QT0D"`````#'1"0$`````(DT -XM).A^D?[_AQT+3E>.'6*QT0D -XM!":Z"`@QVXDT).B8_?__Z7/___^+1>B)^XDT)(E$)`3H@OW__X-%Y`'I\?[_ -XM_XM]W(7_#X4*____.UXX<^`QP(D9@\0L6UY?7<.+AL@#``")1?#I./[__XN`,`(``(M6 -XM$(7`#Y7`Z0'^___'1"0$_P```(DT).@;B/[_QT0D!/\```")-"2)1>CH"(K^ -XM_XE%[.E,_O__58GE5U93@^PLBUT(QT7L`````(MU#/:#F`(```$/A($```"+ -XM@Y`"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=#&-3>RZLMP("(G8QT7PLMP(",=$ -XM)`@`````QT0D!`````#'!"0(````Z#7]__^%P'4HC57PC47HB40D$(E4)`S' -XM1"0(`0```(L&B1PDB40D!.@ME_[_AS'1"0$`````(M&!(GYB00DB=CHROS__X7` -XM=;V+5?"+11`#5@2)5?"+2`2+1@2^`0```#G!=`2)SBG&B?F)V,=$)`A>```` -XMQT0D!`````")-"3HB_S__X7`#X5Z____BT,0]H!4"```!`^%:O___\=$)`P! -XM````QT0D"`````#'1"0$`````(D<).CSCO[_A____\=$)`0FN@@(B1PDZ"KZ__\QP.EF____ -XMC78`QT0D"`````"+11B-312)%"0E``0``(E$)`2+50R)V.@,^___A<`/A"G_ -XM__^#Q!2X`0```%M=PXM#$/:`5`@```0/A1K____I3/___XE$)`2-312Z+?`( -XM"(G8QT0D"`````#'!"0!````Z,+Z__^%P`^$,/___^NTD(VT)@````!5B>57 -XM5E.#[#R+=0B+?1B+1AR%P`^$@P$``(M%$(M5%(L8BQ(YTXE5S`^'5P$``(GX -XM)0`"``")1=#IX````(GVQT7HPMP("(M5Z(U-\(GPQT0D"`````#'1"0$```` -XM`,<$)`@```#H1?K__X7`#X4=`0``C47LB40D$(U%Z(E$)`S'1"0(`0```(E< -XM)`2)-"3H.Y3^_X7`#X7S````BU7LA=)U#/?'``0```^$M@```(E\)!"+1?") -XM5"0(B40D#(M%Z(DT)(E$)`3H\OW__X7`#X6Z````BT80]H!4"```!`^%H``` -XM`,=$)`P!````QT0D"`````#'1"0$`````(DT).A*C/[_A -XMB5PD#,=$)`B[W`@(QT0D!`H```")%"3H:1S^_XU%WHE%Z.GA_O__QT0D!":Z -XM"`B)-"3H*OC__XM&$/:`5`@```0/A&#___^#Q#PQP%M>7UW#N`$```"#Q#Q; -XM7E]=P\=$)`@$````BU4,BT(@BP")-"2)1"0$Z(>2``"X`0```.O558GE5E.# -XM[""+70R+=0@/MT-\B5PD!(DT)(E$)!"-0VR)1"0,C4-DB40D".@0_O__N@$` -XM``"%P'4.BT-L,-*)1DR+0W")1E"#Q"")T%M>7<-5B>564X/L((M=#(MU"`^W -XM0WR)7"0$B30D@,P"#[?`B40D$(U#;(E$)`R-0V2)1"0(Z+K]__^Z`0```(7` -XM=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PXUV`(V\)P````!5B>564X/L((M= -XM#(MU"`^W0WR)7"0$B30D@,P$#[?`B40D$(U#;(E$)`R-0V2)1"0(Z%K]__^Z -XM`0```(7`=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PY"0D)"0D)"0D)!5B>53 -XM@^PTBUT(BTT,BT,575E.#[#R+?0B+1Q")1=2+112+EY@```")5="+ -XM,,=%V`````#'1=P`````QT7@R]P(".G/````C;8`````BUW8NA^%ZU&#PP&) -XMV/?BP>H%:])D.=-U=XM'$/:`5`@```0/A;X```#'1"0,`0```,=$)`@````` -XMQT0D!`````")/"3HUXC^_X7`=1"+1Q#V@%0(```$#X6*````BT4")/"2)1"0$_]+'1>``````BT7P -XMBU70B40D$(M"+(ET)`C'1"0$`0```(D\)(E$)`SH.Y?^_X7`#X7L````BT7P -XM@\8!`47R)1"0(BT4,B3PDB40D!.@IM_[_ -XMBU7R%TG08A?]T#(M'$(7`=`4[6'1T>XD<).AR&O[_,=OK28M%$(D$).B3&/[_ -XMA<`/A%G___^+50R[`0```,=$)`R?K0@(QT0D!`4```")/"2)5"0(Z#/(_O^+ -XM11")!"3H'!K^_XM%'(7`=1R+5=3'1"0(`@```,=$)`0`````B3PD_Y)H"``` -XM@\0\B=A;7E]=PX&@5`@``/_^__\QV^O,C;8`````C;PG`````%6)Y8'LJ``` -XM`(E]_(M]"(E=](M5##';B77XBT<0B85X____BT)XAL -XM!```J`(/A:D"``"+10SV@((````@#X0C`P``BT!TBP28BP#'1"0$(+H("(D\ -XM)(E$)`CHW_'__XD\).CW\/__BX>L!```J!!U"PT```@`B8>L!```J`)T)HN5 -XM>/___\=$)`0!````B3PD_Y*@"```A<`/A2$#``"#CZP$```4BU4,QT0D&`(` -XM``"+0G2+E73___^+!`*+`,=$)`P`````B3PDB40D%(U%Z(E$)!"+10R#P&2) -XM1"0(BT4,B40D!.A#P___A<`/A1,!``"+50PQR8.*@````$"+5>CVAZP$```" -XMB5=,#X2M````QT=0`````(U'4(E$)`B)5"0$B3PDZ-(S__\QR>F,````BX5\ -XM____BU4,B70D"(D\)(E$)`R)5"0$Z&Z1__^%P`^%K@```(M5#(M">(7`>!*# -XM^`$/CB+]__^#^`(/A)\!``"+50S'1"0(`0```(M"=(L`BP")/"2)1"0$Z+R* -XM``"Y`0```.LFD(UT)@#'1"0,GZT("(ET)`C'1"0$!0```(D\).B$Q/[_N0$` -XM``"+7?2)R(MU^(M]_(GL7_S__XM5#(M"9`-%\(E'3.D`____BX=<`P``BY5X____ -XMC01`BT2".(7`#Y7`Z>7[__^+50SV@H(````@#X2!_?__BT)TBP28BP#'1"0$ -XMU=H("(D\)(E$)`CH5J(!`(N'K`0``.E:_?__BU4,BT)TBU`$BT<@BS(/MT`8 -XM)80```"#P(`/A*````")="0$B3PDZ']6_O_INOO__XD<).CV$_[_B?;IS/[_ -XM_XM5#,=$)`@)````BT(@Z1[^___'1"0$);H("(D\).@X[O__Z>3\__^)="0, -XMQT0D"#3="`C'1"0$`P```(D\).B7O?[_Z;#^___'1"0("@```(M"((M`$(D\ -XM)(E$)`3HF(@``+D!````Z?_]__^+50S'1"0(`P```(M"(.FQ_?__BT((B70D -XM!(D\)(E$)`CH>##__X7`B<-T%(M'((M`"(D$).A(%/[_BT<@B5@(BT<@9H%@ -XM&#__BT<@9H-(&`R+5Q#'1"0(`0```(M'((M`"(D\)(E$)`3_DIP(``#IROK_ -XM_\=$)`@`````QT0D!`4```")/"3HXKS^_[D!````Z6G]__^0D)"0D)"0D%6) -XMY5=64X/L+(M]"(M'$(MP$(U0$(E5Y#G6#X39````QT7H`0```,=%[`````#' -XM1?``````ZT&#?>@!=!?'1"0$TM0("(D\).@#[?__QT7P`0```(M&((M`"(D\ -XM)(E$)`3HZNS__XLV.77D#X2O````@T7H`8M'$/:`5`@```0/A8P```#'1"0, -XM`0```,=$)`@`````QT0D!`````")/"3H6X#^_X7`=0R+1Q#V@%0(```$=5R+ -XM1B"+0`B)!"3HT1/^_XM=\`'#`5WLBT7UW#C78`C;PG`````%6)Y5.#[!2+30R+70@/MT%\@^`<@_@, -XM=%>#^!1T,H/X!+H"````="W'1"0("@```(M!((M`$(D<)(E$)`3H+H8``(/$ -XM%+@!````6UW#C78`N@$```")5"0(BT%8B1PDB40D!.A(Z@$`@\046UW#B?8Q -XMTNOAC;8`````C;\`````53'`B>564X/L((M5#(MU"(N:@````(M*>('C``$` -XM`(7)=`>+0G2+`(L`B40D"(U%](E<)`R)1"0$B30DZ-_T`0"Z`0```(7`=18P -XMTH7;=!"+1?2!CJP$````$```B484@\0@B=!;7EW#C;0F`````%6)Y5WIQ^\! -XM`)"0D)"0D)!5B>56B=93BY"`````B0` -XM````BU@(N`$````Y^W1),?;V@Z\$```!=#6+@X````"+2`2X`0```(G*@^$? -XMP>H%T^`)A)58____BX.`````BT`$.?!^"8G&C;0F`````(L;.?MUO(U&`8U5 -XMX(E4)!"-E5C____'1"0,`````,=$)`@`````B50D!(D$).C"!_[_@_C_=!&% -XMP'4U,<"!Q%P!``!;7E]=PXD<),=$)`B*W0@(QT0D!`4```#H8+?^_X'$7`$` -XM`+@!````6UY?7<.+A;S^__^+<`@Y_@^$"O____:&KP0```$/A`H!``"+AH`` -XM``"+2`2)R(/A'\'H!8N$A5C____3Z*@!#X3H````C57PB50D!(DT).CQA/[_ -XMA<`/A<<```"%]@^$V````(M>$(7;#X3-````]H-5"````0^%P````(%[>/\# -XM```/AFX#``"+0W2)A<#^__^+0WB)1>R!BU0(`````0``BYW`_O__BY:````` -XMB=B#P`&)ES'1"0,``0``(E$)`C'1"0$`````(DT).B3*O__ -XMAS'1"0$_P```(DT).C0=?[_@_@(#Y3"@_@,#Y3`Z[['1"0(A-T("+L!```` -XMQT0D!`4```")-"3HU;3^_^ER_O__.=@/AAL!```IV(G:B87$_O__C47HB00D -XMBXW$_O__B?#H6_K__X7`=`N+3>B%R0^$J0```,=%V`````"X(````,=%W*"& -XM`0#'A(74_O__`````(/H`77PBY7(_O__N`$```"+2@2)RH/A'\'J!=/@"825 -XMV/[__XU%V(E$)!"-A=C^___'1"0,`````,=$)`@`````B40D!(N5R/[__XM" -XM!(/``8D$).A9!/[_@^@!=2V+A<3^__^)7"0$B40D"(N5P/[__XD4).CH"?[_ -XMBYW`_O__`YW$_O__Z5W]__^+C<3^__^)VHGPZ/3Z__^%P`^%JOW__XM%\(U0 -XM`8E5\(N5Q/[__XE<)`R)1"0(QT0D!`$```")5"00B30DZ+&&_O^%P'4VBT7P -XMB49,BY7$_O__@^H!@[W$_O__`1G`]]`APHE64,=$)`0!````B30DZ%ZV`0") -XMP^D9_?__NP$```#I#_W__X&@5`@``/_^___I*/W__XU#>,=$)`P`!```B40D -XM"(M#=(DT)(E$)`3HX"?__X7`#X0&_?__B4-TZ63\__]5B>6#[$B)=?B+=0B- -XM1?")7?2)??R)1"0$B30DZ/^`_O^%P'0;NP$```")V(MU^(M=](M]_(GL7<.- -XMM"8`````C47DB40D$(M%\(U]V(E\)`S'1"0(`0```(DT)(E$)`3H>W[^_X7` -XM=;R+3>2-1>"+5=B)!"2)\.AD^/__A$(7; -XM#X3<````]H-5"````0^%SP```(M%Y(/H@#M#>`^'E0$``(M3=(E5T(M#>(E% -XM[(&+5`@````!``"+1>2)1"0(BT78B40D!(M%T(D$).@O"/[_QT7,`0```.L) -XMB?;'1")!"2)\.@%]___AB+1>B+OH`` -XM``")1"0(BT78B40D!(M'!(D$).C``/[_.T7HB<-T9X7;=%;'1"0(A-T(",=$ -XM)`0%````B30DZ/FP_O_I`____X&@5`@``/_^___IW_W__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AK)?__A<`/A+C]__^)0W3I0?[__^BZ!/[_QP`%````ZYW' -XM1"0(`0```,=$)`0FN@@(BT<$B00DZ#<`_O^#Z`$/A77___^+?$(7;=%N+5=`Y4W1T4XM%Y`-%Z#M%['=UBT7H,=N)1"0(BT78 -XMB40D!(M%T`-%Y(D$).@E!O[_BT7D`T7HB30DB40D#(M%T(E$)`B+1?")1"0$ -XMZ(&`_O^%P`^5P^DV_O__@:-4"```__[__XM%Y`-%Z#M#>'="BT-TB470BT-X -XMB47L@8M4"`````$``.N+BU70B40D#(U%[(E$)`B)-"2)5"0$Z'`D__^%P`^$ -XMO?S__XE%T.EA____B40D#(U#>(E$)`B+0W2)-"2)1"0$Z$8D__^%P`^$D_S_ -XM_XE#=.N7B?:-O"<`````58GE5U93@>S,!```BU4(BT4,]H*L!````@^$"@(` -XM`(M0>(72=!.)1"0$BTT(B0PDZ&NN__^%P'4?QT0D"`````#'1"0$-````(M% -XM"(D$).@\N/[_A% -XM8/O__ZO="`BX<````+^QW0@(HO@0"0CI@P```,8%]1`)"'3H8`7^_XN55/O_ -XM_\<$)/`0"0B)5"0(B40D!.B6!?[_QT0D!)`!``#'!"3P$`D(Z.($_O_'!"3P -XM$`D(Z,8"_O_'1"0(`````,=$)`0"````QP0D\!`)".BJ`_[_@_C_B<8/A2(! -XM``")'"3H9P+^_P^V!X/'`83`#X3A````Q@7U$`D(<`^V1__'1"0(`````,=$ -XM)`0"````QP0D\!`)"*+Y$`D(Z%T#_O^#^/^)PP^%1O___^B-`?[_@S@"=;'' -XM1"0(7`H)",=$)`0%````BT4(B00DZ&FM_O_K0\=$)`@`W@@(QT0D!`,```") -XM%"3H3ZW^_X'$S`0``+@!````6UY?77UW#BXU@^___#[9!`8/!`8F-8/O__X3` -XM#X5R_O__Z,@`_O_'``(```#I-?___XN-3/O__XE!"(G(@\`4B5D$=!#'1"0$ -XM\!`)"(D$).BJ!/[_BX50^___A`'^_\=$)`@!````QT0D!,?="`C'!"3.W0@(Z%P!_O_'1"0(`0```,=$ -XM)`3-H0@(QP0DUMT(".A``?[_Z`L"_O_'1"0(`````,=$)`1A=``@BXU,^___ -XMBT$(B00DZ`K]_?^+E4S[__^+0@2)!"3H.0#^_\=$)`0`````BXU,^___BT$( -XMB00DZ,#\_?_'1"0$`0```(N53/O__XM""(D$).BG_/W_QT0D!`(```"+C4S[ -XM__^+00B)!"3HCOS]_XN53/O__XM""(D$).C=__W_BTT(]H%P`P```0^$V@$` -XM`(N!:`,``(T$0,'@`@-!$(M8.,=$)`0O````B1PDZ`O^_?^)VH7`=`.-4`&) -XM5"0$QT0D#`````#'1"0(G-X("(D<).@6_/W_QT0D#.FY"`B)7"0(QT0D!`4` -XM``"+50B)%"3HXZ_^_\<$)'\```#HRP#^_\=$)`@`````QT0D!`4```"+50B) -XM%"3HK*K^_[@!````Z6_[__\QP(VU:/___\=$AGP`````@^@!@_C@=?"+30BX -XM`0```,=%Z`4```#'1>P`````BXF`````B8U8^___BTD$BB)5"00QT0D#`````#'1"0(`````(ET)`2+C5C[__^+002#P`&) -XM!"3H6?K]_X/X_P^$Z````(7`#X3#````C85H^___B85$^___B<.+A43[__^) -XM7"0$*=@%``0``(E$)`B+E5C[__^+0@2)!"3HY`'^_X/X_P^$KP$``(7`#X6[ -XM````QT0D".W="`C'1"0$`P```(M-"(D,).BTJ?[_BT4(B00DZ/GO__^X`0`` -XM`.EL^O__QT0D"&.+"`C'1"0$!0```(M%"(D$).B$J?[_Z5O\___'1"0(UKD( -XM",=$)`0%````BU4(B10DZ&2I_O_I._S__XM%"(N8:`,``.DJ_O__QT0D"-S= -XM"`C'1"0$`P```(M-"(D,).@VJ?[_ZX#'1"0(BMT(",=$)`0%````BU4(B10D -XMZ!FI_O_I8/___P'#.9U$^___#X,Q`0``C95H^___C;UI^___B95<^___ZV:- -XM3?")3"0$BT4(B00DZ-!V_O^%P`^%)/___XU'_RN%7/O__XE$)!"+E5S[__^) -XM5"0,BT7PQT0D!`````")1"0(BTT(B0PDZ*=[_O^%P`^%Z_[__XF]7/O__XGX -XM@\EC____BU4(BT(0@+A2!P``_W6MB10DQT0D!/\` -XM``#H!FG^_X/X"`^4PH/X#`^4P.O"QT0D"(3="`C'1"0$!0```(M%"(D$).@- -XMJ/[_Z53^__\YA43[__]S*RN=7/O__XV5:/O__XE<)`B+A5S[__^)%"2)1"0$ -XMZ,+]_?^-C6C[__^-'!DYG43[__\/A,/]__^-1>C'1>@`````QT7LH(8!`(E$ -XM)!#'1"0,`````,=$)`@`````B70D!(N56/O__XM"!(/``8D$).C`]_W_@_C_ -XM#X23````@^@!#X1T_?__C47PB40D!(M%"(D$).A8=?[_A<`/A:S]__\KG43[ -XM__^-E6C[__^)5"0,B5PD$(M%\,=$)`0`````B40D"(M-"(D,).@R>O[_A<`/ -XMA7;]__^+10B)V8V5:/O__^@J[O__A<`/A=KW__^+50B+0A"!BJP$```````! -XM@XA4"```(#'`Z<'W__^-="8`QT0D"(K="`C'1"0$!0```(M-"(D,).C5IO[_ -XMZ1S]__]5B>6#[!B+50R+30B+0GB%P'44QT0D!`(```")#"3H/;/^_S'`R<.+ -XM0B"+0!")1"0(BT)TB0PDB40D!.A@O/[_R87`#Y7`#[;`PY"0D)"0D%6)Y5=6 -XM4X/L/(M]#(M=$(UU[.AM^OW_QP``````QT0D"`````")="0$B3PDZ//V_?^# -XMP`%U-.A)^OW_@S@$B?9TT,=$)`@TW@@(QT0D!`4```"+10B)!"3H(Z;^_[@! -XM````@\0\6UY?7<.+5>R)T(/@?X/X?P^$O0$``(7`#X3^````BWT8A?]T#(/X -XM#8UV``^$H@$```^V`SP@#X2'`0``/`D/A'\!``"-1?"_/-X("(E<)`2)1"0( -XMBU4(B10DZ#R9_O^)!"2)P^AV_?W_B<:+1>R$P'@%OT^-"`B)PKB@X`@(@^)_ -XMZPX]F.$("`^$3P$``(/`"#L0=>Z+0`2#_A2Z/O$("'<%ND^-"`B#_A2)1"08 -XMB?")?"0EF_O__@\,!Z5____^#Q#PQP%M>7UW#B50D#,=$)`A*W@@( -XMQT0D!"@```#'!"1`(0D(Z,+X_?^X0"$)".F1_O__N4^-"`CI9?___X&@5`@` -XM`/_^__^X`0```.G8_?__C;8`````58GE4X/L%(M%"(M8$,=$)`@`````QT0D -XM!#0```")!"3HRZS^_[H!````A<`/A58!``"+50CV@JP$```"#X5.`0``BT48 -XMA<`/A80!``"+112%P'0EBU44B50D!(M-"(D,).@*U/__QT0D!":Z"`B+10B) -XM!"3H]]/__XM5"(D4).B]OW_A<"-4`$/ -XMA+H!``"$VP^$I`$``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!``````BTT0 -XMQT0D"-NY"`B)5"0$B00DB4PD#.@#]/W_BT4(]H!P`P```0^$3@$``(G"BX!H -XM`P``C01`P>`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B)!"3HK*?^ -XM_\<$)'\```#HE/C]_\=$)!``````QT0D#`````"+51")1"0$B50D"(M-"(D, -XM).CJ^___B<*#Q!2)T%M=P\=$)`0!````B10D_Y.@"```A\=$)`@"```` -XMBTT,BT$@BP")1"0$BT4(B00DZ$QM``"#Q!2Z`0```%N)T%W#QT0D!":Z"`B+ -XM10B)!"3HC-+__XM%%(7`#X5E_O__Z87^___'1"0(U;D(",=$)`0%````BTT( -XMB0PDZ.&A_O^#Q!2Z`0```%N)T%W#C70F`,=$)`@`````QT0D!`````"+50B) -XM%"3_DUP(``"+30B#B:P$```4BT48A<`/A/S]___I>____XG"BX!H`P``C01` -XMP>`"`T(0BT`XZ4?^__^+30B+@6@#``#IN/[__XM-"(N!:`,``.EC_O__A-MT -XM'(M5"(N":`,``(T$0,'@`@-"$(M`.(G"Z2;^__^+30B+@6@#``")PND6_O__ -XMD(UT)@!5B>564[L!````@>P@!```BW4(QT0D"`````#'1"0$-````(DT).@% -XMJO[_A<`/A:D```#VAG`#```!#X6H````BX9H`P``C9WX^___B1PDB40D#,=$ -XM)`B9W@@(QT0D!``$``#H;/7]_XM&$,=$)`@`````QT0D!`````")-"3_D)P( -XM``"+AJP$``")7"0(QT0D#`````")-"2#\!#!Z`2#X`&)1"00BT4,B40D!.B. -XM_/__BU80QT0D"`$```")PXM&((M`"(DT)(E$)`3_DIP(``"!CJP$``````@` -XM@<0@!```B=A;7EW#BX9H`P``C01`P>`"`T80BT`XZ4?___^058GE5XG'5E.# -XM[%R)5<")3;R+6!R%VP^$$`4``/:`B`,```%U,8N0@`,``(72#Y3`A,!T/<=$ -XM)`B@X0@(QT0D!`0```")/"3HY)_^_S'`@\1<6UY?7<.+@(`#``"-!$#!X`(# -XM1Q"+2#B%R0^4P(3`=WC_````#X9^!```BW-TB77@QR<=%T`````")1;CK,HN'R`,``(T$0,'@ -XM`@-'$(M0.(T$"HG6B46T,=*)R/?VBTVT@T70`2G1.5W0#X2[````BU70BW6X -XM#[8$,CP@#X29````/`D/A:$```#VA]`#```!=:N+E\@#``#KM<=%\`````"- -XM1?#'1"0,``$``(E$)`C'1"0$`````(D\).BZ$O__A<")1=P/A>[^__^#Q%RX -XM`0```%M>7UW#QT74`````(N/@`,``(T<2?:'B`,```&)R'0-C02=``````-' -XM$(M`.(/"`0%%U(E5Z`^V`CP^=-@\/`^%7O[__^O.@T70`8/!`3E=T`^%1?__ -XM_X-]O`$/A.8!``")SBMUU#M-U!G`]]`AQCGQ#X3;`0``A?_'1>``````#X2& -XM`0``BT<0A<")1>`/A'@!``"+5=PY4'0/A&P!``"-!!X[1?`/A[X!```/MH_0 -XM`P``BY?(`P``BUWPK7=R)7"0,BW7"+5>"+0'2)1=R+0GB)1?"!BE0(`````0``Z67^ -XM__^+1=2--`'I)?[__XM5Q#E73`^%M_S__\=%V`$```#IJ_S__XE$)`R-1?") -XM1"0(BU7(E$ -XM)`B+0G2)/"2)1"0$Z/,=$ -XM)`P``0``B40D"(M#=(D\)(E$)`3H.P___X7`#X2$_/__B4-TZ53[__^!H%0( -XM``#__O__N`$```#IE?K__X&@5`@``/_^___I-/[__Y"-M"8`````5;D!```` -XMB>6+10B+50Q=Z1SZ__^-M@````"-OP````!5,"N-192)1"0$B1PDZ!OR_?^%P'48 -XMBU7(BT7$@_H`?$A^/.C%[?W_QP`,````BU4(QT0D#)^M"`B)="0(QT0D!`4` -XM``")%"3HK)[^_[@!````BUWTBW7XBWW\B>Q=PST``!``=[V-=@"#P`&)!"3H -XMZ>_]_X7`B460=&F+59"+1<3&!!``B50D!(E$)`B)'"3H6/']_XD<)(G'Z-[M -XM_?^#__]T+HM5R(G[BT7$P?L?,=HQ^`G"=%KH,>W]_\<`!0```(M%D(D$).@P -XM\/W_Z5S___^+5N?]_XD$ -XM)(G&Z%#N_?^%P(G#=$J)="0,B7PD!(E$)`B+1>R)!"3H4^?]_XE<)`S'1"0( -XMO^$(",=$)`0#````BT7PB00DZ*"7_O^+=?B)70B+??R+7?2)[%WIH.[]_XM% -XM\,=%$`````"+7?3'10P%````BW7XBWW\B44(B>Q=Z6>7_O^-M"8`````58GE -XM5U93@^P\]D4@$<=%V``````/A;P```"+10CV@+0!```!#X55!```BTT(BX&L -XM`0``A<`/E<"+70@/ML")1=CV@_P!```!#X1B!```BX/T`0``C01`P>`"`T,0 -XMBT`XA<`/E<"$P'0$@TW8`HM%"/:`\`$```$/A"`$``")PHN`Z`$``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T/(MU$(7V=#&+'?P@"0B+-0@A"0B+31"+50SK`X/" -XM`0^^`H7`>`PYV'T(9H-\AC0`>`N#Z0&)]G7C@TW8`HM=((/C`HE=T'00BWT( -XM]H>N!```0`^%>@4``(M%((/@"(E%U'00BU4(]H*N!```@`^%?04``(M=%(7; -XM#X01`@``]D4@`0^$6@(``(M-$+@W````A+?0B+7Q"%VW0-]H-5"``` -XM`0^$.`4``(7`QT7P``````^%HP<``,=%X`````"P`;X:````BUW@Q@->QP`H -XM6R`)QT`$77PO7,=`""HH6U['0`PJ77QMXD(UT)@`/OL.)1"0$QP0DS.$(".CQY_W_A@\8!@VT0`71%@T4,`8M]#`^V'X#[('7#QP8H6R`)QT8$77PO7,=&""HH -XM6U['1@PJ77QO]_XM-%(L!Q@0X`(7V="B+70B%VW06BUT(BT,0A7UW#]D4@$`^$/@$``(M% -XM"(7`#X1R`P``BTT(BUD0A=L/A&0#``#V@U4(```!#X57`P``BT40`<`[0W@/ -XMAP\(``"+0W2)1>"+0WB)1?"!BU0(`````0``BT40A<`/A?4$``"+50P/M@+' -XM1=P`````/%Z+=>`/A%H&``"+11"%P'5T#``")]@^V00&)SX/'`3PO#X2_ -XM`P``/#\/A+<#``"-M"8`````#[[#B40D!,<$)-OA"`CHH>7]_X7`=`S&!ER+ -XM10R#Q@$/MAB('H/&`8-M$`$/A)D#``")?0R+30P/MAF`^UQTH(M]#(/'`>NX -XM]D4@!`^$V0$``(/$/+@!````6UY?7<.)PHN`K`$``(T$0,'@`@-"$(M`.(7` -XM#Y7`Z9O[__^+30B+N>@!``"%_P^5P.GF^___BWT(BX?T`0``A<`/E<#IHOO_ -XM_XM%$#'VNP$```"%P`^$:P$``(M5$##;BTT,ZQR0/"H/A.T````\+@^$Y0`` -XM`(/&`8/J`71:@\$!#[8!/%L/A,\```!^V#Q<#X2`````/'YUW(M]"/:'4`(` -XM``$/A.D```"+AT@"``"-!$#!X`(#1Q"+0#B%P`^5P(3`=+2+70@#L^0```"# -XMZ@&[`0```'6FA=L/A)L!``"+70B%VW07BU4(BUH0A=MT#?:#50@```$/A$(% -XM```Q_X7VQT7P``````^%$@8``(G[Z>D!``"#^@$/AE?___^#P0&#Z@$/M@$\ -XM/'0@#XXL`0``/%L/A``$```\?@^$GP,``#P^B?8/A2(!``"#Q@B[`0```(GV -XMZ1[___^+?0CVAU`"```!=#^+AT@"``"-!$#!X`(#1Q"+0#B%P`^4P(3`#X3S -XM_O__@\8"NP$```#IYO[__XM%"(N`2`(``(7`#Y7`Z1O___^+10B+N$@"``"% -XM_P^4P.O(*?N^`0```(E=$(/#`8E]#(M]#(E]X.E$_/__B7PD"(E$)`2+10B) -XM!"3HXOC__X/$/+@!````6UY?7<.)^`6P````B00DZ"KG_?^!IZP$``#__[__ -XMZ6CZ__^)T`7(````B00DZ`SG_?^+30B!H:P$``#__W__Z6+Z__\Y0W@/@C0$ -XM``"+2W2)3>"+0WB)SH/&&HE%\(G(@8M4"`````$``(/``>FW^O__/"H/A-0" -XM```\+@^$S`(``(/&`I"-="8`Z?[]__^+71`Q]H/#`>D^____BT40QT7P```` -XM`,=%X``````!P`^$M/S__XE$)`R-1?")1"0(QT0D!`````"+70B)'"3HQP3_ -XM_X7`B47@#X6+_/__Z2G]__^-M"8`````@/HJ#X07`0``@/HNC70F``^$"@$` -XM`(@3@\,!@VT0`0^$N_[__X-%#`&+10P/MA"`^EL/A.@```!^QH#Z7'1^@/I^ -XM==*+30CV@5`"```!#X0(`0``BX%(`@``C01`P>`"`T$0BT`XA<`/E<"$P`^% -XM+0(``,8#?H/#`>N@D(UT)@"+?0R)PX-M$`&('H/&`8/'`H-M$`$/A6?\__^+ -XM1=R%P'0&Q@8D@\8!*W7@B?.)=1"#PP&^`0```.F"^O__@WT0`0^&<@(``(-% -XM#`&+30R#;1`!#[81@/H\#X0_`P``#X_I`0``@/HJ=`V`^BZ-="8`#X7R`0`` -XMBTT(]H%0`@```0^$L@,``(N!2`(``(T$0,'@`@-!$(M`.(7`#Y7`ZR20BTT( -XM]H%0`@```71#BX%(`@``C01`P>`"`T$0BT`XA<`/E,"$P`^$R_[__\8#7(M- -XM#(/#`0^V$>FZ_O__BT4(BX!(`@``A<`/E<#I_/[__XM%"(N`2`(``(7`#Y3` -XMZ\2+30R+71"+50P/MD09_X/J`3PO#X2)`0``/#\/A($!```\),=%W``````/ -XMA(8"``"+?0P/M@<\+W0(/#\/A=;Z__^#10P!BU4,@VT0`0^V`NG#^O__B40D -XM#(U%\(E$)`C'1"0$`````(M%"(D$).B^`O__A<`/A"C[__^)1>"+=>"#P`&# -XMQAKI-/C__XM]"/:'4`(```$/A#P!``"+AT@"``"-!$#!X`(#1Q"+>#B%_P^4 -XMP.FT^___QT0D"`````#'1"0$!0```(M-"(D,).B^C?[_BUT4BP.%P`^%'OG_ -XM_^DX^?__BWT(]H=0`@```0^$T````(N'2`(``(T$0,'@`@-'$(M`.(7`#Y3` -XMA,`/A!#[__^#Q@&[`0```.D#^___BTT(BY'@````BX'D````B1PDB50D!(E$ -XM)`CH]>/]_XM%"`.8Y````.E._?__@/I;#X0@_O__@/I^#X3]````@/H^#X3< -XM````Q@-"#10P!@VT0`8/&`>F0^?__ -XM@:!4"```__[__^FG^/__@VT0`75DBWT,#[8'QT7<`````.E>^?__Q@-<@\,! -XMZ=?\__^+10B+@$@"``"%P`^4P.DT____BT4(BX!(`@``A<`/E,#I@?K__SMS -XM>`^'6`$``(M#>(M[=(E%\(&+5`@````!``#IKOK__XM-$`^V!!'I"?[__XE$ -XM)`R-0WB)1"0(BT-TB40D!(M5"(D4).C\`/__A<`/A&;Y__^)0W3IG_O__\<# -XM6ULZ/F;'0P0Z7<9#!EV#PP?I/_S__XM%"/:`4`(```$/A+D```")PHN`2`(` -XM`(T$0,'@`@-"$(M(.(7)#Y7`A,`/A6;\__^+10B+D.````")P>F,_O__QP-; -XM6SH\9L=#!#I=QD,&78/#!^GF^___@VT0`0^$N0```,=%W`$```#I9/W__XU% -XM\(ET)`R)1"0(QT0D!`````"+30B)#"3H1P#__X7`B<%N/[__P````#'A;S^__\`````QX7`_O__`````,>% -XMQ/[__P````"#Y@&)C93^__^#Z`D\:793BY6@_O__NP$```#'1"0("@```(M" -XM((M`$(D\)(E$)`3H/E4``('$?`$``(G86UY?7<.+AWP!``"-!$#!X`(#1Q"+ -XM6#B%VP^4P.E$____D(UT)@`/ML#_)(6TX@@(A?8/A2`5``#VAZX$``!`#X0U -XM%0``BXV4_O__QX7$_O__`0```(E-"(N%$/___X/``8F%$/___P^V`(3`#X5: -XM____BY7$_O__A=(/A*80``#VAZP$```"="&`O_0`````=!B+A;S^__\+A;C^ -XM__\+A<#^__\/A2T2``"+C:#^___'1?``````BX6@_O__BTEDB8T,____BT!L -XM.<&)A:3^__\/A_\4``"+1Q#V@%0(```$#X7O%```BY6\_O__BXW`_O__"Y6X -XM_O__QX70_O__`````,>%U/[__P`````)RL>%V/[__P````#'A0C___\````` -XMQX4$____`````(F5F/[__\=$)`P!````QT0D"`````#'1"0$`````(D\).CS -XM3/[_A\.``"+C0S___^-1>R-E1#___^)1"00B50D -XM#,=$)`@!````B4PD!(D\).@T5/[_A<`/A7,%``"`O_0`````=&:+A=C^__^% -XMP`^$BA(``#';A?\/A'H/``"+7Q"%VP^$;P\``(N5V/[__SE3=`^$8`\``(M5 -XM[#M5\`^'PQ```(E4)`B+A1#___^+E=C^__^)1"0$B10DZ+W>_?^+C=C^__^) -XMC1#___^+1>R[`0```#'VQX6P_O__`````,>%R/[__P$```#'A%&/___P````#' -XMA1S___\`````B8T@____BTT(B40D$(N%L/[__P.%$/___\>%)/___P````") -XM5"0,QT0D"`H```")1"0$B0PDZ.C:_?^#^`$/A$$#``"%P`^%%!4``(.-S/[_ -XM_P&%VP^%!`(``(N%&/___PN%'/___P^%\@$``(N%(/___PN%)/___P^%X`$` -XM`(N%K/[__X7`#X1M#P``BYT`____@\,!.YT(____=DF!^P`!``")V',%N``! -XM```!A0C___^+A03___^%P`^$O!0``(N%"/___XN5!/___XE$)`2)%"3H>MC] -XM_X7`#X1`$0``B84$____BX6P_O__`X40____BXT`____BY4$____#[8`B`01 -XM@X6P_O__`8.MK/[__P&)G0#___^[`0```,>%T/[__P$```#IK?[__\>%P/[_ -XM_P$```#IM?S__\>%N/[__P$```#IIOS__X"_]0`````/E(?U````Z9/\__^` -XMO_0`````#Y2']````/:'K`0```$/A'C\__^-1=2)1=2)1=CI:OS__X72#X7= -XM^___Z!_:_?_'``````"-A1#___^)1"0$BX40____QT0D"`H```")!"3HR=C] -XM_XG#BX40____@#@`=0F#Z`&)A1#____HWMG]_X,X(@^$5Q$``(N5H/[__XM" -XM;(E"9(/H`0'8B4)LB40D!(D\).@!4_[_AC[__^+C:#^__^#:5P! -XMZ=G[__^+A:#^__^#0%P!ZB+A;#^__\#A2#___^)3=R)3>2)1>"+1>R% -XMP'4.QT7@`````,=%Z`````#VAZP$```"#X1&`@``BU7L.57@<@:-0O^)1>`Y -XM5>AR!HU"_XE%Z(M%Y,=$)`0!````B3PDB4=,BT7HB4=0Z**'`0"%P`^%L0$` -XM`,=$)`@`````C5VXQT0D!`GB"`B)/"3HGWK^_\=$)`@`````B3PDB40D!.B[ -XM:`$`QT0D#`````#'1"0(`````(E<)`2)/"3HGTC^_X7`#X5>`0``BT7`@_@! -XM#X0H`@``<@6#^`1V#(E<)`2)/"3H:$/^_XM'$(.(5`@```3'A=#^__\!```` -XMQX74_O__`0```(7V#X1-"@``BYVL_O__A=L/A)<```"+G0#___\#G:S^__\[ -XMG0C___]V28'[``$``(G8_O__C474QT0D#``(``#'1"0(`````(E$)`2)/"3H)ST``(7` -XM#X4V____BT74BT`(#[8`B$7$#[9%Q#QQ#X3?_?__/'D/A:\)``"+A0S___\Q -XMTHNU&/___XN-"/___XE'3(N%`/___P.%&/___Q.5'/___XEW4(/Z`'P.#X]0 -XM`P``.<@/AT@#``"+E0#___^+A;#^__\#E03___\#A1#___^)="0(B10DB40D -XM!.AS^__\/A&,#```\7`^$$P,```^VM>S^__^)\8#Y -XM_P^$O@(```^VT8M'$`^VA`)3!P``@_@(#Y3"@_@,#Y3`A,!U"(32#X2H`@`` -XMBX?L````.X?P````#X0D!0``BX?P````BY?H````BXT`____B0R"@\`!B8?P -XM````BYT`____@\,!.9T(____OW__X.]^/[__P(/A.L"```/AS(#``"#O?C^__\! -XM#X3B`@``Z+;/_?^+C?3^__^^7````+I<````AS^__\/AHT"``"#A?#^__\!Z:7\___VAU`"```! -XM#X2*`0``BX=(`@``C01`P>`"`T<0BW`XA?8/E<"$P(V5&/___P^$<_S__XL: -XMBW($B=@A\(/``0^$8?S__XM*#(M2"(G0(C^__^+E>C^__^)\(@" -XM@\(!.YV<_O__B97H_O__#X0O_/__@X7D_O__`8N%Y/[__P^V,(GR@,(!#X4> -XM____BT<0@+A2!P``_P^%#O___\=$)`3_````B3PDZ/@\_O_I^?[__XN?2`(` -XM`(7;#Y7`Z7W^___'A;C^__\`````QX6\_O__`````,>%P/[__P````#I6O+_ -XM_X.]^/[__P,/A($"``"#O?C^__\$#X7/_?__B?(/ML([!?P@"0@/C>7^__^+ -XM%0@A"0CV1((U$`^$U/[__P^VM((T"```Z_[_BX?H````A<`/A8+Z__^[`0```,>'[`````````#I -XM-?C__P^VP/\DA5SD"`C'A?C^__\`````B?(/ML([!?P@"0@/C6?Z__^+%0@A -XM"0AF@WR"-``/B57Z__\/MK2"-`0``.E(^O__BX4(____B00DZ%O1_?_I@?K_ -XM_X.]^/[__P,/A"L"``"#O?C^__\$#X7!_/__B?$/ML$[!?P@"0@/C0KZ__^+ -XM%0@A"0CV1((U$`^$^?G__P^VM((T"```Z>SY__\IE0#___^)T,>'\``````` -XM``"+E0#___^+C0S___\#A03___^)/"2)5"0,B40D"(E,)`3HP4K^_X7`#X50 -XM]___BX4,____.4=8=`>#1V`!B4=8BX68_O__A@`````A<")5=R)5>0/A2,(``"+A;S^__^%P`^%Z`<``(NUP/[_ -XM_X7V="B+E:#^__^-1=R)1"0,C47DQT0D$``0``")1"0(B50D!(D\).BUL/__ -XMBYW4_O__@X4,____`87;#X0E`0``@+_T`````'4SBX6H_O__.4=,=0N+E;3^ -XM__\Y5U!T'8U'4(E$)`B+1TS'1U``````B3PDB40D!.A4[?[_BXW0_O__A%^/[__P````#I??W__\>%^/[_ -XM_P````#I1/S__\=$)`@$````BT(@NP$```"+`(D\)(E$)`3H1D0``.D#[___ -XMBXT(____B0PDZ(?/_?_I=/S__\>%P/[__P````#'A;C^__\`````QX6\_O__ -XM`````/9%#`(/A%#O___IGN[__X&C5`@``/_^__^+1>PY0W@/@JX!``"+2W2) -XMC=C^__^+0WB)1?"!BU0(`````0``BU7LZ77P___'A?C^__\`````Z=/]__^+ -XMC0S___\YC:3^__\/@LG^__^+1Q#V@%0(```$#X26[___Z;3^__^-="8`BX4` -XM____,=(#A2#___\3E23___^+C0C___^#^@!\27\$.0(``,>%T/[__P$```#I?//__XVV`````,=$)`3_````B3PDZ&`X_O^#^`@/ -XME,*#^`P/E,#IEO;__P^VM((T!```Z9+Z__^-1?")1"0(BX78_O__B50D#(D\ -XM)(E$)`3H]>O^_X7`#X3M\?__BU7LB878_O__Z0KO___'1"0(;.(("+L!```` -XMQT0D!`,```")/"3H(G?^_^G_[/__B40D#(U#>(E$)`B+0W2)/"2)1"0$Z*/K -XM_O^%P`^$F_'__XE#=.DH_O__@X7P_O__`<>%^/[__P````#I@_7__XN%[/[_ -XM_X.%\/[__P'!X`2-E"@8_/__Z3GY__^#A?#^__\!]H=0`@```0^$WP$``(N' -XM2`(``(T$0,'@`@-'$(M0.(72#Y3`Z?OX__^#A?#^__\!QX7X_O__`P```.DA -XM]?__@X7P_O__`<>%^/[__P0```#I"_7__X.%\/[__P''A?C^__\!````Z?7T -XM__^#A?#^__\!QX7X_O__`@```.G?]/__@:!4"```__[__^E8\___QT0D""'B -XM"`B[`0```,=$)`0#````B3PDZ`UV_O_I!//__\'@`HD$).AQS/W_Z7?Z__]\ -XM##T``0``D`^#8/?__[@``0``D(UT)@#I4??__X7_#X3+````BU\0A=L/A,`` -XM``#V@U4(```!#X6S````BT7L.4-X#X)G!```BT-TB878_O__BT-XB47P@8M4 -XM"`````$``(M5[.E9[?__QT0D"`````"[`0```,=$)`0%````B3PDZ'%U_O_I -XM3NO__XN5"/___XD4).C2R_W_Z?OV___'1"0(`````,=$)`0%````B3PDZ$%U -XM_O_I,_+__XN%R/[__X7`#X1Y_?__BX6L_O__,=N%P`^%C>[__X.-S/[__P+' -XMAS'1?``````A=(/A,'L__^-1?")5"0,B40D",=$ -XM)`0`````B3PDZ'OI_O^%P`^%AOW__^EN[___BX=(`@``A<`/E,#I*/?__\=$ -XM)`@TX@@(NP$```#'1"0$`P```(D\).BA=/[_Z7[J___'1"0(!@```+L!```` -XMQT0D!`````")/"3HGS\``.E%T/[__P````#' -XMA=C^__\`````QX4$____`````.E=^O__BX4`____*97\_O__QX?P```````` -XM`"G0B86P_O__B="+E?S^__^+C0S___\#A=S^__^)/"2)5"0,B40D"(E,)`3H -XM-T3^_X7`#X7&\/__BXT,____C47LC940____B40D$(E4)`S'1"0(`0```(E, -XM)`2)/"3H5#_^_X7`#X63\/__,=N%_P^$S0$``(M?$(7;#X3"`0``BX78_O__ -XM.4-T#X2S`0``BU7L.U7P#X>R`@``B50D"(N%$/___XN5V/[__XE$)`2)%"3H -XM],G]_XN-V/[__XN%"/___SF%L/[__XM=[(F-$/___W9,BX6P_O__/0`!``!S -XM!;@``0```84(____BX7<_O__A<`/A$`"``"+C0C___^+A=S^__^)3"0$B00D -XMZ)G$_?^%P`^$7_W__XF%!/___XN5L/[__XN%$/___XN-!/___RN=L/[__XE4 -XM)`B)1"0$B9VL_O__B0PDZ%W)_?^+AP$``(N5L/[__S';O@$```")E0#____I\.O__XN-N/[__PF-O/[__XN% -XMO/[__PN%P/[__P^%^OC__XN5H/[__S';@XJ`````0.E+[___BU4(NP$```") -XM1"0$B3PDB50D".@7VO__Z2[O__^+C0C___^)#"3HF,C]_^E)Z___C47`^".P$``(M3=(F5V/[__XM#>(E%\(&+5`@````!``"+5>SI -XM(O[__XN-"/___XD,).CTQ_W_Z;;M__]\#ST``0``C70F``^#*/G__[@``0`` -XMD(UT)@#I&?G__XN%"/___XD$).C!Q_W_Z3+Y__^)1"0,C4-XB40D"(M#=(D\ -XM)(E$)`3HSN7^_X7`#X3&Z___B4-TZ6_[__^+E;#^__\QV[X!````@XW,_O__ -XM`L>%R/[__P````")E:S^__^)E0#____I7NK__\=$)`CBX0@(NP$```#'1"0$ -XM`P```(D\).C2O__XM5[(F%V/[__^D;_?__BXT( -XM____B0PDZ.W&_?_I`O'__XE$)`R-0WB)1"0(BT-TB3PDB40D!.CZY/[_A<`/ -XMA/+J__^)0W3IF_[__XN-L/[__XN%!/___XF-`/___XF%W/[__XN5W/[__\>% -XMT/[__P$```")E03____I]>O__XVT)@````!5B>6#["B)7?2+70B)=?B+=0R) -XM??R+D\````"%T@^$E0```/:#K@0``$"-N[````!T/HM&>#')AQ=Z;;D__^-M@````"+1G2+`(L(Z]*-M"8` -XM````QT0D&`(```")?"04QT0D$`````#'1"0,`````(N#Q````(E4)`2)'"2) -XM1"0(Z`[8__^%P'2,BUWTN`$```"+=?B+??R)[%W#QT0D"`8```#'1"0$```` -XM`(D<).A@.@``Z]2-M"8`````C;PG`````%6)Y8/L*(E=](M="(EU^(MU#(E] -XM_(N3V````(72#X25````]H.N!```@(V[R````'0^BT9X,7UW#@\`!.3W\(`D(B47!Y``` -XM``````"+5=2)V8E4)`2+10@%L````(D$)(M5#(M%".C[X/__@\1,6UY?7<.) -XMSBMUW,=$)!@"````BT4(!;````")1"04BT4(!<0```")1"00BT4(B70D"`7` -XM````B40D#(M%W(E$)`2+50B)%"3H3-3__X7`=`JX`0```.G-_?__QT0D&`@` -XM``"+10@%R````(E$)!2+10@%W````(E$)!"+10B)="0(!=@```")1"0,BTW< -XMB4PD!(M%"(D$).C\T___A"K`````$```#'1=0!````Z7O^__^# -XMPP'I\?[__XM%"(7`#X0L`@``BU4(BW(0A?8/A!X"``#VAE4(```!#X41`@`` -XMBU70.59X#X(G`P``BT9TB478BT9XB47P@8Y4"`````$``(MUV,=%X``````/ -XMMA.$TG0P#[[".?@/A","``"`^EP/A*4```"`^GX/A/<```"#PP&(%H/&`8-% -XMX`$/MA.$TG70A?\/A/8!``"+1>"+30B%P(F!Y````'1$BX'@````A`"`T$0 -XMBT`XA<`/E<"$P`^$V/[__XM5"(/#`8N"X````(N2Y````(DT)(E$)`2)5"0( -XMZ!O`_?^+50B+@N0````!1>`!QNE__O__!;````#'1"08`@```(E$)!3'1"00 -XM`````,=$)`P`````BTT(BX'$````B50D!(D,)(E$)`CHRM'__X7`#X17_/__ -XMZ77]__^+10B+@$@"``"%P`^5P.EI____@\,!B`!#[83 -XM@\,!Z=7]__\/ME,!C4L!A-)T2@^^PCGX#X7;^___C4L"BS,``+@!````Z8#Z__^+30B+D4@"``"%T@^4P.EC -XM_O__A?]TO8G+Z1G\__^!H%0(``#__O__Z0K\___'1"0(`````,=$)`0%```` -XMB0PDZ`QH_O^+10B%P'02BU4(BT(0A=G,/MA.`^@ET:X#Z(+C_____=&%;7E]=PSGR -XM"(NX -XMF````#G:=2#K18M"!(E!!(M"!#G8=":)"(D4).C,O?W_BU8(.=IT)XL*.=EU -XMW(M"!(E&#(M"!(L*.=AUVHE."(D4).BEO?W_BU8(.=IUV8L6A=)T#SGZ=!V+ -XM1@2)0@2+1@2)$(DT).B!O?W_@\0,,53B=.#[`2+$HN(F````(72="N+0P2)0@2+0P2)$(M#"(D$).@YO?W_ -XMB1PDZ#&]_?^#Q`0QP%M=PY"-="8`BT,$B4$,BQ/KT8VV`````%6)Y593@^P0 -XMBW4(BYZ8````BP,YV'0@B40D!(DT).CM_O__BP,YV'7NBU,(A=)T#HGPZ'G_ -XM__^+4PB%TG7RBT,4AR+4`B% -XMTG7NC7L!B5WPZTV-M@````")="0(BU7PB00DB50D!.CQN_W_BT,(Q@0P`,9# -XM$`#'`P````"+5>R+0@R)0P2+0@R)&(E:#`^V3_^$R0^$EP```(E]\(/'`0^V -XM3_^$R70A#[[1A=)X[CL5_"`)"'WFH0@A"0CV1)`V`G3:C;8`````C7?_*W7P -XM@_X!=K['!"04````Z$V[_?^%P(G#=%6-1@&)!"3H/+O]_X7`B4,(#X5=____ -XMQT0D"`````#'1"0$!0```(M%"(D$).BB9/[_BT,(A<`/A3?___^)'"3HH[O] -XM_[@!````ZP(QP(/$'%M>7UW#QT0D"`````#'1"0$!0```(M5"(D4).AC9/[_ -XM@\0B+1?")7"0(B4PD!(D$).@"NOW_BU7PBTWP@\(( -XMB57LB5$(B5$,QT$0`````(M%Z(MP%(7V=`B)R(/`'8E!%(M5Z(MR"(/""(E5 -XMW#G6=2_IN````(M-[(D+BU7PBT(,B4,$.TH(#X2-````B1B+3?")60R+-CMU -XMW`^$C@```(M>%+\L````A=MT!HM^&(/'+8M.((7)=`B+1B2#P`$!QXD\).@_ -XMN?W_A<")PP^$$@$``(E\)`B)="0$B00DZ%6Y_?^+5A2%TG0&C4,HB4,4BT8@ -XMA2+1?")$(M"!(M-\(E!!#L2#X3&````BU7DBTWP -XMBT($B0B+1>2+5?")4`2+3>B+1>"+"3G!B4WH#X6*_O__BU7@BW((A?9U6^FY -XM````C;0F`````(L&B0.+1@2)0P2+1@B)0PB+1@R)0PR+1A")0Q"+1@B)!"3H -XM;;+]_X7`B4,(#X2@````QP,`````BU7DBT(,B4,$BT(,B1B)6@R+-H7V=&/' -XM!"04````Z"FX_?^%P(G#=9^+30S'1"0(`````,=$)`0%````B0PDZ)1A_O^X -XM`0```(/$+%M>7UW#B0KI/O___XM5#,=$)`@`````QT0D!`4```")%"3H96'^ -XM_[@!````Z\^+3>"+012%P'02B00DZ-"Q_?^+5>2%P(E"%'23,<#KK[`!ZZN- -XM=@"-O"<`````58GE5U93@^PLBT4(BX"8````B47HBS@YQP^$-P(``(M%"(-X -XM."(/A@4"``"+0!#'1>P!````]H!4"```!`^%"0(``,=$)`P!````QT0D"``` -XM``#'1"0$`````(M%"(D$).CZ)/[_A@/A,8!``"+=PB-5PB)5>0YU@^$@`$``(GPZV.0C70F`(U$`^:)1"00QT0D -XM#!H```#'1"0(&@```,=$)`0.YP@(BU4(B10DZ'61__\Y=Q`/A)0````Y=P@/ -XMA*<```#'1"0$)KH("(M%"(D$).A0D?__BS8[=>0/A!P!``"+1P@YQ@^$\@`` -XM`,=$)`2WW`@(BT4(B00DZ">1__^+1@B%P`^$S````(M8"(D<).C%M_W_@_@> -XM#X=H____B5PD$,=$)`P>````QT0D"!X```#'1"0$&^<("(M%"(D$).CAD/__ -XM.7<0#X5L____QT0D!.#A"`B+50B)%"3HQ9#__SEW"`^%6?___XM?%(7;#X1. -XM____BT4(BT`XB47P@^@>@_@8#X8Y____B1PDZ$BW_?^YMMP("#MW$(G"=`6Y -XMM=P("(E<)!"+1?"#Z",YT'8"B=")1"0,B4PD",=$)`3PF`@(BU4(B10DZ%B0 -XM___I\/[__XUV`(M>%.DO____BT7LQT0D!`GG"`B)1"0(BU4(B10DZ"Z0___I -XM`O___XM5"(L_BT(0]H!4"```!'4D@T7L`>D2_O__QT0D"/+F"`C'1"0$`P`` -XM`(M%"(D$).CD7O[_@\0L, -XM7UW#BU,(BT,,B4(0BT,0BU,(B4(4BT8@9H-(&`''1"0,(````,=$)`@````` -XMBT,(B30DB40D!.BM#/[_A$``0``7>GM_O__B1PDQT0D"`````#'1"0$`0```.@U -XM^?__@\04N`$```!;7<.-=@"-O"<`````58GE5U93@^PLBT4(B[B8````BQ(7`=1V+10P/MTA\BT4(@>$``0``Z(7^__^#Q"Q;7E]= -XMPX/H`70%Z->N_?^+072+`(L`QT0D"`H```")1=R-1?")1"0$BT7+5>`/A9+^__\QP.F@_O__D(UT)@!5B>564X/L$(MU -XM#(M="(M&"(7`='(QTCE#('0@QT0D"!$```"+11")'"2)1"0$Z(T%_O^%P'0. -XMN@$```"#Q!")T%M>77<.+1A2)'"2)1"0$ -XMZ#H(_O^%P(E&"`^%=/___^N4C;8`````C;PG`````%6)Y8/L.(E]_(M]#(EU -XM^(MU"(E=](M'"(7`#X0``0``C47PB40D"(ET)`2+1A")!"3H>IW^_X7`=!:X -XM`0```(M=](MU^(M]_(GL7<.-="8`BT7PQT0D"`````")-"2)1"0$Z!F1`0"% -XMP`^%T0```(M'"#M&(`^$]0```(M5$(E$)`2+1?#'1"0(`````(E4)`R)!"3H -XM!PG^_X7`=52+1PB+7?"+0`C'1"0$`````(DT)(E$)`CH1A#__XE#)(E#*(M% -XM\(&@K`0``/_^__^+1?"!B*P$``"`````BT7P@8ZL!````!```(E&%#'`Z4[_ -XM__^+1?#'1"0$`````(D$).@IO[_A<`/A88```"+@ZP```"%P'0OBU7LC4-0 -XMQT-0`````(E$)`B)'"2)4TR)5"0$Z*S,_O\QP(M=](MU^(M]_(GL7R)1"0$Z/DE_O^%P'6IBT4(QT0D!``` -XM``")'"2)1"0(Z#[T__^X`0```.NMC;0F`````,=$)`0H````B30DZ&2K_?^% -XMP'0R*?#'1"08A````,=$)!0`````B40D$(ET)`R)?"0(B7PD!(D<).B2I?[_ -XMA<`/A#3___^+10C'1"0$`@```(D<)(E$)`CHT_/__[@!````Z3____^)]HV\ -XM)P````!5B>6#[!B)??R+?0B)7?2)=?B+AY@```"+&#G##X24````BT,0BW`$ -XMC4,(.<9T:(M5#`^W0GR)="0$B3PD)0`!``")1"0(Z/7[__^Z`0```(7`=1SV -XM0QP!B7,0=".)="0(B5PD!(D\).@S-___,=*0BUWTB="+=?B+??R)[%W#D(M# -XM%(M6((M.)(D$)(GXZ`W^__\QTNO9QT0D"(#F"`C'1"0$`P```(D\).AA5_[_ -XMN@$```#KNL=$)`@`````QT0D!`$```")/"3H\O+__S'2ZYZ-M"8`````C;PG -XM`````%6)Y8/L&(E]_(M]"(E=](EU^(N'F````(L8.<,/A)0```"+0Q"+,(U# -XM"#G&=&F+50P/MT)\B70D!(D\)"4``0``B40D".@6^___N@$```"%P'4=]D,< -XM`8ES$'0DB70D"(E<)`2)/"3H5#;__S'2B?:+7?2)T(MU^(M]_(GL7<.0BT,4 -XMBU8@BTXDB00DB?CH+?W__S'2Z]G'1"0(K.8(",=$)`0#````B3PDZ(%6_O^Z -XM`0```.NZQT0D"`````#'1"0$`0```(D\).@2\O__N@$```#KFXUT)@"-O"<` -XM````58GE5U93@>R<#```BT4(BU4,BX"8````B86(\___BT)XA<`/A5,#``"+ -XME8CS__^+C[__^) -XM1"0,QT0D"$/G"`C'1"0$``0``(E4)!")'"3HRJG]_\=$)`20O@@(B1PDZ.JD -XM_?^-C>CW__^)C7SS__^%P(F%I//__P^$QP```(N%I//__XV5Z/?__\=$)`0` -XM!```B10DB40D".C@IOW_A<`/A)$```"-C>CW__^+`8/!!(V0__[^_O?0(<*! -XMXH"`@(!TZ??"@(```'4&P>H0@\$"`-*#V0,KC7SS__^-0?^`O`7H]___"@^% -XMUP@``,:$!>CW__\`#[:%Z/?__X3`=#.+#?P@"0B-E>CW__^+'0@A"0@/OL"% -XMP'@/.%G//__P````"`>A@`#XE0!```BU4,]H*!`````0^%4PD``(M5#`^W -XM0GS'A9SS__\!````)0`!``")1"0(BXV0\___BT$(B40D!(M%"(D$).BS]___ -XMA<`/A4,$``"+E8CS__^+&CG3B=@/A#P*``"+M9#S__^)!HE6!(N%B//__SM` -XM!`^$&@H``(N5B//__XN-D//__XL"B4@$BX60\___B[6(\___B0:+E9#S__^+ -XMM9#S__^+0A"+2"2+4""+1A2)!"2+10CHG?G__XN%G//__X7`#X1D"```BTT( -XMBU,0BT$@B4((BU,0BT%,B4(,BU,0BT%0B4(0@<2<#```,`"`T80BU@XA=L/E<"$P`^%M_S__XNUB//_ -XM_XM%"(MV%(FUV//__XN`F````(F%L//__XDT).A%JOW_QP0D`0```(G#C4`A -XMB40D!.A@I_W_A<")A8#S__\/A(X'``")A9#S__^+E9#S__^#P`B)ACW__^)="0$ -XMBX7`\___B00DZ/>I_?^%P`^%N`(``,=$)!0`````QT0D&`````"+E<#S___' -XM1"0,`@```,=$)`@#````B50D$(N%&/C__\<$)`````")1"0$Z"^E_?^)A=3S -XM__^#P`$/A&D"``"+A=3S__\#A1CX__^+G=3S__^)PBN5U//__XF%X//__XG0 -XMP>@?`=#1^`'#.9W@\___=Q7K'8VT)@`````[G>#S__\/A#8*```/M@.#PP$\ -XM"G7J.9W@\___#X0@"@``B[W4\___B[7@\___BX78\___B?&)VNA3Z?__@^@! -XM#X3@`0``B=Z)\BGZB=#!Z!\!T-'XC1PX.=YW".L0B?8Y\W0.#[8#@\,!/`IU -XM\CG>=;PYO>#S__]V.HN-X//__XGZBX78\___Z`/I__^#^/]T(H7`#X3*`0`` -XM.[W@\___#QP$\"G3&.[W@\___=>Z+A1CX__^)1"0$B[74\___B30D -XMZ&BB_?^%P`^%=@0``(N5P//__XD4).C2I/W_A<`/A4`$``"+E=SS__^`8A#\ -XMBX7<\___BP"%P(F%W//__P^%'/[__XN5@//__XM""#F%S//__P^$,0<``(NU -XM@//__XE&$.G<^___BXV(\___BT$4A7UW#B=_I&_[__^CR -XMHOW_BXW<\___BP")00R+M<#S__^)-"3H::/]_XNUW//__X!.$`''A:SS__\! -XM````Z9#^__^%_P^$2/[__SN]X//__XE]Z',A@#\*=!R)^.L%@#@*="&#P`$[ -XMA>#S__^)1>AU[>D<_O__.[W@\___#X00_O__B?B`.`H/A07^___&``"+5>B) -XM?>B_`0```(F5T//__XU-Z,=$)`31U`@(C5__B0PDZ&NC_?^%P(G&=!^%VW4+ -XMB;6\\___@\B%_W0:A?9T%HD\ -XM).C.I?W_A<")A<3S__\/A0$!``"-=?")="0(BX78\___B40D!(M5"(D4).A@ -XM0?[_B47HC47LB40D"(N-W//__XM!"(E$)`2+=0B)-"3H/D'^_XE$)!")PXM% -XMZ,=$)`AIYP@(QT0D!`,```")-"2)1"0,Z)E-_O^+5?"%TG0>A?9T#XM6$(72 -XM=`B+0G0[1>AT5XM%Z(D$).B(I/W_BT7LAF-_O__B30DZ/VD_?^)M;3S__^)A@/H?W_BXW<\___BP") -XM00SI)O[__XN-O//__XE,)`2+M=CS__^)-"3H1Z']_X7`#X5O_/__BX6T\___ -XM@#@O=!J-E>C[__^)5"0$B00DZ"*@_?^%P`^%20$``#'VBY7(\___BXW$\___ -XMQP0D`0```(U$"C`!\(E$)`3HAJ']_X7`B<,/A!S\__^-0"B%]HE#%`^%N@$` -XM`(N%R//__XGR`U,4@\`!B40D"(N-M//__XD4)(E,)`3H^J+]_XN5R//__XT$ -XM%HE#&`-#%(/``8E#((N-Q//__XG*B4LD@\(!B50D"(E\)`2)!"3HQZ+]_XNU -XMS//__XDSBY6`\___BT(,B4,$.W((#X2<`0``B1B+C8#S__^)60SII_[__\=$ -XM)`B0E`@(QT0D!`4```"+30B)#"3HVTO^_^F@^___QT0D"(7G"`C'1"0$!0`` -XM`(M%"(D$).B[2_[_Z6K[__^+M:3S__^)-"3H[)_]_X/X"G7MZ1GW__^+@=0# -XM``"-!$#!X`(#01"+<#CIY_O__XM%"(M`%(E%"(N0F````(F5B//__^GR]___ -XMQT0D!"\```"+C=SS__^+00B)!"3H2)[]_X7`B<8/A)3^___&``"+A;3S__^- -XMG>CS__^)1"00BY7<\___BT((QT0D"+F4"`C'1"0$``0``(D<)(E$)`SHMI_] -XM_XV-Z/O__\8&+XE,)`2)'"3H89[]_X7`#X4__O__B[7<\___BW8(B;6X\___ -XMB30DZ**B_?^)QNDC_O__C;0F`````('$G`P``+@!````6UY?7<.)="0(BY6X -XM\___B00DB50D!.A.H?W_BT,4Q@0P+X/&`>DA_O__BT,0B[6,\___B7`(BT,0 -XMBY64\___B5`,BT,0BXV8\___B4@0@<2<#```,_O__BTT, -XM#[=!?,>%G//__P`````E``$``.GK^O__#[9"`8UR`<8"`(3`=2+I[?7__XUT -XM)@`YP7X<]D2#-4!T%8/&`0^V!H3`#X30]?__#[[`A_?^%P(G< -XM^O__C5@(B5X(B5X,QT0D!"P```#'!"0!````Z%*>_?^%P(G'#X0<^O__BT8( -XMB5\$B0<[7@P/A%T"``")>`2)?@B)?A#I,/7__XEP!.GO]?__B1Z)VHE>!#M; -XM!`^$)`(``(L#B7`$BXV(\___B?.)\(DQZ9[U___'1"0,4^<("(N%H//__\=$ -XM)`0#````B40D"(M5"(D4).CR3?[_B30DZ.Z?_?^X`0```.G+^?__QT0D#%/G -XM"`B+C=CS___'1"0$`P```(E,)`B+=0B)-"3HNTW^_XN%K//__X7`=%6+A;#S -XM__^+6`B%VW4*ZT:)]HL;A=MT/@^V0Q"#X`.#Z`%U[NA]G/W_BU,,B1#'1"0, -XMGZT("(M#",=$)`0%````B40D"(M5"(D4).AB3?[_@$L0`NN\BXV`\___B0PD -XMZ%*?_?^X`0```.DO^?__#[9"`8UZ`<8"`(3`#X3;\___#[[`A<`/B$0!``"+ -XM#?P@"0@YP0^.&`$``(L=""$)".L9@\")^NL2#[9"`8/"`83`#X2'\___#[[`A;V1(,U0'3? -XMQ@(`@+WH]___``^$9?/__X`^``^$7//__X`_``^$4_/__XDT).@&E_W_A<`/ -XMCD/S__^)/"3H1I_]_XDT)(G#Z#R?_?_'!"0!````C40#+HE$)`3H6)S]_X7` -XMB<,/A(K\__^-0"B)0Q2)?"0$B00DZ%R?_?^)/"3H!)_]_XE#&`-#%(/``8E# -XM((ET)`2)!"3H/)_]_XN%J//__XD#BY6$\___BT(,B4,$BXVH\___.TH(=$>) -XM&(NUA//__XE>#.G]\?__B7,$Z=G]__^+'0@A"0CI!?___XE^#.F>_?__B[W4 -XM\___Z27V__^+#?P@"0B+'0@A"0CIX?[__XE:".NVC;8`````C;PG`````%6) -XMY8M%#(&(@`````````B)10Q=Z4?P__^-M"8`````58GE@>S(````B77XBW4, -XMC47LB5WTC9U8____B7W\BWT(B40D&,=$)!0`````QT0D$`````#'1"0,```` -XM`,=$)`@`````QT0D!#H```")'"3H*Q0``(DT).CWG?W_B70D"(D<)(E$)`R- -XM1=R)1"0$Z+P/``")7"0$B3PDZ,#O__^%P'41BX>L!```@.3^#(")AZP$``"+ -XM7?0QP(MU^(M]_(GL7<.0D)"0D)"0D)"0D)!5B>6#[!B)7?2+70B)=?B)QHE] -XM_(G7]\,``$``#X6.````]\,``!``=!CVAI@"```!=4V+AI`"``"%P`^5P(3` -XM=5F#XQ!T&HM'"(E$)`B+1QS'!"3RF`@(B40D!.CSF?W_H00A"0B+7?2+=?B+ -XM??R)10B)[%WI^I?]_XVV`````(N&D`(``(T$0,'@`@-&$(M0.(72#Y7`A,!T -XMIXM'%,<$)+O<"`B)1"0$Z*:9_?_KDHD,).A575E.! -XM[,P```"+?0R+=12+'SG[=!`Y.P^$%0(``(D\).AHS?W_QT0D#"````#'1"0( -XM`````,=$)`0`````BT4(B00DZ,7._?^%P(G##X0K`0``BP>)>P2)`SE_!`^$ -XM,@,``(L'B5@$B1^+50B+0DR#P`&)0Q2+2A")C53____V@50(```0#X2B```` -XM@^;OB?&)\(/A0"4``@``QX5<____`````(F-4/___XF%3/___XU5V,=$)`P` -XM````QT0D"`````")5"0$BTT(B0PDZ'L(_O^%P`^%HP```(-]X`L/AJL```"- -XM1=@Q]HE$)`2+50B)%"3H10/^_XL3.?H/A+$```"+0P2)0@2+0P0Y^`^$LP`` -XM`(D0B1PDZ$#,_?^!Q,P```")\%M>7UW#C78`]\80````=#")7"00QT0D#``` -XM``#'1"0(`````(M5"(M"3(D4)(E$)`3H$HX``(7`=1Z!S@!```")-"2+31") -XMVHM%".C(_?__Z13___^-=@"^`0```('$S````(GP6UY?7<.+1>#_)(6,YP@( -XMBT,(@'P"_RX/A1D!``"+$S'V.?H/A4____^+0P2)1P2+0P2+$SGX#X5-____ -XMB1?I2/___[X!````Z2'___^+0Q"#P`$[0PQWBX50____A0[%?P@"0A]&J$((0D(]D20-0)T#H/Y"G0)@_D/#X66_O__BT,0#[95 -XMY(M+"(@4`8/``8E#$.E^_O__@WL,'P^&X?W__\=#$`````#I(?[__Y"-="8` -XM_R2-O.<("(E$)`R-0PR)1"0(BT,(B40D!(M-"(D,).A,M_[_A<`/A`3___^) -XM0PCI8?____9%[`(/A%_____WQB`````/A04!``#WQ@`(```/A84$``#WQ@`0 -XM``"-="8`=!&+0QR+4Q"#P`$YP@^$V?[__\=$)`P@````QT0D"`````#'1"0$ -XM`````(M%"(D$).@JS/W_A<")A5C___\/A(S^__^+0Q2+E5C___^#P`'WQA`` -XM``")0A1T1X.]7/___P(/A,@"``"+A5C___^)1"00BT,0B5PD",=$)`0````` -XMB40D#(M5"(D4).@PC```A<`/A3C^___'A5S___\`````B30DBTT0BT4(BY58 -XM____Z-K[__^+C5C___^).8M'!(E!!#D_#X2K`@``BT<$BY58____B1"+C5C_ -XM__^)RXE/!.D<_?__B5\$Z2+E43___^( -XM`HM#",9``0"AH!0)"(7`#X7=`P``BQ4$(0D(BT((@^@!A<")0@@/B.(#``"+ -XM`C'VQ@`*@\`!B0+I2OS__XM#$#M#'`^'"_W___?&$`````^$__S__\>%7/__ -XM_P$```#I\/S___?&$`````^$JOO__XM+$(7)B4V`#X2<^___@[U<____`0^$ -XM'`$```^#!`$``(M%@#M#'`^'??O__XM5"/:"T`,```$/A/,"``"+@L@#``"- -XM!$#!X`(#0A"+0#B)A7#___^+10CV@(@#```!#X2W`@``B<*+@(`#``"-!$#! -XMX`(#0A"+0#B)A73___^+0P@QTL=%D`````")A7S____K%XUT)@"#P@`! -XMBT6`.460#X2)`0``BTV0BX5\____@#P!"77>BXUP____B=`!T3'2][5P____ -XMB8U(____*=&)RNO#B50D$(M%N,=$)`0`````B40D#(U%G(E$)`B+30B)#"3H -XM:XD``(7`#X5S^___BT6DB00DZ!R6_?_'A5S___\`````Z2O]__^)#^E9_?__ -XM@[U<____`P^$U0```.B4D/W_BT,<@\`!.46`#X=D^O__BU,E?W_BT,%7/___P````#KCHM3"#'VBT,0Q@0"`.GD^?__ -XM@^H!B95(____B=`QTO>U=/___S'`BXU(____QX5H____`````"G1.8UP____ -XMB4V,=S.+A7#___^)18CK`XE-B(M%B#'2][5P____BTV(`XUP____@X5H____ -XM`2G1.4V,<]N+18B+58PIPHF5;/___P.5:/___XG0B95X____@\`!.T,,#X>' -XM````BY5X____QT,0`````(E3'(N%:/___X7`=!F+0Q"+4PC&!`()@\`!B4,0 -XM@ZUH____`77GBX5L____A<`/A-K^__^+0Q"+4PC&!`(@@\`!B4,0@ZUL____ -XM`77GZ;S^__^+30B+B8`#``")C73____I3_W__XM-"(N)R`,``(F-$:#R("(0UC'0S0!````B7PD!(DT).BK%_[_AR)1DR+1?")1E`QP.L%N`$```"+7?2+=?B+??R)[%W#BT,T@_@! -XM=+]S"8UT)@#H;XW]_X/X`G7&B7PD!(DT).C:$O[_A53@^P4BUT(QT0D!!#H"`B)'"3H]FO__XD<),=$)`1( -XMZ`@(Z.9K__^)'"3'1"0$@.@(".C6:___B1PDQT0D!,#H"`CHQFO__XD<),=$ -XM)`0?Z0@(Z+9K__^#Q!0QP%M=PXVT)@````"-O"<`````58GE5U93@^Q,BU4, -XMBT)XA<`/A0@!``"+'<#,"`B%VP^$\````(M5"+O`S`@(C77CBT(0]H!4"``` -XM!`^%U0```,=$)`P!````QT0D"`````#'1"0$`````(M%"(D$).CM_OW_A!0[%?P@"0A]#*$((0D(BY20-`@``(A5Y`^V`3'2QD7F78A% -XMY0^V1`H!B$0R!(/"`83`=?")\HM#%(/#&(E4)`S'1"0(#````,=$)`24U`@( -XMB40D$(M%"(D$).@T:___BP.%P'03BU4(BT(0]H!4"```!`^$*____X/$3#'` -XM6UY?7<.#Z`%T!>BKB_W_BT)TBP")1D( -XM"(E$)`B+10B)!"3HGFG__X/$3#'`6UY?7<.-="8`58GE5U93@^PC;0F`````(N&!`0``(7`=(NX8`L)".N&@^@!=`7H28G]_XM"=(L` -XM@W@(`70GQT0D"`H```"+0B"+0!")-"2)1"0$Z)`"``"#Q!RX`0```%M>7UW# -XMBP`/MA@/MM.#^GY_=X/Z6W1J@_I==&6`^WX/A)$```")T,'@!`4`_`@(BW@( -XMA?]T4XM(#`^^$872>!D[%?P@"0A]$:$((0D(NT^-"`CV1)`V`G4%N]+4"`B) -XM?"00B4PD#(E<)`C'1"0$:^D("(DT).C^9___,<#I`O___P^V0`$YT'23C012 -XM@,,!C81!6`$``'1&B30DB40D",=$)`3\Z`@(Z,QG__^#Q!PQP%M>7UW#]H8, -XM!````70MBX8$!```C01`BT2!.(7`#X11____N&`+"0CI4?___XE4)`2)-"3H -XM;O+]_^NLBX8$!```A(M1=(/``8E!>,<$@@````!;7<.-M@`` -XM``"-OP````!5B>564X/L$(M="(MS$,=$)`0!````B1PD_Y:@"```N@$```"% -XMP'0)@\00B=!;7EW#QT0D"`````#'1"0$`````(D<)/^67`@``/:#(`(```%T -XM4(N#&`(``(T$0,'@`@-#$/:#8`$```&+0#B)0S1T1(N#6`$``(T$0,'@`@-# -XM$(M`.(E#.(N#K`0``#'2@^#]@\@%B8.L!```@\00B=!;7EW#BX,8`@``]H-@ -XM`0```8E#-'6\BX-8`0``Z\:-=@!5B>53@^P4BT4,BUT(AGQ,_[_QT40\.H(",=%#`,```")30C) -XMZ=HS_O_'11`4ZP@(QT4,`P```(E-",GIPS/^_XE4)`S'1"0(/.L(",=$)`0# -XM````B0PDZ*EP,_[_58GE5S'_5E.#[!R+10B+=0R+@)@```") -XM1?#H58?]_\<``````(M5\(M:+(/",(E5[(M5\(M",#G'<@^-5P$YT')3BT7P -XMB?L#6"RAH!0)"(7`=6Z+1@2#Z`&%P(E&!`^(W0```(L&#[80@\`!B0:#^O]T -XM78/Z"@^$U````(@3BU7P@\(/]_^GP_O__B30DZ&N)_?^)PND>____BU40 -XM,<").H/$'%M>7UW#D%6)Y8/L&(E=](M=#(EU^(MU"(E]_(M](,=$)`B$```` -XMC1Q;C1S=P,P(",=$)`0`````B30DZ'J%_?^)7B"+11")1F"+112)1F2+11C' -XM1G`!````QT9H`0```(E&;(M%'(7`=`9F@4Y\``&%_\=&>`````")?G1T!L<' -XM`````(M=](MU^(M]_(GL7<.0D)"0D%6)Y8/L&(M%",=$)`CXZP@(QT0D!`0` -XM``")!"3H7S'^_S'`R<.0D)"0D)"0D)"0D%6)Y5=64X'L+`$``(M="(M]#/:# -XML`(```$/A)$```"+@Z@"``"-!$#!X`(#0Q"+4#B%T@^4P(3`#X6%````BU=D -XMA=(/A*<```")4TP/MT]\B<@E8@@``(/X(`^$X`````^/D0```(/X`@^%G``` -XM`(/A!+Y>````#X71````C78`B70D$(VU\/[__XE4)`S'1"0(ANP(",=$)`0` -XM`0``B30DZ$Z%_?_IT````)"-="8`BX.H`@``A<`/E,"$P`^$>____\=$)`A` -XM[`@(QT0D!`,```")'"3H=3#^_[@!````@<0L`0``6UY?7<.0C70F`+(!Z5+_ -XM__^#^$`/A!4!```]``@```^$<@$``(M#((E0$(M#(,=`%`````"-0U")1"0( -XMBT-,B1PDB40D!.COH_[_BT,@9H-(&`'IH@```(GVOBT```"#X00/A#+___^+ -XM1UB)="00C;7P_O__B50D#,=$)`A\[`@(B40D%,=$)`0``0``B30DZ'F$_?_' -XM1"00#````(E$)`R)="0(QT0D!`````")'"3HU?#]_P^W1WPE`!8``#T``@`` -XM#X2A````/0`$``!U*L=$)!`!````QT0D#`````#'1"0(`````,=$)`0:```` -XMB1PDZ`)"_O^)]HN#K`0``*@0=0L-```(`(F#K`0``*D```(`=22#X/J#R`*) -XM@ZP$``"!Q"P!```QP%M>7UW#OBX```#I)O___Y"+0QR#0PP!@P`!C47PB5WP -XMB00DZ"CG``"%P'1+@<0L`0``N`$```!;7E]=PXUT)@#'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$(@```(D<).AH0?[_Z6/___^^*P```.F^_O__B1PD -XMC;8`````Z)OX__^%P'6CQT0D!":Z"`B)'"3H)U___S'`Z3#^__]5B>575E.! -XM[)P```"+10B+?1"+0!")A7#___^+112+,(M%&(L`B85X____BT4/___X7`#X1S`@``.[5X____#X=G`@``QX5T -XM____`````,>%?/___P````#'18"-[`@(ZSR0C70F`(M'"(/H`87`B4<(#X@9 -XM`@``BP?&``J#P`&)!X.%=/___P&#Q@$YM7C___\/@H0"``")G7S___^+G7S_ -XM__^Z'X7K48/#`8G8]^+!Z@5KTF0YTP^%@P```(M5"(M"$/:`5`@```0/A>T` -XM``#'1"0,`0```,=$)`@`````QT0D!`````")%"3HQO']_X7`=1.+50B+0A#V -XM@%0(```$#X6V````BT4DA%?/___P`` -XM``")/"3H4W[]_X7`#X7Z_O__Z4/___^+10S'1"0,GZT(",=$)`0%````B10D -XMB40D".BC,/[_Z>'^__^+#:`4"0B%R75##[]'#HD$).@L?/W_A<`/A;/^___I -XM-?___XF=?/___XD\).CQ??W_A<`/A9C^___IX?[__XD\).A<@?W_B<+IY/[_ -XM_XD\).A-@?W_Z[>-M"8`````58GE5XG75E.#[#R)1=B)3=2+!T5HM'=(L`BQ@/M@.$P'0U -XM#[[`A2#?=0"=0V`.R$/A+P```"-="8`@W]D`0^&7`(``(M%X(7`D'0; -XM@WW4`W0)@#L^#X2O`0``BT7@A7UW#B1PDZ`*"_?^+5=B)7"0(B7PD -XM!(D4)(E$)`SHM_O^_X7`#X4,`@``BT=XA!K`0` -XM``(`!``/A:#^___'1"0$);H("(D,).A>6?__,<#IB?[__XVT)@````"`>P$^ -XM#X5'_O__@\,"@\X"#[8#A,`/A#;^__\/OL"%P`^(*_[__XL-_"`)"#G!#XX= -XM_O__BQ4((0D(ZR6-="8`@\,!#[8#A,`/A`/^__\/OL"%P`^(^/W__SG!#X[P -XM_?__]D2"-@)UV.GD_?__C78`QT0D"`0```"+0B"+`(E$)`2+1=B)!"3H9//_ -XM_[@!````Z>S]__^+1VR#P`&)1"0$BT78B00DZ'7U_?^%P'4=BT]X@\X!B4W@ -XMZ7W]__^X`0```.F[_?__Z+AY_?^+5WB)5>#I8_W__XN!7`,``(T$0,'@`@-! -XM$(M(.(7)#Y7`Z1/^__^+1W2+3=B+4`2+02"+&@^W0!@EA````(/`@`^$@@`` -XM`(M%V(E<)`2)!"3H/L#]_XM-V(U';(E$)`B-1V2)="00B5PD#(E$)`2)#"3H -XM3<']_^DZ_?__BT<@QT0D"`H```"+3=B+0!")#"2)1"0$Z(OR__^X`0```.D3 -XM_?__BT<@QT0D"`D```"+5=B+`(D4)(E$)`3H9?+__[@!````Z>W\__^+0@B) -XM7"0$B0PDB40D".A8FO[_A<")1=QT'8M5V(M"((M`"(D$).@D?OW_BTW8BU7< -XMBT$@B5`(BTW8BT$@9H%@&#__BT$@9H-(&`R+41#'1"0(`0```(M!((M`"(D, -XM)(E$)`3_DIP(``#I'____XVV`````(V\)P````!5B>564X/L$(MU"(M&'(7` -XM='GV0%@$=!.+50RY`P```(GPZ&G[__^%P'44QT0D!`````")-"3HE;_]_X7` -XM=!&X`0```(/$$%M>7<.0C70F`(M%#`^W6'R)-"2!XP`!``")7"0$Z/?P__^% -XMP'72@_L!&<`E`/[__P4`!```"8:L!```@\006S'`7EW#QT0D"`0```"+50R+ -XM0B"+`(DT)(E$)`3H.?'__[@!````ZY:)]E6Y`@```(GEBT4(BU4,7>G,^O__ -XMC;8`````C;\`````5;D!````B>6#[!B)=?R+=0B+50R)7?B)\.BB^O__AQ=P\=$)`0`````B30DZ+^^_?^%P'7=BT4,#[=8?(DT -XM)('C``$``(E<)`3H,O#__X7`=<"#^P$9P"4`_O__!0`$```)AJP$```QP(M= -XM^(MU_(GL7<.-M@````"-O"<`````53')B>6#[!B)7?B+70R)=?R+=0B)VHGP -XMZ!/Z__^%P'0/BUWXN`$```"+=?R)[%W#QT0D!`````")-"3H,+[]_X7`==W' -XM0W@`````B5T,BUWXB74(BW7\B>Q=Z5'?_O^058GE4X/L%(M="(M-#(M#'(7` -XM=#8/MT%\C5%1QT0D$`$```")'"2#X`'WV"'"C4%LB40D#(U!9(E$)`B)5"0$ -XMZ%RP_?^#Q!1;7+B -XM"```@_I`B47P#X2+`0``#X^5````@_H"#X1-`0``@_H@#X0A`0``]H."```` -XM"'0&@\`!B47PBT7PB4-DBT7P@^@!```````C47PB40D!(DT).C- -XM\?W_A<`/A<4```"+1?`Y0VQV`XE#;(E<)`2)-"3H7ES__X7`#X6F````BU7@ -XMA=)T"(M%X(E&3#'`@\0L6UY?7<.+2UCI5____XVT)@````"!^H````!T$X'Z -XM``@``(GV#X5G____Z7'___^->?^Z`0```-'O.?AV!(G"*?J)4V2+1?"#Z`&) -XM0VR)7"0$B30DZ.M;__^%P'4WQT0D!)SL"`B)-"3HMU/__XM%\(E%X(E#9(E# -XM;(E<)`2)-"3HOUO__X7`#X3Z````C;0F`````(/$++@!````6UY?7<.-=@"+ -XMCF0$``"#Z0'ILO[__SG!N@$```!S!8U0`2G*B5-DBT7PB4-LQT7@`````.D% -XM____C10).=`/AIL```"#P`$IT(E#9(M#9(/H`0'(B4-LQT7@`````.FY_O__ -XMD(UT)@"-4?^Y`0```-'J.=!V!(G!*=&)2V2)T`-%\(E#;(M&3(E%Z(M&4(E% -XM[(U%Z,=$)`P!````B40D",=$)`0G````B30DZ-@2_O_'1>``````Z6#^___' -XM1"0(!````(M#((L`B30DB40D!.A3[?__N`$```#I@O[__\=#9`$```#I8?__ -XM_\=$)`2<[`@(B30DZ(U2__^+1?"#P`&)0V2+1?"#Z`$!^(E#;.D(_O__D)"0 -XMD%6)Y8/L&(M%",=$)`C([`@(QT0D!`,```")!"3HSR'^_[@!````R<.0D)"0 -XMD)"0D%6)Y8/L&(M%",=$)`CX[`@(QT0D!`,```")!"3HGR'^_[@!````R<.0 -XMD)"0D)"0D%6)Y5.#[!2+70R#>Q0$=@7H+W/]_XM#%/\DA2CM"`B0,<"#Q!1; -XM7<.+`X/X`71QC5#_C4,,B1.)1"00C4,(B40D#,=$)`@!````B50D!(M%"(D$ -XM).CG[/W_A____C;8`````58GE5E.#[#"+70R-1?2+=0B)1"00 -XMC4,,B40D#(U#"(E$)`B+`XDT)(E$)`3H;^[]_X7`=!.+5?2X`0```(72=26# -XMQ#!;7EW#BT,,A7<.X`0```.ORC;8`````C;\`````58GE -XM5E.#[!"+=0B+70R)]HE<)`2)-"3HQ/S__X7`=3.+0Q2#^`-TZ(/X`73CA<"0 -XM=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X`0```%M> -XM7<.058GE5E.#[!"+=0B+70R)]HE<)`2)-"3H=/W__X7`=3.+0Q2#^`-TZ(/X -XM`73CA<"0=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X -XM`0```%M>7<.058GE5U93@^P\BT4,]D`Q`G0.#[90`8#Z0'0%@/HJ=1N+50AF -XM@[JL!`````^)0P$``(M="`^VDZ@```"+10@/MLJ!B*P$````@```.PW\(`D( -XM#XS(````B="+70B+7UW#QT0D"`4```#'1"0$`````(D4).A$Y___ -XM@\0\N`$```!;7E]=PXM5##'`]D(Q"`^$;____XM"!(U=X(D<),=$)`CZE@@( -XMQT0D!!0```")1"0,Z(IP_?_'1"00`````(E<)`C'1"0$`````(E$)`R+70B) -XM'"3HX]S]_X7`#Y7`#[;`Z1W____'1"0$_P```(M%"(D$).B3U_W_Z3[___^0 -XMD)"0D)"0D)"0D)"0D%6)Y5.)PX/L%(#Z_W0U#[;"C01`C80`4`$```-#$(/` -XM"(D<)(E$)`S'1"0(2^T(",=$)`0"````Z%,;_O^#Q!1;7<.)5"0$B1PDZ#'7 -XM_?_KT.L-D)"0D)"0D)"0D)"0D%6)Y5=64X/L+(M]#`^V5P+V1S$@#[;:=0^+ -XM30B+@9P```"(D(0!``"+50B+@IP```#'@(@!```!````C47LB40D$(U%\(E$ -XM)`R-1>B)1"0(BT7UW#BT7PAAS!P^^`CG8=>PYT77B)5T2)1T")1TB+1RR%P'0.]D`&('0(@V\X`3'`ZX0Q -XMP.N`B?95B>6#[!B)7?B+70R)=?R+=0B)7"0$B30DZ.+^__^Z`0```(7`=22+ -XM0T"+4SR#P`&)4T0QTHE#0(E#2(N&G````,>`B`$```,```"+7?B)T(MU_(GL -XM7<.)]HV\)P````!5B>575E.#["R+?0P/ME<"]DC]_X7`=".+3>RX`0```(7)=`^+10B)VNC'_?__N`$` -XM``"#Q"Q;7E]=PXM%\(7`=.*+3>B^`0```(E-X`'!BT7@`TAV!P^^`CG8=>PYT77@ZYV+=P3K -XMV8M'+(M5Z"M5X(7`B5=`=`;V0`8@=0V+1SR)5TB)1T0QP.N$BT`B`$```0` -XM``"+7?B)T(MU_(GL7<.0C70F`(M#/(E32(E#1.O2D(UT)@!5B>6#[!C'1"0( -XM7.T(",=$)`0"````B00DZ#(8_O_)PU6)Y8/L&(EU_(MU"(E=^(M5#(N&G``` -XM``^V@(0!``"(0@*+AIP```"+F(@!``"#^P1V!>BL:?W__R2=@.T("(E4)`2) -XM-"3HM?W__XG"C78`BX:<````B9B(`0``BUWXB="+=?R)[%W#B?#HR)T%W#B50D!(DT).C4_?__B<+KP(E4)`2)-"3H9/S__XG" -XMZ[")5"0$B30DZ,3^__^)PNN@58GE@^P(BU4(BTT,BX*<````#[:`A`$``(A! -XM`HN"G````(.XB`$```1V!>@$:?W_BX"(`0``_R2%E.T("(E-#(E5",GI=_[_ -XM_XG0Z.#^__^X`0```,G#B4T,B54(R>GM^___B4T,B54(R>E!_?__B4T,B54( -XMR>G5_/__D)"0D)!5B>575E.#["R+10R+?0R+70R+2#")SHG(P>X#@^`"@^8! -XM@_@!BT4,&=*!X0`"``"#XOZ#QS2#P@2#PP&#P#R#^0&)1>`9P`GR]]`APXM% -XM"(E4)!"+5>")?"0(B5PD!(D$)(E4)`SH-:+]_X7`=!&X`0```(/$+%M>7UW# -XMC70F`(M5X(M%"(ET)`R)?"0$B50D"(D$).@&IOW_AR)7"00QT0D#`````#'1"0(`````(M" -XM1(E$)`2+10B)!"3HRN']_X7`#X63````BT4,BT@P]L$(=1>!X0_^__^#R2") -XM2#"+50R+1>PY0DAS73'`]L$$#X19____BU4,@>$/_O__@\E`B4HPZ47___^0 -XMBU4(C47PB40D!(D4).BNX_W_A<`/A27___^+1?"%P`^%9?___XM%#,=`1`$` -XM``#'0$@`````,<#I!____X/X`8U0_QG`]]`APHM%#(E02.N/BT7PBU4(B5PD -XM$,=$)`P`````QT0D"`$```")1"0$B10DZ`GA_?^%P`^%P/[__XM%\(M5#(E" -XM1.DQ____D)"058GE4X/L-(M="(U%^(E$)!"-1?2)1"0,QT0D"`````"+0TR) -XM'"2)1"0$Z,'@_?^%P'0&@WM,`71\BT7XA<")]G1.QT0D%`````#'1"00```` -XM`(E$)`R+1?3'1"0$`````(D<)(E$)`CH,R?__[H!````A6#["B)7?2)PXE]_(EU^(MP$,=$)`0`````B00DZ#S!_?^% -XMP(G'=!>-1AB)1"0(B5PD!(DT).BS5O[_AQ= -XMP\=$)`P`````QT0D"`````")?"0$BT88B00DZ&["_?^%P'4.BT88BT`<@&!8 -XMOS'`Z\*+1AB)!"3HP53^_[@!````Z["-=@"-O"<`````58GE@^PXB5WTB<.) -XM??R)UXEU^(M`$(M`&(7`=&6+7<.+1?0Y0U!RU8/X`8U0_QG`]]`A -XMPHE34.O$58GE@^P8B5WTB<.+02")=?B)UHE]_(E,)`2)'"3_4`2)\HG'B=CH -XM5?___[H!````A57 -XM5E.#["R+70B+>Q#'1>``````Z>,```"0C70F`(N#3`$``(T$0,'@`@-#$(M` -XM.(7`#Y7`A,!T$8GRB=CH3/[__X7`#X6.`0``QT0D%`$```#'1"00`````(M& -XM$(E$)`R+1@C'1"0$`````(D<)(E$)`CH-B3__X7`#X58`0``B1PDZ$;H``#V -XM@ZP$```0="ZAH!0)"(7`#X7#````BQ4$(0D(BT((@^@!A<")0@@/B#`!``"+ -XM`L8`"H/``8D"B1PDZ/>2_O^)'"3HKT'__XU%\(E$)`2)'"3H0/,``(7`#X7R -XM````BT7PA<`/A(H```"#0RP!QT7@`0```(M'?(M`%(7`#X5V____BT4,QT0D -XM#(`!00#'1"0(.@```(D<)(E$)`3H!:(``(7`#X6G````BW-XBT8X@_@!#X2Z -XM````A7UW#B50D!,<$)`H```#H -XM?6;]_^G%_O__@WX0`78-B?*)V.B%_/__AS'1"0( -XM`0```(D<)(E$)`3H@$8!`(7`=".+1>R)!"3H`5'^_[@!````ZYF)V.BC^___ -XMA<"0=8CI;/___XM&&(M0'(M%[(E0'(M%[(M`'(,``8M&&(M0((M%[(E0((M% -XM[(M0((M#(`^W0!AFB4(8BU7LC4),B10DB40D!.BEW?W_BT7LBU!,A=)U"L=` -XM3`$```"+1>R!B*P$``````$`B5L8BT7L@8NL!````!```(E#%#'`Z0S___^- -XMM@````"-O"<`````58GE4X'LM````(V=>/___XD<),=$)!@`````QT0D%``` -XM``#'1"00`````,=$)`P`````QT0D"`````#'1"0$/````.@8W?__BU4,B=F+ -XM10CH>_S__X'$M````%M=PXGV58GE5E.![+````"+=0R+1C3V1C$(C4@!=`R+ -XM5@2#^@)V!(U,`O^-G73___^)3"00B40D#(D<),=$)!@`````QT0D%`````#' -XM1"0(`@```,=$)`0<````Z*3<__^+10B)V8GRZ`C\__^!Q+````!;7EW#C;0F -XM`````(V\)P````!5B>6![+@```")=?R+=0R)7?B+1A2#^`5T"H/X#'19Z"!@ -XM_?^-G73____'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!"P```")'"3H'MS__XM%"(G9B?+H@OO__XM=^(MU_(GL7<.-G73_ -XM___'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D -XM!$@```")'"3HRMO__^NJD(VT)@````!5B>6![+@```")=?B+=0R)??R+?0B) -XM7?3V1C$@=6*+1BP]X``)"'18/>`""0AT4<=$)`R`B$$`QT0D""$```")="0$ -XMB3PDZ&6>``"%P`^%G@```(M?>(-[.`0/A,(```"+1TR)1D2+1U")1D@QP(GV -XMBUWTBW7XBWW\B>Q=PXUV`,=$)!@`````C9UP____QT0D%`````"+1CR)1"00 -XMBT8TQT0D"`(```#'1"0$`0```(D<)(E$)`SH!-O__XN'F````,=`)`````#' -XM1"00`0```,=$)`P!````QT0D"-7:"`B)7"0$B3PDZ`/7_O^%P'0/N`$```#I -XM=?___Y"-="8`BX>8````B=F+4"2)5>B+0!R)\HE%Y(GXZ!/Z___I3O___XD\ -XM).@FXP``QT0D&`````#'1"04`````(M&/(E$)!"+1C3'1"0(`@```,=$)`0! -XM````B40D#(V%8````QT`D`````,=$)!`!````BT,0 -XM@^@!B40D#(M#"(D\)(/``8E$)`B-A7#___^)1"0$Z$_6_O^%P`^%2/___XN' -XMF````(V-R-O5C___^)1"08QT0D%`````#'1"00`````,=$)`P` -XM````QT0D"`````#'1"0$.@```(D\).ASV?__BX:<````BY@P`0``B1PDZ#-C -XM_?^)7"0(B3PDB40D#(U%W(E$)`3H^-3__XM5#(GYB?#HK/C__XM=](MU^(M] -XM_(GL7<.+EM`!``"%T@^$____D%6)Y5.![,0```"-G6#___^-1?2)1"08B1PDQT0D%`````#' -XM1"00`````,=$)`P`````QT0D"`````#'1"0$-P```.B)V/__C47DB40D!(D< -XM),=$)`P'````QT0D"'[`"`CH&M3__XM5#(G9BT4(Z,WW__^!Q,0```!;7<.- -XM="8`58GE5E.![,````"+=0R-1?")1"08C9U<____QT0D%`````"+1CR)1"00 -XMBT8TB1PDQT0D"`(```#'1"0$!P```(E$)`SH!]C__XU%X(E$)`2)'"3'1"0, -XM`0```,=$)`B9[P@(Z)C3__^+10B)V8GRZ$SW__^!Q,````!;7EW#B?95B>56 -XM4X'LP````(MU#(U%\(E$)!B-G5S____'1"04`````(M&/(E$)!"+1C2)'"3' -XM1"0(`@```,=$)`0%````B40D#.B'U___C47@B40D!(D<),=$)`P!````QT0D -XM"':["`CH&-/__XM%"(G9B?+HS/;__X'$P````%M>7<.)]E6)Y593@>S````` -XMBW4,C9U<____C47PBU8TB40D&(D<),=$)!0!````B50D$(E4)`S'1"0(`@`` -XM`,=$)`0#````Z`K7__^-1>")1"0$B1PDQT0D#`$```#'1"0(3XT(".B;TO__ -XMBT4(B=F)\NA/]O__@<3`````6UY=PY"-="8`58GE@>S(````B7W\BWT(B5WT -XMB77XB[>D````A?8/A)T```#'1"0(`0```,=$)`0`````B3PDZ)6R_?^Z`0`` -XM`(7`=`^+7?2)T(MU^(M]_(GL7<.-1>R-G5C___^)1"08QT0D%`````#'1"00 -XM`````,=$)`P`````QT0D"`````#'1"0$%````(D<).A`UO__B30DZ`Q@_?^) -XM="0(B1PDB40D#(U%W(E$)`3HT='__XM5#(G9B?CHA?7__XG"ZX60QT0D"`T$ -XM"0C'1"0$`P```(D\).@("/[_N@$```#I8O___XVT)@````"-O"<`````58GE -XM5E.#[!"+70B+7<.)'"3'1"0(`````,=$)`0`````_Y9< -XM"```BU,@BT-,B4(0BT-0BU,@B4(4BT,@9H-(&`&+@ZP$``"#X/6#R`&)@ZP$ -XM``")'"3'1"0$)KH(".C4-___@\00,6#[!B# -XM^@)T-8/Z`W05@^H!=`+)PXGVC;PG`````.C/6/W_QT0D"(0$"0C'1"0$`P`` -XM`(D$).@#!_[_R<.0QT0D"&0$"0C'1"0$`P```(D$).CH!O[_R<.-M@````!5 -XMB>575E.![+P```"+50P/MD("/"-T.CPK=#H\+70VQT0D"`8```"+30R[`0`` -XM`(M!*(M`"(E$)`2+=0B)-"3HC)T``('$O````(G86UY?72+0#@Y^(F%7/__ -XM_W-XBU7'@Y -XM\'UT@\(!]D2!-4!T:H/#`3G[=>/K"XM=X(7;#X1X`0``QT0D"+\$"0B[`0`` -XM`,=$)`0#````BTT(B0PDZ)`%_O^!Q+P```")V%M>7UW#QX58____`0```.D' -XM____BT4(N@(```"[`0```.@B_O__Z]"+G5S___\[G5S___\/A,`!``"+30B) -XM65#'1"0$`````(D,).@8"`$`BW7%9/___P````"#P#(/ -XMA(P!``")1"0,C47HB40D",=$)`0`````BU4(B10DZ.9X_O^%P(F%9/___P^% -XM8`$``+L!````@<2\````B=A;7E]=PX/X`G8JB[5L____#[94%@&`^EB(E4__ -XM__\/E(57____#X3P`0``@/IX#X3G`0``A,D/A//^__^#^`$/ANK^__^+M5S_ -XM__^+C5#___^#Q@$/MA0Q#[["@_A_#X?3_O__]@2%W10)"`0/A,7^__^`^C@/ -XMA+S^__^`^CG'A6C___^S!`D(QX5@____"`````^%T_[__^F:_O__B9UL____ -XMB9U<____Z5W^__\/MD,!#[[0@_I_#X;#`0``@^@X/`%W0\>%:/___[.@"`C' -XMA6#___\*````@\,!Z9+^__\/OD,!@_A_=PKV!(7=%`D(!'7EB40D!,<$)-H$ -XM"0CHFU7]_X7`==&+30B%R0^$E_[__XM%"(M8$(7;#X2)_O__]H-5"````0^% -XM?/[__XU',CM#>`^'8`,``(M#=(F%9/___XM#>(E%Z(&+5`@````!``")\BN5 -XM7/___SMUY(F5%8/___Q````#IZOS___8$E=T4"0@$#X0O_O__/#@/ -XMA"[^__\\.0^%.O[__^DA_O__@/LKC70F`'0)@/LM#X6!_/__B[5<____BY50 -XM____QX5H____N@0)"(/&`0^^!#*#^'\/AY_[___IS'1"0, -XM"@```,=$)`@`````B00DZ&MS_O^#^`$/A:'^__^+30R+E5C___^`>0(M=0+W -XMVHM-[(7)#X[4`0``A=(/CLP!``"X____?RG(.=`/@[T!``"X`@```.ED_O__ -XMBT4,@'@"*P^$@P$``(M%\#F%6/___P^'+@$``"N%6/___XE%\(.]8/___Q"+ -XME7#___]U`X/J`HM%\(V->/___XE4)`R)1"00BY5H____QT0D!&0```")#"2) -XM5"0(Z"=5_?^)QXN%7/___XE$)`B+1=R)1"0$BY5D____B10DZ$96_?^+G63_ -XM__^-C7C___\#G6S___^)3"0$B7PD"(D<)`'[Z")6_?^+1>0KA5S___\KA7#_ -XM__^)1"0(`W72)1"0,B[5D____ -XMB70D"(M5#(M"-(E$)`2+30B)#"3H2]#]_XG#Z7+]__^)5"0(BX5L____`T7< -XMB40D!(N-9/___XD,).BI5?W_BX5D____BY5P____Q@00`(N%9/___^GR_/__ -XMA=)Y>+@```"`*<@YPGUMN`,```#I$/W__XE$)`R-0WB)1"0(BT-TB40D!(M- -XM"(D,).@4=/[_A<`/A#3[__^)0W3I<_S__X&@5`@``/_^___IQ?G__XM5\(G0 -XM]]`[A5C___\/@E/^__^+A5C___\!T(E%\.ER_O__AD?&@`` -XMBX'``@``C01`P>`"`T$0BT`XB5T0B4T(B44,6UWI_1D``(N!4`,``(T$0,'@ -XM`@-!$(M`.(E=#(E-"(E%$%M=Z=L9``"-="8`C;PG`````%6)Y593@^P0BW4( -XMBYZ<````A=MT8(N#,`$``(7`=`B)!"3H#57]_XN#1`$``(7`=`B)!"3H^U3] -XM_XN#?`$``(7`=`B)!"3HZ53]_XN&G````(N`C`$``(7`=`B)!"3HT53]_XD< -XM).C)5/W_QX:<`````````(/$$#'`6UY=PXGV58GE@^P8QT0D!,P!``")7?2+ -XM70B)=?B)??S'!"0!````Z&Y2_?^%P(G6````BT4,A=N)L)P```#'AJP! -XM````````#X3:````B[N<````BX=(`0``A$`0``,=*( -XMAH0!``"+AX@!``")AH@!``"+A[0!``")AK0!``"+7?2)T(MU^(M]_(GL7<.) -XM!"3H1U/]_X7`B<*)AD0!``!T+8N'2`$``(E$)`B+AT0!``")%"2)1"0$Z(]2 -XM_?^+AT@!``")AD@!``#I5?___\=$)`@`````QT0D!`4```")'"3H@OS]_[H! -XM````ZY$QTL>&B`$```````#K@Y"0D)"0D)"0D)"0D)!5B>575HG.4XMZ,('. -XM`(2$!(G#]\<`(```=`B)SH'.`(2$!O:#``$```$/A*`!``"+@_@```"-!$#! -XMX`(#0Q"+0#B%P`^5P(3`=`.#S@3V@PP!```!#X1E`0``BX,$`0``C01`P>`" -XM`T,0BT`XA<`/E<"$P'0#@\X0]H,\`0```0^$*@$``(N#-`$``(T$0,'@`@-# -XM$(M(.(7)#Y7`A,!T`X/.0/:#E`,```$/A.\```"+@XP#``"-!$#!X`(#0Q"+ -XM0#B%P`^5P(3`=`:!S@```!#V@Z\$```!=`:!S@`(``#V@R0$```!#X2B```` -XMBX,`"`T,0BT`XA<`/E<"$P'0&@'E`````$```")QHU%[(E$)!"-1?")1"0,C47HB40D"(M#-(D\)(E$ -XM)`3HYLC]_X7`=!J+5>R%T@^$!P$``(/.",=%\`````")=>#K%(M%\(7`#X3A -XM````@B%P`^$O0```(M#,(U3`8US/,=$)!``````B70D#"4``@`` -XM@_@!&<#WT"'"C4,TB40D"(E4)`2)/"3HVH3]_X7`=7:+1>#'1"0<`0```,=$ -XM)!@`````QT0D%`````")1"0@BT7PB40D$(M%Z(ET)`B)7"0$B3PDB40D#.BY -XM4P``@\0\6UY?7<.0B5-`Z6W___^+4P2#Z@&-!`*)0T"+5?"#Z@$YT`^&4___ -XM_^O<@\X(Z1?___^-="8`@\0\N`$```!;7E]=PXUS/.EU____C70F`(V\)P`` -XM``!5,'E`````0```")QHU%[(E$ -XM)!"-1?")1"0,C47HB40D"(M#-(D\)(E$)`3H9L?]_X7`=!B+5>RX`0```(72 -XM='B#S@C'1?``````ZQ"+3?"%R74#@\X(@B)1"0(B50D!(DT).B#QOW_A7UW# -XMBU7PA=)UKX/+".NJD(M'!.NOC70F`(V\)P````!5,&E`````````"+5S2)5DR)PXU%[(E$)!"-1?")1"0,C47H -XMB40D"(E4)`2)-"3HL\7]_X7`=&6+5>RX`0```(72=%$QTH/+",=%\`````#V -XM1S$(N`$```!T`XM'!(E$)!R+1>B)7"0@QT0D&`````#'1"04`````(E4)!") -XM1"0,QT0D"`````")?"0$B30DZ`)1``"#Q#Q;7E]=PXM5\(72=!.+1E"#P`$Y -XMPG0.B490ZYV-="8`@\L(ZY2#RPB)5E#KC(UV`%6)Y8/L&(E=^(M="(EU_(MU -XM#(U#4,=#4`````")1"0(BT8TB1PDB40D!.BQ:?[_AQ= -XMZ>#]__^+7?BX`0```(MU_(GL7<.058GE5E.#[#"+=0R-1?2+70B)1"00QT0D -XM#`````#'1"0(`````(M&-(D<)(E$)`3H#,']_X7`=1*+1?2#^`&-4/\9P/?0 -XM(<*)4U"+0Q"+D!@!``"%TG04BY`0`0``:X`<`0``'/9$`A0"=0B)'"3H'=?] -XM_XET)`2)'"3H(?[__X/$,%M>7<.-=@"-O"<`````58GE5U93@^Q,BUT,BW4( -XMBT,PBU,T)0_^__^#R"`[4SR)0S`/A!<"```QR8G:B?#H;/C__XE%T,>&E``` -XM``$```"+0S#!Z`.)QX/G`70SQT,X`````/:&#`$```$/A!X"``"+A@0!``"- -XM!$#!X`(#1A"+0#B%P`^5P(3`#X42`@``BT,TB49,BT,XB490BT80BY`8`0`` -XMA=)T%(N0$`$``&N`'`$``!SV1`(4`G4(B30DZ$K6_?^%_W4,BT,T.T,\#X0* -XM`@``C4,\C5,TB57R-1>B)1"00C47LB40D#(U%Y(E$)`B+0S2)-"2)1"0$Z'#"_?^%P`^% -XM#@$``(M5[#E3.'($@TW0"/9#,0BX`0```'0#BT,$BTW0B40D',=$)!@````` -XMQT0D%`````")3"0@B50D$(M%Y(E<)`3'1"0(`````(DT)(E$)`SHQ$T``(M- -XMU(7)B<-T,87V=!.+1A"%P'0,BU74.5!T#X0E`@``BTW4B0PDZ.U)_?^#Q$R) -XMV%M>7UW#NP$```"#Q$R)V%M>7UW#C47HB40D$(U%[(E$)`R-1>2)1"0(B50D -XM!(DT).BOP?W_A<`/A,#]__^+1>B%P'3!B5PD!(DT).B4^___BP`````Z>'^__^0BT,PC5,!C7L\QT0D$``` -XM``")?"0,)0`"``"#^`$9P/?0(<*-0S2)1"0(B50D!(DT).B:??W_A<`/A2/_ -XM__^+1>R%P'4$@TW0"/9#,0BZ`0````^%T0```(%-T``@(`"+3=")5"0B)1"0,QT0D"`$```")5"0$B1PDZ`6[_?^%P`^% -XM6____XM33(/J`?9',0BX`0```'0#BT<$BTW@B40D'(E4)!C'1"04`````(E, -XM)""+1>R)1"00BT7HB7PD!(D<),=$)`@`````B40D#.C`20``@\0\6UY?7<.- -XM1?")1"0$B1PDZ-F\_?^%P`^%[_[__XM-\(7)#X6&_O__,=+'1>@`````QT7L -XM`````.EZ____D%4QR8GEBT4(BU4,7>DO_O__ZPV0D)"0D)"0D)"0D)"05;D! -XM````B>6+10B+50Q=Z0S^__^0D)"0D)"0D)"0D)!5B>6#[`B+30R+02R%P'0& -XM]D`&('4JA<#'04``````=`KV0`8@=`2#:3@!BT%`BU$\B4%(,<")443)PY"- -XM="8`BU$XA=)USXM%"(D$).C^A0``N`$```#)PXVT)@````!5B>6#[`B+30R+ -XM03B%P'10]D$Q"+H!````=34YPG(HQT%``````(M!+(7`=`KV0`8@=`2#:3@! -XMBT%`BU$\B4%(,<")443)PRG0B4%`Z]B)]HM1!#G"<\CK[HVT)@````"+10B) -XM!"3HA84``+@!````R<.-M"8`````C;PG`````%6)Y5.#[!2+70SV0S$(='"+ -XM0P2#^`%V:(/H`8E#!(E$)`B+0S2)1"0$BT4(B00DZ,SR``")P8E#0(M#+(7` -XM=`KV0`8@#X66````BU,X.=%V1H7`#X2D````]D`&((UV``^$EP```(U!_XE# -XM0(M#-(E32(E#1#'`ZS:-M"8`````BT,LA-M"8`````A!W5`^$*`$``(M+.(/N`8E+2(E[1`^$D0```(M#/#E#-',+ -XMBU-`A=(/A(4```"#:T`!,<#I0____XM#0(M3/(E#2#'`B5-$Z3#___^+4SR+ -XM>S2)5>#KIXM30(M+.(G(B=&)4SB+5>")>SR)0T")UXE3-.N8@TLP"+X!```` -XMZ37___^+4T"+2S@YR@^$KP```#G1#X9T____Z\.%T@^$.?___Y"-="8`Z>O^ -XM__\QP.G)_O__@^@!B4,\C77PB40D!(M%W(ET)!#'1"0,`````,=$)`@!```` -XMB00DZ'BT_?^%P`^%D/[__XM%\(ET)`C'1?``````@_@!C5#_&<#WT"'"BT,T -XMB5-`BU7EO_?__ZPV0 -XMD)"0D)"0D)"0D)"058GE@^P8BU4,QT0D#`$```"-0C2)1"0(#[9"`HE$)`2+ -XM10B)!"3H9=C]_\G#D)"058GE5U93@^Q,BTT,C47HBW4(B40D$(U5Y(U%[(E$ -XM)`R)5"0(BT$TB30DB40D!.B]MOW_A7UW#BT4,BUWLBT@X.=ESRXG*`U7D -XM#[8"#[[P/#Z)=<`/A`0"``!_)SPI#X0M`@``/#P/A!0"```\*(UV``^$^`$` -XM`(/!`8/"`3G9=-(E.0#G##X.C`0``BW4,BU8L -XMA=(/A+P!``#V0@8@#X2R`0``BT8XB5Y$B49(A=(/A*````#V0@8@#X26```` -XMBW4,B=J+1CPYPP^$A@````^#CP$``(GS@\,TBTL$AP/A-\````/M@(\ -XM(`^$O0```#P)#X2U````,<")]NDY_O__#[9%W#M%P'07.46\#X7*_O__@^X! -XM#X7!_O__Z?'^__^#Q@'IM/[__SQ[D'09/'T/A4S^__^[\"H'",=%O'L```#I -XM:_[__[L`+`<(QT6\?0```.E:_O__N_`J!PC'1;Q;````Z4G^__^[\"H'",=% -XMO#P```#I./[__[L`+`<(QT6\*0```.DG_O__NP`L!PC'1;P^````Z1;^__^[ -XM\"H'",=%O"@```#I!?[__XM%[(/"`8E5Y(/H`87`B47L#X4A____BTT,,<"# -XM23`(Z6C]__\/A(8```"+50R)2DB)0D2+30R+42SI9/[__\=$)`@,!0D(Z2G] -XM__^+=0R)3DB)1D3I2?[__XM=#(/#/.EK_O__BUT,@\,TZ7G^__^-1?#'1?`` -XM````B40D"(L#B40D!(M%"(D$).A06/[_A<`/A?'\__^+0P0[1?`/AZC^__^+ -XM30R+432+03SI*O[__SM..`^&R+@'P!``"%P'0(B00DZ-@Z_?^%_W03BT7HB7PD!(D< -XM)(E$)`CHD3G]_XM%$(7`=!R+51"-1@&)1"0(B50D!(M5\(T$$XD$).AN.?W_ -XMBT7LB9A\`0``,<#I-(7`=`;V0`8@=52)V(/X -XM`78IBT4(C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2)!"3HN*[]_X7`=$2[ -XM`0```(E>/#'`QT9``````,=&2`````")7D2#Q#Q;7E]=PY"+1CB%P`^%50$` -XM`(/[`0^$T0$``(-.,`B-0_^)1C3KCL=%W`(```#V1C$(#X4_`0``BT7PA<`/ -XMA70!``#'1=@!````BT4(@^L!C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2) -XM!"3H):[]_X7`#X5I____BTW8A0'K$HUV``^V0@*#P@*$P`^$ -XM5/___XGY.,AUZP^V0@$\(`^$``$``(M-U#I!`G77@VW<`771D.G,_O__@WW8 -XM`8VT)@````!T!>AM,_W_BT7PA<`/A!'___^)1"0$BT7LB00DZ!]X``"%P`^% -XM^O[__X-MW`$/A([^___'1=@`````Z>3^__^0@^@!B48XB=CI0?[__XUV`(M& -XM!`'`B47`"#X7V_O__D(UT)@#I]/[__XUT)@"-O"<`````58GE5U93 -XM@^P\BWT,BTB) -XM3=2)1"00B50D#,=$)`@`````B5PD!(M%"(D$).C"J_W_A@8,?W_C70F`(M-\(7)#X05____B4PD -XM!(M%Z(D$).C&=0``A<`/A6W___^#;=@!='.+3?#'1=``````Z>G^__^+3?"# -XM^0$/AMW^__^+50B+@IP```"+@'P!``")1

.+ -XM5-U[`^V0@$\(`^$F`$``#I&`G7; -XM@VW8`775BT7UW#@?M``@D(#X7, -XM_O__BTB)!"3H%70``(7`#X2F -XM_?__Z9#]__^#;=@!C70F``^%J?W__^FP_O__D(UT)@"+3?"-<_^#^0$9P(U1 -XM__?0(<(Y5S@/A:+]___'1"0$`````(M%"(D$).AB=@``N`$```#IP?W__X/Y -XM`@^%7_[__^E?_O__N`$```"0C70F`.FD_?__BTWPZ#[;` -XM_R2%,`4)"+DY````BX.<````B$H!B(B9````6UW#N3(```#KY[DS````Z^"Y -XM-````.O9N34```"-="8`Z\ZY-@```.O'N3<```")]NN^N3@```#KMXVT)@`` -XM``!5B>575E.#["R+70R+?0B+0S#VQ"`/A<(```#VQ`B^`0```'0#BW,$C4,! -XMB47PC4-$B47L@^X!@_[_#X2N````BT,P)0`"``"#^`$9TO?2(U7PQT0D%`$` -XM``"+1>S'1"0$`````(E4)`B)/"2)1"00C4,TB40D#.BT%?[_A<````B46TC47LB40D$(U%Z(E$)`S' -XM1"0(`0```(M&-(D\)(E$)`3HTZ7]_X7`#X6A`0``BT7LA<`/A$,!``#'1;@! -XM````]D8Q"'0&BU8$B56XBT8TB48\BT8X@^@!`T6XB49`BU7L@^H!.=`/A[4! -XM``#'1;P`````]D8Q(`^$)@$``(7_#X19`0``BU\0A=L/A$X!``#V@U4(```! -XM#X5!`0``BT7L.4-X#X(@/A$\!``"+ -XM5;2+@D`!``"#^`P/A$\!``"+3;2+5<`#5C@/MH$\`0``BTVXB10DB40D!(E, -XM)`CHR"S]_XM%[(E$)`R+1<")1"0(BT8TB3PDB40D!.AGJ?W_B<.%_W03BT<0 -XMA' -XME`````0```"-77UW#BT7LQT7P`````,=%P`````"%P`^$TO[__XE$)`R-1?") -XM1"0(QT0D!`````")/"3HUTS^_X7`=+F)1<"+1>SIJ/[__XU&-+L!````B40D -XM!(D\).B4<```@\1QT6/:'#`$```$/A$,"``"+AP0!``"- -XM!$#!X`(#1Q"+0#B%P`^5P(3`B=%T+HM=Z`^^$X72>"<[%?P@"0A]'Z$((0D( -XM]D20-@)T$XU!_X-%Z`&%P(G!B47L==*+7>B+1>R)7"0$B3PDB40D#(E$)`CH -XM*&']_X7`B<-T_?_IZ?S__\=$)`@'````,=O'1"0$`````(D\).C$;``` -XMZ1_]__^)7"0$B3PDZ,/#``"%P`^$(____^D\_?__@_@)C78`=60QV^GW_/__ -XM@8^L!`````0``+L!````Z>/\__^!H%0(``#__O__Z:'\__^)1"0,C4-XB40D -XM"(M#=(D\)(E$)`3H"DK^_X7`#X3H_/__B4-TZ;K[__^+GP0!``"%VP^5P.G$ -XM_?__#[9%V(M-M(B!/`$``(M%W(F!0`$``.EC^___D)"0D)"0D)"0D)"0D)"0 -XM58GE5E.#[#"+70R+=0CV0S$(=%R#>P0!=%:-0T#'0T``````B40D"(M#-(DT -XM)(E$)`3HN4C^_X7`#X7"````BT,LA7<.+1?2%P'3)C5#_ -XMBT,LB5-`A7<.- -XM=@"#Q#`QP%M>7<.-M"8`````BT,\B5-(B4-$@\0P,6#[#B)7?2+70R-1>R)1"00C47PB77XBW4(B7W\B40D#,=$)`@` -XM````BT,TB30DB40D!.BVHOW_A6#[`B)'"2)="0$BT@\BW!`B4A$B7!(BT`LA/KV(GVC;PG`````%6X`0```(GE4X/L%(M=#/9#,0AT -XM`XM#!(E$)`B-0SR)1"0$BT4(QT0D#`(```")!"3HJO0``+H!````AR+61"-0P@Y`0^$D`````^V@6P$ -XM``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L#Z_"N@$```"#^`)V`XU0 -XM_HU'/(E4)`C'1"0,`````(E$)`2)#"3HHO,``+H!````AR+61"- -XM0P@Y`0^$D`````^V@6P$``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L -XM#Z_"N@$```"#^`)V`XU0_HU'/(E4)`C'1"0,`P```(E$)`2)#"3HLO(``+H! -XM````AED&O__C70F -XM`(E-#(E5"%WI-/___XUT)@!=Z3JX__^-=@"-O"<`````5;H!````B>6#[`B+ -XM30SV03$(=`.+402+030YPG,4*=")PHE!/(M!0(E11(E!2#'`R<.-032)1"0$ -XMBT4(B00DZ"QE``"X`0```,G#D(UT)@!5,<")Y5.#[!2+70SV0S$(=`:+0P2# -XMZ`&)1"0(C4,\B40D!(M%",=$)`P`````B00DZ+KA``"Z`0```(7`=0F)V.BZ -XM^O__,=*#Q!2)T%M=PU6)Y5.#[!2+70S'1"0,`@```,=$)`@`````C4,\B40D -XM!(M%"(D$).ATX0``N@$```"%P'4)B=CH=/K__S'2@\04B=!;7<.-=@"-O"<` -XM````53'`B>53@^P4BUT,]D,Q"'0&BT,$@^@!B40D"(U#/(E$)`2+10C'1"0, -XM`P```(D$).@:X0``N@$```"%P'4)B=CH&OK__S'2@\04B=!;7<-5B>564X/L -XM((M=#(MU"/9#,0AT+(M#!(DT)(E$)`3H79G]_X7`=#N+0P2)0SR)V.C<^?__ -XM,<"#Q"!;7EW#C78`C47TB40D!(DT).C1F?W_A9_?^%P'0/C78`@\0@N`$```!;7EW#BU7TA=)UM>N!D)"0D)"0 -XMD)"0D)!5B>6#[#B)7?2+70R)??R+?1")=?B+2S2+Q=PXGV==,[4T!VSHGVC;PG`````.NP -XMBU-`A=)UTH/H`8E#/(UU\(E$)`2+10B)="00QT0D#`````#'1"0(`0```(D$ -XM).AKEOW_A6#[#B)7?2)TXE-\(M-#(EU -XM^(G&BT,LB7W\BWT0BW2)1?"!BU0(`````0``QT0D%'T&"0B+AIP```"+@#`!``#' -XM1"0,A08)",=$)`BRN`@(B40D$(M%\(D\)(E$)`3H^AS]_XGYQT0D"`$```#' -XM1"0$0````(D$)(M5#(GPZ!?^__^)P^MFC78`,?^%TL=%\`````!U=,=$)!1] -XM!@D(BX`P`0``QT0D#(4&"0C'1"0(LK@("(E$)!"+1?")/"2)1"0$Z)8<_?^) -XM^<=$)`@!````QT0D!$````")!"2+50R)\.BS_?__A?:)PW0,BT80A_?^#Q"R)V%M>7UW#C47PB50D#(E$)`C'1"0$`````(DT).@T -XM//[_A(E4)`R)1"0(BT-TB30DB40D!.CR._[_AZ`0`` -XM`(GVB50D"(M5##')QT0D!"````#'!"0`````Z*/\___)PY"Z`@```.O9B?:- -XMO"<`````58GE5XG75HG&4X/L3/9",2`/A1D"``#V@$P#```!#X7<`0``BX!$ -XM`P``A<`/E<`\`1G`,=(E````^`6`B$`(@_D"#Y3"@^H!@^+P@\(_B40D#(E4 -XM)`B)?"0$B30DZ"Y7``"%P`^%M@$``(M6>(M".(7`#X2H`0``@_@%#X31`0`` -XMBT((BUX0B8.0````BT(0QX,``0``````!(F#E````(M&$(N`&`$``(7`=0K' -XM@P`!```````%BT9,B47$BT90B47,C47PB40D"(V#@````(E$)`2)-"3H!$3^ -XM_X7`#X4\`0``BX.0````B470BX.4````B47(QX.4`````````(M%\(7`#X75 -XM````BX/@````@_@!#X2B`0``@_@"#X2"`0``BT<\B30DB40D!.C.DOW_A<`/ -XMA#X!``"+1RR%P'0*]D`&(`^%T`$``(N+``$``(M=R(7;#X20`0``BT70@#AZ -XM=5V+7LA@^L!#X2O`0``@\(! -XM#[8*#[[!@_A_=PKV!(7=%`D(!'7?C4'3/`$/AE8"``"`^2L/A$T"``"`^5X/ -XMA$0"``#'1"0(/`8)",=$)`0#````B30DZ-?$_?^-M"8`````BT7$B4=$BT7, -XMB4=(@\1,N`$```!;7E]=PXVT)@````"+@$0#``"-!$#!X`(#1A"+0#B%P`^5 -XMP.D3_O__C70F`+@!````@\1,6UY?7<.-=@")3"0(,7UW#BT9,B4<\BT$``!``B5=$#X0?____BTK^___'1"00#````,=$)`P!````QT0D"#\- -XM"0C'1"0$`````(DT).AMA/W_A<`/A;7^___'1"00#````(M%R(E$)`R+1=#' -XM1"0$`````(DT)(E$)`CH/X3]_X7`#X6'_O__BT<\C5W6+10B+50Q=Z"+5>"X`0```(72#X3N````BT4,]D`Q"`^%40$``,=%W`$```"# -XM[@&-5?"-3>R)5"00B4PD#,=$)`@`````B70D!(M="(D<).B`C?W_A<`/A>T` -XM``"+3?"%R73)BUWLB5W8#[8#/'L/A+0````\#`^$K````#PN=:R#^0&0=J:+ -XM5>`/M@*$P'2L+#[9"`H/"`H3`=(B)^SC8=>\/MD(!/"`/A'X` -XM``"+7=@Z0P)UVX-MW`%UU8M%#(EP/,=`0`````"+50R+0CB%P`^%B0```(M" -XM,(-J-`$E#_[__X/(0(E",(-*,`B+70R+0T"+4SR)0T@QP(E31(/$/%M>7UW# -XMBX%0`P``C01`P>`"`T$0BT`XB47@Z>#^__^#;=P!#X7Z_O__ZY"#^0(/A7G_ -XM__^-M"8`````Z77___^+10S'0#P!````QT!``````(M5#(M".(7`#X1W____ -XMBTT,@^@!B4$XZ7____^+50R+4@2)5=SIJ/[__\=$)`0`````BU4(B10DZ(U8 -XM``"#Q#RX`0```%M>7UW#58GE5U93@^P\BT4(]H!8`P```0^$%P(``(G"BX!0 -XM`P``C01`P>`"`T(0BT`XB478!``"+50R+6C2#PP&- -XM5?"-3>R)5"00B4PD#,=$)`@`````B5PD!(M%"(D$).B4B_W_A<`/A?X```"+ -XM3?"%R73)BW7L#[8&/'MT?8M5#(MZ+(7_=!'V1P8@=`L\?71IC;0F`````#P, -XM#X2D````/"YUF(/Y`9!VDHM5W`^V`H3`=(@/ME8!B%7CBU7-U[`^V0@$\('1T.D8"==^#;=@!C78`==:%_W0F]D<&('0@ -XM@^L!D.M_@VW8`0^%./___SQ[B?8/A',!``"+30R+>2R+10R%_XE8/,=`0``` -XM```/A9T```"+10R+4#R)P8M`0(E11(E!2(/$/#'`6UY?7<.#;=@!#X7N_O__ -XMZYJ#^0*0C70F`'6"@VW8`0^%7/___XUT)@#K@(M5#(/K`3E:-`^$[@```(U% -XM\(E$)!#'1"0,`````,=$)`@!````B5PD!(M5"(D4).A9BOW_A -XM_O__D)"0D)"0D)"0D)"058GE5U93@^P\BU4,C7W8BT(TB478BT(XB47R#^`$/ -XMA,T!``"%P`^$I0$``+L!````B7PD!(M-"(D,).C$G/__A<`/A4R# -XM^`(/A.N#@_L"C;8`````=`B%VP^%_O[_ -XM_X/N`8UV``^%\O[__XE\)`2+70B)'"3HNYO__X7`=4*+=>R%]@^%9?___P^V -XM5>@[%?P@"0@/C57___^A""$)"/9$D#8"#X1%____B7PD!(M%"(D$).CMG?__ -XMA<`/A"[___^X`0```(/$/%M>7UW#@_X!#X08____B7PD!(M5"(D4).C`G?__ -XMA7UW##[95Z#L5_"`)"'T,H0@A"0CV1)`V`G47B5PD!(DT -XM).A+F/__AR%P'4K#[9%Z#PI=-T\7739/")TU3PG -XM=-$/MM`[%?P@"0A](*$((0D(]D20-@)T%(E<)`2)-"3HRYK__X7`#X7'_O__ -XMBU78.5R#^`-TY(7`#X6\````#[95Z#L5_"`)"'T,H0@A"0CV1)`V`G7$BT7$@T7, -XM`8E%V(M%R(E%W.F:_O__@/H_#X7?_O__BT70A<`/A(W^__^#;7UW#B5PD!(DT).B:F?__A<`/A#+^___I\?W__XE<)`2)-"3H89;_ -XM_X7`#X7=_?__@WWL`W3FC78`Z0O^__^#Z`$/A5/___^+5=B+1RR)5SR+5=R% -XMP(E70'1B]D`&('1#0!#X0N`0``BX*0`0``BP")@I0!``"+@9P```"+ -XM@)`!``"+0`B)@IP!``"+@9P```"+@)`!``"+0`2)@I@!``"+04")@J`!``"+ -XM042)@J0!``"+03R)@J@!``"+04`Y040/A-4```"+F9P```"-!$"+DXP!``"# -XMZAB--,*+DY`!```YUG90BP*#P`&)0AB+@9P```"+D)`!``"+@(P!``"+0`2) -XM0AR+@9P```"+@)`!``#'0"`!````BX&<````@X"0`0``&(N9G````(N3D`$` -XM`#G6=["+DY`!``"+`H/``8E"&(N!G````(N`D`$``,=`(`$```"+@9P```"+ -XM@)`!``#'0!P`````BX&<````BX"0`0``QD`N`(N!G````(.`D`$``!B+04"# -XMP`&)04")042)03Q;,7<.+F9P```#KDHVV`````(V\)P````!5B>575E.# -XM["R+11"%P`^$"`$``(M`"(E%\(M-%(M]\(7)#X2:````#[X'A<`/B(\```"+ -XM-?P@"0@YQ@^.@0```(L=""$)"(GZ]D2#-@)U&>MP#[X"A(M5&(E""(M-&(M1$(72=)2+31B+00B)5"0(B40D!`'8B00DZ'T* -XM_?_I=____XM%#(7`=12+11C'0!P`````@\0L,575E.)PX/L/(E5U(E-T,#B+5=2+3=B+4@B%R8E5Z`^$80$` -XM``^V$@^^PH7`#XA3`0``BS7\(`D(.?")=>P/C4(!``"+#0@A"0B)3?#V1($V -XM`@^$+@$``(MUZ#';BT78QT7<`````,=%X`````"-!`:)1#@[1>Q],XM-\/9$@38"="F`^@EUTX7;=`?'1>`! -XM````BU70`````=QR)^^L"B#1>0!C0P[*=$[3=QV -XMZHG8BWW)\"M%Z(T4#SG0=&HI1=B)PXM%V"G3B70D!"G>B30DB40D -XM".B*"/W_BU74*5H0*5H8BUWDBTW4@^L!@_O_BU$(=!J+=>2)T(T,%HUT)@#& -XM``F#P`$YR'7VC50:`87_=`V-!#K&`B"#P@$YPG7VBT70QP`!````@\0\6UY? -XM76#[!C'1"0(Y`<)",=$)`0"````B00DZ`*R_?_)PU6)Y5>)QU:) -XMUE.#[#SV10L!B4W8#X1>`0``BT(HA<`/A`L!``"#Z`&)0BB0C70F`(M=V(M& -XM&(M."`^V$X@4`8/``8E&&#'`@\0\6UY?7<.)T0-.$#M.#'8KC48,B40D"(M& -XM"(E,)`R)/"2)1"0$Z"TF_O^%P`^$U0(``(E&"(M5[(M%Z"G"BT8HB57['1>@`````BT7@A``````ZTT\_P^$Q@````^VP(T$0`'``T<0#[:`70$``(E%[(M5[(M%Z#G" -XM#X0)____#X-,_O__*="#1>`!A<")1>@/A/G^__^+1BB%P`^$[O[__X/H`8M6 -XM"(E&*(M%\`^V!`(\"76?C47LB40D$(M&%(E<)`R)5"0$B3PDB40D".@_N``` -XMZYR)1"0,C48,B40D"(M&"(D\)(E$)`3H,R3^_X7`#X3;````BU8@@T80`8E& -XM"(72#X2I_?__Z<+^__^+3@B+5A@/M@01B$01`>F1_?__D,=$)`3_____B3PD -XMZ$!M_?_I-____\=$)`3_````B3PDZ"MM_?_IX_[__XM%W(7`#X0Q_O__,<#& -XM1!`!((/``3M%W'7SZ1W^__^)T`-&"`^V&,8`"8U%Z(E$)!"-1?")1"0,BT84 -XMB3PDB40D"(M&"(E$)`3H>+<``(M6"(M%\(@<`NF*_O__BT7PBU8HBUW@`T8( -XM`U8@`U7@B00DB50D"(T4&(E4)`3HF03]_^G5_?__N`$```#I[?S__\=$)`3_ -XM____B3PDZ(9J_?^+3@B)PNEN_?__C;8`````C;\`````58GE5U:)UE.#[$R) -XM1#B+5`"`T(0BT`XB47,BUX8,)^"G0`47@.5X8=]^+5>`QVSE5 -XMU,=%V`````!V'8G3B=`QT@'[]_>+1>`ITSE=U`^#O````(M=U"G#BT7-=@"+1BB+?C2%P(E^$'1#@R'WBPLYT715 -XMBT,$B4$$BT,$B0B)'"3H=S/]_\=$)`@!````BT84@\`!B40D!(M%\(D$).@: -XMQ0``@_@!&=LA\^N%D(M&((7`=;:+1@C&!#@@@T8@`8-&$`&#"0CKI8M#!(E! -XM!(L+ZZ>-="8`C;PG`````%6)Y5=64X/L7(E%U(M%#(E5T(E-S,<``````(M" -XM&(M2)#G0B578#X1,`0``BUW0C4C_BW,(`"+7<"#Z0$I -XM^X/'`3M-V'12BW7`B?CWV`^V%#`/ML([1>!]#8MUR/=$AC0`!0``=3*`^E]T -XM+3M%X'W&BU7(]D2"-@)TO.L7UW#B7PD -XM!(D<).C2(/[_A<`/A+<```"+11#'``$```"#Q%PQP%M>7UW#QT0D$`$```"+ -XM0R")1"0,BT,7UW#BUW(]T2#-``%```/A%+^__^A_"`) -XM"+\!````BUW`B47<@^D!@^L!@\B+2AB+0QR#Z0&) -XMR@-3"(E%Y*$((0D(B7WLB47PZPLY2R1T)(/J`8/I`0^^`H7`>`\[1>Q]"HM] -XM\/9$AS8"=32#Q@$[3>1UUXET)`2)%"3H%Q_^_X7`=0Z+?>B##P2#Q!Q;7E]= -XMPXM%Z(,@^X/$'%M>7UW#@\(!.4WD=,PY2R1UU^O%D(VT)@````!5B>57B==6 -XM4X/L'(M"&`-""`^V$(A5\\8``(M'&(/H`8G#`U\(@#L8=#"+3QPYP70IBUNBT<8BU<(#[9-\X@,`HM' -XM""EW&(M7&"EW$(A<`O^+5RB%TG4HBU<@A=)TD(M'&`-'"`-'*(E4)`B-%#") -XM5"0$B00DZ)'\_/_I;____XM'&`-'"(E4)`B-%#")5"0$B00DZ'/\_/_KO8VV -XM`````(V\)P````!5B>575HG&4X/L#(NXG````(-X-`&)^0^$TP```(N7J`$` -XM`(E0/(N'I`$``(E&1(N'H`$``#M&1(E&0`^$Y````#G0B=-R,HM&$(E<)`2# -XMPP''1"0(`````(DT)/^0D`@``(M&$(DT)/^0;`@``#E>0'/4BXZ<````BT8\ -XMBY&,`0``C01`@^H8C03"B8&0`0``]H84`@```75RBXX,`@``AL`0`````` -XM`(/$#%M>7UW#BX8,`@``C01`P>`"`T80BU@XA=L/E,#K@(.OD`$``!CI8/__ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y5=64X'LO`(``(M%"(M5"(M-"(MU%(M`$(F% -XMB/W__XN2G````(F5?/W__X&)K`0```````B#P7B+70B)C8S]__^+6W@YRXF= -XM8/W__P^$6A$``#D+#X1;"```BUT8@\,@BX6,_?__B00DZ$`M_?^)7"0,BWT8 -XMB70D!(E\)`B+10B)!"3HIB[]_X7`B85@_?__#X3H!P``BU4(BXU@_?__BT)X -XMB0&+G8S]__^)600Y6GP/A$$/``"+=0B+O6#]__^+1GB)>`2+E6#]__^+10B) -XM4'B+C6#]___'03@$````BUT(BT-,B4$4BU-0B5$8BUT8A=L/A#]``"%P`^%3P8``(M%**@0=$B+ -XM52"%TG1!B[U@_?__QT0D#`````#'1"0(`````(E\)!"+12")1"0$BU4(B10D -XMZ"7M__^%P`^%#08``(M''(E'&.L9D(UT)@"H`@^%"`8``(N=8/W__XM#&(E# -XM)/9%*D!T(8NU8/W__P^V31R+1AB+5@B(#`*#P`A`!@T8D`8E&&/9%*`@/ -XMA6(&``#V12M`QX6@_?__`````'0OBWT(]H>0!````0^%>08``(M5"(N"B`0` -XM`(7`#X2"!@``BTT(BTDX*<&)C:#]__^+O8C]___'1=P`````]H=4"````0^$ -XMB@4``/9%*@3'A9#]__\"````#X1V!0``BU4H]\(````"=!:)T"7__W__B44H -XMB<+'A9#]__\`````B="+30@E````"(/X`1G`@>(```0`]]"#X`.#^@&+E6#] -XM__^(A:C]__\9P/?0@^`$B47@BT(4B4%,BT(8B4%0QT0D!`$```")#"3H?J0` -XM`(7`#X76!```BUT,]D,Q(`^$QP@``,>%F/W__P````#'A%I/W__P````#'A=3]__\`````QX64_?__`````,>%P/W__P`` -XM``#'A)O83]__^+M=3]__^%]G0:BY6$_?__@'H,(`^$ -XM!Q\``,>%U/W__P````"+C83]___V010(#X68"P``@[V8_?__`@^4PH.]F/W_ -XM_P0/E,&$TG4$A,ET3(M%X(/@[_9%*@2)1>!T!H/(!(E%X(32=!6+G83]__^+ -XM0Q"#Z!"#^`$/AM8B``"$R700BX6$_?__@W@0#`^%8R,``,>%F/W__P````"# -XMO%`D(`74@BY5@_?__BT4(Z)7X -XM__^%P`^%$`<``,>%R/W__P````"+G83]__^+2Q"#^10/AD@'``#V12A`#X32 -XM"@``BX6$_?__#[90##L5_"`)"`^-:0T``*$((0D(]D20-0(/A%D-``"#^0H/ -XMA%`-``"#^0\/A$<-``#'1"0(<`@)",=$)`0"````BU4(B10DZ+2?_?_V12L" -XM#X65#```BXV@_?__A%S/W__P````"+A7S]__^+@%P!``"% -XMP`^$@@P``(M-"/:!KP0``!!U*HN%Q/W__X7`=2#'1"0(`````,=$)`0````` -XMB0PDZ'1X``"%P`^%+`(``(N%H/W__X7`=1"+70B+0Q"+@!@!``"%P'4UB[5@ -XM_?__BWT(BT84B4=,BT88B4=0,<"#O:#]__\`B3PD#Y7`B40D!.B%H0``A<`/ -XMA=T!```/MH6H_?__J`*)A5S^__\/A/T```"+50B#>C0!#X3I````BXU@_?__ -XMBTD8@_D!B8TX_O__#X;<&P``B[5@_?__BUX(B[4X_O__#[9$'O\\7(B%/_[_ -XM_P^$#AL``(M5"/:"?`,```$/A+<:``"+@G0#``"-!$#!X`(#0A"+4#@/OH4_ -XM_O__B10DB40D!.B`\/S_A"(MV&(FU./[__P^V1![_B(4__O__#[:5 -XM/_[__SH3#X6O&```@[TX_O__`G0+@'P>_EP/A)L8``"+30R+432+03B)442) -XM04B`I:C]___]]D4K`@^%4OS__^D=!0``#[:%#/___SGP#X0N&@``.<,/A0(7 -XM``"#K2#^__\!#X7U%@``BY7\_O__.Y5X_O__#X(&_O__#X6;)@``BX4`____ -XM.X5\_O__#X+N_?__BTT(B5%,B4%0QT0D!`$```")#"3H]9\``(7`=5&+70CV -XM@UP"```!#X1-)@``BX-4`@``C01`P>`"`T,0:T`X9,=$)`Q`````B40D",=$ -XM)`0`````BWT(B3PDZ/]@_?^%P`^$A_W__XVT)@````"X`0```('$O`(``%M> -XM7UW#BXU@_?__BT$8QT$D`````(E!'.GL^?__QX60_?__`````.E[^O__BUT8 -XMB[U@_?__@\,@.5\,#X*6]___BY5@_?__A?;'0B@`````QT(D`````,="(``` -XM``#'0AP`````#X3#"```BTT8B4H0B4PD"(ET)`2+0@B)!"3H%?+\_^F_]___ -XMBT48B[U@_?__*=")1R#I]_?__XN=8/W__XM#"(M3&,8$$""#0Q`!@T,@`<=$ -XM)`@#````BT,4B40D!(MU"(DT).CGM0``Z6?Y__^+AX@$``"-!$#!X`(#1Q"+ -XM0#B%P`^%?OG__XM="/:#A`0```$/A!((``"+@WP$``"-!$#!X`(#0Q"+0#B) -XMA:#]___I7_G__XN]8/W__XM'&`-'"(T,&(M%"/:`#`$```$/A/4=``")PHN` -XM!`$``(T$0,'@`@-"$(M0.(72#Y7`A,!T08N%G/W__X7`=##O93]__\"#X15(```B70D -XM$(N-8/W__XM!&(E,)`C'1"0$`````(E$)`R+70B)'"3HPN3__X7`#X5-`0`` -XMQX64_?__`````(M&'(E&&(N%T/W__X7`#X3(````BX5@_O__A$(N-8/[__P%.&(N=,/[__XE>*(N]+/[__XE^(,>%T/W_ -XM_P````"+?BB%_W4LBUX@A=MU)8M&$(/``3M&#`^'("```(--*`B+5@B+1AC& -XM!`(@@T8@`8-&$`''1"0(`@```(M&%(E$)`2+50B)%"3H-[,``(N-8/[__XFU -XM8/W__XF--/[__X7`#X1S^?__BU4(BT)XBU@4ZPF)]H7;=!J#ZP&)7"0$BTT( -XMB0PDZ$IF_?^%P'3FA=MU!;L!````BW4(N`$```"#CJP$``!`B5Y,QT90```` -XM`('$O`(``%M>7UW#_R2-J`@)"(UUM,>%F/W__P````#'A%I/W__P````#'A=3]__\`````B;6$_?__QX64_?__`````,>% -XMP/W__P````#'A`7`$```````#'@%@!````````QX!4`0`` -XM`````(E<)`2+50B)%"3HM(4``,=$)`0!````BTT(B0PDZ(&:``#'A<3]__\` -XM````B[V$_?__@W\("P^&UP,``(N=A/W__XE<)`2+=0B)-"3HDE;]_X.]D/W_ -XM_P(/A!,+``#V1>`$=`KV12H"#X7-!0``]D4H")!T$8N]8/W__XM/((7)#X7P -XM!```]D4K`0^$R@```(N%8/W__XMP*(7V#X3^````BU4(,=N+2GB)RNL2BT(0 -XM`T(LBQ(!PSF5C/W__W03.Y5@_?__=>:+O6#]__^+1QCKX3E=&`^&C````(U% -XMT,=$)!``````B40D#,=$)`@#````BT$4B40D!(M%"(D$).AO8OW_A(F%$/[__P^% -XMCP0``,=%T`````"+0Q")1"0,BT,(B40D"(M#%(E$)`2+30B)#"3H.F;]_X7` -XM#X6U_/__BU70A=(/A3,0``"+`$=!?V12H"=!&+E6#]__^-3>"+10CH;NS__XN%D/W__X7`="R+O83]__\/ -XMMD\,#[;1.Q7\(`D(#XS)`0``@/E?QX60_?__`0````^$R0$``(M%*(G9B00D -XMBY5@_?__BT4(Z&+B__^%P`^%/?O__X.]F/W__P,/A``)``"+O>[__X-O$`&#;R`!Z0/[__^)P2G1Z4KZ___'1"0(!P```,=$)`0````` -XMBTT(B0PDZ`PI``#II?K__XET)`2+50B)%"3H"(```(7`#X2G^?__Z3OU__^+ -XM10B!B*P$````!```N`$```#I*?7__XN-I/W__X7)#X5E!P``BT4HJ0````(/ -XMA5<'``"+O83]__^`?PP`#X5'!P``BY5\_?__BY)$`0``A=(/A(_^__\E__]_ -XM_PT````"B44HQX60_?__`````.E9\/__BY5@_?__C4W@BT4(Z#?I___I'?K_ -XM_XM%"(U-T(G:Z#7=___I9OO__XE$)`R)T(/`#(E$)`B+0@B)1"0$BTT(B0PD -XMZ.$%_O^%P`^$'/C__XN=8/W__XE#".G+_?__B[5@_?__BT88.T8<#X<(\?__ -XM]D4H$`^$_O#__\>%E/W__P,```#I[_#___9%*00/A.7P__^+E6#]__^Y`0`` -XM`(M%".ACXO__A<`/A;[W___IM?S___9%*!")]@^$N?#__XN]8/W__XM?&(7; -XM#X0/\?__@[V4_?__`0^$LA,```^#.A$``(NU8/W__XM&'(7`#X2$\/__`T8D -XM.<,/AWGP__^+10@QR8GRZ/[A___IS_#__XN=8/W__XM#&#M#'`^'5O#___9% -XM*!`/A$SP___'A93]__\!````Z3WP__^+O6#]__^+7QB%VXG9#X3?"@``BX5@ -XM_?__.4@D#X.D!0``BY5@_?__BT("-7PS'A9C]__\#````@\@0@^#[B47@ -XMZ8#Z__^+C6#]__^+41B%T@^$MPD``(N=8/W__SM3)`^&4`0``(NU8/W__XM& -XM'(7`=`8YPHG!=Q"+O6#]__^+3R3'1QP`````BY5@_?__BT(H`T(8*E!____B[U@_?__BT<8BU%S/W__P$```#I&>[__XM%*&:%P`^)#>[__X-] -XM)`$/AA\5```E__]__PT````"@VTD`:@!B44H#X7A%```J0````%T&HNU8/W_ -XM_XM&*,=&*`````")1B"!92C____^QX60_?__`````,>%I/W__P````#IDNS_ -XM_XNU-/[__XFU8/[__XM5*/;&"`^$F@4``('B```"``^%Z0H``(M5"/:"KP0` -XM``$/A?0-``"+C6#]__^+01@[021W!\=!.`(```#VA:C]__\"#X3^!P``BYU@ -XM_?__BT,D@\`!.4,8#X+I!P``QT,X!0```(NU8/[__XFU-/[__^G,]?__QX7( -XM_?__`0```.GZ]___BY5@_?__BT4(Z('E__^%P`^%_//__\>%R/W__P````#I -XMV_C__\=$)`@#````BT,4B3PDB40D!.CSI@``A<`/A'KW___IR?/__XVV```` -XM`(G(@\`,B50D#(E$)`B+00B)1"0$BW4(B30DZ&$!_O^%P`^$^>___XN]8/W_ -XM_XE'"(M%T.GSZ/__BXU@_?__BT74`T$(B50D"(/``8E$)`0!V(D$).AKXOS_ -XMZ>+H__^-!!.%VXE%U`^$,^G__XGPC1P>Q@`@@\`!.=AU]ND?Z?__B[6$_?__ -XMC5X,Z:3W__^+52CWP@````(/A=[T__^+G8C]___V@U0(```!#X3+]/__BYV$ -XM_?__C47<@>(```(`B40D"(U%V(E$)`2)%"2+E6#]__^+10B#PPR)V>@@X?__ -XMA<`/A=OR__^+1=B%P`^$B/3___9%*H`/A#GL__^+M:3]__\IQHGP@^@!B86D -XM_?__Z2'L__^+52CWP@````(/A=/V__^+A8C]___V@%0(```!#X3`]O__C47< -XM@>(```(`B40D"(U%V(G9B40D!(D4)(N58/W__XM%".BBX/__A<`/A5WR__^+ -XM1=B%P`^$AO;___9%*H`/A+OK__^+E:3]__\IPHG0@^@!B86D_?__Z:/K__^+ -XMA6#]__^#:!@!@T`H`>GM]O__C47DB40D!(M5"(D4).C(CP``A<`/A0/R__^+ -XMC:#]__\[3>0/A_#V__^+72B+M6#]__^+O6#]__^A""$)"(F=%/[__XMV&(GQ -XM@^D!B;4<_O__B!4Y\'T1B[T8_O__]D2'-@(/A>,.``"+O6#]__\Y -XM3QQUQ,=%V`````#I9_;___9%*P(/A=3J__^+10CH5MC__^G'ZO__B[V8_?__ -XMA?\/A?$```"+32CVQ0$/A)($``"+70@/MI-4`0``@^(!#X2&"```BX-,`0`` -XMC01`P>`"`T,0BW`XA?8/E<"$P`^$8`0``(32#X1B#```BWT(BX=,`0``C01` -XMP>`"`T<0BT`XBYV$_?__#[X`#[93##';.=`/E,.!X0```0`/A!P$``"+=0@/ -XMMI;``0``@^(!#X0$"```BX:X`0``C01`P>`"`T80BT`XA<`/E<"$P`^$Z@,` -XM`(32#X3E"P``BU4(BX*X`0``C01`P>`"`T(0BT`XB[6$_?__#[X`#[96##G0 -XM#Y3`#[;0@^L!#X1A!@``@^H!#X3[!P``BY6$_?__]D(4`0^$AP,``(.%P/W_ -XM_P&!O<#]__\``0``#X^@!P``]D4J@`^$$NC__XN=I/W__XNU?/W__X/#`6O# -XM'#N&2`$```^'4PD``(NUA/W__XN%?/W__VN5I/W__QR+B$0!``"+!HD$"HM& -XM!(E$"@2+1@B)1`H(BT8,B40*#(M&$(E$"A"+1A2)1`H4BT88B40*&(F=I/W_ -XM_^FAY___QT0D!/____^+10B)!"3HK4;]_^GAY/__A<`/A$0%```YT`^&(/[_ -XM_XU0_XN%8/W__XE0&`^VC:C]__^#X0)T#8N=8/W__XM#",8$$""+M6#]__^+ -XM1AR#1B@!.488C__^DR^?__QT0D!/____^+30B)#"3H -XM.T3]_XG!Z>?D__^)1"0,B="#P`R)1"0(BT((B40D!(M-"(D,).C%_/W_A<`/ -XMA`#O__^+G6#]__^)0PCI"/3__X.]D/W__P(/A(\%``"+G9#]__^%VP^%:P0` -XM`/9%X`1T"O9%*@(/A04*``#V12@(=!6+G6#]__^+2R"%R70(@VL0`8-K(`&+ -XMM6#]__^+1A")1C2+1AB)1C")1A#'1"0(`P```(M&%(E$)`2+?0B)/"3HFJ$` -XM`(7`#X5U[O__BT8@QT8L`````(M>*/9%*P&)A9S]__\/A-KK__^%VP^$TNO_ -XM_XM.&`-."`^^$872#XA`[/__.17\(`D(?S+I,^S__XN58/W__X/!`8-"+`&# -XMZP$/A,4)```/OA&%T@^($NS__SL5_"`)"`^-!NS__Z$((0D(]D20-@)UQ^GU -XMZ___D(NU8/W__XM&%(E#3(M&&(E#4,=$)`0!````B1PDZ,Z)``"%P`^%)NK_ -XM_XV%>/[__\=$)`P#````QT0D"`````")1"0$B1PDZ)2;``"%P`^%_.G__XM& -XM%(V]_/[__XF%_/[__XM&&(/H`8F%`/___XE\)`2)'"3H!6?__X7`#X7-Z?__ -XM#[:%#/___S';QX4@_O__`0```#PI#[;P#Y7#@^L!@^.MB(4G_O__@\-[C97\ -XM_O__B50D!(M-"(D,).B^9/__A<`/A8;I__^+A1#___^%P`^$O.C__X/X`G0% -XM@_@$=%F/W__P(```#I,>;__\>% -XMP/W__P````#I@?S__S'2Z4'\__\QV^G*^___BT4(@:"L!```____]^E<\O__ -XMBX5@_?__BW`DBT@8QT`<`````.F#]?__QT0D"`,```"+0Q2)1"0$BW4(B30D -XMZ'J?``"%P`^%5>S__^FF[___BXU@_O__B8TT_O__Z>KM__^-12B)^8D$)(N5 -XMC/W__XM%".B6V?__A<`/A"'L__^+2!B)A6#]___I]?3__XU%*(D$)(N5C/W_ -XM_XM%".ALV?__A<`/A/?K__^+4!B)A6#]___I'_;__XM]"(NU8/W__XN'G``` -XM`(M>%&:!B,@!``"``(GX@:>L!```____Y^A:WO__A<`/A1+H___VA5S^__\! -XM#X1W!0``BT4,BU`TBT`XB95X_O__B85\_O__N$````"+O6#]__^+5PB`.B\/ -XMA&D(``")1"08QT0D%`````"+C6#]__^+01B#Z`&)1"00C4(!B40D#(M%#(/` -XM1(E$)`B-A7C^__^)1"0$BW4(B30DZ`?-_?^%P`^4P(3`#X3P!```BWT,BU4( -XMBT=$B4),BT=(B4)0@*6H_?___HM"$(NX&`$``(7_#X2N"@``BT4(Z`C-__^% -XMP`^%4.?__XM-"(N!G````&:!H,@!``!__XN!G````(&)K`0``````!B+M6#] -XM__^+@)`!``"+`(E&%(N!G````(N`D`$``#D8#X0^YO__QT0D#`````#'1"0( -XM`````(E$)`2)#"3HO4L``(7`#X7EYO__BWT(BT<0QT0D!`````")/"3_D)@( -XM``#I_N7__\>%D/W__P$```#IAOO__XM-"(N1=`,``.E-Y?__C44HB00DBXU@ -XM_?__BY6,_?__BT4(Z*+7__^%P(F%8/W__P^%FN/__^DBZO__@X4@_O__`>G0 -XM_/__@_X"#X2?Y?__@'P>_EP/A93E___IV>3__X72=!*+O6#]__^+1Q@[1R0/ -XMA8GY__^+A6#]___'0#@!````Z8#K__^H!`^%NP,```^VE:C]__^+A6#]__^# -XMX@*+2!B)E4#^__\YS@^"_0,```^VA:C]__^#X`*)A4#^___I>O/__\=$)`@# -XM````B[U@_?__BT<4B40D!(M%"(D$).B4G```A<`/A6_I___I^O3__XM=#(M3 -XM-(M#.(E31(E#2.GHY/__]\(````"#X7>_O__B[V(_?__]H=4"````0^$R_[_ -XM_XN=A/W__XU%W('B```"`(E$)`B-1=B)1"0$B10DBY5@_?__BT4(@\,,B=GH -XM1-?__X7`#X7_Z/__BT78A<`/A(C^__^+E6#^___V12J`B94T_O__#X11XO__ -XMBXVD_?__*<&)R(/H`8F%I/W__^DYXO__C78`QX74_?__`````.DGXO__BWT( -XMBX>X`0``A<`/E<#I`/C__XMU"(N>3`$``(7;#Y7`Z7[W___'1"0$`0```(M- -XM"(D,).@X0/W_A<`/A2,'``#V12L"QX7`_?__``````^%9^[__^G-X?__BY5@ -XM_?__BUH8QX7<_?__`````,>%Q/W__P````"#^P$/A,H&``"+M6#]__^+/?P@ -XM"0BA""$)"(MV"(F]9/W__XF%V/W__\>%6/[__P````"-3![_B;5T_O__ZP@Y -XM1R1T0(/I`0^^$8G8*X58_O__@^@!A=)X&3N59/W__WT1B[78_?__]D26-@(/ -XMA9,'``"+O6#]__^#A5C^__\!.4<<=;N)RRN==/[__XN58/W__XM"$(/``3M" -XM#'8SB40D#(G0@\`,B40D"(N-=/[__XE,)`2+=0B)-"3H._7]_X7`#X1VY___ -XMB[U@_?__B4<(BX5@_?__`U@(B9UP_O__`YU8_O__B9UL_O__#[8SQ@,JC9UX -XM_O__QT0D&`````#'1"04`````,=$)!``````QT0D#`````#'1"0(`````,=$ -XM)`0`````B1PDZ!M.__^)7"0$BU4(B10DZ!Q#_O^%P`^%]^;__XN%6/[__X/` -XM`8E$)`R+C7#^__^)7"0$B4PD"(M="(D<).A^4?[_A<`/A#0'``"+E6S^__^) -XM\(@"Z2W@__^-M"8`````B40D#(GP!4@!``")1"0(BX9$`0``B40D!(M]"(D\ -XM).A,]/W_A<`/A(?F__^)AD0!``#I=O;__\=$)!`$````QT0D#`$```#'1"0( -XME@@)",=$)`0`````B10DZ)%`_?_IW_'__X.]E/W__P,/A'4#``#H#M'\_X"- -XMJ/W__P'I+OO__XMU#(M&2(M61(F%?/[__[A(````B95X_O__Z83Z__^-4?^+ -XMC6#]__^#02@!B5$8#[:=J/W__X/C`HF=0/[__W0'BT$(Q@00((N]8/W__XM/ -XM&(M'"`^^5`'_A=(/B!S\__\[%?P@"0@/C1#\__^A""$)"/9$D#8"#X4GW___ -XMZ?O[__^+E6#]__^+0@@/MEP!_P^^TX72>!P[%?P@"0A]%*$((0D(N0$```#W -XM1)`T``4``'4(,"+10CHCM7__^GE]?__BTT(BX&X -XM`0``Z2+T__^+50B+@DP!``#II?/__XNU8/W__X-N&`B@!B[V$_?__QX68 -XM_?__`````(U?#.D/Z?__BUT(BX,$`0``A<`/E<#I$>+__XNUG/W__X7V#X1( -XMXO__#[X1A=(/B#_B__\Y%?P@"0A_-NDRXO__B[5@_?__@\$!@T8L`8.MG/W_ -XM_P$/A!;B__\/OA&%T@^(#>+__SL5_"`)"`^-`>+__Z$((0D(]D20-@)UP^GP -XMX?__C5@,QX68_?__`````.F"Z/__BX5@_?__BU`%:/___P````")5"0, -XMB40D",=$)`0`````BWT(B3PDZ#[Q_?^%P(G"#X1WX___B85D____BT8%E/W__P(```"+7AB)A6S___^)A7C___^+ -XMC6#]__^+00C&1`/_((M!*`-!&"M!),=!'`````")02B+022)01CIAMS__XE$ -XM)!C'1"04`````(M'&(/H`8E$)!"-0@&)1"0,BT4,@\!$B40D"(V%>/[__XE$ -XM)`2+10B)!"3H1,G]_X7`#Y3`Z9CW__^+E6#]__^+0AR%P`^$R-O__P-")(/` -XM`3G##X>ZV___QX64_?__`````.E@____]H44_O__"(U"`8F%*/[__P^$WP$` -XM`(N%8/W__XN]8/[__XM8((/K`8F=+/[__XMP*"F]'/[__XN='/[__XFU,/[_ -XM_XE8&(NU8/W__XM&$(/``2M&("M&*,=&(`$````I^(E&$(N%8/W__\=`*``` -XM```/OAJ%VWAP.1W\(`D(?FBA""$)"/9$F#8"=%R+G6#]__^#:Q@!@VL0`3M+ -XM''1)B[5@_?__B=,[3B1U-.LZ.Q7\(`D(?3*A""$)"/9$D#8"=":+O6#]__^# -XMZ0&#;Q@!@V\0`3E/''00@^L!.4\D=`@/OE/_A=)YQHN%A/W__\=%V`$````/ -XMME`,.Q7\(`D(?26A""$)"/9$D#8"=!G'A=#]__\!````QX74_?__`0```.GA -XM[/__QX70_?__`0```.G2[/__BTH(,-O'A5C^__\`````B8UT_O__Z9_Y___' -XM1"0(,`@)",=$)`0#````BUT(B1PDZ%)Z_?_IO?C__XER>.EWW___B70D$(N% -XM>/___\=$)`0`````B3PDB40D#(V%7/___XE$)`CH;<3__X7`#X7XX/__A?\/ -XMA(P#``"+5Q"%T@^$@0,``(N%9/___SM"=`^$60,``(D$).C_T/S_QX64_?__ -XM`````.E\W___#[:5J/W__X/B`HF50/[__^F-ZO__B[U@_?__BX5@_?__BYU@ -XM_O__B[5@_?__BW\@B;TL_O__BT`H*9T<_O__B[T<_O__B84P_O__B7X8BX4L -XM_O__QT8@`````/?8*T8H*=@!1A#I&O[__\=$)`0`````B10DZ$)\``"%P`^$ -XM.O7__^F5W/__C5D!*YUT_O__Z7GX__^)1"0,C48,B40D"(M&"(E$)`2+10B) -XM!"3HRNW]_X7`#X0%X/__B48(Z;/?__^+G33^___'A:3]__\`````QX60_?__ -XM`````(F=8/[__^E`Z___B[U@_?__BT<8.T'__XN58/W__XM")(/``3E"&`^"3.'__\=".`4```#I0.'__XN-\/[__XGP -XMBYWL_O__BY5L_O__A#]__^)G03^__^(`G4BBX7<_?__A<`/A=38__^+ -XM30B+01")#"3_D&0(``#IP-C__X/I`0^$_P$``(M5"(N-!/[__XM2$(F5`/[_ -XM_XL!BP")A4C^___'1"0$+P```(D$).@IR_S_A<`/A+#]__\KA4C^ -XM__^#ZP&#P`&%VXF%[/W__XF=#]__\QVX/J`HF5:/W__^LDC70F`#N=:/W__W0]BXT$_O__B[7L_?__BT29 -XM"(/#`3MP"'<;B[WL_?__BS"+C>S]___\.?^+O4C^___SIG3%QX7L_?__```` -XM`(N%X/W__XN-!/[__\>%3/[__P8```"%P`^.6`0``(NUX/W__XF-5/[__\>% -XM:/[__P````"+E>S]__\#E4C^__\/M@*$P'1XB=/'A?3]__\`````ZR:+50@/ -XMML"-!$`!P`-"$`^V@%T!```!A?3]__\/MD,!@\,!A,!T,#S_==;'1"0$_P`` -XM`(M-"(D,).CY-/W_Z]:)="0$BW4(B30DZ.@R_?_IY?#__XUV`(N=]/W__SF= -XM:/[__W,&B9UH_O__@^X!#X2"`P``B[U4_O__BT<$@\<$BP")O53^__^)A4C^ -XM___I3?___XMU"&N&5`(``&3IM]G__XN%`/___^ELV?__@:)4"```__[__\>% -XME/W__P````#I(=S__XN%9/___^F#_/__BX7@_?__@^@!B85P_?__Z;W^__^+ -XMA>S^__^+`(L`B85$_O__B00DZ`[._/\YA5C^__^)PP^$P````(N%6/[__XNU -XM1/[__X7`#Y7`#X6&````A=MT1XN-8/W__XM!*(7`=1/I`0$``(MX*(/&`87_ -XM#X3S````#[8&B[UP_O__B`>+A6#]__^#QP&)O7#^__^#:"@!@T`8`8/K`77+ -XMB[5P_O__B;5L_O__Z6P!```/M@:#ZP&#Q@&+O7#^__^(!X/'`8.M6/[__P&) -XMO7#^__\/E<`/A'K___^%VW72A,`/A&[___^+A6#]__^+E5C^__\I4!@!4"CI -XM5____XNU1/[__SG`B<&+O7#^___\\Z8/A2?___^+A=S]__^%P`^%J]7__XV% -XM_/[__XE$)`2+A43^__^)!"3HH3]__^-7#,!B9UL_O__@[W@_?__`0^%IM3__XV%_/[__XE$)`2+ -XMA>S^__^+`(L`B00DZ)C'_/^%P`^%@M3__P^WA03___\E`/```#T`0```#X5K -XMU/__B[U@_?__BT%W/W__P$```#I -XM//+__XE$)`R)^(/`#(E$)`B)7"0$BT4(B00DZ!'H_?^%P`^$3-K__XG"B4<( -XMZ6O___^+M6#]__^#Z`&)1BCKGXN%X/W__XN5!/[__XT,@HN%:/[__[JKJJJJ -XM]^+!Z@*-%%*-5!(&B95,_O__BUT(BY.L!```QX7H_?__`````/?"````$'06 -XM@>+____OB9.L!```QX7H_?__`0```(MU"(M&.#F%3/[__P^'Q0$``(/H`3'2 -XMB[W@_?__][5,_O__.?B)A7C]__\/@@@#``#'A?#]__\!````BY7P_?__,<#' -XMA?S]__\`````P>("B95L_?__BY5X_?__A=(/A"T!``"+G?#]__^+O03^___' -XMA?C]__\``````<.--(>)G5#^___ID@```(D<).AVR?S_BX4`_O__]H!4"``` -XM!`^%U@$``(N54/[__SF5X/W__P^&V@```,=$)`Q/C0@(BX5,_O__*X4(_O__ -XMQT0D!'Z?"`B)1"0(BTT(B0PDZ"*C_O^+G0#^___V@U0(```$#X6&`0``@X7X -XM_?__`8N]\/W__XN%>/W__P&]4/[__P.U;/W__SF%^/W__W1UC570B50D"(L& -XMBP`#A>S]__^)1"0$BTT(B0PDZ#AE_?_'1"0$GZT("(E$)`B+?0B)PXD\).BO -XMHO[_BTW0A#]__^%P'XY -XMBYW@_?__ZPN-M@````"#ZP%T)HET)`C'1"0$?>D("(M5"(D4).C4H?[_BXT` -XM_O__]H%4"```!'35BWW0A?]T(HM="(7;=!.+70B+0Q"%P'0).7!T#X1C`0`` -XMB30DZ*#'_/^+M0#^___VAE0(```$#X0&`0``BYT`_O__@Z-4"```^XN%Z/W_ -XM_X7`=`V+=0B!CJP$```````0BX7L_O__B[W@_?__BQ"--+B+6@B+$HF5=/W_ -XM_XN5L:C70F`(N]=/W__P^V!!,Z!#MU!X/#`3G+=>J+A7#]__^#[@2# -XMZ`&)A7#]___KG8N-=/W__\>%Q/W__P$```")C43^___I?_G__XN%X/W__S'2 -XM][5X_?__@_H!@]C_A<")A?#]__\/A>#\___'1"0$)KH("(M%"(D$).@&H/[_ -XMBY4`_O__]H)4"```!`^%^O[__XM-"(D,).B8G_[_Z??^__^)1"0,BL```"+@YP```"+@)`!``"+`(&+K`0``````!#'0U``````B4-,BU44 -XM@)QU:)SE.#["R%P(E5W`^$Y@```(M8$(7;#X3;````]H-5"``` -XM`0^%S@```(M5"#E3>`^"3@$``(M+=(E-X(M#>(E%\(&+5`@````!``"+10B) -XM="0$B40D"(M5X(D4).@\P_S_BTW@BT40BU7@`U4,C5P!`3G:7UW#BT4(QT7P`````,=% -XMX`````"%P`^$.____XM%",=$)`0`````B3PDB40D#(U%\(E$)`CH*^']_X7` -XMB47@#X42____NP$```#KK8M5"+L!````B50D#(M-X(E,)`B+1=R)/"2)1"0$ -XMZ+<\_?^%P`^%8?___^E:____@:!4"```__[__X/$+(G86UY?7<.-0WB)5"0, -XMB40D"(M#=(D\)(E$)`3HO.#]_X7`=)B)0W3IC/[__U6)Y5=64X/L+(MU#(M> -XM-)"-1>R)1"00C47PB40D#,=$)`@!````B5PD!(M%"(D$).B+-_W_A575E.#["R+10SV0#$(BW@TBW`X#X7`````QT7@`0`` -XM`(U%\(U-[(E$)!")3"0,QT0D"`````")?"0$BT4(B00DZ-@V_?^%P`^%H``` -XM`(M5\(72=1F+10S'0$@`````@VW@`71%,?;KN)"-="8`BT7@`?`YPG='BTT, -XMC5K_B=`I\"E%X(E92(M-[(D4)(GZB5PD"(ET)`2+10CH#_W__X7`=56+5>"% -XMTG4FBT4,B7A$,<"#Q"Q;7E]=PXUT)@"+30R-6/^)04C'1>``````Z[>#QP$Q -XM]NE'____BTT,BTD$A`/A3;____KO9"#_P%T$H/O`>NR@\0LN`$```!; -XM7E]=P\=$)`@!````QT0D!`````"+30B)#"3H/@$``+@!````ZXN0D)"0D)"0 -XM58GE4X/L!(M-"(M=#(N1G````(M!+(F"@`$``(M1'`^V0EB$P'@@@\B`B$)8 -XMQT(T`@```(U#1(E%#(E-"(/$!%M=Z:E%_?_V0S$@=0\QP(-Z-`(/E<"#P`&) -XM0C2+0C2#^`%T"H/X`G3+Z(:[_/^-0T2)10R)30B#Q`1;7>GO0/W_ZPV0D)"0 -XMD)"0D)"0D)"058GEBU4(BT4,QT!(`````(M"'(!(6("+0AS'0#0"````B54( -XM7>DV0_W_D)"0D)"058GE5E.+30R+50B#Z0&#^?]T00^^`H7`>$.+-?P@"0@Y -XM\'TYBQT((0D(]D2#-@)U&^LJ#[Y"`87`>"(Y\(UV`'T;@\(!]D2#-@)T$8/I -XM`8/Y_W7?6[@!````7EW#6S'`7EW#C;8`````C;PG`````%6)Y8/L&(M%$(M5 -XM"(M-#(/X!W8"RFN:/W_QT40 -XM8`H)",=%#`(```")50C)Z9=H_?_'11!["@D(QT4,`@```(E5",GI@&C]_X/X -XM!0^5P`^VP(/``HE,)`S'1"0(E@H)"(E$)`2)%"3H7&C]_\G#B4PD#,=$)`BP -XM"@D(QT0D!`,```")%"3H/FC]_\G#C;8`````C;\`````58GE@^P8BT4(QT0D -XM"(P)"0C'1"0$`@```(D$).@/:/W_R<.-M@````"-O"<`````58GE@^P8BT4, -XMAQT0D"-@)"0C'1"0$`@```(M%"(D$).C39_W_R<.0QT0D"*P) -XM"0C'1"0$`@```(M%"(D$).BU9_W_R<.-=@!5B>6#[!B+10C'1"0(O@H)",=$ -XM)`0"````B00DZ(]G_?_)PXVV`````(V\)P````!5B>6#[#B)7?B+70R)=?R+ -XM=0B%VW1:C47TB40D$,=$)`P`````QT0D"`$```"+`XDT)(E$)`3H]3+]_X7` -XM=2.+1?2#Z`$Y0P1T)L=$)`@$"@D(QT0D!`(```")-"3H'F?]_XM=^(MU_(GL -XM7<.-="8`B30DQT0D"`,```#'1"0$`````.CH_?__BUWXBW7\B>Q=PXVT)@`` -XM``"-O"<`````58GE@^PHB5WXBUT,B77\BW4(A=MT&HU%](E$)`2)-"3HJS3] -XM_X7`=1^+`SM%]'(BQT0D"`(```#'1"0$`````(DT).B(_?__BUWXBW7\B>Q= -XMPXDT),=$)`@H"@D(QT0D!`(```#H=F;]_XM=^(MU_(GL7<.0D)"0D)"0D)"0 -XMD)!5B>575HG&4XG+@^P\B57,QT70`0```/9",0AT!HM"!(E%T(M5S(U-W(M" -XM-(E%W(M".(E%X(E,)`2)-"3HCT;__X7`#X47`0``BT7PAP[%?P@ -XM"0@/C0T!``"A""$)"/9$D#8"#X3]````C57#??`$=9"+3"+3"+??"%_P^%Y?[__P^V5>P[%?P@ -XM"0@/C>S^__^A""$)"/9$D#8"#X3<_O__Z<#^__^A""$)"&8Q__=$D#0`!0`` -XM=0Z`^5\/E<`/MOB0C70F`(U-W(E,)`2)-"3H\4+__X7`#X5Y____BUWP@_L$ -XM#X0,____A=MU/P^V3>P/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X6F```` -XM.Q7\(`D(?0^A""$)"/=$D#0`!0``=9^`^5]TFHM%T(7`#X0"____A=MU&`^V -XM5>P[%?P@"0A]+:$((0D(]D20-@)T(8U5W(E4)`2)-"3HA$7__X7`#X7L_O__ -XM@WWP!`^$@?[__X-MT`&#?=#_#X1S_O__BU7POP$```"%T@^%-/___P^V3>P/ -XMMM$[%?P@"0@/C`'___^`^5\/E<`/MOCI$____XUV`#L5_"`)"'T3H0@A"0CW -XM1)`T``4```^%6____X#Y7P^%[/[__^E-____BT7@.T$XD`^%&_[__XG(@\`T -XMB40D!(DT).A9^___N`$```#I5/[__S'`Z4W^__^%R0^%W_W__^DB_O__C70F -XM`(V\)P````!5N0$```")Y8M%"(M5#%WIO/S__XVV`````(V_`````%4QR8GE -XMBT4(BU4,7>F?_/__ZPV0D)"0D)"0D)"0D)"058GE5XG75HG&4XG+@^P\QT70 -XM`0```/9",0AT!HM"!(E%T(M'-(E%W(M7.(U%W(E5X(E$)`2)-"3H(T/__X7` -XM#X4+`0``BU7PA=)U(`^V5>P[%?P@"0@/C0$!``"A""$)"/9$D#8"#X3Q```` -XMC47P[%?P@"0A]T:$( -XM(0D(]D20-@)TQ8M%T(7`#X1+`@``C47"+1?"%P`^%\?[_ -XM_P^V5>P[%?P@"0@/C?C^__^A""$)"/9$D#8"#X3H_O__Z/___XM=\(/[`@^$$/___X7;=4(/MDWL#[;1.Q7\(`D(?0RA""$)"/9$D#8" -XM=2>+1+1="% -XMP`^$`O___X7;=1@/ME7L.Q7\(`D(?2VA""$)"/9$D#8"="&-1=R)1"0$B30D -XMZ(!"__^%P`^%Z/[__X-]\`(/A(+^__^#;=`!@WW0_P^$=/[__XM%\,=%S`$` -XM``"%P`^%+____P^V3>P/MM$[%?P@"0@/C/O^__\QP(#Y7P^5P(E%S.D,____ -XM.Q7\(`D(?1.A""$)"/=$D#0`!0``#X5:____@/E?#X7H_O__Z4S___^+1=P[ -XM1S1T&XM5X.DA_O__BT<\B5=(B4=$@\0\,FL_/__C;8`````C;\`````53')B>6+10B+ -XM50Q=Z8_\___K#9"0D)"0D)"0D)"0D)!5B>575HG&4XG+@^P\B57,QT70`0`` -XM`/9",0AT!HM"!(E%T(M5S(U-W(M"-(E%W(M".(E%X(E,)`2)-"3HGS___X7` -XM#X6;`0``BU7P@_H!#X0O`0``A=)U$`^V3>P[#?P@"0@/C`L!``"%VP^%70(` -XM`(-MT`&#?=#_#X1\````D(U=W(E<)`2)-"3H83[__X7`#X5-`0``BT7P@_@" -XM=%R%P'48#[95[#L5_"`)"'W1H0@A"0CV1)`V`G3%BT70AP/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X7:````.Q7\(`D(?0^A -XM""$)"/=$D#0`!0``=:.`^5]TGHM]T(7_=1B+1`[0S@/A9K]__^)V(/`-(E$)`2)-"3H -XM\O3__[@!````Z4'^__^!^D`""0@/A!G^__^!^I`#"0@/A4W]___I"/[__XUT -XM)@"-O"<`````5;D!````B>6+10B+50Q=Z1S\__^-M@````"-OP````!5,"+0S"-4P&->S3'1"00`````(E\ -XM)`@E``(``(/X`1G`]]`APHM%X(E4)`2)-"2)1"0,Z#?E_/^%P'4CBT7@QT0D -XM#`````")?"0$B30DB40D".@8Z?S_Z6G___^-=@"X`0```.E<____C;8````` -XMB4-`BT,X@_@!C5#_&<#WT"'"B5-(Z7/___^0D)"0D)!5B>564X/L,(M=#(MU -XM"(M3,(U+`8DT)(G0)0`"``"#^`$9P/?0(<'!Z@.-0SR#X@&)1"0,C4,TB50D -XM$(E$)`B)3"0$Z)CD_/^%P'0,@\0PN`$```!;7EW#BT,\`T9T@\`!*T,TB49T -XMC47TB40D$,=$)`P`````QT0D"`$```"+0T2)-"2)1"0$Z&,D_?^%P'6[BT,P -XMJ`AU*R4/_O__@\@@B4,PBT7T.4-( -XM7<.#Q#`QP%M>7<.0D)"058GEBT4,4XM="(E#/(E#1(M#-(/H`3E#/'8&B4,\ -XMB4-$BXN<````BT,\BY&,`0``C01`@^H8C03"B8&0`0``,<"#BZP$``!`6UW# -XMD(UT)@!5B>6#[#B)7?2+70R)=?B+=0B)??SV0S$(#X51`0``BT,TB47PBT7P -XM]D,Q$(E#1(M#.(E#2'1>BU,(A=)T5P^VAFP$``"#X`&)QP^%5@$``(N.9`0` -XM`(G(.=!S%XGXA,!T#(T$2<'@`@-&$(M(.(G*B4L(B50D!(DT).@Q____AQ=PP^V4P*`^BT/A+0!``!V8X#Z+@^$1`$``(#Z -XM7G5>]D,Q"`^$J@$``(M%\,=$)`@`````B30DB40D!.B-:```AQ=PXVV -XM`````(M#"/\DA1@+"0B)7"0$B30DZ%I"``"%P'2AN`,```#KS(-[$!)U++@0 -XM````C70F`.N)BT80B30D_Y!D"```N`0```#KJ(M5\+@"````A=)TCNN:N`4` -XM``#KDXVV`````%6)Y5=6B<93@^P\B%7D#[;2C5K0C7W8B4W0ZP:-="8`B<,Q -XMTHGYB?#'!"0*````Z`S___^#^`5U:`^V5>2#^G]W;/8$E=T4"0@$=&*-!)N- -XM1$+0.=ASR3'2B?F)\,<$)`H```#HU_[__X/X!74S#[9%Y(/X?W<*]@2%W10) -XM"`1UUL=$)`S_____QT0D"'`+"0C'1"0$`P```(DT).AO4_W_@\0\N`$```!; -XM7E]=PXM%T(D8@\0\,`)B46P#X0\`0``]D7D`G0)BT40QP`!````BTT(#[9]W(7) -XM#X2F`0``B?J`^B(/A.8```")^0^VT8/Z?W<.]@25W10)"`0/A8\!``"+50S' -XM`@````")^8#Y(@^$=@(``(GX/'X/APD!``")^(GZB`,/ML#!X`0%`/P("(#Z -XM1(E%M`^$'0,``(M%M(L`A<`/A,0$``")^8#Y?@^$*P,``(M%M(E#*(L`A<`/ -XMA-8$``"+1;2+0`2)1;B+0S#VQ`@/A$D"``#W1;@```0`#X4\`@``BT4(A<`/ -XMA`$&``"+?0@/MA>`^GX/A%P&```/ML+!X`2+@`C\"`C'1"0(!@```(E$)`2+ -XM1:R)!"3HM^C__S'V@\1\B?!;7E]=PXM5"(72#X0-`0``QT0D"``````Q]L=$ -XM)`0`````BTVLB0PDZ(/H___IG?[__XM-L(7)=6''1"0(O0L)"+X!````QT0D -XM!`(```"+3:R)#"3H9U']_^EQ_O__//\/A$D$``"+5:P/ML"-!$"-A`!0`0`` -XM`T(0@\`(QT0D"`0````Q]HE$)`2+?:R)/"3H&^C__^DU_O__@WVP`@^%5?__ -XM_XM]K#'VBT<0B3PD_Y!D"```Z4'____'1;`"````Z4[^__^`^3"-M"8````` -XM#X1A_O__BT6LC4L$Z,_\__^%P`^%$/___X%+,``(```QTHM]#(U-T,<'`0`` -XM`,<$)`(```"+1:SHX_O__X/X!0^$B0```(G&Z;+]___'!"0`````BT6L,=*- -XM3=#HO_O__X/X!77@@WW@"0^$N?[___9%Y`)T"8M]$,<'`0````^V1=PQTH%+ -XM,``"``"-3="(0P''!"0"````BT6LZ'_[__^#^`5UH(-]X`D/A'G^___V1>0" -XM=`F+11#'``$````/MGW`)#X3@_/__ -XM]D7D`HUV`'0)BTT0QP$!````#[9]W`^V`XGZ.-`/A8#\___IW?[__\=$)`@8 -XM#`D(QT0D!`,```"+?:PQ]HD\).AB3OW_Z9C\___W1;@```(`#X7%!0``BTVT -XM]D$&$`^$4OO__XU%\(E$)!"-1>R)1"0,QT0D"`$```"+?:R+1TR)/"2)1"0$ -XMZ,L9_?^%P`^%3/S__XM?4(M%\#G8B46@=F>+3>P/O@09A<`/B,(#``"+%?P@ -XM"0@YPHE5G`^.N0,``(L]""$)"(E]I/9$AS5`#X2)!0``C10+ZR8/OD(!A<`/ -XMB+($```[19P/C:D$``"+3:2#P@'V1($U0`^$F`0``(/#`3M=H'72QT0D"*0+ -XM"0@Q]L=$)`0"````BWVLB3PDZ()-_?_IC/K__P^V`SQ$#X0/`P``B?8/AWT! -XM```\0P^$\P(``(M%M(7`#X46^___,?;IB_O__XGZ@/HN#X3M`0``,=N#?>`) -XM#Y3#@\,$@/K_#X3Q`P``BTVL#[;"C01`C80`4`$```-!$(/`"(E<)`CI._O_ -XM_\=$)`3_````BTVLB0PDZ.X(_?_IM?O__XM-K(N!!`0``(7`#Y7`Z03^___W -XM1;@``(``=0GVQ`(/A=P```#W1;@````!#X0*_?__QP0D`````(M%K#'2C4W0 -XMZ./W__^#^`4/A0#\__^#?>`)#X39^O__]D7D`G0)BU40QP(!````#[9%W(%+ -XM,``"``"(0P'IP?S__\<$)`````"+1:PQTHU-T.B:]___@_@%#X6W^___@WW@ -XM"0^$D/K___9%Y`*-=@!T"8M5$,<"`0````^V1=PQTH%+,``"``"-3="(0P'' -XM!"0"````BT6LZ%/W__^#^`4/A7#[__^#?>`)#X1)^O__]D7D`G0)BTT0QP$! -XM````#[9]W.F#^?__BTVTBT$(Z0_Z__\\4P^$C@$``#Q9C78`#X5X_O__QD7P -XM7\8#>8U%\,=$)!`,````QT0D#`$```")1"0(QT0D!`````"+5:R)%"3HR0S] -XM_X7`#X7:^?__#[8#P>`$!0#\"`B)1;3I+/[__XM%K/:`#`0```$/A#,!``") -XMP8N`!`0``(T$0,'@`@-!$(M`.(7`#X1X^?__H6@+"0CI>OG__XM-J(7)#X1) -XM^?__BU6LBX*<````BX"``0``.T(L#X53`@``@4LP`"```,=#*%`#"0CI,?C_ -XM_\<$)`````"+1:PQTHU-T.@^]O__@_@%#X5;^O__@WW@"0^$-/G___9%Y`)T -XM"8M5$,<"`0````^V1=P/MM"#^G^(0P(/AS_[___V!)7=%`D(!`^$,?O__XM% -XMK(U+".BP]O__A<`/A?'X__^!2S``$```,=*-3=#'!"0`````BT6LZ,WU__^# -XM^`4/A>KY__^#?>`)#X3#^/__]D7D`G0)BTT0QP$!````#[9%W(A#`NG5^O__ -XMQD7P),8#8^F0_O__QD7P),8#9.F$_O__QD7P7\8#8^EX_O__BWVLBX<$!``` -XMA<`/A%#X___IT_[__Z'\(`D(B46<#[84"P^^PH7`#XC"````BST((0D(B7VD -XM.P7\(`D(#XVU````BWVD]T2'-``%```/A*0```#'1;P!````C3P9B=F#P0$[ -XM3:!S/@^V5P&(59L/OM*%TG@9.U6R)7"0$BXR)5:"+/?P@"0B)?9SIM?[__XM-J(M1,/;& -XM(`^$S````(M#,/;$"'05BT6H@,X(B5`PBT,$BU6HB4($BT,P]L0"=`H/MD,! -XMBTVHB$$!QT0D"$P```"+?:B)'"2)?"0$Z#2?_/_IFO7__\<$)`````"+1:PQ -XMTHU-T.BG\___@_@%#X7$]___@WW@"0^$G?;___9%Y`)T"8M5$,<"`0````^V -XM1=R(0P+I^?G__P^V%`L/OL+I*/[__XE$)`R-AS0!``")1"0(BXS\````BT4(BS"-18R+5A#'1"0(3````,=$)`0` -XM````B00DB948____Z%^;_/^#3;P@BUX0B[Z<````QT0D!`(```")-"3_DZ`( -XM``"%P'00N`$```"!Q/P```!;7E]=P\=$)`@!````QT0D!`````")-"3_DUP( -XM``"+AJP$``"#X/J#R`+VAB`"```!B8:L!```#X0I!P``BX88`@``C01`P>`" -XM`T80BT`XB8>T`0``]H9@`0```8E&-`^$]@8``(N&6`$``(T$0,'@`@-&$(M` -XM./:&;`0```&)1C@/A+`&``"+AF0$``"+5C2-!$#!X`(#1A"#^@&+0#B)1D2) -XM1CP/A*0&``"#Z@$YT`^'E0D``(M&-(/H`8E&0(N>G````,=&2`````#'1"0$ -XM&````(N#M`$``(/``8D$).B=F_S_A<")@XP!```/A"<*``"+CIP```"+1CR+ -XMD8P!``"-!$"#ZAB-!,*)@9`!``"+AIP```"+D(P!``"+1DR)`HN&G````(N` -XMC`$``,=`!`````"+AIP```"+@(P!``#'0`@!````@8ZL!```H````&:#C\@! -XM```%BU80QT0D"`$```"+1B"+0`B)-"2)1"0$_Y*<"```BYZ<````BT80BX@8 -XM`0``AB% -XM_W5;BX:<````C56,QT0D"$P```")5"0$!9@```")!"3HJ)O\_XN&G````(&( -XMR``````@``#V1;T$=!"+AIP```"!B,@`````"```BX:<````@:#(`````/[_ -XM_XM%O"7P`0``@_@@#X0"!```#X8Q!0``/8`````/A.D#```]``$``(VT)@`` -XM``!T$(/X0`^%(`4``,=%U`````"-1=2)1"0(BT70B30DB40D!.A(N/W_A<`/ -XMA+4#``#'1"0$`@```(DT).@``_W_A<`/A7@#``"+1A#V@%0(```$#X0H`P`` -XM@Z!4"```^\=$)`0"````B30DZ-$"_?^%P`^$^@$``,=$)`C0#`D(QT0D!`,` -XM``")-"3H$43]_XN&K`0``/;$$`^%^@$``/;$"`^%60(``(N%&/___X"X5`@` -XM``!X#?:&K`0```$/A,W]__^+50B),HM^$(M?"(U'"(U7$(F%+/___\>%*/__ -XM_P`````YPXF5%/___W5-Z9$&``"+0P2)0@2+0P0YA2S___]T?(D0BY44____ -XMB1.+1Q2)0P0[5Q`/A#@&``"+1Q2)&(E?%(.%*/___P&+7P@YG2S___\/A$D& -XM``"+@YP```"+@(P!``"%P'08B00DZ&&:_/^+@YP```#'@(P!````````BQ,Y -XME2S___]UAHM#!(E'#(M#!#F%+/___XL3=82)5PCK@8DT).@3)?W_A<"0#X6: -XM_O__BY48____QT7H`````(M"?(M`%(7`#X6+_?__C46,QT0D"$P```"-?>C' -XM1"0$`````(D$).AUEOS_BY:<````C47LB40D!(U-C(GPB7PD",<$)`````"! -XMPI@```#H6>___X/X!`^&0@(``(M-M/9!!P(/A%P#``#VAF0#```!#X1+!P`` -XMBX9<`P``C01`P>`"`T80BT`XA<`/E<"$P`^$,`,```^V18P\_P^$=0@```^V -XMP(T$0(V$`%`!```#1A"#P`C'1"0("````(E$)`2)-"3H5`W__^F__?__QT0D -XM"-D+"0C'1"0$`P```(DT).@70OW_BX:L!```]L00#X0&_O__@.3O#0````*) -XMAJP$``"+=A2+GIP```"+5A#'1"0(`0```(M&((M`"(DT)(E$)`3_DIP(``!F -XM@XO(`0```<=$)`0!````B30DZ)M$``"%P`^%&OK__XN&K`0``/;$"`^$J_W_ -XM_XUT)@"`Y/>)AJP$``"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``#I -XM>_W__XUT)@#'AI0````"````QT0D!`````")-"3H-D0``(7`#X6U^?__]T6\ -XM8`$```^$F?O__Y!F@Z/(`0``OXU&5(E$)`2)-"3HR44``.E\^___C70F`,=$ -XM)`P!````QT0D"`````#'1"0$`````(DT).@P!?W_A<`/A>?\__^+1A#V@%0( -XM```$#X37_/__Z9O\__^-=@#'1"0(H`P)",=$)`0"````B30DZ,A`_?_I:_S_ -XM_V:#B\@!``!`BU70B59,BTW4B4Y0BT6\]L1`=1VI```!``^%,0$``&:%P`^) -XM._S__SM5V`^$-`4``(U5V,=$)`P!````B50D",=$)`0G````B30DZ.LP_?^% -XMP`^$"_S__^GN^____R2%3`L)"(M6-(N&9`0``(/Z`8E&1(E&/`^%7/G__\=& -XM0`$```#I9/G__XN&6`$``.D1^?__BX88`@``Z=[X__\E``0``(E$)`C'1"0$ -XM`````(DT).C4ZOS_A<`/A6/X__^-7?")7"0$B30DZ.US``"%P`^%3/C__XM% -XM\(7`#X2(`P``BT7PBU4(B0*)-"3HNH#]_X7`#X4I^/__BW7PA?8/A&\$``"+ -XMGIP```"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``!F@XO(`0```>EV -XM^?__A<`/A,/^__^#^!`/A-P"``"0C70F`.@?D?S_.U78#X78_O__B?;IO_[_ -XM_XU5C(E4)`2)-"3HO##__X7`#X74^O__Z?GY__^+1A#I[_K__XM5O/;&()!T -XM%XM%[(7`=!"+AIP```#'@.@````!````B=`+002I`,`!`(E%O'0,BT9,B478 -XMBT90B47`S`2)1;P/MD6,.H5`____#X3>`P``BT6TQX4<____```` -XM`#U@"PD(B85L____#X2J`P``BT6\B<*!XO`!``"H((F5(/___W0,@\H0@^+? -XMB94@____BY5H____)0_^__^)1;R+0@0E#_[__PF%0```")!"3H))+\_XN5 -XM)/___XN%,/___XF0Z````(M%O"4("```/0@(``!T48-&+`'I^?7__SM-W`^% -XMP_K__^GP]O__,<"-M@````#II_/__XN&7`,``(7`#Y7`Z;SX__^)=PCI3O[_ -XM_XE7$.DD_O__BT8$B4<4BQ;I!O[__XM%D`-%R(/H`8E%R.NAC95`____B10D -XMQT0D"$P```#'1"0$`````.B&COS_C47@,=*)1"0$C46,B00DC8U`____B?") -XM?"0(Z'+G__^#^`4/A1_]___I)OS__XM%R(DT)(E$)`3H]0?]_X7`#X5S_O__ -XM@WW(`745#[9%C#QCD`^$6?[__SPA#X11_O__QT0D"`$```#'1"0$`````(DT -XM).A:T?__Z0#5DR)1"00QT0D#`````"#Z@&)52#^`&-4/\9P/?0(<*)5/___SM-@`^&R/W__^O$ -XMD)"0D)"0D)"0D)"0D)"058GE5U93@^P\BW4(]H:O!```$(M^$(N&G````'0* -XM@\0\,*)!"3H%8W\_XDT)(E$)`B-1>*)1"0$_Y=8"```BY:<````@\,8 -XM.9J0`0``0"```@\0\,%2/___P````#WP@`` -XM`!!U&8N`G````(.X7`$```$/E\`/ML")A4C___^#XA!T.8M="(N#G````(M3 -XM0(N(C`$``(M#-#G"#X.B)1"0$BUT(B1PD_Y%P"```QT0D"`````"+@YP```"+50PKD(P!``")'"2) -XMT,'X`VG`JZJJJHE$)`2+C23_____D9`(``"-1?")1"00C47DB40D#,=$)`@` -XM````BUT,BP.)1"0$BT4(B00DZ(4"_?^+50B+30B+4CB)QHF5+/____:!%`(` -XM``$/A68$``"+70B+@PP"``"%P`^5P(3`#X1O!```BT4,BUT(BT`$QX4\____ -XM`````(F%./____:#.`(```$/A'4$``"+@S`"``"-!$#!X`(#0Q"+0#B)A4S_ -XM__^+50C'A5#___\`````]H*O!```$'51]H*8`@```0^$504``(N"D`(``(T$ -XM0,'@`@-"$(M`.(7`#Y7`A,!T'8.M+/___PB%]@^%+`0``(N=./___X7;#X2* -XM"```BY5,____B950____A?8/A20$``"+3?"%R0^$&00``(N%./___X7`#X4# -XM!0``BU4,QT(,`````,9"%`#'A3#___\`````QX4T____`````(M%$(7`=!&+ -XM50R+30B+`CM!3`^$>PD``(N=2/___\>%*/___P`````)^P^%"P,``(N5-/__ -XM_SM5\`^#?@L```N]2/___XV=9/___XU%XXF]5/___XG?QX5<____`````,>% -XM1/___P````")G1S___^)A2#___^-=@"+1>0/MA"#P`&)1>0/MLJ`^@F(E6/_ -XM__^)C4#___\/A,P$``"`O6/_____#X2M!0``BY5`____BTT(C012`<`#01`/ -XMMH!=`0``B<8QTBNU,/___P&U7/___XN-7/___SF-+/___W=4@_H!#X1.!0`` -XMBT4,B?.(6!:+A5S___\KA2S___^+70PIQHGQB$L5BX5<____.84L____<#``"+70B+30R+ -XM@YP```"+71`KB(P!``")R,'X`VG`JZJJJHD#BT4(]H"O!```"`^$5@4``(N% -XM7/___XM-%"GPB0&+10CV@)@"```!#X0F!0``B<&+@)`"``"-!$#!X`(#01"+ -XM0#B%P`^5P(3`=!J+10CV@*\$```0=0Z+C3C___^%R0^$5@,``(N%5/___X7` -XM#X4^`0``A=(/A+@#``"%]G15,=OK#8/#`<8'((/'`3GS=$0[O2#___]RZ\8' -XM`(V%9/___X/#`2N]'/___XE$)`2)?"0(BU4(C;UD____B10DBXTD_____Y%8 -XM"```Q@<@@\# -XMQP&#^?]U[8N%7/___X/``3F%+/___W82BU4(B10DBXTD_____Y%L"```.;T< -XM____#X()!@``BT7LB40D"(M%Z(E$)`2+30B)#"2+G23_____DY`(``"!Q.P` -XM```QP%M>7UW#BX$,`@``C01`P>`"`T$0BT`XA<`/E<"$P`^%D?O__XM5#(M= -XM"(M*"(/I`8F-//___P^OC2S___^)C3C____V@S@"```!#X6+^___BT4(BX`P -XM`@``B85,____Z8_[__^-4/_I7/K__XN=3/___XM%#(F=4/___X,X`0^$O/O_ -XM_XGVBU40A=)T$8M-#(M="(L!.T-,#X1P`@``"[U(____#X4N____BUT,QT,0 -XM`````,=##`````#&0Q4`QD,4`(N%./___X7`=4J%]@^$S`(``(,[`;I^```` -XM#X2^`@``BTT(C112`=*+01`/MHP070$``(V$$%@!``")1"0$B4PD"(M="(D< -XM)(N5)/____^26`@``(M-"(D,)(N=)/____^3;`@``(M%[(E$)`B+1>B)1"0$ -XMBT4(B00D_Y.0"```@<3L````,^?__@<3L```` -XM,2)G3#____V@!0"```!#X5=!```BTT(BX$,`@``A`"`T,0BT@XBX5<____,=*)SO?Q*=:Z -XM`0```"NU,/___P&U7/___^D5^___C1PW.9T@____#X;4````@+UC_____P^$ -XM0P$``(N-0/___XM="(T$28V$`%`!```#0Q"#P`B-3O^)C5C___^#P0$/A%K\ -XM__^+G3#___^)^8T4&(T<-XVT)@`````/M@*#P@&(`8/!`3G9=?&+A5C___^- -XM?#@!Z2?\__^+G2S___\IV2G.BTT,B?"(016(01:)G5S____IR/K__XN=0/__ -XM_XE<)`2+10B)!"3H/>W\_^E1^O__BX.<````BU40*XB,`0``B0/MA"#P`&) -XM1>0/MLJ`^@F)C4#___]UH8N53/___X72=:"+10CV@-`#```!#X0J`@``B<*+ -XM@,@#``"-!$#!X`(#0A"+2#B)V#'2]_&)R"G0ZXB+50R-G63___^+`HD<),=$ -XM)`@K#0D(QT0D!(````")1"0,Z/N!_/^)7"0$B40D"(M-"(D,)(N=)/____^3 -XM6`@``(N%3/___XF%4/___^DP]___@,(!#X0V`0``BY5`____BTT(C012`<`# -XM01`/MH!=`0```<,[G2S___]R'XM-""N=+/___XM).(.M//___P&)C2S___\/ -XMA#P!``"#A33___\!BY4T____.57P#X8F`0``BT7D#[80@\`!B47D#[;*@/H) -XMB8U`____=8:+A4S___^%P'6%BT4(]H#0`P```0^$%@$``(G"BX#(`P``C01` -XMP>`"`T(0BT@XB=@QTO?QB<@IT.EJ____Q@<`C9UD____*[T<____B5PD!(E\ -XM)`B+10B)!"2+E23_____DE@(``#IR?G__XG"BX`,`@``C01`P>`"`T(0BT`X -XMA<`/A:;[___IC_O__XM14#F5-/___P^'=O;__XN%-/___P.%+/___SG"#X=B -XM]O__BX4T____@\(!*<*)E2C____I9/;__XN%0/___XE$)`2+50B)%"3HR.G\ -XM_^G(_O__BX5`____B40D!(M5"(D4).BNZ?S_ZG)]?__BT4( -XMBXC(`P``Z?#^__^+10B+B,@#``#IW/W__XM%"(M`.(F%+/___XN%-/___XM= -XM#(E##,9#%/_'A3#___\`````Z8+U__^#A33___\!BYTT____BTT,B5D,QD$4 -XM`,>%,/___P````#I7/7__XM5"(N--/___SM-\(M2.(F5+/___W.D.YTX____ -XM#X0B`0``BXTT____BU4,B4H,*YTX____*=B)A3#___^(0A2#;>0!Z1/U___& -XM!P"-E63___\KO1S___^)5"0$B7PD"(M-"(V]9/___XD,)(N=)/____^36`@` -XM`(M%"(M8$.G$]___BX5`____B40D!(M5"(D4).AMZ/S_Z7/W__\/MD(5.,$/ -XMA,(```"+4A`/ML")A3#___\/MH4P____B94T____BXTT____BU4,B4H,B$(4 -XMBUT(`4WD]H,4`@```716BX,,`@``C01`P>`"`T,0BT`XA%,/___P````#I\?/__XM2$#'`QX4P____`````(/"`8F5-/___^DZ -XM____D)"0D)"0D)"0D)"0D%6)Y5.#[!2+70B+0Q"+4S2+B)`(``"+0T`YT'(# -XMC4+_B1PDQT0D"`````")1"0$_]&+0Q")'"3'1"0$`````/^0F`@``(/$%%M= -XMPY"-="8`58GE5U93B<.#[#R)5=")3S0!#X1/`0``@WW,`0^$!0$```^# -XML````(U%\(E$)`C'1"0$`0```(D<).BQ'_W_B<*+1?")5"0$B1PDB40D"/^6 -XM6`@``(.'7`$```''AU0!````````C7W4B1PD_Y9L"```QT0D!`````")'"3_ -XMEI@(``"+5="%TG0ABT70QP``````ZQ:+1=R#^`%T48/X!'1!B1PD_Y9D"``` -XMQT0D#`````#'1"0(`````(E\)`2)'"3H:>S\_X7`=,J0C70F`(/$/%M>7UW# -XM@WW,`G0KZ-%Y_/_&1>!Q@XY4"```!(-]S`%T48-]S`)UUH!]X'%UT(..5`@` -XM``3KQXU%\(E$)`C'1"0$!0```(D<).C0'OW_B<+I&O___XU%\(E$)`C'1"0$ -XM`@```(D<).BR'OW_B<+I_/[__X!]X#IUA8M%T(7`#X1Z____BT70QP`!```` -XM@\0\6UY?7<.-1?")1"0(QT0D!`0```")'"3H@"=#&+3>B)V(M5[(M=](MU^(M]_(GL7>F3_?__C78` -XMBU-`.=!V*2G*ZX60C70F`(U"_^NOBU7PBX)4`0``.T-`<\&+7?2+=?B+??R) -XM[%W#C5#_*L!```"`^$ -XM;0$``(M#$(E$)`R+0PR)1"0(BT,(B3PDB40D!/^6E`@``(L3A=)T!HM#!(E" -XM!(M#!(D0BT,,B00DZ.)\_/^)'"3HVGS\_XM>;(7;=;>+1+1<#'@%P!````````QX!8`0```````,>`5`$```````"+ -XM1>R+50R)1"0(BT7PB10DB40D!/^6D`@``#'2@\1,B=!;7E]=PX/H`71F,"7`$```````#'@E@!````````QX)4`0```````(E$)`2)/"3H -XM^A(``.EO____BTT0AL -XM!```QT0D"`(```"+1TR)/"2)1"0$Z$<<_?_ICO[__X/@_8F&5`@``(D\)/^6 -XM9`@``.EF_O__QT0D!`$```")/"3H:R<``+H!````A<`/A+C^___I#____XG! -XM*='I0/___XE]#.D+_O__,S<````B85`____B94\____BY5`____B8TX____BT`0B85$____BT4(BY*< -XM````B8U4____A<")E4C___\/CI8#``"-C7#___^-7>^)C3#___^)G33___^+ -XM70B+M3C____'1"0$"@```(E<)`B)-"3H6'7\_XF=4/___XF%5/___XN%5/__ -XM_X7`=!"+E53___\I\HF54/___XG3BXU(____B[5`____BY%8`0``BTXXC003 -XM.7UW#B[5`____BYU,____B30DB5PD!.@OWOS_ -XMB<;I"?[__XN-0/___XNU1/___XM!0(M)-(N>D`@``#G(<@.-0?^)1"0$BX5` -XM____B50D"(D$)/_3@[T\____`P^%7/W__XN50/___XN-1/___\=$)`@!```` -XMQT0D!`$```")%"3_D5P(``#I,OW__XN-0/___XN=1/___\=$)`@`````QT0D -XM!`$```")#"3_DUP(``#IX?[__XN%0/___[D"````,=+H(_C__^E*_/__BY5( -XM____BX)<`0``Z3'\__^+E4C____V@L@!```"#X0>_/__@ZI4`0```8/H`6:# -XMHL@!``#]B8)<`0``Z0'\__^+M4#___^+G43___^+1D"+BY`(```YP@^&Q0`` -XM`(/H`8E$)`2+A4#____'1"0(`````(D$)/_1BY5`____BXU$____B10D_Y%L -XM"```BYU`____BW,X@_X/=@6^#P```(N%0/___XM8$,=$)`@!````QT0D!`$` -XM``")!"3_DUP(``"+E4#___^)="0(QT0D!#$-"0B)%"3_DU@(``"+C4#____' -XM1"0(`````,=$)`0!````B0PD_Y-<"```BYU(____@X-<`0```6:#B\@!```" -XM@X-4`0```8N#7`$``.D0^___C4+^Z3;___^+A4C___^+M4#___^+E43___\% -XM6`$``(E$)`B-1?")1"0$B30D_Y)P"```Z=']__^-=@!5B>575E.#[#R+=0B+ -XM?0R+1A")1="+GIP```#'!P````"+@U@!``!F@XO(`0```87`#X5)`0``BY:L -XM!```]L(0#X40`0``]\(``!``=0V#NUP!```!#X:X`0``B=`E___O_X'B```( -XM`(F&K`0``'40BT80]H!4"```!`^$,@$``/:&K`0``!`/A;4```"+1A"#P`@Y -XM!G0'@XZL!```0/:#R`$```@/A8L```#'1"0(`0```,=$)`0`````B30DBU70 -XM_Y)<"```@::L!```[__W_X.[7`$```$/AD@!``#'1>`&````BY-<`0``N0$` -XM``"+1C0YPG)9B47LC478B4WDQX-<`0```````,>#6`$```````#'@U0!```` -XM````B40D!(DT).@&"P``,=*#Q#R)T%M>7UW#@XZL!```(.EI____9H.+R`$` -XM``3I/O___Y")P2G1ZZ&+1A#'1"0$`@```(DT)/^0H`@``+H!````A#4`$```$```#IA?[__\=$)`P!````QT0D"`````#'1"0$`````(DT).B. -XMX/S_A7UW#B?J)\.BG -XM\O__ZZ>0C70F`%6)Y5=64X/L+(MU"(M=#/:&K`0``!"+?A!T-8M5$(72#X0L -XM`0``A=N)V`^$&`$``(E4)`R)1"0(QT0D!'WI"`B)-"3HF$S^_XDT).BP2_[_ -XMC47PB40D"(U%[(E$)`2)-"3_EW`(``"+1D"+5C2+CY`(```YT'(#C4+_QT0D -XM"`````")1"0$B30D_]&)-"3_EVP(``"%V\=%X`````!T+HD<).CM'````BT7@B40D"(E<)`2)-"3_EU@(``"+51"%TG0PBT40 -XMB00DZ+5R_/^+7CB+5>")P0'"C4/^.<)W1(M%$(E,)`B)-"2)1"0$_Y=8"``` -XMBT7PB30DB40D"(M%[(E$)`3_EY`(``")-"3'1"0$`````/^7F`@``(/$+%M> -XM7UW#*UW@C4O^Z[2-="8`B47@Z73___^X3XT(".G>_O__ND^-"`CIRO[__XUT -XM)@!5B>6#[#B)=?B+=0B)7?2+11")??SVAJP$```1=3.#^`*+?A"+GIP```!T -XM-(/X`P^$JP$``(/H`0^$D@```(GVQT0D!`````")-"3_EY@(``"+7?2+=?B+ -XM??R)[%W#B?:+@V`!``"%P'36BY-<`0``@^@!B8-@`0``A=)U,87`=2V+1D"+ -XM5C2+CY`(```YT'(#C4+_QT0D"`````")1"0$B30D_]&)-"3_EVP(``"+@W`! -XM``")1"0(BX-L`0``B30DB40D!/^7D`@``.EP____BX-@`0``BXM<`0``@\`! -XMA`$``&G`0$(/``'"@?I'Z`$`#XX<_O__BT7DBU7H@[MD`0``!(F#=`$` -XM`(F3>`$```^$A0```(N'D`@``(E%W(M&0(M6-(N+:`$``#G0<@.-0O^)3"0( -XMB40D!(DT)/]5W(N39`$``(N'6`@``(U*`8'"1PT)"(F+9`$``(E4)`3'1"0( -XM`0```(DT)/_0BX>0"```B47@BU9`BTXTBX-H`0``.7UW#BTW<@Z%4"```_8M%"(D$)/^19`@``.GB_O__J!`/A.T"``"+ -XM50B+0A#'1"0$`0```(D4)/^0H`@``(7`#X37_O__Z2;___^-1?")1"0(C47L -XMB40D!(M-"(D,)(M5W/^2<`@``(-]#`$/A`$"``"+512+11"+30B`?!#_"@^4 -XMP`^VP"G"B544@WDT`0^$?`,``,=%Z`````"+5>B+10B#P@*)5>B+2#B#Z0&) -XM3>"+3=B+@5@!``"%P'0IC00"`T44.47@#X/U`@``BY%0`0``N574"`C'!"0" -XM````BT4(Z/[P__^+30R+5=B)BE`!``"+112+71"%P'4FZ8L-B?8Y^'T2]D2&-@)T"X/I`0^^0?^%P'GJB=:)\"G8*444#X7P```` -XMB<@IV(/X`7X+@'P8_RX/A`P!``")!"2+50R)V8M%".C7[___BTT(BT$0]H!4 -XM"```!'5LQT0D#`$```#'1"0(`````,=$)`0`````B0PDZ"C8_/^%P'4/BU4( -XMBT(0]H!4"```!'4YB?/IP?[__XM!$,=$)`0"````B0PD_Y"@"```@\0L6UY? -XM7<.+312Z`0```(D,)(M-$(M%".A<[___BT7PB40D"(M%[(E$)`2+30B)#"2+ -XM5=S_DI`(``#'1"0$`````(M-"(D,)(M5W/^2F`@``(/$+%M>7UW#BU44C303 -XMB?")\2G8*444#X00____*=F)#"2+50R)V8M%".CY[O__N2:Z"`BZ`0```,<$ -XM)`$```"+10CHX.[__^D$____C4'_*=CIZO[__XM-"(D,).CVW/[_A<`/A/;[ -XM___I1?S__\=$)`@!````QT0D!`$```"+10B)!"2+5=S_DEP(``"+31")3"0( -XMBT44QP0D\I@("(E$)`3H1&?\_\=$)`@`````QT0D!`$```"+50B)%"2+3=S_ -XMD5P(``#IO/O__XG1B=;I2_[__XD<).BO:?S_BT40B40D#*$0(0D(BU44QT0D -XM!$$-"0B)!"2)5"0(Z-QA_/_IK_O__XM%V+E8\0@(BY!0`0``QP0D`0```(M% -XM".@&[O__N=+4"`BZ`0```,<$)`$```"+10CH[>W__^GJ_/__QP,`````B5AL -XM@\!LB4,$Z6#[__^-1>B)1"0(QT0D!`0```")#"3H_0C]_^EO_/__D)"0D)"0 -XMD)!5B>564X/L$(M=#(MU"(M3##M3%'80ZU.+4PR#P@$Y4Q2)4PQR18N&G``` -XM`(T44L'B`P.0C`$``(/J&,9"%@#'1"0,`````,=$)`@`````B50D!(DT).BU -XMV?__ARL````B95P____BT`0B85X____BY:<````B95\____B='VAJP$```@ -XM='7'@JP!````````BX:L!```]L0!#X6/!P``A,!Y+\=$)`@"````BT9,B30D -XMB40D!.A8(@``A7UW#QT0D"`,```#'1"0$ -XM`````(DT).@H(@``A2)?"0,B40D"(E<)`2)-"3HH=?__X7`#X5Y -XM_O__@WWD_W3&BY5\____BX+$`0``A``"Z`0```(G#BT9`@_@!=`2)PM'J.=H/@OD'``"%VP^$?@```#M& -XM/'4'ZW`"`T80BT`XA<`/E<"$P`^%.@<``(N-?/___\=%Y/_____'@<0!```````` -XMBX:<````.9B0`0``#X+J"0``BP,[1DP/A=\)``"-N<`!``#K(9"+AIP```"# -XMPQ@YF)`!```/@MH&``"+`SM&3`^%SP8``(U%Y(E\)`R)1"0(B5PD!(DT).C) -XMU/__A<`/A:'[__^#?>3_=+N+E7S___^)FL0!```QTL=%B`````#K&O:&K`0` -XM`$!T#(M&0#E&1`^%?0<``+H!````BXU\____BYG$`0``A=L/A$P)``"+1E"+ -XMC7S___^)@;P!``"+1DR)@;@!``#VAI@"```!#X4=`0``BX:0`@``A<`/E<"$ -XMP'07BX5\____]H#(`0``('0(A=(/A"<#``"+18B%P'0'@XUP____`XN5_K)`^VP(T$0`'``T80#[:`70$```%%D#M]D`^"P@@``(M& -XM((M`"(/K`3G8#X-L!P``#[8#/"\/A%X'```\_W7"QT0D!/____^)-"3H%LG\ -XM_^O"BX:0`@``C01`P>`"`T80BT@XAF)5"0(B5PD!(E,)`R)-"3H&QD``(M6/(/Z -XM`8G#N`$```!T!(G0T>@YV`^'>P@``,=%J`$```"+AIP```"#^@&+@(P!``#' -XM1;`!````BT`$B46LN`$```!T!(G0T>B)1"0,BT9,B30DB40D"(U%J(E$)`3H -XMN!@``(M6/+D!````@_H!=`2)T='I.<$/AQ0)``"+5DS'1"0(`@```(E4)`2) -XM-"3H^!H``(7`#X6@^/__@XZL!```0.GX^/__QT0D"`,```#I/X__^+0@@YQP^&V/C_ -XM_XM./+L!````@_D!=`2)R]'KB?DIP3G+#X)_"@``B30DZ"(B``"%P`^%^O?_ -XM_XN&G````(N`D`$``#MX"'??Z97X__^)-"3H;,___X7`#X3)_/__C70F`.G+ -XM]___QT60`````#M&!)`/A3/]__^)-"2+593_DFP(``"+7CB#ZP'VAC0#```! -XM#X3?!@``BX8L`P``C01`P>`"`T80BT`XA<`/E<"$P`^%+0<``(M]D(/'`O:& -XMH`,```$/A)T&``"+AI@#``"-!$#!X`(#1A"+0#B%P`^5P(3`=#:+1AP/MD!8 -XM@^`$@_@!C474@]/_B40D"(N&E````(DT)(L$A9`-"0B)1"0$Z"[^_/\K7=2) -XM18PY^W9TBT64BU8TBXB0"```BT9`.=!R`XU"_XE<)`B)1"0$B30D_]'VAJ`# -XM```!#X1>!P``BX:8`P``C01`P>`"`T80BU@XA=L/E<"$P'0IBT8<]D!8!`^% -XM00H``(M%U(E$)`B+38R)-"2)3"0$BU64_Y)8"```B?;VA7#___\!#X5=`0`` -XMBX5T____A<`/A2/____^2D`@``(DT)(N->/__ -XM__^1;`@``(N&G````(-N/`&#J)`!```8BT8\.T9$=Z+'1"0(`0```(M&3(E$ -XM)`2)-"3HRQ<``(7`#X33_/__Z6[U__^+A@P"``"%P`^5P.DY^?__BXU\____ -XM#[>!R`$``(DT)(/@!(E$)`2+E7C_____DI@(``#IL?[__XN-?/___XN!P`$` -XM`(E$)`B+1>2)-"2)1"0$BY5X_____Y*0"```BU6(A=(/A'+^__^-1E2)1"0$ -XMB30DZ*8*``#I7O[__S'2QT6(`````.EY^?__C490QT0D$`````")1"0,B50D -XM",=$)`0`````B30DZ&`.``")1:`/MHZ8`@``@^$!#X6?````BY:0`@``A=(/ -XME<"$P'0*@WV@!W8$@VV@"(M[!#E]H`^'WP```(N6I`,```^VCJP#``"-!%*# -XMX0&)A6S___^$R8G0=`^+A6S____!X`(#1A"+0#@YQP^"I@,``(3)B=!T#XN% -XM;/___\'@`@-&$(M`."G'.7V@=L?VAJ\$```0#X3>`0``B7L$BX:<````BXB0 -XM`0``QT6(`````.D+]?__BY:0`@``C012P>`"`T80BT`XA<`/E<#I4/___XM> -XM/#G8#X)X^/__C;0F`````(E<)`2#PP''1"0(`````(DT)(N->/____^1D`@` -XM`(DT)(N5>/____^2;`@``#E>0'/.Z3KX__^%_XVT)@`````/A?$!``"$R0^$ -XM.0,``(T$4L'@`@-&$(M`.(7`#Y7`A,`/A!,#``"+5CB)T(E5G(/H"#E%H`^& -XMSP$``(N&I`,```^VCJP#``"-%$"#X0&)A63___^)E6C___^%R8N%9/___W0/ -XMBX5H____P>`"`T80BT`XBU6<`<>-!!@2+AIP```"#PAB+B)`!```YT7/JQT6(`0```.D'\___@XZL!```((GP -XMBY5P____Z(;Q___I]O'__XM&4#N!O`$```^$W0(``(U%X(E$)!"-1>R)1"0, -XMC47B)1"0(C47DB40D!(DT)(N5>/____^2<`@``#'2QT6(`````.EP\___BX5\ -XM____BY"\`0``.590#X-A`0``B=<#?=R)?=R+@+P!```[1>R+3E`/@S?V__^- -XM4`$IRHN-?/___XN!P`$``(/`!3G"#X<;]O__C5K_@_O_QT6`_____P^$#/__ -XM_P^V%XU'_XE%W(#Z"0^$]O7__P^VPC'_B46$ZSN+582-!%(!P`-&$`^V@%T! -XM``"#ZP$!QX/[_P^$RO[__XM%W`^V$(/H`8E%W(#Z"0^$M_7__P^VRHE-A(#" -XM`77`BTV$B30DB4PD!.@1O?S_Z\''1"0$_____XDT).C_NOS_Z6#[__^)>0C' -XM1"0(`P```,=$)`0`````B30DZ"\0``"+1DR#CJP$``!`BY:<````Z8KU__^+ -XM?9"#QP*-!#HYPP^&[_W__\=$)`@"````QT0D!+C<"`B)-"2+593_DE@(``"+ -XM1=2+39"#P`*-?`$"Z<']__^)>@C'1"0(`````,=$)`0`````B30DZ,`/``"# -XMCJP$``!`Z17N__^+1=R+C7S___^#P`$!T(E%W(M>4(NYP`$``"N9O`$``.LE -XMBX:0`@``C01`P>`"`T80BT`XA<`/E<"$P'16BT8X@^@(.?AV7X/K`8/[_W17 -XMBT7<#[80@\`!B47<@/H)#X2,]/__#[;"@,(!="R-!$`!P`-&$`^V@%T!```! -XMQ_:&F`(```%UG(N.D`(``(7)#Y7`ZZ:+1CCKJXE$)`2)-"3HP+O\_^O5BX5\ -XM____B;C``0``]H:8`@```71;BX:0`@``C01`P>`"`T80BU`XA=(/E<"$P'0[ -XMBT8X@^@(.<GD_/__58GE5U93@^P< -XMBWT(BT<0B47L]H>L!```0`^%%@$``(M8"(UP"/:'F`(```$/A#T!``"+AY`" -XM``"+5>R-!$"+1((XA<`/E<`\`1G`@^#@@\`Q.=Z)1?!U0NM;C;8`````BY.< -XM````#[>"R`$``(5%\'0B#[>2R`$``(G8@^(!@\H"Z!KK__^+AYP```!F@XC( -XM`0```8L;.?-T&SG[=/:+@ZP$``#VQ`9UZZA@=+.+DYP```#KO8M=#(7;=0WV -XMAZP$```(#X6V````N@,```")^.C+ZO__N@$```"%P'5-BU7LBUH(.?-U#NLX -XMC;8`````BQLY\W0H]H.O!````G3QB1PDQT0D"`````")?"0$Z(W5__^+&[@! -XM````.?-UV(7`=7B#CZP$```(,=*#Q!R)T%M>7UW#BU7LBUH(B=:#Q@@Y\P^$ -XMW?[__SG[=`J!BZP$``!````"BQLY\W7LBT7L]H>8`@```8M8"`^%P_[__XN' -XMD`(``(7`#Y7`ZS' -XM1"0$`````(D\)/^2F`@``#'2@X^L!```".EO____D)"0D%6)Y8M-"%/V@10" -XM```!BY&<````=&*+@0P"``"-!$#!X`(#01"+0#B%P`^5P(3`=%:+@L0!``#V -XM@9@"```!BY+``0``BU@$=%V+@9`"``"-!$#!X`(#01"+2#B%R0^5P,'@'\'X -XM'X/@"(T4$RG"BT4,B1`QP%M=PXN9#`(``(7;#Y7`A,!UJHN"Q`$``(N2P`$` -XM`(M8"(/K`0^O63CV@9@"```!=:.+@9`"``"%P`^5P.NMC;8`````C;PG```` -XM`%6)Y5=64X/L3(U%\(E$)!"-1>R)1"0,QT0D"`````"+10R)1"0$BT4(B00D -XMZ!_&_/^+=>R%]@^$A0$``(M=\(7;#X1Z`0``BU4(]H(X`@```0^%\````(M- -XM"(M%"(N),`(``(E-W/:`%`(```$/A/D```")PHN`#`(``(T$0,'@`@-"$(M` -XM.(E%V(M-"#'2,?^+11#W<3B)5/^__\Q_^G<_O__ -XM@\1,,/_#[9%XW1W -XMBU4(C01``<`#0A`/MH!=`0```<,)=&:#ZP$I3D#____BT7`"`T(0BT@XZ\R)^#'2]_''1`"`T(0BT`XB474,?^%VP^$$@$``(L[B77@QT70`````.M7@/O_#[;# -XM#X1]`0``BU4(C01``<`#0A`/MH!=`0```470C30PBT74A`" -XM`T(0BT@XBT70,=+W\8G(*=#I>____XM%"(N0D`(``(72#Y7`Z=C^__^-=@"` -XM^_\/ML,/A!"+51B%TG0)BU48B?`IV(D"@\0\B?!;7E]=PXM%"(N(R`,``.G+_O__ -XMB?`QTO?QQT70`````"G6Z6W^__^)1"0$BT4(B00DZ,ZR_/_IY_[__XG"BX#( -XM`P``C01`P>`"`T(0BT@XZ3C___^+3=B%R720BU4(BT(0#[:`-0(```'&Z7S_ -XM__^)R#'2]W7,,?\IT>G(_O__C47PBU4(B40D$(U%#(E$)`R+11#'1"0(```` -XM`(D4)(E$)`3H'<#\_XM%\(7`=1F+11B%P`^$0O___XM5&,<"`````.DT____ -XMBT4,A<")1=P/A1W]___KUXVV`````(V\)P````!5B>564X/L((M="(MU$/:# -XM%`(```$/A)@```"+@PP"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=6^%]@^$A0`` -XM`(L&A7<.Z`0```(/$((G06UY=PXN##`(``(7`#Y7`Z6____^+ -XM@YP```"+50PYD*P!```/A6S___^+D+`!``#KRE6)Y5=64XG#@^PLB57@BW`0 -XM@W@T`71_C47LB40D"(U%\(E$)`2)'"3_EG`(``"+1>"%P'17,?^)'"3_EG0( -XM``"+0T"+4S2+CI`(```YT'(#C4+_QT0D"`````"#QP&)1"0$B1PD_]&)'"3_ -XMEH@(``"+1>R)1"0(BT7PB1PDB40D!/^6D`@``#M]X'6K@\0L,R)'"2)1"0(BT7PB40D!/^6D`@``(D<)/^6B`@``#M] -XMX'0WBU-`BT,TBXZ0"```.<)RJX/H`NNIQT0D"`````#'1"0$`````(D$)/^6 -XMD`@``(D<)/^6;`@``(/$+#'`6UY?7<.)]HV\)P````!5B>575E.#[`R+?0B+ -XM=0SVAQ0"```!=#B+APP"``"-!$#!X`(#1Q"+6#B%VP^5P(3`="R+!CM%$'=S -XMBW40*<:#Q`R)\%M>7UW#C;0F`````(N/#`(``(7)#Y7`A,!UU(L>.UT0=%8Y -XM71!S88MV"(/K`8/N`3E=$'?&.W44=@?KOSEU%'*ZB5PD!(/K`<=$)`@````` -XMB3PDZ&3\__\!QCE=$';=@\0,B?!;7E]=PXG&*W40@\0,6XGP7E]=PXMV"(/$ -XM#%N#[@&)\%Y?7<.)7"0$@\,!QT0D"`````")/"3H'?S__RM&"#E=$(UP`753@^P4BU4(BUT0BTT,QD,6`/:"%`(```%T-HN"#`(``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T*HL!@^@!B0.+002)0P0QP(,[``^4P(/$%%M=PXN" -XM#`(``(7`#Y7`A,!UUH-Y"`%T&XL!B0.+00B#Z`&)0P@QP(,[``^4P(/$%%M= -XMPXL!@^@!B0/'1"0(`````(E$)`2)%"3H0OO__XE#".NBC;8`````C;PG```` -XM`%6)Y593@^P0BU4(BUT0BW4,QD,6`/:"%`(```%T,HN"#`(``(T$0,'@`@-" -XM$(M`.(7`#Y7`A,!T)HL&@\`!B0.+1@2)0P2#Q!`QP%M>7<.0BX(,`@``A<`/ -XME<"$P'7:QT0D"`````"+!HD4)(E$)`3HN_K__SM&"'06BP:)`XM&"(/``8E# -XM"(/$$#'`6UY=PXL&QT,(`0```(/``8D#ZZ95B>575E.#[#R+?0B+=0R+71"+ -XM3SR+AYP```"%R8N`C`$``'00,=*#P@'&0!8`@\`8.<````BX*0`0``ZPV0C70F`(N7G````(G8.X*,`0``#X8-`0``C5CHB5PD -XM"(E$)`2)/"3H"?[__X7`=-6^`0```(N'G````(N`C`$``(DPBX><````BX", -XM`0``QT`$`````(N'G````(N`C`$``,=`"`$```"+AYP```"+7SR+@(P!``#K -XM`HGP@^L!#X2A````C7`8B70D"(E$)`2)/"3H3?[__X7`=-Z+AYP```"+@(P! -XM``#'``$```"+AYP```"+@(P!``#'0`0`````BX><````BX",`0``QT`(`0`` -XM`(N7G````(N"C`$``.L+C78`BY><````B=@[@I`!``!S,8U8&(E<)`B)1"0$ -XMB3PDZ-W]__^%P'39@\0\N`$```!;7E]=PX7V#X44____Z4/___^#Q#PQP%M> -XM7UW#QT7<`0```+H!````QT7@`````,=%Y`$```"+1SR#^`%T!(G"T>J-7=R) -XM5"0,B70D"(E<)`2)/"3HJ/O__XM7/+D!````@_H!=`2)T='I.<$/@ZK^__^) -XM7"0$B3PDZ*.Z_/^%P`^%<````BY"0`0``BT7")0@2+AYP```"+D)`!``"+1>2)0@CIO_W__XN'G````(N` -XMD`$``(DPBX><````BX"0`0``QT`$`````(N'G````(N8D`$``,=$)`@````` -XMB70D!(D\).BA]___B4,(Z7;]__^+3SR+EYP```#1Z8T$2<'@`P."C`$``(DP -XMQT`$`````,=`"`$```#K`HG8BY><````BXJ,`0``.L(BY><````B=@[@I`!```/ -XM@S+^__^-6!B)7"0(B40D!(D\).C>^___AF,_?__D(UT)@!5B>6#[#B+ -XM112)=?B+=1")??R+?0B)7?2#^`(/A+\```"#^`-T4H7`=4F+AYP```"+D)`! -XM``")T2N(C`$``(G(P?@#:<"KJJJJ.<8/A@4!``#'1"0(R`T)",=$)`0"```` -XMB3PDZ,?J_/^X`0```.G6````Z&P\_/^+AYP```"+D(P!``"+@)`!```IT,'X -XM`VG`JZJJJCGP-!':%]HT@?`=#1^`'PC01`C1S!@'L6``^$!@$``(L#BTT,B0&+ -XM0PR)000QP(M=](MU^(M]_(GL7<.-!':)T\'@`RG#B47@BP.)/"2)1"0$Z`^W -XM_/^%P'6[C47PB40D!(D\).B@?`=#1^(T$0,'@`RG#Z?;^__^-M@````#'1"0,`````,=$)`@````` -XMB5PD!(D\).CDL/__A<`/A-;^__^X`0```.G;_O__BX",`0``ZYF+AYP```"+ -XM@(P!``#I*?___XGVC;PG`````%6)Y593@^P0BW4(BX:<````BU9,BYB,`0`` -XMBPLYRG(@BX"0`0``.Q!W%CG*=%F)]H/#&#L3=?DYV'-0D(UT)@"#Q!"X`0`` -XM`%M>7<.-="8`QT0D#`````#'1"0(`````(E<)`2)-"3H1+#__X7`=="+0Q`[ -XM1E!S+(N&G````(/#&(N`D`$``#G87<.-M"8`````C;PG`````%6)Y5.#[!2+70B+0Q#' -XM1"0(`````,=$)`0`````B1PD_Y"0"```N@$```")V.BN]?__A<`/A88```"+ -XM2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H____B40D"(E4)`2#PAB) -XM%"3H53W\_XN#G````(N`C`$``(E$)`B#P!B)1"0$B1PDZ$+W__^%P'4NQT0D -XM#`````#'1"0(`````(N#G````(N`C`$``(D<)(E$)`3H-J___X/$%%M=PX/$ -XM%+@!````6UW#D(UT)@"+@YP```"+@(P!``")1"0(ZZ"-M"8`````C;PG```` -XM`%6)Y5.#[!2+70B+0Q#'1"0(`````,=$)`0`````B1PD_Y"0"```N@$```") -XMV.AN\___A<`/A88```"+2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H -XM____B40D"(U"&(E$)`2)%"3H93S\_XN#G````(N`D`$``(E$)`B#Z!B)1"0$ -XMB1PDZ`+W__^%P'4NQT0D#`````#'1"0(`````(N#G````(N`D`$``(D<)(E$ -XM)`3H1J[__X/$%%M=PX/$%+@!````6UW#D(UT)@"+@YP```"+@)`!``")1"0( -XMZZ"-M"8`````C;PG`````%6)Y5=64X/L/(M%"(M=$(M]#(N`G````(7;#Y3" -XMB=:)1=!U3(7_=4C'1"0$`@```(M-"(D,).@5L_S_A^@*-_S_C;8`````BT4(BY"<````Z[V0C70F`(/_`76PZ5[___^-M@````"+ -XM==!F@X[(`0``$,>&K`$```````"+10@Y>$P/A'\!``"+50B+@JP$``"I```` -XM$'5UJ!!T8HM-T#'`9H.)R`$```B#Q#Q;7E]=PXVV`````(/[`@^%-____XMU -XM"(M./(7)=`\QTH/"`8,``8/`&#G*=?.+50B+0DPYQW<&@\`!B4),BTW0,7UW#BX*<````@[A<`0```7>/BW4(C57LBT80B50D"(U5 -XM\(E4)`2)-"3_D'`(``"#^P(/A!H!``"#^P,/A&L!``"#ZP$/A??^__^+EIP` -XM``"+BHP!```[.8G+=`>#PQ@[.W7YBT4(]H`4`@```0^$M0$``(G&BX`,`@`` -XMC01`P>`"`T80BT`XA<`/E<"$P`^%B@$``(N2D`$``(U#&#G0#X=Y`0``.WL8 -XM#X5P`0``O@$```#K"XVT)@`````[.'4*@\`8@\8!.=!V\HM5"#MR/`^"C0(` -XM`(.*K`0``""+==!F@X[(`0``((MU"(M5[(M&$(E4)`B+5?")-"2)5"0$_Y"0 -XM"```,<#I\OW__V:#CL@!```!Z73^__^+=0B+3CR%R706,=*-M"8`````@\(! -XM@R@!@\`8.G_O__@^@!B4),Z9S^__^+50B+@IP```"+ -XMF(P!``"+2P2)3=0[.W0(D(/#&#L[=?G'1"0(`````(E\)`2+=0B)-"3HXN[_ -XM_SM&/(G!#X+J`@``@XZL!```((M-T&:#B<@!```@Z3S___^+=0B+EIP```"+ -XMLHP!```[/G0'@\88.SYU^8M%"/:`%`(```$/A'H!``")P8N`#`(``(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,`/A`H!``")\\=%X`$```#'1=@!````BTT(BT7@.T$\ -XM`!.=AS\<=$)`@`````B7PD!(M5"(D4).@D[?__B478 -XMZ;?^__^+10B+B`P"``"%R0^5P.F,_O__BU4(BT(0B=HIRL'Z`VG2JZJJJL=$ -XM)`@`````B50D!(M-"(D,)/^0D`@``(M%"(GRZ+3M__^%P`^%(O___XM5"(T$ -XM=HT\Q0````"+@IP```"+@)`!``")'"0IV,'X`VG`JZJJJH/``2GPC01`P>`# -XMB40D"(T$'XE$)`3HGC;\_XM-"(N!G````(N0D`$``(G0*?@YV'(=@RL!@\,8 -XM.=AS]HMU"(N&G````(N0D`$``(G0*?B-6!B-0^B)WCG0`#B40D".A;-?S_BU4(BX*<````.["0`0``=Q>#!@&# -XMQAB+30B+@9P````YL)`!``!SZ8MUW(7V#X1$_/__O@$```#K#X/&`3MUW`^' -XM,?S__X/#&(D[BT74B7,(QD,6`(E#!,=$)`P`````QT0D"`````")7"0$BU4( -XMB10DZ!"G__^%P'2_Z1W]__^+30B+@9P```"+@)`!``")="0$*?#!^`-IP*NJ -XMJJJ#P`$IV(T$0,'@`XE$)`B-!%N-!,:)!"3HH#3\_XM%V(7`#X3]^O__BU4( -XMBX*<````.["0`0``#X?H^O__NP$```#K*9"-="8`.UW8#X33^O__BU4(@\88 -XMBX*<````.;"0`0``#X*[^O__@\,!B3Z)7@C&1A8`QT0D#`````#'1"0(```` -XM`(ET)`2+30B)#"3H5*;__X7`=+#I8?S__XM-"(M=X"M=V(M1$,=$)`@````` -XMBX&<````B?$KB(P!``")R,'X`VG`JZJJJHE$)`2+10B)!"3_DI`(``"+10B) -XMVNBDZO__A<`/A1+\__^+50B-!%O!X`.)1`#B40D"(M%S(DT)`'PB40D!.B-,_S_BT78A",9&%@#'1"0,`````,=$)`@`````B70D!(M-"(D, -XM).A]I?__A<`/A8O[__\[7=AUQ8MU"(N&G````(N0D`$``(G0*T7,C7`8C4;H -XMB?,YT',;B70D"(E$)`2+10B)!"3HS>W__X7`#X5+^___QT0D#`````#'1"0( -XM`````(ET)`2+50B)%"3H%J7__X7`#X4D^___BTT(@\88BX&<````BY"0`0`` -XM.=IUG^DO^?__B?/'1>``````Z6K[__^0C70F`%6)Y5=64X/L?(M]"(MU$(N' -XMG````&:#B,@!```!C47PB40D!(D\).@$]/__A<`/A7P!``"#?10'=@N-M@`` -XM``#H/R[\_P^V312P`=/@J(X/A6@!``"H<73ABX><````BUWPBY",`0``BPJ# -XM^0$/A-$#``"+1T`Y1T0/A!\$```YQ@^"NP(``(L"B46\BT($B47`BT((B47$ -XMBT(,B47(BT(0B47,BT(4B470B?CH?^G__X7`#X7W````A?9T?3';D.LKBT78 -XM@\,!BTW4.?.)1<"+1=R)3;R)1<2+1>")12)1B)1=!T4(U%U(U5 -XMO(E$)`B)5"0$B3PDZ+WK__^%P`^%I0```(-]U`%UL?:'%`(```$/A!8&``"+ -XMAPP"``"-!$#!X`(#1Q"+0#B%P'4&@WW<`76(BTW4BX><````BY",`0``B0J+ -XM1=B)0@2+1=R)0@B+1>")0@R+1>2)0A"+1>B)0A3'1"0(`P```,=$)`0````` -XMB3PDZ(_L__^%P'4KQT0D#`````#'1"0(`````(M-#(D\)(E,)`3H_.___X7` -XM#X1@`@``C70F`+@!````@\1\6UY?7<.+3?"-1=2)39R)1"0(BX><````BX"0 -XM`0``B3PDB40D!.B.Z___A<````BX"0`0``B3PDB40D!.@[ZO__A<`/A"/_ -XM___I;O[__XM%%(7`#X0Z_?__@WT4!0^$X0```(U%[(E$)`2)/"3HRO#__\=% -XMF`````"%P`^%PP```(7V='2+1SP[1T!U2.MJBX<,`@``C01`P>`"`T<0BT`X -XMAR+30R+$(D1BT`,B4$$A?8/A0(#``"#?10%#Y5%JX!]JP!T%(-] -XM%`)T#HM-#(M!!(7`#X2\`@``@\1\,_[___'1"0$`````(D\).@\<````BYB,`0``QT6P`0```.F9_O__BX><````BY"0 -XM`0``BP*)1=2+0@2)1=B+0@B)1=R+0@R)1>"+0A")1>2+0A2)1>B)^.C+X___ -XMA<`/A4/[__^%]@^$20,``#';ZU*-M"8`````BT6\.T74=!2)1"0$B3PDZ(RC -XM_/^%P`^$(@,``(M%P(/#`8M-O#GSB478BT7$B4W4B47R+30R+$(D1BT`,B4$$A?8/A!#\ -XM__\QV\=%H`````#K$X-]%`<```` -XMBX"0`0``B3PDB40D!.@WY?__A<`/A6_Y__^+AYP```"+5=2+@)`!```Y$'04 -XMB50D!(D\).C`H?S_A<`/A"H!``")/"3H<.W__X7`#X4X^?__@WT4`G6)BX>< -XM````BU6<.Y",`0``=S#'1:`!````Z7;___^%VW0IBX><````BTV<.XB,`0`` -XM#X9=____@^D8B4V<````BU6<.Y"0`0``=1OK.(UV`(/N`70P -XMBX><````BTV<.8B0`0``=!^+79R#19P8BU6`#*<.)7:SI?/O__XM% -XME(7`#X2;^?__BP.+30R)`?:'%`(```$/A&@!``"+APP"``"-!$#!X`(#1Q"+ -XM0#B%P`^5P(3`#X0Y`0``BTL$BT=4,=+W=SB-%!&)5"0(BP.)/"2)1"0$Z&37 -XM__^+50R)0@3I/?G__\=$)`P`````QT0D"`````")3"0$B3PDZ.V9__^%P`^$ -XM_/K__^FP]O__@WT4`P^$@P```(-]%`>)]@^%)/7__^E*_O__BT6@A<`/A.;X -XM__^+39R+50R+`8D"]H<4`@```0^$V@```(N'#`(``(T$0,'@`@-'$(M`.(7` -XM#Y7`A,`/A*D```"+19R+2`2+1U0QTO=W.(T4$8E4)`B+39R+`8D\)(E$)`3H -XMKM;__XM5#(E"!.E_^/__A?8/A87]__^+AYP```"+@(P!``")19SIO/W__\=$ -XM)`P`````QT0D"`````")3"0$B3PDZ!N9__^%P`^$I?W__^G>]?__QT64```` -XM`(VT)@````#IA?G__XM+"(/I`0^O3SB0Z;K^__^+MPP"``"%]@^5P.F?_O__ -XMBU6R+3P2#P`@YP0^$ -XM0`$``(GRB?LQP`%32"ES-`%!2(M!1`%Q-`%Q/#M!0`^$\0```(N1G````(T$ -XM=@%Q0(T\Q0`````!NI`!``"+0T"!B:P$```@```"*7,\*?`[0T2)0T!S`XE# -XM1(N#G````"FXD`$``#'`@8NL!```(````NLEQT0D#`$```#'1"0(+`X)",=$ -XM)`0"````B3PDZ*_/_/^X`0```(M=](MU^(M]_(GL7<,QP.OO*=:-M"8````` -XMBU7LBQ^#P@@YTW0(C48!.4-`)\(G[]]@QTNFN_O__D(VT)@````!5B>57 -XM5E.#[`R%THE5\(M`$'1_BW`0C7@0.?=T?XGSZP:+&SG?="^+0R"+5?"+0`B) -XM5"0$B00DZ`@C_/^%P'7A@\0,B=A;7E]=PXVV`````(LV.?=T1HM&((M8",=$ -XM)`0O````B1PDZ&@A_/^%P'0#C5@!BT7PB1PDB40D!.C"(OS_A+ -XM1TR)0A"+1U"+5R")0A2+1R!F@T@8`8N'G````(&/K`0````0``"+EIP```") -XM=Q2+@+0!``")@K0!``"+1SB)1CB+1S2)1C2+1TB)1DB+1D0[1D`/A#,!``#V -XMAFP$```!#X7[````BX9D!```BU=`B48\.=")1D0/A@G````-'HB8:$````QT0D!!@```"+@[0!``"#P`&)!"3H/2+\_X7` -XMB8.,`0``#X3@````BXZ<````BT8\BY&,`0``C01`@^H8C03"B8&0`0``QT0D -XM"`$```"+1DR)-"2)1"0$Z$;>__^Z`0```(7`=5F+3?"+%H/!$#G*#X3/```` -XMBT8$B4($BT8$.<$/A+,```")$(L'B7X$B0:+1?"+%X/`"#G"#X2/````B7($ -XMBX:<````,=*)-V:#B,@!```!@8ZL!```0````H/$'(G06UY?7<.+AF0$``"+ -XM5T"-!$#!X`(#1A"+0#@YT(E&/(E&1`^'^?[__XM&0.GW_O__BT8T@^@!B49$ -XMB49`B48\Z>O^__^)-"3'1"0(`````,=$)`0%````Z$/,_/^#Q!RZ`0```%N) -XMT%Y?7<.+5?")<@SI:?___XM%\(E0$.E$____BU7PBT8$B4(4BQ;I)____XVT -XM)@````"-O"<`````58GE5U93@^P%]@^$KP```(M&1#M&0`^$R0```(M&-(N6G````(/H`8E&0-'HB8:$ -XM````BT8\BXJ0`0``C01`P>`#`X*,`0``BQ&-6.B)4.B+002)0P2+00B)0PB+ -XM00R)0PR+01")0Q"+012)0Q2+CIP```"+1CR+D8P!``"-!$"#ZAB-!,*)@9`! -XM``"#??`!=#>#??`"=`7HS!S\_\=$)`@`````QT0D!`````")-"3H0-S__X&. -XMK`0```````*#Q!PQP%M>7UW#QT0D"`,```#'1"0$`````(DT).@4W/__Z]*) -XM]HM&-(/H`8E&1(E&/.DF____BQDQ]CG:#X0`____BT%(B=Z)0TB+030!0S3' -XM1?`"````Z>;^__^)]HV\)P````!5B>564X/L((M="(U%](MS$(E$)`2)'"3H -XM<_[__[H!````A`C`$```````"+1?2!BZP$````$```B4,4@\0@B=!;7EW# -XMBT,$B48,BT,$BQ,YP768D(E6"(U6$(D3BT84B4,$.U80=9:)7A#KEL=$)`A8 -XM#@D(QT0D!`,```")'"3HL,G\_[H!````Z[")]HV\)P````!5B>575E.#[#R+ -XM=0B+?0R+1A")1>"#?C0#=RW'1"0,`P```,=$)`B0#@D(QT0D!`,```")-"3H -XM9@2)/C';BT8TN@$```"# -XM^`%T`XU0_XM/-(E60+H!````@_D!=`.-4?^)5T"+5=PY5=@/A.(!``"%VW0# -XM*4X\BT9`.48\=@.)1CPY1D1V`XE&1/:&;`0```$/A=X```"+AF0$``")1SR) -XM1T2+1T`Y1SQV`XE'/#M'1',#B4=$@WXT`8N.G`````^$?`$``(N1C`$``(M& -XM/(/J&(T$0(T$PHF!D`$``(N/G````(-_-`$/A$@!``"+D8P!``"+1SR#ZAB- -XM!$"-!,*)@9`!``"+1D#1Z(7`B8:$````=0K'AH0````!````BT=`T>B%P(F' -XMA````'4*QX>$`````0```(N'K`0``(N6K`0```T@```"@^(/"=")AZP$``"# -XMQ#PQP%M>7UW#C70F`(/[!@^&"_[__[L&````Z0'^__^+AF0$``"-!$#!X`(# -XM1A"+0#CI$?___XVV`````(U%\(E$)`2)-"3H8=[__S'2A-(M/ -XM-(E'2(M&!`%.2(E'!(M%X(M6!(/`"#G"#X3<````B3J+AIP```"[`0```(E^ -XM!(N0C`$``(M&0(D4)"G(C01`P>`#B40D"(T$28T$PHE$)`3H51S\_^D(_O__ -XMBX&,`0``Z;_^__^0BX&,`0``Z8O^__^0C70F`(/X`;H!````=`.-4/_VAFP$ -XM```!B58\B59$=#R+AF0$``"-!$#!X`(#1A"+0#B)1SR)1T2-0?\Y1SP/AB3^ -XM__^#Z0%T.(E'/.D4_O__BU7@B7H,Z9#]__^+AF0$``#KSL=$)`@`````QT0D -XM!`4```")-"3HV,7\_^G@_/__N`$```#KP8M%X(EX"(M/-(UV`.D5____C70F -XM`(V\)P````!5B>575E.#["R+112+=0B+?1"%P(M>$'1KB?J)\.BN]O__BU4, -XMB47PBT7PA<")`G1[BWT4A?\/A:4```"+%HU+"#G*#X0&`0``BT8$B4($BT8$ -XM.<$/A!D!``")$(U3$(D6BT,4B48$.U,0#X3[````BT,4B3")SW]HG!,<#K$XUV`#M]['9/,2)1=2+1="+5=2%R70']]B#T@#WVH/$,%Y?7<.%]G4+N`$````QTO?VB<&+ -XM1>R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!RG+D!```` -XM,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KWV(/2`/?: -XM]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`)QXM%\-/F -XM#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)````'5S86=E.B!E>"!;+65&4G)3F5= -XM(%MF:6QE("XN+ET*`````$5R7!E"@!L -XM:6YE]!`B`O00(Y;D$"*Z]!`AS -XM;7-O`')MC0@(`````&"<"`AHC0@(:XT( -XM"`````"#C0@(+_8("(F-"`@`````EHT("!+V"`B&ET('=I;&P@9&ES8V%R -XM9"!M;V1I9FEC871I;VYS`````#(V-'Q&:6QE(&UO9&EF:65D('-I;F-E(&QA -XM2!T:&%N('1H:7,@8V]P>0``,C4X?"5S -XM(&5X<&%N9&5D(&EN=&\@=&]O(&UA;GD@9FEL92!N86UE6]U`#(T,'PE -XMF4@979E;G0`,C@W?%5N97AP96-T960@=W)I=&4@979E;G0` -XM``"S"P4(]`L%",$,!0BS"P4(APP%"*0,!0@9#`4(LPL%"+,+!0@S#`4(30P% -XM"&H,!0C""P4(610%"&41!0B"$04(@A$%"%D4!0A9%`4(@A$%"$T4!0@P,3(S -XM-#4V-P`P,3(S-#4V-S@Y86)C9&5F````,#`X?$5R"]V:3H@`"5S)2XJ2!O;F4@=&%G(&9I;&4@;6%Y(&)E('-P96-I9FEE9"X`+7,@ -XM;W!T:6]N(&ES(&]N;'D@87!P;&EC86)L92!T;R!E>"X`@#,%"'$S!0CO,04( -XM[S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04(8C,%"%,S!0CO -XM,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q -XM!0CO,04([S$%".\Q!0@O,P4([S$%"!PS!0CO,04([S$%".\Q!0CO,04([S$% -XM".\Q!0@-,P4([S$%".\Q!0CO,04([S$%".\Q!0CZ,@4(\#(%",DR!0CO,04( -XMMC(%"*LR!0@P,3=\36%R:R`E&ES=',`,C8X?&-O;F9I2!K97D@=&\@8V]N=&EN=64Z(``R-S!\4')E2!T;R!C;VYT:6YU92!;.B!T;R!E;G1E2!K97D@=&\@8V]N=&EN=64@6W$@=&\@<75I=%TZ -XM(``P,S!\5&AE(&9I;&4@)7,@:7,@;F]T(&$@;65S3TEULJ/R1@)R)<`'-H:69T=VED=&@].`!S:61EA"`@``````P````````##]0@(`(4%"`(````(````+:$("``` -XM`````````````*>\"`@``````P`````````UH0@(````````````````0J$( -XM"``````"`````````$VA"`@```````````````">V@@(```````````````` -XM6*$("'"%!0@``````````&&A"`@``````P````````!GH0@(``````$````` -XM````;:$("````````````````'>A"`@``````@````````"`H0@(<(4%"``` -XM````````B*$("'"%!0@``````````).A"`@``````@````````";H0@(L'\% -XM"```````````7(P(".""!0@"````"````*6A"`BP@@4(``````@```!8O`@( -XML'\%"```````````L=X("``````!`````````*JA"`@``````0````````"P -XMH0@(``````(`````````NJ$("``````!`````````+^A"`@``````````!`` -XM``#(H0@($(8%"`,`````````SZ$("."%!0@#`````````-,$"0BP?P4(```` -XM``````#7H0@(X(4%"```````````T+D("``````!`````````-VA"`@````` -XM`0````````#FH0@(<((%"`,`````````(J$("``````#`````````-&A"`C@ -XMA04(`P````````#QH0@(``````$`````````AIL("(!_!0@``````@```/BA -XM"`@``````P````````#_H0@(````````````````!J(("``````!```````` -XM``RB"`@``````@`````````3H@@(````````````````8*(("``````"```` -XM`````!FB"`@````````````````DH@@(,((%"`,`````````+:(("``````` -XM````(````(3="`@``````P`````````TH@@(``````,`````````/J(("``` -XM```"````0````$FB"`@```````````````!3H@@(````````````````7*(( -XM"``````"````0````&>B"`@```````````````!PH@@(```````````0```` -XM>J(("+!_!0@"````0````(*B"`@``````@````````!@P0@(``````,````` -XM````,(L("``````#````"0```(RB"`@```````````````"2H@@(```````` -XM````````FJ(("``````!`````````**B"`BP@04(``````````"LH@@(```` -XM````````````M*(("-"`!0@"````#````+JB"`A`@04(`@````P```"_H@@( -XM8(`%"`(````,````Q:(("``````!`````````,JB"`C0?P4(`@````````#1 -XMH@@(````````````````W*(("``````"`````````.2B"`@``````@`````` -XM``#OH@@(``````$`````````^*(("``````````````````````````````` -XM```````!HP@(`0````FB"`@"`````Z(("`,````$HP@(!0````>C"`@(```` -XM^Z$("`H````*HP@(#0```!V<"`@+````^)@("`X````-HP@($@```).-"`@3 -XM````K:$("!4````0HP@(&````!.C"`@?````':,(""(````@HP@()0```"2C -XM"`@F````,:((""P```"TL0@(*@```"FC"`@P````+:,("#(```!>H`@(-``` -XM`#*C"`@Z````-Z,("#<````ZHP@(.````#ZC"`@V````/<$("#X```!!HP@( -XM/0```$2C"`A"````1Z,("#P```!?BP@(/P```$JC"`@_````&O<("$D```!2 -XMHP@(3@```%6C"`A)````6*,("$L```!;HP@(3````+^_"`A-```````````` -XM```P-#E\5&AE('-E8W1I;VX@;W!T:6]N(&UU2!0A8+79I+7)E8V]V97(M9FEL93H@`%@M=FDM -XM2!F:6QE`````$9R;VTZ(')O -XM;W0@*$YV:2!R96-O=F5R>2!P2X@```E2`O(&]R -XM(#\`!"$C)BH\/3Y`?@`P.#!\56YK;F]W;B!C;VUM86YD(&YA;64`,6)C83$` -XM,#DX?%1H92`E2!N -XM;W0@8F4@>F5R;P!L<@`P.#9\57-A9V4Z("5S`'-C2`E;'4@;&EN97,@:6X@=&AE(&9I;&4`,3`S -XM?$EL;&5G86P@861D"!M;V1E -XM`````#`X-'PE"!T86)L92!E"!C;VUM86YD(&9A:6QE9#H@<&5N9&EN9R!C;VUM86YDP@4(N,(%"%W'!0A\Q`4(?,0%"`7'!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0BOQ@4(_<<%")['!0B>QP4(GL<%")[' -XM!0B>QP4(GL<%")['!0B>QP4(GL<%")['!0A\Q`4(?,0%"'S$!0A\Q`4(?,0% -XM"-W%!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4( -XM?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(9\8%".O+!0CLR@4([,H%".S* -XM!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H% -XM".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(Z\L%".S*!0CLR@4( -XM[,H%".S*!0CXRP4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(FLL%".S*!0CL -XMR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S* -XM!0CLR@4(H\L%".3>!0B#W@4(@]X%"-C$%"-C&-E<'0@870@=&AE(&5N9``R-S-\16YT97)I;F<@ -XM97@@:6YP=70@;6]D92X`,3$T?$YO(&9I;&4@;&ES="!T;R!D:7-P;&%Y`"5S -XM)7,E'!A;G-I;VX@9F%I -XM;&5D`"$E3H@)7,`&5C=71E(&$@8G5F9F5R`#P`2!L:6YE(&YU;6)E<@!S -XM:&EF="!L:6YE5T`8V]P>0!C'5S86=E`%ME>'5=')C -XM(&9I;&4`(69.`%ML:6YE72!O6W!E;ET@6R]212]=(%MF;&%G2!L:6YEF4@6RLM -XM77)O=W,`5T@;&EN92!;9FQA9W-= -XM``!C;W!Y(&QI;F5S(&5L2!B6W5F9F5R2!S970I(&9I;&4@;F%M -XM90``8G)I;F<@82!B86-K9W)O=6YD960@72!;=VEN -XM9&]W7W-I>F5=(%MF;&%G2!D:69F97)E;G0@,,( -XM")S#"`C3O`@(T$,&"`````#:O`@(W;P(",##"`@1"PD(L$8&"$(```!ZL0@( -XM[,,("/6\"`C.V`@(X$@&"`````#+P0@(),0("%S$"`@E!`D(D$L&"``!``!^ -XMO`@($+T(""N]"`CXF`@(D$L&"``!``!^O`@(1KT(""N]"`A=O0@(8!$'"``` -XM``#;OP@(9;T("(S$"`B;T("+#$"`B'O0@(L)$& -XM"``%``!^O`@(BKT("-C$"`B7O0@(P%X&"`0```#:O`@(",4("#S%"`B>O0@( -XM\!`'"`````!/C0@(H[T("*J]"`C!O0@(``(&"#$```#5V@@(R+T("-N]"`CV -XMO0@(4&@&"$(```#[O0@(<,4("`"^"`@2]@@(X'$&"`$```#+P0@('KX(""N^ -XM"`A8O`@(T(4&"((```#\O0@(G,4(",#%"`B#E`@(('4&"$(````O]@@(0+X( -XM".C%"`C3]`@(X'$&"`$```#+P0@(6[X(""N^"`@(H@@(`&\&"`````!MO@@( -XM<+X("`S&"`B&O@@(<'(&"`````"-O@@(DKX("*&^"`C)P`@(T`8&"``!``"T -XMO@@(.,8("%C&"`C3!`D(<(4&"((```#\O0@(A,8("*C&"`C0N0@(L'H&"`$` -XM``#;O`@(N+X(",C&"`C1H0@(((4&"((```#\O0@([,8("-6^"`CCO@@(P"H' -XM"#0"``#;O`@(Z+X("!#'"`CSO@@(P"H'"#0"``#;O`@(^KX("#S'"`@'OP@( -XMX'L&"`````!/C0@($+\("'3'"`@;OP@(H`4&"``!``#5V@@()+\(")S'"`AV -XMO`@(,(8&"'$```#_]`@(-;\("-#'"`A+OP@(T(8&"`````#5V@@(4+\("%J_ -XM"`@$V0@(L(D&"#$```#;O`@(9;\("/#'"`@KH`@(,'L&"`````"-O@@(@[\( -XM")._"`BHOP@(,)$&"``$``"OOP@(LK\(""#("`C"OP@(T`0&"`````#5V@@( -XMR;\("$3("`C5OP@(T`4'"``!``#:OP@(W[\("'3("`C;O`@(,-X&"`(```#; -XMO`@(F,@("-3("`C(L0@(\)P&"``"``!]O`@(];\("`C`"`B1F@@(L*4&"``` -XM```@P`@(^,@("#C)"`B$W0@(4*L&"``"``!/C0@((\`("&C)"`@KP`@(8+(& -XM"`````".O@@(,L`("$#`"`A]H@@(X+,&"``"``#5V@@(6\`("&7`"`A^P`@( -XMX+,&"``"``#5V@@(AL`("&7`"`C-H0@(@'D&"$(````9C0@(D\`(")S#"`@] -XMP0@(,/8&"``!``#:OP@(L<`("'3("`C&P`@(4/4&"`````#5V@@(SL`("-O` -XM"`CPP`@($.\&"`````#:OP@(]\`("(C)"`@3P0@(L0@(<-P&"`(```#;O`@( -XM7,P("(3,"`@```````````````````````````````!.;R!C0!A9&0`8W-C;W!E -XM+F]U=`!C&5C(&-S8V]P92`M9&P@+68@)7,`````,S$R?"5D.B!N;R!S=6-H(&-S -XM8V]P92!S97-S:6]N```E2!C7!E.B!U2!Y;W4@;W(@2!Y;W4````Q,S!\)7,Z(&YO="!S;W5R8V5D.B!W2!M87!P960`,3,T -XM?%1H92`E2!B92!R96%D```Q-#9\)7,Z(')E860@;&]C -XM:R!W87,@=6YA=F%I;&%B;&4````Q-#E\3F\@8F%C:V=R;W5N9"!S8W)E96YS -XM('1O(&1I&5C=71E`'!Q&ET960`0V]N=&EN=65D`$5- -XM5"!T'!IF4@;&EM:70@97AC965D960````````` -XM```````&````G]X("`X```"JW@@("@```+;>"`@4````P-X("!,```#-W@@( -XM!P```-?>"`@(````X-X("`$```#YW@@(!`````#?"`@=````%-\("`(````H -XMWP@(%P```#+?"`@&````/]\("`D```!(WP@(#0```$_?"`@;````6]\("`,` -XM``!SWP@("P```'C?"`@1````B]\("`P```">WP@(#P```*[?"`@%````N=\( -XM"!(```#(WP@(%0```-+?"`@6````YM\("!````#[WP@('@```!#@"`@?```` -XM)N`("!H````\X`@('````%+@"`@8````9N`("!D```!]X`@(,34R?'-H:69T -XM=VED=&@@;W!T:6]N('-E="!T;R`P`%)%(&5R+EM=)"H`,34S?$-O=6YT(&]V97)F;&]W`#$U-'Q#;W5N="!U;F1E -XM2!N -XM;W0@8F4@8V]M8FEN960@=VET:"!T:&4@8R!F;&%G(&EN('9I(&UO9&4`PL(& -XM"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@C" -XMP@8(/<(&"#W"!@CXQ@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&".G& -XM!@@]P@8(VL8&"#W"!@@]P@8(6,8&"%C&!@A8Q@8(6,8&"%C&!@A8Q@8(6,8& -XM"%C&!@A8Q@8(6,8&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@] -XMP@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W" -XM!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(+\8& -XM"#W"!@@]P@8(/<(&"!S&!@@]P@8(/<(&"#W"!@@]P@8(#<8&"#W"!@@]P@8( -XM/<(&"/[%!@@]P@8(FL(&"+_5!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5 -XM!@BCU08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@B-U08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(&]8&"+K.!@BZS@8( -XMNLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(!=8&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"(W5 -XM!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@@QU@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@BZS@8(NLX&"+K.!@COU08(,38T?"5S.B!T:&4@=&%G)W,@;&EN92!N -XM=6UB97(@:7,@<&%S="!T:&4@96YD(&]F('1H92!F:6QE````,38V?"5S.B!S -XM96%R8V@@<&%T=&5R;B!N;W0@9F]U;F0`````,34Y?$QE2!A="!T:&4@;&%S -XM="!T86<@;V8@=&AI'5S86=E -XM(%MC;61=/$-2/B(*````1F]R(&$@=FD@:V5Y('5S86=E('-T871E;65N="!E -XM;G1E5T\0U(^(@H`````5&AE("5S(&ME>2!H87,@ -XM;F\@8W5R&ET+"!E;G1E0`Q-S1\57-A9V4Z("5S -XM`#$T-'PE2!F:6QE(&YA;65S```` -XM,C@S?%1H92`E"!T97)M:6YA;"!I -XM;G1E"!T97)M:6YA;"!I;G1E2!O9B!#86QI9F]R;FEA+"!" -XM97)K96QE>2X````Q-S5\5&AE('9IB5C`#(U -XM,WQ72!S8W)E96YS`%Y#`%MC;W5N=%U>1`!;8V]U;G1=7D4`7D4@2!C:&%R86-T97)S`%MC;W5N=%U>2@!>2B!M;W9E(&1O=VX@8GD@;&EN97,` -XM7DP`7DP@2!L:6YE2!L:6YE -XM4@!>4B!R961R87<@5@!>5B!I;G!U="!A(&QI -XM=&5R86P@8VAA"!M;V1E`%Y=`%Y= -XM('1A9R!P=7-H(&-U`%Y>('-W:71C:"!T;R!P&ET`%M;`%M;(&UO=F4@8F%C:R!S96-T:6]N`%U=(&UO=F4@ -XM9F]R=V%R9"!S96-T:6]N`"!>(&UO=F4@=&\@9FER2!C;VQU;6YS`&U;82UZ70`@;2!S970@;6%R:P`@;B!R97!E870@ -XM;&%S="!S96%R8V@`6V-O=6YT76\`(&\@87!P96YD(&%F=&5R(&QI;F4`6V)U -XM9F9EB!R97!O02!S96%R8V@@9F]R=V%R9"!F;W(@8W5R -XM0R!I;G1E2!L:6YE2!L:6YE2!L -XM:6YE2!T -XM97AT('1O(&UO=&EO;B!I;G1O(&$@8W5T(&)U9F9E<@````!;;&EN95UZ6W=I -XM;F1O=U]S:7IE75LM?"Y\*WQ>?#Q#4CY=```````````````````````````` -XM````````````H(,'"")`5`"H[0@(!/@(")![!P@@``0`LNT("+SM"`@````` -XM`````-3M"`@H^`@(<'T'""``!`#7[0@(8/@("-!Z!P@```0`X>T(".OM"`B` -XM?`<((``$``/N"`@-[@@(0)4'"``````G[@@(*NX("&!>!P@@`$0`.>X("$/N -XM"`@`````````````````````,'X'"!@`1`!>[@@(:.X("``````````````` -XM````````<@<(`````'[N"`B![@@(P'X'"$@`1`"2[@@(D/@("#!^!P@8`$0` -XMG.X("*;N"`@`````````````````````$'\'"!@`1`"\[@@(QNX("``````` -XM````````````````<@<(`````-KN"`C=[@@(`````````````````````!`] -XM!P@@0```[NX("/'N"`C0?0<((``$`/SN"`@&[P@(```````````B[P@()>\( -XM"-!Y!P@`````0N\("$7O"`@`````````````````````,'L'"```!`!<[P@( -XM9N\("*!!!P@````">N\("'WO"`@``````````(_O"`B\^`@(D$0'"`````"; -XM[P@(GN\("(!`!P@@0!``M.\("+?O"`B@0P<(`````,_O"`C2[P@(```````` -XM`````````````*!X!P@@`$0`[>\("/3X"`BP/@<((``L`ACY"`@\^0@(```` -XM`````````````````*!%!P@@``X`^.\("`?P"`A@=P<(@`!$`"7P"`@O\`@( -XMH&0'"")`1`!&\`@(2/`(""!#!P@`````/+L("%GP"`@P9`<(*`!#`'#P"`AD -XM^0@($)('"")`1`!X\`@(@?`("-".!P@B0$0`E_`("*#P"`@````````````` -XM````````,'X'"$@`1`"Y\`@(C/D("%`T!P@@`$0`PO`("+CY"`@0?P<(2`!$ -XM`,OP"`C<^0@(``````````!!\0@(U/`("/")!P@B@$``[_`("/WP"`@`7@<( -XM(`!``+BB"`@/\0@(```````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````,#H'"``````J\0@(0_$("``U!P@@`$0` -XM4?$("`CZ"`B@0@<((``L`%KQ"`AP\0@(`````````````````````"!"!P@@ -XM`"P`CO$(""SZ"`@0B@<((H!``*3Q"`BR\0@(T"X'""``!`'%\0@(S?$("/!6 -XM!P@@``P`W_$(".CQ"`APZ0<((`!$`/[Q"`@'\@@(```````````<\@@(+?(( -XM"```````````1O(("%#R"`CP[`<((`!$`&GR"`AR\@@(4#$'""``1@",\@@( -XM3/H("%"`!PA(`$4`G_(("*CR"`@`@`<("`%%`+CR"`AT^@@(<%8'""``#`#! -XM\@@(G/H("'`]!P@@``P`RO(("-/R"`@`````````````````````8'\'"`@! -XM10#A\@@(ZO(("+!_!P@(`44`<(L("`/S"`B`A0<((H!``/:B"`@<\P@(X%T' -XM""``#``S\P@(//,("`!Q!P@@`(P`4?,("+SZ"`B01`<(`````%OS"`A=\P@( -XMX%,'""``#`!R\P@(>_,("```````````D?,("*+S"`A0,@<((`!&`,#S"`C@ -XM^@@(T.('""`````$[P@(T_,("```````````````````````\0<((`!$`._S -XM"`CX\P@((/$'""``C``0]`@(#/L("```````````(?0("#+T"`@@]P<(```` -XM`#_T"`A"]`@(,(H'""!`1`!8]`@(6_0("```````````````````````C`<( -XM($!$`(H&"0AP]`@(\%\'""``1``!P@@`$0` -XMJO4("+/U"`C`5`<((``,`,OU"`C4]0@(,'X'"!@`1`#L]0@(]?4("!!_!P@8 -XM`$0`"_8("!3V"`B@>`<((`!$`"CV"`@Q]@@(<&0'"````@!*]@@(4?8("%"% -XM!P@B@$``]J(("%WV"`C`70<((``,`'/V"`A\]@@(`'`'""``C`"1]@@(5/L( -XM"``````````````````````@<@<((``,`)OV"`BN]@@(8%('""``C`##]@@( -XMU/8(",`S!P@@`$8`[/8("'C["`A`X@<((````/R6"`C_]@@(```````````` -XM`````````.#P!P@@`$0`$_<("!SW"`@0\@<((`",`#'W"`A"]P@(0/,'""`` -XMK`!6]P@(I/L("&#T!PA```4`T/L("'3W"`@P:0<((D!$`(WW"`B6]P@(X%X' -XM""``1`"M]P@(MO<(",!K!P@B0$0`R/<("-'W"`@0X0<((``,`.OW"`CT]P@( -XM,S`W?$YO(&5X(&-O;6UA;F0@=&\@97AE8W5T90`Q.#!\3F\@<')E=FEO=7,@ -XM9FEL92!T;R!E9&ET````,C`W?%1H92!1(&-O;6UA;F0@/!P@HCP<(*(\'""B/!P@HCP<(=X\'""B/!PAWCP<(*(\'""B/ -XM!P@HCP<(*(\'"(*/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\' -XM""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(@H\'""B/!P@HCP<( -XM*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@H -XMCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/ -XM!P@HCP<(*(\'""B/!P@HCP<(=X\'"#$Y-'Q.;R!M;W)E(&-H87)A8W1E\!PBJNP<(;ZP'"("[!PAOK`<(;ZP'"+^^!PA6O@<(;ZP'"$*_!PB_O@<( -XM/;X'"#V^!PAOK`<($[X'"(B]!PA@O0<(,KP'"%6[!PCYM`<(G+H'"(6Z!PB% -XMN@<(#K4'"/FT!PAIN@<(^;0'"/FT!PCYM`<(^;0'"$FZ!P@R,#%\0G5F9F5R -XM2!I;B!T:&4@9FER,'"#(P-GQ.;R!C:&%R86-T97)S('1O(&1E;&5T90#O]P<(,?@'""KX!P@J -XM^`<(0O@'"%7X!P@:^`<([_<'"._W!PCO]P<([_<'"/OW!PA5^`<($`@(""@( -XM"`@E#0@(YP0("$$-"`APX`<((``L`.D+"0C_"PD(,C,U?$YU;6)E2!I;B!C;VUM86YD(&UO9&4` -XM,C,V?$EN=&5R7,@9&ES8V%R9&5D`````#(S,7Q);G1E7,@9&ES8V%R9&5D```E9"!S8W)E96YS(&)A8VMG6]U'`@)````1L#.Z0!```!````]'C__\`!```````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````````$^-"`@`````+!()"``````` -XM`````````````````````0```%P````"````7@````,````$````!````!(` -XM```%````%`````8````:````!P```#H````(````#0````D````;````"@`` -XM``P````+````&`````P````*````#0```'T````.````*0````\````)```` -XM$`````@````1````%0```!(````1````$@```!8````3````%P```!0````P -XM```````````````````````````````````````````````5`````0```"]D -XM978O<'1Y6%@``"SS"`@``````````````````````````!0``````````7I2 -XM``%\"`$;#`0$B`$``!P````<````+'?__X)`$"`8```#XA00("@```-`$```+````$````!4``````````P```#02 -XM"0@"````B`0``!0````1````%P```!B7!`@1````N)8$"!(```!@````$P`` -XM``@```#^__]OF)8$"/___V\!````\/__;TB5!`@````````````````````` -XM``````````````````````````````````````````#_____`````/____\` -XM`````````%`1"0@``````````,J;!`C:FP0(ZIL$"/J;!`@*G`0(&IP$""J< -XM!`@ZG`0(2IP$"%JIP$"(J!`@:G@0(*IX$"#J>!`A* -XMG@0(6IX$"&J>!`AZG@0(BIX$")J>!`BJG@0(NIX$",J>!`C:G@0(ZIX$"/J> -XM!`@*GP0(&I\$""J?!`@ZGP0(2I\$"%J?!`AJGP0(>I\$"(J?!`B:GP0(JI\$ -XM"+J?!`C*GP0(VI\$".J?!`CZGP0("J`$"!J@!`@JH`0(.J`$"$J@!`A:H`0( -XM:J`$"'J@!`B*H`0(FJ`$"*J@!`BZH`0(RJ`$"-J@!`CJH`0(^J`$"`JA!`@: -XMH00(*J$$"#JA!`A*H00(6J$$"&JA!`AZH00(BJ$$")JA!`BJH00(NJ$$",JA -XM!`C:H00(ZJ$$"/JA!`@*H@0(&J($""JB!`@ZH@0(2J($"%JB!`AJH@0(>J($ -XM"(JB!`B:H@0(JJ($"+JB!`C*H@0(VJ($".JB!`CZH@0("J,$"!JC!`@JHP0( -XM.J,$"$JC!`A:HP0(:J,$"'JC!`B*HP0(FJ,$"*JC!`BZHP0(RJ,$"-JC!`CJ -XMHP0(^J,$"`JD!`@:I`0(*J0$"#JD!`A*I`0(6J0$"&JD!`AZI`0(BJ0$")JD -XM!`BJI`0(NJ0$",JD!`@``````````````````````````````````````"1& -XM'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6YA -XM;6EC`"YC=&]R!```-`$```` -XM``````````$`````````-P```/___V\"````2)4$"$@5``!0`0``!``````` -XM```"`````@```$0```#^__]O`@```)B6!`B8%@``(`````4````!````!``` -XM``````!3````"0````(```"XE@0(N!8``&`````$``````````0````(```` -XM7`````D````"````&)<$"!@7``"(!```!`````L````$````"````&4````! -XM````!@```*";!`B@&P``$0``````````````!`````````!@`````0````8` -XM``"TFP0(M!L``"`)``````````````0````$````:P````$````&````X*0$ -XM".`D```\Y0,````````````0`````````'$````!````!@```!R*"`@<"@0` -XM#```````````````!`````````!W`````0````(```!`B@@(0`H$`"N%```` -XM`````````"``````````?P````$````"````;`\)"&R/!``4```````````` -XM```$`````````(T````!`````P`````0"0@`D`0`%`$`````````````(``` -XM``````"3`````0````(````4$0D(%)$$`#P```````````````0````````` -XMG0````8````#````4!$)"%"1!`#0````!0`````````$````"````*8````! -XM`````P```"`2"0@@D@0`"```````````````!`````````"M`````0````,` -XM```H$@D(*)($``@```````````````0`````````M`````$````#````,!() -XM"#"2!``$```````````````$`````````+D````!`````P```#02"0@TD@0` -XM4`(`````````````!`````0```"^````"`````,```"@%`D(H)0$`.`,```` -XM`````````"``````````PP````$``````````````*"4!`"I$0`````````` -XM```!``````````$````#``````````````!)I@0`S````````````````0`` -X%```````` -X` -Xend -5f6cb34c34598fc980a32aede89eafe8 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.err b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.eval b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.out b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.sh b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.sh deleted file mode 100644 index 4140b8cb..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/elfcopy-noops-5.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest elfcopy-noops-5 tc/elfcopy-noops-5 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${ELFCOPY} tcsh tcsh.new" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/in/elfcopy-noops-5.in.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/in/elfcopy-noops-5.in.shar deleted file mode 100644 index f7b6173e..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/in/elfcopy-noops-5.in.shar +++ /dev/null @@ -1,7116 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# tcsh.uu -# -echo x - tcsh.uu -sed 's/^X//' >tcsh.uu << 'END-of-tcsh.uu' -Xbegin 755 tcsh -XM?T5,1@$!`0D```````````(``P`!````(*0$"#0```"HVP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(7)\$ -XM`%R?!``%`````!````$`````H`0``"`)"``@"0AT,0``](P"``8`````$``` -XM`@```$#.!`!`3@D(0$X)"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&0PGP0`,!\)"#`?"0@L````+`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*`````(``````````````"9````.0````````!1```` -XME@````````"#````G````',```",````2@```%X`````````4@````````") -XM````E```````````````<@```)\```!G`````````'H```!F````C@```$X` -XM``"'````%`````0`````````1`````,`````````#@```$(```"&````=P`` -XM````````````%P```)L```"-````-`````````!D`````````)X````````` -XM*P````````!V````;`````````!-````DP````````!%````?@```#L````` -XM````D0`````````W````````````````````)0````````!P`````````#`` -XM``!A````BP`````````V````20````````!M````E0````````!?````?0`` -XM`&D`````````:P````````!0````8@```'\````M````>``````````````` -XM``````````!6`````````&\```""````:@```)@```!&````,@````````!U -XM````6P````````":````3````(H````*````A0```````````````````)`` -XM``!8````;@```)T````8`````````(0```"2````5P```(`````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````$0````8```````````````````````````````$``````````@`````` -XM```>````````````````````#```````````````)@````<````I```````` -XM```````G`````````"X````<`````````"`````C```````````````-```` -XM+P`````````D````%@``````````````````````````````/0````4````H -XM`````````#4````9````00``````````````````````````````$P```$@` -XM`````````````````````````````````````````````#H````````````` -XM`$`````X`````````!`````)````7````"(````_````&@````````!@```` -XM`````````````````````&@`````````5````"$```!9`````````!(````` -XM```````````````=``````````\````;````+`````````!Q`````````$<` -XM```Q``````````````!Y````8P``````````````6@```!4```!\````*@`` -XM````````````B````$L`````````=`````L```"!`````````!\```!#```` -XM,P```&4```![`````````$\```!3````70```#P`````````CP````````"7 -XM````50```#X`````````````````````````I`0````````S````$@```)$$ -XM````````,P```!(```"T`@```````$,````2````$0````````"U````$@`` -XM`(P"`````````````!(```"2`@```````"L````2````RP,````````R```` -XM$@```&\!````````*````!(```"Y`@`````````````2````2@$````````` -XM````$@```#0!````````:P$``!(```#K!````````#@````2````:0$````` -XM``#]"```$@```!D```!`3@D(`````!$`\?_W`@`````````````2````I0(` -XM````````````$@```"(`````````U`,``!(```"#`0```````#,````2```` -XMU`0`````````````$@```'L"````````(P```!(````+!0`````````````2 -XM````$@0````````=````$@```#0#`````````````!(````K`0```````!T` -XM```2````B@0`````````````$@````,"````````5P```!(```#(```````` -XM`#D````2````?@$``,"N!@C>!```$@`,`"`#````````E````!(```#(`@`` -XM`````#D````2````100`````````````$@```"@`````````E@```!(```"2 -XM`0`````````````2````80(```````!S````$@```.$!``"`40D(!````!$` -XM%P#:```````````````2````?0,````````<````$@```#L!```````````` -XM`!(````'!``````````````2````!P$```````!/````$@```.0$```````` -XM<@```!(```#!`P````````4````2````"P0```````!.!0``$@```%P#```` -XM````W0,``!(```#!```````````````2````(@(```````#8````$@```#$` -XM```(FP0(`````!(`"@!)`@`````````````2````HP,`````````````$@`` -XM`+`#````````,P$``!(````-`@`````````````2````M@$````````+```` -XM$@```&\$````````*@```!(```";```````````````2````X``````````` -XM````$@```)<"``#8=0D(!````!$`%P!#`P```````$T````2````2P,````` -XM````````$@```+,"````````*P```!(```#$!``````````````2````YP`` -XM``````#&!```$@```"P#````````(0(``!(```#9`0```````!4"```2```` -XM`P`````````````2````9@0```````!9 -XM````$@```%(#`````````````!(```"0`P`````````````2````=P,````` -XM```[````$@```!0#````````>````!(```#"`0```````$P````2````10`` -XM`/RP"`@`````$@`-`,X"````````C`(``!(```#:`@```````!`````2```` -XM_0(````````E`0``$@```/X#````````'0```!(```#:!````````.T````2 -XM````0@$`````````````$@```#X#`````````````!(```!D`P``X%T)"`0` -XM```1`!<`^P`````````E````$@```",!`````````````!(````\`@`````` -XM`&<````2````[@$```````!?````$@```)X$`````````````!(```!*!``` -XM,*<&"&,````2``P`%0(````````_````$@```)\$````````0P```!(```"H -XM`0```````,,````2````J@(```````!4````$@```!<%``!T40D(`````!`` -XM\?_0```````````````2````EP,```````!#````$@```*\!````````,P`` -XM`!(```!W`0`````````````2````2P```"Q/"0@`````$0#Q_QL$```````` -XM@0```!(````J!0``]*P+"``````0`/'_``4`````````````$@```(`$```` -XM````5P```!(````N!````````&(#```2````]0$```````!A````$@```$X$ -XM````````DP```!(```"7`0`````````````2````)P0````````K````$@`` -XM`&(!`````````````!(```"K!````````!P````2````M`0````````````` -XM$@```$0$`````````````!(````;`0`````````````2````RP0```````"C -XM````$@```.<#````````4@```!(````;`P`````````````2````>`0````` -XM````````$@```!`!````````B@```!(```"Z```````````````2````4P0` -XM``````#($0``$@```&$``````````````"````#+`0```````(H````2```` -XMOP(```````!,````$@```(D!`````````````!(````\`P```````"@````2 -XM````=0`````````4`0``$@```(("`````````````!(```"?`@`````````` -XM```2`````&QI8FYC=7)S97,N@<```(`+P4```````"`40D(!2,``(A1"0@%20`` -XMW%T)"`5?``#@70D(!7(``#A/"0@'`0``/$\)"`<"``!`3PD(!P,``$1/"0@' -XM!```2$\)"`<%``!,3PD(!P8``%!/"0@'!P``5$\)"`<(``!83PD(!PD``%Q/ -XM"0@'"@``8$\)"`<+``!D3PD(!PP``&A/"0@'#0``;$\)"`$\)"`<2``!\3PD(!Q,``(!/"0@'%```A$\)"`<5``"(3PD( -XM!Q8``(Q/"0@'%P``D$\)"`<8``"43PD(!QD``)A/"0@'&@``G$\)"`<;``"@ -XM3PD(!QT``*1/"0@''@``J$\)"```"04`D(!V```)10"0@'80`` -XMF%`)"`=B``"<4`D(!V,``*!0"0@'9```I%`)"`=E``"H4`D(!V8``*Q0"0@' -XM9P``L%`)"`=H``"T4`D(!VD``+A0"0@':P``O%`)"`=L``#`4`D(!VT``,10 -XM"0@';@``R%`)"`=O``#,4`D(!W```-!0"0@'<0``U%`)"`=S``#84`D(!W0` -XM`-Q0"0@'=0``X%`)"`=V``#D4`D(!W<``.A0"0@'>0``[%`)"`=Z``#P4`D( -XM!WL``/10"0@'?```^%`)"`=^``#\4`D(!W\```!1"0@'@```!%$)"`>!```( -XM40D(!X,```Q1"0@'A0``$%$)"`>&```440D(!X<``!A1"0@'B```'%$)"`>) -XM```@40D(!XH``"11"0@'BP``*%$)"`>,```L40D(!XT``#!1"0@'C@``-%$) -XM"`>/```X40D(!Y```#Q1"0@'D0``0%$)"`>2``!$40D(!Y,``$A1"0@'E``` -XM3%$)"`>5``!040D(!Y8``%11"0@'EP``6%$)"`>9``!<40D(!YH``&!1"0@' -XMFP``9%$)"`><``!H40D(!YT``&Q1"0@'G@``<%$)"`>?``"#[`SHX`D``.B[ -XM%00`@\0,PP```/\U,$\)"/\E-$\)"`````#_)3A/"0AH`````.G@_____R4\ -XM3PD(:`@```#IT/____\E0$\)"&@0````Z<#_____)41/"0AH&````.FP____ -XM_R5(3PD(:"````#IH/____\E3$\)"&@H````Z9#_____)5!/"0AH,````.F` -XM_____R543PD(:#@```#I````.GP_O___R5X3PD(:(````#IX/[___\E?$\)"&B(````Z=#^____ -XM)8!/"0AHD````.G`_O___R6$3PD(:)@```#IL/[___\EB$\)"&B@````Z:#^ -XM____)8Q/"0AHJ````.F0_O___R603PD(:+````#I@/[___\EE$\)"&BX```` -XMZ7#^____)9A/"0AHP````.E@_O___R6<3PD(:,@```#I4/[___\EH$\)"&C0 -XM````Z4#^____):1/"0AHV````.DP_O___R6H3PD(:.````#I(/[___\EK$\) -XM"&CH````Z1#^____);!/"0AH\````.D`_O___R6T3PD(:/@```#I\/W___\E -XMN$\)"&@``0``Z>#]____);Q/"0AH"`$``.G0_?___R7`3PD(:!`!``#IP/W_ -XM__\EQ$\)"&@8`0``Z;#]____)!/"0AH4`$``.E`_?___R7D3PD( -XM:%@!``#I,/W___\EZ$\)"&A@`0``Z2#]____)>Q/"0AH:`$``.D0_?___R7P -XM3PD(:'`!``#I`/W___\E]$\)"&AX`0``Z?#\____)?A/"0AH@`$``.G@_/__ -XM_R7\3PD(:(@!``#IT/S___\E`%`)"&B0`0``Z<#\____)010"0AHF`$``.FP -XM_/___R4(4`D(:*`!``#IH/S___\E#%`)"&BH`0``Z9#\____)1!0"0AHL`$` -XM`.F`_/___R444`D(:+@!``#I%`)"&B``@``Z>#Z____)7Q0"0AHB`(``.G0^O___R6`4`D(:)`"``#I -XMP/K___\EA%`)"&B8`@``Z;#Z____)8A0"0AHH`(``.F@^O___R6,4`D(:*@" -XM``#ID/K___\ED%`)"&BP`@``Z8#Z____)910"0AHN`(``.EP^O___R684`D( -XM:,`"``#I8/K___\EG%`)"&C(`@``Z5#Z____):!0"0AHT`(``.E`^O___R6D -XM4`D(:-@"``#I,/K___\EJ%`)"&C@`@``Z2#Z____):Q0"0AHZ`(``.D0^O__ -XM_R6P4`D(:/`"``#I`/K___\EM%`)"&CX`@``Z?#Y____);A0"0AH``,``.G@ -XM^?___R6\4`D(:`@#``#IT/G___\EP%`)"&@0`P``Z<#Y____)<10"0AH&`,` -XM`.FP^?___R7(4`D(:"`#``#IH/G___\ES%`)"&@H`P``Z9#Y____)=!0"0AH -XM,`,``.F`^?___R744`D(:#@#``#IA0"0AH8`,``.D@^?___R7L4`D(:&@#``#I$/G___\E\%`)"&AP`P``Z0#Y -XM____)?10"0AH>`,``.GP^/___R7X4`D(:(`#``#IX/C___\E_%`)"&B(`P`` -XMZ=#X____)0!1"0AHD`,``.G`^/___R4$40D(:)@#``#IL/C___\E"%$)"&B@ -XM`P``Z:#X____)0Q1"0AHJ`,``.F0^/___R4040D(:+`#``#I@/C___\E%%$) -XM"&BX`P``Z7#X____)1A1"0AHP`,``.E@^/___R4<40D(:,@#``#I4/C___\E -XM(%$)"&C0`P``Z4#X____)211"0AHV`,``.DP^/___R4H40D(:.`#``#I(/C_ -XM__\E+%$)"&CH`P``Z1#X____)3!1"0AH\`,``.D`^/___R4T40D(:/@#``#I -XM\/?___\E.%$)"&@`!```Z>#W____)3Q1"0AH"`0``.G0]____R5`40D(:!`$ -XM``#IP/?___\E1%$)"&@8!```Z;#W____)4A1"0AH(`0``.F@]____R5,40D( -XM:"@$``#ID/?___\E4%$)"&@P!```Z8#W____)511"0AH.`0``.EP]____R58 -XM40D(:$`$``#I8/?___\E7%$)"&A(!```Z5#W____)6!1"0AH4`0``.E`]___ -XM_R5D40D(:%@$``#I,/?___\E:%$)"&A@!```Z2#W____)6Q1"0AH:`0``.D0 -XM]____R5P40D(:'`$``#I`/?__P````!5B>564X/L$(/D\(M=!(G1C72=#(7; -XMB378=0D(?C:+10B%P'0OHP`@"0@/MA"$TG0C@\`!ZPH/MA"#P`&$TG04@/HO -XM=?&C`"`)"`^V$(/``832=>RX0$X)"(7`=#2)#"3H5_[__\<$)/RP"`CH2_[_ -XM_^AR]O__C44(B70D"(E$)`2)'"3HYQL``(D$).A+_?__Z-;X___KS9"0D)"0 -XMD)"058GE@^P(@#WD70D(`'0,ZQR#P`2C""`)"/_2H0@@"0B+$(72=>O&!>1= -XM"0@!R<.058GE@^P(H2A/"0B%P'02N`````"%P'0)QP0D*$\)"/_0R<.0D)"0 -XMD)"0D)"0D)"058GE@^P8Z%77``#'!>AV"@@`````QT0D!!````#'!"0````` -XMZ->``0"CM'8*",=$)`@!````QT0D!`(```")!"3HUO;__\=$)`01````QP0D -XM`0```.BF@`$`H\R7"@C'1"0(`0```,=$)`0"````B00DZ*7V___'1"0$$@`` -XM`,<$)`(```#H=8`!`*,$=@H(QT0D"`$```#'1"0$`@```(D$).AT]O__QT0D -XM!!,```"AM'8*"(D$).A#@`$`HT29"PC'1"0(`0```,=$)`0"````B00DZ$+V -XM__^A!'8*"(D$).A%_/__H_R9"PBAS)<*"(D$).@S_/__H^!U"0C)Z3S7``"- -XMM@````"-OP````!5B>6#[`B+10B+$(72=23'1"0$Q)@*",<$))`O"0CHO>`! -XM`#WX;PD(=!6)10C)Z0WP`P")!"3HY9\#`(7`=>O),<##C;8`````C;PG```` -XM`%6)Y5=64X/L'(MU"(-^"/\/A%@!``"+/;AW"@BAO'<*",<%N'<*"`````#' -XM!;QW"@@`````A?^)1?!^&3';B?:+5?"+!)J#PP&)!"3H7X,#`#G[=>N+1?") -XM!"3H4(,#`(U&3,=$)`@D(```B40D!,<$)*!W"@CH8?O__Z&T=@H(B00DZ!A[ -XM`0"+!J/\70D(BT8(H[1V"@B#?@3_=!6A1)D+"(D$).CV>@$`BT8$HT29"PB# -XM?@S_=!6AS)<*"(D$).C;>@$`BT8,H\R7"@B#?A#_=!6A!'8*"(D$).C`>@$` -XMBT80HP1V"@B+1B"CD'8*"(M&-*.\F`H(BT8DHTB:"PB+1BBC2'<*"(M&+*.T -XMF`H(BT8PHS"9"PB+1A2CP'8*"(M&&*/@F0L(BT87UW#HXR8"@CKNHM&0(7`=.J+"(7)=.3'1"0$Q)@*",<$ -XM)"0V"0CHDMX!`(7`=,S'10@D-@D(@\0<6UY?7>EKX`$`C70F`(V\)P````!5 -XMB>575E.!["P!``"A+)H+"(L5*)H+"(F%'/___Z$DF@L(B948____BQ4@F@L( -XMB844____H1R:"PB)E1#___^+%1B:"PB)A0S___^A%)H+"(F5"/___XL5$)H+ -XM"(F%!/___Z$,F@L(B94`____BQ4(F@L(B87\_O__H02:"PB)E?C^__^+%0": -XM"PB)A?3^__^)E?#^___H-7,``(,%`%X)"`&)A>3^___'!"0`F@L(Z,CT___H -XM=YP!`*'L70D(HW!V"@BAP)@*"(7`=!R+10B%P`^$V@$``,<%P)@*"`````#H -XMJGT!`.O`H?R8"@B%P`^%^P,``*&,=@H(A"0B% -XMP'02B00DZ*F``P#'!8!>"0@`````H91W"@B%P`^%8@(``,<$)'AV"@CHMFT! -XM`(G#H91W"@B%P`^%-P(``,=$)`20Z04(QP0D>'8*".CC=0``A=MT#:&`7@D( -XMA<`/A!,#``#'1"0$Q)@*",<$)&`R"0CHOMP!`(7`=#N+'>AV"@C'!<"8"@@! -XM````QP7H=@H(`````,<$)'AV"@CH9%$!`.C/C@$`QP7`F`H(`````(D=Z'8* -XM",<$)`````#H?_?__Z'L70D(QP7(K`L(`0```(7`#X5L`0``BTT(A"9"PB%_P^$*@$``(`]B)@*"`!T#X,]@%X)"`$9P"`%B)@* -XM"(L-[%T)"(7)=1N+%8!>"0B%TG01QP0D````0.@5<@``D(UT)@"A<'8*"(7` -XM=2>A\%T)"(7`#X1*`0``QT0D!`````#'!"1X=@H(Z,:6``"-M@````#'!"1X -XM=@H(Z"1T``#I]_W__XN%Y/[__\<%_)@*"`````")!"3HMW,``(N5'/___XN% -XM&/___XD5+)H+"(N5%/___Z,HF@L(BX40____B14DF@L(BY4,____HR":"PB+ -XMA0C___^)%1R:"PB+E03___^C&)H+"(N%`/___XD5%)H+"(N5_/[__Z,0F@L( -XMBX7X_O__B14,F@L(BY7T_O__HPB:"PB+A?#^__^)%02:"PBC`)H+".@(<0`` -XMZ7K]__^+-?!="0B%]@^%R/[__XL=3)H+"(7;#X6Z_O__C;0F`````(/H`0^? -XMP`^VP(E$)`3'!"1X=@H(Z/0#`.F._?__QP0D>'8*".A4C`$`H80@ -XM"0B%P`^%Z`$``*&`=@H(QT0D"`````#'1"0$>'8*"(D$).BZB`$`QT0D!$`K -XM!@B)PXD$).A8"0B%P'0,QP0D````0.A3<```Z!ZN`P"AU)<*"#'2 -XMQT0D$`$```#'1"0,`````,=$)`@`````A<`/G\*#Z@$)T(E$)`2)'"3H";T! -XM`*&TF0L(A<`/A4P!``"+10B%P'05BSW`=@H(A?\/A1L!``"-M"8`````QT0D -XM"`8```#'1"0$`'8)",<$)'0O"0CH%.,!`.GO_?__BSW`=@H(A?\/A-_\__^+ -XM-?!="0B%]@^%T?S__X`]B)@*"``/A<3\__^+'>"9"PB%VP^%MOS__^G)_/__ -XMC78`BY7D_O__QP7\F`H(`````(,M`%X)"`&)%"3H<7$``(N%'/___XN5&/__ -XM_Z,LF@L(BX44____B14HF@L(BY40____HR2:"PB+A0S___^)%2":"PB+E0C_ -XM__^C')H+"(N%!/___XD5&)H+"(N5`/___Z,4F@L(BX7\_O__B140F@L(BY7X -XM_O__HPR:"PB+A?3^__^)%0B:"PB+E?#^__^C!)H+"(D5`)H+"('$+`$``%M> -XM7UW#BS7@F0L(A?8/A=[^__^+'?!="0B%VP^%T/[__\<$)`````#HI/L"`.F_ -XM_O__QP0D>'8*".CCF0,`H80@"0B%P`^$__W__\<$)'AV"@CH*IX#`.GN_?__ -XMQP4X=PH(`````,=$)`3$F`H(QP0DJ$`)".A7V`$`A<")PP^$=0(``(L0A=(/ -XMA&L"``"-1>R)!"3HU.S__XL;B1PDZ$YO`0"%P(F%[/[__P^%T@(``+A8`@`` -XM`P4,7@D(.T7L#X\T`@``BP.%P`^$(@(``(G?Z;$```"+1;P+1<`/A)<```"+ -XM1:0YP@^,C````(L-#%X)"#G(?P0YRGY^H329"PB%P`^%N0(``(7;N$7)"`@/ -XMA;0"``")!"3HU'@!`,=$)`0P*@@(B<.)!"3HHG```(.][/[__P$/A.T"``"A -XM@)@*",=$)`RDL0@(QT0D"`<```#'1"0$"P```(D$).@@SP``B70D"(E<)`2) -XM!"3HL,@#`(D<).BX;P``BT<$@\<$A<`/A&H!``")!"3H(ND#`(U5C(E4)`2) -XMQHD$).BM[___A"0B#P`$Y -XMT`^-2P$``*$TF0L(A<`/A38!``")#"3H(^___XN5(/___XD4)(G#Z`=Z`P"% -XMVP^$)____XD<).AS\O__A<`/A!?___^)'"3H8_+__\>%Z/[__P````"%P'40 -XMZ?S^__^-="8`@X7H_O__`8D<).@]\O__AC^__^)="0(B50D!(D$).@WQP,`Z8K^__^)]HM%[*,,7@D(QP0D```` -XM`.@L[P,`Z&?8`P#HHJ8#`(GVZ'NJ`P"+%:1W"@B+#;1W"@BAH'<*"#,%L'<* -XM"#'1"<%T%NC9AP$`QP0D`0```.A-G@,`Z4[X__^#/=`D"0@"=>''1"0$```` -XM`,<$)`````#HZ]4#`.O+A=L/A<+^__^+A2#___^)!"3HTW@#`.GV_?__BP.) -XM!"3H9'@!`(7`B?8/A!K]__^#K>S^__\!BP.#PP2)!"3HEM,!`(7`#X\#_?__ -XMN`$```#I^?S__XUT)@"%VP^$L/W__Z&`F`H(QT0D#(VQ"`C'1"0(!@```,=$ -XM)`0+````B00DZ)/,``#I(OW__XU5C#';C84L____B10DQT0D"&````")1"0$ -XMZ&OP__^+5:P[%:B9"PB+C2#___\/G\/I[/W__Z&`F`H(QT0D#)*Q"`C'1"0( -XM!0```,=$)`0+````B00DZ#/,``")7"0$B00DZ,?%`P#I$OW__Z&`F`H(QT0D -XM#'&Q"`C'1"0(`P```,=$)`0+````B00DZ/W+``"+E>C^__^)5"0$B00DZ(O% -XM`P#IWOS__XVV`````%6)Y5>)SU:)UE.![%PA``#'1"0$`````(D$).A@;0$` -XM,=*#^/\/A`\#``"-7?")1?")'"3'1"0$0!X%".CO;```BT7PQT0D!/____^) -XM!"3HG',!`(D<)(E%\.B!;```B1PDZ"EL``"+1?#'1"0(`0```,=$)`0"```` -XMB00DZ#KI__^+7?"Z`0```(7;#XBH`@``A?;'A________=!>-19")1"0$ -XMB1PDZ-WP__^%P`^(A00``(V%P-[__\=$)`2`I@0(B00DZ&-L``"+#91W"@B% -XMR0^%!00``*'\70D(BQ7H=@H(QX70WO_______\>%S-[_______^)A<#>__^A -XMM'8*"(72QX7$WO_______XF%R-[__P^%.@(``*'`=@H(A?^)A=3>__^AX)D+ -XM"(F%V-[__Z%0=PH(B87#>__^A2)H+"(F%Y-[__Z%(=PH( -XMB87HWO__H;28"@B)A>S>__^A,)D+"(F%\-[__Z&\F`H(B87TWO__H>Q="0B) -XMA?C>__\/A;0!``#'A03?__\`````H>R9"PC'1"0()"```,=$)`2@=PH(B84( -XMW___C84,W___B00DZ!;N__^+10B%P'1JBU4(BP*%P'1AQT0D!,28"@C'!"0D -XM-@D(Z$;2`0"%P`^$#@,``(L`A<`/A`0#``")!"3H[',!`(F%_-[__XM%"(D$ -XM).C;%_-[_ -XM_P````"+50B)';1V"@C'!;QW"@@`````QP6X=PH(`````(F5`-___\<%L'<* -XM"`````#'!;1W"@@`````QP6@=PH(`````,<%I'<*"`````#H3S,!`*&T=@H( -XMQP60=@H(`````,<%O)@*"`````")!"3H&NW__X/_`<<%X)D+"`````#'!5!W -XM"@@`````QP5(=PH(`````,<%2)H+"`````#'!3"9"P@`````H\!V"@@9P"$% -XMC)@*"*&4=PH(QP6TF`H(`````(D][%T)",<%_%T)"`$```"%P`^%]0$``,<$ -XM)`````#HF?+__XV%P-[__XD$).A;:0``N@$```"!Q%PA``")T%M>7UW#H8R8 -XM"@B)A03?___I1O[__XUUD(ET)`3'!"0`````Z"+N__^#P`%T9XV%,/___XE$ -XM)`2A1)D+"(D$).@&[O__@\`!=$N+190[A33___\/A-P!``"A1)D+",=$)`3_ -XM____QP0D`````(F%Q-[__^@W<`$`QT0D"`$```#'1"0$`@```*-$F0L(B00D -XMZ.;E__^)="0$QP0D`0```.BF[?__@\`!=&>-A3#___^)1"0$H___HNV\!`,=$)`@!````QT0D!`(```"CS)<*"(D$).AJY?__B70D!,<$ -XM)`(```#H*NW__X/``71IC84P____B40D!*$$=@H(B00DZ`[M__^#P`%T38M% -XME#N%-/___P^$O````*$$=@H(QT0D!/_____'!"0"````B870WO__Z#]O`0#' -XM1"0(`0```,=$)`0"````HP1V"@B)!"3H[N3__XGVZ`MK`0#I0_S__XVV```` -XM`(,%Q*P+"`''1"0$L)`(",<$),2L"PCH-6@``.G;^___QX7\WO__`````.G[ -XM_/__D,<$),2L"PCH=&<``(,%Q*P+"`''1"0$L)`(",<$),2L"PCH^6<``.G? -XM_?__B1PDZ%QJ`0"Z`0```.GL_?__BT60.X4P____#X4U____Z6[___^+19`[ -XMA3#___\/A:7^___IW/[__XM%D#N%,/___P^%%?[__^E,_O__C;8`````58GE -XM5U93@^PD<9@`` -XMQT7P`````.E7____QT0D!#PT"0B)'"3HC./__X7`=>"+7@B-?@C'1?`"```` -XMA=L/A2[____'!"2!```0Z(MC``"+7@C'1?`"````Z1/____'!"1%```0Z'!C -XM``"+7@C'1?`!````Z?C^__^058GE4X/L%*&4=PH(BUT(AGW8@``C;0F`````*'`=@H( -XMA"0@`QP0D``````^4PC')Z+/W__^)'"2)QN@Y9```@\00B?!;7EW#BT@$ -XMAR+-S'`A?9T5HU?!,=%\`````#K#Y") -XMW\=#_#H```"+,X/#!(/^.G0$A?9U\L=#_`````"+!X7`=06_C#,)"(D\).A/ -XMV@,`BU7PBTWLB021@\(!A?:)5?!UO(G0P>`"BU7LQP0"`````(D4),=$)`3P -XM(P8(Z%UC``#'1"0,`@```,=$)`C$F`H(BTWLQP0DE#()"(E,)`3H^L\!`(M% -XM[(D$).C?8@``BU7LB54(@\0<6UY?7>E]8@``C;8`````C;PG`````%6)Y8/L -XM"*'4EPH(AA<____H>1U"0B%P'0HBT4(B00DZ(3D___' -XM1"0$$P```(M#'(D$).C1Y/__BS:%]HGS=9'KRN@&OP``C;8`````Z\N-M"8` -XM````C;PG`````%6)Y593@^P0H329"PB%P`^%B@```.AV_?__BS4`F`H(A?9T -XM2XGSBU,,]L8!=#*+0QP[!=R9"PAT)X'B___]_XE3#,=$)`0!````BT,7B)!"3HQEX``.BA -XM_O__@\0D6UW#QT0D!,28"@C'!"0`+@D(Z)?&`0"%P'1-,575E-1@>R8`0``BP&+203'1>P` -XM````QT7H`````(F%>/[__XF-=/[__\=%Y`````#'1"0$14!`)#K!8/X`G\^QT0D -XM!`````#'!"3,L0@(Z.5>`0"#^/]UXL=$)`0`````QP0D4\<(".C,7@$`@_C_ -XM=0<``(D$)+]P -XMN0@(Z#=F`0"Y!0```/RC#'8*"(G&\Z8/E,`/ML"CE)@*",<$)-:Q"`CH`=D# -XM`(D$).BIU`,`HZ28"@C'!"3>L0@(Z.C8`P")!"3HD-0#`*-T=PH(H=AU"0B) -XM!"3H/MD#`*/0EPH(B00DZ%'7`P"CV'4)",<$).>Q"`CHL-@#`(D$).A8U`,` -XMQP6,F`H((0```,<%1)H+"%X```#'!32:"P@^````QP6,=PH((P```,<%;'<* -XM"`````"CU)D+"*-,=PH(QP0D\;$(".A@V`,`QT0D"`(```#'!"2@,PD(B40D -XM!.B(S0$`BXUT_O__BP&)!"3H.-@#`(D$).C@TP,`QP7X70D(`````*/T70D( -XMQT0D!*0N"0B)!"3H[=G__X7`#Y3`#[;`B86$_O__Z`K@__^CA'8*".B`V___ -XMH\QV"@CH5N#__Z,LF0L(Z)S>__^+M73^__^CZ)@*"(L&@#@M#X3`$0``@[UX -XM_O__`@^$DQ$``,<%-)D+"`````#'!6"9"P@!````NX````#'!"3UL0@(Z*38 -XM__^%P`^5P`^VP*/`I0L(QT0D!$7)"`C'!"0`````Z%/?___'1"0$1BT2>-*D```0`=2R#PP&!^_\```!_(??#```` -XM0'7M@?O_````=MJ)'"2)]N@WV?__J0``!`!TU(,]@%$)"`$/E,(QP('[_P`` -XM``^?P"'0HV"9"PBA/&0)"(7`=`VA0&0)"(7`#X1>$0``Z'T5`P#'!"1T=@H( -XMZ&W7___HG-H#`.@WX?__H;1V"@B)!"3H=MO__X7`B<,/A$P1``")QK@%```` -XM_+_^L0@(B<'SI@^$^`0``(D<).BAU@,`B00DZ$G2`P#'1"0(`@```,<$)+PN -XM"0B)1"0$B6`$`QT0D"`(```#'!"2X+PD(B40D!.BFR0$`C9V<_O__QT0D -XM!``!``")'"3H/-S__X7`#X@]#@``QD6;`(D<).A\U`,`QP0DE#`)"(E$)`3H -XM7,L``.BG=@,`QP0D++((".AGU?__A<")PP^$Z0X``(D$)(G>OQZR"`CH0M0# -XM`(D$).CJSP,`B00DZ!)8`0#'1"0(`@```,<$)-`O"0B)1"0$Z!K)`0"Y"``` -XM`/SSI@^%P0P``,>%?/[__P$```"+M7S^__^_/K(("+D&````_(DUB'<*"(G> -XM\Z8/A3L"```QP*/DF0L(BSWDF0L(A?\/AL@@(Z&S4 -XM__^%P(G#="Z)!"3HGMO__X/X!(F%O[NR"`BY!P```/.F#X2,#0``B[5X_O__@^X!A?8/CD,.``"+E8C^ -XM__^+`H`X+0^%,@X``(U0`0^V0`&$P`^$(PX``,>%@/[__P`````Q_XG3ZS*A -XM#'8*",<%D)@*"`$```")7"0$QP0D?````(E$)`CHV%,```^V0P&#PP&$P`^$ -XM`0$``#QX=\H/ML#_)(6,MP@(N'"Y"`CI??C__XU#!8D$).D`^___B=Z_1+(( -XM"+D#````\Z8/A+']__^+A7S^__^#\`'II?W__XUT)@"#_@$/A%L'``"#A8C^ -XM__\$BXV(_O__BP&)!"3H8-$#`(D$).@(S0,`A<"CD'8*"'0HB00DZ/?,`P") -XM!"3H'U4!`,=$)`@"````QP0D0#8)"(E$)`3H)\8!`*&0=@H(B00DZ*K'`P"+ -XM#9!V"@@YP7,G@WC\7(U0_'4>,<#K"XUV`(/J!(,Z7'4'@\`!.=%R\:@!#X6. -XM!@``@^X!QP6$(`D(`````+\!````#[9#`8/#`83`#X7__O__@^X!@X6(_O__ -XM!(7V?B:+E8C^__^+`H`X+749C5`!#[9``83`=`Z+C8#^__^%R0^$E?[__X7_ -XM#Y3#BX6$_O__A<`/A<4'``"$VP^$J0```(7V#XZA````QT0D!`````"+C8C^ -XM__^+`8D$).B950$`A<")PP^(&0X``*'T70D(B00DZ+)?`P"+E8C^___'!?A= -XM"0@!````BP*)!"3H*-`#`(D$).C0RP,`H_1="0C'1"0$$````(D<).B[6P$` -XMA<"CM'8*"`^(7PT``,=$)`@!````QT0D!`(```"AM'8*"(D$).A=T?__@X6( -XM_O__!,<%A"`)"`````#HVUL!`*&T=@H(B00DZ$K7__^%P*/`=@H(#X3"!@`` -XMH!V"@B)1=RA -XMY'8*"(E%X.@E3@``QP0D`)H+".C%S___@P4`7@D(`<<%P)@*"`````"%P`^5 -XMP`^VP`L%"%X)"`^$`00``(N%C/[__XLUP'8*"(,M`%X)"`&CE'<*"(M%S(7V -XMH]!V"@B+1="CU'8*"(M%U*/8=@H(BT78H]QV"@B+1=RCX'8*"(M%X*/D=@H( -XM=`Z+'9!V"@B%VP^$^`D``(M%Z(7`#X7%!```BT7LA<`/A:D$``"AE'<*"(D$ -XM).BGV?__BPW`=@H(A%A/[__P$```#IUOG__\<%*'<*"`$` -XM``#IQ_G__\<%!%X)"`$```#IN/G__[\!````QP4DF0L(`0```.FD^?__QP4( -XM7@D(`0```.F5^?__QP60F`H(`0```.F&^?__QT7D`0```.EZ^?__QX6`_O__ -XM`0```.EK^?__QP7H70D(`0```.E<^?__OP$```#'!80@"0@`````QP64=PH( -XM`0```.D_^O__QP0D@#()".BJP`$`Z2WY___'!"1@,@D(Z)G``0#I'/G__\=% -XM[`$```#I$/G__\=%Z`$```"0Z0/Y__^_`0```,<%O)@*"`(```#'!80@"0@` -XM````Z>7X__^+E7#^__^_XK$("+D%````_(U$$_R)QO.F#X5R]___B1PDZ);* -XM`P")!"3H/L8#`(D$).AF3@$`QT0D"`(```#'!"0H,@D(B40D!.ANOP$`BYUP -XM_O__A=L/A5'W___I+_?__\<%D)@*"`$```#'!"0I````Z$5,``#I5_G__Z', -XMEPH(B00DZ+_1__^%P`^$Z_K__\<%E'<*"`$```#IW/K__\<$)`````#H0.S_ -XM_^F4^/__QP4(7@D(`0```.E&]/__H]'__X7`#X1;^O__BX6` -XM_O__A<`/A4WZ__^AA'8*"#L%+)D+"`^$/@0``.B_SO__QP`-````QP7D=0D( -XM`0```.BJSO__BP")!"3H4,S__XE$)`BA#'8*",<$)#8```")1"0$Z(M+``#I -XM^OG__XN%=/[__X/`!(F%B/[__^DV]___A=L/A`0&``")'"3H8LD#`(D$).@* -XMQ0,`B00DZ#)-`0#'1"0(`@```,<$)*0O"0B)1"0$Z#J^`0#'1"0$Q)@*",<$ -XM)*0O"0CH=K4!`,<$)*`_"0B)1"0$Z`;```#I)_3__\<$)+6R"`CH1:8#`.DH -XM_?__QP0D@#$)".B4O@$`Z2/U___'1"0$Q)@*",<$)(`Q"0CHR[0!`(7`=`S' -XM!"2`,0D(Z*NV`0#'!>29"P@`````Z0OY___'1"0$`````,<$)`,```#H],[_ -XM_^DB^/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".AX30``,2%P`^$^?K__\<$ -XM)`````#HD0L``)#IY_K__\<$)(`R"0CH'[T!`.E&^___QP0D8#()".@.O0$` -XMZ2K[__^-1`/[OV2R"`C\N08```")QO.F#X2R_/__Z0CT__^)WK\QL@@(N04` -XM``#SI@^$*_/__XG>OS:R"`BY"````/.F#Y3`#[;`B85\_O__Z1;S___'1"0( -XM`@```,=$)`3H-@D(QP0DJ#()".@\O`$`Z1[X___'1"0$+P```(G>B1PDZ,'' -XM__^%P'0#C7`$QT0D"`,```#'1"0$O"X)"(DT).@"R___A/[__P&%P`^$_NW__\<$)`Q> -XM"0CH,<;__\<$).`U"0CH.;L!`.GA[?__Z,^C`@#IF.[__Z',=@H(.P7HF`H( -XM#X6Q^___Z>CU___'!"1%R0@(Z<+N___'!8AW"@@`````QP0D1[((".A>QO__ -XMN@$```"%P'05_(G&OUH;"0BY`@```/.F#Y7`#[;0B17DF0L(Z4_Q__^AS'8* -XM"(D$).B<2P$`A<`/A!@#``"+`(D$).@*Q0,`QT0D"`(```#'!"2X+PD(B40D -XM!.@RN@$`QT0D!,28"@C'!"2X+PD(Z"ZQ`0#'!"3@/PD(B40D!.B^NP``Z2/P -XM___'!"10L@@(Z+W$`P")!"3HA>7__^E$\?__QT0D!,28"@C'!"0`,`D(Z.RP -XM`0#'!"1^L@@(B40D!.C,H0,`QT0D#.BR"`C'1"0("````,=$)`0+````H8"8 -XM"@B)!"3H!Z@``(D$).B?H0,`QP0D`````.B#YO__Z1+R___'1"0$Q)@*",<$ -XM)``P"0CHBK`!`,<$)!$7"0B)1"0$Z&JA`P#'!"0`````Z$[F__^+A73^__^+ -XM6`3IO_'__\=$)`0!````QP0D`P```.A(RO__Z9OU___'!91W"@@!````Z:;V -XM__^[`0```,>%@/[__P````#I1?/__\=$)`3$F`H(QP0DD"\)".@0L`$`ND!! -XM"0CH=N/__XL]-)D+"(7_#X4+_/__Z?O[___'1"0$Q)@*",<$))`O"0CHWZ\! -XM`+H@00D(Z$7C___IJOO__\<$)``````QR3'2N*:R"`CH*]O__^DB^___H81V -XM"@B)!"3H.4D!`(7`#X3@`@``BP")!"3H1\,#`,=$)`@"````QP0DI"\)"(E$ -XM)`3H;[@!`,=$)`3$F`H(QP0DI"\)".AKKP$`QP0DP#\)"(E$)`3H^[D``.G, -XM^?__H;R8"@B%P`^%,/O__Z%`F0L(A<`/A2/[___'1"0$`````,<$)`````#H -XM>&\``.D*^___BQ6\F`H(A=(/A73Z__^A0)D+"(7`#X5G^O__QT0D!`````#' -XM!"0`````Z$1O``#I3OK__X/[`70G@_L"C;0F``````^$50(``(7;#X4=`@`` -XMQP6T=@H($````.EU\O__QP6T=@H($0```.EF\O__H>29"PB)!"3HU\P"`.D\ -XM]?__Z'W0`@#'!"0!````C;8`````Z"O1`@#I[/7__\<%Y'4)"`$```#H(\?_ -XM_XL`B00DZ,G$__^)1"0(B[6(_O__BP;'!"0V````B40D!.@!1```Z:WQ___' -XM!"0>L@@(Z>'\__^)%"3H],/__^E"^___QT0D!`$```"[$@```,<$)!(```#H -XM%LC__\=$)`0!````QP0D%0```.@"R/__QT0D!`$```#'!"06````Z.['___' -XM!"02````Z"+)__^%P`^$D0$``(UUG.MD.P753BU4(A=)X-(L=(%X)"(G(ZPF0 -XMC70F`#G(=!R#Z@&#^O]T)XM`!#T<7@D(=>J)V#G(=>B-="8`6S'`7<.+`3T< -XM7@D(=06A'%X)"(M`#%M=PXVT)@````!5B>5=QP447@D(`````,.058GE4X/L -XM!(M="(M#"(7`=!/'0P0`````QP,`````@\0$6UW#BT,,B00DZ)%-`P")70B# -XMQ`1;7>F$30,`C70F`%6)Y5=64X/L+(M5"(72#Y3`=0^+70R%VW4(@\0L6UY? -XM7<.$P,=%Z`````#'1>P`````QT7P``````^%80$``,=$)`0`````B10DZ('O -XM``")1>#'1"0$,"H("(M%X(D$).B;0@``BT7@B00DZ'"[`P#'1"0$@`$``(D$ -XM).A@1`$`B470@\`!#X3_````QT0D!,28"@C'!"2@-0D(Z,"I`0`]^&\)"'0* -XMBPB%R0^%&@$``+[_____H>AV"@B-?>C'!>AV"@@`````B478H!^QQ>"0AT\HM5W(72=+B+0PR#[@&)/"2)1"0$Z"9&`0#' -XM!"1\N0@(B40D!.CFF0,`@_[_=;^0BT70B00DZ/5#`0"+1=2CS)<*"(M%V*/H -XM=@H(BT7@B00DZ,I```"#Q"Q;7E]=PXGVQT0D!,28"@C'!"1@-0D(Z*RH`0`] -XM^&\)"'0GB00DZ/VW`P")1>#IA_[__XD$).@-N@,`B00DZ+&\__^)QNG4_O__ -XMQT0D!,28"@C'!"20+PD(Z&JH`0#'1"0$)#4)"(D$).@JMP,`B47@Z43^__^) -XM]E6)Y5.#[!2+70C'!11>"0@!````QT0D!&#"0AT%C#2BT`$@\(!/1Q>"0AU\XT4E00```")%"3H -XM7$L#`(L=(%X)"('['%X)"(G'B<9T&XM##(D$).BOM@,`B0:+6P2#Q@2!^QQ> -XM"0AUY<<&`````,=$)`3P(P8(B3PDZ,D_``#'1"0,`@```,=$)`C$F`H(B7PD -XM!,<$)``V"0CH::P!`(D\).A1/P``B3PDZ/D^``"#Q!Q;7E]=PY!5B>564X/L -XM$,=$)`3$F`H(QP0D`#8)".ATI@$`A<")PP^$S0```(L`A<`/A,,```"+#2!> -XM"0B!^1Q>"0AT*XL!BU$$B5`$BU$$B0([#629"PATW8D,).CU^___BPT@7@D( -XM@?D<7@D(==6A9)D+"*,<7@D(HR!>"0C'`!Q>"0C'0`0<7@D(BS.%]G57ZUN- -XM=@"+`(7`=%+'1"0$`0```,<$)!````#HQDD#`(G#BP:)!"3HFK4#`(/&!,=# -XM"`````")0PRA9)D+"(E#!*%DF0L(BP")`Z%DF0L(B1B+`XE8!'0&BP:%P'6H -XM@\006UY=Z3W^__^#Q!!;7EW#C;8`````58GE5[\`!```5E.#[`S'!"0`!``` -XMZ,9)`P")P^L>B?;H=[[__XLP@_XB=4D!_XD<)(E\)`3H]DD#`(G#B7PD!(D< -XM).@TO/__AY`P")!"3H[[0#`(D<)(G&Z*5(`P"#Q`R) -XM\%M>7UW#B1PDZ)-(`P#H&K[__XDP,?:#Q`R)\%M>7UW#B1PD,?;H=D@#`.O/ -XMC70F`%6)Y5=64X'LC````(M%"(M=#(D$).ARN___BU4(@SHOB<+1(H$@\$!A<")1(L$=?&+%HGW -XMA=)U5(GWC4;\.T4(=`_'1OP`````B?N+`X7`=;G'1"0$Q)@*",<$))`O"0CH -XM%:0!`(D$)(G#Z$>Z__^%VXG&=`F#.R\/A*X"``"+10B!Q(P```!;7E]=PX/' -XM!(L'A`0K?0B)#"3H#;G__XG#BT6`B00DZ`"Y__^-5`,!B?C!^`*-!`+!X`*)!"3H -XMG48#`(M5"(G&B<&+`H/"!(D!@\$$A^+58")V8L"@\($B4'\@\$$A^)V8GZBP*# -XMP@2)0?R#P02%P'7QBTV,C7PQ_(M5"(G[B10DZ'9$`P")=0CI'_W__XE$)`B+ -XM30B)'"2)3"0$Z">Y__^%P'47BU4(BP2R@_@O#X0L_?__A<`/A"3]__\['1A> -XM"0AT,HD<).B0L@,`C564B50D!(D$).@=N?__@\`!=!:+192)'1A>"0BCG"`) -XM"(M%F*.@(`D(BTT(C7V4B0PDZ#BP`P")QHL&A)QNF0_O__QT;\+P```(-M@`2+58"#.B]U -XM](M-A(7)=%\QTHM$EP2+38")1)$$@\(!A575HG&4XG#@^P,@S@O='.A -XM9)D+"(M`#(D$).A:M?__B30DB<,QP(/[`0^4P(/H`2'#Z$.U__^-!`.-!(4( -XM````B00DZ.5"`P")QZ%DF0L(B?F+4`R+`H/"!(D!@\$$AB)1>R+`(U(!(E-\(M0!(72#X35```` -XM@SHM#X78````,?_K'('/@````(-%\`2+1?"+$(72#X23````@SHM=5Z+0@2) -XMTX7`=1?KV2GQN`$```#3X`G'BT,(@\,$AR#X`Z%P(D1=`.#SP&#Q!R)^%M>7UW#BT7P,?^+3>R)`>OJ -XMBTWP,?^+5>R)"NO>ZPV0D)"0D)"0D)"0D)"058GE@^P8B5WXB77\@S@K=`XQ -XMVXG8BW7\BUWXB>Q=PXM0!(U(!/?"````0'4G@_I_=ACK((M0"/?"````0(UV -XM`'42@_I_=PV#P`3V!)6]40D(!'7@A=)UN8D,).@`FP$`A<")QGZKBQUDF0L( -XMZPT['629"PAT&(/N`728BUL$@?L<7@D(=>B+'2!>"0CKX,<$)!H``!#H9C(` -XM`.O:C70F`%6)Y5.)PX/L%,=$)`3$F`H(QP0D9#,)".B3G`$`QT0D"`8```#' -XM!"1T,PD(B40D!.AKI0$`B5PD!,=$)`@&````QP0D9#,)".A3I0$`B5PD!,<$ -XM)/@Z"0CH\Z8``(/$%%M=PXVV`````(V\)P````!5B>53@^P4BQUDF0L(C78` -XM@?L<7@D(=!;'1"0$^&\)"(M##(D$).C%]O__B4,,BUL$.QUDF0L(==>+0PR# -XMQ!1;7>E*____C78`C;PG`````%6)Y8/L&(U%"(D$).CO5P,`A<")PG09BT4( -XMB50D!,<$)(ZY"`B)1"0(Z+*,`P#)PXM%",<$))*Y"`B)1"0$Z)V,`P#)PXUT -XM)@"-O"<`````58GE5U93@^P\BS5DF0L(B478@^`$B474BT78QT7<`````,=% -XMX`````"#X`*)1=#ICP```(U%\(D$).AQ5P,`A<")QP^$G````(D$).B+L?__ -XMB<.+1?")!"3H?K'__XU<`P(!7>#V1=@(=!:+%>"7"@B-0O\Y1>!\"#G3#XRY -XM````A?]T$(E\)`3'!"29N0@(Z/N+`P"#?=0!QP0DG;D("!G`@^`6@\`*B40D -XM"(M%\(E$)`3HV(L#`(MV!#LU9)D+"'1=@?X<7@D(=.V+1=2%P'4FBT8,,?^) -XM1?"+1="%P`^$3____XM%\(D$).CLL/__C5@!Z6K___^+1=R+7=S'!"25N0@( -XMB40D!.B"BP,`@\,!B5W#I,____XGV58GE5XG75HG&4X/L#,=$ -XM)`3$F`H(QP0DX#D)".C/F0$`A"0AUVXDU9)D+"(M&#.@Z_?__Z"7R -XM__^+'2Q>"0C'1"0$Q)@*",<$)&`Y"0CH:YD!`(/X`1G`("0B%P'4$A=MU#(/$#%M>7UWI/FP#`(GXZ/?]__^#Q`Q;7E]=Z2ML -XM`P"+`XM3!(E0!(M3!(D"B1PDZ-;N___I>?___Y!5N:.Y"`B)Y;JMN0@(@^PH -XMC44(B5WTB77XB7W\Z-_Z___'!2Q>"0@!````B<.)QH'C@`````^%A0```(M% -XM"(L0A=(/A)@```"%VW4DBT4(BT`$AP0<7@D(=&8Q_SL=9)D+"`^$?0`` -XM`(M#!(L3B1"+$XE"!(D<).@D[O__.QUDF0L(=%*)\.@5_?__ZZ6-=@#'1"0$ -XMQ)@*",<$)'0S"0CHG)@!`(G"A=(/A6K___^)]HL=9)D+"(%[!!Q>"0AUFY"! -XM.QQ>"0AUDL<$)$(``!#H'"X``.N$B?*)^.@1_O__D.E-____BWL$@?\<7@D( -XM=%J+1PR)!"3HQ:D#`(E%\(D$).C6K/__A<`/B5K____HV;#__XL`B00DZ'^N -XM___'!"0V````B40D"(M%\(E$)`3HO"T``.DO____QP0D0P``$.BK+0``Z0?_ -XM__^+/2!>"0CKGHVT)@````"-O"<`````5;E%R0@(B>6Z][D("%93@^P0C44( -XMZ%;Y__^H0(G&=$*A9)D+"(L`.P5DF0L(=!R0/1Q>"0B+&'0(B00DZ/_L__^) -XMV#L%9)D+"'7EHR!>"0BC'%X)",=`!!Q>"0C'`!Q>"0CWQB`````/A8T```#W -XMQA````!U:XM5"(L*A575E.#['R+30R%R0^$=`$` -XM`(M%"#';QT7H`````,=%[`````#'1?``````ZP.#P`2+$(72="Z+2`2%R70G -XM@_HN=>N#^2YUYHM0"(72D`^%2P$``#M%"'0'@WC\+Y!USH/#`>O)A=L/A!D! -XM``"A9)D+"(M`#(D$).B-K/__C02%#````(D$).@R.@,`B46`H629"PB+0`R) -XM1"0$BU6`B10DZ&2K__^+=0B#/B\/A#P"``"+70C'1>P`````BQ,Q_X72=$&# -XM^BZ-H0,`A?]_#>LB@^\!QP`````` -XM=!?'1"0$+P```(M%@(D$).@FJO__AR%P`^%!P$``(MU@(L^A?\/A;4```"+,X7V#X5%____BT7HB00DZ',X -XM`P"+18"#Q'Q;7E]=PXM%"(D$).B=I`,`B46`BT6`@\1\6UY?7<.#^B\/A8;^ -XM___II_[__Y`[70AT$8-[_"^-M"8`````#X4?____A<`/A#'___^-6#[#C'1"0$`````(E= -XM](EU^(E]_(D$).@AV0``QT0D!#`J"`B)QHD$).@_+```,<"#/=B7"@@"B30D -XM#Y3`B40D!.BW_/__B<.)!"3H_:0#`(D$).@1J/__A!F)-"3H?"L``(DT).@D*P``B?#HW?/__^NYZ,*K__^#.`*-=@!T.^BU -XMJ___@S@4=#&-="8`Z*>K__^+`(D$).A-J?__B30DB"2)-"3H>"H``(D<).C0H0,`QP4L7@D(`0```.@A\___Z?K^__^+'11> -XM"0B%VP^$/@$``(DT).A&*@``,<#IW?[__XET)`3'!"3,.`D(Z.\I`0"%P`^% -XM=____\=$)`3$F`H(QP0DW#@)".BSD0$`A<`/A%O___^+$(72#X11____QT7H -XM`````,=%[`````#'1?``````BQB+`X7`=2KI_0```(DT).A7HP,`B00DZ&NF -XM__^%P`^)]0```(/#!(L[A?\/A-@```#'1>P`````BP.)1"0$C47HB00DZ)*? -XM`P"-1>B)!"3'1"0$+P```.@/G0,`C47HB00DB70D!.APGP,`C47HB00DZ%6= -XM`P"AV)<*"(/H`H/X`0^6P`^VP(E$)`2+1>B)!"3HA?K__XG'B00DZ,NB`P") -XM!"3HWZ7__X7`#XA<____BT7HQP4L7@D(`0```(D$).A&-`,`B30DZ!XI``") -XM^.C7\?__Z;#]__^)]HM%X(D$).AAI___B30DBZ(#`(E<)`C'!"0V```` -XMB40D!.B7)@``Z93^__^+1>B)!"3H]S,#`.DB_O__B3PDQP4L7@D(`0```.C@ -XM,P,`BT7HB00DZ-4S`P#I?/W__U6YM[D("(GENJVY"`B#[!B-10B)=?B)??R) -XM7?3H'_+__\<%+%X)"`$```")QHG'@>:`````#X6Y````BT4(BQB%VP^$QP`` -XM`(7V=22+10B+2`2%R70:QP0D#P``$.C^)0``BUWTBW7XBWW\B>Q=PY")V.CI -XM\O__A<")Q@^$_P```(M`#(D$).BDH0,`B<.)!"3HMJ3__X7`#X@U`0``QT0D -XM!,28"@C'!"2@.0D(Z)Z/`0"%P'0P.S5DF0L(="B+%HM&!(E"!(M&!(D0H629 -XM"PB+$(D6H629"PB)1@2)<@2A9)D+"(DPB?J)\.AQ]?__Z6[____'1"0$Q)@* -XM",<$)'0S"0CHJ(\!`(G#Z3'____'1"0$Q)@*",<$)"`Y"0CH+8\!`(7`#X30 -XM````QT0D!,28"@C'!"20+PD(Z'&/`0`]^&\)"(G#=`:+,(7V=0S'!"0B```0 -XMZ`8E``")'"3HSJ`#`(D$).CBH___A:`````#X6:````BT4(BQB%VP^$#P$``(7V -XM=22+10B+0`2%P'0:QP0D#P``$.A>(P``BUWTBW7XBWW\B>Q=PY")V.A)\/__ -XMA<")QG1SQP4L7@D(`0```(M`#(D$).C^G@,`B<.)!"3H$*+__X7`#X@'`0`` -XMH629"PB+4`2+`(D"H629"PB+$(M`!(E"!*%DF0L(B00DZ*;B__^)^HGPZ.WR -XM___KC<=$)`3$F`H(QP0D=#,)".@GC0$`B6#[!B)7?B)PZ&`F`H(B77\BS4,=@H(QT0D -XM#-BY"`C'1"0(`0```,=$)`0,````B00DZ#>#``")7"0(B70D!(D$).C'?`,` -XMBUWXBW7\B>Q=PXVV`````(V\)P````!5B>575E.![,P```"+=0CHO.7__X7` -XMB<,/A!(!``")!"3H&IT#`(U5E(E4)`2)!"3HIZ/__X7`#Y3`B<=U4H7V=`J+ -XM!H7`#X54`0``B?B$P'0^QP0DT;D(".@>H/__A<")QG0LC84T____B40D!(DT -XM).AFH___@\`!=!6+190[A33___\/A&8!``"-M@````#'1"0$,"H("(D<).C` -XM(P``QT0D!/AO"0B)'"3HP.7__XD<)(G&Z%8C``")'"3H_B(``,=$)`0!```` -XMQP0D$````.AJ+@,`,=*)<`R)P\=`"`````"C(%X)"*,<7@D(QT`$'%X)",<` -XM'%X)",<%+%X)"`````#H9O#__\=$)`@&````BT,,QP0D`#8)"(E$)`3HBY,! -XM`('$S````%M>7UW#Z#>C__^+`(D$).C=H/__QP0DAKD("(E$)`BA#'8*"(E$ -XM)`3H6'L#`(7V=`J+!H7`#X7`````N%/'"`CH,/[__\<$)%/'"`CHX)[__X/` -XM`0^$V````,<$)%/'"`CHWYT#`(D$).B'F0,`B<;I(O___XDT).B8FP,`C94T -XM____B50D!(D$).@BHO__@\`!#X2)_O__BT64.X4T____#X5Z_O__BT68.X4X -XM____#X5K_O__B30DZ#>9`P")QNG2_O__BT68.X4X____#X61_O__B30DZ&F= -XM`P")!"3H$9D#`,=$)`0P*@@(B<.)!"3H/R(``.EJ_O__B30DZ!*;`P")P^AK -XM_?__B1PDZ!^>__^#P`$/A"#___^)-"3HTI@#`(7`B<8/A6K^___I"?___\<$ -XM)`$```#H-[___^D7____D)!5B>5=HTA>"0C#C;8`````H4A>"0A5B>6%P'0, -XM7<<%2%X)"`````##H4Q>"0B%P'07BQ"#P`2C3%X)"(72=`E=B=`E____?\.A -XM4%X)"(L0A=)T%5V#P`2C4%X)"+@@````B15,7@D(PUVX_____\<%3%X)"``` -XM``##C;0F`````%6)Y8M%"(7`>":I````0'4?@_A_?QH/ML`/MX0`X"`)"*A# -XM=`O'!71>"0@!````D%W#C;0F`````(V\)P````!5B>5=QP7$EPH(`````,.0 -XM58GE@^P(B00DZ/*9`P#'!"0K```0HR!W"@CH$1X``,G#ZPV0D)"0D)"0D)"0 -XMD)"058GE5U93@^P\BQ5D7@D(A=)T"HL];%X)"(7_=0VC5%X)"(/$/%M>7UW# -XMB00DZ'Z7`P"+-61>"0B%]HE%[`^$[P(``,=%\`````"-M@````"+??"+%6!> -XM"0C!YP*+!#K'1=``````@_AS#X58`@``BUWP@\,!BQ2:A=*)5=0/A/\"``"! -XMX@```$!U0P^V5=2!^O\````/A\T"``"AX%T)"(M$D#3VQ`$/A=4"``"#?=1? -XM#X3+`@``@WW4?W<1BT74]@2%O5$)"`0/A;0"``"+5=3'!"3_N0@(B50D!.C_ -XM'0$`A<`/A9D"``"+#6!>"0B-``````C02QB4W$B<&)1=@Y$'0O -XMBT7$C7,"C0RPBQ&%TG0@C40X#.L/BU`$@\$$@\8!B;'`0````"+%6!>"0B-3@&)3?#!X0*+1=2)3>C'1>0``````=&)3=R)RSD! -XM=$2-3@*)3?#!X0*-'`J)3>B+"X7)="^-!+4(`````<+K%H-%\`&#P`2#PP2) -XM1>B+2@2)VH7)=`Z#1>0!B=,Y3=2)1>AUW,<#`````(M%V(D$).CT'0$`BU7L -XMB10DZ.D=`0"+3>"+1>S'1=``````P>$"B4W,ZQ2-="8`BT7(QT70`0```(EU -XM[(/`!(M5V(D$)(E4)`3HL9`#`(7`B<R)^XD,).AVG/__BU7D -XM*U7@C50"`<'B`HD4).@5*@,`*UWLP?L"B5PD"(G&BT7LB30DB40D!.A&HO__ -XMBTWB57(B10DB4PD!.@QF___BU7,C007B40D!`-=Y(T"0B%VP^%5/___XEU[,=%T`$```"+5=2+3=RA8%X) -XM"`%%Z(E1_(M%Z(D0BU70A=)T;.M6H6!>"0B+!`?'1=`!````B5WLB40D!(M5 -XM[(D4).AJ]P``A<")PW30B40D!(M-[(D,).CQFO__A<`/A((```"+5>R)%"3H -XMRA;%X)"#W___]_=`B#Z`&C;%X)"(-%\`&+3?`Y -XM#61>"0@/AQ[]__^+1>R)!"3H@_@``*&`7@D(QP547@D(^&\)"(7`#X3._/__ -XMQP0D````0.B@&@``@\0\6UY?7<.)%"3HG)K__^DO_?__BT7LB00DZ/`G`P#K -XMAL<$)%@```#H`AH``(GVZZ"-M"8`````C;PG`````%6)Y5=64X/L7(E%L(UT -XM)@"+#41>"0B%R0^%*@(``(L5F'<*"#D5?)P+"`^'2PH``*%47@D(A<`/A"," -XM``"+"(/`!*-47@D(@>'___]_A"0B%R0^/?`L``,<%5%X) -XM"`````#H_OK__X/X)(G!=`J#Q%R)R%M>7UW#BT6PA -XM"0@`````QP5D7@D(`````.@I____B47(@\`!#X2M`0``BUW(@_M[#X1,!0`` -XMB=@E____/X/X(P^$&04``(/[/P^$H04``(/[)0^$NP4``,=%O`````#'1;@` -XM````QT6T`````(/[(0^$H00```^/D@```(/[_P^$IP,``(/["@^$G@,``(G8 -XM)0```$")]G4)@_M_#X9,"```@_O_B?9T+X7`=2L/MM.!^O\```"0#X?F"@`` -XMH>!="0B+1)`T]L0%#X48!P``@_M?#X0/!P``BT6\OB0V"0B%P'40BT6XA<`/ -XMA.<&``"^]"X)"(U%V(ET)`2)!"3HY)`#`(U5V(D4).E/`P``@_LJ#X2R`@`` -XM@?L\``!`#X3%````@_LDD`^%8?___XM5O`E5N(M-N`M-M`^%-@D``*&\F0L( -XMZ%[Z__^-1=B)!"3HHQH``(-]R'L/A?G]___H5/G__X/X?9`/A.K]___'1"0$ -XM?0```,<$)#(```#H)A@``(L-1%X)"(7)#X36_?__QP5$7@D(`````(/$7(G( -XM6UY?7<.-="8`BQ5<7@D(A=(/CO_]__^+%5A>"0B+`H/"!(D56%X)".C<^?__ -XM@RU<7@D(`>F`_?__QP0D`````.C$%P``Z6_]__^+1;B%P`^%:0@``(M%O(7` -XM#X4S"```BT6TA<`/A0\(```Q]HU]YL<%.%X)"`````#K'HM%[#'V@_@*#X29 -XM````B40D!,<$)#1>"0CH/XT#`(U5\(D4).@DBP,`C00WB40D!*%$F0L(QT0D -XM"`$```")!"3H.!H!`(U-\(D,)(G#Z(L9``"#ZP%U4(/&`8U%[(ET)`B)?"0$ -XMB00DZ#"4`P"#^/\/A,<```"%P`^.\````#GZ____*<:-!`>)="0(B40D -XM!(D\).C>F___BT7L@_@*#X5G____A?:-7>QU(.M@BT7L,?:#^`IT5HE$)`3' -XM!"0T7@D(Z).,`P"%]G1"B70D"(E\)`2)'"3HOY,#`(/X_P^$E@```(7`#XZV -XM````.?!TO2G&C00'B70D"(E$)`2)/"3H<9O__XM%[(/X"G6JQP0D-%X)".BA -XMC`,`Z'P.``"A-%X)".AB^/__C578B10DZ*<8``#I__W__XGVQT0D"`````#' -XM1"0$`````,<$)`````#H\);__X/^!0^&O/[__P^V1>8-```@`(E%[+@!```` -XMZ0;___^0C70F`,=$)`@`````QT0D!`````#'!"0`````Z+"6__\/MD7F#0`` -XM(`")1>RX`0```.E`____C4W8O_____^)#"3'1"0$)#8)".@&C@,`C478B00D -XMZ.N+`P#'1"0$Q)@*",<$)"0V"0CHEW\!`(G&BT6XA"0B-5=B)%"3HT!<``.DH_?__BT6\OB0V"0B%P'40BWVXA?\/A((# -XM``"^]"X)"(U5V(ET)`2)%"3HD(T#`(U-V(D,).AUBP,`O_____^)-"3'1"0$ -XMQ)@*".@@?P$`B<:)V.@G]O__A?8/A*X!``"+!H7`#X2D`0``C478B00DZ%H7 -XM```QP.BC^O__B<.+!HD$).@'%@$`BU6\"?J)14__\!1,`P"C,%X)".@=]?__ -XMZ<7Z__^AY*P+"(L-X*P+"(E%W*'HK`L(B4W8B47@C478QT0D!+"1"`B)!"3H -XMW!4``.L4@_C_="6-5=B)7"0$B10DZ*:(`P"X`0```.AL^/__@_A=B<-T%X/X -XM"G76QP0D!0```.BT$@``C70F`.O)C4W8B0PDZ-.(`P"A5%X)"(M=V(7`#X1B -XM`@``QP0D!@```.B'$@``BQ.%T@^$9`(``/?"````0`^$)0$``,=%T`$```"# -XM^BH/A&<"``"#^BT/A$T#``#'1"0$+0```,<$)#(```#H1!(``(M%T(7`=1*+ -XM1<"%P`^%.P0``,=%P/____^+.X7_#X7,`P``C578B10DZ&84``"+?<#I2OW_ -XM_XM%T(U?`2M=T,'@`HE%Q.@*"@``BP:)'5Q>"0B#Z`0#1<2C6%X)".F/^?__ -XMQP0D`````.C6$0``Z;CX___'!"0?````Z,41``"0C70F`(U-V(E<)`2)#"3H -XM@8<#`#'`Z$KW__^#^/^)PW0IJ0```$!U(@^VT('Z_P````^'FP$``*'@70D( -XMBT20-/;$!76_@_M?=+J-1=@Q_XD$).B=AP,`B=CH9O+__\=$)`3$F`H(BT78 -XMB00DZ$-[`0")QNFG^___@_I_#X?2_O__]@25O5$)"`3'1=``````=13IO/[_ -XM_X/Z?W"0CIT_?__XL]7%X)"(7_#X60_?__BQ.% -XMT@^%G/W__\<$)`````#H#1```(L3]\(```!`#X6._?__Z:[^__^#PP3IKOW_ -XM_XD4).CVC___Z6'^__^A>)P+"(L,D(U"`:.8=PH(@>'___]_A7UW#QP0D`````.A)#@``Z2/\__^-="8`Z$OO__^#^'V)PW04QT0D -XM!'T```#'!"0R````Z"`.``")V.@9[___Z67Y__^+1=B)!"3H214!`.GO^/__ -XMB10DZ`B.___I%O7__XU%V(D$).@\$```BT8$Z+3O___IC_/__XM%V(D$).BD -XMB0,`B00DZ-B,__^Z$"\)"(7`#X4I^/__Z2GX__^+%?1="0B%T@^$B@```(M% -XMM(7`=%ZA]%T)"(D$).@DCO__B00DZ(!X`0")!"3H2.L``.GX]___QT0D!,28 -XM"@C'!"0D-@D(Z%]W`0"%P(G`]___C4W8OJ0@"0B)#"0QV^BC#P``QT7$ -XM!````.E(^___Z%(%``"A]%T)".@X[___Z:CW___'!"0K````Z"<-``#IOOS_ -XM_\<$)`0```#H%@T``(VV`````.E?____C70F`(V\)P````!5B>575E.![%R` -XM``"-?>3'1=@`````QT7<`````,=%X`````#'1CO__@\`! -XM=:;'1"0$`````(D\).B)C?__H0AV"@B)!"3HP!D#`(MUY(M=Z.AQDO__,?,Q -XMPX'C____`(D<).@C=P$`QP0D0#()"(G#B40D!.A!A0,`B1PDHPAV"@CHA!D# -XM`.E(____B1PDZ+.-___H_H[__XDPZ/>.__^+`(D$).B=C/__B5PD!,<$)#8` -XM``")1"0(Z-T+``")'"2-GXW__XM%"(U5[(F5M'___XD4),=%\``` -XM``")1>S'!71>"0@`````Z$>F``"-5>R)%"3'1"0$0/X$".CTI0``H71>"0C' -XM1<@`````QP7$EPH(`0```,=$)`2`_@0(B86\?___QP0DQ)<*".A4#@``C578 -XMB10DQT0D!+"1"`CH00X``(U%S,=$)`2PD0@(B00DZ"X.``"-5"0B)%5!>"0C'1=``````N`$```#H -XM2?#__X/X_W0QB<:!YO___S]TYX/^7`^$V`$``(U%S(D$)(ET)`3H4H`#`+@! -XM````Z!CP__^#^/]USXU5S(D4).B8@`,`BW7,QT0D!&````")-"3H@8[__X7` -XM#X3"`0``QT0D!`$```")-"3H+;$``(F%P'___XN%P'___XL0B<>%TG1$BP*) -XMUH7`=!V0)?___S^)`X/#!#F=N'___W1XBT8$@\8$A"0C___]_,<#H7NW__XG#@_MG#X23````@_MA -XM#X2^`0``@_MS#X2M````B5PD!,<$)!ZZ"`CH<0@!`(7`#X1Y`0``B5PD!,<$ -XM)&!>"0CH27T#`(/[<0^$=0$``#'`Z`GM__^#^#J)PP^%/P$``#'`Z/?L___' -XM!6Q>"0@!````QP5P7@D(`````(/X9XG##X1I____@_AA#X5S____QP5P7@D( -XM`0```.E;____@3UL7@D(____?P^$;____\<%;%X)"/___W\QP.B?[/__B<.# -XM^W,/A5/___\QP.B-[/__QT0D!',```#'!"1@7@D(B!="0B+1)`T]L0!=6F#_U]T9(/_?W<*]@2]O5$)"`1U58E\)`3'!"3_N0@( -XMZ%`'`0"%P'5!O@(```#K))"-="8`B5PD!,<$)&!>"0CH('P#`#'`.=\/E,`I -XMQ@^$T?[__S'`Z-KK__^#^/^)PW73A?8/A+O^___'!"18````Z*\%``"#Q`R) -XMV%M>7UWI$>?__Y")7"0$QP0D!P```.@`!@``Z7+^___'!6Q>"0C___]_Z7S^ -XM__^A<%X)"(7`#X4^_O__QP5P7@D(`0```.G*_O__B10DZ-2%___I*O___XUV -XM`%6)Y5.)PX/L%.LWD(UT)@"#^O]T8872>!WWP@```$"0=12#^G]_#P^VP@^W -XMA`#@(`D(J`]U58E4)`2)'"3H3GL#`+@!````Z!3K__^#^%R)PG6],<#H!NO_ -XM_X/X_W0<@_@*NB````!TOHG"@575E.#["RC4%X)"#'`QT7H -XM`````,=%[`````#'1?``````QP5,7@D(^&\)",<%1%X)"`````#HXN7__XU% -XMZ,<%5%X)"`````#'!5Q>"0@`````QT0D!/"1"`B)!"3HJP<``(U%W#';QT7< -XM`````,=%X`````#'1>0`````QT0D!+"1"`B)!"3H@0<``)"X`0```.@FZO__ -XM@_@GB<9T=']0@_@@=.B0C;0F``````^/_P$``(/X"8VT)@````!TSH/X"@^$ -XM]@```(/X_XGV#X3&`0``B35$7@D(C470,`@_XB#Y3`#[;XB?:) -XM^.B9Z?__.<:)PW1H@_@*#X3`````@_C_#X2W````B=@E____?ST*``!`#X3' -XM````@_XG#X3M````@_Y@#X3^````@_XB=;B#^V"X8````'0'B=@-````0(E$ -XM)`2-1=R)!"3H:'D#`(GXZ#'I__\YQHG#=9B#_F`/A3[___^-1=R)!"3'1"0$ -XM8````.@_>0,`C47B)!"3HSWH#`.EO_O__B70D!,<$)#,```#H -XM&@,``(G8)?___W\]"@``0`^%.?___XM5X(72#X0N____BT7`,` -XMZ;_^__^-1=R)7"0$B00DZ(!X`P#IJ_[__S'`Z$3H__^#^`J0#X0*_O__@_C_ -XM#X0!_O__B<:!S@```$#I.O[__X7;B?9T([C_____Z'3C__^-="8`Z0S___^# -XM^"(/A1C^__^)]NE0_O__C47B)!"3HFGD#`(/$+%M>7UW#B?95B>6#["B)=?PQ]HE=^(L- -XM*'<*"(7)=`R)\(M=^(MU_(GL7<.+10C'1?0`````B47PC47PZ,?\__^)PXL` -XMAP,`B1PDB<;H8`@!`(GPBUWXBW7\B>Q=PXUT)@!5B>53@^P$ -XMBQTH=PH(A=MU3XM%"(M($(G+C;0F`````(L1A=)T.HL"@\$$A!VI -XM````0'46@_A_C78`?PX/ML#VA`#@(`D(PW47D(M"!(/"!(7`==6+$872=<:# -XMQ`1;7<.)V.@#_/__BU4(B<.+0A")!"3HTP5=PXUT)@"-O"<`````58GE@^P(H`#`P6\8`D(BQ")%"3_4`2AP&`)"#L%Q&`)"'?:R<.0C70F`%6AQ&`)"(L5 -XMP&`)"(GE78D5Q&`)",.-=@"-O"<`````58GEBT4(BP")10A=Z>\-`P#K#9"0 -XMD)"0D)"0D)"0D)!5B>6#[!BA@%X)"(7`=`+)PX%]"(8```"-10R)1?QV!\=% -XM"(4```")1"0$BU4(BP25H%X)"(D$).AS6@,`HX!>"0C)PXVV`````(V_```` -XM`%6)Y8/L".@E____QT0D!`$```#'!"0`F@L(Z'V!__^058GE5U93@^P<```!`=`Z+-8!>"0B%]@^$M````(G>@>;_ -XM__\/@?Z&````=@6^A0```.CB&P$`]\,````@QP7`F`H(`0````^$C````*&` -XM7@D(A<<$)`$```#HAY___^@RS```QT0D"`(```#'1"0$&"\)",<$ -XM)/0N"0CH=G(!`*'4EPH(A -XM7UW#@>,````0=5B%_W0IH8!>"0C'!"2F&`D(B40D!.@O6@,`Z4[___^+%>1U -XM"0B%TG2)Z7C___^+1?")1"0$BP2UH%X)"(D$).CE60,`QP0D;\<(".CY60,` -XMZ1C___^-="8`H2!W"@C'!"0HN@@(B40D!.C;60,`ZY&)]HV\)P````!5B>5= -XMZ:<#`0"-M"8`````58GEBT4(BP")10A=Z<\#`0#K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[!B+10C'1"0(`````,<$)`,```")1"0$Z-M]___)PXVV`````(V\)P`` -XM``!5B>6#[!B+10C'1"0(`````,<$)`(```")1"0$Z.N!___)PXVV`````(V\ -XM)P````!5B>53@^P4BUT(.1W`8`D(7<.-=@#H=W[__XUT)@"-O"<`````58GE4X/L!(L5O&`)"*'` -XM8`D(BUT(C0S".6#[`B+#`#B40D!*&\8`D(B00DZ$,+`P"+#"0BA@)@* -XM"(D$).B`70``B00DZ.@&`0#'1"0,7[H(",=$)`@#````QT0D!`$```"CI%X) -XM"*&`F`H(B00DZ$Y=``")!"3HM@8!`,=$)`QMN@@(QT0D"`0```#'1"0$`0`` -XM`*.H7@D(H8"8"@B)!"3H'%T``(D$).B$!@$`QT0D#'ZZ"`C'1"0(!0```,=$ -XM)`0!````HZQ>"0BA@)@*"(D$).CJ7```B00DZ%(&`0#'1"0,C;H(",=$)`@& -XM````QT0D!`$```"CL%X)"*&`F`H(B00DZ+A<``")!"3H(`8!`,=$)`RDN@@( -XMQT0D"`<```#'1"0$`0```*.T7@D(H8"8"@B)!"3HAEP``(D$).CN!0$`QT0D -XM#,*Z"`C'1"0("````,=$)`0!````H[A>"0BA@)@*"(D$).A47```B00DZ+P% -XM`0#'1"0,V[H(",=$)`@)````QT0D!`$```"CO%X)"*&`F`H(B00DZ")<``") -XM!"3HB@4!`,=$)`SKN@@(QT0D"`H```#'1"0$`0```*/`7@D(H8"8"@B)!"3H -XM\%L``(D$).A8!0$`QT0D#/^Z"`C'1"0("P```,=$)`0!````H\1>"0BA@)@* -XM"(D$).B^6P``B00DZ"8%`0#'1"0,#;L(",=$)`@,````QT0D!`$```"CR%X) -XM"*&`F`H(B00DZ(Q;``")!"3H]`0!`,=$)`P?NP@(QT0D"`T```#'1"0$`0`` -XM`*/,7@D(H8"8"@B)!"3H6EL``(D$).C"!`$`QT0D##.["`C'1"0(#@```,=$ -XM)`0!````H]!>"0BA@)@*"(D$).@H6P``B00DZ)`$`0#'1"0,1;L(",=$)`@/ -XM````QT0D!`$```"CU%X)"*&`F`H(B00DZ/9:``")!"3H7@0!`,=$)`Q7NP@( -XMQT0D"!````#'1"0$`0```*/87@D(H8"8"@B)!"3HQ%H``(D$).@L!`$`QT0D -XM#&J["`C'1"0($0```,=$)`0!````H]Q>"0BA@)@*"(D$).B26@``B00DZ/H# -XM`0#'1"0,AKL(",=$)`@2````QT0D!`$```"CX%X)"*&`F`H(B00DZ&!:``") -XM!"3HR`,!`,=$)`R/NP@(QT0D"!,```#'1"0$`0```*/D7@D(H8"8"@B)!"3H -XM+EH``(D$).B6`P$`QT0D#)V["`C'1"0(%````,=$)`0!````H^A>"0BA@)@* -XM"(D$).C\60``B00DZ&0#`0#'1"0,M;L(",=$)`@5````QT0D!`$```"C[%X) -XM"*&`F`H(B00DZ,I9``")!"3H,@,!`,=$)`S"NP@(QT0D"!8```#'1"0$`0`` -XM`*/P7@D(H8"8"@B)!"3HF%D``(D$).@``P$`QT0D#-"["`C'1"0(%P```,=$ -XM)`0!````H_1>"0BA@)@*"(D$).AF60``B00DZ,X"`0#'1"0,WKL(",=$)`@8 -XM````QT0D!`$```"C^%X)"*&`F`H(B00DZ#19``")!"3HG`(!`,=$)`S,P@@( -XMQT0D"!D```#'1"0$`0```*/\7@D(H8"8"@B)!"3H`ED``(D$).AJ`@$`QT0D -XM#/&["`C'1"0(&@```,=$)`0!````HP!?"0BA@)@*"(D$).C06```B00DZ#@" -XM`0#'1"0,!+P(",=$)`@;````QT0D!`$```"C!%\)"*&`F`H(B00DZ)Y8``") -XM!"3H!@(!`,=$)`PBO`@(QT0D"!P```#'1"0$`0```*,(7PD(H8"8"@B)!"3H -XM;%@``(D$).C4`0$`QT0D#/#""`C'1"0('0```,=$)`0!````HPQ?"0BA@)@* -XM"(D$).@Z6```B00DZ*(!`0#'1"0,&,,(",=$)`@>````QT0D!`$```"C$%\) -XM"*&`F`H(B00DZ`A8``")!"3H<`$!`,=$)`PTO`@(QT0D"!\```#'1"0$`0`` -XM`*,47PD(H8"8"@B)!"3HUE<``(D$).@^`0$`QT0D#$##"`C'1"0((````,=$ -XM)`0!````HQA?"0BA@)@*"(D$).BD5P``B00DZ`P!`0#'1"0,2[P(",=$)`@A -XM````QT0D!`$```"C'%\)"*&`F`H(B00DZ')7``")!"3HV@`!`,=$)`QHO`@( -XMQT0D""(```#'1"0$`0```*,@7PD(H8"8"@B)!"3H0%<``(D$).BH``$`QT0D -XM#'J\"`C'1"0((P```,=$)`0!````HR1?"0BA@)@*"(D$).@.5P``B00DZ'8` -XM`0#'1"0,=,,(",=$)`@D````QT0D!`$```"C*%\)"*&`F`H(B00DZ-Q6``") -XM!"3H1``!`,=$)`R,O`@(QT0D""4```#'1"0$`0```*,L7PD(H8"8"@B)!"3H -XMJE8``(D$).@2``$`QT0D#*&\"`C'1"0()@```,=$)`0!````HS!?"0BA@)@* -XM"(D$).AX5@``B00DZ.#_``#'1"0,O[P(",=$)`@G````QT0D!`$```"C-%\) -XM"*&`F`H(B00DZ$96``")!"3HKO\``,=$)`S0O`@(QT0D""@```#'1"0$`0`` -XM`*,X7PD(H8"8"@B)!"3H%%8``(D$).A\_P``QT0D#-J\"`C'1"0(*0```,=$ -XM)`0!````HSQ?"0BA@)@*"(D$).CB50``B00DZ$K_``#'1"0,E,,(",=$)`@J -XM````QT0D!`$```"C0%\)"*&`F`H(B00DZ+!5``")!"3H&/\``,=$)`SJO`@( -XMQT0D""L```#'1"0$`0```*-$7PD(H8"8"@B)!"3H?E4``(D$).CF_@``QT0D -XM#/:\"`C'1"0(+````,=$)`0!````HTA?"0BA@)@*"(D$).A,50``B00DZ+3^ -XM``#'1"0,#;T(",=$)`@M````QT0D!`$```"C3%\)"*&`F`H(B00DZ!I5``") -XM!"3H@OX``,=$)`P;O0@(QT0D""X```#'1"0$`0```*-07PD(H8"8"@B)!"3H -XMZ%0``(D$).A0_@``QT0D#">]"`C'1"0(+P```,=$)`0!````HU1?"0BA@)@* -XM"(D$).BV5```B00DZ![^``#'1"0,.[T(",=$)`@P````QT0D!`$```"C6%\) -XM"*&`F`H(B00DZ(14``")!"3H[/T``,=$)`Q0O0@(QT0D"#$```#'1"0$`0`` -XM`*-<7PD(H8"8"@B)!"3H4E0``(D$).BZ_0``QT0D#&*]"`C'1"0(,@```,=$ -XM)`0!````HV!?"0BA@)@*"(D$).@@5```B00DZ(C]``#'1"0,:[T(",=$)`@S -XM````QT0D!`$```"C9%\)"*&`F`H(B00DZ.Y3``")!"3H5OT``,=$)`QVO0@( -XMQT0D"#0```#'1"0$`0```*-H7PD(H8"8"@B)!"3HO%,``(D$).@D_0``QT0D -XM#(.]"`C'1"0(-0```,=$)`0!````HVQ?"0BA@)@*"(D$).B*4P``B00DZ/+\ -XM``#'1"0,D;T(",=$)`@V````QT0D!`$```"C<%\)"*&`F`H(B00DZ%A3``") -XM!"3HP/P``,=$)`RAO0@(QT0D"#<```#'1"0$`0```*-T7PD(H8"8"@B)!"3H -XM)E,``(D$).B._```QT0D#/O>"`C'1"0(.````,=$)`0!````HWA?"0BA@)@* -XM"(D$).CT4@``B00DZ%S\``#'1"0,J+T(",=$)`@Y````QT0D!`$```"C?%\) -XM"*&`F`H(B00DZ,)2``")!"3H*OP``,=$)`RXPP@(QT0D"#H```#'1"0$`0`` -XM`*.`7PD(H8"8"@B)!"3HD%(``(D$).CX^P``QT0D#+N]"`C'1"0(.P```,=$ -XM)`0!````HX1?"0BA@)@*"(D$).A>4@``B00DZ,;[``#'1"0,RKT(",=$)`@\ -XM````QT0D!`$```"CB%\)"*&`F`H(B00DZ"Q2``")!"3HE/L``,=$)`S:O0@( -XMQT0D"#T```#'1"0$`0```*.,7PD(H8"8"@B)!"3H^E$``(D$).AB^P``QT0D -XM#.3#"`C'1"0(/@```,=$)`0!````HY!?"0BA@)@*"(D$).C(40``B00DZ##[ -XM``#'1"0,\;T(",=$)`@_````QT0D!`$```"CE%\)"*&`F`H(B00DZ)91``") -XM!"3H_OH``,=$)`P(Q`@(QT0D"$````#'1"0$`0```*.87PD(H8"8"@B)!"3H -XM9%$``(D$).C,^@``QT0D#`V^"`C'1"0(00```,=$)`0!````HYQ?"0BA@)@* -XM"(D$).@R40``B00DZ)KZ``#'1"0,*+X(",=$)`A#````QT0D!`$```"CH%\) -XM"*&`F`H(B00DZ`!1``")!"3H:/H``,=$)`P[O@@(QT0D"$0```#'1"0$`0`` -XM`*.D7PD(H8"8"@B)!"3HSE```(D$).@V^@``QT0D#%&^"`C'1"0(10```,=$ -XM)`0!````HZA?"0BA@)@*"(D$).B<4```B00DZ`3Z``#'1"0,7[X(",=$)`A& -XM````QT0D!`$```"CK%\)"*&`F`H(B00DZ&I0``")!"3HTOD``,=$)`QQO@@( -XMQT0D"$<```#'1"0$`0```*.P7PD(H8"8"@B)!"3H.%```(D$).B@^0``QT0D -XM#(B^"`C'1"0(2````,=$)`0!````H[1?"0BA@)@*"(D$).@&4```B00DZ&[Y -XM``#'1"0,FKX(",=$)`A)````QT0D!`$```"CN%\)"*&`F`H(B00DZ-1/``") -XM!"3H//D``,=$)`RHO@@(QT0D"$H```#'1"0$`0```*.\7PD(H8"8"@B)!"3H -XMHD\``(D$).@*^0``QT0D#"S$"`C'1"0(2P```,=$)`0!````H\!?"0BA@)@* -XM"(D$).AP3P``B00DZ-CX``#'1"0,3,0(",=$)`A,````QT0D!`$```"CQ%\) -XM"*&`F`H(B00DZ#Y/``")!"3HIO@``,=$)`RQO@@(QT0D"$T```#'1"0$`0`` -XM`*/(7PD(H8"8"@B)!"3H#$\``(D$).AT^```QT0D#,*^"`C'1"0(3@```,=$ -XM)`0!````H\Q?"0BA@)@*"(D$).C:3@``B00DZ$+X``#'1"0,<,0(",=$)`A/ -XM````QT0D!`$```"CT%\)"*&`F`H(B00DZ*A.``")!"3H$/@``,=$)`R]P``QT0D -XM#-B^"`C'1"0(40```,=$)`0!````H]A?"0BA@)@*"(D$).A$3@``B00DZ*SW -XM``#'1"0,\;X(",=$)`A2````QT0D!`$```"CW%\)"*&`F`H(B00DZ!).``") -XM!"3H>O<``,=$)`S`Q`@(QT0D"%,```#'1"0$`0```*/@7PD(H8"8"@B)!"3H -XMX$T``(D$).A(]P``QT0D#`V_"`C'1"0(5````,=$)`0!````H^1?"0BA@)@* -XM"(D$).BN30``B00DZ!;W``#'1"0,([\(",=$)`A5````QT0D!`$```"CZ%\) -XM"*&`F`H(B00DZ'Q-``")!"3HY/8``,=$)`P]OP@(QT0D"%8```#'1"0$`0`` -XM`*/L7PD(H8"8"@B)!"3H2DT``(D$).BR]@``QT0D#%>_"`C'1"0(5P```,=$ -XM)`0!````H_!?"0BA@)@*"(D$).@830``B00DZ(#V``#'1"0,9[\(",=$)`A8 -XM````QT0D!`$```"C]%\)"*&`F`H(B00DZ.9,``")!"3H3O8``,=$)`QROP@( -XMQT0D"%D```#'1"0$`0```*/X7PD(H8"8"@B)!"3HM$P``(D$).@<]@``QT0D -XM#(F_"`C'1"0(6@```,=$)`0!````H_Q?"0BA@)@*"(D$).B"3```B00DZ.KU -XM``#'1"0,F+\(",=$)`A;````QT0D!`$```"C`&`)"*&`F`H(B00DZ%!,``") -XM!"3HN/4``,=$)`RSOP@(QT0D"%P```#'1"0$`0```*,$8`D(H8"8"@B)!"3H -XM'DP``(D$).B&]0``QT0D#,R_"`C'1"0(70```,=$)`0!````HPA@"0BA@)@* -XM"(D$).CL2P``B00DZ%3U``#'1"0,W[\(",=$)`A>````QT0D!`$```"C#&`) -XM"*&`F`H(B00DZ+I+``")!"3H(O4``,=$)`SOOP@(QT0D"%\```#'1"0$`0`` -XM`*,08`D(H8"8"@B)!"3HB$L``(D$).CP]```QT0D#`S`"`C'1"0(8````,=$ -XM)`0!````HQ1@"0BA@)@*"(D$).A62P``B00DZ+[T``#'1"0,'\`(",=$)`AA -XM````QT0D!`$```"C&&`)"*&`F`H(B00DZ"1+``")!"3HC/0``,=$)`PNP`@( -XMQT0D"&(```#'1"0$`0```*,<8`D(H8"8"@B)!"3H\DH``(D$).A:]```QT0D -XM#$+`"`C'1"0(8P```,=$)`0!````HR!@"0BA@)@*"(D$).C`2@``B00DZ"CT -XM``#'1"0,3\`(",=$)`AD````QT0D!`$```"C)&`)"*&`F`H(B00DZ(Y*``") -XM!"3H]O,``,=$)`Q````,=$)`0!````HW1@"0BA@)@* -XM"(D$).BF1@``B00DZ`[P``#'1"0,K,4(",=$)`AY````QT0D!`$```"C>&`) -XM"*&`F`H(B00DZ'1&``")!"3HW.\``,=$)`SP```,=$ -XM)`0!````HX!@"0BA@)@*"(D$).@01@``B00DZ'CO``#'1"0,ML$(",=$)`A\ -XM````QT0D!`$```"CA&`)"*&`F`H(B00DZ-Y%``")!"3H1N\``,=$)`S-P0@( -XMQT0D"'T```#'1"0$`0```*.(8`D(H8"8"@B)!"3HK$4``(D$).@4[P``QT0D -XM#`#&"`C'1"0(@````,=$)`0!````HXQ@"0BA@)@*"(D$).AZ10``B00DZ.+N -XM``#'1"0,W\$(",=$)`B!````QT0D!`$```"CD&`)"*&`F`H(B00DZ$A%``") -XM!"3HL.X``,=$)`SYP0@(QT0D"((```#'1"0$`0```*.48`D(H8"8"@B)!"3H -XM%D4``(D$).A^[@``QT0D#$C&"`C'1"0(@P```,=$)`0!````HYA@"0BA@)@* -XM"(D$).CD1```B00DZ$SN``#'1"0,"\((",=$)`B$````QT0D!`$```"CG&`) -XM"*&`F`H(B00DZ+)$``")!"3H&NX``,=$)`P@P@@(QT0D"(4```#'1"0$`0`` -XM`*.@8`D(H8"8"@B)!"3H@$0``(D$).CH[0``QT0D##?""`C'1"0(A@```,=$ -XM)`0!````HZ1@"0BA@)@*"(D$).A.1```B00DZ+;M``#'1"0,5<((",=$)`B' -XM````QT0D!`$```"CJ&`)"*&`F`H(B00DZ!Q$``")!"3HA.T``,=$)`QFP@@( -XMQT0D"(@```#'1"0$`0```*.L8`D(H8"8"@B)!"3HZD,``(D$).A2[0``QT0D -XM#'#&"`C'1"0(B0```,=$)`0!````H[!@"0BA@)@*"(D$).BX0P``B00DZ"#M -XM``"CN&`)"(/$%%M=PY"0D)"053'`B>6+50A75E.+"H7)="B+-=A@"0B)UXVT -XM)@````!IP/$````QTHT$`8M/!(/'!/?VA6#["BA0)D+"(E=](EU^(E]_(7`=`J+'=A@"0B%VW5RBQW4 -XM8`D(A=L/A;````"+'?!@"0B+->Q@"0B)WP'W=$6A@)@*",=$)`P!QP@(QT0D -XM"`0```#'1"0$#0```(D$).CI0@``:\YDB5PD"(ET)`2)RL'Z'XD$)(G(]_^) -XM1"0,Z&D\`P"+7?2+=?B+??R)[%W#BS7,8`D(A?9TA*&`F`H(QT0D#*3&"`C' -XM1"0(`@```,=$)`0-````B00DZ(U"``"-%/4`````B50D"(E<)`2)!"3H%CP# -XM`.E#____D*&`F`H(QT0D#.S&"`C'1"0(`P```,=$)`0-````B00DZ$M"``") -XM7"0$B00DZ-\[`P#I&O___XUV`(V\)P````!5B>6#[`BAT&`)",<%0)D+"``` -XM``")!"3HX^T"`,<%T&`)"`````#)PXVT)@````!5B>53@^P4QT0D!,28"@C' -XM!"2`,@D(Z#5*`0"%P'1+BQWH=@H(Z&;\``"+10C'!<"8"@@!````QP7H=@H( -XM`````(D$).BG[```QP0D"@```.AK_@``Z#;\``")'>AV"@C'!<"8"@@````` -XM@\046UW#58GE5E.#['"+10B%P'0&BPB%R75KBT4,B00DZ*!;`P")QHU%F(E$ -XM)`2)-"3H*V+__X/``70@BU40A=)U(P^W3:")RH'B`/```('Z`(```'4%@^%) -XM=5*#Q'`QP%M>7<.0#[=-H+@!````B7<.+ -XM50R)!"2)5"0$Z(%8`P")PXD$).@G6P,`B1PDB<;HO>P"`.EZ____B30DQT0D -XM!`$```#HA&'__X7`#Y3`@\1P6P^VP%Y=PXGVC;PG`````%6)Y5=64X/L+(M% -XM#(M]"(7`#X5A`@``QT7P`````*$@)`D(P>`$!>#2"`@]X-(("'9YN_#2"`B+ -XM0_")!"3HWEP#`(D\)(E$)`3HKE[__X7`=4.+10R%P`^$Z@$``*&`F`H(QT0D -XM#"W'"`C'1"0("0```,=$)`0-````B00DZ#Y```")?"0$B00DZ-(Y`P#'1?`! -XM````H2`D"0B)VH/#$,'@!`7@T@@(.=!WC,=$)`3$F`H(QP0DE#()".A12`$` -XMA<")PP^$/P$``*%`F0L(QT7H`````(7`#X5C`@``B7PD!,<$)+@X"0CH4U<# -XM`(E%Y,=$)`0P*@@(B00DZ!#A__^+&X7;#X3S````BS.%]@^$Z0```(M%Z(M5 -XMZ,=%[``````!P,'B`HE%W(E5X.LFB?;V!=1@"0@"#X76````@\,$#X2W```` -XMBS.%]@^$K0```(-%[`&A0)D+"(7`=$C'1"0$C#,)"(DT).B/7?__A"+3>R+!`*#X1_3Z(/P`8/@ -XM`83`=9C'1"0(`````(M%Y(DT)(E$)`3H=/W__X7`#X1L____BW4,A?9T?(L# -XMQP0D4<<("(E$)`3H@S@#`(E\)`3'!"01%PD(Z',X`P"#PP3'1?`!````#X5) -XM____BU7DB10DZ&C?__^+1?"#Q"Q;7E]=PZ&`F`H(QT0D#$7'"`C'1"0("@`` -XM`,=$)`0-````B00DZ(@^``")!"3H(#@#`(MU#(7V=83'1?`!````BT7P@\0L -XM6UY?7<.AT&`)"(M5Z(M-[`^V!!"#X0?3Z(/P`8/@`>DI____B3PDZ'!8`P#' -XM1"0$+P```(D$).APW0``A<`/A;@```#'1"0$E'8*"(D\).AH1@$`A<`/A&?] -XM___'1"0$E'8*"(D\).A01@$`A<")PP^$3?W__Z&`F`H(QT0D#!O'"`C'1"0( -XM"````,=$)`0-````B00DZ-$]``")?"0$B00DZ&4W`P"+`X7`=`B)!"3HI^@` -XM`,<$)`H```#H:_H``,=%\`$```#I_?S__Z'08`D(BU77UW# -XMD%6)Y593@^P0BU4(BT($A575E.#[$R+10B+>`C'1"0$E'8* -XM"(L'B00DZ.]$`0#'1<0`````A#2"`@/AKP```"^ -XM\-((".L:H2`D"0B)\H/&$,'@!`7@T@@(.=`/AIL```"+1O")!"3H*U@#`(L? -XMB1PDB40D!.CY6?__A7UW#C;0F`````#G(#X18____#0```$")`X/# -XM!(/"!(L"A)!"3H28D``(D'B00DQT0D!#`J"`CH9]S__XL7 -XMB57(B10DZ#I5`P#'1"0$+P```(D$).@ZV@``B474QT0D!,28"@C'!"24,@D( -XMZ#-#`0"%P'00BS"%]G0*BP:%P`^%#0(``+[`(`D(BT7(QP0DN#@)"(E$)`3H -XM-U(#`,=%T`````")1=BA0)D+"(7`#X6?`@``BT70BU70BQ['1")5=SK/XL#A<`/A8$```#'1"0(`````(M%R,<$)`````")1"0$Z,_X -XM__^%P`^%E0```(M>!(/&!(7;#X1+`0``@T7,`8M%U(7`=;J+`X/X+W6UBPU` -XMF0L(A[`0```,<$),`X"0B)1"0$Z+-0`P")!XD$),=$)`0P*@@( -XMZ'':__^+50B)%"3H-K8``(L'B00DZ+S9___K,X/"!(D7BPKIL_S__XM%V(D$ -XM).C#Y`(`BT4,A<`/A)T```"+!S';B00DZ.Q0`P"+50R)`HU%[(D$).A\V?__ -XM@\1,B=A;7E]=PXM%U(7`#X3M_?__Z>/]__^AT&`)"(M5T(M-S`^V!!"#X0?3 -XMZ(/P`8/@`>F6_O__BT7$A<`/A;D```"A@)@*"(L?QT0D#%7'"`C'1"0(!0`` -XM`,=$)`0-````B00DZ&$X``")7"0$B00DZ/4Q`P#HX/(``.FJ_/__BT7$A<`/ -XMA8$```"A@)@*"(L?QT0D#'+'"`C'1"0(!@```,=$)`0-````B00DZ!DX``") -XM7"0$,=N)!"3HJS$#`.B6\@``Z2K___^+5"+3

3@,`B0>)'"3H).,"`,=$)`0P*@@(BP>)!"3HDMC__XM5#(72=".+!XD$ -XM).A!3P,`BU4,B0*+![L!````B00DZ,W7___I0?[__XM5"(D4).@MM```Z]^- -XM="8`C;PG`````%6)Y5=64X/L+(M=",=$)`3$F`H(QP0DE#()".@P/P$`A=N) -XMQG1BBT,$A`$`A?;'!4"9"P@!````#X1R`0``BS:%]@^$:`$` -XM`(L&A<`/A%X!``#'1?``````ZQB#Q@0/A$P!``"+!H7`D`^$00$``(-%\`&# -XM."]UXXD$).B93P,`B00DZ#U6__^%P(G'=,V)!"3'1"0$,!X%".B;UO__BT7P -XMBU7P@^`?@^(/B47HB57DB3PDZ'U9__^%P(G"#X3=````BPJ%R73H@'H(+G4; -XM@'H)`'3B-%(4`````N`$````#%=!@ -XM"0C3X`D"]@748`D(`0^$=?___XD<).@&40,`B00DZ/[P___'1"0,BL<(",=$ -XM)`@!````QT0D!`T```")1>RA@)@*"(D$).AV-```BU7PBTWLB5PD#(E4)`B) -XM3"0$B00DZ/PM`P")/"3HH%C__X7`B<(/A2/___^)/"3H\M3__X/&!`^%M/[_ -XM_X/$+%M>7UW#BTWP`P708`D(@^$'T^(($.EA____H2-%`"X`0````,5T&`)"-/@9@D"Z3C____'!53@^P4BUT(QT0D -XM"`````#'!"0"````C4,DB40D!.C75?__C4,\QT0D"`````")1"0$QP0D`P`` -XM`.B\5?__C4-4QT0D"`````")1"0$QP0D#P```.BA5?__QP7\F`H(`````(M# -XM(*/H=@H(H;1V"@B)!"3H!M<``*',EPH(B00DZ/G6``"A!'8*"(D$).CLU@`` -XMH429"PB)!"3HW]8``(M#$(E$)`2+`XD$).@>VP``QT0D"`$```#'1"0$`@`` -XM`(D$)*.T=@H(Z,U0__^+0Q2)1"0$BT,$B00DZ._:``#'1"0(`0```,=$)`0" -XM````B00DH\R7"@CHGE#__XM#&(E$)`2+0PB)!"3HP-H``,=$)`@!````QT0D -XM!`(```")!"2C!'8*".AO4/__BT,A@"0B)!"3H[=T" -XM`,<%Z&`)"`````"AY&`)"(7`=!")1"0$QP0D-P``$.A:T/__QP0D#0``$.A. -XMT/__R57B==64X/L+(E%V(D4).BZ3`,`B<.+1=B) -XM!"3H[4L#`(D=7)D+"(G&Z`Q3___'``````")7"0$B30DZ#I4___'!5R9"P@` -XM````B1PDZ*S6``#HXU+__XL`@_@(=%"#^`QT&X/X`G0-H>1@"0B%P`^$N@$` -XM`(/$+%M>7UW#D.BW4O__BP")!"3H75#__XET)`3'!"0V````B40D".B=S___ -XM@\0L6UY?7<.0C70F`,=$)`0`````B30DZ,#2``")1>"#P`%T+XU%\L=$)`@" -XM````B40D!(M%X(D$).A.T@``@_@"#X2!`0``A)!XE\)`2+1=R)!"3H(=<``(DWB<.+.(D$ -XM).AS2P,`B3PDB<;HJ4H#`(D<)(G'Z#_<`@"+1=R)!"3HA-4``(ET)`2)/"2) -XM-5R9"PCH[E+__XDT),<%7)D+"`````#H8-4``.B74?__BP")!"3H/4___XE\ -XM)`3'!"0V````B40D".A]SO__@\0L6UY?7<.0C70F`,=$)`3$F`H(QP0D*#() -XM".A,.`$`A<`/A-T```#'1"0$Q)@*",<$)"@R"0CHD#@!`(-]X/^)1>AT#H!] -XM\B-T"*&DF`H(B47HQT7L`````(U%Z(D$).C'V0``B47")!"3H^-(``(D<).@\3O__B70D!,<$)'@```")1"0( -XMZ'S-___I+O[__Z%T=PH(Z2W___^-M@````"-O"<`````58GE5U93@^Q,BWT( -XMC5WLBT<0BP#'1?``````B47LBT4,A%P`^$Y0$``(L(AO__\<%M'8*"``` -XM``#'!QT70``````'2P>`"B56XB46\ZRJ)]HL#AQ@"0@!QP5,F0L(`````(D4 -XM).B4UP(`Z&_Y__^#Q$Q;7E]=PXM%R(7`#X2I_O__Z9_^__^+!XD$).C]Y___ -XMB47,Z<#^__^AT&`)"(M5S(M-T`^V!!"#X0?3Z(/P`8/@`>DU____B40D!(D< -XM).A:>```A<")Q@^%G_S__XM%[(D$).B%10,`QP0D,0``$*,@=PH(Z*3)___I -XM?OS__XD<)(E$)`3H(W@``(7`B<,/A03]__^AZ&`)"(D$).A,10,`QP0D,0`` -XM$*,@=PH(Z&O)___IX?S__XVV`````*'H8`D(BQ"#^B\/A(G\__^#^BX/A(#\ -XM___HDOC__Z'H8`D(Z7'\__^AT&`)"(M5N(M-T`^W!`*#X0_3Z(/P`8/@`>EX -XM_O__B?:-O"<`````58GE5E.#Q("AC'8*"(MU#(7`=0VAE'<*"(7`#X5/`@`` -XMQT0D!,28"@B-78S'!"1@-@D(Z,@R`0#'!"0`````A<`/E<`/ML")1"0$Z$"$ -XM``"-1;")1"0(QT0D!-!V"@C'!"0"````Z(%,__^-1")1"0(QT0D!%1W"@C'!"0/````Z$M,__^AZ'8*"(L5 -XMM'8*",=$)`3_____B46LHAV"@@` -XM````Z+O)___'!"3_____Z!_O`@")-"3'1"0$`0```.A/^?__B1PDZ/?(__^# -XM[(!;7EW#QP0D`````.ADZ@``Z:#]__^0D)"0D)"0D)"0D)"0D)!5A<")Y5.) -XMTP^$`@$``(L(A='N#^2)T=HUT -XM)@"#XPAT8(/Y/+@$````C78`=`>#^3ZP`G5,6UW#C70F`(M`"(7`==GVPQ!T -XM%H/Y?)!T.(/Y/'1N@_D^=0:#^CZ0=##VPP1TN8/Y/70_@_DAD'6N@_H]N`8` -XM``!TO8/Z?K`(=9WKM%LQP%W#@_HFC78`==!;N`$```!=PXVV`````(G06UW! -XMZ`2#X`'#@_H]=.*#^GZX!P````^%8O___XGVZ73___^#^CQUF(VV`````.O` -XMC;0F`````(V\)P````!5B>6#['B)!"2)7?2)=?B)UHE]_.CG0`,`@#@`B<-T -XM(8U&_X/X`78@B70D!(D<).A(1___BUWTBW7XBWW\B>Q=P[@!````Z^R-192) -XM1"0$B1PDZ$5'__^#P`%TY8ET)`2)'"3H%$?__X7`#X2"````BT6@.P4LF0L( -XM#X26````BT6D.P7HF`H(=%7'!"0$````Z'9&__^#^/^)QP^$H0```(7`#XZH -XM````C12%`````(D4).BXT@(`B3PDB<.)1"0$Z`9'__^+?:2-#(.)PHGV@^H! -XM>&.+0?R#Z00Y^'7Q#[=5G,'F`S'`A=8/E,#I0O___P^W59R)T"4`\```/0!` -XM``!T&H/^`70B@_X"="2)]N@G1?__#[=5G,'F!NO(9C'`@_X!=>/I"?___[Y) -XM````Z[1FOI(`ZZX/MU6575E.! -XM[/P```"+?0B)^X/#!(L#QP0DIL<("(E$)`3H:L0``(7`=>>+`X7`=0V#>_Q, -XMC5/\#X0``P``B40D!,<$)+W'"`CH0\0``(7`=7O'A13______P``QX48____ -XM`````,>%(/___Q`O"0B+`X7`#X6P````C4<$.=@/A*4```"+10RZ'P```(L8 -XMBS.)\.B9_/__A<`/A4D"``"+50R-0P2)`O9%$`$/A(D```#'!"3X;PD(Z*,\ -XM`P")QX'$_````(GX6UY?7<.+,X/#!,>%%/______``#'A2#___]L+PD(@_Y& -XM=!.#_E#'A2#___\@+PD(#X1)`@``QT0D!&PO"0B)'"3H?T+__X7`#X3^`0`` -XMQX48____`````(L#A<`/A%#____'!"1Z```0Z'O"___I2O___XDT)#'VQT0D -XM!`(```#H)'(``(F%'/___XD$),=$)`0P*@@(Z#[%__^+5P2-1P3'A1#___\` -XM````,?^)PXU"J(/X('9"A=(/B-8````Y%=Q="0@/CLH```"AX%T)"(N$D#0$ -XM``"#^&P/A,````"%_P^$ZP0``(U"OX/X.7#PP2%]G6)BY4<____B10D -XMZ`7$__^)-"3HG2P!`('$_````%M>B<>)^%]=P[H"````Z[.+E1S___^)%"3H -XM63T#`(D$).C]/___B00DZ`5'__^)QNNDN@0```#KBL=$)`0`````BX4<____ -XMB00DZ#CB__^)QNN#B="#^&P/A4#___^+A1#___^%P`^$500``(/Z3`^%,?__ -XM_XN]$/___XM3!(U#!+X!````A=(/A=W^__^+E1S___^)%"3HVSP#`(D$).CC -XMQ@``B[4@____A<")PW0*B00DZ.\^`P")QHD<).A5S@(`BX4<____B00DZ"?# -XM__^)-"3H?SH#`(G'Z=?]__^)-"3HD#P#`(U5B(E4)`2)!"3H'4/__X7`#X6C -XM````BU4,BQJ+,^F,_?__B70D!,<$),K'"`CH;<$``(7`#X3J_?__@\,$QX48 -XM____`0```.DR_?__B=.P3.GW_/__BP.#^"\/CJS]__^#^#QX4@____("\)".E:_?__,?;I-?[__\<$)`L``!#H^K___XM% -XM#(L8BS/IW?S__X/Z00^$=P,``(/Z30^$G`,``(MW*(N5&/___XEU\(72#X3W -XM_?__C47PB00DZ'E!__^)!"3HM3T#`,=$)`0*````B00DBF-?>B)\R7_#0``(X44____QT0D"-''"`C'1"0$!P```(E$)`R)-"3HPAD# -XM`(N%&/___X7`=`R`?>DP=`;&1>@PB?N+E1S___^)%"3HCL#__XD<).@V/`,` -XMB00DZ-XW`P")Q^DV^___BWC[__\/MT<()0#P```] -XM`"````^4P`^V\.G/^___#[='""4`\```/0!````/E,`/MO#IMOO__[X!```` -XMZ:S[__\/MT<()0#P```]`(````^4P`^V\.F3^___#[=W",'N"H/F`>F$^___ -XM#[=W",'N"8/F`>EU^___BY40____#[="""4`\```/0"@```/E,`/MO#I5OO_ -XM_XMW!.E.^___#[=W"NE%^___BY4<____B10DZ-@X`P"-58B)5"0$B00DZ&4_ -XM__^#P`$/A+@```"+$XU]B.GE^O__BX4<____B00DZ*@X`P"-E2C___^)5"0$ -XMB00DZ`(\__^#P`$/A*@```"+$XV%*/___XF%$/___^EO^___BT<0B00DZ!_! -XM``"%P(GX_?__BY4<____B10DZ->^__^+!HD$).A].@,`B00DZ"4V`P") -XMQ^E]^?__BW<8Z8W\__^+1PR)!"3H.\```(7`B<8/A+3]__^+A1S___^)!"3K -XMNHVV`````(MW(.E?_/__BX4<____B00DZ'J^__^+E2#___^)%"3HS#4#`(G' -XMZ23Y__^+E1S___^)%"3H5[[__XN%(/___XD$).BI-0,`B57B<=64X/L'(E5 -XMZ.@M"@``B47PB00DQT0D!#`J"`CH:K[__XL?N@0```"+`^CL]/__A<")Q@^$ -XMH@```(U#!(D'C4;YBUWH@_@!#X;>````B=J)^.CE"0``B47LQT0D!#`J"`B) -XM!"3H(K[__X/C`74?@_X5````C70F`'YN@_X'#X2M````@_X(B?9T?XM% -XM\(D$).A3O?__BQ^+`X7`=!3'1"0$,#L)"(D$).C'.O__AR)1"0$BT7P -XMB00DZ)UP``"%P`^4P`^V\.EB____@\L"Z1K___^+1>R)1"0$BT7PB00DZ'9P -XM``")QNE!____BT7LB40D!(M%\(D$).@9.O__A<`/E<`/MO#I(O___U6)Y8/L -XM&(E=](G#B77XB7W\B57PZ'?^__^+.XG&BP>%P'04QT0D!"@["0B)!"3HV3G_ -XM_X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\QQNO>C;0F```` -XM`%6)Y8/L&(E=](G#B77XB7W\B57PZ(?___^+.XG&BP>%P'04QT0D!"`["0B) -XM!"3H>3G__X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\)QNO> -XMC;0F`````%6)Y8/L&(E=](G3B77XB<:)??SHB/___XG'BP:)1?"+`(7`=!3' -XM1"0$%#L)"(D$).@7.?__AQ=PXM%\(/`!(7_B08/ -XME,`)PXGP@^,!B=KHG?___X7_#Y7"A<`/E<`/MO@AU^O%C;8`````C;\````` -XM58GE@^P8B5WTBUT,BT4(B77XB7W\B=KH9/___XG&BT4(BSB+!X7`=!3'1"0$ -XM"#L)"(D$).B3./__AQ=PXUT)@"+50B#XP$)\XU' -XM!(D"#Y7`#[;`B40D!(D4).B1____"?`/E<`/MO#KQ(VT)@````!5B>57B<=6 -XM4X/L3(E5O(L8BS.%]@^$&P(``,=$)`1`.PD(B30DZ"(X__^%P'5)@\,$B?B) -XM'XM5O.C#____QT0D!#`J"`B)PXD$).@1N___B=CH*OS__XD<)(G&Z&"Z__\Q -XMP(7V#Y3`B00DZ/$B`0"#Q$Q;7E]=P\=$)`1(.PD(B30DZ,4W__^%P'5%@\,$ -XMB?B)'XM5O.AF____QT0D!#`J"`B)QHD$).BTNO__B?#HS?O__XDT)(G#]]/H -XM`;K__XD<).B9(@$`@\1,6UY?7<.0QT0D!%`["0B)-"3H;#?__X7`=4R#PP2) -XM'XM%O(D\)(E$)`3HB/[__XG&BP>+$(72=`6#.BET#L<$)"$``!#H7;?__XL' -XMC5@$B1^)-"3H/B(!`(/$3%M>7UW#C;8`````QT0D!%@["0B)-"3H##?__X7` -XM#X4?`0``B=Z#Q@2-1>R)7<")\\9%R`''1# -XM/BT/A$L!``#V1;P"#X0L`0``B30DZ(DO`P#IT_W__XL'C5C\B1_'0/P````` -XMQT0D"`(```#'1"0$$"\)",<$)/0N"0CHZB@!`(U%X(E%Z(G#B47DQT7@^&\) -XM"(L&AW__^A@%X)"(7`=`S'!"0```!`Z/*T___'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$_____XD<).BZ`0$`C47@B00DZ`^W___HFE;__^DI -XM_O__QT0D!`(```")-"3H960``.F?_/__BT8$QP0DIL<("(E$)`3H;;4``(7` -XM=1N+1@3'!"2]QP@(B40D!.A6M0``A<`/A(/^__^+1;R)?"0$B30DB40D".BK -XM\/__Z57\__^-M@````!5B>6#["B)7?2)PXEU^(E]_(G7Z,C[__^Z`@```(E% -XM\(LSBP:)1>SHI.W__X7`=":-1@3WQP(```")`W0IBU7PB10DZ'C!`@"+1>R) -XM!"3HK2T#`(E%\(M%\(M=](MU^(M]_(GL7<.+5?#'1"0$,"H("(D4).C'MO__ -XMB?J)V.A^____QT0D!#`J"`B)QHD$).BLMO__@^+5>R+`H/X*G1G@_@O -XM=$*#^"5T'8UV`#'VBT7PB00DZ..U__^)-"3H>QX!`(E%\.N,B?#HC_?__X7` -XMB<-T2XM%\.B!]___B<+!^A_W^XG6Z\B)\.AO]___A<")PW0[BT7PZ&'W__^) -XMPL'Z'_?[B<;KJ(M%\.A.]___B<.)\.A%]___B<8/K_/KD,<$)$@```#H(K/_ -XM_XGVZZ7'!"1'````Z!*S__^)]NNUC;0F`````(V\)P````!5B>6#["B)7?2) -XMPXEU^(E]_(G7Z)C^__^Z`0```(E%\(LSBP:)1>SH5.S__X7`=1"+1?"+7?2+ -XM=?B+??R)[%W#C48$B0.+5?#'1"0$,"H("(D4).B8M?__B?J)V.B?____QT0D -XM!#`J"`B)QHD$).A]M?__@^R+`H/X*W0?@_@M=#`QVXM%\(D$).B\ -XMM/__B1PDZ%0=`0")1?#KCXM%\.AG]O__B<.)\.A>]O__C1P8Z]*+1?#H4?;_ -XM_XG#B?#H2/;__RG#Z[V-="8`58GE@^P8B5WTB77XB<:)??R)5?#H%____XG' -XMBP:+&(7;=!V+`\<$)-3'"`B)1"0$Z-NR``"%P'0'BP,[0P1T$(GXBUWTBW7X -XMBWW\B>Q=PY"#!@3'1"0$,"H("(D\).B]M/__BU7PB?#HD____\=$)`0P*@@( -XMB<:)!"3HH;3__X,[/'0HB?CHM?7__XG#B?#HK/7__XG!T_N)/"3HX+/__XD< -XM).AX'`$`BBP/HMNK__X7` -XMB<R)\.B#____QT0D!#`J"`B) -XMQHD$).C!L___]D7L`74=@_\#='F-M@````!^-H/_!`^$@P```(/_!8GV=$:+ -XM1?")!"3H\[+__XD\).B+&P$`B47PBT7PBUWTBW7XBWW\B>Q=PX/_`G75BT7P -XMZ(OT__^)PXGPZ(+T__\YPP^?P`^V^.NZBT7PZ'#T__^)PXGPZ&?T__\YPP^> -XMP`^V^.N?BT7PZ%7T__^)PXGPZ$ST__\YPP^=P`^V^.N$BT7PZ#KT__^)PXGP -XMZ#'T__\YPP^Q=PXGVN@$```#&1=W_Z]20C70F`%4QP(GE7>N(D(VT)@`` -XM``!5B>6#[`B)'"2)="0$BW4(BUT,Z%0R___'``````"+`XE%#(L&B44(BQPD -XMBW0D!(GL7>GU,O__B?:-O"<`````5;@!````B>575E.![$PA``#H*O___XU% -XM\,=$)`1`;04(B00DZ/>Q__^-A3/?__^)1"0$H;1V"@C'1"0(`"```(D$).C8 -XML0``A<")1?`/CM8-``"-E3/?__^)%"3&A`4SW___`.C'+`,`BTT(B0PDB40D -XM!.A$+O__BT4(B00DZ#DO__^+50B)1?"+7(+\@^-_@_L*#X20#0``.T4,#X2' -XM#0``,<"#^QL/E,"%P(F%V-[__P^$U0<``(M%\(/[&XM-"(T$@8F%S-[__P^$ -XM4`@``(N%S-[__\<``````(M5"#F5S-[__XF%T-[__W9"BXW,WO__B8W0WO__ -XMZQ>0C70F`(.MT-[__P2+C=#>__\Y30AS'8N5T-[__XM"_,<$)&#)"`B)1"0$ -XMZ#$R__^%P'31BX70WO__QT7L`````,=%E`````#'19@`````QT6<`````(,X -XM?@^$4P<``(N5T-[__\=$)`0O````B10DZ)PL__^+C=#>__\QTHF-W-[__X7` -XM=!2#P`2)PBN5T-[__XF%W-[__\'Z`HN-T-[__XE4)`2)#"3HF"<#`,=$)`0P -XM*@@(B87@WO__B00DZ&*P__^+A>#>__^#.'X/A$@&``")!"3H"R<#`(F%Y-[_ -XM_XN=Y-[__X7;#X1Z!@``BXWDWO__QT0D!#`J"`B)#"3H(;#__XN5Y-[__[B2 -XM'0D(BPJ%R0^%E0@``(D$).B0+___A<")A?S>__\/A!@,``#'A?C>__\````` -XMBXW__^)!"3HK*___\>%[-[__P$```#'A>C>__\`````B[7XWO__ -XMA?8/A.D$``#HT3+__X7`#X2M````BP")!"3H@RH#`(G'A?^)^8N5W-[__W4/ -XMZ9`````[`77$@\($@\$$BP*%P'7PBX7TWO__AR+ -XM`H7`#X13"P``.PL(.P2/C78`=0R#P@2#P0&+`H7`=>S'`@`` -XM```[C?3>__\/A3C___^+G>S>__^%VW0+BTV8A__^%P`^$ -XM0P<``(M%F(7`#X1H!```@[W8WO__`0^%2@<``(N%T-[__RM%"(M5#,'X`BG" -XMBX7XWO__C5K_A<`/A*,*``"+C=#>___'1"0(`@```,=$)`1(.PD(B0PDZ`5: -XM`0"+1>R+C=#>__^)7"0(B40D!(D,).B,60$`BX7@WO__B00DZ(ZM__^+79C' -XM!"0(````Z-_(``#'!"0(````Z-/(``"+C__^)#"3HH2O__X7`#X5B!@`` -XMQP0D(````.BQR```QP0D(````.BER```QP0D"````.B9R```QP0D"````.B- -XMR```Z`C'``"-C33___^#ZP&)C<#>__]T*,=$)`3$F`H(QP0D\$4)".BC%`$` -XMC94T____B97`WO__A<`/A/D)``"+10C'1"0$"0```(D$).BX+O__QX74WO__ -XM`````(7`#X3J````@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".A/K?__BY7$WO__ -XMH__^#992_B47`BT68B4PD"(-EF/V) -XM1<2+19S'1"0$`````(E%R(M%H(E%S(M%I(E%T(M%J(E%U(M%K(E%V(M%L(E% -XMW(M%M(E%X(M%N(E%Y(M%O(E%Z*',EPH(B00DZ'^L``"AS)<*",=$)`@!```` -XMQT0D!$;)"`B)!"3H$JP``(U%P(E$)`BAS)<*",=$)`0`````B00DZ$:L``#' -XM!"3$K`L(Z.JK___'A=3>__\!````BXW8WO__A__^%TG04 -XMQT0D!`````#'!"0`````Z-03`P"#!<2L"P@!QT0D!+"0"`C'!"3$K`L(Z#FL -XM__^+E<3>__^AS)<*"(E4)`2)!"3H_B?__XM%E(N-Q-[__\=$)`0`````B84T -XM____BT68B4PD"(F%./___XM%G(F%//___XM%H(-EH(")A4#___^+1:2)A43_ -XM__^+1:B)A4C___^+1:R)A4S___^+1;")A5#___^+1;2)A53___^+1;B)A5C_ -XM__^+1;R)A5S___^AS)<*"(D$).A,JP``BU4(BP*%P'12B=__^%P`^$$?G__XN5P-[__Z', -XMEPH(B50D!(D$).C-)O__BXW`WO__H%Z-[_ -XM_P````"+A?S>__^)!"3HCRW__X7`#X2[^___@\`(B00DZ)`E`P")Q^D(^___ -XMBY7HWO__A=(/CK#[__^+A?C>__^%P'2>Z,@L___'A>S>__\`````QX7HWO__ -XM`````.FK^O__C464B87$WO__BX7@WO__B00DZ(RI__^-E33___^+79B#O=C> -XM__\!B97`WO__#X6!_/__Z>#[__^+E>#>__^+G>#>__^+0@2#PP2%P`^%S@$` -XM`,=$)`3$F`H(QP0DD"\)".@]$0$`B5PD!(D$).@!(`,`B87DWO__BYWDWO__ -XMA=L/A8;Y__^-592)E<3>___I=?___XD\).AG(`,`C564B10DB40D!.A('@,` -XMZ?OY___'!"0*````Z/?$``#I&OC__\>%U-[__P$```#I"_W__\=$)`0O```` -XMB00DZ)\J__^%P`^%E?C__^C"*___BY70WO__QT0D!#`J"`C'!"0`````@\($ -XMB97__\`````QX7DWO__`````,>%^-[__P$```#'A>#> -XM__\`````Z1KY__^-M@````"#Z`2)A___IHO?__\=$)`3$F`H(QP0D($() -XM".C>#P$`A<`/A+7Y__^+`(7`#X2K^?__BPB%R8F-\-[__P^$F_G__XF%'-__ -XM_XGYBP&#P02%P'7WBY7PWO__BP*#P@2%P'7W.97PWO__#X0Y`0``.?ET+8UR -XM_(M2_#M1_(U!_(G#=1T[M?#>__\/A!D!```Y^W0-BT/\@^X$@^L$.09TXXN% -XM'-___XM`!(.%'-___P2%P(F%\-[__W6/BT68@\`!B468@^@!#X4D^?__B3PD -XMZ.L>`P")1>SIB_C__X/X+P^$*?[__XG>@\8$BP:%P'51.=X/A!;^__^)\"G8 -XMP?@"B1PDB40D!.@4'P,`B<.)!"3HRB`#`(D$).@BJ0``B1PDB___'!"22N0@(B50D!.C,_P(` -XMZ:KY__^)%"3H3R`#`.E>]___BXW\WO__B0PDZ(RI``#IJOC__X.%Z-[__P'I -XML_?__XE$)`2+193'1"0,4&T%",=$)`@$````B00DZ&@C__^+A>3>__^#O?C> -XM__\!BU68BWV4&]%-___X7`B<*)A03?__]U#\>%!-___P$```"Z`0```(N-`-__ -XM_XU$"O^)T3'2]_&)A__^-A33___^)A<#>__^+A__^%P`^.Q`$``(N- -XMR-[__XN%!-___XF](-___\>%"-___P````#!X0*#Z`&)C;S>__^)A;C>__^+ -XMG03?__^%VP^.4`$``(N-(-___S'VB[T(W___B8T8W___ZR*0BX6\WO__@\8! -XM`[W(WO__`848W___.[4$W___#X08`0``.;T`W___=M>+E1C?__^+`L<$))*Y -XM"`B)1"0$Z/_]`@"+A0S?__^Z(````(7`#X2+````BXT8W___BP&)1"0$BX4, -XMW___B00DZ+(;`P")PXD$).A8'@,`B1PDB840W___Z.JO`@"+C1#?__^-E33_ -XM__^)5"0$B0PDZ)XA__^%P'4X#[>-//___XG()0#P```]`*````^$R0```#T` -XMP```NCT```!T&#T`0```LB]T#X/A2;HJ````=06Z(````(D4).AYP```.;6X -XMWO__#XX-____BXT8W___BP&)!"3HB2+__XU8`3N=%-___P^-[O[__\<$)"`` -XM``"#PP'H/\```#N=%-___WSIZ=+^__]FQT7"4`#IW?W__\<$)`T```#H&\`` -XM`,<$)`H```#H#\```(.%"-___P&+E0C?__^#A2#?__\$.97(WO__#X5J_O__ -XMBY7@WO__B10DZ-&C___IW?;__XN5$-___XV%-/___XE$)`2)%"3HT"/__X7` -XM=1P/MX4\____NCX````E`/```#T`0```#X0C____ND````#I&?___XN%S-[_ -XM_\<$))*Y"`B)1"0$Z&3\`@#'!"0@````Z,B^``#'!"0(````Z+R^``#I*O;_ -XM_XU-\(D,).A,H___BT7P@<1,(0``6UY?7<.-392)C<3>___IEOG__XN%X-[_ -XM_XN5T-[__XE<)`B)1"0$B10DZ&1/`0#I6O7__S')QP(`````.XWTWO__#X4# -XM]/__Z<;T__^AS)<*",=$)`@!````QT0D!$3)"`B)!"3HV:(``(V--/___XF- -XMP-[__^G9]?__D)"0D)"0D)!5B>5=PXUT)@"-O"<`````58GE7<<%=&$)"``` -XM``##D%6)Y5W'!=0D"0@!````PY!5B>53@^P$H0!A"0B#^/]T$XD$)/\5\*P+ -XM",<%`&$)"/____^+'8"8"@B#^_]T,\<%@)@*"/_____K&I"-="8`Z/575E.#["R+11"+712)1"0(BT4,B5PD#(E$)`2+10B)!"3H9_[_ -XM_X,]`&$)"/^)QP^$V````#G##X30````B47LB00DZ&$D__^+#?Q@"0B%R8G" -XMC4`!B47H#X2Y````H?Q@"0B-=>2-7?")1?"0BT7HA<`/A(H```"A^&`)"`,% -XM_&`)""M%\(ET)!")7"0,B47DC47HB40D"(U%[(E$)`2A`&$)"(D$)/\5[*P+ -XM"(/``76[Z*(@__^#.`>-=@!U3J'X8`D(`<")1"0$H?Q@"0B)!"3H%JP"`(7` -XMB<)T,(M%\"L%_&`)"-$E^&`)"`'0B47PBT7HB17\8`D(A<`/A7;___^+/?Q@ -XM"0B0C70F`(/$+(GX6UY?7<.-0B&C^&`)"(D$).AVJP(`A<"C_&`)"`^%*O__ -XM_^O7C;0F`````%6)Y5=64X/L+,=$)`1P?`4(QP74)`D(`````,<$)-0D"0CH -XMZ9___Z$@)`D(QT7H`0```(E%\,'@!(VXX-(("('_X-(("'8DN^#2"`@Q]HL# -XMB00DZ!0C__\YQG,"B<:#PQ`Y^W+I@\8!B77HH>"7"@@QTL=%Y`$```#'1>P` -XM````@\`!]W7HA1T -XM6Z$@)`D(P>`$!>#2"`@[1=QVYHM%W(L8B1PDZ'4B__^)7"0$QP0D^]X("(G& -XMZ%?W`@`Y?>Q^&3MUZ',4QP0D(````(/&`>A>N@``.W7H=>R#1=P0@\`Y1=1^%HL]8&0)"(7_=5;'!"0*````Z"^Z``"#1>`!BT78.47@#X5? -XM____BQU@9`D(A=MT#,<$)`T```#H";H``,<$)`H```#H_;D``,<$)-0D"0CH -XMX9W__X/$+%M>7UWIM;<``,<$)`T```#HV;D``.NAV"@B)1=BAS)<*"(E%[*$$=@H(B47PZ.ZC``#'1"0(`0`` -XM`,=$)`0"````B477UW#B1PDB40D!.BR1P``A<") -XMPW0AQT0D!/`C!@B)WXD<).CZF___B1PDZ/*@``")QNDI_O__QP0D,0```.CO -XMF/__Z]&-M@````"-O"<`````58GE4X/L%(M="(L#HTAW"@B+0P3'!?R8"@@` -XM````HTB:"PB+0PBCZ'8*"*&T=@H(B00DZ`B>``"AS)<*"(D$).C[G0``H01V -XM"@B)!"3H[IT``(M#&(E$)`2+0PR)!"3H+*(``,=$)`@!````QT0D!`(```") -XM!"2CM'8*".C;%___BT,6#[`BAP'8*"(7`=3&AE'<*"(7` -XM=`C)PXVV`````,=$)`0!````QP0D`0```.BX&___QP7,K`L(`0```,G#QP0D -XM+@``$.A4E___Z\&)]E6)Y593@^PPH329"PB%P`^%50$``(UUX.@3-___B70D -XM",=$)`0`````QP0D$@```.CW&O__QT0D!`````#'!"02````Z%,;___'1"0$ -XM$@```,<$)`````#H/Q;__\=$)`@`````B70D!,<$)!(```#HMQK__X,]U)<* -XM"/]U:>G4````.QWP=@H(#X2>````B70D",=$)`0`````QP0D%0```.B%&O__ -XMQT0D!`````#'!"05````Z.$:___'1"0$%0```,<$)`````#HS17__\=$)`@` -XM````B70D!,<$)!4```#H11K__\<$)`\```#H&1G__X/X_XG#=8GH31G__XL` -XMB00DZ/,6___'1"0$ILD(",<$)#8```")1"0(Z"^6__\['?!V"@@/A6+___^A -XMW)D+",<$)`````")1"0$Z%H7__^AW)D+",<$)`\```")1"0$Z!45___'!"0/ -XM````Z*VT`@"#Q#!;7EW#QP0D2@```.C:E?__Z9K^__^0C70F`%6)Y5>)QU93 -XM@^P,BQ7@(@D(A=)X4+O@(@D(,?:-="8`BT,$B00DZ*43`P")/"2)1"0$Z*F7 -XM``"%P'02A?9T#,<$)"<``!#HA97__XG>BT,0@\,0A -XM7UW#QP0D%@``$#'VZ%V5___KYHUT)@"-O"<`````58GE@^Q(B7W\B<>-1>2) -XM7?2+70B)=?B+=0R)5=2)1"0$BP>)!"3HD1K__XM%U(7`=#Z+5>B)=?"+1>0[ -XM5?")7>Q]3HU5Y(E4)`2+!XD$).@X'/__,=*%P'A?BUWTB="+=?B+??R)[%W# -XMC;0F`````(GRB=B!\O___W_WT`G"="*)=>B+5>@[5?")7>2+1>1\LG\%.T7L -XM=JN)1>R)5?")]NNAH2R9"PB%P'35BT7LBU7PB47DB57HZXKHCA?__XGR@?+_ -XM__]_BP")1=R)V/?0"<(/A-\```"A@)@*",=$)`S4O@@(QT0D"`,```#'1"0$ -XM#P```(D$).CT]?__B00DZ%R?``#'1"0$,"H("(E%X(D$).@IE___BTW4N$7) -XM"`B%R0^%N0```(D$).@QGP``QT0D!#`J"`B)QHD$).C_EO__BT7")7"04B70D$(E\)`B)5"0,BU78B00DB50D!.CO[@(`BT7@ -XMB00DZ/25__^Z_____^FD_O__H8"8"@C'1"0,L,D(",=$)`@"````QT0D!`\` -XM``")!"3H%?7__^D<____H8"8"@C'1"0,M\D(",=$)`@$````QT0D!`\```") -XM!"3HZ_3__^D=____C;8`````58GE5S'_5E.#[`R+=0C'1?``````@\8$BQZ% -XMVW0T@SLM#X6*````@\,$BP.%P'3E@_AF#X3&````@_AH#X2S````QP0D@@`` -XM`.CRDO__B?;KU:'@(@D(,?:[X"()"(7`>$>)V(GZQP0D_____\=$)`3___]_ -XMZ';]__\]````@(/>_X/#$(L#A%]G03QT4(````((/$#%M> -XM7UWIEY+__X/$#%M>7UW#B=B)\^L*BT,$@\,$A=>+1?"%P'70QP0D````(.A-DO__Z\*_`0```.DH -XM____QT7P`0```.D<____D(UT)@!5B>56B<93@^P0H:`C"0B%P'0K,=OK#HL$ -XMG:0C"0B#PP&%P'09B40D!(DT).C;$?__A+`XE%\`^^$(L!*=!UVHM%\(D$).AI#P,`BTT(B0PD -XMB40D!.@V$?__AZ[F-M@````"-OP````!5B>6#[#B)7?2) -XMTXEU^(G&B7W\BW@(BT`$QP0DOB+5>R)1=B)5=R+5=R+1=B!\O___W_WT`G"#X2,```` -XMBPZ%R71WBT8,BU7PC' -XM1=0!````A?8/A6;____'1=P!````BS7@(@D(N^`B"0B%]G@3BU77UW#QP0D&```$.@IC___V478V`4@S@@(V04XS@@( -XMV=C[=V,=%R/_____'17UWIT8[__]E]Z@^W1>JT#&:)1>C9;>C? -XM?KKNHM5U(GP@\0\6UY?7>EH_?__VT8(V$W8V7WJ#[=%ZM@%(,X("+0, -XM9HE%Z-EMZ-]]R-EMZNN%BSZ%_P^$1?___[K^R0@(B=CH_O+__]E%V-@--,X( -XM"-E=V.DT____BP:%P`^%'O___[K7R0@(B=CHU_+__]E%V-@-*,X("-E=V.D- -XM____BP:%P`^$]_[__[KWR0@(B=CHL/+__]E%V-@-,,X("-E=V.GF_O__BP:% -XMP`^%Q````+K=R0@(B=CHB?+__]E%V-@-),X("-E=V.F__O__BP:%P`^%J?[_ -XM_]GNV478VNG?X,=%R`````#'1K>P;0,9HE%Z-EMZ-]]R-EMZNF&_O__ -XMBP:%P`^%1O[__[KOR0@(B=CH__'__^E!_O__NL;)"`B)V.CN\?__QT7(____ -XM_\=%S/___W_I3/[__XL&A<`/A`S^___'`VT```"ZYE7$/__A,EUX('[_P$``'_8B54(@\0$6UWI/A#__\<$)`````#H -XM,A#__P^WV(D<).@G$/__B5T,QT4(!575E.#[!R+10B) -XM1>RAT)<*"(E%\(L(AQT">L6@\($.P%U -XM#XM"!(/!!(7`=>^#.3UT%HM+!(/#!(7)=`2)S^O/@\0<6UY?7<.-0P3'`P`` -XM``")1"0$H="7"@B)!"3HAI,``*/0EPH(H=AU"0B)!"3H!)(``*'0EPH(B00D -XMZ,<'`P"CV'4)"(D[B3PDZ)B8`@"+1?")10B#Q!Q;7E]=Z8:8`@"-M@````!5 -XMB>575E.#[!RAT)<*"(E%X(L(A564X/L((M%"(M`!(7`=%:)!"3H=C@! -XM`(7`B<8/A+P```"A<&$)"(U=],<%<&$)"`$```")1?2)'"3'1"0$T#@&".AG -XMC/__B70D!,<$)!$7"0CHI^0"`(D<).BOB___@\0@6UY=P\<%=&$)"`$```#' -XM1"0$8'P%",<$)'1A"0CH*HS__XL=T)<*"(L#A)UU93@^Q,QT0D!,28"@B)1BQB%VW08QT0D!*PZ"0B)'"3H2@C__X7` -XM#X5[`@``QT70`0```(M7!#';N`$```"-=P2%T@^$LP```*&4=PH(A<`/A=@` -XM``")-"3HE3<``(G'A?]T$,=$)`3P(P8(B3PDZ`^+___V1=`!=`J#?<@@#X2_ -XM`0``BS>)^L=%S`````"+1=")5=31Z(A%N(7V=%2AE'<*"(7`=!GIU@$``(VT -XM)@`````-````0(D$).CCIP``BP:%P`^$3@$``(/&!(/X7'7A@'VX`'3;BQZ# -XMQ@2#^W9V<<<$)%P``$#H!:8``(G8Z\&+32)'"3H -XM&OL"`(DT).BR-@``B1PDB)^X7V#X2X_O__QT0D!,`["0B)-"3H$`;__XGZQT7,`````(7`#X4?_O__ -XMBW<$C5<$QT7,`0```.D-_O__C5WDB1PDZ,;Y`@")'"3H3HC__^DF_O__B=`- -XM````0(GVZ1#^___'1"0$O#H)"(D<).BW!?__QT70`@```(7`#X1M_?__QT0D -XM!-`Z"0B)'"3HF`7__\=%T`,```"%P`^$3OW__\=$)`3D.@D(B1PDZ'D%__^% -XMP`^5P`^VP(E%T.DN_?__C;8`````C;PG`````%4QP(GE@^P(BU4(Z,#\___) -XMZ9JA``"-=@"-O"<`````5;@@````B>6+50A=Z9_\___K#9"0D)"0D)"0D)"0 -XMD)!5B>575E.#["R-1>")!"3HK%,``*'@F0L(A"9 -XM"PAT+HG8BU`0BU@LA=)TY3L0=>$[5>!UW(/Z`G0QT!\=` -XM!`````#'!"0!````,?8Q_^C96```B<.-M"8`````@_L@#X2W````@_L)#X2N -XM````@_LC#X2X````@_O_B?8/A`D!``"#^PH/A`0"``")'"3HR4\``,=%\`$` -XM``")]L<$)`$```#HA%@``(/X7(G##X3^````@_LG#X3`````@_LB#X2W```` -XM@_O_C70F``^$N0```(/[*`^4P(G&BT7LAR)!"3HK/D"`(M% -XM\`GX=5J)\(3`=%2+3>R%R0^%OP$``(/[(+X!````#X5/____C;8`````QP0D -XM`0```.@$6```B7UW#,<`YWP^4 -XMP(/H`2''Z13____'!"0!````Z&]7``"#^`J)PP^%Z_[__[,@,?;I"?___Z$$ -XM80D(_R2%C,T(",=$)`0)R@@(,?;'!"04```0Z-F"__^#Q!R)\%M>7UW#H0AA -XM"0@Q]HD$).B0_@(`QT0D!!K*"`C'!"04```0HR!W"@CHIX+__X/$'(GP6UY? -XM7"__^#Q!R)\%M>7UW#QT0D!.(&"0@Q]L<$)!0``!#H1X+__X/$ -XM'(GP6UY?7<.+1>R%P`^$^O[__\<$)`H```#HMDT``(7V#X3H_O__BT7L@V@$ -XM`8D$).@_^`(`@\0) -XMQU:)UE.#[#R#_PJ)3@`````QT7L`````,=%\`````"C!&$)"(D-"&$) -XM"`^$Y@,``(U=Z,=$)`2PD0@(B1PDZ)2$___'1=``````H9B)'"3H?8/__X/$/%M>7UW#D(UT)@#_)(7,S0@(B=CH@0_/__ -XMA?8/B0O____I;O___X/_"W3D@_\$=-\QP.CR^___A?8/B>W^___I4/___Y"- -XM="8`@_\!#X1'`@``@_\!@]X`,<"#;=`!Z,;[__^%]@^)P?[__^DD____A?:- -XMM"8`````#X4*____@_\+C;0F``````^$!?___S'`Z)/[__^%]I`/B8W^___I -XM\/[__Y"-="8`@_\/#X77_O__A?:0C70F``^%RO[__S'`Z&/[__^-=@#IQO[_ -XM_X/_#P^%LO[__X7V#X6J_O__B=CH0_O__XM%[(7`#X7@`0``BU7HB10DZ*U] -XM__^)!"3H=8$``,=$)`0P*@@(B47,B00DZ**"__^+1B#?(+\.@^%,OW__X/H`8/_"HE%[,<$ -XM@@`````/A+````"#_P\/A1/]__^+1>C'1"0$H#L)"(D$).@<_O[_A<`/A?C\ -XM___I*?[__XUV`(M%T(7`#X6T_?__BQ7@F0L(A=(/A*;]__^+0BRCX)D+"(G0 -XMZ/CQ___IDOW__XL5Q",)".D/____BU7H@WR"_#H/A17^__^#Z`&)1>S'!((` -XM````Z0#^__^+`.DI____C478QT78`@```,=%W`````#'1>``````B00DZ&%- -XM``#I]?O__XM%R(E$)`2+1>B)!"3H=OW^_X7`#X52_/__Z8/]__^-M@````"- -XMO"<`````58GE@^P(BQ7@F0L(@WH0`G01C4(0B00DZ!--``#)Z1WX__^+0A0+ -XM0AAUYS'),=(QP.A:^___H>"9"PB#P!")!"3HNDL``*'@F0L(@T`4_X-0&/_) -XMZ>?W__^-M"8`````58GE@^P(H>"9"PB%P'07H2AW"@B%P'0(R<.-M@````#) -XMZ7K____'!"0O```0C78`Z.M\___KV(GVC;PG`````(L5*'<*"%6)Y872=`-= -XMPY!=,"9"PC'0!``````H91W"@B%P'4U -XM, -XM?O__H2AW"@B%P'4.B=DQTK@/````Z.?Y__^)70B#Q!!;7EWI&7[__XU3!+[X -XM;PD(ZYWK#9"0D)"0D)"0D)"0D)!5B>564X/L$(L=X)D+"(MU",<%Q",)"`H` -XM``"%VW44ZSV-0Q")!"3H-$L``(M;+(7;="N#>Q`"=>B+0Q0+0QAUX#'),=(Q -XMP.AT^?__C4,0B00DZ-E)``"+6RR%VW75B?$QTK@*````Z%3Y__^#Q!!;7EWI -XM^?7__XGVC;PG`````%6)Y5.#[!3'1"0$`````(M%"(M`!(D$).C3*@``QT0D -XM!#`J"`B)PXD$).CQ??__H2AW"@B%P'4(B1PDZ$#___^)70B#Q!1;7>DS??__ -XMC78`H2AW"@A5B>6%P'0$7<.)]ETQR3'2N`0```#IT?C__Y!5B>6#[!B+%>"9 -XM"PB+0BB%P'1CBT(@@W@$`(U(!'1!BP")2B")!"3H1/0"`(D$).AL?```QT0D -XM"`(```")1"0$H>"9"PB+0"B)!"3H<.T``*'@F0L(B00DZ!-*``#)PY#'1"0$ -XM`````,<$)`````#H+/W__\G#B10DZ/))``#)D,/K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[`B+#>"9"PB%R706BQ4H=PH(A=)T!LG#C70F`,GI2O___\<$)"\``!"- -XM=@#H^WG__^O9B?:-O"<`````58GE@^P(H>"9"PB%P'0GH>"9"PB#P!")!"3H -XM44@``*$H=PH(AGZ_O__QP0D+P``$(UV`.BK>?__Z\B) -XM]HV\)P````!5B>564X/L$(L=X)D+"(7;=`Z+`SL%[)@*"`^$@@```#';BQ4H -XM=PH(,?:#10@$A=)U'J'`=@H(A7 -XM7<.%VW6VC44(QT0D!`$```")!"3H&,#__X7`#Y3`#[;PZZZ+4PB+#?28"@B+ -XM0P0S!?"8"@@QT0G!#X5B____BT,,.P7XF`H(#X53____BTLHA"9"PB) -XM4"RCX)D+"*'`=@H(QP7$(PD($@```(7`#X09____Z(K[___HA?W__Y"-="8` -XMZ0G____'!"0A```0C70F`.@K>/__Z>S^__^-M@````!5B>6#[`BAC'8*"(7` -XM=0FAE'<*"(7`=1FA-)D+"(7`=`+)P\<$)$8```#H\7?__\G#QP0D`````.BS -XMFP``H329"PB%P'7;Z]N0C;0F`````%6)Y8/L&*&,=@H(A575KX!````4X/L#(M="(M%#(U[!(E%\(VV`````(L'B00D -XMZ`;?``#'1"0$`@```(D<)`^O\.CS?```BP.%P'04QT0D!&A-"0B)!"3H6?;^ -XM_X7`=,FA*'<*"(7`=`6^`0```*&4=PH(AQP0DQ*P+".B`>/__@\0,6UY?7>G$>P`` -XMQP0DQ*P+".AH>/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".CM>/__ZZ^#!<2L -XM"P@!QT0D!+"0"`C'!"3$K`L(Z-!X___I>?___XUT)@"-O"<`````58GE5KX! -XM````4X/L$*$H=PH(@T4(!(7`#X29````BUT(BP.%P`^$G@```,=$)`0@2`D( -XMB00DZ''U_O^%P'4QBT,$A7<.)]H7V=/.+50R+0A`IP\'[`HE<)`2)!"3HI7L``(M% -XM#(D$).@:_O__Z-5Z``"#Q!!;7EW#,53@^P4 -XMBT4(B00DZ&[Q`@#'1"0$\",&"(G#B00DZ+QW___HI_S__\=$)`3$F`H(QP0D -XM8#8)".BCW@``QP0D`````(7`#Y7`#[;`B40D!.@;,```QT0D"`````#'1"0$ -XM5'<*",<$)`\```#H6_C^_XE<)`3'!"0DR@@(Z*OX_O^)7"0$QP0D(,H(".B; -XM^/[_B1PDZ*=V___H,A3__\=%"`$```"#Q!1;7>EQ%/__D%6)Y8/L".@5_/__ -XMQT4,`````,=%"`````#)Z4$6__^058GE@^P(QT0D!)1V"@B+10B)!"3H=^`` -XM`,GI<1@!`)!5B>6#[`C'1"0$_____\<$),28"@CH9ML``,G#C70F`%6)Y593 -XM@^P0BT4(BW`$A?8/A-,```"+4`B-6`B%T@^$@@```,=$)`2@-PD(B30DZ(CS -XM_O^%P'58B30DZ'#O`@#'!"00```0HR!W"@CHCW/__XD<).@W?P``B30DB7>E7 -XMD0``QT4,_____\=%")1V"@B#Q!!;7EWI7MH``(/$$%M>7<.-M"8`````58GE -XM5U93@^PLBUT(BWL$@S\M=`S'!"1Z```0Z+!R__^-0PB)!"3H!2(``,=$)`3P -XM(P8(B47@B00DZ()U__^+=>")=?"+#H7)=%^-1?"#Q@3'1"0(`````(E$)`2) -XM/"3HO*[__\=$)`0P*@@(B<.)!"3H2G7__XE<)`3'!"22N0@(Z(K-`@")'"3H -XMDG3__XL>A=MTK<<$)!W<"`CH<,T"`(EU\(L.AE+Y0(`H91W -XM"@B%P'4DQT0D!`````#'!"0"````Z&KU_O_'!5!W"@@`````@\046UW#QT0D -XM!,"/"`C'!"0"````Z`KE`@#KVI"-M"8`````58GE@^P8B77XBW4(B5WTB7W\ -XMBWT,BT80B00DZ'"0__^+!Z,@=PH(BT80B00DZ,YQ``"-6/\[7PA\*SM?#'X, -XMQP0D#P``$.BEQ=_^''!"0.```0 -XMZ']P___KQXVV`````(V\)P````!5B>575E.#[`R+70B+0Q"+`(E%\(G"BP"I -XM````0`^%BP```(/X.G09B10DZ*!Q``"#^#H/A*(```"+5?"#.B5T>:$@)`D( -XMP>`$C;#@T@@(@?[@T@@(=E>_X-((".L-B?:%P'A$C7L0.?YV0XGP*?C!^`7! -XMX`2-'#B+1?"+"P^^$`^^`2G"B=!UUXD,).C?[0(`BU7PB10DB40D!.B@'0$` -XMA;R)WCG^=[TQVX/$#(G86UY?7<.+0P2H`70Q@^#^B4,$N\@C"0B) -XM%"3H;.L"`*/((PD(Z]6+1?"[Z",)"(D$).A5ZP(`H^@C"0CKOHM%\+O8(PD( -XMB00DZ#[K`@"CV",)".NGC;0F`````%6)Y5=6,?93@^P,BT4(B47PH="7"@B+ -XM&(7;#X24`@``BQ.%T@^$N0```#')@_H]#X2N````@\$!BQ2+A=(/A?X````Y -XMSGT"BV!^_\```!VVHD<))"-="8`Z&?M_O^I -XM```$`'31@SV`40D(`<<%0&0)"``````/E,(QP('[_P````^?P"'0HV"9"PCH -XM6?D!`*$\9`D(A<`/A$?^__^A0&0)"(7`#X4Z_O__Z$K)`0#I,/[__\=$)`2@ -XM3`D(B3PDZ-'L_O^%P'4-B1PDZ`EO`0#I#_[__\=$)`3@-`D(B3PDZ+#L_O^% -XMP`^%]_W__^B'S/__Z&+-__^)]NGF_?__B7T(@\0,6UY?7>G\;O__N`0```#I -XMG/W__XGV58GE5U93@^P,BT4(BW`$C7@$A?8/A)4"``"+!H7`="F)\^L*BT,$ -XM@\,$A)!"3H&F___XE\)`2)-"3H#N'_ -XM_\=$)`2(.PD(B30DZ.KK_O^%P`^$^````(GPZ,_9__^%P`^$%`$``,=$)`1% -XMR0@(NX````#'!"0`````Z+KQ_O_'1"0$1!="0CK'HM$GC2I```$`'4L@\,!@?O_````?R'WPP```$!U[8'[ -XM_P```';:B1PDB?;H9^O^_ZD```0`=-2#/8!1"0@!QP5`9`D(``````^4PC'` -XM@?O_````#Y_`(="C8)D+".A9]P$`BQT\9`D(A=MT+8L-0&0)"(7)=2/H4,7UWI,VW_ -XM_\=$)`3@-`D(B30DZ*_J_O^%P`^$O````,=$)`3`2PD(B30DZ)?J_O^%P'1V -XMQT0D!"A`"0B)-"3H@^K^_X7`#X7!````B3PDZ'=L``#'1"0(`@```,<$)-`O -XM"0B)1"0$Z'_=``")/"3H%VW__XD\).B_;/__B3PDZ#?F`@"+%8AW"@B%THG# -XM#X4\`0``QP5@90D(`````(/$#%M>7UWIR`$`B7T(@\0,6UY?7>E?;/__Z,K)___HI7UWI'N#__\=$)`0\0`D( -XMB30DZ*KI_O^%P'1%QT0D!!A*"0B)-"3HENG^_X7`#X7I````B3PDZ(IK``#' -XM1"0(`@```,<$)`!*"0B)1"0$Z)+<``")/"3H*FS__^F3_O__B7PD!(D\).AY -XM+O__B3PDB -XM7UWI*S?__[@(````OQZR"`C\B=Z)P?.F#X2M_O__N`4```"_,;(("(G>B<'S -XMI@^$E_[__\<$)(`Q"0C'!>29"P@!````QP6(=PH(`````.ANW```Z7+^___' -XM1"0$H#\)"(DT).B5Z/[_AY_[_A7UWI -XMT_0!`,=$)`0`3`D(B30DZ*_G_O^%P'31QT0D!"!,"0B)-"3HF^?^_X7`=+W' -XM1"0$Y$L)"(DT).B'Y_[_A!="0B+1)`T]L0!=1.#^U]T&L<$ -XM)!T``!#H*6?__XL>A=MT4_?#````0'4_BSW@70D(ZR.-=@"+1(!(7;="N#Q@3WPP```$!U%`^VPSW_````=M:)!"3HZN;^_^O0QP0D -XM'P``$.C09O__BT7PB<.+.(M`!(/#!(,X*`^$TP```,<$)!,``!#HKF;__X/# -XM!(D<).AS`0``A<`/A(````")1"0$B1PDZ!\5``"%P(G\````QT0D!#`` -XM``#'!"0!````Z$%T`@")<"2)PXEP((D$).CA-```B3PDZ`G@`@")0RBAX)D+ -XM",=#$`(```")0RR+/"9"PC'!<0C"0@)````A?]U/XLU*'<*"(7V -XM="F#Q`Q;7E]=PXD<).C#<0``B<:)!"3HJ0```.N"B10DZ`OF_O_IN_[__X/$ -XM#%M>7UWI+NO__^@IZ?__Z[J)'"2-="8`Z.MF``"+1(/\@S@I#X44____Z1O_ -XM__^A*'<*"(7`#X4W____QP0D,0``$.BP9?__Z2;___^0D)"0D)"0D)"0D%6) -XMY593@^P0BUT(ZPF-=@"+$(72=1"+`X/#!(7`=?&#Q!!;7EW#B<:)%"3_50R+ -XM5@2#Q@2%TG3>Z^Z-M@````!5B>6+30B+$8/!!(72=!*+`H7`=/$E____/XD" -XM@\($Z^Y=PXVV`````(V\)P````!5B>575E.#[`BAV)<*",=%\`````")1>R+ -XM50B+`H7`#X3I````@T4(!(L0@_I^#X1^````@_H]='F#^GL/A*````"%TG32 -XMBU@$C4@$ZS:)]H/Z>W0YA=)X._?"````0)!U,H/Z?W\M#[;"]H0`X"`)""!T -XM((--\`&#P02%VW29B=J+7@2#^F")SHUY_'7"@TWP`NOD@WWL`W7>A=N-="8` -XM#X1R____@_HN=`V#P02)]NO-@TWP`NN*@_LND(UT)@!UZ8M!!(7`=`6#^"]U -XMW8M5"#EZ_'0&@WGX+W7/@TWP`NO)BU@$A=L/A"O___^#^WT/A5/___^+2`B% -XMR0^%2/___XM5"(L"A<`/A1?___^+1?"#Q`A;7E]=PXVT)@````!5B>575E.# -XM[%R%THE%N(E5M(E-L(L`B47`#X2[`P``BQ*)5;R+1<"+`(7`B47$#X2``0`` -XMBWW`BU7$@SI[=12+0@2%P`^$6@$``(/X?0^$%P(``(M-Q,=$)`1[````B0PD -XMZ-;G_O^%P`^$-@$``(M%Q,=%Z`````#'1>P`````QT7P`````,=%W`````#' -XM1>``````QT7D`````,=%T`````"#.'MT$X/`!(,X>W7XB<,K7<3!^P*)7="- -XM<`2+0`2%P`^$%`$``(GSQT7,`````.L@@_A[#X3O````@_A]D`^$!P$``(/# -XM!(L#A<`/A.D```"#^%MUVX/#!(L#@_A=#X3M`@``A7^__\IPHG0P?@"@_AD`"B4VP -XMB40D!(D<).AQ<`(`BTVXB47`B0&+5<")^"G8@^#\C3P0BT6\*=B#X/P!T(E% -XMO.D!____BP:)!X/O!(DT).@;;P(`Z3K___^+0@B%P`^$+____^G9_?__BTW0 -XMC57HBT7$B10DB4PD"(E$)`3H/=D"`(U-W#G>B4VL#X>\````C47R)\"G(P?@"B40D".BWV`(`BTVHC47HB00DB4PD!.@EV0(`C57HB10D -XMZ`K7`@"+1>B)!"3H?]H"`(U-W(D,)(E$)`3H8-@"`(U.!(G..?,/@V3___^+ -XM7:R)'"3H&-@"`(G&BT7HB00DZ`MN`@"+1>"%P(E%R`^)I?W___?8Z8[]__^- -XMM@````"#1"L"PB+=?R)`Z'DK`L(B4,$H>BL"PB)0PB+ -XM7?B)[%W#C70F`(V\)P````!5B>575HG.4X'LK*```(F%<%___XM%"(F5;%__ -XM_X7`=1#'A7Q?__\`````]D$#0'0*QX5\7___````0(U%Y(U=[(E%W,9%S`'' -XM1=``0```QT74`````,=%V`````#'1>``````QT7D0#P)",=%Z`````#HR8$` -XM`(U%S(D$),=$)`1@/P8(Z"9B__^)'"3H3JH``(D<)(U=\,=$)`1`'@4(Z`MB -XM___'1"0$0!X%"(D<).C[8?__C57,QT0D!/____^)%"3H.)P``(7`#X4O`P`` -XMBT7LB00DZ$5D``"+1?#'1"0$`0```(D$).B":```H01V"@C'1"0$`@```(D$ -XM).AM:```Z!CG_O_HPV@``(DUD'8*"(L&A!.L.@_@-=#&+`X/#!(7` -XM=#$E____/XE#_,=$)`3$F`H(QP0DX#$)".AHR```A"0B%P'02B00DZ/]J`@#'!8!>"0@` -XM````QP0D>'8*".@96```QT0D!)#I!0C'!"1X=@H(Z%5@__^A@%X)"(7`=`S' -XM!"0```!`Z%!=___'!"1X=@H(Z/1X``"A@'8*",=$)`@`````QT0D!'AV"@B) -XM!"3H9W4``,=$)`1`*P8(B<.)!"3H!6#__Z&`7@D(A___'!"0`F@L(Z(#=_O^AP)@*",<%<'8* -XM"`````"%P`^$S?[__XN%@%___\<%_)@*"`````")!"3H55[__XN5O%___XN% -XMN%___XD5+)H+"(N5M%___Z,HF@L(BX6P7___B14DF@L(BY6L7___HR":"PB+ -XMA:A?__^)%1R:"PB+E:1?__^C&)H+"(N%H%___XD5%)H+"(N5G%___Z,0F@L( -XMBX687___B14,F@L(BY647___HPB:"PB+A9!?__^)%02:"PBC`)H+".BF6___ -XMZ2'^__^)'"2-G%A%___P````")G61?__^)E6A?__^%]@^$G````(N->%___X7)=4"+%X'B -XM____/XF5=%___P^%K0$``(U%[(D$).BA7?__Z`RB``"-17UW#C;8`````BX5T7___AB5PD!"G8B40D"(M%[(D$).BQ70``QX6,7___```` -XM`(7`#XY9`0``C3PP.;UD7___#X-V`0``C9W,W___B;W`7___QX6(7___```` -XM`.L-`<.#A8A?__\!.?MS0(NUP%___XN5B%___XE<)`0IWHV$E%B%___P````#I_O[__XUV`%6)Y5=64X/L+(MU"(U%W(D$),=%Z`````#' -XM1>P`````QT7P`````,=%W`````#'1>``````QT7D`````,=$)`3PD0@(Z+=; -XM__^-1>B)!"3'1"0$L)$(".BD6___BP:%P`^%F````(GS,<")1"0(C47HB70D -XM!(D$).A3T`(`BPN%R0^$X@```(M#!(U[!(7`#X67````B?XQTH7`=1O'1"0$ -XM8````,<$)#,```#H7UC__XGR*?K!^@*)5"0$@\8$B3PDZ%G2`@#'1"0$,"H( -XM"(G#B00DZ"=;__^+10R)V8U5Z(D$)(U%W.AD^/__B1PDZ&Q:__^+!H7`#X1H -XM____@_A@B?,/A%W___^-M"8`````@\,$BP.%P'4,B=@I\,'X`NE%____@_A@ -XM=>;K[8/X8(G^#X1>____@_A<=!^#Q@2+!H7`=0R)\BGZP?H"Z4C___^#^&!T -XM[X/X7'7A@\8$BQ:%TG78Z33___^+1>R%P'0+C57HC47- -XM153@^P4 -XMBTT(BT$$@_@M='FI````0'5J@_A_=V7V!(6]40D(!'1;BU$(@^@PC5D(]\(` -XM``!`="7K*)"-="8`]@25O5$)"`1T&8/#!(T$@(U$0M"+$_?"````0'4%@_I_ -XM=MV%TG5YB00DZ-$4__\QR87`=`Z)7"0$B00DZ)_.`@")P8/$%(G(6UW#BU$( -XMC5D(A=)U6,=$)`3$F`H(QP0D=#,)".BGOP``A<")PG1)BP"%P'1#BPUDF0L( -XMBP&+0`R%P'4TBT$$BT@,A*)/"3HLF$"`,<#`````(M-X(MQ -XM!(/!!(E-X(7V=9*+1,"B5PD!(D4)(E-U.@E8@(`BU70C9P#`2#P`2)1=R%_W0ZBP>#^#UUX(D\).@[_?__A<")PP^$:P$``#G'=-.)/"3H -XME6`"`(M-W(D9BT7OHQT0D!,28"@C'!"0`/`D(Z.B[``"%P'0*B30DZ#Q4 -XM___KGXL&A%]G4&]D7P`74ZB1PDZ*[K__^) -XMV(MU^(M=](M]_(GL7<.)V(GRZ`;\__^)PXG'Z]")70B+=?B+7?2+??R)[%WI -XMC%P``(D<),=$)`3P(P8(Z+Q3__^)V.AE^?__.<>)PW0*B3PDZ`=3___KIXD$ -XM).A-4___Z^R-="8`C;PG`````%6)Y5.#[!2+70B)'"3H7NO__X7`=!J)'"2) -XM1"0$Z`[___^%P(G#="*)V(/$%%M=PXD<).@87```B<.)!"3H_NK__XG8@\04 -XM6UW#QP0D,0``$.A*4/__Z]"0C;0F`````%6)Y5=64X/L+,=$)`3$F`H(C7WL -XMQP0DU#L)".@0N@``QT7P`````(G#BT4(B47LB3PDZ-GJ__^%P(GS```` -XMA=L/E<#WQ@(````/MMAU+H7;=0F#Y@$/A>P```"+10B)!"3HA\D"`(D$).A_ -XM40``B44(BT4(@\0L6UY?7<.)^(G:Z,CZ__^%VXG'#X2#````B7W8BU78BP*% -XMP`^$I0$``(M5V(MR!(7V#X2S`0``@WT,`0^$:@$``(-]#`(/A+P```"+30R% -XMR76IBT4(B00DZ#K+`@"+5=B)%"2C('<*".@:5@``QP0D)P``$.A.3___ZX"+ -XM50B)%"3H\<@"`(D$).CI4```B44(BT4(@\0L6UY?7<.#Y@$/A'3___^)!"3' -XM1"0$\",&".@"4O__B?CHJ_?__SG'B478#X1#`0``B3PDZ$A1___K"HGXZ(_W -XM__^)1=B+7=B%VP^%-O___XM5"(D4).BFR@(`QP0D,0``$*,@=PH(Z,5.___I -XM%?___XM5V(E5W(D$).@^S_[_BUW8@\,$C7@!ZP.+=>"+0P2#PP2)1>")-"3H -XM'\_^_XM5X(72C7P'`77AC02]`````(D$).BY7`(`B44(BT78BTT(BQ"%T@^$ -XMI````(L"A+___\_B57DBQ>#QP2!XO___S^#^C\/A/$```!_'(72=6.+11")&(-]Y`$9 -XMP/?0@\`"@\0L6UY?7<.#^EL/A-H```"+=12%]G5B@?K_````#X?"`0``H>!= -XM"0B+G)`T!```@7WD_P````^'F0$``*'@70D(BU7DBX20-`0``#G##Y7`ZRV# -XM^BIUN8L',?:%P'5$B1PDZ'[!`@"+51")`H/$++@"````6UY?7<,[5>0/E<"$ -XMP'5>@T7P!(M=\.DX____BT40BS#W`____S\/A!X!``"#PP2+112)1"0,BU40 -XMB7PD!(D<)(E4)`CH^/[__X/X`73-@_@"#X3F````A)UHU?!('F -XM____/\=%Z`````")WW0M@_Y==#R+1>B%P'53@SLM=%6#PP0QP#EUY`^4P(E% -XMZ(L7B=:)WX'F____/W73QT0D!%T```#'!"0R```0Z/Y+__^+1>@+1>1T@HM5 -XM[#E5Z`^%&/___S'`Z8W^__^-=@"+%X/#!.N[BT<$@\,$@_A==*,E____/\=$ -XM)`@`````B40D!(M%Y(D$).C"UP``A -XM7UW#A?8/A!O___^+51"X`0```(DRZ2K^__^+1>2)!"3HD2)-"2)5"0$Z%K7``"%P'^8QT7H`0`` -XM`.N/C;8`````C;PG`````%6)Y5=64X/L+(MU#(M%",=%W`$```")1?"#/EX/ -XMA!4!``#'!"0$````Z$)9`@#'!"20`0``B(M5"(D4).@]OP(`BQ>)QHL"QT7@`````(7`=#N)TXE$)`2+10B-5?#'1"0, -XM`0```(E4)`B)!"3HW/S__X7`=`V+1?"#3>`!.?!S`HG&BT,$@\,$A`/E,"#Q"Q;#[;`7E]=PXL7BP+'1>``````A57B==64X/L#(E%\(MP"(M:"(L#B40D!(L& -XMB00DZ/C(_O^%P'4/BW8(.W7PBUL(=`XY^W7=@\0,,Q=PY"+'0QA"0B%VW0TBT(8A/&!@"+1?")!"3HA54" -XM`.E0____58GE4XG#@^P$B00DZ(\4``"+0QB%P'0(B00DZ&!5`@")'"3H6%4" -XM`(/$!%M=PXGV58GE5U:)QE.)TX/L+/;"`71FH7!A"0B-??#'!7!A"0@!```` -XMB47PQT0D!-`X!@B)/"3HF4K__X/C0`^%WP```*$,80D(A<`/A,4```"+1AB% -XMP`^$N@```(E$)`3'!"01%PD(Z+BB`@")/"3HP$G__X/$+%M>7UW#QP0D2LX( -XM".A!T;XG/@^<(ZR"+!H/H`87_B09T/X7`>`J+5=R)V.AW_O__BUL< -XMA=MT2*&4=PH(A"%P'X*BU77UW#58GE5S'_ -XM5E.#[!R+=0C'1"0$Q)@*",<$)*`S"0CH+K```(D$).@VK@``A<`/A)\```"# -XMQ@2+'H7;=#"#.RUU*X/#!(L#A7UW#QT0D!,28"@C'!"2@,PD(Z.^N``")!"3H]ZP``(E%\.E1 -XM____ZPV0D)"0D)"0D)"0D)"058GE@^PHB5WTBUT(B77XBT4,B7W\A=L/E,*) -XMUG4$AP/A%@!``")\(3` -XM=#C'1"0$Q)@*",<$).`S"0CHQ=P\=$)`0`````B1PDZ*[S__^)Q\=$)`0P*@@(B3PDZ,Q& -XM__^+%>AV"@C'!>AV"@@`````B57PQT0D!,28"@C'!"1@-@D(Z*6M``"%P'0Q -XMBP"%P'0KBT`$AR+'E?1?__QT0D!,28"@C'!"20+PD(Z$NM -XM``#'1"0$A#0)"(D$).@+O`(`BP/A8;^___'1>Q`+PD(Z7K^__^-M@````!5B>575E.#[!S'1"0$ -XMQ)@*",<$),`S"0CHXZP``#WX;PD(B<8/A.8!``#'1"0$@$,)"+\`=PH(B00D -XMZ$W"_O^%P'0_QT0D!'!#"0B[`'<*"(DT).@TPO[_A<`/A9@!``"+6QR%VW1J -XMBT4,B=KH__C__X7`=.N#+029"@@!B=_K7XG?BU\`2+0P2)1P2+0P2)>`C'1Q@`````BT44QT7L`'<*"(7`=2*+-1QW"@B) -XM=QR+7>R)>QR#Q!R)^%M>7UW#C;8`````B77LBT7LBW`PYT`^%P0```(M%\(GZZ,_W__^% -XMP`^%O0```(M5\(M*'(7)=S'1?``````BW(R+@L^/__BWWPZ=3^__^+%1QW"@B% -XMTG2*BT4,Z.+V__^%P`^$>O___XL=''<*"(,M!)D*"`&%VXG?#X4R_O__Z1_^ -XM__^-M"8`````C;PG`````%6)Y593@^P0BUT(A=MT#HM#"(L`@S@*#X33```` -XMQT0D!,28"@C'!"2@,PD(Z`^J``"+$(72#X3'````]\(```!`#X6[````@_I_ -XM#X>R````,?:)P?8$E;U1"0@$=2?IGP```/?"````0`^%DP```(/Z?P^'B@`` -XM`(/!!/8$E;U1"0@$='V-!+:-=$+0BU$$A=)UT(7;="BA!)D*"(M5#,=$)`@! -XM````B5PD!(/``:,$F0H(B50D#(D$).B!_/__NP!W"@B+4QR%TG0EH029"@@K -XM0A`Y\'P@BT("0C70F`(/$$%M>7<.%]G3!P``BQTLFPL(A=L/ -XMA-$'``"+#32;"PB%R0^$!`@``(L5/)L+"(72#X0W"```H62;"PB%P'0&@\04 -XM6UW#H8"8"@C'1"0,8M$(",=$)`A!````QT0D!`(```")!"3'!6";"PA>T0@( -XMZ'&>__^)!"3HV4<``*-DFPL(@\046UW#H8"8"@C'!6B:"PCXS@@(QT0D#/S. -XM"`C'1"0(`@```,=$)`0"````B00DZ"^>__^)!"3HET<``*-LF@L(Z=S]__^A -XM@)@*",<%<)H+"`//"`C'1"0,!\\(",=$)`@#````QT0D!`(```")!"3H[IW_ -XM_XD$).A61P``HW2:"PCIJ?W__Z&`F`H(QP5XF@L($<\(",=$)`P6SP@(QT0D -XM"`0```#'1"0$`@```(D$).BMG?__B00DZ!5'``"C?)H+".EV_?__H8"8"@C' -XM!8":"PB`SP@(QT0D#!O/"`C'1"0(!0```,=$)`0"````B00DZ&R=__^)!"3H -XMU$8``*.$F@L(Z4/]__^A@)@*",<%B)H+""_/"`C'1"0,-,\(",=$)`@&```` -XMQT0D!`(```")!"3H*YW__XD$).B31@``HXR:"PCI#_W__Z&`F`H(QP60F@L( -XM0\\(",=$)`Q(SP@(QT0D"`<```#'1"0$`@```(D$).CJG/__B00DZ%)&``"% -XMP*.4F@L(#X78_/__H8"8"@C'!9":"PA.SP@(QT0D#%+/"`C'1"0("````,=$ -XM)`0"````B00DZ*:<__^)!"3H#D8``*.4F@L(Z9?\__^-="8`H8"8"@C'!9B: -XM"PA;SP@(QT0D#%_/"`C'1"0("P```,=$)`0"````B00DZ&&<__^)!"3HR44` -XM`*.B:"PAJT`@(QT0D#&_0"`C' -XM1"0(+@```,=$)`0"````B00DZ)*8__^)!"3H^D$``*/LF@L(Z5GY__^A@)@* -XM",<%\)H+"(+0"`C'1"0,A]`(",=$)`@P````QT0D!`(```")!"3H49C__XD$ -XM).BY00``H_2:"PCI)?G__Z&`F`H(QP7XF@L(D=`(",=$)`R6T`@(QT0D"#(` -XM``#'1"0$`@```(D$).@0F/__B00DZ'A!``"C_)H+".GQ^/__H8"8"@C'!0B; -XM"PB@T`@(QT0D#*70"`C'1"0(,P```,=$)`0"````B00DZ,^7__^)!"3H-T$` -XM`*,,FPL(Z;WX__^A@)@*",<%$)L+"+O0"`C'1"0,P-`(",=$)`@U````QT0D -XM!`(```")!"3HCI?__XD$).CV0```HQ2;"PCIB?C__Z&`F`H(QP5`FPL(U]`( -XM",=$)`S=T`@(QT0D"#@```#'1"0$`@```(D$).A-E___B00DZ+5```"C1)L+ -XM".E5^/__H8"8"@C'!2";"PCQT`@(QT0D#/;0"`C'1"0(.@```,=$)`0"```` -XMB00DZ`R7__^)!"3H=$```*,DFPL(Z2'X__^A@)@*",<%*)L+"`W1"`C'1"0, -XM$M$(",=$)`@[````QT0D!`(```")!"3HRY;__XD$).@S0```HRR;"PCI[O?_ -XM_Z&`F`H(QP4PFPL(*M$(",=$)`PQT0@(QT0D"#P```#'1"0$`@```(D$).B* -XMEO__B00DZ/(_``"C-)L+".F[]___H8"8"@C'!3B;"PA$T0@(QT0D#$G1"`C' -XM1"0(/0```,=$)`0"````B00DZ$F6__^)!"3HL3\``*,\FPL(Z8CW__^0D)"0 -XMD)"0587`B>5T!8,X"G0%HT!A"0A=PXVV`````(V\)P````!5B>6+10A=HQAA -XM"0C#C78`58GE@^PHBPV0=@H(B5WTB77XB7W\AR9"P@`````=`V+7?2+ -XM=?B+??R)[%W#BQ6\F`H(A=)UZ:'`=@H(A7<.0C70F`%6)Y5WI -XMM____XVT)@````!5B>564X/L$*&T=@H(QT0D#`(```#'1"0$`````,=$)`@` -XM````B00DZ`^V_O^AL'<*"(L5M'<*",<%T"0)"`(```#'!3"9"P@`````HZ!W -XM"@B)%:1W"@C'!;28"@@`````QP5(=PH(`````,<%2)H+"`````#H9JW__XLU -XM[)D+"(7V=0J+'>"9"PB%VW0'@\006UY=PXL5H'<*"(/J`8G0P?@?P>@3C300 -XMP?X-A?9^WC';H;QW"@B+!)B#PP&)!"3HRS\"`#GS=>F+%;QW"@B-!+*)%"2) -XM1"0$Z'(S``")\,'@#8G"P?H?*06@=PH(&16D=PH(*06P=PH(&16T=PH(*36X -XM=PH(@\006UY=PXUV`%6)Y5>)QU93@^P,H;AW"@@YQWQM@\`"QT0D!`0```") -XM!"3HN3\"`(G&H;QW"@B%P'09B40D!(DT).@",P``H;QW"@B)!"3H-3\"`(L= -XMN'<*"(DUO'<*",=$)`0$````QP0D`"```.AU/P(`C1R>B0.AN'<*"(/``3G' -XMH[AW"@A]DX/$#%M>7UW#C;0F`````%6)Y8/L*(E=](L=T"0)"(E]_(M]"(EU -XM^(/[`HD?='.#^P-T7(/[`70WH8"8"@C'1"0,@-<(",=$)`@'````QT0D!!`` -XM``")!"3HTI+__XE<)`2)!"3H9HP"`.@MLO[_D*$PF0L(B4<,H;28"@B)1P2+ -XM7?2+=?B+??R)[%W#C78`H4AW"@B)1PRA2)H+"(E'!.O>H>R9"PB%P'4:H:!W -XM"@B+%:1W"@B)1P2)5PC'1PP`````Z[N+%:1W"@B+':QW"@BAH'<*"(L-J'<* -XM"#G:?-9^2SL5M'<*"'_,C;8`````?`@[!;!W"@AWO(G&*N)3P2)7PCKCSG(6#[$B+50B)7?2)=?B)??R+&H/[`HD=T"0)"'1S@_L# -XM=%R#^P%T-Z&`F`H(QT0D#(#7"`C'1"0(!P```,=$)`00````B00DZ**1__^) -XM7"0$B00DZ#:+`@#H_;#^_Y"+0@RC,)D+"(M"!*.TF`H(BUWTBW7XBWW\B>Q= -XMPXUV`(M"#*-(=PH(BT($HTB:"PCKWJ'LF0L(BW($BWH(A<")-:!W"@B)/:1W -XM"@ATPXL5K'<*"*&H=PH(.=>)1>B)5>P/C,H````/CKD```"+#;1W"@B+%;!W -XM"@@Y3>R)3=R)5=@/CZD```!\"3E5Z`^'G@```(M-V"M-Z(E-X'1DBU7L,57 -XM5E.![$P@``"%R8F%S-___XF5R-___XF-Q-___\>%U-___P`````/A#(!``"! -XM^0$@```/AU<"``#'A=3?__\`````,=O'A=C?__\`````.9W$W___N@$```!V -XM"(N5Q-___RG:C00:/0`@```/AZ@```"-A?/?__\!V(E$)`2+A#?__\/A:T```#'A=S?__\`````BY7@W___.97- -XM-)"!Q\!W"@B+G>#?__^-A?/?__\KG=S?__\#A=S?__^)-"2)7"0(B40D!.BW -XMJ0(`@_C_=%2%P(G"#XZ.````BTT(A57 -XM5E.#[%R+/1AA"0B%_W1"QP4880D(`````(/$7(GX6UY?7<.A,)D+"(7`#X2D -XM````H3"9"PC'!4R:"P@!````BP"%P*.TF`H(='N#!3"9"P@$H;28"@C'!=`D -XM"0@"````A@$``.E;!0``D(UT)@"+%:1W"@B+/:QW"@BA -XMH'<*"(LUJ'<*"(E5M#GZB46P?`X/CZL#```Y\`^#HP,``*.P=PH(HZAW"@B) -XM1"0$H;1V"@B)%;1W"@B)%:QW"@C'1"0,`````(E4)`B)!"3H&JS^_Z&@=PH( -XMBQ6D=PH(BPVP=PH(BQVT=PH(BS6H=PH(BSVL=PH(B46PB56TBU6TBT6P,=HQ -XMR`G"#X1U`P``BQ6\=PH(BT6PBQ(I\(L\@H-%L`0`BT6PBU6THZ!W"@B) -XM%:1W"@B#__\/A>;^__^+10B%P`^%LP0``*&T=@H(C57$B50D!(D$).@^I_[_ -XMA<`/A;#^___V1=$!#X2F_O__BQ5P8PD(A=)T%:$<80D(@\`!.<*C'&$)"`^. -XMA_[__X,]U)<*"/\/A/K]___'!"0/````Z.2J_O^#^/^)PP^$X_W__Z'4EPH( -XM.<,/A-;]__^)1"0$QP0D#P```.@@3`<*)UH'F_Q\``,'Z#2G&B56HB=#H(?3__XM]O+@`(``` -XM*?`YQWX"B<>+1;R-%+4`````BTVXC1R]`````(MUJ,'@`BG!H;QW"@@#%+") -XM7"0(B4PD!(D4).B)J_[_B?HI?;R+1;S!^A\!/;!W"@@1%;1W"@B%P`^/=O__ -XM_^G<_O__Z+2W`0")1:R)1;SI2?___XL0A=(/A*OZ__^#P`1FOR``B16TF`H( -XMHS"9"PCI%?K__Z%(=PH(Z27[__^+';1W"@B+#;!W"@@YV@^,I?S__P^/0_S_ -XM_SG(#X:7_/__Z3;\___'!?R8"@@!````Z#@E__^A2'<*".GY^O__B^O__QP0D`0```.AS2```Z8WZ__^+10B%P`^%P``` -XM`(UV`.AKQO[_H9!V"@CI#_O__Z&\F`H(A<`/A8\```")^(E$)`3'!"1LG`L( -XMZ#*:`@#IVOC__X/`!&:_(`")%4B:"PBC2'<*".G#^/__H8"8"@B+'0QV"@C' -XM1"0,K-<(",=$)`@#````QT0D!!````")!"3HNX7__XE<)`2)!"3H3W\"`.E+ -XM^O__BSB#P`2CD'8*"(7_#X5U^/__H7P@"0AFOPH`HY!V"@CI8OC__X/H`:.\ -XMF`H(N`H```#I8?___[______Z4;X__^)]HV\)P````!5B>564X/L$(MU#(M= -XM"(U&FX/X$W8*,<"#Q!!;7EW#D/\DA6C8"`B)'"3H(9@"`(G"C4#\.<,/ARD! -XM``"+4OR#^B]U(ND<`0``C;0F`````(/H!#G##X<*`0``BQ"#^B\/A/\```"# -XM^BYUY8/^98GV#X3D````*=C!^`*)10R)70B#Q!!;7EWI1)T"`(D<).C\G@(` -XMQT0D!"\```")!"3H_",``(7`#X65````@_YT#X5C____B5T(@\006UY=Z:V< -XM`@#'1"0$`0```(D<).@=<0(`A7<.)'"3HBIP"`(L0A=(/A"C_ -XM__^)P>L;@_H)=!N!R@```$")$8M1!(/!!(72#X0)____@_H@=>"#_G%UZ(VT -XM)@````#KU\=$)`0`````B1PDZ+YP`@"%P`^$>____X/$$%M>753@^P4BQ68=PH(H7R<"PB+70C'!"0@80D(QP4D80D( -XM`````"G0P>("`Q5XG`L(B40D"(E4)`3HPID"`(E<)`3'!"1XG`L(QP5\G`L( -XM`````.@HF@(`QP0D>)P+".@,F`(`H21A"0C'!"1XG`L(B40D"*$@80D(B40D -XM!.A^F0(`B1PDZ"8O`@#'!9AW"@@`````@\046UW#C;8`````58GE5U93@^P, -XMBT4,BW4(BW@(QP0D#````.C"+P(`B<.)<`3'``````"+10B)0PB)6`2+!XE> -XM"(G>B00DZ`^;`@"+?PB)`X,X"G7'@\0,6UY?7<.-M@````"-O"<`````58GE -XM5E.#[!"+=0B+7@B+`XE$)`3'!"22N0@(Z&!\`@"+6P@Y\W07BP.#.`ITXL<$ -XM)"````#H9C\``(L#Z]*#Q!!;7EW#C70F`(V\)P````!5B>575E.#[!R+'1QW -XM"@B)1>R)5>B%VW0^BU,,BWL(A=)X+8L7BPJ#^0IT)(M%Z,=%\`````"%P'5? -XMBT7LZP>0@\`$@\($BPB%R70H.PIT\(M;'(7;=<*+1>PQVXD$).ASK!H/`!(/"!(L(AC'1>P`````P?@"QT7P -XM`````(E$)`B+1>")%"2)1"0$Z"27`@"+'6!A"0B+`X7`="2#^"9T;X/X7(US -XM!'12B40D!(GSC47HB00DZ`J5`@"+`X7`==R+1>R+50B)`J%,80D(C02'B40D -XM!(U%Z(D$).A5EP(`BU77UW#58G"B>6# -XMX@)7@^`!5E.#[#R)5=")1__^A.&$)"(7`=%*+4`BA-&$)"(D5 -XM.&$)"(/H`87`HS1A"0AX*8L"Z#_I__^+#3!A"0B%R0^$1O___\<%,&$)"``` -XM``"#Q#R)R%M>7UW#QP4X80D(`````.D5____QP0D`````.CR\?__@_@DB<%T -XM&SL-C)@*"'7,BUW0A=MTQ3'`Z`4+``#IY_[__XM=S(7;=-ZA,&$)",=%Z``` -XM``#'1>P`````QT7P`````(7`B474HT1A"0@/A.`"``#'!3!A"0@`````BU74 -XMQP0DQM<("(E4)`3H`AX``(7`#X24````BT74QP4P80D()```0*,\80D(Z7K^ -XM__^A>)P+"(L,D(U"`:.8=PH(AC__X/$/+D@````6XG(7E]=PXU5Z(D4),=$ -XM)`2PD0@(Z&,?__^-1>C'1"0$)````(D$).@PD@(`BUW4@_M[#X2U`@``@_LC -XM#X1L`@``@_L_#X1C`@``,?:#^R4/A%@"``"-5>B)7"0$B10DZ/B1`@"-0_:# -XM^#(/AM$!``#WPP```$!U/H/[?Y!W#O8$G;U1"0@$#X5\`0``#[;3@?K_```` -XM#X=V!```H>!="0B+1)`T]L0!#X6G````@_M?#X2>````A?8/A',"``"#;>P! -XMB1T\80D(C47HB00DZ%D>__^-5>B)%"3H_AW__XU%Z(D$).B3D0(`B00DZ%OY -XM___I#?W__\<%,&$)"`````#WPP```$`/A38"```/MM.!^O\````/A\4!``"A -XMX%T)"(M$D#3VQ`%U'(/[7W07@_M_#X<+`@``]@2=O5$)"`0/A/T!``"-5>B) -XM7"0$B10DZ`B1`@"+'3!A"0B%VXD=1&$)"'62N`(```#H?OS__X7`B<-UC(-] -XMU'N)'3QA"0@/A43___^A,&$)"(7`HT1A"0@/A`D%``#'!3!A"0@`````@_A] -XM#X3>!```HSQA"0C'1"0$?0```,<$)#(```#H6AK__^D!____D(UT)@#'!3!A -XM"0@`````]\,```!`#X5@`0``@_M_#X=7`0``]@2=O5$)"`0/A$D!``"-1>B) -XM7"0$B00DZ%20`@"+'3!A"0B%VXD=1&$)"'6TN`(```#HROO__X7`B<-UKNE' -XM____N`(```#HM?O__XE%U(GVZ1;]____)(6XV`@(A?:)]@^$=O[__\<$)%`` -XM``"-=@#HNQG__^EB_O__A?:-="8`#X16_O__QP0D3@```(UV`.B;&?__Z4+^ -XM__^#;>P!A?;'!3QA"0@*````#X4L_O__QP0D3P```.AT&?__Z1O^__^-1>B) -XM7"0$B00DZ*"/`@"+'3!A"0B%VXD=1&$)"'17QP4P80D(`````+X!````Z77] -XM__^)%"3HL)G^_^DW_O__C57HQT0D!'L```")%"3H7(\"`(L=,&$)"(7;B1U$ -XM80D(#X3H`0``QP4P80D(`````.D5_?__N`(```#HO_K__XG#ZZ7'!"12```` -XMZ-\8___IAOW__X/[6P^$W@(``(/[.@^%(/[__\=%W`````#'1>``````C47H -XMB5PD!(D$).CKC@(`BQTP80D(A=N)'41A"0@/A-@!``#'!3!A"0@`````@_MG -XM#Y3`#X2&`0``@_MA#X0J`@``BU7@A=)U"(3`#X6[`0``@_MA#X3Y`0``C57H -XMB5PD!(D4).B1C@(`@_MS#X7>````BSTP80D(A?^)/41A"0@/A.\!``"-1>C' -XM!3!A"0@`````B7PD!(D$).A;C@(`]\<```!`=3^)^`^VT('Z_P````^'\0$` -XM`*'@70D(BT20-/;$`0^%S@$``(/_7P^$Q0$``(/_?W<.]@2]O5$)"`0/A;(! -XM``")?"0$QP0D_[D(".@4&0``A<`/A9H!``#'1=@"````ZR['!3!A"0@````` -XM@_[_#X1U`@``C57HB70D!(D4).C1C0(`,<`Y_@^4P"E%V'0;BS4P80D(A?:) -XM-41A"0AUPC'`Z#[Y__^)QNO!B5PD!,<$),K7"`CHJA@``(7`#X3G`0``BQTP -XM80D(A=N)'41A"0@/A,8```#'!3!A"0@`````@_LZ#X1Q_O__Z7[\__^-M@`` -XM``"X`@```.CF^/__B<.-="8`Z2?[__^)%"3H?Y?^_XUV`.F#^___@T7@`8U5 -XMZ(E<)`2)%"3H*(T"`(L=,&$)"(7;B1U$80D(#X30````QP4P80D(`````(/[ -XM9P^4P.E'_O__N`(```#HA?C__XG#Z2'^__^#1>`!C47HB5PD!(D$).C;C`(` -XMBQTP80D(A=N)'41A"0@/A$H!``#'!3!A"0@`````Z1C^__^X`@```.@^^/__ -XMB)1"0$Z&J,`@"%_P^%!_[__\<$)%@```#H%A;__^EI -XM^___B10DZ(66_O_I"_[__[@"````Z,KW__^)P^DI____C47HQT0D!%L```") -XM!"3H((P"`.LKQP4P80D(`````(/["@^$X````(U5Z(E<)`2)%"3H_(L"`(/[ -XM70^$J0```(L=,&$)"(7;B1U$80D(=<6X`P```.AI]___BGY__^X`@```.@#]___ -XMB<.0Z/G__[@"````Z)+V__^)P^GJ^___C70F`(V\)P````!5B>6# -XM["B)??R)UXL5,&$)"(EU^(G&B5WTB4WLA=*)%41A"0@/A!8!``"#^BK'!3!A -XM"0@`````BQX/A!4!```/CIL```"#^BT/A+(!``"#^EX/A"$!``#WP@```$"- -XM=@`/A7H!``"#^G\/AW$!``#V!)6]40D(!,=%\`````!U-.E;`0``QP4P80D( -XM`````/?"````0`^%X0$``(/Z?XGV#X?6`0``]@25O5$)"`0/A,@!``"+3?"- -XM!(F-1$+0BQ4P80D(B47PA=*)%41A"0AUM#'`Z*CU__^)PNNSC70F`(/Z)`^$ -XM/P$``(/Z)8UT)@`/A6'___^A;&$)"(/X_W0CA=L/B"X!``")!XVV`````(7; -XM>'R+!SD&?PDY1>P/C:T```#'!"1>````Z($3__\QP(M=](MU^(M]_(GL7<.) -XM]C'`Z#GU__^+'HG"@_HJ#X7K_O__A=L/B/H```"+1>R)!SL&?:NX`0```,<' -XM`````,<&`0```.NYA=L/B,L```"%V\<'`0```'F*C;8`````BQTP80D(A=N) -XM'41A"0@/A)D```#'!3!A"0@`````B1PDZ/K>__^)7"0$QP0DU-<(".@Z%``` -XMA<`/A$;___^)]K@!````Z5?___^-M@````"%VP^(A````(M%[(/H`8D'B10D -XMZ+C>___I$____XUV`(7;>S'!@````#'!"0M````@^@!B0?HDM[__[@! -XM````Z0G___^%VW@YBTWLB0_IVO[__XD&Z\<%,&$)"``````/A($'``"C,&$)"*$$F0H(QP5L80D(_____Z/@F`H(BT6\ -XM.P5$F@L(=&F+'3!A"0B%VXD=1&$)"`^$*`<``,<%,&$)"``````['8R8"@AT -XM0XU#W8/X.W8T,?^)7"0$QP0DV-<(".BW$@``A<`/A!X)``")'"3H5]W__Z&, -XMF`H(HS!A"0B#Q$Q;7E]=P_\DA839"`B+%2"9"PB%THE5P`^$2@H``(M=P#L= -XM()D+",<%+&$)"`$````/A'P(``"+5<"+0@B+4@2+0`@YP@^$E`H``#'VBT`( -XM@\8!.<)U]HM=O#L=1)H+",=%\`````")=>P/A-P)``"+'3!A"0B%VXD=1&$) -XM"`^$V@<``,<%,&$)"`````")7"0$QP0DYM<(".C]$0``AR+5?"#P`$IT(/J`872HS1A"0B)5?!X%8M-P(U"_X7`B<*+20B)1?") -XM3ANS?__B47`H3!A"0B%P*-$80D(#X2%!```QP4P80D( -XM`````(/X.@^%#P0``(L],&$)",<%.&$)"`````"%_XD]1&$)"`^$1@0``,<% -XM,&$)"`````#'1<0`````C;0F`````(/_9[L!````=%N#_V%T48U'VH/X4G9[ -XM@_\*#X2'!@``B7PD!,<$)%L```#H(`___XL=,&$)"(7;B1U$80D(#X2'`P`` -XMQP4P80D(`````(/[.@^$<____^GR_O__C70F`+L"````BSTP80D(A?^)/41A -XM"0AT$L<%,&$)"``````)7<3I>?___S'`Z)+P__^)Q^OM_R2%=-H("*%880D( -XMA<`/A'\)``"A5&$)",<%3&$)"`````#'!"1(80D(B40D!.@[AP(`QP0D2&$) -XM".@?A0(`H4AA"0C'!5AA"0@`````QP0D5&$)"(E$)`3H$(<"`,<$)%1A"0CH -XM](0"`(L=-&$)"(7;B5W(#X28_O__BT7$C5W8QT7H`````,=%S`````"#X`&) -XM1;CK08VT)@````"-7>2)^L=%Y`````"-3>B)'"2+7<"+`^A4[O__B<:+1>B% -XMP'0'QT7,`0```/9%Q`)U>8M5T(DRBUW0@VW(`0^(_?W__\=$)`0,````QP0D -XM`0```.@('`(`C578B470B5`(QP``````B4,(B5@$BTW`BTD(B4W`BP&%P'2[ -XMBTVXAB%P'2#@?[X;PD(#X1W____C47DB?J)!"2-3>B)\.BC[?__B?.)7"0$B00D -XMB<;HCXW^_X7`=;^)'"3H%QL"`.E$____BS4P80D(A?:)-41A"0@/A(,"``#' -XM!3!A"0@`````]\8```!`=3^)\0^VT8'Z_P````^'@0(``*'@70D(BT20-/;$ -XM`0^%A`8``(/^7P^$>P8``(/^?W<.]@2UO5$)"`0/A6@&``")="0$QP0D_[D( -XM".@-#@``A<`/A5`&``#'!"1(80D(Z$F#`@#'!4QA"0@`````ZRR#^PK'!3!A -XM"0@`````=#LY\W1#@_M<#X07`0``B5PD!,<$)$AA"0CHL8("`(L=,&$)"(7; -XMB1U$80D(=<0QP.@J[O__B<.#^PIUQ<<$)`H```#H1]C__Z%,80D(A<`/A:\! -XM``"A2&$)"(L8A=L/A"`'``")!"3H'XW^_Z-,80D(QP5D80D(`````.LNB?:# -XM^PK'!3!A"0@`````=#LY\W1#@_M<#X3L````B5PD!,<$)&!A"0CH)(("`(L= -XM,&$)"(7;B1U$80D(=<0QP.B=[?__B<.#^PIUQ<<$)`H```#HNM?__\<$)&!A -XM"0CH3H("`.DJ_?__@TW$`>DA_?__BQTP80D(@P5P=@H(`87;B1U$80D(#X5Y -XM_/__,<#H3NW__XG#Z77\__^)!"3H;]?__^E*_/__BQTP80D(A=N)'41A"0@/ -XMA(D```#'!3!A"0@`````.?,/A,/^__^#^UP/A+K^___'1"0$7````,<$)$AA -XM"0CH9X$"`.FA_O__,<#HZ^S__XG'Z;;[__\QP.C=[/__Z7G[__^+'3!A"0B% -XMVXD=1&$)"'0]QP4P80D(`````#GS#X3R_O__QT0D!%P```#'!"1@80D(Z!*! -XM`@#IV?[__S'`Z);L__^)PXUT)@#I;____S'`Z(3L__^)PXGVZ\#'!"1<```` -XMZ*(*__^)]NG'^O__,<#H9.S__XG&B?;I=_W__\<$)$AA"0CH'X$"`.E<_O__ -XMB10DZ.Z*_O^)]NEY_?__,<#H-.S__XG#B?;ITOC__S'`Z"3L__^#^'N0#X5_ -XM^/__QT6\>P```.EX^/__QP0D2&$)".C2@`(`QP5,80D(`````.LLQP4P80D( -XM`````(/X"@^$PP(``(/X/P^$Q@(``(E$)`3'!"1(80D(Z#J``@"A,&$)"(7` -XMHT1A"0AUQC'`Z+7K___KQXL=,&$)"(7;B1U$80D(#X2%!```QP4P80D(```` -XM`+\!````Z43X__^+->"8"@@[-029"@B)'3!A"0@/A$,$``"+%1QW"@B%TG44 -XMZ2$!``"-="8`BU(0```.@S"?__Z>'W___'!3!A"0@J````B?&)^HU%\.AH]/__A<`/A,/W -XM__^+'3!A"0B%VXD=1&$)"`^$&P,``,<%,&$)"`````#IJ/C__S'`Z+;J__^) -XMP^DB^/__H3!A"0B%P*-$80D(#X2>`@``QP4P80D(`````(/X?0^$ROC__\<$ -XM)%8```#HK@C__^FY^/__QP0D"@```.B=U/__Z6CY__^+0PB+%828"@B+0`@Y -XMT`^$&`(``#'VBT`(@\8!.=!U]NE_]___B30DZ,MS``")PXD$).BAA`(`QP0D -XM8````(E$)`3H40C__XD<).@I%@(`@\1,6UY?7#^W^0=Q'V!)V]40D( -XM!(T$MHUT0]!U!;[_____B5PD!,<$)$AA"0CH^'T"`(L=,&$)"(7;B1U$80D( -XM=!2%V\<%,&$)"``````/B7'____KCS'`Z%WI__^)P^E=____B1PDZ'[3__^A -XM3&$)"(7`#X5<`0``H4AA"0B)!"3H8(C^_Z-,80D(H8R8"@BC,&$)".D#]O__ -XMQP0D"@```.A$T___H4QA"0B%P`^%]P```*%(80D(B00DZ":(_O^%P*-,80D( -XM#X1*`0``N@$```"A2&$)".B.YO__A<")P@^%COW__^F1_?__B1PDNSH```#' -XM!3!A"0AS````Z.C2___IGO;__XLU!)D*".DU_?__BSTP80D(A?^)/41A"0@/ -XMA(D!``#'!3!A"0@`````B3PDZ++2___WQP```$!U,XGX#[;0@?K_````#X=_ -XM`0``H>!="0B+1)`T]L0!=06#_U]U#\=%\`````")=>SI,O;__X/_)@^%XO7_ -XM_^OF,?;IP(`QP0D2&$)".@W?`(`H4AA"0B+%4QA -XM"0B)1"0$@\`$C125_/___XE4)`B)!"3HSHK^_Z%(80D(,=+'`"T```#I2/[_ -XM_XL-()D+"(7)B4W`#X4B]/__Z:?[__\QP.@3Y___B<.0Z7;[__\QP.@$Y___ -XMB<>)]NEQ_O__QP0D5P```.@?!?__Z?KU__^)%"3HCH7^_XGVZ7O^___'!"19 -XM````Z/\$___IVO7__XUV`(V\)P````!5B>575E.#[%RA[%T)",<%$&$)"``` -XM``#'!7"<"P@`````QP0D[)@*"(E%H.BOT___BU4(B5($B5((QP+X;PD(QP4L -XM80D(`````,<$)`````#H:MG__X/X('3O@_@)=.H[!42:"PAU#HL5P'8*"(72 -XM#X6/!0``B00DZ'+0__^+10B-?>C'1"0$D.D%"(D$).B\!___BUT(QP0D#``` -XM`.C]$@(`B46DB5@$QP``````BU4(B5`(B4($B4,(QT7H`````,=%[`````#' -XM1?``````QT0D!+"1"`B)/"3H<`?__XL=,&$)"(7;B1U$80D(#X1``@``QP4P -XM80D(`````(/[('3=@_L)=-B%VW@,]\,```!`#X0M`@``,?;'1:@#````A?9T -XM13GS#X24````@_M<#X2:````@_L*#X3!`P``D(E<)`2)/"3HY'D"`(L=,&$) -XM"(7;B1U$80D(=%:%]L<%,&$)"`````!UNX7;>-*)V,'H'H/P`8/[?P^>PH30 -XM=,`/ML,/MX0`X"`)"*A3=+&#^UP/A%(!``"H`P^$D@```#'`@_LB#Y3`B=Z# -XMP`*)1:CKCHM%J.@&Y?__B[^__^)'3!A"0B)/"3HH`7_ -XM_XD\).A(!?__B3PDZ.!X`@"+5:2)TXD"QT6@`````(,X"@^%$/[__XM%"(D$ -XM).AN!?__BU4(B10DZ!,%___'!"1LG`L(Z.=X`@"+%7"<"PB%TG04H6R<"PB# -XMZ`2-!)"#.`H/A#,#``"A+&$)",<%$&$)"`$```"#Q%Q;7E]=PS'`Z-OC___I -XM`O___XL=,&$)"(7;B1U$80D(#X1^`0``@_L*QP4P80D(``````^$?0$``#L= -XMC)@*"'00QT0D!%P```")/"3H!W@"`('+````0.D,_O__N`,```#H@N/__XG# -XMZ;G]__^#^W\/C\K]__\/ML,/MX0`X"`)"*A0#X2W_?__@_L[#X12`0``#X^X -XM````@_LF#X3-````C;0F``````^/*@$``(/["HVT)@`````/A"8!``"#^R.- -XMM"8`````#X5R_?__H)7+6X -XM@\8!@_L*#X3-````B5VPBQTP80D(A=N)'41A"0AUR#'`Z*;B__^)P^O'N`H` -XM`$#I\_W__X/[/I"-="8`=!0/C^<```"#^SR0C70F``^%TOS__XE<)`2)/"3H -XMWG8"`*$P80D(A<"C1&$)"`^$&P$``,<%,&$)"``````YV'1*HS!A"0CIW/W_ -XM_S'`Z#WB__^)PX/["@^%@_[__X,]O)@*"`$/A;W]___'!;R8"@@"````Z:[] -XM__^-M@````"-0]B#^`$/AUS\__^)7"0$B3PDZ&AV`@#IB_W__X!]KP!T&X-] -XMN"O'1>0`````B?8/A*@````QR8D-%&$)"(-]L%P/A.C[___KPHVV`````(ET -XM)`3'!"0S````Z.#__O_'!3!A"0@*````Z3G]__^#^UQT$8/[?`^%Z_O__XUV -XM`.D1____BQTP80D(A=N)'41A"0AT+\<%,&$)"`````"#^PH/A;T```"#/;R8 -XM"@@!#X5[^___QP6\F`H(`@```.EL^___,<#H1>'__XG#Z]"X`P```.@WX?__ -XMZ>#^__^+1;R%P`^$3?___P^VT(/Z?Y`/AT#___\QR3'V]@25O5$)"`1U)NDM -XM____C;0F``````^VT(/Z?P^'&O____8$E;U1"0@$#X0,____C02)@\8!C4Q" -XMT(M$M;R%P'74@_X*#X7Q_O__Z>[^___'``````#IPOS__^CF[/__C;8````` -XMZ6GZ__\['8R8"@AT$,=$)`1<````B3PDZ`-U`@"!RP```$#IX/K__Y"0D)"0 -XMD)"058GEBU4(BTT,A=)U!NL9D(/"`0^V`H3`=`X/OL`YR'7O7;@!````PUTQ -XMP,.-="8`53'`B>6+50B+"H7)=`R)]H/``8L,@H7)=?9=PXUT)@!5B>53BUT( -XMBTT,B=J-="8`BP&#P02)`H/"!(7`=?*)V%M=PXVV`````(V\)P````!5B>6+ -XM10B%P'08BQ"%TG4$ZQ")T(M(!(U0!(7)=?2+`%W#73'`PXUV`(V\)P````!5 -XM,=*)Y8M%"(7`=0?K#(GV@\`!@#@`=?B)PEV)T,.)]E6)Y8M-"(7)=!:)RHUT -XM)@"+`B7___\_B0*#P@2%P'7P78G(PXVV`````(V_`````%6)Y8M%"(7`=!F+ -XM$(72=!.)P8'*````0(D1@\$$BQ&%TG7O7<.-="8`C;PG`````%6)Y5.+70B+ -XM30SK"HUT)@"#PP2#P02+$X72=!J+`87`=`^!XO___S\E____/SG"=-];,575E.#[`R+?0R+=1"0Z+MP`@"+10B)="0(B7PD!(D$ -XM).@T?/[_@_C_B<-U"NAX@/[_@S@$=->#Q`R)V%M>7UW#C;8`````C;PG```` -XM`%6)Y5=64X/L#(M]#(MU$.L4Z$:`_O^#.`1U))"-="8`Z%MP`@"+10B)="0( -XMB7PD!(D$).C4@?[_@_C_B<-TTH/$#(G86UY?7<.-M"8`````58GE5U93@^P, -XMBWT,BW40D.@;<`(`BT4(B70D"(E\)`2)!"3HA(/^_X/X_XG#=0KHV'_^_X,X -XM!'37@\0,B=A;7E]=PXVV`````(V\)P````!5B>575E.#[!R+?0SWQP`"``!T -XM80^W=1"-112)1?#K%>B7?_[_@S@$=26-M@````#HJV\"`(ET)`B)?"0$BT4( -XMB00DZ$2!_O^#^/^)PW31@\056 -XM4X/L$(MU".B\?O[_QP``````ZQKHKW[^_X,X!'4>Z,EN`@#HH'[^_\<````` -XM`(DT).A">_[_A<")PW38@\00B=A;7EW#C;0F`````%6)Y593@^P0BW4(Z&Q^ -XM_O_'``````#K&NA??O[_@S@$=1[H>6X"`.A0?O[_QP``````B30DZ!)[_O^% -XMP(G#=-B#Q!")V%M>7<.-M"8`````58GE5U93@^P,BWT(#[=U#.L3Z!5^_O^# -XM.`1U'(UT)@#H*VX"`(ET)`2)/"3H:WK^_X/X_XG#=-J#Q`R)V%M>7UW#C;0F -XM`````(V\)P````!5B>53@^P$BUT(ZQF-="8`Z,=]_O^#.`1U&(VV`````.C; -XM;0(`B1PDZ"^!_O^#P`%TWH/$!%M=PY"-M"8`````58GE4X/L!(M="(7;>1?K -XM(NB'??[_@S@$=1B-M@````#HFVT"`(D<).@??O[_@\`!=-Z#Q`1;7<.0C;0F -XM`````%6)Y8/L",<$)`````#HKO___\<$)`$```#HHO___\<$)`(```#HEO__ -XM_\<%Z'8*"`````#)PXUV`(V\)P````!5B>575E.[`00``(/L#(M]",<$)`$$ -XM``#H0P@"`(G&ZQ&-'`")-"2)7"0$Z(`(`@")QHE<)`B)="0$B3PDZ.J`_O\Y -XMV'3;@_C_=!O&!`8`@\`!B40D!(DT).A2"`(`@\0,6UY?7#2+7?`Q]NL'@\8!.?YT$8/#!(D$).C8!@(`BP.%P'7HBT7PB5T,B44(@\0, -XM6UY?7>E]^O__BUWPZ^:0C;0F`````%6)Y593@^P0BW4(A?9T*(L&A53 -XM@^P$BUT(BP.)!"3HK/___XE="(/$!%M=Z4\&`@#K#9"0D)"0D)"0D)"0D)!5 -XMB>5=Z8?___^-M"8`````58GE@^P(BT4(B00DZ']T`@"C('<*",=%"!D``!#) -XMZ9WX_O^-M@````"-O"<`````58GE5E.#[!"+70R+=0C'1@0`````BQ.%TG0Z -XMD(UT)@"%TG@<]\(```!`=12#^G^0?PX/ML+VA`#@(`D(\W4GD(/#!(E4)`2) -XM-"3H$6X"`(L3A=)URXDT).AC;@(`BP:#Q!!;7EW#QT0D!%P```")-"3HZFT" -XM`(L3Z\:-M@````!5B>53@^P4BUT(B1PDZ`[Y___'1"0$!````(/``8D$).B[ -XM!0(`B5PD!(D$).@/^?__@\046UW#B?:-O"<`````58GE5U93@^P,BW4(BWT, -XMB30DZ,GX__^)/"2)P^B_^/__QT0D!`0```"-1!@!B00DZ&L%`@")="0$B<.) -XM!"3HO?C__XLSB=B%]G0.D(UT)@"#P`2+"(7)=?>)?"0$B00DZ)OX__^#Q`R) -XMV%M>7UW#D%6)Y5>)QU:)UE.#[`SK%I#H1WK^_X,X!'4>C;8`````Z%MJ`@") -XM="0$B3PDZ'MW_O^#^/^)PW38@\0,B=A;7E]=PXVT)@````"-O"<`````58GE -XM@^P8B5WXB=.)=?R)!"3HEG?^_X7`B<9X.X/[_W0E.=YT%8G:B?#HTO___XDT -XM)(G#Z#C\__^)WHGPBUWXBW7\B>Q=PX/X!7[6B?"+7?B+=?R)[%W#OO____^+ -XM7?B)\(MU_(GL7<.0C;0F`````%6)Y5.#[`2+10B+70PYV'06A!>) -XMVI"-="8`Z!O___^)V(/$!%M=PXUV`(/X!7_R@\0$B=I;7>E/____ZPV0D)"0 -XMD)"0D)"0D)"058GE@^P8B5WXBUT(B77\BW4,.?-T'X7;>!N%]G@CB?*)V.C) -XM_O__.=YT"HD<)(GSZ'O[__^)V(MU_(M=^(GL7<.)="0$B1PDZ&/___\YPXG& -XM==CKX(UT)@"-O"<`````58GE4S';@^P$Z*)5__^)]CL=M'8*"'0H.QW,EPH( -XM="`['01V"@AT&#L=1)D+"'00@_L/=`N)'"3H$_O__XUV`(/#`8/[0'7(@\0$ -XM6UWI/E;__XVT)@````"-O"<`````58GE@^PHB7W\BWT(B5WTB77XA?]T>HM% -XM#(7`=&.)/"3HMWO^_XG&BT4,B00DZ*I[_O^)1?"-1`8!B00DZ(\#`@")="0( -XMB7PD!(G#B00DZ-EZ_O^+1?"-%#.)%"2#P`&)1"0(BT4,B40D!.B]>O[_B=B+ -XM=?B+7?2+??R)[%W#B?;'10Q%R0@(ZY2-M"8`````OT7)"`CI?/___XVV```` -XM`%6)Y8/L&(EU^(MU"(E=](E]_(7V=#J)-"3H'GO^_XUX`8D\).@'`P(`B7PD -XM"(ET)`2)PXD$).A1>O[_B=B+=?B+7?2+??R)[%W#C;8`````OD7)"`CKOXGV -XMC;PG`````%6)Y8/L&(EU_(MU#(E=^(U&`8D$).BV`@(`B70D"(G#BT4(B1PD -XMB40D!.C]>?[_B=C&!#,`BUWXBW7\B>Q=PY!5,<")Y5=64X/L#(M="(7;=$>) -XM'"3H1O7__\=$)`0$````@\`!B00DZ/,!`@")QXL#AB?N-M"8````` -XMB00DZ+AM`@")`XM&!(/#!(/&!(7`=>F)^(/$#%M>7UW#ZPV0D)"0D)"0D)"0 -XMD)"058GE5E.#[""+70C'1>P`````C77LQT7P`````,=%]`````"+`^L2QT0D -XM!"````")-"3H>6D"`(L#A"%P%T/ -XME,`/ML##BT($J0```$!T!%TQP,.#^'^0=_;V!(6]40D(!'3L@\((BP+KGI"0 -XMD)"0D)"0D)"0D)!5B>5=QP4@F0L(`````,<%A)@*"`````#'!3"9"P@````` -XMPXVV`````(V\)P````!5B>564X/L$(MU"(7V#X2@````#[8&/`(/A(@```!W -XM$BP!=#:)=0B#Q!!;7EWI?O\!`#P&=^Z+1@B)!"3HO____XM&#(D$).BT____ -XMB74(@\006UY=Z5;_`0"+5A"+`H7`=!>)TXD$).A#_P$`BT,$@\,$A7>D*_P$` -XMBT84B00DZ$_____KSX/$$%M>7<.-M@````!5B>5=Z3?___^-M"8`````58GE -XM5U93NP$```"#[#PYT(E%V(E5U(E-T,=%[``````/A(4```")PXL#B00DZ%Y? -XM__^#^!*)P0^&90,``,=%[`````"+7=@Q_S'VZR*-=@"#^"@/A)<#``"+3>R% -XMR74$A?]U`X/&`8M;"#E=U'0PBP.+`(/X*0^$A`,``'[2@_@\=`6#^#YUT87_ -XM#X2``P``BT7LA3'1"0$!````(D<).AN_@$`BU7DB47HB4(0BTW4BP&#."D/ -XMA&,#``"+1=0Y1=@/A&H#``"+5=`Q_XM-T(M=V,=%W`````"#X@�+'1>`` -XM````QT7P`````(E5S(E-R.LO@_@H#X0N`0``A?\/A4T!``"+-8!>"0B%]@^$ -XM6`$``(-%\`&+6P@Y7=0/A-H```"+$XL"@_@I#X3!`0``?L*#^#P/A$@!``"# -XM^#Z-=@!UNH7_#X4'`0``@WH$/HGV#X3J`@``BT,(.T74#X3_`0``BS#'1"0$ -XM,#L)"(DT).BH;_[_A<`/A,(!``#'1"0$0#L)"(DT).B0;_[_A<`/A<<"``"+ -XM1>2!2`0``0``BUL(BW,(.W74#X2T`0``BP:)\XL`QP0DSML("(E$)`3H7?#_ -XM_X7`#X66`0``BT70@^`,@_@$=`Z+5>2+0@R%P`^$EP(``,<$)&4```#HX.[^ -XM_XM;"#E=U`^%)O___XM=W(7;=`N+3>R%R0^$_@```(M%\(7`#X06`@``BTWD -XMQ@$!BT7D@\0\6UY?7<.%_W4@BU7R%P`^$NO[__XLU@%X)"(7V#X6H_O__BP.)!"3H?&@"`(M- -XM\(M5Z(D$BNF0_O__A?]URX-Z!#P/A+P!``"+2+ -XM00B%P`^$M@$``,<$)&<```#HZNW^_^DK_O__D(UT)@"#[P$/A5C___^+1>R) -XM7>"%P`^$#_[__^E0____BU7PA=(/A5,!``"+3>3&`0*+5>"Y`0```(M%W.CS -XM!```BU7DB4(4BT7D@\0\6UY?7<.+3>2!202`````]D70#(M;"`^%C_[__XM# -XM"#M%U`^%`@$``,<$)&0```#H8^W^_^FD_?__N`$```#3X*D`ZP0`#X6,```` -XMJ!`/A('\__^+6P@[7=0/A6#\___IP!````Z?C[___'0@00````BT74.478#X66_/__QP0D)````.B5 -XM[/[_Z=G]__^+5>2#2@0"Z0K]__^+1>2!2`0``@``Z37^__^+2)00SIAOS__XL& -XMB00DZ%9F`@"+5>2)0@CI=>V+3>B)\H/$'(GX6UY?7>G#^O__C78`A=)US,=$)`08 -XM````QP0D`0```.CH^0$`BTWH@\D$B47PBT,(.?")1>QT7HL`@S@F=$"+1?") -XMVL8``XGXZ'_Z__^+5?")0@B+5>R+`H,X)G0S@TWH`HGRBT,(BTWHZ#[___^+ -XM5?")0@R#Q!R)T%M>7UW#BT7PBTWH@4@$@````(/)#.NNBUWLZ\B+5?")^,8" -XM`XG:Z"CZ__^+5?")0@CKL56)Y5>)UU93B<.#[!PYT(E-['0TB<8QR>L;C;8` -XM````@_@I#X27````@_@F=#*+=@@Y]W03BQ:+`H/X*'7BBW8(@\$!.?=U[8M- -XM[(GZ@\0EF____D(VT)@````!5 -XMB>57B==64XG#@^P<.=")3>QT-HG&,@1\=57B<=6B=93@^P<.=")3>P/A*(```")PS'2ZQV)]H/X -XM"G0F@_@H=0:#P@&-=@"+6P@YW@^$?P```(L#BP"#^"ET;'[:@_@[=>6%THUV -XM`'7>QT0D!!@```#'!"0!````Z&KW`0")VHE%\,8`!(M-[(GXZ,C^__^+5?") -XM0@B+1>R)="0$B40D"(M#"(D$).BL`0``BU7PA<")0@QT+XM%\(/$'%M>7UW# -XMC;0F`````(M;"(/J`3G>=8&+3>R)\H/$'(GX6UY?7>ES_O__BT((QT((```` -XM`(E"#.O"C70F`%6)Y5=64X/L'#G0B47PB57LB4WH#X3L````BQB)QC'_ZQR# -XM^"9T;X/X*'4$@\BP.#^"ET/G[;@_@^=`R#^'R0 -XM==Z#>P1\=-B+=@@[=>R)]@^$G````(L>QT0D!#`["0B)'"3HA&C^_X7`=+2+ -XM`X/X*77"@^\!>:C'!"1A````Z!SH_O_KFH7_=9:#>P0FB?9TCHM-Z(GRBT7P -XMZ''^__^)QP^V`#P$='L\!G1W/`5TR)-"2)1"0$Z&,```")0PSK)X7_ -XM=16+3>B+5>R+1?"#Q!Q;7E]=Z07^___'!"1B````,=OHA^?^_X/$'(G86UY? -XM7575E.#[`R+70B+=0R+?1`Y\W4)ZS&+6P@YWG0JBP.+`,<$),K;"`B) -XM1"0$Z&WH__^%P'7A@\0,B?F)\HG86UY?7>E7_O__@\0,,575HG64XG#@^PL.=`/A#D!``"+`(,X*`^$#P$``,=$)`24 -XM=@H(B00DZ"!1``"%P(G"#X04`0``BT,$B36$F`H(HR"9"PB+`L=$)`10*@8( -XMQP0D,)D+"*,PF0L(Z.WI_O^-1>B)1=B)!"3HC^'__XE%X,<$)#"9"PCH,.G^ -XM_XL-@%X)"(7)=!>-1>B)!"3H6[/__\<$)````$#HO^;^_XL#BQ"%T@^%T@`` -XM`(M%X(7`#X2T````BWL$D(UT)@"+`XD$).@&]`$`BUL(BT,$B00DZ/CS`0`Y -XMWG7DB7<(N`$```")?@2+5=@Y5?!T88M%[(M`!(E&!(M%[(M`!(EP"(M%\(EX -XM!(E'"(M%[(L`B00DZ+GS`0"+1>R)!"3HKO,!`(/$++@!````6UY?7<.+4@2+ -XM`H,X*741ZQV0C70F`(M2!(L"@S@I=`XYTW7R,<"#Q"Q;7E]=PXM#"#G0=._H -XM7````(/$+%M>7UW#BW,(BWL$.?,/A4;____I7?___XM5\(E5W(LZB00DB7PD -XM!.BI9?[_A<`/A1+___^)?"0$QP0D($,)".C57@(`BU7P/A,X```"+&(G&,?_K(I"#^"9T.X/X -XM*`^$G````(/X"G0MBW8(.77L#X26````BQZ+`X/X*71H?M:#^#Z-=@!T-(/X -XM?'0)@_@[==>-="8`A?]USXM%\(GRZ-+]__^Z`0```(7`=62+1@B+5>R#Q!Q; -XM7E]=ZWJ+=@@[=>QT1XL>QT0D!#`["0B)'"3HW&3^_X7`=(^+`X/X*76=D(UT -XM)@"#[P$/B7K____'!"1A````Z-OD_O_I:?___X/'`8UV`.E>____,=*%_W0* -XM@\07UWI2?W__XGVC;PG`````%6)Y5:)UE.) -XMPX/L$#G0=0GK+HM;"#G>=">+`XL`QP0DRML("(E$)`3H4^7__X7`=>&#Q!") -XM\HG86UY=Z<#^__^#Q!`QP%M>7<.-M"8`````58GE5E.[,@```(/L$(MU",<% -XM:)P+"`L```"-M@````"+1@B)\NB&____A&#Q!!;7EW#D)"0D)"0D)"0D)"058GEBT4(78L`HW!A -XM"0C#D%6)Y5W'!=@D"0B@G`L(PY!5B>6#[!BAV"0)"#V@G`L(#X2`````BPV$ -XM=PH(A&$) -XM"`$```"%TG5)BPWH=@H(N@$```"%R74&BQ7,EPH(+:"<"PB)1"0(QT0D!*"< -XM"PB)%"3HH^7__X/``71>QP78)`D(H)P+",<%>&$)"`````#)PXL-Z'8*"+H" -XM````A&$)"`````#'!=@D"0B@G`L(QP0D````(.@` -XMX_[_H=@D"0CI8?___XVV`````.CG9?[_BP"#^`ET'HUT)@!^*8/X&703B?:- -XMO"<`````?"&#Z$6#^`%W&<<$)`$```#HZH+^_^EG____@^@%@_@!=N?'!"0` -XM```@Z*'B_O^0Z4W___^-="8`C;PG`````%6)Y8/L"*'8)`D(BU4(@>+__S\` -XMB!"#P`$]EJ0+"*/8)`D(<@7HEO[__\FX`0```,/K#9"0D)"0D)"0D)"0D)!5 -XMB>53@^P$BPW`F`H(BUT(A#.-=@")'"3H.*4!`(E="(/$!%M=Z4O___^A?)@*"(7`#Y7`Z\*A_)D+"(7` -XM#Y7`Z[:-=@"!XW____>!RP````CKPNA]9@$`ZZN-="8`C;PG`````%6)Y593 -XM@^P0BT4(BQ5P80D(B<:)PX'F````/('C__\_0(72=5VI````0'56.QW<70D( -XM?2RAX%T)"/9$F#4"=!:#^W\/CA8!``"#/8!1"0@!#X0)`0``]D28-@1U&8UV -XM`(/[?P^.L@```(,]@%$)"`$/A*4````)WHDT).C0_O__ZR^+%<"8"@B!X___ -XM_S^%TG0^H>AV"@B%P'5EH?R9"PB%P`^5P(3`=3Z)'"3H7_[__XLUU"0)"(7V -XM=`N!X___/P"#^PIT2H/$$%M>7<.-=@"AZ'8*"(7`=!JA?)@*"(7`#Y7`A,!T -XMP@G>B30DZ/^C`0#KMJ'@=0D(A<`/E<#KII"A;)D+"(7`#Y7`ZYF-="8`@\00 -XM6UY=Z;7\__^)\(/(7(D$).C8_O__B=C!^`:#X`>#P#`)\(D$).C#_O__B=C! -XM^`.#X`>#P#`)\(D$).BN_O__B=B#X`>-6##I%____XU#]X/X`0^&"____XL- -XM=&$)"(7)=!J)\(/(7HD$).A^_O__@_M_=!*#RT#IY_[__X/[#77AZ=W^__^S -XM/Y"-="8`Z='^__^-="8`C;PG`````%6)Y5=64X/L'(M="(G8)?__/P")1"0$ -XMC47NB00DZ"Y:`@"%P(G'="")WC';@>8``,#_#[9$*^Z#PP$)\(D$).@,_O__ -XM.?MUZH/$'%M>7UW#58GE5U93@^PZ)!"3HWED" -XM`(7`B<=T((G>,=N!Y@``P/\/MD0K[H/#`0GPB00DZ`S]__\Y^W7J@\0<6UY? -XM7<-5ND#C12)`=(ITXE<)`B)3"0$ -XMZ&`Z`@"#Q!1;7<.-=@"-O"<`````5;AWFBX`B>564X/L$(MU"(GQP>D&]^&) -XMT\'K`H7;#X2,````B5PD!,<$)-C;"`CH'#H"`&G#0'X%`(GQ*<&X'X7K4??A -XMB=.ZB8B(B,'K!8G8]^J-!!K!^`7H8O___\<$)-K;"`CHYCD"`(G8NHF(B(CW -XMZ@':P?H%:](\*=.)V.@\____QP0DDAT)".C`.0(`B?"Z'X7K4??B@\006\'J -XM!6O29"G6B?!>7>D2____B?:X'X7K4??FQP0D/=P("(G3NHF(B(C!ZP6)V/?J -XM`=K!^@6)5"0$Z'8Y`@#K@HUT)@!5N,6SHI&)Y593@^P0BW4(]^:)T\'K"X7; -XM=&B)7"0$QP0DV-L(".A%.0(`:<,0#@``B?.ZB8B(B"G#B=CWZHT$&HG:P?@% -XMP?H?*=#HD/[__\<$)-K;"`CH%#D"`(G8NHF(B(CWZHG8P?@?@\00`=K!^@4I -XMPFO2/"G3B=A;7EWI7?[__XGPNHF(B(CWZHGPP?@?B?/'!"0]W`@(`?+!^@4I -XMPHE4)`3HQC@"`.NDD)"0D%6A@'<*"(GE7<<%@'<*"`````"CB'8*",.-M"8` -XM````5:&(=@H(B>5=QP6(=@H(`````*.`=PH(PXVT)@````!5B>564XG#H0"8 -XM"@B%P'1`BPT\=PH(,?;K#(VV`````(L`A7<.-M@````"-OP`````[!3QW -XM"@A5B>53B<-T$CL%<)D+"'0J6UW#C;0F`````*%PF0L(A6#[`B#/=27"@C_="*AU)<*"(7`=`C)PXVV`````,<$)#X```#H5-S^ -XM_\F-=@##QP0D(````.A#W/[_C78`Z\V-M"8`````C;PG`````%6)Y593@^P0 -XMBQT`F`H(BW4(QP6,=@H(`@```(7;="N0]D,,`G0>A?:X`;H("'4%N$7)"`B) -XM1"0$QP0D0````.CLV_[_BQN%VW76@\006UY=P^L-D)"0D)"0D)"0D)"0D%6) -XMY8/L6(E]_(M]"(E=](EU^(/_``^."@$``(U=U(UUY(D<).B#8/[_QT0D!!(` -XM``")'"3H@UO^_\=$)`05````B1PDZ'-;_O^)="0(B5PD!,<$)`$```#H#UO^ -XM_\=$)`1@'@4(B30DZ%/>_O^+10S'!"0`````B40D!.B<7/[_@\`!#X2G```` -XMA?]^=L<$)`\```#H\UW^_SE%#'1:C5V\B5PD",=$)`0`````QP0D%@```.CS -XM7O[_QT0D!`$```#'!"06````Z$]?_O^+10S'!"0/````B40D!.@,6O[_QT0D -XM"`````")7"0$QP0D%@```.BT7O[_C47DB00DZ!W=_O\QP(M=](,]U)<*"`"+ -XM=?B+??P/G\"#Z`$A!=27"@B)[%W##XU"____Z]:-=@#HQV#^_\<$)`````") -XM10R)1"0$Z-1;_O^#P`%T"(M]#.DT____Z')=_O^+`(D$).@86_[_QT0D!-S; -XM"`C'!"0V````B40D".A4VO[_QP0D`````.AX>O[_Z\.-M@````!5B>53B<.# -XM[!2+0!B%P'4(ZWZ+6P2+0Q@[0QQU]8G8Z#S]__\QP#L=@'<*"`^4P(/H`2$% -XM@'<*"(G8BU,4C78`@6`,_W___\=`&`````#'0!0`````BT`$.=AUY#L5,)H+ -XM"'0&@\046UW#H0"8"@@QR87`=`^+4!0YT7T"B=&+`(7`=?&)#3":"PB#Q!1; -XM7<.A@)@*",=$)`SLVP@(QT0D"`,```#'1"0$$0```(D$).@K.___B00DZ,,T -XM`@"#Q!1;7<.-M@````"-O"<`````58GE@^PHB77XBW4(B5WTB7W\A?9T"HM> -XM!(U^!(7;=2"+'3QW"@B%VW1HBQ4\=PH(BUWTB="+=?B+??R)[%W#D,=$)`3< -XM/0D(B30DZ/Q8_O^%P'3,QT0D!.@]"0B)-"3HZ%C^_X7`=+C'1"0$]#T)"(DT -XM).C46/[_AP`````ZPR+5?"+$H72B57P=&Z+ -XM5?"+0A@[0AQUZ8,_/W5&BU)XBP*%P'3;B=/K"HM#!(/#!(7`=,T[!G7RB5PD -XM!(DT).A1VO__ASKGHM5\(M" -XM>(D\)(E$)`3H(-K__X7`=(CKS8M5[(72D(UT)@`/A;K^__\QP(,_/P^4P(/H -XM`8/@\04\```0B00DZ-_7_O\QTNF8_O__QP0D.P``$.C,U_[_Z>'^__^)/"3H -XMCU,"`(D$).@S5O[_BQ4`F`H(A=*)P74(ZQB+$H72=!([2A1U]8M"&#M"''7M -XMZ5'^___'!"0M```0Z(77_O^0C70F`.G;_O__C70F`(V\)P````!5B>6#[`B+ -XM10B+0`2)!"3H[/W__X-(#"#)PXVV`````%6)Y593@^P0BS6`=PH(A?9T5/=& -XM#`(!``!T".M)C78`BW8$BT88.T8<=?6+1A2)\\<$)`?<"`B)1"0$Z%`R`@"+ -XM0QC'!"0\W`@(B40D!.@],@(`BUL$.=YUYL<$)`H```#H2O7__\<%@'<*"``` -XM``#'!8AV"@@`````@\006UY=P^L-D)"0D)"0D)"0D)"0D%6)Y5=64XG#@>RL -XM````B95D____BT`8.T,<=`^-="8`BUL$BT,8.T,<=?4Y6P0/A)`'``"+A63_ -XM__^)WHN59/___\>%=/_________'A7C___\`````@^`0B46`BX5D____@>*$ -XM````B56(BY5D____QX5P_________X/@`HE%A(N%9/___X/B`8F58/___X/@ -XM!(F%7/___XVT)@````"+1@R+E7C___^)QPG"@>%?/___R3<"`B%P'4*QX5\____^]X("#N]MP(".@# -XM,`(`C48@B40D#(U&*(E$)`B-1C")1"0$QP0DH&$)".AR6@``B?:+1@0YPW0) -XMB<;IC]___'!"0@````Z"+R___IK?[___:%9/__ -XM_P@/A8("``#VA63___]`#X2Y_O__H629"PB+0`R)1"0$BT,(BT`,B00DZ&53 -XM_O^%P`^$E_[__Z&`F`H(QT0D#'/<"`C'1"0("@```,=$)`01````B00DZ/PT -XM__^)!"3HE"X"`(M#"(M`#(D$).BFH?[_QP0D><((".AZ+@(`Z4O^__^0C70F -XM`#L=/'<*"+@K````=!0QP#L=<)D+"`^4P(/H`8/@\X/`+8M6%+D=W`@(@_H) -XM?@6Y12-1BB)1"0$B10DZ(-4``"+1>PY1>1UMHM%Z#M% -XM\`^?P.NNC47LQT0D#(!A"0B)1"0(B7PD!,<$)*!A"0CHT50``.FJ^O__BT,, -XM]L1`#X1D^/__@.2_@\A`B4,,Z5;X___'!"07W`@(Z!8J`@#I+/___Y!5B>56 -XM4X/L$(MU"(M=#(,%T*P+"`''1"0$L)`(",<$)-"L"PCHE]'^_XGPZQ"-=@"` -XMS@&)4`R+0`0Y\'0IBU`,]L(#=/&)T8/)`8G*@^+]A=N)4`QUVH'A_?[__XE( -XM#(M`!#GP==>%VW5#B?#H?_'__[H+````B?#HD_?__\=$)`03````BT8(D$).C,<$)(0``!")1"0$Z!W-_O^+5@2%TG6DC;8`````@\006UY= -XMPXGVC;PG`````%6)Y5=64X/L#(LUC'8*"(M5"(7V=`K'!8QV"@@"````C4($ -XMBU($OP<```"%TG08BU@$A=MT=,<$)#@```"_5P```.BYS/[_BPTPF@L(A7UW#B=CH&/+__^OD -XMQT0D!*PX"0AFOU<`B10DZ!Y,_O^%P'2%Z6____^)]HV\)P````!5B>53@^P4 -XMBQT`F`H(QP50F@L(`````(7;=0OK68UV`(L;A=MT4&:#>PP`D(UT)@!Y[H,% -XMT*P+"`''1"0$L)`(",<$)-"L"PCHT\[^_[H'````B=B!8PS_?___Z!#U__^H -XM`W08QP0DT*P+".@0SO[_BQN%VW6P@\046UW#B=CH;?'__^O?C70F`(V\)P`` -XM``!5B>575HG&4X/L+(7`B578="V+`(7`=">)\^L/C70F`(/#!'0:BP.%P'04 -XM@S@EB?9U[HD$).A&S?__@\,$=>:)-"3HN7K__\=$)`3P(P8(B<>)!"3H-\[^ -XM_X,%T*P+"`''1"0$L)`(",<$)-"L"PCH',[^_Z&4=PH(A<`/A08"``"%_P^$ -XM6`(``(L?A=L/A$X"``#'1=P`````QT7@`````.MG@_A_=W3V!(6]40D(!'1J -XMB1PDZ+9&`@"-5?#'1"0("@```(E4)`2)!"3HJTW^_XG#BT7P@#@`#X2!```` -XMQP0D.0``$.BURO[_@WW8#P^$+`$``(-]V`$/A"(!``"#QP1T+XL?A=MT*8L# -XM@_@E#X2.````J0```$!TAX/X+9!TD,<$)#D``!#H7UW#C;8`````BTW8B1PD -XMB4PD!.A]2?[_A<`/B73____H($W^_XL`B00DZ,9*_O^)7"0$QP0DJ=P("(E$ -XM)`CH1B4"`(-%X`'I7/___XD<).B%\/__B<:-=@"+4`P)5=R+0`0YQG7S@WW8 -XM%G<<#[9-V+@!````T^"I``!F`'1A]D7<`0^$R````(M%V(E$)`2+1AR)!"3H -XM*T_^_X7`#XCY````@WW8#W0*@WW8`0^%]O[__\=$)`03````BT8,<$ -XM)(0``!")1"0$Z![)_O_I>/[__X,%Q*P+"`''1"0$L)`(",<$),2L"PCH[LO^ -XM_^G:_?__H8"8"@C'1"0,BMP(",=$)`@,````QT0D!!$```")!"3H="K__XE< -XM)`2)!"3H""0"`(-%X`'I'O[__\<$)-"L"PCH`\O^_^E@_O__Z*5+_O^+`(D$ -XM).A+2?[_B5PD!,<$)*'<"`B)1"0(Z,LC`@"#1>`!Z=O^__^)]E6)Y5=64X/L -XM'(M5"(M"!(UZ!(7`=`6#."UT%KL/````B=J)^.BW_/__@\0<6UY?7<.-<`2+ -XM0`2#^&QT=X/XNIQP0D"@```.B[Y?__Z?_^__^+0@B-2@B%P'1AB<^)QND(____]@2%O5$) -XM"`0/A`S___^)-"3H_4("`(U5\,=$)`@`````B50D!(D$).@22?[_B<.+1?"` -XM.`!U#87;>`F#^Q\/CBK____'!"0;```0Z//&_O^-=@#I%O___\<$)`X``!#H -XMW\;^_^F?_O__C78`C;PG`````%6Z$0```(GEBT4(78/`!.D<^___C;8````` -XMC;\`````58GE@^P8B5WXB<.)=?R+`#L%($,)"'1YB1PDZ!Q'_O^)QJ%08PD( -XM@_A/=RT!\(/X3W8PQT0D!,@]"0BA5&,)"(D$).CT1?[_@P548PD($,<%4&,) -XM"%````"+7?B+=?R)[%W#B5PD!*%48PD(B00DZ,A%_O^-!+4``````3508PD( -XM`0548PD(BUWXBW7\B>Q=PX/#!.N"C78`C;PG`````%6%P(GE5HG&4P^$P0`` -XM``^V!CP"#X3M````=WHL`8GV#X2N````BU8$]L($C70F`'4EBT8(A!B+1@2#X`&#^`$9P"4``0``@\`!B4,,BU8$]L8@=`F`S$")0PR+5@3V -XMQD!T"H%+#````0"+5@1FA=)Y!X%+#````@")\,<%5&,)"`!B"0C'!5!C"0@` -XM````Z/O]__^A5&,)",<``````(/`!*-48PD(]D8$"'02BU,,B="`S`B)0PR` -XM?@0`>'N0QP0D`&()".B$/0(`B4-XH8!W"@B%P'1MQT,(`````*&`=PH(BT`4 -XMB4,4H8!W"@B)0P2A@'<*"(M`&(E#'(L5@'<*"(G1ZP*)PHM"!#G!=?>+#0"8 -XM"@B)6@2-0R")"XD=`)@*",=%#`````")10B#Q`Q;7E]=Z9)$_O^`S@R)4PSI -XM>____XD=@'<*"(E['(E;!*%DF0L(B4,(H629"PB#0`@"H3":"PB#^`A_+8L- -XM`)@*"(/``:,PF@L(B4,4BS4\=PH(A?9T28L5<)D+"(72=8B)'7"9"PCK@(L- -XM`)@*"+X!````ARA@)@*",=$)`S( -XMW`@(QT0D"`$```#'1"0$$0```(D$).A$'___B00DZ-P8`@"+6P0Y\W6_C5W( -XMB1PDC7VXZ&-"_O_'1"0$`@```(D<).AC/?[_QT0D!!0```")'"3H4SW^_XU% -XMV(E$)`B)7"0$QP0D`0```.CL//[_C478B00DQT0D!&`>!0CH+<#^_XM%V(E% -XMN(M%W(E%O(M%X(E%P(M%Y(E%Q,=$)`04````B3PDZ.%"_O^0C70F`.@K,`(` -XM,=N)\(VT)@`````+6`R+0`0Y\'7V]L,!=`J)/"3HI4+^_^O7C478B00DZ"R_ -XM_O^AU)<*"(7`?A")1"0$QP0D#P```.C?._[_]L-2#X3T`0``]L,"#X4E`0`` -XMNJ````")\.CEY?__]\,"(```=`Z+/91W"@B%_P^%C@$``(GR,=L/MD(0A,!T -XM$O="#!`@```/MMAT!H/(@`^VV(M2!#GR==^%VP^$@0```,=$)`3$F`H(QP0D -XMP#P)".@^)@``A7]___H>ES^_XGPZ%/@ -XM__^#Q%Q;7E]=PZ&`F`H(QT0D#+W<"`C'1"0(`@```,=$)`01````B00DZ`8< -XM__^)7"0$B00DZ)H5`@#I%?[__XGPZ`[@___I564X/L$(M=".A`W?__BT,$B=[K/L=#&``` -XM``#HJ3S^_XL`B00DZ$\Z_O^)1"0(BT-XQP0DA```$(E$)`3HC+G^_XM&!(7` -XM=#>+1@B#Q@2%P'0MB00DZ`/@___'1"0$`0```(G#B00DZ)'J__^%P'2DB1PD -XMZ%7[__^+1@2%P'7)@\006UY=PXVT)@````!5B>564X/L$(L=`)@*"(7;=%2^ -XM`)@*".L/C;0F`````(L8B<:%VW0^BTL8B=B%R77OBP.)!HM#>(D$).APQ@$` -XMBU,(A=)T#8M""(/H`H7`B4((=":)'"3H5,8!`(GPBQB)QH7;=<*A@'<*"(D$ -XM).C-^O__@\006UY=PXM#"(L0A=)UT8D$).AE>/[_Z\>-=@!5B>575E.#[&R- -XMM"8`````Z)<[_O_'``````"+-91W"@B%]@^$7@(``(L=P'8*"(7;=0Z+#?Q= -XM"0B%R0^$1@(``+@#````C56HB40D!(U%\(E4)`B)!"3H<#C^_XG"C4`!@_@! -XM#X8S`@``BS4`F`H(A?9U".N:BS:%]G24.U88D'7TBTX,B"$``(D$).CP,@(`B00DZ)0U_O\YPP^,]0`` -XM`(M'#(/(0(E'#`E%H(M_!#GW=8N+5@R)T(#D_CMV!(E&#`^$G@$``/=%H`$0 -XM```/A3S^__^)\XM##*@"=`:`S!")0PR+6P0Y\W7LBT,8.T,<=`N+6P2+0Q@[ -XM0QQU]8M]H(/G`@^$?`$``*$\=PH(A^__^)0P3'1"0(`0```,=$)`0"````B00DZ.@S -XM_O^+`X7`>!6+4P2%TG@&@\046UW#B00DZ+&Y__^+0P2%P'@(B00DZ**Y___' -XM10@U````@\046UWI,;3^_Y!5B>6#["C'1"0$Q)@*"(E=](G3B7W\B<>)=?C' -XM!"1@1@D(Z/D=``"%P`^$A@```(D<)(U=[.C6L?[_QT7P`````(D<)(E%[.BT -XM3O__ASH[<`!`.N;B1PDZ%.Q_O_'1"0$,"H("(G#B00DZ%&V_O_' -XM1"0$`````(D<).@18___B1PDB47LZ):U_O_I8?___XM%[(D$).@&+P(`HR!W -XM"@B+1>R)!"3HEL`!`,<$)#$``!#H&K/^_^E7____D(UT)@!5B>575E.![.P` -XM``"+?0B%_W1JBS70F0L(A?9T,XL=P'8*"(7;=0J+#229"PB%R70?BU4(BT(0 -XMABS7H=@H(A?9T"8MU"/9&!01T%8'$[````%M>7UW##[8!_R2%\-P( -XM".@9N/__@<3L````6UY?7<.+70B+0Q"+,(L&)?___W\]````0`^$I@\``(#F -XM!`^$*P\``(M5"(M"$(LPA?9TK(M2!/;""`^%A@(``(#F`@^%1`(``,=$)`@" -XM````QT0D!!`O"0C'!"3T+@D(Z$XE``"+50B`.@$/A90```"+30B+<1"+'L=$ -XM)`0,2`D(B1PDZ,8Q_O^%P`^%5@$``(M&!(7`#X2(!@``BP#'!"3JW`@(B40D -XM!.B1,_[_A<`/A+$!``"+3@B%R0^$8P8``(M=",<%('<*"/31"`B+0Q"+0`2) -XM!"3H]QD``(A#`<=$)`0"````BT,0B00DZ.&W__^!2P0`"```BU4(@#H!#X1L -XM____H2AW"@C'1?``````A<`/A;3^__^+1?"%P'0PBT7P@7@$`/D$"`^$50<` -XM`(M%\(%X!&#V!`@/A$4'``"+1?"!>`2@[00(#X0U!P``BT4(BW`$]\8`(``` -XM=1[WQA`````/A2H'``"+1?"%P'0+9O?&"9@/A!@'``"+50B`.@)T$X'F`00` -XM`'4+BT7PA<`/A,$*``"+10R%P'@-H5AC"0B%P`^$V`T``(M%#(E$)`2+30B) -XM#"3H]NW__X7`#X7""0``H5AC"0B%P`^%2PH``(M%"(MP!,>%'/___P$```#I -XMR@8``,=$)`3D1PD(B1PDZ%@P_O^%P'4JBU8$A=(/A!X%``"+30B!200`$``` -XMQT0D!`$```")-"3HL[;__^E`_O__QT0D!/Q'"0B)'"3H&C#^_X7`#X4&!@`` -XMBT8$A<`/A-P$``"+70B!2P0`@```QT0D!`$```")-"3H<;;__^G^_?__BT4( -XMQD`!!,=$)`0!````B30DZ%6V__^+50B!2@0`"```Z=C]___'!"0`````Z#JU -XM__^+50B+0@B)!"3HS*+^_XL=*'<*"(7;#X24_?__QP0D`````.@2M?__Z8/] -XM__^+712)'"3HPOK__XMU"(M6!.ED_?__BW4(@#X"=`^+11B)-"2)1"0$Z"#B -XM_O_'1"0$$P```,<$)`````#HS+C__\=$)`@!````QT0D!`(```"C1)D+"(D$ -XM).C++O[_QT0D!!$```#'!"0!````Z)NX___'1"0(`0```,=$)`0"````H\R7 -XM"@B)!"3HFB[^_Z',EPH(B00DZ)TT_O_'1"0$$@```,<$)`(```"CX'4)".A8 -XMN/__QT0D"`$```#'1"0$`@```*,$=@H(B00DZ%AV"@@`````BT$$ -XMBU$4@^`@"4($BT4,BUT8B10DQT0D#`````")1"0$B5PD$,=$)`@`````Z`C[ -XM___H\T_^_XMU"(U=Z(M."(M6!(M!!('BI0```(/("`G0B4$$BU48BT4,B5PD -XM#(E4)!"+=1")1"0$B0PDB70D".C%^O__BT4(BW4(BT@,BU8$BT$$@^(Y@\@$ -XM"=")002+51B+10R)5"00BW44B5PD"(E$)`2)#"2)="0,Z(KZ___I[_K__XM% -XM"(M("(7)=%"#XB`)402+10R+51B)#"3'1"0,`````(E$)`2)5"00QT0D"``` -XM``#H3_K__XM-"(M!"/9`!`%T&(M1#(72#X2B^O__]D($`745B?;HZ]7__XM= -XM"(M3#(72#X2'^O__BW4(BT8$@^`P"4($BT4,BU48QT0D#`````#'1"0(```` -XM`(E$)`2)5"00BT8,B00DZ.CY___I3?K__XM="(M+"(7)=%N#XB`)402+10R+ -XM=1B)#"3'1"0,`````(E$)`2)="00QT0D"`````#HK?G__\=$)`3$F`H(QP0D -XM]"X)".CY%@``B00DZ`$5``"%P`^4PH`[!@^4P#C"#X7[^?__BT4(BU`,A=(/ -XMA-KY__^+0`2#X#`)0@2+10R+71C'1"0,`````,=$)`@`````B40D!(E<)!") -XM%"3H0?G__^FF^?__B00DZ%2M__^#Z`&0#X5Z^?__BSTH=PH(A?\/A6SY__^+ -XM30B+01"+`(D$).B\80``A<")A2#___]T"8,X?@^$;PX``(N%(/___XD$).C+ -XM)P(`BY4@____B10DB%`20H@4(='R+1?"!>`3@H04(='"+1?"!>`30H@4(=&2+1?"! -XM>`1`M04(=%B+1?"!>`20H04(=$R+1?"!>`3PI@4(=$"+1?"!>`3PI04(=#2+ -XM1?"!>`3@GP4(="B+1?"!>`1@H`4(=!R+1?"!>`0@HP4(=!"+1?"!>`10?`4( -XM#X7J]___BUT(@#L!#X4J^?__BT7PA<`/A1_Y__^%T@^%%_G__Z'`=@H(A<`/ -XMA`KY__^)'"3H;.O__\=$)`0P*@@(B<.)!"3H.JW^_XD<).@2Y`$`B1PDZ(JL -XM_O_IV_C__Y"-="8`QT0D!'0\"0B)'"3H_"G^_X7`#X7)_O__BT8$A<`/A+[^ -XM__^+10B!2`0`(```QT0D!`$```")-"3H4[#__^G@]___BW4(@68$__?__^F\ -XM^/__BT7PA%'/___P````"AZ'8*"(7`#X4=`@`` -XM]\8`!```#X41`@``]\8``@``#X7<````BU4(BT((A<`/A.\)``"AM'8*",=$ -XM)`0`````B00DZ-JR__^AS)<*",=$)`0!````B00DZ,6R__^A!'8*",=$)`0" -XM````B00DZ+"R__^+30B+40B)R.@3]?__B<.)!"3H"24"`(D$).A!M/__B1PD -XMBL_O_'1"0$`````(D\).A'K/__A<")PP^( -XMI@H``(D\).A%J_[_QT0D!`,```")'"3H82C^_\=$)`0$````B1PDB40D".A- -XM*/[_QT0D!`````")'"3H<;+__XM%"(M0#(72#X2;!@``Z'[T__^)PXD$).AT -XM)`(`B00DZ*RS__^)'"2)Q^@"M@$`QT0D!#`J"`B)/"3HD```#'1"0$Q)@*",<$),`\"0CH0!$``(7`#X2B]/__QT0D!,28"@C' -XM!"3T+@D(Z(01``")!"3HC`\``(7`B<,/A'ST__^A@)@*",=$)`R]W`@(QT0D -XM"`(```#'1"0$$0```(D$).B="/__B5PD!(D$).@Q`@(`Z4;T__^+=0B+5@3V -XMP@%T"*-L=@H(BU8$BQWH=@H(A=MU)O;"!'0ABU40BP*)!"3H':S__XM-$(M! -XM!(D$).@/K/__BUT(BU,$]L((#X7Z\___H5AC"0B%P`^%2@0``(/B`0^%Y//_ -XM_^A%[?__D(UT)@#IU?/__^A62/[_C;8`````Z<7S__^+1?"!>`2P@04(#X6/ -XM_/__Z5_U___'1"0(`````,=$)`1@8PD(QP0D`P```.C6)?[_BUT(QP588PD( -XM`````(MS!,>%'/___P$```#I6?S__XM%#(7`>!B+/5AC"0B%_W4.BS4H=PH( -XMA?8/A"`(``"-7=B)'"3HS2K^_XD<),=$)`04````Z,TE_O^)'"3'1"0$`@`` -XM`.B])?[_C47(B5PD!(E$)`C'!"0!````Z%8E_O^AY'4)"(L5E'<*"(L-P)@* -XM"(L=Z'8*"(LUM'8*"(F%)/___Z',EPH(B94H____BQ4$=@H(B8TL____BPU$ -XMF0L(B9TP____BQW4EPH(B;4T____BS7@=0D(B84X____H?R9"PB)E3S___^+ -XM%6QC"0B)C4#___^+#6AC"0B)G43___^+'61C"0B)M4C___^+-6!C"0B)A4S_ -XM__^A6&,)"(F58/___XF=6/___XF-7/___XFU5/___Z-<8PD(QP7$=@H(```` -XM`,<%3)D+"`````"+'>A="0C'!;AV"@@`````QP51U"0@!A<`/A`T%``"%V\<% -XME'<*"``````/A!0'``#'1"0$`0```,<$)`(```#H;"C^_\=$)`0!````QP0D -XM`P```.A8*/[_BT4,A;Q__^- -XM7@2)'"3H+R/^_XDT)(E<)`2-!(4$````B40D".AX)_[_BW4(BU8$Z2WP__^A -XM!'8*"(D$).@0(_[_H?R9"PC'1"0(`````,=$)`0"````QP0D`@```*-LF0L( -XMZ,HA_O_IH?K__\=$)`@`````QT0D!&!C"0C'!"0#````Z,DA_O^+=0C'!5AC -XM"0@`````BU8$Z87[___WQ@@````/A"@"``#'!"0!````Z&"G__^+312+002) -XM!"3HCB+^_\<%?)@*"`````#I#_K__\=$)`0)````B3PDZ!.E__^#^/^)PP^% -XMR_G__^E\^?__C47(QT0D"`````")1"0$QP0D`P```.A$(?[_QP0D,````.B< -XMH?[_BX4D____BY4H____BXTL____B[4P____H^1U"0B+A33___^)%91W"@B+ -XME3C___^)#<"8"@B+C3S___^)->AV"@B+M4#___^CM'8*"(N%1/___XD5S)<* -XM"(N52/___XD-!'8*"(N-3/___XDU1)D+"(NU8/___Z/4EPH(BX5<____B17@ -XM=0D(BY58____B0W\F0L(BXU4____B35L8PD(HVAC"0BA7&,)"(D59&,)"(D- -XM8&,)"*-88PD(H4R9"PB)!"3H1:X!`*'$=@H(QP5,F0L(`````(D$).@NK@$` -XMH;AV"@C'!<1V"@@`````B00DZ!>N`0"A7)D+",<%N'8*"`````")!"3HP*?_ -XM_XMU",<%7)D+"`````")'"2)="0$Z.?;__^-1_G__\=$)`3$F`H(QP0DH$$)".@P"@``A<`/A/WW__^+ -XMA5#___^%P`^%)@(``(V%:/___XE$)`2)/"3HA"+^_X7`#XC5]___#[>%!U"0C'1"0(`````,=$)`0"````QP0D`0`` -XM`*-\F`H(Z"$?_O_IS/?___?&!`````^%S````/?&(````'0-@SW4EPH(_P^$ -XM30,``,<$)`````#HTZ3__Z%$F0L(B00DZ`(@_O_'1"0(`````,=$)`0"```` -XMQP0D`````.C&'O[_Z83V___HG"7^_XG#Z7?Z__^#/=27"@C_#X5_^___BU4( -XM]D($(`^$ -XM_O_II_;__\<$)`````#H'*3__XM=$(L#B00DZ$L?_O^+`XD$).@%I/__BT,$ -XMB00DZ/JC___IU/7__\=$)`0`````QP0D`0```.C-(O[_BT4(BW`$Z?/Z___' -XM1"0$`0```,<$)`$```#HKB+^_XM="(MS!.G+^O__Z$XA_O^+`(D$).CT'O[_ -XMB7PD!,<$)#8```")1"0(Z#2>_O_I,O7__\=$)`@`````QT0D!&!C"0C'!"0# -XM````Z*\=_O_'!5AC"0@`````Z5_Y___H^R#^_XL`B00DZ*$>_O^)?"0$QP0D -XM-@```(E$)`CHX9W^_^FR_?__C5W8B1PDZ*TB_O_'1"0$%````(D<).BM'?[_ -XMQT0D"&!C"0B)7"0$QP0D`0```.A%'?[_QP588PD(`0```.F>]___B<+'1<@` -XM````@\($QT7,`````,=%T`````"+0`2%P`^%F@```(G6QT0D!,28"@C'!"20 -XM+PD(Z*\'``")1"0$C47(B00DZ)`5`@"-7?X__^+10BS`?9`!"`/A7KX__^-="8` -XMZ4_X__^#^"\/A%W___^)UH/&!(L&AZZ7H8Q_^_XL`A<"-=@!U98M="(MS -XM!,>%'/___P$```#IA_+__P^VP(/(@.GC^/__Z&4B_O^)QNG8]___QP0D```` -XM`.B&H?__QT0D!`````#'!"3,L0@(Z%*?___I3//__XU%R(E\)`2)!"3H/A0" -XM`.EX____Z/`>_O^+`(D$).B6'/[_QT0D!+'<"`C'!"0V````B40D".C2F_[_ -XMBT4(BW`$QX4<____`0```.G[\?__C;8`````C;PG`````%6)Y8/L",<$)`$` -XM``#HNB#^_Y"0D)"0D)"0D)"0D)"058/X"8GE4XG#=A&ZSH#B=#H -XMY/___XG8NLW,S,R+#71C"0CWXHU!!,'J`XT4D@'2*=.-4S")$5M=HW1C"0C# -XMC70F`(V\)P````!5B>575E.)PX/L"(E-[.LFQT,8`0```+@!````C70F`(7` -XMBU7PB?L/E,`/ML`[1>P/A9H```"+>Q2%_P^$CP```#'`.5\0#Y3`.U7LB47P -XM=!^+0QB%P'2X@_@!="B#^/]UOC'`QT,8`````.NSC78`BT,8A12%P(E#$'0&BT$,B5@4B5D, -XMB4L4BT7PB4R'#(M!#,=`&`$```"X_____\=!&/_____I4O___XGV@\0(6UY? -XM7<.#^`%TA8/X_P^%.O___XMS#(M6&(72#X7_````BT80B7X4A<")0PQT!HM& -XM$(E8%(E>$(ES%(M%\(ETAPR+1A#'0!C_____N`$```#'1A@!````Z?'^__^# -XM^@$/A(,```"#P@$/A=_^__^+<0R+012+5A")1A2+0Q"%THE0#'0)BU80BT,0 -XMB4(4BT,0B480B7`4BT,4B7,0B484BT8,A<")0Q!T!HM&#(E8%(E>#(ES%(M% -XM\(ETAPPQP(M6#(-^&``/GL"#Z`&)0AB+1AB+5A#!Z!^)0A@QP,=&&`````#I -XM9?[__XM!#(EY%(7`B4,0=`:+00R)6!2)60R)2Q2+1?")3(<,BT$,QT`8```` -XM`#'`QT$8`````.DM_O__@_H!=$&#P@$/A1_^__^+1A")?A2%P(E##'0&BT80 -XMB5@4B5X0B7,4BT7PB72'#(M&$,=`&``````QP,=&&`````#IY_W__XM.$(M& -XM%(M1#(E!%(M##(72B5`0=`F+40R+0PR)0A2+0PR)00R)2!2+0Q2)2PR)012+ -XM01"%P(E##'0&BT$0B5@4B5D0B4L4BT7PB4R'##'`BU$,@WD8``^>P(/H`8E" -XM&(M!&(M1$,'H'XE"&#'`QT$8`````.EM_?__C;8`````C;PG`````%6)Y5=6 -XM4X/L'(M%"(M]#)")QHM`#(7`=?>+5A2%T@^$B@```(5^"'1?H91W"@B%P`^% -XM@````(L&B00DZ%"9__^)PXM&!,<$)`S="`B)1"0$Z&OS`0"#ZP%T=\<$)"@` -XM``#H>K;__XL&B00DZ*"D___'!"0I````Z&2V___'!"0*````Z%BV__^+1A"% -XMP'6!BT84.W`0=0J)QHM&%#MP$'3VB<:+5A2%T@^%=O___X/$'%M>7UW#C47P -XMB00DZ'\+`@"-1?")!"3H!)K^_^EE____BP:)!"3H-:3__^N?C78`58GE5E.# -XM[!"+70B%VP^$W````(L3@_HKB=`/A*`````Q]H/X+8G"=&WWP@```$`/A;8` -XM``"#^G\/AZT```")V3';]@25O5$)"`1U%^F:````@_I_=Q^#P03V!)6]40D( -XM!'02C02;C5Q"T(M1!/?"````0'36_O^+ -XM$^EI____BT,$,?:-2P2%P`^$6?___XG+Z4G____V!)6]40D(!&:^`0`/A57_ -XM___KO3';ZX;'!"0)```0Z*66_O_I$____U6)Y5.)TX/L!,<"`````(M(!(U0 -XM!,<``````(7)=$_WP0```$!U3(/Y?W=']@2-O5$)"`1T/8L#ZR*-M@````#W -XMP0```$!U*X/Y?Y"-="8`=R'V!(V]40D(!'07C02`@\($C41!T(D#BPJ%R772 -XMC5H$ZPB#^5V-6@1T#,<$)`@``!#H&9;^_XG8@\0$6UW#D%6)Y5=64X/L#(M% -XM#(M]"(M8#(7;="Z+-^L1C;8`````AR)5"0$ -XMB3PDZ*P5_O^%P'7<@\0,B=A;7E]=PXGVBUL,Z]*-="8`C;PG`````%6)Y8/L -XM"(M5"(M%#(72="*%P'0>B40D!(D4).B`____A6#[!C'1"0$Q)@*"(E=](EU^(G&B7W\B=>)!"3H -XM/?___X7`B<-T+87_?@Z+`XD$).A)EO__.<=^#,<$)"L``!#H*97^_XG8BW7X -XMBUWTBWW\B>Q=PXDT).A2G/__Z\E5B>53@^Q$BU4(C5W(B1UT8PD(A=)Y$8U% -XMS/?:QT7(+0```*-T8PD(B=#H4?G__Z%T8PD(QP``````B1PDZ'X.`@"#Q$1; -XM7<.0C;0F`````%6)Y5=6B<93@^P,BP")!"3H:YO__XM&!(D$).@0H@$`BTX0 -XMA -XM7UWI_/C__XM.#.O'BUX4.W,0#Y3`#[;XB4R[#.O)D(UT)@!5B>6#[!B)=?R+ -XM=0B)7?C'1"0$Q)@*"(DT).CQ_?__A<")PW00BW7\B=B+7?B)[%WI*____XDT -XM).@CF___Z^:058GE5HG&4X/L$(M:#(7;=0GK+XM;$(7;="B+2PR%R9!T#8G: -XMB?#HU?___X7`=16)="0$BT,$B00DZ,))__^%P'31B=B#Q!!;7EW#D(UT)@!5 -XMB>575E.#[`R+=0B+?0R+1@2%P'1*,=OK'(VV`````(M`!,<$)(,``!")1"0$ -XMZ%V3_O^+1@2)^NAS____AB$_O__@\,!D.OAA=MT$H/&!(M& -XM!(7`=;:#Q`Q;7E]=PXM&!(D$).CM#@(`HR!W"@CKW(VV`````%6)Y5=64X/L -XM#(M=",=$)`3$F`H(QP0DX$8)".C@_/__QT0D!,28"@C'!"2`,0D(BF5\?[_D(UT)@#'1"0$ -XMQ)@*",<$)(`Q"0CHS/K__X/X`1G`]]`A!8AW"@CKBZ'4F0L(HTQW"@CISO[_ -XM_\<%C)@*""$```#'!42:"PA>````Z1K^__^0C70F`,<%-)H+"#X```#'!8QW -XM"@@C````Z3G^__^-M"8`````Z-N5``#IR+.NL5A<`/G\`/ML")1?"+1(8,A2)>Q3'0Q@`````QT,0```` -XM`(E#"(GXQT,,`````(M5\.@O]/__BU7HB1.)50B#Q!Q;7E]=Z?LI__^)7"0$ -XMQP0D@P``$.A+C_[_Z63___^-M@````!5B>575E.#[#R+712+10B+50R+31") -XM7"+7=2+1(L$@\$! -XMB4W@A# -XM1>P!BTW@.4WL?3V+?>R%_W[MBUWLBT74BSR8ZZ;V1")UC'`@^D! -XMB4WDZQ&-6`$[7>`/C,(```"#Q@2)V#M%Y'SJBW7@,-=@"+7=2+ -XM!(N%P'0&B023@\(!@\$!.TW@=>@[5>!]%XM-U(T$D<<``````(/"`8/`!#M5 -XMX'7O@V7,GXM=S(M%T(M5U(M-V(E=%(E%$(E5#(E-"(/$/%M>7UWI=/W__XD4 -XM).B,*/__A<`/A)[^__^)1"0$BT74B00DZ#4\__^%P(G#=':+3=2)#"3H5)3_ -XM_XE=U.EV_O__B3PDZ/2:`0"+5=S'`@````#I__[__XE=\(EUZ(M^_(7_=!F+ -XM5>B+`H7`=!")?"0$B00DZ#`-_O^%P'06@T7P`8M-X(-%Z`0Y3?`/C03____K -XMRHD\).BBF@$`QT;\`````.O9BU74B10DZ-Z3___'!"0Q```0Z!*-_O_I;O__ -XM_XVV`````(V\)P````!5B>6#[!C'!"0(````Z"Z;`0"+50S'0`0`````B1"+ -XM51")1"0$BT4(QT0D",28"@B)5"0,B00DZ(3]___)PXGV58GE@^P8BT4,B5WT -XMB77XBW40B7W\BWT(B00DZ%`&`@#'1"0$,"H("(G#B00DZ'Z/_O^)="0(B5PD -XM!(D\).A^____B1PDZ!:/_O^+=?B)70B+??R+7?2)[%WILH[^_XGV58GE@^P8 -XMBT4(QT0D"`(```#'1"0$^&\)"(D$).A_____R<.-M@````"-O"<`````58GE -XM5XG'5E.#[!S'1"0$E#()"(D$).CQ"_[_A<`/A=,```#'1"0$Q)@*",<$))0R -XM"0CHZ?7__X7`#X1/`0``BP"-=>C'1>@`````QT7L`````,=%\`````"%P'1+ -XMBQ"%TG1%B7UW#QT0D!``_"0B)/"3H!@O^_X7`=2C'1"0$Q)@* -XM"(D\).AF]?__BQ")%8R8"@B+0`2C1)H+"(/$'%M>7UW#QT0D!$`_"0B)/"3H -XMR@K^_X7`="#'1"0$@#\)"(D\).BV"O[_A#^G]W4O8$E;U1"0@$=$BA<&,)"(/!!(T$@(U$0M"C<&,) -XM"'7-H7!C"0B%P`^/T?O__^LMQT0D!&!`"0B)/"3HH0;^_X7`=2C'!6QW"@@! -XM````Z:S[___'!7!C"0@`````QP5P8PD(&@```.F3^___QT0D!``V"0B)/"3H -XM90;^_X7`=0KHX$G^_^EU^___QT0D!.!&"0B)/"3H1P;^_X7`=0SHTBH``(GV -XMZ57[___'1"0$H$D)"(D\).@G!O[_A@#BP``C78`Z97Z___'1"0$P#0)"(D\).AG!?[_AA"Y?[_B?;H -XM&^;^_^EP^O__QT0D!,P^"0B)/"3H0@7^_X7`#X58^O__QP7T8`D(`0```.E) -XM^O__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+10B+<`2%]G1.B30DZ-:&___' -XM1"0$Q)@*"(DT).@&[___A<")PW0WBP"%P'0QBP"%P'0[QT0D!`$```"+`XD$ -XM).A2B___@\00B?!;7EWIM?C__Y"-="8`OB0V"0CKLXDT).@1C/__BP.+`(7` -XM=<7'!"0*```0Z+V$_O_KMXUT)@"-O"<`````58GE@^PXB5WT@_@]C5W4B7W\ -XMB<^)=?B)7?`/A(````"+"H7)=6"-3=B)WHU5W(U=Z(/X/(E%Z,=%[`````") -XM'G12@_@^=$V).8U%\,<"`````(D$).A&U/[_B<.+1?"+`(7`=`S'!"0A```0 -XMZ#^$_O^)'"3H)^___XM=](MU^(M]_(GL7<.)5=2-==B-3=R-5>#KFHD9B=&# -XMP@3KJHUV`(U5V(G9ZZ")]HV\)P````!5B>6#[!B)=?R)UHE=^(L8A=MT((D$ -XM).B4_0$`BQ:)PXU"_(D&BT+\B00DZ$"1`0"+!HD8B30DZ+33_O^)!"3HK.[_ -XM_XM=^(MU_(GL7<.)]E6)Y8/L&(E=](G3B7W\B77XB4WPZ"?N___V0`@!B<=T -XM$XM`!,<$)(,``!")1"0$Z'R#_O^+!\'C`HMT`_S'1"0$,"H("(DT).A3AO[_ -XMBP?'1"0$`@```(/H!`'#BT7PB00DZ`DS__^)`XDT).B/A?[_BUWTBW7XBWW\ -XMB>Q=PXGV58GE5U93@^P\BT4(@\`$B44(BQ"#P`2)10B%THE5S`^%2@$``.GS -XM`@``C;8`````BT4(BQB%VP^$=`,``(/`!(E%"(L[A?\/A8,!``#'!"0E```0 -XMZ->"_O^-M"8`````BP.%P'4-BT4(BP"%P`^$5P,``(M%S(D$).AB_`$`QT0D -XM!#`J"`B)1=")!"3HCX7^_X/_/0^$0@(``(LSC5,$B57@QP0DZMP("(ET)`3H -XM7H/__X7`#X1S`@``.?YU!XM#!(7`=`S'!"0F```0Z%^"_O_'!"08+PD(Z`/\ -XM`0")P\=$)`0P*@@(B1PDZ#&%_O^+==2%]@^$A@$``(M5\(M%T.B[[/__B=F+ -XM$(M%\(M4@OR)^.AI_?__QT0D!#`J"`B)PXD$).CWA/[_BU7PB=F+1=#H2O[_ -XM_XD<).B2A/[_B1PDZ#J$_O^+1=#HLO7__XM-T(D,).@GA/[_BT4(BQ"%THE5 -XMS`^$O`$``(/`!(E%"(M-S(LY]\<```!`=2F)^`^VP#W_````B478#X?U`0`` -XMH>!="0B+5=B+1)`T]L0!=4"#_U]T.XMUS,<$)!T``!#H?('^_XL^QT74```` -XM`(/_6P^$H````(7_B?,/A&#^___'`P````"#PP3I@O[__XGVBPW@70D(B?N+ -XM=7UW#B7PD!,<$)-3'"`CHTX#__X7`="`Y_G00QP0D)@``$(UT)@#H -XMVW_^_\<$)````!#HSW_^_X/^/70,QP0D)@``$.B^?_[_BT7@C54(Z+/[__^) -XMP^E;_?__B00DZ+#__?^-="8`Z0;^__^+3=#'1"0(`@```(E<)`2)#"3HA/+_ -XM_^E?____B?/IE?S__XM-V(D,)(GVZ'?__?_I>/[__\<$)"4``!#H6G_^_^F8 -XM_/__D(UT)@!5B>575E.#[$R+10B+>`2-<`3'1=P"````QT7(`````,=%S``` -XM``"%_P^$?@```)")/"3'1"0$2#0)".CL_OW_B?HQ_X7`=1B#Q@2+%H72#X2' -XM````QT7<`0```&:_`0#'1"0$H#@)"(D4).B\_OW_"T7,=6.#Q@2+'L=%R`$` -XM``"%VXG:=""_`0```,=$)`2L.`D(B1PDZ)#^_?\+1"-M"8`````BP_WP0`` -XM`$")3=AU,`^VP3W_````B470#X>``@``H>!="0B+5="+1)`T]L0!#X7S```` -XM@WW87P^$Z0```(G^QP0D'0``$.@%?O[_BP8QVX/X6P^$_0$``(7`#X18`0`` -XMQP8`````@\8$BQ:%TG42BTW@BQ&%TG0)@SHH#X1,`@``@_@]#X4R`@``QT0D -XM!%`["0B)-"3HDOW]_X7`#X70````A=L/A0$"``"+7>"-=@#K`X/#!(LSA?8/ -XMA#P!``"#/BEU[L<#`````(M%X(D$).@KB?__BTW(A")^.@2\?__BT7@BSB% -XM_P^$I?[__X/`!(E%X.G:_O__BPW@70D(B?Z+7=B)3=3K)HM5U(M$@C3VQ`5U -XM"8/[7P^%RP```(/&!(L>]\,```!`#X6Z````#[;#/?\```!VT(D$).CN_/W_ -XMB?;KRX7;#X3P````B30DC78`Z'OV`0#'1"0$,"H("(G#B00DZ*E__O^+5?") -XMV8GXZ/WX__^)'"3H17_^_XD<).CM?O[_Z4____^+5>"+`H7`#X3%_O__QT0D -XM!#@["0B)!"3H5_S]_X7`#X6M_O__@T7@!(M-X(L!A<`/A)S^__^#P02)QHE- -XMX.F/_O__QT0D!"D```#'!"0R```0Z$%\_O^+,^FI_O__.?O````BU70BTW4BT21-/;$`0^%#?[__X-]V%\/A??]__^+!C';@_A; -XM#X4#_O__B?"S`8U5\.A/Y?__B<:+`.GN_?__B30DZ([U`0"+3<2)/"2)3"0( -XMB40D!.C+[O__Z7W^__^+5#I -XMI_W__XM-T(D,).AW^_W_Z4O___^0D)"0D)")P8L"50$!B>6+000#0@0]/T(/ -XM`(E!!'X*@P$!@6D$0$(/`%W#C70F`(V\)P````!5B>56BW4,4XM="(GRB=CH -XMO/___XU#"(U6".BQ____BT80.T,0?@.)0Q"+1A0!0Q2+1A@!0QB+1AP!0QR+ -XM1B`!0R"+1B0!0R2+1B@!0RB+1BP!0RR+1C`!0S"+1C0!0S2+1C@!0SB+1CP! -XM0SR+1D`!0T"+1D0!0T1;7EW#C70F`%6)Y8M5#(M-$%.+70B+`BL!B0.+0@0K -XM002%P(E#!'D*@RL!@4,$0$(/`%M=PXUV`%6)Y8/L*(E$)`2-1?B)5"0(B00D -XMZ+?___^+3?RZTTUB$,<$)!#="`B)R/?JBT7XP?D?P?H&*") -XM5=R+3@R)3="+0`PIP8G(]^^)3=#!?=`?BT8$B=&+5>#!^0PK3=")1="+4@0I -XMT(E%T/?OP7W0'XL&`T8(P?H,*U70C101BTW@*P$K00AKP&0!PHE5Y,=$)`3$ -XMF`H(QP0D=#P)".B9X___BU7AT'8L!AEDE___ -XMC70F`(/H1#PS=RD/ML#_)(54W0@(BTW@BT9`*T%`C;8`````B40D!,<$)";= -XM"`CH$-0!``^V0P&->P'KG8M-Y#'`AB->P&)!"3HAYG__P^V0P'I9/___XM5X(M&)"M").NCBU7@BT8L -XM*T(LZYB+5>0QP(72=(^+3>"+5A0#5AP#5A@K41PK410K41B)T,'Z'_=]Y.EM -XM____BU80B=#!Z!\!T-'XZ5S___^+3>"+1C`K03#I3O___XM5Z#'),<"%TG1# -XMVT7DNF=F9F;8#23>"`C9??(/MT7RVT7HWOFT#&:)1?#9;?#;7>S9;?*+3>R) -XMR/?JBP&)3"0(QP0D&MT(".@)TP$` -XM#[9#`>F6_O__BTW@BT8@*T$@Z=+^__^+1=2->P&+5=CH)/W__P^V0P'I"+1B@K0BCIE_[__XM]Y#'`A?\/ -XMA(K^__^+3>"+5A0K412)T,'Z'_=]Y.ET_O__BU7@BT9$*T)$Z6;^__^+5>"+ -XM1CPK0CSI6/[__XM5X(M&."M"..E*_O__BTW@BT8T*T$TZ3S^__^-M@````"- -XMOP````!5B>53@^P4BT4(BU@$C5`$N`0```"%VW0)BT($ARX````B5WXC5VH -XMB77\C;5@____B5PD!,<$)`````#H9/K]_XET)`3'!"3_____Z%3Z_?^)="0$ -XMC77PB1PDZ/GZ__^)-"3'1"0$`````.A%]_W_B70D"(E<)`3'1"0,J)D+",<$ -XM)"!V"@CHS?O__XM=^(MU_(GL7<.-=@!5B>53@^QDC5VTQT0D!`````#'!"2H -XMF0L(Z/[V_?_'1"0$('8*",<$)`````#HVOG]_XE<)`3'!"3_____Z,KY_?^) -XM7"0$QP0D('8*".AN^O__@\1D6UW#D)"0D)"0D)!5B>575E.#[`R+50B+0A"% -XMP'1(B=&+4@B+.87_="N-')`Q]NL#@\,$BP.%P'0.B00DZ,J"`0#'`P````"# -XMQ@$Y_G7BBU4(BT(0B00DZ*^"`0"+30C'01``````@\0,6UY?7<.-M@````"- -XMO"<`````58GE5U:)SE.)TX/L+(/Y!HE%X'8%O@8```"-?>Z-##>)^NL&@\(! -XM@\,".)7?2)=?B)1>R+0@@#`HT$A0@```") -XM1"0$BT(0B00DZ"&#`0")1?"+1Q"%P'0\BQ^+1?"+5>R)WH/#`0-W"(E'$(D4 -XM)(TTL.AY?___B0:+1?")'P-?",<$F`````"+7?2+=?B+??R)[%W#BT<(A*V+5?`QR8/!`<="_`````"#Z@0YR'7OP>`"*47P -XMZX^-M@````!5B>6+10R+`(E%#(M%"(L`B44(7>GC]?W_C;0F`````%4QP(GE -XM5E.#[""+70B+=0PY\W1=BU40A=)T78'[_P````^'Z0```*'@70D(BYR8-`0` -XM`('^_P````^'P0```*'@70D(B[2P-`0``(U%Z(E$)`2-1?")7?")=>C'1>P` -XM````QT7T`````(D$).@[]_W_@\0@6UY=PX'[_P```'=PH>!="0B+1)@T]L00 -XM=!N!_O\```!W2J'@70D(BU2P-&:%TK@!````>,B!^_\```!W;Z'@70D(BT28 -XM-&:%P'F,@?[_````=V.AX%T)"(M4L#2`YA"X_____P^$;?___^N1B30DZ!3S -XM_?^)PNNSC70F`(D<).@$\_W_ZX^-M@````")-"3H!/7]_XG&Z3S___^0B1PD -XMZ/3T_?^)P^D4____D(D<).C4\OW_ZY")-"3HRO+]_XG"ZYJ-=@"-O"<````` -XM58GE5U:)QE.)TX/L+#G*B4W8R)!"3H\.\!`&:!_S^`B47@="QF@?];@`^$@````&:!_RJ` -XM="F+1>P[1?!U%P-UX#E=V'>H,<"`/@`/E,#K5X`^`'7I@\0L,"-1>S'1"0(!@```(ET)`2)!"3H@>\!`(E%X(M% -XM"(G:B00DBTW8B?#H//___X7`=,BX`0```(/$+%M>7UW#@#X`=*$/MQ,/M\([ -XM10@/E,`/MOB%_P^%P@```,=%W`````#K"8VV``````^W$V:!^EV`#X2"```` -XMB=JY!@```(U%\.AS_/__C1Q#9H$[+8!T$8M%\#M%['71QT7<`0```.O(@\," -XMN08```")VHU%Z.A&_/__QT0D"`````"-'$.+1>R)1"0$BT7PB00DZ%G]__^% -XMP'^5QT0D"`````"+1>B)1"0$BT7LB00DZ#O]__^%P`^/<____^N@D+D&```` -XMB=J-1?#H\?O__SE]W`^$T_[__P-UX(T<0^FT_O__@\,"#[<3Z3/___^)]E6) -XMY5=6B<93@>R\````B95<____B8U8____#[<"ZQ60A?\/A1(!``!F@_@O=%2) -XMG5S___]FAHM6!&:#^"^)E6#___]T0#'_9H7`BYU<____>"4/OL"#PP*) -XM1"0$B30DZ"GG`0`/MP-FA8!`(N57/___P^W`F:#^"]TVF:%P'6&C5V( -XMB30DZ#+G`0")7"0$BP:)!"3H8._]_\=%A`````"%P'55BX58____]D`,"'0K -XMBQ:+1@2`?!#_+W0?#[=%D"4`\```/0!````/A,7UW#BX5@ -XM____B48$BY58____BT(,)0`0``"#^`$9P(/@PV8MHG]FB85H____B30DZ(3F -XM`0#H>_+]_\<``````(L&@#@`#X7&````QP0DDAT)".C>\?W_B<>%_P^$P@`` -XM`(M6!`^WA6C____'180`````B95D____B854____B3PDZ!_U_?^%P'1Q@'@( -XM+G4,BY5<____9H,Z+G7BBY5D____@\`(B58$B40D!(DT).CUYP$`B30DZ/WE -XM`0"+E53___^)V8N%9/___P,&B10DBY5<____Z"_\__\Y10ATGXM%"(G:B00D -XMBXU8____B?#HU?W__X7`B46$=(.)/"3H,O7]_XM%A('$O````%M>7UW#B00D -XMZ!SQ_?^)QX7_#X4^____BY58____BUH4A=MT(NB`\?W_BP")1"0$BP:)!"3_ -XMTX7`=`S'183^____Z:/^__^+A5C____'180`````]D`,!`^$C/[__^O;B5PD -XM!(D4).BN\/W_A<`/A5C^__\/MT60)0#P```]`$````^%1/[__\=$)`0O```` -XMB30DZ+;D`0")-"3H#N4!`.DG_O__B?:-O"<`````58GE5U93@^QLBT4(]D4, -XM`8E%O'4:BU44QP(`````QT(0`````/9%#`(/A`P#``"+10R+?12`Y/Z)1PR+ -XM11")1Q2+!XE%I(M'#,='!``````E`!```(/X`1G2@^+#9H'JHG^#^`&+10@9 -XM_X/GPX/'7F:)5:B)?<")!"3HS?/]_XU$``*)!"3HM7L!`(M5"(E%Q`^V.HGX -XM#[;(,<`[3<`/E,"%P(E%R'02@\(!B56\BU4(#[9Z`8GX#[;(BU4,@>(`(``` -XMB56@#X0!`@``B?J+7<2$T@^$F````(VT)@````")^HM%O`^VTHE5T(M5O,=$ -XM)`0&````@\`!B474B10DZ%CM_?^#^/^)Q@^$`@$``(/X`0^.#0$```^W?="- -XM0P(QTHU._V:).XE%S(VV`````(M]O`^V1#H!@,Q`9HE$4P*#P@$YRG7IBT74 -XMBU7,C40P_XU4`````` -XMQT7D`````&:#.@`/A0P"``"+512+`CM%I`^$-0(``/9%#"`/A/\```"+1<0Q -XMVXD$).AI>0$`@\1LB=A;7E]=P\=$)`0`````QP0D`````.@W[/W_B?@\7`^$ -XM&`$```^W?=!FB3N#PP*)7_XJ@`^$ -XM)/___V;'`RJ`@\,"Z1?___\/MP$/M_@[?NGB?B+7<2$P`^$E_[__XM5O(M= -XMQ&:)"P^V0@&#PP*#P@&$P`^VR'7LZ7C^__\Y1:0/A/C^__^+510K1:3'1"0, -XML*@&"(M]%,=$)`@$````B40D!(M2"`%5I(M%I,'@`@-'$(D$).CVZ?W_Z;_^ -XM___'0@@`````Z>C\__^+5=0/M@*#P@&)5=2$P`^$YP````^VP(#,0&:)`X/# -XM`HE=S.GL_?__A=(/A![___^+112-4P*!2`P``0``9L<#6X`[?<`/A-<````/ -XMMP'K"V:#^%UT1`^WP(G.9B7_`&:)`@^W!H/"`HU.`F:#^"UUWP^W7@*-3@)F -XM@_M==-@/ML-FQP(M@(U.!F:)0@(/MT8$@\($9H/X776\C5H"9L<"78#IDOW_ -XM_XM]R(U%W(M-%(D\).@1^?__B<.+1=R)!"3H9'+]___V10P0="6+3:"%R75'BU44BT4(Z`/U___IN/W__X-MU`&X -XM7$```.D1____]T4,``(```^$D_W___9"#0$/A8G]___KP@^W5:AFB5,"C5,$ -XMZ1G___^+?0B)/"3HR._]_X/``8D$).BQ=P$`#[87A-*)PXG!="J)^.L2#[80 -XM@\`!B!$/MA"#P0&$TG04@/I<=>F#P`$/MA"$TG7B@^@!Z]K&`0"+512)V.AO -XM]/__B1PDZ)=V`0#I'/W__Y"058GE5U93@>RL`@``BU4(BP*#^"`/A/8!``"- -XMM@````"#^`D/A.W'`@````"+A5C]__^+$(72#X1C`0``QT0D!)1V"@C' -XM!"3@00D(Z&/2__^%P`^$>0$``(L5+)H+"*$HF@L(B960_?__BQ4DF@L(B86, -XM_?__H2":"PB)E8C]__^+%1R:"PB)A83]__^A&)H+"(F5@/W__XL5%)H+"(F% -XM?/W__Z$0F@L(B95X_?__BQ4,F@L(B85T_?__H0B:"PB)E7#]__^+%02:"PB) -XMA6S]__^A`)H+"(F5:/W__XF%9/W__^@L9_[_QP0D`)H+"(F%7/W__^C&Z/W_ -XMA<`/A"@#``"+A5S]__^)!"3HM&G^_XN5D/W__XN%C/W__XD5+)H+"(N5B/W_ -XM_Z,HF@L(BX6$_?__B14DF@L(BY6`_?__HR":"PB+A7S]__^)%1R:"PB+E7C] -XM__^C&)H+"(N%=/W__XD5%)H+"(N5`0"+A5C]__^-5>B)%"2)1"0$Z!S>`0"+ -XM7>RX0]X(".L4B?:+!+7`W@@(@\8!A<`/A%?___^)7>R)!"3HL^,!`(E$)`2- -XM1>B)!"3HY-T!`(U5Z(D4).C)VP$`BT7HB00DZ%[A`0#'1"0$`````(D$).B^ -XM:/__H]PD"0B#P`%TI(U=L,=$)`1`'@4(C768QP0DW"0)".A*:/[_C46@QT68 -XMP+@&"(D$).@DZOW_B5PD",=%G`````")="0$QP0D`@```.@)Z?W_B1PDC5W8 -XMQT0D!)`>!0CH"FC^_XU%R(E<)`B)1"0$QP0D`@```.B?Y/W_B1PDC9V8_?__ -XMQT0D!&`>!0CHW6?^_^L5B40D"*',EPH(B5PD!(D$).@F9___H=PD"0C'1"0( -XM``(``(E<)`2)!"3HK6?__X7`?\['!"3<)`D(Z/UF_O_I?OW__X/X.@^%4_[_ -XM_^EA_O__BY58_?__QT0D!.!!"0C'!"0"````B50D".A\FP$`Z;7\__^+E5C] -XM___IS_O__\<"+@```(N%8/W__\=`!`````#I)/[__\<$)%3>"`CH2.(!`.F" -XM_?__H8"8"@C'1"0,+MX(",=$)`@!````QT0D!!T```")!"3HOL7^_XN56/W_ -XM_XE4)`2)!"3H3+\!`.G=_/__C;0F`````%6)Y8/L"*'<)`D(@_C_=`B)!"3H -XM2&G__\<%W"0)"/_____)PY"0D)"0D)"0D)"0D(G"58GEHXAC"0B+0@R%P'0) -XMB<*+0@R%P'7WBTH4A&,)"(M">(E$)`2+10B)!"3H3=L!`+@! -XM````@P5X8PD(`8/$$%M>7<.#P0$Y\7ZSB0UX8PD(@\00,&,)"#'`@\006UY=PXD5>&,)"`^V`83`=!R)RP^^P(E$)`2) -XM-"3H,=8!``^V0P&#PP&$P'7F@P5X8PD(`8/$$%NX`0```%Y=PXUV`%6)Y593 -XM@^P0H8!C"0B+=0B%P'0]BU`$A=)T-@^V`H3`=!R)TP^^P(E$)`2)-"3HW=4! -XM``^V0P&#PP&$P'7F@P6`8PD($(/$$%NX`0```%Y=PX/$$#'`6UY=PXVV```` -XM`%6)Y593@^P0H81C"0B+=0B%P'0\BQ"%TG0V#[8"A,!T'(G3#[[`B40D!(DT -XM).A^U0$`#[9#`8/#`83`=>:#!81C"0@,@\006[@!````7EW#@\00,6#[!B)7?2+71")=?B+ -XM=0R)??R+#8AC"0B+?0B%R704B5PD"(ET)`2)/"3H_OO__X7`=2J+%8QC"0@Q -XMP(72=!Z)71"+7?2)=0R+=?B)?0B+??R)[%WI-/___XUT)@"+7?2+=?B+??R) -XM[%W#C78`58GE@^P(BT4(A<"C?&,)"'0(B00DZ"+B_?_'1"0$Q)@*"(M%#(D$ -XM).ACR/__A<"CB&,)"'0:BP#'!8AC"0@`````HXQC"0C)PXVT)@````#'!8QC -XM"0@`````R<.-="8`58GE@^P(BT4(A<"C?&,)"'0(B00DZ,+A_?_'1"0$Q)@* -XM",<$)-PX"0CH`LC__X7`=`>+`*.,8PD(R<.0C70F`%6)Y8/L&(E]_(L]D&,) -XM"(E=](EU^(7_=#F+70B%VW0RH9AC"0B%P(E%\'0F,?:)]HLQ=PXVV```` -XM`(V\)P````!5B>57B==64XG#@^P,BT`0.T,(#X:2````B?@#0PPY0Q1V(HM# -XM#(M+"(L3P>`"`T,$B02*@\$!`7L,B4L(@\0,6UY?7<.+`"B40D!(L#B00DZ%1K`0#'!"3$K`L(B0/HIM`! -XM`.DZ____D%6XD&,)"(GE4X/L%(M="(M3!(/"`>@&____BQ.)5"0$B00DZ!3< -XM_?^#Q!1;7<.)]E6)Y5.)PX/L!(,%Q*P+"`&+`(7`=!R)!"3HTFD!`,<#```` -XM`,=#"`````#'0Q``````BT,$A575E.#[`R+10B+%7QC"0B+=0R+71")1?#HD/___X7`B<8` -XM``#V`Q`/A-T```"A?&,)"(7`="6#!<2L"P@!B00DZ,5?___'!7QC"0@````` -XMQP0DQ*P+".A_S@$`H8QC"0B%P`^$D0```(L`ASP$`B30DZ#;0`0"+1?"+%7QC"0B#Q`Q;7E]=Z;'^__^+#7QC"0B%R76G -XMC;0F`````(/$#(GX6UY?7<.-M@````!5B>575C'V4X/L#(L-R&,)"#L-L&,) -XM"(M]#`^",@$``(L5T&,)"(72=!*+10CH7O[__X7`B<8/A4(!``"AS&,)"(L8 -XMA=L/A#,!``"+%=!C"0B%TG0P@P7$K`L(`8D4).B,7O__QP708PD(`````,<$ -XM),2L"PCH1LT!`*',8PD(BQB%VW2;@SLO=`OK(8UT)@"#.R]U$X/`!(L8A=MU -XM\J/,8PD(Z7C___^CS&,)"(M%"(E<)`2)!"3H5-$!`,='!`````"+`X7`=`R# -XM^"YU.HM;!(7;=3/'!"22'0D(Z&O;_?^CT&,)"(M%$,<`$0```(D\)+X!```` -XMZ`3/`0"#!DSW_W_C;0F`````%6)Y5.#[!2#!<2L -XM"P@!Z!G;_?_'``````#K)9"-="8`Z`?;_?^#.`1U48VV`````.@;RP$`Z/+: -XM_?_'``````#H9]C]_X7`B<-TU<<$),2L"PCHRD,V_W_58GE7>G3V_W_C;0F```` -XM`%6)Y5.#[!2#!<2L"P@!Z)G=_?_'!"3$K`L(B53B<.#[!2)!"3H>]?]_XU0`KBH -XM8PD(Z%+Y__^)7"0$B00DZ&+6_?^#Q!1;7<-5B>575E.#["R+10B%P*-\8PD( -XM=`B)!"3H3]K]__8%P&,)"`$/A"4!``#V!#2"`AV,KOPT@@(BT/PA`$@\,0!>#2"`@YT'?3H#R`2C -XMP&,)"/8%P&,)"`@/A!\"``"AT&,)",<%R&,)"`````"%P'0E@P7$K`L(`8D$ -XM).@C6___QP708PD(`````,<$),2L"PCHW+0Q2%P'0HBT,$ABR_O__BT,0 -XMA:)%"3HUM`!`(D$).AZU_W_A<") -XM1>1TUHD$),=$)`0P'@4(Z-=7_O^+1=R%P'0EQT0D!+@X"0B+!XD$).CNS0$` -XMB47@QT0D!#`J"`B)!"3HJU?^_XM=Y(D<).BP`````QT7H`````(E=\.L' -XM@T7L`8EUZ(MUZ(/&`3MU\'-"BQVH8PD(C02U_/___XL\`XM$`P2)/"2)1"0$ -XMZ&K3_?^%P'3*BT7LAPI7?"+1?#'!"3$K`L( -XMH[!C"0CH'\57 -XM5E.#[`R+-<1C"0B%]G1_BP:%P'1YBSW@70D(ZQB+1(7UW#D)"0D%6)Y5=6 -XM4XM-"(M]#(LQA?9T0XL?ZP^+<02#QP2%]G0UBQ^#P02)\HG8@>+___\_)?__ -XM_S\YPG3>A=NX`0```'0;B?"!X____S\E____/RG86UY?7<.#/P$9P/?06UY? -XM753BTT(BUT,BU40BP&%P'0S@^H!A=)_"^LJ -XMC70F`(/J`70A@\$$BP&%P'7R@^H!A=)_&,53BUT(BTT,BU40ZP>0@\,$@\$$ -XM@^H!=`N+`87`B0-U[5M=P\<#`````%M=PY!5B>575E.#[`R+10B)!"3HJ-'] -XM_XLUT)<*"(7VB47P=%^+'H7;=%F)Q\'G`NL-B?:#Q@1T2XL>A=MT18D<).AY -XMT?W_.47P=^B-!#N#.#UUX,<``````(M%"(E$)`2+!HD$).B9_O__BQ;'!!<] -XM````A6+10R+`(E% -XM#(M%"(L`B44(7>F'=0$`C;0F`````%6)Y5=64X/L'(MU"(M]##G^#X*S```` -XMB?(QR9"-="8`,<"#.F`/E,"#Z@0!P3G7=N^#X0''1>P()0D(=0?'1>P,)0D( -XMQT7P`````.L*C78`@^X$.?=W18L>A=MT\XE<)`2+1>R)!"3H0-3]_X7`=#F# -XM?OQ@^X$.?=VN[@! -XM````@\0<6UY?7<.)7"0$QP0D["0)".CST_W_A<`/A(4```#'1?`!````ZX8Y -XM]XUT)@!SRHL&@_@F=$J#^"AUOH/N!(L6@_H@=`6#^@EU!#GW7UW#@WWP`0^%`/___S'` -XMZ4K___\/ML+VA`#A(`D(('2CZ3/___^-M"8`````58GE5E.#['"%P'17<.# -XMQ'`QP%M>757B<=64X/L;(7`B560=%['1"0$ -XMQ)@*",<$)`PR"0CH6KC__X7`=%6+`(7`=$^+&(7;=$F)QNL@C;8`````B5PD -XM!(D\).AD!/__A!(/&!(7;="7'1"0$A#,)"(D<).@"SOW_A7UW#BT60B3PDB40D!.@BQP$`B<.)!"3HR,D!`(D<)(U= -XME(G&Z%M;`0")7"0$B30DZ!O-_?^#P`%TN@^W39R)R"4`\```/0"@``!T1#T` -XMP```NCT```!TH3T`$```LGQTF#T`(```LB5TCST`8```LB-TACT`0```LB\/ -XMA'G___^#X4FR*@^%;O___^ED____QT0D!,28"@C'!"3@0@D(Z&"W__^%P'0P -XMB5PD!(DT).C,S_W_NB8```"#P`$/A#?___\/MT6````(D$).C_T/W_A<`/E<`/ML")1>2+3<0Q_X7)?DN+5<@Q]HL" -XMB00DZ!"=`0"+7-1@$Y1<2)QHT4@7X=BP*)TXD$ -XM).CEG`$`C5,$.?AST8U&`3E%Q(G&?^.#?<`!&<`QTO?0C7P'`J'@EPH(B7WP -XM]_>%P(G#=".+%>AV"@BX`0```(72#X3%`0``B00DZ,?1_?^%P`^%I0$``,=% -XMX`$```#'1>@`````BU7H`U7$QT78_____\=%W`````")T,'Z'_=]X(7`B46\ -XM#XX>`0``BT7@,?^+3=R%P(E-['\NZ>4```"#1=@!BTW$.4W8?#*+1>2%P`^% -XMS@```(M%O(/'`0%%[#M]X`^$O````(M%Y(7`=="+5>R+3<2)5=@Y3=A]SHM5 -XMR(M%V(T$@HE%T(L8B1PDZ"+,_?^)QHM%P(7`#X2_````C12U`````(U$$_R) -XM5=2+&,<``````(U&_XE$)`2)7"0(BTW0BP&)!"3HNTH``(M5T(M-U(L"B5P! -XM_#';.WWH#XUQ____BTW0BP&)!"3HEYL!`(T<&#E=\`^&6/___\<$)"````"# -XMPP'H?&G__SM=\'7LBT6\@\-M"8`````@_HD="N#P`2)10B)5"0$B1PDZ.F_`0"+10B+ -XM$(72=>")'"3H^+\!`(/$)%M=PXGVC44(QT0D"````$")1"0$B1PDZ%FF`0"% -XMP'6EBT7PB00DZ$I7`0"#Q"0QP%M=PXGV58GE5U93,=N#["R)5>B)3>2)1>R) -XM!"3H5/___XE%\,=$)`0P*@@(B00DZ)%,_O^+??"%_P^$!@$``(M%Z,=`!``` -XM``"+5?"+`H/X/0^$KP$``(/X?@^$&0$``(M-\(E,)`2+1>B)!"3HH\$!`(M5 -XMZ(D4).B(OP$`BTWHNHPS"0BAV)<*"(MQ!(7V=`6+3>B+$8/H`H/X`0^6P`^V -XMP(E$)`2)%"3HIQS^_X7`B<,/A(T```")!"3HY<0!`(D$).B)R_W_BU7DA<") -XM`G1TBU7PB10DZ$E+_O^+3>R+,87V=#J+1>B+4`2%TG0/B<&+`(-\D/PO#X1\ -XM`0``BU7HQT($`````(E<)`2)%"3H`<$!`(M%Z(D$).CFO@$`B1PDZ!Y6`0"# -XMQ"PQP%M>7UW#BT7H,=N)!"3HQ[X!`(VT)@````")'"3H^%4!`(-]"`9T#HL= -XMY&,)"(7;#X16`0``BTWPB0PDZ+E*_O^X_O___X/$+%M>7UW#BTWP@\($BT$$ -XMA<`/A.<```"#^"^)U@^$W````(/&!(L&A<`/A:,```")\"G0P?@"B10DB40D -XM!.@PP@$`B<.)!"3HAM']_XD<)(G'Z'Q5`0"%_P^$8/___XE\)`2+1>B)!"3H -XM-<`!`(D\).A=50$`BU7HBP*#."]T:(ET)`2+3>B)#"3H%,`!`.EL_O__BT7P -XMB00DZ,3Q_O^%P(G##X06____.47P#X0\_O__B40D!(M5Z(D4).CBOP$`B1PD -XMZ`I5`0#I,O[__Y"-="8`@_@O#X5'____C;0F`````.E(____@WH$`8VT)@`` -XM``!UBX,^+W6&@\8$ZX&)UC'`Z2_____'000`````B0PDB5PD!.B(OP$`BT7H -XMBU`$B<&+`(-\D/PO#X1R_O__QT0D!"\```")#"3H\[P!`.E=_O__Z!7*_?^# -XM.!2-M@`````/A(D```#H`S' -XM!"3OW@@(B4PD!.COH0$`BT7PQP6PF0L(`0```(D$).CJ2/[_N/_____I+/[_ -XM_XM]\(7_=,.+5?")5>SKNZ&`F`H(QT0D#-3>"`C'1"0("@```,=$)`0>```` -XMB00DZ/RG_O_KA:&`F`H(QT0D##N["`C'1"0("P```,=$)`0>````B00DZ-6G -XM_O_I6____U6)Y8/L&(/X$HE=](G3B77XBW4(B7W\=B_'0P0`````B30DZ.A' -XM__^)="0$B1PDZ#R^`0"+=?B)70B+??R+7?2)[%WI&+P!`/\DA4#?"`B0QT($ -XM`````(E,)`2)%"3H#;X!`.N[QT($`````,=$)`1^````B10DZ(2[`0#KHHGV -XMBSK'1"0$)````(D\).AZQ/W_A!?WP@```$!U#X/Z?P^.N@,``(VV`````(L6A=(/A#4!``")TX'C____ -XMOP^(R`$``(/[?P^/OP$```^VPP^WA`#@(`D(J$$/A*P!``"+1=C'1>````!` -XMA<`/E<(QR832=`D[7=@/A$X"``"+1>"%P'0-@WW8(HUV``^$I0(``(3)=4B$ -XMTHUT)@!U&87;>`F#^W\/CG,#```['42:"P@/A!,$``"+1=B%P'@4]T78```` -XM0'4+@WW8?Y`/COP````['8R8"@@/A`X!``"%_W08BU74BP*#P@2)5=0YV`^5 -XMP`^VP(/H`2''C47H@\8$B5PD!(D$).C0N0$`BT78A<`/B,7^__^+1=C!Z!Z# -XM\`&#X`&#?=A_#Y["A,`/A*K^__^$T@^$HO[__P^V1=CVA`#@(`D(0`^$D/[_ -XM_XM%T#E%U,=%V``````/@HG^__^+%C'_A=(/A7UW##[9%V/:$`.`@"0A`#X5C_O__Z3[^__\/MD78 -XM]H0`X"`)"$`/A?[^__\['8R8"@@/A?+^__^-5>C'1"0$7````(D4).C=N`$` -XMB5PD!.D:`0``C70F`(M%V('B````0`^4P8E5X(7`#Y7"A,D/A$G^__^$T@^$ -XM3O[__X7;#X@Y_O__@_M_D`^/+_[__P^VPP^WA`#@(`D(J/,/A!S^__^#^R,/ -XMA!/^__^#?=@B#X1R`@``BT78A<`/B,H!``#W1=@```!`B?8/A;L!``"#?=A_ -XM#X^Q`0``#[9%V/:$`.`@"0A`#X2?`0``BU7L@\8$BT7HB5R0_(M%V,'H'H/P -XM`8/@`8-]V'\/GL(Q_^EE_O__C;0F`````(M5[(72=!2+1>B#Z`2-!)"+5=@Y -XM$`^$LP$``(M5V(U%Z(D$)(E4)`3HX[B)7"0$B00DZ,&W`0"+5=B)5"0$C47H@\8$B00D,?_HJKB)%"2)7"0$Z$FW`0"- -XM1>C'1"0$(@```(D$).@VMP$`Z6S]__]\&_=%V````$"0C;0F`````'4*@WW8 -XM?P^.NP```(U5Z,=$)`0`````B10DZ`&W`0#IG/W__P^VP@^WA`#@(`D(J$$/ -XMA#G\__^+1=B%P'0).578#X4I_/__,578@T74!(E4)`2-5>B)%"3HP[8!`.F^ -XM^___#[;#]H0`X"`)"/,/A'S\__^#^R,/A;3]___I;OS__XM%V(U5Z(/&!(D4 -XM)(E$)`3HBK8!`(U%Z(D$)(E<)`3H>[8!`(L&A<`/A8P```"X`0```+H!```` -XM,?_'1=@`````Z:?\__\/MD78]H0`X"`)"$`/A>?\___I+O___\<`7````(U% -XMZ(/&!(E4)`0Q_XD$).@HM@$`N`$```"Z`0```,=%V`````#I8/S__XM%[(7` -XM#X07_?__Z=W[__^#^W\/CZG]__^H@HVT)@`````/A)K]___I>OO__XM5V(U% -XMZ#'_B00DB50D!.C1M0$`Z?S[__^-M@````"-OP````!5B>575E.#[%R)1;2) -XM5;"+`(L0A=)T#XD$).BAVO[_A<")1;AU"C'`@\1<6UY?7<.A+)H+"(E%\(L5 -XM*)H+"(E5[*$DF@L(B47HBQ4@F@L(B57DH1R:"PB)1>"+%1B:"PB)5=RA%)H+ -XM"(E%V(L5$)H+"(E5U*$,F@L(B470BQ4(F@L(B57,H02:"PB)1RC*)H+"(M5Z(D5))H+"(M%Y*,@F@L(BU7@B147UW#BT6XB40D!(M5M(L"B00DZ(OL_O^+5;2)`NFS -XM_O__BT6TBQCKR[C_____QP7`F`H(`````,<%L)D+"`$```#I!/[__XVV```` -XM`(V_`````%6)Y5=64X'L'`$``(F%_/[__Z$LF@L(B97X_O__BQ4HF@L(B8WT -XM_O__BPTDF@L(QT7P`````(E%E*$@F@L(B560BQ4/___XL5!)H+ -XM"(F-=/___XL-`)H+"(F%R+1?"%P`^(O0D``(M5$(M-#(E= -XMZ(F5`/___XD,).@VO?W_B=J)V8/B!(/A((F5%/___XF-#/___\=%W`````#' -XM1>``````B85,____B=B#X`*)A1C___^)V(/@0(F%"/___\=%Y`````#'1=`` -XM````QT74`````,=%V`````#'1>@`````QT0D!,28"@C'!"2`2`D(Z(.F___' -XMA23___\`````/?AO"0AU%>LJ@_IA=0O'A23___\"````D(/`!(L0A=)T$8/Z -XM077BQX4D____`0```.OFB=J#XQ"#X@&-3=")E1S___^)#"2)G1#____'1"0$ -XML)$(".B_/O[_C47%*/___P````#' -XMA2#___\`````QT6L`````(L$A>#@"`C'A03___\$````QX5(____`````,>% -XM9/___P````")19S'A43___\`````BX7T_O__C4WHC570QT74`````(E,)`B) -XM1"0$B10D_U6!(/&!(7;=;J+C43___\+ -XMC4C___^)C2S___\/A+(#``"+1="+50R)1;B+.H7_#X3R`P``BPW@70D(B<.) -XM5:B)C33___^+`XG^@>;___\_B84P____)?___S\YQHE%P`^$?P(``('^_P`` -XM`(FU./___P^'K@4``(N5-/___XM$LC1FA<")=;QY((&]./____\````/A^X& -XM``"+C33___^+C+$T!```B4V\BT7`/?\```")A3S___\/AW4%``"+3<"+A33_ -XM__^+5(@T9H72BT7`>2"!O3S_____````#X>8!@``BU7`BXTT____BX21-`0` -XM`#E%O`^$Z0$``(N%1/___X7`=4Z!Y____S^-1].#^`$/ABH%``"#_E]U-[HM -XM````B[TP____A?]T*#M5P'4:Z:\!```E____/SG+`0``.<(/A)H!``"# -XMPP2+`X7`=>*+A2C___^%P`^$B?W__XU-T(D,).@W._[_@[W\_O__!'4?Z?0$ -XM``"+0P2CX&,)"(L#B00DZ#=&`0")'"3H+T8!`(L=X&,)"(7;==R#O?S^__\& -XM#X2U!```B[4(____A?9T'(M=K(7;=16+C2#___^%R7X+BY4@____]]J)5:R+ -XM3:R)3?"+1>R)!"3H<3K^_XM%E(M5D(M-C*,LF@L(BT6(B14HF@L(BU6$B0TD -XMF@L(BTV`HR":"PB+A7S___^)%1R:"PB+E7C___^)#1B:"PB+C73___^C%)H+ -XM"(N%7UW#C;0F`````(.]^/[__Q(/A:'\__^#O23___\!#X2<`@``QX4H____ -XM`````(N=3/___X7;#X6&_/__BT70@S@N#X5Z_/__BXTD____AW^_X7`#X3W^___BT70BTT,B40D -XM!(D,).B#)0``.84$____B<,/C3@"``"#^`0/A<[[__^+1="+50R+C?3^__^) -XM1"0(B50D#(L!B40D!(M%"(D$).CW(P``A<`/A*'[__^+A1S___^%P`^%(@H` -XM`,>%!/___P,```#IA/O__XGVBU70BTT,B56XBQ&%TG1$BTVX@>+___\_BP&) -XMRXM-#"7___\_.<)T).E3_?__C78`BT,$@>+___\_@\,$@\$$)?___S\YP@^% -XM-/W__XM1!(72==V+C1S___^%R0^%9`,``(N5&/___X72#X4!!0``BX44____ -XMA<`/A2,%``"+A0S___^%P`^%104``(.]^/[__P$/E,.#O?C^__\##Y3`A-N) -XMQP^$6`,``(.]^/[__PL"``"+A2C___^#1:P!A<`/A,CY___I.OS__XM% -XMW(D$).@AU___A#^BX/A4/]__^+0`B%P`^4PH/X+P^4P`G"#[;2B94H____ -XMZ2_]___'A2C___\!````Z2#]__^+10@QV\=`!`````")!"3HV*H!`(F=!/__ -XM_^FK^___@_@$#X3(_?__BX4<____A53^_X7`#X1C^?__BTT(BT70QT$$`````(E$)`2)#"3HB*P! -XM`(M%"(D$).AMJ@$`A=MTD8F=!/___^DP^?__B30DZ#*T_?_I3_K__XD$).@E -XMM/W_B<+IB?K__X/^7P^$TOK__X/^+;I?````D`^$R/K__XGRZ<'Z__^+A03_ -XM__^)1:SI8_O__Z'H)`D(.85D____#X[;````@_C_#X32````@WVL`0^.`OO_ -XM_X/``0^,600``(NU9/___XT\M0````")/"3HXT$!`,=$)`0P*@@(B<.)!"3H -XM@3;^_XL-X&,)"(7)=">%]G@CC10?@ZUD____`8L!B4+\BTD$@^H$A>#'1"0,(,P&",=$)`@$````B70D!(D<).APLOW_BT4(QT`$```` -XM`*'H)`D(BU4(BP2#B10DB40D!.ACJP$`BTT(B0PDZ$BI`0")'"3H8#7^_\=% -XMK`$```#I1?K__XN=\/[__^DX]O__QP7H)`D(_____\>%(/___P````#'1:P` -XM````Z1KZ__^)!"3H[;3]_^EK^?__B30DZ."T_?^)1;R0Z1'Y__^+A1#___^+ -XM5;B+C?3^__^)1"0(B50D!(L!B00DZ*I2_O^%P`^%<_S__XN%*/___X7`#X0; -XM]___Z8WY__^$P`^%H/S__X.]^/[__P%T@^$ -XM\`4``(N-5/___X'B____/XL!)?___S\YP@^%U04``,>%4/___P````#K%XN- -XM5/___X'B____/XL!)?___S\YPG47@X50____`8/'!(.%5/___P2+%X72==+' -XM!P````"+50@K.L'_`HEZ!*'48PD(A<`/A(D$``"+A4C___^%P`^$3OC__XM5 -XM"(N-3/___SM*!`^&//C__\="!`````"+10R)%"2)1"0$Z&:I`0"+50B)%"3H -XM2Z@/X?__@_@O#X4?^O__QT0D!"\```")-"3H -XM5J4!`.D*^O__D,=$)`3$F`H(QP0D0$()".A+___\_)?___S\YT'36BT6DBW@$@\`$B46DA?\/ -XMA7K____I#?S__XM%"(L`B46PB<*+`(7`#X0$`0``BQ7@70D(BXU4____BWVP -XMQX50____`````(F56/___XE-M.F&````BY58____BT2:-&:%P'D=@;U<____ -XM_P````^'HP```(N-6/___XN;_ -XM__\_@?O_````#X95____B1PDZ&.M_?_I4O___XDT).A6K?W_ZXJ)'"3H7*_] -XM_XG#Z5O___^)-"3H3:_]_XG&ZXV+C53___^)U\>%4/___P````")3;2+1;2+ -XM$(72=26+A5#___^+E53___^+3;#!X`*)1"0(B50D!(D,).B)LOW_BT6TB854 -XM____Z67[__^#A2#___\!Z=/S___'1"0$Q)@*",<$)$!""0CHKY;__X7`#X5; -XM^___BX5(____A!C"0CIVOG_ -XM_XM5",="!`````")1"0$B10DZ"^D`0"+30B)#"3H%*(!`.F#^O__QX50____ -XM`````.E6^O__58GE5U93@^Q\BT48BWT0BP#'1=P`````QT7@`````,=%Y``` -XM``")19S'1=``````QT74`````,=%V`````#'1<0`````QT7(`````,=%S``` -XM``#'1>@`````Z&'/__^+50C'!=AC"0@`````BS+'1"0$+P```(DT).@NJOW_ -XMA<`/A.H#``"-6`2)'"0I\^CMI`$`P?L"C4W0B5PD"(ET)`2)#"2)1>SHY*(! -XM`(U%T(D$).A)H0$`C570B10DQT0D!+"1"`CH]BW^_XU%[(D$),=$)`0P'`4( -XMZ.,M_O^+30B+`8,X?@^$]0$``(M5[,=$)`0D````B56HB10DZ*NI_?^%P(G# -XM=!N+3:C'1"0$+P```(D,).CBKOW_A<`/A$X"``")^"4`$```B46@#X7>`0`` -XM,<")^X-]G``/E<"`Y^^)1:2-3=R)#"3HLJ`!`(U%W,=$)`2PD0@(B00DZ%\M -XM_O^#^P8/A#8"```/CM4```"#^Q$/A"<#``"!^_\/``"0#X0-`@``@_L-#X01 -XM`@``,<"+5:2%T@^$]````(/(((E%P(/_#`^/]````(/_"`^-)`(``(/_!`^$ -XM_0$``(UV``^/4@0``(/_`HVT)@`````/A.0!```/CR0%``"#_P&0#X3@```` -XMH8"8"@B+'0QV"@C'1"0,,.$(",=$)`@)````QT0D!!X```")!"3H7XO^_XE< -XM)`2)!"3H\X0!`,<%L)D+"`$```"^_____XUT)@"-3=")#"3HY2O^_X/$?(GP -XM6UY?7<.%V[[_____=.*#ZP$/A3C___^+50C'1"0$+P```(L"B00DZ)"M_?^% -XMP`^$\00``(M5I+\$````N!$```"%T@^%$____XVT)@````"#R$"#_PR)1<`/ -XMC@S___^#_Q,/A#`!```/CS<"``"#_Q`/C_4```"#_PZ-M@`````/C1(!``"+ -XM50B+`HD$).BMH@$`B46HB47LZ?H```")]L=$)`0O````B00DZ`RM_?^%P`^% -XM\_W__XM%[+\#````NP,```")1:CK=HVV`````(M5&(U-W(D,)(E4)`3H[J`! -XM`(M5X(72=!V+1=R#?)#\+W03C47__^%P(GX -XM_O__C5W$QT0D!+"1"`B)'"3HU2K^_XM%Z(M-P(M5J(D<)(E$)!"+11B)3"0, -XMC4W@/A&X&``"+5>"%TG0HBT7<@WR0_"]T'HU-W,=$)`0O````B0PDZ&&< -XM`0"-1=R)!"3HMIP!`('G_^___X/_!`^$?_[__P^/$00``(/_`0^$#@4``)"- -XMM"8`````Z&>G_?^%P`^.L_S__XD<).A[G`$`BT7$BTW0BU4(B00DB?CH".#_ -XM_Z'48PD(A<`/A8O\___'1"0$Q)@*",<$)*`Q"0CH!Y#__X7`#X1O_/__@_X! -XM#X5F_/__@WT<_XGV=#:+11R%P`^%E04``(M=Q(M-W(D<)(E-K.B2)___@_\3 -XM#X:$````,<")1"0$BT4(B00DZ)B;`0"+10B)!"3H[9L!`.D8_/__@_\. -XM_/__#X[F````BT4(BQB#?0P�/`0``BT7LB00DZ/\R`0")'"3H-Y\!`(E% -XMJ(E%[.F$_?__@?\2$```#X6&^___Z9C^__^!_P$0``"0C70F``^%B+1=")%"2-5=SHW]K__X7`B<8/A07[__^# -XM3<`"Z:3\___'!"0-````Z/!"___IBOW__XD<)#'VZ%&@`0")!"3HJ2C__X7` -XM#X71^O__D.G1_O__BT6@A<`/A03[___I&OK__\=$)`3$F`H(QP0DP$()".B7 -XMCO__/?AO"0@/A/L!``"+$(72#X3Q`0``]\(```!`#X7E`0``@_I_C78`#X?9 -XM`0``B<$QP/8$E;U1"0@$=3/IQ@$``(VT)@````#WP@```$`/A;,!``"#^G^0 -XM#X>I`0``@\$$]@25O5$)"`0/A)@!``"-!("-1$+0BU$$A=)URX7`#XZ"`0`` -XM.?`/C7H!``"+112%P`^$;P$``*&`F`H(QT0D#!O?"`C'1"0(!0```,=$)`0> -XM````B00DZ"N%_O^)=;R)!"3HD"[__\=$)`0P*@@(B<.)!"3H7B;^_Z&`F`H( -XMQT0D#&CA"`C'1"0(!P```,=$)`0>````B00DZ.F$_O^+5;R)7"0(B50D!(D$ -XM).AV?@$`B1PDZ'XE_O_H63___XU%\XE$)`2AM'8*",=$)`@!````B00DZ/TE -XM__\/OD7SQP0D`]\("(E$)`3H.7X!`*&`F`H(#[Y=\\=$)`P(WP@(QT0D"`T` -XM``#'1"0$'@```(D$).APA/[_B5PD!(D$).B0I/W_A<`/A"W[__^#_P]T,8VT -XM)@````#H.[___\=$)`P@S`8(QT0D"`0```")="0$B00DZ+NA_?^#_Q`/A#P! -XM``#H$;___\=$)`P!````B70D",<$)/AO"0B)1"0$Z#75___IT?K__X/_!0^$ -XMLOW__X/_$HUT)@`/A>+[__^#3<`$Z4GZ___'1"0$Q)@*",<$)(!""0CH?8S_ -XM_SWX;PD(#X1F____BQ"%T@^$7/____?"````0`^%4/___X/Z?P^'1____S'; -XMB<'V!)6]40D(!'4LZ33____WP@```$`/A2C___^#^G^0#X<>____@\$$]@25 -XMO5$)"`0/A`W___^-!)N-7$+0BU$$A=)URX7;#X7$````A=L/G\")=;R$P`^$ -XMY_[__SE=O`^.WO[__XM%%(7`#X33_O__BT6\A<`/A,C^__^A@)@*",=$)`S^ -XMW@@(QT0D"`8```#'1"0$'@```(D$).C_@O[_Z=+]__^+1>R)!"3HORX!`.E` -XM^/__Z-6]__^%]HG'D`^.J_G__S';ZQV-M@````"#PP''!"0*````Z($___\Y -XM\P^$BOG__XL$G\<$))*Y"`B)1"0$Z$9\`0"A8&0)"(7`=,W'!"0-````Z%$_ -XM___KOX/_$`^$,____XVV`````.AKO?__A?:Z`0```(E%L'XVQT6X`````,=% -XMM`````"+5;B+3;"+!)&)!"3H/*']_SE%M',#B46T@T6X`3EUN'7>BU6T@\(! -XMH>"7"@B)T3'2QT68`0```(/``??QA<")191T`XE%F(M%F(U4!O^)T,'Z'_=] -XMF(7;B46\#Y_`Z;/^__^+51R+30B)5"0$B0PDZ!R6`0#I?_K__X-]#`)T.)#H -XM-Z/]_XL`B00DZ-V@_?_'!"3WW@@(B40D"(M%W(E$)`3H6GL!`,<$)`&Z"`CH -XM3GL!`.E6]O__QP0D`;H(".@]>P$`Z/2B_?^+`(D$).B:H/W_QP0D]]X("(E$ -XM)`B+1=R)1"0$Z!=[`0#I'_;__XGV58GE5U93@>RL````BUT(BT4,QT70```` -XM`,=%U`````#'1=@`````C02#B85X____C470QT7P^&\)",=%[`````#'1"0$ -XML)$("(D$).AO(O[_.YUX____#X-H"0``BY5X____,?^)G7S____'A6C___\` -XM````QT6@`````(/J!,>%#;WP@```$!U+H/Z?W\I#[;"#[>$`.`@"0CVQ"!T -XM"8M-U(/!`8E-H*A`=`PYG6#___\/APP#``"-````B00DZ)A^_O^)7"0$B00DZ"QX`0#'180! -XM````C570B10DZ"H?_O^+182!Q*P```!;7E]=PX-]$`8/A%/___^+A6C___^# -XM?1`$B85L____#X0]____@WT0"W>#BT40_R2%W-\("(/Z?@^$&/[__XU-T(E4 -XM)`2)#"3H5)(!`(M-U(M%T(M4B/R%T@^).?[__XGV@\,$Z6S^__^+$X72>#+W -XMP@```$!U*H/Z?W\E#[;"#[>$`.`@"0BH0706A?]U"C'7@\,$Z6C^__\YUW3R -XMC70F`(/_)P^$,/W__X72D(UT)@`/B%W]___WP@```$"-="8`#X5-_?__@_I_ -XM#X]$_?__#[;"]H0`X"`)"`(/A`7]__^#=8@!#X6&````BX5P____@\,$BXUT -XM____B85H____BT6`B4V@B85\____B50D!(U5T(D4).B&D0$`Z>']__^+0P2- -XM7\__\-````0(E$)`2-1=")!"3H6Y$!`(U#"(GSB<;I-/W_ -XM_X/Z?P^/%OW__P^VPO:$`.`@"0B"#X72_O__Z0#]__^+1=2#PP2+C6C___^# -XMP`&)C7#___^+3:")A6C___^)1:"+A7S___^)G7S___^)C73___^)18#I8/__ -XM_\=%Q`````#'1<@`````QT7,`````,=$)`3$F`H(QP0D@$0)".CLA/__A<`/ -XMA%D%``"+C6S____'1"0$+P```,'A`HG+`UW0B4V!VI````0'46@_A_?Q$/ML#V -XMA`#@(`D((`^%3`<``(/"!#E5C'?5B5PD!(U=Q(D<).B[D@$`B1PDZ*.0`0#' -XM1"0$L)$("(D<).A3'?[_BT7LQT0D#`$```")="0(B1PDB40D%(M%\(E$)!"+ -XM11")1"0$Z&KN__^+E6S___^-3=")#"2)5=2)182+1<2)1"0$Z%R2`0"-1=") -XM!"3H09`!`(D<).A9'/[_@WV$_L<%Y&,)"``````/A,$%``"+1="+E63___^+ -XM')"%VP^$_/S__XM5F(T,$#'`A?\/E,")!"2+E7C___^+A7S____H0-3__X7` -XM#XG3_/__C4W0B0PDZ/T;_O_'183_____Z/__ -XM_P^4P(G9B00DBX5\____Z-#3__^%P`^(W@0``(D<).BP)@$`QT6$`0```.E/ -XM_/__H=B7"@B#Z`*#^`$/EL`/ML")1"0$BX5L____P>`"`T70B00DZ(OL_?^% -XMP(G#=9C'180`````Z13\__^-1>2)1"0$BX5L____P>`"`T70B00DZ"Y:`0"% -XMP`^$\`(``(M%Y(D$).@[)@$`QT6$`````.G:^___BX5L____C5W$QT7$```` -XM`,=%R`````#'1`"`T70B1PDB40D!.C/D`$`B1PDZ+>.`0#'1"0$ -XML)$("(D<).AG&_[_BT7LQT0D#`$```")="0(QT0D!`````")1"04BT7PB1PD -XMB40D$.A][/__BY5L____C4W0B0PDB574B46$BT7$B40D!.AOD`$`C470B00D -XMZ%2.`0")'"3H;!K^_^DR^___BXU\____.8UX____QT7$`````,=%R`````#' -XM1@/A&4!```QTH/^`0^4PHU%Z.CCUO__B<:+1=R)!"3H%AG^_XM%Z#G' -XM=!#'1"0$\",&"(D$).B?&?[_A?8/CH4```"#?1`'#X1"`@``BX5\____,=LI -XMA7C____!O7C___\"BY5X____B10DZ.H?``"+1>CK!X/#`3GS=$^+%)B%TG3R -XMBPJ%R73LB10DZ#D8__^+1>@QTHL,F#'`QP0D`````.C#T/__A<`/B-@"``#' -XM!"04/0D(Z$\W``"%P`^(Q`(``(M%Z.NMBT7H.<=T"(D$).AC&/[_B76$Z2;Y -XM__\Q_XF=?/___\>%:/___P````#'1:``````QT68`````.DN^/__,<"%_XM- -XMY`^4P(N5>/___XD$)(N%?/___^A(T/__AC'1"0,`````(ET)`C' -XM!"3X;PD(B40D!.@,Q___BT7HZ17^__^+58R)%"3HV8T!`,=$)`0P*@@(B460 -XMB00DZ`87_O^!?8SX;PD(=`F+38S'`0````"AX*P+"(D<)(E%Q*'DK`L(B47( -XMH>BL"PB)1,`0")'"3H_XD!`,=$)`2PD0@(B1PD -XMZ*\6_O^+1>R)="0$B1PDB40D#(M%\(E$)`CH50,``(E%A(/H`0^$B@```(M% -XMQ(N-;/___XE$)`2-1=")3=2)!"3HOHL!`(U5T(D4).BCB0$`BTV0B0PDZ+@5 -XM_O_I;OG__XM%Z#G'#X2@^?__B00DD(UT)@#HFQ7^_^F.^?__QP7D8PD(```` -XM`.FM^/__Z#*W__^)-"3HFHH!`(DT)(E%Z.B_%?[_B30DZ&<5_O^+=R)="0(B50D!(D<)(E$)!2+1?")1"00Z/#F__^)183I'____Y"0 -XMD)"0D)"058GE5U93@^P+!HG3B<&!X____S^!X?___S\YRW3>A=)U0XL.A-1P2)1>R+5P2%TG4CC48$B47PBT7PB40D!(M%[(D$).AMOO__N@,` -XM``"%P'6XZX>-1@2)1?"+1@2%P'36)?___S\YPW7-@>+___\_.=%UPXU&"(E$ -XM)`2-1PB)!"3H,+[__X7`=:WI1____XVT)@````!5B>575E.#[#R+10C'1>@` -XM````C77HQT7<`````,=%[`````#'1?``````BQC'1>``````QT7D`````,=$ -XM)`2PD0@(B30DZ/42_O^-5=S'1"0$L)$("(D4).CB$O[_BP.#^"\/A+0```"- -XMM"8`````A7UW#B30DN______HS1#^ -XM_X/$/(G86UY?7<.0D)!5B>57B<]6B<93@^P,BUH,A=MU$>M/BT,$@S@M=$*+ -XM6Q"%VW1`BT,,A+0P2)1"0$B30DZ$+$ -XM_O^%P'3,BP.%P'3&@\0,6UY?7<.#P`3KW8/$##'`6UY?7<.058GE5U93B<.# -XM[#R)1=R-?>B)5=B)3=3'1>@`````QT7L`````,=%\`````"+$X72="H[50QT -XM)8/Z)(US!'4)@WL$.HUS!'1HB50D!(D\).A\@P$`B?.+$X72==:)/"3HC(,! -XM`(M-##D+B<*-0P0/A`(!``")%"3H]!H!`(M%W(D$).A)B0$`B40D#(M5$(E4 -XM)`B+30S'!"1_````B4PD!.A;#?[_@\0\B=A;7E]=PY"-0PB)1>"+0PB#^"V) -XMP0^$OP```('A````0`^%>/___X/X+8G!#X2P````@_E_B?8/AV+____V!(V] -XM40D(!`^$5/___S')@_@M#X2=````BUW@@^@PBW7@BU,$@\8$]\(```!`="/K -XM)O8$E;U1"0@$=!R-5`+0@\8$C02`C01"BQ;WP@```$!U!8/Z?W;:AR+`HL8A=MT8HG&QT7P```` -XM`.LZD(UT)@"AX%T)"(M$F#3!Z`Z)QX/G`70-BT7PA&!^_\```!VN8D<).B]B_W_D.NW -XMQP0D)P```.@"*O__@T7L!(M%[(L(AR+ -XM$H72#X51____@\0,6UY?7<-5B>564X/L((M%"(MP!(7V=$.-4`B+0`B%P`^$ -XMP````(D4).CX%O__B30DBB* -XM_O__QP0D"@```.@>*?__BT,0ANID(UT)@")PXM#%#M8$'3VB7<.)-"3H_@O__S')NJ"D"PCH -XMTOO__X7`==#I%____XGVC;PG`````%6)Y5=64X/L#(7`=`6CZ&,)"(L]Z&,) -XM"(L'B?J%P`^$S0```*D```!`=4F+'>!="0CK)XM$@S3VQ$!T,H/'!(D]Z&,) -XM"(L'A<`/A*(```"I````0`^%HP```#W_````=M*)!"3HTXG]__;$0'7.BQ7H -XM8PD(BQJ)UHG8)0```$")1?!U%H'[_P```'=;H>!="0B+1)@T]L1`=6J%VW@B -XMBT7PA@\8$ -XMB37H8PD(BQZ%VW6ABP>%P'04@\0,B?A;7E]=PXD<).A-B?W_ZZ0Q_X/$#(GX -XM6UY?7<.)^NEP____C58$QP8`````B17H8PD(Z\*+/7P@"0CKP(UV`%6)Y5=6 -XM4X/L3(M="(MU%(D<).BI@@$`QT0D!#`J"`B)1B-!(4(````B00DZ`H7`0#'1"0$,"H("(G'B00DZ*@+_O^+17UW#.P5\(`D(=-XQR8/^ -XM`0^4P;J@I`L(Z`;Z__^Z!````,=%U`$```"%P(E%T'44Z:8"```[!7P@"0B- -XM5@1TJ8-%U`$QP(G6C1P7Z!/^__^+3=2%P(D$CW7;BPU\(`D(A8"C1PWZ0_____'1=@`````BTL$]\$```!`B4W< -XM#X79`@``@?G_````#X=O`@``H>!="0B+5=R+1)`T]L0@#X2X`@``H8"8"@B# -XMPPC'1"0,Z;T(",=$)`@#````QT0D!!L```")!"3H;6C^_XM-U(U5\(D4)(GZ -XMB40D"(M%W(E$)`2)V.BP^/__QT0D!#`J"`B)PXM%\(D$).B+"?[_BT7PBPB% -XMR0^$EP(``*&`F`H(QT0D#%+K"`C'1"0(!0```,=$)`0;````B00DZ`EH_O^+ -XM3=R)^HE,)`2+3=2)1"0(C47LB00DB=CH3/C__\=$)`0P*@@(B<.+1>R)!"3H -XM)PG^_XL3A=(/A((!```QP(M-&#E5W`^5P(/H`0G"B1&#?<0M=FWH'(?]_X-] -XMU`''1=@@)0D(#X;7_O__BU0^^(E5V.G+_O__@WW4`L=%V"`E"0@/AKK^__^+ -XM1#[TB478Z:[^__^+1=3'1=@@)0D(A<`/A)S^__^+3#[\B4W8Z9#^__^+5QC"0B+=>R%P'02B00DZ(82`0#'!>QC"0@`````BP8E____OX/H)(/X -XM5`^&9P$``(DT)+O_#P``Z+R``0#'!"1]````B40D!.C")!"3HSVS__SG##XX]____Z>7\__^)!"3HNFS__SG##Y3`#[;`Z1O___^+ -XM2`2%R0^%QO[__^D3____H8"8"@B^_P\``,=$)`R6X0@(QT0D"`(```#'1"0$ -XM&P```(D$).BS9?[_BTWP`^V -XMP.E@_O___R2%$.,("*&`F`H(QT0D#`>]"`C'1"0(!````,=$)`0;````B00D -XMZ`9E_O_KF(-]R&,/A3#^__^+30S!X`(!`8GVZ2'^__^[$0```(M&!"7___^_ -XM#X1<_O__@_@Z#X4V_O__C48(B00DZ-1\`0"+31"C[&,)"(D!B00DZ,($___I -XM,?[__[L"````Z\"[!P```)#KN+L2````Z[&["@```(GVZZ@QV^NDNPX```"0 -XMC70F`.N8NQ````#KD;L3````B?;KB+L$````ZX&["P```(GVZ77___^[!0`` -XM`.EK____NP$```#I8?___[L,````B?;I5?___[L)````Z4O___^)-"3H.7P! -XM`,=$)`1@````H^QC"0B#P`2)!"3HG8;]_X7`=`?'0`0`````H>AV"@B%P'4_ -XMH;1V"@C'1"0$`````(D$).BH"___HQC"0B[_P\``,=$)`0"````B00DZ,2Q_O^% -XMP(G�>_?__H>QC"0AFNPT`B00DZ%D/`0#'!>QC"0@`````B30DZ(=[`0"+ -XM51"C[&,)"(D"B30DZ#4/`0#IY/S__[L(````Z7#^__^[$A```)#I9?[__[L/ -XM````Z5O^__^[!!```.E1_O__NP40``")]NE%_O__NP$0``#I._[__XU&!(D$ -XM).@F>P$`BTT0H^QC"0B)PXD!QT0D!"D```")!"3HAH7]_X7`=`;'``````") -XM'"2[#0```.CS`O__Z6+\__^-1@2[!@```(D$).C>>@$`BU40H^QC"0B)`HD$ -XM).C,`O__Z3O\__^0D)"0D)"058GE5U93B<.#[!R+,*%P80D(C7WPQP5P80D( -XM`0```,=$)`30.`8(B3PDB47PZ,X#_O^+6P2%VW0:C;0F``````^^!H/&`8D$ -XM).@B'___@^L!=>V)/"3H!0/^_X/$'%M>7UW#C;8`````C;PG`````%6)Y5=6 -XM4X/L+(M%"(M]$(E%Y(M%#(E%X*'T8PD(A<`/A#L!``"AP)@*"(7`#X10`0`` -XMH>AV"@B%P`^%$@$``(LU_)D+"(7V#X03`0``C78`BT7DB00DZ!5\`0`#1>"# -XM_SJ)1>P/A',!``"#_S['1>A()0D(#X2&````,!R[8E4)`B+`XE$)`2+1>PI -XMT(D$).AM?_W_A+B8)@D(Z$[^ -XM__^)?0B#Q"Q;7E]=Z5\?__^A;)D+"(7`#X7R_O__B?:+1>3'!"22N0@(B40D -XM!.AM6@$`B7T(@\0L6UY?7>DN'___BQWH=@H(A=MT%(L-?)@*"(7)=,KIM?[_ -XM_Y"-="8`BQ7@=0D(A=)TMNFA_O__D+AH)@D(Z-;]__^X."8)".C,_?__N(`F -XM"0CHPOW__XE]"(/$+%M>7UWITQ[__\=%Z"`F"0CI%____XT$28/Y%(T$Q4@E -XM"0B)1>@/A0'____IJ_[__XVV`````(V_`````%6)Y5>)QU93@^PLBW4(B57@ -XMBQ^)3=R+$HE5\(L"A<`/A(,````E__\_`#GP='J#^#IU->MS@_A>=#.#P@2) -XM5?")1"0$B1PDZ*1X`0"+5?"-#!B+`H7`="DE__\_`#GP=""#^#IT&XG+@_A< -XM=`!``!U -XMW87VQP4`9`D(`````,<%^&,)"`````#'!?QC"0@`````#X32`0``B30DNQ`` -XM``#H]GW]_XEU\(L6A=*)Q[@0````="V)\;,!C;8`````@>+__S\`,<"#^CH/ -XME,"#P02)3?"+$0'#A=)UY(G8P>`$B<,!^(D$).AC"P$`B77PQP7\8PD(```` -XM`(T4&(D5`&0)"(E5[(E%Z*/X8PD(Z$W\_?_'!"0`F@L(B46LH2R:"PB)1=RA -XM*)H+"(E%V*$DF@L(B474H2":"PB)1="A')H+"(E%S*$8F@L(B47(H12:"PB) -XM1<2A$)H+"(E%P*$,F@L(B46\H0B:"PB)1;BA!)H+"(E%M*$`F@L(B46PZ(I] -XM_?^%P'5IBU7PBS*%]G1@B?.!X___/P"#^RH/A-X```"#^SH/A,H```"+0@2% -XMP(E%J'01BT(()?__/P"#^#T/A"N[D(UT)@`E__\_`(/X.G2L -XM@\($B57PBP*%P'7JBU7PBS*%]G6@BT6LB00DZ!;^_?^+1=RC+)H+"(M%V*,H -XMF@L(BT74HR2:"PB+1="C()H+"(M%S*,@K!?AC -XM"0C!^`2C_&,)"(/$7%M>7UW#C4($B47PZ0C___^+3>B-0@2)1?"-5?"-1>S' -XM!"0]````Z.?\__^%P'0*BT7HBT`$A``````)?__/P")1:3K#8-%X`&#QQB#?>`4=$"+CT0E"0@/ -XMO@$YPW7F#[Y!`3M%I'7=C4(,B47PBT7@C57PQP0D.@```(T,0(T,S4@E"0B- -XM1>SH-_S__^DX_O__BT6HB70D!,<$)(8```")1"0(Z*OZ_?_I/?___XVV```` -XM`%6)Y5=64X/L#,=$)`3$F`H(QP0D:$P)".AS9/__A<")QP^$J0```(L`A<`/ -XMA)\```"+`(7`='F+`(7`='/'!?!C"0@`````QP7T8PD(`````(L'BQB%VW1K -XMO@0```#K%L<%\&,)"`$```"+!XL<,(/&!(7;=$['1"0$R$P)"(D<).CV>?W_ -XMA7UW#D)"0D%6%P(GE=1''!7!W"@C`JPL(HSB:"PA=PX/X`77Y -XMQP5P=PH(P*0+"*,XF@L(Z^B)]E6+#31W"@B)Y5.+70C!XP*-!`L[!;"8"@AS -XM,3L-5)D+"'8CB<*+`8/I!(D"H529"PB#Z@0YR';MBQ50F0L(A=)T!#G"=PD! -XM'31W"@A;7<.-!!.C4)D+".OMC;0F`````(L5-'<*"%6+#529"PB)Y593BUT( -XMB=`IR,'X`CG8?@*)V(7`?E^+'7<,YRL<%/)H+"`(```"C0'<*"(D- -XMD'<*"'(WB7<.--)4`````B=@I\#L%-'<*",<%/)H+"`(```") -XM%4!W"@BCD'<*"'>GB<(QR8T575HG64XG#@^P$B4WPC4@$ -XMBT`$@_A>=#N#^"2_`0```'1!C5#0,<"#^@EW%)"#P02-!("-!$*+$8/J,(/Z -XM"7;MA?]X-8D&@\0$@^D$6XG(7E]=P\<"`0```(/$!(G(6UY?7<.#>P@M=!G' -XM`O___W^#Q`2)R%M>7UW#BU7P*<*)T.O"BT,,C4L,O______KDXVT)@````"- -XMO"<`````58GEBU4(A=)^#XT$E0!V"0@[!529"PAV!UW#D(UT)@!=Z3K^__^- -XM=@"-O"<`````58GEBU4(@^)_@_I_=S+V!)6]40D(!'0HH41W"@B%P'0FH7QW -XM"@@]0$(/`'\3C02`78U$0M"C?'<*"+@,````PUVX9````,-=C4+0HWQW"@BX -XM#````,<%1'<*"`$```##H9QW"@A5B>6#^`%^!:.HF`H(H31W"@B-4`3'``H` -XM``")%31W"@C'0`0`````N`$```!=PXVV`````(V_`````*$T=PH(58GEQP`` -XM````N`,```!=PXUT)@"-O"<`````H31W"@A5B>7'``````"X%````%W#C70F -XM`(V\)P````"A-'<*"%6)Y<<``````+@3````7<.-="8`C;PG`````*$T=PH( -XM58GEQP``````N!(```!=PXUT)@"-O"<`````H529"PB+%31W"@A5B>4YT',( -XM@\`$HU29"PC'`@````"X`P```%W#B?:-O"<`````H31W"@A5B>7'``````"X -XM"@```%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@-````7<.-="8`C;PG -XM`````*$T=PH(58GEQP``````N`8```!=PXUT)@"-O"<`````H31W"@A5B>7' -XM``````"X$````%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@5````7<.- -XM="8`C;PG`````*$T=PH(58GEQP``````N`\```!=PXUT)@"-O"<`````58GE -XM@^P$BQ4H)PD(A=)T%*%4F0L(BPU\=PH(*=#!^`(YR'T,R;AD````PY"-="8` -XMB0PDZ.C[__^X#@```,G#D%6X9````(GE@^P$@3U4F0L(`'8)"'<)R<.-M"8` -XM````H7QW"@B)!"3HL_O__[@.````R<.-M@````"-OP````!5B>6#[`2A5)D+ -XM"#L%-'<*"'0MH7QW"@B)!"3HD/K__XL5-'<*"+@.````.154F0L(=@:)%529 -XM"PC)PY"-="8`BQ7(F0L(A=)T%CT`=@D(=`^#Z`2C5)D+".NXD(UT)@#)N&0` -XM``##B?:-O"<`````BPU4F0L(58GE@?D`=@D(="^A-'<*"#T$=@D(=",YP7,) -XM@\$$B0U4F0L(BT'\BU'XB4'XN`X```")4?Q=PXUV`%VX9````,.)]HV\)P`` -XM``"+#529"PBX9````%6)Y8'Y!'8)"'81BT'\BU'XB4'XN`X```")4?Q=PXVT -XM)@````!5B>6#[`R#/0QD"0@!B7PD"(G'B1PDB70D!'0DH529"PB)/0QD"0BC -XM$&0)"+@,````BQPDBW0D!(M\)`B)[%W#BS4T=PH(QP4,9`D(`````,<%$&0) -XM"`````#'!4!W"@@`````@?X`=@D(=BJY`'8)"#';,=*+!)4`=@D(@\$$@\,! -XMB025()D*"(/"`3GQ4]0$(/`'\4P>`"L@S'!41W"@@!````HWQW"@A= -XMB=##C70F`%6X#````(GE7<<%$'8*"`$```##C;8`````C;\`````53'`B>7H -XM]O?__Z%4F0L(7<<%`)D*"`(```#'!3R:"P@$````HY!W"@@QP,<%0'<*"``` -XM``##C78`C;PG`````%4QP(GEZ+;W__^A5)D+"%W'!0"9"@@!````QP4\F@L( -XM!````*.0=PH(,<#'!4!W"@@`````PXUV`(V\)P````!5B>6#[`2A?'<*"(D$ -XM).C]]___,<#H9O?__[@.````RA&]___ -XMH529"PA=QP4\F@L(`0```*,H)PD(HY!W"@@QP,.)]HV\)P````!5,<")Y5W# -XMB?:-O"<`````,<"#/0"9"@@`58GE70^4P*,`F0H(,<##D(VT)@````!5,<") -XMY5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P````!5 -XM,<")Y5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P`` -XM``!5N`,```")Y>A3_?__70^^P,.-M"8`````C;PG`````%6X`0```(GEZ#/] -XM__]=#[[`PXVT)@````"-O"<`````58GE5U93@^P$H3R:"PB#^`(/A($```!_ -XM%X/H`0^$SP```+AD````@\0$6UY?7<.0@_@##X2X````@_@$=>2A0'<*"(7` -XM#X0\`0``BQV0=PH(B=XK-31W"@B)'529"PC!_@(YQ@^,%@$``(7V?ATQR8L4 -XMC2"9"@B+!(N)!(T@F0H(B12+@\$!.?%UY8/$!+@.````6UY?7<.A0'<*"(7` -XM#X3B````BQV0=PH(B00DB1U4F0L(Z,?U__^+#4!W"@B%R7X7,=*+!)4@F0H( -XMB023@\(!.15`=PH(?^O'!3R:"P@!````@\0$N`X```!;7E]=PXLU0'<*"(/^ -XM``^$AP```(L]D'<*"(G[?AF)^C')B?:+`H/"!(D$C2"9"@B#P0$Y\77MBQ4T -XM=PH(.==V">LED(LU0'<*"(L$LXD#BQ4T=PH(@\,$.=ISZ(LU0'<*"(L]D'<* -XM"(T$M0`````IPK@.````B3U4F0L(B14T=PH(QP4\F@L(`@```(/$!%M>7UW# -XMB<;IX_[__S'`Z9G^__^)]E6X9````(GE7<.-M@````!5N&0```")Y5W#C;8` -XM````5;AD````B>5=PXVV`````%6X9````(GE7<.-M@````!5N&0```")Y5W# -XMC;8`````5;AD````B>5=PXVV`````%6)Y8/L",=$)`0`=@D(QP0D\)D+",<% -XM])D+"`````#H+&8!`,<$)/"9"PCH$&0!`*$T=PH(Q@4D=PH(`2T`=@D(P?@" -XMH^B9"PBA5)D+""T`=@D(P?@"HS!W"@BAG'<*"*.HF`H(R<.)]HV\)P````!5 -XMB>6#[`CHA?___Z$T=PH(QP6HF`H(`````(U0!,<`"@```(D5-'<*",=`!``` -XM``"X`0```,G#B?:-O"<`````58GE@^P(H529"P@[!31W"@AT+:%\=PH(B00D -XMZ"#T__^+%31W"@BX#@```#D55)D+"'8&B154F0L(R<.0C70F`.C;DP``H31W -XM"@C'``````"X!````,G#B?:-O"<`````58GE@^P(Z.7^___'!9QW"@@````` -XMZ*:3``"A-'<*",<``````+@+````R<.-="8`58GE@^P(Z(63``"A-'<*",<` -XM`````+@%````R<.-=@!5B>6#[`CH99,``*$T=PH(QP``````N!$```#)PXUV -XM`%6)Y8/L".A%DP``H31W"@C'``````"X!````,G#C78`58GE@^P(Z"63``"A -XM-'<*",<``````+@)````R<.-=@!5B>6#[`CH!9,``*$T=PH(QP``````N`(` -XM``#)PXUV`%4QP(GE@^P(Z'/R__^A-'<*",<%/)H+"`$```"C5)D+"*,H)PD( -XMHY!W"@CHL*8``#'`R<.-M@````"-OP````!5,<")Y8/L".@S\O__H529"PB+ -XM%31W"@@YT',6@\`$.<*C5)D+"'(HZ'.F``"A5)D+"*,H)PD(HY!W"@@QP,<% -XM/)H+"`$```#)PXVV`````(D55)D+".O0D(VT)@````!5B>6#[`C'!529"P@` -XM=@D(QP4H)PD(`'8)",<%D'<*"`!V"0C'!3R:"P@!````Z`VF```QP.BF\?__ -XM,<#)PXGV58GE@^P(H5"9"PB+%529"PBC5)D+"(D54)D+".C?I0``,<#)PXUT -XM)@"-O"<`````58GE@^P(BQ60=PH(H529"PC'!2@G"0@`````QP4,9`D(```` -XM`,<%$&0)"``````YPL<%1'<*"`````!V*"G"P?H"B15`=PH(N`$```#'!0"9 -XM"@@`````Z!3Q___H;Z4``#'`R<,IT,'X`J-`=PH(Z]?K#9"0D)"0D)"0D)"0 -XMD)!5B>53@^P$]@4,9`D(`G5ABQ409`D(QP4,9`D(`````(72=#:A5)D+",<% -XM/)H+"`(````YPG))=R?'!"0!````NP$```#H-O'__Z%4F0L(B1U`=PH(HY!W -XM"@B#Q`1;7<.)TRG#P?L"B1PDZ!'Q___KV3'`Z'CP___KEHVV`````(G#*=/! -XM^P*)'"3HX?'__^B\I```Z[2-=@"-O"<`````58GE5HG6BQ4T=PH(4XG#H529 -XM"PB#[@&#_O]T%CD8=`@YT'/P.1AT[(/`!)"-="8`Z^XYPKYD````=B53B<.#[`2A5)D+"(GV -XM@^H!@_K_=!HY&'0/C70F`#T`=@D(=NDY&'3E@^@$B?;K[CT`=@D(<@IU$SD= -XM`'8)"'0+N&0```"#Q`1;7<,Y&'0F]@4,9`D(`:-4F0L(="*#P`2C5)D+".CC -XM_?__@\0$N`X```!;7<.%R736@\`$D.O0Z!FC```QP.N]D(UT)@!5NF0```") -XMY8/L"*$$9`D(A6#[`B+#529"PB+ -XM%31W"@@YT7,TH7QW"@B-!($YPJ-4F0L(6#[`B+ -XM%529"PB!^@!V"0AV/XL-?'<*"(G0+0!V"0C!^`(YR'PSC02-`````"G"H6#[`BA-'<*"*-4F0L(HB00DZ$YE_?_VQ$!UVO8%#&0)"`%T$>B/^O__ -XM@\00N`X```!;7EW#Z,Z?``"#Q!`QP%M>7<.0C70F`%6)Y5>)UU93@^PS_#X2-````.?YR&.OLC70F`(-^_%QT6(/&!#GW -XMD(UT)@!VUHL>BT4(B5PD!(D$).CI:/W_A575HG&4X/L'(M]"(E5[(E-Z(-MZ`&# -XM?>C_#X2'````BUWL.=YW&>F,````B?:#>_Q<=!Z#PP0YWI"-="8`=GB+`XD\ -XM)(E$)`3HO&?]_X7`==R)7?"+1?"Y`0```(GRB3PD@^@$Z&3^__^-6`0YWG,/ -XMZR.#>_Q<=!F#PP0YWG(6BP.)/"2)1"0$Z'QG_?^%P'7A.=YWO(-MZ`&#?>C_ -XMBW7P#X5Y____BT7L.?!S`HGP@\0<6UY?7<.)WNE3____ZPV0D)"0D)"0D)"0 -XMD)"05;AD````B>53@^P$BQU4F0L(@?L`=@D(=#&+#7QW"@BZ`'8)"(G8QP0D -XM,$T)".C]_O__]@4,9`D(`:-4F0L(=!#H*OC__[@.````@\0$6UW#Z&J=```Q -XMP.OQC;8`````58GE@^P8Z&6)``"-10B)1"0(QT0D!&5T`""AM'8*"(D$).CU -XM8OW_AH5"9"P@[!529"PAT$>BGAP``Z"*(``")]N@;F```H529 -XM"PC&!575E.#[`RAN)@*"(7`#X06`0``BPTXF0L( -XM*PU\=PH(A/>)#3B9"PB)RHG#P?H?BZ/__BQU4F0L(B30DZ`#G__^+%3B9"PBA*)D+"(L$T(L0 -XMA=)T#XD3BU`$@\,$@\`$A=)U\87_=&.A5)D+"(D=5)D+"*-0F0L(QT0D!,28 -XM"@C'!"0@20D(Z"5*__^%P'0)@#W,F0L(`'5'Q@7,F0L(`(/$#+@.````6UY? -XM7<.#Q`RX9````%M>7UW#B=._`0```"G#P?L"Z23___^)'5"9"PCKI8D<).C& -XMYO__Z5/___^0Z)N%``#H%H8``.NLC70F`%6)Y5.#[!2+#;B8"@B%R74/@\04 -XMN&0```!;7<.-="8`BQ4XF0L(H2B9"PB+!-")!"3H)F#]_XG"C02%``````,% -XM-'<*"#L%L)@*"'/$B10DBQU4F0L(Z/7E__^+%3B9"PBA*)D+"(L$T(L0A=)T -XM$)")$XM0!(/#!(/`!(72=?&#/7QW"@@!=#F)'5"9"PC'1"0$Q)@*",<$)"!) -XM"0CH'DG__X7`=`F`/6#[!B)7?B+'3!D"0B)=?R)QJ$T9`D(B70D -XM!(D<)(E$)`CH@V#]_[H!````A7UW#@\0,N&0```!; -XM7E]=PXL=5)D+"('[`'8)"',=Z^.)="0$B1PDZ*"3_O^%P'7#@^L$@?L`=@D( -XMNBC70F`(V\)P````!5B>564X/L$(LU -XM?'<*"(7V#XZ,````H1QW"@B%P`^$?P```(M(!(M1!(72='6+6`BX_____SG9 -XM=!,QP)"-="8`@\`!.<9_/H/H`8G1B40D",=$)`0`````BT$$B00DZ!TG`0") -XMPXD$).@#_O__A7<.#Q!"X9````%M>7<.)]E6)Y5=64X/L3(L=5)D+ -XM"(/K!('[`'8)"'8XBP.#^"!T,X/X"70NBQ6,F`H(.=")5;QU%.LWBP.#^"!T -XM&(/X"9!T$CM%O'0E@^L$@?L`=@D(=^.+`SD%C)@*"'0-Z'^2``"#Q$Q;7E]= -XMPXE%O(US!(EUX(M3!(/Z(`^$Z0$``(/Z"0^$X`$``(/X((G"="B#^`D/A`\% -XM``"!^P!V"0@/AA,"``"#ZP2+$X/Z(`^$!0(``(/Z"77AH529"PB)1<`Y5;QT -XM$CL=5)D+"',*@\,$BQ,Y5;QU[HU#_#T`=@D(#X+A`0``@WO\7`^%UP$``(U3 -XM^+D!````ZPJ+`H/J!(/X7'4+@\$!@?H`=@D(<^OVP0%U`X/#!#M=P`^#/___ -XM_XG*P>H?C001@^`!*="#Z`%UGXL5''<*"(72B570#X0;`0``BST$F0H(B=XQ -XMTH/'`8E]N(U&!(E%V(M&!(/X*@^$@P$``(/X7@^$R`(``(/X)`^$9`(``(72 -XM#X4,!0``@_@ZBWW8#X0*!```.46\#X2%`P``@_@@#X0J!```@_@)C78`#X0> -XM!```@_@Z#X05!```.WW`#X,,!```,#^"!T,(/X"70K@_@Z="8Y?#^"!UT(M5S(/O!(72#X6>`@``B?@I\(G&BT70P?X"A8``.@TH```B5W'+3@2)]XU!T(/X"78+@_DM=`:)^(GWZSZ#^20/A9$!``")^(GW@W@( -XM+71WN@$```")_NGM^___@_DM#X1K`0``@_DJD'0.@_DD=`F#^5X/A3$!``") -XM^(/Y)'3*@_E>=")1<#I^OK__X/O!#')Z?O^__^+4`R#^B\/CGW___^# -XM^CD/CW3___^+=="+5@2%T@^$:OS__XM2!(MV"#GR#X1<_/__,?^+4@2#QP$Y -XM\G7VA?\/A$C\__^#^2T/A?H```#'1?``````C5`$B578BU`$@_HM#X3````` -XM@_HJ#X2G````BU7PB478B57LA=(/B`S\__^+1>PYP@^/`?S__XM]T(E$)`B) -XM5"0$B3PDZ&,@`0"+==B#Q@2)1S___]_D.E2____BW78BU8$C4+0@_@)=B*#^B1T'8M5\(U'_XE%[.DQ____ -XMB?F-5?#H4-[__^G^_O__BT78C57LB?GH/M[__XM5\(E%V.D*____C78`58GE -XM@^P(H31W"@C'``````#HJOC__S'`R<.-M@````!5B>575E.#["RA8&0)"(7` -XMB47@#X6"````H;1V"@B-?>['1"0(`0```,=$)`0!N@@(B00DZ%?7_O^+10B) -XM/"0E__\_`(E$)`3H4T\!`(7`B<9T)3';C00?@\,!B40D"*&T=@H(QT0D!')T -XM`8")!"3H.%7]_SGS==V+3>"%R70&D.C;60``BT4(B00DZ'#R__^#Q"Q;7E]= -XM#[[`P^C`6```Z73___^-="8`C;PG`````%6)Y8/L".@EG```Z,!Z``"X#@`` -XM`,G#B?:-O"<`````58GE@^P(QP0D`````.BN50``N`X```#)PXVT)@````!5 -XMB>575E.#[`R+?0B%_P^$U0```(L=?'<*"(T$G0`````#!31W"@@[!;"8"@@/ -XM@[8```"#^P$/A+H```"+-0"9"@B%]G1-A=L/CCP!``"+-529"P@QR8L50'<* -XM"(UT)@"+!(Z#P0&)!)4@F0H(@\(!.=F)%4!W"@AUYHD<),<$E2"9"@@````` -XMZ*/:__^+'7QW"@B)'"3H-=K__Z%\=PH(@^@!@_C_HWQW"@AT)(G"D*%4F0L( -XM@^H!B3B#P`2#^O^C5)D+"'7IQP5\=PH(_____^BZB0``,<"#/0"9"@@"=%J# -XMQ`Q;7E]=PX/$#+AD````6UY?7<.A`)D*"(7`=5+'!"0!````Z,79__^A5)D+ -XM"(DX@\`$HU29"PC'!41W"@@`````QP0D`0```.@@C```,<"#/0"9"@@"=:;' -XM!"0`````Z.GG__^#Q`PQP%M>7UW#BQ54F0L(H4!W"@B+$L<$)`$```")%(4@ -XMF0H(C5`!B15`=PH(QP25()D*"`````#HJ]G__^EU____BQ5`=PH(Z>7^__^- -XM="8`C;PG`````%6)Y8/L"*$T=PH(QP``````Z/KU___'!"0@````Z#[^___) -XM#[[`PXGVC;PG`````%6)Y5.#["3HI%0``(U%"(D$),=$)`2P2@<(Z%'5_?^- -XM1?B)!"3H1F```(G#C44(B00DZ)G4_?^#ZP%T%<<$)`````#HZ.7__X/$)%M= -XM#[[`PXM%^(D$).C4_?__@\0D6UT/OL##C70F`(V\)P````!5B>5=Z>=3``"- -XMM"8`````58GE5U93@^P\BPVXF`H(B578*<+!^@*)1=R%R8E5U`^.:`$``,=$ -XM)`3$F`H(QP0DX$D)".@7//__/?AO"0B)PP^$R````*&XF`H(QT0D!(!#"0B) -XM'"2)P@,5/)D+"(E%T(U"_XG"P?H?]WW0B14XF0L(B=>)UNAA4?W_A<`/A30! -XM``"+5="%T@^.B````*$HF0L(BU74QT7L`````(E%S(M%T,'B`HE5Y(/H`8E% -XMR.L/BT7(`?")PL'Z'_=]T(G6BU7,C1SU`````(T\$XM5U(L'B50D"(E%X(M% -XMW(M5X(E$)`2)%"3H45/]_X7`=1&+1>"+5>2+!!"%P`^$*`$``(-%[`&+1=`Y -XM1>QUI>L(H;B8"@B)1="+==2+%3R9"PB+#;QV"@B#Q@$Y3=")%3B9"PA]"XM% -XMT(/``:.XF`H(C1S5`````(/"`8G0P?H?]_D#'2B9"PB)%3R9"P@[GN_O__BT7LBW\$A<")?>A_#>LZBQ4HF0L(B?Z)5____ -XM,<#H%]3__[@.````R<-5N`!V"0B)Y8/L"(L55)D+".BJ^___H529"P@M`'8) -XM",'X`HD$).AEU?__BQ50F0L(A=)T%J%4F0L(.<)V#2T`=@D(*<*)%5"9"PC) -XMN`X```##C;0F`````(V\)P````!5B>6#[`BA5)D+"(L5-'<*".A*^___H529 -XM"P@[!5"9"PBC-'<*"',%HU"9"PC&!6#[`BA5)D+"#L%-'<*"'0= -XMZ*AS``"A-'<*",<``````+@$````R<.-M@`````]`'8)"'76#[`BA5)D+"#L% -XM-'<*"'0MH7QW"@B)!"3H8-/__XL5-'<*"+@.````.154F0L(=@:)%529"PC) -XMPY"-="8`/0!V"0AT%^@4C^_[@"````R<.)]E6)Y8/L"*%4F0L(.P4T=PH(="VA -XM?'<*"(D$).C@TO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+",G#D(UT)@"+ -XM%/__QP58F0L(`0```,<$)`!V"0CHNSX!`#T`=@D(HS1W"@AV(8-X -XM_`H/A(8```"A-'<*"(-X_"!T<8$]-'<*"`!V"0AR6:$T=PH(HU29"PB#Q!2X -XM#@```%M=PX/$%+AD````6UW#B10DZ#85`0#'1"0(`$```,<$)`!V"0B)PXE$ -XM)`3H7'C__XD<).@DUP``QP58F0L(`````.EN____QP4T=PH(`'8)".N;@^@$ -XMHS1W"@CKA8/H!*,T=PH(Z6W___^)]E6)Y5.#[!2+#9QW"@B%R75&H9B8"@B% -XMP`^$#`$``,=$)`@`0```B40D!,<$)`!V"0CHZG?__Z&/P*#X2#````@3TT=PH(`'8) -XM"',*QP4T=PH(`'8)"*$T=PH(HU29"PB#Q!2X#@```%M=PZ.<=PH(@\04N&0` -XM``!;7+!#.%P'01B?#H -XMV>C__X7`=`:+1>R)1?"A#&$)"(7`#X2(````BW\<@T7L`8M%[#D%G'<*"'\P -XMBW7PA?9U#J&8F`H(Z)_H__^%P'1PBT7PHYQW"@CH?OW__X/$'%M>7UT/OL## -XMC78`A?]TS(M'&(7`#X51____B3PDZ#D2`0")1QBA#&$)"(7`#X5&____B3PD -XMZ"$2`0#'1"0$,"H("(G&B00DZ)_)_?_I*O___XDT).CRR/W_B?;I:?___X/$ -XM'+AD````6UY?7<.-M"8`````C;PG`````%6)Y5=64X/L'*$T=PH(QP4,9`D( -XM`````,<%/)H+"`````#'``````"#/9QW"@@`#XQ6`0``#X0A`0``BS4<=PH( -XMA?8/A`8!``#HPOK__XL5G'<*",=%\`$```"%TGX:,<"#P`&+=APYT'7V@\(! -XMA?:)5?`/A-8```"+7AB%VW1LBPT,80D(AL`=@D(B=C!^`*)1"0(Z`I(_?^%P'4'BQ0[A=)T8XGXNP$```#H1^?_ -XM_X7`=%.A#&$)"(7`=%6%VW5=BW87UT/OL## -XM@\06#[`B+%31D"0B%TG07,<"#/2`G"0@5#Y3`@\`5Z(?___\/OL#)PXGV -XM5;AD````B>6#[`B+#31D"0B%R74"R<.A("<)".A?____R0^^P,.-=@"-O"<` -XM````58GE5U93@^PLC77DB478C5WPQT7D`````,=%Z`````#'1>P`````QT0D -XM!+"1"`B)-"3HV<;]_\<$)`!V"0CHC3T!`,=$)`0P*@@(B<>)!"3HN\;]_Z$T -XM=PH(B47#'1"0$*@```(DT).A[.0$`BT78QP4`=@D(`````,<% -XM-'<*"`!V"0C'!529"P@`=@D(HR`G"0C'!"0"````Z/G)__^+%529"P@QP,<" -XM"@```(-]V!4/E,"#Z`&#X/"#P#^)0@2#P@B)%529"PCHBGD``,=%\`````"- -XM=@")'"3H*%$``(/H`75:BT7P@_@-#X2N````?VN#^`B)]G1N@_@*#X2<```` -XMB40D!(DT).C9.`$`H529"PB+5?")$(/`!*-4F0L(HS1W"@CH+7D``,=%\``` -XM``")'"3HSE```(/H`72FB30DZ"'%_?_'!"0`````Z'76__^#Q"Q;7E]=#[[` -XMPX/X&W0\@_A_=9N#?>@!#X91`0``H529"PC'``````"#Z`2#;>@!HU29"PBC -XM-'<*".C%>```QT7P`````.DY____A<`/A#'___^)/"3HN<3]_X-]Z`$/A)P` -XM``#'1"0$*@```(DT).@?.`$`B30DZ'3'!31D"0@`````QP0D,&0) -XM"(E$)`3H:CH!`,<$)#!D"0CH3C@!`(DT).AFQ/W_#[9%V(-]V!7'!31W"@@` -XM=@D(QP54F0L(`'8)"*)(F0L(#X2$````QP0D`````.CC^?__/&0/E,"$P'5= -XM@WWP&[@.````#X2P````@\0L6UY?7<.+'31D"0B%VP^%R0```,<%`'8)"``` -XM``#'!31W"@@`=@D(QP54F0L(`'8)".C2=P``B30DZ-K#_?^#Q"RX9````%M> -XM7UW#Z+AW``"#Q"RX9````%M>7UW#QP0D`````.C?^O__/&0/E,#I=____\=$ -XM)`@`0```B7PD!,<$)`!V"0CHW6___XM%W*,T=PH(BT7@B30DHU29"PCH=1''!9QW"@@`````N&0```#)P^AK]O__ -XMR0^^P,.-M@````!5B>6#[`BA-'<*",<%/)H+"`````#'``````"AG'<*"(7` -XM="RA?'<*"`$%G'<*".@L]O__/&1U1.@C]O__C78`Z-MU``"X9````,G#C70F -XM`,<%G)@*"`````#'1"0$`'8)",<$))B8"@CHLC575E.#[!R+?0B%_P^.^@```#L]O'8* -XM"'1"QT0D!`@```")/"3H],P``(E%[*$HF0L(A0/A+P!``"+/029"@@I\\'[`HD] -XM+&0)"(DU(&0)",<%-&0)"`````")7"0(B70D!,<$)#!D"0CH+#0!`,<%*&0) -XM"`````#'!21D"0@`````QT7@`'8)",=%\``````Q_\=%Z`````#'1>P````` -XMZUJ+1>2#!2AD"0@!QP4D9`D(`````(7`#X3@````QT0D"/___W_'1"0$```` -XM`(M-Y(D,).@Q!@$`B47PB00DZ(8P`0"+3?")QHM%Y(M`'(E-X(E%Y(M%[(7` -XM=7O'!"1`30D(BU7@N0$```")\.CHU___.<:)PW2*BQ#WP@```$!U'H'Z_P`` -XM``^'K`$``*'@70D(BT20-/;$0`^%8O___XU#_+D!````B?*#!21D"0@!QP0D -XM0$T)".AMUO__*=C!^`*->`&A-&0)"#G'=TR+1>R)WH7`=(6+%529"PB-!+T` -XM````*Q4@9`D(`P4T=PH(*=`[!;"8"@@/@DD!``"+3?")#"3HH<@``(/$++AD -XM````6UY?7<.-="8`B40D"*$P9`D(B1PDB40D!.A'/?W_AZ0#___^+/029"@@[/2QD"0@/A3C^__\[ -XM-2!D"0@/A2S^__\['1QD"0@/A2#^__^A-&0)"(7`#X03_O__B40D"*$P9`D( -XMB70D!(D$).C5//W_A<`/A?;]__^+%2AD"0C'1>``=@D(QT7P`````(72=$N# -XM^@$/CQ2%T@^$,0$``,=$)`C___]_QT0D!`````"+1>2)!"3H>@0! -XM`(E%\(D$).C/+@$`BTWDBTD2)1>#'!"1`30D(BPTD9`D(B?"+ -XM5>#H-];__XG&Z<;]__^#Q"RX9````%M>7UW#C78`B10DZ`0Z_?_I4/[__\'Z -XM`HD4).A8P___B3PDZ&#`__^%_W0=,6A5)D+"*,<9`D(BT7PB00DZ!K'``"#Q"RX#@```%M>7UW#B10DZ*$Y -XM_?_IT?S__XL5(&0)"*%4F0L(*=#!^`(Y^`^%B/[__XE\)`B)WHE4)`2)'"3H -XMHCO]_X7`#X1Y_?__Z6G^__^+3>2%R8UT)@!T&K`!BTWD@\`!.<*+21R)3>0/ -XMCLC^__^%R77HQT7P`````.GL_?__D(VT)@````!5NF0```")Y5=64X/L#*%4 -XMF0L(BSTT=PH(.?@/A$L!``"+%7QW"@B-<`2AX%T)"(E5[(E%\(-M[`&#?>S_ -XM#X0(`0``.?YR(.FF````C70F`(M5\(M$@C3VQ$!T*(/&!#GW#X:+````BP:I -XM````0'5./?\```!VV8D$).BM./W_]L1`==B+!CW_````=G6)!"3HESC]_^MR -XMBU7PBT2:-/;$0'62@?O_````=S>+5?"+1)HT]L0%#X5Z____@\8$.?!="0B)1>R)5?"#;>P!@WWL_W1E.?YR%>OPBU7PBT2:-/;$0'5`@\8$ -XM.?=VW8L>]\,```!`=>^!^_\```!VVXD<).@\-_W_Z]B+5?"+1)HT]L1`=+6# -XMQ@0Y]W:NBQ[WPP```$!UI('[_P```';;B1PDZ`TW_?^0Z]53B<.#[`2I````0'00@_M?N`,` -XM``!T.X/$!%M=PSW_````=T6AX%T)"(M4F#2`YD"X`0```'7@@_M_=B&!^_\` -XM``!W,:'@70D(BT28-/;$`72[@\0$N`(```!;757B==6B<93@^P< -XMHB%P`^%_````*'@70D(BQ5,=PH(B47PB57L@VWH`8-]Z/\/A!4! -XM```Y_G([Z^R+5?"+1)HT]L0!#X6$````@_M_=PKV!)V]40D(!'5UB5PD!(M% -XM[(D$).C<.?W_A]\,```!`==2!^_\```!VL8D<).@^-?W_ -XMB?;KK(/K`74>B?:-O"<`````ZQ>+!NAG_O__@^@!C70F`'4'@\8$.?=WZ8-M -XMZ`&#?>C_=",Y_G,?BP;H0O[__XG#ZPN+!N@W_O__.<-UM8/&!#GW=^[KK(U& -XM_(/$'%M>7UW#.?>)^';R@\0C#R?__N`X```"#Q`1;7<.#P`2C5)D+ -XM"*'(F0L(A53@^P$ -XMBQU4F0L(BQ4T=PH(.=-T+HL-?'<*"(G8Z.?]__^C5)D+"*'(F0L(A53@^P$BQU4F0L(BQ4T=PH(.=-T18L-?'<*"(G8Z(?]__^)PHG#H529"PCH -XMF>'__RL=5)D+",'[`HD<).AHNO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+ -XM"(/$!%M=PXGVC;PG`````%6)Y5=64X/L/(L5)"<)"(E%S*%4F0L(B574BQ4T -XM9`D(B470H9QW"@B)5>")1=BA-'<*"(/`&(T$D#L%L)@*"`^#8@0``(G0,=N+ -XM=@,``*$T=PH(QP`*````@\`$@_X5HS1W"@BXI.8("'0%N+3F"`B+ -XM$(72=!V)P8GVH31W"@B)$(/`!*,T=PH(BU$$@\$$A=)UYZ$T=PH(BQ4D)PD( -XMB1"#P`2+#3!D"0BC-'<*"*$T9`D(C5$$C02!.<)S+(/!"(M1_*$T=PH(B1"# -XMP`2)RJ,T=PH(H31D"0B#P03!X`(#!3!D"0@YPG+7H31W"@C'``````#'1"0$ -XMQ)@*",<$)"!)"0CH0AS__X7`=`V#/20G"0@Z#X1L`P``Z'QH``"-1?")!"3H -XM(4```(/H`0^%:@4``(M-\('Y``$``']#H7!W"@@/MM$/M@0"/!MT,P^'O`(` -XM`#P"="D\!)`/A<@"```Q_X,]-&0)"`''1=P!````=UKHTW@``,=%W`````#K -XM3*$T=PH(@\`$.P6PF`H(#X-7`@``B4PD!#'_QP0D,&0)".B$)P$`H31W"@B+ -XM5?")$(U0!(D5-'<*",=`!`````#HU6<``,=%W`````"A-'<*"#T`=@D(=Q?K -XM&L<``````(/H!#T`=@D(HS1W"@AV!8,X"G7FQP``````BTWV)1?"#^P$/AKH```"#??!;#X2P````A?]T"3EUS`^$T````,=$)`0J```` -XMQP0D,&0)".B^)@$`QP0D,&0)".@2)P$`H529"P@]`'8)"'(,.P4T=PH(#X:F -XM`@``B?"#_A6B2)D+"`^$)`(``,<$)`````#HKNC__SQD#X0D`@``@_X5N`!V -XM"0@/A&H"``"C5)D+"*$P9`D(B?*#P`3H9-+__XL5-&0)"*$P9`D(@^H!B14T -XM9`D(QP20`````,<%)"<)"#H```")\.CX_/__/&2)PW1'A-MT7(#[9`^4P(M5 -XMX(72#X3B````#[[#@\0\6UY?7<.#/20G"0@_#X0=`@``,<"#_A4/E<"-!,7\ -XM____`054F0L(Z0G___^#/20G"0@_#X4)`0``@WW4.@^%_P```#';BU74BT7@ -XMB14D)PD(BU78.16<=PH(HS1D"0AT$XD5G'<*".A+YO__/&0/A`H!``"+1="` -XM^V2C5)D+"`^$"`,``(M%W(7`#X5J____A-L/A6+___^A-&0)"(7`#X6&_/__ -XMQT0D!"H```#'!"0P9`D(QP4D)PD(.@```.A$)0$`Z6/\___H6G8``#'_QT7< -XM`````)#IS?W__X3`#X06____C78`Z5G___\\8710#X1,`0``B0T49`D(QP0D%&0)".BH -XM/@``NPX````Q_\=%W`$```#I9_W__[@!````Z:/^__^^%@```+\!````QT7< -XM`````.E'_?__H31D"0B#Z`&CV)D+".B#5```Z/Y4``#I>/S__X/$/+AD```` -XM6UY?7<.^%0```+\!````QT7<`````.D(_?__QP0D`````.@*Z/__/&0/A=S] -XM__^+%31D"0BA,&0)"(/J`8D5-&0)",<$D`````#H4G4``(M5V#D5G'<*"'02 -XMBU78B16<=PH(Z,GD__\\9'2,BT70QP4D)PD(/P```*-4F0L(Z<_]__^A-'<* -XM".F,_?__H3!D"0B)\H/`!.CUS___/&0/A8G]___I/OW__S'`@_X5#Y3`@^@! -XM)?___W^CG'<*".ANY/__/&0/A%4!``"#_A6X`'8)"`^$/0$``*-4F0L(Z53@^P4QP4T -XM9`D(`````,8%S)D+"`#H;OC__\=$)`3$F`H(QP0D($D)"(G#Z*@5__^%P'0) -XMH=B9"PB%P'43#[[#QP78F0L(`````(/$%%M=P\<%V)D+"`````#H25$``.C$ -XM40``Z+]A``#KTHVV`````(V\)P````!5B>57B==64X/L'(UP_*'(F0L(B4WH -XMA<`/A=D```"AX%T)"(L53'<*"(E%\(E5[(-MZ`&#?>C_#X0@`0``.?YS.^OL -XMBU7PBT2:-/;$`0^%A````(/[?W<*]@2=O5$)"`1U=8E<)`2+1>R)!"3H*R_] -XM_X7`=6*#[@0Y]W>SBQ[WPP```$!UW('[_P```':UB1PDZ.8J_?_KLHM5\(M$ -XMFC3VQ`%U)H/[?W<*]@2=O5$)"`1U%XE<)`2+1>R)!"3HVB[]_X7`#X1E____ -XM@^X$.?)PW?!@^X$.?=WNHL&Z'SS__\YPW3N@VWH`8-]Z/]U -XML(U&!(/$'%M>7UW#C58$B?@YUW/O@\053@^P$BQU4F0L(@?L` -XM=@D(=#.+#7QW"@BZ`'8)"(G8Z.3]__^C5)D+"*'(F0L(A53@^P$H529 -XM"P@]`'8)"'0TBPU\=PH(N@!V"0CHB/W__XL55)D+"(G#Z.O6__^A5)D+""G8 -XMP?@"B00DZ*FP__^Z#@```(/$!(G06UW#C;8`````C;\`````58GE5E.[`'8) -XM"(/L$*$`=@D(J0```$!U,8LUX%T)".L5BT2&-/;$0'0@@\,$BP.I````0'44 -XM/?\```!VY(D$).B'*/W_]L1`=>`['31W"@BX9````'0=@P5P=@H(`8`%B)@* -XM"`''!"0`````Z(_&__\/OL"#Q!!;7EW#D(UT)@!5N&0```")Y8/L&(EU_(LU -XM5)D+"#LU-'<*"(E=^'-GBQ[WPP```$!U1X'[_P```'=_H>!="0B+1)@T9H7` -XM>%&!^_\```!W?:'@70D(BT28-/;$$'0;@?O_````=WBAX%T)"(N$F#0(``#K -XM.9"-="8`C48$HU29"PC'!"0!````Z+Q@```QP(M=^(MU_(GL7<.!^_\```!W -XM(J'@70D(BX28-`0``(D&C48$HU29"PCKR(D<).B4)_W_ZX")'"3HFBG]_^O@ -XMB1PDZ(`G_?^-="8`Z7O___^)'"3H'R[]_XUV`.O"C;0F`````(V\)P````!5 -XMB>575E.#[`R+#7QW"@B+%31W"@BA5)D+".@1\?__BS54F0L(.?")QW9"D(UT -XM)@"+'O?#````0'4L@?O_````=TZAX%T)"(M$F#1FA!= -XM"0B+A)@T!```B0:#Q@0Y]W?#H31W"@B)/529"P@YQW8%HU29"PB#Q`RX#@`` -XM`%M>7UW#B?:)'"3HQ";]_^NQB1PDZ,HH_?_KP(VV`````(V_`````%6)Y5=6 -XM4X/L#(L-?'<*"(L5-'<*"*%4F0L(Z&'P__^+-529"P@Y\(G'#X:G````H>!= -XM"0B)1?#K'HVT)@````"+5?"+1)HT]L0!=2J#Q@0Y]P^&?P```(L>]\,```!` -XM=>N!^_\```!VUXD<).@[)OW_]L0!=-:!^_\````/AZ$```"+5?"+1)HT]L00 -XM#X5[````@\8$.?=V/8L>]\,```!`=>^!^_\```!W3*'@70D(BT28-&:%P'G9 -XM@?O_````=T"AX%T)"(N$F#0$``")!H/&!#GW=\.A-'<*"(D]5)D+"#G'=@6C -XM5)D+"(/$#+@.````6UY?7<.)'"3HK27]_^NSB1PDZ+,G_?^)!NO"@?O_```` -XM=QN+5?"+A)HT"```B0;KK(D<).B!)?W_Z5G___^)'"3H)"S]_XD&ZY.-="8` -XM58GE5U93@^P,BPU\=PH(BQ4T=PH(H529"PCH(>___XLU5)D+"#GPB<=V0I"- -XM="8`BQ[WPP```$!U+('[_P```'=.H>!="0B+1)@T]L00=!:!^_\```!W0J'@ -XM70D(BX28-`@``(D&@\8$.?=WPZ$T=PH(B3U4F0L(.<=V!:-4F0L(@\0,N`X` -XM``!;7E]=PXGVB1PDZ-0D_?_KL8D<).AZ*_W_Z\"0D)"0D)"0D)"0D)!5,<") -XMY5=64X/L+.L1C78`@\`!/0`!```/A(0```"`N,"K"P@>=>F^P*L+"(E%X(U% -XMX+N`````QT7H`````(U][(E%[,=%\`(```"0C70F``^V%#.-0O\\`78M@/HU -XM="B)V(/@?XE%Y`^V!#.)!"3HK)L``,=$)`@`````B3PDB40D!.@8GP``@\,! -XM@?L``0``=;V+1>#&!#`U@\0L6UY?7<-F,<#K"H/``3T``0``=!.`N,"D"P@> -XM=>V^P*0+".EH____BQ7(F0L(N!L```"^P*0+"(72#X50____Z4;____K#9"0 -XMD)"0D)"0D)"0D)!5B>564X/L$(L=8)D+"(7;=5^+#<"E"PB%R755BS7@70D( -XMNX````#K+(VT)@````"+1)XTJ0``!`!T!\:#P*L+"`*#PP&!^_\```!_&O?# -XM````0'7M@?O_````=M.)'"3H9R/]_^O-QP5`9`D(`0```(/$$%M>7<.0C;0F -XM`````%6)Y5.#[#2-1>B)1?3'1?@"````QP7(F0L(`````.B=GP``,=(/MH)` -XM*0D(QH+`I`L(`8B"P*L+"(/"`8'Z``$``'7AZ$?^__^-7?3H+____\=%Z!@` -XM``#'1?``````QT7L&````,<$)"L```#H/IH``(D<),=$)`@`````B40D!.BJ -XMG0``QT7L*@```,<$)$T```#H%YH``(D<),=$)`@`````B40D!.B#G0``QT7L -XM)````,<$)$X```#H\)D``(D<),=$)`@`````B40D!.AYD``(D< -XM),=$)`@`````B40D!.CGG```QT7L3@```,<$)&<```#H5)D``(D<),=$)`@` -XM````B40D!.C`G```QT7L/P```,<$)&\```#H+9D``(D<),=$)`@`````B40D -XM!.B9G```QT7L"0```,<$)&H```#H!ID``(D<),=$)`@`````B40D!.ARG``` -XMQT7L!````,<$)&L```#HWY@``(D<),=$)`@`````B40D!.A+G```Z.9=``#H -XM,7<``(/$-%M=PXUT)@"-O"<`````58GE@^P(H3QD"0B%P'0"RF?=@``ZPV0D)"0D)"0D)"0D)"058GE4S';@^P4C;0F```` -XM`(N#Z*4+"(/##(D$).C_K0``@?O0!0``=>>A@)@*",=$)`S2Y@@(QT0D"`$` -XM``#'1"0$`P```(D$),<%X*4+",3F"`C'!>2E"P@(````Z.X!_O^)!"3H5JO^ -XM_\=$)`S<\0@(QT0D"`(```#'1"0$`P```,<%[*4+".CF"`C'!?"E"P@$```` -XMH^BE"PBA@)@*"(D$).BH`?[_B00DZ!"K_O_'1"0,`/((",=$)`@#````QT0D -XM!`,```#'!?BE"PC]Y@@(QP7\I0L(&0```*/TI0L(H8"8"@B)!"3H8@'^_XD$ -XM).C*JO[_QT0D#$3R"`C'1"0(!````,=$)`0#````QP4$I@L($N<(",<%"*8+ -XM"!T```"C`*8+"*&`F`H(B00DZ!P!_O^)!"3HA*K^_\=$)`R`\@@(QT0D"`4` -XM``#'1"0$`P```,<%$*8+""7G"`C'!12F"P@.````HPRF"PBA@)@*"(D$).C6 -XM`/[_B00DZ#ZJ_O_'1"0,1><(",=$)`@&````QT0D!`,```#'!1RF"P@SYP@( -XMQP4@I@L(!P```*,8I@L(H8"8"@B)!"3HD`#^_XD$).CXJ?[_QT0D#*3R"`C' -XM1"0(!P```,=$)`0#````QP4HI@L(7^<(",<%+*8+"#@```"C)*8+"*&`F`H( -XMB00DZ$H`_O^)!"3HLJG^_\=$)`SD\@@(QT0D"`@```#'1"0$`P```,<%-*8+ -XM"&_G"`C'!3BF"PA0````HS"F"PBA@)@*"(D$).@$`/[_B00DZ&RI_O_'1"0, -XMD^<(",=$)`@)````QT0D!`,```#'!4"F"PA[YP@(QP5$I@L(1````*,\I@L( -XMH8"8"@B)!"3HOO_]_XD$).@FJ?[_QT0D#"CS"`C'1"0("@```,=$)`0#```` -XMQP5,I@L(K.<(",<%4*8+"!````"C2*8+"*&`F`H(B00DZ'C__?^)!"3HX*C^ -XM_\=$)`S'YP@(QT0D"`L```#'1"0$`P```,<%6*8+"+GG"`C'!5RF"P@1```` -XMHU2F"PBA@)@*"(D$).@R__W_B00DZ)JH_O_'1"0,[^<(",=$)`@,````QT0D -XM!`,```#'!62F"PC=YP@(QP5HI@L(;````*-@I@L(H8"8"@B)!"3H[/[]_XD$ -XM).A4J/[_QT0D#!SH"`C'1"0(#0```,=$)`0#````QP5PI@L(">@(",<%=*8+ -XM"&T```"C;*8+"*&`F`H(B00DZ*;^_?^)!"3H#JC^_\=$)`Q4\P@(QT0D"`X` -XM``#'1"0$`P```,<%?*8+"#?H"`C'!8"F"PAJ````HWBF"PBA@)@*"(D$).A@ -XM_OW_B00DZ,BG_O_'1"0,6.@(",=$)`@/````QT0D!`,```#'!8BF"PA)Z`@( -XMQP6,I@L(2P```*.$I@L(H8"8"@B)!"3H&O[]_XD$).B"I_[_QT0D#(SS"`C' -XM1"0($````,=$)`0#````QP64I@L(=.@(",<%F*8+"#(```"CD*8+"*&`F`H( -XMB00DZ-3]_?^)!"3H/*?^_\=$)`R\\P@(QT0D"!$```#'1"0$`P```,<%H*8+ -XM"(CH"`C'!:2F"PAP````HYRF"PBA@)@*"(D$).B._?W_B00DZ/:F_O_'1"0, -XME^@(",=$)`@2````QT0D!`,```#'!:RF"PCQY@@(QP6PI@L(!0```*.HI@L( -XMH8"8"@B)!"3H2/W]_XD$).BPIO[_QT0D#/#S"`C'1"0($P```,=$)`0#```` -XMQP6XI@L(M>@(",<%O*8+"&@```"CM*8+"*&`F`H(B00DZ`+]_?^)!"3H:J;^ -XM_\=$)`PX]`@(QT0D"!0```#'1"0$`P```,<%Q*8+",CH"`C'!I?[_QT0D#,3T"`C'1"0(%@```,=$)`0#````QP7RF"P@;````H^2F"PBA@)@*"(D$).CJ -XM^_W_B00DZ%*E_O_'1"0,#.D(",=$)`@8````QT0D!`,```#'!?2F"PC]Z`@( -XMQP7XI@L(,````*/PI@L(H8"8"@B)!"3HI/O]_XD$).@,I?[_QT0D#"?I"`C' -XM1"0(&0```,=$)`0#````QP4`IPL(QNL(",<%!*<+"!0```"C_*8+"*&`F`H( -XMB00DZ%[[_?^)!"3HQJ3^_\=$)`PL]0@(QT0D"!H```#'1"0$`P```,<%#*<+ -XM"$'I"`C'!1"G"P@W````HPBG"PBA@)@*"(D$).@8^_W_B00DZ("D_O_'1"0, -XM6^D(",=$)`@;````QT0D!`,```#'!1BG"PA/Z0@(QP4````QT0D -XM!`,```#'!3RG"PC`Z0@(QP5`IPL(30```*,XIPL(H8"8"@B)!"3H`/K]_XD$ -XM).AHH_[_QT0D#/;I"`C'1"0('P```,=$)`0#````QP5(IPL(Y^D(",<%3*<+ -XM"$<```"C1*<+"*&`F`H(B00DZ+KY_?^)!"3H(J/^_\=$)`QH]0@(QT0D""`` -XM``#'1"0$`P```,<%5*<+"`WJ"`C'!5BG"PA1````HU"G"PBA@)@*"(D$).AT -XM^?W_B00DZ-RB_O_'1"0,*NH(",=$)`@A````QT0D!`,```#'!6"G"P@9Z@@( -XMQP5DIPL(3@```*-*<+ -XM"&/J"`C'!7RG"P@/````HW2G"PBA@)@*"(D$).BB^/W_B00DZ`JB_O_'1"0, -XMM/4(",=$)`@D````QT0D!`,```#'!82G"PAPZ@@(QP6(IPL(,P```*.`IPL( -XMH8"8"@B)!"3H7/C]_XD$).C$H?[_QT0D#.3U"`C'1"0()0```,=$)`0#```` -XMQP60IPL(B.H(",<%E*<+"!4```"CC*<+"*&`F`H(B00DZ!;X_?^)!"3H?J'^ -XM_\=$)`P@]@@(QT0D""8```#'1"0$`P```,<%G*<+"*#J"`C'!:"G"P@6```` -XMHYBG"PBA@)@*"(D$).C0]_W_B00DZ#BA_O_'1"0,6/8(",=$)`@G````QT0D -XM!`,```#'!:BG"PBWZ@@(QP6LIPL(+````*.DIPL(H8"8"@B)!"3HBO?]_XD$ -XM).CRH/[_QT0D#,CJ"`C'1"0(*````,=$)`0#````QP6TIPL(;/`(",<%N*<+ -XM"&$```"CL*<+"*&`F`H(B00DZ$3W_?^)!"3HK*#^_\=$)`SCZ@@(QT0D""D` -XM``#'1"0$`P```,<%P*<+"$+P"`C'!<2G"PAB````H[RG"PBA@)@*"(D$).C^ -XM]OW_B00DZ&:@_O_'1"0,#>L(",=$)`@J````QT0D!`,```#'!BG"P@Q````H^"G"PBA@)@*"(D$).@L]OW_B00DZ)2?_O_'1"0, -XMY/8(",=$)`@M````QT0D!`,```#'!?"G"P@DZP@(QP7TIPL(/0```*/LIPL( -XMH8"8"@B)!"3HYO7]_XD$).A.G_[_QT0D#$'K"`C'1"0(+@```,=$)`0#```` -XMQP7\IPL(-.L(",<%`*@+"!@```"C^*<+"*&`F`H(B00DZ*#U_?^)!"3H")_^ -XM_\=$)`P0]P@(QT0D""\```#'1"0$`P```,<%"*@+"%WK"`C'!0RH"PAK```` -XMHP2H"PBA@)@*"(D$).A:]?W_B00DZ,*>_O_'1"0,4/<(",=$)`@P````QT0D -XM!`,```#'!12H"PANZP@(QP48J`L(1@```*,0J`L(H8"8"@B)!"3H%/7]_XD$ -XM).A\GO[_QT0D#'#W"`C'1"0(,0```,=$)`0#````QP4@J`L(Z^@(",<%)*@+ -XM"$4```"C'*@+"*&`F`H(B00DZ,[T_?^)!"3H-I[^_\=$)`RT]P@(QT0D"#(` -XM``#'1"0$`P```,<%+*@+"'CK"`C'!3"H"PA2````HRBH"PBA@)@*"(D$).B( -XM]/W_B00DZ/"=_O_'1"0,Y/<(",=$)`@S````QT0D!`,```#'!3BH"PB%ZP@( -XMQP4\J`L(2````*,TJ`L(H8"8"@B)!"3H0O3]_XD$).BJG?[_QT0D#)GK"`C' -XM1"0(-````,=$)`0#````QP5$J`L(D>L(",<%2*@+"`,```"C0*@+"*&`F`H( -XMB00DZ/SS_?^)!"3H9)W^_\=$)`P0^`@(QT0D"'H```#'1"0$`P```,<%4*@+ -XM"*GK"`C'!52H"PAX````HTRH"PBA@)@*"(D$).BV\_W_B00DZ!Z=_O_'1"0, -XM./@(",=$)`A[````QT0D!`,```#'!5RH"PBZZP@(QP5@J`L(>0```*-8J`L( -XMH8"8"@B)!"3H2H"P@J```` -XMH]RH"PBA@)@*"(D$).AN\/W_B00DZ-:9_O_'1"0,V/D(",=$)`A`````QT0D -XM!`,```#'!>RH"PBW[`@(QP7PJ`L($@```*/HJ`L(H8"8"@B)!"3H*/#]_XD$ -XM).B0F?[_QT0D#`#Z"`C'1"0(00```,=$)`0#````QP7XJ`L(PNP(",<%_*@+ -XM"$P```"C]*@+"*&`F`H(B00DZ.+O_?^)!"3H2IG^_\=$)`PD^@@(QT0D"$(` -XM``#'1"0$`P```,<%!*D+",WL"`C'!0BI"PAI````HP"I"PBA@)@*"(D$).B< -XM[_W_B00DZ`29_O_'1"0,3/H(",=$)`A#````QT0D!`,```#'!1"I"PC8[`@( -XMQP44J0L(3P```*,,J0L(H8"8"@B)!"3H5N_]_XD$).B^F/[_QT0D#(3Z"`C' -XM1"0(1````,=$)`0#````QP4.H(",<%(*D+""````"C&*D+"*&`F`H( -XMB00DZ!#O_?^)!"3H>)C^_\=$)`RT]0@(QT0D"$4```#'1"0$`P```,<%**D+ -XM"._L"`C'!2RI"P@S````HR2I"PBA@)@*"(D$).C*[OW_B00DZ#*8_O_'1"0, -XM"^T(",=$)`A&````QT0D!`,```#'!32I"P@![0@(QP4XJ0L((P```*,PJ0L( -XMH8"8"@B)!"3HA.[]_XD$).CLE_[_QT0D##KM"`C'1"0(1P```,=$)`0#```` -XMQP5`J0L(*>T(",<%1*D+""0```"C/*D+"*&`F`H(B00DZ#[N_?^)!"3HII?^ -XM_\=$)`QA[0@(QT0D"$@```#'1"0$`P```,<%3*D+"%7M"`C'!5"I"P@-```` -XMHTBI"PBA@)@*"(D$).CX[?W_B00DZ&"7_O_'1"0,A>T(",=$)`A)````QT0D -XM!`,```#'!5BI"PAY[0@(QP5X(",<%C*D+"`$```"CA*D+"*&`F`H( -XMB00DZ)KL_?^)!"3H`I;^_\=$)`S(^@@(QT0D"$X```#'1"0$`P```,<%E*D+ -XM"#_N"`C'!9BI"P@I````HY"I"PBA@)@*"(D$).A4[/W_B00DZ+R5_O_'1"0, -XM7>X(",=$)`A/````QT0D!`,```#'!:"I"PA2[@@(QP6DJ0L($P```*.^X(",<%L*D+"#8```"CJ*D+"*&`F`H(B00DZ,CK_?^)!"3H,)7^ -XM_\=$)`PP^P@(QT0D"%$```#'1"0$`P```,<%N*D+"(?N"`C'!;RI"P@\```` -XMH[2I"PBA@)@*"(D$).B"Z_W_B00DZ.J4_O_'1"0,5/L(",=$)`A2````QT0D -XM!`,```#'!<2I"PBA[@@(QP7(J0L(.@```*/`J0L(H8"8"@B)!"3H/.O]_XD$ -XM).BDE/[_QT0D#'S["`C'1"0(4P```,=$)`0#````QP70J0L(J.X(",<%U*D+ -XM"#L```"CS*D+"*&`F`H(B00DZ/;J_?^)!"3H7I3^_\=$)`SD\@@(QT0D"%0` -XM``#'1"0$`P```,<%W*D+"+;N"`C'!>"I"PA0````H]BI"PBA@)@*"(D$).BP -XMZOW_B00DZ!B4_O_'1"0,SNX(",=$)`A5````QT0D!`,```#'!>BI"PC"[@@( -XMQP7LJ0L(8````*/DJ0L(H8"8"@B)!"3H:NK]_XD$).C2D_[_QT0D#)/G"`C' -XM1"0(5@```,=$)`0#````QP7TJ0L(Y^X(",<%^*D+"$0```"C\*D+"*&`F`H( -XMB00DZ"3J_?^)!"3HC)/^_\=$)`R@^P@(QT0D"%<```#'1"0$`P```,<%`*H+ -XM"/7N"`C'!02J"P@N````H_RI"PBA@)@*"(D$).C>Z?W_B00DZ$:3_O_'1"0, -XMV/L(",=$)`A8````QT0D!`,```#'!0RJ"P@![P@(QP40J@L(2@```*,(J@L( -XMH8"8"@B)!"3HF.G]_XD$).@`D_[_QT0D#`#\"`C'1"0(60```,=$)`0#```` -XMQP48J@L(%N\(",<%'*H+"%,```"C%*H+"*&`F`H(B00DZ%+I_?^)!"3HNI+^ -XM_\=$)`PL[P@(QT0D"%H```#'1"0$`P```,<%)*H+""'O"`C'!2BJ"PA4```` -XMHR"J"PBA@)@*"(D$).@,Z?W_B00DZ'22_O_'1"0,+/P(",=$)`A;````QT0D -XM!`,```#'!3"J"PA%[P@(QP4TJ@L(5P```*,LJ@L(H8"8"@B)!"3HQNC]_XD$ -XM).@NDO[_QT0D#&3\"`C'1"0(7````,=$)`0#````QP4\J@L(4.\(",<%0*H+ -XM"%@```"C.*H+"*&`F`H(B00DZ(#H_?^)!"3HZ)'^_\=$)`R,_`@(QT0D"%T` -XM``#'1"0$`P```,<%2*H+"%GO"`C'!4RJ"PA?````HT2J"PBA@)@*"(D$).@Z -XMZ/W_B00DZ**1_O_'1"0,N/P(",=$)`A>````QT0D!`,```#'!52J"PAF[P@( -XMQP58J@L(7@```*-0J@L(H8"8"@B)!"3H].?]_XD$).A\(",=$)`AA````QT0D!`,```#'!7BJ"PB/[P@(QP5\J@L(+P```*-TJ@L( -XMH8"8"@B)!"3H(N?]_XD$).B*D/[_QT0D#$3]"`C'1"0(8@```,=$)`0#```` -XMQP6$J@L(KN\(",<%B*H+"#\```"C@*H+"*&`F`H(B00DZ-SF_?^)!"3H1)#^ -XM_\=$)`QP_0@(QT0D"&,```#'1"0$`P```,<%D*H+"+_O"`C'!92J"PAC```` -XMHXRJ"PBA@)@*"(D$).B6YOW_B00DZ/Z/_O_'1"0,L/T(",=$)`AD````QT0D -XM!`,```#'!9RJ"PC2[P@(QP6@J@L(9````*.8J@L(H8"8"@B)!"3H4.;]_XD$ -XM).BXC_[_QT0D#/3]"`C'1"0(90```,=$)`0#````QP6HJ@L(YN\(",<%K*H+ -XM"%P```"CI*H+"*&`F`H(B00DZ`KF_?^)!"3H?`(",=$)`AJ````QT0D!`,```#'!>2J"PAK\`@(QP7HJ@L(6P```*/@J@L( -XMH8"8"@B)!"3HK.3]_XD$).@4CO[_QT0D#*S^"`C'1"0(:P```,=$)`0#```` -XMQP7PJ@L(D_`(",<%]*H+"$,```"C[*H+"*&`F`H(B00DZ&;D_?^)!"3HSHW^ -XM_\=$)`RY\`@(QT0D"&P```#'1"0$`P```,<%_*H+"*;P"`C'!0"K"PA"```` -XMH_BJ"PBA@)@*"(D$).@@Y/W_B00DZ(B-_O_'1"0,W?`(",=$)`AM````QT0D -XM!`,```#'!0BK"PC0\`@(QP4,JPL(5@```*,$JPL(H8"8"@B)!"3HVN/]_XD$ -XM).A"C?[_QT0D#`;Q"`C'1"0(;@```,=$)`0#````QP44JPL(^O`(",<%&*L+ -XM"%4```"C$*L+"*&`F`H(B00DZ)3C_?^)!"3H_(S^_\=$)`PG\0@(QT0D"&\` -XM``#'1"0$`P```,<%(*L+"!_Q"`C'!22K"PA9````HQRK"PBA@)@*"(D$).A. -XMX_W_B00DZ+:,_O_'1"0,0_$(",=$)`AP````QT0D!`,```#'!2RK"P@[\0@( -XMQP4PJPL(.0```*,HJPL(H8"8"@B)!"3H"./]_XD$).APC/[_QT0D#.C^"`C' -XM1"0(<0```,=$)`0#````QP4XJPL(8?$(",<%/*L+""$```"C-*L+"*&`F`H( -XMB00DZ,+B_?^)!"3H*HS^_\=$)`P,_P@(QT0D"'(```#'1"0$`P```,<%1*L+ -XM"&_Q"`C'!4BK"P@B````HT"K"PBA@)@*"(D$).A\XOW_B00DZ.2+_O_'1"0, -XM,/\(",=$)`AS````QT0D!`,```#'!5"K"PAT\0@(QP54JPL(=P```*-,JPL( -XMH8"8"@B)!"3H-N+]_XD$).B>B_[_QT0D#&C_"`C'1"0(=````,=$)`0#```` -XMQP5AD"0BC*&4)"*'`+0D( -XM]]`C!0!E"0@+!;PM"0BC`&4)"*',+0D(]]`C!01E"0@+!<@M"0BC!&4)"*'8 -XM+0D(]]`C!0AE"0@+!=0M"0BC"&4)"*'D+0D(BPW\70D(]]`C!0QE"0@+!>`M -XM"0B%R:,,90D(=2JAM'8*",=$)`0`90D(B00DZ'*$``"#P`$/A`C____'!61D -XM"0@!````R<.A1)D+".O4C;8`````58GE4X'L)"```*%H9`D(QT7X`````(7` -XM=`B)!"3H_HD``(L58&0)"#'`QP5H9`D(`````(72=`F!Q"0@``!;7<.-1?B) -XM1"0(H;1V"@C'1"0$?V8$0(D$).B__/S_BT7XAB-==B) -XM'"3HC`#]_\=$)`0"````B1PDZ(S[_/^)="0(B5PD!,<$)`$```#H*/O\_\=$ -XM)`1@'@4(B30DZ&Q^_?^+#?Q="0B%R70ZH429"PC'1"0$@&0)"(D$).C]@@`` -XMB30DB2L)",<$),!D"0CH -XMOWX``(LU="T)"#')BQUX+0D(#[8]<&0)"+@!````T^"%QG45#[:1DBL)"#J1 -XM8"L)"'0&B)%@*PD(A<-T"(GXB(%@*PD(@\$!@_D9='^_XD$).@]W_[_B00DZ(6W__^+-?Q="0B%]@^$ -XM]@$``*%$F0L(QT0D!(!D"0B)!"3HHGX``(/``0^$+@(``*&`9`D(BPV<9`D( -XMBQ6D9`D(BQV@9`D(H\!D"0BAA&0)"(L]D&0)"(LUF&0)"(D-W&0)"*/$9`D( -XMH8AD"0B)%>1D"0B)'>!D"0B)/=!D"0BCR&0)"*&,9`D(B3789`D(B3T090D( -XMH\QD"0BAE&0)"*/49`D(H:AD"0BCZ&0)"*&`9`D(HP!E"0BAA&0)"*,$90D( -XMH8AD"0BC"&4)"*&,9`D(HPQE"0BAE&0)"*,490D(B34890D(H:AD"0B)#1QE -XM"0B)%21E"0B)'2!E"0BC*&4)",<$)(!D"0CH.WT``,<$)(!D"0BC:)D+".C: -XM?```QP0D@&0)"*+`F0L(Z.E\``"+70BC1"L)"*%(+0D(]]`C!8!D"0@+!40M -XM"0BC@&0)"*%4+0D(]]`C!81D"0@+!5`M"0BCA&0)"*%@+0D(]]`C!8AD"0@+ -XM!5PM"0BCB&0)"*%L+0D(]]`C!8QD"0@+!6@M"0B%VZ.,9`D(=7;'1"0$8"L) -XM",<$)(!D"0CHN7L``(U=Y,=$)`0`G@<(QP0D'````.A>^?S_B1PDZ.;Y_/_' -XM1"0$'````(D<).CF]/S_QT0D"`````")7"0$QP0D`@```.A^]/S_,<#'!6QD -XM"0@!````Z6S]__^AM'8*".D%_O__QP0D`&4)".@;?```AP``BPW\70D(A2L)"'0&B)!Y*PD(@\`!@_@7==\PP`^VD)(K"0@X -XMT70..HA@*PD(=`:(D&`K"0B#P`&#^!EUW^DF____C;8`````C;PG`````%6) -XMY8/L",<$)`$```#H#O7__\<%A'<*"`````#'!"0`````Z"C\__^#P`%T?:%@ -XM90D(AJ&$+0D(QT0D!'DK"0C'!"3`9`D(]]`C!0``R<.-="8`Z'M*``#I -XM?/___XVV`````%6)Y8/L&,=$)`2PD`@(@P7$K`L(`<<$),2L"PCHWW7]_XU% -XM^(E$)`2-1?R)!"3H;30``(7`=0>+10B%P'1"H81W"@B%P'11Z(08``#H_Q@` -XM`,<$)`````#HDT,``,<$)`````#H9T$``(M%^(E$)`2+1?R)!"3HI2\``.C0 -XM*```QP0DQ*P+",<%M)D+"`````#HRG3]_\G#BT7XB40D!(M%_(D$).AV+P`` -XMZ]20D)"058GEBT4(78L0B15(=PH(BT`$QP7\F`H(`````*-(F@L(PXVT)@`` -XM``"-O"<`````58GEBT4(7<<%-&4)"`$```"C,&4)",.)]HV\)P````!5B>57 -XM5E.#["R+/31E"0B+=0B%_W1%H3!E"0B_`0```,<%-&4)"`````")!H/$+(GX -XM6UY?7+__S\`@\`$B1:+%4`K"0B_`0```(D$C8"9"PB+!)6`F0L( -XMBPB%R76;C4+_HT`K"0B#Q"R)^%M>7UW#Z(CV__\Q_X7`#XAZ____H;29"PB% -XMP`^%P0```,=%X``````QVXU%[@'8B40D!*&T=@H(QT0D"`$```")!"3H&G3^ -XM_X/X_XG'=&.A8)D+"(7`#X6;````@\,!C47NB5PD"(E$)`2)-"3H$.X``(/` -XM`0^%$____\=$)`@`````QT0D!`````#'!"0`````Z)?Q_/\['8!1"0ARBP^V -XM1>X-```@`(D&Z=_^__^-=@"+5>"%TG5)Z+#S_/^+`(E$)`2AM'8*"(D$).AA -XME@``@\`!="S'1>`!````Z4C____'!"0`````Z'3]__^-="8`Z2K___\/MD7N -XMB0;IC/[__\<&`````.F!_O__D(UT)@!5B>6#[`B+50B%TG0*H4`K"0B#^`A^ -XM"^@T-P``R>ENC/[_@\`!HT`K"0B)%(6`F0L(R<.-M@````"-O"<`````58GE -XM@^P(H;"9"PB%P'04Z,P5``#H1Q8``,<%L)D+"`````#H."8``*$T=PH(QP5\ -XM=PH(`0```,<%1'<*"`````#'!>@D"0C_____R2T`=@D(P?@"PXUT)@"-O"<` -XM````58GE5U:^`0```%.[`'8)"(/L'(L]-'<*"(E%Z*%4F0L(QT7L`````(E% -XM\(L3A=)X,O?"````0'4J@_I_?R4/ML(/MX0`X"`)"*@0#X35````@_HC#X3, -XM````@\,$BQ.%TGG.B1U4F0L(BQ.)V872=$XYRW0&@WG\7'0UA=*-=@!X+O?" -XM````0'4F@_I_C78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U*_;$('4FD(UT)@"# -XMP02)#529"PB+$872=;*A-'<*"#'VHU29"PB#>/P*=$NAC)@*"*/`*PD(H42: -XM"PBCQ"L)"(L#QP0DP"L)"(E$)`3H]?+\_X7`=#J%]HL=5)D+"`^%(O___XM% -XM\*-4F0L(BT7L@\0<6UY?7<.#Z`2C5)D+".NK]L0@#X4K____D.DN____BT7H -XMAT[__X/X_W0I@^@!=0?'1>P!````BQ4T=PH(.?IT##M= -XM\','B=`I^`%%\(G7Z5C___^#?>P!&<`)1>SKV(GV58GE5U93@>R,````H<27 -XM"@C'19@`````A<`/A/,$``#'1"0$Q)@*",<$),!$"0CHS-?^_\=$)`3$F`H( -XMQP0D($4)"(E%G.BUU_[_QT0D!,28"@C'!"1@1PD(B46@Z)[7_O^)PZ$\9`D( -XMA<`/A)@$``#HVA,``,<$)`````#HWN[__X,]A'<*"`$9P/?0"05`*PD(A=MT -XM*HL#AW\_X7`#X5X!```QP4`F0H(`````*%@ -XM9`D(AR!^O\````/C]<```"A<'<*"`^V -XM'`*`^S4/A-,```"$VP^4P#'2BPTXF@L(AC2$0`` -XMB?;H2Q(``.A&(@``QP5$=PH(`````,<%?'<*"`$```#HW3(``.@8B/[_QP7H -XM)`D(_____Z$T=PH(+0!V"0C!^`*)1;#IK@4``+L"````,<`QTNDT____C57L -XMB578C47@C578QT7<`0```(E$)`2)%"3H_&<``(/X`0^$(`$``(/X`G13A"$VP^4P(#[-0^4PNGO_O__/?___W\/A`C____HAN___\<%A'<*"``` -XM``#HAX?^_X'$C````(G86UY?7<,/ML#_)(7@`0D(Z$?L_/^+=>#'!"0*```` -XMZ(R)_O_'1=0`````B770C770Z#KO___'!81W"@@`````B30DZ-@%_O^%P`^% -XMI````(DT).CH^___QT0D!,28"@C'!"1`0PD(Z-G2_O^) -XM19CI\?K__\=$)`2@1PD(B1PDZ*WH_/^%P`^%>OO__\<%`)D*"`$```#I:_O_ -XM_XU%Z(E$)`BAM'8*",=%Z`````#'1"0$?V8$0(D$).@#Z?S_BW7HA?8/A53[ -XM___HI^W__S';A<`/B47[___I(?W__XM%F,<%Z"0)"/____^%P`^$7`8``(M5 -XMF(L"A<`/A$\&``"+,,=$)`1@0PD(B30DZ"#H_/^%P`^$S08``,=$)`1P0PD( -XMB30DZ`CH_/^%P`^$M08``,=$)`3`0PD(B30DZ/#G_/^%P`^%!08``(LU-'<* -XM"('^`'8)"'8B@W[\"G4?Q<=#:%THUT)@!X+O?"````0'4F@_I_ -XMC78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U+_;$('4JD(UT)@"#P02)#529"PB+ -XM$872=;&A-'<*"#'_HU29"PB#>/P*#X2!!0``BP;'!"3`*PD(B40D!.@EZ_S_ -XMA<`/A.<%``"%_XLU5)D+"`^%)____XM%N+X!````QP748PD(`````*-4F0L( -XMH;"9"PB%P'04Z'X,``#H^0P``,<%L)D+"`````#HZAP``(/N`<<%?'<*"`$` -XM``#'!41W"@@`````#X6O^O__Z$@-``"A-'<*"(UP!,<`"@```(DU-'<*",=` -XM!`````"+-31W"@B)\H'J`'8)",'Z`HE5L.E?!```C70F`,=$)`@)````H529 -XM"PC'!"0`=@D(+0!V"0C!^`*)1"0$Z%M&__^%P`^.N0(``.C^]?__B46P@?O_ -XM__]_#X0O^?__Z9_Z___'!"0*````C78`Z%N$_O^A-'<*",=$)`@%````QP0D -XM`'8)""T`=@D(P?@"B40D!.@&1O__Z!$<``"A-'<*",<%?'<*"`$```#'!41W -XM"@@`````QP7H)`D(_____RT`=@D(P?@"B46PZX8QV\<%Z"0)"/_____I)?K_ -XM_XGZ@/H2#X3(`P``#X\,!@``@/H##X4V^O__BS4T=PH(QP7H)`D(_____\<% -XM+&4)"`````#'1:P"````B?*!Z@!V"0C!^@*)5;"+5;"+!)4`=@D(A`"`054F0L(B34T=PH(QT0D!,28"@C'!"1`1`D(Z)[. -XM_O^%P'0,QP0D`````.@^C___H529"PB+5:S'!"0`=@D(+0!V"0C!^`*)19") -XM5"0(B40D!.BG1/__A<`/A=,#``"+3:"%R70WBU6@BP*%P'0NBSC'1"0$8$4) -XM"(D\).@IY/S_A*$L90D(AX`=@D(B76PP7VP`NAZ&``` -XMQP5\=PH(`0```,<%1'<*"`````#I!OS__\=$)`@'````Z87^___'1"0("``` -XM`.F_^___Z,((``"+-31W"@C'1;``````B?.!ZP!V"0C!^P+'1"0$`````,<$ -XM)`$```#'!?!="0@`````QP6<=PH(`````.@RS```Z:+[__^+-31W"@C'!>@D -XM"0C_____QP4L90D(`````,=%K`,```")\"T`=@D(P?@"B46PZ4/\__^#Z`2C -XM5)D+".ER^O__]L0@#X7G^?__Z>OY___H*@@``,<$)`!V"0CH#ML``,=$)`0P -XM*@@(B<>)!"3H/&3]_Z$T=PH(BU68QT0D!&!#"0B)1:2+`HL`B00DZ`GA_/^% -XMP`^4P`^VP.A@\?__@^@!#X0\`@``B3PDZ%]C_?_I"/___\=$)`0`=@D(B30D -XMZ'H0__^%P`^$`?K__Z%4F0L(QT0D"`(```#'!"0`=@D(+0!V"0C!^`*)1"0$ -XMZ/U`__^%P`^.EP,``(/H`0^/2`,``(L5-'<*"#M5M'0-.W6X@D"0@!BS4T=PH(QP4L90D(`0```,=%K`0```#I^_G__Z'88PD( -XMA<`/A`G[__^+?:"%_P^$_OK__XM5H(L"A<`/A/'Z___'1"0$P$4)"(L`B00D -XMZ.?>_/^%P`^%U_K__^G-^O__@P7H)`D(`8LU-'<*",<%+&4)"`$```#'1:P$ -XM````Z93Y___HE@4``,<$)`!V"0CH>M@``,=$)`0P*@@(B<:)!"3HJ&']_\=$ -XM)`0*````B30DZ-3B_/_'``````"A-'<*",<%-'<*"`!V"0B)1:CH>R4``(DT -XM).A3V@``QP0D`@```(E$)`3HX\@``(DT).B[8/W_Z*84``"-1?.)1"0$H;1V -XM"@C'1"0(`0```(D$).@Z8?[_A<`/B-,!```/MD7S@_AYB47L='N#^"!T=HE\ -XM)`3'!"0`=@D(Z*W=_/^+1:2C-'<*"(M%[(/X90^$L@$``(/X80^$.P$``,=$ -XM)`RR`0D(QT0D"`4```"A@)@*",=$)`0&````B00DZ'^__?^)!"3H%[D``.@" -XM>O[_B?;IM/S__^BV)```C;8`````Z6_[__^+5:C'1"0,H`$)",=$)`@"```` -XMB14T=PH(ZZS'!>@D"0C_____Z6#Y___'1"0$P$4)"(D\).A=W?S_A<`/A4WY -XM___I0_G__\<%U&,)"`````"^`@```.@@!```H8"8"@C'1"0,RP$)",=$)`@' -XM````QT0D!`8```")!"3HV[[]_XD$).ASN```Z6+V___'!=1C"0@`````,?;H -XMW0,``*&`F`H(QT0D#+8!"0C'1"0(!@```,=$)`0&````B00DZ)B^_?^)!"3H -XM,+@``.D?]O__Q@7,F0L(`.B?`@``Z!H#``#H%1,``,8%S)D+"`'I[?S__Z&` -XMF`H(QT0D#*L!"0C'1"0(!````,=$)`0&````B00DZ$2^_?^)!"3HW+<``,<% -XM-'<*"`!V"0C'!529"P@`=@D(QT0D!`````#'!"0`````Z.3&``#HKQ(``(D\ -XM).BW7OW_QT6P`````.E[[___H8"8"@C'1"0,I0$)",=$)`@#````QT0D!`8` -XM``")!"3HUKW]_XD$).ANMP``H31W"@C'``````"-"7"@A_X(L]2&4)"(7;C02]`````(E%\*&P -XM=@H(BP2XB320=#R-2_^#P@&%R8E5[(D51&4)"'XIP>("H;!V"@B+=?"+!`;' -XM!!#___\'@\($@^D!=>:+5>R-1!K_HT1E"0B+%>"7"@@Y%41E"0A\)*&P=@H( -XMBTWPBP0!QP20`````(U'`<<%1&4)"`````"C2&4)"(/$"%M>7UW#C70F`(V\ -XM)P````!5B>575E.)TX/L"(MU#(E%[(M]"(7V?F&)R"G0.<9^!H7`?E6)QHM% -XM[(T,B(G*@^H$C02U`````"G"BT7LB4WPC1R8.=IR#XL"@^H$B4'\@^D$.=IS -XM\8M%\#G8QP``````=A:%]GX2BP>#[@&#QP2)`X/#!#E=\'?J@\0(6UY?753B<-T'XL"AE;7<-5B>53@^P$H=R7"@B%P'0_BQTX90D(A=MX+XVV -XM`````(D<)(/K`>CU*@``QP0D`````.C)*```H>"7"@B)!"3H3"(``(/[_W77 -XM@\0$6UW#H3AE"0B)!"3HQ"H``,<$)`T```#HB'?^_\<$)`H```#H?'?^_X/$ -XM!%M=PXVV`````%6)Y5.#[!2+%`"B40D",=$)`0`````B10DZ/W;_/\Y -XM'DZ=?[_C78`C;PG`````%6)Y5=64X/L+(7)B47DB")3?`/ -XMA:`!``"A/&4)"(7`B47B+1>"+#4!E"0B-5`,$BUWRCP*P+"(7;#X36`0``C47P.T7L#X38`0``BT7P)?____O!X`0!PJ$\ -XM90D(B57LB47@>C1P0P?L"@?O___\##X]*`0``BTWLAR)1"0$B=#!X`(#!<"L"PB)!"3H1=[\_XM5Z`$5/&4)"(L- -XM/&4)"(E-W(M%X(E$)`B+5>2)5"0$BT7

`"`P7`K`L(B00DZ!'>_/^+5>`# -XM%3QE"0B-#)4`````D(UT)@"AP*P+"(/"`<<$"`````"#P03VP@-UZ8G8B14\ -XM90D(#0````2#Q"Q;7E]=PZD````$#X6O````C57PQT7H`0```(E5[(L=/&4) -XM"(7;B5W<#XZ1_O__BSW`K`L(,=N+1>B+5>"--(R)!"3H%-G\_X7`==2+5>")="0$ -XMB50D"(M-Y(D,).CZV/S_A@>`=C!^`(- -XM````!.E+____@\0LN#\```!;7E]=PXL-P*P+""7____[P>`$`R)!"3H -XM^];\_XE%Z.D[____B?B#Q"S!^!_!Z!X!^%M>7UW!^`(-````!,.+%3QE"0B) -XM5=SI0/[__XL-/&4)"(E-W.DR_O__D%6)Y5=64X/L'(E%Z(L`B<$E__\_`('A -XM``#`_XE-\(E%[(E4)`2)!"3H$Z4``(G#C4`'@_@'=AF+3>B)VHL!Z`WZ__^# -XMQ!RX`0```%M>7UW#_R2%C`,)"+H!````N"````#HZOG___8%1&4)"`=UZ.O2 -XMBT7PN@$```"#R%SHS_G__XM%[+H!````P?@&@^`'@\`P"T7PZ+;Y__^+1>RZ -XM`0```,'X`X/@!X/`,`M%\.B=^?__N@$```"#9>P'BT7L@\`P"T7PZ(;Y__^# -XMQ!RX`0```%M>7UW#BT7PN@$```"#R%SH:?G__XM%\+H!````@\A5Z%GY__^+ -XM1?"Z`0```(/(*^A)^?__C03=`````/?8B<.#ZQP/B"C___^0C70F`(M%[(G9 -XMN@$```#3^(/@#P^^@'@#"0@+1?#H$OG__X/K!'G=@\0Z,GX__^#?>Q_#X2I````BT7LN@$````)1?"#3?!`BT7PZ*CX__^#Q!RX -XM`0```%M>7UW#BS5(90D(BQ5$90D(BSVP=@H(ZQJ-M"8`````C1RU`````(L$ -XM'X$\D/___P=U+X/J`7GH@^X!#XB`_O__BP2WC1RU`````(D$).BYU/S_C5#_ -XMBP0?@3R0____!W31A?8/B%?^__^-')4`````BT7HN@$````#'+>+"^C]^O__ -XMB0/I"?[__X--\#^Z`0```(M%\.@%^/__Z?/]__]5B>57B<=6B=93@^P,@_H! -XM?Q'K'[H!````N"````#HW?___XGP`P6XF0L(.P7@EPH(?^'WQP````0/A.\` -XM``")^H'B____^\'B!`,5P*P+"(L"AAN)D+"#L%X)<* -XM"'P_#[X%K)@*"(,%:'8*"`&#!3AE"0@!J`''!;B9"P@`````="2H`G08QP0D -XM(````.B6)QU93@^P, -XMA<")1?!T4(L'A%P'6V@\0, -XM6UY?7<,QTHGX.WWP#Y3"Z/?[__^--(>)]^O<58GE5U93@^Q\B56(B<*)18R) -XM382+`(7`#X0$!@``BTV(.P$/A?D%``")5?")3>CK!XM5Z#L"=1?`$BW7P -XM@T7H!(L&A?P@=!#K&I"-="8`BW68@W[\('4, -XM@VV8!(M%\#E%F'?KBU68QP(`````BTWHB0PDZ/?%``")19S'1"0$Q)@*",<$ -XM)"!)"0CH0+O^_X7`=`F`/@Y=9QV(HM%G(-X_"!T#8GVZQ6+ -XM59R#>OP@=0R#;9P$BTWH.4V<=^N+=9S'!@````"+1?"+`(7`B46\=0V+5>B+ -XM`H7`#X2"`@``BTV8BW6@(``(L!.P9T!Y"#P02#Q@2!.?___P=T -XM\HM%O(7`#X5X`@``B4VHB4VLB76TB76PBU7HBQ*%THE5['1R.TWP=FV+??#K -XM$9"-="8`@\<$.?EV7(L'B46\BT6\.47L=>PYSP^"X`(``(M=Z(GZQT7````` -XM`,=%Q`````"+1:PK1:C!^`([1<1]PXGX*T7PT7W`P?@".47`?K.)5:R+5>B) -XM?:B#QP0Y^8E=M(E5L'>DBT68B*T6L*W6TP?@"P?X" -XM*<:%_W4_AC!^@+!^P(YVGT,BT68BU6%6+18@I1=C!?=@"BU78B10DZ'4= -XM``"+3:`Y39@/A*(#``"+1>"%P'X2BW7@B70D!(M%M(D$).B@&P``BU7@*57< -XMBTW@/@WW]__^#Z02#[@2+ -XM`3L_?__Z6_]__\[=>@/AG_]__^+?>B)3:B)3:R)=;2)=;#K$)"-="8` -XM@\<$.?X/AFK]__^+1;P[!W7N.?=R0HM=\(GZQT7(`````,=%S`````"+1;0K -XM1;#!^`([1B)^CG>#X83_?__C;0F`````(/"!(/#!#G1=Q:)T"GXB47`P?@" -XMB47$Z0/]__^-="8`.=YVYHL".P-TUNO>BW6@BT6DB4W8QT7<`````(EUU(EU -XMJ(EUK(E%M(E%L(EUT,=%X`````#ITOW__X7)#XA4`0``BU6LBTVHB=.)5=`I -XMRXE-U(7VBWV@#X@F`0``BTVDB?HK5?")R"M%Z,'Z`L'X`CG"#XYO_?__BT68 -XMBTV)1:")3:3I7/W__XM%Z"M%B,'X`HD$).B4&P``BTVP.4V<#X3:`@`` -XM@'V3``^%S@$``(G[BWWDBW7H*UWDP><"`?Z)7"0$B30DZ((6``"+1?")V8GR -XM`?CH)/+__^F^_?__BT6LZ5?]__^+1>@K18C!^`*)!"3H-AL``(MUL#EUG`^$ -XM60(``(M%Y(E$)`2+5>B)%"3H:!D``(M-Y(M5\"M5C(E,)`2+=>B+#>"7"@C! -XM^@*)-"2+18R)_N@R\?__BT7DBUWH*W7DP>`"`<.)192)'"2)="0$Z/45``"+ -XM1?")V@-%E(GQZ);Q__^+7>3I#_W__XM-C(MUB(E-\(EUZ.D6^O__BTV8BW6< -XMB<^)3:")=:3IQ_[__XM%H#';BU6DB474B46HB46LB56TB56PB470Z9W^__^+ -XM38PI3=#!?=`"BW70C00SB00DZ&,:``"+1:`Y19@/A`L!``"+1>#WV(D$).A* -XM%```BU7B)^8M%\.B?\/__BUWDZ1C\__^+ -XM1=R)1"0$BU6TB10DZ-44``#I>_S__XMUY(ET)`2+1>B)!"3H[A<``(M5\"M5 -XMC(ET)`2+3>C!^@*)#"2+#>"7"@B+18SHO>___^GZ_?__BT6,C0RPBW6XC129 -XMC1RP.=IS#HL"@\($B0&#P00YVG+RQP,`````Z6'___^+19@K18R+%>"7"@C! -XM^`*--`,YUGX"B=:+1=R)1"0$BU6TB10DZ$(4``"+19PK18C!^`(IQHDT).B? -XM$@``Z6;[__^)?"0$BU7HB10DZ!L4``"+=8@I=9R+38PI39C!?9P"P7V8`HM% -XMG"E%F(M5F(D4).AF$@``Z9S[__^)?"0$BU7HB10DZ.(3``"+5>B)^8M%\(/$ -XM?%M>7UWI?N___XE\)`2+=>B)-"3HOQ,``(M%\(GYB?+H8^___^G]^O__C;0F -XM`````(V\)P````!5B>575E.#[!RAA'<*",<%1&4)"`````#'!81W"@@````` -XMQP5(90D(`````(E%\*%XF0L(Z.?V__^A1&4)",<%1&4)"`````"C3&4)"*%( -XM90D(QP5(90D(`````*-090D(H2QW"@CHM?;__X$]-'<*"`!V"0@/AB("``"[ -XM`'8)",=%Y/_____'1>@`````.QU4F0L(3_=1:A1&4)"(D=5)D+"(E% -XMY*%(90D(B47H,=*!^P!V"0@/E,*)V.C,\O__C1R#.1TT=PH(=[^#?>3_#X3$ -XM`0``BPU$90D(H4QE"0B+%>"7"@B%P'0.BQU090D(A=L/A%T!``#'!4QE"0@` -XM````QP5090D(`````*%(90D(N@$```")1>PQP.B\[/__BT7LQT7@`````(7` -XM>&Z+7>"AL'8*"(M-X,'C`HL4&*%`F@L(BP08Z%#V__^AL'8*"(LUX)<*"(L\ -XM&*%`F@L(A?:+%!A^)(L',`Y1>Q]DJ$X90D(.47L?4`[1>!\.XM=X,'C`J%` -XMF@L(NOAO"0B+3>"+!!CHUO7__Z%`F@L(BP08@\,$QP``````@T7@`8M%X#D% -XM.&4)"'W+BT7LHSAE"0B+1>B)!"3HHQ@``(M%Y(D$).AX%@``QP0D`````.C\ -XM"@``Z-=C_O^+1?"CA'<*"(/$'%M>7UW#,RA>)D+".B(]/__ -XMZ7/^__^A1&4)"(E%Y(G!H4AE"0B)1>CI*_[__XVV`````(V_`````%6)Y8/L -XM&(EU^(MU"(E=](E]_(L55)D+"#L5-'<*"'01BUWTBW7XBWW\B>Q=Z0_]__^+ -XM#4QE"0B%R702H>"7"@@K!;B9"P@IR(/X`G[3C02U`````(G7*</_ -XM_S\`@?\`=@D(#Y3`B40D!(D<).B9E0``@_C_=&B#^`$/A(0```"#^/QUEKH! -XM````N%P```#HA_+__XG8N@$```#!^`:#X`>#P##H#X`>#P##H6O+__XU#,+H!````Z$WR__^+7?2+=?B+??R)[%WI3&+^_[H! -XM````N%X```#H+?+__X/[?W1_@\M`N@$```")V.@9\O__Z\K'1"0$Q)@*",<$ -XM)"!)"0CHTZ_^_X7`=`F`/@Y!2QW"@@/E,"!XO__/P`/ML")%"2)1"0$Z/:3``"-4`>#^@9V -XM9@'&.?Y\O"G^@T7P`87;=;:[`'8)".L6C;0F``````'&.?Y\!H-%\`$I_H/# -XM!#L=5)D+"`^#H@```#'`@?L`=@D(#Y3`B40D!(L#)?__/P")!"3HEY,``(U0 -XM!X/Z!G>__R25K`,)"/\DE<@#"0B0@\8!]\8'````C;0F`````'2"@\8!]\8' -XM````=>.-=@#I;____X/&`??&!P```(GV=("#Q@'WQ@<```!UZ(UV`.EM____ -XM@T7P`3'VZ6+___^#Q@3I6O___P'`]]B-=`;]Z4W___^#Q@+I1?___XM%\(D$ -XM).C8%```B30DZ+`2``#'1"0$Q)@*",<$)"!)"0CHS*W^_X7`=`F`/PL0@``BU4,BTT(@_H!B=`/C@D$``"%R:.L;PD(B<@/CO`#```Y -XM%:QO"0BCH&\)"`^$#0$``*%`F@L(QP5`F@L(`````(D$).A<2?[_H;!V"@C' -XM!;!V"@@`````B00DZ$5)_O^AK&\)"+H```$`B<&CX)<*"(G0P?H?]_F-4`&- -XM!(4(````B17(=@H(B00DZ)50``"+%_(L5R'8*"(G8@\,!.<)_VL<$E@````"AR'8* -XM"(DU0)H+"(/``<'@`HD$).@Z4```BQ7(=@H(A=*)QGXKNP$```"AX)<*"(/` -XM`<'@`HD$).@64```B42>_(L5R'8*"(G8@\,!.<)_VL<$E@````")-;!V"@CH -XM\>?__X'$+$(``%M>7UW#.<@/A>O^___'!"3D`PD(Z)[`_/^%P'1'H:QO"0C' -XM1"0(`````,=$)`0`````B00DZ#%I``#'1"0$,"H("(G#B00DZ$]$_?^)7"0$ -XMQP0D`$P)".@_MOW_B1PDZ)=#_?_'!"3L`PD(Z$?`_/^%P'1'H:!O"0C'1"0( -XM`````,=$)`0`````B00DZ-IH``#'1"0$,"H("(G#B00DZ/A#_?^)7"0$QP0D -XMY$L)".CHM?W_B1PDZ$!#_?_'!"3R`PD(Z/"__/^%P`^$*?[__XD$).C4O@`` -XMQT0D"``(``")1"0$C87DWO__B87@O?__B00DZ$#'_/^-1>2-C>3>___'A>#^ -XM__\`````QT7D8P```,=%Z&\```#'1>PC````QT7P`````(E$)`2)#"3H*;4` -XM`(7`B<2)PXD,).CNP/S_C8WDO?__*YW@O?__B8W3>__^)7"0(B40D!.C!QOS_H:QO"0C'A)WDO?__`````(V2] -XM___'1"0(`````,=$)`0`````B00DZ,9G``")'"2)QHE$)`3H9+[\_XDT).A@ -XM30``QT0D!#H```")/"3H#,3\_XV-Y+W__XD,)(E$)`3H.K[\_XU%Y(V-Y+W_ -XM_\=%Y&P```#'1>AI````QT7L(P```,=%\`````")1"0$B0PDZ$VT``"%P(G& -XM#X3[````B<.-1>2)!"3H$L#\_XV-Y+W__RN=W+W__XE,)`3!^P(!PXV%Y-[_ -XM_XE<)`B)!"3HZ\7\_Z&@;PD(QX2=Y-[__P````#'1"0(`````,=$)`0````` -XMB00DZ/=F``"-C>3>__^)#"2)PXE$)`3HC[W\_XD<).B+3```QT0D!#H```") -XM-"3H-\/\_XE$)`2-A>3>__^)!"3H9;W\_XV-Y-[__\>%X/[__P````")3"0$ -XMQP0D($P)".C)L_W_Z2'\__^X&````.D&_/__N%````"0C70F`.GH^___C8WD -XMO?__C87DWO__B40D!(F-W+W__XD,).@IOOS_Z2]__^-C>3>__^) -XM1"0$B0PDZ`R^_/_KA8VT)@````"-O"<`````58GE5E.#[""+70RAK&\)"(MU -XM"(D#H:!O"0B)!HU%\(E$)`BAM'8*",=$)`1H=`A`B00DZ*2^_/^#P`%T%P^W -XM1?)FA7<.0 -XMC70F``^WP+H!````B0:AK&\)"#L#==^AH&\)"#'2.P8/E<*#Q"!;B=!>7<.0 -XMC;0F`````%6)Y8/L&(72B5WTB=.)=?B)QHE]_'0%@#H`=22+1@B)!"3H&4L` -XM`,=&"`````"+7?2+=?B+??R)[%W#D(UT)@")%"3HU,/\_XUX`8M&"(E\)`2) -XM!"3H!DP``(E\)`B)7"0$B48(B00DZ/_"_/_KOY!5B>6#[!B+%,````\.=,/A/@```"+#6AE"0B%R0^%^@```(G'B<8E````(('G -XM````"('F````$(E%\*&`;0D()0```!`Y\'0IA?8/A-X!``"AL&X)"(7`=!B` -XM.`!T$XL5O&X)"(72=`F`.@`/A9T"``"A@&T)""4````(.?AT+87_#X1J`0`` -XMH>QN"0B%P'0<@#@`=!>+%>!N"0B%TG0-@#H`#X4_`@``C70F`*&`;0D()0`` -XM`"`[1?!T48M%\(7`#X3N````H1!O"0B%P'0]@#@`=#B+%1QO"0B%TG0N@#H` -XM="G'1"0(,#H&",=$)`0!````B00DZ,V]_/^!#8!M"0@````@C;0F`````(M= -XM](MU^(M]_(GL7<.-=@"+#;QN"0B%R0^$^/[__X`Y``^$[_[___?"````$`^% -XM>`$``(G&@>8````0]\(````@#X5W`0``B=@E````((E%\('B````"'1"B=^! -XMYP````@/A8````0)0```"")1?#'1"0(,#H&",=$)`0!```` -XMB0PDZ"N]_/_'!8!M"0@`````B=^!YP````CIAO[__Z$<;PD(A<`/A$O___^` -XM.``/A$+____'1"0(,#H&",=$)`0!````B00DZ.:\_/^!)8!M"0C____?Z1O_ -XM__^AX&X)"(7`#X2N_O__@#@`#X2E_O__QT0D"#`Z!@C'1"0$`0```(D$).BI -XMO/S_@26`;0D(____]^E^_O__H;!N"0B%P`^$-O[__X`X``^$+?[__Z&\;@D( -XMA<`/A"#^__^`.``/A!?^___'1"0(,#H&",=$)`0!````B00DZ%:\_/_V!8-M -XM"0@(=!*AX&X)"(7`=`F`.``/A<\```#V!8-M"0@@=!*A'&\)"(7`=`F`.``/ -XMA8T```"!)8!M"0C____OZ;K]__^)QH'F````$`^$N/[__^E]_O__B=@E```` -XM((E%\`^%@_[__XG>@>8````0Z9[^___'1"0(,#H&",=$)`0!````B00DZ,F[ -XM_/^!#8!M"0@````(Z9[]___'1"0(,#H&",=$)`0!````B00DZ**[_/^!#8!M -XM"0@````0Z3S]___'1"0(,#H&",=$)`0!````B00DZ'N[_/^!)8!M"0C____? -XMZ4S____'1"0(,#H&",=$)`0!````B00DZ%2[_/^!)8!M"0C____WZ0K___^) -XM]HV\)P````!5B>6#[!CH%74``,=$)`3$F`H(QP0D\$4)".CAHO[_A7"7"@A_/*$T;PD(A7<.+%?QM"0B%TG3& -XM@#H`=,&A%&X)"(7`=`6`.`!U>*'\;0D(A7<.#Q!!;7EWI -XM=%+^_\=$)`@P.@8(QT0D!`$```")!"3H6+C\_^EK____C;0F`````%6)Y5=6 -XM4X/L+(MU#(M]"(7V?@@[->"7"@A^"(/$+%M>7UW#QT0D!,28"@C'!"0@20D( -XMZ-F?_O^%P`^$H`(``(L5+'<*",=%V`````"+&H7;=!2)T(/`!(L(A``````=#R+ -XM%5"9"PB+#529"PB)T#G*#X=Z`@``+0!V"0C!^`(#1=@YRHE%W(G0#X);`@`` -XM+0!V"0C!^`(#1=B)1>#'1"0$Q)@*",<$)"!)"0CH-9_^_X7`=%*A9&4)"(L= -XMX)<*"`^O'6AV"@@#';B9"PB%P`^$I````#M=X'P,Z`?X__^-M"8`````H61E -XM"0B%P'08H529"P@M`'8)",'X`@-%V#G8#X2(`0``BP<]____!W0XJ0````0/ -XMA(````")PH'B____^\'B!`,5P*P+"(L"AZ#!;B9"P@!@^X!=%N#QP3I0?___Z%4F0L(+0!V"0C!^`(#1=@!PHE% -XMW(E5X.DD____.UW<#XQD____.UW@#XU;____Z(;W__^-M@````#I2____XD$ -XM).BS5/[_@P6XF0L(`8/N`76EQT0D!,28"@C'!"0@20D(Z".>_O^%P'0-H61E -XM"0B%P`^%UP```*'@EPH(.06XF0L(#XP,_O__#[X5K)@*"/;"`0^$I@```(L- -XM:'8*",<%N)D+"`````"#P0&#X@*)#6AV"@@/A-K]__^A0)H+"(L$B(L`A<") -XM1?`/A*,```"-1?")!"3'1"0$`0```.B7_?__H6AV"@B+%;B9"PB-'(4````` -XM`QU`F@L(BP.!/)#___\'#X6+_?__C4H!C12-`````.L#@\$!B0VXF0L(BP.+ -XM!!"#P@0]____!W3HZ6+]___H4O;__XGVZ6S^__^#Z`&CN)D+"(/$+%M>7UW# -XMZ#;V___I'____\=%V`````#'1=P`````QT7@`````.G._?__QP0D(````.C+ -XM4/[_QP6XF0L(`0```.D'_?__B7>E9_/__BQ50;@D(A=)TP8`Z`'2\ -XMH5QN"0B%P`^$N````(`X``^$KP```(L5+&X)"(72#X2A````@#H`#X28```` -XMB00DQT0D"#`Z!@C'1"0$`0```.A1M/S_B5PD!(DT).CY^___H6AN"0B%P'0) -XM@#@`#X6B````H2QN"0C'1"0(,#H&",=$)`0!````B00DZ!:T_/^#Q!!;7EW# -XMQT0D"#`Z!@C'1"0$`0```(D$).CWL_S_QT0D!`$```")-"3HF_O__Z%H;@D( -XMA7>F53?[_QT0D"#`Z!@C' -XM1"0$`0```(D$).AYL_S_Z4'___^0C;0F`````%6)Y5=64X/L'(M]"(L5N)D+ -XM"#G7#X3$````.SW@EPH(#XVX````A?\/A+@```")^(G^@^`'P?X#B47LZS&- -XM=@"+1>P!\#G##Y_`A,!T;<<$)`T```#HED[^_S'2.SW@EPH(QP6XF0L(```` -XM`'UPB?LITXU#!(/X"'82H>1M"0B%P'0)@#@`#X5:`0``A=M_=/?;@_L$?A*A -XM6&\)"(7`=`F`.``/A?H```"`/<"9"P@`=8XYWP^7UW#QP0D#0```.C^3?[_ -XMQP6XF0L(`````(/$'%M>7UW#@_L$?A*A9&\)"(7`=`F`.``/A8@```"`/<"9 -XM"P@`#X2M````B=.)_H'C^````(/F^#GS#X3/````BQ5H=@H(B57PBPU`F@L( -XMBP21@3RP____!W0K.?-](8/#",<$)`D```#HA4W^_SG>?^VA:'8*"(E%\(L- -XM0)H+"(DUN)D+"*&XF0L(B?HIPHE4)`2+5?#!X`(#!)&)!"3H?_G__^LDB5PD -XM"(E<)`2)!"3HZ:[\_\=$)`@P.@8(B5PD!(D$).BEL?S_B3VXF0L(@\0<6UY? -XM7<.+%6AV"@B)5?"+#4":"PCKG8E\)`B)?"0$B00DZ*:N_/_'1"0(,#H&"(E\ -XM)`2)!"3H8K'\_^N[H6AV"@B)1?"+#4":"PCI9/___Y!5B>575E.#[`R+?0BA -XM:'8*"#G'#X3J````.SW(=@H(#X_>````B?LIPX7;#XX``0``]@6LF`H(`0^$ -XMB````(L5:'8*"*%`F@L(BP20BQ"%TG1TBQ7@EPH(B=&#Z0%T(X$\B/___P=U -XM&HT4D.L0C78`BT+X@^H$/?___P=U!8/I`77NB0PDZ%;]__^+%;B9"PBAX)<* -XM"(L-:'8*""G0B40D!*%`F@L(P>("`Q2(B10DZ$SX__^#ZP%T1/8%K)@*"`$/ -XMA7C___^#^P%^%:%`;PD(A`.@")]G5'H01O"0B% -XMP'2R@#@`=*V)WO?>,=N%]G\+ZZ&-="8`H01O"0B#PP''1"0(,#H&",=$)`0! -XM````B00DZ,RO_/\Y\W7@_X!?BF)="0(B70D!(D4).C:K/S_ -XMQT0D"#`Z!@B)="0$B00DZ):O_/_I0O___Z$$;PD(A0C70F -XM`%6)Y5.#["2A)"P)"(U=],=%^`,```#'1?0H+0D(B40D",=$)`0<+`D(B1PD -XMZ`\H``"A$"P)",=%]!@M"0C'1"0$""P)"(D<)(E$)`CH[R<``*%,+`D(QT7T -XM""T)",=$)`1$+`D(B1PDB40D".C/)P``H3@L"0C'1?3X+`D(QT0D!#`L"0B) -XM'"2)1"0(Z*\G``"A8"P)",=%].@L"0C'1"0$6"P)"(D<)(E$)`CHCR<``*%T -XM+`D(QT7TV"P)",=$)`1L+`D(B1PDB40D".AO)P``H20L"0C'1?3(+`D(QT0D -XM!!PL"0B)'"2)1"0(Z$\G``"A$"P)",=%]+@L"0C'1"0$""P)"(D<)(E$)`CH -XM+R<``*%,+`D(QT7TJ"P)",=$)`1$+`D(B1PDB40D".@/)P``H3@L"0C'1?28 -XM+`D(QT0D!#`L"0B)'"2)1"0(Z.\F``"A8"P)",=%](@L"0C'1"0$6"P)"(D< -XM)(E$)`CHSR8``*%T+`D(QT7T>"P)",=$)`1L+`D(B1PDB40D".BO)@``BPW( -XMF0L(A``````ZQ"#QP>`4@_\=```` -XMBU7@BX($+`D(C01`BQR%J&T)"(7;=-D/MC.)\(3`=-")'"3HI:<``(E%[(D$ -XM).@FJOS_BU7@BXH0+`D(B47P@_G_#X2?````@'L!`(GP#[;0=%*+7=B+==P! -XMTP^V`S@$%G1?/#5T6RP!=86+==B-5>R)5"0$B30DZ,`B``"+5>"+@A`L"0B% -XMP'5T#[:"""P)"(@#Z5C___^0C70F`(/$+%M>7UW#BUW8`=,/M@/KN,=%W$`I -XM"0C'1=C`JPL(Z1[___^-!+^-!(4(+`D(B40D!(U%[(E,)`B)!"3HWB,``,8# -XM->D)____BT78C77LB70D!(D$).A$(@``Z?+^__^)1"0(C02_C02%""P)"(UU -XM[(E$)`2)-"3HHB,``.G0_O__C;8`````C;PG`````%6)Y5=64X'L3`@``(U= -XMR(D<).AEK?S_B1PDQT0D!!P```#H9:C\_XU%V(E<)`2)1"0(QP0D`0```.C^ -XMI_S_C478B00DQT0D!&`>!0CH/RO]_XV%R/?__XE%\,<%8&4)"`$```#'!2!W -XM"@CZ`PD(QP0D++((".@RI_S_A<")PW0)@#@`#X6:`P``NS&R"`C'1"0$``@` -XM`,<$)(!E"0CHWC3^_XE<)`3'!"2`90D(Z+JK_/^%P`^.G`(``,<$)`[/"`CH -XM%JC\_X7`#X6>`P``,=*)%91O"0C'!"0*!`D(Z/JG_/^%P`^$9P,``+H!```` -XMB16X;PD(QP0D#00)".C;I_S_QP0D$`0)"*.(;PD(Z,JG_/_'!"03!`D(H\1O -XM"0CH&:;\_\<$)!8$"0BCK&\)".@(IOS_HZ!O"0BAH&T)"(7`="R[H&T)"(UU -XM\(VV`````(ET)`2)!"3H<*[\_XG"B=B#PPSH:.G__XL#A'<*"(7;=&Z`.P!T -XM::$<;PD(AB)1"0$C47LB00DZ%/G__^+ -XM1>B)1"0$BT7LB00DZ,'B__^-1=B)!"3H]B?]_^B!^___@<1,"```6UY?7<.A -XM4&X)"(7`=`F`.``/A0K___^+%4QO"0@QP(72#X3__O__,<"`.@`/E<#I\O[_ -XM_XL5-&\)"#'`A=(/A,+^__\QP(`Z``^5P.FU_O__@_C_#X27`0``A<`/A$$! -XM``"A@)@*"(L=#'8*",=$)`R4"`D(QT0D"!8```#'1"0$!P```(D$).BNAOW_ -XMB5PD!(D$).A"@```H:!M"0C'!:QO"0A0````QP6@;PD(`````,<%N&\)"``` -XM``"%P,<%E&\)"``````/A)O]__^[H&T)"(G8,=*#PPSH[.;__XL#A*#Q!`QP%M>7<.#Q!"P -XM`5M>7<-5B>575C'V4S';@^P,BT4(BSB+@P`L"0B)/"2)1"0$Z'BB_/^%P'08 -XM@\8!@\,4@_X&==^#Q`RX_____UM>7UW#BTT,BP&+402-#+:)!(T(+`D(B12- -XM#"P)"(M%$(D$C1`L"0B#Q`PQP%M>7UW#C78`58GE5U8Q]E,QVX/L#(M]".LV -XMBX80+`D(@_C_="")1"0(C02;C02%""P)"(E$)`2+A@`L"0B)!"3H@R```(/# -XM`8/&%(/[!G0JBT<$A53,=N#[!2-M"8`````BX.D;0D(@\,, -XMB00DZ!\O``"!^^`!``!UYV8QVXUT)@"+@X1O"0B#PPR)!"3H_RX``(/[5'7J -XMH8"8"@C'1"0,&00)",=$)`@!````QT0D!`0```")!"3'!:QM"0CX'`D(Z/N" -XM_?^)!"3H8RS^_\=$)`PO!`D(QT0D"`(```#'1"0$!````,<%N&T)""P$"0BC -XML&T)"*&`F`H(B00DZ+^"_?^)!"3H)RS^_\=$)`P\!`D(QT0D"`,```#'1"0$ -XM!````,<%Q&T)")_1"`BCO&T)"*&`F`H(B00DZ(."_?^)!"3HZRO^_\=$)`Q, -XM!`D(QT0D"`0```#'1"0$!````,<%T&T)",`%"0BCR&T)"*&`F`H(B00DZ$>" -XM_?^)!"3HKRO^_\=$)`QA!`D(QT0D"`4```#'1"0$!````,<%W&T)"$V]"`BC -XMU&T)"*&`F`H(B00DZ`N"_?^)!"3H!_?^)!"3HORK^_\=$)`RI!`D(QT0D"`D```#'1"0$ -XM!````,<%#&X)"*8$"0BC!&X)"*&`F`H(B00DZ!N!_?^)!"3H@RK^_\=$)`R[ -XM!`D(QT0D"`H```#'1"0$!````,<%&&X)"$T;"0BC$&X)"*&`F`H(B00DZ-^` -XM_?^)!"3H1RK^_\=$)`S.!`D(QT0D"`L```#'1"0$!````,<%)&X)",L$"0BC -XM'&X)"*&`F`H(B00DZ*.`_?^)!"3H"RK^_\=$)`SA!`D(QT0D"`P```#'1"0$ -XM!````,<%,&X)"-X$"0BC*&X)"*&`F`H(B00DZ&>`_?^)!"3HSRG^_\=$)`SY -XM!`D(QT0D"`T```#'1"0$!````,<%/&X)"+/1"`BC-&X)"*&`F`H(B00DZ"N` -XM_?^)!"3HDRG^_\=$)`P(!0D(QT0D"`X```#'1"0$!````,<%2&X)"`4%"0BC -XM0&X)"*&`F`H(B00DZ.]__?^)!"3H5RG^_\=$)`P -XM!0D(QT0D"!8```#'1"0$!````,<%M&X)"""_"`BCK&X)"*&`F`H(B00DZ`]^ -XM_?^)!"3H=R?^_\=$)`RM!0D(QT0D"!<```#'1"0$!````,<%S&X)"*;K"`BC -XMN&X)"*&`F`H(B00DZ--]_?^)!"3H.R?^_\=$)`S#!0D(QT0D"!@```#'1"0$ -XM!````,<%V&X)"'CG"`BCT&X)"*&`F`H(B00DZ)=]_?^)!"3H_R;^_\=$)`S0 -XM!0D(QT0D"!D```#'1"0$!````,<%Y&X)",0>"0BCW&X)"*&`F`H(B00DZ%M] -XM_?^)!"3HPR;^_\=$)`S?!0D(QT0D"!H```#'1"0$!````,<%\&X)"*/!"`BC -XMZ&X)"*&`F`H(B00DZ!]]_?^)!"3HAR;^_\=$)`SU!0D(QT0D"!L```#'1"0$ -XM!````,<%_&X)"(T%"0BC]&X)"*&`F`H(B00DZ.-\_?^)!"3H2R;^_\=$)`P# -XM!@D(QT0D"!P```#'1"0$!````,<%"&\)"->\"`BC`&\)"*&`F`H(B00DZ*=\ -XM_?^)!"3H#R;^_\=$)`P3!@D(QT0D"!T```#'1"0$!````,<%%&\)"$D;"0BC -XM#&\)"*&`F`H(B00DZ&M\_?^)!"3HTR7^_\=$)`PD!@D(QT0D"!X```#'1"0$ -XM!````,<%(&\)""$&"0BC&&\)"*&`F`H(B00DZ"]\_?^)!"3HER7^_\=$)`PT -XM!@D(QT0D"!\```#'1"0$!````,<%+&\)"#$&"0BC)&\)"*&`F`H(B00DZ/-[ -XM_?^)!"3H6R7^_\=$)`Q-!@D(QT0D""````#'1"0$!````,<%.&\)"$H&"0BC -XM,&\)"*&`F`H(B00DZ+=[_?^)!"3H'R7^_\=$)`QE!@D(QT0D""$```#'1"0$ -XM!````,<%1&\)"&(&"0BC/&\)"*&`F`H(B00DZ'M[_?^)!"3HXR3^_\=$)`Q^ -XM!@D(QT0D""(```#'1"0$!````,<%4&\)"'L&"0BC2&\)"*&`F`H(B00DZ#][ -XM_?^)!"3HIR3^_\=$)`R6!@D(QT0D"",```#'1"0$!````,<%7&\)"),&"0BC -XM5&\)"*&`F`H(B00DZ`-[_?^)!"3H:R3^_\=$)`RL!@D(QT0D""0```#'1"0$ -XM!````,<%:&\)"/G."`BC8&\)"*&`F`H(B00DZ,=Z_?^)!"3H+R3^_\=$)`S" -XM!@D(QT0D""L```#'1"0$!````,<%>&X)"+\&"0BC;&\)"*&`F`H(B00DZ(MZ -XM_?^)!"3H\R/^_\=$)`S6!@D(QT0D""P```#'1"0$!````,<%H&T)"-,&"0BC -XM?&X)"*&`F`H(B00DZ$]Z_?^)!"3HMR/^_\=$)`SI!@D(QT0D""T```#'1"0$ -XM!````,<%P&X)".8&"0BCI&T)"*&`F`H(B00DZ!-Z_?^)!"3H>R/^_\=$)`S] -XM!@D(QT0D""4```#'1"0$!````,<%=&\)"`````#'!7AO"0@`````H\1N"0BA -XM@)@*",<%@&\)"`T$"0B)!"3HPWG]_XD$).@K(_[_QT0D#!,'"0C'1"0()@`` -XM`,=$)`0$````QP6,;PD(#L\("*.$;PD(H8"8"@B)!"3HAWG]_XD$).CO(O[_ -XMQT0D#"D'"0C'1"0()P```,=$)`0$````QP68;PD(%@0)"*.0;PD(H8"8"@B) -XM!"3H2WG]_XD$).BS(O[_QT0D##D'"0C'1"0(*````,=$)`0$````QP6D;PD( -XM$P0)"*.<;PD(H8"8"@B)!"3H#WG]_XD$).AW(O[_QT0D#$L'"0C'1"0(*0`` -XM`,=$)`0$````QP6P;PD("@0)"*.H;PD(H8"8"@B)!"3HTWC]_XD$).@[(O[_ -XMQT0D#+@("0C'1"0(*@```,=$)`0$````QP6\;PD($`0)"*.T;PD(H8"8"@B) -XM!"3HEWC]_XD$).C_(?[_QP7(;PD(`````,<%S&\)"`````"CP&\)"(/$%%M= -XMPU6)Y8'L2`@``(V%\/?__XE%\(M%"(E=](EU^(E]_,<%('<*"+;1"`B)!"3H -XM`,;]_\=$)`3P(P8(B<.)!"3H?AG]_XL#A<`/A+0```"+$(72#X2J````@_HM -XM#X2V````B9W@]___QX78]___`````,>%W/?__P````")!"2_)`<)".@:D@`` -XMB00DZ%(A_O_'1"0$,"H("(F%S/?__XD$).@<&?W_B[7,]___N04```#\\Z8/ -XMA%W/?__P````!T(,<$)'<``!#H>A7]_\>%V/?__P````#'A=SW__\` -XM````C4,$B87@]___BT,$AG'1"0$`````,<$)"`+"0CHH&\``.F%_O__ -XMB[7,]___O_[>"`BY!0```/SSIG04B[7,]___OS,'"0BY!@```/.F=2^AH&\) -XM",<$)"`+"0B)1"0$Z%UO``#I0O[__XE4)`3'!"0D"PD(Z$AO``#I+?[__XNU -XMS/?__[\6!`D(N0,```#SIG2]B[7,]___OV$'"0BY!0```/SSI@^$40(``(NU -XMS/?__[\3!`D(N0,```#SI@^$.0(``*&@;0D(OJ!M"0B%P'42Z;`#``"#Q@R+ -XM!H7`#X2C`P``BY7,]___B00DB50D!.@(E_S_A#W__^+0@2%P'0R -XMBS"%]G0LBXW<]___A+A#W__^+0@2)!"3HCHP``(D$).@RC_S_B<>+1@2%P'0RBP"% -XMP'0LBX7<]___A<`/AG*_/__BX78]___ -XMA<`/A+S\__\/OL*)1"0$QP0D=```$.BN#_W_Z:3\__^)]HV\)P````!5B>57 -XM5E.#[!R+10R+70C'!2!W"@@UT@@(B47LH:!M"0B%P`^$`P$``+Z@;0D(ZPV# -XMQ@R+!H7`#X3O````B5PD!(D$).C3DOS_AT!``"+%4QO"0@Q -XMP(72=`@QP(`Z``^5P(L5!&\)"*/DF`H(A=)T"H`Z`+@!````=12+%7!O"0@Q -XMP(72=`@QP(`Z``^5P*-X=PH(@\0<6UY?7<.+%8!O"0C'1?"`;PD(A=*)5>AU -XM)HE=#,=%"',``!"#Q!Q;7E]=Z4H._?^#1?`,BT7PBP"%P(E%Z'3:B5PD!(M] -XMZ(D\).BGD?S_AR)/"3H9(S\_XM5\(E""(L5K&\)"*&@ -XM;PD(@7WPI&\)"(D5=)D+"*/$F0L(=`V!??"8;PD(#X4Z____B54,Z!N"0B%P`^$6?[__X`X``^$ -XM4/[__XE$)`2)'"3H[)#\_X7`#Y3`#[;`"05H90D(Z3'^__^+=>RX6`<)"+D$ -XM````_(G'\Z8/A9@```"+1?#'0`@!````H91O"0B#/<1O"0@!BPV(;PD(HL"9 -XM"PBAN&\)"*+(EPH(&<#WT(/@`H7)#Y7""="!??"`;PD(HJR8"@AT#8%]\+QO -XM"0@/A77^__^AK&\)"(E%#*&@;PD(B44(@\0<6UY?7>GER?__N`$```#I'?[_ -XM_XE$)`2)'"3H.Y#\_X7`#Y3`#[;`HVAE"0CI&____XMU[+B1Y`@(N0,```#\ -XMB575E.#[!RA@)@*",=$)`S8"`D(QT0D"`$```#'1"0$!P```(D$).CB -XM;?W_B00DZ'IG``"A@)@*",=$)`QF!PD(QT0D"`(```#'1"0$!P```(D$).BU -XM;?W_B00DZ$UG``"A@)@*"(L=H&\)"(LUK&\)",=$)`P`"0D(QT0D"`,```#' -XM1"0$!P```(D$).A\;?W_B5PD"(ET)`2)!"3H#&<``(`]R)<*"``/A+`"``"A -XM@)@*",=$)`S,[@@(QT0D"`4```#'1"0$!P```(D$).@Z;?W_B00DZ*(6_O_' -XM1"0$,"H("(G'B00DZ'`._?^A@)@*",=$)`R$!PD(QT0D"`0```#'1"0$!P`` -XM`(D$).C[;/W_B7PD!(D$).B/9@``N$7)"`B`/<"9"P@`#X2"`@``B00DZ$46 -XM_O_'1"0$,"H("(G#B00DZ!,._?^A@)@*",=$)`R>!PD(QT0D"`<```#'1"0$ -XM!P```(D$).B>;/W_B5PD!(D$).@R9@``]@6LF`H(`0^$K`$``*&`F`H(QT0D -XM#+('"0C'1"0("@```,=$)`0'````B00DZ&!L_?^)!"3HR!7^_\=$)`0P*@@( -XMB<.)!"3HE@W]_Z&`F`H(QT0D#,0'"0C'1"0("0```,=$)`0'````B00DZ"%L -XM_?^)7"0$B00DZ+5E```/O@6LF`H(J`%T>*@"#X5]`0``H8"8"@C'1"0,M@<) -XM",=$)`@+````QT0D!`<```")!"3HW6O]_XD$).A%%?[_QT0D!#`J"`B)PXD$ -XM).@3#?W_H8"8"@C'1"0,W@<)",=$)`@,````QT0D!`<```")!"3HGFO]_XE< -XM)`2)!"3H,F4``(L=H&T)"(7;#X2/````,?:)]HN&J&T)"(7`=`6`.`!U):&` -XMF`H(QT0D#/0'"0C'1"0(#0```,=$)`0'````B00DZ$QK_?^)!"3HM!3^_\=$ -XM)`0P*@@(B<.)!"3H@@S]_XN&H&T)"(E<)`S'!"3\!PD(B40D"(N&I&T)"(E$ -XM)`3HKF0``(D<).BV"_W_BX:L;0D(@\8,A<`/A77____'!"0*````Z*DG_O^) -XM/"3HD0O]_X/$'%M>7UW#H8"8"@C'1"0,M@<)",=$)`@+````QT0D!`<```") -XM!"3HM&K]_^E/_O__H8"8"@C'1"0,D>0(",=$)`@&````QT0D!`<```")!"3H -XMBFK]_^E+_?__H8"8"@C'1"0,L@<)",=$)`@*````QT0D!`<```")!"3H8&K] -XM_^E^_O__H8"8"@C'1"0,F0<)",=$)`@(````QT0D!`<```")!"3H-FK]_^E4 -XM_?__D%6)Y8M%"%VBX&\)"+C@;PD(PXVT)@````"-O"<`````58GEBT4(78M0 -XM!(L`B17<;PD(H]AO"0BXV&\)",.-=@!5B>53B<.#[`3'!"08````Z'L6``"+ -XM$XL2QT`$_____\=`"`````")$,=`#`````#'0!``````QT`4`````(/$!%M= -XMPXVV`````(V_`````%6)Y5.)PX/L!(7`=$N+0!"%P'0,Z.?____'0Q`````` -XMBT,4Z-C___^+0P2#^/]\"87`?AR#^`)^#(VT)@````#HQXC\_XM#"(D$).@@ -XM%0``B1PDZ!@5``"#Q`1;7<.)]E6)Y5=6B=93@^P,B47PBSJ+&(L7.1.)V74( -XMZQF-="8`B<&+012%P'0W.Q!U\X/!%(G#B4WPC4<$B0:+1@2#Z`&%P(E&!'0J -XMBU,0A=)T$HU#$(GRZ*C___^#Z`%T#8UV`(/$##'`6UY?7<.+0Q"%P'7OBT,4 -XMBU7PB0*)V,=#%`````#H&?___X/$#+@!````6UY?7<.-M@````"-OP````!5 -XMB>6#["B+10B+4`2+`(72B57\B47X=!V+#=1O"0@QP(7)=`^-5?BXU&\)".@O -XM____,<#)P\=$)`PH"PD(QT0D"`,```#'1"0$"0```*&`F`H(B00DZ$9H_?^) -XM!"3HWF$``+C_____R<.-M"8`````58GEBTT,BU4(BP$/M@"`/!`U=`)=PX'Z -XMP*L+"'0:@?K`I`L(=>Z`N,"K"P@U=.6)30A=Z5C___^`N,"D"P@U=>[KVXVV -XM`````(V\)P````!5B>57B<=6B=93B?N#[!R)3?"+`HL0.1=U".L8C70F`(G# -XMBT,4A<`/A,L````[$)!U[HG'BT8$@P8$@^@!A<")1@1U+(M'$(7`=`SH\/W_ -XM_\='$`````"+1P2#^/]\"87`?D>#^`)^,.C?AOS_C78`BU\0A=L/A*0```"+ -XM50B+1Q")%"2+3?")\NAR____@\0<,7<.)V.@5_/__H]1O"0CI>___ -XM_XUT)@"-O"<`````58GE@^PHB5WTB<.)=?B)SHE]_(G7BQ*+`#L"=#.+0Q2% -XMP'04B?KHU?___XM=](MU^(M]_(GL7<.X`0```,____ZX>-M@`` -XM``"-OP````!5H=1O"0B)Y8M5"(M-#%WI//___XVV`````(V_`````%6)Y8/L -XM"*'4;PD(Z'#[___'!=1O"0@`````R>D0UO__58GE5U93@^P-=@"!^_\````/AS0!``"AX%T)"(M$F#3VQ`)T/X/[ -XM?\8&7@^$)P$``(G8@\A`B$8!@\8"BU4(@T7P`8M%\#E"!`^.DP```(M5"(L" -XMBU7PBQR0B=^!YP```$!TIX/[7@^$T````(/[7`^$QP```(/[((GV=#Z%_P^% -XMA@```('[_P````^'TP```*'@70D(BT28-*D```0`=&J!^_\````/A\@```"A -XMX%T)"(M$F#3VQ$!U4('C__\_`(DT)(E<)`3HKGP``(M5"(-%\`$!QHM%\#E" -XM!`^/;?___XM%#(L0A=)T#(M`!(7`=`6(!H/&`<8&`(M%[(/$'%M>7UW#C;8` -XM````B=C!^`:#X`>#P#"(1@&)V,'X`X/@!X/`,(A&`HG8@^`'@\`PQ@97UW#C70F`'Q3@_L"?TZ#ZP&X -XM:#T)")!T!;AT/0D(B30DB40D!.B-_?__QT0D!#`J"`B)PXD$).C+`_W_H4@- -XM"0B)7"0$B00DZ`I<``")70B#Q!Q;7E]=Z0L#_?_HPH'\_Z&`F`H(QT0D#.$+ -XM"0C'1"0(!P```,=$)`0)````B00DZ#%B_?^)10RA2`T)"(E%"(/$'%M>7UWI -XMNEL``(UV`(V\)P````!5B>6#["B+10B)??R)7?2)=?B+&(U3!(E5[(MS!(GW -XM@>?__S\`#X2"`0``BPN)R"7__S\`@_AQ=PXUT)@"!__\```!W-Z'@70D(BT2X-/;$`70S@_\_ -XMQT7P?P```'3"@>:?````B77PZ[>-=@"-1]"#^$9W\/\DA2P,"0B)/"3HU7_\ -XM_^O(B7PD!,<$)`4,"0CH@X'\_X7`=;GK@L=%\`L```#I>?___\=%\`D```#I -XM;?___\=%\`T```")]NE?____QT7P"@```(UT)@#I3____\=%\`P```"-="8` -XMZ3_____'1?`;````C70F`.DO____QT7P"````(UT)@#I'____\=%\`<```"- -XM="8`Z0_____'1?!<````C70F`.G__O__BUWL,=(QR8/#!(/X!P^'T@```(M- -XM[(G"BT$$B6#[!B%THE=](G3B77XB<:)??P/A.@```")UX'G````0'4>@?K_ -XM````#X=0`0``H>!="0B+1)`T]L0"#X7B````@_M>#X1"`0``@_M<#X0'`0`` -XM@_L@=#Z%_XUT)@!U1('[_P````^'X0```*'@70D(BT28-*D```0`="B!^_\` -XM```/ARD!``"AX%T)"(M$F#3VQ$!U#HE<)`2)-"3H7',``.M0QT0D!%P```") -XM-"3H2G,``(G8P?@&@^`'@\`PB40D!(DT).@S#P#") -XM1"0$B30DZ!ES``"-0S")1"0$B30DZ`IS``"+7?2+=?B+??R)[%W#QT0D!%X` -XM``")!"3H[7(``,=$)`1`````B30DZ-UR``#KT<=$)`1>````B30DZ,MR``"# -XM^W\/A(<```"#RT")7"0$B30DZ+-R``#KIXD<).CE?/S_Z1O____'1"0$7``` -XM`(DT).B4<@``QT0D!%P```")-"3HA'(``.EU____B10DZ+-\_/_IK/[__\=$ -XM)`1<````B30DZ&)R``#'1"0$7@```(DT).A2<@``Z4/___^)'"3H@7S\_Y"- -XM="8`Z<[^___'1"0$/P```(DT).@K<@``Z1S___^-M@````!5B>6#[!B%THE= -XM](G3B77XB<:)??QT.8L2BW@$Z/_]__^+4Q"%TG0XB?#HT?___XM#%(7`=!J) -XM?@2+4Q2)\(M=](MU^(M]_(GL7>NTC70F`(M=](MU^(M]_(GL7<.-=@#'1"0$ -XM(@```(DT).BP<0``B30DZ`AR``"+0P2)1"0(C4,(B40D!(L&B00DZ##Z___K -XMG8VT)@````"-O"<`````58GE@^PHAR+2Q"#P`2)1>R+1@2#Z`&) -XM1?")^.BL____BUWTBW7XBWW\B>Q=PXGXB''1"0$(@```(D\).CA<```B3PDZ#EQ -XM``"+0P2)1"0(C4,(B40D!(L'B00DZ&'Y__\QP.N1C;8`````C;PG`````%6) -XMY593@^PPBU4(QT7D`````,=%Z`````#'1>P`````A=)T;(L"B47PBT($B47T -XMH=1O"0B%P'1(C77DQT0D!"(```")-"3H97```,=$)`2PD0@(B30DZ'7]_/^+ -XM#=1O"0B-5?")\.C%_O__@\`!?C")-"3HN/S\_X/$,%M>7<.0BT7TA7<.)]L=%\/AO"0C'1?0`````ZX^A@)@*"(M=\,=$)`P0#`D(QT0D"`0` -XM``#'1"0$"0```(D$).BX6_W_B5PD!(D$).A,50``ZYJ0D)"0D)"0D)"058GE -XMBT4(BU4,#[9(&(@*#[9(&8A*`0^V2!.(2@(/MD@5B$H##[9($(A*!`^V2!&( -XM2@4/MD@2B$H&#[9(%XA*"0^V2!R(2@H/MD@=B$H+#[9(%(A*#`^V2!J(2@T/ -XMMD@;B$H.#[9(%HA*#P^V2!^(2A`/MD@>B$H1#[9((HA*$@^V2""(2A#[9($HA*(@^V -XM2!>(2B`/MD`8B$(A7<.058GEBT4(78M`!(/P!,'H`H/@`<.-M@````"-OP`` -XM``!5B>6+10A=BT`()0`#```]``,```^4P`^VP,.0C70F`%6)Y8M%"%V+0`PE -XM``$``,-5B>53@^P$BUT(B1PDZ-IY_/^%P'0*@\0$6UW#C70F`(E="(/$!%M= -XMZ;][_/^-=@!5B>564X/L$(MU"(M=#.L*Z$=[_/^#."-U(HE<)`C'1"0$`0`` -XM`(DT).C2^OW_@\`!=-TQP(/$$%M>77`P``BU7@`````QT7L`````(E5S(E%R.MMNRT```"_`0```,9%TP&+5>R+LD`/"0B) -XM-"3HD7S\_XU\!P$!?>2+1>0[!>"7"@@/C<`"``"`?=,`#X2A`@``#[[#B70D -XM"(E$)`3'!"1E#0D(Z$Y1``"+5>R+@DP/"0B#P@R)5>R%P`^$P0(``(M5[(N" -XM2`\)"#M%X'1=C11`BT7(*T7,@WW@_XN$D$`M"0BZ`;H("`^$B@(``(E$)`B) -XM5"0$QP0D6PT)".CV4```BT7LBU7(*U7,BX!(#PD(B47@C01`BX2"0"T)"(D$ -XM).C>>_S_B47DB47HBU7LBT7@BXI$#PD(C11`BT7(*T7,C120B<@C@D0M"0B# -XM^`$9V_?3@^,KA8I(+0D(#X7R_O__A-L/E473=0N+1=B%P`^$-?___P^V?=/I -XMY/[__X/&!,=%W`(```#I+/[__X/&!,=%W`$```#I'?[__X-%V`&#Q@3I$?[_ -XM_\=%V`````#'1=P`````QP7H;PD(`0```(L6A=(/A$S^__^+1=R-?@3!X`*) -XM1<2+1=S!X`:)1<"+`H/X*P^$FP```(/X+<9%\P`/A(X```")%"2[0`\)".B$ -XM<```B<:A0`\)"(7`=1+K?XVT)@````"#PPR+`X7`=&^)="0$B00DZ`=X_/^% -XMP'7G@'WS*P^$F````(!]\RT/A,@```"+0PB+5<"+2P0K5<2-!$"-!(+WT2&( -XM1"T)""&(2"T)"(7_#X2.````BQ>%T@^$A````(L"@\<$@_@K#X5E____@\($ -XMB$7SZ6?___^A@)@*",=$)`QK#0D(QT0D"`(```#'1"0$"````(D$).BC5?W_ -XMB70D!,<$)#8``!")1"0(Z._S_/^`??,K#X5H____BT,(BU7`*U7$BTL$C01` -XMC02""8A$+0D(]]$AB$@M"0B%_P^%7UWI^_7\_XM# -XM"(M+!(M5P"M5Q(T$0(T$@HG*]]()B$@M"0@AD$0M"0CI,?___XET)`3'!"1G -XM#0D(Z+1.``#I8?W__\=$)`A%R0@(BU7HQP0D8`T)"(E4)`3HE$X``(M%[`-] -XMZ(E]Y(NP0`\)".D1_?__ND7)"`CI;/W__\<$)`H```#HBA'^_XM%U(E%"(/$ -XM3%M>7UWI:/7\_\=%V`````#'1=P`````Z5G\__^0D)"0D%6)Y8/L&,<$)``` -XM``")7?B)=?SHY';\_XLU]&\)",=$)`Q\$@D(QT0D"`P```#'1"0$$P```(G# -XMH_!O"0BA@)@*"(D$).A65/W_B=HI\HE<)`B)="0$B50D#(D$).C>30``BUWX -XMBW7\B>Q=PXUT)@!5B>6+10B%P'0)H>QO"0B%P'0"7<-=Z7%X_/^0C70F`%6X -XM`@```(GE@^P8BQ7H=@H(A=)U!:$$=@H(QT0D"`X```#'1"0$J1()"(D$).CJ -XM6#[!B)=?R+=0P/KW4(B5WXA?9U!&:^`0"+ -XM#?1O"0B%R70UB30DZ$]W_/^%P(G#="")="0(B1PDQT0D!`````#H=73\_XG8 -XMBW7\BUWXB>Q=P^AH____Z]G'!"0`````Z,9U_/^C]&\)".NXC78`58GE4X/L -XM!(M="(7;=0*S`:'T;PD(A6#[!B)7?B+70R)=?R+ -XM=0B%VW4"LP&A]&\)"(7`=$&%]G0>B5PD!(DT).@K;HJO[__XG8BW7\BUWXB>Q=P\<$)`````#H -XM_G3\_Z/T;PD(ZZR0D)"0D)"0D)"0D%6)Y8/L&*&`F`H(QT0D#+@2"0C'1"0( -XM#````,=$)`04````B00DZ&52_?^)!"3H_4L``*&`F`H(QT0D#.@2"0C'1"0( -XM#0```,=$)`04````B00DZ#A2_?^)!"3HT$L``*&`F`H(QT0D#!P3"0C'1"0( -XM#@```,=$)`04````B00DZ`M2_?^)!"3HHTL``*&`F`H(QT0D#%03"0C'1"0( -XM#P```,=$)`04````B00DZ-Y1_?^)!"3H=DL``*&`F`H(QT0D#)03"0C'1"0( -XM$````,=$)`04````B00DZ+%1_?^)!"3H24L``*&`F`H(QT0D#-03"0C'1"0( -XM$0```,=$)`04````B00DZ(11_?^)!"3H'$L``*&`F`H(QT0D#/P3"0C'1"0( -XM$@```,=$)`04````B00DZ%=1_?^)!"3H[TH``*&`F`H(QT0D#"@4"0C'1"0( -XM$P```,=$)`04````B00DZ"I1_?^)!"3HPDH``*&`F`H(QT0D#&`4"0C'1"0( -XM%````,=$)`04````B00DZ/U0_?^)!"3HE4H``*&`F`H(QT0D#)04"0C'1"0( -XM%0```,=$)`04````B00DZ-!0_?^)!"3H:$H``*&`F`H(QT0D#+04"0C'1"0( -XM%@```,=$)`04````B00DZ*-0_?^)!"3H.TH``*&`F`H(QT0D#.P4"0C'1"0( -XM%P```,=$)`04````B00DZ'90_?^)!"3H#DH``*&`F`H(QT0D#!P5"0C'1"0( -XM&````,=$)`04````B00DZ$E0_?^)!"3HX4D``,<$)`&Z"`CHU4D``*&`F`H( -XMQT0D#$P5"0C'1"0(&0```,=$)`04````B00DZ!!0_?^)!"3HJ$D``*&`F`H( -XMQT0D#'P5"0C'1"0(&@```,=$)`04````B00DZ.-/_?^)!"3H>TD``,G#B?:- -XMO"<`````58GE4XG#@^P4H8"8"@C'1"0,T!4)",=$)`@$````QT0D!!0```") -XM!"3HHD_]_XE<)`2)!"3H-DD``(/$%%M=PU6)Y5=64XG3@^P\B470C47LB47< -XMC47DB57LB4W,B474C47`!````QT78`0`` -XM`,=$)`1H/0D(B00DZ#[J___'1"0$,"H("(G'B00DZ'SP_/^+1=`/MA08@/H! -XM#X3O````H>"E"PB%P'0E#[;2ON"E"P@Y%>2E"PAT?K[@I0L(ZP4Y5@1T57B==6B<93@^PLQT7D```` -XM`,=%Z`````#'1>P`````BP"%P`^$L0```(U=Y,=$)`2PD0@(B1PDZ+'N_/^) -XM=?"+!H7`=%.-=?#K(XUV`(/X7G0EB40D!(D<).AO80``BT7P@\`$B47PBP"% -XMP'0K)?__/P"#^%QUUHDT).@.Z___@_C_=2)!"3H -XMQ?G__XD'BT7HB4<$@\0LB?A;7E]=PZ&`F`H(,?_'1"0,018)",=$)`@%```` -XMQT0D!!0```")!"3HG$S]_XD$).@T1@``@\0LB?A;7E]=PXUV`(V\)P````!5 -XMB>575E.#[%RA/&0)"(M]"(7`#X2+````C4<$B46TBU\$A=L/A,T#``"+`R7_ -XM_S\`@_@M#X6U`@``BT,$)?__/P"#^"T/A'T#``"-5PBY`0```,=%O,"K"PC' -XM1<``````QT7$`````,=%R`````#'1 -XM7UW#D(UT)@#_)(48%PD(Z`1'__^#Q%Q;7E]=P^CW2/__Z6O____'1<`"```` -XMBQJ#P0&)UH7;#X0S`P``BP,E__\_`(/X+0^%T@(``(M#!(U6!"7__S\`@_@M -XM=9*-40&-!)4`````C30'BQZ%VP^$_`(``(/"`8E5T(M%R(7`#X4=`@``BTW, -XMA*?````C478B50D!(D$).C\7@``C478B00DZ,'K_/^-5=B) -XM%"3H9NO\_XU-V(D,).@[7P``BT7<@\`!P>`"B40D!(M%V(D$).B#]___B47L -XMBT7R)!"3HQ^O\_XM%[(L0@?K_````B56X#X]T`0`` -XMBT7$A<`/A#(!``"+?R)!"3HF.'__XM% -XM[(D$).C=ZOS_Z2O^___'1<@!````D.E0_O__QT7$`0```(UT)@#I0/[__\=% -XMP`$```"-="8`Z3#^___H1D?__X/$7%M>7UW#QT6\P*0+".D7_O__QT7,`0`` -XM`.D+_O__BQ7@I0L(,=N%T@^$R?W__XVV`````(N#Z*4+"(E4)`3'!"1<%@D( -XMB40D".A&0P``BY/LI0L(@\,,A=)UV8/$7%M>7UW#QT6\P*L+",=%P`````#' -XM1<0`````QT7(`````,=%T`(```"-5>R)V.C$^___A<`/A=+^___I6OW__XD< -XM)(UT)@#HJ\3__X7`#X3:`@``BP:)!"3H26$``(E%[(D$).@::/S_B47PZ9S^ -XM__^+3="+1="+-(_!X`*%]@^$H`,``(M5M(L<`H7;#X3C`@``Z&_V__^+1>R) -XM!"3HI.G\_^GR_/__Z!KY__^+1>R)!"3HC^G\_^G=_/__@\$!B4W0Z5#]__^) -XMV.CX^/__C478B00DZ&WI_/_IN_S__[H"````L`C'1;S`JPL(QT7``````,=% -XMQ`````#'1<@`````QT7,`````.GW_/__H8"8"@@QV\=%V`````#'1=P````` -XMQT0D#&T6"0C'1"0(!@```,=$)`04````B00DZ%1(_?^)!"3H[$$``#'2#[:" -XMP*L+"#J#P*L+"'0/C4O_N,"K"PCHGOC__XG:@\,!@?L``0``==>Y_P```+C` -XMJPL(Z(+X__^A@)@*"&8QV\=$)`R$%@D(QT0D"`<```#'1"0$%````(D$).CJ -XM1_W_B00DZ()!```QT@^V@L"D"P@Z@\"D"PAT#XU+_[C`I`L(Z#3X__^)VH/# -XM`8'[``$``'77N?\```"XP*0+".@8^/__H8"8"@C'1"0,GA8)",=$)`@(```` -XMQT0D!!0```")!"3H@T?]_XD$).@;00``QP0D`````.COZO__H8"8"@C'1"0, -XMN!8)",=$)`@)````QT0D!!0```")!"3H2D?]_XD$).CB0```C478B00DZ$?# -XM___I-?O__X-[!"T/A5G^__^+0PB-@,``(U%V(D$),=$)`0;````Z.E:``"+!HU5V(D4 -XM)(E$)`3HV%H``.G7^___C578QT0D!!L```")%"3HP%H``(U-V(ET)`2)#"3H -XM(5T``.FP^___@_@_NG\````/A8O[___ICOO__Z&`F`H(BQ['1"0,S!8)",=$ -XM)`@!````QT0D!!0```")!"3H0D;]_XE<)`2)!"3HUC\``.GN_/__C47LB00D -XMZ";!___IZ?O__X-]P``/A>X```"+'>"E"PB_X*4+"(7;=17I?0$``(UV`(/' -XM#(L?A=L/A&T!``")-"3H&V```(E<)`2)!"3HNV?\_X7`==L/ME\$A-L/A)?[ -XM__^+5<@/ML.%T@^%A0(``(-]\`$/CJH"``")!"3H?]O__\=$)`@`````B40D -XM!(U%[(D$).CHWO__BT6\BU6XQ@00->E1^___BUV\`UVX@#LU#X0J`0``Q@,! -XMZ3K[__^+=R)!"3HS^C__^D2^___ -XMC4W8B70D!(D,).AK60``Z6KZ__^)-"3HFF/\_^D'^O__#XP;_O__@WW``@^/ -XM$?[__XU=Y(GPB=KH;??__X7`#X3-^O__QT0D!#`J"`B+1>2)!"3H0N;\_XM- -XMR(7)#X2L````B1PDZ,_:__^+3<")3"0(B40D!(U%[(D$).AIP/__@\`!#X0U -XM`0``BT7DB00DZ+7E_/^+5;R+3;C&!`HUBT7LB00DZ%#E_/_HV[C__^F9^/__ -XMC47LB00DZ)O`___I3OK__Z&`F`H(QT0D#/\6"0C'1"0(`P```,=$)`04```` -XMB00DZ&%$_?^)="0$B00DZ/4]``#I&/K__XU%[(D$).BEV___Q@,!B?;I`_K_ -XM_XD<).@CVO__BU7`B50D"(E$)`2-1>R)!"3H;=W__XM%N(M-O,8$`36+1>R) -XM!"3HN.3\_^D&^/__C47LQT0D!&@]"0B)!"3H\-[__\=$)`0P*@@(B<:)!"3H -XM+N7\_XL5X*4+"(72=#LQV^L-BY/LI0L(@\,,A=)T*HM%[(M-O(L`#[8$"#F# -XMY*4+"'7?B50D"(ET)`3'!"3C%@D(Z#L]``#KR8DT).A!Y/S_D.E3^?__H8"8 -XM"@B+7>S'1"0,[18)",=$)`@"````QT0D!!0```")!"3H8T/]_XE<)`2)!"3H -XM]SP``.F=_O__#("-3=B)1"0$B0PDZ'%7``#IR)!"3HPN/\_^EM_O__C47LB40D!(M-O(D, -XM).C+VO__BT6\BU6XB!P0Z;7X__^0D)"0D)"0D)"0D)"053'`B>5=PXGVC;PG -XM`````%4QP(GE7<<%_&\)"`````##D)"0D)"0D)"0D)"0D)"058M*"(GEB5`$ -XMB4@(B4((BU`(B4($7<.)]HV\)P````!5B>56B=93BPB)TX7)="60BQ.%TG0> -XM.=%T/(VV`````(/Y('0;@\`$BPB%R77RA_/^) -XMP^EX____C;8`````58GE5U93@>P<(0``C46TC5VLQT74`````,=%V`````#' -XM1=P`````QT6L`````(D$).AF9/S_QT6P`````,=$)`@`````B5PD!,<$)!0` -XM``#H1V/\_XU%X(D$).B`*O[_Z(=?_/^%P(G'#X4V`0``BT7@C5W$B00DZ*/D -XM_?_'1"0$H$$(",<$)`X```#H>V/\_XD<).@#9/S_B1PDQT0D!`X```#H`U_\ -XM_XE<)`2-G0S____'1"0(`````,<$)`(```#HE5[\_\<$)`(```#HZ6/\_XM% -XMY,=%[(````")7"0$B84`W___C47LB40D"*&T=@H(B00DZ/%A_/^#P`%T%P^V -XMA0W___\\'`^$H@$``#P"#X2:`0``Z*1G``"%P(G&='(/M@"$P'1K/#IT9\=$ -XM)`0Z````B30DZ$]@_/^%P(G#=`/&``")-"2)]^@\8?S_@\`!#X2E`0``B3PD -XMZ*MD_/^%P(G#=0OK*XVT)@`````!QXN%`-___XE<)`B)?"0$B00DZ(C@_?^% -XMP`^(8@$``"G#==S'!"0`````D(UT)@#H-V/\_XM%Y(V=#-___XD$).AJX_W_ -XMZQN%P`^$KP```(E$)`B-1=2)7"0$B00DZ%U6``"+1>#'1"0(`"```(E<)`2) -XM!"3HQN#]_X/X_W7)QT78`````,>%_-[__P$```"+1>"-=?")!"3H$N/]_^L5 -XMZ*=@_/^#.`1U*(VV`````.B[4```BX7\WO__B70D!(D\)(E$)`CH@5W\_X/X -XM_XG#=,Z-1=3'1"0$T)$("(D$).A;X/S_.=]T(HU%U(D$).BLW_S_@<0<(0`` -XM6UY?7__\`````ZX6+1?"H?W77P?@(AR_('`)",=$)!@"````QT0D -XM%`````#'1"00`````,=$)`P!!```QT0D""!P"0B)1"0$B1PDZ#]@_/_I9_[_ -XM_\<$)`$```#HWF'\_SG>#X2._O__C46,N0@```")A?C>__^+O?C>__\QP/S' -XM1>@`````\ZO'19``````QT64`0```,=%C`,```")-"3HR6+\_XG#Z(9>```Y -XMPP^#K0```(U%Z(E$)`R-18R)1"0(QT0D!`````")-"3H+&/\_X7`=$C'1>@` -XM````Z13^__^)1"0$B30DZ*3F_?_'1"0$`````(G#C47HB40D#(U%C(E$)`B) -XM'"3H\&+\_XD<)(/X`1G`(47HZ'3I__^+1>B%P`^$S?W__XM0%(72#X2R```` -XMB50D!+\@<`D(QT0D"`$$``#'!"0@<`D(Z&U=_/^+1>B)!"3H\F#\_^E:_?__ -XMC9T,W___QT0D!``!``")'"3H5V'\_X7`=:/&A0O@__\`QT0D!"X```")'"3H -XM7%W\_X7`B<=TAL=$)`0N````B30DZ$9=_/^%P`^$;O___X!X`0"-6`%T%(E$ -XM)`2)/"3HJ5[\_X7`#X45____QT0D!"X```")'"3H$5W\_X7`=<_I./___XD$ -XM).A@8/S_C70F`.G__/__C70F`(V\)P````!5B>6#[`C'!"0!````Z"I@_/^- -XMM"8`````C;PG`````%6)Y8/L&(M%"(E=](EU^(E]_(D$).BV5@``B00DZ.[E -XM_?^)QHM%#(D$).BA5@``B00DZ-GE_?^)P^B^7?S_QP``````B5PD!(DT).B< -XM7/S_BQ= -XMPY"-="8`B30DZ.CG__^)'"3HX.?__^AG7?S_BP")!"3H#5O\_\=$)`1(&`D( -XMQP0D-@```(E$)`CH2=K\_^NCC;0F`````%6)Y8/L&(M%#(/X!`^$@````(/X -XM(W0,@\`!=`?)N/_____#QT4,`````,=$)`@`````QT0D!`,```"+10B)!"3H -XM=UG\_X/X_W32@^#[B44,B40D",=$)`0$````BT4(B00DZ%59_/^#P`%TL(U% -XM#,=%#`````")1"0(QT0D!'YF!("+10B)!"3H'UK\_X/``72*R3'`PXUV`(V\ -XM)P````!5B>575E.#[!R+70B%VP^$U````(M%"(L`B47LQT0D!,28"@C'!"20 -XM+PD(Z,!#_O\]^&\)"(G#="&)!"3HZUG\_XE<)`2)1"0(BU7LB<:)%"3HAEO\ -XM_X7`=&NA`'`)"(7`B47P=%6+'21T"0@Q_XGVBW,(B70D"(M#!(E$)`2+1>R) -XM!"3H4UO\_X7`=2.+1>R-%+"+`H/X+W0$A7UW#BPT`<`D(A575E.#[!R+50B+`H/X*P^$I@```(/X+0^$G0```(L= -XM)'0)"(7;#X1F`0``H0!P"0B+-21T"0B-!$"-/(8Y_G-CBT4(BP")1?#K#HUV -XM`(7`>$R-7UW#C78`B=\Y_G*UBT4( -XMB00DZ(]1``")!"3HY]G]_X7`=1+'1>P`````BT7L@\0<6UY?7<.+0!R)!"3H -XMEE,``(D$).@^3P``A<")1>QTVXL=`'`)"(M5"(T<6\'C`HD4)`,=)'0)".@: -XM3P``B0.A`'`)"(M5[(L])'0)"(T$0(E4AP2+-0!P"0B)%"3HT57\_XT<=H/& -XM`<'C`HE$.PB)-0!P"0C'1"0,,$8(",=$)`@,````B70D!(D\).A"5/S_H0!P -XM"0@[!9A-"0@/A5G___^#P`JCF$T)"(T$0,'@`HE$)`2A)'0)"(D$).AVX___ -XMHR1T"0CI,/___\<$)'@```#H$./__Z,D=`D(Z83^__^-M@````!5B>575E.# -XM["S'1"0$Q)@*",<$)"`^"0CH\S[^_XE%W,=$)`3$F`H(QP0D8#X)".C#H4_/__PG#B47D="R+'0"8"@B%VW0B -XMB?:+0WB)-"2)1"0$Z#'6_?^%P'0'BT,4A+!H/X.W01.7T(=-^+ -XM?PB+-XL&@_@[=>^+?P@Y?0AUUX/$+%M>7UW#QP0DF#X)".@]5/S_B47HBP>) -XM!"3H,%3\_XE%[(T$A00```")1"0$QP0D`0```.A:X?__B47PBP>)1"0$BU7P -XMB10DZ`)3_/^+=>2%]@^$,P(``(L'B00DZ-'@___'1"0$%````,<$)`$```#H -XM'>'__XD'QT0D!(`R"0B)!"3HQU+\_\=$)`0,````QP0D`0```.CWX/__QT0D -XM!!@```#'!"0!````B<;HX>#__XD&QT0D!+0^"0B)!"3HBU+\_XGPB?KHYO'_ -XM_XL&BP"#^`IT$8/X.W0,BW8(BP:+`(/X"G7OQT0D!`P```#'!"0!````Z)C@ -XM___'1"0$"````,<$)`$```")P^B"X/__B0/'1"0$P#T)"(D$).@L4OS_BU8$ -XMB=CHAO'__\=$)`0,````QP0D`0```.A2X/__QT0D!`@```#'!"0!````B) -XM!"3HGM[__XM5[,<$)`$```"-!)4(````B40D!.CDWO__B0?'`"4```"+1?") -XM1"0$BP>#P`2)!"3HA%#\_XM?"(L+BP&#^#L/E<*#^`IT>X32='V#Q"Q;7E]=PXG?Z6'\__^-="8`58GE5U93@^P\QT0D -XM!,28"@C'!"3D2`D(Z#,Z_O^%P`^$[````(M%"(MX"(L'@S@[#X3C````.7T( -XM#X32````QT78`````,=%W`````#'1"0$`$D)"(L'B00DZ-U/_/^%P`^%XP$` -XM`(M7"(E5U(L2BP*#^"V)1>`/A+$```"#?>`MBW74#X3Z````BT78A`[#X2/`0``BWW4.7T(#X2#`0``BW\(BP>+`(/X.XE%X'08 -XM.7T(#X1N`0``BW\(BP>+`(/X.XE%X'7HBW\(.7T(#X4\____@\0\6UY?7<,Y -XM?0AT\XM_"(L'@S@[#X4*____Z^N+3=R%R0^%1/___XMUU(M%W(M*!(7`#Y3` -XMA)TX/Y:0^4PH/Y9HM+"`^4P`G0@^`!B47<#Y3`@\,$A"#?>`[#X5Q_O__BWW4@WW@.P^%FO[__^F2_O__A,`/A=;^__^0C70F`.GQ -XM_O__BP>+`(/X"G1Z@_@[='4Y?0AT<(G[ZPV#^#N0=#LY=0AT+XGSBU,$BT,( -XMB4((BT,(B5`$BP.)!"3H#MO__XMS"(D<).@#V___BPZ+`8/X"G7&@_@[=2:+ -XM#HM6!(M&"(E""(M&"(E0!(D,).C7<,YUG;CZ]20C70F`#'VZYS'!2AT"0C04`@(BQ.)QHM"!(7` -XM#X5/____ZX&0A?8/A'C___\IQHVV`````.EK____B<;'!2AT"0A040@(Z5K_ -XM__^-=@"-O"<`````58GE@^P(_Q4H=`D(QP0D`0```.BH_O__R<.-M@````!5 -XMB>6#[!C'!"16&`D(Z!XG``"AY)D+"(7`=`7H\$___Z&T=@H(B00DZ"/1_?_' -XM1"0(`@```,=$)`1@+@D(QP0D`"X)".CG/O[_QT0D!`````#'!"0`````QP7D -XM=0D(`0```,<%A'<*"`````#HGVW\_\G#C;8`````C;PG`````%6)Y5=64X/L -XM?*$LF0L(B00DZ#K/_?^%P(E%D`^$PP$``(MX!(7_#X2X`0``QP0D`````(UU -XM\^CE_?__QP0D"@```.B)Z?W_QT6,`````,=%M`$```"-1;R)!"3H[$_\_XU% -XMG,=%N`````")1"0(C46TB40D!,<$)`(```#HRT[\_XU%S(D$).C`3_S_C47, -XMQT0D!`(```")!"3HO4K\_XU%W(E$)`B-1!0CHE,W\_XU%W(D$),=$)`1@'@4(Z('-_/_HK$___\=$)`0" -XM````QP0D8Q@)".BXS?W_B47L@\`!#X7M````H;1V"@B)1>S'1"0$;!@)",<$ -XM)/O>"`CHD"4``.A[YOW_QP4P=`D(`````.L;#[9%\SP*="X/OL")1"0$QP0D -XM+'0)".C$0```QT0D"`$```")="0$BT7LB00DZ/W,_?^%P'_*QP0D+'0)".C] -XM0```C46TB00DZ$+,_/^+'2QT"0B)?"0$B1PDZ,Q,_/^)?"0$B00DZ%!-_/^% -XMP'1IBT60BQBA@)@*",=$)`QV&`D(QT0D"`(```#'1"0$%@```(D$).A&*_W_ -XMB5PD!(D$).C:)```@T6,`8-]C`4/A6K^___HE_W__X/$?%M>7UW#C47LQT0D -XM!$`>!0B)!"3H7,S\_^D#____B1PDZ*M/_/_'1"0$`````(D<)(E$)`CHUTO\ -XM_Z&$=PH(A2A*)H+"(E%X*$DF@L(B47"0B%P'02B00DZ/?5___'!8!>"0@`````QT7L^&\)",=$)`0,````QP0D -XM`0```.@RUO__B<:+10R)!"3H!4(``(D&@WT(`0^$``(``,=$)`0,````QP0D -XM`0```.@%UO__B<.+11")!"3HV$$``(ES!(EU](E=\(E>"(D#C47LB4,(B48$ -XMC5WLQT0D!)#I!0B)'"3H[LK\_\=$)`3$F`H(QP0D]"X)".@Z,O[_B00DZ$(P -XM_O^)'"2)1;#HA^/]_XM%],=$)`@`````B5PD!(D$).@`X/W_QT0D!$`K!@B) -XM1:R)!"3HGR)!"3HX\C\_^@^[_W_BT6PB00DZ',Q_O_'1"0(`@`` -XM`,<$)/0N"0B)1"0$Z&LY_O^#Q&!;7EW#C70F`.@K!```Z[OH!`4``*$\=`D( -XMAOIC47LB77PB77TB48$B48(Z23^__^0C70F`%6)Y8/L&(E=^(EU_(MU -XM"(,%Q*P+"`''1"0$L)`(",<$),2L"PCH]LC\_XL=0'0)"(7;=3.+#>"9"PC' -XM!4!T"0@!````AQ=Z1G(_/_' -XM1"0(U#<)",=$)`2`-PD(QP0D`@```.BM_/__QT0D#/08"0C'1"0(#@```,=$ -XM)`06````H8"8"@B)!"3H*"?]_XD$).C`(```ZY;'1"0$E'8*",<$)-0W"0CH -XM6B_^_X7`#X1Z____BQV`=PH(B70D",=$)`34-PD(QP0D`@```.A$_/__B1V` -XM=PH(Z5'___^)]HV\)P````!5B>53@^PDQT0D!+"0"`B#!<2L"P@!QP0DQ*P+ -XM".C^Q_S_H41T"0B%P'4UH>"9"PC'!41T"0@!````A"9"PC'!4QT"0@!````A6#[!C'1"0$L)`("(,%Q*P+"`''!"3$ -XMK`L(Z/_$_/^+#3QT"0B%R74LBQ7@F0L(QP4\=`D(`0```(72=&/'!"3$K`L( -XMQP4\=`D(`````.@KQ/S_R"+%0B:"PB)1=RA!)H+"(E5V(L5`)H+"(E%U*&$=PH( -XMB570BQ7`F`H(QP6$=PH(`````(E%R(E5Q.@MO_S_QP0D`)H+"(E%S.C*0/S_ -XMA<`/A)P```#'!"0!````Z&KR__^+52)%1B: -XM"PB+5>"C%)H+"(M%W(D5$)H+"(M5V*,,F@L(BT74B14(F@L(BU70HP2:"PB+ -XM1<2)%0":"PB+5?]_\<$)`````#H%43\ -XM_XM%",<%R*P+"`$```#'1"0$`0```(D$).@L\/W_A,<$)(0` -XM``")1"0$Z+6^_/_KNXUV`%6)Y8/L6(U%Z(E%Y(U5W(E%U(M%"(EU^(UUT(E= -XM](E]_(M]#(E5V(EU\(EUX(E5[,=%T/AO"0C'1>CH10D(QT0D!)1V"@B)!"3H -XM4BC^_X7`B<-T+(L`A564X/L$*%@90D(BUT(AB7E/__BT,$B00DZ/PX``") -XM!"3H-,C]_\=$)`0P*@@(B<:)!"3H`L#\_XM#"(D$).C7.```B00DZ`_(_?_' -XM1"0$,"H("(G#B00DZ-V__/^)7"0$B30DZ$&M__^)=0B#Q!!;7EWI([_\_XUV -XM`%6)Y5.#[`2A8&4)"(M="(7`=07H&)3__XU#!(E%"(/$!%M=Z=BE__^0C;0F -XM`````%6)Y8/L"*%@90D(ACLD___R>D6L/__C;8`````58GE5U93@>R< -XM````BT4(C5`$BT`$A<`/A(@%``")%"3HNVO]_XE%@(D$),=$)`3P(P8(Z#B_ -XM_/^+58"+`H7`="*#."T/A*T"``")T.L.B?:#P`2#.BT/A)L"``"+4`2%TG7M -XMQT7H`````(U-Z,=%[`````#'1?``````QT0D!+"1"`B)#"3HY;[\_XM%@(L0 -XMA=(/A`0&```Q_\>%=/___P````#'A7C___\!````ZV>)-"3HF#<``(U5B(E4 -XM)`2)!"3H)3[\_X/``0^$L@$```^W19"+G7C___\E`/```#T`0```#X2````` -XMB30DZ-Z]_/^+C73___^+18"+5(@$@\$!@X5X____`8F-=/___X72#X0Q!``` -XM,<"#/=B7"@@"B10D#Y3`B40D!.C1COS_QT0D!#`J"`B)QHD$).@OOOS_B30D -XMZ,/POC5#\#X5:____.=8/A%+____'0/P`````Z4;___\YO73___]T -XM,H7_#X4:!```QT0D#`````"+A73___\I^(E$)`B+58#'!"3X;PD(C02ZB40D -XM!.BL;?[_BY5T____A=)T%HM-@(M!!(7`=`S'!"0*````Z!S9_?^)="0$QP0D -XMJQ@)".CL%0``QT7L`````(L&AB+1>R#Z@2-!(*!."\``$`/A,@```"- -XM3>C'1"0$+P```(D,).@9,```C47HB00DZ&XP``"-5>C'1"04`````,=$)!#X -XM;PD(QT0D#`````#'1"0(_P\``,=$)`0`````B10DZ#N._O^+O7C___^)^^EH -XM_O__Z/4\_/\YO73___^+&'0RA?\/A7\#``#'1"0,`````(N%=/___RGXB40D -XM"(M-@,<$)/AO"0B-!+F)1"0$Z(UL_O^)'"3H83K\_XET)`3'!"2B&`D(B40D -XM".CA%```B[UX____B?OI_OW__\<`+P```.E+____H91W"@B%P`^%)0,``*&` -XM7@D(AB)4`B)1>R)%"3'1"0$D.D% -XM".C/NOS_C47HQT0D"`````")1"0$BT7PB00DZ`70_?_'1"0$0"L&"(G#B00D -XMZ*.Z_/^+-8!>"0B%]G0,QP0D````0.B=M_S_BQ74EPH(,<#'1"00`````,=$ -XM)`P`````QT0D"`````"%T@^?P(/H`0G"B50D!(D<).A7!/[_C57HB10DZ*RY -XM_/^+#91W"@B%R0^%2`$``(M%@(D$).B3N?S_@<2<````6UY?7<.-5>B)%"3H -XM?;G\_SG[=-N%_P^%+`$``"G[QT0D#`````")7"0(BTV`QP0D^&\)"(T$N8E$ -XM)`3HS6G^_^NMQP5$3`D(>````.D,_O__QP0D"@```.A`U?W_Z=7[__^-7>C' -XM1>@`````QT7L`````,=%\`````")'"3HZRP``(D<),=$)`2PD0@(Z)NY_/^) -XM'"3'1"04`````,=$)!#X;PD(QT0D#`````#'1"0(_P\``,=$)`0`````Z*N* -XM_O^)'"3HP[C\_X'$G````%M>7UW#QP0D"@```.B\U/W_Z7#\__^#!<2L"P@! -XMQT0D!+"0"`C'!"3$K`L(Z"RY_/_IN_S__\=$)`0,````QP0D`0```.CSP___ -XMQP0D@$P)"(G#Z,4O``")7PB)>P2)WXD#Z;#]___'!"3$K`L(Z$JX_/_II_[_ -XM_\<$)`H```#H2=3]_^G#_O__C57HB10DZ"FX_/_IAO[__XUT)@!5B>575E.# -XM["R+10C'1>@`````QT7L`````,=%\`````"%P`^$\````(MP"#G>```` -XMBT`$.?")1>`/A-<```#'1=@`````C7WHQT7<`````(M%##E%W'QXBU40.57< -XM?W"+'HL#ASKZ(U%Z(D$).B<*@``@\0L6UY?7<.-="8`58GE@^P8BT4(QT0D"/___W_' -XM1"0$`````(D$).BO_O__R<.-M@````"-O"<`````58GE5U93@^PLQP0DL!@) -XM".AG,_S_A<")1>0/A.8!``"+1>3'1"0$+P```(D$).A)-OS_AB+7>@/M@/'1?``````A,!T+HL5W%T)"(L-X%T)"(GV#[;`.=!] -XM!_9$@35`=1*#1?`!BW7PBUWH#[8$'H3`=>"+=>0/M@;'1>P`````A,!T+XL5 -XMW%T)"(L-X%T)"(UV``^VP#G0?0?V1($U0'42@T7L`8M=[(MUY`^V!#.$P'7@ -XMH3QW"@@QVX7`#X3=````BQT`F`H(A=L/A,\```#'1>``````ZPJ+&X7;#X2Y -XM````BT,8.T,<=>Z+0PPE'R```#T`(```=`J#^`)T!8/X$'75BT-XB00DZ/0N -XM``")QP^V`(GZA,!T)(L-W%T)"(LUX%T)"`^VP#G(?0?V1(8U0'4*@\(!#[8" -XMA,!UZ,8"`(G^QT0D!"\```")/"3H[#3\_X7`=`.-<`&+1>R+5>2)="0$B40D -XM"(D4).A_,OS_A"#Q"R)V%M>7UW#BT7PBU7HB70D!(E$)`B)%"3H,#+\_X7` -XM#X42____ZZO'1>1-&PD(C78`Z2C^___'1>B^&`D(Z5#^__^0D)"0D)"0D)"0 -XMD)"0D)!5N@$```")Y8/L"(M-"/?!```@`'4J,-*%R70D@?G_````=SRAX%T) -XM"(M$B#2)PH'B````X'0-P>H>C;8`````R8G0PR4```0`@_@!&<"#R`&)PL'Z -XM'\GWTB'"B=##B?:)#"3HY#'\_^O#C;8`````58GE5U93@^P,BT4(BQB%VP^$ -XMI0```(L]X%T)"(G&ZRKWPP```$!U&('[_P```'=CBT2?-/;$$'5GC;0F```` -XM`(M>!(/&!(7;='&+10R%P'3/]\,```!`=>>!^_\```"0=T^+1)\T9H7`>=6! -XM^_\```!W4HN7UW#B1PDZ$$Q -XM_/_VQ!!TH('[_P```'6#[!B)=?R+=0B)7?CWQ@`` -XM(`!T$;O\____B=B+=?R+7?B)[%W#B30DZ(#^__^%P(G##XZ[````]\8```!` -XM==J!_O\````/AYD```"AX%T)"(M$L#3VQ`)TP(GP)?__/P`]_P```'^R@?[_ -XM````#X>/````H>!="0B+1+`TJ0``!`!T!XM5#(72=(^!_O\````/AWP```"A -XMX%T)"(M$L#3VQ`)T#HGP)?__/P`]_P```'YP@?[___\`N_G___\/CU;___^! -XM_O__``"S^@^/2/___X'^_P```+/[#XXU____Z37___^)-"3H#3#\_Y#I8O__ -XM__?&````0'6XC78`Z67___^)-"3H[R_\_XUV`.EJ____B30DZ-\O_/^-=@#I -XM??___X/^"KO]____#X3I_O__,=N#_@D/E<.#ZP+IV?[__XVV`````(V\)P`` -XM``!5B>575C'V4X/L#(M5"(L"AH> -XM@\,$`=:%P'7<@\0,B?!;7E]=PY"-="8`B00DZ#0O_/_KSI"0D)"0D%6)Y5W# -XMD)"0D)"0D)"0D)"A4'0)"#D%5'0)"%6)Y700#[95"(@0@\`!7:-0=`D(P\8` -XM`%W#C70F`(V\)P````!5B>575E.)RX'LC````(E%A`^V`H3`#X0(`0``B56, -XMQT6L`````.LD#[;`"T6LB00D_U6$B5W0@T6,`8M5C`^V`H3`#X3;````BUW0 -XM/"5UV(-%C`&+58P/M@+'19P`````/"T/A',!```\,`^$O@```#PNQD6;(`^$ -XML@```#PJD`^$OP````^VT(/Z?W<.]@25O5$)"`0/A?T$``#'1:``````/"X/ -XMA+0```#'1:3___]_,?\\(P^$;@$``#'2/&P/A#P!```QR3QZ#X0A`0``#[;` -XM@_A3B464="6#^%%T(#L%W%T)"'T8H>!="0B+=91F@WRP-``/B$$!``"-="8` -XMBT64@^@E@_A3#X;&````@T6,`8M5C(E=T`^V`H3`#X4E____@<2,````6UY? -XM7<.#18P!BTV,#[8!QD6;,#PJ#X5!____BS.#PP2#18P!BU6,B76@#[8"/"X/ -XMA4S___^#18P!BTV,#[8!/"H/A'0$```/MM"#^G\/AR[____V!)6]40D(!`^$ -XM(/___XM%C(D$).C&*_S_BU6,B46D#[8"#[;0@_I_=A_I!O___XUT)@"#18P! -XMBTV,#[8!#[;0@_I_#X?L_O__]@25O5$)"`1UX.G=_O___R2%P!D)"(/"`8E5 -XMC`^V`L=%G`$```#I>/[__X-%C`&Q`8MUC`^V!NG._O__@T6,`8M5C`^V`KH! -XM````/&P/A:W^__^#18P!L@*+38P/M@'IG/[__X-%C`%FOP$`BW6,#[8&Z7_^ -XM__^+A+`T!```N@$```")193IK_[__XUS!(EUT(L;A=N)79`/A`$$``")'"3H -XM`"W\_XM]H"G'BT6FW^O__C477B85X____B47,B1PDB70D!,=$)`@*````QT0D -XM#`````#H738``(M-S(/`,(@!@\$!B1PDB70D!,=$)`@*````QT0D#`````") -XM3)A7C___^)QXD<)(ET)`3'1"0("@```,=$)`P````` -XMZ&XX``"#P#"(!X/'`8D<)(ET)`3'1"0("@```,=$)`P`````Z&HZ``"#^@") -XMPXG6?[=\!8/X`'>PBUVHA=N0C70F`'0&Q@/___W;IBT6/___XE5S(M5S(G8@^`'#ZSS`X/`,,'N`XGQB`*# -XMP@$)V8E5S'7@A?]T&8MUS,8&,(/&`8GP*X5X____B77,Z7/\__^)T"N%>/__ -XM_^EF_/__C5,$B570BP.)QHG#P?X?Z7K^__^-0P0Q]HE%T(L;Z1?\__^-2P2) -XM3="+`\=%J`````")QHG#P?X?A?8/B5S^___WVX/6`/?>QT6H`0```.E)_O__ -XMJ0```$`/A&OZ__^+A7S___^)!"3_583I6OK__XU-V.LA@\`PB$'_B4W,B?*) -XMV`^LT`2#P0'!Z@2)PXG0B=8)V'05B=B#X`^#^`E^U8/`5XA!_XE-S.O3A?]U -XM$XM%S(U5UXF5>/___RG0Z:3[__^+3/___^F"^___B6#[`B+10B+ -XM312+51"C4'0)"`-%#(/H`:-4=`D(N+!M"`CH%_;__Z%0=`D(Q@``@\`!HU!T -XM"0C)PY"-="8`5;@@.P8(B>6+50B+30Q=Z>SU__^-M@````"-OP````!5N"`[ -XM!@B)Y8/L&(M5"(U-#(E-_.C']?__R<.0C70F`%6)Y8/L&(M%"(U-%(M5$(E- -XM_*-0=`D(`T4,@^@!HU1T"0BXL&T(".B4]?__H5!T"0C&``"#P`&C4'0)",G# -XMD)!5B>5=QP6`=`D($!L)",<%A'0)"!0;"0C'!8AT"0@8&PD(QP6,=`D('!L) -XM",<%D'0)""`;"0C'!91T"0@D&PD(QP68=`D(*!L)",<%G'0)""P;"0C'!:!T -XM"0@P&PD(QP6D=`D(-!L)",<%J'0)"#@;"0C'!:QT"0@\&PD(QP6P=`D(0!L) -XM",<%M'0)"$0;"0C'!;AT"0A(&PD(QP6\=`D(3!L)",<%P'0)"%`;"0C'!<1T -XM"0A4&PD(QP7(=`D(6!L)",.-M@````"-O"<`````58GE5U8Q]E.#["R+10R+ -XM.(D\).@$)/S_C02%!````(D$).BIL?__QT7P`````(E%[.L6H>!="0B+1)`T -XM]L0%=06#^U]U4H/&`8M%[(/'!(T$L(E%X(L?BT7L@>/___\_A?:)'+!U!8/[ -XM>W06#[;3@?K_````=KR)%"3H'2/\_Y#KNH/'!(L?@>/___\_B1C'1?`!```` -XMZ]2+1>#'``````"+5?"%TG00BP2+1`$$A -XM7UW#@\<$Z3;___^+1>R)!"3HTU#^_X7`=#"+$(72=,:)PX/Z"G07@_H-=!*+ -XM10@+51")!"2)5"0$Z*L7``"+4P2#PP2%TG7:ZYR+10R).(M%[(D$).@OK___ -XM,<#KG8UT)@"-O"<`````58GE5XG'5HG.4XG3@^P<@#H`="^-1?")7"0$QT0D -XM"`8```")!"3H!1\``(D\)`'#B?`+1?")1"0$Z$(7``"`.P!UT8/$'%M>7UW# -XMD(UT)@!5B>575E.#[$R+10S'1>``````QT7D`````,=%Z`````")1?"-112) -XM!"3H;2+\_\=$)`2PD0@(B47`C47@B00DZ`ND_/^+5?"+`H7`#X28````QT6\ -XM`````.M.D(UT)@"#?0@"#X3Y````H029"@C'!"0]W`@(@\`!B40D!.B>^___ -XMB<.+3;R)VHU%X.@?____B1PDZ#>N__^+1?"-4`2)5?"+0`2%P'1!@_@E=&6# -XM^%P/A)P```"#^%X/A),````[!8R8"@ATF`M%O(U5X(E$)`2)%"3H5A8``(M% -XM\(U0!(E5\(M`!(7`=;^-1>")!"3H"Z/\_XU5X(D4).BPHOS_C47@B00DZ$46 -XM``"#Q$Q;7E]=PXM:!(U*!(7;=*.)3?"+6@2-0]^#^%UV4H/[80^$`0<``(M% -XMO(/()8E$)`2-1>")!"3HYQ4``(M%\(L`Z77___^-1?")!"3HDI___^EE____ -XMBT48QP0D:````(E$)`3H^E;]_XG#Z0?_____)(5D&PD(@66\____^XM%\(GV -XMZ0?___^!3;P````$BT7PD.GW_O__BU6\BT7`QT0D!`(```")5"0(NA^%ZU&+ -XM2!2)R/?JB")%"2)PXE$)`3HM1<` -XM`.FA_O__BU7`BTV\BT(0BQ2%@'0)"(U%X.BH_?__BT7PZ8S^__^!9;S____? -XMBT7PZ7W^__^!9;S____WBT7PZ6[^__^#?0@!#X1W"```QT0D!,28"@C'!"2D -XM+PD(Z&0)_O\]^&\)"'0DBQ"%TG0>B<,+5;R-1>")!"2)5"0$Z,,4``"+4P2# -XMPP2%TG7DBT7PZ1W^__^#?0@!#X0*"```QP0D7!L)"#'VZ-4=_/^)PX7;=3OK -XM0)"#?0@!=`0\+G0UC57LB5PD!,=$)`@&````B10DZ!\<```!PXM%O`M%[(E$ -XM)`2-1>")!"3H6!0```^V`X3`=<&%]G24B30DZ.6K__^+1?")]NFG_?__@WT( -XM`0^$>@<``,=$)`3$F`H(QP0DO"X)".B="/[_/?AO"0@/A%G___^+$(72#X1/ -XM____B<,+5;R-1>")!"2)5"0$Z/03``"+4P2#PP2%TG7DZ2S___^A`)@*"+K_ -XM____AO(@4V\````((M%\.F3 -XM_/__@4V\````"(M%\.F$_/__@WT(`@^$IP8``(M-$(7)#X1*_O__BTV\C47@ -XMBU40Z'7[__^+1?#I6?S__X-]"`$/A+@%``#'!"1<&PD(Z!,<_/^)PX7;=`V+ -XM3;R)VHU%X.A$^___@WT(`0^%`?[__^D6_/__@4V\````$(M%\.D2_/__BT7` -XMBU@(QT0D!,28"@C'!"1@/`D(Z*P&_O^%P`^$L@0``(/["P^.YP,``(/[#+]P -XM````C78`?@.#ZPR+5<"+0@2%P`^%L`,``(M%"`L%:'0)"`^$=P,``,=$)`3$ -XMF`H(QP0D0$8)".A:!O[_BU6\B1PDB50D"(/X`1G`]]"#X`*)1"0$Z`W$__^) -XMPXE$)`2-1>")!"3H?!0``(D<).BDJ?__BW6\C57@B10D@\XZB70D!.CO$0`` -XMBU7`BT6\QT0D!`(```")1"0(BT($B00DZ,+#__^)PXE$)`2-1>")!"3H,10` -XM`(D<).A9J?__BT7PBP"#^'`/A"P$``"#^%`/A",$``#'1"0$Q)@*",<$)&`\ -XM"0CHK@7^_X7`#X3K`P``B?H/OL(+1;R)1"0$C47@B00DZ&\1``"+1;R#R&WI -XM__K__\=$)`3$F`H(QP0D]"X)".C0!?[_/?AO"0@/A(S\__^+$(72#X2"_/__ -XMB<,+5;R-1>")!"2)5"0$Z"<1``"+4P2#PP2%TG7DZ5_\__^#^V,/A-D#``#' -XM1"0$Q)@*",<$)&0S"0CH>P7^_SWX;PD(B<)/6!T"0C'!"1@=`D(Z$+! -XM__^C9'0)"*%D=`D(AL.@_@O#Y3`@\8$#[;``<&+ -XM!H7`=>R$TG0*,<"#/R\/E<`!P8M%\,=%Q`````"#P`2#.#`/A/4!``"+5?"# -XMP@2)5="+`KH!````B47,@^@Q@_@(=PR+5OV__^-5>")%"2)="0$Z'`-``"+1;R+5<#'1"0$`@```(E$)`B+ -XM`HD$).A$O___B<.)1"0$C47@B00DZ+,/``")'"3HVZ3__^F4^___LRZ-="8` -XMZ1S\__^+51C'1"0$30```(D4).C((```B")!"3HQ@P``(M#!(/#!(7`=>3I7?S__XM5&,=$)`1L````B10D -XMZ%0@``")P^GQ]?__BT48QT0D!&T```")!"3H.B```(G&B") -XM%"2#R#R)1"0$Z!0,``"#?<@)#XZ!````BT6\@\@YB40D!(U%X(D$).CU"P`` -XMBT6\C57@B10D@\@KB40D!.C@"P``BT6\C57@B10D@\@^B40D!.C+"P``Z")!"3HI@L``(L$G0A#"0B%P'7@ -XMBT7PQP5H=`D(`0```.GU]/__BT7(@\`P"T6\B40D!(U%X(D$).AQ"P``ZX_K -XM#9"0D)"0D)"0D)"0D)!5B>575E.#[!R+=0B+?0S'!"0`````Z`$4_/^#_@*) -XM1?`/A)0!``"#_@,/A'8!``"#_@$/A+T```#'1"0$Q)@*",<$)*@R"0CHD__] -XM_X/^`8G##XZT````H2QW"@B)!"3HFZ+__\=$)!``````BT7PQP4L=PH(```` -XM`(E\)`B)7"0$B40D#,<$)`````#HGO/__XL]Y)D+"(7_HRQW"@AU,HL0A=)T -XM&XG#C;0F`````(D4).@XM?W_BU,$@\,$A=)U[L<$)`````#H$EC__^CML/W_ -XMH7B9"PB)!"3H(*+__X7VQP5XF0L(`````'0O@\0<6UY?77UWI&K#]_XL=<'0)"(7;=":+/6QT -XM"0CIG?[__\=$)`3$F`H(QP0D`#,)".@1_OW_B"0B%P'02B00DZ&^@___'!8!> -XM"0@`````BT7")6`B)0P2+=P2#QP2)7>"%]G7*B=B- -XM5>2)4`B+5=R)1>B+`J/,=`D(BT((B00DZ$29_?^+1=R)!"3HZ9___XU5Y(D4 -XM),=$)`20Z04(Z%:5_/^-1>2)!"3H"Z[]_XM%[(U5Y(E4)`3'1"0(`````(D$ -XM).B!JOW_QT0D!$`K!@B)PXD$).@?E?S_BPV`7@D(A_?^-1>2) -XM!"3H-I3\_XL5S'0)"(72B57<=`R+0@0[1?`/C+W^__^+%81W"@B%TG0)H3AW -XM"@B%P'0>QP4X=PH(`````,<$),2L"PCH])/\_X/$+%M>7UW#Z+<6___H4C?_ -XM_XGVZ,LW___HQD?__^O*C70F`.B;%?__H!(7;#X2C`@`` -XMC58(B57@BP.#^"T/A,@!``"+=@B%]@^$>0,``*D```!`#X0Y`0``@_@K=`S' -XM!"1L````Z`&1_/^#PP2^`0```(D<).C!#```B00DZ&4/_/^)QXL#AR)5"00B70D#(E$)`B+1=S'!"0#````B40D!.BU[/__B1PDB<;H -XM6Y#\_\=$)`0P*@@(B30DZ.N0_/^+!H7`=!>)\XUV`(D$).CXK?W_BT,$@\,$ -XMA5=QP74=`D(`0```,.058GE7<<%V'0)"`$```## -XMD%6)Y5W'!=QT"0@!````PY!5B>6+10A=BP"CQ*P+",.058GE@^P(HL& -XM@\`$@\$$BQ&%TG0/.Q!T\(L+A6+10B+`(E%"%WI;YC__^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(L`B44( -XM7>E/F/__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+=0B+7@2%VW07,=N+!HL$ -XMF(/#`8D$).@7>D'F/__C;0F`````%6)Y8/L -XM&(E=^(G#B77\BT`(B=8[0P1T&(M3!(L#B320BUWXBW7\B>Q=PXVV`````(7` -XM=1_'0PA`````BT,(P>`"B40D!(L#B00DZ-&8__^)`^O%`<")0PCKX8VV```` -XM`%6)Y5.#[`2+70B+50R)V.B,____@T,$`8/$!%M=PXGV58GE4X/L%(M=",=$ -XM)`0`````B1PDZ,;___^+0P3!X`*)1"0$BP.)!"3HDR____B?95B>6#[!B)7?B)PXEU_(M`"(G6.T,$ -XM=!B+$XGQBT,$B`P"BUWXBW7\B>Q=PXUT)@"%P'453@^P$BUT(#[Y5#(G8 -XMZ(O___^#0P0!@\0$6UW#D%6)Y5.#[!2+70C'1"0$`````(D<).C&____BT,$ -XMB40D!(L#B00DZ*67__^#Q!1;753@^P4BUT(B=CHC?___XM#!(/``<'@`HE$)`2+ -XM`XD$).CVEO__@\046UW#58GE4X/L!(M="(M5#(G8Z%S___^#0P0!@\0$6UW# -XMB?95B>564X/L$(M="(MU$(M3"(GP`T,$.<)S.H72=16#^$!FN@`!QT,(0``` -XM`'86ND````")\`'2`T,$B5,(.=!W\L'B`HE4)`2+`XD$).A^EO__B0.+0P2- -XM%+4`````P>`"`P.)5"0(BU4,B00DB50D!.AF#?S_`7,$@\006UY=PU6)Y5.# -XM[!2+70R)'"3H.@C\_XE<)`2)1"0(BT4(B00DZ%O___^#Q!1;7<.0C70F`%6) -XMY593@^P0BUT(BW40BU,(B?`#0P0YPG,UA=)U$X/X0+)`QT,(0````'83ND`` -XM``")\`'2`T,$B5,(.=!W\HE4)`2+`XD$).C3E?__B0.+4P2+10P#$XET)`B) -XM1"0$B10DZ,4,_/\!)\I"-="8`BP*# -XMP@2%P'7WN/S___\IV"GP`<@!T(D$).C2E/__B=J)QXG!BP*#P@2)`8/!!(7` -XM=?*)\HL"@\($B4'\@\$$A6#[!B)7?B+70R)=?R+=0CWPP``(`!T%H@>N@$```"+7?B)T(MU_(GL7<.- -XM=@")7"0$B30DZ'`*_/^#^/]TV87`N@$```!^UXM=^(G"BW7\B>R)T%W#D(VT -XM)@````!5,<")Y5=64X/L#(M]"(7_#X21````BS7D=`D(A?8/A,$```"+'>1T -XM"0B#QP2)W@,UX'0)".L#@\<$BT?\A=\NAX'0)"(/H@*/@=`D(@\`&B40D!*'D -XM=`D(B00DZ$.3__^)Q@,UX'0)"*/D=`D(C5Z`ZYC&`P"AY'0)"(/$#%M>7UW# -XMH>!T"0B#Z("CX'0)"(/`!HE$)`2AY'0)"(D$).@`D___B<8#->!T"0BCY'0) -XM"(U>@.EM____QP7@=`D(@````,<$)(8```#HA9+__Z/D=`D(Z1____^-="8` -XMC;PG`````%4QP(GE5U93@^P,BWT(A?]T>:'L=`D(A(L=['0)"(G>`S7H -XM=`D(ZPB0C70F`(/'!(L'AAT -XM"0B#Z("CZ'0)"(/`!HE$)`2A['0)"(D$).A/DO__B<8#->AT"0BC['0)"(U> -XM@.NMQ@,`H>QT"0B#Q`Q;7E]=P\<%Z'0)"(````#'!"2&````Z,>1__^C['0) -XM".EH____C;8`````C;PG`````%6X!````(GE5U93@^P,BUT(BPN%R70:,,"- -XMM"8`````@\`!BQ2#A=)U]HT$A00```")!"3H=Y'__XG'BP.)_H7`=!^)!"3H -XM]?[__XD$).@MCOW_B0:+0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT -XM)@````"-O"<`````58GE@^PXBT40B77XBW4(B5WTB7W\B40D"(M%#(DT)(E$ -XM)`3HA`/\_X7`B<-^+(L&B40D!(U%[HE%X(D$).BZ!_S_.<-U#XMU##G;B=F+ -XM?>#\\Z9T!;O_____B=B+=?B+7?2+??R)[%W#C;0F`````%6)Y8/L&(E=^(M% -XM$(EU_(M=#(MU"(E$)`B)7"0$B30DZ&O___^#^/]T%X7`N@$```!^`HG"BUWX -XMB="+=?R)[%W#QT0D"`````#'1"0$`````,<$)`````#HWP+\_P^V`[H!```` -XM#0``(`")!HM=^(G0BW7\B>Q=PY"-M"8`````53'`B>564X/L((M="(7;=%'' -XM!?1T"0@`````@#L`=#&-=?2)7"0$QT0D"`8```")-"3H2?___\<$)/!T"0@! -XMPXM%](E$)`3HA/?__X`[`'72QP0D\'0)".C3]___H?!T"0B#Q"!;7EW#C;0F -XM`````%6X!````(GE5U93@^P,BUT(BSN%_W0:,,"-M"8`````@\`!BS2#A?9U -XM]HT$A00```")!"3HEX___XG'BP.)_H7`=!^)!"3H1?___XD$).CM^O__B0:+ -XM0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT)@````"-O"<`````58GE -XM5U93@^P,BT4(BQB%VP^$FP```(L5X%T)"(G'B57PZS*+5?"!_O\```"+E)HT -XM!```B57L=TB+5?"+A+(T!```.47L=4:#10P$BU\$@\<$A=MT7(M%#(LP.?-T -XMZ8'[_P```':]B1PDZ+X"_/^!_O\```")1>QVOXVT)@````")-"3HI`+\_SE% -XM['2ZA=N0=#2%]KH!````="$Y1>R)]G0SBU7L@\0,6UY?72G"B=##BT4,,=*+ -XM`(7`=0J#Q`R)T%M>7UW#@\0,NO____];B=!>7UW#B=HI\NOAD)"0D)!5B>56 -XM4X/$@,<$)$`Q"0CH["[^_\<$)"0Q"0B)QNC>+O[_QP0D9#$)"(G#Z-`N_O^% -XMVP^$J`$``(7V#X21`0``A<`/A'\!``")7"0_/^)!"3H2?O__\=$)`3$F`H(QP0DO$@)"(G#Z"/G_?^%P'0. -XMBP"%P'0(BP"%P'0"B<.)="00BT9$QT0D"`````")7"0$QP0D`0```(E$)`SH -XMGMO__\=$)`0P*@@(B<:)!"3HW'_\_XL&AR\````@ST`=0D(`<=$)`2PD`@(QP0DQ*P+"`^4P(F%3/___X,%Q*P+"`'H -XM9W_\_\=$)`3$F`H(QP0DO$`)".A3YOW_A<`/A((```"+`(7`B850____=':+ -XM?0B%_P^$:0$``,>%4/___P`````QVXU%[(D$).BY^OO_BU7LB=`K!01U"0@Y -XMPW\NC85@____B14$=0D(B40D!,<$))0="0CH;O[[_X7`=#"+=0B%]@^$>@$` -XM`(UV`,<$),2L"PCH-'[\_X'$O````%M>7UW#BT4(A0C70F`(G>BQZ%VP^$Y0```(U%P(E$)`2-1BK'1"0("``` -XM`(D$).C&^OO_@_@`?-4/A<````"+7>@[7D1\AXGZA-*-=@`/A6`#``")7D3' -XM1D@"````Z6O___^+A5#___^[6`(``(D$).AH%?W_BY50____B10DZ,I[_?^H -XM`0^$>O[__XN54/___XL"B00DZ+*'_?^%P`^$8O[__XN54/___XL"@\($B950 -XM____B00DZ.'B_?]KV#SI0?[__\=$)`S('0D(QT0D"`$```"A@)@*",=$)`0: -XM````B00DZ/3;_/_'1"0$E!T)"(D$).B$U?__Z4_^___'1"0$3````,<$)`$` -XM``#H^X?__XU5P(E4)`3'1"0("````(G#C4`JB00DZ*O[^_^-1=B)1"0$C4,S -XMQT0D"!````")!"3HD?O[_XM%Z(E#1(!]R`!U&<=#2`(```"+1@2),XE#!(D8 -XMB5X$Z6#^__^-5_S_BT4(A<`/A:?]__^+A5#___^%P`^$F?W__XN]4/___X/'"(M' -XM^(7`#X2%_?__BQ"%T@^$>_W__XM?_(7;#X1P_?__BS.%]@^$9OW__\=$)`3D -XM+@D(B00DZ"+Y^__'A4C___\`````A<`/A'L!``"+-2!U"0B+!H7`=13IL0`` -XM`(UV`(LVBQZ%VP^$H@```/9&2`AU[HM?^,<$).0N"0B)7"0$Z-?X^_^%P'0? -XMC48(B00DZ.SV__^)7"0$B00DZ``O_?^%P`^$[0```(U&*HM?_(D$).C*]O__ -XMB5PD!(D$).C>+OW_A<`/A*L```"+1DBH$'01H01U"0B)1D2+1DB#X.^)1DBH -XM`G1>@'X(`'18BX5,____A<`/A/````"#3D@(QD8(`(LVBQZ%VP^%7O___XN- -XM2/___X/'"(7)#X3A_O__Z6S\__^+70B%VP^%8?S__\=$)`SP'0D(QT0D"`(` -XM``#IT_W__Z@!=0BH!`^$$/___XN%3/___X7`=&*-1AF)1"0$C48(B00DZ.#^ -XM^_^#3D@(Z>O^__^+1_S'!"3D+@D(B40D!.C4]_O_A<`/A=#^___I-?___XU& -XM&8M?^(D$).C=]?__B5PD!(D$).CQ+?W_A<`/A*G^___I[/[__XGPB?;H._K_ -XM_^N3QT0D!.0N"0B)'"3HA??[_X7`#Y3`#[;`B85(____Z6+^__^)\.@/^O__ -XMZ03___^-1@B)1"0$C47(QT0D"!````")!"3H+/?[_X7`=0^)7D3'1D@)```` -XMZ>W[__^-557,?]64X/L#,=$)`3$F`H(QP0DO"X)".@QX?W_B00DZ*GR -XM___'!"0!````B<;H&_K__XL=('4)"(L#AS/&0P@`BQN+`X7`==[HB/C__X/$#(GX6UY?7<.-M"8`````C;PG```` -XM`%6)Y5=64X/L+(M=#(MU"(U#LX/X(78IQP0D`P```.B=A/__B!= -XM"0AF@WR.-`!Y"`^VA(XT!```B`,/MD(!@\,!@\(!A,!UTL8#`.E2____C48J -XMB44(@\0L6UY?7>FA@/W_@'XS``^$&P$``(U>,XD<).C(^_O_@\`!B00DZ+&# -XM__^)QP^V1C,/MM"#^G\/AB\!``#'1>0N````A,")_G12BQ7<70D(B57H#[[` -XM.T7D#X2R````#[8#/#H/MM`/A(\````Y5>A^&XL-X%T)"&:#?)$T`'D-A=)X -XM!XN4D30$``")T(/#`8@&#[8#@\8!A,!UM\8&`.FG_O__BT9(@^`'@_@"#X0- -XM`0``@_@$#X3*````@^@!#X6__O__H8"8"@C'1"0,HAT)",=$)`@)````QT0D -XM!!H```")!"3H4M;\_^D-____C489Z07___^0C70F`+HZ````QT7D`````(UT -XM)@#I7/___XD<),=$)`0Z````Z$?V^_^%P(G##X4T____Z6S___^A@)@*",=$ -XM)`Q1#@D(QT0D"`P```#'1"0$&@```(D$).CGU?S_B44(@\0L6UY?7>E(?_W_ -XMC48(Z9#^___V!)6]40D(!,=%Y``````/A"0CHGO'__\<$)``Q"0B)1"0$Z'[H_/_'!"2P'@D(Z(+Q -XM___'!"0D,0D(B40D!.ABZ/S_QP0DJ!X)".AF\?__QP0D9#$)"(E$)`3H1NC\ -XM_\<$)+8>"0CH2O'__\<$)$`Q"0B)1"0$Z"KH_/_)PY"0D)"0D)"058GE@^P8 -XMB5WXBUT,B77\BQ7,=0D(BW4(A=)T)*'0=0D(A<`/A(P```")70R+7?B)=0B+ -XM#=1U"0B+=?R)[%W_X<<%S'4)"`$```#'1"0$`0$``,<$)+L>"0CH[OG[_X7` -XMH]!U"0AT3L=$)`3''@D(B00DZ"7T^_^CU'4)",=$)`32'@D(H=!U"0B)!"3H -XM"_3[_Z/LK`L(QT0D!-@>"0BAT'4)"(D$).CQ\_O_H_"L"PCI=/___XM=^+C_ -XM____BW7\B>Q=PY"0D)"0D)"0D)"0D%6)Y5=6@^PPBT40BU44BW4(BWT,B47L -XMB<&)5>B+1>C'1=``````QT74`````(GZB77DA<")=?")?>!U%#GY=F")\/?Q -XMB570QT74`````.L0BTW@.4WH=AB)==")?=2)]HM%T(M5U(/$,%Y?7<.-=@`/ -XMO47H@_`?B478=4:+1>@Y1>`/A\D```"+3>PY3>0/@[T```"+3?")5=2)3=#K -XMP9"+1>R%P'4,N`$````QTO=U[(G!BT7@BU7H]_&+1>3W\>N"N"````"+5>PK -XM1=B+=>R+?>2)P8E%W-/JBT7H#[9-V-/@"<*+1>33Y@^V3=R)5?2+5>#3Z`^V -XM3=C3X@G0BU7@T^"+1>0K1>P;5>B)1?#I+____SGX=K``````BW4,QT7D`````(E%](G!BT4(A=*)UXE%['4C.?$/AI@```")\O?Q -XMB<$QP(E-X(E%Y(M%X(M5Y(/$(%Y?7<,Y\@^'M0````^]PH/P'XE%Z`^$E@`` -XM`+@@````BU7T*T7HB<'3Z@^V3>B)1?")^(M]]-/@"<*+1>S3YP^V3?")5=R) -XM\M/H#[9-Z-/B#[9-\`G0T^Z)\O=UW(G1B778B478]^QS%(UT)@`QR3'`Z2?___^-M"8` -XM````N0$````QP.D4____BT7L#[9-Z-/@.<9VAXM-V#'`@^D!Z?K^__^0D)"0 -XMD)"0D)"058GE5U:#[%"+30R+512+11#'1;@`````A@]<`]]_I!O____?:@]$`]]G'1<#_____Z>C^__^X(````(M5W"M%R(G! -XMT^H/MDW(B474B?B)UXGRT^`)QXM%W-/@#[9-U(E%K(M%V-/H#[9-R-/B"="+ -XM5=C3X@^V3=2)5>2)\M/J]_>)UO=EK#G60IP1G6BG^__\[1>1VI2M%K!GZZYZ0D)"0 -XMD)"0D)"0D)"0D%6)Y5=6@^PPBU4,BT4(BW40BWT4B570`````#XBD````A?\/B+H```")UXG&BU78B<&+ -XM1=R%_XE5\(E%['44.<9V08G0BU7L]_:)P3'`ZQ.-=@`[?>QV3S'),<"-M"8` -XM````B4W0BTWDB474BT70BU74A7UW#A?9U"[@!```` -XM,=+W]HG!BT7LB?KW\8G&BT7P]_&)P8GPZ[P/O<>#\!^)1>AU1#E]['<%.77P -XM3_____#XE+____D(UT)@")\(GZ -XM]]B#T@#WVO=5Y.DS____N"````")\BM%Z(G!T^H/MDWHB47TB?B)UXM5[-/@ -XM"<>+1?#3Y@^V3?33Z`^V3>C3X@^V3?0)T(M5[(E%S-/J]_>)553@^P$H1A/"0B#^/]T$C';_]"+@Q1/"0B#ZP2#^/]U\(/$!%M= -XMPY"0D(/L#.B\\_O_@\0,PP```````````````````````````````"1&'0@87)G=6UE;G0@"BUD"0EL;V%D(&1I2!S=&%C:R!F2D@"BUI"0EI;G1E6YT87@@;V8@=&AE(&9O;&QO=VEN9R!@9FEL92<@"BUQ"0EA8V-E<'0@ -XM4TE'455)5"!F;W(@&5C=71I -XM;VX@"BU8"0EL:6ME("UX(&)U="!I;F-L=61I;F<@8V]M;6%N9',@&ET(`H*4V5E('1H92!T8W-H*#$I(&UA;G5A -XM;"!P86=E(&9O2!I9@!);7!R;W!EF5D`"5S(&YO="!F;W5N9`!);7!R;W!E6YT87@`3F\@:&]M92!D:7)E8W1O0!$:7)E8W1O0!5`!%>'!A;G-I;VX@8G5F9F5R(&]V97)F;&]W`%9A`!"860@(2!F;W)M`$YO('!R979I;W5S('-U8G-T:71U=&4`0F%D('-U -XM8G-T:71U=&4`3F\@<')E=FEO=7,@;&5F="!H86YD('-I9&4`4FEG:'0@:&%N -XM9"!S:61E('1O;R!L;VYG`$)A9"`A(&UO9&EF:65R.B`E8P!-;V1I9FEE2`I)W,`5&]O(&UA;GD@*"=S`$)A9&QY('!L86-E9"`H`$UI0``07)G=6UE -XM;G0@9F]R("UC(&5N9',@:6X@8F%C:W-L87-H````07)G=6UE;G1S('-H;W5L -XM9"!B92!J;V)S(&]R('!R;V-E6YC(&9A=6QT.B!065T*0```%5S86=E.B!H:7-T -XM;W)Y(%LM)7-=(%LC(&YU;6)E2!A2!F:6QE(&YO="!E>&5C=71A8FQE``!5;FMN;W=N(&]P=&EO;CH@ -XM8"TE%@@72!;(&%R9W5M -XM96YT("XN+B!=```*36ES"4P.'@*`"5D(&AI=',L("5D(&UI!0CO6@4([UH%".]:!0CO6@4([UH%".]:!0CO -XM6@4([EX%"`=?!0@@7P4(.5\%"$-?!0A<7P4([UH%".]:!0CO6@4(:U\%"'I? -XM!0BS7`4([UH%"*%>!0BU7@4([UH%".]:!0C.7@4([UH%"-]>!0CO6@4([UH% -XM".]:!0CO6@4(ZUT%"%);!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4( -XMCEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B. -XM6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(2UL%"(Y:!0@I6P4(CEH%"(Y: -XM!0@B6P4(UUH%"`<`#0`````````````````````````````````@````)P`` -XM`"(````)````.P```"8````\````/@```"@````I````?````%X````E```` -XM`````'1CF4`=FUE;6]R>75S90!D97-CF4`)6IO8B`F`"5J;V(``"5S -XM.B`E6!0@ME@4(&98%"`^5!0@/ -XME@4(!98%"`^5!0@/E04(#Y4%"`^5!0@/E04(#Y4%"`^5!0C[E04(#Y4%"`^5 -XM!0@/E04(\94%"`^5!0CGE04(#Y4%"-V5!0ACF@4(0YH%"(B9!0B(F04((YH% -XM"(B9!0B(F04(B)D%"(B9!0B(F04(\9D%"-&9!0B(F04(B)D%"(B9!0A#F@4( -XM;)L%"&R;!0C%G`4(H)P%"&>;!0ALFP4(YYL%"&R;!0BG -XMFP4(@)T%"&R;!0ALFP4(2)T%"&R;!0ALFP4(YYL%"'1C&-E<'1I;VX`2TE,3`!+:6QL960`55-2 -XM,0!5&ET960`24\`07-Y;F-H&-E961E9`!81E-:`$9I;&5S:7IE(&QI;6ET(&5X -XM8V5E9&5D`%9404Q230!6:7)T=6%L('1I;64@86QA0!B&5C`&5X:70`9F<`9FEL -XM971E0!O;FEN='(`<&]P9`!P&5S -XM=6P`+20J`"@]?@!>*BTE)'M].B,`.EXD*BTE`````&YC:&%R^04(N@(&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``& -XM"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8( -XMI``&"*0`!@B:`@8(I``&"*0`!@B:`@8(I``&"*0`!@BD``8(I``&"*0`!@A\ -XM`@8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0` -XM!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@B:`@8(]1(&")42!@B5$@8(UPH& -XM"-<*!@C7"@8(UPH&")42!@C7"@8(UPH&"&T2!@C7"@8(UPH&"-<*!@C7"@8( -XMUPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8(UPH&"-<*!@C7 -XM"@8(UPH&"!(2!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<* -XM!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH& -XM"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8( -XMF0T&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<- -XM!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT& -XM"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08( -XM%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(T0T&"!<-!@@7#08(T0T&"!<- -XM!@@7#08(%PT&"-$-!@@7#08(%PT&"!<-!@BP$`8(IQ`&"-$-!@@>#P8(T0T& -XM"-$-!@@7#08(%PT&"*<0!@AW:61E7W)E860`.R8*`#P^*"D`)74E=0`E9#H` -XM"`A)W@@(3-X("$_>"`A%R0@(`````&YO="!A -XM(&1I0!U;G)E861A8FQE``HE4R`E0!"860@='=?8V]M;6%N9`H`:71E;7,`)7,Z($EN=&5R;F%L(&UA=&-H -XM(&5R!0<(G@4'"#P#!PB,`P<(QP,'"``````````` -XM````````````````@+X&"/#%!@C`NP8(H,4&"("^!@B`O@8((+X&"*#%!@A@ -XMNP8(D+L&","[!@C`NP8(`+L&"#"[!@C0N@8(H+H&"'"Z!@B`O@8(@+X&""#% -XM!@@`````````````````````P,`&",#`!@C`P`8(0,4&",#`!@C`P`8(P,`& -XM"$#%!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8( -XMP,`&"(#$!@@`````````````````````T,$&"/#"!@BPO08(4,4&"-#!!@C0 -XMP08(L+T&"%#%!@BPO08(L+T&"."Y!@A`O08(X+P&"+#)!@B`O`8(\+L&"&"Y -XM!@C0P08(T,$&")#$!@@*)7,@:6YT97)N86P@97)R;W(Z($D@9&]N)W0@:VYO -XM=R!W:&%T($DG;2!L;V]K:6YG(&9OF4M=V]R9`!C:&%N9V4M -XM8V%S90!C:&%N9V4M=&EL;"UE;F0M;V8M;&EN90!6:2!C:&%N9V4@=&\@96YD -XM(&]F(&QI;F4`8VQE87(M&-H86YG -XM92UP;VEN="UA;F0M;6%R:P!%>&-H86YG92!T:&4@8W5R'!A;F0@=F%R:6%B;&5S`&9O2US96%R8V@M8F%C:W=A2US96%R8V@M9F]R=V%R9`!I;G-E"UM971A`'%U;W1E9"UI;G-E2!E=F5R -XM>71H:6YG`')U;BUF9RUE9&ET;W(`4F5S=&%R="!S=&]P<&5D(&5D:71O<@!R -XM=6XM:&5L<`!S96QF+6EN2!D96QA>65D -XM('-U2UF;'5S:"UO=71P=70`5'1Y(&9L=7-H -XM(&]U='!U="!C:&%R86-T97(`='1Y+7-I9VEN='(`5'1Y(&EN=&5R2US -XM:6=T'0M=V]R9`!V:2UA9&0`=FDM -XM861D+6%T+65O;`!V:2UC:&"!C;VUM86YD`'9I+65N9'=O6%N:P!Y86YK+7!O -XM<`!E7V-O<'E?=&]?8VQI<&)O87)D`&5?<&%S=&5?9G)O;5]C;&EP8F]A5]P`!$ -XM96QE=&4@8VAA2!L:6YE````1&ES<&QA>2!L;V%D(&%V97)A9V4@86YD(&-U -XM&5C=71E(&-O;6UA;F0@86YD(&ME97`@ -XM8W5R'0@:&ES=&]R>2!L:6YE````17AP86YD('!A=&AN86UE7!E9"!T;R!T:&4@;&EN92!V97)B871I;0```$QO;VL@9F]R -XM(&AE;'`@;VX@8W5R&EC86P@8W5R -XM7!E -XM9`!6:2!R97!L86-E(&-H87)A8W1E6%N:V5D('1E>'0@=VET:"!Y86YK(&9R;VT@96%R;&EE -XM2D@4&%S=&4@8VQI<&)O87)D -XM(&)U9F9E'0@=V]R9"!T;R`G7%PG```H5TE.,S(@;VYL -XM>2D@0V]N=F5R="!E86-H("`!K;0!A;0!X;@!C;P!L:0!A9&0@ -XM;F5W(&)L86YK(&QI;F4`8FP`875D:6)L92!B96QL`&-L96%R('1O(&)O='1O -XM;0!C;&5A7-I8V%L('1A8G,`3G5M8F5R(&]F(&QI;F5S`$YU;6)E0!Y97,`8F%U9`!C;VQS``EF;VQL;W=I;F<@8VAA -XM3H@3G5L;"!E>'1E;F1E9"UK97D@;F]T(&%L;&]W960N -XM"@!!9&18:V5Y.B!.=6QL(&5X=&5N9&5D+6ME>2!N;W0@86QL;W=E9"X*```` -XM`$%D9%AK97DZ('-E<75E;F-E+6QE860M:6X@8V]M;6%N9"!N;W0@86QL;W=E -XM9`H``$]C=&%L(&-O;G-T86YT(&1O97,@;F]T(&9I="!I;B!A(&-H87(N"@`E -XM+3$U4RT^(`!N;R!I;G!U=`!3;VUE=&AI;F<@;75S="!F;VQL;WUU]`%5N8F]U;F0@97AT96YD960@:V5Y("(E4R(*``"5'0@(E1T( -XM")4="`B5'0@(E1T(")4="`B5'0@(E1T("-@<"`C8'`@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8 -XM'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@< -XM"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("(4="`C8'`@(V!P( -XM"-@<"`C8'`@(=1T("&4="`C8'`@(V!P("%4="`A%'0@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("#4="`C8'`@(V!P("-@<"`@G'0@(V!P("!L="`C8 -XM'`@(#QT(".D6"0A5;FMN;W=N('-W:71C:``E&%N>0!I>&]F9@!I;6%X8F5L`&ED -XM96QE=&4`;W!O'0`"5L>"!T;R`P>"5L>"`H)6QD*2X*`$]U="!O9B!M96UO -XM7,@=&\@96UA8W,@ -XM8FEN9&EN9W,*````("`@("UD("`@8FEN9"!A;&P@:V5Y4UA<%LE9%T@/3T@)60*`$-C06QT36%P6R5D -XM72`]/2`E9`H`3G5L;"!S=')I;F<@2!B:6YD:6YG,@@(7C(("%XR"`A>,@@(.#0("(HT -XM"`A>,@@(7C(("%XR"`A>,@@(7C(("$4T"`A5-`@(7C(("%XR"`AE-`@(Y#<( -XM"%@W"`A8-P@(O3<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("(8W"`A8-P@( -XM6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(73<("%@W"`A8 -XM-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`CD-P@(6#<("%@W -XM"`B]-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(AC<("%@W"`A8-P@(6#<( -XM"%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A=-P@(2!A;&EA($("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@( -XMBWP(""R!"`CJ?P@(BWP("-M_"`AX@0@(S8(("(M\"`B+?`@(BWP("(M\"`B+ -XM?`@(BWP("(M\"`C`@@@(HW\("(M\"`B+?`@(ZG\("(M\"`AX?P@(:7\(".I_ -XM"`A:?P@(BWP("$!_"`B+?`@("'\("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(^7X("'B!"`C9?@@(BWP("(M\"`B+?`@(98,("(M\"`BK?@@( -XMBWP("%5^"`C??0@(CGT("(M\"`CJ?P@(BWP("(M\"`A_?0@(ZG\("'!]"`B+ -XM?`@(4'T("(M\"`@%?0@(BWP("/5\"`B+?`@(Y'P("'B!"`@L9FEL96,`+&-O -XM;&]R`"QR:``L'`@)``` -XM``$;`SMP+@``!````#"+__^,+@``H(S__ZPN``#PC?__S"X``!"0___L+@`` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````!%R0@(`````"1/"0@````` -XM`````````````````````$`H(RD@0V]P>7)I9VAT("AC*2`Q.3DQ(%1H92!2 -XM96=E;G1S(&]F('1H92!5;FEV97)S:71Y(&]F($-A;&EF;W)N:6$N"B!!;&P@ -XM"0@D-@D(`@````````````````````````#X;PD( -XM``````````````````````````````````````!``$``0`!``$``0`!``$`` -XM0!1`&$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!` -XM`$`4``"``8`0@("``(`0H`&`$*`0@""``(``@`"``(``@``1`!$`$0`1`!$` -XM$0`1`!$`$0`1`(`0H!"``(`0@""``(``%@`6`!8`%@`6`!8`!@`&``8`!@`& -XM``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&((!`@`"``(``@#*``!H` -XM&@`:`!H`&@`:``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`* -XM``H`"B"`$*``@`"``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$`` -XM0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``(``@`"``(``@`"` -XM`(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(`` -XM@`"``(``@``&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`& -XM``8`!@`&``8`@``&``8`!@`&``8`!@`&``H`"@`*``H`"@`*``H`"@`*``H` -XM"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*`(``"@`*``H`"@`*``H`"@`* -XM`````"_*"`@!````[\D("`$````WR@@(``0``/?)"`@"````0,H("``$``#W -XMR0@(`P```$G*"`@`!```]\D("`0```!3R@@(``0``/?)"`@%````80("'#D"`@%````<.0("`4````F````YQP)"$7)"`@`````10("`(````]````Q!X)"'GD"`@%```` -XM>>0("`4````^````)/$("'GD"`@%````>>0("`4````C````?^0("(+D"`@% -XM````@N0("`4````E````G]$("(+D"`@%````@N0("`4````J````.K\("(CD -XM"`@%````B.0("`4`````````CN0("*^^"`@!````K[X("`$`````````D>0( -XM"*^^"`@!````K[X("`$`````````E.0("$7)"`@`````10("$7)"`@`````1!PA@3P<(`$\'"/`J!PAP,`<(8"D'",`O!PCP/`<( -XM("P'"#`L!PA`+`<(4"P'"&`L!PAP+`<(P"H'"*`Z!PAP,0<(<#\'""!0!PB@ -XM,0<(P"L'"&`F!PC@30<(H$T'"+`I!PBP40<(,%$'"&!W!PAP=0<(('8'"+`V -XM!PC0,`<(D#`'"!!H!PB03@<(,%$'"#`Q!PA0*P<($"L'".!.!PB0*P<(H$\' -XM",!/!PCP+P<(8$<'"!!*!P@`+`<(@"<'",!R!PC0)P<(\"<'"%`H!P@04@<( -XM@'0'"`!T!P@0.@<(<"@'"*`L!P@@90<(L#D'"(`X!PB@8P<(P"P'"'!`XX&@$/`1````7````"T````E```````` -XM`"(````G````8`````````````````````````````````````````#@3`D( -XM$0```````````````````-1,"0@5````````````````````]$P)"!,````` -XM```````````````(30D(%````````````````````)`O"0@2```````````` -XM````````($T)"``````````````````````;````3P```$8`````````&P`` -XM`$\```!(`````````!L```!/````1``````````;````3P```$,````````` -XM&P```$\```!"`````````!L```!/````00`````````;````6P```$8````` -XM````&P```%L```!(`````````!L```!;````1``````````;````6P```$,` -XM````````&P```%L```!"`````````!L```!;````00`````````````````` -XM`'P-"0@``0``P````(,-"0@#````0````(H-"0@``````````)$-"0C*!0`` -XM$`B`@)@-"0@``````````'P-"0A``0``@````(,-"0@#````0````(H-"0@` -XM`````````)$-"0B`````'`V`@)@-"0BP\;\!`````'P-"0@```````8``(,- -XM"0@``````````(H-"0@``````````)$-"0@`````@`0``)@-"0@````````` -XM`````````````````&P```!O````9P```&\```!U````=``````````````` -XM80```'4```!T````;P```&P```!O````9P```&\```!U````=``````````V -XM````,````````````````````&$```!U````=````&\```!M````80```'0` -XM``!I````8P````````!H````80```&X```!G````=0```'``````````80`` -XM`"X```!O````=0```'0`````````=````'0```!Y`````````"\```!P```` -XM=````',````O`````````&$```!N````>0````````!S````=````&$```!T -XM````=0```',`````````,``````````Q`````````"T````Q```````````` -XM````````````````````````,````'@````W````9@```&8```!F````9@`` -XM`&8```!F````9@`````````Z`````````%\`````````=````&,```!S```` -XM:`````````!H````;P```&T```!E`````````'4```!S````90```'(````` -XM````9P```'(```!O````=0```'``````````=````&4```!R````;0`````` -XM````````````````````````````````````````=@```&4```!R````0```````````````````````````````````&,```!A````=````&$` -XM``!L````;P```&<`````````3@```$P```!3````4````$$```!4````2``` -XM``````!N````;P```&L```!A````;@```&H```!I`````````'X````O```` -XM+@```&,```!S````:````&0```!I````<@```',````````````````````` -XM``````````````!D````:0```'(```!S````9@```&D```!L````90`````` -XM````````````````````````````````````````0```'P```!N````?````&4```!\````80```"D````_ -XM``!`(```````````````=0```&X```!A````;````&D```!A````````'0```!R````80```&,` -XM``!T``````````````````````````````````````````````!D````=0`` -XM`&X```!I````<0```'4```!E`````````',```!Y````;0```&P```!I```` -XM;@```&L```!S`````````&D```!G````;@```&\```!R````90````````!C -XM````:````&$```!S````90````````!E````>````'````!A````;@```&0` -XM````````````````````````90```&,```!H````;P```%\```!S````=``` -XM`'D```!L````90````````!B````P````````![````(````"X````N````+@```"````!]```` -XM`````'T`````````4````$$```!4````2```````````````9````&4```!F -XM````80```'4```!L````=``````````M````;@`````````M`````````&X` -XM``!O````9P```&P```!O````8@``````````````````````````````;@`` -XM`&\```!N````;P```&T```!A````=````&,```!H```````````````````` -XM`````````````````````&`````@````+@```"X````N````(````&`````` -XM````80```&T```!P````;0````````!T````:0```&T```!E`````````&X` -XM``!O````=````&D```!F````>0`````````````````````````````````` -XM````````````<````'(```!I````;@```'0```!E````>````&D```!T```` -XM=@```&$```!L````=0```&4`````````*````"``````````(````"D````` -XM````(``````````@````?````'P````@`````````"`````F````)@```"`` -XM````````(````'P````@`````````#L````@`````````#L`````````(@`` -XM`"(`````````6P```%T`````````(````#P````\````(``````````@```` -XM/````"``````````(````#X````^`````````"`````^`````````#X````` -XM````(````"X````N````+@`````````E````)0`````````E````*P`````` -XM```E````+0`````````E````(P`````````````````````````````````` -XM`&,```!O````;@```'0```!I````;@```'4```!E```````````````````` -XM``````````````````````````!C````;P```&X```!T````:0```&X```!U -XM````90```%\```!A````<@```&<```!S`````````%\```!P````80```'4` -XM``!S````90````````!@````<````'<```!D````8`````````!F````:0`` -XM`&P```!E````8P`````````````````````````````````````````````` -XM:````&D```!S````=````&,```!H````80```'(```!S```````````````` -XM`````````````````````````'````!R````;P```&T```!P````=````&,` -XM``!H````80```'(```!S``````````````````````````````!H````:0`` -XM`',```!T````;````&D```!T`````````%4```!3````10```%(````````` -XM````````````````3````$\```!'````3@```$$```!-````10````````!' -XM````4@```$\```!5````4````````````````````'<```!O````<@```&0` -XM``!C````:````&$```!R``````````` -XM``!L````:0```',```!T````;````&D```!N````:P```',`````````1``` -XM`$D```!.````1P```"$`````````````0``````````````````````````` -XM``````````!C````;P```'(```!R````90```&,```!T`````````&,```!M -XM````9`````````!A````;````&P`````````90```'(```!A````````1`````@````(```````` -XM``H````H;FEL*0```!0``````````7I2``%\"`$;#`0$B`$``!P````<```` -XMG%S__W`!````00X(A0)"#05%A@2'`P``'````#P```#L7?__1@$```!!#@B% -XM`D(-!46&!(<#```<````7````!Q?__\2`@```$$."(4"0@T%188$AP,``!P` -XM``!\````'&'__X!`@BG@0(,IX$"$*>!`A2G@0(8IX$"'*>!`B" -XMG@0(DIX$"**>!`BRG@0(PIX$"-*>!`CBG@0(\IX$"`*?!`@2GP0((I\$"#*? -XM!`A"GP0(4I\$"&*?!`ARGP0(@I\$")*?!`BBGP0(LI\$",*?!`C2GP0(XI\$ -XM"/*?!`@"H`0($J`$""*@!`@RH`0(0J`$"%*@!`ABH`0(6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G1E>'0`+F9I -XM;FD`+G)O9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]F`0```0````+````!`````@```!E```` -XM`0````8````(FP0("!L``!$```````````````0`````````8`````$````& -XM````')L$"!P;````"0`````````````$````!````&L````!````!@```""D -XM!`@@)```W`P$````````````$`````````!Q`````0````8```#\L`@(_#`$ -XM``P```````````````0`````````=P````$````"````(+$(""`Q!``.;@`` -XM```````````@`````````'\````!`````@```#`?"0@PGP0`+``````````` -XM````!`````````"-`````0````,`````(`D(`*`$`*0M`````````````"`` -XM````````DP````$````"````I$T)"*3-!`"<```````````````$```````` -XM`)T````&`````P```$!."0A`S@0`V`````4`````````!`````@```"F```` -XM`0````,````83PD(&,\$``@```````````````0`````````K0````$````# -XM````($\)""#/!``(```````````````$`````````+0````!`````P```"A/ -XM"0@HSP0`!```````````````!`````````"Y`````0````,````L3PD(+,\$ -XM`$@"``````````````0````$````O@````@````#````@%$)"(#1!`!T6P(` -XM```````````@`````````,,````!``````````````"`T00`60D````````` -XM`````0`````````!`````P``````````````V=H$`,P```````````````$` -X&```````` -X` -Xend -END-of-tcsh.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/out/elfcopy-noops-5.out.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/out/elfcopy-noops-5.out.shar deleted file mode 100644 index d39d66c9..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-5/out/elfcopy-noops-5.out.shar +++ /dev/null @@ -1,14222 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# tcsh.new.uu -# tcsh.uu -# -echo x - tcsh.new.uu -sed 's/^X//' >tcsh.new.uu << '3ae563ac759cfb26a3b39b907ea0d291' -Xbegin 644 tcsh.new -XM?T5,1@$!`0D```````````(``P`!````(*0$"#0```"LVP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(7)\$ -XM`%R?!``%`````!````$`````H`0``"`)"``@"0AT,0``](P"``8`````$``` -XM`@```$#.!`!`3@D(0$X)"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&0PGP0`,!\)"#`?"0@L````+`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*`````(``````````````"9````.0````````!1```` -XME@````````"#````G````',```",````2@```%X`````````4@````````") -XM````E```````````````<@```)\```!G`````````'H```!F````C@```$X` -XM``"'````%`````0`````````1`````,`````````#@```$(```"&````=P`` -XM````````````%P```)L```"-````-`````````!D`````````)X````````` -XM*P````````!V````;`````````!-````DP````````!%````?@```#L````` -XM````D0`````````W````````````````````)0````````!P`````````#`` -XM``!A````BP`````````V````20````````!M````E0````````!?````?0`` -XM`&D`````````:P````````!0````8@```'\````M````>``````````````` -XM``````````!6`````````&\```""````:@```)@```!&````,@````````!U -XM````6P````````":````3````(H````*````A0```````````````````)`` -XM``!8````;@```)T````8`````````(0```"2````5P```(`````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````$0````8```````````````````````````````$``````````@`````` -XM```>````````````````````#```````````````)@````<````I```````` -XM```````G`````````"X````<`````````"`````C```````````````-```` -XM+P`````````D````%@``````````````````````````````/0````4````H -XM`````````#4````9````00``````````````````````````````$P```$@` -XM`````````````````````````````````````````````#H````````````` -XM`$`````X`````````!`````)````7````"(````_````&@````````!@```` -XM`````````````````````&@`````````5````"$```!9`````````!(````` -XM```````````````=``````````\````;````+`````````!Q`````````$<` -XM```Q``````````````!Y````8P``````````````6@```!4```!\````*@`` -XM````````````B````$L`````````=`````L```"!`````````!\```!#```` -XM,P```&4```![`````````$\```!3````70```#P`````````CP````````"7 -XM````50```#X`````````````````````````I`0````````S````$@```)$$ -XM````````,P```!(```"T`@```````$,````2````$0````````"U````$@`` -XM`(P"`````````````!(```"2`@```````"L````2````RP,````````R```` -XM$@```&\!````````*````!(```"Y`@`````````````2````2@$````````` -XM````$@```#0!````````:P$``!(```#K!````````#@````2````:0$````` -XM``#]"```$@```!D```!`3@D(`````!$`\?_W`@`````````````2````I0(` -XM````````````$@```"(`````````U`,``!(```"#`0```````#,````2```` -XMU`0`````````````$@```'L"````````(P```!(````+!0`````````````2 -XM````$@0````````=````$@```#0#`````````````!(````K`0```````!T` -XM```2````B@0`````````````$@````,"````````5P```!(```#(```````` -XM`#D````2````?@$``,"N!@C>!```$@`,`"`#````````E````!(```#(`@`` -XM`````#D````2````100`````````````$@```"@`````````E@```!(```"2 -XM`0`````````````2````80(```````!S````$@```.$!``"`40D(!````!$` -XM%P#:```````````````2````?0,````````<````$@```#L!```````````` -XM`!(````'!``````````````2````!P$```````!/````$@```.0$```````` -XM<@```!(```#!`P````````4````2````"P0```````!.!0``$@```%P#```` -XM````W0,``!(```#!```````````````2````(@(```````#8````$@```#$` -XM```(FP0(`````!(`"@!)`@`````````````2````HP,`````````````$@`` -XM`+`#````````,P$``!(````-`@`````````````2````M@$````````+```` -XM$@```&\$````````*@```!(```";```````````````2````X``````````` -XM````$@```)<"``#8=0D(!````!$`%P!#`P```````$T````2````2P,````` -XM````````$@```+,"````````*P```!(```#$!``````````````2````YP`` -XM``````#&!```$@```"P#````````(0(``!(```#9`0```````!4"```2```` -XM`P`````````````2````9@0```````!9 -XM````$@```%(#`````````````!(```"0`P`````````````2````=P,````` -XM```[````$@```!0#````````>````!(```#"`0```````$P````2````10`` -XM`/RP"`@`````$@`-`,X"````````C`(``!(```#:`@```````!`````2```` -XM_0(````````E`0``$@```/X#````````'0```!(```#:!````````.T````2 -XM````0@$`````````````$@```#X#`````````````!(```!D`P``X%T)"`0` -XM```1`!<`^P`````````E````$@```",!`````````````!(````\`@`````` -XM`&<````2````[@$```````!?````$@```)X$`````````````!(```!*!``` -XM,*<&"&,````2``P`%0(````````_````$@```)\$````````0P```!(```"H -XM`0```````,,````2````J@(```````!4````$@```!<%``!T40D(`````!`` -XM\?_0```````````````2````EP,```````!#````$@```*\!````````,P`` -XM`!(```!W`0`````````````2````2P```"Q/"0@`````$0#Q_QL$```````` -XM@0```!(````J!0``]*P+"``````0`/'_``4`````````````$@```(`$```` -XM````5P```!(````N!````````&(#```2````]0$```````!A````$@```$X$ -XM````````DP```!(```"7`0`````````````2````)P0````````K````$@`` -XM`&(!`````````````!(```"K!````````!P````2````M`0````````````` -XM$@```$0$`````````````!(````;`0`````````````2````RP0```````"C -XM````$@```.<#````````4@```!(````;`P`````````````2````>`0````` -XM````````$@```!`!````````B@```!(```"Z```````````````2````4P0` -XM``````#($0``$@```&$``````````````"````#+`0```````(H````2```` -XMOP(```````!,````$@```(D!`````````````!(````\`P```````"@````2 -XM````=0`````````4`0``$@```(("`````````````!(```"?`@`````````` -XM```2`````&QI8FYC=7)S97,N@<```(`+P4```````"`40D(!2,``(A1"0@%20`` -XMW%T)"`5?``#@70D(!7(``#A/"0@'`0``/$\)"`<"``!`3PD(!P,``$1/"0@' -XM!```2$\)"`<%``!,3PD(!P8``%!/"0@'!P``5$\)"`<(``!83PD(!PD``%Q/ -XM"0@'"@``8$\)"`<+``!D3PD(!PP``&A/"0@'#0``;$\)"`$\)"`<2``!\3PD(!Q,``(!/"0@'%```A$\)"`<5``"(3PD( -XM!Q8``(Q/"0@'%P``D$\)"`<8``"43PD(!QD``)A/"0@'&@``G$\)"`<;``"@ -XM3PD(!QT``*1/"0@''@``J$\)"```"04`D(!V```)10"0@'80`` -XMF%`)"`=B``"<4`D(!V,``*!0"0@'9```I%`)"`=E``"H4`D(!V8``*Q0"0@' -XM9P``L%`)"`=H``"T4`D(!VD``+A0"0@':P``O%`)"`=L``#`4`D(!VT``,10 -XM"0@';@``R%`)"`=O``#,4`D(!W```-!0"0@'<0``U%`)"`=S``#84`D(!W0` -XM`-Q0"0@'=0``X%`)"`=V``#D4`D(!W<``.A0"0@'>0``[%`)"`=Z``#P4`D( -XM!WL``/10"0@'?```^%`)"`=^``#\4`D(!W\```!1"0@'@```!%$)"`>!```( -XM40D(!X,```Q1"0@'A0``$%$)"`>&```440D(!X<``!A1"0@'B```'%$)"`>) -XM```@40D(!XH``"11"0@'BP``*%$)"`>,```L40D(!XT``#!1"0@'C@``-%$) -XM"`>/```X40D(!Y```#Q1"0@'D0``0%$)"`>2``!$40D(!Y,``$A1"0@'E``` -XM3%$)"`>5``!040D(!Y8``%11"0@'EP``6%$)"`>9``!<40D(!YH``&!1"0@' -XMFP``9%$)"`><``!H40D(!YT``&Q1"0@'G@``<%$)"`>?``"#[`SHX`D``.B[ -XM%00`@\0,PP```/\U,$\)"/\E-$\)"`````#_)3A/"0AH`````.G@_____R4\ -XM3PD(:`@```#IT/____\E0$\)"&@0````Z<#_____)41/"0AH&````.FP____ -XM_R5(3PD(:"````#IH/____\E3$\)"&@H````Z9#_____)5!/"0AH,````.F` -XM_____R543PD(:#@```#I````.GP_O___R5X3PD(:(````#IX/[___\E?$\)"&B(````Z=#^____ -XM)8!/"0AHD````.G`_O___R6$3PD(:)@```#IL/[___\EB$\)"&B@````Z:#^ -XM____)8Q/"0AHJ````.F0_O___R603PD(:+````#I@/[___\EE$\)"&BX```` -XMZ7#^____)9A/"0AHP````.E@_O___R6<3PD(:,@```#I4/[___\EH$\)"&C0 -XM````Z4#^____):1/"0AHV````.DP_O___R6H3PD(:.````#I(/[___\EK$\) -XM"&CH````Z1#^____);!/"0AH\````.D`_O___R6T3PD(:/@```#I\/W___\E -XMN$\)"&@``0``Z>#]____);Q/"0AH"`$``.G0_?___R7`3PD(:!`!``#IP/W_ -XM__\EQ$\)"&@8`0``Z;#]____)!/"0AH4`$``.E`_?___R7D3PD( -XM:%@!``#I,/W___\EZ$\)"&A@`0``Z2#]____)>Q/"0AH:`$``.D0_?___R7P -XM3PD(:'`!``#I`/W___\E]$\)"&AX`0``Z?#\____)?A/"0AH@`$``.G@_/__ -XM_R7\3PD(:(@!``#IT/S___\E`%`)"&B0`0``Z<#\____)010"0AHF`$``.FP -XM_/___R4(4`D(:*`!``#IH/S___\E#%`)"&BH`0``Z9#\____)1!0"0AHL`$` -XM`.F`_/___R444`D(:+@!``#I%`)"&B``@``Z>#Z____)7Q0"0AHB`(``.G0^O___R6`4`D(:)`"``#I -XMP/K___\EA%`)"&B8`@``Z;#Z____)8A0"0AHH`(``.F@^O___R6,4`D(:*@" -XM``#ID/K___\ED%`)"&BP`@``Z8#Z____)910"0AHN`(``.EP^O___R684`D( -XM:,`"``#I8/K___\EG%`)"&C(`@``Z5#Z____):!0"0AHT`(``.E`^O___R6D -XM4`D(:-@"``#I,/K___\EJ%`)"&C@`@``Z2#Z____):Q0"0AHZ`(``.D0^O__ -XM_R6P4`D(:/`"``#I`/K___\EM%`)"&CX`@``Z?#Y____);A0"0AH``,``.G@ -XM^?___R6\4`D(:`@#``#IT/G___\EP%`)"&@0`P``Z<#Y____)<10"0AH&`,` -XM`.FP^?___R7(4`D(:"`#``#IH/G___\ES%`)"&@H`P``Z9#Y____)=!0"0AH -XM,`,``.F`^?___R744`D(:#@#``#IA0"0AH8`,``.D@^?___R7L4`D(:&@#``#I$/G___\E\%`)"&AP`P``Z0#Y -XM____)?10"0AH>`,``.GP^/___R7X4`D(:(`#``#IX/C___\E_%`)"&B(`P`` -XMZ=#X____)0!1"0AHD`,``.G`^/___R4$40D(:)@#``#IL/C___\E"%$)"&B@ -XM`P``Z:#X____)0Q1"0AHJ`,``.F0^/___R4040D(:+`#``#I@/C___\E%%$) -XM"&BX`P``Z7#X____)1A1"0AHP`,``.E@^/___R4<40D(:,@#``#I4/C___\E -XM(%$)"&C0`P``Z4#X____)211"0AHV`,``.DP^/___R4H40D(:.`#``#I(/C_ -XM__\E+%$)"&CH`P``Z1#X____)3!1"0AH\`,``.D`^/___R4T40D(:/@#``#I -XM\/?___\E.%$)"&@`!```Z>#W____)3Q1"0AH"`0``.G0]____R5`40D(:!`$ -XM``#IP/?___\E1%$)"&@8!```Z;#W____)4A1"0AH(`0``.F@]____R5,40D( -XM:"@$``#ID/?___\E4%$)"&@P!```Z8#W____)511"0AH.`0``.EP]____R58 -XM40D(:$`$``#I8/?___\E7%$)"&A(!```Z5#W____)6!1"0AH4`0``.E`]___ -XM_R5D40D(:%@$``#I,/?___\E:%$)"&A@!```Z2#W____)6Q1"0AH:`0``.D0 -XM]____R5P40D(:'`$``#I`/?__P````!5B>564X/L$(/D\(M=!(G1C72=#(7; -XMB378=0D(?C:+10B%P'0OHP`@"0@/MA"$TG0C@\`!ZPH/MA"#P`&$TG04@/HO -XM=?&C`"`)"`^V$(/``832=>RX0$X)"(7`=#2)#"3H5_[__\<$)/RP"`CH2_[_ -XM_^AR]O__C44(B70D"(E$)`2)'"3HYQL``(D$).A+_?__Z-;X___KS9"0D)"0 -XMD)"058GE@^P(@#WD70D(`'0,ZQR#P`2C""`)"/_2H0@@"0B+$(72=>O&!>1= -XM"0@!R<.058GE@^P(H2A/"0B%P'02N`````"%P'0)QP0D*$\)"/_0R<.0D)"0 -XMD)"0D)"0D)"058GE@^P8Z%77``#'!>AV"@@`````QT0D!!````#'!"0````` -XMZ->``0"CM'8*",=$)`@!````QT0D!`(```")!"3HUO;__\=$)`01````QP0D -XM`0```.BF@`$`H\R7"@C'1"0(`0```,=$)`0"````B00DZ*7V___'1"0$$@`` -XM`,<$)`(```#H=8`!`*,$=@H(QT0D"`$```#'1"0$`@```(D$).AT]O__QT0D -XM!!,```"AM'8*"(D$).A#@`$`HT29"PC'1"0(`0```,=$)`0"````B00DZ$+V -XM__^A!'8*"(D$).A%_/__H_R9"PBAS)<*"(D$).@S_/__H^!U"0C)Z3S7``"- -XMM@````"-OP````!5B>6#[`B+10B+$(72=23'1"0$Q)@*",<$))`O"0CHO>`! -XM`#WX;PD(=!6)10C)Z0WP`P")!"3HY9\#`(7`=>O),<##C;8`````C;PG```` -XM`%6)Y5=64X/L'(MU"(-^"/\/A%@!``"+/;AW"@BAO'<*",<%N'<*"`````#' -XM!;QW"@@`````A?^)1?!^&3';B?:+5?"+!)J#PP&)!"3H7X,#`#G[=>N+1?") -XM!"3H4(,#`(U&3,=$)`@D(```B40D!,<$)*!W"@CH8?O__Z&T=@H(B00DZ!A[ -XM`0"+!J/\70D(BT8(H[1V"@B#?@3_=!6A1)D+"(D$).CV>@$`BT8$HT29"PB# -XM?@S_=!6AS)<*"(D$).C;>@$`BT8,H\R7"@B#?A#_=!6A!'8*"(D$).C`>@$` -XMBT80HP1V"@B+1B"CD'8*"(M&-*.\F`H(BT8DHTB:"PB+1BBC2'<*"(M&+*.T -XMF`H(BT8PHS"9"PB+1A2CP'8*"(M&&*/@F0L(BT87UW#HXR8"@CKNHM&0(7`=.J+"(7)=.3'1"0$Q)@*",<$ -XM)"0V"0CHDMX!`(7`=,S'10@D-@D(@\0<6UY?7>EKX`$`C70F`(V\)P````!5 -XMB>575E.!["P!``"A+)H+"(L5*)H+"(F%'/___Z$DF@L(B948____BQ4@F@L( -XMB844____H1R:"PB)E1#___^+%1B:"PB)A0S___^A%)H+"(F5"/___XL5$)H+ -XM"(F%!/___Z$,F@L(B94`____BQ4(F@L(B87\_O__H02:"PB)E?C^__^+%0": -XM"PB)A?3^__^)E?#^___H-7,``(,%`%X)"`&)A>3^___'!"0`F@L(Z,CT___H -XM=YP!`*'L70D(HW!V"@BAP)@*"(7`=!R+10B%P`^$V@$``,<%P)@*"`````#H -XMJGT!`.O`H?R8"@B%P`^%^P,``*&,=@H(A"0B% -XMP'02B00DZ*F``P#'!8!>"0@`````H91W"@B%P`^%8@(``,<$)'AV"@CHMFT! -XM`(G#H91W"@B%P`^%-P(``,=$)`20Z04(QP0D>'8*".CC=0``A=MT#:&`7@D( -XMA<`/A!,#``#'1"0$Q)@*",<$)&`R"0CHOMP!`(7`=#N+'>AV"@C'!<"8"@@! -XM````QP7H=@H(`````,<$)'AV"@CH9%$!`.C/C@$`QP7`F`H(`````(D=Z'8* -XM",<$)`````#H?_?__Z'L70D(QP7(K`L(`0```(7`#X5L`0``BTT(A"9"PB%_P^$*@$``(`]B)@*"`!T#X,]@%X)"`$9P"`%B)@* -XM"(L-[%T)"(7)=1N+%8!>"0B%TG01QP0D````0.@5<@``D(UT)@"A<'8*"(7` -XM=2>A\%T)"(7`#X1*`0``QT0D!`````#'!"1X=@H(Z,:6``"-M@````#'!"1X -XM=@H(Z"1T``#I]_W__XN%Y/[__\<%_)@*"`````")!"3HMW,``(N5'/___XN% -XM&/___XD5+)H+"(N5%/___Z,HF@L(BX40____B14DF@L(BY4,____HR":"PB+ -XMA0C___^)%1R:"PB+E03___^C&)H+"(N%`/___XD5%)H+"(N5_/[__Z,0F@L( -XMBX7X_O__B14,F@L(BY7T_O__HPB:"PB+A?#^__^)%02:"PBC`)H+".@(<0`` -XMZ7K]__^+-?!="0B%]@^%R/[__XL=3)H+"(7;#X6Z_O__C;0F`````(/H`0^? -XMP`^VP(E$)`3'!"1X=@H(Z/0#`.F._?__QP0D>'8*".A4C`$`H80@ -XM"0B%P`^%Z`$``*&`=@H(QT0D"`````#'1"0$>'8*"(D$).BZB`$`QT0D!$`K -XM!@B)PXD$).A8"0B%P'0,QP0D````0.A3<```Z!ZN`P"AU)<*"#'2 -XMQT0D$`$```#'1"0,`````,=$)`@`````A<`/G\*#Z@$)T(E$)`2)'"3H";T! -XM`*&TF0L(A<`/A4P!``"+10B%P'05BSW`=@H(A?\/A1L!``"-M"8`````QT0D -XM"`8```#'1"0$`'8)",<$)'0O"0CH%.,!`.GO_?__BSW`=@H(A?\/A-_\__^+ -XM-?!="0B%]@^%T?S__X`]B)@*"``/A<3\__^+'>"9"PB%VP^%MOS__^G)_/__ -XMC78`BY7D_O__QP7\F`H(`````(,M`%X)"`&)%"3H<7$``(N%'/___XN5&/__ -XM_Z,LF@L(BX44____B14HF@L(BY40____HR2:"PB+A0S___^)%2":"PB+E0C_ -XM__^C')H+"(N%!/___XD5&)H+"(N5`/___Z,4F@L(BX7\_O__B140F@L(BY7X -XM_O__HPR:"PB+A?3^__^)%0B:"PB+E?#^__^C!)H+"(D5`)H+"('$+`$``%M> -XM7UW#BS7@F0L(A?8/A=[^__^+'?!="0B%VP^%T/[__\<$)`````#HI/L"`.F_ -XM_O__QP0D>'8*".CCF0,`H80@"0B%P`^$__W__\<$)'AV"@CH*IX#`.GN_?__ -XMQP4X=PH(`````,=$)`3$F`H(QP0DJ$`)".A7V`$`A<")PP^$=0(``(L0A=(/ -XMA&L"``"-1>R)!"3HU.S__XL;B1PDZ$YO`0"%P(F%[/[__P^%T@(``+A8`@`` -XM`P4,7@D(.T7L#X\T`@``BP.%P`^$(@(``(G?Z;$```"+1;P+1<`/A)<```"+ -XM1:0YP@^,C````(L-#%X)"#G(?P0YRGY^H329"PB%P`^%N0(``(7;N$7)"`@/ -XMA;0"``")!"3HU'@!`,=$)`0P*@@(B<.)!"3HHG```(.][/[__P$/A.T"``"A -XM@)@*",=$)`RDL0@(QT0D"`<```#'1"0$"P```(D$).@@SP``B70D"(E<)`2) -XM!"3HL,@#`(D<).BX;P``BT<$@\<$A<`/A&H!``")!"3H(ND#`(U5C(E4)`2) -XMQHD$).BM[___A"0B#P`$Y -XMT`^-2P$``*$TF0L(A<`/A38!``")#"3H(^___XN5(/___XD4)(G#Z`=Z`P"% -XMVP^$)____XD<).AS\O__A<`/A!?___^)'"3H8_+__\>%Z/[__P````"%P'40 -XMZ?S^__^-="8`@X7H_O__`8D<).@]\O__AC^__^)="0(B50D!(D$).@WQP,`Z8K^__^)]HM%[*,,7@D(QP0D```` -XM`.@L[P,`Z&?8`P#HHJ8#`(GVZ'NJ`P"+%:1W"@B+#;1W"@BAH'<*"#,%L'<* -XM"#'1"<%T%NC9AP$`QP0D`0```.A-G@,`Z4[X__^#/=`D"0@"=>''1"0$```` -XM`,<$)`````#HZ]4#`.O+A=L/A<+^__^+A2#___^)!"3HTW@#`.GV_?__BP.) -XM!"3H9'@!`(7`B?8/A!K]__^#K>S^__\!BP.#PP2)!"3HEM,!`(7`#X\#_?__ -XMN`$```#I^?S__XUT)@"%VP^$L/W__Z&`F`H(QT0D#(VQ"`C'1"0(!@```,=$ -XM)`0+````B00DZ)/,``#I(OW__XU5C#';C84L____B10DQT0D"&````")1"0$ -XMZ&OP__^+5:P[%:B9"PB+C2#___\/G\/I[/W__Z&`F`H(QT0D#)*Q"`C'1"0( -XM!0```,=$)`0+````B00DZ#/,``")7"0$B00DZ,?%`P#I$OW__Z&`F`H(QT0D -XM#'&Q"`C'1"0(`P```,=$)`0+````B00DZ/W+``"+E>C^__^)5"0$B00DZ(O% -XM`P#IWOS__XVV`````%6)Y5>)SU:)UE.![%PA``#'1"0$`````(D$).A@;0$` -XM,=*#^/\/A`\#``"-7?")1?")'"3'1"0$0!X%".CO;```BT7PQT0D!/____^) -XM!"3HG',!`(D<)(E%\.B!;```B1PDZ"EL``"+1?#'1"0(`0```,=$)`0"```` -XMB00DZ#KI__^+7?"Z`0```(7;#XBH`@``A?;'A________=!>-19")1"0$ -XMB1PDZ-WP__^%P`^(A00``(V%P-[__\=$)`2`I@0(B00DZ&-L``"+#91W"@B% -XMR0^%!00``*'\70D(BQ7H=@H(QX70WO_______\>%S-[_______^)A<#>__^A -XMM'8*"(72QX7$WO_______XF%R-[__P^%.@(``*'`=@H(A?^)A=3>__^AX)D+ -XM"(F%V-[__Z%0=PH(B87#>__^A2)H+"(F%Y-[__Z%(=PH( -XMB87HWO__H;28"@B)A>S>__^A,)D+"(F%\-[__Z&\F`H(B87TWO__H>Q="0B) -XMA?C>__\/A;0!``#'A03?__\`````H>R9"PC'1"0()"```,=$)`2@=PH(B84( -XMW___C84,W___B00DZ!;N__^+10B%P'1JBU4(BP*%P'1AQT0D!,28"@C'!"0D -XM-@D(Z$;2`0"%P`^$#@,``(L`A<`/A`0#``")!"3H[',!`(F%_-[__XM%"(D$ -XM).C;%_-[_ -XM_P````"+50B)';1V"@C'!;QW"@@`````QP6X=PH(`````(F5`-___\<%L'<* -XM"`````#'!;1W"@@`````QP6@=PH(`````,<%I'<*"`````#H3S,!`*&T=@H( -XMQP60=@H(`````,<%O)@*"`````")!"3H&NW__X/_`<<%X)D+"`````#'!5!W -XM"@@`````QP5(=PH(`````,<%2)H+"`````#'!3"9"P@`````H\!V"@@9P"$% -XMC)@*"*&4=PH(QP6TF`H(`````(D][%T)",<%_%T)"`$```"%P`^%]0$``,<$ -XM)`````#HF?+__XV%P-[__XD$).A;:0``N@$```"!Q%PA``")T%M>7UW#H8R8 -XM"@B)A03?___I1O[__XUUD(ET)`3'!"0`````Z"+N__^#P`%T9XV%,/___XE$ -XM)`2A1)D+"(D$).@&[O__@\`!=$N+190[A33___\/A-P!``"A1)D+",=$)`3_ -XM____QP0D`````(F%Q-[__^@W<`$`QT0D"`$```#'1"0$`@```*-$F0L(B00D -XMZ.;E__^)="0$QP0D`0```.BF[?__@\`!=&>-A3#___^)1"0$H___HNV\!`,=$)`@!````QT0D!`(```"CS)<*"(D$).AJY?__B70D!,<$ -XM)`(```#H*NW__X/``71IC84P____B40D!*$$=@H(B00DZ`[M__^#P`%T38M% -XME#N%-/___P^$O````*$$=@H(QT0D!/_____'!"0"````B870WO__Z#]O`0#' -XM1"0(`0```,=$)`0"````HP1V"@B)!"3H[N3__XGVZ`MK`0#I0_S__XVV```` -XM`(,%Q*P+"`''1"0$L)`(",<$),2L"PCH-6@``.G;^___QX7\WO__`````.G[ -XM_/__D,<$),2L"PCH=&<``(,%Q*P+"`''1"0$L)`(",<$),2L"PCH^6<``.G? -XM_?__B1PDZ%QJ`0"Z`0```.GL_?__BT60.X4P____#X4U____Z6[___^+19`[ -XMA3#___\/A:7^___IW/[__XM%D#N%,/___P^%%?[__^E,_O__C;8`````58GE -XM5U93@^PD<9@`` -XMQT7P`````.E7____QT0D!#PT"0B)'"3HC./__X7`=>"+7@B-?@C'1?`"```` -XMA=L/A2[____'!"2!```0Z(MC``"+7@C'1?`"````Z1/____'!"1%```0Z'!C -XM``"+7@C'1?`!````Z?C^__^058GE4X/L%*&4=PH(BUT(AGW8@``C;0F`````*'`=@H( -XMA"0@`QP0D``````^4PC')Z+/W__^)'"2)QN@Y9```@\00B?!;7EW#BT@$ -XMAR+-S'`A?9T5HU?!,=%\`````#K#Y") -XMW\=#_#H```"+,X/#!(/^.G0$A?9U\L=#_`````"+!X7`=06_C#,)"(D\).A/ -XMV@,`BU7PBTWLB021@\(!A?:)5?!UO(G0P>`"BU7LQP0"`````(D4),=$)`3P -XM(P8(Z%UC``#'1"0,`@```,=$)`C$F`H(BTWLQP0DE#()"(E,)`3H^L\!`(M% -XM[(D$).C?8@``BU7LB54(@\0<6UY?7>E]8@``C;8`````C;PG`````%6)Y8/L -XM"*'4EPH(AA<____H>1U"0B%P'0HBT4(B00DZ(3D___' -XM1"0$$P```(M#'(D$).C1Y/__BS:%]HGS=9'KRN@&OP``C;8`````Z\N-M"8` -XM````C;PG`````%6)Y593@^P0H329"PB%P`^%B@```.AV_?__BS4`F`H(A?9T -XM2XGSBU,,]L8!=#*+0QP[!=R9"PAT)X'B___]_XE3#,=$)`0!````BT,7B)!"3HQEX``.BA -XM_O__@\0D6UW#QT0D!,28"@C'!"0`+@D(Z)?&`0"%P'1-,575E-1@>R8`0``BP&+203'1>P` -XM````QT7H`````(F%>/[__XF-=/[__\=%Y`````#'1"0$14!`)#K!8/X`G\^QT0D -XM!`````#'!"3,L0@(Z.5>`0"#^/]UXL=$)`0`````QP0D4\<(".C,7@$`@_C_ -XM=0<``(D$)+]P -XMN0@(Z#=F`0"Y!0```/RC#'8*"(G&\Z8/E,`/ML"CE)@*",<$)-:Q"`CH`=D# -XM`(D$).BIU`,`HZ28"@C'!"3>L0@(Z.C8`P")!"3HD-0#`*-T=PH(H=AU"0B) -XM!"3H/MD#`*/0EPH(B00DZ%'7`P"CV'4)",<$).>Q"`CHL-@#`(D$).A8U`,` -XMQP6,F`H((0```,<%1)H+"%X```#'!32:"P@^````QP6,=PH((P```,<%;'<* -XM"`````"CU)D+"*-,=PH(QP0D\;$(".A@V`,`QT0D"`(```#'!"2@,PD(B40D -XM!.B(S0$`BXUT_O__BP&)!"3H.-@#`(D$).C@TP,`QP7X70D(`````*/T70D( -XMQT0D!*0N"0B)!"3H[=G__X7`#Y3`#[;`B86$_O__Z`K@__^CA'8*".B`V___ -XMH\QV"@CH5N#__Z,LF0L(Z)S>__^+M73^__^CZ)@*"(L&@#@M#X3`$0``@[UX -XM_O__`@^$DQ$``,<%-)D+"`````#'!6"9"P@!````NX````#'!"3UL0@(Z*38 -XM__^%P`^5P`^VP*/`I0L(QT0D!$7)"`C'!"0`````Z%/?___'1"0$1BT2>-*D```0`=2R#PP&!^_\```!_(??#```` -XM0'7M@?O_````=MJ)'"2)]N@WV?__J0``!`!TU(,]@%$)"`$/E,(QP('[_P`` -XM``^?P"'0HV"9"PBA/&0)"(7`=`VA0&0)"(7`#X1>$0``Z'T5`P#'!"1T=@H( -XMZ&W7___HG-H#`.@WX?__H;1V"@B)!"3H=MO__X7`B<,/A$P1``")QK@%```` -XM_+_^L0@(B<'SI@^$^`0``(D<).BAU@,`B00DZ$G2`P#'1"0(`@```,<$)+PN -XM"0B)1"0$B6`$`QT0D"`(```#'!"2X+PD(B40D!.BFR0$`C9V<_O__QT0D -XM!``!``")'"3H/-S__X7`#X@]#@``QD6;`(D<).A\U`,`QP0DE#`)"(E$)`3H -XM7,L``.BG=@,`QP0D++((".AGU?__A<")PP^$Z0X``(D$)(G>OQZR"`CH0M0# -XM`(D$).CJSP,`B00DZ!)8`0#'1"0(`@```,<$)-`O"0B)1"0$Z!K)`0"Y"``` -XM`/SSI@^%P0P``,>%?/[__P$```"+M7S^__^_/K(("+D&````_(DUB'<*"(G> -XM\Z8/A3L"```QP*/DF0L(BSWDF0L(A?\/AL@@(Z&S4 -XM__^%P(G#="Z)!"3HGMO__X/X!(F%O[NR"`BY!P```/.F#X2,#0``B[5X_O__@^X!A?8/CD,.``"+E8C^ -XM__^+`H`X+0^%,@X``(U0`0^V0`&$P`^$(PX``,>%@/[__P`````Q_XG3ZS*A -XM#'8*",<%D)@*"`$```")7"0$QP0D?````(E$)`CHV%,```^V0P&#PP&$P`^$ -XM`0$``#QX=\H/ML#_)(6,MP@(N'"Y"`CI??C__XU#!8D$).D`^___B=Z_1+(( -XM"+D#````\Z8/A+']__^+A7S^__^#\`'II?W__XUT)@"#_@$/A%L'``"#A8C^ -XM__\$BXV(_O__BP&)!"3H8-$#`(D$).@(S0,`A<"CD'8*"'0HB00DZ/?,`P") -XM!"3H'U4!`,=$)`@"````QP0D0#8)"(E$)`3H)\8!`*&0=@H(B00DZ*K'`P"+ -XM#9!V"@@YP7,G@WC\7(U0_'4>,<#K"XUV`(/J!(,Z7'4'@\`!.=%R\:@!#X6. -XM!@``@^X!QP6$(`D(`````+\!````#[9#`8/#`83`#X7__O__@^X!@X6(_O__ -XM!(7V?B:+E8C^__^+`H`X+749C5`!#[9``83`=`Z+C8#^__^%R0^$E?[__X7_ -XM#Y3#BX6$_O__A<`/A<4'``"$VP^$J0```(7V#XZA````QT0D!`````"+C8C^ -XM__^+`8D$).B950$`A<")PP^(&0X``*'T70D(B00DZ+)?`P"+E8C^___'!?A= -XM"0@!````BP*)!"3H*-`#`(D$).C0RP,`H_1="0C'1"0$$````(D<).B[6P$` -XMA<"CM'8*"`^(7PT``,=$)`@!````QT0D!`(```"AM'8*"(D$).A=T?__@X6( -XM_O__!,<%A"`)"`````#HVUL!`*&T=@H(B00DZ$K7__^%P*/`=@H(#X3"!@`` -XMH!V"@B)1=RA -XMY'8*"(E%X.@E3@``QP0D`)H+".C%S___@P4`7@D(`<<%P)@*"`````"%P`^5 -XMP`^VP`L%"%X)"`^$`00``(N%C/[__XLUP'8*"(,M`%X)"`&CE'<*"(M%S(7V -XMH]!V"@B+1="CU'8*"(M%U*/8=@H(BT78H]QV"@B+1=RCX'8*"(M%X*/D=@H( -XM=`Z+'9!V"@B%VP^$^`D``(M%Z(7`#X7%!```BT7LA<`/A:D$``"AE'<*"(D$ -XM).BGV?__BPW`=@H(A%A/[__P$```#IUOG__\<%*'<*"`$` -XM``#IQ_G__\<%!%X)"`$```#IN/G__[\!````QP4DF0L(`0```.FD^?__QP4( -XM7@D(`0```.F5^?__QP60F`H(`0```.F&^?__QT7D`0```.EZ^?__QX6`_O__ -XM`0```.EK^?__QP7H70D(`0```.E<^?__OP$```#'!80@"0@`````QP64=PH( -XM`0```.D_^O__QP0D@#()".BJP`$`Z2WY___'!"1@,@D(Z)G``0#I'/G__\=% -XM[`$```#I$/G__\=%Z`$```"0Z0/Y__^_`0```,<%O)@*"`(```#'!80@"0@` -XM````Z>7X__^+E7#^__^_XK$("+D%````_(U$$_R)QO.F#X5R]___B1PDZ);* -XM`P")!"3H/L8#`(D$).AF3@$`QT0D"`(```#'!"0H,@D(B40D!.ANOP$`BYUP -XM_O__A=L/A5'W___I+_?__\<%D)@*"`$```#'!"0I````Z$5,``#I5_G__Z', -XMEPH(B00DZ+_1__^%P`^$Z_K__\<%E'<*"`$```#IW/K__\<$)`````#H0.S_ -XM_^F4^/__QP4(7@D(`0```.E&]/__H]'__X7`#X1;^O__BX6` -XM_O__A<`/A4WZ__^AA'8*"#L%+)D+"`^$/@0``.B_SO__QP`-````QP7D=0D( -XM`0```.BJSO__BP")!"3H4,S__XE$)`BA#'8*",<$)#8```")1"0$Z(M+``#I -XM^OG__XN%=/[__X/`!(F%B/[__^DV]___A=L/A`0&``")'"3H8LD#`(D$).@* -XMQ0,`B00DZ#)-`0#'1"0(`@```,<$)*0O"0B)1"0$Z#J^`0#'1"0$Q)@*",<$ -XM)*0O"0CH=K4!`,<$)*`_"0B)1"0$Z`;```#I)_3__\<$)+6R"`CH1:8#`.DH -XM_?__QP0D@#$)".B4O@$`Z2/U___'1"0$Q)@*",<$)(`Q"0CHR[0!`(7`=`S' -XM!"2`,0D(Z*NV`0#'!>29"P@`````Z0OY___'1"0$`````,<$)`,```#H],[_ -XM_^DB^/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".AX30``,2%P`^$^?K__\<$ -XM)`````#HD0L``)#IY_K__\<$)(`R"0CH'[T!`.E&^___QP0D8#()".@.O0$` -XMZ2K[__^-1`/[OV2R"`C\N08```")QO.F#X2R_/__Z0CT__^)WK\QL@@(N04` -XM``#SI@^$*_/__XG>OS:R"`BY"````/.F#Y3`#[;`B85\_O__Z1;S___'1"0( -XM`@```,=$)`3H-@D(QP0DJ#()".@\O`$`Z1[X___'1"0$+P```(G>B1PDZ,'' -XM__^%P'0#C7`$QT0D"`,```#'1"0$O"X)"(DT).@"R___A/[__P&%P`^$_NW__\<$)`Q> -XM"0CH,<;__\<$).`U"0CH.;L!`.GA[?__Z,^C`@#IF.[__Z',=@H(.P7HF`H( -XM#X6Q^___Z>CU___'!"1%R0@(Z<+N___'!8AW"@@`````QP0D1[((".A>QO__ -XMN@$```"%P'05_(G&OUH;"0BY`@```/.F#Y7`#[;0B17DF0L(Z4_Q__^AS'8* -XM"(D$).B<2P$`A<`/A!@#``"+`(D$).@*Q0,`QT0D"`(```#'!"2X+PD(B40D -XM!.@RN@$`QT0D!,28"@C'!"2X+PD(Z"ZQ`0#'!"3@/PD(B40D!.B^NP``Z2/P -XM___'!"10L@@(Z+W$`P")!"3HA>7__^E$\?__QT0D!,28"@C'!"0`,`D(Z.RP -XM`0#'!"1^L@@(B40D!.C,H0,`QT0D#.BR"`C'1"0("````,=$)`0+````H8"8 -XM"@B)!"3H!Z@``(D$).B?H0,`QP0D`````.B#YO__Z1+R___'1"0$Q)@*",<$ -XM)``P"0CHBK`!`,<$)!$7"0B)1"0$Z&JA`P#'!"0`````Z$[F__^+A73^__^+ -XM6`3IO_'__\=$)`0!````QP0D`P```.A(RO__Z9OU___'!91W"@@!````Z:;V -XM__^[`0```,>%@/[__P````#I1?/__\=$)`3$F`H(QP0DD"\)".@0L`$`ND!! -XM"0CH=N/__XL]-)D+"(7_#X4+_/__Z?O[___'1"0$Q)@*",<$))`O"0CHWZ\! -XM`+H@00D(Z$7C___IJOO__\<$)``````QR3'2N*:R"`CH*]O__^DB^___H81V -XM"@B)!"3H.4D!`(7`#X3@`@``BP")!"3H1\,#`,=$)`@"````QP0DI"\)"(E$ -XM)`3H;[@!`,=$)`3$F`H(QP0DI"\)".AKKP$`QP0DP#\)"(E$)`3H^[D``.G, -XM^?__H;R8"@B%P`^%,/O__Z%`F0L(A<`/A2/[___'1"0$`````,<$)`````#H -XM>&\``.D*^___BQ6\F`H(A=(/A73Z__^A0)D+"(7`#X5G^O__QT0D!`````#' -XM!"0`````Z$1O``#I3OK__X/[`70G@_L"C;0F``````^$50(``(7;#X4=`@`` -XMQP6T=@H($````.EU\O__QP6T=@H($0```.EF\O__H>29"PB)!"3HU\P"`.D\ -XM]?__Z'W0`@#'!"0!````C;8`````Z"O1`@#I[/7__\<%Y'4)"`$```#H(\?_ -XM_XL`B00DZ,G$__^)1"0(B[6(_O__BP;'!"0V````B40D!.@!1```Z:WQ___' -XM!"0>L@@(Z>'\__^)%"3H],/__^E"^___QT0D!`$```"[$@```,<$)!(```#H -XM%LC__\=$)`0!````QP0D%0```.@"R/__QT0D!`$```#'!"06````Z.['___' -XM!"02````Z"+)__^%P`^$D0$``(UUG.MD.P753BU4(A=)X-(L=(%X)"(G(ZPF0 -XMC70F`#G(=!R#Z@&#^O]T)XM`!#T<7@D(=>J)V#G(=>B-="8`6S'`7<.+`3T< -XM7@D(=06A'%X)"(M`#%M=PXVT)@````!5B>5=QP447@D(`````,.058GE4X/L -XM!(M="(M#"(7`=!/'0P0`````QP,`````@\0$6UW#BT,,B00DZ)%-`P")70B# -XMQ`1;7>F$30,`C70F`%6)Y5=64X/L+(M5"(72#Y3`=0^+70R%VW4(@\0L6UY? -XM7<.$P,=%Z`````#'1>P`````QT7P``````^%80$``,=$)`0`````B10DZ('O -XM``")1>#'1"0$,"H("(M%X(D$).B;0@``BT7@B00DZ'"[`P#'1"0$@`$``(D$ -XM).A@1`$`B470@\`!#X3_````QT0D!,28"@C'!"2@-0D(Z,"I`0`]^&\)"'0* -XMBPB%R0^%&@$``+[_____H>AV"@B-?>C'!>AV"@@`````B478H!^QQ>"0AT\HM5W(72=+B+0PR#[@&)/"2)1"0$Z"9&`0#' -XM!"1\N0@(B40D!.CFF0,`@_[_=;^0BT70B00DZ/5#`0"+1=2CS)<*"(M%V*/H -XM=@H(BT7@B00DZ,I```"#Q"Q;7E]=PXGVQT0D!,28"@C'!"1@-0D(Z*RH`0`] -XM^&\)"'0GB00DZ/VW`P")1>#IA_[__XD$).@-N@,`B00DZ+&\__^)QNG4_O__ -XMQT0D!,28"@C'!"20+PD(Z&JH`0#'1"0$)#4)"(D$).@JMP,`B47@Z43^__^) -XM]E6)Y5.#[!2+70C'!11>"0@!````QT0D!&#"0AT%C#2BT`$@\(!/1Q>"0AU\XT4E00```")%"3H -XM7$L#`(L=(%X)"('['%X)"(G'B<9T&XM##(D$).BOM@,`B0:+6P2#Q@2!^QQ> -XM"0AUY<<&`````,=$)`3P(P8(B3PDZ,D_``#'1"0,`@```,=$)`C$F`H(B7PD -XM!,<$)``V"0CH::P!`(D\).A1/P``B3PDZ/D^``"#Q!Q;7E]=PY!5B>564X/L -XM$,=$)`3$F`H(QP0D`#8)".ATI@$`A<")PP^$S0```(L`A<`/A,,```"+#2!> -XM"0B!^1Q>"0AT*XL!BU$$B5`$BU$$B0([#629"PATW8D,).CU^___BPT@7@D( -XM@?D<7@D(==6A9)D+"*,<7@D(HR!>"0C'`!Q>"0C'0`0<7@D(BS.%]G57ZUN- -XM=@"+`(7`=%+'1"0$`0```,<$)!````#HQDD#`(G#BP:)!"3HFK4#`(/&!,=# -XM"`````")0PRA9)D+"(E#!*%DF0L(BP")`Z%DF0L(B1B+`XE8!'0&BP:%P'6H -XM@\006UY=Z3W^__^#Q!!;7EW#C;8`````58GE5[\`!```5E.#[`S'!"0`!``` -XMZ,9)`P")P^L>B?;H=[[__XLP@_XB=4D!_XD<)(E\)`3H]DD#`(G#B7PD!(D< -XM).@TO/__AY`P")!"3H[[0#`(D<)(G&Z*5(`P"#Q`R) -XM\%M>7UW#B1PDZ)-(`P#H&K[__XDP,?:#Q`R)\%M>7UW#B1PD,?;H=D@#`.O/ -XMC70F`%6)Y5=64X'LC````(M%"(M=#(D$).ARN___BU4(@SHOB<+1(H$@\$!A<")1(L$=?&+%HGW -XMA=)U5(GWC4;\.T4(=`_'1OP`````B?N+`X7`=;G'1"0$Q)@*",<$))`O"0CH -XM%:0!`(D$)(G#Z$>Z__^%VXG&=`F#.R\/A*X"``"+10B!Q(P```!;7E]=PX/' -XM!(L'A`0K?0B)#"3H#;G__XG#BT6`B00DZ`"Y__^-5`,!B?C!^`*-!`+!X`*)!"3H -XMG48#`(M5"(G&B<&+`H/"!(D!@\$$A^+58")V8L"@\($B4'\@\$$A^)V8GZBP*# -XMP@2)0?R#P02%P'7QBTV,C7PQ_(M5"(G[B10DZ'9$`P")=0CI'_W__XE$)`B+ -XM30B)'"2)3"0$Z">Y__^%P'47BU4(BP2R@_@O#X0L_?__A<`/A"3]__\['1A> -XM"0AT,HD<).B0L@,`C564B50D!(D$).@=N?__@\`!=!:+192)'1A>"0BCG"`) -XM"(M%F*.@(`D(BTT(C7V4B0PDZ#BP`P")QHL&A)QNF0_O__QT;\+P```(-M@`2+58"#.B]U -XM](M-A(7)=%\QTHM$EP2+38")1)$$@\(!A575HG&4XG#@^P,@S@O='.A -XM9)D+"(M`#(D$).A:M?__B30DB<,QP(/[`0^4P(/H`2'#Z$.U__^-!`.-!(4( -XM````B00DZ.5"`P")QZ%DF0L(B?F+4`R+`H/"!(D!@\$$AB)1>R+`(U(!(E-\(M0!(72#X35```` -XM@SHM#X78````,?_K'('/@````(-%\`2+1?"+$(72#X23````@SHM=5Z+0@2) -XMTX7`=1?KV2GQN`$```#3X`G'BT,(@\,$AR#X`Z%P(D1=`.#SP&#Q!R)^%M>7UW#BT7P,?^+3>R)`>OJ -XMBTWP,?^+5>R)"NO>ZPV0D)"0D)"0D)"0D)"058GE@^P8B5WXB77\@S@K=`XQ -XMVXG8BW7\BUWXB>Q=PXM0!(U(!/?"````0'4G@_I_=ACK((M0"/?"````0(UV -XM`'42@_I_=PV#P`3V!)6]40D(!'7@A=)UN8D,).@`FP$`A<")QGZKBQUDF0L( -XMZPT['629"PAT&(/N`728BUL$@?L<7@D(=>B+'2!>"0CKX,<$)!H``!#H9C(` -XM`.O:C70F`%6)Y5.)PX/L%,=$)`3$F`H(QP0D9#,)".B3G`$`QT0D"`8```#' -XM!"1T,PD(B40D!.AKI0$`B5PD!,=$)`@&````QP0D9#,)".A3I0$`B5PD!,<$ -XM)/@Z"0CH\Z8``(/$%%M=PXVV`````(V\)P````!5B>53@^P4BQUDF0L(C78` -XM@?L<7@D(=!;'1"0$^&\)"(M##(D$).C%]O__B4,,BUL$.QUDF0L(==>+0PR# -XMQ!1;7>E*____C78`C;PG`````%6)Y8/L&(U%"(D$).CO5P,`A<")PG09BT4( -XMB50D!,<$)(ZY"`B)1"0(Z+*,`P#)PXM%",<$))*Y"`B)1"0$Z)V,`P#)PXUT -XM)@"-O"<`````58GE5U93@^P\BS5DF0L(B478@^`$B474BT78QT7<`````,=% -XMX`````"#X`*)1=#ICP```(U%\(D$).AQ5P,`A<")QP^$G````(D$).B+L?__ -XMB<.+1?")!"3H?K'__XU<`P(!7>#V1=@(=!:+%>"7"@B-0O\Y1>!\"#G3#XRY -XM````A?]T$(E\)`3'!"29N0@(Z/N+`P"#?=0!QP0DG;D("!G`@^`6@\`*B40D -XM"(M%\(E$)`3HV(L#`(MV!#LU9)D+"'1=@?X<7@D(=.V+1=2%P'4FBT8,,?^) -XM1?"+1="%P`^$3____XM%\(D$).CLL/__C5@!Z6K___^+1=R+7=S'!"25N0@( -XMB40D!.B"BP,`@\,!B5W#I,____XGV58GE5XG75HG&4X/L#,=$ -XM)`3$F`H(QP0DX#D)".C/F0$`A"0AUVXDU9)D+"(M&#.@Z_?__Z"7R -XM__^+'2Q>"0C'1"0$Q)@*",<$)&`Y"0CH:YD!`(/X`1G`("0B%P'4$A=MU#(/$#%M>7UWI/FP#`(GXZ/?]__^#Q`Q;7E]=Z2ML -XM`P"+`XM3!(E0!(M3!(D"B1PDZ-;N___I>?___Y!5N:.Y"`B)Y;JMN0@(@^PH -XMC44(B5WTB77XB7W\Z-_Z___'!2Q>"0@!````B<.)QH'C@`````^%A0```(M% -XM"(L0A=(/A)@```"%VW4DBT4(BT`$AP0<7@D(=&8Q_SL=9)D+"`^$?0`` -XM`(M#!(L3B1"+$XE"!(D<).@D[O__.QUDF0L(=%*)\.@5_?__ZZ6-=@#'1"0$ -XMQ)@*",<$)'0S"0CHG)@!`(G"A=(/A6K___^)]HL=9)D+"(%[!!Q>"0AUFY"! -XM.QQ>"0AUDL<$)$(``!#H'"X``.N$B?*)^.@1_O__D.E-____BWL$@?\<7@D( -XM=%J+1PR)!"3HQ:D#`(E%\(D$).C6K/__A<`/B5K____HV;#__XL`B00DZ'^N -XM___'!"0V````B40D"(M%\(E$)`3HO"T``.DO____QP0D0P``$.BK+0``Z0?_ -XM__^+/2!>"0CKGHVT)@````"-O"<`````5;E%R0@(B>6Z][D("%93@^P0C44( -XMZ%;Y__^H0(G&=$*A9)D+"(L`.P5DF0L(=!R0/1Q>"0B+&'0(B00DZ/_L__^) -XMV#L%9)D+"'7EHR!>"0BC'%X)",=`!!Q>"0C'`!Q>"0CWQB`````/A8T```#W -XMQA````!U:XM5"(L*A575E.#['R+30R%R0^$=`$` -XM`(M%"#';QT7H`````,=%[`````#'1?``````ZP.#P`2+$(72="Z+2`2%R70G -XM@_HN=>N#^2YUYHM0"(72D`^%2P$``#M%"'0'@WC\+Y!USH/#`>O)A=L/A!D! -XM``"A9)D+"(M`#(D$).B-K/__C02%#````(D$).@R.@,`B46`H629"PB+0`R) -XM1"0$BU6`B10DZ&2K__^+=0B#/B\/A#P"``"+70C'1>P`````BQ,Q_X72=$&# -XM^BZ-H0,`A?]_#>LB@^\!QP`````` -XM=!?'1"0$+P```(M%@(D$).@FJO__AR%P`^%!P$``(MU@(L^A?\/A;4```"+,X7V#X5%____BT7HB00DZ',X -XM`P"+18"#Q'Q;7E]=PXM%"(D$).B=I`,`B46`BT6`@\1\6UY?7<.#^B\/A8;^ -XM___II_[__Y`[70AT$8-[_"^-M"8`````#X4?____A<`/A#'___^-6#[#C'1"0$`````(E= -XM](EU^(E]_(D$).@AV0``QT0D!#`J"`B)QHD$).@_+```,<"#/=B7"@@"B30D -XM#Y3`B40D!.BW_/__B<.)!"3H_:0#`(D$).@1J/__A!F)-"3H?"L``(DT).@D*P``B?#HW?/__^NYZ,*K__^#.`*-=@!T.^BU -XMJ___@S@4=#&-="8`Z*>K__^+`(D$).A-J?__B30DB"2)-"3H>"H``(D<).C0H0,`QP4L7@D(`0```.@A\___Z?K^__^+'11> -XM"0B%VP^$/@$``(DT).A&*@``,<#IW?[__XET)`3'!"3,.`D(Z.\I`0"%P`^% -XM=____\=$)`3$F`H(QP0DW#@)".BSD0$`A<`/A%O___^+$(72#X11____QT7H -XM`````,=%[`````#'1?``````BQB+`X7`=2KI_0```(DT).A7HP,`B00DZ&NF -XM__^%P`^)]0```(/#!(L[A?\/A-@```#'1>P`````BP.)1"0$C47HB00DZ)*? -XM`P"-1>B)!"3'1"0$+P```.@/G0,`C47HB00DB70D!.APGP,`C47HB00DZ%6= -XM`P"AV)<*"(/H`H/X`0^6P`^VP(E$)`2+1>B)!"3HA?K__XG'B00DZ,NB`P") -XM!"3HWZ7__X7`#XA<____BT7HQP4L7@D(`0```(D$).A&-`,`B30DZ!XI``") -XM^.C7\?__Z;#]__^)]HM%X(D$).AAI___B30DBZ(#`(E<)`C'!"0V```` -XMB40D!.B7)@``Z93^__^+1>B)!"3H]S,#`.DB_O__B3PDQP4L7@D(`0```.C@ -XM,P,`BT7HB00DZ-4S`P#I?/W__U6YM[D("(GENJVY"`B#[!B-10B)=?B)??R) -XM7?3H'_+__\<%+%X)"`$```")QHG'@>:`````#X6Y````BT4(BQB%VP^$QP`` -XM`(7V=22+10B+2`2%R70:QP0D#P``$.C^)0``BUWTBW7XBWW\B>Q=PY")V.CI -XM\O__A<")Q@^$_P```(M`#(D$).BDH0,`B<.)!"3HMJ3__X7`#X@U`0``QT0D -XM!,28"@C'!"2@.0D(Z)Z/`0"%P'0P.S5DF0L(="B+%HM&!(E"!(M&!(D0H629 -XM"PB+$(D6H629"PB)1@2)<@2A9)D+"(DPB?J)\.AQ]?__Z6[____'1"0$Q)@* -XM",<$)'0S"0CHJ(\!`(G#Z3'____'1"0$Q)@*",<$)"`Y"0CH+8\!`(7`#X30 -XM````QT0D!,28"@C'!"20+PD(Z'&/`0`]^&\)"(G#=`:+,(7V=0S'!"0B```0 -XMZ`8E``")'"3HSJ`#`(D$).CBH___A:`````#X6:````BT4(BQB%VP^$#P$``(7V -XM=22+10B+0`2%P'0:QP0D#P``$.A>(P``BUWTBW7XBWW\B>Q=PY")V.A)\/__ -XMA<")QG1SQP4L7@D(`0```(M`#(D$).C^G@,`B<.)!"3H$*+__X7`#X@'`0`` -XMH629"PB+4`2+`(D"H629"PB+$(M`!(E"!*%DF0L(B00DZ*;B__^)^HGPZ.WR -XM___KC<=$)`3$F`H(QP0D=#,)".@GC0$`B6#[!B)7?B)PZ&`F`H(B77\BS4,=@H(QT0D -XM#-BY"`C'1"0(`0```,=$)`0,````B00DZ#>#``")7"0(B70D!(D$).C'?`,` -XMBUWXBW7\B>Q=PXVV`````(V\)P````!5B>575E.![,P```"+=0CHO.7__X7` -XMB<,/A!(!``")!"3H&IT#`(U5E(E4)`2)!"3HIZ/__X7`#Y3`B<=U4H7V=`J+ -XM!H7`#X54`0``B?B$P'0^QP0DT;D(".@>H/__A<")QG0LC84T____B40D!(DT -XM).AFH___@\`!=!6+190[A33___\/A&8!``"-M@````#'1"0$,"H("(D<).C` -XM(P``QT0D!/AO"0B)'"3HP.7__XD<)(G&Z%8C``")'"3H_B(``,=$)`0!```` -XMQP0D$````.AJ+@,`,=*)<`R)P\=`"`````"C(%X)"*,<7@D(QT`$'%X)",<` -XM'%X)",<%+%X)"`````#H9O#__\=$)`@&````BT,,QP0D`#8)"(E$)`3HBY,! -XM`('$S````%M>7UW#Z#>C__^+`(D$).C=H/__QP0DAKD("(E$)`BA#'8*"(E$ -XM)`3H6'L#`(7V=`J+!H7`#X7`````N%/'"`CH,/[__\<$)%/'"`CHX)[__X/` -XM`0^$V````,<$)%/'"`CHWYT#`(D$).B'F0,`B<;I(O___XDT).B8FP,`C94T -XM____B50D!(D$).@BHO__@\`!#X2)_O__BT64.X4T____#X5Z_O__BT68.X4X -XM____#X5K_O__B30DZ#>9`P")QNG2_O__BT68.X4X____#X61_O__B30DZ&F= -XM`P")!"3H$9D#`,=$)`0P*@@(B<.)!"3H/R(``.EJ_O__B30DZ!*;`P")P^AK -XM_?__B1PDZ!^>__^#P`$/A"#___^)-"3HTI@#`(7`B<8/A6K^___I"?___\<$ -XM)`$```#H-[___^D7____D)!5B>5=HTA>"0C#C;8`````H4A>"0A5B>6%P'0, -XM7<<%2%X)"`````##H4Q>"0B%P'07BQ"#P`2C3%X)"(72=`E=B=`E____?\.A -XM4%X)"(L0A=)T%5V#P`2C4%X)"+@@````B15,7@D(PUVX_____\<%3%X)"``` -XM``##C;0F`````%6)Y8M%"(7`>":I````0'4?@_A_?QH/ML`/MX0`X"`)"*A# -XM=`O'!71>"0@!````D%W#C;0F`````(V\)P````!5B>5=QP7$EPH(`````,.0 -XM58GE@^P(B00DZ/*9`P#'!"0K```0HR!W"@CH$1X``,G#ZPV0D)"0D)"0D)"0 -XMD)"058GE5U93@^P\BQ5D7@D(A=)T"HL];%X)"(7_=0VC5%X)"(/$/%M>7UW# -XMB00DZ'Z7`P"+-61>"0B%]HE%[`^$[P(``,=%\`````"-M@````"+??"+%6!> -XM"0C!YP*+!#K'1=``````@_AS#X58`@``BUWP@\,!BQ2:A=*)5=0/A/\"``"! -XMX@```$!U0P^V5=2!^O\````/A\T"``"AX%T)"(M$D#3VQ`$/A=4"``"#?=1? -XM#X3+`@``@WW4?W<1BT74]@2%O5$)"`0/A;0"``"+5=3'!"3_N0@(B50D!.C_ -XM'0$`A<`/A9D"``"+#6!>"0B-``````C02QB4W$B<&)1=@Y$'0O -XMBT7$C7,"C0RPBQ&%TG0@C40X#.L/BU`$@\$$@\8!B;'`0````"+%6!>"0B-3@&)3?#!X0*+1=2)3>C'1>0``````=&)3=R)RSD! -XM=$2-3@*)3?#!X0*-'`J)3>B+"X7)="^-!+4(`````<+K%H-%\`&#P`2#PP2) -XM1>B+2@2)VH7)=`Z#1>0!B=,Y3=2)1>AUW,<#`````(M%V(D$).CT'0$`BU7L -XMB10DZ.D=`0"+3>"+1>S'1=``````P>$"B4W,ZQ2-="8`BT7(QT70`0```(EU -XM[(/`!(M5V(D$)(E4)`3HL9`#`(7`B<R)^XD,).AVG/__BU7D -XM*U7@C50"`<'B`HD4).@5*@,`*UWLP?L"B5PD"(G&BT7LB30DB40D!.A&HO__ -XMBTWB57(B10DB4PD!.@QF___BU7,C007B40D!`-=Y(T"0B%VP^%5/___XEU[,=%T`$```"+5=2+3=RA8%X) -XM"`%%Z(E1_(M%Z(D0BU70A=)T;.M6H6!>"0B+!`?'1=`!````B5WLB40D!(M5 -XM[(D4).AJ]P``A<")PW30B40D!(M-[(D,).CQFO__A<`/A((```"+5>R)%"3H -XMRA;%X)"#W___]_=`B#Z`&C;%X)"(-%\`&+3?`Y -XM#61>"0@/AQ[]__^+1>R)!"3H@_@``*&`7@D(QP547@D(^&\)"(7`#X3._/__ -XMQP0D````0.B@&@``@\0\6UY?7<.)%"3HG)K__^DO_?__BT7LB00DZ/`G`P#K -XMAL<$)%@```#H`AH``(GVZZ"-M"8`````C;PG`````%6)Y5=64X/L7(E%L(UT -XM)@"+#41>"0B%R0^%*@(``(L5F'<*"#D5?)P+"`^'2PH``*%47@D(A<`/A"," -XM``"+"(/`!*-47@D(@>'___]_A"0B%R0^/?`L``,<%5%X) -XM"`````#H_OK__X/X)(G!=`J#Q%R)R%M>7UW#BT6PA -XM"0@`````QP5D7@D(`````.@I____B47(@\`!#X2M`0``BUW(@_M[#X1,!0`` -XMB=@E____/X/X(P^$&04``(/[/P^$H04``(/[)0^$NP4``,=%O`````#'1;@` -XM````QT6T`````(/[(0^$H00```^/D@```(/[_P^$IP,``(/["@^$G@,``(G8 -XM)0```$")]G4)@_M_#X9,"```@_O_B?9T+X7`=2L/MM.!^O\```"0#X?F"@`` -XMH>!="0B+1)`T]L0%#X48!P``@_M?#X0/!P``BT6\OB0V"0B%P'40BT6XA<`/ -XMA.<&``"^]"X)"(U%V(ET)`2)!"3HY)`#`(U5V(D4).E/`P``@_LJ#X2R`@`` -XM@?L\``!`#X3%````@_LDD`^%8?___XM5O`E5N(M-N`M-M`^%-@D``*&\F0L( -XMZ%[Z__^-1=B)!"3HHQH``(-]R'L/A?G]___H5/G__X/X?9`/A.K]___'1"0$ -XM?0```,<$)#(```#H)A@``(L-1%X)"(7)#X36_?__QP5$7@D(`````(/$7(G( -XM6UY?7<.-="8`BQ5<7@D(A=(/CO_]__^+%5A>"0B+`H/"!(D56%X)".C<^?__ -XM@RU<7@D(`>F`_?__QP0D`````.C$%P``Z6_]__^+1;B%P`^%:0@``(M%O(7` -XM#X4S"```BT6TA<`/A0\(```Q]HU]YL<%.%X)"`````#K'HM%[#'V@_@*#X29 -XM````B40D!,<$)#1>"0CH/XT#`(U5\(D4).@DBP,`C00WB40D!*%$F0L(QT0D -XM"`$```")!"3H.!H!`(U-\(D,)(G#Z(L9``"#ZP%U4(/&`8U%[(ET)`B)?"0$ -XMB00DZ#"4`P"#^/\/A,<```"%P`^.\````#GZ____*<:-!`>)="0(B40D -XM!(D\).C>F___BT7L@_@*#X5G____A?:-7>QU(.M@BT7L,?:#^`IT5HE$)`3' -XM!"0T7@D(Z).,`P"%]G1"B70D"(E\)`2)'"3HOY,#`(/X_P^$E@```(7`#XZV -XM````.?!TO2G&C00'B70D"(E$)`2)/"3H<9O__XM%[(/X"G6JQP0D-%X)".BA -XMC`,`Z'P.``"A-%X)".AB^/__C578B10DZ*<8``#I__W__XGVQT0D"`````#' -XM1"0$`````,<$)`````#H\);__X/^!0^&O/[__P^V1>8-```@`(E%[+@!```` -XMZ0;___^0C70F`,=$)`@`````QT0D!`````#'!"0`````Z+"6__\/MD7F#0`` -XM(`")1>RX`0```.E`____C4W8O_____^)#"3'1"0$)#8)".@&C@,`C478B00D -XMZ.N+`P#'1"0$Q)@*",<$)"0V"0CHEW\!`(G&BT6XA"0B-5=B)%"3HT!<``.DH_?__BT6\OB0V"0B%P'40BWVXA?\/A((# -XM``"^]"X)"(U5V(ET)`2)%"3HD(T#`(U-V(D,).AUBP,`O_____^)-"3'1"0$ -XMQ)@*".@@?P$`B<:)V.@G]O__A?8/A*X!``"+!H7`#X2D`0``C478B00DZ%H7 -XM```QP.BC^O__B<.+!HD$).@'%@$`BU6\"?J)14__\!1,`P"C,%X)".@=]?__ -XMZ<7Z__^AY*P+"(L-X*P+"(E%W*'HK`L(B4W8B47@C478QT0D!+"1"`B)!"3H -XMW!4``.L4@_C_="6-5=B)7"0$B10DZ*:(`P"X`0```.AL^/__@_A=B<-T%X/X -XM"G76QP0D!0```.BT$@``C70F`.O)C4W8B0PDZ-.(`P"A5%X)"(M=V(7`#X1B -XM`@``QP0D!@```.B'$@``BQ.%T@^$9`(``/?"````0`^$)0$``,=%T`$```"# -XM^BH/A&<"``"#^BT/A$T#``#'1"0$+0```,<$)#(```#H1!(``(M%T(7`=1*+ -XM1<"%P`^%.P0``,=%P/____^+.X7_#X7,`P``C578B10DZ&84``"+?<#I2OW_ -XM_XM%T(U?`2M=T,'@`HE%Q.@*"@``BP:)'5Q>"0B#Z`0#1<2C6%X)".F/^?__ -XMQP0D`````.C6$0``Z;CX___'!"0?````Z,41``"0C70F`(U-V(E<)`2)#"3H -XM@8<#`#'`Z$KW__^#^/^)PW0IJ0```$!U(@^VT('Z_P````^'FP$``*'@70D( -XMBT20-/;$!76_@_M?=+J-1=@Q_XD$).B=AP,`B=CH9O+__\=$)`3$F`H(BT78 -XMB00DZ$-[`0")QNFG^___@_I_#X?2_O__]@25O5$)"`3'1=``````=13IO/[_ -XM_X/Z?W"0CIT_?__XL]7%X)"(7_#X60_?__BQ.% -XMT@^%G/W__\<$)`````#H#1```(L3]\(```!`#X6._?__Z:[^__^#PP3IKOW_ -XM_XD4).CVC___Z6'^__^A>)P+"(L,D(U"`:.8=PH(@>'___]_A7UW#QP0D`````.A)#@``Z2/\__^-="8`Z$OO__^#^'V)PW04QT0D -XM!'T```#'!"0R````Z"`.``")V.@9[___Z67Y__^+1=B)!"3H214!`.GO^/__ -XMB10DZ`B.___I%O7__XU%V(D$).@\$```BT8$Z+3O___IC_/__XM%V(D$).BD -XMB0,`B00DZ-B,__^Z$"\)"(7`#X4I^/__Z2GX__^+%?1="0B%T@^$B@```(M% -XMM(7`=%ZA]%T)"(D$).@DCO__B00DZ(!X`0")!"3H2.L``.GX]___QT0D!,28 -XM"@C'!"0D-@D(Z%]W`0"%P(G`]___C4W8OJ0@"0B)#"0QV^BC#P``QT7$ -XM!````.E(^___Z%(%``"A]%T)".@X[___Z:CW___'!"0K````Z"<-``#IOOS_ -XM_\<$)`0```#H%@T``(VV`````.E?____C70F`(V\)P````!5B>575E.![%R` -XM``"-?>3'1=@`````QT7<`````,=%X`````#'1CO__@\`! -XM=:;'1"0$`````(D\).B)C?__H0AV"@B)!"3HP!D#`(MUY(M=Z.AQDO__,?,Q -XMPX'C____`(D<).@C=P$`QP0D0#()"(G#B40D!.A!A0,`B1PDHPAV"@CHA!D# -XM`.E(____B1PDZ+.-___H_H[__XDPZ/>.__^+`(D$).B=C/__B5PD!,<$)#8` -XM``")1"0(Z-T+``")'"2-GXW__XM%"(U5[(F5M'___XD4),=%\``` -XM``")1>S'!71>"0@`````Z$>F``"-5>R)%"3'1"0$0/X$".CTI0``H71>"0C' -XM1<@`````QP7$EPH(`0```,=$)`2`_@0(B86\?___QP0DQ)<*".A4#@``C578 -XMB10DQT0D!+"1"`CH00X``(U%S,=$)`2PD0@(B00DZ"X.``"-5"0B)%5!>"0C'1=``````N`$```#H -XM2?#__X/X_W0QB<:!YO___S]TYX/^7`^$V`$``(U%S(D$)(ET)`3H4H`#`+@! -XM````Z!CP__^#^/]USXU5S(D4).B8@`,`BW7,QT0D!&````")-"3H@8[__X7` -XM#X3"`0``QT0D!`$```")-"3H+;$``(F%P'___XN%P'___XL0B<>%TG1$BP*) -XMUH7`=!V0)?___S^)`X/#!#F=N'___W1XBT8$@\8$A"0C___]_,<#H7NW__XG#@_MG#X23````@_MA -XM#X2^`0``@_MS#X2M````B5PD!,<$)!ZZ"`CH<0@!`(7`#X1Y`0``B5PD!,<$ -XM)&!>"0CH27T#`(/[<0^$=0$``#'`Z`GM__^#^#J)PP^%/P$``#'`Z/?L___' -XM!6Q>"0@!````QP5P7@D(`````(/X9XG##X1I____@_AA#X5S____QP5P7@D( -XM`0```.E;____@3UL7@D(____?P^$;____\<%;%X)"/___W\QP.B?[/__B<.# -XM^W,/A5/___\QP.B-[/__QT0D!',```#'!"1@7@D(B!="0B+1)`T]L0!=6F#_U]T9(/_?W<*]@2]O5$)"`1U58E\)`3'!"3_N0@( -XMZ%`'`0"%P'5!O@(```#K))"-="8`B5PD!,<$)&!>"0CH('P#`#'`.=\/E,`I -XMQ@^$T?[__S'`Z-KK__^#^/^)PW73A?8/A+O^___'!"18````Z*\%``"#Q`R) -XMV%M>7UWI$>?__Y")7"0$QP0D!P```.@`!@``Z7+^___'!6Q>"0C___]_Z7S^ -XM__^A<%X)"(7`#X4^_O__QP5P7@D(`0```.G*_O__B10DZ-2%___I*O___XUV -XM`%6)Y5.)PX/L%.LWD(UT)@"#^O]T8872>!WWP@```$"0=12#^G]_#P^VP@^W -XMA`#@(`D(J`]U58E4)`2)'"3H3GL#`+@!````Z!3K__^#^%R)PG6],<#H!NO_ -XM_X/X_W0<@_@*NB````!TOHG"@575E.#["RC4%X)"#'`QT7H -XM`````,=%[`````#'1?``````QP5,7@D(^&\)",<%1%X)"`````#HXN7__XU% -XMZ,<%5%X)"`````#'!5Q>"0@`````QT0D!/"1"`B)!"3HJP<``(U%W#';QT7< -XM`````,=%X`````#'1>0`````QT0D!+"1"`B)!"3H@0<``)"X`0```.@FZO__ -XM@_@GB<9T=']0@_@@=.B0C;0F``````^/_P$``(/X"8VT)@````!TSH/X"@^$ -XM]@```(/X_XGV#X3&`0``B35$7@D(C470,`@_XB#Y3`#[;XB?:) -XM^.B9Z?__.<:)PW1H@_@*#X3`````@_C_#X2W````B=@E____?ST*``!`#X3' -XM````@_XG#X3M````@_Y@#X3^````@_XB=;B#^V"X8````'0'B=@-````0(E$ -XM)`2-1=R)!"3H:'D#`(GXZ#'I__\YQHG#=9B#_F`/A3[___^-1=R)!"3'1"0$ -XM8````.@_>0,`C47B)!"3HSWH#`.EO_O__B70D!,<$)#,```#H -XM&@,``(G8)?___W\]"@``0`^%.?___XM5X(72#X0N____BT7`,` -XMZ;_^__^-1=R)7"0$B00DZ(!X`P#IJ_[__S'`Z$3H__^#^`J0#X0*_O__@_C_ -XM#X0!_O__B<:!S@```$#I.O[__X7;B?9T([C_____Z'3C__^-="8`Z0S___^# -XM^"(/A1C^__^)]NE0_O__C47B)!"3HFGD#`(/$+%M>7UW#B?95B>6#["B)=?PQ]HE=^(L- -XM*'<*"(7)=`R)\(M=^(MU_(GL7<.+10C'1?0`````B47PC47PZ,?\__^)PXL` -XMAP,`B1PDB<;H8`@!`(GPBUWXBW7\B>Q=PXUT)@!5B>53@^P$ -XMBQTH=PH(A=MU3XM%"(M($(G+C;0F`````(L1A=)T.HL"@\$$A!VI -XM````0'46@_A_C78`?PX/ML#VA`#@(`D(PW47D(M"!(/"!(7`==6+$872=<:# -XMQ`1;7<.)V.@#_/__BU4(B<.+0A")!"3HTP5=PXUT)@"-O"<`````58GE@^P(H`#`P6\8`D(BQ")%"3_4`2AP&`)"#L%Q&`)"'?:R<.0C70F`%6AQ&`)"(L5 -XMP&`)"(GE78D5Q&`)",.-=@"-O"<`````58GEBT4(BP")10A=Z>\-`P#K#9"0 -XMD)"0D)"0D)"0D)!5B>6#[!BA@%X)"(7`=`+)PX%]"(8```"-10R)1?QV!\=% -XM"(4```")1"0$BU4(BP25H%X)"(D$).AS6@,`HX!>"0C)PXVV`````(V_```` -XM`%6)Y8/L".@E____QT0D!`$```#'!"0`F@L(Z'V!__^058GE5U93@^P<```!`=`Z+-8!>"0B%]@^$M````(G>@>;_ -XM__\/@?Z&````=@6^A0```.CB&P$`]\,````@QP7`F`H(`0````^$C````*&` -XM7@D(A<<$)`$```#HAY___^@RS```QT0D"`(```#'1"0$&"\)",<$ -XM)/0N"0CH=G(!`*'4EPH(A -XM7UW#@>,````0=5B%_W0IH8!>"0C'!"2F&`D(B40D!.@O6@,`Z4[___^+%>1U -XM"0B%TG2)Z7C___^+1?")1"0$BP2UH%X)"(D$).CE60,`QP0D;\<(".CY60,` -XMZ1C___^-="8`H2!W"@C'!"0HN@@(B40D!.C;60,`ZY&)]HV\)P````!5B>5= -XMZ:<#`0"-M"8`````58GEBT4(BP")10A=Z<\#`0#K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[!B+10C'1"0(`````,<$)`,```")1"0$Z-M]___)PXVV`````(V\)P`` -XM``!5B>6#[!B+10C'1"0(`````,<$)`(```")1"0$Z.N!___)PXVV`````(V\ -XM)P````!5B>53@^P4BUT(.1W`8`D(7<.-=@#H=W[__XUT)@"-O"<`````58GE4X/L!(L5O&`)"*'` -XM8`D(BUT(C0S".6#[`B+#`#B40D!*&\8`D(B00DZ$,+`P"+#"0BA@)@* -XM"(D$).B`70``B00DZ.@&`0#'1"0,7[H(",=$)`@#````QT0D!`$```"CI%X) -XM"*&`F`H(B00DZ$Y=``")!"3HM@8!`,=$)`QMN@@(QT0D"`0```#'1"0$`0`` -XM`*.H7@D(H8"8"@B)!"3H'%T``(D$).B$!@$`QT0D#'ZZ"`C'1"0(!0```,=$ -XM)`0!````HZQ>"0BA@)@*"(D$).CJ7```B00DZ%(&`0#'1"0,C;H(",=$)`@& -XM````QT0D!`$```"CL%X)"*&`F`H(B00DZ+A<``")!"3H(`8!`,=$)`RDN@@( -XMQT0D"`<```#'1"0$`0```*.T7@D(H8"8"@B)!"3HAEP``(D$).CN!0$`QT0D -XM#,*Z"`C'1"0("````,=$)`0!````H[A>"0BA@)@*"(D$).A47```B00DZ+P% -XM`0#'1"0,V[H(",=$)`@)````QT0D!`$```"CO%X)"*&`F`H(B00DZ")<``") -XM!"3HB@4!`,=$)`SKN@@(QT0D"`H```#'1"0$`0```*/`7@D(H8"8"@B)!"3H -XM\%L``(D$).A8!0$`QT0D#/^Z"`C'1"0("P```,=$)`0!````H\1>"0BA@)@* -XM"(D$).B^6P``B00DZ"8%`0#'1"0,#;L(",=$)`@,````QT0D!`$```"CR%X) -XM"*&`F`H(B00DZ(Q;``")!"3H]`0!`,=$)`P?NP@(QT0D"`T```#'1"0$`0`` -XM`*/,7@D(H8"8"@B)!"3H6EL``(D$).C"!`$`QT0D##.["`C'1"0(#@```,=$ -XM)`0!````H]!>"0BA@)@*"(D$).@H6P``B00DZ)`$`0#'1"0,1;L(",=$)`@/ -XM````QT0D!`$```"CU%X)"*&`F`H(B00DZ/9:``")!"3H7@0!`,=$)`Q7NP@( -XMQT0D"!````#'1"0$`0```*/87@D(H8"8"@B)!"3HQ%H``(D$).@L!`$`QT0D -XM#&J["`C'1"0($0```,=$)`0!````H]Q>"0BA@)@*"(D$).B26@``B00DZ/H# -XM`0#'1"0,AKL(",=$)`@2````QT0D!`$```"CX%X)"*&`F`H(B00DZ&!:``") -XM!"3HR`,!`,=$)`R/NP@(QT0D"!,```#'1"0$`0```*/D7@D(H8"8"@B)!"3H -XM+EH``(D$).B6`P$`QT0D#)V["`C'1"0(%````,=$)`0!````H^A>"0BA@)@* -XM"(D$).C\60``B00DZ&0#`0#'1"0,M;L(",=$)`@5````QT0D!`$```"C[%X) -XM"*&`F`H(B00DZ,I9``")!"3H,@,!`,=$)`S"NP@(QT0D"!8```#'1"0$`0`` -XM`*/P7@D(H8"8"@B)!"3HF%D``(D$).@``P$`QT0D#-"["`C'1"0(%P```,=$ -XM)`0!````H_1>"0BA@)@*"(D$).AF60``B00DZ,X"`0#'1"0,WKL(",=$)`@8 -XM````QT0D!`$```"C^%X)"*&`F`H(B00DZ#19``")!"3HG`(!`,=$)`S,P@@( -XMQT0D"!D```#'1"0$`0```*/\7@D(H8"8"@B)!"3H`ED``(D$).AJ`@$`QT0D -XM#/&["`C'1"0(&@```,=$)`0!````HP!?"0BA@)@*"(D$).C06```B00DZ#@" -XM`0#'1"0,!+P(",=$)`@;````QT0D!`$```"C!%\)"*&`F`H(B00DZ)Y8``") -XM!"3H!@(!`,=$)`PBO`@(QT0D"!P```#'1"0$`0```*,(7PD(H8"8"@B)!"3H -XM;%@``(D$).C4`0$`QT0D#/#""`C'1"0('0```,=$)`0!````HPQ?"0BA@)@* -XM"(D$).@Z6```B00DZ*(!`0#'1"0,&,,(",=$)`@>````QT0D!`$```"C$%\) -XM"*&`F`H(B00DZ`A8``")!"3H<`$!`,=$)`PTO`@(QT0D"!\```#'1"0$`0`` -XM`*,47PD(H8"8"@B)!"3HUE<``(D$).@^`0$`QT0D#$##"`C'1"0((````,=$ -XM)`0!````HQA?"0BA@)@*"(D$).BD5P``B00DZ`P!`0#'1"0,2[P(",=$)`@A -XM````QT0D!`$```"C'%\)"*&`F`H(B00DZ')7``")!"3HV@`!`,=$)`QHO`@( -XMQT0D""(```#'1"0$`0```*,@7PD(H8"8"@B)!"3H0%<``(D$).BH``$`QT0D -XM#'J\"`C'1"0((P```,=$)`0!````HR1?"0BA@)@*"(D$).@.5P``B00DZ'8` -XM`0#'1"0,=,,(",=$)`@D````QT0D!`$```"C*%\)"*&`F`H(B00DZ-Q6``") -XM!"3H1``!`,=$)`R,O`@(QT0D""4```#'1"0$`0```*,L7PD(H8"8"@B)!"3H -XMJE8``(D$).@2``$`QT0D#*&\"`C'1"0()@```,=$)`0!````HS!?"0BA@)@* -XM"(D$).AX5@``B00DZ.#_``#'1"0,O[P(",=$)`@G````QT0D!`$```"C-%\) -XM"*&`F`H(B00DZ$96``")!"3HKO\``,=$)`S0O`@(QT0D""@```#'1"0$`0`` -XM`*,X7PD(H8"8"@B)!"3H%%8``(D$).A\_P``QT0D#-J\"`C'1"0(*0```,=$ -XM)`0!````HSQ?"0BA@)@*"(D$).CB50``B00DZ$K_``#'1"0,E,,(",=$)`@J -XM````QT0D!`$```"C0%\)"*&`F`H(B00DZ+!5``")!"3H&/\``,=$)`SJO`@( -XMQT0D""L```#'1"0$`0```*-$7PD(H8"8"@B)!"3H?E4``(D$).CF_@``QT0D -XM#/:\"`C'1"0(+````,=$)`0!````HTA?"0BA@)@*"(D$).A,50``B00DZ+3^ -XM``#'1"0,#;T(",=$)`@M````QT0D!`$```"C3%\)"*&`F`H(B00DZ!I5``") -XM!"3H@OX``,=$)`P;O0@(QT0D""X```#'1"0$`0```*-07PD(H8"8"@B)!"3H -XMZ%0``(D$).A0_@``QT0D#">]"`C'1"0(+P```,=$)`0!````HU1?"0BA@)@* -XM"(D$).BV5```B00DZ![^``#'1"0,.[T(",=$)`@P````QT0D!`$```"C6%\) -XM"*&`F`H(B00DZ(14``")!"3H[/T``,=$)`Q0O0@(QT0D"#$```#'1"0$`0`` -XM`*-<7PD(H8"8"@B)!"3H4E0``(D$).BZ_0``QT0D#&*]"`C'1"0(,@```,=$ -XM)`0!````HV!?"0BA@)@*"(D$).@@5```B00DZ(C]``#'1"0,:[T(",=$)`@S -XM````QT0D!`$```"C9%\)"*&`F`H(B00DZ.Y3``")!"3H5OT``,=$)`QVO0@( -XMQT0D"#0```#'1"0$`0```*-H7PD(H8"8"@B)!"3HO%,``(D$).@D_0``QT0D -XM#(.]"`C'1"0(-0```,=$)`0!````HVQ?"0BA@)@*"(D$).B*4P``B00DZ/+\ -XM``#'1"0,D;T(",=$)`@V````QT0D!`$```"C<%\)"*&`F`H(B00DZ%A3``") -XM!"3HP/P``,=$)`RAO0@(QT0D"#<```#'1"0$`0```*-T7PD(H8"8"@B)!"3H -XM)E,``(D$).B._```QT0D#/O>"`C'1"0(.````,=$)`0!````HWA?"0BA@)@* -XM"(D$).CT4@``B00DZ%S\``#'1"0,J+T(",=$)`@Y````QT0D!`$```"C?%\) -XM"*&`F`H(B00DZ,)2``")!"3H*OP``,=$)`RXPP@(QT0D"#H```#'1"0$`0`` -XM`*.`7PD(H8"8"@B)!"3HD%(``(D$).CX^P``QT0D#+N]"`C'1"0(.P```,=$ -XM)`0!````HX1?"0BA@)@*"(D$).A>4@``B00DZ,;[``#'1"0,RKT(",=$)`@\ -XM````QT0D!`$```"CB%\)"*&`F`H(B00DZ"Q2``")!"3HE/L``,=$)`S:O0@( -XMQT0D"#T```#'1"0$`0```*.,7PD(H8"8"@B)!"3H^E$``(D$).AB^P``QT0D -XM#.3#"`C'1"0(/@```,=$)`0!````HY!?"0BA@)@*"(D$).C(40``B00DZ##[ -XM``#'1"0,\;T(",=$)`@_````QT0D!`$```"CE%\)"*&`F`H(B00DZ)91``") -XM!"3H_OH``,=$)`P(Q`@(QT0D"$````#'1"0$`0```*.87PD(H8"8"@B)!"3H -XM9%$``(D$).C,^@``QT0D#`V^"`C'1"0(00```,=$)`0!````HYQ?"0BA@)@* -XM"(D$).@R40``B00DZ)KZ``#'1"0,*+X(",=$)`A#````QT0D!`$```"CH%\) -XM"*&`F`H(B00DZ`!1``")!"3H:/H``,=$)`P[O@@(QT0D"$0```#'1"0$`0`` -XM`*.D7PD(H8"8"@B)!"3HSE```(D$).@V^@``QT0D#%&^"`C'1"0(10```,=$ -XM)`0!````HZA?"0BA@)@*"(D$).B<4```B00DZ`3Z``#'1"0,7[X(",=$)`A& -XM````QT0D!`$```"CK%\)"*&`F`H(B00DZ&I0``")!"3HTOD``,=$)`QQO@@( -XMQT0D"$<```#'1"0$`0```*.P7PD(H8"8"@B)!"3H.%```(D$).B@^0``QT0D -XM#(B^"`C'1"0(2````,=$)`0!````H[1?"0BA@)@*"(D$).@&4```B00DZ&[Y -XM``#'1"0,FKX(",=$)`A)````QT0D!`$```"CN%\)"*&`F`H(B00DZ-1/``") -XM!"3H//D``,=$)`RHO@@(QT0D"$H```#'1"0$`0```*.\7PD(H8"8"@B)!"3H -XMHD\``(D$).@*^0``QT0D#"S$"`C'1"0(2P```,=$)`0!````H\!?"0BA@)@* -XM"(D$).AP3P``B00DZ-CX``#'1"0,3,0(",=$)`A,````QT0D!`$```"CQ%\) -XM"*&`F`H(B00DZ#Y/``")!"3HIO@``,=$)`RQO@@(QT0D"$T```#'1"0$`0`` -XM`*/(7PD(H8"8"@B)!"3H#$\``(D$).AT^```QT0D#,*^"`C'1"0(3@```,=$ -XM)`0!````H\Q?"0BA@)@*"(D$).C:3@``B00DZ$+X``#'1"0,<,0(",=$)`A/ -XM````QT0D!`$```"CT%\)"*&`F`H(B00DZ*A.``")!"3H$/@``,=$)`R]P``QT0D -XM#-B^"`C'1"0(40```,=$)`0!````H]A?"0BA@)@*"(D$).A$3@``B00DZ*SW -XM``#'1"0,\;X(",=$)`A2````QT0D!`$```"CW%\)"*&`F`H(B00DZ!).``") -XM!"3H>O<``,=$)`S`Q`@(QT0D"%,```#'1"0$`0```*/@7PD(H8"8"@B)!"3H -XMX$T``(D$).A(]P``QT0D#`V_"`C'1"0(5````,=$)`0!````H^1?"0BA@)@* -XM"(D$).BN30``B00DZ!;W``#'1"0,([\(",=$)`A5````QT0D!`$```"CZ%\) -XM"*&`F`H(B00DZ'Q-``")!"3HY/8``,=$)`P]OP@(QT0D"%8```#'1"0$`0`` -XM`*/L7PD(H8"8"@B)!"3H2DT``(D$).BR]@``QT0D#%>_"`C'1"0(5P```,=$ -XM)`0!````H_!?"0BA@)@*"(D$).@830``B00DZ(#V``#'1"0,9[\(",=$)`A8 -XM````QT0D!`$```"C]%\)"*&`F`H(B00DZ.9,``")!"3H3O8``,=$)`QROP@( -XMQT0D"%D```#'1"0$`0```*/X7PD(H8"8"@B)!"3HM$P``(D$).@<]@``QT0D -XM#(F_"`C'1"0(6@```,=$)`0!````H_Q?"0BA@)@*"(D$).B"3```B00DZ.KU -XM``#'1"0,F+\(",=$)`A;````QT0D!`$```"C`&`)"*&`F`H(B00DZ%!,``") -XM!"3HN/4``,=$)`RSOP@(QT0D"%P```#'1"0$`0```*,$8`D(H8"8"@B)!"3H -XM'DP``(D$).B&]0``QT0D#,R_"`C'1"0(70```,=$)`0!````HPA@"0BA@)@* -XM"(D$).CL2P``B00DZ%3U``#'1"0,W[\(",=$)`A>````QT0D!`$```"C#&`) -XM"*&`F`H(B00DZ+I+``")!"3H(O4``,=$)`SOOP@(QT0D"%\```#'1"0$`0`` -XM`*,08`D(H8"8"@B)!"3HB$L``(D$).CP]```QT0D#`S`"`C'1"0(8````,=$ -XM)`0!````HQ1@"0BA@)@*"(D$).A62P``B00DZ+[T``#'1"0,'\`(",=$)`AA -XM````QT0D!`$```"C&&`)"*&`F`H(B00DZ"1+``")!"3HC/0``,=$)`PNP`@( -XMQT0D"&(```#'1"0$`0```*,<8`D(H8"8"@B)!"3H\DH``(D$).A:]```QT0D -XM#$+`"`C'1"0(8P```,=$)`0!````HR!@"0BA@)@*"(D$).C`2@``B00DZ"CT -XM``#'1"0,3\`(",=$)`AD````QT0D!`$```"C)&`)"*&`F`H(B00DZ(Y*``") -XM!"3H]O,``,=$)`Q````,=$)`0!````HW1@"0BA@)@* -XM"(D$).BF1@``B00DZ`[P``#'1"0,K,4(",=$)`AY````QT0D!`$```"C>&`) -XM"*&`F`H(B00DZ'1&``")!"3HW.\``,=$)`SP```,=$ -XM)`0!````HX!@"0BA@)@*"(D$).@01@``B00DZ'CO``#'1"0,ML$(",=$)`A\ -XM````QT0D!`$```"CA&`)"*&`F`H(B00DZ-Y%``")!"3H1N\``,=$)`S-P0@( -XMQT0D"'T```#'1"0$`0```*.(8`D(H8"8"@B)!"3HK$4``(D$).@4[P``QT0D -XM#`#&"`C'1"0(@````,=$)`0!````HXQ@"0BA@)@*"(D$).AZ10``B00DZ.+N -XM``#'1"0,W\$(",=$)`B!````QT0D!`$```"CD&`)"*&`F`H(B00DZ$A%``") -XM!"3HL.X``,=$)`SYP0@(QT0D"((```#'1"0$`0```*.48`D(H8"8"@B)!"3H -XM%D4``(D$).A^[@``QT0D#$C&"`C'1"0(@P```,=$)`0!````HYA@"0BA@)@* -XM"(D$).CD1```B00DZ$SN``#'1"0,"\((",=$)`B$````QT0D!`$```"CG&`) -XM"*&`F`H(B00DZ+)$``")!"3H&NX``,=$)`P@P@@(QT0D"(4```#'1"0$`0`` -XM`*.@8`D(H8"8"@B)!"3H@$0``(D$).CH[0``QT0D##?""`C'1"0(A@```,=$ -XM)`0!````HZ1@"0BA@)@*"(D$).A.1```B00DZ+;M``#'1"0,5<((",=$)`B' -XM````QT0D!`$```"CJ&`)"*&`F`H(B00DZ!Q$``")!"3HA.T``,=$)`QFP@@( -XMQT0D"(@```#'1"0$`0```*.L8`D(H8"8"@B)!"3HZD,``(D$).A2[0``QT0D -XM#'#&"`C'1"0(B0```,=$)`0!````H[!@"0BA@)@*"(D$).BX0P``B00DZ"#M -XM``"CN&`)"(/$%%M=PY"0D)"053'`B>6+50A75E.+"H7)="B+-=A@"0B)UXVT -XM)@````!IP/$````QTHT$`8M/!(/'!/?VA6#["BA0)D+"(E=](EU^(E]_(7`=`J+'=A@"0B%VW5RBQW4 -XM8`D(A=L/A;````"+'?!@"0B+->Q@"0B)WP'W=$6A@)@*",=$)`P!QP@(QT0D -XM"`0```#'1"0$#0```(D$).CI0@``:\YDB5PD"(ET)`2)RL'Z'XD$)(G(]_^) -XM1"0,Z&D\`P"+7?2+=?B+??R)[%W#BS7,8`D(A?9TA*&`F`H(QT0D#*3&"`C' -XM1"0(`@```,=$)`0-````B00DZ(U"``"-%/4`````B50D"(E<)`2)!"3H%CP# -XM`.E#____D*&`F`H(QT0D#.S&"`C'1"0(`P```,=$)`0-````B00DZ$M"``") -XM7"0$B00DZ-\[`P#I&O___XUV`(V\)P````!5B>6#[`BAT&`)",<%0)D+"``` -XM``")!"3HX^T"`,<%T&`)"`````#)PXVT)@````!5B>53@^P4QT0D!,28"@C' -XM!"2`,@D(Z#5*`0"%P'1+BQWH=@H(Z&;\``"+10C'!<"8"@@!````QP7H=@H( -XM`````(D$).BG[```QP0D"@```.AK_@``Z#;\``")'>AV"@C'!<"8"@@````` -XM@\046UW#58GE5E.#['"+10B%P'0&BPB%R75KBT4,B00DZ*!;`P")QHU%F(E$ -XM)`2)-"3H*V+__X/``70@BU40A=)U(P^W3:")RH'B`/```('Z`(```'4%@^%) -XM=5*#Q'`QP%M>7<.0#[=-H+@!````B7<.+ -XM50R)!"2)5"0$Z(%8`P")PXD$).@G6P,`B1PDB<;HO>P"`.EZ____B30DQT0D -XM!`$```#HA&'__X7`#Y3`@\1P6P^VP%Y=PXGVC;PG`````%6)Y5=64X/L+(M% -XM#(M]"(7`#X5A`@``QT7P`````*$@)`D(P>`$!>#2"`@]X-(("'9YN_#2"`B+ -XM0_")!"3HWEP#`(D\)(E$)`3HKE[__X7`=4.+10R%P`^$Z@$``*&`F`H(QT0D -XM#"W'"`C'1"0("0```,=$)`0-````B00DZ#Y```")?"0$B00DZ-(Y`P#'1?`! -XM````H2`D"0B)VH/#$,'@!`7@T@@(.=!WC,=$)`3$F`H(QP0DE#()".A12`$` -XMA<")PP^$/P$``*%`F0L(QT7H`````(7`#X5C`@``B7PD!,<$)+@X"0CH4U<# -XM`(E%Y,=$)`0P*@@(B00DZ!#A__^+&X7;#X3S````BS.%]@^$Z0```(M%Z(M5 -XMZ,=%[``````!P,'B`HE%W(E5X.LFB?;V!=1@"0@"#X76````@\,$#X2W```` -XMBS.%]@^$K0```(-%[`&A0)D+"(7`=$C'1"0$C#,)"(DT).B/7?__A"+3>R+!`*#X1_3Z(/P`8/@ -XM`83`=9C'1"0(`````(M%Y(DT)(E$)`3H=/W__X7`#X1L____BW4,A?9T?(L# -XMQP0D4<<("(E$)`3H@S@#`(E\)`3'!"01%PD(Z',X`P"#PP3'1?`!````#X5) -XM____BU7DB10DZ&C?__^+1?"#Q"Q;7E]=PZ&`F`H(QT0D#$7'"`C'1"0("@`` -XM`,=$)`0-````B00DZ(@^``")!"3H(#@#`(MU#(7V=83'1?`!````BT7P@\0L -XM6UY?7<.AT&`)"(M5Z(M-[`^V!!"#X0?3Z(/P`8/@`>DI____B3PDZ'!8`P#' -XM1"0$+P```(D$).APW0``A<`/A;@```#'1"0$E'8*"(D\).AH1@$`A<`/A&?] -XM___'1"0$E'8*"(D\).A01@$`A<")PP^$3?W__Z&`F`H(QT0D#!O'"`C'1"0( -XM"````,=$)`0-````B00DZ-$]``")?"0$B00DZ&4W`P"+`X7`=`B)!"3HI^@` -XM`,<$)`H```#H:_H``,=%\`$```#I_?S__Z'08`D(BU77UW# -XMD%6)Y593@^P0BU4(BT($A575E.#[$R+10B+>`C'1"0$E'8* -XM"(L'B00DZ.]$`0#'1<0`````A#2"`@/AKP```"^ -XM\-((".L:H2`D"0B)\H/&$,'@!`7@T@@(.=`/AIL```"+1O")!"3H*U@#`(L? -XMB1PDB40D!.CY6?__A7UW#C;0F`````#G(#X18____#0```$")`X/# -XM!(/"!(L"A)!"3H28D``(D'B00DQT0D!#`J"`CH9]S__XL7 -XMB57(B10DZ#I5`P#'1"0$+P```(D$).@ZV@``B474QT0D!,28"@C'!"24,@D( -XMZ#-#`0"%P'00BS"%]G0*BP:%P`^%#0(``+[`(`D(BT7(QP0DN#@)"(E$)`3H -XM-U(#`,=%T`````")1=BA0)D+"(7`#X6?`@``BT70BU70BQ['1")5=SK/XL#A<`/A8$```#'1"0(`````(M%R,<$)`````")1"0$Z,_X -XM__^%P`^%E0```(M>!(/&!(7;#X1+`0``@T7,`8M%U(7`=;J+`X/X+W6UBPU` -XMF0L(A[`0```,<$),`X"0B)1"0$Z+-0`P")!XD$),=$)`0P*@@( -XMZ'':__^+50B)%"3H-K8``(L'B00DZ+S9___K,X/"!(D7BPKIL_S__XM%V(D$ -XM).C#Y`(`BT4,A<`/A)T```"+!S';B00DZ.Q0`P"+50R)`HU%[(D$).A\V?__ -XM@\1,B=A;7E]=PXM%U(7`#X3M_?__Z>/]__^AT&`)"(M5T(M-S`^V!!"#X0?3 -XMZ(/P`8/@`>F6_O__BT7$A<`/A;D```"A@)@*"(L?QT0D#%7'"`C'1"0(!0`` -XM`,=$)`0-````B00DZ&$X``")7"0$B00DZ/4Q`P#HX/(``.FJ_/__BT7$A<`/ -XMA8$```"A@)@*"(L?QT0D#'+'"`C'1"0(!@```,=$)`0-````B00DZ!DX``") -XM7"0$,=N)!"3HJS$#`.B6\@``Z2K___^+5"+3

3@,`B0>)'"3H).,"`,=$)`0P*@@(BP>)!"3HDMC__XM5#(72=".+!XD$ -XM).A!3P,`BU4,B0*+![L!````B00DZ,W7___I0?[__XM5"(D4).@MM```Z]^- -XM="8`C;PG`````%6)Y5=64X/L+(M=",=$)`3$F`H(QP0DE#()".@P/P$`A=N) -XMQG1BBT,$A`$`A?;'!4"9"P@!````#X1R`0``BS:%]@^$:`$` -XM`(L&A<`/A%X!``#'1?``````ZQB#Q@0/A$P!``"+!H7`D`^$00$``(-%\`&# -XM."]UXXD$).B93P,`B00DZ#U6__^%P(G'=,V)!"3'1"0$,!X%".B;UO__BT7P -XMBU7P@^`?@^(/B47HB57DB3PDZ'U9__^%P(G"#X3=````BPJ%R73H@'H(+G4; -XM@'H)`'3B-%(4`````N`$````#%=!@ -XM"0C3X`D"]@748`D(`0^$=?___XD<).@&40,`B00DZ/[P___'1"0,BL<(",=$ -XM)`@!````QT0D!`T```")1>RA@)@*"(D$).AV-```BU7PBTWLB5PD#(E4)`B) -XM3"0$B00DZ/PM`P")/"3HH%C__X7`B<(/A2/___^)/"3H\M3__X/&!`^%M/[_ -XM_X/$+%M>7UW#BTWP`P708`D(@^$'T^(($.EA____H2-%`"X`0````,5T&`)"-/@9@D"Z3C____'!53@^P4BUT(QT0D -XM"`````#'!"0"````C4,DB40D!.C75?__C4,\QT0D"`````")1"0$QP0D`P`` -XM`.B\5?__C4-4QT0D"`````")1"0$QP0D#P```.BA5?__QP7\F`H(`````(M# -XM(*/H=@H(H;1V"@B)!"3H!M<``*',EPH(B00DZ/G6``"A!'8*"(D$).CLU@`` -XMH429"PB)!"3HW]8``(M#$(E$)`2+`XD$).@>VP``QT0D"`$```#'1"0$`@`` -XM`(D$)*.T=@H(Z,U0__^+0Q2)1"0$BT,$B00DZ._:``#'1"0(`0```,=$)`0" -XM````B00DH\R7"@CHGE#__XM#&(E$)`2+0PB)!"3HP-H``,=$)`@!````QT0D -XM!`(```")!"2C!'8*".AO4/__BT,A@"0B)!"3H[=T" -XM`,<%Z&`)"`````"AY&`)"(7`=!")1"0$QP0D-P``$.A:T/__QP0D#0``$.A. -XMT/__R57B==64X/L+(E%V(D4).BZ3`,`B<.+1=B) -XM!"3H[4L#`(D=7)D+"(G&Z`Q3___'``````")7"0$B30DZ#I4___'!5R9"P@` -XM````B1PDZ*S6``#HXU+__XL`@_@(=%"#^`QT&X/X`G0-H>1@"0B%P`^$N@$` -XM`(/$+%M>7UW#D.BW4O__BP")!"3H75#__XET)`3'!"0V````B40D".B=S___ -XM@\0L6UY?7<.0C70F`,=$)`0`````B30DZ,#2``")1>"#P`%T+XU%\L=$)`@" -XM````B40D!(M%X(D$).A.T@``@_@"#X2!`0``A)!XE\)`2+1=R)!"3H(=<``(DWB<.+.(D$ -XM).AS2P,`B3PDB<;HJ4H#`(D<)(G'Z#_<`@"+1=R)!"3HA-4``(ET)`2)/"2) -XM-5R9"PCH[E+__XDT),<%7)D+"`````#H8-4``.B74?__BP")!"3H/4___XE\ -XM)`3'!"0V````B40D".A]SO__@\0L6UY?7<.0C70F`,=$)`3$F`H(QP0D*#() -XM".A,.`$`A<`/A-T```#'1"0$Q)@*",<$)"@R"0CHD#@!`(-]X/^)1>AT#H!] -XM\B-T"*&DF`H(B47HQT7L`````(U%Z(D$).C'V0``B47")!"3H^-(``(D<).@\3O__B70D!,<$)'@```")1"0( -XMZ'S-___I+O[__Z%T=PH(Z2W___^-M@````"-O"<`````58GE5U93@^Q,BWT( -XMC5WLBT<0BP#'1?``````B47LBT4,A%P`^$Y0$``(L(AO__\<%M'8*"``` -XM``#'!QT70``````'2P>`"B56XB46\ZRJ)]HL#AQ@"0@!QP5,F0L(`````(D4 -XM).B4UP(`Z&_Y__^#Q$Q;7E]=PXM%R(7`#X2I_O__Z9_^__^+!XD$).C]Y___ -XMB47,Z<#^__^AT&`)"(M5S(M-T`^V!!"#X0?3Z(/P`8/@`>DU____B40D!(D< -XM).A:>```A<")Q@^%G_S__XM%[(D$).B%10,`QP0D,0``$*,@=PH(Z*3)___I -XM?OS__XD<)(E$)`3H(W@``(7`B<,/A03]__^AZ&`)"(D$).A,10,`QP0D,0`` -XM$*,@=PH(Z&O)___IX?S__XVV`````*'H8`D(BQ"#^B\/A(G\__^#^BX/A(#\ -XM___HDOC__Z'H8`D(Z7'\__^AT&`)"(M5N(M-T`^W!`*#X0_3Z(/P`8/@`>EX -XM_O__B?:-O"<`````58GE5E.#Q("AC'8*"(MU#(7`=0VAE'<*"(7`#X5/`@`` -XMQT0D!,28"@B-78S'!"1@-@D(Z,@R`0#'!"0`````A<`/E<`/ML")1"0$Z$"$ -XM``"-1;")1"0(QT0D!-!V"@C'!"0"````Z(%,__^-1")1"0(QT0D!%1W"@C'!"0/````Z$M,__^AZ'8*"(L5 -XMM'8*",=$)`3_____B46LHAV"@@` -XM````Z+O)___'!"3_____Z!_O`@")-"3'1"0$`0```.A/^?__B1PDZ/?(__^# -XM[(!;7EW#QP0D`````.ADZ@``Z:#]__^0D)"0D)"0D)"0D)"0D)!5A<")Y5.) -XMTP^$`@$``(L(A='N#^2)T=HUT -XM)@"#XPAT8(/Y/+@$````C78`=`>#^3ZP`G5,6UW#C70F`(M`"(7`==GVPQ!T -XM%H/Y?)!T.(/Y/'1N@_D^=0:#^CZ0=##VPP1TN8/Y/70_@_DAD'6N@_H]N`8` -XM``!TO8/Z?K`(=9WKM%LQP%W#@_HFC78`==!;N`$```!=PXVV`````(G06UW! -XMZ`2#X`'#@_H]=.*#^GZX!P````^%8O___XGVZ73___^#^CQUF(VV`````.O` -XMC;0F`````(V\)P````!5B>6#['B)!"2)7?2)=?B)UHE]_.CG0`,`@#@`B<-T -XM(8U&_X/X`78@B70D!(D<).A(1___BUWTBW7XBWW\B>Q=P[@!````Z^R-192) -XM1"0$B1PDZ$5'__^#P`%TY8ET)`2)'"3H%$?__X7`#X2"````BT6@.P4LF0L( -XM#X26````BT6D.P7HF`H(=%7'!"0$````Z'9&__^#^/^)QP^$H0```(7`#XZH -XM````C12%`````(D4).BXT@(`B3PDB<.)1"0$Z`9'__^+?:2-#(.)PHGV@^H! -XM>&.+0?R#Z00Y^'7Q#[=5G,'F`S'`A=8/E,#I0O___P^W59R)T"4`\```/0!` -XM``!T&H/^`70B@_X"="2)]N@G1?__#[=5G,'F!NO(9C'`@_X!=>/I"?___[Y) -XM````Z[1FOI(`ZZX/MU6575E.! -XM[/P```"+?0B)^X/#!(L#QP0DIL<("(E$)`3H:L0``(7`=>>+`X7`=0V#>_Q, -XMC5/\#X0``P``B40D!,<$)+W'"`CH0\0``(7`=7O'A13______P``QX48____ -XM`````,>%(/___Q`O"0B+`X7`#X6P````C4<$.=@/A*4```"+10RZ'P```(L8 -XMBS.)\.B9_/__A<`/A4D"``"+50R-0P2)`O9%$`$/A(D```#'!"3X;PD(Z*,\ -XM`P")QX'$_````(GX6UY?7<.+,X/#!,>%%/______``#'A2#___]L+PD(@_Y& -XM=!.#_E#'A2#___\@+PD(#X1)`@``QT0D!&PO"0B)'"3H?T+__X7`#X3^`0`` -XMQX48____`````(L#A<`/A%#____'!"1Z```0Z'O"___I2O___XDT)#'VQT0D -XM!`(```#H)'(``(F%'/___XD$),=$)`0P*@@(Z#[%__^+5P2-1P3'A1#___\` -XM````,?^)PXU"J(/X('9"A=(/B-8````Y%=Q="0@/CLH```"AX%T)"(N$D#0$ -XM``"#^&P/A,````"%_P^$ZP0``(U"OX/X.7#PP2%]G6)BY4<____B10D -XMZ`7$__^)-"3HG2P!`('$_````%M>B<>)^%]=P[H"````Z[.+E1S___^)%"3H -XM63T#`(D$).C]/___B00DZ`5'__^)QNNDN@0```#KBL=$)`0`````BX4<____ -XMB00DZ#CB__^)QNN#B="#^&P/A4#___^+A1#___^%P`^$500``(/Z3`^%,?__ -XM_XN]$/___XM3!(U#!+X!````A=(/A=W^__^+E1S___^)%"3HVSP#`(D$).CC -XMQ@``B[4@____A<")PW0*B00DZ.\^`P")QHD<).A5S@(`BX4<____B00DZ"?# -XM__^)-"3H?SH#`(G'Z=?]__^)-"3HD#P#`(U5B(E4)`2)!"3H'4/__X7`#X6C -XM````BU4,BQJ+,^F,_?__B70D!,<$),K'"`CH;<$``(7`#X3J_?__@\,$QX48 -XM____`0```.DR_?__B=.P3.GW_/__BP.#^"\/CJS]__^#^#QX4@____("\)".E:_?__,?;I-?[__\<$)`L``!#H^K___XM% -XM#(L8BS/IW?S__X/Z00^$=P,``(/Z30^$G`,``(MW*(N5&/___XEU\(72#X3W -XM_?__C47PB00DZ'E!__^)!"3HM3T#`,=$)`0*````B00DBF-?>B)\R7_#0``(X44____QT0D"-''"`C'1"0$!P```(E$)`R)-"3HPAD# -XM`(N%&/___X7`=`R`?>DP=`;&1>@PB?N+E1S___^)%"3HCL#__XD<).@V/`,` -XMB00DZ-XW`P")Q^DV^___BWC[__\/MT<()0#P```] -XM`"````^4P`^V\.G/^___#[='""4`\```/0!````/E,`/MO#IMOO__[X!```` -XMZ:S[__\/MT<()0#P```]`(````^4P`^V\.F3^___#[=W",'N"H/F`>F$^___ -XM#[=W",'N"8/F`>EU^___BY40____#[="""4`\```/0"@```/E,`/MO#I5OO_ -XM_XMW!.E.^___#[=W"NE%^___BY4<____B10DZ-@X`P"-58B)5"0$B00DZ&4_ -XM__^#P`$/A+@```"+$XU]B.GE^O__BX4<____B00DZ*@X`P"-E2C___^)5"0$ -XMB00DZ`(\__^#P`$/A*@```"+$XV%*/___XF%$/___^EO^___BT<0B00DZ!_! -XM``"%P(GX_?__BY4<____B10DZ->^__^+!HD$).A].@,`B00DZ"4V`P") -XMQ^E]^?__BW<8Z8W\__^+1PR)!"3H.\```(7`B<8/A+3]__^+A1S___^)!"3K -XMNHVV`````(MW(.E?_/__BX4<____B00DZ'J^__^+E2#___^)%"3HS#4#`(G' -XMZ23Y__^+E1S___^)%"3H5[[__XN%(/___XD$).BI-0,`B57B<=64X/L'(E5 -XMZ.@M"@``B47PB00DQT0D!#`J"`CH:K[__XL?N@0```"+`^CL]/__A<")Q@^$ -XMH@```(U#!(D'C4;YBUWH@_@!#X;>````B=J)^.CE"0``B47LQT0D!#`J"`B) -XM!"3H(K[__X/C`74?@_X5````C70F`'YN@_X'#X2M````@_X(B?9T?XM% -XM\(D$).A3O?__BQ^+`X7`=!3'1"0$,#L)"(D$).C'.O__AR)1"0$BT7P -XMB00DZ)UP``"%P`^4P`^V\.EB____@\L"Z1K___^+1>R)1"0$BT7PB00DZ'9P -XM``")QNE!____BT7LB40D!(M%\(D$).@9.O__A<`/E<`/MO#I(O___U6)Y8/L -XM&(E=](G#B77XB7W\B57PZ'?^__^+.XG&BP>%P'04QT0D!"@["0B)!"3HV3G_ -XM_X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\QQNO>C;0F```` -XM`%6)Y8/L&(E=](G#B77XB7W\B57PZ(?___^+.XG&BP>%P'04QT0D!"`["0B) -XM!"3H>3G__X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\)QNO> -XMC;0F`````%6)Y8/L&(E=](G3B77XB<:)??SHB/___XG'BP:)1?"+`(7`=!3' -XM1"0$%#L)"(D$).@7.?__AQ=PXM%\(/`!(7_B08/ -XME,`)PXGP@^,!B=KHG?___X7_#Y7"A<`/E<`/MO@AU^O%C;8`````C;\````` -XM58GE@^P8B5WTBUT,BT4(B77XB7W\B=KH9/___XG&BT4(BSB+!X7`=!3'1"0$ -XM"#L)"(D$).B3./__AQ=PXUT)@"+50B#XP$)\XU' -XM!(D"#Y7`#[;`B40D!(D4).B1____"?`/E<`/MO#KQ(VT)@````!5B>57B<=6 -XM4X/L3(E5O(L8BS.%]@^$&P(``,=$)`1`.PD(B30DZ"(X__^%P'5)@\,$B?B) -XM'XM5O.C#____QT0D!#`J"`B)PXD$).@1N___B=CH*OS__XD<)(G&Z&"Z__\Q -XMP(7V#Y3`B00DZ/$B`0"#Q$Q;7E]=P\=$)`1(.PD(B30DZ,4W__^%P'5%@\,$ -XMB?B)'XM5O.AF____QT0D!#`J"`B)QHD$).BTNO__B?#HS?O__XDT)(G#]]/H -XM`;K__XD<).B9(@$`@\1,6UY?7<.0QT0D!%`["0B)-"3H;#?__X7`=4R#PP2) -XM'XM%O(D\)(E$)`3HB/[__XG&BP>+$(72=`6#.BET#L<$)"$``!#H7;?__XL' -XMC5@$B1^)-"3H/B(!`(/$3%M>7UW#C;8`````QT0D!%@["0B)-"3H##?__X7` -XM#X4?`0``B=Z#Q@2-1>R)7<")\\9%R`''1# -XM/BT/A$L!``#V1;P"#X0L`0``B30DZ(DO`P#IT_W__XL'C5C\B1_'0/P````` -XMQT0D"`(```#'1"0$$"\)",<$)/0N"0CHZB@!`(U%X(E%Z(G#B47DQT7@^&\) -XM"(L&AW__^A@%X)"(7`=`S'!"0```!`Z/*T___'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$_____XD<).BZ`0$`C47@B00DZ`^W___HFE;__^DI -XM_O__QT0D!`(```")-"3H960``.F?_/__BT8$QP0DIL<("(E$)`3H;;4``(7` -XM=1N+1@3'!"2]QP@(B40D!.A6M0``A<`/A(/^__^+1;R)?"0$B30DB40D".BK -XM\/__Z57\__^-M@````!5B>6#["B)7?2)PXEU^(E]_(G7Z,C[__^Z`@```(E% -XM\(LSBP:)1>SHI.W__X7`=":-1@3WQP(```")`W0IBU7PB10DZ'C!`@"+1>R) -XM!"3HK2T#`(E%\(M%\(M=](MU^(M]_(GL7<.+5?#'1"0$,"H("(D4).C'MO__ -XMB?J)V.A^____QT0D!#`J"`B)QHD$).BLMO__@^+5>R+`H/X*G1G@_@O -XM=$*#^"5T'8UV`#'VBT7PB00DZ..U__^)-"3H>QX!`(E%\.N,B?#HC_?__X7` -XMB<-T2XM%\.B!]___B<+!^A_W^XG6Z\B)\.AO]___A<")PW0[BT7PZ&'W__^) -XMPL'Z'_?[B<;KJ(M%\.A.]___B<.)\.A%]___B<8/K_/KD,<$)$@```#H(K/_ -XM_XGVZZ7'!"1'````Z!*S__^)]NNUC;0F`````(V\)P````!5B>6#["B)7?2) -XMPXEU^(E]_(G7Z)C^__^Z`0```(E%\(LSBP:)1>SH5.S__X7`=1"+1?"+7?2+ -XM=?B+??R)[%W#C48$B0.+5?#'1"0$,"H("(D4).B8M?__B?J)V.B?____QT0D -XM!#`J"`B)QHD$).A]M?__@^R+`H/X*W0?@_@M=#`QVXM%\(D$).B\ -XMM/__B1PDZ%0=`0")1?#KCXM%\.AG]O__B<.)\.A>]O__C1P8Z]*+1?#H4?;_ -XM_XG#B?#H2/;__RG#Z[V-="8`58GE@^P8B5WTB77XB<:)??R)5?#H%____XG' -XMBP:+&(7;=!V+`\<$)-3'"`B)1"0$Z-NR``"%P'0'BP,[0P1T$(GXBUWTBW7X -XMBWW\B>Q=PY"#!@3'1"0$,"H("(D\).B]M/__BU7PB?#HD____\=$)`0P*@@( -XMB<:)!"3HH;3__X,[/'0HB?CHM?7__XG#B?#HK/7__XG!T_N)/"3HX+/__XD< -XM).AX'`$`BBP/HMNK__X7` -XMB<R)\.B#____QT0D!#`J"`B) -XMQHD$).C!L___]D7L`74=@_\#='F-M@````!^-H/_!`^$@P```(/_!8GV=$:+ -XM1?")!"3H\[+__XD\).B+&P$`B47PBT7PBUWTBW7XBWW\B>Q=PX/_`G75BT7P -XMZ(OT__^)PXGPZ(+T__\YPP^?P`^V^.NZBT7PZ'#T__^)PXGPZ&?T__\YPP^> -XMP`^V^.N?BT7PZ%7T__^)PXGPZ$ST__\YPP^=P`^V^.N$BT7PZ#KT__^)PXGP -XMZ#'T__\YPP^Q=PXGVN@$```#&1=W_Z]20C70F`%4QP(GE7>N(D(VT)@`` -XM``!5B>6#[`B)'"2)="0$BW4(BUT,Z%0R___'``````"+`XE%#(L&B44(BQPD -XMBW0D!(GL7>GU,O__B?:-O"<`````5;@!````B>575E.![$PA``#H*O___XU% -XM\,=$)`1`;04(B00DZ/>Q__^-A3/?__^)1"0$H;1V"@C'1"0(`"```(D$).C8 -XML0``A<")1?`/CM8-``"-E3/?__^)%"3&A`4SW___`.C'+`,`BTT(B0PDB40D -XM!.A$+O__BT4(B00DZ#DO__^+50B)1?"+7(+\@^-_@_L*#X20#0``.T4,#X2' -XM#0``,<"#^QL/E,"%P(F%V-[__P^$U0<``(M%\(/[&XM-"(T$@8F%S-[__P^$ -XM4`@``(N%S-[__\<``````(M5"#F5S-[__XF%T-[__W9"BXW,WO__B8W0WO__ -XMZQ>0C70F`(.MT-[__P2+C=#>__\Y30AS'8N5T-[__XM"_,<$)&#)"`B)1"0$ -XMZ#$R__^%P'31BX70WO__QT7L`````,=%E`````#'19@`````QT6<`````(,X -XM?@^$4P<``(N5T-[__\=$)`0O````B10DZ)PL__^+C=#>__\QTHF-W-[__X7` -XM=!2#P`2)PBN5T-[__XF%W-[__\'Z`HN-T-[__XE4)`2)#"3HF"<#`,=$)`0P -XM*@@(B87@WO__B00DZ&*P__^+A>#>__^#.'X/A$@&``")!"3H"R<#`(F%Y-[_ -XM_XN=Y-[__X7;#X1Z!@``BXWDWO__QT0D!#`J"`B)#"3H(;#__XN5Y-[__[B2 -XM'0D(BPJ%R0^%E0@``(D$).B0+___A<")A?S>__\/A!@,``#'A?C>__\````` -XMBXW__^)!"3HK*___\>%[-[__P$```#'A>C>__\`````B[7XWO__ -XMA?8/A.D$``#HT3+__X7`#X2M````BP")!"3H@RH#`(G'A?^)^8N5W-[__W4/ -XMZ9`````[`77$@\($@\$$BP*%P'7PBX7TWO__AR+ -XM`H7`#X13"P``.PL(.P2/C78`=0R#P@2#P0&+`H7`=>S'`@`` -XM```[C?3>__\/A3C___^+G>S>__^%VW0+BTV8A__^%P`^$ -XM0P<``(M%F(7`#X1H!```@[W8WO__`0^%2@<``(N%T-[__RM%"(M5#,'X`BG" -XMBX7XWO__C5K_A<`/A*,*``"+C=#>___'1"0(`@```,=$)`1(.PD(B0PDZ`5: -XM`0"+1>R+C=#>__^)7"0(B40D!(D,).B,60$`BX7@WO__B00DZ(ZM__^+79C' -XM!"0(````Z-_(``#'!"0(````Z-/(``"+C__^)#"3HH2O__X7`#X5B!@`` -XMQP0D(````.BQR```QP0D(````.BER```QP0D"````.B9R```QP0D"````.B- -XMR```Z`C'``"-C33___^#ZP&)C<#>__]T*,=$)`3$F`H(QP0D\$4)".BC%`$` -XMC94T____B97`WO__A<`/A/D)``"+10C'1"0$"0```(D$).BX+O__QX74WO__ -XM`````(7`#X3J````@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".A/K?__BY7$WO__ -XMH__^#992_B47`BT68B4PD"(-EF/V) -XM1<2+19S'1"0$`````(E%R(M%H(E%S(M%I(E%T(M%J(E%U(M%K(E%V(M%L(E% -XMW(M%M(E%X(M%N(E%Y(M%O(E%Z*',EPH(B00DZ'^L``"AS)<*",=$)`@!```` -XMQT0D!$;)"`B)!"3H$JP``(U%P(E$)`BAS)<*",=$)`0`````B00DZ$:L``#' -XM!"3$K`L(Z.JK___'A=3>__\!````BXW8WO__A__^%TG04 -XMQT0D!`````#'!"0`````Z-03`P"#!<2L"P@!QT0D!+"0"`C'!"3$K`L(Z#FL -XM__^+E<3>__^AS)<*"(E4)`2)!"3H_B?__XM%E(N-Q-[__\=$)`0`````B84T -XM____BT68B4PD"(F%./___XM%G(F%//___XM%H(-EH(")A4#___^+1:2)A43_ -XM__^+1:B)A4C___^+1:R)A4S___^+1;")A5#___^+1;2)A53___^+1;B)A5C_ -XM__^+1;R)A5S___^AS)<*"(D$).A,JP``BU4(BP*%P'12B=__^%P`^$$?G__XN5P-[__Z', -XMEPH(B50D!(D$).C-)O__BXW`WO__H%Z-[_ -XM_P````"+A?S>__^)!"3HCRW__X7`#X2[^___@\`(B00DZ)`E`P")Q^D(^___ -XMBY7HWO__A=(/CK#[__^+A?C>__^%P'2>Z,@L___'A>S>__\`````QX7HWO__ -XM`````.FK^O__C464B87$WO__BX7@WO__B00DZ(RI__^-E33___^+79B#O=C> -XM__\!B97`WO__#X6!_/__Z>#[__^+E>#>__^+G>#>__^+0@2#PP2%P`^%S@$` -XM`,=$)`3$F`H(QP0DD"\)".@]$0$`B5PD!(D$).@!(`,`B87DWO__BYWDWO__ -XMA=L/A8;Y__^-592)E<3>___I=?___XD\).AG(`,`C564B10DB40D!.A('@,` -XMZ?OY___'!"0*````Z/?$``#I&OC__\>%U-[__P$```#I"_W__\=$)`0O```` -XMB00DZ)\J__^%P`^%E?C__^C"*___BY70WO__QT0D!#`J"`C'!"0`````@\($ -XMB97__\`````QX7DWO__`````,>%^-[__P$```#'A>#> -XM__\`````Z1KY__^-M@````"#Z`2)A___IHO?__\=$)`3$F`H(QP0D($() -XM".C>#P$`A<`/A+7Y__^+`(7`#X2K^?__BPB%R8F-\-[__P^$F_G__XF%'-__ -XM_XGYBP&#P02%P'7WBY7PWO__BP*#P@2%P'7W.97PWO__#X0Y`0``.?ET+8UR -XM_(M2_#M1_(U!_(G#=1T[M?#>__\/A!D!```Y^W0-BT/\@^X$@^L$.09TXXN% -XM'-___XM`!(.%'-___P2%P(F%\-[__W6/BT68@\`!B468@^@!#X4D^?__B3PD -XMZ.L>`P")1>SIB_C__X/X+P^$*?[__XG>@\8$BP:%P'51.=X/A!;^__^)\"G8 -XMP?@"B1PDB40D!.@4'P,`B<.)!"3HRB`#`(D$).@BJ0``B1PDB___'!"22N0@(B50D!.C,_P(` -XMZ:KY__^)%"3H3R`#`.E>]___BXW\WO__B0PDZ(RI``#IJOC__X.%Z-[__P'I -XML_?__XE$)`2+193'1"0,4&T%",=$)`@$````B00DZ&@C__^+A>3>__^#O?C> -XM__\!BU68BWV4&]%-___X7`B<*)A03?__]U#\>%!-___P$```"Z`0```(N-`-__ -XM_XU$"O^)T3'2]_&)A__^-A33___^)A<#>__^+A__^%P`^.Q`$``(N- -XMR-[__XN%!-___XF](-___\>%"-___P````#!X0*#Z`&)C;S>__^)A;C>__^+ -XMG03?__^%VP^.4`$``(N-(-___S'VB[T(W___B8T8W___ZR*0BX6\WO__@\8! -XM`[W(WO__`848W___.[4$W___#X08`0``.;T`W___=M>+E1C?__^+`L<$))*Y -XM"`B)1"0$Z/_]`@"+A0S?__^Z(````(7`#X2+````BXT8W___BP&)1"0$BX4, -XMW___B00DZ+(;`P")PXD$).A8'@,`B1PDB840W___Z.JO`@"+C1#?__^-E33_ -XM__^)5"0$B0PDZ)XA__^%P'4X#[>-//___XG()0#P```]`*````^$R0```#T` -XMP```NCT```!T&#T`0```LB]T#X/A2;HJ````=06Z(````(D4).AYP```.;6X -XMWO__#XX-____BXT8W___BP&)!"3HB2+__XU8`3N=%-___P^-[O[__\<$)"`` -XM``"#PP'H/\```#N=%-___WSIZ=+^__]FQT7"4`#IW?W__\<$)`T```#H&\`` -XM`,<$)`H```#H#\```(.%"-___P&+E0C?__^#A2#?__\$.97(WO__#X5J_O__ -XMBY7@WO__B10DZ-&C___IW?;__XN5$-___XV%-/___XE$)`2)%"3HT"/__X7` -XM=1P/MX4\____NCX````E`/```#T`0```#X0C____ND````#I&?___XN%S-[_ -XM_\<$))*Y"`B)1"0$Z&3\`@#'!"0@````Z,B^``#'!"0(````Z+R^``#I*O;_ -XM_XU-\(D,).A,H___BT7P@<1,(0``6UY?7<.-392)C<3>___IEOG__XN%X-[_ -XM_XN5T-[__XE<)`B)1"0$B10DZ&1/`0#I6O7__S')QP(`````.XWTWO__#X4# -XM]/__Z<;T__^AS)<*",=$)`@!````QT0D!$3)"`B)!"3HV:(``(V--/___XF- -XMP-[__^G9]?__D)"0D)"0D)!5B>5=PXUT)@"-O"<`````58GE7<<%=&$)"``` -XM``##D%6)Y5W'!=0D"0@!````PY!5B>53@^P$H0!A"0B#^/]T$XD$)/\5\*P+ -XM",<%`&$)"/____^+'8"8"@B#^_]T,\<%@)@*"/_____K&I"-="8`Z/575E.#["R+11"+712)1"0(BT4,B5PD#(E$)`2+10B)!"3H9_[_ -XM_X,]`&$)"/^)QP^$V````#G##X30````B47LB00DZ&$D__^+#?Q@"0B%R8G" -XMC4`!B47H#X2Y````H?Q@"0B-=>2-7?")1?"0BT7HA<`/A(H```"A^&`)"`,% -XM_&`)""M%\(ET)!")7"0,B47DC47HB40D"(U%[(E$)`2A`&$)"(D$)/\5[*P+ -XM"(/``76[Z*(@__^#.`>-=@!U3J'X8`D(`<")1"0$H?Q@"0B)!"3H%JP"`(7` -XMB<)T,(M%\"L%_&`)"-$E^&`)"`'0B47PBT7HB17\8`D(A<`/A7;___^+/?Q@ -XM"0B0C70F`(/$+(GX6UY?7<.-0B&C^&`)"(D$).AVJP(`A<"C_&`)"`^%*O__ -XM_^O7C;0F`````%6)Y5=64X/L+,=$)`1P?`4(QP74)`D(`````,<$)-0D"0CH -XMZ9___Z$@)`D(QT7H`0```(E%\,'@!(VXX-(("('_X-(("'8DN^#2"`@Q]HL# -XMB00DZ!0C__\YQG,"B<:#PQ`Y^W+I@\8!B77HH>"7"@@QTL=%Y`$```#'1>P` -XM````@\`!]W7HA1T -XM6Z$@)`D(P>`$!>#2"`@[1=QVYHM%W(L8B1PDZ'4B__^)7"0$QP0D^]X("(G& -XMZ%?W`@`Y?>Q^&3MUZ',4QP0D(````(/&`>A>N@``.W7H=>R#1=P0@\`Y1=1^%HL]8&0)"(7_=5;'!"0*````Z"^Z``"#1>`!BT78.47@#X5? -XM____BQU@9`D(A=MT#,<$)`T```#H";H``,<$)`H```#H_;D``,<$)-0D"0CH -XMX9W__X/$+%M>7UWIM;<``,<$)`T```#HV;D``.NAV"@B)1=BAS)<*"(E%[*$$=@H(B47PZ.ZC``#'1"0(`0`` -XM`,=$)`0"````B477UW#B1PDB40D!.BR1P``A<") -XMPW0AQT0D!/`C!@B)WXD<).CZF___B1PDZ/*@``")QNDI_O__QP0D,0```.CO -XMF/__Z]&-M@````"-O"<`````58GE4X/L%(M="(L#HTAW"@B+0P3'!?R8"@@` -XM````HTB:"PB+0PBCZ'8*"*&T=@H(B00DZ`B>``"AS)<*"(D$).C[G0``H01V -XM"@B)!"3H[IT``(M#&(E$)`2+0PR)!"3H+*(``,=$)`@!````QT0D!`(```") -XM!"2CM'8*".C;%___BT,6#[`BAP'8*"(7`=3&AE'<*"(7` -XM=`C)PXVV`````,=$)`0!````QP0D`0```.BX&___QP7,K`L(`0```,G#QP0D -XM+@``$.A4E___Z\&)]E6)Y593@^PPH329"PB%P`^%50$``(UUX.@3-___B70D -XM",=$)`0`````QP0D$@```.CW&O__QT0D!`````#'!"02````Z%,;___'1"0$ -XM$@```,<$)`````#H/Q;__\=$)`@`````B70D!,<$)!(```#HMQK__X,]U)<* -XM"/]U:>G4````.QWP=@H(#X2>````B70D",=$)`0`````QP0D%0```.B%&O__ -XMQT0D!`````#'!"05````Z.$:___'1"0$%0```,<$)`````#HS17__\=$)`@` -XM````B70D!,<$)!4```#H11K__\<$)`\```#H&1G__X/X_XG#=8GH31G__XL` -XMB00DZ/,6___'1"0$ILD(",<$)#8```")1"0(Z"^6__\['?!V"@@/A6+___^A -XMW)D+",<$)`````")1"0$Z%H7__^AW)D+",<$)`\```")1"0$Z!45___'!"0/ -XM````Z*VT`@"#Q#!;7EW#QP0D2@```.C:E?__Z9K^__^0C70F`%6)Y5>)QU93 -XM@^P,BQ7@(@D(A=)X4+O@(@D(,?:-="8`BT,$B00DZ*43`P")/"2)1"0$Z*F7 -XM``"%P'02A?9T#,<$)"<``!#HA97__XG>BT,0@\,0A -XM7UW#QP0D%@``$#'VZ%V5___KYHUT)@"-O"<`````58GE@^Q(B7W\B<>-1>2) -XM7?2+70B)=?B+=0R)5=2)1"0$BP>)!"3HD1K__XM%U(7`=#Z+5>B)=?"+1>0[ -XM5?")7>Q]3HU5Y(E4)`2+!XD$).@X'/__,=*%P'A?BUWTB="+=?B+??R)[%W# -XMC;0F`````(GRB=B!\O___W_WT`G"="*)=>B+5>@[5?")7>2+1>1\LG\%.T7L -XM=JN)1>R)5?")]NNAH2R9"PB%P'35BT7LBU7PB47DB57HZXKHCA?__XGR@?+_ -XM__]_BP")1=R)V/?0"<(/A-\```"A@)@*",=$)`S4O@@(QT0D"`,```#'1"0$ -XM#P```(D$).CT]?__B00DZ%R?``#'1"0$,"H("(E%X(D$).@IE___BTW4N$7) -XM"`B%R0^%N0```(D$).@QGP``QT0D!#`J"`B)QHD$).C_EO__BT7")7"04B70D$(E\)`B)5"0,BU78B00DB50D!.CO[@(`BT7@ -XMB00DZ/25__^Z_____^FD_O__H8"8"@C'1"0,L,D(",=$)`@"````QT0D!`\` -XM``")!"3H%?7__^D<____H8"8"@C'1"0,M\D(",=$)`@$````QT0D!`\```") -XM!"3HZ_3__^D=____C;8`````58GE5S'_5E.#[`R+=0C'1?``````@\8$BQZ% -XMVW0T@SLM#X6*````@\,$BP.%P'3E@_AF#X3&````@_AH#X2S````QP0D@@`` -XM`.CRDO__B?;KU:'@(@D(,?:[X"()"(7`>$>)V(GZQP0D_____\=$)`3___]_ -XMZ';]__\]````@(/>_X/#$(L#A%]G03QT4(````((/$#%M> -XM7UWIEY+__X/$#%M>7UW#B=B)\^L*BT,$@\,$A=>+1?"%P'70QP0D````(.A-DO__Z\*_`0```.DH -XM____QT7P`0```.D<____D(UT)@!5B>56B<93@^P0H:`C"0B%P'0K,=OK#HL$ -XMG:0C"0B#PP&%P'09B40D!(DT).C;$?__A+`XE%\`^^$(L!*=!UVHM%\(D$).AI#P,`BTT(B0PD -XMB40D!.@V$?__AZ[F-M@````"-OP````!5B>6#[#B)7?2) -XMTXEU^(G&B7W\BW@(BT`$QP0DOB+5>R)1=B)5=R+5=R+1=B!\O___W_WT`G"#X2,```` -XMBPZ%R71WBT8,BU7PC' -XM1=0!````A?8/A6;____'1=P!````BS7@(@D(N^`B"0B%]G@3BU77UW#QP0D&```$.@IC___V478V`4@S@@(V04XS@@( -XMV=C[=V,=%R/_____'17UWIT8[__]E]Z@^W1>JT#&:)1>C9;>C? -XM?KKNHM5U(GP@\0\6UY?7>EH_?__VT8(V$W8V7WJ#[=%ZM@%(,X("+0, -XM9HE%Z-EMZ-]]R-EMZNN%BSZ%_P^$1?___[K^R0@(B=CH_O+__]E%V-@--,X( -XM"-E=V.DT____BP:%P`^%'O___[K7R0@(B=CHU_+__]E%V-@-*,X("-E=V.D- -XM____BP:%P`^$]_[__[KWR0@(B=CHL/+__]E%V-@-,,X("-E=V.GF_O__BP:% -XMP`^%Q````+K=R0@(B=CHB?+__]E%V-@-),X("-E=V.F__O__BP:%P`^%J?[_ -XM_]GNV478VNG?X,=%R`````#'1K>P;0,9HE%Z-EMZ-]]R-EMZNF&_O__ -XMBP:%P`^%1O[__[KOR0@(B=CH__'__^E!_O__NL;)"`B)V.CN\?__QT7(____ -XM_\=%S/___W_I3/[__XL&A<`/A`S^___'`VT```"ZYE7$/__A,EUX('[_P$``'_8B54(@\0$6UWI/A#__\<$)`````#H -XM,A#__P^WV(D<).@G$/__B5T,QT4(!575E.#[!R+10B) -XM1>RAT)<*"(E%\(L(AQT">L6@\($.P%U -XM#XM"!(/!!(7`=>^#.3UT%HM+!(/#!(7)=`2)S^O/@\0<6UY?7<.-0P3'`P`` -XM``")1"0$H="7"@B)!"3HAI,``*/0EPH(H=AU"0B)!"3H!)(``*'0EPH(B00D -XMZ,<'`P"CV'4)"(D[B3PDZ)B8`@"+1?")10B#Q!Q;7E]=Z8:8`@"-M@````!5 -XMB>575E.#[!RAT)<*"(E%X(L(A564X/L((M%"(M`!(7`=%:)!"3H=C@! -XM`(7`B<8/A+P```"A<&$)"(U=],<%<&$)"`$```")1?2)'"3'1"0$T#@&".AG -XMC/__B70D!,<$)!$7"0CHI^0"`(D<).BOB___@\0@6UY=P\<%=&$)"`$```#' -XM1"0$8'P%",<$)'1A"0CH*HS__XL=T)<*"(L#A)UU93@^Q,QT0D!,28"@B)1BQB%VW08QT0D!*PZ"0B)'"3H2@C__X7` -XM#X5[`@``QT70`0```(M7!#';N`$```"-=P2%T@^$LP```*&4=PH(A<`/A=@` -XM``")-"3HE3<``(G'A?]T$,=$)`3P(P8(B3PDZ`^+___V1=`!=`J#?<@@#X2_ -XM`0``BS>)^L=%S`````"+1=")5=31Z(A%N(7V=%2AE'<*"(7`=!GIU@$``(VT -XM)@`````-````0(D$).CCIP``BP:%P`^$3@$``(/&!(/X7'7A@'VX`'3;BQZ# -XMQ@2#^W9V<<<$)%P``$#H!:8``(G8Z\&+32)'"3H -XM&OL"`(DT).BR-@``B1PDB)^X7V#X2X_O__QT0D!,`["0B)-"3H$`;__XGZQT7,`````(7`#X4?_O__ -XMBW<$C5<$QT7,`0```.D-_O__C5WDB1PDZ,;Y`@")'"3H3HC__^DF_O__B=`- -XM````0(GVZ1#^___'1"0$O#H)"(D<).BW!?__QT70`@```(7`#X1M_?__QT0D -XM!-`Z"0B)'"3HF`7__\=%T`,```"%P`^$3OW__\=$)`3D.@D(B1PDZ'D%__^% -XMP`^5P`^VP(E%T.DN_?__C;8`````C;PG`````%4QP(GE@^P(BU4(Z,#\___) -XMZ9JA``"-=@"-O"<`````5;@@````B>6+50A=Z9_\___K#9"0D)"0D)"0D)"0 -XMD)!5B>575E.#["R-1>")!"3HK%,``*'@F0L(A"9 -XM"PAT+HG8BU`0BU@LA=)TY3L0=>$[5>!UW(/Z`G0QT!\=` -XM!`````#'!"0!````,?8Q_^C96```B<.-M"8`````@_L@#X2W````@_L)#X2N -XM````@_LC#X2X````@_O_B?8/A`D!``"#^PH/A`0"``")'"3HR4\``,=%\`$` -XM``")]L<$)`$```#HA%@``(/X7(G##X3^````@_LG#X3`````@_LB#X2W```` -XM@_O_C70F``^$N0```(/[*`^4P(G&BT7LAR)!"3HK/D"`(M% -XM\`GX=5J)\(3`=%2+3>R%R0^%OP$``(/[(+X!````#X5/____C;8`````QP0D -XM`0```.@$6```B7UW#,<`YWP^4 -XMP(/H`2''Z13____'!"0!````Z&]7``"#^`J)PP^%Z_[__[,@,?;I"?___Z$$ -XM80D(_R2%C,T(",=$)`0)R@@(,?;'!"04```0Z-F"__^#Q!R)\%M>7UW#H0AA -XM"0@Q]HD$).B0_@(`QT0D!!K*"`C'!"04```0HR!W"@CHIX+__X/$'(GP6UY? -XM7"__^#Q!R)\%M>7UW#QT0D!.(&"0@Q]L<$)!0``!#H1X+__X/$ -XM'(GP6UY?7<.+1>R%P`^$^O[__\<$)`H```#HMDT``(7V#X3H_O__BT7L@V@$ -XM`8D$).@_^`(`@\0) -XMQU:)UE.#[#R#_PJ)3@`````QT7L`````,=%\`````"C!&$)"(D-"&$) -XM"`^$Y@,``(U=Z,=$)`2PD0@(B1PDZ)2$___'1=``````H9B)'"3H?8/__X/$/%M>7UW#D(UT)@#_)(7,S0@(B=CH@0_/__ -XMA?8/B0O____I;O___X/_"W3D@_\$=-\QP.CR^___A?8/B>W^___I4/___Y"- -XM="8`@_\!#X1'`@``@_\!@]X`,<"#;=`!Z,;[__^%]@^)P?[__^DD____A?:- -XMM"8`````#X4*____@_\+C;0F``````^$!?___S'`Z)/[__^%]I`/B8W^___I -XM\/[__Y"-="8`@_\/#X77_O__A?:0C70F``^%RO[__S'`Z&/[__^-=@#IQO[_ -XM_X/_#P^%LO[__X7V#X6J_O__B=CH0_O__XM%[(7`#X7@`0``BU7HB10DZ*U] -XM__^)!"3H=8$``,=$)`0P*@@(B47,B00DZ**"__^+1B#?(+\.@^%,OW__X/H`8/_"HE%[,<$ -XM@@`````/A+````"#_P\/A1/]__^+1>C'1"0$H#L)"(D$).@<_O[_A<`/A?C\ -XM___I*?[__XUV`(M%T(7`#X6T_?__BQ7@F0L(A=(/A*;]__^+0BRCX)D+"(G0 -XMZ/CQ___IDOW__XL5Q",)".D/____BU7H@WR"_#H/A17^__^#Z`&)1>S'!((` -XM````Z0#^__^+`.DI____C478QT78`@```,=%W`````#'1>``````B00DZ&%- -XM``#I]?O__XM%R(E$)`2+1>B)!"3H=OW^_X7`#X52_/__Z8/]__^-M@````"- -XMO"<`````58GE@^P(BQ7@F0L(@WH0`G01C4(0B00DZ!--``#)Z1WX__^+0A0+ -XM0AAUYS'),=(QP.A:^___H>"9"PB#P!")!"3HNDL``*'@F0L(@T`4_X-0&/_) -XMZ>?W__^-M"8`````58GE@^P(H>"9"PB%P'07H2AW"@B%P'0(R<.-M@````#) -XMZ7K____'!"0O```0C78`Z.M\___KV(GVC;PG`````(L5*'<*"%6)Y872=`-= -XMPY!=,"9"PC'0!``````H91W"@B%P'4U -XM, -XM?O__H2AW"@B%P'4.B=DQTK@/````Z.?Y__^)70B#Q!!;7EWI&7[__XU3!+[X -XM;PD(ZYWK#9"0D)"0D)"0D)"0D)!5B>564X/L$(L=X)D+"(MU",<%Q",)"`H` -XM``"%VW44ZSV-0Q")!"3H-$L``(M;+(7;="N#>Q`"=>B+0Q0+0QAUX#'),=(Q -XMP.AT^?__C4,0B00DZ-E)``"+6RR%VW75B?$QTK@*````Z%3Y__^#Q!!;7EWI -XM^?7__XGVC;PG`````%6)Y5.#[!3'1"0$`````(M%"(M`!(D$).C3*@``QT0D -XM!#`J"`B)PXD$).CQ??__H2AW"@B%P'4(B1PDZ$#___^)70B#Q!1;7>DS??__ -XMC78`H2AW"@A5B>6%P'0$7<.)]ETQR3'2N`0```#IT?C__Y!5B>6#[!B+%>"9 -XM"PB+0BB%P'1CBT(@@W@$`(U(!'1!BP")2B")!"3H1/0"`(D$).AL?```QT0D -XM"`(```")1"0$H>"9"PB+0"B)!"3H<.T``*'@F0L(B00DZ!-*``#)PY#'1"0$ -XM`````,<$)`````#H+/W__\G#B10DZ/))``#)D,/K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[`B+#>"9"PB%R706BQ4H=PH(A=)T!LG#C70F`,GI2O___\<$)"\``!"- -XM=@#H^WG__^O9B?:-O"<`````58GE@^P(H>"9"PB%P'0GH>"9"PB#P!")!"3H -XM44@``*$H=PH(AGZ_O__QP0D+P``$(UV`.BK>?__Z\B) -XM]HV\)P````!5B>564X/L$(L=X)D+"(7;=`Z+`SL%[)@*"`^$@@```#';BQ4H -XM=PH(,?:#10@$A=)U'J'`=@H(A7 -XM7<.%VW6VC44(QT0D!`$```")!"3H&,#__X7`#Y3`#[;PZZZ+4PB+#?28"@B+ -XM0P0S!?"8"@@QT0G!#X5B____BT,,.P7XF`H(#X53____BTLHA"9"PB) -XM4"RCX)D+"*'`=@H(QP7$(PD($@```(7`#X09____Z(K[___HA?W__Y"-="8` -XMZ0G____'!"0A```0C70F`.@K>/__Z>S^__^-M@````!5B>6#[`BAC'8*"(7` -XM=0FAE'<*"(7`=1FA-)D+"(7`=`+)P\<$)$8```#H\7?__\G#QP0D`````.BS -XMFP``H329"PB%P'7;Z]N0C;0F`````%6)Y8/L&*&,=@H(A575KX!````4X/L#(M="(M%#(U[!(E%\(VV`````(L'B00D -XMZ`;?``#'1"0$`@```(D<)`^O\.CS?```BP.%P'04QT0D!&A-"0B)!"3H6?;^ -XM_X7`=,FA*'<*"(7`=`6^`0```*&4=PH(AQP0DQ*P+".B`>/__@\0,6UY?7>G$>P`` -XMQP0DQ*P+".AH>/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".CM>/__ZZ^#!<2L -XM"P@!QT0D!+"0"`C'!"3$K`L(Z-!X___I>?___XUT)@"-O"<`````58GE5KX! -XM````4X/L$*$H=PH(@T4(!(7`#X29````BUT(BP.%P`^$G@```,=$)`0@2`D( -XMB00DZ''U_O^%P'4QBT,$A7<.)]H7V=/.+50R+0A`IP\'[`HE<)`2)!"3HI7L``(M% -XM#(D$).@:_O__Z-5Z``"#Q!!;7EW#,53@^P4 -XMBT4(B00DZ&[Q`@#'1"0$\",&"(G#B00DZ+QW___HI_S__\=$)`3$F`H(QP0D -XM8#8)".BCW@``QP0D`````(7`#Y7`#[;`B40D!.@;,```QT0D"`````#'1"0$ -XM5'<*",<$)`\```#H6_C^_XE<)`3'!"0DR@@(Z*OX_O^)7"0$QP0D(,H(".B; -XM^/[_B1PDZ*=V___H,A3__\=%"`$```"#Q!1;7>EQ%/__D%6)Y8/L".@5_/__ -XMQT4,`````,=%"`````#)Z4$6__^058GE@^P(QT0D!)1V"@B+10B)!"3H=^`` -XM`,GI<1@!`)!5B>6#[`C'1"0$_____\<$),28"@CH9ML``,G#C70F`%6)Y593 -XM@^P0BT4(BW`$A?8/A-,```"+4`B-6`B%T@^$@@```,=$)`2@-PD(B30DZ(CS -XM_O^%P'58B30DZ'#O`@#'!"00```0HR!W"@CHCW/__XD<).@W?P``B30DB7>E7 -XMD0``QT4,_____\=%")1V"@B#Q!!;7EWI7MH``(/$$%M>7<.-M"8`````58GE -XM5U93@^PLBUT(BWL$@S\M=`S'!"1Z```0Z+!R__^-0PB)!"3H!2(``,=$)`3P -XM(P8(B47@B00DZ()U__^+=>")=?"+#H7)=%^-1?"#Q@3'1"0(`````(E$)`2) -XM/"3HO*[__\=$)`0P*@@(B<.)!"3H2G7__XE<)`3'!"22N0@(Z(K-`@")'"3H -XMDG3__XL>A=MTK<<$)!W<"`CH<,T"`(EU\(L.AE+Y0(`H91W -XM"@B%P'4DQT0D!`````#'!"0"````Z&KU_O_'!5!W"@@`````@\046UW#QT0D -XM!,"/"`C'!"0"````Z`KE`@#KVI"-M"8`````58GE@^P8B77XBW4(B5WTB7W\ -XMBWT,BT80B00DZ'"0__^+!Z,@=PH(BT80B00DZ,YQ``"-6/\[7PA\*SM?#'X, -XMQP0D#P``$.BEQ=_^''!"0.```0 -XMZ']P___KQXVV`````(V\)P````!5B>575E.#[`R+70B+0Q"+`(E%\(G"BP"I -XM````0`^%BP```(/X.G09B10DZ*!Q``"#^#H/A*(```"+5?"#.B5T>:$@)`D( -XMP>`$C;#@T@@(@?[@T@@(=E>_X-((".L-B?:%P'A$C7L0.?YV0XGP*?C!^`7! -XMX`2-'#B+1?"+"P^^$`^^`2G"B=!UUXD,).C?[0(`BU7PB10DB40D!.B@'0$` -XMA;R)WCG^=[TQVX/$#(G86UY?7<.+0P2H`70Q@^#^B4,$N\@C"0B) -XM%"3H;.L"`*/((PD(Z]6+1?"[Z",)"(D$).A5ZP(`H^@C"0CKOHM%\+O8(PD( -XMB00DZ#[K`@"CV",)".NGC;0F`````%6)Y5=6,?93@^P,BT4(B47PH="7"@B+ -XM&(7;#X24`@``BQ.%T@^$N0```#')@_H]#X2N````@\$!BQ2+A=(/A?X````Y -XMSGT"BV!^_\```!VVHD<))"-="8`Z&?M_O^I -XM```$`'31@SV`40D(`<<%0&0)"``````/E,(QP('[_P````^?P"'0HV"9"PCH -XM6?D!`*$\9`D(A<`/A$?^__^A0&0)"(7`#X4Z_O__Z$K)`0#I,/[__\=$)`2@ -XM3`D(B3PDZ-'L_O^%P'4-B1PDZ`EO`0#I#_[__\=$)`3@-`D(B3PDZ+#L_O^% -XMP`^%]_W__^B'S/__Z&+-__^)]NGF_?__B7T(@\0,6UY?7>G\;O__N`0```#I -XMG/W__XGV58GE5U93@^P,BT4(BW`$C7@$A?8/A)4"``"+!H7`="F)\^L*BT,$ -XM@\,$A)!"3H&F___XE\)`2)-"3H#N'_ -XM_\=$)`2(.PD(B30DZ.KK_O^%P`^$^````(GPZ,_9__^%P`^$%`$``,=$)`1% -XMR0@(NX````#'!"0`````Z+KQ_O_'1"0$1!="0CK'HM$GC2I```$`'4L@\,!@?O_````?R'WPP```$!U[8'[ -XM_P```';:B1PDB?;H9^O^_ZD```0`=-2#/8!1"0@!QP5`9`D(``````^4PC'` -XM@?O_````#Y_`(="C8)D+".A9]P$`BQT\9`D(A=MT+8L-0&0)"(7)=2/H4,7UWI,VW_ -XM_\=$)`3@-`D(B30DZ*_J_O^%P`^$O````,=$)`3`2PD(B30DZ)?J_O^%P'1V -XMQT0D!"A`"0B)-"3H@^K^_X7`#X7!````B3PDZ'=L``#'1"0(`@```,<$)-`O -XM"0B)1"0$Z'_=``")/"3H%VW__XD\).B_;/__B3PDZ#?F`@"+%8AW"@B%THG# -XM#X4\`0``QP5@90D(`````(/$#%M>7UWIR`$`B7T(@\0,6UY?7>E?;/__Z,K)___HI7UWI'N#__\=$)`0\0`D( -XMB30DZ*KI_O^%P'1%QT0D!!A*"0B)-"3HENG^_X7`#X7I````B3PDZ(IK``#' -XM1"0(`@```,<$)`!*"0B)1"0$Z)+<``")/"3H*FS__^F3_O__B7PD!(D\).AY -XM+O__B3PDB -XM7UWI*S?__[@(````OQZR"`C\B=Z)P?.F#X2M_O__N`4```"_,;(("(G>B<'S -XMI@^$E_[__\<$)(`Q"0C'!>29"P@!````QP6(=PH(`````.ANW```Z7+^___' -XM1"0$H#\)"(DT).B5Z/[_AY_[_A7UWI -XMT_0!`,=$)`0`3`D(B30DZ*_G_O^%P'31QT0D!"!,"0B)-"3HF^?^_X7`=+W' -XM1"0$Y$L)"(DT).B'Y_[_A!="0B+1)`T]L0!=1.#^U]T&L<$ -XM)!T``!#H*6?__XL>A=MT4_?#````0'4_BSW@70D(ZR.-=@"+1(!(7;="N#Q@3WPP```$!U%`^VPSW_````=M:)!"3HZN;^_^O0QP0D -XM'P``$.C09O__BT7PB<.+.(M`!(/#!(,X*`^$TP```,<$)!,``!#HKF;__X/# -XM!(D<).AS`0``A<`/A(````")1"0$B1PDZ!\5``"%P(G\````QT0D!#`` -XM``#'!"0!````Z$%T`@")<"2)PXEP((D$).CA-```B3PDZ`G@`@")0RBAX)D+ -XM",=#$`(```")0RR+/"9"PC'!<0C"0@)````A?]U/XLU*'<*"(7V -XM="F#Q`Q;7E]=PXD<).C#<0``B<:)!"3HJ0```.N"B10DZ`OF_O_IN_[__X/$ -XM#%M>7UWI+NO__^@IZ?__Z[J)'"2-="8`Z.MF``"+1(/\@S@I#X44____Z1O_ -XM__^A*'<*"(7`#X4W____QP0D,0``$.BP9?__Z2;___^0D)"0D)"0D)"0D%6) -XMY593@^P0BUT(ZPF-=@"+$(72=1"+`X/#!(7`=?&#Q!!;7EW#B<:)%"3_50R+ -XM5@2#Q@2%TG3>Z^Z-M@````!5B>6+30B+$8/!!(72=!*+`H7`=/$E____/XD" -XM@\($Z^Y=PXVV`````(V\)P````!5B>575E.#[`BAV)<*",=%\`````")1>R+ -XM50B+`H7`#X3I````@T4(!(L0@_I^#X1^````@_H]='F#^GL/A*````"%TG32 -XMBU@$C4@$ZS:)]H/Z>W0YA=)X._?"````0)!U,H/Z?W\M#[;"]H0`X"`)""!T -XM((--\`&#P02%VW29B=J+7@2#^F")SHUY_'7"@TWP`NOD@WWL`W7>A=N-="8` -XM#X1R____@_HN=`V#P02)]NO-@TWP`NN*@_LND(UT)@!UZ8M!!(7`=`6#^"]U -XMW8M5"#EZ_'0&@WGX+W7/@TWP`NO)BU@$A=L/A"O___^#^WT/A5/___^+2`B% -XMR0^%2/___XM5"(L"A<`/A1?___^+1?"#Q`A;7E]=PXVT)@````!5B>575E.# -XM[%R%THE%N(E5M(E-L(L`B47`#X2[`P``BQ*)5;R+1<"+`(7`B47$#X2``0`` -XMBWW`BU7$@SI[=12+0@2%P`^$6@$``(/X?0^$%P(``(M-Q,=$)`1[````B0PD -XMZ-;G_O^%P`^$-@$``(M%Q,=%Z`````#'1>P`````QT7P`````,=%W`````#' -XM1>``````QT7D`````,=%T`````"#.'MT$X/`!(,X>W7XB<,K7<3!^P*)7="- -XM<`2+0`2%P`^$%`$``(GSQT7,`````.L@@_A[#X3O````@_A]D`^$!P$``(/# -XM!(L#A<`/A.D```"#^%MUVX/#!(L#@_A=#X3M`@``A7^__\IPHG0P?@"@_AD`"B4VP -XMB40D!(D<).AQ<`(`BTVXB47`B0&+5<")^"G8@^#\C3P0BT6\*=B#X/P!T(E% -XMO.D!____BP:)!X/O!(DT).@;;P(`Z3K___^+0@B%P`^$+____^G9_?__BTW0 -XMC57HBT7$B10DB4PD"(E$)`3H/=D"`(U-W#G>B4VL#X>\````C47R)\"G(P?@"B40D".BWV`(`BTVHC47HB00DB4PD!.@EV0(`C57HB10D -XMZ`K7`@"+1>B)!"3H?]H"`(U-W(D,)(E$)`3H8-@"`(U.!(G..?,/@V3___^+ -XM7:R)'"3H&-@"`(G&BT7HB00DZ`MN`@"+1>"%P(E%R`^)I?W___?8Z8[]__^- -XMM@````"#1"L"PB+=?R)`Z'DK`L(B4,$H>BL"PB)0PB+ -XM7?B)[%W#C70F`(V\)P````!5B>575HG.4X'LK*```(F%<%___XM%"(F5;%__ -XM_X7`=1#'A7Q?__\`````]D$#0'0*QX5\7___````0(U%Y(U=[(E%W,9%S`'' -XM1=``0```QT74`````,=%V`````#'1>``````QT7D0#P)",=%Z`````#HR8$` -XM`(U%S(D$),=$)`1@/P8(Z"9B__^)'"3H3JH``(D<)(U=\,=$)`1`'@4(Z`MB -XM___'1"0$0!X%"(D<).C[8?__C57,QT0D!/____^)%"3H.)P``(7`#X4O`P`` -XMBT7LB00DZ$5D``"+1?#'1"0$`0```(D$).B":```H01V"@C'1"0$`@```(D$ -XM).AM:```Z!CG_O_HPV@``(DUD'8*"(L&A!.L.@_@-=#&+`X/#!(7` -XM=#$E____/XE#_,=$)`3$F`H(QP0DX#$)".AHR```A"0B%P'02B00DZ/]J`@#'!8!>"0@` -XM````QP0D>'8*".@96```QT0D!)#I!0C'!"1X=@H(Z%5@__^A@%X)"(7`=`S' -XM!"0```!`Z%!=___'!"1X=@H(Z/1X``"A@'8*",=$)`@`````QT0D!'AV"@B) -XM!"3H9W4``,=$)`1`*P8(B<.)!"3H!6#__Z&`7@D(A___'!"0`F@L(Z(#=_O^AP)@*",<%<'8* -XM"`````"%P`^$S?[__XN%@%___\<%_)@*"`````")!"3H55[__XN5O%___XN% -XMN%___XD5+)H+"(N5M%___Z,HF@L(BX6P7___B14DF@L(BY6L7___HR":"PB+ -XMA:A?__^)%1R:"PB+E:1?__^C&)H+"(N%H%___XD5%)H+"(N5G%___Z,0F@L( -XMBX687___B14,F@L(BY647___HPB:"PB+A9!?__^)%02:"PBC`)H+".BF6___ -XMZ2'^__^)'"2-G%A%___P````")G61?__^)E6A?__^%]@^$G````(N->%___X7)=4"+%X'B -XM____/XF5=%___P^%K0$``(U%[(D$).BA7?__Z`RB``"-17UW#C;8`````BX5T7___AB5PD!"G8B40D"(M%[(D$).BQ70``QX6,7___```` -XM`(7`#XY9`0``C3PP.;UD7___#X-V`0``C9W,W___B;W`7___QX6(7___```` -XM`.L-`<.#A8A?__\!.?MS0(NUP%___XN5B%___XE<)`0IWHV$E%B%___P````#I_O[__XUV`%6)Y5=64X/L+(MU"(U%W(D$),=%Z`````#' -XM1>P`````QT7P`````,=%W`````#'1>``````QT7D`````,=$)`3PD0@(Z+=; -XM__^-1>B)!"3'1"0$L)$(".BD6___BP:%P`^%F````(GS,<")1"0(C47HB70D -XM!(D$).A3T`(`BPN%R0^$X@```(M#!(U[!(7`#X67````B?XQTH7`=1O'1"0$ -XM8````,<$)#,```#H7UC__XGR*?K!^@*)5"0$@\8$B3PDZ%G2`@#'1"0$,"H( -XM"(G#B00DZ"=;__^+10R)V8U5Z(D$)(U%W.AD^/__B1PDZ&Q:__^+!H7`#X1H -XM____@_A@B?,/A%W___^-M"8`````@\,$BP.%P'4,B=@I\,'X`NE%____@_A@ -XM=>;K[8/X8(G^#X1>____@_A<=!^#Q@2+!H7`=0R)\BGZP?H"Z4C___^#^&!T -XM[X/X7'7A@\8$BQ:%TG78Z33___^+1>R%P'0+C57HC47- -XM153@^P4 -XMBTT(BT$$@_@M='FI````0'5J@_A_=V7V!(6]40D(!'1;BU$(@^@PC5D(]\(` -XM``!`="7K*)"-="8`]@25O5$)"`1T&8/#!(T$@(U$0M"+$_?"````0'4%@_I_ -XM=MV%TG5YB00DZ-$4__\QR87`=`Z)7"0$B00DZ)_.`@")P8/$%(G(6UW#BU$( -XMC5D(A=)U6,=$)`3$F`H(QP0D=#,)".BGOP``A<")PG1)BP"%P'1#BPUDF0L( -XMBP&+0`R%P'4TBT$$BT@,A*)/"3HLF$"`,<#`````(M-X(MQ -XM!(/!!(E-X(7V=9*+1,"B5PD!(D4)(E-U.@E8@(`BU70C9P#`2#P`2)1=R%_W0ZBP>#^#UUX(D\).@[_?__A<")PP^$:P$``#G'=-.)/"3H -XME6`"`(M-W(D9BT7OHQT0D!,28"@C'!"0`/`D(Z.B[``"%P'0*B30DZ#Q4 -XM___KGXL&A%]G4&]D7P`74ZB1PDZ*[K__^) -XMV(MU^(M=](M]_(GL7<.)V(GRZ`;\__^)PXG'Z]")70B+=?B+7?2+??R)[%WI -XMC%P``(D<),=$)`3P(P8(Z+Q3__^)V.AE^?__.<>)PW0*B3PDZ`=3___KIXD$ -XM).A-4___Z^R-="8`C;PG`````%6)Y5.#[!2+70B)'"3H7NO__X7`=!J)'"2) -XM1"0$Z`[___^%P(G#="*)V(/$%%M=PXD<).@87```B<.)!"3H_NK__XG8@\04 -XM6UW#QP0D,0``$.A*4/__Z]"0C;0F`````%6)Y5=64X/L+,=$)`3$F`H(C7WL -XMQP0DU#L)".@0N@``QT7P`````(G#BT4(B47LB3PDZ-GJ__^%P(GS```` -XMA=L/E<#WQ@(````/MMAU+H7;=0F#Y@$/A>P```"+10B)!"3HA\D"`(D$).A_ -XM40``B44(BT4(@\0L6UY?7<.)^(G:Z,CZ__^%VXG'#X2#````B7W8BU78BP*% -XMP`^$I0$``(M5V(MR!(7V#X2S`0``@WT,`0^$:@$``(-]#`(/A+P```"+30R% -XMR76IBT4(B00DZ#K+`@"+5=B)%"2C('<*".@:5@``QP0D)P``$.A.3___ZX"+ -XM50B)%"3H\<@"`(D$).CI4```B44(BT4(@\0L6UY?7<.#Y@$/A'3___^)!"3' -XM1"0$\",&".@"4O__B?CHJ_?__SG'B478#X1#`0``B3PDZ$A1___K"HGXZ(_W -XM__^)1=B+7=B%VP^%-O___XM5"(D4).BFR@(`QP0D,0``$*,@=PH(Z,5.___I -XM%?___XM5V(E5W(D$).@^S_[_BUW8@\,$C7@!ZP.+=>"+0P2#PP2)1>")-"3H -XM'\_^_XM5X(72C7P'`77AC02]`````(D$).BY7`(`B44(BT78BTT(BQ"%T@^$ -XMI````(L"A+___\_B57DBQ>#QP2!XO___S^#^C\/A/$```!_'(72=6.+11")&(-]Y`$9 -XMP/?0@\`"@\0L6UY?7<.#^EL/A-H```"+=12%]G5B@?K_````#X?"`0``H>!= -XM"0B+G)`T!```@7WD_P````^'F0$``*'@70D(BU7DBX20-`0``#G##Y7`ZRV# -XM^BIUN8L',?:%P'5$B1PDZ'[!`@"+51")`H/$++@"````6UY?7<,[5>0/E<"$ -XMP'5>@T7P!(M=\.DX____BT40BS#W`____S\/A!X!``"#PP2+112)1"0,BU40 -XMB7PD!(D<)(E4)`CH^/[__X/X`73-@_@"#X3F````A)UHU?!('F -XM____/\=%Z`````")WW0M@_Y==#R+1>B%P'53@SLM=%6#PP0QP#EUY`^4P(E% -XMZ(L7B=:)WX'F____/W73QT0D!%T```#'!"0R```0Z/Y+__^+1>@+1>1T@HM5 -XM[#E5Z`^%&/___S'`Z8W^__^-=@"+%X/#!.N[BT<$@\,$@_A==*,E____/\=$ -XM)`@`````B40D!(M%Y(D$).C"UP``A -XM7UW#A?8/A!O___^+51"X`0```(DRZ2K^__^+1>2)!"3HD2)-"2)5"0$Z%K7``"%P'^8QT7H`0`` -XM`.N/C;8`````C;PG`````%6)Y5=64X/L+(MU#(M%",=%W`$```")1?"#/EX/ -XMA!4!``#'!"0$````Z$)9`@#'!"20`0``B(M5"(D4).@]OP(`BQ>)QHL"QT7@`````(7`=#N)TXE$)`2+10B-5?#'1"0, -XM`0```(E4)`B)!"3HW/S__X7`=`V+1?"#3>`!.?!S`HG&BT,$@\,$A`/E,"#Q"Q;#[;`7E]=PXL7BP+'1>``````A57B==64X/L#(E%\(MP"(M:"(L#B40D!(L& -XMB00DZ/C(_O^%P'4/BW8(.W7PBUL(=`XY^W7=@\0,,Q=PY"+'0QA"0B%VW0TBT(8A/&!@"+1?")!"3HA54" -XM`.E0____58GE4XG#@^P$B00DZ(\4``"+0QB%P'0(B00DZ&!5`@")'"3H6%4" -XM`(/$!%M=PXGV58GE5U:)QE.)TX/L+/;"`71FH7!A"0B-??#'!7!A"0@!```` -XMB47PQT0D!-`X!@B)/"3HF4K__X/C0`^%WP```*$,80D(A<`/A,4```"+1AB% -XMP`^$N@```(E$)`3'!"01%PD(Z+BB`@")/"3HP$G__X/$+%M>7UW#QP0D2LX( -XM".A!T;XG/@^<(ZR"+!H/H`87_B09T/X7`>`J+5=R)V.AW_O__BUL< -XMA=MT2*&4=PH(A"%P'X*BU77UW#58GE5S'_ -XM5E.#[!R+=0C'1"0$Q)@*",<$)*`S"0CH+K```(D$).@VK@``A<`/A)\```"# -XMQ@2+'H7;=#"#.RUU*X/#!(L#A7UW#QT0D!,28"@C'!"2@,PD(Z.^N``")!"3H]ZP``(E%\.E1 -XM____ZPV0D)"0D)"0D)"0D)"058GE@^PHB5WTBUT(B77XBT4,B7W\A=L/E,*) -XMUG4$AP/A%@!``")\(3` -XM=#C'1"0$Q)@*",<$).`S"0CHQ=P\=$)`0`````B1PDZ*[S__^)Q\=$)`0P*@@(B3PDZ,Q& -XM__^+%>AV"@C'!>AV"@@`````B57PQT0D!,28"@C'!"1@-@D(Z*6M``"%P'0Q -XMBP"%P'0KBT`$AR+'E?1?__QT0D!,28"@C'!"20+PD(Z$NM -XM``#'1"0$A#0)"(D$).@+O`(`BP/A8;^___'1>Q`+PD(Z7K^__^-M@````!5B>575E.#[!S'1"0$ -XMQ)@*",<$),`S"0CHXZP``#WX;PD(B<8/A.8!``#'1"0$@$,)"+\`=PH(B00D -XMZ$W"_O^%P'0_QT0D!'!#"0B[`'<*"(DT).@TPO[_A<`/A9@!``"+6QR%VW1J -XMBT4,B=KH__C__X7`=.N#+029"@@!B=_K7XG?BU\`2+0P2)1P2+0P2)>`C'1Q@`````BT44QT7L`'<*"(7`=2*+-1QW"@B) -XM=QR+7>R)>QR#Q!R)^%M>7UW#C;8`````B77LBT7LBW`PYT`^%P0```(M%\(GZZ,_W__^% -XMP`^%O0```(M5\(M*'(7)=S'1?``````BW(R+@L^/__BWWPZ=3^__^+%1QW"@B% -XMTG2*BT4,Z.+V__^%P`^$>O___XL=''<*"(,M!)D*"`&%VXG?#X4R_O__Z1_^ -XM__^-M"8`````C;PG`````%6)Y593@^P0BUT(A=MT#HM#"(L`@S@*#X33```` -XMQT0D!,28"@C'!"2@,PD(Z`^J``"+$(72#X3'````]\(```!`#X6[````@_I_ -XM#X>R````,?:)P?8$E;U1"0@$=2?IGP```/?"````0`^%DP```(/Z?P^'B@`` -XM`(/!!/8$E;U1"0@$='V-!+:-=$+0BU$$A=)UT(7;="BA!)D*"(M5#,=$)`@! -XM````B5PD!(/``:,$F0H(B50D#(D$).B!_/__NP!W"@B+4QR%TG0EH029"@@K -XM0A`Y\'P@BT("0C70F`(/$$%M>7<.%]G3!P``BQTLFPL(A=L/ -XMA-$'``"+#32;"PB%R0^$!`@``(L5/)L+"(72#X0W"```H62;"PB%P'0&@\04 -XM6UW#H8"8"@C'1"0,8M$(",=$)`A!````QT0D!`(```")!"3'!6";"PA>T0@( -XMZ'&>__^)!"3HV4<``*-DFPL(@\046UW#H8"8"@C'!6B:"PCXS@@(QT0D#/S. -XM"`C'1"0(`@```,=$)`0"````B00DZ"^>__^)!"3HET<``*-LF@L(Z=S]__^A -XM@)@*",<%<)H+"`//"`C'1"0,!\\(",=$)`@#````QT0D!`(```")!"3H[IW_ -XM_XD$).A61P``HW2:"PCIJ?W__Z&`F`H(QP5XF@L($<\(",=$)`P6SP@(QT0D -XM"`0```#'1"0$`@```(D$).BMG?__B00DZ!5'``"C?)H+".EV_?__H8"8"@C' -XM!8":"PB`SP@(QT0D#!O/"`C'1"0(!0```,=$)`0"````B00DZ&R=__^)!"3H -XMU$8``*.$F@L(Z4/]__^A@)@*",<%B)H+""_/"`C'1"0,-,\(",=$)`@&```` -XMQT0D!`(```")!"3H*YW__XD$).B31@``HXR:"PCI#_W__Z&`F`H(QP60F@L( -XM0\\(",=$)`Q(SP@(QT0D"`<```#'1"0$`@```(D$).CJG/__B00DZ%)&``"% -XMP*.4F@L(#X78_/__H8"8"@C'!9":"PA.SP@(QT0D#%+/"`C'1"0("````,=$ -XM)`0"````B00DZ*:<__^)!"3H#D8``*.4F@L(Z9?\__^-="8`H8"8"@C'!9B: -XM"PA;SP@(QT0D#%_/"`C'1"0("P```,=$)`0"````B00DZ&&<__^)!"3HR44` -XM`*.B:"PAJT`@(QT0D#&_0"`C' -XM1"0(+@```,=$)`0"````B00DZ)*8__^)!"3H^D$``*/LF@L(Z5GY__^A@)@* -XM",<%\)H+"(+0"`C'1"0,A]`(",=$)`@P````QT0D!`(```")!"3H49C__XD$ -XM).BY00``H_2:"PCI)?G__Z&`F`H(QP7XF@L(D=`(",=$)`R6T`@(QT0D"#(` -XM``#'1"0$`@```(D$).@0F/__B00DZ'A!``"C_)H+".GQ^/__H8"8"@C'!0B; -XM"PB@T`@(QT0D#*70"`C'1"0(,P```,=$)`0"````B00DZ,^7__^)!"3H-T$` -XM`*,,FPL(Z;WX__^A@)@*",<%$)L+"+O0"`C'1"0,P-`(",=$)`@U````QT0D -XM!`(```")!"3HCI?__XD$).CV0```HQ2;"PCIB?C__Z&`F`H(QP5`FPL(U]`( -XM",=$)`S=T`@(QT0D"#@```#'1"0$`@```(D$).A-E___B00DZ+5```"C1)L+ -XM".E5^/__H8"8"@C'!2";"PCQT`@(QT0D#/;0"`C'1"0(.@```,=$)`0"```` -XMB00DZ`R7__^)!"3H=$```*,DFPL(Z2'X__^A@)@*",<%*)L+"`W1"`C'1"0, -XM$M$(",=$)`@[````QT0D!`(```")!"3HRY;__XD$).@S0```HRR;"PCI[O?_ -XM_Z&`F`H(QP4PFPL(*M$(",=$)`PQT0@(QT0D"#P```#'1"0$`@```(D$).B* -XMEO__B00DZ/(_``"C-)L+".F[]___H8"8"@C'!3B;"PA$T0@(QT0D#$G1"`C' -XM1"0(/0```,=$)`0"````B00DZ$F6__^)!"3HL3\``*,\FPL(Z8CW__^0D)"0 -XMD)"0587`B>5T!8,X"G0%HT!A"0A=PXVV`````(V\)P````!5B>6+10A=HQAA -XM"0C#C78`58GE@^PHBPV0=@H(B5WTB77XB7W\AR9"P@`````=`V+7?2+ -XM=?B+??R)[%W#BQ6\F`H(A=)UZ:'`=@H(A7<.0C70F`%6)Y5WI -XMM____XVT)@````!5B>564X/L$*&T=@H(QT0D#`(```#'1"0$`````,=$)`@` -XM````B00DZ`^V_O^AL'<*"(L5M'<*",<%T"0)"`(```#'!3"9"P@`````HZ!W -XM"@B)%:1W"@C'!;28"@@`````QP5(=PH(`````,<%2)H+"`````#H9JW__XLU -XM[)D+"(7V=0J+'>"9"PB%VW0'@\006UY=PXL5H'<*"(/J`8G0P?@?P>@3C300 -XMP?X-A?9^WC';H;QW"@B+!)B#PP&)!"3HRS\"`#GS=>F+%;QW"@B-!+*)%"2) -XM1"0$Z'(S``")\,'@#8G"P?H?*06@=PH(&16D=PH(*06P=PH(&16T=PH(*36X -XM=PH(@\006UY=PXUV`%6)Y5>)QU93@^P,H;AW"@@YQWQM@\`"QT0D!`0```") -XM!"3HN3\"`(G&H;QW"@B%P'09B40D!(DT).@",P``H;QW"@B)!"3H-3\"`(L= -XMN'<*"(DUO'<*",=$)`0$````QP0D`"```.AU/P(`C1R>B0.AN'<*"(/``3G' -XMH[AW"@A]DX/$#%M>7UW#C;0F`````%6)Y8/L*(E=](L=T"0)"(E]_(M]"(EU -XM^(/[`HD?='.#^P-T7(/[`70WH8"8"@C'1"0,@-<(",=$)`@'````QT0D!!`` -XM``")!"3HTI+__XE<)`2)!"3H9HP"`.@MLO[_D*$PF0L(B4<,H;28"@B)1P2+ -XM7?2+=?B+??R)[%W#C78`H4AW"@B)1PRA2)H+"(E'!.O>H>R9"PB%P'4:H:!W -XM"@B+%:1W"@B)1P2)5PC'1PP`````Z[N+%:1W"@B+':QW"@BAH'<*"(L-J'<* -XM"#G:?-9^2SL5M'<*"'_,C;8`````?`@[!;!W"@AWO(G&*N)3P2)7PCKCSG(6#[$B+50B)7?2)=?B)??R+&H/[`HD=T"0)"'1S@_L# -XM=%R#^P%T-Z&`F`H(QT0D#(#7"`C'1"0(!P```,=$)`00````B00DZ**1__^) -XM7"0$B00DZ#:+`@#H_;#^_Y"+0@RC,)D+"(M"!*.TF`H(BUWTBW7XBWW\B>Q= -XMPXUV`(M"#*-(=PH(BT($HTB:"PCKWJ'LF0L(BW($BWH(A<")-:!W"@B)/:1W -XM"@ATPXL5K'<*"*&H=PH(.=>)1>B)5>P/C,H````/CKD```"+#;1W"@B+%;!W -XM"@@Y3>R)3=R)5=@/CZD```!\"3E5Z`^'G@```(M-V"M-Z(E-X'1DBU7L,57 -XM5E.![$P@``"%R8F%S-___XF5R-___XF-Q-___\>%U-___P`````/A#(!``"! -XM^0$@```/AU<"``#'A=3?__\`````,=O'A=C?__\`````.9W$W___N@$```!V -XM"(N5Q-___RG:C00:/0`@```/AZ@```"-A?/?__\!V(E$)`2+A#?__\/A:T```#'A=S?__\`````BY7@W___.97- -XM-)"!Q\!W"@B+G>#?__^-A?/?__\KG=S?__\#A=S?__^)-"2)7"0(B40D!.BW -XMJ0(`@_C_=%2%P(G"#XZ.````BTT(A57 -XM5E.#[%R+/1AA"0B%_W1"QP4880D(`````(/$7(GX6UY?7<.A,)D+"(7`#X2D -XM````H3"9"PC'!4R:"P@!````BP"%P*.TF`H(='N#!3"9"P@$H;28"@C'!=`D -XM"0@"````A@$``.E;!0``D(UT)@"+%:1W"@B+/:QW"@BA -XMH'<*"(LUJ'<*"(E5M#GZB46P?`X/CZL#```Y\`^#HP,``*.P=PH(HZAW"@B) -XM1"0$H;1V"@B)%;1W"@B)%:QW"@C'1"0,`````(E4)`B)!"3H&JS^_Z&@=PH( -XMBQ6D=PH(BPVP=PH(BQVT=PH(BS6H=PH(BSVL=PH(B46PB56TBU6TBT6P,=HQ -XMR`G"#X1U`P``BQ6\=PH(BT6PBQ(I\(L\@H-%L`0`BT6PBU6THZ!W"@B) -XM%:1W"@B#__\/A>;^__^+10B%P`^%LP0``*&T=@H(C57$B50D!(D$).@^I_[_ -XMA<`/A;#^___V1=$!#X2F_O__BQ5P8PD(A=)T%:$<80D(@\`!.<*C'&$)"`^. -XMA_[__X,]U)<*"/\/A/K]___'!"0/````Z.2J_O^#^/^)PP^$X_W__Z'4EPH( -XM.<,/A-;]__^)1"0$QP0D#P```.@@3`<*)UH'F_Q\``,'Z#2G&B56HB=#H(?3__XM]O+@`(``` -XM*?`YQWX"B<>+1;R-%+4`````BTVXC1R]`````(MUJ,'@`BG!H;QW"@@#%+") -XM7"0(B4PD!(D4).B)J_[_B?HI?;R+1;S!^A\!/;!W"@@1%;1W"@B%P`^/=O__ -XM_^G<_O__Z+2W`0")1:R)1;SI2?___XL0A=(/A*OZ__^#P`1FOR``B16TF`H( -XMHS"9"PCI%?K__Z%(=PH(Z27[__^+';1W"@B+#;!W"@@YV@^,I?S__P^/0_S_ -XM_SG(#X:7_/__Z3;\___'!?R8"@@!````Z#@E__^A2'<*".GY^O__B^O__QP0D`0```.AS2```Z8WZ__^+10B%P`^%P``` -XM`(UV`.AKQO[_H9!V"@CI#_O__Z&\F`H(A<`/A8\```")^(E$)`3'!"1LG`L( -XMZ#*:`@#IVOC__X/`!&:_(`")%4B:"PBC2'<*".G#^/__H8"8"@B+'0QV"@C' -XM1"0,K-<(",=$)`@#````QT0D!!````")!"3HNX7__XE<)`2)!"3H3W\"`.E+ -XM^O__BSB#P`2CD'8*"(7_#X5U^/__H7P@"0AFOPH`HY!V"@CI8OC__X/H`:.\ -XMF`H(N`H```#I8?___[______Z4;X__^)]HV\)P````!5B>564X/L$(MU#(M= -XM"(U&FX/X$W8*,<"#Q!!;7EW#D/\DA6C8"`B)'"3H(9@"`(G"C4#\.<,/ARD! -XM``"+4OR#^B]U(ND<`0``C;0F`````(/H!#G##X<*`0``BQ"#^B\/A/\```"# -XM^BYUY8/^98GV#X3D````*=C!^`*)10R)70B#Q!!;7EWI1)T"`(D<).C\G@(` -XMQT0D!"\```")!"3H_",``(7`#X65````@_YT#X5C____B5T(@\006UY=Z:V< -XM`@#'1"0$`0```(D<).@=<0(`A7<.)'"3HBIP"`(L0A=(/A"C_ -XM__^)P>L;@_H)=!N!R@```$")$8M1!(/!!(72#X0)____@_H@=>"#_G%UZ(VT -XM)@````#KU\=$)`0`````B1PDZ+YP`@"%P`^$>____X/$$%M>753@^P4BQ68=PH(H7R<"PB+70C'!"0@80D(QP4D80D( -XM`````"G0P>("`Q5XG`L(B40D"(E4)`3HPID"`(E<)`3'!"1XG`L(QP5\G`L( -XM`````.@HF@(`QP0D>)P+".@,F`(`H21A"0C'!"1XG`L(B40D"*$@80D(B40D -XM!.A^F0(`B1PDZ"8O`@#'!9AW"@@`````@\046UW#C;8`````58GE5U93@^P, -XMBT4,BW4(BW@(QP0D#````.C"+P(`B<.)<`3'``````"+10B)0PB)6`2+!XE> -XM"(G>B00DZ`^;`@"+?PB)`X,X"G7'@\0,6UY?7<.-M@````"-O"<`````58GE -XM5E.#[!"+=0B+7@B+`XE$)`3'!"22N0@(Z&!\`@"+6P@Y\W07BP.#.`ITXL<$ -XM)"````#H9C\``(L#Z]*#Q!!;7EW#C70F`(V\)P````!5B>575E.#[!R+'1QW -XM"@B)1>R)5>B%VW0^BU,,BWL(A=)X+8L7BPJ#^0IT)(M%Z,=%\`````"%P'5? -XMBT7LZP>0@\`$@\($BPB%R70H.PIT\(M;'(7;=<*+1>PQVXD$).ASK!H/`!(/"!(L(AC'1>P`````P?@"QT7P -XM`````(E$)`B+1>")%"2)1"0$Z"27`@"+'6!A"0B+`X7`="2#^"9T;X/X7(US -XM!'12B40D!(GSC47HB00DZ`J5`@"+`X7`==R+1>R+50B)`J%,80D(C02'B40D -XM!(U%Z(D$).A5EP(`BU77UW#58G"B>6# -XMX@)7@^`!5E.#[#R)5=")1__^A.&$)"(7`=%*+4`BA-&$)"(D5 -XM.&$)"(/H`87`HS1A"0AX*8L"Z#_I__^+#3!A"0B%R0^$1O___\<%,&$)"``` -XM``"#Q#R)R%M>7UW#QP4X80D(`````.D5____QP0D`````.CR\?__@_@DB<%T -XM&SL-C)@*"'7,BUW0A=MTQ3'`Z`4+``#IY_[__XM=S(7;=-ZA,&$)",=%Z``` -XM``#'1>P`````QT7P`````(7`B474HT1A"0@/A.`"``#'!3!A"0@`````BU74 -XMQP0DQM<("(E4)`3H`AX``(7`#X24````BT74QP4P80D()```0*,\80D(Z7K^ -XM__^A>)P+"(L,D(U"`:.8=PH(AC__X/$/+D@````6XG(7E]=PXU5Z(D4),=$ -XM)`2PD0@(Z&,?__^-1>C'1"0$)````(D$).@PD@(`BUW4@_M[#X2U`@``@_LC -XM#X1L`@``@_L_#X1C`@``,?:#^R4/A%@"``"-5>B)7"0$B10DZ/B1`@"-0_:# -XM^#(/AM$!``#WPP```$!U/H/[?Y!W#O8$G;U1"0@$#X5\`0``#[;3@?K_```` -XM#X=V!```H>!="0B+1)`T]L0!#X6G````@_M?#X2>````A?8/A',"``"#;>P! -XMB1T\80D(C47HB00DZ%D>__^-5>B)%"3H_AW__XU%Z(D$).B3D0(`B00DZ%OY -XM___I#?W__\<%,&$)"`````#WPP```$`/A38"```/MM.!^O\````/A\4!``"A -XMX%T)"(M$D#3VQ`%U'(/[7W07@_M_#X<+`@``]@2=O5$)"`0/A/T!``"-5>B) -XM7"0$B10DZ`B1`@"+'3!A"0B%VXD=1&$)"'62N`(```#H?OS__X7`B<-UC(-] -XMU'N)'3QA"0@/A43___^A,&$)"(7`HT1A"0@/A`D%``#'!3!A"0@`````@_A] -XM#X3>!```HSQA"0C'1"0$?0```,<$)#(```#H6AK__^D!____D(UT)@#'!3!A -XM"0@`````]\,```!`#X5@`0``@_M_#X=7`0``]@2=O5$)"`0/A$D!``"-1>B) -XM7"0$B00DZ%20`@"+'3!A"0B%VXD=1&$)"'6TN`(```#HROO__X7`B<-UKNE' -XM____N`(```#HM?O__XE%U(GVZ1;]____)(6XV`@(A?:)]@^$=O[__\<$)%`` -XM``"-=@#HNQG__^EB_O__A?:-="8`#X16_O__QP0D3@```(UV`.B;&?__Z4+^ -XM__^#;>P!A?;'!3QA"0@*````#X4L_O__QP0D3P```.AT&?__Z1O^__^-1>B) -XM7"0$B00DZ*"/`@"+'3!A"0B%VXD=1&$)"'17QP4P80D(`````+X!````Z77] -XM__^)%"3HL)G^_^DW_O__C57HQT0D!'L```")%"3H7(\"`(L=,&$)"(7;B1U$ -XM80D(#X3H`0``QP4P80D(`````.D5_?__N`(```#HO_K__XG#ZZ7'!"12```` -XMZ-\8___IAOW__X/[6P^$W@(``(/[.@^%(/[__\=%W`````#'1>``````C47H -XMB5PD!(D$).CKC@(`BQTP80D(A=N)'41A"0@/A-@!``#'!3!A"0@`````@_MG -XM#Y3`#X2&`0``@_MA#X0J`@``BU7@A=)U"(3`#X6[`0``@_MA#X3Y`0``C57H -XMB5PD!(D4).B1C@(`@_MS#X7>````BSTP80D(A?^)/41A"0@/A.\!``"-1>C' -XM!3!A"0@`````B7PD!(D$).A;C@(`]\<```!`=3^)^`^VT('Z_P````^'\0$` -XM`*'@70D(BT20-/;$`0^%S@$``(/_7P^$Q0$``(/_?W<.]@2]O5$)"`0/A;(! -XM``")?"0$QP0D_[D(".@4&0``A<`/A9H!``#'1=@"````ZR['!3!A"0@````` -XM@_[_#X1U`@``C57HB70D!(D4).C1C0(`,<`Y_@^4P"E%V'0;BS4P80D(A?:) -XM-41A"0AUPC'`Z#[Y__^)QNO!B5PD!,<$),K7"`CHJA@``(7`#X3G`0``BQTP -XM80D(A=N)'41A"0@/A,8```#'!3!A"0@`````@_LZ#X1Q_O__Z7[\__^-M@`` -XM``"X`@```.CF^/__B<.-="8`Z2?[__^)%"3H?Y?^_XUV`.F#^___@T7@`8U5 -XMZ(E<)`2)%"3H*(T"`(L=,&$)"(7;B1U$80D(#X30````QP4P80D(`````(/[ -XM9P^4P.E'_O__N`(```#HA?C__XG#Z2'^__^#1>`!C47HB5PD!(D$).C;C`(` -XMBQTP80D(A=N)'41A"0@/A$H!``#'!3!A"0@`````Z1C^__^X`@```.@^^/__ -XMB)1"0$Z&J,`@"%_P^%!_[__\<$)%@```#H%A;__^EI -XM^___B10DZ(66_O_I"_[__[@"````Z,KW__^)P^DI____C47HQT0D!%L```") -XM!"3H((P"`.LKQP4P80D(`````(/["@^$X````(U5Z(E<)`2)%"3H_(L"`(/[ -XM70^$J0```(L=,&$)"(7;B1U$80D(=<6X`P```.AI]___BGY__^X`@```.@#]___ -XMB<.0Z/G__[@"````Z)+V__^)P^GJ^___C70F`(V\)P````!5B>6# -XM["B)??R)UXL5,&$)"(EU^(G&B5WTB4WLA=*)%41A"0@/A!8!``"#^BK'!3!A -XM"0@`````BQX/A!4!```/CIL```"#^BT/A+(!``"#^EX/A"$!``#WP@```$"- -XM=@`/A7H!``"#^G\/AW$!``#V!)6]40D(!,=%\`````!U-.E;`0``QP4P80D( -XM`````/?"````0`^%X0$``(/Z?XGV#X?6`0``]@25O5$)"`0/A,@!``"+3?"- -XM!(F-1$+0BQ4P80D(B47PA=*)%41A"0AUM#'`Z*CU__^)PNNSC70F`(/Z)`^$ -XM/P$``(/Z)8UT)@`/A6'___^A;&$)"(/X_W0CA=L/B"X!``")!XVV`````(7; -XM>'R+!SD&?PDY1>P/C:T```#'!"1>````Z($3__\QP(M=](MU^(M]_(GL7<.) -XM]C'`Z#GU__^+'HG"@_HJ#X7K_O__A=L/B/H```"+1>R)!SL&?:NX`0```,<' -XM`````,<&`0```.NYA=L/B,L```"%V\<'`0```'F*C;8`````BQTP80D(A=N) -XM'41A"0@/A)D```#'!3!A"0@`````B1PDZ/K>__^)7"0$QP0DU-<(".@Z%``` -XMA<`/A$;___^)]K@!````Z5?___^-M@````"%VP^(A````(M%[(/H`8D'B10D -XMZ+C>___I$____XUV`(7;>S'!@````#'!"0M````@^@!B0?HDM[__[@! -XM````Z0G___^%VW@YBTWLB0_IVO[__XD&Z\<%,&$)"``````/A($'``"C,&$)"*$$F0H(QP5L80D(_____Z/@F`H(BT6\ -XM.P5$F@L(=&F+'3!A"0B%VXD=1&$)"`^$*`<``,<%,&$)"``````['8R8"@AT -XM0XU#W8/X.W8T,?^)7"0$QP0DV-<(".BW$@``A<`/A!X)``")'"3H5]W__Z&, -XMF`H(HS!A"0B#Q$Q;7E]=P_\DA839"`B+%2"9"PB%THE5P`^$2@H``(M=P#L= -XM()D+",<%+&$)"`$````/A'P(``"+5<"+0@B+4@2+0`@YP@^$E`H``#'VBT`( -XM@\8!.<)U]HM=O#L=1)H+",=%\`````")=>P/A-P)``"+'3!A"0B%VXD=1&$) -XM"`^$V@<``,<%,&$)"`````")7"0$QP0DYM<(".C]$0``AR+5?"#P`$IT(/J`872HS1A"0B)5?!X%8M-P(U"_X7`B<*+20B)1?") -XM3ANS?__B47`H3!A"0B%P*-$80D(#X2%!```QP4P80D( -XM`````(/X.@^%#P0``(L],&$)",<%.&$)"`````"%_XD]1&$)"`^$1@0``,<% -XM,&$)"`````#'1<0`````C;0F`````(/_9[L!````=%N#_V%T48U'VH/X4G9[ -XM@_\*#X2'!@``B7PD!,<$)%L```#H(`___XL=,&$)"(7;B1U$80D(#X2'`P`` -XMQP4P80D(`````(/[.@^$<____^GR_O__C70F`+L"````BSTP80D(A?^)/41A -XM"0AT$L<%,&$)"``````)7<3I>?___S'`Z)+P__^)Q^OM_R2%=-H("*%880D( -XMA<`/A'\)``"A5&$)",<%3&$)"`````#'!"1(80D(B40D!.@[AP(`QP0D2&$) -XM".@?A0(`H4AA"0C'!5AA"0@`````QP0D5&$)"(E$)`3H$(<"`,<$)%1A"0CH -XM](0"`(L=-&$)"(7;B5W(#X28_O__BT7$C5W8QT7H`````,=%S`````"#X`&) -XM1;CK08VT)@````"-7>2)^L=%Y`````"-3>B)'"2+7<"+`^A4[O__B<:+1>B% -XMP'0'QT7,`0```/9%Q`)U>8M5T(DRBUW0@VW(`0^(_?W__\=$)`0,````QP0D -XM`0```.@('`(`C578B470B5`(QP``````B4,(B5@$BTW`BTD(B4W`BP&%P'2[ -XMBTVXAB%P'2#@?[X;PD(#X1W____C47DB?J)!"2-3>B)\.BC[?__B?.)7"0$B00D -XMB<;HCXW^_X7`=;^)'"3H%QL"`.E$____BS4P80D(A?:)-41A"0@/A(,"``#' -XM!3!A"0@`````]\8```!`=3^)\0^VT8'Z_P````^'@0(``*'@70D(BT20-/;$ -XM`0^%A`8``(/^7P^$>P8``(/^?W<.]@2UO5$)"`0/A6@&``")="0$QP0D_[D( -XM".@-#@``A<`/A5`&``#'!"1(80D(Z$F#`@#'!4QA"0@`````ZRR#^PK'!3!A -XM"0@`````=#LY\W1#@_M<#X07`0``B5PD!,<$)$AA"0CHL8("`(L=,&$)"(7; -XMB1U$80D(=<0QP.@J[O__B<.#^PIUQ<<$)`H```#H1]C__Z%,80D(A<`/A:\! -XM``"A2&$)"(L8A=L/A"`'``")!"3H'XW^_Z-,80D(QP5D80D(`````.LNB?:# -XM^PK'!3!A"0@`````=#LY\W1#@_M<#X3L````B5PD!,<$)&!A"0CH)(("`(L= -XM,&$)"(7;B1U$80D(=<0QP.B=[?__B<.#^PIUQ<<$)`H```#HNM?__\<$)&!A -XM"0CH3H("`.DJ_?__@TW$`>DA_?__BQTP80D(@P5P=@H(`87;B1U$80D(#X5Y -XM_/__,<#H3NW__XG#Z77\__^)!"3H;]?__^E*_/__BQTP80D(A=N)'41A"0@/ -XMA(D```#'!3!A"0@`````.?,/A,/^__^#^UP/A+K^___'1"0$7````,<$)$AA -XM"0CH9X$"`.FA_O__,<#HZ^S__XG'Z;;[__\QP.C=[/__Z7G[__^+'3!A"0B% -XMVXD=1&$)"'0]QP4P80D(`````#GS#X3R_O__QT0D!%P```#'!"1@80D(Z!*! -XM`@#IV?[__S'`Z);L__^)PXUT)@#I;____S'`Z(3L__^)PXGVZ\#'!"1<```` -XMZ*(*__^)]NG'^O__,<#H9.S__XG&B?;I=_W__\<$)$AA"0CH'X$"`.E<_O__ -XMB10DZ.Z*_O^)]NEY_?__,<#H-.S__XG#B?;ITOC__S'`Z"3L__^#^'N0#X5_ -XM^/__QT6\>P```.EX^/__QP0D2&$)".C2@`(`QP5,80D(`````.LLQP4P80D( -XM`````(/X"@^$PP(``(/X/P^$Q@(``(E$)`3'!"1(80D(Z#J``@"A,&$)"(7` -XMHT1A"0AUQC'`Z+7K___KQXL=,&$)"(7;B1U$80D(#X2%!```QP4P80D(```` -XM`+\!````Z43X__^+->"8"@@[-029"@B)'3!A"0@/A$,$``"+%1QW"@B%TG44 -XMZ2$!``"-="8`BU(0```.@S"?__Z>'W___'!3!A"0@J````B?&)^HU%\.AH]/__A<`/A,/W -XM__^+'3!A"0B%VXD=1&$)"`^$&P,``,<%,&$)"`````#IJ/C__S'`Z+;J__^) -XMP^DB^/__H3!A"0B%P*-$80D(#X2>`@``QP4P80D(`````(/X?0^$ROC__\<$ -XM)%8```#HK@C__^FY^/__QP0D"@```.B=U/__Z6CY__^+0PB+%828"@B+0`@Y -XMT`^$&`(``#'VBT`(@\8!.=!U]NE_]___B30DZ,MS``")PXD$).BAA`(`QP0D -XM8````(E$)`3H40C__XD<).@I%@(`@\1,6UY?7#^W^0=Q'V!)V]40D( -XM!(T$MHUT0]!U!;[_____B5PD!,<$)$AA"0CH^'T"`(L=,&$)"(7;B1U$80D( -XM=!2%V\<%,&$)"``````/B7'____KCS'`Z%WI__^)P^E=____B1PDZ'[3__^A -XM3&$)"(7`#X5<`0``H4AA"0B)!"3H8(C^_Z-,80D(H8R8"@BC,&$)".D#]O__ -XMQP0D"@```.A$T___H4QA"0B%P`^%]P```*%(80D(B00DZ":(_O^%P*-,80D( -XM#X1*`0``N@$```"A2&$)".B.YO__A<")P@^%COW__^F1_?__B1PDNSH```#' -XM!3!A"0AS````Z.C2___IGO;__XLU!)D*".DU_?__BSTP80D(A?^)/41A"0@/ -XMA(D!``#'!3!A"0@`````B3PDZ++2___WQP```$!U,XGX#[;0@?K_````#X=_ -XM`0``H>!="0B+1)`T]L0!=06#_U]U#\=%\`````")=>SI,O;__X/_)@^%XO7_ -XM_^OF,?;IP(`QP0D2&$)".@W?`(`H4AA"0B+%4QA -XM"0B)1"0$@\`$C125_/___XE4)`B)!"3HSHK^_Z%(80D(,=+'`"T```#I2/[_ -XM_XL-()D+"(7)B4W`#X4B]/__Z:?[__\QP.@3Y___B<.0Z7;[__\QP.@$Y___ -XMB<>)]NEQ_O__QP0D5P```.@?!?__Z?KU__^)%"3HCH7^_XGVZ7O^___'!"19 -XM````Z/\$___IVO7__XUV`(V\)P````!5B>575E.#[%RA[%T)",<%$&$)"``` -XM``#'!7"<"P@`````QP0D[)@*"(E%H.BOT___BU4(B5($B5((QP+X;PD(QP4L -XM80D(`````,<$)`````#H:MG__X/X('3O@_@)=.H[!42:"PAU#HL5P'8*"(72 -XM#X6/!0``B00DZ'+0__^+10B-?>C'1"0$D.D%"(D$).B\!___BUT(QP0D#``` -XM`.C]$@(`B46DB5@$QP``````BU4(B5`(B4($B4,(QT7H`````,=%[`````#' -XM1?``````QT0D!+"1"`B)/"3H<`?__XL=,&$)"(7;B1U$80D(#X1``@``QP4P -XM80D(`````(/[('3=@_L)=-B%VW@,]\,```!`#X0M`@``,?;'1:@#````A?9T -XM13GS#X24````@_M<#X2:````@_L*#X3!`P``D(E<)`2)/"3HY'D"`(L=,&$) -XM"(7;B1U$80D(=%:%]L<%,&$)"`````!UNX7;>-*)V,'H'H/P`8/[?P^>PH30 -XM=,`/ML,/MX0`X"`)"*A3=+&#^UP/A%(!``"H`P^$D@```#'`@_LB#Y3`B=Z# -XMP`*)1:CKCHM%J.@&Y?__B[^__^)'3!A"0B)/"3HH`7_ -XM_XD\).A(!?__B3PDZ.!X`@"+5:2)TXD"QT6@`````(,X"@^%$/[__XM%"(D$ -XM).AN!?__BU4(B10DZ!,%___'!"1LG`L(Z.=X`@"+%7"<"PB%TG04H6R<"PB# -XMZ`2-!)"#.`H/A#,#``"A+&$)",<%$&$)"`$```"#Q%Q;7E]=PS'`Z-OC___I -XM`O___XL=,&$)"(7;B1U$80D(#X1^`0``@_L*QP4P80D(``````^$?0$``#L= -XMC)@*"'00QT0D!%P```")/"3H!W@"`('+````0.D,_O__N`,```#H@N/__XG# -XMZ;G]__^#^W\/C\K]__\/ML,/MX0`X"`)"*A0#X2W_?__@_L[#X12`0``#X^X -XM````@_LF#X3-````C;0F``````^/*@$``(/["HVT)@`````/A"8!``"#^R.- -XMM"8`````#X5R_?__H)7+6X -XM@\8!@_L*#X3-````B5VPBQTP80D(A=N)'41A"0AUR#'`Z*;B__^)P^O'N`H` -XM`$#I\_W__X/[/I"-="8`=!0/C^<```"#^SR0C70F``^%TOS__XE<)`2)/"3H -XMWG8"`*$P80D(A<"C1&$)"`^$&P$``,<%,&$)"``````YV'1*HS!A"0CIW/W_ -XM_S'`Z#WB__^)PX/["@^%@_[__X,]O)@*"`$/A;W]___'!;R8"@@"````Z:[] -XM__^-M@````"-0]B#^`$/AUS\__^)7"0$B3PDZ&AV`@#IB_W__X!]KP!T&X-] -XMN"O'1>0`````B?8/A*@````QR8D-%&$)"(-]L%P/A.C[___KPHVV`````(ET -XM)`3'!"0S````Z.#__O_'!3!A"0@*````Z3G]__^#^UQT$8/[?`^%Z_O__XUV -XM`.D1____BQTP80D(A=N)'41A"0AT+\<%,&$)"`````"#^PH/A;T```"#/;R8 -XM"@@!#X5[^___QP6\F`H(`@```.EL^___,<#H1>'__XG#Z]"X`P```.@WX?__ -XMZ>#^__^+1;R%P`^$3?___P^VT(/Z?Y`/AT#___\QR3'V]@25O5$)"`1U)NDM -XM____C;0F``````^VT(/Z?P^'&O____8$E;U1"0@$#X0,____C02)@\8!C4Q" -XMT(M$M;R%P'74@_X*#X7Q_O__Z>[^___'``````#IPOS__^CF[/__C;8````` -XMZ6GZ__\['8R8"@AT$,=$)`1<````B3PDZ`-U`@"!RP```$#IX/K__Y"0D)"0 -XMD)"058GEBU4(BTT,A=)U!NL9D(/"`0^V`H3`=`X/OL`YR'7O7;@!````PUTQ -XMP,.-="8`53'`B>6+50B+"H7)=`R)]H/``8L,@H7)=?9=PXUT)@!5B>53BUT( -XMBTT,B=J-="8`BP&#P02)`H/"!(7`=?*)V%M=PXVV`````(V\)P````!5B>6+ -XM10B%P'08BQ"%TG4$ZQ")T(M(!(U0!(7)=?2+`%W#73'`PXUV`(V\)P````!5 -XM,=*)Y8M%"(7`=0?K#(GV@\`!@#@`=?B)PEV)T,.)]E6)Y8M-"(7)=!:)RHUT -XM)@"+`B7___\_B0*#P@2%P'7P78G(PXVV`````(V_`````%6)Y8M%"(7`=!F+ -XM$(72=!.)P8'*````0(D1@\$$BQ&%TG7O7<.-="8`C;PG`````%6)Y5.+70B+ -XM30SK"HUT)@"#PP2#P02+$X72=!J+`87`=`^!XO___S\E____/SG"=-];,575E.#[`R+?0R+=1"0Z+MP`@"+10B)="0(B7PD!(D$ -XM).@T?/[_@_C_B<-U"NAX@/[_@S@$=->#Q`R)V%M>7UW#C;8`````C;PG```` -XM`%6)Y5=64X/L#(M]#(MU$.L4Z$:`_O^#.`1U))"-="8`Z%MP`@"+10B)="0( -XMB7PD!(D$).C4@?[_@_C_B<-TTH/$#(G86UY?7<.-M"8`````58GE5U93@^P, -XMBWT,BW40D.@;<`(`BT4(B70D"(E\)`2)!"3HA(/^_X/X_XG#=0KHV'_^_X,X -XM!'37@\0,B=A;7E]=PXVV`````(V\)P````!5B>575E.#[!R+?0SWQP`"``!T -XM80^W=1"-112)1?#K%>B7?_[_@S@$=26-M@````#HJV\"`(ET)`B)?"0$BT4( -XMB00DZ$2!_O^#^/^)PW31@\056 -XM4X/L$(MU".B\?O[_QP``````ZQKHKW[^_X,X!'4>Z,EN`@#HH'[^_\<````` -XM`(DT).A">_[_A<")PW38@\00B=A;7EW#C;0F`````%6)Y593@^P0BW4(Z&Q^ -XM_O_'``````#K&NA??O[_@S@$=1[H>6X"`.A0?O[_QP``````B30DZ!)[_O^% -XMP(G#=-B#Q!")V%M>7<.-M"8`````58GE5U93@^P,BWT(#[=U#.L3Z!5^_O^# -XM.`1U'(UT)@#H*VX"`(ET)`2)/"3H:WK^_X/X_XG#=-J#Q`R)V%M>7UW#C;0F -XM`````(V\)P````!5B>53@^P$BUT(ZQF-="8`Z,=]_O^#.`1U&(VV`````.C; -XM;0(`B1PDZ"^!_O^#P`%TWH/$!%M=PY"-M"8`````58GE4X/L!(M="(7;>1?K -XM(NB'??[_@S@$=1B-M@````#HFVT"`(D<).@??O[_@\`!=-Z#Q`1;7<.0C;0F -XM`````%6)Y8/L",<$)`````#HKO___\<$)`$```#HHO___\<$)`(```#HEO__ -XM_\<%Z'8*"`````#)PXUV`(V\)P````!5B>575E.[`00``(/L#(M]",<$)`$$ -XM``#H0P@"`(G&ZQ&-'`")-"2)7"0$Z(`(`@")QHE<)`B)="0$B3PDZ.J`_O\Y -XMV'3;@_C_=!O&!`8`@\`!B40D!(DT).A2"`(`@\0,6UY?7#2+7?`Q]NL'@\8!.?YT$8/#!(D$).C8!@(`BP.%P'7HBT7PB5T,B44(@\0, -XM6UY?7>E]^O__BUWPZ^:0C;0F`````%6)Y593@^P0BW4(A?9T*(L&A53 -XM@^P$BUT(BP.)!"3HK/___XE="(/$!%M=Z4\&`@#K#9"0D)"0D)"0D)"0D)!5 -XMB>5=Z8?___^-M"8`````58GE@^P(BT4(B00DZ']T`@"C('<*",=%"!D``!#) -XMZ9WX_O^-M@````"-O"<`````58GE5E.#[!"+70R+=0C'1@0`````BQ.%TG0Z -XMD(UT)@"%TG@<]\(```!`=12#^G^0?PX/ML+VA`#@(`D(\W4GD(/#!(E4)`2) -XM-"3H$6X"`(L3A=)URXDT).AC;@(`BP:#Q!!;7EW#QT0D!%P```")-"3HZFT" -XM`(L3Z\:-M@````!5B>53@^P4BUT(B1PDZ`[Y___'1"0$!````(/``8D$).B[ -XM!0(`B5PD!(D$).@/^?__@\046UW#B?:-O"<`````58GE5U93@^P,BW4(BWT, -XMB30DZ,GX__^)/"2)P^B_^/__QT0D!`0```"-1!@!B00DZ&L%`@")="0$B<.) -XM!"3HO?C__XLSB=B%]G0.D(UT)@"#P`2+"(7)=?>)?"0$B00DZ)OX__^#Q`R) -XMV%M>7UW#D%6)Y5>)QU:)UE.#[`SK%I#H1WK^_X,X!'4>C;8`````Z%MJ`@") -XM="0$B3PDZ'MW_O^#^/^)PW38@\0,B=A;7E]=PXVT)@````"-O"<`````58GE -XM@^P8B5WXB=.)=?R)!"3HEG?^_X7`B<9X.X/[_W0E.=YT%8G:B?#HTO___XDT -XM)(G#Z#C\__^)WHGPBUWXBW7\B>Q=PX/X!7[6B?"+7?B+=?R)[%W#OO____^+ -XM7?B)\(MU_(GL7<.0C;0F`````%6)Y5.#[`2+10B+70PYV'06A!>) -XMVI"-="8`Z!O___^)V(/$!%M=PXUV`(/X!7_R@\0$B=I;7>E/____ZPV0D)"0 -XMD)"0D)"0D)"058GE@^P8B5WXBUT(B77\BW4,.?-T'X7;>!N%]G@CB?*)V.C) -XM_O__.=YT"HD<)(GSZ'O[__^)V(MU_(M=^(GL7<.)="0$B1PDZ&/___\YPXG& -XM==CKX(UT)@"-O"<`````58GE4S';@^P$Z*)5__^)]CL=M'8*"'0H.QW,EPH( -XM="`['01V"@AT&#L=1)D+"'00@_L/=`N)'"3H$_O__XUV`(/#`8/[0'7(@\0$ -XM6UWI/E;__XVT)@````"-O"<`````58GE@^PHB7W\BWT(B5WTB77XA?]T>HM% -XM#(7`=&.)/"3HMWO^_XG&BT4,B00DZ*I[_O^)1?"-1`8!B00DZ(\#`@")="0( -XMB7PD!(G#B00DZ-EZ_O^+1?"-%#.)%"2#P`&)1"0(BT4,B40D!.B]>O[_B=B+ -XM=?B+7?2+??R)[%W#B?;'10Q%R0@(ZY2-M"8`````OT7)"`CI?/___XVV```` -XM`%6)Y8/L&(EU^(MU"(E=](E]_(7V=#J)-"3H'GO^_XUX`8D\).@'`P(`B7PD -XM"(ET)`2)PXD$).A1>O[_B=B+=?B+7?2+??R)[%W#C;8`````OD7)"`CKOXGV -XMC;PG`````%6)Y8/L&(EU_(MU#(E=^(U&`8D$).BV`@(`B70D"(G#BT4(B1PD -XMB40D!.C]>?[_B=C&!#,`BUWXBW7\B>Q=PY!5,<")Y5=64X/L#(M="(7;=$>) -XM'"3H1O7__\=$)`0$````@\`!B00DZ/,!`@")QXL#AB?N-M"8````` -XMB00DZ+AM`@")`XM&!(/#!(/&!(7`=>F)^(/$#%M>7UW#ZPV0D)"0D)"0D)"0 -XMD)"058GE5E.#[""+70C'1>P`````C77LQT7P`````,=%]`````"+`^L2QT0D -XM!"````")-"3H>6D"`(L#A"%P%T/ -XME,`/ML##BT($J0```$!T!%TQP,.#^'^0=_;V!(6]40D(!'3L@\((BP+KGI"0 -XMD)"0D)"0D)"0D)!5B>5=QP4@F0L(`````,<%A)@*"`````#'!3"9"P@````` -XMPXVV`````(V\)P````!5B>564X/L$(MU"(7V#X2@````#[8&/`(/A(@```!W -XM$BP!=#:)=0B#Q!!;7EWI?O\!`#P&=^Z+1@B)!"3HO____XM&#(D$).BT____ -XMB74(@\006UY=Z5;_`0"+5A"+`H7`=!>)TXD$).A#_P$`BT,$@\,$A7>D*_P$` -XMBT84B00DZ$_____KSX/$$%M>7<.-M@````!5B>5=Z3?___^-M"8`````58GE -XM5U93NP$```"#[#PYT(E%V(E5U(E-T,=%[``````/A(4```")PXL#B00DZ%Y? -XM__^#^!*)P0^&90,``,=%[`````"+7=@Q_S'VZR*-=@"#^"@/A)<#``"+3>R% -XMR74$A?]U`X/&`8M;"#E=U'0PBP.+`(/X*0^$A`,``'[2@_@\=`6#^#YUT87_ -XM#X2``P``BT7LA3'1"0$!````(D<).AN_@$`BU7DB47HB4(0BTW4BP&#."D/ -XMA&,#``"+1=0Y1=@/A&H#``"+5=`Q_XM-T(M=V,=%W`````"#X@�+'1>`` -XM````QT7P`````(E5S(E-R.LO@_@H#X0N`0``A?\/A4T!``"+-8!>"0B%]@^$ -XM6`$``(-%\`&+6P@Y7=0/A-H```"+$XL"@_@I#X3!`0``?L*#^#P/A$@!``"# -XM^#Z-=@!UNH7_#X4'`0``@WH$/HGV#X3J`@``BT,(.T74#X3_`0``BS#'1"0$ -XM,#L)"(DT).BH;_[_A<`/A,(!``#'1"0$0#L)"(DT).B0;_[_A<`/A<<"``"+ -XM1>2!2`0``0``BUL(BW,(.W74#X2T`0``BP:)\XL`QP0DSML("(E$)`3H7?#_ -XM_X7`#X66`0``BT70@^`,@_@$=`Z+5>2+0@R%P`^$EP(``,<$)&4```#HX.[^ -XM_XM;"#E=U`^%)O___XM=W(7;=`N+3>R%R0^$_@```(M%\(7`#X06`@``BTWD -XMQ@$!BT7D@\0\6UY?7<.%_W4@BU7R%P`^$NO[__XLU@%X)"(7V#X6H_O__BP.)!"3H?&@"`(M- -XM\(M5Z(D$BNF0_O__A?]URX-Z!#P/A+P!``"+2+ -XM00B%P`^$M@$``,<$)&<```#HZNW^_^DK_O__D(UT)@"#[P$/A5C___^+1>R) -XM7>"%P`^$#_[__^E0____BU7PA=(/A5,!``"+3>3&`0*+5>"Y`0```(M%W.CS -XM!```BU7DB4(4BT7D@\0\6UY?7<.+3>2!202`````]D70#(M;"`^%C_[__XM# -XM"#M%U`^%`@$``,<$)&0```#H8^W^_^FD_?__N`$```#3X*D`ZP0`#X6,```` -XMJ!`/A('\__^+6P@[7=0/A6#\___IP!````Z?C[___'0@00````BT74.478#X66_/__QP0D)````.B5 -XM[/[_Z=G]__^+5>2#2@0"Z0K]__^+1>2!2`0``@``Z37^__^+2)00SIAOS__XL& -XMB00DZ%9F`@"+5>2)0@CI=>V+3>B)\H/$'(GX6UY?7>G#^O__C78`A=)US,=$)`08 -XM````QP0D`0```.CH^0$`BTWH@\D$B47PBT,(.?")1>QT7HL`@S@F=$"+1?") -XMVL8``XGXZ'_Z__^+5?")0@B+5>R+`H,X)G0S@TWH`HGRBT,(BTWHZ#[___^+ -XM5?")0@R#Q!R)T%M>7UW#BT7PBTWH@4@$@````(/)#.NNBUWLZ\B+5?")^,8" -XM`XG:Z"CZ__^+5?")0@CKL56)Y5>)UU93B<.#[!PYT(E-['0TB<8QR>L;C;8` -XM````@_@I#X27````@_@F=#*+=@@Y]W03BQ:+`H/X*'7BBW8(@\$!.?=U[8M- -XM[(GZ@\0EF____D(VT)@````!5 -XMB>57B==64XG#@^P<.=")3>QT-HG&,@1\=57B<=6B=93@^P<.=")3>P/A*(```")PS'2ZQV)]H/X -XM"G0F@_@H=0:#P@&-=@"+6P@YW@^$?P```(L#BP"#^"ET;'[:@_@[=>6%THUV -XM`'7>QT0D!!@```#'!"0!````Z&KW`0")VHE%\,8`!(M-[(GXZ,C^__^+5?") -XM0@B+1>R)="0$B40D"(M#"(D$).BL`0``BU7PA<")0@QT+XM%\(/$'%M>7UW# -XMC;0F`````(M;"(/J`3G>=8&+3>R)\H/$'(GX6UY?7>ES_O__BT((QT((```` -XM`(E"#.O"C70F`%6)Y5=64X/L'#G0B47PB57LB4WH#X3L````BQB)QC'_ZQR# -XM^"9T;X/X*'4$@\BP.#^"ET/G[;@_@^=`R#^'R0 -XM==Z#>P1\=-B+=@@[=>R)]@^$G````(L>QT0D!#`["0B)'"3HA&C^_X7`=+2+ -XM`X/X*77"@^\!>:C'!"1A````Z!SH_O_KFH7_=9:#>P0FB?9TCHM-Z(GRBT7P -XMZ''^__^)QP^V`#P$='L\!G1W/`5TR)-"2)1"0$Z&,```")0PSK)X7_ -XM=16+3>B+5>R+1?"#Q!Q;7E]=Z07^___'!"1B````,=OHA^?^_X/$'(G86UY? -XM7575E.#[`R+70B+=0R+?1`Y\W4)ZS&+6P@YWG0JBP.+`,<$),K;"`B) -XM1"0$Z&WH__^%P'7A@\0,B?F)\HG86UY?7>E7_O__@\0,,575HG64XG#@^PL.=`/A#D!``"+`(,X*`^$#P$``,=$)`24 -XM=@H(B00DZ"!1``"%P(G"#X04`0``BT,$B36$F`H(HR"9"PB+`L=$)`10*@8( -XMQP0D,)D+"*,PF0L(Z.WI_O^-1>B)1=B)!"3HC^'__XE%X,<$)#"9"PCH,.G^ -XM_XL-@%X)"(7)=!>-1>B)!"3H6[/__\<$)````$#HO^;^_XL#BQ"%T@^%T@`` -XM`(M%X(7`#X2T````BWL$D(UT)@"+`XD$).@&]`$`BUL(BT,$B00DZ/CS`0`Y -XMWG7DB7<(N`$```")?@2+5=@Y5?!T88M%[(M`!(E&!(M%[(M`!(EP"(M%\(EX -XM!(E'"(M%[(L`B00DZ+GS`0"+1>R)!"3HKO,!`(/$++@!````6UY?7<.+4@2+ -XM`H,X*741ZQV0C70F`(M2!(L"@S@I=`XYTW7R,<"#Q"Q;7E]=PXM#"#G0=._H -XM7````(/$+%M>7UW#BW,(BWL$.?,/A4;____I7?___XM5\(E5W(LZB00DB7PD -XM!.BI9?[_A<`/A1+___^)?"0$QP0D($,)".C57@(`BU7P/A,X```"+&(G&,?_K(I"#^"9T.X/X -XM*`^$G````(/X"G0MBW8(.77L#X26````BQZ+`X/X*71H?M:#^#Z-=@!T-(/X -XM?'0)@_@[==>-="8`A?]USXM%\(GRZ-+]__^Z`0```(7`=62+1@B+5>R#Q!Q; -XM7E]=ZWJ+=@@[=>QT1XL>QT0D!#`["0B)'"3HW&3^_X7`=(^+`X/X*76=D(UT -XM)@"#[P$/B7K____'!"1A````Z-OD_O_I:?___X/'`8UV`.E>____,=*%_W0* -XM@\07UWI2?W__XGVC;PG`````%6)Y5:)UE.) -XMPX/L$#G0=0GK+HM;"#G>=">+`XL`QP0DRML("(E$)`3H4^7__X7`=>&#Q!") -XM\HG86UY=Z<#^__^#Q!`QP%M>7<.-M"8`````58GE5E.[,@```(/L$(MU",<% -XM:)P+"`L```"-M@````"+1@B)\NB&____A&#Q!!;7EW#D)"0D)"0D)"0D)"058GEBT4(78L`HW!A -XM"0C#D%6)Y5W'!=@D"0B@G`L(PY!5B>6#[!BAV"0)"#V@G`L(#X2`````BPV$ -XM=PH(A&$) -XM"`$```"%TG5)BPWH=@H(N@$```"%R74&BQ7,EPH(+:"<"PB)1"0(QT0D!*"< -XM"PB)%"3HH^7__X/``71>QP78)`D(H)P+",<%>&$)"`````#)PXL-Z'8*"+H" -XM````A&$)"`````#'!=@D"0B@G`L(QP0D````(.@` -XMX_[_H=@D"0CI8?___XVV`````.CG9?[_BP"#^`ET'HUT)@!^*8/X&703B?:- -XMO"<`````?"&#Z$6#^`%W&<<$)`$```#HZH+^_^EG____@^@%@_@!=N?'!"0` -XM```@Z*'B_O^0Z4W___^-="8`C;PG`````%6)Y8/L"*'8)`D(BU4(@>+__S\` -XMB!"#P`$]EJ0+"*/8)`D(<@7HEO[__\FX`0```,/K#9"0D)"0D)"0D)"0D)!5 -XMB>53@^P$BPW`F`H(BUT(A#.-=@")'"3H.*4!`(E="(/$!%M=Z4O___^A?)@*"(7`#Y7`Z\*A_)D+"(7` -XM#Y7`Z[:-=@"!XW____>!RP````CKPNA]9@$`ZZN-="8`C;PG`````%6)Y593 -XM@^P0BT4(BQ5P80D(B<:)PX'F````/('C__\_0(72=5VI````0'56.QW<70D( -XM?2RAX%T)"/9$F#4"=!:#^W\/CA8!``"#/8!1"0@!#X0)`0``]D28-@1U&8UV -XM`(/[?P^.L@```(,]@%$)"`$/A*4````)WHDT).C0_O__ZR^+%<"8"@B!X___ -XM_S^%TG0^H>AV"@B%P'5EH?R9"PB%P`^5P(3`=3Z)'"3H7_[__XLUU"0)"(7V -XM=`N!X___/P"#^PIT2H/$$%M>7<.-=@"AZ'8*"(7`=!JA?)@*"(7`#Y7`A,!T -XMP@G>B30DZ/^C`0#KMJ'@=0D(A<`/E<#KII"A;)D+"(7`#Y7`ZYF-="8`@\00 -XM6UY=Z;7\__^)\(/(7(D$).C8_O__B=C!^`:#X`>#P#`)\(D$).C#_O__B=C! -XM^`.#X`>#P#`)\(D$).BN_O__B=B#X`>-6##I%____XU#]X/X`0^&"____XL- -XM=&$)"(7)=!J)\(/(7HD$).A^_O__@_M_=!*#RT#IY_[__X/[#77AZ=W^__^S -XM/Y"-="8`Z='^__^-="8`C;PG`````%6)Y5=64X/L'(M="(G8)?__/P")1"0$ -XMC47NB00DZ"Y:`@"%P(G'="")WC';@>8``,#_#[9$*^Z#PP$)\(D$).@,_O__ -XM.?MUZH/$'%M>7UW#58GE5U93@^PZ)!"3HWED" -XM`(7`B<=T((G>,=N!Y@``P/\/MD0K[H/#`0GPB00DZ`S]__\Y^W7J@\0<6UY? -XM7<-5ND#C12)`=(ITXE<)`B)3"0$ -XMZ&`Z`@"#Q!1;7<.-=@"-O"<`````5;AWFBX`B>564X/L$(MU"(GQP>D&]^&) -XMT\'K`H7;#X2,````B5PD!,<$)-C;"`CH'#H"`&G#0'X%`(GQ*<&X'X7K4??A -XMB=.ZB8B(B,'K!8G8]^J-!!K!^`7H8O___\<$)-K;"`CHYCD"`(G8NHF(B(CW -XMZ@':P?H%:](\*=.)V.@\____QP0DDAT)".C`.0(`B?"Z'X7K4??B@\006\'J -XM!6O29"G6B?!>7>D2____B?:X'X7K4??FQP0D/=P("(G3NHF(B(C!ZP6)V/?J -XM`=K!^@6)5"0$Z'8Y`@#K@HUT)@!5N,6SHI&)Y593@^P0BW4(]^:)T\'K"X7; -XM=&B)7"0$QP0DV-L(".A%.0(`:<,0#@``B?.ZB8B(B"G#B=CWZHT$&HG:P?@% -XMP?H?*=#HD/[__\<$)-K;"`CH%#D"`(G8NHF(B(CWZHG8P?@?@\00`=K!^@4I -XMPFO2/"G3B=A;7EWI7?[__XGPNHF(B(CWZHGPP?@?B?/'!"0]W`@(`?+!^@4I -XMPHE4)`3HQC@"`.NDD)"0D%6A@'<*"(GE7<<%@'<*"`````"CB'8*",.-M"8` -XM````5:&(=@H(B>5=QP6(=@H(`````*.`=PH(PXVT)@````!5B>564XG#H0"8 -XM"@B%P'1`BPT\=PH(,?;K#(VV`````(L`A7<.-M@````"-OP`````[!3QW -XM"@A5B>53B<-T$CL%<)D+"'0J6UW#C;0F`````*%PF0L(A6#[`B#/=27"@C_="*AU)<*"(7`=`C)PXVV`````,<$)#X```#H5-S^ -XM_\F-=@##QP0D(````.A#W/[_C78`Z\V-M"8`````C;PG`````%6)Y593@^P0 -XMBQT`F`H(BW4(QP6,=@H(`@```(7;="N0]D,,`G0>A?:X`;H("'4%N$7)"`B) -XM1"0$QP0D0````.CLV_[_BQN%VW76@\006UY=P^L-D)"0D)"0D)"0D)"0D%6) -XMY8/L6(E]_(M]"(E=](EU^(/_``^."@$``(U=U(UUY(D<).B#8/[_QT0D!!(` -XM``")'"3H@UO^_\=$)`05````B1PDZ'-;_O^)="0(B5PD!,<$)`$```#H#UO^ -XM_\=$)`1@'@4(B30DZ%/>_O^+10S'!"0`````B40D!.B<7/[_@\`!#X2G```` -XMA?]^=L<$)`\```#H\UW^_SE%#'1:C5V\B5PD",=$)`0`````QP0D%@```.CS -XM7O[_QT0D!`$```#'!"06````Z$]?_O^+10S'!"0/````B40D!.@,6O[_QT0D -XM"`````")7"0$QP0D%@```.BT7O[_C47DB00DZ!W=_O\QP(M=](,]U)<*"`"+ -XM=?B+??P/G\"#Z`$A!=27"@B)[%W##XU"____Z]:-=@#HQV#^_\<$)`````") -XM10R)1"0$Z-1;_O^#P`%T"(M]#.DT____Z')=_O^+`(D$).@86_[_QT0D!-S; -XM"`C'!"0V````B40D".A4VO[_QP0D`````.AX>O[_Z\.-M@````!5B>53B<.# -XM[!2+0!B%P'4(ZWZ+6P2+0Q@[0QQU]8G8Z#S]__\QP#L=@'<*"`^4P(/H`2$% -XM@'<*"(G8BU,4C78`@6`,_W___\=`&`````#'0!0`````BT`$.=AUY#L5,)H+ -XM"'0&@\046UW#H0"8"@@QR87`=`^+4!0YT7T"B=&+`(7`=?&)#3":"PB#Q!1; -XM7<.A@)@*",=$)`SLVP@(QT0D"`,```#'1"0$$0```(D$).@K.___B00DZ,,T -XM`@"#Q!1;7<.-M@````"-O"<`````58GE@^PHB77XBW4(B5WTB7W\A?9T"HM> -XM!(U^!(7;=2"+'3QW"@B%VW1HBQ4\=PH(BUWTB="+=?B+??R)[%W#D,=$)`3< -XM/0D(B30DZ/Q8_O^%P'3,QT0D!.@]"0B)-"3HZ%C^_X7`=+C'1"0$]#T)"(DT -XM).C46/[_AP`````ZPR+5?"+$H72B57P=&Z+ -XM5?"+0A@[0AQUZ8,_/W5&BU)XBP*%P'3;B=/K"HM#!(/#!(7`=,T[!G7RB5PD -XM!(DT).A1VO__ASKGHM5\(M" -XM>(D\)(E$)`3H(-K__X7`=(CKS8M5[(72D(UT)@`/A;K^__\QP(,_/P^4P(/H -XM`8/@\04\```0B00DZ-_7_O\QTNF8_O__QP0D.P``$.C,U_[_Z>'^__^)/"3H -XMCU,"`(D$).@S5O[_BQ4`F`H(A=*)P74(ZQB+$H72=!([2A1U]8M"&#M"''7M -XMZ5'^___'!"0M```0Z(77_O^0C70F`.G;_O__C70F`(V\)P````!5B>6#[`B+ -XM10B+0`2)!"3H[/W__X-(#"#)PXVV`````%6)Y593@^P0BS6`=PH(A?9T5/=& -XM#`(!``!T".M)C78`BW8$BT88.T8<=?6+1A2)\\<$)`?<"`B)1"0$Z%`R`@"+ -XM0QC'!"0\W`@(B40D!.@],@(`BUL$.=YUYL<$)`H```#H2O7__\<%@'<*"``` -XM``#'!8AV"@@`````@\006UY=P^L-D)"0D)"0D)"0D)"0D%6)Y5=64XG#@>RL -XM````B95D____BT`8.T,<=`^-="8`BUL$BT,8.T,<=?4Y6P0/A)`'``"+A63_ -XM__^)WHN59/___\>%=/_________'A7C___\`````@^`0B46`BX5D____@>*$ -XM````B56(BY5D____QX5P_________X/@`HE%A(N%9/___X/B`8F58/___X/@ -XM!(F%7/___XVT)@````"+1@R+E7C___^)QPG"@>%?/___R3<"`B%P'4*QX5\____^]X("#N]MP(".@# -XM,`(`C48@B40D#(U&*(E$)`B-1C")1"0$QP0DH&$)".AR6@``B?:+1@0YPW0) -XMB<;IC]___'!"0@````Z"+R___IK?[___:%9/__ -XM_P@/A8("``#VA63___]`#X2Y_O__H629"PB+0`R)1"0$BT,(BT`,B00DZ&53 -XM_O^%P`^$E_[__Z&`F`H(QT0D#'/<"`C'1"0("@```,=$)`01````B00DZ/PT -XM__^)!"3HE"X"`(M#"(M`#(D$).BFH?[_QP0D><((".AZ+@(`Z4O^__^0C70F -XM`#L=/'<*"+@K````=!0QP#L=<)D+"`^4P(/H`8/@\X/`+8M6%+D=W`@(@_H) -XM?@6Y12-1BB)1"0$B10DZ(-4``"+1>PY1>1UMHM%Z#M% -XM\`^?P.NNC47LQT0D#(!A"0B)1"0(B7PD!,<$)*!A"0CHT50``.FJ^O__BT,, -XM]L1`#X1D^/__@.2_@\A`B4,,Z5;X___'!"07W`@(Z!8J`@#I+/___Y!5B>56 -XM4X/L$(MU"(M=#(,%T*P+"`''1"0$L)`(",<$)-"L"PCHE]'^_XGPZQ"-=@"` -XMS@&)4`R+0`0Y\'0IBU`,]L(#=/&)T8/)`8G*@^+]A=N)4`QUVH'A_?[__XE( -XM#(M`!#GP==>%VW5#B?#H?_'__[H+````B?#HD_?__\=$)`03````BT8(D$).C,<$)(0``!")1"0$Z!W-_O^+5@2%TG6DC;8`````@\006UY= -XMPXGVC;PG`````%6)Y5=64X/L#(LUC'8*"(M5"(7V=`K'!8QV"@@"````C4($ -XMBU($OP<```"%TG08BU@$A=MT=,<$)#@```"_5P```.BYS/[_BPTPF@L(A7UW#B=CH&/+__^OD -XMQT0D!*PX"0AFOU<`B10DZ!Y,_O^%P'2%Z6____^)]HV\)P````!5B>53@^P4 -XMBQT`F`H(QP50F@L(`````(7;=0OK68UV`(L;A=MT4&:#>PP`D(UT)@!Y[H,% -XMT*P+"`''1"0$L)`(",<$)-"L"PCHT\[^_[H'````B=B!8PS_?___Z!#U__^H -XM`W08QP0DT*P+".@0SO[_BQN%VW6P@\046UW#B=CH;?'__^O?C70F`(V\)P`` -XM``!5B>575HG&4X/L+(7`B578="V+`(7`=">)\^L/C70F`(/#!'0:BP.%P'04 -XM@S@EB?9U[HD$).A&S?__@\,$=>:)-"3HN7K__\=$)`3P(P8(B<>)!"3H-\[^ -XM_X,%T*P+"`''1"0$L)`(",<$)-"L"PCH',[^_Z&4=PH(A<`/A08"``"%_P^$ -XM6`(``(L?A=L/A$X"``#'1=P`````QT7@`````.MG@_A_=W3V!(6]40D(!'1J -XMB1PDZ+9&`@"-5?#'1"0("@```(E4)`2)!"3HJTW^_XG#BT7P@#@`#X2!```` -XMQP0D.0``$.BURO[_@WW8#P^$+`$``(-]V`$/A"(!``"#QP1T+XL?A=MT*8L# -XM@_@E#X2.````J0```$!TAX/X+9!TD,<$)#D``!#H7UW#C;8`````BTW8B1PD -XMB4PD!.A]2?[_A<`/B73____H($W^_XL`B00DZ,9*_O^)7"0$QP0DJ=P("(E$ -XM)`CH1B4"`(-%X`'I7/___XD<).B%\/__B<:-=@"+4`P)5=R+0`0YQG7S@WW8 -XM%G<<#[9-V+@!````T^"I``!F`'1A]D7<`0^$R````(M%V(E$)`2+1AR)!"3H -XM*T_^_X7`#XCY````@WW8#W0*@WW8`0^%]O[__\=$)`03````BT8,<$ -XM)(0``!")1"0$Z![)_O_I>/[__X,%Q*P+"`''1"0$L)`(",<$),2L"PCH[LO^ -XM_^G:_?__H8"8"@C'1"0,BMP(",=$)`@,````QT0D!!$```")!"3H="K__XE< -XM)`2)!"3H""0"`(-%X`'I'O[__\<$)-"L"PCH`\O^_^E@_O__Z*5+_O^+`(D$ -XM).A+2?[_B5PD!,<$)*'<"`B)1"0(Z,LC`@"#1>`!Z=O^__^)]E6)Y5=64X/L -XM'(M5"(M"!(UZ!(7`=`6#."UT%KL/````B=J)^.BW_/__@\0<6UY?7<.-<`2+ -XM0`2#^&QT=X/XNIQP0D"@```.B[Y?__Z?_^__^+0@B-2@B%P'1AB<^)QND(____]@2%O5$) -XM"`0/A`S___^)-"3H_4("`(U5\,=$)`@`````B50D!(D$).@22?[_B<.+1?"` -XM.`!U#87;>`F#^Q\/CBK____'!"0;```0Z//&_O^-=@#I%O___\<$)`X``!#H -XMW\;^_^F?_O__C78`C;PG`````%6Z$0```(GEBT4(78/`!.D<^___C;8````` -XMC;\`````58GE@^P8B5WXB<.)=?R+`#L%($,)"'1YB1PDZ!Q'_O^)QJ%08PD( -XM@_A/=RT!\(/X3W8PQT0D!,@]"0BA5&,)"(D$).CT1?[_@P548PD($,<%4&,) -XM"%````"+7?B+=?R)[%W#B5PD!*%48PD(B00DZ,A%_O^-!+4``````3508PD( -XM`0548PD(BUWXBW7\B>Q=PX/#!.N"C78`C;PG`````%6%P(GE5HG&4P^$P0`` -XM``^V!CP"#X3M````=WHL`8GV#X2N````BU8$]L($C70F`'4EBT8(A!B+1@2#X`&#^`$9P"4``0``@\`!B4,,BU8$]L8@=`F`S$")0PR+5@3V -XMQD!T"H%+#````0"+5@1FA=)Y!X%+#````@")\,<%5&,)"`!B"0C'!5!C"0@` -XM````Z/O]__^A5&,)",<``````(/`!*-48PD(]D8$"'02BU,,B="`S`B)0PR` -XM?@0`>'N0QP0D`&()".B$/0(`B4-XH8!W"@B%P'1MQT,(`````*&`=PH(BT`4 -XMB4,4H8!W"@B)0P2A@'<*"(M`&(E#'(L5@'<*"(G1ZP*)PHM"!#G!=?>+#0"8 -XM"@B)6@2-0R")"XD=`)@*",=%#`````")10B#Q`Q;7E]=Z9)$_O^`S@R)4PSI -XM>____XD=@'<*"(E['(E;!*%DF0L(B4,(H629"PB#0`@"H3":"PB#^`A_+8L- -XM`)@*"(/``:,PF@L(B4,4BS4\=PH(A?9T28L5<)D+"(72=8B)'7"9"PCK@(L- -XM`)@*"+X!````ARA@)@*",=$)`S( -XMW`@(QT0D"`$```#'1"0$$0```(D$).A$'___B00DZ-P8`@"+6P0Y\W6_C5W( -XMB1PDC7VXZ&-"_O_'1"0$`@```(D<).AC/?[_QT0D!!0```")'"3H4SW^_XU% -XMV(E$)`B)7"0$QP0D`0```.CL//[_C478B00DQT0D!&`>!0CH+<#^_XM%V(E% -XMN(M%W(E%O(M%X(E%P(M%Y(E%Q,=$)`04````B3PDZ.%"_O^0C70F`.@K,`(` -XM,=N)\(VT)@`````+6`R+0`0Y\'7V]L,!=`J)/"3HI4+^_^O7C478B00DZ"R_ -XM_O^AU)<*"(7`?A")1"0$QP0D#P```.C?._[_]L-2#X3T`0``]L,"#X4E`0`` -XMNJ````")\.CEY?__]\,"(```=`Z+/91W"@B%_P^%C@$``(GR,=L/MD(0A,!T -XM$O="#!`@```/MMAT!H/(@`^VV(M2!#GR==^%VP^$@0```,=$)`3$F`H(QP0D -XMP#P)".@^)@``A7]___H>ES^_XGPZ%/@ -XM__^#Q%Q;7E]=PZ&`F`H(QT0D#+W<"`C'1"0(`@```,=$)`01````B00DZ`8< -XM__^)7"0$B00DZ)H5`@#I%?[__XGPZ`[@___I564X/L$(M=".A`W?__BT,$B=[K/L=#&``` -XM``#HJ3S^_XL`B00DZ$\Z_O^)1"0(BT-XQP0DA```$(E$)`3HC+G^_XM&!(7` -XM=#>+1@B#Q@2%P'0MB00DZ`/@___'1"0$`0```(G#B00DZ)'J__^%P'2DB1PD -XMZ%7[__^+1@2%P'7)@\006UY=PXVT)@````!5B>564X/L$(L=`)@*"(7;=%2^ -XM`)@*".L/C;0F`````(L8B<:%VW0^BTL8B=B%R77OBP.)!HM#>(D$).APQ@$` -XMBU,(A=)T#8M""(/H`H7`B4((=":)'"3H5,8!`(GPBQB)QH7;=<*A@'<*"(D$ -XM).C-^O__@\006UY=PXM#"(L0A=)UT8D$).AE>/[_Z\>-=@!5B>575E.#[&R- -XMM"8`````Z)<[_O_'``````"+-91W"@B%]@^$7@(``(L=P'8*"(7;=0Z+#?Q= -XM"0B%R0^$1@(``+@#````C56HB40D!(U%\(E4)`B)!"3H<#C^_XG"C4`!@_@! -XM#X8S`@``BS4`F`H(A?9U".N:BS:%]G24.U88D'7TBTX,B"$``(D$).CP,@(`B00DZ)0U_O\YPP^,]0`` -XM`(M'#(/(0(E'#`E%H(M_!#GW=8N+5@R)T(#D_CMV!(E&#`^$G@$``/=%H`$0 -XM```/A3S^__^)\XM##*@"=`:`S!")0PR+6P0Y\W7LBT,8.T,<=`N+6P2+0Q@[ -XM0QQU]8M]H(/G`@^$?`$``*$\=PH(A^__^)0P3'1"0(`0```,=$)`0"````B00DZ.@S -XM_O^+`X7`>!6+4P2%TG@&@\046UW#B00DZ+&Y__^+0P2%P'@(B00DZ**Y___' -XM10@U````@\046UWI,;3^_Y!5B>6#["C'1"0$Q)@*"(E=](G3B7W\B<>)=?C' -XM!"1@1@D(Z/D=``"%P`^$A@```(D<)(U=[.C6L?[_QT7P`````(D<)(E%[.BT -XM3O__ASH[<`!`.N;B1PDZ%.Q_O_'1"0$,"H("(G#B00DZ%&V_O_' -XM1"0$`````(D<).@18___B1PDB47LZ):U_O_I8?___XM%[(D$).@&+P(`HR!W -XM"@B+1>R)!"3HEL`!`,<$)#$``!#H&K/^_^E7____D(UT)@!5B>575E.![.P` -XM``"+?0B%_W1JBS70F0L(A?9T,XL=P'8*"(7;=0J+#229"PB%R70?BU4(BT(0 -XMABS7H=@H(A?9T"8MU"/9&!01T%8'$[````%M>7UW##[8!_R2%\-P( -XM".@9N/__@<3L````6UY?7<.+70B+0Q"+,(L&)?___W\]````0`^$I@\``(#F -XM!`^$*P\``(M5"(M"$(LPA?9TK(M2!/;""`^%A@(``(#F`@^%1`(``,=$)`@" -XM````QT0D!!`O"0C'!"3T+@D(Z$XE``"+50B`.@$/A90```"+30B+<1"+'L=$ -XM)`0,2`D(B1PDZ,8Q_O^%P`^%5@$``(M&!(7`#X2(!@``BP#'!"3JW`@(B40D -XM!.B1,_[_A<`/A+$!``"+3@B%R0^$8P8``(M=",<%('<*"/31"`B+0Q"+0`2) -XM!"3H]QD``(A#`<=$)`0"````BT,0B00DZ.&W__^!2P0`"```BU4(@#H!#X1L -XM____H2AW"@C'1?``````A<`/A;3^__^+1?"%P'0PBT7P@7@$`/D$"`^$50<` -XM`(M%\(%X!&#V!`@/A$4'``"+1?"!>`2@[00(#X0U!P``BT4(BW`$]\8`(``` -XM=1[WQA`````/A2H'``"+1?"%P'0+9O?&"9@/A!@'``"+50B`.@)T$X'F`00` -XM`'4+BT7PA<`/A,$*``"+10R%P'@-H5AC"0B%P`^$V`T``(M%#(E$)`2+30B) -XM#"3H]NW__X7`#X7""0``H5AC"0B%P`^%2PH``(M%"(MP!,>%'/___P$```#I -XMR@8``,=$)`3D1PD(B1PDZ%@P_O^%P'4JBU8$A=(/A!X%``"+30B!200`$``` -XMQT0D!`$```")-"3HL[;__^E`_O__QT0D!/Q'"0B)'"3H&C#^_X7`#X4&!@`` -XMBT8$A<`/A-P$``"+70B!2P0`@```QT0D!`$```")-"3H<;;__^G^_?__BT4( -XMQD`!!,=$)`0!````B30DZ%6V__^+50B!2@0`"```Z=C]___'!"0`````Z#JU -XM__^+50B+0@B)!"3HS*+^_XL=*'<*"(7;#X24_?__QP0D`````.@2M?__Z8/] -XM__^+712)'"3HPOK__XMU"(M6!.ED_?__BW4(@#X"=`^+11B)-"2)1"0$Z"#B -XM_O_'1"0$$P```,<$)`````#HS+C__\=$)`@!````QT0D!`(```"C1)D+"(D$ -XM).C++O[_QT0D!!$```#'!"0!````Z)NX___'1"0(`0```,=$)`0"````H\R7 -XM"@B)!"3HFB[^_Z',EPH(B00DZ)TT_O_'1"0$$@```,<$)`(```"CX'4)".A8 -XMN/__QT0D"`$```#'1"0$`@```*,$=@H(B00DZ%AV"@@`````BT$$ -XMBU$4@^`@"4($BT4,BUT8B10DQT0D#`````")1"0$B5PD$,=$)`@`````Z`C[ -XM___H\T_^_XMU"(U=Z(M."(M6!(M!!('BI0```(/("`G0B4$$BU48BT4,B5PD -XM#(E4)!"+=1")1"0$B0PDB70D".C%^O__BT4(BW4(BT@,BU8$BT$$@^(Y@\@$ -XM"=")002+51B+10R)5"00BW44B5PD"(E$)`2)#"2)="0,Z(KZ___I[_K__XM% -XM"(M("(7)=%"#XB`)402+10R+51B)#"3'1"0,`````(E$)`2)5"00QT0D"``` -XM``#H3_K__XM-"(M!"/9`!`%T&(M1#(72#X2B^O__]D($`745B?;HZ]7__XM= -XM"(M3#(72#X2'^O__BW4(BT8$@^`P"4($BT4,BU48QT0D#`````#'1"0(```` -XM`(E$)`2)5"00BT8,B00DZ.CY___I3?K__XM="(M+"(7)=%N#XB`)402+10R+ -XM=1B)#"3'1"0,`````(E$)`2)="00QT0D"`````#HK?G__\=$)`3$F`H(QP0D -XM]"X)".CY%@``B00DZ`$5``"%P`^4PH`[!@^4P#C"#X7[^?__BT4(BU`,A=(/ -XMA-KY__^+0`2#X#`)0@2+10R+71C'1"0,`````,=$)`@`````B40D!(E<)!") -XM%"3H0?G__^FF^?__B00DZ%2M__^#Z`&0#X5Z^?__BSTH=PH(A?\/A6SY__^+ -XM30B+01"+`(D$).B\80``A<")A2#___]T"8,X?@^$;PX``(N%(/___XD$).C+ -XM)P(`BY4@____B10DB%`20H@4(='R+1?"!>`3@H04(='"+1?"!>`30H@4(=&2+1?"! -XM>`1`M04(=%B+1?"!>`20H04(=$R+1?"!>`3PI@4(=$"+1?"!>`3PI04(=#2+ -XM1?"!>`3@GP4(="B+1?"!>`1@H`4(=!R+1?"!>`0@HP4(=!"+1?"!>`10?`4( -XM#X7J]___BUT(@#L!#X4J^?__BT7PA<`/A1_Y__^%T@^%%_G__Z'`=@H(A<`/ -XMA`KY__^)'"3H;.O__\=$)`0P*@@(B<.)!"3H.JW^_XD<).@2Y`$`B1PDZ(JL -XM_O_IV_C__Y"-="8`QT0D!'0\"0B)'"3H_"G^_X7`#X7)_O__BT8$A<`/A+[^ -XM__^+10B!2`0`(```QT0D!`$```")-"3H4[#__^G@]___BW4(@68$__?__^F\ -XM^/__BT7PA%'/___P````"AZ'8*"(7`#X4=`@`` -XM]\8`!```#X41`@``]\8``@``#X7<````BU4(BT((A<`/A.\)``"AM'8*",=$ -XM)`0`````B00DZ-JR__^AS)<*",=$)`0!````B00DZ,6R__^A!'8*",=$)`0" -XM````B00DZ+"R__^+30B+40B)R.@3]?__B<.)!"3H"24"`(D$).A!M/__B1PD -XMBL_O_'1"0$`````(D\).A'K/__A<")PP^( -XMI@H``(D\).A%J_[_QT0D!`,```")'"3H82C^_\=$)`0$````B1PDB40D".A- -XM*/[_QT0D!`````")'"3H<;+__XM%"(M0#(72#X2;!@``Z'[T__^)PXD$).AT -XM)`(`B00DZ*RS__^)'"2)Q^@"M@$`QT0D!#`J"`B)/"3HD```#'1"0$Q)@*",<$),`\"0CH0!$``(7`#X2B]/__QT0D!,28"@C' -XM!"3T+@D(Z(01``")!"3HC`\``(7`B<,/A'ST__^A@)@*",=$)`R]W`@(QT0D -XM"`(```#'1"0$$0```(D$).B="/__B5PD!(D$).@Q`@(`Z4;T__^+=0B+5@3V -XMP@%T"*-L=@H(BU8$BQWH=@H(A=MU)O;"!'0ABU40BP*)!"3H':S__XM-$(M! -XM!(D$).@/K/__BUT(BU,$]L((#X7Z\___H5AC"0B%P`^%2@0``(/B`0^%Y//_ -XM_^A%[?__D(UT)@#IU?/__^A62/[_C;8`````Z<7S__^+1?"!>`2P@04(#X6/ -XM_/__Z5_U___'1"0(`````,=$)`1@8PD(QP0D`P```.C6)?[_BUT(QP588PD( -XM`````(MS!,>%'/___P$```#I6?S__XM%#(7`>!B+/5AC"0B%_W4.BS4H=PH( -XMA?8/A"`(``"-7=B)'"3HS2K^_XD<),=$)`04````Z,TE_O^)'"3'1"0$`@`` -XM`.B])?[_C47(B5PD!(E$)`C'!"0!````Z%8E_O^AY'4)"(L5E'<*"(L-P)@* -XM"(L=Z'8*"(LUM'8*"(F%)/___Z',EPH(B94H____BQ4$=@H(B8TL____BPU$ -XMF0L(B9TP____BQW4EPH(B;4T____BS7@=0D(B84X____H?R9"PB)E3S___^+ -XM%6QC"0B)C4#___^+#6AC"0B)G43___^+'61C"0B)M4C___^+-6!C"0B)A4S_ -XM__^A6&,)"(F58/___XF=6/___XF-7/___XFU5/___Z-<8PD(QP7$=@H(```` -XM`,<%3)D+"`````"+'>A="0C'!;AV"@@`````QP51U"0@!A<`/A`T%``"%V\<% -XME'<*"``````/A!0'``#'1"0$`0```,<$)`(```#H;"C^_\=$)`0!````QP0D -XM`P```.A8*/[_BT4,A;Q__^- -XM7@2)'"3H+R/^_XDT)(E<)`2-!(4$````B40D".AX)_[_BW4(BU8$Z2WP__^A -XM!'8*"(D$).@0(_[_H?R9"PC'1"0(`````,=$)`0"````QP0D`@```*-LF0L( -XMZ,HA_O_IH?K__\=$)`@`````QT0D!&!C"0C'!"0#````Z,DA_O^+=0C'!5AC -XM"0@`````BU8$Z87[___WQ@@````/A"@"``#'!"0!````Z&"G__^+312+002) -XM!"3HCB+^_\<%?)@*"`````#I#_K__\=$)`0)````B3PDZ!.E__^#^/^)PP^% -XMR_G__^E\^?__C47(QT0D"`````")1"0$QP0D`P```.A$(?[_QP0D,````.B< -XMH?[_BX4D____BY4H____BXTL____B[4P____H^1U"0B+A33___^)%91W"@B+ -XME3C___^)#<"8"@B+C3S___^)->AV"@B+M4#___^CM'8*"(N%1/___XD5S)<* -XM"(N52/___XD-!'8*"(N-3/___XDU1)D+"(NU8/___Z/4EPH(BX5<____B17@ -XM=0D(BY58____B0W\F0L(BXU4____B35L8PD(HVAC"0BA7&,)"(D59&,)"(D- -XM8&,)"*-88PD(H4R9"PB)!"3H1:X!`*'$=@H(QP5,F0L(`````(D$).@NK@$` -XMH;AV"@C'!<1V"@@`````B00DZ!>N`0"A7)D+",<%N'8*"`````")!"3HP*?_ -XM_XMU",<%7)D+"`````")'"2)="0$Z.?;__^-1_G__\=$)`3$F`H(QP0DH$$)".@P"@``A<`/A/WW__^+ -XMA5#___^%P`^%)@(``(V%:/___XE$)`2)/"3HA"+^_X7`#XC5]___#[>%!U"0C'1"0(`````,=$)`0"````QP0D`0`` -XM`*-\F`H(Z"$?_O_IS/?___?&!`````^%S````/?&(````'0-@SW4EPH(_P^$ -XM30,``,<$)`````#HTZ3__Z%$F0L(B00DZ`(@_O_'1"0(`````,=$)`0"```` -XMQP0D`````.C&'O[_Z83V___HG"7^_XG#Z7?Z__^#/=27"@C_#X5_^___BU4( -XM]D($(`^$ -XM_O_II_;__\<$)`````#H'*3__XM=$(L#B00DZ$L?_O^+`XD$).@%I/__BT,$ -XMB00DZ/JC___IU/7__\=$)`0`````QP0D`0```.C-(O[_BT4(BW`$Z?/Z___' -XM1"0$`0```,<$)`$```#HKB+^_XM="(MS!.G+^O__Z$XA_O^+`(D$).CT'O[_ -XMB7PD!,<$)#8```")1"0(Z#2>_O_I,O7__\=$)`@`````QT0D!&!C"0C'!"0# -XM````Z*\=_O_'!5AC"0@`````Z5_Y___H^R#^_XL`B00DZ*$>_O^)?"0$QP0D -XM-@```(E$)`CHX9W^_^FR_?__C5W8B1PDZ*TB_O_'1"0$%````(D<).BM'?[_ -XMQT0D"&!C"0B)7"0$QP0D`0```.A%'?[_QP588PD(`0```.F>]___B<+'1<@` -XM````@\($QT7,`````,=%T`````"+0`2%P`^%F@```(G6QT0D!,28"@C'!"20 -XM+PD(Z*\'``")1"0$C47(B00DZ)`5`@"-7?X__^+10BS`?9`!"`/A7KX__^-="8` -XMZ4_X__^#^"\/A%W___^)UH/&!(L&AZZ7H8Q_^_XL`A<"-=@!U98M="(MS -XM!,>%'/___P$```#IA_+__P^VP(/(@.GC^/__Z&4B_O^)QNG8]___QP0D```` -XM`.B&H?__QT0D!`````#'!"3,L0@(Z%*?___I3//__XU%R(E\)`2)!"3H/A0" -XM`.EX____Z/`>_O^+`(D$).B6'/[_QT0D!+'<"`C'!"0V````B40D".C2F_[_ -XMBT4(BW`$QX4<____`0```.G[\?__C;8`````C;PG`````%6)Y8/L",<$)`$` -XM``#HNB#^_Y"0D)"0D)"0D)"0D)"058/X"8GE4XG#=A&ZSH#B=#H -XMY/___XG8NLW,S,R+#71C"0CWXHU!!,'J`XT4D@'2*=.-4S")$5M=HW1C"0C# -XMC70F`(V\)P````!5B>575E.)PX/L"(E-[.LFQT,8`0```+@!````C70F`(7` -XMBU7PB?L/E,`/ML`[1>P/A9H```"+>Q2%_P^$CP```#'`.5\0#Y3`.U7LB47P -XM=!^+0QB%P'2X@_@!="B#^/]UOC'`QT,8`````.NSC78`BT,8A12%P(E#$'0&BT$,B5@4B5D, -XMB4L4BT7PB4R'#(M!#,=`&`$```"X_____\=!&/_____I4O___XGV@\0(6UY? -XM7<.#^`%TA8/X_P^%.O___XMS#(M6&(72#X7_````BT80B7X4A<")0PQT!HM& -XM$(E8%(E>$(ES%(M%\(ETAPR+1A#'0!C_____N`$```#'1A@!````Z?'^__^# -XM^@$/A(,```"#P@$/A=_^__^+<0R+012+5A")1A2+0Q"%THE0#'0)BU80BT,0 -XMB4(4BT,0B480B7`4BT,4B7,0B484BT8,A<")0Q!T!HM&#(E8%(E>#(ES%(M% -XM\(ETAPPQP(M6#(-^&``/GL"#Z`&)0AB+1AB+5A#!Z!^)0A@QP,=&&`````#I -XM9?[__XM!#(EY%(7`B4,0=`:+00R)6!2)60R)2Q2+1?")3(<,BT$,QT`8```` -XM`#'`QT$8`````.DM_O__@_H!=$&#P@$/A1_^__^+1A")?A2%P(E##'0&BT80 -XMB5@4B5X0B7,4BT7PB72'#(M&$,=`&``````QP,=&&`````#IY_W__XM.$(M& -XM%(M1#(E!%(M##(72B5`0=`F+40R+0PR)0A2+0PR)00R)2!2+0Q2)2PR)012+ -XM01"%P(E##'0&BT$0B5@4B5D0B4L4BT7PB4R'##'`BU$,@WD8``^>P(/H`8E" -XM&(M!&(M1$,'H'XE"&#'`QT$8`````.EM_?__C;8`````C;PG`````%6)Y5=6 -XM4X/L'(M%"(M]#)")QHM`#(7`=?>+5A2%T@^$B@```(5^"'1?H91W"@B%P`^% -XM@````(L&B00DZ%"9__^)PXM&!,<$)`S="`B)1"0$Z&OS`0"#ZP%T=\<$)"@` -XM``#H>K;__XL&B00DZ*"D___'!"0I````Z&2V___'!"0*````Z%BV__^+1A"% -XMP'6!BT84.W`0=0J)QHM&%#MP$'3VB<:+5A2%T@^%=O___X/$'%M>7UW#C47P -XMB00DZ'\+`@"-1?")!"3H!)K^_^EE____BP:)!"3H-:3__^N?C78`58GE5E.# -XM[!"+70B%VP^$W````(L3@_HKB=`/A*`````Q]H/X+8G"=&WWP@```$`/A;8` -XM``"#^G\/AZT```")V3';]@25O5$)"`1U%^F:````@_I_=Q^#P03V!)6]40D( -XM!'02C02;C5Q"T(M1!/?"````0'36_O^+ -XM$^EI____BT,$,?:-2P2%P`^$6?___XG+Z4G____V!)6]40D(!&:^`0`/A57_ -XM___KO3';ZX;'!"0)```0Z*66_O_I$____U6)Y5.)TX/L!,<"`````(M(!(U0 -XM!,<``````(7)=$_WP0```$!U3(/Y?W=']@2-O5$)"`1T/8L#ZR*-M@````#W -XMP0```$!U*X/Y?Y"-="8`=R'V!(V]40D(!'07C02`@\($C41!T(D#BPJ%R772 -XMC5H$ZPB#^5V-6@1T#,<$)`@``!#H&9;^_XG8@\0$6UW#D%6)Y5=64X/L#(M% -XM#(M]"(M8#(7;="Z+-^L1C;8`````AR)5"0$ -XMB3PDZ*P5_O^%P'7<@\0,B=A;7E]=PXGVBUL,Z]*-="8`C;PG`````%6)Y8/L -XM"(M5"(M%#(72="*%P'0>B40D!(D4).B`____A6#[!C'1"0$Q)@*"(E=](EU^(G&B7W\B=>)!"3H -XM/?___X7`B<-T+87_?@Z+`XD$).A)EO__.<=^#,<$)"L``!#H*97^_XG8BW7X -XMBUWTBWW\B>Q=PXDT).A2G/__Z\E5B>53@^Q$BU4(C5W(B1UT8PD(A=)Y$8U% -XMS/?:QT7(+0```*-T8PD(B=#H4?G__Z%T8PD(QP``````B1PDZ'X.`@"#Q$1; -XM7<.0C;0F`````%6)Y5=6B<93@^P,BP")!"3H:YO__XM&!(D$).@0H@$`BTX0 -XMA -XM7UWI_/C__XM.#.O'BUX4.W,0#Y3`#[;XB4R[#.O)D(UT)@!5B>6#[!B)=?R+ -XM=0B)7?C'1"0$Q)@*"(DT).CQ_?__A<")PW00BW7\B=B+7?B)[%WI*____XDT -XM).@CF___Z^:058GE5HG&4X/L$(M:#(7;=0GK+XM;$(7;="B+2PR%R9!T#8G: -XMB?#HU?___X7`=16)="0$BT,$B00DZ,))__^%P'31B=B#Q!!;7EW#D(UT)@!5 -XMB>575E.#[`R+=0B+?0R+1@2%P'1*,=OK'(VV`````(M`!,<$)(,``!")1"0$ -XMZ%V3_O^+1@2)^NAS____AB$_O__@\,!D.OAA=MT$H/&!(M& -XM!(7`=;:#Q`Q;7E]=PXM&!(D$).CM#@(`HR!W"@CKW(VV`````%6)Y5=64X/L -XM#(M=",=$)`3$F`H(QP0DX$8)".C@_/__QT0D!,28"@C'!"2`,0D(BF5\?[_D(UT)@#'1"0$ -XMQ)@*",<$)(`Q"0CHS/K__X/X`1G`]]`A!8AW"@CKBZ'4F0L(HTQW"@CISO[_ -XM_\<%C)@*""$```#'!42:"PA>````Z1K^__^0C70F`,<%-)H+"#X```#'!8QW -XM"@@C````Z3G^__^-M"8`````Z-N5``#IR+.NL5A<`/G\`/ML")1?"+1(8,A2)>Q3'0Q@`````QT,0```` -XM`(E#"(GXQT,,`````(M5\.@O]/__BU7HB1.)50B#Q!Q;7E]=Z?LI__^)7"0$ -XMQP0D@P``$.A+C_[_Z63___^-M@````!5B>575E.#[#R+712+10B+50R+31") -XM7"+7=2+1(L$@\$! -XMB4W@A# -XM1>P!BTW@.4WL?3V+?>R%_W[MBUWLBT74BSR8ZZ;V1")UC'`@^D! -XMB4WDZQ&-6`$[7>`/C,(```"#Q@2)V#M%Y'SJBW7@,-=@"+7=2+ -XM!(N%P'0&B023@\(!@\$!.TW@=>@[5>!]%XM-U(T$D<<``````(/"`8/`!#M5 -XMX'7O@V7,GXM=S(M%T(M5U(M-V(E=%(E%$(E5#(E-"(/$/%M>7UWI=/W__XD4 -XM).B,*/__A<`/A)[^__^)1"0$BT74B00DZ#4\__^%P(G#=':+3=2)#"3H5)3_ -XM_XE=U.EV_O__B3PDZ/2:`0"+5=S'`@````#I__[__XE=\(EUZ(M^_(7_=!F+ -XM5>B+`H7`=!")?"0$B00DZ#`-_O^%P'06@T7P`8M-X(-%Z`0Y3?`/C03____K -XMRHD\).BBF@$`QT;\`````.O9BU74B10DZ-Z3___'!"0Q```0Z!*-_O_I;O__ -XM_XVV`````(V\)P````!5B>6#[!C'!"0(````Z"Z;`0"+50S'0`0`````B1"+ -XM51")1"0$BT4(QT0D",28"@B)5"0,B00DZ(3]___)PXGV58GE@^P8BT4,B5WT -XMB77XBW40B7W\BWT(B00DZ%`&`@#'1"0$,"H("(G#B00DZ'Z/_O^)="0(B5PD -XM!(D\).A^____B1PDZ!:/_O^+=?B)70B+??R+7?2)[%WILH[^_XGV58GE@^P8 -XMBT4(QT0D"`(```#'1"0$^&\)"(D$).A_____R<.-M@````"-O"<`````58GE -XM5XG'5E.#[!S'1"0$E#()"(D$).CQ"_[_A<`/A=,```#'1"0$Q)@*",<$))0R -XM"0CHZ?7__X7`#X1/`0``BP"-=>C'1>@`````QT7L`````,=%\`````"%P'1+ -XMBQ"%TG1%B7UW#QT0D!``_"0B)/"3H!@O^_X7`=2C'1"0$Q)@* -XM"(D\).AF]?__BQ")%8R8"@B+0`2C1)H+"(/$'%M>7UW#QT0D!$`_"0B)/"3H -XMR@K^_X7`="#'1"0$@#\)"(D\).BV"O[_A#^G]W4O8$E;U1"0@$=$BA<&,)"(/!!(T$@(U$0M"C<&,) -XM"'7-H7!C"0B%P`^/T?O__^LMQT0D!&!`"0B)/"3HH0;^_X7`=2C'!6QW"@@! -XM````Z:S[___'!7!C"0@`````QP5P8PD(&@```.F3^___QT0D!``V"0B)/"3H -XM90;^_X7`=0KHX$G^_^EU^___QT0D!.!&"0B)/"3H1P;^_X7`=0SHTBH``(GV -XMZ57[___'1"0$H$D)"(D\).@G!O[_A@#BP``C78`Z97Z___'1"0$P#0)"(D\).AG!?[_AA"Y?[_B?;H -XM&^;^_^EP^O__QT0D!,P^"0B)/"3H0@7^_X7`#X58^O__QP7T8`D(`0```.E) -XM^O__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+10B+<`2%]G1.B30DZ-:&___' -XM1"0$Q)@*"(DT).@&[___A<")PW0WBP"%P'0QBP"%P'0[QT0D!`$```"+`XD$ -XM).A2B___@\00B?!;7EWIM?C__Y"-="8`OB0V"0CKLXDT).@1C/__BP.+`(7` -XM=<7'!"0*```0Z+V$_O_KMXUT)@"-O"<`````58GE@^PXB5WT@_@]C5W4B7W\ -XMB<^)=?B)7?`/A(````"+"H7)=6"-3=B)WHU5W(U=Z(/X/(E%Z,=%[`````") -XM'G12@_@^=$V).8U%\,<"`````(D$).A&U/[_B<.+1?"+`(7`=`S'!"0A```0 -XMZ#^$_O^)'"3H)^___XM=](MU^(M]_(GL7<.)5=2-==B-3=R-5>#KFHD9B=&# -XMP@3KJHUV`(U5V(G9ZZ")]HV\)P````!5B>6#[!B)=?R)UHE=^(L8A=MT((D$ -XM).B4_0$`BQ:)PXU"_(D&BT+\B00DZ$"1`0"+!HD8B30DZ+33_O^)!"3HK.[_ -XM_XM=^(MU_(GL7<.)]E6)Y8/L&(E=](G3B7W\B77XB4WPZ"?N___V0`@!B<=T -XM$XM`!,<$)(,``!")1"0$Z'R#_O^+!\'C`HMT`_S'1"0$,"H("(DT).A3AO[_ -XMBP?'1"0$`@```(/H!`'#BT7PB00DZ`DS__^)`XDT).B/A?[_BUWTBW7XBWW\ -XMB>Q=PXGV58GE5U93@^P\BT4(@\`$B44(BQ"#P`2)10B%THE5S`^%2@$``.GS -XM`@``C;8`````BT4(BQB%VP^$=`,``(/`!(E%"(L[A?\/A8,!``#'!"0E```0 -XMZ->"_O^-M"8`````BP.%P'4-BT4(BP"%P`^$5P,``(M%S(D$).AB_`$`QT0D -XM!#`J"`B)1=")!"3HCX7^_X/_/0^$0@(``(LSC5,$B57@QP0DZMP("(ET)`3H -XM7H/__X7`#X1S`@``.?YU!XM#!(7`=`S'!"0F```0Z%^"_O_'!"08+PD(Z`/\ -XM`0")P\=$)`0P*@@(B1PDZ#&%_O^+==2%]@^$A@$``(M5\(M%T.B[[/__B=F+ -XM$(M%\(M4@OR)^.AI_?__QT0D!#`J"`B)PXD$).CWA/[_BU7PB=F+1=#H2O[_ -XM_XD<).B2A/[_B1PDZ#J$_O^+1=#HLO7__XM-T(D,).@GA/[_BT4(BQ"%THE5 -XMS`^$O`$``(/`!(E%"(M-S(LY]\<```!`=2F)^`^VP#W_````B478#X?U`0`` -XMH>!="0B+5=B+1)`T]L0!=4"#_U]T.XMUS,<$)!T``!#H?('^_XL^QT74```` -XM`(/_6P^$H````(7_B?,/A&#^___'`P````"#PP3I@O[__XGVBPW@70D(B?N+ -XM=7UW#B7PD!,<$)-3'"`CHTX#__X7`="`Y_G00QP0D)@``$(UT)@#H -XMVW_^_\<$)````!#HSW_^_X/^/70,QP0D)@``$.B^?_[_BT7@C54(Z+/[__^) -XMP^E;_?__B00DZ+#__?^-="8`Z0;^__^+3=#'1"0(`@```(E<)`2)#"3HA/+_ -XM_^E?____B?/IE?S__XM-V(D,)(GVZ'?__?_I>/[__\<$)"4``!#H6G_^_^F8 -XM_/__D(UT)@!5B>575E.#[$R+10B+>`2-<`3'1=P"````QT7(`````,=%S``` -XM``"%_P^$?@```)")/"3'1"0$2#0)".CL_OW_B?HQ_X7`=1B#Q@2+%H72#X2' -XM````QT7<`0```&:_`0#'1"0$H#@)"(D4).B\_OW_"T7,=6.#Q@2+'L=%R`$` -XM``"%VXG:=""_`0```,=$)`2L.`D(B1PDZ)#^_?\+1"-M"8`````BP_WP0`` -XM`$")3=AU,`^VP3W_````B470#X>``@``H>!="0B+5="+1)`T]L0!#X7S```` -XM@WW87P^$Z0```(G^QP0D'0``$.@%?O[_BP8QVX/X6P^$_0$``(7`#X18`0`` -XMQP8`````@\8$BQ:%TG42BTW@BQ&%TG0)@SHH#X1,`@``@_@]#X4R`@``QT0D -XM!%`["0B)-"3HDOW]_X7`#X70````A=L/A0$"``"+7>"-=@#K`X/#!(LSA?8/ -XMA#P!``"#/BEU[L<#`````(M%X(D$).@KB?__BTW(A")^.@2\?__BT7@BSB% -XM_P^$I?[__X/`!(E%X.G:_O__BPW@70D(B?Z+7=B)3=3K)HM5U(M$@C3VQ`5U -XM"8/[7P^%RP```(/&!(L>]\,```!`#X6Z````#[;#/?\```!VT(D$).CN_/W_ -XMB?;KRX7;#X3P````B30DC78`Z'OV`0#'1"0$,"H("(G#B00DZ*E__O^+5?") -XMV8GXZ/WX__^)'"3H17_^_XD<).CM?O[_Z4____^+5>"+`H7`#X3%_O__QT0D -XM!#@["0B)!"3H5_S]_X7`#X6M_O__@T7@!(M-X(L!A<`/A)S^__^#P02)QHE- -XMX.F/_O__QT0D!"D```#'!"0R```0Z$%\_O^+,^FI_O__.?O````BU70BTW4BT21-/;$`0^%#?[__X-]V%\/A??]__^+!C';@_A; -XM#X4#_O__B?"S`8U5\.A/Y?__B<:+`.GN_?__B30DZ([U`0"+3<2)/"2)3"0( -XMB40D!.C+[O__Z7W^__^+5#I -XMI_W__XM-T(D,).AW^_W_Z4O___^0D)"0D)")P8L"50$!B>6+000#0@0]/T(/ -XM`(E!!'X*@P$!@6D$0$(/`%W#C70F`(V\)P````!5B>56BW4,4XM="(GRB=CH -XMO/___XU#"(U6".BQ____BT80.T,0?@.)0Q"+1A0!0Q2+1A@!0QB+1AP!0QR+ -XM1B`!0R"+1B0!0R2+1B@!0RB+1BP!0RR+1C`!0S"+1C0!0S2+1C@!0SB+1CP! -XM0SR+1D`!0T"+1D0!0T1;7EW#C70F`%6)Y8M5#(M-$%.+70B+`BL!B0.+0@0K -XM002%P(E#!'D*@RL!@4,$0$(/`%M=PXUV`%6)Y8/L*(E$)`2-1?B)5"0(B00D -XMZ+?___^+3?RZTTUB$,<$)!#="`B)R/?JBT7XP?D?P?H&*") -XM5=R+3@R)3="+0`PIP8G(]^^)3=#!?=`?BT8$B=&+5>#!^0PK3=")1="+4@0I -XMT(E%T/?OP7W0'XL&`T8(P?H,*U70C101BTW@*P$K00AKP&0!PHE5Y,=$)`3$ -XMF`H(QP0D=#P)".B9X___BU7AT'8L!AEDE___ -XMC70F`(/H1#PS=RD/ML#_)(54W0@(BTW@BT9`*T%`C;8`````B40D!,<$)";= -XM"`CH$-0!``^V0P&->P'KG8M-Y#'`AB->P&)!"3HAYG__P^V0P'I9/___XM5X(M&)"M").NCBU7@BT8L -XM*T(LZYB+5>0QP(72=(^+3>"+5A0#5AP#5A@K41PK410K41B)T,'Z'_=]Y.EM -XM____BU80B=#!Z!\!T-'XZ5S___^+3>"+1C`K03#I3O___XM5Z#'),<"%TG1# -XMVT7DNF=F9F;8#23>"`C9??(/MT7RVT7HWOFT#&:)1?#9;?#;7>S9;?*+3>R) -XMR/?JBP&)3"0(QP0D&MT(".@)TP$` -XM#[9#`>F6_O__BTW@BT8@*T$@Z=+^__^+1=2->P&+5=CH)/W__P^V0P'I"+1B@K0BCIE_[__XM]Y#'`A?\/ -XMA(K^__^+3>"+5A0K412)T,'Z'_=]Y.ET_O__BU7@BT9$*T)$Z6;^__^+5>"+ -XM1CPK0CSI6/[__XM5X(M&."M"..E*_O__BTW@BT8T*T$TZ3S^__^-M@````"- -XMOP````!5B>53@^P4BT4(BU@$C5`$N`0```"%VW0)BT($ARX````B5WXC5VH -XMB77\C;5@____B5PD!,<$)`````#H9/K]_XET)`3'!"3_____Z%3Z_?^)="0$ -XMC77PB1PDZ/GZ__^)-"3'1"0$`````.A%]_W_B70D"(E<)`3'1"0,J)D+",<$ -XM)"!V"@CHS?O__XM=^(MU_(GL7<.-=@!5B>53@^QDC5VTQT0D!`````#'!"2H -XMF0L(Z/[V_?_'1"0$('8*",<$)`````#HVOG]_XE<)`3'!"3_____Z,KY_?^) -XM7"0$QP0D('8*".AN^O__@\1D6UW#D)"0D)"0D)!5B>575E.#[`R+50B+0A"% -XMP'1(B=&+4@B+.87_="N-')`Q]NL#@\,$BP.%P'0.B00DZ,J"`0#'`P````"# -XMQ@$Y_G7BBU4(BT(0B00DZ*^"`0"+30C'01``````@\0,6UY?7<.-M@````"- -XMO"<`````58GE5U:)SE.)TX/L+(/Y!HE%X'8%O@8```"-?>Z-##>)^NL&@\(! -XM@\,".)7?2)=?B)1>R+0@@#`HT$A0@```") -XM1"0$BT(0B00DZ"&#`0")1?"+1Q"%P'0\BQ^+1?"+5>R)WH/#`0-W"(E'$(D4 -XM)(TTL.AY?___B0:+1?")'P-?",<$F`````"+7?2+=?B+??R)[%W#BT<(A*V+5?`QR8/!`<="_`````"#Z@0YR'7OP>`"*47P -XMZX^-M@````!5B>6+10R+`(E%#(M%"(L`B44(7>GC]?W_C;0F`````%4QP(GE -XM5E.#[""+70B+=0PY\W1=BU40A=)T78'[_P````^'Z0```*'@70D(BYR8-`0` -XM`('^_P````^'P0```*'@70D(B[2P-`0``(U%Z(E$)`2-1?")7?")=>C'1>P` -XM````QT7T`````(D$).@[]_W_@\0@6UY=PX'[_P```'=PH>!="0B+1)@T]L00 -XM=!N!_O\```!W2J'@70D(BU2P-&:%TK@!````>,B!^_\```!W;Z'@70D(BT28 -XM-&:%P'F,@?[_````=V.AX%T)"(M4L#2`YA"X_____P^$;?___^N1B30DZ!3S -XM_?^)PNNSC70F`(D<).@$\_W_ZX^-M@````")-"3H!/7]_XG&Z3S___^0B1PD -XMZ/3T_?^)P^D4____D(D<).C4\OW_ZY")-"3HRO+]_XG"ZYJ-=@"-O"<````` -XM58GE5U:)QE.)TX/L+#G*B4W8R)!"3H\.\!`&:!_S^`B47@="QF@?];@`^$@````&:!_RJ` -XM="F+1>P[1?!U%P-UX#E=V'>H,<"`/@`/E,#K5X`^`'7I@\0L,"-1>S'1"0(!@```(ET)`2)!"3H@>\!`(E%X(M% -XM"(G:B00DBTW8B?#H//___X7`=,BX`0```(/$+%M>7UW#@#X`=*$/MQ,/M\([ -XM10@/E,`/MOB%_P^%P@```,=%W`````#K"8VV``````^W$V:!^EV`#X2"```` -XMB=JY!@```(U%\.AS_/__C1Q#9H$[+8!T$8M%\#M%['71QT7<`0```.O(@\," -XMN08```")VHU%Z.A&_/__QT0D"`````"-'$.+1>R)1"0$BT7PB00DZ%G]__^% -XMP'^5QT0D"`````"+1>B)1"0$BT7LB00DZ#O]__^%P`^/<____^N@D+D&```` -XMB=J-1?#H\?O__SE]W`^$T_[__P-UX(T<0^FT_O__@\,"#[<3Z3/___^)]E6) -XMY5=6B<93@>R\````B95<____B8U8____#[<"ZQ60A?\/A1(!``!F@_@O=%2) -XMG5S___]FAHM6!&:#^"^)E6#___]T0#'_9H7`BYU<____>"4/OL"#PP*) -XM1"0$B30DZ"GG`0`/MP-FA8!`(N57/___P^W`F:#^"]TVF:%P'6&C5V( -XMB30DZ#+G`0")7"0$BP:)!"3H8._]_\=%A`````"%P'55BX58____]D`,"'0K -XMBQ:+1@2`?!#_+W0?#[=%D"4`\```/0!````/A,7UW#BX5@ -XM____B48$BY58____BT(,)0`0``"#^`$9P(/@PV8MHG]FB85H____B30DZ(3F -XM`0#H>_+]_\<``````(L&@#@`#X7&````QP0DDAT)".C>\?W_B<>%_P^$P@`` -XM`(M6!`^WA6C____'180`````B95D____B854____B3PDZ!_U_?^%P'1Q@'@( -XM+G4,BY5<____9H,Z+G7BBY5D____@\`(B58$B40D!(DT).CUYP$`B30DZ/WE -XM`0"+E53___^)V8N%9/___P,&B10DBY5<____Z"_\__\Y10ATGXM%"(G:B00D -XMBXU8____B?#HU?W__X7`B46$=(.)/"3H,O7]_XM%A('$O````%M>7UW#B00D -XMZ!SQ_?^)QX7_#X4^____BY58____BUH4A=MT(NB`\?W_BP")1"0$BP:)!"3_ -XMTX7`=`S'183^____Z:/^__^+A5C____'180`````]D`,!`^$C/[__^O;B5PD -XM!(D4).BN\/W_A<`/A5C^__\/MT60)0#P```]`$````^%1/[__\=$)`0O```` -XMB30DZ+;D`0")-"3H#N4!`.DG_O__B?:-O"<`````58GE5U93@^QLBT4(]D4, -XM`8E%O'4:BU44QP(`````QT(0`````/9%#`(/A`P#``"+10R+?12`Y/Z)1PR+ -XM11")1Q2+!XE%I(M'#,='!``````E`!```(/X`1G2@^+#9H'JHG^#^`&+10@9 -XM_X/GPX/'7F:)5:B)?<")!"3HS?/]_XU$``*)!"3HM7L!`(M5"(E%Q`^V.HGX -XM#[;(,<`[3<`/E,"%P(E%R'02@\(!B56\BU4(#[9Z`8GX#[;(BU4,@>(`(``` -XMB56@#X0!`@``B?J+7<2$T@^$F````(VT)@````")^HM%O`^VTHE5T(M5O,=$ -XM)`0&````@\`!B474B10DZ%CM_?^#^/^)Q@^$`@$``(/X`0^.#0$```^W?="- -XM0P(QTHU._V:).XE%S(VV`````(M]O`^V1#H!@,Q`9HE$4P*#P@$YRG7IBT74 -XMBU7,C40P_XU4`````` -XMQT7D`````&:#.@`/A0P"``"+512+`CM%I`^$-0(``/9%#"`/A/\```"+1<0Q -XMVXD$).AI>0$`@\1LB=A;7E]=P\=$)`0`````QP0D`````.@W[/W_B?@\7`^$ -XM&`$```^W?=!FB3N#PP*)7_XJ@`^$ -XM)/___V;'`RJ`@\,"Z1?___\/MP$/M_@[?NGB?B+7<2$P`^$E_[__XM5O(M= -XMQ&:)"P^V0@&#PP*#P@&$P`^VR'7LZ7C^__\Y1:0/A/C^__^+510K1:3'1"0, -XML*@&"(M]%,=$)`@$````B40D!(M2"`%5I(M%I,'@`@-'$(D$).CVZ?W_Z;_^ -XM___'0@@`````Z>C\__^+5=0/M@*#P@&)5=2$P`^$YP````^VP(#,0&:)`X/# -XM`HE=S.GL_?__A=(/A![___^+112-4P*!2`P``0``9L<#6X`[?<`/A-<````/ -XMMP'K"V:#^%UT1`^WP(G.9B7_`&:)`@^W!H/"`HU.`F:#^"UUWP^W7@*-3@)F -XM@_M==-@/ML-FQP(M@(U.!F:)0@(/MT8$@\($9H/X776\C5H"9L<"78#IDOW_ -XM_XM]R(U%W(M-%(D\).@1^?__B<.+1=R)!"3H9'+]___V10P0="6+3:"%R75'BU44BT4(Z`/U___IN/W__X-MU`&X -XM7$```.D1____]T4,``(```^$D_W___9"#0$/A8G]___KP@^W5:AFB5,"C5,$ -XMZ1G___^+?0B)/"3HR._]_X/``8D$).BQ=P$`#[87A-*)PXG!="J)^.L2#[80 -XM@\`!B!$/MA"#P0&$TG04@/I<=>F#P`$/MA"$TG7B@^@!Z]K&`0"+512)V.AO -XM]/__B1PDZ)=V`0#I'/W__Y"058GE5U93@>RL`@``BU4(BP*#^"`/A/8!``"- -XMM@````"#^`D/A.W'`@````"+A5C]__^+$(72#X1C`0``QT0D!)1V"@C' -XM!"3@00D(Z&/2__^%P`^$>0$``(L5+)H+"*$HF@L(B960_?__BQ4DF@L(B86, -XM_?__H2":"PB)E8C]__^+%1R:"PB)A83]__^A&)H+"(F5@/W__XL5%)H+"(F% -XM?/W__Z$0F@L(B95X_?__BQ4,F@L(B85T_?__H0B:"PB)E7#]__^+%02:"PB) -XMA6S]__^A`)H+"(F5:/W__XF%9/W__^@L9_[_QP0D`)H+"(F%7/W__^C&Z/W_ -XMA<`/A"@#``"+A5S]__^)!"3HM&G^_XN5D/W__XN%C/W__XD5+)H+"(N5B/W_ -XM_Z,HF@L(BX6$_?__B14DF@L(BY6`_?__HR":"PB+A7S]__^)%1R:"PB+E7C] -XM__^C&)H+"(N%=/W__XD5%)H+"(N5`0"+A5C]__^-5>B)%"2)1"0$Z!S>`0"+ -XM7>RX0]X(".L4B?:+!+7`W@@(@\8!A<`/A%?___^)7>R)!"3HL^,!`(E$)`2- -XM1>B)!"3HY-T!`(U5Z(D4).C)VP$`BT7HB00DZ%[A`0#'1"0$`````(D$).B^ -XM:/__H]PD"0B#P`%TI(U=L,=$)`1`'@4(C768QP0DW"0)".A*:/[_C46@QT68 -XMP+@&"(D$).@DZOW_B5PD",=%G`````")="0$QP0D`@```.@)Z?W_B1PDC5W8 -XMQT0D!)`>!0CH"FC^_XU%R(E<)`B)1"0$QP0D`@```.B?Y/W_B1PDC9V8_?__ -XMQT0D!&`>!0CHW6?^_^L5B40D"*',EPH(B5PD!(D$).@F9___H=PD"0C'1"0( -XM``(``(E<)`2)!"3HK6?__X7`?\['!"3<)`D(Z/UF_O_I?OW__X/X.@^%4_[_ -XM_^EA_O__BY58_?__QT0D!.!!"0C'!"0"````B50D".A\FP$`Z;7\__^+E5C] -XM___IS_O__\<"+@```(N%8/W__\=`!`````#I)/[__\<$)%3>"`CH2.(!`.F" -XM_?__H8"8"@C'1"0,+MX(",=$)`@!````QT0D!!T```")!"3HOL7^_XN56/W_ -XM_XE4)`2)!"3H3+\!`.G=_/__C;0F`````%6)Y8/L"*'<)`D(@_C_=`B)!"3H -XM2&G__\<%W"0)"/_____)PY"0D)"0D)"0D)"0D(G"58GEHXAC"0B+0@R%P'0) -XMB<*+0@R%P'7WBTH4A&,)"(M">(E$)`2+10B)!"3H3=L!`+@! -XM````@P5X8PD(`8/$$%M>7<.#P0$Y\7ZSB0UX8PD(@\00,&,)"#'`@\006UY=PXD5>&,)"`^V`83`=!R)RP^^P(E$)`2) -XM-"3H,=8!``^V0P&#PP&$P'7F@P5X8PD(`8/$$%NX`0```%Y=PXUV`%6)Y593 -XM@^P0H8!C"0B+=0B%P'0]BU`$A=)T-@^V`H3`=!R)TP^^P(E$)`2)-"3HW=4! -XM``^V0P&#PP&$P'7F@P6`8PD($(/$$%NX`0```%Y=PX/$$#'`6UY=PXVV```` -XM`%6)Y593@^P0H81C"0B+=0B%P'0\BQ"%TG0V#[8"A,!T'(G3#[[`B40D!(DT -XM).A^U0$`#[9#`8/#`83`=>:#!81C"0@,@\006[@!````7EW#@\00,6#[!B)7?2+71")=?B+ -XM=0R)??R+#8AC"0B+?0B%R704B5PD"(ET)`2)/"3H_OO__X7`=2J+%8QC"0@Q -XMP(72=!Z)71"+7?2)=0R+=?B)?0B+??R)[%WI-/___XUT)@"+7?2+=?B+??R) -XM[%W#C78`58GE@^P(BT4(A<"C?&,)"'0(B00DZ"+B_?_'1"0$Q)@*"(M%#(D$ -XM).ACR/__A<"CB&,)"'0:BP#'!8AC"0@`````HXQC"0C)PXVT)@````#'!8QC -XM"0@`````R<.-="8`58GE@^P(BT4(A<"C?&,)"'0(B00DZ,+A_?_'1"0$Q)@* -XM",<$)-PX"0CH`LC__X7`=`>+`*.,8PD(R<.0C70F`%6)Y8/L&(E]_(L]D&,) -XM"(E=](EU^(7_=#F+70B%VW0RH9AC"0B%P(E%\'0F,?:)]HLQ=PXVV```` -XM`(V\)P````!5B>57B==64XG#@^P,BT`0.T,(#X:2````B?@#0PPY0Q1V(HM# -XM#(M+"(L3P>`"`T,$B02*@\$!`7L,B4L(@\0,6UY?7<.+`"B40D!(L#B00DZ%1K`0#'!"3$K`L(B0/HIM`! -XM`.DZ____D%6XD&,)"(GE4X/L%(M="(M3!(/"`>@&____BQ.)5"0$B00DZ!3< -XM_?^#Q!1;7<.)]E6)Y5.)PX/L!(,%Q*P+"`&+`(7`=!R)!"3HTFD!`,<#```` -XM`,=#"`````#'0Q``````BT,$A575E.#[`R+10B+%7QC"0B+=0R+71")1?#HD/___X7`B<8` -XM``#V`Q`/A-T```"A?&,)"(7`="6#!<2L"P@!B00DZ,5?___'!7QC"0@````` -XMQP0DQ*P+".A_S@$`H8QC"0B%P`^$D0```(L`ASP$`B30DZ#;0`0"+1?"+%7QC"0B#Q`Q;7E]=Z;'^__^+#7QC"0B%R76G -XMC;0F`````(/$#(GX6UY?7<.-M@````!5B>575C'V4X/L#(L-R&,)"#L-L&,) -XM"(M]#`^",@$``(L5T&,)"(72=!*+10CH7O[__X7`B<8/A4(!``"AS&,)"(L8 -XMA=L/A#,!``"+%=!C"0B%TG0P@P7$K`L(`8D4).B,7O__QP708PD(`````,<$ -XM),2L"PCH1LT!`*',8PD(BQB%VW2;@SLO=`OK(8UT)@"#.R]U$X/`!(L8A=MU -XM\J/,8PD(Z7C___^CS&,)"(M%"(E<)`2)!"3H5-$!`,='!`````"+`X7`=`R# -XM^"YU.HM;!(7;=3/'!"22'0D(Z&O;_?^CT&,)"(M%$,<`$0```(D\)+X!```` -XMZ`3/`0"#!DSW_W_C;0F`````%6)Y5.#[!2#!<2L -XM"P@!Z!G;_?_'``````#K)9"-="8`Z`?;_?^#.`1U48VV`````.@;RP$`Z/+: -XM_?_'``````#H9]C]_X7`B<-TU<<$),2L"PCHRD,V_W_58GE7>G3V_W_C;0F```` -XM`%6)Y5.#[!2#!<2L"P@!Z)G=_?_'!"3$K`L(B53B<.#[!2)!"3H>]?]_XU0`KBH -XM8PD(Z%+Y__^)7"0$B00DZ&+6_?^#Q!1;7<-5B>575E.#["R+10B%P*-\8PD( -XM=`B)!"3H3]K]__8%P&,)"`$/A"4!``#V!#2"`AV,KOPT@@(BT/PA`$@\,0!>#2"`@YT'?3H#R`2C -XMP&,)"/8%P&,)"`@/A!\"``"AT&,)",<%R&,)"`````"%P'0E@P7$K`L(`8D$ -XM).@C6___QP708PD(`````,<$),2L"PCHW+0Q2%P'0HBT,$ABR_O__BT,0 -XMA:)%"3HUM`!`(D$).AZU_W_A<") -XM1>1TUHD$),=$)`0P'@4(Z-=7_O^+1=R%P'0EQT0D!+@X"0B+!XD$).CNS0$` -XMB47@QT0D!#`J"`B)!"3HJU?^_XM=Y(D<).BP`````QT7H`````(E=\.L' -XM@T7L`8EUZ(MUZ(/&`3MU\'-"BQVH8PD(C02U_/___XL\`XM$`P2)/"2)1"0$ -XMZ&K3_?^%P'3*BT7LAPI7?"+1?#'!"3$K`L( -XMH[!C"0CH'\57 -XM5E.#[`R+-<1C"0B%]G1_BP:%P'1YBSW@70D(ZQB+1(7UW#D)"0D%6)Y5=6 -XM4XM-"(M]#(LQA?9T0XL?ZP^+<02#QP2%]G0UBQ^#P02)\HG8@>+___\_)?__ -XM_S\YPG3>A=NX`0```'0;B?"!X____S\E____/RG86UY?7<.#/P$9P/?06UY? -XM753BTT(BUT,BU40BP&%P'0S@^H!A=)_"^LJ -XMC70F`(/J`70A@\$$BP&%P'7R@^H!A=)_&,53BUT(BTT,BU40ZP>0@\,$@\$$ -XM@^H!=`N+`87`B0-U[5M=P\<#`````%M=PY!5B>575E.#[`R+10B)!"3HJ-'] -XM_XLUT)<*"(7VB47P=%^+'H7;=%F)Q\'G`NL-B?:#Q@1T2XL>A=MT18D<).AY -XMT?W_.47P=^B-!#N#.#UUX,<``````(M%"(E$)`2+!HD$).B9_O__BQ;'!!<] -XM````A6+10R+`(E% -XM#(M%"(L`B44(7>F'=0$`C;0F`````%6)Y5=64X/L'(MU"(M]##G^#X*S```` -XMB?(QR9"-="8`,<"#.F`/E,"#Z@0!P3G7=N^#X0''1>P()0D(=0?'1>P,)0D( -XMQT7P`````.L*C78`@^X$.?=W18L>A=MT\XE<)`2+1>R)!"3H0-3]_X7`=#F# -XM?OQ@^X$.?=VN[@! -XM````@\0<6UY?7<.)7"0$QP0D["0)".CST_W_A<`/A(4```#'1?`!````ZX8Y -XM]XUT)@!SRHL&@_@F=$J#^"AUOH/N!(L6@_H@=`6#^@EU!#GW7UW#@WWP`0^%`/___S'` -XMZ4K___\/ML+VA`#A(`D(('2CZ3/___^-M"8`````58GE5E.#['"%P'17<.# -XMQ'`QP%M>757B<=64X/L;(7`B560=%['1"0$ -XMQ)@*",<$)`PR"0CH6KC__X7`=%6+`(7`=$^+&(7;=$F)QNL@C;8`````B5PD -XM!(D\).AD!/__A!(/&!(7;="7'1"0$A#,)"(D<).@"SOW_A7UW#BT60B3PDB40D!.@BQP$`B<.)!"3HR,D!`(D<)(U= -XME(G&Z%M;`0")7"0$B30DZ!O-_?^#P`%TN@^W39R)R"4`\```/0"@``!T1#T` -XMP```NCT```!TH3T`$```LGQTF#T`(```LB5TCST`8```LB-TACT`0```LB\/ -XMA'G___^#X4FR*@^%;O___^ED____QT0D!,28"@C'!"3@0@D(Z&"W__^%P'0P -XMB5PD!(DT).C,S_W_NB8```"#P`$/A#?___\/MT6````(D$).C_T/W_A<`/E<`/ML")1>2+3<0Q_X7)?DN+5<@Q]HL" -XMB00DZ!"=`0"+7-1@$Y1<2)QHT4@7X=BP*)TXD$ -XM).CEG`$`C5,$.?AST8U&`3E%Q(G&?^.#?<`!&<`QTO?0C7P'`J'@EPH(B7WP -XM]_>%P(G#=".+%>AV"@BX`0```(72#X3%`0``B00DZ,?1_?^%P`^%I0$``,=% -XMX`$```#'1>@`````BU7H`U7$QT78_____\=%W`````")T,'Z'_=]X(7`B46\ -XM#XX>`0``BT7@,?^+3=R%P(E-['\NZ>4```"#1=@!BTW$.4W8?#*+1>2%P`^% -XMS@```(M%O(/'`0%%[#M]X`^$O````(M%Y(7`=="+5>R+3<2)5=@Y3=A]SHM5 -XMR(M%V(T$@HE%T(L8B1PDZ"+,_?^)QHM%P(7`#X2_````C12U`````(U$$_R) -XM5=2+&,<``````(U&_XE$)`2)7"0(BTW0BP&)!"3HNTH``(M5T(M-U(L"B5P! -XM_#';.WWH#XUQ____BTW0BP&)!"3HEYL!`(T<&#E=\`^&6/___\<$)"````"# -XMPP'H?&G__SM=\'7LBT6\@\-M"8`````@_HD="N#P`2)10B)5"0$B1PDZ.F_`0"+10B+ -XM$(72=>")'"3H^+\!`(/$)%M=PXGVC44(QT0D"````$")1"0$B1PDZ%FF`0"% -XMP'6EBT7PB00DZ$I7`0"#Q"0QP%M=PXGV58GE5U93,=N#["R)5>B)3>2)1>R) -XM!"3H5/___XE%\,=$)`0P*@@(B00DZ)%,_O^+??"%_P^$!@$``(M%Z,=`!``` -XM``"+5?"+`H/X/0^$KP$``(/X?@^$&0$``(M-\(E,)`2+1>B)!"3HH\$!`(M5 -XMZ(D4).B(OP$`BTWHNHPS"0BAV)<*"(MQ!(7V=`6+3>B+$8/H`H/X`0^6P`^V -XMP(E$)`2)%"3HIQS^_X7`B<,/A(T```")!"3HY<0!`(D$).B)R_W_BU7DA<") -XM`G1TBU7PB10DZ$E+_O^+3>R+,87V=#J+1>B+4`2%TG0/B<&+`(-\D/PO#X1\ -XM`0``BU7HQT($`````(E<)`2)%"3H`<$!`(M%Z(D$).CFO@$`B1PDZ!Y6`0"# -XMQ"PQP%M>7UW#BT7H,=N)!"3HQ[X!`(VT)@````")'"3H^%4!`(-]"`9T#HL= -XMY&,)"(7;#X16`0``BTWPB0PDZ+E*_O^X_O___X/$+%M>7UW#BTWP@\($BT$$ -XMA<`/A.<```"#^"^)U@^$W````(/&!(L&A<`/A:,```")\"G0P?@"B10DB40D -XM!.@PP@$`B<.)!"3HAM']_XD<)(G'Z'Q5`0"%_P^$8/___XE\)`2+1>B)!"3H -XM-<`!`(D\).A=50$`BU7HBP*#."]T:(ET)`2+3>B)#"3H%,`!`.EL_O__BT7P -XMB00DZ,3Q_O^%P(G##X06____.47P#X0\_O__B40D!(M5Z(D4).CBOP$`B1PD -XMZ`I5`0#I,O[__Y"-="8`@_@O#X5'____C;0F`````.E(____@WH$`8VT)@`` -XM``!UBX,^+W6&@\8$ZX&)UC'`Z2_____'000`````B0PDB5PD!.B(OP$`BT7H -XMBU`$B<&+`(-\D/PO#X1R_O__QT0D!"\```")#"3H\[P!`.E=_O__Z!7*_?^# -XM.!2-M@`````/A(D```#H`S' -XM!"3OW@@(B4PD!.COH0$`BT7PQP6PF0L(`0```(D$).CJ2/[_N/_____I+/[_ -XM_XM]\(7_=,.+5?")5>SKNZ&`F`H(QT0D#-3>"`C'1"0("@```,=$)`0>```` -XMB00DZ/RG_O_KA:&`F`H(QT0D##N["`C'1"0("P```,=$)`0>````B00DZ-6G -XM_O_I6____U6)Y8/L&(/X$HE=](G3B77XBW4(B7W\=B_'0P0`````B30DZ.A' -XM__^)="0$B1PDZ#R^`0"+=?B)70B+??R+7?2)[%WI&+P!`/\DA4#?"`B0QT($ -XM`````(E,)`2)%"3H#;X!`.N[QT($`````,=$)`1^````B10DZ(2[`0#KHHGV -XMBSK'1"0$)````(D\).AZQ/W_A!?WP@```$!U#X/Z?P^.N@,``(VV`````(L6A=(/A#4!``")TX'C____ -XMOP^(R`$``(/[?P^/OP$```^VPP^WA`#@(`D(J$$/A*P!``"+1=C'1>````!` -XMA<`/E<(QR832=`D[7=@/A$X"``"+1>"%P'0-@WW8(HUV``^$I0(``(3)=4B$ -XMTHUT)@!U&87;>`F#^W\/CG,#```['42:"P@/A!,$``"+1=B%P'@4]T78```` -XM0'4+@WW8?Y`/COP````['8R8"@@/A`X!``"%_W08BU74BP*#P@2)5=0YV`^5 -XMP`^VP(/H`2''C47H@\8$B5PD!(D$).C0N0$`BT78A<`/B,7^__^+1=C!Z!Z# -XM\`&#X`&#?=A_#Y["A,`/A*K^__^$T@^$HO[__P^V1=CVA`#@(`D(0`^$D/[_ -XM_XM%T#E%U,=%V``````/@HG^__^+%C'_A=(/A7UW##[9%V/:$`.`@"0A`#X5C_O__Z3[^__\/MD78 -XM]H0`X"`)"$`/A?[^__\['8R8"@@/A?+^__^-5>C'1"0$7````(D4).C=N`$` -XMB5PD!.D:`0``C70F`(M%V('B````0`^4P8E5X(7`#Y7"A,D/A$G^__^$T@^$ -XM3O[__X7;#X@Y_O__@_M_D`^/+_[__P^VPP^WA`#@(`D(J/,/A!S^__^#^R,/ -XMA!/^__^#?=@B#X1R`@``BT78A<`/B,H!``#W1=@```!`B?8/A;L!``"#?=A_ -XM#X^Q`0``#[9%V/:$`.`@"0A`#X2?`0``BU7L@\8$BT7HB5R0_(M%V,'H'H/P -XM`8/@`8-]V'\/GL(Q_^EE_O__C;0F`````(M5[(72=!2+1>B#Z`2-!)"+5=@Y -XM$`^$LP$``(M5V(U%Z(D$)(E4)`3HX[B)7"0$B00DZ,&W`0"+5=B)5"0$C47H@\8$B00D,?_HJKB)%"2)7"0$Z$FW`0"- -XM1>C'1"0$(@```(D$).@VMP$`Z6S]__]\&_=%V````$"0C;0F`````'4*@WW8 -XM?P^.NP```(U5Z,=$)`0`````B10DZ`&W`0#IG/W__P^VP@^WA`#@(`D(J$$/ -XMA#G\__^+1=B%P'0).578#X4I_/__,578@T74!(E4)`2-5>B)%"3HP[8!`.F^ -XM^___#[;#]H0`X"`)"/,/A'S\__^#^R,/A;3]___I;OS__XM%V(U5Z(/&!(D4 -XM)(E$)`3HBK8!`(U%Z(D$)(E<)`3H>[8!`(L&A<`/A8P```"X`0```+H!```` -XM,?_'1=@`````Z:?\__\/MD78]H0`X"`)"$`/A>?\___I+O___\<`7````(U% -XMZ(/&!(E4)`0Q_XD$).@HM@$`N`$```"Z`0```,=%V`````#I8/S__XM%[(7` -XM#X07_?__Z=W[__^#^W\/CZG]__^H@HVT)@`````/A)K]___I>OO__XM5V(U% -XMZ#'_B00DB50D!.C1M0$`Z?S[__^-M@````"-OP````!5B>575E.#[%R)1;2) -XM5;"+`(L0A=)T#XD$).BAVO[_A<")1;AU"C'`@\1<6UY?7<.A+)H+"(E%\(L5 -XM*)H+"(E5[*$DF@L(B47HBQ4@F@L(B57DH1R:"PB)1>"+%1B:"PB)5=RA%)H+ -XM"(E%V(L5$)H+"(E5U*$,F@L(B470BQ4(F@L(B57,H02:"PB)1RC*)H+"(M5Z(D5))H+"(M%Y*,@F@L(BU7@B147UW#BT6XB40D!(M5M(L"B00DZ(OL_O^+5;2)`NFS -XM_O__BT6TBQCKR[C_____QP7`F`H(`````,<%L)D+"`$```#I!/[__XVV```` -XM`(V_`````%6)Y5=64X'L'`$``(F%_/[__Z$LF@L(B97X_O__BQ4HF@L(B8WT -XM_O__BPTDF@L(QT7P`````(E%E*$@F@L(B560BQ4/___XL5!)H+ -XM"(F-=/___XL-`)H+"(F%R+1?"%P`^(O0D``(M5$(M-#(E= -XMZ(F5`/___XD,).@VO?W_B=J)V8/B!(/A((F5%/___XF-#/___\=%W`````#' -XM1>``````B85,____B=B#X`*)A1C___^)V(/@0(F%"/___\=%Y`````#'1=`` -XM````QT74`````,=%V`````#'1>@`````QT0D!,28"@C'!"2`2`D(Z(.F___' -XMA23___\`````/?AO"0AU%>LJ@_IA=0O'A23___\"````D(/`!(L0A=)T$8/Z -XM077BQX4D____`0```.OFB=J#XQ"#X@&-3=")E1S___^)#"2)G1#____'1"0$ -XML)$(".B_/O[_C47%*/___P````#' -XMA2#___\`````QT6L`````(L$A>#@"`C'A03___\$````QX5(____`````,>% -XM9/___P````")19S'A43___\`````BX7T_O__C4WHC570QT74`````(E,)`B) -XM1"0$B10D_U6!(/&!(7;=;J+C43___\+ -XMC4C___^)C2S___\/A+(#``"+1="+50R)1;B+.H7_#X3R`P``BPW@70D(B<.) -XM5:B)C33___^+`XG^@>;___\_B84P____)?___S\YQHE%P`^$?P(``('^_P`` -XM`(FU./___P^'K@4``(N5-/___XM$LC1FA<")=;QY((&]./____\````/A^X& -XM``"+C33___^+C+$T!```B4V\BT7`/?\```")A3S___\/AW4%``"+3<"+A33_ -XM__^+5(@T9H72BT7`>2"!O3S_____````#X>8!@``BU7`BXTT____BX21-`0` -XM`#E%O`^$Z0$``(N%1/___X7`=4Z!Y____S^-1].#^`$/ABH%``"#_E]U-[HM -XM````B[TP____A?]T*#M5P'4:Z:\!```E____/SG+`0``.<(/A)H!``"# -XMPP2+`X7`=>*+A2C___^%P`^$B?W__XU-T(D,).@W._[_@[W\_O__!'4?Z?0$ -XM``"+0P2CX&,)"(L#B00DZ#=&`0")'"3H+T8!`(L=X&,)"(7;==R#O?S^__\& -XM#X2U!```B[4(____A?9T'(M=K(7;=16+C2#___^%R7X+BY4@____]]J)5:R+ -XM3:R)3?"+1>R)!"3H<3K^_XM%E(M5D(M-C*,LF@L(BT6(B14HF@L(BU6$B0TD -XMF@L(BTV`HR":"PB+A7S___^)%1R:"PB+E7C___^)#1B:"PB+C73___^C%)H+ -XM"(N%7UW#C;0F`````(.]^/[__Q(/A:'\__^#O23___\!#X2<`@``QX4H____ -XM`````(N=3/___X7;#X6&_/__BT70@S@N#X5Z_/__BXTD____AW^_X7`#X3W^___BT70BTT,B40D -XM!(D,).B#)0``.84$____B<,/C3@"``"#^`0/A<[[__^+1="+50R+C?3^__^) -XM1"0(B50D#(L!B40D!(M%"(D$).CW(P``A<`/A*'[__^+A1S___^%P`^%(@H` -XM`,>%!/___P,```#IA/O__XGVBU70BTT,B56XBQ&%TG1$BTVX@>+___\_BP&) -XMRXM-#"7___\_.<)T).E3_?__C78`BT,$@>+___\_@\,$@\$$)?___S\YP@^% -XM-/W__XM1!(72==V+C1S___^%R0^%9`,``(N5&/___X72#X4!!0``BX44____ -XMA<`/A2,%``"+A0S___^%P`^%104``(.]^/[__P$/E,.#O?C^__\##Y3`A-N) -XMQP^$6`,``(.]^/[__PL"``"+A2C___^#1:P!A<`/A,CY___I.OS__XM% -XMW(D$).@AU___A#^BX/A4/]__^+0`B%P`^4PH/X+P^4P`G"#[;2B94H____ -XMZ2_]___'A2C___\!````Z2#]__^+10@QV\=`!`````")!"3HV*H!`(F=!/__ -XM_^FK^___@_@$#X3(_?__BX4<____A53^_X7`#X1C^?__BTT(BT70QT$$`````(E$)`2)#"3HB*P! -XM`(M%"(D$).AMJ@$`A=MTD8F=!/___^DP^?__B30DZ#*T_?_I3_K__XD$).@E -XMM/W_B<+IB?K__X/^7P^$TOK__X/^+;I?````D`^$R/K__XGRZ<'Z__^+A03_ -XM__^)1:SI8_O__Z'H)`D(.85D____#X[;````@_C_#X32````@WVL`0^.`OO_ -XM_X/``0^,600``(NU9/___XT\M0````")/"3HXT$!`,=$)`0P*@@(B<.)!"3H -XM@3;^_XL-X&,)"(7)=">%]G@CC10?@ZUD____`8L!B4+\BTD$@^H$A>#'1"0,(,P&",=$)`@$````B70D!(D<).APLOW_BT4(QT`$```` -XM`*'H)`D(BU4(BP2#B10DB40D!.ACJP$`BTT(B0PDZ$BI`0")'"3H8#7^_\=% -XMK`$```#I1?K__XN=\/[__^DX]O__QP7H)`D(_____\>%(/___P````#'1:P` -XM````Z1KZ__^)!"3H[;3]_^EK^?__B30DZ."T_?^)1;R0Z1'Y__^+A1#___^+ -XM5;B+C?3^__^)1"0(B50D!(L!B00DZ*I2_O^%P`^%<_S__XN%*/___X7`#X0; -XM]___Z8WY__^$P`^%H/S__X.]^/[__P%T@^$ -XM\`4``(N-5/___X'B____/XL!)?___S\YP@^%U04``,>%4/___P````#K%XN- -XM5/___X'B____/XL!)?___S\YPG47@X50____`8/'!(.%5/___P2+%X72==+' -XM!P````"+50@K.L'_`HEZ!*'48PD(A<`/A(D$``"+A4C___^%P`^$3OC__XM5 -XM"(N-3/___SM*!`^&//C__\="!`````"+10R)%"2)1"0$Z&:I`0"+50B)%"3H -XM2Z@/X?__@_@O#X4?^O__QT0D!"\```")-"3H -XM5J4!`.D*^O__D,=$)`3$F`H(QP0D0$()".A+___\_)?___S\YT'36BT6DBW@$@\`$B46DA?\/ -XMA7K____I#?S__XM%"(L`B46PB<*+`(7`#X0$`0``BQ7@70D(BXU4____BWVP -XMQX50____`````(F56/___XE-M.F&````BY58____BT2:-&:%P'D=@;U<____ -XM_P````^'HP```(N-6/___XN;_ -XM__\_@?O_````#X95____B1PDZ&.M_?_I4O___XDT).A6K?W_ZXJ)'"3H7*_] -XM_XG#Z5O___^)-"3H3:_]_XG&ZXV+C53___^)U\>%4/___P````")3;2+1;2+ -XM$(72=26+A5#___^+E53___^+3;#!X`*)1"0(B50D!(D,).B)LOW_BT6TB854 -XM____Z67[__^#A2#___\!Z=/S___'1"0$Q)@*",<$)$!""0CHKY;__X7`#X5; -XM^___BX5(____A!C"0CIVOG_ -XM_XM5",="!`````")1"0$B10DZ"^D`0"+30B)#"3H%*(!`.F#^O__QX50____ -XM`````.E6^O__58GE5U93@^Q\BT48BWT0BP#'1=P`````QT7@`````,=%Y``` -XM``")19S'1=``````QT74`````,=%V`````#'1<0`````QT7(`````,=%S``` -XM``#'1>@`````Z&'/__^+50C'!=AC"0@`````BS+'1"0$+P```(DT).@NJOW_ -XMA<`/A.H#``"-6`2)'"0I\^CMI`$`P?L"C4W0B5PD"(ET)`2)#"2)1>SHY*(! -XM`(U%T(D$).A)H0$`C570B10DQT0D!+"1"`CH]BW^_XU%[(D$),=$)`0P'`4( -XMZ.,M_O^+30B+`8,X?@^$]0$``(M5[,=$)`0D````B56HB10DZ*NI_?^%P(G# -XM=!N+3:C'1"0$+P```(D,).CBKOW_A<`/A$X"``")^"4`$```B46@#X7>`0`` -XM,<")^X-]G``/E<"`Y^^)1:2-3=R)#"3HLJ`!`(U%W,=$)`2PD0@(B00DZ%\M -XM_O^#^P8/A#8"```/CM4```"#^Q$/A"<#``"!^_\/``"0#X0-`@``@_L-#X01 -XM`@``,<"+5:2%T@^$]````(/(((E%P(/_#`^/]````(/_"`^-)`(``(/_!`^$ -XM_0$``(UV``^/4@0``(/_`HVT)@`````/A.0!```/CR0%``"#_P&0#X3@```` -XMH8"8"@B+'0QV"@C'1"0,,.$(",=$)`@)````QT0D!!X```")!"3H7XO^_XE< -XM)`2)!"3H\X0!`,<%L)D+"`$```"^_____XUT)@"-3=")#"3HY2O^_X/$?(GP -XM6UY?7<.%V[[_____=.*#ZP$/A3C___^+50C'1"0$+P```(L"B00DZ)"M_?^% -XMP`^$\00``(M5I+\$````N!$```"%T@^%$____XVT)@````"#R$"#_PR)1<`/ -XMC@S___^#_Q,/A#`!```/CS<"``"#_Q`/C_4```"#_PZ-M@`````/C1(!``"+ -XM50B+`HD$).BMH@$`B46HB47LZ?H```")]L=$)`0O````B00DZ`RM_?^%P`^% -XM\_W__XM%[+\#````NP,```")1:CK=HVV`````(M5&(U-W(D,)(E4)`3H[J`! -XM`(M5X(72=!V+1=R#?)#\+W03C47__^%P(GX -XM_O__C5W$QT0D!+"1"`B)'"3HU2K^_XM%Z(M-P(M5J(D<)(E$)!"+11B)3"0, -XMC4W@/A&X&``"+5>"%TG0HBT7<@WR0_"]T'HU-W,=$)`0O````B0PDZ&&< -XM`0"-1=R)!"3HMIP!`('G_^___X/_!`^$?_[__P^/$00``(/_`0^$#@4``)"- -XMM"8`````Z&>G_?^%P`^.L_S__XD<).A[G`$`BT7$BTW0BU4(B00DB?CH".#_ -XM_Z'48PD(A<`/A8O\___'1"0$Q)@*",<$)*`Q"0CH!Y#__X7`#X1O_/__@_X! -XM#X5F_/__@WT<_XGV=#:+11R%P`^%E04``(M=Q(M-W(D<)(E-K.B2)___@_\3 -XM#X:$````,<")1"0$BT4(B00DZ)B;`0"+10B)!"3H[9L!`.D8_/__@_\. -XM_/__#X[F````BT4(BQB#?0P�/`0``BT7LB00DZ/\R`0")'"3H-Y\!`(E% -XMJ(E%[.F$_?__@?\2$```#X6&^___Z9C^__^!_P$0``"0C70F``^%B+1=")%"2-5=SHW]K__X7`B<8/A07[__^# -XM3<`"Z:3\___'!"0-````Z/!"___IBOW__XD<)#'VZ%&@`0")!"3HJ2C__X7` -XM#X71^O__D.G1_O__BT6@A<`/A03[___I&OK__\=$)`3$F`H(QP0DP$()".B7 -XMCO__/?AO"0@/A/L!``"+$(72#X3Q`0``]\(```!`#X7E`0``@_I_C78`#X?9 -XM`0``B<$QP/8$E;U1"0@$=3/IQ@$``(VT)@````#WP@```$`/A;,!``"#^G^0 -XM#X>I`0``@\$$]@25O5$)"`0/A)@!``"-!("-1$+0BU$$A=)URX7`#XZ"`0`` -XM.?`/C7H!``"+112%P`^$;P$``*&`F`H(QT0D#!O?"`C'1"0(!0```,=$)`0> -XM````B00DZ"N%_O^)=;R)!"3HD"[__\=$)`0P*@@(B<.)!"3H7B;^_Z&`F`H( -XMQT0D#&CA"`C'1"0(!P```,=$)`0>````B00DZ.F$_O^+5;R)7"0(B50D!(D$ -XM).AV?@$`B1PDZ'XE_O_H63___XU%\XE$)`2AM'8*",=$)`@!````B00DZ/TE -XM__\/OD7SQP0D`]\("(E$)`3H.7X!`*&`F`H(#[Y=\\=$)`P(WP@(QT0D"`T` -XM``#'1"0$'@```(D$).APA/[_B5PD!(D$).B0I/W_A<`/A"W[__^#_P]T,8VT -XM)@````#H.[___\=$)`P@S`8(QT0D"`0```")="0$B00DZ+NA_?^#_Q`/A#P! -XM``#H$;___\=$)`P!````B70D",<$)/AO"0B)1"0$Z#75___IT?K__X/_!0^$ -XMLOW__X/_$HUT)@`/A>+[__^#3<`$Z4GZ___'1"0$Q)@*",<$)(!""0CH?8S_ -XM_SWX;PD(#X1F____BQ"%T@^$7/____?"````0`^%4/___X/Z?P^'1____S'; -XMB<'V!)6]40D(!'4LZ33____WP@```$`/A2C___^#^G^0#X<>____@\$$]@25 -XMO5$)"`0/A`W___^-!)N-7$+0BU$$A=)URX7;#X7$````A=L/G\")=;R$P`^$ -XMY_[__SE=O`^.WO[__XM%%(7`#X33_O__BT6\A<`/A,C^__^A@)@*",=$)`S^ -XMW@@(QT0D"`8```#'1"0$'@```(D$).C_@O[_Z=+]__^+1>R)!"3HORX!`.E` -XM^/__Z-6]__^%]HG'D`^.J_G__S';ZQV-M@````"#PP''!"0*````Z($___\Y -XM\P^$BOG__XL$G\<$))*Y"`B)1"0$Z$9\`0"A8&0)"(7`=,W'!"0-````Z%$_ -XM___KOX/_$`^$,____XVV`````.AKO?__A?:Z`0```(E%L'XVQT6X`````,=% -XMM`````"+5;B+3;"+!)&)!"3H/*']_SE%M',#B46T@T6X`3EUN'7>BU6T@\(! -XMH>"7"@B)T3'2QT68`0```(/``??QA<")191T`XE%F(M%F(U4!O^)T,'Z'_=] -XMF(7;B46\#Y_`Z;/^__^+51R+30B)5"0$B0PDZ!R6`0#I?_K__X-]#`)T.)#H -XM-Z/]_XL`B00DZ-V@_?_'!"3WW@@(B40D"(M%W(E$)`3H6GL!`,<$)`&Z"`CH -XM3GL!`.E6]O__QP0D`;H(".@]>P$`Z/2B_?^+`(D$).B:H/W_QP0D]]X("(E$ -XM)`B+1=R)1"0$Z!=[`0#I'_;__XGV58GE5U93@>RL````BUT(BT4,QT70```` -XM`,=%U`````#'1=@`````C02#B85X____C470QT7P^&\)",=%[`````#'1"0$ -XML)$("(D$).AO(O[_.YUX____#X-H"0``BY5X____,?^)G7S____'A6C___\` -XM````QT6@`````(/J!,>%#;WP@```$!U+H/Z?W\I#[;"#[>$`.`@"0CVQ"!T -XM"8M-U(/!`8E-H*A`=`PYG6#___\/APP#``"-````B00DZ)A^_O^)7"0$B00DZ"QX`0#'180! -XM````C570B10DZ"H?_O^+182!Q*P```!;7E]=PX-]$`8/A%/___^+A6C___^# -XM?1`$B85L____#X0]____@WT0"W>#BT40_R2%W-\("(/Z?@^$&/[__XU-T(E4 -XM)`2)#"3H5)(!`(M-U(M%T(M4B/R%T@^).?[__XGV@\,$Z6S^__^+$X72>#+W -XMP@```$!U*H/Z?W\E#[;"#[>$`.`@"0BH0706A?]U"C'7@\,$Z6C^__\YUW3R -XMC70F`(/_)P^$,/W__X72D(UT)@`/B%W]___WP@```$"-="8`#X5-_?__@_I_ -XM#X]$_?__#[;"]H0`X"`)"`(/A`7]__^#=8@!#X6&````BX5P____@\,$BXUT -XM____B85H____BT6`B4V@B85\____B50D!(U5T(D4).B&D0$`Z>']__^+0P2- -XM7\__\-````0(E$)`2-1=")!"3H6Y$!`(U#"(GSB<;I-/W_ -XM_X/Z?P^/%OW__P^VPO:$`.`@"0B"#X72_O__Z0#]__^+1=2#PP2+C6C___^# -XMP`&)C7#___^+3:")A6C___^)1:"+A7S___^)G7S___^)C73___^)18#I8/__ -XM_\=%Q`````#'1<@`````QT7,`````,=$)`3$F`H(QP0D@$0)".CLA/__A<`/ -XMA%D%``"+C6S____'1"0$+P```,'A`HG+`UW0B4V!VI````0'46@_A_?Q$/ML#V -XMA`#@(`D((`^%3`<``(/"!#E5C'?5B5PD!(U=Q(D<).B[D@$`B1PDZ*.0`0#' -XM1"0$L)$("(D<).A3'?[_BT7LQT0D#`$```")="0(B1PDB40D%(M%\(E$)!"+ -XM11")1"0$Z&KN__^+E6S___^-3=")#"2)5=2)182+1<2)1"0$Z%R2`0"-1=") -XM!"3H09`!`(D<).A9'/[_@WV$_L<%Y&,)"``````/A,$%``"+1="+E63___^+ -XM')"%VP^$_/S__XM5F(T,$#'`A?\/E,")!"2+E7C___^+A7S____H0-3__X7` -XM#XG3_/__C4W0B0PDZ/T;_O_'183_____Z/__ -XM_P^4P(G9B00DBX5\____Z-#3__^%P`^(W@0``(D<).BP)@$`QT6$`0```.E/ -XM_/__H=B7"@B#Z`*#^`$/EL`/ML")1"0$BX5L____P>`"`T70B00DZ(OL_?^% -XMP(G#=9C'180`````Z13\__^-1>2)1"0$BX5L____P>`"`T70B00DZ"Y:`0"% -XMP`^$\`(``(M%Y(D$).@[)@$`QT6$`````.G:^___BX5L____C5W$QT7$```` -XM`,=%R`````#'1`"`T70B1PDB40D!.C/D`$`B1PDZ+>.`0#'1"0$ -XML)$("(D<).AG&_[_BT7LQT0D#`$```")="0(QT0D!`````")1"04BT7PB1PD -XMB40D$.A][/__BY5L____C4W0B0PDB574B46$BT7$B40D!.AOD`$`C470B00D -XMZ%2.`0")'"3H;!K^_^DR^___BXU\____.8UX____QT7$`````,=%R`````#' -XM1@/A&4!```QTH/^`0^4PHU%Z.CCUO__B<:+1=R)!"3H%AG^_XM%Z#G' -XM=!#'1"0$\",&"(D$).B?&?[_A?8/CH4```"#?1`'#X1"`@``BX5\____,=LI -XMA7C____!O7C___\"BY5X____B10DZ.H?``"+1>CK!X/#`3GS=$^+%)B%TG3R -XMBPJ%R73LB10DZ#D8__^+1>@QTHL,F#'`QP0D`````.C#T/__A<`/B-@"``#' -XM!"04/0D(Z$\W``"%P`^(Q`(``(M%Z.NMBT7H.<=T"(D$).AC&/[_B76$Z2;Y -XM__\Q_XF=?/___\>%:/___P````#'1:``````QT68`````.DN^/__,<"%_XM- -XMY`^4P(N5>/___XD$)(N%?/___^A(T/__AC'1"0,`````(ET)`C' -XM!"3X;PD(B40D!.@,Q___BT7HZ17^__^+58R)%"3HV8T!`,=$)`0P*@@(B460 -XMB00DZ`87_O^!?8SX;PD(=`F+38S'`0````"AX*P+"(D<)(E%Q*'DK`L(B47( -XMH>BL"PB)1,`0")'"3H_XD!`,=$)`2PD0@(B1PD -XMZ*\6_O^+1>R)="0$B1PDB40D#(M%\(E$)`CH50,``(E%A(/H`0^$B@```(M% -XMQ(N-;/___XE$)`2-1=")3=2)!"3HOHL!`(U5T(D4).BCB0$`BTV0B0PDZ+@5 -XM_O_I;OG__XM%Z#G'#X2@^?__B00DD(UT)@#HFQ7^_^F.^?__QP7D8PD(```` -XM`.FM^/__Z#*W__^)-"3HFHH!`(DT)(E%Z.B_%?[_B30DZ&<5_O^+=R)="0(B50D!(D<)(E$)!2+1?")1"00Z/#F__^)183I'____Y"0 -XMD)"0D)"058GE5U93@^P+!HG3B<&!X____S^!X?___S\YRW3>A=)U0XL.A-1P2)1>R+5P2%TG4CC48$B47PBT7PB40D!(M%[(D$).AMOO__N@,` -XM``"%P'6XZX>-1@2)1?"+1@2%P'36)?___S\YPW7-@>+___\_.=%UPXU&"(E$ -XM)`2-1PB)!"3H,+[__X7`=:WI1____XVT)@````!5B>575E.#[#R+10C'1>@` -XM````C77HQT7<`````,=%[`````#'1?``````BQC'1>``````QT7D`````,=$ -XM)`2PD0@(B30DZ/42_O^-5=S'1"0$L)$("(D4).CB$O[_BP.#^"\/A+0```"- -XMM"8`````A7UW#B30DN______HS1#^ -XM_X/$/(G86UY?7<.0D)!5B>57B<]6B<93@^P,BUH,A=MU$>M/BT,$@S@M=$*+ -XM6Q"%VW1`BT,,A+0P2)1"0$B30DZ$+$ -XM_O^%P'3,BP.%P'3&@\0,6UY?7<.#P`3KW8/$##'`6UY?7<.058GE5U93B<.# -XM[#R)1=R-?>B)5=B)3=3'1>@`````QT7L`````,=%\`````"+$X72="H[50QT -XM)8/Z)(US!'4)@WL$.HUS!'1HB50D!(D\).A\@P$`B?.+$X72==:)/"3HC(,! -XM`(M-##D+B<*-0P0/A`(!``")%"3H]!H!`(M%W(D$).A)B0$`B40D#(M5$(E4 -XM)`B+30S'!"1_````B4PD!.A;#?[_@\0\B=A;7E]=PY"-0PB)1>"+0PB#^"V) -XMP0^$OP```('A````0`^%>/___X/X+8G!#X2P````@_E_B?8/AV+____V!(V] -XM40D(!`^$5/___S')@_@M#X2=````BUW@@^@PBW7@BU,$@\8$]\(```!`="/K -XM)O8$E;U1"0@$=!R-5`+0@\8$C02`C01"BQ;WP@```$!U!8/Z?W;:AR+`HL8A=MT8HG&QT7P```` -XM`.LZD(UT)@"AX%T)"(M$F#3!Z`Z)QX/G`70-BT7PA&!^_\```!VN8D<).B]B_W_D.NW -XMQP0D)P```.@"*O__@T7L!(M%[(L(AR+ -XM$H72#X51____@\0,6UY?7<-5B>564X/L((M%"(MP!(7V=$.-4`B+0`B%P`^$ -XMP````(D4).CX%O__B30DBB* -XM_O__QP0D"@```.@>*?__BT,0ANID(UT)@")PXM#%#M8$'3VB7<.)-"3H_@O__S')NJ"D"PCH -XMTOO__X7`==#I%____XGVC;PG`````%6)Y5=64X/L#(7`=`6CZ&,)"(L]Z&,) -XM"(L'B?J%P`^$S0```*D```!`=4F+'>!="0CK)XM$@S3VQ$!T,H/'!(D]Z&,) -XM"(L'A<`/A*(```"I````0`^%HP```#W_````=M*)!"3HTXG]__;$0'7.BQ7H -XM8PD(BQJ)UHG8)0```$")1?!U%H'[_P```'=;H>!="0B+1)@T]L1`=6J%VW@B -XMBT7PA@\8$ -XMB37H8PD(BQZ%VW6ABP>%P'04@\0,B?A;7E]=PXD<).A-B?W_ZZ0Q_X/$#(GX -XM6UY?7<.)^NEP____C58$QP8`````B17H8PD(Z\*+/7P@"0CKP(UV`%6)Y5=6 -XM4X/L3(M="(MU%(D<).BI@@$`QT0D!#`J"`B)1B-!(4(````B00DZ`H7`0#'1"0$,"H("(G'B00DZ*@+_O^+17UW#.P5\(`D(=-XQR8/^ -XM`0^4P;J@I`L(Z`;Z__^Z!````,=%U`$```"%P(E%T'44Z:8"```[!7P@"0B- -XM5@1TJ8-%U`$QP(G6C1P7Z!/^__^+3=2%P(D$CW7;BPU\(`D(A8"C1PWZ0_____'1=@`````BTL$]\$```!`B4W< -XM#X79`@``@?G_````#X=O`@``H>!="0B+5=R+1)`T]L0@#X2X`@``H8"8"@B# -XMPPC'1"0,Z;T(",=$)`@#````QT0D!!L```")!"3H;6C^_XM-U(U5\(D4)(GZ -XMB40D"(M%W(E$)`2)V.BP^/__QT0D!#`J"`B)PXM%\(D$).B+"?[_BT7PBPB% -XMR0^$EP(``*&`F`H(QT0D#%+K"`C'1"0(!0```,=$)`0;````B00DZ`EH_O^+ -XM3=R)^HE,)`2+3=2)1"0(C47LB00DB=CH3/C__\=$)`0P*@@(B<.+1>R)!"3H -XM)PG^_XL3A=(/A((!```QP(M-&#E5W`^5P(/H`0G"B1&#?<0M=FWH'(?]_X-] -XMU`''1=@@)0D(#X;7_O__BU0^^(E5V.G+_O__@WW4`L=%V"`E"0@/AKK^__^+ -XM1#[TB478Z:[^__^+1=3'1=@@)0D(A<`/A)S^__^+3#[\B4W8Z9#^__^+5QC"0B+=>R%P'02B00DZ(82`0#'!>QC"0@`````BP8E____OX/H)(/X -XM5`^&9P$``(DT)+O_#P``Z+R``0#'!"1]````B40D!.C")!"3HSVS__SG##XX]____Z>7\__^)!"3HNFS__SG##Y3`#[;`Z1O___^+ -XM2`2%R0^%QO[__^D3____H8"8"@B^_P\``,=$)`R6X0@(QT0D"`(```#'1"0$ -XM&P```(D$).BS9?[_BTWP`^V -XMP.E@_O___R2%$.,("*&`F`H(QT0D#`>]"`C'1"0(!````,=$)`0;````B00D -XMZ`9E_O_KF(-]R&,/A3#^__^+30S!X`(!`8GVZ2'^__^[$0```(M&!"7___^_ -XM#X1<_O__@_@Z#X4V_O__C48(B00DZ-1\`0"+31"C[&,)"(D!B00DZ,($___I -XM,?[__[L"````Z\"[!P```)#KN+L2````Z[&["@```(GVZZ@QV^NDNPX```"0 -XMC70F`.N8NQ````#KD;L3````B?;KB+L$````ZX&["P```(GVZ77___^[!0`` -XM`.EK____NP$```#I8?___[L,````B?;I5?___[L)````Z4O___^)-"3H.7P! -XM`,=$)`1@````H^QC"0B#P`2)!"3HG8;]_X7`=`?'0`0`````H>AV"@B%P'4_ -XMH;1V"@C'1"0$`````(D$).BH"___HQC"0B[_P\``,=$)`0"````B00DZ,2Q_O^% -XMP(G�>_?__H>QC"0AFNPT`B00DZ%D/`0#'!>QC"0@`````B30DZ(=[`0"+ -XM51"C[&,)"(D"B30DZ#4/`0#IY/S__[L(````Z7#^__^[$A```)#I9?[__[L/ -XM````Z5O^__^[!!```.E1_O__NP40``")]NE%_O__NP$0``#I._[__XU&!(D$ -XM).@F>P$`BTT0H^QC"0B)PXD!QT0D!"D```")!"3HAH7]_X7`=`;'``````") -XM'"2[#0```.CS`O__Z6+\__^-1@2[!@```(D$).C>>@$`BU40H^QC"0B)`HD$ -XM).C,`O__Z3O\__^0D)"0D)"058GE5U93B<.#[!R+,*%P80D(C7WPQP5P80D( -XM`0```,=$)`30.`8(B3PDB47PZ,X#_O^+6P2%VW0:C;0F``````^^!H/&`8D$ -XM).@B'___@^L!=>V)/"3H!0/^_X/$'%M>7UW#C;8`````C;PG`````%6)Y5=6 -XM4X/L+(M%"(M]$(E%Y(M%#(E%X*'T8PD(A<`/A#L!``"AP)@*"(7`#X10`0`` -XMH>AV"@B%P`^%$@$``(LU_)D+"(7V#X03`0``C78`BT7DB00DZ!5\`0`#1>"# -XM_SJ)1>P/A',!``"#_S['1>A()0D(#X2&````,!R[8E4)`B+`XE$)`2+1>PI -XMT(D$).AM?_W_A+B8)@D(Z$[^ -XM__^)?0B#Q"Q;7E]=Z5\?__^A;)D+"(7`#X7R_O__B?:+1>3'!"22N0@(B40D -XM!.AM6@$`B7T(@\0L6UY?7>DN'___BQWH=@H(A=MT%(L-?)@*"(7)=,KIM?[_ -XM_Y"-="8`BQ7@=0D(A=)TMNFA_O__D+AH)@D(Z-;]__^X."8)".C,_?__N(`F -XM"0CHPOW__XE]"(/$+%M>7UWITQ[__\=%Z"`F"0CI%____XT$28/Y%(T$Q4@E -XM"0B)1>@/A0'____IJ_[__XVV`````(V_`````%6)Y5>)QU93@^PLBW4(B57@ -XMBQ^)3=R+$HE5\(L"A<`/A(,````E__\_`#GP='J#^#IU->MS@_A>=#.#P@2) -XM5?")1"0$B1PDZ*1X`0"+5?"-#!B+`H7`="DE__\_`#GP=""#^#IT&XG+@_A< -XM=`!``!U -XMW87VQP4`9`D(`````,<%^&,)"`````#'!?QC"0@`````#X32`0``B30DNQ`` -XM``#H]GW]_XEU\(L6A=*)Q[@0````="V)\;,!C;8`````@>+__S\`,<"#^CH/ -XME,"#P02)3?"+$0'#A=)UY(G8P>`$B<,!^(D$).AC"P$`B77PQP7\8PD(```` -XM`(T4&(D5`&0)"(E5[(E%Z*/X8PD(Z$W\_?_'!"0`F@L(B46LH2R:"PB)1=RA -XM*)H+"(E%V*$DF@L(B474H2":"PB)1="A')H+"(E%S*$8F@L(B47(H12:"PB) -XM1<2A$)H+"(E%P*$,F@L(B46\H0B:"PB)1;BA!)H+"(E%M*$`F@L(B46PZ(I] -XM_?^%P'5IBU7PBS*%]G1@B?.!X___/P"#^RH/A-X```"#^SH/A,H```"+0@2% -XMP(E%J'01BT(()?__/P"#^#T/A"N[D(UT)@`E__\_`(/X.G2L -XM@\($B57PBP*%P'7JBU7PBS*%]G6@BT6LB00DZ!;^_?^+1=RC+)H+"(M%V*,H -XMF@L(BT74HR2:"PB+1="C()H+"(M%S*,@K!?AC -XM"0C!^`2C_&,)"(/$7%M>7UW#C4($B47PZ0C___^+3>B-0@2)1?"-5?"-1>S' -XM!"0]````Z.?\__^%P'0*BT7HBT`$A``````)?__/P")1:3K#8-%X`&#QQB#?>`4=$"+CT0E"0@/ -XMO@$YPW7F#[Y!`3M%I'7=C4(,B47PBT7@C57PQP0D.@```(T,0(T,S4@E"0B- -XM1>SH-_S__^DX_O__BT6HB70D!,<$)(8```")1"0(Z*OZ_?_I/?___XVV```` -XM`%6)Y5=64X/L#,=$)`3$F`H(QP0D:$P)".AS9/__A<")QP^$J0```(L`A<`/ -XMA)\```"+`(7`='F+`(7`='/'!?!C"0@`````QP7T8PD(`````(L'BQB%VW1K -XMO@0```#K%L<%\&,)"`$```"+!XL<,(/&!(7;=$['1"0$R$P)"(D<).CV>?W_ -XMA7UW#D)"0D%6%P(GE=1''!7!W"@C`JPL(HSB:"PA=PX/X`77Y -XMQP5P=PH(P*0+"*,XF@L(Z^B)]E6+#31W"@B)Y5.+70C!XP*-!`L[!;"8"@AS -XM,3L-5)D+"'8CB<*+`8/I!(D"H529"PB#Z@0YR';MBQ50F0L(A=)T!#G"=PD! -XM'31W"@A;7<.-!!.C4)D+".OMC;0F`````(L5-'<*"%6+#529"PB)Y593BUT( -XMB=`IR,'X`CG8?@*)V(7`?E^+'7<,YRL<%/)H+"`(```"C0'<*"(D- -XMD'<*"'(WB7<.--)4`````B=@I\#L%-'<*",<%/)H+"`(```") -XM%4!W"@BCD'<*"'>GB<(QR8T575HG64XG#@^P$B4WPC4@$ -XMBT`$@_A>=#N#^"2_`0```'1!C5#0,<"#^@EW%)"#P02-!("-!$*+$8/J,(/Z -XM"7;MA?]X-8D&@\0$@^D$6XG(7E]=P\<"`0```(/$!(G(6UY?7<.#>P@M=!G' -XM`O___W^#Q`2)R%M>7UW#BU7P*<*)T.O"BT,,C4L,O______KDXVT)@````"- -XMO"<`````58GEBU4(A=)^#XT$E0!V"0@[!529"PAV!UW#D(UT)@!=Z3K^__^- -XM=@"-O"<`````58GEBU4(@^)_@_I_=S+V!)6]40D(!'0HH41W"@B%P'0FH7QW -XM"@@]0$(/`'\3C02`78U$0M"C?'<*"+@,````PUVX9````,-=C4+0HWQW"@BX -XM#````,<%1'<*"`$```##H9QW"@A5B>6#^`%^!:.HF`H(H31W"@B-4`3'``H` -XM``")%31W"@C'0`0`````N`$```!=PXVV`````(V_`````*$T=PH(58GEQP`` -XM````N`,```!=PXUT)@"-O"<`````H31W"@A5B>7'``````"X%````%W#C70F -XM`(V\)P````"A-'<*"%6)Y<<``````+@3````7<.-="8`C;PG`````*$T=PH( -XM58GEQP``````N!(```!=PXUT)@"-O"<`````H529"PB+%31W"@A5B>4YT',( -XM@\`$HU29"PC'`@````"X`P```%W#B?:-O"<`````H31W"@A5B>7'``````"X -XM"@```%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@-````7<.-="8`C;PG -XM`````*$T=PH(58GEQP``````N`8```!=PXUT)@"-O"<`````H31W"@A5B>7' -XM``````"X$````%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@5````7<.- -XM="8`C;PG`````*$T=PH(58GEQP``````N`\```!=PXUT)@"-O"<`````58GE -XM@^P$BQ4H)PD(A=)T%*%4F0L(BPU\=PH(*=#!^`(YR'T,R;AD````PY"-="8` -XMB0PDZ.C[__^X#@```,G#D%6X9````(GE@^P$@3U4F0L(`'8)"'<)R<.-M"8` -XM````H7QW"@B)!"3HL_O__[@.````R<.-M@````"-OP````!5B>6#[`2A5)D+ -XM"#L%-'<*"'0MH7QW"@B)!"3HD/K__XL5-'<*"+@.````.154F0L(=@:)%529 -XM"PC)PY"-="8`BQ7(F0L(A=)T%CT`=@D(=`^#Z`2C5)D+".NXD(UT)@#)N&0` -XM``##B?:-O"<`````BPU4F0L(58GE@?D`=@D(="^A-'<*"#T$=@D(=",YP7,) -XM@\$$B0U4F0L(BT'\BU'XB4'XN`X```")4?Q=PXUV`%VX9````,.)]HV\)P`` -XM``"+#529"PBX9````%6)Y8'Y!'8)"'81BT'\BU'XB4'XN`X```")4?Q=PXVT -XM)@````!5B>6#[`R#/0QD"0@!B7PD"(G'B1PDB70D!'0DH529"PB)/0QD"0BC -XM$&0)"+@,````BQPDBW0D!(M\)`B)[%W#BS4T=PH(QP4,9`D(`````,<%$&0) -XM"`````#'!4!W"@@`````@?X`=@D(=BJY`'8)"#';,=*+!)4`=@D(@\$$@\,! -XMB025()D*"(/"`3GQ4]0$(/`'\4P>`"L@S'!41W"@@!````HWQW"@A= -XMB=##C70F`%6X#````(GE7<<%$'8*"`$```##C;8`````C;\`````53'`B>7H -XM]O?__Z%4F0L(7<<%`)D*"`(```#'!3R:"P@$````HY!W"@@QP,<%0'<*"``` -XM``##C78`C;PG`````%4QP(GEZ+;W__^A5)D+"%W'!0"9"@@!````QP4\F@L( -XM!````*.0=PH(,<#'!4!W"@@`````PXUV`(V\)P````!5B>6#[`2A?'<*"(D$ -XM).C]]___,<#H9O?__[@.````RA&]___ -XMH529"PA=QP4\F@L(`0```*,H)PD(HY!W"@@QP,.)]HV\)P````!5,<")Y5W# -XMB?:-O"<`````,<"#/0"9"@@`58GE70^4P*,`F0H(,<##D(VT)@````!5,<") -XMY5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P````!5 -XM,<")Y5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P`` -XM``!5N`,```")Y>A3_?__70^^P,.-M"8`````C;PG`````%6X`0```(GEZ#/] -XM__]=#[[`PXVT)@````"-O"<`````58GE5U93@^P$H3R:"PB#^`(/A($```!_ -XM%X/H`0^$SP```+AD````@\0$6UY?7<.0@_@##X2X````@_@$=>2A0'<*"(7` -XM#X0\`0``BQV0=PH(B=XK-31W"@B)'529"PC!_@(YQ@^,%@$``(7V?ATQR8L4 -XMC2"9"@B+!(N)!(T@F0H(B12+@\$!.?%UY8/$!+@.````6UY?7<.A0'<*"(7` -XM#X3B````BQV0=PH(B00DB1U4F0L(Z,?U__^+#4!W"@B%R7X7,=*+!)4@F0H( -XMB023@\(!.15`=PH(?^O'!3R:"P@!````@\0$N`X```!;7E]=PXLU0'<*"(/^ -XM``^$AP```(L]D'<*"(G[?AF)^C')B?:+`H/"!(D$C2"9"@B#P0$Y\77MBQ4T -XM=PH(.==V">LED(LU0'<*"(L$LXD#BQ4T=PH(@\,$.=ISZ(LU0'<*"(L]D'<* -XM"(T$M0`````IPK@.````B3U4F0L(B14T=PH(QP4\F@L(`@```(/$!%M>7UW# -XMB<;IX_[__S'`Z9G^__^)]E6X9````(GE7<.-M@````!5N&0```")Y5W#C;8` -XM````5;AD````B>5=PXVV`````%6X9````(GE7<.-M@````!5N&0```")Y5W# -XMC;8`````5;AD````B>5=PXVV`````%6)Y8/L",=$)`0`=@D(QP0D\)D+",<% -XM])D+"`````#H+&8!`,<$)/"9"PCH$&0!`*$T=PH(Q@4D=PH(`2T`=@D(P?@" -XMH^B9"PBA5)D+""T`=@D(P?@"HS!W"@BAG'<*"*.HF`H(R<.)]HV\)P````!5 -XMB>6#[`CHA?___Z$T=PH(QP6HF`H(`````(U0!,<`"@```(D5-'<*",=`!``` -XM``"X`0```,G#B?:-O"<`````58GE@^P(H529"P@[!31W"@AT+:%\=PH(B00D -XMZ"#T__^+%31W"@BX#@```#D55)D+"'8&B154F0L(R<.0C70F`.C;DP``H31W -XM"@C'``````"X!````,G#B?:-O"<`````58GE@^P(Z.7^___'!9QW"@@````` -XMZ*:3``"A-'<*",<``````+@+````R<.-="8`58GE@^P(Z(63``"A-'<*",<` -XM`````+@%````R<.-=@!5B>6#[`CH99,``*$T=PH(QP``````N!$```#)PXUV -XM`%6)Y8/L".A%DP``H31W"@C'``````"X!````,G#C78`58GE@^P(Z"63``"A -XM-'<*",<``````+@)````R<.-=@!5B>6#[`CH!9,``*$T=PH(QP``````N`(` -XM``#)PXUV`%4QP(GE@^P(Z'/R__^A-'<*",<%/)H+"`$```"C5)D+"*,H)PD( -XMHY!W"@CHL*8``#'`R<.-M@````"-OP````!5,<")Y8/L".@S\O__H529"PB+ -XM%31W"@@YT',6@\`$.<*C5)D+"'(HZ'.F``"A5)D+"*,H)PD(HY!W"@@QP,<% -XM/)H+"`$```#)PXVV`````(D55)D+".O0D(VT)@````!5B>6#[`C'!529"P@` -XM=@D(QP4H)PD(`'8)",<%D'<*"`!V"0C'!3R:"P@!````Z`VF```QP.BF\?__ -XM,<#)PXGV58GE@^P(H5"9"PB+%529"PBC5)D+"(D54)D+".C?I0``,<#)PXUT -XM)@"-O"<`````58GE@^P(BQ60=PH(H529"PC'!2@G"0@`````QP4,9`D(```` -XM`,<%$&0)"``````YPL<%1'<*"`````!V*"G"P?H"B15`=PH(N`$```#'!0"9 -XM"@@`````Z!3Q___H;Z4``#'`R<,IT,'X`J-`=PH(Z]?K#9"0D)"0D)"0D)"0 -XMD)!5B>53@^P$]@4,9`D(`G5ABQ409`D(QP4,9`D(`````(72=#:A5)D+",<% -XM/)H+"`(````YPG))=R?'!"0!````NP$```#H-O'__Z%4F0L(B1U`=PH(HY!W -XM"@B#Q`1;7<.)TRG#P?L"B1PDZ!'Q___KV3'`Z'CP___KEHVV`````(G#*=/! -XM^P*)'"3HX?'__^B\I```Z[2-=@"-O"<`````58GE5HG6BQ4T=PH(4XG#H529 -XM"PB#[@&#_O]T%CD8=`@YT'/P.1AT[(/`!)"-="8`Z^XYPKYD````=B53B<.#[`2A5)D+"(GV -XM@^H!@_K_=!HY&'0/C70F`#T`=@D(=NDY&'3E@^@$B?;K[CT`=@D(<@IU$SD= -XM`'8)"'0+N&0```"#Q`1;7<,Y&'0F]@4,9`D(`:-4F0L(="*#P`2C5)D+".CC -XM_?__@\0$N`X```!;7<.%R736@\`$D.O0Z!FC```QP.N]D(UT)@!5NF0```") -XMY8/L"*$$9`D(A6#[`B+#529"PB+ -XM%31W"@@YT7,TH7QW"@B-!($YPJ-4F0L(6#[`B+ -XM%529"PB!^@!V"0AV/XL-?'<*"(G0+0!V"0C!^`(YR'PSC02-`````"G"H6#[`BA-'<*"*-4F0L(HB00DZ$YE_?_VQ$!UVO8%#&0)"`%T$>B/^O__ -XM@\00N`X```!;7EW#Z,Z?``"#Q!`QP%M>7<.0C70F`%6)Y5>)UU93@^PS_#X2-````.?YR&.OLC70F`(-^_%QT6(/&!#GW -XMD(UT)@!VUHL>BT4(B5PD!(D$).CI:/W_A575HG&4X/L'(M]"(E5[(E-Z(-MZ`&# -XM?>C_#X2'````BUWL.=YW&>F,````B?:#>_Q<=!Z#PP0YWI"-="8`=GB+`XD\ -XM)(E$)`3HO&?]_X7`==R)7?"+1?"Y`0```(GRB3PD@^@$Z&3^__^-6`0YWG,/ -XMZR.#>_Q<=!F#PP0YWG(6BP.)/"2)1"0$Z'QG_?^%P'7A.=YWO(-MZ`&#?>C_ -XMBW7P#X5Y____BT7L.?!S`HGP@\0<6UY?7<.)WNE3____ZPV0D)"0D)"0D)"0 -XMD)"05;AD````B>53@^P$BQU4F0L(@?L`=@D(=#&+#7QW"@BZ`'8)"(G8QP0D -XM,$T)".C]_O__]@4,9`D(`:-4F0L(=!#H*OC__[@.````@\0$6UW#Z&J=```Q -XMP.OQC;8`````58GE@^P8Z&6)``"-10B)1"0(QT0D!&5T`""AM'8*"(D$).CU -XM8OW_AH5"9"P@[!529"PAT$>BGAP``Z"*(``")]N@;F```H529 -XM"PC&!575E.#[`RAN)@*"(7`#X06`0``BPTXF0L( -XM*PU\=PH(A/>)#3B9"PB)RHG#P?H?BZ/__BQU4F0L(B30DZ`#G__^+%3B9"PBA*)D+"(L$T(L0 -XMA=)T#XD3BU`$@\,$@\`$A=)U\87_=&.A5)D+"(D=5)D+"*-0F0L(QT0D!,28 -XM"@C'!"0@20D(Z"5*__^%P'0)@#W,F0L(`'5'Q@7,F0L(`(/$#+@.````6UY? -XM7<.#Q`RX9````%M>7UW#B=._`0```"G#P?L"Z23___^)'5"9"PCKI8D<).C& -XMYO__Z5/___^0Z)N%``#H%H8``.NLC70F`%6)Y5.#[!2+#;B8"@B%R74/@\04 -XMN&0```!;7<.-="8`BQ4XF0L(H2B9"PB+!-")!"3H)F#]_XG"C02%``````,% -XM-'<*"#L%L)@*"'/$B10DBQU4F0L(Z/7E__^+%3B9"PBA*)D+"(L$T(L0A=)T -XM$)")$XM0!(/#!(/`!(72=?&#/7QW"@@!=#F)'5"9"PC'1"0$Q)@*",<$)"!) -XM"0CH'DG__X7`=`F`/6#[!B)7?B+'3!D"0B)=?R)QJ$T9`D(B70D -XM!(D<)(E$)`CH@V#]_[H!````A7UW#@\0,N&0```!; -XM7E]=PXL=5)D+"('[`'8)"',=Z^.)="0$B1PDZ*"3_O^%P'7#@^L$@?L`=@D( -XMNBC70F`(V\)P````!5B>564X/L$(LU -XM?'<*"(7V#XZ,````H1QW"@B%P`^$?P```(M(!(M1!(72='6+6`BX_____SG9 -XM=!,QP)"-="8`@\`!.<9_/H/H`8G1B40D",=$)`0`````BT$$B00DZ!TG`0") -XMPXD$).@#_O__A7<.#Q!"X9````%M>7<.)]E6)Y5=64X/L3(L=5)D+ -XM"(/K!('[`'8)"'8XBP.#^"!T,X/X"70NBQ6,F`H(.=")5;QU%.LWBP.#^"!T -XM&(/X"9!T$CM%O'0E@^L$@?L`=@D(=^.+`SD%C)@*"'0-Z'^2``"#Q$Q;7E]= -XMPXE%O(US!(EUX(M3!(/Z(`^$Z0$``(/Z"0^$X`$``(/X((G"="B#^`D/A`\% -XM``"!^P!V"0@/AA,"``"#ZP2+$X/Z(`^$!0(``(/Z"77AH529"PB)1<`Y5;QT -XM$CL=5)D+"',*@\,$BQ,Y5;QU[HU#_#T`=@D(#X+A`0``@WO\7`^%UP$``(U3 -XM^+D!````ZPJ+`H/J!(/X7'4+@\$!@?H`=@D(<^OVP0%U`X/#!#M=P`^#/___ -XM_XG*P>H?C001@^`!*="#Z`%UGXL5''<*"(72B570#X0;`0``BST$F0H(B=XQ -XMTH/'`8E]N(U&!(E%V(M&!(/X*@^$@P$``(/X7@^$R`(``(/X)`^$9`(``(72 -XM#X4,!0``@_@ZBWW8#X0*!```.46\#X2%`P``@_@@#X0J!```@_@)C78`#X0> -XM!```@_@Z#X05!```.WW`#X,,!```,#^"!T,(/X"70K@_@Z="8Y?#^"!UT(M5S(/O!(72#X6>`@``B?@I\(G&BT70P?X"A8``.@TH```B5W'+3@2)]XU!T(/X"78+@_DM=`:)^(GWZSZ#^20/A9$!``")^(GW@W@( -XM+71WN@$```")_NGM^___@_DM#X1K`0``@_DJD'0.@_DD=`F#^5X/A3$!``") -XM^(/Y)'3*@_E>=")1<#I^OK__X/O!#')Z?O^__^+4`R#^B\/CGW___^# -XM^CD/CW3___^+=="+5@2%T@^$:OS__XM2!(MV"#GR#X1<_/__,?^+4@2#QP$Y -XM\G7VA?\/A$C\__^#^2T/A?H```#'1?``````C5`$B578BU`$@_HM#X3````` -XM@_HJ#X2G````BU7PB478B57LA=(/B`S\__^+1>PYP@^/`?S__XM]T(E$)`B) -XM5"0$B3PDZ&,@`0"+==B#Q@2)1S___]_D.E2____BW78BU8$C4+0@_@)=B*#^B1T'8M5\(U'_XE%[.DQ____ -XMB?F-5?#H4-[__^G^_O__BT78C57LB?GH/M[__XM5\(E%V.D*____C78`58GE -XM@^P(H31W"@C'``````#HJOC__S'`R<.-M@````!5B>575E.#["RA8&0)"(7` -XMB47@#X6"````H;1V"@B-?>['1"0(`0```,=$)`0!N@@(B00DZ%?7_O^+10B) -XM/"0E__\_`(E$)`3H4T\!`(7`B<9T)3';C00?@\,!B40D"*&T=@H(QT0D!')T -XM`8")!"3H.%7]_SGS==V+3>"%R70&D.C;60``BT4(B00DZ'#R__^#Q"Q;7E]= -XM#[[`P^C`6```Z73___^-="8`C;PG`````%6)Y8/L".@EG```Z,!Z``"X#@`` -XM`,G#B?:-O"<`````58GE@^P(QP0D`````.BN50``N`X```#)PXVT)@````!5 -XMB>575E.#[`R+?0B%_P^$U0```(L=?'<*"(T$G0`````#!31W"@@[!;"8"@@/ -XM@[8```"#^P$/A+H```"+-0"9"@B%]G1-A=L/CCP!``"+-529"P@QR8L50'<* -XM"(UT)@"+!(Z#P0&)!)4@F0H(@\(!.=F)%4!W"@AUYHD<),<$E2"9"@@````` -XMZ*/:__^+'7QW"@B)'"3H-=K__Z%\=PH(@^@!@_C_HWQW"@AT)(G"D*%4F0L( -XM@^H!B3B#P`2#^O^C5)D+"'7IQP5\=PH(_____^BZB0``,<"#/0"9"@@"=%J# -XMQ`Q;7E]=PX/$#+AD````6UY?7<.A`)D*"(7`=5+'!"0!````Z,79__^A5)D+ -XM"(DX@\`$HU29"PC'!41W"@@`````QP0D`0```.@@C```,<"#/0"9"@@"=:;' -XM!"0`````Z.GG__^#Q`PQP%M>7UW#BQ54F0L(H4!W"@B+$L<$)`$```")%(4@ -XMF0H(C5`!B15`=PH(QP25()D*"`````#HJ]G__^EU____BQ5`=PH(Z>7^__^- -XM="8`C;PG`````%6)Y8/L"*$T=PH(QP``````Z/KU___'!"0@````Z#[^___) -XM#[[`PXGVC;PG`````%6)Y5.#["3HI%0``(U%"(D$),=$)`2P2@<(Z%'5_?^- -XM1?B)!"3H1F```(G#C44(B00DZ)G4_?^#ZP%T%<<$)`````#HZ.7__X/$)%M= -XM#[[`PXM%^(D$).C4_?__@\0D6UT/OL##C70F`(V\)P````!5B>5=Z>=3``"- -XMM"8`````58GE5U93@^P\BPVXF`H(B578*<+!^@*)1=R%R8E5U`^.:`$``,=$ -XM)`3$F`H(QP0DX$D)".@7//__/?AO"0B)PP^$R````*&XF`H(QT0D!(!#"0B) -XM'"2)P@,5/)D+"(E%T(U"_XG"P?H?]WW0B14XF0L(B=>)UNAA4?W_A<`/A30! -XM``"+5="%T@^.B````*$HF0L(BU74QT7L`````(E%S(M%T,'B`HE5Y(/H`8E% -XMR.L/BT7(`?")PL'Z'_=]T(G6BU7,C1SU`````(T\$XM5U(L'B50D"(E%X(M% -XMW(M5X(E$)`2)%"3H45/]_X7`=1&+1>"+5>2+!!"%P`^$*`$``(-%[`&+1=`Y -XM1>QUI>L(H;B8"@B)1="+==2+%3R9"PB+#;QV"@B#Q@$Y3=")%3B9"PA]"XM% -XMT(/``:.XF`H(C1S5`````(/"`8G0P?H?]_D#'2B9"PB)%3R9"P@[GN_O__BT7LBW\$A<")?>A_#>LZBQ4HF0L(B?Z)5____ -XM,<#H%]3__[@.````R<-5N`!V"0B)Y8/L"(L55)D+".BJ^___H529"P@M`'8) -XM",'X`HD$).AEU?__BQ50F0L(A=)T%J%4F0L(.<)V#2T`=@D(*<*)%5"9"PC) -XMN`X```##C;0F`````(V\)P````!5B>6#[`BA5)D+"(L5-'<*".A*^___H529 -XM"P@[!5"9"PBC-'<*"',%HU"9"PC&!6#[`BA5)D+"#L%-'<*"'0= -XMZ*AS``"A-'<*",<``````+@$````R<.-M@`````]`'8)"'76#[`BA5)D+"#L% -XM-'<*"'0MH7QW"@B)!"3H8-/__XL5-'<*"+@.````.154F0L(=@:)%529"PC) -XMPY"-="8`/0!V"0AT%^@4C^_[@"````R<.)]E6)Y8/L"*%4F0L(.P4T=PH(="VA -XM?'<*"(D$).C@TO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+",G#D(UT)@"+ -XM%/__QP58F0L(`0```,<$)`!V"0CHNSX!`#T`=@D(HS1W"@AV(8-X -XM_`H/A(8```"A-'<*"(-X_"!T<8$]-'<*"`!V"0AR6:$T=PH(HU29"PB#Q!2X -XM#@```%M=PX/$%+AD````6UW#B10DZ#85`0#'1"0(`$```,<$)`!V"0B)PXE$ -XM)`3H7'C__XD<).@DUP``QP58F0L(`````.EN____QP4T=PH(`'8)".N;@^@$ -XMHS1W"@CKA8/H!*,T=PH(Z6W___^)]E6)Y5.#[!2+#9QW"@B%R75&H9B8"@B% -XMP`^$#`$``,=$)`@`0```B40D!,<$)`!V"0CHZG?__Z&/P*#X2#````@3TT=PH(`'8) -XM"',*QP4T=PH(`'8)"*$T=PH(HU29"PB#Q!2X#@```%M=PZ.<=PH(@\04N&0` -XM``!;7+!#.%P'01B?#H -XMV>C__X7`=`:+1>R)1?"A#&$)"(7`#X2(````BW\<@T7L`8M%[#D%G'<*"'\P -XMBW7PA?9U#J&8F`H(Z)_H__^%P'1PBT7PHYQW"@CH?OW__X/$'%M>7UT/OL## -XMC78`A?]TS(M'&(7`#X51____B3PDZ#D2`0")1QBA#&$)"(7`#X5&____B3PD -XMZ"$2`0#'1"0$,"H("(G&B00DZ)_)_?_I*O___XDT).CRR/W_B?;I:?___X/$ -XM'+AD````6UY?7<.-M"8`````C;PG`````%6)Y5=64X/L'*$T=PH(QP4,9`D( -XM`````,<%/)H+"`````#'``````"#/9QW"@@`#XQ6`0``#X0A`0``BS4<=PH( -XMA?8/A`8!``#HPOK__XL5G'<*",=%\`$```"%TGX:,<"#P`&+=APYT'7V@\(! -XMA?:)5?`/A-8```"+7AB%VW1LBPT,80D(AL`=@D(B=C!^`*)1"0(Z`I(_?^%P'4'BQ0[A=)T8XGXNP$```#H1^?_ -XM_X7`=%.A#&$)"(7`=%6%VW5=BW87UT/OL## -XM@\06#[`B+%31D"0B%TG07,<"#/2`G"0@5#Y3`@\`5Z(?___\/OL#)PXGV -XM5;AD````B>6#[`B+#31D"0B%R74"R<.A("<)".A?____R0^^P,.-=@"-O"<` -XM````58GE5U93@^PLC77DB478C5WPQT7D`````,=%Z`````#'1>P`````QT0D -XM!+"1"`B)-"3HV<;]_\<$)`!V"0CHC3T!`,=$)`0P*@@(B<>)!"3HN\;]_Z$T -XM=PH(B47#'1"0$*@```(DT).A[.0$`BT78QP4`=@D(`````,<% -XM-'<*"`!V"0C'!529"P@`=@D(HR`G"0C'!"0"````Z/G)__^+%529"P@QP,<" -XM"@```(-]V!4/E,"#Z`&#X/"#P#^)0@2#P@B)%529"PCHBGD``,=%\`````"- -XM=@")'"3H*%$``(/H`75:BT7P@_@-#X2N````?VN#^`B)]G1N@_@*#X2<```` -XMB40D!(DT).C9.`$`H529"PB+5?")$(/`!*-4F0L(HS1W"@CH+7D``,=%\``` -XM``")'"3HSE```(/H`72FB30DZ"'%_?_'!"0`````Z'76__^#Q"Q;7E]=#[[` -XMPX/X&W0\@_A_=9N#?>@!#X91`0``H529"PC'``````"#Z`2#;>@!HU29"PBC -XM-'<*".C%>```QT7P`````.DY____A<`/A#'___^)/"3HN<3]_X-]Z`$/A)P` -XM``#'1"0$*@```(DT).@?.`$`B30DZ'3'!31D"0@`````QP0D,&0) -XM"(E$)`3H:CH!`,<$)#!D"0CH3C@!`(DT).AFQ/W_#[9%V(-]V!7'!31W"@@` -XM=@D(QP54F0L(`'8)"*)(F0L(#X2$````QP0D`````.CC^?__/&0/E,"$P'5= -XM@WWP&[@.````#X2P````@\0L6UY?7<.+'31D"0B%VP^%R0```,<%`'8)"``` -XM``#'!31W"@@`=@D(QP54F0L(`'8)".C2=P``B30DZ-K#_?^#Q"RX9````%M> -XM7UW#Z+AW``"#Q"RX9````%M>7UW#QP0D`````.C?^O__/&0/E,#I=____\=$ -XM)`@`0```B7PD!,<$)`!V"0CHW6___XM%W*,T=PH(BT7@B30DHU29"PCH=1''!9QW"@@`````N&0```#)P^AK]O__ -XMR0^^P,.-M@````!5B>6#[`BA-'<*",<%/)H+"`````#'``````"AG'<*"(7` -XM="RA?'<*"`$%G'<*".@L]O__/&1U1.@C]O__C78`Z-MU``"X9````,G#C70F -XM`,<%G)@*"`````#'1"0$`'8)",<$))B8"@CHLC575E.#[!R+?0B%_P^.^@```#L]O'8* -XM"'1"QT0D!`@```")/"3H],P``(E%[*$HF0L(A0/A+P!``"+/029"@@I\\'[`HD] -XM+&0)"(DU(&0)",<%-&0)"`````")7"0(B70D!,<$)#!D"0CH+#0!`,<%*&0) -XM"`````#'!21D"0@`````QT7@`'8)",=%\``````Q_\=%Z`````#'1>P````` -XMZUJ+1>2#!2AD"0@!QP4D9`D(`````(7`#X3@````QT0D"/___W_'1"0$```` -XM`(M-Y(D,).@Q!@$`B47PB00DZ(8P`0"+3?")QHM%Y(M`'(E-X(E%Y(M%[(7` -XM=7O'!"1`30D(BU7@N0$```")\.CHU___.<:)PW2*BQ#WP@```$!U'H'Z_P`` -XM``^'K`$``*'@70D(BT20-/;$0`^%8O___XU#_+D!````B?*#!21D"0@!QP0D -XM0$T)".AMUO__*=C!^`*->`&A-&0)"#G'=TR+1>R)WH7`=(6+%529"PB-!+T` -XM````*Q4@9`D(`P4T=PH(*=`[!;"8"@@/@DD!``"+3?")#"3HH<@``(/$++AD -XM````6UY?7<.-="8`B40D"*$P9`D(B1PDB40D!.A'/?W_AZ0#___^+/029"@@[/2QD"0@/A3C^__\[ -XM-2!D"0@/A2S^__\['1QD"0@/A2#^__^A-&0)"(7`#X03_O__B40D"*$P9`D( -XMB70D!(D$).C5//W_A<`/A?;]__^+%2AD"0C'1>``=@D(QT7P`````(72=$N# -XM^@$/CQ2%T@^$,0$``,=$)`C___]_QT0D!`````"+1>2)!"3H>@0! -XM`(E%\(D$).C/+@$`BTWDBTD2)1>#'!"1`30D(BPTD9`D(B?"+ -XM5>#H-];__XG&Z<;]__^#Q"RX9````%M>7UW#C78`B10DZ`0Z_?_I4/[__\'Z -XM`HD4).A8P___B3PDZ&#`__^%_W0=,6A5)D+"*,<9`D(BT7PB00DZ!K'``"#Q"RX#@```%M>7UW#B10DZ*$Y -XM_?_IT?S__XL5(&0)"*%4F0L(*=#!^`(Y^`^%B/[__XE\)`B)WHE4)`2)'"3H -XMHCO]_X7`#X1Y_?__Z6G^__^+3>2%R8UT)@!T&K`!BTWD@\`!.<*+21R)3>0/ -XMCLC^__^%R77HQT7P`````.GL_?__D(VT)@````!5NF0```")Y5=64X/L#*%4 -XMF0L(BSTT=PH(.?@/A$L!``"+%7QW"@B-<`2AX%T)"(E5[(E%\(-M[`&#?>S_ -XM#X0(`0``.?YR(.FF````C70F`(M5\(M$@C3VQ$!T*(/&!#GW#X:+````BP:I -XM````0'5./?\```!VV8D$).BM./W_]L1`==B+!CW_````=G6)!"3HESC]_^MR -XMBU7PBT2:-/;$0'62@?O_````=S>+5?"+1)HT]L0%#X5Z____@\8$.?!="0B)1>R)5?"#;>P!@WWL_W1E.?YR%>OPBU7PBT2:-/;$0'5`@\8$ -XM.?=VW8L>]\,```!`=>^!^_\```!VVXD<).@\-_W_Z]B+5?"+1)HT]L1`=+6# -XMQ@0Y]W:NBQ[WPP```$!UI('[_P```';;B1PDZ`TW_?^0Z]53B<.#[`2I````0'00@_M?N`,` -XM``!T.X/$!%M=PSW_````=T6AX%T)"(M4F#2`YD"X`0```'7@@_M_=B&!^_\` -XM``!W,:'@70D(BT28-/;$`72[@\0$N`(```!;757B==6B<93@^P< -XMHB%P`^%_````*'@70D(BQ5,=PH(B47PB57L@VWH`8-]Z/\/A!4! -XM```Y_G([Z^R+5?"+1)HT]L0!#X6$````@_M_=PKV!)V]40D(!'5UB5PD!(M% -XM[(D$).C<.?W_A]\,```!`==2!^_\```!VL8D<).@^-?W_ -XMB?;KK(/K`74>B?:-O"<`````ZQ>+!NAG_O__@^@!C70F`'4'@\8$.?=WZ8-M -XMZ`&#?>C_=",Y_G,?BP;H0O[__XG#ZPN+!N@W_O__.<-UM8/&!#GW=^[KK(U& -XM_(/$'%M>7UW#.?>)^';R@\0C#R?__N`X```"#Q`1;7<.#P`2C5)D+ -XM"*'(F0L(A53@^P$ -XMBQU4F0L(BQ4T=PH(.=-T+HL-?'<*"(G8Z.?]__^C5)D+"*'(F0L(A53@^P$BQU4F0L(BQ4T=PH(.=-T18L-?'<*"(G8Z(?]__^)PHG#H529"PCH -XMF>'__RL=5)D+",'[`HD<).AHNO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+ -XM"(/$!%M=PXGVC;PG`````%6)Y5=64X/L/(L5)"<)"(E%S*%4F0L(B574BQ4T -XM9`D(B470H9QW"@B)5>")1=BA-'<*"(/`&(T$D#L%L)@*"`^#8@0``(G0,=N+ -XM=@,``*$T=PH(QP`*````@\`$@_X5HS1W"@BXI.8("'0%N+3F"`B+ -XM$(72=!V)P8GVH31W"@B)$(/`!*,T=PH(BU$$@\$$A=)UYZ$T=PH(BQ4D)PD( -XMB1"#P`2+#3!D"0BC-'<*"*$T9`D(C5$$C02!.<)S+(/!"(M1_*$T=PH(B1"# -XMP`2)RJ,T=PH(H31D"0B#P03!X`(#!3!D"0@YPG+7H31W"@C'``````#'1"0$ -XMQ)@*",<$)"!)"0CH0AS__X7`=`V#/20G"0@Z#X1L`P``Z'QH``"-1?")!"3H -XM(4```(/H`0^%:@4``(M-\('Y``$``']#H7!W"@@/MM$/M@0"/!MT,P^'O`(` -XM`#P"="D\!)`/A<@"```Q_X,]-&0)"`''1=P!````=UKHTW@``,=%W`````#K -XM3*$T=PH(@\`$.P6PF`H(#X-7`@``B4PD!#'_QP0D,&0)".B$)P$`H31W"@B+ -XM5?")$(U0!(D5-'<*",=`!`````#HU6<``,=%W`````"A-'<*"#T`=@D(=Q?K -XM&L<``````(/H!#T`=@D(HS1W"@AV!8,X"G7FQP``````BTWV)1?"#^P$/AKH```"#??!;#X2P````A?]T"3EUS`^$T````,=$)`0J```` -XMQP0D,&0)".B^)@$`QP0D,&0)".@2)P$`H529"P@]`'8)"'(,.P4T=PH(#X:F -XM`@``B?"#_A6B2)D+"`^$)`(``,<$)`````#HKNC__SQD#X0D`@``@_X5N`!V -XM"0@/A&H"``"C5)D+"*$P9`D(B?*#P`3H9-+__XL5-&0)"*$P9`D(@^H!B14T -XM9`D(QP20`````,<%)"<)"#H```")\.CX_/__/&2)PW1'A-MT7(#[9`^4P(M5 -XMX(72#X3B````#[[#@\0\6UY?7<.#/20G"0@_#X0=`@``,<"#_A4/E<"-!,7\ -XM____`054F0L(Z0G___^#/20G"0@_#X4)`0``@WW4.@^%_P```#';BU74BT7@ -XMB14D)PD(BU78.16<=PH(HS1D"0AT$XD5G'<*".A+YO__/&0/A`H!``"+1="` -XM^V2C5)D+"`^$"`,``(M%W(7`#X5J____A-L/A6+___^A-&0)"(7`#X6&_/__ -XMQT0D!"H```#'!"0P9`D(QP4D)PD(.@```.A$)0$`Z6/\___H6G8``#'_QT7< -XM`````)#IS?W__X3`#X06____C78`Z5G___\\8710#X1,`0``B0T49`D(QP0D%&0)".BH -XM/@``NPX````Q_\=%W`$```#I9_W__[@!````Z:/^__^^%@```+\!````QT7< -XM`````.E'_?__H31D"0B#Z`&CV)D+".B#5```Z/Y4``#I>/S__X/$/+AD```` -XM6UY?7<.^%0```+\!````QT7<`````.D(_?__QP0D`````.@*Z/__/&0/A=S] -XM__^+%31D"0BA,&0)"(/J`8D5-&0)",<$D`````#H4G4``(M5V#D5G'<*"'02 -XMBU78B16<=PH(Z,GD__\\9'2,BT70QP4D)PD(/P```*-4F0L(Z<_]__^A-'<* -XM".F,_?__H3!D"0B)\H/`!.CUS___/&0/A8G]___I/OW__S'`@_X5#Y3`@^@! -XM)?___W^CG'<*".ANY/__/&0/A%4!``"#_A6X`'8)"`^$/0$``*-4F0L(Z53@^P4QP4T -XM9`D(`````,8%S)D+"`#H;OC__\=$)`3$F`H(QP0D($D)"(G#Z*@5__^%P'0) -XMH=B9"PB%P'43#[[#QP78F0L(`````(/$%%M=P\<%V)D+"`````#H25$``.C$ -XM40``Z+]A``#KTHVV`````(V\)P````!5B>57B==64X/L'(UP_*'(F0L(B4WH -XMA<`/A=D```"AX%T)"(L53'<*"(E%\(E5[(-MZ`&#?>C_#X0@`0``.?YS.^OL -XMBU7PBT2:-/;$`0^%A````(/[?W<*]@2=O5$)"`1U=8E<)`2+1>R)!"3H*R_] -XM_X7`=6*#[@0Y]W>SBQ[WPP```$!UW('[_P```':UB1PDZ.8J_?_KLHM5\(M$ -XMFC3VQ`%U)H/[?W<*]@2=O5$)"`1U%XE<)`2+1>R)!"3HVB[]_X7`#X1E____ -XM@^X$.?)PW?!@^X$.?=WNHL&Z'SS__\YPW3N@VWH`8-]Z/]U -XML(U&!(/$'%M>7UW#C58$B?@YUW/O@\053@^P$BQU4F0L(@?L` -XM=@D(=#.+#7QW"@BZ`'8)"(G8Z.3]__^C5)D+"*'(F0L(A53@^P$H529 -XM"P@]`'8)"'0TBPU\=PH(N@!V"0CHB/W__XL55)D+"(G#Z.O6__^A5)D+""G8 -XMP?@"B00DZ*FP__^Z#@```(/$!(G06UW#C;8`````C;\`````58GE5E.[`'8) -XM"(/L$*$`=@D(J0```$!U,8LUX%T)".L5BT2&-/;$0'0@@\,$BP.I````0'44 -XM/?\```!VY(D$).B'*/W_]L1`=>`['31W"@BX9````'0=@P5P=@H(`8`%B)@* -XM"`''!"0`````Z(_&__\/OL"#Q!!;7EW#D(UT)@!5N&0```")Y8/L&(EU_(LU -XM5)D+"#LU-'<*"(E=^'-GBQ[WPP```$!U1X'[_P```'=_H>!="0B+1)@T9H7` -XM>%&!^_\```!W?:'@70D(BT28-/;$$'0;@?O_````=WBAX%T)"(N$F#0(``#K -XM.9"-="8`C48$HU29"PC'!"0!````Z+Q@```QP(M=^(MU_(GL7<.!^_\```!W -XM(J'@70D(BX28-`0``(D&C48$HU29"PCKR(D<).B4)_W_ZX")'"3HFBG]_^O@ -XMB1PDZ(`G_?^-="8`Z7O___^)'"3H'R[]_XUV`.O"C;0F`````(V\)P````!5 -XMB>575E.#[`R+#7QW"@B+%31W"@BA5)D+".@1\?__BS54F0L(.?")QW9"D(UT -XM)@"+'O?#````0'4L@?O_````=TZAX%T)"(M$F#1FA!= -XM"0B+A)@T!```B0:#Q@0Y]W?#H31W"@B)/529"P@YQW8%HU29"PB#Q`RX#@`` -XM`%M>7UW#B?:)'"3HQ";]_^NQB1PDZ,HH_?_KP(VV`````(V_`````%6)Y5=6 -XM4X/L#(L-?'<*"(L5-'<*"*%4F0L(Z&'P__^+-529"P@Y\(G'#X:G````H>!= -XM"0B)1?#K'HVT)@````"+5?"+1)HT]L0!=2J#Q@0Y]P^&?P```(L>]\,```!` -XM=>N!^_\```!VUXD<).@[)OW_]L0!=-:!^_\````/AZ$```"+5?"+1)HT]L00 -XM#X5[````@\8$.?=V/8L>]\,```!`=>^!^_\```!W3*'@70D(BT28-&:%P'G9 -XM@?O_````=T"AX%T)"(N$F#0$``")!H/&!#GW=\.A-'<*"(D]5)D+"#G'=@6C -XM5)D+"(/$#+@.````6UY?7<.)'"3HK27]_^NSB1PDZ+,G_?^)!NO"@?O_```` -XM=QN+5?"+A)HT"```B0;KK(D<).B!)?W_Z5G___^)'"3H)"S]_XD&ZY.-="8` -XM58GE5U93@^P,BPU\=PH(BQ4T=PH(H529"PCH(>___XLU5)D+"#GPB<=V0I"- -XM="8`BQ[WPP```$!U+('[_P```'=.H>!="0B+1)@T]L00=!:!^_\```!W0J'@ -XM70D(BX28-`@``(D&@\8$.?=WPZ$T=PH(B3U4F0L(.<=V!:-4F0L(@\0,N`X` -XM``!;7E]=PXGVB1PDZ-0D_?_KL8D<).AZ*_W_Z\"0D)"0D)"0D)"0D)!5,<") -XMY5=64X/L+.L1C78`@\`!/0`!```/A(0```"`N,"K"P@>=>F^P*L+"(E%X(U% -XMX+N`````QT7H`````(U][(E%[,=%\`(```"0C70F``^V%#.-0O\\`78M@/HU -XM="B)V(/@?XE%Y`^V!#.)!"3HK)L``,=$)`@`````B3PDB40D!.@8GP``@\,! -XM@?L``0``=;V+1>#&!#`U@\0L6UY?7<-F,<#K"H/``3T``0``=!.`N,"D"P@> -XM=>V^P*0+".EH____BQ7(F0L(N!L```"^P*0+"(72#X50____Z4;____K#9"0 -XMD)"0D)"0D)"0D)!5B>564X/L$(L=8)D+"(7;=5^+#<"E"PB%R755BS7@70D( -XMNX````#K+(VT)@````"+1)XTJ0``!`!T!\:#P*L+"`*#PP&!^_\```!_&O?# -XM````0'7M@?O_````=M.)'"3H9R/]_^O-QP5`9`D(`0```(/$$%M>7<.0C;0F -XM`````%6)Y5.#[#2-1>B)1?3'1?@"````QP7(F0L(`````.B=GP``,=(/MH)` -XM*0D(QH+`I`L(`8B"P*L+"(/"`8'Z``$``'7AZ$?^__^-7?3H+____\=%Z!@` -XM``#'1?``````QT7L&````,<$)"L```#H/IH``(D<),=$)`@`````B40D!.BJ -XMG0``QT7L*@```,<$)$T```#H%YH``(D<),=$)`@`````B40D!.B#G0``QT7L -XM)````,<$)$X```#H\)D``(D<),=$)`@`````B40D!.AYD``(D< -XM),=$)`@`````B40D!.CGG```QT7L3@```,<$)&<```#H5)D``(D<),=$)`@` -XM````B40D!.C`G```QT7L/P```,<$)&\```#H+9D``(D<),=$)`@`````B40D -XM!.B9G```QT7L"0```,<$)&H```#H!ID``(D<),=$)`@`````B40D!.ARG``` -XMQT7L!````,<$)&L```#HWY@``(D<),=$)`@`````B40D!.A+G```Z.9=``#H -XM,7<``(/$-%M=PXUT)@"-O"<`````58GE@^P(H3QD"0B%P'0"RF?=@``ZPV0D)"0D)"0D)"0D)"058GE4S';@^P4C;0F```` -XM`(N#Z*4+"(/##(D$).C_K0``@?O0!0``=>>A@)@*",=$)`S2Y@@(QT0D"`$` -XM``#'1"0$`P```(D$),<%X*4+",3F"`C'!>2E"P@(````Z.X!_O^)!"3H5JO^ -XM_\=$)`S<\0@(QT0D"`(```#'1"0$`P```,<%[*4+".CF"`C'!?"E"P@$```` -XMH^BE"PBA@)@*"(D$).BH`?[_B00DZ!"K_O_'1"0,`/((",=$)`@#````QT0D -XM!`,```#'!?BE"PC]Y@@(QP7\I0L(&0```*/TI0L(H8"8"@B)!"3H8@'^_XD$ -XM).C*JO[_QT0D#$3R"`C'1"0(!````,=$)`0#````QP4$I@L($N<(",<%"*8+ -XM"!T```"C`*8+"*&`F`H(B00DZ!P!_O^)!"3HA*K^_\=$)`R`\@@(QT0D"`4` -XM``#'1"0$`P```,<%$*8+""7G"`C'!12F"P@.````HPRF"PBA@)@*"(D$).C6 -XM`/[_B00DZ#ZJ_O_'1"0,1><(",=$)`@&````QT0D!`,```#'!1RF"P@SYP@( -XMQP4@I@L(!P```*,8I@L(H8"8"@B)!"3HD`#^_XD$).CXJ?[_QT0D#*3R"`C' -XM1"0(!P```,=$)`0#````QP4HI@L(7^<(",<%+*8+"#@```"C)*8+"*&`F`H( -XMB00DZ$H`_O^)!"3HLJG^_\=$)`SD\@@(QT0D"`@```#'1"0$`P```,<%-*8+ -XM"&_G"`C'!3BF"PA0````HS"F"PBA@)@*"(D$).@$`/[_B00DZ&RI_O_'1"0, -XMD^<(",=$)`@)````QT0D!`,```#'!4"F"PA[YP@(QP5$I@L(1````*,\I@L( -XMH8"8"@B)!"3HOO_]_XD$).@FJ?[_QT0D#"CS"`C'1"0("@```,=$)`0#```` -XMQP5,I@L(K.<(",<%4*8+"!````"C2*8+"*&`F`H(B00DZ'C__?^)!"3HX*C^ -XM_\=$)`S'YP@(QT0D"`L```#'1"0$`P```,<%6*8+"+GG"`C'!5RF"P@1```` -XMHU2F"PBA@)@*"(D$).@R__W_B00DZ)JH_O_'1"0,[^<(",=$)`@,````QT0D -XM!`,```#'!62F"PC=YP@(QP5HI@L(;````*-@I@L(H8"8"@B)!"3H[/[]_XD$ -XM).A4J/[_QT0D#!SH"`C'1"0(#0```,=$)`0#````QP5PI@L(">@(",<%=*8+ -XM"&T```"C;*8+"*&`F`H(B00DZ*;^_?^)!"3H#JC^_\=$)`Q4\P@(QT0D"`X` -XM``#'1"0$`P```,<%?*8+"#?H"`C'!8"F"PAJ````HWBF"PBA@)@*"(D$).A@ -XM_OW_B00DZ,BG_O_'1"0,6.@(",=$)`@/````QT0D!`,```#'!8BF"PA)Z`@( -XMQP6,I@L(2P```*.$I@L(H8"8"@B)!"3H&O[]_XD$).B"I_[_QT0D#(SS"`C' -XM1"0($````,=$)`0#````QP64I@L(=.@(",<%F*8+"#(```"CD*8+"*&`F`H( -XMB00DZ-3]_?^)!"3H/*?^_\=$)`R\\P@(QT0D"!$```#'1"0$`P```,<%H*8+ -XM"(CH"`C'!:2F"PAP````HYRF"PBA@)@*"(D$).B._?W_B00DZ/:F_O_'1"0, -XME^@(",=$)`@2````QT0D!`,```#'!:RF"PCQY@@(QP6PI@L(!0```*.HI@L( -XMH8"8"@B)!"3H2/W]_XD$).BPIO[_QT0D#/#S"`C'1"0($P```,=$)`0#```` -XMQP6XI@L(M>@(",<%O*8+"&@```"CM*8+"*&`F`H(B00DZ`+]_?^)!"3H:J;^ -XM_\=$)`PX]`@(QT0D"!0```#'1"0$`P```,<%Q*8+",CH"`C'!I?[_QT0D#,3T"`C'1"0(%@```,=$)`0#````QP7RF"P@;````H^2F"PBA@)@*"(D$).CJ -XM^_W_B00DZ%*E_O_'1"0,#.D(",=$)`@8````QT0D!`,```#'!?2F"PC]Z`@( -XMQP7XI@L(,````*/PI@L(H8"8"@B)!"3HI/O]_XD$).@,I?[_QT0D#"?I"`C' -XM1"0(&0```,=$)`0#````QP4`IPL(QNL(",<%!*<+"!0```"C_*8+"*&`F`H( -XMB00DZ%[[_?^)!"3HQJ3^_\=$)`PL]0@(QT0D"!H```#'1"0$`P```,<%#*<+ -XM"$'I"`C'!1"G"P@W````HPBG"PBA@)@*"(D$).@8^_W_B00DZ("D_O_'1"0, -XM6^D(",=$)`@;````QT0D!`,```#'!1BG"PA/Z0@(QP4````QT0D -XM!`,```#'!3RG"PC`Z0@(QP5`IPL(30```*,XIPL(H8"8"@B)!"3H`/K]_XD$ -XM).AHH_[_QT0D#/;I"`C'1"0('P```,=$)`0#````QP5(IPL(Y^D(",<%3*<+ -XM"$<```"C1*<+"*&`F`H(B00DZ+KY_?^)!"3H(J/^_\=$)`QH]0@(QT0D""`` -XM``#'1"0$`P```,<%5*<+"`WJ"`C'!5BG"PA1````HU"G"PBA@)@*"(D$).AT -XM^?W_B00DZ-RB_O_'1"0,*NH(",=$)`@A````QT0D!`,```#'!6"G"P@9Z@@( -XMQP5DIPL(3@```*-*<+ -XM"&/J"`C'!7RG"P@/````HW2G"PBA@)@*"(D$).BB^/W_B00DZ`JB_O_'1"0, -XMM/4(",=$)`@D````QT0D!`,```#'!82G"PAPZ@@(QP6(IPL(,P```*.`IPL( -XMH8"8"@B)!"3H7/C]_XD$).C$H?[_QT0D#.3U"`C'1"0()0```,=$)`0#```` -XMQP60IPL(B.H(",<%E*<+"!4```"CC*<+"*&`F`H(B00DZ!;X_?^)!"3H?J'^ -XM_\=$)`P@]@@(QT0D""8```#'1"0$`P```,<%G*<+"*#J"`C'!:"G"P@6```` -XMHYBG"PBA@)@*"(D$).C0]_W_B00DZ#BA_O_'1"0,6/8(",=$)`@G````QT0D -XM!`,```#'!:BG"PBWZ@@(QP6LIPL(+````*.DIPL(H8"8"@B)!"3HBO?]_XD$ -XM).CRH/[_QT0D#,CJ"`C'1"0(*````,=$)`0#````QP6TIPL(;/`(",<%N*<+ -XM"&$```"CL*<+"*&`F`H(B00DZ$3W_?^)!"3HK*#^_\=$)`SCZ@@(QT0D""D` -XM``#'1"0$`P```,<%P*<+"$+P"`C'!<2G"PAB````H[RG"PBA@)@*"(D$).C^ -XM]OW_B00DZ&:@_O_'1"0,#>L(",=$)`@J````QT0D!`,```#'!BG"P@Q````H^"G"PBA@)@*"(D$).@L]OW_B00DZ)2?_O_'1"0, -XMY/8(",=$)`@M````QT0D!`,```#'!?"G"P@DZP@(QP7TIPL(/0```*/LIPL( -XMH8"8"@B)!"3HYO7]_XD$).A.G_[_QT0D#$'K"`C'1"0(+@```,=$)`0#```` -XMQP7\IPL(-.L(",<%`*@+"!@```"C^*<+"*&`F`H(B00DZ*#U_?^)!"3H")_^ -XM_\=$)`P0]P@(QT0D""\```#'1"0$`P```,<%"*@+"%WK"`C'!0RH"PAK```` -XMHP2H"PBA@)@*"(D$).A:]?W_B00DZ,*>_O_'1"0,4/<(",=$)`@P````QT0D -XM!`,```#'!12H"PANZP@(QP48J`L(1@```*,0J`L(H8"8"@B)!"3H%/7]_XD$ -XM).A\GO[_QT0D#'#W"`C'1"0(,0```,=$)`0#````QP4@J`L(Z^@(",<%)*@+ -XM"$4```"C'*@+"*&`F`H(B00DZ,[T_?^)!"3H-I[^_\=$)`RT]P@(QT0D"#(` -XM``#'1"0$`P```,<%+*@+"'CK"`C'!3"H"PA2````HRBH"PBA@)@*"(D$).B( -XM]/W_B00DZ/"=_O_'1"0,Y/<(",=$)`@S````QT0D!`,```#'!3BH"PB%ZP@( -XMQP4\J`L(2````*,TJ`L(H8"8"@B)!"3H0O3]_XD$).BJG?[_QT0D#)GK"`C' -XM1"0(-````,=$)`0#````QP5$J`L(D>L(",<%2*@+"`,```"C0*@+"*&`F`H( -XMB00DZ/SS_?^)!"3H9)W^_\=$)`P0^`@(QT0D"'H```#'1"0$`P```,<%4*@+ -XM"*GK"`C'!52H"PAX````HTRH"PBA@)@*"(D$).BV\_W_B00DZ!Z=_O_'1"0, -XM./@(",=$)`A[````QT0D!`,```#'!5RH"PBZZP@(QP5@J`L(>0```*-8J`L( -XMH8"8"@B)!"3H2H"P@J```` -XMH]RH"PBA@)@*"(D$).AN\/W_B00DZ-:9_O_'1"0,V/D(",=$)`A`````QT0D -XM!`,```#'!>RH"PBW[`@(QP7PJ`L($@```*/HJ`L(H8"8"@B)!"3H*/#]_XD$ -XM).B0F?[_QT0D#`#Z"`C'1"0(00```,=$)`0#````QP7XJ`L(PNP(",<%_*@+ -XM"$P```"C]*@+"*&`F`H(B00DZ.+O_?^)!"3H2IG^_\=$)`PD^@@(QT0D"$(` -XM``#'1"0$`P```,<%!*D+",WL"`C'!0BI"PAI````HP"I"PBA@)@*"(D$).B< -XM[_W_B00DZ`29_O_'1"0,3/H(",=$)`A#````QT0D!`,```#'!1"I"PC8[`@( -XMQP44J0L(3P```*,,J0L(H8"8"@B)!"3H5N_]_XD$).B^F/[_QT0D#(3Z"`C' -XM1"0(1````,=$)`0#````QP4.H(",<%(*D+""````"C&*D+"*&`F`H( -XMB00DZ!#O_?^)!"3H>)C^_\=$)`RT]0@(QT0D"$4```#'1"0$`P```,<%**D+ -XM"._L"`C'!2RI"P@S````HR2I"PBA@)@*"(D$).C*[OW_B00DZ#*8_O_'1"0, -XM"^T(",=$)`A&````QT0D!`,```#'!32I"P@![0@(QP4XJ0L((P```*,PJ0L( -XMH8"8"@B)!"3HA.[]_XD$).CLE_[_QT0D##KM"`C'1"0(1P```,=$)`0#```` -XMQP5`J0L(*>T(",<%1*D+""0```"C/*D+"*&`F`H(B00DZ#[N_?^)!"3HII?^ -XM_\=$)`QA[0@(QT0D"$@```#'1"0$`P```,<%3*D+"%7M"`C'!5"I"P@-```` -XMHTBI"PBA@)@*"(D$).CX[?W_B00DZ&"7_O_'1"0,A>T(",=$)`A)````QT0D -XM!`,```#'!5BI"PAY[0@(QP5X(",<%C*D+"`$```"CA*D+"*&`F`H( -XMB00DZ)KL_?^)!"3H`I;^_\=$)`S(^@@(QT0D"$X```#'1"0$`P```,<%E*D+ -XM"#_N"`C'!9BI"P@I````HY"I"PBA@)@*"(D$).A4[/W_B00DZ+R5_O_'1"0, -XM7>X(",=$)`A/````QT0D!`,```#'!:"I"PA2[@@(QP6DJ0L($P```*.^X(",<%L*D+"#8```"CJ*D+"*&`F`H(B00DZ,CK_?^)!"3H,)7^ -XM_\=$)`PP^P@(QT0D"%$```#'1"0$`P```,<%N*D+"(?N"`C'!;RI"P@\```` -XMH[2I"PBA@)@*"(D$).B"Z_W_B00DZ.J4_O_'1"0,5/L(",=$)`A2````QT0D -XM!`,```#'!<2I"PBA[@@(QP7(J0L(.@```*/`J0L(H8"8"@B)!"3H/.O]_XD$ -XM).BDE/[_QT0D#'S["`C'1"0(4P```,=$)`0#````QP70J0L(J.X(",<%U*D+ -XM"#L```"CS*D+"*&`F`H(B00DZ/;J_?^)!"3H7I3^_\=$)`SD\@@(QT0D"%0` -XM``#'1"0$`P```,<%W*D+"+;N"`C'!>"I"PA0````H]BI"PBA@)@*"(D$).BP -XMZOW_B00DZ!B4_O_'1"0,SNX(",=$)`A5````QT0D!`,```#'!>BI"PC"[@@( -XMQP7LJ0L(8````*/DJ0L(H8"8"@B)!"3H:NK]_XD$).C2D_[_QT0D#)/G"`C' -XM1"0(5@```,=$)`0#````QP7TJ0L(Y^X(",<%^*D+"$0```"C\*D+"*&`F`H( -XMB00DZ"3J_?^)!"3HC)/^_\=$)`R@^P@(QT0D"%<```#'1"0$`P```,<%`*H+ -XM"/7N"`C'!02J"P@N````H_RI"PBA@)@*"(D$).C>Z?W_B00DZ$:3_O_'1"0, -XMV/L(",=$)`A8````QT0D!`,```#'!0RJ"P@![P@(QP40J@L(2@```*,(J@L( -XMH8"8"@B)!"3HF.G]_XD$).@`D_[_QT0D#`#\"`C'1"0(60```,=$)`0#```` -XMQP48J@L(%N\(",<%'*H+"%,```"C%*H+"*&`F`H(B00DZ%+I_?^)!"3HNI+^ -XM_\=$)`PL[P@(QT0D"%H```#'1"0$`P```,<%)*H+""'O"`C'!2BJ"PA4```` -XMHR"J"PBA@)@*"(D$).@,Z?W_B00DZ'22_O_'1"0,+/P(",=$)`A;````QT0D -XM!`,```#'!3"J"PA%[P@(QP4TJ@L(5P```*,LJ@L(H8"8"@B)!"3HQNC]_XD$ -XM).@NDO[_QT0D#&3\"`C'1"0(7````,=$)`0#````QP4\J@L(4.\(",<%0*H+ -XM"%@```"C.*H+"*&`F`H(B00DZ(#H_?^)!"3HZ)'^_\=$)`R,_`@(QT0D"%T` -XM``#'1"0$`P```,<%2*H+"%GO"`C'!4RJ"PA?````HT2J"PBA@)@*"(D$).@Z -XMZ/W_B00DZ**1_O_'1"0,N/P(",=$)`A>````QT0D!`,```#'!52J"PAF[P@( -XMQP58J@L(7@```*-0J@L(H8"8"@B)!"3H].?]_XD$).A\(",=$)`AA````QT0D!`,```#'!7BJ"PB/[P@(QP5\J@L(+P```*-TJ@L( -XMH8"8"@B)!"3H(N?]_XD$).B*D/[_QT0D#$3]"`C'1"0(8@```,=$)`0#```` -XMQP6$J@L(KN\(",<%B*H+"#\```"C@*H+"*&`F`H(B00DZ-SF_?^)!"3H1)#^ -XM_\=$)`QP_0@(QT0D"&,```#'1"0$`P```,<%D*H+"+_O"`C'!92J"PAC```` -XMHXRJ"PBA@)@*"(D$).B6YOW_B00DZ/Z/_O_'1"0,L/T(",=$)`AD````QT0D -XM!`,```#'!9RJ"PC2[P@(QP6@J@L(9````*.8J@L(H8"8"@B)!"3H4.;]_XD$ -XM).BXC_[_QT0D#/3]"`C'1"0(90```,=$)`0#````QP6HJ@L(YN\(",<%K*H+ -XM"%P```"CI*H+"*&`F`H(B00DZ`KF_?^)!"3H?`(",=$)`AJ````QT0D!`,```#'!>2J"PAK\`@(QP7HJ@L(6P```*/@J@L( -XMH8"8"@B)!"3HK.3]_XD$).@4CO[_QT0D#*S^"`C'1"0(:P```,=$)`0#```` -XMQP7PJ@L(D_`(",<%]*H+"$,```"C[*H+"*&`F`H(B00DZ&;D_?^)!"3HSHW^ -XM_\=$)`RY\`@(QT0D"&P```#'1"0$`P```,<%_*H+"*;P"`C'!0"K"PA"```` -XMH_BJ"PBA@)@*"(D$).@@Y/W_B00DZ(B-_O_'1"0,W?`(",=$)`AM````QT0D -XM!`,```#'!0BK"PC0\`@(QP4,JPL(5@```*,$JPL(H8"8"@B)!"3HVN/]_XD$ -XM).A"C?[_QT0D#`;Q"`C'1"0(;@```,=$)`0#````QP44JPL(^O`(",<%&*L+ -XM"%4```"C$*L+"*&`F`H(B00DZ)3C_?^)!"3H_(S^_\=$)`PG\0@(QT0D"&\` -XM``#'1"0$`P```,<%(*L+"!_Q"`C'!22K"PA9````HQRK"PBA@)@*"(D$).A. -XMX_W_B00DZ+:,_O_'1"0,0_$(",=$)`AP````QT0D!`,```#'!2RK"P@[\0@( -XMQP4PJPL(.0```*,HJPL(H8"8"@B)!"3H"./]_XD$).APC/[_QT0D#.C^"`C' -XM1"0(<0```,=$)`0#````QP4XJPL(8?$(",<%/*L+""$```"C-*L+"*&`F`H( -XMB00DZ,+B_?^)!"3H*HS^_\=$)`P,_P@(QT0D"'(```#'1"0$`P```,<%1*L+ -XM"&_Q"`C'!4BK"P@B````HT"K"PBA@)@*"(D$).A\XOW_B00DZ.2+_O_'1"0, -XM,/\(",=$)`AS````QT0D!`,```#'!5"K"PAT\0@(QP54JPL(=P```*-,JPL( -XMH8"8"@B)!"3H-N+]_XD$).B>B_[_QT0D#&C_"`C'1"0(=````,=$)`0#```` -XMQP5AD"0BC*&4)"*'`+0D( -XM]]`C!0!E"0@+!;PM"0BC`&4)"*',+0D(]]`C!01E"0@+!<@M"0BC!&4)"*'8 -XM+0D(]]`C!0AE"0@+!=0M"0BC"&4)"*'D+0D(BPW\70D(]]`C!0QE"0@+!>`M -XM"0B%R:,,90D(=2JAM'8*",=$)`0`90D(B00DZ'*$``"#P`$/A`C____'!61D -XM"0@!````R<.A1)D+".O4C;8`````58GE4X'L)"```*%H9`D(QT7X`````(7` -XM=`B)!"3H_HD``(L58&0)"#'`QP5H9`D(`````(72=`F!Q"0@``!;7<.-1?B) -XM1"0(H;1V"@C'1"0$?V8$0(D$).B__/S_BT7XAB-==B) -XM'"3HC`#]_\=$)`0"````B1PDZ(S[_/^)="0(B5PD!,<$)`$```#H*/O\_\=$ -XM)`1@'@4(B30DZ&Q^_?^+#?Q="0B%R70ZH429"PC'1"0$@&0)"(D$).C]@@`` -XMB30DB2L)",<$),!D"0CH -XMOWX``(LU="T)"#')BQUX+0D(#[8]<&0)"+@!````T^"%QG45#[:1DBL)"#J1 -XM8"L)"'0&B)%@*PD(A<-T"(GXB(%@*PD(@\$!@_D9='^_XD$).@]W_[_B00DZ(6W__^+-?Q="0B%]@^$ -XM]@$``*%$F0L(QT0D!(!D"0B)!"3HHGX``(/``0^$+@(``*&`9`D(BPV<9`D( -XMBQ6D9`D(BQV@9`D(H\!D"0BAA&0)"(L]D&0)"(LUF&0)"(D-W&0)"*/$9`D( -XMH8AD"0B)%>1D"0B)'>!D"0B)/=!D"0BCR&0)"*&,9`D(B3789`D(B3T090D( -XMH\QD"0BAE&0)"*/49`D(H:AD"0BCZ&0)"*&`9`D(HP!E"0BAA&0)"*,$90D( -XMH8AD"0BC"&4)"*&,9`D(HPQE"0BAE&0)"*,490D(B34890D(H:AD"0B)#1QE -XM"0B)%21E"0B)'2!E"0BC*&4)",<$)(!D"0CH.WT``,<$)(!D"0BC:)D+".C: -XM?```QP0D@&0)"*+`F0L(Z.E\``"+70BC1"L)"*%(+0D(]]`C!8!D"0@+!40M -XM"0BC@&0)"*%4+0D(]]`C!81D"0@+!5`M"0BCA&0)"*%@+0D(]]`C!8AD"0@+ -XM!5PM"0BCB&0)"*%L+0D(]]`C!8QD"0@+!6@M"0B%VZ.,9`D(=7;'1"0$8"L) -XM",<$)(!D"0CHN7L``(U=Y,=$)`0`G@<(QP0D'````.A>^?S_B1PDZ.;Y_/_' -XM1"0$'````(D<).CF]/S_QT0D"`````")7"0$QP0D`@```.A^]/S_,<#'!6QD -XM"0@!````Z6S]__^AM'8*".D%_O__QP0D`&4)".@;?```AP``BPW\70D(A2L)"'0&B)!Y*PD(@\`!@_@7==\PP`^VD)(K"0@X -XMT70..HA@*PD(=`:(D&`K"0B#P`&#^!EUW^DF____C;8`````C;PG`````%6) -XMY8/L",<$)`$```#H#O7__\<%A'<*"`````#'!"0`````Z"C\__^#P`%T?:%@ -XM90D(AJ&$+0D(QT0D!'DK"0C'!"3`9`D(]]`C!0``R<.-="8`Z'M*``#I -XM?/___XVV`````%6)Y8/L&,=$)`2PD`@(@P7$K`L(`<<$),2L"PCHWW7]_XU% -XM^(E$)`2-1?R)!"3H;30``(7`=0>+10B%P'1"H81W"@B%P'11Z(08``#H_Q@` -XM`,<$)`````#HDT,``,<$)`````#H9T$``(M%^(E$)`2+1?R)!"3HI2\``.C0 -XM*```QP0DQ*P+",<%M)D+"`````#HRG3]_\G#BT7XB40D!(M%_(D$).AV+P`` -XMZ]20D)"058GEBT4(78L0B15(=PH(BT`$QP7\F`H(`````*-(F@L(PXVT)@`` -XM``"-O"<`````58GEBT4(7<<%-&4)"`$```"C,&4)",.)]HV\)P````!5B>57 -XM5E.#["R+/31E"0B+=0B%_W1%H3!E"0B_`0```,<%-&4)"`````")!H/$+(GX -XM6UY?7+__S\`@\`$B1:+%4`K"0B_`0```(D$C8"9"PB+!)6`F0L( -XMBPB%R76;C4+_HT`K"0B#Q"R)^%M>7UW#Z(CV__\Q_X7`#XAZ____H;29"PB% -XMP`^%P0```,=%X``````QVXU%[@'8B40D!*&T=@H(QT0D"`$```")!"3H&G3^ -XM_X/X_XG'=&.A8)D+"(7`#X6;````@\,!C47NB5PD"(E$)`2)-"3H$.X``(/` -XM`0^%$____\=$)`@`````QT0D!`````#'!"0`````Z)?Q_/\['8!1"0ARBP^V -XM1>X-```@`(D&Z=_^__^-=@"+5>"%TG5)Z+#S_/^+`(E$)`2AM'8*"(D$).AA -XME@``@\`!="S'1>`!````Z4C____'!"0`````Z'3]__^-="8`Z2K___\/MD7N -XMB0;IC/[__\<&`````.F!_O__D(UT)@!5B>6#[`B+50B%TG0*H4`K"0B#^`A^ -XM"^@T-P``R>ENC/[_@\`!HT`K"0B)%(6`F0L(R<.-M@````"-O"<`````58GE -XM@^P(H;"9"PB%P'04Z,P5``#H1Q8``,<%L)D+"`````#H."8``*$T=PH(QP5\ -XM=PH(`0```,<%1'<*"`````#'!>@D"0C_____R2T`=@D(P?@"PXUT)@"-O"<` -XM````58GE5U:^`0```%.[`'8)"(/L'(L]-'<*"(E%Z*%4F0L(QT7L`````(E% -XM\(L3A=)X,O?"````0'4J@_I_?R4/ML(/MX0`X"`)"*@0#X35````@_HC#X3, -XM````@\,$BQ.%TGG.B1U4F0L(BQ.)V872=$XYRW0&@WG\7'0UA=*-=@!X+O?" -XM````0'4F@_I_C78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U*_;$('4FD(UT)@"# -XMP02)#529"PB+$872=;*A-'<*"#'VHU29"PB#>/P*=$NAC)@*"*/`*PD(H42: -XM"PBCQ"L)"(L#QP0DP"L)"(E$)`3H]?+\_X7`=#J%]HL=5)D+"`^%(O___XM% -XM\*-4F0L(BT7L@\0<6UY?7<.#Z`2C5)D+".NK]L0@#X4K____D.DN____BT7H -XMAT[__X/X_W0I@^@!=0?'1>P!````BQ4T=PH(.?IT##M= -XM\','B=`I^`%%\(G7Z5C___^#?>P!&<`)1>SKV(GV58GE5U93@>R,````H<27 -XM"@C'19@`````A<`/A/,$``#'1"0$Q)@*",<$),!$"0CHS-?^_\=$)`3$F`H( -XMQP0D($4)"(E%G.BUU_[_QT0D!,28"@C'!"1@1PD(B46@Z)[7_O^)PZ$\9`D( -XMA<`/A)@$``#HVA,``,<$)`````#HWN[__X,]A'<*"`$9P/?0"05`*PD(A=MT -XM*HL#AW\_X7`#X5X!```QP4`F0H(`````*%@ -XM9`D(AR!^O\````/C]<```"A<'<*"`^V -XM'`*`^S4/A-,```"$VP^4P#'2BPTXF@L(AC2$0`` -XMB?;H2Q(``.A&(@``QP5$=PH(`````,<%?'<*"`$```#HW3(``.@8B/[_QP7H -XM)`D(_____Z$T=PH(+0!V"0C!^`*)1;#IK@4``+L"````,<`QTNDT____C57L -XMB578C47@C578QT7<`0```(E$)`2)%"3H_&<``(/X`0^$(`$``(/X`G13A"$VP^4P(#[-0^4PNGO_O__/?___W\/A`C____HAN___\<%A'<*"``` -XM``#HAX?^_X'$C````(G86UY?7<,/ML#_)(7@`0D(Z$?L_/^+=>#'!"0*```` -XMZ(R)_O_'1=0`````B770C770Z#KO___'!81W"@@`````B30DZ-@%_O^%P`^% -XMI````(DT).CH^___QT0D!,28"@C'!"1`0PD(Z-G2_O^) -XM19CI\?K__\=$)`2@1PD(B1PDZ*WH_/^%P`^%>OO__\<%`)D*"`$```#I:_O_ -XM_XU%Z(E$)`BAM'8*",=%Z`````#'1"0$?V8$0(D$).@#Z?S_BW7HA?8/A53[ -XM___HI^W__S';A<`/B47[___I(?W__XM%F,<%Z"0)"/____^%P`^$7`8``(M5 -XMF(L"A<`/A$\&``"+,,=$)`1@0PD(B30DZ"#H_/^%P`^$S08``,=$)`1P0PD( -XMB30DZ`CH_/^%P`^$M08``,=$)`3`0PD(B30DZ/#G_/^%P`^%!08``(LU-'<* -XM"('^`'8)"'8B@W[\"G4?Q<=#:%THUT)@!X+O?"````0'4F@_I_ -XMC78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U+_;$('4JD(UT)@"#P02)#529"PB+ -XM$872=;&A-'<*"#'_HU29"PB#>/P*#X2!!0``BP;'!"3`*PD(B40D!.@EZ_S_ -XMA<`/A.<%``"%_XLU5)D+"`^%)____XM%N+X!````QP748PD(`````*-4F0L( -XMH;"9"PB%P'04Z'X,``#H^0P``,<%L)D+"`````#HZAP``(/N`<<%?'<*"`$` -XM``#'!41W"@@`````#X6O^O__Z$@-``"A-'<*"(UP!,<`"@```(DU-'<*",=` -XM!`````"+-31W"@B)\H'J`'8)",'Z`HE5L.E?!```C70F`,=$)`@)````H529 -XM"PC'!"0`=@D(+0!V"0C!^`*)1"0$Z%M&__^%P`^.N0(``.C^]?__B46P@?O_ -XM__]_#X0O^?__Z9_Z___'!"0*````C78`Z%N$_O^A-'<*",=$)`@%````QP0D -XM`'8)""T`=@D(P?@"B40D!.@&1O__Z!$<``"A-'<*",<%?'<*"`$```#'!41W -XM"@@`````QP7H)`D(_____RT`=@D(P?@"B46PZX8QV\<%Z"0)"/_____I)?K_ -XM_XGZ@/H2#X3(`P``#X\,!@``@/H##X4V^O__BS4T=PH(QP7H)`D(_____\<% -XM+&4)"`````#'1:P"````B?*!Z@!V"0C!^@*)5;"+5;"+!)4`=@D(A`"`054F0L(B34T=PH(QT0D!,28"@C'!"1`1`D(Z)[. -XM_O^%P'0,QP0D`````.@^C___H529"PB+5:S'!"0`=@D(+0!V"0C!^`*)19") -XM5"0(B40D!.BG1/__A<`/A=,#``"+3:"%R70WBU6@BP*%P'0NBSC'1"0$8$4) -XM"(D\).@IY/S_A*$L90D(AX`=@D(B76PP7VP`NAZ&``` -XMQP5\=PH(`0```,<%1'<*"`````#I!OS__\=$)`@'````Z87^___'1"0("``` -XM`.F_^___Z,((``"+-31W"@C'1;``````B?.!ZP!V"0C!^P+'1"0$`````,<$ -XM)`$```#'!?!="0@`````QP6<=PH(`````.@RS```Z:+[__^+-31W"@C'!>@D -XM"0C_____QP4L90D(`````,=%K`,```")\"T`=@D(P?@"B46PZ4/\__^#Z`2C -XM5)D+".ER^O__]L0@#X7G^?__Z>OY___H*@@``,<$)`!V"0CH#ML``,=$)`0P -XM*@@(B<>)!"3H/&3]_Z$T=PH(BU68QT0D!&!#"0B)1:2+`HL`B00DZ`GA_/^% -XMP`^4P`^VP.A@\?__@^@!#X0\`@``B3PDZ%]C_?_I"/___\=$)`0`=@D(B30D -XMZ'H0__^%P`^$`?K__Z%4F0L(QT0D"`(```#'!"0`=@D(+0!V"0C!^`*)1"0$ -XMZ/U`__^%P`^.EP,``(/H`0^/2`,``(L5-'<*"#M5M'0-.W6X@D"0@!BS4T=PH(QP4L90D(`0```,=%K`0```#I^_G__Z'88PD( -XMA<`/A`G[__^+?:"%_P^$_OK__XM5H(L"A<`/A/'Z___'1"0$P$4)"(L`B00D -XMZ.?>_/^%P`^%U_K__^G-^O__@P7H)`D(`8LU-'<*",<%+&4)"`$```#'1:P$ -XM````Z93Y___HE@4``,<$)`!V"0CH>M@``,=$)`0P*@@(B<:)!"3HJ&']_\=$ -XM)`0*````B30DZ-3B_/_'``````"A-'<*",<%-'<*"`!V"0B)1:CH>R4``(DT -XM).A3V@``QP0D`@```(E$)`3HX\@``(DT).B[8/W_Z*84``"-1?.)1"0$H;1V -XM"@C'1"0(`0```(D$).@Z8?[_A<`/B-,!```/MD7S@_AYB47L='N#^"!T=HE\ -XM)`3'!"0`=@D(Z*W=_/^+1:2C-'<*"(M%[(/X90^$L@$``(/X80^$.P$``,=$ -XM)`RR`0D(QT0D"`4```"A@)@*",=$)`0&````B00DZ'^__?^)!"3H%[D``.@" -XM>O[_B?;IM/S__^BV)```C;8`````Z6_[__^+5:C'1"0,H`$)",=$)`@"```` -XMB14T=PH(ZZS'!>@D"0C_____Z6#Y___'1"0$P$4)"(D\).A=W?S_A<`/A4WY -XM___I0_G__\<%U&,)"`````"^`@```.@@!```H8"8"@C'1"0,RP$)",=$)`@' -XM````QT0D!`8```")!"3HV[[]_XD$).ASN```Z6+V___'!=1C"0@`````,?;H -XMW0,``*&`F`H(QT0D#+8!"0C'1"0(!@```,=$)`0&````B00DZ)B^_?^)!"3H -XM,+@``.D?]O__Q@7,F0L(`.B?`@``Z!H#``#H%1,``,8%S)D+"`'I[?S__Z&` -XMF`H(QT0D#*L!"0C'1"0(!````,=$)`0&````B00DZ$2^_?^)!"3HW+<``,<% -XM-'<*"`!V"0C'!529"P@`=@D(QT0D!`````#'!"0`````Z.3&``#HKQ(``(D\ -XM).BW7OW_QT6P`````.E[[___H8"8"@C'1"0,I0$)",=$)`@#````QT0D!`8` -XM``")!"3HUKW]_XD$).ANMP``H31W"@C'``````"-"7"@A_X(L]2&4)"(7;C02]`````(E%\*&P -XM=@H(BP2XB320=#R-2_^#P@&%R8E5[(D51&4)"'XIP>("H;!V"@B+=?"+!`;' -XM!!#___\'@\($@^D!=>:+5>R-1!K_HT1E"0B+%>"7"@@Y%41E"0A\)*&P=@H( -XMBTWPBP0!QP20`````(U'`<<%1&4)"`````"C2&4)"(/$"%M>7UW#C70F`(V\ -XM)P````!5B>575E.)TX/L"(MU#(E%[(M]"(7V?F&)R"G0.<9^!H7`?E6)QHM% -XM[(T,B(G*@^H$C02U`````"G"BT7LB4WPC1R8.=IR#XL"@^H$B4'\@^D$.=IS -XM\8M%\#G8QP``````=A:%]GX2BP>#[@&#QP2)`X/#!#E=\'?J@\0(6UY?753B<-T'XL"AE;7<-5B>53@^P$H=R7"@B%P'0_BQTX90D(A=MX+XVV -XM`````(D<)(/K`>CU*@``QP0D`````.C)*```H>"7"@B)!"3H3"(``(/[_W77 -XM@\0$6UW#H3AE"0B)!"3HQ"H``,<$)`T```#HB'?^_\<$)`H```#H?'?^_X/$ -XM!%M=PXVV`````%6)Y5.#[!2+%`"B40D",=$)`0`````B10DZ/W;_/\Y -XM'DZ=?[_C78`C;PG`````%6)Y5=64X/L+(7)B47DB")3?`/ -XMA:`!``"A/&4)"(7`B47B+1>"+#4!E"0B-5`,$BUWRCP*P+"(7;#X36`0``C47P.T7L#X38`0``BT7P)?____O!X`0!PJ$\ -XM90D(B57LB47@>C1P0P?L"@?O___\##X]*`0``BTWLAR)1"0$B=#!X`(#!<"L"PB)!"3H1=[\_XM5Z`$5/&4)"(L- -XM/&4)"(E-W(M%X(E$)`B+5>2)5"0$BT7

`"`P7`K`L(B00DZ!'>_/^+5>`# -XM%3QE"0B-#)4`````D(UT)@"AP*P+"(/"`<<$"`````"#P03VP@-UZ8G8B14\ -XM90D(#0````2#Q"Q;7E]=PZD````$#X6O````C57PQT7H`0```(E5[(L=/&4) -XM"(7;B5W<#XZ1_O__BSW`K`L(,=N+1>B+5>"--(R)!"3H%-G\_X7`==2+5>")="0$ -XMB50D"(M-Y(D,).CZV/S_A@>`=C!^`(- -XM````!.E+____@\0LN#\```!;7E]=PXL-P*P+""7____[P>`$`R)!"3H -XM^];\_XE%Z.D[____B?B#Q"S!^!_!Z!X!^%M>7UW!^`(-````!,.+%3QE"0B) -XM5=SI0/[__XL-/&4)"(E-W.DR_O__D%6)Y5=64X/L'(E%Z(L`B<$E__\_`('A -XM``#`_XE-\(E%[(E4)`2)!"3H$Z4``(G#C4`'@_@'=AF+3>B)VHL!Z`WZ__^# -XMQ!RX`0```%M>7UW#_R2%C`,)"+H!````N"````#HZOG___8%1&4)"`=UZ.O2 -XMBT7PN@$```"#R%SHS_G__XM%[+H!````P?@&@^`'@\`P"T7PZ+;Y__^+1>RZ -XM`0```,'X`X/@!X/`,`M%\.B=^?__N@$```"#9>P'BT7L@\`P"T7PZ(;Y__^# -XMQ!RX`0```%M>7UW#BT7PN@$```"#R%SH:?G__XM%\+H!````@\A5Z%GY__^+ -XM1?"Z`0```(/(*^A)^?__C03=`````/?8B<.#ZQP/B"C___^0C70F`(M%[(G9 -XMN@$```#3^(/@#P^^@'@#"0@+1?#H$OG__X/K!'G=@\0Z,GX__^#?>Q_#X2I````BT7LN@$````)1?"#3?!`BT7PZ*CX__^#Q!RX -XM`0```%M>7UW#BS5(90D(BQ5$90D(BSVP=@H(ZQJ-M"8`````C1RU`````(L$ -XM'X$\D/___P=U+X/J`7GH@^X!#XB`_O__BP2WC1RU`````(D$).BYU/S_C5#_ -XMBP0?@3R0____!W31A?8/B%?^__^-')4`````BT7HN@$````#'+>+"^C]^O__ -XMB0/I"?[__X--\#^Z`0```(M%\.@%^/__Z?/]__]5B>57B<=6B=93@^P,@_H! -XM?Q'K'[H!````N"````#HW?___XGP`P6XF0L(.P7@EPH(?^'WQP````0/A.\` -XM``")^H'B____^\'B!`,5P*P+"(L"AAN)D+"#L%X)<* -XM"'P_#[X%K)@*"(,%:'8*"`&#!3AE"0@!J`''!;B9"P@`````="2H`G08QP0D -XM(````.B6)QU93@^P, -XMA<")1?!T4(L'A%P'6V@\0, -XM6UY?7<,QTHGX.WWP#Y3"Z/?[__^--(>)]^O<58GE5U93@^Q\B56(B<*)18R) -XM382+`(7`#X0$!@``BTV(.P$/A?D%``")5?")3>CK!XM5Z#L"=1?`$BW7P -XM@T7H!(L&A?P@=!#K&I"-="8`BW68@W[\('4, -XM@VV8!(M%\#E%F'?KBU68QP(`````BTWHB0PDZ/?%``")19S'1"0$Q)@*",<$ -XM)"!)"0CH0+O^_X7`=`F`/@Y=9QV(HM%G(-X_"!T#8GVZQ6+ -XM59R#>OP@=0R#;9P$BTWH.4V<=^N+=9S'!@````"+1?"+`(7`B46\=0V+5>B+ -XM`H7`#X2"`@``BTV8BW6@(``(L!.P9T!Y"#P02#Q@2!.?___P=T -XM\HM%O(7`#X5X`@``B4VHB4VLB76TB76PBU7HBQ*%THE5['1R.TWP=FV+??#K -XM$9"-="8`@\<$.?EV7(L'B46\BT6\.47L=>PYSP^"X`(``(M=Z(GZQT7````` -XM`,=%Q`````"+1:PK1:C!^`([1<1]PXGX*T7PT7W`P?@".47`?K.)5:R+5>B) -XM?:B#QP0Y^8E=M(E5L'>DBT68B*T6L*W6TP?@"P?X" -XM*<:%_W4_AC!^@+!^P(YVGT,BT68BU6%6+18@I1=C!?=@"BU78B10DZ'4= -XM``"+3:`Y39@/A*(#``"+1>"%P'X2BW7@B70D!(M%M(D$).B@&P``BU7@*57< -XMBTW@/@WW]__^#Z02#[@2+ -XM`3L_?__Z6_]__\[=>@/AG_]__^+?>B)3:B)3:R)=;2)=;#K$)"-="8` -XM@\<$.?X/AFK]__^+1;P[!W7N.?=R0HM=\(GZQT7(`````,=%S`````"+1;0K -XM1;#!^`([1B)^CG>#X83_?__C;0F`````(/"!(/#!#G1=Q:)T"GXB47`P?@" -XMB47$Z0/]__^-="8`.=YVYHL".P-TUNO>BW6@BT6DB4W8QT7<`````(EUU(EU -XMJ(EUK(E%M(E%L(EUT,=%X`````#ITOW__X7)#XA4`0``BU6LBTVHB=.)5=`I -XMRXE-U(7VBWV@#X@F`0``BTVDB?HK5?")R"M%Z,'Z`L'X`CG"#XYO_?__BT68 -XMBTV)1:")3:3I7/W__XM%Z"M%B,'X`HD$).B4&P``BTVP.4V<#X3:`@`` -XM@'V3``^%S@$``(G[BWWDBW7H*UWDP><"`?Z)7"0$B30DZ((6``"+1?")V8GR -XM`?CH)/+__^F^_?__BT6LZ5?]__^+1>@K18C!^`*)!"3H-AL``(MUL#EUG`^$ -XM60(``(M%Y(E$)`2+5>B)%"3H:!D``(M-Y(M5\"M5C(E,)`2+=>B+#>"7"@C! -XM^@*)-"2+18R)_N@R\?__BT7DBUWH*W7DP>`"`<.)192)'"2)="0$Z/45``"+ -XM1?")V@-%E(GQZ);Q__^+7>3I#_W__XM-C(MUB(E-\(EUZ.D6^O__BTV8BW6< -XMB<^)3:")=:3IQ_[__XM%H#';BU6DB474B46HB46LB56TB56PB470Z9W^__^+ -XM38PI3=#!?=`"BW70C00SB00DZ&,:``"+1:`Y19@/A`L!``"+1>#WV(D$).A* -XM%```BU7B)^8M%\.B?\/__BUWDZ1C\__^+ -XM1=R)1"0$BU6TB10DZ-44``#I>_S__XMUY(ET)`2+1>B)!"3H[A<``(M5\"M5 -XMC(ET)`2+3>C!^@*)#"2+#>"7"@B+18SHO>___^GZ_?__BT6,C0RPBW6XC129 -XMC1RP.=IS#HL"@\($B0&#P00YVG+RQP,`````Z6'___^+19@K18R+%>"7"@C! -XM^`*--`,YUGX"B=:+1=R)1"0$BU6TB10DZ$(4``"+19PK18C!^`(IQHDT).B? -XM$@``Z6;[__^)?"0$BU7HB10DZ!L4``"+=8@I=9R+38PI39C!?9P"P7V8`HM% -XMG"E%F(M5F(D4).AF$@``Z9S[__^)?"0$BU7HB10DZ.(3``"+5>B)^8M%\(/$ -XM?%M>7UWI?N___XE\)`2+=>B)-"3HOQ,``(M%\(GYB?+H8^___^G]^O__C;0F -XM`````(V\)P````!5B>575E.#[!RAA'<*",<%1&4)"`````#'!81W"@@````` -XMQP5(90D(`````(E%\*%XF0L(Z.?V__^A1&4)",<%1&4)"`````"C3&4)"*%( -XM90D(QP5(90D(`````*-090D(H2QW"@CHM?;__X$]-'<*"`!V"0@/AB("``"[ -XM`'8)",=%Y/_____'1>@`````.QU4F0L(3_=1:A1&4)"(D=5)D+"(E% -XMY*%(90D(B47H,=*!^P!V"0@/E,*)V.C,\O__C1R#.1TT=PH(=[^#?>3_#X3$ -XM`0``BPU$90D(H4QE"0B+%>"7"@B%P'0.BQU090D(A=L/A%T!``#'!4QE"0@` -XM````QP5090D(`````*%(90D(N@$```")1>PQP.B\[/__BT7LQT7@`````(7` -XM>&Z+7>"AL'8*"(M-X,'C`HL4&*%`F@L(BP08Z%#V__^AL'8*"(LUX)<*"(L\ -XM&*%`F@L(A?:+%!A^)(L',`Y1>Q]DJ$X90D(.47L?4`[1>!\.XM=X,'C`J%` -XMF@L(NOAO"0B+3>"+!!CHUO7__Z%`F@L(BP08@\,$QP``````@T7@`8M%X#D% -XM.&4)"'W+BT7LHSAE"0B+1>B)!"3HHQ@``(M%Y(D$).AX%@``QP0D`````.C\ -XM"@``Z-=C_O^+1?"CA'<*"(/$'%M>7UW#,RA>)D+".B(]/__ -XMZ7/^__^A1&4)"(E%Y(G!H4AE"0B)1>CI*_[__XVV`````(V_`````%6)Y8/L -XM&(EU^(MU"(E=](E]_(L55)D+"#L5-'<*"'01BUWTBW7XBWW\B>Q=Z0_]__^+ -XM#4QE"0B%R702H>"7"@@K!;B9"P@IR(/X`G[3C02U`````(G7*</_ -XM_S\`@?\`=@D(#Y3`B40D!(D<).B9E0``@_C_=&B#^`$/A(0```"#^/QUEKH! -XM````N%P```#HA_+__XG8N@$```#!^`:#X`>#P##H#X`>#P##H6O+__XU#,+H!````Z$WR__^+7?2+=?B+??R)[%WI3&+^_[H! -XM````N%X```#H+?+__X/[?W1_@\M`N@$```")V.@9\O__Z\K'1"0$Q)@*",<$ -XM)"!)"0CHTZ_^_X7`=`F`/@Y!2QW"@@/E,"!XO__/P`/ML")%"2)1"0$Z/:3``"-4`>#^@9V -XM9@'&.?Y\O"G^@T7P`87;=;:[`'8)".L6C;0F``````'&.?Y\!H-%\`$I_H/# -XM!#L=5)D+"`^#H@```#'`@?L`=@D(#Y3`B40D!(L#)?__/P")!"3HEY,``(U0 -XM!X/Z!G>__R25K`,)"/\DE<@#"0B0@\8!]\8'````C;0F`````'2"@\8!]\8' -XM````=>.-=@#I;____X/&`??&!P```(GV=("#Q@'WQ@<```!UZ(UV`.EM____ -XM@T7P`3'VZ6+___^#Q@3I6O___P'`]]B-=`;]Z4W___^#Q@+I1?___XM%\(D$ -XM).C8%```B30DZ+`2``#'1"0$Q)@*",<$)"!)"0CHS*W^_X7`=`F`/PL0@``BU4,BTT(@_H!B=`/C@D$``"%R:.L;PD(B<@/CO`#```Y -XM%:QO"0BCH&\)"`^$#0$``*%`F@L(QP5`F@L(`````(D$).A<2?[_H;!V"@C' -XM!;!V"@@`````B00DZ$5)_O^AK&\)"+H```$`B<&CX)<*"(G0P?H?]_F-4`&- -XM!(4(````B17(=@H(B00DZ)50``"+%_(L5R'8*"(G8@\,!.<)_VL<$E@````"AR'8* -XM"(DU0)H+"(/``<'@`HD$).@Z4```BQ7(=@H(A=*)QGXKNP$```"AX)<*"(/` -XM`<'@`HD$).@64```B42>_(L5R'8*"(G8@\,!.<)_VL<$E@````")-;!V"@CH -XM\>?__X'$+$(``%M>7UW#.<@/A>O^___'!"3D`PD(Z)[`_/^%P'1'H:QO"0C' -XM1"0(`````,=$)`0`````B00DZ#%I``#'1"0$,"H("(G#B00DZ$]$_?^)7"0$ -XMQP0D`$P)".@_MOW_B1PDZ)=#_?_'!"3L`PD(Z$?`_/^%P'1'H:!O"0C'1"0( -XM`````,=$)`0`````B00DZ-IH``#'1"0$,"H("(G#B00DZ/A#_?^)7"0$QP0D -XMY$L)".CHM?W_B1PDZ$!#_?_'!"3R`PD(Z/"__/^%P`^$*?[__XD$).C4O@`` -XMQT0D"``(``")1"0$C87DWO__B87@O?__B00DZ$#'_/^-1>2-C>3>___'A>#^ -XM__\`````QT7D8P```,=%Z&\```#'1>PC````QT7P`````(E$)`2)#"3H*;4` -XM`(7`B<2)PXD,).CNP/S_C8WDO?__*YW@O?__B8W3>__^)7"0(B40D!.C!QOS_H:QO"0C'A)WDO?__`````(V2] -XM___'1"0(`````,=$)`0`````B00DZ,9G``")'"2)QHE$)`3H9+[\_XDT).A@ -XM30``QT0D!#H```")/"3H#,3\_XV-Y+W__XD,)(E$)`3H.K[\_XU%Y(V-Y+W_ -XM_\=%Y&P```#'1>AI````QT7L(P```,=%\`````")1"0$B0PDZ$VT``"%P(G& -XM#X3[````B<.-1>2)!"3H$L#\_XV-Y+W__RN=W+W__XE,)`3!^P(!PXV%Y-[_ -XM_XE<)`B)!"3HZ\7\_Z&@;PD(QX2=Y-[__P````#'1"0(`````,=$)`0````` -XMB00DZ/=F``"-C>3>__^)#"2)PXE$)`3HC[W\_XD<).B+3```QT0D!#H```") -XM-"3H-\/\_XE$)`2-A>3>__^)!"3H9;W\_XV-Y-[__\>%X/[__P````")3"0$ -XMQP0D($P)".C)L_W_Z2'\__^X&````.D&_/__N%````"0C70F`.GH^___C8WD -XMO?__C87DWO__B40D!(F-W+W__XD,).@IOOS_Z2]__^-C>3>__^) -XM1"0$B0PDZ`R^_/_KA8VT)@````"-O"<`````58GE5E.#[""+70RAK&\)"(MU -XM"(D#H:!O"0B)!HU%\(E$)`BAM'8*",=$)`1H=`A`B00DZ*2^_/^#P`%T%P^W -XM1?)FA7<.0 -XMC70F``^WP+H!````B0:AK&\)"#L#==^AH&\)"#'2.P8/E<*#Q"!;B=!>7<.0 -XMC;0F`````%6)Y8/L&(72B5WTB=.)=?B)QHE]_'0%@#H`=22+1@B)!"3H&4L` -XM`,=&"`````"+7?2+=?B+??R)[%W#D(UT)@")%"3HU,/\_XUX`8M&"(E\)`2) -XM!"3H!DP``(E\)`B)7"0$B48(B00DZ/_"_/_KOY!5B>6#[!B+%,````\.=,/A/@```"+#6AE"0B%R0^%^@```(G'B<8E````(('G -XM````"('F````$(E%\*&`;0D()0```!`Y\'0IA?8/A-X!``"AL&X)"(7`=!B` -XM.`!T$XL5O&X)"(72=`F`.@`/A9T"``"A@&T)""4````(.?AT+87_#X1J`0`` -XMH>QN"0B%P'0<@#@`=!>+%>!N"0B%TG0-@#H`#X4_`@``C70F`*&`;0D()0`` -XM`"`[1?!T48M%\(7`#X3N````H1!O"0B%P'0]@#@`=#B+%1QO"0B%TG0N@#H` -XM="G'1"0(,#H&",=$)`0!````B00DZ,V]_/^!#8!M"0@````@C;0F`````(M= -XM](MU^(M]_(GL7<.-=@"+#;QN"0B%R0^$^/[__X`Y``^$[_[___?"````$`^% -XM>`$``(G&@>8````0]\(````@#X5W`0``B=@E````((E%\('B````"'1"B=^! -XMYP````@/A8````0)0```"")1?#'1"0(,#H&",=$)`0!```` -XMB0PDZ"N]_/_'!8!M"0@`````B=^!YP````CIAO[__Z$<;PD(A<`/A$O___^` -XM.``/A$+____'1"0(,#H&",=$)`0!````B00DZ.:\_/^!)8!M"0C____?Z1O_ -XM__^AX&X)"(7`#X2N_O__@#@`#X2E_O__QT0D"#`Z!@C'1"0$`0```(D$).BI -XMO/S_@26`;0D(____]^E^_O__H;!N"0B%P`^$-O[__X`X``^$+?[__Z&\;@D( -XMA<`/A"#^__^`.``/A!?^___'1"0(,#H&",=$)`0!````B00DZ%:\_/_V!8-M -XM"0@(=!*AX&X)"(7`=`F`.``/A<\```#V!8-M"0@@=!*A'&\)"(7`=`F`.``/ -XMA8T```"!)8!M"0C____OZ;K]__^)QH'F````$`^$N/[__^E]_O__B=@E```` -XM((E%\`^%@_[__XG>@>8````0Z9[^___'1"0(,#H&",=$)`0!````B00DZ,F[ -XM_/^!#8!M"0@````(Z9[]___'1"0(,#H&",=$)`0!````B00DZ**[_/^!#8!M -XM"0@````0Z3S]___'1"0(,#H&",=$)`0!````B00DZ'N[_/^!)8!M"0C____? -XMZ4S____'1"0(,#H&",=$)`0!````B00DZ%2[_/^!)8!M"0C____WZ0K___^) -XM]HV\)P````!5B>6#[!CH%74``,=$)`3$F`H(QP0D\$4)".CAHO[_A7"7"@A_/*$T;PD(A7<.+%?QM"0B%TG3& -XM@#H`=,&A%&X)"(7`=`6`.`!U>*'\;0D(A7<.#Q!!;7EWI -XM=%+^_\=$)`@P.@8(QT0D!`$```")!"3H6+C\_^EK____C;0F`````%6)Y5=6 -XM4X/L+(MU#(M]"(7V?@@[->"7"@A^"(/$+%M>7UW#QT0D!,28"@C'!"0@20D( -XMZ-F?_O^%P`^$H`(``(L5+'<*",=%V`````"+&H7;=!2)T(/`!(L(A``````=#R+ -XM%5"9"PB+#529"PB)T#G*#X=Z`@``+0!V"0C!^`(#1=@YRHE%W(G0#X);`@`` -XM+0!V"0C!^`(#1=B)1>#'1"0$Q)@*",<$)"!)"0CH-9_^_X7`=%*A9&4)"(L= -XMX)<*"`^O'6AV"@@#';B9"PB%P`^$I````#M=X'P,Z`?X__^-M"8`````H61E -XM"0B%P'08H529"P@M`'8)",'X`@-%V#G8#X2(`0``BP<]____!W0XJ0````0/ -XMA(````")PH'B____^\'B!`,5P*P+"(L"AZ#!;B9"P@!@^X!=%N#QP3I0?___Z%4F0L(+0!V"0C!^`(#1=@!PHE% -XMW(E5X.DD____.UW<#XQD____.UW@#XU;____Z(;W__^-M@````#I2____XD$ -XM).BS5/[_@P6XF0L(`8/N`76EQT0D!,28"@C'!"0@20D(Z".>_O^%P'0-H61E -XM"0B%P`^%UP```*'@EPH(.06XF0L(#XP,_O__#[X5K)@*"/;"`0^$I@```(L- -XM:'8*",<%N)D+"`````"#P0&#X@*)#6AV"@@/A-K]__^A0)H+"(L$B(L`A<") -XM1?`/A*,```"-1?")!"3'1"0$`0```.B7_?__H6AV"@B+%;B9"PB-'(4````` -XM`QU`F@L(BP.!/)#___\'#X6+_?__C4H!C12-`````.L#@\$!B0VXF0L(BP.+ -XM!!"#P@0]____!W3HZ6+]___H4O;__XGVZ6S^__^#Z`&CN)D+"(/$+%M>7UW# -XMZ#;V___I'____\=%V`````#'1=P`````QT7@`````.G._?__QP0D(````.C+ -XM4/[_QP6XF0L(`0```.D'_?__B7>E9_/__BQ50;@D(A=)TP8`Z`'2\ -XMH5QN"0B%P`^$N````(`X``^$KP```(L5+&X)"(72#X2A````@#H`#X28```` -XMB00DQT0D"#`Z!@C'1"0$`0```.A1M/S_B5PD!(DT).CY^___H6AN"0B%P'0) -XM@#@`#X6B````H2QN"0C'1"0(,#H&",=$)`0!````B00DZ!:T_/^#Q!!;7EW# -XMQT0D"#`Z!@C'1"0$`0```(D$).CWL_S_QT0D!`$```")-"3HF_O__Z%H;@D( -XMA7>F53?[_QT0D"#`Z!@C' -XM1"0$`0```(D$).AYL_S_Z4'___^0C;0F`````%6)Y5=64X/L'(M]"(L5N)D+ -XM"#G7#X3$````.SW@EPH(#XVX````A?\/A+@```")^(G^@^`'P?X#B47LZS&- -XM=@"+1>P!\#G##Y_`A,!T;<<$)`T```#HED[^_S'2.SW@EPH(QP6XF0L(```` -XM`'UPB?LITXU#!(/X"'82H>1M"0B%P'0)@#@`#X5:`0``A=M_=/?;@_L$?A*A -XM6&\)"(7`=`F`.``/A?H```"`/<"9"P@`=8XYWP^7UW#QP0D#0```.C^3?[_ -XMQP6XF0L(`````(/$'%M>7UW#@_L$?A*A9&\)"(7`=`F`.``/A8@```"`/<"9 -XM"P@`#X2M````B=.)_H'C^````(/F^#GS#X3/````BQ5H=@H(B57PBPU`F@L( -XMBP21@3RP____!W0K.?-](8/#",<$)`D```#HA4W^_SG>?^VA:'8*"(E%\(L- -XM0)H+"(DUN)D+"*&XF0L(B?HIPHE4)`2+5?#!X`(#!)&)!"3H?_G__^LDB5PD -XM"(E<)`2)!"3HZ:[\_\=$)`@P.@8(B5PD!(D$).BEL?S_B3VXF0L(@\0<6UY? -XM7<.+%6AV"@B)5?"+#4":"PCKG8E\)`B)?"0$B00DZ*:N_/_'1"0(,#H&"(E\ -XM)`2)!"3H8K'\_^N[H6AV"@B)1?"+#4":"PCI9/___Y!5B>575E.#[`R+?0BA -XM:'8*"#G'#X3J````.SW(=@H(#X_>````B?LIPX7;#XX``0``]@6LF`H(`0^$ -XMB````(L5:'8*"*%`F@L(BP20BQ"%TG1TBQ7@EPH(B=&#Z0%T(X$\B/___P=U -XM&HT4D.L0C78`BT+X@^H$/?___P=U!8/I`77NB0PDZ%;]__^+%;B9"PBAX)<* -XM"(L-:'8*""G0B40D!*%`F@L(P>("`Q2(B10DZ$SX__^#ZP%T1/8%K)@*"`$/ -XMA7C___^#^P%^%:%`;PD(A`.@")]G5'H01O"0B% -XMP'2R@#@`=*V)WO?>,=N%]G\+ZZ&-="8`H01O"0B#PP''1"0(,#H&",=$)`0! -XM````B00DZ,RO_/\Y\W7@_X!?BF)="0(B70D!(D4).C:K/S_ -XMQT0D"#`Z!@B)="0$B00DZ):O_/_I0O___Z$$;PD(A0C70F -XM`%6)Y5.#["2A)"P)"(U=],=%^`,```#'1?0H+0D(B40D",=$)`0<+`D(B1PD -XMZ`\H``"A$"P)",=%]!@M"0C'1"0$""P)"(D<)(E$)`CH[R<``*%,+`D(QT7T -XM""T)",=$)`1$+`D(B1PDB40D".C/)P``H3@L"0C'1?3X+`D(QT0D!#`L"0B) -XM'"2)1"0(Z*\G``"A8"P)",=%].@L"0C'1"0$6"P)"(D<)(E$)`CHCR<``*%T -XM+`D(QT7TV"P)",=$)`1L+`D(B1PDB40D".AO)P``H20L"0C'1?3(+`D(QT0D -XM!!PL"0B)'"2)1"0(Z$\G``"A$"P)",=%]+@L"0C'1"0$""P)"(D<)(E$)`CH -XM+R<``*%,+`D(QT7TJ"P)",=$)`1$+`D(B1PDB40D".@/)P``H3@L"0C'1?28 -XM+`D(QT0D!#`L"0B)'"2)1"0(Z.\F``"A8"P)",=%](@L"0C'1"0$6"P)"(D< -XM)(E$)`CHSR8``*%T+`D(QT7T>"P)",=$)`1L+`D(B1PDB40D".BO)@``BPW( -XMF0L(A``````ZQ"#QP>`4@_\=```` -XMBU7@BX($+`D(C01`BQR%J&T)"(7;=-D/MC.)\(3`=-")'"3HI:<``(E%[(D$ -XM).@FJOS_BU7@BXH0+`D(B47P@_G_#X2?````@'L!`(GP#[;0=%*+7=B+==P! -XMTP^V`S@$%G1?/#5T6RP!=86+==B-5>R)5"0$B30DZ,`B``"+5>"+@A`L"0B% -XMP'5T#[:"""P)"(@#Z5C___^0C70F`(/$+%M>7UW#BUW8`=,/M@/KN,=%W$`I -XM"0C'1=C`JPL(Z1[___^-!+^-!(4(+`D(B40D!(U%[(E,)`B)!"3HWB,``,8# -XM->D)____BT78C77LB70D!(D$).A$(@``Z?+^__^)1"0(C02_C02%""P)"(UU -XM[(E$)`2)-"3HHB,``.G0_O__C;8`````C;PG`````%6)Y5=64X'L3`@``(U= -XMR(D<).AEK?S_B1PDQT0D!!P```#H9:C\_XU%V(E<)`2)1"0(QP0D`0```.C^ -XMI_S_C478B00DQT0D!&`>!0CH/RO]_XV%R/?__XE%\,<%8&4)"`$```#'!2!W -XM"@CZ`PD(QP0D++((".@RI_S_A<")PW0)@#@`#X6:`P``NS&R"`C'1"0$``@` -XM`,<$)(!E"0CHWC3^_XE<)`3'!"2`90D(Z+JK_/^%P`^.G`(``,<$)`[/"`CH -XM%JC\_X7`#X6>`P``,=*)%91O"0C'!"0*!`D(Z/JG_/^%P`^$9P,``+H!```` -XMB16X;PD(QP0D#00)".C;I_S_QP0D$`0)"*.(;PD(Z,JG_/_'!"03!`D(H\1O -XM"0CH&:;\_\<$)!8$"0BCK&\)".@(IOS_HZ!O"0BAH&T)"(7`="R[H&T)"(UU -XM\(VV`````(ET)`2)!"3H<*[\_XG"B=B#PPSH:.G__XL#A'<*"(7;=&Z`.P!T -XM::$<;PD(AB)1"0$C47LB00DZ%/G__^+ -XM1>B)1"0$BT7LB00DZ,'B__^-1=B)!"3H]B?]_^B!^___@<1,"```6UY?7<.A -XM4&X)"(7`=`F`.``/A0K___^+%4QO"0@QP(72#X3__O__,<"`.@`/E<#I\O[_ -XM_XL5-&\)"#'`A=(/A,+^__\QP(`Z``^5P.FU_O__@_C_#X27`0``A<`/A$$! -XM``"A@)@*"(L=#'8*",=$)`R4"`D(QT0D"!8```#'1"0$!P```(D$).BNAOW_ -XMB5PD!(D$).A"@```H:!M"0C'!:QO"0A0````QP6@;PD(`````,<%N&\)"``` -XM``"%P,<%E&\)"``````/A)O]__^[H&T)"(G8,=*#PPSH[.;__XL#A*#Q!`QP%M>7<.#Q!"P -XM`5M>7<-5B>575C'V4S';@^P,BT4(BSB+@P`L"0B)/"2)1"0$Z'BB_/^%P'08 -XM@\8!@\,4@_X&==^#Q`RX_____UM>7UW#BTT,BP&+402-#+:)!(T(+`D(B12- -XM#"P)"(M%$(D$C1`L"0B#Q`PQP%M>7UW#C78`58GE5U8Q]E,QVX/L#(M]".LV -XMBX80+`D(@_C_="")1"0(C02;C02%""P)"(E$)`2+A@`L"0B)!"3H@R```(/# -XM`8/&%(/[!G0JBT<$A53,=N#[!2-M"8`````BX.D;0D(@\,, -XMB00DZ!\O``"!^^`!``!UYV8QVXUT)@"+@X1O"0B#PPR)!"3H_RX``(/[5'7J -XMH8"8"@C'1"0,&00)",=$)`@!````QT0D!`0```")!"3'!:QM"0CX'`D(Z/N" -XM_?^)!"3H8RS^_\=$)`PO!`D(QT0D"`(```#'1"0$!````,<%N&T)""P$"0BC -XML&T)"*&`F`H(B00DZ+^"_?^)!"3H)RS^_\=$)`P\!`D(QT0D"`,```#'1"0$ -XM!````,<%Q&T)")_1"`BCO&T)"*&`F`H(B00DZ(."_?^)!"3HZRO^_\=$)`Q, -XM!`D(QT0D"`0```#'1"0$!````,<%T&T)",`%"0BCR&T)"*&`F`H(B00DZ$>" -XM_?^)!"3HKRO^_\=$)`QA!`D(QT0D"`4```#'1"0$!````,<%W&T)"$V]"`BC -XMU&T)"*&`F`H(B00DZ`N"_?^)!"3H!_?^)!"3HORK^_\=$)`RI!`D(QT0D"`D```#'1"0$ -XM!````,<%#&X)"*8$"0BC!&X)"*&`F`H(B00DZ!N!_?^)!"3H@RK^_\=$)`R[ -XM!`D(QT0D"`H```#'1"0$!````,<%&&X)"$T;"0BC$&X)"*&`F`H(B00DZ-^` -XM_?^)!"3H1RK^_\=$)`S.!`D(QT0D"`L```#'1"0$!````,<%)&X)",L$"0BC -XM'&X)"*&`F`H(B00DZ*.`_?^)!"3H"RK^_\=$)`SA!`D(QT0D"`P```#'1"0$ -XM!````,<%,&X)"-X$"0BC*&X)"*&`F`H(B00DZ&>`_?^)!"3HSRG^_\=$)`SY -XM!`D(QT0D"`T```#'1"0$!````,<%/&X)"+/1"`BC-&X)"*&`F`H(B00DZ"N` -XM_?^)!"3HDRG^_\=$)`P(!0D(QT0D"`X```#'1"0$!````,<%2&X)"`4%"0BC -XM0&X)"*&`F`H(B00DZ.]__?^)!"3H5RG^_\=$)`P -XM!0D(QT0D"!8```#'1"0$!````,<%M&X)"""_"`BCK&X)"*&`F`H(B00DZ`]^ -XM_?^)!"3H=R?^_\=$)`RM!0D(QT0D"!<```#'1"0$!````,<%S&X)"*;K"`BC -XMN&X)"*&`F`H(B00DZ--]_?^)!"3H.R?^_\=$)`S#!0D(QT0D"!@```#'1"0$ -XM!````,<%V&X)"'CG"`BCT&X)"*&`F`H(B00DZ)=]_?^)!"3H_R;^_\=$)`S0 -XM!0D(QT0D"!D```#'1"0$!````,<%Y&X)",0>"0BCW&X)"*&`F`H(B00DZ%M] -XM_?^)!"3HPR;^_\=$)`S?!0D(QT0D"!H```#'1"0$!````,<%\&X)"*/!"`BC -XMZ&X)"*&`F`H(B00DZ!]]_?^)!"3HAR;^_\=$)`SU!0D(QT0D"!L```#'1"0$ -XM!````,<%_&X)"(T%"0BC]&X)"*&`F`H(B00DZ.-\_?^)!"3H2R;^_\=$)`P# -XM!@D(QT0D"!P```#'1"0$!````,<%"&\)"->\"`BC`&\)"*&`F`H(B00DZ*=\ -XM_?^)!"3H#R;^_\=$)`P3!@D(QT0D"!T```#'1"0$!````,<%%&\)"$D;"0BC -XM#&\)"*&`F`H(B00DZ&M\_?^)!"3HTR7^_\=$)`PD!@D(QT0D"!X```#'1"0$ -XM!````,<%(&\)""$&"0BC&&\)"*&`F`H(B00DZ"]\_?^)!"3HER7^_\=$)`PT -XM!@D(QT0D"!\```#'1"0$!````,<%+&\)"#$&"0BC)&\)"*&`F`H(B00DZ/-[ -XM_?^)!"3H6R7^_\=$)`Q-!@D(QT0D""````#'1"0$!````,<%.&\)"$H&"0BC -XM,&\)"*&`F`H(B00DZ+=[_?^)!"3H'R7^_\=$)`QE!@D(QT0D""$```#'1"0$ -XM!````,<%1&\)"&(&"0BC/&\)"*&`F`H(B00DZ'M[_?^)!"3HXR3^_\=$)`Q^ -XM!@D(QT0D""(```#'1"0$!````,<%4&\)"'L&"0BC2&\)"*&`F`H(B00DZ#][ -XM_?^)!"3HIR3^_\=$)`R6!@D(QT0D"",```#'1"0$!````,<%7&\)"),&"0BC -XM5&\)"*&`F`H(B00DZ`-[_?^)!"3H:R3^_\=$)`RL!@D(QT0D""0```#'1"0$ -XM!````,<%:&\)"/G."`BC8&\)"*&`F`H(B00DZ,=Z_?^)!"3H+R3^_\=$)`S" -XM!@D(QT0D""L```#'1"0$!````,<%>&X)"+\&"0BC;&\)"*&`F`H(B00DZ(MZ -XM_?^)!"3H\R/^_\=$)`S6!@D(QT0D""P```#'1"0$!````,<%H&T)"-,&"0BC -XM?&X)"*&`F`H(B00DZ$]Z_?^)!"3HMR/^_\=$)`SI!@D(QT0D""T```#'1"0$ -XM!````,<%P&X)".8&"0BCI&T)"*&`F`H(B00DZ!-Z_?^)!"3H>R/^_\=$)`S] -XM!@D(QT0D""4```#'1"0$!````,<%=&\)"`````#'!7AO"0@`````H\1N"0BA -XM@)@*",<%@&\)"`T$"0B)!"3HPWG]_XD$).@K(_[_QT0D#!,'"0C'1"0()@`` -XM`,=$)`0$````QP6,;PD(#L\("*.$;PD(H8"8"@B)!"3HAWG]_XD$).CO(O[_ -XMQT0D#"D'"0C'1"0()P```,=$)`0$````QP68;PD(%@0)"*.0;PD(H8"8"@B) -XM!"3H2WG]_XD$).BS(O[_QT0D##D'"0C'1"0(*````,=$)`0$````QP6D;PD( -XM$P0)"*.<;PD(H8"8"@B)!"3H#WG]_XD$).AW(O[_QT0D#$L'"0C'1"0(*0`` -XM`,=$)`0$````QP6P;PD("@0)"*.H;PD(H8"8"@B)!"3HTWC]_XD$).@[(O[_ -XMQT0D#+@("0C'1"0(*@```,=$)`0$````QP6\;PD($`0)"*.T;PD(H8"8"@B) -XM!"3HEWC]_XD$).C_(?[_QP7(;PD(`````,<%S&\)"`````"CP&\)"(/$%%M= -XMPU6)Y8'L2`@``(V%\/?__XE%\(M%"(E=](EU^(E]_,<%('<*"+;1"`B)!"3H -XM`,;]_\=$)`3P(P8(B<.)!"3H?AG]_XL#A<`/A+0```"+$(72#X2J````@_HM -XM#X2V````B9W@]___QX78]___`````,>%W/?__P````")!"2_)`<)".@:D@`` -XMB00DZ%(A_O_'1"0$,"H("(F%S/?__XD$).@<&?W_B[7,]___N04```#\\Z8/ -XMA%W/?__P````!T(,<$)'<``!#H>A7]_\>%V/?__P````#'A=SW__\` -XM````C4,$B87@]___BT,$AG'1"0$`````,<$)"`+"0CHH&\``.F%_O__ -XMB[7,]___O_[>"`BY!0```/SSIG04B[7,]___OS,'"0BY!@```/.F=2^AH&\) -XM",<$)"`+"0B)1"0$Z%UO``#I0O[__XE4)`3'!"0D"PD(Z$AO``#I+?[__XNU -XMS/?__[\6!`D(N0,```#SIG2]B[7,]___OV$'"0BY!0```/SSI@^$40(``(NU -XMS/?__[\3!`D(N0,```#SI@^$.0(``*&@;0D(OJ!M"0B%P'42Z;`#``"#Q@R+ -XM!H7`#X2C`P``BY7,]___B00DB50D!.@(E_S_A#W__^+0@2%P'0R -XMBS"%]G0LBXW<]___A+A#W__^+0@2)!"3HCHP``(D$).@RC_S_B<>+1@2%P'0RBP"% -XMP'0LBX7<]___A<`/AG*_/__BX78]___ -XMA<`/A+S\__\/OL*)1"0$QP0D=```$.BN#_W_Z:3\__^)]HV\)P````!5B>57 -XM5E.#[!R+10R+70C'!2!W"@@UT@@(B47LH:!M"0B%P`^$`P$``+Z@;0D(ZPV# -XMQ@R+!H7`#X3O````B5PD!(D$).C3DOS_AT!``"+%4QO"0@Q -XMP(72=`@QP(`Z``^5P(L5!&\)"*/DF`H(A=)T"H`Z`+@!````=12+%7!O"0@Q -XMP(72=`@QP(`Z``^5P*-X=PH(@\0<6UY?7<.+%8!O"0C'1?"`;PD(A=*)5>AU -XM)HE=#,=%"',``!"#Q!Q;7E]=Z4H._?^#1?`,BT7PBP"%P(E%Z'3:B5PD!(M] -XMZ(D\).BGD?S_AR)/"3H9(S\_XM5\(E""(L5K&\)"*&@ -XM;PD(@7WPI&\)"(D5=)D+"*/$F0L(=`V!??"8;PD(#X4Z____B54,Z!N"0B%P`^$6?[__X`X``^$ -XM4/[__XE$)`2)'"3H[)#\_X7`#Y3`#[;`"05H90D(Z3'^__^+=>RX6`<)"+D$ -XM````_(G'\Z8/A9@```"+1?#'0`@!````H91O"0B#/<1O"0@!BPV(;PD(HL"9 -XM"PBAN&\)"*+(EPH(&<#WT(/@`H7)#Y7""="!??"`;PD(HJR8"@AT#8%]\+QO -XM"0@/A77^__^AK&\)"(E%#*&@;PD(B44(@\0<6UY?7>GER?__N`$```#I'?[_ -XM_XE$)`2)'"3H.Y#\_X7`#Y3`#[;`HVAE"0CI&____XMU[+B1Y`@(N0,```#\ -XMB575E.#[!RA@)@*",=$)`S8"`D(QT0D"`$```#'1"0$!P```(D$).CB -XM;?W_B00DZ'IG``"A@)@*",=$)`QF!PD(QT0D"`(```#'1"0$!P```(D$).BU -XM;?W_B00DZ$UG``"A@)@*"(L=H&\)"(LUK&\)",=$)`P`"0D(QT0D"`,```#' -XM1"0$!P```(D$).A\;?W_B5PD"(ET)`2)!"3H#&<``(`]R)<*"``/A+`"``"A -XM@)@*",=$)`S,[@@(QT0D"`4```#'1"0$!P```(D$).@Z;?W_B00DZ*(6_O_' -XM1"0$,"H("(G'B00DZ'`._?^A@)@*",=$)`R$!PD(QT0D"`0```#'1"0$!P`` -XM`(D$).C[;/W_B7PD!(D$).B/9@``N$7)"`B`/<"9"P@`#X2"`@``B00DZ$46 -XM_O_'1"0$,"H("(G#B00DZ!,._?^A@)@*",=$)`R>!PD(QT0D"`<```#'1"0$ -XM!P```(D$).B>;/W_B5PD!(D$).@R9@``]@6LF`H(`0^$K`$``*&`F`H(QT0D -XM#+('"0C'1"0("@```,=$)`0'````B00DZ&!L_?^)!"3HR!7^_\=$)`0P*@@( -XMB<.)!"3HE@W]_Z&`F`H(QT0D#,0'"0C'1"0("0```,=$)`0'````B00DZ"%L -XM_?^)7"0$B00DZ+5E```/O@6LF`H(J`%T>*@"#X5]`0``H8"8"@C'1"0,M@<) -XM",=$)`@+````QT0D!`<```")!"3HW6O]_XD$).A%%?[_QT0D!#`J"`B)PXD$ -XM).@3#?W_H8"8"@C'1"0,W@<)",=$)`@,````QT0D!`<```")!"3HGFO]_XE< -XM)`2)!"3H,F4``(L=H&T)"(7;#X2/````,?:)]HN&J&T)"(7`=`6`.`!U):&` -XMF`H(QT0D#/0'"0C'1"0(#0```,=$)`0'````B00DZ$QK_?^)!"3HM!3^_\=$ -XM)`0P*@@(B<.)!"3H@@S]_XN&H&T)"(E<)`S'!"3\!PD(B40D"(N&I&T)"(E$ -XM)`3HKF0``(D<).BV"_W_BX:L;0D(@\8,A<`/A77____'!"0*````Z*DG_O^) -XM/"3HD0O]_X/$'%M>7UW#H8"8"@C'1"0,M@<)",=$)`@+````QT0D!`<```") -XM!"3HM&K]_^E/_O__H8"8"@C'1"0,D>0(",=$)`@&````QT0D!`<```")!"3H -XMBFK]_^E+_?__H8"8"@C'1"0,L@<)",=$)`@*````QT0D!`<```")!"3H8&K] -XM_^E^_O__H8"8"@C'1"0,F0<)",=$)`@(````QT0D!`<```")!"3H-FK]_^E4 -XM_?__D%6)Y8M%"%VBX&\)"+C@;PD(PXVT)@````"-O"<`````58GEBT4(78M0 -XM!(L`B17<;PD(H]AO"0BXV&\)",.-=@!5B>53B<.#[`3'!"08````Z'L6``"+ -XM$XL2QT`$_____\=`"`````")$,=`#`````#'0!``````QT`4`````(/$!%M= -XMPXVV`````(V_`````%6)Y5.)PX/L!(7`=$N+0!"%P'0,Z.?____'0Q`````` -XMBT,4Z-C___^+0P2#^/]\"87`?AR#^`)^#(VT)@````#HQXC\_XM#"(D$).@@ -XM%0``B1PDZ!@5``"#Q`1;7<.)]E6)Y5=6B=93@^P,B47PBSJ+&(L7.1.)V74( -XMZQF-="8`B<&+012%P'0W.Q!U\X/!%(G#B4WPC4<$B0:+1@2#Z`&%P(E&!'0J -XMBU,0A=)T$HU#$(GRZ*C___^#Z`%T#8UV`(/$##'`6UY?7<.+0Q"%P'7OBT,4 -XMBU7PB0*)V,=#%`````#H&?___X/$#+@!````6UY?7<.-M@````"-OP````!5 -XMB>6#["B+10B+4`2+`(72B57\B47X=!V+#=1O"0@QP(7)=`^-5?BXU&\)".@O -XM____,<#)P\=$)`PH"PD(QT0D"`,```#'1"0$"0```*&`F`H(B00DZ$9H_?^) -XM!"3HWF$``+C_____R<.-M"8`````58GEBTT,BU4(BP$/M@"`/!`U=`)=PX'Z -XMP*L+"'0:@?K`I`L(=>Z`N,"K"P@U=.6)30A=Z5C___^`N,"D"P@U=>[KVXVV -XM`````(V\)P````!5B>57B<=6B=93B?N#[!R)3?"+`HL0.1=U".L8C70F`(G# -XMBT,4A<`/A,L````[$)!U[HG'BT8$@P8$@^@!A<")1@1U+(M'$(7`=`SH\/W_ -XM_\='$`````"+1P2#^/]\"87`?D>#^`)^,.C?AOS_C78`BU\0A=L/A*0```"+ -XM50B+1Q")%"2+3?")\NAR____@\0<,7<.)V.@5_/__H]1O"0CI>___ -XM_XUT)@"-O"<`````58GE@^PHB5WTB<.)=?B)SHE]_(G7BQ*+`#L"=#.+0Q2% -XMP'04B?KHU?___XM=](MU^(M]_(GL7<.X`0```,____ZX>-M@`` -XM``"-OP````!5H=1O"0B)Y8M5"(M-#%WI//___XVV`````(V_`````%6)Y8/L -XM"*'4;PD(Z'#[___'!=1O"0@`````R>D0UO__58GE5U93@^P-=@"!^_\````/AS0!``"AX%T)"(M$F#3VQ`)T/X/[ -XM?\8&7@^$)P$``(G8@\A`B$8!@\8"BU4(@T7P`8M%\#E"!`^.DP```(M5"(L" -XMBU7PBQR0B=^!YP```$!TIX/[7@^$T````(/[7`^$QP```(/[((GV=#Z%_P^% -XMA@```('[_P````^'TP```*'@70D(BT28-*D```0`=&J!^_\````/A\@```"A -XMX%T)"(M$F#3VQ$!U4('C__\_`(DT)(E<)`3HKGP``(M5"(-%\`$!QHM%\#E" -XM!`^/;?___XM%#(L0A=)T#(M`!(7`=`6(!H/&`<8&`(M%[(/$'%M>7UW#C;8` -XM````B=C!^`:#X`>#P#"(1@&)V,'X`X/@!X/`,(A&`HG8@^`'@\`PQ@97UW#C70F`'Q3@_L"?TZ#ZP&X -XM:#T)")!T!;AT/0D(B30DB40D!.B-_?__QT0D!#`J"`B)PXD$).C+`_W_H4@- -XM"0B)7"0$B00DZ`I<``")70B#Q!Q;7E]=Z0L#_?_HPH'\_Z&`F`H(QT0D#.$+ -XM"0C'1"0(!P```,=$)`0)````B00DZ#%B_?^)10RA2`T)"(E%"(/$'%M>7UWI -XMNEL``(UV`(V\)P````!5B>6#["B+10B)??R)7?2)=?B+&(U3!(E5[(MS!(GW -XM@>?__S\`#X2"`0``BPN)R"7__S\`@_AQ=PXUT)@"!__\```!W-Z'@70D(BT2X-/;$`70S@_\_ -XMQT7P?P```'3"@>:?````B77PZ[>-=@"-1]"#^$9W\/\DA2P,"0B)/"3HU7_\ -XM_^O(B7PD!,<$)`4,"0CH@X'\_X7`=;GK@L=%\`L```#I>?___\=%\`D```#I -XM;?___\=%\`T```")]NE?____QT7P"@```(UT)@#I3____\=%\`P```"-="8` -XMZ3_____'1?`;````C70F`.DO____QT7P"````(UT)@#I'____\=%\`<```"- -XM="8`Z0_____'1?!<````C70F`.G__O__BUWL,=(QR8/#!(/X!P^'T@```(M- -XM[(G"BT$$B6#[!B%THE=](G3B77XB<:)??P/A.@```")UX'G````0'4>@?K_ -XM````#X=0`0``H>!="0B+1)`T]L0"#X7B````@_M>#X1"`0``@_M<#X0'`0`` -XM@_L@=#Z%_XUT)@!U1('[_P````^'X0```*'@70D(BT28-*D```0`="B!^_\` -XM```/ARD!``"AX%T)"(M$F#3VQ$!U#HE<)`2)-"3H7',``.M0QT0D!%P```") -XM-"3H2G,``(G8P?@&@^`'@\`PB40D!(DT).@S#P#") -XM1"0$B30DZ!ES``"-0S")1"0$B30DZ`IS``"+7?2+=?B+??R)[%W#QT0D!%X` -XM``")!"3H[7(``,=$)`1`````B30DZ-UR``#KT<=$)`1>````B30DZ,MR``"# -XM^W\/A(<```"#RT")7"0$B30DZ+-R``#KIXD<).CE?/S_Z1O____'1"0$7``` -XM`(DT).B4<@``QT0D!%P```")-"3HA'(``.EU____B10DZ+-\_/_IK/[__\=$ -XM)`1<````B30DZ&)R``#'1"0$7@```(DT).A2<@``Z4/___^)'"3H@7S\_Y"- -XM="8`Z<[^___'1"0$/P```(DT).@K<@``Z1S___^-M@````!5B>6#[!B%THE= -XM](G3B77XB<:)??QT.8L2BW@$Z/_]__^+4Q"%TG0XB?#HT?___XM#%(7`=!J) -XM?@2+4Q2)\(M=](MU^(M]_(GL7>NTC70F`(M=](MU^(M]_(GL7<.-=@#'1"0$ -XM(@```(DT).BP<0``B30DZ`AR``"+0P2)1"0(C4,(B40D!(L&B00DZ##Z___K -XMG8VT)@````"-O"<`````58GE@^PHAR+2Q"#P`2)1>R+1@2#Z`&) -XM1?")^.BL____BUWTBW7XBWW\B>Q=PXGXB''1"0$(@```(D\).CA<```B3PDZ#EQ -XM``"+0P2)1"0(C4,(B40D!(L'B00DZ&'Y__\QP.N1C;8`````C;PG`````%6) -XMY593@^PPBU4(QT7D`````,=%Z`````#'1>P`````A=)T;(L"B47PBT($B47T -XMH=1O"0B%P'1(C77DQT0D!"(```")-"3H97```,=$)`2PD0@(B30DZ'7]_/^+ -XM#=1O"0B-5?")\.C%_O__@\`!?C")-"3HN/S\_X/$,%M>7<.0BT7TA7<.)]L=%\/AO"0C'1?0`````ZX^A@)@*"(M=\,=$)`P0#`D(QT0D"`0` -XM``#'1"0$"0```(D$).BX6_W_B5PD!(D$).A,50``ZYJ0D)"0D)"0D)"058GE -XMBT4(BU4,#[9(&(@*#[9(&8A*`0^V2!.(2@(/MD@5B$H##[9($(A*!`^V2!&( -XM2@4/MD@2B$H&#[9(%XA*"0^V2!R(2@H/MD@=B$H+#[9(%(A*#`^V2!J(2@T/ -XMMD@;B$H.#[9(%HA*#P^V2!^(2A`/MD@>B$H1#[9((HA*$@^V2""(2A#[9($HA*(@^V -XM2!>(2B`/MD`8B$(A7<.058GEBT4(78M`!(/P!,'H`H/@`<.-M@````"-OP`` -XM``!5B>6+10A=BT`()0`#```]``,```^4P`^VP,.0C70F`%6)Y8M%"%V+0`PE -XM``$``,-5B>53@^P$BUT(B1PDZ-IY_/^%P'0*@\0$6UW#C70F`(E="(/$!%M= -XMZ;][_/^-=@!5B>564X/L$(MU"(M=#.L*Z$=[_/^#."-U(HE<)`C'1"0$`0`` -XM`(DT).C2^OW_@\`!=-TQP(/$$%M>77`P``BU7@`````QT7L`````(E5S(E%R.MMNRT```"_`0```,9%TP&+5>R+LD`/"0B) -XM-"3HD7S\_XU\!P$!?>2+1>0[!>"7"@@/C<`"``"`?=,`#X2A`@``#[[#B70D -XM"(E$)`3'!"1E#0D(Z$Y1``"+5>R+@DP/"0B#P@R)5>R%P`^$P0(``(M5[(N" -XM2`\)"#M%X'1=C11`BT7(*T7,@WW@_XN$D$`M"0BZ`;H("`^$B@(``(E$)`B) -XM5"0$QP0D6PT)".CV4```BT7LBU7(*U7,BX!(#PD(B47@C01`BX2"0"T)"(D$ -XM).C>>_S_B47DB47HBU7LBT7@BXI$#PD(C11`BT7(*T7,C120B<@C@D0M"0B# -XM^`$9V_?3@^,KA8I(+0D(#X7R_O__A-L/E473=0N+1=B%P`^$-?___P^V?=/I -XMY/[__X/&!,=%W`(```#I+/[__X/&!,=%W`$```#I'?[__X-%V`&#Q@3I$?[_ -XM_\=%V`````#'1=P`````QP7H;PD(`0```(L6A=(/A$S^__^+1=R-?@3!X`*) -XM1<2+1=S!X`:)1<"+`H/X*P^$FP```(/X+<9%\P`/A(X```")%"2[0`\)".B$ -XM<```B<:A0`\)"(7`=1+K?XVT)@````"#PPR+`X7`=&^)="0$B00DZ`=X_/^% -XMP'7G@'WS*P^$F````(!]\RT/A,@```"+0PB+5<"+2P0K5<2-!$"-!(+WT2&( -XM1"T)""&(2"T)"(7_#X2.````BQ>%T@^$A````(L"@\<$@_@K#X5E____@\($ -XMB$7SZ6?___^A@)@*",=$)`QK#0D(QT0D"`(```#'1"0$"````(D$).BC5?W_ -XMB70D!,<$)#8``!")1"0(Z._S_/^`??,K#X5H____BT,(BU7`*U7$BTL$C01` -XMC02""8A$+0D(]]$AB$@M"0B%_P^%7UWI^_7\_XM# -XM"(M+!(M5P"M5Q(T$0(T$@HG*]]()B$@M"0@AD$0M"0CI,?___XET)`3'!"1G -XM#0D(Z+1.``#I8?W__\=$)`A%R0@(BU7HQP0D8`T)"(E4)`3HE$X``(M%[`-] -XMZ(E]Y(NP0`\)".D1_?__ND7)"`CI;/W__\<$)`H```#HBA'^_XM%U(E%"(/$ -XM3%M>7UWI:/7\_\=%V`````#'1=P`````Z5G\__^0D)"0D%6)Y8/L&,<$)``` -XM``")7?B)=?SHY';\_XLU]&\)",=$)`Q\$@D(QT0D"`P```#'1"0$$P```(G# -XMH_!O"0BA@)@*"(D$).A65/W_B=HI\HE<)`B)="0$B50D#(D$).C>30``BUWX -XMBW7\B>Q=PXUT)@!5B>6+10B%P'0)H>QO"0B%P'0"7<-=Z7%X_/^0C70F`%6X -XM`@```(GE@^P8BQ7H=@H(A=)U!:$$=@H(QT0D"`X```#'1"0$J1()"(D$).CJ -XM6#[!B)=?R+=0P/KW4(B5WXA?9U!&:^`0"+ -XM#?1O"0B%R70UB30DZ$]W_/^%P(G#="")="0(B1PDQT0D!`````#H=73\_XG8 -XMBW7\BUWXB>Q=P^AH____Z]G'!"0`````Z,9U_/^C]&\)".NXC78`58GE4X/L -XM!(M="(7;=0*S`:'T;PD(A6#[!B)7?B+70R)=?R+ -XM=0B%VW4"LP&A]&\)"(7`=$&%]G0>B5PD!(DT).@K;HJO[__XG8BW7\BUWXB>Q=P\<$)`````#H -XM_G3\_Z/T;PD(ZZR0D)"0D)"0D)"0D%6)Y8/L&*&`F`H(QT0D#+@2"0C'1"0( -XM#````,=$)`04````B00DZ&52_?^)!"3H_4L``*&`F`H(QT0D#.@2"0C'1"0( -XM#0```,=$)`04````B00DZ#A2_?^)!"3HT$L``*&`F`H(QT0D#!P3"0C'1"0( -XM#@```,=$)`04````B00DZ`M2_?^)!"3HHTL``*&`F`H(QT0D#%03"0C'1"0( -XM#P```,=$)`04````B00DZ-Y1_?^)!"3H=DL``*&`F`H(QT0D#)03"0C'1"0( -XM$````,=$)`04````B00DZ+%1_?^)!"3H24L``*&`F`H(QT0D#-03"0C'1"0( -XM$0```,=$)`04````B00DZ(11_?^)!"3H'$L``*&`F`H(QT0D#/P3"0C'1"0( -XM$@```,=$)`04````B00DZ%=1_?^)!"3H[TH``*&`F`H(QT0D#"@4"0C'1"0( -XM$P```,=$)`04````B00DZ"I1_?^)!"3HPDH``*&`F`H(QT0D#&`4"0C'1"0( -XM%````,=$)`04````B00DZ/U0_?^)!"3HE4H``*&`F`H(QT0D#)04"0C'1"0( -XM%0```,=$)`04````B00DZ-!0_?^)!"3H:$H``*&`F`H(QT0D#+04"0C'1"0( -XM%@```,=$)`04````B00DZ*-0_?^)!"3H.TH``*&`F`H(QT0D#.P4"0C'1"0( -XM%P```,=$)`04````B00DZ'90_?^)!"3H#DH``*&`F`H(QT0D#!P5"0C'1"0( -XM&````,=$)`04````B00DZ$E0_?^)!"3HX4D``,<$)`&Z"`CHU4D``*&`F`H( -XMQT0D#$P5"0C'1"0(&0```,=$)`04````B00DZ!!0_?^)!"3HJ$D``*&`F`H( -XMQT0D#'P5"0C'1"0(&@```,=$)`04````B00DZ.-/_?^)!"3H>TD``,G#B?:- -XMO"<`````58GE4XG#@^P4H8"8"@C'1"0,T!4)",=$)`@$````QT0D!!0```") -XM!"3HHD_]_XE<)`2)!"3H-DD``(/$%%M=PU6)Y5=64XG3@^P\B470C47LB47< -XMC47DB57LB4W,B474C47`!````QT78`0`` -XM`,=$)`1H/0D(B00DZ#[J___'1"0$,"H("(G'B00DZ'SP_/^+1=`/MA08@/H! -XM#X3O````H>"E"PB%P'0E#[;2ON"E"P@Y%>2E"PAT?K[@I0L(ZP4Y5@1T57B==6B<93@^PLQT7D```` -XM`,=%Z`````#'1>P`````BP"%P`^$L0```(U=Y,=$)`2PD0@(B1PDZ+'N_/^) -XM=?"+!H7`=%.-=?#K(XUV`(/X7G0EB40D!(D<).AO80``BT7P@\`$B47PBP"% -XMP'0K)?__/P"#^%QUUHDT).@.Z___@_C_=2)!"3H -XMQ?G__XD'BT7HB4<$@\0LB?A;7E]=PZ&`F`H(,?_'1"0,018)",=$)`@%```` -XMQT0D!!0```")!"3HG$S]_XD$).@T1@``@\0LB?A;7E]=PXUV`(V\)P````!5 -XMB>575E.#[%RA/&0)"(M]"(7`#X2+````C4<$B46TBU\$A=L/A,T#``"+`R7_ -XM_S\`@_@M#X6U`@``BT,$)?__/P"#^"T/A'T#``"-5PBY`0```,=%O,"K"PC' -XM1<``````QT7$`````,=%R`````#'1 -XM7UW#D(UT)@#_)(48%PD(Z`1'__^#Q%Q;7E]=P^CW2/__Z6O____'1<`"```` -XMBQJ#P0&)UH7;#X0S`P``BP,E__\_`(/X+0^%T@(``(M#!(U6!"7__S\`@_@M -XM=9*-40&-!)4`````C30'BQZ%VP^$_`(``(/"`8E5T(M%R(7`#X4=`@``BTW, -XMA*?````C478B50D!(D$).C\7@``C478B00DZ,'K_/^-5=B) -XM%"3H9NO\_XU-V(D,).@[7P``BT7<@\`!P>`"B40D!(M%V(D$).B#]___B47L -XMBT7R)!"3HQ^O\_XM%[(L0@?K_````B56X#X]T`0`` -XMBT7$A<`/A#(!``"+?R)!"3HF.'__XM% -XM[(D$).C=ZOS_Z2O^___'1<@!````D.E0_O__QT7$`0```(UT)@#I0/[__\=% -XMP`$```"-="8`Z3#^___H1D?__X/$7%M>7UW#QT6\P*0+".D7_O__QT7,`0`` -XM`.D+_O__BQ7@I0L(,=N%T@^$R?W__XVV`````(N#Z*4+"(E4)`3'!"1<%@D( -XMB40D".A&0P``BY/LI0L(@\,,A=)UV8/$7%M>7UW#QT6\P*L+",=%P`````#' -XM1<0`````QT7(`````,=%T`(```"-5>R)V.C$^___A<`/A=+^___I6OW__XD< -XM)(UT)@#HJ\3__X7`#X3:`@``BP:)!"3H26$``(E%[(D$).@::/S_B47PZ9S^ -XM__^+3="+1="+-(_!X`*%]@^$H`,``(M5M(L<`H7;#X3C`@``Z&_V__^+1>R) -XM!"3HI.G\_^GR_/__Z!KY__^+1>R)!"3HC^G\_^G=_/__@\$!B4W0Z5#]__^) -XMV.CX^/__C478B00DZ&WI_/_IN_S__[H"````L`C'1;S`JPL(QT7``````,=% -XMQ`````#'1<@`````QT7,`````.GW_/__H8"8"@@QV\=%V`````#'1=P````` -XMQT0D#&T6"0C'1"0(!@```,=$)`04````B00DZ%1(_?^)!"3H[$$``#'2#[:" -XMP*L+"#J#P*L+"'0/C4O_N,"K"PCHGOC__XG:@\,!@?L``0``==>Y_P```+C` -XMJPL(Z(+X__^A@)@*"&8QV\=$)`R$%@D(QT0D"`<```#'1"0$%````(D$).CJ -XM1_W_B00DZ()!```QT@^V@L"D"P@Z@\"D"PAT#XU+_[C`I`L(Z#3X__^)VH/# -XM`8'[``$``'77N?\```"XP*0+".@8^/__H8"8"@C'1"0,GA8)",=$)`@(```` -XMQT0D!!0```")!"3H@T?]_XD$).@;00``QP0D`````.COZO__H8"8"@C'1"0, -XMN!8)",=$)`@)````QT0D!!0```")!"3H2D?]_XD$).CB0```C478B00DZ$?# -XM___I-?O__X-[!"T/A5G^__^+0PB-@,``(U%V(D$),=$)`0;````Z.E:``"+!HU5V(D4 -XM)(E$)`3HV%H``.G7^___C578QT0D!!L```")%"3HP%H``(U-V(ET)`2)#"3H -XM(5T``.FP^___@_@_NG\````/A8O[___ICOO__Z&`F`H(BQ['1"0,S!8)",=$ -XM)`@!````QT0D!!0```")!"3H0D;]_XE<)`2)!"3HUC\``.GN_/__C47LB00D -XMZ";!___IZ?O__X-]P``/A>X```"+'>"E"PB_X*4+"(7;=17I?0$``(UV`(/' -XM#(L?A=L/A&T!``")-"3H&V```(E<)`2)!"3HNV?\_X7`==L/ME\$A-L/A)?[ -XM__^+5<@/ML.%T@^%A0(``(-]\`$/CJH"``")!"3H?]O__\=$)`@`````B40D -XM!(U%[(D$).CHWO__BT6\BU6XQ@00->E1^___BUV\`UVX@#LU#X0J`0``Q@,! -XMZ3K[__^+=R)!"3HS^C__^D2^___ -XMC4W8B70D!(D,).AK60``Z6KZ__^)-"3HFF/\_^D'^O__#XP;_O__@WW``@^/ -XM$?[__XU=Y(GPB=KH;??__X7`#X3-^O__QT0D!#`J"`B+1>2)!"3H0N;\_XM- -XMR(7)#X2L````B1PDZ,_:__^+3<")3"0(B40D!(U%[(D$).AIP/__@\`!#X0U -XM`0``BT7DB00DZ+7E_/^+5;R+3;C&!`HUBT7LB00DZ%#E_/_HV[C__^F9^/__ -XMC47LB00DZ)O`___I3OK__Z&`F`H(QT0D#/\6"0C'1"0(`P```,=$)`04```` -XMB00DZ&%$_?^)="0$B00DZ/4]``#I&/K__XU%[(D$).BEV___Q@,!B?;I`_K_ -XM_XD<).@CVO__BU7`B50D"(E$)`2-1>R)!"3H;=W__XM%N(M-O,8$`36+1>R) -XM!"3HN.3\_^D&^/__C47LQT0D!&@]"0B)!"3H\-[__\=$)`0P*@@(B<:)!"3H -XM+N7\_XL5X*4+"(72=#LQV^L-BY/LI0L(@\,,A=)T*HM%[(M-O(L`#[8$"#F# -XMY*4+"'7?B50D"(ET)`3'!"3C%@D(Z#L]``#KR8DT).A!Y/S_D.E3^?__H8"8 -XM"@B+7>S'1"0,[18)",=$)`@"````QT0D!!0```")!"3H8T/]_XE<)`2)!"3H -XM]SP``.F=_O__#("-3=B)1"0$B0PDZ'%7``#IR)!"3HPN/\_^EM_O__C47LB40D!(M-O(D, -XM).C+VO__BT6\BU6XB!P0Z;7X__^0D)"0D)"0D)"0D)"053'`B>5=PXGVC;PG -XM`````%4QP(GE7<<%_&\)"`````##D)"0D)"0D)"0D)"0D)"058M*"(GEB5`$ -XMB4@(B4((BU`(B4($7<.)]HV\)P````!5B>56B=93BPB)TX7)="60BQ.%TG0> -XM.=%T/(VV`````(/Y('0;@\`$BPB%R77RA_/^) -XMP^EX____C;8`````58GE5U93@>P<(0``C46TC5VLQT74`````,=%V`````#' -XM1=P`````QT6L`````(D$).AF9/S_QT6P`````,=$)`@`````B5PD!,<$)!0` -XM``#H1V/\_XU%X(D$).B`*O[_Z(=?_/^%P(G'#X4V`0``BT7@C5W$B00DZ*/D -XM_?_'1"0$H$$(",<$)`X```#H>V/\_XD<).@#9/S_B1PDQT0D!`X```#H`U_\ -XM_XE<)`2-G0S____'1"0(`````,<$)`(```#HE5[\_\<$)`(```#HZ6/\_XM% -XMY,=%[(````")7"0$B84`W___C47LB40D"*&T=@H(B00DZ/%A_/^#P`%T%P^V -XMA0W___\\'`^$H@$``#P"#X2:`0``Z*1G``"%P(G&='(/M@"$P'1K/#IT9\=$ -XM)`0Z````B30DZ$]@_/^%P(G#=`/&``")-"2)]^@\8?S_@\`!#X2E`0``B3PD -XMZ*MD_/^%P(G#=0OK*XVT)@`````!QXN%`-___XE<)`B)?"0$B00DZ(C@_?^% -XMP`^(8@$``"G#==S'!"0`````D(UT)@#H-V/\_XM%Y(V=#-___XD$).AJX_W_ -XMZQN%P`^$KP```(E$)`B-1=2)7"0$B00DZ%U6``"+1>#'1"0(`"```(E<)`2) -XM!"3HQN#]_X/X_W7)QT78`````,>%_-[__P$```"+1>"-=?")!"3H$N/]_^L5 -XMZ*=@_/^#.`1U*(VV`````.B[4```BX7\WO__B70D!(D\)(E$)`CH@5W\_X/X -XM_XG#=,Z-1=3'1"0$T)$("(D$).A;X/S_.=]T(HU%U(D$).BLW_S_@<0<(0`` -XM6UY?7__\`````ZX6+1?"H?W77P?@(AR_('`)",=$)!@"````QT0D -XM%`````#'1"00`````,=$)`P!!```QT0D""!P"0B)1"0$B1PDZ#]@_/_I9_[_ -XM_\<$)`$```#HWF'\_SG>#X2._O__C46,N0@```")A?C>__^+O?C>__\QP/S' -XM1>@`````\ZO'19``````QT64`0```,=%C`,```")-"3HR6+\_XG#Z(9>```Y -XMPP^#K0```(U%Z(E$)`R-18R)1"0(QT0D!`````")-"3H+&/\_X7`=$C'1>@` -XM````Z13^__^)1"0$B30DZ*3F_?_'1"0$`````(G#C47HB40D#(U%C(E$)`B) -XM'"3H\&+\_XD<)(/X`1G`(47HZ'3I__^+1>B%P`^$S?W__XM0%(72#X2R```` -XMB50D!+\@<`D(QT0D"`$$``#'!"0@<`D(Z&U=_/^+1>B)!"3H\F#\_^E:_?__ -XMC9T,W___QT0D!``!``")'"3H5V'\_X7`=:/&A0O@__\`QT0D!"X```")'"3H -XM7%W\_X7`B<=TAL=$)`0N````B30DZ$9=_/^%P`^$;O___X!X`0"-6`%T%(E$ -XM)`2)/"3HJ5[\_X7`#X45____QT0D!"X```")'"3H$5W\_X7`=<_I./___XD$ -XM).A@8/S_C70F`.G__/__C70F`(V\)P````!5B>6#[`C'!"0!````Z"I@_/^- -XMM"8`````C;PG`````%6)Y8/L&(M%"(E=](EU^(E]_(D$).BV5@``B00DZ.[E -XM_?^)QHM%#(D$).BA5@``B00DZ-GE_?^)P^B^7?S_QP``````B5PD!(DT).B< -XM7/S_BQ= -XMPY"-="8`B30DZ.CG__^)'"3HX.?__^AG7?S_BP")!"3H#5O\_\=$)`1(&`D( -XMQP0D-@```(E$)`CH2=K\_^NCC;0F`````%6)Y8/L&(M%#(/X!`^$@````(/X -XM(W0,@\`!=`?)N/_____#QT4,`````,=$)`@`````QT0D!`,```"+10B)!"3H -XM=UG\_X/X_W32@^#[B44,B40D",=$)`0$````BT4(B00DZ%59_/^#P`%TL(U% -XM#,=%#`````")1"0(QT0D!'YF!("+10B)!"3H'UK\_X/``72*R3'`PXUV`(V\ -XM)P````!5B>575E.#[!R+70B%VP^$U````(M%"(L`B47LQT0D!,28"@C'!"20 -XM+PD(Z,!#_O\]^&\)"(G#="&)!"3HZUG\_XE<)`2)1"0(BU7LB<:)%"3HAEO\ -XM_X7`=&NA`'`)"(7`B47P=%6+'21T"0@Q_XGVBW,(B70D"(M#!(E$)`2+1>R) -XM!"3H4UO\_X7`=2.+1>R-%+"+`H/X+W0$A7UW#BPT`<`D(A575E.#[!R+50B+`H/X*P^$I@```(/X+0^$G0```(L= -XM)'0)"(7;#X1F`0``H0!P"0B+-21T"0B-!$"-/(8Y_G-CBT4(BP")1?#K#HUV -XM`(7`>$R-7UW#C78`B=\Y_G*UBT4( -XMB00DZ(]1``")!"3HY]G]_X7`=1+'1>P`````BT7L@\0<6UY?7<.+0!R)!"3H -XMEE,``(D$).@^3P``A<")1>QTVXL=`'`)"(M5"(T<6\'C`HD4)`,=)'0)".@: -XM3P``B0.A`'`)"(M5[(L])'0)"(T$0(E4AP2+-0!P"0B)%"3HT57\_XT<=H/& -XM`<'C`HE$.PB)-0!P"0C'1"0,,$8(",=$)`@,````B70D!(D\).A"5/S_H0!P -XM"0@[!9A-"0@/A5G___^#P`JCF$T)"(T$0,'@`HE$)`2A)'0)"(D$).AVX___ -XMHR1T"0CI,/___\<$)'@```#H$./__Z,D=`D(Z83^__^-M@````!5B>575E.# -XM["S'1"0$Q)@*",<$)"`^"0CH\S[^_XE%W,=$)`3$F`H(QP0D8#X)".C#H4_/__PG#B47D="R+'0"8"@B%VW0B -XMB?:+0WB)-"2)1"0$Z#'6_?^%P'0'BT,4A+!H/X.W01.7T(=-^+ -XM?PB+-XL&@_@[=>^+?P@Y?0AUUX/$+%M>7UW#QP0DF#X)".@]5/S_B47HBP>) -XM!"3H,%3\_XE%[(T$A00```")1"0$QP0D`0```.A:X?__B47PBP>)1"0$BU7P -XMB10DZ`)3_/^+=>2%]@^$,P(``(L'B00DZ-'@___'1"0$%````,<$)`$```#H -XM'>'__XD'QT0D!(`R"0B)!"3HQU+\_\=$)`0,````QP0D`0```.CWX/__QT0D -XM!!@```#'!"0!````B<;HX>#__XD&QT0D!+0^"0B)!"3HBU+\_XGPB?KHYO'_ -XM_XL&BP"#^`IT$8/X.W0,BW8(BP:+`(/X"G7OQT0D!`P```#'!"0!````Z)C@ -XM___'1"0$"````,<$)`$```")P^B"X/__B0/'1"0$P#T)"(D$).@L4OS_BU8$ -XMB=CHAO'__\=$)`0,````QP0D`0```.A2X/__QT0D!`@```#'!"0!````B) -XM!"3HGM[__XM5[,<$)`$```"-!)4(````B40D!.CDWO__B0?'`"4```"+1?") -XM1"0$BP>#P`2)!"3HA%#\_XM?"(L+BP&#^#L/E<*#^`IT>X32='V#Q"Q;7E]=PXG?Z6'\__^-="8`58GE5U93@^P\QT0D -XM!,28"@C'!"3D2`D(Z#,Z_O^%P`^$[````(M%"(MX"(L'@S@[#X3C````.7T( -XM#X32````QT78`````,=%W`````#'1"0$`$D)"(L'B00DZ-U/_/^%P`^%XP$` -XM`(M7"(E5U(L2BP*#^"V)1>`/A+$```"#?>`MBW74#X3Z````BT78A`[#X2/`0``BWW4.7T(#X2#`0``BW\(BP>+`(/X.XE%X'08 -XM.7T(#X1N`0``BW\(BP>+`(/X.XE%X'7HBW\(.7T(#X4\____@\0\6UY?7<,Y -XM?0AT\XM_"(L'@S@[#X4*____Z^N+3=R%R0^%1/___XMUU(M%W(M*!(7`#Y3` -XMA)TX/Y:0^4PH/Y9HM+"`^4P`G0@^`!B47<#Y3`@\,$A"#?>`[#X5Q_O__BWW4@WW@.P^%FO[__^F2_O__A,`/A=;^__^0C70F`.GQ -XM_O__BP>+`(/X"G1Z@_@[='4Y?0AT<(G[ZPV#^#N0=#LY=0AT+XGSBU,$BT,( -XMB4((BT,(B5`$BP.)!"3H#MO__XMS"(D<).@#V___BPZ+`8/X"G7&@_@[=2:+ -XM#HM6!(M&"(E""(M&"(E0!(D,).C7<,YUG;CZ]20C70F`#'VZYS'!2AT"0C04`@(BQ.)QHM"!(7` -XM#X5/____ZX&0A?8/A'C___\IQHVV`````.EK____B<;'!2AT"0A040@(Z5K_ -XM__^-=@"-O"<`````58GE@^P(_Q4H=`D(QP0D`0```.BH_O__R<.-M@````!5 -XMB>6#[!C'!"16&`D(Z!XG``"AY)D+"(7`=`7H\$___Z&T=@H(B00DZ"/1_?_' -XM1"0(`@```,=$)`1@+@D(QP0D`"X)".CG/O[_QT0D!`````#'!"0`````QP7D -XM=0D(`0```,<%A'<*"`````#HGVW\_\G#C;8`````C;PG`````%6)Y5=64X/L -XM?*$LF0L(B00DZ#K/_?^%P(E%D`^$PP$``(MX!(7_#X2X`0``QP0D`````(UU -XM\^CE_?__QP0D"@```.B)Z?W_QT6,`````,=%M`$```"-1;R)!"3H[$_\_XU% -XMG,=%N`````")1"0(C46TB40D!,<$)`(```#HRT[\_XU%S(D$).C`3_S_C47, -XMQT0D!`(```")!"3HO4K\_XU%W(E$)`B-1!0CHE,W\_XU%W(D$),=$)`1@'@4(Z('-_/_HK$___\=$)`0" -XM````QP0D8Q@)".BXS?W_B47L@\`!#X7M````H;1V"@B)1>S'1"0$;!@)",<$ -XM)/O>"`CHD"4``.A[YOW_QP4P=`D(`````.L;#[9%\SP*="X/OL")1"0$QP0D -XM+'0)".C$0```QT0D"`$```")="0$BT7LB00DZ/W,_?^%P'_*QP0D+'0)".C] -XM0```C46TB00DZ$+,_/^+'2QT"0B)?"0$B1PDZ,Q,_/^)?"0$B00DZ%!-_/^% -XMP'1IBT60BQBA@)@*",=$)`QV&`D(QT0D"`(```#'1"0$%@```(D$).A&*_W_ -XMB5PD!(D$).C:)```@T6,`8-]C`4/A6K^___HE_W__X/$?%M>7UW#C47LQT0D -XM!$`>!0B)!"3H7,S\_^D#____B1PDZ*M/_/_'1"0$`````(D<)(E$)`CHUTO\ -XM_Z&$=PH(A2A*)H+"(E%X*$DF@L(B47"0B%P'02B00DZ/?5___'!8!>"0@`````QT7L^&\)",=$)`0,````QP0D -XM`0```.@RUO__B<:+10R)!"3H!4(``(D&@WT(`0^$``(``,=$)`0,````QP0D -XM`0```.@%UO__B<.+11")!"3HV$$``(ES!(EU](E=\(E>"(D#C47LB4,(B48$ -XMC5WLQT0D!)#I!0B)'"3H[LK\_\=$)`3$F`H(QP0D]"X)".@Z,O[_B00DZ$(P -XM_O^)'"2)1;#HA^/]_XM%],=$)`@`````B5PD!(D$).@`X/W_QT0D!$`K!@B) -XM1:R)!"3HGR)!"3HX\C\_^@^[_W_BT6PB00DZ',Q_O_'1"0(`@`` -XM`,<$)/0N"0B)1"0$Z&LY_O^#Q&!;7EW#C70F`.@K!```Z[OH!`4``*$\=`D( -XMAOIC47LB77PB77TB48$B48(Z23^__^0C70F`%6)Y8/L&(E=^(EU_(MU -XM"(,%Q*P+"`''1"0$L)`(",<$),2L"PCH]LC\_XL=0'0)"(7;=3.+#>"9"PC' -XM!4!T"0@!````AQ=Z1G(_/_' -XM1"0(U#<)",=$)`2`-PD(QP0D`@```.BM_/__QT0D#/08"0C'1"0(#@```,=$ -XM)`06````H8"8"@B)!"3H*"?]_XD$).C`(```ZY;'1"0$E'8*",<$)-0W"0CH -XM6B_^_X7`#X1Z____BQV`=PH(B70D",=$)`34-PD(QP0D`@```.A$_/__B1V` -XM=PH(Z5'___^)]HV\)P````!5B>53@^PDQT0D!+"0"`B#!<2L"P@!QP0DQ*P+ -XM".C^Q_S_H41T"0B%P'4UH>"9"PC'!41T"0@!````A"9"PC'!4QT"0@!````A6#[!C'1"0$L)`("(,%Q*P+"`''!"3$ -XMK`L(Z/_$_/^+#3QT"0B%R74LBQ7@F0L(QP4\=`D(`0```(72=&/'!"3$K`L( -XMQP4\=`D(`````.@KQ/S_R"+%0B:"PB)1=RA!)H+"(E5V(L5`)H+"(E%U*&$=PH( -XMB570BQ7`F`H(QP6$=PH(`````(E%R(E5Q.@MO_S_QP0D`)H+"(E%S.C*0/S_ -XMA<`/A)P```#'!"0!````Z&KR__^+52)%1B: -XM"PB+5>"C%)H+"(M%W(D5$)H+"(M5V*,,F@L(BT74B14(F@L(BU70HP2:"PB+ -XM1<2)%0":"PB+5?]_\<$)`````#H%43\ -XM_XM%",<%R*P+"`$```#'1"0$`0```(D$).@L\/W_A,<$)(0` -XM``")1"0$Z+6^_/_KNXUV`%6)Y8/L6(U%Z(E%Y(U5W(E%U(M%"(EU^(UUT(E= -XM](E]_(M]#(E5V(EU\(EUX(E5[,=%T/AO"0C'1>CH10D(QT0D!)1V"@B)!"3H -XM4BC^_X7`B<-T+(L`A564X/L$*%@90D(BUT(AB7E/__BT,$B00DZ/PX``") -XM!"3H-,C]_\=$)`0P*@@(B<:)!"3H`L#\_XM#"(D$).C7.```B00DZ`_(_?_' -XM1"0$,"H("(G#B00DZ-V__/^)7"0$B30DZ$&M__^)=0B#Q!!;7EWI([_\_XUV -XM`%6)Y5.#[`2A8&4)"(M="(7`=07H&)3__XU#!(E%"(/$!%M=Z=BE__^0C;0F -XM`````%6)Y8/L"*%@90D(ACLD___R>D6L/__C;8`````58GE5U93@>R< -XM````BT4(C5`$BT`$A<`/A(@%``")%"3HNVO]_XE%@(D$),=$)`3P(P8(Z#B_ -XM_/^+58"+`H7`="*#."T/A*T"``")T.L.B?:#P`2#.BT/A)L"``"+4`2%TG7M -XMQT7H`````(U-Z,=%[`````#'1?``````QT0D!+"1"`B)#"3HY;[\_XM%@(L0 -XMA=(/A`0&```Q_\>%=/___P````#'A7C___\!````ZV>)-"3HF#<``(U5B(E4 -XM)`2)!"3H)3[\_X/``0^$L@$```^W19"+G7C___\E`/```#T`0```#X2````` -XMB30DZ-Z]_/^+C73___^+18"+5(@$@\$!@X5X____`8F-=/___X72#X0Q!``` -XM,<"#/=B7"@@"B10D#Y3`B40D!.C1COS_QT0D!#`J"`B)QHD$).@OOOS_B30D -XMZ,/POC5#\#X5:____.=8/A%+____'0/P`````Z4;___\YO73___]T -XM,H7_#X4:!```QT0D#`````"+A73___\I^(E$)`B+58#'!"3X;PD(C02ZB40D -XM!.BL;?[_BY5T____A=)T%HM-@(M!!(7`=`S'!"0*````Z!S9_?^)="0$QP0D -XMJQ@)".CL%0``QT7L`````(L&AB+1>R#Z@2-!(*!."\``$`/A,@```"- -XM3>C'1"0$+P```(D,).@9,```C47HB00DZ&XP``"-5>C'1"04`````,=$)!#X -XM;PD(QT0D#`````#'1"0(_P\``,=$)`0`````B10DZ#N._O^+O7C___^)^^EH -XM_O__Z/4\_/\YO73___^+&'0RA?\/A7\#``#'1"0,`````(N%=/___RGXB40D -XM"(M-@,<$)/AO"0B-!+F)1"0$Z(UL_O^)'"3H83K\_XET)`3'!"2B&`D(B40D -XM".CA%```B[UX____B?OI_OW__\<`+P```.E+____H91W"@B%P`^%)0,``*&` -XM7@D(AB)4`B)1>R)%"3'1"0$D.D% -XM".C/NOS_C47HQT0D"`````")1"0$BT7PB00DZ`70_?_'1"0$0"L&"(G#B00D -XMZ*.Z_/^+-8!>"0B%]G0,QP0D````0.B=M_S_BQ74EPH(,<#'1"00`````,=$ -XM)`P`````QT0D"`````"%T@^?P(/H`0G"B50D!(D<).A7!/[_C57HB10DZ*RY -XM_/^+#91W"@B%R0^%2`$``(M%@(D$).B3N?S_@<2<````6UY?7<.-5>B)%"3H -XM?;G\_SG[=-N%_P^%+`$``"G[QT0D#`````")7"0(BTV`QP0D^&\)"(T$N8E$ -XM)`3HS6G^_^NMQP5$3`D(>````.D,_O__QP0D"@```.A`U?W_Z=7[__^-7>C' -XM1>@`````QT7L`````,=%\`````")'"3HZRP``(D<),=$)`2PD0@(Z)NY_/^) -XM'"3'1"04`````,=$)!#X;PD(QT0D#`````#'1"0(_P\``,=$)`0`````Z*N* -XM_O^)'"3HP[C\_X'$G````%M>7UW#QP0D"@```.B\U/W_Z7#\__^#!<2L"P@! -XMQT0D!+"0"`C'!"3$K`L(Z"RY_/_IN_S__\=$)`0,````QP0D`0```.CSP___ -XMQP0D@$P)"(G#Z,4O``")7PB)>P2)WXD#Z;#]___'!"3$K`L(Z$JX_/_II_[_ -XM_\<$)`H```#H2=3]_^G#_O__C57HB10DZ"FX_/_IAO[__XUT)@!5B>575E.# -XM["R+10C'1>@`````QT7L`````,=%\`````"%P`^$\````(MP"#G>```` -XMBT`$.?")1>`/A-<```#'1=@`````C7WHQT7<`````(M%##E%W'QXBU40.57< -XM?W"+'HL#ASKZ(U%Z(D$).B<*@``@\0L6UY?7<.-="8`58GE@^P8BT4(QT0D"/___W_' -XM1"0$`````(D$).BO_O__R<.-M@````"-O"<`````58GE5U93@^PLQP0DL!@) -XM".AG,_S_A<")1>0/A.8!``"+1>3'1"0$+P```(D$).A)-OS_AB+7>@/M@/'1?``````A,!T+HL5W%T)"(L-X%T)"(GV#[;`.=!] -XM!_9$@35`=1*#1?`!BW7PBUWH#[8$'H3`=>"+=>0/M@;'1>P`````A,!T+XL5 -XMW%T)"(L-X%T)"(UV``^VP#G0?0?V1($U0'42@T7L`8M=[(MUY`^V!#.$P'7@ -XMH3QW"@@QVX7`#X3=````BQT`F`H(A=L/A,\```#'1>``````ZPJ+&X7;#X2Y -XM````BT,8.T,<=>Z+0PPE'R```#T`(```=`J#^`)T!8/X$'75BT-XB00DZ/0N -XM``")QP^V`(GZA,!T)(L-W%T)"(LUX%T)"`^VP#G(?0?V1(8U0'4*@\(!#[8" -XMA,!UZ,8"`(G^QT0D!"\```")/"3H[#3\_X7`=`.-<`&+1>R+5>2)="0$B40D -XM"(D4).A_,OS_A"#Q"R)V%M>7UW#BT7PBU7HB70D!(E$)`B)%"3H,#+\_X7` -XM#X42____ZZO'1>1-&PD(C78`Z2C^___'1>B^&`D(Z5#^__^0D)"0D)"0D)"0 -XMD)"0D)!5N@$```")Y8/L"(M-"/?!```@`'4J,-*%R70D@?G_````=SRAX%T) -XM"(M$B#2)PH'B````X'0-P>H>C;8`````R8G0PR4```0`@_@!&<"#R`&)PL'Z -XM'\GWTB'"B=##B?:)#"3HY#'\_^O#C;8`````58GE5U93@^P,BT4(BQB%VP^$ -XMI0```(L]X%T)"(G&ZRKWPP```$!U&('[_P```'=CBT2?-/;$$'5GC;0F```` -XM`(M>!(/&!(7;='&+10R%P'3/]\,```!`=>>!^_\```"0=T^+1)\T9H7`>=6! -XM^_\```!W4HN7UW#B1PDZ$$Q -XM_/_VQ!!TH('[_P```'6#[!B)=?R+=0B)7?CWQ@`` -XM(`!T$;O\____B=B+=?R+7?B)[%W#B30DZ(#^__^%P(G##XZ[````]\8```!` -XM==J!_O\````/AYD```"AX%T)"(M$L#3VQ`)TP(GP)?__/P`]_P```'^R@?[_ -XM````#X>/````H>!="0B+1+`TJ0``!`!T!XM5#(72=(^!_O\````/AWP```"A -XMX%T)"(M$L#3VQ`)T#HGP)?__/P`]_P```'YP@?[___\`N_G___\/CU;___^! -XM_O__``"S^@^/2/___X'^_P```+/[#XXU____Z37___^)-"3H#3#\_Y#I8O__ -XM__?&````0'6XC78`Z67___^)-"3H[R_\_XUV`.EJ____B30DZ-\O_/^-=@#I -XM??___X/^"KO]____#X3I_O__,=N#_@D/E<.#ZP+IV?[__XVV`````(V\)P`` -XM``!5B>575C'V4X/L#(M5"(L"AH> -XM@\,$`=:%P'7<@\0,B?!;7E]=PY"-="8`B00DZ#0O_/_KSI"0D)"0D%6)Y5W# -XMD)"0D)"0D)"0D)"A4'0)"#D%5'0)"%6)Y700#[95"(@0@\`!7:-0=`D(P\8` -XM`%W#C70F`(V\)P````!5B>575E.)RX'LC````(E%A`^V`H3`#X0(`0``B56, -XMQT6L`````.LD#[;`"T6LB00D_U6$B5W0@T6,`8M5C`^V`H3`#X3;````BUW0 -XM/"5UV(-%C`&+58P/M@+'19P`````/"T/A',!```\,`^$O@```#PNQD6;(`^$ -XML@```#PJD`^$OP````^VT(/Z?W<.]@25O5$)"`0/A?T$``#'1:``````/"X/ -XMA+0```#'1:3___]_,?\\(P^$;@$``#'2/&P/A#P!```QR3QZ#X0A`0``#[;` -XM@_A3B464="6#^%%T(#L%W%T)"'T8H>!="0B+=91F@WRP-``/B$$!``"-="8` -XMBT64@^@E@_A3#X;&````@T6,`8M5C(E=T`^V`H3`#X4E____@<2,````6UY? -XM7<.#18P!BTV,#[8!QD6;,#PJ#X5!____BS.#PP2#18P!BU6,B76@#[8"/"X/ -XMA4S___^#18P!BTV,#[8!/"H/A'0$```/MM"#^G\/AR[____V!)6]40D(!`^$ -XM(/___XM%C(D$).C&*_S_BU6,B46D#[8"#[;0@_I_=A_I!O___XUT)@"#18P! -XMBTV,#[8!#[;0@_I_#X?L_O__]@25O5$)"`1UX.G=_O___R2%P!D)"(/"`8E5 -XMC`^V`L=%G`$```#I>/[__X-%C`&Q`8MUC`^V!NG._O__@T6,`8M5C`^V`KH! -XM````/&P/A:W^__^#18P!L@*+38P/M@'IG/[__X-%C`%FOP$`BW6,#[8&Z7_^ -XM__^+A+`T!```N@$```")193IK_[__XUS!(EUT(L;A=N)79`/A`$$``")'"3H -XM`"W\_XM]H"G'BT6FW^O__C477B85X____B47,B1PDB70D!,=$)`@*````QT0D -XM#`````#H738``(M-S(/`,(@!@\$!B1PDB70D!,=$)`@*````QT0D#`````") -XM3)A7C___^)QXD<)(ET)`3'1"0("@```,=$)`P````` -XMZ&XX``"#P#"(!X/'`8D<)(ET)`3'1"0("@```,=$)`P`````Z&HZ``"#^@") -XMPXG6?[=\!8/X`'>PBUVHA=N0C70F`'0&Q@/___W;IBT6/___XE5S(M5S(G8@^`'#ZSS`X/`,,'N`XGQB`*# -XMP@$)V8E5S'7@A?]T&8MUS,8&,(/&`8GP*X5X____B77,Z7/\__^)T"N%>/__ -XM_^EF_/__C5,$B570BP.)QHG#P?X?Z7K^__^-0P0Q]HE%T(L;Z1?\__^-2P2) -XM3="+`\=%J`````")QHG#P?X?A?8/B5S^___WVX/6`/?>QT6H`0```.E)_O__ -XMJ0```$`/A&OZ__^+A7S___^)!"3_583I6OK__XU-V.LA@\`PB$'_B4W,B?*) -XMV`^LT`2#P0'!Z@2)PXG0B=8)V'05B=B#X`^#^`E^U8/`5XA!_XE-S.O3A?]U -XM$XM%S(U5UXF5>/___RG0Z:3[__^+3/___^F"^___B6#[`B+10B+ -XM312+51"C4'0)"`-%#(/H`:-4=`D(N+!M"`CH%_;__Z%0=`D(Q@``@\`!HU!T -XM"0C)PY"-="8`5;@@.P8(B>6+50B+30Q=Z>SU__^-M@````"-OP````!5N"`[ -XM!@B)Y8/L&(M5"(U-#(E-_.C']?__R<.0C70F`%6)Y8/L&(M%"(U-%(M5$(E- -XM_*-0=`D(`T4,@^@!HU1T"0BXL&T(".B4]?__H5!T"0C&``"#P`&C4'0)",G# -XMD)!5B>5=QP6`=`D($!L)",<%A'0)"!0;"0C'!8AT"0@8&PD(QP6,=`D('!L) -XM",<%D'0)""`;"0C'!91T"0@D&PD(QP68=`D(*!L)",<%G'0)""P;"0C'!:!T -XM"0@P&PD(QP6D=`D(-!L)",<%J'0)"#@;"0C'!:QT"0@\&PD(QP6P=`D(0!L) -XM",<%M'0)"$0;"0C'!;AT"0A(&PD(QP6\=`D(3!L)",<%P'0)"%`;"0C'!<1T -XM"0A4&PD(QP7(=`D(6!L)",.-M@````"-O"<`````58GE5U8Q]E.#["R+10R+ -XM.(D\).@$)/S_C02%!````(D$).BIL?__QT7P`````(E%[.L6H>!="0B+1)`T -XM]L0%=06#^U]U4H/&`8M%[(/'!(T$L(E%X(L?BT7L@>/___\_A?:)'+!U!8/[ -XM>W06#[;3@?K_````=KR)%"3H'2/\_Y#KNH/'!(L?@>/___\_B1C'1?`!```` -XMZ]2+1>#'``````"+5?"%TG00BP2+1`$$A -XM7UW#@\<$Z3;___^+1>R)!"3HTU#^_X7`=#"+$(72=,:)PX/Z"G07@_H-=!*+ -XM10@+51")!"2)5"0$Z*L7``"+4P2#PP2%TG7:ZYR+10R).(M%[(D$).@OK___ -XM,<#KG8UT)@"-O"<`````58GE5XG'5HG.4XG3@^P<@#H`="^-1?")7"0$QT0D -XM"`8```")!"3H!1\``(D\)`'#B?`+1?")1"0$Z$(7``"`.P!UT8/$'%M>7UW# -XMD(UT)@!5B>575E.#[$R+10S'1>``````QT7D`````,=%Z`````")1?"-112) -XM!"3H;2+\_\=$)`2PD0@(B47`C47@B00DZ`ND_/^+5?"+`H7`#X28````QT6\ -XM`````.M.D(UT)@"#?0@"#X3Y````H029"@C'!"0]W`@(@\`!B40D!.B>^___ -XMB<.+3;R)VHU%X.@?____B1PDZ#>N__^+1?"-4`2)5?"+0`2%P'1!@_@E=&6# -XM^%P/A)P```"#^%X/A),````[!8R8"@ATF`M%O(U5X(E$)`2)%"3H5A8``(M% -XM\(U0!(E5\(M`!(7`=;^-1>")!"3H"Z/\_XU5X(D4).BPHOS_C47@B00DZ$46 -XM``"#Q$Q;7E]=PXM:!(U*!(7;=*.)3?"+6@2-0]^#^%UV4H/[80^$`0<``(M% -XMO(/()8E$)`2-1>")!"3HYQ4``(M%\(L`Z77___^-1?")!"3HDI___^EE____ -XMBT48QP0D:````(E$)`3H^E;]_XG#Z0?_____)(5D&PD(@66\____^XM%\(GV -XMZ0?___^!3;P````$BT7PD.GW_O__BU6\BT7`QT0D!`(```")5"0(NA^%ZU&+ -XM2!2)R/?JB")%"2)PXE$)`3HM1<` -XM`.FA_O__BU7`BTV\BT(0BQ2%@'0)"(U%X.BH_?__BT7PZ8S^__^!9;S____? -XMBT7PZ7W^__^!9;S____WBT7PZ6[^__^#?0@!#X1W"```QT0D!,28"@C'!"2D -XM+PD(Z&0)_O\]^&\)"'0DBQ"%TG0>B<,+5;R-1>")!"2)5"0$Z,,4``"+4P2# -XMPP2%TG7DBT7PZ1W^__^#?0@!#X0*"```QP0D7!L)"#'VZ-4=_/^)PX7;=3OK -XM0)"#?0@!=`0\+G0UC57LB5PD!,=$)`@&````B10DZ!\<```!PXM%O`M%[(E$ -XM)`2-1>")!"3H6!0```^V`X3`=<&%]G24B30DZ.6K__^+1?")]NFG_?__@WT( -XM`0^$>@<``,=$)`3$F`H(QP0DO"X)".B="/[_/?AO"0@/A%G___^+$(72#X1/ -XM____B<,+5;R-1>")!"2)5"0$Z/03``"+4P2#PP2%TG7DZ2S___^A`)@*"+K_ -XM____AO(@4V\````((M%\.F3 -XM_/__@4V\````"(M%\.F$_/__@WT(`@^$IP8``(M-$(7)#X1*_O__BTV\C47@ -XMBU40Z'7[__^+1?#I6?S__X-]"`$/A+@%``#'!"1<&PD(Z!,<_/^)PX7;=`V+ -XM3;R)VHU%X.A$^___@WT(`0^%`?[__^D6_/__@4V\````$(M%\.D2_/__BT7` -XMBU@(QT0D!,28"@C'!"1@/`D(Z*P&_O^%P`^$L@0``(/["P^.YP,``(/[#+]P -XM````C78`?@.#ZPR+5<"+0@2%P`^%L`,``(M%"`L%:'0)"`^$=P,``,=$)`3$ -XMF`H(QP0D0$8)".A:!O[_BU6\B1PDB50D"(/X`1G`]]"#X`*)1"0$Z`W$__^) -XMPXE$)`2-1>")!"3H?!0``(D<).BDJ?__BW6\C57@B10D@\XZB70D!.CO$0`` -XMBU7`BT6\QT0D!`(```")1"0(BT($B00DZ,+#__^)PXE$)`2-1>")!"3H,10` -XM`(D<).A9J?__BT7PBP"#^'`/A"P$``"#^%`/A",$``#'1"0$Q)@*",<$)&`\ -XM"0CHK@7^_X7`#X3K`P``B?H/OL(+1;R)1"0$C47@B00DZ&\1``"+1;R#R&WI -XM__K__\=$)`3$F`H(QP0D]"X)".C0!?[_/?AO"0@/A(S\__^+$(72#X2"_/__ -XMB<,+5;R-1>")!"2)5"0$Z"<1``"+4P2#PP2%TG7DZ5_\__^#^V,/A-D#``#' -XM1"0$Q)@*",<$)&0S"0CH>P7^_SWX;PD(B<)/6!T"0C'!"1@=`D(Z$+! -XM__^C9'0)"*%D=`D(AL.@_@O#Y3`@\8$#[;``<&+ -XM!H7`=>R$TG0*,<"#/R\/E<`!P8M%\,=%Q`````"#P`2#.#`/A/4!``"+5?"# -XMP@2)5="+`KH!````B47,@^@Q@_@(=PR+5OV__^-5>")%"2)="0$Z'`-``"+1;R+5<#'1"0$`@```(E$)`B+ -XM`HD$).A$O___B<.)1"0$C47@B00DZ+,/``")'"3HVZ3__^F4^___LRZ-="8` -XMZ1S\__^+51C'1"0$30```(D4).C((```B")!"3HQ@P``(M#!(/#!(7`=>3I7?S__XM5&,=$)`1L````B10D -XMZ%0@``")P^GQ]?__BT48QT0D!&T```")!"3H.B```(G&B") -XM%"2#R#R)1"0$Z!0,``"#?<@)#XZ!````BT6\@\@YB40D!(U%X(D$).CU"P`` -XMBT6\C57@B10D@\@KB40D!.C@"P``BT6\C57@B10D@\@^B40D!.C+"P``Z")!"3HI@L``(L$G0A#"0B%P'7@ -XMBT7PQP5H=`D(`0```.GU]/__BT7(@\`P"T6\B40D!(U%X(D$).AQ"P``ZX_K -XM#9"0D)"0D)"0D)"0D)!5B>575E.#[!R+=0B+?0S'!"0`````Z`$4_/^#_@*) -XM1?`/A)0!``"#_@,/A'8!``"#_@$/A+T```#'1"0$Q)@*",<$)*@R"0CHD__] -XM_X/^`8G##XZT````H2QW"@B)!"3HFZ+__\=$)!``````BT7PQP4L=PH(```` -XM`(E\)`B)7"0$B40D#,<$)`````#HGO/__XL]Y)D+"(7_HRQW"@AU,HL0A=)T -XM&XG#C;0F`````(D4).@XM?W_BU,$@\,$A=)U[L<$)`````#H$EC__^CML/W_ -XMH7B9"PB)!"3H(*+__X7VQP5XF0L(`````'0O@\0<6UY?77UWI&K#]_XL=<'0)"(7;=":+/6QT -XM"0CIG?[__\=$)`3$F`H(QP0D`#,)".@1_OW_B"0B%P'02B00DZ&^@___'!8!> -XM"0@`````BT7")6`B)0P2+=P2#QP2)7>"%]G7*B=B- -XM5>2)4`B+5=R)1>B+`J/,=`D(BT((B00DZ$29_?^+1=R)!"3HZ9___XU5Y(D4 -XM),=$)`20Z04(Z%:5_/^-1>2)!"3H"Z[]_XM%[(U5Y(E4)`3'1"0(`````(D$ -XM).B!JOW_QT0D!$`K!@B)PXD$).@?E?S_BPV`7@D(A_?^-1>2) -XM!"3H-I3\_XL5S'0)"(72B57<=`R+0@0[1?`/C+W^__^+%81W"@B%TG0)H3AW -XM"@B%P'0>QP4X=PH(`````,<$),2L"PCH])/\_X/$+%M>7UW#Z+<6___H4C?_ -XM_XGVZ,LW___HQD?__^O*C70F`.B;%?__H!(7;#X2C`@`` -XMC58(B57@BP.#^"T/A,@!``"+=@B%]@^$>0,``*D```!`#X0Y`0``@_@K=`S' -XM!"1L````Z`&1_/^#PP2^`0```(D<).C!#```B00DZ&4/_/^)QXL#AR)5"00B70D#(E$)`B+1=S'!"0#````B40D!.BU[/__B1PDB<;H -XM6Y#\_\=$)`0P*@@(B30DZ.N0_/^+!H7`=!>)\XUV`(D$).CXK?W_BT,$@\,$ -XMA5=QP74=`D(`0```,.058GE7<<%V'0)"`$```## -XMD%6)Y5W'!=QT"0@!````PY!5B>6+10A=BP"CQ*P+",.058GE@^P(HL& -XM@\`$@\$$BQ&%TG0/.Q!T\(L+A6+10B+`(E%"%WI;YC__^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(L`B44( -XM7>E/F/__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+=0B+7@2%VW07,=N+!HL$ -XMF(/#`8D$).@7>D'F/__C;0F`````%6)Y8/L -XM&(E=^(G#B77\BT`(B=8[0P1T&(M3!(L#B320BUWXBW7\B>Q=PXVV`````(7` -XM=1_'0PA`````BT,(P>`"B40D!(L#B00DZ-&8__^)`^O%`<")0PCKX8VV```` -XM`%6)Y5.#[`2+70B+50R)V.B,____@T,$`8/$!%M=PXGV58GE4X/L%(M=",=$ -XM)`0`````B1PDZ,;___^+0P3!X`*)1"0$BP.)!"3HDR____B?95B>6#[!B)7?B)PXEU_(M`"(G6.T,$ -XM=!B+$XGQBT,$B`P"BUWXBW7\B>Q=PXUT)@"%P'453@^P$BUT(#[Y5#(G8 -XMZ(O___^#0P0!@\0$6UW#D%6)Y5.#[!2+70C'1"0$`````(D<).C&____BT,$ -XMB40D!(L#B00DZ*67__^#Q!1;753@^P4BUT(B=CHC?___XM#!(/``<'@`HE$)`2+ -XM`XD$).CVEO__@\046UW#58GE4X/L!(M="(M5#(G8Z%S___^#0P0!@\0$6UW# -XMB?95B>564X/L$(M="(MU$(M3"(GP`T,$.<)S.H72=16#^$!FN@`!QT,(0``` -XM`'86ND````")\`'2`T,$B5,(.=!W\L'B`HE4)`2+`XD$).A^EO__B0.+0P2- -XM%+4`````P>`"`P.)5"0(BU4,B00DB50D!.AF#?S_`7,$@\006UY=PU6)Y5.# -XM[!2+70R)'"3H.@C\_XE<)`2)1"0(BT4(B00DZ%O___^#Q!1;7<.0C70F`%6) -XMY593@^P0BUT(BW40BU,(B?`#0P0YPG,UA=)U$X/X0+)`QT,(0````'83ND`` -XM``")\`'2`T,$B5,(.=!W\HE4)`2+`XD$).C3E?__B0.+4P2+10P#$XET)`B) -XM1"0$B10DZ,4,_/\!)\I"-="8`BP*# -XMP@2%P'7WN/S___\IV"GP`<@!T(D$).C2E/__B=J)QXG!BP*#P@2)`8/!!(7` -XM=?*)\HL"@\($B4'\@\$$A6#[!B)7?B+70R)=?R+=0CWPP``(`!T%H@>N@$```"+7?B)T(MU_(GL7<.- -XM=@")7"0$B30DZ'`*_/^#^/]TV87`N@$```!^UXM=^(G"BW7\B>R)T%W#D(VT -XM)@````!5,<")Y5=64X/L#(M]"(7_#X21````BS7D=`D(A?8/A,$```"+'>1T -XM"0B#QP2)W@,UX'0)".L#@\<$BT?\A=\NAX'0)"(/H@*/@=`D(@\`&B40D!*'D -XM=`D(B00DZ$.3__^)Q@,UX'0)"*/D=`D(C5Z`ZYC&`P"AY'0)"(/$#%M>7UW# -XMH>!T"0B#Z("CX'0)"(/`!HE$)`2AY'0)"(D$).@`D___B<8#->!T"0BCY'0) -XM"(U>@.EM____QP7@=`D(@````,<$)(8```#HA9+__Z/D=`D(Z1____^-="8` -XMC;PG`````%4QP(GE5U93@^P,BWT(A?]T>:'L=`D(A(L=['0)"(G>`S7H -XM=`D(ZPB0C70F`(/'!(L'AAT -XM"0B#Z("CZ'0)"(/`!HE$)`2A['0)"(D$).A/DO__B<8#->AT"0BC['0)"(U> -XM@.NMQ@,`H>QT"0B#Q`Q;7E]=P\<%Z'0)"(````#'!"2&````Z,>1__^C['0) -XM".EH____C;8`````C;PG`````%6X!````(GE5U93@^P,BUT(BPN%R70:,,"- -XMM"8`````@\`!BQ2#A=)U]HT$A00```")!"3H=Y'__XG'BP.)_H7`=!^)!"3H -XM]?[__XD$).@MCOW_B0:+0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT -XM)@````"-O"<`````58GE@^PXBT40B77XBW4(B5WTB7W\B40D"(M%#(DT)(E$ -XM)`3HA`/\_X7`B<-^+(L&B40D!(U%[HE%X(D$).BZ!_S_.<-U#XMU##G;B=F+ -XM?>#\\Z9T!;O_____B=B+=?B+7?2+??R)[%W#C;0F`````%6)Y8/L&(E=^(M% -XM$(EU_(M=#(MU"(E$)`B)7"0$B30DZ&O___^#^/]T%X7`N@$```!^`HG"BUWX -XMB="+=?R)[%W#QT0D"`````#'1"0$`````,<$)`````#HWP+\_P^V`[H!```` -XM#0``(`")!HM=^(G0BW7\B>Q=PY"-M"8`````53'`B>564X/L((M="(7;=%'' -XM!?1T"0@`````@#L`=#&-=?2)7"0$QT0D"`8```")-"3H2?___\<$)/!T"0@! -XMPXM%](E$)`3HA/?__X`[`'72QP0D\'0)".C3]___H?!T"0B#Q"!;7EW#C;0F -XM`````%6X!````(GE5U93@^P,BUT(BSN%_W0:,,"-M"8`````@\`!BS2#A?9U -XM]HT$A00```")!"3HEX___XG'BP.)_H7`=!^)!"3H1?___XD$).CM^O__B0:+ -XM0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT)@````"-O"<`````58GE -XM5U93@^P,BT4(BQB%VP^$FP```(L5X%T)"(G'B57PZS*+5?"!_O\```"+E)HT -XM!```B57L=TB+5?"+A+(T!```.47L=4:#10P$BU\$@\<$A=MT7(M%#(LP.?-T -XMZ8'[_P```':]B1PDZ+X"_/^!_O\```")1>QVOXVT)@````")-"3HI`+\_SE% -XM['2ZA=N0=#2%]KH!````="$Y1>R)]G0SBU7L@\0,6UY?72G"B=##BT4,,=*+ -XM`(7`=0J#Q`R)T%M>7UW#@\0,NO____];B=!>7UW#B=HI\NOAD)"0D)!5B>56 -XM4X/$@,<$)$`Q"0CH["[^_\<$)"0Q"0B)QNC>+O[_QP0D9#$)"(G#Z-`N_O^% -XMVP^$J`$``(7V#X21`0``A<`/A'\!``")7"0_/^)!"3H2?O__\=$)`3$F`H(QP0DO$@)"(G#Z"/G_?^%P'0. -XMBP"%P'0(BP"%P'0"B<.)="00BT9$QT0D"`````")7"0$QP0D`0```(E$)`SH -XMGMO__\=$)`0P*@@(B<:)!"3HW'_\_XL&AR\````@ST`=0D(`<=$)`2PD`@(QP0DQ*P+"`^4P(F%3/___X,%Q*P+"`'H -XM9W_\_\=$)`3$F`H(QP0DO$`)".A3YOW_A<`/A((```"+`(7`B850____=':+ -XM?0B%_P^$:0$``,>%4/___P`````QVXU%[(D$).BY^OO_BU7LB=`K!01U"0@Y -XMPW\NC85@____B14$=0D(B40D!,<$))0="0CH;O[[_X7`=#"+=0B%]@^$>@$` -XM`(UV`,<$),2L"PCH-'[\_X'$O````%M>7UW#BT4(A0C70F`(G>BQZ%VP^$Y0```(U%P(E$)`2-1BK'1"0("``` -XM`(D$).C&^OO_@_@`?-4/A<````"+7>@[7D1\AXGZA-*-=@`/A6`#``")7D3' -XM1D@"````Z6O___^+A5#___^[6`(``(D$).AH%?W_BY50____B10DZ,I[_?^H -XM`0^$>O[__XN54/___XL"B00DZ+*'_?^%P`^$8O[__XN54/___XL"@\($B950 -XM____B00DZ.'B_?]KV#SI0?[__\=$)`S('0D(QT0D"`$```"A@)@*",=$)`0: -XM````B00DZ/3;_/_'1"0$E!T)"(D$).B$U?__Z4_^___'1"0$3````,<$)`$` -XM``#H^X?__XU5P(E4)`3'1"0("````(G#C4`JB00DZ*O[^_^-1=B)1"0$C4,S -XMQT0D"!````")!"3HD?O[_XM%Z(E#1(!]R`!U&<=#2`(```"+1@2),XE#!(D8 -XMB5X$Z6#^__^-5_S_BT4(A<`/A:?]__^+A5#___^%P`^$F?W__XN]4/___X/'"(M' -XM^(7`#X2%_?__BQ"%T@^$>_W__XM?_(7;#X1P_?__BS.%]@^$9OW__\=$)`3D -XM+@D(B00DZ"+Y^__'A4C___\`````A<`/A'L!``"+-2!U"0B+!H7`=13IL0`` -XM`(UV`(LVBQZ%VP^$H@```/9&2`AU[HM?^,<$).0N"0B)7"0$Z-?X^_^%P'0? -XMC48(B00DZ.SV__^)7"0$B00DZ``O_?^%P`^$[0```(U&*HM?_(D$).C*]O__ -XMB5PD!(D$).C>+OW_A<`/A*L```"+1DBH$'01H01U"0B)1D2+1DB#X.^)1DBH -XM`G1>@'X(`'18BX5,____A<`/A/````"#3D@(QD8(`(LVBQZ%VP^%7O___XN- -XM2/___X/'"(7)#X3A_O__Z6S\__^+70B%VP^%8?S__\=$)`SP'0D(QT0D"`(` -XM``#IT_W__Z@!=0BH!`^$$/___XN%3/___X7`=&*-1AF)1"0$C48(B00DZ.#^ -XM^_^#3D@(Z>O^__^+1_S'!"3D+@D(B40D!.C4]_O_A<`/A=#^___I-?___XU& -XM&8M?^(D$).C=]?__B5PD!(D$).CQ+?W_A<`/A*G^___I[/[__XGPB?;H._K_ -XM_^N3QT0D!.0N"0B)'"3HA??[_X7`#Y3`#[;`B85(____Z6+^__^)\.@/^O__ -XMZ03___^-1@B)1"0$C47(QT0D"!````")!"3H+/?[_X7`=0^)7D3'1D@)```` -XMZ>W[__^-557,?]64X/L#,=$)`3$F`H(QP0DO"X)".@QX?W_B00DZ*GR -XM___'!"0!````B<;H&_K__XL=('4)"(L#AS/&0P@`BQN+`X7`==[HB/C__X/$#(GX6UY?7<.-M"8`````C;PG```` -XM`%6)Y5=64X/L+(M=#(MU"(U#LX/X(78IQP0D`P```.B=A/__B!= -XM"0AF@WR.-`!Y"`^VA(XT!```B`,/MD(!@\,!@\(!A,!UTL8#`.E2____C48J -XMB44(@\0L6UY?7>FA@/W_@'XS``^$&P$``(U>,XD<).C(^_O_@\`!B00DZ+&# -XM__^)QP^V1C,/MM"#^G\/AB\!``#'1>0N````A,")_G12BQ7<70D(B57H#[[` -XM.T7D#X2R````#[8#/#H/MM`/A(\````Y5>A^&XL-X%T)"&:#?)$T`'D-A=)X -XM!XN4D30$``")T(/#`8@&#[8#@\8!A,!UM\8&`.FG_O__BT9(@^`'@_@"#X0- -XM`0``@_@$#X3*````@^@!#X6__O__H8"8"@C'1"0,HAT)",=$)`@)````QT0D -XM!!H```")!"3H4M;\_^D-____C489Z07___^0C70F`+HZ````QT7D`````(UT -XM)@#I7/___XD<),=$)`0Z````Z$?V^_^%P(G##X4T____Z6S___^A@)@*",=$ -XM)`Q1#@D(QT0D"`P```#'1"0$&@```(D$).CGU?S_B44(@\0L6UY?7>E(?_W_ -XMC48(Z9#^___V!)6]40D(!,=%Y``````/A"0CHGO'__\<$)``Q"0B)1"0$Z'[H_/_'!"2P'@D(Z(+Q -XM___'!"0D,0D(B40D!.ABZ/S_QP0DJ!X)".AF\?__QP0D9#$)"(E$)`3H1NC\ -XM_\<$)+8>"0CH2O'__\<$)$`Q"0B)1"0$Z"KH_/_)PY"0D)"0D)"058GE@^P8 -XMB5WXBUT,B77\BQ7,=0D(BW4(A=)T)*'0=0D(A<`/A(P```")70R+7?B)=0B+ -XM#=1U"0B+=?R)[%W_X<<%S'4)"`$```#'1"0$`0$``,<$)+L>"0CH[OG[_X7` -XMH]!U"0AT3L=$)`3''@D(B00DZ"7T^_^CU'4)",=$)`32'@D(H=!U"0B)!"3H -XM"_3[_Z/LK`L(QT0D!-@>"0BAT'4)"(D$).CQ\_O_H_"L"PCI=/___XM=^+C_ -XM____BW7\B>Q=PY"0D)"0D)"0D)"0D%6)Y5=6@^PPBT40BU44BW4(BWT,B47L -XMB<&)5>B+1>C'1=``````QT74`````(GZB77DA<")=?")?>!U%#GY=F")\/?Q -XMB570QT74`````.L0BTW@.4WH=AB)==")?=2)]HM%T(M5U(/$,%Y?7<.-=@`/ -XMO47H@_`?B478=4:+1>@Y1>`/A\D```"+3>PY3>0/@[T```"+3?")5=2)3=#K -XMP9"+1>R%P'4,N`$````QTO=U[(G!BT7@BU7H]_&+1>3W\>N"N"````"+5>PK -XM1=B+=>R+?>2)P8E%W-/JBT7H#[9-V-/@"<*+1>33Y@^V3=R)5?2+5>#3Z`^V -XM3=C3X@G0BU7@T^"+1>0K1>P;5>B)1?#I+____SGX=K``````BW4,QT7D`````(E%](G!BT4(A=*)UXE%['4C.?$/AI@```")\O?Q -XMB<$QP(E-X(E%Y(M%X(M5Y(/$(%Y?7<,Y\@^'M0````^]PH/P'XE%Z`^$E@`` -XM`+@@````BU7T*T7HB<'3Z@^V3>B)1?")^(M]]-/@"<*+1>S3YP^V3?")5=R) -XM\M/H#[9-Z-/B#[9-\`G0T^Z)\O=UW(G1B778B478]^QS%(UT)@`QR3'`Z2?___^-M"8` -XM````N0$````QP.D4____BT7L#[9-Z-/@.<9VAXM-V#'`@^D!Z?K^__^0D)"0 -XMD)"0D)"058GE5U:#[%"+30R+512+11#'1;@`````A@]<`]]_I!O____?:@]$`]]G'1<#_____Z>C^__^X(````(M5W"M%R(G! -XMT^H/MDW(B474B?B)UXGRT^`)QXM%W-/@#[9-U(E%K(M%V-/H#[9-R-/B"="+ -XM5=C3X@^V3=2)5>2)\M/J]_>)UO=EK#G60IP1G6BG^__\[1>1VI2M%K!GZZYZ0D)"0 -XMD)"0D)"0D)"0D%6)Y5=6@^PPBU4,BT4(BW40BWT4B570`````#XBD````A?\/B+H```")UXG&BU78B<&+ -XM1=R%_XE5\(E%['44.<9V08G0BU7L]_:)P3'`ZQ.-=@`[?>QV3S'),<"-M"8` -XM````B4W0BTWDB474BT70BU74A7UW#A?9U"[@!```` -XM,=+W]HG!BT7LB?KW\8G&BT7P]_&)P8GPZ[P/O<>#\!^)1>AU1#E]['<%.77P -XM3_____#XE+____D(UT)@")\(GZ -XM]]B#T@#WVO=5Y.DS____N"````")\BM%Z(G!T^H/MDWHB47TB?B)UXM5[-/@ -XM"<>+1?#3Y@^V3?33Z`^V3>C3X@^V3?0)T(M5[(E%S-/J]_>)553@^P$H1A/"0B#^/]T$C';_]"+@Q1/"0B#ZP2#^/]U\(/$!%M= -XMPY"0D(/L#.B\\_O_@\0,PP```````````````````````````````"1&'0@87)G=6UE;G0@"BUD"0EL;V%D(&1I2!S=&%C:R!F2D@"BUI"0EI;G1E6YT87@@;V8@=&AE(&9O;&QO=VEN9R!@9FEL92<@"BUQ"0EA8V-E<'0@ -XM4TE'455)5"!F;W(@&5C=71I -XM;VX@"BU8"0EL:6ME("UX(&)U="!I;F-L=61I;F<@8V]M;6%N9',@&ET(`H*4V5E('1H92!T8W-H*#$I(&UA;G5A -XM;"!P86=E(&9O2!I9@!);7!R;W!EF5D`"5S(&YO="!F;W5N9`!);7!R;W!E6YT87@`3F\@:&]M92!D:7)E8W1O0!$:7)E8W1O0!5`!%>'!A;G-I;VX@8G5F9F5R(&]V97)F;&]W`%9A`!"860@(2!F;W)M`$YO('!R979I;W5S('-U8G-T:71U=&4`0F%D('-U -XM8G-T:71U=&4`3F\@<')E=FEO=7,@;&5F="!H86YD('-I9&4`4FEG:'0@:&%N -XM9"!S:61E('1O;R!L;VYG`$)A9"`A(&UO9&EF:65R.B`E8P!-;V1I9FEE2`I)W,`5&]O(&UA;GD@*"=S`$)A9&QY('!L86-E9"`H`$UI0``07)G=6UE -XM;G0@9F]R("UC(&5N9',@:6X@8F%C:W-L87-H````07)G=6UE;G1S('-H;W5L -XM9"!B92!J;V)S(&]R('!R;V-E6YC(&9A=6QT.B!065T*0```%5S86=E.B!H:7-T -XM;W)Y(%LM)7-=(%LC(&YU;6)E2!A2!F:6QE(&YO="!E>&5C=71A8FQE``!5;FMN;W=N(&]P=&EO;CH@ -XM8"TE%@@72!;(&%R9W5M -XM96YT("XN+B!=```*36ES"4P.'@*`"5D(&AI=',L("5D(&UI!0CO6@4([UH%".]:!0CO6@4([UH%".]:!0CO -XM6@4([EX%"`=?!0@@7P4(.5\%"$-?!0A<7P4([UH%".]:!0CO6@4(:U\%"'I? -XM!0BS7`4([UH%"*%>!0BU7@4([UH%".]:!0C.7@4([UH%"-]>!0CO6@4([UH% -XM".]:!0CO6@4(ZUT%"%);!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4( -XMCEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B. -XM6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(2UL%"(Y:!0@I6P4(CEH%"(Y: -XM!0@B6P4(UUH%"`<`#0`````````````````````````````````@````)P`` -XM`"(````)````.P```"8````\````/@```"@````I````?````%X````E```` -XM`````'1CF4`=FUE;6]R>75S90!D97-CF4`)6IO8B`F`"5J;V(``"5S -XM.B`E6!0@ME@4(&98%"`^5!0@/ -XME@4(!98%"`^5!0@/E04(#Y4%"`^5!0@/E04(#Y4%"`^5!0C[E04(#Y4%"`^5 -XM!0@/E04(\94%"`^5!0CGE04(#Y4%"-V5!0ACF@4(0YH%"(B9!0B(F04((YH% -XM"(B9!0B(F04(B)D%"(B9!0B(F04(\9D%"-&9!0B(F04(B)D%"(B9!0A#F@4( -XM;)L%"&R;!0C%G`4(H)P%"&>;!0ALFP4(YYL%"&R;!0BG -XMFP4(@)T%"&R;!0ALFP4(2)T%"&R;!0ALFP4(YYL%"'1C&-E<'1I;VX`2TE,3`!+:6QL960`55-2 -XM,0!5&ET960`24\`07-Y;F-H&-E961E9`!81E-:`$9I;&5S:7IE(&QI;6ET(&5X -XM8V5E9&5D`%9404Q230!6:7)T=6%L('1I;64@86QA0!B&5C`&5X:70`9F<`9FEL -XM971E0!O;FEN='(`<&]P9`!P&5S -XM=6P`+20J`"@]?@!>*BTE)'M].B,`.EXD*BTE`````&YC:&%R^04(N@(&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``& -XM"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8( -XMI``&"*0`!@B:`@8(I``&"*0`!@B:`@8(I``&"*0`!@BD``8(I``&"*0`!@A\ -XM`@8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0` -XM!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@B:`@8(]1(&")42!@B5$@8(UPH& -XM"-<*!@C7"@8(UPH&")42!@C7"@8(UPH&"&T2!@C7"@8(UPH&"-<*!@C7"@8( -XMUPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8(UPH&"-<*!@C7 -XM"@8(UPH&"!(2!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<* -XM!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH& -XM"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8( -XMF0T&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<- -XM!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT& -XM"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08( -XM%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(T0T&"!<-!@@7#08(T0T&"!<- -XM!@@7#08(%PT&"-$-!@@7#08(%PT&"!<-!@BP$`8(IQ`&"-$-!@@>#P8(T0T& -XM"-$-!@@7#08(%PT&"*<0!@AW:61E7W)E860`.R8*`#P^*"D`)74E=0`E9#H` -XM"`A)W@@(3-X("$_>"`A%R0@(`````&YO="!A -XM(&1I0!U;G)E861A8FQE``HE4R`E0!"860@='=?8V]M;6%N9`H`:71E;7,`)7,Z($EN=&5R;F%L(&UA=&-H -XM(&5R!0<(G@4'"#P#!PB,`P<(QP,'"``````````` -XM````````````````@+X&"/#%!@C`NP8(H,4&"("^!@B`O@8((+X&"*#%!@A@ -XMNP8(D+L&","[!@C`NP8(`+L&"#"[!@C0N@8(H+H&"'"Z!@B`O@8(@+X&""#% -XM!@@`````````````````````P,`&",#`!@C`P`8(0,4&",#`!@C`P`8(P,`& -XM"$#%!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8( -XMP,`&"(#$!@@`````````````````````T,$&"/#"!@BPO08(4,4&"-#!!@C0 -XMP08(L+T&"%#%!@BPO08(L+T&"."Y!@A`O08(X+P&"+#)!@B`O`8(\+L&"&"Y -XM!@C0P08(T,$&")#$!@@*)7,@:6YT97)N86P@97)R;W(Z($D@9&]N)W0@:VYO -XM=R!W:&%T($DG;2!L;V]K:6YG(&9OF4M=V]R9`!C:&%N9V4M -XM8V%S90!C:&%N9V4M=&EL;"UE;F0M;V8M;&EN90!6:2!C:&%N9V4@=&\@96YD -XM(&]F(&QI;F4`8VQE87(M&-H86YG -XM92UP;VEN="UA;F0M;6%R:P!%>&-H86YG92!T:&4@8W5R'!A;F0@=F%R:6%B;&5S`&9O2US96%R8V@M8F%C:W=A2US96%R8V@M9F]R=V%R9`!I;G-E"UM971A`'%U;W1E9"UI;G-E2!E=F5R -XM>71H:6YG`')U;BUF9RUE9&ET;W(`4F5S=&%R="!S=&]P<&5D(&5D:71O<@!R -XM=6XM:&5L<`!S96QF+6EN2!D96QA>65D -XM('-U2UF;'5S:"UO=71P=70`5'1Y(&9L=7-H -XM(&]U='!U="!C:&%R86-T97(`='1Y+7-I9VEN='(`5'1Y(&EN=&5R2US -XM:6=T'0M=V]R9`!V:2UA9&0`=FDM -XM861D+6%T+65O;`!V:2UC:&"!C;VUM86YD`'9I+65N9'=O6%N:P!Y86YK+7!O -XM<`!E7V-O<'E?=&]?8VQI<&)O87)D`&5?<&%S=&5?9G)O;5]C;&EP8F]A5]P`!$ -XM96QE=&4@8VAA2!L:6YE````1&ES<&QA>2!L;V%D(&%V97)A9V4@86YD(&-U -XM&5C=71E(&-O;6UA;F0@86YD(&ME97`@ -XM8W5R'0@:&ES=&]R>2!L:6YE````17AP86YD('!A=&AN86UE7!E9"!T;R!T:&4@;&EN92!V97)B871I;0```$QO;VL@9F]R -XM(&AE;'`@;VX@8W5R&EC86P@8W5R -XM7!E -XM9`!6:2!R97!L86-E(&-H87)A8W1E6%N:V5D('1E>'0@=VET:"!Y86YK(&9R;VT@96%R;&EE -XM2D@4&%S=&4@8VQI<&)O87)D -XM(&)U9F9E'0@=V]R9"!T;R`G7%PG```H5TE.,S(@;VYL -XM>2D@0V]N=F5R="!E86-H("`!K;0!A;0!X;@!C;P!L:0!A9&0@ -XM;F5W(&)L86YK(&QI;F4`8FP`875D:6)L92!B96QL`&-L96%R('1O(&)O='1O -XM;0!C;&5A7-I8V%L('1A8G,`3G5M8F5R(&]F(&QI;F5S`$YU;6)E0!Y97,`8F%U9`!C;VQS``EF;VQL;W=I;F<@8VAA -XM3H@3G5L;"!E>'1E;F1E9"UK97D@;F]T(&%L;&]W960N -XM"@!!9&18:V5Y.B!.=6QL(&5X=&5N9&5D+6ME>2!N;W0@86QL;W=E9"X*```` -XM`$%D9%AK97DZ('-E<75E;F-E+6QE860M:6X@8V]M;6%N9"!N;W0@86QL;W=E -XM9`H``$]C=&%L(&-O;G-T86YT(&1O97,@;F]T(&9I="!I;B!A(&-H87(N"@`E -XM+3$U4RT^(`!N;R!I;G!U=`!3;VUE=&AI;F<@;75S="!F;VQL;WUU]`%5N8F]U;F0@97AT96YD960@:V5Y("(E4R(*``"5'0@(E1T( -XM")4="`B5'0@(E1T(")4="`B5'0@(E1T("-@<"`C8'`@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8 -XM'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@< -XM"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("(4="`C8'`@(V!P( -XM"-@<"`C8'`@(=1T("&4="`C8'`@(V!P("%4="`A%'0@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("#4="`C8'`@(V!P("-@<"`@G'0@(V!P("!L="`C8 -XM'`@(#QT(".D6"0A5;FMN;W=N('-W:71C:``E&%N>0!I>&]F9@!I;6%X8F5L`&ED -XM96QE=&4`;W!O'0`"5L>"!T;R`P>"5L>"`H)6QD*2X*`$]U="!O9B!M96UO -XM7,@=&\@96UA8W,@ -XM8FEN9&EN9W,*````("`@("UD("`@8FEN9"!A;&P@:V5Y4UA<%LE9%T@/3T@)60*`$-C06QT36%P6R5D -XM72`]/2`E9`H`3G5L;"!S=')I;F<@2!B:6YD:6YG,@@(7C(("%XR"`A>,@@(.#0("(HT -XM"`A>,@@(7C(("%XR"`A>,@@(7C(("$4T"`A5-`@(7C(("%XR"`AE-`@(Y#<( -XM"%@W"`A8-P@(O3<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("(8W"`A8-P@( -XM6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(73<("%@W"`A8 -XM-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`CD-P@(6#<("%@W -XM"`B]-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(AC<("%@W"`A8-P@(6#<( -XM"%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A=-P@(2!A;&EA($("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@( -XMBWP(""R!"`CJ?P@(BWP("-M_"`AX@0@(S8(("(M\"`B+?`@(BWP("(M\"`B+ -XM?`@(BWP("(M\"`C`@@@(HW\("(M\"`B+?`@(ZG\("(M\"`AX?P@(:7\(".I_ -XM"`A:?P@(BWP("$!_"`B+?`@("'\("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(^7X("'B!"`C9?@@(BWP("(M\"`B+?`@(98,("(M\"`BK?@@( -XMBWP("%5^"`C??0@(CGT("(M\"`CJ?P@(BWP("(M\"`A_?0@(ZG\("'!]"`B+ -XM?`@(4'T("(M\"`@%?0@(BWP("/5\"`B+?`@(Y'P("'B!"`@L9FEL96,`+&-O -XM;&]R`"QR:``L'`@)``` -XM``$;`SMP+@``!````#"+__^,+@``H(S__ZPN``#PC?__S"X``!"0___L+@`` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````!%R0@(`````"1/"0@````` -XM`````````````````````$`H(RD@0V]P>7)I9VAT("AC*2`Q.3DQ(%1H92!2 -XM96=E;G1S(&]F('1H92!5;FEV97)S:71Y(&]F($-A;&EF;W)N:6$N"B!!;&P@ -XM"0@D-@D(`@````````````````````````#X;PD( -XM``````````````````````````````````````!``$``0`!``$``0`!``$`` -XM0!1`&$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!` -XM`$`4``"``8`0@("``(`0H`&`$*`0@""``(``@`"``(``@``1`!$`$0`1`!$` -XM$0`1`!$`$0`1`(`0H!"``(`0@""``(``%@`6`!8`%@`6`!8`!@`&``8`!@`& -XM``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&((!`@`"``(``@#*``!H` -XM&@`:`!H`&@`:``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`* -XM``H`"B"`$*``@`"``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$`` -XM0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``(``@`"``(``@`"` -XM`(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(`` -XM@`"``(``@``&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`& -XM``8`!@`&``8`@``&``8`!@`&``8`!@`&``H`"@`*``H`"@`*``H`"@`*``H` -XM"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*`(``"@`*``H`"@`*``H`"@`* -XM`````"_*"`@!````[\D("`$````WR@@(``0``/?)"`@"````0,H("``$``#W -XMR0@(`P```$G*"`@`!```]\D("`0```!3R@@(``0``/?)"`@%````80("'#D"`@%````<.0("`4````F````YQP)"$7)"`@`````10("`(````]````Q!X)"'GD"`@%```` -XM>>0("`4````^````)/$("'GD"`@%````>>0("`4````C````?^0("(+D"`@% -XM````@N0("`4````E````G]$("(+D"`@%````@N0("`4````J````.K\("(CD -XM"`@%````B.0("`4`````````CN0("*^^"`@!````K[X("`$`````````D>0( -XM"*^^"`@!````K[X("`$`````````E.0("$7)"`@`````10("$7)"`@`````1!PA@3P<(`$\'"/`J!PAP,`<(8"D'",`O!PCP/`<( -XM("P'"#`L!PA`+`<(4"P'"&`L!PAP+`<(P"H'"*`Z!PAP,0<(<#\'""!0!PB@ -XM,0<(P"L'"&`F!PC@30<(H$T'"+`I!PBP40<(,%$'"&!W!PAP=0<(('8'"+`V -XM!PC0,`<(D#`'"!!H!PB03@<(,%$'"#`Q!PA0*P<($"L'".!.!PB0*P<(H$\' -XM",!/!PCP+P<(8$<'"!!*!P@`+`<(@"<'",!R!PC0)P<(\"<'"%`H!P@04@<( -XM@'0'"`!T!P@0.@<(<"@'"*`L!P@@90<(L#D'"(`X!PB@8P<(P"P'"'!`XX&@$/`1````7````"T````E```````` -XM`"(````G````8`````````````````````````````````````````#@3`D( -XM$0```````````````````-1,"0@5````````````````````]$P)"!,````` -XM```````````````(30D(%````````````````````)`O"0@2```````````` -XM````````($T)"``````````````````````;````3P```$8`````````&P`` -XM`$\```!(`````````!L```!/````1``````````;````3P```$,````````` -XM&P```$\```!"`````````!L```!/````00`````````;````6P```$8````` -XM````&P```%L```!(`````````!L```!;````1``````````;````6P```$,` -XM````````&P```%L```!"`````````!L```!;````00`````````````````` -XM`'P-"0@``0``P````(,-"0@#````0````(H-"0@``````````)$-"0C*!0`` -XM$`B`@)@-"0@``````````'P-"0A``0``@````(,-"0@#````0````(H-"0@` -XM`````````)$-"0B`````'`V`@)@-"0BP\;\!`````'P-"0@```````8``(,- -XM"0@``````````(H-"0@``````````)$-"0@`````@`0``)@-"0@````````` -XM`````````````````&P```!O````9P```&\```!U````=``````````````` -XM80```'4```!T````;P```&P```!O````9P```&\```!U````=``````````V -XM````,````````````````````&$```!U````=````&\```!M````80```'0` -XM``!I````8P````````!H````80```&X```!G````=0```'``````````80`` -XM`"X```!O````=0```'0`````````=````'0```!Y`````````"\```!P```` -XM=````',````O`````````&$```!N````>0````````!S````=````&$```!T -XM````=0```',`````````,``````````Q`````````"T````Q```````````` -XM````````````````````````,````'@````W````9@```&8```!F````9@`` -XM`&8```!F````9@`````````Z`````````%\`````````=````&,```!S```` -XM:`````````!H````;P```&T```!E`````````'4```!S````90```'(````` -XM````9P```'(```!O````=0```'``````````=````&4```!R````;0`````` -XM````````````````````````````````````````=@```&4```!R````0```````````````````````````````````&,```!A````=````&$` -XM``!L````;P```&<`````````3@```$P```!3````4````$$```!4````2``` -XM``````!N````;P```&L```!A````;@```&H```!I`````````'X````O```` -XM+@```&,```!S````:````&0```!I````<@```',````````````````````` -XM``````````````!D````:0```'(```!S````9@```&D```!L````90`````` -XM````````````````````````````````````````0```'P```!N````?````&4```!\````80```"D````_ -XM``!`(```````````````=0```&X```!A````;````&D```!A````````'0```!R````80```&,` -XM``!T``````````````````````````````````````````````!D````=0`` -XM`&X```!I````<0```'4```!E`````````',```!Y````;0```&P```!I```` -XM;@```&L```!S`````````&D```!G````;@```&\```!R````90````````!C -XM````:````&$```!S````90````````!E````>````'````!A````;@```&0` -XM````````````````````````90```&,```!H````;P```%\```!S````=``` -XM`'D```!L````90````````!B````P````````![````(````"X````N````+@```"````!]```` -XM`````'T`````````4````$$```!4````2```````````````9````&4```!F -XM````80```'4```!L````=``````````M````;@`````````M`````````&X` -XM``!O````9P```&P```!O````8@``````````````````````````````;@`` -XM`&\```!N````;P```&T```!A````=````&,```!H```````````````````` -XM`````````````````````&`````@````+@```"X````N````(````&`````` -XM````80```&T```!P````;0````````!T````:0```&T```!E`````````&X` -XM``!O````=````&D```!F````>0`````````````````````````````````` -XM````````````<````'(```!I````;@```'0```!E````>````&D```!T```` -XM=@```&$```!L````=0```&4`````````*````"``````````(````"D````` -XM````(``````````@````?````'P````@`````````"`````F````)@```"`` -XM````````(````'P````@`````````#L````@`````````#L`````````(@`` -XM`"(`````````6P```%T`````````(````#P````\````(``````````@```` -XM/````"``````````(````#X````^`````````"`````^`````````#X````` -XM````(````"X````N````+@`````````E````)0`````````E````*P`````` -XM```E````+0`````````E````(P`````````````````````````````````` -XM`&,```!O````;@```'0```!I````;@```'4```!E```````````````````` -XM``````````````````````````!C````;P```&X```!T````:0```&X```!U -XM````90```%\```!A````<@```&<```!S`````````%\```!P````80```'4` -XM``!S````90````````!@````<````'<```!D````8`````````!F````:0`` -XM`&P```!E````8P`````````````````````````````````````````````` -XM:````&D```!S````=````&,```!H````80```'(```!S```````````````` -XM`````````````````````````'````!R````;P```&T```!P````=````&,` -XM``!H````80```'(```!S``````````````````````````````!H````:0`` -XM`',```!T````;````&D```!T`````````%4```!3````10```%(````````` -XM````````````````3````$\```!'````3@```$$```!-````10````````!' -XM````4@```$\```!5````4````````````````````'<```!O````<@```&0` -XM``!C````:````&$```!R``````````` -XM``!L````:0```',```!T````;````&D```!N````:P```',`````````1``` -XM`$D```!.````1P```"$`````````````0``````````````````````````` -XM``````````!C````;P```'(```!R````90```&,```!T`````````&,```!M -XM````9`````````!A````;````&P`````````90```'(```!A````````1`````@````(```````` -XM``H````H;FEL*0```!0``````````7I2``%\"`$;#`0$B`$``!P````<```` -XMG%S__W`!````00X(A0)"#05%A@2'`P``'````#P```#L7?__1@$```!!#@B% -XM`D(-!46&!(<#```<````7````!Q?__\2`@```$$."(4"0@T%188$AP,``!P` -XM``!\````'&'__X!`@BG@0(,IX$"$*>!`A2G@0(8IX$"'*>!`B" -XMG@0(DIX$"**>!`BRG@0(PIX$"-*>!`CBG@0(\IX$"`*?!`@2GP0((I\$"#*? -XM!`A"GP0(4I\$"&*?!`ARGP0(@I\$")*?!`BBGP0(LI\$",*?!`C2GP0(XI\$ -XM"/*?!`@"H`0($J`$""*@!`@RH`0(0J`$"%*@!`ABH`0(6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G!L=``N=&5X -XM=``N9FEN:0`N6YA;6EC`"YC=&]Rtcsh.uu << 'e0b48b8aefb9960c9da54cac18bdcb01' -Xbegin 644 tcsh -XM?T5,1@$!`0D```````````(``P`!````(*0$"#0```"HVP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(7)\$ -XM`%R?!``%`````!````$`````H`0``"`)"``@"0AT,0``](P"``8`````$``` -XM`@```$#.!`!`3@D(0$X)"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&0PGP0`,!\)"#`?"0@L````+`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*`````(``````````````"9````.0````````!1```` -XME@````````"#````G````',```",````2@```%X`````````4@````````") -XM````E```````````````<@```)\```!G`````````'H```!F````C@```$X` -XM``"'````%`````0`````````1`````,`````````#@```$(```"&````=P`` -XM````````````%P```)L```"-````-`````````!D`````````)X````````` -XM*P````````!V````;`````````!-````DP````````!%````?@```#L````` -XM````D0`````````W````````````````````)0````````!P`````````#`` -XM``!A````BP`````````V````20````````!M````E0````````!?````?0`` -XM`&D`````````:P````````!0````8@```'\````M````>``````````````` -XM``````````!6`````````&\```""````:@```)@```!&````,@````````!U -XM````6P````````":````3````(H````*````A0```````````````````)`` -XM``!8````;@```)T````8`````````(0```"2````5P```(`````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````$0````8```````````````````````````````$``````````@`````` -XM```>````````````````````#```````````````)@````<````I```````` -XM```````G`````````"X````<`````````"`````C```````````````-```` -XM+P`````````D````%@``````````````````````````````/0````4````H -XM`````````#4````9````00``````````````````````````````$P```$@` -XM`````````````````````````````````````````````#H````````````` -XM`$`````X`````````!`````)````7````"(````_````&@````````!@```` -XM`````````````````````&@`````````5````"$```!9`````````!(````` -XM```````````````=``````````\````;````+`````````!Q`````````$<` -XM```Q``````````````!Y````8P``````````````6@```!4```!\````*@`` -XM````````````B````$L`````````=`````L```"!`````````!\```!#```` -XM,P```&4```![`````````$\```!3````70```#P`````````CP````````"7 -XM````50```#X`````````````````````````I`0````````S````$@```)$$ -XM````````,P```!(```"T`@```````$,````2````$0````````"U````$@`` -XM`(P"`````````````!(```"2`@```````"L````2````RP,````````R```` -XM$@```&\!````````*````!(```"Y`@`````````````2````2@$````````` -XM````$@```#0!````````:P$``!(```#K!````````#@````2````:0$````` -XM``#]"```$@```!D```!`3@D(`````!$`\?_W`@`````````````2````I0(` -XM````````````$@```"(`````````U`,``!(```"#`0```````#,````2```` -XMU`0`````````````$@```'L"````````(P```!(````+!0`````````````2 -XM````$@0````````=````$@```#0#`````````````!(````K`0```````!T` -XM```2````B@0`````````````$@````,"````````5P```!(```#(```````` -XM`#D````2````?@$``,"N!@C>!```$@`,`"`#````````E````!(```#(`@`` -XM`````#D````2````100`````````````$@```"@`````````E@```!(```"2 -XM`0`````````````2````80(```````!S````$@```.$!``"`40D(!````!$` -XM%P#:```````````````2````?0,````````<````$@```#L!```````````` -XM`!(````'!``````````````2````!P$```````!/````$@```.0$```````` -XM<@```!(```#!`P````````4````2````"P0```````!.!0``$@```%P#```` -XM````W0,``!(```#!```````````````2````(@(```````#8````$@```#$` -XM```(FP0(`````!(`"@!)`@`````````````2````HP,`````````````$@`` -XM`+`#````````,P$``!(````-`@`````````````2````M@$````````+```` -XM$@```&\$````````*@```!(```";```````````````2````X``````````` -XM````$@```)<"``#8=0D(!````!$`%P!#`P```````$T````2````2P,````` -XM````````$@```+,"````````*P```!(```#$!``````````````2````YP`` -XM``````#&!```$@```"P#````````(0(``!(```#9`0```````!4"```2```` -XM`P`````````````2````9@0```````!9 -XM````$@```%(#`````````````!(```"0`P`````````````2````=P,````` -XM```[````$@```!0#````````>````!(```#"`0```````$P````2````10`` -XM`/RP"`@`````$@`-`,X"````````C`(``!(```#:`@```````!`````2```` -XM_0(````````E`0``$@```/X#````````'0```!(```#:!````````.T````2 -XM````0@$`````````````$@```#X#`````````````!(```!D`P``X%T)"`0` -XM```1`!<`^P`````````E````$@```",!`````````````!(````\`@`````` -XM`&<````2````[@$```````!?````$@```)X$`````````````!(```!*!``` -XM,*<&"&,````2``P`%0(````````_````$@```)\$````````0P```!(```"H -XM`0```````,,````2````J@(```````!4````$@```!<%``!T40D(`````!`` -XM\?_0```````````````2````EP,```````!#````$@```*\!````````,P`` -XM`!(```!W`0`````````````2````2P```"Q/"0@`````$0#Q_QL$```````` -XM@0```!(````J!0``]*P+"``````0`/'_``4`````````````$@```(`$```` -XM````5P```!(````N!````````&(#```2````]0$```````!A````$@```$X$ -XM````````DP```!(```"7`0`````````````2````)P0````````K````$@`` -XM`&(!`````````````!(```"K!````````!P````2````M`0````````````` -XM$@```$0$`````````````!(````;`0`````````````2````RP0```````"C -XM````$@```.<#````````4@```!(````;`P`````````````2````>`0````` -XM````````$@```!`!````````B@```!(```"Z```````````````2````4P0` -XM``````#($0``$@```&$``````````````"````#+`0```````(H````2```` -XMOP(```````!,````$@```(D!`````````````!(````\`P```````"@````2 -XM````=0`````````4`0``$@```(("`````````````!(```"?`@`````````` -XM```2`````&QI8FYC=7)S97,N@<```(`+P4```````"`40D(!2,``(A1"0@%20`` -XMW%T)"`5?``#@70D(!7(``#A/"0@'`0``/$\)"`<"``!`3PD(!P,``$1/"0@' -XM!```2$\)"`<%``!,3PD(!P8``%!/"0@'!P``5$\)"`<(``!83PD(!PD``%Q/ -XM"0@'"@``8$\)"`<+``!D3PD(!PP``&A/"0@'#0``;$\)"`$\)"`<2``!\3PD(!Q,``(!/"0@'%```A$\)"`<5``"(3PD( -XM!Q8``(Q/"0@'%P``D$\)"`<8``"43PD(!QD``)A/"0@'&@``G$\)"`<;``"@ -XM3PD(!QT``*1/"0@''@``J$\)"```"04`D(!V```)10"0@'80`` -XMF%`)"`=B``"<4`D(!V,``*!0"0@'9```I%`)"`=E``"H4`D(!V8``*Q0"0@' -XM9P``L%`)"`=H``"T4`D(!VD``+A0"0@':P``O%`)"`=L``#`4`D(!VT``,10 -XM"0@';@``R%`)"`=O``#,4`D(!W```-!0"0@'<0``U%`)"`=S``#84`D(!W0` -XM`-Q0"0@'=0``X%`)"`=V``#D4`D(!W<``.A0"0@'>0``[%`)"`=Z``#P4`D( -XM!WL``/10"0@'?```^%`)"`=^``#\4`D(!W\```!1"0@'@```!%$)"`>!```( -XM40D(!X,```Q1"0@'A0``$%$)"`>&```440D(!X<``!A1"0@'B```'%$)"`>) -XM```@40D(!XH``"11"0@'BP``*%$)"`>,```L40D(!XT``#!1"0@'C@``-%$) -XM"`>/```X40D(!Y```#Q1"0@'D0``0%$)"`>2``!$40D(!Y,``$A1"0@'E``` -XM3%$)"`>5``!040D(!Y8``%11"0@'EP``6%$)"`>9``!<40D(!YH``&!1"0@' -XMFP``9%$)"`><``!H40D(!YT``&Q1"0@'G@``<%$)"`>?``"#[`SHX`D``.B[ -XM%00`@\0,PP```/\U,$\)"/\E-$\)"`````#_)3A/"0AH`````.G@_____R4\ -XM3PD(:`@```#IT/____\E0$\)"&@0````Z<#_____)41/"0AH&````.FP____ -XM_R5(3PD(:"````#IH/____\E3$\)"&@H````Z9#_____)5!/"0AH,````.F` -XM_____R543PD(:#@```#I````.GP_O___R5X3PD(:(````#IX/[___\E?$\)"&B(````Z=#^____ -XM)8!/"0AHD````.G`_O___R6$3PD(:)@```#IL/[___\EB$\)"&B@````Z:#^ -XM____)8Q/"0AHJ````.F0_O___R603PD(:+````#I@/[___\EE$\)"&BX```` -XMZ7#^____)9A/"0AHP````.E@_O___R6<3PD(:,@```#I4/[___\EH$\)"&C0 -XM````Z4#^____):1/"0AHV````.DP_O___R6H3PD(:.````#I(/[___\EK$\) -XM"&CH````Z1#^____);!/"0AH\````.D`_O___R6T3PD(:/@```#I\/W___\E -XMN$\)"&@``0``Z>#]____);Q/"0AH"`$``.G0_?___R7`3PD(:!`!``#IP/W_ -XM__\EQ$\)"&@8`0``Z;#]____)!/"0AH4`$``.E`_?___R7D3PD( -XM:%@!``#I,/W___\EZ$\)"&A@`0``Z2#]____)>Q/"0AH:`$``.D0_?___R7P -XM3PD(:'`!``#I`/W___\E]$\)"&AX`0``Z?#\____)?A/"0AH@`$``.G@_/__ -XM_R7\3PD(:(@!``#IT/S___\E`%`)"&B0`0``Z<#\____)010"0AHF`$``.FP -XM_/___R4(4`D(:*`!``#IH/S___\E#%`)"&BH`0``Z9#\____)1!0"0AHL`$` -XM`.F`_/___R444`D(:+@!``#I%`)"&B``@``Z>#Z____)7Q0"0AHB`(``.G0^O___R6`4`D(:)`"``#I -XMP/K___\EA%`)"&B8`@``Z;#Z____)8A0"0AHH`(``.F@^O___R6,4`D(:*@" -XM``#ID/K___\ED%`)"&BP`@``Z8#Z____)910"0AHN`(``.EP^O___R684`D( -XM:,`"``#I8/K___\EG%`)"&C(`@``Z5#Z____):!0"0AHT`(``.E`^O___R6D -XM4`D(:-@"``#I,/K___\EJ%`)"&C@`@``Z2#Z____):Q0"0AHZ`(``.D0^O__ -XM_R6P4`D(:/`"``#I`/K___\EM%`)"&CX`@``Z?#Y____);A0"0AH``,``.G@ -XM^?___R6\4`D(:`@#``#IT/G___\EP%`)"&@0`P``Z<#Y____)<10"0AH&`,` -XM`.FP^?___R7(4`D(:"`#``#IH/G___\ES%`)"&@H`P``Z9#Y____)=!0"0AH -XM,`,``.F`^?___R744`D(:#@#``#IA0"0AH8`,``.D@^?___R7L4`D(:&@#``#I$/G___\E\%`)"&AP`P``Z0#Y -XM____)?10"0AH>`,``.GP^/___R7X4`D(:(`#``#IX/C___\E_%`)"&B(`P`` -XMZ=#X____)0!1"0AHD`,``.G`^/___R4$40D(:)@#``#IL/C___\E"%$)"&B@ -XM`P``Z:#X____)0Q1"0AHJ`,``.F0^/___R4040D(:+`#``#I@/C___\E%%$) -XM"&BX`P``Z7#X____)1A1"0AHP`,``.E@^/___R4<40D(:,@#``#I4/C___\E -XM(%$)"&C0`P``Z4#X____)211"0AHV`,``.DP^/___R4H40D(:.`#``#I(/C_ -XM__\E+%$)"&CH`P``Z1#X____)3!1"0AH\`,``.D`^/___R4T40D(:/@#``#I -XM\/?___\E.%$)"&@`!```Z>#W____)3Q1"0AH"`0``.G0]____R5`40D(:!`$ -XM``#IP/?___\E1%$)"&@8!```Z;#W____)4A1"0AH(`0``.F@]____R5,40D( -XM:"@$``#ID/?___\E4%$)"&@P!```Z8#W____)511"0AH.`0``.EP]____R58 -XM40D(:$`$``#I8/?___\E7%$)"&A(!```Z5#W____)6!1"0AH4`0``.E`]___ -XM_R5D40D(:%@$``#I,/?___\E:%$)"&A@!```Z2#W____)6Q1"0AH:`0``.D0 -XM]____R5P40D(:'`$``#I`/?__P````!5B>564X/L$(/D\(M=!(G1C72=#(7; -XMB378=0D(?C:+10B%P'0OHP`@"0@/MA"$TG0C@\`!ZPH/MA"#P`&$TG04@/HO -XM=?&C`"`)"`^V$(/``832=>RX0$X)"(7`=#2)#"3H5_[__\<$)/RP"`CH2_[_ -XM_^AR]O__C44(B70D"(E$)`2)'"3HYQL``(D$).A+_?__Z-;X___KS9"0D)"0 -XMD)"058GE@^P(@#WD70D(`'0,ZQR#P`2C""`)"/_2H0@@"0B+$(72=>O&!>1= -XM"0@!R<.058GE@^P(H2A/"0B%P'02N`````"%P'0)QP0D*$\)"/_0R<.0D)"0 -XMD)"0D)"0D)"058GE@^P8Z%77``#'!>AV"@@`````QT0D!!````#'!"0````` -XMZ->``0"CM'8*",=$)`@!````QT0D!`(```")!"3HUO;__\=$)`01````QP0D -XM`0```.BF@`$`H\R7"@C'1"0(`0```,=$)`0"````B00DZ*7V___'1"0$$@`` -XM`,<$)`(```#H=8`!`*,$=@H(QT0D"`$```#'1"0$`@```(D$).AT]O__QT0D -XM!!,```"AM'8*"(D$).A#@`$`HT29"PC'1"0(`0```,=$)`0"````B00DZ$+V -XM__^A!'8*"(D$).A%_/__H_R9"PBAS)<*"(D$).@S_/__H^!U"0C)Z3S7``"- -XMM@````"-OP````!5B>6#[`B+10B+$(72=23'1"0$Q)@*",<$))`O"0CHO>`! -XM`#WX;PD(=!6)10C)Z0WP`P")!"3HY9\#`(7`=>O),<##C;8`````C;PG```` -XM`%6)Y5=64X/L'(MU"(-^"/\/A%@!``"+/;AW"@BAO'<*",<%N'<*"`````#' -XM!;QW"@@`````A?^)1?!^&3';B?:+5?"+!)J#PP&)!"3H7X,#`#G[=>N+1?") -XM!"3H4(,#`(U&3,=$)`@D(```B40D!,<$)*!W"@CH8?O__Z&T=@H(B00DZ!A[ -XM`0"+!J/\70D(BT8(H[1V"@B#?@3_=!6A1)D+"(D$).CV>@$`BT8$HT29"PB# -XM?@S_=!6AS)<*"(D$).C;>@$`BT8,H\R7"@B#?A#_=!6A!'8*"(D$).C`>@$` -XMBT80HP1V"@B+1B"CD'8*"(M&-*.\F`H(BT8DHTB:"PB+1BBC2'<*"(M&+*.T -XMF`H(BT8PHS"9"PB+1A2CP'8*"(M&&*/@F0L(BT87UW#HXR8"@CKNHM&0(7`=.J+"(7)=.3'1"0$Q)@*",<$ -XM)"0V"0CHDMX!`(7`=,S'10@D-@D(@\0<6UY?7>EKX`$`C70F`(V\)P````!5 -XMB>575E.!["P!``"A+)H+"(L5*)H+"(F%'/___Z$DF@L(B948____BQ4@F@L( -XMB844____H1R:"PB)E1#___^+%1B:"PB)A0S___^A%)H+"(F5"/___XL5$)H+ -XM"(F%!/___Z$,F@L(B94`____BQ4(F@L(B87\_O__H02:"PB)E?C^__^+%0": -XM"PB)A?3^__^)E?#^___H-7,``(,%`%X)"`&)A>3^___'!"0`F@L(Z,CT___H -XM=YP!`*'L70D(HW!V"@BAP)@*"(7`=!R+10B%P`^$V@$``,<%P)@*"`````#H -XMJGT!`.O`H?R8"@B%P`^%^P,``*&,=@H(A"0B% -XMP'02B00DZ*F``P#'!8!>"0@`````H91W"@B%P`^%8@(``,<$)'AV"@CHMFT! -XM`(G#H91W"@B%P`^%-P(``,=$)`20Z04(QP0D>'8*".CC=0``A=MT#:&`7@D( -XMA<`/A!,#``#'1"0$Q)@*",<$)&`R"0CHOMP!`(7`=#N+'>AV"@C'!<"8"@@! -XM````QP7H=@H(`````,<$)'AV"@CH9%$!`.C/C@$`QP7`F`H(`````(D=Z'8* -XM",<$)`````#H?_?__Z'L70D(QP7(K`L(`0```(7`#X5L`0``BTT(A"9"PB%_P^$*@$``(`]B)@*"`!T#X,]@%X)"`$9P"`%B)@* -XM"(L-[%T)"(7)=1N+%8!>"0B%TG01QP0D````0.@5<@``D(UT)@"A<'8*"(7` -XM=2>A\%T)"(7`#X1*`0``QT0D!`````#'!"1X=@H(Z,:6``"-M@````#'!"1X -XM=@H(Z"1T``#I]_W__XN%Y/[__\<%_)@*"`````")!"3HMW,``(N5'/___XN% -XM&/___XD5+)H+"(N5%/___Z,HF@L(BX40____B14DF@L(BY4,____HR":"PB+ -XMA0C___^)%1R:"PB+E03___^C&)H+"(N%`/___XD5%)H+"(N5_/[__Z,0F@L( -XMBX7X_O__B14,F@L(BY7T_O__HPB:"PB+A?#^__^)%02:"PBC`)H+".@(<0`` -XMZ7K]__^+-?!="0B%]@^%R/[__XL=3)H+"(7;#X6Z_O__C;0F`````(/H`0^? -XMP`^VP(E$)`3'!"1X=@H(Z/0#`.F._?__QP0D>'8*".A4C`$`H80@ -XM"0B%P`^%Z`$``*&`=@H(QT0D"`````#'1"0$>'8*"(D$).BZB`$`QT0D!$`K -XM!@B)PXD$).A8"0B%P'0,QP0D````0.A3<```Z!ZN`P"AU)<*"#'2 -XMQT0D$`$```#'1"0,`````,=$)`@`````A<`/G\*#Z@$)T(E$)`2)'"3H";T! -XM`*&TF0L(A<`/A4P!``"+10B%P'05BSW`=@H(A?\/A1L!``"-M"8`````QT0D -XM"`8```#'1"0$`'8)",<$)'0O"0CH%.,!`.GO_?__BSW`=@H(A?\/A-_\__^+ -XM-?!="0B%]@^%T?S__X`]B)@*"``/A<3\__^+'>"9"PB%VP^%MOS__^G)_/__ -XMC78`BY7D_O__QP7\F`H(`````(,M`%X)"`&)%"3H<7$``(N%'/___XN5&/__ -XM_Z,LF@L(BX44____B14HF@L(BY40____HR2:"PB+A0S___^)%2":"PB+E0C_ -XM__^C')H+"(N%!/___XD5&)H+"(N5`/___Z,4F@L(BX7\_O__B140F@L(BY7X -XM_O__HPR:"PB+A?3^__^)%0B:"PB+E?#^__^C!)H+"(D5`)H+"('$+`$``%M> -XM7UW#BS7@F0L(A?8/A=[^__^+'?!="0B%VP^%T/[__\<$)`````#HI/L"`.F_ -XM_O__QP0D>'8*".CCF0,`H80@"0B%P`^$__W__\<$)'AV"@CH*IX#`.GN_?__ -XMQP4X=PH(`````,=$)`3$F`H(QP0DJ$`)".A7V`$`A<")PP^$=0(``(L0A=(/ -XMA&L"``"-1>R)!"3HU.S__XL;B1PDZ$YO`0"%P(F%[/[__P^%T@(``+A8`@`` -XM`P4,7@D(.T7L#X\T`@``BP.%P`^$(@(``(G?Z;$```"+1;P+1<`/A)<```"+ -XM1:0YP@^,C````(L-#%X)"#G(?P0YRGY^H329"PB%P`^%N0(``(7;N$7)"`@/ -XMA;0"``")!"3HU'@!`,=$)`0P*@@(B<.)!"3HHG```(.][/[__P$/A.T"``"A -XM@)@*",=$)`RDL0@(QT0D"`<```#'1"0$"P```(D$).@@SP``B70D"(E<)`2) -XM!"3HL,@#`(D<).BX;P``BT<$@\<$A<`/A&H!``")!"3H(ND#`(U5C(E4)`2) -XMQHD$).BM[___A"0B#P`$Y -XMT`^-2P$``*$TF0L(A<`/A38!``")#"3H(^___XN5(/___XD4)(G#Z`=Z`P"% -XMVP^$)____XD<).AS\O__A<`/A!?___^)'"3H8_+__\>%Z/[__P````"%P'40 -XMZ?S^__^-="8`@X7H_O__`8D<).@]\O__AC^__^)="0(B50D!(D$).@WQP,`Z8K^__^)]HM%[*,,7@D(QP0D```` -XM`.@L[P,`Z&?8`P#HHJ8#`(GVZ'NJ`P"+%:1W"@B+#;1W"@BAH'<*"#,%L'<* -XM"#'1"<%T%NC9AP$`QP0D`0```.A-G@,`Z4[X__^#/=`D"0@"=>''1"0$```` -XM`,<$)`````#HZ]4#`.O+A=L/A<+^__^+A2#___^)!"3HTW@#`.GV_?__BP.) -XM!"3H9'@!`(7`B?8/A!K]__^#K>S^__\!BP.#PP2)!"3HEM,!`(7`#X\#_?__ -XMN`$```#I^?S__XUT)@"%VP^$L/W__Z&`F`H(QT0D#(VQ"`C'1"0(!@```,=$ -XM)`0+````B00DZ)/,``#I(OW__XU5C#';C84L____B10DQT0D"&````")1"0$ -XMZ&OP__^+5:P[%:B9"PB+C2#___\/G\/I[/W__Z&`F`H(QT0D#)*Q"`C'1"0( -XM!0```,=$)`0+````B00DZ#/,``")7"0$B00DZ,?%`P#I$OW__Z&`F`H(QT0D -XM#'&Q"`C'1"0(`P```,=$)`0+````B00DZ/W+``"+E>C^__^)5"0$B00DZ(O% -XM`P#IWOS__XVV`````%6)Y5>)SU:)UE.![%PA``#'1"0$`````(D$).A@;0$` -XM,=*#^/\/A`\#``"-7?")1?")'"3'1"0$0!X%".CO;```BT7PQT0D!/____^) -XM!"3HG',!`(D<)(E%\.B!;```B1PDZ"EL``"+1?#'1"0(`0```,=$)`0"```` -XMB00DZ#KI__^+7?"Z`0```(7;#XBH`@``A?;'A________=!>-19")1"0$ -XMB1PDZ-WP__^%P`^(A00``(V%P-[__\=$)`2`I@0(B00DZ&-L``"+#91W"@B% -XMR0^%!00``*'\70D(BQ7H=@H(QX70WO_______\>%S-[_______^)A<#>__^A -XMM'8*"(72QX7$WO_______XF%R-[__P^%.@(``*'`=@H(A?^)A=3>__^AX)D+ -XM"(F%V-[__Z%0=PH(B87#>__^A2)H+"(F%Y-[__Z%(=PH( -XMB87HWO__H;28"@B)A>S>__^A,)D+"(F%\-[__Z&\F`H(B87TWO__H>Q="0B) -XMA?C>__\/A;0!``#'A03?__\`````H>R9"PC'1"0()"```,=$)`2@=PH(B84( -XMW___C84,W___B00DZ!;N__^+10B%P'1JBU4(BP*%P'1AQT0D!,28"@C'!"0D -XM-@D(Z$;2`0"%P`^$#@,``(L`A<`/A`0#``")!"3H[',!`(F%_-[__XM%"(D$ -XM).C;%_-[_ -XM_P````"+50B)';1V"@C'!;QW"@@`````QP6X=PH(`````(F5`-___\<%L'<* -XM"`````#'!;1W"@@`````QP6@=PH(`````,<%I'<*"`````#H3S,!`*&T=@H( -XMQP60=@H(`````,<%O)@*"`````")!"3H&NW__X/_`<<%X)D+"`````#'!5!W -XM"@@`````QP5(=PH(`````,<%2)H+"`````#'!3"9"P@`````H\!V"@@9P"$% -XMC)@*"*&4=PH(QP6TF`H(`````(D][%T)",<%_%T)"`$```"%P`^%]0$``,<$ -XM)`````#HF?+__XV%P-[__XD$).A;:0``N@$```"!Q%PA``")T%M>7UW#H8R8 -XM"@B)A03?___I1O[__XUUD(ET)`3'!"0`````Z"+N__^#P`%T9XV%,/___XE$ -XM)`2A1)D+"(D$).@&[O__@\`!=$N+190[A33___\/A-P!``"A1)D+",=$)`3_ -XM____QP0D`````(F%Q-[__^@W<`$`QT0D"`$```#'1"0$`@```*-$F0L(B00D -XMZ.;E__^)="0$QP0D`0```.BF[?__@\`!=&>-A3#___^)1"0$H___HNV\!`,=$)`@!````QT0D!`(```"CS)<*"(D$).AJY?__B70D!,<$ -XM)`(```#H*NW__X/``71IC84P____B40D!*$$=@H(B00DZ`[M__^#P`%T38M% -XME#N%-/___P^$O````*$$=@H(QT0D!/_____'!"0"````B870WO__Z#]O`0#' -XM1"0(`0```,=$)`0"````HP1V"@B)!"3H[N3__XGVZ`MK`0#I0_S__XVV```` -XM`(,%Q*P+"`''1"0$L)`(",<$),2L"PCH-6@``.G;^___QX7\WO__`````.G[ -XM_/__D,<$),2L"PCH=&<``(,%Q*P+"`''1"0$L)`(",<$),2L"PCH^6<``.G? -XM_?__B1PDZ%QJ`0"Z`0```.GL_?__BT60.X4P____#X4U____Z6[___^+19`[ -XMA3#___\/A:7^___IW/[__XM%D#N%,/___P^%%?[__^E,_O__C;8`````58GE -XM5U93@^PD<9@`` -XMQT7P`````.E7____QT0D!#PT"0B)'"3HC./__X7`=>"+7@B-?@C'1?`"```` -XMA=L/A2[____'!"2!```0Z(MC``"+7@C'1?`"````Z1/____'!"1%```0Z'!C -XM``"+7@C'1?`!````Z?C^__^058GE4X/L%*&4=PH(BUT(AGW8@``C;0F`````*'`=@H( -XMA"0@`QP0D``````^4PC')Z+/W__^)'"2)QN@Y9```@\00B?!;7EW#BT@$ -XMAR+-S'`A?9T5HU?!,=%\`````#K#Y") -XMW\=#_#H```"+,X/#!(/^.G0$A?9U\L=#_`````"+!X7`=06_C#,)"(D\).A/ -XMV@,`BU7PBTWLB021@\(!A?:)5?!UO(G0P>`"BU7LQP0"`````(D4),=$)`3P -XM(P8(Z%UC``#'1"0,`@```,=$)`C$F`H(BTWLQP0DE#()"(E,)`3H^L\!`(M% -XM[(D$).C?8@``BU7LB54(@\0<6UY?7>E]8@``C;8`````C;PG`````%6)Y8/L -XM"*'4EPH(AA<____H>1U"0B%P'0HBT4(B00DZ(3D___' -XM1"0$$P```(M#'(D$).C1Y/__BS:%]HGS=9'KRN@&OP``C;8`````Z\N-M"8` -XM````C;PG`````%6)Y593@^P0H329"PB%P`^%B@```.AV_?__BS4`F`H(A?9T -XM2XGSBU,,]L8!=#*+0QP[!=R9"PAT)X'B___]_XE3#,=$)`0!````BT,7B)!"3HQEX``.BA -XM_O__@\0D6UW#QT0D!,28"@C'!"0`+@D(Z)?&`0"%P'1-,575E-1@>R8`0``BP&+203'1>P` -XM````QT7H`````(F%>/[__XF-=/[__\=%Y`````#'1"0$14!`)#K!8/X`G\^QT0D -XM!`````#'!"3,L0@(Z.5>`0"#^/]UXL=$)`0`````QP0D4\<(".C,7@$`@_C_ -XM=0<``(D$)+]P -XMN0@(Z#=F`0"Y!0```/RC#'8*"(G&\Z8/E,`/ML"CE)@*",<$)-:Q"`CH`=D# -XM`(D$).BIU`,`HZ28"@C'!"3>L0@(Z.C8`P")!"3HD-0#`*-T=PH(H=AU"0B) -XM!"3H/MD#`*/0EPH(B00DZ%'7`P"CV'4)",<$).>Q"`CHL-@#`(D$).A8U`,` -XMQP6,F`H((0```,<%1)H+"%X```#'!32:"P@^````QP6,=PH((P```,<%;'<* -XM"`````"CU)D+"*-,=PH(QP0D\;$(".A@V`,`QT0D"`(```#'!"2@,PD(B40D -XM!.B(S0$`BXUT_O__BP&)!"3H.-@#`(D$).C@TP,`QP7X70D(`````*/T70D( -XMQT0D!*0N"0B)!"3H[=G__X7`#Y3`#[;`B86$_O__Z`K@__^CA'8*".B`V___ -XMH\QV"@CH5N#__Z,LF0L(Z)S>__^+M73^__^CZ)@*"(L&@#@M#X3`$0``@[UX -XM_O__`@^$DQ$``,<%-)D+"`````#'!6"9"P@!````NX````#'!"3UL0@(Z*38 -XM__^%P`^5P`^VP*/`I0L(QT0D!$7)"`C'!"0`````Z%/?___'1"0$1BT2>-*D```0`=2R#PP&!^_\```!_(??#```` -XM0'7M@?O_````=MJ)'"2)]N@WV?__J0``!`!TU(,]@%$)"`$/E,(QP('[_P`` -XM``^?P"'0HV"9"PBA/&0)"(7`=`VA0&0)"(7`#X1>$0``Z'T5`P#'!"1T=@H( -XMZ&W7___HG-H#`.@WX?__H;1V"@B)!"3H=MO__X7`B<,/A$P1``")QK@%```` -XM_+_^L0@(B<'SI@^$^`0``(D<).BAU@,`B00DZ$G2`P#'1"0(`@```,<$)+PN -XM"0B)1"0$B6`$`QT0D"`(```#'!"2X+PD(B40D!.BFR0$`C9V<_O__QT0D -XM!``!``")'"3H/-S__X7`#X@]#@``QD6;`(D<).A\U`,`QP0DE#`)"(E$)`3H -XM7,L``.BG=@,`QP0D++((".AGU?__A<")PP^$Z0X``(D$)(G>OQZR"`CH0M0# -XM`(D$).CJSP,`B00DZ!)8`0#'1"0(`@```,<$)-`O"0B)1"0$Z!K)`0"Y"``` -XM`/SSI@^%P0P``,>%?/[__P$```"+M7S^__^_/K(("+D&````_(DUB'<*"(G> -XM\Z8/A3L"```QP*/DF0L(BSWDF0L(A?\/AL@@(Z&S4 -XM__^%P(G#="Z)!"3HGMO__X/X!(F%O[NR"`BY!P```/.F#X2,#0``B[5X_O__@^X!A?8/CD,.``"+E8C^ -XM__^+`H`X+0^%,@X``(U0`0^V0`&$P`^$(PX``,>%@/[__P`````Q_XG3ZS*A -XM#'8*",<%D)@*"`$```")7"0$QP0D?````(E$)`CHV%,```^V0P&#PP&$P`^$ -XM`0$``#QX=\H/ML#_)(6,MP@(N'"Y"`CI??C__XU#!8D$).D`^___B=Z_1+(( -XM"+D#````\Z8/A+']__^+A7S^__^#\`'II?W__XUT)@"#_@$/A%L'``"#A8C^ -XM__\$BXV(_O__BP&)!"3H8-$#`(D$).@(S0,`A<"CD'8*"'0HB00DZ/?,`P") -XM!"3H'U4!`,=$)`@"````QP0D0#8)"(E$)`3H)\8!`*&0=@H(B00DZ*K'`P"+ -XM#9!V"@@YP7,G@WC\7(U0_'4>,<#K"XUV`(/J!(,Z7'4'@\`!.=%R\:@!#X6. -XM!@``@^X!QP6$(`D(`````+\!````#[9#`8/#`83`#X7__O__@^X!@X6(_O__ -XM!(7V?B:+E8C^__^+`H`X+749C5`!#[9``83`=`Z+C8#^__^%R0^$E?[__X7_ -XM#Y3#BX6$_O__A<`/A<4'``"$VP^$J0```(7V#XZA````QT0D!`````"+C8C^ -XM__^+`8D$).B950$`A<")PP^(&0X``*'T70D(B00DZ+)?`P"+E8C^___'!?A= -XM"0@!````BP*)!"3H*-`#`(D$).C0RP,`H_1="0C'1"0$$````(D<).B[6P$` -XMA<"CM'8*"`^(7PT``,=$)`@!````QT0D!`(```"AM'8*"(D$).A=T?__@X6( -XM_O__!,<%A"`)"`````#HVUL!`*&T=@H(B00DZ$K7__^%P*/`=@H(#X3"!@`` -XMH!V"@B)1=RA -XMY'8*"(E%X.@E3@``QP0D`)H+".C%S___@P4`7@D(`<<%P)@*"`````"%P`^5 -XMP`^VP`L%"%X)"`^$`00``(N%C/[__XLUP'8*"(,M`%X)"`&CE'<*"(M%S(7V -XMH]!V"@B+1="CU'8*"(M%U*/8=@H(BT78H]QV"@B+1=RCX'8*"(M%X*/D=@H( -XM=`Z+'9!V"@B%VP^$^`D``(M%Z(7`#X7%!```BT7LA<`/A:D$``"AE'<*"(D$ -XM).BGV?__BPW`=@H(A%A/[__P$```#IUOG__\<%*'<*"`$` -XM``#IQ_G__\<%!%X)"`$```#IN/G__[\!````QP4DF0L(`0```.FD^?__QP4( -XM7@D(`0```.F5^?__QP60F`H(`0```.F&^?__QT7D`0```.EZ^?__QX6`_O__ -XM`0```.EK^?__QP7H70D(`0```.E<^?__OP$```#'!80@"0@`````QP64=PH( -XM`0```.D_^O__QP0D@#()".BJP`$`Z2WY___'!"1@,@D(Z)G``0#I'/G__\=% -XM[`$```#I$/G__\=%Z`$```"0Z0/Y__^_`0```,<%O)@*"`(```#'!80@"0@` -XM````Z>7X__^+E7#^__^_XK$("+D%````_(U$$_R)QO.F#X5R]___B1PDZ);* -XM`P")!"3H/L8#`(D$).AF3@$`QT0D"`(```#'!"0H,@D(B40D!.ANOP$`BYUP -XM_O__A=L/A5'W___I+_?__\<%D)@*"`$```#'!"0I````Z$5,``#I5_G__Z', -XMEPH(B00DZ+_1__^%P`^$Z_K__\<%E'<*"`$```#IW/K__\<$)`````#H0.S_ -XM_^F4^/__QP4(7@D(`0```.E&]/__H]'__X7`#X1;^O__BX6` -XM_O__A<`/A4WZ__^AA'8*"#L%+)D+"`^$/@0``.B_SO__QP`-````QP7D=0D( -XM`0```.BJSO__BP")!"3H4,S__XE$)`BA#'8*",<$)#8```")1"0$Z(M+``#I -XM^OG__XN%=/[__X/`!(F%B/[__^DV]___A=L/A`0&``")'"3H8LD#`(D$).@* -XMQ0,`B00DZ#)-`0#'1"0(`@```,<$)*0O"0B)1"0$Z#J^`0#'1"0$Q)@*",<$ -XM)*0O"0CH=K4!`,<$)*`_"0B)1"0$Z`;```#I)_3__\<$)+6R"`CH1:8#`.DH -XM_?__QP0D@#$)".B4O@$`Z2/U___'1"0$Q)@*",<$)(`Q"0CHR[0!`(7`=`S' -XM!"2`,0D(Z*NV`0#'!>29"P@`````Z0OY___'1"0$`````,<$)`,```#H],[_ -XM_^DB^/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".AX30``,2%P`^$^?K__\<$ -XM)`````#HD0L``)#IY_K__\<$)(`R"0CH'[T!`.E&^___QP0D8#()".@.O0$` -XMZ2K[__^-1`/[OV2R"`C\N08```")QO.F#X2R_/__Z0CT__^)WK\QL@@(N04` -XM``#SI@^$*_/__XG>OS:R"`BY"````/.F#Y3`#[;`B85\_O__Z1;S___'1"0( -XM`@```,=$)`3H-@D(QP0DJ#()".@\O`$`Z1[X___'1"0$+P```(G>B1PDZ,'' -XM__^%P'0#C7`$QT0D"`,```#'1"0$O"X)"(DT).@"R___A/[__P&%P`^$_NW__\<$)`Q> -XM"0CH,<;__\<$).`U"0CH.;L!`.GA[?__Z,^C`@#IF.[__Z',=@H(.P7HF`H( -XM#X6Q^___Z>CU___'!"1%R0@(Z<+N___'!8AW"@@`````QP0D1[((".A>QO__ -XMN@$```"%P'05_(G&OUH;"0BY`@```/.F#Y7`#[;0B17DF0L(Z4_Q__^AS'8* -XM"(D$).B<2P$`A<`/A!@#``"+`(D$).@*Q0,`QT0D"`(```#'!"2X+PD(B40D -XM!.@RN@$`QT0D!,28"@C'!"2X+PD(Z"ZQ`0#'!"3@/PD(B40D!.B^NP``Z2/P -XM___'!"10L@@(Z+W$`P")!"3HA>7__^E$\?__QT0D!,28"@C'!"0`,`D(Z.RP -XM`0#'!"1^L@@(B40D!.C,H0,`QT0D#.BR"`C'1"0("````,=$)`0+````H8"8 -XM"@B)!"3H!Z@``(D$).B?H0,`QP0D`````.B#YO__Z1+R___'1"0$Q)@*",<$ -XM)``P"0CHBK`!`,<$)!$7"0B)1"0$Z&JA`P#'!"0`````Z$[F__^+A73^__^+ -XM6`3IO_'__\=$)`0!````QP0D`P```.A(RO__Z9OU___'!91W"@@!````Z:;V -XM__^[`0```,>%@/[__P````#I1?/__\=$)`3$F`H(QP0DD"\)".@0L`$`ND!! -XM"0CH=N/__XL]-)D+"(7_#X4+_/__Z?O[___'1"0$Q)@*",<$))`O"0CHWZ\! -XM`+H@00D(Z$7C___IJOO__\<$)``````QR3'2N*:R"`CH*]O__^DB^___H81V -XM"@B)!"3H.4D!`(7`#X3@`@``BP")!"3H1\,#`,=$)`@"````QP0DI"\)"(E$ -XM)`3H;[@!`,=$)`3$F`H(QP0DI"\)".AKKP$`QP0DP#\)"(E$)`3H^[D``.G, -XM^?__H;R8"@B%P`^%,/O__Z%`F0L(A<`/A2/[___'1"0$`````,<$)`````#H -XM>&\``.D*^___BQ6\F`H(A=(/A73Z__^A0)D+"(7`#X5G^O__QT0D!`````#' -XM!"0`````Z$1O``#I3OK__X/[`70G@_L"C;0F``````^$50(``(7;#X4=`@`` -XMQP6T=@H($````.EU\O__QP6T=@H($0```.EF\O__H>29"PB)!"3HU\P"`.D\ -XM]?__Z'W0`@#'!"0!````C;8`````Z"O1`@#I[/7__\<%Y'4)"`$```#H(\?_ -XM_XL`B00DZ,G$__^)1"0(B[6(_O__BP;'!"0V````B40D!.@!1```Z:WQ___' -XM!"0>L@@(Z>'\__^)%"3H],/__^E"^___QT0D!`$```"[$@```,<$)!(```#H -XM%LC__\=$)`0!````QP0D%0```.@"R/__QT0D!`$```#'!"06````Z.['___' -XM!"02````Z"+)__^%P`^$D0$``(UUG.MD.P753BU4(A=)X-(L=(%X)"(G(ZPF0 -XMC70F`#G(=!R#Z@&#^O]T)XM`!#T<7@D(=>J)V#G(=>B-="8`6S'`7<.+`3T< -XM7@D(=06A'%X)"(M`#%M=PXVT)@````!5B>5=QP447@D(`````,.058GE4X/L -XM!(M="(M#"(7`=!/'0P0`````QP,`````@\0$6UW#BT,,B00DZ)%-`P")70B# -XMQ`1;7>F$30,`C70F`%6)Y5=64X/L+(M5"(72#Y3`=0^+70R%VW4(@\0L6UY? -XM7<.$P,=%Z`````#'1>P`````QT7P``````^%80$``,=$)`0`````B10DZ('O -XM``")1>#'1"0$,"H("(M%X(D$).B;0@``BT7@B00DZ'"[`P#'1"0$@`$``(D$ -XM).A@1`$`B470@\`!#X3_````QT0D!,28"@C'!"2@-0D(Z,"I`0`]^&\)"'0* -XMBPB%R0^%&@$``+[_____H>AV"@B-?>C'!>AV"@@`````B478H!^QQ>"0AT\HM5W(72=+B+0PR#[@&)/"2)1"0$Z"9&`0#' -XM!"1\N0@(B40D!.CFF0,`@_[_=;^0BT70B00DZ/5#`0"+1=2CS)<*"(M%V*/H -XM=@H(BT7@B00DZ,I```"#Q"Q;7E]=PXGVQT0D!,28"@C'!"1@-0D(Z*RH`0`] -XM^&\)"'0GB00DZ/VW`P")1>#IA_[__XD$).@-N@,`B00DZ+&\__^)QNG4_O__ -XMQT0D!,28"@C'!"20+PD(Z&JH`0#'1"0$)#4)"(D$).@JMP,`B47@Z43^__^) -XM]E6)Y5.#[!2+70C'!11>"0@!````QT0D!&#"0AT%C#2BT`$@\(!/1Q>"0AU\XT4E00```")%"3H -XM7$L#`(L=(%X)"('['%X)"(G'B<9T&XM##(D$).BOM@,`B0:+6P2#Q@2!^QQ> -XM"0AUY<<&`````,=$)`3P(P8(B3PDZ,D_``#'1"0,`@```,=$)`C$F`H(B7PD -XM!,<$)``V"0CH::P!`(D\).A1/P``B3PDZ/D^``"#Q!Q;7E]=PY!5B>564X/L -XM$,=$)`3$F`H(QP0D`#8)".ATI@$`A<")PP^$S0```(L`A<`/A,,```"+#2!> -XM"0B!^1Q>"0AT*XL!BU$$B5`$BU$$B0([#629"PATW8D,).CU^___BPT@7@D( -XM@?D<7@D(==6A9)D+"*,<7@D(HR!>"0C'`!Q>"0C'0`0<7@D(BS.%]G57ZUN- -XM=@"+`(7`=%+'1"0$`0```,<$)!````#HQDD#`(G#BP:)!"3HFK4#`(/&!,=# -XM"`````")0PRA9)D+"(E#!*%DF0L(BP")`Z%DF0L(B1B+`XE8!'0&BP:%P'6H -XM@\006UY=Z3W^__^#Q!!;7EW#C;8`````58GE5[\`!```5E.#[`S'!"0`!``` -XMZ,9)`P")P^L>B?;H=[[__XLP@_XB=4D!_XD<)(E\)`3H]DD#`(G#B7PD!(D< -XM).@TO/__AY`P")!"3H[[0#`(D<)(G&Z*5(`P"#Q`R) -XM\%M>7UW#B1PDZ)-(`P#H&K[__XDP,?:#Q`R)\%M>7UW#B1PD,?;H=D@#`.O/ -XMC70F`%6)Y5=64X'LC````(M%"(M=#(D$).ARN___BU4(@SHOB<+1(H$@\$!A<")1(L$=?&+%HGW -XMA=)U5(GWC4;\.T4(=`_'1OP`````B?N+`X7`=;G'1"0$Q)@*",<$))`O"0CH -XM%:0!`(D$)(G#Z$>Z__^%VXG&=`F#.R\/A*X"``"+10B!Q(P```!;7E]=PX/' -XM!(L'A`0K?0B)#"3H#;G__XG#BT6`B00DZ`"Y__^-5`,!B?C!^`*-!`+!X`*)!"3H -XMG48#`(M5"(G&B<&+`H/"!(D!@\$$A^+58")V8L"@\($B4'\@\$$A^)V8GZBP*# -XMP@2)0?R#P02%P'7QBTV,C7PQ_(M5"(G[B10DZ'9$`P")=0CI'_W__XE$)`B+ -XM30B)'"2)3"0$Z">Y__^%P'47BU4(BP2R@_@O#X0L_?__A<`/A"3]__\['1A> -XM"0AT,HD<).B0L@,`C564B50D!(D$).@=N?__@\`!=!:+192)'1A>"0BCG"`) -XM"(M%F*.@(`D(BTT(C7V4B0PDZ#BP`P")QHL&A)QNF0_O__QT;\+P```(-M@`2+58"#.B]U -XM](M-A(7)=%\QTHM$EP2+38")1)$$@\(!A575HG&4XG#@^P,@S@O='.A -XM9)D+"(M`#(D$).A:M?__B30DB<,QP(/[`0^4P(/H`2'#Z$.U__^-!`.-!(4( -XM````B00DZ.5"`P")QZ%DF0L(B?F+4`R+`H/"!(D!@\$$AB)1>R+`(U(!(E-\(M0!(72#X35```` -XM@SHM#X78````,?_K'('/@````(-%\`2+1?"+$(72#X23````@SHM=5Z+0@2) -XMTX7`=1?KV2GQN`$```#3X`G'BT,(@\,$AR#X`Z%P(D1=`.#SP&#Q!R)^%M>7UW#BT7P,?^+3>R)`>OJ -XMBTWP,?^+5>R)"NO>ZPV0D)"0D)"0D)"0D)"058GE@^P8B5WXB77\@S@K=`XQ -XMVXG8BW7\BUWXB>Q=PXM0!(U(!/?"````0'4G@_I_=ACK((M0"/?"````0(UV -XM`'42@_I_=PV#P`3V!)6]40D(!'7@A=)UN8D,).@`FP$`A<")QGZKBQUDF0L( -XMZPT['629"PAT&(/N`728BUL$@?L<7@D(=>B+'2!>"0CKX,<$)!H``!#H9C(` -XM`.O:C70F`%6)Y5.)PX/L%,=$)`3$F`H(QP0D9#,)".B3G`$`QT0D"`8```#' -XM!"1T,PD(B40D!.AKI0$`B5PD!,=$)`@&````QP0D9#,)".A3I0$`B5PD!,<$ -XM)/@Z"0CH\Z8``(/$%%M=PXVV`````(V\)P````!5B>53@^P4BQUDF0L(C78` -XM@?L<7@D(=!;'1"0$^&\)"(M##(D$).C%]O__B4,,BUL$.QUDF0L(==>+0PR# -XMQ!1;7>E*____C78`C;PG`````%6)Y8/L&(U%"(D$).CO5P,`A<")PG09BT4( -XMB50D!,<$)(ZY"`B)1"0(Z+*,`P#)PXM%",<$))*Y"`B)1"0$Z)V,`P#)PXUT -XM)@"-O"<`````58GE5U93@^P\BS5DF0L(B478@^`$B474BT78QT7<`````,=% -XMX`````"#X`*)1=#ICP```(U%\(D$).AQ5P,`A<")QP^$G````(D$).B+L?__ -XMB<.+1?")!"3H?K'__XU<`P(!7>#V1=@(=!:+%>"7"@B-0O\Y1>!\"#G3#XRY -XM````A?]T$(E\)`3'!"29N0@(Z/N+`P"#?=0!QP0DG;D("!G`@^`6@\`*B40D -XM"(M%\(E$)`3HV(L#`(MV!#LU9)D+"'1=@?X<7@D(=.V+1=2%P'4FBT8,,?^) -XM1?"+1="%P`^$3____XM%\(D$).CLL/__C5@!Z6K___^+1=R+7=S'!"25N0@( -XMB40D!.B"BP,`@\,!B5W#I,____XGV58GE5XG75HG&4X/L#,=$ -XM)`3$F`H(QP0DX#D)".C/F0$`A"0AUVXDU9)D+"(M&#.@Z_?__Z"7R -XM__^+'2Q>"0C'1"0$Q)@*",<$)&`Y"0CH:YD!`(/X`1G`("0B%P'4$A=MU#(/$#%M>7UWI/FP#`(GXZ/?]__^#Q`Q;7E]=Z2ML -XM`P"+`XM3!(E0!(M3!(D"B1PDZ-;N___I>?___Y!5N:.Y"`B)Y;JMN0@(@^PH -XMC44(B5WTB77XB7W\Z-_Z___'!2Q>"0@!````B<.)QH'C@`````^%A0```(M% -XM"(L0A=(/A)@```"%VW4DBT4(BT`$AP0<7@D(=&8Q_SL=9)D+"`^$?0`` -XM`(M#!(L3B1"+$XE"!(D<).@D[O__.QUDF0L(=%*)\.@5_?__ZZ6-=@#'1"0$ -XMQ)@*",<$)'0S"0CHG)@!`(G"A=(/A6K___^)]HL=9)D+"(%[!!Q>"0AUFY"! -XM.QQ>"0AUDL<$)$(``!#H'"X``.N$B?*)^.@1_O__D.E-____BWL$@?\<7@D( -XM=%J+1PR)!"3HQ:D#`(E%\(D$).C6K/__A<`/B5K____HV;#__XL`B00DZ'^N -XM___'!"0V````B40D"(M%\(E$)`3HO"T``.DO____QP0D0P``$.BK+0``Z0?_ -XM__^+/2!>"0CKGHVT)@````"-O"<`````5;E%R0@(B>6Z][D("%93@^P0C44( -XMZ%;Y__^H0(G&=$*A9)D+"(L`.P5DF0L(=!R0/1Q>"0B+&'0(B00DZ/_L__^) -XMV#L%9)D+"'7EHR!>"0BC'%X)",=`!!Q>"0C'`!Q>"0CWQB`````/A8T```#W -XMQA````!U:XM5"(L*A575E.#['R+30R%R0^$=`$` -XM`(M%"#';QT7H`````,=%[`````#'1?``````ZP.#P`2+$(72="Z+2`2%R70G -XM@_HN=>N#^2YUYHM0"(72D`^%2P$``#M%"'0'@WC\+Y!USH/#`>O)A=L/A!D! -XM``"A9)D+"(M`#(D$).B-K/__C02%#````(D$).@R.@,`B46`H629"PB+0`R) -XM1"0$BU6`B10DZ&2K__^+=0B#/B\/A#P"``"+70C'1>P`````BQ,Q_X72=$&# -XM^BZ-H0,`A?]_#>LB@^\!QP`````` -XM=!?'1"0$+P```(M%@(D$).@FJO__AR%P`^%!P$``(MU@(L^A?\/A;4```"+,X7V#X5%____BT7HB00DZ',X -XM`P"+18"#Q'Q;7E]=PXM%"(D$).B=I`,`B46`BT6`@\1\6UY?7<.#^B\/A8;^ -XM___II_[__Y`[70AT$8-[_"^-M"8`````#X4?____A<`/A#'___^-6#[#C'1"0$`````(E= -XM](EU^(E]_(D$).@AV0``QT0D!#`J"`B)QHD$).@_+```,<"#/=B7"@@"B30D -XM#Y3`B40D!.BW_/__B<.)!"3H_:0#`(D$).@1J/__A!F)-"3H?"L``(DT).@D*P``B?#HW?/__^NYZ,*K__^#.`*-=@!T.^BU -XMJ___@S@4=#&-="8`Z*>K__^+`(D$).A-J?__B30DB"2)-"3H>"H``(D<).C0H0,`QP4L7@D(`0```.@A\___Z?K^__^+'11> -XM"0B%VP^$/@$``(DT).A&*@``,<#IW?[__XET)`3'!"3,.`D(Z.\I`0"%P`^% -XM=____\=$)`3$F`H(QP0DW#@)".BSD0$`A<`/A%O___^+$(72#X11____QT7H -XM`````,=%[`````#'1?``````BQB+`X7`=2KI_0```(DT).A7HP,`B00DZ&NF -XM__^%P`^)]0```(/#!(L[A?\/A-@```#'1>P`````BP.)1"0$C47HB00DZ)*? -XM`P"-1>B)!"3'1"0$+P```.@/G0,`C47HB00DB70D!.APGP,`C47HB00DZ%6= -XM`P"AV)<*"(/H`H/X`0^6P`^VP(E$)`2+1>B)!"3HA?K__XG'B00DZ,NB`P") -XM!"3HWZ7__X7`#XA<____BT7HQP4L7@D(`0```(D$).A&-`,`B30DZ!XI``") -XM^.C7\?__Z;#]__^)]HM%X(D$).AAI___B30DBZ(#`(E<)`C'!"0V```` -XMB40D!.B7)@``Z93^__^+1>B)!"3H]S,#`.DB_O__B3PDQP4L7@D(`0```.C@ -XM,P,`BT7HB00DZ-4S`P#I?/W__U6YM[D("(GENJVY"`B#[!B-10B)=?B)??R) -XM7?3H'_+__\<%+%X)"`$```")QHG'@>:`````#X6Y````BT4(BQB%VP^$QP`` -XM`(7V=22+10B+2`2%R70:QP0D#P``$.C^)0``BUWTBW7XBWW\B>Q=PY")V.CI -XM\O__A<")Q@^$_P```(M`#(D$).BDH0,`B<.)!"3HMJ3__X7`#X@U`0``QT0D -XM!,28"@C'!"2@.0D(Z)Z/`0"%P'0P.S5DF0L(="B+%HM&!(E"!(M&!(D0H629 -XM"PB+$(D6H629"PB)1@2)<@2A9)D+"(DPB?J)\.AQ]?__Z6[____'1"0$Q)@* -XM",<$)'0S"0CHJ(\!`(G#Z3'____'1"0$Q)@*",<$)"`Y"0CH+8\!`(7`#X30 -XM````QT0D!,28"@C'!"20+PD(Z'&/`0`]^&\)"(G#=`:+,(7V=0S'!"0B```0 -XMZ`8E``")'"3HSJ`#`(D$).CBH___A:`````#X6:````BT4(BQB%VP^$#P$``(7V -XM=22+10B+0`2%P'0:QP0D#P``$.A>(P``BUWTBW7XBWW\B>Q=PY")V.A)\/__ -XMA<")QG1SQP4L7@D(`0```(M`#(D$).C^G@,`B<.)!"3H$*+__X7`#X@'`0`` -XMH629"PB+4`2+`(D"H629"PB+$(M`!(E"!*%DF0L(B00DZ*;B__^)^HGPZ.WR -XM___KC<=$)`3$F`H(QP0D=#,)".@GC0$`B6#[!B)7?B)PZ&`F`H(B77\BS4,=@H(QT0D -XM#-BY"`C'1"0(`0```,=$)`0,````B00DZ#>#``")7"0(B70D!(D$).C'?`,` -XMBUWXBW7\B>Q=PXVV`````(V\)P````!5B>575E.![,P```"+=0CHO.7__X7` -XMB<,/A!(!``")!"3H&IT#`(U5E(E4)`2)!"3HIZ/__X7`#Y3`B<=U4H7V=`J+ -XM!H7`#X54`0``B?B$P'0^QP0DT;D(".@>H/__A<")QG0LC84T____B40D!(DT -XM).AFH___@\`!=!6+190[A33___\/A&8!``"-M@````#'1"0$,"H("(D<).C` -XM(P``QT0D!/AO"0B)'"3HP.7__XD<)(G&Z%8C``")'"3H_B(``,=$)`0!```` -XMQP0D$````.AJ+@,`,=*)<`R)P\=`"`````"C(%X)"*,<7@D(QT`$'%X)",<` -XM'%X)",<%+%X)"`````#H9O#__\=$)`@&````BT,,QP0D`#8)"(E$)`3HBY,! -XM`('$S````%M>7UW#Z#>C__^+`(D$).C=H/__QP0DAKD("(E$)`BA#'8*"(E$ -XM)`3H6'L#`(7V=`J+!H7`#X7`````N%/'"`CH,/[__\<$)%/'"`CHX)[__X/` -XM`0^$V````,<$)%/'"`CHWYT#`(D$).B'F0,`B<;I(O___XDT).B8FP,`C94T -XM____B50D!(D$).@BHO__@\`!#X2)_O__BT64.X4T____#X5Z_O__BT68.X4X -XM____#X5K_O__B30DZ#>9`P")QNG2_O__BT68.X4X____#X61_O__B30DZ&F= -XM`P")!"3H$9D#`,=$)`0P*@@(B<.)!"3H/R(``.EJ_O__B30DZ!*;`P")P^AK -XM_?__B1PDZ!^>__^#P`$/A"#___^)-"3HTI@#`(7`B<8/A6K^___I"?___\<$ -XM)`$```#H-[___^D7____D)!5B>5=HTA>"0C#C;8`````H4A>"0A5B>6%P'0, -XM7<<%2%X)"`````##H4Q>"0B%P'07BQ"#P`2C3%X)"(72=`E=B=`E____?\.A -XM4%X)"(L0A=)T%5V#P`2C4%X)"+@@````B15,7@D(PUVX_____\<%3%X)"``` -XM``##C;0F`````%6)Y8M%"(7`>":I````0'4?@_A_?QH/ML`/MX0`X"`)"*A# -XM=`O'!71>"0@!````D%W#C;0F`````(V\)P````!5B>5=QP7$EPH(`````,.0 -XM58GE@^P(B00DZ/*9`P#'!"0K```0HR!W"@CH$1X``,G#ZPV0D)"0D)"0D)"0 -XMD)"058GE5U93@^P\BQ5D7@D(A=)T"HL];%X)"(7_=0VC5%X)"(/$/%M>7UW# -XMB00DZ'Z7`P"+-61>"0B%]HE%[`^$[P(``,=%\`````"-M@````"+??"+%6!> -XM"0C!YP*+!#K'1=``````@_AS#X58`@``BUWP@\,!BQ2:A=*)5=0/A/\"``"! -XMX@```$!U0P^V5=2!^O\````/A\T"``"AX%T)"(M$D#3VQ`$/A=4"``"#?=1? -XM#X3+`@``@WW4?W<1BT74]@2%O5$)"`0/A;0"``"+5=3'!"3_N0@(B50D!.C_ -XM'0$`A<`/A9D"``"+#6!>"0B-``````C02QB4W$B<&)1=@Y$'0O -XMBT7$C7,"C0RPBQ&%TG0@C40X#.L/BU`$@\$$@\8!B;'`0````"+%6!>"0B-3@&)3?#!X0*+1=2)3>C'1>0``````=&)3=R)RSD! -XM=$2-3@*)3?#!X0*-'`J)3>B+"X7)="^-!+4(`````<+K%H-%\`&#P`2#PP2) -XM1>B+2@2)VH7)=`Z#1>0!B=,Y3=2)1>AUW,<#`````(M%V(D$).CT'0$`BU7L -XMB10DZ.D=`0"+3>"+1>S'1=``````P>$"B4W,ZQ2-="8`BT7(QT70`0```(EU -XM[(/`!(M5V(D$)(E4)`3HL9`#`(7`B<R)^XD,).AVG/__BU7D -XM*U7@C50"`<'B`HD4).@5*@,`*UWLP?L"B5PD"(G&BT7LB30DB40D!.A&HO__ -XMBTWB57(B10DB4PD!.@QF___BU7,C007B40D!`-=Y(T"0B%VP^%5/___XEU[,=%T`$```"+5=2+3=RA8%X) -XM"`%%Z(E1_(M%Z(D0BU70A=)T;.M6H6!>"0B+!`?'1=`!````B5WLB40D!(M5 -XM[(D4).AJ]P``A<")PW30B40D!(M-[(D,).CQFO__A<`/A((```"+5>R)%"3H -XMRA;%X)"#W___]_=`B#Z`&C;%X)"(-%\`&+3?`Y -XM#61>"0@/AQ[]__^+1>R)!"3H@_@``*&`7@D(QP547@D(^&\)"(7`#X3._/__ -XMQP0D````0.B@&@``@\0\6UY?7<.)%"3HG)K__^DO_?__BT7LB00DZ/`G`P#K -XMAL<$)%@```#H`AH``(GVZZ"-M"8`````C;PG`````%6)Y5=64X/L7(E%L(UT -XM)@"+#41>"0B%R0^%*@(``(L5F'<*"#D5?)P+"`^'2PH``*%47@D(A<`/A"," -XM``"+"(/`!*-47@D(@>'___]_A"0B%R0^/?`L``,<%5%X) -XM"`````#H_OK__X/X)(G!=`J#Q%R)R%M>7UW#BT6PA -XM"0@`````QP5D7@D(`````.@I____B47(@\`!#X2M`0``BUW(@_M[#X1,!0`` -XMB=@E____/X/X(P^$&04``(/[/P^$H04``(/[)0^$NP4``,=%O`````#'1;@` -XM````QT6T`````(/[(0^$H00```^/D@```(/[_P^$IP,``(/["@^$G@,``(G8 -XM)0```$")]G4)@_M_#X9,"```@_O_B?9T+X7`=2L/MM.!^O\```"0#X?F"@`` -XMH>!="0B+1)`T]L0%#X48!P``@_M?#X0/!P``BT6\OB0V"0B%P'40BT6XA<`/ -XMA.<&``"^]"X)"(U%V(ET)`2)!"3HY)`#`(U5V(D4).E/`P``@_LJ#X2R`@`` -XM@?L\``!`#X3%````@_LDD`^%8?___XM5O`E5N(M-N`M-M`^%-@D``*&\F0L( -XMZ%[Z__^-1=B)!"3HHQH``(-]R'L/A?G]___H5/G__X/X?9`/A.K]___'1"0$ -XM?0```,<$)#(```#H)A@``(L-1%X)"(7)#X36_?__QP5$7@D(`````(/$7(G( -XM6UY?7<.-="8`BQ5<7@D(A=(/CO_]__^+%5A>"0B+`H/"!(D56%X)".C<^?__ -XM@RU<7@D(`>F`_?__QP0D`````.C$%P``Z6_]__^+1;B%P`^%:0@``(M%O(7` -XM#X4S"```BT6TA<`/A0\(```Q]HU]YL<%.%X)"`````#K'HM%[#'V@_@*#X29 -XM````B40D!,<$)#1>"0CH/XT#`(U5\(D4).@DBP,`C00WB40D!*%$F0L(QT0D -XM"`$```")!"3H.!H!`(U-\(D,)(G#Z(L9``"#ZP%U4(/&`8U%[(ET)`B)?"0$ -XMB00DZ#"4`P"#^/\/A,<```"%P`^.\````#GZ____*<:-!`>)="0(B40D -XM!(D\).C>F___BT7L@_@*#X5G____A?:-7>QU(.M@BT7L,?:#^`IT5HE$)`3' -XM!"0T7@D(Z).,`P"%]G1"B70D"(E\)`2)'"3HOY,#`(/X_P^$E@```(7`#XZV -XM````.?!TO2G&C00'B70D"(E$)`2)/"3H<9O__XM%[(/X"G6JQP0D-%X)".BA -XMC`,`Z'P.``"A-%X)".AB^/__C578B10DZ*<8``#I__W__XGVQT0D"`````#' -XM1"0$`````,<$)`````#H\);__X/^!0^&O/[__P^V1>8-```@`(E%[+@!```` -XMZ0;___^0C70F`,=$)`@`````QT0D!`````#'!"0`````Z+"6__\/MD7F#0`` -XM(`")1>RX`0```.E`____C4W8O_____^)#"3'1"0$)#8)".@&C@,`C478B00D -XMZ.N+`P#'1"0$Q)@*",<$)"0V"0CHEW\!`(G&BT6XA"0B-5=B)%"3HT!<``.DH_?__BT6\OB0V"0B%P'40BWVXA?\/A((# -XM``"^]"X)"(U5V(ET)`2)%"3HD(T#`(U-V(D,).AUBP,`O_____^)-"3'1"0$ -XMQ)@*".@@?P$`B<:)V.@G]O__A?8/A*X!``"+!H7`#X2D`0``C478B00DZ%H7 -XM```QP.BC^O__B<.+!HD$).@'%@$`BU6\"?J)14__\!1,`P"C,%X)".@=]?__ -XMZ<7Z__^AY*P+"(L-X*P+"(E%W*'HK`L(B4W8B47@C478QT0D!+"1"`B)!"3H -XMW!4``.L4@_C_="6-5=B)7"0$B10DZ*:(`P"X`0```.AL^/__@_A=B<-T%X/X -XM"G76QP0D!0```.BT$@``C70F`.O)C4W8B0PDZ-.(`P"A5%X)"(M=V(7`#X1B -XM`@``QP0D!@```.B'$@``BQ.%T@^$9`(``/?"````0`^$)0$``,=%T`$```"# -XM^BH/A&<"``"#^BT/A$T#``#'1"0$+0```,<$)#(```#H1!(``(M%T(7`=1*+ -XM1<"%P`^%.P0``,=%P/____^+.X7_#X7,`P``C578B10DZ&84``"+?<#I2OW_ -XM_XM%T(U?`2M=T,'@`HE%Q.@*"@``BP:)'5Q>"0B#Z`0#1<2C6%X)".F/^?__ -XMQP0D`````.C6$0``Z;CX___'!"0?````Z,41``"0C70F`(U-V(E<)`2)#"3H -XM@8<#`#'`Z$KW__^#^/^)PW0IJ0```$!U(@^VT('Z_P````^'FP$``*'@70D( -XMBT20-/;$!76_@_M?=+J-1=@Q_XD$).B=AP,`B=CH9O+__\=$)`3$F`H(BT78 -XMB00DZ$-[`0")QNFG^___@_I_#X?2_O__]@25O5$)"`3'1=``````=13IO/[_ -XM_X/Z?W"0CIT_?__XL]7%X)"(7_#X60_?__BQ.% -XMT@^%G/W__\<$)`````#H#1```(L3]\(```!`#X6._?__Z:[^__^#PP3IKOW_ -XM_XD4).CVC___Z6'^__^A>)P+"(L,D(U"`:.8=PH(@>'___]_A7UW#QP0D`````.A)#@``Z2/\__^-="8`Z$OO__^#^'V)PW04QT0D -XM!'T```#'!"0R````Z"`.``")V.@9[___Z67Y__^+1=B)!"3H214!`.GO^/__ -XMB10DZ`B.___I%O7__XU%V(D$).@\$```BT8$Z+3O___IC_/__XM%V(D$).BD -XMB0,`B00DZ-B,__^Z$"\)"(7`#X4I^/__Z2GX__^+%?1="0B%T@^$B@```(M% -XMM(7`=%ZA]%T)"(D$).@DCO__B00DZ(!X`0")!"3H2.L``.GX]___QT0D!,28 -XM"@C'!"0D-@D(Z%]W`0"%P(G`]___C4W8OJ0@"0B)#"0QV^BC#P``QT7$ -XM!````.E(^___Z%(%``"A]%T)".@X[___Z:CW___'!"0K````Z"<-``#IOOS_ -XM_\<$)`0```#H%@T``(VV`````.E?____C70F`(V\)P````!5B>575E.![%R` -XM``"-?>3'1=@`````QT7<`````,=%X`````#'1CO__@\`! -XM=:;'1"0$`````(D\).B)C?__H0AV"@B)!"3HP!D#`(MUY(M=Z.AQDO__,?,Q -XMPX'C____`(D<).@C=P$`QP0D0#()"(G#B40D!.A!A0,`B1PDHPAV"@CHA!D# -XM`.E(____B1PDZ+.-___H_H[__XDPZ/>.__^+`(D$).B=C/__B5PD!,<$)#8` -XM``")1"0(Z-T+``")'"2-GXW__XM%"(U5[(F5M'___XD4),=%\``` -XM``")1>S'!71>"0@`````Z$>F``"-5>R)%"3'1"0$0/X$".CTI0``H71>"0C' -XM1<@`````QP7$EPH(`0```,=$)`2`_@0(B86\?___QP0DQ)<*".A4#@``C578 -XMB10DQT0D!+"1"`CH00X``(U%S,=$)`2PD0@(B00DZ"X.``"-5"0B)%5!>"0C'1=``````N`$```#H -XM2?#__X/X_W0QB<:!YO___S]TYX/^7`^$V`$``(U%S(D$)(ET)`3H4H`#`+@! -XM````Z!CP__^#^/]USXU5S(D4).B8@`,`BW7,QT0D!&````")-"3H@8[__X7` -XM#X3"`0``QT0D!`$```")-"3H+;$``(F%P'___XN%P'___XL0B<>%TG1$BP*) -XMUH7`=!V0)?___S^)`X/#!#F=N'___W1XBT8$@\8$A"0C___]_,<#H7NW__XG#@_MG#X23````@_MA -XM#X2^`0``@_MS#X2M````B5PD!,<$)!ZZ"`CH<0@!`(7`#X1Y`0``B5PD!,<$ -XM)&!>"0CH27T#`(/[<0^$=0$``#'`Z`GM__^#^#J)PP^%/P$``#'`Z/?L___' -XM!6Q>"0@!````QP5P7@D(`````(/X9XG##X1I____@_AA#X5S____QP5P7@D( -XM`0```.E;____@3UL7@D(____?P^$;____\<%;%X)"/___W\QP.B?[/__B<.# -XM^W,/A5/___\QP.B-[/__QT0D!',```#'!"1@7@D(B!="0B+1)`T]L0!=6F#_U]T9(/_?W<*]@2]O5$)"`1U58E\)`3'!"3_N0@( -XMZ%`'`0"%P'5!O@(```#K))"-="8`B5PD!,<$)&!>"0CH('P#`#'`.=\/E,`I -XMQ@^$T?[__S'`Z-KK__^#^/^)PW73A?8/A+O^___'!"18````Z*\%``"#Q`R) -XMV%M>7UWI$>?__Y")7"0$QP0D!P```.@`!@``Z7+^___'!6Q>"0C___]_Z7S^ -XM__^A<%X)"(7`#X4^_O__QP5P7@D(`0```.G*_O__B10DZ-2%___I*O___XUV -XM`%6)Y5.)PX/L%.LWD(UT)@"#^O]T8872>!WWP@```$"0=12#^G]_#P^VP@^W -XMA`#@(`D(J`]U58E4)`2)'"3H3GL#`+@!````Z!3K__^#^%R)PG6],<#H!NO_ -XM_X/X_W0<@_@*NB````!TOHG"@575E.#["RC4%X)"#'`QT7H -XM`````,=%[`````#'1?``````QP5,7@D(^&\)",<%1%X)"`````#HXN7__XU% -XMZ,<%5%X)"`````#'!5Q>"0@`````QT0D!/"1"`B)!"3HJP<``(U%W#';QT7< -XM`````,=%X`````#'1>0`````QT0D!+"1"`B)!"3H@0<``)"X`0```.@FZO__ -XM@_@GB<9T=']0@_@@=.B0C;0F``````^/_P$``(/X"8VT)@````!TSH/X"@^$ -XM]@```(/X_XGV#X3&`0``B35$7@D(C470,`@_XB#Y3`#[;XB?:) -XM^.B9Z?__.<:)PW1H@_@*#X3`````@_C_#X2W````B=@E____?ST*``!`#X3' -XM````@_XG#X3M````@_Y@#X3^````@_XB=;B#^V"X8````'0'B=@-````0(E$ -XM)`2-1=R)!"3H:'D#`(GXZ#'I__\YQHG#=9B#_F`/A3[___^-1=R)!"3'1"0$ -XM8````.@_>0,`C47B)!"3HSWH#`.EO_O__B70D!,<$)#,```#H -XM&@,``(G8)?___W\]"@``0`^%.?___XM5X(72#X0N____BT7`,` -XMZ;_^__^-1=R)7"0$B00DZ(!X`P#IJ_[__S'`Z$3H__^#^`J0#X0*_O__@_C_ -XM#X0!_O__B<:!S@```$#I.O[__X7;B?9T([C_____Z'3C__^-="8`Z0S___^# -XM^"(/A1C^__^)]NE0_O__C47B)!"3HFGD#`(/$+%M>7UW#B?95B>6#["B)=?PQ]HE=^(L- -XM*'<*"(7)=`R)\(M=^(MU_(GL7<.+10C'1?0`````B47PC47PZ,?\__^)PXL` -XMAP,`B1PDB<;H8`@!`(GPBUWXBW7\B>Q=PXUT)@!5B>53@^P$ -XMBQTH=PH(A=MU3XM%"(M($(G+C;0F`````(L1A=)T.HL"@\$$A!VI -XM````0'46@_A_C78`?PX/ML#VA`#@(`D(PW47D(M"!(/"!(7`==6+$872=<:# -XMQ`1;7<.)V.@#_/__BU4(B<.+0A")!"3HTP5=PXUT)@"-O"<`````58GE@^P(H`#`P6\8`D(BQ")%"3_4`2AP&`)"#L%Q&`)"'?:R<.0C70F`%6AQ&`)"(L5 -XMP&`)"(GE78D5Q&`)",.-=@"-O"<`````58GEBT4(BP")10A=Z>\-`P#K#9"0 -XMD)"0D)"0D)"0D)!5B>6#[!BA@%X)"(7`=`+)PX%]"(8```"-10R)1?QV!\=% -XM"(4```")1"0$BU4(BP25H%X)"(D$).AS6@,`HX!>"0C)PXVV`````(V_```` -XM`%6)Y8/L".@E____QT0D!`$```#'!"0`F@L(Z'V!__^058GE5U93@^P<```!`=`Z+-8!>"0B%]@^$M````(G>@>;_ -XM__\/@?Z&````=@6^A0```.CB&P$`]\,````@QP7`F`H(`0````^$C````*&` -XM7@D(A<<$)`$```#HAY___^@RS```QT0D"`(```#'1"0$&"\)",<$ -XM)/0N"0CH=G(!`*'4EPH(A -XM7UW#@>,````0=5B%_W0IH8!>"0C'!"2F&`D(B40D!.@O6@,`Z4[___^+%>1U -XM"0B%TG2)Z7C___^+1?")1"0$BP2UH%X)"(D$).CE60,`QP0D;\<(".CY60,` -XMZ1C___^-="8`H2!W"@C'!"0HN@@(B40D!.C;60,`ZY&)]HV\)P````!5B>5= -XMZ:<#`0"-M"8`````58GEBT4(BP")10A=Z<\#`0#K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[!B+10C'1"0(`````,<$)`,```")1"0$Z-M]___)PXVV`````(V\)P`` -XM``!5B>6#[!B+10C'1"0(`````,<$)`(```")1"0$Z.N!___)PXVV`````(V\ -XM)P````!5B>53@^P4BUT(.1W`8`D(7<.-=@#H=W[__XUT)@"-O"<`````58GE4X/L!(L5O&`)"*'` -XM8`D(BUT(C0S".6#[`B+#`#B40D!*&\8`D(B00DZ$,+`P"+#"0BA@)@* -XM"(D$).B`70``B00DZ.@&`0#'1"0,7[H(",=$)`@#````QT0D!`$```"CI%X) -XM"*&`F`H(B00DZ$Y=``")!"3HM@8!`,=$)`QMN@@(QT0D"`0```#'1"0$`0`` -XM`*.H7@D(H8"8"@B)!"3H'%T``(D$).B$!@$`QT0D#'ZZ"`C'1"0(!0```,=$ -XM)`0!````HZQ>"0BA@)@*"(D$).CJ7```B00DZ%(&`0#'1"0,C;H(",=$)`@& -XM````QT0D!`$```"CL%X)"*&`F`H(B00DZ+A<``")!"3H(`8!`,=$)`RDN@@( -XMQT0D"`<```#'1"0$`0```*.T7@D(H8"8"@B)!"3HAEP``(D$).CN!0$`QT0D -XM#,*Z"`C'1"0("````,=$)`0!````H[A>"0BA@)@*"(D$).A47```B00DZ+P% -XM`0#'1"0,V[H(",=$)`@)````QT0D!`$```"CO%X)"*&`F`H(B00DZ")<``") -XM!"3HB@4!`,=$)`SKN@@(QT0D"`H```#'1"0$`0```*/`7@D(H8"8"@B)!"3H -XM\%L``(D$).A8!0$`QT0D#/^Z"`C'1"0("P```,=$)`0!````H\1>"0BA@)@* -XM"(D$).B^6P``B00DZ"8%`0#'1"0,#;L(",=$)`@,````QT0D!`$```"CR%X) -XM"*&`F`H(B00DZ(Q;``")!"3H]`0!`,=$)`P?NP@(QT0D"`T```#'1"0$`0`` -XM`*/,7@D(H8"8"@B)!"3H6EL``(D$).C"!`$`QT0D##.["`C'1"0(#@```,=$ -XM)`0!````H]!>"0BA@)@*"(D$).@H6P``B00DZ)`$`0#'1"0,1;L(",=$)`@/ -XM````QT0D!`$```"CU%X)"*&`F`H(B00DZ/9:``")!"3H7@0!`,=$)`Q7NP@( -XMQT0D"!````#'1"0$`0```*/87@D(H8"8"@B)!"3HQ%H``(D$).@L!`$`QT0D -XM#&J["`C'1"0($0```,=$)`0!````H]Q>"0BA@)@*"(D$).B26@``B00DZ/H# -XM`0#'1"0,AKL(",=$)`@2````QT0D!`$```"CX%X)"*&`F`H(B00DZ&!:``") -XM!"3HR`,!`,=$)`R/NP@(QT0D"!,```#'1"0$`0```*/D7@D(H8"8"@B)!"3H -XM+EH``(D$).B6`P$`QT0D#)V["`C'1"0(%````,=$)`0!````H^A>"0BA@)@* -XM"(D$).C\60``B00DZ&0#`0#'1"0,M;L(",=$)`@5````QT0D!`$```"C[%X) -XM"*&`F`H(B00DZ,I9``")!"3H,@,!`,=$)`S"NP@(QT0D"!8```#'1"0$`0`` -XM`*/P7@D(H8"8"@B)!"3HF%D``(D$).@``P$`QT0D#-"["`C'1"0(%P```,=$ -XM)`0!````H_1>"0BA@)@*"(D$).AF60``B00DZ,X"`0#'1"0,WKL(",=$)`@8 -XM````QT0D!`$```"C^%X)"*&`F`H(B00DZ#19``")!"3HG`(!`,=$)`S,P@@( -XMQT0D"!D```#'1"0$`0```*/\7@D(H8"8"@B)!"3H`ED``(D$).AJ`@$`QT0D -XM#/&["`C'1"0(&@```,=$)`0!````HP!?"0BA@)@*"(D$).C06```B00DZ#@" -XM`0#'1"0,!+P(",=$)`@;````QT0D!`$```"C!%\)"*&`F`H(B00DZ)Y8``") -XM!"3H!@(!`,=$)`PBO`@(QT0D"!P```#'1"0$`0```*,(7PD(H8"8"@B)!"3H -XM;%@``(D$).C4`0$`QT0D#/#""`C'1"0('0```,=$)`0!````HPQ?"0BA@)@* -XM"(D$).@Z6```B00DZ*(!`0#'1"0,&,,(",=$)`@>````QT0D!`$```"C$%\) -XM"*&`F`H(B00DZ`A8``")!"3H<`$!`,=$)`PTO`@(QT0D"!\```#'1"0$`0`` -XM`*,47PD(H8"8"@B)!"3HUE<``(D$).@^`0$`QT0D#$##"`C'1"0((````,=$ -XM)`0!````HQA?"0BA@)@*"(D$).BD5P``B00DZ`P!`0#'1"0,2[P(",=$)`@A -XM````QT0D!`$```"C'%\)"*&`F`H(B00DZ')7``")!"3HV@`!`,=$)`QHO`@( -XMQT0D""(```#'1"0$`0```*,@7PD(H8"8"@B)!"3H0%<``(D$).BH``$`QT0D -XM#'J\"`C'1"0((P```,=$)`0!````HR1?"0BA@)@*"(D$).@.5P``B00DZ'8` -XM`0#'1"0,=,,(",=$)`@D````QT0D!`$```"C*%\)"*&`F`H(B00DZ-Q6``") -XM!"3H1``!`,=$)`R,O`@(QT0D""4```#'1"0$`0```*,L7PD(H8"8"@B)!"3H -XMJE8``(D$).@2``$`QT0D#*&\"`C'1"0()@```,=$)`0!````HS!?"0BA@)@* -XM"(D$).AX5@``B00DZ.#_``#'1"0,O[P(",=$)`@G````QT0D!`$```"C-%\) -XM"*&`F`H(B00DZ$96``")!"3HKO\``,=$)`S0O`@(QT0D""@```#'1"0$`0`` -XM`*,X7PD(H8"8"@B)!"3H%%8``(D$).A\_P``QT0D#-J\"`C'1"0(*0```,=$ -XM)`0!````HSQ?"0BA@)@*"(D$).CB50``B00DZ$K_``#'1"0,E,,(",=$)`@J -XM````QT0D!`$```"C0%\)"*&`F`H(B00DZ+!5``")!"3H&/\``,=$)`SJO`@( -XMQT0D""L```#'1"0$`0```*-$7PD(H8"8"@B)!"3H?E4``(D$).CF_@``QT0D -XM#/:\"`C'1"0(+````,=$)`0!````HTA?"0BA@)@*"(D$).A,50``B00DZ+3^ -XM``#'1"0,#;T(",=$)`@M````QT0D!`$```"C3%\)"*&`F`H(B00DZ!I5``") -XM!"3H@OX``,=$)`P;O0@(QT0D""X```#'1"0$`0```*-07PD(H8"8"@B)!"3H -XMZ%0``(D$).A0_@``QT0D#">]"`C'1"0(+P```,=$)`0!````HU1?"0BA@)@* -XM"(D$).BV5```B00DZ![^``#'1"0,.[T(",=$)`@P````QT0D!`$```"C6%\) -XM"*&`F`H(B00DZ(14``")!"3H[/T``,=$)`Q0O0@(QT0D"#$```#'1"0$`0`` -XM`*-<7PD(H8"8"@B)!"3H4E0``(D$).BZ_0``QT0D#&*]"`C'1"0(,@```,=$ -XM)`0!````HV!?"0BA@)@*"(D$).@@5```B00DZ(C]``#'1"0,:[T(",=$)`@S -XM````QT0D!`$```"C9%\)"*&`F`H(B00DZ.Y3``")!"3H5OT``,=$)`QVO0@( -XMQT0D"#0```#'1"0$`0```*-H7PD(H8"8"@B)!"3HO%,``(D$).@D_0``QT0D -XM#(.]"`C'1"0(-0```,=$)`0!````HVQ?"0BA@)@*"(D$).B*4P``B00DZ/+\ -XM``#'1"0,D;T(",=$)`@V````QT0D!`$```"C<%\)"*&`F`H(B00DZ%A3``") -XM!"3HP/P``,=$)`RAO0@(QT0D"#<```#'1"0$`0```*-T7PD(H8"8"@B)!"3H -XM)E,``(D$).B._```QT0D#/O>"`C'1"0(.````,=$)`0!````HWA?"0BA@)@* -XM"(D$).CT4@``B00DZ%S\``#'1"0,J+T(",=$)`@Y````QT0D!`$```"C?%\) -XM"*&`F`H(B00DZ,)2``")!"3H*OP``,=$)`RXPP@(QT0D"#H```#'1"0$`0`` -XM`*.`7PD(H8"8"@B)!"3HD%(``(D$).CX^P``QT0D#+N]"`C'1"0(.P```,=$ -XM)`0!````HX1?"0BA@)@*"(D$).A>4@``B00DZ,;[``#'1"0,RKT(",=$)`@\ -XM````QT0D!`$```"CB%\)"*&`F`H(B00DZ"Q2``")!"3HE/L``,=$)`S:O0@( -XMQT0D"#T```#'1"0$`0```*.,7PD(H8"8"@B)!"3H^E$``(D$).AB^P``QT0D -XM#.3#"`C'1"0(/@```,=$)`0!````HY!?"0BA@)@*"(D$).C(40``B00DZ##[ -XM``#'1"0,\;T(",=$)`@_````QT0D!`$```"CE%\)"*&`F`H(B00DZ)91``") -XM!"3H_OH``,=$)`P(Q`@(QT0D"$````#'1"0$`0```*.87PD(H8"8"@B)!"3H -XM9%$``(D$).C,^@``QT0D#`V^"`C'1"0(00```,=$)`0!````HYQ?"0BA@)@* -XM"(D$).@R40``B00DZ)KZ``#'1"0,*+X(",=$)`A#````QT0D!`$```"CH%\) -XM"*&`F`H(B00DZ`!1``")!"3H:/H``,=$)`P[O@@(QT0D"$0```#'1"0$`0`` -XM`*.D7PD(H8"8"@B)!"3HSE```(D$).@V^@``QT0D#%&^"`C'1"0(10```,=$ -XM)`0!````HZA?"0BA@)@*"(D$).B<4```B00DZ`3Z``#'1"0,7[X(",=$)`A& -XM````QT0D!`$```"CK%\)"*&`F`H(B00DZ&I0``")!"3HTOD``,=$)`QQO@@( -XMQT0D"$<```#'1"0$`0```*.P7PD(H8"8"@B)!"3H.%```(D$).B@^0``QT0D -XM#(B^"`C'1"0(2````,=$)`0!````H[1?"0BA@)@*"(D$).@&4```B00DZ&[Y -XM``#'1"0,FKX(",=$)`A)````QT0D!`$```"CN%\)"*&`F`H(B00DZ-1/``") -XM!"3H//D``,=$)`RHO@@(QT0D"$H```#'1"0$`0```*.\7PD(H8"8"@B)!"3H -XMHD\``(D$).@*^0``QT0D#"S$"`C'1"0(2P```,=$)`0!````H\!?"0BA@)@* -XM"(D$).AP3P``B00DZ-CX``#'1"0,3,0(",=$)`A,````QT0D!`$```"CQ%\) -XM"*&`F`H(B00DZ#Y/``")!"3HIO@``,=$)`RQO@@(QT0D"$T```#'1"0$`0`` -XM`*/(7PD(H8"8"@B)!"3H#$\``(D$).AT^```QT0D#,*^"`C'1"0(3@```,=$ -XM)`0!````H\Q?"0BA@)@*"(D$).C:3@``B00DZ$+X``#'1"0,<,0(",=$)`A/ -XM````QT0D!`$```"CT%\)"*&`F`H(B00DZ*A.``")!"3H$/@``,=$)`R]P``QT0D -XM#-B^"`C'1"0(40```,=$)`0!````H]A?"0BA@)@*"(D$).A$3@``B00DZ*SW -XM``#'1"0,\;X(",=$)`A2````QT0D!`$```"CW%\)"*&`F`H(B00DZ!).``") -XM!"3H>O<``,=$)`S`Q`@(QT0D"%,```#'1"0$`0```*/@7PD(H8"8"@B)!"3H -XMX$T``(D$).A(]P``QT0D#`V_"`C'1"0(5````,=$)`0!````H^1?"0BA@)@* -XM"(D$).BN30``B00DZ!;W``#'1"0,([\(",=$)`A5````QT0D!`$```"CZ%\) -XM"*&`F`H(B00DZ'Q-``")!"3HY/8``,=$)`P]OP@(QT0D"%8```#'1"0$`0`` -XM`*/L7PD(H8"8"@B)!"3H2DT``(D$).BR]@``QT0D#%>_"`C'1"0(5P```,=$ -XM)`0!````H_!?"0BA@)@*"(D$).@830``B00DZ(#V``#'1"0,9[\(",=$)`A8 -XM````QT0D!`$```"C]%\)"*&`F`H(B00DZ.9,``")!"3H3O8``,=$)`QROP@( -XMQT0D"%D```#'1"0$`0```*/X7PD(H8"8"@B)!"3HM$P``(D$).@<]@``QT0D -XM#(F_"`C'1"0(6@```,=$)`0!````H_Q?"0BA@)@*"(D$).B"3```B00DZ.KU -XM``#'1"0,F+\(",=$)`A;````QT0D!`$```"C`&`)"*&`F`H(B00DZ%!,``") -XM!"3HN/4``,=$)`RSOP@(QT0D"%P```#'1"0$`0```*,$8`D(H8"8"@B)!"3H -XM'DP``(D$).B&]0``QT0D#,R_"`C'1"0(70```,=$)`0!````HPA@"0BA@)@* -XM"(D$).CL2P``B00DZ%3U``#'1"0,W[\(",=$)`A>````QT0D!`$```"C#&`) -XM"*&`F`H(B00DZ+I+``")!"3H(O4``,=$)`SOOP@(QT0D"%\```#'1"0$`0`` -XM`*,08`D(H8"8"@B)!"3HB$L``(D$).CP]```QT0D#`S`"`C'1"0(8````,=$ -XM)`0!````HQ1@"0BA@)@*"(D$).A62P``B00DZ+[T``#'1"0,'\`(",=$)`AA -XM````QT0D!`$```"C&&`)"*&`F`H(B00DZ"1+``")!"3HC/0``,=$)`PNP`@( -XMQT0D"&(```#'1"0$`0```*,<8`D(H8"8"@B)!"3H\DH``(D$).A:]```QT0D -XM#$+`"`C'1"0(8P```,=$)`0!````HR!@"0BA@)@*"(D$).C`2@``B00DZ"CT -XM``#'1"0,3\`(",=$)`AD````QT0D!`$```"C)&`)"*&`F`H(B00DZ(Y*``") -XM!"3H]O,``,=$)`Q````,=$)`0!````HW1@"0BA@)@* -XM"(D$).BF1@``B00DZ`[P``#'1"0,K,4(",=$)`AY````QT0D!`$```"C>&`) -XM"*&`F`H(B00DZ'1&``")!"3HW.\``,=$)`SP```,=$ -XM)`0!````HX!@"0BA@)@*"(D$).@01@``B00DZ'CO``#'1"0,ML$(",=$)`A\ -XM````QT0D!`$```"CA&`)"*&`F`H(B00DZ-Y%``")!"3H1N\``,=$)`S-P0@( -XMQT0D"'T```#'1"0$`0```*.(8`D(H8"8"@B)!"3HK$4``(D$).@4[P``QT0D -XM#`#&"`C'1"0(@````,=$)`0!````HXQ@"0BA@)@*"(D$).AZ10``B00DZ.+N -XM``#'1"0,W\$(",=$)`B!````QT0D!`$```"CD&`)"*&`F`H(B00DZ$A%``") -XM!"3HL.X``,=$)`SYP0@(QT0D"((```#'1"0$`0```*.48`D(H8"8"@B)!"3H -XM%D4``(D$).A^[@``QT0D#$C&"`C'1"0(@P```,=$)`0!````HYA@"0BA@)@* -XM"(D$).CD1```B00DZ$SN``#'1"0,"\((",=$)`B$````QT0D!`$```"CG&`) -XM"*&`F`H(B00DZ+)$``")!"3H&NX``,=$)`P@P@@(QT0D"(4```#'1"0$`0`` -XM`*.@8`D(H8"8"@B)!"3H@$0``(D$).CH[0``QT0D##?""`C'1"0(A@```,=$ -XM)`0!````HZ1@"0BA@)@*"(D$).A.1```B00DZ+;M``#'1"0,5<((",=$)`B' -XM````QT0D!`$```"CJ&`)"*&`F`H(B00DZ!Q$``")!"3HA.T``,=$)`QFP@@( -XMQT0D"(@```#'1"0$`0```*.L8`D(H8"8"@B)!"3HZD,``(D$).A2[0``QT0D -XM#'#&"`C'1"0(B0```,=$)`0!````H[!@"0BA@)@*"(D$).BX0P``B00DZ"#M -XM``"CN&`)"(/$%%M=PY"0D)"053'`B>6+50A75E.+"H7)="B+-=A@"0B)UXVT -XM)@````!IP/$````QTHT$`8M/!(/'!/?VA6#["BA0)D+"(E=](EU^(E]_(7`=`J+'=A@"0B%VW5RBQW4 -XM8`D(A=L/A;````"+'?!@"0B+->Q@"0B)WP'W=$6A@)@*",=$)`P!QP@(QT0D -XM"`0```#'1"0$#0```(D$).CI0@``:\YDB5PD"(ET)`2)RL'Z'XD$)(G(]_^) -XM1"0,Z&D\`P"+7?2+=?B+??R)[%W#BS7,8`D(A?9TA*&`F`H(QT0D#*3&"`C' -XM1"0(`@```,=$)`0-````B00DZ(U"``"-%/4`````B50D"(E<)`2)!"3H%CP# -XM`.E#____D*&`F`H(QT0D#.S&"`C'1"0(`P```,=$)`0-````B00DZ$M"``") -XM7"0$B00DZ-\[`P#I&O___XUV`(V\)P````!5B>6#[`BAT&`)",<%0)D+"``` -XM``")!"3HX^T"`,<%T&`)"`````#)PXVT)@````!5B>53@^P4QT0D!,28"@C' -XM!"2`,@D(Z#5*`0"%P'1+BQWH=@H(Z&;\``"+10C'!<"8"@@!````QP7H=@H( -XM`````(D$).BG[```QP0D"@```.AK_@``Z#;\``")'>AV"@C'!<"8"@@````` -XM@\046UW#58GE5E.#['"+10B%P'0&BPB%R75KBT4,B00DZ*!;`P")QHU%F(E$ -XM)`2)-"3H*V+__X/``70@BU40A=)U(P^W3:")RH'B`/```('Z`(```'4%@^%) -XM=5*#Q'`QP%M>7<.0#[=-H+@!````B7<.+ -XM50R)!"2)5"0$Z(%8`P")PXD$).@G6P,`B1PDB<;HO>P"`.EZ____B30DQT0D -XM!`$```#HA&'__X7`#Y3`@\1P6P^VP%Y=PXGVC;PG`````%6)Y5=64X/L+(M% -XM#(M]"(7`#X5A`@``QT7P`````*$@)`D(P>`$!>#2"`@]X-(("'9YN_#2"`B+ -XM0_")!"3HWEP#`(D\)(E$)`3HKE[__X7`=4.+10R%P`^$Z@$``*&`F`H(QT0D -XM#"W'"`C'1"0("0```,=$)`0-````B00DZ#Y```")?"0$B00DZ-(Y`P#'1?`! -XM````H2`D"0B)VH/#$,'@!`7@T@@(.=!WC,=$)`3$F`H(QP0DE#()".A12`$` -XMA<")PP^$/P$``*%`F0L(QT7H`````(7`#X5C`@``B7PD!,<$)+@X"0CH4U<# -XM`(E%Y,=$)`0P*@@(B00DZ!#A__^+&X7;#X3S````BS.%]@^$Z0```(M%Z(M5 -XMZ,=%[``````!P,'B`HE%W(E5X.LFB?;V!=1@"0@"#X76````@\,$#X2W```` -XMBS.%]@^$K0```(-%[`&A0)D+"(7`=$C'1"0$C#,)"(DT).B/7?__A"+3>R+!`*#X1_3Z(/P`8/@ -XM`83`=9C'1"0(`````(M%Y(DT)(E$)`3H=/W__X7`#X1L____BW4,A?9T?(L# -XMQP0D4<<("(E$)`3H@S@#`(E\)`3'!"01%PD(Z',X`P"#PP3'1?`!````#X5) -XM____BU7DB10DZ&C?__^+1?"#Q"Q;7E]=PZ&`F`H(QT0D#$7'"`C'1"0("@`` -XM`,=$)`0-````B00DZ(@^``")!"3H(#@#`(MU#(7V=83'1?`!````BT7P@\0L -XM6UY?7<.AT&`)"(M5Z(M-[`^V!!"#X0?3Z(/P`8/@`>DI____B3PDZ'!8`P#' -XM1"0$+P```(D$).APW0``A<`/A;@```#'1"0$E'8*"(D\).AH1@$`A<`/A&?] -XM___'1"0$E'8*"(D\).A01@$`A<")PP^$3?W__Z&`F`H(QT0D#!O'"`C'1"0( -XM"````,=$)`0-````B00DZ-$]``")?"0$B00DZ&4W`P"+`X7`=`B)!"3HI^@` -XM`,<$)`H```#H:_H``,=%\`$```#I_?S__Z'08`D(BU77UW# -XMD%6)Y593@^P0BU4(BT($A575E.#[$R+10B+>`C'1"0$E'8* -XM"(L'B00DZ.]$`0#'1<0`````A#2"`@/AKP```"^ -XM\-((".L:H2`D"0B)\H/&$,'@!`7@T@@(.=`/AIL```"+1O")!"3H*U@#`(L? -XMB1PDB40D!.CY6?__A7UW#C;0F`````#G(#X18____#0```$")`X/# -XM!(/"!(L"A)!"3H28D``(D'B00DQT0D!#`J"`CH9]S__XL7 -XMB57(B10DZ#I5`P#'1"0$+P```(D$).@ZV@``B474QT0D!,28"@C'!"24,@D( -XMZ#-#`0"%P'00BS"%]G0*BP:%P`^%#0(``+[`(`D(BT7(QP0DN#@)"(E$)`3H -XM-U(#`,=%T`````")1=BA0)D+"(7`#X6?`@``BT70BU70BQ['1")5=SK/XL#A<`/A8$```#'1"0(`````(M%R,<$)`````")1"0$Z,_X -XM__^%P`^%E0```(M>!(/&!(7;#X1+`0``@T7,`8M%U(7`=;J+`X/X+W6UBPU` -XMF0L(A[`0```,<$),`X"0B)1"0$Z+-0`P")!XD$),=$)`0P*@@( -XMZ'':__^+50B)%"3H-K8``(L'B00DZ+S9___K,X/"!(D7BPKIL_S__XM%V(D$ -XM).C#Y`(`BT4,A<`/A)T```"+!S';B00DZ.Q0`P"+50R)`HU%[(D$).A\V?__ -XM@\1,B=A;7E]=PXM%U(7`#X3M_?__Z>/]__^AT&`)"(M5T(M-S`^V!!"#X0?3 -XMZ(/P`8/@`>F6_O__BT7$A<`/A;D```"A@)@*"(L?QT0D#%7'"`C'1"0(!0`` -XM`,=$)`0-````B00DZ&$X``")7"0$B00DZ/4Q`P#HX/(``.FJ_/__BT7$A<`/ -XMA8$```"A@)@*"(L?QT0D#'+'"`C'1"0(!@```,=$)`0-````B00DZ!DX``") -XM7"0$,=N)!"3HJS$#`.B6\@``Z2K___^+5"+3

3@,`B0>)'"3H).,"`,=$)`0P*@@(BP>)!"3HDMC__XM5#(72=".+!XD$ -XM).A!3P,`BU4,B0*+![L!````B00DZ,W7___I0?[__XM5"(D4).@MM```Z]^- -XM="8`C;PG`````%6)Y5=64X/L+(M=",=$)`3$F`H(QP0DE#()".@P/P$`A=N) -XMQG1BBT,$A`$`A?;'!4"9"P@!````#X1R`0``BS:%]@^$:`$` -XM`(L&A<`/A%X!``#'1?``````ZQB#Q@0/A$P!``"+!H7`D`^$00$``(-%\`&# -XM."]UXXD$).B93P,`B00DZ#U6__^%P(G'=,V)!"3'1"0$,!X%".B;UO__BT7P -XMBU7P@^`?@^(/B47HB57DB3PDZ'U9__^%P(G"#X3=````BPJ%R73H@'H(+G4; -XM@'H)`'3B-%(4`````N`$````#%=!@ -XM"0C3X`D"]@748`D(`0^$=?___XD<).@&40,`B00DZ/[P___'1"0,BL<(",=$ -XM)`@!````QT0D!`T```")1>RA@)@*"(D$).AV-```BU7PBTWLB5PD#(E4)`B) -XM3"0$B00DZ/PM`P")/"3HH%C__X7`B<(/A2/___^)/"3H\M3__X/&!`^%M/[_ -XM_X/$+%M>7UW#BTWP`P708`D(@^$'T^(($.EA____H2-%`"X`0````,5T&`)"-/@9@D"Z3C____'!53@^P4BUT(QT0D -XM"`````#'!"0"````C4,DB40D!.C75?__C4,\QT0D"`````")1"0$QP0D`P`` -XM`.B\5?__C4-4QT0D"`````")1"0$QP0D#P```.BA5?__QP7\F`H(`````(M# -XM(*/H=@H(H;1V"@B)!"3H!M<``*',EPH(B00DZ/G6``"A!'8*"(D$).CLU@`` -XMH429"PB)!"3HW]8``(M#$(E$)`2+`XD$).@>VP``QT0D"`$```#'1"0$`@`` -XM`(D$)*.T=@H(Z,U0__^+0Q2)1"0$BT,$B00DZ._:``#'1"0(`0```,=$)`0" -XM````B00DH\R7"@CHGE#__XM#&(E$)`2+0PB)!"3HP-H``,=$)`@!````QT0D -XM!`(```")!"2C!'8*".AO4/__BT,A@"0B)!"3H[=T" -XM`,<%Z&`)"`````"AY&`)"(7`=!")1"0$QP0D-P``$.A:T/__QP0D#0``$.A. -XMT/__R57B==64X/L+(E%V(D4).BZ3`,`B<.+1=B) -XM!"3H[4L#`(D=7)D+"(G&Z`Q3___'``````")7"0$B30DZ#I4___'!5R9"P@` -XM````B1PDZ*S6``#HXU+__XL`@_@(=%"#^`QT&X/X`G0-H>1@"0B%P`^$N@$` -XM`(/$+%M>7UW#D.BW4O__BP")!"3H75#__XET)`3'!"0V````B40D".B=S___ -XM@\0L6UY?7<.0C70F`,=$)`0`````B30DZ,#2``")1>"#P`%T+XU%\L=$)`@" -XM````B40D!(M%X(D$).A.T@``@_@"#X2!`0``A)!XE\)`2+1=R)!"3H(=<``(DWB<.+.(D$ -XM).AS2P,`B3PDB<;HJ4H#`(D<)(G'Z#_<`@"+1=R)!"3HA-4``(ET)`2)/"2) -XM-5R9"PCH[E+__XDT),<%7)D+"`````#H8-4``.B74?__BP")!"3H/4___XE\ -XM)`3'!"0V````B40D".A]SO__@\0L6UY?7<.0C70F`,=$)`3$F`H(QP0D*#() -XM".A,.`$`A<`/A-T```#'1"0$Q)@*",<$)"@R"0CHD#@!`(-]X/^)1>AT#H!] -XM\B-T"*&DF`H(B47HQT7L`````(U%Z(D$).C'V0``B47")!"3H^-(``(D<).@\3O__B70D!,<$)'@```")1"0( -XMZ'S-___I+O[__Z%T=PH(Z2W___^-M@````"-O"<`````58GE5U93@^Q,BWT( -XMC5WLBT<0BP#'1?``````B47LBT4,A%P`^$Y0$``(L(AO__\<%M'8*"``` -XM``#'!QT70``````'2P>`"B56XB46\ZRJ)]HL#AQ@"0@!QP5,F0L(`````(D4 -XM).B4UP(`Z&_Y__^#Q$Q;7E]=PXM%R(7`#X2I_O__Z9_^__^+!XD$).C]Y___ -XMB47,Z<#^__^AT&`)"(M5S(M-T`^V!!"#X0?3Z(/P`8/@`>DU____B40D!(D< -XM).A:>```A<")Q@^%G_S__XM%[(D$).B%10,`QP0D,0``$*,@=PH(Z*3)___I -XM?OS__XD<)(E$)`3H(W@``(7`B<,/A03]__^AZ&`)"(D$).A,10,`QP0D,0`` -XM$*,@=PH(Z&O)___IX?S__XVV`````*'H8`D(BQ"#^B\/A(G\__^#^BX/A(#\ -XM___HDOC__Z'H8`D(Z7'\__^AT&`)"(M5N(M-T`^W!`*#X0_3Z(/P`8/@`>EX -XM_O__B?:-O"<`````58GE5E.#Q("AC'8*"(MU#(7`=0VAE'<*"(7`#X5/`@`` -XMQT0D!,28"@B-78S'!"1@-@D(Z,@R`0#'!"0`````A<`/E<`/ML")1"0$Z$"$ -XM``"-1;")1"0(QT0D!-!V"@C'!"0"````Z(%,__^-1")1"0(QT0D!%1W"@C'!"0/````Z$M,__^AZ'8*"(L5 -XMM'8*",=$)`3_____B46LHAV"@@` -XM````Z+O)___'!"3_____Z!_O`@")-"3'1"0$`0```.A/^?__B1PDZ/?(__^# -XM[(!;7EW#QP0D`````.ADZ@``Z:#]__^0D)"0D)"0D)"0D)"0D)!5A<")Y5.) -XMTP^$`@$``(L(A='N#^2)T=HUT -XM)@"#XPAT8(/Y/+@$````C78`=`>#^3ZP`G5,6UW#C70F`(M`"(7`==GVPQ!T -XM%H/Y?)!T.(/Y/'1N@_D^=0:#^CZ0=##VPP1TN8/Y/70_@_DAD'6N@_H]N`8` -XM``!TO8/Z?K`(=9WKM%LQP%W#@_HFC78`==!;N`$```!=PXVV`````(G06UW! -XMZ`2#X`'#@_H]=.*#^GZX!P````^%8O___XGVZ73___^#^CQUF(VV`````.O` -XMC;0F`````(V\)P````!5B>6#['B)!"2)7?2)=?B)UHE]_.CG0`,`@#@`B<-T -XM(8U&_X/X`78@B70D!(D<).A(1___BUWTBW7XBWW\B>Q=P[@!````Z^R-192) -XM1"0$B1PDZ$5'__^#P`%TY8ET)`2)'"3H%$?__X7`#X2"````BT6@.P4LF0L( -XM#X26````BT6D.P7HF`H(=%7'!"0$````Z'9&__^#^/^)QP^$H0```(7`#XZH -XM````C12%`````(D4).BXT@(`B3PDB<.)1"0$Z`9'__^+?:2-#(.)PHGV@^H! -XM>&.+0?R#Z00Y^'7Q#[=5G,'F`S'`A=8/E,#I0O___P^W59R)T"4`\```/0!` -XM``!T&H/^`70B@_X"="2)]N@G1?__#[=5G,'F!NO(9C'`@_X!=>/I"?___[Y) -XM````Z[1FOI(`ZZX/MU6575E.! -XM[/P```"+?0B)^X/#!(L#QP0DIL<("(E$)`3H:L0``(7`=>>+`X7`=0V#>_Q, -XMC5/\#X0``P``B40D!,<$)+W'"`CH0\0``(7`=7O'A13______P``QX48____ -XM`````,>%(/___Q`O"0B+`X7`#X6P````C4<$.=@/A*4```"+10RZ'P```(L8 -XMBS.)\.B9_/__A<`/A4D"``"+50R-0P2)`O9%$`$/A(D```#'!"3X;PD(Z*,\ -XM`P")QX'$_````(GX6UY?7<.+,X/#!,>%%/______``#'A2#___]L+PD(@_Y& -XM=!.#_E#'A2#___\@+PD(#X1)`@``QT0D!&PO"0B)'"3H?T+__X7`#X3^`0`` -XMQX48____`````(L#A<`/A%#____'!"1Z```0Z'O"___I2O___XDT)#'VQT0D -XM!`(```#H)'(``(F%'/___XD$),=$)`0P*@@(Z#[%__^+5P2-1P3'A1#___\` -XM````,?^)PXU"J(/X('9"A=(/B-8````Y%=Q="0@/CLH```"AX%T)"(N$D#0$ -XM``"#^&P/A,````"%_P^$ZP0``(U"OX/X.7#PP2%]G6)BY4<____B10D -XMZ`7$__^)-"3HG2P!`('$_````%M>B<>)^%]=P[H"````Z[.+E1S___^)%"3H -XM63T#`(D$).C]/___B00DZ`5'__^)QNNDN@0```#KBL=$)`0`````BX4<____ -XMB00DZ#CB__^)QNN#B="#^&P/A4#___^+A1#___^%P`^$500``(/Z3`^%,?__ -XM_XN]$/___XM3!(U#!+X!````A=(/A=W^__^+E1S___^)%"3HVSP#`(D$).CC -XMQ@``B[4@____A<")PW0*B00DZ.\^`P")QHD<).A5S@(`BX4<____B00DZ"?# -XM__^)-"3H?SH#`(G'Z=?]__^)-"3HD#P#`(U5B(E4)`2)!"3H'4/__X7`#X6C -XM````BU4,BQJ+,^F,_?__B70D!,<$),K'"`CH;<$``(7`#X3J_?__@\,$QX48 -XM____`0```.DR_?__B=.P3.GW_/__BP.#^"\/CJS]__^#^#QX4@____("\)".E:_?__,?;I-?[__\<$)`L``!#H^K___XM% -XM#(L8BS/IW?S__X/Z00^$=P,``(/Z30^$G`,``(MW*(N5&/___XEU\(72#X3W -XM_?__C47PB00DZ'E!__^)!"3HM3T#`,=$)`0*````B00DBF-?>B)\R7_#0``(X44____QT0D"-''"`C'1"0$!P```(E$)`R)-"3HPAD# -XM`(N%&/___X7`=`R`?>DP=`;&1>@PB?N+E1S___^)%"3HCL#__XD<).@V/`,` -XMB00DZ-XW`P")Q^DV^___BWC[__\/MT<()0#P```] -XM`"````^4P`^V\.G/^___#[='""4`\```/0!````/E,`/MO#IMOO__[X!```` -XMZ:S[__\/MT<()0#P```]`(````^4P`^V\.F3^___#[=W",'N"H/F`>F$^___ -XM#[=W",'N"8/F`>EU^___BY40____#[="""4`\```/0"@```/E,`/MO#I5OO_ -XM_XMW!.E.^___#[=W"NE%^___BY4<____B10DZ-@X`P"-58B)5"0$B00DZ&4_ -XM__^#P`$/A+@```"+$XU]B.GE^O__BX4<____B00DZ*@X`P"-E2C___^)5"0$ -XMB00DZ`(\__^#P`$/A*@```"+$XV%*/___XF%$/___^EO^___BT<0B00DZ!_! -XM``"%P(GX_?__BY4<____B10DZ->^__^+!HD$).A].@,`B00DZ"4V`P") -XMQ^E]^?__BW<8Z8W\__^+1PR)!"3H.\```(7`B<8/A+3]__^+A1S___^)!"3K -XMNHVV`````(MW(.E?_/__BX4<____B00DZ'J^__^+E2#___^)%"3HS#4#`(G' -XMZ23Y__^+E1S___^)%"3H5[[__XN%(/___XD$).BI-0,`B57B<=64X/L'(E5 -XMZ.@M"@``B47PB00DQT0D!#`J"`CH:K[__XL?N@0```"+`^CL]/__A<")Q@^$ -XMH@```(U#!(D'C4;YBUWH@_@!#X;>````B=J)^.CE"0``B47LQT0D!#`J"`B) -XM!"3H(K[__X/C`74?@_X5````C70F`'YN@_X'#X2M````@_X(B?9T?XM% -XM\(D$).A3O?__BQ^+`X7`=!3'1"0$,#L)"(D$).C'.O__AR)1"0$BT7P -XMB00DZ)UP``"%P`^4P`^V\.EB____@\L"Z1K___^+1>R)1"0$BT7PB00DZ'9P -XM``")QNE!____BT7LB40D!(M%\(D$).@9.O__A<`/E<`/MO#I(O___U6)Y8/L -XM&(E=](G#B77XB7W\B57PZ'?^__^+.XG&BP>%P'04QT0D!"@["0B)!"3HV3G_ -XM_X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\QQNO>C;0F```` -XM`%6)Y8/L&(E=](G#B77XB7W\B57PZ(?___^+.XG&BP>%P'04QT0D!"`["0B) -XM!"3H>3G__X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\)QNO> -XMC;0F`````%6)Y8/L&(E=](G3B77XB<:)??SHB/___XG'BP:)1?"+`(7`=!3' -XM1"0$%#L)"(D$).@7.?__AQ=PXM%\(/`!(7_B08/ -XME,`)PXGP@^,!B=KHG?___X7_#Y7"A<`/E<`/MO@AU^O%C;8`````C;\````` -XM58GE@^P8B5WTBUT,BT4(B77XB7W\B=KH9/___XG&BT4(BSB+!X7`=!3'1"0$ -XM"#L)"(D$).B3./__AQ=PXUT)@"+50B#XP$)\XU' -XM!(D"#Y7`#[;`B40D!(D4).B1____"?`/E<`/MO#KQ(VT)@````!5B>57B<=6 -XM4X/L3(E5O(L8BS.%]@^$&P(``,=$)`1`.PD(B30DZ"(X__^%P'5)@\,$B?B) -XM'XM5O.C#____QT0D!#`J"`B)PXD$).@1N___B=CH*OS__XD<)(G&Z&"Z__\Q -XMP(7V#Y3`B00DZ/$B`0"#Q$Q;7E]=P\=$)`1(.PD(B30DZ,4W__^%P'5%@\,$ -XMB?B)'XM5O.AF____QT0D!#`J"`B)QHD$).BTNO__B?#HS?O__XDT)(G#]]/H -XM`;K__XD<).B9(@$`@\1,6UY?7<.0QT0D!%`["0B)-"3H;#?__X7`=4R#PP2) -XM'XM%O(D\)(E$)`3HB/[__XG&BP>+$(72=`6#.BET#L<$)"$``!#H7;?__XL' -XMC5@$B1^)-"3H/B(!`(/$3%M>7UW#C;8`````QT0D!%@["0B)-"3H##?__X7` -XM#X4?`0``B=Z#Q@2-1>R)7<")\\9%R`''1# -XM/BT/A$L!``#V1;P"#X0L`0``B30DZ(DO`P#IT_W__XL'C5C\B1_'0/P````` -XMQT0D"`(```#'1"0$$"\)",<$)/0N"0CHZB@!`(U%X(E%Z(G#B47DQT7@^&\) -XM"(L&AW__^A@%X)"(7`=`S'!"0```!`Z/*T___'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$_____XD<).BZ`0$`C47@B00DZ`^W___HFE;__^DI -XM_O__QT0D!`(```")-"3H960``.F?_/__BT8$QP0DIL<("(E$)`3H;;4``(7` -XM=1N+1@3'!"2]QP@(B40D!.A6M0``A<`/A(/^__^+1;R)?"0$B30DB40D".BK -XM\/__Z57\__^-M@````!5B>6#["B)7?2)PXEU^(E]_(G7Z,C[__^Z`@```(E% -XM\(LSBP:)1>SHI.W__X7`=":-1@3WQP(```")`W0IBU7PB10DZ'C!`@"+1>R) -XM!"3HK2T#`(E%\(M%\(M=](MU^(M]_(GL7<.+5?#'1"0$,"H("(D4).C'MO__ -XMB?J)V.A^____QT0D!#`J"`B)QHD$).BLMO__@^+5>R+`H/X*G1G@_@O -XM=$*#^"5T'8UV`#'VBT7PB00DZ..U__^)-"3H>QX!`(E%\.N,B?#HC_?__X7` -XMB<-T2XM%\.B!]___B<+!^A_W^XG6Z\B)\.AO]___A<")PW0[BT7PZ&'W__^) -XMPL'Z'_?[B<;KJ(M%\.A.]___B<.)\.A%]___B<8/K_/KD,<$)$@```#H(K/_ -XM_XGVZZ7'!"1'````Z!*S__^)]NNUC;0F`````(V\)P````!5B>6#["B)7?2) -XMPXEU^(E]_(G7Z)C^__^Z`0```(E%\(LSBP:)1>SH5.S__X7`=1"+1?"+7?2+ -XM=?B+??R)[%W#C48$B0.+5?#'1"0$,"H("(D4).B8M?__B?J)V.B?____QT0D -XM!#`J"`B)QHD$).A]M?__@^R+`H/X*W0?@_@M=#`QVXM%\(D$).B\ -XMM/__B1PDZ%0=`0")1?#KCXM%\.AG]O__B<.)\.A>]O__C1P8Z]*+1?#H4?;_ -XM_XG#B?#H2/;__RG#Z[V-="8`58GE@^P8B5WTB77XB<:)??R)5?#H%____XG' -XMBP:+&(7;=!V+`\<$)-3'"`B)1"0$Z-NR``"%P'0'BP,[0P1T$(GXBUWTBW7X -XMBWW\B>Q=PY"#!@3'1"0$,"H("(D\).B]M/__BU7PB?#HD____\=$)`0P*@@( -XMB<:)!"3HH;3__X,[/'0HB?CHM?7__XG#B?#HK/7__XG!T_N)/"3HX+/__XD< -XM).AX'`$`BBP/HMNK__X7` -XMB<R)\.B#____QT0D!#`J"`B) -XMQHD$).C!L___]D7L`74=@_\#='F-M@````!^-H/_!`^$@P```(/_!8GV=$:+ -XM1?")!"3H\[+__XD\).B+&P$`B47PBT7PBUWTBW7XBWW\B>Q=PX/_`G75BT7P -XMZ(OT__^)PXGPZ(+T__\YPP^?P`^V^.NZBT7PZ'#T__^)PXGPZ&?T__\YPP^> -XMP`^V^.N?BT7PZ%7T__^)PXGPZ$ST__\YPP^=P`^V^.N$BT7PZ#KT__^)PXGP -XMZ#'T__\YPP^Q=PXGVN@$```#&1=W_Z]20C70F`%4QP(GE7>N(D(VT)@`` -XM``!5B>6#[`B)'"2)="0$BW4(BUT,Z%0R___'``````"+`XE%#(L&B44(BQPD -XMBW0D!(GL7>GU,O__B?:-O"<`````5;@!````B>575E.![$PA``#H*O___XU% -XM\,=$)`1`;04(B00DZ/>Q__^-A3/?__^)1"0$H;1V"@C'1"0(`"```(D$).C8 -XML0``A<")1?`/CM8-``"-E3/?__^)%"3&A`4SW___`.C'+`,`BTT(B0PDB40D -XM!.A$+O__BT4(B00DZ#DO__^+50B)1?"+7(+\@^-_@_L*#X20#0``.T4,#X2' -XM#0``,<"#^QL/E,"%P(F%V-[__P^$U0<``(M%\(/[&XM-"(T$@8F%S-[__P^$ -XM4`@``(N%S-[__\<``````(M5"#F5S-[__XF%T-[__W9"BXW,WO__B8W0WO__ -XMZQ>0C70F`(.MT-[__P2+C=#>__\Y30AS'8N5T-[__XM"_,<$)&#)"`B)1"0$ -XMZ#$R__^%P'31BX70WO__QT7L`````,=%E`````#'19@`````QT6<`````(,X -XM?@^$4P<``(N5T-[__\=$)`0O````B10DZ)PL__^+C=#>__\QTHF-W-[__X7` -XM=!2#P`2)PBN5T-[__XF%W-[__\'Z`HN-T-[__XE4)`2)#"3HF"<#`,=$)`0P -XM*@@(B87@WO__B00DZ&*P__^+A>#>__^#.'X/A$@&``")!"3H"R<#`(F%Y-[_ -XM_XN=Y-[__X7;#X1Z!@``BXWDWO__QT0D!#`J"`B)#"3H(;#__XN5Y-[__[B2 -XM'0D(BPJ%R0^%E0@``(D$).B0+___A<")A?S>__\/A!@,``#'A?C>__\````` -XMBXW__^)!"3HK*___\>%[-[__P$```#'A>C>__\`````B[7XWO__ -XMA?8/A.D$``#HT3+__X7`#X2M````BP")!"3H@RH#`(G'A?^)^8N5W-[__W4/ -XMZ9`````[`77$@\($@\$$BP*%P'7PBX7TWO__AR+ -XM`H7`#X13"P``.PL(.P2/C78`=0R#P@2#P0&+`H7`=>S'`@`` -XM```[C?3>__\/A3C___^+G>S>__^%VW0+BTV8A__^%P`^$ -XM0P<``(M%F(7`#X1H!```@[W8WO__`0^%2@<``(N%T-[__RM%"(M5#,'X`BG" -XMBX7XWO__C5K_A<`/A*,*``"+C=#>___'1"0(`@```,=$)`1(.PD(B0PDZ`5: -XM`0"+1>R+C=#>__^)7"0(B40D!(D,).B,60$`BX7@WO__B00DZ(ZM__^+79C' -XM!"0(````Z-_(``#'!"0(````Z-/(``"+C__^)#"3HH2O__X7`#X5B!@`` -XMQP0D(````.BQR```QP0D(````.BER```QP0D"````.B9R```QP0D"````.B- -XMR```Z`C'``"-C33___^#ZP&)C<#>__]T*,=$)`3$F`H(QP0D\$4)".BC%`$` -XMC94T____B97`WO__A<`/A/D)``"+10C'1"0$"0```(D$).BX+O__QX74WO__ -XM`````(7`#X3J````@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".A/K?__BY7$WO__ -XMH__^#992_B47`BT68B4PD"(-EF/V) -XM1<2+19S'1"0$`````(E%R(M%H(E%S(M%I(E%T(M%J(E%U(M%K(E%V(M%L(E% -XMW(M%M(E%X(M%N(E%Y(M%O(E%Z*',EPH(B00DZ'^L``"AS)<*",=$)`@!```` -XMQT0D!$;)"`B)!"3H$JP``(U%P(E$)`BAS)<*",=$)`0`````B00DZ$:L``#' -XM!"3$K`L(Z.JK___'A=3>__\!````BXW8WO__A__^%TG04 -XMQT0D!`````#'!"0`````Z-03`P"#!<2L"P@!QT0D!+"0"`C'!"3$K`L(Z#FL -XM__^+E<3>__^AS)<*"(E4)`2)!"3H_B?__XM%E(N-Q-[__\=$)`0`````B84T -XM____BT68B4PD"(F%./___XM%G(F%//___XM%H(-EH(")A4#___^+1:2)A43_ -XM__^+1:B)A4C___^+1:R)A4S___^+1;")A5#___^+1;2)A53___^+1;B)A5C_ -XM__^+1;R)A5S___^AS)<*"(D$).A,JP``BU4(BP*%P'12B=__^%P`^$$?G__XN5P-[__Z', -XMEPH(B50D!(D$).C-)O__BXW`WO__H%Z-[_ -XM_P````"+A?S>__^)!"3HCRW__X7`#X2[^___@\`(B00DZ)`E`P")Q^D(^___ -XMBY7HWO__A=(/CK#[__^+A?C>__^%P'2>Z,@L___'A>S>__\`````QX7HWO__ -XM`````.FK^O__C464B87$WO__BX7@WO__B00DZ(RI__^-E33___^+79B#O=C> -XM__\!B97`WO__#X6!_/__Z>#[__^+E>#>__^+G>#>__^+0@2#PP2%P`^%S@$` -XM`,=$)`3$F`H(QP0DD"\)".@]$0$`B5PD!(D$).@!(`,`B87DWO__BYWDWO__ -XMA=L/A8;Y__^-592)E<3>___I=?___XD\).AG(`,`C564B10DB40D!.A('@,` -XMZ?OY___'!"0*````Z/?$``#I&OC__\>%U-[__P$```#I"_W__\=$)`0O```` -XMB00DZ)\J__^%P`^%E?C__^C"*___BY70WO__QT0D!#`J"`C'!"0`````@\($ -XMB97__\`````QX7DWO__`````,>%^-[__P$```#'A>#> -XM__\`````Z1KY__^-M@````"#Z`2)A___IHO?__\=$)`3$F`H(QP0D($() -XM".C>#P$`A<`/A+7Y__^+`(7`#X2K^?__BPB%R8F-\-[__P^$F_G__XF%'-__ -XM_XGYBP&#P02%P'7WBY7PWO__BP*#P@2%P'7W.97PWO__#X0Y`0``.?ET+8UR -XM_(M2_#M1_(U!_(G#=1T[M?#>__\/A!D!```Y^W0-BT/\@^X$@^L$.09TXXN% -XM'-___XM`!(.%'-___P2%P(F%\-[__W6/BT68@\`!B468@^@!#X4D^?__B3PD -XMZ.L>`P")1>SIB_C__X/X+P^$*?[__XG>@\8$BP:%P'51.=X/A!;^__^)\"G8 -XMP?@"B1PDB40D!.@4'P,`B<.)!"3HRB`#`(D$).@BJ0``B1PDB___'!"22N0@(B50D!.C,_P(` -XMZ:KY__^)%"3H3R`#`.E>]___BXW\WO__B0PDZ(RI``#IJOC__X.%Z-[__P'I -XML_?__XE$)`2+193'1"0,4&T%",=$)`@$````B00DZ&@C__^+A>3>__^#O?C> -XM__\!BU68BWV4&]%-___X7`B<*)A03?__]U#\>%!-___P$```"Z`0```(N-`-__ -XM_XU$"O^)T3'2]_&)A__^-A33___^)A<#>__^+A__^%P`^.Q`$``(N- -XMR-[__XN%!-___XF](-___\>%"-___P````#!X0*#Z`&)C;S>__^)A;C>__^+ -XMG03?__^%VP^.4`$``(N-(-___S'VB[T(W___B8T8W___ZR*0BX6\WO__@\8! -XM`[W(WO__`848W___.[4$W___#X08`0``.;T`W___=M>+E1C?__^+`L<$))*Y -XM"`B)1"0$Z/_]`@"+A0S?__^Z(````(7`#X2+````BXT8W___BP&)1"0$BX4, -XMW___B00DZ+(;`P")PXD$).A8'@,`B1PDB840W___Z.JO`@"+C1#?__^-E33_ -XM__^)5"0$B0PDZ)XA__^%P'4X#[>-//___XG()0#P```]`*````^$R0```#T` -XMP```NCT```!T&#T`0```LB]T#X/A2;HJ````=06Z(````(D4).AYP```.;6X -XMWO__#XX-____BXT8W___BP&)!"3HB2+__XU8`3N=%-___P^-[O[__\<$)"`` -XM``"#PP'H/\```#N=%-___WSIZ=+^__]FQT7"4`#IW?W__\<$)`T```#H&\`` -XM`,<$)`H```#H#\```(.%"-___P&+E0C?__^#A2#?__\$.97(WO__#X5J_O__ -XMBY7@WO__B10DZ-&C___IW?;__XN5$-___XV%-/___XE$)`2)%"3HT"/__X7` -XM=1P/MX4\____NCX````E`/```#T`0```#X0C____ND````#I&?___XN%S-[_ -XM_\<$))*Y"`B)1"0$Z&3\`@#'!"0@````Z,B^``#'!"0(````Z+R^``#I*O;_ -XM_XU-\(D,).A,H___BT7P@<1,(0``6UY?7<.-392)C<3>___IEOG__XN%X-[_ -XM_XN5T-[__XE<)`B)1"0$B10DZ&1/`0#I6O7__S')QP(`````.XWTWO__#X4# -XM]/__Z<;T__^AS)<*",=$)`@!````QT0D!$3)"`B)!"3HV:(``(V--/___XF- -XMP-[__^G9]?__D)"0D)"0D)!5B>5=PXUT)@"-O"<`````58GE7<<%=&$)"``` -XM``##D%6)Y5W'!=0D"0@!````PY!5B>53@^P$H0!A"0B#^/]T$XD$)/\5\*P+ -XM",<%`&$)"/____^+'8"8"@B#^_]T,\<%@)@*"/_____K&I"-="8`Z/575E.#["R+11"+712)1"0(BT4,B5PD#(E$)`2+10B)!"3H9_[_ -XM_X,]`&$)"/^)QP^$V````#G##X30````B47LB00DZ&$D__^+#?Q@"0B%R8G" -XMC4`!B47H#X2Y````H?Q@"0B-=>2-7?")1?"0BT7HA<`/A(H```"A^&`)"`,% -XM_&`)""M%\(ET)!")7"0,B47DC47HB40D"(U%[(E$)`2A`&$)"(D$)/\5[*P+ -XM"(/``76[Z*(@__^#.`>-=@!U3J'X8`D(`<")1"0$H?Q@"0B)!"3H%JP"`(7` -XMB<)T,(M%\"L%_&`)"-$E^&`)"`'0B47PBT7HB17\8`D(A<`/A7;___^+/?Q@ -XM"0B0C70F`(/$+(GX6UY?7<.-0B&C^&`)"(D$).AVJP(`A<"C_&`)"`^%*O__ -XM_^O7C;0F`````%6)Y5=64X/L+,=$)`1P?`4(QP74)`D(`````,<$)-0D"0CH -XMZ9___Z$@)`D(QT7H`0```(E%\,'@!(VXX-(("('_X-(("'8DN^#2"`@Q]HL# -XMB00DZ!0C__\YQG,"B<:#PQ`Y^W+I@\8!B77HH>"7"@@QTL=%Y`$```#'1>P` -XM````@\`!]W7HA1T -XM6Z$@)`D(P>`$!>#2"`@[1=QVYHM%W(L8B1PDZ'4B__^)7"0$QP0D^]X("(G& -XMZ%?W`@`Y?>Q^&3MUZ',4QP0D(````(/&`>A>N@``.W7H=>R#1=P0@\`Y1=1^%HL]8&0)"(7_=5;'!"0*````Z"^Z``"#1>`!BT78.47@#X5? -XM____BQU@9`D(A=MT#,<$)`T```#H";H``,<$)`H```#H_;D``,<$)-0D"0CH -XMX9W__X/$+%M>7UWIM;<``,<$)`T```#HV;D``.NAV"@B)1=BAS)<*"(E%[*$$=@H(B47PZ.ZC``#'1"0(`0`` -XM`,=$)`0"````B477UW#B1PDB40D!.BR1P``A<") -XMPW0AQT0D!/`C!@B)WXD<).CZF___B1PDZ/*@``")QNDI_O__QP0D,0```.CO -XMF/__Z]&-M@````"-O"<`````58GE4X/L%(M="(L#HTAW"@B+0P3'!?R8"@@` -XM````HTB:"PB+0PBCZ'8*"*&T=@H(B00DZ`B>``"AS)<*"(D$).C[G0``H01V -XM"@B)!"3H[IT``(M#&(E$)`2+0PR)!"3H+*(``,=$)`@!````QT0D!`(```") -XM!"2CM'8*".C;%___BT,6#[`BAP'8*"(7`=3&AE'<*"(7` -XM=`C)PXVV`````,=$)`0!````QP0D`0```.BX&___QP7,K`L(`0```,G#QP0D -XM+@``$.A4E___Z\&)]E6)Y593@^PPH329"PB%P`^%50$``(UUX.@3-___B70D -XM",=$)`0`````QP0D$@```.CW&O__QT0D!`````#'!"02````Z%,;___'1"0$ -XM$@```,<$)`````#H/Q;__\=$)`@`````B70D!,<$)!(```#HMQK__X,]U)<* -XM"/]U:>G4````.QWP=@H(#X2>````B70D",=$)`0`````QP0D%0```.B%&O__ -XMQT0D!`````#'!"05````Z.$:___'1"0$%0```,<$)`````#HS17__\=$)`@` -XM````B70D!,<$)!4```#H11K__\<$)`\```#H&1G__X/X_XG#=8GH31G__XL` -XMB00DZ/,6___'1"0$ILD(",<$)#8```")1"0(Z"^6__\['?!V"@@/A6+___^A -XMW)D+",<$)`````")1"0$Z%H7__^AW)D+",<$)`\```")1"0$Z!45___'!"0/ -XM````Z*VT`@"#Q#!;7EW#QP0D2@```.C:E?__Z9K^__^0C70F`%6)Y5>)QU93 -XM@^P,BQ7@(@D(A=)X4+O@(@D(,?:-="8`BT,$B00DZ*43`P")/"2)1"0$Z*F7 -XM``"%P'02A?9T#,<$)"<``!#HA97__XG>BT,0@\,0A -XM7UW#QP0D%@``$#'VZ%V5___KYHUT)@"-O"<`````58GE@^Q(B7W\B<>-1>2) -XM7?2+70B)=?B+=0R)5=2)1"0$BP>)!"3HD1K__XM%U(7`=#Z+5>B)=?"+1>0[ -XM5?")7>Q]3HU5Y(E4)`2+!XD$).@X'/__,=*%P'A?BUWTB="+=?B+??R)[%W# -XMC;0F`````(GRB=B!\O___W_WT`G"="*)=>B+5>@[5?")7>2+1>1\LG\%.T7L -XM=JN)1>R)5?")]NNAH2R9"PB%P'35BT7LBU7PB47DB57HZXKHCA?__XGR@?+_ -XM__]_BP")1=R)V/?0"<(/A-\```"A@)@*",=$)`S4O@@(QT0D"`,```#'1"0$ -XM#P```(D$).CT]?__B00DZ%R?``#'1"0$,"H("(E%X(D$).@IE___BTW4N$7) -XM"`B%R0^%N0```(D$).@QGP``QT0D!#`J"`B)QHD$).C_EO__BT7")7"04B70D$(E\)`B)5"0,BU78B00DB50D!.CO[@(`BT7@ -XMB00DZ/25__^Z_____^FD_O__H8"8"@C'1"0,L,D(",=$)`@"````QT0D!`\` -XM``")!"3H%?7__^D<____H8"8"@C'1"0,M\D(",=$)`@$````QT0D!`\```") -XM!"3HZ_3__^D=____C;8`````58GE5S'_5E.#[`R+=0C'1?``````@\8$BQZ% -XMVW0T@SLM#X6*````@\,$BP.%P'3E@_AF#X3&````@_AH#X2S````QP0D@@`` -XM`.CRDO__B?;KU:'@(@D(,?:[X"()"(7`>$>)V(GZQP0D_____\=$)`3___]_ -XMZ';]__\]````@(/>_X/#$(L#A%]G03QT4(````((/$#%M> -XM7UWIEY+__X/$#%M>7UW#B=B)\^L*BT,$@\,$A=>+1?"%P'70QP0D````(.A-DO__Z\*_`0```.DH -XM____QT7P`0```.D<____D(UT)@!5B>56B<93@^P0H:`C"0B%P'0K,=OK#HL$ -XMG:0C"0B#PP&%P'09B40D!(DT).C;$?__A+`XE%\`^^$(L!*=!UVHM%\(D$).AI#P,`BTT(B0PD -XMB40D!.@V$?__AZ[F-M@````"-OP````!5B>6#[#B)7?2) -XMTXEU^(G&B7W\BW@(BT`$QP0DOB+5>R)1=B)5=R+5=R+1=B!\O___W_WT`G"#X2,```` -XMBPZ%R71WBT8,BU7PC' -XM1=0!````A?8/A6;____'1=P!````BS7@(@D(N^`B"0B%]G@3BU77UW#QP0D&```$.@IC___V478V`4@S@@(V04XS@@( -XMV=C[=V,=%R/_____'17UWIT8[__]E]Z@^W1>JT#&:)1>C9;>C? -XM?KKNHM5U(GP@\0\6UY?7>EH_?__VT8(V$W8V7WJ#[=%ZM@%(,X("+0, -XM9HE%Z-EMZ-]]R-EMZNN%BSZ%_P^$1?___[K^R0@(B=CH_O+__]E%V-@--,X( -XM"-E=V.DT____BP:%P`^%'O___[K7R0@(B=CHU_+__]E%V-@-*,X("-E=V.D- -XM____BP:%P`^$]_[__[KWR0@(B=CHL/+__]E%V-@-,,X("-E=V.GF_O__BP:% -XMP`^%Q````+K=R0@(B=CHB?+__]E%V-@-),X("-E=V.F__O__BP:%P`^%J?[_ -XM_]GNV478VNG?X,=%R`````#'1K>P;0,9HE%Z-EMZ-]]R-EMZNF&_O__ -XMBP:%P`^%1O[__[KOR0@(B=CH__'__^E!_O__NL;)"`B)V.CN\?__QT7(____ -XM_\=%S/___W_I3/[__XL&A<`/A`S^___'`VT```"ZYE7$/__A,EUX('[_P$``'_8B54(@\0$6UWI/A#__\<$)`````#H -XM,A#__P^WV(D<).@G$/__B5T,QT4(!575E.#[!R+10B) -XM1>RAT)<*"(E%\(L(AQT">L6@\($.P%U -XM#XM"!(/!!(7`=>^#.3UT%HM+!(/#!(7)=`2)S^O/@\0<6UY?7<.-0P3'`P`` -XM``")1"0$H="7"@B)!"3HAI,``*/0EPH(H=AU"0B)!"3H!)(``*'0EPH(B00D -XMZ,<'`P"CV'4)"(D[B3PDZ)B8`@"+1?")10B#Q!Q;7E]=Z8:8`@"-M@````!5 -XMB>575E.#[!RAT)<*"(E%X(L(A564X/L((M%"(M`!(7`=%:)!"3H=C@! -XM`(7`B<8/A+P```"A<&$)"(U=],<%<&$)"`$```")1?2)'"3'1"0$T#@&".AG -XMC/__B70D!,<$)!$7"0CHI^0"`(D<).BOB___@\0@6UY=P\<%=&$)"`$```#' -XM1"0$8'P%",<$)'1A"0CH*HS__XL=T)<*"(L#A)UU93@^Q,QT0D!,28"@B)1BQB%VW08QT0D!*PZ"0B)'"3H2@C__X7` -XM#X5[`@``QT70`0```(M7!#';N`$```"-=P2%T@^$LP```*&4=PH(A<`/A=@` -XM``")-"3HE3<``(G'A?]T$,=$)`3P(P8(B3PDZ`^+___V1=`!=`J#?<@@#X2_ -XM`0``BS>)^L=%S`````"+1=")5=31Z(A%N(7V=%2AE'<*"(7`=!GIU@$``(VT -XM)@`````-````0(D$).CCIP``BP:%P`^$3@$``(/&!(/X7'7A@'VX`'3;BQZ# -XMQ@2#^W9V<<<$)%P``$#H!:8``(G8Z\&+32)'"3H -XM&OL"`(DT).BR-@``B1PDB)^X7V#X2X_O__QT0D!,`["0B)-"3H$`;__XGZQT7,`````(7`#X4?_O__ -XMBW<$C5<$QT7,`0```.D-_O__C5WDB1PDZ,;Y`@")'"3H3HC__^DF_O__B=`- -XM````0(GVZ1#^___'1"0$O#H)"(D<).BW!?__QT70`@```(7`#X1M_?__QT0D -XM!-`Z"0B)'"3HF`7__\=%T`,```"%P`^$3OW__\=$)`3D.@D(B1PDZ'D%__^% -XMP`^5P`^VP(E%T.DN_?__C;8`````C;PG`````%4QP(GE@^P(BU4(Z,#\___) -XMZ9JA``"-=@"-O"<`````5;@@````B>6+50A=Z9_\___K#9"0D)"0D)"0D)"0 -XMD)!5B>575E.#["R-1>")!"3HK%,``*'@F0L(A"9 -XM"PAT+HG8BU`0BU@LA=)TY3L0=>$[5>!UW(/Z`G0QT!\=` -XM!`````#'!"0!````,?8Q_^C96```B<.-M"8`````@_L@#X2W````@_L)#X2N -XM````@_LC#X2X````@_O_B?8/A`D!``"#^PH/A`0"``")'"3HR4\``,=%\`$` -XM``")]L<$)`$```#HA%@``(/X7(G##X3^````@_LG#X3`````@_LB#X2W```` -XM@_O_C70F``^$N0```(/[*`^4P(G&BT7LAR)!"3HK/D"`(M% -XM\`GX=5J)\(3`=%2+3>R%R0^%OP$``(/[(+X!````#X5/____C;8`````QP0D -XM`0```.@$6```B7UW#,<`YWP^4 -XMP(/H`2''Z13____'!"0!````Z&]7``"#^`J)PP^%Z_[__[,@,?;I"?___Z$$ -XM80D(_R2%C,T(",=$)`0)R@@(,?;'!"04```0Z-F"__^#Q!R)\%M>7UW#H0AA -XM"0@Q]HD$).B0_@(`QT0D!!K*"`C'!"04```0HR!W"@CHIX+__X/$'(GP6UY? -XM7"__^#Q!R)\%M>7UW#QT0D!.(&"0@Q]L<$)!0``!#H1X+__X/$ -XM'(GP6UY?7<.+1>R%P`^$^O[__\<$)`H```#HMDT``(7V#X3H_O__BT7L@V@$ -XM`8D$).@_^`(`@\0) -XMQU:)UE.#[#R#_PJ)3@`````QT7L`````,=%\`````"C!&$)"(D-"&$) -XM"`^$Y@,``(U=Z,=$)`2PD0@(B1PDZ)2$___'1=``````H9B)'"3H?8/__X/$/%M>7UW#D(UT)@#_)(7,S0@(B=CH@0_/__ -XMA?8/B0O____I;O___X/_"W3D@_\$=-\QP.CR^___A?8/B>W^___I4/___Y"- -XM="8`@_\!#X1'`@``@_\!@]X`,<"#;=`!Z,;[__^%]@^)P?[__^DD____A?:- -XMM"8`````#X4*____@_\+C;0F``````^$!?___S'`Z)/[__^%]I`/B8W^___I -XM\/[__Y"-="8`@_\/#X77_O__A?:0C70F``^%RO[__S'`Z&/[__^-=@#IQO[_ -XM_X/_#P^%LO[__X7V#X6J_O__B=CH0_O__XM%[(7`#X7@`0``BU7HB10DZ*U] -XM__^)!"3H=8$``,=$)`0P*@@(B47,B00DZ**"__^+1B#?(+\.@^%,OW__X/H`8/_"HE%[,<$ -XM@@`````/A+````"#_P\/A1/]__^+1>C'1"0$H#L)"(D$).@<_O[_A<`/A?C\ -XM___I*?[__XUV`(M%T(7`#X6T_?__BQ7@F0L(A=(/A*;]__^+0BRCX)D+"(G0 -XMZ/CQ___IDOW__XL5Q",)".D/____BU7H@WR"_#H/A17^__^#Z`&)1>S'!((` -XM````Z0#^__^+`.DI____C478QT78`@```,=%W`````#'1>``````B00DZ&%- -XM``#I]?O__XM%R(E$)`2+1>B)!"3H=OW^_X7`#X52_/__Z8/]__^-M@````"- -XMO"<`````58GE@^P(BQ7@F0L(@WH0`G01C4(0B00DZ!--``#)Z1WX__^+0A0+ -XM0AAUYS'),=(QP.A:^___H>"9"PB#P!")!"3HNDL``*'@F0L(@T`4_X-0&/_) -XMZ>?W__^-M"8`````58GE@^P(H>"9"PB%P'07H2AW"@B%P'0(R<.-M@````#) -XMZ7K____'!"0O```0C78`Z.M\___KV(GVC;PG`````(L5*'<*"%6)Y872=`-= -XMPY!=,"9"PC'0!``````H91W"@B%P'4U -XM, -XM?O__H2AW"@B%P'4.B=DQTK@/````Z.?Y__^)70B#Q!!;7EWI&7[__XU3!+[X -XM;PD(ZYWK#9"0D)"0D)"0D)"0D)!5B>564X/L$(L=X)D+"(MU",<%Q",)"`H` -XM``"%VW44ZSV-0Q")!"3H-$L``(M;+(7;="N#>Q`"=>B+0Q0+0QAUX#'),=(Q -XMP.AT^?__C4,0B00DZ-E)``"+6RR%VW75B?$QTK@*````Z%3Y__^#Q!!;7EWI -XM^?7__XGVC;PG`````%6)Y5.#[!3'1"0$`````(M%"(M`!(D$).C3*@``QT0D -XM!#`J"`B)PXD$).CQ??__H2AW"@B%P'4(B1PDZ$#___^)70B#Q!1;7>DS??__ -XMC78`H2AW"@A5B>6%P'0$7<.)]ETQR3'2N`0```#IT?C__Y!5B>6#[!B+%>"9 -XM"PB+0BB%P'1CBT(@@W@$`(U(!'1!BP")2B")!"3H1/0"`(D$).AL?```QT0D -XM"`(```")1"0$H>"9"PB+0"B)!"3H<.T``*'@F0L(B00DZ!-*``#)PY#'1"0$ -XM`````,<$)`````#H+/W__\G#B10DZ/))``#)D,/K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[`B+#>"9"PB%R706BQ4H=PH(A=)T!LG#C70F`,GI2O___\<$)"\``!"- -XM=@#H^WG__^O9B?:-O"<`````58GE@^P(H>"9"PB%P'0GH>"9"PB#P!")!"3H -XM44@``*$H=PH(AGZ_O__QP0D+P``$(UV`.BK>?__Z\B) -XM]HV\)P````!5B>564X/L$(L=X)D+"(7;=`Z+`SL%[)@*"`^$@@```#';BQ4H -XM=PH(,?:#10@$A=)U'J'`=@H(A7 -XM7<.%VW6VC44(QT0D!`$```")!"3H&,#__X7`#Y3`#[;PZZZ+4PB+#?28"@B+ -XM0P0S!?"8"@@QT0G!#X5B____BT,,.P7XF`H(#X53____BTLHA"9"PB) -XM4"RCX)D+"*'`=@H(QP7$(PD($@```(7`#X09____Z(K[___HA?W__Y"-="8` -XMZ0G____'!"0A```0C70F`.@K>/__Z>S^__^-M@````!5B>6#[`BAC'8*"(7` -XM=0FAE'<*"(7`=1FA-)D+"(7`=`+)P\<$)$8```#H\7?__\G#QP0D`````.BS -XMFP``H329"PB%P'7;Z]N0C;0F`````%6)Y8/L&*&,=@H(A575KX!````4X/L#(M="(M%#(U[!(E%\(VV`````(L'B00D -XMZ`;?``#'1"0$`@```(D<)`^O\.CS?```BP.%P'04QT0D!&A-"0B)!"3H6?;^ -XM_X7`=,FA*'<*"(7`=`6^`0```*&4=PH(AQP0DQ*P+".B`>/__@\0,6UY?7>G$>P`` -XMQP0DQ*P+".AH>/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".CM>/__ZZ^#!<2L -XM"P@!QT0D!+"0"`C'!"3$K`L(Z-!X___I>?___XUT)@"-O"<`````58GE5KX! -XM````4X/L$*$H=PH(@T4(!(7`#X29````BUT(BP.%P`^$G@```,=$)`0@2`D( -XMB00DZ''U_O^%P'4QBT,$A7<.)]H7V=/.+50R+0A`IP\'[`HE<)`2)!"3HI7L``(M% -XM#(D$).@:_O__Z-5Z``"#Q!!;7EW#,53@^P4 -XMBT4(B00DZ&[Q`@#'1"0$\",&"(G#B00DZ+QW___HI_S__\=$)`3$F`H(QP0D -XM8#8)".BCW@``QP0D`````(7`#Y7`#[;`B40D!.@;,```QT0D"`````#'1"0$ -XM5'<*",<$)`\```#H6_C^_XE<)`3'!"0DR@@(Z*OX_O^)7"0$QP0D(,H(".B; -XM^/[_B1PDZ*=V___H,A3__\=%"`$```"#Q!1;7>EQ%/__D%6)Y8/L".@5_/__ -XMQT4,`````,=%"`````#)Z4$6__^058GE@^P(QT0D!)1V"@B+10B)!"3H=^`` -XM`,GI<1@!`)!5B>6#[`C'1"0$_____\<$),28"@CH9ML``,G#C70F`%6)Y593 -XM@^P0BT4(BW`$A?8/A-,```"+4`B-6`B%T@^$@@```,=$)`2@-PD(B30DZ(CS -XM_O^%P'58B30DZ'#O`@#'!"00```0HR!W"@CHCW/__XD<).@W?P``B30DB7>E7 -XMD0``QT4,_____\=%")1V"@B#Q!!;7EWI7MH``(/$$%M>7<.-M"8`````58GE -XM5U93@^PLBUT(BWL$@S\M=`S'!"1Z```0Z+!R__^-0PB)!"3H!2(``,=$)`3P -XM(P8(B47@B00DZ()U__^+=>")=?"+#H7)=%^-1?"#Q@3'1"0(`````(E$)`2) -XM/"3HO*[__\=$)`0P*@@(B<.)!"3H2G7__XE<)`3'!"22N0@(Z(K-`@")'"3H -XMDG3__XL>A=MTK<<$)!W<"`CH<,T"`(EU\(L.AE+Y0(`H91W -XM"@B%P'4DQT0D!`````#'!"0"````Z&KU_O_'!5!W"@@`````@\046UW#QT0D -XM!,"/"`C'!"0"````Z`KE`@#KVI"-M"8`````58GE@^P8B77XBW4(B5WTB7W\ -XMBWT,BT80B00DZ'"0__^+!Z,@=PH(BT80B00DZ,YQ``"-6/\[7PA\*SM?#'X, -XMQP0D#P``$.BEQ=_^''!"0.```0 -XMZ']P___KQXVV`````(V\)P````!5B>575E.#[`R+70B+0Q"+`(E%\(G"BP"I -XM````0`^%BP```(/X.G09B10DZ*!Q``"#^#H/A*(```"+5?"#.B5T>:$@)`D( -XMP>`$C;#@T@@(@?[@T@@(=E>_X-((".L-B?:%P'A$C7L0.?YV0XGP*?C!^`7! -XMX`2-'#B+1?"+"P^^$`^^`2G"B=!UUXD,).C?[0(`BU7PB10DB40D!.B@'0$` -XMA;R)WCG^=[TQVX/$#(G86UY?7<.+0P2H`70Q@^#^B4,$N\@C"0B) -XM%"3H;.L"`*/((PD(Z]6+1?"[Z",)"(D$).A5ZP(`H^@C"0CKOHM%\+O8(PD( -XMB00DZ#[K`@"CV",)".NGC;0F`````%6)Y5=6,?93@^P,BT4(B47PH="7"@B+ -XM&(7;#X24`@``BQ.%T@^$N0```#')@_H]#X2N````@\$!BQ2+A=(/A?X````Y -XMSGT"BV!^_\```!VVHD<))"-="8`Z&?M_O^I -XM```$`'31@SV`40D(`<<%0&0)"``````/E,(QP('[_P````^?P"'0HV"9"PCH -XM6?D!`*$\9`D(A<`/A$?^__^A0&0)"(7`#X4Z_O__Z$K)`0#I,/[__\=$)`2@ -XM3`D(B3PDZ-'L_O^%P'4-B1PDZ`EO`0#I#_[__\=$)`3@-`D(B3PDZ+#L_O^% -XMP`^%]_W__^B'S/__Z&+-__^)]NGF_?__B7T(@\0,6UY?7>G\;O__N`0```#I -XMG/W__XGV58GE5U93@^P,BT4(BW`$C7@$A?8/A)4"``"+!H7`="F)\^L*BT,$ -XM@\,$A)!"3H&F___XE\)`2)-"3H#N'_ -XM_\=$)`2(.PD(B30DZ.KK_O^%P`^$^````(GPZ,_9__^%P`^$%`$``,=$)`1% -XMR0@(NX````#'!"0`````Z+KQ_O_'1"0$1!="0CK'HM$GC2I```$`'4L@\,!@?O_````?R'WPP```$!U[8'[ -XM_P```';:B1PDB?;H9^O^_ZD```0`=-2#/8!1"0@!QP5`9`D(``````^4PC'` -XM@?O_````#Y_`(="C8)D+".A9]P$`BQT\9`D(A=MT+8L-0&0)"(7)=2/H4,7UWI,VW_ -XM_\=$)`3@-`D(B30DZ*_J_O^%P`^$O````,=$)`3`2PD(B30DZ)?J_O^%P'1V -XMQT0D!"A`"0B)-"3H@^K^_X7`#X7!````B3PDZ'=L``#'1"0(`@```,<$)-`O -XM"0B)1"0$Z'_=``")/"3H%VW__XD\).B_;/__B3PDZ#?F`@"+%8AW"@B%THG# -XM#X4\`0``QP5@90D(`````(/$#%M>7UWIR`$`B7T(@\0,6UY?7>E?;/__Z,K)___HI7UWI'N#__\=$)`0\0`D( -XMB30DZ*KI_O^%P'1%QT0D!!A*"0B)-"3HENG^_X7`#X7I````B3PDZ(IK``#' -XM1"0(`@```,<$)`!*"0B)1"0$Z)+<``")/"3H*FS__^F3_O__B7PD!(D\).AY -XM+O__B3PDB -XM7UWI*S?__[@(````OQZR"`C\B=Z)P?.F#X2M_O__N`4```"_,;(("(G>B<'S -XMI@^$E_[__\<$)(`Q"0C'!>29"P@!````QP6(=PH(`````.ANW```Z7+^___' -XM1"0$H#\)"(DT).B5Z/[_AY_[_A7UWI -XMT_0!`,=$)`0`3`D(B30DZ*_G_O^%P'31QT0D!"!,"0B)-"3HF^?^_X7`=+W' -XM1"0$Y$L)"(DT).B'Y_[_A!="0B+1)`T]L0!=1.#^U]T&L<$ -XM)!T``!#H*6?__XL>A=MT4_?#````0'4_BSW@70D(ZR.-=@"+1(!(7;="N#Q@3WPP```$!U%`^VPSW_````=M:)!"3HZN;^_^O0QP0D -XM'P``$.C09O__BT7PB<.+.(M`!(/#!(,X*`^$TP```,<$)!,``!#HKF;__X/# -XM!(D<).AS`0``A<`/A(````")1"0$B1PDZ!\5``"%P(G\````QT0D!#`` -XM``#'!"0!````Z$%T`@")<"2)PXEP((D$).CA-```B3PDZ`G@`@")0RBAX)D+ -XM",=#$`(```")0RR+/"9"PC'!<0C"0@)````A?]U/XLU*'<*"(7V -XM="F#Q`Q;7E]=PXD<).C#<0``B<:)!"3HJ0```.N"B10DZ`OF_O_IN_[__X/$ -XM#%M>7UWI+NO__^@IZ?__Z[J)'"2-="8`Z.MF``"+1(/\@S@I#X44____Z1O_ -XM__^A*'<*"(7`#X4W____QP0D,0``$.BP9?__Z2;___^0D)"0D)"0D)"0D%6) -XMY593@^P0BUT(ZPF-=@"+$(72=1"+`X/#!(7`=?&#Q!!;7EW#B<:)%"3_50R+ -XM5@2#Q@2%TG3>Z^Z-M@````!5B>6+30B+$8/!!(72=!*+`H7`=/$E____/XD" -XM@\($Z^Y=PXVV`````(V\)P````!5B>575E.#[`BAV)<*",=%\`````")1>R+ -XM50B+`H7`#X3I````@T4(!(L0@_I^#X1^````@_H]='F#^GL/A*````"%TG32 -XMBU@$C4@$ZS:)]H/Z>W0YA=)X._?"````0)!U,H/Z?W\M#[;"]H0`X"`)""!T -XM((--\`&#P02%VW29B=J+7@2#^F")SHUY_'7"@TWP`NOD@WWL`W7>A=N-="8` -XM#X1R____@_HN=`V#P02)]NO-@TWP`NN*@_LND(UT)@!UZ8M!!(7`=`6#^"]U -XMW8M5"#EZ_'0&@WGX+W7/@TWP`NO)BU@$A=L/A"O___^#^WT/A5/___^+2`B% -XMR0^%2/___XM5"(L"A<`/A1?___^+1?"#Q`A;7E]=PXVT)@````!5B>575E.# -XM[%R%THE%N(E5M(E-L(L`B47`#X2[`P``BQ*)5;R+1<"+`(7`B47$#X2``0`` -XMBWW`BU7$@SI[=12+0@2%P`^$6@$``(/X?0^$%P(``(M-Q,=$)`1[````B0PD -XMZ-;G_O^%P`^$-@$``(M%Q,=%Z`````#'1>P`````QT7P`````,=%W`````#' -XM1>``````QT7D`````,=%T`````"#.'MT$X/`!(,X>W7XB<,K7<3!^P*)7="- -XM<`2+0`2%P`^$%`$``(GSQT7,`````.L@@_A[#X3O````@_A]D`^$!P$``(/# -XM!(L#A<`/A.D```"#^%MUVX/#!(L#@_A=#X3M`@``A7^__\IPHG0P?@"@_AD`"B4VP -XMB40D!(D<).AQ<`(`BTVXB47`B0&+5<")^"G8@^#\C3P0BT6\*=B#X/P!T(E% -XMO.D!____BP:)!X/O!(DT).@;;P(`Z3K___^+0@B%P`^$+____^G9_?__BTW0 -XMC57HBT7$B10DB4PD"(E$)`3H/=D"`(U-W#G>B4VL#X>\````C47R)\"G(P?@"B40D".BWV`(`BTVHC47HB00DB4PD!.@EV0(`C57HB10D -XMZ`K7`@"+1>B)!"3H?]H"`(U-W(D,)(E$)`3H8-@"`(U.!(G..?,/@V3___^+ -XM7:R)'"3H&-@"`(G&BT7HB00DZ`MN`@"+1>"%P(E%R`^)I?W___?8Z8[]__^- -XMM@````"#1"L"PB+=?R)`Z'DK`L(B4,$H>BL"PB)0PB+ -XM7?B)[%W#C70F`(V\)P````!5B>575HG.4X'LK*```(F%<%___XM%"(F5;%__ -XM_X7`=1#'A7Q?__\`````]D$#0'0*QX5\7___````0(U%Y(U=[(E%W,9%S`'' -XM1=``0```QT74`````,=%V`````#'1>``````QT7D0#P)",=%Z`````#HR8$` -XM`(U%S(D$),=$)`1@/P8(Z"9B__^)'"3H3JH``(D<)(U=\,=$)`1`'@4(Z`MB -XM___'1"0$0!X%"(D<).C[8?__C57,QT0D!/____^)%"3H.)P``(7`#X4O`P`` -XMBT7LB00DZ$5D``"+1?#'1"0$`0```(D$).B":```H01V"@C'1"0$`@```(D$ -XM).AM:```Z!CG_O_HPV@``(DUD'8*"(L&A!.L.@_@-=#&+`X/#!(7` -XM=#$E____/XE#_,=$)`3$F`H(QP0DX#$)".AHR```A"0B%P'02B00DZ/]J`@#'!8!>"0@` -XM````QP0D>'8*".@96```QT0D!)#I!0C'!"1X=@H(Z%5@__^A@%X)"(7`=`S' -XM!"0```!`Z%!=___'!"1X=@H(Z/1X``"A@'8*",=$)`@`````QT0D!'AV"@B) -XM!"3H9W4``,=$)`1`*P8(B<.)!"3H!6#__Z&`7@D(A___'!"0`F@L(Z(#=_O^AP)@*",<%<'8* -XM"`````"%P`^$S?[__XN%@%___\<%_)@*"`````")!"3H55[__XN5O%___XN% -XMN%___XD5+)H+"(N5M%___Z,HF@L(BX6P7___B14DF@L(BY6L7___HR":"PB+ -XMA:A?__^)%1R:"PB+E:1?__^C&)H+"(N%H%___XD5%)H+"(N5G%___Z,0F@L( -XMBX687___B14,F@L(BY647___HPB:"PB+A9!?__^)%02:"PBC`)H+".BF6___ -XMZ2'^__^)'"2-G%A%___P````")G61?__^)E6A?__^%]@^$G````(N->%___X7)=4"+%X'B -XM____/XF5=%___P^%K0$``(U%[(D$).BA7?__Z`RB``"-17UW#C;8`````BX5T7___AB5PD!"G8B40D"(M%[(D$).BQ70``QX6,7___```` -XM`(7`#XY9`0``C3PP.;UD7___#X-V`0``C9W,W___B;W`7___QX6(7___```` -XM`.L-`<.#A8A?__\!.?MS0(NUP%___XN5B%___XE<)`0IWHV$E%B%___P````#I_O[__XUV`%6)Y5=64X/L+(MU"(U%W(D$),=%Z`````#' -XM1>P`````QT7P`````,=%W`````#'1>``````QT7D`````,=$)`3PD0@(Z+=; -XM__^-1>B)!"3'1"0$L)$(".BD6___BP:%P`^%F````(GS,<")1"0(C47HB70D -XM!(D$).A3T`(`BPN%R0^$X@```(M#!(U[!(7`#X67````B?XQTH7`=1O'1"0$ -XM8````,<$)#,```#H7UC__XGR*?K!^@*)5"0$@\8$B3PDZ%G2`@#'1"0$,"H( -XM"(G#B00DZ"=;__^+10R)V8U5Z(D$)(U%W.AD^/__B1PDZ&Q:__^+!H7`#X1H -XM____@_A@B?,/A%W___^-M"8`````@\,$BP.%P'4,B=@I\,'X`NE%____@_A@ -XM=>;K[8/X8(G^#X1>____@_A<=!^#Q@2+!H7`=0R)\BGZP?H"Z4C___^#^&!T -XM[X/X7'7A@\8$BQ:%TG78Z33___^+1>R%P'0+C57HC47- -XM153@^P4 -XMBTT(BT$$@_@M='FI````0'5J@_A_=V7V!(6]40D(!'1;BU$(@^@PC5D(]\(` -XM``!`="7K*)"-="8`]@25O5$)"`1T&8/#!(T$@(U$0M"+$_?"````0'4%@_I_ -XM=MV%TG5YB00DZ-$4__\QR87`=`Z)7"0$B00DZ)_.`@")P8/$%(G(6UW#BU$( -XMC5D(A=)U6,=$)`3$F`H(QP0D=#,)".BGOP``A<")PG1)BP"%P'1#BPUDF0L( -XMBP&+0`R%P'4TBT$$BT@,A*)/"3HLF$"`,<#`````(M-X(MQ -XM!(/!!(E-X(7V=9*+1,"B5PD!(D4)(E-U.@E8@(`BU70C9P#`2#P`2)1=R%_W0ZBP>#^#UUX(D\).@[_?__A<")PP^$:P$``#G'=-.)/"3H -XME6`"`(M-W(D9BT7OHQT0D!,28"@C'!"0`/`D(Z.B[``"%P'0*B30DZ#Q4 -XM___KGXL&A%]G4&]D7P`74ZB1PDZ*[K__^) -XMV(MU^(M=](M]_(GL7<.)V(GRZ`;\__^)PXG'Z]")70B+=?B+7?2+??R)[%WI -XMC%P``(D<),=$)`3P(P8(Z+Q3__^)V.AE^?__.<>)PW0*B3PDZ`=3___KIXD$ -XM).A-4___Z^R-="8`C;PG`````%6)Y5.#[!2+70B)'"3H7NO__X7`=!J)'"2) -XM1"0$Z`[___^%P(G#="*)V(/$%%M=PXD<).@87```B<.)!"3H_NK__XG8@\04 -XM6UW#QP0D,0``$.A*4/__Z]"0C;0F`````%6)Y5=64X/L+,=$)`3$F`H(C7WL -XMQP0DU#L)".@0N@``QT7P`````(G#BT4(B47LB3PDZ-GJ__^%P(GS```` -XMA=L/E<#WQ@(````/MMAU+H7;=0F#Y@$/A>P```"+10B)!"3HA\D"`(D$).A_ -XM40``B44(BT4(@\0L6UY?7<.)^(G:Z,CZ__^%VXG'#X2#````B7W8BU78BP*% -XMP`^$I0$``(M5V(MR!(7V#X2S`0``@WT,`0^$:@$``(-]#`(/A+P```"+30R% -XMR76IBT4(B00DZ#K+`@"+5=B)%"2C('<*".@:5@``QP0D)P``$.A.3___ZX"+ -XM50B)%"3H\<@"`(D$).CI4```B44(BT4(@\0L6UY?7<.#Y@$/A'3___^)!"3' -XM1"0$\",&".@"4O__B?CHJ_?__SG'B478#X1#`0``B3PDZ$A1___K"HGXZ(_W -XM__^)1=B+7=B%VP^%-O___XM5"(D4).BFR@(`QP0D,0``$*,@=PH(Z,5.___I -XM%?___XM5V(E5W(D$).@^S_[_BUW8@\,$C7@!ZP.+=>"+0P2#PP2)1>")-"3H -XM'\_^_XM5X(72C7P'`77AC02]`````(D$).BY7`(`B44(BT78BTT(BQ"%T@^$ -XMI````(L"A+___\_B57DBQ>#QP2!XO___S^#^C\/A/$```!_'(72=6.+11")&(-]Y`$9 -XMP/?0@\`"@\0L6UY?7<.#^EL/A-H```"+=12%]G5B@?K_````#X?"`0``H>!= -XM"0B+G)`T!```@7WD_P````^'F0$``*'@70D(BU7DBX20-`0``#G##Y7`ZRV# -XM^BIUN8L',?:%P'5$B1PDZ'[!`@"+51")`H/$++@"````6UY?7<,[5>0/E<"$ -XMP'5>@T7P!(M=\.DX____BT40BS#W`____S\/A!X!``"#PP2+112)1"0,BU40 -XMB7PD!(D<)(E4)`CH^/[__X/X`73-@_@"#X3F````A)UHU?!('F -XM____/\=%Z`````")WW0M@_Y==#R+1>B%P'53@SLM=%6#PP0QP#EUY`^4P(E% -XMZ(L7B=:)WX'F____/W73QT0D!%T```#'!"0R```0Z/Y+__^+1>@+1>1T@HM5 -XM[#E5Z`^%&/___S'`Z8W^__^-=@"+%X/#!.N[BT<$@\,$@_A==*,E____/\=$ -XM)`@`````B40D!(M%Y(D$).C"UP``A -XM7UW#A?8/A!O___^+51"X`0```(DRZ2K^__^+1>2)!"3HD2)-"2)5"0$Z%K7``"%P'^8QT7H`0`` -XM`.N/C;8`````C;PG`````%6)Y5=64X/L+(MU#(M%",=%W`$```")1?"#/EX/ -XMA!4!``#'!"0$````Z$)9`@#'!"20`0``B(M5"(D4).@]OP(`BQ>)QHL"QT7@`````(7`=#N)TXE$)`2+10B-5?#'1"0, -XM`0```(E4)`B)!"3HW/S__X7`=`V+1?"#3>`!.?!S`HG&BT,$@\,$A`/E,"#Q"Q;#[;`7E]=PXL7BP+'1>``````A57B==64X/L#(E%\(MP"(M:"(L#B40D!(L& -XMB00DZ/C(_O^%P'4/BW8(.W7PBUL(=`XY^W7=@\0,,Q=PY"+'0QA"0B%VW0TBT(8A/&!@"+1?")!"3HA54" -XM`.E0____58GE4XG#@^P$B00DZ(\4``"+0QB%P'0(B00DZ&!5`@")'"3H6%4" -XM`(/$!%M=PXGV58GE5U:)QE.)TX/L+/;"`71FH7!A"0B-??#'!7!A"0@!```` -XMB47PQT0D!-`X!@B)/"3HF4K__X/C0`^%WP```*$,80D(A<`/A,4```"+1AB% -XMP`^$N@```(E$)`3'!"01%PD(Z+BB`@")/"3HP$G__X/$+%M>7UW#QP0D2LX( -XM".A!T;XG/@^<(ZR"+!H/H`87_B09T/X7`>`J+5=R)V.AW_O__BUL< -XMA=MT2*&4=PH(A"%P'X*BU77UW#58GE5S'_ -XM5E.#[!R+=0C'1"0$Q)@*",<$)*`S"0CH+K```(D$).@VK@``A<`/A)\```"# -XMQ@2+'H7;=#"#.RUU*X/#!(L#A7UW#QT0D!,28"@C'!"2@,PD(Z.^N``")!"3H]ZP``(E%\.E1 -XM____ZPV0D)"0D)"0D)"0D)"058GE@^PHB5WTBUT(B77XBT4,B7W\A=L/E,*) -XMUG4$AP/A%@!``")\(3` -XM=#C'1"0$Q)@*",<$).`S"0CHQ=P\=$)`0`````B1PDZ*[S__^)Q\=$)`0P*@@(B3PDZ,Q& -XM__^+%>AV"@C'!>AV"@@`````B57PQT0D!,28"@C'!"1@-@D(Z*6M``"%P'0Q -XMBP"%P'0KBT`$AR+'E?1?__QT0D!,28"@C'!"20+PD(Z$NM -XM``#'1"0$A#0)"(D$).@+O`(`BP/A8;^___'1>Q`+PD(Z7K^__^-M@````!5B>575E.#[!S'1"0$ -XMQ)@*",<$),`S"0CHXZP``#WX;PD(B<8/A.8!``#'1"0$@$,)"+\`=PH(B00D -XMZ$W"_O^%P'0_QT0D!'!#"0B[`'<*"(DT).@TPO[_A<`/A9@!``"+6QR%VW1J -XMBT4,B=KH__C__X7`=.N#+029"@@!B=_K7XG?BU\`2+0P2)1P2+0P2)>`C'1Q@`````BT44QT7L`'<*"(7`=2*+-1QW"@B) -XM=QR+7>R)>QR#Q!R)^%M>7UW#C;8`````B77LBT7LBW`PYT`^%P0```(M%\(GZZ,_W__^% -XMP`^%O0```(M5\(M*'(7)=S'1?``````BW(R+@L^/__BWWPZ=3^__^+%1QW"@B% -XMTG2*BT4,Z.+V__^%P`^$>O___XL=''<*"(,M!)D*"`&%VXG?#X4R_O__Z1_^ -XM__^-M"8`````C;PG`````%6)Y593@^P0BUT(A=MT#HM#"(L`@S@*#X33```` -XMQT0D!,28"@C'!"2@,PD(Z`^J``"+$(72#X3'````]\(```!`#X6[````@_I_ -XM#X>R````,?:)P?8$E;U1"0@$=2?IGP```/?"````0`^%DP```(/Z?P^'B@`` -XM`(/!!/8$E;U1"0@$='V-!+:-=$+0BU$$A=)UT(7;="BA!)D*"(M5#,=$)`@! -XM````B5PD!(/``:,$F0H(B50D#(D$).B!_/__NP!W"@B+4QR%TG0EH029"@@K -XM0A`Y\'P@BT("0C70F`(/$$%M>7<.%]G3!P``BQTLFPL(A=L/ -XMA-$'``"+#32;"PB%R0^$!`@``(L5/)L+"(72#X0W"```H62;"PB%P'0&@\04 -XM6UW#H8"8"@C'1"0,8M$(",=$)`A!````QT0D!`(```")!"3'!6";"PA>T0@( -XMZ'&>__^)!"3HV4<``*-DFPL(@\046UW#H8"8"@C'!6B:"PCXS@@(QT0D#/S. -XM"`C'1"0(`@```,=$)`0"````B00DZ"^>__^)!"3HET<``*-LF@L(Z=S]__^A -XM@)@*",<%<)H+"`//"`C'1"0,!\\(",=$)`@#````QT0D!`(```")!"3H[IW_ -XM_XD$).A61P``HW2:"PCIJ?W__Z&`F`H(QP5XF@L($<\(",=$)`P6SP@(QT0D -XM"`0```#'1"0$`@```(D$).BMG?__B00DZ!5'``"C?)H+".EV_?__H8"8"@C' -XM!8":"PB`SP@(QT0D#!O/"`C'1"0(!0```,=$)`0"````B00DZ&R=__^)!"3H -XMU$8``*.$F@L(Z4/]__^A@)@*",<%B)H+""_/"`C'1"0,-,\(",=$)`@&```` -XMQT0D!`(```")!"3H*YW__XD$).B31@``HXR:"PCI#_W__Z&`F`H(QP60F@L( -XM0\\(",=$)`Q(SP@(QT0D"`<```#'1"0$`@```(D$).CJG/__B00DZ%)&``"% -XMP*.4F@L(#X78_/__H8"8"@C'!9":"PA.SP@(QT0D#%+/"`C'1"0("````,=$ -XM)`0"````B00DZ*:<__^)!"3H#D8``*.4F@L(Z9?\__^-="8`H8"8"@C'!9B: -XM"PA;SP@(QT0D#%_/"`C'1"0("P```,=$)`0"````B00DZ&&<__^)!"3HR44` -XM`*.B:"PAJT`@(QT0D#&_0"`C' -XM1"0(+@```,=$)`0"````B00DZ)*8__^)!"3H^D$``*/LF@L(Z5GY__^A@)@* -XM",<%\)H+"(+0"`C'1"0,A]`(",=$)`@P````QT0D!`(```")!"3H49C__XD$ -XM).BY00``H_2:"PCI)?G__Z&`F`H(QP7XF@L(D=`(",=$)`R6T`@(QT0D"#(` -XM``#'1"0$`@```(D$).@0F/__B00DZ'A!``"C_)H+".GQ^/__H8"8"@C'!0B; -XM"PB@T`@(QT0D#*70"`C'1"0(,P```,=$)`0"````B00DZ,^7__^)!"3H-T$` -XM`*,,FPL(Z;WX__^A@)@*",<%$)L+"+O0"`C'1"0,P-`(",=$)`@U````QT0D -XM!`(```")!"3HCI?__XD$).CV0```HQ2;"PCIB?C__Z&`F`H(QP5`FPL(U]`( -XM",=$)`S=T`@(QT0D"#@```#'1"0$`@```(D$).A-E___B00DZ+5```"C1)L+ -XM".E5^/__H8"8"@C'!2";"PCQT`@(QT0D#/;0"`C'1"0(.@```,=$)`0"```` -XMB00DZ`R7__^)!"3H=$```*,DFPL(Z2'X__^A@)@*",<%*)L+"`W1"`C'1"0, -XM$M$(",=$)`@[````QT0D!`(```")!"3HRY;__XD$).@S0```HRR;"PCI[O?_ -XM_Z&`F`H(QP4PFPL(*M$(",=$)`PQT0@(QT0D"#P```#'1"0$`@```(D$).B* -XMEO__B00DZ/(_``"C-)L+".F[]___H8"8"@C'!3B;"PA$T0@(QT0D#$G1"`C' -XM1"0(/0```,=$)`0"````B00DZ$F6__^)!"3HL3\``*,\FPL(Z8CW__^0D)"0 -XMD)"0587`B>5T!8,X"G0%HT!A"0A=PXVV`````(V\)P````!5B>6+10A=HQAA -XM"0C#C78`58GE@^PHBPV0=@H(B5WTB77XB7W\AR9"P@`````=`V+7?2+ -XM=?B+??R)[%W#BQ6\F`H(A=)UZ:'`=@H(A7<.0C70F`%6)Y5WI -XMM____XVT)@````!5B>564X/L$*&T=@H(QT0D#`(```#'1"0$`````,=$)`@` -XM````B00DZ`^V_O^AL'<*"(L5M'<*",<%T"0)"`(```#'!3"9"P@`````HZ!W -XM"@B)%:1W"@C'!;28"@@`````QP5(=PH(`````,<%2)H+"`````#H9JW__XLU -XM[)D+"(7V=0J+'>"9"PB%VW0'@\006UY=PXL5H'<*"(/J`8G0P?@?P>@3C300 -XMP?X-A?9^WC';H;QW"@B+!)B#PP&)!"3HRS\"`#GS=>F+%;QW"@B-!+*)%"2) -XM1"0$Z'(S``")\,'@#8G"P?H?*06@=PH(&16D=PH(*06P=PH(&16T=PH(*36X -XM=PH(@\006UY=PXUV`%6)Y5>)QU93@^P,H;AW"@@YQWQM@\`"QT0D!`0```") -XM!"3HN3\"`(G&H;QW"@B%P'09B40D!(DT).@",P``H;QW"@B)!"3H-3\"`(L= -XMN'<*"(DUO'<*",=$)`0$````QP0D`"```.AU/P(`C1R>B0.AN'<*"(/``3G' -XMH[AW"@A]DX/$#%M>7UW#C;0F`````%6)Y8/L*(E=](L=T"0)"(E]_(M]"(EU -XM^(/[`HD?='.#^P-T7(/[`70WH8"8"@C'1"0,@-<(",=$)`@'````QT0D!!`` -XM``")!"3HTI+__XE<)`2)!"3H9HP"`.@MLO[_D*$PF0L(B4<,H;28"@B)1P2+ -XM7?2+=?B+??R)[%W#C78`H4AW"@B)1PRA2)H+"(E'!.O>H>R9"PB%P'4:H:!W -XM"@B+%:1W"@B)1P2)5PC'1PP`````Z[N+%:1W"@B+':QW"@BAH'<*"(L-J'<* -XM"#G:?-9^2SL5M'<*"'_,C;8`````?`@[!;!W"@AWO(G&*N)3P2)7PCKCSG(6#[$B+50B)7?2)=?B)??R+&H/[`HD=T"0)"'1S@_L# -XM=%R#^P%T-Z&`F`H(QT0D#(#7"`C'1"0(!P```,=$)`00````B00DZ**1__^) -XM7"0$B00DZ#:+`@#H_;#^_Y"+0@RC,)D+"(M"!*.TF`H(BUWTBW7XBWW\B>Q= -XMPXUV`(M"#*-(=PH(BT($HTB:"PCKWJ'LF0L(BW($BWH(A<")-:!W"@B)/:1W -XM"@ATPXL5K'<*"*&H=PH(.=>)1>B)5>P/C,H````/CKD```"+#;1W"@B+%;!W -XM"@@Y3>R)3=R)5=@/CZD```!\"3E5Z`^'G@```(M-V"M-Z(E-X'1DBU7L,57 -XM5E.![$P@``"%R8F%S-___XF5R-___XF-Q-___\>%U-___P`````/A#(!``"! -XM^0$@```/AU<"``#'A=3?__\`````,=O'A=C?__\`````.9W$W___N@$```!V -XM"(N5Q-___RG:C00:/0`@```/AZ@```"-A?/?__\!V(E$)`2+A#?__\/A:T```#'A=S?__\`````BY7@W___.97- -XM-)"!Q\!W"@B+G>#?__^-A?/?__\KG=S?__\#A=S?__^)-"2)7"0(B40D!.BW -XMJ0(`@_C_=%2%P(G"#XZ.````BTT(A57 -XM5E.#[%R+/1AA"0B%_W1"QP4880D(`````(/$7(GX6UY?7<.A,)D+"(7`#X2D -XM````H3"9"PC'!4R:"P@!````BP"%P*.TF`H(='N#!3"9"P@$H;28"@C'!=`D -XM"0@"````A@$``.E;!0``D(UT)@"+%:1W"@B+/:QW"@BA -XMH'<*"(LUJ'<*"(E5M#GZB46P?`X/CZL#```Y\`^#HP,``*.P=PH(HZAW"@B) -XM1"0$H;1V"@B)%;1W"@B)%:QW"@C'1"0,`````(E4)`B)!"3H&JS^_Z&@=PH( -XMBQ6D=PH(BPVP=PH(BQVT=PH(BS6H=PH(BSVL=PH(B46PB56TBU6TBT6P,=HQ -XMR`G"#X1U`P``BQ6\=PH(BT6PBQ(I\(L\@H-%L`0`BT6PBU6THZ!W"@B) -XM%:1W"@B#__\/A>;^__^+10B%P`^%LP0``*&T=@H(C57$B50D!(D$).@^I_[_ -XMA<`/A;#^___V1=$!#X2F_O__BQ5P8PD(A=)T%:$<80D(@\`!.<*C'&$)"`^. -XMA_[__X,]U)<*"/\/A/K]___'!"0/````Z.2J_O^#^/^)PP^$X_W__Z'4EPH( -XM.<,/A-;]__^)1"0$QP0D#P```.@@3`<*)UH'F_Q\``,'Z#2G&B56HB=#H(?3__XM]O+@`(``` -XM*?`YQWX"B<>+1;R-%+4`````BTVXC1R]`````(MUJ,'@`BG!H;QW"@@#%+") -XM7"0(B4PD!(D4).B)J_[_B?HI?;R+1;S!^A\!/;!W"@@1%;1W"@B%P`^/=O__ -XM_^G<_O__Z+2W`0")1:R)1;SI2?___XL0A=(/A*OZ__^#P`1FOR``B16TF`H( -XMHS"9"PCI%?K__Z%(=PH(Z27[__^+';1W"@B+#;!W"@@YV@^,I?S__P^/0_S_ -XM_SG(#X:7_/__Z3;\___'!?R8"@@!````Z#@E__^A2'<*".GY^O__B^O__QP0D`0```.AS2```Z8WZ__^+10B%P`^%P``` -XM`(UV`.AKQO[_H9!V"@CI#_O__Z&\F`H(A<`/A8\```")^(E$)`3'!"1LG`L( -XMZ#*:`@#IVOC__X/`!&:_(`")%4B:"PBC2'<*".G#^/__H8"8"@B+'0QV"@C' -XM1"0,K-<(",=$)`@#````QT0D!!````")!"3HNX7__XE<)`2)!"3H3W\"`.E+ -XM^O__BSB#P`2CD'8*"(7_#X5U^/__H7P@"0AFOPH`HY!V"@CI8OC__X/H`:.\ -XMF`H(N`H```#I8?___[______Z4;X__^)]HV\)P````!5B>564X/L$(MU#(M= -XM"(U&FX/X$W8*,<"#Q!!;7EW#D/\DA6C8"`B)'"3H(9@"`(G"C4#\.<,/ARD! -XM``"+4OR#^B]U(ND<`0``C;0F`````(/H!#G##X<*`0``BQ"#^B\/A/\```"# -XM^BYUY8/^98GV#X3D````*=C!^`*)10R)70B#Q!!;7EWI1)T"`(D<).C\G@(` -XMQT0D!"\```")!"3H_",``(7`#X65````@_YT#X5C____B5T(@\006UY=Z:V< -XM`@#'1"0$`0```(D<).@=<0(`A7<.)'"3HBIP"`(L0A=(/A"C_ -XM__^)P>L;@_H)=!N!R@```$")$8M1!(/!!(72#X0)____@_H@=>"#_G%UZ(VT -XM)@````#KU\=$)`0`````B1PDZ+YP`@"%P`^$>____X/$$%M>753@^P4BQ68=PH(H7R<"PB+70C'!"0@80D(QP4D80D( -XM`````"G0P>("`Q5XG`L(B40D"(E4)`3HPID"`(E<)`3'!"1XG`L(QP5\G`L( -XM`````.@HF@(`QP0D>)P+".@,F`(`H21A"0C'!"1XG`L(B40D"*$@80D(B40D -XM!.A^F0(`B1PDZ"8O`@#'!9AW"@@`````@\046UW#C;8`````58GE5U93@^P, -XMBT4,BW4(BW@(QP0D#````.C"+P(`B<.)<`3'``````"+10B)0PB)6`2+!XE> -XM"(G>B00DZ`^;`@"+?PB)`X,X"G7'@\0,6UY?7<.-M@````"-O"<`````58GE -XM5E.#[!"+=0B+7@B+`XE$)`3'!"22N0@(Z&!\`@"+6P@Y\W07BP.#.`ITXL<$ -XM)"````#H9C\``(L#Z]*#Q!!;7EW#C70F`(V\)P````!5B>575E.#[!R+'1QW -XM"@B)1>R)5>B%VW0^BU,,BWL(A=)X+8L7BPJ#^0IT)(M%Z,=%\`````"%P'5? -XMBT7LZP>0@\`$@\($BPB%R70H.PIT\(M;'(7;=<*+1>PQVXD$).ASK!H/`!(/"!(L(AC'1>P`````P?@"QT7P -XM`````(E$)`B+1>")%"2)1"0$Z"27`@"+'6!A"0B+`X7`="2#^"9T;X/X7(US -XM!'12B40D!(GSC47HB00DZ`J5`@"+`X7`==R+1>R+50B)`J%,80D(C02'B40D -XM!(U%Z(D$).A5EP(`BU77UW#58G"B>6# -XMX@)7@^`!5E.#[#R)5=")1__^A.&$)"(7`=%*+4`BA-&$)"(D5 -XM.&$)"(/H`87`HS1A"0AX*8L"Z#_I__^+#3!A"0B%R0^$1O___\<%,&$)"``` -XM``"#Q#R)R%M>7UW#QP4X80D(`````.D5____QP0D`````.CR\?__@_@DB<%T -XM&SL-C)@*"'7,BUW0A=MTQ3'`Z`4+``#IY_[__XM=S(7;=-ZA,&$)",=%Z``` -XM``#'1>P`````QT7P`````(7`B474HT1A"0@/A.`"``#'!3!A"0@`````BU74 -XMQP0DQM<("(E4)`3H`AX``(7`#X24````BT74QP4P80D()```0*,\80D(Z7K^ -XM__^A>)P+"(L,D(U"`:.8=PH(AC__X/$/+D@````6XG(7E]=PXU5Z(D4),=$ -XM)`2PD0@(Z&,?__^-1>C'1"0$)````(D$).@PD@(`BUW4@_M[#X2U`@``@_LC -XM#X1L`@``@_L_#X1C`@``,?:#^R4/A%@"``"-5>B)7"0$B10DZ/B1`@"-0_:# -XM^#(/AM$!``#WPP```$!U/H/[?Y!W#O8$G;U1"0@$#X5\`0``#[;3@?K_```` -XM#X=V!```H>!="0B+1)`T]L0!#X6G````@_M?#X2>````A?8/A',"``"#;>P! -XMB1T\80D(C47HB00DZ%D>__^-5>B)%"3H_AW__XU%Z(D$).B3D0(`B00DZ%OY -XM___I#?W__\<%,&$)"`````#WPP```$`/A38"```/MM.!^O\````/A\4!``"A -XMX%T)"(M$D#3VQ`%U'(/[7W07@_M_#X<+`@``]@2=O5$)"`0/A/T!``"-5>B) -XM7"0$B10DZ`B1`@"+'3!A"0B%VXD=1&$)"'62N`(```#H?OS__X7`B<-UC(-] -XMU'N)'3QA"0@/A43___^A,&$)"(7`HT1A"0@/A`D%``#'!3!A"0@`````@_A] -XM#X3>!```HSQA"0C'1"0$?0```,<$)#(```#H6AK__^D!____D(UT)@#'!3!A -XM"0@`````]\,```!`#X5@`0``@_M_#X=7`0``]@2=O5$)"`0/A$D!``"-1>B) -XM7"0$B00DZ%20`@"+'3!A"0B%VXD=1&$)"'6TN`(```#HROO__X7`B<-UKNE' -XM____N`(```#HM?O__XE%U(GVZ1;]____)(6XV`@(A?:)]@^$=O[__\<$)%`` -XM``"-=@#HNQG__^EB_O__A?:-="8`#X16_O__QP0D3@```(UV`.B;&?__Z4+^ -XM__^#;>P!A?;'!3QA"0@*````#X4L_O__QP0D3P```.AT&?__Z1O^__^-1>B) -XM7"0$B00DZ*"/`@"+'3!A"0B%VXD=1&$)"'17QP4P80D(`````+X!````Z77] -XM__^)%"3HL)G^_^DW_O__C57HQT0D!'L```")%"3H7(\"`(L=,&$)"(7;B1U$ -XM80D(#X3H`0``QP4P80D(`````.D5_?__N`(```#HO_K__XG#ZZ7'!"12```` -XMZ-\8___IAOW__X/[6P^$W@(``(/[.@^%(/[__\=%W`````#'1>``````C47H -XMB5PD!(D$).CKC@(`BQTP80D(A=N)'41A"0@/A-@!``#'!3!A"0@`````@_MG -XM#Y3`#X2&`0``@_MA#X0J`@``BU7@A=)U"(3`#X6[`0``@_MA#X3Y`0``C57H -XMB5PD!(D4).B1C@(`@_MS#X7>````BSTP80D(A?^)/41A"0@/A.\!``"-1>C' -XM!3!A"0@`````B7PD!(D$).A;C@(`]\<```!`=3^)^`^VT('Z_P````^'\0$` -XM`*'@70D(BT20-/;$`0^%S@$``(/_7P^$Q0$``(/_?W<.]@2]O5$)"`0/A;(! -XM``")?"0$QP0D_[D(".@4&0``A<`/A9H!``#'1=@"````ZR['!3!A"0@````` -XM@_[_#X1U`@``C57HB70D!(D4).C1C0(`,<`Y_@^4P"E%V'0;BS4P80D(A?:) -XM-41A"0AUPC'`Z#[Y__^)QNO!B5PD!,<$),K7"`CHJA@``(7`#X3G`0``BQTP -XM80D(A=N)'41A"0@/A,8```#'!3!A"0@`````@_LZ#X1Q_O__Z7[\__^-M@`` -XM``"X`@```.CF^/__B<.-="8`Z2?[__^)%"3H?Y?^_XUV`.F#^___@T7@`8U5 -XMZ(E<)`2)%"3H*(T"`(L=,&$)"(7;B1U$80D(#X30````QP4P80D(`````(/[ -XM9P^4P.E'_O__N`(```#HA?C__XG#Z2'^__^#1>`!C47HB5PD!(D$).C;C`(` -XMBQTP80D(A=N)'41A"0@/A$H!``#'!3!A"0@`````Z1C^__^X`@```.@^^/__ -XMB)1"0$Z&J,`@"%_P^%!_[__\<$)%@```#H%A;__^EI -XM^___B10DZ(66_O_I"_[__[@"````Z,KW__^)P^DI____C47HQT0D!%L```") -XM!"3H((P"`.LKQP4P80D(`````(/["@^$X````(U5Z(E<)`2)%"3H_(L"`(/[ -XM70^$J0```(L=,&$)"(7;B1U$80D(=<6X`P```.AI]___BGY__^X`@```.@#]___ -XMB<.0Z/G__[@"````Z)+V__^)P^GJ^___C70F`(V\)P````!5B>6# -XM["B)??R)UXL5,&$)"(EU^(G&B5WTB4WLA=*)%41A"0@/A!8!``"#^BK'!3!A -XM"0@`````BQX/A!4!```/CIL```"#^BT/A+(!``"#^EX/A"$!``#WP@```$"- -XM=@`/A7H!``"#^G\/AW$!``#V!)6]40D(!,=%\`````!U-.E;`0``QP4P80D( -XM`````/?"````0`^%X0$``(/Z?XGV#X?6`0``]@25O5$)"`0/A,@!``"+3?"- -XM!(F-1$+0BQ4P80D(B47PA=*)%41A"0AUM#'`Z*CU__^)PNNSC70F`(/Z)`^$ -XM/P$``(/Z)8UT)@`/A6'___^A;&$)"(/X_W0CA=L/B"X!``")!XVV`````(7; -XM>'R+!SD&?PDY1>P/C:T```#'!"1>````Z($3__\QP(M=](MU^(M]_(GL7<.) -XM]C'`Z#GU__^+'HG"@_HJ#X7K_O__A=L/B/H```"+1>R)!SL&?:NX`0```,<' -XM`````,<&`0```.NYA=L/B,L```"%V\<'`0```'F*C;8`````BQTP80D(A=N) -XM'41A"0@/A)D```#'!3!A"0@`````B1PDZ/K>__^)7"0$QP0DU-<(".@Z%``` -XMA<`/A$;___^)]K@!````Z5?___^-M@````"%VP^(A````(M%[(/H`8D'B10D -XMZ+C>___I$____XUV`(7;>S'!@````#'!"0M````@^@!B0?HDM[__[@! -XM````Z0G___^%VW@YBTWLB0_IVO[__XD&Z\<%,&$)"``````/A($'``"C,&$)"*$$F0H(QP5L80D(_____Z/@F`H(BT6\ -XM.P5$F@L(=&F+'3!A"0B%VXD=1&$)"`^$*`<``,<%,&$)"``````['8R8"@AT -XM0XU#W8/X.W8T,?^)7"0$QP0DV-<(".BW$@``A<`/A!X)``")'"3H5]W__Z&, -XMF`H(HS!A"0B#Q$Q;7E]=P_\DA839"`B+%2"9"PB%THE5P`^$2@H``(M=P#L= -XM()D+",<%+&$)"`$````/A'P(``"+5<"+0@B+4@2+0`@YP@^$E`H``#'VBT`( -XM@\8!.<)U]HM=O#L=1)H+",=%\`````")=>P/A-P)``"+'3!A"0B%VXD=1&$) -XM"`^$V@<``,<%,&$)"`````")7"0$QP0DYM<(".C]$0``AR+5?"#P`$IT(/J`872HS1A"0B)5?!X%8M-P(U"_X7`B<*+20B)1?") -XM3ANS?__B47`H3!A"0B%P*-$80D(#X2%!```QP4P80D( -XM`````(/X.@^%#P0``(L],&$)",<%.&$)"`````"%_XD]1&$)"`^$1@0``,<% -XM,&$)"`````#'1<0`````C;0F`````(/_9[L!````=%N#_V%T48U'VH/X4G9[ -XM@_\*#X2'!@``B7PD!,<$)%L```#H(`___XL=,&$)"(7;B1U$80D(#X2'`P`` -XMQP4P80D(`````(/[.@^$<____^GR_O__C70F`+L"````BSTP80D(A?^)/41A -XM"0AT$L<%,&$)"``````)7<3I>?___S'`Z)+P__^)Q^OM_R2%=-H("*%880D( -XMA<`/A'\)``"A5&$)",<%3&$)"`````#'!"1(80D(B40D!.@[AP(`QP0D2&$) -XM".@?A0(`H4AA"0C'!5AA"0@`````QP0D5&$)"(E$)`3H$(<"`,<$)%1A"0CH -XM](0"`(L=-&$)"(7;B5W(#X28_O__BT7$C5W8QT7H`````,=%S`````"#X`&) -XM1;CK08VT)@````"-7>2)^L=%Y`````"-3>B)'"2+7<"+`^A4[O__B<:+1>B% -XMP'0'QT7,`0```/9%Q`)U>8M5T(DRBUW0@VW(`0^(_?W__\=$)`0,````QP0D -XM`0```.@('`(`C578B470B5`(QP``````B4,(B5@$BTW`BTD(B4W`BP&%P'2[ -XMBTVXAB%P'2#@?[X;PD(#X1W____C47DB?J)!"2-3>B)\.BC[?__B?.)7"0$B00D -XMB<;HCXW^_X7`=;^)'"3H%QL"`.E$____BS4P80D(A?:)-41A"0@/A(,"``#' -XM!3!A"0@`````]\8```!`=3^)\0^VT8'Z_P````^'@0(``*'@70D(BT20-/;$ -XM`0^%A`8``(/^7P^$>P8``(/^?W<.]@2UO5$)"`0/A6@&``")="0$QP0D_[D( -XM".@-#@``A<`/A5`&``#'!"1(80D(Z$F#`@#'!4QA"0@`````ZRR#^PK'!3!A -XM"0@`````=#LY\W1#@_M<#X07`0``B5PD!,<$)$AA"0CHL8("`(L=,&$)"(7; -XMB1U$80D(=<0QP.@J[O__B<.#^PIUQ<<$)`H```#H1]C__Z%,80D(A<`/A:\! -XM``"A2&$)"(L8A=L/A"`'``")!"3H'XW^_Z-,80D(QP5D80D(`````.LNB?:# -XM^PK'!3!A"0@`````=#LY\W1#@_M<#X3L````B5PD!,<$)&!A"0CH)(("`(L= -XM,&$)"(7;B1U$80D(=<0QP.B=[?__B<.#^PIUQ<<$)`H```#HNM?__\<$)&!A -XM"0CH3H("`.DJ_?__@TW$`>DA_?__BQTP80D(@P5P=@H(`87;B1U$80D(#X5Y -XM_/__,<#H3NW__XG#Z77\__^)!"3H;]?__^E*_/__BQTP80D(A=N)'41A"0@/ -XMA(D```#'!3!A"0@`````.?,/A,/^__^#^UP/A+K^___'1"0$7````,<$)$AA -XM"0CH9X$"`.FA_O__,<#HZ^S__XG'Z;;[__\QP.C=[/__Z7G[__^+'3!A"0B% -XMVXD=1&$)"'0]QP4P80D(`````#GS#X3R_O__QT0D!%P```#'!"1@80D(Z!*! -XM`@#IV?[__S'`Z);L__^)PXUT)@#I;____S'`Z(3L__^)PXGVZ\#'!"1<```` -XMZ*(*__^)]NG'^O__,<#H9.S__XG&B?;I=_W__\<$)$AA"0CH'X$"`.E<_O__ -XMB10DZ.Z*_O^)]NEY_?__,<#H-.S__XG#B?;ITOC__S'`Z"3L__^#^'N0#X5_ -XM^/__QT6\>P```.EX^/__QP0D2&$)".C2@`(`QP5,80D(`````.LLQP4P80D( -XM`````(/X"@^$PP(``(/X/P^$Q@(``(E$)`3'!"1(80D(Z#J``@"A,&$)"(7` -XMHT1A"0AUQC'`Z+7K___KQXL=,&$)"(7;B1U$80D(#X2%!```QP4P80D(```` -XM`+\!````Z43X__^+->"8"@@[-029"@B)'3!A"0@/A$,$``"+%1QW"@B%TG44 -XMZ2$!``"-="8`BU(0```.@S"?__Z>'W___'!3!A"0@J````B?&)^HU%\.AH]/__A<`/A,/W -XM__^+'3!A"0B%VXD=1&$)"`^$&P,``,<%,&$)"`````#IJ/C__S'`Z+;J__^) -XMP^DB^/__H3!A"0B%P*-$80D(#X2>`@``QP4P80D(`````(/X?0^$ROC__\<$ -XM)%8```#HK@C__^FY^/__QP0D"@```.B=U/__Z6CY__^+0PB+%828"@B+0`@Y -XMT`^$&`(``#'VBT`(@\8!.=!U]NE_]___B30DZ,MS``")PXD$).BAA`(`QP0D -XM8````(E$)`3H40C__XD<).@I%@(`@\1,6UY?7#^W^0=Q'V!)V]40D( -XM!(T$MHUT0]!U!;[_____B5PD!,<$)$AA"0CH^'T"`(L=,&$)"(7;B1U$80D( -XM=!2%V\<%,&$)"``````/B7'____KCS'`Z%WI__^)P^E=____B1PDZ'[3__^A -XM3&$)"(7`#X5<`0``H4AA"0B)!"3H8(C^_Z-,80D(H8R8"@BC,&$)".D#]O__ -XMQP0D"@```.A$T___H4QA"0B%P`^%]P```*%(80D(B00DZ":(_O^%P*-,80D( -XM#X1*`0``N@$```"A2&$)".B.YO__A<")P@^%COW__^F1_?__B1PDNSH```#' -XM!3!A"0AS````Z.C2___IGO;__XLU!)D*".DU_?__BSTP80D(A?^)/41A"0@/ -XMA(D!``#'!3!A"0@`````B3PDZ++2___WQP```$!U,XGX#[;0@?K_````#X=_ -XM`0``H>!="0B+1)`T]L0!=06#_U]U#\=%\`````")=>SI,O;__X/_)@^%XO7_ -XM_^OF,?;IP(`QP0D2&$)".@W?`(`H4AA"0B+%4QA -XM"0B)1"0$@\`$C125_/___XE4)`B)!"3HSHK^_Z%(80D(,=+'`"T```#I2/[_ -XM_XL-()D+"(7)B4W`#X4B]/__Z:?[__\QP.@3Y___B<.0Z7;[__\QP.@$Y___ -XMB<>)]NEQ_O__QP0D5P```.@?!?__Z?KU__^)%"3HCH7^_XGVZ7O^___'!"19 -XM````Z/\$___IVO7__XUV`(V\)P````!5B>575E.#[%RA[%T)",<%$&$)"``` -XM``#'!7"<"P@`````QP0D[)@*"(E%H.BOT___BU4(B5($B5((QP+X;PD(QP4L -XM80D(`````,<$)`````#H:MG__X/X('3O@_@)=.H[!42:"PAU#HL5P'8*"(72 -XM#X6/!0``B00DZ'+0__^+10B-?>C'1"0$D.D%"(D$).B\!___BUT(QP0D#``` -XM`.C]$@(`B46DB5@$QP``````BU4(B5`(B4($B4,(QT7H`````,=%[`````#' -XM1?``````QT0D!+"1"`B)/"3H<`?__XL=,&$)"(7;B1U$80D(#X1``@``QP4P -XM80D(`````(/[('3=@_L)=-B%VW@,]\,```!`#X0M`@``,?;'1:@#````A?9T -XM13GS#X24````@_M<#X2:````@_L*#X3!`P``D(E<)`2)/"3HY'D"`(L=,&$) -XM"(7;B1U$80D(=%:%]L<%,&$)"`````!UNX7;>-*)V,'H'H/P`8/[?P^>PH30 -XM=,`/ML,/MX0`X"`)"*A3=+&#^UP/A%(!``"H`P^$D@```#'`@_LB#Y3`B=Z# -XMP`*)1:CKCHM%J.@&Y?__B[^__^)'3!A"0B)/"3HH`7_ -XM_XD\).A(!?__B3PDZ.!X`@"+5:2)TXD"QT6@`````(,X"@^%$/[__XM%"(D$ -XM).AN!?__BU4(B10DZ!,%___'!"1LG`L(Z.=X`@"+%7"<"PB%TG04H6R<"PB# -XMZ`2-!)"#.`H/A#,#``"A+&$)",<%$&$)"`$```"#Q%Q;7E]=PS'`Z-OC___I -XM`O___XL=,&$)"(7;B1U$80D(#X1^`0``@_L*QP4P80D(``````^$?0$``#L= -XMC)@*"'00QT0D!%P```")/"3H!W@"`('+````0.D,_O__N`,```#H@N/__XG# -XMZ;G]__^#^W\/C\K]__\/ML,/MX0`X"`)"*A0#X2W_?__@_L[#X12`0``#X^X -XM````@_LF#X3-````C;0F``````^/*@$``(/["HVT)@`````/A"8!``"#^R.- -XMM"8`````#X5R_?__H)7+6X -XM@\8!@_L*#X3-````B5VPBQTP80D(A=N)'41A"0AUR#'`Z*;B__^)P^O'N`H` -XM`$#I\_W__X/[/I"-="8`=!0/C^<```"#^SR0C70F``^%TOS__XE<)`2)/"3H -XMWG8"`*$P80D(A<"C1&$)"`^$&P$``,<%,&$)"``````YV'1*HS!A"0CIW/W_ -XM_S'`Z#WB__^)PX/["@^%@_[__X,]O)@*"`$/A;W]___'!;R8"@@"````Z:[] -XM__^-M@````"-0]B#^`$/AUS\__^)7"0$B3PDZ&AV`@#IB_W__X!]KP!T&X-] -XMN"O'1>0`````B?8/A*@````QR8D-%&$)"(-]L%P/A.C[___KPHVV`````(ET -XM)`3'!"0S````Z.#__O_'!3!A"0@*````Z3G]__^#^UQT$8/[?`^%Z_O__XUV -XM`.D1____BQTP80D(A=N)'41A"0AT+\<%,&$)"`````"#^PH/A;T```"#/;R8 -XM"@@!#X5[^___QP6\F`H(`@```.EL^___,<#H1>'__XG#Z]"X`P```.@WX?__ -XMZ>#^__^+1;R%P`^$3?___P^VT(/Z?Y`/AT#___\QR3'V]@25O5$)"`1U)NDM -XM____C;0F``````^VT(/Z?P^'&O____8$E;U1"0@$#X0,____C02)@\8!C4Q" -XMT(M$M;R%P'74@_X*#X7Q_O__Z>[^___'``````#IPOS__^CF[/__C;8````` -XMZ6GZ__\['8R8"@AT$,=$)`1<````B3PDZ`-U`@"!RP```$#IX/K__Y"0D)"0 -XMD)"058GEBU4(BTT,A=)U!NL9D(/"`0^V`H3`=`X/OL`YR'7O7;@!````PUTQ -XMP,.-="8`53'`B>6+50B+"H7)=`R)]H/``8L,@H7)=?9=PXUT)@!5B>53BUT( -XMBTT,B=J-="8`BP&#P02)`H/"!(7`=?*)V%M=PXVV`````(V\)P````!5B>6+ -XM10B%P'08BQ"%TG4$ZQ")T(M(!(U0!(7)=?2+`%W#73'`PXUV`(V\)P````!5 -XM,=*)Y8M%"(7`=0?K#(GV@\`!@#@`=?B)PEV)T,.)]E6)Y8M-"(7)=!:)RHUT -XM)@"+`B7___\_B0*#P@2%P'7P78G(PXVV`````(V_`````%6)Y8M%"(7`=!F+ -XM$(72=!.)P8'*````0(D1@\$$BQ&%TG7O7<.-="8`C;PG`````%6)Y5.+70B+ -XM30SK"HUT)@"#PP2#P02+$X72=!J+`87`=`^!XO___S\E____/SG"=-];,575E.#[`R+?0R+=1"0Z+MP`@"+10B)="0(B7PD!(D$ -XM).@T?/[_@_C_B<-U"NAX@/[_@S@$=->#Q`R)V%M>7UW#C;8`````C;PG```` -XM`%6)Y5=64X/L#(M]#(MU$.L4Z$:`_O^#.`1U))"-="8`Z%MP`@"+10B)="0( -XMB7PD!(D$).C4@?[_@_C_B<-TTH/$#(G86UY?7<.-M"8`````58GE5U93@^P, -XMBWT,BW40D.@;<`(`BT4(B70D"(E\)`2)!"3HA(/^_X/X_XG#=0KHV'_^_X,X -XM!'37@\0,B=A;7E]=PXVV`````(V\)P````!5B>575E.#[!R+?0SWQP`"``!T -XM80^W=1"-112)1?#K%>B7?_[_@S@$=26-M@````#HJV\"`(ET)`B)?"0$BT4( -XMB00DZ$2!_O^#^/^)PW31@\056 -XM4X/L$(MU".B\?O[_QP``````ZQKHKW[^_X,X!'4>Z,EN`@#HH'[^_\<````` -XM`(DT).A">_[_A<")PW38@\00B=A;7EW#C;0F`````%6)Y593@^P0BW4(Z&Q^ -XM_O_'``````#K&NA??O[_@S@$=1[H>6X"`.A0?O[_QP``````B30DZ!)[_O^% -XMP(G#=-B#Q!")V%M>7<.-M"8`````58GE5U93@^P,BWT(#[=U#.L3Z!5^_O^# -XM.`1U'(UT)@#H*VX"`(ET)`2)/"3H:WK^_X/X_XG#=-J#Q`R)V%M>7UW#C;0F -XM`````(V\)P````!5B>53@^P$BUT(ZQF-="8`Z,=]_O^#.`1U&(VV`````.C; -XM;0(`B1PDZ"^!_O^#P`%TWH/$!%M=PY"-M"8`````58GE4X/L!(M="(7;>1?K -XM(NB'??[_@S@$=1B-M@````#HFVT"`(D<).@??O[_@\`!=-Z#Q`1;7<.0C;0F -XM`````%6)Y8/L",<$)`````#HKO___\<$)`$```#HHO___\<$)`(```#HEO__ -XM_\<%Z'8*"`````#)PXUV`(V\)P````!5B>575E.[`00``(/L#(M]",<$)`$$ -XM``#H0P@"`(G&ZQ&-'`")-"2)7"0$Z(`(`@")QHE<)`B)="0$B3PDZ.J`_O\Y -XMV'3;@_C_=!O&!`8`@\`!B40D!(DT).A2"`(`@\0,6UY?7#2+7?`Q]NL'@\8!.?YT$8/#!(D$).C8!@(`BP.%P'7HBT7PB5T,B44(@\0, -XM6UY?7>E]^O__BUWPZ^:0C;0F`````%6)Y593@^P0BW4(A?9T*(L&A53 -XM@^P$BUT(BP.)!"3HK/___XE="(/$!%M=Z4\&`@#K#9"0D)"0D)"0D)"0D)!5 -XMB>5=Z8?___^-M"8`````58GE@^P(BT4(B00DZ']T`@"C('<*",=%"!D``!#) -XMZ9WX_O^-M@````"-O"<`````58GE5E.#[!"+70R+=0C'1@0`````BQ.%TG0Z -XMD(UT)@"%TG@<]\(```!`=12#^G^0?PX/ML+VA`#@(`D(\W4GD(/#!(E4)`2) -XM-"3H$6X"`(L3A=)URXDT).AC;@(`BP:#Q!!;7EW#QT0D!%P```")-"3HZFT" -XM`(L3Z\:-M@````!5B>53@^P4BUT(B1PDZ`[Y___'1"0$!````(/``8D$).B[ -XM!0(`B5PD!(D$).@/^?__@\046UW#B?:-O"<`````58GE5U93@^P,BW4(BWT, -XMB30DZ,GX__^)/"2)P^B_^/__QT0D!`0```"-1!@!B00DZ&L%`@")="0$B<.) -XM!"3HO?C__XLSB=B%]G0.D(UT)@"#P`2+"(7)=?>)?"0$B00DZ)OX__^#Q`R) -XMV%M>7UW#D%6)Y5>)QU:)UE.#[`SK%I#H1WK^_X,X!'4>C;8`````Z%MJ`@") -XM="0$B3PDZ'MW_O^#^/^)PW38@\0,B=A;7E]=PXVT)@````"-O"<`````58GE -XM@^P8B5WXB=.)=?R)!"3HEG?^_X7`B<9X.X/[_W0E.=YT%8G:B?#HTO___XDT -XM)(G#Z#C\__^)WHGPBUWXBW7\B>Q=PX/X!7[6B?"+7?B+=?R)[%W#OO____^+ -XM7?B)\(MU_(GL7<.0C;0F`````%6)Y5.#[`2+10B+70PYV'06A!>) -XMVI"-="8`Z!O___^)V(/$!%M=PXUV`(/X!7_R@\0$B=I;7>E/____ZPV0D)"0 -XMD)"0D)"0D)"058GE@^P8B5WXBUT(B77\BW4,.?-T'X7;>!N%]G@CB?*)V.C) -XM_O__.=YT"HD<)(GSZ'O[__^)V(MU_(M=^(GL7<.)="0$B1PDZ&/___\YPXG& -XM==CKX(UT)@"-O"<`````58GE4S';@^P$Z*)5__^)]CL=M'8*"'0H.QW,EPH( -XM="`['01V"@AT&#L=1)D+"'00@_L/=`N)'"3H$_O__XUV`(/#`8/[0'7(@\0$ -XM6UWI/E;__XVT)@````"-O"<`````58GE@^PHB7W\BWT(B5WTB77XA?]T>HM% -XM#(7`=&.)/"3HMWO^_XG&BT4,B00DZ*I[_O^)1?"-1`8!B00DZ(\#`@")="0( -XMB7PD!(G#B00DZ-EZ_O^+1?"-%#.)%"2#P`&)1"0(BT4,B40D!.B]>O[_B=B+ -XM=?B+7?2+??R)[%W#B?;'10Q%R0@(ZY2-M"8`````OT7)"`CI?/___XVV```` -XM`%6)Y8/L&(EU^(MU"(E=](E]_(7V=#J)-"3H'GO^_XUX`8D\).@'`P(`B7PD -XM"(ET)`2)PXD$).A1>O[_B=B+=?B+7?2+??R)[%W#C;8`````OD7)"`CKOXGV -XMC;PG`````%6)Y8/L&(EU_(MU#(E=^(U&`8D$).BV`@(`B70D"(G#BT4(B1PD -XMB40D!.C]>?[_B=C&!#,`BUWXBW7\B>Q=PY!5,<")Y5=64X/L#(M="(7;=$>) -XM'"3H1O7__\=$)`0$````@\`!B00DZ/,!`@")QXL#AB?N-M"8````` -XMB00DZ+AM`@")`XM&!(/#!(/&!(7`=>F)^(/$#%M>7UW#ZPV0D)"0D)"0D)"0 -XMD)"058GE5E.#[""+70C'1>P`````C77LQT7P`````,=%]`````"+`^L2QT0D -XM!"````")-"3H>6D"`(L#A"%P%T/ -XME,`/ML##BT($J0```$!T!%TQP,.#^'^0=_;V!(6]40D(!'3L@\((BP+KGI"0 -XMD)"0D)"0D)"0D)!5B>5=QP4@F0L(`````,<%A)@*"`````#'!3"9"P@````` -XMPXVV`````(V\)P````!5B>564X/L$(MU"(7V#X2@````#[8&/`(/A(@```!W -XM$BP!=#:)=0B#Q!!;7EWI?O\!`#P&=^Z+1@B)!"3HO____XM&#(D$).BT____ -XMB74(@\006UY=Z5;_`0"+5A"+`H7`=!>)TXD$).A#_P$`BT,$@\,$A7>D*_P$` -XMBT84B00DZ$_____KSX/$$%M>7<.-M@````!5B>5=Z3?___^-M"8`````58GE -XM5U93NP$```"#[#PYT(E%V(E5U(E-T,=%[``````/A(4```")PXL#B00DZ%Y? -XM__^#^!*)P0^&90,``,=%[`````"+7=@Q_S'VZR*-=@"#^"@/A)<#``"+3>R% -XMR74$A?]U`X/&`8M;"#E=U'0PBP.+`(/X*0^$A`,``'[2@_@\=`6#^#YUT87_ -XM#X2``P``BT7LA3'1"0$!````(D<).AN_@$`BU7DB47HB4(0BTW4BP&#."D/ -XMA&,#``"+1=0Y1=@/A&H#``"+5=`Q_XM-T(M=V,=%W`````"#X@�+'1>`` -XM````QT7P`````(E5S(E-R.LO@_@H#X0N`0``A?\/A4T!``"+-8!>"0B%]@^$ -XM6`$``(-%\`&+6P@Y7=0/A-H```"+$XL"@_@I#X3!`0``?L*#^#P/A$@!``"# -XM^#Z-=@!UNH7_#X4'`0``@WH$/HGV#X3J`@``BT,(.T74#X3_`0``BS#'1"0$ -XM,#L)"(DT).BH;_[_A<`/A,(!``#'1"0$0#L)"(DT).B0;_[_A<`/A<<"``"+ -XM1>2!2`0``0``BUL(BW,(.W74#X2T`0``BP:)\XL`QP0DSML("(E$)`3H7?#_ -XM_X7`#X66`0``BT70@^`,@_@$=`Z+5>2+0@R%P`^$EP(``,<$)&4```#HX.[^ -XM_XM;"#E=U`^%)O___XM=W(7;=`N+3>R%R0^$_@```(M%\(7`#X06`@``BTWD -XMQ@$!BT7D@\0\6UY?7<.%_W4@BU7R%P`^$NO[__XLU@%X)"(7V#X6H_O__BP.)!"3H?&@"`(M- -XM\(M5Z(D$BNF0_O__A?]URX-Z!#P/A+P!``"+2+ -XM00B%P`^$M@$``,<$)&<```#HZNW^_^DK_O__D(UT)@"#[P$/A5C___^+1>R) -XM7>"%P`^$#_[__^E0____BU7PA=(/A5,!``"+3>3&`0*+5>"Y`0```(M%W.CS -XM!```BU7DB4(4BT7D@\0\6UY?7<.+3>2!202`````]D70#(M;"`^%C_[__XM# -XM"#M%U`^%`@$``,<$)&0```#H8^W^_^FD_?__N`$```#3X*D`ZP0`#X6,```` -XMJ!`/A('\__^+6P@[7=0/A6#\___IP!````Z?C[___'0@00````BT74.478#X66_/__QP0D)````.B5 -XM[/[_Z=G]__^+5>2#2@0"Z0K]__^+1>2!2`0``@``Z37^__^+2)00SIAOS__XL& -XMB00DZ%9F`@"+5>2)0@CI=>V+3>B)\H/$'(GX6UY?7>G#^O__C78`A=)US,=$)`08 -XM````QP0D`0```.CH^0$`BTWH@\D$B47PBT,(.?")1>QT7HL`@S@F=$"+1?") -XMVL8``XGXZ'_Z__^+5?")0@B+5>R+`H,X)G0S@TWH`HGRBT,(BTWHZ#[___^+ -XM5?")0@R#Q!R)T%M>7UW#BT7PBTWH@4@$@````(/)#.NNBUWLZ\B+5?")^,8" -XM`XG:Z"CZ__^+5?")0@CKL56)Y5>)UU93B<.#[!PYT(E-['0TB<8QR>L;C;8` -XM````@_@I#X27````@_@F=#*+=@@Y]W03BQ:+`H/X*'7BBW8(@\$!.?=U[8M- -XM[(GZ@\0EF____D(VT)@````!5 -XMB>57B==64XG#@^P<.=")3>QT-HG&,@1\=57B<=6B=93@^P<.=")3>P/A*(```")PS'2ZQV)]H/X -XM"G0F@_@H=0:#P@&-=@"+6P@YW@^$?P```(L#BP"#^"ET;'[:@_@[=>6%THUV -XM`'7>QT0D!!@```#'!"0!````Z&KW`0")VHE%\,8`!(M-[(GXZ,C^__^+5?") -XM0@B+1>R)="0$B40D"(M#"(D$).BL`0``BU7PA<")0@QT+XM%\(/$'%M>7UW# -XMC;0F`````(M;"(/J`3G>=8&+3>R)\H/$'(GX6UY?7>ES_O__BT((QT((```` -XM`(E"#.O"C70F`%6)Y5=64X/L'#G0B47PB57LB4WH#X3L````BQB)QC'_ZQR# -XM^"9T;X/X*'4$@\BP.#^"ET/G[;@_@^=`R#^'R0 -XM==Z#>P1\=-B+=@@[=>R)]@^$G````(L>QT0D!#`["0B)'"3HA&C^_X7`=+2+ -XM`X/X*77"@^\!>:C'!"1A````Z!SH_O_KFH7_=9:#>P0FB?9TCHM-Z(GRBT7P -XMZ''^__^)QP^V`#P$='L\!G1W/`5TR)-"2)1"0$Z&,```")0PSK)X7_ -XM=16+3>B+5>R+1?"#Q!Q;7E]=Z07^___'!"1B````,=OHA^?^_X/$'(G86UY? -XM7575E.#[`R+70B+=0R+?1`Y\W4)ZS&+6P@YWG0JBP.+`,<$),K;"`B) -XM1"0$Z&WH__^%P'7A@\0,B?F)\HG86UY?7>E7_O__@\0,,575HG64XG#@^PL.=`/A#D!``"+`(,X*`^$#P$``,=$)`24 -XM=@H(B00DZ"!1``"%P(G"#X04`0``BT,$B36$F`H(HR"9"PB+`L=$)`10*@8( -XMQP0D,)D+"*,PF0L(Z.WI_O^-1>B)1=B)!"3HC^'__XE%X,<$)#"9"PCH,.G^ -XM_XL-@%X)"(7)=!>-1>B)!"3H6[/__\<$)````$#HO^;^_XL#BQ"%T@^%T@`` -XM`(M%X(7`#X2T````BWL$D(UT)@"+`XD$).@&]`$`BUL(BT,$B00DZ/CS`0`Y -XMWG7DB7<(N`$```")?@2+5=@Y5?!T88M%[(M`!(E&!(M%[(M`!(EP"(M%\(EX -XM!(E'"(M%[(L`B00DZ+GS`0"+1>R)!"3HKO,!`(/$++@!````6UY?7<.+4@2+ -XM`H,X*741ZQV0C70F`(M2!(L"@S@I=`XYTW7R,<"#Q"Q;7E]=PXM#"#G0=._H -XM7````(/$+%M>7UW#BW,(BWL$.?,/A4;____I7?___XM5\(E5W(LZB00DB7PD -XM!.BI9?[_A<`/A1+___^)?"0$QP0D($,)".C57@(`BU7P/A,X```"+&(G&,?_K(I"#^"9T.X/X -XM*`^$G````(/X"G0MBW8(.77L#X26````BQZ+`X/X*71H?M:#^#Z-=@!T-(/X -XM?'0)@_@[==>-="8`A?]USXM%\(GRZ-+]__^Z`0```(7`=62+1@B+5>R#Q!Q; -XM7E]=ZWJ+=@@[=>QT1XL>QT0D!#`["0B)'"3HW&3^_X7`=(^+`X/X*76=D(UT -XM)@"#[P$/B7K____'!"1A````Z-OD_O_I:?___X/'`8UV`.E>____,=*%_W0* -XM@\07UWI2?W__XGVC;PG`````%6)Y5:)UE.) -XMPX/L$#G0=0GK+HM;"#G>=">+`XL`QP0DRML("(E$)`3H4^7__X7`=>&#Q!") -XM\HG86UY=Z<#^__^#Q!`QP%M>7<.-M"8`````58GE5E.[,@```(/L$(MU",<% -XM:)P+"`L```"-M@````"+1@B)\NB&____A&#Q!!;7EW#D)"0D)"0D)"0D)"058GEBT4(78L`HW!A -XM"0C#D%6)Y5W'!=@D"0B@G`L(PY!5B>6#[!BAV"0)"#V@G`L(#X2`````BPV$ -XM=PH(A&$) -XM"`$```"%TG5)BPWH=@H(N@$```"%R74&BQ7,EPH(+:"<"PB)1"0(QT0D!*"< -XM"PB)%"3HH^7__X/``71>QP78)`D(H)P+",<%>&$)"`````#)PXL-Z'8*"+H" -XM````A&$)"`````#'!=@D"0B@G`L(QP0D````(.@` -XMX_[_H=@D"0CI8?___XVV`````.CG9?[_BP"#^`ET'HUT)@!^*8/X&703B?:- -XMO"<`````?"&#Z$6#^`%W&<<$)`$```#HZH+^_^EG____@^@%@_@!=N?'!"0` -XM```@Z*'B_O^0Z4W___^-="8`C;PG`````%6)Y8/L"*'8)`D(BU4(@>+__S\` -XMB!"#P`$]EJ0+"*/8)`D(<@7HEO[__\FX`0```,/K#9"0D)"0D)"0D)"0D)!5 -XMB>53@^P$BPW`F`H(BUT(A#.-=@")'"3H.*4!`(E="(/$!%M=Z4O___^A?)@*"(7`#Y7`Z\*A_)D+"(7` -XM#Y7`Z[:-=@"!XW____>!RP````CKPNA]9@$`ZZN-="8`C;PG`````%6)Y593 -XM@^P0BT4(BQ5P80D(B<:)PX'F````/('C__\_0(72=5VI````0'56.QW<70D( -XM?2RAX%T)"/9$F#4"=!:#^W\/CA8!``"#/8!1"0@!#X0)`0``]D28-@1U&8UV -XM`(/[?P^.L@```(,]@%$)"`$/A*4````)WHDT).C0_O__ZR^+%<"8"@B!X___ -XM_S^%TG0^H>AV"@B%P'5EH?R9"PB%P`^5P(3`=3Z)'"3H7_[__XLUU"0)"(7V -XM=`N!X___/P"#^PIT2H/$$%M>7<.-=@"AZ'8*"(7`=!JA?)@*"(7`#Y7`A,!T -XMP@G>B30DZ/^C`0#KMJ'@=0D(A<`/E<#KII"A;)D+"(7`#Y7`ZYF-="8`@\00 -XM6UY=Z;7\__^)\(/(7(D$).C8_O__B=C!^`:#X`>#P#`)\(D$).C#_O__B=C! -XM^`.#X`>#P#`)\(D$).BN_O__B=B#X`>-6##I%____XU#]X/X`0^&"____XL- -XM=&$)"(7)=!J)\(/(7HD$).A^_O__@_M_=!*#RT#IY_[__X/[#77AZ=W^__^S -XM/Y"-="8`Z='^__^-="8`C;PG`````%6)Y5=64X/L'(M="(G8)?__/P")1"0$ -XMC47NB00DZ"Y:`@"%P(G'="")WC';@>8``,#_#[9$*^Z#PP$)\(D$).@,_O__ -XM.?MUZH/$'%M>7UW#58GE5U93@^PZ)!"3HWED" -XM`(7`B<=T((G>,=N!Y@``P/\/MD0K[H/#`0GPB00DZ`S]__\Y^W7J@\0<6UY? -XM7<-5ND#C12)`=(ITXE<)`B)3"0$ -XMZ&`Z`@"#Q!1;7<.-=@"-O"<`````5;AWFBX`B>564X/L$(MU"(GQP>D&]^&) -XMT\'K`H7;#X2,````B5PD!,<$)-C;"`CH'#H"`&G#0'X%`(GQ*<&X'X7K4??A -XMB=.ZB8B(B,'K!8G8]^J-!!K!^`7H8O___\<$)-K;"`CHYCD"`(G8NHF(B(CW -XMZ@':P?H%:](\*=.)V.@\____QP0DDAT)".C`.0(`B?"Z'X7K4??B@\006\'J -XM!6O29"G6B?!>7>D2____B?:X'X7K4??FQP0D/=P("(G3NHF(B(C!ZP6)V/?J -XM`=K!^@6)5"0$Z'8Y`@#K@HUT)@!5N,6SHI&)Y593@^P0BW4(]^:)T\'K"X7; -XM=&B)7"0$QP0DV-L(".A%.0(`:<,0#@``B?.ZB8B(B"G#B=CWZHT$&HG:P?@% -XMP?H?*=#HD/[__\<$)-K;"`CH%#D"`(G8NHF(B(CWZHG8P?@?@\00`=K!^@4I -XMPFO2/"G3B=A;7EWI7?[__XGPNHF(B(CWZHGPP?@?B?/'!"0]W`@(`?+!^@4I -XMPHE4)`3HQC@"`.NDD)"0D%6A@'<*"(GE7<<%@'<*"`````"CB'8*",.-M"8` -XM````5:&(=@H(B>5=QP6(=@H(`````*.`=PH(PXVT)@````!5B>564XG#H0"8 -XM"@B%P'1`BPT\=PH(,?;K#(VV`````(L`A7<.-M@````"-OP`````[!3QW -XM"@A5B>53B<-T$CL%<)D+"'0J6UW#C;0F`````*%PF0L(A6#[`B#/=27"@C_="*AU)<*"(7`=`C)PXVV`````,<$)#X```#H5-S^ -XM_\F-=@##QP0D(````.A#W/[_C78`Z\V-M"8`````C;PG`````%6)Y593@^P0 -XMBQT`F`H(BW4(QP6,=@H(`@```(7;="N0]D,,`G0>A?:X`;H("'4%N$7)"`B) -XM1"0$QP0D0````.CLV_[_BQN%VW76@\006UY=P^L-D)"0D)"0D)"0D)"0D%6) -XMY8/L6(E]_(M]"(E=](EU^(/_``^."@$``(U=U(UUY(D<).B#8/[_QT0D!!(` -XM``")'"3H@UO^_\=$)`05````B1PDZ'-;_O^)="0(B5PD!,<$)`$```#H#UO^ -XM_\=$)`1@'@4(B30DZ%/>_O^+10S'!"0`````B40D!.B<7/[_@\`!#X2G```` -XMA?]^=L<$)`\```#H\UW^_SE%#'1:C5V\B5PD",=$)`0`````QP0D%@```.CS -XM7O[_QT0D!`$```#'!"06````Z$]?_O^+10S'!"0/````B40D!.@,6O[_QT0D -XM"`````")7"0$QP0D%@```.BT7O[_C47DB00DZ!W=_O\QP(M=](,]U)<*"`"+ -XM=?B+??P/G\"#Z`$A!=27"@B)[%W##XU"____Z]:-=@#HQV#^_\<$)`````") -XM10R)1"0$Z-1;_O^#P`%T"(M]#.DT____Z')=_O^+`(D$).@86_[_QT0D!-S; -XM"`C'!"0V````B40D".A4VO[_QP0D`````.AX>O[_Z\.-M@````!5B>53B<.# -XM[!2+0!B%P'4(ZWZ+6P2+0Q@[0QQU]8G8Z#S]__\QP#L=@'<*"`^4P(/H`2$% -XM@'<*"(G8BU,4C78`@6`,_W___\=`&`````#'0!0`````BT`$.=AUY#L5,)H+ -XM"'0&@\046UW#H0"8"@@QR87`=`^+4!0YT7T"B=&+`(7`=?&)#3":"PB#Q!1; -XM7<.A@)@*",=$)`SLVP@(QT0D"`,```#'1"0$$0```(D$).@K.___B00DZ,,T -XM`@"#Q!1;7<.-M@````"-O"<`````58GE@^PHB77XBW4(B5WTB7W\A?9T"HM> -XM!(U^!(7;=2"+'3QW"@B%VW1HBQ4\=PH(BUWTB="+=?B+??R)[%W#D,=$)`3< -XM/0D(B30DZ/Q8_O^%P'3,QT0D!.@]"0B)-"3HZ%C^_X7`=+C'1"0$]#T)"(DT -XM).C46/[_AP`````ZPR+5?"+$H72B57P=&Z+ -XM5?"+0A@[0AQUZ8,_/W5&BU)XBP*%P'3;B=/K"HM#!(/#!(7`=,T[!G7RB5PD -XM!(DT).A1VO__ASKGHM5\(M" -XM>(D\)(E$)`3H(-K__X7`=(CKS8M5[(72D(UT)@`/A;K^__\QP(,_/P^4P(/H -XM`8/@\04\```0B00DZ-_7_O\QTNF8_O__QP0D.P``$.C,U_[_Z>'^__^)/"3H -XMCU,"`(D$).@S5O[_BQ4`F`H(A=*)P74(ZQB+$H72=!([2A1U]8M"&#M"''7M -XMZ5'^___'!"0M```0Z(77_O^0C70F`.G;_O__C70F`(V\)P````!5B>6#[`B+ -XM10B+0`2)!"3H[/W__X-(#"#)PXVV`````%6)Y593@^P0BS6`=PH(A?9T5/=& -XM#`(!``!T".M)C78`BW8$BT88.T8<=?6+1A2)\\<$)`?<"`B)1"0$Z%`R`@"+ -XM0QC'!"0\W`@(B40D!.@],@(`BUL$.=YUYL<$)`H```#H2O7__\<%@'<*"``` -XM``#'!8AV"@@`````@\006UY=P^L-D)"0D)"0D)"0D)"0D%6)Y5=64XG#@>RL -XM````B95D____BT`8.T,<=`^-="8`BUL$BT,8.T,<=?4Y6P0/A)`'``"+A63_ -XM__^)WHN59/___\>%=/_________'A7C___\`````@^`0B46`BX5D____@>*$ -XM````B56(BY5D____QX5P_________X/@`HE%A(N%9/___X/B`8F58/___X/@ -XM!(F%7/___XVT)@````"+1@R+E7C___^)QPG"@>%?/___R3<"`B%P'4*QX5\____^]X("#N]MP(".@# -XM,`(`C48@B40D#(U&*(E$)`B-1C")1"0$QP0DH&$)".AR6@``B?:+1@0YPW0) -XMB<;IC]___'!"0@````Z"+R___IK?[___:%9/__ -XM_P@/A8("``#VA63___]`#X2Y_O__H629"PB+0`R)1"0$BT,(BT`,B00DZ&53 -XM_O^%P`^$E_[__Z&`F`H(QT0D#'/<"`C'1"0("@```,=$)`01````B00DZ/PT -XM__^)!"3HE"X"`(M#"(M`#(D$).BFH?[_QP0D><((".AZ+@(`Z4O^__^0C70F -XM`#L=/'<*"+@K````=!0QP#L=<)D+"`^4P(/H`8/@\X/`+8M6%+D=W`@(@_H) -XM?@6Y12-1BB)1"0$B10DZ(-4``"+1>PY1>1UMHM%Z#M% -XM\`^?P.NNC47LQT0D#(!A"0B)1"0(B7PD!,<$)*!A"0CHT50``.FJ^O__BT,, -XM]L1`#X1D^/__@.2_@\A`B4,,Z5;X___'!"07W`@(Z!8J`@#I+/___Y!5B>56 -XM4X/L$(MU"(M=#(,%T*P+"`''1"0$L)`(",<$)-"L"PCHE]'^_XGPZQ"-=@"` -XMS@&)4`R+0`0Y\'0IBU`,]L(#=/&)T8/)`8G*@^+]A=N)4`QUVH'A_?[__XE( -XM#(M`!#GP==>%VW5#B?#H?_'__[H+````B?#HD_?__\=$)`03````BT8(D$).C,<$)(0``!")1"0$Z!W-_O^+5@2%TG6DC;8`````@\006UY= -XMPXGVC;PG`````%6)Y5=64X/L#(LUC'8*"(M5"(7V=`K'!8QV"@@"````C4($ -XMBU($OP<```"%TG08BU@$A=MT=,<$)#@```"_5P```.BYS/[_BPTPF@L(A7UW#B=CH&/+__^OD -XMQT0D!*PX"0AFOU<`B10DZ!Y,_O^%P'2%Z6____^)]HV\)P````!5B>53@^P4 -XMBQT`F`H(QP50F@L(`````(7;=0OK68UV`(L;A=MT4&:#>PP`D(UT)@!Y[H,% -XMT*P+"`''1"0$L)`(",<$)-"L"PCHT\[^_[H'````B=B!8PS_?___Z!#U__^H -XM`W08QP0DT*P+".@0SO[_BQN%VW6P@\046UW#B=CH;?'__^O?C70F`(V\)P`` -XM``!5B>575HG&4X/L+(7`B578="V+`(7`=">)\^L/C70F`(/#!'0:BP.%P'04 -XM@S@EB?9U[HD$).A&S?__@\,$=>:)-"3HN7K__\=$)`3P(P8(B<>)!"3H-\[^ -XM_X,%T*P+"`''1"0$L)`(",<$)-"L"PCH',[^_Z&4=PH(A<`/A08"``"%_P^$ -XM6`(``(L?A=L/A$X"``#'1=P`````QT7@`````.MG@_A_=W3V!(6]40D(!'1J -XMB1PDZ+9&`@"-5?#'1"0("@```(E4)`2)!"3HJTW^_XG#BT7P@#@`#X2!```` -XMQP0D.0``$.BURO[_@WW8#P^$+`$``(-]V`$/A"(!``"#QP1T+XL?A=MT*8L# -XM@_@E#X2.````J0```$!TAX/X+9!TD,<$)#D``!#H7UW#C;8`````BTW8B1PD -XMB4PD!.A]2?[_A<`/B73____H($W^_XL`B00DZ,9*_O^)7"0$QP0DJ=P("(E$ -XM)`CH1B4"`(-%X`'I7/___XD<).B%\/__B<:-=@"+4`P)5=R+0`0YQG7S@WW8 -XM%G<<#[9-V+@!````T^"I``!F`'1A]D7<`0^$R````(M%V(E$)`2+1AR)!"3H -XM*T_^_X7`#XCY````@WW8#W0*@WW8`0^%]O[__\=$)`03````BT8,<$ -XM)(0``!")1"0$Z![)_O_I>/[__X,%Q*P+"`''1"0$L)`(",<$),2L"PCH[LO^ -XM_^G:_?__H8"8"@C'1"0,BMP(",=$)`@,````QT0D!!$```")!"3H="K__XE< -XM)`2)!"3H""0"`(-%X`'I'O[__\<$)-"L"PCH`\O^_^E@_O__Z*5+_O^+`(D$ -XM).A+2?[_B5PD!,<$)*'<"`B)1"0(Z,LC`@"#1>`!Z=O^__^)]E6)Y5=64X/L -XM'(M5"(M"!(UZ!(7`=`6#."UT%KL/````B=J)^.BW_/__@\0<6UY?7<.-<`2+ -XM0`2#^&QT=X/XNIQP0D"@```.B[Y?__Z?_^__^+0@B-2@B%P'1AB<^)QND(____]@2%O5$) -XM"`0/A`S___^)-"3H_4("`(U5\,=$)`@`````B50D!(D$).@22?[_B<.+1?"` -XM.`!U#87;>`F#^Q\/CBK____'!"0;```0Z//&_O^-=@#I%O___\<$)`X``!#H -XMW\;^_^F?_O__C78`C;PG`````%6Z$0```(GEBT4(78/`!.D<^___C;8````` -XMC;\`````58GE@^P8B5WXB<.)=?R+`#L%($,)"'1YB1PDZ!Q'_O^)QJ%08PD( -XM@_A/=RT!\(/X3W8PQT0D!,@]"0BA5&,)"(D$).CT1?[_@P548PD($,<%4&,) -XM"%````"+7?B+=?R)[%W#B5PD!*%48PD(B00DZ,A%_O^-!+4``````3508PD( -XM`0548PD(BUWXBW7\B>Q=PX/#!.N"C78`C;PG`````%6%P(GE5HG&4P^$P0`` -XM``^V!CP"#X3M````=WHL`8GV#X2N````BU8$]L($C70F`'4EBT8(A!B+1@2#X`&#^`$9P"4``0``@\`!B4,,BU8$]L8@=`F`S$")0PR+5@3V -XMQD!T"H%+#````0"+5@1FA=)Y!X%+#````@")\,<%5&,)"`!B"0C'!5!C"0@` -XM````Z/O]__^A5&,)",<``````(/`!*-48PD(]D8$"'02BU,,B="`S`B)0PR` -XM?@0`>'N0QP0D`&()".B$/0(`B4-XH8!W"@B%P'1MQT,(`````*&`=PH(BT`4 -XMB4,4H8!W"@B)0P2A@'<*"(M`&(E#'(L5@'<*"(G1ZP*)PHM"!#G!=?>+#0"8 -XM"@B)6@2-0R")"XD=`)@*",=%#`````")10B#Q`Q;7E]=Z9)$_O^`S@R)4PSI -XM>____XD=@'<*"(E['(E;!*%DF0L(B4,(H629"PB#0`@"H3":"PB#^`A_+8L- -XM`)@*"(/``:,PF@L(B4,4BS4\=PH(A?9T28L5<)D+"(72=8B)'7"9"PCK@(L- -XM`)@*"+X!````ARA@)@*",=$)`S( -XMW`@(QT0D"`$```#'1"0$$0```(D$).A$'___B00DZ-P8`@"+6P0Y\W6_C5W( -XMB1PDC7VXZ&-"_O_'1"0$`@```(D<).AC/?[_QT0D!!0```")'"3H4SW^_XU% -XMV(E$)`B)7"0$QP0D`0```.CL//[_C478B00DQT0D!&`>!0CH+<#^_XM%V(E% -XMN(M%W(E%O(M%X(E%P(M%Y(E%Q,=$)`04````B3PDZ.%"_O^0C70F`.@K,`(` -XM,=N)\(VT)@`````+6`R+0`0Y\'7V]L,!=`J)/"3HI4+^_^O7C478B00DZ"R_ -XM_O^AU)<*"(7`?A")1"0$QP0D#P```.C?._[_]L-2#X3T`0``]L,"#X4E`0`` -XMNJ````")\.CEY?__]\,"(```=`Z+/91W"@B%_P^%C@$``(GR,=L/MD(0A,!T -XM$O="#!`@```/MMAT!H/(@`^VV(M2!#GR==^%VP^$@0```,=$)`3$F`H(QP0D -XMP#P)".@^)@``A7]___H>ES^_XGPZ%/@ -XM__^#Q%Q;7E]=PZ&`F`H(QT0D#+W<"`C'1"0(`@```,=$)`01````B00DZ`8< -XM__^)7"0$B00DZ)H5`@#I%?[__XGPZ`[@___I564X/L$(M=".A`W?__BT,$B=[K/L=#&``` -XM``#HJ3S^_XL`B00DZ$\Z_O^)1"0(BT-XQP0DA```$(E$)`3HC+G^_XM&!(7` -XM=#>+1@B#Q@2%P'0MB00DZ`/@___'1"0$`0```(G#B00DZ)'J__^%P'2DB1PD -XMZ%7[__^+1@2%P'7)@\006UY=PXVT)@````!5B>564X/L$(L=`)@*"(7;=%2^ -XM`)@*".L/C;0F`````(L8B<:%VW0^BTL8B=B%R77OBP.)!HM#>(D$).APQ@$` -XMBU,(A=)T#8M""(/H`H7`B4((=":)'"3H5,8!`(GPBQB)QH7;=<*A@'<*"(D$ -XM).C-^O__@\006UY=PXM#"(L0A=)UT8D$).AE>/[_Z\>-=@!5B>575E.#[&R- -XMM"8`````Z)<[_O_'``````"+-91W"@B%]@^$7@(``(L=P'8*"(7;=0Z+#?Q= -XM"0B%R0^$1@(``+@#````C56HB40D!(U%\(E4)`B)!"3H<#C^_XG"C4`!@_@! -XM#X8S`@``BS4`F`H(A?9U".N:BS:%]G24.U88D'7TBTX,B"$``(D$).CP,@(`B00DZ)0U_O\YPP^,]0`` -XM`(M'#(/(0(E'#`E%H(M_!#GW=8N+5@R)T(#D_CMV!(E&#`^$G@$``/=%H`$0 -XM```/A3S^__^)\XM##*@"=`:`S!")0PR+6P0Y\W7LBT,8.T,<=`N+6P2+0Q@[ -XM0QQU]8M]H(/G`@^$?`$``*$\=PH(A^__^)0P3'1"0(`0```,=$)`0"````B00DZ.@S -XM_O^+`X7`>!6+4P2%TG@&@\046UW#B00DZ+&Y__^+0P2%P'@(B00DZ**Y___' -XM10@U````@\046UWI,;3^_Y!5B>6#["C'1"0$Q)@*"(E=](G3B7W\B<>)=?C' -XM!"1@1@D(Z/D=``"%P`^$A@```(D<)(U=[.C6L?[_QT7P`````(D<)(E%[.BT -XM3O__ASH[<`!`.N;B1PDZ%.Q_O_'1"0$,"H("(G#B00DZ%&V_O_' -XM1"0$`````(D<).@18___B1PDB47LZ):U_O_I8?___XM%[(D$).@&+P(`HR!W -XM"@B+1>R)!"3HEL`!`,<$)#$``!#H&K/^_^E7____D(UT)@!5B>575E.![.P` -XM``"+?0B%_W1JBS70F0L(A?9T,XL=P'8*"(7;=0J+#229"PB%R70?BU4(BT(0 -XMABS7H=@H(A?9T"8MU"/9&!01T%8'$[````%M>7UW##[8!_R2%\-P( -XM".@9N/__@<3L````6UY?7<.+70B+0Q"+,(L&)?___W\]````0`^$I@\``(#F -XM!`^$*P\``(M5"(M"$(LPA?9TK(M2!/;""`^%A@(``(#F`@^%1`(``,=$)`@" -XM````QT0D!!`O"0C'!"3T+@D(Z$XE``"+50B`.@$/A90```"+30B+<1"+'L=$ -XM)`0,2`D(B1PDZ,8Q_O^%P`^%5@$``(M&!(7`#X2(!@``BP#'!"3JW`@(B40D -XM!.B1,_[_A<`/A+$!``"+3@B%R0^$8P8``(M=",<%('<*"/31"`B+0Q"+0`2) -XM!"3H]QD``(A#`<=$)`0"````BT,0B00DZ.&W__^!2P0`"```BU4(@#H!#X1L -XM____H2AW"@C'1?``````A<`/A;3^__^+1?"%P'0PBT7P@7@$`/D$"`^$50<` -XM`(M%\(%X!&#V!`@/A$4'``"+1?"!>`2@[00(#X0U!P``BT4(BW`$]\8`(``` -XM=1[WQA`````/A2H'``"+1?"%P'0+9O?&"9@/A!@'``"+50B`.@)T$X'F`00` -XM`'4+BT7PA<`/A,$*``"+10R%P'@-H5AC"0B%P`^$V`T``(M%#(E$)`2+30B) -XM#"3H]NW__X7`#X7""0``H5AC"0B%P`^%2PH``(M%"(MP!,>%'/___P$```#I -XMR@8``,=$)`3D1PD(B1PDZ%@P_O^%P'4JBU8$A=(/A!X%``"+30B!200`$``` -XMQT0D!`$```")-"3HL[;__^E`_O__QT0D!/Q'"0B)'"3H&C#^_X7`#X4&!@`` -XMBT8$A<`/A-P$``"+70B!2P0`@```QT0D!`$```")-"3H<;;__^G^_?__BT4( -XMQD`!!,=$)`0!````B30DZ%6V__^+50B!2@0`"```Z=C]___'!"0`````Z#JU -XM__^+50B+0@B)!"3HS*+^_XL=*'<*"(7;#X24_?__QP0D`````.@2M?__Z8/] -XM__^+712)'"3HPOK__XMU"(M6!.ED_?__BW4(@#X"=`^+11B)-"2)1"0$Z"#B -XM_O_'1"0$$P```,<$)`````#HS+C__\=$)`@!````QT0D!`(```"C1)D+"(D$ -XM).C++O[_QT0D!!$```#'!"0!````Z)NX___'1"0(`0```,=$)`0"````H\R7 -XM"@B)!"3HFB[^_Z',EPH(B00DZ)TT_O_'1"0$$@```,<$)`(```"CX'4)".A8 -XMN/__QT0D"`$```#'1"0$`@```*,$=@H(B00DZ%AV"@@`````BT$$ -XMBU$4@^`@"4($BT4,BUT8B10DQT0D#`````")1"0$B5PD$,=$)`@`````Z`C[ -XM___H\T_^_XMU"(U=Z(M."(M6!(M!!('BI0```(/("`G0B4$$BU48BT4,B5PD -XM#(E4)!"+=1")1"0$B0PDB70D".C%^O__BT4(BW4(BT@,BU8$BT$$@^(Y@\@$ -XM"=")002+51B+10R)5"00BW44B5PD"(E$)`2)#"2)="0,Z(KZ___I[_K__XM% -XM"(M("(7)=%"#XB`)402+10R+51B)#"3'1"0,`````(E$)`2)5"00QT0D"``` -XM``#H3_K__XM-"(M!"/9`!`%T&(M1#(72#X2B^O__]D($`745B?;HZ]7__XM= -XM"(M3#(72#X2'^O__BW4(BT8$@^`P"4($BT4,BU48QT0D#`````#'1"0(```` -XM`(E$)`2)5"00BT8,B00DZ.CY___I3?K__XM="(M+"(7)=%N#XB`)402+10R+ -XM=1B)#"3'1"0,`````(E$)`2)="00QT0D"`````#HK?G__\=$)`3$F`H(QP0D -XM]"X)".CY%@``B00DZ`$5``"%P`^4PH`[!@^4P#C"#X7[^?__BT4(BU`,A=(/ -XMA-KY__^+0`2#X#`)0@2+10R+71C'1"0,`````,=$)`@`````B40D!(E<)!") -XM%"3H0?G__^FF^?__B00DZ%2M__^#Z`&0#X5Z^?__BSTH=PH(A?\/A6SY__^+ -XM30B+01"+`(D$).B\80``A<")A2#___]T"8,X?@^$;PX``(N%(/___XD$).C+ -XM)P(`BY4@____B10DB%`20H@4(='R+1?"!>`3@H04(='"+1?"!>`30H@4(=&2+1?"! -XM>`1`M04(=%B+1?"!>`20H04(=$R+1?"!>`3PI@4(=$"+1?"!>`3PI04(=#2+ -XM1?"!>`3@GP4(="B+1?"!>`1@H`4(=!R+1?"!>`0@HP4(=!"+1?"!>`10?`4( -XM#X7J]___BUT(@#L!#X4J^?__BT7PA<`/A1_Y__^%T@^%%_G__Z'`=@H(A<`/ -XMA`KY__^)'"3H;.O__\=$)`0P*@@(B<.)!"3H.JW^_XD<).@2Y`$`B1PDZ(JL -XM_O_IV_C__Y"-="8`QT0D!'0\"0B)'"3H_"G^_X7`#X7)_O__BT8$A<`/A+[^ -XM__^+10B!2`0`(```QT0D!`$```")-"3H4[#__^G@]___BW4(@68$__?__^F\ -XM^/__BT7PA%'/___P````"AZ'8*"(7`#X4=`@`` -XM]\8`!```#X41`@``]\8``@``#X7<````BU4(BT((A<`/A.\)``"AM'8*",=$ -XM)`0`````B00DZ-JR__^AS)<*",=$)`0!````B00DZ,6R__^A!'8*",=$)`0" -XM````B00DZ+"R__^+30B+40B)R.@3]?__B<.)!"3H"24"`(D$).A!M/__B1PD -XMBL_O_'1"0$`````(D\).A'K/__A<")PP^( -XMI@H``(D\).A%J_[_QT0D!`,```")'"3H82C^_\=$)`0$````B1PDB40D".A- -XM*/[_QT0D!`````")'"3H<;+__XM%"(M0#(72#X2;!@``Z'[T__^)PXD$).AT -XM)`(`B00DZ*RS__^)'"2)Q^@"M@$`QT0D!#`J"`B)/"3HD```#'1"0$Q)@*",<$),`\"0CH0!$``(7`#X2B]/__QT0D!,28"@C' -XM!"3T+@D(Z(01``")!"3HC`\``(7`B<,/A'ST__^A@)@*",=$)`R]W`@(QT0D -XM"`(```#'1"0$$0```(D$).B="/__B5PD!(D$).@Q`@(`Z4;T__^+=0B+5@3V -XMP@%T"*-L=@H(BU8$BQWH=@H(A=MU)O;"!'0ABU40BP*)!"3H':S__XM-$(M! -XM!(D$).@/K/__BUT(BU,$]L((#X7Z\___H5AC"0B%P`^%2@0``(/B`0^%Y//_ -XM_^A%[?__D(UT)@#IU?/__^A62/[_C;8`````Z<7S__^+1?"!>`2P@04(#X6/ -XM_/__Z5_U___'1"0(`````,=$)`1@8PD(QP0D`P```.C6)?[_BUT(QP588PD( -XM`````(MS!,>%'/___P$```#I6?S__XM%#(7`>!B+/5AC"0B%_W4.BS4H=PH( -XMA?8/A"`(``"-7=B)'"3HS2K^_XD<),=$)`04````Z,TE_O^)'"3'1"0$`@`` -XM`.B])?[_C47(B5PD!(E$)`C'!"0!````Z%8E_O^AY'4)"(L5E'<*"(L-P)@* -XM"(L=Z'8*"(LUM'8*"(F%)/___Z',EPH(B94H____BQ4$=@H(B8TL____BPU$ -XMF0L(B9TP____BQW4EPH(B;4T____BS7@=0D(B84X____H?R9"PB)E3S___^+ -XM%6QC"0B)C4#___^+#6AC"0B)G43___^+'61C"0B)M4C___^+-6!C"0B)A4S_ -XM__^A6&,)"(F58/___XF=6/___XF-7/___XFU5/___Z-<8PD(QP7$=@H(```` -XM`,<%3)D+"`````"+'>A="0C'!;AV"@@`````QP51U"0@!A<`/A`T%``"%V\<% -XME'<*"``````/A!0'``#'1"0$`0```,<$)`(```#H;"C^_\=$)`0!````QP0D -XM`P```.A8*/[_BT4,A;Q__^- -XM7@2)'"3H+R/^_XDT)(E<)`2-!(4$````B40D".AX)_[_BW4(BU8$Z2WP__^A -XM!'8*"(D$).@0(_[_H?R9"PC'1"0(`````,=$)`0"````QP0D`@```*-LF0L( -XMZ,HA_O_IH?K__\=$)`@`````QT0D!&!C"0C'!"0#````Z,DA_O^+=0C'!5AC -XM"0@`````BU8$Z87[___WQ@@````/A"@"``#'!"0!````Z&"G__^+312+002) -XM!"3HCB+^_\<%?)@*"`````#I#_K__\=$)`0)````B3PDZ!.E__^#^/^)PP^% -XMR_G__^E\^?__C47(QT0D"`````")1"0$QP0D`P```.A$(?[_QP0D,````.B< -XMH?[_BX4D____BY4H____BXTL____B[4P____H^1U"0B+A33___^)%91W"@B+ -XME3C___^)#<"8"@B+C3S___^)->AV"@B+M4#___^CM'8*"(N%1/___XD5S)<* -XM"(N52/___XD-!'8*"(N-3/___XDU1)D+"(NU8/___Z/4EPH(BX5<____B17@ -XM=0D(BY58____B0W\F0L(BXU4____B35L8PD(HVAC"0BA7&,)"(D59&,)"(D- -XM8&,)"*-88PD(H4R9"PB)!"3H1:X!`*'$=@H(QP5,F0L(`````(D$).@NK@$` -XMH;AV"@C'!<1V"@@`````B00DZ!>N`0"A7)D+",<%N'8*"`````")!"3HP*?_ -XM_XMU",<%7)D+"`````")'"2)="0$Z.?;__^-1_G__\=$)`3$F`H(QP0DH$$)".@P"@``A<`/A/WW__^+ -XMA5#___^%P`^%)@(``(V%:/___XE$)`2)/"3HA"+^_X7`#XC5]___#[>%!U"0C'1"0(`````,=$)`0"````QP0D`0`` -XM`*-\F`H(Z"$?_O_IS/?___?&!`````^%S````/?&(````'0-@SW4EPH(_P^$ -XM30,``,<$)`````#HTZ3__Z%$F0L(B00DZ`(@_O_'1"0(`````,=$)`0"```` -XMQP0D`````.C&'O[_Z83V___HG"7^_XG#Z7?Z__^#/=27"@C_#X5_^___BU4( -XM]D($(`^$ -XM_O_II_;__\<$)`````#H'*3__XM=$(L#B00DZ$L?_O^+`XD$).@%I/__BT,$ -XMB00DZ/JC___IU/7__\=$)`0`````QP0D`0```.C-(O[_BT4(BW`$Z?/Z___' -XM1"0$`0```,<$)`$```#HKB+^_XM="(MS!.G+^O__Z$XA_O^+`(D$).CT'O[_ -XMB7PD!,<$)#8```")1"0(Z#2>_O_I,O7__\=$)`@`````QT0D!&!C"0C'!"0# -XM````Z*\=_O_'!5AC"0@`````Z5_Y___H^R#^_XL`B00DZ*$>_O^)?"0$QP0D -XM-@```(E$)`CHX9W^_^FR_?__C5W8B1PDZ*TB_O_'1"0$%````(D<).BM'?[_ -XMQT0D"&!C"0B)7"0$QP0D`0```.A%'?[_QP588PD(`0```.F>]___B<+'1<@` -XM````@\($QT7,`````,=%T`````"+0`2%P`^%F@```(G6QT0D!,28"@C'!"20 -XM+PD(Z*\'``")1"0$C47(B00DZ)`5`@"-7?X__^+10BS`?9`!"`/A7KX__^-="8` -XMZ4_X__^#^"\/A%W___^)UH/&!(L&AZZ7H8Q_^_XL`A<"-=@!U98M="(MS -XM!,>%'/___P$```#IA_+__P^VP(/(@.GC^/__Z&4B_O^)QNG8]___QP0D```` -XM`.B&H?__QT0D!`````#'!"3,L0@(Z%*?___I3//__XU%R(E\)`2)!"3H/A0" -XM`.EX____Z/`>_O^+`(D$).B6'/[_QT0D!+'<"`C'!"0V````B40D".C2F_[_ -XMBT4(BW`$QX4<____`0```.G[\?__C;8`````C;PG`````%6)Y8/L",<$)`$` -XM``#HNB#^_Y"0D)"0D)"0D)"0D)"058/X"8GE4XG#=A&ZSH#B=#H -XMY/___XG8NLW,S,R+#71C"0CWXHU!!,'J`XT4D@'2*=.-4S")$5M=HW1C"0C# -XMC70F`(V\)P````!5B>575E.)PX/L"(E-[.LFQT,8`0```+@!````C70F`(7` -XMBU7PB?L/E,`/ML`[1>P/A9H```"+>Q2%_P^$CP```#'`.5\0#Y3`.U7LB47P -XM=!^+0QB%P'2X@_@!="B#^/]UOC'`QT,8`````.NSC78`BT,8A12%P(E#$'0&BT$,B5@4B5D, -XMB4L4BT7PB4R'#(M!#,=`&`$```"X_____\=!&/_____I4O___XGV@\0(6UY? -XM7<.#^`%TA8/X_P^%.O___XMS#(M6&(72#X7_````BT80B7X4A<")0PQT!HM& -XM$(E8%(E>$(ES%(M%\(ETAPR+1A#'0!C_____N`$```#'1A@!````Z?'^__^# -XM^@$/A(,```"#P@$/A=_^__^+<0R+012+5A")1A2+0Q"%THE0#'0)BU80BT,0 -XMB4(4BT,0B480B7`4BT,4B7,0B484BT8,A<")0Q!T!HM&#(E8%(E>#(ES%(M% -XM\(ETAPPQP(M6#(-^&``/GL"#Z`&)0AB+1AB+5A#!Z!^)0A@QP,=&&`````#I -XM9?[__XM!#(EY%(7`B4,0=`:+00R)6!2)60R)2Q2+1?")3(<,BT$,QT`8```` -XM`#'`QT$8`````.DM_O__@_H!=$&#P@$/A1_^__^+1A")?A2%P(E##'0&BT80 -XMB5@4B5X0B7,4BT7PB72'#(M&$,=`&``````QP,=&&`````#IY_W__XM.$(M& -XM%(M1#(E!%(M##(72B5`0=`F+40R+0PR)0A2+0PR)00R)2!2+0Q2)2PR)012+ -XM01"%P(E##'0&BT$0B5@4B5D0B4L4BT7PB4R'##'`BU$,@WD8``^>P(/H`8E" -XM&(M!&(M1$,'H'XE"&#'`QT$8`````.EM_?__C;8`````C;PG`````%6)Y5=6 -XM4X/L'(M%"(M]#)")QHM`#(7`=?>+5A2%T@^$B@```(5^"'1?H91W"@B%P`^% -XM@````(L&B00DZ%"9__^)PXM&!,<$)`S="`B)1"0$Z&OS`0"#ZP%T=\<$)"@` -XM``#H>K;__XL&B00DZ*"D___'!"0I````Z&2V___'!"0*````Z%BV__^+1A"% -XMP'6!BT84.W`0=0J)QHM&%#MP$'3VB<:+5A2%T@^%=O___X/$'%M>7UW#C47P -XMB00DZ'\+`@"-1?")!"3H!)K^_^EE____BP:)!"3H-:3__^N?C78`58GE5E.# -XM[!"+70B%VP^$W````(L3@_HKB=`/A*`````Q]H/X+8G"=&WWP@```$`/A;8` -XM``"#^G\/AZT```")V3';]@25O5$)"`1U%^F:````@_I_=Q^#P03V!)6]40D( -XM!'02C02;C5Q"T(M1!/?"````0'36_O^+ -XM$^EI____BT,$,?:-2P2%P`^$6?___XG+Z4G____V!)6]40D(!&:^`0`/A57_ -XM___KO3';ZX;'!"0)```0Z*66_O_I$____U6)Y5.)TX/L!,<"`````(M(!(U0 -XM!,<``````(7)=$_WP0```$!U3(/Y?W=']@2-O5$)"`1T/8L#ZR*-M@````#W -XMP0```$!U*X/Y?Y"-="8`=R'V!(V]40D(!'07C02`@\($C41!T(D#BPJ%R772 -XMC5H$ZPB#^5V-6@1T#,<$)`@``!#H&9;^_XG8@\0$6UW#D%6)Y5=64X/L#(M% -XM#(M]"(M8#(7;="Z+-^L1C;8`````AR)5"0$ -XMB3PDZ*P5_O^%P'7<@\0,B=A;7E]=PXGVBUL,Z]*-="8`C;PG`````%6)Y8/L -XM"(M5"(M%#(72="*%P'0>B40D!(D4).B`____A6#[!C'1"0$Q)@*"(E=](EU^(G&B7W\B=>)!"3H -XM/?___X7`B<-T+87_?@Z+`XD$).A)EO__.<=^#,<$)"L``!#H*97^_XG8BW7X -XMBUWTBWW\B>Q=PXDT).A2G/__Z\E5B>53@^Q$BU4(C5W(B1UT8PD(A=)Y$8U% -XMS/?:QT7(+0```*-T8PD(B=#H4?G__Z%T8PD(QP``````B1PDZ'X.`@"#Q$1; -XM7<.0C;0F`````%6)Y5=6B<93@^P,BP")!"3H:YO__XM&!(D$).@0H@$`BTX0 -XMA -XM7UWI_/C__XM.#.O'BUX4.W,0#Y3`#[;XB4R[#.O)D(UT)@!5B>6#[!B)=?R+ -XM=0B)7?C'1"0$Q)@*"(DT).CQ_?__A<")PW00BW7\B=B+7?B)[%WI*____XDT -XM).@CF___Z^:058GE5HG&4X/L$(M:#(7;=0GK+XM;$(7;="B+2PR%R9!T#8G: -XMB?#HU?___X7`=16)="0$BT,$B00DZ,))__^%P'31B=B#Q!!;7EW#D(UT)@!5 -XMB>575E.#[`R+=0B+?0R+1@2%P'1*,=OK'(VV`````(M`!,<$)(,``!")1"0$ -XMZ%V3_O^+1@2)^NAS____AB$_O__@\,!D.OAA=MT$H/&!(M& -XM!(7`=;:#Q`Q;7E]=PXM&!(D$).CM#@(`HR!W"@CKW(VV`````%6)Y5=64X/L -XM#(M=",=$)`3$F`H(QP0DX$8)".C@_/__QT0D!,28"@C'!"2`,0D(BF5\?[_D(UT)@#'1"0$ -XMQ)@*",<$)(`Q"0CHS/K__X/X`1G`]]`A!8AW"@CKBZ'4F0L(HTQW"@CISO[_ -XM_\<%C)@*""$```#'!42:"PA>````Z1K^__^0C70F`,<%-)H+"#X```#'!8QW -XM"@@C````Z3G^__^-M"8`````Z-N5``#IR+.NL5A<`/G\`/ML")1?"+1(8,A2)>Q3'0Q@`````QT,0```` -XM`(E#"(GXQT,,`````(M5\.@O]/__BU7HB1.)50B#Q!Q;7E]=Z?LI__^)7"0$ -XMQP0D@P``$.A+C_[_Z63___^-M@````!5B>575E.#[#R+712+10B+50R+31") -XM7"+7=2+1(L$@\$! -XMB4W@A# -XM1>P!BTW@.4WL?3V+?>R%_W[MBUWLBT74BSR8ZZ;V1")UC'`@^D! -XMB4WDZQ&-6`$[7>`/C,(```"#Q@2)V#M%Y'SJBW7@,-=@"+7=2+ -XM!(N%P'0&B023@\(!@\$!.TW@=>@[5>!]%XM-U(T$D<<``````(/"`8/`!#M5 -XMX'7O@V7,GXM=S(M%T(M5U(M-V(E=%(E%$(E5#(E-"(/$/%M>7UWI=/W__XD4 -XM).B,*/__A<`/A)[^__^)1"0$BT74B00DZ#4\__^%P(G#=':+3=2)#"3H5)3_ -XM_XE=U.EV_O__B3PDZ/2:`0"+5=S'`@````#I__[__XE=\(EUZ(M^_(7_=!F+ -XM5>B+`H7`=!")?"0$B00DZ#`-_O^%P'06@T7P`8M-X(-%Z`0Y3?`/C03____K -XMRHD\).BBF@$`QT;\`````.O9BU74B10DZ-Z3___'!"0Q```0Z!*-_O_I;O__ -XM_XVV`````(V\)P````!5B>6#[!C'!"0(````Z"Z;`0"+50S'0`0`````B1"+ -XM51")1"0$BT4(QT0D",28"@B)5"0,B00DZ(3]___)PXGV58GE@^P8BT4,B5WT -XMB77XBW40B7W\BWT(B00DZ%`&`@#'1"0$,"H("(G#B00DZ'Z/_O^)="0(B5PD -XM!(D\).A^____B1PDZ!:/_O^+=?B)70B+??R+7?2)[%WILH[^_XGV58GE@^P8 -XMBT4(QT0D"`(```#'1"0$^&\)"(D$).A_____R<.-M@````"-O"<`````58GE -XM5XG'5E.#[!S'1"0$E#()"(D$).CQ"_[_A<`/A=,```#'1"0$Q)@*",<$))0R -XM"0CHZ?7__X7`#X1/`0``BP"-=>C'1>@`````QT7L`````,=%\`````"%P'1+ -XMBQ"%TG1%B7UW#QT0D!``_"0B)/"3H!@O^_X7`=2C'1"0$Q)@* -XM"(D\).AF]?__BQ")%8R8"@B+0`2C1)H+"(/$'%M>7UW#QT0D!$`_"0B)/"3H -XMR@K^_X7`="#'1"0$@#\)"(D\).BV"O[_A#^G]W4O8$E;U1"0@$=$BA<&,)"(/!!(T$@(U$0M"C<&,) -XM"'7-H7!C"0B%P`^/T?O__^LMQT0D!&!`"0B)/"3HH0;^_X7`=2C'!6QW"@@! -XM````Z:S[___'!7!C"0@`````QP5P8PD(&@```.F3^___QT0D!``V"0B)/"3H -XM90;^_X7`=0KHX$G^_^EU^___QT0D!.!&"0B)/"3H1P;^_X7`=0SHTBH``(GV -XMZ57[___'1"0$H$D)"(D\).@G!O[_A@#BP``C78`Z97Z___'1"0$P#0)"(D\).AG!?[_AA"Y?[_B?;H -XM&^;^_^EP^O__QT0D!,P^"0B)/"3H0@7^_X7`#X58^O__QP7T8`D(`0```.E) -XM^O__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+10B+<`2%]G1.B30DZ-:&___' -XM1"0$Q)@*"(DT).@&[___A<")PW0WBP"%P'0QBP"%P'0[QT0D!`$```"+`XD$ -XM).A2B___@\00B?!;7EWIM?C__Y"-="8`OB0V"0CKLXDT).@1C/__BP.+`(7` -XM=<7'!"0*```0Z+V$_O_KMXUT)@"-O"<`````58GE@^PXB5WT@_@]C5W4B7W\ -XMB<^)=?B)7?`/A(````"+"H7)=6"-3=B)WHU5W(U=Z(/X/(E%Z,=%[`````") -XM'G12@_@^=$V).8U%\,<"`````(D$).A&U/[_B<.+1?"+`(7`=`S'!"0A```0 -XMZ#^$_O^)'"3H)^___XM=](MU^(M]_(GL7<.)5=2-==B-3=R-5>#KFHD9B=&# -XMP@3KJHUV`(U5V(G9ZZ")]HV\)P````!5B>6#[!B)=?R)UHE=^(L8A=MT((D$ -XM).B4_0$`BQ:)PXU"_(D&BT+\B00DZ$"1`0"+!HD8B30DZ+33_O^)!"3HK.[_ -XM_XM=^(MU_(GL7<.)]E6)Y8/L&(E=](G3B7W\B77XB4WPZ"?N___V0`@!B<=T -XM$XM`!,<$)(,``!")1"0$Z'R#_O^+!\'C`HMT`_S'1"0$,"H("(DT).A3AO[_ -XMBP?'1"0$`@```(/H!`'#BT7PB00DZ`DS__^)`XDT).B/A?[_BUWTBW7XBWW\ -XMB>Q=PXGV58GE5U93@^P\BT4(@\`$B44(BQ"#P`2)10B%THE5S`^%2@$``.GS -XM`@``C;8`````BT4(BQB%VP^$=`,``(/`!(E%"(L[A?\/A8,!``#'!"0E```0 -XMZ->"_O^-M"8`````BP.%P'4-BT4(BP"%P`^$5P,``(M%S(D$).AB_`$`QT0D -XM!#`J"`B)1=")!"3HCX7^_X/_/0^$0@(``(LSC5,$B57@QP0DZMP("(ET)`3H -XM7H/__X7`#X1S`@``.?YU!XM#!(7`=`S'!"0F```0Z%^"_O_'!"08+PD(Z`/\ -XM`0")P\=$)`0P*@@(B1PDZ#&%_O^+==2%]@^$A@$``(M5\(M%T.B[[/__B=F+ -XM$(M%\(M4@OR)^.AI_?__QT0D!#`J"`B)PXD$).CWA/[_BU7PB=F+1=#H2O[_ -XM_XD<).B2A/[_B1PDZ#J$_O^+1=#HLO7__XM-T(D,).@GA/[_BT4(BQ"%THE5 -XMS`^$O`$``(/`!(E%"(M-S(LY]\<```!`=2F)^`^VP#W_````B478#X?U`0`` -XMH>!="0B+5=B+1)`T]L0!=4"#_U]T.XMUS,<$)!T``!#H?('^_XL^QT74```` -XM`(/_6P^$H````(7_B?,/A&#^___'`P````"#PP3I@O[__XGVBPW@70D(B?N+ -XM=7UW#B7PD!,<$)-3'"`CHTX#__X7`="`Y_G00QP0D)@``$(UT)@#H -XMVW_^_\<$)````!#HSW_^_X/^/70,QP0D)@``$.B^?_[_BT7@C54(Z+/[__^) -XMP^E;_?__B00DZ+#__?^-="8`Z0;^__^+3=#'1"0(`@```(E<)`2)#"3HA/+_ -XM_^E?____B?/IE?S__XM-V(D,)(GVZ'?__?_I>/[__\<$)"4``!#H6G_^_^F8 -XM_/__D(UT)@!5B>575E.#[$R+10B+>`2-<`3'1=P"````QT7(`````,=%S``` -XM``"%_P^$?@```)")/"3'1"0$2#0)".CL_OW_B?HQ_X7`=1B#Q@2+%H72#X2' -XM````QT7<`0```&:_`0#'1"0$H#@)"(D4).B\_OW_"T7,=6.#Q@2+'L=%R`$` -XM``"%VXG:=""_`0```,=$)`2L.`D(B1PDZ)#^_?\+1"-M"8`````BP_WP0`` -XM`$")3=AU,`^VP3W_````B470#X>``@``H>!="0B+5="+1)`T]L0!#X7S```` -XM@WW87P^$Z0```(G^QP0D'0``$.@%?O[_BP8QVX/X6P^$_0$``(7`#X18`0`` -XMQP8`````@\8$BQ:%TG42BTW@BQ&%TG0)@SHH#X1,`@``@_@]#X4R`@``QT0D -XM!%`["0B)-"3HDOW]_X7`#X70````A=L/A0$"``"+7>"-=@#K`X/#!(LSA?8/ -XMA#P!``"#/BEU[L<#`````(M%X(D$).@KB?__BTW(A")^.@2\?__BT7@BSB% -XM_P^$I?[__X/`!(E%X.G:_O__BPW@70D(B?Z+7=B)3=3K)HM5U(M$@C3VQ`5U -XM"8/[7P^%RP```(/&!(L>]\,```!`#X6Z````#[;#/?\```!VT(D$).CN_/W_ -XMB?;KRX7;#X3P````B30DC78`Z'OV`0#'1"0$,"H("(G#B00DZ*E__O^+5?") -XMV8GXZ/WX__^)'"3H17_^_XD<).CM?O[_Z4____^+5>"+`H7`#X3%_O__QT0D -XM!#@["0B)!"3H5_S]_X7`#X6M_O__@T7@!(M-X(L!A<`/A)S^__^#P02)QHE- -XMX.F/_O__QT0D!"D```#'!"0R```0Z$%\_O^+,^FI_O__.?O````BU70BTW4BT21-/;$`0^%#?[__X-]V%\/A??]__^+!C';@_A; -XM#X4#_O__B?"S`8U5\.A/Y?__B<:+`.GN_?__B30DZ([U`0"+3<2)/"2)3"0( -XMB40D!.C+[O__Z7W^__^+5#I -XMI_W__XM-T(D,).AW^_W_Z4O___^0D)"0D)")P8L"50$!B>6+000#0@0]/T(/ -XM`(E!!'X*@P$!@6D$0$(/`%W#C70F`(V\)P````!5B>56BW4,4XM="(GRB=CH -XMO/___XU#"(U6".BQ____BT80.T,0?@.)0Q"+1A0!0Q2+1A@!0QB+1AP!0QR+ -XM1B`!0R"+1B0!0R2+1B@!0RB+1BP!0RR+1C`!0S"+1C0!0S2+1C@!0SB+1CP! -XM0SR+1D`!0T"+1D0!0T1;7EW#C70F`%6)Y8M5#(M-$%.+70B+`BL!B0.+0@0K -XM002%P(E#!'D*@RL!@4,$0$(/`%M=PXUV`%6)Y8/L*(E$)`2-1?B)5"0(B00D -XMZ+?___^+3?RZTTUB$,<$)!#="`B)R/?JBT7XP?D?P?H&*") -XM5=R+3@R)3="+0`PIP8G(]^^)3=#!?=`?BT8$B=&+5>#!^0PK3=")1="+4@0I -XMT(E%T/?OP7W0'XL&`T8(P?H,*U70C101BTW@*P$K00AKP&0!PHE5Y,=$)`3$ -XMF`H(QP0D=#P)".B9X___BU7AT'8L!AEDE___ -XMC70F`(/H1#PS=RD/ML#_)(54W0@(BTW@BT9`*T%`C;8`````B40D!,<$)";= -XM"`CH$-0!``^V0P&->P'KG8M-Y#'`AB->P&)!"3HAYG__P^V0P'I9/___XM5X(M&)"M").NCBU7@BT8L -XM*T(LZYB+5>0QP(72=(^+3>"+5A0#5AP#5A@K41PK410K41B)T,'Z'_=]Y.EM -XM____BU80B=#!Z!\!T-'XZ5S___^+3>"+1C`K03#I3O___XM5Z#'),<"%TG1# -XMVT7DNF=F9F;8#23>"`C9??(/MT7RVT7HWOFT#&:)1?#9;?#;7>S9;?*+3>R) -XMR/?JBP&)3"0(QP0D&MT(".@)TP$` -XM#[9#`>F6_O__BTW@BT8@*T$@Z=+^__^+1=2->P&+5=CH)/W__P^V0P'I"+1B@K0BCIE_[__XM]Y#'`A?\/ -XMA(K^__^+3>"+5A0K412)T,'Z'_=]Y.ET_O__BU7@BT9$*T)$Z6;^__^+5>"+ -XM1CPK0CSI6/[__XM5X(M&."M"..E*_O__BTW@BT8T*T$TZ3S^__^-M@````"- -XMOP````!5B>53@^P4BT4(BU@$C5`$N`0```"%VW0)BT($ARX````B5WXC5VH -XMB77\C;5@____B5PD!,<$)`````#H9/K]_XET)`3'!"3_____Z%3Z_?^)="0$ -XMC77PB1PDZ/GZ__^)-"3'1"0$`````.A%]_W_B70D"(E<)`3'1"0,J)D+",<$ -XM)"!V"@CHS?O__XM=^(MU_(GL7<.-=@!5B>53@^QDC5VTQT0D!`````#'!"2H -XMF0L(Z/[V_?_'1"0$('8*",<$)`````#HVOG]_XE<)`3'!"3_____Z,KY_?^) -XM7"0$QP0D('8*".AN^O__@\1D6UW#D)"0D)"0D)!5B>575E.#[`R+50B+0A"% -XMP'1(B=&+4@B+.87_="N-')`Q]NL#@\,$BP.%P'0.B00DZ,J"`0#'`P````"# -XMQ@$Y_G7BBU4(BT(0B00DZ*^"`0"+30C'01``````@\0,6UY?7<.-M@````"- -XMO"<`````58GE5U:)SE.)TX/L+(/Y!HE%X'8%O@8```"-?>Z-##>)^NL&@\(! -XM@\,".)7?2)=?B)1>R+0@@#`HT$A0@```") -XM1"0$BT(0B00DZ"&#`0")1?"+1Q"%P'0\BQ^+1?"+5>R)WH/#`0-W"(E'$(D4 -XM)(TTL.AY?___B0:+1?")'P-?",<$F`````"+7?2+=?B+??R)[%W#BT<(A*V+5?`QR8/!`<="_`````"#Z@0YR'7OP>`"*47P -XMZX^-M@````!5B>6+10R+`(E%#(M%"(L`B44(7>GC]?W_C;0F`````%4QP(GE -XM5E.#[""+70B+=0PY\W1=BU40A=)T78'[_P````^'Z0```*'@70D(BYR8-`0` -XM`('^_P````^'P0```*'@70D(B[2P-`0``(U%Z(E$)`2-1?")7?")=>C'1>P` -XM````QT7T`````(D$).@[]_W_@\0@6UY=PX'[_P```'=PH>!="0B+1)@T]L00 -XM=!N!_O\```!W2J'@70D(BU2P-&:%TK@!````>,B!^_\```!W;Z'@70D(BT28 -XM-&:%P'F,@?[_````=V.AX%T)"(M4L#2`YA"X_____P^$;?___^N1B30DZ!3S -XM_?^)PNNSC70F`(D<).@$\_W_ZX^-M@````")-"3H!/7]_XG&Z3S___^0B1PD -XMZ/3T_?^)P^D4____D(D<).C4\OW_ZY")-"3HRO+]_XG"ZYJ-=@"-O"<````` -XM58GE5U:)QE.)TX/L+#G*B4W8R)!"3H\.\!`&:!_S^`B47@="QF@?];@`^$@````&:!_RJ` -XM="F+1>P[1?!U%P-UX#E=V'>H,<"`/@`/E,#K5X`^`'7I@\0L,"-1>S'1"0(!@```(ET)`2)!"3H@>\!`(E%X(M% -XM"(G:B00DBTW8B?#H//___X7`=,BX`0```(/$+%M>7UW#@#X`=*$/MQ,/M\([ -XM10@/E,`/MOB%_P^%P@```,=%W`````#K"8VV``````^W$V:!^EV`#X2"```` -XMB=JY!@```(U%\.AS_/__C1Q#9H$[+8!T$8M%\#M%['71QT7<`0```.O(@\," -XMN08```")VHU%Z.A&_/__QT0D"`````"-'$.+1>R)1"0$BT7PB00DZ%G]__^% -XMP'^5QT0D"`````"+1>B)1"0$BT7LB00DZ#O]__^%P`^/<____^N@D+D&```` -XMB=J-1?#H\?O__SE]W`^$T_[__P-UX(T<0^FT_O__@\,"#[<3Z3/___^)]E6) -XMY5=6B<93@>R\````B95<____B8U8____#[<"ZQ60A?\/A1(!``!F@_@O=%2) -XMG5S___]FAHM6!&:#^"^)E6#___]T0#'_9H7`BYU<____>"4/OL"#PP*) -XM1"0$B30DZ"GG`0`/MP-FA8!`(N57/___P^W`F:#^"]TVF:%P'6&C5V( -XMB30DZ#+G`0")7"0$BP:)!"3H8._]_\=%A`````"%P'55BX58____]D`,"'0K -XMBQ:+1@2`?!#_+W0?#[=%D"4`\```/0!````/A,7UW#BX5@ -XM____B48$BY58____BT(,)0`0``"#^`$9P(/@PV8MHG]FB85H____B30DZ(3F -XM`0#H>_+]_\<``````(L&@#@`#X7&````QP0DDAT)".C>\?W_B<>%_P^$P@`` -XM`(M6!`^WA6C____'180`````B95D____B854____B3PDZ!_U_?^%P'1Q@'@( -XM+G4,BY5<____9H,Z+G7BBY5D____@\`(B58$B40D!(DT).CUYP$`B30DZ/WE -XM`0"+E53___^)V8N%9/___P,&B10DBY5<____Z"_\__\Y10ATGXM%"(G:B00D -XMBXU8____B?#HU?W__X7`B46$=(.)/"3H,O7]_XM%A('$O````%M>7UW#B00D -XMZ!SQ_?^)QX7_#X4^____BY58____BUH4A=MT(NB`\?W_BP")1"0$BP:)!"3_ -XMTX7`=`S'183^____Z:/^__^+A5C____'180`````]D`,!`^$C/[__^O;B5PD -XM!(D4).BN\/W_A<`/A5C^__\/MT60)0#P```]`$````^%1/[__\=$)`0O```` -XMB30DZ+;D`0")-"3H#N4!`.DG_O__B?:-O"<`````58GE5U93@^QLBT4(]D4, -XM`8E%O'4:BU44QP(`````QT(0`````/9%#`(/A`P#``"+10R+?12`Y/Z)1PR+ -XM11")1Q2+!XE%I(M'#,='!``````E`!```(/X`1G2@^+#9H'JHG^#^`&+10@9 -XM_X/GPX/'7F:)5:B)?<")!"3HS?/]_XU$``*)!"3HM7L!`(M5"(E%Q`^V.HGX -XM#[;(,<`[3<`/E,"%P(E%R'02@\(!B56\BU4(#[9Z`8GX#[;(BU4,@>(`(``` -XMB56@#X0!`@``B?J+7<2$T@^$F````(VT)@````")^HM%O`^VTHE5T(M5O,=$ -XM)`0&````@\`!B474B10DZ%CM_?^#^/^)Q@^$`@$``(/X`0^.#0$```^W?="- -XM0P(QTHU._V:).XE%S(VV`````(M]O`^V1#H!@,Q`9HE$4P*#P@$YRG7IBT74 -XMBU7,C40P_XU4`````` -XMQT7D`````&:#.@`/A0P"``"+512+`CM%I`^$-0(``/9%#"`/A/\```"+1<0Q -XMVXD$).AI>0$`@\1LB=A;7E]=P\=$)`0`````QP0D`````.@W[/W_B?@\7`^$ -XM&`$```^W?=!FB3N#PP*)7_XJ@`^$ -XM)/___V;'`RJ`@\,"Z1?___\/MP$/M_@[?NGB?B+7<2$P`^$E_[__XM5O(M= -XMQ&:)"P^V0@&#PP*#P@&$P`^VR'7LZ7C^__\Y1:0/A/C^__^+510K1:3'1"0, -XML*@&"(M]%,=$)`@$````B40D!(M2"`%5I(M%I,'@`@-'$(D$).CVZ?W_Z;_^ -XM___'0@@`````Z>C\__^+5=0/M@*#P@&)5=2$P`^$YP````^VP(#,0&:)`X/# -XM`HE=S.GL_?__A=(/A![___^+112-4P*!2`P``0``9L<#6X`[?<`/A-<````/ -XMMP'K"V:#^%UT1`^WP(G.9B7_`&:)`@^W!H/"`HU.`F:#^"UUWP^W7@*-3@)F -XM@_M==-@/ML-FQP(M@(U.!F:)0@(/MT8$@\($9H/X776\C5H"9L<"78#IDOW_ -XM_XM]R(U%W(M-%(D\).@1^?__B<.+1=R)!"3H9'+]___V10P0="6+3:"%R75'BU44BT4(Z`/U___IN/W__X-MU`&X -XM7$```.D1____]T4,``(```^$D_W___9"#0$/A8G]___KP@^W5:AFB5,"C5,$ -XMZ1G___^+?0B)/"3HR._]_X/``8D$).BQ=P$`#[87A-*)PXG!="J)^.L2#[80 -XM@\`!B!$/MA"#P0&$TG04@/I<=>F#P`$/MA"$TG7B@^@!Z]K&`0"+512)V.AO -XM]/__B1PDZ)=V`0#I'/W__Y"058GE5U93@>RL`@``BU4(BP*#^"`/A/8!``"- -XMM@````"#^`D/A.W'`@````"+A5C]__^+$(72#X1C`0``QT0D!)1V"@C' -XM!"3@00D(Z&/2__^%P`^$>0$``(L5+)H+"*$HF@L(B960_?__BQ4DF@L(B86, -XM_?__H2":"PB)E8C]__^+%1R:"PB)A83]__^A&)H+"(F5@/W__XL5%)H+"(F% -XM?/W__Z$0F@L(B95X_?__BQ4,F@L(B85T_?__H0B:"PB)E7#]__^+%02:"PB) -XMA6S]__^A`)H+"(F5:/W__XF%9/W__^@L9_[_QP0D`)H+"(F%7/W__^C&Z/W_ -XMA<`/A"@#``"+A5S]__^)!"3HM&G^_XN5D/W__XN%C/W__XD5+)H+"(N5B/W_ -XM_Z,HF@L(BX6$_?__B14DF@L(BY6`_?__HR":"PB+A7S]__^)%1R:"PB+E7C] -XM__^C&)H+"(N%=/W__XD5%)H+"(N5`0"+A5C]__^-5>B)%"2)1"0$Z!S>`0"+ -XM7>RX0]X(".L4B?:+!+7`W@@(@\8!A<`/A%?___^)7>R)!"3HL^,!`(E$)`2- -XM1>B)!"3HY-T!`(U5Z(D4).C)VP$`BT7HB00DZ%[A`0#'1"0$`````(D$).B^ -XM:/__H]PD"0B#P`%TI(U=L,=$)`1`'@4(C768QP0DW"0)".A*:/[_C46@QT68 -XMP+@&"(D$).@DZOW_B5PD",=%G`````")="0$QP0D`@```.@)Z?W_B1PDC5W8 -XMQT0D!)`>!0CH"FC^_XU%R(E<)`B)1"0$QP0D`@```.B?Y/W_B1PDC9V8_?__ -XMQT0D!&`>!0CHW6?^_^L5B40D"*',EPH(B5PD!(D$).@F9___H=PD"0C'1"0( -XM``(``(E<)`2)!"3HK6?__X7`?\['!"3<)`D(Z/UF_O_I?OW__X/X.@^%4_[_ -XM_^EA_O__BY58_?__QT0D!.!!"0C'!"0"````B50D".A\FP$`Z;7\__^+E5C] -XM___IS_O__\<"+@```(N%8/W__\=`!`````#I)/[__\<$)%3>"`CH2.(!`.F" -XM_?__H8"8"@C'1"0,+MX(",=$)`@!````QT0D!!T```")!"3HOL7^_XN56/W_ -XM_XE4)`2)!"3H3+\!`.G=_/__C;0F`````%6)Y8/L"*'<)`D(@_C_=`B)!"3H -XM2&G__\<%W"0)"/_____)PY"0D)"0D)"0D)"0D(G"58GEHXAC"0B+0@R%P'0) -XMB<*+0@R%P'7WBTH4A&,)"(M">(E$)`2+10B)!"3H3=L!`+@! -XM````@P5X8PD(`8/$$%M>7<.#P0$Y\7ZSB0UX8PD(@\00,&,)"#'`@\006UY=PXD5>&,)"`^V`83`=!R)RP^^P(E$)`2) -XM-"3H,=8!``^V0P&#PP&$P'7F@P5X8PD(`8/$$%NX`0```%Y=PXUV`%6)Y593 -XM@^P0H8!C"0B+=0B%P'0]BU`$A=)T-@^V`H3`=!R)TP^^P(E$)`2)-"3HW=4! -XM``^V0P&#PP&$P'7F@P6`8PD($(/$$%NX`0```%Y=PX/$$#'`6UY=PXVV```` -XM`%6)Y593@^P0H81C"0B+=0B%P'0\BQ"%TG0V#[8"A,!T'(G3#[[`B40D!(DT -XM).A^U0$`#[9#`8/#`83`=>:#!81C"0@,@\006[@!````7EW#@\00,6#[!B)7?2+71")=?B+ -XM=0R)??R+#8AC"0B+?0B%R704B5PD"(ET)`2)/"3H_OO__X7`=2J+%8QC"0@Q -XMP(72=!Z)71"+7?2)=0R+=?B)?0B+??R)[%WI-/___XUT)@"+7?2+=?B+??R) -XM[%W#C78`58GE@^P(BT4(A<"C?&,)"'0(B00DZ"+B_?_'1"0$Q)@*"(M%#(D$ -XM).ACR/__A<"CB&,)"'0:BP#'!8AC"0@`````HXQC"0C)PXVT)@````#'!8QC -XM"0@`````R<.-="8`58GE@^P(BT4(A<"C?&,)"'0(B00DZ,+A_?_'1"0$Q)@* -XM",<$)-PX"0CH`LC__X7`=`>+`*.,8PD(R<.0C70F`%6)Y8/L&(E]_(L]D&,) -XM"(E=](EU^(7_=#F+70B%VW0RH9AC"0B%P(E%\'0F,?:)]HLQ=PXVV```` -XM`(V\)P````!5B>57B==64XG#@^P,BT`0.T,(#X:2````B?@#0PPY0Q1V(HM# -XM#(M+"(L3P>`"`T,$B02*@\$!`7L,B4L(@\0,6UY?7<.+`"B40D!(L#B00DZ%1K`0#'!"3$K`L(B0/HIM`! -XM`.DZ____D%6XD&,)"(GE4X/L%(M="(M3!(/"`>@&____BQ.)5"0$B00DZ!3< -XM_?^#Q!1;7<.)]E6)Y5.)PX/L!(,%Q*P+"`&+`(7`=!R)!"3HTFD!`,<#```` -XM`,=#"`````#'0Q``````BT,$A575E.#[`R+10B+%7QC"0B+=0R+71")1?#HD/___X7`B<8` -XM``#V`Q`/A-T```"A?&,)"(7`="6#!<2L"P@!B00DZ,5?___'!7QC"0@````` -XMQP0DQ*P+".A_S@$`H8QC"0B%P`^$D0```(L`ASP$`B30DZ#;0`0"+1?"+%7QC"0B#Q`Q;7E]=Z;'^__^+#7QC"0B%R76G -XMC;0F`````(/$#(GX6UY?7<.-M@````!5B>575C'V4X/L#(L-R&,)"#L-L&,) -XM"(M]#`^",@$``(L5T&,)"(72=!*+10CH7O[__X7`B<8/A4(!``"AS&,)"(L8 -XMA=L/A#,!``"+%=!C"0B%TG0P@P7$K`L(`8D4).B,7O__QP708PD(`````,<$ -XM),2L"PCH1LT!`*',8PD(BQB%VW2;@SLO=`OK(8UT)@"#.R]U$X/`!(L8A=MU -XM\J/,8PD(Z7C___^CS&,)"(M%"(E<)`2)!"3H5-$!`,='!`````"+`X7`=`R# -XM^"YU.HM;!(7;=3/'!"22'0D(Z&O;_?^CT&,)"(M%$,<`$0```(D\)+X!```` -XMZ`3/`0"#!DSW_W_C;0F`````%6)Y5.#[!2#!<2L -XM"P@!Z!G;_?_'``````#K)9"-="8`Z`?;_?^#.`1U48VV`````.@;RP$`Z/+: -XM_?_'``````#H9]C]_X7`B<-TU<<$),2L"PCHRD,V_W_58GE7>G3V_W_C;0F```` -XM`%6)Y5.#[!2#!<2L"P@!Z)G=_?_'!"3$K`L(B53B<.#[!2)!"3H>]?]_XU0`KBH -XM8PD(Z%+Y__^)7"0$B00DZ&+6_?^#Q!1;7<-5B>575E.#["R+10B%P*-\8PD( -XM=`B)!"3H3]K]__8%P&,)"`$/A"4!``#V!#2"`AV,KOPT@@(BT/PA`$@\,0!>#2"`@YT'?3H#R`2C -XMP&,)"/8%P&,)"`@/A!\"``"AT&,)",<%R&,)"`````"%P'0E@P7$K`L(`8D$ -XM).@C6___QP708PD(`````,<$),2L"PCHW+0Q2%P'0HBT,$ABR_O__BT,0 -XMA:)%"3HUM`!`(D$).AZU_W_A<") -XM1>1TUHD$),=$)`0P'@4(Z-=7_O^+1=R%P'0EQT0D!+@X"0B+!XD$).CNS0$` -XMB47@QT0D!#`J"`B)!"3HJU?^_XM=Y(D<).BP`````QT7H`````(E=\.L' -XM@T7L`8EUZ(MUZ(/&`3MU\'-"BQVH8PD(C02U_/___XL\`XM$`P2)/"2)1"0$ -XMZ&K3_?^%P'3*BT7LAPI7?"+1?#'!"3$K`L( -XMH[!C"0CH'\57 -XM5E.#[`R+-<1C"0B%]G1_BP:%P'1YBSW@70D(ZQB+1(7UW#D)"0D%6)Y5=6 -XM4XM-"(M]#(LQA?9T0XL?ZP^+<02#QP2%]G0UBQ^#P02)\HG8@>+___\_)?__ -XM_S\YPG3>A=NX`0```'0;B?"!X____S\E____/RG86UY?7<.#/P$9P/?06UY? -XM753BTT(BUT,BU40BP&%P'0S@^H!A=)_"^LJ -XMC70F`(/J`70A@\$$BP&%P'7R@^H!A=)_&,53BUT(BTT,BU40ZP>0@\,$@\$$ -XM@^H!=`N+`87`B0-U[5M=P\<#`````%M=PY!5B>575E.#[`R+10B)!"3HJ-'] -XM_XLUT)<*"(7VB47P=%^+'H7;=%F)Q\'G`NL-B?:#Q@1T2XL>A=MT18D<).AY -XMT?W_.47P=^B-!#N#.#UUX,<``````(M%"(E$)`2+!HD$).B9_O__BQ;'!!<] -XM````A6+10R+`(E% -XM#(M%"(L`B44(7>F'=0$`C;0F`````%6)Y5=64X/L'(MU"(M]##G^#X*S```` -XMB?(QR9"-="8`,<"#.F`/E,"#Z@0!P3G7=N^#X0''1>P()0D(=0?'1>P,)0D( -XMQT7P`````.L*C78`@^X$.?=W18L>A=MT\XE<)`2+1>R)!"3H0-3]_X7`=#F# -XM?OQ@^X$.?=VN[@! -XM````@\0<6UY?7<.)7"0$QP0D["0)".CST_W_A<`/A(4```#'1?`!````ZX8Y -XM]XUT)@!SRHL&@_@F=$J#^"AUOH/N!(L6@_H@=`6#^@EU!#GW7UW#@WWP`0^%`/___S'` -XMZ4K___\/ML+VA`#A(`D(('2CZ3/___^-M"8`````58GE5E.#['"%P'17<.# -XMQ'`QP%M>757B<=64X/L;(7`B560=%['1"0$ -XMQ)@*",<$)`PR"0CH6KC__X7`=%6+`(7`=$^+&(7;=$F)QNL@C;8`````B5PD -XM!(D\).AD!/__A!(/&!(7;="7'1"0$A#,)"(D<).@"SOW_A7UW#BT60B3PDB40D!.@BQP$`B<.)!"3HR,D!`(D<)(U= -XME(G&Z%M;`0")7"0$B30DZ!O-_?^#P`%TN@^W39R)R"4`\```/0"@``!T1#T` -XMP```NCT```!TH3T`$```LGQTF#T`(```LB5TCST`8```LB-TACT`0```LB\/ -XMA'G___^#X4FR*@^%;O___^ED____QT0D!,28"@C'!"3@0@D(Z&"W__^%P'0P -XMB5PD!(DT).C,S_W_NB8```"#P`$/A#?___\/MT6````(D$).C_T/W_A<`/E<`/ML")1>2+3<0Q_X7)?DN+5<@Q]HL" -XMB00DZ!"=`0"+7-1@$Y1<2)QHT4@7X=BP*)TXD$ -XM).CEG`$`C5,$.?AST8U&`3E%Q(G&?^.#?<`!&<`QTO?0C7P'`J'@EPH(B7WP -XM]_>%P(G#=".+%>AV"@BX`0```(72#X3%`0``B00DZ,?1_?^%P`^%I0$``,=% -XMX`$```#'1>@`````BU7H`U7$QT78_____\=%W`````")T,'Z'_=]X(7`B46\ -XM#XX>`0``BT7@,?^+3=R%P(E-['\NZ>4```"#1=@!BTW$.4W8?#*+1>2%P`^% -XMS@```(M%O(/'`0%%[#M]X`^$O````(M%Y(7`=="+5>R+3<2)5=@Y3=A]SHM5 -XMR(M%V(T$@HE%T(L8B1PDZ"+,_?^)QHM%P(7`#X2_````C12U`````(U$$_R) -XM5=2+&,<``````(U&_XE$)`2)7"0(BTW0BP&)!"3HNTH``(M5T(M-U(L"B5P! -XM_#';.WWH#XUQ____BTW0BP&)!"3HEYL!`(T<&#E=\`^&6/___\<$)"````"# -XMPP'H?&G__SM=\'7LBT6\@\-M"8`````@_HD="N#P`2)10B)5"0$B1PDZ.F_`0"+10B+ -XM$(72=>")'"3H^+\!`(/$)%M=PXGVC44(QT0D"````$")1"0$B1PDZ%FF`0"% -XMP'6EBT7PB00DZ$I7`0"#Q"0QP%M=PXGV58GE5U93,=N#["R)5>B)3>2)1>R) -XM!"3H5/___XE%\,=$)`0P*@@(B00DZ)%,_O^+??"%_P^$!@$``(M%Z,=`!``` -XM``"+5?"+`H/X/0^$KP$``(/X?@^$&0$``(M-\(E,)`2+1>B)!"3HH\$!`(M5 -XMZ(D4).B(OP$`BTWHNHPS"0BAV)<*"(MQ!(7V=`6+3>B+$8/H`H/X`0^6P`^V -XMP(E$)`2)%"3HIQS^_X7`B<,/A(T```")!"3HY<0!`(D$).B)R_W_BU7DA<") -XM`G1TBU7PB10DZ$E+_O^+3>R+,87V=#J+1>B+4`2%TG0/B<&+`(-\D/PO#X1\ -XM`0``BU7HQT($`````(E<)`2)%"3H`<$!`(M%Z(D$).CFO@$`B1PDZ!Y6`0"# -XMQ"PQP%M>7UW#BT7H,=N)!"3HQ[X!`(VT)@````")'"3H^%4!`(-]"`9T#HL= -XMY&,)"(7;#X16`0``BTWPB0PDZ+E*_O^X_O___X/$+%M>7UW#BTWP@\($BT$$ -XMA<`/A.<```"#^"^)U@^$W````(/&!(L&A<`/A:,```")\"G0P?@"B10DB40D -XM!.@PP@$`B<.)!"3HAM']_XD<)(G'Z'Q5`0"%_P^$8/___XE\)`2+1>B)!"3H -XM-<`!`(D\).A=50$`BU7HBP*#."]T:(ET)`2+3>B)#"3H%,`!`.EL_O__BT7P -XMB00DZ,3Q_O^%P(G##X06____.47P#X0\_O__B40D!(M5Z(D4).CBOP$`B1PD -XMZ`I5`0#I,O[__Y"-="8`@_@O#X5'____C;0F`````.E(____@WH$`8VT)@`` -XM``!UBX,^+W6&@\8$ZX&)UC'`Z2_____'000`````B0PDB5PD!.B(OP$`BT7H -XMBU`$B<&+`(-\D/PO#X1R_O__QT0D!"\```")#"3H\[P!`.E=_O__Z!7*_?^# -XM.!2-M@`````/A(D```#H`S' -XM!"3OW@@(B4PD!.COH0$`BT7PQP6PF0L(`0```(D$).CJ2/[_N/_____I+/[_ -XM_XM]\(7_=,.+5?")5>SKNZ&`F`H(QT0D#-3>"`C'1"0("@```,=$)`0>```` -XMB00DZ/RG_O_KA:&`F`H(QT0D##N["`C'1"0("P```,=$)`0>````B00DZ-6G -XM_O_I6____U6)Y8/L&(/X$HE=](G3B77XBW4(B7W\=B_'0P0`````B30DZ.A' -XM__^)="0$B1PDZ#R^`0"+=?B)70B+??R+7?2)[%WI&+P!`/\DA4#?"`B0QT($ -XM`````(E,)`2)%"3H#;X!`.N[QT($`````,=$)`1^````B10DZ(2[`0#KHHGV -XMBSK'1"0$)````(D\).AZQ/W_A!?WP@```$!U#X/Z?P^.N@,``(VV`````(L6A=(/A#4!``")TX'C____ -XMOP^(R`$``(/[?P^/OP$```^VPP^WA`#@(`D(J$$/A*P!``"+1=C'1>````!` -XMA<`/E<(QR832=`D[7=@/A$X"``"+1>"%P'0-@WW8(HUV``^$I0(``(3)=4B$ -XMTHUT)@!U&87;>`F#^W\/CG,#```['42:"P@/A!,$``"+1=B%P'@4]T78```` -XM0'4+@WW8?Y`/COP````['8R8"@@/A`X!``"%_W08BU74BP*#P@2)5=0YV`^5 -XMP`^VP(/H`2''C47H@\8$B5PD!(D$).C0N0$`BT78A<`/B,7^__^+1=C!Z!Z# -XM\`&#X`&#?=A_#Y["A,`/A*K^__^$T@^$HO[__P^V1=CVA`#@(`D(0`^$D/[_ -XM_XM%T#E%U,=%V``````/@HG^__^+%C'_A=(/A7UW##[9%V/:$`.`@"0A`#X5C_O__Z3[^__\/MD78 -XM]H0`X"`)"$`/A?[^__\['8R8"@@/A?+^__^-5>C'1"0$7````(D4).C=N`$` -XMB5PD!.D:`0``C70F`(M%V('B````0`^4P8E5X(7`#Y7"A,D/A$G^__^$T@^$ -XM3O[__X7;#X@Y_O__@_M_D`^/+_[__P^VPP^WA`#@(`D(J/,/A!S^__^#^R,/ -XMA!/^__^#?=@B#X1R`@``BT78A<`/B,H!``#W1=@```!`B?8/A;L!``"#?=A_ -XM#X^Q`0``#[9%V/:$`.`@"0A`#X2?`0``BU7L@\8$BT7HB5R0_(M%V,'H'H/P -XM`8/@`8-]V'\/GL(Q_^EE_O__C;0F`````(M5[(72=!2+1>B#Z`2-!)"+5=@Y -XM$`^$LP$``(M5V(U%Z(D$)(E4)`3HX[B)7"0$B00DZ,&W`0"+5=B)5"0$C47H@\8$B00D,?_HJKB)%"2)7"0$Z$FW`0"- -XM1>C'1"0$(@```(D$).@VMP$`Z6S]__]\&_=%V````$"0C;0F`````'4*@WW8 -XM?P^.NP```(U5Z,=$)`0`````B10DZ`&W`0#IG/W__P^VP@^WA`#@(`D(J$$/ -XMA#G\__^+1=B%P'0).578#X4I_/__,578@T74!(E4)`2-5>B)%"3HP[8!`.F^ -XM^___#[;#]H0`X"`)"/,/A'S\__^#^R,/A;3]___I;OS__XM%V(U5Z(/&!(D4 -XM)(E$)`3HBK8!`(U%Z(D$)(E<)`3H>[8!`(L&A<`/A8P```"X`0```+H!```` -XM,?_'1=@`````Z:?\__\/MD78]H0`X"`)"$`/A>?\___I+O___\<`7````(U% -XMZ(/&!(E4)`0Q_XD$).@HM@$`N`$```"Z`0```,=%V`````#I8/S__XM%[(7` -XM#X07_?__Z=W[__^#^W\/CZG]__^H@HVT)@`````/A)K]___I>OO__XM5V(U% -XMZ#'_B00DB50D!.C1M0$`Z?S[__^-M@````"-OP````!5B>575E.#[%R)1;2) -XM5;"+`(L0A=)T#XD$).BAVO[_A<")1;AU"C'`@\1<6UY?7<.A+)H+"(E%\(L5 -XM*)H+"(E5[*$DF@L(B47HBQ4@F@L(B57DH1R:"PB)1>"+%1B:"PB)5=RA%)H+ -XM"(E%V(L5$)H+"(E5U*$,F@L(B470BQ4(F@L(B57,H02:"PB)1RC*)H+"(M5Z(D5))H+"(M%Y*,@F@L(BU7@B147UW#BT6XB40D!(M5M(L"B00DZ(OL_O^+5;2)`NFS -XM_O__BT6TBQCKR[C_____QP7`F`H(`````,<%L)D+"`$```#I!/[__XVV```` -XM`(V_`````%6)Y5=64X'L'`$``(F%_/[__Z$LF@L(B97X_O__BQ4HF@L(B8WT -XM_O__BPTDF@L(QT7P`````(E%E*$@F@L(B560BQ4/___XL5!)H+ -XM"(F-=/___XL-`)H+"(F%R+1?"%P`^(O0D``(M5$(M-#(E= -XMZ(F5`/___XD,).@VO?W_B=J)V8/B!(/A((F5%/___XF-#/___\=%W`````#' -XM1>``````B85,____B=B#X`*)A1C___^)V(/@0(F%"/___\=%Y`````#'1=`` -XM````QT74`````,=%V`````#'1>@`````QT0D!,28"@C'!"2`2`D(Z(.F___' -XMA23___\`````/?AO"0AU%>LJ@_IA=0O'A23___\"````D(/`!(L0A=)T$8/Z -XM077BQX4D____`0```.OFB=J#XQ"#X@&-3=")E1S___^)#"2)G1#____'1"0$ -XML)$(".B_/O[_C47%*/___P````#' -XMA2#___\`````QT6L`````(L$A>#@"`C'A03___\$````QX5(____`````,>% -XM9/___P````")19S'A43___\`````BX7T_O__C4WHC570QT74`````(E,)`B) -XM1"0$B10D_U6!(/&!(7;=;J+C43___\+ -XMC4C___^)C2S___\/A+(#``"+1="+50R)1;B+.H7_#X3R`P``BPW@70D(B<.) -XM5:B)C33___^+`XG^@>;___\_B84P____)?___S\YQHE%P`^$?P(``('^_P`` -XM`(FU./___P^'K@4``(N5-/___XM$LC1FA<")=;QY((&]./____\````/A^X& -XM``"+C33___^+C+$T!```B4V\BT7`/?\```")A3S___\/AW4%``"+3<"+A33_ -XM__^+5(@T9H72BT7`>2"!O3S_____````#X>8!@``BU7`BXTT____BX21-`0` -XM`#E%O`^$Z0$``(N%1/___X7`=4Z!Y____S^-1].#^`$/ABH%``"#_E]U-[HM -XM````B[TP____A?]T*#M5P'4:Z:\!```E____/SG+`0``.<(/A)H!``"# -XMPP2+`X7`=>*+A2C___^%P`^$B?W__XU-T(D,).@W._[_@[W\_O__!'4?Z?0$ -XM``"+0P2CX&,)"(L#B00DZ#=&`0")'"3H+T8!`(L=X&,)"(7;==R#O?S^__\& -XM#X2U!```B[4(____A?9T'(M=K(7;=16+C2#___^%R7X+BY4@____]]J)5:R+ -XM3:R)3?"+1>R)!"3H<3K^_XM%E(M5D(M-C*,LF@L(BT6(B14HF@L(BU6$B0TD -XMF@L(BTV`HR":"PB+A7S___^)%1R:"PB+E7C___^)#1B:"PB+C73___^C%)H+ -XM"(N%7UW#C;0F`````(.]^/[__Q(/A:'\__^#O23___\!#X2<`@``QX4H____ -XM`````(N=3/___X7;#X6&_/__BT70@S@N#X5Z_/__BXTD____AW^_X7`#X3W^___BT70BTT,B40D -XM!(D,).B#)0``.84$____B<,/C3@"``"#^`0/A<[[__^+1="+50R+C?3^__^) -XM1"0(B50D#(L!B40D!(M%"(D$).CW(P``A<`/A*'[__^+A1S___^%P`^%(@H` -XM`,>%!/___P,```#IA/O__XGVBU70BTT,B56XBQ&%TG1$BTVX@>+___\_BP&) -XMRXM-#"7___\_.<)T).E3_?__C78`BT,$@>+___\_@\,$@\$$)?___S\YP@^% -XM-/W__XM1!(72==V+C1S___^%R0^%9`,``(N5&/___X72#X4!!0``BX44____ -XMA<`/A2,%``"+A0S___^%P`^%104``(.]^/[__P$/E,.#O?C^__\##Y3`A-N) -XMQP^$6`,``(.]^/[__PL"``"+A2C___^#1:P!A<`/A,CY___I.OS__XM% -XMW(D$).@AU___A#^BX/A4/]__^+0`B%P`^4PH/X+P^4P`G"#[;2B94H____ -XMZ2_]___'A2C___\!````Z2#]__^+10@QV\=`!`````")!"3HV*H!`(F=!/__ -XM_^FK^___@_@$#X3(_?__BX4<____A53^_X7`#X1C^?__BTT(BT70QT$$`````(E$)`2)#"3HB*P! -XM`(M%"(D$).AMJ@$`A=MTD8F=!/___^DP^?__B30DZ#*T_?_I3_K__XD$).@E -XMM/W_B<+IB?K__X/^7P^$TOK__X/^+;I?````D`^$R/K__XGRZ<'Z__^+A03_ -XM__^)1:SI8_O__Z'H)`D(.85D____#X[;````@_C_#X32````@WVL`0^.`OO_ -XM_X/``0^,600``(NU9/___XT\M0````")/"3HXT$!`,=$)`0P*@@(B<.)!"3H -XM@3;^_XL-X&,)"(7)=">%]G@CC10?@ZUD____`8L!B4+\BTD$@^H$A>#'1"0,(,P&",=$)`@$````B70D!(D<).APLOW_BT4(QT`$```` -XM`*'H)`D(BU4(BP2#B10DB40D!.ACJP$`BTT(B0PDZ$BI`0")'"3H8#7^_\=% -XMK`$```#I1?K__XN=\/[__^DX]O__QP7H)`D(_____\>%(/___P````#'1:P` -XM````Z1KZ__^)!"3H[;3]_^EK^?__B30DZ."T_?^)1;R0Z1'Y__^+A1#___^+ -XM5;B+C?3^__^)1"0(B50D!(L!B00DZ*I2_O^%P`^%<_S__XN%*/___X7`#X0; -XM]___Z8WY__^$P`^%H/S__X.]^/[__P%T@^$ -XM\`4``(N-5/___X'B____/XL!)?___S\YP@^%U04``,>%4/___P````#K%XN- -XM5/___X'B____/XL!)?___S\YPG47@X50____`8/'!(.%5/___P2+%X72==+' -XM!P````"+50@K.L'_`HEZ!*'48PD(A<`/A(D$``"+A4C___^%P`^$3OC__XM5 -XM"(N-3/___SM*!`^&//C__\="!`````"+10R)%"2)1"0$Z&:I`0"+50B)%"3H -XM2Z@/X?__@_@O#X4?^O__QT0D!"\```")-"3H -XM5J4!`.D*^O__D,=$)`3$F`H(QP0D0$()".A+___\_)?___S\YT'36BT6DBW@$@\`$B46DA?\/ -XMA7K____I#?S__XM%"(L`B46PB<*+`(7`#X0$`0``BQ7@70D(BXU4____BWVP -XMQX50____`````(F56/___XE-M.F&````BY58____BT2:-&:%P'D=@;U<____ -XM_P````^'HP```(N-6/___XN;_ -XM__\_@?O_````#X95____B1PDZ&.M_?_I4O___XDT).A6K?W_ZXJ)'"3H7*_] -XM_XG#Z5O___^)-"3H3:_]_XG&ZXV+C53___^)U\>%4/___P````")3;2+1;2+ -XM$(72=26+A5#___^+E53___^+3;#!X`*)1"0(B50D!(D,).B)LOW_BT6TB854 -XM____Z67[__^#A2#___\!Z=/S___'1"0$Q)@*",<$)$!""0CHKY;__X7`#X5; -XM^___BX5(____A!C"0CIVOG_ -XM_XM5",="!`````")1"0$B10DZ"^D`0"+30B)#"3H%*(!`.F#^O__QX50____ -XM`````.E6^O__58GE5U93@^Q\BT48BWT0BP#'1=P`````QT7@`````,=%Y``` -XM``")19S'1=``````QT74`````,=%V`````#'1<0`````QT7(`````,=%S``` -XM``#'1>@`````Z&'/__^+50C'!=AC"0@`````BS+'1"0$+P```(DT).@NJOW_ -XMA<`/A.H#``"-6`2)'"0I\^CMI`$`P?L"C4W0B5PD"(ET)`2)#"2)1>SHY*(! -XM`(U%T(D$).A)H0$`C570B10DQT0D!+"1"`CH]BW^_XU%[(D$),=$)`0P'`4( -XMZ.,M_O^+30B+`8,X?@^$]0$``(M5[,=$)`0D````B56HB10DZ*NI_?^%P(G# -XM=!N+3:C'1"0$+P```(D,).CBKOW_A<`/A$X"``")^"4`$```B46@#X7>`0`` -XM,<")^X-]G``/E<"`Y^^)1:2-3=R)#"3HLJ`!`(U%W,=$)`2PD0@(B00DZ%\M -XM_O^#^P8/A#8"```/CM4```"#^Q$/A"<#``"!^_\/``"0#X0-`@``@_L-#X01 -XM`@``,<"+5:2%T@^$]````(/(((E%P(/_#`^/]````(/_"`^-)`(``(/_!`^$ -XM_0$``(UV``^/4@0``(/_`HVT)@`````/A.0!```/CR0%``"#_P&0#X3@```` -XMH8"8"@B+'0QV"@C'1"0,,.$(",=$)`@)````QT0D!!X```")!"3H7XO^_XE< -XM)`2)!"3H\X0!`,<%L)D+"`$```"^_____XUT)@"-3=")#"3HY2O^_X/$?(GP -XM6UY?7<.%V[[_____=.*#ZP$/A3C___^+50C'1"0$+P```(L"B00DZ)"M_?^% -XMP`^$\00``(M5I+\$````N!$```"%T@^%$____XVT)@````"#R$"#_PR)1<`/ -XMC@S___^#_Q,/A#`!```/CS<"``"#_Q`/C_4```"#_PZ-M@`````/C1(!``"+ -XM50B+`HD$).BMH@$`B46HB47LZ?H```")]L=$)`0O````B00DZ`RM_?^%P`^% -XM\_W__XM%[+\#````NP,```")1:CK=HVV`````(M5&(U-W(D,)(E4)`3H[J`! -XM`(M5X(72=!V+1=R#?)#\+W03C47__^%P(GX -XM_O__C5W$QT0D!+"1"`B)'"3HU2K^_XM%Z(M-P(M5J(D<)(E$)!"+11B)3"0, -XMC4W@/A&X&``"+5>"%TG0HBT7<@WR0_"]T'HU-W,=$)`0O````B0PDZ&&< -XM`0"-1=R)!"3HMIP!`('G_^___X/_!`^$?_[__P^/$00``(/_`0^$#@4``)"- -XMM"8`````Z&>G_?^%P`^.L_S__XD<).A[G`$`BT7$BTW0BU4(B00DB?CH".#_ -XM_Z'48PD(A<`/A8O\___'1"0$Q)@*",<$)*`Q"0CH!Y#__X7`#X1O_/__@_X! -XM#X5F_/__@WT<_XGV=#:+11R%P`^%E04``(M=Q(M-W(D<)(E-K.B2)___@_\3 -XM#X:$````,<")1"0$BT4(B00DZ)B;`0"+10B)!"3H[9L!`.D8_/__@_\. -XM_/__#X[F````BT4(BQB#?0P�/`0``BT7LB00DZ/\R`0")'"3H-Y\!`(E% -XMJ(E%[.F$_?__@?\2$```#X6&^___Z9C^__^!_P$0``"0C70F``^%B+1=")%"2-5=SHW]K__X7`B<8/A07[__^# -XM3<`"Z:3\___'!"0-````Z/!"___IBOW__XD<)#'VZ%&@`0")!"3HJ2C__X7` -XM#X71^O__D.G1_O__BT6@A<`/A03[___I&OK__\=$)`3$F`H(QP0DP$()".B7 -XMCO__/?AO"0@/A/L!``"+$(72#X3Q`0``]\(```!`#X7E`0``@_I_C78`#X?9 -XM`0``B<$QP/8$E;U1"0@$=3/IQ@$``(VT)@````#WP@```$`/A;,!``"#^G^0 -XM#X>I`0``@\$$]@25O5$)"`0/A)@!``"-!("-1$+0BU$$A=)URX7`#XZ"`0`` -XM.?`/C7H!``"+112%P`^$;P$``*&`F`H(QT0D#!O?"`C'1"0(!0```,=$)`0> -XM````B00DZ"N%_O^)=;R)!"3HD"[__\=$)`0P*@@(B<.)!"3H7B;^_Z&`F`H( -XMQT0D#&CA"`C'1"0(!P```,=$)`0>````B00DZ.F$_O^+5;R)7"0(B50D!(D$ -XM).AV?@$`B1PDZ'XE_O_H63___XU%\XE$)`2AM'8*",=$)`@!````B00DZ/TE -XM__\/OD7SQP0D`]\("(E$)`3H.7X!`*&`F`H(#[Y=\\=$)`P(WP@(QT0D"`T` -XM``#'1"0$'@```(D$).APA/[_B5PD!(D$).B0I/W_A<`/A"W[__^#_P]T,8VT -XM)@````#H.[___\=$)`P@S`8(QT0D"`0```")="0$B00DZ+NA_?^#_Q`/A#P! -XM``#H$;___\=$)`P!````B70D",<$)/AO"0B)1"0$Z#75___IT?K__X/_!0^$ -XMLOW__X/_$HUT)@`/A>+[__^#3<`$Z4GZ___'1"0$Q)@*",<$)(!""0CH?8S_ -XM_SWX;PD(#X1F____BQ"%T@^$7/____?"````0`^%4/___X/Z?P^'1____S'; -XMB<'V!)6]40D(!'4LZ33____WP@```$`/A2C___^#^G^0#X<>____@\$$]@25 -XMO5$)"`0/A`W___^-!)N-7$+0BU$$A=)URX7;#X7$````A=L/G\")=;R$P`^$ -XMY_[__SE=O`^.WO[__XM%%(7`#X33_O__BT6\A<`/A,C^__^A@)@*",=$)`S^ -XMW@@(QT0D"`8```#'1"0$'@```(D$).C_@O[_Z=+]__^+1>R)!"3HORX!`.E` -XM^/__Z-6]__^%]HG'D`^.J_G__S';ZQV-M@````"#PP''!"0*````Z($___\Y -XM\P^$BOG__XL$G\<$))*Y"`B)1"0$Z$9\`0"A8&0)"(7`=,W'!"0-````Z%$_ -XM___KOX/_$`^$,____XVV`````.AKO?__A?:Z`0```(E%L'XVQT6X`````,=% -XMM`````"+5;B+3;"+!)&)!"3H/*']_SE%M',#B46T@T6X`3EUN'7>BU6T@\(! -XMH>"7"@B)T3'2QT68`0```(/``??QA<")191T`XE%F(M%F(U4!O^)T,'Z'_=] -XMF(7;B46\#Y_`Z;/^__^+51R+30B)5"0$B0PDZ!R6`0#I?_K__X-]#`)T.)#H -XM-Z/]_XL`B00DZ-V@_?_'!"3WW@@(B40D"(M%W(E$)`3H6GL!`,<$)`&Z"`CH -XM3GL!`.E6]O__QP0D`;H(".@]>P$`Z/2B_?^+`(D$).B:H/W_QP0D]]X("(E$ -XM)`B+1=R)1"0$Z!=[`0#I'_;__XGV58GE5U93@>RL````BUT(BT4,QT70```` -XM`,=%U`````#'1=@`````C02#B85X____C470QT7P^&\)",=%[`````#'1"0$ -XML)$("(D$).AO(O[_.YUX____#X-H"0``BY5X____,?^)G7S____'A6C___\` -XM````QT6@`````(/J!,>%#;WP@```$!U+H/Z?W\I#[;"#[>$`.`@"0CVQ"!T -XM"8M-U(/!`8E-H*A`=`PYG6#___\/APP#``"-````B00DZ)A^_O^)7"0$B00DZ"QX`0#'180! -XM````C570B10DZ"H?_O^+182!Q*P```!;7E]=PX-]$`8/A%/___^+A6C___^# -XM?1`$B85L____#X0]____@WT0"W>#BT40_R2%W-\("(/Z?@^$&/[__XU-T(E4 -XM)`2)#"3H5)(!`(M-U(M%T(M4B/R%T@^).?[__XGV@\,$Z6S^__^+$X72>#+W -XMP@```$!U*H/Z?W\E#[;"#[>$`.`@"0BH0706A?]U"C'7@\,$Z6C^__\YUW3R -XMC70F`(/_)P^$,/W__X72D(UT)@`/B%W]___WP@```$"-="8`#X5-_?__@_I_ -XM#X]$_?__#[;"]H0`X"`)"`(/A`7]__^#=8@!#X6&````BX5P____@\,$BXUT -XM____B85H____BT6`B4V@B85\____B50D!(U5T(D4).B&D0$`Z>']__^+0P2- -XM7\__\-````0(E$)`2-1=")!"3H6Y$!`(U#"(GSB<;I-/W_ -XM_X/Z?P^/%OW__P^VPO:$`.`@"0B"#X72_O__Z0#]__^+1=2#PP2+C6C___^# -XMP`&)C7#___^+3:")A6C___^)1:"+A7S___^)G7S___^)C73___^)18#I8/__ -XM_\=%Q`````#'1<@`````QT7,`````,=$)`3$F`H(QP0D@$0)".CLA/__A<`/ -XMA%D%``"+C6S____'1"0$+P```,'A`HG+`UW0B4V!VI````0'46@_A_?Q$/ML#V -XMA`#@(`D((`^%3`<``(/"!#E5C'?5B5PD!(U=Q(D<).B[D@$`B1PDZ*.0`0#' -XM1"0$L)$("(D<).A3'?[_BT7LQT0D#`$```")="0(B1PDB40D%(M%\(E$)!"+ -XM11")1"0$Z&KN__^+E6S___^-3=")#"2)5=2)182+1<2)1"0$Z%R2`0"-1=") -XM!"3H09`!`(D<).A9'/[_@WV$_L<%Y&,)"``````/A,$%``"+1="+E63___^+ -XM')"%VP^$_/S__XM5F(T,$#'`A?\/E,")!"2+E7C___^+A7S____H0-3__X7` -XM#XG3_/__C4W0B0PDZ/T;_O_'183_____Z/__ -XM_P^4P(G9B00DBX5\____Z-#3__^%P`^(W@0``(D<).BP)@$`QT6$`0```.E/ -XM_/__H=B7"@B#Z`*#^`$/EL`/ML")1"0$BX5L____P>`"`T70B00DZ(OL_?^% -XMP(G#=9C'180`````Z13\__^-1>2)1"0$BX5L____P>`"`T70B00DZ"Y:`0"% -XMP`^$\`(``(M%Y(D$).@[)@$`QT6$`````.G:^___BX5L____C5W$QT7$```` -XM`,=%R`````#'1`"`T70B1PDB40D!.C/D`$`B1PDZ+>.`0#'1"0$ -XML)$("(D<).AG&_[_BT7LQT0D#`$```")="0(QT0D!`````")1"04BT7PB1PD -XMB40D$.A][/__BY5L____C4W0B0PDB574B46$BT7$B40D!.AOD`$`C470B00D -XMZ%2.`0")'"3H;!K^_^DR^___BXU\____.8UX____QT7$`````,=%R`````#' -XM1@/A&4!```QTH/^`0^4PHU%Z.CCUO__B<:+1=R)!"3H%AG^_XM%Z#G' -XM=!#'1"0$\",&"(D$).B?&?[_A?8/CH4```"#?1`'#X1"`@``BX5\____,=LI -XMA7C____!O7C___\"BY5X____B10DZ.H?``"+1>CK!X/#`3GS=$^+%)B%TG3R -XMBPJ%R73LB10DZ#D8__^+1>@QTHL,F#'`QP0D`````.C#T/__A<`/B-@"``#' -XM!"04/0D(Z$\W``"%P`^(Q`(``(M%Z.NMBT7H.<=T"(D$).AC&/[_B76$Z2;Y -XM__\Q_XF=?/___\>%:/___P````#'1:``````QT68`````.DN^/__,<"%_XM- -XMY`^4P(N5>/___XD$)(N%?/___^A(T/__AC'1"0,`````(ET)`C' -XM!"3X;PD(B40D!.@,Q___BT7HZ17^__^+58R)%"3HV8T!`,=$)`0P*@@(B460 -XMB00DZ`87_O^!?8SX;PD(=`F+38S'`0````"AX*P+"(D<)(E%Q*'DK`L(B47( -XMH>BL"PB)1,`0")'"3H_XD!`,=$)`2PD0@(B1PD -XMZ*\6_O^+1>R)="0$B1PDB40D#(M%\(E$)`CH50,``(E%A(/H`0^$B@```(M% -XMQ(N-;/___XE$)`2-1=")3=2)!"3HOHL!`(U5T(D4).BCB0$`BTV0B0PDZ+@5 -XM_O_I;OG__XM%Z#G'#X2@^?__B00DD(UT)@#HFQ7^_^F.^?__QP7D8PD(```` -XM`.FM^/__Z#*W__^)-"3HFHH!`(DT)(E%Z.B_%?[_B30DZ&<5_O^+=R)="0(B50D!(D<)(E$)!2+1?")1"00Z/#F__^)183I'____Y"0 -XMD)"0D)"058GE5U93@^P+!HG3B<&!X____S^!X?___S\YRW3>A=)U0XL.A-1P2)1>R+5P2%TG4CC48$B47PBT7PB40D!(M%[(D$).AMOO__N@,` -XM``"%P'6XZX>-1@2)1?"+1@2%P'36)?___S\YPW7-@>+___\_.=%UPXU&"(E$ -XM)`2-1PB)!"3H,+[__X7`=:WI1____XVT)@````!5B>575E.#[#R+10C'1>@` -XM````C77HQT7<`````,=%[`````#'1?``````BQC'1>``````QT7D`````,=$ -XM)`2PD0@(B30DZ/42_O^-5=S'1"0$L)$("(D4).CB$O[_BP.#^"\/A+0```"- -XMM"8`````A7UW#B30DN______HS1#^ -XM_X/$/(G86UY?7<.0D)!5B>57B<]6B<93@^P,BUH,A=MU$>M/BT,$@S@M=$*+ -XM6Q"%VW1`BT,,A+0P2)1"0$B30DZ$+$ -XM_O^%P'3,BP.%P'3&@\0,6UY?7<.#P`3KW8/$##'`6UY?7<.058GE5U93B<.# -XM[#R)1=R-?>B)5=B)3=3'1>@`````QT7L`````,=%\`````"+$X72="H[50QT -XM)8/Z)(US!'4)@WL$.HUS!'1HB50D!(D\).A\@P$`B?.+$X72==:)/"3HC(,! -XM`(M-##D+B<*-0P0/A`(!``")%"3H]!H!`(M%W(D$).A)B0$`B40D#(M5$(E4 -XM)`B+30S'!"1_````B4PD!.A;#?[_@\0\B=A;7E]=PY"-0PB)1>"+0PB#^"V) -XMP0^$OP```('A````0`^%>/___X/X+8G!#X2P````@_E_B?8/AV+____V!(V] -XM40D(!`^$5/___S')@_@M#X2=````BUW@@^@PBW7@BU,$@\8$]\(```!`="/K -XM)O8$E;U1"0@$=!R-5`+0@\8$C02`C01"BQ;WP@```$!U!8/Z?W;:AR+`HL8A=MT8HG&QT7P```` -XM`.LZD(UT)@"AX%T)"(M$F#3!Z`Z)QX/G`70-BT7PA&!^_\```!VN8D<).B]B_W_D.NW -XMQP0D)P```.@"*O__@T7L!(M%[(L(AR+ -XM$H72#X51____@\0,6UY?7<-5B>564X/L((M%"(MP!(7V=$.-4`B+0`B%P`^$ -XMP````(D4).CX%O__B30DBB* -XM_O__QP0D"@```.@>*?__BT,0ANID(UT)@")PXM#%#M8$'3VB7<.)-"3H_@O__S')NJ"D"PCH -XMTOO__X7`==#I%____XGVC;PG`````%6)Y5=64X/L#(7`=`6CZ&,)"(L]Z&,) -XM"(L'B?J%P`^$S0```*D```!`=4F+'>!="0CK)XM$@S3VQ$!T,H/'!(D]Z&,) -XM"(L'A<`/A*(```"I````0`^%HP```#W_````=M*)!"3HTXG]__;$0'7.BQ7H -XM8PD(BQJ)UHG8)0```$")1?!U%H'[_P```'=;H>!="0B+1)@T]L1`=6J%VW@B -XMBT7PA@\8$ -XMB37H8PD(BQZ%VW6ABP>%P'04@\0,B?A;7E]=PXD<).A-B?W_ZZ0Q_X/$#(GX -XM6UY?7<.)^NEP____C58$QP8`````B17H8PD(Z\*+/7P@"0CKP(UV`%6)Y5=6 -XM4X/L3(M="(MU%(D<).BI@@$`QT0D!#`J"`B)1B-!(4(````B00DZ`H7`0#'1"0$,"H("(G'B00DZ*@+_O^+17UW#.P5\(`D(=-XQR8/^ -XM`0^4P;J@I`L(Z`;Z__^Z!````,=%U`$```"%P(E%T'44Z:8"```[!7P@"0B- -XM5@1TJ8-%U`$QP(G6C1P7Z!/^__^+3=2%P(D$CW7;BPU\(`D(A8"C1PWZ0_____'1=@`````BTL$]\$```!`B4W< -XM#X79`@``@?G_````#X=O`@``H>!="0B+5=R+1)`T]L0@#X2X`@``H8"8"@B# -XMPPC'1"0,Z;T(",=$)`@#````QT0D!!L```")!"3H;6C^_XM-U(U5\(D4)(GZ -XMB40D"(M%W(E$)`2)V.BP^/__QT0D!#`J"`B)PXM%\(D$).B+"?[_BT7PBPB% -XMR0^$EP(``*&`F`H(QT0D#%+K"`C'1"0(!0```,=$)`0;````B00DZ`EH_O^+ -XM3=R)^HE,)`2+3=2)1"0(C47LB00DB=CH3/C__\=$)`0P*@@(B<.+1>R)!"3H -XM)PG^_XL3A=(/A((!```QP(M-&#E5W`^5P(/H`0G"B1&#?<0M=FWH'(?]_X-] -XMU`''1=@@)0D(#X;7_O__BU0^^(E5V.G+_O__@WW4`L=%V"`E"0@/AKK^__^+ -XM1#[TB478Z:[^__^+1=3'1=@@)0D(A<`/A)S^__^+3#[\B4W8Z9#^__^+5QC"0B+=>R%P'02B00DZ(82`0#'!>QC"0@`````BP8E____OX/H)(/X -XM5`^&9P$``(DT)+O_#P``Z+R``0#'!"1]````B40D!.C")!"3HSVS__SG##XX]____Z>7\__^)!"3HNFS__SG##Y3`#[;`Z1O___^+ -XM2`2%R0^%QO[__^D3____H8"8"@B^_P\``,=$)`R6X0@(QT0D"`(```#'1"0$ -XM&P```(D$).BS9?[_BTWP`^V -XMP.E@_O___R2%$.,("*&`F`H(QT0D#`>]"`C'1"0(!````,=$)`0;````B00D -XMZ`9E_O_KF(-]R&,/A3#^__^+30S!X`(!`8GVZ2'^__^[$0```(M&!"7___^_ -XM#X1<_O__@_@Z#X4V_O__C48(B00DZ-1\`0"+31"C[&,)"(D!B00DZ,($___I -XM,?[__[L"````Z\"[!P```)#KN+L2````Z[&["@```(GVZZ@QV^NDNPX```"0 -XMC70F`.N8NQ````#KD;L3````B?;KB+L$````ZX&["P```(GVZ77___^[!0`` -XM`.EK____NP$```#I8?___[L,````B?;I5?___[L)````Z4O___^)-"3H.7P! -XM`,=$)`1@````H^QC"0B#P`2)!"3HG8;]_X7`=`?'0`0`````H>AV"@B%P'4_ -XMH;1V"@C'1"0$`````(D$).BH"___HQC"0B[_P\``,=$)`0"````B00DZ,2Q_O^% -XMP(G�>_?__H>QC"0AFNPT`B00DZ%D/`0#'!>QC"0@`````B30DZ(=[`0"+ -XM51"C[&,)"(D"B30DZ#4/`0#IY/S__[L(````Z7#^__^[$A```)#I9?[__[L/ -XM````Z5O^__^[!!```.E1_O__NP40``")]NE%_O__NP$0``#I._[__XU&!(D$ -XM).@F>P$`BTT0H^QC"0B)PXD!QT0D!"D```")!"3HAH7]_X7`=`;'``````") -XM'"2[#0```.CS`O__Z6+\__^-1@2[!@```(D$).C>>@$`BU40H^QC"0B)`HD$ -XM).C,`O__Z3O\__^0D)"0D)"058GE5U93B<.#[!R+,*%P80D(C7WPQP5P80D( -XM`0```,=$)`30.`8(B3PDB47PZ,X#_O^+6P2%VW0:C;0F``````^^!H/&`8D$ -XM).@B'___@^L!=>V)/"3H!0/^_X/$'%M>7UW#C;8`````C;PG`````%6)Y5=6 -XM4X/L+(M%"(M]$(E%Y(M%#(E%X*'T8PD(A<`/A#L!``"AP)@*"(7`#X10`0`` -XMH>AV"@B%P`^%$@$``(LU_)D+"(7V#X03`0``C78`BT7DB00DZ!5\`0`#1>"# -XM_SJ)1>P/A',!``"#_S['1>A()0D(#X2&````,!R[8E4)`B+`XE$)`2+1>PI -XMT(D$).AM?_W_A+B8)@D(Z$[^ -XM__^)?0B#Q"Q;7E]=Z5\?__^A;)D+"(7`#X7R_O__B?:+1>3'!"22N0@(B40D -XM!.AM6@$`B7T(@\0L6UY?7>DN'___BQWH=@H(A=MT%(L-?)@*"(7)=,KIM?[_ -XM_Y"-="8`BQ7@=0D(A=)TMNFA_O__D+AH)@D(Z-;]__^X."8)".C,_?__N(`F -XM"0CHPOW__XE]"(/$+%M>7UWITQ[__\=%Z"`F"0CI%____XT$28/Y%(T$Q4@E -XM"0B)1>@/A0'____IJ_[__XVV`````(V_`````%6)Y5>)QU93@^PLBW4(B57@ -XMBQ^)3=R+$HE5\(L"A<`/A(,````E__\_`#GP='J#^#IU->MS@_A>=#.#P@2) -XM5?")1"0$B1PDZ*1X`0"+5?"-#!B+`H7`="DE__\_`#GP=""#^#IT&XG+@_A< -XM=`!``!U -XMW87VQP4`9`D(`````,<%^&,)"`````#'!?QC"0@`````#X32`0``B30DNQ`` -XM``#H]GW]_XEU\(L6A=*)Q[@0````="V)\;,!C;8`````@>+__S\`,<"#^CH/ -XME,"#P02)3?"+$0'#A=)UY(G8P>`$B<,!^(D$).AC"P$`B77PQP7\8PD(```` -XM`(T4&(D5`&0)"(E5[(E%Z*/X8PD(Z$W\_?_'!"0`F@L(B46LH2R:"PB)1=RA -XM*)H+"(E%V*$DF@L(B474H2":"PB)1="A')H+"(E%S*$8F@L(B47(H12:"PB) -XM1<2A$)H+"(E%P*$,F@L(B46\H0B:"PB)1;BA!)H+"(E%M*$`F@L(B46PZ(I] -XM_?^%P'5IBU7PBS*%]G1@B?.!X___/P"#^RH/A-X```"#^SH/A,H```"+0@2% -XMP(E%J'01BT(()?__/P"#^#T/A"N[D(UT)@`E__\_`(/X.G2L -XM@\($B57PBP*%P'7JBU7PBS*%]G6@BT6LB00DZ!;^_?^+1=RC+)H+"(M%V*,H -XMF@L(BT74HR2:"PB+1="C()H+"(M%S*,@K!?AC -XM"0C!^`2C_&,)"(/$7%M>7UW#C4($B47PZ0C___^+3>B-0@2)1?"-5?"-1>S' -XM!"0]````Z.?\__^%P'0*BT7HBT`$A``````)?__/P")1:3K#8-%X`&#QQB#?>`4=$"+CT0E"0@/ -XMO@$YPW7F#[Y!`3M%I'7=C4(,B47PBT7@C57PQP0D.@```(T,0(T,S4@E"0B- -XM1>SH-_S__^DX_O__BT6HB70D!,<$)(8```")1"0(Z*OZ_?_I/?___XVV```` -XM`%6)Y5=64X/L#,=$)`3$F`H(QP0D:$P)".AS9/__A<")QP^$J0```(L`A<`/ -XMA)\```"+`(7`='F+`(7`='/'!?!C"0@`````QP7T8PD(`````(L'BQB%VW1K -XMO@0```#K%L<%\&,)"`$```"+!XL<,(/&!(7;=$['1"0$R$P)"(D<).CV>?W_ -XMA7UW#D)"0D%6%P(GE=1''!7!W"@C`JPL(HSB:"PA=PX/X`77Y -XMQP5P=PH(P*0+"*,XF@L(Z^B)]E6+#31W"@B)Y5.+70C!XP*-!`L[!;"8"@AS -XM,3L-5)D+"'8CB<*+`8/I!(D"H529"PB#Z@0YR';MBQ50F0L(A=)T!#G"=PD! -XM'31W"@A;7<.-!!.C4)D+".OMC;0F`````(L5-'<*"%6+#529"PB)Y593BUT( -XMB=`IR,'X`CG8?@*)V(7`?E^+'7<,YRL<%/)H+"`(```"C0'<*"(D- -XMD'<*"'(WB7<.--)4`````B=@I\#L%-'<*",<%/)H+"`(```") -XM%4!W"@BCD'<*"'>GB<(QR8T575HG64XG#@^P$B4WPC4@$ -XMBT`$@_A>=#N#^"2_`0```'1!C5#0,<"#^@EW%)"#P02-!("-!$*+$8/J,(/Z -XM"7;MA?]X-8D&@\0$@^D$6XG(7E]=P\<"`0```(/$!(G(6UY?7<.#>P@M=!G' -XM`O___W^#Q`2)R%M>7UW#BU7P*<*)T.O"BT,,C4L,O______KDXVT)@````"- -XMO"<`````58GEBU4(A=)^#XT$E0!V"0@[!529"PAV!UW#D(UT)@!=Z3K^__^- -XM=@"-O"<`````58GEBU4(@^)_@_I_=S+V!)6]40D(!'0HH41W"@B%P'0FH7QW -XM"@@]0$(/`'\3C02`78U$0M"C?'<*"+@,````PUVX9````,-=C4+0HWQW"@BX -XM#````,<%1'<*"`$```##H9QW"@A5B>6#^`%^!:.HF`H(H31W"@B-4`3'``H` -XM``")%31W"@C'0`0`````N`$```!=PXVV`````(V_`````*$T=PH(58GEQP`` -XM````N`,```!=PXUT)@"-O"<`````H31W"@A5B>7'``````"X%````%W#C70F -XM`(V\)P````"A-'<*"%6)Y<<``````+@3````7<.-="8`C;PG`````*$T=PH( -XM58GEQP``````N!(```!=PXUT)@"-O"<`````H529"PB+%31W"@A5B>4YT',( -XM@\`$HU29"PC'`@````"X`P```%W#B?:-O"<`````H31W"@A5B>7'``````"X -XM"@```%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@-````7<.-="8`C;PG -XM`````*$T=PH(58GEQP``````N`8```!=PXUT)@"-O"<`````H31W"@A5B>7' -XM``````"X$````%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@5````7<.- -XM="8`C;PG`````*$T=PH(58GEQP``````N`\```!=PXUT)@"-O"<`````58GE -XM@^P$BQ4H)PD(A=)T%*%4F0L(BPU\=PH(*=#!^`(YR'T,R;AD````PY"-="8` -XMB0PDZ.C[__^X#@```,G#D%6X9````(GE@^P$@3U4F0L(`'8)"'<)R<.-M"8` -XM````H7QW"@B)!"3HL_O__[@.````R<.-M@````"-OP````!5B>6#[`2A5)D+ -XM"#L%-'<*"'0MH7QW"@B)!"3HD/K__XL5-'<*"+@.````.154F0L(=@:)%529 -XM"PC)PY"-="8`BQ7(F0L(A=)T%CT`=@D(=`^#Z`2C5)D+".NXD(UT)@#)N&0` -XM``##B?:-O"<`````BPU4F0L(58GE@?D`=@D(="^A-'<*"#T$=@D(=",YP7,) -XM@\$$B0U4F0L(BT'\BU'XB4'XN`X```")4?Q=PXUV`%VX9````,.)]HV\)P`` -XM``"+#529"PBX9````%6)Y8'Y!'8)"'81BT'\BU'XB4'XN`X```")4?Q=PXVT -XM)@````!5B>6#[`R#/0QD"0@!B7PD"(G'B1PDB70D!'0DH529"PB)/0QD"0BC -XM$&0)"+@,````BQPDBW0D!(M\)`B)[%W#BS4T=PH(QP4,9`D(`````,<%$&0) -XM"`````#'!4!W"@@`````@?X`=@D(=BJY`'8)"#';,=*+!)4`=@D(@\$$@\,! -XMB025()D*"(/"`3GQ4]0$(/`'\4P>`"L@S'!41W"@@!````HWQW"@A= -XMB=##C70F`%6X#````(GE7<<%$'8*"`$```##C;8`````C;\`````53'`B>7H -XM]O?__Z%4F0L(7<<%`)D*"`(```#'!3R:"P@$````HY!W"@@QP,<%0'<*"``` -XM``##C78`C;PG`````%4QP(GEZ+;W__^A5)D+"%W'!0"9"@@!````QP4\F@L( -XM!````*.0=PH(,<#'!4!W"@@`````PXUV`(V\)P````!5B>6#[`2A?'<*"(D$ -XM).C]]___,<#H9O?__[@.````RA&]___ -XMH529"PA=QP4\F@L(`0```*,H)PD(HY!W"@@QP,.)]HV\)P````!5,<")Y5W# -XMB?:-O"<`````,<"#/0"9"@@`58GE70^4P*,`F0H(,<##D(VT)@````!5,<") -XMY5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P````!5 -XM,<")Y5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P`` -XM``!5N`,```")Y>A3_?__70^^P,.-M"8`````C;PG`````%6X`0```(GEZ#/] -XM__]=#[[`PXVT)@````"-O"<`````58GE5U93@^P$H3R:"PB#^`(/A($```!_ -XM%X/H`0^$SP```+AD````@\0$6UY?7<.0@_@##X2X````@_@$=>2A0'<*"(7` -XM#X0\`0``BQV0=PH(B=XK-31W"@B)'529"PC!_@(YQ@^,%@$``(7V?ATQR8L4 -XMC2"9"@B+!(N)!(T@F0H(B12+@\$!.?%UY8/$!+@.````6UY?7<.A0'<*"(7` -XM#X3B````BQV0=PH(B00DB1U4F0L(Z,?U__^+#4!W"@B%R7X7,=*+!)4@F0H( -XMB023@\(!.15`=PH(?^O'!3R:"P@!````@\0$N`X```!;7E]=PXLU0'<*"(/^ -XM``^$AP```(L]D'<*"(G[?AF)^C')B?:+`H/"!(D$C2"9"@B#P0$Y\77MBQ4T -XM=PH(.==V">LED(LU0'<*"(L$LXD#BQ4T=PH(@\,$.=ISZ(LU0'<*"(L]D'<* -XM"(T$M0`````IPK@.````B3U4F0L(B14T=PH(QP4\F@L(`@```(/$!%M>7UW# -XMB<;IX_[__S'`Z9G^__^)]E6X9````(GE7<.-M@````!5N&0```")Y5W#C;8` -XM````5;AD````B>5=PXVV`````%6X9````(GE7<.-M@````!5N&0```")Y5W# -XMC;8`````5;AD````B>5=PXVV`````%6)Y8/L",=$)`0`=@D(QP0D\)D+",<% -XM])D+"`````#H+&8!`,<$)/"9"PCH$&0!`*$T=PH(Q@4D=PH(`2T`=@D(P?@" -XMH^B9"PBA5)D+""T`=@D(P?@"HS!W"@BAG'<*"*.HF`H(R<.)]HV\)P````!5 -XMB>6#[`CHA?___Z$T=PH(QP6HF`H(`````(U0!,<`"@```(D5-'<*",=`!``` -XM``"X`0```,G#B?:-O"<`````58GE@^P(H529"P@[!31W"@AT+:%\=PH(B00D -XMZ"#T__^+%31W"@BX#@```#D55)D+"'8&B154F0L(R<.0C70F`.C;DP``H31W -XM"@C'``````"X!````,G#B?:-O"<`````58GE@^P(Z.7^___'!9QW"@@````` -XMZ*:3``"A-'<*",<``````+@+````R<.-="8`58GE@^P(Z(63``"A-'<*",<` -XM`````+@%````R<.-=@!5B>6#[`CH99,``*$T=PH(QP``````N!$```#)PXUV -XM`%6)Y8/L".A%DP``H31W"@C'``````"X!````,G#C78`58GE@^P(Z"63``"A -XM-'<*",<``````+@)````R<.-=@!5B>6#[`CH!9,``*$T=PH(QP``````N`(` -XM``#)PXUV`%4QP(GE@^P(Z'/R__^A-'<*",<%/)H+"`$```"C5)D+"*,H)PD( -XMHY!W"@CHL*8``#'`R<.-M@````"-OP````!5,<")Y8/L".@S\O__H529"PB+ -XM%31W"@@YT',6@\`$.<*C5)D+"'(HZ'.F``"A5)D+"*,H)PD(HY!W"@@QP,<% -XM/)H+"`$```#)PXVV`````(D55)D+".O0D(VT)@````!5B>6#[`C'!529"P@` -XM=@D(QP4H)PD(`'8)",<%D'<*"`!V"0C'!3R:"P@!````Z`VF```QP.BF\?__ -XM,<#)PXGV58GE@^P(H5"9"PB+%529"PBC5)D+"(D54)D+".C?I0``,<#)PXUT -XM)@"-O"<`````58GE@^P(BQ60=PH(H529"PC'!2@G"0@`````QP4,9`D(```` -XM`,<%$&0)"``````YPL<%1'<*"`````!V*"G"P?H"B15`=PH(N`$```#'!0"9 -XM"@@`````Z!3Q___H;Z4``#'`R<,IT,'X`J-`=PH(Z]?K#9"0D)"0D)"0D)"0 -XMD)!5B>53@^P$]@4,9`D(`G5ABQ409`D(QP4,9`D(`````(72=#:A5)D+",<% -XM/)H+"`(````YPG))=R?'!"0!````NP$```#H-O'__Z%4F0L(B1U`=PH(HY!W -XM"@B#Q`1;7<.)TRG#P?L"B1PDZ!'Q___KV3'`Z'CP___KEHVV`````(G#*=/! -XM^P*)'"3HX?'__^B\I```Z[2-=@"-O"<`````58GE5HG6BQ4T=PH(4XG#H529 -XM"PB#[@&#_O]T%CD8=`@YT'/P.1AT[(/`!)"-="8`Z^XYPKYD````=B53B<.#[`2A5)D+"(GV -XM@^H!@_K_=!HY&'0/C70F`#T`=@D(=NDY&'3E@^@$B?;K[CT`=@D(<@IU$SD= -XM`'8)"'0+N&0```"#Q`1;7<,Y&'0F]@4,9`D(`:-4F0L(="*#P`2C5)D+".CC -XM_?__@\0$N`X```!;7<.%R736@\`$D.O0Z!FC```QP.N]D(UT)@!5NF0```") -XMY8/L"*$$9`D(A6#[`B+#529"PB+ -XM%31W"@@YT7,TH7QW"@B-!($YPJ-4F0L(6#[`B+ -XM%529"PB!^@!V"0AV/XL-?'<*"(G0+0!V"0C!^`(YR'PSC02-`````"G"H6#[`BA-'<*"*-4F0L(HB00DZ$YE_?_VQ$!UVO8%#&0)"`%T$>B/^O__ -XM@\00N`X```!;7EW#Z,Z?``"#Q!`QP%M>7<.0C70F`%6)Y5>)UU93@^PS_#X2-````.?YR&.OLC70F`(-^_%QT6(/&!#GW -XMD(UT)@!VUHL>BT4(B5PD!(D$).CI:/W_A575HG&4X/L'(M]"(E5[(E-Z(-MZ`&# -XM?>C_#X2'````BUWL.=YW&>F,````B?:#>_Q<=!Z#PP0YWI"-="8`=GB+`XD\ -XM)(E$)`3HO&?]_X7`==R)7?"+1?"Y`0```(GRB3PD@^@$Z&3^__^-6`0YWG,/ -XMZR.#>_Q<=!F#PP0YWG(6BP.)/"2)1"0$Z'QG_?^%P'7A.=YWO(-MZ`&#?>C_ -XMBW7P#X5Y____BT7L.?!S`HGP@\0<6UY?7<.)WNE3____ZPV0D)"0D)"0D)"0 -XMD)"05;AD````B>53@^P$BQU4F0L(@?L`=@D(=#&+#7QW"@BZ`'8)"(G8QP0D -XM,$T)".C]_O__]@4,9`D(`:-4F0L(=!#H*OC__[@.````@\0$6UW#Z&J=```Q -XMP.OQC;8`````58GE@^P8Z&6)``"-10B)1"0(QT0D!&5T`""AM'8*"(D$).CU -XM8OW_AH5"9"P@[!529"PAT$>BGAP``Z"*(``")]N@;F```H529 -XM"PC&!575E.#[`RAN)@*"(7`#X06`0``BPTXF0L( -XM*PU\=PH(A/>)#3B9"PB)RHG#P?H?BZ/__BQU4F0L(B30DZ`#G__^+%3B9"PBA*)D+"(L$T(L0 -XMA=)T#XD3BU`$@\,$@\`$A=)U\87_=&.A5)D+"(D=5)D+"*-0F0L(QT0D!,28 -XM"@C'!"0@20D(Z"5*__^%P'0)@#W,F0L(`'5'Q@7,F0L(`(/$#+@.````6UY? -XM7<.#Q`RX9````%M>7UW#B=._`0```"G#P?L"Z23___^)'5"9"PCKI8D<).C& -XMYO__Z5/___^0Z)N%``#H%H8``.NLC70F`%6)Y5.#[!2+#;B8"@B%R74/@\04 -XMN&0```!;7<.-="8`BQ4XF0L(H2B9"PB+!-")!"3H)F#]_XG"C02%``````,% -XM-'<*"#L%L)@*"'/$B10DBQU4F0L(Z/7E__^+%3B9"PBA*)D+"(L$T(L0A=)T -XM$)")$XM0!(/#!(/`!(72=?&#/7QW"@@!=#F)'5"9"PC'1"0$Q)@*",<$)"!) -XM"0CH'DG__X7`=`F`/6#[!B)7?B+'3!D"0B)=?R)QJ$T9`D(B70D -XM!(D<)(E$)`CH@V#]_[H!````A7UW#@\0,N&0```!; -XM7E]=PXL=5)D+"('[`'8)"',=Z^.)="0$B1PDZ*"3_O^%P'7#@^L$@?L`=@D( -XMNBC70F`(V\)P````!5B>564X/L$(LU -XM?'<*"(7V#XZ,````H1QW"@B%P`^$?P```(M(!(M1!(72='6+6`BX_____SG9 -XM=!,QP)"-="8`@\`!.<9_/H/H`8G1B40D",=$)`0`````BT$$B00DZ!TG`0") -XMPXD$).@#_O__A7<.#Q!"X9````%M>7<.)]E6)Y5=64X/L3(L=5)D+ -XM"(/K!('[`'8)"'8XBP.#^"!T,X/X"70NBQ6,F`H(.=")5;QU%.LWBP.#^"!T -XM&(/X"9!T$CM%O'0E@^L$@?L`=@D(=^.+`SD%C)@*"'0-Z'^2``"#Q$Q;7E]= -XMPXE%O(US!(EUX(M3!(/Z(`^$Z0$``(/Z"0^$X`$``(/X((G"="B#^`D/A`\% -XM``"!^P!V"0@/AA,"``"#ZP2+$X/Z(`^$!0(``(/Z"77AH529"PB)1<`Y5;QT -XM$CL=5)D+"',*@\,$BQ,Y5;QU[HU#_#T`=@D(#X+A`0``@WO\7`^%UP$``(U3 -XM^+D!````ZPJ+`H/J!(/X7'4+@\$!@?H`=@D(<^OVP0%U`X/#!#M=P`^#/___ -XM_XG*P>H?C001@^`!*="#Z`%UGXL5''<*"(72B570#X0;`0``BST$F0H(B=XQ -XMTH/'`8E]N(U&!(E%V(M&!(/X*@^$@P$``(/X7@^$R`(``(/X)`^$9`(``(72 -XM#X4,!0``@_@ZBWW8#X0*!```.46\#X2%`P``@_@@#X0J!```@_@)C78`#X0> -XM!```@_@Z#X05!```.WW`#X,,!```,#^"!T,(/X"70K@_@Z="8Y?#^"!UT(M5S(/O!(72#X6>`@``B?@I\(G&BT70P?X"A8``.@TH```B5W'+3@2)]XU!T(/X"78+@_DM=`:)^(GWZSZ#^20/A9$!``")^(GW@W@( -XM+71WN@$```")_NGM^___@_DM#X1K`0``@_DJD'0.@_DD=`F#^5X/A3$!``") -XM^(/Y)'3*@_E>=")1<#I^OK__X/O!#')Z?O^__^+4`R#^B\/CGW___^# -XM^CD/CW3___^+=="+5@2%T@^$:OS__XM2!(MV"#GR#X1<_/__,?^+4@2#QP$Y -XM\G7VA?\/A$C\__^#^2T/A?H```#'1?``````C5`$B578BU`$@_HM#X3````` -XM@_HJ#X2G````BU7PB478B57LA=(/B`S\__^+1>PYP@^/`?S__XM]T(E$)`B) -XM5"0$B3PDZ&,@`0"+==B#Q@2)1S___]_D.E2____BW78BU8$C4+0@_@)=B*#^B1T'8M5\(U'_XE%[.DQ____ -XMB?F-5?#H4-[__^G^_O__BT78C57LB?GH/M[__XM5\(E%V.D*____C78`58GE -XM@^P(H31W"@C'``````#HJOC__S'`R<.-M@````!5B>575E.#["RA8&0)"(7` -XMB47@#X6"````H;1V"@B-?>['1"0(`0```,=$)`0!N@@(B00DZ%?7_O^+10B) -XM/"0E__\_`(E$)`3H4T\!`(7`B<9T)3';C00?@\,!B40D"*&T=@H(QT0D!')T -XM`8")!"3H.%7]_SGS==V+3>"%R70&D.C;60``BT4(B00DZ'#R__^#Q"Q;7E]= -XM#[[`P^C`6```Z73___^-="8`C;PG`````%6)Y8/L".@EG```Z,!Z``"X#@`` -XM`,G#B?:-O"<`````58GE@^P(QP0D`````.BN50``N`X```#)PXVT)@````!5 -XMB>575E.#[`R+?0B%_P^$U0```(L=?'<*"(T$G0`````#!31W"@@[!;"8"@@/ -XM@[8```"#^P$/A+H```"+-0"9"@B%]G1-A=L/CCP!``"+-529"P@QR8L50'<* -XM"(UT)@"+!(Z#P0&)!)4@F0H(@\(!.=F)%4!W"@AUYHD<),<$E2"9"@@````` -XMZ*/:__^+'7QW"@B)'"3H-=K__Z%\=PH(@^@!@_C_HWQW"@AT)(G"D*%4F0L( -XM@^H!B3B#P`2#^O^C5)D+"'7IQP5\=PH(_____^BZB0``,<"#/0"9"@@"=%J# -XMQ`Q;7E]=PX/$#+AD````6UY?7<.A`)D*"(7`=5+'!"0!````Z,79__^A5)D+ -XM"(DX@\`$HU29"PC'!41W"@@`````QP0D`0```.@@C```,<"#/0"9"@@"=:;' -XM!"0`````Z.GG__^#Q`PQP%M>7UW#BQ54F0L(H4!W"@B+$L<$)`$```")%(4@ -XMF0H(C5`!B15`=PH(QP25()D*"`````#HJ]G__^EU____BQ5`=PH(Z>7^__^- -XM="8`C;PG`````%6)Y8/L"*$T=PH(QP``````Z/KU___'!"0@````Z#[^___) -XM#[[`PXGVC;PG`````%6)Y5.#["3HI%0``(U%"(D$),=$)`2P2@<(Z%'5_?^- -XM1?B)!"3H1F```(G#C44(B00DZ)G4_?^#ZP%T%<<$)`````#HZ.7__X/$)%M= -XM#[[`PXM%^(D$).C4_?__@\0D6UT/OL##C70F`(V\)P````!5B>5=Z>=3``"- -XMM"8`````58GE5U93@^P\BPVXF`H(B578*<+!^@*)1=R%R8E5U`^.:`$``,=$ -XM)`3$F`H(QP0DX$D)".@7//__/?AO"0B)PP^$R````*&XF`H(QT0D!(!#"0B) -XM'"2)P@,5/)D+"(E%T(U"_XG"P?H?]WW0B14XF0L(B=>)UNAA4?W_A<`/A30! -XM``"+5="%T@^.B````*$HF0L(BU74QT7L`````(E%S(M%T,'B`HE5Y(/H`8E% -XMR.L/BT7(`?")PL'Z'_=]T(G6BU7,C1SU`````(T\$XM5U(L'B50D"(E%X(M% -XMW(M5X(E$)`2)%"3H45/]_X7`=1&+1>"+5>2+!!"%P`^$*`$``(-%[`&+1=`Y -XM1>QUI>L(H;B8"@B)1="+==2+%3R9"PB+#;QV"@B#Q@$Y3=")%3B9"PA]"XM% -XMT(/``:.XF`H(C1S5`````(/"`8G0P?H?]_D#'2B9"PB)%3R9"P@[GN_O__BT7LBW\$A<")?>A_#>LZBQ4HF0L(B?Z)5____ -XM,<#H%]3__[@.````R<-5N`!V"0B)Y8/L"(L55)D+".BJ^___H529"P@M`'8) -XM",'X`HD$).AEU?__BQ50F0L(A=)T%J%4F0L(.<)V#2T`=@D(*<*)%5"9"PC) -XMN`X```##C;0F`````(V\)P````!5B>6#[`BA5)D+"(L5-'<*".A*^___H529 -XM"P@[!5"9"PBC-'<*"',%HU"9"PC&!6#[`BA5)D+"#L%-'<*"'0= -XMZ*AS``"A-'<*",<``````+@$````R<.-M@`````]`'8)"'76#[`BA5)D+"#L% -XM-'<*"'0MH7QW"@B)!"3H8-/__XL5-'<*"+@.````.154F0L(=@:)%529"PC) -XMPY"-="8`/0!V"0AT%^@4C^_[@"````R<.)]E6)Y8/L"*%4F0L(.P4T=PH(="VA -XM?'<*"(D$).C@TO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+",G#D(UT)@"+ -XM%/__QP58F0L(`0```,<$)`!V"0CHNSX!`#T`=@D(HS1W"@AV(8-X -XM_`H/A(8```"A-'<*"(-X_"!T<8$]-'<*"`!V"0AR6:$T=PH(HU29"PB#Q!2X -XM#@```%M=PX/$%+AD````6UW#B10DZ#85`0#'1"0(`$```,<$)`!V"0B)PXE$ -XM)`3H7'C__XD<).@DUP``QP58F0L(`````.EN____QP4T=PH(`'8)".N;@^@$ -XMHS1W"@CKA8/H!*,T=PH(Z6W___^)]E6)Y5.#[!2+#9QW"@B%R75&H9B8"@B% -XMP`^$#`$``,=$)`@`0```B40D!,<$)`!V"0CHZG?__Z&/P*#X2#````@3TT=PH(`'8) -XM"',*QP4T=PH(`'8)"*$T=PH(HU29"PB#Q!2X#@```%M=PZ.<=PH(@\04N&0` -XM``!;7+!#.%P'01B?#H -XMV>C__X7`=`:+1>R)1?"A#&$)"(7`#X2(````BW\<@T7L`8M%[#D%G'<*"'\P -XMBW7PA?9U#J&8F`H(Z)_H__^%P'1PBT7PHYQW"@CH?OW__X/$'%M>7UT/OL## -XMC78`A?]TS(M'&(7`#X51____B3PDZ#D2`0")1QBA#&$)"(7`#X5&____B3PD -XMZ"$2`0#'1"0$,"H("(G&B00DZ)_)_?_I*O___XDT).CRR/W_B?;I:?___X/$ -XM'+AD````6UY?7<.-M"8`````C;PG`````%6)Y5=64X/L'*$T=PH(QP4,9`D( -XM`````,<%/)H+"`````#'``````"#/9QW"@@`#XQ6`0``#X0A`0``BS4<=PH( -XMA?8/A`8!``#HPOK__XL5G'<*",=%\`$```"%TGX:,<"#P`&+=APYT'7V@\(! -XMA?:)5?`/A-8```"+7AB%VW1LBPT,80D(AL`=@D(B=C!^`*)1"0(Z`I(_?^%P'4'BQ0[A=)T8XGXNP$```#H1^?_ -XM_X7`=%.A#&$)"(7`=%6%VW5=BW87UT/OL## -XM@\06#[`B+%31D"0B%TG07,<"#/2`G"0@5#Y3`@\`5Z(?___\/OL#)PXGV -XM5;AD````B>6#[`B+#31D"0B%R74"R<.A("<)".A?____R0^^P,.-=@"-O"<` -XM````58GE5U93@^PLC77DB478C5WPQT7D`````,=%Z`````#'1>P`````QT0D -XM!+"1"`B)-"3HV<;]_\<$)`!V"0CHC3T!`,=$)`0P*@@(B<>)!"3HN\;]_Z$T -XM=PH(B47#'1"0$*@```(DT).A[.0$`BT78QP4`=@D(`````,<% -XM-'<*"`!V"0C'!529"P@`=@D(HR`G"0C'!"0"````Z/G)__^+%529"P@QP,<" -XM"@```(-]V!4/E,"#Z`&#X/"#P#^)0@2#P@B)%529"PCHBGD``,=%\`````"- -XM=@")'"3H*%$``(/H`75:BT7P@_@-#X2N````?VN#^`B)]G1N@_@*#X2<```` -XMB40D!(DT).C9.`$`H529"PB+5?")$(/`!*-4F0L(HS1W"@CH+7D``,=%\``` -XM``")'"3HSE```(/H`72FB30DZ"'%_?_'!"0`````Z'76__^#Q"Q;7E]=#[[` -XMPX/X&W0\@_A_=9N#?>@!#X91`0``H529"PC'``````"#Z`2#;>@!HU29"PBC -XM-'<*".C%>```QT7P`````.DY____A<`/A#'___^)/"3HN<3]_X-]Z`$/A)P` -XM``#'1"0$*@```(DT).@?.`$`B30DZ'3'!31D"0@`````QP0D,&0) -XM"(E$)`3H:CH!`,<$)#!D"0CH3C@!`(DT).AFQ/W_#[9%V(-]V!7'!31W"@@` -XM=@D(QP54F0L(`'8)"*)(F0L(#X2$````QP0D`````.CC^?__/&0/E,"$P'5= -XM@WWP&[@.````#X2P````@\0L6UY?7<.+'31D"0B%VP^%R0```,<%`'8)"``` -XM``#'!31W"@@`=@D(QP54F0L(`'8)".C2=P``B30DZ-K#_?^#Q"RX9````%M> -XM7UW#Z+AW``"#Q"RX9````%M>7UW#QP0D`````.C?^O__/&0/E,#I=____\=$ -XM)`@`0```B7PD!,<$)`!V"0CHW6___XM%W*,T=PH(BT7@B30DHU29"PCH=1''!9QW"@@`````N&0```#)P^AK]O__ -XMR0^^P,.-M@````!5B>6#[`BA-'<*",<%/)H+"`````#'``````"AG'<*"(7` -XM="RA?'<*"`$%G'<*".@L]O__/&1U1.@C]O__C78`Z-MU``"X9````,G#C70F -XM`,<%G)@*"`````#'1"0$`'8)",<$))B8"@CHLC575E.#[!R+?0B%_P^.^@```#L]O'8* -XM"'1"QT0D!`@```")/"3H],P``(E%[*$HF0L(A0/A+P!``"+/029"@@I\\'[`HD] -XM+&0)"(DU(&0)",<%-&0)"`````")7"0(B70D!,<$)#!D"0CH+#0!`,<%*&0) -XM"`````#'!21D"0@`````QT7@`'8)",=%\``````Q_\=%Z`````#'1>P````` -XMZUJ+1>2#!2AD"0@!QP4D9`D(`````(7`#X3@````QT0D"/___W_'1"0$```` -XM`(M-Y(D,).@Q!@$`B47PB00DZ(8P`0"+3?")QHM%Y(M`'(E-X(E%Y(M%[(7` -XM=7O'!"1`30D(BU7@N0$```")\.CHU___.<:)PW2*BQ#WP@```$!U'H'Z_P`` -XM``^'K`$``*'@70D(BT20-/;$0`^%8O___XU#_+D!````B?*#!21D"0@!QP0D -XM0$T)".AMUO__*=C!^`*->`&A-&0)"#G'=TR+1>R)WH7`=(6+%529"PB-!+T` -XM````*Q4@9`D(`P4T=PH(*=`[!;"8"@@/@DD!``"+3?")#"3HH<@``(/$++AD -XM````6UY?7<.-="8`B40D"*$P9`D(B1PDB40D!.A'/?W_AZ0#___^+/029"@@[/2QD"0@/A3C^__\[ -XM-2!D"0@/A2S^__\['1QD"0@/A2#^__^A-&0)"(7`#X03_O__B40D"*$P9`D( -XMB70D!(D$).C5//W_A<`/A?;]__^+%2AD"0C'1>``=@D(QT7P`````(72=$N# -XM^@$/CQ2%T@^$,0$``,=$)`C___]_QT0D!`````"+1>2)!"3H>@0! -XM`(E%\(D$).C/+@$`BTWDBTD2)1>#'!"1`30D(BPTD9`D(B?"+ -XM5>#H-];__XG&Z<;]__^#Q"RX9````%M>7UW#C78`B10DZ`0Z_?_I4/[__\'Z -XM`HD4).A8P___B3PDZ&#`__^%_W0=,6A5)D+"*,<9`D(BT7PB00DZ!K'``"#Q"RX#@```%M>7UW#B10DZ*$Y -XM_?_IT?S__XL5(&0)"*%4F0L(*=#!^`(Y^`^%B/[__XE\)`B)WHE4)`2)'"3H -XMHCO]_X7`#X1Y_?__Z6G^__^+3>2%R8UT)@!T&K`!BTWD@\`!.<*+21R)3>0/ -XMCLC^__^%R77HQT7P`````.GL_?__D(VT)@````!5NF0```")Y5=64X/L#*%4 -XMF0L(BSTT=PH(.?@/A$L!``"+%7QW"@B-<`2AX%T)"(E5[(E%\(-M[`&#?>S_ -XM#X0(`0``.?YR(.FF````C70F`(M5\(M$@C3VQ$!T*(/&!#GW#X:+````BP:I -XM````0'5./?\```!VV8D$).BM./W_]L1`==B+!CW_````=G6)!"3HESC]_^MR -XMBU7PBT2:-/;$0'62@?O_````=S>+5?"+1)HT]L0%#X5Z____@\8$.?!="0B)1>R)5?"#;>P!@WWL_W1E.?YR%>OPBU7PBT2:-/;$0'5`@\8$ -XM.?=VW8L>]\,```!`=>^!^_\```!VVXD<).@\-_W_Z]B+5?"+1)HT]L1`=+6# -XMQ@0Y]W:NBQ[WPP```$!UI('[_P```';;B1PDZ`TW_?^0Z]53B<.#[`2I````0'00@_M?N`,` -XM``!T.X/$!%M=PSW_````=T6AX%T)"(M4F#2`YD"X`0```'7@@_M_=B&!^_\` -XM``!W,:'@70D(BT28-/;$`72[@\0$N`(```!;757B==6B<93@^P< -XMHB%P`^%_````*'@70D(BQ5,=PH(B47PB57L@VWH`8-]Z/\/A!4! -XM```Y_G([Z^R+5?"+1)HT]L0!#X6$````@_M_=PKV!)V]40D(!'5UB5PD!(M% -XM[(D$).C<.?W_A]\,```!`==2!^_\```!VL8D<).@^-?W_ -XMB?;KK(/K`74>B?:-O"<`````ZQ>+!NAG_O__@^@!C70F`'4'@\8$.?=WZ8-M -XMZ`&#?>C_=",Y_G,?BP;H0O[__XG#ZPN+!N@W_O__.<-UM8/&!#GW=^[KK(U& -XM_(/$'%M>7UW#.?>)^';R@\0C#R?__N`X```"#Q`1;7<.#P`2C5)D+ -XM"*'(F0L(A53@^P$ -XMBQU4F0L(BQ4T=PH(.=-T+HL-?'<*"(G8Z.?]__^C5)D+"*'(F0L(A53@^P$BQU4F0L(BQ4T=PH(.=-T18L-?'<*"(G8Z(?]__^)PHG#H529"PCH -XMF>'__RL=5)D+",'[`HD<).AHNO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+ -XM"(/$!%M=PXGVC;PG`````%6)Y5=64X/L/(L5)"<)"(E%S*%4F0L(B574BQ4T -XM9`D(B470H9QW"@B)5>")1=BA-'<*"(/`&(T$D#L%L)@*"`^#8@0``(G0,=N+ -XM=@,``*$T=PH(QP`*````@\`$@_X5HS1W"@BXI.8("'0%N+3F"`B+ -XM$(72=!V)P8GVH31W"@B)$(/`!*,T=PH(BU$$@\$$A=)UYZ$T=PH(BQ4D)PD( -XMB1"#P`2+#3!D"0BC-'<*"*$T9`D(C5$$C02!.<)S+(/!"(M1_*$T=PH(B1"# -XMP`2)RJ,T=PH(H31D"0B#P03!X`(#!3!D"0@YPG+7H31W"@C'``````#'1"0$ -XMQ)@*",<$)"!)"0CH0AS__X7`=`V#/20G"0@Z#X1L`P``Z'QH``"-1?")!"3H -XM(4```(/H`0^%:@4``(M-\('Y``$``']#H7!W"@@/MM$/M@0"/!MT,P^'O`(` -XM`#P"="D\!)`/A<@"```Q_X,]-&0)"`''1=P!````=UKHTW@``,=%W`````#K -XM3*$T=PH(@\`$.P6PF`H(#X-7`@``B4PD!#'_QP0D,&0)".B$)P$`H31W"@B+ -XM5?")$(U0!(D5-'<*",=`!`````#HU6<``,=%W`````"A-'<*"#T`=@D(=Q?K -XM&L<``````(/H!#T`=@D(HS1W"@AV!8,X"G7FQP``````BTWV)1?"#^P$/AKH```"#??!;#X2P````A?]T"3EUS`^$T````,=$)`0J```` -XMQP0D,&0)".B^)@$`QP0D,&0)".@2)P$`H529"P@]`'8)"'(,.P4T=PH(#X:F -XM`@``B?"#_A6B2)D+"`^$)`(``,<$)`````#HKNC__SQD#X0D`@``@_X5N`!V -XM"0@/A&H"``"C5)D+"*$P9`D(B?*#P`3H9-+__XL5-&0)"*$P9`D(@^H!B14T -XM9`D(QP20`````,<%)"<)"#H```")\.CX_/__/&2)PW1'A-MT7(#[9`^4P(M5 -XMX(72#X3B````#[[#@\0\6UY?7<.#/20G"0@_#X0=`@``,<"#_A4/E<"-!,7\ -XM____`054F0L(Z0G___^#/20G"0@_#X4)`0``@WW4.@^%_P```#';BU74BT7@ -XMB14D)PD(BU78.16<=PH(HS1D"0AT$XD5G'<*".A+YO__/&0/A`H!``"+1="` -XM^V2C5)D+"`^$"`,``(M%W(7`#X5J____A-L/A6+___^A-&0)"(7`#X6&_/__ -XMQT0D!"H```#'!"0P9`D(QP4D)PD(.@```.A$)0$`Z6/\___H6G8``#'_QT7< -XM`````)#IS?W__X3`#X06____C78`Z5G___\\8710#X1,`0``B0T49`D(QP0D%&0)".BH -XM/@``NPX````Q_\=%W`$```#I9_W__[@!````Z:/^__^^%@```+\!````QT7< -XM`````.E'_?__H31D"0B#Z`&CV)D+".B#5```Z/Y4``#I>/S__X/$/+AD```` -XM6UY?7<.^%0```+\!````QT7<`````.D(_?__QP0D`````.@*Z/__/&0/A=S] -XM__^+%31D"0BA,&0)"(/J`8D5-&0)",<$D`````#H4G4``(M5V#D5G'<*"'02 -XMBU78B16<=PH(Z,GD__\\9'2,BT70QP4D)PD(/P```*-4F0L(Z<_]__^A-'<* -XM".F,_?__H3!D"0B)\H/`!.CUS___/&0/A8G]___I/OW__S'`@_X5#Y3`@^@! -XM)?___W^CG'<*".ANY/__/&0/A%4!``"#_A6X`'8)"`^$/0$``*-4F0L(Z53@^P4QP4T -XM9`D(`````,8%S)D+"`#H;OC__\=$)`3$F`H(QP0D($D)"(G#Z*@5__^%P'0) -XMH=B9"PB%P'43#[[#QP78F0L(`````(/$%%M=P\<%V)D+"`````#H25$``.C$ -XM40``Z+]A``#KTHVV`````(V\)P````!5B>57B==64X/L'(UP_*'(F0L(B4WH -XMA<`/A=D```"AX%T)"(L53'<*"(E%\(E5[(-MZ`&#?>C_#X0@`0``.?YS.^OL -XMBU7PBT2:-/;$`0^%A````(/[?W<*]@2=O5$)"`1U=8E<)`2+1>R)!"3H*R_] -XM_X7`=6*#[@0Y]W>SBQ[WPP```$!UW('[_P```':UB1PDZ.8J_?_KLHM5\(M$ -XMFC3VQ`%U)H/[?W<*]@2=O5$)"`1U%XE<)`2+1>R)!"3HVB[]_X7`#X1E____ -XM@^X$.?)PW?!@^X$.?=WNHL&Z'SS__\YPW3N@VWH`8-]Z/]U -XML(U&!(/$'%M>7UW#C58$B?@YUW/O@\053@^P$BQU4F0L(@?L` -XM=@D(=#.+#7QW"@BZ`'8)"(G8Z.3]__^C5)D+"*'(F0L(A53@^P$H529 -XM"P@]`'8)"'0TBPU\=PH(N@!V"0CHB/W__XL55)D+"(G#Z.O6__^A5)D+""G8 -XMP?@"B00DZ*FP__^Z#@```(/$!(G06UW#C;8`````C;\`````58GE5E.[`'8) -XM"(/L$*$`=@D(J0```$!U,8LUX%T)".L5BT2&-/;$0'0@@\,$BP.I````0'44 -XM/?\```!VY(D$).B'*/W_]L1`=>`['31W"@BX9````'0=@P5P=@H(`8`%B)@* -XM"`''!"0`````Z(_&__\/OL"#Q!!;7EW#D(UT)@!5N&0```")Y8/L&(EU_(LU -XM5)D+"#LU-'<*"(E=^'-GBQ[WPP```$!U1X'[_P```'=_H>!="0B+1)@T9H7` -XM>%&!^_\```!W?:'@70D(BT28-/;$$'0;@?O_````=WBAX%T)"(N$F#0(``#K -XM.9"-="8`C48$HU29"PC'!"0!````Z+Q@```QP(M=^(MU_(GL7<.!^_\```!W -XM(J'@70D(BX28-`0``(D&C48$HU29"PCKR(D<).B4)_W_ZX")'"3HFBG]_^O@ -XMB1PDZ(`G_?^-="8`Z7O___^)'"3H'R[]_XUV`.O"C;0F`````(V\)P````!5 -XMB>575E.#[`R+#7QW"@B+%31W"@BA5)D+".@1\?__BS54F0L(.?")QW9"D(UT -XM)@"+'O?#````0'4L@?O_````=TZAX%T)"(M$F#1FA!= -XM"0B+A)@T!```B0:#Q@0Y]W?#H31W"@B)/529"P@YQW8%HU29"PB#Q`RX#@`` -XM`%M>7UW#B?:)'"3HQ";]_^NQB1PDZ,HH_?_KP(VV`````(V_`````%6)Y5=6 -XM4X/L#(L-?'<*"(L5-'<*"*%4F0L(Z&'P__^+-529"P@Y\(G'#X:G````H>!= -XM"0B)1?#K'HVT)@````"+5?"+1)HT]L0!=2J#Q@0Y]P^&?P```(L>]\,```!` -XM=>N!^_\```!VUXD<).@[)OW_]L0!=-:!^_\````/AZ$```"+5?"+1)HT]L00 -XM#X5[````@\8$.?=V/8L>]\,```!`=>^!^_\```!W3*'@70D(BT28-&:%P'G9 -XM@?O_````=T"AX%T)"(N$F#0$``")!H/&!#GW=\.A-'<*"(D]5)D+"#G'=@6C -XM5)D+"(/$#+@.````6UY?7<.)'"3HK27]_^NSB1PDZ+,G_?^)!NO"@?O_```` -XM=QN+5?"+A)HT"```B0;KK(D<).B!)?W_Z5G___^)'"3H)"S]_XD&ZY.-="8` -XM58GE5U93@^P,BPU\=PH(BQ4T=PH(H529"PCH(>___XLU5)D+"#GPB<=V0I"- -XM="8`BQ[WPP```$!U+('[_P```'=.H>!="0B+1)@T]L00=!:!^_\```!W0J'@ -XM70D(BX28-`@``(D&@\8$.?=WPZ$T=PH(B3U4F0L(.<=V!:-4F0L(@\0,N`X` -XM``!;7E]=PXGVB1PDZ-0D_?_KL8D<).AZ*_W_Z\"0D)"0D)"0D)"0D)!5,<") -XMY5=64X/L+.L1C78`@\`!/0`!```/A(0```"`N,"K"P@>=>F^P*L+"(E%X(U% -XMX+N`````QT7H`````(U][(E%[,=%\`(```"0C70F``^V%#.-0O\\`78M@/HU -XM="B)V(/@?XE%Y`^V!#.)!"3HK)L``,=$)`@`````B3PDB40D!.@8GP``@\,! -XM@?L``0``=;V+1>#&!#`U@\0L6UY?7<-F,<#K"H/``3T``0``=!.`N,"D"P@> -XM=>V^P*0+".EH____BQ7(F0L(N!L```"^P*0+"(72#X50____Z4;____K#9"0 -XMD)"0D)"0D)"0D)!5B>564X/L$(L=8)D+"(7;=5^+#<"E"PB%R755BS7@70D( -XMNX````#K+(VT)@````"+1)XTJ0``!`!T!\:#P*L+"`*#PP&!^_\```!_&O?# -XM````0'7M@?O_````=M.)'"3H9R/]_^O-QP5`9`D(`0```(/$$%M>7<.0C;0F -XM`````%6)Y5.#[#2-1>B)1?3'1?@"````QP7(F0L(`````.B=GP``,=(/MH)` -XM*0D(QH+`I`L(`8B"P*L+"(/"`8'Z``$``'7AZ$?^__^-7?3H+____\=%Z!@` -XM``#'1?``````QT7L&````,<$)"L```#H/IH``(D<),=$)`@`````B40D!.BJ -XMG0``QT7L*@```,<$)$T```#H%YH``(D<),=$)`@`````B40D!.B#G0``QT7L -XM)````,<$)$X```#H\)D``(D<),=$)`@`````B40D!.AYD``(D< -XM),=$)`@`````B40D!.CGG```QT7L3@```,<$)&<```#H5)D``(D<),=$)`@` -XM````B40D!.C`G```QT7L/P```,<$)&\```#H+9D``(D<),=$)`@`````B40D -XM!.B9G```QT7L"0```,<$)&H```#H!ID``(D<),=$)`@`````B40D!.ARG``` -XMQT7L!````,<$)&L```#HWY@``(D<),=$)`@`````B40D!.A+G```Z.9=``#H -XM,7<``(/$-%M=PXUT)@"-O"<`````58GE@^P(H3QD"0B%P'0"RF?=@``ZPV0D)"0D)"0D)"0D)"058GE4S';@^P4C;0F```` -XM`(N#Z*4+"(/##(D$).C_K0``@?O0!0``=>>A@)@*",=$)`S2Y@@(QT0D"`$` -XM``#'1"0$`P```(D$),<%X*4+",3F"`C'!>2E"P@(````Z.X!_O^)!"3H5JO^ -XM_\=$)`S<\0@(QT0D"`(```#'1"0$`P```,<%[*4+".CF"`C'!?"E"P@$```` -XMH^BE"PBA@)@*"(D$).BH`?[_B00DZ!"K_O_'1"0,`/((",=$)`@#````QT0D -XM!`,```#'!?BE"PC]Y@@(QP7\I0L(&0```*/TI0L(H8"8"@B)!"3H8@'^_XD$ -XM).C*JO[_QT0D#$3R"`C'1"0(!````,=$)`0#````QP4$I@L($N<(",<%"*8+ -XM"!T```"C`*8+"*&`F`H(B00DZ!P!_O^)!"3HA*K^_\=$)`R`\@@(QT0D"`4` -XM``#'1"0$`P```,<%$*8+""7G"`C'!12F"P@.````HPRF"PBA@)@*"(D$).C6 -XM`/[_B00DZ#ZJ_O_'1"0,1><(",=$)`@&````QT0D!`,```#'!1RF"P@SYP@( -XMQP4@I@L(!P```*,8I@L(H8"8"@B)!"3HD`#^_XD$).CXJ?[_QT0D#*3R"`C' -XM1"0(!P```,=$)`0#````QP4HI@L(7^<(",<%+*8+"#@```"C)*8+"*&`F`H( -XMB00DZ$H`_O^)!"3HLJG^_\=$)`SD\@@(QT0D"`@```#'1"0$`P```,<%-*8+ -XM"&_G"`C'!3BF"PA0````HS"F"PBA@)@*"(D$).@$`/[_B00DZ&RI_O_'1"0, -XMD^<(",=$)`@)````QT0D!`,```#'!4"F"PA[YP@(QP5$I@L(1````*,\I@L( -XMH8"8"@B)!"3HOO_]_XD$).@FJ?[_QT0D#"CS"`C'1"0("@```,=$)`0#```` -XMQP5,I@L(K.<(",<%4*8+"!````"C2*8+"*&`F`H(B00DZ'C__?^)!"3HX*C^ -XM_\=$)`S'YP@(QT0D"`L```#'1"0$`P```,<%6*8+"+GG"`C'!5RF"P@1```` -XMHU2F"PBA@)@*"(D$).@R__W_B00DZ)JH_O_'1"0,[^<(",=$)`@,````QT0D -XM!`,```#'!62F"PC=YP@(QP5HI@L(;````*-@I@L(H8"8"@B)!"3H[/[]_XD$ -XM).A4J/[_QT0D#!SH"`C'1"0(#0```,=$)`0#````QP5PI@L(">@(",<%=*8+ -XM"&T```"C;*8+"*&`F`H(B00DZ*;^_?^)!"3H#JC^_\=$)`Q4\P@(QT0D"`X` -XM``#'1"0$`P```,<%?*8+"#?H"`C'!8"F"PAJ````HWBF"PBA@)@*"(D$).A@ -XM_OW_B00DZ,BG_O_'1"0,6.@(",=$)`@/````QT0D!`,```#'!8BF"PA)Z`@( -XMQP6,I@L(2P```*.$I@L(H8"8"@B)!"3H&O[]_XD$).B"I_[_QT0D#(SS"`C' -XM1"0($````,=$)`0#````QP64I@L(=.@(",<%F*8+"#(```"CD*8+"*&`F`H( -XMB00DZ-3]_?^)!"3H/*?^_\=$)`R\\P@(QT0D"!$```#'1"0$`P```,<%H*8+ -XM"(CH"`C'!:2F"PAP````HYRF"PBA@)@*"(D$).B._?W_B00DZ/:F_O_'1"0, -XME^@(",=$)`@2````QT0D!`,```#'!:RF"PCQY@@(QP6PI@L(!0```*.HI@L( -XMH8"8"@B)!"3H2/W]_XD$).BPIO[_QT0D#/#S"`C'1"0($P```,=$)`0#```` -XMQP6XI@L(M>@(",<%O*8+"&@```"CM*8+"*&`F`H(B00DZ`+]_?^)!"3H:J;^ -XM_\=$)`PX]`@(QT0D"!0```#'1"0$`P```,<%Q*8+",CH"`C'!I?[_QT0D#,3T"`C'1"0(%@```,=$)`0#````QP7RF"P@;````H^2F"PBA@)@*"(D$).CJ -XM^_W_B00DZ%*E_O_'1"0,#.D(",=$)`@8````QT0D!`,```#'!?2F"PC]Z`@( -XMQP7XI@L(,````*/PI@L(H8"8"@B)!"3HI/O]_XD$).@,I?[_QT0D#"?I"`C' -XM1"0(&0```,=$)`0#````QP4`IPL(QNL(",<%!*<+"!0```"C_*8+"*&`F`H( -XMB00DZ%[[_?^)!"3HQJ3^_\=$)`PL]0@(QT0D"!H```#'1"0$`P```,<%#*<+ -XM"$'I"`C'!1"G"P@W````HPBG"PBA@)@*"(D$).@8^_W_B00DZ("D_O_'1"0, -XM6^D(",=$)`@;````QT0D!`,```#'!1BG"PA/Z0@(QP4````QT0D -XM!`,```#'!3RG"PC`Z0@(QP5`IPL(30```*,XIPL(H8"8"@B)!"3H`/K]_XD$ -XM).AHH_[_QT0D#/;I"`C'1"0('P```,=$)`0#````QP5(IPL(Y^D(",<%3*<+ -XM"$<```"C1*<+"*&`F`H(B00DZ+KY_?^)!"3H(J/^_\=$)`QH]0@(QT0D""`` -XM``#'1"0$`P```,<%5*<+"`WJ"`C'!5BG"PA1````HU"G"PBA@)@*"(D$).AT -XM^?W_B00DZ-RB_O_'1"0,*NH(",=$)`@A````QT0D!`,```#'!6"G"P@9Z@@( -XMQP5DIPL(3@```*-*<+ -XM"&/J"`C'!7RG"P@/````HW2G"PBA@)@*"(D$).BB^/W_B00DZ`JB_O_'1"0, -XMM/4(",=$)`@D````QT0D!`,```#'!82G"PAPZ@@(QP6(IPL(,P```*.`IPL( -XMH8"8"@B)!"3H7/C]_XD$).C$H?[_QT0D#.3U"`C'1"0()0```,=$)`0#```` -XMQP60IPL(B.H(",<%E*<+"!4```"CC*<+"*&`F`H(B00DZ!;X_?^)!"3H?J'^ -XM_\=$)`P@]@@(QT0D""8```#'1"0$`P```,<%G*<+"*#J"`C'!:"G"P@6```` -XMHYBG"PBA@)@*"(D$).C0]_W_B00DZ#BA_O_'1"0,6/8(",=$)`@G````QT0D -XM!`,```#'!:BG"PBWZ@@(QP6LIPL(+````*.DIPL(H8"8"@B)!"3HBO?]_XD$ -XM).CRH/[_QT0D#,CJ"`C'1"0(*````,=$)`0#````QP6TIPL(;/`(",<%N*<+ -XM"&$```"CL*<+"*&`F`H(B00DZ$3W_?^)!"3HK*#^_\=$)`SCZ@@(QT0D""D` -XM``#'1"0$`P```,<%P*<+"$+P"`C'!<2G"PAB````H[RG"PBA@)@*"(D$).C^ -XM]OW_B00DZ&:@_O_'1"0,#>L(",=$)`@J````QT0D!`,```#'!BG"P@Q````H^"G"PBA@)@*"(D$).@L]OW_B00DZ)2?_O_'1"0, -XMY/8(",=$)`@M````QT0D!`,```#'!?"G"P@DZP@(QP7TIPL(/0```*/LIPL( -XMH8"8"@B)!"3HYO7]_XD$).A.G_[_QT0D#$'K"`C'1"0(+@```,=$)`0#```` -XMQP7\IPL(-.L(",<%`*@+"!@```"C^*<+"*&`F`H(B00DZ*#U_?^)!"3H")_^ -XM_\=$)`P0]P@(QT0D""\```#'1"0$`P```,<%"*@+"%WK"`C'!0RH"PAK```` -XMHP2H"PBA@)@*"(D$).A:]?W_B00DZ,*>_O_'1"0,4/<(",=$)`@P````QT0D -XM!`,```#'!12H"PANZP@(QP48J`L(1@```*,0J`L(H8"8"@B)!"3H%/7]_XD$ -XM).A\GO[_QT0D#'#W"`C'1"0(,0```,=$)`0#````QP4@J`L(Z^@(",<%)*@+ -XM"$4```"C'*@+"*&`F`H(B00DZ,[T_?^)!"3H-I[^_\=$)`RT]P@(QT0D"#(` -XM``#'1"0$`P```,<%+*@+"'CK"`C'!3"H"PA2````HRBH"PBA@)@*"(D$).B( -XM]/W_B00DZ/"=_O_'1"0,Y/<(",=$)`@S````QT0D!`,```#'!3BH"PB%ZP@( -XMQP4\J`L(2````*,TJ`L(H8"8"@B)!"3H0O3]_XD$).BJG?[_QT0D#)GK"`C' -XM1"0(-````,=$)`0#````QP5$J`L(D>L(",<%2*@+"`,```"C0*@+"*&`F`H( -XMB00DZ/SS_?^)!"3H9)W^_\=$)`P0^`@(QT0D"'H```#'1"0$`P```,<%4*@+ -XM"*GK"`C'!52H"PAX````HTRH"PBA@)@*"(D$).BV\_W_B00DZ!Z=_O_'1"0, -XM./@(",=$)`A[````QT0D!`,```#'!5RH"PBZZP@(QP5@J`L(>0```*-8J`L( -XMH8"8"@B)!"3H2H"P@J```` -XMH]RH"PBA@)@*"(D$).AN\/W_B00DZ-:9_O_'1"0,V/D(",=$)`A`````QT0D -XM!`,```#'!>RH"PBW[`@(QP7PJ`L($@```*/HJ`L(H8"8"@B)!"3H*/#]_XD$ -XM).B0F?[_QT0D#`#Z"`C'1"0(00```,=$)`0#````QP7XJ`L(PNP(",<%_*@+ -XM"$P```"C]*@+"*&`F`H(B00DZ.+O_?^)!"3H2IG^_\=$)`PD^@@(QT0D"$(` -XM``#'1"0$`P```,<%!*D+",WL"`C'!0BI"PAI````HP"I"PBA@)@*"(D$).B< -XM[_W_B00DZ`29_O_'1"0,3/H(",=$)`A#````QT0D!`,```#'!1"I"PC8[`@( -XMQP44J0L(3P```*,,J0L(H8"8"@B)!"3H5N_]_XD$).B^F/[_QT0D#(3Z"`C' -XM1"0(1````,=$)`0#````QP4.H(",<%(*D+""````"C&*D+"*&`F`H( -XMB00DZ!#O_?^)!"3H>)C^_\=$)`RT]0@(QT0D"$4```#'1"0$`P```,<%**D+ -XM"._L"`C'!2RI"P@S````HR2I"PBA@)@*"(D$).C*[OW_B00DZ#*8_O_'1"0, -XM"^T(",=$)`A&````QT0D!`,```#'!32I"P@![0@(QP4XJ0L((P```*,PJ0L( -XMH8"8"@B)!"3HA.[]_XD$).CLE_[_QT0D##KM"`C'1"0(1P```,=$)`0#```` -XMQP5`J0L(*>T(",<%1*D+""0```"C/*D+"*&`F`H(B00DZ#[N_?^)!"3HII?^ -XM_\=$)`QA[0@(QT0D"$@```#'1"0$`P```,<%3*D+"%7M"`C'!5"I"P@-```` -XMHTBI"PBA@)@*"(D$).CX[?W_B00DZ&"7_O_'1"0,A>T(",=$)`A)````QT0D -XM!`,```#'!5BI"PAY[0@(QP5X(",<%C*D+"`$```"CA*D+"*&`F`H( -XMB00DZ)KL_?^)!"3H`I;^_\=$)`S(^@@(QT0D"$X```#'1"0$`P```,<%E*D+ -XM"#_N"`C'!9BI"P@I````HY"I"PBA@)@*"(D$).A4[/W_B00DZ+R5_O_'1"0, -XM7>X(",=$)`A/````QT0D!`,```#'!:"I"PA2[@@(QP6DJ0L($P```*.^X(",<%L*D+"#8```"CJ*D+"*&`F`H(B00DZ,CK_?^)!"3H,)7^ -XM_\=$)`PP^P@(QT0D"%$```#'1"0$`P```,<%N*D+"(?N"`C'!;RI"P@\```` -XMH[2I"PBA@)@*"(D$).B"Z_W_B00DZ.J4_O_'1"0,5/L(",=$)`A2````QT0D -XM!`,```#'!<2I"PBA[@@(QP7(J0L(.@```*/`J0L(H8"8"@B)!"3H/.O]_XD$ -XM).BDE/[_QT0D#'S["`C'1"0(4P```,=$)`0#````QP70J0L(J.X(",<%U*D+ -XM"#L```"CS*D+"*&`F`H(B00DZ/;J_?^)!"3H7I3^_\=$)`SD\@@(QT0D"%0` -XM``#'1"0$`P```,<%W*D+"+;N"`C'!>"I"PA0````H]BI"PBA@)@*"(D$).BP -XMZOW_B00DZ!B4_O_'1"0,SNX(",=$)`A5````QT0D!`,```#'!>BI"PC"[@@( -XMQP7LJ0L(8````*/DJ0L(H8"8"@B)!"3H:NK]_XD$).C2D_[_QT0D#)/G"`C' -XM1"0(5@```,=$)`0#````QP7TJ0L(Y^X(",<%^*D+"$0```"C\*D+"*&`F`H( -XMB00DZ"3J_?^)!"3HC)/^_\=$)`R@^P@(QT0D"%<```#'1"0$`P```,<%`*H+ -XM"/7N"`C'!02J"P@N````H_RI"PBA@)@*"(D$).C>Z?W_B00DZ$:3_O_'1"0, -XMV/L(",=$)`A8````QT0D!`,```#'!0RJ"P@![P@(QP40J@L(2@```*,(J@L( -XMH8"8"@B)!"3HF.G]_XD$).@`D_[_QT0D#`#\"`C'1"0(60```,=$)`0#```` -XMQP48J@L(%N\(",<%'*H+"%,```"C%*H+"*&`F`H(B00DZ%+I_?^)!"3HNI+^ -XM_\=$)`PL[P@(QT0D"%H```#'1"0$`P```,<%)*H+""'O"`C'!2BJ"PA4```` -XMHR"J"PBA@)@*"(D$).@,Z?W_B00DZ'22_O_'1"0,+/P(",=$)`A;````QT0D -XM!`,```#'!3"J"PA%[P@(QP4TJ@L(5P```*,LJ@L(H8"8"@B)!"3HQNC]_XD$ -XM).@NDO[_QT0D#&3\"`C'1"0(7````,=$)`0#````QP4\J@L(4.\(",<%0*H+ -XM"%@```"C.*H+"*&`F`H(B00DZ(#H_?^)!"3HZ)'^_\=$)`R,_`@(QT0D"%T` -XM``#'1"0$`P```,<%2*H+"%GO"`C'!4RJ"PA?````HT2J"PBA@)@*"(D$).@Z -XMZ/W_B00DZ**1_O_'1"0,N/P(",=$)`A>````QT0D!`,```#'!52J"PAF[P@( -XMQP58J@L(7@```*-0J@L(H8"8"@B)!"3H].?]_XD$).A\(",=$)`AA````QT0D!`,```#'!7BJ"PB/[P@(QP5\J@L(+P```*-TJ@L( -XMH8"8"@B)!"3H(N?]_XD$).B*D/[_QT0D#$3]"`C'1"0(8@```,=$)`0#```` -XMQP6$J@L(KN\(",<%B*H+"#\```"C@*H+"*&`F`H(B00DZ-SF_?^)!"3H1)#^ -XM_\=$)`QP_0@(QT0D"&,```#'1"0$`P```,<%D*H+"+_O"`C'!92J"PAC```` -XMHXRJ"PBA@)@*"(D$).B6YOW_B00DZ/Z/_O_'1"0,L/T(",=$)`AD````QT0D -XM!`,```#'!9RJ"PC2[P@(QP6@J@L(9````*.8J@L(H8"8"@B)!"3H4.;]_XD$ -XM).BXC_[_QT0D#/3]"`C'1"0(90```,=$)`0#````QP6HJ@L(YN\(",<%K*H+ -XM"%P```"CI*H+"*&`F`H(B00DZ`KF_?^)!"3H?`(",=$)`AJ````QT0D!`,```#'!>2J"PAK\`@(QP7HJ@L(6P```*/@J@L( -XMH8"8"@B)!"3HK.3]_XD$).@4CO[_QT0D#*S^"`C'1"0(:P```,=$)`0#```` -XMQP7PJ@L(D_`(",<%]*H+"$,```"C[*H+"*&`F`H(B00DZ&;D_?^)!"3HSHW^ -XM_\=$)`RY\`@(QT0D"&P```#'1"0$`P```,<%_*H+"*;P"`C'!0"K"PA"```` -XMH_BJ"PBA@)@*"(D$).@@Y/W_B00DZ(B-_O_'1"0,W?`(",=$)`AM````QT0D -XM!`,```#'!0BK"PC0\`@(QP4,JPL(5@```*,$JPL(H8"8"@B)!"3HVN/]_XD$ -XM).A"C?[_QT0D#`;Q"`C'1"0(;@```,=$)`0#````QP44JPL(^O`(",<%&*L+ -XM"%4```"C$*L+"*&`F`H(B00DZ)3C_?^)!"3H_(S^_\=$)`PG\0@(QT0D"&\` -XM``#'1"0$`P```,<%(*L+"!_Q"`C'!22K"PA9````HQRK"PBA@)@*"(D$).A. -XMX_W_B00DZ+:,_O_'1"0,0_$(",=$)`AP````QT0D!`,```#'!2RK"P@[\0@( -XMQP4PJPL(.0```*,HJPL(H8"8"@B)!"3H"./]_XD$).APC/[_QT0D#.C^"`C' -XM1"0(<0```,=$)`0#````QP4XJPL(8?$(",<%/*L+""$```"C-*L+"*&`F`H( -XMB00DZ,+B_?^)!"3H*HS^_\=$)`P,_P@(QT0D"'(```#'1"0$`P```,<%1*L+ -XM"&_Q"`C'!4BK"P@B````HT"K"PBA@)@*"(D$).A\XOW_B00DZ.2+_O_'1"0, -XM,/\(",=$)`AS````QT0D!`,```#'!5"K"PAT\0@(QP54JPL(=P```*-,JPL( -XMH8"8"@B)!"3H-N+]_XD$).B>B_[_QT0D#&C_"`C'1"0(=````,=$)`0#```` -XMQP5AD"0BC*&4)"*'`+0D( -XM]]`C!0!E"0@+!;PM"0BC`&4)"*',+0D(]]`C!01E"0@+!<@M"0BC!&4)"*'8 -XM+0D(]]`C!0AE"0@+!=0M"0BC"&4)"*'D+0D(BPW\70D(]]`C!0QE"0@+!>`M -XM"0B%R:,,90D(=2JAM'8*",=$)`0`90D(B00DZ'*$``"#P`$/A`C____'!61D -XM"0@!````R<.A1)D+".O4C;8`````58GE4X'L)"```*%H9`D(QT7X`````(7` -XM=`B)!"3H_HD``(L58&0)"#'`QP5H9`D(`````(72=`F!Q"0@``!;7<.-1?B) -XM1"0(H;1V"@C'1"0$?V8$0(D$).B__/S_BT7XAB-==B) -XM'"3HC`#]_\=$)`0"````B1PDZ(S[_/^)="0(B5PD!,<$)`$```#H*/O\_\=$ -XM)`1@'@4(B30DZ&Q^_?^+#?Q="0B%R70ZH429"PC'1"0$@&0)"(D$).C]@@`` -XMB30DB2L)",<$),!D"0CH -XMOWX``(LU="T)"#')BQUX+0D(#[8]<&0)"+@!````T^"%QG45#[:1DBL)"#J1 -XM8"L)"'0&B)%@*PD(A<-T"(GXB(%@*PD(@\$!@_D9='^_XD$).@]W_[_B00DZ(6W__^+-?Q="0B%]@^$ -XM]@$``*%$F0L(QT0D!(!D"0B)!"3HHGX``(/``0^$+@(``*&`9`D(BPV<9`D( -XMBQ6D9`D(BQV@9`D(H\!D"0BAA&0)"(L]D&0)"(LUF&0)"(D-W&0)"*/$9`D( -XMH8AD"0B)%>1D"0B)'>!D"0B)/=!D"0BCR&0)"*&,9`D(B3789`D(B3T090D( -XMH\QD"0BAE&0)"*/49`D(H:AD"0BCZ&0)"*&`9`D(HP!E"0BAA&0)"*,$90D( -XMH8AD"0BC"&4)"*&,9`D(HPQE"0BAE&0)"*,490D(B34890D(H:AD"0B)#1QE -XM"0B)%21E"0B)'2!E"0BC*&4)",<$)(!D"0CH.WT``,<$)(!D"0BC:)D+".C: -XM?```QP0D@&0)"*+`F0L(Z.E\``"+70BC1"L)"*%(+0D(]]`C!8!D"0@+!40M -XM"0BC@&0)"*%4+0D(]]`C!81D"0@+!5`M"0BCA&0)"*%@+0D(]]`C!8AD"0@+ -XM!5PM"0BCB&0)"*%L+0D(]]`C!8QD"0@+!6@M"0B%VZ.,9`D(=7;'1"0$8"L) -XM",<$)(!D"0CHN7L``(U=Y,=$)`0`G@<(QP0D'````.A>^?S_B1PDZ.;Y_/_' -XM1"0$'````(D<).CF]/S_QT0D"`````")7"0$QP0D`@```.A^]/S_,<#'!6QD -XM"0@!````Z6S]__^AM'8*".D%_O__QP0D`&4)".@;?```AP``BPW\70D(A2L)"'0&B)!Y*PD(@\`!@_@7==\PP`^VD)(K"0@X -XMT70..HA@*PD(=`:(D&`K"0B#P`&#^!EUW^DF____C;8`````C;PG`````%6) -XMY8/L",<$)`$```#H#O7__\<%A'<*"`````#'!"0`````Z"C\__^#P`%T?:%@ -XM90D(AJ&$+0D(QT0D!'DK"0C'!"3`9`D(]]`C!0``R<.-="8`Z'M*``#I -XM?/___XVV`````%6)Y8/L&,=$)`2PD`@(@P7$K`L(`<<$),2L"PCHWW7]_XU% -XM^(E$)`2-1?R)!"3H;30``(7`=0>+10B%P'1"H81W"@B%P'11Z(08``#H_Q@` -XM`,<$)`````#HDT,``,<$)`````#H9T$``(M%^(E$)`2+1?R)!"3HI2\``.C0 -XM*```QP0DQ*P+",<%M)D+"`````#HRG3]_\G#BT7XB40D!(M%_(D$).AV+P`` -XMZ]20D)"058GEBT4(78L0B15(=PH(BT`$QP7\F`H(`````*-(F@L(PXVT)@`` -XM``"-O"<`````58GEBT4(7<<%-&4)"`$```"C,&4)",.)]HV\)P````!5B>57 -XM5E.#["R+/31E"0B+=0B%_W1%H3!E"0B_`0```,<%-&4)"`````")!H/$+(GX -XM6UY?7+__S\`@\`$B1:+%4`K"0B_`0```(D$C8"9"PB+!)6`F0L( -XMBPB%R76;C4+_HT`K"0B#Q"R)^%M>7UW#Z(CV__\Q_X7`#XAZ____H;29"PB% -XMP`^%P0```,=%X``````QVXU%[@'8B40D!*&T=@H(QT0D"`$```")!"3H&G3^ -XM_X/X_XG'=&.A8)D+"(7`#X6;````@\,!C47NB5PD"(E$)`2)-"3H$.X``(/` -XM`0^%$____\=$)`@`````QT0D!`````#'!"0`````Z)?Q_/\['8!1"0ARBP^V -XM1>X-```@`(D&Z=_^__^-=@"+5>"%TG5)Z+#S_/^+`(E$)`2AM'8*"(D$).AA -XME@``@\`!="S'1>`!````Z4C____'!"0`````Z'3]__^-="8`Z2K___\/MD7N -XMB0;IC/[__\<&`````.F!_O__D(UT)@!5B>6#[`B+50B%TG0*H4`K"0B#^`A^ -XM"^@T-P``R>ENC/[_@\`!HT`K"0B)%(6`F0L(R<.-M@````"-O"<`````58GE -XM@^P(H;"9"PB%P'04Z,P5``#H1Q8``,<%L)D+"`````#H."8``*$T=PH(QP5\ -XM=PH(`0```,<%1'<*"`````#'!>@D"0C_____R2T`=@D(P?@"PXUT)@"-O"<` -XM````58GE5U:^`0```%.[`'8)"(/L'(L]-'<*"(E%Z*%4F0L(QT7L`````(E% -XM\(L3A=)X,O?"````0'4J@_I_?R4/ML(/MX0`X"`)"*@0#X35````@_HC#X3, -XM````@\,$BQ.%TGG.B1U4F0L(BQ.)V872=$XYRW0&@WG\7'0UA=*-=@!X+O?" -XM````0'4F@_I_C78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U*_;$('4FD(UT)@"# -XMP02)#529"PB+$872=;*A-'<*"#'VHU29"PB#>/P*=$NAC)@*"*/`*PD(H42: -XM"PBCQ"L)"(L#QP0DP"L)"(E$)`3H]?+\_X7`=#J%]HL=5)D+"`^%(O___XM% -XM\*-4F0L(BT7L@\0<6UY?7<.#Z`2C5)D+".NK]L0@#X4K____D.DN____BT7H -XMAT[__X/X_W0I@^@!=0?'1>P!````BQ4T=PH(.?IT##M= -XM\','B=`I^`%%\(G7Z5C___^#?>P!&<`)1>SKV(GV58GE5U93@>R,````H<27 -XM"@C'19@`````A<`/A/,$``#'1"0$Q)@*",<$),!$"0CHS-?^_\=$)`3$F`H( -XMQP0D($4)"(E%G.BUU_[_QT0D!,28"@C'!"1@1PD(B46@Z)[7_O^)PZ$\9`D( -XMA<`/A)@$``#HVA,``,<$)`````#HWN[__X,]A'<*"`$9P/?0"05`*PD(A=MT -XM*HL#AW\_X7`#X5X!```QP4`F0H(`````*%@ -XM9`D(AR!^O\````/C]<```"A<'<*"`^V -XM'`*`^S4/A-,```"$VP^4P#'2BPTXF@L(AC2$0`` -XMB?;H2Q(``.A&(@``QP5$=PH(`````,<%?'<*"`$```#HW3(``.@8B/[_QP7H -XM)`D(_____Z$T=PH(+0!V"0C!^`*)1;#IK@4``+L"````,<`QTNDT____C57L -XMB578C47@C578QT7<`0```(E$)`2)%"3H_&<``(/X`0^$(`$``(/X`G13A"$VP^4P(#[-0^4PNGO_O__/?___W\/A`C____HAN___\<%A'<*"``` -XM``#HAX?^_X'$C````(G86UY?7<,/ML#_)(7@`0D(Z$?L_/^+=>#'!"0*```` -XMZ(R)_O_'1=0`````B770C770Z#KO___'!81W"@@`````B30DZ-@%_O^%P`^% -XMI````(DT).CH^___QT0D!,28"@C'!"1`0PD(Z-G2_O^) -XM19CI\?K__\=$)`2@1PD(B1PDZ*WH_/^%P`^%>OO__\<%`)D*"`$```#I:_O_ -XM_XU%Z(E$)`BAM'8*",=%Z`````#'1"0$?V8$0(D$).@#Z?S_BW7HA?8/A53[ -XM___HI^W__S';A<`/B47[___I(?W__XM%F,<%Z"0)"/____^%P`^$7`8``(M5 -XMF(L"A<`/A$\&``"+,,=$)`1@0PD(B30DZ"#H_/^%P`^$S08``,=$)`1P0PD( -XMB30DZ`CH_/^%P`^$M08``,=$)`3`0PD(B30DZ/#G_/^%P`^%!08``(LU-'<* -XM"('^`'8)"'8B@W[\"G4?Q<=#:%THUT)@!X+O?"````0'4F@_I_ -XMC78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U+_;$('4JD(UT)@"#P02)#529"PB+ -XM$872=;&A-'<*"#'_HU29"PB#>/P*#X2!!0``BP;'!"3`*PD(B40D!.@EZ_S_ -XMA<`/A.<%``"%_XLU5)D+"`^%)____XM%N+X!````QP748PD(`````*-4F0L( -XMH;"9"PB%P'04Z'X,``#H^0P``,<%L)D+"`````#HZAP``(/N`<<%?'<*"`$` -XM``#'!41W"@@`````#X6O^O__Z$@-``"A-'<*"(UP!,<`"@```(DU-'<*",=` -XM!`````"+-31W"@B)\H'J`'8)",'Z`HE5L.E?!```C70F`,=$)`@)````H529 -XM"PC'!"0`=@D(+0!V"0C!^`*)1"0$Z%M&__^%P`^.N0(``.C^]?__B46P@?O_ -XM__]_#X0O^?__Z9_Z___'!"0*````C78`Z%N$_O^A-'<*",=$)`@%````QP0D -XM`'8)""T`=@D(P?@"B40D!.@&1O__Z!$<``"A-'<*",<%?'<*"`$```#'!41W -XM"@@`````QP7H)`D(_____RT`=@D(P?@"B46PZX8QV\<%Z"0)"/_____I)?K_ -XM_XGZ@/H2#X3(`P``#X\,!@``@/H##X4V^O__BS4T=PH(QP7H)`D(_____\<% -XM+&4)"`````#'1:P"````B?*!Z@!V"0C!^@*)5;"+5;"+!)4`=@D(A`"`054F0L(B34T=PH(QT0D!,28"@C'!"1`1`D(Z)[. -XM_O^%P'0,QP0D`````.@^C___H529"PB+5:S'!"0`=@D(+0!V"0C!^`*)19") -XM5"0(B40D!.BG1/__A<`/A=,#``"+3:"%R70WBU6@BP*%P'0NBSC'1"0$8$4) -XM"(D\).@IY/S_A*$L90D(AX`=@D(B76PP7VP`NAZ&``` -XMQP5\=PH(`0```,<%1'<*"`````#I!OS__\=$)`@'````Z87^___'1"0("``` -XM`.F_^___Z,((``"+-31W"@C'1;``````B?.!ZP!V"0C!^P+'1"0$`````,<$ -XM)`$```#'!?!="0@`````QP6<=PH(`````.@RS```Z:+[__^+-31W"@C'!>@D -XM"0C_____QP4L90D(`````,=%K`,```")\"T`=@D(P?@"B46PZ4/\__^#Z`2C -XM5)D+".ER^O__]L0@#X7G^?__Z>OY___H*@@``,<$)`!V"0CH#ML``,=$)`0P -XM*@@(B<>)!"3H/&3]_Z$T=PH(BU68QT0D!&!#"0B)1:2+`HL`B00DZ`GA_/^% -XMP`^4P`^VP.A@\?__@^@!#X0\`@``B3PDZ%]C_?_I"/___\=$)`0`=@D(B30D -XMZ'H0__^%P`^$`?K__Z%4F0L(QT0D"`(```#'!"0`=@D(+0!V"0C!^`*)1"0$ -XMZ/U`__^%P`^.EP,``(/H`0^/2`,``(L5-'<*"#M5M'0-.W6X@D"0@!BS4T=PH(QP4L90D(`0```,=%K`0```#I^_G__Z'88PD( -XMA<`/A`G[__^+?:"%_P^$_OK__XM5H(L"A<`/A/'Z___'1"0$P$4)"(L`B00D -XMZ.?>_/^%P`^%U_K__^G-^O__@P7H)`D(`8LU-'<*",<%+&4)"`$```#'1:P$ -XM````Z93Y___HE@4``,<$)`!V"0CH>M@``,=$)`0P*@@(B<:)!"3HJ&']_\=$ -XM)`0*````B30DZ-3B_/_'``````"A-'<*",<%-'<*"`!V"0B)1:CH>R4``(DT -XM).A3V@``QP0D`@```(E$)`3HX\@``(DT).B[8/W_Z*84``"-1?.)1"0$H;1V -XM"@C'1"0(`0```(D$).@Z8?[_A<`/B-,!```/MD7S@_AYB47L='N#^"!T=HE\ -XM)`3'!"0`=@D(Z*W=_/^+1:2C-'<*"(M%[(/X90^$L@$``(/X80^$.P$``,=$ -XM)`RR`0D(QT0D"`4```"A@)@*",=$)`0&````B00DZ'^__?^)!"3H%[D``.@" -XM>O[_B?;IM/S__^BV)```C;8`````Z6_[__^+5:C'1"0,H`$)",=$)`@"```` -XMB14T=PH(ZZS'!>@D"0C_____Z6#Y___'1"0$P$4)"(D\).A=W?S_A<`/A4WY -XM___I0_G__\<%U&,)"`````"^`@```.@@!```H8"8"@C'1"0,RP$)",=$)`@' -XM````QT0D!`8```")!"3HV[[]_XD$).ASN```Z6+V___'!=1C"0@`````,?;H -XMW0,``*&`F`H(QT0D#+8!"0C'1"0(!@```,=$)`0&````B00DZ)B^_?^)!"3H -XM,+@``.D?]O__Q@7,F0L(`.B?`@``Z!H#``#H%1,``,8%S)D+"`'I[?S__Z&` -XMF`H(QT0D#*L!"0C'1"0(!````,=$)`0&````B00DZ$2^_?^)!"3HW+<``,<% -XM-'<*"`!V"0C'!529"P@`=@D(QT0D!`````#'!"0`````Z.3&``#HKQ(``(D\ -XM).BW7OW_QT6P`````.E[[___H8"8"@C'1"0,I0$)",=$)`@#````QT0D!`8` -XM``")!"3HUKW]_XD$).ANMP``H31W"@C'``````"-"7"@A_X(L]2&4)"(7;C02]`````(E%\*&P -XM=@H(BP2XB320=#R-2_^#P@&%R8E5[(D51&4)"'XIP>("H;!V"@B+=?"+!`;' -XM!!#___\'@\($@^D!=>:+5>R-1!K_HT1E"0B+%>"7"@@Y%41E"0A\)*&P=@H( -XMBTWPBP0!QP20`````(U'`<<%1&4)"`````"C2&4)"(/$"%M>7UW#C70F`(V\ -XM)P````!5B>575E.)TX/L"(MU#(E%[(M]"(7V?F&)R"G0.<9^!H7`?E6)QHM% -XM[(T,B(G*@^H$C02U`````"G"BT7LB4WPC1R8.=IR#XL"@^H$B4'\@^D$.=IS -XM\8M%\#G8QP``````=A:%]GX2BP>#[@&#QP2)`X/#!#E=\'?J@\0(6UY?753B<-T'XL"AE;7<-5B>53@^P$H=R7"@B%P'0_BQTX90D(A=MX+XVV -XM`````(D<)(/K`>CU*@``QP0D`````.C)*```H>"7"@B)!"3H3"(``(/[_W77 -XM@\0$6UW#H3AE"0B)!"3HQ"H``,<$)`T```#HB'?^_\<$)`H```#H?'?^_X/$ -XM!%M=PXVV`````%6)Y5.#[!2+%`"B40D",=$)`0`````B10DZ/W;_/\Y -XM'DZ=?[_C78`C;PG`````%6)Y5=64X/L+(7)B47DB")3?`/ -XMA:`!``"A/&4)"(7`B47B+1>"+#4!E"0B-5`,$BUWRCP*P+"(7;#X36`0``C47P.T7L#X38`0``BT7P)?____O!X`0!PJ$\ -XM90D(B57LB47@>C1P0P?L"@?O___\##X]*`0``BTWLAR)1"0$B=#!X`(#!<"L"PB)!"3H1=[\_XM5Z`$5/&4)"(L- -XM/&4)"(E-W(M%X(E$)`B+5>2)5"0$BT7

`"`P7`K`L(B00DZ!'>_/^+5>`# -XM%3QE"0B-#)4`````D(UT)@"AP*P+"(/"`<<$"`````"#P03VP@-UZ8G8B14\ -XM90D(#0````2#Q"Q;7E]=PZD````$#X6O````C57PQT7H`0```(E5[(L=/&4) -XM"(7;B5W<#XZ1_O__BSW`K`L(,=N+1>B+5>"--(R)!"3H%-G\_X7`==2+5>")="0$ -XMB50D"(M-Y(D,).CZV/S_A@>`=C!^`(- -XM````!.E+____@\0LN#\```!;7E]=PXL-P*P+""7____[P>`$`R)!"3H -XM^];\_XE%Z.D[____B?B#Q"S!^!_!Z!X!^%M>7UW!^`(-````!,.+%3QE"0B) -XM5=SI0/[__XL-/&4)"(E-W.DR_O__D%6)Y5=64X/L'(E%Z(L`B<$E__\_`('A -XM``#`_XE-\(E%[(E4)`2)!"3H$Z4``(G#C4`'@_@'=AF+3>B)VHL!Z`WZ__^# -XMQ!RX`0```%M>7UW#_R2%C`,)"+H!````N"````#HZOG___8%1&4)"`=UZ.O2 -XMBT7PN@$```"#R%SHS_G__XM%[+H!````P?@&@^`'@\`P"T7PZ+;Y__^+1>RZ -XM`0```,'X`X/@!X/`,`M%\.B=^?__N@$```"#9>P'BT7L@\`P"T7PZ(;Y__^# -XMQ!RX`0```%M>7UW#BT7PN@$```"#R%SH:?G__XM%\+H!````@\A5Z%GY__^+ -XM1?"Z`0```(/(*^A)^?__C03=`````/?8B<.#ZQP/B"C___^0C70F`(M%[(G9 -XMN@$```#3^(/@#P^^@'@#"0@+1?#H$OG__X/K!'G=@\0Z,GX__^#?>Q_#X2I````BT7LN@$````)1?"#3?!`BT7PZ*CX__^#Q!RX -XM`0```%M>7UW#BS5(90D(BQ5$90D(BSVP=@H(ZQJ-M"8`````C1RU`````(L$ -XM'X$\D/___P=U+X/J`7GH@^X!#XB`_O__BP2WC1RU`````(D$).BYU/S_C5#_ -XMBP0?@3R0____!W31A?8/B%?^__^-')4`````BT7HN@$````#'+>+"^C]^O__ -XMB0/I"?[__X--\#^Z`0```(M%\.@%^/__Z?/]__]5B>57B<=6B=93@^P,@_H! -XM?Q'K'[H!````N"````#HW?___XGP`P6XF0L(.P7@EPH(?^'WQP````0/A.\` -XM``")^H'B____^\'B!`,5P*P+"(L"AAN)D+"#L%X)<* -XM"'P_#[X%K)@*"(,%:'8*"`&#!3AE"0@!J`''!;B9"P@`````="2H`G08QP0D -XM(````.B6)QU93@^P, -XMA<")1?!T4(L'A%P'6V@\0, -XM6UY?7<,QTHGX.WWP#Y3"Z/?[__^--(>)]^O<58GE5U93@^Q\B56(B<*)18R) -XM382+`(7`#X0$!@``BTV(.P$/A?D%``")5?")3>CK!XM5Z#L"=1?`$BW7P -XM@T7H!(L&A?P@=!#K&I"-="8`BW68@W[\('4, -XM@VV8!(M%\#E%F'?KBU68QP(`````BTWHB0PDZ/?%``")19S'1"0$Q)@*",<$ -XM)"!)"0CH0+O^_X7`=`F`/@Y=9QV(HM%G(-X_"!T#8GVZQ6+ -XM59R#>OP@=0R#;9P$BTWH.4V<=^N+=9S'!@````"+1?"+`(7`B46\=0V+5>B+ -XM`H7`#X2"`@``BTV8BW6@(``(L!.P9T!Y"#P02#Q@2!.?___P=T -XM\HM%O(7`#X5X`@``B4VHB4VLB76TB76PBU7HBQ*%THE5['1R.TWP=FV+??#K -XM$9"-="8`@\<$.?EV7(L'B46\BT6\.47L=>PYSP^"X`(``(M=Z(GZQT7````` -XM`,=%Q`````"+1:PK1:C!^`([1<1]PXGX*T7PT7W`P?@".47`?K.)5:R+5>B) -XM?:B#QP0Y^8E=M(E5L'>DBT68B*T6L*W6TP?@"P?X" -XM*<:%_W4_AC!^@+!^P(YVGT,BT68BU6%6+18@I1=C!?=@"BU78B10DZ'4= -XM``"+3:`Y39@/A*(#``"+1>"%P'X2BW7@B70D!(M%M(D$).B@&P``BU7@*57< -XMBTW@/@WW]__^#Z02#[@2+ -XM`3L_?__Z6_]__\[=>@/AG_]__^+?>B)3:B)3:R)=;2)=;#K$)"-="8` -XM@\<$.?X/AFK]__^+1;P[!W7N.?=R0HM=\(GZQT7(`````,=%S`````"+1;0K -XM1;#!^`([1B)^CG>#X83_?__C;0F`````(/"!(/#!#G1=Q:)T"GXB47`P?@" -XMB47$Z0/]__^-="8`.=YVYHL".P-TUNO>BW6@BT6DB4W8QT7<`````(EUU(EU -XMJ(EUK(E%M(E%L(EUT,=%X`````#ITOW__X7)#XA4`0``BU6LBTVHB=.)5=`I -XMRXE-U(7VBWV@#X@F`0``BTVDB?HK5?")R"M%Z,'Z`L'X`CG"#XYO_?__BT68 -XMBTV)1:")3:3I7/W__XM%Z"M%B,'X`HD$).B4&P``BTVP.4V<#X3:`@`` -XM@'V3``^%S@$``(G[BWWDBW7H*UWDP><"`?Z)7"0$B30DZ((6``"+1?")V8GR -XM`?CH)/+__^F^_?__BT6LZ5?]__^+1>@K18C!^`*)!"3H-AL``(MUL#EUG`^$ -XM60(``(M%Y(E$)`2+5>B)%"3H:!D``(M-Y(M5\"M5C(E,)`2+=>B+#>"7"@C! -XM^@*)-"2+18R)_N@R\?__BT7DBUWH*W7DP>`"`<.)192)'"2)="0$Z/45``"+ -XM1?")V@-%E(GQZ);Q__^+7>3I#_W__XM-C(MUB(E-\(EUZ.D6^O__BTV8BW6< -XMB<^)3:")=:3IQ_[__XM%H#';BU6DB474B46HB46LB56TB56PB470Z9W^__^+ -XM38PI3=#!?=`"BW70C00SB00DZ&,:``"+1:`Y19@/A`L!``"+1>#WV(D$).A* -XM%```BU7B)^8M%\.B?\/__BUWDZ1C\__^+ -XM1=R)1"0$BU6TB10DZ-44``#I>_S__XMUY(ET)`2+1>B)!"3H[A<``(M5\"M5 -XMC(ET)`2+3>C!^@*)#"2+#>"7"@B+18SHO>___^GZ_?__BT6,C0RPBW6XC129 -XMC1RP.=IS#HL"@\($B0&#P00YVG+RQP,`````Z6'___^+19@K18R+%>"7"@C! -XM^`*--`,YUGX"B=:+1=R)1"0$BU6TB10DZ$(4``"+19PK18C!^`(IQHDT).B? -XM$@``Z6;[__^)?"0$BU7HB10DZ!L4``"+=8@I=9R+38PI39C!?9P"P7V8`HM% -XMG"E%F(M5F(D4).AF$@``Z9S[__^)?"0$BU7HB10DZ.(3``"+5>B)^8M%\(/$ -XM?%M>7UWI?N___XE\)`2+=>B)-"3HOQ,``(M%\(GYB?+H8^___^G]^O__C;0F -XM`````(V\)P````!5B>575E.#[!RAA'<*",<%1&4)"`````#'!81W"@@````` -XMQP5(90D(`````(E%\*%XF0L(Z.?V__^A1&4)",<%1&4)"`````"C3&4)"*%( -XM90D(QP5(90D(`````*-090D(H2QW"@CHM?;__X$]-'<*"`!V"0@/AB("``"[ -XM`'8)",=%Y/_____'1>@`````.QU4F0L(3_=1:A1&4)"(D=5)D+"(E% -XMY*%(90D(B47H,=*!^P!V"0@/E,*)V.C,\O__C1R#.1TT=PH(=[^#?>3_#X3$ -XM`0``BPU$90D(H4QE"0B+%>"7"@B%P'0.BQU090D(A=L/A%T!``#'!4QE"0@` -XM````QP5090D(`````*%(90D(N@$```")1>PQP.B\[/__BT7LQT7@`````(7` -XM>&Z+7>"AL'8*"(M-X,'C`HL4&*%`F@L(BP08Z%#V__^AL'8*"(LUX)<*"(L\ -XM&*%`F@L(A?:+%!A^)(L',`Y1>Q]DJ$X90D(.47L?4`[1>!\.XM=X,'C`J%` -XMF@L(NOAO"0B+3>"+!!CHUO7__Z%`F@L(BP08@\,$QP``````@T7@`8M%X#D% -XM.&4)"'W+BT7LHSAE"0B+1>B)!"3HHQ@``(M%Y(D$).AX%@``QP0D`````.C\ -XM"@``Z-=C_O^+1?"CA'<*"(/$'%M>7UW#,RA>)D+".B(]/__ -XMZ7/^__^A1&4)"(E%Y(G!H4AE"0B)1>CI*_[__XVV`````(V_`````%6)Y8/L -XM&(EU^(MU"(E=](E]_(L55)D+"#L5-'<*"'01BUWTBW7XBWW\B>Q=Z0_]__^+ -XM#4QE"0B%R702H>"7"@@K!;B9"P@IR(/X`G[3C02U`````(G7*</_ -XM_S\`@?\`=@D(#Y3`B40D!(D<).B9E0``@_C_=&B#^`$/A(0```"#^/QUEKH! -XM````N%P```#HA_+__XG8N@$```#!^`:#X`>#P##H#X`>#P##H6O+__XU#,+H!````Z$WR__^+7?2+=?B+??R)[%WI3&+^_[H! -XM````N%X```#H+?+__X/[?W1_@\M`N@$```")V.@9\O__Z\K'1"0$Q)@*",<$ -XM)"!)"0CHTZ_^_X7`=`F`/@Y!2QW"@@/E,"!XO__/P`/ML")%"2)1"0$Z/:3``"-4`>#^@9V -XM9@'&.?Y\O"G^@T7P`87;=;:[`'8)".L6C;0F``````'&.?Y\!H-%\`$I_H/# -XM!#L=5)D+"`^#H@```#'`@?L`=@D(#Y3`B40D!(L#)?__/P")!"3HEY,``(U0 -XM!X/Z!G>__R25K`,)"/\DE<@#"0B0@\8!]\8'````C;0F`````'2"@\8!]\8' -XM````=>.-=@#I;____X/&`??&!P```(GV=("#Q@'WQ@<```!UZ(UV`.EM____ -XM@T7P`3'VZ6+___^#Q@3I6O___P'`]]B-=`;]Z4W___^#Q@+I1?___XM%\(D$ -XM).C8%```B30DZ+`2``#'1"0$Q)@*",<$)"!)"0CHS*W^_X7`=`F`/PL0@``BU4,BTT(@_H!B=`/C@D$``"%R:.L;PD(B<@/CO`#```Y -XM%:QO"0BCH&\)"`^$#0$``*%`F@L(QP5`F@L(`````(D$).A<2?[_H;!V"@C' -XM!;!V"@@`````B00DZ$5)_O^AK&\)"+H```$`B<&CX)<*"(G0P?H?]_F-4`&- -XM!(4(````B17(=@H(B00DZ)50``"+%_(L5R'8*"(G8@\,!.<)_VL<$E@````"AR'8* -XM"(DU0)H+"(/``<'@`HD$).@Z4```BQ7(=@H(A=*)QGXKNP$```"AX)<*"(/` -XM`<'@`HD$).@64```B42>_(L5R'8*"(G8@\,!.<)_VL<$E@````")-;!V"@CH -XM\>?__X'$+$(``%M>7UW#.<@/A>O^___'!"3D`PD(Z)[`_/^%P'1'H:QO"0C' -XM1"0(`````,=$)`0`````B00DZ#%I``#'1"0$,"H("(G#B00DZ$]$_?^)7"0$ -XMQP0D`$P)".@_MOW_B1PDZ)=#_?_'!"3L`PD(Z$?`_/^%P'1'H:!O"0C'1"0( -XM`````,=$)`0`````B00DZ-IH``#'1"0$,"H("(G#B00DZ/A#_?^)7"0$QP0D -XMY$L)".CHM?W_B1PDZ$!#_?_'!"3R`PD(Z/"__/^%P`^$*?[__XD$).C4O@`` -XMQT0D"``(``")1"0$C87DWO__B87@O?__B00DZ$#'_/^-1>2-C>3>___'A>#^ -XM__\`````QT7D8P```,=%Z&\```#'1>PC````QT7P`````(E$)`2)#"3H*;4` -XM`(7`B<2)PXD,).CNP/S_C8WDO?__*YW@O?__B8W3>__^)7"0(B40D!.C!QOS_H:QO"0C'A)WDO?__`````(V2] -XM___'1"0(`````,=$)`0`````B00DZ,9G``")'"2)QHE$)`3H9+[\_XDT).A@ -XM30``QT0D!#H```")/"3H#,3\_XV-Y+W__XD,)(E$)`3H.K[\_XU%Y(V-Y+W_ -XM_\=%Y&P```#'1>AI````QT7L(P```,=%\`````")1"0$B0PDZ$VT``"%P(G& -XM#X3[````B<.-1>2)!"3H$L#\_XV-Y+W__RN=W+W__XE,)`3!^P(!PXV%Y-[_ -XM_XE<)`B)!"3HZ\7\_Z&@;PD(QX2=Y-[__P````#'1"0(`````,=$)`0````` -XMB00DZ/=F``"-C>3>__^)#"2)PXE$)`3HC[W\_XD<).B+3```QT0D!#H```") -XM-"3H-\/\_XE$)`2-A>3>__^)!"3H9;W\_XV-Y-[__\>%X/[__P````")3"0$ -XMQP0D($P)".C)L_W_Z2'\__^X&````.D&_/__N%````"0C70F`.GH^___C8WD -XMO?__C87DWO__B40D!(F-W+W__XD,).@IOOS_Z2]__^-C>3>__^) -XM1"0$B0PDZ`R^_/_KA8VT)@````"-O"<`````58GE5E.#[""+70RAK&\)"(MU -XM"(D#H:!O"0B)!HU%\(E$)`BAM'8*",=$)`1H=`A`B00DZ*2^_/^#P`%T%P^W -XM1?)FA7<.0 -XMC70F``^WP+H!````B0:AK&\)"#L#==^AH&\)"#'2.P8/E<*#Q"!;B=!>7<.0 -XMC;0F`````%6)Y8/L&(72B5WTB=.)=?B)QHE]_'0%@#H`=22+1@B)!"3H&4L` -XM`,=&"`````"+7?2+=?B+??R)[%W#D(UT)@")%"3HU,/\_XUX`8M&"(E\)`2) -XM!"3H!DP``(E\)`B)7"0$B48(B00DZ/_"_/_KOY!5B>6#[!B+%,````\.=,/A/@```"+#6AE"0B%R0^%^@```(G'B<8E````(('G -XM````"('F````$(E%\*&`;0D()0```!`Y\'0IA?8/A-X!``"AL&X)"(7`=!B` -XM.`!T$XL5O&X)"(72=`F`.@`/A9T"``"A@&T)""4````(.?AT+87_#X1J`0`` -XMH>QN"0B%P'0<@#@`=!>+%>!N"0B%TG0-@#H`#X4_`@``C70F`*&`;0D()0`` -XM`"`[1?!T48M%\(7`#X3N````H1!O"0B%P'0]@#@`=#B+%1QO"0B%TG0N@#H` -XM="G'1"0(,#H&",=$)`0!````B00DZ,V]_/^!#8!M"0@````@C;0F`````(M= -XM](MU^(M]_(GL7<.-=@"+#;QN"0B%R0^$^/[__X`Y``^$[_[___?"````$`^% -XM>`$``(G&@>8````0]\(````@#X5W`0``B=@E````((E%\('B````"'1"B=^! -XMYP````@/A8````0)0```"")1?#'1"0(,#H&",=$)`0!```` -XMB0PDZ"N]_/_'!8!M"0@`````B=^!YP````CIAO[__Z$<;PD(A<`/A$O___^` -XM.``/A$+____'1"0(,#H&",=$)`0!````B00DZ.:\_/^!)8!M"0C____?Z1O_ -XM__^AX&X)"(7`#X2N_O__@#@`#X2E_O__QT0D"#`Z!@C'1"0$`0```(D$).BI -XMO/S_@26`;0D(____]^E^_O__H;!N"0B%P`^$-O[__X`X``^$+?[__Z&\;@D( -XMA<`/A"#^__^`.``/A!?^___'1"0(,#H&",=$)`0!````B00DZ%:\_/_V!8-M -XM"0@(=!*AX&X)"(7`=`F`.``/A<\```#V!8-M"0@@=!*A'&\)"(7`=`F`.``/ -XMA8T```"!)8!M"0C____OZ;K]__^)QH'F````$`^$N/[__^E]_O__B=@E```` -XM((E%\`^%@_[__XG>@>8````0Z9[^___'1"0(,#H&",=$)`0!````B00DZ,F[ -XM_/^!#8!M"0@````(Z9[]___'1"0(,#H&",=$)`0!````B00DZ**[_/^!#8!M -XM"0@````0Z3S]___'1"0(,#H&",=$)`0!````B00DZ'N[_/^!)8!M"0C____? -XMZ4S____'1"0(,#H&",=$)`0!````B00DZ%2[_/^!)8!M"0C____WZ0K___^) -XM]HV\)P````!5B>6#[!CH%74``,=$)`3$F`H(QP0D\$4)".CAHO[_A7"7"@A_/*$T;PD(A7<.+%?QM"0B%TG3& -XM@#H`=,&A%&X)"(7`=`6`.`!U>*'\;0D(A7<.#Q!!;7EWI -XM=%+^_\=$)`@P.@8(QT0D!`$```")!"3H6+C\_^EK____C;0F`````%6)Y5=6 -XM4X/L+(MU#(M]"(7V?@@[->"7"@A^"(/$+%M>7UW#QT0D!,28"@C'!"0@20D( -XMZ-F?_O^%P`^$H`(``(L5+'<*",=%V`````"+&H7;=!2)T(/`!(L(A``````=#R+ -XM%5"9"PB+#529"PB)T#G*#X=Z`@``+0!V"0C!^`(#1=@YRHE%W(G0#X);`@`` -XM+0!V"0C!^`(#1=B)1>#'1"0$Q)@*",<$)"!)"0CH-9_^_X7`=%*A9&4)"(L= -XMX)<*"`^O'6AV"@@#';B9"PB%P`^$I````#M=X'P,Z`?X__^-M"8`````H61E -XM"0B%P'08H529"P@M`'8)",'X`@-%V#G8#X2(`0``BP<]____!W0XJ0````0/ -XMA(````")PH'B____^\'B!`,5P*P+"(L"AZ#!;B9"P@!@^X!=%N#QP3I0?___Z%4F0L(+0!V"0C!^`(#1=@!PHE% -XMW(E5X.DD____.UW<#XQD____.UW@#XU;____Z(;W__^-M@````#I2____XD$ -XM).BS5/[_@P6XF0L(`8/N`76EQT0D!,28"@C'!"0@20D(Z".>_O^%P'0-H61E -XM"0B%P`^%UP```*'@EPH(.06XF0L(#XP,_O__#[X5K)@*"/;"`0^$I@```(L- -XM:'8*",<%N)D+"`````"#P0&#X@*)#6AV"@@/A-K]__^A0)H+"(L$B(L`A<") -XM1?`/A*,```"-1?")!"3'1"0$`0```.B7_?__H6AV"@B+%;B9"PB-'(4````` -XM`QU`F@L(BP.!/)#___\'#X6+_?__C4H!C12-`````.L#@\$!B0VXF0L(BP.+ -XM!!"#P@0]____!W3HZ6+]___H4O;__XGVZ6S^__^#Z`&CN)D+"(/$+%M>7UW# -XMZ#;V___I'____\=%V`````#'1=P`````QT7@`````.G._?__QP0D(````.C+ -XM4/[_QP6XF0L(`0```.D'_?__B7>E9_/__BQ50;@D(A=)TP8`Z`'2\ -XMH5QN"0B%P`^$N````(`X``^$KP```(L5+&X)"(72#X2A````@#H`#X28```` -XMB00DQT0D"#`Z!@C'1"0$`0```.A1M/S_B5PD!(DT).CY^___H6AN"0B%P'0) -XM@#@`#X6B````H2QN"0C'1"0(,#H&",=$)`0!````B00DZ!:T_/^#Q!!;7EW# -XMQT0D"#`Z!@C'1"0$`0```(D$).CWL_S_QT0D!`$```")-"3HF_O__Z%H;@D( -XMA7>F53?[_QT0D"#`Z!@C' -XM1"0$`0```(D$).AYL_S_Z4'___^0C;0F`````%6)Y5=64X/L'(M]"(L5N)D+ -XM"#G7#X3$````.SW@EPH(#XVX````A?\/A+@```")^(G^@^`'P?X#B47LZS&- -XM=@"+1>P!\#G##Y_`A,!T;<<$)`T```#HED[^_S'2.SW@EPH(QP6XF0L(```` -XM`'UPB?LITXU#!(/X"'82H>1M"0B%P'0)@#@`#X5:`0``A=M_=/?;@_L$?A*A -XM6&\)"(7`=`F`.``/A?H```"`/<"9"P@`=8XYWP^7UW#QP0D#0```.C^3?[_ -XMQP6XF0L(`````(/$'%M>7UW#@_L$?A*A9&\)"(7`=`F`.``/A8@```"`/<"9 -XM"P@`#X2M````B=.)_H'C^````(/F^#GS#X3/````BQ5H=@H(B57PBPU`F@L( -XMBP21@3RP____!W0K.?-](8/#",<$)`D```#HA4W^_SG>?^VA:'8*"(E%\(L- -XM0)H+"(DUN)D+"*&XF0L(B?HIPHE4)`2+5?#!X`(#!)&)!"3H?_G__^LDB5PD -XM"(E<)`2)!"3HZ:[\_\=$)`@P.@8(B5PD!(D$).BEL?S_B3VXF0L(@\0<6UY? -XM7<.+%6AV"@B)5?"+#4":"PCKG8E\)`B)?"0$B00DZ*:N_/_'1"0(,#H&"(E\ -XM)`2)!"3H8K'\_^N[H6AV"@B)1?"+#4":"PCI9/___Y!5B>575E.#[`R+?0BA -XM:'8*"#G'#X3J````.SW(=@H(#X_>````B?LIPX7;#XX``0``]@6LF`H(`0^$ -XMB````(L5:'8*"*%`F@L(BP20BQ"%TG1TBQ7@EPH(B=&#Z0%T(X$\B/___P=U -XM&HT4D.L0C78`BT+X@^H$/?___P=U!8/I`77NB0PDZ%;]__^+%;B9"PBAX)<* -XM"(L-:'8*""G0B40D!*%`F@L(P>("`Q2(B10DZ$SX__^#ZP%T1/8%K)@*"`$/ -XMA7C___^#^P%^%:%`;PD(A`.@")]G5'H01O"0B% -XMP'2R@#@`=*V)WO?>,=N%]G\+ZZ&-="8`H01O"0B#PP''1"0(,#H&",=$)`0! -XM````B00DZ,RO_/\Y\W7@_X!?BF)="0(B70D!(D4).C:K/S_ -XMQT0D"#`Z!@B)="0$B00DZ):O_/_I0O___Z$$;PD(A0C70F -XM`%6)Y5.#["2A)"P)"(U=],=%^`,```#'1?0H+0D(B40D",=$)`0<+`D(B1PD -XMZ`\H``"A$"P)",=%]!@M"0C'1"0$""P)"(D<)(E$)`CH[R<``*%,+`D(QT7T -XM""T)",=$)`1$+`D(B1PDB40D".C/)P``H3@L"0C'1?3X+`D(QT0D!#`L"0B) -XM'"2)1"0(Z*\G``"A8"P)",=%].@L"0C'1"0$6"P)"(D<)(E$)`CHCR<``*%T -XM+`D(QT7TV"P)",=$)`1L+`D(B1PDB40D".AO)P``H20L"0C'1?3(+`D(QT0D -XM!!PL"0B)'"2)1"0(Z$\G``"A$"P)",=%]+@L"0C'1"0$""P)"(D<)(E$)`CH -XM+R<``*%,+`D(QT7TJ"P)",=$)`1$+`D(B1PDB40D".@/)P``H3@L"0C'1?28 -XM+`D(QT0D!#`L"0B)'"2)1"0(Z.\F``"A8"P)",=%](@L"0C'1"0$6"P)"(D< -XM)(E$)`CHSR8``*%T+`D(QT7T>"P)",=$)`1L+`D(B1PDB40D".BO)@``BPW( -XMF0L(A``````ZQ"#QP>`4@_\=```` -XMBU7@BX($+`D(C01`BQR%J&T)"(7;=-D/MC.)\(3`=-")'"3HI:<``(E%[(D$ -XM).@FJOS_BU7@BXH0+`D(B47P@_G_#X2?````@'L!`(GP#[;0=%*+7=B+==P! -XMTP^V`S@$%G1?/#5T6RP!=86+==B-5>R)5"0$B30DZ,`B``"+5>"+@A`L"0B% -XMP'5T#[:"""P)"(@#Z5C___^0C70F`(/$+%M>7UW#BUW8`=,/M@/KN,=%W$`I -XM"0C'1=C`JPL(Z1[___^-!+^-!(4(+`D(B40D!(U%[(E,)`B)!"3HWB,``,8# -XM->D)____BT78C77LB70D!(D$).A$(@``Z?+^__^)1"0(C02_C02%""P)"(UU -XM[(E$)`2)-"3HHB,``.G0_O__C;8`````C;PG`````%6)Y5=64X'L3`@``(U= -XMR(D<).AEK?S_B1PDQT0D!!P```#H9:C\_XU%V(E<)`2)1"0(QP0D`0```.C^ -XMI_S_C478B00DQT0D!&`>!0CH/RO]_XV%R/?__XE%\,<%8&4)"`$```#'!2!W -XM"@CZ`PD(QP0D++((".@RI_S_A<")PW0)@#@`#X6:`P``NS&R"`C'1"0$``@` -XM`,<$)(!E"0CHWC3^_XE<)`3'!"2`90D(Z+JK_/^%P`^.G`(``,<$)`[/"`CH -XM%JC\_X7`#X6>`P``,=*)%91O"0C'!"0*!`D(Z/JG_/^%P`^$9P,``+H!```` -XMB16X;PD(QP0D#00)".C;I_S_QP0D$`0)"*.(;PD(Z,JG_/_'!"03!`D(H\1O -XM"0CH&:;\_\<$)!8$"0BCK&\)".@(IOS_HZ!O"0BAH&T)"(7`="R[H&T)"(UU -XM\(VV`````(ET)`2)!"3H<*[\_XG"B=B#PPSH:.G__XL#A'<*"(7;=&Z`.P!T -XM::$<;PD(AB)1"0$C47LB00DZ%/G__^+ -XM1>B)1"0$BT7LB00DZ,'B__^-1=B)!"3H]B?]_^B!^___@<1,"```6UY?7<.A -XM4&X)"(7`=`F`.``/A0K___^+%4QO"0@QP(72#X3__O__,<"`.@`/E<#I\O[_ -XM_XL5-&\)"#'`A=(/A,+^__\QP(`Z``^5P.FU_O__@_C_#X27`0``A<`/A$$! -XM``"A@)@*"(L=#'8*",=$)`R4"`D(QT0D"!8```#'1"0$!P```(D$).BNAOW_ -XMB5PD!(D$).A"@```H:!M"0C'!:QO"0A0````QP6@;PD(`````,<%N&\)"``` -XM``"%P,<%E&\)"``````/A)O]__^[H&T)"(G8,=*#PPSH[.;__XL#A*#Q!`QP%M>7<.#Q!"P -XM`5M>7<-5B>575C'V4S';@^P,BT4(BSB+@P`L"0B)/"2)1"0$Z'BB_/^%P'08 -XM@\8!@\,4@_X&==^#Q`RX_____UM>7UW#BTT,BP&+402-#+:)!(T(+`D(B12- -XM#"P)"(M%$(D$C1`L"0B#Q`PQP%M>7UW#C78`58GE5U8Q]E,QVX/L#(M]".LV -XMBX80+`D(@_C_="")1"0(C02;C02%""P)"(E$)`2+A@`L"0B)!"3H@R```(/# -XM`8/&%(/[!G0JBT<$A53,=N#[!2-M"8`````BX.D;0D(@\,, -XMB00DZ!\O``"!^^`!``!UYV8QVXUT)@"+@X1O"0B#PPR)!"3H_RX``(/[5'7J -XMH8"8"@C'1"0,&00)",=$)`@!````QT0D!`0```")!"3'!:QM"0CX'`D(Z/N" -XM_?^)!"3H8RS^_\=$)`PO!`D(QT0D"`(```#'1"0$!````,<%N&T)""P$"0BC -XML&T)"*&`F`H(B00DZ+^"_?^)!"3H)RS^_\=$)`P\!`D(QT0D"`,```#'1"0$ -XM!````,<%Q&T)")_1"`BCO&T)"*&`F`H(B00DZ(."_?^)!"3HZRO^_\=$)`Q, -XM!`D(QT0D"`0```#'1"0$!````,<%T&T)",`%"0BCR&T)"*&`F`H(B00DZ$>" -XM_?^)!"3HKRO^_\=$)`QA!`D(QT0D"`4```#'1"0$!````,<%W&T)"$V]"`BC -XMU&T)"*&`F`H(B00DZ`N"_?^)!"3H!_?^)!"3HORK^_\=$)`RI!`D(QT0D"`D```#'1"0$ -XM!````,<%#&X)"*8$"0BC!&X)"*&`F`H(B00DZ!N!_?^)!"3H@RK^_\=$)`R[ -XM!`D(QT0D"`H```#'1"0$!````,<%&&X)"$T;"0BC$&X)"*&`F`H(B00DZ-^` -XM_?^)!"3H1RK^_\=$)`S.!`D(QT0D"`L```#'1"0$!````,<%)&X)",L$"0BC -XM'&X)"*&`F`H(B00DZ*.`_?^)!"3H"RK^_\=$)`SA!`D(QT0D"`P```#'1"0$ -XM!````,<%,&X)"-X$"0BC*&X)"*&`F`H(B00DZ&>`_?^)!"3HSRG^_\=$)`SY -XM!`D(QT0D"`T```#'1"0$!````,<%/&X)"+/1"`BC-&X)"*&`F`H(B00DZ"N` -XM_?^)!"3HDRG^_\=$)`P(!0D(QT0D"`X```#'1"0$!````,<%2&X)"`4%"0BC -XM0&X)"*&`F`H(B00DZ.]__?^)!"3H5RG^_\=$)`P -XM!0D(QT0D"!8```#'1"0$!````,<%M&X)"""_"`BCK&X)"*&`F`H(B00DZ`]^ -XM_?^)!"3H=R?^_\=$)`RM!0D(QT0D"!<```#'1"0$!````,<%S&X)"*;K"`BC -XMN&X)"*&`F`H(B00DZ--]_?^)!"3H.R?^_\=$)`S#!0D(QT0D"!@```#'1"0$ -XM!````,<%V&X)"'CG"`BCT&X)"*&`F`H(B00DZ)=]_?^)!"3H_R;^_\=$)`S0 -XM!0D(QT0D"!D```#'1"0$!````,<%Y&X)",0>"0BCW&X)"*&`F`H(B00DZ%M] -XM_?^)!"3HPR;^_\=$)`S?!0D(QT0D"!H```#'1"0$!````,<%\&X)"*/!"`BC -XMZ&X)"*&`F`H(B00DZ!]]_?^)!"3HAR;^_\=$)`SU!0D(QT0D"!L```#'1"0$ -XM!````,<%_&X)"(T%"0BC]&X)"*&`F`H(B00DZ.-\_?^)!"3H2R;^_\=$)`P# -XM!@D(QT0D"!P```#'1"0$!````,<%"&\)"->\"`BC`&\)"*&`F`H(B00DZ*=\ -XM_?^)!"3H#R;^_\=$)`P3!@D(QT0D"!T```#'1"0$!````,<%%&\)"$D;"0BC -XM#&\)"*&`F`H(B00DZ&M\_?^)!"3HTR7^_\=$)`PD!@D(QT0D"!X```#'1"0$ -XM!````,<%(&\)""$&"0BC&&\)"*&`F`H(B00DZ"]\_?^)!"3HER7^_\=$)`PT -XM!@D(QT0D"!\```#'1"0$!````,<%+&\)"#$&"0BC)&\)"*&`F`H(B00DZ/-[ -XM_?^)!"3H6R7^_\=$)`Q-!@D(QT0D""````#'1"0$!````,<%.&\)"$H&"0BC -XM,&\)"*&`F`H(B00DZ+=[_?^)!"3H'R7^_\=$)`QE!@D(QT0D""$```#'1"0$ -XM!````,<%1&\)"&(&"0BC/&\)"*&`F`H(B00DZ'M[_?^)!"3HXR3^_\=$)`Q^ -XM!@D(QT0D""(```#'1"0$!````,<%4&\)"'L&"0BC2&\)"*&`F`H(B00DZ#][ -XM_?^)!"3HIR3^_\=$)`R6!@D(QT0D"",```#'1"0$!````,<%7&\)"),&"0BC -XM5&\)"*&`F`H(B00DZ`-[_?^)!"3H:R3^_\=$)`RL!@D(QT0D""0```#'1"0$ -XM!````,<%:&\)"/G."`BC8&\)"*&`F`H(B00DZ,=Z_?^)!"3H+R3^_\=$)`S" -XM!@D(QT0D""L```#'1"0$!````,<%>&X)"+\&"0BC;&\)"*&`F`H(B00DZ(MZ -XM_?^)!"3H\R/^_\=$)`S6!@D(QT0D""P```#'1"0$!````,<%H&T)"-,&"0BC -XM?&X)"*&`F`H(B00DZ$]Z_?^)!"3HMR/^_\=$)`SI!@D(QT0D""T```#'1"0$ -XM!````,<%P&X)".8&"0BCI&T)"*&`F`H(B00DZ!-Z_?^)!"3H>R/^_\=$)`S] -XM!@D(QT0D""4```#'1"0$!````,<%=&\)"`````#'!7AO"0@`````H\1N"0BA -XM@)@*",<%@&\)"`T$"0B)!"3HPWG]_XD$).@K(_[_QT0D#!,'"0C'1"0()@`` -XM`,=$)`0$````QP6,;PD(#L\("*.$;PD(H8"8"@B)!"3HAWG]_XD$).CO(O[_ -XMQT0D#"D'"0C'1"0()P```,=$)`0$````QP68;PD(%@0)"*.0;PD(H8"8"@B) -XM!"3H2WG]_XD$).BS(O[_QT0D##D'"0C'1"0(*````,=$)`0$````QP6D;PD( -XM$P0)"*.<;PD(H8"8"@B)!"3H#WG]_XD$).AW(O[_QT0D#$L'"0C'1"0(*0`` -XM`,=$)`0$````QP6P;PD("@0)"*.H;PD(H8"8"@B)!"3HTWC]_XD$).@[(O[_ -XMQT0D#+@("0C'1"0(*@```,=$)`0$````QP6\;PD($`0)"*.T;PD(H8"8"@B) -XM!"3HEWC]_XD$).C_(?[_QP7(;PD(`````,<%S&\)"`````"CP&\)"(/$%%M= -XMPU6)Y8'L2`@``(V%\/?__XE%\(M%"(E=](EU^(E]_,<%('<*"+;1"`B)!"3H -XM`,;]_\=$)`3P(P8(B<.)!"3H?AG]_XL#A<`/A+0```"+$(72#X2J````@_HM -XM#X2V````B9W@]___QX78]___`````,>%W/?__P````")!"2_)`<)".@:D@`` -XMB00DZ%(A_O_'1"0$,"H("(F%S/?__XD$).@<&?W_B[7,]___N04```#\\Z8/ -XMA%W/?__P````!T(,<$)'<``!#H>A7]_\>%V/?__P````#'A=SW__\` -XM````C4,$B87@]___BT,$AG'1"0$`````,<$)"`+"0CHH&\``.F%_O__ -XMB[7,]___O_[>"`BY!0```/SSIG04B[7,]___OS,'"0BY!@```/.F=2^AH&\) -XM",<$)"`+"0B)1"0$Z%UO``#I0O[__XE4)`3'!"0D"PD(Z$AO``#I+?[__XNU -XMS/?__[\6!`D(N0,```#SIG2]B[7,]___OV$'"0BY!0```/SSI@^$40(``(NU -XMS/?__[\3!`D(N0,```#SI@^$.0(``*&@;0D(OJ!M"0B%P'42Z;`#``"#Q@R+ -XM!H7`#X2C`P``BY7,]___B00DB50D!.@(E_S_A#W__^+0@2%P'0R -XMBS"%]G0LBXW<]___A+A#W__^+0@2)!"3HCHP``(D$).@RC_S_B<>+1@2%P'0RBP"% -XMP'0LBX7<]___A<`/AG*_/__BX78]___ -XMA<`/A+S\__\/OL*)1"0$QP0D=```$.BN#_W_Z:3\__^)]HV\)P````!5B>57 -XM5E.#[!R+10R+70C'!2!W"@@UT@@(B47LH:!M"0B%P`^$`P$``+Z@;0D(ZPV# -XMQ@R+!H7`#X3O````B5PD!(D$).C3DOS_AT!``"+%4QO"0@Q -XMP(72=`@QP(`Z``^5P(L5!&\)"*/DF`H(A=)T"H`Z`+@!````=12+%7!O"0@Q -XMP(72=`@QP(`Z``^5P*-X=PH(@\0<6UY?7<.+%8!O"0C'1?"`;PD(A=*)5>AU -XM)HE=#,=%"',``!"#Q!Q;7E]=Z4H._?^#1?`,BT7PBP"%P(E%Z'3:B5PD!(M] -XMZ(D\).BGD?S_AR)/"3H9(S\_XM5\(E""(L5K&\)"*&@ -XM;PD(@7WPI&\)"(D5=)D+"*/$F0L(=`V!??"8;PD(#X4Z____B54,Z!N"0B%P`^$6?[__X`X``^$ -XM4/[__XE$)`2)'"3H[)#\_X7`#Y3`#[;`"05H90D(Z3'^__^+=>RX6`<)"+D$ -XM````_(G'\Z8/A9@```"+1?#'0`@!````H91O"0B#/<1O"0@!BPV(;PD(HL"9 -XM"PBAN&\)"*+(EPH(&<#WT(/@`H7)#Y7""="!??"`;PD(HJR8"@AT#8%]\+QO -XM"0@/A77^__^AK&\)"(E%#*&@;PD(B44(@\0<6UY?7>GER?__N`$```#I'?[_ -XM_XE$)`2)'"3H.Y#\_X7`#Y3`#[;`HVAE"0CI&____XMU[+B1Y`@(N0,```#\ -XMB575E.#[!RA@)@*",=$)`S8"`D(QT0D"`$```#'1"0$!P```(D$).CB -XM;?W_B00DZ'IG``"A@)@*",=$)`QF!PD(QT0D"`(```#'1"0$!P```(D$).BU -XM;?W_B00DZ$UG``"A@)@*"(L=H&\)"(LUK&\)",=$)`P`"0D(QT0D"`,```#' -XM1"0$!P```(D$).A\;?W_B5PD"(ET)`2)!"3H#&<``(`]R)<*"``/A+`"``"A -XM@)@*",=$)`S,[@@(QT0D"`4```#'1"0$!P```(D$).@Z;?W_B00DZ*(6_O_' -XM1"0$,"H("(G'B00DZ'`._?^A@)@*",=$)`R$!PD(QT0D"`0```#'1"0$!P`` -XM`(D$).C[;/W_B7PD!(D$).B/9@``N$7)"`B`/<"9"P@`#X2"`@``B00DZ$46 -XM_O_'1"0$,"H("(G#B00DZ!,._?^A@)@*",=$)`R>!PD(QT0D"`<```#'1"0$ -XM!P```(D$).B>;/W_B5PD!(D$).@R9@``]@6LF`H(`0^$K`$``*&`F`H(QT0D -XM#+('"0C'1"0("@```,=$)`0'````B00DZ&!L_?^)!"3HR!7^_\=$)`0P*@@( -XMB<.)!"3HE@W]_Z&`F`H(QT0D#,0'"0C'1"0("0```,=$)`0'````B00DZ"%L -XM_?^)7"0$B00DZ+5E```/O@6LF`H(J`%T>*@"#X5]`0``H8"8"@C'1"0,M@<) -XM",=$)`@+````QT0D!`<```")!"3HW6O]_XD$).A%%?[_QT0D!#`J"`B)PXD$ -XM).@3#?W_H8"8"@C'1"0,W@<)",=$)`@,````QT0D!`<```")!"3HGFO]_XE< -XM)`2)!"3H,F4``(L=H&T)"(7;#X2/````,?:)]HN&J&T)"(7`=`6`.`!U):&` -XMF`H(QT0D#/0'"0C'1"0(#0```,=$)`0'````B00DZ$QK_?^)!"3HM!3^_\=$ -XM)`0P*@@(B<.)!"3H@@S]_XN&H&T)"(E<)`S'!"3\!PD(B40D"(N&I&T)"(E$ -XM)`3HKF0``(D<).BV"_W_BX:L;0D(@\8,A<`/A77____'!"0*````Z*DG_O^) -XM/"3HD0O]_X/$'%M>7UW#H8"8"@C'1"0,M@<)",=$)`@+````QT0D!`<```") -XM!"3HM&K]_^E/_O__H8"8"@C'1"0,D>0(",=$)`@&````QT0D!`<```")!"3H -XMBFK]_^E+_?__H8"8"@C'1"0,L@<)",=$)`@*````QT0D!`<```")!"3H8&K] -XM_^E^_O__H8"8"@C'1"0,F0<)",=$)`@(````QT0D!`<```")!"3H-FK]_^E4 -XM_?__D%6)Y8M%"%VBX&\)"+C@;PD(PXVT)@````"-O"<`````58GEBT4(78M0 -XM!(L`B17<;PD(H]AO"0BXV&\)",.-=@!5B>53B<.#[`3'!"08````Z'L6``"+ -XM$XL2QT`$_____\=`"`````")$,=`#`````#'0!``````QT`4`````(/$!%M= -XMPXVV`````(V_`````%6)Y5.)PX/L!(7`=$N+0!"%P'0,Z.?____'0Q`````` -XMBT,4Z-C___^+0P2#^/]\"87`?AR#^`)^#(VT)@````#HQXC\_XM#"(D$).@@ -XM%0``B1PDZ!@5``"#Q`1;7<.)]E6)Y5=6B=93@^P,B47PBSJ+&(L7.1.)V74( -XMZQF-="8`B<&+012%P'0W.Q!U\X/!%(G#B4WPC4<$B0:+1@2#Z`&%P(E&!'0J -XMBU,0A=)T$HU#$(GRZ*C___^#Z`%T#8UV`(/$##'`6UY?7<.+0Q"%P'7OBT,4 -XMBU7PB0*)V,=#%`````#H&?___X/$#+@!````6UY?7<.-M@````"-OP````!5 -XMB>6#["B+10B+4`2+`(72B57\B47X=!V+#=1O"0@QP(7)=`^-5?BXU&\)".@O -XM____,<#)P\=$)`PH"PD(QT0D"`,```#'1"0$"0```*&`F`H(B00DZ$9H_?^) -XM!"3HWF$``+C_____R<.-M"8`````58GEBTT,BU4(BP$/M@"`/!`U=`)=PX'Z -XMP*L+"'0:@?K`I`L(=>Z`N,"K"P@U=.6)30A=Z5C___^`N,"D"P@U=>[KVXVV -XM`````(V\)P````!5B>57B<=6B=93B?N#[!R)3?"+`HL0.1=U".L8C70F`(G# -XMBT,4A<`/A,L````[$)!U[HG'BT8$@P8$@^@!A<")1@1U+(M'$(7`=`SH\/W_ -XM_\='$`````"+1P2#^/]\"87`?D>#^`)^,.C?AOS_C78`BU\0A=L/A*0```"+ -XM50B+1Q")%"2+3?")\NAR____@\0<,7<.)V.@5_/__H]1O"0CI>___ -XM_XUT)@"-O"<`````58GE@^PHB5WTB<.)=?B)SHE]_(G7BQ*+`#L"=#.+0Q2% -XMP'04B?KHU?___XM=](MU^(M]_(GL7<.X`0```,____ZX>-M@`` -XM``"-OP````!5H=1O"0B)Y8M5"(M-#%WI//___XVV`````(V_`````%6)Y8/L -XM"*'4;PD(Z'#[___'!=1O"0@`````R>D0UO__58GE5U93@^P-=@"!^_\````/AS0!``"AX%T)"(M$F#3VQ`)T/X/[ -XM?\8&7@^$)P$``(G8@\A`B$8!@\8"BU4(@T7P`8M%\#E"!`^.DP```(M5"(L" -XMBU7PBQR0B=^!YP```$!TIX/[7@^$T````(/[7`^$QP```(/[((GV=#Z%_P^% -XMA@```('[_P````^'TP```*'@70D(BT28-*D```0`=&J!^_\````/A\@```"A -XMX%T)"(M$F#3VQ$!U4('C__\_`(DT)(E<)`3HKGP``(M5"(-%\`$!QHM%\#E" -XM!`^/;?___XM%#(L0A=)T#(M`!(7`=`6(!H/&`<8&`(M%[(/$'%M>7UW#C;8` -XM````B=C!^`:#X`>#P#"(1@&)V,'X`X/@!X/`,(A&`HG8@^`'@\`PQ@97UW#C70F`'Q3@_L"?TZ#ZP&X -XM:#T)")!T!;AT/0D(B30DB40D!.B-_?__QT0D!#`J"`B)PXD$).C+`_W_H4@- -XM"0B)7"0$B00DZ`I<``")70B#Q!Q;7E]=Z0L#_?_HPH'\_Z&`F`H(QT0D#.$+ -XM"0C'1"0(!P```,=$)`0)````B00DZ#%B_?^)10RA2`T)"(E%"(/$'%M>7UWI -XMNEL``(UV`(V\)P````!5B>6#["B+10B)??R)7?2)=?B+&(U3!(E5[(MS!(GW -XM@>?__S\`#X2"`0``BPN)R"7__S\`@_AQ=PXUT)@"!__\```!W-Z'@70D(BT2X-/;$`70S@_\_ -XMQT7P?P```'3"@>:?````B77PZ[>-=@"-1]"#^$9W\/\DA2P,"0B)/"3HU7_\ -XM_^O(B7PD!,<$)`4,"0CH@X'\_X7`=;GK@L=%\`L```#I>?___\=%\`D```#I -XM;?___\=%\`T```")]NE?____QT7P"@```(UT)@#I3____\=%\`P```"-="8` -XMZ3_____'1?`;````C70F`.DO____QT7P"````(UT)@#I'____\=%\`<```"- -XM="8`Z0_____'1?!<````C70F`.G__O__BUWL,=(QR8/#!(/X!P^'T@```(M- -XM[(G"BT$$B6#[!B%THE=](G3B77XB<:)??P/A.@```")UX'G````0'4>@?K_ -XM````#X=0`0``H>!="0B+1)`T]L0"#X7B````@_M>#X1"`0``@_M<#X0'`0`` -XM@_L@=#Z%_XUT)@!U1('[_P````^'X0```*'@70D(BT28-*D```0`="B!^_\` -XM```/ARD!``"AX%T)"(M$F#3VQ$!U#HE<)`2)-"3H7',``.M0QT0D!%P```") -XM-"3H2G,``(G8P?@&@^`'@\`PB40D!(DT).@S#P#") -XM1"0$B30DZ!ES``"-0S")1"0$B30DZ`IS``"+7?2+=?B+??R)[%W#QT0D!%X` -XM``")!"3H[7(``,=$)`1`````B30DZ-UR``#KT<=$)`1>````B30DZ,MR``"# -XM^W\/A(<```"#RT")7"0$B30DZ+-R``#KIXD<).CE?/S_Z1O____'1"0$7``` -XM`(DT).B4<@``QT0D!%P```")-"3HA'(``.EU____B10DZ+-\_/_IK/[__\=$ -XM)`1<````B30DZ&)R``#'1"0$7@```(DT).A2<@``Z4/___^)'"3H@7S\_Y"- -XM="8`Z<[^___'1"0$/P```(DT).@K<@``Z1S___^-M@````!5B>6#[!B%THE= -XM](G3B77XB<:)??QT.8L2BW@$Z/_]__^+4Q"%TG0XB?#HT?___XM#%(7`=!J) -XM?@2+4Q2)\(M=](MU^(M]_(GL7>NTC70F`(M=](MU^(M]_(GL7<.-=@#'1"0$ -XM(@```(DT).BP<0``B30DZ`AR``"+0P2)1"0(C4,(B40D!(L&B00DZ##Z___K -XMG8VT)@````"-O"<`````58GE@^PHAR+2Q"#P`2)1>R+1@2#Z`&) -XM1?")^.BL____BUWTBW7XBWW\B>Q=PXGXB''1"0$(@```(D\).CA<```B3PDZ#EQ -XM``"+0P2)1"0(C4,(B40D!(L'B00DZ&'Y__\QP.N1C;8`````C;PG`````%6) -XMY593@^PPBU4(QT7D`````,=%Z`````#'1>P`````A=)T;(L"B47PBT($B47T -XMH=1O"0B%P'1(C77DQT0D!"(```")-"3H97```,=$)`2PD0@(B30DZ'7]_/^+ -XM#=1O"0B-5?")\.C%_O__@\`!?C")-"3HN/S\_X/$,%M>7<.0BT7TA7<.)]L=%\/AO"0C'1?0`````ZX^A@)@*"(M=\,=$)`P0#`D(QT0D"`0` -XM``#'1"0$"0```(D$).BX6_W_B5PD!(D$).A,50``ZYJ0D)"0D)"0D)"058GE -XMBT4(BU4,#[9(&(@*#[9(&8A*`0^V2!.(2@(/MD@5B$H##[9($(A*!`^V2!&( -XM2@4/MD@2B$H&#[9(%XA*"0^V2!R(2@H/MD@=B$H+#[9(%(A*#`^V2!J(2@T/ -XMMD@;B$H.#[9(%HA*#P^V2!^(2A`/MD@>B$H1#[9((HA*$@^V2""(2A#[9($HA*(@^V -XM2!>(2B`/MD`8B$(A7<.058GEBT4(78M`!(/P!,'H`H/@`<.-M@````"-OP`` -XM``!5B>6+10A=BT`()0`#```]``,```^4P`^VP,.0C70F`%6)Y8M%"%V+0`PE -XM``$``,-5B>53@^P$BUT(B1PDZ-IY_/^%P'0*@\0$6UW#C70F`(E="(/$!%M= -XMZ;][_/^-=@!5B>564X/L$(MU"(M=#.L*Z$=[_/^#."-U(HE<)`C'1"0$`0`` -XM`(DT).C2^OW_@\`!=-TQP(/$$%M>77`P``BU7@`````QT7L`````(E5S(E%R.MMNRT```"_`0```,9%TP&+5>R+LD`/"0B) -XM-"3HD7S\_XU\!P$!?>2+1>0[!>"7"@@/C<`"``"`?=,`#X2A`@``#[[#B70D -XM"(E$)`3'!"1E#0D(Z$Y1``"+5>R+@DP/"0B#P@R)5>R%P`^$P0(``(M5[(N" -XM2`\)"#M%X'1=C11`BT7(*T7,@WW@_XN$D$`M"0BZ`;H("`^$B@(``(E$)`B) -XM5"0$QP0D6PT)".CV4```BT7LBU7(*U7,BX!(#PD(B47@C01`BX2"0"T)"(D$ -XM).C>>_S_B47DB47HBU7LBT7@BXI$#PD(C11`BT7(*T7,C120B<@C@D0M"0B# -XM^`$9V_?3@^,KA8I(+0D(#X7R_O__A-L/E473=0N+1=B%P`^$-?___P^V?=/I -XMY/[__X/&!,=%W`(```#I+/[__X/&!,=%W`$```#I'?[__X-%V`&#Q@3I$?[_ -XM_\=%V`````#'1=P`````QP7H;PD(`0```(L6A=(/A$S^__^+1=R-?@3!X`*) -XM1<2+1=S!X`:)1<"+`H/X*P^$FP```(/X+<9%\P`/A(X```")%"2[0`\)".B$ -XM<```B<:A0`\)"(7`=1+K?XVT)@````"#PPR+`X7`=&^)="0$B00DZ`=X_/^% -XMP'7G@'WS*P^$F````(!]\RT/A,@```"+0PB+5<"+2P0K5<2-!$"-!(+WT2&( -XM1"T)""&(2"T)"(7_#X2.````BQ>%T@^$A````(L"@\<$@_@K#X5E____@\($ -XMB$7SZ6?___^A@)@*",=$)`QK#0D(QT0D"`(```#'1"0$"````(D$).BC5?W_ -XMB70D!,<$)#8``!")1"0(Z._S_/^`??,K#X5H____BT,(BU7`*U7$BTL$C01` -XMC02""8A$+0D(]]$AB$@M"0B%_P^%7UWI^_7\_XM# -XM"(M+!(M5P"M5Q(T$0(T$@HG*]]()B$@M"0@AD$0M"0CI,?___XET)`3'!"1G -XM#0D(Z+1.``#I8?W__\=$)`A%R0@(BU7HQP0D8`T)"(E4)`3HE$X``(M%[`-] -XMZ(E]Y(NP0`\)".D1_?__ND7)"`CI;/W__\<$)`H```#HBA'^_XM%U(E%"(/$ -XM3%M>7UWI:/7\_\=%V`````#'1=P`````Z5G\__^0D)"0D%6)Y8/L&,<$)``` -XM``")7?B)=?SHY';\_XLU]&\)",=$)`Q\$@D(QT0D"`P```#'1"0$$P```(G# -XMH_!O"0BA@)@*"(D$).A65/W_B=HI\HE<)`B)="0$B50D#(D$).C>30``BUWX -XMBW7\B>Q=PXUT)@!5B>6+10B%P'0)H>QO"0B%P'0"7<-=Z7%X_/^0C70F`%6X -XM`@```(GE@^P8BQ7H=@H(A=)U!:$$=@H(QT0D"`X```#'1"0$J1()"(D$).CJ -XM6#[!B)=?R+=0P/KW4(B5WXA?9U!&:^`0"+ -XM#?1O"0B%R70UB30DZ$]W_/^%P(G#="")="0(B1PDQT0D!`````#H=73\_XG8 -XMBW7\BUWXB>Q=P^AH____Z]G'!"0`````Z,9U_/^C]&\)".NXC78`58GE4X/L -XM!(M="(7;=0*S`:'T;PD(A6#[!B)7?B+70R)=?R+ -XM=0B%VW4"LP&A]&\)"(7`=$&%]G0>B5PD!(DT).@K;HJO[__XG8BW7\BUWXB>Q=P\<$)`````#H -XM_G3\_Z/T;PD(ZZR0D)"0D)"0D)"0D%6)Y8/L&*&`F`H(QT0D#+@2"0C'1"0( -XM#````,=$)`04````B00DZ&52_?^)!"3H_4L``*&`F`H(QT0D#.@2"0C'1"0( -XM#0```,=$)`04````B00DZ#A2_?^)!"3HT$L``*&`F`H(QT0D#!P3"0C'1"0( -XM#@```,=$)`04````B00DZ`M2_?^)!"3HHTL``*&`F`H(QT0D#%03"0C'1"0( -XM#P```,=$)`04````B00DZ-Y1_?^)!"3H=DL``*&`F`H(QT0D#)03"0C'1"0( -XM$````,=$)`04````B00DZ+%1_?^)!"3H24L``*&`F`H(QT0D#-03"0C'1"0( -XM$0```,=$)`04````B00DZ(11_?^)!"3H'$L``*&`F`H(QT0D#/P3"0C'1"0( -XM$@```,=$)`04````B00DZ%=1_?^)!"3H[TH``*&`F`H(QT0D#"@4"0C'1"0( -XM$P```,=$)`04````B00DZ"I1_?^)!"3HPDH``*&`F`H(QT0D#&`4"0C'1"0( -XM%````,=$)`04````B00DZ/U0_?^)!"3HE4H``*&`F`H(QT0D#)04"0C'1"0( -XM%0```,=$)`04````B00DZ-!0_?^)!"3H:$H``*&`F`H(QT0D#+04"0C'1"0( -XM%@```,=$)`04````B00DZ*-0_?^)!"3H.TH``*&`F`H(QT0D#.P4"0C'1"0( -XM%P```,=$)`04````B00DZ'90_?^)!"3H#DH``*&`F`H(QT0D#!P5"0C'1"0( -XM&````,=$)`04````B00DZ$E0_?^)!"3HX4D``,<$)`&Z"`CHU4D``*&`F`H( -XMQT0D#$P5"0C'1"0(&0```,=$)`04````B00DZ!!0_?^)!"3HJ$D``*&`F`H( -XMQT0D#'P5"0C'1"0(&@```,=$)`04````B00DZ.-/_?^)!"3H>TD``,G#B?:- -XMO"<`````58GE4XG#@^P4H8"8"@C'1"0,T!4)",=$)`@$````QT0D!!0```") -XM!"3HHD_]_XE<)`2)!"3H-DD``(/$%%M=PU6)Y5=64XG3@^P\B470C47LB47< -XMC47DB57LB4W,B474C47`!````QT78`0`` -XM`,=$)`1H/0D(B00DZ#[J___'1"0$,"H("(G'B00DZ'SP_/^+1=`/MA08@/H! -XM#X3O````H>"E"PB%P'0E#[;2ON"E"P@Y%>2E"PAT?K[@I0L(ZP4Y5@1T57B==6B<93@^PLQT7D```` -XM`,=%Z`````#'1>P`````BP"%P`^$L0```(U=Y,=$)`2PD0@(B1PDZ+'N_/^) -XM=?"+!H7`=%.-=?#K(XUV`(/X7G0EB40D!(D<).AO80``BT7P@\`$B47PBP"% -XMP'0K)?__/P"#^%QUUHDT).@.Z___@_C_=2)!"3H -XMQ?G__XD'BT7HB4<$@\0LB?A;7E]=PZ&`F`H(,?_'1"0,018)",=$)`@%```` -XMQT0D!!0```")!"3HG$S]_XD$).@T1@``@\0LB?A;7E]=PXUV`(V\)P````!5 -XMB>575E.#[%RA/&0)"(M]"(7`#X2+````C4<$B46TBU\$A=L/A,T#``"+`R7_ -XM_S\`@_@M#X6U`@``BT,$)?__/P"#^"T/A'T#``"-5PBY`0```,=%O,"K"PC' -XM1<``````QT7$`````,=%R`````#'1 -XM7UW#D(UT)@#_)(48%PD(Z`1'__^#Q%Q;7E]=P^CW2/__Z6O____'1<`"```` -XMBQJ#P0&)UH7;#X0S`P``BP,E__\_`(/X+0^%T@(``(M#!(U6!"7__S\`@_@M -XM=9*-40&-!)4`````C30'BQZ%VP^$_`(``(/"`8E5T(M%R(7`#X4=`@``BTW, -XMA*?````C478B50D!(D$).C\7@``C478B00DZ,'K_/^-5=B) -XM%"3H9NO\_XU-V(D,).@[7P``BT7<@\`!P>`"B40D!(M%V(D$).B#]___B47L -XMBT7R)!"3HQ^O\_XM%[(L0@?K_````B56X#X]T`0`` -XMBT7$A<`/A#(!``"+?R)!"3HF.'__XM% -XM[(D$).C=ZOS_Z2O^___'1<@!````D.E0_O__QT7$`0```(UT)@#I0/[__\=% -XMP`$```"-="8`Z3#^___H1D?__X/$7%M>7UW#QT6\P*0+".D7_O__QT7,`0`` -XM`.D+_O__BQ7@I0L(,=N%T@^$R?W__XVV`````(N#Z*4+"(E4)`3'!"1<%@D( -XMB40D".A&0P``BY/LI0L(@\,,A=)UV8/$7%M>7UW#QT6\P*L+",=%P`````#' -XM1<0`````QT7(`````,=%T`(```"-5>R)V.C$^___A<`/A=+^___I6OW__XD< -XM)(UT)@#HJ\3__X7`#X3:`@``BP:)!"3H26$``(E%[(D$).@::/S_B47PZ9S^ -XM__^+3="+1="+-(_!X`*%]@^$H`,``(M5M(L<`H7;#X3C`@``Z&_V__^+1>R) -XM!"3HI.G\_^GR_/__Z!KY__^+1>R)!"3HC^G\_^G=_/__@\$!B4W0Z5#]__^) -XMV.CX^/__C478B00DZ&WI_/_IN_S__[H"````L`C'1;S`JPL(QT7``````,=% -XMQ`````#'1<@`````QT7,`````.GW_/__H8"8"@@QV\=%V`````#'1=P````` -XMQT0D#&T6"0C'1"0(!@```,=$)`04````B00DZ%1(_?^)!"3H[$$``#'2#[:" -XMP*L+"#J#P*L+"'0/C4O_N,"K"PCHGOC__XG:@\,!@?L``0``==>Y_P```+C` -XMJPL(Z(+X__^A@)@*"&8QV\=$)`R$%@D(QT0D"`<```#'1"0$%````(D$).CJ -XM1_W_B00DZ()!```QT@^V@L"D"P@Z@\"D"PAT#XU+_[C`I`L(Z#3X__^)VH/# -XM`8'[``$``'77N?\```"XP*0+".@8^/__H8"8"@C'1"0,GA8)",=$)`@(```` -XMQT0D!!0```")!"3H@T?]_XD$).@;00``QP0D`````.COZO__H8"8"@C'1"0, -XMN!8)",=$)`@)````QT0D!!0```")!"3H2D?]_XD$).CB0```C478B00DZ$?# -XM___I-?O__X-[!"T/A5G^__^+0PB-@,``(U%V(D$),=$)`0;````Z.E:``"+!HU5V(D4 -XM)(E$)`3HV%H``.G7^___C578QT0D!!L```")%"3HP%H``(U-V(ET)`2)#"3H -XM(5T``.FP^___@_@_NG\````/A8O[___ICOO__Z&`F`H(BQ['1"0,S!8)",=$ -XM)`@!````QT0D!!0```")!"3H0D;]_XE<)`2)!"3HUC\``.GN_/__C47LB00D -XMZ";!___IZ?O__X-]P``/A>X```"+'>"E"PB_X*4+"(7;=17I?0$``(UV`(/' -XM#(L?A=L/A&T!``")-"3H&V```(E<)`2)!"3HNV?\_X7`==L/ME\$A-L/A)?[ -XM__^+5<@/ML.%T@^%A0(``(-]\`$/CJH"``")!"3H?]O__\=$)`@`````B40D -XM!(U%[(D$).CHWO__BT6\BU6XQ@00->E1^___BUV\`UVX@#LU#X0J`0``Q@,! -XMZ3K[__^+=R)!"3HS^C__^D2^___ -XMC4W8B70D!(D,).AK60``Z6KZ__^)-"3HFF/\_^D'^O__#XP;_O__@WW``@^/ -XM$?[__XU=Y(GPB=KH;??__X7`#X3-^O__QT0D!#`J"`B+1>2)!"3H0N;\_XM- -XMR(7)#X2L````B1PDZ,_:__^+3<")3"0(B40D!(U%[(D$).AIP/__@\`!#X0U -XM`0``BT7DB00DZ+7E_/^+5;R+3;C&!`HUBT7LB00DZ%#E_/_HV[C__^F9^/__ -XMC47LB00DZ)O`___I3OK__Z&`F`H(QT0D#/\6"0C'1"0(`P```,=$)`04```` -XMB00DZ&%$_?^)="0$B00DZ/4]``#I&/K__XU%[(D$).BEV___Q@,!B?;I`_K_ -XM_XD<).@CVO__BU7`B50D"(E$)`2-1>R)!"3H;=W__XM%N(M-O,8$`36+1>R) -XM!"3HN.3\_^D&^/__C47LQT0D!&@]"0B)!"3H\-[__\=$)`0P*@@(B<:)!"3H -XM+N7\_XL5X*4+"(72=#LQV^L-BY/LI0L(@\,,A=)T*HM%[(M-O(L`#[8$"#F# -XMY*4+"'7?B50D"(ET)`3'!"3C%@D(Z#L]``#KR8DT).A!Y/S_D.E3^?__H8"8 -XM"@B+7>S'1"0,[18)",=$)`@"````QT0D!!0```")!"3H8T/]_XE<)`2)!"3H -XM]SP``.F=_O__#("-3=B)1"0$B0PDZ'%7``#IR)!"3HPN/\_^EM_O__C47LB40D!(M-O(D, -XM).C+VO__BT6\BU6XB!P0Z;7X__^0D)"0D)"0D)"0D)"053'`B>5=PXGVC;PG -XM`````%4QP(GE7<<%_&\)"`````##D)"0D)"0D)"0D)"0D)"058M*"(GEB5`$ -XMB4@(B4((BU`(B4($7<.)]HV\)P````!5B>56B=93BPB)TX7)="60BQ.%TG0> -XM.=%T/(VV`````(/Y('0;@\`$BPB%R77RA_/^) -XMP^EX____C;8`````58GE5U93@>P<(0``C46TC5VLQT74`````,=%V`````#' -XM1=P`````QT6L`````(D$).AF9/S_QT6P`````,=$)`@`````B5PD!,<$)!0` -XM``#H1V/\_XU%X(D$).B`*O[_Z(=?_/^%P(G'#X4V`0``BT7@C5W$B00DZ*/D -XM_?_'1"0$H$$(",<$)`X```#H>V/\_XD<).@#9/S_B1PDQT0D!`X```#H`U_\ -XM_XE<)`2-G0S____'1"0(`````,<$)`(```#HE5[\_\<$)`(```#HZ6/\_XM% -XMY,=%[(````")7"0$B84`W___C47LB40D"*&T=@H(B00DZ/%A_/^#P`%T%P^V -XMA0W___\\'`^$H@$``#P"#X2:`0``Z*1G``"%P(G&='(/M@"$P'1K/#IT9\=$ -XM)`0Z````B30DZ$]@_/^%P(G#=`/&``")-"2)]^@\8?S_@\`!#X2E`0``B3PD -XMZ*MD_/^%P(G#=0OK*XVT)@`````!QXN%`-___XE<)`B)?"0$B00DZ(C@_?^% -XMP`^(8@$``"G#==S'!"0`````D(UT)@#H-V/\_XM%Y(V=#-___XD$).AJX_W_ -XMZQN%P`^$KP```(E$)`B-1=2)7"0$B00DZ%U6``"+1>#'1"0(`"```(E<)`2) -XM!"3HQN#]_X/X_W7)QT78`````,>%_-[__P$```"+1>"-=?")!"3H$N/]_^L5 -XMZ*=@_/^#.`1U*(VV`````.B[4```BX7\WO__B70D!(D\)(E$)`CH@5W\_X/X -XM_XG#=,Z-1=3'1"0$T)$("(D$).A;X/S_.=]T(HU%U(D$).BLW_S_@<0<(0`` -XM6UY?7__\`````ZX6+1?"H?W77P?@(AR_('`)",=$)!@"````QT0D -XM%`````#'1"00`````,=$)`P!!```QT0D""!P"0B)1"0$B1PDZ#]@_/_I9_[_ -XM_\<$)`$```#HWF'\_SG>#X2._O__C46,N0@```")A?C>__^+O?C>__\QP/S' -XM1>@`````\ZO'19``````QT64`0```,=%C`,```")-"3HR6+\_XG#Z(9>```Y -XMPP^#K0```(U%Z(E$)`R-18R)1"0(QT0D!`````")-"3H+&/\_X7`=$C'1>@` -XM````Z13^__^)1"0$B30DZ*3F_?_'1"0$`````(G#C47HB40D#(U%C(E$)`B) -XM'"3H\&+\_XD<)(/X`1G`(47HZ'3I__^+1>B%P`^$S?W__XM0%(72#X2R```` -XMB50D!+\@<`D(QT0D"`$$``#'!"0@<`D(Z&U=_/^+1>B)!"3H\F#\_^E:_?__ -XMC9T,W___QT0D!``!``")'"3H5V'\_X7`=:/&A0O@__\`QT0D!"X```")'"3H -XM7%W\_X7`B<=TAL=$)`0N````B30DZ$9=_/^%P`^$;O___X!X`0"-6`%T%(E$ -XM)`2)/"3HJ5[\_X7`#X45____QT0D!"X```")'"3H$5W\_X7`=<_I./___XD$ -XM).A@8/S_C70F`.G__/__C70F`(V\)P````!5B>6#[`C'!"0!````Z"I@_/^- -XMM"8`````C;PG`````%6)Y8/L&(M%"(E=](EU^(E]_(D$).BV5@``B00DZ.[E -XM_?^)QHM%#(D$).BA5@``B00DZ-GE_?^)P^B^7?S_QP``````B5PD!(DT).B< -XM7/S_BQ= -XMPY"-="8`B30DZ.CG__^)'"3HX.?__^AG7?S_BP")!"3H#5O\_\=$)`1(&`D( -XMQP0D-@```(E$)`CH2=K\_^NCC;0F`````%6)Y8/L&(M%#(/X!`^$@````(/X -XM(W0,@\`!=`?)N/_____#QT4,`````,=$)`@`````QT0D!`,```"+10B)!"3H -XM=UG\_X/X_W32@^#[B44,B40D",=$)`0$````BT4(B00DZ%59_/^#P`%TL(U% -XM#,=%#`````")1"0(QT0D!'YF!("+10B)!"3H'UK\_X/``72*R3'`PXUV`(V\ -XM)P````!5B>575E.#[!R+70B%VP^$U````(M%"(L`B47LQT0D!,28"@C'!"20 -XM+PD(Z,!#_O\]^&\)"(G#="&)!"3HZUG\_XE<)`2)1"0(BU7LB<:)%"3HAEO\ -XM_X7`=&NA`'`)"(7`B47P=%6+'21T"0@Q_XGVBW,(B70D"(M#!(E$)`2+1>R) -XM!"3H4UO\_X7`=2.+1>R-%+"+`H/X+W0$A7UW#BPT`<`D(A575E.#[!R+50B+`H/X*P^$I@```(/X+0^$G0```(L= -XM)'0)"(7;#X1F`0``H0!P"0B+-21T"0B-!$"-/(8Y_G-CBT4(BP")1?#K#HUV -XM`(7`>$R-7UW#C78`B=\Y_G*UBT4( -XMB00DZ(]1``")!"3HY]G]_X7`=1+'1>P`````BT7L@\0<6UY?7<.+0!R)!"3H -XMEE,``(D$).@^3P``A<")1>QTVXL=`'`)"(M5"(T<6\'C`HD4)`,=)'0)".@: -XM3P``B0.A`'`)"(M5[(L])'0)"(T$0(E4AP2+-0!P"0B)%"3HT57\_XT<=H/& -XM`<'C`HE$.PB)-0!P"0C'1"0,,$8(",=$)`@,````B70D!(D\).A"5/S_H0!P -XM"0@[!9A-"0@/A5G___^#P`JCF$T)"(T$0,'@`HE$)`2A)'0)"(D$).AVX___ -XMHR1T"0CI,/___\<$)'@```#H$./__Z,D=`D(Z83^__^-M@````!5B>575E.# -XM["S'1"0$Q)@*",<$)"`^"0CH\S[^_XE%W,=$)`3$F`H(QP0D8#X)".C#H4_/__PG#B47D="R+'0"8"@B%VW0B -XMB?:+0WB)-"2)1"0$Z#'6_?^%P'0'BT,4A+!H/X.W01.7T(=-^+ -XM?PB+-XL&@_@[=>^+?P@Y?0AUUX/$+%M>7UW#QP0DF#X)".@]5/S_B47HBP>) -XM!"3H,%3\_XE%[(T$A00```")1"0$QP0D`0```.A:X?__B47PBP>)1"0$BU7P -XMB10DZ`)3_/^+=>2%]@^$,P(``(L'B00DZ-'@___'1"0$%````,<$)`$```#H -XM'>'__XD'QT0D!(`R"0B)!"3HQU+\_\=$)`0,````QP0D`0```.CWX/__QT0D -XM!!@```#'!"0!````B<;HX>#__XD&QT0D!+0^"0B)!"3HBU+\_XGPB?KHYO'_ -XM_XL&BP"#^`IT$8/X.W0,BW8(BP:+`(/X"G7OQT0D!`P```#'!"0!````Z)C@ -XM___'1"0$"````,<$)`$```")P^B"X/__B0/'1"0$P#T)"(D$).@L4OS_BU8$ -XMB=CHAO'__\=$)`0,````QP0D`0```.A2X/__QT0D!`@```#'!"0!````B) -XM!"3HGM[__XM5[,<$)`$```"-!)4(````B40D!.CDWO__B0?'`"4```"+1?") -XM1"0$BP>#P`2)!"3HA%#\_XM?"(L+BP&#^#L/E<*#^`IT>X32='V#Q"Q;7E]=PXG?Z6'\__^-="8`58GE5U93@^P\QT0D -XM!,28"@C'!"3D2`D(Z#,Z_O^%P`^$[````(M%"(MX"(L'@S@[#X3C````.7T( -XM#X32````QT78`````,=%W`````#'1"0$`$D)"(L'B00DZ-U/_/^%P`^%XP$` -XM`(M7"(E5U(L2BP*#^"V)1>`/A+$```"#?>`MBW74#X3Z````BT78A`[#X2/`0``BWW4.7T(#X2#`0``BW\(BP>+`(/X.XE%X'08 -XM.7T(#X1N`0``BW\(BP>+`(/X.XE%X'7HBW\(.7T(#X4\____@\0\6UY?7<,Y -XM?0AT\XM_"(L'@S@[#X4*____Z^N+3=R%R0^%1/___XMUU(M%W(M*!(7`#Y3` -XMA)TX/Y:0^4PH/Y9HM+"`^4P`G0@^`!B47<#Y3`@\,$A"#?>`[#X5Q_O__BWW4@WW@.P^%FO[__^F2_O__A,`/A=;^__^0C70F`.GQ -XM_O__BP>+`(/X"G1Z@_@[='4Y?0AT<(G[ZPV#^#N0=#LY=0AT+XGSBU,$BT,( -XMB4((BT,(B5`$BP.)!"3H#MO__XMS"(D<).@#V___BPZ+`8/X"G7&@_@[=2:+ -XM#HM6!(M&"(E""(M&"(E0!(D,).C7<,YUG;CZ]20C70F`#'VZYS'!2AT"0C04`@(BQ.)QHM"!(7` -XM#X5/____ZX&0A?8/A'C___\IQHVV`````.EK____B<;'!2AT"0A040@(Z5K_ -XM__^-=@"-O"<`````58GE@^P(_Q4H=`D(QP0D`0```.BH_O__R<.-M@````!5 -XMB>6#[!C'!"16&`D(Z!XG``"AY)D+"(7`=`7H\$___Z&T=@H(B00DZ"/1_?_' -XM1"0(`@```,=$)`1@+@D(QP0D`"X)".CG/O[_QT0D!`````#'!"0`````QP7D -XM=0D(`0```,<%A'<*"`````#HGVW\_\G#C;8`````C;PG`````%6)Y5=64X/L -XM?*$LF0L(B00DZ#K/_?^%P(E%D`^$PP$``(MX!(7_#X2X`0``QP0D`````(UU -XM\^CE_?__QP0D"@```.B)Z?W_QT6,`````,=%M`$```"-1;R)!"3H[$_\_XU% -XMG,=%N`````")1"0(C46TB40D!,<$)`(```#HRT[\_XU%S(D$).C`3_S_C47, -XMQT0D!`(```")!"3HO4K\_XU%W(E$)`B-1!0CHE,W\_XU%W(D$),=$)`1@'@4(Z('-_/_HK$___\=$)`0" -XM````QP0D8Q@)".BXS?W_B47L@\`!#X7M````H;1V"@B)1>S'1"0$;!@)",<$ -XM)/O>"`CHD"4``.A[YOW_QP4P=`D(`````.L;#[9%\SP*="X/OL")1"0$QP0D -XM+'0)".C$0```QT0D"`$```")="0$BT7LB00DZ/W,_?^%P'_*QP0D+'0)".C] -XM0```C46TB00DZ$+,_/^+'2QT"0B)?"0$B1PDZ,Q,_/^)?"0$B00DZ%!-_/^% -XMP'1IBT60BQBA@)@*",=$)`QV&`D(QT0D"`(```#'1"0$%@```(D$).A&*_W_ -XMB5PD!(D$).C:)```@T6,`8-]C`4/A6K^___HE_W__X/$?%M>7UW#C47LQT0D -XM!$`>!0B)!"3H7,S\_^D#____B1PDZ*M/_/_'1"0$`````(D<)(E$)`CHUTO\ -XM_Z&$=PH(A2A*)H+"(E%X*$DF@L(B47"0B%P'02B00DZ/?5___'!8!>"0@`````QT7L^&\)",=$)`0,````QP0D -XM`0```.@RUO__B<:+10R)!"3H!4(``(D&@WT(`0^$``(``,=$)`0,````QP0D -XM`0```.@%UO__B<.+11")!"3HV$$``(ES!(EU](E=\(E>"(D#C47LB4,(B48$ -XMC5WLQT0D!)#I!0B)'"3H[LK\_\=$)`3$F`H(QP0D]"X)".@Z,O[_B00DZ$(P -XM_O^)'"2)1;#HA^/]_XM%],=$)`@`````B5PD!(D$).@`X/W_QT0D!$`K!@B) -XM1:R)!"3HGR)!"3HX\C\_^@^[_W_BT6PB00DZ',Q_O_'1"0(`@`` -XM`,<$)/0N"0B)1"0$Z&LY_O^#Q&!;7EW#C70F`.@K!```Z[OH!`4``*$\=`D( -XMAOIC47LB77PB77TB48$B48(Z23^__^0C70F`%6)Y8/L&(E=^(EU_(MU -XM"(,%Q*P+"`''1"0$L)`(",<$),2L"PCH]LC\_XL=0'0)"(7;=3.+#>"9"PC' -XM!4!T"0@!````AQ=Z1G(_/_' -XM1"0(U#<)",=$)`2`-PD(QP0D`@```.BM_/__QT0D#/08"0C'1"0(#@```,=$ -XM)`06````H8"8"@B)!"3H*"?]_XD$).C`(```ZY;'1"0$E'8*",<$)-0W"0CH -XM6B_^_X7`#X1Z____BQV`=PH(B70D",=$)`34-PD(QP0D`@```.A$_/__B1V` -XM=PH(Z5'___^)]HV\)P````!5B>53@^PDQT0D!+"0"`B#!<2L"P@!QP0DQ*P+ -XM".C^Q_S_H41T"0B%P'4UH>"9"PC'!41T"0@!````A"9"PC'!4QT"0@!````A6#[!C'1"0$L)`("(,%Q*P+"`''!"3$ -XMK`L(Z/_$_/^+#3QT"0B%R74LBQ7@F0L(QP4\=`D(`0```(72=&/'!"3$K`L( -XMQP4\=`D(`````.@KQ/S_R"+%0B:"PB)1=RA!)H+"(E5V(L5`)H+"(E%U*&$=PH( -XMB570BQ7`F`H(QP6$=PH(`````(E%R(E5Q.@MO_S_QP0D`)H+"(E%S.C*0/S_ -XMA<`/A)P```#'!"0!````Z&KR__^+52)%1B: -XM"PB+5>"C%)H+"(M%W(D5$)H+"(M5V*,,F@L(BT74B14(F@L(BU70HP2:"PB+ -XM1<2)%0":"PB+5?]_\<$)`````#H%43\ -XM_XM%",<%R*P+"`$```#'1"0$`0```(D$).@L\/W_A,<$)(0` -XM``")1"0$Z+6^_/_KNXUV`%6)Y8/L6(U%Z(E%Y(U5W(E%U(M%"(EU^(UUT(E= -XM](E]_(M]#(E5V(EU\(EUX(E5[,=%T/AO"0C'1>CH10D(QT0D!)1V"@B)!"3H -XM4BC^_X7`B<-T+(L`A564X/L$*%@90D(BUT(AB7E/__BT,$B00DZ/PX``") -XM!"3H-,C]_\=$)`0P*@@(B<:)!"3H`L#\_XM#"(D$).C7.```B00DZ`_(_?_' -XM1"0$,"H("(G#B00DZ-V__/^)7"0$B30DZ$&M__^)=0B#Q!!;7EWI([_\_XUV -XM`%6)Y5.#[`2A8&4)"(M="(7`=07H&)3__XU#!(E%"(/$!%M=Z=BE__^0C;0F -XM`````%6)Y8/L"*%@90D(ACLD___R>D6L/__C;8`````58GE5U93@>R< -XM````BT4(C5`$BT`$A<`/A(@%``")%"3HNVO]_XE%@(D$),=$)`3P(P8(Z#B_ -XM_/^+58"+`H7`="*#."T/A*T"``")T.L.B?:#P`2#.BT/A)L"``"+4`2%TG7M -XMQT7H`````(U-Z,=%[`````#'1?``````QT0D!+"1"`B)#"3HY;[\_XM%@(L0 -XMA=(/A`0&```Q_\>%=/___P````#'A7C___\!````ZV>)-"3HF#<``(U5B(E4 -XM)`2)!"3H)3[\_X/``0^$L@$```^W19"+G7C___\E`/```#T`0```#X2````` -XMB30DZ-Z]_/^+C73___^+18"+5(@$@\$!@X5X____`8F-=/___X72#X0Q!``` -XM,<"#/=B7"@@"B10D#Y3`B40D!.C1COS_QT0D!#`J"`B)QHD$).@OOOS_B30D -XMZ,/POC5#\#X5:____.=8/A%+____'0/P`````Z4;___\YO73___]T -XM,H7_#X4:!```QT0D#`````"+A73___\I^(E$)`B+58#'!"3X;PD(C02ZB40D -XM!.BL;?[_BY5T____A=)T%HM-@(M!!(7`=`S'!"0*````Z!S9_?^)="0$QP0D -XMJQ@)".CL%0``QT7L`````(L&AB+1>R#Z@2-!(*!."\``$`/A,@```"- -XM3>C'1"0$+P```(D,).@9,```C47HB00DZ&XP``"-5>C'1"04`````,=$)!#X -XM;PD(QT0D#`````#'1"0(_P\``,=$)`0`````B10DZ#N._O^+O7C___^)^^EH -XM_O__Z/4\_/\YO73___^+&'0RA?\/A7\#``#'1"0,`````(N%=/___RGXB40D -XM"(M-@,<$)/AO"0B-!+F)1"0$Z(UL_O^)'"3H83K\_XET)`3'!"2B&`D(B40D -XM".CA%```B[UX____B?OI_OW__\<`+P```.E+____H91W"@B%P`^%)0,``*&` -XM7@D(AB)4`B)1>R)%"3'1"0$D.D% -XM".C/NOS_C47HQT0D"`````")1"0$BT7PB00DZ`70_?_'1"0$0"L&"(G#B00D -XMZ*.Z_/^+-8!>"0B%]G0,QP0D````0.B=M_S_BQ74EPH(,<#'1"00`````,=$ -XM)`P`````QT0D"`````"%T@^?P(/H`0G"B50D!(D<).A7!/[_C57HB10DZ*RY -XM_/^+#91W"@B%R0^%2`$``(M%@(D$).B3N?S_@<2<````6UY?7<.-5>B)%"3H -XM?;G\_SG[=-N%_P^%+`$``"G[QT0D#`````")7"0(BTV`QP0D^&\)"(T$N8E$ -XM)`3HS6G^_^NMQP5$3`D(>````.D,_O__QP0D"@```.A`U?W_Z=7[__^-7>C' -XM1>@`````QT7L`````,=%\`````")'"3HZRP``(D<),=$)`2PD0@(Z)NY_/^) -XM'"3'1"04`````,=$)!#X;PD(QT0D#`````#'1"0(_P\``,=$)`0`````Z*N* -XM_O^)'"3HP[C\_X'$G````%M>7UW#QP0D"@```.B\U/W_Z7#\__^#!<2L"P@! -XMQT0D!+"0"`C'!"3$K`L(Z"RY_/_IN_S__\=$)`0,````QP0D`0```.CSP___ -XMQP0D@$P)"(G#Z,4O``")7PB)>P2)WXD#Z;#]___'!"3$K`L(Z$JX_/_II_[_ -XM_\<$)`H```#H2=3]_^G#_O__C57HB10DZ"FX_/_IAO[__XUT)@!5B>575E.# -XM["R+10C'1>@`````QT7L`````,=%\`````"%P`^$\````(MP"#G>```` -XMBT`$.?")1>`/A-<```#'1=@`````C7WHQT7<`````(M%##E%W'QXBU40.57< -XM?W"+'HL#ASKZ(U%Z(D$).B<*@``@\0L6UY?7<.-="8`58GE@^P8BT4(QT0D"/___W_' -XM1"0$`````(D$).BO_O__R<.-M@````"-O"<`````58GE5U93@^PLQP0DL!@) -XM".AG,_S_A<")1>0/A.8!``"+1>3'1"0$+P```(D$).A)-OS_AB+7>@/M@/'1?``````A,!T+HL5W%T)"(L-X%T)"(GV#[;`.=!] -XM!_9$@35`=1*#1?`!BW7PBUWH#[8$'H3`=>"+=>0/M@;'1>P`````A,!T+XL5 -XMW%T)"(L-X%T)"(UV``^VP#G0?0?V1($U0'42@T7L`8M=[(MUY`^V!#.$P'7@ -XMH3QW"@@QVX7`#X3=````BQT`F`H(A=L/A,\```#'1>``````ZPJ+&X7;#X2Y -XM````BT,8.T,<=>Z+0PPE'R```#T`(```=`J#^`)T!8/X$'75BT-XB00DZ/0N -XM``")QP^V`(GZA,!T)(L-W%T)"(LUX%T)"`^VP#G(?0?V1(8U0'4*@\(!#[8" -XMA,!UZ,8"`(G^QT0D!"\```")/"3H[#3\_X7`=`.-<`&+1>R+5>2)="0$B40D -XM"(D4).A_,OS_A"#Q"R)V%M>7UW#BT7PBU7HB70D!(E$)`B)%"3H,#+\_X7` -XM#X42____ZZO'1>1-&PD(C78`Z2C^___'1>B^&`D(Z5#^__^0D)"0D)"0D)"0 -XMD)"0D)!5N@$```")Y8/L"(M-"/?!```@`'4J,-*%R70D@?G_````=SRAX%T) -XM"(M$B#2)PH'B````X'0-P>H>C;8`````R8G0PR4```0`@_@!&<"#R`&)PL'Z -XM'\GWTB'"B=##B?:)#"3HY#'\_^O#C;8`````58GE5U93@^P,BT4(BQB%VP^$ -XMI0```(L]X%T)"(G&ZRKWPP```$!U&('[_P```'=CBT2?-/;$$'5GC;0F```` -XM`(M>!(/&!(7;='&+10R%P'3/]\,```!`=>>!^_\```"0=T^+1)\T9H7`>=6! -XM^_\```!W4HN7UW#B1PDZ$$Q -XM_/_VQ!!TH('[_P```'6#[!B)=?R+=0B)7?CWQ@`` -XM(`!T$;O\____B=B+=?R+7?B)[%W#B30DZ(#^__^%P(G##XZ[````]\8```!` -XM==J!_O\````/AYD```"AX%T)"(M$L#3VQ`)TP(GP)?__/P`]_P```'^R@?[_ -XM````#X>/````H>!="0B+1+`TJ0``!`!T!XM5#(72=(^!_O\````/AWP```"A -XMX%T)"(M$L#3VQ`)T#HGP)?__/P`]_P```'YP@?[___\`N_G___\/CU;___^! -XM_O__``"S^@^/2/___X'^_P```+/[#XXU____Z37___^)-"3H#3#\_Y#I8O__ -XM__?&````0'6XC78`Z67___^)-"3H[R_\_XUV`.EJ____B30DZ-\O_/^-=@#I -XM??___X/^"KO]____#X3I_O__,=N#_@D/E<.#ZP+IV?[__XVV`````(V\)P`` -XM``!5B>575C'V4X/L#(M5"(L"AH> -XM@\,$`=:%P'7<@\0,B?!;7E]=PY"-="8`B00DZ#0O_/_KSI"0D)"0D%6)Y5W# -XMD)"0D)"0D)"0D)"A4'0)"#D%5'0)"%6)Y700#[95"(@0@\`!7:-0=`D(P\8` -XM`%W#C70F`(V\)P````!5B>575E.)RX'LC````(E%A`^V`H3`#X0(`0``B56, -XMQT6L`````.LD#[;`"T6LB00D_U6$B5W0@T6,`8M5C`^V`H3`#X3;````BUW0 -XM/"5UV(-%C`&+58P/M@+'19P`````/"T/A',!```\,`^$O@```#PNQD6;(`^$ -XML@```#PJD`^$OP````^VT(/Z?W<.]@25O5$)"`0/A?T$``#'1:``````/"X/ -XMA+0```#'1:3___]_,?\\(P^$;@$``#'2/&P/A#P!```QR3QZ#X0A`0``#[;` -XM@_A3B464="6#^%%T(#L%W%T)"'T8H>!="0B+=91F@WRP-``/B$$!``"-="8` -XMBT64@^@E@_A3#X;&````@T6,`8M5C(E=T`^V`H3`#X4E____@<2,````6UY? -XM7<.#18P!BTV,#[8!QD6;,#PJ#X5!____BS.#PP2#18P!BU6,B76@#[8"/"X/ -XMA4S___^#18P!BTV,#[8!/"H/A'0$```/MM"#^G\/AR[____V!)6]40D(!`^$ -XM(/___XM%C(D$).C&*_S_BU6,B46D#[8"#[;0@_I_=A_I!O___XUT)@"#18P! -XMBTV,#[8!#[;0@_I_#X?L_O__]@25O5$)"`1UX.G=_O___R2%P!D)"(/"`8E5 -XMC`^V`L=%G`$```#I>/[__X-%C`&Q`8MUC`^V!NG._O__@T6,`8M5C`^V`KH! -XM````/&P/A:W^__^#18P!L@*+38P/M@'IG/[__X-%C`%FOP$`BW6,#[8&Z7_^ -XM__^+A+`T!```N@$```")193IK_[__XUS!(EUT(L;A=N)79`/A`$$``")'"3H -XM`"W\_XM]H"G'BT6FW^O__C477B85X____B47,B1PDB70D!,=$)`@*````QT0D -XM#`````#H738``(M-S(/`,(@!@\$!B1PDB70D!,=$)`@*````QT0D#`````") -XM3)A7C___^)QXD<)(ET)`3'1"0("@```,=$)`P````` -XMZ&XX``"#P#"(!X/'`8D<)(ET)`3'1"0("@```,=$)`P`````Z&HZ``"#^@") -XMPXG6?[=\!8/X`'>PBUVHA=N0C70F`'0&Q@/___W;IBT6/___XE5S(M5S(G8@^`'#ZSS`X/`,,'N`XGQB`*# -XMP@$)V8E5S'7@A?]T&8MUS,8&,(/&`8GP*X5X____B77,Z7/\__^)T"N%>/__ -XM_^EF_/__C5,$B570BP.)QHG#P?X?Z7K^__^-0P0Q]HE%T(L;Z1?\__^-2P2) -XM3="+`\=%J`````")QHG#P?X?A?8/B5S^___WVX/6`/?>QT6H`0```.E)_O__ -XMJ0```$`/A&OZ__^+A7S___^)!"3_583I6OK__XU-V.LA@\`PB$'_B4W,B?*) -XMV`^LT`2#P0'!Z@2)PXG0B=8)V'05B=B#X`^#^`E^U8/`5XA!_XE-S.O3A?]U -XM$XM%S(U5UXF5>/___RG0Z:3[__^+3/___^F"^___B6#[`B+10B+ -XM312+51"C4'0)"`-%#(/H`:-4=`D(N+!M"`CH%_;__Z%0=`D(Q@``@\`!HU!T -XM"0C)PY"-="8`5;@@.P8(B>6+50B+30Q=Z>SU__^-M@````"-OP````!5N"`[ -XM!@B)Y8/L&(M5"(U-#(E-_.C']?__R<.0C70F`%6)Y8/L&(M%"(U-%(M5$(E- -XM_*-0=`D(`T4,@^@!HU1T"0BXL&T(".B4]?__H5!T"0C&``"#P`&C4'0)",G# -XMD)!5B>5=QP6`=`D($!L)",<%A'0)"!0;"0C'!8AT"0@8&PD(QP6,=`D('!L) -XM",<%D'0)""`;"0C'!91T"0@D&PD(QP68=`D(*!L)",<%G'0)""P;"0C'!:!T -XM"0@P&PD(QP6D=`D(-!L)",<%J'0)"#@;"0C'!:QT"0@\&PD(QP6P=`D(0!L) -XM",<%M'0)"$0;"0C'!;AT"0A(&PD(QP6\=`D(3!L)",<%P'0)"%`;"0C'!<1T -XM"0A4&PD(QP7(=`D(6!L)",.-M@````"-O"<`````58GE5U8Q]E.#["R+10R+ -XM.(D\).@$)/S_C02%!````(D$).BIL?__QT7P`````(E%[.L6H>!="0B+1)`T -XM]L0%=06#^U]U4H/&`8M%[(/'!(T$L(E%X(L?BT7L@>/___\_A?:)'+!U!8/[ -XM>W06#[;3@?K_````=KR)%"3H'2/\_Y#KNH/'!(L?@>/___\_B1C'1?`!```` -XMZ]2+1>#'``````"+5?"%TG00BP2+1`$$A -XM7UW#@\<$Z3;___^+1>R)!"3HTU#^_X7`=#"+$(72=,:)PX/Z"G07@_H-=!*+ -XM10@+51")!"2)5"0$Z*L7``"+4P2#PP2%TG7:ZYR+10R).(M%[(D$).@OK___ -XM,<#KG8UT)@"-O"<`````58GE5XG'5HG.4XG3@^P<@#H`="^-1?")7"0$QT0D -XM"`8```")!"3H!1\``(D\)`'#B?`+1?")1"0$Z$(7``"`.P!UT8/$'%M>7UW# -XMD(UT)@!5B>575E.#[$R+10S'1>``````QT7D`````,=%Z`````")1?"-112) -XM!"3H;2+\_\=$)`2PD0@(B47`C47@B00DZ`ND_/^+5?"+`H7`#X28````QT6\ -XM`````.M.D(UT)@"#?0@"#X3Y````H029"@C'!"0]W`@(@\`!B40D!.B>^___ -XMB<.+3;R)VHU%X.@?____B1PDZ#>N__^+1?"-4`2)5?"+0`2%P'1!@_@E=&6# -XM^%P/A)P```"#^%X/A),````[!8R8"@ATF`M%O(U5X(E$)`2)%"3H5A8``(M% -XM\(U0!(E5\(M`!(7`=;^-1>")!"3H"Z/\_XU5X(D4).BPHOS_C47@B00DZ$46 -XM``"#Q$Q;7E]=PXM:!(U*!(7;=*.)3?"+6@2-0]^#^%UV4H/[80^$`0<``(M% -XMO(/()8E$)`2-1>")!"3HYQ4``(M%\(L`Z77___^-1?")!"3HDI___^EE____ -XMBT48QP0D:````(E$)`3H^E;]_XG#Z0?_____)(5D&PD(@66\____^XM%\(GV -XMZ0?___^!3;P````$BT7PD.GW_O__BU6\BT7`QT0D!`(```")5"0(NA^%ZU&+ -XM2!2)R/?JB")%"2)PXE$)`3HM1<` -XM`.FA_O__BU7`BTV\BT(0BQ2%@'0)"(U%X.BH_?__BT7PZ8S^__^!9;S____? -XMBT7PZ7W^__^!9;S____WBT7PZ6[^__^#?0@!#X1W"```QT0D!,28"@C'!"2D -XM+PD(Z&0)_O\]^&\)"'0DBQ"%TG0>B<,+5;R-1>")!"2)5"0$Z,,4``"+4P2# -XMPP2%TG7DBT7PZ1W^__^#?0@!#X0*"```QP0D7!L)"#'VZ-4=_/^)PX7;=3OK -XM0)"#?0@!=`0\+G0UC57LB5PD!,=$)`@&````B10DZ!\<```!PXM%O`M%[(E$ -XM)`2-1>")!"3H6!0```^V`X3`=<&%]G24B30DZ.6K__^+1?")]NFG_?__@WT( -XM`0^$>@<``,=$)`3$F`H(QP0DO"X)".B="/[_/?AO"0@/A%G___^+$(72#X1/ -XM____B<,+5;R-1>")!"2)5"0$Z/03``"+4P2#PP2%TG7DZ2S___^A`)@*"+K_ -XM____AO(@4V\````((M%\.F3 -XM_/__@4V\````"(M%\.F$_/__@WT(`@^$IP8``(M-$(7)#X1*_O__BTV\C47@ -XMBU40Z'7[__^+1?#I6?S__X-]"`$/A+@%``#'!"1<&PD(Z!,<_/^)PX7;=`V+ -XM3;R)VHU%X.A$^___@WT(`0^%`?[__^D6_/__@4V\````$(M%\.D2_/__BT7` -XMBU@(QT0D!,28"@C'!"1@/`D(Z*P&_O^%P`^$L@0``(/["P^.YP,``(/[#+]P -XM````C78`?@.#ZPR+5<"+0@2%P`^%L`,``(M%"`L%:'0)"`^$=P,``,=$)`3$ -XMF`H(QP0D0$8)".A:!O[_BU6\B1PDB50D"(/X`1G`]]"#X`*)1"0$Z`W$__^) -XMPXE$)`2-1>")!"3H?!0``(D<).BDJ?__BW6\C57@B10D@\XZB70D!.CO$0`` -XMBU7`BT6\QT0D!`(```")1"0(BT($B00DZ,+#__^)PXE$)`2-1>")!"3H,10` -XM`(D<).A9J?__BT7PBP"#^'`/A"P$``"#^%`/A",$``#'1"0$Q)@*",<$)&`\ -XM"0CHK@7^_X7`#X3K`P``B?H/OL(+1;R)1"0$C47@B00DZ&\1``"+1;R#R&WI -XM__K__\=$)`3$F`H(QP0D]"X)".C0!?[_/?AO"0@/A(S\__^+$(72#X2"_/__ -XMB<,+5;R-1>")!"2)5"0$Z"<1``"+4P2#PP2%TG7DZ5_\__^#^V,/A-D#``#' -XM1"0$Q)@*",<$)&0S"0CH>P7^_SWX;PD(B<)/6!T"0C'!"1@=`D(Z$+! -XM__^C9'0)"*%D=`D(AL.@_@O#Y3`@\8$#[;``<&+ -XM!H7`=>R$TG0*,<"#/R\/E<`!P8M%\,=%Q`````"#P`2#.#`/A/4!``"+5?"# -XMP@2)5="+`KH!````B47,@^@Q@_@(=PR+5OV__^-5>")%"2)="0$Z'`-``"+1;R+5<#'1"0$`@```(E$)`B+ -XM`HD$).A$O___B<.)1"0$C47@B00DZ+,/``")'"3HVZ3__^F4^___LRZ-="8` -XMZ1S\__^+51C'1"0$30```(D4).C((```B")!"3HQ@P``(M#!(/#!(7`=>3I7?S__XM5&,=$)`1L````B10D -XMZ%0@``")P^GQ]?__BT48QT0D!&T```")!"3H.B```(G&B") -XM%"2#R#R)1"0$Z!0,``"#?<@)#XZ!````BT6\@\@YB40D!(U%X(D$).CU"P`` -XMBT6\C57@B10D@\@KB40D!.C@"P``BT6\C57@B10D@\@^B40D!.C+"P``Z")!"3HI@L``(L$G0A#"0B%P'7@ -XMBT7PQP5H=`D(`0```.GU]/__BT7(@\`P"T6\B40D!(U%X(D$).AQ"P``ZX_K -XM#9"0D)"0D)"0D)"0D)!5B>575E.#[!R+=0B+?0S'!"0`````Z`$4_/^#_@*) -XM1?`/A)0!``"#_@,/A'8!``"#_@$/A+T```#'1"0$Q)@*",<$)*@R"0CHD__] -XM_X/^`8G##XZT````H2QW"@B)!"3HFZ+__\=$)!``````BT7PQP4L=PH(```` -XM`(E\)`B)7"0$B40D#,<$)`````#HGO/__XL]Y)D+"(7_HRQW"@AU,HL0A=)T -XM&XG#C;0F`````(D4).@XM?W_BU,$@\,$A=)U[L<$)`````#H$EC__^CML/W_ -XMH7B9"PB)!"3H(*+__X7VQP5XF0L(`````'0O@\0<6UY?77UWI&K#]_XL=<'0)"(7;=":+/6QT -XM"0CIG?[__\=$)`3$F`H(QP0D`#,)".@1_OW_B"0B%P'02B00DZ&^@___'!8!> -XM"0@`````BT7")6`B)0P2+=P2#QP2)7>"%]G7*B=B- -XM5>2)4`B+5=R)1>B+`J/,=`D(BT((B00DZ$29_?^+1=R)!"3HZ9___XU5Y(D4 -XM),=$)`20Z04(Z%:5_/^-1>2)!"3H"Z[]_XM%[(U5Y(E4)`3'1"0(`````(D$ -XM).B!JOW_QT0D!$`K!@B)PXD$).@?E?S_BPV`7@D(A_?^-1>2) -XM!"3H-I3\_XL5S'0)"(72B57<=`R+0@0[1?`/C+W^__^+%81W"@B%TG0)H3AW -XM"@B%P'0>QP4X=PH(`````,<$),2L"PCH])/\_X/$+%M>7UW#Z+<6___H4C?_ -XM_XGVZ,LW___HQD?__^O*C70F`.B;%?__H!(7;#X2C`@`` -XMC58(B57@BP.#^"T/A,@!``"+=@B%]@^$>0,``*D```!`#X0Y`0``@_@K=`S' -XM!"1L````Z`&1_/^#PP2^`0```(D<).C!#```B00DZ&4/_/^)QXL#AR)5"00B70D#(E$)`B+1=S'!"0#````B40D!.BU[/__B1PDB<;H -XM6Y#\_\=$)`0P*@@(B30DZ.N0_/^+!H7`=!>)\XUV`(D$).CXK?W_BT,$@\,$ -XMA5=QP74=`D(`0```,.058GE7<<%V'0)"`$```## -XMD%6)Y5W'!=QT"0@!````PY!5B>6+10A=BP"CQ*P+",.058GE@^P(HL& -XM@\`$@\$$BQ&%TG0/.Q!T\(L+A6+10B+`(E%"%WI;YC__^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(L`B44( -XM7>E/F/__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+=0B+7@2%VW07,=N+!HL$ -XMF(/#`8D$).@7>D'F/__C;0F`````%6)Y8/L -XM&(E=^(G#B77\BT`(B=8[0P1T&(M3!(L#B320BUWXBW7\B>Q=PXVV`````(7` -XM=1_'0PA`````BT,(P>`"B40D!(L#B00DZ-&8__^)`^O%`<")0PCKX8VV```` -XM`%6)Y5.#[`2+70B+50R)V.B,____@T,$`8/$!%M=PXGV58GE4X/L%(M=",=$ -XM)`0`````B1PDZ,;___^+0P3!X`*)1"0$BP.)!"3HDR____B?95B>6#[!B)7?B)PXEU_(M`"(G6.T,$ -XM=!B+$XGQBT,$B`P"BUWXBW7\B>Q=PXUT)@"%P'453@^P$BUT(#[Y5#(G8 -XMZ(O___^#0P0!@\0$6UW#D%6)Y5.#[!2+70C'1"0$`````(D<).C&____BT,$ -XMB40D!(L#B00DZ*67__^#Q!1;753@^P4BUT(B=CHC?___XM#!(/``<'@`HE$)`2+ -XM`XD$).CVEO__@\046UW#58GE4X/L!(M="(M5#(G8Z%S___^#0P0!@\0$6UW# -XMB?95B>564X/L$(M="(MU$(M3"(GP`T,$.<)S.H72=16#^$!FN@`!QT,(0``` -XM`'86ND````")\`'2`T,$B5,(.=!W\L'B`HE4)`2+`XD$).A^EO__B0.+0P2- -XM%+4`````P>`"`P.)5"0(BU4,B00DB50D!.AF#?S_`7,$@\006UY=PU6)Y5.# -XM[!2+70R)'"3H.@C\_XE<)`2)1"0(BT4(B00DZ%O___^#Q!1;7<.0C70F`%6) -XMY593@^P0BUT(BW40BU,(B?`#0P0YPG,UA=)U$X/X0+)`QT,(0````'83ND`` -XM``")\`'2`T,$B5,(.=!W\HE4)`2+`XD$).C3E?__B0.+4P2+10P#$XET)`B) -XM1"0$B10DZ,4,_/\!)\I"-="8`BP*# -XMP@2%P'7WN/S___\IV"GP`<@!T(D$).C2E/__B=J)QXG!BP*#P@2)`8/!!(7` -XM=?*)\HL"@\($B4'\@\$$A6#[!B)7?B+70R)=?R+=0CWPP``(`!T%H@>N@$```"+7?B)T(MU_(GL7<.- -XM=@")7"0$B30DZ'`*_/^#^/]TV87`N@$```!^UXM=^(G"BW7\B>R)T%W#D(VT -XM)@````!5,<")Y5=64X/L#(M]"(7_#X21````BS7D=`D(A?8/A,$```"+'>1T -XM"0B#QP2)W@,UX'0)".L#@\<$BT?\A=\NAX'0)"(/H@*/@=`D(@\`&B40D!*'D -XM=`D(B00DZ$.3__^)Q@,UX'0)"*/D=`D(C5Z`ZYC&`P"AY'0)"(/$#%M>7UW# -XMH>!T"0B#Z("CX'0)"(/`!HE$)`2AY'0)"(D$).@`D___B<8#->!T"0BCY'0) -XM"(U>@.EM____QP7@=`D(@````,<$)(8```#HA9+__Z/D=`D(Z1____^-="8` -XMC;PG`````%4QP(GE5U93@^P,BWT(A?]T>:'L=`D(A(L=['0)"(G>`S7H -XM=`D(ZPB0C70F`(/'!(L'AAT -XM"0B#Z("CZ'0)"(/`!HE$)`2A['0)"(D$).A/DO__B<8#->AT"0BC['0)"(U> -XM@.NMQ@,`H>QT"0B#Q`Q;7E]=P\<%Z'0)"(````#'!"2&````Z,>1__^C['0) -XM".EH____C;8`````C;PG`````%6X!````(GE5U93@^P,BUT(BPN%R70:,,"- -XMM"8`````@\`!BQ2#A=)U]HT$A00```")!"3H=Y'__XG'BP.)_H7`=!^)!"3H -XM]?[__XD$).@MCOW_B0:+0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT -XM)@````"-O"<`````58GE@^PXBT40B77XBW4(B5WTB7W\B40D"(M%#(DT)(E$ -XM)`3HA`/\_X7`B<-^+(L&B40D!(U%[HE%X(D$).BZ!_S_.<-U#XMU##G;B=F+ -XM?>#\\Z9T!;O_____B=B+=?B+7?2+??R)[%W#C;0F`````%6)Y8/L&(E=^(M% -XM$(EU_(M=#(MU"(E$)`B)7"0$B30DZ&O___^#^/]T%X7`N@$```!^`HG"BUWX -XMB="+=?R)[%W#QT0D"`````#'1"0$`````,<$)`````#HWP+\_P^V`[H!```` -XM#0``(`")!HM=^(G0BW7\B>Q=PY"-M"8`````53'`B>564X/L((M="(7;=%'' -XM!?1T"0@`````@#L`=#&-=?2)7"0$QT0D"`8```")-"3H2?___\<$)/!T"0@! -XMPXM%](E$)`3HA/?__X`[`'72QP0D\'0)".C3]___H?!T"0B#Q"!;7EW#C;0F -XM`````%6X!````(GE5U93@^P,BUT(BSN%_W0:,,"-M"8`````@\`!BS2#A?9U -XM]HT$A00```")!"3HEX___XG'BP.)_H7`=!^)!"3H1?___XD$).CM^O__B0:+ -XM0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT)@````"-O"<`````58GE -XM5U93@^P,BT4(BQB%VP^$FP```(L5X%T)"(G'B57PZS*+5?"!_O\```"+E)HT -XM!```B57L=TB+5?"+A+(T!```.47L=4:#10P$BU\$@\<$A=MT7(M%#(LP.?-T -XMZ8'[_P```':]B1PDZ+X"_/^!_O\```")1>QVOXVT)@````")-"3HI`+\_SE% -XM['2ZA=N0=#2%]KH!````="$Y1>R)]G0SBU7L@\0,6UY?72G"B=##BT4,,=*+ -XM`(7`=0J#Q`R)T%M>7UW#@\0,NO____];B=!>7UW#B=HI\NOAD)"0D)!5B>56 -XM4X/$@,<$)$`Q"0CH["[^_\<$)"0Q"0B)QNC>+O[_QP0D9#$)"(G#Z-`N_O^% -XMVP^$J`$``(7V#X21`0``A<`/A'\!``")7"0_/^)!"3H2?O__\=$)`3$F`H(QP0DO$@)"(G#Z"/G_?^%P'0. -XMBP"%P'0(BP"%P'0"B<.)="00BT9$QT0D"`````")7"0$QP0D`0```(E$)`SH -XMGMO__\=$)`0P*@@(B<:)!"3HW'_\_XL&AR\````@ST`=0D(`<=$)`2PD`@(QP0DQ*P+"`^4P(F%3/___X,%Q*P+"`'H -XM9W_\_\=$)`3$F`H(QP0DO$`)".A3YOW_A<`/A((```"+`(7`B850____=':+ -XM?0B%_P^$:0$``,>%4/___P`````QVXU%[(D$).BY^OO_BU7LB=`K!01U"0@Y -XMPW\NC85@____B14$=0D(B40D!,<$))0="0CH;O[[_X7`=#"+=0B%]@^$>@$` -XM`(UV`,<$),2L"PCH-'[\_X'$O````%M>7UW#BT4(A0C70F`(G>BQZ%VP^$Y0```(U%P(E$)`2-1BK'1"0("``` -XM`(D$).C&^OO_@_@`?-4/A<````"+7>@[7D1\AXGZA-*-=@`/A6`#``")7D3' -XM1D@"````Z6O___^+A5#___^[6`(``(D$).AH%?W_BY50____B10DZ,I[_?^H -XM`0^$>O[__XN54/___XL"B00DZ+*'_?^%P`^$8O[__XN54/___XL"@\($B950 -XM____B00DZ.'B_?]KV#SI0?[__\=$)`S('0D(QT0D"`$```"A@)@*",=$)`0: -XM````B00DZ/3;_/_'1"0$E!T)"(D$).B$U?__Z4_^___'1"0$3````,<$)`$` -XM``#H^X?__XU5P(E4)`3'1"0("````(G#C4`JB00DZ*O[^_^-1=B)1"0$C4,S -XMQT0D"!````")!"3HD?O[_XM%Z(E#1(!]R`!U&<=#2`(```"+1@2),XE#!(D8 -XMB5X$Z6#^__^-5_S_BT4(A<`/A:?]__^+A5#___^%P`^$F?W__XN]4/___X/'"(M' -XM^(7`#X2%_?__BQ"%T@^$>_W__XM?_(7;#X1P_?__BS.%]@^$9OW__\=$)`3D -XM+@D(B00DZ"+Y^__'A4C___\`````A<`/A'L!``"+-2!U"0B+!H7`=13IL0`` -XM`(UV`(LVBQZ%VP^$H@```/9&2`AU[HM?^,<$).0N"0B)7"0$Z-?X^_^%P'0? -XMC48(B00DZ.SV__^)7"0$B00DZ``O_?^%P`^$[0```(U&*HM?_(D$).C*]O__ -XMB5PD!(D$).C>+OW_A<`/A*L```"+1DBH$'01H01U"0B)1D2+1DB#X.^)1DBH -XM`G1>@'X(`'18BX5,____A<`/A/````"#3D@(QD8(`(LVBQZ%VP^%7O___XN- -XM2/___X/'"(7)#X3A_O__Z6S\__^+70B%VP^%8?S__\=$)`SP'0D(QT0D"`(` -XM``#IT_W__Z@!=0BH!`^$$/___XN%3/___X7`=&*-1AF)1"0$C48(B00DZ.#^ -XM^_^#3D@(Z>O^__^+1_S'!"3D+@D(B40D!.C4]_O_A<`/A=#^___I-?___XU& -XM&8M?^(D$).C=]?__B5PD!(D$).CQ+?W_A<`/A*G^___I[/[__XGPB?;H._K_ -XM_^N3QT0D!.0N"0B)'"3HA??[_X7`#Y3`#[;`B85(____Z6+^__^)\.@/^O__ -XMZ03___^-1@B)1"0$C47(QT0D"!````")!"3H+/?[_X7`=0^)7D3'1D@)```` -XMZ>W[__^-557,?]64X/L#,=$)`3$F`H(QP0DO"X)".@QX?W_B00DZ*GR -XM___'!"0!````B<;H&_K__XL=('4)"(L#AS/&0P@`BQN+`X7`==[HB/C__X/$#(GX6UY?7<.-M"8`````C;PG```` -XM`%6)Y5=64X/L+(M=#(MU"(U#LX/X(78IQP0D`P```.B=A/__B!= -XM"0AF@WR.-`!Y"`^VA(XT!```B`,/MD(!@\,!@\(!A,!UTL8#`.E2____C48J -XMB44(@\0L6UY?7>FA@/W_@'XS``^$&P$``(U>,XD<).C(^_O_@\`!B00DZ+&# -XM__^)QP^V1C,/MM"#^G\/AB\!``#'1>0N````A,")_G12BQ7<70D(B57H#[[` -XM.T7D#X2R````#[8#/#H/MM`/A(\````Y5>A^&XL-X%T)"&:#?)$T`'D-A=)X -XM!XN4D30$``")T(/#`8@&#[8#@\8!A,!UM\8&`.FG_O__BT9(@^`'@_@"#X0- -XM`0``@_@$#X3*````@^@!#X6__O__H8"8"@C'1"0,HAT)",=$)`@)````QT0D -XM!!H```")!"3H4M;\_^D-____C489Z07___^0C70F`+HZ````QT7D`````(UT -XM)@#I7/___XD<),=$)`0Z````Z$?V^_^%P(G##X4T____Z6S___^A@)@*",=$ -XM)`Q1#@D(QT0D"`P```#'1"0$&@```(D$).CGU?S_B44(@\0L6UY?7>E(?_W_ -XMC48(Z9#^___V!)6]40D(!,=%Y``````/A"0CHGO'__\<$)``Q"0B)1"0$Z'[H_/_'!"2P'@D(Z(+Q -XM___'!"0D,0D(B40D!.ABZ/S_QP0DJ!X)".AF\?__QP0D9#$)"(E$)`3H1NC\ -XM_\<$)+8>"0CH2O'__\<$)$`Q"0B)1"0$Z"KH_/_)PY"0D)"0D)"058GE@^P8 -XMB5WXBUT,B77\BQ7,=0D(BW4(A=)T)*'0=0D(A<`/A(P```")70R+7?B)=0B+ -XM#=1U"0B+=?R)[%W_X<<%S'4)"`$```#'1"0$`0$``,<$)+L>"0CH[OG[_X7` -XMH]!U"0AT3L=$)`3''@D(B00DZ"7T^_^CU'4)",=$)`32'@D(H=!U"0B)!"3H -XM"_3[_Z/LK`L(QT0D!-@>"0BAT'4)"(D$).CQ\_O_H_"L"PCI=/___XM=^+C_ -XM____BW7\B>Q=PY"0D)"0D)"0D)"0D%6)Y5=6@^PPBT40BU44BW4(BWT,B47L -XMB<&)5>B+1>C'1=``````QT74`````(GZB77DA<")=?")?>!U%#GY=F")\/?Q -XMB570QT74`````.L0BTW@.4WH=AB)==")?=2)]HM%T(M5U(/$,%Y?7<.-=@`/ -XMO47H@_`?B478=4:+1>@Y1>`/A\D```"+3>PY3>0/@[T```"+3?")5=2)3=#K -XMP9"+1>R%P'4,N`$````QTO=U[(G!BT7@BU7H]_&+1>3W\>N"N"````"+5>PK -XM1=B+=>R+?>2)P8E%W-/JBT7H#[9-V-/@"<*+1>33Y@^V3=R)5?2+5>#3Z`^V -XM3=C3X@G0BU7@T^"+1>0K1>P;5>B)1?#I+____SGX=K``````BW4,QT7D`````(E%](G!BT4(A=*)UXE%['4C.?$/AI@```")\O?Q -XMB<$QP(E-X(E%Y(M%X(M5Y(/$(%Y?7<,Y\@^'M0````^]PH/P'XE%Z`^$E@`` -XM`+@@````BU7T*T7HB<'3Z@^V3>B)1?")^(M]]-/@"<*+1>S3YP^V3?")5=R) -XM\M/H#[9-Z-/B#[9-\`G0T^Z)\O=UW(G1B778B478]^QS%(UT)@`QR3'`Z2?___^-M"8` -XM````N0$````QP.D4____BT7L#[9-Z-/@.<9VAXM-V#'`@^D!Z?K^__^0D)"0 -XMD)"0D)"058GE5U:#[%"+30R+512+11#'1;@`````A@]<`]]_I!O____?:@]$`]]G'1<#_____Z>C^__^X(````(M5W"M%R(G! -XMT^H/MDW(B474B?B)UXGRT^`)QXM%W-/@#[9-U(E%K(M%V-/H#[9-R-/B"="+ -XM5=C3X@^V3=2)5>2)\M/J]_>)UO=EK#G60IP1G6BG^__\[1>1VI2M%K!GZZYZ0D)"0 -XMD)"0D)"0D)"0D%6)Y5=6@^PPBU4,BT4(BW40BWT4B570`````#XBD````A?\/B+H```")UXG&BU78B<&+ -XM1=R%_XE5\(E%['44.<9V08G0BU7L]_:)P3'`ZQ.-=@`[?>QV3S'),<"-M"8` -XM````B4W0BTWDB474BT70BU74A7UW#A?9U"[@!```` -XM,=+W]HG!BT7LB?KW\8G&BT7P]_&)P8GPZ[P/O<>#\!^)1>AU1#E]['<%.77P -XM3_____#XE+____D(UT)@")\(GZ -XM]]B#T@#WVO=5Y.DS____N"````")\BM%Z(G!T^H/MDWHB47TB?B)UXM5[-/@ -XM"<>+1?#3Y@^V3?33Z`^V3>C3X@^V3?0)T(M5[(E%S-/J]_>)553@^P$H1A/"0B#^/]T$C';_]"+@Q1/"0B#ZP2#^/]U\(/$!%M= -XMPY"0D(/L#.B\\_O_@\0,PP```````````````````````````````"1&'0@87)G=6UE;G0@"BUD"0EL;V%D(&1I2!S=&%C:R!F2D@"BUI"0EI;G1E6YT87@@;V8@=&AE(&9O;&QO=VEN9R!@9FEL92<@"BUQ"0EA8V-E<'0@ -XM4TE'455)5"!F;W(@&5C=71I -XM;VX@"BU8"0EL:6ME("UX(&)U="!I;F-L=61I;F<@8V]M;6%N9',@&ET(`H*4V5E('1H92!T8W-H*#$I(&UA;G5A -XM;"!P86=E(&9O2!I9@!);7!R;W!EF5D`"5S(&YO="!F;W5N9`!);7!R;W!E6YT87@`3F\@:&]M92!D:7)E8W1O0!$:7)E8W1O0!5`!%>'!A;G-I;VX@8G5F9F5R(&]V97)F;&]W`%9A`!"860@(2!F;W)M`$YO('!R979I;W5S('-U8G-T:71U=&4`0F%D('-U -XM8G-T:71U=&4`3F\@<')E=FEO=7,@;&5F="!H86YD('-I9&4`4FEG:'0@:&%N -XM9"!S:61E('1O;R!L;VYG`$)A9"`A(&UO9&EF:65R.B`E8P!-;V1I9FEE2`I)W,`5&]O(&UA;GD@*"=S`$)A9&QY('!L86-E9"`H`$UI0``07)G=6UE -XM;G0@9F]R("UC(&5N9',@:6X@8F%C:W-L87-H````07)G=6UE;G1S('-H;W5L -XM9"!B92!J;V)S(&]R('!R;V-E6YC(&9A=6QT.B!065T*0```%5S86=E.B!H:7-T -XM;W)Y(%LM)7-=(%LC(&YU;6)E2!A2!F:6QE(&YO="!E>&5C=71A8FQE``!5;FMN;W=N(&]P=&EO;CH@ -XM8"TE%@@72!;(&%R9W5M -XM96YT("XN+B!=```*36ES"4P.'@*`"5D(&AI=',L("5D(&UI!0CO6@4([UH%".]:!0CO6@4([UH%".]:!0CO -XM6@4([EX%"`=?!0@@7P4(.5\%"$-?!0A<7P4([UH%".]:!0CO6@4(:U\%"'I? -XM!0BS7`4([UH%"*%>!0BU7@4([UH%".]:!0C.7@4([UH%"-]>!0CO6@4([UH% -XM".]:!0CO6@4(ZUT%"%);!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4( -XMCEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B. -XM6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(2UL%"(Y:!0@I6P4(CEH%"(Y: -XM!0@B6P4(UUH%"`<`#0`````````````````````````````````@````)P`` -XM`"(````)````.P```"8````\````/@```"@````I````?````%X````E```` -XM`````'1CF4`=FUE;6]R>75S90!D97-CF4`)6IO8B`F`"5J;V(``"5S -XM.B`E6!0@ME@4(&98%"`^5!0@/ -XME@4(!98%"`^5!0@/E04(#Y4%"`^5!0@/E04(#Y4%"`^5!0C[E04(#Y4%"`^5 -XM!0@/E04(\94%"`^5!0CGE04(#Y4%"-V5!0ACF@4(0YH%"(B9!0B(F04((YH% -XM"(B9!0B(F04(B)D%"(B9!0B(F04(\9D%"-&9!0B(F04(B)D%"(B9!0A#F@4( -XM;)L%"&R;!0C%G`4(H)P%"&>;!0ALFP4(YYL%"&R;!0BG -XMFP4(@)T%"&R;!0ALFP4(2)T%"&R;!0ALFP4(YYL%"'1C&-E<'1I;VX`2TE,3`!+:6QL960`55-2 -XM,0!5&ET960`24\`07-Y;F-H&-E961E9`!81E-:`$9I;&5S:7IE(&QI;6ET(&5X -XM8V5E9&5D`%9404Q230!6:7)T=6%L('1I;64@86QA0!B&5C`&5X:70`9F<`9FEL -XM971E0!O;FEN='(`<&]P9`!P&5S -XM=6P`+20J`"@]?@!>*BTE)'M].B,`.EXD*BTE`````&YC:&%R^04(N@(&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``& -XM"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8( -XMI``&"*0`!@B:`@8(I``&"*0`!@B:`@8(I``&"*0`!@BD``8(I``&"*0`!@A\ -XM`@8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0` -XM!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@B:`@8(]1(&")42!@B5$@8(UPH& -XM"-<*!@C7"@8(UPH&")42!@C7"@8(UPH&"&T2!@C7"@8(UPH&"-<*!@C7"@8( -XMUPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8(UPH&"-<*!@C7 -XM"@8(UPH&"!(2!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<* -XM!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH& -XM"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8( -XMF0T&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<- -XM!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT& -XM"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08( -XM%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(T0T&"!<-!@@7#08(T0T&"!<- -XM!@@7#08(%PT&"-$-!@@7#08(%PT&"!<-!@BP$`8(IQ`&"-$-!@@>#P8(T0T& -XM"-$-!@@7#08(%PT&"*<0!@AW:61E7W)E860`.R8*`#P^*"D`)74E=0`E9#H` -XM"`A)W@@(3-X("$_>"`A%R0@(`````&YO="!A -XM(&1I0!U;G)E861A8FQE``HE4R`E0!"860@='=?8V]M;6%N9`H`:71E;7,`)7,Z($EN=&5R;F%L(&UA=&-H -XM(&5R!0<(G@4'"#P#!PB,`P<(QP,'"``````````` -XM````````````````@+X&"/#%!@C`NP8(H,4&"("^!@B`O@8((+X&"*#%!@A@ -XMNP8(D+L&","[!@C`NP8(`+L&"#"[!@C0N@8(H+H&"'"Z!@B`O@8(@+X&""#% -XM!@@`````````````````````P,`&",#`!@C`P`8(0,4&",#`!@C`P`8(P,`& -XM"$#%!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8( -XMP,`&"(#$!@@`````````````````````T,$&"/#"!@BPO08(4,4&"-#!!@C0 -XMP08(L+T&"%#%!@BPO08(L+T&"."Y!@A`O08(X+P&"+#)!@B`O`8(\+L&"&"Y -XM!@C0P08(T,$&")#$!@@*)7,@:6YT97)N86P@97)R;W(Z($D@9&]N)W0@:VYO -XM=R!W:&%T($DG;2!L;V]K:6YG(&9OF4M=V]R9`!C:&%N9V4M -XM8V%S90!C:&%N9V4M=&EL;"UE;F0M;V8M;&EN90!6:2!C:&%N9V4@=&\@96YD -XM(&]F(&QI;F4`8VQE87(M&-H86YG -XM92UP;VEN="UA;F0M;6%R:P!%>&-H86YG92!T:&4@8W5R'!A;F0@=F%R:6%B;&5S`&9O2US96%R8V@M8F%C:W=A2US96%R8V@M9F]R=V%R9`!I;G-E"UM971A`'%U;W1E9"UI;G-E2!E=F5R -XM>71H:6YG`')U;BUF9RUE9&ET;W(`4F5S=&%R="!S=&]P<&5D(&5D:71O<@!R -XM=6XM:&5L<`!S96QF+6EN2!D96QA>65D -XM('-U2UF;'5S:"UO=71P=70`5'1Y(&9L=7-H -XM(&]U='!U="!C:&%R86-T97(`='1Y+7-I9VEN='(`5'1Y(&EN=&5R2US -XM:6=T'0M=V]R9`!V:2UA9&0`=FDM -XM861D+6%T+65O;`!V:2UC:&"!C;VUM86YD`'9I+65N9'=O6%N:P!Y86YK+7!O -XM<`!E7V-O<'E?=&]?8VQI<&)O87)D`&5?<&%S=&5?9G)O;5]C;&EP8F]A5]P`!$ -XM96QE=&4@8VAA2!L:6YE````1&ES<&QA>2!L;V%D(&%V97)A9V4@86YD(&-U -XM&5C=71E(&-O;6UA;F0@86YD(&ME97`@ -XM8W5R'0@:&ES=&]R>2!L:6YE````17AP86YD('!A=&AN86UE7!E9"!T;R!T:&4@;&EN92!V97)B871I;0```$QO;VL@9F]R -XM(&AE;'`@;VX@8W5R&EC86P@8W5R -XM7!E -XM9`!6:2!R97!L86-E(&-H87)A8W1E6%N:V5D('1E>'0@=VET:"!Y86YK(&9R;VT@96%R;&EE -XM2D@4&%S=&4@8VQI<&)O87)D -XM(&)U9F9E'0@=V]R9"!T;R`G7%PG```H5TE.,S(@;VYL -XM>2D@0V]N=F5R="!E86-H("`!K;0!A;0!X;@!C;P!L:0!A9&0@ -XM;F5W(&)L86YK(&QI;F4`8FP`875D:6)L92!B96QL`&-L96%R('1O(&)O='1O -XM;0!C;&5A7-I8V%L('1A8G,`3G5M8F5R(&]F(&QI;F5S`$YU;6)E0!Y97,`8F%U9`!C;VQS``EF;VQL;W=I;F<@8VAA -XM3H@3G5L;"!E>'1E;F1E9"UK97D@;F]T(&%L;&]W960N -XM"@!!9&18:V5Y.B!.=6QL(&5X=&5N9&5D+6ME>2!N;W0@86QL;W=E9"X*```` -XM`$%D9%AK97DZ('-E<75E;F-E+6QE860M:6X@8V]M;6%N9"!N;W0@86QL;W=E -XM9`H``$]C=&%L(&-O;G-T86YT(&1O97,@;F]T(&9I="!I;B!A(&-H87(N"@`E -XM+3$U4RT^(`!N;R!I;G!U=`!3;VUE=&AI;F<@;75S="!F;VQL;WUU]`%5N8F]U;F0@97AT96YD960@:V5Y("(E4R(*``"5'0@(E1T( -XM")4="`B5'0@(E1T(")4="`B5'0@(E1T("-@<"`C8'`@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8 -XM'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@< -XM"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("(4="`C8'`@(V!P( -XM"-@<"`C8'`@(=1T("&4="`C8'`@(V!P("%4="`A%'0@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("#4="`C8'`@(V!P("-@<"`@G'0@(V!P("!L="`C8 -XM'`@(#QT(".D6"0A5;FMN;W=N('-W:71C:``E&%N>0!I>&]F9@!I;6%X8F5L`&ED -XM96QE=&4`;W!O'0`"5L>"!T;R`P>"5L>"`H)6QD*2X*`$]U="!O9B!M96UO -XM7,@=&\@96UA8W,@ -XM8FEN9&EN9W,*````("`@("UD("`@8FEN9"!A;&P@:V5Y4UA<%LE9%T@/3T@)60*`$-C06QT36%P6R5D -XM72`]/2`E9`H`3G5L;"!S=')I;F<@2!B:6YD:6YG,@@(7C(("%XR"`A>,@@(.#0("(HT -XM"`A>,@@(7C(("%XR"`A>,@@(7C(("$4T"`A5-`@(7C(("%XR"`AE-`@(Y#<( -XM"%@W"`A8-P@(O3<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("(8W"`A8-P@( -XM6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(73<("%@W"`A8 -XM-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`CD-P@(6#<("%@W -XM"`B]-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(AC<("%@W"`A8-P@(6#<( -XM"%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A=-P@(2!A;&EA($("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@( -XMBWP(""R!"`CJ?P@(BWP("-M_"`AX@0@(S8(("(M\"`B+?`@(BWP("(M\"`B+ -XM?`@(BWP("(M\"`C`@@@(HW\("(M\"`B+?`@(ZG\("(M\"`AX?P@(:7\(".I_ -XM"`A:?P@(BWP("$!_"`B+?`@("'\("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(^7X("'B!"`C9?@@(BWP("(M\"`B+?`@(98,("(M\"`BK?@@( -XMBWP("%5^"`C??0@(CGT("(M\"`CJ?P@(BWP("(M\"`A_?0@(ZG\("'!]"`B+ -XM?`@(4'T("(M\"`@%?0@(BWP("/5\"`B+?`@(Y'P("'B!"`@L9FEL96,`+&-O -XM;&]R`"QR:``L'`@)``` -XM``$;`SMP+@``!````#"+__^,+@``H(S__ZPN``#PC?__S"X``!"0___L+@`` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````!%R0@(`````"1/"0@````` -XM`````````````````````$`H(RD@0V]P>7)I9VAT("AC*2`Q.3DQ(%1H92!2 -XM96=E;G1S(&]F('1H92!5;FEV97)S:71Y(&]F($-A;&EF;W)N:6$N"B!!;&P@ -XM"0@D-@D(`@````````````````````````#X;PD( -XM``````````````````````````````````````!``$``0`!``$``0`!``$`` -XM0!1`&$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!` -XM`$`4``"``8`0@("``(`0H`&`$*`0@""``(``@`"``(``@``1`!$`$0`1`!$` -XM$0`1`!$`$0`1`(`0H!"``(`0@""``(``%@`6`!8`%@`6`!8`!@`&``8`!@`& -XM``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&((!`@`"``(``@#*``!H` -XM&@`:`!H`&@`:``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`* -XM``H`"B"`$*``@`"``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$`` -XM0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``(``@`"``(``@`"` -XM`(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(`` -XM@`"``(``@``&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`& -XM``8`!@`&``8`@``&``8`!@`&``8`!@`&``H`"@`*``H`"@`*``H`"@`*``H` -XM"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*`(``"@`*``H`"@`*``H`"@`* -XM`````"_*"`@!````[\D("`$````WR@@(``0``/?)"`@"````0,H("``$``#W -XMR0@(`P```$G*"`@`!```]\D("`0```!3R@@(``0``/?)"`@%````80("'#D"`@%````<.0("`4````F````YQP)"$7)"`@`````10("`(````]````Q!X)"'GD"`@%```` -XM>>0("`4````^````)/$("'GD"`@%````>>0("`4````C````?^0("(+D"`@% -XM````@N0("`4````E````G]$("(+D"`@%````@N0("`4````J````.K\("(CD -XM"`@%````B.0("`4`````````CN0("*^^"`@!````K[X("`$`````````D>0( -XM"*^^"`@!````K[X("`$`````````E.0("$7)"`@`````10("$7)"`@`````1!PA@3P<(`$\'"/`J!PAP,`<(8"D'",`O!PCP/`<( -XM("P'"#`L!PA`+`<(4"P'"&`L!PAP+`<(P"H'"*`Z!PAP,0<(<#\'""!0!PB@ -XM,0<(P"L'"&`F!PC@30<(H$T'"+`I!PBP40<(,%$'"&!W!PAP=0<(('8'"+`V -XM!PC0,`<(D#`'"!!H!PB03@<(,%$'"#`Q!PA0*P<($"L'".!.!PB0*P<(H$\' -XM",!/!PCP+P<(8$<'"!!*!P@`+`<(@"<'",!R!PC0)P<(\"<'"%`H!P@04@<( -XM@'0'"`!T!P@0.@<(<"@'"*`L!P@@90<(L#D'"(`X!PB@8P<(P"P'"'!`XX&@$/`1````7````"T````E```````` -XM`"(````G````8`````````````````````````````````````````#@3`D( -XM$0```````````````````-1,"0@5````````````````````]$P)"!,````` -XM```````````````(30D(%````````````````````)`O"0@2```````````` -XM````````($T)"``````````````````````;````3P```$8`````````&P`` -XM`$\```!(`````````!L```!/````1``````````;````3P```$,````````` -XM&P```$\```!"`````````!L```!/````00`````````;````6P```$8````` -XM````&P```%L```!(`````````!L```!;````1``````````;````6P```$,` -XM````````&P```%L```!"`````````!L```!;````00`````````````````` -XM`'P-"0@``0``P````(,-"0@#````0````(H-"0@``````````)$-"0C*!0`` -XM$`B`@)@-"0@``````````'P-"0A``0``@````(,-"0@#````0````(H-"0@` -XM`````````)$-"0B`````'`V`@)@-"0BP\;\!`````'P-"0@```````8``(,- -XM"0@``````````(H-"0@``````````)$-"0@`````@`0``)@-"0@````````` -XM`````````````````&P```!O````9P```&\```!U````=``````````````` -XM80```'4```!T````;P```&P```!O````9P```&\```!U````=``````````V -XM````,````````````````````&$```!U````=````&\```!M````80```'0` -XM``!I````8P````````!H````80```&X```!G````=0```'``````````80`` -XM`"X```!O````=0```'0`````````=````'0```!Y`````````"\```!P```` -XM=````',````O`````````&$```!N````>0````````!S````=````&$```!T -XM````=0```',`````````,``````````Q`````````"T````Q```````````` -XM````````````````````````,````'@````W````9@```&8```!F````9@`` -XM`&8```!F````9@`````````Z`````````%\`````````=````&,```!S```` -XM:`````````!H````;P```&T```!E`````````'4```!S````90```'(````` -XM````9P```'(```!O````=0```'``````````=````&4```!R````;0`````` -XM````````````````````````````````````````=@```&4```!R````0```````````````````````````````````&,```!A````=````&$` -XM``!L````;P```&<`````````3@```$P```!3````4````$$```!4````2``` -XM``````!N````;P```&L```!A````;@```&H```!I`````````'X````O```` -XM+@```&,```!S````:````&0```!I````<@```',````````````````````` -XM``````````````!D````:0```'(```!S````9@```&D```!L````90`````` -XM````````````````````````````````````````0```'P```!N````?````&4```!\````80```"D````_ -XM``!`(```````````````=0```&X```!A````;````&D```!A````````'0```!R````80```&,` -XM``!T``````````````````````````````````````````````!D````=0`` -XM`&X```!I````<0```'4```!E`````````',```!Y````;0```&P```!I```` -XM;@```&L```!S`````````&D```!G````;@```&\```!R````90````````!C -XM````:````&$```!S````90````````!E````>````'````!A````;@```&0` -XM````````````````````````90```&,```!H````;P```%\```!S````=``` -XM`'D```!L````90````````!B````P````````![````(````"X````N````+@```"````!]```` -XM`````'T`````````4````$$```!4````2```````````````9````&4```!F -XM````80```'4```!L````=``````````M````;@`````````M`````````&X` -XM``!O````9P```&P```!O````8@``````````````````````````````;@`` -XM`&\```!N````;P```&T```!A````=````&,```!H```````````````````` -XM`````````````````````&`````@````+@```"X````N````(````&`````` -XM````80```&T```!P````;0````````!T````:0```&T```!E`````````&X` -XM``!O````=````&D```!F````>0`````````````````````````````````` -XM````````````<````'(```!I````;@```'0```!E````>````&D```!T```` -XM=@```&$```!L````=0```&4`````````*````"``````````(````"D````` -XM````(``````````@````?````'P````@`````````"`````F````)@```"`` -XM````````(````'P````@`````````#L````@`````````#L`````````(@`` -XM`"(`````````6P```%T`````````(````#P````\````(``````````@```` -XM/````"``````````(````#X````^`````````"`````^`````````#X````` -XM````(````"X````N````+@`````````E````)0`````````E````*P`````` -XM```E````+0`````````E````(P`````````````````````````````````` -XM`&,```!O````;@```'0```!I````;@```'4```!E```````````````````` -XM``````````````````````````!C````;P```&X```!T````:0```&X```!U -XM````90```%\```!A````<@```&<```!S`````````%\```!P````80```'4` -XM``!S````90````````!@````<````'<```!D````8`````````!F````:0`` -XM`&P```!E````8P`````````````````````````````````````````````` -XM:````&D```!S````=````&,```!H````80```'(```!S```````````````` -XM`````````````````````````'````!R````;P```&T```!P````=````&,` -XM``!H````80```'(```!S``````````````````````````````!H````:0`` -XM`',```!T````;````&D```!T`````````%4```!3````10```%(````````` -XM````````````````3````$\```!'````3@```$$```!-````10````````!' -XM````4@```$\```!5````4````````````````````'<```!O````<@```&0` -XM``!C````:````&$```!R``````````` -XM``!L````:0```',```!T````;````&D```!N````:P```',`````````1``` -XM`$D```!.````1P```"$`````````````0``````````````````````````` -XM``````````!C````;P```'(```!R````90```&,```!T`````````&,```!M -XM````9`````````!A````;````&P`````````90```'(```!A````````1`````@````(```````` -XM``H````H;FEL*0```!0``````````7I2``%\"`$;#`0$B`$``!P````<```` -XMG%S__W`!````00X(A0)"#05%A@2'`P``'````#P```#L7?__1@$```!!#@B% -XM`D(-!46&!(<#```<````7````!Q?__\2`@```$$."(4"0@T%188$AP,``!P` -XM``!\````'&'__X!`@BG@0(,IX$"$*>!`A2G@0(8IX$"'*>!`B" -XMG@0(DIX$"**>!`BRG@0(PIX$"-*>!`CBG@0(\IX$"`*?!`@2GP0((I\$"#*? -XM!`A"GP0(4I\$"&*?!`ARGP0(@I\$")*?!`BBGP0(LI\$",*?!`C2GP0(XI\$ -XM"/*?!`@"H`0($J`$""*@!`@RH`0(0J`$"%*@!`ABH`0(6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G1E>'0`+F9I -XM;FD`+G)O9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]F`0```0````+````!`````@```!E```` -XM`0````8````(FP0("!L``!$```````````````0`````````8`````$````& -XM````')L$"!P;````"0`````````````$````!````&L````!````!@```""D -XM!`@@)```W`P$````````````$`````````!Q`````0````8```#\L`@(_#`$ -XM``P```````````````0`````````=P````$````"````(+$(""`Q!``.;@`` -XM```````````@`````````'\````!`````@```#`?"0@PGP0`+``````````` -XM````!`````````"-`````0````,`````(`D(`*`$`*0M`````````````"`` -XM````````DP````$````"````I$T)"*3-!`"<```````````````$```````` -XM`)T````&`````P```$!."0A`S@0`V`````4`````````!`````@```"F```` -XM`0````,````83PD(&,\$``@```````````````0`````````K0````$````# -XM````($\)""#/!``(```````````````$`````````+0````!`````P```"A/ -XM"0@HSP0`!```````````````!`````````"Y`````0````,````L3PD(+,\$ -XM`$@"``````````````0````$````O@````@````#````@%$)"(#1!`!T6P(` -XM```````````@`````````,,````!``````````````"`T00`60D````````` -XM`````0`````````!`````P``````````````V=H$`,P```````````````$` -X&```````` -X` -Xend -e0b48b8aefb9960c9da54cac18bdcb01 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.err b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.eval b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.out b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.sh b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.sh deleted file mode 100644 index ee79fa60..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/elfcopy-noops-6.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest elfcopy-noops-6 tc/elfcopy-noops-6 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${ELFCOPY} mcs.o mcs.o.1" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/in/elfcopy-noops-6.in.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/in/elfcopy-noops-6.in.shar deleted file mode 100644 index e3eb6cde..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/in/elfcopy-noops-6.in.shar +++ /dev/null @@ -1,107 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# mcs.o.uu -# -echo x - mcs.o.uu -sed 's/^X//' >mcs.o.uu << 'END-of-mcs.o.uu' -Xbegin 644 mcs.o -XM?T5,1@$!`0D```````````$``P`!``````````````!\"0```````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&(E4)`3'1"0(`````(D$).C\____ -XM,=*%P'0),=*#>"``#Y7"R8G0PXUV`%6)Y8/L&(E4)`3'1"0(`````(D$).C\ -XM____,=*%P'0),=*#>!@`#Y7"R8G0PXUV`%6)Y8/L&,=$)`@`````B50D!(D$ -XM).C\____A575E.![/P```#'A1#___\`````QX44____`````(N%$/___XM5"(E$)`2+ -XM0AB)!"3H_/___X7`B840____#X0Z!@``BY40____C46TB40D!(D4).C\____ -XMA<`/A$D&``"+30B+1;2+24")A0S___^)C0C___^+C13___^%R0^%?P(``(M5 -XMS(F5%/___XM%N(/X"'2)A"C`````````#'@H@````` -XM`@``QP0D``(``.C\____BTT(A<")@80````/A$<%``"+A2C___^+E2C___^+ -XM0`B)A3#___\#0A0YA3#___^)A2#___\/@M$```#IZ0$``(M%"(NXC````(M- -XM"(N1B````(N-'/___XT$#SG0%6/___P````")1"0$B10DB8U4 -XM____Z/S___^%P`^$HO[__XN5)/___XM%".B"^O__A6UT86(`+G-T``!4!P```A8``%P'```!"```;`<` -XM``(7``!T!P```0@``(`'```"'@``C`<```(6``"4!P```0@``*0'```"%P`` -XML`<```(6``"X!P```0@``,@'```"%P``T`<```(6``#8!P```0@``.@'```" -X;%P``\`<```(6``#X!P```0@```@(```"%P`` -X` -Xend -END-of-mcs.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/out/elfcopy-noops-6.out.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/out/elfcopy-noops-6.out.shar deleted file mode 100644 index c714d926..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-6/out/elfcopy-noops-6.out.shar +++ /dev/null @@ -1,204 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# mcs.o.1.uu -# mcs.o.uu -# -echo x - mcs.o.1.uu -sed 's/^X//' >mcs.o.1.uu << 'f795b6a491de52ced7008ed30e59ba9b' -Xbegin 644 mcs.o.1 -XM?T5,1@$!`0D```````````$``P`!```````````````X#@```````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&(E4)`3'1"0(`````(D$).C\____ -XM,=*%P'0),=*#>"``#Y7"R8G0PXUV`%6)Y8/L&(E4)`3'1"0(`````(D$).C\ -XM____,=*%P'0),=*#>!@`#Y7"R8G0PXUV`%6)Y8/L&,=$)`@`````B50D!(D$ -XM).C\____A575E.![/P```#'A1#___\`````QX44____`````(N%$/___XM5"(E$)`2+ -XM0AB)!"3H_/___X7`B840____#X0Z!@``BY40____C46TB40D!(D4).C\____ -XMA<`/A$D&``"+30B+1;2+24")A0S___^)C0C___^+C13___^%R0^%?P(``(M5 -XMS(F5%/___XM%N(/X"'2)A"C`````````#'@H@````` -XM`@``QP0D``(``.C\____BTT(A<")@80````/A$<%``"+A2C___^+E2C___^+ -XM0`B)A3#___\#0A0YA3#___^)A2#___\/@M$```#IZ0$``(M%"(NXC````(M- -XM"(N1B````(N-'/___XT$#SG0%6/___P````")1"0$B10DB8U4 -XM____Z/S___^%P`^$HO[__XN5)/___XM%".B"^O__A6UT86(`+G-T'0`+G)E;"YT97AT`"YD871A`"YB0!S=')L96X`mcs.o.uu << '4890727b4c22736e61623154688c0ec6' -Xbegin 644 mcs.o -XM?T5,1@$!`0D```````````$``P`!``````````````!\"0```````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&(E4)`3'1"0(`````(D$).C\____ -XM,=*%P'0),=*#>"``#Y7"R8G0PXUV`%6)Y8/L&(E4)`3'1"0(`````(D$).C\ -XM____,=*%P'0),=*#>!@`#Y7"R8G0PXUV`%6)Y8/L&,=$)`@`````B50D!(D$ -XM).C\____A575E.![/P```#'A1#___\`````QX44____`````(N%$/___XM5"(E$)`2+ -XM0AB)!"3H_/___X7`B840____#X0Z!@``BY40____C46TB40D!(D4).C\____ -XMA<`/A$D&``"+30B+1;2+24")A0S___^)C0C___^+C13___^%R0^%?P(``(M5 -XMS(F5%/___XM%N(/X"'2)A"C`````````#'@H@````` -XM`@``QP0D``(``.C\____BTT(A<")@80````/A$<%``"+A2C___^+E2C___^+ -XM0`B)A3#___\#0A0YA3#___^)A2#___\/@M$```#IZ0$``(M%"(NXC````(M- -XM"(N1B````(N-'/___XT$#SG0%6/___P````")1"0$B10DB8U4 -XM____Z/S___^%P`^$HO[__XN5)/___XM%".B"^O__A6UT86(`+G-T``!4!P```A8``%P'```!"```;`<` -XM``(7``!T!P```0@``(`'```"'@``C`<```(6``"4!P```0@``*0'```"%P`` -XML`<```(6``"X!P```0@``,@'```"%P``T`<```(6``#8!P```0@``.@'```" -X;%P``\`<```(6``#X!P```0@```@(```"%P`` -X` -Xend -4890727b4c22736e61623154688c0ec6 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.err b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.eval b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.out b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.sh b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.sh deleted file mode 100644 index 7880525a..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/elfcopy-noops-7.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest elfcopy-noops-7 tc/elfcopy-noops-7 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${ELFCOPY} sections.o.debug sections.o.debug.1" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/in/elfcopy-noops-7.in.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/in/elfcopy-noops-7.in.shar deleted file mode 100644 index 959c4dce..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/in/elfcopy-noops-7.in.shar +++ /dev/null @@ -1,708 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.debug.uu -# -echo x - sections.o.debug.uu -sed 's/^X//' >sections.o.debug.uu << 'END-of-sections.o.debug.uu' -Xbegin 644 sections.o.debug -XM?T5,1@$!`0D```````````$``P`!``````````````!86@```````#0````` -XM`"@`&0`6`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM) -XM$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,` -XM``D3`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L-``,(.@L["TD3.`H` -XM``P5`2<,21,!$P``#04`21,```X3``,./`P```\!`4D3`1,``!`A`$D3+PL` -XM`!$3`0L+.@L["P$3```2%@`#"#H+.PM)$P``$P0!"PLZ"SL+`1,``!0H``,. -XM'`T``!4N`0,..@L["R<,$0$2`4`&`1,``!8%``,(.@L["TD3`@8``!4P````,W!@`` -XM!6-W````!P2B````!P3M````"*(````#Z`(```7DEP````/"`0```B^P```` -XM"94'```(`D8Q`0``"FX$```"1S$!```"(P`*4P````"(SP*O0@` -XM``)\VP(```(C0`IW"````GWK`@```B-#"U]L8@`"@`@!```"(T0*L`8```*# -XM3`````(C3`IJ`@```H3]`````B-0``P!3````&D"```-O@`````'!%D"```, -XM`4P```")`@``#;X````-X0````U,``````<$;P(```P!_0```*D"```-O@`` -XM``W]````#4P`````!P2/`@``#`%,````R0(```V^````#><````-3``````' -XM!*\"```."P````$'!,\"```/+````.L"```0NP````(`#RP```#[`@``$+L` -XM``````.5"````H4W`0```Z\'```&)LL````#G0````8JRP````\L````+`,` -XM`!"[````#P`1"`9Z40,```K/!0``!GL&`P```B,`"FD#```&?!$#```"(P0` -XM`WX$```&?2P#```#``````%B`,```(C"``#D04```>&"P4``!)%;&8` -XM""9&!0``#B$(```!`QX!```()U<%```.,@$```$3!`@V]@4``!0@!0```!2V -XM!````12!`P```A1?`P```Q1+!```!!2:"```!11P`P``!A0^````!Q13`P`` -XM"!2+`P``"10S!```"A1`!P``"Q0E!@``#!3=`@``#13F!```#A2K"```#Q0$ -XM`0``$!1Z`@``$13V`@``$A2*,&```"(P``"?D%```P"&BC -XM!@``"KD&```(;-8````"(P`*P00```AMO@````(C"`I0!@``"&[6`````B,, -XM"E$````(;]8````"(Q0*[P(```AP]@4```(C'`KE!@``"'%>`````B,@"NH` -XM```(=JD&```"(R0*<`<```AW7@````(C*`H4!```"'@!!@```B,L``<$&`8` -XM``<$3`4```-?!P``"'D8!@```^`````)+F`$```#N`$```DP``4```/&!0`` -XM"3(P!0``$00*)/(&```*&P8```HD&P<```(C```)5@0```@*(1L'```*EP8` -XM``HBYP````(C``IL`0``"B3;!@```B,$``<$\@8``!$$"C8X!P``"AL&```* -XM-NT'```"(P``";L%```P"BCM!P``"I<&```**><````"(P`*#`4```HJYP`` -XM``(C!`IS!0``"BOG`````B,("IX#```*+.<````"(PP+861D``HN3`````(C -XM$`K;`0``"B],`````B,4"OX#```*,$P````"(Q@*AP$```HQ3`````(C'`K@ -XM!0``"C),`````B,@"B0````*,TP````"(R0*#00```HT3`````(C*`JG!@`` -XM"C8A!P```B,L``<$.`<``!$$"C\*"```"AL&```*/T\(```"(P``"74!```0 -XM"CI/"```"I<&```*.^$````"(P`*:`<```H\X0````(C!`K'!```"CWR```` -XM`B,("A0````*/_,'```"(PP`!P0*"```$0@*4GH(```*\`````I25@D```(C -XM``J=`0``"E)<"0```B,$``F`!@``6`I#5@D```J7!@``"D3G`````B,`"VES -XM``I%J08```(C!`MOT!```("E^P"0``"L$&```*7U8)```"(P`*I@<` -XM``I?7`D```(C!``1!`I@QPD```H;!@``"F`V"@```B,```G`````,`I7-@H` -XM``MO9F8`"EC6`````B,`"V9S>@`*6=8````"(P@+;7-Z``I:U@````(C$`H0 -XM!P``"EO6`````B,8"B0````*74P````"(R`*?P<```I?APD```(C)`H)`P`` -XM"F"P"0```B,L``<$QPD``!,$"H1C"@``%*P#````%+8````!%)4$```"%)D" -XM```#%(@&```$`!$("IB("@``"@@"```*F#8*```"(P`*SP,```J8B`H```(C -XM!``'!#8*```1"`J9LPH```H(`@``"IGM!P```B,`"L\#```*F;,*```"(P0` -XM!P3M!P``$0@*FMX*```*"`(```J:3P@```(C``K/`P``"IK>"@```B,$``<$ -XM3P@``!$("IP)"P``"@@"```*G!L'```"(P`*SP,```J<"0L```(C!``'!!L' -XM```1"`J>-`L```H(`@``"IX;!P```B,`"L\#```*G@D+```"(P0`$0@*H%D+ -XM```*P08```J@5@D```(C``JF!P``"J!<"0```B,$`!$$"J)P"P``"E\%```* -XMHE8)```"(P``"3\"``"("F8�``"D0!```*9^<````"(P`*L`0```IJ3``` -XM``(C!`HX`@``"FM,`````B,("VEE8P`*;4P````"(PP+;V5C``IN3`````(C -XM$`ME:6X`"F\�```B,4"GL&```*<`8-```"(Q@*I0,```IR3`````(C'`HW -XM````"G-,`````B,@"E0(```*>4P````"(R0*_08```IZ3`````(C*`HN`P`` -XM"GM,`````B,L"J8!```*?$P````"(S`*FP4```I]3`````(C-`I(!0``"GY, -XM`````B,X"M8"```*@%8)```"(SP*)@@```J!5@D```(C0`H_!0``"H)6"0`` -XM`B-$"M\'```*BCP*```"(T@*$@,```J33`````(C3`H;!```"I8Q`0```B-0 -XM"AX````*F&,*```"(U0*7@0```J9C@H```(C7`K/`@``"IJY"@```B-D"B8! -XM```*G.0*```"(VP*60$```J>#PL```(C=`I_!P``"J`T"P```B-\"E@'```* -XMHED+```#(X0!``<$.P4``!5D"````9H!`````'0`````````3@T``!9E8W`` -XM`9E.#0``+````!9S96,``9E6"0``50```!=S``&;5@D```%1``<$<`L``!@! -XM,@4```$-`P&`````;0(``(D```"L#0``&65C<``!#`-.#0``M0```!IS``$. -XM`U8)``#K````&[<#```!#P.L#0``"0$``!QS:``!$`/%!@```Y&L?P`'!*\& -XM```8`2L````!WP(!<`(``'P#```]`0``)0X``!EE8W```=X"3@T``&D!```: -XM("3````.8!```=3@,```'B`DP`````'@L&```!T`(!@`,``/(#```$ -XM`@``;0X``!EE8W```<\"3@T``#`"```?EP8```'/`N<```!#`@``&G,``=$" -XM5@D``&P"````&`%`!@```9D"`0`$```#!@``B@(``.\.```996-P``&8`DX- -XM``"V`@``&G-A``&:`D\(``#6`@``&Z@````!FP)6"0``]`(``"!S``&;`E8) -XM```:;V0``9P"K`T``!(#```:;W,``9T"J08``#L#```<;W-H``&>`L4&```# -XMD:Q_`!@!?0$```%T`@$0!@``)@<``%D#``!&#P``&7,``7,"5@D``(4#```: -XM:60``74"K`T``-(#```:;V0``74"K`T``/L#```;J00```%V`DP````D!``` -XM`!@!\00```%@`@$P!P``:0@``$($``"_#P``&65C<``!7P).#0``;@0``!EI -XM@@````DR0$```%5`4P```!@ -XM#```E@P``(T(``!Q$0``%F5C<``!5$X-``"Y"```(I<&```!5.<```#,"``` -XM(W-A8P`!5NT'``#?"````"6Z!P```38!3`````&F$0``)F5C<``!-4X-```G -XMEP8```$UYP```"@I!(``#%?8P`"AP%,````,5]P -XM``*'`7@2````!P3[`@``'L,(```!'P(!H!```(@1``!X"@```1,``!ED``$> -XM`N<```"D"@``&7-Z``$>`O(```#-"@``&F,``2`"YP```/8*```R3Q(``"`` -XM```!)`+A$@``,VP2```4"P``+6$2````-$\2```X`````28",VP2```]"P`` -XM,V$2``!Q"P`````U$0$```%3`0$!I1,``#%E8W```5(!3@T``#%S``%2`58) -XM```@=``!5`%6"0``'9<&```!50'G````(&ES:``!5@'%!@``(')E;``!5P'0 -XM!@``'5D%```!6`&E$P``'?<&```!60&K$P``(&ED``%:`:P-```=J00```%; -XM`4P````@:0`!6P%,````';4%```!6P%,````(&-A<``!6P%,``````<$40,` -XM``<$,`4``"4C!P```7D!3`````'9$P``)F5C<``!>$X-```GEP8```%XYP`` -XM```UUP0```'7`0$!>A0``#%E8W```=8!3@T``#%S``'6`58)```@T'```=!P0```'9`?(````=`@(```'9`?(````@<``!V0'R````(&QE;@`! -XMV0'R````(&(``=H!X0```"!C``':`>$````@9``!V@'A````('-R8P`!V@'A -XM````(&5N9``!V@'A````'?D````!VP%,`````#![!0```4`"`;X````!SQ0` -XM`#%S``$_`E8)```VQP0```$_`L\4```@:60``4$"K`T``"!B``%"`N$````@ -XM<5```M&Q,``"T/$P``-Y`````O)1,``.8+```O -XM+Q,``!H,```X.Q,```.1G'\X1Q,```*17"]3$P``.`P``#A?$P```W6(?SAK -XM$P```W6$?R]V$P``Q`P``#F"$P``.8P3```YF!,`````,K$3```8`0```4,! -XM!A8``#/-$P``^`P``"W"$P```#+9$P``,`$```%$`:\6```M\Q,``"WG$P`` -XM-V`!```O_1,``!8-```O"10``#0-```Y%10``#DA%```+RL4``"1#0``.3<4 -XM```O010``/$-```O2Q0``#8.```Y510``#AA%````W6,?SEM%```-'H4``#P -XM`0```=T!+984```MC!0``#<0`@``+Z(4``"6#@``.:T4```YMQ0``"_"%``` -XM(@\````````ZU10``(L4``"W%````4@!X18``"WQ%```+>84```NI!0``+<4 -XM```O_!0``$L/`````#0(%0``0`(```%)`2T6%0``-W`"```O(!4``'0/```O -XM*Q4``+X/```T3Q(``+`"```!.P(S;!(``-P/```M81(````````[9`0```** -XM>!(```$!/$<"```"H`%,`````0$`<`0```(`N`````$!^PX*``$!`0$````! -XM+W5S7,``'-E8W1I;VYS+F,`````K?P\/`#00CAE0@L"!,(+`AT",IL#40BW9@@ZY0-L<68(.M<9@RPB=!`(#XGX(5;H$`0.9?P(N`;H#Y0#%`YM_J<>?""V.@`-V1P,DQ0-BJ0,* -XM[P@6`[U^Q0/2`P(G`?ZL"*H#=V,(JG(#\WWO`Q\('0B2QG((<`,)C;@#YP$( -XM*U8#B7]_"%T(=0@MD0@>9)HZ90@>ME>4-3WFSHX#"P@K`VF;`Q"@I(&9A:6QE9#H@)7,`-C8X(&=E;&9?9V5T6UT86(`+G-T@P```$`4```````````8`P``'H,```!`%(``````````'P, -XM``"(#````0!0D@P``)4,```!`%```````````*`,``"A#````@!T!*$,``"C -XM#````@!T"*,,``"6$````@!U"```````````H`P``,L,```"`)$`RPP``)80 -XM```"`'4(```````````R#0``6`\```$`4Y#P``K@\```$`4'80 -XM``!^$````0!0``````````!##@``1@X```$`4$4/``""#P```0!0```````` -XM``"@$```H1````(`=`2A$```HQ````(`=`BC$```B!$```(`=0@````````` -XM`*`0``"Y$````0!0Y1```/$0```!`%`=$0``)1$```$`4```````````H!`` -XM`+00```!`%+E$```Z!````$`4AT1```E$0```0!2``````````"R$```(1$` -XM``$`4R41``"($0```0!3``````````##$```Z!````$`4AT1```E$0```0!2 -XM%@```0!7MA8``,L6```!`%?7%@``KQ@```$`5]T8``#E&````0!7```` -XM``````#.%P``UA<```$`4%$8``!H&````0!0:Q@``(D8```!`%#=&```Y1@` -XM``$`4```````````/A(``$,2```!`%*&%0``BQ4```$`4@``````````ZA4` -XM`/(5```!`%!<%@``7!8```$`4```````````M!$``(P3```#`'6@?XP3``"4 -XM$P```0!2E!,``#T6```#`'6@?ST6``!`%@```0!20!8``&L6```#`'6@?VL6 -XM``!P%@```0!28%0``'Q8```$`5X06``"> -XM%@```0!7MA8``,L6```!`%?.%P``[A<```$`5P``````````M!$``-\3```# -XM`'60?]\3```"%````0!0`A0``*H5```#`'60?ZH5``"P%0```0!0L!4``.48 -XM```#`'60?P``````````M!$``-H1```!`%8`$@``"!(```$`5M,3```Y%0`` -XM`0!64Q4``($5```!`%:8%0``ZA4```$`5H06``">%@```0!6MA8``,L6```! -XM`%;.%P``[A<```$`5@``````````31(``-$2```!`%-1$P``Z!,```$`4_83 -XM```:%````0!3*Q0``$04```!`%-4%```@Q0```$`4SD5```\%0```0!34Q4` -XM`%85```!`%.J%0``^!4```$`4Q\6```H%@```0!3/18``&<6```!`%-P%@`` -XMA!8```$`4\X7```"&````0!3``````````!8$P``=Q,```$`4#D5```_%0`` -XM`0!0SA<``-87```!`%```````````+01``#'$0```0!0`!(```L2```!`%"F -XM%```KQ0```$`4```````````M!$``,T1```!`%,`$@``!Q(```$`4],4```Y -XM%0```0!3A!8``)X6```!`%.V%@``RQ8```$`4\X7``#N%P```0!3```````` -XM``#_%```"Q4```$`4,X7``#6%P```0!0``````````"T$0``[Q$```$`4@`2 -XM```^$@```0!2T1(``-02```!`%(9%0``.14```$`4K86``#&%@```0!2```` -XM``````"W`````@``````0Q<``%0-``!S971?5]S:&1R`+\/``!R97-Y;F-?$```%@``MA8``.,2``!1$P`` -XM``````````#U$@``41,``,48``#E&```D1@``+D8``!/&```:Q@``#(8``!* -XM&```#A@``"88``"X%P``SA<``(87``"L%P``;!<``'H7``!5%P``71<``"X7 -XM```Q%P``'Q<``"L7``#_%@``!1<``/H6``#\%@``U18``.46``">%@``MA8` -XM````````````.1(``&`2``"!%0``F!4`````````````8!(``-$2``#N%P`` -XM`A@``*H5``"$%@``.14``($5``!1$P``@!0`````````````8!(``-$2``#N -XM%P```A@``'`6``"$%@``^!4``#T6``#R%0``]A4``.<5``#J%0``JA4``,L5 -XM``!&%0``@14``&$4``"`%```/A0``%04```B%```*Q0``!<4```:%```LA,` -XM`!04``"9$P``J!,``)03``"6$P``@1,``(P3``!1$P``=!,````````````` -XM8!(``-$2``!P%@``A!8``%$3``!>$P````````````!Q$@``GA(``'`6``"$ -XM%@``5A,``%X3``"T$@``P1(``+`2``"R$@````````````"W%```.14``,X7 -XM``#N%P``MA8``-46``"$%@``GA8``)@5``"J%0````````````"W%```X!0` -XM`-87``#N%P``MA8``-46``"8%0``JA4``/T4```Y%0``]A0``/@4``#R%``` -XM]!0`````````````&14``#D5``"V%@``U18`````````````16QF-C1?061D -XM<@!?7W-&24Q%6`!S861D7VQI6U?5]D871A`&-O<'D`95]E;G1R>0!U:6YT,S)?=`!T -XM<65?<')E=@!S96-T:6]N0!C;VUP@!R96YA;64` -XM9%]N97AT`'9?F5? -XM=`!I7!E -XM`&1?=F5R7!E`'5N```"````!<````(````!`````@```!>`````0`` -XM````````````"C@``#````````````````$`````````9P````$````R```` -XM`````#HX``":`@`````````````!`````0```'8````!````,@````````#4 -XM.@``+0``````````````!`````$```")`````0``````````````!#L``.0! -XM``````````````0`````````A0````D``````````````&!X``#P````%P`` -XM``T````$````"````)8````!``````````````#H/```&Q`````````````` -XM`0````````"E`````0```````````````TT``+L```````````````$````` -XM````H0````D``````````````%!Y```(````%P```!`````$````"````+D` -XM```!``````````````"^30``(````````````````0````````"U````"0`` -XM````````````6'D``!`````7````$@````0````(````R`````$````````` -XM`````-Y-``#(`@`````````````!`````````-8````!````,`````````"F -XM4```S@@``````````````0````$````1`````P``````````````=%D``.$` -XM``````````````$``````````0````(``````````````$!>```P!```&``` -XM`!8````$````$`````D````#``````````````!P8@``8`(````````````` -XM`0```````````````````````````````0``````````````!`#Q_P`````` -XM``````````,``0`````````````````#``,``````````````````P`$```` -XM``````````````,`!0`````````````````#``8``````````````````P`( -XM``P`````````=`````(``0`````````````````#``L`'P```(`#``!R```` -XM`@`!``````````````````,`#``O````,`P``"T````"``$`0P```&`,```V -XM`````@`!`%4```"@$```Z`````(``0`````````````````#``T````````` -XM`````````P`/``````````````````,`$``````````````````#`!(````` -XM`````````````P`4``````````````````,`%0`````````````````#``H` -XM8````(````#M`0``$@`!`&T``````````````!````!Z```````````````0 -XM````A@``````````````$````)<``````````````!````"B```````````` -XM```0````L@``````````````$````+H``````````````!````#%```````` -XM```````0````R@```'`"```,`0``$@`!`-8``````````````!````#D```` -XM```````````0````[@``````````````$````/\`````!````P(``!(``0`/ -XM`0`````````````0````&@$`````````````$````"$!`````````````!`` -XM```E`0``$`8``!8!```2``$`+P$`````````````$````#L!```P!P``.0$` -XM`!(``0!%`0`````````````0````3P$``'`(``#P`0``$@`!`%\!```````` -XM`````!````!E`0``8`H``"@!```2``$`<@$`````````````$````'\!```` -XM`````````!````"*`0``D`L``)<````2``$`F0$`````````````$````*`! -XM`````````````!````"G`0``H`P``/8#```2``$`L@$`````````````$``` -XM`,(!`````````````!````#4`0`````````````0````X`$````````````` -XM$````.L!`````````````!````#X`0`````````````0`````@(````````` -XM````$`````<"`````````````!`````/`@``D!$``%4'```2``$`'`(````` -XM````````$````"H"`````````````!`````Q`@`````````````0````.`(` -XM````````````$````$`"`````````````!````!,`@`````````````0```` -XM`'-E8W1I;VYS+F,`:6YS97)T7W1O7W-E8U]L:7-T`&%D9%]T;U]S:'-T5]S:&1R`%]?=61I=F1I,P!R97-Y;F-?'1S8VX`96QF7W-T```)`@```AT``!$"```!"0``(0(```(>```M`@```AT``#4"```!"0`` -XM10(```(>``!1`@```AT``%D"```!"0``:0(```(>``"1`@```A<``*8"```" -XM(```TP(```(:``#K`@```AD``/L"```"(0``'`,```(=```D`P```0D``#0# -XM```"'@``0`,```(=``!(`P```0D``%@#```"'@``8`,```(=``!H`P```0D` -XM`'@#```"'@``H`,```(B``"T`P```0D``+P#```"(@``Q`,```$)``#,`P`` -XM`B(``-0#```!"0``W`,```(B``#D`P```0D``.P#```"(@``)`0```$)``!* -XM!````B0``&@$```")0``PP0```(8```8!0```A<``$`%```"&0``9P4```(= -XM``!O!0```0D``'\%```"'@``AP4```$)``"3!0```B8``)\%```"'0``IP4` -XM``$)``"W!0```AX``,,%```"'0``RP4```$)``#;!0```AX``.<%```"'0`` -XM[P4```$)``#_!0```AX``#<&```"&```BP8```(H``"6!@```B$``.H&```" -XM'0``\@8```$)```"!P```AX```H'```"'0``$@<```$)```B!P```AX``$P' -XM```"%P``9@<```(7``#K!P```AD```4(```"'0``#0@```$)```="````AX` -XM`"D(```"'0``,0@```$)``!!"````AX``$T(```"'0``50@```$)``!E"``` -XM`AX``.@(```"*@``2PD```(7``!]"0```AD``.T)```"*@``#0H```$+```2 -XM"@```BP``"`*```"'0``*`H```$)```X"@```AX``$0*```"'0``3`H```$) -XM``!<"@```AX``'D*```"+@``E0H```(E``#L"@```B\``#0+```"'0``/`L` -XM``$)``!,"P```AX``%@+```"'0``8`L```$)``!P"P```AX``'@+```!"0`` -XMA`L```(>``"Y"P```C$``-P+```",@``%PP```$)```C#````AX``$8,```" -XM,```=@P```(P``"Y#````B4``,T,```!"0``&@T```(T```V#0```0D``&0- -XM```")0``N0T```(U``#*#0```B0``.`-```"&@``^`T```$)```)#@```0D` -XM`"4.```!"0``5`X```(V``!Q#@```A<``)4.```"-P``K0X```$)``#L#@`` -XM`BD``/D.```!"0``-0\```(P``!X#P```0D``)@/```"(0``M@\```(=``"^ -XM#P```0D``,X/```"'@``V@\```(=``#B#P```0D``/(/```"'@``_@\```(= -XM```&$````0D``!80```"'@``(A````(=```J$````0D``#H0```"'@``0A`` -XM``$)``!.$````B8``%H0```"'0``8A````$)``!R$````AX``'H0```"'0`` -XM@A````$)``"2$````AX``+40```!.```OQ````$Y``#M$````3@``/<0```! -XM.0``)A$```$Y```V$0```CH``$$1```!.0``4!$```(Z``!J$0```CL``'\1 -XM```".P``SA$```$)``#K$0```CT```P2```!"0``'1(```$)``!J$@```C(` -XM`)02```"/@``K!(```(H``#($@```C(``/$2```"%P``4A,```(A``"0$P`` -XM`C(``!L4```"/P``-A0```(Q``"'%````B<``*`4```",```[A0```(H``#Y -XM%````B$```<5```!.```%14```$Y``!E%0```D```+\5```"0```XQ4```(P -XM``#N%0```C\```86```"0```-!8```(^``!5%@```C```&`6```"/P``=!8` -XM``$)``"`%@```B8``(46```!.0``E18```(Z``#"%@```CL``/86```"*``` -XM&Q<```)!```[%P```AH``%$7```"-P``:!<```)"``""%P```C(``+07```" -XM,@``TA<```(=``#:%P```0D``.H7```"'@``\A<```$)``#^%P```B8```H8 -XM```"'0``$A@```$)```B&````AX``"X8```"'0``-A@```$)``!&&````AX` -XM`$L8```"(0``C1@```(O``#!&````AT``,D8```!"0``V1@```(>```&```` -XM`04```P````!%```$0````$4```5`````10``!D````!`@``'0````$"```A -XM`````0<``"@````!%```+P````$4```V`````10``#L````!%```2`````$4 -XM``!4`````10``&$````!%```9@````$4``!S`````10``'@````!%```A0`` -XM``$4``",`````10``),````!%```F`````$4``"E`````10``*P````!%``` -XML0````$4``#!`````10``,P````!%```UP````$4``#S`````10``/X````! -XM%```"0$```$4```5`0```10``",!```!%```.`$```$4``!K`0```10``'D! -XM```!%```E0$```$4``"C`0```10``+$!```!%```OP$```$4``#-`0```10` -XM`-L!```!%```]P$```$4```3`@```10``"$"```!%```/0(```$4``!+`@`` -XM`10``-`"```!%```_`(```$4```'`P```10``!(#```!%```-0,```$4``!# -XM`P```10``%(#```!%```70,```$4``!H`P```10``',#```!%```?@,```$4 -XM``")`P```10``)P#```!%```J@,```$4``"X`P```10``,8#```!%```U`,` -XM``$4``#B`P```10``/`#```!%```_@,```$4```,!````10``!H$```!%``` -XM*`0```$4```V!````10``$0$```!%```4@0```$4``!A!````10``'0$```! -XM%```@@0```$4``"0!````10``)X$```!%```K`0```$4``"Z!````10``,@$ -XM```!%```U@0```$4``#D!````10``/($```!%````04```$4```4!0```10` -XM`"(%```!%```,04```$4``!'!0```10``$T%```!%```6`4```$4``!F!0`` -XM`10``&P%```!%```<@4```$4``!X!0```10``'X%```!%```A`4```$4``"* -XM!0```10``)`%```!%```E@4```$4``""````10``&P(```!%```>P@```$4``"'"````10``.8(```!%``` -XM]`@```$4```0"0```10``!X)```!%```+`D```$4```Z"0```10``$@)```! -XM%```:PD```$4``!Y"0```10``(@)```!%```E`D```$4``"B"0```10``+D) -XM```!%```R`D```$4``#^"0```10```P*```!%```&@H```$4```H"@```10` -XM`$4*```!%```2PH```$4``!1"@```10``%<*```!%```70H```$4``!L"@`` -XM`10``'H*```!%```EPH```$4``"E"@```10``,(*```!%```T`H```$4``#M -XM"@```10``/L*```!%```&`L```$4```F"P```10``#T+```!%```2PL```$4 -XM``!B"P```10``'$+```!%```?0L```$4``"+"P```10``)D+```!%```T0L` -XM``$4``#?"P```10``.T+```!%```^PL```$4```)#````10``!<,```!%``` -XM)0P```$4```S#````10``$$,```!%```3PP```$4``!=#````10``&L,```! -XM%```>0P```$4``"'#````10``)4,```!%```HPP```$4``"Q#````10``+\, -XM```!%```S0P```$4``#;#````10``.D,```!%```]PP```$4```-#0```10` -XM`!0-```!`@``&`T```$"```<#0```1```"\-```!$```/@T```$0``!6#0`` -XM`10``%X-```!`@``8@T```$"``!F#0```1```'H-```!$```B`T```$0``"- -XM#0```10``)@-```!$```M`T```$4``"\#0```0(``,`-```!`@``Q`T```$0 -XM``#8#0```1```.8-```!$```]`T```$0```)#@```10``!0.```!$```&0X` -XM``$4```F#@```10``"X.```!`@``,@X```$"```V#@```1```$H.```!$``` -XM3PX```$4``!:#@```1```&@.```!$```;PX```$4``!W#@```0(``'L.```! -XM`@``?PX```$0``"3#@```1```*(.```!$```IPX```$4``"R#@```1```,L. -XM```!$```V@X```$0``#Q#@```10``/D.```!`@``_0X```$"```!#P```1`` -XM`!,/```!$```(@\```$0```Q#P```1```#8/```!%```00\```$0``!(#P`` -XM`10``%`/```!`@``5`\```$"``!8#P```1```&P/```!$```>P\```$0``"* -XM#P```1```(\/```!%```F@\```$0``#!#P```10``,D/```!`@``S0\```$" -XM``#1#P```1```.4/```!$```\P\```$0```3$````1```!H0```!%```)1`` -XM``$"```I$````0(``"T0```!$```0!````$0``!.$````1```%,0```!%``` -XM7A````$0``!S$````10``'X0```!$```A1````$4``"0$````0(``)00```! -XM`@``F!````$0``"K$````1```+`0```!%```NA````$0``#)$````1```-@0 -XM```!$```WA````$4``#I$````0(``.T0```!`@``\1````$0```$$0```1`` -XM``D1```!%```$Q$```$0```B$0```1```"@1```!%```,Q$```$"```W$0`` -XM`0(``#L1```!$```3A$```$0``!3$0```10``%T1```!$```;!$```$0``!R -XM$0```10``(X1```!%```J!$```$4``"O$0```0(``+,1```!`@``MQ$```$0 -XM``#*$0```1```-<1```!$```W!$```$4``#F$0```1```/01```!$```"!(` -XM``$4```2$@```1```!<2```!%```(1(```$0```J$@```1,``#L2```!`@`` -XM/Q(```$"``!($@```1```%`2```!%```?Q(```$4``"'$@```0(``(L2```! -XM`@``CQ(```$0``"A$@```1```+`2```!$```OA(```$0``#'$@```1,``-<2 -XM```!$```YA(```$3``#R$@```1```/L2```!$````A,```$4```P$P```10` -XM`%03```!%```8!,```$4``!W$P```10``(T3```!%```LA,```$4``#.$P`` -XM`10``-H3```!%```"A0```$4```6%````10``&X4```!%```>Q0```$4``"7 -XM%````10``,,4```!%```UA0```$4``#R%````10```D5```!%```+!4```$4 -XM```Z%0```10``$(5```!`@``1A4```$"``!*%0```1```%X5```!$```=14` -XM``$3``"+%0```1,``)05```!$```G14```$0``"W%0```1```-(5```!$``` -XM[!4```$3``#\%0```1````L6```!$P``(18```$3```J%@```1```#,6```! -XM$```1A8```$0``!4%@```1```%T6```!$```>18```$3``"+%@```1,``)06 -XM```!$```IQ8```$0``"T%@```0(``+@6```!`@``SA8```$"``#2%@```0(` -XM`-L6```!$```YA8```$3``#S%@```1,``/P6```!$```!1<```$0```.%P`` -XM`1,``!H7```!$```*!<```$4```U%P```10``,4````!`@``&`````$/```< -XM`````0(``#@````!#P``/`````$"``!8`````0\``%P````!`@``>`````$/ -XM``!\`````0(``)@````!#P``G`````$"``"X`````0\``+P````!`@``V``` -XM``$/``#<`````0(``/@````!#P``_`````$"```8`0```0\``!P!```!`@`` -XM.`$```$/```\`0```0(``%@!```!#P``7`$```$"``!P`0```0\``'0!```! -XM`@``B`$```$/``",`0```0(``*@!```!#P``K`$```$"``#(`0```0\``,P! -X>```!`@``!@````$&```&`````08``!`````!`@`` -X` -Xend -END-of-sections.o.debug.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/out/elfcopy-noops-7.out.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/out/elfcopy-noops-7.out.shar deleted file mode 100644 index 5e5ec6cf..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-7/out/elfcopy-noops-7.out.shar +++ /dev/null @@ -1,1408 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.debug.1.uu -# sections.o.debug.uu -# -echo x - sections.o.debug.1.uu -sed 's/^X//' >sections.o.debug.1.uu << '7441d94dfba58dda29235b0205ebc7b3' -Xbegin 644 sections.o.debug.1 -XM?T5,1@$!`0D```````````$``P`!``````````````#(=0```````#0````` -XM`"@`&0`6`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM) -XM$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,` -XM``D3`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L-``,(.@L["TD3.`H` -XM``P5`2<,21,!$P``#04`21,```X3``,./`P```\!`4D3`1,``!`A`$D3+PL` -XM`!$3`0L+.@L["P$3```2%@`#"#H+.PM)$P``$P0!"PLZ"SL+`1,``!0H``,. -XM'`T``!4N`0,..@L["R<,$0$2`4`&`1,``!8%``,(.@L["TD3`@8``!4P````,W!@`` -XM!6-W````!P2B````!P3M````"*(````#Z`(```7DEP````/"`0```B^P```` -XM"94'```(`D8Q`0``"FX$```"1S$!```"(P`*4P````"(SP*O0@` -XM``)\VP(```(C0`IW"````GWK`@```B-#"U]L8@`"@`@!```"(T0*L`8```*# -XM3`````(C3`IJ`@```H3]`````B-0``P!3````&D"```-O@`````'!%D"```, -XM`4P```")`@``#;X````-X0````U,``````<$;P(```P!_0```*D"```-O@`` -XM``W]````#4P`````!P2/`@``#`%,````R0(```V^````#><````-3``````' -XM!*\"```."P````$'!,\"```/+````.L"```0NP````(`#RP```#[`@``$+L` -XM``````.5"````H4W`0```Z\'```&)LL````#G0````8JRP````\L````+`,` -XM`!"[````#P`1"`9Z40,```K/!0``!GL&`P```B,`"FD#```&?!$#```"(P0` -XM`WX$```&?2P#```#``````%B`,```(C"``#D04```>&"P4``!)%;&8` -XM""9&!0``#B$(```!`QX!```()U<%```.,@$```$3!`@V]@4``!0@!0```!2V -XM!````12!`P```A1?`P```Q1+!```!!2:"```!11P`P``!A0^````!Q13`P`` -XM"!2+`P``"10S!```"A1`!P``"Q0E!@``#!3=`@``#13F!```#A2K"```#Q0$ -XM`0``$!1Z`@``$13V`@``$A2*,&```"(P``"?D%```P"&BC -XM!@``"KD&```(;-8````"(P`*P00```AMO@````(C"`I0!@``"&[6`````B,, -XM"E$````(;]8````"(Q0*[P(```AP]@4```(C'`KE!@``"'%>`````B,@"NH` -XM```(=JD&```"(R0*<`<```AW7@````(C*`H4!```"'@!!@```B,L``<$&`8` -XM``<$3`4```-?!P``"'D8!@```^`````)+F`$```#N`$```DP``4```/&!0`` -XM"3(P!0``$00*)/(&```*&P8```HD&P<```(C```)5@0```@*(1L'```*EP8` -XM``HBYP````(C``IL`0``"B3;!@```B,$``<$\@8``!$$"C8X!P``"AL&```* -XM-NT'```"(P``";L%```P"BCM!P``"I<&```**><````"(P`*#`4```HJYP`` -XM``(C!`IS!0``"BOG`````B,("IX#```*+.<````"(PP+861D``HN3`````(C -XM$`K;`0``"B],`````B,4"OX#```*,$P````"(Q@*AP$```HQ3`````(C'`K@ -XM!0``"C),`````B,@"B0````*,TP````"(R0*#00```HT3`````(C*`JG!@`` -XM"C8A!P```B,L``<$.`<``!$$"C\*"```"AL&```*/T\(```"(P``"74!```0 -XM"CI/"```"I<&```*.^$````"(P`*:`<```H\X0````(C!`K'!```"CWR```` -XM`B,("A0````*/_,'```"(PP`!P0*"```$0@*4GH(```*\`````I25@D```(C -XM``J=`0``"E)<"0```B,$``F`!@``6`I#5@D```J7!@``"D3G`````B,`"VES -XM``I%J08```(C!`MOT!```("E^P"0``"L$&```*7U8)```"(P`*I@<` -XM``I?7`D```(C!``1!`I@QPD```H;!@``"F`V"@```B,```G`````,`I7-@H` -XM``MO9F8`"EC6`````B,`"V9S>@`*6=8````"(P@+;7-Z``I:U@````(C$`H0 -XM!P``"EO6`````B,8"B0````*74P````"(R`*?P<```I?APD```(C)`H)`P`` -XM"F"P"0```B,L``<$QPD``!,$"H1C"@``%*P#````%+8````!%)4$```"%)D" -XM```#%(@&```$`!$("IB("@``"@@"```*F#8*```"(P`*SP,```J8B`H```(C -XM!``'!#8*```1"`J9LPH```H(`@``"IGM!P```B,`"L\#```*F;,*```"(P0` -XM!P3M!P``$0@*FMX*```*"`(```J:3P@```(C``K/`P``"IK>"@```B,$``<$ -XM3P@``!$("IP)"P``"@@"```*G!L'```"(P`*SP,```J<"0L```(C!``'!!L' -XM```1"`J>-`L```H(`@``"IX;!P```B,`"L\#```*G@D+```"(P0`$0@*H%D+ -XM```*P08```J@5@D```(C``JF!P``"J!<"0```B,$`!$$"J)P"P``"E\%```* -XMHE8)```"(P``"3\"``"("F8�``"D0!```*9^<````"(P`*L`0```IJ3``` -XM``(C!`HX`@``"FM,`````B,("VEE8P`*;4P````"(PP+;V5C``IN3`````(C -XM$`ME:6X`"F\�```B,4"GL&```*<`8-```"(Q@*I0,```IR3`````(C'`HW -XM````"G-,`````B,@"E0(```*>4P````"(R0*_08```IZ3`````(C*`HN`P`` -XM"GM,`````B,L"J8!```*?$P````"(S`*FP4```I]3`````(C-`I(!0``"GY, -XM`````B,X"M8"```*@%8)```"(SP*)@@```J!5@D```(C0`H_!0``"H)6"0`` -XM`B-$"M\'```*BCP*```"(T@*$@,```J33`````(C3`H;!```"I8Q`0```B-0 -XM"AX````*F&,*```"(U0*7@0```J9C@H```(C7`K/`@``"IJY"@```B-D"B8! -XM```*G.0*```"(VP*60$```J>#PL```(C=`I_!P``"J`T"P```B-\"E@'```* -XMHED+```#(X0!``<$.P4``!5D"````9H!`````'0`````````3@T``!9E8W`` -XM`9E.#0``+````!9S96,``9E6"0``50```!=S``&;5@D```%1``<$<`L``!@! -XM,@4```$-`P&`````;0(``(D```"L#0``&65C<``!#`-.#0``M0```!IS``$. -XM`U8)``#K````&[<#```!#P.L#0``"0$``!QS:``!$`/%!@```Y&L?P`'!*\& -XM```8`2L````!WP(!<`(``'P#```]`0``)0X``!EE8W```=X"3@T``&D!```: -XM("3````.8!```=3@,```'B`DP`````'@L&```!T`(!@`,``/(#```$ -XM`@``;0X``!EE8W```<\"3@T``#`"```?EP8```'/`N<```!#`@``&G,``=$" -XM5@D``&P"````&`%`!@```9D"`0`$```#!@``B@(``.\.```996-P``&8`DX- -XM``"V`@``&G-A``&:`D\(``#6`@``&Z@````!FP)6"0``]`(``"!S``&;`E8) -XM```:;V0``9P"K`T``!(#```:;W,``9T"J08``#L#```<;W-H``&>`L4&```# -XMD:Q_`!@!?0$```%T`@$0!@``)@<``%D#``!&#P``&7,``7,"5@D``(4#```: -XM:60``74"K`T``-(#```:;V0``74"K`T``/L#```;J00```%V`DP````D!``` -XM`!@!\00```%@`@$P!P``:0@``$($``"_#P``&65C<``!7P).#0``;@0``!EI -XM@@````DR0$```%5`4P```!@ -XM#```E@P``(T(``!Q$0``%F5C<``!5$X-``"Y"```(I<&```!5.<```#,"``` -XM(W-A8P`!5NT'``#?"````"6Z!P```38!3`````&F$0``)F5C<``!-4X-```G -XMEP8```$UYP```"@I!(``#%?8P`"AP%,````,5]P -XM``*'`7@2````!P3[`@``'L,(```!'P(!H!```(@1``!X"@```1,``!ED``$> -XM`N<```"D"@``&7-Z``$>`O(```#-"@``&F,``2`"YP```/8*```R3Q(``"`` -XM```!)`+A$@``,VP2```4"P``+6$2````-$\2```X`````28",VP2```]"P`` -XM,V$2``!Q"P`````U$0$```%3`0$!I1,``#%E8W```5(!3@T``#%S``%2`58) -XM```@=``!5`%6"0``'9<&```!50'G````(&ES:``!5@'%!@``(')E;``!5P'0 -XM!@``'5D%```!6`&E$P``'?<&```!60&K$P``(&ED``%:`:P-```=J00```%; -XM`4P````@:0`!6P%,````';4%```!6P%,````(&-A<``!6P%,``````<$40,` -XM``<$,`4``"4C!P```7D!3`````'9$P``)F5C<``!>$X-```GEP8```%XYP`` -XM```UUP0```'7`0$!>A0``#%E8W```=8!3@T``#%S``'6`58)```@T'```=!P0```'9`?(````=`@(```'9`?(````@<``!V0'R````(&QE;@`! -XMV0'R````(&(``=H!X0```"!C``':`>$````@9``!V@'A````('-R8P`!V@'A -XM````(&5N9``!V@'A````'?D````!VP%,`````#![!0```4`"`;X````!SQ0` -XM`#%S``$_`E8)```VQP0```$_`L\4```@:60``4$"K`T``"!B``%"`N$````@ -XM<5```M&Q,``"T/$P``-Y`````O)1,``.8+```O -XM+Q,``!H,```X.Q,```.1G'\X1Q,```*17"]3$P``.`P``#A?$P```W6(?SAK -XM$P```W6$?R]V$P``Q`P``#F"$P``.8P3```YF!,`````,K$3```8`0```4,! -XM!A8``#/-$P``^`P``"W"$P```#+9$P``,`$```%$`:\6```M\Q,``"WG$P`` -XM-V`!```O_1,``!8-```O"10``#0-```Y%10``#DA%```+RL4``"1#0``.3<4 -XM```O010``/$-```O2Q0``#8.```Y510``#AA%````W6,?SEM%```-'H4``#P -XM`0```=T!+984```MC!0``#<0`@``+Z(4``"6#@``.:T4```YMQ0``"_"%``` -XM(@\````````ZU10``(L4``"W%````4@!X18``"WQ%```+>84```NI!0``+<4 -XM```O_!0``$L/`````#0(%0``0`(```%)`2T6%0``-W`"```O(!4``'0/```O -XM*Q4``+X/```T3Q(``+`"```!.P(S;!(``-P/```M81(````````[9`0```** -XM>!(```$!/$<"```"H`%,`````0$`<`0```(`N`````$!^PX*``$!`0$````! -XM+W5S7,``'-E8W1I;VYS+F,`````K?P\/`#00CAE0@L"!,(+`AT",IL#40BW9@@ZY0-L<68(.M<9@RPB=!`(#XGX(5;H$`0.9?P(N`;H#Y0#%`YM_J<>?""V.@`-V1P,DQ0-BJ0,* -XM[P@6`[U^Q0/2`P(G`?ZL"*H#=V,(JG(#\WWO`Q\('0B2QG((<`,)C;@#YP$( -XM*U8#B7]_"%T(=0@MD0@>9)HZ90@>ME>4-3WFSHX#"P@K`VF;`Q"@I(&9A:6QE9#H@)7,`-C8X(&=E;&9?9V5T6UT86(`+G-T@P```$`4```````````8`P``'H,```!`%(``````````'P, -XM``"(#````0!0D@P``)4,```!`%```````````*`,``"A#````@!T!*$,``"C -XM#````@!T"*,,``"6$````@!U"```````````H`P``,L,```"`)$`RPP``)80 -XM```"`'4(```````````R#0``6`\```$`4Y#P``K@\```$`4'80 -XM``!^$````0!0``````````!##@``1@X```$`4$4/``""#P```0!0```````` -XM``"@$```H1````(`=`2A$```HQ````(`=`BC$```B!$```(`=0@````````` -XM`*`0``"Y$````0!0Y1```/$0```!`%`=$0``)1$```$`4```````````H!`` -XM`+00```!`%+E$```Z!````$`4AT1```E$0```0!2``````````"R$```(1$` -XM``$`4R41``"($0```0!3``````````##$```Z!````$`4AT1```E$0```0!2 -XM%@```0!7MA8``,L6```!`%?7%@``KQ@```$`5]T8``#E&````0!7```` -XM``````#.%P``UA<```$`4%$8``!H&````0!0:Q@``(D8```!`%#=&```Y1@` -XM``$`4```````````/A(``$,2```!`%*&%0``BQ4```$`4@``````````ZA4` -XM`/(5```!`%!<%@``7!8```$`4```````````M!$``(P3```#`'6@?XP3``"4 -XM$P```0!2E!,``#T6```#`'6@?ST6``!`%@```0!20!8``&L6```#`'6@?VL6 -XM``!P%@```0!28%0``'Q8```$`5X06``"> -XM%@```0!7MA8``,L6```!`%?.%P``[A<```$`5P``````````M!$``-\3```# -XM`'60?]\3```"%````0!0`A0``*H5```#`'60?ZH5``"P%0```0!0L!4``.48 -XM```#`'60?P``````````M!$``-H1```!`%8`$@``"!(```$`5M,3```Y%0`` -XM`0!64Q4``($5```!`%:8%0``ZA4```$`5H06``">%@```0!6MA8``,L6```! -XM`%;.%P``[A<```$`5@``````````31(``-$2```!`%-1$P``Z!,```$`4_83 -XM```:%````0!3*Q0``$04```!`%-4%```@Q0```$`4SD5```\%0```0!34Q4` -XM`%85```!`%.J%0``^!4```$`4Q\6```H%@```0!3/18``&<6```!`%-P%@`` -XMA!8```$`4\X7```"&````0!3``````````!8$P``=Q,```$`4#D5```_%0`` -XM`0!0SA<``-87```!`%```````````+01``#'$0```0!0`!(```L2```!`%"F -XM%```KQ0```$`4```````````M!$``,T1```!`%,`$@``!Q(```$`4],4```Y -XM%0```0!3A!8``)X6```!`%.V%@``RQ8```$`4\X7``#N%P```0!3```````` -XM``#_%```"Q4```$`4,X7``#6%P```0!0``````````"T$0``[Q$```$`4@`2 -XM```^$@```0!2T1(``-02```!`%(9%0``.14```$`4K86``#&%@```0!2```` -XM``````"W`````@``````0Q<``%0-``!S971?5]S:&1R`+\/``!R97-Y;F-?$```%@``MA8``.,2``!1$P`` -XM``````````#U$@``41,``,48``#E&```D1@``+D8``!/&```:Q@``#(8``!* -XM&```#A@``"88``"X%P``SA<``(87``"L%P``;!<``'H7``!5%P``71<``"X7 -XM```Q%P``'Q<``"L7``#_%@``!1<``/H6``#\%@``U18``.46``">%@``MA8` -XM````````````.1(``&`2``"!%0``F!4`````````````8!(``-$2``#N%P`` -XM`A@``*H5``"$%@``.14``($5``!1$P``@!0`````````````8!(``-$2``#N -XM%P```A@``'`6``"$%@``^!4``#T6``#R%0``]A4``.<5``#J%0``JA4``,L5 -XM``!&%0``@14``&$4``"`%```/A0``%04```B%```*Q0``!<4```:%```LA,` -XM`!04``"9$P``J!,``)03``"6$P``@1,``(P3``!1$P``=!,````````````` -XM8!(``-$2``!P%@``A!8``%$3``!>$P````````````!Q$@``GA(``'`6``"$ -XM%@``5A,``%X3``"T$@``P1(``+`2``"R$@````````````"W%```.14``,X7 -XM``#N%P``MA8``-46``"$%@``GA8``)@5``"J%0````````````"W%```X!0` -XM`-87``#N%P``MA8``-46``"8%0``JA4``/T4```Y%0``]A0``/@4``#R%``` -XM]!0`````````````&14``#D5``"V%@``U18`````````````16QF-C1?061D -XM<@!?7W-&24Q%6`!S861D7VQI6U?5]D871A`&-O<'D`95]E;G1R>0!U:6YT,S)?=`!T -XM<65?<')E=@!S96-T:6]N0!C;VUP@!R96YA;64` -XM9%]N97AT`'9?F5? -XM=`!I7!E -XM`&1?=F5R7!E`'5N'-C;@!E -XM;&9?`!I;G-EF4`;&]O:W5P7W-E8U]A8W0``!A9&1?=&]?:6YS96=?;&ES=`!E;&9?;F5X='-C -XM;@!E;&9?0!S=')L96X` -XM0!G96QF7V=E=')E;`!L;V]K=7!?:V5E<%]S>6UL:7-T`)T````" -XM%P``"0$```(8```[`0```AD``(D!```"&@``F`$```(;``#4`0```AP``.4! -XM```"'0``[0$```$)``#]`0```AX```D"```"'0``$0(```$)```A`@```AX` -XM`"T"```"'0``-0(```$)``!%`@```AX``%$"```"'0``60(```$)``!I`@`` -XM`AX``)$"```"%P``I@(```(@``#3`@```AH``.L"```"&0``^P(```(A```< -XM`P```AT``"0#```!"0``-`,```(>``!``P```AT``$@#```!"0``6`,```(> -XM``!@`P```AT``&@#```!"0``>`,```(>``"@`P```B(``+0#```!"0``O`,` -XM``(B``#$`P```0D``,P#```"(@``U`,```$)``#<`P```B(``.0#```!"0`` -XM[`,```(B```D!````0D``$H$```")```:`0```(E``##!````A@``!@%```" -XM%P``0`4```(9``!G!0```AT``&\%```!"0``?P4```(>``"'!0```0D``),% -XM```")@``GP4```(=``"G!0```0D``+<%```"'@``PP4```(=``#+!0```0D` -XM`-L%```"'@``YP4```(=``#O!0```0D``/\%```"'@``-P8```(8``"+!@`` -XM`B@``)8&```"(0``Z@8```(=``#R!@```0D```('```"'@``"@<```(=```2 -XM!P```0D``"('```"'@``3`<```(7``!F!P```A<``.L'```"&0``!0@```(= -XM```-"````0D``!T(```"'@``*0@```(=```Q"````0D``$$(```"'@``30@` -XM``(=``!5"````0D``&4(```"'@``Z`@```(J``!+"0```A<``'T)```"&0`` -XM[0D```(J```-"@```0L``!(*```"+```(`H```(=```H"@```0D``#@*```" -XM'@``1`H```(=``!,"@```0D``%P*```"'@``>0H```(N``"5"@```B4``.P* -XM```"+P``-`L```(=```\"P```0D``$P+```"'@``6`L```(=``!@"P```0D` -XM`'`+```"'@``>`L```$)``"$"P```AX``+D+```",0``W`L```(R```7#``` -XM`0D``",,```"'@``1@P```(P``!V#````C```+D,```")0``S0P```$)```: -XM#0```C0``#8-```!"0``9`T```(E``"Y#0```C4``,H-```")```X`T```(: -XM``#X#0```0D```D.```!"0``)0X```$)``!4#@```C8``'$.```"%P``E0X` -XM``(W``"M#@```0D``.P.```"*0``^0X```$)```U#P```C```'@/```!"0`` -XMF`\```(A``"V#P```AT``+X/```!"0``S@\```(>``#:#P```AT``.(/```! -XM"0``\@\```(>``#^#P```AT```80```!"0``%A````(>```B$````AT``"H0 -XM```!"0``.A````(>``!"$````0D``$X0```")@``6A````(=``!B$````0D` -XM`'(0```"'@``>A````(=``""$````0D``)(0```"'@``M1````$X``"_$``` -XM`3D``.T0```!.```]Q````$Y```F$0```3D``#81```".@``01$```$Y``!0 -XM$0```CH``&H1```".P``?Q$```([``#.$0```0D``.L1```"/0``#!(```$) -XM```=$@```0D``&H2```",@``E!(```(^``"L$@```B@``,@2```",@``\1(` -XM``(7``!2$P```B$``)`3```",@``&Q0```(_```V%````C$``(<4```")P`` -XMH!0```(P``#N%````B@``/D4```"(0``!Q4```$X```5%0```3D``&45```" -XM0```OQ4```)```#C%0```C```.X5```"/P``!A8```)````T%@```CX``%46 -XM```",```8!8```(_``!T%@```0D``(`6```")@``A18```$Y``"5%@```CH` -XM`,(6```".P``]A8```(H```;%P```D$``#L7```"&@``41<```(W``!H%P`` -XM`D(``((7```",@``M!<```(R``#2%P```AT``-H7```!"0``ZA<```(>``#R -XM%P```0D``/X7```")@``"A@```(=```2&````0D``"(8```"'@``+A@```(= -XM```V&````0D``$88```"'@``2Q@```(A``"-&````B\``,$8```"'0``R1@` -XM``$)``#9&````AX```8````!!0``#`````$4```1`````10``!4````!%``` -XM&0````$"```=`````0(``"$````!!P``*`````$4```O`````10``#8````! -XM%```.P````$4``!(`````10``%0````!%```80````$4``!F`````10``',` -XM```!%```>`````$4``"%`````10``(P````!%```DP````$4``"8`````10` -XM`*4````!%```K`````$4``"Q`````10``,$````!%```S`````$4``#7```` -XM`10``/,````!%```_@````$4```)`0```10``!4!```!%```(P$```$4```X -XM`0```10``&L!```!%```>0$```$4``"5`0```10``*,!```!%```L0$```$4 -XM``"_`0```10``,T!```!%```VP$```$4``#W`0```10``!,"```!%```(0(` -XM``$4```]`@```10``$L"```!%```T`(```$4``#\`@```10```<#```!%``` -XM$@,```$4```U`P```10``$,#```!%```4@,```$4``!=`P```10``&@#```! -XM%```!0```10` -XM`.0%```!%```Z@4```$4``#P!0```10``/<%```!%```"@8```$4```9!@`` -XM`10``"4&```!%```,P8```$4``!!!@```10``$\&```!%```708```$4``!K -XM!@```10``'D&```!%```AP8```$4``"5!@```10``+`&```!%```NP8```$4 -XM``#&!@```10``-$&```!%```Y`8```$4``#S!@```10``/\&```!%```#0<` -XM``$4```J!P```10``#D'```!%```10<```$4``!3!P```10``&$'```!%``` -XM;P<```$4``"+!P```10``)D'```!%```IP<```$4``"U!P```10``,,'```! -XM%```T0<```$4``#?!P```10``/P'```!%```"P@```$4```7"````10``"4( -XM```!%```,P@```$4``!!"````10``%X(```!%```;`@```$4``!["````10` -XM`(<(```!%```Y@@```$4``#T"````10``!`)```!%```'@D```$4```L"0`` -XM`10``#H)```!%```2`D```$4``!K"0```10``'D)```!%```B`D```$4``"4 -XM"0```10``*()```!%```N0D```$4``#("0```10``/X)```!%```#`H```$4 -XM```:"@```10``"@*```!%```10H```$4``!+"@```10``%$*```!%```5PH` -XM``$4``!="@```10``&P*```!%```>@H```$4``"7"@```10``*4*```!%``` -XMP@H```$4``#0"@```10``.T*```!%```^PH```$4```8"P```10``"8+```! -XM%```/0L```$4``!+"P```10``&(+```!%```<0L```$4``!]"P```10``(L+ -XM```!%```F0L```$4``#1"P```10``-\+```!%```[0L```$4``#["P```10` -XM``D,```!%```%PP```$4```E#````10``#,,```!%```00P```$4``!/#``` -XM`10``%T,```!%```:PP```$4``!Y#````10``(<,```!%```E0P```$4``"C -XM#````10``+$,```!%```OPP```$4``#-#````10``-L,```!%```Z0P```$4 -XM``#W#````10```T-```!%```%`T```$"```8#0```0(``!P-```!$```+PT` -XM``$0```^#0```1```%8-```!%```7@T```$"``!B#0```0(``&8-```!$``` -XM>@T```$0``"(#0```1```(T-```!%```F`T```$0``"T#0```10``+P-```! -XM`@``P`T```$"``#$#0```1```-@-```!$```Y@T```$0``#T#0```1````D. -XM```!%```%`X```$0```9#@```10``"8.```!%```+@X```$"```R#@```0(` -XM`#8.```!$```2@X```$0``!/#@```10``%H.```!$```:`X```$0``!O#@`` -XM`10``'<.```!`@``>PX```$"``!_#@```1```),.```!$```H@X```$0``"G -XM#@```10``+(.```!$```RPX```$0``#:#@```1```/$.```!%```^0X```$" -XM``#]#@```0(```$/```!$```$P\```$0```B#P```1```#$/```!$```-@\` -XM``$4``!!#P```1```$@/```!%```4`\```$"``!4#P```0(``%@/```!$``` -XM;`\```$0``![#P```1```(H/```!$```CP\```$4``":#P```1```,$/```! -XM%```R0\```$"``#-#P```0(``-$/```!$```Y0\```$0``#S#P```1```!,0 -XM```!$```&A````$4```E$````0(``"D0```!`@``+1````$0``!`$````1`` -XM`$X0```!$```4Q````$4``!>$````1```',0```!%```?A````$0``"%$``` -XM`10``)`0```!`@``E!````$"``"8$````1```*L0```!$```L!````$4``"Z -XM$````1```,D0```!$```V!````$0``#>$````10``.D0```!`@``[1````$" -XM``#Q$````1````01```!$```"1$```$4```3$0```1```"(1```!$```*!$` -XM``$4```S$0```0(``#<1```!`@``.Q$```$0``!.$0```1```%,1```!%``` -XM71$```$0``!L$0```1```'(1```!%```CA$```$4``"H$0```10``*\1```! -XM`@``LQ$```$"``"W$0```1```,H1```!$```UQ$```$0``#<$0```10``.81 -XM```!$```]!$```$0```($@```10``!(2```!$```%Q(```$4```A$@```1`` -XM`"H2```!$P``.Q(```$"```_$@```0(``$@2```!$```4!(```$4``!_$@`` -XM`10``(<2```!`@``BQ(```$"``"/$@```1```*$2```!$```L!(```$0``"^ -XM$@```1```,<2```!$P``UQ(```$0``#F$@```1,``/(2```!$```^Q(```$0 -XM```"$P```10``#`3```!%```5!,```$4``!@$P```10``'<3```!%```C1,` -XM``$4``"R$P```10``,X3```!%```VA,```$4```*%````10``!84```!%``` -XM;A0```$4``![%````10``)<4```!%```PQ0```$4``#6%````10``/(4```! -XM%```"14```$4```L%0```10``#H5```!%```0A4```$"``!&%0```0(``$H5 -XM```!$```7A4```$0``!U%0```1,``(L5```!$P``E!4```$0``"=%0```1`` -XM`+<5```!$```TA4```$0``#L%0```1,``/P5```!$```"Q8```$3```A%@`` -XM`1,``"H6```!$```,Q8```$0``!&%@```1```%06```!$```718```$0``!Y -XM%@```1,``(L6```!$P``E!8```$0``"G%@```1```+06```!`@``N!8```$" -XM``#.%@```0(``-(6```!`@``VQ8```$0``#F%@```1,``/,6```!$P``_!8` -XM``$0```%%P```1````X7```!$P``&A<```$0```H%P```10``#47```!%``` -XMQ0````$"```8`````0\``!P````!`@``.`````$/```\`````0(``%@````! -XM#P``7`````$"``!X`````0\``'P````!`@``F`````$/``"<`````0(``+@` -XM```!#P``O`````$"``#8`````0\``-P````!`@``^`````$/``#\`````0(` -XM`!@!```!#P``'`$```$"```X`0```0\``#P!```!`@``6`$```$/``!<`0`` -XM`0(``'`!```!#P``=`$```$"``"(`0```0\``(P!```!`@``J`$```$/``"L -XM`0```0(``,@!```!#P``S`$```$"```&`````08```8````!!@``$`````$" -XM````````````````````````````````````````````````````````&P`` -XM``$````&`````````$````#E&``````````````0`````````"$````)```` -XM0``````````P80``P`8``!<````!````!`````@````K`````0````,````` -XM````*!D```````````````````0`````````,0````@````#`````````"@9 -XM```````````````````$`````````#8````!```````````````H&0``*P,` -XM`````````````0````````!$`````0``````````````4QP``$,7```````` -XM``````$`````````4`````D```!``````````/!G``#(#```%P````8````$ -XM````"````&`````!``````````````"6,P``=`0``````````````0`````` -XM``!L````"0```$``````````N'0```@````7````"`````0````(````?``` -XM``$```````````````HX```P```````````````!`````````(4````!```` -XM,@`````````Z.```F@(``````````````0````$```"4`````0```#(````` -XM````U#H``"T```````````````0````!````HP````$```````````````0[ -XM``#D`0`````````````$`````````+`````)````0`````````#`=```\``` -XM`!<````-````!`````@```#!`````0``````````````Z#P``!L0```````` -XM``````$`````````S`````$```````````````--``"[```````````````! -XM`````````-P````)````0`````````"P=0``"````!<````0````!`````@` -XM``#P`````0``````````````ODT``"````````````````$`````````_P`` -XM``D```!``````````+AU```0````%P```!(````$````"````!(!```!```` -XM``````````#>30``R`(``````````````0`````````@`0```0```#`````` -XM````IE```,X(``````````````$````!````$0````,``````````````'19 -XM```K`0`````````````!``````````$````"``````````````"@6@``,`0` -XM`!@````6````!````!`````)`````P``````````````T%X``&`"```````` -X,``````$````````` -X` -Xend -7441d94dfba58dda29235b0205ebc7b3 -echo x - sections.o.debug.uu -sed 's/^X//' >sections.o.debug.uu << '07454e9209d1c5eccb83c5c72e752a37' -Xbegin 644 sections.o.debug -XM?T5,1@$!`0D```````````$``P`!``````````````!86@```````#0````` -XM`"@`&0`6`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM) -XM$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,` -XM``D3`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L-``,(.@L["TD3.`H` -XM``P5`2<,21,!$P``#04`21,```X3``,./`P```\!`4D3`1,``!`A`$D3+PL` -XM`!$3`0L+.@L["P$3```2%@`#"#H+.PM)$P``$P0!"PLZ"SL+`1,``!0H``,. -XM'`T``!4N`0,..@L["R<,$0$2`4`&`1,``!8%``,(.@L["TD3`@8``!4P````,W!@`` -XM!6-W````!P2B````!P3M````"*(````#Z`(```7DEP````/"`0```B^P```` -XM"94'```(`D8Q`0``"FX$```"1S$!```"(P`*4P````"(SP*O0@` -XM``)\VP(```(C0`IW"````GWK`@```B-#"U]L8@`"@`@!```"(T0*L`8```*# -XM3`````(C3`IJ`@```H3]`````B-0``P!3````&D"```-O@`````'!%D"```, -XM`4P```")`@``#;X````-X0````U,``````<$;P(```P!_0```*D"```-O@`` -XM``W]````#4P`````!P2/`@``#`%,````R0(```V^````#><````-3``````' -XM!*\"```."P````$'!,\"```/+````.L"```0NP````(`#RP```#[`@``$+L` -XM``````.5"````H4W`0```Z\'```&)LL````#G0````8JRP````\L````+`,` -XM`!"[````#P`1"`9Z40,```K/!0``!GL&`P```B,`"FD#```&?!$#```"(P0` -XM`WX$```&?2P#```#``````%B`,```(C"``#D04```>&"P4``!)%;&8` -XM""9&!0``#B$(```!`QX!```()U<%```.,@$```$3!`@V]@4``!0@!0```!2V -XM!````12!`P```A1?`P```Q1+!```!!2:"```!11P`P``!A0^````!Q13`P`` -XM"!2+`P``"10S!```"A1`!P``"Q0E!@``#!3=`@``#13F!```#A2K"```#Q0$ -XM`0``$!1Z`@``$13V`@``$A2*,&```"(P``"?D%```P"&BC -XM!@``"KD&```(;-8````"(P`*P00```AMO@````(C"`I0!@``"&[6`````B,, -XM"E$````(;]8````"(Q0*[P(```AP]@4```(C'`KE!@``"'%>`````B,@"NH` -XM```(=JD&```"(R0*<`<```AW7@````(C*`H4!```"'@!!@```B,L``<$&`8` -XM``<$3`4```-?!P``"'D8!@```^`````)+F`$```#N`$```DP``4```/&!0`` -XM"3(P!0``$00*)/(&```*&P8```HD&P<```(C```)5@0```@*(1L'```*EP8` -XM``HBYP````(C``IL`0``"B3;!@```B,$``<$\@8``!$$"C8X!P``"AL&```* -XM-NT'```"(P``";L%```P"BCM!P``"I<&```**><````"(P`*#`4```HJYP`` -XM``(C!`IS!0``"BOG`````B,("IX#```*+.<````"(PP+861D``HN3`````(C -XM$`K;`0``"B],`````B,4"OX#```*,$P````"(Q@*AP$```HQ3`````(C'`K@ -XM!0``"C),`````B,@"B0````*,TP````"(R0*#00```HT3`````(C*`JG!@`` -XM"C8A!P```B,L``<$.`<``!$$"C\*"```"AL&```*/T\(```"(P``"74!```0 -XM"CI/"```"I<&```*.^$````"(P`*:`<```H\X0````(C!`K'!```"CWR```` -XM`B,("A0````*/_,'```"(PP`!P0*"```$0@*4GH(```*\`````I25@D```(C -XM``J=`0``"E)<"0```B,$``F`!@``6`I#5@D```J7!@``"D3G`````B,`"VES -XM``I%J08```(C!`MOT!```("E^P"0``"L$&```*7U8)```"(P`*I@<` -XM``I?7`D```(C!``1!`I@QPD```H;!@``"F`V"@```B,```G`````,`I7-@H` -XM``MO9F8`"EC6`````B,`"V9S>@`*6=8````"(P@+;7-Z``I:U@````(C$`H0 -XM!P``"EO6`````B,8"B0````*74P````"(R`*?P<```I?APD```(C)`H)`P`` -XM"F"P"0```B,L``<$QPD``!,$"H1C"@``%*P#````%+8````!%)4$```"%)D" -XM```#%(@&```$`!$("IB("@``"@@"```*F#8*```"(P`*SP,```J8B`H```(C -XM!``'!#8*```1"`J9LPH```H(`@``"IGM!P```B,`"L\#```*F;,*```"(P0` -XM!P3M!P``$0@*FMX*```*"`(```J:3P@```(C``K/`P``"IK>"@```B,$``<$ -XM3P@``!$("IP)"P``"@@"```*G!L'```"(P`*SP,```J<"0L```(C!``'!!L' -XM```1"`J>-`L```H(`@``"IX;!P```B,`"L\#```*G@D+```"(P0`$0@*H%D+ -XM```*P08```J@5@D```(C``JF!P``"J!<"0```B,$`!$$"J)P"P``"E\%```* -XMHE8)```"(P``"3\"``"("F8�``"D0!```*9^<````"(P`*L`0```IJ3``` -XM``(C!`HX`@``"FM,`````B,("VEE8P`*;4P````"(PP+;V5C``IN3`````(C -XM$`ME:6X`"F\�```B,4"GL&```*<`8-```"(Q@*I0,```IR3`````(C'`HW -XM````"G-,`````B,@"E0(```*>4P````"(R0*_08```IZ3`````(C*`HN`P`` -XM"GM,`````B,L"J8!```*?$P````"(S`*FP4```I]3`````(C-`I(!0``"GY, -XM`````B,X"M8"```*@%8)```"(SP*)@@```J!5@D```(C0`H_!0``"H)6"0`` -XM`B-$"M\'```*BCP*```"(T@*$@,```J33`````(C3`H;!```"I8Q`0```B-0 -XM"AX````*F&,*```"(U0*7@0```J9C@H```(C7`K/`@``"IJY"@```B-D"B8! -XM```*G.0*```"(VP*60$```J>#PL```(C=`I_!P``"J`T"P```B-\"E@'```* -XMHED+```#(X0!``<$.P4``!5D"````9H!`````'0`````````3@T``!9E8W`` -XM`9E.#0``+````!9S96,``9E6"0``50```!=S``&;5@D```%1``<$<`L``!@! -XM,@4```$-`P&`````;0(``(D```"L#0``&65C<``!#`-.#0``M0```!IS``$. -XM`U8)``#K````&[<#```!#P.L#0``"0$``!QS:``!$`/%!@```Y&L?P`'!*\& -XM```8`2L````!WP(!<`(``'P#```]`0``)0X``!EE8W```=X"3@T``&D!```: -XM("3````.8!```=3@,```'B`DP`````'@L&```!T`(!@`,``/(#```$ -XM`@``;0X``!EE8W```<\"3@T``#`"```?EP8```'/`N<```!#`@``&G,``=$" -XM5@D``&P"````&`%`!@```9D"`0`$```#!@``B@(``.\.```996-P``&8`DX- -XM``"V`@``&G-A``&:`D\(``#6`@``&Z@````!FP)6"0``]`(``"!S``&;`E8) -XM```:;V0``9P"K`T``!(#```:;W,``9T"J08``#L#```<;W-H``&>`L4&```# -XMD:Q_`!@!?0$```%T`@$0!@``)@<``%D#``!&#P``&7,``7,"5@D``(4#```: -XM:60``74"K`T``-(#```:;V0``74"K`T``/L#```;J00```%V`DP````D!``` -XM`!@!\00```%@`@$P!P``:0@``$($``"_#P``&65C<``!7P).#0``;@0``!EI -XM@@````DR0$```%5`4P```!@ -XM#```E@P``(T(``!Q$0``%F5C<``!5$X-``"Y"```(I<&```!5.<```#,"``` -XM(W-A8P`!5NT'``#?"````"6Z!P```38!3`````&F$0``)F5C<``!-4X-```G -XMEP8```$UYP```"@I!(``#%?8P`"AP%,````,5]P -XM``*'`7@2````!P3[`@``'L,(```!'P(!H!```(@1``!X"@```1,``!ED``$> -XM`N<```"D"@``&7-Z``$>`O(```#-"@``&F,``2`"YP```/8*```R3Q(``"`` -XM```!)`+A$@``,VP2```4"P``+6$2````-$\2```X`````28",VP2```]"P`` -XM,V$2``!Q"P`````U$0$```%3`0$!I1,``#%E8W```5(!3@T``#%S``%2`58) -XM```@=``!5`%6"0``'9<&```!50'G````(&ES:``!5@'%!@``(')E;``!5P'0 -XM!@``'5D%```!6`&E$P``'?<&```!60&K$P``(&ED``%:`:P-```=J00```%; -XM`4P````@:0`!6P%,````';4%```!6P%,````(&-A<``!6P%,``````<$40,` -XM``<$,`4``"4C!P```7D!3`````'9$P``)F5C<``!>$X-```GEP8```%XYP`` -XM```UUP0```'7`0$!>A0``#%E8W```=8!3@T``#%S``'6`58)```@T'```=!P0```'9`?(````=`@(```'9`?(````@<``!V0'R````(&QE;@`! -XMV0'R````(&(``=H!X0```"!C``':`>$````@9``!V@'A````('-R8P`!V@'A -XM````(&5N9``!V@'A````'?D````!VP%,`````#![!0```4`"`;X````!SQ0` -XM`#%S``$_`E8)```VQP0```$_`L\4```@:60``4$"K`T``"!B``%"`N$````@ -XM<5```M&Q,``"T/$P``-Y`````O)1,``.8+```O -XM+Q,``!H,```X.Q,```.1G'\X1Q,```*17"]3$P``.`P``#A?$P```W6(?SAK -XM$P```W6$?R]V$P``Q`P``#F"$P``.8P3```YF!,`````,K$3```8`0```4,! -XM!A8``#/-$P``^`P``"W"$P```#+9$P``,`$```%$`:\6```M\Q,``"WG$P`` -XM-V`!```O_1,``!8-```O"10``#0-```Y%10``#DA%```+RL4``"1#0``.3<4 -XM```O010``/$-```O2Q0``#8.```Y510``#AA%````W6,?SEM%```-'H4``#P -XM`0```=T!+984```MC!0``#<0`@``+Z(4``"6#@``.:T4```YMQ0``"_"%``` -XM(@\````````ZU10``(L4``"W%````4@!X18``"WQ%```+>84```NI!0``+<4 -XM```O_!0``$L/`````#0(%0``0`(```%)`2T6%0``-W`"```O(!4``'0/```O -XM*Q4``+X/```T3Q(``+`"```!.P(S;!(``-P/```M81(````````[9`0```** -XM>!(```$!/$<"```"H`%,`````0$`<`0```(`N`````$!^PX*``$!`0$````! -XM+W5S7,``'-E8W1I;VYS+F,`````K?P\/`#00CAE0@L"!,(+`AT",IL#40BW9@@ZY0-L<68(.M<9@RPB=!`(#XGX(5;H$`0.9?P(N`;H#Y0#%`YM_J<>?""V.@`-V1P,DQ0-BJ0,* -XM[P@6`[U^Q0/2`P(G`?ZL"*H#=V,(JG(#\WWO`Q\('0B2QG((<`,)C;@#YP$( -XM*U8#B7]_"%T(=0@MD0@>9)HZ90@>ME>4-3WFSHX#"P@K`VF;`Q"@I(&9A:6QE9#H@)7,`-C8X(&=E;&9?9V5T6UT86(`+G-T@P```$`4```````````8`P``'H,```!`%(``````````'P, -XM``"(#````0!0D@P``)4,```!`%```````````*`,``"A#````@!T!*$,``"C -XM#````@!T"*,,``"6$````@!U"```````````H`P``,L,```"`)$`RPP``)80 -XM```"`'4(```````````R#0``6`\```$`4Y#P``K@\```$`4'80 -XM``!^$````0!0``````````!##@``1@X```$`4$4/``""#P```0!0```````` -XM``"@$```H1````(`=`2A$```HQ````(`=`BC$```B!$```(`=0@````````` -XM`*`0``"Y$````0!0Y1```/$0```!`%`=$0``)1$```$`4```````````H!`` -XM`+00```!`%+E$```Z!````$`4AT1```E$0```0!2``````````"R$```(1$` -XM``$`4R41``"($0```0!3``````````##$```Z!````$`4AT1```E$0```0!2 -XM%@```0!7MA8``,L6```!`%?7%@``KQ@```$`5]T8``#E&````0!7```` -XM``````#.%P``UA<```$`4%$8``!H&````0!0:Q@``(D8```!`%#=&```Y1@` -XM``$`4```````````/A(``$,2```!`%*&%0``BQ4```$`4@``````````ZA4` -XM`/(5```!`%!<%@``7!8```$`4```````````M!$``(P3```#`'6@?XP3``"4 -XM$P```0!2E!,``#T6```#`'6@?ST6``!`%@```0!20!8``&L6```#`'6@?VL6 -XM``!P%@```0!28%0``'Q8```$`5X06``"> -XM%@```0!7MA8``,L6```!`%?.%P``[A<```$`5P``````````M!$``-\3```# -XM`'60?]\3```"%````0!0`A0``*H5```#`'60?ZH5``"P%0```0!0L!4``.48 -XM```#`'60?P``````````M!$``-H1```!`%8`$@``"!(```$`5M,3```Y%0`` -XM`0!64Q4``($5```!`%:8%0``ZA4```$`5H06``">%@```0!6MA8``,L6```! -XM`%;.%P``[A<```$`5@``````````31(``-$2```!`%-1$P``Z!,```$`4_83 -XM```:%````0!3*Q0``$04```!`%-4%```@Q0```$`4SD5```\%0```0!34Q4` -XM`%85```!`%.J%0``^!4```$`4Q\6```H%@```0!3/18``&<6```!`%-P%@`` -XMA!8```$`4\X7```"&````0!3``````````!8$P``=Q,```$`4#D5```_%0`` -XM`0!0SA<``-87```!`%```````````+01``#'$0```0!0`!(```L2```!`%"F -XM%```KQ0```$`4```````````M!$``,T1```!`%,`$@``!Q(```$`4],4```Y -XM%0```0!3A!8``)X6```!`%.V%@``RQ8```$`4\X7``#N%P```0!3```````` -XM``#_%```"Q4```$`4,X7``#6%P```0!0``````````"T$0``[Q$```$`4@`2 -XM```^$@```0!2T1(``-02```!`%(9%0``.14```$`4K86``#&%@```0!2```` -XM``````"W`````@``````0Q<``%0-``!S971?5]S:&1R`+\/``!R97-Y;F-?$```%@``MA8``.,2``!1$P`` -XM``````````#U$@``41,``,48``#E&```D1@``+D8``!/&```:Q@``#(8``!* -XM&```#A@``"88``"X%P``SA<``(87``"L%P``;!<``'H7``!5%P``71<``"X7 -XM```Q%P``'Q<``"L7``#_%@``!1<``/H6``#\%@``U18``.46``">%@``MA8` -XM````````````.1(``&`2``"!%0``F!4`````````````8!(``-$2``#N%P`` -XM`A@``*H5``"$%@``.14``($5``!1$P``@!0`````````````8!(``-$2``#N -XM%P```A@``'`6``"$%@``^!4``#T6``#R%0``]A4``.<5``#J%0``JA4``,L5 -XM``!&%0``@14``&$4``"`%```/A0``%04```B%```*Q0``!<4```:%```LA,` -XM`!04``"9$P``J!,``)03``"6$P``@1,``(P3``!1$P``=!,````````````` -XM8!(``-$2``!P%@``A!8``%$3``!>$P````````````!Q$@``GA(``'`6``"$ -XM%@``5A,``%X3``"T$@``P1(``+`2``"R$@````````````"W%```.14``,X7 -XM``#N%P``MA8``-46``"$%@``GA8``)@5``"J%0````````````"W%```X!0` -XM`-87``#N%P``MA8``-46``"8%0``JA4``/T4```Y%0``]A0``/@4``#R%``` -XM]!0`````````````&14``#D5``"V%@``U18`````````````16QF-C1?061D -XM<@!?7W-&24Q%6`!S861D7VQI6U?5]D871A`&-O<'D`95]E;G1R>0!U:6YT,S)?=`!T -XM<65?<')E=@!S96-T:6]N0!C;VUP@!R96YA;64` -XM9%]N97AT`'9?F5? -XM=`!I7!E -XM`&1?=F5R7!E`'5N```"````!<````(````!`````@```!>`````0`` -XM````````````"C@``#````````````````$`````````9P````$````R```` -XM`````#HX``":`@`````````````!`````0```'8````!````,@````````#4 -XM.@``+0``````````````!`````$```")`````0``````````````!#L``.0! -XM``````````````0`````````A0````D``````````````&!X``#P````%P`` -XM``T````$````"````)8````!``````````````#H/```&Q`````````````` -XM`0````````"E`````0```````````````TT``+L```````````````$````` -XM````H0````D``````````````%!Y```(````%P```!`````$````"````+D` -XM```!``````````````"^30``(````````````````0````````"U````"0`` -XM````````````6'D``!`````7````$@````0````(````R`````$````````` -XM`````-Y-``#(`@`````````````!`````````-8````!````,`````````"F -XM4```S@@``````````````0````$````1`````P``````````````=%D``.$` -XM``````````````$``````````0````(``````````````$!>```P!```&``` -XM`!8````$````$`````D````#``````````````!P8@``8`(````````````` -XM`0```````````````````````````````0``````````````!`#Q_P`````` -XM``````````,``0`````````````````#``,``````````````````P`$```` -XM``````````````,`!0`````````````````#``8``````````````````P`( -XM``P`````````=`````(``0`````````````````#``L`'P```(`#``!R```` -XM`@`!``````````````````,`#``O````,`P``"T````"``$`0P```&`,```V -XM`````@`!`%4```"@$```Z`````(``0`````````````````#``T````````` -XM`````````P`/``````````````````,`$``````````````````#`!(````` -XM`````````````P`4``````````````````,`%0`````````````````#``H` -XM8````(````#M`0``$@`!`&T``````````````!````!Z```````````````0 -XM````A@``````````````$````)<``````````````!````"B```````````` -XM```0````L@``````````````$````+H``````````````!````#%```````` -XM```````0````R@```'`"```,`0``$@`!`-8``````````````!````#D```` -XM```````````0````[@``````````````$````/\`````!````P(``!(``0`/ -XM`0`````````````0````&@$`````````````$````"$!`````````````!`` -XM```E`0``$`8``!8!```2``$`+P$`````````````$````#L!```P!P``.0$` -XM`!(``0!%`0`````````````0````3P$``'`(``#P`0``$@`!`%\!```````` -XM`````!````!E`0``8`H``"@!```2``$`<@$`````````````$````'\!```` -XM`````````!````"*`0``D`L``)<````2``$`F0$`````````````$````*`! -XM`````````````!````"G`0``H`P``/8#```2``$`L@$`````````````$``` -XM`,(!`````````````!````#4`0`````````````0````X`$````````````` -XM$````.L!`````````````!````#X`0`````````````0`````@(````````` -XM````$`````<"`````````````!`````/`@``D!$``%4'```2``$`'`(````` -XM````````$````"H"`````````````!`````Q`@`````````````0````.`(` -XM````````````$````$`"`````````````!````!,`@`````````````0```` -XM`'-E8W1I;VYS+F,`:6YS97)T7W1O7W-E8U]L:7-T`&%D9%]T;U]S:'-T5]S:&1R`%]?=61I=F1I,P!R97-Y;F-?'1S8VX`96QF7W-T```)`@```AT``!$"```!"0``(0(```(>```M`@```AT``#4"```!"0`` -XM10(```(>``!1`@```AT``%D"```!"0``:0(```(>``"1`@```A<``*8"```" -XM(```TP(```(:``#K`@```AD``/L"```"(0``'`,```(=```D`P```0D``#0# -XM```"'@``0`,```(=``!(`P```0D``%@#```"'@``8`,```(=``!H`P```0D` -XM`'@#```"'@``H`,```(B``"T`P```0D``+P#```"(@``Q`,```$)``#,`P`` -XM`B(``-0#```!"0``W`,```(B``#D`P```0D``.P#```"(@``)`0```$)``!* -XM!````B0``&@$```")0``PP0```(8```8!0```A<``$`%```"&0``9P4```(= -XM``!O!0```0D``'\%```"'@``AP4```$)``"3!0```B8``)\%```"'0``IP4` -XM``$)``"W!0```AX``,,%```"'0``RP4```$)``#;!0```AX``.<%```"'0`` -XM[P4```$)``#_!0```AX``#<&```"&```BP8```(H``"6!@```B$``.H&```" -XM'0``\@8```$)```"!P```AX```H'```"'0``$@<```$)```B!P```AX``$P' -XM```"%P``9@<```(7``#K!P```AD```4(```"'0``#0@```$)```="````AX` -XM`"D(```"'0``,0@```$)``!!"````AX``$T(```"'0``50@```$)``!E"``` -XM`AX``.@(```"*@``2PD```(7``!]"0```AD``.T)```"*@``#0H```$+```2 -XM"@```BP``"`*```"'0``*`H```$)```X"@```AX``$0*```"'0``3`H```$) -XM``!<"@```AX``'D*```"+@``E0H```(E``#L"@```B\``#0+```"'0``/`L` -XM``$)``!,"P```AX``%@+```"'0``8`L```$)``!P"P```AX``'@+```!"0`` -XMA`L```(>``"Y"P```C$``-P+```",@``%PP```$)```C#````AX``$8,```" -XM,```=@P```(P``"Y#````B4``,T,```!"0``&@T```(T```V#0```0D``&0- -XM```")0``N0T```(U``#*#0```B0``.`-```"&@``^`T```$)```)#@```0D` -XM`"4.```!"0``5`X```(V``!Q#@```A<``)4.```"-P``K0X```$)``#L#@`` -XM`BD``/D.```!"0``-0\```(P``!X#P```0D``)@/```"(0``M@\```(=``"^ -XM#P```0D``,X/```"'@``V@\```(=``#B#P```0D``/(/```"'@``_@\```(= -XM```&$````0D``!80```"'@``(A````(=```J$````0D``#H0```"'@``0A`` -XM``$)``!.$````B8``%H0```"'0``8A````$)``!R$````AX``'H0```"'0`` -XM@A````$)``"2$````AX``+40```!.```OQ````$Y``#M$````3@``/<0```! -XM.0``)A$```$Y```V$0```CH``$$1```!.0``4!$```(Z``!J$0```CL``'\1 -XM```".P``SA$```$)``#K$0```CT```P2```!"0``'1(```$)``!J$@```C(` -XM`)02```"/@``K!(```(H``#($@```C(``/$2```"%P``4A,```(A``"0$P`` -XM`C(``!L4```"/P``-A0```(Q``"'%````B<``*`4```",```[A0```(H``#Y -XM%````B$```<5```!.```%14```$Y``!E%0```D```+\5```"0```XQ4```(P -XM``#N%0```C\```86```"0```-!8```(^``!5%@```C```&`6```"/P``=!8` -XM``$)``"`%@```B8``(46```!.0``E18```(Z``#"%@```CL``/86```"*``` -XM&Q<```)!```[%P```AH``%$7```"-P``:!<```)"``""%P```C(``+07```" -XM,@``TA<```(=``#:%P```0D``.H7```"'@``\A<```$)``#^%P```B8```H8 -XM```"'0``$A@```$)```B&````AX``"X8```"'0``-A@```$)``!&&````AX` -XM`$L8```"(0``C1@```(O``#!&````AT``,D8```!"0``V1@```(>```&```` -XM`04```P````!%```$0````$4```5`````10``!D````!`@``'0````$"```A -XM`````0<``"@````!%```+P````$4```V`````10``#L````!%```2`````$4 -XM``!4`````10``&$````!%```9@````$4``!S`````10``'@````!%```A0`` -XM``$4``",`````10``),````!%```F`````$4``"E`````10``*P````!%``` -XML0````$4``#!`````10``,P````!%```UP````$4``#S`````10``/X````! -XM%```"0$```$4```5`0```10``",!```!%```.`$```$4``!K`0```10``'D! -XM```!%```E0$```$4``"C`0```10``+$!```!%```OP$```$4``#-`0```10` -XM`-L!```!%```]P$```$4```3`@```10``"$"```!%```/0(```$4``!+`@`` -XM`10``-`"```!%```_`(```$4```'`P```10``!(#```!%```-0,```$4``!# -XM`P```10``%(#```!%```70,```$4``!H`P```10``',#```!%```?@,```$4 -XM``")`P```10``)P#```!%```J@,```$4``"X`P```10``,8#```!%```U`,` -XM``$4``#B`P```10``/`#```!%```_@,```$4```,!````10``!H$```!%``` -XM*`0```$4```V!````10``$0$```!%```4@0```$4``!A!````10``'0$```! -XM%```@@0```$4``"0!````10``)X$```!%```K`0```$4``"Z!````10``,@$ -XM```!%```U@0```$4``#D!````10``/($```!%````04```$4```4!0```10` -XM`"(%```!%```,04```$4``!'!0```10``$T%```!%```6`4```$4``!F!0`` -XM`10``&P%```!%```<@4```$4``!X!0```10``'X%```!%```A`4```$4``"* -XM!0```10``)`%```!%```E@4```$4``""````10``&P(```!%```>P@```$4``"'"````10``.8(```!%``` -XM]`@```$4```0"0```10``!X)```!%```+`D```$4```Z"0```10``$@)```! -XM%```:PD```$4``!Y"0```10``(@)```!%```E`D```$4``"B"0```10``+D) -XM```!%```R`D```$4``#^"0```10```P*```!%```&@H```$4```H"@```10` -XM`$4*```!%```2PH```$4``!1"@```10``%<*```!%```70H```$4``!L"@`` -XM`10``'H*```!%```EPH```$4``"E"@```10``,(*```!%```T`H```$4``#M -XM"@```10``/L*```!%```&`L```$4```F"P```10``#T+```!%```2PL```$4 -XM``!B"P```10``'$+```!%```?0L```$4``"+"P```10``)D+```!%```T0L` -XM``$4``#?"P```10``.T+```!%```^PL```$4```)#````10``!<,```!%``` -XM)0P```$4```S#````10``$$,```!%```3PP```$4``!=#````10``&L,```! -XM%```>0P```$4``"'#````10``)4,```!%```HPP```$4``"Q#````10``+\, -XM```!%```S0P```$4``#;#````10``.D,```!%```]PP```$4```-#0```10` -XM`!0-```!`@``&`T```$"```<#0```1```"\-```!$```/@T```$0``!6#0`` -XM`10``%X-```!`@``8@T```$"``!F#0```1```'H-```!$```B`T```$0``"- -XM#0```10``)@-```!$```M`T```$4``"\#0```0(``,`-```!`@``Q`T```$0 -XM``#8#0```1```.8-```!$```]`T```$0```)#@```10``!0.```!$```&0X` -XM``$4```F#@```10``"X.```!`@``,@X```$"```V#@```1```$H.```!$``` -XM3PX```$4``!:#@```1```&@.```!$```;PX```$4``!W#@```0(``'L.```! -XM`@``?PX```$0``"3#@```1```*(.```!$```IPX```$4``"R#@```1```,L. -XM```!$```V@X```$0``#Q#@```10``/D.```!`@``_0X```$"```!#P```1`` -XM`!,/```!$```(@\```$0```Q#P```1```#8/```!%```00\```$0``!(#P`` -XM`10``%`/```!`@``5`\```$"``!8#P```1```&P/```!$```>P\```$0``"* -XM#P```1```(\/```!%```F@\```$0``#!#P```10``,D/```!`@``S0\```$" -XM``#1#P```1```.4/```!$```\P\```$0```3$````1```!H0```!%```)1`` -XM``$"```I$````0(``"T0```!$```0!````$0``!.$````1```%,0```!%``` -XM7A````$0``!S$````10``'X0```!$```A1````$4``"0$````0(``)00```! -XM`@``F!````$0``"K$````1```+`0```!%```NA````$0``#)$````1```-@0 -XM```!$```WA````$4``#I$````0(``.T0```!`@``\1````$0```$$0```1`` -XM``D1```!%```$Q$```$0```B$0```1```"@1```!%```,Q$```$"```W$0`` -XM`0(``#L1```!$```3A$```$0``!3$0```10``%T1```!$```;!$```$0``!R -XM$0```10``(X1```!%```J!$```$4``"O$0```0(``+,1```!`@``MQ$```$0 -XM``#*$0```1```-<1```!$```W!$```$4``#F$0```1```/01```!$```"!(` -XM``$4```2$@```1```!<2```!%```(1(```$0```J$@```1,``#L2```!`@`` -XM/Q(```$"``!($@```1```%`2```!%```?Q(```$4``"'$@```0(``(L2```! -XM`@``CQ(```$0``"A$@```1```+`2```!$```OA(```$0``#'$@```1,``-<2 -XM```!$```YA(```$3``#R$@```1```/L2```!$````A,```$4```P$P```10` -XM`%03```!%```8!,```$4``!W$P```10``(T3```!%```LA,```$4``#.$P`` -XM`10``-H3```!%```"A0```$4```6%````10``&X4```!%```>Q0```$4``"7 -XM%````10``,,4```!%```UA0```$4``#R%````10```D5```!%```+!4```$4 -XM```Z%0```10``$(5```!`@``1A4```$"``!*%0```1```%X5```!$```=14` -XM``$3``"+%0```1,``)05```!$```G14```$0``"W%0```1```-(5```!$``` -XM[!4```$3``#\%0```1````L6```!$P``(18```$3```J%@```1```#,6```! -XM$```1A8```$0``!4%@```1```%T6```!$```>18```$3``"+%@```1,``)06 -XM```!$```IQ8```$0``"T%@```0(``+@6```!`@``SA8```$"``#2%@```0(` -XM`-L6```!$```YA8```$3``#S%@```1,``/P6```!$```!1<```$0```.%P`` -XM`1,``!H7```!$```*!<```$4```U%P```10``,4````!`@``&`````$/```< -XM`````0(``#@````!#P``/`````$"``!8`````0\``%P````!`@``>`````$/ -XM``!\`````0(``)@````!#P``G`````$"``"X`````0\``+P````!`@``V``` -XM``$/``#<`````0(``/@````!#P``_`````$"```8`0```0\``!P!```!`@`` -XM.`$```$/```\`0```0(``%@!```!#P``7`$```$"``!P`0```0\``'0!```! -XM`@``B`$```$/``",`0```0(``*@!```!#P``K`$```$"``#(`0```0\``,P! -X>```!`@``!@````$&```&`````08``!`````!`@`` -X` -Xend -07454e9209d1c5eccb83c5c72e752a37 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.err b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.eval b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.out b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.sh b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.sh deleted file mode 100755 index 009db7f3..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/elfcopy-noops-archive-1.sh +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ -inittest elfcopy-noops-archive-1 tc/elfcopy-noops-archive-1 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${ELFCOPY} liba.a liba.a.1" work true -rundiff false -runcmd "plugin/teraser -c -t elfcopy-noops-archive-1 liba.a.1" work false -runcmd "plugin/ardiff -cnlt elfcopy-noops-archive-1 ${RLTDIR}/liba.a.1 liba.a.1" work false diff --git a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/in/elfcopy-noops-archive-1.in.shar b/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/in/elfcopy-noops-archive-1.in.shar deleted file mode 100644 index 2363a897..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/elfcopy-noops-archive-1/in/elfcopy-noops-archive-1.in.shar +++ /dev/null @@ -1,98 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# liba.a.uu -# -echo x - liba.a.uu -sed 's/^X//' >liba.a.uu << '610ec18d793cc5cecdc2a997e4eaf41c' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.1.uu << 'b253f047a1631a2a184043b6f45926f7' -Xbegin 644 liba.a.1 -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0` -XM+F1A=&$`+F)S'0`+F1A=&$`+F)S -XM````!4````` -XM``````````$`````````/@````$``````````````(T````F```````````` -XM```!`````````!$````#``````````````"S````1P```````````````0`` -XM```````!`````@``````````````_````+`````)````!P````0````0```` -XH"0````,``````````````*P!```A```````````````!```````````` -X` -Xend -b253f047a1631a2a184043b6f45926f7 -echo x - liba.a.uu -sed 's/^X//' >liba.a.uu << '610ec18d793cc5cecdc2a997e4eaf41c' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliblong.a.uu << 'bffcfa998f235061c92dda36112dc47a' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.1.uu << '8eb77b0d36e0369a1b3adf0cc5ef193a' -Xbegin 644 liblong.a.1 -XM(3QA```$'@`` -XM!Z(```>B```'H@``"N8```KF```*YG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T'0`+G)E;"YT97AT`"YD871A`"YB6#[`C'1"0$`````,<$)`````#H_/___\G#:&5L;&\L('=O -XM6UT86(`+G-T'0`+G)E -XM;"YT97AT`"YD871A`"YB7'!0`````!````QP4``````@```(L5`````(M%"(G!*=&) -XMRJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M& -XM'0`+F1A=&$`+F)S`!Y``4````!!P``#P````$(```9`````0<``"<````!"``` -XM`````````````````````````````````````````````````````!L````! -XM````!@````````!`````,P``````````````$``````````A````"0```$`` -XM````````@`$``"`````'`````0````0````(````*P````$````#```````` -XM`'0````````````````````$`````````#$````(`````P````````!T```` -XM````````````````!``````````V`````0``````````````=````"8````` -XM``````````$`````````$0````,``````````````)H````_```````````` -XM```!``````````$````"``````````````#<````D`````@````&````!``` -XM`!`````)`````P``````````````;`$``!0```````````````$````````` -XM+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````@H````````````````````````````````````````` -XM```````````````;`````0````8`````````0````"0``````````````!`` -XM````````(0````D```!``````````-`!```@````"`````$````$````"``` -XM`"L````!`````P````````!D````$@``````````````!``````````Q```` -XM"`````,`````````>`````````````````````0`````````-@````$````" -XM`````````'@````5```````````````!`````````#X````!```````````` -XM``"-````)@```````````````0`````````1`````P``````````````LP`` -XM`$<```````````````$``````````0````(``````````````/P```"P```` -XM"0````<````$````$`````D````#``````````````"L`0``(0`````````` -X+`````0`````````` -X` -Xend -8eb77b0d36e0369a1b3adf0cc5ef193a -echo x - liblong.a.uu -sed 's/^X//' >liblong.a.uu << 'bffcfa998f235061c92dda36112dc47a' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Msym.o.uu << '07b26866a0eaf5d2a40d8f75b1109c67' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.uu << '07b26866a0eaf5d2a40d8f75b1109c67' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````"<`0```````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Ta64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.ihex.uu << 'f69477b6edbca4b39a772f518c454bb8' -Xbegin 644 a64.ihex -XM.C`R,#`P,#`T,#`T,$)!#0HZ,3`P,4,X,#`R1C9#-CDV,C8U-S@V-38S,D8V -XM0S8T,D0V-39#-C8R13A"#0HZ,#4P,40X,#`W,S9&,D4S,3`P13$-"CHQ,#`Q -XM13`P,#`X,#`P,#`P,#0P,#`P,#`P,3`P,#`P,#0V-S(V-38U.#`-"CHP.#`Q -XM1C`P,#0R-3,T-#`P03A"0C!$,#!"10T*.C$P,#%&.#`P,#,P,#`P,#`P.3`P -XM,#`P,#`X,#`P,#`P,#a64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.srec.uu << '4aec13fc9c6a811512991d693ccacd2b' -Xbegin 755 a64.srec -XM4S`P0C`P,#`V,3,V,S0R13a64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.srec.uu << '4aec13fc9c6a811512991d693ccacd2b' -Xbegin 755 a64.srec -XM4S`P0C`P,#`V,3,V,S0R13a64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.srec.uu << '4aec13fc9c6a811512991d693ccacd2b' -Xbegin 755 a64.srec -XM4S`P0C`P,#`V,3,V,S0R13a64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.out.uu << 'c7c93b6ab3d3a59eda1980affa7c397f' -Xbegin 755 a64.out -XM?T5,1@(!`0D```````````(`/@`!````8`1```````!``````````$`+```` -XM`````````$``.``'`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````)0&````````E`8````````` -XM`!````````$````&````F`8```````"8!E```````)@&4```````J`(````` -XM``"X`@``````````$````````@````8```"`!P```````(`'4```````@`=0 -XM``````!@`0```````&`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````C`8```````",!D```````(P&0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31`"HNPT``P````D````(````!P````0````````````````````"```` -XM`P````$````%````!@`````````````````````````````````````````Y -XM````$@```!P$0````````@`````````F````$0`6`$@)4```````"``````` -XM```N````$0`/`)@&4```````"``````````?````$@```"P$0```````H@`` -XM``````!%````$@```#P$0```````+P````````!*````$`#Q_U`)4``````` -XM``````````!#````$@```$P$0```````+P`````````!````(``````````` -XM````````````````7TIV7U)E9VES=&5R0VQA&ET`%]E;F0` -XM1D)31%\Q+C`````"``$``0`"``(``0`"`````````````0`!`!4````0```` -XM`````+`H>@<```(`3P`````````@"5````````<````!```````````````H -XM"5````````<````$```````````````P"5````````<````%```````````` -XM```X"5````````<````'``````````````!(@^P(Z#\!``#HF@$``$B#Q`C# -XM`/\U_@00`/\E``40`)"0D)#_)?X$$`!H`````.G@_____R7V!!``:`$```#I -XMT/____\E[@00`&@"````Z<#_____)>8$$`!H`P```.FP____`````%5(B>5! -XM54R-;PA!5%-(@^P(BQ](8\.%VTR-9,<03(DEQ`00`'XZ2(M7"$B%TG0Q2(D5 -XM`@(0``^V`H3`="-(@\(!/"](BP7N`1``2`]$PDB)!>,!$``/M@)(@\(!A,!U -XMX;B`!U``2(7`="M(B??H>O___[_(!4``Z'#____H%____XG?3(GB3(GNZ((` -XM``")Q^A'____Z"+____KUI"0D)!(@^P(@#TU!!```'00ZR202(/`"$B)!8T! -XM$`#_TDB+!80!$`!(BQ!(A=)UY,8%#000``%(@\0(PV9F9I!F9F:02(,]N`,0 -XM``!T%K@`````2(7`=`R_``E0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"054B) -XMY4B+!34!$`!(@\`!#[8`#[[POSX&0`"X`````.B8_O__R<.0D)"0D)"0D)"0 -XM2(L%.0,0`%-(@_C_=!4QV__02(N#V`A0`$B#ZPA(@_C_=>U;PY"0D$B#[`CH -XM+____TB#Q`C#`"1&'`@)```+F1A=&$N -XM!`!`PP'")`! -XM````````%````"````"@!4``)0````!(#A"#`@```0`````````5```````` -XM``P`````````^`-````````-`````````,@%0```````!`````````#X`4`` -XM``````4`````````"`-````````&`````````#`"0```````"@````````!8 -XM``````````L`````````&``````````5`````````````````````P`````` -XM```("5````````(`````````8``````````4``````````<`````````%P`` -XM``````"8`T```````/[__V\`````>`-```````#___]O``````$````````` -XM\/__;P````!@`T`````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````/__________``````````#_________ -XM_P````````````````````"`!U`````````````````````````````B!$`` -XM`````#($0```````0@1```````!2!$`````````D1G)E94)31#H@6YS='(`+F=N=2YV -XM97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R0````$````&`````````,@%0```````R`4````````.```````````` -XM````````!````````````````````'\````!`````@````````#6!4`````` -XM`-8%````````M0````````````````````$```````````````````"'```` -XM`0````(`````````C`9```````",!@````````@````````````````````$ -XM````````````````````E0````$````#`````````)@&4```````F`8````` -XM```@````````````````````"````````````````````)L````!`````@`` -XM``````"X!E```````+@&````````R`````````````````````@````````` -XM``````````"E````!@````,`````````@`=0``````"`!P```````&`!```` -XM````!0`````````(`````````!``````````K@````$````#`````````.`( -XM4```````X`@````````0````````````````````"``````````````````` -XM`+4````!`````P````````#P"%```````/`(````````$``````````````` -XM``````@```````````````````"\`````0````,```````````E0```````` -XM"0````````@````````````````````(````````````````````P0````$` -XM```#``````````@)4```````"`D````````X````````````````````"``` -XM```````(`````````,8````(`````P````````!`"5```````$`)```````` -XM$`````````````````````@```````````````````#+`````0`````````` -XM``````````````!`"0```````"P!```````````````````!```````````` -XM````````$0````,`````````````````````````;`H```````#4```````` -XM`````````````0````````````````````$````"```````````````````` -XM```````2````````D`8````````:````-0````@`````````&``````````) -XM`````P````````````````````````"0&````````/T!```````````````` -XM```!```````````````````````````````````````````````````````` -XM``,``0#(`4````````````````````````,``@#@`4`````````````````` -XM``````,``P#X`4````````````````````````,`!``P`D`````````````` -XM``````````,`!0`(`T````````````````````````,`!@!@`T`````````` -XM``````````````,`!P!X`T````````````````````````,`"`"8`T`````` -XM``````````````````,`"0#X`T````````````````````````,`"@`,!$`` -XM``````````````````````,`"P!@!$````````````````````````,`#`#( -XM!4````````````````````````,`#0#6!4````````````````````````,` -XM#@",!D````````````````````````,`#P"8!E`````````````````````` -XM``,`$`"X!E````````````````````````,`$0"`!U`````````````````` -XM``````,`$@#@"%````````````````````````,`$P#P"%`````````````` -XM``````````,`%```"5````````````````````````,`%0`("5`````````` -XM``````````````,`%@!`"5````````````````````````,`%P`````````` -XM``````````````````,`&`````````````````````````````,`&0`````` -XM``````````````````````,`&@```````````````````````0````0`\?\` -XM````````````````````"`````$``@#@`4```````!@`````````#P````0` -XM\?\`````````````````````+0````0`\?\`````````````````````/``` -XM``0`\?\`````````````````````#P````0`\?\````````````````````` -XM1P````0`\?\`````````````````````4@````$`$@#@"%`````````````` -XM````8`````$`$P#P"%``````````````````;@````$`%```"5`````````` -XM````````>P````(`"P``!4``````````````````D0````$`%@!`"5`````` -XM``$`````````H`````$`#P"H!E``````````````````IP````(`"P!`!4`` -XM````````````````1P````0`\?\`````````````````````LP````$`$@#H -XM"%``````````````````P`````$`$P#X"%``````````````````S0````$` -XM$`!(!U``````````````````VP````$`%```"5``````````````````YP`` -XM``(`"P"@!4``````````````````_0````0`\?\````````````````````` -XM+0````0`\?\`````````````````````/`````0`\?\````````````````` -XM````_0````0`\?\`````````````````````&P$```0`\?\````````````` -XM````````)`$```$`#P"P!E````````@`````````-0$``!$`$0"`!U`````` -XM````````````/@$``!$"#P"@!E``````````````````2P$``!(`````$``!(` -XM"P!@!$```````)P`````````?P$``!(````L!$```````*(`````````D`$` -XM`!``\?]`"5``````````````````G`$``!(`"P!P!4```````"8````````` -XMH0$``!(`#`#(!4``````````````````IP$``!(````\!$```````"\````` -XM````M@$``!``\?]`"5``````````````````O0$``!$`%0`("5`````````` -XM````````TP$``!``\?]0"5``````````````````V`$``!(```!,!$`````` -XM`"\`````````Z0$``"```````````````````````````&-R=#$N8P!A8FET -XM86<`+W5S0!?7T-43U)?14Y$7U\` -XM7U]$5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G -XM;&]B86Q?8W1Oa64.srec.uu << '4aec13fc9c6a811512991d693ccacd2b' -Xbegin 755 a64.srec -XM)"0@838T+G-R96,-"B`@86)I=&%G("0T,#`Q93`-"B`@7U]#5$]27TQ)4U1? -XM7R`D-3`P.&4P#0H@(%]?1%1/4E],25-47U\@)#4P,#AF,`T*("!?7TI#4E], -XM25-47U\@)#4P,#DP,`T*("!?7V1O7V=L;V)A;%]D=&]R5]S:'-T&ET0$!&0E-$7S$N,"`D-#`P-#-C#0H@(%]E9&%T -XM82`D-3`P.30P#0H@(%]'3$]"04Q?3T9&4T547U1!0DQ%7R`D-3`P.3`X#0H@ -XM(%]E;F0@)#4P,#DU,`T*("!A=&5X:71`0$9"4T1?,2XP("0T,#`T-&,-"B`@ -XM7TIV7U)E9VES=&5R0VQAsym.o.uu << 'END-of-sym.o.uu' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.1.uu << 'END-of-sym.o.1.uu' -Xbegin 644 sym.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````#(`````````#0````` -XM`"@`!@`%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#sym.o.uu << 'END-of-sym.o.uu' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.uu << 'END-of-sym.o.uu' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.1.uu << 'cc3b7341ff25eb16b80756fcb867a66b' -Xbegin 644 sym.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````!``0```````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tsym.o.uu << '07b26866a0eaf5d2a40d8f75b1109c67' -Xbegin 644 sym.o -XM?T5,1@$!`0D```````````$``P`!``````````````#8`````````#0````` -XM`"@`"``%`````````````````%6)Y;@`````7<.-M@````!5B>6X`````%W# -XMC;8`````58GEN`````!=PXVV`````%6)Y;@`````7<,```!'0T,Z("A'3E4I -XM(#0N,BXQ(#(P,#6UT86(`+G-Tls.uu << 'END-of-ls.uu' -Xbegin 755 ls -XM?T5,1@$!`0D```````````(``P`!````D),$"#0```!T7@```````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(<%@` -XM`'!8```%`````!````$```!P6```<.@$"'#H!`AH`@``V`,```8`````$``` -XM`@```-!8``#0Z`0(T.@$"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1<6```7-@$"%S8!`@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%4````]````40```!8`````````.P```%`````````` -XM.@```#@```!.````0P```!4`````````/@```#8```!!````2P`````````L -XM`````````!<````%````2@```%(```!%`````````!P````M````)P```$8` -XM`````````````#,`````````4P```"@`````````"0````@````````````` -XM```````,````/````#4```!/````"P```"````!4````,0```"$````````` -XM`````$T````?````1P```$P``````````````#\`````````20```$`````` -XM````,````#0````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````"@`` -XM``T````````````````````&```````````````2```````````````````` -XM`````````````````````!$````````````````````B`````````!L````9 -XM``````````(````3```````````````E````#@```!`````/````!P```!H` -XM```4````````````````````)@```"\````C```````````````D````&``` -XM```````Y````,@``````````````'@```"D````J`````````#<````$```` -XM2````$(`````````'0```$0`````````+@`````````K```````````````` -XM``````````````!N`0```````*,````2````T`(```````#&````$@```)D! -XM````````-````!(```"3`@```````#,````2````=0(```````!#````$@`` -XM`"T!````````2````!(```![`@`````````````2````]@````````!K`0`` -XM$@````X```#0Z`0(`````!$`\?^A`0`````````````2````%P````````!L -XM!```$@```&T`````````U`,``!(```!2`@```````*$````2````$`(````` -XM``!:````$@```!0`````````A!@`` -XM$@```,P!````````>````!(````M````W-,$"``````2``T`I@$```````", -XM`@``$@```.@(````` -XM``"Q````$@```/8!``#LZ@0(!````!$`%P"*`@```````,\!```2````2@(` -XM``````#+````$@```%D"````````0P```!(````\`0```````,,````2```` -XM80$````````J````$@```#P"````````/@```!(```#G`@``V.H$"``````0 -XM`/'_0P$````````S````$@```#,```"\Z00(`````!$`\?_Z`@``2.P$"``` -XM```0`/'_7@(```````!B`P``$@````T!``#PZ@0(!````!$`%P`!`0`````` -XM`),````2````L@$``/3J!`@$````$0`7`#4!`````````````!(```!7`@`` -XM`````"L````2````@0(````````I````$@````8!`````````````!(```"R -XM`@`````````````2````H0``````````````$@```$D``````````````"`` -XM```D`0`````````````2````@0`````````4`0``$@```,8`````````6P`` -XM`!(`````;&EB=71I;"YS;RXW`%]$64Y!34E#`&AU;6%N:7IE7VYU;6)E<@!? -XM:6YI=`!?9FEN:0!?1TQ/0D%,7T]&1E-%5%]404),15\`7TIV7U)E9VES=&5R -XM0VQA0!?7W-T9&]U -XM='``=V%R;G@`:6]C=&P`0!A8VQ?9V5T7V5N=')Y`&9T7!E`'-T#I!`AH,````.F`_____R7DZ00(:#@```#ISI!`AH2````.E0_____R7PZ00(:%````#I0/____\E].D$"&A8```` -XMZ3#_____)?CI!`AH8````.D@_____R7\Z00(:&@```#I$/____\E`.H$"&AP -XM````Z0#_____)03J!`AH>````.GP_O___R4(Z@0(:(````#IX/[___\E#.H$ -XM"&B(````Z=#^____)1#J!`AHD````.G`_O___R44Z@0(:)@```#IL/[___\E -XM&.H$"&B@````Z:#^____)1SJ!`AHJ````.F0_O___R4@Z@0(:+````#I@/[_ -XM__\E).H$"&BX````Z7#^____)2CJ!`AHP````.E@_O___R4LZ@0(:,@```#I -XM4/[___\E,.H$"&C0````Z4#^____)33J!`AHV````.DP_O___R4XZ@0(:.`` -XM``#I(/[___\E/.H$"&CH````Z1#^____)4#J!`AH\````.D`_O___R5$Z@0( -XM:/@```#I\/W___\E2.H$"&@``0``Z>#]____)4SJ!`AH"`$``.G0_?___R50 -XMZ@0(:!`!``#IP/W___\E5.H$"&@8`0``Z;#]____)5CJ!`AH(`$``.F@_?__ -XM_R5.H$"&A@`0``Z2#]____)7SJ!`AH -XM:`$``.D0_?___R6`Z@0(:'`!``#I`/W___\EA.H$"&AX`0``Z?#\____)8CJ -XM!`AH@`$``.G@_/___R6,Z@0(:(@!``#IT/S___\ED.H$"&B0`0``Z<#\____ -XM)93J!`AHF`$``.FP_/___R68Z@0(:*`!``#IH/S___\EG.H$"&BH`0``Z9#\ -XM____):#J!`AHL`$``.F`_/___R6DZ@0(:+@!``#I3K!`A^-HM% -XM"(7`="^C<.@$"`^V$(32=".#P`'K"@^V$(/``832=!2`^B]U\:-PZ`0(#[80 -XM@\`!A-)U[+C0Z`0(A6#[`B` -XM/?CJ!`@`=`SK'(/`!*-XZ`0(_]*A>.@$"(L0A=)UZ\8%^.H$"`')PY!5B>6# -XM[`BAN.D$"(7`=!*X`````(7`=`G'!"2XZ00(_]#)PY"0D)"0D)"0D)"0D)!5 -XMB>6#[`R)'"2)="0$B7PD"(MU#(M]"(M&/(M8-(M(,(M'/(M0-(M`,#G3?12X -XM_____XL<)(MT)`2+?"0(B>Q=PWX-N`$```#KZ(VV`````#G!=^\YTWX?BT9` -XMB44,BT=`B44(BQPDBW0D!(M\)`B)[%WI/?S__WRT.<%SVXUV`.NKC;0F```` -XM`(V\)P````!5B>6+50R+10B)50B)10Q=Z5O___^-="8`C;PG`````%6)Y8/L -XM"(D<)(ET)`2+=0B+70R+5CR+2SR+0B@Y02A^$+@!````BQPDBW0D!(GL7<-\ -XM#XM"+#E!+'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+'"2+="0$B>Q= -XMZ:#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG -XM`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0E`Y05!^$+@!````BQPD -XMBW0D!(GL7<-\#XM"5#E!5'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+ -XM'"2+="0$B>Q=Z1#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O_ -XM__^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0A@Y01A^ -XM$+@!````BQPDBW0D!(GL7<-\#XM"'#E!''_FD(UT)@!]![C_____Z]V+0T") -XM10R+1D")10B+'"2+="0$B>Q=Z8#Z__^-M@````"-OP````!5B>6+50R+10B) -XM50B)10Q=Z7O___^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+ -XM2SR+0B`Y02!^$+@!````BQPDBW0D!(GL7<-\#XM")#E!)'_FD(UT)@!]![C_ -XM____Z]V+0T")10R+1D")10B+'"2+="0$B>Q=Z?#Y__^-M@````"-OP````!5 -XMB>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG`````%6)Y8M%"(M5#(M`0(E% -XM#(M"0(E%"%WIJ?G__Y"-="8`58GEBT4,BT!`B44,BT4(BT!`B44(7>F)^?__ -XMD)"0D)!5B>6#[`R)'"2)="0$B7PD"(M%"(M5#(LP#[=&-&:#^`DW____C;0F```` -XM`#'2BQPDB="+="0$BWPD"(GL7<.-M@````"-O"<`````58GE5U93@>PL!0`` -XMBST\[`0(B848^___B944^___B8T0^___A?_'1%//O__P$```#'!"0RU`0(Z-'V___'1<``````QT7$`````,=%V``` -XM``#'1=0`````QT70`````(7`B``````QT7D`````,=%Z`````#'1>P` -XM````QT7<`````'0)@#@`#X6"!@``BYT4^___A=L/A!8&``"+A1#[__^+O13[ -XM___'A2S[__\`````QX4P^___`````(/@`L>%3/O__P````#'A4C[__\````` -XMB84,^___Z9P"``!F@_@*#X2@`@``BXT8^___A2A(.P$"(7`=0FA[.L$"(7`=!L/MT2+A3S[__^%P`^$(P(``(M7/(G0B94H^___BT@\BT7L -XMBU(XB<;!_A\Y\7P)?P0YPG8#B57LBY4H^___BT($.T7H=@.)1>B+C2C[__\/ -XMMT$*.T7@=@.)1>"+C2C[__^+430[5<2+03!\#7\%.T7`=@:)1<")5<2+A2C[ -XM__^+0#@!A2S[__^A0.P$"(7`#X2@`0``H1CK!`B%P`^$MP(``(N5*/O__XUU -XMIHU=LXM"#,=$)`A-U`0(QT0D!`T```")-"2)1"0,Z$;W__^+C2C[__^+01#' -XM1"0(3=0$",=$)`0-````B1PDB40D#.@A]___B;5`^___B9U$^___BX5`^___ -XMB00DZ$?X__\[1=")A3C[__]V`XE%T(N51/O__XD4).@K^/__.T74B<-V`XE% -XMU(LU..P$",>%-/O__P````"%]@^%E0(``(L-!.P$"#'2QT7,`````(7)#X7I -XM`@``B[4X^___BXTT^___`=Z-1#$8`=")!"3H-O?__X7`B<,/A/,'``"-0!") -XM`XN50/O__XD$)(E4)`3HQ??__XN-./O__XU$&1&)0P2+E43[__^)!"2)5"0$ -XMZ*;W__^+C2C[__\/MT$()0#P```]`"````^$Q0$``#T`8```#X2Z`0``H3CL -XM!`B%P`^%Q`$``*$$[`0(A\O__@\`!#X1[ -XM!```9H-_,@`/A=X```"+1T"-M5?[___'1"0(2M0$",=$)`0!!```B30DB40D -XM#.B%\___BY4,^___A=)T6XM%R(DT)(E$)`3H'/3__X/``71;C47,B40D!(M% -XMR(D$).C%\?__@\`!=$2+1U`0(B40D!.C_\O__BT7(B00DZ`3R__^+1%,/O__P````#'A2S[__\` -XM````H4#L!`B%P'4-H?3K!`B%P`^$8OW__XN]&/O__X7_#X7<_/__Z4_]__\Q -XMP(,]].L$"``/E<")A3S[___I'?G__XD$).AR\___C40``HD$).C&\O__A<") -XMA1S[__\/A'\#```/M@,\.@^$B`,``(N5'/O__XG1B`*#P0'&0@$`#[9#`83` -XM=#V)VNL4B`&#P0'&00$`#[9"`H/"`83`="6`.CIUYSPZ=>/&`3`/MD(!B$$! -XM@\$"QD$!``^V0@*#P@&$P'7;@'G_.@^$50,``(U%W(N-'/O__XE$)"B-1>2) -XM1"0DC47`B40D((U%V(E$)!R-1=2)1"08C470B40D%(U%X(E$)!"-1>R)1"0, -XMC47HB40D",=$)`3HU`0(B0PDZ/CP___'!13L!`@!````@_@(#X8M`@``BW7H -XM,<"%]G0=N0$```"X"@```/?A@^X!B<%U\L=%Z`````"-0/^+?>R)1>@QP(7_ -XM?C*)_KD!````,=MKTPJX"@```(F5!/O___?AB=.)P0.=!/O__X/N`77AQT7L -XM`````(U`_XMUX(E%[#'`A?9T';D!````N`H```#WX8/N`8G!=?+'1>`````` -XMC4#_BTW$BU7`B47@@_D`B94@^___B8TD^___#XZ)`0``BXT@^___O@$````Q -XM_XN=)/O__VO'"HF%!/O__[@*````]^:)UXG&`[T$^___@\'_@]/_B=H)RG7: -XMB?")^H/`_\=%P`````"#TO_'1<0`````BXT<^___B47`B57$B0PDZ"7Q___I -XM=/?__XN%+/O__XU=CHN-,/O__\=$)`ARU`0(QT0D!!@```")A5S___^+1>R) -XMC6#___^)'"2)1"0,Z/;O__^)'"3H+O'__\=$)`ARU`0(QT0D!!@```")'"2) -XMA6S___^+1=B)A7#___^+1=R)A73___^+1=2)A7C___^+1>B)1"0,Z*[O__^) -XM'"3HYO#__\=$)`ARU`0(QT0D!!@```")'"2)A7S___^+1>")1"0,Z('O__^) -XM'"3HN?#__XM5Q,=$)`AVU`0(QT0D!!@```")'"2)5"00B46`BT7`B40D#.A0 -XM[___B1PDZ(CP__^)182+1=")18CI[_G__XM'0(E$)`B+1P2+0!C'!"1>U`0( -XMB40D!.@M[___Z=/[____)(5$U00(?!&#^@"0C;0F``````^'9/[__S'`,=+I -XMK/[__\=%Z`````#'1>P`````QT7@`````,=%T`````#'1=0`````QT78```` -XM`,=%P`````#'1<0`````QT7D`````(,]&.P$"`''1=P`````&<#WT"$%%.P$ -XM".E4_?__QT0D!#_4!`C'!"0!````Z$7O__^+A1S[__^)P8/!`F;'`#`ZQD`" -XM`.EP_/__QT0D!%+4!`C'!"0!````Z!CO__]FQP$P`.FA_/__C78`C;PG```` -XM`%6)Y5=64X/L'(,]%.L$"`&)1>R)3>@9P"7`EP0(B40D"(E,)`2)%"3H!^W_ -XM_X7`B<CJ!`B+ -XM0@B#Z`&%P(E""`^(;P$``(L"Q@`*@\`!B0*+0QB)!"3H*Q```,<$)*#4!`CH -XMD^K__XM%\(D\)(E$)`3H-.S__XM-Z(G"B<:)V.BR\___H1SK!`B%P`^%1?__ -XM_X7V#X0]____B5PD!,=$)`@$````B3PDZ#WK__^)/"3HE>O__X7`B<,/A2G_ -XM___HENS__XL`A<`/A?T```"#Q!Q;7E]=PV:#^`1T"F:#^`O__XE$)`B+0T#'!"1&U`0(B40D!.@2[/__QP4XZP0(`0```.F__O__ -XMBT-`QP0D@]0$"(E$)`3H\.O__^FG_O__C;0F`````(-][`$/CB?___^+0QB) -XM!"3H.P\``,<$)*#4!`CHH^G__\<%/.L$"`$```#I`?___Z$$[`0(A<`/A5;^ -XM___V1>@(QT7P``$```^%4O[__^E`_O__H>CJ!`C'!"0*````B40D!.C\Z?__ -XMZ:W^__^A#.L$"(7`#X0F_O__Z6#^__^)5"0$QP0D"@```.A5[/__D.F%_O__ -XMQT0D!*+4!`C'!"0!````Z'OL___'1"0$>M0$",<$)`$```#H9^S__XUV`(U, -XM)`2#Y/#_575E-1@>PH!@``BQF+202-A>#]__^)1>C'1"0$*]<$",<$ -XM)`````")C=SY___H1>S__\<$)`$```#H*>S__X7`#X24````QP5\Z`0(4``` -XM`,<$)*O4!`CH^^C__X7`=`F`.``/A=@'``"-1>")1"0(QT0D!&AT"$#'!"0! -XM````Z)/I__^#P`%T$0^W1>)FA -XM``#KS\<%).L$"`$```#'!"2KU`0(Z&?H__^%P'2PB00DZ!OH__^C?.@$".NA -XM_R2%:-4$"(L5#.L$"(L]].H$"(72#X1X!0``QP0DL]0$".@MZ/__AO__X7`#X2D`0``QP0DR]0$".@)Z/__B40D!(V%X/G__XD$).A7 -XMZO__@^@!#X0B!@``H1CL!`B%P'1&QP44[`0(`0```,=$)`30KP0(QP0D`@`` -XM`.@WZO__QT0D!-"O!`C'!"0#````Z"/J___'!"3?U`0(Z*?G__^)!"3H*P@` -XM`*$\[`0(A<`/A,8```"A0.P$"(7`=1B+%0CK!`B%TG4.BPTL[`0(ASK!`@`````Z5/\___'!1SL -XM!`@!````Z43\___'!3#K!`@!````QP4LZP0(`````.DK_/__QP4GO^___QT0D"`$```#'1"0$*]<$",<$)+/4!`CH$>?__^G.^___QP40[`0( -XM`0```,<%+.P$"`$```#IM?O__\<%..P$"`$```#IIOO__\<%&.L$"`$```#I -XME_O__\<%*.L$"`$```#'!23K!`@`````QP5`[`0(`````.ET^___QP5`[`0( -XM`0```,<%).L$"`````#'!2CK!`@`````Z5'[___'!?CK!`@`````QP4$ZP0( -XM`0```.DX^___QP4\[`0(`0```.DI^___QP7XZP0(`0```.D:^___QP44ZP0( -XM`0```.D+^___QP4(ZP0(`0```,<%'.L$"`````#I\OK__\<%Z.L$"`$```#' -XM!0#L!`@`````QP4T[`0(`````.G/^O__QP4([`0(`````,<%(.P$"`````#' -XM!>SK!`@!````Z:SZ___'!03L!`@!````Z9WZ___'!33K!`@!````Z8[Z___' -XM!33L!`@!````QP4`[`0(`````,<%Z.L$"`````#I:_K__XGQNH#H!`BX`0`` -XM`.@$]___Z2K\__^A0.P$"(7`#X2M````QP7\Z@0(X+X$".GT^___H2SK!`B% -XMP'5&BPTPZP0(AS' -XM1"0$#.P$"(D$).C.Y/__BQ4,[`0(B=#!^!_!Z!CZ___'!0#K!`B@EP0(Z=GZ__^#S@'I:OK__\<%_.H$"&"Z -XM!`CIV?K__XU-Z(E,)`3'!"30U`0(Z&GE___'!"33U`0(H_#K!`B-1>B)1"0$ -XMZ%'E__^-3>B)3"0$QP0DUM0$"*,H[`0(Z#GE___'!"39U`0(HT3L!`B-1>B) -XM1"0$Z"'E__^-3>B)3"0$QP0DW-0$"*,D[`0(Z`GE__^%P*/\ZP0(#X30```` -XMH?#K!`B%P`^$4?G__Z$H[`0(A<`/A$3Y__^A_.L$"(7`#X0W^?__QP48[`0( -XM`0```.DQ^?__B00DZ,[@___'!0CL!`@!````HWSH!`CI1_C__Z$T[`0(A6#[!B%P'0]H?SK!`C'1"0($+`$ -XM",=$)`0!````B00DZ/WA__^X$+`$"(E$)`BA1.P$",=$)`0!````B00DZ-_A -XM___)PZ'\ZP0(QT0D"""U!`C'1"0$`0```(D$).C`X?__N""U!`CKP9"-="8` -XM58GE4X/L%(M="(G8Z'____^)'"3'1"0$`````.@SXO__Z"[C__^)7"0$B00D -XMZ,+?__^#Q!1;7<.0C;0F`````%6)Y8/L*(M%",=$)`@!````QP0D`0```(A% -XM_XU%_XE$)`3H;=___S'`R<.0C70F`%6)Y5=64X/L+(M%"(7`#X1``0``BT4( -XM,?^)!"3HT^+__XL5O-<$"&;'1=H``,=%W`````")5>")1=3K/(UT)@`/OL*# -XMZ#")`V:#?=H`#X2N````9L=%V@$`@\8!@\,$@_X"=46#QP=P,@T7@`H/_ -XM"P^$U````(M%W,>`:.L$"`````"-!#\Y1=1W.8M5X`^V`HA%\@^V0@&(1?.- -XM!'\Q]HT3J!`A]#*'LZ@0(BXR( -XM-`0``(/Y>'03#[["B40D!,<$))#7!`CH\]___\<#_____^D-____@\0L6UY? -XM7564XG#C31`@^P0BQ2U:.L$"(72#X64````BP2U -XM8.L$"(/X_W0XB40D"*'PZP0(QT0D!`````")!"3H`][__X7`=!O'1"0((+4$ -XM",=$)`0!````B00DZ(??__^-=@"-!%N+!(5DZP0(@_C_=#6)1"0(H2CL!`C' -XM1"0$`````(D$).B\W?__A7<.0C70F`*$D[`0(QT0D"""U!`C'1"0$`0```(D$).@7W___Z4K___^- -XMM"8`````C;PG``````^WP(G"58'B`/```(GE@^P(@?H`0```#X3&````?E&! -XM^@"@```/A'T```"!^@#```!T8H'Z`&````^$?````#'2J$ET7_;$"`^%X@`` -XM`/;$!`^$MP```+@(````C70F`.B[_O__N@$```#K.(UT)@"!^@`0``!T6('Z -XM`"```(GV=;VX!@```.B4_O__N@$```#)B=##N`(```#H@?[__[H!````R8G0 -XMP[@!````Z&[^__^Z`0```,F)T,.X!0```.A;_O__N@$```#)B=##B?:X`P`` -XM`.A&_O__N@$```#)B=##J`)T./;$`G01N`D```#H*O[__[H!````ZZ>X"@`` -XM`.@9_O__N@$```#KEK@$````Z`C^__^Z`0```.N%,<#H^OW__[H!````Z73_ -XM__^X!P```.CF_?__N@$```"0Z5____^-="8`C;PG`````%6)Y5.#[&2)1:BA -XMD.@$"(7`#XC9````H43K!`B%P`^$L@```*$<[`0(A\`.=!_ -XM'8L-D.@$"+NVU@0(A-M"8`````C8(`\>\`.<%]V:&0Z`0( -XMNZ+6!`B%P`^%=/___[NLU@0(Z6K____'!"0`````Z-+:__^C1.L$".DX____ -XMC70F`,<$)#D```#H:-W__X`X9`^4P`^VP*.0Z`0(Z0C___^0BQ4@[`0(58GE -XMBT4(A=)U"HL-[.L$"(7)=`F)10A=Z;T7``"+%0CL!`B%TG0)B44(7>E:$@`` -XMB44(7>EA%0``D%6)Y8/L"*'@Z@0(BTT(A"*+`H@(@\`!B0+),<##H>CJ!`B)#"2)1"0$Z)':__\QP,G#.T(8?`:`^0J0 -XM==.)5"0$B0PDZ/;<___KSE6)Y8/L"(L-$.P$"(7)=!`E`/```#T`0```='3) -XM,<##B<*!X@#P``"!^@"@```/A-\````/AXP```"!^@`0```/A%,!``"!^@!` -XM``"-="8`=#ZH273&H>#J!`B%P`^%AP$``(L5Z.H$"(M""(/H`87`B4((#XAX -XM`@``BP+&`"J#P`&)`K@!````R<.0C70F`(L5X.H$"(72#X6J````BQ7HZ@0( -XMBT((@^@!A<")0@@/B!4!``"+`L8`+X/``8D"N`$```#)PX'Z`,````^$D@`` -XM`('Z`.````^%=/___Z'@Z@0(A<`/A9CJ!`B+0@B#Z`&%P(E""`^( -XM8`$``(L"Q@`E@\`!B0*X`0```,G#H>#J!`B%P`^%?@$``(L5Z.H$"(M""(/H -XM`87`B4((#XC/````BP+&`$"#P`&)`K@!````R<.AZ.H$",<$)"\```")1"0$ -XMZ!?9__^X`0```,G#H>#J!`B%P`^%90$``(L5Z.H$"(M""(/H`87`B4((#XBZ -XM````BP+&`#V#P`&)`K@!````R<.AX.H$"(7`#X44`0``BQ7HZ@0(BT((@^@! -XMA<")0@AX;8L"Q@!\@\`!B0*X`0```,G#.T(8#XWB_O__B50D!,<$)"\```#H -XM$=O__[@!````R<.AZ.H$",<$)"H```")1"0$Z'78__^X`0```,G#.T(8#XTH -XM____B50D!,<$)$````#HU=K__[@!````R<,[0AA]CHE4)`3'!"1\````Z+G: -XM__^X`0```,G#.T(8#XT]____B50D!,<$)#T```#HF=K__[@!````R<,[0A@/ -XMC9?^__^)5"0$QP0D)0```.AYVO__N`$```#)PZ'HZ@0(QP0D)0```(E$)`3H -XMW=?__[@!````R<.AZ.H$",<$)$````")1"0$Z,'7__^X`0```,G#H>CJ!`C' -XM!"1\````B40D!.BEU___N`$```#)PZ'HZ@0(QP0D/0```(E$)`3HB=?__[@! -XM````R<,[0A@/C7_]__^)5"0$QP0D*@```.CIV?__N`$```#)PXVT)@````"- -XMO"<`````58GE@^PXB5WTB<.)??R)SXEU^(MP/*$\[`0(QT7L`````(7`#X7> -XM````H?3K!`B%P'5RH1CL!`B%P'1)#[=&".B;^?__B<>+0T")!"3H[OO__XM- -XM[(T<"*$8[`0(AQ=PXM#0(D$).BP^___BU7LC1P0Z\F%_W3%,<#H'?;__^N\H0SL!`B#Z`&) -XMPL'Z'XE%X(E5Y(M&.(M6/`%%X*$,[`0($57DBTWDB<+!^A^)5"0,BU7@B4PD -XM!(E$)`B)%"3HF!@``(E\)`3'!"04UP0(B40D"(E4)`SH--C__P%%[.DK____ -XMBT8$B50D!,<$),S6!`B)1"0(Z!78__^)1>SI`____XGVC;PG`````%6)Y593 -XM@^P0BW4(BQZ%VW4FZUR+%>CJ!`B+0@B#Z`&%P(E""'A0BP+&``J#P`&)`HM; -XM"(7;=#B#>PP!=/.+3A2)V(M6).B&_O__H>#J!`B%P'3`H>CJ!`C'!"0*```` -XMB40D!.B\U?__BUL(A=MUR(/$$%M>7<.)5"0$QP0D"@```.@>V/__ZZB0C;0F -XM`````%6)Y5=64X/L/(M%"(,]%.P$"`$9TH/B!X/"`8E%T(E5Z(M`##L%C.@$ -XM"`^/O@(``(M=T(L#QT7<`````(7`=!^+%4#K!`B#>`P!=`R+3=R)!(J#P0&) -XM3=R+0`B%P'7GH3SL!`B+7="%P(M3$'0(BT,D@\`!`<*+#?3K!`B%R70+BUW0 -XMBT,4@\`!`<*#/2SL!`@!BT7H@]K_`U7H]]B)1=0APHE5\(M%\(L5?.@$"`'` -XM.=`/CR0"``")T,'Z'_=]\(M5W(E%S(G0P?H?]WW,@_H!BU70@]C_B47@BP*% -XMP`^$N0$``&:#>#(`#X6N`0``BW7@A?8/CG(!``#'1=@`````QT7D`````(L= -XM,.P$"(7;=0:+5>2)5=B+3P/C:D```"+%>#J -XM!`B%TG5.BPWHZ@0(@ST4[`0(`8M!"!G2@^+I@\(@@^@!A<")00AX48L!B=Z( -XM$(/``8D!BU7HC1P6(UW4.?M^IHM-S#E-['1=@T7L`0-]\.E*____@ST4[`0( -XM`8G>BQ7HZ@0(&<"#X.F#P"")5"0$B00DZ(S3___KNCM!&'P%@/H*=:6)3"0$ -XMB=Z)%"3H\M7__^N@BU7@`578BTW<.4W8#XPR____H>#J!`B%P'4UBQ7HZ@0( -XMBT((@^@!A<")0@AX.8L"Q@`*@\`!B0*#1>0!BUW@.5WD#X6<_O__@\0\6UY? -XM7<.AZ.H$",<$)`H```")1"0$Z`O3___KT8E4)`3'!"0*````Z'G5___KOXL] -XM0.P$"(7_=0B%R0^$0/[__XM-T(L=#.P$"(M1!,<$)-+6!`B#Z@&-#!HQTHG( -XM]_.)1"0$Z)W4___I$_[__XM5T(E5"(/$/%M>7UWI@OS__\'@`HE$)`2A0.L$ -XM"(D$).ART___A<")PG06BTW0BT$,B15`ZP0(HXSH!`CI$OW__\<$)`````#H -XM>M3__XM=T(E=".NPC;0F`````(V\)P````!5B>575E.#[`R+=0B+'H7;#X2^ -XM````,?_K'(VV`````,<$)-W6!`B#QP+H!=3__XM;"(7;='2#>PP!=/.+0T") -XM!"3H3=7__X-["`$9TO?2@^("C00'`=`[!7SH!`AR,:'@Z@0(A+0PB%P`^%=O___X7_=":AX.H$"(7`=3Z+%>CJ!`B+0@B#Z`&%P(E" -XM"'A?BP+&``J#P`&)`H/$#%M>7UW#H>CJ!`@Q_\<$)`H```")1"0$Z&'1___K -XMFZ'HZ@0(QP0D"@```(E$)`3H2M'__X/$#%M>7UW#B50D!#'_QP0D"@```.BP -XMT___Z6?___^)5"0$QP0D"@```.B;T___ZYF0C70F`%6)Y5=64X'L7`@``(M% -XM"(LXA?\/A#,#``!F@W\R``^%*`,``,>%Q/?__P````#'A%T/?__P$```"# -XMZ`$/A+\%``")'"3H-=/__\>%R/?__P$```"-M"8`````BP:)A+\__\/ML2)5"0(B40D -XM!,<$)`?7!`CH.K^__\/C)````#'A8KZ0SZ -XM__^)5"0$QP0D"@```.B9S/__Z;3[___HS\O__X,X%@^$8O___XV=V_O__XE< -XM)`3'!"1*U`0(Z`#,___IY_G__X.]T/?__P,/CL'Y___KJI"0D)"0D)"058GE -XM@^P8H?#J!`C'1"0(/@```,=$)`0!````QP0DP-<$"(E$)`SH"A?]UIXN%8/___X'$K``` -XM`%M>7UW#C;8`````BX5@____C028B85@____Z]*)%"3H"\G__^NZD(UT)@"- -XMA7#___^#Q@&#A6#___\$@^\!QT0D"(````#'1"0$`````(D$).A)RO__ZYB+ -XMA6#___^-!+B)A6#____KBXGV58GE5U93@>RL````C85P____QT0D"(````#' -XM1"0$`````(D$).@*RO__QX5@____`````(M5"(V%'>+`H@(@\`!B0*#Q@$Y]W0HH>#J -XM!`B%P'3-H>CJ!`B+50B)1"0$#[8$%H/&`8D$).B4Q___.?=UV(M=\#'`A=MT -XM*('[_P````^'@0$``*'LZ@0(BT28-(G"@>(```#@#X18`0``B=#!Z!X!?0@! -XMA6#____I`?___SM"&`^VV7P)@/L*#X5X____B50D!(D<).BTR?__Z7#___^+ -XM%>#J!`B%T@^%F@```(L5Z.H$"(M""(/H`87`B4((#X@=`0``BP+&`#^#P`&) -XM`@%]"(.%8/___P'IH?[__XL=X.H$"(7;#X6]````BQ7HZ@0(BT((@^@!A<") -XM0@@/B/T```"+`L8`/X/``8D"C95P____@T4(`8.%8/___P''1"0(@````,=$ -XM)`0`````B10DZ$G(___I1/[__XD<).C,QO__Z9+^__^AZ.H$",<$)#\```") -XM1"0$Z'+&___I;?___XL-X.H$"(7)#X6N````BQ7HZ@0(BT((@^@!A<")0@@/ -XMB+$```"+`L8`/X/``8D"@X5@____`8N%8/___X'$K````%M>7UW#H>CJ!`C' -XM!"0_````B40D!.@1QO__Z4K___\E```$`(/X`1G`@\@!Z9O^__^)'"3H,L;_ -XM_^E[_O__.T(8#XW:_O__B50D!,<$)#\```#H5,C__^G/_O__.T(8#XWZ_O__ -XMB50D!,<$)#\```#H-LC__^GO_O__H>CJ!`C'!"0_````B40D!.B%8/___P````"+ -XM50B-A7#___^)1"0,C47PQT0D"`8```")!"2)5"0$Z+S$__^%P(GR`0`` -XM@_[^#X10`0``@_[_B?8/A.P````QVX7V?S2-="8`ZU>+10B+%>CJ!`@/M@P# -XMBT((@^@!A<")0@@/B)0```"+`H@(@\`!B0*#PP$YWG0IBSW@Z@0(A?]TR*'H -XMZ@0(BU4(B40D!`^V!!.#PP&)!"3HG\3__SG>==>+7?`!=0B!^_\```!W<*'L -XMZ@0(BT28-*D```0`#X0Y____,<"%VW0H@?O_````#X?J````H>SJ!`B+1)@T -XMB<*!X@```.`/A,$```")T,'H'@&%8/___^D`____.T(8#[;Y?`J)^#P*#X5: -XM____B50D!(D\).BBQO__Z5+___^)'"3H5<3__Y#KCHV%XM%"(L5Z.H$"`^V"(M""(/H`87` -XMB4((>'N+`H@(@\`!B0*#10@!@X5@____`>EY_O__BU4(QP0D2M0$"(E4)`3H -XMAL7__P&%8/___XN%8/___X'$K````%M>7UW#)0``!`"#^`$9P(/(`>DR____ -XMB1PDZ+7#___I$O___Z'HZ@0(BU4(B40D!`^V`HD$).A9P___ZXX[0A@/MME\ -XM"8#["@^%=/___XE4)`2)'"3HNL7__^EL____D%6)Y5=64X'LK````(V%%8/___P````"+50B-A7#___^) -XM1"0,C47PQT0D"`8```")!"2)5"0$Z'S"__^%P(F%7/___P^$;@,``(N%7/__ -XM_X/``H/X`0^&`0$``(M=\('[_P````^'D`,``*'LZ@0(BT28-*D```0`#X0$ -XM`P``@_LB#X3[`@``@_M<#X3R`@``B[U<____A?]^9C';ZS*+10B+%>CJ!`@/ -XMM@P#BT((@^@!A<")0@@/B!L#``"+`H@(@\`!B0*#PP$[G5S___]T+8LUX.H$ -XM"(7V=,2AZ.H$"(M5"(E$)`0/M@03@\,!B00DZ"+"__\[G5S___]UTXM=\#'` -XMA=MT*('[_P````^'N0,``*'LZ@0(BT28-(G"@>(```#@#X2*`P``B=#!Z!X! -XMA6#___^#O5S____^#X1V`@``@[U<_____P^$N@(``(N57/___P%5".F[_O__ -XM@[U<_____P^%7P(``+\!````,?;IV````(L5Z.H$"(M""(/H`87`B4((#XB7 -XM`0``BP+&`%R#P`&)`J'@Z@0(A<`/A>````"+%>CJ!`B)V,#H!@^VP(U(,(M" -XM"(/H`87`B4((#X@^`0``BP*("(/``8D"H>#J!`B%P`^%V````(L5Z.H$"(G8 -XMP.@#@^`'C4@PBT((@^@!A<")0@@/B$8!``"+`H@(@\`!B0*AX.H$"(7`#X70 -XM````BQ7HZ@0(B=B#X`>-2#"+0@B#Z`&%P(E""`^(,0$``(L"B`B#P`&)`H/& -XM`8.%8/___P0Y_@^-Y_[__Z'@Z@0(BU4(A<`/MAP6#X04____H>CJ!`C'!"1< -XM````B40D!.BAP/__H>#J!`B%P`^$(/___Z'HZ@0(B40D!(G8P.@&#[;`@\`P -XMB00DZ'C`__^AX.H$"(7`#X0O____C;0F`````*'HZ@0(B40D!(G8P.@#@^`' -XM@\`PB00DZ$C`__^AX.H$"(7`#X0W____C;0F`````*'HZ@0(B40D!(G8@^`' -XM@\`PB00DZ!O`___I.O___XGV.T(8?`F`^0H/A;3^__^)5"0$B0PDZ'K"___I -XMK/[__Y`[0A@/C6#^__^)5"0$QP0D7````.A;PO__Z57^__^)]CM"&'P)@/D* -XM#X6L_O__B50D!(D,).@ZPO__Z:3^__^0.T(8?`F`^0H/A<'^__^)5"0$B0PD -XMZ!K"___IN?[__XL-[.L$"(7)=!"%VW@,@?O_````#XZ3````B[U<____A?\/ -XMC\3]__^#O5S____^#X6*_?__BX5@____@<2L````6UY?7<.+10B)!"3HA,+_ -XM_XG'Z\L[0A@/MO%\"HGP/`H/A=/\__^)5"0$B30DZ*+!___IR_S__XD<).A5 -XMO___D.EK_/__C85P____QT0D"(````#'1"0$`````(D$).BAP/__@T4(`>GH -XM^___#[[#B40D!,<$)/_7!`CH%<#__X7`B<,/A%#___^+%>#J!`B%T@^%E0`` -XM`(L5Z.H$"(M""(/H`87`B4((#XBR````BP+&`%R#P`&)`J'@Z@0(ACJ!`C'!"1<````B40D!.@3OO__Z7+___\[41A\ -XM!SP*C78`=8F)3"0$B1PDZ';`___KA#M"&`^-1?___XE4)`3'!"1<````Z%O` -XM___I.O___Y"058GE5U:#[#"+50R+10B+=1"+?12)5=R+3=R)1=C'1=`````` -XMB?#'1=0`````B?J%R<=%Y``````/B*0```"%_P^(N@```(G7B<:+5=B)P8M% -XMW(7_B57PB47L=10YQG9!B="+5>SW]HG!,<#K$XUV`#M]['9/,R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!R -XMG+D!````,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KW -XMV(/2`/?:]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`) -XMQXM%\-/F#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)`!, -XM4U]#3TQ724142%,`;6%L;&]C`"5S.B`EC!`@^HP0(D:D$""VG -XM!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$ -XM""VG!`@MIP0(+:<$"%^I!`ANJ00(S:D$""VG!`@MIP0(M*D$"!>K!`@/JP0( -XM`*L$""VG!`@MIP0(]:H$""VG!`@MIP0(+:<$".JJ!`@MIP0(VZH$",*J!`BS -XMJ@0(>*P$""VG!`AIK`0(+:<$""VG!`A:K`0(+:<$""VG!`@MIP0(+:<$""VG -XM!`@MIP0(7*D$"#>L!`@4K`0(^ZL$""VG!`CLJP0(!J<$"-VK!`C.JP0(+:<$ -XM"+6K!`B2JP0(;ZL$"&"K!`A1JP0(.*L$")"J!`B!J@0("4P -XM.'@@`"4S9"P@)3-D(``E*G,E*FID(``E-7,@``IL&1X8GAE9V5D86)A9V%C860`3%-#3TQ/4E,@I$$"(J1 -XM!`B:D00(JI$$"+J1!`C*D00(VI$$".J1!`CZD00("I($"!J2!`@JD@0(.I($ -XM"$J2!`A:D@0(:I($"'J2!`B*D@0(FI($"*J2!`BZD@0(RI($"-J2!`CJD@0( -XM^I($"`J3!`@:DP0(*I,$"#J3!`A*DP0(6I,$"&J3!`AZDP0(```````````` -XM)$9R965"4T0Z('-R8R]L:6(O8W-U+V-O;6UO;B]C'`@)`!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#6YA;6EC`"YC=&]Rls.uu << '4db11c737631d887608e3186a17a7a3e' -Xbegin 644 ls -XM?T5,1@$!`0D```````````(``P`!````D),$"#0```!\7@```````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(<%@` -XM`'!8```%`````!````$```!P6```<.@$"'#H!`AH`@``V`,```8`````$``` -XM`@```-!8``#0Z`0(T.@$"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1<6```7-@$"%S8!`@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%4````]````40```!8`````````.P```%`````````` -XM.@```#@```!.````0P```!4`````````/@```#8```!!````2P`````````L -XM`````````!<````%````2@```%(```!%`````````!P````M````)P```$8` -XM`````````````#,`````````4P```"@`````````"0````@````````````` -XM```````,````/````#4```!/````"P```"````!4````,0```"$````````` -XM`````$T````?````1P```$P``````````````#\`````````20```$`````` -XM````,````#0````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````"@`` -XM``T````````````````````&```````````````2```````````````````` -XM`````````````````````!$````````````````````B`````````!L````9 -XM``````````(````3```````````````E````#@```!`````/````!P```!H` -XM```4````````````````````)@```"\````C```````````````D````&``` -XM```````Y````,@``````````````'@```"D````J`````````#<````$```` -XM2````$(`````````'0```$0`````````+@`````````K```````````````` -XM``````````````!N`0```````*,````2````T`(```````#&````$@```)D! -XM````````-````!(```"3`@```````#,````2````=0(```````!#````$@`` -XM`"T!````````2````!(```![`@`````````````2````]@````````!K`0`` -XM$@````X```#0Z`0(`````!$`\?^A`0`````````````2````%P````````!L -XM!```$@```&T`````````U`,``!(```!2`@```````*$````2````$`(````` -XM``!:````$@```!0`````````A!@`` -XM$@```,P!````````>````!(````M````W-,$"``````2``T`I@$```````", -XM`@``$@```.@(````` -XM``"Q````$@```/8!``#LZ@0(!````!$`%P"*`@```````,\!```2````2@(` -XM``````#+````$@```%D"````````0P```!(````\`0```````,,````2```` -XM80$````````J````$@```#P"````````/@```!(```#G`@``V.H$"``````0 -XM`/'_0P$````````S````$@```#,```"\Z00(`````!$`\?_Z`@``2.P$"``` -XM```0`/'_7@(```````!B`P``$@````T!``#PZ@0(!````!$`%P`!`0`````` -XM`),````2````L@$``/3J!`@$````$0`7`#4!`````````````!(```!7`@`` -XM`````"L````2````@0(````````I````$@````8!`````````````!(```"R -XM`@`````````````2````H0``````````````$@```$D``````````````"`` -XM```D`0`````````````2````@0`````````4`0``$@```,8`````````6P`` -XM`!(`````;&EB=71I;"YS;RXW`%]$64Y!34E#`&AU;6%N:7IE7VYU;6)E<@!? -XM:6YI=`!?9FEN:0!?1TQ/0D%,7T]&1E-%5%]404),15\`7TIV7U)E9VES=&5R -XM0VQA0!?7W-T9&]U -XM='``=V%R;G@`:6]C=&P`0!A8VQ?9V5T7V5N=')Y`&9T7!E`'-T#I!`AH,````.F`_____R7DZ00(:#@```#ISI!`AH2````.E0_____R7PZ00(:%````#I0/____\E].D$"&A8```` -XMZ3#_____)?CI!`AH8````.D@_____R7\Z00(:&@```#I$/____\E`.H$"&AP -XM````Z0#_____)03J!`AH>````.GP_O___R4(Z@0(:(````#IX/[___\E#.H$ -XM"&B(````Z=#^____)1#J!`AHD````.G`_O___R44Z@0(:)@```#IL/[___\E -XM&.H$"&B@````Z:#^____)1SJ!`AHJ````.F0_O___R4@Z@0(:+````#I@/[_ -XM__\E).H$"&BX````Z7#^____)2CJ!`AHP````.E@_O___R4LZ@0(:,@```#I -XM4/[___\E,.H$"&C0````Z4#^____)33J!`AHV````.DP_O___R4XZ@0(:.`` -XM``#I(/[___\E/.H$"&CH````Z1#^____)4#J!`AH\````.D`_O___R5$Z@0( -XM:/@```#I\/W___\E2.H$"&@``0``Z>#]____)4SJ!`AH"`$``.G0_?___R50 -XMZ@0(:!`!``#IP/W___\E5.H$"&@8`0``Z;#]____)5CJ!`AH(`$``.F@_?__ -XM_R5.H$"&A@`0``Z2#]____)7SJ!`AH -XM:`$``.D0_?___R6`Z@0(:'`!``#I`/W___\EA.H$"&AX`0``Z?#\____)8CJ -XM!`AH@`$``.G@_/___R6,Z@0(:(@!``#IT/S___\ED.H$"&B0`0``Z<#\____ -XM)93J!`AHF`$``.FP_/___R68Z@0(:*`!``#IH/S___\EG.H$"&BH`0``Z9#\ -XM____):#J!`AHL`$``.F`_/___R6DZ@0(:+@!``#I3K!`A^-HM% -XM"(7`="^C<.@$"`^V$(32=".#P`'K"@^V$(/``832=!2`^B]U\:-PZ`0(#[80 -XM@\`!A-)U[+C0Z`0(A6#[`B` -XM/?CJ!`@`=`SK'(/`!*-XZ`0(_]*A>.@$"(L0A=)UZ\8%^.H$"`')PY!5B>6# -XM[`BAN.D$"(7`=!*X`````(7`=`G'!"2XZ00(_]#)PY"0D)"0D)"0D)"0D)!5 -XMB>6#[`R)'"2)="0$B7PD"(MU#(M]"(M&/(M8-(M(,(M'/(M0-(M`,#G3?12X -XM_____XL<)(MT)`2+?"0(B>Q=PWX-N`$```#KZ(VV`````#G!=^\YTWX?BT9` -XMB44,BT=`B44(BQPDBW0D!(M\)`B)[%WI/?S__WRT.<%SVXUV`.NKC;0F```` -XM`(V\)P````!5B>6+50R+10B)50B)10Q=Z5O___^-="8`C;PG`````%6)Y8/L -XM"(D<)(ET)`2+=0B+70R+5CR+2SR+0B@Y02A^$+@!````BQPDBW0D!(GL7<-\ -XM#XM"+#E!+'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+'"2+="0$B>Q= -XMZ:#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG -XM`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0E`Y05!^$+@!````BQPD -XMBW0D!(GL7<-\#XM"5#E!5'_FD(UT)@!]![C_____Z]V+0T")10R+1D")10B+ -XM'"2+="0$B>Q=Z1#[__^-M@````"-OP````!5B>6+50R+10B)50B)10Q=Z7O_ -XM__^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+2SR+0A@Y01A^ -XM$+@!````BQPDBW0D!(GL7<-\#XM"'#E!''_FD(UT)@!]![C_____Z]V+0T") -XM10R+1D")10B+'"2+="0$B>Q=Z8#Z__^-M@````"-OP````!5B>6+50R+10B) -XM50B)10Q=Z7O___^-="8`C;PG`````%6)Y8/L"(D<)(ET)`2+=0B+70R+5CR+ -XM2SR+0B`Y02!^$+@!````BQPDBW0D!(GL7<-\#XM")#E!)'_FD(UT)@!]![C_ -XM____Z]V+0T")10R+1D")10B+'"2+="0$B>Q=Z?#Y__^-M@````"-OP````!5 -XMB>6+50R+10B)50B)10Q=Z7O___^-="8`C;PG`````%6)Y8M%"(M5#(M`0(E% -XM#(M"0(E%"%WIJ?G__Y"-="8`58GEBT4,BT!`B44,BT4(BT!`B44(7>F)^?__ -XMD)"0D)!5B>6#[`R)'"2)="0$B7PD"(M%"(M5#(LP#[=&-&:#^`DW____C;0F```` -XM`#'2BQPDB="+="0$BWPD"(GL7<.-M@````"-O"<`````58GE5U93@>PL!0`` -XMBST\[`0(B848^___B944^___B8T0^___A?_'1%//O__P$```#'!"0RU`0(Z-'V___'1<``````QT7$`````,=%V``` -XM``#'1=0`````QT70`````(7`B``````QT7D`````,=%Z`````#'1>P` -XM````QT7<`````'0)@#@`#X6"!@``BYT4^___A=L/A!8&``"+A1#[__^+O13[ -XM___'A2S[__\`````QX4P^___`````(/@`L>%3/O__P````#'A4C[__\````` -XMB84,^___Z9P"``!F@_@*#X2@`@``BXT8^___A2A(.P$"(7`=0FA[.L$"(7`=!L/MT2+A3S[__^%P`^$(P(``(M7/(G0B94H^___BT@\BT7L -XMBU(XB<;!_A\Y\7P)?P0YPG8#B57LBY4H^___BT($.T7H=@.)1>B+C2C[__\/ -XMMT$*.T7@=@.)1>"+C2C[__^+430[5<2+03!\#7\%.T7`=@:)1<")5<2+A2C[ -XM__^+0#@!A2S[__^A0.P$"(7`#X2@`0``H1CK!`B%P`^$MP(``(N5*/O__XUU -XMIHU=LXM"#,=$)`A-U`0(QT0D!`T```")-"2)1"0,Z$;W__^+C2C[__^+01#' -XM1"0(3=0$",=$)`0-````B1PDB40D#.@A]___B;5`^___B9U$^___BX5`^___ -XMB00DZ$?X__\[1=")A3C[__]V`XE%T(N51/O__XD4).@K^/__.T74B<-V`XE% -XMU(LU..P$",>%-/O__P````"%]@^%E0(``(L-!.P$"#'2QT7,`````(7)#X7I -XM`@``B[4X^___BXTT^___`=Z-1#$8`=")!"3H-O?__X7`B<,/A/,'``"-0!") -XM`XN50/O__XD$)(E4)`3HQ??__XN-./O__XU$&1&)0P2+E43[__^)!"2)5"0$ -XMZ*;W__^+C2C[__\/MT$()0#P```]`"````^$Q0$``#T`8```#X2Z`0``H3CL -XM!`B%P`^%Q`$``*$$[`0(A\O__@\`!#X1[ -XM!```9H-_,@`/A=X```"+1T"-M5?[___'1"0(2M0$",=$)`0!!```B30DB40D -XM#.B%\___BY4,^___A=)T6XM%R(DT)(E$)`3H'/3__X/``71;C47,B40D!(M% -XMR(D$).C%\?__@\`!=$2+1U`0(B40D!.C_\O__BT7(B00DZ`3R__^+1%,/O__P````#'A2S[__\` -XM````H4#L!`B%P'4-H?3K!`B%P`^$8OW__XN]&/O__X7_#X7<_/__Z4_]__\Q -XMP(,]].L$"``/E<")A3S[___I'?G__XD$).AR\___C40``HD$).C&\O__A<") -XMA1S[__\/A'\#```/M@,\.@^$B`,``(N5'/O__XG1B`*#P0'&0@$`#[9#`83` -XM=#V)VNL4B`&#P0'&00$`#[9"`H/"`83`="6`.CIUYSPZ=>/&`3`/MD(!B$$! -XM@\$"QD$!``^V0@*#P@&$P'7;@'G_.@^$50,``(U%W(N-'/O__XE$)"B-1>2) -XM1"0DC47`B40D((U%V(E$)!R-1=2)1"08C470B40D%(U%X(E$)!"-1>R)1"0, -XMC47HB40D",=$)`3HU`0(B0PDZ/CP___'!13L!`@!````@_@(#X8M`@``BW7H -XM,<"%]G0=N0$```"X"@```/?A@^X!B<%U\L=%Z`````"-0/^+?>R)1>@QP(7_ -XM?C*)_KD!````,=MKTPJX"@```(F5!/O___?AB=.)P0.=!/O__X/N`77AQT7L -XM`````(U`_XMUX(E%[#'`A?9T';D!````N`H```#WX8/N`8G!=?+'1>`````` -XMC4#_BTW$BU7`B47@@_D`B94@^___B8TD^___#XZ)`0``BXT@^___O@$````Q -XM_XN=)/O__VO'"HF%!/O__[@*````]^:)UXG&`[T$^___@\'_@]/_B=H)RG7: -XMB?")^H/`_\=%P`````"#TO_'1<0`````BXT<^___B47`B57$B0PDZ"7Q___I -XM=/?__XN%+/O__XU=CHN-,/O__\=$)`ARU`0(QT0D!!@```")A5S___^+1>R) -XMC6#___^)'"2)1"0,Z/;O__^)'"3H+O'__\=$)`ARU`0(QT0D!!@```")'"2) -XMA6S___^+1=B)A7#___^+1=R)A73___^+1=2)A7C___^+1>B)1"0,Z*[O__^) -XM'"3HYO#__\=$)`ARU`0(QT0D!!@```")'"2)A7S___^+1>")1"0,Z('O__^) -XM'"3HN?#__XM5Q,=$)`AVU`0(QT0D!!@```")'"2)5"00B46`BT7`B40D#.A0 -XM[___B1PDZ(CP__^)182+1=")18CI[_G__XM'0(E$)`B+1P2+0!C'!"1>U`0( -XMB40D!.@M[___Z=/[____)(5$U00(?!&#^@"0C;0F``````^'9/[__S'`,=+I -XMK/[__\=%Z`````#'1>P`````QT7@`````,=%T`````#'1=0`````QT78```` -XM`,=%P`````#'1<0`````QT7D`````(,]&.P$"`''1=P`````&<#WT"$%%.P$ -XM".E4_?__QT0D!#_4!`C'!"0!````Z$7O__^+A1S[__^)P8/!`F;'`#`ZQD`" -XM`.EP_/__QT0D!%+4!`C'!"0!````Z!CO__]FQP$P`.FA_/__C78`C;PG```` -XM`%6)Y5=64X/L'(,]%.L$"`&)1>R)3>@9P"7`EP0(B40D"(E,)`2)%"3H!^W_ -XM_X7`B<CJ!`B+ -XM0@B#Z`&%P(E""`^(;P$``(L"Q@`*@\`!B0*+0QB)!"3H*Q```,<$)*#4!`CH -XMD^K__XM%\(D\)(E$)`3H-.S__XM-Z(G"B<:)V.BR\___H1SK!`B%P`^%1?__ -XM_X7V#X0]____B5PD!,=$)`@$````B3PDZ#WK__^)/"3HE>O__X7`B<,/A2G_ -XM___HENS__XL`A<`/A?T```"#Q!Q;7E]=PV:#^`1T"F:#^`O__XE$)`B+0T#'!"1&U`0(B40D!.@2[/__QP4XZP0(`0```.F__O__ -XMBT-`QP0D@]0$"(E$)`3H\.O__^FG_O__C;0F`````(-][`$/CB?___^+0QB) -XM!"3H.P\``,<$)*#4!`CHH^G__\<%/.L$"`$```#I`?___Z$$[`0(A<`/A5;^ -XM___V1>@(QT7P``$```^%4O[__^E`_O__H>CJ!`C'!"0*````B40D!.C\Z?__ -XMZ:W^__^A#.L$"(7`#X0F_O__Z6#^__^)5"0$QP0D"@```.A5[/__D.F%_O__ -XMQT0D!*+4!`C'!"0!````Z'OL___'1"0$>M0$",<$)`$```#H9^S__XUV`(U, -XM)`2#Y/#_575E-1@>PH!@``BQF+202-A>#]__^)1>C'1"0$*]<$",<$ -XM)`````")C=SY___H1>S__\<$)`$```#H*>S__X7`#X24````QP5\Z`0(4``` -XM`,<$)*O4!`CH^^C__X7`=`F`.``/A=@'``"-1>")1"0(QT0D!&AT"$#'!"0! -XM````Z)/I__^#P`%T$0^W1>)FA -XM``#KS\<%).L$"`$```#'!"2KU`0(Z&?H__^%P'2PB00DZ!OH__^C?.@$".NA -XM_R2%:-4$"(L5#.L$"(L]].H$"(72#X1X!0``QP0DL]0$".@MZ/__AO__X7`#X2D`0``QP0DR]0$".@)Z/__B40D!(V%X/G__XD$).A7 -XMZO__@^@!#X0B!@``H1CL!`B%P'1&QP44[`0(`0```,=$)`30KP0(QP0D`@`` -XM`.@WZO__QT0D!-"O!`C'!"0#````Z"/J___'!"3?U`0(Z*?G__^)!"3H*P@` -XM`*$\[`0(A<`/A,8```"A0.P$"(7`=1B+%0CK!`B%TG4.BPTL[`0(ASK!`@`````Z5/\___'!1SL -XM!`@!````Z43\___'!3#K!`@!````QP4LZP0(`````.DK_/__QP4GO^___QT0D"`$```#'1"0$*]<$",<$)+/4!`CH$>?__^G.^___QP40[`0( -XM`0```,<%+.P$"`$```#IM?O__\<%..P$"`$```#IIOO__\<%&.L$"`$```#I -XME_O__\<%*.L$"`$```#'!23K!`@`````QP5`[`0(`````.ET^___QP5`[`0( -XM`0```,<%).L$"`````#'!2CK!`@`````Z5'[___'!?CK!`@`````QP4$ZP0( -XM`0```.DX^___QP4\[`0(`0```.DI^___QP7XZP0(`0```.D:^___QP44ZP0( -XM`0```.D+^___QP4(ZP0(`0```,<%'.L$"`````#I\OK__\<%Z.L$"`$```#' -XM!0#L!`@`````QP4T[`0(`````.G/^O__QP4([`0(`````,<%(.P$"`````#' -XM!>SK!`@!````Z:SZ___'!03L!`@!````Z9WZ___'!33K!`@!````Z8[Z___' -XM!33L!`@!````QP4`[`0(`````,<%Z.L$"`````#I:_K__XGQNH#H!`BX`0`` -XM`.@$]___Z2K\__^A0.P$"(7`#X2M````QP7\Z@0(X+X$".GT^___H2SK!`B% -XMP'5&BPTPZP0(AS' -XM1"0$#.P$"(D$).C.Y/__BQ4,[`0(B=#!^!_!Z!CZ___'!0#K!`B@EP0(Z=GZ__^#S@'I:OK__\<%_.H$"&"Z -XM!`CIV?K__XU-Z(E,)`3'!"30U`0(Z&GE___'!"33U`0(H_#K!`B-1>B)1"0$ -XMZ%'E__^-3>B)3"0$QP0DUM0$"*,H[`0(Z#GE___'!"39U`0(HT3L!`B-1>B) -XM1"0$Z"'E__^-3>B)3"0$QP0DW-0$"*,D[`0(Z`GE__^%P*/\ZP0(#X30```` -XMH?#K!`B%P`^$4?G__Z$H[`0(A<`/A$3Y__^A_.L$"(7`#X0W^?__QP48[`0( -XM`0```.DQ^?__B00DZ,[@___'!0CL!`@!````HWSH!`CI1_C__Z$T[`0(A6#[!B%P'0]H?SK!`C'1"0($+`$ -XM",=$)`0!````B00DZ/WA__^X$+`$"(E$)`BA1.P$",=$)`0!````B00DZ-_A -XM___)PZ'\ZP0(QT0D"""U!`C'1"0$`0```(D$).C`X?__N""U!`CKP9"-="8` -XM58GE4X/L%(M="(G8Z'____^)'"3'1"0$`````.@SXO__Z"[C__^)7"0$B00D -XMZ,+?__^#Q!1;7<.0C;0F`````%6)Y8/L*(M%",=$)`@!````QP0D`0```(A% -XM_XU%_XE$)`3H;=___S'`R<.0C70F`%6)Y5=64X/L+(M%"(7`#X1``0``BT4( -XM,?^)!"3HT^+__XL5O-<$"&;'1=H``,=%W`````")5>")1=3K/(UT)@`/OL*# -XMZ#")`V:#?=H`#X2N````9L=%V@$`@\8!@\,$@_X"=46#QP=P,@T7@`H/_ -XM"P^$U````(M%W,>`:.L$"`````"-!#\Y1=1W.8M5X`^V`HA%\@^V0@&(1?.- -XM!'\Q]HT3J!`A]#*'LZ@0(BXR( -XM-`0``(/Y>'03#[["B40D!,<$))#7!`CH\]___\<#_____^D-____@\0L6UY? -XM7564XG#C31`@^P0BQ2U:.L$"(72#X64````BP2U -XM8.L$"(/X_W0XB40D"*'PZP0(QT0D!`````")!"3H`][__X7`=!O'1"0((+4$ -XM",=$)`0!````B00DZ(??__^-=@"-!%N+!(5DZP0(@_C_=#6)1"0(H2CL!`C' -XM1"0$`````(D$).B\W?__A7<.0C70F`*$D[`0(QT0D"""U!`C'1"0$`0```(D$).@7W___Z4K___^- -XMM"8`````C;PG``````^WP(G"58'B`/```(GE@^P(@?H`0```#X3&````?E&! -XM^@"@```/A'T```"!^@#```!T8H'Z`&````^$?````#'2J$ET7_;$"`^%X@`` -XM`/;$!`^$MP```+@(````C70F`.B[_O__N@$```#K.(UT)@"!^@`0``!T6('Z -XM`"```(GV=;VX!@```.B4_O__N@$```#)B=##N`(```#H@?[__[H!````R8G0 -XMP[@!````Z&[^__^Z`0```,F)T,.X!0```.A;_O__N@$```#)B=##B?:X`P`` -XM`.A&_O__N@$```#)B=##J`)T./;$`G01N`D```#H*O[__[H!````ZZ>X"@`` -XM`.@9_O__N@$```#KEK@$````Z`C^__^Z`0```.N%,<#H^OW__[H!````Z73_ -XM__^X!P```.CF_?__N@$```"0Z5____^-="8`C;PG`````%6)Y5.#[&2)1:BA -XMD.@$"(7`#XC9````H43K!`B%P`^$L@```*$<[`0(A\`.=!_ -XM'8L-D.@$"+NVU@0(A-M"8`````C8(`\>\`.<%]V:&0Z`0( -XMNZ+6!`B%P`^%=/___[NLU@0(Z6K____'!"0`````Z-+:__^C1.L$".DX____ -XMC70F`,<$)#D```#H:-W__X`X9`^4P`^VP*.0Z`0(Z0C___^0BQ4@[`0(58GE -XMBT4(A=)U"HL-[.L$"(7)=`F)10A=Z;T7``"+%0CL!`B%TG0)B44(7>E:$@`` -XMB44(7>EA%0``D%6)Y8/L"*'@Z@0(BTT(A"*+`H@(@\`!B0+),<##H>CJ!`B)#"2)1"0$Z)':__\QP,G#.T(8?`:`^0J0 -XM==.)5"0$B0PDZ/;<___KSE6)Y8/L"(L-$.P$"(7)=!`E`/```#T`0```='3) -XM,<##B<*!X@#P``"!^@"@```/A-\````/AXP```"!^@`0```/A%,!``"!^@!` -XM``"-="8`=#ZH273&H>#J!`B%P`^%AP$``(L5Z.H$"(M""(/H`87`B4((#XAX -XM`@``BP+&`"J#P`&)`K@!````R<.0C70F`(L5X.H$"(72#X6J````BQ7HZ@0( -XMBT((@^@!A<")0@@/B!4!``"+`L8`+X/``8D"N`$```#)PX'Z`,````^$D@`` -XM`('Z`.````^%=/___Z'@Z@0(A<`/A9CJ!`B+0@B#Z`&%P(E""`^( -XM8`$``(L"Q@`E@\`!B0*X`0```,G#H>#J!`B%P`^%?@$``(L5Z.H$"(M""(/H -XM`87`B4((#XC/````BP+&`$"#P`&)`K@!````R<.AZ.H$",<$)"\```")1"0$ -XMZ!?9__^X`0```,G#H>#J!`B%P`^%90$``(L5Z.H$"(M""(/H`87`B4((#XBZ -XM````BP+&`#V#P`&)`K@!````R<.AX.H$"(7`#X44`0``BQ7HZ@0(BT((@^@! -XMA<")0@AX;8L"Q@!\@\`!B0*X`0```,G#.T(8#XWB_O__B50D!,<$)"\```#H -XM$=O__[@!````R<.AZ.H$",<$)"H```")1"0$Z'78__^X`0```,G#.T(8#XTH -XM____B50D!,<$)$````#HU=K__[@!````R<,[0AA]CHE4)`3'!"1\````Z+G: -XM__^X`0```,G#.T(8#XT]____B50D!,<$)#T```#HF=K__[@!````R<,[0A@/ -XMC9?^__^)5"0$QP0D)0```.AYVO__N`$```#)PZ'HZ@0(QP0D)0```(E$)`3H -XMW=?__[@!````R<.AZ.H$",<$)$````")1"0$Z,'7__^X`0```,G#H>CJ!`C' -XM!"1\````B40D!.BEU___N`$```#)PZ'HZ@0(QP0D/0```(E$)`3HB=?__[@! -XM````R<,[0A@/C7_]__^)5"0$QP0D*@```.CIV?__N`$```#)PXVT)@````"- -XMO"<`````58GE@^PXB5WTB<.)??R)SXEU^(MP/*$\[`0(QT7L`````(7`#X7> -XM````H?3K!`B%P'5RH1CL!`B%P'1)#[=&".B;^?__B<>+0T")!"3H[OO__XM- -XM[(T<"*$8[`0(AQ=PXM#0(D$).BP^___BU7LC1P0Z\F%_W3%,<#H'?;__^N\H0SL!`B#Z`&) -XMPL'Z'XE%X(E5Y(M&.(M6/`%%X*$,[`0($57DBTWDB<+!^A^)5"0,BU7@B4PD -XM!(E$)`B)%"3HF!@``(E\)`3'!"04UP0(B40D"(E4)`SH--C__P%%[.DK____ -XMBT8$B50D!,<$),S6!`B)1"0(Z!78__^)1>SI`____XGVC;PG`````%6)Y593 -XM@^P0BW4(BQZ%VW4FZUR+%>CJ!`B+0@B#Z`&%P(E""'A0BP+&``J#P`&)`HM; -XM"(7;=#B#>PP!=/.+3A2)V(M6).B&_O__H>#J!`B%P'3`H>CJ!`C'!"0*```` -XMB40D!.B\U?__BUL(A=MUR(/$$%M>7<.)5"0$QP0D"@```.@>V/__ZZB0C;0F -XM`````%6)Y5=64X/L/(M%"(,]%.P$"`$9TH/B!X/"`8E%T(E5Z(M`##L%C.@$ -XM"`^/O@(``(M=T(L#QT7<`````(7`=!^+%4#K!`B#>`P!=`R+3=R)!(J#P0&) -XM3=R+0`B%P'7GH3SL!`B+7="%P(M3$'0(BT,D@\`!`<*+#?3K!`B%R70+BUW0 -XMBT,4@\`!`<*#/2SL!`@!BT7H@]K_`U7H]]B)1=0APHE5\(M%\(L5?.@$"`'` -XM.=`/CR0"``")T,'Z'_=]\(M5W(E%S(G0P?H?]WW,@_H!BU70@]C_B47@BP*% -XMP`^$N0$``&:#>#(`#X6N`0``BW7@A?8/CG(!``#'1=@`````QT7D`````(L= -XM,.P$"(7;=0:+5>2)5=B+3P/C:D```"+%>#J -XM!`B%TG5.BPWHZ@0(@ST4[`0(`8M!"!G2@^+I@\(@@^@!A<")00AX48L!B=Z( -XM$(/``8D!BU7HC1P6(UW4.?M^IHM-S#E-['1=@T7L`0-]\.E*____@ST4[`0( -XM`8G>BQ7HZ@0(&<"#X.F#P"")5"0$B00DZ(S3___KNCM!&'P%@/H*=:6)3"0$ -XMB=Z)%"3H\M7__^N@BU7@`578BTW<.4W8#XPR____H>#J!`B%P'4UBQ7HZ@0( -XMBT((@^@!A<")0@AX.8L"Q@`*@\`!B0*#1>0!BUW@.5WD#X6<_O__@\0\6UY? -XM7<.AZ.H$",<$)`H```")1"0$Z`O3___KT8E4)`3'!"0*````Z'G5___KOXL] -XM0.P$"(7_=0B%R0^$0/[__XM-T(L=#.P$"(M1!,<$)-+6!`B#Z@&-#!HQTHG( -XM]_.)1"0$Z)W4___I$_[__XM5T(E5"(/$/%M>7UWI@OS__\'@`HE$)`2A0.L$ -XM"(D$).ART___A<")PG06BTW0BT$,B15`ZP0(HXSH!`CI$OW__\<$)`````#H -XM>M3__XM=T(E=".NPC;0F`````(V\)P````!5B>575E.#[`R+=0B+'H7;#X2^ -XM````,?_K'(VV`````,<$)-W6!`B#QP+H!=3__XM;"(7;='2#>PP!=/.+0T") -XM!"3H3=7__X-["`$9TO?2@^("C00'`=`[!7SH!`AR,:'@Z@0(A+0PB%P`^%=O___X7_=":AX.H$"(7`=3Z+%>CJ!`B+0@B#Z`&%P(E" -XM"'A?BP+&``J#P`&)`H/$#%M>7UW#H>CJ!`@Q_\<$)`H```")1"0$Z&'1___K -XMFZ'HZ@0(QP0D"@```(E$)`3H2M'__X/$#%M>7UW#B50D!#'_QP0D"@```.BP -XMT___Z6?___^)5"0$QP0D"@```.B;T___ZYF0C70F`%6)Y5=64X'L7`@``(M% -XM"(LXA?\/A#,#``!F@W\R``^%*`,``,>%Q/?__P````#'A%T/?__P$```"# -XMZ`$/A+\%``")'"3H-=/__\>%R/?__P$```"-M"8`````BP:)A+\__\/ML2)5"0(B40D -XM!,<$)`?7!`CH.K^__\/C)````#'A8KZ0SZ -XM__^)5"0$QP0D"@```.B9S/__Z;3[___HS\O__X,X%@^$8O___XV=V_O__XE< -XM)`3'!"1*U`0(Z`#,___IY_G__X.]T/?__P,/CL'Y___KJI"0D)"0D)"058GE -XM@^P8H?#J!`C'1"0(/@```,=$)`0!````QP0DP-<$"(E$)`SH"A?]UIXN%8/___X'$K``` -XM`%M>7UW#C;8`````BX5@____C028B85@____Z]*)%"3H"\G__^NZD(UT)@"- -XMA7#___^#Q@&#A6#___\$@^\!QT0D"(````#'1"0$`````(D$).A)RO__ZYB+ -XMA6#___^-!+B)A6#____KBXGV58GE5U93@>RL````C85P____QT0D"(````#' -XM1"0$`````(D$).@*RO__QX5@____`````(M5"(V%'>+`H@(@\`!B0*#Q@$Y]W0HH>#J -XM!`B%P'3-H>CJ!`B+50B)1"0$#[8$%H/&`8D$).B4Q___.?=UV(M=\#'`A=MT -XM*('[_P````^'@0$``*'LZ@0(BT28-(G"@>(```#@#X18`0``B=#!Z!X!?0@! -XMA6#____I`?___SM"&`^VV7P)@/L*#X5X____B50D!(D<).BTR?__Z7#___^+ -XM%>#J!`B%T@^%F@```(L5Z.H$"(M""(/H`87`B4((#X@=`0``BP+&`#^#P`&) -XM`@%]"(.%8/___P'IH?[__XL=X.H$"(7;#X6]````BQ7HZ@0(BT((@^@!A<") -XM0@@/B/T```"+`L8`/X/``8D"C95P____@T4(`8.%8/___P''1"0(@````,=$ -XM)`0`````B10DZ$G(___I1/[__XD<).C,QO__Z9+^__^AZ.H$",<$)#\```") -XM1"0$Z'+&___I;?___XL-X.H$"(7)#X6N````BQ7HZ@0(BT((@^@!A<")0@@/ -XMB+$```"+`L8`/X/``8D"@X5@____`8N%8/___X'$K````%M>7UW#H>CJ!`C' -XM!"0_````B40D!.@1QO__Z4K___\E```$`(/X`1G`@\@!Z9O^__^)'"3H,L;_ -XM_^E[_O__.T(8#XW:_O__B50D!,<$)#\```#H5,C__^G/_O__.T(8#XWZ_O__ -XMB50D!,<$)#\```#H-LC__^GO_O__H>CJ!`C'!"0_````B40D!.B%8/___P````"+ -XM50B-A7#___^)1"0,C47PQT0D"`8```")!"2)5"0$Z+S$__^%P(GR`0`` -XM@_[^#X10`0``@_[_B?8/A.P````QVX7V?S2-="8`ZU>+10B+%>CJ!`@/M@P# -XMBT((@^@!A<")0@@/B)0```"+`H@(@\`!B0*#PP$YWG0IBSW@Z@0(A?]TR*'H -XMZ@0(BU4(B40D!`^V!!.#PP&)!"3HG\3__SG>==>+7?`!=0B!^_\```!W<*'L -XMZ@0(BT28-*D```0`#X0Y____,<"%VW0H@?O_````#X?J````H>SJ!`B+1)@T -XMB<*!X@```.`/A,$```")T,'H'@&%8/___^D`____.T(8#[;Y?`J)^#P*#X5: -XM____B50D!(D\).BBQO__Z5+___^)'"3H5<3__Y#KCHV%XM%"(L5Z.H$"`^V"(M""(/H`87` -XMB4((>'N+`H@(@\`!B0*#10@!@X5@____`>EY_O__BU4(QP0D2M0$"(E4)`3H -XMAL7__P&%8/___XN%8/___X'$K````%M>7UW#)0``!`"#^`$9P(/(`>DR____ -XMB1PDZ+7#___I$O___Z'HZ@0(BU4(B40D!`^V`HD$).A9P___ZXX[0A@/MME\ -XM"8#["@^%=/___XE4)`2)'"3HNL7__^EL____D%6)Y5=64X'LK````(V%%8/___P````"+50B-A7#___^) -XM1"0,C47PQT0D"`8```")!"2)5"0$Z'S"__^%P(F%7/___P^$;@,``(N%7/__ -XM_X/``H/X`0^&`0$``(M=\('[_P````^'D`,``*'LZ@0(BT28-*D```0`#X0$ -XM`P``@_LB#X3[`@``@_M<#X3R`@``B[U<____A?]^9C';ZS*+10B+%>CJ!`@/ -XMM@P#BT((@^@!A<")0@@/B!L#``"+`H@(@\`!B0*#PP$[G5S___]T+8LUX.H$ -XM"(7V=,2AZ.H$"(M5"(E$)`0/M@03@\,!B00DZ"+"__\[G5S___]UTXM=\#'` -XMA=MT*('[_P````^'N0,``*'LZ@0(BT28-(G"@>(```#@#X2*`P``B=#!Z!X! -XMA6#___^#O5S____^#X1V`@``@[U<_____P^$N@(``(N57/___P%5".F[_O__ -XM@[U<_____P^%7P(``+\!````,?;IV````(L5Z.H$"(M""(/H`87`B4((#XB7 -XM`0``BP+&`%R#P`&)`J'@Z@0(A<`/A>````"+%>CJ!`B)V,#H!@^VP(U(,(M" -XM"(/H`87`B4((#X@^`0``BP*("(/``8D"H>#J!`B%P`^%V````(L5Z.H$"(G8 -XMP.@#@^`'C4@PBT((@^@!A<")0@@/B$8!``"+`H@(@\`!B0*AX.H$"(7`#X70 -XM````BQ7HZ@0(B=B#X`>-2#"+0@B#Z`&%P(E""`^(,0$``(L"B`B#P`&)`H/& -XM`8.%8/___P0Y_@^-Y_[__Z'@Z@0(BU4(A<`/MAP6#X04____H>CJ!`C'!"1< -XM````B40D!.BAP/__H>#J!`B%P`^$(/___Z'HZ@0(B40D!(G8P.@&#[;`@\`P -XMB00DZ'C`__^AX.H$"(7`#X0O____C;0F`````*'HZ@0(B40D!(G8P.@#@^`' -XM@\`PB00DZ$C`__^AX.H$"(7`#X0W____C;0F`````*'HZ@0(B40D!(G8@^`' -XM@\`PB00DZ!O`___I.O___XGV.T(8?`F`^0H/A;3^__^)5"0$B0PDZ'K"___I -XMK/[__Y`[0A@/C6#^__^)5"0$QP0D7````.A;PO__Z57^__^)]CM"&'P)@/D* -XM#X6L_O__B50D!(D,).@ZPO__Z:3^__^0.T(8?`F`^0H/A<'^__^)5"0$B0PD -XMZ!K"___IN?[__XL-[.L$"(7)=!"%VW@,@?O_````#XZ3````B[U<____A?\/ -XMC\3]__^#O5S____^#X6*_?__BX5@____@<2L````6UY?7<.+10B)!"3HA,+_ -XM_XG'Z\L[0A@/MO%\"HGP/`H/A=/\__^)5"0$B30DZ*+!___IR_S__XD<).A5 -XMO___D.EK_/__C85P____QT0D"(````#'1"0$`````(D$).BAP/__@T4(`>GH -XM^___#[[#B40D!,<$)/_7!`CH%<#__X7`B<,/A%#___^+%>#J!`B%T@^%E0`` -XM`(L5Z.H$"(M""(/H`87`B4((#XBR````BP+&`%R#P`&)`J'@Z@0(ACJ!`C'!"1<````B40D!.@3OO__Z7+___\[41A\ -XM!SP*C78`=8F)3"0$B1PDZ';`___KA#M"&`^-1?___XE4)`3'!"1<````Z%O` -XM___I.O___Y"058GE5U:#[#"+50R+10B+=1"+?12)5=R+3=R)1=C'1=`````` -XMB?#'1=0`````B?J%R<=%Y``````/B*0```"%_P^(N@```(G7B<:+5=B)P8M% -XMW(7_B57PB47L=10YQG9!B="+5>SW]HG!,<#K$XUV`#M]['9/,R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!R -XMG+D!````,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KW -XMV(/2`/?:]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`) -XMQXM%\-/F#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)`!, -XM4U]#3TQ724142%,`;6%L;&]C`"5S.B`EC!`@^HP0(D:D$""VG -XM!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$""VG!`@MIP0(+:<$ -XM""VG!`@MIP0(+:<$"%^I!`ANJ00(S:D$""VG!`@MIP0(M*D$"!>K!`@/JP0( -XM`*L$""VG!`@MIP0(]:H$""VG!`@MIP0(+:<$".JJ!`@MIP0(VZH$",*J!`BS -XMJ@0(>*P$""VG!`AIK`0(+:<$""VG!`A:K`0(+:<$""VG!`@MIP0(+:<$""VG -XM!`@MIP0(7*D$"#>L!`@4K`0(^ZL$""VG!`CLJP0(!J<$"-VK!`C.JP0(+:<$ -XM"+6K!`B2JP0(;ZL$"&"K!`A1JP0(.*L$")"J!`B!J@0("4P -XM.'@@`"4S9"P@)3-D(``E*G,E*FID(``E-7,@``IL&1X8GAE9V5D86)A9V%C860`3%-#3TQ/4E,@I$$"(J1 -XM!`B:D00(JI$$"+J1!`C*D00(VI$$".J1!`CZD00("I($"!J2!`@JD@0(.I($ -XM"$J2!`A:D@0(:I($"'J2!`B*D@0(FI($"*J2!`BZD@0(RI($"-J2!`CJD@0( -XM^I($"`J3!`@:DP0(*I,$"#J3!`A*DP0(6I,$"&J3!`AZDP0(```````````` -XM)$9R965"4T0Z('-R8R]L:6(O8W-U+V-O;6UO;B]C'`@)`!'0T,Z("A'3E4I(#0N -XM,BXQ(#(P,#make.uu << 'ed78d4936f2c86b3dc64cf5324ab8f8b' -Xbegin 644 make -XM?T5,1@(!`0````````````(`/@`!````$"A```````!``````````'BY`0`` -XM`````````$``.``*`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````H`(```````"@`@````````@``````````P````0```#@`@`````` -XM`.`"0```````X`)````````3`````````!,``````````0`````````!```` -XM!0````````````````!``````````$```````-Z``0``````WH`!```````` -XM`!````````$````$````X(`!``````#@@%$``````."`40``````\"@````` -XM``#P*```````````$````````0````8`````L`$```````"P80```````+!A -XM``````#X!````````/@$```````````0```````!````!@```/BT`0`````` -XM^+1Q``````#XM'$``````)@#````````F`,``````````!````````$````& -XM````D+@!``````"0N($``````)"X@0`````````````````8)0`````````` -XM$````````@````8```"PLP$``````+"S80``````L+-A``````!``0`````` -XM`$`!````````"``````````$````!````/0"````````]`)```````#T`D`` -XM`````!@`````````&``````````$`````````%'E=&0&```````````````` -XM``````````````````````````````````````````@````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````"]U``` -XM```````#````$@```$\```!D`````````````````````````%0````[```` -XM9@```'H````Y`````````!X```!7````5@```'<```!P````10````H````_ -XM````*0````````!B`````````%$```!0`````````'8```!?````90```#,` -XM``!T````<@```&D````P````;P````````!:````2P```!\`````````$P`` -XM``````!]````0`````````V```` -XM;@```"P`````````'0````````!5`````````$H```!>````70````````![ -XM````<0``````````````,0````````!)````-P``````````````0````%(` -XM```T````00`````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````0```````````````P````:``````````@````9 -XM``````````````````````````````````````````D````4`````````"@` -XM```-`````````"<````@`````````"4``````````````!8````J````(@`` -XM```````%`````0````(````D```````````````C````,@`````````````` -XM#@``````````````/@```"X```````````````````!&`````````$0````U -XM````!P`````````M````%P```#@`````````/````"\`````````3``````` -XM```1`````````"$``````````````$(`````````/0```"L````/````$``` -XM```````;``````````L`````````30````````!@````2``````````Z```` -XM````````````````;``````````5````:````"8````<````!@````````!# -XM````8P```%,```!'```````````````````````````````````````````` -XM```.````$@```)`A0```````A@`````````6````$@```*`A0``````````` -XM```````D````$@```+`A0```````U@`````````M````$@```,`A0``````` -XM!P````````!Z`P``$@```-`A0```````O@````````"^`@``$@```.`A0``` -XM````AP`````````U````$@```/`A0``````````````````\````$@`````B -XM0```````=0````````!/````$@```!`B0```````)`````````!8````$@`` -XM`"`B0```````8P$```````!A````$0`6`)"X@0``````0`````````!S```` -XM$0#Q_["S80````````````````!\````$@```#`B0```````"`````````"S -XM`P``$``5`)"X<0````````````````"$````$@```$`B0```````?P`````` -XM``"+````$@```%`B0```````0P````````"2````$@```&`B0``````````` -XM``````"9````$@```'`B0```````0@$```````"O````$@```(`B0``````` -XM-P````````"[````$@```)`B0```````Q`$```````#"````$@```*`B0``` -XM````\P````````!)`P``$@```+`B0```````^P````````#)````$@```,`B -XM0`````````````````#.````$@```-`B0```````40````````#3````$@`` -XM`.`B0```````$P$```````#:````$0`6`-"X@0``````"`````````#A```` -XM$@```/`B0`````````````````#H````$@`````C0```````4@````````#P -XM````$@```!`C0```````R@````````#W````$@```"`C0```````&``````` -XM``#]````$@```#`C0``````````````````%`0``$@```$`C0```````&P`` -XM```````0`0``$@```%`C0```````"P`````````A`0``$@```&`C0``````` -XM'P`````````O`0``$@```'`C0```````.0(````````V`0``$@```(`C0``` -XM```````````````[`0``$@```)`C0```````PP$```````!!`0``$@```*`C -XM0```````(0````````!)`0``$@```+`C0```````4`````````!6`0``$@`` -XM`,`C0```````AP$```````!=`0``$@```-`C0```````Q1,```````#<`@`` -XM$@```.`C0`````````````````"G`P``$``1`/BT<0````````````````!D -XM`0``$0`6``#<@0``````"`````````!Y`P``$@```/`C0```````I0`````` -XM``!L`0``$0`6`-BX@0``````"`````````!Z`0``$@`````D0``````````` -XM``````"``0``$@```!`D0```````!0````````"&`0``$0`6`."X@0`````` -XM!`````````"-`0``$@```"`D0```````)@````````"4`0``$@```#`D0``` -XM````%`````````"9`0``$0`-``"P80``````"`````````"D`0``$@```$`D -XM0`````````````````"J`0``$@```%`D0```````;0````````"Q`0``$@`` -XM`&`D0```````=0`````````!`@``$@```'`D0`````````````````"X`0`` -XM$@```(`D0```````J0$```````#!`0``$@```)`D0```````,P````````#) -XM`0``$@```*`D0``````````````````F````$@```+`D0```````_0$````` -XM``#0`0``$@```,`D0```````,@````````#:`0``$@```-`D0```````0P8` -XM``````#B`0``$@```.`D0```````*P````````#I`0``$0`6`/"X@0`````` -XMR`$```````#N`0``$@```/`D0`````````````````#S`0``$@`````E0``` -XM````&@````````#Y`0``$@```!`E0```````(P```````````@``$@```"`E -XM0```````#`$````````&`@``$@```#`E0```````KP<````````.`@``$@`` -XM`$`E0```````;P`````````F`@``$@```%`E0```````W``````````9`@`` -XM$0`6`+BZ@0``````!`````````#$`P``$`#Q_Y"X@0`````````````````L -XM`@``$@```&`E0```````"@`````````S`@``$@```'`E0```````;0`````` -XM```]`@``$@```(`E0```````'P````````!$`@``$@```)`E0```````W``` -XM``````!,`@``$@```*`E0```````"P$```````#0`P``$0`6`!#<@0`````` -XM``$```````!3`@``$@```+`E0```````)1$```````#6`@``$@```,`E0``` -XM````-`````````!;`@``$@```-`E0```````.0````````!C`@``$@```.`E -XM0```````.`````````!R`@``$@```/`E0```````3@````````!_`@``$@`` -XM```F0```````5P````````#&`@``$@```!`F0```````2P````````".`@`` -XM$@```"`F0```````'0````````"5`@``$@```#`F0```````=`````````"< -XM`@``$@```$`F0```````"0````````"C`@``$@```%`F0```````-``````` -XM``"K`@``$0`6`+RZ@0``````!`````````#C`P``$@`+`-"`00`````````` -XM``````"T`@``$@```&`F0```````*0$```````"]`@``$@```'`F0``````` -XM0P$```````#%`@``$@```(`F0```````40````````#+`@``$@```)`F0``` -XM````Y`$```````#2`@``$@```*`F0```````=@````````"E`0``$@```+`F -XM0`````````````````#;`@``$@```,`F0```````R0````````"]`P``$`#Q -XM_Y"X@0````````````````#B`@``$0#Q__BT<0````````````````"X`P`` -XM$`#Q_ZC=@0`````````````````;`P``$@```-`F0```````%@````````#X -XM`@``$0`6`,"Z@0``````"``````````&`P``$@```.`F0```````#``````` -XM```+`P``$0`6`,BZ@0``````"``````````3`P``$@```/`F0```````10`` -XM```````:`P``$@`````G0``````````````````@`P``$@```!`G0``````` -XM-``````````G`P``$@```"`G0```````'@`````````G`@``$@```#`G0``` -XM```````````````N`P``$@```$`G0```````-P`````````Y`P``$@```%`G -XM0```````>`````````!!`P``$@```&`G0```````(P````````!(`P``$@`` -XM`'`G0```````F`````````!.`P``$@```(`G0```````&@````````":`P`` -XM$``-``"P80````````````````!5`P``$@```)`G0```````C@````````!> -XM`P``(`````````````````````````!R`P``$@```+`G0``````````````` -XM``!-`@``$@```,`G0`````````````````!X`P``$@```-`G0```````6@`` -XM``````"!`P``$@```.`G0```````*``````````\`P``$@```/`G0``````` -XM\0````````".`P``$@`````H0```````````````````;&EB8RYS;RXV-2XP -XM`'!U=&-H87(`8VQO8VM?9V5T=&EM90!U;G-E=&5N=@!W86ET<&ED`'5T:6UE -XM&5C=G``8VQO``````````````#@M7$```````<````?``````````````#H -XMM7$```````<````@``````````````#PM7$```````<````A```````````` -XM``#XM7$```````<````B````````````````MG$```````<````C```````` -XM```````(MG$```````<````D```````````````0MG$```````<````E```` -XM```````````8MG$```````<````F```````````````@MG$```````<````G -XM```````````````HMG$```````<````H```````````````PMG$```````<` -XM```I```````````````XMG$```````<````J``````````````!`MG$````` -XM``<````M``````````````!(MG$```````<````O``````````````!0MG$` -XM``````<````P``````````````!8MG$```````<````R``````````````!@ -XMMG$```````<````S``````````````!HMG$```````<````U```````````` -XM``!PMG$```````<````V``````````````!XMG$```````<````W```````` -XM``````"`MG$```````<````X``````````````"(MG$```````<````Y```` -XM``````````"0MG$```````<````Z``````````````"8MG$```````<````[ -XM``````````````"@MG$```````<````\``````````````"HMG$```````<` -XM```]``````````````"PMG$```````<````^``````````````"XMG$````` -XM``<````_``````````````#`MG$```````<```!!``````````````#(MG$` -XM``````<```!"``````````````#0MG$```````<```!#``````````````#8 -XMMG$```````<```!$``````````````#@MG$```````<```!%```````````` -XM``#HMG$```````<```!&``````````````#PMG$```````<```!'```````` -XM``````#XMG$```````<```!*````````````````MW$```````<```!+```` -XM```````````(MW$```````<```!,```````````````0MW$```````<```!- -XM```````````````8MW$```````<```!.```````````````@MW$```````<` -XM``!0```````````````HMW$```````<```!1```````````````PMW$````` -XM``<```!2```````````````XMW$```````<```!3``````````````!`MW$` -XM``````<```!4``````````````!(MW$```````<```!5``````````````!0 -XMMW$```````<```!6``````````````!8MW$```````<```!7```````````` -XM``!@MW$```````<```!8``````````````!HMW$```````<```!9```````` -XM``````!PMW$```````<```!:``````````````!XMW$```````<```!=```` -XM``````````"`MW$```````<```!>``````````````"(MW$```````<```!? -XM``````````````"0MW$```````<```!@``````````````"8MW$```````<` -XM``!A``````````````"@MW$```````<```!B``````````````"HMW$````` -XM``<```!C``````````````"PMW$```````<```!G``````````````"XMW$` -XM``````<```!I``````````````#`MW$```````<```!K``````````````#( -XMMW$```````<```!L``````````````#0MW$```````<```!M```````````` -XM``#8MW$```````<```!N``````````````#@MW$```````<```!O```````` -XM``````#HMW$```````<```!P``````````````#PMW$```````<```!Q```` -XM``````````#XMW$```````<```!R````````````````N'$```````<```!S -XM```````````````(N'$```````<```!T```````````````0N'$```````<` -XM``!V```````````````8N'$```````<```!W```````````````@N'$````` -XM``<```!X```````````````HN'$```````<```!Y```````````````PN'$` -XM``````<```!Z```````````````XN'$```````<```![``````````````!` -XMN'$```````<```!\``````````````!(N'$```````<```!]```````````` -XM`````````````$B#[`CHYP<``$B#Q`C#``#_-7J3,0#_)7R3,0"0D)"0_R5Z -XMDS$`:`````#IX/____\E#^____ -XM)?*2,0!H$0```.G0_O___R7JDC$`:!(```#IP/[___\EXI(Q`&@3````Z;#^ -XM____)=J2,0!H%````.F@_O___R72DC$`:!4```#ID/[___\ERI(Q`&@6```` -XMZ8#^____)<*2,0!H%P```.EP_O___R6ZDC$`:!@```#I8/[___\ELI(Q`&@9 -XM````Z5#^____):J2,0!H&@```.E`_O___R6BDC$`:!L```#I,/[___\EFI(Q -XM`&@<````Z2#^____)9*2,0!H'0```.D0_O___R6*DC$`:!X```#I`/[___\E -XM@I(Q`&@?````Z?#]____)7J2,0!H(````.G@_?___R5RDC$`:"$```#IT/W_ -XM__\E:I(Q`&@B````Z<#]____)6*2,0!H(P```.FP_?___R5:DC$`:"0```#I -XMH/W___\E4I(Q`&@E````Z9#]____)4J2,0!H)@```.F`_?___R5"DC$`:"<` -XM``#IJ1,0!H,@```.G` -XM_/___R7BD3$`:#,```#IL/S___\EVI$Q`&@T````Z:#\____)=*1,0!H-0`` -XM`.F0_/___R7*D3$`:#8```#I@/S___\EPI$Q`&@W````Z7#\____);J1,0!H -XM.````.E@_/___R6RD3$`:#D```#I4/S___\EJI$Q`&@Z````Z4#\____):*1 -XM,0!H.P```.DP_/___R6:D3$`:#P```#I(/S___\EDI$Q`&@]````Z1#\____ -XM)8J1,0!H/@```.D`_/___R6"D3$`:#\```#I\/O___\E>I$Q`&A`````Z>#[ -XM____)7*1,0!H00```.G0^____R5JD3$`:$(```#IP/O___\E8I$Q`&A#```` -XMZ;#[____)5J1,0!H1````.F@^____R52D3$`:$4```#ID/O___\E2I$Q`&A& -XM````Z8#[____)4*1,0!H1P```.EP^____R4ZD3$`:$@```#I8/O___\E,I$Q -XM`&A)````Z5#[____)2J1,0!H2@```.E`^____R4BD3$`:$L```#I,/O___\E -XM&I$Q`&A,````Z2#[____)1*1,0!H30```.D0^____R4*D3$`:$X```#I`/O_ -XM__\E`I$Q`&A/````Z?#Z____)?J0,0!H4````.G@^O___R7RD#$`:%$```#I -XMT/K___\EZI`Q`&A2````Z<#Z____)>*0,0!H4P```.FP^O___R7:D#$`:%0` -XM``#IH/K___\ETI`Q`&A5````Z9#Z____)````Z0#Z____)8*0,0!H7P```.GP -XM^?___R5ZD#$`:&````#IX/G___\E534$B+!5./,0!(A$B)59!)B?=(B?M(B9UH____2(U]F+X``0``Z!`3``!(BP-(B470,%(B=](BW60Z'4B`0"%P`^$+`0``+D!````3(MUT.O23(E]@(7)="Z) -XMC7#___],B>=,B?9(BU60N0$```#HT"H!`$B)PTB)W^A%_/__2`'83(MUT.L, -XMB8UP____3(GP3(GC2(F=>/___TG_QDR)==!(*=A(B46(3(UEF.L5#Q]$``!, -XMBW709F9F+@\?A```````00^V!C'22#W_````38GW="\QTDB+#8Z/00#V1`@! -XM"$V)]W0<2?_&3(EUT.O##Q\`2?_'3(E]T&8/'X0``````$$/M@=(/?\```!T -XMY(3`#X11`P``/"ET/$B+#4F/00#V1`@!"'4F/"1UQDB-?=!(BW60Z'DA`0`Q -XMVX7`#X0_`P``N@$```!,BWW0Z[2$P`^$$0,``$TY_@^$/0,``(72B95T____ -XM3(GW3(G^#X3L````2(M5D+D!````Z,$I`0!)B<5,B>=(BW6(2(N5>/___^C+ -XM$```2(M%H$B+3:A(*<%(@_D!?PQ,B>?H4A```$B+1:!(C4@!2(E-H,8`*$R) -XM[^C[^O__3(GG2(G&3(GJZ(T0``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^@4$``` -XM2(M%H$B-2`%(B4V@Q@`I2(M%H,8``$B+79A(B5W(3(GOOB0```#HZ?K__TB% -XMP`^$]0```$TI]TR)[TR)]DR)^NA/^/__A<`/A=P```!(B=\Q]KH!````Z$CP -XM``"`2!H@2(M]@$B)QN@H3P$`Z=,```#HSD```(7`3(MM@`^%SP```$R)YTB+ -XM=8A(BY5X____Z-\/``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^AF#P``2(M%H$B- -XM2`%(B4V@Q@`H32GW3(GG3(G^3(GRZ*8/``!(BT6@2(M-J$@IP4B#^0%_#$R) -XMY^@M#P``2(M%H$B-2`%(B4V@Q@`I2(M%H,8``$B+?9@Q]KH!````Z)?O``"` -XM2!H@3(GO2(G&Z'A.`0!(BT682(E%H.DO`0``2(U]R$B+=8!(BU60Z)K\__\Q -XMVX7`#X10`0``2(M%F$B)1:#I"@$```]7P`\I1;!(BQ4%@R$`3(GW3(G^2(U= -XML$B)V>AC.@``2(G?Z`M/`0!(B<-(A=M,B[UX____#X3(````#Q^$``````!, -XMB>=(BW6(3(GZZ-$.``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^A8#@``2(M%H$B- -XM2`%(B4V@Q@`H2(G?Z`'Y__],B>=(B<9(B=KHDPX``$B+1:!(BTVH2"G!2(/Y -XM`7\,3(GGZ!H.``!(BT6@2(U(`4B)3:#&`"E(B=_HD_G__TB+1:#&``!(BWV8 -XM,?:Z`0```.A\[@``@$@:($R)[TB)QNA=30$`2(M%F$B)1:!(C7VPZ#Q.`0!( -XMB<-(A=L/A4#___],B6V`38GU@[UT____``^$7/S__TR)[^@T^?__3(MUT.E; -XM_/__OT""40#HX?/__S';9F9F9F9F+@\?A```````2(M]F.@'^?__B=A(@\1X -XM6T%<05U!7D%?7<.#O7#___\`=!!(B[UX____Z.'X__],BW702?_&9BX/'X0` -XM`````$R)\$B)1=`/M@A(@?G_````=!),C7`!2(L5BHM!`/9$$0$(==M(BXUH -XM____2(D!NP$```#KBF8N#Q^$``````!52(GE05=!5D%505132('LB`0``$B) -XM^$B+#1*)00!(B4W02(NXL````$R+H+@```!(QX6P^___`````+XS@E$`Z*OU -XM__\QVTB%P`^$H`(``$B-?>^_(!1`+H#````Z(7S__^%P`^%N````$$/ -XMMD0D`T@]_P````^$I@```$B+#4R)00#V1`@!!`^$E````$F#Q`-,B>?H3?7_ -XM_XG#C4/_/?X#```/AYL```!,8^-,B?],B>:Z`0```$B+C6C[___H8_/__TB# -XM^`%U>_?;2&/S2(N]:/O__[H!````Z#?R__^%P'5A0L:$)<#[__\`]@5?JT$` -XM04R)^W0/OPN"40!(B=XPP.C/[___2(G?28G?2(NU8/O__^@-]/__A<`/A+0` -XM``!)_\5)@^7^2(N]:/O__TR)[KH!````Z-KQ__^%P`^$\OW__TB+O6C[___H -XM5O/__S';#Q]``$B%VW1;,?_H9//__TACR$B-O8#[__^^#````+HV@E$`,,#H -XMJ>___TB)WTC'QL3___^Z`0```.B%\?__AP````3(N_N````$C'A5C[__\`````3(G_OB\```#H5/#__TB)PTB-E5C[ -XM__^_,+N!`$R)]NA]\O__B84\^___OS"[@0")QNC+[___28G$2(7;2(U#`4D/ -XM1,=(B85(^___387D=`Q,B[5(^___Z<(```!(BX58^___2(F%L/O__TC'A:#[ -XM__\`````3(GWOC"140#HC_'__TB%P$&\`````'1D2(U]R+X(````N@$```!( -XMB<%(B850^___Z#?Q__](@_@!=1M(C7W(OO"`40"Z"````.B.\/__A<`/A#P! -XM``!(B[U0^___Z(KQ__]F+@\?A```````13'D9F9F9BX/'X0``````+@```"` -XM387D3(NU2/O__XNU//O__[H`````#X3"````OS"[@0!,B>+H4^___TC'A5C[ -XM__\`````2(V56/O__TR)YTR)]NAF\?__3(GGB<;HO.[__TB)PTB%VW4_2(N% -XM6/O__TPI\$B#^!%R;TF-1A!(B858^___2(V56/O__TR)YTR)]N@G\?__3(GG -XMB<;H?>[__TB)PTB%VW1`@3L```"`=3!(@WL(`'4I2(U[$#'VN@H```#HAN[_ -XM_XD#2,=#"``````]````@'4(2,=#"`$```!(BU,(BP/K![@```"`,=)(BXU` -XM^___B4$H2(E1,$B+!6F#00!(.T70#X41`P``BT$H2('$N`0``%M!7$%=05Y! -XM7UW#2(V5L/O__[\PL&$`3(GVZ*;L__](B<=)B<6^"````+H(L&$`Z-'O__], -XMC;W`^___9BX/'X0``````$B-O6#[__^^`0```+H\````2(N-4/O__^B#[___ -XM2(G#2(7;=2&#/0R%00``#X0S`@``2(N]4/O__^@2[?__A<`/A2P"``!(@_L\ -XM#X)"`@``2(V%FOO__V:!.&`*#X4P`@``2(V-D/O__V:+00AFB06$A4$`2(L! -XM2(D%^_(!1`+H#````Z#/N -XM__^%P`^%K````$$/MD8#2#W_````#X2;````2(L-^X-!`/9$"`$$#X2)```` -XM28/&`TR)]^C\[___C4C_@?G^`P``#XN@$```!(BXU0 -XM^___Z!/N__](@_@!#X7[````QH0=P/O__P#WVTAC\TB+O5#[__^Z`0```.C; -XM[/__A<`/A=4```#V!0BF00!!38G^=!B_`(%1`$R)^TB)WC#`Z'7J__])B=Y) -XMB=],B>],B?;H].O__XG#2,>%N/O__P````"_"+!A`$R)]DB-E;C[___H<^K_ -XM_TB-E7#[__^+2@B)2!A(BPI(B4@0QD`<`,<`````@$C'0`@`````3(GOB=Y( -XMB<+H\.O__TG_Q$F#Y/Y(B[U0^___3(GFN@$```#H->S__X7`#X2=_?__ZRU( -XMBX50^___]D`0('0@2(N]H/O__^CR[___2(N]4/O__^B6[?__38GLZ1[\__]( -XMB[U0^___Z(+M__],B>M(B=_HM^___TB+O:#[___HN^___TB)W^BS[___Z=[[ -XM___H">O__V8/'X0``````%5(B>5!5T%6055!5%-028G_28V'*`$``$B)1=!- -XMC7=@ZQ)F9F9F9BX/'X0``````$F#Q@A-BS9-A?8/A)H```!-BV800?9$)!H@ -XM=0I!@'PD!0!TW.MT28V\)"@!``"^*````.BH[O__2(G#2(7;=,!(_\-(B=^^ -XM*0```.B0[O__28G%08!\)`4`=*5-A>UTH$DIW4B)WTB+==!,B>KHGNO__X7` -XM=8I#@+PO*`$````/A7O___],B>?H\_G__T&)1RA)B5L\N`$```!\-8M'.#G!=1%(BUZ -XM"````.@XZO__28G'1(GWZ'WM__\QVTF#_PAU%$BX(3QA!U#8G82(/$&%M!7D%?7BAZ?__2(/X`75328L&2(T,&$B)3=`Q]DB%VWX@ -XM9@\?A```````@#@O=0K&``!(_\9(BTW02/_`2#G(05]=PV9F+@\?A```````54B)Y4%7059!54%44U!)B==) -XMB?9)B?Q)C48!38ML)`A)BUPD$$B)V4PIZ4@YP7-*28L\)$@I^TDI_4F-A@$! -XM``!F9F9F9F8N#Q^$``````!(`=M(B=E,*>E(.<%R\DB)WN@JD0``28D$)$D! -XMQ4V);"0(2`'828E$)!!,B>],B?Y,B?+H2.7__TT!="0(2(/$"%M!7$%=05Y! -XM7UW##Q]``%5(B>5!5E-)B?Y(A?:[``$``$@/1=Y(B=_H$I```$F)!DF)1@A( -XM`<-)B5X06T%>7<-F9F9F9F8N#Q^$``````!(BP=(BT\(2/_`ZPL/'T``2/_) -XM2(E/"$@YP78A#[91_TB!^O\```!T%$B+-?A\00#V1#(!"'0&@'G^7'73PY"0 -XM54B)Y4%7059!54%44TB![%@$``!)B?9(BP62>D$`2(E%T$G'!@````!(QX6P -XM^___Z()1`$C'A;C[___"@E$`2(F]P/O__TC'AN"40!!@_S_=1))B0Z__*A1`.B9CP`` -XMZ08!``!%A>0/A!P!``"+O:S[___H0.G__TR-O8C[__],B?^^``$``.C,_O__ -XM3(VMT/O__^L3#Q\`3(G_2(G&3(GJZ!+^__]FD(N]J/O__TR)[KH`!```Z*WE -XM__](A05]=PXN]J/O__^@DZ/__B[VL^___ -XM@_\!=!6^`0```.@/X___B[VL^___Z`3H__](C;6P^___O^."40#H,^7__[\! -XM````Z"GG___H=./__Y"0D)!52(GE05=!5E-028G^13'_,?_HV3P``(,]8IU! -XM``!U4$B+/8&=00#HE#@``$4Q_X/X!'4\ORV$40#HDN+__[\!````Z*CF__\/ -XM'X0``````$B!PR@!``"_5X-1`$B)WC#`Z(KA__]!_\GM -XM-P``9F9F9BX/'X0``````%5(B>5!5T%605132(GS28G_]@5TG$$`0'0F2(V# -XM*`$``$B%V[Z=D%$`2`]%\$F-ER@!``"_>X-1`##`Z-#@__]).=\/A$<"``!, -XMB?_H;^4``$B%VTV)_G063(G_2(G>Z,S^``"%P$F)W@^%(0(``$'V1AD(="E) -XMC46900``=1Q,B?_H"R,``#T```"`=1A,B?_H -XM_"(``$B%TG4+28UW*#'_Z`S>__])C4\X28U'*$&+5RA!BWE`+0``OP$```#H5N+__TF+G^````"_Y8-1`#'VZ#,'`0!( -XMB<9(@_L`=1:_[8-1`##`Z"[=__^_`0```.@DXO__28N/V````$F+E^````"_ -XMQ8-1`##`Z`K=__^_`0```.@`XO__54B)Y4%705934$F)_DR)\$B)PTB)7>`/ -XMM@M(@?G_````="E(C4,!2(L5RG5!`/9$$0$"==NX`@```(#Y+@^$[04``(#Y -XM.@^$Y`4``$B-=>!,B??HV.#__XG!N/W`#_Q(#Z_!2,'H)FO`08G**<),*?.X -XM`@```(/Z.W]D@_HR#X^;````@_HN#X_W````@_HD#X\P`0``@_H<#X]$`@`` -XM@\+U@_H-#X>%!0``_R358(11`+@"````@?E"'@``#X5M!0``2(/[!`^%8P4` -XM`$R)][Z$AE$`N@0```#I8P,``(/"Q(/Z`P^'104``/\DU4"$40"X`@```('Y -XMP@$```^%+04``$B#^P(/A2,%``!,B?>^9(91`+H"````Z?4!``"#^C,/A0@% -XM``"X`@```('Y*1X```^%]P0``$B#^P0/A>T$``!,B?>^5(91`+H$````Z&O> -XM__^)P;@"````A@<` -XM#X50!```2(/[!P^%1@0``$R)][Y$AE$`N@<```#HQ-W__XG!N`(```"%R0^% -XM)00``+A0A5$`13'_Z4<#``"X`@```('YF=X!``^%!P0``$B#^P8/A?T#``!, -XMB?>^.X91`+H&````Z'O=__^)P;@"````A'@`/A;X#``!(@_L(#X6T`P``3(GWOCF&40"Z"````.@RW?__ -XMB<&X`@```(7)#X63`P``N("%40!%,?_IM0(``('YI58'`'4G2(/[!W4A3(GW -XMOG2&40"Z!P```.CVW/__B<&X!0```(7)#X17`P``N`(```#I30,``(/Z'0^% -XM1`,``+@"````@?DR=P``#X4S`P``2(/[!0^%*0,``$R)][XJAE$`N@4```#H -XMI]S__XG!N`(```"%R0^%"`,``+@@A5$`13'_Z2H"``"#^B9U7+@"````@?D" -XM>0``#X7E`@``2(/[!0^%VP(``$R)][YAAE$`N@4```#H6=S__XG!N`(```"% -XMR0^%N@(``(L%1'-!`(7`#X1Z`@``_\B)!31S00"X`0```.F:`@``@_HI#X61 -XM`@``N`(```"!^9EZ>0`/A8`"``!(@_L)#X5V`@``3(GWOD*&40"Z"0```.CT -XMV___B<&X`@```(7)#X55`@``N)"%40!%,?_I=P$``+@!````@SW,`0``N`(```#IE`$``('Y,FD``'4G2(/[!74A -XM3(GWOF>&40"Z!0```.@$V___B<&X!````(7)#X1E`0``N`(```#I6P$``+@" -XM````@?DRW@$`#X5*`0``2(/[!@^%0`$``$R)][XRAE$`N@8```#HOMK__XG! -XMN`(```"%R0^%'P$``+@PA5$`13'_ZT2X`@```('Y,EX>``^%!`$``$B#^P@/ -XMA?H```!,B?>^,(91`+H(````Z'C:__^)P;@"````A& -XM40!,B?(PP.CT-0``N`(```#I^O[__V8N#Q^$``````!52(GE059308G^9@\? -XM1```1(GWZ&@-``")P[@)````@_L)=")$B??H)````(/X`W4-A=MTVS'_Z,3_ -XM___K!HD%"&0A`(G86T%>7<,/'T0``%5(B>5!5T%6055!5%-(@^QHB?M$BSWB -XM8R$`08/_"'5`3(LU`7)!`.L1#Q^``````$G_QDR)->YQ00!!#[X&@_@)=.T\ -XM('3I@_A[?R-!OP<```"#^`E_0X7`=7/I\`(``,<%DF,A``@```#IX0(``(/X -XM?'5:08!^`7QU"DG_QDR)-:-Q00!)_\9,B369<4$`0;\#````Z;8"``"#^"!_ -XM"X/X"@^$J`(``.LD@\#?@_@(=QS_),70A%$`2?_&3(DU97%!`$&_!````.F" -XM`@``3(GWOOF&40"Z!0```.A0U___A<`/A/D```!!O;"%40!FD$V%[0^$N`$` -XM`$F+=0!-BV4(3(GW3(GBZ"37__])@\48A9,B35, -XM<$$`Z=````!)C48%2(D%/'!!`$&\!````.L?3(DU+7!!`$V+9?A%,?]-A>0/ -XMA1L!``#IH0```$G_Q$.*1"8!A,`/A(H````\*'7L30'F2(U-N$R-1;1,B?VU!`$PI]DR)_TR)\NBEZ___2(L%9FU!`(`X(G4*2/_`2(D%5VU!`$B+A7C_ -XM___&``!(B[UP____,?:)VNAU`0$`28G&2(N]=':^_*A1`(7`NMJ&40!(#T76N1X````IP8/Y`4&X"8]1`$P/ -XM1,:_`0```+["AE$`,,#HF2\``(,]^ETA`!U_.+MHOH$`0;X=````#Q]$``!( -XMBTOX2(L3OR"Z@0"^Y(91`##`Z&C1__](@\/H0?_.1#LUPETA`'W8QP6V72$` -XM'@```%M!7EW#9@\?A```````54B)Y5-02(G[2/_+#Q]```^^5(B?A(BSA(BW`(,=+H*\D``$B)P4B%R70+N`$```#V01@'=0(Q -XMP%W##Q]``%5(B>5!5T%6055!5%-(@^QH08G5B76,28G_2(L%AVI!`.L49F9F -XM9BX/'X0``````$B)!7%J00!(_\`/MDC_2('Y_P````^$@P```$B+%99F00#V -XM1!$!"'77#[[)NXZ-40!!O)R'40"#^3YW;4BZ``````(``'!(#Z/*:P`N@LS/__00^^!"1!O0D```"#^#M_'H/X(0^%UP(``$&`?"0!/75>\@\0 -XM1;#R#\)%J`3K0X/X/'4B\@\01:CR#Q!-L$&`?"0!/0^%;0(``&8/+L$/D\#I -XMEP(``(/X/0^%7@(``$&`?"0!/749\@\01;#R#\)%J`!F00]^Q4&#Y0'I<0(` -XM`+\"````ONB'40#K8(7)=`A,B??HM='__T&*!"0\(70$/#UU/D&`?"0!/74V -XM3(EE@$B-?<`Q]N@"Y___B@N(C7____^`^2(/E,!$#[;P20'>@/DB="E,B7V0 -XM3(U]P.F[````OP(```"^:H=1`##`Z%HK``!!O0D```#I\P$``$R)?9!,C7W` -XM3(UEN.L1D$&*#DB-4`%(B57(B`A)_\9!B@8\6W\QA,`/A.P````\(@^$Y``` -XM`#PD=2Y,B?],B?8QTD2)Z4V)X.A"]P``A3(G_3(GV,=)$B>E,C46X -XMZ*'V``"%P'0&3`-UN.NG2(M%R$B+3=!(*<%(@_D!?X9,B?_HKN3__TB+1=,B?[H(,[__T&)Q$R)_^CES___187D#Y7` -XM1##H1`^VZ$@['6EF00!T!DR+?9#K;8"]?____R(/E<%!B@8\*4R+?9!U#H#Y -XM`74)3(DU0&9!`.M*A,!T,DG_QDR)-3!F00#K.F8/+L'K+8/X/G4O\@\01:CR -XM#Q!-L$&`?"0!/7429@\NR`^3P.L03(DU`69!`.L+9@\NR`^7P$0/MNB#?8P` -XM=`A,B?_H3L___T2)Z$B#Q&A;05Q!74%>05]=PV9F9BX/'X0``````%5(B>5! -XM5E-(@^P028GV@#\P=1N`?P%X=15(@\<",B`.``/E,`/ML#K>@\?1```2,'A!$ACPT@!P4C_QP^V -XM-S'`2('^_P```'1:0(3V=$9`#[[>]D06`01U-C'`0(#^_W1"#[;S,<#V1!8! -XM1'0VN&$```"`^_]T$0^VP_9$$`$!N&$```!!#T7`@\,**5!5E.)^^AR\O__B<&X"0```(/Y!W10@_D%=2J) -XMW^@*\O__08G&N`D```!!@_X)=#:)W^A%\O__@_@&N`D```!!#T3&ZR&#^02) -XMR'4:B=_HJ?___XG!,<"#^0%T"H7)N`$````/1<%;05Y=PY!(C4=(PV9F+@\? -XMA```````54B)Y;^@OH$`O@0```"Z8+!A`.C(RO__O^"^@0"^!````+J(L&$` -XMZ+3*__^_0*E1`+Y!J5$`Z"4```!(B05N@D$`2(7`=`)=PS#`O_F'40!=Z3HE -XM``!F+@\?A```````54B)Y4%7059!54%44TB#["A)B?Y(B77(2(U5R+^@OH$` -XM3(GVZ/?*__^)1;R_H+Z!`(G&Z$C(__](B<-(A=L/A3`!``!(C57(OV"P80!, -XMB?;HZ\;__TF)QD''!@````!)C5Y(]@4B@D$`!'09O^>(40!(B=XPP.B5QO__ -XMOXBY@0#HR\?__TB)W^B#RO__28G$387D#X3Y````28U>"$R)=?HAO[BP80!,B?9,B>KH&<;__TB)WT2)_DB) -XMPNB[Q___3(GGZ`/'__])B<9-A?9UBTR)Y^B#R___]@4X@4$`!'0*O_6(40#H -XMD,;__[^@OH$`BW6\2(M=P$B)VNA\Q____P-F+@\?A```````2(G82(/$*%M! -XM7$%=05Y!7UW#3(GWZ);+__\QV^OB9I!52(GE05=!5D%505132(/L*$B)3Y,B?I(B<%!N"\```#H])(``$B+?`%(A,,#H%<3__TB)G2#___]%A>0/A(@```!(@[WP_O__`'0@2(N%&/___TB+ -XMC2#___](*T$`!'0*OPF)40#H^<#__TR)][XO -XM````Z-S!__],B?=(B<;H\?C__TB)QDB%]@^$$`(``(,^`0^%^P$``$B+O?C^ -XM___H\!D!`.GV`0``28/$2$R)YS'VZ%W%__](BTVX3(GG2(G&2(N5&/___T&X -XM+P```.CQC0``28G&]@4C>T$`!`^$$0$``+]8B%$`3(GV,,#HDK___^G]```` -XM13'V]@7_>D$`!`^$[0```+\!B5$`Z%/`___ITP```/8%XWI!``1T#+^IB%$` -XM,,#H6;___T6%_W0?13'V]@7&>D$`!`^$M````+]0B5$`Z!K`___IF@```$B+ -XM=;A,B>!(B<=(BZ/_"__^_X+Z!`(G&Z%/`__](A -XM05]=PTB+A6#___](A<`/E,%$B[U8____08'_````@`^4PB#*#[;:2`'#]@7* -XM>4$`!'0=1(G_2(G>Z&'@``"_EHA1`$B)QDR)\C#`Z"^^__](QT70`````$B- -XM5="_X+Z!`$R)]N@FPO__08G$O^"^@0!$B>;H=K___TB%P`^$HP```$2).$B) -XM6`CI8?___TB+O?C^___H-1;W__T2).$B) -XM6`B_X+Z!`$2)YDB)PN@2O___Z9W^__]F9F9F+@\?A```````54B)Y5-02(G[ -XM2(GW2(G6Z/SU__](B<9(A?9T$X,^`7452(G?2(/$"%M=Z0$7`0!(@\0(6UW# -XM2(G?2(/$"%M=Z2P6`0!F9F8N#Q^$``````#_!TB)^,-F+@\?A```````54B) -XMY4%7059!5%-(@^P@2(GS28G_2(U]R#'VZ##8__],BR--A>1T;TR-=<@/'T`` -XM3(G_Z-C!__],B?=(B<9,B?KH:M?__TF+7"002(/#2$B)W^BYP?__3(GW2(G& -XM2(G:Z$O7__](BT702(M-V$@IP4B#^0%_#$R)]^C2UO__2(M%T$B-2`%(B4W0 -XMQ@`@38MD)`A-A>1UF4B+1=#&``!(BT7(2(/$(%M!7$%>05]=PY!52(GE4U!( -XMB?O_"W0'2(/$"%M=PTB-O!__]F9BX/'X0``````%5(B>5!5T%64U!)B?Y(BQ[K -XM$F9F9F9F+@\?A```````2(M;"$B%VW083(M[$$R)]TR)_NC8%`$`AL```"I```@`'073(GWZ$3,__\/'T``08G$2(G3Z\#__TB+%<1)(0!(B=](B<:Y`0```.A4]O__28G'387_ -XM=0M(B=_H]&8``$F)Q[_@OH$`3(G^Z$2\__^)A43___^_X+Z!`(G&Z!*\__]) -XMB<5-A>UT>O8%#W9!``1T'TF+=0A!BWT`Z*3<``"_QHA1`$B)QDR)^C#`Z'*Z -XM__]-BV4`28M="$R)[^B"P/__O^"^@0"+M43____H/___[@```"`3#'@=89(A=MU@3';2(/+`>EV____0;P```"` -XM,=OI:?___Y"0D)"0D)"0D%5(B>5!5T%6055!5%-(@^Q82(E-F$B)59!(B?-) -XMB?[V!09U00`$="5,B?=(B=[H'8\``$F)Q[]UH%$`3(G^,,#H:[G__TR)_^B# -XMO___2(G:3"GR3(GWOGL```#HH+O__TB%P'1;2+@!`"`````"`$R)\>L/9F9F -XM+@\?A```````2/_!0;1U!T6$_W61ZY](B=I)C70D -XM`DV-?"0!,<#K'F9F9F9F+@\?A```````2/_&9F9F9BX/'X0``````(I._X3) -XM#X3,`0``@/E]=0B%P'00_\CKV(#Y>W73_\!(_\;KW$V)YDB)TTB)7:!)*=Y( -XMB?=(B76XZ$.]__])C4P&`4B)3:A(_\!(B46P23G<#X6Z````9BX/'X0````` -XM`$V)_#'`,=OK%P\?@`````#_R$C_PV9F+@\?A```````08H,'(7`=1.`^2QT -XM)(#Y>W03,<"`^7UT&.L1@/E]=-"`^7MU!__`2/_#Z]1(_\/KSTB+1:A(C3P# -XMZ#)C``!)B<=(A=MT#TN-/#=,B>9(B=KH&[C__TJ-/#-,`?](BW6X2(M5L.@' -XMN/__2(U]P$R)_NA+$0$`38U\'`%!@#PWK%F8/'T0``$G_Q69F9F8N#Q^$``````!#B@PLA],B?Y,B?'HKN___TB+6PA(A=MUY4B-?<`Q]NA:$`$`Z9````!(BQOK -XM%DB+4Q!,B>=,B?Y,B?'H?N___TB+6PA(A=MUY>MN2(L5''!!`$R)YTR)_DR) -XM\>A>[___2(L;ZQ]F#Q^$``````!(BU,03(GG3(G^3(GQZ#[O__](BUL(2(7; -XM=##KXTB+&^LD9F9F9F8N#Q^$``````!(BU,03(GG3(G^3(GQZ`[O__](BUL( -XM2(7;=>5(@\086T%<05U!7D%?7<-F#Q]$``!(B?DPP+_CB%$`2(G.Z4ZT__]F -XM9F9F9BX/'X0``````#')13'`,=+K%P\?@`````!(_\=F9F9F+@\?A``````` -XM2#G^=&(/O@>#^#Y_!X/X*G1-Z]R#^%I_!X/X/W1!Z]"#^'I_"H/X6W492/_" -XMZS"#^'UU(S'`2(7)=$5(_\E(_\?KO8/X776H,<$B%VW1!38U\)'!F -XM9F8N#Q^$``````!,BVL03(G_3(GNZ,$+`0"%P'0428/%8$R)[TR)YNAN#`$` -XM0?]$)"!(BUL(2(7;=="XZ/_[_T$C1AA!"40D&$'V1A@0=`5!_TPD($F#O"3@ -XM`````'4>28N&V````$F+CN````!)B8PDX````$F)A"38````2(/$"%M!7$%= -XM05Y!7UW#O[J*40"^WP```+K9BE$`N>B*40#HU;3__P\?1```54B)Y4%64TF) -XM]DB)^_9#&`AT$TB!PR@!``"_B+F!`+Y@BE$`ZQI(@<,H`0``@ST@;4$``'0G -XMOXBY@0"^<(I1`+K@B5$`2(G9,,#HL;/__[^(N8$`6T%>7>G#LO__O^6#40`Q -XM]NAGVP``2(G!,,"_@XI1`+[@B5$`2(G:38GP6T%>74'_X&9F+@\?A``````` -XM54B)Y4%64TB#[!!(B?N+0QAFJ3A$#X4)`0``]L0!=2)(C9,H`0``OXBY@0"^ -XMEHI1`##`Z#BS__^_B+F!`.A.LO__@SV';$$```^%U0```(M#&*D``"``=`U( -XMB=_H?[[__^F^````J0``$`!T#4B)W^C[P?__Z:H```!(BT,02('#*`$``$B% -XMP$@/1=A(B=_HS-(``(/X_P^%AP```$B)W[X"`@``NK8!```PP.C_M?__08G& -XM187V>#Y(C77O1(GWN@$```#H)K/__TB#^`%U'42)]S'V,=+HQ+'__TB-=>]$ -XMB?>Z`0```.ASLO__1(GWZ$NV___K+>BTL/__BSCHC;#__[^(N8$`OJ"*40!( -XMB=I(B<$PP.A6LO__OXBY@0#H;+'__TB#Q!!;05Y=PP\?`$B-3BA,C45!5T%6 -XM055!5%-(@^Q(2(E]H$B+=W!(A?8/A!L"```Q_TR-=:B)^&8/'T0``$B+3A"+ -XM41AF]\(P$`^%N`$``/;"!W0,3(NIH````$V%[7423(VI*`$``$B+41!(A=), -XM#T7J2(EUF$B+5:#V0AD$=3N+42A(BW6@BW8H.=9U#$B+=:!(BW8P2#MQ,'P] -XMBS4;:T$`.?)U(TB+43!(.Q44:T$`?1Q!B`&%P'4-2(M%H$R)J,````#K?T&)_$&#_P)U -XM*TR)]S'VZ(S*__](BT6@2(N8P````$B)W^@YM/__3(GW2(G&2(G:Z,O)__]( -XMBT6P2(M-N$@IP4B#^0%_#$R)]^A2R?__2(M%L$B-2`%(B4VPQ@`@3(GOZ/NS -XM__],B?=(B<9,B>KHCL___2(G?2(G&3(GJZ/#(__]$B?A$B>=( -XMBW682(MV"$B%]@^%*?[__X/_`GP62(M-R,8!`$B+3]@5O:$$`0`^$"0$``+\I -XMBU$`,,#HX:S__^GX````]\$``!``=%1(B=_H[,3__X7`=$7V!3UH00!`=`R_ -XM-HM1`##`Z+.L__](B=_H.\3__[$!A?%J!^@```(!U*TB#>T`` -XM=20]````@'41N@```(!(@WLP`+X```"`=#6Z````@/;!!(G&=2E(BWM@OG!V -XM0`!(B=KH8P@!`#'`D$B#Q`A;7)QK@!````]@4K9T$` -XM0'3=.=9U"$B+0S!(.T-`?0>_>HM1`.LB@?X```"`=0=(@WLP`'0.O[.+40#K -XM#+]LBU$`ZP6_E(M1`##`Z&^K__^X`0```.N8#Q^$``````!(C4XH3(U'.(M6 -XM*(M'.#G0=0A(BT=`2#M&,'T.2(L12(M!"$F)0`A)B1###Q]$``!52(GE0593 -XM28GV2(G[OP(```"^`0```.BDK?__2(/X`70-OP(```!(B=[HD:W__[\!```` -XMO@$```#H@JW__TB#^`%T#;\!````2(G>Z&^M__^_`P```+X!````Z&"M__]( -XM@_@!=`V_`P```$B)WNA-K?__OP\```"^`0```.@^K?__2(/X`70-OP\```!( -XMB=[H*ZW__[\2````O@$```#H'*W__TB#^`%T#;\2````3(GVZ`FM__^_%@`` -XM`+X!````Z/JL__](@_@!=`V_%@```$R)]NCGK/__OQ4```"^`0```.C8K/__ -XM2(/X`70-OQ4```!,B?;HQ:S__[\<````O@$```#HMJS__TB#^`%T#;\<```` -XM3(GVZ*.L__^_$P```+X!````Z)2L__](@_@!=`V_$P```$R)]NB!K/__QP4_ -XM94$``````%M!7EW#9I"#_PY_#8/_`745_P4<94$`ZR6#_P]U*O\%%V5!`.L8 -XM@_\"=0C_!09E00#K"X/_`W40_P7Q9$$`QP7W9$$``0```,-F9F9F9BX/'X0` -XM`````%5(B>5!5T%64U!)B?])BY_H````2(7;=#E-C;?X````28''H````&8/ -XM'X0``````$B+>Q!,B?XQTNA"V@``3(GW2(G&Z%<#`0!(BUL(2(7;==Y(@\0( -XM6T%>05]=PP\?`%5(B>5!5T%6051328G^N`@```!-A?8/A*,```"X"````$'V -XM1AH"#X63````28N>Z````$V-IO@```!(A=MT,TV-OJ````!F+@\?A``````` -XM2(M[$$R)_C'2Z,+9``!,B>=(B<;HUP(!`$B+6PA(A=MUWD'&1@<"ZP\/'X`` -XM````2(G?Z,BN__],B>?HH`,!`$B)PTB%VW012(G?3(GV,=+H6P$``(7`===( -XMB=_HGZ[__X,]T&-!``!U#D$/OD8'6T%<05Y!7UW#3(GWZ&"F``"%P'4L@SW5 -XM8T$``'4C28N>H````$B)W^AD5@``@_C_=`^_F8Q1`$B)WC#`Z(`%``"#/7EC -XM00``=%R_`@```+X!````Z*BJ__^_#P```+X!````Z)FJ__^_`0```+X!```` -XMZ(JJ__^_`P```+X!````Z'NJ___'!3EC00``````QP4G8T$``````$B+/7!C -XM00#HF_[__[__````Z,&L__^054B)Y4%64TF)_D'&1@<"28V>^````&8N#Q^$ -XM``````!(B=_HF`(!`$B%P'092(,[``^4P0^VT4B)QTR)]NA.````A0BE,!2/_#@/K_ -XM=`H/MLKV1#$!"'7KAZ;__XLXZ%2F__^_/8Q1 -XM`$B)QC#`Z"4$```/'T0``$2)YTR)[C'2Z..E__^)PT0YXW0/@_O_=>?H0J;_ -XM_X,X!'3=,<"#/2QA00``#X6/````@_O_=*F+7=1!B=Q!@^1_="J_+XQ1`$2) -XMYC#`Z*ZE__]$B>/K,;_SBU$`2(G>,,#HZ@(``+@!````ZU3!ZP@QP('C_P`` -XM`'0_OQV,40")WC#`Z'BE__]%A?]T'$'&1@<$@SW;8$$``'0G6_O__OPZ,40`PP.@Z`P``2(G?1(G^Z.\```!F9F9F9F8N#Q^$```` -XM``!52(GEB@5&0D$`A,`/A;T```#&!6I"00`!Q@5]0D$``<8%M4)!``'&!9!" -XM00`!Q@530D$``<8%34)!``'&!9A"00`!Q@630D$``87_Q@5(0D$``<8%+$)! -XM``'&!3M"00`!Q@4V0D$``<8%&T)!``'&!2E"00`!Q@4^0D$``<8%.4)!``'& -XM!0]"00`!Q@7R04$``<8%)T)!``'&!1Q"00`!Q@7#04$``<8%LD%!``%T#+\P -XMB4``OC")0`#K![_P=T``,?;H"/G__\8%@4%!``%=PV9F9F9F9BX/'X0````` -XM`%5(B>5!5T%64TB![)@```"X3XQ1`(7VN<*"40!(#T7(2,>%8/___^."40!( -XMB8UH____2(F]Z)JH___H1:/_ -XM_TB+$X,X`G4;OR"Z@0"^4XQ1`##`Z.RD__^_`0```.CRI___2(G7Z(JC__^_ -XM`0```.C@I___54B)Y4B![-````!)B?J$P'0F#RF%8/___P\IC7#___\/*56` -XM#RE=D`\I9:`/*6VP#REUP`\I?=!,B8U8____3(F%4/___TB)C4C___](B95` -XM____2(FU./___TB+!0XY00!(B47X2(V%,/___TB)1?!(C4402(E%Z,=%Y#`` -XM``#'1>`(````2(U5X+\@NH$`3(G6Z!BH__^_"@```+X@NH$`Z+FF__](BP7" -XM.$$`2#M%^'4)2('$T````%W#Z&ZC__]F9F9F9BX/'X0``````%5(B>532('L -XMR````$B)^X3`="8/*85@____#RF-C'1>0P -XM````QT7@"````+_"C%$`O@8```"Z`0```+D@NH$`Z&JE__](C57@OR"Z@0!( -XMB=[H::;__[\*````OB"Z@0#H"J7__^BU$@``]@7*6T$`$'0*OP(```#H8J`` -XM`+\"````Z#BE__\/'X0``````%5(B>534(G[Z%,2``"%VW0;O^6#40`Q]N@# -XMR@``O\F,40!(B<8PP.A4_?__Z,\&``#V!71;00`0=`J_`@```.@,H```OP(` -XM``#HXJ3__V:054B)Y4%64TB![.````!)B?:)^X3`="P/*85`____#RF-4/__ -XM_P\IE6#___\/*9UP____#REE@`\I;9`/*76@#RE]L$R)C3C___],B84P____ -XM2(F-*/___TB)E2#___](BP4Z-D$`2(E%Z$B-A1#___](B47@2(U%$$B)1=C' -XM1=0P````QT70$````$B-?<#H7"\``$B+5-4$`2#M% -XMZ'4,2('$X````%M!7EW#Z$>@__^0D)"0D)"054B)Y4%7059!54%44U!(BP6C -XM-T$`9F8N#Q^$``````!)B?Q!#[8,)$B!^?\```!T#$F-?"0!]D0!`0AUX[]P -XM````Z#E*``!)B<9!QT8@`````$G'1A``````2<=&"`````!%,1(@_D"#X5Z -XM____@#]I#X5Q____@'\!;@^%9____T6%P`^$7@$``$4Q[4R)YS'V,=+HC\X` -XM`$F)Q/8%$EE!``1T7;\ZR8U1`.C/<@``2(G? -XM2(G&Z+3Z``!)_\5,B?_H"6X``$B%P'743(GGZ.RB__])8TX@2(/Y`7143(GH -XM,=)(]_%(A=)T1[\!````OC2-40#K&;\!````OO",40!F9F9F9F8N#Q^$```` -XM```PP.BI_/__13'V9@\?1```3(GP2(/$"%M!7$%=05Y!7UW#Z#DL``!)B498 -XM2<=&8`$```!)C7Y`,?;HXK?__^O0OP$```"^!(U1`.NT#Q]``%5(B>5!5T%6 -XM055!5%-028GV28G_38MG8$V%Y`^$/0$``$&`/BX/A=T```!)C48!3(LM`C5! -XM`&8N#Q^$``````!(B<,/M@M(@?G_````=`Q(C4,!0O9$*0$(=>5(B=^^D(U1 -XM`+H&````Z).>__^%P'5)#[9#!D@]_P```'0]0O9$*`$(=02$P'4Q]@4M5T$` -XM!'08OR"Z@0"^EXU1`$R)XC#`Z+J=__]-BV=@,534$B)^TB+0TC&``!(BT-`2(D#2(M+2$B# -XMP2!(*<%(B4LX2,=#&`````!(BWLHOI"'0`!(B=KH$?<``$B+>T#HF*#__TB- -XM>PB^X%9!`.BZ]0``2(U[*+[P)T``Z*SU``!(B=](@\0(6UWI;J#__V9F9F9F -XM+@\?A```````54B)Y4%705932(/L&$B)\TF)_DB#>Q@`=1U(BT,02(E#&$B+ -XM0TC&``!(BT-`2(D#QT-H`````/8%?U5!``1T)$B+0QA(BW@0Z//.``"_(+J! -XM`+Z\C5$`2(G"3(GQ,,#H_)O__TB+@6SP``@WMH`'0(2(L[Z,B?__](BT78Q@``2(M]T$B).\=#:`$` -XM``!(BT,82(L`2(E#&$B%P'4)2(MS6.B*&```2(/$&%M!7D%?7<.0D)"0D)"0 -XMD)"0D)"0D)!52(GE,?^^D-V!`.@@F?__Z#N2``#HUM'__^@17```Z'S1``#H -XM-['__UWI\8D``)!52(GE4U!(BQV+-T$`ZR&03(N(V````+]NCE$`,,#H7?;_ -XM_TB+6PAF#Q^$``````!(A=MT3$B+0Q"+"+Y`CE$`AZ+.;__]-BW\(387_=>KHQ9C__T2),(/[#G\:@_L! -XM=3;_!9Y300#'!:!300`!````Z9X```"-0_&#^`UW=_\DQ="-40#_!8)300#' -XM!7Q300`!````ZWV#^P)U$O\%9U-!`,<%95-!``$```#K9H/[`W5"_P5(4T$` -XMQP5.4T$``0```.M/_P5.4T$`ZQ[_!5)300#K%O\%.E-!`.L._P4^4T$`ZP;_ -XM!3)300#'!1Q300`!````Z$^8__^)QXG>Z/::__^)WS'VZ#V:___H")C__T2) -XM,$B#Q`A;05Y!7UW#9BX/'X0``````%5(B>7H!P```%WI80$``)!52(GE05=! -XM5D%505132(/L&$B#/105]=PP\?1```54B)Y4%64TB#[!"#/9HT -XM00``#X1\````2(UUZ+______N@$```#HY97__XE%[(7`?F),C77L2(U=Z&8/ -XM'T0``.B["```2(L]A#1!`+[`ED``3(GRZ`?R``!(AR_18]1`##` -XMZ`+S___K"XMUZ$B)Q^BE"@``O_____](B=ZZ`0```.B#E?__B47LA0BEH!2/_"A-MTUH#["70%@/L@=1"`>@$M=0Z`>@))#Y3` -XM#[;PA?9UV#'V@/MM==$Q]H!Z`6%UR8!Z`FMU-X!Z`V5U.$B#P@)F#Q^$```` -XM``"*6@)(_\*`^RU_$`^V\X#[('?M2`^C\7/GZQLQ]H#[+G7>ZXPQ]DC_PNN% -XM,?9(@\("Z7K___]!@\X"9D6)=Q!-A?\/A,`$``!,.25Q,D$`="_V!45/00`0 -XM=!])@<0H`0``OXBY@0"^(H]1`$R)XC#`Z,N5__]-BV<(3(DE0#)!`$B-73__^+..B0D___O[:.40!(B<8PP.@Q\O__ -XMOP$```"^9,"!`+JHP($`Z%V9___H2);__T&)QD6%]@^%^````,<%=C%!```` -XM``"+?<#H^IC__XM]Q+X!````Z.V3__^#^/]U&^A3D___BSCH+)/__[_9CE$` -XM2(G&,,#HS?'__XM]Q(/_`70%Z,"8__^+??HGS,``.FR`@``QP4D,$$``0```$6)-TG'AR@$````````BWW`O@(` -XM``"Z`0```##`Z'Z7__](BWW`08E_($C![R#H?9?__T&+?R"+'9,@(0!(BP4\ -XM,$$`2(7`=`0YWWYW@\,@P>L%C4\@P>D%.=ET74&)S$B)QTR)YKH$````Z'`^ -XM``!(B04),$$`B=E(C3R(1(G@*(",?;HX)3__TB+/?$O00!,B>:Z -XM!````.@\/@``2<'D`DB)!=DO00!,B27:+T$`08M_((D]$"`A`$&+?R"^!``` -XM`+H$````,,#HRY;__T&+1R"Z`0```(C!T^+!Z`5(BPV4+T$`"12!2<>'.`@` -XM``````"+?`IR$ACT$C!X@(Q -XM]NCND___2(L]_RY!`$R)YKH$````Z$H]``!)P>0"2(D%YRY!`$R))>@N00!! -XMB[\P!```B3T;'R$`08N_,`0``+X$````N@0````PP.C3E?__08N',`0``(C! -XMN@$```#3XL'H!4B+#9DN00`)%('_!5PN00"_@,"!`$R)_NC3Z0``0?9'$`)T -XM!\8%72Y!``&_!````.AK.P``1(DPOTC`@0!(B<;HJ^D``$B+!10N00!)B4<8 -XMOP,```"^J,"!`#'2Z*^5___V!?1*00`@=%Y)BT\(26/62('!*`$``+^(N8$` -XMO@N/40`PP.AWD?__28M'"$B+F.@```#K(V8N#Q^$``````!(BU,0OXBY@0"^ -XM'8]1`##`Z$N1__](BUL(2(7;=>*_B+F!`.A8D/__2(L%T25!`$@[1=AU#4B# -XMQ"!;05Q!7D%?79#__V8/'X0``````%5(B>6)/6XM00#'!6@M00`````` -XMQP5B+4$``````,<%7"U!``=`,@#'!58M00``````2,<%4RU!``````!(BSUD -XM2D$`]D<:`G4IO@0```#H+/G__^L49BX/'X0``````.@+]___Z&;X__^#/0LM -XM00``=>U=PV9F+@\?A```````L`&#/?\L00``=0^+!>LL00`[!>$L00`/G<"* -XM#?@L00`(P0^VP8/@`8/P`<,/'T``@SW%+$$```^4P`^VP,-FD%5(B>5(BSW5 -XM24$`]D<:`G5"@SVH+$$``'0.OY:.40`PP.A:Z___ZRN^!````.B.^/__ZQ9F -XM9F8N#Q^$``````#H:_;__^C&]___@SUK+$$``'7MBP5G+$$`7<,/'T0``%5( -XMB>7'!5HL00`#````ZPKH._;__^B6]___@ST[+$$``'7MQP4[+$$``````%W# -XMD%5(B>5!5E-(@^P0QP4C+$$``0```(,]$"Q!``!T0DB+'2LL00#K*V8/'X0` -XM`````$R+R______[H!````Z!V-__^%P'_I2(/$$%M!7EW#54B)Y>LJ -XM9BX/'X0``````,<%/__\/'X``````@SU! -XM2$$```^$S@$``,<%,4A!``````"#/2)(00``=$+'!19(00``````]@4[2$$` -XM('0@OXBY@0"^`I!1`+H"````,,#HQX[__[^(N8$`Z-V-__^_`0```+X"```` -XMZ)X*``"#/=-'00``=#_'!<='00``````]@7P1T$`('0@OXBY@0"^`I!1`+H! -XM````,,#H?([__[^(N8$`Z)*-__\Q_[X!````Z%8*``"#/8='00``=$;'!7M' -XM00``````]@6H1T$`('0@OXBY@0"^`I!1`+H#````,,#H-([__[^(N8$`Z$J- -XM__\Q_[X#````Z`X*```Q_^C'Z___@SU$1T$``'0_QP4X1T$``````/8%64=! -XM`"!T(+^(N8$`O@*040"Z#P```##`Z.6-__^_B+F!`.C[C/__,?^^#P```.B_ -XM"0``@ST(1T$``'09QP7\1D$``````+\2````OC")0`#H'8[__X,][D9!``!T -XM&<<%XD9!``````"_%@```+XPB4``Z/N-__^#/5!5T%6055!5%-0B?-(B?A,BW@0OX#`@0!(B<;H'.D``,=%U`$```"_`0`` -XM`+YDP($`NJC`@0#H\9#__TF+1QA(BW@0Z-20__])BW<8OTC`@0#HYN@``+\# -XM````OJC`@0`QTNC%D/___PT;*4$`0?9'$`)T!\8%*2E!``"Z*`$``$D#5PA) -XM8S=%,.2_7X]1`(G9,,#H9`,``$&)WD&#YG]!@_Y_=`Q%A?8/ANP$```"(P;H!````T^+WTL'H -XM!4B+#=4H00`A%(%,B?^^`0```+H!````Z-`#``!!B[\P!```Z.2/___'1=0` -XM````08M'((C!T^/WT\'H!4B+#9DH00`A'(%,B?\Q]KH!````Z)<#``!!BW\@ -XMZ*Z/__]%,.U%A?8/A?P```!!M0$QV_8%(D5!`"!!O@````#'1=0`````#X2[ -XM`0``Z=@```!!M`''1=0`````08G>08N',`0``+L!````B,&Z`0```-/B]]+! -XMZ`5(BPT@*$$`(12!3(G_O@$```"Z`0```.@;`P``08N_,`0``.@OC___08M' -XM((C!T^/WT\'H!4B+#>LG00`A'(%,B?\Q]KH!````Z.D"``!!BW\@Z`"/__]% -XM,.U%A.1U4DF+5PA(.Q6=)T$`="SV!7%$00`0=!Q(@<(H`0``OXBY@0"^(H]1 -XM`##`Z/J*__])BU<(2(D5;R=!`+^(N8$`OMV/40!$B?(PP.C;BO__Z=$```"Z -XM*`$``$D#5PA)8S>_B(]1`##`Z)X!``!%A.UT+_8%#D1!`"`/A*<```"Y*`$` -XM`$D#3PA)8Q>_B+F!`+ZXCU$`,,#HCXK__^F%````28M7"$@[%?\F00!T,/8% -XMTT-!`!!T'$B!PB@!``"_B+F!`+XBCU$`,,#H7(K__TF+5PA(B171)D$`28M7 -XM"(M"&(/@0,'H!KJXC%$`A<"Y_*A1`$@/1$` -XM`$R)_^B1C?__BP4#)D$`BSWU)4$`@SW20D$``'4>A?]T&H/X`G05QP7A)4$` -XM`0```(,]SB5!``!U).L/@_@!=1V+!;\E00"%P'432(/$"%M!7$%=05Y!7UWI -XM[.;__TB#Q`A;05Q!74%>05]=PV9F9F8N#Q^$``````!52(GE2('LT````$F) -XM^H3`="8/*85@____#RF-(TB)19!(B5W`38UT'B1( -XMB#Y!`!!T'DB!PB@!``!,B>^^(H]1`##` -XMZ`.%__](BT7`2(M0"$B)%70A00!(BT7`@$@0`4B%VW19#Q^``````$&*!@^^ -XM^(,]FQM!``!U(T&+50R-2O]!B4T,A=)_'D$[32A\!#P*=11,B>[H4(;__^L8 -XM3(GNZ,:&___K#DF+30!(C5$!28E5`(@!2?_&2/_+=:Y)BP0D2(7`=%Y(BTVH -XM@'P((PIT4X,].QM!``!T$;\*````OHBY@0#H@H;__^LYBP7^&4$`C4C_B0WU -XM&4$`A__])8W4`2(7V=*"_+)!1`##`Z%3Z__]! -XMBWT`B=[HB83__^N'187V=$6+!<`\00"%P'4[2(L]T3Q!`/9'&@)U+L<%F3Q! -XM```````Q]NBJZ___ZQ(/'X0``````.B+Z?__Z.;J__^#/8L?00``=>V)W^CV -XMA?__D)"0D)"054B)Y4%7059!5%-)B?9)B?](BS6X'T$`3(LF]@5+/$$`!'0; -XMOR"Z@0"^5Y!1`$R)^C#`Z-B"__](BS61'T$`O[C`@0#H=]X``$B#/7\?00`` -XM=$._,````.A3+```2(G#3(DC3(ES"$C'0Q``````3(E[&$R)>R!,B?_HP87_ -XM_TP!^$B)0RA(B1U#'T$`6T%<05Y!7UW#OV"040"^K0```+J!D%$`N9*040#H -XM,8/__Y!52(GE059328GV2(G[2(LU#!]!`$B%]G0*O[C`@0#H[=T``+\P```` -XMZ-,K``!(B1A(QT`8`````$C'0`@`````3(EP$$C'0"@`````2,=`(`````!( -XMB07%'D$`6T%>7<-52(GE4U!(BQVS'D$`2(7;=#M(BWL02(7_="&#/:8800`` -XM=`?HUX3__^L$#[]'$H7`=`E(BWL0Z'2#__](BWL8Z+N%__](B=_HLX7__[^X -XMP($`Z(G:``!(B05B'D$`2(7`#Y7`#[;`2(/$"%M=PV:054B)Y4%7059!5%-( -XM@^P@28G^2(L%-QY!`$R-?=!(C5W83(UER.L49@\?A```````2(L%&1Y!`$C_ -XM0`A(BT@@2#M(*'),2(MX$+C_____2(7_#X09`0``3(GFZ-&#__](BPWJ'4$` -XM2(E!($B+!=\=00!(BT@@2(7)#X0[`0``2`--R$B)2"A(BP7#'4$`2(M(($B- -XM40%(B5`@#[X!@_@N#X7+````Z1X!``!F#Q]$``!(C5$!2(E0(`^^`>FP```` -XM@_A<=75(BPV$'4$`2(M!($@[02AR1TB+>1!(A?\/A/P```!,B?[H18/__TB+ -XM#5X=00!(B4$@2(L%4QU!`$B+2"!(A -XM05]=PY!52(GE05=!5D%44TB#["!)B?=)B?Y)BP9)B48(2(L-+1Q!`$B+02!( -XM.T$H&D$`2(E!($B+!=,:00!(BT@@2(7)#X06____2`--T$B) -XM2"A(BPVW&D$`2(M!($B-4`%(B5$@#[X8@_L)=).#^R`/A?K^___KB$C'0"@` -XM````OP$```"^MY!1`$R)^C#`Z+S;__\QP.GI````2,=`*`````"[_____TF+ -XM1@A)BTX02"G!2(/Y`7\,3(GWZ/^5__])BT8(2(U(`4F)3@C&`%R#^UP/A9<` -XM``!)BT8(28M.$$@IP4B#^0%_#$R)]^C.E?__28M&"$B-2`%)B4X(Q@!<2(L% -XM"!I!`$B+2"!(.T@H`900!( -XMB4$@2(L%U1E!`$B+2"!(AT800!(BT@@2#M(*'))2(MX$$&______TB%_P^$$@$` -XM`$R)[NBH?O__2(L-P1A!`$B)02!(BP6V&$$`2(M(($B%R70M2`--N$B)2"A( -XMBP6>&$$`2(M(($B-40%(B5`@1`^^.>G+````9@\?A```````2,=`*`````!! -XMO______IKP```&9F9F8N#Q^$``````!(@_D!?PQ(B=_H`I3__TB+0PA(C4@! -XM2(E+",8`($B+#3P800!(_T$(ZPUF#Q]$``!(BPTI&$$`2(M!($@[02AR24B+ -XM>1!!O_____](A?]T4DR)]NCH??__2(L-`1A!`$B)02!(BP7V%T$`2(M(($B% -XMR0^$:?___T@#3;H;'W__TB+#84700!(B4$@2(L%>A=!`$B+2"!(A!!!O_____](A?\/A(;]__]( -XMC770Z(U\__](BPVF%D$`2(E!($B+!9L600!(BT@@2(7)=1-(QT`H`````$&_ -XM_____^E/_?__2`--T$B)2"A(BP5P%D$`2(M((.DG_?__2(L%8!9!`$C_0`A( -XM@\0H6T%<05U!7D%?7<-F9F9F+@\?A```````54B)Y4%7059!54%44TB#[%A) -XMB?Y,C6V@3(U]R.L-9I!(BP49%D$`2/]`"$F+!DF)1@A(BPT'%D$`2(M!($@[ -XM02AR2DB+>1`QP$B%_P^$K@4``$B-=8CHQ7O__TB+#=X500!(B4$@2(L%TQ5! -XM`$B+2"!(A1"^ -XM_____TB%_P^$70$``$B-=9#H1'O__TB+#5T500!(B4$@2(L%4A5!`$B+2"!( -XMA[H.7K__TB+#5(400!(B4$@2(L%1Q1!`$B+2"!(A1"^____ -XM_TB%_P^$70$``$B-=;CHI'C__TB+#;T200!(B4$@2(L%LA)!`$B+2"!(A1"[_____TB%_P^$"P$``$B-=<#H%'C__TB+#2T200!(B4$@2(L%(A)! -XM`$B+2"!(A@PP.CO;O__2(UUT$B-5Z#D!``!(BWW(Z)!T__](B=_HB'3__P\?A```````2(/$&%M!7$%= -XM05Y!7UW#3(UUU>LK9F8N#Q^$``````#&1=4M1(A]UL9%UP"_,)-1`#'V3(GR -XM,#^$]_&(/X0@^%L@```,<%@"E! -XM``$```!(_\OKTX/X9'\:@_A0=*F#^%,/A9````#'!4HI00``````ZY2#P)N# -XM^`]W?/\DQ4"140"_`0```.@;D```Z7;____'!20I00`!````Z6?____'!1$I -XM00`!````Z5C____'!0XI00`!````Z4G____'!0\I00`!````Z3K____&!9L, -XM00`!Z2[____'!?@H00`!````Z1_____'!=DH00`!````Z1#____HVPX``&9F -XM+@\?A```````54B)Y4%7059!54%44TB#[!A)B?5!B?['!2\$00`!````QP4! -XM!D$``0```$4QY+@!````3(U]U>L7#Q^``````/\%"@1!`(L%!`1!``\?0`!$ -XM.?`/C5P$``!%A>1U8$ACR$F+3,T`@#DM=2J*40&`^BUU%H!Y`@!U'/_`B07/ -XM`T$`0;P!````ZS6$TG4(_\")!;L#00!$B?=,B>ZZ1911`.@K440`PP.@WR___2&,%4`-!`$F+?,4` -XM2(L=3/L@`.A?&```2(G?2(G&Z#3&``#I'____X/[8W\B@_M5?S^#^T]_:(/[ -XM0@^%@````,<%A2=!``$```#IR@```(U#G(/X$`^'7`,``/\DQ<"140!(BQW> -XM`D$`2(G8Z<8!``"#^U8/A3T#``!(BS7&`D$`OQ#!@0#HS,4``$B+';4"00#& -XM1=4MQD765NG1`@``@_M0#X0T`0``@_M3#X4&`P``QP4`)T$``````.D<`0`` -XM@_M$#X4P`0``2(L]=P)!`$4QY#'VNE^440`QR>BVDP``2(L=7P)!`,9%U2W& -XM1=9$QD77`.E^`@``OP$```#HI(T``.G4````2(LU.`)!`+\`P8$`Z#[%``!% -XM,>3I;`(``,<%E"9!``$```#IK````,8%.0I!``%(BST)`D$`2(UUR#'2Z)YL -XM__^)!80F00!(BQWQ`4$`2(M5R$@YV@^$?@(``,9%U2W&1=9JZ0`"``#'!4$F -XM00`!````ZV!(BS7$`4$`2(L]W?D@`#'2Z):M__](BQVO`4$`QD75+<9%UFWI -XMRP$``,<%&"9!``$```#K*\<%'"9!``$```#K'\8%JPE!``'K%L<%"R9!``$` -XM``#K"L<%[R5!``$```#&1=4MB%W6QD77`$4QY+\PDU$`,?9,B?KIK`$``(/[ -XM20^%M0$``$B+/3X!00#H"1D``$B+'3(!00#&1=4MQD762>E.`0``#Q]$``#' -XM!9(E00#_____2/_`#Q\`#[X0A=(/A"8!``"#^DE_"X/Z00^%>P$``.O5@_I@ -XM?Q6#^DH/A6L!``"`#5TE00`02/_`Z\N-2I^#^14/AU,!``#_),U(DE$`@`T] -XM)4$``>G5````@`TQ)4$``DC_P.N@@`TE)4$`!$C_P.N4@`T:)4$`!$C_P.N( -XM2(U(`8I0`8#Z,@^%B@```(`-_21!`!!(B2_,)-1`#'V3(GZ,2_,)-1`#'V2(G:,Y(``(L%I?]``.F@^___Z!L*``!( -XM@\086T%<05U!7D%?7<._(+J!`+YAE%$`,,#HBVK__^CV"0``OR"Z@0"^C)11 -XM`##`Z'5J___HX`D``%5(B>5!5T%6055!5%-(@>Q8`0``2(FUF/[__XF]E/[_ -XM_[\[DU$`Z)5H__])B<=-A?]U&;\@P8$`Z--I__]!OR#%@0"#^/\/A.@&``"_ -XM0Y-1`.AJ:/__NS.440!(AU, -XM#T3K,?\Q]N@J;/__28G&387V#X2V!@``2(VU,/___TR)]^B/;/__@_C_#X3( -XM!@``OQV340#H#&C__TB)PTB%VW1"2(VUH/[__TB)W^AE;/__A9,B?)F9F9F9BX/'X0``````$B)P44QP.@U-0`` -XM28G&3(GWZ*H'``!(B<-,B??H_VS__^L:O^Z340#H0V?__TB%P'0G2(G'Z(8' -XM``!(B<-(B1WZ!84``"_(9-1`.@,9O__QP6V(4$``````,<%D"%!``````#'!8XA -XM00``````QP5X(4$``````,<%:B%!``````#'!8`A00``````Q@41!4$``,<% -XM8R%!``````#'!5$A00``````QP57(4$`!````,<%22%!``````#H7,S__TB+ -XM!ZC__TB+!:P$00"_Y8-1`#'V -XM2(G",AI-1`.CTJ?__2(M]P$B% -XM_W45OWN340"^=)-1`##`Z*K!__](BWW`OB#!0`"ZZ,"!`.BWOP``2(7`=!!( -XMBW`0O\>340`PP.B"P?__2(L]BP)!`$B%_W0FOB#!0`"ZZ,"!`.B'OP``2(7` -XM=$=(BW`0O\>340`PP.A2P?__ZS6_EY-1`+[HP($`Z'$"``"%P'4BOYJ340"^ -XMZ,"!`.A>`@``A\2``3(GV9F8N#Q^$``````!(B?/K#F9F+@\?A``` -XM````2/_#B@.$P'0$/#IU\TR)_TB)VN@HI?__2(US`8`[`'7/3(GWZ%=H___H -XMHCX``/8%IQU!``AT"K\!````Z#]B``!(BQU8`4$`2(7;=#A!O_RH40!!O@$` -XM```/'X``````2(M[$#'VZ.6+``!(ASP(`!(@SX`=`R_V,"!`.CT7@``ZPJ_V,"!`.@X)0``@STY'4$``'02 -XMO]C`@0#HM7___T&^`0```.LA@STF'4$``'4+BST:'4$`Z)G2__^_V,"!`.B? -XM!0``08G&]@7Q'$$`$'0*OP(```#HB6$``(,]\AQ!```/E,!%A?8/E,$(P0^V -XMP8/P`4B!Q%@!``!;05Q!74%>05]=PTB+'5``00!(B=\Q]NB^9O__O_F340"^ -XM`911`$B)VND<^O__OSF440#HXF'__[\"````Z`AF___H8V'__XLXZ#QA__^_ -XM(+J!`+X9E%$`2(G",,#H"&/__[\"````Z-YE___H.6'__XLXZ!)A__^_(+J! -XM`+XDE%$`3(GR2(G!,,#HVV+__[\"````Z+%E__^054B)Y4%7059!5%-)B?=) -XMB?Z^M)-1`.CE9/__A0/A0H!``!)BQ]) -XM.U\(#X2*````08`^+P^$@````$B)WS'VZ.=E__])B<=,B?1)B=Y!OP````!T(K^VDU$`,?9, -XMB?(QR>BMAP``3(GW3(GFZ$(.``!!OP$```!$B?A;05Q!7D%?7<-52(GE05=! -XM5E-(@>R8````2(G[2(VU6/___^@!9/__B<$QP(7)#X6,````N0#P```CC6#_ -XM__\QP('Y`$```'5W2(G?Z"AA__^%P'0GZ$]?__^+..@H7___OR"Z@0"^`I11 -XM`$B)VDB)P3#`Z/%@__\QP.M$@#LO=0I(B=_H\`H``.LU3(LUS_U``$R)]S'V -XMZ#UD__])B<=(B=\Q]N@P9/__3(GW3(G^2(G:2(G!0;@O````Z,DL``!(@<28 -XM````6T%>05]=PV9F+@\?A```````54B)Y;_@E%$`OJ````"Z`0```+D@NH$` -XMZ$-C__^_`@```.A)8___D)"0D)"0D)"0@SV=`D$```^4P`^VP,-FD%5(B>5! -XM5T%6051328G_08!_!P-T58,]E!E!``!U'$R)_^BZHO__/0```(!U&$R)_^BK -XMHO__2(72=0M)C70/A/P```!-C;P4`#X3#````]@7^&$$`0'032(VS*`$``+^! -XME5$`,,#H;5W__T'V1Q@P=19!@'\'`G4$QD,&`4B)WTR)_N@PK?__BT,@A8#Z&()``!(B04S`4$`BPTY`4$`C5$!B14P`4$`B0/A1C____V!2T800!`=`J_"@```.AE7/__38NW@````.L09F9F+@\? -XMA```````38MV"$V%]@^$CP```$F+7A"`>P4`=.F#>R``=>.`>P<`==TQTDB+ -XM/;P`00"+!<(`00!F9F9F9BX/'X0``````$B)T3G!D@.?!R(0'VB36!`$$`2,'F`^B8"```2(G'2(D]9@!! -XM`(L-;`!!`(U!`8D%8P!!`(G(2(D`$$``````+^@#P`` -XMZ'`'``!(B04!`$$`QP4/`$$`E@```,<%"0!!``````"_L`0``.A+!P``2(D% -XM[/]``+](QH$`O@H```"Z*+%A`.C@7O__]@7F%D$`(`^$K@```+^5EE$`,?;H -XM)X8``(D%"0!!`+^BEE$`,?;H%88``(7`="V_HI91`#'VZ"6%``!(B<B-7?__2(G#ZPDQ_^C! -XM7O__B<._(+J!`+Z[EE$`B=HPP.C<7/__B=_H55___TR)]^CM````BQTW%D$` -XMZ"(#``"#^P!T%^F]````#Q^$``````#H^\+__^@&`P``Z$',__^%P'3MZ$C, -XM__]!B<3'1=@`````2(UUW+](QH$`Z!!;__](B<-(A=MT44R-?=P/'T``BD,' -XM!/X\`G(KQT78`0```$B)W^@86@``2('#*`$``+^_E5$`2(G>2(G",,#H'UK_ -XM_T'_Q+](QH$`3(G^Z']?__](B<-(A=MUMTF+/DB-5=B^@,Q``.B&M@``N`$` -XM``!%A>1T$;_FE5$`,,#H`+C__[@!````2(/$$%M!7$%>05]=PV9F9F9F+@\? -XMA```````54B)Y4%705934$B+'TB%VP^$B@```(L5&/Y```\?0`!(BPT)_D`` -XM._]0`!(BSW@_4``2,'F`^CO!0``2(D% -XMT/U``(L-UOU``$B+W#H`OW__TB+#1O[0``Y#1G[0`!S=DC!Z2!(BP4`^T``Z3/___](BX.0```` -XM2(7`#X2!````ZP602(M`"$B%P'1U2(MP$(!^!0!T[8!^!P!UYXL%[1%!`*A` -XM=!E(@<8H`0``OT2640`PP.A:5O__BP70$4$`J$`/A.S^__^_\)91`.@B5___ -XMZ=W^__^--`F)-93Z0`!(BSV%^D``2,'F`^BD`@``2(D%=?I``(L->_I``.FB -XM_O__2(G?Z/HX``"+640`PP.BL5?__2(/#<$B)W^C@^___Z3O^__^%R70*O]F640#H;5;_ -XM_[@!````@ST1$4$``'492(G?Z(>E___&0P@!2(G?Z.N____I!O[__TB#Q`A; -XM7<-F9F9F9F8N#Q^$``````!52(GE4U!(B?N*0P<\`W4.2('#*`$``+]"@U$` -XMZU:#>R``=%R+#H7)=#['1?0!````/`=T2SP&=4Y(C;,H`0``O_R540`PP.A4 -XMLO__QD,'!TB+>W!(C57TOH#,0`#H?K$``,9#!P#K&$B!PR@!``"_5X-1`$B) -XMWC#`Z-)4__]FD$B#Q`A;75!5E-(B?-)B?Y!@'X%`'4Y0?9&&!!U,HMS"(M+ -XM##GQ7<.0D)"0D)"0D)"0D)"0D%5(B>534$B)^^A"5?__2(7`=`=(@\0(6UW# -XM2(G?Z`X```!F9F9F9BX/'X0``````%5(B>534$B)^^AB5/__BSCH.U3__[\@ -XMNH$`OC*740!(B<)(B=DPP.@$5O__OP(```#HVEC__V8N#Q^$``````!52(GE -XM05=!5E-028G^Z`Y9__](B<-(_\-(B=_HP%3__TF)QTV%_W0<3(G_3(GV2(G: -XMZ%I4__],B?A(@\0(6T%>05]=PTB)W^AT____#Q]``%5(B>534$B)\^AR5O__ -XM2(7`=`=(@\0(6UW#2(G?Z$[___]F9F9F9BX/'X0``````%5(B>5!5E-)B?9( -XMB?OH+E7__TB%P'0%6T%>7<-(B=],B?;H"0```&8/'X0``````%5(B>5!5E-) -XMB?9(B?OH;E/__XLXZ$=3__^_(+J!`+X7534$B)^[X!````Z&U4__](A_O__9F9F9F8N#Q^$``````!52(GEN@$```#H\E3__X7`=0)=P^AG -XM4O__BSCH0%+__[\@NH$`O@*740!(B<(PP.@,5/__OP(```#HXE;__V:054B) -XMY5-(@>R8````2(G[2(VU:/___^@U5/__B<&X_____X/Y_W0LN`#P```CA7#_ -XM__\]`$```'42Z`)2___'`!4```"X_____^L(2(G?Z%U4__](@<28````6UW# -XM#Q\`54B)Y4%64TB#[!!(B?M(C77LZ!E2__](AQ(B%?__TB) -XMWTR)]NB]5O__2(7`=>A(B=_H4%?__TB#Q!!;05Y=PY"0D)"0D)!(B?A(BSU. -XMX"``2(G&,=+I_)/__V9F9BX/'X0``````%5(B>5!5T%6055!5%-(@>SX```` -XM28GV2(G[2(V]2/___[X``0``Z'5L__](C;TP____O@`!``#H9&S__TB)WTR) -XM]NB)T/__ZQL/'X``````OP$```"^8)M1`$B)PC#`Z,RP__]%,>WK%P\?@``` -XM``"Z`0```.A6&0``9@\?1```2(V]2/___^@DV?__2(7`=0[HFM#__X7`=>;I -XMNQ$``(`X"75Z187M=*=(_\!(B1)C7[YZ)MR__^#^`8/AY<# -XM``")P/\DQ5"740!F#Q^$``````!(C;U(____Z`30__](A<`/A-O^__](BPU< -XMZ$``#Q]``$B)PP^V$TB!^O\```!T"TB-0P'V1`H!"'7F2(V],/___TB)WN@' -XM$0``2(7;#X2>_O__2(G'Z"9R__^%P`^$CO[__^N<28/&_$R)]^A0L/__2(G# -XM2(7;#X0)`P``#Q]``$B-O4C___^^38U1`.A_T?__2(7`#X2E`@``2(G?2(G& -XMZ)NR__^%P'772(G?Z`^T___I.O[__TF#QOY(BP6WYT``9F9F9F9F+@\?A``` -XM````3(GW#[87L?](@?K_````2(G^="),C75(B=^^*X=1`+H'````Z&-0 -XM__^%P'4+2(/#![H!````ZS1(B=^^^891`+H%````Z$)0__](C4L%A8\*$`/E,;K`T`P]D"$]D@/19`A/9(B?YU,^L29F9F+@\?A```````BD8!2/_&A,!T0#S_=/(/ -XMML!"]D0X`0ATY^LO#Q]$``"*`4B)SH3`="$\_W4(2/_&2(GQZ^L/MLA"]D0Y -XM`0AU"DB-3@$\*70+Z]9(B?'K!)!(_\$/M@%(/?\```!T"$+V1#@!"'7J@_H! -XM=0P/MI4H____P>((ZQR#^D!T"('Z@````'4/@+TH____`+D`````#T71A,!T -XM!#PC=02%TG46OP(```"^4)Y1`$R)\C#`Z&VL___K4.CV;@``Z;'[__^_`0`` -XM`+[+GE$`,,#H4*S__^LSN@$```"X/@```$R)]I`/O@XYP0^$2`@``$C_QH3) -XM=>Z_`@```+ZAGE$`B<(PP.@;K/__3(GGOG2&40"Z!P```.BI3O__AUT1HL%DO!``(7`=#(QR4B+%7GP0`!F#Q^$``````")SDB+-/)( -XM@[[H`````'0*@$X:0(L%8O!``/_!.<%RX,<%4O!```````!,B>?H'A8``$4Q -XM[87`#X7#^O__QP4U\$```````$R)Y[YWG%$`Z+Q/__\QR4&`/`0`=$%*C7P@ -XM`;X[````Z+10__](B<,QR4B%VW0H2(N](/___TPYYTB)V7062(G83"G@2`'' -XMOCL```#HB%#__TB)P<8#`$B)C2C___],B>$V-;@%! -XM@/\Z3(GK=0U)C5X"08!^`3I)#T7=#[8#2#W_````=!%"]D0@`0AU5H3`=%(/ -XM'T0``$B)W[X1GE$`Z&-.__^`/`,`=#I(C4P8`0^V1!@!2#W_````2(G+=-A" -XM]D0@`0A(BD3____183_#X2Q`P`` -XM08#_*`^%H@````]7P`\I19!(C7VH2(UUD#'2Z,I1__^%P`^$L@4``$B+79!( -XMA=MT8XL53^Y```\?`$B+#4'N0``YRG,-2,'I($B+!2KN0`#K)HTT"8DU)^Y` -XM`$B+/1CN0`!(P>8#Z*_U__](B04([D``BPT.[D``2(MS$(U1`8D5`>Y``(G) -XM2(DTR$B+6PA(A=MUIDB-?9`Q]NA+I```3(MUJ$R)=:#ITP$``$B+7:B`.P!, -XMC7VP#X2(`0``2(G?3(GVZ)*4__^%P'582(G?3(GVZ,,?``!)B<1-A>1U(DB) -XMWTR)]KH!````Z,M#``!)B<1!@&0D&OU-A>0/A$0!``!(BPUZ[4``.0UX[4`` -XM#X/\````2,'I($B+!5OM0`#I$@$```]7P`\I1<`/*46P2(G?3(GV2(U=P$B) -XMVDR)^>BFCO__2(G?OL!E0`#HF:,``.L7#Q^``````(U1`8D5(^U``(G)3(DD -XMR)!,B?_H**,``$B)PTB%VP^$A@```$B)W^AD3?__28G%20'=2(G?3(GNZ`,? -XM``!)B<1-A>1U'DB)WTR)[KH!````Z`M#``!)B<1!@&0D&OU-A>1TK4B+#;[L -XM0``Y#;SL0`!S#4C!Z2!(BP6C[$``ZX&--`F)-:#L0`!(BSV1[$``2,'F`^@H -XM]/__2(D%@>Q``(L-A^Q``.E6____3(G_,?;HW*(``.LUC30)B35I[$``2(L] -XM6NQ``$C!Y@/H\?/__TB)!4KL0`"+#5#L0`"-40&)%4?L0`")R4R)),A,BW6@ -XMZQ9F9F9F9F8N#Q^$``````!)_\9,B76@00^V!D@]_P```'0.2(L-'N!``/9$ -XM"`$(==],B76H00^V!DB#^#H/AVW\__](N0$````"```$2`^CP0^#6?S__S'; -XM13'_BP7:ZT``AM` -XM`$B+/-D/MD\$B0/E<$/MLD!P8/Y`@^,808``+\!````OLZ=40`PP.ALIO__,=N#/2_K0``` -XM0;XH`0``=#%F9BX/'X0``````$B+!0GK0`!(BSS83`'WOB"Z@0#HN$O__TC_ -XMPXL%^^I``$@YPW+:OPH```"^(+J!`.BK2O__QP7]ZD``'P```$4QY.DJ!P`` -XM@SW.ZD```'1`2(L%N>I``$B+&+@H`0``2`'#2(G?OGB=40#H$4K__X7`=!%( -XMB=^^@)U1`.@`2O__AM[ -XM28U\)`?K%&9F9F9F+@\?A```````BE\!2/_'L/^`^_](B?YT-@^VPT+V1#`! -XM"'7EA-N(V$B)_G4BOP$```"^%)Y1`+ITAE$`,,#H!J7__^E1]/__D(I&`4C_ -XMQCS_=/:$P`^$+O3__P^VP$+V1#`!"`^%'_3__^O=2(G!2/_!2(L%J-U``$F) -XMST$/MA=%,?9(@?K_````="!)C4\!13'V]D0"`0AUW^L09F9F9BX/'X0````` -XM`$'_QD0[-6+I0`!S&D2)\$B+#4KI0`!(C3S!1(GNZ#X(``"%P'7:3(E]B(L% -XM7.E``$&`/P!U'8/X%']6@_@%#X6U````QP6J_T```0```.FF````@_@:#X14 -XM`P``@_@0#X1+`P``@_@.#X6+````3(G_Z*K4___I-0,``+\!````OC>=40`P -XMP.@4I/__Z1\#``"#P.N#^`9W8/\DQ8B740!(C;UP____OE#G0`#HGZ```.M& -XM3(GWZ(4,``#I,//__TB+5:B_`0```+Y3G5$`,,#HRZ/__S'`Z23^___'!0K_ -XM0``!````ZQ''!2+_0``!````ZP7H)QH``(L%C>A``(/X&P^'-0$``+E`!"(( -XM#Z/!#X,G`0``2(M%B(`X``^$!P$``$B+#4[<0`#K%`\?0`!)_\=F9F9F+@\? -XMA```````00^V%TB!^O\```!TXX32=`?V1`H!"'38BPTNZ$``@_D:?Q>#^0E_ -XM)(/Y!G5\2(G'3(G^Z'@>``#K;X/Y&W5J2(G'3(G^Z/8<``#K78/Y"G4-2(G' -XM3(G^Z-0>``#K2X/Y$74-2(G'3(G^Z.(R``#K.8/Y%74T2(N=9( -XMB46(@#@`28G'#X46____2(V] -XMZPUF#Q]$``!(B76(28GW@#X`#X3V````2(L%$=M``.L*#Q^``````$G_QT$/ -XMM@](@?G_````=/"$R71&]D0!`0AU$X#Y*'7@23GW=MM!@'__)'4'Z]*`^2AU -XM)P]7P`\IA6#___],B?=(C9U@____2(G>,=+H#TK__X7`=7[IV@$``$2)YTR) -XM^NA;!P``28U'`4&`/P!)#T3'9F9F9F9F+@\?A```````2(L-@=I``&8/'X0` -XM`````$B)Q@^V%DB!^O\````/A#W___](C48!]D0*`0AUXNDM____9F9F9BX/ -XM'X0``````$@%*`$``$2)YTB)QC'2Z.T&``!(B=_H-9P``$B%P'7@2(M%B.N: -XM2(,]$N9```!U4#'`2(L-]^5``(L5_>5``.L29F9F9F9F+@\?A```````2/_` -XM.=!S*4B+-,'W1A@P(`0`=>R`?@0`=>9(B37/Y4``9F9F9F9F+@\?A``````` -XM2(N](/___^CD1O__0;T!````2(N5*/___TB%T@^$'O#__TC_PDB+!9S90``/ -XM'T``2(G7#[8/2('Y_P```'092(U7`?9$`0$(=>9!O0$```"$R0^$Z.___^BC -XM[/__28G&13'_0;T!````@SU,Y4````^$RN___V8N#Q^$``````!$B?A(BPTF -XMY4``2(LUT -XM+,<%\.1``!4```!%,>3I'0$``$B+58B_`0```+YZG%$`,,#HYY___^GR_O__ -XM08/\`75)2(L-E>1``$B+`0^V4`2#XC^)%;'D0`"#^AD/CY8```"#^@P/A9X` -XM``!(BPVDSB``2(,Y``^$P````,<%A.1```````#IL0```$6%Y`^$A@```+\! -XM````ONN=40`PP.AYG___,=N#/3SD0```0;XH`0``="X/'X0``````$B+!1GD -XM0`!(BSS83`'WOB"Z@0#HR$3__TC_PXL%"^1``$@YPW+:OPH```"^(+J!`.B[ -XM0___13'DZT>#^AIU/\<%?_I```$```#K,X/Z$'4;QP5R^D```0```.LBQP7F -XMXT```````$4QY.L6@_H3=0Y(QP75XT```````$B+`42+($B+1:#I-OG__T6% -XM[71+BP67XT``A05]=PV:054B) -XMY4%7059!5%-)B?9)B?],B?>^(P```.BB0___3#GP#X2Y````2(7`#X2D```` -XM28L'28E'"$V)].L*#Q]``$C_PTF)W$&*!"2$P'1C/"-T7SQ<=59)C5PD`4&* -XM1"0!/"-U0$R)YDPI]DR)_TR)\NBK6/__28M'"$F+3Q!(*<%(@_D!?PQ,B?_H -XM,EC__TF+1PA(C4@!28E/",8`(TV-="0"B@.$P$D/1-SKE$R)X^N/32GT3(G_ -XM3(GF3(GRZ%Y8__],B?_H-EG__TF+1PC&``!-BS=,B?!;05Q!7D%?7<._G)Q1 -XM`+XW!```NO">40"Y_YY1`.@G0/__#Q^``````%5(B>534$C'!0_B0``````` -XMQP7]X4``(````,<%]^%```````"_``$``.C!Z/__2(D%VN%``,<%\.%``(`` -XM``#'!>KA0```````OP`$``#HG.C__[L8````2(D%R.%``$B+NZB740!(BX.P -XMEU$`2(UT./^+D[B740"Y`0```.@-.```BHN\EU$`B$@$BXO`EU$`B0A(@\,@ -XM@?NX`P``=7>FAE@``,,"_ -XM@)M1`%M!7EWI(9O__UM!7EW#9F9F+@\?A```````54B)Y4%7059!54%44TB# -XM[!A(B7W(B?�=,BR=%BVPD&$2)Z(/@!SG!=`R%P'0(AZ/"4``"%P'08@SVAX$```'4+3(GO3(G^Z)B5 -XM``!!_T<@38MV"$V%]G7+QT,8!!```$F#Q%!,B>=(B=[H=94``$B+1/K`TR)XT$)]42):QBX`0```)!(@\086T%<05U!7D%?7<.) -XM\[\%````Z.7F__])B<=!]L4!=`A!Q@0`#HN9,``$R)+;+>0`!,B6W0Z7,! -XM``"#X#^#^!T/A2P"``#_!8_>0`#I$@(``(/X#'4U2(L]CL@@`$F!Q2@!``!, -XMB>[H=Y,``+]HQR4B#Q`A;05Q!74%>05]=Z2AC``!%A?9T!D4) -XM=1CK7(,](MY```!T4TV-96`QVV9F9F9F+@\?A```````B=A(BPWWW4``3(L\ -XMP4F-?W!,B>[H5Y(``(7`=!B#/0C>0```=0M,B>=,B?[H_Y(``$'_1R#_PSL= -XMS]U``'+!08M%&$R);="#X`>#^`0/A:<```!(BT703(MH4$V%[0^$E@```$6% -XM]G0G#Q^``````$F+11!$"7`838MM"$V%[77OZW=F9F9F+@\?A```````@SUU -XMW4```'1838ME$$V-="1@13'_9F8N#Q^$``````!$B?A(BPU&W4``2(LW!,B>;HII$``(7`=!>#/5?=0```=0M,B?=(B=[H3I(``/]#($'_QT0[/1W= -XM0`!ROTV+;0A-A>UUEHL%*-U``$R+9=!!B40D'$B+#1#=0``Y#0[=0`!S#4C! -XMZ2!(BP7UW$``ZR:--`F)-?+<0`!(BSWCW$``2,'F`^ABY/__2(D%T]Q``(L- -XMV=Q``(U1`8D5T-Q``(G)3(DDR(,]Q]Q```!T34V-M"20````13'_ZR-(B=]( -XM@^^`3(GFZ+&1``!,B?=(B=[HII$``$'_QXL5D=Q``$$YUW,81(GX2(L-=MQ` -XM`$B+',&+0QQ!.T0D''S`2(/$"%M!7$%=05Y!7UW#OYR<40"^M`$``+JZG%$` -XMN<6<40#H.#K__P\?A```````54B)Y4%7059!5%-!B=8QTC')Z/EJ``!)B<=% -XMA?9T+TR)_S'VZ*<\__](BQ4PQB``3(G_2(G&,05]=Z7NU -XM__\PP+\!````OD&>40!(B=I;05Q!7D%?7>F_E?__OP$```"^+YY1`$R)^C#` -XMZ*N5__],B?];05Q!7D%?7>F;.___3(GG,?;H`3O__TB+%4K$(`!,B>=(B<:Y -XM`0```.C:- -XM``!,BR7XS4``13'M9F9F9BX/'X0``````$F)QD$/M@Y(@?G_````=`Y)C48! -XM0O9$(0$(=>3K(K'_13'MZQMF9BX/'X0``````$&*#TV)_D&)Q0\?@`````!- -XMC7X!@/D]#X3/````#[[!@_@J?QZ#^"$/A?(```!$B>B#X`2#^`$9P/?01`GH -XM@\@$ZVR#^#]U%42)Z(/@"H/X`1G`]]!$">B#R`CK4H/X.G4<3(G_ONB"40"Z -XM`@```.@,-___AB# -XMR`+K$T2)Z(/@`8/X`1G`]]!$">B#R`&#^/]T;.E'____#Q^``````$G_QD&* -XM#D&]!````(3)#X0\____@/D]#X0S____Z^&038U^`4+V1"`!"'0/38G^00^V -XM!D@]_P```'7E0?;%"'0^2(M]P$B+=^ -XM)````.C[./__2(7`="M,B??H73G__^L/2(UUN$R)]^@_3___28G'2(MUN$B%]G0/OP(```!,B?(P -XMP.@TD___38G^0?;%`7111(LEU.Y``,<%RNY```````!(BWW`2(MUR.B]70`` -XMA@E6P``3(GW,?8QTNBY8P``28G&1(DEC^Y` -XM`$V)].L#13'D2(M]P$B+=05]=PY"0D)"0D%5(B>5!5T%6055!5%-0 -XM18G'28G,2(E5T$F)_DDIU$PI]D6%_P^5P`^VV$@!\TF-?!P!Z$G=__])B<5, -XMB>],B?9(B=KH.#+__TZ--"-%A?]T!4:(?"O_3`'K2(G?2(MUT$R)XN@8,O__ -XM0\9$-0``3(GH2(/$"%M!7$%=05Y!7UW#54B)Y4%7059!54%44TB#[!A)B=1( -XMB77`2(G[OY@!``#HV]S__^L,9@\?A```````2/_#B@N`^0ET]H#Y('3Q28G& -XM2(G?Z$8V__](_\!T#$B)Q^BIW/__28D$)#'`2(E%T$F+-"1%,,F_,@```$F) -XM\$R)\.L;9F8N#Q^$``````!(_\9(_\-F+@\?A```````1(HS00^^SH/Y6W\V -XM@_DG#X>"`0``2+H`!@```0```$@/H\IS;$6$R0^%:0$``$V%P`^%P0```$4Q -XMP$4PR4C_P^N^@_E<#X5,`0``2(U3`42*G+````@_EM#X^(````@_EF#X6V````0;8,Z:X```!(A05]=PV9F+@\?A```````2(L/2(L%OL=``&8/'T0``$F)R$$/MC!(@?[_ -XM````=!U)C4@!]D0&`0AUY3#),@$`2`]%T.O2@_@??P>#^`EUR.L%@_@@=0:$R70AZ[N#^")T!8/X)W6Q0#CQ -XM=`R$R70#0(C.0(CQZZ`PR>N<2(D73(G`PP\?1```54B)Y4%7059!54%44U!) -XMB<](B=-)B?9)B?Q(B5W03(UMT.L69F9F+@\?A```````2/_#2(E=T$G_Q$PY -XM^W1NB@N`^2H/A(4````QP$TYY@^$T0```(#Y/W36@/E<=19(_\-(B5W0,Y,B?KHKP```(G!,<"% -XMR0^$B0```$B+7=#KC3'`03H,)'5[ZX--.>8/E,`/ML#K;@\?A```````28U, -XM)`$QP$TY]$F)S'172/_#9F9F9F8N#Q^$``````"X`0```$DYWW0\B@-(_\,\ -XM*G3M2/_+/#]TQF8/'T0``#'`33GF=!],B>=,B?9(B=I,B?GHZ/[__XG!2?_$ -XMN`$```"%R73:2(/$"%M!7$%=05Y!7UW#9F8N#Q^$``````!52(GE2(L.2#G1 -XM#X2N````1(H!08#X(70&08#X7G4A2/_!2(D.0`^^_^C2____A<`/E,`/ML!= -XMPP\?A```````08#X7'442/_!2(D.,0$M=2U,C4D",5!5T%6 -XM055!5%-02(G328GU28G^08!]``!T0TB)7=!,B>^^)0```.@A,?__28G'387_ -XM=#=-B?3K"@\?0`!)_\5)_\1-.>]T*T&*!"1%,?:$P'1X13'V03I%`'5OZ]], -XMB??HIS#__TB)`^M@38GO38GTZPI!@'\!`'0_2?_'3(GC13'V9BX/'X0````` -XM`$R)_TB)WNAU+___ALA3"GC2(M%T$B)&$V)YNL2 -XM3(GGZ$PP__](BTW02(D!38GF3(GP2(/$"%M!7$%=05Y!7UW#54B)Y4%7059! -XM54%44U!)B^^)0```.A),/__2(G#2(7;=!=(B=Y,*>Y, -XMB?=,B>KHD$7__TC_PTF)W4R)]TR)YDR)^NA\1?__3(GOZ-0O__],B?=(B<9, -XMB>I(@\0(6T%<05U!7D%?7>E81?__#Q^$``````!52(GE05=!5E-02(GS28G^ -XM3"GS2(U[`>@$UO__28G'3(G_3(GV2(G:Z/,J__]!Q@0?`$R)^$B#Q`A;05Y! -XM7UW#54B)Y4%7059!54%44U!)B==)B?1(B?N_`0```$@IWTP!Y^BYU?__2(E% -XMT$F)Q>L*18AU`$G_Q4C_PTPYXW0Z1(HS08#^7'7H2/_#3#GC="%$BC-!#[[V -XM3(G_Z%$O__](A05]=PV9F9F9F9BX/'X0``````#'`2#GW=`X/OD;_2/_..=!U -XM[DB)\,.0D)"0D)"0D)"054B)Y5-02(UU]+](QX$`Z/PI__](A!`$R)]NC.+/__08G' -XMOPC'@0!$B?[H'BK__TF)Q$V%Y'4?2(MUV$R)]^A*(@``28G$OPC'@0!$B?Y, -XMB>+H9RK__TF#O"3H`````'0A28V<).@```!(B=\Q]NBZ@P``2,=#"`````!( -XMQP,`````28-\)'``=!Y)C5PD<$B)WS'VZ)2#``!(QT,(`````$C'`P````!! -XMQT0D&```!`!(BW70]D8($'020<9$)`152(M%R$F)A"0(`0``]@6%XT``@'08 -XM2(/&2$B+505]=PV9F9F9F -XM9BX/'X0``````%5(B>5!5T%6055!5%-(@^PH2(E-P$B)5;A(B?)(B57(2(G[ -XM,1(QT70`````.L0D$'!Q0)!#[Y&_T$QQ4G_SDDYW@^$XP```+](QX$` -XM3(GV1(GIZ.@G__],B?%(*=E(.PW3XD``#X^C````OTC'@0")QNB9*/__28G' -XM387_#X2+````0?9'"`@/A(````!-A?9,B?!U"TB)W^A2+/__2`'8,GH_";__[](QX$`B<;HP"?__TB)P3'`2(7)=#.* -XM00@D&$&\`````$P/1>&$P$@/11U=RT``,1T$TB+1;A,B2!(BT7`2(D8 -XMN`$```!(@\0H6T%<05U!7D%?7<,/'T``ZPYF9F9F9BX/'X0``````%5(B>5! -XM5T%605132(/L$$F)]DF)_TV%]G4.3(G_Z!XK__])B<9-`?XQR4TY_DR)\'0) -XM00^^3O])C4;_3#GX=!'!P0(/OE#_,=%(_\A).<=U[[](QX$`3(G^3(GRZ"\F -XM__]!B<2_2,>!`$2)YNCO)O__2(G#2(7;=6A,B7782(U5V+\`L6$`3(G^Z)(E -XM__](B<-(BT783"GX2(D#9L=#"```2,=#&`````!(QT,0`````$C'0T`````` -XM2,=#.`````!(QT,P`````$C'0R@`````OTC'@0!$B>9(B=KH[R;__P^W0PBH -XM"'4LBPVYRD``C5$!B16PRD``B4L@@\@(9HE#"$B+`T@[!7S@0`!V!TB)!7/@ -XM0`!(B=A(@\006T%<05Y!7UW#9F8N#Q^$``````!(BX<(`0``2#L%RLE```^4 -XMP4B%P$B-0!`/E,((RD@/105[LR``PV8N#Q^$``````!52(GE4U!(B?!(B?M( -XMA^_2,>!`$B)WDB)PNC/)/__OTC'@0") -XMQNB3)?__2(7`=`2`2`@!2(/$"%M=PP\?`%5(B>534$B)\$B)^TB%P'4+2(G? -XMZ$2(G"Z$\D__^_2,>!`(G&Z!,E__]( -XMA!``2(UX$'4,N@!E0`#H -XM!'\``.L%Z'UG__^_2,>!`$B)WNB@*/__2(7`=W`` -XM=%6*0P0D/SP5=$Q,C:LH`0``3(GOZ/C! -XM^O__A\Q]NA2)___3(GO2(G&Z'=M__^%P`^$ -XM=00``/8%)-U``(!T#[]LH%$`3(GN,,#HER'__TR)[TR)K6C____HV";__TB) -XMPTB%VP^$G@```$B+19!(C8P8*`$``$0/OJ0#)P$``$4Q[>L89I!(BT60#[Z$ -XM&"8!``!!P<0"03'$2/_+2(/[`7192(M%D$R-M!@G`0``OTC'@0!,B?9(B'HOR'__[](QX$`B<;H@R+__TB%P'01387M=`F+2"!!.TT@?0-) -XMB<5,B?E(BXPP.BZ(/__3(GO3(GVN@$```#HFE$``$B%P'44 -XMOZN@40!,B>XPP.B6(/__Z3L#```/5\`/*46P2(M-D/9!&B!)B<5T($B)1:A( -XMB4602(U]J$B-=;!,B?+HM2C__^D.`0``2?_%08I-`(#Y"73T@/D@=.](B460 -XM3(EMH`\?@`````!,B>[K&V9F+@\?A```````2/_&2(EUH&8/'X0```````^V -XM!D@]_P```'3EA,`/A)D```!(BPW^N$``]D0(`0AU,CPD=1%(B=],B?;H,$L` -XM`$B+=:#KRCQ<=;:`?@$`=`I(@\8"2(EUH.NV2/_&2(EUH.NM3(GON@$```#H -XMX!H``$C_1:!(C7VP2(G&Z,!Y``!,BVV@ZQ%F+@\?A```````2?_%3(EMH$$/ -XMMD4`2#W_````#X1(____2(L->;A``/9$"`$(#X0V____Z]1,.>Y,BW6(=#M, -XMB>^Z`0```.A^&@``2(U]L$B)QNAB>0``3(MUB.L<9F9F+@\?A```````0?]$ -XM)"!F9BX/'X0``````$B-1;!)B<5F#Q^$``````!,B>_H&'H``$B)PTB%VP^$ -XM@0```/8%@=I``(!T$TB-LR@!``"_$XM1`##`Z/`>__](BWV82(G>Z`1]``!( -XMA(P8#!_H#Y -XM`@^#;_____9#&#`/A77___\\`G4&0<9$)`8!3(GG2(G>Z'!N___I6____TB+ -XM?9#HHB3___8%]]E``(#I$P$``/8%Z]E``(!T$$F-=4B_AZ!1`##`Z%T>__]) -XM@\40#U?`#RE%P$B+G6C___](B=\Q]NC1(___2(G?2(G&3(GJ3(UMP$R)Z>A\ -XM9/__3(MUB.L69@\?1```0?]$)"!F9BX/'X0``````$R)[^@(>0``2(G#BP5[ -XMV4``N8`````AR$B%VP^$B@```(7`=`^_$XM1`$B)WC#`Z-P=__](B=\Q]KH! -XM````Z.T8``!(B<-(BWV82(G>Z-Y[``!(A(P8#!_H#Y`@^#:?____9#&#`/A6____\\`G4& -XM0<9$)`8!3(GG2(G>Z$IM___I5?___X7`3(NU>/___TB-7:!T"K\*````Z`P= -XM__]!_TPD($B+?9A(BW6(Z'I[``!(BX5P____2(7`2(GG^___2('$B``` -XM`%M!7$%=05Y!7UW##Q]$``!52(GE05=!5E-0Z($```!(BQT:PD``ZQ@/'X0` -XM`````$B#PPA)B=])BQ]F#Q]$``!(A=MT2DR+Z-YZ``!,B??H -XMMB+__TF+'^NQ2(/$"%M!7D%?7<-F#Q]$``!52(GE05=!5D%505132('LF``` -XM`$F)_TR)O7C___]!BT<8J0``@``/A<,$```-``"``$&)1QCV!;_70`"`=!=) -XMC;(P8#!_H#Y`@^#R0(``$'V1A@P -XM#X7!`@``/`)U!,9#!@%(B=],B?;H4VO__^FI`@``J0``$`!T5+](QX$`OKF? -XM40"ZNY]1`+FJ`0``Z.X;__^_2,>!`(G&Z+(<__](A<`/A$@"``!)B8<(`0`` -XM2(/`$$R)_TB)QNBC,O__2<>'J````/RH40#I@P,```]7P`\I19`/*46`28V_ -XM*`$``$B)O6#____H12#__TB%P`^$9@$``$F-C`+Y``$F)1A!- -XMB7X@2<=&&`````!!QT8H`````$B)W^A8Q?__28E&"$F#O^@`````=0M)@W]P -XM``^$D0$``/8%A-1``(`/A*8!``"_Z)]1`##`Z/88___IE0$``$G'AP@!```` -XM````28V'*`$``$F)AZ````!)QX>H````_*A1`.DX`0``_T,@28N&H````$B) -XM@Z````!)BX:H````2(F#J````$V+I@@!``!-A>1T'DF-AB@!``!(B8.X```` -XM2(N%'H.@P` -XM`(7`=1_V!4O30`"`=!9)@\1(OTJ@40!,B>9,B?HPP.BW%___2(N->/___XM! -XM&*@'=0:#R`&)01A!@$X:"&9F9F9F+@\?A```````2('$F````%M!7$%=05Y! -XM7UW#3(EUP$B-19!(B46X28M&$$B+>#A(C56XOO`700#H[',``/8%T=)``(!T -XM"K\PH5$`Z"D8__](B9U@____2(U]@$R)]NA&<0``38G\3(UMD$R-=#B^\!=!`$R)\NB39,BZ5@____38FFH````$F-AJ````!(B85( -XM____13'_,,E(A=NX`````$B)A6C___],B>!T:NM32(G'Z$`<___V!9710`"` -XM3(GX=!2_%J%1`.CJ%O__3(GX#Q^``````$B)PTB+0QA(A/___P^$E`$``$F+?PA-BW<@Z+D:__])@\9P -XM2&/`2(F%=(BY5P____Z+$7__^%P'6=2(N=_H -XM*AK__TB--!A)C10T,[H,A7__[](QX$`B<;H]A7__TB) -XMPTB%VP^$*O___TF+=Q!(C7LHZ(UR``!(A<`/A!3___^_,````.@:P/__28G& -XM3(NM6/___TR)[^AXP/__28D&28M'"$F)1@A)B5X038E^&$B+A5#___])B48@ -XM0<=&*`````!!_TZU9,B;5X____]@5+ST`` -XM@`^$7@$``+_MGU$`3(GF,,#HNA/__^E*`0``#Q]$``"_\,:!`$B)WNCS;``` -XM2(M;&$B%VW032(-[&`!T#.OA28G>3(NE8/___TC'A6C___\`````387V#X0( -XM`0``28M&($B%P'4328L^,?:Z`0```.A[#@``28E&($F+3A!-BVX8387M#X2L -XM````38UF$$V-?AA,B?/K%68/'X0``````$R-8Q!,C7L82(M#($B)B`@!``!) -XMBT4@2(7`=11)BWT`,?:Z`0```.@D#@``28E%($F+#"1)BU402(MS($B)Q^A, -XM!P``28M%($@[A7C___]T*H!(&H!)BWT(Z`*___])BTT@2(F!J````$F+12!( -XMC8@H`0``2(F(H````$F+'TB+2Q!,BVL8387M#X5Q____3(NE8/___TB+G7C_ -XM__](B8L(`0``2(M[$.BC&/__3(GGZ*N^__](B4,03(GV3(UMD.E]`0``2(N= -XM>/____9#&`=T1$B#>W``=0I(@[OH`````'0S,4B)Q^C2O?__2(N-2/___TB)`8"]1____P%U9TR+8Q!,B>?H -XMTQ;__TF+3Q`K`4B)BP@!``!,8_!'BCPT0\8$-`!,BV,03(GGOB\```#H*1/_ -XM_TB%P$B->`%)#T3\Z'F]__](B8.H````2(M#$$:(/#!(B[5H____ZT-(B[5H -XM____ZSI(QX,(`0```````$R+^+P```.C<$O__2(7`2(UX`4D/1/[H -XM++W__TB)@Z@```!(B[5H____2(7V=$F_\,:!`.@O:@``9F9F9F9F+@\?A``` -XM````3(UMD.LJ9BX/'X0``````$R-;9!,B>],B?;H\6X``$B)W^C)%O__9@\? -XMA```````38MU`$V%]G0O38UN"$F+7A"#>R@`=>E(BSOHH1;__TB+0QA(APCHCQ;__^NM_T@HZZA(C46`#Q]``$B+&$B%VW0K2(U#"$R+^_2,>!`$B) -XMWDB)PN@O$/__OTC'@0")QNCS$/__2(7`=!Y(BPVGM$``9H-A"/N`2`@$2(D% -XME[1``$B#Q`A;7<,PP+\"````OC^?40!(B=I(@\0(6UWI9F___V8/'T0``%5( -XMB>532(/L&+\(QX$`O@0```"Z*+%A`.B3$O__2,=%Z`````"[_*A1`$B-5>B_ -XM`+%A`+[\J%$`Z#,/__](BTWH2"G92(D(9L=`"```2,=`&`````!(QT`0```` -XM`$C'0$``````2,=`.`````!(QT`P`````$C'0"@`````2(D%U+-```^W2`B) -XMRH/*!&:)4`CVP0AU+(L57+1``(UR`8DU4[1``(E0((/)#&:)2`A(BPA(.PT? -XMRD``=@=(B0T6RD``2(LU5YT@`$B->!#HKE+__[](QX$`O@0```"Z`+%A`.C* -XM$?__QP4(M$```````$B-=?2_2,>!`.CR#O__2(7`="-(C5WT9@\?A``````` -XM@&`(][](QX$`2(G>Z(\3__](A_=I]1`.L6@_@"=0>_?I]1`.L* -XM@_@$=0R_G9!1`##`Z!$-__^%V[\I````00]%_+Z(N8$`Z*P1__^%VW6HOPH` -XM``"^B+F!`.B9$?__OX:?40`PP.C=#/__28U]*+X@%D$`Z)]I``"_"@```+Z( -XMN8$`Z'`1__^_C9]1`##`Z+0,__])C7TXOB`600#H=FD``+\*````OHBY@0#H -XM1Q'__[^6GU$`,,#HBPS__TF#Q1!,B>_H#U'__[\*````OHBY@0#H(!'__[]( -XMQX$`3(GVZ-,1__])B<5-A>T/A05]=PV9F9F9F -XM9BX/'X0``````$B-=T@PP+_CB%$`Z:`+__]52(GE05=!5D%505132(/L&$F) -XMS$B)5=!(B?-)B?Y-C6YP3(GOZ,9D``"%P'0Y2(U[8$R)]NAV90``BD,'B,&` -XMP?Z`^0)S'/9#&#!U&CP"=05!QD8&`4R)]TB)WN@?6___ZP1!_T8@BT,82(E= -XMR(/@!X/X!'5S2(M%R$B+6%#K$$B+6PAF9F8N#Q^$``````!(A=MT5$R+>Q!, -XMB>],B?[H3&0``(7`=-A)C7]@3(GVZ/QD``!!BD<'B,&`P?Z`^0)S'4'V1Q@P -XM=;<\`G4%0<9&!@%,B?=,B?[HHUK__^NA0?]&($B+6PCKITF#Q$A,B67`13'M -XM3(GG,?;H,A#__TF)QTB+7=!(@\-(2(E=T$B)WS'VZ!D0__],B>=,B?Y(B=I( -XMB<%%,<#HM=C__TF)Q+\(QX$`3(GFZ/4+__^_",>!`(G&Z,D+__])B<=,B>?H -XM;A#__TV%_W14]@6^Q4``@$B+7 -XMZ'QC``"_,````.@BM?__2(G#3(EMT$V+;PA,B>\Q]NC=#O__3(EUR$F)QDR) -XMYS'VZ,P.__],B>],B?9,B>)(B<%%,<#H:-?__TB)`TF+1PA(B4,(3(E[&$C' -XM0R``````2(M%T$B)0Q#'0R@`````0?]'*$B+1GQ8@``D%5(B>5!5T%6055!5%-028GW28G^13'D3(GP9@\?1```3(LH -XMLP%-A>UT%4F-10A-BV4008M,)"`PVT$[3R!\X?8%%L1``(!T%$&+5R!)C7=( -XMO\:@40`PP.B$"/__@/L!=2SV!?3#0`"`=`J_[Z!1`.A,"?__3(GW3(G^2(/$ -XM"%M!7$%=05Y!7UWI8V(``+B`````(P7$PT``08M4)"!!.U<@=1R%P'1+O_Z@ -XM40!(@\0(6T%<05U!7D%?7>D!"?__AY,B?I(@\0(6T%<05U!7D%?7>D^90``2(/$"%M!7$%=05Y!7UW#9F9F -XM9F9F+@\?A```````54B)Y4%7059!54%44TB#["A)B==)B?:)^P]7P`\I1!``=!](B<;HLDO__[](QX$`3(GFZ-4,__](A;H -XMD4K__TB)PTR)]S'V2(G:,F(``$B# -XMQ"A;05Q!74%>05]=PY"0D)"0D)"0D)"054B)Y;^0QX$`O@H```"Z*+%A`.AH -XM"O__OQBB40"^'J)1`+I:[@``N0$```#H/P(``$B)!9#"0`"!2!@`(`,`OQ^B -XM40"^(Z)1`+JL#@``N0$```#H&`(``$B)!6'"0`"!2!@`(`,`OR2B40"^+J)1 -XM`+K$EN8`N0$```#H\0$``$B)!2K"0`"!2!@`(`,`OR^B40"^-Z)1`+ITA@X` -XMN0$```#HR@$``$B)!0O"0`"!2!@`(`<`7<-F+@\?A```````54B)Y4%64TB# -XM[!!)B?Y(B77H2(U5Z+\HL6$`3(GVZ%T&__](B<-(QT,0`````$&`/BUU$$&` -XM?@%L=0G'0Q@``!``ZP?'0Q@`````QT,@`````,=#'`````#'0P0`````QT,H -XM````@$C'0S``````QT,X````@$C'0T``````2(V[H````$C'@Y@````````` -XM2,>#D`````````!(QX.(`````````$C'@X``````````2,=#>`````!(QT-P -XM`````$C'0V@`````2,=#8`````!(QT-8`````$C'0U``````Z-HG``!(QT-( -XM`````$C'@P@!````````2,>#``$```````!(QX/X`````````$C'@_`````` -XM````2,>#Z`````````!(QX/@`````````$C'@]@`````````2,>#(`$````` -XM``!(QX,8`0```````$B)FQ`!``#&0P@`2(G82(/$$%M!7EW##Q^$``````!5 -XM2(GE05932(/L$(G328G^2(EUZ$B-=>CH\PC__TB+=>A,B?>)PHG9Z!,```!( -XM@\006T%>7<-F+@\?A```````54B)Y4%7059!54%44U!!B&D`````````!)QX:(`````````$G'AH``````````2<=& -XM>`````!)QT9P`````$G'1F@`````2<=&8`````!)QT98`````$G'1E`````` -XMZ.(E``!)QT9(`````$G'A@@!````````2<>&``$```````!)QX;X```````` -XM`$G'AO``````````2<>&Z`````````!)QX;@`````````$G'AM@````````` -XM2<>&(`$```````!)QX88`0```````$V)MA`!``!!QD8(`+^0QX$`B=Y,B?+H -XMS`3__TR)\$B#Q`A;05Q!74%>05]=PV8N#Q^$``````!52(GE05=!5D%44TB# -XM[!!)B?],BR9-A>1T7DR-==AFD$F+7"002,=%V`````!(B=],B?;HR`;__TB+ -XM==A(B=^)PKD!````Z.7]__](B<-,B?](B=[HAUP``/9#&`1T#TB#PU!,B?]( -XMB=[HPEP``$V+9"0(387D=:A(@\006T%<05Y!7UW#9F8N#Q^$``````"#/;&] -XM0```=`:X`0```,.+1QC!Z`:#X`'##Q^``````(,]K;U```!T!K@!````PXM' -XM&,'H"(/@`<,/'X``````@SUIO4```'0&N`$```###[='&&:IA$`/E<`/ML## -XM9I!(B?DPP+\=CU$`2(G.Z5!5E.)^X/C -XM^`^$A0$``$&^(`````\?A```````B=H/O,I!#T3.N`$```#3X(G#]],ATSW_ -XM_Q\`?W(]__\/``^/B0```#W__P<`#X^@````/?\?```/C[0````]_P\```^/ -XMMP```#W_`P``#X^Z````/?\!```/C[T````]_P````^/P````(/X?P^/Q0`` -XM`(/X/P^/R@```(/X"`^%S0```+\XHE$`Z=D````]```@``^%U0```/8%?+Q` -XM``$/A,@```"_H*)1`.FW````/0``$``/A;,```#V!5J\0``!#X2F````OY&B -XM40#IE0```#T```@`#X61````]@4XO$```0^$A````+^7HE$`ZW8]`"```'5V -XMOX>B40#K:#T`$```=6B_>Z)1`.M:/0`$``!U6K]THE$`ZTP]``(``'5,OVVB -XM40#K/CT``0``=3Z_9*)1`.LP/8````!U,+]9HE$`ZR*#^$!U)+]0HE$`ZQ:# -XM^!!U![]#HE$`ZPJ#^"!U#+])HE$`,,#H,0#__X7;#X6)_O__6T%>7<,/'T`` -XM#[Y/!X/Y!7<,N*BB40#_),V(H5$`N,"B40##N+NB40##N.6640##N+"B40## -XMN)R#40##9F9F9BX/'X0``````%5(B>5!5E-(@^P0B?N_8*-1`.BI`/__2(UU -XM[+^0QX$`Z&L`__](AQFD$B)QXG>Z+8```"_D,>!`$R)]N@)!?__ -XM2(7`=>2_^ZA1`.AJ`/__OX"C40#H8`#__TB-=>R_D,>!`.@B`/__2(7`=%5( -XMC5WL9@\?A```````BT@8]L$'=2Z`>`0`=2CWP0```@!U($B+4!!(!2@!``!( -XMA=)(#T30O\VB40!(B<8PP.@J__[_OY#'@0!(B=[HC03__TB%P'6XZ',X``"_ -XM"@```.C)_O[_Z"3Q__](@\006T%>7<-F9BX/'X0``````%5(B>5!5T%64U") -XM\TF)_D'V1A@'#X2:`0``OU&C40#HK/_^_X/[`@^%DP```$&+=B"_V*)1`##` -XMZ+/^_O]!#[=&&&:I,`1U>$&+?BB!_P```(!U,4F+=C!(A?9U+$$/OD8'A<`/ -XMA%4!``"#^`5W#+ZHHE$`_R3%Z*%1`+[`HE$`Z8L!``!)BW8PZ((@``!!#[Y. -XM!X/Y!7<,NJBB40#_),VXH5$`NL"B40`/'X``````O^ZB40!(B<8PP.@Q_O[_ -XMD$F#?F``="Q-C7Y@OR*C40`PP.@9_O[_3(G_OB`E00#HW%H``+\*````OHBY -XM@0#HK0+__TF+=DA(A?9T$TB!QB@!``"_+J-1`##`Z.']_O])C;8H`0``OT2C -XM40`PP.C._?[_08M&&(/@!X/X!'4'OTVC40#K%H/X`G4'OTJC40#K"H/X`74, -XMOTZC40`PP.B>_?[_08M^&.C5^___28U^<+X@)4$`Z%=:``"_"@```+Z(N8$` -XMZ"@"__])C;[H````OO`?00#H-UH``+_[J%$`Z#W^_O]!]D88!'0:38MV4.L/ -XM28M^$(G>Z%7^__]-BW8(387V=>Q(@\0(6T%>05]=P[]3HU$`Z`?^_O_I\O[_ -XM_[J[HE$`Z=C^__^ZY991`.G._O__NK"B40#IQ/[__[J<@U$`Z;K^__^^NZ)1 -XM`.L3ON6640#K#+ZPHE$`ZP6^G(-1`+\&HU$`,,#HU/S^_^F?_O__9F9F9F9F -XM+@\?A```````N)#'@0##9BX/'X0``````$B-MR@!```PP+_CB%$`Z9W\_O^0 -XMD)"0D)"0D)"0D)"054B)Y5-02(GS2(D]@*)``$B)'8&B0`!(B=_HP0'__TB) -XM!7JB0`!(C7@"Z"&H__](B05RHD``2(L58Z)``$B)QTB)WN@(_?[_2(L%4:)` -XM`$B-2`%(B0U&HD``2(L-1Z)``,8$`2](BP4\HD``2(L-+:)``,8$"`!(@\0( -XM6UW#9I!52(GE05=!5D%44TF)_TR+-0NB0`!(BS4,HD``28V_*`$``$R)\NBE -XM_O[_A<`/A7P```!+C;PW*`$``#'V,=+H[/;__TF)QDV%]G1C28._Z`````!U -XM$TF-O^@```!)C;;H````Z`=6``!)BUYP2(7;=#U-C7=P9BX/'X0``````$R+ -XM8Q!,B?=,B>;HT50``(7`=!-)@\1@3(GG3(G^Z'Y5``!!_T<@2(M;"$B%VW71 -XM6T%<05Y!7UW##Q^$``````!52(GE05=!5D%505132('LF````$B)O4C___^* -XM!4^A0`"$P`^%40$``.AB_O__2(G#2(E=@$B-?8B^"@```+I0L6$`Z'C^_O]( -XMC77,2(G?Z*S[_O](B<-(A=L/A,P```!,C7V(3(UET`\?A```````2,=%T``` -XM``"`>P0`#X61````]T,8`$`"``^%A````$R-LR@!``!,B?>^+P```.A]_/[_ -XM2(7`2(UP`4D/1/9(B;,8`0``3(G_3(GBZ*#^_O]!B<5,B?]$B>[H\OO^_TF) -XMQDV%]G4P2(NS&`$``+]0L6$`3(GBZ);Z_O])B<9)QP8`````28E>"$R)_T2) -XM[DR)\N@J_/[_28L&2(F#(`$``$F)'DB+?8!(C77,Z*#__O](B<-(A=L/A43_ -XM__](C7V(2(UUS.C'^O[_2(7`=#5,C76(2(U=S&8N#Q^$``````!(BPA(BT`( -XM2#G(=`=(B8@@`0``3(GW2(G>Z%+__O](A0/A+<7``!(.8D0`0``#X6J -XM%P``]@42M4``0'0E2(V1*`$``$B)R[\@NH$`OJ.C40`PP.B8^_[_2(G93(NA -XM(`$``$DYS`^$6Q<``$B-@2@!``!(B85P____#Q^``````$B+A7#___^`."^Y -XM``````^%40$``$B+!5R?0`!(A0`"028U._[H!````28/^`0^$ -XMC````$*`?##^+TF)SG7B28G.ZYT\+W4&28/'`NN3,=NQ+NL;9F9F9BX/'X0` -XM`````$P!\(@,`T&*3!\!2/_#A,D/A$K___^`^2\/A$'___])C00>2(LUWH<@ -XM`$B-5OY(.=!V(T@!]DB)-D__](B04XGD``08H,'^NJ -XM2(L%*YY``.NA28G6Z1G___](BST:GD``Z!VD__](B<%,B:5`____28V$)"@! -XM``!(B85X____08"\)"@!```O#X4\`0``28G,2(L%XYU``$B%P'432(L]5X<@ -XM`.AJH___2(D%RYU``,8`+T&^`0```$R+O7C____K(9!(BP6QG4``3`'PB`P# -XM20'?38UT'@%F9BX/'X0``````$&*#X3)#X0'`0``ZPH/'P!!BD\!2?_'@/DN -XM=`DQVX#Y+W5KZ^M!BD))B<[KG3PO=09)@\<"ZY,QV[$NZQMF -XM9F9F+@\?A```````3`'PB`P#08I,'P%(_\.$R0^$2O___X#Y+P^$0?___TF- -XM!!Y(BS5NAB``2(U6_D@YT'8C2`'V2(DU6X8@`$B+/=2<0`#H)Z/__TB)!SK*F8N#Q^$``````!(BP71FT``3`'PB`P#20'<38UT'@%F9BX/'X0` -XM`````$&*#"2$R0^$ZP```.L*9I!!BDPD`4G_Q(#Y+G0),=N`^2]U>NOJ08I$ -XM)`$\+G5$08!\)`(O=49)@\0#2(L%=IM``&9F9F9F+@\?A```````28U._[H! -XM````28/^`0^$C````$*`?##^+TF)SG7B28G.ZXT\+W4&28/$`NN#,=NQ+NL; -XM9F9F9BX/'X0``````$P!\(@,`T&*3!P!2/_#A,D/A#K___^`^2\/A#'___]) -XMC00>2(LU?H0@`$B-5OY(.=!V(T@!]DB)-6N$(`!(BSWDFD``Z#>A__](B078 -XMFD``08H,'.NJ2(L%RYI``.NA28G6Z0G___])C4;_2(L-MII``$&`?`[^+W0- -XMQ@0!+TR+I7#____K.4R+I7#___])B<;K+69F9F8N#Q^$``````!(BP6!FD`` -XM3`'PB`P#20'<38UT'@%F9BX/'X0``````$&*#"2$R0^$ZP```.L*9I!!BDPD -XM`4G_Q(#Y+G0),=N`^2]U>NOJ08I$)`$\+G5$08!\)`(O=49)@\0#2(L%)II` -XM`&9F9F9F+@\?A```````28U._[H!````28/^`0^$C````$*`?##^+TF)SG7B -XM28G.ZXT\+W4&28/$`NN#,=NQ+NL;9F9F9BX/'X0``````$P!\(@,`T&*3!P! -XM2/_#A,D/A#K___^`^2\/A#'___])C00>2(LU+H,@`$B-5OY(.=!V(T@!]DB) -XM-1N#(`!(BSV4F4``Z.>?__](B06(F4``08H,'.NJ2(L%>YE``.NA28G6Z0G_ -XM__](BSUJF4``Z&V?__])B<9%A/]U-DR)]TB+78!(B=[H=O?^_T&)QTR)]^@[ -XM^?[_187_#X0*`P``2(E=@$4PY$R++0290`#I5@,``+H!````0;&80`#&`"]!O`$```#K+F9F9F9F+@\?A```````2(L%P9A``$P! -XMX(@,`TD!W4V-9!P!9F8N#Q^$``````!!BDT`A,D/A-P```#K"6:008I-`4G_ -XMQ8#Y+G0),=N`^2]U:^OK08I%`3PN=3=!@'T"+W4Z28/%`TB+!6F80`"028U, -XM)/^Z`0```$F#_`$/A(P```!"@'P@_B])B>__]( -XMB078ET``08I,'0#KJ4B+!/___^LW3(NM>/___TF)Q.LK9F8N#Q^$``````!(BP6! -XMET``3`'@B`P#20'=38UD'`%F9BX/'X0``````$&*30"$R0^$W````.L)9I!! -XMBDT!2?_%@/DN=`DQVX#Y+W5KZ^M!BD4!/"YU-T&`?0(O=3I)@\4#2(L%*9=` -XM`)!)C4PD_[H!````28/\`0^$C````$*`?"#^+TF)S'7A28G,ZYP\+W4&28/% -XM`NN2,=NQ+NL:9F9F+@\?A```````3`'@B`P#08I,'0%(_\.$R0^$2O___X#Y -XM+P^$0?___TF-!!Q(BS4^@"``2(U6_D@YT'8D2`'V2(DU*X`@`$B+/:260`#H -XM]YS__TB)!9B60`!!BDP=`.NI2(L%BI9``.N@28G4Z1C___](BSUYED``Z'R< -XM__])B<5,B?=,B>[HCO3^_XG#@[UD____`'0(3(GWZ$OV_O]!M`&%VW0I3(GO -XMZ#SV_O]!M`%,BRT2ED``183_=63IOP$``$4PY$&W`4B)78!)B=U-A>T/A4,- -XM``!,BRWKE4``08#_`70\183D#X63`0``2(N]:/___TB+78!(B5V`2(F]:/__ -XM_TB)WN@.]/[_QH5D____`(7`QH5C____`.G/`@``2(L%RI5``$B%P'432(L] -XM/G\@`.A1F___2(D%LI5``,8`+T&^`0```$V)[^LL9F9F+@\?A```````2(L% -XMD95``$P!\(@,`TD!WTV-=!X!9F8N#Q^$``````!!B@^$R0^$W````.L*#Q\` -XM08I/`4G_QX#Y+G0),=N`^2]U:^OK08I'`3PN=39!@'\"+W4Y28/'`TB+!3F5 -XM0`"028U._[H!````28/^`0^$C````$*`?##^+TF)SG7B28G.ZYT\+W4&28/' -XM`NN3,=NQ+NL;9F9F9BX/'X0``````$P!\(@,`T&*3!\!2/_#A,D/A$K___^` -XM^2\/A$'___])C00>2(LU3GX@`$B-5OY(.=!V(T@!]DB)-3M^(`!(BSVTE$`` -XMZ`>;__](B06HE$``08H,'^NJ2(L%FY1``.NA28G6Z1G___])C4;_2(L-AI1` -XM`$&`?`[^+W0CQ@0!+TR+O7#____K244Q_\:%9/___P!,B[5H____Z70!``!, -XMB[UP____28G&ZRF30`"028U._[H!````28/^`0^$C````$*` -XM?##^+TF)SG7B28G.ZYT\+W4&28/'`NN3,=NQ+NL;9F9F9BX/'X0``````$P! -XM\(@,`T&*3!\!2/_#A,D/A$K___^`^2\/A$'___])C00>2(LU_GP@`$B-5OY( -XM.=!V(T@!]DB)->M\(`!(BSUDDT``Z+>9__](B058DT``08H,'^NJ2(L%2Y-` -XM`.NA28G6Z1G___](BSTZDT``Z#V9__])B<9%A.1U.4R)]TB+78!(B=[H1O'^ -XM_T&)QTR)]^@+\_[_QH5C____`,:%9/___P%%A?])B=T/A=<"``#IR0(``$&_ -XM`0```,:%9/___P%(BP7@DD``2(7`=1-(BSU4?"``Z&>8__](B07(DD``Q@`O -XM0;P!````ZR4/'T0``$B+!;&20`!,`>"(#`-)`=U-C60<`69F+@\?A``````` -XM08I-`(3)#X3<````ZPEFD$&*30%)_\6`^2YT"3';@/DO=6OKZT&*10$\+G4W -XM08!]`B]U.DF#Q0-(BP59DD``D$F-3"3_N@$```!)@_P!#X2,````0H!\(/XO -XM28G,=>%)B"(#`-! -XMBDP=`4C_PX3)#X1*____@/DO#X1!____28T$'$B+-6Y[(`!(C5;^2#G0=B1( -XM`?9(B35;>R``2(L]U)%``.@GF/__2(D%R)%``$&*3!T`ZZE(BP6ZD4``ZZ!) -XMB=3I&/___TF-1"3_2(L-I)%``$&`?`S^+W0-Q@0!+TR+K7C____K-TR+K7C_ -XM__])B<3K*V9F+@\?A```````2(L%<9%``$P!X(@,`TD!W4V-9!P!9F8N#Q^$ -XM``````!!BDT`A,D/A-P```#K"6:008I-`4G_Q8#Y+G0),=N`^2]U:^OK08I% -XM`3PN=3=!@'T"+W4Z28/%`TB+!1F10`"028U,)/^Z`0```$F#_`$/A(P```!" -XM@'P@_B])B6__](B06(D$``08I,'0#KJ4B+!7J0 -XM0`#KH$F)U.D8____2(L]:9!``.ALEO__28G%3(GW3(GNZ'[N_O^)PT6%_W0( -XM3(GWZ#_P_O_&A6/___\!A=MT$4R)[^@L\/[_QH5C____`>L)387M#X5+!P`` -XM2(N]2/___^@NQ?__ZQ=F9F8N#Q^$``````!(BX50____2(/`"$B+`$4Q[4B% -XMP`^$%P<``$B+>!!(B850____Z#8B__])B<=!@#\O#X51`0``13'V@+UD____ -XM`4R+I6C___^X``````^%V0,``$B+!:Z/0`!(A"(#`-)`=U-C60<`69F+@\? -XMA```````08I-`(3)#X0N`@``ZPEFD$&*30%)_\6`^2YT"3';@/DO=6OKZT&* -XM10$\+G4W08!]`B]U.DF#Q0-(BP4ICT``D$F-3"3_N@$```!)@_P!#X2,```` -XM0H!\(/XO28G,=>%)B"(#`-!BDP=`4C_PX3)#X1*____@/DO#X1!____28T$'$B+-3YX(`!(C5;^ -XM2#G0=B1(`?9(B34K>"``2(L]I(Y``.CWE/__2(D%F(Y``$&*3!T`ZZE(BP6* -XMCD``ZZ!)B=3I&/___\>%7/___P````!,BR5/CD``@+UD____`4B+G6C___]! -XMO@````!,BVV`=1M,B?],B>9(BY5P____Z&L&``!(B<-!O@$```"`O6/___\! -XM3(EM@'4?3(G_3(GF2(N5>/___^A#!@``28G%QX5<____`0```$B)WTR)[N@K -XM[/[_08G$187V=`A(B=_HZ^W^_T6%Y'4+387M#X4.!0``ZQ&#O5S___\`=`A, -XMB>_HRNW^_\>%7/___P````!,BR69C4``@+UD____`4B+G6C___]!O@````!U -XM&TR)_TR)YDB+E7#____HP04``$B)PT&^`0```("]8____P%,BVV`=1],B?], -XMB>9(BY5X____Z)D%``!)B<7'A5S___\!````2(G?3(GNZ('K_O]!B<=%A?9T -XM"$B)W^A![?[_187_#X0G!```@[U<____``^%+00``.DF_?__28U$)/](BPTB -XMC4``08!\#/XO=`W&!`$O3(NM2__](B04(C$``08I,'0#KJ4B+!?J+0`#KH$F)U.D8____2(L]Z8M` -XM`.CLD?__28G$N`$```")A5S___^`O6/___\!3(MM@`^%B@(``$B+!;Z+0`!( -XMAB(#`-)`=]-C6P=`69F+@\?A```````08H/A,D/A-T```#K"@\?`$&*3P%) -XM_\>`^2YT"3';@/DO=6OKZT&*1P$\+G4V08!_`B]U.4F#QP-(BP4YBT``D$F- -XM3?^Z`0```$F#_0$/A(T```!"@'PH_B])BN=/"]U!DF#QP+KDS'; -XML2[K&V9F9F8N#Q^$``````!,`>B(#`-!BDP?`4C_PX3)#X1*____@/DO#X1! -XM____28U$'0!(BS5-="``2(U6_D@YT'8C2`'V2(DU.G0@`$B+/;.*0`#H!I'_ -XM_TB)!:>*0`!!B@P?ZZE(BP6:BD``ZZ!)B=7I&/___TF-1?](BPV%BD``08!\ -XM#?XO=`W&!`$O3(N]>/___^LX3(N]>/___TF)Q>LL9F9F+@\?A```````2(L% -XM48I``$P!Z(@,`TD!WTV-;!T!9F8N#Q^$``````!!B@^$R0^$W0```.L*#Q\` -XM08I/`4G_QX#Y+G0),=N`^2]U:^OK08I'`3PN=39!@'\"+W4Y28/'`TB+!?F) -XM0`"028U-_[H!````28/]`0^$C0```$*`?"C^+TF)S77B28G-ZYT\+W4&28/' -XM`NN3,=NQ+NL;9F9F9BX/'X0``````$P!Z(@,`T&*3!\!2/_#A,D/A$K___^` -XM^2\/A$'___])C40=`$B+-0US(`!(C5;^2#G0=B-(`?9(B37ZD8____2(L]28E``.A, -XMC___28G%0;X!````3(GG3(GNZ%CG_O^)PX.]7/___P!T"$R)Y^@5Z?[_A=MU -XM"DV%[74]Z0?Y__]%A?8/A/[X__],B>_H]NC^_^GQ^/__2(G'2(F]:/___TB) -XMWN@/Y_[_ABU -XMZ/[_387M=1KV!0:>0`!`=#N_(0```+X@NH$`Z"CG_O_K*DB+E4C___](BX(0 -XM`0``2(NU0/___TB+CA`!``!(B8H0`0``2(F&$`$``/8%PIU``$!T&+\@NH$` -XMON.(40!(BY5X____,,#H2^3^_TB+C4#___](BXD@`0``2(N%2/___T@YP4F) -XMS`^%NNC___8%@)U``$!T#[\*````OB"Z@0#HHN;^_TB!Q)@```!;05Q!74%> -XM05]=PTB)^69F9F8N#Q^$``````"X`0```$@Y\70.2(N)$`$``#'`2#GY=>C# -XM#Q^``````%5(B>5!5T%6055!5%-028G628GW28G]2(L%NH=``$B%P'432(L] -XM+G$@`.A!C?__2(D%HH=``,8`+T&\`0```.LO9F9F9F9F+@\?A```````2(L% -XM@8=``$P!X(@,`TD!W4V-9!P!9F8N#Q^$``````!!BDT`A,D/A-P```#K"6:0 -XM08I-`4G_Q8#Y+G0),=N`^2]U:^OK08I%`3PN=3=!@'T"+W4Z28/%`TB+!2F' -XM0`"028U,)/^Z`0```$F#_`$/A(P```!"@'P@_B])B,__](B068AD``08I,'0#KJ4B+!8J&0`#KH$F)U.D8____28U$)/](BPUT -XMAD``08!\#/XO=`;&!`$OZRY)B<3K*68/'X0``````$B+!5&&0`!,`>"(#`-) -XM`=]-C60<`69F+@\?A```````08H/A,D/A,P```#K"@\?`$&*3P%)_\>`^2YT -XM"3';@/DO=5OKZT&*1P$\+G4S08!_`B]U-DF#QP-(BP7YA4``D$F-3"3_N@$` -XM``!)@_P!=']"@'P@_B])B+__](B05XA4``08H,'^NJ2(L%:X5``.NA -XM28G4Z2G___])C40D_TB+#56%0`!!@'P,_B]T!L8$`2_K+TF)Q.LJ9BX/'X0` -XM`````$B+!3&%0`!,`>"(#`-)`=Y-C60<`69F+@\?A```````08H.A,D/A,P` -XM``#K"@\?`$&*3@%)_\:`^2YT"3';@/DO=5OKZT&*1@$\+G4S08!^`B]U-DF# -XMQ@-(BP79A$``D$F-3"3_N@$```!)@_P!=']"@'P@_B])BMM(`!(BSUDA$``Z+>*__](B058 -XMA$``08H,'NNJ2(L%2X1``.NA28G4Z2G___](BSTZA$``2(/$"%M!7$%=05Y! -XM7UWI+XK__Y"0D)"0D)"0D)"0D)"0D#'VZ0G>_O]F#Q^$``````!52(GE2(/L -XM$(E]_$B-??SH;.'^_[\`R($`OH````"ZM*-1`$B)P>B%XO[_Q@5=A$```+@` -XMR($`2(/$$%W#D)"0B3U.A$``PV8/'X0``````$C'1S``````2,='*`````!( -XMQT<@`````$C'1Q@`````2,='$`````!(QT<(`````$C'!P````###Q^$```` -XM``!52(GE05932(/L$(G328G^2(EUZ$B-=>A(C57DZ%\```"#^/]U,(M5Y$B+ -XM=>A,B??HFP,```M8&(E8&(/C2H/[0'4O2(/`'+\!````OLZE40!(B<+K%4AC -XMP$B+%,4PI5$`OP$```"^J*51`##`Z/X\__](@\006T%>7<,/'T0``%5(B>5! -XM5T%64U!)B==)B?9(B?OHZ.#^_T&)!XG`2&G(P=XQ-4C!Z21KR4V)PBG*28L. -XM2"G9@_I&?SZ#^C-_?H/Z&P^/N````(/"^X/Z#@^'Y@(``/\DU;"D40"`.RH/ -XMA=8"``"`>P%$#X7,`@``N`H```#ICP(``(/Z1P^%N0(``#V-C`X`#X6N`@`` -XM2(/Y"`^%I`(``$B)W[Z4J%$`N@@```#HZ-[^_XG!N`(```"0A_O^)P;@#````Z["#PN2#^@X/ARX"``#_)-4XI%$` -XM/;#@`P`/A1P"``!(@_D'#X42`@``2(G?OKVH40"Z!P```.A6WO[_B<$QP.EM -XM____@#LE#X7N`0``@'L!1`^%Y`$``+@.````Z:P%& -XM#X7'`0``N`T```#IB@$``(`[/`^%M`$``+@&````ZW^__^`.SX/ -XMA6X!``"X!0```.F%````@#L_#X5;`0``N`0```#K=8`[0`^%2P$``#'`ZVB` -XM.R$/A3X!``"X`@```.M8@#LE#X4N`0``N`,```#K2(`[(0^%'@$``(![`40/ -XMA10!``"X#````.G7````@#LA#X4!`0``@'L!1@^%]P```+@+````Z;H```"` -XM.RH/A>0```"X`0```$B#^0$/A=4```#IU0```(`[*@^%QP```(![`48/A;T` -XM``"X"0```.F`````/3N_`P`/A:@```!(@_D'#X6>````2(G?OHRH40"Z!P`` -XM`.CBW/[_B<&X!0```.GV_?__@#M`=7N`>P%$=76X"````.L[/5SF`P!U9TB# -XM^0=U84B)W[ZUJ%$`N@<```#HI=S^_XG!N`$```#IN?W__X`[0'4^@'L!1G4X -XMN`<```!(@_D"=#+K*ST%AP,`=21(@_D'=1Y(B=^^K:A1`+H'````Z&+<_O^) -XMP;@$````Z7;]__^X_____TB#Q`A;05Y!7UW#9@\?1```54B)Y4%7059!54%4 -XM4U")T$F)]$F)_[^(R($`3(G^3(GBB<'H^-G^_T&)QK^(R($`1(GVZ+C:_O]) -XMB<5-A>UU,$R)9=!(C570OX"Q80!,B?[H6]G^_TF)Q4''11@"````OXC(@0!$ -XMB?9,B>KH\-K^_T&+71CVPQ`/A9````"#/;!_0```=`R)V(/@!H/X!'4'ZWOV -XMPP)T=DF-?1SH4-G^_TF)QDV%]G0W]L,"=#=,B??H&][^_TF)QTF-=P%,B>_H -XM3/3^_TR)[TR)_DR)\NB>\_[_08M=&(/C_4&)71CK)X/+$.LE28M%`$F)10A, -XMB??HW-W^_TR)[TB)QDR)\NAN\_[_08M=&(/+&$&)71A,B>A(@\0(6T%<05U! -XM7D%?7<.054B)Y4%64TB#[!!(B?M(B77H2(UUZ$B-5>3HZ,C8_O]!B<:_B,B!`$2)]NB(V?[_2(G#2(7;=%6+0QB# -XM/;I^0```=`2H"'5%J`1U0;^(R($`1(GVZ`_<_O_V0Q@"=0A(BSOH`=[^_TB) -XMW^CYW?[_ZQQ(8\!(BQ3%,*51`+\!````OO.E40`PP.C;-___2(/$$%M!7EW# -XM9I!%,<#K"V9F+@\?A```````54B)Y4%7059!5%-(@^P018G'08G,28G62(G[ -XM2(EUV$B-==A(C574Z*3Z__^#^/\/A:$```"+5=1(BW782(G?Z-S]__](B532(/L&$B)^TB)=?!(C77P2(U5[.@C^?__@_C_ -XM=2^+5>Q(BW7P2(G?Z%_\__](B<.+0QAFJ<`!=&.H0'0P2(U3'+\!````OGRG -XM40#K/TACP$B+%,4PI5$`OP$```"^&:91`##`Z,,U__\QP.M!J`)T1$B-4QR_ -XM`0```+ZFIU$`9F9F9BX/'X0``````##`Z)DU__]F#Q^$```````QP/9#&`)U -XM"DB+0PC&``!(BP-(@\086UW#J(!TXTB+0PC&``!(BP.`.`!UU$B-4QR_`0`` -XM`+[+IU$`Z[0/'T``54B)Y5-(@^P82(G[2(EU\$B-=?!(C57LZ$/X__^#^/]U -XM/(M5[$B+=?!(B=_H?_O__TB)PXM+&/;!0'082(U3'+\!````OGRG40`PP.C_ -XM-/__BTL8N`$```#VP0)T`C'`2(/$&%M=PV8/'X0``````%5(B>5!5T%60513 -XM2(/L,$F)]TF)_DF+'DB)7W4@0;B074$`ZR],B67(2(/#`DB)7=#'1=@`````Z98```"_`0```+[_ -XMIE$`,,#H<33__T&X8%U!`$B#PP)(C77(2(G?3(GZ,5!5E-(@^P028G^2(U%[$B)]TB)UHG*3(G!28G`Z$L```!( -XMB<,QP+F`R($`2#G+="Y(B=_HM-C^_TR)]TB)QDB)VNA&[O[_N`$```"#?>P` -XM=`U(B=_H8]G^_[@!````2(/$$%M!7EW##Q]$``!52(GE05=!5D%505132(/L -XM:$R)1:A(B4V0B56D28GW28G\0<<``````$R)9=!-C70D`4$/OD0D`8/X*'0% -XM@_A[=1A!N&!=00"#^"AT/(/X>W4@0;B074$`ZR],B76X28U,)`)(B4W`QT7( -XM`````#';ZT>_`0```+[_IE$`,,#HS3+__T&X8%U!`$F-?"0"2(UUN#';3(GZ -XM,@?1`'P -XM@^#^1(GQ*<&#^0$/A6$!``#H`0``00]/QTC_PSG#?,U-C7PD'+\@NH$`OAZ/40!,B?HP -XMP.C$TO[_OV&G40!,B?XPP.BU+O__08M$)!A,BWV(@\@!08E$)!A(8P65=T`` -XM2#U=`0``?PA,B23%\,B!`/_`B05]=T``3(GO3(G^BU6DZ$],B?J+3:1,BT6HZ#,-``!)B<5-A>V+3:0/A8<` -XM``"X@,B!`(7)0;W(R($`3`]%Z$&#_O]T<$V%_W0Q08/^!WP/08U&^<'H'T6- -XM=`;Y0='^08/^!G4Q28M7.$F+=T"_1:91`##`Z,DM___K.DB+1:C'``$```!( -XMBW702(G?Z#&E__])B<7K'TF+3SA)BU=`26/&2(LTQ3"E40"_CZ91`##`Z+TL -XM__](C7VXZ*0H``!(BT702"G82(M-D$B)`4R)Z$B#Q&A;05Q!74%>05]=PZB` -XM#X3<_?__28M$)`C&``!)BP0D@#@`#X7'_?__28U4)!R_`0```+[+IU$`Z:/] -XM__\/'P!52(GE05=!5D%505132(/L.(G3B5VD2(EUJ$F)_DB-?<"^``$``.AU -XMZO[_Q@77=4```(7;#X0_`0``3(U]P.L@2(U(`4B)3____TR)YTB+=:B+5:1(C4VX3(U%M.@$^___ -XM28G%N(#(@0!).<5T"KC(R($`23G%=4R#/>:)0```=3=(BUVXB@4#=4``A,!U -XM%[\!````OL6F40!(B=I,B>$PP.@/+O__20'=$```4V)YNDM____3`-E -XMN$V)YNDA____2(M=N$R)[^@5T_[_3(G_2(G&3(GJZ*?H_O])`=R#?;0`38GF -XM#X3W_O__3(GOZ+_3_O]-B>;IY_[__TR-;9F9F9F8N#Q^$``````!,B?/K#F9F+@\?A``` -XM````2/_#B@.$P'0$/"1U\TB)WDPI]DR)[TR)\N@BZ/[_@#L`#X30````@'L! -XM)'4?2(M%R$B+3=!(*<%(@_D"?9),B>_HFN?^_TB+1X@,B!`$DYQW0%33GG=4F#/:6(0```=31(BT7(2(M- -XMT$@IP4B#^0%_#$R)[^A*Y_[_2(M%R(H+2/_#2(U0`4B)5#X0)____3(G_Z('2_O])B=[I^?[__TB+1;^_TB+!?IR0`#&``!(BSWH -XM_B,B!`$2)_NCIS/[_2(G#2(7;=2],B6W02(U5T+^`L6$` -XM3(GVZ(S+_O](B!(@\086T%< -XM05U!7D%?7<-FD$B+1R!(@\`5!5T%6055!5%-(@^Q828G/28GV2(E]J$B+ -XM6B!(C4,<2(E%D/9#&`)T.4R)_^B[S_[_38GT28G&28UV`4B)W^CIY?[_2(G? -XM3(GV38GF3(GZ3(E]H.@TY?[_@&,8_4B)79CK2DB+`TB)0PA,B?_H>\_^_TB) -XMWTB)79A(B<9,B?I,B7V@Z`7E_O_K(P\?`$TIYDB+?:A,B?9,B>+H[N3^_TR+ -XM==!F+@\?A```````38GTZPYF9BX/'X0``````$G_Q$&*!"2$P'0$/"1U\4R) -XMYDPI]DB+?:A,B?+HK^3^_T&`/"0`#X1;`0``38UT)`)%#[YL)`%!@_U[=`9! -XM@/TH=1BX8%U!`$&#_2AT6T&#_7MU/[B074$`ZTY!@/TD=!Q(BT601#HH=1-( -XMBT68@'@=`'4)2(M=H.GJ````2(M]J+X"````3(GBZ$+D_O_I7?___[\!```` -XMOO^F40`PP.A<*?__N&!=00!,B??_T$R)]DF)QDR)==!!BAZ`^R0/A`S___]- -XMB?=)*?=(BWV03(GZZ,K+_O^%P`^%\O[__TB+19A"@'PX'``/A>+^__^`^SI( -XMBUV@=6U(BT682HU$.!S'105]=Z;_B_O]F9F9F9F8N#Q^$``````!52(GE05=!5E-(@^P8 -XMOXC(@0"^"@```+J`L6$`Z`_+_O](QT78`````$B-==B_2IQ1`.BYR_[_3(M] -XMV+^(R($`ODJ<40!,B?J)P>@1R/[_08G&OXC(@0!$B?;HT"_@+%A`+Y*G%$`Z'+'_O](B05]=PV8N#Q^$ -XM``````!52(GE05932(/L$+_0J%$`Z&O'_O](C77LOXC(@0#H+7<,/'P!52(GE05=!5D%505132(/L*$F)_DB-?;B^``$``.A^ -XMX?[_2(UUU+^(R($`Z)#&_O](B<-(A=L/A"=(B<9,B>KHC.#^_TB+1?HP-_^_TB+1*#X#Y?'\0@/DZ=_$/MLE(#Z/(<^CK!8#Y?77A2(GXPV9F9F8N#Q^$```` -XM``!52(GE05=!5E-028GV2(G[]D,8`G0T3(GWZ#+)_O])B<=)C705]=PTB+0PA(BTL02"G!2(/Y -XM`7\,2(G?Z"W>_O](BT,(2(U(`4B)2PC&`"!,B??HULC^_TB)WTB)QDR)\DB# -XMQ`A;05Y!7UWI7M[^_Y"0D)"0D)"0D)"0D)"02,<%S7=``+"Q80!(QP7*=T`` -XMV+%A`$C'!>=W0```LF$`2,<%7'=``"BR80!(QP7!=T``4+)A`$C'!/___XF-9/___TB)E5C___](B;5P____ -XM28G_28L!N2D```"#?1`H2(E%H+I]````#T31B56,0;X!````3(UEP.L*13'V -XM2(M%H$V)[P^^"#M-C`^$@@(``(3)#X1Z`@``2/_`2(E%H/8%P7U```)T%@^^ -XM,+_GJ%$`3(GZ,,#H,,+^_TB+1:!(#[X`2(L$Q>#3@0!(A^)WDB-5'_59B)PTB+1;!$B#!-B?Y,B??H0)+__TB)1:A(AT```@^$Z?W__[\/J5$`3(GN -XM,,#H2L#^_^G5_?__2(MUH+_]J%$`,,#HA1W__TB+1:!(_\!F9F9F9BX/'X0` -XM`````$B)1:`/O@A(_\`[38QT!(3)=>U(_\A-A?]T&$B+C7C___^#.0!T#$R) -XM_^@1QO[_2(M%H$B+C7C____'`0````"*"$&_@,B!`(3)=`E(_\!(B46@ZQ"_ -XM'ZE1`##`Z`\=__](BT6@2(N-4/___TB)`4R)^$B!Q(@```!;05Q!74%>05]= -XMPV9F9BX/'X0``````%5(B>5!5T%6055!5%-(@^PX2(G[2(U]P#'VZ`';_O]( -XMB5VP3(UUL$R)]^B1D/__2(E%J$B%P'1+,=M,C7VH3(UEP&9F9F9F+@\?A``` -XM````2(M%L$2**,8``$R)_XG>3(GB,1T*$B+ -XM0PA(BTL02"G!2(/Y`7\,2(G?Z#79_O](BT,(2(U(`4B)2PC&`"!)BQ9)*==( -XMB=],B?[H==G^_^M!187D=!1(B=^^`@```+H_J5$`Z%S9_O_K*$B+0PA(BTL0 -XM2"G!2(/Y`7\,2(G?Z.'8_O](BT,(2(U(`4B)2PC&`"ZX`0```%M!7$%>05]= -XMPP\?0`!52(GE05=!5E-(@^PX2(G[2(U]T#'VZ*79_O](B5W`3(UUP$R)]^@U -XMC___2(E%N$B%P`^$DP```+$!3(U]T&:02(M%P(H8Q@``]L$!=2A(BT782(M- -XMX$@IP4B#^0%_#$R)_^A9V/[_2(M%V$B-2`%(B4W8Q@`@2(M]N$B+=<"Z+P`` -XM`.@HE/__2(MUP$B%P'4,2(M5N$@IUDR)_^L,2/_`2"G&3(G_2(G"Z'+8_O]( -XMBT7`B!A,B??HI([__TB)1;@PR4B%P`^%=?___TB+1=C&``!(BT702(/$.%M! -XM7D%?7<-F9F9F9F8N#Q^$``````!52(GE05932(G328G^A?9T*$B+0PA(BTL0 -XM2"G!2(/Y`7\,2(G?Z*;7_O](BT,(2(U(`4B)2PC&`"!)BSY)BW8(NB\```#H -XM=I/__TF+=@A(A5!5T%6055!5%-(@^Q(B],B6V0 -XMZQ$/'X``````2(U1`4B)5__1:3K#4V)[_]- -XMI'@NZP--B>](BTW(2(M5T$@IRDB#^@$/CPO___],B??HH]7^_T&*!TB+3 -XMZ'F0__])B48(28D&22L?28E>$$B+1.__](A534$B)^TB+.^C_O_[_2(M[&.CVO_[_2(G?2(/$ -XM"%M=Z>B__O\/'X0``````$B+%S'`@'H!:'4<#[YR`CG.=`@QP$"`_CIU#$B# -XMP@)(B1>XX-N!`,,/'X0``````%5(B>5!5E-(@^P02(G[2(UUZ.B)U?[_28G& -XM2(M]Z$B%_W0*2(G>,,#HLQ;__TR)\$B#Q!!;05Y=PP\?@`````!(QP55XX-N!`,-F#Q]$``!52(GE -XM05932(G[Z&&^_O])B<9)C7X!Z,5D__]-A?9T,TR)\4B)PF8N#Q^$``````!( -XM#[XS2(7V>`Q(BSW044``0(IT=P)`B#)(_\)(_\-(_\EUW4+&!#``6T%>7<,/ -XM'P!52(GE05932(G[Z`&^_O])B<9)C7X!Z&5D__]-A?9T,TR)\4B)PF8N#Q^$ -XM``````!(#[XS2(7V>`Q(BSV(3T``0(IT=P)`B#)(_\)(_\-(_\EUW4+&!#`` -XM6T%>7<,/'P!52(GE05932(G328G^A?9T*$B+0PA(BTL02"G!2(/Y`7\,2(G? -XMZ,;2_O](BT,(2(U(`4B)2PC&`"!)BSY)BW8(NBX```#HEH[__TB%P'0.28L6 -XM2"G02(G?2(G&ZPU)BQ9)BW8(2"G62(G?Z.'2_O^X`0```%M!7EW##Q^````` -XM`%5(B>5!5T%605132(G308GT28G^28L^28MV"+HN````Z#N.__])B<=-A?]T -XM2$6%Y'0H2(M#"$B+2Q!(*<%(@_D!?PQ(B=_H)=+^_TB+0PA(C4@!2(E+",8` -XM($G_QTF+=@A,*?Y(B=],B?KH8=+^_T&\`0```$2)X%M!7$%>05]=PV9F9F9F -XM9BX/'X0``````%5(B>5!5T%64U!!B5!5T%6055!5%-( -XM@>R8````2(G328G^2(MS"$B-O6#___^Z`0```.@QN?[_08G'187_=%M,C;5@ -XM____1(G_3(GV,=(QR>A#NO[_3&/@3(GGZ&AA__](B<-$B?],B?9(B=I,B>'H -XM)+K^_[^SBE$`OD*I40!(B=HPP.C0$O__2(G?Z)B[_O^[@,B!`.E>!```BX5H -XM_____\")18!(BTL82(E-D(M+*(E-F(7`?A.#^`M\&L=%@`H```"X"@```.L, -XMQT6``0```+@!````2&/X2,'G!.CF8/__2(E%B$B-?;@Q]NBGT/[_2(U]J$R) -XM=:CH.H;__TB)1:!(A<`/A,T#``!%,>WK6`\?A```````187D2(N=6/___P^% -XMOP```$B+1T/A3C___](BYU8____2(F=6/___TB-?;A(B=KH_L[^_T&\`0```$R+?9#I -XM?P```$2)]T2)K53___],C:U@____3(GN,=(QR>ARN/[_3&/X3(G_Z)=?__]( -XMB<-$B?=,B>Y$BZU4____2(G:3(GYZ$RX_O^_LXI1`+Z*J5$`2(G:,,#H^!#_ -XM_TB)W^C`N?[_2(N=6/___^GC`0``#Q]``$G_QV9F9F8N#Q^$``````!!B@>$ -XMP`^$JP$``#PF=3'&1=4FQD76`#'`#Q^``````#M%@'YNOUBI40!F#Q]$``!( -XMC775,,#HE1#__TG_Q^O`/%P/A>8```!!BD1U*4B+1`$2(M-B$R+-`%(BUP!"$F#_O]U$$B#^_]U"K]LJ5$` -XMZ7/___]$*?.%VP^.*/___T6%[70N187D=2E(BT7`2(M-R$@IP4B#^0%_#4B- -XM?;CH),W^_TB+14$/MDUT+D6%Y'4I2(M%P$B+3P/E<%$#[;I2(7`#X60 -XM_/__2(M%P,8``$B+7;A(C;U@____Z)FV_O](BWV(Z#"W_O](B=A(@<28```` -XM6T%<05U!7D%?7<-F9BX/'X0``````%5(B>5!5T%6055!5%-(@^PH18G'B4W$ -XM08G428GU28G^3(EUR+\P````Z()<__](B`/A!`!``!$.?@/A`_H9\G^_XH+2(M%R$B-4`%(B57(B`CK94V%]G06/"9U -XM$DF+5@A)BW803(GOZ)S)_O_K2DB+3](B=Y(BU6@BTVL3(U%L.C)VO__2(M%L$B- -XM7!C_#[Y#`4C_PX7`=`Y$.>!T"40Y^`^%!____TB+1%(BU60=`5$.?EU"$C_PTB)&NL82(D:2(M-F$C'`0`` -XM``!(B5!5T%6055!5%-( -XM@^PH2(G+28G608GU2(E]R$R+/TB+1PA,*?A(B4701(MC*$2)X(/@!H/X!@^$ -XM*P$``$'VQ`@/A(X```!(BW,(2(M3$$B)5,```!(BW,@2(7V#X14`P``187M="Q)BT8( -XM28M.$$@IP4B#^0%_#$R)]^AVQ_[_28M&"$B-2`%)B4X(Q@`@2(MS($B+4QA, -XMB??HM\?^_T2+8RBX`0```.D,`P``0?;$$`^$[@```$B+4Q!(BT7028G$22G4 -XM2"G02(E%P'AR30'\2(MS"$R)Y^A)K_[_A9F9F9F8N#Q^$``````"#R@2)4RA(B4W09@\? -XM1```A<`/A<$```!(BW,(3(G_Z/RM_O])B<2X`0```$V%Y'3?187M=$`QP$@K -XM0R!,B>%,*?E(.<%T,DF+1@A)BTX02"G!2(/Y`7\,3(GWZ-#%_O])BT8(2(U( -XM`4F)3@C&`"!(BT7(3(LX13'M3(GF3"G^3(GW3(GZZ`;&_O](BU,82(MS($R) -XM]^CVQ?[_3(G@2(M5R$@K`DB+2Q!-C3P,3(DZ2`'(2(MUT$B)\4@IP8M3*$@Y -XMQG0+,<#VP@$/A3'___^X`0```.DG____2(-]T`!T0T6%[70O28M&"$F+3A!( -XM*<%(@_D!?PQ,B??H,L7^_TF+1@A(C4@!28E.",8`($B+1T/E<$(P0^VP>F(_O__ -XM2(MS($B+1=!(C00&2#M%P'0]N`$```!%A>UT-DF+1@A)BTX02"G!2(/Y`7\, -XM3(GWZ+/$_O])BT8(2(U(`4F)3@C&`"!(BW,@N`$```#K`T2)Z$B+4QA,B?=! -XMB5!5E-)B?Y)BSY(B?KK'F9F9F9F+@\?A```````2(G"9F9F9BX/ -XM'X0``````$B)T$B-6`$/OE`!@_HZ=#NJ&I40#H -XM^7[__TF)'EM!7EW#D%5(B>5!5T%6055!5%-028G,2(G308GW28G^38LN28M& -XM"$B)1=!,B>B_>O__A05]=PP\?0`#IBZ[^_V9F -XM+@\?A```````54B)Y4%7059!54%44U!)B](BW703(GB2(G!Z`]Z__^%P'1%187_="A(BT,(2(M+ -XM$$@IP4B#^0%_#$B)W^B-PO[_2(M#"$B-2`%(B4L(Q@`@28L628MV"$@IUDB) -XMW^C,PO[_0;\!````1(GX2(/$"%M!7$%=05Y!7UW#D)"0D%5(B>5!5T%6055! -XM5%-(@^Q(38G%B4VD28G728GT28G^0?_52(G#@#LD#X6@````3(EMF$R)?;!, -XMB66H3(UEN$R)Y[X``0``Z`3#_O](B=Y,*?9,B>=,B?+H4\+^_X`[)'5*3(U] -XMN$2+;:1,BW689I!,B?](B=Y(BU6P1(GI3(U%T.B:T___3(MET$D!W$R)YT'_ -XMUDB)PTB)WDPIYDR)_TR)XN@)PO[_@#LD=,1(BT7`Q@``2(M%N$B+3:A(B0%( -XMBT7`2(E!",=!$`$```#K$DV)-"1)B5PD"$''1"00`````$B)V$B#Q$A;05Q! -XM74%>05]=PV9F9F8N#Q^$``````"#?Q``=`A(BS_ITJS^_\.054B)Y4%64TF) -XM]DB)^^B^!```2(7`=`0QP.L02(G?3(GVZ)H```"X`0```%M!7EW#54B)Y4%7 -XM05934$F)UTB)\TF)_DF+!DB%VW0Z2(7`=%Z_&````.@64O__3(EX$$B)&$B+ -XM2PA(B4@(2(E#"$B+2`A(A!!(QT`(`````$C'``````!)B48(28D&2(/$"%M!7D%?7<,/'X`` -XM````54B)Y4%64TF)]DB)^[\8````Z)E1__],B7`02(M+"$B)"$C'0`@````` -XM2(M+"$B%R70&2(E!".L#2(D#2(E#"%M!7EW#D)"0D)"0D)"0D)!52(GE05=! -XM5E-028G^2(L>2(7;=$9-BWX(#Q^``````+\8````Z#91__](BTL02(E($$V% -XM_W4%28D&ZP1)B4<(3(DX2(M;"$B%VTF)QW7128E&"$C'0`@`````2(/$"%M! -XM7D%?7<.0D)"0D)"0D)"02(L&2(7`="1(BT\(2(D(2(L&2(M/"$B%R70&2(E! -XM".L#2(D'2(M&"$B)1PC#D)"054B)Y5-02(GX2(LX,=M(A?]T)DB+3PA(BU\0 -XM2(D(2(7)=`E(QP$`````ZPA(QT`(`````.CGJO[_2(G82(/$"%M=PY"0D)"0 -XMD)"0D)"0D)!52(GE05=!5E-028GV2(L?387V="A(A=MT2F8/'T0``$R+>PA( -XMBWL00?_62(G?Z)VJ_O]-A?],B?MUY>LG2(7;=")F9F9F9BX/'X0``````$R+ -XMM,B?A( -XM@\0(6T%>05]=PY"0D)"0D)"0D)"0D)!52(GE05=!5E-028G628GW2(G[ZP]F -XM9BX/'X0``````$B+6P@QP$B%VW012(M[$$R)]D'_UX7`=>=(B=A(@\0(6T%> -XM05]=PY"0D)"0D)"0D%5(B>5!5T%64U!)B=9)B?=(B?OK&69F+@\?A``````` -XM2(M[$$R)]D'_UTB+6PA(A=MU[4B#Q`A;05Y!7UW#9I!52(GE059328GV2(L? -XMZPR02(M[$$'_UDB+6PA(A=MU\%M!7EW#9F8N#Q^$``````!52(GE05=!5E-0 -XM28G628GW2(G[9F9F9BX/'X0``````$B+&TB%VW012(G?3(GV0?_72(/#"(7` -XM=>=(@\0(6T%>05]=PY"0D)"0D)"0D)"0D%5(B>5!5T%64U!)B=9(B?-)B?]) -XMBP=(A=MT,$B%P'14OQ@```#H1D[__TR)L$2(E#"$B)`UM!7EW#D)"0D)"0 -XMD)"0D)"0D)!(BP\QP$B%R70-2(UY"$@Y<1!(B'1E;F1E9"!F;W)M870@96YT'1E;F1E9"!F;W)M870@96YTF5R;R!S=&%T -XM=7,`8"5S)R!I&%M:6YI;F<@)7,N+BX`=7!D871E('1I;64Z("5S"@`* -XM"E-T;W`@:6X@)7,@*&QI;F4@)6QU(&]F("5S*2X*`"Y#55)$25(`"@I3=&]P -XM(&EN("5S+@H`1W)A<&@@8WEC;&5S('1H2!N97-T -XM960@:68G0!396%R8VAI;F<@9F]R("5S+BXN -XM`&AE6EN9R!S=6)D:7)E8W1O2P@XQ1``````"#C%$````` -XM`(F,40``````CHQ1`````````````````"5S("5S*&EG;F]R960I"@`E'!A;F1S('1O(&5M<'1Y('-T -XM5]L:6YE -XM+A```````"'N$`````` -XM`%2Y0```````EKA```````!4N4```````%2Y0```````I;A```````"TN$`` -XM`````%2Y0```````P[A```````!"4%-I:VYQ5T@6RUJ(&UA>%]J;V)S72!;+6T@9&ER96-T;W)Y72!;+58@=F%R -XM:6%B;&5="@D@("`@6TY!344]=F%L=65=(%MT87)G970@+BXN70H`)7,M+3TE -XM9"``455%54E.1R``0VAI;&0@)7,@9&ES8V]V97)E9"!G6-L97,@ -XM=&AR;W5G:"`E65T+@H`)7,Z(&YO -XM="!Q=65U:6YG("@E9"!U;FUA9&4@8VAI;&1R96XI"@`EG4I"@`````````` -XM`````````$#10```````4-)```````#5U4```````+320```````!M-````` -XM``!STT```````*[30```````\-U```````!)WD```````"S>0```````2=Y` -XM```````XWD```````$G>0```````1-Y```````"3FU$```````8````````` -XMESL``,0````@`````````)F;40``````"`````````!]E0,`Q0```$`````` -XM````H9M1```````*`````````$?P.0!&``````````````"KFU$```````L` -XM````````%8#F`,@`````$````````+:;40``````!@`````````:.0``R0`` -XM```$````````O)M1```````&`````````,LX``!*``````````````#"FU$` -XM``````8`````````!3@``,L`````"````````,B;40``````!@`````````Z -XM.```3````````````````Y-1```````&`````````#DX``#-``````(````` -XM```PDU$```````L`````````7[3@`$X``````````````,Z;40``````"``` -XM``````!?A`,`3@``````````````UIM1```````)`````````#H>#@#/```` -XM`"````````#?FU$```````T`````````F`\9#E```````````````.R;40`` -XM````#`````````"8#X8#4```````````````^)M1```````&`````````*PY -XM``!1``````````````#^FU$```````H`````````:,\Y`-(````(```````` -XM``B<40``````!P````````"&Y@``4P``````````````#YQ1```````*```` -XM`````)@//P!4```````````````9G%$```````8`````````"#\``%4````` -XM`````````!^<40``````!P````````"1_P``U@````!`````````)IQ1```` -XM```*`````````+=@/@#7````@``````````PG%$```````L`````````36?^ -XM`,T``````@```````#N<40``````"``````````\\P,`V0`````!```````` -XM0YQ1```````-`````````"Q0S@]:``````````````!0G%$```````H````` -XM````A]@^`%L``````````````%J<40``````!0````````#9#P``W````!`` -XM````````7YQ1```````&`````````*`^``#=``````````````!EG%$````` -XM``<`````````!.P``.`````````"`````&R<40``````"P````````!-2^\` -XMX0````````0`````56YA"!O9B!S<&5C:6%L('1A"!F;W(@+G!O:7-O;CH@)7,`+FEN8VQU9&4@9FEL96YA -XM;64@;75S="!B92!D96QI;6ET960@8GD@)R(G(&]R("<\)P!5;F-L;W-E9"`N -XM:6YC;'5D92!F:6QE;F%M92X@)R5C)R!E>'!E8W1E9`!5;F5X<&5C=&5D(&5N -XM9"!O9B!F:6QE(&EN(&9O"!O;B`E6EN9R`E'!A;F1I;F<@(B5S(BXN+@!S=69F:7@@:7,@(B5S(BXN+@!% -XM>'!A;F1I;F<@(B5S(BXN+@!0&5S.@``````861D:6YG('-U9F9I>"!R=6QE````````````````````",J*BH@5')A;G-F -XM;W)M871I;VYS.@```,HA00``````Q2%!``````#+(4$``````-$A00`````` -XMUR%!``````#=(4$``````)`C00``````A"-!``````"N)$$``````+@D00`` -XM````PB1!``````#,)$$``````/`D00``````6R-!``````#6)$$``````-TD -XM00``````Y"1!``````#K)$$``````"Y"14=)3@`N14Y$`"Y)3E1%4E)54%0` -XM+D1%1D%53%0`+D]05$E/3D%,(``N55-%(``N15A%0R``+DE'3D]212``+E!2 -XM14-)3U53(``N4TE,14Y4(``N34%+12``+DI/24X@`"Y)3E9)4TE"3$4@`"Y. -XM3U1-04E.(``N3$E"(``N345-0D52(``N05)#2%8@`'5N:VYO=VX`97)R;W(@ -XM=VAE;B!M861E`&]T:&5R('-T871U&ES -XM=&5N="`H;6%Y8F4I.B`E6EN9R!T;R!P -XM;VES;VX@9'EN86UI8R!V87)I86)L92`D)7,`4&]I2!S970*`%1R>6EN9R!T;R!D96QE=&4@9'EN86UI8R!V -XM87)I86)L92`D)7,`5')Y:6YG('1O(&=E="!V86QU92!O9B!D>6YA;6EC('9A -XM6YA;6EC('9A0H`5')Y:6YG('1O("5S(&1Y;F%M -XM:6,@=F%R:6%B;&4@)"5S`&%P<&5N9"!T;P!4$$`````````````````<'E!``````!@>4$` -XM````````````````,'A!`````````````````,!X00``````8'E!```````` -XM`````````/!S00````````````````!`=$$``````.!G00`````````````` -XM``#`:T$``````-!K00````````````````#@9T$`````````````````@&I! -XM``````#P:D$`````````````````\"=``````````````````(!H00`````` -XM``````````"09$$```````````````````````````"`:$$````````````` -XM````X&)!````````````````````````````@&A!`````````````````/!I -XM00```````````````````````````(!H00````````````````!P:4$````` -XM``````````````````````"`:$$``````!!I00`````````````````````` -XM````````````````@&A!``````"P:$$````````````````````````````` -XM`````````!!H00``````0&A!````````````````````````````"B`))V`B -XM.R8\/B@I?"H_>WU;75PD(2->?@`````````!``````````$`````````!``` -XM```````0`T````````4`````````:!)````````&`````````)@&0``````` -XM"@````````#J`P````````L`````````&``````````5```````````````` -XM`````P````````#XM'$```````(`````````P`D````````4``````````<` -XM````````%P````````"H%T````````<`````````6!9````````(```````` -XM`%`!````````"0`````````8```````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````````````````````````````L+-A```` -XM````````````````````````EB%```````"F(4```````+8A0```````QB%` -XM``````#6(4```````.8A0```````]B%````````&(D```````!8B0``````` -XM)B)````````V(D```````$8B0```````5B)```````!F(D```````'8B0``` -XM````AB)```````"6(D```````*8B0```````MB)```````#&(D```````-8B -XM0```````YB)```````#V(D````````8C0```````%B-````````F(T`````` -XM`#8C0```````1B-```````!6(T```````&8C0```````=B-```````"&(T`` -XM`````)8C0```````IB-```````"V(T```````,8C0```````UB-```````#F -XM(T```````/8C0```````!B1````````6)$```````"8D0```````-B1````` -XM``!&)$```````%8D0```````9B1```````!V)$```````(8D0```````EB1` -XM``````"F)$```````+8D0```````QB1```````#6)$```````.8D0``````` -XM]B1````````&)4```````!8E0```````)B5````````V)4```````$8E0``` -XM````5B5```````!F)4```````'8E0```````AB5```````"6)4```````*8E -XM0```````MB5```````#&)4```````-8E0```````YB5```````#V)4`````` -XM``8F0```````%B9````````F)D```````#8F0```````1B9```````!6)D`` -XM`````&8F0```````=B9```````"&)D```````)8F0```````IB9```````"V -XM)D```````,8F0```````UB9```````#F)D```````/8F0```````!B=````` -XM```6)T```````"8G0```````-B=```````!&)T```````%8G0```````9B=` -XM``````!V)T```````(8G0```````EB=```````"F)T```````+8G0``````` -XMQB=```````#6)T```````.8G0```````]B=````````&*$`````````````` -XM``````````````````````````````````````````````#__________P`` -XM```````````````````````````````N6YS='(`+G)E;&$N9'EN`"YR96QA+G!L=``N:6YI=``N=&5X=``N9FEN -XM:0`N#D````````:```` -XM"`$```@`````````&``````````)`````P````````````````````````"P -XM^0$``````*4>```````````````````!```````````````````````````` -XM``````````````````````````````,``0#@`D`````````````````````` -XM``,``@#T`D````````````````````````,``P`0`T`````````````````` -XM``````,`!`"8!D````````````````````````,`!0!H$D`````````````` -XM``````````,`!@!8%D````````````````````````,`!P"H%T`````````` -XM``````````````,`"`!P(4````````````````````````,`"0"`(4`````` -XM``````````````````,`"@`0*$````````````````````````,`"P#0@$$` -XM``````````````````````,`#`#@@%$```````````````````````,`#0`` -XML&$```````````````````````,`#@"LLV$```````````````````````,` -XM#P"PLV$```````````````````````,`$`#PM&$````````````````````` -XM``,`$0#XM'$```````````````````````,`$@#XM'$````````````````` -XM``````,`$P!XN'$```````````````````````,`%`"(N'$````````````` -XM``````````,`%0"0N'$```````````````````````,`%@"0N($````````` -XM``````````````,`%P````````````````````````````,`&``````````` -XM``````````````````,`&0````````````````````````````,`&@`````` -XM`````````````````0````0`\?\`````````````````````'@````(`"@"` -XM.D```````-(!````````+`````$`#0`PL&$``````"@`````````-@````$` -XM%@`PNX$``````$``````````/P````$`%@!PNX$``````"``````````40`` -XM``$`#0`(L&$``````"@`````````7@````0`\?\````````````````````` -XM>@````0`\?\`````````````````````FP````0`\?\````````````````` -XM````N@````(`"@#`0$```````!`$````````Q0````0`\?\````````````` -XM````````X@````(`"@#`6$```````,X`````````[0````(`"@#P4D`````` -XM``\`````````^P````(`"@!P4T```````$``````````"`$```(`"@``4T`` -XM`````&8`````````$P$```(`"@"P4T```````"P`````````(`$```(`"@`0 -XM3$```````$L`````````)@$```(`"@"064```````$P`````````+`$```(` -XM"@#@4T```````-0$````````00$```(`"@#@64```````&\`````````1P$` -XM``(`"@!@3$```````*P%````````40$```$`%@!XOH$```````@````````` -XM70$```$`%@"(OH$```````@`````````9@$```$`%@"`OH$```````0````` -XM````<0$```$`#0!D```````"$"````````UP(` -XM``$`%@`@OX$```````$`````````]`(```0`\?\````````````````````` -XM$@,```0`\?\`````````````````````+@,```(`"@"0AT```````-$````` -XM````-@,```0`\?\`````````````````````4P,```0`\?\````````````` -XM````````;P,```(`"@#`ED````````4`````````>0,```(`"@#@GT`````` -XM`/H`````````A@,```(`"@!@C$```````'<&````````CP,```(`"@"PBT`` -XM`````)T`````````H0,```$`%@!HP($```````0`````````J@,```$`%@"8 -XMP($```````@`````````M@,```(`"@#0FD```````,8`````````PP,```$` -XM%@!@P($```````0`````````R@,```$`%@`XP($``````!``````````U0,` -XM``$`%@!XP($```````$`````````Y0,```(`"@!0BD```````%L!```````` -XM_`,```(`"@"PE$````````T"````````#P0```(`"@"@FT```````$`$```` -XM````(00```$`%@!(P($``````!``````````*@0```$`#0#@L&$```````0` -XM````````-00```$`%@!PP($```````@`````````/@0```$`%@"@P($````` -XM``@`````````2`0```$`%@!8P($```````0`````````4`0```$`%@!P@```(`"@`@)4$``````!,`````````B0@```(`"@#@(D$` -XM`````"$"`````````08```$`%@"0QX$``````$``````````EP@```0`\?\` -XM````````````````````N0@```$`%@#XQX$```````@`````````P`@```$` -XM#0!XL6$```````@`````````R`@```$`%@#0QX$```````@`````````SP@` -XM``$`#0!0L6$``````"@`````````V@@```$`%@#HQX$```````@````````` -XMX@@```$`%@#PQX$```````$`````````"PD```$`%@#8QX$```````@````` -XM````$@D```$`%@#@QX$```````@`````````'0D```(`"@`@0$$``````+$# -XM````````+@D```0`\?\`````````````````````4`D```$`%@``R($````` -XM`(``````````8PD```0`\?\`````````````````````?PD```$`%@#)R($` -XM``````$`````````F0D```$`%@#PR($``````/`*````````I`D```$`%@"$ -XMR($```````0`````````L@D```(`"@``14$``````$H#````````OPD```$` -XM%@#HR($```````0`````````S0D```(`"@!02$$``````!\!````````W0D` -XM``(`"@"074$``````#,`````````Y@D```(`"@!@74$``````"8````````` -XM\@D```$`%@"(R($``````$```````````PH```$`%@#0R($``````!@````` -XM````$`H```$`%@#(R($```````$`````````&PH```(`"@#074$``````)(` -XM````````+`H```$`#0"`L6$``````"@`````````-0H```(`"@`P2D$````` -XM`(`!````````1`H```(`"@"064$``````'$`````````4@H```$`#``PI5$` -XM`````'@`````````6PH```0`\?\`````````````````````@`H```(`"@`@ -XM4$``````)P`````````GPH```(`"@#`>$$``````)P`````````J@H` -XM``(`"@#P:D$``````,$`````````LPH```$`#0"0LV$``````!H````````` -XMP0H```(`"@!P:4$``````'D`````````R0H```(`"@!`9T$``````)4````` -XM````U@H```(`"@!`=$$``````/`#````````Y`H```(`"@#P:4$``````($` -XM````````[@H```(`"@"09$$``````'D`````````]@H```(`"@"`:$$````` -XM`"H``````````@L```(`"@"`:D$``````&0`````````#@L```(`"@`0:$$` -XM`````"@`````````&@L```$`%@#@TX$````````(````````)0L```(`"@#@ -XM<$$``````#4$```````4````` -XM````A`L```(`"@#`:T$```````@`````````DPL```(`"@#P$$``````(\`````````L0L```(`"@`094$````` -XM`"T"````````P0L```$`#0"@LF$``````"@`````````R@L```$`#0!`LV$` -XM`````"@`````````U`L```$`#0"PL6$``````"@`````````W@L```$`#0#8 -XML6$``````"@`````````Z@L```$`#0!0LF$``````"@`````````]`L```$` -XM#0`HLF$``````"@```````````P```$`#0#PLF$``````"@`````````"0P` -XM``$`#0!HLV$``````"@`````````$PP```$`#0``LF$``````"@````````` -XM'0P```$`#0#(LF$``````"@`````````*`P```$`#`"HJ5$``````"@````` -XM````,0P```$`#0!XLF$``````"@`````````.@P```$`#0`8LV$``````"@` -XM````````1`P```0`\?\`````````````````````9`P```0`\?\````````` -XM````````````C@P```0`\?\`````````````````````N`P```0`\?\````` -XM````````````````X@P```0`\?\`````````````````````$PT```0`\?\` -XM````````````````````/@T```0`\?\`````````````````````:0T```0` -XM\?\`````````````````````D0T```0`\?\`````````````````````O0T` -XM``0`\?\`````````````````````[`T```0`\?\````````````````````` -XM%@X```0`\?\`````````````````````0`X```0`\?\````````````````` -XM````:@X```0`\?\`````````````````````E0X```0`\?\````````````` -XM````````P`X```0`\?\`````````````````````Z`X``!$`%@`LW8$````` -XM``0`````````]`X``!$`%@!PW8$```````@``````````P\``!(```"0(4`` -XM`````(8`````````"P\``!(`"@!@?D$``````#X`````````&P\``!(```"@ -XM(4``````````````````*0\``!(`"@`0>T$```````\`````````-@\``!(` -XM"@#P/T$``````"D`````````00\``!$`%@`8W8$```````0`````````30\` -XM`!$`#0"PL&$```````@`````````60\``!(```"P(4```````-8````````` -XM8@\``!(`"@!@@$$```````H`````````;@\``!$`%@!`W8$```````0````` -XM````>@\``!(```#`(4````````<`````````@@\``!(`"@"@PT```````$4" -XM````````C@\``!(`"@`P5T$``````%8"````````FP\``!$`%@!XW8$````` -XM``@`````````HP\``!(`"@!@HD```````/\!````````P0\``!(```#0(4`` -XM`````+X`````````R`\``!(```#@(4```````(<`````````SP\``!(`"@#` -XM2T$``````-P`````````V@\``!(`"@"0DT````````X`````````Y`\``!(` -XM"@!`;D```````*8`````````]@\``!(```#P(4``````````````````_0\` -XM`!(`````(D```````'4`````````$!```!(````0(D```````"0````````` -XM&1```!(`"@!P7D$``````(4`````````*Q```!(`"@!P@$$``````$D````` -XM````-Q```!(`"@!PB$```````"\`````````/!```!(`"@`0@T```````'P" -XM````````11```!(`"@"`SD```````"<`````````31```!$`%@"0W8$````` -XM`!``````````41```!(````@(D```````&,!````````6A```!(`"@!P]T`` -XM`````$``````````8Q```!(`"@#`94```````$4`````````;Q```!(`"@#P -XM;D```````/L`````````?A```!$`%@"0N($``````$``````````D!```!$` -XM\?^PLV$`````````````````F1```!(`"@`034$``````!P!````````IQ`` -XM`!(````P(D````````@`````````KQ```!(`"@#01$```````#8'```````` -XMN1```!(`"@`0LD```````%4`````````S!```!``%0"0N'$````````````` -XM````UA```!(`"@"@DT```````%L`````````X1```!(`"@"@Y$```````*<` -XM````````[!```!(```!`(D```````'\`````````\Q```!``\?\(```````` -XM````````````$!$``!(`"@#0?$```````-$`````````'1$``!(`"@!0^$`` -XM`````!8`````````)Q$``!(```!0(D```````$,`````````+A$``!(```!@ -XM(D``````````````````-1$``!(`"@#0'T$``````!X`````````0Q$``!(` -XM"@!P24$``````*X`````````3Q$``!(```!P(D```````$(!````````91$` -XM`!(`"@!@/$```````%4`````````<1$``!(`"@`04D```````)<````````` -XM>A$``!(`"@#05D$```````D`````````BA$``!(```"`(D```````#<````` -XM````EA$``!(```"0(D```````,0!````````G1$``!(`"@#PSD```````$\` -XM````````JQ$``!(`"@`09D```````$P`````````MA$``!$`%@!$W8$````` -XM``0`````````P!$``!(```"@(D```````/,`````````QQ$``!(```"P(D`` -XM`````/L`````````S!$``!(```#`(D``````````````````T1$``!(`"@!@ -XM[T```````"T`````````XA$``!(`"@``E$```````"\`````````ZQ$``!(` -XM"@"0A4```````'A,``!$` -XM%@!,W8$```````0`````````@!,``!(`"@"0?4$``````',`````````BA,` -XM`!(`"@#0^T````````(`````````FA,``!(`"@#`!$$``````(H````````` -XMJ!,``!(`"@"P9$```````$0`````````M!,``!(````@(T```````!@````` -XM````NA,``!(`"@"0PT````````X`````````QQ,``!(````P(T`````````` -XM````````SQ,``!(`"@"P2T$```````L`````````Y1,``!(```!`(T`````` -XM`!L`````````\!,``!(`"@!074```````%,'````````!10``!(```!0(T`` -XM``````L`````````%A0``!(`"@"P<4```````"L`````````)10``!(```!@ -XM(T```````!\`````````,Q0``!(`"@"@>$```````&\!````````/10``!(` -XM"@!@9D````````H`````````2Q0``!(```!P(T```````#D"````````4A0` -XM`!(`"@#0?D$``````$0`````````9Q0``!(`"@!@.4```````&T````````` -XM=A0``!(```"`(T``````````````````>Q0``!(`"@#`6T$``````)@!```` -XM````BA0``!(```"0(T```````,,!````````D!0``!(`"@!`BD````````\` -XM````````I!0``!(`"@#P?T```````,@`````````JA0``!$`%@"`W8$````` -XM``@`````````LQ0``!(`"@#`4D$``````-$"````````O10``!(`"@#`T$`` -XM`````-X2````````R!0``!(```"@(T```````"$`````````T!0``!$`#0#P -XML&$```````@`````````XA0``!(`"`!P(4``````````````````Z10``!(` -XM``"P(T```````%``````````]A0``!(```#`(T```````(!<``!(```#0)$```````$,&````````@!<``!$` -XM%@"(W8$```````@`````````BQ<``!(`"@#PQ4```````!("````````E!<` -XM`!(`"@"0S4```````"(`````````G!<``!(`"@#`@$```````-@````````` -XMH1<``!(```#@)$```````"L`````````J!<``!(`"@``'T$``````(4````` -XM````MA<``!$`%@#PN($``````,@!````````NQ<``!(```#P)$`````````` -XM````````P!<``!(`"@`0_4```````"8`````````T1<``!(`````)4`````` -XM`!H`````````UQ<``!(`"@!0C$````````0`````````X!<``!``\?^HW8$` -XM````````````````_A<``!(`"@!0Y4```````%0`````````#1@``!(````0 -XM)4```````",`````````%!@``!(````@)4````````P!````````&A@``!(` -XM"@!@/4```````#$`````````(Q@``!(`"@``94````````8`````````+Q@` -XM`!(`"@"0'T$``````!D`````````.Q@``!(`"@#0.4```````!0````````` -XM11@``!(`"@`P'4$``````,8!````````51@``!(````P)4```````*\'```` -XM````71@``!(`"@"P]T```````)$`````````:1@``!(```!`)4```````&\` -XM````````=!@``!(```!0)4```````-P`````````>A@``!$`%@"XNH$````` -XM``0`````````AQ@``!``\?^0N($`````````````````DQ@``!(```!@)4`` -XM``````H`````````FA@``!(```!P)4```````&T`````````I!@``!(```"` -XM)4```````!\`````````JQ@``!(`"@#@0T$```````<`````````M1@``!(` -XM"@"`N4```````)\'````````NA@``!(`"@!0>T$``````(D`````````Q1@` -XM`!(```"0)4```````-P`````````S1@``!(`"@!0T$```````$D````````` -XMUQ@``!(`"@!`1$$``````#@`````````Y1@``!(`"@#`@$$```````T````` -XM````[A@``!(`"@#0^$```````"$!````````!!D``!(```"@)4````````L! -XM````````"QD``!(`"@``SD```````$P`````````$QD``!$`%@`0W($````` -XM```!````````)AD``!(```"P)4```````"41````````+AD``!(```#`)4`` -XM`````#0`````````,QD``!(```#0)4```````#D`````````.QD``!(```#@ -XM)4```````#@`````````2AD``!(```#P)4```````$X`````````5QD``!$` -XM%@!HW8$```````@`````````7AD``!(`````)D```````%<`````````;1D` -XM`!(````0)D```````$L`````````T$``````#`````````` -XM?1D``!(`"@"`)D$``````'`9````````E!D``!(````@)D```````!T````` -XM````FQD``!$`#0#XL&$```````@`````````JQD``!(````P)D```````'0` -XM````````LAD``!(`"@#PH4```````&X`````````P1D``!(`"@"@?D$````` -XM`"4`````````RQD``!$`%@`TW8$```````0`````````V!D``!(`"@`@?T`` -XM`````,(`````````WAD``!(`"@`0?D$``````$<`````````ZQD``!(```!` -XM)D````````D`````````\AD``!(```!0)D```````#0`````````^AD``!$` -XM%@"\NH$```````0``````````QH``!(`"P#0@$$`````````````````"AH` -XM`!(```!@)D```````"D!````````$QH``!(`"@!`>$```````%T````````` -XM(QH``!(`"@`0\$```````(``````````+QH``!(```!P)D```````$,!```` -XM````-QH``!(`"@`@2D$```````4`````````2AH``!$`%@`HW8$```````0` -XM````````51H``!(`"@"@T$```````!0`````````:1H``!(`"@"PST`````` -XM`#X`````````<1H``!(`"@!PLD```````!4"````````@QH``!(`"@"@54$` -XM`````%L`````````CAH``!$`%@`0W8$```````@`````````DAH``!(```"` -XM)D```````%$`````````F!H``!(```"0)D```````.0!````````GQH``!(` -XM"@#@DD```````'4`````````J!H``!(`"@!`*$```````,0`````````L1H` -XM`!(`"@"@3D$``````!T$````````NQH``!(```"@)D```````'8````````` -XMQ!H``!(```"P)D``````````````````R1H``!(`"@"0H4```````&`````` -XM````V!H``!$`%@"@W8$```````0`````````Y!H``!(```#`)D```````,D` -XM````````ZQH``!$`%@!4W8$```````0`````````]1H``!(`"@#P(4$````` -XM`.4`````````!1L``!(`"@!PJD```````#`'````````&AL``!(`"@`P6T$` -XM`````(T`````````(QL``!``\?^0N($`````````````````*AL``!(`"@#P -XM;T```````(4`````````-AL``!$`\?_XM'$`````````````````3!L``!`` -XM\?^HW8$`````````````````41L``!(`"@"@?T$``````$(`````````71L` -XM`!$`%@"`R($```````$`````````9QL``!(`"@!@+T```````(P#```````` -XMD```````($`````````S!L``!(`"@"@@4`` -XM`````$X`````````TQL``!(`"@#P?T$``````!@`````````WAL``!(`"@"@ -XM=D```````$X!````````\!L``!(```#0)D```````!8`````````]1L``!(` -XM"@#P,D````````$``````````QP``!(`"@!`_D```````$H!````````*QP` -XM`!(`"@#`\T```````#4!````````2`0``!$`%@!D$````` -XM`/,`````````'AT``!(`"@!@7$```````/``````````+AT``!(`"@`0@$$` -XM`````$8`````````.1T``!(````@)T```````!X`````````0!T``!(````P -XM)T``````````````````11T``!(`"@`0($$``````)P!````````5!T``!(` -XM``!`)T```````#<`````````7QT``!(`"@"@L4```````!0`````````;QT` -XM`!(`"@!@I$```````.`"````````AAT``!(```!0)T```````'@````````` -XMCAT``!(`"@#`/$```````)P`````````FQT``!(```!@)T```````",````` -XM````HAT``!(`"@"P(4$``````#,`````````LQT``!(```!P)T```````)@` -XM````````N1T``!(```"`)T```````!H`````````P!T``!``#0``L&$````` -XM````````````S1T``!(`"@`PB4````````8!````````WAT``!(```"0)T`` -XM`````(X`````````YQT``!$`%@!@W8$```````0`````````\1T``"`````` -XM````````````````````!1X``!(`"@!@DT```````"P`````````$QX``!$` -XM%@`@QH$```````@`````````(!X``!(```"P)T``````````````````)AX` -XM`!(`"@#P]D```````'@`````````-!X``"(`"@`0*D````````$````````` -XM2AX``!(`"@#@<4```````(<"````````6!X``!(```#`)T`````````````` -XM````7AX``!(```#0)T```````%H`````````9QX``!(```#@)T```````"@` -XM````````=!X``!(`"@#@>T$``````$4`````````?AX``!$`%@!DW8$````` -XM``0`````````AQX``!(```#P)T```````/$`````````C!X``!(`"@`PE$`` -XM`````(``````````F1X``!(`````*$```````````````````"]U0!A&ES=',`0V]N9$1O36%K90!#;VYD -XM1&]487)G970`0V]N9$4`0V]N9$8`0V]N9$AA;F1L94-O;7!A'!R`&-O;F1);G9E'!A -XM;F0N8P!$:7)%>'!A;F17:6QD:0!$:7)0$IO8G,`;DIO8G,`;W-E=`!O=71P=71?;6%S:P!R96UO=F5? -XM:F]B`')U;FYI;F=*;V)S`'-E=``O=7-R+W-R8R]U2YC -XM`&5N;V-M96T`96YO;65M`"]U&5S`'1R86YS9F]R;7,`+W5S2YC`"]U0!S=')E0!3=69F7T%D9$EN8VQU9&5I`$UA -XM:V5?3T]$871E`&)R:U]S=')I;F<`:VQU9&=E7VQO;VM?:&%R9&5R7V9O&5S`&5U;FQI -XM;FL`5&%R9U].97='3FD`<')I;G1?97)R;W)S`%9A&5C=71E`%!A%]P871H`&5X96-V`$IO8E]-86ME`%]?41I<@!487)G7TEG;F]R90!!6U486)L95]);FET`$QS=%]3=6-C`%-U9F9?4&%R$QE;@!O:&%S:%]I;G1E0!F=W)I=&4`=&]U -XM8VA&;&%G`%1A5]N86UE`%-T49L86<`7TIV7U)E9VES=&5R0VQA0!F8VYT;`!3=')?4UE35E-U8G-T`%]?make.1.uu << '647df595c3365b3d9d04c6551fe0438d' -Xbegin 644 make.1 -XM?T5,1@(!`0````````````(`/@`!````$"A```````!``````````&BY`0`` -XM`````````$``.``*`$``&0`8``8````%````0`````````!``$```````$`` -XM0```````,`(````````P`@````````@``````````P````0```#@`@`````` -XM`.`"0```````X`)````````3`````````!,``````````0`````````!```` -XM!0````````````````!``````````$```````-Z``0``````WH`!```````` -XM`!````````$````$````X(`!``````#@@%$``````."`40``````\"@````` -XM``#P*```````````$````````0````8`````L`$```````"P80```````+!A -XM``````#X!````````/@$```````````0```````!````!@```/BT`0`````` -XM^+1Q``````#XM'$``````)@#````````F`,``````````!````````$````& -XM````D+@!``````"0N($``````)"X@0`````````````````8)0`````````` -XM$````````@````8```"PLP$``````+"S80``````L+-A``````!``0`````` -XM`$`!````````"``````````$````!````/0"````````]`)```````#T`D`` -XM`````!@`````````&``````````$`````````%'E=&0&```````````````` -XM``````````````````````````````````````````@````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````"]U``` -XM```````#````$@```$\```!D`````````````````````````%0````[```` -XM9@```'H````Y`````````!X```!7````5@```'<```!P````10````H````_ -XM````*0````````!B`````````%$```!0`````````'8```!?````90```#,` -XM``!T````<@```&D````P````;P````````!:````2P```!\`````````$P`` -XM``````!]````0`````````V```` -XM;@```"P`````````'0````````!5`````````$H```!>````70````````![ -XM````<0``````````````,0````````!)````-P``````````````0````%(` -XM```T````00`````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````0```````````````P````:``````````@````9 -XM``````````````````````````````````````````D````4`````````"@` -XM```-`````````"<````@`````````"4``````````````!8````J````(@`` -XM```````%`````0````(````D```````````````C````,@`````````````` -XM#@``````````````/@```"X```````````````````!&`````````$0````U -XM````!P`````````M````%P```#@`````````/````"\`````````3``````` -XM```1`````````"$``````````````$(`````````/0```"L````/````$``` -XM```````;``````````L`````````30````````!@````2``````````Z```` -XM````````````````;``````````5````:````"8````<````!@````````!# -XM````8P```%,```!'```````````````````````````````````````````` -XM```.````$@```)`A0```````A@`````````6````$@```*`A0``````````` -XM```````D````$@```+`A0```````U@`````````M````$@```,`A0``````` -XM!P````````!Z`P``$@```-`A0```````O@````````"^`@``$@```.`A0``` -XM````AP`````````U````$@```/`A0``````````````````\````$@`````B -XM0```````=0````````!/````$@```!`B0```````)`````````!8````$@`` -XM`"`B0```````8P$```````!A````$0`6`)"X@0``````0`````````!S```` -XM$0#Q_["S80````````````````!\````$@```#`B0```````"`````````"S -XM`P``$``5`)"X<0````````````````"$````$@```$`B0```````?P`````` -XM``"+````$@```%`B0```````0P````````"2````$@```&`B0``````````` -XM``````"9````$@```'`B0```````0@$```````"O````$@```(`B0``````` -XM-P````````"[````$@```)`B0```````Q`$```````#"````$@```*`B0``` -XM````\P````````!)`P``$@```+`B0```````^P````````#)````$@```,`B -XM0`````````````````#.````$@```-`B0```````40````````#3````$@`` -XM`.`B0```````$P$```````#:````$0`6`-"X@0``````"`````````#A```` -XM$@```/`B0`````````````````#H````$@`````C0```````4@````````#P -XM````$@```!`C0```````R@````````#W````$@```"`C0```````&``````` -XM``#]````$@```#`C0``````````````````%`0``$@```$`C0```````&P`` -XM```````0`0``$@```%`C0```````"P`````````A`0``$@```&`C0``````` -XM'P`````````O`0``$@```'`C0```````.0(````````V`0``$@```(`C0``` -XM```````````````[`0``$@```)`C0```````PP$```````!!`0``$@```*`C -XM0```````(0````````!)`0``$@```+`C0```````4`````````!6`0``$@`` -XM`,`C0```````AP$```````!=`0``$@```-`C0```````Q1,```````#<`@`` -XM$@```.`C0`````````````````"G`P``$``1`/BT<0````````````````!D -XM`0``$0`6``#<@0``````"`````````!Y`P``$@```/`C0```````I0`````` -XM``!L`0``$0`6`-BX@0``````"`````````!Z`0``$@`````D0``````````` -XM``````"``0``$@```!`D0```````!0````````"&`0``$0`6`."X@0`````` -XM!`````````"-`0``$@```"`D0```````)@````````"4`0``$@```#`D0``` -XM````%`````````"9`0``$0`-``"P80``````"`````````"D`0``$@```$`D -XM0`````````````````"J`0``$@```%`D0```````;0````````"Q`0``$@`` -XM`&`D0```````=0`````````!`@``$@```'`D0`````````````````"X`0`` -XM$@```(`D0```````J0$```````#!`0``$@```)`D0```````,P````````#) -XM`0``$@```*`D0``````````````````F````$@```+`D0```````_0$````` -XM``#0`0``$@```,`D0```````,@````````#:`0``$@```-`D0```````0P8` -XM``````#B`0``$@```.`D0```````*P````````#I`0``$0`6`/"X@0`````` -XMR`$```````#N`0``$@```/`D0`````````````````#S`0``$@`````E0``` -XM````&@````````#Y`0``$@```!`E0```````(P```````````@``$@```"`E -XM0```````#`$````````&`@``$@```#`E0```````KP<````````.`@``$@`` -XM`$`E0```````;P`````````F`@``$@```%`E0```````W``````````9`@`` -XM$0`6`+BZ@0``````!`````````#$`P``$`#Q_Y"X@0`````````````````L -XM`@``$@```&`E0```````"@`````````S`@``$@```'`E0```````;0`````` -XM```]`@``$@```(`E0```````'P````````!$`@``$@```)`E0```````W``` -XM``````!,`@``$@```*`E0```````"P$```````#0`P``$0`6`!#<@0`````` -XM``$```````!3`@``$@```+`E0```````)1$```````#6`@``$@```,`E0``` -XM````-`````````!;`@``$@```-`E0```````.0````````!C`@``$@```.`E -XM0```````.`````````!R`@``$@```/`E0```````3@````````!_`@``$@`` -XM```F0```````5P````````#&`@``$@```!`F0```````2P````````".`@`` -XM$@```"`F0```````'0````````"5`@``$@```#`F0```````=`````````"< -XM`@``$@```$`F0```````"0````````"C`@``$@```%`F0```````-``````` -XM``"K`@``$0`6`+RZ@0``````!`````````#C`P``$@`+`-"`00`````````` -XM``````"T`@``$@```&`F0```````*0$```````"]`@``$@```'`F0``````` -XM0P$```````#%`@``$@```(`F0```````40````````#+`@``$@```)`F0``` -XM````Y`$```````#2`@``$@```*`F0```````=@````````"E`0``$@```+`F -XM0`````````````````#;`@``$@```,`F0```````R0````````"]`P``$`#Q -XM_Y"X@0````````````````#B`@``$0#Q__BT<0````````````````"X`P`` -XM$`#Q_ZC=@0`````````````````;`P``$@```-`F0```````%@````````#X -XM`@``$0`6`,"Z@0``````"``````````&`P``$@```.`F0```````#``````` -XM```+`P``$0`6`,BZ@0``````"``````````3`P``$@```/`F0```````10`` -XM```````:`P``$@`````G0``````````````````@`P``$@```!`G0``````` -XM-``````````G`P``$@```"`G0```````'@`````````G`@``$@```#`G0``` -XM```````````````N`P``$@```$`G0```````-P`````````Y`P``$@```%`G -XM0```````>`````````!!`P``$@```&`G0```````(P````````!(`P``$@`` -XM`'`G0```````F`````````!.`P``$@```(`G0```````&@````````":`P`` -XM$``-``"P80````````````````!5`P``$@```)`G0```````C@````````!> -XM`P``(`````````````````````````!R`P``$@```+`G0``````````````` -XM``!-`@``$@```,`G0`````````````````!X`P``$@```-`G0```````6@`` -XM``````"!`P``$@```.`G0```````*``````````\`P``$@```/`G0``````` -XM\0````````".`P``$@`````H0```````````````````;&EB8RYS;RXV-2XP -XM`'!U=&-H87(`8VQO8VM?9V5T=&EM90!U;G-E=&5N=@!W86ET<&ED`'5T:6UE -XM&5C=G``8VQO``````````````#@M7$```````<````?``````````````#H -XMM7$```````<````@``````````````#PM7$```````<````A```````````` -XM``#XM7$```````<````B````````````````MG$```````<````C```````` -XM```````(MG$```````<````D```````````````0MG$```````<````E```` -XM```````````8MG$```````<````F```````````````@MG$```````<````G -XM```````````````HMG$```````<````H```````````````PMG$```````<` -XM```I```````````````XMG$```````<````J``````````````!`MG$````` -XM``<````M``````````````!(MG$```````<````O``````````````!0MG$` -XM``````<````P``````````````!8MG$```````<````R``````````````!@ -XMMG$```````<````S``````````````!HMG$```````<````U```````````` -XM``!PMG$```````<````V``````````````!XMG$```````<````W```````` -XM``````"`MG$```````<````X``````````````"(MG$```````<````Y```` -XM``````````"0MG$```````<````Z``````````````"8MG$```````<````[ -XM``````````````"@MG$```````<````\``````````````"HMG$```````<` -XM```]``````````````"PMG$```````<````^``````````````"XMG$````` -XM``<````_``````````````#`MG$```````<```!!``````````````#(MG$` -XM``````<```!"``````````````#0MG$```````<```!#``````````````#8 -XMMG$```````<```!$``````````````#@MG$```````<```!%```````````` -XM``#HMG$```````<```!&``````````````#PMG$```````<```!'```````` -XM``````#XMG$```````<```!*````````````````MW$```````<```!+```` -XM```````````(MW$```````<```!,```````````````0MW$```````<```!- -XM```````````````8MW$```````<```!.```````````````@MW$```````<` -XM``!0```````````````HMW$```````<```!1```````````````PMW$````` -XM``<```!2```````````````XMW$```````<```!3``````````````!`MW$` -XM``````<```!4``````````````!(MW$```````<```!5``````````````!0 -XMMW$```````<```!6``````````````!8MW$```````<```!7```````````` -XM``!@MW$```````<```!8``````````````!HMW$```````<```!9```````` -XM``````!PMW$```````<```!:``````````````!XMW$```````<```!=```` -XM``````````"`MW$```````<```!>``````````````"(MW$```````<```!? -XM``````````````"0MW$```````<```!@``````````````"8MW$```````<` -XM``!A``````````````"@MW$```````<```!B``````````````"HMW$````` -XM``<```!C``````````````"PMW$```````<```!G``````````````"XMW$` -XM``````<```!I``````````````#`MW$```````<```!K``````````````#( -XMMW$```````<```!L``````````````#0MW$```````<```!M```````````` -XM``#8MW$```````<```!N``````````````#@MW$```````<```!O```````` -XM``````#HMW$```````<```!P``````````````#PMW$```````<```!Q```` -XM``````````#XMW$```````<```!R````````````````N'$```````<```!S -XM```````````````(N'$```````<```!T```````````````0N'$```````<` -XM``!V```````````````8N'$```````<```!W```````````````@N'$````` -XM``<```!X```````````````HN'$```````<```!Y```````````````PN'$` -XM``````<```!Z```````````````XN'$```````<```![``````````````!` -XMN'$```````<```!\``````````````!(N'$```````<```!]```````````` -XM`````````````$B#[`CHYP<``$B#Q`C#``#_-7J3,0#_)7R3,0"0D)"0_R5Z -XMDS$`:`````#IX/____\E#^____ -XM)?*2,0!H$0```.G0_O___R7JDC$`:!(```#IP/[___\EXI(Q`&@3````Z;#^ -XM____)=J2,0!H%````.F@_O___R72DC$`:!4```#ID/[___\ERI(Q`&@6```` -XMZ8#^____)<*2,0!H%P```.EP_O___R6ZDC$`:!@```#I8/[___\ELI(Q`&@9 -XM````Z5#^____):J2,0!H&@```.E`_O___R6BDC$`:!L```#I,/[___\EFI(Q -XM`&@<````Z2#^____)9*2,0!H'0```.D0_O___R6*DC$`:!X```#I`/[___\E -XM@I(Q`&@?````Z?#]____)7J2,0!H(````.G@_?___R5RDC$`:"$```#IT/W_ -XM__\E:I(Q`&@B````Z<#]____)6*2,0!H(P```.FP_?___R5:DC$`:"0```#I -XMH/W___\E4I(Q`&@E````Z9#]____)4J2,0!H)@```.F`_?___R5"DC$`:"<` -XM``#IJ1,0!H,@```.G` -XM_/___R7BD3$`:#,```#IL/S___\EVI$Q`&@T````Z:#\____)=*1,0!H-0`` -XM`.F0_/___R7*D3$`:#8```#I@/S___\EPI$Q`&@W````Z7#\____);J1,0!H -XM.````.E@_/___R6RD3$`:#D```#I4/S___\EJI$Q`&@Z````Z4#\____):*1 -XM,0!H.P```.DP_/___R6:D3$`:#P```#I(/S___\EDI$Q`&@]````Z1#\____ -XM)8J1,0!H/@```.D`_/___R6"D3$`:#\```#I\/O___\E>I$Q`&A`````Z>#[ -XM____)7*1,0!H00```.G0^____R5JD3$`:$(```#IP/O___\E8I$Q`&A#```` -XMZ;#[____)5J1,0!H1````.F@^____R52D3$`:$4```#ID/O___\E2I$Q`&A& -XM````Z8#[____)4*1,0!H1P```.EP^____R4ZD3$`:$@```#I8/O___\E,I$Q -XM`&A)````Z5#[____)2J1,0!H2@```.E`^____R4BD3$`:$L```#I,/O___\E -XM&I$Q`&A,````Z2#[____)1*1,0!H30```.D0^____R4*D3$`:$X```#I`/O_ -XM__\E`I$Q`&A/````Z?#Z____)?J0,0!H4````.G@^O___R7RD#$`:%$```#I -XMT/K___\EZI`Q`&A2````Z<#Z____)>*0,0!H4P```.FP^O___R7:D#$`:%0` -XM``#IH/K___\ETI`Q`&A5````Z9#Z____)````Z0#Z____)8*0,0!H7P```.GP -XM^?___R5ZD#$`:&````#IX/G___\E534$B+!5./,0!(A$B)59!)B?=(B?M(B9UH____2(U]F+X``0``Z!`3``!(BP-(B470,%(B=](BW60Z'4B`0"%P`^$+`0``+D!````3(MUT.O23(E]@(7)="Z) -XMC7#___],B>=,B?9(BU60N0$```#HT"H!`$B)PTB)W^A%_/__2`'83(MUT.L, -XMB8UP____3(GP3(GC2(F=>/___TG_QDR)==!(*=A(B46(3(UEF.L5#Q]$``!, -XMBW709F9F+@\?A```````00^V!C'22#W_````38GW="\QTDB+#8Z/00#V1`@! -XM"$V)]W0<2?_&3(EUT.O##Q\`2?_'3(E]T&8/'X0``````$$/M@=(/?\```!T -XMY(3`#X11`P``/"ET/$B+#4F/00#V1`@!"'4F/"1UQDB-?=!(BW60Z'DA`0`Q -XMVX7`#X0_`P``N@$```!,BWW0Z[2$P`^$$0,``$TY_@^$/0,``(72B95T____ -XM3(GW3(G^#X3L````2(M5D+D!````Z,$I`0!)B<5,B>=(BW6(2(N5>/___^C+ -XM$```2(M%H$B+3:A(*<%(@_D!?PQ,B>?H4A```$B+1:!(C4@!2(E-H,8`*$R) -XM[^C[^O__3(GG2(G&3(GJZ(T0``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^@4$``` -XM2(M%H$B-2`%(B4V@Q@`I2(M%H,8``$B+79A(B5W(3(GOOB0```#HZ?K__TB% -XMP`^$]0```$TI]TR)[TR)]DR)^NA/^/__A<`/A=P```!(B=\Q]KH!````Z$CP -XM``"`2!H@2(M]@$B)QN@H3P$`Z=,```#HSD```(7`3(MM@`^%SP```$R)YTB+ -XM=8A(BY5X____Z-\/``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^AF#P``2(M%H$B- -XM2`%(B4V@Q@`H32GW3(GG3(G^3(GRZ*8/``!(BT6@2(M-J$@IP4B#^0%_#$R) -XMY^@M#P``2(M%H$B-2`%(B4V@Q@`I2(M%H,8``$B+?9@Q]KH!````Z)?O``"` -XM2!H@3(GO2(G&Z'A.`0!(BT682(E%H.DO`0``2(U]R$B+=8!(BU60Z)K\__\Q -XMVX7`#X10`0``2(M%F$B)1:#I"@$```]7P`\I1;!(BQ4%@R$`3(GW3(G^2(U= -XML$B)V>AC.@``2(G?Z`M/`0!(B<-(A=M,B[UX____#X3(````#Q^$``````!, -XMB>=(BW6(3(GZZ-$.``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^A8#@``2(M%H$B- -XM2`%(B4V@Q@`H2(G?Z`'Y__],B>=(B<9(B=KHDPX``$B+1:!(BTVH2"G!2(/Y -XM`7\,3(GGZ!H.``!(BT6@2(U(`4B)3:#&`"E(B=_HD_G__TB+1:#&``!(BWV8 -XM,?:Z`0```.A\[@``@$@:($R)[TB)QNA=30$`2(M%F$B)1:!(C7VPZ#Q.`0!( -XMB<-(A=L/A4#___],B6V`38GU@[UT____``^$7/S__TR)[^@T^?__3(MUT.E; -XM_/__OT""40#HX?/__S';9F9F9F9F+@\?A```````2(M]F.@'^?__B=A(@\1X -XM6T%<05U!7D%?7<.#O7#___\`=!!(B[UX____Z.'X__],BW702?_&9BX/'X0` -XM`````$R)\$B)1=`/M@A(@?G_````=!),C7`!2(L5BHM!`/9$$0$(==M(BXUH -XM____2(D!NP$```#KBF8N#Q^$``````!52(GE05=!5D%505132('LB`0``$B) -XM^$B+#1*)00!(B4W02(NXL````$R+H+@```!(QX6P^___`````+XS@E$`Z*OU -XM__\QVTB%P`^$H`(``$B-?>^_(!1`+H#````Z(7S__^%P`^%N````$$/ -XMMD0D`T@]_P````^$I@```$B+#4R)00#V1`@!!`^$E````$F#Q`-,B>?H3?7_ -XM_XG#C4/_/?X#```/AYL```!,8^-,B?],B>:Z`0```$B+C6C[___H8_/__TB# -XM^`%U>_?;2&/S2(N]:/O__[H!````Z#?R__^%P'5A0L:$)<#[__\`]@5?JT$` -XM04R)^W0/OPN"40!(B=XPP.C/[___2(G?28G?2(NU8/O__^@-]/__A<`/A+0` -XM``!)_\5)@^7^2(N]:/O__TR)[KH!````Z-KQ__^%P`^$\OW__TB+O6C[___H -XM5O/__S';#Q]``$B%VW1;,?_H9//__TACR$B-O8#[__^^#````+HV@E$`,,#H -XMJ>___TB)WTC'QL3___^Z`0```.B%\?__AP````3(N_N````$C'A5C[__\`````3(G_OB\```#H5/#__TB)PTB-E5C[ -XM__^_,+N!`$R)]NA]\O__B84\^___OS"[@0")QNC+[___28G$2(7;2(U#`4D/ -XM1,=(B85(^___387D=`Q,B[5(^___Z<(```!(BX58^___2(F%L/O__TC'A:#[ -XM__\`````3(GWOC"140#HC_'__TB%P$&\`````'1D2(U]R+X(````N@$```!( -XMB<%(B850^___Z#?Q__](@_@!=1M(C7W(OO"`40"Z"````.B.\/__A<`/A#P! -XM``!(B[U0^___Z(KQ__]F+@\?A```````13'D9F9F9BX/'X0``````+@```"` -XM387D3(NU2/O__XNU//O__[H`````#X3"````OS"[@0!,B>+H4^___TC'A5C[ -XM__\`````2(V56/O__TR)YTR)]NAF\?__3(GGB<;HO.[__TB)PTB%VW4_2(N% -XM6/O__TPI\$B#^!%R;TF-1A!(B858^___2(V56/O__TR)YTR)]N@G\?__3(GG -XMB<;H?>[__TB)PTB%VW1`@3L```"`=3!(@WL(`'4I2(U[$#'VN@H```#HAN[_ -XM_XD#2,=#"``````]````@'4(2,=#"`$```!(BU,(BP/K![@```"`,=)(BXU` -XM^___B4$H2(E1,$B+!6F#00!(.T70#X41`P``BT$H2('$N`0``%M!7$%=05Y! -XM7UW#2(V5L/O__[\PL&$`3(GVZ*;L__](B<=)B<6^"````+H(L&$`Z-'O__], -XMC;W`^___9BX/'X0``````$B-O6#[__^^`0```+H\````2(N-4/O__^B#[___ -XM2(G#2(7;=2&#/0R%00``#X0S`@``2(N]4/O__^@2[?__A<`/A2P"``!(@_L\ -XM#X)"`@``2(V%FOO__V:!.&`*#X4P`@``2(V-D/O__V:+00AFB06$A4$`2(L! -XM2(D%^_(!1`+H#````Z#/N -XM__^%P`^%K````$$/MD8#2#W_````#X2;````2(L-^X-!`/9$"`$$#X2)```` -XM28/&`TR)]^C\[___C4C_@?G^`P``#XN@$```!(BXU0 -XM^___Z!/N__](@_@!#X7[````QH0=P/O__P#WVTAC\TB+O5#[__^Z`0```.C; -XM[/__A<`/A=4```#V!0BF00!!38G^=!B_`(%1`$R)^TB)WC#`Z'7J__])B=Y) -XMB=],B>],B?;H].O__XG#2,>%N/O__P````"_"+!A`$R)]DB-E;C[___H<^K_ -XM_TB-E7#[__^+2@B)2!A(BPI(B4@0QD`<`,<`````@$C'0`@`````3(GOB=Y( -XMB<+H\.O__TG_Q$F#Y/Y(B[U0^___3(GFN@$```#H->S__X7`#X2=_?__ZRU( -XMBX50^___]D`0('0@2(N]H/O__^CR[___2(N]4/O__^B6[?__38GLZ1[\__]( -XMB[U0^___Z(+M__],B>M(B=_HM^___TB+O:#[___HN^___TB)W^BS[___Z=[[ -XM___H">O__V8/'X0``````%5(B>5!5T%6055!5%-028G_28V'*`$``$B)1=!- -XMC7=@ZQ)F9F9F9BX/'X0``````$F#Q@A-BS9-A?8/A)H```!-BV800?9$)!H@ -XM=0I!@'PD!0!TW.MT28V\)"@!``"^*````.BH[O__2(G#2(7;=,!(_\-(B=^^ -XM*0```.B0[O__28G%08!\)`4`=*5-A>UTH$DIW4B)WTB+==!,B>KHGNO__X7` -XM=8I#@+PO*`$````/A7O___],B>?H\_G__T&)1RA)B5L\N`$```!\-8M'.#G!=1%(BUZ -XM"````.@XZO__28G'1(GWZ'WM__\QVTF#_PAU%$BX(3QA!U#8G82(/$&%M!7D%?7BAZ?__2(/X`75328L&2(T,&$B)3=`Q]DB%VWX@ -XM9@\?A```````@#@O=0K&``!(_\9(BTW02/_`2#G(05]=PV9F+@\?A```````54B)Y4%7059!54%44U!)B==) -XMB?9)B?Q)C48!38ML)`A)BUPD$$B)V4PIZ4@YP7-*28L\)$@I^TDI_4F-A@$! -XM``!F9F9F9F8N#Q^$``````!(`=M(B=E,*>E(.<%R\DB)WN@JD0``28D$)$D! -XMQ4V);"0(2`'828E$)!!,B>],B?Y,B?+H2.7__TT!="0(2(/$"%M!7$%=05Y! -XM7UW##Q]``%5(B>5!5E-)B?Y(A?:[``$``$@/1=Y(B=_H$I```$F)!DF)1@A( -XM`<-)B5X06T%>7<-F9F9F9F8N#Q^$``````!(BP=(BT\(2/_`ZPL/'T``2/_) -XM2(E/"$@YP78A#[91_TB!^O\```!T%$B+-?A\00#V1#(!"'0&@'G^7'73PY"0 -XM54B)Y4%7059!54%44TB![%@$``!)B?9(BP62>D$`2(E%T$G'!@````!(QX6P -XM^___Z()1`$C'A;C[___"@E$`2(F]P/O__TC'AN"40!!@_S_=1))B0Z__*A1`.B9CP`` -XMZ08!``!%A>0/A!P!``"+O:S[___H0.G__TR-O8C[__],B?^^``$``.C,_O__ -XM3(VMT/O__^L3#Q\`3(G_2(G&3(GJZ!+^__]FD(N]J/O__TR)[KH`!```Z*WE -XM__](A05]=PXN]J/O__^@DZ/__B[VL^___ -XM@_\!=!6^`0```.@/X___B[VL^___Z`3H__](C;6P^___O^."40#H,^7__[\! -XM````Z"GG___H=./__Y"0D)!52(GE05=!5E-028G^13'_,?_HV3P``(,]8IU! -XM``!U4$B+/8&=00#HE#@``$4Q_X/X!'4\ORV$40#HDN+__[\!````Z*CF__\/ -XM'X0``````$B!PR@!``"_5X-1`$B)WC#`Z(KA__]!_\GM -XM-P``9F9F9BX/'X0``````%5(B>5!5T%605132(GS28G_]@5TG$$`0'0F2(V# -XM*`$``$B%V[Z=D%$`2`]%\$F-ER@!``"_>X-1`##`Z-#@__]).=\/A$<"``!, -XMB?_H;^4``$B%VTV)_G063(G_2(G>Z,S^``"%P$F)W@^%(0(``$'V1AD(="E) -XMC46900``=1Q,B?_H"R,``#T```"`=1A,B?_H -XM_"(``$B%TG4+28UW*#'_Z`S>__])C4\X28U'*$&+5RA!BWE`+0``OP$```#H5N+__TF+G^````"_Y8-1`#'VZ#,'`0!( -XMB<9(@_L`=1:_[8-1`##`Z"[=__^_`0```.@DXO__28N/V````$F+E^````"_ -XMQ8-1`##`Z`K=__^_`0```.@`XO__54B)Y4%705934$F)_DR)\$B)PTB)7>`/ -XMM@M(@?G_````="E(C4,!2(L5RG5!`/9$$0$"==NX`@```(#Y+@^$[04``(#Y -XM.@^$Y`4``$B-=>!,B??HV.#__XG!N/W`#_Q(#Z_!2,'H)FO`08G**<),*?.X -XM`@```(/Z.W]D@_HR#X^;````@_HN#X_W````@_HD#X\P`0``@_H<#X]$`@`` -XM@\+U@_H-#X>%!0``_R358(11`+@"````@?E"'@``#X5M!0``2(/[!`^%8P4` -XM`$R)][Z$AE$`N@0```#I8P,``(/"Q(/Z`P^'104``/\DU4"$40"X`@```('Y -XMP@$```^%+04``$B#^P(/A2,%``!,B?>^9(91`+H"````Z?4!``"#^C,/A0@% -XM``"X`@```('Y*1X```^%]P0``$B#^P0/A>T$``!,B?>^5(91`+H$````Z&O> -XM__^)P;@"````A@<` -XM#X50!```2(/[!P^%1@0``$R)][Y$AE$`N@<```#HQ-W__XG!N`(```"%R0^% -XM)00``+A0A5$`13'_Z4<#``"X`@```('YF=X!``^%!P0``$B#^P8/A?T#``!, -XMB?>^.X91`+H&````Z'O=__^)P;@"````A'@`/A;X#``!(@_L(#X6T`P``3(GWOCF&40"Z"````.@RW?__ -XMB<&X`@```(7)#X63`P``N("%40!%,?_IM0(``('YI58'`'4G2(/[!W4A3(GW -XMOG2&40"Z!P```.CVW/__B<&X!0```(7)#X17`P``N`(```#I30,``(/Z'0^% -XM1`,``+@"````@?DR=P``#X4S`P``2(/[!0^%*0,``$R)][XJAE$`N@4```#H -XMI]S__XG!N`(```"%R0^%"`,``+@@A5$`13'_Z2H"``"#^B9U7+@"````@?D" -XM>0``#X7E`@``2(/[!0^%VP(``$R)][YAAE$`N@4```#H6=S__XG!N`(```"% -XMR0^%N@(``(L%1'-!`(7`#X1Z`@``_\B)!31S00"X`0```.F:`@``@_HI#X61 -XM`@``N`(```"!^9EZ>0`/A8`"``!(@_L)#X5V`@``3(GWOD*&40"Z"0```.CT -XMV___B<&X`@```(7)#X55`@``N)"%40!%,?_I=P$``+@!````@SW,`0``N`(```#IE`$``('Y,FD``'4G2(/[!74A -XM3(GWOF>&40"Z!0```.@$V___B<&X!````(7)#X1E`0``N`(```#I6P$``+@" -XM````@?DRW@$`#X5*`0``2(/[!@^%0`$``$R)][XRAE$`N@8```#HOMK__XG! -XMN`(```"%R0^%'P$``+@PA5$`13'_ZT2X`@```('Y,EX>``^%!`$``$B#^P@/ -XMA?H```!,B?>^,(91`+H(````Z'C:__^)P;@"````A& -XM40!,B?(PP.CT-0``N`(```#I^O[__V8N#Q^$``````!52(GE059308G^9@\? -XM1```1(GWZ&@-``")P[@)````@_L)=")$B??H)````(/X`W4-A=MTVS'_Z,3_ -XM___K!HD%"&0A`(G86T%>7<,/'T0``%5(B>5!5T%6055!5%-(@^QHB?M$BSWB -XM8R$`08/_"'5`3(LU`7)!`.L1#Q^``````$G_QDR)->YQ00!!#[X&@_@)=.T\ -XM('3I@_A[?R-!OP<```"#^`E_0X7`=7/I\`(``,<%DF,A``@```#IX0(``(/X -XM?'5:08!^`7QU"DG_QDR)-:-Q00!)_\9,B369<4$`0;\#````Z;8"``"#^"!_ -XM"X/X"@^$J`(``.LD@\#?@_@(=QS_),70A%$`2?_&3(DU97%!`$&_!````.F" -XM`@``3(GWOOF&40"Z!0```.A0U___A<`/A/D```!!O;"%40!FD$V%[0^$N`$` -XM`$F+=0!-BV4(3(GW3(GBZ"37__])@\48A9,B35, -XM<$$`Z=````!)C48%2(D%/'!!`$&\!````.L?3(DU+7!!`$V+9?A%,?]-A>0/ -XMA1L!``#IH0```$G_Q$.*1"8!A,`/A(H````\*'7L30'F2(U-N$R-1;1,B?VU!`$PI]DR)_TR)\NBEZ___2(L%9FU!`(`X(G4*2/_`2(D%5VU!`$B+A7C_ -XM___&``!(B[UP____,?:)VNAU`0$`28G&2(N]=':^_*A1`(7`NMJ&40!(#T76N1X````IP8/Y`4&X"8]1`$P/ -XM1,:_`0```+["AE$`,,#HF2\``(,]^ETA`!U_.+MHOH$`0;X=````#Q]$``!( -XMBTOX2(L3OR"Z@0"^Y(91`##`Z&C1__](@\/H0?_.1#LUPETA`'W8QP6V72$` -XM'@```%M!7EW#9@\?A```````54B)Y5-02(G[2/_+#Q]```^^5(B?A(BSA(BW`(,=+H*\D``$B)P4B%R70+N`$```#V01@'=0(Q -XMP%W##Q]``%5(B>5!5T%6055!5%-(@^QH08G5B76,28G_2(L%AVI!`.L49F9F -XM9BX/'X0``````$B)!7%J00!(_\`/MDC_2('Y_P````^$@P```$B+%99F00#V -XM1!$!"'77#[[)NXZ-40!!O)R'40"#^3YW;4BZ``````(``'!(#Z/*:P`N@LS/__00^^!"1!O0D```"#^#M_'H/X(0^%UP(``$&`?"0!/75>\@\0 -XM1;#R#\)%J`3K0X/X/'4B\@\01:CR#Q!-L$&`?"0!/0^%;0(``&8/+L$/D\#I -XMEP(``(/X/0^%7@(``$&`?"0!/749\@\01;#R#\)%J`!F00]^Q4&#Y0'I<0(` -XM`+\"````ONB'40#K8(7)=`A,B??HM='__T&*!"0\(70$/#UU/D&`?"0!/74V -XM3(EE@$B-?<`Q]N@"Y___B@N(C7____^`^2(/E,!$#[;P20'>@/DB="E,B7V0 -XM3(U]P.F[````OP(```"^:H=1`##`Z%HK``!!O0D```#I\P$``$R)?9!,C7W` -XM3(UEN.L1D$&*#DB-4`%(B57(B`A)_\9!B@8\6W\QA,`/A.P````\(@^$Y``` -XM`#PD=2Y,B?],B?8QTD2)Z4V)X.A"]P``A3(G_3(GV,=)$B>E,C46X -XMZ*'V``"%P'0&3`-UN.NG2(M%R$B+3=!(*<%(@_D!?X9,B?_HKN3__TB+1=,B?[H(,[__T&)Q$R)_^CES___187D#Y7` -XM1##H1`^VZ$@['6EF00!T!DR+?9#K;8"]?____R(/E<%!B@8\*4R+?9!U#H#Y -XM`74)3(DU0&9!`.M*A,!T,DG_QDR)-3!F00#K.F8/+L'K+8/X/G4O\@\01:CR -XM#Q!-L$&`?"0!/7429@\NR`^3P.L03(DU`69!`.L+9@\NR`^7P$0/MNB#?8P` -XM=`A,B?_H3L___T2)Z$B#Q&A;05Q!74%>05]=PV9F9BX/'X0``````%5(B>5! -XM5E-(@^P028GV@#\P=1N`?P%X=15(@\<",B`.``/E,`/ML#K>@\?1```2,'A!$ACPT@!P4C_QP^V -XM-S'`2('^_P```'1:0(3V=$9`#[[>]D06`01U-C'`0(#^_W1"#[;S,<#V1!8! -XM1'0VN&$```"`^_]T$0^VP_9$$`$!N&$```!!#T7`@\,**5!5E.)^^AR\O__B<&X"0```(/Y!W10@_D%=2J) -XMW^@*\O__08G&N`D```!!@_X)=#:)W^A%\O__@_@&N`D```!!#T3&ZR&#^02) -XMR'4:B=_HJ?___XG!,<"#^0%T"H7)N`$````/1<%;05Y=PY!(C4=(PV9F+@\? -XMA```````54B)Y;^@OH$`O@0```"Z8+!A`.C(RO__O^"^@0"^!````+J(L&$` -XMZ+3*__^_0*E1`+Y!J5$`Z"4```!(B05N@D$`2(7`=`)=PS#`O_F'40!=Z3HE -XM``!F+@\?A```````54B)Y4%7059!54%44TB#["A)B?Y(B77(2(U5R+^@OH$` -XM3(GVZ/?*__^)1;R_H+Z!`(G&Z$C(__](B<-(A=L/A3`!``!(C57(OV"P80!, -XMB?;HZ\;__TF)QD''!@````!)C5Y(]@4B@D$`!'09O^>(40!(B=XPP.B5QO__ -XMOXBY@0#HR\?__TB)W^B#RO__28G$387D#X3Y````28U>"$R)=?HAO[BP80!,B?9,B>KH&<;__TB)WT2)_DB) -XMPNB[Q___3(GGZ`/'__])B<9-A?9UBTR)Y^B#R___]@4X@4$`!'0*O_6(40#H -XMD,;__[^@OH$`BW6\2(M=P$B)VNA\Q____P-F+@\?A```````2(G82(/$*%M! -XM7$%=05Y!7UW#3(GWZ);+__\QV^OB9I!52(GE05=!5D%505132(/L*$B)3Y,B?I(B<%!N"\```#H])(``$B+?`%(A,,#H%<3__TB)G2#___]%A>0/A(@```!(@[WP_O__`'0@2(N%&/___TB+ -XMC2#___](*T$`!'0*OPF)40#H^<#__TR)][XO -XM````Z-S!__],B?=(B<;H\?C__TB)QDB%]@^$$`(``(,^`0^%^P$``$B+O?C^ -XM___H\!D!`.GV`0``28/$2$R)YS'VZ%W%__](BTVX3(GG2(G&2(N5&/___T&X -XM+P```.CQC0``28G&]@4C>T$`!`^$$0$``+]8B%$`3(GV,,#HDK___^G]```` -XM13'V]@7_>D$`!`^$[0```+\!B5$`Z%/`___ITP```/8%XWI!``1T#+^IB%$` -XM,,#H6;___T6%_W0?13'V]@7&>D$`!`^$M````+]0B5$`Z!K`___IF@```$B+ -XM=;A,B>!(B<=(BZ/_"__^_X+Z!`(G&Z%/`__](A -XM05]=PTB+A6#___](A<`/E,%$B[U8____08'_````@`^4PB#*#[;:2`'#]@7* -XM>4$`!'0=1(G_2(G>Z&'@``"_EHA1`$B)QDR)\C#`Z"^^__](QT70`````$B- -XM5="_X+Z!`$R)]N@FPO__08G$O^"^@0!$B>;H=K___TB%P`^$HP```$2).$B) -XM6`CI8?___TB+O?C^___H-1;W__T2).$B) -XM6`B_X+Z!`$2)YDB)PN@2O___Z9W^__]F9F9F+@\?A```````54B)Y5-02(G[ -XM2(GW2(G6Z/SU__](B<9(A?9T$X,^`7452(G?2(/$"%M=Z0$7`0!(@\0(6UW# -XM2(G?2(/$"%M=Z2P6`0!F9F8N#Q^$``````#_!TB)^,-F+@\?A```````54B) -XMY4%7059!5%-(@^P@2(GS28G_2(U]R#'VZ##8__],BR--A>1T;TR-=<@/'T`` -XM3(G_Z-C!__],B?=(B<9,B?KH:M?__TF+7"002(/#2$B)W^BYP?__3(GW2(G& -XM2(G:Z$O7__](BT702(M-V$@IP4B#^0%_#$R)]^C2UO__2(M%T$B-2`%(B4W0 -XMQ@`@38MD)`A-A>1UF4B+1=#&``!(BT7(2(/$(%M!7$%>05]=PY!52(GE4U!( -XMB?O_"W0'2(/$"%M=PTB-O!__]F9BX/'X0``````%5(B>5!5T%64U!)B?Y(BQ[K -XM$F9F9F9F+@\?A```````2(M;"$B%VW083(M[$$R)]TR)_NC8%`$`AL```"I```@`'073(GWZ$3,__\/'T``08G$2(G3Z\#__TB+%<1)(0!(B=](B<:Y`0```.A4]O__28G'387_ -XM=0M(B=_H]&8``$F)Q[_@OH$`3(G^Z$2\__^)A43___^_X+Z!`(G&Z!*\__]) -XMB<5-A>UT>O8%#W9!``1T'TF+=0A!BWT`Z*3<``"_QHA1`$B)QDR)^C#`Z'*Z -XM__]-BV4`28M="$R)[^B"P/__O^"^@0"+M43____H/___[@```"`3#'@=89(A=MU@3';2(/+`>EV____0;P```"` -XM,=OI:?___Y"0D)"0D)"0D%5(B>5!5T%6055!5%-(@^Q82(E-F$B)59!(B?-) -XMB?[V!09U00`$="5,B?=(B=[H'8\``$F)Q[]UH%$`3(G^,,#H:[G__TR)_^B# -XMO___2(G:3"GR3(GWOGL```#HH+O__TB%P'1;2+@!`"`````"`$R)\>L/9F9F -XM+@\?A```````2/_!0;1U!T6$_W61ZY](B=I)C70D -XM`DV-?"0!,<#K'F9F9F9F+@\?A```````2/_&9F9F9BX/'X0``````(I._X3) -XM#X3,`0``@/E]=0B%P'00_\CKV(#Y>W73_\!(_\;KW$V)YDB)TTB)7:!)*=Y( -XMB?=(B76XZ$.]__])C4P&`4B)3:A(_\!(B46P23G<#X6Z````9BX/'X0````` -XM`$V)_#'`,=OK%P\?@`````#_R$C_PV9F+@\?A```````08H,'(7`=1.`^2QT -XM)(#Y>W03,<"`^7UT&.L1@/E]=-"`^7MU!__`2/_#Z]1(_\/KSTB+1:A(C3P# -XMZ#)C``!)B<=(A=MT#TN-/#=,B>9(B=KH&[C__TJ-/#-,`?](BW6X2(M5L.@' -XMN/__2(U]P$R)_NA+$0$`38U\'`%!@#PWK%F8/'T0``$G_Q69F9F8N#Q^$``````!#B@PLA],B?Y,B?'HKN___TB+6PA(A=MUY4B-?<`Q]NA:$`$`Z9````!(BQOK -XM%DB+4Q!,B>=,B?Y,B?'H?N___TB+6PA(A=MUY>MN2(L5''!!`$R)YTR)_DR) -XM\>A>[___2(L;ZQ]F#Q^$``````!(BU,03(GG3(G^3(GQZ#[O__](BUL(2(7; -XM=##KXTB+&^LD9F9F9F8N#Q^$``````!(BU,03(GG3(G^3(GQZ`[O__](BUL( -XM2(7;=>5(@\086T%<05U!7D%?7<-F#Q]$``!(B?DPP+_CB%$`2(G.Z4ZT__]F -XM9F9F9BX/'X0``````#')13'`,=+K%P\?@`````!(_\=F9F9F+@\?A``````` -XM2#G^=&(/O@>#^#Y_!X/X*G1-Z]R#^%I_!X/X/W1!Z]"#^'I_"H/X6W492/_" -XMZS"#^'UU(S'`2(7)=$5(_\E(_\?KO8/X776H,<$B%VW1!38U\)'!F -XM9F8N#Q^$``````!,BVL03(G_3(GNZ,$+`0"%P'0428/%8$R)[TR)YNAN#`$` -XM0?]$)"!(BUL(2(7;=="XZ/_[_T$C1AA!"40D&$'V1A@0=`5!_TPD($F#O"3@ -XM`````'4>28N&V````$F+CN````!)B8PDX````$F)A"38````2(/$"%M!7$%= -XM05Y!7UW#O[J*40"^WP```+K9BE$`N>B*40#HU;3__P\?1```54B)Y4%64TF) -XM]DB)^_9#&`AT$TB!PR@!``"_B+F!`+Y@BE$`ZQI(@<,H`0``@ST@;4$``'0G -XMOXBY@0"^<(I1`+K@B5$`2(G9,,#HL;/__[^(N8$`6T%>7>G#LO__O^6#40`Q -XM]NAGVP``2(G!,,"_@XI1`+[@B5$`2(G:38GP6T%>74'_X&9F+@\?A``````` -XM54B)Y4%64TB#[!!(B?N+0QAFJ3A$#X4)`0``]L0!=2)(C9,H`0``OXBY@0"^ -XMEHI1`##`Z#BS__^_B+F!`.A.LO__@SV';$$```^%U0```(M#&*D``"``=`U( -XMB=_H?[[__^F^````J0``$`!T#4B)W^C[P?__Z:H```!(BT,02('#*`$``$B% -XMP$@/1=A(B=_HS-(``(/X_P^%AP```$B)W[X"`@``NK8!```PP.C_M?__08G& -XM187V>#Y(C77O1(GWN@$```#H)K/__TB#^`%U'42)]S'V,=+HQ+'__TB-=>]$ -XMB?>Z`0```.ASLO__1(GWZ$NV___K+>BTL/__BSCHC;#__[^(N8$`OJ"*40!( -XMB=I(B<$PP.A6LO__OXBY@0#H;+'__TB#Q!!;05Y=PP\?`$B-3BA,C45!5T%6 -XM055!5%-(@^Q(2(E]H$B+=W!(A?8/A!L"```Q_TR-=:B)^&8/'T0``$B+3A"+ -XM41AF]\(P$`^%N`$``/;"!W0,3(NIH````$V%[7423(VI*`$``$B+41!(A=), -XM#T7J2(EUF$B+5:#V0AD$=3N+42A(BW6@BW8H.=9U#$B+=:!(BW8P2#MQ,'P] -XMBS4;:T$`.?)U(TB+43!(.Q44:T$`?1Q!B`&%P'4-2(M%H$R)J,````#K?T&)_$&#_P)U -XM*TR)]S'VZ(S*__](BT6@2(N8P````$B)W^@YM/__3(GW2(G&2(G:Z,O)__]( -XMBT6P2(M-N$@IP4B#^0%_#$R)]^A2R?__2(M%L$B-2`%(B4VPQ@`@3(GOZ/NS -XM__],B?=(B<9,B>KHCL___2(G?2(G&3(GJZ/#(__]$B?A$B>=( -XMBW682(MV"$B%]@^%*?[__X/_`GP62(M-R,8!`$B+3]@5O:$$`0`^$"0$``+\I -XMBU$`,,#HX:S__^GX````]\$``!``=%1(B=_H[,3__X7`=$7V!3UH00!`=`R_ -XM-HM1`##`Z+.L__](B=_H.\3__[$!A?%J!^@```(!U*TB#>T`` -XM=20]````@'41N@```(!(@WLP`+X```"`=#6Z````@/;!!(G&=2E(BWM@OG!V -XM0`!(B=KH8P@!`#'`D$B#Q`A;7)QK@!````]@4K9T$` -XM0'3=.=9U"$B+0S!(.T-`?0>_>HM1`.LB@?X```"`=0=(@WLP`'0.O[.+40#K -XM#+]LBU$`ZP6_E(M1`##`Z&^K__^X`0```.N8#Q^$``````!(C4XH3(U'.(M6 -XM*(M'.#G0=0A(BT=`2#M&,'T.2(L12(M!"$F)0`A)B1###Q]$``!52(GE0593 -XM28GV2(G[OP(```"^`0```.BDK?__2(/X`70-OP(```!(B=[HD:W__[\!```` -XMO@$```#H@JW__TB#^`%T#;\!````2(G>Z&^M__^_`P```+X!````Z&"M__]( -XM@_@!=`V_`P```$B)WNA-K?__OP\```"^`0```.@^K?__2(/X`70-OP\```!( -XMB=[H*ZW__[\2````O@$```#H'*W__TB#^`%T#;\2````3(GVZ`FM__^_%@`` -XM`+X!````Z/JL__](@_@!=`V_%@```$R)]NCGK/__OQ4```"^`0```.C8K/__ -XM2(/X`70-OQ4```!,B?;HQ:S__[\<````O@$```#HMJS__TB#^`%T#;\<```` -XM3(GVZ*.L__^_$P```+X!````Z)2L__](@_@!=`V_$P```$R)]NB!K/__QP4_ -XM94$``````%M!7EW#9I"#_PY_#8/_`745_P4<94$`ZR6#_P]U*O\%%V5!`.L8 -XM@_\"=0C_!09E00#K"X/_`W40_P7Q9$$`QP7W9$$``0```,-F9F9F9BX/'X0` -XM`````%5(B>5!5T%64U!)B?])BY_H````2(7;=#E-C;?X````28''H````&8/ -XM'X0``````$B+>Q!,B?XQTNA"V@``3(GW2(G&Z%<#`0!(BUL(2(7;==Y(@\0( -XM6T%>05]=PP\?`%5(B>5!5T%6051328G^N`@```!-A?8/A*,```"X"````$'V -XM1AH"#X63````28N>Z````$V-IO@```!(A=MT,TV-OJ````!F+@\?A``````` -XM2(M[$$R)_C'2Z,+9``!,B>=(B<;HUP(!`$B+6PA(A=MUWD'&1@<"ZP\/'X`` -XM````2(G?Z,BN__],B>?HH`,!`$B)PTB%VW012(G?3(GV,=+H6P$``(7`===( -XMB=_HGZ[__X,]T&-!``!U#D$/OD8'6T%<05Y!7UW#3(GWZ&"F``"%P'4L@SW5 -XM8T$``'4C28N>H````$B)W^AD5@``@_C_=`^_F8Q1`$B)WC#`Z(`%``"#/7EC -XM00``=%R_`@```+X!````Z*BJ__^_#P```+X!````Z)FJ__^_`0```+X!```` -XMZ(JJ__^_`P```+X!````Z'NJ___'!3EC00``````QP4G8T$``````$B+/7!C -XM00#HF_[__[__````Z,&L__^054B)Y4%64TF)_D'&1@<"28V>^````&8N#Q^$ -XM``````!(B=_HF`(!`$B%P'092(,[``^4P0^VT4B)QTR)]NA.````A0BE,!2/_#@/K_ -XM=`H/MLKV1#$!"'7KAZ;__XLXZ%2F__^_/8Q1 -XM`$B)QC#`Z"4$```/'T0``$2)YTR)[C'2Z..E__^)PT0YXW0/@_O_=>?H0J;_ -XM_X,X!'3=,<"#/2QA00``#X6/````@_O_=*F+7=1!B=Q!@^1_="J_+XQ1`$2) -XMYC#`Z*ZE__]$B>/K,;_SBU$`2(G>,,#HZ@(``+@!````ZU3!ZP@QP('C_P`` -XM`'0_OQV,40")WC#`Z'BE__]%A?]T'$'&1@<$@SW;8$$``'0G6_O__OPZ,40`PP.@Z`P``2(G?1(G^Z.\```!F9F9F9F8N#Q^$```` -XM``!52(GEB@5&0D$`A,`/A;T```#&!6I"00`!Q@5]0D$``<8%M4)!``'&!9!" -XM00`!Q@530D$``<8%34)!``'&!9A"00`!Q@630D$``87_Q@5(0D$``<8%+$)! -XM``'&!3M"00`!Q@4V0D$``<8%&T)!``'&!2E"00`!Q@4^0D$``<8%.4)!``'& -XM!0]"00`!Q@7R04$``<8%)T)!``'&!1Q"00`!Q@7#04$``<8%LD%!``%T#+\P -XMB4``OC")0`#K![_P=T``,?;H"/G__\8%@4%!``%=PV9F9F9F9BX/'X0````` -XM`%5(B>5!5T%64TB![)@```"X3XQ1`(7VN<*"40!(#T7(2,>%8/___^."40!( -XMB8UH____2(F]Z)JH___H1:/_ -XM_TB+$X,X`G4;OR"Z@0"^4XQ1`##`Z.RD__^_`0```.CRI___2(G7Z(JC__^_ -XM`0```.C@I___54B)Y4B![-````!)B?J$P'0F#RF%8/___P\IC7#___\/*56` -XM#RE=D`\I9:`/*6VP#REUP`\I?=!,B8U8____3(F%4/___TB)C4C___](B95` -XM____2(FU./___TB+!0XY00!(B47X2(V%,/___TB)1?!(C4402(E%Z,=%Y#`` -XM``#'1>`(````2(U5X+\@NH$`3(G6Z!BH__^_"@```+X@NH$`Z+FF__](BP7" -XM.$$`2#M%^'4)2('$T````%W#Z&ZC__]F9F9F9BX/'X0``````%5(B>532('L -XMR````$B)^X3`="8/*85@____#RF-C'1>0P -XM````QT7@"````+_"C%$`O@8```"Z`0```+D@NH$`Z&JE__](C57@OR"Z@0!( -XMB=[H::;__[\*````OB"Z@0#H"J7__^BU$@``]@7*6T$`$'0*OP(```#H8J`` -XM`+\"````Z#BE__\/'X0``````%5(B>534(G[Z%,2``"%VW0;O^6#40`Q]N@# -XMR@``O\F,40!(B<8PP.A4_?__Z,\&``#V!71;00`0=`J_`@```.@,H```OP(` -XM``#HXJ3__V:054B)Y4%64TB![.````!)B?:)^X3`="P/*85`____#RF-4/__ -XM_P\IE6#___\/*9UP____#REE@`\I;9`/*76@#RE]L$R)C3C___],B84P____ -XM2(F-*/___TB)E2#___](BP4Z-D$`2(E%Z$B-A1#___](B47@2(U%$$B)1=C' -XM1=0P````QT70$````$B-?<#H7"\``$B+5-4$`2#M% -XMZ'4,2('$X````%M!7EW#Z$>@__^0D)"0D)"054B)Y4%7059!54%44U!(BP6C -XM-T$`9F8N#Q^$``````!)B?Q!#[8,)$B!^?\```!T#$F-?"0!]D0!`0AUX[]P -XM````Z#E*``!)B<9!QT8@`````$G'1A``````2<=&"`````!%,1(@_D"#X5Z -XM____@#]I#X5Q____@'\!;@^%9____T6%P`^$7@$``$4Q[4R)YS'V,=+HC\X` -XM`$F)Q/8%$EE!``1T7;\ZR8U1`.C/<@``2(G? -XM2(G&Z+3Z``!)_\5,B?_H"6X``$B%P'743(GGZ.RB__])8TX@2(/Y`7143(GH -XM,=)(]_%(A=)T1[\!````OC2-40#K&;\!````OO",40!F9F9F9F8N#Q^$```` -XM```PP.BI_/__13'V9@\?1```3(GP2(/$"%M!7$%=05Y!7UW#Z#DL``!)B498 -XM2<=&8`$```!)C7Y`,?;HXK?__^O0OP$```"^!(U1`.NT#Q]``%5(B>5!5T%6 -XM055!5%-028GV28G_38MG8$V%Y`^$/0$``$&`/BX/A=T```!)C48!3(LM`C5! -XM`&8N#Q^$``````!(B<,/M@M(@?G_````=`Q(C4,!0O9$*0$(=>5(B=^^D(U1 -XM`+H&````Z).>__^%P'5)#[9#!D@]_P```'0]0O9$*`$(=02$P'4Q]@4M5T$` -XM!'08OR"Z@0"^EXU1`$R)XC#`Z+J=__]-BV=@,534$B)^TB+0TC&``!(BT-`2(D#2(M+2$B# -XMP2!(*<%(B4LX2,=#&`````!(BWLHOI"'0`!(B=KH$?<``$B+>T#HF*#__TB- -XM>PB^X%9!`.BZ]0``2(U[*+[P)T``Z*SU``!(B=](@\0(6UWI;J#__V9F9F9F -XM+@\?A```````54B)Y4%705932(/L&$B)\TF)_DB#>Q@`=1U(BT,02(E#&$B+ -XM0TC&``!(BT-`2(D#QT-H`````/8%?U5!``1T)$B+0QA(BW@0Z//.``"_(+J! -XM`+Z\C5$`2(G"3(GQ,,#H_)O__TB+@6SP``@WMH`'0(2(L[Z,B?__](BT78Q@``2(M]T$B).\=#:`$` -XM``!(BT,82(L`2(E#&$B%P'4)2(MS6.B*&```2(/$&%M!7D%?7<.0D)"0D)"0 -XMD)"0D)"0D)!52(GE,?^^D-V!`.@@F?__Z#N2``#HUM'__^@17```Z'S1``#H -XM-['__UWI\8D``)!52(GE4U!(BQV+-T$`ZR&03(N(V````+]NCE$`,,#H7?;_ -XM_TB+6PAF#Q^$``````!(A=MT3$B+0Q"+"+Y`CE$`AZ+.;__]-BW\(387_=>KHQ9C__T2),(/[#G\:@_L! -XM=3;_!9Y300#'!:!300`!````Z9X```"-0_&#^`UW=_\DQ="-40#_!8)300#' -XM!7Q300`!````ZWV#^P)U$O\%9U-!`,<%95-!``$```#K9H/[`W5"_P5(4T$` -XMQP5.4T$``0```.M/_P5.4T$`ZQ[_!5)300#K%O\%.E-!`.L._P4^4T$`ZP;_ -XM!3)300#'!1Q300`!````Z$^8__^)QXG>Z/::__^)WS'VZ#V:___H")C__T2) -XM,$B#Q`A;05Y!7UW#9BX/'X0``````%5(B>7H!P```%WI80$``)!52(GE05=! -XM5D%505132(/L&$B#/105]=PP\?1```54B)Y4%64TB#[!"#/9HT -XM00``#X1\````2(UUZ+______N@$```#HY97__XE%[(7`?F),C77L2(U=Z&8/ -XM'T0``.B["```2(L]A#1!`+[`ED``3(GRZ`?R``!(AR_18]1`##` -XMZ`+S___K"XMUZ$B)Q^BE"@``O_____](B=ZZ`0```.B#E?__B47LA0BEH!2/_"A-MTUH#["70%@/L@=1"`>@$M=0Z`>@))#Y3` -XM#[;PA?9UV#'V@/MM==$Q]H!Z`6%UR8!Z`FMU-X!Z`V5U.$B#P@)F#Q^$```` -XM``"*6@)(_\*`^RU_$`^V\X#[('?M2`^C\7/GZQLQ]H#[+G7>ZXPQ]DC_PNN% -XM,?9(@\("Z7K___]!@\X"9D6)=Q!-A?\/A,`$``!,.25Q,D$`="_V!45/00`0 -XM=!])@<0H`0``OXBY@0"^(H]1`$R)XC#`Z,N5__]-BV<(3(DE0#)!`$B-73__^+..B0D___O[:.40!(B<8PP.@Q\O__ -XMOP$```"^9,"!`+JHP($`Z%V9___H2);__T&)QD6%]@^%^````,<%=C%!```` -XM``"+?<#H^IC__XM]Q+X!````Z.V3__^#^/]U&^A3D___BSCH+)/__[_9CE$` -XM2(G&,,#HS?'__XM]Q(/_`70%Z,"8__^+??HGS,``.FR`@``QP4D,$$``0```$6)-TG'AR@$````````BWW`O@(` -XM``"Z`0```##`Z'Z7__](BWW`08E_($C![R#H?9?__T&+?R"+'9,@(0!(BP4\ -XM,$$`2(7`=`0YWWYW@\,@P>L%C4\@P>D%.=ET74&)S$B)QTR)YKH$````Z'`^ -XM``!(B04),$$`B=E(C3R(1(G@*(",?;HX)3__TB+/?$O00!,B>:Z -XM!````.@\/@``2<'D`DB)!=DO00!,B27:+T$`08M_((D]$"`A`$&+?R"^!``` -XM`+H$````,,#HRY;__T&+1R"Z`0```(C!T^+!Z`5(BPV4+T$`"12!2<>'.`@` -XM``````"+?`IR$ACT$C!X@(Q -XM]NCND___2(L]_RY!`$R)YKH$````Z$H]``!)P>0"2(D%YRY!`$R))>@N00!! -XMB[\P!```B3T;'R$`08N_,`0``+X$````N@0````PP.C3E?__08N',`0``(C! -XMN@$```#3XL'H!4B+#9DN00`)%('_!5PN00"_@,"!`$R)_NC3Z0``0?9'$`)T -XM!\8%72Y!``&_!````.AK.P``1(DPOTC`@0!(B<;HJ^D``$B+!10N00!)B4<8 -XMOP,```"^J,"!`#'2Z*^5___V!?1*00`@=%Y)BT\(26/62('!*`$``+^(N8$` -XMO@N/40`PP.AWD?__28M'"$B+F.@```#K(V8N#Q^$``````!(BU,0OXBY@0"^ -XM'8]1`##`Z$N1__](BUL(2(7;=>*_B+F!`.A8D/__2(L%T25!`$@[1=AU#4B# -XMQ"!;05Q!7D%?79#__V8/'X0``````%5(B>6)/6XM00#'!6@M00`````` -XMQP5B+4$``````,<%7"U!``=`,@#'!58M00``````2,<%4RU!``````!(BSUD -XM2D$`]D<:`G4IO@0```#H+/G__^L49BX/'X0``````.@+]___Z&;X__^#/0LM -XM00``=>U=PV9F+@\?A```````L`&#/?\L00``=0^+!>LL00`[!>$L00`/G<"* -XM#?@L00`(P0^VP8/@`8/P`<,/'T``@SW%+$$```^4P`^VP,-FD%5(B>5(BSW5 -XM24$`]D<:`G5"@SVH+$$``'0.OY:.40`PP.A:Z___ZRN^!````.B.^/__ZQ9F -XM9F8N#Q^$``````#H:_;__^C&]___@SUK+$$``'7MBP5G+$$`7<,/'T0``%5( -XMB>7'!5HL00`#````ZPKH._;__^B6]___@ST[+$$``'7MQP4[+$$``````%W# -XMD%5(B>5!5E-(@^P0QP4C+$$``0```(,]$"Q!``!T0DB+'2LL00#K*V8/'X0` -XM`````$R+R______[H!````Z!V-__^%P'_I2(/$$%M!7EW#54B)Y>LJ -XM9BX/'X0``````,<%/__\/'X``````@SU! -XM2$$```^$S@$``,<%,4A!``````"#/2)(00``=$+'!19(00``````]@4[2$$` -XM('0@OXBY@0"^`I!1`+H"````,,#HQX[__[^(N8$`Z-V-__^_`0```+X"```` -XMZ)X*``"#/=-'00``=#_'!<='00``````]@7P1T$`('0@OXBY@0"^`I!1`+H! -XM````,,#H?([__[^(N8$`Z)*-__\Q_[X!````Z%8*``"#/8='00``=$;'!7M' -XM00``````]@6H1T$`('0@OXBY@0"^`I!1`+H#````,,#H-([__[^(N8$`Z$J- -XM__\Q_[X#````Z`X*```Q_^C'Z___@SU$1T$``'0_QP4X1T$``````/8%64=! -XM`"!T(+^(N8$`O@*040"Z#P```##`Z.6-__^_B+F!`.C[C/__,?^^#P```.B_ -XM"0``@ST(1T$``'09QP7\1D$``````+\2````OC")0`#H'8[__X,][D9!``!T -XM&<<%XD9!``````"_%@```+XPB4``Z/N-__^#/5!5T%6055!5%-0B?-(B?A,BW@0OX#`@0!(B<;H'.D``,=%U`$```"_`0`` -XM`+YDP($`NJC`@0#H\9#__TF+1QA(BW@0Z-20__])BW<8OTC`@0#HYN@``+\# -XM````OJC`@0`QTNC%D/___PT;*4$`0?9'$`)T!\8%*2E!``"Z*`$``$D#5PA) -XM8S=%,.2_7X]1`(G9,,#H9`,``$&)WD&#YG]!@_Y_=`Q%A?8/ANP$```"(P;H!````T^+WTL'H -XM!4B+#=4H00`A%(%,B?^^`0```+H!````Z-`#``!!B[\P!```Z.2/___'1=0` -XM````08M'((C!T^/WT\'H!4B+#9DH00`A'(%,B?\Q]KH!````Z)<#``!!BW\@ -XMZ*Z/__]%,.U%A?8/A?P```!!M0$QV_8%(D5!`"!!O@````#'1=0`````#X2[ -XM`0``Z=@```!!M`''1=0`````08G>08N',`0``+L!````B,&Z`0```-/B]]+! -XMZ`5(BPT@*$$`(12!3(G_O@$```"Z`0```.@;`P``08N_,`0``.@OC___08M' -XM((C!T^/WT\'H!4B+#>LG00`A'(%,B?\Q]KH!````Z.D"``!!BW\@Z`"/__]% -XM,.U%A.1U4DF+5PA(.Q6=)T$`="SV!7%$00`0=!Q(@<(H`0``OXBY@0"^(H]1 -XM`##`Z/J*__])BU<(2(D5;R=!`+^(N8$`OMV/40!$B?(PP.C;BO__Z=$```"Z -XM*`$``$D#5PA)8S>_B(]1`##`Z)X!``!%A.UT+_8%#D1!`"`/A*<```"Y*`$` -XM`$D#3PA)8Q>_B+F!`+ZXCU$`,,#HCXK__^F%````28M7"$@[%?\F00!T,/8% -XMTT-!`!!T'$B!PB@!``"_B+F!`+XBCU$`,,#H7(K__TF+5PA(B171)D$`28M7 -XM"(M"&(/@0,'H!KJXC%$`A<"Y_*A1`$@/1$` -XM`$R)_^B1C?__BP4#)D$`BSWU)4$`@SW20D$``'4>A?]T&H/X`G05QP7A)4$` -XM`0```(,]SB5!``!U).L/@_@!=1V+!;\E00"%P'432(/$"%M!7$%=05Y!7UWI -XM[.;__TB#Q`A;05Q!74%>05]=PV9F9F8N#Q^$``````!52(GE2('LT````$F) -XM^H3`="8/*85@____#RF-(TB)19!(B5W`38UT'B1( -XMB#Y!`!!T'DB!PB@!``!,B>^^(H]1`##` -XMZ`.%__](BT7`2(M0"$B)%70A00!(BT7`@$@0`4B%VW19#Q^``````$&*!@^^ -XM^(,]FQM!``!U(T&+50R-2O]!B4T,A=)_'D$[32A\!#P*=11,B>[H4(;__^L8 -XM3(GNZ,:&___K#DF+30!(C5$!28E5`(@!2?_&2/_+=:Y)BP0D2(7`=%Y(BTVH -XM@'P((PIT4X,].QM!``!T$;\*````OHBY@0#H@H;__^LYBP7^&4$`C4C_B0WU -XM&4$`A__])8W4`2(7V=*"_+)!1`##`Z%3Z__]! -XMBWT`B=[HB83__^N'187V=$6+!<`\00"%P'4[2(L]T3Q!`/9'&@)U+L<%F3Q! -XM```````Q]NBJZ___ZQ(/'X0``````.B+Z?__Z.;J__^#/8L?00``=>V)W^CV -XMA?__D)"0D)"054B)Y4%7059!5%-)B?9)B?](BS6X'T$`3(LF]@5+/$$`!'0; -XMOR"Z@0"^5Y!1`$R)^C#`Z-B"__](BS61'T$`O[C`@0#H=]X``$B#/7\?00`` -XM=$._,````.A3+```2(G#3(DC3(ES"$C'0Q``````3(E[&$R)>R!,B?_HP87_ -XM_TP!^$B)0RA(B1U#'T$`6T%<05Y!7UW#OV"040"^K0```+J!D%$`N9*040#H -XM,8/__Y!52(GE059328GV2(G[2(LU#!]!`$B%]G0*O[C`@0#H[=T``+\P```` -XMZ-,K``!(B1A(QT`8`````$C'0`@`````3(EP$$C'0"@`````2,=`(`````!( -XMB07%'D$`6T%>7<-52(GE4U!(BQVS'D$`2(7;=#M(BWL02(7_="&#/:8800`` -XM=`?HUX3__^L$#[]'$H7`=`E(BWL0Z'2#__](BWL8Z+N%__](B=_HLX7__[^X -XMP($`Z(G:``!(B05B'D$`2(7`#Y7`#[;`2(/$"%M=PV:054B)Y4%7059!5%-( -XM@^P@28G^2(L%-QY!`$R-?=!(C5W83(UER.L49@\?A```````2(L%&1Y!`$C_ -XM0`A(BT@@2#M(*'),2(MX$+C_____2(7_#X09`0``3(GFZ-&#__](BPWJ'4$` -XM2(E!($B+!=\=00!(BT@@2(7)#X0[`0``2`--R$B)2"A(BP7#'4$`2(M(($B- -XM40%(B5`@#[X!@_@N#X7+````Z1X!``!F#Q]$``!(C5$!2(E0(`^^`>FP```` -XM@_A<=75(BPV$'4$`2(M!($@[02AR1TB+>1!(A?\/A/P```!,B?[H18/__TB+ -XM#5X=00!(B4$@2(L%4QU!`$B+2"!(A -XM05]=PY!52(GE05=!5D%44TB#["!)B?=)B?Y)BP9)B48(2(L-+1Q!`$B+02!( -XM.T$H&D$`2(E!($B+!=,:00!(BT@@2(7)#X06____2`--T$B) -XM2"A(BPVW&D$`2(M!($B-4`%(B5$@#[X8@_L)=).#^R`/A?K^___KB$C'0"@` -XM````OP$```"^MY!1`$R)^C#`Z+S;__\QP.GI````2,=`*`````"[_____TF+ -XM1@A)BTX02"G!2(/Y`7\,3(GWZ/^5__])BT8(2(U(`4F)3@C&`%R#^UP/A9<` -XM``!)BT8(28M.$$@IP4B#^0%_#$R)]^C.E?__28M&"$B-2`%)B4X(Q@!<2(L% -XM"!I!`$B+2"!(.T@H`900!( -XMB4$@2(L%U1E!`$B+2"!(AT800!(BT@@2#M(*'))2(MX$$&______TB%_P^$$@$` -XM`$R)[NBH?O__2(L-P1A!`$B)02!(BP6V&$$`2(M(($B%R70M2`--N$B)2"A( -XMBP6>&$$`2(M(($B-40%(B5`@1`^^.>G+````9@\?A```````2,=`*`````!! -XMO______IKP```&9F9F8N#Q^$``````!(@_D!?PQ(B=_H`I3__TB+0PA(C4@! -XM2(E+",8`($B+#3P800!(_T$(ZPUF#Q]$``!(BPTI&$$`2(M!($@[02AR24B+ -XM>1!!O_____](A?]T4DR)]NCH??__2(L-`1A!`$B)02!(BP7V%T$`2(M(($B% -XMR0^$:?___T@#3;H;'W__TB+#84700!(B4$@2(L%>A=!`$B+2"!(A!!!O_____](A?\/A(;]__]( -XMC770Z(U\__](BPVF%D$`2(E!($B+!9L600!(BT@@2(7)=1-(QT`H`````$&_ -XM_____^E/_?__2`--T$B)2"A(BP5P%D$`2(M((.DG_?__2(L%8!9!`$C_0`A( -XM@\0H6T%<05U!7D%?7<-F9F9F+@\?A```````54B)Y4%7059!54%44TB#[%A) -XMB?Y,C6V@3(U]R.L-9I!(BP49%D$`2/]`"$F+!DF)1@A(BPT'%D$`2(M!($@[ -XM02AR2DB+>1`QP$B%_P^$K@4``$B-=8CHQ7O__TB+#=X500!(B4$@2(L%TQ5! -XM`$B+2"!(A1"^ -XM_____TB%_P^$70$``$B-=9#H1'O__TB+#5T500!(B4$@2(L%4A5!`$B+2"!( -XMA[H.7K__TB+#5(400!(B4$@2(L%1Q1!`$B+2"!(A1"^____ -XM_TB%_P^$70$``$B-=;CHI'C__TB+#;T200!(B4$@2(L%LA)!`$B+2"!(A1"[_____TB%_P^$"P$``$B-=<#H%'C__TB+#2T200!(B4$@2(L%(A)! -XM`$B+2"!(A@PP.CO;O__2(UUT$B-5Z#D!``!(BWW(Z)!T__](B=_HB'3__P\?A```````2(/$&%M!7$%= -XM05Y!7UW#3(UUU>LK9F8N#Q^$``````#&1=4M1(A]UL9%UP"_,)-1`#'V3(GR -XM,#^$]_&(/X0@^%L@```,<%@"E! -XM``$```!(_\OKTX/X9'\:@_A0=*F#^%,/A9````#'!4HI00``````ZY2#P)N# -XM^`]W?/\DQ4"140"_`0```.@;D```Z7;____'!20I00`!````Z6?____'!1$I -XM00`!````Z5C____'!0XI00`!````Z4G____'!0\I00`!````Z3K____&!9L, -XM00`!Z2[____'!?@H00`!````Z1_____'!=DH00`!````Z1#____HVPX``&9F -XM+@\?A```````54B)Y4%7059!54%44TB#[!A)B?5!B?['!2\$00`!````QP4! -XM!D$``0```$4QY+@!````3(U]U>L7#Q^``````/\%"@1!`(L%!`1!``\?0`!$ -XM.?`/C5P$``!%A>1U8$ACR$F+3,T`@#DM=2J*40&`^BUU%H!Y`@!U'/_`B07/ -XM`T$`0;P!````ZS6$TG4(_\")!;L#00!$B?=,B>ZZ1911`.@K440`PP.@WR___2&,%4`-!`$F+?,4` -XM2(L=3/L@`.A?&```2(G?2(G&Z#3&``#I'____X/[8W\B@_M5?S^#^T]_:(/[ -XM0@^%@````,<%A2=!``$```#IR@```(U#G(/X$`^'7`,``/\DQ<"140!(BQW> -XM`D$`2(G8Z<8!``"#^U8/A3T#``!(BS7&`D$`OQ#!@0#HS,4``$B+';4"00#& -XM1=4MQD765NG1`@``@_M0#X0T`0``@_M3#X4&`P``QP4`)T$``````.D<`0`` -XM@_M$#X4P`0``2(L]=P)!`$4QY#'VNE^440`QR>BVDP``2(L=7P)!`,9%U2W& -XM1=9$QD77`.E^`@``OP$```#HI(T``.G4````2(LU.`)!`+\`P8$`Z#[%``!% -XM,>3I;`(``,<%E"9!``$```#IK````,8%.0I!``%(BST)`D$`2(UUR#'2Z)YL -XM__^)!80F00!(BQWQ`4$`2(M5R$@YV@^$?@(``,9%U2W&1=9JZ0`"``#'!4$F -XM00`!````ZV!(BS7$`4$`2(L]W?D@`#'2Z):M__](BQVO`4$`QD75+<9%UFWI -XMRP$``,<%&"9!``$```#K*\<%'"9!``$```#K'\8%JPE!``'K%L<%"R9!``$` -XM``#K"L<%[R5!``$```#&1=4MB%W6QD77`$4QY+\PDU$`,?9,B?KIK`$``(/[ -XM20^%M0$``$B+/3X!00#H"1D``$B+'3(!00#&1=4MQD762>E.`0``#Q]$``#' -XM!9(E00#_____2/_`#Q\`#[X0A=(/A"8!``"#^DE_"X/Z00^%>P$``.O5@_I@ -XM?Q6#^DH/A6L!``"`#5TE00`02/_`Z\N-2I^#^14/AU,!``#_),U(DE$`@`T] -XM)4$``>G5````@`TQ)4$``DC_P.N@@`TE)4$`!$C_P.N4@`T:)4$`!$C_P.N( -XM2(U(`8I0`8#Z,@^%B@```(`-_21!`!!(B2_,)-1`#'V3(GZ,2_,)-1`#'V2(G:,Y(``(L%I?]``.F@^___Z!L*``!( -XM@\086T%<05U!7D%?7<._(+J!`+YAE%$`,,#HBVK__^CV"0``OR"Z@0"^C)11 -XM`##`Z'5J___HX`D``%5(B>5!5T%6055!5%-(@>Q8`0``2(FUF/[__XF]E/[_ -XM_[\[DU$`Z)5H__])B<=-A?]U&;\@P8$`Z--I__]!OR#%@0"#^/\/A.@&``"_ -XM0Y-1`.AJ:/__NS.440!(AU, -XM#T3K,?\Q]N@J;/__28G&387V#X2V!@``2(VU,/___TR)]^B/;/__@_C_#X3( -XM!@``OQV340#H#&C__TB)PTB%VW1"2(VUH/[__TB)W^AE;/__A9,B?)F9F9F9BX/'X0``````$B)P44QP.@U-0`` -XM28G&3(GWZ*H'``!(B<-,B??H_VS__^L:O^Z340#H0V?__TB%P'0G2(G'Z(8' -XM``!(B<-(B1WZ!84``"_(9-1`.@,9O__QP6V(4$``````,<%D"%!``````#'!8XA -XM00``````QP5X(4$``````,<%:B%!``````#'!8`A00``````Q@41!4$``,<% -XM8R%!``````#'!5$A00``````QP57(4$`!````,<%22%!``````#H7,S__TB+ -XM!ZC__TB+!:P$00"_Y8-1`#'V -XM2(G",AI-1`.CTJ?__2(M]P$B% -XM_W45OWN340"^=)-1`##`Z*K!__](BWW`OB#!0`"ZZ,"!`.BWOP``2(7`=!!( -XMBW`0O\>340`PP.B"P?__2(L]BP)!`$B%_W0FOB#!0`"ZZ,"!`.B'OP``2(7` -XM=$=(BW`0O\>340`PP.A2P?__ZS6_EY-1`+[HP($`Z'$"``"%P'4BOYJ340"^ -XMZ,"!`.A>`@``A\2``3(GV9F8N#Q^$``````!(B?/K#F9F+@\?A``` -XM````2/_#B@.$P'0$/#IU\TR)_TB)VN@HI?__2(US`8`[`'7/3(GWZ%=H___H -XMHCX``/8%IQU!``AT"K\!````Z#]B``!(BQU8`4$`2(7;=#A!O_RH40!!O@$` -XM```/'X``````2(M[$#'VZ.6+``!(ASP(`!(@SX`=`R_V,"!`.CT7@``ZPJ_V,"!`.@X)0``@STY'4$``'02 -XMO]C`@0#HM7___T&^`0```.LA@STF'4$``'4+BST:'4$`Z)G2__^_V,"!`.B? -XM!0``08G&]@7Q'$$`$'0*OP(```#HB6$``(,]\AQ!```/E,!%A?8/E,$(P0^V -XMP8/P`4B!Q%@!``!;05Q!74%>05]=PTB+'5``00!(B=\Q]NB^9O__O_F340"^ -XM`911`$B)VND<^O__OSF440#HXF'__[\"````Z`AF___H8V'__XLXZ#QA__^_ -XM(+J!`+X9E%$`2(G",,#H"&/__[\"````Z-YE___H.6'__XLXZ!)A__^_(+J! -XM`+XDE%$`3(GR2(G!,,#HVV+__[\"````Z+%E__^054B)Y4%7059!5%-)B?=) -XMB?Z^M)-1`.CE9/__A0/A0H!``!)BQ]) -XM.U\(#X2*````08`^+P^$@````$B)WS'VZ.=E__])B<=,B?1)B=Y!OP````!T(K^VDU$`,?9, -XMB?(QR>BMAP``3(GW3(GFZ$(.``!!OP$```!$B?A;05Q!7D%?7<-52(GE05=! -XM5E-(@>R8````2(G[2(VU6/___^@!9/__B<$QP(7)#X6,````N0#P```CC6#_ -XM__\QP('Y`$```'5W2(G?Z"AA__^%P'0GZ$]?__^+..@H7___OR"Z@0"^`I11 -XM`$B)VDB)P3#`Z/%@__\QP.M$@#LO=0I(B=_H\`H``.LU3(LUS_U``$R)]S'V -XMZ#UD__])B<=(B=\Q]N@P9/__3(GW3(G^2(G:2(G!0;@O````Z,DL``!(@<28 -XM````6T%>05]=PV9F+@\?A```````54B)Y;_@E%$`OJ````"Z`0```+D@NH$` -XMZ$-C__^_`@```.A)8___D)"0D)"0D)"0@SV=`D$```^4P`^VP,-FD%5(B>5! -XM5T%6051328G_08!_!P-T58,]E!E!``!U'$R)_^BZHO__/0```(!U&$R)_^BK -XMHO__2(72=0M)C70/A/P```!-C;P4`#X3#````]@7^&$$`0'032(VS*`$``+^! -XME5$`,,#H;5W__T'V1Q@P=19!@'\'`G4$QD,&`4B)WTR)_N@PK?__BT,@A8#Z&()``!(B04S`4$`BPTY`4$`C5$!B14P`4$`B0/A1C____V!2T800!`=`J_"@```.AE7/__38NW@````.L09F9F+@\? -XMA```````38MV"$V%]@^$CP```$F+7A"`>P4`=.F#>R``=>.`>P<`==TQTDB+ -XM/;P`00"+!<(`00!F9F9F9BX/'X0``````$B)T3G!D@.?!R(0'VB36!`$$`2,'F`^B8"```2(G'2(D]9@!! -XM`(L-;`!!`(U!`8D%8P!!`(G(2(D`$$``````+^@#P`` -XMZ'`'``!(B04!`$$`QP4/`$$`E@```,<%"0!!``````"_L`0``.A+!P``2(D% -XM[/]``+](QH$`O@H```"Z*+%A`.C@7O__]@7F%D$`(`^$K@```+^5EE$`,?;H -XM)X8``(D%"0!!`+^BEE$`,?;H%88``(7`="V_HI91`#'VZ"6%``!(B<B-7?__2(G#ZPDQ_^C! -XM7O__B<._(+J!`+Z[EE$`B=HPP.C<7/__B=_H55___TR)]^CM````BQTW%D$` -XMZ"(#``"#^P!T%^F]````#Q^$``````#H^\+__^@&`P``Z$',__^%P'3MZ$C, -XM__]!B<3'1=@`````2(UUW+](QH$`Z!!;__](B<-(A=MT44R-?=P/'T``BD,' -XM!/X\`G(KQT78`0```$B)W^@86@``2('#*`$``+^_E5$`2(G>2(G",,#H'UK_ -XM_T'_Q+](QH$`3(G^Z']?__](B<-(A=MUMTF+/DB-5=B^@,Q``.B&M@``N`$` -XM``!%A>1T$;_FE5$`,,#H`+C__[@!````2(/$$%M!7$%>05]=PV9F9F9F+@\? -XMA```````54B)Y4%705934$B+'TB%VP^$B@```(L5&/Y```\?0`!(BPT)_D`` -XM._]0`!(BSW@_4``2,'F`^CO!0``2(D% -XMT/U``(L-UOU``$B+W#H`OW__TB+#1O[0``Y#1G[0`!S=DC!Z2!(BP4`^T``Z3/___](BX.0```` -XM2(7`#X2!````ZP602(M`"$B%P'1U2(MP$(!^!0!T[8!^!P!UYXL%[1%!`*A` -XM=!E(@<8H`0``OT2640`PP.A:5O__BP70$4$`J$`/A.S^__^_\)91`.@B5___ -XMZ=W^__^--`F)-93Z0`!(BSV%^D``2,'F`^BD`@``2(D%=?I``(L->_I``.FB -XM_O__2(G?Z/HX``"+640`PP.BL5?__2(/#<$B)W^C@^___Z3O^__^%R70*O]F640#H;5;_ -XM_[@!````@ST1$4$``'492(G?Z(>E___&0P@!2(G?Z.N____I!O[__TB#Q`A; -XM7<-F9F9F9F8N#Q^$``````!52(GE4U!(B?N*0P<\`W4.2('#*`$``+]"@U$` -XMZU:#>R``=%R+#H7)=#['1?0!````/`=T2SP&=4Y(C;,H`0``O_R540`PP.A4 -XMLO__QD,'!TB+>W!(C57TOH#,0`#H?K$``,9#!P#K&$B!PR@!``"_5X-1`$B) -XMWC#`Z-)4__]FD$B#Q`A;75!5E-(B?-)B?Y!@'X%`'4Y0?9&&!!U,HMS"(M+ -XM##GQ7<.0D)"0D)"0D)"0D)"0D%5(B>534$B)^^A"5?__2(7`=`=(@\0(6UW# -XM2(G?Z`X```!F9F9F9BX/'X0``````%5(B>534$B)^^AB5/__BSCH.U3__[\@ -XMNH$`OC*740!(B<)(B=DPP.@$5O__OP(```#HVEC__V8N#Q^$``````!52(GE -XM05=!5E-028G^Z`Y9__](B<-(_\-(B=_HP%3__TF)QTV%_W0<3(G_3(GV2(G: -XMZ%I4__],B?A(@\0(6T%>05]=PTB)W^AT____#Q]``%5(B>534$B)\^AR5O__ -XM2(7`=`=(@\0(6UW#2(G?Z$[___]F9F9F9BX/'X0``````%5(B>5!5E-)B?9( -XMB?OH+E7__TB%P'0%6T%>7<-(B=],B?;H"0```&8/'X0``````%5(B>5!5E-) -XMB?9(B?OH;E/__XLXZ$=3__^_(+J!`+X7534$B)^[X!````Z&U4__](A_O__9F9F9F8N#Q^$``````!52(GEN@$```#H\E3__X7`=0)=P^AG -XM4O__BSCH0%+__[\@NH$`O@*740!(B<(PP.@,5/__OP(```#HXE;__V:054B) -XMY5-(@>R8````2(G[2(VU:/___^@U5/__B<&X_____X/Y_W0LN`#P```CA7#_ -XM__\]`$```'42Z`)2___'`!4```"X_____^L(2(G?Z%U4__](@<28````6UW# -XM#Q\`54B)Y4%64TB#[!!(B?M(C77LZ!E2__](AQ(B%?__TB) -XMWTR)]NB]5O__2(7`=>A(B=_H4%?__TB#Q!!;05Y=PY"0D)"0D)!(B?A(BSU. -XMX"``2(G&,=+I_)/__V9F9BX/'X0``````%5(B>5!5T%6055!5%-(@>SX```` -XM28GV2(G[2(V]2/___[X``0``Z'5L__](C;TP____O@`!``#H9&S__TB)WTR) -XM]NB)T/__ZQL/'X``````OP$```"^8)M1`$B)PC#`Z,RP__]%,>WK%P\?@``` -XM``"Z`0```.A6&0``9@\?1```2(V]2/___^@DV?__2(7`=0[HFM#__X7`=>;I -XMNQ$``(`X"75Z187M=*=(_\!(B1)C7[YZ)MR__^#^`8/AY<# -XM``")P/\DQ5"740!F#Q^$``````!(C;U(____Z`30__](A<`/A-O^__](BPU< -XMZ$``#Q]``$B)PP^V$TB!^O\```!T"TB-0P'V1`H!"'7F2(V],/___TB)WN@' -XM$0``2(7;#X2>_O__2(G'Z"9R__^%P`^$CO[__^N<28/&_$R)]^A0L/__2(G# -XM2(7;#X0)`P``#Q]``$B-O4C___^^38U1`.A_T?__2(7`#X2E`@``2(G?2(G& -XMZ)NR__^%P'772(G?Z`^T___I.O[__TF#QOY(BP6WYT``9F9F9F9F+@\?A``` -XM````3(GW#[87L?](@?K_````2(G^="),C75(B=^^*X=1`+H'````Z&-0 -XM__^%P'4+2(/#![H!````ZS1(B=^^^891`+H%````Z$)0__](C4L%A8\*$`/E,;K`T`P]D"$]D@/19`A/9(B?YU,^L29F9F+@\?A```````BD8!2/_&A,!T0#S_=/(/ -XMML!"]D0X`0ATY^LO#Q]$``"*`4B)SH3`="$\_W4(2/_&2(GQZ^L/MLA"]D0Y -XM`0AU"DB-3@$\*70+Z]9(B?'K!)!(_\$/M@%(/?\```!T"$+V1#@!"'7J@_H! -XM=0P/MI4H____P>((ZQR#^D!T"('Z@````'4/@+TH____`+D`````#T71A,!T -XM!#PC=02%TG46OP(```"^4)Y1`$R)\C#`Z&VL___K4.CV;@``Z;'[__^_`0`` -XM`+[+GE$`,,#H4*S__^LSN@$```"X/@```$R)]I`/O@XYP0^$2`@``$C_QH3) -XM=>Z_`@```+ZAGE$`B<(PP.@;K/__3(GGOG2&40"Z!P```.BI3O__AUT1HL%DO!``(7`=#(QR4B+%7GP0`!F#Q^$``````")SDB+-/)( -XM@[[H`````'0*@$X:0(L%8O!``/_!.<%RX,<%4O!```````!,B>?H'A8``$4Q -XM[87`#X7#^O__QP4U\$```````$R)Y[YWG%$`Z+Q/__\QR4&`/`0`=$%*C7P@ -XM`;X[````Z+10__](B<,QR4B%VW0H2(N](/___TPYYTB)V7062(G83"G@2`'' -XMOCL```#HB%#__TB)P<8#`$B)C2C___],B>$V-;@%! -XM@/\Z3(GK=0U)C5X"08!^`3I)#T7=#[8#2#W_````=!%"]D0@`0AU5H3`=%(/ -XM'T0``$B)W[X1GE$`Z&-.__^`/`,`=#I(C4P8`0^V1!@!2#W_````2(G+=-A" -XM]D0@`0A(BD3____183_#X2Q`P`` -XM08#_*`^%H@````]7P`\I19!(C7VH2(UUD#'2Z,I1__^%P`^$L@4``$B+79!( -XMA=MT8XL53^Y```\?`$B+#4'N0``YRG,-2,'I($B+!2KN0`#K)HTT"8DU)^Y` -XM`$B+/1CN0`!(P>8#Z*_U__](B04([D``BPT.[D``2(MS$(U1`8D5`>Y``(G) -XM2(DTR$B+6PA(A=MUIDB-?9`Q]NA+I```3(MUJ$R)=:#ITP$``$B+7:B`.P!, -XMC7VP#X2(`0``2(G?3(GVZ)*4__^%P'582(G?3(GVZ,,?``!)B<1-A>1U(DB) -XMWTR)]KH!````Z,M#``!)B<1!@&0D&OU-A>0/A$0!``!(BPUZ[4``.0UX[4`` -XM#X/\````2,'I($B+!5OM0`#I$@$```]7P`\I1<`/*46P2(G?3(GV2(U=P$B) -XMVDR)^>BFCO__2(G?OL!E0`#HF:,``.L7#Q^``````(U1`8D5(^U``(G)3(DD -XMR)!,B?_H**,``$B)PTB%VP^$A@```$B)W^AD3?__28G%20'=2(G?3(GNZ`,? -XM``!)B<1-A>1U'DB)WTR)[KH!````Z`M#``!)B<1!@&0D&OU-A>1TK4B+#;[L -XM0``Y#;SL0`!S#4C!Z2!(BP6C[$``ZX&--`F)-:#L0`!(BSV1[$``2,'F`^@H -XM]/__2(D%@>Q``(L-A^Q``.E6____3(G_,?;HW*(``.LUC30)B35I[$``2(L] -XM6NQ``$C!Y@/H\?/__TB)!4KL0`"+#5#L0`"-40&)%4?L0`")R4R)),A,BW6@ -XMZQ9F9F9F9F8N#Q^$``````!)_\9,B76@00^V!D@]_P```'0.2(L-'N!``/9$ -XM"`$(==],B76H00^V!DB#^#H/AVW\__](N0$````"```$2`^CP0^#6?S__S'; -XM13'_BP7:ZT``AM` -XM`$B+/-D/MD\$B0/E<$/MLD!P8/Y`@^,808``+\!````OLZ=40`PP.ALIO__,=N#/2_K0``` -XM0;XH`0``=#%F9BX/'X0``````$B+!0GK0`!(BSS83`'WOB"Z@0#HN$O__TC_ -XMPXL%^^I``$@YPW+:OPH```"^(+J!`.BK2O__QP7]ZD``'P```$4QY.DJ!P`` -XM@SW.ZD```'1`2(L%N>I``$B+&+@H`0``2`'#2(G?OGB=40#H$4K__X7`=!%( -XMB=^^@)U1`.@`2O__AM[ -XM28U\)`?K%&9F9F9F+@\?A```````BE\!2/_'L/^`^_](B?YT-@^VPT+V1#`! -XM"'7EA-N(V$B)_G4BOP$```"^%)Y1`+ITAE$`,,#H!J7__^E1]/__D(I&`4C_ -XMQCS_=/:$P`^$+O3__P^VP$+V1#`!"`^%'_3__^O=2(G!2/_!2(L%J-U``$F) -XMST$/MA=%,?9(@?K_````="!)C4\!13'V]D0"`0AUW^L09F9F9BX/'X0````` -XM`$'_QD0[-6+I0`!S&D2)\$B+#4KI0`!(C3S!1(GNZ#X(``"%P'7:3(E]B(L% -XM7.E``$&`/P!U'8/X%']6@_@%#X6U````QP6J_T```0```.FF````@_@:#X14 -XM`P``@_@0#X1+`P``@_@.#X6+````3(G_Z*K4___I-0,``+\!````OC>=40`P -XMP.@4I/__Z1\#``"#P.N#^`9W8/\DQ8B740!(C;UP____OE#G0`#HGZ```.M& -XM3(GWZ(4,``#I,//__TB+5:B_`0```+Y3G5$`,,#HRZ/__S'`Z23^___'!0K_ -XM0``!````ZQ''!2+_0``!````ZP7H)QH``(L%C>A``(/X&P^'-0$``+E`!"(( -XM#Z/!#X,G`0``2(M%B(`X``^$!P$``$B+#4[<0`#K%`\?0`!)_\=F9F9F+@\? -XMA```````00^V%TB!^O\```!TXX32=`?V1`H!"'38BPTNZ$``@_D:?Q>#^0E_ -XM)(/Y!G5\2(G'3(G^Z'@>``#K;X/Y&W5J2(G'3(G^Z/8<``#K78/Y"G4-2(G' -XM3(G^Z-0>``#K2X/Y$74-2(G'3(G^Z.(R``#K.8/Y%74T2(N=9( -XMB46(@#@`28G'#X46____2(V] -XMZPUF#Q]$``!(B76(28GW@#X`#X3V````2(L%$=M``.L*#Q^``````$G_QT$/ -XMM@](@?G_````=/"$R71&]D0!`0AU$X#Y*'7@23GW=MM!@'__)'4'Z]*`^2AU -XM)P]7P`\IA6#___],B?=(C9U@____2(G>,=+H#TK__X7`=7[IV@$``$2)YTR) -XM^NA;!P``28U'`4&`/P!)#T3'9F9F9F9F+@\?A```````2(L-@=I``&8/'X0` -XM`````$B)Q@^V%DB!^O\````/A#W___](C48!]D0*`0AUXNDM____9F9F9BX/ -XM'X0``````$@%*`$``$2)YTB)QC'2Z.T&``!(B=_H-9P``$B%P'7@2(M%B.N: -XM2(,]$N9```!U4#'`2(L-]^5``(L5_>5``.L29F9F9F9F+@\?A```````2/_` -XM.=!S*4B+-,'W1A@P(`0`=>R`?@0`=>9(B37/Y4``9F9F9F9F+@\?A``````` -XM2(N](/___^CD1O__0;T!````2(N5*/___TB%T@^$'O#__TC_PDB+!9S90``/ -XM'T``2(G7#[8/2('Y_P```'092(U7`?9$`0$(=>9!O0$```"$R0^$Z.___^BC -XM[/__28G&13'_0;T!````@SU,Y4````^$RN___V8N#Q^$``````!$B?A(BPTF -XMY4``2(LUT -XM+,<%\.1``!4```!%,>3I'0$``$B+58B_`0```+YZG%$`,,#HYY___^GR_O__ -XM08/\`75)2(L-E>1``$B+`0^V4`2#XC^)%;'D0`"#^AD/CY8```"#^@P/A9X` -XM``!(BPVDSB``2(,Y``^$P````,<%A.1```````#IL0```$6%Y`^$A@```+\! -XM````ONN=40`PP.AYG___,=N#/3SD0```0;XH`0``="X/'X0``````$B+!1GD -XM0`!(BSS83`'WOB"Z@0#HR$3__TC_PXL%"^1``$@YPW+:OPH```"^(+J!`.B[ -XM0___13'DZT>#^AIU/\<%?_I```$```#K,X/Z$'4;QP5R^D```0```.LBQP7F -XMXT```````$4QY.L6@_H3=0Y(QP75XT```````$B+`42+($B+1:#I-OG__T6% -XM[71+BP67XT``A05]=PV:054B) -XMY4%7059!5%-)B?9)B?],B?>^(P```.BB0___3#GP#X2Y````2(7`#X2D```` -XM28L'28E'"$V)].L*#Q]``$C_PTF)W$&*!"2$P'1C/"-T7SQ<=59)C5PD`4&* -XM1"0!/"-U0$R)YDPI]DR)_TR)\NBK6/__28M'"$F+3Q!(*<%(@_D!?PQ,B?_H -XM,EC__TF+1PA(C4@!28E/",8`(TV-="0"B@.$P$D/1-SKE$R)X^N/32GT3(G_ -XM3(GF3(GRZ%Y8__],B?_H-EG__TF+1PC&``!-BS=,B?!;05Q!7D%?7<._G)Q1 -XM`+XW!```NO">40"Y_YY1`.@G0/__#Q^``````%5(B>534$C'!0_B0``````` -XMQP7]X4``(````,<%]^%```````"_``$``.C!Z/__2(D%VN%``,<%\.%``(`` -XM``#'!>KA0```````OP`$``#HG.C__[L8````2(D%R.%``$B+NZB740!(BX.P -XMEU$`2(UT./^+D[B740"Y`0```.@-.```BHN\EU$`B$@$BXO`EU$`B0A(@\,@ -XM@?NX`P``=7>FAE@``,,"_ -XM@)M1`%M!7EWI(9O__UM!7EW#9F9F+@\?A```````54B)Y4%7059!54%44TB# -XM[!A(B7W(B?�=,BR=%BVPD&$2)Z(/@!SG!=`R%P'0(AZ/"4``"%P'08@SVAX$```'4+3(GO3(G^Z)B5 -XM``!!_T<@38MV"$V%]G7+QT,8!!```$F#Q%!,B>=(B=[H=94``$B+1/K`TR)XT$)]42):QBX`0```)!(@\086T%<05U!7D%?7<.) -XM\[\%````Z.7F__])B<=!]L4!=`A!Q@0`#HN9,``$R)+;+>0`!,B6W0Z7,! -XM``"#X#^#^!T/A2P"``#_!8_>0`#I$@(``(/X#'4U2(L]CL@@`$F!Q2@!``!, -XMB>[H=Y,``+]HQR4B#Q`A;05Q!74%>05]=Z2AC``!%A?9T!D4) -XM=1CK7(,](MY```!T4TV-96`QVV9F9F9F+@\?A```````B=A(BPWWW4``3(L\ -XMP4F-?W!,B>[H5Y(``(7`=!B#/0C>0```=0M,B>=,B?[H_Y(``$'_1R#_PSL= -XMS]U``'+!08M%&$R);="#X`>#^`0/A:<```!(BT703(MH4$V%[0^$E@```$6% -XM]G0G#Q^``````$F+11!$"7`838MM"$V%[77OZW=F9F9F+@\?A```````@SUU -XMW4```'1838ME$$V-="1@13'_9F8N#Q^$``````!$B?A(BPU&W4``2(LW!,B>;HII$``(7`=!>#/5?=0```=0M,B?=(B=[H3I(``/]#($'_QT0[/1W= -XM0`!ROTV+;0A-A>UUEHL%*-U``$R+9=!!B40D'$B+#1#=0``Y#0[=0`!S#4C! -XMZ2!(BP7UW$``ZR:--`F)-?+<0`!(BSWCW$``2,'F`^ABY/__2(D%T]Q``(L- -XMV=Q``(U1`8D5T-Q``(G)3(DDR(,]Q]Q```!T34V-M"20````13'_ZR-(B=]( -XM@^^`3(GFZ+&1``!,B?=(B=[HII$``$'_QXL5D=Q``$$YUW,81(GX2(L-=MQ` -XM`$B+',&+0QQ!.T0D''S`2(/$"%M!7$%=05Y!7UW#OYR<40"^M`$``+JZG%$` -XMN<6<40#H.#K__P\?A```````54B)Y4%7059!5%-!B=8QTC')Z/EJ``!)B<=% -XMA?9T+TR)_S'VZ*<\__](BQ4PQB``3(G_2(G&,05]=Z7NU -XM__\PP+\!````OD&>40!(B=I;05Q!7D%?7>F_E?__OP$```"^+YY1`$R)^C#` -XMZ*N5__],B?];05Q!7D%?7>F;.___3(GG,?;H`3O__TB+%4K$(`!,B>=(B<:Y -XM`0```.C:- -XM``!,BR7XS4``13'M9F9F9BX/'X0``````$F)QD$/M@Y(@?G_````=`Y)C48! -XM0O9$(0$(=>3K(K'_13'MZQMF9BX/'X0``````$&*#TV)_D&)Q0\?@`````!- -XMC7X!@/D]#X3/````#[[!@_@J?QZ#^"$/A?(```!$B>B#X`2#^`$9P/?01`GH -XM@\@$ZVR#^#]U%42)Z(/@"H/X`1G`]]!$">B#R`CK4H/X.G4<3(G_ONB"40"Z -XM`@```.@,-___AB# -XMR`+K$T2)Z(/@`8/X`1G`]]!$">B#R`&#^/]T;.E'____#Q^``````$G_QD&* -XM#D&]!````(3)#X0\____@/D]#X0S____Z^&038U^`4+V1"`!"'0/38G^00^V -XM!D@]_P```'7E0?;%"'0^2(M]P$B+=^ -XM)````.C[./__2(7`="M,B??H73G__^L/2(UUN$R)]^@_3___28G'2(MUN$B%]G0/OP(```!,B?(P -XMP.@TD___38G^0?;%`7111(LEU.Y``,<%RNY```````!(BWW`2(MUR.B]70`` -XMA@E6P``3(GW,?8QTNBY8P``28G&1(DEC^Y` -XM`$V)].L#13'D2(M]P$B+=05]=PY"0D)"0D%5(B>5!5T%6055!5%-0 -XM18G'28G,2(E5T$F)_DDIU$PI]D6%_P^5P`^VV$@!\TF-?!P!Z$G=__])B<5, -XMB>],B?9(B=KH.#+__TZ--"-%A?]T!4:(?"O_3`'K2(G?2(MUT$R)XN@8,O__ -XM0\9$-0``3(GH2(/$"%M!7$%=05Y!7UW#54B)Y4%7059!54%44TB#[!A)B=1( -XMB77`2(G[OY@!``#HV]S__^L,9@\?A```````2/_#B@N`^0ET]H#Y('3Q28G& -XM2(G?Z$8V__](_\!T#$B)Q^BIW/__28D$)#'`2(E%T$F+-"1%,,F_,@```$F) -XM\$R)\.L;9F8N#Q^$``````!(_\9(_\-F+@\?A```````1(HS00^^SH/Y6W\V -XM@_DG#X>"`0``2+H`!@```0```$@/H\IS;$6$R0^%:0$``$V%P`^%P0```$4Q -XMP$4PR4C_P^N^@_E<#X5,`0``2(U3`42*G+````@_EM#X^(````@_EF#X6V````0;8,Z:X```!(A05]=PV9F+@\?A```````2(L/2(L%OL=``&8/'T0``$F)R$$/MC!(@?[_ -XM````=!U)C4@!]D0&`0AUY3#),@$`2`]%T.O2@_@??P>#^`EUR.L%@_@@=0:$R70AZ[N#^")T!8/X)W6Q0#CQ -XM=`R$R70#0(C.0(CQZZ`PR>N<2(D73(G`PP\?1```54B)Y4%7059!54%44U!) -XMB<](B=-)B?9)B?Q(B5W03(UMT.L69F9F+@\?A```````2/_#2(E=T$G_Q$PY -XM^W1NB@N`^2H/A(4````QP$TYY@^$T0```(#Y/W36@/E<=19(_\-(B5W0,Y,B?KHKP```(G!,<"% -XMR0^$B0```$B+7=#KC3'`03H,)'5[ZX--.>8/E,`/ML#K;@\?A```````28U, -XM)`$QP$TY]$F)S'172/_#9F9F9F8N#Q^$``````"X`0```$DYWW0\B@-(_\,\ -XM*G3M2/_+/#]TQF8/'T0``#'`33GF=!],B>=,B?9(B=I,B?GHZ/[__XG!2?_$ -XMN`$```"%R73:2(/$"%M!7$%=05Y!7UW#9F8N#Q^$``````!52(GE2(L.2#G1 -XM#X2N````1(H!08#X(70&08#X7G4A2/_!2(D.0`^^_^C2____A<`/E,`/ML!= -XMPP\?A```````08#X7'442/_!2(D.,0$M=2U,C4D",5!5T%6 -XM055!5%-02(G328GU28G^08!]``!T0TB)7=!,B>^^)0```.@A,?__28G'387_ -XM=#=-B?3K"@\?0`!)_\5)_\1-.>]T*T&*!"1%,?:$P'1X13'V03I%`'5OZ]], -XMB??HIS#__TB)`^M@38GO38GTZPI!@'\!`'0_2?_'3(GC13'V9BX/'X0````` -XM`$R)_TB)WNAU+___ALA3"GC2(M%T$B)&$V)YNL2 -XM3(GGZ$PP__](BTW02(D!38GF3(GP2(/$"%M!7$%=05Y!7UW#54B)Y4%7059! -XM54%44U!)B^^)0```.A),/__2(G#2(7;=!=(B=Y,*>Y, -XMB?=,B>KHD$7__TC_PTF)W4R)]TR)YDR)^NA\1?__3(GOZ-0O__],B?=(B<9, -XMB>I(@\0(6T%<05U!7D%?7>E81?__#Q^$``````!52(GE05=!5E-02(GS28G^ -XM3"GS2(U[`>@$UO__28G'3(G_3(GV2(G:Z/,J__]!Q@0?`$R)^$B#Q`A;05Y! -XM7UW#54B)Y4%7059!54%44U!)B==)B?1(B?N_`0```$@IWTP!Y^BYU?__2(E% -XMT$F)Q>L*18AU`$G_Q4C_PTPYXW0Z1(HS08#^7'7H2/_#3#GC="%$BC-!#[[V -XM3(G_Z%$O__](A05]=PV9F9F9F9BX/'X0``````#'`2#GW=`X/OD;_2/_..=!U -XM[DB)\,.0D)"0D)"0D)"054B)Y5-02(UU]+](QX$`Z/PI__](A!`$R)]NC.+/__08G' -XMOPC'@0!$B?[H'BK__TF)Q$V%Y'4?2(MUV$R)]^A*(@``28G$OPC'@0!$B?Y, -XMB>+H9RK__TF#O"3H`````'0A28V<).@```!(B=\Q]NBZ@P``2,=#"`````!( -XMQP,`````28-\)'``=!Y)C5PD<$B)WS'VZ)2#``!(QT,(`````$C'`P````!! -XMQT0D&```!`!(BW70]D8($'020<9$)`152(M%R$F)A"0(`0``]@6%XT``@'08 -XM2(/&2$B+505]=PV9F9F9F -XM9BX/'X0``````%5(B>5!5T%6055!5%-(@^PH2(E-P$B)5;A(B?)(B57(2(G[ -XM,1(QT70`````.L0D$'!Q0)!#[Y&_T$QQ4G_SDDYW@^$XP```+](QX$` -XM3(GV1(GIZ.@G__],B?%(*=E(.PW3XD``#X^C````OTC'@0")QNB9*/__28G' -XM387_#X2+````0?9'"`@/A(````!-A?9,B?!U"TB)W^A2+/__2`'8,GH_";__[](QX$`B<;HP"?__TB)P3'`2(7)=#.* -XM00@D&$&\`````$P/1>&$P$@/11U=RT``,1T$TB+1;A,B2!(BT7`2(D8 -XMN`$```!(@\0H6T%<05U!7D%?7<,/'T``ZPYF9F9F9BX/'X0``````%5(B>5! -XM5T%605132(/L$$F)]DF)_TV%]G4.3(G_Z!XK__])B<9-`?XQR4TY_DR)\'0) -XM00^^3O])C4;_3#GX=!'!P0(/OE#_,=%(_\A).<=U[[](QX$`3(G^3(GRZ"\F -XM__]!B<2_2,>!`$2)YNCO)O__2(G#2(7;=6A,B7782(U5V+\`L6$`3(G^Z)(E -XM__](B<-(BT783"GX2(D#9L=#"```2,=#&`````!(QT,0`````$C'0T`````` -XM2,=#.`````!(QT,P`````$C'0R@`````OTC'@0!$B>9(B=KH[R;__P^W0PBH -XM"'4LBPVYRD``C5$!B16PRD``B4L@@\@(9HE#"$B+`T@[!7S@0`!V!TB)!7/@ -XM0`!(B=A(@\006T%<05Y!7UW#9F8N#Q^$``````!(BX<(`0``2#L%RLE```^4 -XMP4B%P$B-0!`/E,((RD@/105[LR``PV8N#Q^$``````!52(GE4U!(B?!(B?M( -XMA^_2,>!`$B)WDB)PNC/)/__OTC'@0") -XMQNB3)?__2(7`=`2`2`@!2(/$"%M=PP\?`%5(B>534$B)\$B)^TB%P'4+2(G? -XMZ$2(G"Z$\D__^_2,>!`(G&Z!,E__]( -XMA!``2(UX$'4,N@!E0`#H -XM!'\``.L%Z'UG__^_2,>!`$B)WNB@*/__2(7`=W`` -XM=%6*0P0D/SP5=$Q,C:LH`0``3(GOZ/C! -XM^O__A\Q]NA2)___3(GO2(G&Z'=M__^%P`^$ -XM=00``/8%)-U``(!T#[]LH%$`3(GN,,#HER'__TR)[TR)K6C____HV";__TB) -XMPTB%VP^$G@```$B+19!(C8P8*`$``$0/OJ0#)P$``$4Q[>L89I!(BT60#[Z$ -XM&"8!``!!P<0"03'$2/_+2(/[`7192(M%D$R-M!@G`0``OTC'@0!,B?9(B'HOR'__[](QX$`B<;H@R+__TB%P'01387M=`F+2"!!.TT@?0-) -XMB<5,B?E(BXPP.BZ(/__3(GO3(GVN@$```#HFE$``$B%P'44 -XMOZN@40!,B>XPP.B6(/__Z3L#```/5\`/*46P2(M-D/9!&B!)B<5T($B)1:A( -XMB4602(U]J$B-=;!,B?+HM2C__^D.`0``2?_%08I-`(#Y"73T@/D@=.](B460 -XM3(EMH`\?@`````!,B>[K&V9F+@\?A```````2/_&2(EUH&8/'X0```````^V -XM!D@]_P```'3EA,`/A)D```!(BPW^N$``]D0(`0AU,CPD=1%(B=],B?;H,$L` -XM`$B+=:#KRCQ<=;:`?@$`=`I(@\8"2(EUH.NV2/_&2(EUH.NM3(GON@$```#H -XMX!H``$C_1:!(C7VP2(G&Z,!Y``!,BVV@ZQ%F+@\?A```````2?_%3(EMH$$/ -XMMD4`2#W_````#X1(____2(L->;A``/9$"`$(#X0V____Z]1,.>Y,BW6(=#M, -XMB>^Z`0```.A^&@``2(U]L$B)QNAB>0``3(MUB.L<9F9F+@\?A```````0?]$ -XM)"!F9BX/'X0``````$B-1;!)B<5F#Q^$``````!,B>_H&'H``$B)PTB%VP^$ -XM@0```/8%@=I``(!T$TB-LR@!``"_$XM1`##`Z/`>__](BWV82(G>Z`1]``!( -XMA(P8#!_H#Y -XM`@^#;_____9#&#`/A77___\\`G4&0<9$)`8!3(GG2(G>Z'!N___I6____TB+ -XM?9#HHB3___8%]]E``(#I$P$``/8%Z]E``(!T$$F-=4B_AZ!1`##`Z%T>__]) -XM@\40#U?`#RE%P$B+G6C___](B=\Q]NC1(___2(G?2(G&3(GJ3(UMP$R)Z>A\ -XM9/__3(MUB.L69@\?1```0?]$)"!F9BX/'X0``````$R)[^@(>0``2(G#BP5[ -XMV4``N8`````AR$B%VP^$B@```(7`=`^_$XM1`$B)WC#`Z-P=__](B=\Q]KH! -XM````Z.T8``!(B<-(BWV82(G>Z-Y[``!(A(P8#!_H#Y`@^#:?____9#&#`/A6____\\`G4& -XM0<9$)`8!3(GG2(G>Z$IM___I5?___X7`3(NU>/___TB-7:!T"K\*````Z`P= -XM__]!_TPD($B+?9A(BW6(Z'I[``!(BX5P____2(7`2(GG^___2('$B``` -XM`%M!7$%=05Y!7UW##Q]$``!52(GE05=!5E-0Z($```!(BQT:PD``ZQ@/'X0` -XM`````$B#PPA)B=])BQ]F#Q]$``!(A=MT2DR+Z-YZ``!,B??H -XMMB+__TF+'^NQ2(/$"%M!7D%?7<-F#Q]$``!52(GE05=!5D%505132('LF``` -XM`$F)_TR)O7C___]!BT<8J0``@``/A<,$```-``"``$&)1QCV!;_70`"`=!=) -XMC;(P8#!_H#Y`@^#R0(``$'V1A@P -XM#X7!`@``/`)U!,9#!@%(B=],B?;H4VO__^FI`@``J0``$`!T5+](QX$`OKF? -XM40"ZNY]1`+FJ`0``Z.X;__^_2,>!`(G&Z+(<__](A<`/A$@"``!)B8<(`0`` -XM2(/`$$R)_TB)QNBC,O__2<>'J````/RH40#I@P,```]7P`\I19`/*46`28V_ -XM*`$``$B)O6#____H12#__TB%P`^$9@$``$F-C`+Y``$F)1A!- -XMB7X@2<=&&`````!!QT8H`````$B)W^A8Q?__28E&"$F#O^@`````=0M)@W]P -XM``^$D0$``/8%A-1``(`/A*8!``"_Z)]1`##`Z/88___IE0$``$G'AP@!```` -XM````28V'*`$``$F)AZ````!)QX>H````_*A1`.DX`0``_T,@28N&H````$B) -XM@Z````!)BX:H````2(F#J````$V+I@@!``!-A>1T'DF-AB@!``!(B8.X```` -XM2(N%'H.@P` -XM`(7`=1_V!4O30`"`=!9)@\1(OTJ@40!,B>9,B?HPP.BW%___2(N->/___XM! -XM&*@'=0:#R`&)01A!@$X:"&9F9F9F+@\?A```````2('$F````%M!7$%=05Y! -XM7UW#3(EUP$B-19!(B46X28M&$$B+>#A(C56XOO`700#H[',``/8%T=)``(!T -XM"K\PH5$`Z"D8__](B9U@____2(U]@$R)]NA&<0``38G\3(UMD$R-=#B^\!=!`$R)\NB39,BZ5@____38FFH````$F-AJ````!(B85( -XM____13'_,,E(A=NX`````$B)A6C___],B>!T:NM32(G'Z$`<___V!9710`"` -XM3(GX=!2_%J%1`.CJ%O__3(GX#Q^``````$B)PTB+0QA(A/___P^$E`$``$F+?PA-BW<@Z+D:__])@\9P -XM2&/`2(F%=(BY5P____Z+$7__^%P'6=2(N=_H -XM*AK__TB--!A)C10T,[H,A7__[](QX$`B<;H]A7__TB) -XMPTB%VP^$*O___TF+=Q!(C7LHZ(UR``!(A<`/A!3___^_,````.@:P/__28G& -XM3(NM6/___TR)[^AXP/__28D&28M'"$F)1@A)B5X038E^&$B+A5#___])B48@ -XM0<=&*`````!!_TZU9,B;5X____]@5+ST`` -XM@`^$7@$``+_MGU$`3(GF,,#HNA/__^E*`0``#Q]$``"_\,:!`$B)WNCS;``` -XM2(M;&$B%VW032(-[&`!T#.OA28G>3(NE8/___TC'A6C___\`````387V#X0( -XM`0``28M&($B%P'4328L^,?:Z`0```.A[#@``28E&($F+3A!-BVX8387M#X2L -XM````38UF$$V-?AA,B?/K%68/'X0``````$R-8Q!,C7L82(M#($B)B`@!``!) -XMBT4@2(7`=11)BWT`,?:Z`0```.@D#@``28E%($F+#"1)BU402(MS($B)Q^A, -XM!P``28M%($@[A7C___]T*H!(&H!)BWT(Z`*___])BTT@2(F!J````$F+12!( -XMC8@H`0``2(F(H````$F+'TB+2Q!,BVL8387M#X5Q____3(NE8/___TB+G7C_ -XM__](B8L(`0``2(M[$.BC&/__3(GGZ*N^__](B4,03(GV3(UMD.E]`0``2(N= -XM>/____9#&`=T1$B#>W``=0I(@[OH`````'0S,4B)Q^C2O?__2(N-2/___TB)`8"]1____P%U9TR+8Q!,B>?H -XMTQ;__TF+3Q`K`4B)BP@!``!,8_!'BCPT0\8$-`!,BV,03(GGOB\```#H*1/_ -XM_TB%P$B->`%)#T3\Z'F]__](B8.H````2(M#$$:(/#!(B[5H____ZT-(B[5H -XM____ZSI(QX,(`0```````$R+^+P```.C<$O__2(7`2(UX`4D/1/[H -XM++W__TB)@Z@```!(B[5H____2(7V=$F_\,:!`.@O:@``9F9F9F9F+@\?A``` -XM````3(UMD.LJ9BX/'X0``````$R-;9!,B>],B?;H\6X``$B)W^C)%O__9@\? -XMA```````38MU`$V%]G0O38UN"$F+7A"#>R@`=>E(BSOHH1;__TB+0QA(APCHCQ;__^NM_T@HZZA(C46`#Q]``$B+&$B%VW0K2(U#"$R+^_2,>!`$B) -XMWDB)PN@O$/__OTC'@0")QNCS$/__2(7`=!Y(BPVGM$``9H-A"/N`2`@$2(D% -XME[1``$B#Q`A;7<,PP+\"````OC^?40!(B=I(@\0(6UWI9F___V8/'T0``%5( -XMB>532(/L&+\(QX$`O@0```"Z*+%A`.B3$O__2,=%Z`````"[_*A1`$B-5>B_ -XM`+%A`+[\J%$`Z#,/__](BTWH2"G92(D(9L=`"```2,=`&`````!(QT`0```` -XM`$C'0$``````2,=`.`````!(QT`P`````$C'0"@`````2(D%U+-```^W2`B) -XMRH/*!&:)4`CVP0AU+(L57+1``(UR`8DU4[1``(E0((/)#&:)2`A(BPA(.PT? -XMRD``=@=(B0T6RD``2(LU5YT@`$B->!#HKE+__[](QX$`O@0```"Z`+%A`.C* -XM$?__QP4(M$```````$B-=?2_2,>!`.CR#O__2(7`="-(C5WT9@\?A``````` -XM@&`(][](QX$`2(G>Z(\3__](A_=I]1`.L6@_@"=0>_?I]1`.L* -XM@_@$=0R_G9!1`##`Z!$-__^%V[\I````00]%_+Z(N8$`Z*P1__^%VW6HOPH` -XM``"^B+F!`.B9$?__OX:?40`PP.C=#/__28U]*+X@%D$`Z)]I``"_"@```+Z( -XMN8$`Z'`1__^_C9]1`##`Z+0,__])C7TXOB`600#H=FD``+\*````OHBY@0#H -XM1Q'__[^6GU$`,,#HBPS__TF#Q1!,B>_H#U'__[\*````OHBY@0#H(!'__[]( -XMQX$`3(GVZ-,1__])B<5-A>T/A05]=PV9F9F9F -XM9BX/'X0``````$B-=T@PP+_CB%$`Z:`+__]52(GE05=!5D%505132(/L&$F) -XMS$B)5=!(B?-)B?Y-C6YP3(GOZ,9D``"%P'0Y2(U[8$R)]NAV90``BD,'B,&` -XMP?Z`^0)S'/9#&#!U&CP"=05!QD8&`4R)]TB)WN@?6___ZP1!_T8@BT,82(E= -XMR(/@!X/X!'5S2(M%R$B+6%#K$$B+6PAF9F8N#Q^$``````!(A=MT5$R+>Q!, -XMB>],B?[H3&0``(7`=-A)C7]@3(GVZ/QD``!!BD<'B,&`P?Z`^0)S'4'V1Q@P -XM=;<\`G4%0<9&!@%,B?=,B?[HHUK__^NA0?]&($B+6PCKITF#Q$A,B67`13'M -XM3(GG,?;H,A#__TF)QTB+7=!(@\-(2(E=T$B)WS'VZ!D0__],B>=,B?Y(B=I( -XMB<%%,<#HM=C__TF)Q+\(QX$`3(GFZ/4+__^_",>!`(G&Z,D+__])B<=,B>?H -XM;A#__TV%_W14]@6^Q4``@$B+7 -XMZ'QC``"_,````.@BM?__2(G#3(EMT$V+;PA,B>\Q]NC=#O__3(EUR$F)QDR) -XMYS'VZ,P.__],B>],B?9,B>)(B<%%,<#H:-?__TB)`TF+1PA(B4,(3(E[&$C' -XM0R``````2(M%T$B)0Q#'0R@`````0?]'*$B+1GQ8@``D%5(B>5!5T%6055!5%-028GW28G^13'D3(GP9@\?1```3(LH -XMLP%-A>UT%4F-10A-BV4008M,)"`PVT$[3R!\X?8%%L1``(!T%$&+5R!)C7=( -XMO\:@40`PP.B$"/__@/L!=2SV!?3#0`"`=`J_[Z!1`.A,"?__3(GW3(G^2(/$ -XM"%M!7$%=05Y!7UWI8V(``+B`````(P7$PT``08M4)"!!.U<@=1R%P'1+O_Z@ -XM40!(@\0(6T%<05U!7D%?7>D!"?__AY,B?I(@\0(6T%<05U!7D%?7>D^90``2(/$"%M!7$%=05Y!7UW#9F9F -XM9F9F+@\?A```````54B)Y4%7059!54%44TB#["A)B==)B?:)^P]7P`\I1!``=!](B<;HLDO__[](QX$`3(GFZ-4,__](A;H -XMD4K__TB)PTR)]S'V2(G:,F(``$B# -XMQ"A;05Q!74%>05]=PY"0D)"0D)"0D)"054B)Y;^0QX$`O@H```"Z*+%A`.AH -XM"O__OQBB40"^'J)1`+I:[@``N0$```#H/P(``$B)!9#"0`"!2!@`(`,`OQ^B -XM40"^(Z)1`+JL#@``N0$```#H&`(``$B)!6'"0`"!2!@`(`,`OR2B40"^+J)1 -XM`+K$EN8`N0$```#H\0$``$B)!2K"0`"!2!@`(`,`OR^B40"^-Z)1`+ITA@X` -XMN0$```#HR@$``$B)!0O"0`"!2!@`(`<`7<-F+@\?A```````54B)Y4%64TB# -XM[!!)B?Y(B77H2(U5Z+\HL6$`3(GVZ%T&__](B<-(QT,0`````$&`/BUU$$&` -XM?@%L=0G'0Q@``!``ZP?'0Q@`````QT,@`````,=#'`````#'0P0`````QT,H -XM````@$C'0S``````QT,X````@$C'0T``````2(V[H````$C'@Y@````````` -XM2,>#D`````````!(QX.(`````````$C'@X``````````2,=#>`````!(QT-P -XM`````$C'0V@`````2,=#8`````!(QT-8`````$C'0U``````Z-HG``!(QT-( -XM`````$C'@P@!````````2,>#``$```````!(QX/X`````````$C'@_`````` -XM````2,>#Z`````````!(QX/@`````````$C'@]@`````````2,>#(`$````` -XM``!(QX,8`0```````$B)FQ`!``#&0P@`2(G82(/$$%M!7EW##Q^$``````!5 -XM2(GE05932(/L$(G328G^2(EUZ$B-=>CH\PC__TB+=>A,B?>)PHG9Z!,```!( -XM@\006T%>7<-F+@\?A```````54B)Y4%7059!54%44U!!B&D`````````!)QX:(`````````$G'AH``````````2<=& -XM>`````!)QT9P`````$G'1F@`````2<=&8`````!)QT98`````$G'1E`````` -XMZ.(E``!)QT9(`````$G'A@@!````````2<>&``$```````!)QX;X```````` -XM`$G'AO``````````2<>&Z`````````!)QX;@`````````$G'AM@````````` -XM2<>&(`$```````!)QX88`0```````$V)MA`!``!!QD8(`+^0QX$`B=Y,B?+H -XMS`3__TR)\$B#Q`A;05Q!74%>05]=PV8N#Q^$``````!52(GE05=!5D%44TB# -XM[!!)B?],BR9-A>1T7DR-==AFD$F+7"002,=%V`````!(B=],B?;HR`;__TB+ -XM==A(B=^)PKD!````Z.7]__](B<-,B?](B=[HAUP``/9#&`1T#TB#PU!,B?]( -XMB=[HPEP``$V+9"0(387D=:A(@\006T%<05Y!7UW#9F8N#Q^$``````"#/;&] -XM0```=`:X`0```,.+1QC!Z`:#X`'##Q^``````(,]K;U```!T!K@!````PXM' -XM&,'H"(/@`<,/'X``````@SUIO4```'0&N`$```###[='&&:IA$`/E<`/ML## -XM9I!(B?DPP+\=CU$`2(G.Z5!5E.)^X/C -XM^`^$A0$``$&^(`````\?A```````B=H/O,I!#T3.N`$```#3X(G#]],ATSW_ -XM_Q\`?W(]__\/``^/B0```#W__P<`#X^@````/?\?```/C[0````]_P\```^/ -XMMP```#W_`P``#X^Z````/?\!```/C[T````]_P````^/P````(/X?P^/Q0`` -XM`(/X/P^/R@```(/X"`^%S0```+\XHE$`Z=D````]```@``^%U0```/8%?+Q` -XM``$/A,@```"_H*)1`.FW````/0``$``/A;,```#V!5J\0``!#X2F````OY&B -XM40#IE0```#T```@`#X61````]@4XO$```0^$A````+^7HE$`ZW8]`"```'5V -XMOX>B40#K:#T`$```=6B_>Z)1`.M:/0`$``!U6K]THE$`ZTP]``(``'5,OVVB -XM40#K/CT``0``=3Z_9*)1`.LP/8````!U,+]9HE$`ZR*#^$!U)+]0HE$`ZQ:# -XM^!!U![]#HE$`ZPJ#^"!U#+])HE$`,,#H,0#__X7;#X6)_O__6T%>7<,/'T`` -XM#[Y/!X/Y!7<,N*BB40#_),V(H5$`N,"B40##N+NB40##N.6640##N+"B40## -XMN)R#40##9F9F9BX/'X0``````%5(B>5!5E-(@^P0B?N_8*-1`.BI`/__2(UU -XM[+^0QX$`Z&L`__](AQFD$B)QXG>Z+8```"_D,>!`$R)]N@)!?__ -XM2(7`=>2_^ZA1`.AJ`/__OX"C40#H8`#__TB-=>R_D,>!`.@B`/__2(7`=%5( -XMC5WL9@\?A```````BT@8]L$'=2Z`>`0`=2CWP0```@!U($B+4!!(!2@!``!( -XMA=)(#T30O\VB40!(B<8PP.@J__[_OY#'@0!(B=[HC03__TB%P'6XZ',X``"_ -XM"@```.C)_O[_Z"3Q__](@\006T%>7<-F9BX/'X0``````%5(B>5!5T%64U") -XM\TF)_D'V1A@'#X2:`0``OU&C40#HK/_^_X/[`@^%DP```$&+=B"_V*)1`##` -XMZ+/^_O]!#[=&&&:I,`1U>$&+?BB!_P```(!U,4F+=C!(A?9U+$$/OD8'A<`/ -XMA%4!``"#^`5W#+ZHHE$`_R3%Z*%1`+[`HE$`Z8L!``!)BW8PZ((@``!!#[Y. -XM!X/Y!7<,NJBB40#_),VXH5$`NL"B40`/'X``````O^ZB40!(B<8PP.@Q_O[_ -XMD$F#?F``="Q-C7Y@OR*C40`PP.@9_O[_3(G_OB`E00#HW%H``+\*````OHBY -XM@0#HK0+__TF+=DA(A?9T$TB!QB@!``"_+J-1`##`Z.']_O])C;8H`0``OT2C -XM40`PP.C._?[_08M&&(/@!X/X!'4'OTVC40#K%H/X`G4'OTJC40#K"H/X`74, -XMOTZC40`PP.B>_?[_08M^&.C5^___28U^<+X@)4$`Z%=:``"_"@```+Z(N8$` -XMZ"@"__])C;[H````OO`?00#H-UH``+_[J%$`Z#W^_O]!]D88!'0:38MV4.L/ -XM28M^$(G>Z%7^__]-BW8(387V=>Q(@\0(6T%>05]=P[]3HU$`Z`?^_O_I\O[_ -XM_[J[HE$`Z=C^__^ZY991`.G._O__NK"B40#IQ/[__[J<@U$`Z;K^__^^NZ)1 -XM`.L3ON6640#K#+ZPHE$`ZP6^G(-1`+\&HU$`,,#HU/S^_^F?_O__9F9F9F9F -XM+@\?A```````N)#'@0##9BX/'X0``````$B-MR@!```PP+_CB%$`Z9W\_O^0 -XMD)"0D)"0D)"0D)"054B)Y5-02(GS2(D]@*)``$B)'8&B0`!(B=_HP0'__TB) -XM!7JB0`!(C7@"Z"&H__](B05RHD``2(L58Z)``$B)QTB)WN@(_?[_2(L%4:)` -XM`$B-2`%(B0U&HD``2(L-1Z)``,8$`2](BP4\HD``2(L-+:)``,8$"`!(@\0( -XM6UW#9I!52(GE05=!5D%44TF)_TR+-0NB0`!(BS4,HD``28V_*`$``$R)\NBE -XM_O[_A<`/A7P```!+C;PW*`$``#'V,=+H[/;__TF)QDV%]G1C28._Z`````!U -XM$TF-O^@```!)C;;H````Z`=6``!)BUYP2(7;=#U-C7=P9BX/'X0``````$R+ -XM8Q!,B?=,B>;HT50``(7`=!-)@\1@3(GG3(G^Z'Y5``!!_T<@2(M;"$B%VW71 -XM6T%<05Y!7UW##Q^$``````!52(GE05=!5D%505132('LF````$B)O4C___^* -XM!4^A0`"$P`^%40$``.AB_O__2(G#2(E=@$B-?8B^"@```+I0L6$`Z'C^_O]( -XMC77,2(G?Z*S[_O](B<-(A=L/A,P```!,C7V(3(UET`\?A```````2,=%T``` -XM``"`>P0`#X61````]T,8`$`"``^%A````$R-LR@!``!,B?>^+P```.A]_/[_ -XM2(7`2(UP`4D/1/9(B;,8`0``3(G_3(GBZ*#^_O]!B<5,B?]$B>[H\OO^_TF) -XMQDV%]G4P2(NS&`$``+]0L6$`3(GBZ);Z_O])B<9)QP8`````28E>"$R)_T2) -XM[DR)\N@J_/[_28L&2(F#(`$``$F)'DB+?8!(C77,Z*#__O](B<-(A=L/A43_ -XM__](C7V(2(UUS.C'^O[_2(7`=#5,C76(2(U=S&8N#Q^$``````!(BPA(BT`( -XM2#G(=`=(B8@@`0``3(GW2(G>Z%+__O](A0/A+<7``!(.8D0`0``#X6J -XM%P``]@42M4``0'0E2(V1*`$``$B)R[\@NH$`OJ.C40`PP.B8^_[_2(G93(NA -XM(`$``$DYS`^$6Q<``$B-@2@!``!(B85P____#Q^``````$B+A7#___^`."^Y -XM``````^%40$``$B+!5R?0`!(A0`"028U._[H!````28/^`0^$ -XMC````$*`?##^+TF)SG7B28G.ZYT\+W4&28/'`NN3,=NQ+NL;9F9F9BX/'X0` -XM`````$P!\(@,`T&*3!\!2/_#A,D/A$K___^`^2\/A$'___])C00>2(LUWH<@ -XM`$B-5OY(.=!V(T@!]DB)-D__](B04XGD``08H,'^NJ -XM2(L%*YY``.NA28G6Z1G___](BST:GD``Z!VD__](B<%,B:5`____28V$)"@! -XM``!(B85X____08"\)"@!```O#X4\`0``28G,2(L%XYU``$B%P'432(L]5X<@ -XM`.AJH___2(D%RYU``,8`+T&^`0```$R+O7C____K(9!(BP6QG4``3`'PB`P# -XM20'?38UT'@%F9BX/'X0``````$&*#X3)#X0'`0``ZPH/'P!!BD\!2?_'@/DN -XM=`DQVX#Y+W5KZ^M!BD))B<[KG3PO=09)@\<"ZY,QV[$NZQMF -XM9F9F+@\?A```````3`'PB`P#08I,'P%(_\.$R0^$2O___X#Y+P^$0?___TF- -XM!!Y(BS5NAB``2(U6_D@YT'8C2`'V2(DU6X8@`$B+/=2<0`#H)Z/__TB)!SK*F8N#Q^$``````!(BP71FT``3`'PB`P#20'<38UT'@%F9BX/'X0` -XM`````$&*#"2$R0^$ZP```.L*9I!!BDPD`4G_Q(#Y+G0),=N`^2]U>NOJ08I$ -XM)`$\+G5$08!\)`(O=49)@\0#2(L%=IM``&9F9F9F+@\?A```````28U._[H! -XM````28/^`0^$C````$*`?##^+TF)SG7B28G.ZXT\+W4&28/$`NN#,=NQ+NL; -XM9F9F9BX/'X0``````$P!\(@,`T&*3!P!2/_#A,D/A#K___^`^2\/A#'___]) -XMC00>2(LU?H0@`$B-5OY(.=!V(T@!]DB)-6N$(`!(BSWDFD``Z#>A__](B078 -XMFD``08H,'.NJ2(L%RYI``.NA28G6Z0G___])C4;_2(L-MII``$&`?`[^+W0- -XMQ@0!+TR+I7#____K.4R+I7#___])B<;K+69F9F8N#Q^$``````!(BP6!FD`` -XM3`'PB`P#20'<38UT'@%F9BX/'X0``````$&*#"2$R0^$ZP```.L*9I!!BDPD -XM`4G_Q(#Y+G0),=N`^2]U>NOJ08I$)`$\+G5$08!\)`(O=49)@\0#2(L%)II` -XM`&9F9F9F+@\?A```````28U._[H!````28/^`0^$C````$*`?##^+TF)SG7B -XM28G.ZXT\+W4&28/$`NN#,=NQ+NL;9F9F9BX/'X0``````$P!\(@,`T&*3!P! -XM2/_#A,D/A#K___^`^2\/A#'___])C00>2(LU+H,@`$B-5OY(.=!V(T@!]DB) -XM-1N#(`!(BSV4F4``Z.>?__](B06(F4``08H,'.NJ2(L%>YE``.NA28G6Z0G_ -XM__](BSUJF4``Z&V?__])B<9%A/]U-DR)]TB+78!(B=[H=O?^_T&)QTR)]^@[ -XM^?[_187_#X0*`P``2(E=@$4PY$R++0290`#I5@,``+H!````0;&80`#&`"]!O`$```#K+F9F9F9F+@\?A```````2(L%P9A``$P! -XMX(@,`TD!W4V-9!P!9F8N#Q^$``````!!BDT`A,D/A-P```#K"6:008I-`4G_ -XMQ8#Y+G0),=N`^2]U:^OK08I%`3PN=3=!@'T"+W4Z28/%`TB+!6F80`"028U, -XM)/^Z`0```$F#_`$/A(P```!"@'P@_B])B>__]( -XMB078ET``08I,'0#KJ4B+!/___^LW3(NM>/___TF)Q.LK9F8N#Q^$``````!(BP6! -XMET``3`'@B`P#20'=38UD'`%F9BX/'X0``````$&*30"$R0^$W````.L)9I!! -XMBDT!2?_%@/DN=`DQVX#Y+W5KZ^M!BD4!/"YU-T&`?0(O=3I)@\4#2(L%*9=` -XM`)!)C4PD_[H!````28/\`0^$C````$*`?"#^+TF)S'7A28G,ZYP\+W4&28/% -XM`NN2,=NQ+NL:9F9F+@\?A```````3`'@B`P#08I,'0%(_\.$R0^$2O___X#Y -XM+P^$0?___TF-!!Q(BS4^@"``2(U6_D@YT'8D2`'V2(DU*X`@`$B+/:260`#H -XM]YS__TB)!9B60`!!BDP=`.NI2(L%BI9``.N@28G4Z1C___](BSUYED``Z'R< -XM__])B<5,B?=,B>[HCO3^_XG#@[UD____`'0(3(GWZ$OV_O]!M`&%VW0I3(GO -XMZ#SV_O]!M`%,BRT2ED``183_=63IOP$``$4PY$&W`4B)78!)B=U-A>T/A4,- -XM``!,BRWKE4``08#_`70\183D#X63`0``2(N]:/___TB+78!(B5V`2(F]:/__ -XM_TB)WN@.]/[_QH5D____`(7`QH5C____`.G/`@``2(L%RI5``$B%P'432(L] -XM/G\@`.A1F___2(D%LI5``,8`+T&^`0```$V)[^LL9F9F+@\?A```````2(L% -XMD95``$P!\(@,`TD!WTV-=!X!9F8N#Q^$``````!!B@^$R0^$W````.L*#Q\` -XM08I/`4G_QX#Y+G0),=N`^2]U:^OK08I'`3PN=39!@'\"+W4Y28/'`TB+!3F5 -XM0`"028U._[H!````28/^`0^$C````$*`?##^+TF)SG7B28G.ZYT\+W4&28/' -XM`NN3,=NQ+NL;9F9F9BX/'X0``````$P!\(@,`T&*3!\!2/_#A,D/A$K___^` -XM^2\/A$'___])C00>2(LU3GX@`$B-5OY(.=!V(T@!]DB)-3M^(`!(BSVTE$`` -XMZ`>;__](B06HE$``08H,'^NJ2(L%FY1``.NA28G6Z1G___])C4;_2(L-AI1` -XM`$&`?`[^+W0CQ@0!+TR+O7#____K244Q_\:%9/___P!,B[5H____Z70!``!, -XMB[UP____28G&ZRF30`"028U._[H!````28/^`0^$C````$*` -XM?##^+TF)SG7B28G.ZYT\+W4&28/'`NN3,=NQ+NL;9F9F9BX/'X0``````$P! -XM\(@,`T&*3!\!2/_#A,D/A$K___^`^2\/A$'___])C00>2(LU_GP@`$B-5OY( -XM.=!V(T@!]DB)->M\(`!(BSUDDT``Z+>9__](B058DT``08H,'^NJ2(L%2Y-` -XM`.NA28G6Z1G___](BSTZDT``Z#V9__])B<9%A.1U.4R)]TB+78!(B=[H1O'^ -XM_T&)QTR)]^@+\_[_QH5C____`,:%9/___P%%A?])B=T/A=<"``#IR0(``$&_ -XM`0```,:%9/___P%(BP7@DD``2(7`=1-(BSU4?"``Z&>8__](B07(DD``Q@`O -XM0;P!````ZR4/'T0``$B+!;&20`!,`>"(#`-)`=U-C60<`69F+@\?A``````` -XM08I-`(3)#X3<````ZPEFD$&*30%)_\6`^2YT"3';@/DO=6OKZT&*10$\+G4W -XM08!]`B]U.DF#Q0-(BP59DD``D$F-3"3_N@$```!)@_P!#X2,````0H!\(/XO -XM28G,=>%)B"(#`-! -XMBDP=`4C_PX3)#X1*____@/DO#X1!____28T$'$B+-6Y[(`!(C5;^2#G0=B1( -XM`?9(B35;>R``2(L]U)%``.@GF/__2(D%R)%``$&*3!T`ZZE(BP6ZD4``ZZ!) -XMB=3I&/___TF-1"3_2(L-I)%``$&`?`S^+W0-Q@0!+TR+K7C____K-TR+K7C_ -XM__])B<3K*V9F+@\?A```````2(L%<9%``$P!X(@,`TD!W4V-9!P!9F8N#Q^$ -XM``````!!BDT`A,D/A-P```#K"6:008I-`4G_Q8#Y+G0),=N`^2]U:^OK08I% -XM`3PN=3=!@'T"+W4Z28/%`TB+!1F10`"028U,)/^Z`0```$F#_`$/A(P```!" -XM@'P@_B])B6__](B06(D$``08I,'0#KJ4B+!7J0 -XM0`#KH$F)U.D8____2(L]:9!``.ALEO__28G%3(GW3(GNZ'[N_O^)PT6%_W0( -XM3(GWZ#_P_O_&A6/___\!A=MT$4R)[^@L\/[_QH5C____`>L)387M#X5+!P`` -XM2(N]2/___^@NQ?__ZQ=F9F8N#Q^$``````!(BX50____2(/`"$B+`$4Q[4B% -XMP`^$%P<``$B+>!!(B850____Z#8B__])B<=!@#\O#X51`0``13'V@+UD____ -XM`4R+I6C___^X``````^%V0,``$B+!:Z/0`!(A"(#`-)`=U-C60<`69F+@\? -XMA```````08I-`(3)#X0N`@``ZPEFD$&*30%)_\6`^2YT"3';@/DO=6OKZT&* -XM10$\+G4W08!]`B]U.DF#Q0-(BP4ICT``D$F-3"3_N@$```!)@_P!#X2,```` -XM0H!\(/XO28G,=>%)B"(#`-!BDP=`4C_PX3)#X1*____@/DO#X1!____28T$'$B+-3YX(`!(C5;^ -XM2#G0=B1(`?9(B34K>"``2(L]I(Y``.CWE/__2(D%F(Y``$&*3!T`ZZE(BP6* -XMCD``ZZ!)B=3I&/___\>%7/___P````!,BR5/CD``@+UD____`4B+G6C___]! -XMO@````!,BVV`=1M,B?],B>9(BY5P____Z&L&``!(B<-!O@$```"`O6/___\! -XM3(EM@'4?3(G_3(GF2(N5>/___^A#!@``28G%QX5<____`0```$B)WTR)[N@K -XM[/[_08G$187V=`A(B=_HZ^W^_T6%Y'4+387M#X4.!0``ZQ&#O5S___\`=`A, -XMB>_HRNW^_\>%7/___P````!,BR69C4``@+UD____`4B+G6C___]!O@````!U -XM&TR)_TR)YDB+E7#____HP04``$B)PT&^`0```("]8____P%,BVV`=1],B?], -XMB>9(BY5X____Z)D%``!)B<7'A5S___\!````2(G?3(GNZ('K_O]!B<=%A?9T -XM"$B)W^A![?[_187_#X0G!```@[U<____``^%+00``.DF_?__28U$)/](BPTB -XMC4``08!\#/XO=`W&!`$O3(NM2__](B04(C$``08I,'0#KJ4B+!?J+0`#KH$F)U.D8____2(L]Z8M` -XM`.CLD?__28G$N`$```")A5S___^`O6/___\!3(MM@`^%B@(``$B+!;Z+0`!( -XMAB(#`-)`=]-C6P=`69F+@\?A```````08H/A,D/A-T```#K"@\?`$&*3P%) -XM_\>`^2YT"3';@/DO=6OKZT&*1P$\+G4V08!_`B]U.4F#QP-(BP4YBT``D$F- -XM3?^Z`0```$F#_0$/A(T```!"@'PH_B])BN=/"]U!DF#QP+KDS'; -XML2[K&V9F9F8N#Q^$``````!,`>B(#`-!BDP?`4C_PX3)#X1*____@/DO#X1! -XM____28U$'0!(BS5-="``2(U6_D@YT'8C2`'V2(DU.G0@`$B+/;.*0`#H!I'_ -XM_TB)!:>*0`!!B@P?ZZE(BP6:BD``ZZ!)B=7I&/___TF-1?](BPV%BD``08!\ -XM#?XO=`W&!`$O3(N]>/___^LX3(N]>/___TF)Q>LL9F9F+@\?A```````2(L% -XM48I``$P!Z(@,`TD!WTV-;!T!9F8N#Q^$``````!!B@^$R0^$W0```.L*#Q\` -XM08I/`4G_QX#Y+G0),=N`^2]U:^OK08I'`3PN=39!@'\"+W4Y28/'`TB+!?F) -XM0`"028U-_[H!````28/]`0^$C0```$*`?"C^+TF)S77B28G-ZYT\+W4&28/' -XM`NN3,=NQ+NL;9F9F9BX/'X0``````$P!Z(@,`T&*3!\!2/_#A,D/A$K___^` -XM^2\/A$'___])C40=`$B+-0US(`!(C5;^2#G0=B-(`?9(B37ZD8____2(L]28E``.A, -XMC___28G%0;X!````3(GG3(GNZ%CG_O^)PX.]7/___P!T"$R)Y^@5Z?[_A=MU -XM"DV%[74]Z0?Y__]%A?8/A/[X__],B>_H]NC^_^GQ^/__2(G'2(F]:/___TB) -XMWN@/Y_[_ABU -XMZ/[_387M=1KV!0:>0`!`=#N_(0```+X@NH$`Z"CG_O_K*DB+E4C___](BX(0 -XM`0``2(NU0/___TB+CA`!``!(B8H0`0``2(F&$`$``/8%PIU``$!T&+\@NH$` -XMON.(40!(BY5X____,,#H2^3^_TB+C4#___](BXD@`0``2(N%2/___T@YP4F) -XMS`^%NNC___8%@)U``$!T#[\*````OB"Z@0#HHN;^_TB!Q)@```!;05Q!74%> -XM05]=PTB)^69F9F8N#Q^$``````"X`0```$@Y\70.2(N)$`$``#'`2#GY=>C# -XM#Q^``````%5(B>5!5T%6055!5%-028G628GW28G]2(L%NH=``$B%P'432(L] -XM+G$@`.A!C?__2(D%HH=``,8`+T&\`0```.LO9F9F9F9F+@\?A```````2(L% -XM@8=``$P!X(@,`TD!W4V-9!P!9F8N#Q^$``````!!BDT`A,D/A-P```#K"6:0 -XM08I-`4G_Q8#Y+G0),=N`^2]U:^OK08I%`3PN=3=!@'T"+W4Z28/%`TB+!2F' -XM0`"028U,)/^Z`0```$F#_`$/A(P```!"@'P@_B])B,__](B068AD``08I,'0#KJ4B+!8J&0`#KH$F)U.D8____28U$)/](BPUT -XMAD``08!\#/XO=`;&!`$OZRY)B<3K*68/'X0``````$B+!5&&0`!,`>"(#`-) -XM`=]-C60<`69F+@\?A```````08H/A,D/A,P```#K"@\?`$&*3P%)_\>`^2YT -XM"3';@/DO=5OKZT&*1P$\+G4S08!_`B]U-DF#QP-(BP7YA4``D$F-3"3_N@$` -XM``!)@_P!=']"@'P@_B])B+__](B05XA4``08H,'^NJ2(L%:X5``.NA -XM28G4Z2G___])C40D_TB+#56%0`!!@'P,_B]T!L8$`2_K+TF)Q.LJ9BX/'X0` -XM`````$B+!3&%0`!,`>"(#`-)`=Y-C60<`69F+@\?A```````08H.A,D/A,P` -XM``#K"@\?`$&*3@%)_\:`^2YT"3';@/DO=5OKZT&*1@$\+G4S08!^`B]U-DF# -XMQ@-(BP79A$``D$F-3"3_N@$```!)@_P!=']"@'P@_B])BMM(`!(BSUDA$``Z+>*__](B058 -XMA$``08H,'NNJ2(L%2X1``.NA28G4Z2G___](BSTZA$``2(/$"%M!7$%=05Y! -XM7UWI+XK__Y"0D)"0D)"0D)"0D)"0D#'VZ0G>_O]F#Q^$``````!52(GE2(/L -XM$(E]_$B-??SH;.'^_[\`R($`OH````"ZM*-1`$B)P>B%XO[_Q@5=A$```+@` -XMR($`2(/$$%W#D)"0B3U.A$``PV8/'X0``````$C'1S``````2,='*`````!( -XMQT<@`````$C'1Q@`````2,='$`````!(QT<(`````$C'!P````###Q^$```` -XM``!52(GE05932(/L$(G328G^2(EUZ$B-=>A(C57DZ%\```"#^/]U,(M5Y$B+ -XM=>A,B??HFP,```M8&(E8&(/C2H/[0'4O2(/`'+\!````OLZE40!(B<+K%4AC -XMP$B+%,4PI5$`OP$```"^J*51`##`Z/X\__](@\006T%>7<,/'T0``%5(B>5! -XM5T%64U!)B==)B?9(B?OHZ.#^_T&)!XG`2&G(P=XQ-4C!Z21KR4V)PBG*28L. -XM2"G9@_I&?SZ#^C-_?H/Z&P^/N````(/"^X/Z#@^'Y@(``/\DU;"D40"`.RH/ -XMA=8"``"`>P%$#X7,`@``N`H```#ICP(``(/Z1P^%N0(``#V-C`X`#X6N`@`` -XM2(/Y"`^%I`(``$B)W[Z4J%$`N@@```#HZ-[^_XG!N`(```"0A_O^)P;@#````Z["#PN2#^@X/ARX"``#_)-4XI%$` -XM/;#@`P`/A1P"``!(@_D'#X42`@``2(G?OKVH40"Z!P```.A6WO[_B<$QP.EM -XM____@#LE#X7N`0``@'L!1`^%Y`$``+@.````Z:P%& -XM#X7'`0``N`T```#IB@$``(`[/`^%M`$``+@&````ZW^__^`.SX/ -XMA6X!``"X!0```.F%````@#L_#X5;`0``N`0```#K=8`[0`^%2P$``#'`ZVB` -XM.R$/A3X!``"X`@```.M8@#LE#X4N`0``N`,```#K2(`[(0^%'@$``(![`40/ -XMA10!``"X#````.G7````@#LA#X4!`0``@'L!1@^%]P```+@+````Z;H```"` -XM.RH/A>0```"X`0```$B#^0$/A=4```#IU0```(`[*@^%QP```(![`48/A;T` -XM``"X"0```.F`````/3N_`P`/A:@```!(@_D'#X6>````2(G?OHRH40"Z!P`` -XM`.CBW/[_B<&X!0```.GV_?__@#M`=7N`>P%$=76X"````.L[/5SF`P!U9TB# -XM^0=U84B)W[ZUJ%$`N@<```#HI=S^_XG!N`$```#IN?W__X`[0'4^@'L!1G4X -XMN`<```!(@_D"=#+K*ST%AP,`=21(@_D'=1Y(B=^^K:A1`+H'````Z&+<_O^) -XMP;@$````Z7;]__^X_____TB#Q`A;05Y!7UW#9@\?1```54B)Y4%7059!54%4 -XM4U")T$F)]$F)_[^(R($`3(G^3(GBB<'H^-G^_T&)QK^(R($`1(GVZ+C:_O]) -XMB<5-A>UU,$R)9=!(C570OX"Q80!,B?[H6]G^_TF)Q4''11@"````OXC(@0!$ -XMB?9,B>KH\-K^_T&+71CVPQ`/A9````"#/;!_0```=`R)V(/@!H/X!'4'ZWOV -XMPP)T=DF-?1SH4-G^_TF)QDV%]G0W]L,"=#=,B??H&][^_TF)QTF-=P%,B>_H -XM3/3^_TR)[TR)_DR)\NB>\_[_08M=&(/C_4&)71CK)X/+$.LE28M%`$F)10A, -XMB??HW-W^_TR)[TB)QDR)\NAN\_[_08M=&(/+&$&)71A,B>A(@\0(6T%<05U! -XM7D%?7<.054B)Y4%64TB#[!!(B?M(B77H2(UUZ$B-5>3HZ,C8_O]!B<:_B,B!`$2)]NB(V?[_2(G#2(7;=%6+0QB# -XM/;I^0```=`2H"'5%J`1U0;^(R($`1(GVZ`_<_O_V0Q@"=0A(BSOH`=[^_TB) -XMW^CYW?[_ZQQ(8\!(BQ3%,*51`+\!````OO.E40`PP.C;-___2(/$$%M!7EW# -XM9I!%,<#K"V9F+@\?A```````54B)Y4%7059!5%-(@^P018G'08G,28G62(G[ -XM2(EUV$B-==A(C574Z*3Z__^#^/\/A:$```"+5=1(BW782(G?Z-S]__](B532(/L&$B)^TB)=?!(C77P2(U5[.@C^?__@_C_ -XM=2^+5>Q(BW7P2(G?Z%_\__](B<.+0QAFJ<`!=&.H0'0P2(U3'+\!````OGRG -XM40#K/TACP$B+%,4PI5$`OP$```"^&:91`##`Z,,U__\QP.M!J`)T1$B-4QR_ -XM`0```+ZFIU$`9F9F9BX/'X0``````##`Z)DU__]F#Q^$```````QP/9#&`)U -XM"DB+0PC&``!(BP-(@\086UW#J(!TXTB+0PC&``!(BP.`.`!UU$B-4QR_`0`` -XM`+[+IU$`Z[0/'T``54B)Y5-(@^P82(G[2(EU\$B-=?!(C57LZ$/X__^#^/]U -XM/(M5[$B+=?!(B=_H?_O__TB)PXM+&/;!0'082(U3'+\!````OGRG40`PP.C_ -XM-/__BTL8N`$```#VP0)T`C'`2(/$&%M=PV8/'X0``````%5(B>5!5T%60513 -XM2(/L,$F)]TF)_DF+'DB)7W4@0;B074$`ZR],B67(2(/#`DB)7=#'1=@`````Z98```"_`0```+[_ -XMIE$`,,#H<33__T&X8%U!`$B#PP)(C77(2(G?3(GZ,5!5E-(@^P028G^2(U%[$B)]TB)UHG*3(G!28G`Z$L```!( -XMB<,QP+F`R($`2#G+="Y(B=_HM-C^_TR)]TB)QDB)VNA&[O[_N`$```"#?>P` -XM=`U(B=_H8]G^_[@!````2(/$$%M!7EW##Q]$``!52(GE05=!5D%505132(/L -XM:$R)1:A(B4V0B56D28GW28G\0<<``````$R)9=!-C70D`4$/OD0D`8/X*'0% -XM@_A[=1A!N&!=00"#^"AT/(/X>W4@0;B074$`ZR],B76X28U,)`)(B4W`QT7( -XM`````#';ZT>_`0```+[_IE$`,,#HS3+__T&X8%U!`$F-?"0"2(UUN#';3(GZ -XM,@?1`'P -XM@^#^1(GQ*<&#^0$/A6$!``#H`0``00]/QTC_PSG#?,U-C7PD'+\@NH$`OAZ/40!,B?HP -XMP.C$TO[_OV&G40!,B?XPP.BU+O__08M$)!A,BWV(@\@!08E$)!A(8P65=T`` -XM2#U=`0``?PA,B23%\,B!`/_`B05]=T``3(GO3(G^BU6DZ$],B?J+3:1,BT6HZ#,-``!)B<5-A>V+3:0/A8<` -XM``"X@,B!`(7)0;W(R($`3`]%Z$&#_O]T<$V%_W0Q08/^!WP/08U&^<'H'T6- -XM=`;Y0='^08/^!G4Q28M7.$F+=T"_1:91`##`Z,DM___K.DB+1:C'``$```!( -XMBW702(G?Z#&E__])B<7K'TF+3SA)BU=`26/&2(LTQ3"E40"_CZ91`##`Z+TL -XM__](C7VXZ*0H``!(BT702"G82(M-D$B)`4R)Z$B#Q&A;05Q!74%>05]=PZB` -XM#X3<_?__28M$)`C&``!)BP0D@#@`#X7'_?__28U4)!R_`0```+[+IU$`Z:/] -XM__\/'P!52(GE05=!5D%505132(/L.(G3B5VD2(EUJ$F)_DB-?<"^``$``.AU -XMZO[_Q@77=4```(7;#X0_`0``3(U]P.L@2(U(`4B)3____TR)YTB+=:B+5:1(C4VX3(U%M.@$^___ -XM28G%N(#(@0!).<5T"KC(R($`23G%=4R#/>:)0```=3=(BUVXB@4#=4``A,!U -XM%[\!````OL6F40!(B=I,B>$PP.@/+O__20'=$```4V)YNDM____3`-E -XMN$V)YNDA____2(M=N$R)[^@5T_[_3(G_2(G&3(GJZ*?H_O])`=R#?;0`38GF -XM#X3W_O__3(GOZ+_3_O]-B>;IY_[__TR-;9F9F9F8N#Q^$``````!,B?/K#F9F+@\?A``` -XM````2/_#B@.$P'0$/"1U\TB)WDPI]DR)[TR)\N@BZ/[_@#L`#X30````@'L! -XM)'4?2(M%R$B+3=!(*<%(@_D"?9),B>_HFN?^_TB+1X@,B!`$DYQW0%33GG=4F#/:6(0```=31(BT7(2(M- -XMT$@IP4B#^0%_#$R)[^A*Y_[_2(M%R(H+2/_#2(U0`4B)5#X0)____3(G_Z('2_O])B=[I^?[__TB+1;^_TB+!?IR0`#&``!(BSWH -XM_B,B!`$2)_NCIS/[_2(G#2(7;=2],B6W02(U5T+^`L6$` -XM3(GVZ(S+_O](B!(@\086T%< -XM05U!7D%?7<-FD$B+1R!(@\`5!5T%6055!5%-(@^Q828G/28GV2(E]J$B+ -XM6B!(C4,<2(E%D/9#&`)T.4R)_^B[S_[_38GT28G&28UV`4B)W^CIY?[_2(G? -XM3(GV38GF3(GZ3(E]H.@TY?[_@&,8_4B)79CK2DB+`TB)0PA,B?_H>\_^_TB) -XMWTB)79A(B<9,B?I,B7V@Z`7E_O_K(P\?`$TIYDB+?:A,B?9,B>+H[N3^_TR+ -XM==!F+@\?A```````38GTZPYF9BX/'X0``````$G_Q$&*!"2$P'0$/"1U\4R) -XMYDPI]DB+?:A,B?+HK^3^_T&`/"0`#X1;`0``38UT)`)%#[YL)`%!@_U[=`9! -XM@/TH=1BX8%U!`$&#_2AT6T&#_7MU/[B074$`ZTY!@/TD=!Q(BT601#HH=1-( -XMBT68@'@=`'4)2(M=H.GJ````2(M]J+X"````3(GBZ$+D_O_I7?___[\!```` -XMOO^F40`PP.A<*?__N&!=00!,B??_T$R)]DF)QDR)==!!BAZ`^R0/A`S___]- -XMB?=)*?=(BWV03(GZZ,K+_O^%P`^%\O[__TB+19A"@'PX'``/A>+^__^`^SI( -XMBUV@=6U(BT682HU$.!S'105]=Z;_B_O]F9F9F9F8N#Q^$``````!52(GE05=!5E-(@^P8 -XMOXC(@0"^"@```+J`L6$`Z`_+_O](QT78`````$B-==B_2IQ1`.BYR_[_3(M] -XMV+^(R($`ODJ<40!,B?J)P>@1R/[_08G&OXC(@0!$B?;HT"_@+%A`+Y*G%$`Z'+'_O](B05]=PV8N#Q^$ -XM``````!52(GE05932(/L$+_0J%$`Z&O'_O](C77LOXC(@0#H+7<,/'P!52(GE05=!5D%505132(/L*$F)_DB-?;B^``$``.A^ -XMX?[_2(UUU+^(R($`Z)#&_O](B<-(A=L/A"=(B<9,B>KHC.#^_TB+1?HP-_^_TB+1*#X#Y?'\0@/DZ=_$/MLE(#Z/(<^CK!8#Y?77A2(GXPV9F9F8N#Q^$```` -XM``!52(GE05=!5E-028GV2(G[]D,8`G0T3(GWZ#+)_O])B<=)C705]=PTB+0PA(BTL02"G!2(/Y -XM`7\,2(G?Z"W>_O](BT,(2(U(`4B)2PC&`"!,B??HULC^_TB)WTB)QDR)\DB# -XMQ`A;05Y!7UWI7M[^_Y"0D)"0D)"0D)"0D)"02,<%S7=``+"Q80!(QP7*=T`` -XMV+%A`$C'!>=W0```LF$`2,<%7'=``"BR80!(QP7!=T``4+)A`$C'!/___XF-9/___TB)E5C___](B;5P____ -XM28G_28L!N2D```"#?1`H2(E%H+I]````#T31B56,0;X!````3(UEP.L*13'V -XM2(M%H$V)[P^^"#M-C`^$@@(``(3)#X1Z`@``2/_`2(E%H/8%P7U```)T%@^^ -XM,+_GJ%$`3(GZ,,#H,,+^_TB+1:!(#[X`2(L$Q>#3@0!(A^)WDB-5'_59B)PTB+1;!$B#!-B?Y,B??H0)+__TB)1:A(AT```@^$Z?W__[\/J5$`3(GN -XM,,#H2L#^_^G5_?__2(MUH+_]J%$`,,#HA1W__TB+1:!(_\!F9F9F9BX/'X0` -XM`````$B)1:`/O@A(_\`[38QT!(3)=>U(_\A-A?]T&$B+C7C___^#.0!T#$R) -XM_^@1QO[_2(M%H$B+C7C____'`0````"*"$&_@,B!`(3)=`E(_\!(B46@ZQ"_ -XM'ZE1`##`Z`\=__](BT6@2(N-4/___TB)`4R)^$B!Q(@```!;05Q!74%>05]= -XMPV9F9BX/'X0``````%5(B>5!5T%6055!5%-(@^PX2(G[2(U]P#'VZ`';_O]( -XMB5VP3(UUL$R)]^B1D/__2(E%J$B%P'1+,=M,C7VH3(UEP&9F9F9F+@\?A``` -XM````2(M%L$2**,8``$R)_XG>3(GB,1T*$B+ -XM0PA(BTL02"G!2(/Y`7\,2(G?Z#79_O](BT,(2(U(`4B)2PC&`"!)BQ9)*==( -XMB=],B?[H==G^_^M!187D=!1(B=^^`@```+H_J5$`Z%S9_O_K*$B+0PA(BTL0 -XM2"G!2(/Y`7\,2(G?Z.'8_O](BT,(2(U(`4B)2PC&`"ZX`0```%M!7$%>05]= -XMPP\?0`!52(GE05=!5E-(@^PX2(G[2(U]T#'VZ*79_O](B5W`3(UUP$R)]^@U -XMC___2(E%N$B%P`^$DP```+$!3(U]T&:02(M%P(H8Q@``]L$!=2A(BT782(M- -XMX$@IP4B#^0%_#$R)_^A9V/[_2(M%V$B-2`%(B4W8Q@`@2(M]N$B+=<"Z+P`` -XM`.@HE/__2(MUP$B%P'4,2(M5N$@IUDR)_^L,2/_`2"G&3(G_2(G"Z'+8_O]( -XMBT7`B!A,B??HI([__TB)1;@PR4B%P`^%=?___TB+1=C&``!(BT702(/$.%M! -XM7D%?7<-F9F9F9F8N#Q^$``````!52(GE05932(G328G^A?9T*$B+0PA(BTL0 -XM2"G!2(/Y`7\,2(G?Z*;7_O](BT,(2(U(`4B)2PC&`"!)BSY)BW8(NB\```#H -XM=I/__TF+=@A(A5!5T%6055!5%-(@^Q(B],B6V0 -XMZQ$/'X``````2(U1`4B)5__1:3K#4V)[_]- -XMI'@NZP--B>](BTW(2(M5T$@IRDB#^@$/CPO___],B??HH]7^_T&*!TB+3 -XMZ'F0__])B48(28D&22L?28E>$$B+1.__](A534$B)^TB+.^C_O_[_2(M[&.CVO_[_2(G?2(/$ -XM"%M=Z>B__O\/'X0``````$B+%S'`@'H!:'4<#[YR`CG.=`@QP$"`_CIU#$B# -XMP@)(B1>XX-N!`,,/'X0``````%5(B>5!5E-(@^P02(G[2(UUZ.B)U?[_28G& -XM2(M]Z$B%_W0*2(G>,,#HLQ;__TR)\$B#Q!!;05Y=PP\?@`````!(QP55XX-N!`,-F#Q]$``!52(GE -XM05932(G[Z&&^_O])B<9)C7X!Z,5D__]-A?9T,TR)\4B)PF8N#Q^$``````!( -XM#[XS2(7V>`Q(BSW044``0(IT=P)`B#)(_\)(_\-(_\EUW4+&!#``6T%>7<,/ -XM'P!52(GE05932(G[Z`&^_O])B<9)C7X!Z&5D__]-A?9T,TR)\4B)PF8N#Q^$ -XM``````!(#[XS2(7V>`Q(BSV(3T``0(IT=P)`B#)(_\)(_\-(_\EUW4+&!#`` -XM6T%>7<,/'P!52(GE05932(G328G^A?9T*$B+0PA(BTL02"G!2(/Y`7\,2(G? -XMZ,;2_O](BT,(2(U(`4B)2PC&`"!)BSY)BW8(NBX```#HEH[__TB%P'0.28L6 -XM2"G02(G?2(G&ZPU)BQ9)BW8(2"G62(G?Z.'2_O^X`0```%M!7EW##Q^````` -XM`%5(B>5!5T%605132(G308GT28G^28L^28MV"+HN````Z#N.__])B<=-A?]T -XM2$6%Y'0H2(M#"$B+2Q!(*<%(@_D!?PQ(B=_H)=+^_TB+0PA(C4@!2(E+",8` -XM($G_QTF+=@A,*?Y(B=],B?KH8=+^_T&\`0```$2)X%M!7$%>05]=PV9F9F9F -XM9BX/'X0``````%5(B>5!5T%64U!!B5!5T%6055!5%-( -XM@>R8````2(G328G^2(MS"$B-O6#___^Z`0```.@QN?[_08G'187_=%M,C;5@ -XM____1(G_3(GV,=(QR>A#NO[_3&/@3(GGZ&AA__](B<-$B?],B?9(B=I,B>'H -XM)+K^_[^SBE$`OD*I40!(B=HPP.C0$O__2(G?Z)B[_O^[@,B!`.E>!```BX5H -XM_____\")18!(BTL82(E-D(M+*(E-F(7`?A.#^`M\&L=%@`H```"X"@```.L, -XMQT6``0```+@!````2&/X2,'G!.CF8/__2(E%B$B-?;@Q]NBGT/[_2(U]J$R) -XM=:CH.H;__TB)1:!(A<`/A,T#``!%,>WK6`\?A```````187D2(N=6/___P^% -XMOP```$B+1T/A3C___](BYU8____2(F=6/___TB-?;A(B=KH_L[^_T&\`0```$R+?9#I -XM?P```$2)]T2)K53___],C:U@____3(GN,=(QR>ARN/[_3&/X3(G_Z)=?__]( -XMB<-$B?=,B>Y$BZU4____2(G:3(GYZ$RX_O^_LXI1`+Z*J5$`2(G:,,#H^!#_ -XM_TB)W^C`N?[_2(N=6/___^GC`0``#Q]``$G_QV9F9F8N#Q^$``````!!B@>$ -XMP`^$JP$``#PF=3'&1=4FQD76`#'`#Q^``````#M%@'YNOUBI40!F#Q]$``!( -XMC775,,#HE1#__TG_Q^O`/%P/A>8```!!BD1U*4B+1`$2(M-B$R+-`%(BUP!"$F#_O]U$$B#^_]U"K]LJ5$` -XMZ7/___]$*?.%VP^.*/___T6%[70N187D=2E(BT7`2(M-R$@IP4B#^0%_#4B- -XM?;CH),W^_TB+14$/MDUT+D6%Y'4I2(M%P$B+3P/E<%$#[;I2(7`#X60 -XM_/__2(M%P,8``$B+7;A(C;U@____Z)FV_O](BWV(Z#"W_O](B=A(@<28```` -XM6T%<05U!7D%?7<-F9BX/'X0``````%5(B>5!5T%6055!5%-(@^PH18G'B4W$ -XM08G428GU28G^3(EUR+\P````Z()<__](B`/A!`!``!$.?@/A`_H9\G^_XH+2(M%R$B-4`%(B57(B`CK94V%]G06/"9U -XM$DF+5@A)BW803(GOZ)S)_O_K2DB+3](B=Y(BU6@BTVL3(U%L.C)VO__2(M%L$B- -XM7!C_#[Y#`4C_PX7`=`Y$.>!T"40Y^`^%!____TB+1%(BU60=`5$.?EU"$C_PTB)&NL82(D:2(M-F$C'`0`` -XM``!(B5!5T%6055!5%-( -XM@^PH2(G+28G608GU2(E]R$R+/TB+1PA,*?A(B4701(MC*$2)X(/@!H/X!@^$ -XM*P$``$'VQ`@/A(X```!(BW,(2(M3$$B)5,```!(BW,@2(7V#X14`P``187M="Q)BT8( -XM28M.$$@IP4B#^0%_#$R)]^AVQ_[_28M&"$B-2`%)B4X(Q@`@2(MS($B+4QA, -XMB??HM\?^_T2+8RBX`0```.D,`P``0?;$$`^$[@```$B+4Q!(BT7028G$22G4 -XM2"G02(E%P'AR30'\2(MS"$R)Y^A)K_[_A9F9F9F8N#Q^$``````"#R@2)4RA(B4W09@\? -XM1```A<`/A<$```!(BW,(3(G_Z/RM_O])B<2X`0```$V%Y'3?187M=$`QP$@K -XM0R!,B>%,*?E(.<%T,DF+1@A)BTX02"G!2(/Y`7\,3(GWZ-#%_O])BT8(2(U( -XM`4F)3@C&`"!(BT7(3(LX13'M3(GF3"G^3(GW3(GZZ`;&_O](BU,82(MS($R) -XM]^CVQ?[_3(G@2(M5R$@K`DB+2Q!-C3P,3(DZ2`'(2(MUT$B)\4@IP8M3*$@Y -XMQG0+,<#VP@$/A3'___^X`0```.DG____2(-]T`!T0T6%[70O28M&"$F+3A!( -XM*<%(@_D!?PQ,B??H,L7^_TF+1@A(C4@!28E.",8`($B+1T/E<$(P0^VP>F(_O__ -XM2(MS($B+1=!(C00&2#M%P'0]N`$```!%A>UT-DF+1@A)BTX02"G!2(/Y`7\, -XM3(GWZ+/$_O])BT8(2(U(`4F)3@C&`"!(BW,@N`$```#K`T2)Z$B+4QA,B?=! -XMB5!5E-)B?Y)BSY(B?KK'F9F9F9F+@\?A```````2(G"9F9F9BX/ -XM'X0``````$B)T$B-6`$/OE`!@_HZ=#NJ&I40#H -XM^7[__TF)'EM!7EW#D%5(B>5!5T%6055!5%-028G,2(G308GW28G^38LN28M& -XM"$B)1=!,B>B_>O__A05]=PP\?0`#IBZ[^_V9F -XM+@\?A```````54B)Y4%7059!54%44U!)B](BW703(GB2(G!Z`]Z__^%P'1%187_="A(BT,(2(M+ -XM$$@IP4B#^0%_#$B)W^B-PO[_2(M#"$B-2`%(B4L(Q@`@28L628MV"$@IUDB) -XMW^C,PO[_0;\!````1(GX2(/$"%M!7$%=05Y!7UW#D)"0D%5(B>5!5T%6055! -XM5%-(@^Q(38G%B4VD28G728GT28G^0?_52(G#@#LD#X6@````3(EMF$R)?;!, -XMB66H3(UEN$R)Y[X``0``Z`3#_O](B=Y,*?9,B>=,B?+H4\+^_X`[)'5*3(U] -XMN$2+;:1,BW689I!,B?](B=Y(BU6P1(GI3(U%T.B:T___3(MET$D!W$R)YT'_ -XMUDB)PTB)WDPIYDR)_TR)XN@)PO[_@#LD=,1(BT7`Q@``2(M%N$B+3:A(B0%( -XMBT7`2(E!",=!$`$```#K$DV)-"1)B5PD"$''1"00`````$B)V$B#Q$A;05Q! -XM74%>05]=PV9F9F8N#Q^$``````"#?Q``=`A(BS_ITJS^_\.054B)Y4%64TF) -XM]DB)^^B^!```2(7`=`0QP.L02(G?3(GVZ)H```"X`0```%M!7EW#54B)Y4%7 -XM05934$F)UTB)\TF)_DF+!DB%VW0Z2(7`=%Z_&````.@64O__3(EX$$B)&$B+ -XM2PA(B4@(2(E#"$B+2`A(A!!(QT`(`````$C'``````!)B48(28D&2(/$"%M!7D%?7<,/'X`` -XM````54B)Y4%64TF)]DB)^[\8````Z)E1__],B7`02(M+"$B)"$C'0`@````` -XM2(M+"$B%R70&2(E!".L#2(D#2(E#"%M!7EW#D)"0D)"0D)"0D)!52(GE05=! -XM5E-028G^2(L>2(7;=$9-BWX(#Q^``````+\8````Z#91__](BTL02(E($$V% -XM_W4%28D&ZP1)B4<(3(DX2(M;"$B%VTF)QW7128E&"$C'0`@`````2(/$"%M! -XM7D%?7<.0D)"0D)"0D)"02(L&2(7`="1(BT\(2(D(2(L&2(M/"$B%R70&2(E! -XM".L#2(D'2(M&"$B)1PC#D)"054B)Y5-02(GX2(LX,=M(A?]T)DB+3PA(BU\0 -XM2(D(2(7)=`E(QP$`````ZPA(QT`(`````.CGJO[_2(G82(/$"%M=PY"0D)"0 -XMD)"0D)"0D)!52(GE05=!5E-028GV2(L?387V="A(A=MT2F8/'T0``$R+>PA( -XMBWL00?_62(G?Z)VJ_O]-A?],B?MUY>LG2(7;=")F9F9F9BX/'X0``````$R+ -XMM,B?A( -XM@\0(6T%>05]=PY"0D)"0D)"0D)"0D)!52(GE05=!5E-028G628GW2(G[ZP]F -XM9BX/'X0``````$B+6P@QP$B%VW012(M[$$R)]D'_UX7`=>=(B=A(@\0(6T%> -XM05]=PY"0D)"0D)"0D%5(B>5!5T%64U!)B=9)B?=(B?OK&69F+@\?A``````` -XM2(M[$$R)]D'_UTB+6PA(A=MU[4B#Q`A;05Y!7UW#9I!52(GE059328GV2(L? -XMZPR02(M[$$'_UDB+6PA(A=MU\%M!7EW#9F8N#Q^$``````!52(GE05=!5E-0 -XM28G628GW2(G[9F9F9BX/'X0``````$B+&TB%VW012(G?3(GV0?_72(/#"(7` -XM=>=(@\0(6T%>05]=PY"0D)"0D)"0D)"0D%5(B>5!5T%64U!)B=9(B?-)B?]) -XMBP=(A=MT,$B%P'14OQ@```#H1D[__TR)L$2(E#"$B)`UM!7EW#D)"0D)"0 -XMD)"0D)"0D)!(BP\QP$B%R70-2(UY"$@Y<1!(B'1E;F1E9"!F;W)M870@96YT'1E;F1E9"!F;W)M870@96YTF5R;R!S=&%T -XM=7,`8"5S)R!I&%M:6YI;F<@)7,N+BX`=7!D871E('1I;64Z("5S"@`* -XM"E-T;W`@:6X@)7,@*&QI;F4@)6QU(&]F("5S*2X*`"Y#55)$25(`"@I3=&]P -XM(&EN("5S+@H`1W)A<&@@8WEC;&5S('1H2!N97-T -XM960@:68G0!396%R8VAI;F<@9F]R("5S+BXN -XM`&AE6EN9R!S=6)D:7)E8W1O2P@XQ1``````"#C%$````` -XM`(F,40``````CHQ1`````````````````"5S("5S*&EG;F]R960I"@`E'!A;F1S('1O(&5M<'1Y('-T -XM5]L:6YE -XM+A```````"'N$`````` -XM`%2Y0```````EKA```````!4N4```````%2Y0```````I;A```````"TN$`` -XM`````%2Y0```````P[A```````!"4%-I:VYQ5T@6RUJ(&UA>%]J;V)S72!;+6T@9&ER96-T;W)Y72!;+58@=F%R -XM:6%B;&5="@D@("`@6TY!344]=F%L=65=(%MT87)G970@+BXN70H`)7,M+3TE -XM9"``455%54E.1R``0VAI;&0@)7,@9&ES8V]V97)E9"!G6-L97,@ -XM=&AR;W5G:"`E65T+@H`)7,Z(&YO -XM="!Q=65U:6YG("@E9"!U;FUA9&4@8VAI;&1R96XI"@`EG4I"@`````````` -XM`````````$#10```````4-)```````#5U4```````+320```````!M-````` -XM``!STT```````*[30```````\-U```````!)WD```````"S>0```````2=Y` -XM```````XWD```````$G>0```````1-Y```````"3FU$```````8````````` -XMESL``,0````@`````````)F;40``````"`````````!]E0,`Q0```$`````` -XM````H9M1```````*`````````$?P.0!&``````````````"KFU$```````L` -XM````````%8#F`,@`````$````````+:;40``````!@`````````:.0``R0`` -XM```$````````O)M1```````&`````````,LX``!*``````````````#"FU$` -XM``````8`````````!3@``,L`````"````````,B;40``````!@`````````Z -XM.```3````````````````Y-1```````&`````````#DX``#-``````(````` -XM```PDU$```````L`````````7[3@`$X``````````````,Z;40``````"``` -XM``````!?A`,`3@``````````````UIM1```````)`````````#H>#@#/```` -XM`"````````#?FU$```````T`````````F`\9#E```````````````.R;40`` -XM````#`````````"8#X8#4```````````````^)M1```````&`````````*PY -XM``!1``````````````#^FU$```````H`````````:,\Y`-(````(```````` -XM``B<40``````!P````````"&Y@``4P``````````````#YQ1```````*```` -XM`````)@//P!4```````````````9G%$```````8`````````"#\``%4````` -XM`````````!^<40``````!P````````"1_P``U@````!`````````)IQ1```` -XM```*`````````+=@/@#7````@``````````PG%$```````L`````````36?^ -XM`,T``````@```````#N<40``````"``````````\\P,`V0`````!```````` -XM0YQ1```````-`````````"Q0S@]:``````````````!0G%$```````H````` -XM````A]@^`%L``````````````%J<40``````!0````````#9#P``W````!`` -XM````````7YQ1```````&`````````*`^``#=``````````````!EG%$````` -XM``<`````````!.P``.`````````"`````&R<40``````"P````````!-2^\` -XMX0````````0`````56YA"!O9B!S<&5C:6%L('1A"!F;W(@+G!O:7-O;CH@)7,`+FEN8VQU9&4@9FEL96YA -XM;64@;75S="!B92!D96QI;6ET960@8GD@)R(G(&]R("<\)P!5;F-L;W-E9"`N -XM:6YC;'5D92!F:6QE;F%M92X@)R5C)R!E>'!E8W1E9`!5;F5X<&5C=&5D(&5N -XM9"!O9B!F:6QE(&EN(&9O"!O;B`E6EN9R`E'!A;F1I;F<@(B5S(BXN+@!S=69F:7@@:7,@(B5S(BXN+@!% -XM>'!A;F1I;F<@(B5S(BXN+@!0&5S.@``````861D:6YG('-U9F9I>"!R=6QE````````````````````",J*BH@5')A;G-F -XM;W)M871I;VYS.@```,HA00``````Q2%!``````#+(4$``````-$A00`````` -XMUR%!``````#=(4$``````)`C00``````A"-!``````"N)$$``````+@D00`` -XM````PB1!``````#,)$$``````/`D00``````6R-!``````#6)$$``````-TD -XM00``````Y"1!``````#K)$$``````"Y"14=)3@`N14Y$`"Y)3E1%4E)54%0` -XM+D1%1D%53%0`+D]05$E/3D%,(``N55-%(``N15A%0R``+DE'3D]212``+E!2 -XM14-)3U53(``N4TE,14Y4(``N34%+12``+DI/24X@`"Y)3E9)4TE"3$4@`"Y. -XM3U1-04E.(``N3$E"(``N345-0D52(``N05)#2%8@`'5N:VYO=VX`97)R;W(@ -XM=VAE;B!M861E`&]T:&5R('-T871U&ES -XM=&5N="`H;6%Y8F4I.B`E6EN9R!T;R!P -XM;VES;VX@9'EN86UI8R!V87)I86)L92`D)7,`4&]I2!S970*`%1R>6EN9R!T;R!D96QE=&4@9'EN86UI8R!V -XM87)I86)L92`D)7,`5')Y:6YG('1O(&=E="!V86QU92!O9B!D>6YA;6EC('9A -XM6YA;6EC('9A0H`5')Y:6YG('1O("5S(&1Y;F%M -XM:6,@=F%R:6%B;&4@)"5S`&%P<&5N9"!T;P!4$$`````````````````<'E!``````!@>4$` -XM````````````````,'A!`````````````````,!X00``````8'E!```````` -XM`````````/!S00````````````````!`=$$``````.!G00`````````````` -XM``#`:T$``````-!K00````````````````#@9T$`````````````````@&I! -XM``````#P:D$`````````````````\"=``````````````````(!H00`````` -XM``````````"09$$```````````````````````````"`:$$````````````` -XM````X&)!````````````````````````````@&A!`````````````````/!I -XM00```````````````````````````(!H00````````````````!P:4$````` -XM``````````````````````"`:$$``````!!I00`````````````````````` -XM````````````````@&A!``````"P:$$````````````````````````````` -XM`````````!!H00``````0&A!````````````````````````````"B`))V`B -XM.R8\/B@I?"H_>WU;75PD(2->?@`````````!``````````$`````````!``` -XM```````0`T````````4`````````:!)````````&`````````)@&0``````` -XM"@````````#J`P````````L`````````&``````````5```````````````` -XM`````P````````#XM'$```````(`````````P`D````````4``````````<` -XM````````%P````````"H%T````````<`````````6!9````````(```````` -XM`%`!````````"0`````````8```````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````````````````````````````L+-A```` -XM````````````````````````EB%```````"F(4```````+8A0```````QB%` -XM``````#6(4```````.8A0```````]B%````````&(D```````!8B0``````` -XM)B)````````V(D```````$8B0```````5B)```````!F(D```````'8B0``` -XM````AB)```````"6(D```````*8B0```````MB)```````#&(D```````-8B -XM0```````YB)```````#V(D````````8C0```````%B-````````F(T`````` -XM`#8C0```````1B-```````!6(T```````&8C0```````=B-```````"&(T`` -XM`````)8C0```````IB-```````"V(T```````,8C0```````UB-```````#F -XM(T```````/8C0```````!B1````````6)$```````"8D0```````-B1````` -XM``!&)$```````%8D0```````9B1```````!V)$```````(8D0```````EB1` -XM``````"F)$```````+8D0```````QB1```````#6)$```````.8D0``````` -XM]B1````````&)4```````!8E0```````)B5````````V)4```````$8E0``` -XM````5B5```````!F)4```````'8E0```````AB5```````"6)4```````*8E -XM0```````MB5```````#&)4```````-8E0```````YB5```````#V)4`````` -XM``8F0```````%B9````````F)D```````#8F0```````1B9```````!6)D`` -XM`````&8F0```````=B9```````"&)D```````)8F0```````IB9```````"V -XM)D```````,8F0```````UB9```````#F)D```````/8F0```````!B=````` -XM```6)T```````"8G0```````-B=```````!&)T```````%8G0```````9B=` -XM``````!V)T```````(8G0```````EB=```````"F)T```````+8G0``````` -XMQB=```````#6)T```````.8G0```````]B=````````&*$`````````````` -XM``````````````````````````````````````````````#__________P`` -XM```````````````````````````````N6YS>6T`+F1Y;G-T<@`N6X`+G)E;&$N<&QT`"YI;FET`"YP;'0`+G1E>'0`+F9I;FD`+G)O9&%T80`N -XM9&%T80`N96A?9G)A;64`+F1Y;F%M:6,`+FIC<@`N9V]T<&%D,``N9V]T`"YC -XM=&]R+@!```````0```````` -XM````````````"````````````````````*,````!`````P````````"(N'$` -XM`````(BX`0``````"`````````````````````@```````````````````"J -XM`````0````$`````````D+AQ``````"0N`$````````````````````````` -XM```!````````````````````LP````@````#`````````)"X@0``````D+@! -XM```````8)0``````````````````$````````````````````+@````!```` -XM`````````````````````)"X`0``````"`````````````````````0````` -XM```````````````!`````P````````````````````````"8N`$``````,X` -X>```````````````````!```````````````````` -X` -Xend -647df595c3365b3d9d04c6551fe0438d -echo x - make.uu -sed 's/^X//' >make.uu << 'ed78d4936f2c86b3dc64cf5324ab8f8b' -Xbegin 644 make -XM?T5,1@(!`0````````````(`/@`!````$"A```````!``````````'BY`0`` -XM`````````$``.``*`$``&P`8``8````%````0`````````!``$```````$`` -XM0```````H`(```````"@`@````````@``````````P````0```#@`@`````` -XM`.`"0```````X`)````````3`````````!,``````````0`````````!```` -XM!0````````````````!``````````$```````-Z``0``````WH`!```````` -XM`!````````$````$````X(`!``````#@@%$``````."`40``````\"@````` -XM``#P*```````````$````````0````8`````L`$```````"P80```````+!A -XM``````#X!````````/@$```````````0```````!````!@```/BT`0`````` -XM^+1Q``````#XM'$``````)@#````````F`,``````````!````````$````& -XM````D+@!``````"0N($``````)"X@0`````````````````8)0`````````` -XM$````````@````8```"PLP$``````+"S80``````L+-A``````!``0`````` -XM`$`!````````"``````````$````!````/0"````````]`)```````#T`D`` -XM`````!@`````````&``````````$`````````%'E=&0&```````````````` -XM``````````````````````````````````````````@````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````"]U``` -XM```````#````$@```$\```!D`````````````````````````%0````[```` -XM9@```'H````Y`````````!X```!7````5@```'<```!P````10````H````_ -XM````*0````````!B`````````%$```!0`````````'8```!?````90```#,` -XM``!T````<@```&D````P````;P````````!:````2P```!\`````````$P`` -XM``````!]````0`````````V```` -XM;@```"P`````````'0````````!5`````````$H```!>````70````````![ -XM````<0``````````````,0````````!)````-P``````````````0````%(` -XM```T````00`````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````0```````````````P````:``````````@````9 -XM``````````````````````````````````````````D````4`````````"@` -XM```-`````````"<````@`````````"4``````````````!8````J````(@`` -XM```````%`````0````(````D```````````````C````,@`````````````` -XM#@``````````````/@```"X```````````````````!&`````````$0````U -XM````!P`````````M````%P```#@`````````/````"\`````````3``````` -XM```1`````````"$``````````````$(`````````/0```"L````/````$``` -XM```````;``````````L`````````30````````!@````2``````````Z```` -XM````````````````;``````````5````:````"8````<````!@````````!# -XM````8P```%,```!'```````````````````````````````````````````` -XM```.````$@```)`A0```````A@`````````6````$@```*`A0``````````` -XM```````D````$@```+`A0```````U@`````````M````$@```,`A0``````` -XM!P````````!Z`P``$@```-`A0```````O@````````"^`@``$@```.`A0``` -XM````AP`````````U````$@```/`A0``````````````````\````$@`````B -XM0```````=0````````!/````$@```!`B0```````)`````````!8````$@`` -XM`"`B0```````8P$```````!A````$0`6`)"X@0``````0`````````!S```` -XM$0#Q_["S80````````````````!\````$@```#`B0```````"`````````"S -XM`P``$``5`)"X<0````````````````"$````$@```$`B0```````?P`````` -XM``"+````$@```%`B0```````0P````````"2````$@```&`B0``````````` -XM``````"9````$@```'`B0```````0@$```````"O````$@```(`B0``````` -XM-P````````"[````$@```)`B0```````Q`$```````#"````$@```*`B0``` -XM````\P````````!)`P``$@```+`B0```````^P````````#)````$@```,`B -XM0`````````````````#.````$@```-`B0```````40````````#3````$@`` -XM`.`B0```````$P$```````#:````$0`6`-"X@0``````"`````````#A```` -XM$@```/`B0`````````````````#H````$@`````C0```````4@````````#P -XM````$@```!`C0```````R@````````#W````$@```"`C0```````&``````` -XM``#]````$@```#`C0``````````````````%`0``$@```$`C0```````&P`` -XM```````0`0``$@```%`C0```````"P`````````A`0``$@```&`C0``````` -XM'P`````````O`0``$@```'`C0```````.0(````````V`0``$@```(`C0``` -XM```````````````[`0``$@```)`C0```````PP$```````!!`0``$@```*`C -XM0```````(0````````!)`0``$@```+`C0```````4`````````!6`0``$@`` -XM`,`C0```````AP$```````!=`0``$@```-`C0```````Q1,```````#<`@`` -XM$@```.`C0`````````````````"G`P``$``1`/BT<0````````````````!D -XM`0``$0`6``#<@0``````"`````````!Y`P``$@```/`C0```````I0`````` -XM``!L`0``$0`6`-BX@0``````"`````````!Z`0``$@`````D0``````````` -XM``````"``0``$@```!`D0```````!0````````"&`0``$0`6`."X@0`````` -XM!`````````"-`0``$@```"`D0```````)@````````"4`0``$@```#`D0``` -XM````%`````````"9`0``$0`-``"P80``````"`````````"D`0``$@```$`D -XM0`````````````````"J`0``$@```%`D0```````;0````````"Q`0``$@`` -XM`&`D0```````=0`````````!`@``$@```'`D0`````````````````"X`0`` -XM$@```(`D0```````J0$```````#!`0``$@```)`D0```````,P````````#) -XM`0``$@```*`D0``````````````````F````$@```+`D0```````_0$````` -XM``#0`0``$@```,`D0```````,@````````#:`0``$@```-`D0```````0P8` -XM``````#B`0``$@```.`D0```````*P````````#I`0``$0`6`/"X@0`````` -XMR`$```````#N`0``$@```/`D0`````````````````#S`0``$@`````E0``` -XM````&@````````#Y`0``$@```!`E0```````(P```````````@``$@```"`E -XM0```````#`$````````&`@``$@```#`E0```````KP<````````.`@``$@`` -XM`$`E0```````;P`````````F`@``$@```%`E0```````W``````````9`@`` -XM$0`6`+BZ@0``````!`````````#$`P``$`#Q_Y"X@0`````````````````L -XM`@``$@```&`E0```````"@`````````S`@``$@```'`E0```````;0`````` -XM```]`@``$@```(`E0```````'P````````!$`@``$@```)`E0```````W``` -XM``````!,`@``$@```*`E0```````"P$```````#0`P``$0`6`!#<@0`````` -XM``$```````!3`@``$@```+`E0```````)1$```````#6`@``$@```,`E0``` -XM````-`````````!;`@``$@```-`E0```````.0````````!C`@``$@```.`E -XM0```````.`````````!R`@``$@```/`E0```````3@````````!_`@``$@`` -XM```F0```````5P````````#&`@``$@```!`F0```````2P````````".`@`` -XM$@```"`F0```````'0````````"5`@``$@```#`F0```````=`````````"< -XM`@``$@```$`F0```````"0````````"C`@``$@```%`F0```````-``````` -XM``"K`@``$0`6`+RZ@0``````!`````````#C`P``$@`+`-"`00`````````` -XM``````"T`@``$@```&`F0```````*0$```````"]`@``$@```'`F0``````` -XM0P$```````#%`@``$@```(`F0```````40````````#+`@``$@```)`F0``` -XM````Y`$```````#2`@``$@```*`F0```````=@````````"E`0``$@```+`F -XM0`````````````````#;`@``$@```,`F0```````R0````````"]`P``$`#Q -XM_Y"X@0````````````````#B`@``$0#Q__BT<0````````````````"X`P`` -XM$`#Q_ZC=@0`````````````````;`P``$@```-`F0```````%@````````#X -XM`@``$0`6`,"Z@0``````"``````````&`P``$@```.`F0```````#``````` -XM```+`P``$0`6`,BZ@0``````"``````````3`P``$@```/`F0```````10`` -XM```````:`P``$@`````G0``````````````````@`P``$@```!`G0``````` -XM-``````````G`P``$@```"`G0```````'@`````````G`@``$@```#`G0``` -XM```````````````N`P``$@```$`G0```````-P`````````Y`P``$@```%`G -XM0```````>`````````!!`P``$@```&`G0```````(P````````!(`P``$@`` -XM`'`G0```````F`````````!.`P``$@```(`G0```````&@````````":`P`` -XM$``-``"P80````````````````!5`P``$@```)`G0```````C@````````!> -XM`P``(`````````````````````````!R`P``$@```+`G0``````````````` -XM``!-`@``$@```,`G0`````````````````!X`P``$@```-`G0```````6@`` -XM``````"!`P``$@```.`G0```````*``````````\`P``$@```/`G0``````` -XM\0````````".`P``$@`````H0```````````````````;&EB8RYS;RXV-2XP -XM`'!U=&-H87(`8VQO8VM?9V5T=&EM90!U;G-E=&5N=@!W86ET<&ED`'5T:6UE -XM&5C=G``8VQO``````````````#@M7$```````<````?``````````````#H -XMM7$```````<````@``````````````#PM7$```````<````A```````````` -XM``#XM7$```````<````B````````````````MG$```````<````C```````` -XM```````(MG$```````<````D```````````````0MG$```````<````E```` -XM```````````8MG$```````<````F```````````````@MG$```````<````G -XM```````````````HMG$```````<````H```````````````PMG$```````<` -XM```I```````````````XMG$```````<````J``````````````!`MG$````` -XM``<````M``````````````!(MG$```````<````O``````````````!0MG$` -XM``````<````P``````````````!8MG$```````<````R``````````````!@ -XMMG$```````<````S``````````````!HMG$```````<````U```````````` -XM``!PMG$```````<````V``````````````!XMG$```````<````W```````` -XM``````"`MG$```````<````X``````````````"(MG$```````<````Y```` -XM``````````"0MG$```````<````Z``````````````"8MG$```````<````[ -XM``````````````"@MG$```````<````\``````````````"HMG$```````<` -XM```]``````````````"PMG$```````<````^``````````````"XMG$````` -XM``<````_``````````````#`MG$```````<```!!``````````````#(MG$` -XM``````<```!"``````````````#0MG$```````<```!#``````````````#8 -XMMG$```````<```!$``````````````#@MG$```````<```!%```````````` -XM``#HMG$```````<```!&``````````````#PMG$```````<```!'```````` -XM``````#XMG$```````<```!*````````````````MW$```````<```!+```` -XM```````````(MW$```````<```!,```````````````0MW$```````<```!- -XM```````````````8MW$```````<```!.```````````````@MW$```````<` -XM``!0```````````````HMW$```````<```!1```````````````PMW$````` -XM``<```!2```````````````XMW$```````<```!3``````````````!`MW$` -XM``````<```!4``````````````!(MW$```````<```!5``````````````!0 -XMMW$```````<```!6``````````````!8MW$```````<```!7```````````` -XM``!@MW$```````<```!8``````````````!HMW$```````<```!9```````` -XM``````!PMW$```````<```!:``````````````!XMW$```````<```!=```` -XM``````````"`MW$```````<```!>``````````````"(MW$```````<```!? -XM``````````````"0MW$```````<```!@``````````````"8MW$```````<` -XM``!A``````````````"@MW$```````<```!B``````````````"HMW$````` -XM``<```!C``````````````"PMW$```````<```!G``````````````"XMW$` -XM``````<```!I``````````````#`MW$```````<```!K``````````````#( -XMMW$```````<```!L``````````````#0MW$```````<```!M```````````` -XM``#8MW$```````<```!N``````````````#@MW$```````<```!O```````` -XM``````#HMW$```````<```!P``````````````#PMW$```````<```!Q```` -XM``````````#XMW$```````<```!R````````````````N'$```````<```!S -XM```````````````(N'$```````<```!T```````````````0N'$```````<` -XM``!V```````````````8N'$```````<```!W```````````````@N'$````` -XM``<```!X```````````````HN'$```````<```!Y```````````````PN'$` -XM``````<```!Z```````````````XN'$```````<```![``````````````!` -XMN'$```````<```!\``````````````!(N'$```````<```!]```````````` -XM`````````````$B#[`CHYP<``$B#Q`C#``#_-7J3,0#_)7R3,0"0D)"0_R5Z -XMDS$`:`````#IX/____\E#^____ -XM)?*2,0!H$0```.G0_O___R7JDC$`:!(```#IP/[___\EXI(Q`&@3````Z;#^ -XM____)=J2,0!H%````.F@_O___R72DC$`:!4```#ID/[___\ERI(Q`&@6```` -XMZ8#^____)<*2,0!H%P```.EP_O___R6ZDC$`:!@```#I8/[___\ELI(Q`&@9 -XM````Z5#^____):J2,0!H&@```.E`_O___R6BDC$`:!L```#I,/[___\EFI(Q -XM`&@<````Z2#^____)9*2,0!H'0```.D0_O___R6*DC$`:!X```#I`/[___\E -XM@I(Q`&@?````Z?#]____)7J2,0!H(````.G@_?___R5RDC$`:"$```#IT/W_ -XM__\E:I(Q`&@B````Z<#]____)6*2,0!H(P```.FP_?___R5:DC$`:"0```#I -XMH/W___\E4I(Q`&@E````Z9#]____)4J2,0!H)@```.F`_?___R5"DC$`:"<` -XM``#IJ1,0!H,@```.G` -XM_/___R7BD3$`:#,```#IL/S___\EVI$Q`&@T````Z:#\____)=*1,0!H-0`` -XM`.F0_/___R7*D3$`:#8```#I@/S___\EPI$Q`&@W````Z7#\____);J1,0!H -XM.````.E@_/___R6RD3$`:#D```#I4/S___\EJI$Q`&@Z````Z4#\____):*1 -XM,0!H.P```.DP_/___R6:D3$`:#P```#I(/S___\EDI$Q`&@]````Z1#\____ -XM)8J1,0!H/@```.D`_/___R6"D3$`:#\```#I\/O___\E>I$Q`&A`````Z>#[ -XM____)7*1,0!H00```.G0^____R5JD3$`:$(```#IP/O___\E8I$Q`&A#```` -XMZ;#[____)5J1,0!H1````.F@^____R52D3$`:$4```#ID/O___\E2I$Q`&A& -XM````Z8#[____)4*1,0!H1P```.EP^____R4ZD3$`:$@```#I8/O___\E,I$Q -XM`&A)````Z5#[____)2J1,0!H2@```.E`^____R4BD3$`:$L```#I,/O___\E -XM&I$Q`&A,````Z2#[____)1*1,0!H30```.D0^____R4*D3$`:$X```#I`/O_ -XM__\E`I$Q`&A/````Z?#Z____)?J0,0!H4````.G@^O___R7RD#$`:%$```#I -XMT/K___\EZI`Q`&A2````Z<#Z____)>*0,0!H4P```.FP^O___R7:D#$`:%0` -XM``#IH/K___\ETI`Q`&A5````Z9#Z____)````Z0#Z____)8*0,0!H7P```.GP -XM^?___R5ZD#$`:&````#IX/G___\E534$B+!5./,0!(A$B)59!)B?=(B?M(B9UH____2(U]F+X``0``Z!`3``!(BP-(B470,%(B=](BW60Z'4B`0"%P`^$+`0``+D!````3(MUT.O23(E]@(7)="Z) -XMC7#___],B>=,B?9(BU60N0$```#HT"H!`$B)PTB)W^A%_/__2`'83(MUT.L, -XMB8UP____3(GP3(GC2(F=>/___TG_QDR)==!(*=A(B46(3(UEF.L5#Q]$``!, -XMBW709F9F+@\?A```````00^V!C'22#W_````38GW="\QTDB+#8Z/00#V1`@! -XM"$V)]W0<2?_&3(EUT.O##Q\`2?_'3(E]T&8/'X0``````$$/M@=(/?\```!T -XMY(3`#X11`P``/"ET/$B+#4F/00#V1`@!"'4F/"1UQDB-?=!(BW60Z'DA`0`Q -XMVX7`#X0_`P``N@$```!,BWW0Z[2$P`^$$0,``$TY_@^$/0,``(72B95T____ -XM3(GW3(G^#X3L````2(M5D+D!````Z,$I`0!)B<5,B>=(BW6(2(N5>/___^C+ -XM$```2(M%H$B+3:A(*<%(@_D!?PQ,B>?H4A```$B+1:!(C4@!2(E-H,8`*$R) -XM[^C[^O__3(GG2(G&3(GJZ(T0``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^@4$``` -XM2(M%H$B-2`%(B4V@Q@`I2(M%H,8``$B+79A(B5W(3(GOOB0```#HZ?K__TB% -XMP`^$]0```$TI]TR)[TR)]DR)^NA/^/__A<`/A=P```!(B=\Q]KH!````Z$CP -XM``"`2!H@2(M]@$B)QN@H3P$`Z=,```#HSD```(7`3(MM@`^%SP```$R)YTB+ -XM=8A(BY5X____Z-\/``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^AF#P``2(M%H$B- -XM2`%(B4V@Q@`H32GW3(GG3(G^3(GRZ*8/``!(BT6@2(M-J$@IP4B#^0%_#$R) -XMY^@M#P``2(M%H$B-2`%(B4V@Q@`I2(M%H,8``$B+?9@Q]KH!````Z)?O``"` -XM2!H@3(GO2(G&Z'A.`0!(BT682(E%H.DO`0``2(U]R$B+=8!(BU60Z)K\__\Q -XMVX7`#X10`0``2(M%F$B)1:#I"@$```]7P`\I1;!(BQ4%@R$`3(GW3(G^2(U= -XML$B)V>AC.@``2(G?Z`M/`0!(B<-(A=M,B[UX____#X3(````#Q^$``````!, -XMB>=(BW6(3(GZZ-$.``!(BT6@2(M-J$@IP4B#^0%_#$R)Y^A8#@``2(M%H$B- -XM2`%(B4V@Q@`H2(G?Z`'Y__],B>=(B<9(B=KHDPX``$B+1:!(BTVH2"G!2(/Y -XM`7\,3(GGZ!H.``!(BT6@2(U(`4B)3:#&`"E(B=_HD_G__TB+1:#&``!(BWV8 -XM,?:Z`0```.A\[@``@$@:($R)[TB)QNA=30$`2(M%F$B)1:!(C7VPZ#Q.`0!( -XMB<-(A=L/A4#___],B6V`38GU@[UT____``^$7/S__TR)[^@T^?__3(MUT.E; -XM_/__OT""40#HX?/__S';9F9F9F9F+@\?A```````2(M]F.@'^?__B=A(@\1X -XM6T%<05U!7D%?7<.#O7#___\`=!!(B[UX____Z.'X__],BW702?_&9BX/'X0` -XM`````$R)\$B)1=`/M@A(@?G_````=!),C7`!2(L5BHM!`/9$$0$(==M(BXUH -XM____2(D!NP$```#KBF8N#Q^$``````!52(GE05=!5D%505132('LB`0``$B) -XM^$B+#1*)00!(B4W02(NXL````$R+H+@```!(QX6P^___`````+XS@E$`Z*OU -XM__\QVTB%P`^$H`(``$B-?>^_(!1`+H#````Z(7S__^%P`^%N````$$/ -XMMD0D`T@]_P````^$I@```$B+#4R)00#V1`@!!`^$E````$F#Q`-,B>?H3?7_ -XM_XG#C4/_/?X#```/AYL```!,8^-,B?],B>:Z`0```$B+C6C[___H8_/__TB# -XM^`%U>_?;2&/S2(N]:/O__[H!````Z#?R__^%P'5A0L:$)<#[__\`]@5?JT$` -XM04R)^W0/OPN"40!(B=XPP.C/[___2(G?28G?2(NU8/O__^@-]/__A<`/A+0` -XM``!)_\5)@^7^2(N]:/O__TR)[KH!````Z-KQ__^%P`^$\OW__TB+O6C[___H -XM5O/__S';#Q]``$B%VW1;,?_H9//__TACR$B-O8#[__^^#````+HV@E$`,,#H -XMJ>___TB)WTC'QL3___^Z`0```.B%\?__AP````3(N_N````$C'A5C[__\`````3(G_OB\```#H5/#__TB)PTB-E5C[ -XM__^_,+N!`$R)]NA]\O__B84\^___OS"[@0")QNC+[___28G$2(7;2(U#`4D/ -XM1,=(B85(^___387D=`Q,B[5(^___Z<(```!(BX58^___2(F%L/O__TC'A:#[ -XM__\`````3(GWOC"140#HC_'__TB%P$&\`````'1D2(U]R+X(````N@$```!( -XMB<%(B850^___Z#?Q__](@_@!=1M(C7W(OO"`40"Z"````.B.\/__A<`/A#P! -XM``!(B[U0^___Z(KQ__]F+@\?A```````13'D9F9F9BX/'X0``````+@```"` -XM387D3(NU2/O__XNU//O__[H`````#X3"````OS"[@0!,B>+H4^___TC'A5C[ -XM__\`````2(V56/O__TR)YTR)]NAF\?__3(GGB<;HO.[__TB)PTB%VW4_2(N% -XM6/O__TPI\$B#^!%R;TF-1A!(B858^___2(V56/O__TR)YTR)]N@G\?__3(GG -XMB<;H?>[__TB)PTB%VW1`@3L```"`=3!(@WL(`'4I2(U[$#'VN@H```#HAN[_ -XM_XD#2,=#"``````]````@'4(2,=#"`$```!(BU,(BP/K![@```"`,=)(BXU` -XM^___B4$H2(E1,$B+!6F#00!(.T70#X41`P``BT$H2('$N`0``%M!7$%=05Y! -XM7UW#2(V5L/O__[\PL&$`3(GVZ*;L__](B<=)B<6^"````+H(L&$`Z-'O__], -XMC;W`^___9BX/'X0``````$B-O6#[__^^`0```+H\````2(N-4/O__^B#[___ -XM2(G#2(7;=2&#/0R%00``#X0S`@``2(N]4/O__^@2[?__A<`/A2P"``!(@_L\ -XM#X)"`@``2(V%FOO__V:!.&`*#X4P`@``2(V-D/O__V:+00AFB06$A4$`2(L! -XM2(D%^_(!1`+H#````Z#/N -XM__^%P`^%K````$$/MD8#2#W_````#X2;````2(L-^X-!`/9$"`$$#X2)```` -XM28/&`TR)]^C\[___C4C_@?G^`P``#XN@$```!(BXU0 -XM^___Z!/N__](@_@!#X7[````QH0=P/O__P#WVTAC\TB+O5#[__^Z`0```.C; -XM[/__A<`/A=4```#V!0BF00!!38G^=!B_`(%1`$R)^TB)WC#`Z'7J__])B=Y) -XMB=],B>],B?;H].O__XG#2,>%N/O__P````"_"+!A`$R)]DB-E;C[___H<^K_ -XM_TB-E7#[__^+2@B)2!A(BPI(B4@0QD`<`,<`````@$C'0`@`````3(GOB=Y( -XMB<+H\.O__TG_Q$F#Y/Y(B[U0^___3(GFN@$```#H->S__X7`#X2=_?__ZRU( -XMBX50^___]D`0('0@2(N]H/O__^CR[___2(N]4/O__^B6[?__38GLZ1[\__]( -XMB[U0^___Z(+M__],B>M(B=_HM^___TB+O:#[___HN^___TB)W^BS[___Z=[[ -XM___H">O__V8/'X0``````%5(B>5!5T%6055!5%-028G_28V'*`$``$B)1=!- -XMC7=@ZQ)F9F9F9BX/'X0``````$F#Q@A-BS9-A?8/A)H```!-BV800?9$)!H@ -XM=0I!@'PD!0!TW.MT28V\)"@!``"^*````.BH[O__2(G#2(7;=,!(_\-(B=^^ -XM*0```.B0[O__28G%08!\)`4`=*5-A>UTH$DIW4B)WTB+==!,B>KHGNO__X7` -XM=8I#@+PO*`$````/A7O___],B>?H\_G__T&)1RA)B5L\N`$```!\-8M'.#G!=1%(BUZ -XM"````.@XZO__28G'1(GWZ'WM__\QVTF#_PAU%$BX(3QA!U#8G82(/$&%M!7D%?7BAZ?__2(/X`75328L&2(T,&$B)3=`Q]DB%VWX@ -XM9@\?A```````@#@O=0K&``!(_\9(BTW02/_`2#G(05]=PV9F+@\?A```````54B)Y4%7059!54%44U!)B==) -XMB?9)B?Q)C48!38ML)`A)BUPD$$B)V4PIZ4@YP7-*28L\)$@I^TDI_4F-A@$! -XM``!F9F9F9F8N#Q^$``````!(`=M(B=E,*>E(.<%R\DB)WN@JD0``28D$)$D! -XMQ4V);"0(2`'828E$)!!,B>],B?Y,B?+H2.7__TT!="0(2(/$"%M!7$%=05Y! -XM7UW##Q]``%5(B>5!5E-)B?Y(A?:[``$``$@/1=Y(B=_H$I```$F)!DF)1@A( -XM`<-)B5X06T%>7<-F9F9F9F8N#Q^$``````!(BP=(BT\(2/_`ZPL/'T``2/_) -XM2(E/"$@YP78A#[91_TB!^O\```!T%$B+-?A\00#V1#(!"'0&@'G^7'73PY"0 -XM54B)Y4%7059!54%44TB![%@$``!)B?9(BP62>D$`2(E%T$G'!@````!(QX6P -XM^___Z()1`$C'A;C[___"@E$`2(F]P/O__TC'AN"40!!@_S_=1))B0Z__*A1`.B9CP`` -XMZ08!``!%A>0/A!P!``"+O:S[___H0.G__TR-O8C[__],B?^^``$``.C,_O__ -XM3(VMT/O__^L3#Q\`3(G_2(G&3(GJZ!+^__]FD(N]J/O__TR)[KH`!```Z*WE -XM__](A05]=PXN]J/O__^@DZ/__B[VL^___ -XM@_\!=!6^`0```.@/X___B[VL^___Z`3H__](C;6P^___O^."40#H,^7__[\! -XM````Z"GG___H=./__Y"0D)!52(GE05=!5E-028G^13'_,?_HV3P``(,]8IU! -XM``!U4$B+/8&=00#HE#@``$4Q_X/X!'4\ORV$40#HDN+__[\!````Z*CF__\/ -XM'X0``````$B!PR@!``"_5X-1`$B)WC#`Z(KA__]!_\GM -XM-P``9F9F9BX/'X0``````%5(B>5!5T%605132(GS28G_]@5TG$$`0'0F2(V# -XM*`$``$B%V[Z=D%$`2`]%\$F-ER@!``"_>X-1`##`Z-#@__]).=\/A$<"``!, -XMB?_H;^4``$B%VTV)_G063(G_2(G>Z,S^``"%P$F)W@^%(0(``$'V1AD(="E) -XMC46900``=1Q,B?_H"R,``#T```"`=1A,B?_H -XM_"(``$B%TG4+28UW*#'_Z`S>__])C4\X28U'*$&+5RA!BWE`+0``OP$```#H5N+__TF+G^````"_Y8-1`#'VZ#,'`0!( -XMB<9(@_L`=1:_[8-1`##`Z"[=__^_`0```.@DXO__28N/V````$F+E^````"_ -XMQ8-1`##`Z`K=__^_`0```.@`XO__54B)Y4%705934$F)_DR)\$B)PTB)7>`/ -XMM@M(@?G_````="E(C4,!2(L5RG5!`/9$$0$"==NX`@```(#Y+@^$[04``(#Y -XM.@^$Y`4``$B-=>!,B??HV.#__XG!N/W`#_Q(#Z_!2,'H)FO`08G**<),*?.X -XM`@```(/Z.W]D@_HR#X^;````@_HN#X_W````@_HD#X\P`0``@_H<#X]$`@`` -XM@\+U@_H-#X>%!0``_R358(11`+@"````@?E"'@``#X5M!0``2(/[!`^%8P4` -XM`$R)][Z$AE$`N@0```#I8P,``(/"Q(/Z`P^'104``/\DU4"$40"X`@```('Y -XMP@$```^%+04``$B#^P(/A2,%``!,B?>^9(91`+H"````Z?4!``"#^C,/A0@% -XM``"X`@```('Y*1X```^%]P0``$B#^P0/A>T$``!,B?>^5(91`+H$````Z&O> -XM__^)P;@"````A@<` -XM#X50!```2(/[!P^%1@0``$R)][Y$AE$`N@<```#HQ-W__XG!N`(```"%R0^% -XM)00``+A0A5$`13'_Z4<#``"X`@```('YF=X!``^%!P0``$B#^P8/A?T#``!, -XMB?>^.X91`+H&````Z'O=__^)P;@"````A'@`/A;X#``!(@_L(#X6T`P``3(GWOCF&40"Z"````.@RW?__ -XMB<&X`@```(7)#X63`P``N("%40!%,?_IM0(``('YI58'`'4G2(/[!W4A3(GW -XMOG2&40"Z!P```.CVW/__B<&X!0```(7)#X17`P``N`(```#I30,``(/Z'0^% -XM1`,``+@"````@?DR=P``#X4S`P``2(/[!0^%*0,``$R)][XJAE$`N@4```#H -XMI]S__XG!N`(```"%R0^%"`,``+@@A5$`13'_Z2H"``"#^B9U7+@"````@?D" -XM>0``#X7E`@``2(/[!0^%VP(``$R)][YAAE$`N@4```#H6=S__XG!N`(```"% -XMR0^%N@(``(L%1'-!`(7`#X1Z`@``_\B)!31S00"X`0```.F:`@``@_HI#X61 -XM`@``N`(```"!^9EZ>0`/A8`"``!(@_L)#X5V`@``3(GWOD*&40"Z"0```.CT -XMV___B<&X`@```(7)#X55`@``N)"%40!%,?_I=P$``+@!````@SW,`0``N`(```#IE`$``('Y,FD``'4G2(/[!74A -XM3(GWOF>&40"Z!0```.@$V___B<&X!````(7)#X1E`0``N`(```#I6P$``+@" -XM````@?DRW@$`#X5*`0``2(/[!@^%0`$``$R)][XRAE$`N@8```#HOMK__XG! -XMN`(```"%R0^%'P$``+@PA5$`13'_ZT2X`@```('Y,EX>``^%!`$``$B#^P@/ -XMA?H```!,B?>^,(91`+H(````Z'C:__^)P;@"````A& -XM40!,B?(PP.CT-0``N`(```#I^O[__V8N#Q^$``````!52(GE059308G^9@\? -XM1```1(GWZ&@-``")P[@)````@_L)=")$B??H)````(/X`W4-A=MTVS'_Z,3_ -XM___K!HD%"&0A`(G86T%>7<,/'T0``%5(B>5!5T%6055!5%-(@^QHB?M$BSWB -XM8R$`08/_"'5`3(LU`7)!`.L1#Q^``````$G_QDR)->YQ00!!#[X&@_@)=.T\ -XM('3I@_A[?R-!OP<```"#^`E_0X7`=7/I\`(``,<%DF,A``@```#IX0(``(/X -XM?'5:08!^`7QU"DG_QDR)-:-Q00!)_\9,B369<4$`0;\#````Z;8"``"#^"!_ -XM"X/X"@^$J`(``.LD@\#?@_@(=QS_),70A%$`2?_&3(DU97%!`$&_!````.F" -XM`@``3(GWOOF&40"Z!0```.A0U___A<`/A/D```!!O;"%40!FD$V%[0^$N`$` -XM`$F+=0!-BV4(3(GW3(GBZ"37__])@\48A9,B35, -XM<$$`Z=````!)C48%2(D%/'!!`$&\!````.L?3(DU+7!!`$V+9?A%,?]-A>0/ -XMA1L!``#IH0```$G_Q$.*1"8!A,`/A(H````\*'7L30'F2(U-N$R-1;1,B?VU!`$PI]DR)_TR)\NBEZ___2(L%9FU!`(`X(G4*2/_`2(D%5VU!`$B+A7C_ -XM___&``!(B[UP____,?:)VNAU`0$`28G&2(N]=':^_*A1`(7`NMJ&40!(#T76N1X````IP8/Y`4&X"8]1`$P/ -XM1,:_`0```+["AE$`,,#HF2\``(,]^ETA`!U_.+MHOH$`0;X=````#Q]$``!( -XMBTOX2(L3OR"Z@0"^Y(91`##`Z&C1__](@\/H0?_.1#LUPETA`'W8QP6V72$` -XM'@```%M!7EW#9@\?A```````54B)Y5-02(G[2/_+#Q]```^^5(B?A(BSA(BW`(,=+H*\D``$B)P4B%R70+N`$```#V01@'=0(Q -XMP%W##Q]``%5(B>5!5T%6055!5%-(@^QH08G5B76,28G_2(L%AVI!`.L49F9F -XM9BX/'X0``````$B)!7%J00!(_\`/MDC_2('Y_P````^$@P```$B+%99F00#V -XM1!$!"'77#[[)NXZ-40!!O)R'40"#^3YW;4BZ``````(``'!(#Z/*:P`N@LS/__00^^!"1!O0D```"#^#M_'H/X(0^%UP(``$&`?"0!/75>\@\0 -XM1;#R#\)%J`3K0X/X/'4B\@\01:CR#Q!-L$&`?"0!/0^%;0(``&8/+L$/D\#I -XMEP(``(/X/0^%7@(``$&`?"0!/749\@\01;#R#\)%J`!F00]^Q4&#Y0'I<0(` -XM`+\"````ONB'40#K8(7)=`A,B??HM='__T&*!"0\(70$/#UU/D&`?"0!/74V -XM3(EE@$B-?<`Q]N@"Y___B@N(C7____^`^2(/E,!$#[;P20'>@/DB="E,B7V0 -XM3(U]P.F[````OP(```"^:H=1`##`Z%HK``!!O0D```#I\P$``$R)?9!,C7W` -XM3(UEN.L1D$&*#DB-4`%(B57(B`A)_\9!B@8\6W\QA,`/A.P````\(@^$Y``` -XM`#PD=2Y,B?],B?8QTD2)Z4V)X.A"]P``A3(G_3(GV,=)$B>E,C46X -XMZ*'V``"%P'0&3`-UN.NG2(M%R$B+3=!(*<%(@_D!?X9,B?_HKN3__TB+1=,B?[H(,[__T&)Q$R)_^CES___187D#Y7` -XM1##H1`^VZ$@['6EF00!T!DR+?9#K;8"]?____R(/E<%!B@8\*4R+?9!U#H#Y -XM`74)3(DU0&9!`.M*A,!T,DG_QDR)-3!F00#K.F8/+L'K+8/X/G4O\@\01:CR -XM#Q!-L$&`?"0!/7429@\NR`^3P.L03(DU`69!`.L+9@\NR`^7P$0/MNB#?8P` -XM=`A,B?_H3L___T2)Z$B#Q&A;05Q!74%>05]=PV9F9BX/'X0``````%5(B>5! -XM5E-(@^P028GV@#\P=1N`?P%X=15(@\<",B`.``/E,`/ML#K>@\?1```2,'A!$ACPT@!P4C_QP^V -XM-S'`2('^_P```'1:0(3V=$9`#[[>]D06`01U-C'`0(#^_W1"#[;S,<#V1!8! -XM1'0VN&$```"`^_]T$0^VP_9$$`$!N&$```!!#T7`@\,**5!5E.)^^AR\O__B<&X"0```(/Y!W10@_D%=2J) -XMW^@*\O__08G&N`D```!!@_X)=#:)W^A%\O__@_@&N`D```!!#T3&ZR&#^02) -XMR'4:B=_HJ?___XG!,<"#^0%T"H7)N`$````/1<%;05Y=PY!(C4=(PV9F+@\? -XMA```````54B)Y;^@OH$`O@0```"Z8+!A`.C(RO__O^"^@0"^!````+J(L&$` -XMZ+3*__^_0*E1`+Y!J5$`Z"4```!(B05N@D$`2(7`=`)=PS#`O_F'40!=Z3HE -XM``!F+@\?A```````54B)Y4%7059!54%44TB#["A)B?Y(B77(2(U5R+^@OH$` -XM3(GVZ/?*__^)1;R_H+Z!`(G&Z$C(__](B<-(A=L/A3`!``!(C57(OV"P80!, -XMB?;HZ\;__TF)QD''!@````!)C5Y(]@4B@D$`!'09O^>(40!(B=XPP.B5QO__ -XMOXBY@0#HR\?__TB)W^B#RO__28G$387D#X3Y````28U>"$R)=?HAO[BP80!,B?9,B>KH&<;__TB)WT2)_DB) -XMPNB[Q___3(GGZ`/'__])B<9-A?9UBTR)Y^B#R___]@4X@4$`!'0*O_6(40#H -XMD,;__[^@OH$`BW6\2(M=P$B)VNA\Q____P-F+@\?A```````2(G82(/$*%M! -XM7$%=05Y!7UW#3(GWZ);+__\QV^OB9I!52(GE05=!5D%505132(/L*$B)3Y,B?I(B<%!N"\```#H])(``$B+?`%(A,,#H%<3__TB)G2#___]%A>0/A(@```!(@[WP_O__`'0@2(N%&/___TB+ -XMC2#___](*T$`!'0*OPF)40#H^<#__TR)][XO -XM````Z-S!__],B?=(B<;H\?C__TB)QDB%]@^$$`(``(,^`0^%^P$``$B+O?C^ -XM___H\!D!`.GV`0``28/$2$R)YS'VZ%W%__](BTVX3(GG2(G&2(N5&/___T&X -XM+P```.CQC0``28G&]@4C>T$`!`^$$0$``+]8B%$`3(GV,,#HDK___^G]```` -XM13'V]@7_>D$`!`^$[0```+\!B5$`Z%/`___ITP```/8%XWI!``1T#+^IB%$` -XM,,#H6;___T6%_W0?13'V]@7&>D$`!`^$M````+]0B5$`Z!K`___IF@```$B+ -XM=;A,B>!(B<=(BZ/_"__^_X+Z!`(G&Z%/`__](A -XM05]=PTB+A6#___](A<`/E,%$B[U8____08'_````@`^4PB#*#[;:2`'#]@7* -XM>4$`!'0=1(G_2(G>Z&'@``"_EHA1`$B)QDR)\C#`Z"^^__](QT70`````$B- -XM5="_X+Z!`$R)]N@FPO__08G$O^"^@0!$B>;H=K___TB%P`^$HP```$2).$B) -XM6`CI8?___TB+O?C^___H-1;W__T2).$B) -XM6`B_X+Z!`$2)YDB)PN@2O___Z9W^__]F9F9F+@\?A```````54B)Y5-02(G[ -XM2(GW2(G6Z/SU__](B<9(A?9T$X,^`7452(G?2(/$"%M=Z0$7`0!(@\0(6UW# -XM2(G?2(/$"%M=Z2P6`0!F9F8N#Q^$``````#_!TB)^,-F+@\?A```````54B) -XMY4%7059!5%-(@^P@2(GS28G_2(U]R#'VZ##8__],BR--A>1T;TR-=<@/'T`` -XM3(G_Z-C!__],B?=(B<9,B?KH:M?__TF+7"002(/#2$B)W^BYP?__3(GW2(G& -XM2(G:Z$O7__](BT702(M-V$@IP4B#^0%_#$R)]^C2UO__2(M%T$B-2`%(B4W0 -XMQ@`@38MD)`A-A>1UF4B+1=#&``!(BT7(2(/$(%M!7$%>05]=PY!52(GE4U!( -XMB?O_"W0'2(/$"%M=PTB-O!__]F9BX/'X0``````%5(B>5!5T%64U!)B?Y(BQ[K -XM$F9F9F9F+@\?A```````2(M;"$B%VW083(M[$$R)]TR)_NC8%`$`AL```"I```@`'073(GWZ$3,__\/'T``08G$2(G3Z\#__TB+%<1)(0!(B=](B<:Y`0```.A4]O__28G'387_ -XM=0M(B=_H]&8``$F)Q[_@OH$`3(G^Z$2\__^)A43___^_X+Z!`(G&Z!*\__]) -XMB<5-A>UT>O8%#W9!``1T'TF+=0A!BWT`Z*3<``"_QHA1`$B)QDR)^C#`Z'*Z -XM__]-BV4`28M="$R)[^B"P/__O^"^@0"+M43____H/___[@```"`3#'@=89(A=MU@3';2(/+`>EV____0;P```"` -XM,=OI:?___Y"0D)"0D)"0D%5(B>5!5T%6055!5%-(@^Q82(E-F$B)59!(B?-) -XMB?[V!09U00`$="5,B?=(B=[H'8\``$F)Q[]UH%$`3(G^,,#H:[G__TR)_^B# -XMO___2(G:3"GR3(GWOGL```#HH+O__TB%P'1;2+@!`"`````"`$R)\>L/9F9F -XM+@\?A```````2/_!0;1U!T6$_W61ZY](B=I)C70D -XM`DV-?"0!,<#K'F9F9F9F+@\?A```````2/_&9F9F9BX/'X0``````(I._X3) -XM#X3,`0``@/E]=0B%P'00_\CKV(#Y>W73_\!(_\;KW$V)YDB)TTB)7:!)*=Y( -XMB?=(B76XZ$.]__])C4P&`4B)3:A(_\!(B46P23G<#X6Z````9BX/'X0````` -XM`$V)_#'`,=OK%P\?@`````#_R$C_PV9F+@\?A```````08H,'(7`=1.`^2QT -XM)(#Y>W03,<"`^7UT&.L1@/E]=-"`^7MU!__`2/_#Z]1(_\/KSTB+1:A(C3P# -XMZ#)C``!)B<=(A=MT#TN-/#=,B>9(B=KH&[C__TJ-/#-,`?](BW6X2(M5L.@' -XMN/__2(U]P$R)_NA+$0$`38U\'`%!@#PWK%F8/'T0``$G_Q69F9F8N#Q^$``````!#B@PLA],B?Y,B?'HKN___TB+6PA(A=MUY4B-?<`Q]NA:$`$`Z9````!(BQOK -XM%DB+4Q!,B>=,B?Y,B?'H?N___TB+6PA(A=MUY>MN2(L5''!!`$R)YTR)_DR) -XM\>A>[___2(L;ZQ]F#Q^$``````!(BU,03(GG3(G^3(GQZ#[O__](BUL(2(7; -XM=##KXTB+&^LD9F9F9F8N#Q^$``````!(BU,03(GG3(G^3(GQZ`[O__](BUL( -XM2(7;=>5(@\086T%<05U!7D%?7<-F#Q]$``!(B?DPP+_CB%$`2(G.Z4ZT__]F -XM9F9F9BX/'X0``````#')13'`,=+K%P\?@`````!(_\=F9F9F+@\?A``````` -XM2#G^=&(/O@>#^#Y_!X/X*G1-Z]R#^%I_!X/X/W1!Z]"#^'I_"H/X6W492/_" -XMZS"#^'UU(S'`2(7)=$5(_\E(_\?KO8/X776H,<$B%VW1!38U\)'!F -XM9F8N#Q^$``````!,BVL03(G_3(GNZ,$+`0"%P'0428/%8$R)[TR)YNAN#`$` -XM0?]$)"!(BUL(2(7;=="XZ/_[_T$C1AA!"40D&$'V1A@0=`5!_TPD($F#O"3@ -XM`````'4>28N&V````$F+CN````!)B8PDX````$F)A"38````2(/$"%M!7$%= -XM05Y!7UW#O[J*40"^WP```+K9BE$`N>B*40#HU;3__P\?1```54B)Y4%64TF) -XM]DB)^_9#&`AT$TB!PR@!``"_B+F!`+Y@BE$`ZQI(@<,H`0``@ST@;4$``'0G -XMOXBY@0"^<(I1`+K@B5$`2(G9,,#HL;/__[^(N8$`6T%>7>G#LO__O^6#40`Q -XM]NAGVP``2(G!,,"_@XI1`+[@B5$`2(G:38GP6T%>74'_X&9F+@\?A``````` -XM54B)Y4%64TB#[!!(B?N+0QAFJ3A$#X4)`0``]L0!=2)(C9,H`0``OXBY@0"^ -XMEHI1`##`Z#BS__^_B+F!`.A.LO__@SV';$$```^%U0```(M#&*D``"``=`U( -XMB=_H?[[__^F^````J0``$`!T#4B)W^C[P?__Z:H```!(BT,02('#*`$``$B% -XMP$@/1=A(B=_HS-(``(/X_P^%AP```$B)W[X"`@``NK8!```PP.C_M?__08G& -XM187V>#Y(C77O1(GWN@$```#H)K/__TB#^`%U'42)]S'V,=+HQ+'__TB-=>]$ -XMB?>Z`0```.ASLO__1(GWZ$NV___K+>BTL/__BSCHC;#__[^(N8$`OJ"*40!( -XMB=I(B<$PP.A6LO__OXBY@0#H;+'__TB#Q!!;05Y=PP\?`$B-3BA,C45!5T%6 -XM055!5%-(@^Q(2(E]H$B+=W!(A?8/A!L"```Q_TR-=:B)^&8/'T0``$B+3A"+ -XM41AF]\(P$`^%N`$``/;"!W0,3(NIH````$V%[7423(VI*`$``$B+41!(A=), -XM#T7J2(EUF$B+5:#V0AD$=3N+42A(BW6@BW8H.=9U#$B+=:!(BW8P2#MQ,'P] -XMBS4;:T$`.?)U(TB+43!(.Q44:T$`?1Q!B`&%P'4-2(M%H$R)J,````#K?T&)_$&#_P)U -XM*TR)]S'VZ(S*__](BT6@2(N8P````$B)W^@YM/__3(GW2(G&2(G:Z,O)__]( -XMBT6P2(M-N$@IP4B#^0%_#$R)]^A2R?__2(M%L$B-2`%(B4VPQ@`@3(GOZ/NS -XM__],B?=(B<9,B>KHCL___2(G?2(G&3(GJZ/#(__]$B?A$B>=( -XMBW682(MV"$B%]@^%*?[__X/_`GP62(M-R,8!`$B+3]@5O:$$`0`^$"0$``+\I -XMBU$`,,#HX:S__^GX````]\$``!``=%1(B=_H[,3__X7`=$7V!3UH00!`=`R_ -XM-HM1`##`Z+.L__](B=_H.\3__[$!A?%J!^@```(!U*TB#>T`` -XM=20]````@'41N@```(!(@WLP`+X```"`=#6Z````@/;!!(G&=2E(BWM@OG!V -XM0`!(B=KH8P@!`#'`D$B#Q`A;7)QK@!````]@4K9T$` -XM0'3=.=9U"$B+0S!(.T-`?0>_>HM1`.LB@?X```"`=0=(@WLP`'0.O[.+40#K -XM#+]LBU$`ZP6_E(M1`##`Z&^K__^X`0```.N8#Q^$``````!(C4XH3(U'.(M6 -XM*(M'.#G0=0A(BT=`2#M&,'T.2(L12(M!"$F)0`A)B1###Q]$``!52(GE0593 -XM28GV2(G[OP(```"^`0```.BDK?__2(/X`70-OP(```!(B=[HD:W__[\!```` -XMO@$```#H@JW__TB#^`%T#;\!````2(G>Z&^M__^_`P```+X!````Z&"M__]( -XM@_@!=`V_`P```$B)WNA-K?__OP\```"^`0```.@^K?__2(/X`70-OP\```!( -XMB=[H*ZW__[\2````O@$```#H'*W__TB#^`%T#;\2````3(GVZ`FM__^_%@`` -XM`+X!````Z/JL__](@_@!=`V_%@```$R)]NCGK/__OQ4```"^`0```.C8K/__ -XM2(/X`70-OQ4```!,B?;HQ:S__[\<````O@$```#HMJS__TB#^`%T#;\<```` -XM3(GVZ*.L__^_$P```+X!````Z)2L__](@_@!=`V_$P```$R)]NB!K/__QP4_ -XM94$``````%M!7EW#9I"#_PY_#8/_`745_P4<94$`ZR6#_P]U*O\%%V5!`.L8 -XM@_\"=0C_!09E00#K"X/_`W40_P7Q9$$`QP7W9$$``0```,-F9F9F9BX/'X0` -XM`````%5(B>5!5T%64U!)B?])BY_H````2(7;=#E-C;?X````28''H````&8/ -XM'X0``````$B+>Q!,B?XQTNA"V@``3(GW2(G&Z%<#`0!(BUL(2(7;==Y(@\0( -XM6T%>05]=PP\?`%5(B>5!5T%6051328G^N`@```!-A?8/A*,```"X"````$'V -XM1AH"#X63````28N>Z````$V-IO@```!(A=MT,TV-OJ````!F+@\?A``````` -XM2(M[$$R)_C'2Z,+9``!,B>=(B<;HUP(!`$B+6PA(A=MUWD'&1@<"ZP\/'X`` -XM````2(G?Z,BN__],B>?HH`,!`$B)PTB%VW012(G?3(GV,=+H6P$``(7`===( -XMB=_HGZ[__X,]T&-!``!U#D$/OD8'6T%<05Y!7UW#3(GWZ&"F``"%P'4L@SW5 -XM8T$``'4C28N>H````$B)W^AD5@``@_C_=`^_F8Q1`$B)WC#`Z(`%``"#/7EC -XM00``=%R_`@```+X!````Z*BJ__^_#P```+X!````Z)FJ__^_`0```+X!```` -XMZ(JJ__^_`P```+X!````Z'NJ___'!3EC00``````QP4G8T$``````$B+/7!C -XM00#HF_[__[__````Z,&L__^054B)Y4%64TF)_D'&1@<"28V>^````&8N#Q^$ -XM``````!(B=_HF`(!`$B%P'092(,[``^4P0^VT4B)QTR)]NA.````A0BE,!2/_#@/K_ -XM=`H/MLKV1#$!"'7KAZ;__XLXZ%2F__^_/8Q1 -XM`$B)QC#`Z"4$```/'T0``$2)YTR)[C'2Z..E__^)PT0YXW0/@_O_=>?H0J;_ -XM_X,X!'3=,<"#/2QA00``#X6/````@_O_=*F+7=1!B=Q!@^1_="J_+XQ1`$2) -XMYC#`Z*ZE__]$B>/K,;_SBU$`2(G>,,#HZ@(``+@!````ZU3!ZP@QP('C_P`` -XM`'0_OQV,40")WC#`Z'BE__]%A?]T'$'&1@<$@SW;8$$``'0G6_O__OPZ,40`PP.@Z`P``2(G?1(G^Z.\```!F9F9F9F8N#Q^$```` -XM``!52(GEB@5&0D$`A,`/A;T```#&!6I"00`!Q@5]0D$``<8%M4)!``'&!9!" -XM00`!Q@530D$``<8%34)!``'&!9A"00`!Q@630D$``87_Q@5(0D$``<8%+$)! -XM``'&!3M"00`!Q@4V0D$``<8%&T)!``'&!2E"00`!Q@4^0D$``<8%.4)!``'& -XM!0]"00`!Q@7R04$``<8%)T)!``'&!1Q"00`!Q@7#04$``<8%LD%!``%T#+\P -XMB4``OC")0`#K![_P=T``,?;H"/G__\8%@4%!``%=PV9F9F9F9BX/'X0````` -XM`%5(B>5!5T%64TB![)@```"X3XQ1`(7VN<*"40!(#T7(2,>%8/___^."40!( -XMB8UH____2(F]Z)JH___H1:/_ -XM_TB+$X,X`G4;OR"Z@0"^4XQ1`##`Z.RD__^_`0```.CRI___2(G7Z(JC__^_ -XM`0```.C@I___54B)Y4B![-````!)B?J$P'0F#RF%8/___P\IC7#___\/*56` -XM#RE=D`\I9:`/*6VP#REUP`\I?=!,B8U8____3(F%4/___TB)C4C___](B95` -XM____2(FU./___TB+!0XY00!(B47X2(V%,/___TB)1?!(C4402(E%Z,=%Y#`` -XM``#'1>`(````2(U5X+\@NH$`3(G6Z!BH__^_"@```+X@NH$`Z+FF__](BP7" -XM.$$`2#M%^'4)2('$T````%W#Z&ZC__]F9F9F9BX/'X0``````%5(B>532('L -XMR````$B)^X3`="8/*85@____#RF-C'1>0P -XM````QT7@"````+_"C%$`O@8```"Z`0```+D@NH$`Z&JE__](C57@OR"Z@0!( -XMB=[H::;__[\*````OB"Z@0#H"J7__^BU$@``]@7*6T$`$'0*OP(```#H8J`` -XM`+\"````Z#BE__\/'X0``````%5(B>534(G[Z%,2``"%VW0;O^6#40`Q]N@# -XMR@``O\F,40!(B<8PP.A4_?__Z,\&``#V!71;00`0=`J_`@```.@,H```OP(` -XM``#HXJ3__V:054B)Y4%64TB![.````!)B?:)^X3`="P/*85`____#RF-4/__ -XM_P\IE6#___\/*9UP____#REE@`\I;9`/*76@#RE]L$R)C3C___],B84P____ -XM2(F-*/___TB)E2#___](BP4Z-D$`2(E%Z$B-A1#___](B47@2(U%$$B)1=C' -XM1=0P````QT70$````$B-?<#H7"\``$B+5-4$`2#M% -XMZ'4,2('$X````%M!7EW#Z$>@__^0D)"0D)"054B)Y4%7059!54%44U!(BP6C -XM-T$`9F8N#Q^$``````!)B?Q!#[8,)$B!^?\```!T#$F-?"0!]D0!`0AUX[]P -XM````Z#E*``!)B<9!QT8@`````$G'1A``````2<=&"`````!%,1(@_D"#X5Z -XM____@#]I#X5Q____@'\!;@^%9____T6%P`^$7@$``$4Q[4R)YS'V,=+HC\X` -XM`$F)Q/8%$EE!``1T7;\ZR8U1`.C/<@``2(G? -XM2(G&Z+3Z``!)_\5,B?_H"6X``$B%P'743(GGZ.RB__])8TX@2(/Y`7143(GH -XM,=)(]_%(A=)T1[\!````OC2-40#K&;\!````OO",40!F9F9F9F8N#Q^$```` -XM```PP.BI_/__13'V9@\?1```3(GP2(/$"%M!7$%=05Y!7UW#Z#DL``!)B498 -XM2<=&8`$```!)C7Y`,?;HXK?__^O0OP$```"^!(U1`.NT#Q]``%5(B>5!5T%6 -XM055!5%-028GV28G_38MG8$V%Y`^$/0$``$&`/BX/A=T```!)C48!3(LM`C5! -XM`&8N#Q^$``````!(B<,/M@M(@?G_````=`Q(C4,!0O9$*0$(=>5(B=^^D(U1 -XM`+H&````Z).>__^%P'5)#[9#!D@]_P```'0]0O9$*`$(=02$P'4Q]@4M5T$` -XM!'08OR"Z@0"^EXU1`$R)XC#`Z+J=__]-BV=@,534$B)^TB+0TC&``!(BT-`2(D#2(M+2$B# -XMP2!(*<%(B4LX2,=#&`````!(BWLHOI"'0`!(B=KH$?<``$B+>T#HF*#__TB- -XM>PB^X%9!`.BZ]0``2(U[*+[P)T``Z*SU``!(B=](@\0(6UWI;J#__V9F9F9F -XM+@\?A```````54B)Y4%705932(/L&$B)\TF)_DB#>Q@`=1U(BT,02(E#&$B+ -XM0TC&``!(BT-`2(D#QT-H`````/8%?U5!``1T)$B+0QA(BW@0Z//.``"_(+J! -XM`+Z\C5$`2(G"3(GQ,,#H_)O__TB+@6SP``@WMH`'0(2(L[Z,B?__](BT78Q@``2(M]T$B).\=#:`$` -XM``!(BT,82(L`2(E#&$B%P'4)2(MS6.B*&```2(/$&%M!7D%?7<.0D)"0D)"0 -XMD)"0D)"0D)!52(GE,?^^D-V!`.@@F?__Z#N2``#HUM'__^@17```Z'S1``#H -XM-['__UWI\8D``)!52(GE4U!(BQV+-T$`ZR&03(N(V````+]NCE$`,,#H7?;_ -XM_TB+6PAF#Q^$``````!(A=MT3$B+0Q"+"+Y`CE$`AZ+.;__]-BW\(387_=>KHQ9C__T2),(/[#G\:@_L! -XM=3;_!9Y300#'!:!300`!````Z9X```"-0_&#^`UW=_\DQ="-40#_!8)300#' -XM!7Q300`!````ZWV#^P)U$O\%9U-!`,<%95-!``$```#K9H/[`W5"_P5(4T$` -XMQP5.4T$``0```.M/_P5.4T$`ZQ[_!5)300#K%O\%.E-!`.L._P4^4T$`ZP;_ -XM!3)300#'!1Q300`!````Z$^8__^)QXG>Z/::__^)WS'VZ#V:___H")C__T2) -XM,$B#Q`A;05Y!7UW#9BX/'X0``````%5(B>7H!P```%WI80$``)!52(GE05=! -XM5D%505132(/L&$B#/105]=PP\?1```54B)Y4%64TB#[!"#/9HT -XM00``#X1\````2(UUZ+______N@$```#HY97__XE%[(7`?F),C77L2(U=Z&8/ -XM'T0``.B["```2(L]A#1!`+[`ED``3(GRZ`?R``!(AR_18]1`##` -XMZ`+S___K"XMUZ$B)Q^BE"@``O_____](B=ZZ`0```.B#E?__B47LA0BEH!2/_"A-MTUH#["70%@/L@=1"`>@$M=0Z`>@))#Y3` -XM#[;PA?9UV#'V@/MM==$Q]H!Z`6%UR8!Z`FMU-X!Z`V5U.$B#P@)F#Q^$```` -XM``"*6@)(_\*`^RU_$`^V\X#[('?M2`^C\7/GZQLQ]H#[+G7>ZXPQ]DC_PNN% -XM,?9(@\("Z7K___]!@\X"9D6)=Q!-A?\/A,`$``!,.25Q,D$`="_V!45/00`0 -XM=!])@<0H`0``OXBY@0"^(H]1`$R)XC#`Z,N5__]-BV<(3(DE0#)!`$B-73__^+..B0D___O[:.40!(B<8PP.@Q\O__ -XMOP$```"^9,"!`+JHP($`Z%V9___H2);__T&)QD6%]@^%^````,<%=C%!```` -XM``"+?<#H^IC__XM]Q+X!````Z.V3__^#^/]U&^A3D___BSCH+)/__[_9CE$` -XM2(G&,,#HS?'__XM]Q(/_`70%Z,"8__^+??HGS,``.FR`@``QP4D,$$``0```$6)-TG'AR@$````````BWW`O@(` -XM``"Z`0```##`Z'Z7__](BWW`08E_($C![R#H?9?__T&+?R"+'9,@(0!(BP4\ -XM,$$`2(7`=`0YWWYW@\,@P>L%C4\@P>D%.=ET74&)S$B)QTR)YKH$````Z'`^ -XM``!(B04),$$`B=E(C3R(1(G@*(",?;HX)3__TB+/?$O00!,B>:Z -XM!````.@\/@``2<'D`DB)!=DO00!,B27:+T$`08M_((D]$"`A`$&+?R"^!``` -XM`+H$````,,#HRY;__T&+1R"Z`0```(C!T^+!Z`5(BPV4+T$`"12!2<>'.`@` -XM``````"+?`IR$ACT$C!X@(Q -XM]NCND___2(L]_RY!`$R)YKH$````Z$H]``!)P>0"2(D%YRY!`$R))>@N00!! -XMB[\P!```B3T;'R$`08N_,`0``+X$````N@0````PP.C3E?__08N',`0``(C! -XMN@$```#3XL'H!4B+#9DN00`)%('_!5PN00"_@,"!`$R)_NC3Z0``0?9'$`)T -XM!\8%72Y!``&_!````.AK.P``1(DPOTC`@0!(B<;HJ^D``$B+!10N00!)B4<8 -XMOP,```"^J,"!`#'2Z*^5___V!?1*00`@=%Y)BT\(26/62('!*`$``+^(N8$` -XMO@N/40`PP.AWD?__28M'"$B+F.@```#K(V8N#Q^$``````!(BU,0OXBY@0"^ -XM'8]1`##`Z$N1__](BUL(2(7;=>*_B+F!`.A8D/__2(L%T25!`$@[1=AU#4B# -XMQ"!;05Q!7D%?79#__V8/'X0``````%5(B>6)/6XM00#'!6@M00`````` -XMQP5B+4$``````,<%7"U!``=`,@#'!58M00``````2,<%4RU!``````!(BSUD -XM2D$`]D<:`G4IO@0```#H+/G__^L49BX/'X0``````.@+]___Z&;X__^#/0LM -XM00``=>U=PV9F+@\?A```````L`&#/?\L00``=0^+!>LL00`[!>$L00`/G<"* -XM#?@L00`(P0^VP8/@`8/P`<,/'T``@SW%+$$```^4P`^VP,-FD%5(B>5(BSW5 -XM24$`]D<:`G5"@SVH+$$``'0.OY:.40`PP.A:Z___ZRN^!````.B.^/__ZQ9F -XM9F8N#Q^$``````#H:_;__^C&]___@SUK+$$``'7MBP5G+$$`7<,/'T0``%5( -XMB>7'!5HL00`#````ZPKH._;__^B6]___@ST[+$$``'7MQP4[+$$``````%W# -XMD%5(B>5!5E-(@^P0QP4C+$$``0```(,]$"Q!``!T0DB+'2LL00#K*V8/'X0` -XM`````$R+R______[H!````Z!V-__^%P'_I2(/$$%M!7EW#54B)Y>LJ -XM9BX/'X0``````,<%/__\/'X``````@SU! -XM2$$```^$S@$``,<%,4A!``````"#/2)(00``=$+'!19(00``````]@4[2$$` -XM('0@OXBY@0"^`I!1`+H"````,,#HQX[__[^(N8$`Z-V-__^_`0```+X"```` -XMZ)X*``"#/=-'00``=#_'!<='00``````]@7P1T$`('0@OXBY@0"^`I!1`+H! -XM````,,#H?([__[^(N8$`Z)*-__\Q_[X!````Z%8*``"#/8='00``=$;'!7M' -XM00``````]@6H1T$`('0@OXBY@0"^`I!1`+H#````,,#H-([__[^(N8$`Z$J- -XM__\Q_[X#````Z`X*```Q_^C'Z___@SU$1T$``'0_QP4X1T$``````/8%64=! -XM`"!T(+^(N8$`O@*040"Z#P```##`Z.6-__^_B+F!`.C[C/__,?^^#P```.B_ -XM"0``@ST(1T$``'09QP7\1D$``````+\2````OC")0`#H'8[__X,][D9!``!T -XM&<<%XD9!``````"_%@```+XPB4``Z/N-__^#/5!5T%6055!5%-0B?-(B?A,BW@0OX#`@0!(B<;H'.D``,=%U`$```"_`0`` -XM`+YDP($`NJC`@0#H\9#__TF+1QA(BW@0Z-20__])BW<8OTC`@0#HYN@``+\# -XM````OJC`@0`QTNC%D/___PT;*4$`0?9'$`)T!\8%*2E!``"Z*`$``$D#5PA) -XM8S=%,.2_7X]1`(G9,,#H9`,``$&)WD&#YG]!@_Y_=`Q%A?8/ANP$```"(P;H!````T^+WTL'H -XM!4B+#=4H00`A%(%,B?^^`0```+H!````Z-`#``!!B[\P!```Z.2/___'1=0` -XM````08M'((C!T^/WT\'H!4B+#9DH00`A'(%,B?\Q]KH!````Z)<#``!!BW\@ -XMZ*Z/__]%,.U%A?8/A?P```!!M0$QV_8%(D5!`"!!O@````#'1=0`````#X2[ -XM`0``Z=@```!!M`''1=0`````08G>08N',`0``+L!````B,&Z`0```-/B]]+! -XMZ`5(BPT@*$$`(12!3(G_O@$```"Z`0```.@;`P``08N_,`0``.@OC___08M' -XM((C!T^/WT\'H!4B+#>LG00`A'(%,B?\Q]KH!````Z.D"``!!BW\@Z`"/__]% -XM,.U%A.1U4DF+5PA(.Q6=)T$`="SV!7%$00`0=!Q(@<(H`0``OXBY@0"^(H]1 -XM`##`Z/J*__])BU<(2(D5;R=!`+^(N8$`OMV/40!$B?(PP.C;BO__Z=$```"Z -XM*`$``$D#5PA)8S>_B(]1`##`Z)X!``!%A.UT+_8%#D1!`"`/A*<```"Y*`$` -XM`$D#3PA)8Q>_B+F!`+ZXCU$`,,#HCXK__^F%````28M7"$@[%?\F00!T,/8% -XMTT-!`!!T'$B!PB@!``"_B+F!`+XBCU$`,,#H7(K__TF+5PA(B171)D$`28M7 -XM"(M"&(/@0,'H!KJXC%$`A<"Y_*A1`$@/1$` -XM`$R)_^B1C?__BP4#)D$`BSWU)4$`@SW20D$``'4>A?]T&H/X`G05QP7A)4$` -XM`0```(,]SB5!``!U).L/@_@!=1V+!;\E00"%P'432(/$"%M!7$%=05Y!7UWI -XM[.;__TB#Q`A;05Q!74%>05]=PV9F9F8N#Q^$``````!52(GE2('LT````$F) -XM^H3`="8/*85@____#RF-(TB)19!(B5W`38UT'B1( -XMB#Y!`!!T'DB!PB@!``!,B>^^(H]1`##` -XMZ`.%__](BT7`2(M0"$B)%70A00!(BT7`@$@0`4B%VW19#Q^``````$&*!@^^ -XM^(,]FQM!``!U(T&+50R-2O]!B4T,A=)_'D$[32A\!#P*=11,B>[H4(;__^L8 -XM3(GNZ,:&___K#DF+30!(C5$!28E5`(@!2?_&2/_+=:Y)BP0D2(7`=%Y(BTVH -XM@'P((PIT4X,].QM!``!T$;\*````OHBY@0#H@H;__^LYBP7^&4$`C4C_B0WU -XM&4$`A__])8W4`2(7V=*"_+)!1`##`Z%3Z__]! -XMBWT`B=[HB83__^N'187V=$6+!<`\00"%P'4[2(L]T3Q!`/9'&@)U+L<%F3Q! -XM```````Q]NBJZ___ZQ(/'X0``````.B+Z?__Z.;J__^#/8L?00``=>V)W^CV -XMA?__D)"0D)"054B)Y4%7059!5%-)B?9)B?](BS6X'T$`3(LF]@5+/$$`!'0; -XMOR"Z@0"^5Y!1`$R)^C#`Z-B"__](BS61'T$`O[C`@0#H=]X``$B#/7\?00`` -XM=$._,````.A3+```2(G#3(DC3(ES"$C'0Q``````3(E[&$R)>R!,B?_HP87_ -XM_TP!^$B)0RA(B1U#'T$`6T%<05Y!7UW#OV"040"^K0```+J!D%$`N9*040#H -XM,8/__Y!52(GE059328GV2(G[2(LU#!]!`$B%]G0*O[C`@0#H[=T``+\P```` -XMZ-,K``!(B1A(QT`8`````$C'0`@`````3(EP$$C'0"@`````2,=`(`````!( -XMB07%'D$`6T%>7<-52(GE4U!(BQVS'D$`2(7;=#M(BWL02(7_="&#/:8800`` -XM=`?HUX3__^L$#[]'$H7`=`E(BWL0Z'2#__](BWL8Z+N%__](B=_HLX7__[^X -XMP($`Z(G:``!(B05B'D$`2(7`#Y7`#[;`2(/$"%M=PV:054B)Y4%7059!5%-( -XM@^P@28G^2(L%-QY!`$R-?=!(C5W83(UER.L49@\?A```````2(L%&1Y!`$C_ -XM0`A(BT@@2#M(*'),2(MX$+C_____2(7_#X09`0``3(GFZ-&#__](BPWJ'4$` -XM2(E!($B+!=\=00!(BT@@2(7)#X0[`0``2`--R$B)2"A(BP7#'4$`2(M(($B- -XM40%(B5`@#[X!@_@N#X7+````Z1X!``!F#Q]$``!(C5$!2(E0(`^^`>FP```` -XM@_A<=75(BPV$'4$`2(M!($@[02AR1TB+>1!(A?\/A/P```!,B?[H18/__TB+ -XM#5X=00!(B4$@2(L%4QU!`$B+2"!(A -XM05]=PY!52(GE05=!5D%44TB#["!)B?=)B?Y)BP9)B48(2(L-+1Q!`$B+02!( -XM.T$H&D$`2(E!($B+!=,:00!(BT@@2(7)#X06____2`--T$B) -XM2"A(BPVW&D$`2(M!($B-4`%(B5$@#[X8@_L)=).#^R`/A?K^___KB$C'0"@` -XM````OP$```"^MY!1`$R)^C#`Z+S;__\QP.GI````2,=`*`````"[_____TF+ -XM1@A)BTX02"G!2(/Y`7\,3(GWZ/^5__])BT8(2(U(`4F)3@C&`%R#^UP/A9<` -XM``!)BT8(28M.$$@IP4B#^0%_#$R)]^C.E?__28M&"$B-2`%)B4X(Q@!<2(L% -XM"!I!`$B+2"!(.T@H`900!( -XMB4$@2(L%U1E!`$B+2"!(AT800!(BT@@2#M(*'))2(MX$$&______TB%_P^$$@$` -XM`$R)[NBH?O__2(L-P1A!`$B)02!(BP6V&$$`2(M(($B%R70M2`--N$B)2"A( -XMBP6>&$$`2(M(($B-40%(B5`@1`^^.>G+````9@\?A```````2,=`*`````!! -XMO______IKP```&9F9F8N#Q^$``````!(@_D!?PQ(B=_H`I3__TB+0PA(C4@! -XM2(E+",8`($B+#3P800!(_T$(ZPUF#Q]$``!(BPTI&$$`2(M!($@[02AR24B+ -XM>1!!O_____](A?]T4DR)]NCH??__2(L-`1A!`$B)02!(BP7V%T$`2(M(($B% -XMR0^$:?___T@#3;H;'W__TB+#84700!(B4$@2(L%>A=!`$B+2"!(A!!!O_____](A?\/A(;]__]( -XMC770Z(U\__](BPVF%D$`2(E!($B+!9L600!(BT@@2(7)=1-(QT`H`````$&_ -XM_____^E/_?__2`--T$B)2"A(BP5P%D$`2(M((.DG_?__2(L%8!9!`$C_0`A( -XM@\0H6T%<05U!7D%?7<-F9F9F+@\?A```````54B)Y4%7059!54%44TB#[%A) -XMB?Y,C6V@3(U]R.L-9I!(BP49%D$`2/]`"$F+!DF)1@A(BPT'%D$`2(M!($@[ -XM02AR2DB+>1`QP$B%_P^$K@4``$B-=8CHQ7O__TB+#=X500!(B4$@2(L%TQ5! -XM`$B+2"!(A1"^ -XM_____TB%_P^$70$``$B-=9#H1'O__TB+#5T500!(B4$@2(L%4A5!`$B+2"!( -XMA[H.7K__TB+#5(400!(B4$@2(L%1Q1!`$B+2"!(A1"^____ -XM_TB%_P^$70$``$B-=;CHI'C__TB+#;T200!(B4$@2(L%LA)!`$B+2"!(A1"[_____TB%_P^$"P$``$B-=<#H%'C__TB+#2T200!(B4$@2(L%(A)! -XM`$B+2"!(A@PP.CO;O__2(UUT$B-5Z#D!``!(BWW(Z)!T__](B=_HB'3__P\?A```````2(/$&%M!7$%= -XM05Y!7UW#3(UUU>LK9F8N#Q^$``````#&1=4M1(A]UL9%UP"_,)-1`#'V3(GR -XM,#^$]_&(/X0@^%L@```,<%@"E! -XM``$```!(_\OKTX/X9'\:@_A0=*F#^%,/A9````#'!4HI00``````ZY2#P)N# -XM^`]W?/\DQ4"140"_`0```.@;D```Z7;____'!20I00`!````Z6?____'!1$I -XM00`!````Z5C____'!0XI00`!````Z4G____'!0\I00`!````Z3K____&!9L, -XM00`!Z2[____'!?@H00`!````Z1_____'!=DH00`!````Z1#____HVPX``&9F -XM+@\?A```````54B)Y4%7059!54%44TB#[!A)B?5!B?['!2\$00`!````QP4! -XM!D$``0```$4QY+@!````3(U]U>L7#Q^``````/\%"@1!`(L%!`1!``\?0`!$ -XM.?`/C5P$``!%A>1U8$ACR$F+3,T`@#DM=2J*40&`^BUU%H!Y`@!U'/_`B07/ -XM`T$`0;P!````ZS6$TG4(_\")!;L#00!$B?=,B>ZZ1911`.@K440`PP.@WR___2&,%4`-!`$F+?,4` -XM2(L=3/L@`.A?&```2(G?2(G&Z#3&``#I'____X/[8W\B@_M5?S^#^T]_:(/[ -XM0@^%@````,<%A2=!``$```#IR@```(U#G(/X$`^'7`,``/\DQ<"140!(BQW> -XM`D$`2(G8Z<8!``"#^U8/A3T#``!(BS7&`D$`OQ#!@0#HS,4``$B+';4"00#& -XM1=4MQD765NG1`@``@_M0#X0T`0``@_M3#X4&`P``QP4`)T$``````.D<`0`` -XM@_M$#X4P`0``2(L]=P)!`$4QY#'VNE^440`QR>BVDP``2(L=7P)!`,9%U2W& -XM1=9$QD77`.E^`@``OP$```#HI(T``.G4````2(LU.`)!`+\`P8$`Z#[%``!% -XM,>3I;`(``,<%E"9!``$```#IK````,8%.0I!``%(BST)`D$`2(UUR#'2Z)YL -XM__^)!80F00!(BQWQ`4$`2(M5R$@YV@^$?@(``,9%U2W&1=9JZ0`"``#'!4$F -XM00`!````ZV!(BS7$`4$`2(L]W?D@`#'2Z):M__](BQVO`4$`QD75+<9%UFWI -XMRP$``,<%&"9!``$```#K*\<%'"9!``$```#K'\8%JPE!``'K%L<%"R9!``$` -XM``#K"L<%[R5!``$```#&1=4MB%W6QD77`$4QY+\PDU$`,?9,B?KIK`$``(/[ -XM20^%M0$``$B+/3X!00#H"1D``$B+'3(!00#&1=4MQD762>E.`0``#Q]$``#' -XM!9(E00#_____2/_`#Q\`#[X0A=(/A"8!``"#^DE_"X/Z00^%>P$``.O5@_I@ -XM?Q6#^DH/A6L!``"`#5TE00`02/_`Z\N-2I^#^14/AU,!``#_),U(DE$`@`T] -XM)4$``>G5````@`TQ)4$``DC_P.N@@`TE)4$`!$C_P.N4@`T:)4$`!$C_P.N( -XM2(U(`8I0`8#Z,@^%B@```(`-_21!`!!(B2_,)-1`#'V3(GZ,2_,)-1`#'V2(G:,Y(``(L%I?]``.F@^___Z!L*``!( -XM@\086T%<05U!7D%?7<._(+J!`+YAE%$`,,#HBVK__^CV"0``OR"Z@0"^C)11 -XM`##`Z'5J___HX`D``%5(B>5!5T%6055!5%-(@>Q8`0``2(FUF/[__XF]E/[_ -XM_[\[DU$`Z)5H__])B<=-A?]U&;\@P8$`Z--I__]!OR#%@0"#^/\/A.@&``"_ -XM0Y-1`.AJ:/__NS.440!(AU, -XM#T3K,?\Q]N@J;/__28G&387V#X2V!@``2(VU,/___TR)]^B/;/__@_C_#X3( -XM!@``OQV340#H#&C__TB)PTB%VW1"2(VUH/[__TB)W^AE;/__A9,B?)F9F9F9BX/'X0``````$B)P44QP.@U-0`` -XM28G&3(GWZ*H'``!(B<-,B??H_VS__^L:O^Z340#H0V?__TB%P'0G2(G'Z(8' -XM``!(B<-(B1WZ!84``"_(9-1`.@,9O__QP6V(4$``````,<%D"%!``````#'!8XA -XM00``````QP5X(4$``````,<%:B%!``````#'!8`A00``````Q@41!4$``,<% -XM8R%!``````#'!5$A00``````QP57(4$`!````,<%22%!``````#H7,S__TB+ -XM!ZC__TB+!:P$00"_Y8-1`#'V -XM2(G",AI-1`.CTJ?__2(M]P$B% -XM_W45OWN340"^=)-1`##`Z*K!__](BWW`OB#!0`"ZZ,"!`.BWOP``2(7`=!!( -XMBW`0O\>340`PP.B"P?__2(L]BP)!`$B%_W0FOB#!0`"ZZ,"!`.B'OP``2(7` -XM=$=(BW`0O\>340`PP.A2P?__ZS6_EY-1`+[HP($`Z'$"``"%P'4BOYJ340"^ -XMZ,"!`.A>`@``A\2``3(GV9F8N#Q^$``````!(B?/K#F9F+@\?A``` -XM````2/_#B@.$P'0$/#IU\TR)_TB)VN@HI?__2(US`8`[`'7/3(GWZ%=H___H -XMHCX``/8%IQU!``AT"K\!````Z#]B``!(BQU8`4$`2(7;=#A!O_RH40!!O@$` -XM```/'X``````2(M[$#'VZ.6+``!(ASP(`!(@SX`=`R_V,"!`.CT7@``ZPJ_V,"!`.@X)0``@STY'4$``'02 -XMO]C`@0#HM7___T&^`0```.LA@STF'4$``'4+BST:'4$`Z)G2__^_V,"!`.B? -XM!0``08G&]@7Q'$$`$'0*OP(```#HB6$``(,]\AQ!```/E,!%A?8/E,$(P0^V -XMP8/P`4B!Q%@!``!;05Q!74%>05]=PTB+'5``00!(B=\Q]NB^9O__O_F340"^ -XM`911`$B)VND<^O__OSF440#HXF'__[\"````Z`AF___H8V'__XLXZ#QA__^_ -XM(+J!`+X9E%$`2(G",,#H"&/__[\"````Z-YE___H.6'__XLXZ!)A__^_(+J! -XM`+XDE%$`3(GR2(G!,,#HVV+__[\"````Z+%E__^054B)Y4%7059!5%-)B?=) -XMB?Z^M)-1`.CE9/__A0/A0H!``!)BQ]) -XM.U\(#X2*````08`^+P^$@````$B)WS'VZ.=E__])B<=,B?1)B=Y!OP````!T(K^VDU$`,?9, -XMB?(QR>BMAP``3(GW3(GFZ$(.``!!OP$```!$B?A;05Q!7D%?7<-52(GE05=! -XM5E-(@>R8````2(G[2(VU6/___^@!9/__B<$QP(7)#X6,````N0#P```CC6#_ -XM__\QP('Y`$```'5W2(G?Z"AA__^%P'0GZ$]?__^+..@H7___OR"Z@0"^`I11 -XM`$B)VDB)P3#`Z/%@__\QP.M$@#LO=0I(B=_H\`H``.LU3(LUS_U``$R)]S'V -XMZ#UD__])B<=(B=\Q]N@P9/__3(GW3(G^2(G:2(G!0;@O````Z,DL``!(@<28 -XM````6T%>05]=PV9F+@\?A```````54B)Y;_@E%$`OJ````"Z`0```+D@NH$` -XMZ$-C__^_`@```.A)8___D)"0D)"0D)"0@SV=`D$```^4P`^VP,-FD%5(B>5! -XM5T%6051328G_08!_!P-T58,]E!E!``!U'$R)_^BZHO__/0```(!U&$R)_^BK -XMHO__2(72=0M)C70/A/P```!-C;P4`#X3#````]@7^&$$`0'032(VS*`$``+^! -XME5$`,,#H;5W__T'V1Q@P=19!@'\'`G4$QD,&`4B)WTR)_N@PK?__BT,@A8#Z&()``!(B04S`4$`BPTY`4$`C5$!B14P`4$`B0/A1C____V!2T800!`=`J_"@```.AE7/__38NW@````.L09F9F+@\? -XMA```````38MV"$V%]@^$CP```$F+7A"`>P4`=.F#>R``=>.`>P<`==TQTDB+ -XM/;P`00"+!<(`00!F9F9F9BX/'X0``````$B)T3G!D@.?!R(0'VB36!`$$`2,'F`^B8"```2(G'2(D]9@!! -XM`(L-;`!!`(U!`8D%8P!!`(G(2(D`$$``````+^@#P`` -XMZ'`'``!(B04!`$$`QP4/`$$`E@```,<%"0!!``````"_L`0``.A+!P``2(D% -XM[/]``+](QH$`O@H```"Z*+%A`.C@7O__]@7F%D$`(`^$K@```+^5EE$`,?;H -XM)X8``(D%"0!!`+^BEE$`,?;H%88``(7`="V_HI91`#'VZ"6%``!(B<B-7?__2(G#ZPDQ_^C! -XM7O__B<._(+J!`+Z[EE$`B=HPP.C<7/__B=_H55___TR)]^CM````BQTW%D$` -XMZ"(#``"#^P!T%^F]````#Q^$``````#H^\+__^@&`P``Z$',__^%P'3MZ$C, -XM__]!B<3'1=@`````2(UUW+](QH$`Z!!;__](B<-(A=MT44R-?=P/'T``BD,' -XM!/X\`G(KQT78`0```$B)W^@86@``2('#*`$``+^_E5$`2(G>2(G",,#H'UK_ -XM_T'_Q+](QH$`3(G^Z']?__](B<-(A=MUMTF+/DB-5=B^@,Q``.B&M@``N`$` -XM``!%A>1T$;_FE5$`,,#H`+C__[@!````2(/$$%M!7$%>05]=PV9F9F9F+@\? -XMA```````54B)Y4%705934$B+'TB%VP^$B@```(L5&/Y```\?0`!(BPT)_D`` -XM._]0`!(BSW@_4``2,'F`^CO!0``2(D% -XMT/U``(L-UOU``$B+W#H`OW__TB+#1O[0``Y#1G[0`!S=DC!Z2!(BP4`^T``Z3/___](BX.0```` -XM2(7`#X2!````ZP602(M`"$B%P'1U2(MP$(!^!0!T[8!^!P!UYXL%[1%!`*A` -XM=!E(@<8H`0``OT2640`PP.A:5O__BP70$4$`J$`/A.S^__^_\)91`.@B5___ -XMZ=W^__^--`F)-93Z0`!(BSV%^D``2,'F`^BD`@``2(D%=?I``(L->_I``.FB -XM_O__2(G?Z/HX``"+640`PP.BL5?__2(/#<$B)W^C@^___Z3O^__^%R70*O]F640#H;5;_ -XM_[@!````@ST1$4$``'492(G?Z(>E___&0P@!2(G?Z.N____I!O[__TB#Q`A; -XM7<-F9F9F9F8N#Q^$``````!52(GE4U!(B?N*0P<\`W4.2('#*`$``+]"@U$` -XMZU:#>R``=%R+#H7)=#['1?0!````/`=T2SP&=4Y(C;,H`0``O_R540`PP.A4 -XMLO__QD,'!TB+>W!(C57TOH#,0`#H?K$``,9#!P#K&$B!PR@!``"_5X-1`$B) -XMWC#`Z-)4__]FD$B#Q`A;75!5E-(B?-)B?Y!@'X%`'4Y0?9&&!!U,HMS"(M+ -XM##GQ7<.0D)"0D)"0D)"0D)"0D%5(B>534$B)^^A"5?__2(7`=`=(@\0(6UW# -XM2(G?Z`X```!F9F9F9BX/'X0``````%5(B>534$B)^^AB5/__BSCH.U3__[\@ -XMNH$`OC*740!(B<)(B=DPP.@$5O__OP(```#HVEC__V8N#Q^$``````!52(GE -XM05=!5E-028G^Z`Y9__](B<-(_\-(B=_HP%3__TF)QTV%_W0<3(G_3(GV2(G: -XMZ%I4__],B?A(@\0(6T%>05]=PTB)W^AT____#Q]``%5(B>534$B)\^AR5O__ -XM2(7`=`=(@\0(6UW#2(G?Z$[___]F9F9F9BX/'X0``````%5(B>5!5E-)B?9( -XMB?OH+E7__TB%P'0%6T%>7<-(B=],B?;H"0```&8/'X0``````%5(B>5!5E-) -XMB?9(B?OH;E/__XLXZ$=3__^_(+J!`+X7534$B)^[X!````Z&U4__](A_O__9F9F9F8N#Q^$``````!52(GEN@$```#H\E3__X7`=0)=P^AG -XM4O__BSCH0%+__[\@NH$`O@*740!(B<(PP.@,5/__OP(```#HXE;__V:054B) -XMY5-(@>R8````2(G[2(VU:/___^@U5/__B<&X_____X/Y_W0LN`#P```CA7#_ -XM__\]`$```'42Z`)2___'`!4```"X_____^L(2(G?Z%U4__](@<28````6UW# -XM#Q\`54B)Y4%64TB#[!!(B?M(C77LZ!E2__](AQ(B%?__TB) -XMWTR)]NB]5O__2(7`=>A(B=_H4%?__TB#Q!!;05Y=PY"0D)"0D)!(B?A(BSU. -XMX"``2(G&,=+I_)/__V9F9BX/'X0``````%5(B>5!5T%6055!5%-(@>SX```` -XM28GV2(G[2(V]2/___[X``0``Z'5L__](C;TP____O@`!``#H9&S__TB)WTR) -XM]NB)T/__ZQL/'X``````OP$```"^8)M1`$B)PC#`Z,RP__]%,>WK%P\?@``` -XM``"Z`0```.A6&0``9@\?1```2(V]2/___^@DV?__2(7`=0[HFM#__X7`=>;I -XMNQ$``(`X"75Z187M=*=(_\!(B1)C7[YZ)MR__^#^`8/AY<# -XM``")P/\DQ5"740!F#Q^$``````!(C;U(____Z`30__](A<`/A-O^__](BPU< -XMZ$``#Q]``$B)PP^V$TB!^O\```!T"TB-0P'V1`H!"'7F2(V],/___TB)WN@' -XM$0``2(7;#X2>_O__2(G'Z"9R__^%P`^$CO[__^N<28/&_$R)]^A0L/__2(G# -XM2(7;#X0)`P``#Q]``$B-O4C___^^38U1`.A_T?__2(7`#X2E`@``2(G?2(G& -XMZ)NR__^%P'772(G?Z`^T___I.O[__TF#QOY(BP6WYT``9F9F9F9F+@\?A``` -XM````3(GW#[87L?](@?K_````2(G^="),C75(B=^^*X=1`+H'````Z&-0 -XM__^%P'4+2(/#![H!````ZS1(B=^^^891`+H%````Z$)0__](C4L%A8\*$`/E,;K`T`P]D"$]D@/19`A/9(B?YU,^L29F9F+@\?A```````BD8!2/_&A,!T0#S_=/(/ -XMML!"]D0X`0ATY^LO#Q]$``"*`4B)SH3`="$\_W4(2/_&2(GQZ^L/MLA"]D0Y -XM`0AU"DB-3@$\*70+Z]9(B?'K!)!(_\$/M@%(/?\```!T"$+V1#@!"'7J@_H! -XM=0P/MI4H____P>((ZQR#^D!T"('Z@````'4/@+TH____`+D`````#T71A,!T -XM!#PC=02%TG46OP(```"^4)Y1`$R)\C#`Z&VL___K4.CV;@``Z;'[__^_`0`` -XM`+[+GE$`,,#H4*S__^LSN@$```"X/@```$R)]I`/O@XYP0^$2`@``$C_QH3) -XM=>Z_`@```+ZAGE$`B<(PP.@;K/__3(GGOG2&40"Z!P```.BI3O__AUT1HL%DO!``(7`=#(QR4B+%7GP0`!F#Q^$``````")SDB+-/)( -XM@[[H`````'0*@$X:0(L%8O!``/_!.<%RX,<%4O!```````!,B>?H'A8``$4Q -XM[87`#X7#^O__QP4U\$```````$R)Y[YWG%$`Z+Q/__\QR4&`/`0`=$%*C7P@ -XM`;X[````Z+10__](B<,QR4B%VW0H2(N](/___TPYYTB)V7062(G83"G@2`'' -XMOCL```#HB%#__TB)P<8#`$B)C2C___],B>$V-;@%! -XM@/\Z3(GK=0U)C5X"08!^`3I)#T7=#[8#2#W_````=!%"]D0@`0AU5H3`=%(/ -XM'T0``$B)W[X1GE$`Z&-.__^`/`,`=#I(C4P8`0^V1!@!2#W_````2(G+=-A" -XM]D0@`0A(BD3____183_#X2Q`P`` -XM08#_*`^%H@````]7P`\I19!(C7VH2(UUD#'2Z,I1__^%P`^$L@4``$B+79!( -XMA=MT8XL53^Y```\?`$B+#4'N0``YRG,-2,'I($B+!2KN0`#K)HTT"8DU)^Y` -XM`$B+/1CN0`!(P>8#Z*_U__](B04([D``BPT.[D``2(MS$(U1`8D5`>Y``(G) -XM2(DTR$B+6PA(A=MUIDB-?9`Q]NA+I```3(MUJ$R)=:#ITP$``$B+7:B`.P!, -XMC7VP#X2(`0``2(G?3(GVZ)*4__^%P'582(G?3(GVZ,,?``!)B<1-A>1U(DB) -XMWTR)]KH!````Z,M#``!)B<1!@&0D&OU-A>0/A$0!``!(BPUZ[4``.0UX[4`` -XM#X/\````2,'I($B+!5OM0`#I$@$```]7P`\I1<`/*46P2(G?3(GV2(U=P$B) -XMVDR)^>BFCO__2(G?OL!E0`#HF:,``.L7#Q^``````(U1`8D5(^U``(G)3(DD -XMR)!,B?_H**,``$B)PTB%VP^$A@```$B)W^AD3?__28G%20'=2(G?3(GNZ`,? -XM``!)B<1-A>1U'DB)WTR)[KH!````Z`M#``!)B<1!@&0D&OU-A>1TK4B+#;[L -XM0``Y#;SL0`!S#4C!Z2!(BP6C[$``ZX&--`F)-:#L0`!(BSV1[$``2,'F`^@H -XM]/__2(D%@>Q``(L-A^Q``.E6____3(G_,?;HW*(``.LUC30)B35I[$``2(L] -XM6NQ``$C!Y@/H\?/__TB)!4KL0`"+#5#L0`"-40&)%4?L0`")R4R)),A,BW6@ -XMZQ9F9F9F9F8N#Q^$``````!)_\9,B76@00^V!D@]_P```'0.2(L-'N!``/9$ -XM"`$(==],B76H00^V!DB#^#H/AVW\__](N0$````"```$2`^CP0^#6?S__S'; -XM13'_BP7:ZT``AM` -XM`$B+/-D/MD\$B0/E<$/MLD!P8/Y`@^,808``+\!````OLZ=40`PP.ALIO__,=N#/2_K0``` -XM0;XH`0``=#%F9BX/'X0``````$B+!0GK0`!(BSS83`'WOB"Z@0#HN$O__TC_ -XMPXL%^^I``$@YPW+:OPH```"^(+J!`.BK2O__QP7]ZD``'P```$4QY.DJ!P`` -XM@SW.ZD```'1`2(L%N>I``$B+&+@H`0``2`'#2(G?OGB=40#H$4K__X7`=!%( -XMB=^^@)U1`.@`2O__AM[ -XM28U\)`?K%&9F9F9F+@\?A```````BE\!2/_'L/^`^_](B?YT-@^VPT+V1#`! -XM"'7EA-N(V$B)_G4BOP$```"^%)Y1`+ITAE$`,,#H!J7__^E1]/__D(I&`4C_ -XMQCS_=/:$P`^$+O3__P^VP$+V1#`!"`^%'_3__^O=2(G!2/_!2(L%J-U``$F) -XMST$/MA=%,?9(@?K_````="!)C4\!13'V]D0"`0AUW^L09F9F9BX/'X0````` -XM`$'_QD0[-6+I0`!S&D2)\$B+#4KI0`!(C3S!1(GNZ#X(``"%P'7:3(E]B(L% -XM7.E``$&`/P!U'8/X%']6@_@%#X6U````QP6J_T```0```.FF````@_@:#X14 -XM`P``@_@0#X1+`P``@_@.#X6+````3(G_Z*K4___I-0,``+\!````OC>=40`P -XMP.@4I/__Z1\#``"#P.N#^`9W8/\DQ8B740!(C;UP____OE#G0`#HGZ```.M& -XM3(GWZ(4,``#I,//__TB+5:B_`0```+Y3G5$`,,#HRZ/__S'`Z23^___'!0K_ -XM0``!````ZQ''!2+_0``!````ZP7H)QH``(L%C>A``(/X&P^'-0$``+E`!"(( -XM#Z/!#X,G`0``2(M%B(`X``^$!P$``$B+#4[<0`#K%`\?0`!)_\=F9F9F+@\? -XMA```````00^V%TB!^O\```!TXX32=`?V1`H!"'38BPTNZ$``@_D:?Q>#^0E_ -XM)(/Y!G5\2(G'3(G^Z'@>``#K;X/Y&W5J2(G'3(G^Z/8<``#K78/Y"G4-2(G' -XM3(G^Z-0>``#K2X/Y$74-2(G'3(G^Z.(R``#K.8/Y%74T2(N=9( -XMB46(@#@`28G'#X46____2(V] -XMZPUF#Q]$``!(B76(28GW@#X`#X3V````2(L%$=M``.L*#Q^``````$G_QT$/ -XMM@](@?G_````=/"$R71&]D0!`0AU$X#Y*'7@23GW=MM!@'__)'4'Z]*`^2AU -XM)P]7P`\IA6#___],B?=(C9U@____2(G>,=+H#TK__X7`=7[IV@$``$2)YTR) -XM^NA;!P``28U'`4&`/P!)#T3'9F9F9F9F+@\?A```````2(L-@=I``&8/'X0` -XM`````$B)Q@^V%DB!^O\````/A#W___](C48!]D0*`0AUXNDM____9F9F9BX/ -XM'X0``````$@%*`$``$2)YTB)QC'2Z.T&``!(B=_H-9P``$B%P'7@2(M%B.N: -XM2(,]$N9```!U4#'`2(L-]^5``(L5_>5``.L29F9F9F9F+@\?A```````2/_` -XM.=!S*4B+-,'W1A@P(`0`=>R`?@0`=>9(B37/Y4``9F9F9F9F+@\?A``````` -XM2(N](/___^CD1O__0;T!````2(N5*/___TB%T@^$'O#__TC_PDB+!9S90``/ -XM'T``2(G7#[8/2('Y_P```'092(U7`?9$`0$(=>9!O0$```"$R0^$Z.___^BC -XM[/__28G&13'_0;T!````@SU,Y4````^$RN___V8N#Q^$``````!$B?A(BPTF -XMY4``2(LUT -XM+,<%\.1``!4```!%,>3I'0$``$B+58B_`0```+YZG%$`,,#HYY___^GR_O__ -XM08/\`75)2(L-E>1``$B+`0^V4`2#XC^)%;'D0`"#^AD/CY8```"#^@P/A9X` -XM``!(BPVDSB``2(,Y``^$P````,<%A.1```````#IL0```$6%Y`^$A@```+\! -XM````ONN=40`PP.AYG___,=N#/3SD0```0;XH`0``="X/'X0``````$B+!1GD -XM0`!(BSS83`'WOB"Z@0#HR$3__TC_PXL%"^1``$@YPW+:OPH```"^(+J!`.B[ -XM0___13'DZT>#^AIU/\<%?_I```$```#K,X/Z$'4;QP5R^D```0```.LBQP7F -XMXT```````$4QY.L6@_H3=0Y(QP75XT```````$B+`42+($B+1:#I-OG__T6% -XM[71+BP67XT``A05]=PV:054B) -XMY4%7059!5%-)B?9)B?],B?>^(P```.BB0___3#GP#X2Y````2(7`#X2D```` -XM28L'28E'"$V)].L*#Q]``$C_PTF)W$&*!"2$P'1C/"-T7SQ<=59)C5PD`4&* -XM1"0!/"-U0$R)YDPI]DR)_TR)\NBK6/__28M'"$F+3Q!(*<%(@_D!?PQ,B?_H -XM,EC__TF+1PA(C4@!28E/",8`(TV-="0"B@.$P$D/1-SKE$R)X^N/32GT3(G_ -XM3(GF3(GRZ%Y8__],B?_H-EG__TF+1PC&``!-BS=,B?!;05Q!7D%?7<._G)Q1 -XM`+XW!```NO">40"Y_YY1`.@G0/__#Q^``````%5(B>534$C'!0_B0``````` -XMQP7]X4``(````,<%]^%```````"_``$``.C!Z/__2(D%VN%``,<%\.%``(`` -XM``#'!>KA0```````OP`$``#HG.C__[L8````2(D%R.%``$B+NZB740!(BX.P -XMEU$`2(UT./^+D[B740"Y`0```.@-.```BHN\EU$`B$@$BXO`EU$`B0A(@\,@ -XM@?NX`P``=7>FAE@``,,"_ -XM@)M1`%M!7EWI(9O__UM!7EW#9F9F+@\?A```````54B)Y4%7059!54%44TB# -XM[!A(B7W(B?�=,BR=%BVPD&$2)Z(/@!SG!=`R%P'0(AZ/"4``"%P'08@SVAX$```'4+3(GO3(G^Z)B5 -XM``!!_T<@38MV"$V%]G7+QT,8!!```$F#Q%!,B>=(B=[H=94``$B+1/K`TR)XT$)]42):QBX`0```)!(@\086T%<05U!7D%?7<.) -XM\[\%````Z.7F__])B<=!]L4!=`A!Q@0`#HN9,``$R)+;+>0`!,B6W0Z7,! -XM``"#X#^#^!T/A2P"``#_!8_>0`#I$@(``(/X#'4U2(L]CL@@`$F!Q2@!``!, -XMB>[H=Y,``+]HQR4B#Q`A;05Q!74%>05]=Z2AC``!%A?9T!D4) -XM=1CK7(,](MY```!T4TV-96`QVV9F9F9F+@\?A```````B=A(BPWWW4``3(L\ -XMP4F-?W!,B>[H5Y(``(7`=!B#/0C>0```=0M,B>=,B?[H_Y(``$'_1R#_PSL= -XMS]U``'+!08M%&$R);="#X`>#^`0/A:<```!(BT703(MH4$V%[0^$E@```$6% -XM]G0G#Q^``````$F+11!$"7`838MM"$V%[77OZW=F9F9F+@\?A```````@SUU -XMW4```'1838ME$$V-="1@13'_9F8N#Q^$``````!$B?A(BPU&W4``2(LW!,B>;HII$``(7`=!>#/5?=0```=0M,B?=(B=[H3I(``/]#($'_QT0[/1W= -XM0`!ROTV+;0A-A>UUEHL%*-U``$R+9=!!B40D'$B+#1#=0``Y#0[=0`!S#4C! -XMZ2!(BP7UW$``ZR:--`F)-?+<0`!(BSWCW$``2,'F`^ABY/__2(D%T]Q``(L- -XMV=Q``(U1`8D5T-Q``(G)3(DDR(,]Q]Q```!T34V-M"20````13'_ZR-(B=]( -XM@^^`3(GFZ+&1``!,B?=(B=[HII$``$'_QXL5D=Q``$$YUW,81(GX2(L-=MQ` -XM`$B+',&+0QQ!.T0D''S`2(/$"%M!7$%=05Y!7UW#OYR<40"^M`$``+JZG%$` -XMN<6<40#H.#K__P\?A```````54B)Y4%7059!5%-!B=8QTC')Z/EJ``!)B<=% -XMA?9T+TR)_S'VZ*<\__](BQ4PQB``3(G_2(G&,05]=Z7NU -XM__\PP+\!````OD&>40!(B=I;05Q!7D%?7>F_E?__OP$```"^+YY1`$R)^C#` -XMZ*N5__],B?];05Q!7D%?7>F;.___3(GG,?;H`3O__TB+%4K$(`!,B>=(B<:Y -XM`0```.C:- -XM``!,BR7XS4``13'M9F9F9BX/'X0``````$F)QD$/M@Y(@?G_````=`Y)C48! -XM0O9$(0$(=>3K(K'_13'MZQMF9BX/'X0``````$&*#TV)_D&)Q0\?@`````!- -XMC7X!@/D]#X3/````#[[!@_@J?QZ#^"$/A?(```!$B>B#X`2#^`$9P/?01`GH -XM@\@$ZVR#^#]U%42)Z(/@"H/X`1G`]]!$">B#R`CK4H/X.G4<3(G_ONB"40"Z -XM`@```.@,-___AB# -XMR`+K$T2)Z(/@`8/X`1G`]]!$">B#R`&#^/]T;.E'____#Q^``````$G_QD&* -XM#D&]!````(3)#X0\____@/D]#X0S____Z^&038U^`4+V1"`!"'0/38G^00^V -XM!D@]_P```'7E0?;%"'0^2(M]P$B+=^ -XM)````.C[./__2(7`="M,B??H73G__^L/2(UUN$R)]^@_3___28G'2(MUN$B%]G0/OP(```!,B?(P -XMP.@TD___38G^0?;%`7111(LEU.Y``,<%RNY```````!(BWW`2(MUR.B]70`` -XMA@E6P``3(GW,?8QTNBY8P``28G&1(DEC^Y` -XM`$V)].L#13'D2(M]P$B+=05]=PY"0D)"0D%5(B>5!5T%6055!5%-0 -XM18G'28G,2(E5T$F)_DDIU$PI]D6%_P^5P`^VV$@!\TF-?!P!Z$G=__])B<5, -XMB>],B?9(B=KH.#+__TZ--"-%A?]T!4:(?"O_3`'K2(G?2(MUT$R)XN@8,O__ -XM0\9$-0``3(GH2(/$"%M!7$%=05Y!7UW#54B)Y4%7059!54%44TB#[!A)B=1( -XMB77`2(G[OY@!``#HV]S__^L,9@\?A```````2/_#B@N`^0ET]H#Y('3Q28G& -XM2(G?Z$8V__](_\!T#$B)Q^BIW/__28D$)#'`2(E%T$F+-"1%,,F_,@```$F) -XM\$R)\.L;9F8N#Q^$``````!(_\9(_\-F+@\?A```````1(HS00^^SH/Y6W\V -XM@_DG#X>"`0``2+H`!@```0```$@/H\IS;$6$R0^%:0$``$V%P`^%P0```$4Q -XMP$4PR4C_P^N^@_E<#X5,`0``2(U3`42*G+````@_EM#X^(````@_EF#X6V````0;8,Z:X```!(A05]=PV9F+@\?A```````2(L/2(L%OL=``&8/'T0``$F)R$$/MC!(@?[_ -XM````=!U)C4@!]D0&`0AUY3#),@$`2`]%T.O2@_@??P>#^`EUR.L%@_@@=0:$R70AZ[N#^")T!8/X)W6Q0#CQ -XM=`R$R70#0(C.0(CQZZ`PR>N<2(D73(G`PP\?1```54B)Y4%7059!54%44U!) -XMB<](B=-)B?9)B?Q(B5W03(UMT.L69F9F+@\?A```````2/_#2(E=T$G_Q$PY -XM^W1NB@N`^2H/A(4````QP$TYY@^$T0```(#Y/W36@/E<=19(_\-(B5W0,Y,B?KHKP```(G!,<"% -XMR0^$B0```$B+7=#KC3'`03H,)'5[ZX--.>8/E,`/ML#K;@\?A```````28U, -XM)`$QP$TY]$F)S'172/_#9F9F9F8N#Q^$``````"X`0```$DYWW0\B@-(_\,\ -XM*G3M2/_+/#]TQF8/'T0``#'`33GF=!],B>=,B?9(B=I,B?GHZ/[__XG!2?_$ -XMN`$```"%R73:2(/$"%M!7$%=05Y!7UW#9F8N#Q^$``````!52(GE2(L.2#G1 -XM#X2N````1(H!08#X(70&08#X7G4A2/_!2(D.0`^^_^C2____A<`/E,`/ML!= -XMPP\?A```````08#X7'442/_!2(D.,0$M=2U,C4D",5!5T%6 -XM055!5%-02(G328GU28G^08!]``!T0TB)7=!,B>^^)0```.@A,?__28G'387_ -XM=#=-B?3K"@\?0`!)_\5)_\1-.>]T*T&*!"1%,?:$P'1X13'V03I%`'5OZ]], -XMB??HIS#__TB)`^M@38GO38GTZPI!@'\!`'0_2?_'3(GC13'V9BX/'X0````` -XM`$R)_TB)WNAU+___ALA3"GC2(M%T$B)&$V)YNL2 -XM3(GGZ$PP__](BTW02(D!38GF3(GP2(/$"%M!7$%=05Y!7UW#54B)Y4%7059! -XM54%44U!)B^^)0```.A),/__2(G#2(7;=!=(B=Y,*>Y, -XMB?=,B>KHD$7__TC_PTF)W4R)]TR)YDR)^NA\1?__3(GOZ-0O__],B?=(B<9, -XMB>I(@\0(6T%<05U!7D%?7>E81?__#Q^$``````!52(GE05=!5E-02(GS28G^ -XM3"GS2(U[`>@$UO__28G'3(G_3(GV2(G:Z/,J__]!Q@0?`$R)^$B#Q`A;05Y! -XM7UW#54B)Y4%7059!54%44U!)B==)B?1(B?N_`0```$@IWTP!Y^BYU?__2(E% -XMT$F)Q>L*18AU`$G_Q4C_PTPYXW0Z1(HS08#^7'7H2/_#3#GC="%$BC-!#[[V -XM3(G_Z%$O__](A05]=PV9F9F9F9BX/'X0``````#'`2#GW=`X/OD;_2/_..=!U -XM[DB)\,.0D)"0D)"0D)"054B)Y5-02(UU]+](QX$`Z/PI__](A!`$R)]NC.+/__08G' -XMOPC'@0!$B?[H'BK__TF)Q$V%Y'4?2(MUV$R)]^A*(@``28G$OPC'@0!$B?Y, -XMB>+H9RK__TF#O"3H`````'0A28V<).@```!(B=\Q]NBZ@P``2,=#"`````!( -XMQP,`````28-\)'``=!Y)C5PD<$B)WS'VZ)2#``!(QT,(`````$C'`P````!! -XMQT0D&```!`!(BW70]D8($'020<9$)`152(M%R$F)A"0(`0``]@6%XT``@'08 -XM2(/&2$B+505]=PV9F9F9F -XM9BX/'X0``````%5(B>5!5T%6055!5%-(@^PH2(E-P$B)5;A(B?)(B57(2(G[ -XM,1(QT70`````.L0D$'!Q0)!#[Y&_T$QQ4G_SDDYW@^$XP```+](QX$` -XM3(GV1(GIZ.@G__],B?%(*=E(.PW3XD``#X^C````OTC'@0")QNB9*/__28G' -XM387_#X2+````0?9'"`@/A(````!-A?9,B?!U"TB)W^A2+/__2`'8,GH_";__[](QX$`B<;HP"?__TB)P3'`2(7)=#.* -XM00@D&$&\`````$P/1>&$P$@/11U=RT``,1T$TB+1;A,B2!(BT7`2(D8 -XMN`$```!(@\0H6T%<05U!7D%?7<,/'T``ZPYF9F9F9BX/'X0``````%5(B>5! -XM5T%605132(/L$$F)]DF)_TV%]G4.3(G_Z!XK__])B<9-`?XQR4TY_DR)\'0) -XM00^^3O])C4;_3#GX=!'!P0(/OE#_,=%(_\A).<=U[[](QX$`3(G^3(GRZ"\F -XM__]!B<2_2,>!`$2)YNCO)O__2(G#2(7;=6A,B7782(U5V+\`L6$`3(G^Z)(E -XM__](B<-(BT783"GX2(D#9L=#"```2,=#&`````!(QT,0`````$C'0T`````` -XM2,=#.`````!(QT,P`````$C'0R@`````OTC'@0!$B>9(B=KH[R;__P^W0PBH -XM"'4LBPVYRD``C5$!B16PRD``B4L@@\@(9HE#"$B+`T@[!7S@0`!V!TB)!7/@ -XM0`!(B=A(@\006T%<05Y!7UW#9F8N#Q^$``````!(BX<(`0``2#L%RLE```^4 -XMP4B%P$B-0!`/E,((RD@/105[LR``PV8N#Q^$``````!52(GE4U!(B?!(B?M( -XMA^_2,>!`$B)WDB)PNC/)/__OTC'@0") -XMQNB3)?__2(7`=`2`2`@!2(/$"%M=PP\?`%5(B>534$B)\$B)^TB%P'4+2(G? -XMZ$2(G"Z$\D__^_2,>!`(G&Z!,E__]( -XMA!``2(UX$'4,N@!E0`#H -XM!'\``.L%Z'UG__^_2,>!`$B)WNB@*/__2(7`=W`` -XM=%6*0P0D/SP5=$Q,C:LH`0``3(GOZ/C! -XM^O__A\Q]NA2)___3(GO2(G&Z'=M__^%P`^$ -XM=00``/8%)-U``(!T#[]LH%$`3(GN,,#HER'__TR)[TR)K6C____HV";__TB) -XMPTB%VP^$G@```$B+19!(C8P8*`$``$0/OJ0#)P$``$4Q[>L89I!(BT60#[Z$ -XM&"8!``!!P<0"03'$2/_+2(/[`7192(M%D$R-M!@G`0``OTC'@0!,B?9(B'HOR'__[](QX$`B<;H@R+__TB%P'01387M=`F+2"!!.TT@?0-) -XMB<5,B?E(BXPP.BZ(/__3(GO3(GVN@$```#HFE$``$B%P'44 -XMOZN@40!,B>XPP.B6(/__Z3L#```/5\`/*46P2(M-D/9!&B!)B<5T($B)1:A( -XMB4602(U]J$B-=;!,B?+HM2C__^D.`0``2?_%08I-`(#Y"73T@/D@=.](B460 -XM3(EMH`\?@`````!,B>[K&V9F+@\?A```````2/_&2(EUH&8/'X0```````^V -XM!D@]_P```'3EA,`/A)D```!(BPW^N$``]D0(`0AU,CPD=1%(B=],B?;H,$L` -XM`$B+=:#KRCQ<=;:`?@$`=`I(@\8"2(EUH.NV2/_&2(EUH.NM3(GON@$```#H -XMX!H``$C_1:!(C7VP2(G&Z,!Y``!,BVV@ZQ%F+@\?A```````2?_%3(EMH$$/ -XMMD4`2#W_````#X1(____2(L->;A``/9$"`$(#X0V____Z]1,.>Y,BW6(=#M, -XMB>^Z`0```.A^&@``2(U]L$B)QNAB>0``3(MUB.L<9F9F+@\?A```````0?]$ -XM)"!F9BX/'X0``````$B-1;!)B<5F#Q^$``````!,B>_H&'H``$B)PTB%VP^$ -XM@0```/8%@=I``(!T$TB-LR@!``"_$XM1`##`Z/`>__](BWV82(G>Z`1]``!( -XMA(P8#!_H#Y -XM`@^#;_____9#&#`/A77___\\`G4&0<9$)`8!3(GG2(G>Z'!N___I6____TB+ -XM?9#HHB3___8%]]E``(#I$P$``/8%Z]E``(!T$$F-=4B_AZ!1`##`Z%T>__]) -XM@\40#U?`#RE%P$B+G6C___](B=\Q]NC1(___2(G?2(G&3(GJ3(UMP$R)Z>A\ -XM9/__3(MUB.L69@\?1```0?]$)"!F9BX/'X0``````$R)[^@(>0``2(G#BP5[ -XMV4``N8`````AR$B%VP^$B@```(7`=`^_$XM1`$B)WC#`Z-P=__](B=\Q]KH! -XM````Z.T8``!(B<-(BWV82(G>Z-Y[``!(A(P8#!_H#Y`@^#:?____9#&#`/A6____\\`G4& -XM0<9$)`8!3(GG2(G>Z$IM___I5?___X7`3(NU>/___TB-7:!T"K\*````Z`P= -XM__]!_TPD($B+?9A(BW6(Z'I[``!(BX5P____2(7`2(GG^___2('$B``` -XM`%M!7$%=05Y!7UW##Q]$``!52(GE05=!5E-0Z($```!(BQT:PD``ZQ@/'X0` -XM`````$B#PPA)B=])BQ]F#Q]$``!(A=MT2DR+Z-YZ``!,B??H -XMMB+__TF+'^NQ2(/$"%M!7D%?7<-F#Q]$``!52(GE05=!5D%505132('LF``` -XM`$F)_TR)O7C___]!BT<8J0``@``/A<,$```-``"``$&)1QCV!;_70`"`=!=) -XMC;(P8#!_H#Y`@^#R0(``$'V1A@P -XM#X7!`@``/`)U!,9#!@%(B=],B?;H4VO__^FI`@``J0``$`!T5+](QX$`OKF? -XM40"ZNY]1`+FJ`0``Z.X;__^_2,>!`(G&Z+(<__](A<`/A$@"``!)B8<(`0`` -XM2(/`$$R)_TB)QNBC,O__2<>'J````/RH40#I@P,```]7P`\I19`/*46`28V_ -XM*`$``$B)O6#____H12#__TB%P`^$9@$``$F-C`+Y``$F)1A!- -XMB7X@2<=&&`````!!QT8H`````$B)W^A8Q?__28E&"$F#O^@`````=0M)@W]P -XM``^$D0$``/8%A-1``(`/A*8!``"_Z)]1`##`Z/88___IE0$``$G'AP@!```` -XM````28V'*`$``$F)AZ````!)QX>H````_*A1`.DX`0``_T,@28N&H````$B) -XM@Z````!)BX:H````2(F#J````$V+I@@!``!-A>1T'DF-AB@!``!(B8.X```` -XM2(N%'H.@P` -XM`(7`=1_V!4O30`"`=!9)@\1(OTJ@40!,B>9,B?HPP.BW%___2(N->/___XM! -XM&*@'=0:#R`&)01A!@$X:"&9F9F9F+@\?A```````2('$F````%M!7$%=05Y! -XM7UW#3(EUP$B-19!(B46X28M&$$B+>#A(C56XOO`700#H[',``/8%T=)``(!T -XM"K\PH5$`Z"D8__](B9U@____2(U]@$R)]NA&<0``38G\3(UMD$R-=#B^\!=!`$R)\NB39,BZ5@____38FFH````$F-AJ````!(B85( -XM____13'_,,E(A=NX`````$B)A6C___],B>!T:NM32(G'Z$`<___V!9710`"` -XM3(GX=!2_%J%1`.CJ%O__3(GX#Q^``````$B)PTB+0QA(A/___P^$E`$``$F+?PA-BW<@Z+D:__])@\9P -XM2&/`2(F%=(BY5P____Z+$7__^%P'6=2(N=_H -XM*AK__TB--!A)C10T,[H,A7__[](QX$`B<;H]A7__TB) -XMPTB%VP^$*O___TF+=Q!(C7LHZ(UR``!(A<`/A!3___^_,````.@:P/__28G& -XM3(NM6/___TR)[^AXP/__28D&28M'"$F)1@A)B5X038E^&$B+A5#___])B48@ -XM0<=&*`````!!_TZU9,B;5X____]@5+ST`` -XM@`^$7@$``+_MGU$`3(GF,,#HNA/__^E*`0``#Q]$``"_\,:!`$B)WNCS;``` -XM2(M;&$B%VW032(-[&`!T#.OA28G>3(NE8/___TC'A6C___\`````387V#X0( -XM`0``28M&($B%P'4328L^,?:Z`0```.A[#@``28E&($F+3A!-BVX8387M#X2L -XM````38UF$$V-?AA,B?/K%68/'X0``````$R-8Q!,C7L82(M#($B)B`@!``!) -XMBT4@2(7`=11)BWT`,?:Z`0```.@D#@``28E%($F+#"1)BU402(MS($B)Q^A, -XM!P``28M%($@[A7C___]T*H!(&H!)BWT(Z`*___])BTT@2(F!J````$F+12!( -XMC8@H`0``2(F(H````$F+'TB+2Q!,BVL8387M#X5Q____3(NE8/___TB+G7C_ -XM__](B8L(`0``2(M[$.BC&/__3(GGZ*N^__](B4,03(GV3(UMD.E]`0``2(N= -XM>/____9#&`=T1$B#>W``=0I(@[OH`````'0S,4B)Q^C2O?__2(N-2/___TB)`8"]1____P%U9TR+8Q!,B>?H -XMTQ;__TF+3Q`K`4B)BP@!``!,8_!'BCPT0\8$-`!,BV,03(GGOB\```#H*1/_ -XM_TB%P$B->`%)#T3\Z'F]__](B8.H````2(M#$$:(/#!(B[5H____ZT-(B[5H -XM____ZSI(QX,(`0```````$R+^+P```.C<$O__2(7`2(UX`4D/1/[H -XM++W__TB)@Z@```!(B[5H____2(7V=$F_\,:!`.@O:@``9F9F9F9F+@\?A``` -XM````3(UMD.LJ9BX/'X0``````$R-;9!,B>],B?;H\6X``$B)W^C)%O__9@\? -XMA```````38MU`$V%]G0O38UN"$F+7A"#>R@`=>E(BSOHH1;__TB+0QA(APCHCQ;__^NM_T@HZZA(C46`#Q]``$B+&$B%VW0K2(U#"$R+^_2,>!`$B) -XMWDB)PN@O$/__OTC'@0")QNCS$/__2(7`=!Y(BPVGM$``9H-A"/N`2`@$2(D% -XME[1``$B#Q`A;7<,PP+\"````OC^?40!(B=I(@\0(6UWI9F___V8/'T0``%5( -XMB>532(/L&+\(QX$`O@0```"Z*+%A`.B3$O__2,=%Z`````"[_*A1`$B-5>B_ -XM`+%A`+[\J%$`Z#,/__](BTWH2"G92(D(9L=`"```2,=`&`````!(QT`0```` -XM`$C'0$``````2,=`.`````!(QT`P`````$C'0"@`````2(D%U+-```^W2`B) -XMRH/*!&:)4`CVP0AU+(L57+1``(UR`8DU4[1``(E0((/)#&:)2`A(BPA(.PT? -XMRD``=@=(B0T6RD``2(LU5YT@`$B->!#HKE+__[](QX$`O@0```"Z`+%A`.C* -XM$?__QP4(M$```````$B-=?2_2,>!`.CR#O__2(7`="-(C5WT9@\?A``````` -XM@&`(][](QX$`2(G>Z(\3__](A_=I]1`.L6@_@"=0>_?I]1`.L* -XM@_@$=0R_G9!1`##`Z!$-__^%V[\I````00]%_+Z(N8$`Z*P1__^%VW6HOPH` -XM``"^B+F!`.B9$?__OX:?40`PP.C=#/__28U]*+X@%D$`Z)]I``"_"@```+Z( -XMN8$`Z'`1__^_C9]1`##`Z+0,__])C7TXOB`600#H=FD``+\*````OHBY@0#H -XM1Q'__[^6GU$`,,#HBPS__TF#Q1!,B>_H#U'__[\*````OHBY@0#H(!'__[]( -XMQX$`3(GVZ-,1__])B<5-A>T/A05]=PV9F9F9F -XM9BX/'X0``````$B-=T@PP+_CB%$`Z:`+__]52(GE05=!5D%505132(/L&$F) -XMS$B)5=!(B?-)B?Y-C6YP3(GOZ,9D``"%P'0Y2(U[8$R)]NAV90``BD,'B,&` -XMP?Z`^0)S'/9#&#!U&CP"=05!QD8&`4R)]TB)WN@?6___ZP1!_T8@BT,82(E= -XMR(/@!X/X!'5S2(M%R$B+6%#K$$B+6PAF9F8N#Q^$``````!(A=MT5$R+>Q!, -XMB>],B?[H3&0``(7`=-A)C7]@3(GVZ/QD``!!BD<'B,&`P?Z`^0)S'4'V1Q@P -XM=;<\`G4%0<9&!@%,B?=,B?[HHUK__^NA0?]&($B+6PCKITF#Q$A,B67`13'M -XM3(GG,?;H,A#__TF)QTB+7=!(@\-(2(E=T$B)WS'VZ!D0__],B>=,B?Y(B=I( -XMB<%%,<#HM=C__TF)Q+\(QX$`3(GFZ/4+__^_",>!`(G&Z,D+__])B<=,B>?H -XM;A#__TV%_W14]@6^Q4``@$B+7 -XMZ'QC``"_,````.@BM?__2(G#3(EMT$V+;PA,B>\Q]NC=#O__3(EUR$F)QDR) -XMYS'VZ,P.__],B>],B?9,B>)(B<%%,<#H:-?__TB)`TF+1PA(B4,(3(E[&$C' -XM0R``````2(M%T$B)0Q#'0R@`````0?]'*$B+1GQ8@``D%5(B>5!5T%6055!5%-028GW28G^13'D3(GP9@\?1```3(LH -XMLP%-A>UT%4F-10A-BV4008M,)"`PVT$[3R!\X?8%%L1``(!T%$&+5R!)C7=( -XMO\:@40`PP.B$"/__@/L!=2SV!?3#0`"`=`J_[Z!1`.A,"?__3(GW3(G^2(/$ -XM"%M!7$%=05Y!7UWI8V(``+B`````(P7$PT``08M4)"!!.U<@=1R%P'1+O_Z@ -XM40!(@\0(6T%<05U!7D%?7>D!"?__AY,B?I(@\0(6T%<05U!7D%?7>D^90``2(/$"%M!7$%=05Y!7UW#9F9F -XM9F9F+@\?A```````54B)Y4%7059!54%44TB#["A)B==)B?:)^P]7P`\I1!``=!](B<;HLDO__[](QX$`3(GFZ-4,__](A;H -XMD4K__TB)PTR)]S'V2(G:,F(``$B# -XMQ"A;05Q!74%>05]=PY"0D)"0D)"0D)"054B)Y;^0QX$`O@H```"Z*+%A`.AH -XM"O__OQBB40"^'J)1`+I:[@``N0$```#H/P(``$B)!9#"0`"!2!@`(`,`OQ^B -XM40"^(Z)1`+JL#@``N0$```#H&`(``$B)!6'"0`"!2!@`(`,`OR2B40"^+J)1 -XM`+K$EN8`N0$```#H\0$``$B)!2K"0`"!2!@`(`,`OR^B40"^-Z)1`+ITA@X` -XMN0$```#HR@$``$B)!0O"0`"!2!@`(`<`7<-F+@\?A```````54B)Y4%64TB# -XM[!!)B?Y(B77H2(U5Z+\HL6$`3(GVZ%T&__](B<-(QT,0`````$&`/BUU$$&` -XM?@%L=0G'0Q@``!``ZP?'0Q@`````QT,@`````,=#'`````#'0P0`````QT,H -XM````@$C'0S``````QT,X````@$C'0T``````2(V[H````$C'@Y@````````` -XM2,>#D`````````!(QX.(`````````$C'@X``````````2,=#>`````!(QT-P -XM`````$C'0V@`````2,=#8`````!(QT-8`````$C'0U``````Z-HG``!(QT-( -XM`````$C'@P@!````````2,>#``$```````!(QX/X`````````$C'@_`````` -XM````2,>#Z`````````!(QX/@`````````$C'@]@`````````2,>#(`$````` -XM``!(QX,8`0```````$B)FQ`!``#&0P@`2(G82(/$$%M!7EW##Q^$``````!5 -XM2(GE05932(/L$(G328G^2(EUZ$B-=>CH\PC__TB+=>A,B?>)PHG9Z!,```!( -XM@\006T%>7<-F+@\?A```````54B)Y4%7059!54%44U!!B&D`````````!)QX:(`````````$G'AH``````````2<=& -XM>`````!)QT9P`````$G'1F@`````2<=&8`````!)QT98`````$G'1E`````` -XMZ.(E``!)QT9(`````$G'A@@!````````2<>&``$```````!)QX;X```````` -XM`$G'AO``````````2<>&Z`````````!)QX;@`````````$G'AM@````````` -XM2<>&(`$```````!)QX88`0```````$V)MA`!``!!QD8(`+^0QX$`B=Y,B?+H -XMS`3__TR)\$B#Q`A;05Q!74%>05]=PV8N#Q^$``````!52(GE05=!5D%44TB# -XM[!!)B?],BR9-A>1T7DR-==AFD$F+7"002,=%V`````!(B=],B?;HR`;__TB+ -XM==A(B=^)PKD!````Z.7]__](B<-,B?](B=[HAUP``/9#&`1T#TB#PU!,B?]( -XMB=[HPEP``$V+9"0(387D=:A(@\006T%<05Y!7UW#9F8N#Q^$``````"#/;&] -XM0```=`:X`0```,.+1QC!Z`:#X`'##Q^``````(,]K;U```!T!K@!````PXM' -XM&,'H"(/@`<,/'X``````@SUIO4```'0&N`$```###[='&&:IA$`/E<`/ML## -XM9I!(B?DPP+\=CU$`2(G.Z5!5E.)^X/C -XM^`^$A0$``$&^(`````\?A```````B=H/O,I!#T3.N`$```#3X(G#]],ATSW_ -XM_Q\`?W(]__\/``^/B0```#W__P<`#X^@````/?\?```/C[0````]_P\```^/ -XMMP```#W_`P``#X^Z````/?\!```/C[T````]_P````^/P````(/X?P^/Q0`` -XM`(/X/P^/R@```(/X"`^%S0```+\XHE$`Z=D````]```@``^%U0```/8%?+Q` -XM``$/A,@```"_H*)1`.FW````/0``$``/A;,```#V!5J\0``!#X2F````OY&B -XM40#IE0```#T```@`#X61````]@4XO$```0^$A````+^7HE$`ZW8]`"```'5V -XMOX>B40#K:#T`$```=6B_>Z)1`.M:/0`$``!U6K]THE$`ZTP]``(``'5,OVVB -XM40#K/CT``0``=3Z_9*)1`.LP/8````!U,+]9HE$`ZR*#^$!U)+]0HE$`ZQ:# -XM^!!U![]#HE$`ZPJ#^"!U#+])HE$`,,#H,0#__X7;#X6)_O__6T%>7<,/'T`` -XM#[Y/!X/Y!7<,N*BB40#_),V(H5$`N,"B40##N+NB40##N.6640##N+"B40## -XMN)R#40##9F9F9BX/'X0``````%5(B>5!5E-(@^P0B?N_8*-1`.BI`/__2(UU -XM[+^0QX$`Z&L`__](AQFD$B)QXG>Z+8```"_D,>!`$R)]N@)!?__ -XM2(7`=>2_^ZA1`.AJ`/__OX"C40#H8`#__TB-=>R_D,>!`.@B`/__2(7`=%5( -XMC5WL9@\?A```````BT@8]L$'=2Z`>`0`=2CWP0```@!U($B+4!!(!2@!``!( -XMA=)(#T30O\VB40!(B<8PP.@J__[_OY#'@0!(B=[HC03__TB%P'6XZ',X``"_ -XM"@```.C)_O[_Z"3Q__](@\006T%>7<-F9BX/'X0``````%5(B>5!5T%64U") -XM\TF)_D'V1A@'#X2:`0``OU&C40#HK/_^_X/[`@^%DP```$&+=B"_V*)1`##` -XMZ+/^_O]!#[=&&&:I,`1U>$&+?BB!_P```(!U,4F+=C!(A?9U+$$/OD8'A<`/ -XMA%4!``"#^`5W#+ZHHE$`_R3%Z*%1`+[`HE$`Z8L!``!)BW8PZ((@``!!#[Y. -XM!X/Y!7<,NJBB40#_),VXH5$`NL"B40`/'X``````O^ZB40!(B<8PP.@Q_O[_ -XMD$F#?F``="Q-C7Y@OR*C40`PP.@9_O[_3(G_OB`E00#HW%H``+\*````OHBY -XM@0#HK0+__TF+=DA(A?9T$TB!QB@!``"_+J-1`##`Z.']_O])C;8H`0``OT2C -XM40`PP.C._?[_08M&&(/@!X/X!'4'OTVC40#K%H/X`G4'OTJC40#K"H/X`74, -XMOTZC40`PP.B>_?[_08M^&.C5^___28U^<+X@)4$`Z%=:``"_"@```+Z(N8$` -XMZ"@"__])C;[H````OO`?00#H-UH``+_[J%$`Z#W^_O]!]D88!'0:38MV4.L/ -XM28M^$(G>Z%7^__]-BW8(387V=>Q(@\0(6T%>05]=P[]3HU$`Z`?^_O_I\O[_ -XM_[J[HE$`Z=C^__^ZY991`.G._O__NK"B40#IQ/[__[J<@U$`Z;K^__^^NZ)1 -XM`.L3ON6640#K#+ZPHE$`ZP6^G(-1`+\&HU$`,,#HU/S^_^F?_O__9F9F9F9F -XM+@\?A```````N)#'@0##9BX/'X0``````$B-MR@!```PP+_CB%$`Z9W\_O^0 -XMD)"0D)"0D)"0D)"054B)Y5-02(GS2(D]@*)``$B)'8&B0`!(B=_HP0'__TB) -XM!7JB0`!(C7@"Z"&H__](B05RHD``2(L58Z)``$B)QTB)WN@(_?[_2(L%4:)` -XM`$B-2`%(B0U&HD``2(L-1Z)``,8$`2](BP4\HD``2(L-+:)``,8$"`!(@\0( -XM6UW#9I!52(GE05=!5D%44TF)_TR+-0NB0`!(BS4,HD``28V_*`$``$R)\NBE -XM_O[_A<`/A7P```!+C;PW*`$``#'V,=+H[/;__TF)QDV%]G1C28._Z`````!U -XM$TF-O^@```!)C;;H````Z`=6``!)BUYP2(7;=#U-C7=P9BX/'X0``````$R+ -XM8Q!,B?=,B>;HT50``(7`=!-)@\1@3(GG3(G^Z'Y5``!!_T<@2(M;"$B%VW71 -XM6T%<05Y!7UW##Q^$``````!52(GE05=!5D%505132('LF````$B)O4C___^* -XM!4^A0`"$P`^%40$``.AB_O__2(G#2(E=@$B-?8B^"@```+I0L6$`Z'C^_O]( -XMC77,2(G?Z*S[_O](B<-(A=L/A,P```!,C7V(3(UET`\?A```````2,=%T``` -XM``"`>P0`#X61````]T,8`$`"``^%A````$R-LR@!``!,B?>^+P```.A]_/[_ -XM2(7`2(UP`4D/1/9(B;,8`0``3(G_3(GBZ*#^_O]!B<5,B?]$B>[H\OO^_TF) -XMQDV%]G4P2(NS&`$``+]0L6$`3(GBZ);Z_O])B<9)QP8`````28E>"$R)_T2) -XM[DR)\N@J_/[_28L&2(F#(`$``$F)'DB+?8!(C77,Z*#__O](B<-(A=L/A43_ -XM__](C7V(2(UUS.C'^O[_2(7`=#5,C76(2(U=S&8N#Q^$``````!(BPA(BT`( -XM2#G(=`=(B8@@`0``3(GW2(G>Z%+__O](A0/A+<7``!(.8D0`0``#X6J -XM%P``]@42M4``0'0E2(V1*`$``$B)R[\@NH$`OJ.C40`PP.B8^_[_2(G93(NA -XM(`$``$DYS`^$6Q<``$B-@2@!``!(B85P____#Q^``````$B+A7#___^`."^Y -XM``````^%40$``$B+!5R?0`!(A0`"028U._[H!````28/^`0^$ -XMC````$*`?##^+TF)SG7B28G.ZYT\+W4&28/'`NN3,=NQ+NL;9F9F9BX/'X0` -XM`````$P!\(@,`T&*3!\!2/_#A,D/A$K___^`^2\/A$'___])C00>2(LUWH<@ -XM`$B-5OY(.=!V(T@!]DB)-D__](B04XGD``08H,'^NJ -XM2(L%*YY``.NA28G6Z1G___](BST:GD``Z!VD__](B<%,B:5`____28V$)"@! -XM``!(B85X____08"\)"@!```O#X4\`0``28G,2(L%XYU``$B%P'432(L]5X<@ -XM`.AJH___2(D%RYU``,8`+T&^`0```$R+O7C____K(9!(BP6QG4``3`'PB`P# -XM20'?38UT'@%F9BX/'X0``````$&*#X3)#X0'`0``ZPH/'P!!BD\!2?_'@/DN -XM=`DQVX#Y+W5KZ^M!BD))B<[KG3PO=09)@\<"ZY,QV[$NZQMF -XM9F9F+@\?A```````3`'PB`P#08I,'P%(_\.$R0^$2O___X#Y+P^$0?___TF- -XM!!Y(BS5NAB``2(U6_D@YT'8C2`'V2(DU6X8@`$B+/=2<0`#H)Z/__TB)!SK*F8N#Q^$``````!(BP71FT``3`'PB`P#20'<38UT'@%F9BX/'X0` -XM`````$&*#"2$R0^$ZP```.L*9I!!BDPD`4G_Q(#Y+G0),=N`^2]U>NOJ08I$ -XM)`$\+G5$08!\)`(O=49)@\0#2(L%=IM``&9F9F9F+@\?A```````28U._[H! -XM````28/^`0^$C````$*`?##^+TF)SG7B28G.ZXT\+W4&28/$`NN#,=NQ+NL; -XM9F9F9BX/'X0``````$P!\(@,`T&*3!P!2/_#A,D/A#K___^`^2\/A#'___]) -XMC00>2(LU?H0@`$B-5OY(.=!V(T@!]DB)-6N$(`!(BSWDFD``Z#>A__](B078 -XMFD``08H,'.NJ2(L%RYI``.NA28G6Z0G___])C4;_2(L-MII``$&`?`[^+W0- -XMQ@0!+TR+I7#____K.4R+I7#___])B<;K+69F9F8N#Q^$``````!(BP6!FD`` -XM3`'PB`P#20'<38UT'@%F9BX/'X0``````$&*#"2$R0^$ZP```.L*9I!!BDPD -XM`4G_Q(#Y+G0),=N`^2]U>NOJ08I$)`$\+G5$08!\)`(O=49)@\0#2(L%)II` -XM`&9F9F9F+@\?A```````28U._[H!````28/^`0^$C````$*`?##^+TF)SG7B -XM28G.ZXT\+W4&28/$`NN#,=NQ+NL;9F9F9BX/'X0``````$P!\(@,`T&*3!P! -XM2/_#A,D/A#K___^`^2\/A#'___])C00>2(LU+H,@`$B-5OY(.=!V(T@!]DB) -XM-1N#(`!(BSV4F4``Z.>?__](B06(F4``08H,'.NJ2(L%>YE``.NA28G6Z0G_ -XM__](BSUJF4``Z&V?__])B<9%A/]U-DR)]TB+78!(B=[H=O?^_T&)QTR)]^@[ -XM^?[_187_#X0*`P``2(E=@$4PY$R++0290`#I5@,``+H!````0;&80`#&`"]!O`$```#K+F9F9F9F+@\?A```````2(L%P9A``$P! -XMX(@,`TD!W4V-9!P!9F8N#Q^$``````!!BDT`A,D/A-P```#K"6:008I-`4G_ -XMQ8#Y+G0),=N`^2]U:^OK08I%`3PN=3=!@'T"+W4Z28/%`TB+!6F80`"028U, -XM)/^Z`0```$F#_`$/A(P```!"@'P@_B])B>__]( -XMB078ET``08I,'0#KJ4B+!/___^LW3(NM>/___TF)Q.LK9F8N#Q^$``````!(BP6! -XMET``3`'@B`P#20'=38UD'`%F9BX/'X0``````$&*30"$R0^$W````.L)9I!! -XMBDT!2?_%@/DN=`DQVX#Y+W5KZ^M!BD4!/"YU-T&`?0(O=3I)@\4#2(L%*9=` -XM`)!)C4PD_[H!````28/\`0^$C````$*`?"#^+TF)S'7A28G,ZYP\+W4&28/% -XM`NN2,=NQ+NL:9F9F+@\?A```````3`'@B`P#08I,'0%(_\.$R0^$2O___X#Y -XM+P^$0?___TF-!!Q(BS4^@"``2(U6_D@YT'8D2`'V2(DU*X`@`$B+/:260`#H -XM]YS__TB)!9B60`!!BDP=`.NI2(L%BI9``.N@28G4Z1C___](BSUYED``Z'R< -XM__])B<5,B?=,B>[HCO3^_XG#@[UD____`'0(3(GWZ$OV_O]!M`&%VW0I3(GO -XMZ#SV_O]!M`%,BRT2ED``183_=63IOP$``$4PY$&W`4B)78!)B=U-A>T/A4,- -XM``!,BRWKE4``08#_`70\183D#X63`0``2(N]:/___TB+78!(B5V`2(F]:/__ -XM_TB)WN@.]/[_QH5D____`(7`QH5C____`.G/`@``2(L%RI5``$B%P'432(L] -XM/G\@`.A1F___2(D%LI5``,8`+T&^`0```$V)[^LL9F9F+@\?A```````2(L% -XMD95``$P!\(@,`TD!WTV-=!X!9F8N#Q^$``````!!B@^$R0^$W````.L*#Q\` -XM08I/`4G_QX#Y+G0),=N`^2]U:^OK08I'`3PN=39!@'\"+W4Y28/'`TB+!3F5 -XM0`"028U._[H!````28/^`0^$C````$*`?##^+TF)SG7B28G.ZYT\+W4&28/' -XM`NN3,=NQ+NL;9F9F9BX/'X0``````$P!\(@,`T&*3!\!2/_#A,D/A$K___^` -XM^2\/A$'___])C00>2(LU3GX@`$B-5OY(.=!V(T@!]DB)-3M^(`!(BSVTE$`` -XMZ`>;__](B06HE$``08H,'^NJ2(L%FY1``.NA28G6Z1G___])C4;_2(L-AI1` -XM`$&`?`[^+W0CQ@0!+TR+O7#____K244Q_\:%9/___P!,B[5H____Z70!``!, -XMB[UP____28G&ZRF30`"028U._[H!````28/^`0^$C````$*` -XM?##^+TF)SG7B28G.ZYT\+W4&28/'`NN3,=NQ+NL;9F9F9BX/'X0``````$P! -XM\(@,`T&*3!\!2/_#A,D/A$K___^`^2\/A$'___])C00>2(LU_GP@`$B-5OY( -XM.=!V(T@!]DB)->M\(`!(BSUDDT``Z+>9__](B058DT``08H,'^NJ2(L%2Y-` -XM`.NA28G6Z1G___](BSTZDT``Z#V9__])B<9%A.1U.4R)]TB+78!(B=[H1O'^ -XM_T&)QTR)]^@+\_[_QH5C____`,:%9/___P%%A?])B=T/A=<"``#IR0(``$&_ -XM`0```,:%9/___P%(BP7@DD``2(7`=1-(BSU4?"``Z&>8__](B07(DD``Q@`O -XM0;P!````ZR4/'T0``$B+!;&20`!,`>"(#`-)`=U-C60<`69F+@\?A``````` -XM08I-`(3)#X3<````ZPEFD$&*30%)_\6`^2YT"3';@/DO=6OKZT&*10$\+G4W -XM08!]`B]U.DF#Q0-(BP59DD``D$F-3"3_N@$```!)@_P!#X2,````0H!\(/XO -XM28G,=>%)B"(#`-! -XMBDP=`4C_PX3)#X1*____@/DO#X1!____28T$'$B+-6Y[(`!(C5;^2#G0=B1( -XM`?9(B35;>R``2(L]U)%``.@GF/__2(D%R)%``$&*3!T`ZZE(BP6ZD4``ZZ!) -XMB=3I&/___TF-1"3_2(L-I)%``$&`?`S^+W0-Q@0!+TR+K7C____K-TR+K7C_ -XM__])B<3K*V9F+@\?A```````2(L%<9%``$P!X(@,`TD!W4V-9!P!9F8N#Q^$ -XM``````!!BDT`A,D/A-P```#K"6:008I-`4G_Q8#Y+G0),=N`^2]U:^OK08I% -XM`3PN=3=!@'T"+W4Z28/%`TB+!1F10`"028U,)/^Z`0```$F#_`$/A(P```!" -XM@'P@_B])B6__](B06(D$``08I,'0#KJ4B+!7J0 -XM0`#KH$F)U.D8____2(L]:9!``.ALEO__28G%3(GW3(GNZ'[N_O^)PT6%_W0( -XM3(GWZ#_P_O_&A6/___\!A=MT$4R)[^@L\/[_QH5C____`>L)387M#X5+!P`` -XM2(N]2/___^@NQ?__ZQ=F9F8N#Q^$``````!(BX50____2(/`"$B+`$4Q[4B% -XMP`^$%P<``$B+>!!(B850____Z#8B__])B<=!@#\O#X51`0``13'V@+UD____ -XM`4R+I6C___^X``````^%V0,``$B+!:Z/0`!(A"(#`-)`=U-C60<`69F+@\? -XMA```````08I-`(3)#X0N`@``ZPEFD$&*30%)_\6`^2YT"3';@/DO=6OKZT&* -XM10$\+G4W08!]`B]U.DF#Q0-(BP4ICT``D$F-3"3_N@$```!)@_P!#X2,```` -XM0H!\(/XO28G,=>%)B"(#`-!BDP=`4C_PX3)#X1*____@/DO#X1!____28T$'$B+-3YX(`!(C5;^ -XM2#G0=B1(`?9(B34K>"``2(L]I(Y``.CWE/__2(D%F(Y``$&*3!T`ZZE(BP6* -XMCD``ZZ!)B=3I&/___\>%7/___P````!,BR5/CD``@+UD____`4B+G6C___]! -XMO@````!,BVV`=1M,B?],B>9(BY5P____Z&L&``!(B<-!O@$```"`O6/___\! -XM3(EM@'4?3(G_3(GF2(N5>/___^A#!@``28G%QX5<____`0```$B)WTR)[N@K -XM[/[_08G$187V=`A(B=_HZ^W^_T6%Y'4+387M#X4.!0``ZQ&#O5S___\`=`A, -XMB>_HRNW^_\>%7/___P````!,BR69C4``@+UD____`4B+G6C___]!O@````!U -XM&TR)_TR)YDB+E7#____HP04``$B)PT&^`0```("]8____P%,BVV`=1],B?], -XMB>9(BY5X____Z)D%``!)B<7'A5S___\!````2(G?3(GNZ('K_O]!B<=%A?9T -XM"$B)W^A![?[_187_#X0G!```@[U<____``^%+00``.DF_?__28U$)/](BPTB -XMC4``08!\#/XO=`W&!`$O3(NM2__](B04(C$``08I,'0#KJ4B+!?J+0`#KH$F)U.D8____2(L]Z8M` -XM`.CLD?__28G$N`$```")A5S___^`O6/___\!3(MM@`^%B@(``$B+!;Z+0`!( -XMAB(#`-)`=]-C6P=`69F+@\?A```````08H/A,D/A-T```#K"@\?`$&*3P%) -XM_\>`^2YT"3';@/DO=6OKZT&*1P$\+G4V08!_`B]U.4F#QP-(BP4YBT``D$F- -XM3?^Z`0```$F#_0$/A(T```!"@'PH_B])BN=/"]U!DF#QP+KDS'; -XML2[K&V9F9F8N#Q^$``````!,`>B(#`-!BDP?`4C_PX3)#X1*____@/DO#X1! -XM____28U$'0!(BS5-="``2(U6_D@YT'8C2`'V2(DU.G0@`$B+/;.*0`#H!I'_ -XM_TB)!:>*0`!!B@P?ZZE(BP6:BD``ZZ!)B=7I&/___TF-1?](BPV%BD``08!\ -XM#?XO=`W&!`$O3(N]>/___^LX3(N]>/___TF)Q>LL9F9F+@\?A```````2(L% -XM48I``$P!Z(@,`TD!WTV-;!T!9F8N#Q^$``````!!B@^$R0^$W0```.L*#Q\` -XM08I/`4G_QX#Y+G0),=N`^2]U:^OK08I'`3PN=39!@'\"+W4Y28/'`TB+!?F) -XM0`"028U-_[H!````28/]`0^$C0```$*`?"C^+TF)S77B28G-ZYT\+W4&28/' -XM`NN3,=NQ+NL;9F9F9BX/'X0``````$P!Z(@,`T&*3!\!2/_#A,D/A$K___^` -XM^2\/A$'___])C40=`$B+-0US(`!(C5;^2#G0=B-(`?9(B37ZD8____2(L]28E``.A, -XMC___28G%0;X!````3(GG3(GNZ%CG_O^)PX.]7/___P!T"$R)Y^@5Z?[_A=MU -XM"DV%[74]Z0?Y__]%A?8/A/[X__],B>_H]NC^_^GQ^/__2(G'2(F]:/___TB) -XMWN@/Y_[_ABU -XMZ/[_387M=1KV!0:>0`!`=#N_(0```+X@NH$`Z"CG_O_K*DB+E4C___](BX(0 -XM`0``2(NU0/___TB+CA`!``!(B8H0`0``2(F&$`$``/8%PIU``$!T&+\@NH$` -XMON.(40!(BY5X____,,#H2^3^_TB+C4#___](BXD@`0``2(N%2/___T@YP4F) -XMS`^%NNC___8%@)U``$!T#[\*````OB"Z@0#HHN;^_TB!Q)@```!;05Q!74%> -XM05]=PTB)^69F9F8N#Q^$``````"X`0```$@Y\70.2(N)$`$``#'`2#GY=>C# -XM#Q^``````%5(B>5!5T%6055!5%-028G628GW28G]2(L%NH=``$B%P'432(L] -XM+G$@`.A!C?__2(D%HH=``,8`+T&\`0```.LO9F9F9F9F+@\?A```````2(L% -XM@8=``$P!X(@,`TD!W4V-9!P!9F8N#Q^$``````!!BDT`A,D/A-P```#K"6:0 -XM08I-`4G_Q8#Y+G0),=N`^2]U:^OK08I%`3PN=3=!@'T"+W4Z28/%`TB+!2F' -XM0`"028U,)/^Z`0```$F#_`$/A(P```!"@'P@_B])B,__](B068AD``08I,'0#KJ4B+!8J&0`#KH$F)U.D8____28U$)/](BPUT -XMAD``08!\#/XO=`;&!`$OZRY)B<3K*68/'X0``````$B+!5&&0`!,`>"(#`-) -XM`=]-C60<`69F+@\?A```````08H/A,D/A,P```#K"@\?`$&*3P%)_\>`^2YT -XM"3';@/DO=5OKZT&*1P$\+G4S08!_`B]U-DF#QP-(BP7YA4``D$F-3"3_N@$` -XM``!)@_P!=']"@'P@_B])B+__](B05XA4``08H,'^NJ2(L%:X5``.NA -XM28G4Z2G___])C40D_TB+#56%0`!!@'P,_B]T!L8$`2_K+TF)Q.LJ9BX/'X0` -XM`````$B+!3&%0`!,`>"(#`-)`=Y-C60<`69F+@\?A```````08H.A,D/A,P` -XM``#K"@\?`$&*3@%)_\:`^2YT"3';@/DO=5OKZT&*1@$\+G4S08!^`B]U-DF# -XMQ@-(BP79A$``D$F-3"3_N@$```!)@_P!=']"@'P@_B])BMM(`!(BSUDA$``Z+>*__](B058 -XMA$``08H,'NNJ2(L%2X1``.NA28G4Z2G___](BSTZA$``2(/$"%M!7$%=05Y! -XM7UWI+XK__Y"0D)"0D)"0D)"0D)"0D#'VZ0G>_O]F#Q^$``````!52(GE2(/L -XM$(E]_$B-??SH;.'^_[\`R($`OH````"ZM*-1`$B)P>B%XO[_Q@5=A$```+@` -XMR($`2(/$$%W#D)"0B3U.A$``PV8/'X0``````$C'1S``````2,='*`````!( -XMQT<@`````$C'1Q@`````2,='$`````!(QT<(`````$C'!P````###Q^$```` -XM``!52(GE05932(/L$(G328G^2(EUZ$B-=>A(C57DZ%\```"#^/]U,(M5Y$B+ -XM=>A,B??HFP,```M8&(E8&(/C2H/[0'4O2(/`'+\!````OLZE40!(B<+K%4AC -XMP$B+%,4PI5$`OP$```"^J*51`##`Z/X\__](@\006T%>7<,/'T0``%5(B>5! -XM5T%64U!)B==)B?9(B?OHZ.#^_T&)!XG`2&G(P=XQ-4C!Z21KR4V)PBG*28L. -XM2"G9@_I&?SZ#^C-_?H/Z&P^/N````(/"^X/Z#@^'Y@(``/\DU;"D40"`.RH/ -XMA=8"``"`>P%$#X7,`@``N`H```#ICP(``(/Z1P^%N0(``#V-C`X`#X6N`@`` -XM2(/Y"`^%I`(``$B)W[Z4J%$`N@@```#HZ-[^_XG!N`(```"0A_O^)P;@#````Z["#PN2#^@X/ARX"``#_)-4XI%$` -XM/;#@`P`/A1P"``!(@_D'#X42`@``2(G?OKVH40"Z!P```.A6WO[_B<$QP.EM -XM____@#LE#X7N`0``@'L!1`^%Y`$``+@.````Z:P%& -XM#X7'`0``N`T```#IB@$``(`[/`^%M`$``+@&````ZW^__^`.SX/ -XMA6X!``"X!0```.F%````@#L_#X5;`0``N`0```#K=8`[0`^%2P$``#'`ZVB` -XM.R$/A3X!``"X`@```.M8@#LE#X4N`0``N`,```#K2(`[(0^%'@$``(![`40/ -XMA10!``"X#````.G7````@#LA#X4!`0``@'L!1@^%]P```+@+````Z;H```"` -XM.RH/A>0```"X`0```$B#^0$/A=4```#IU0```(`[*@^%QP```(![`48/A;T` -XM``"X"0```.F`````/3N_`P`/A:@```!(@_D'#X6>````2(G?OHRH40"Z!P`` -XM`.CBW/[_B<&X!0```.GV_?__@#M`=7N`>P%$=76X"````.L[/5SF`P!U9TB# -XM^0=U84B)W[ZUJ%$`N@<```#HI=S^_XG!N`$```#IN?W__X`[0'4^@'L!1G4X -XMN`<```!(@_D"=#+K*ST%AP,`=21(@_D'=1Y(B=^^K:A1`+H'````Z&+<_O^) -XMP;@$````Z7;]__^X_____TB#Q`A;05Y!7UW#9@\?1```54B)Y4%7059!54%4 -XM4U")T$F)]$F)_[^(R($`3(G^3(GBB<'H^-G^_T&)QK^(R($`1(GVZ+C:_O]) -XMB<5-A>UU,$R)9=!(C570OX"Q80!,B?[H6]G^_TF)Q4''11@"````OXC(@0!$ -XMB?9,B>KH\-K^_T&+71CVPQ`/A9````"#/;!_0```=`R)V(/@!H/X!'4'ZWOV -XMPP)T=DF-?1SH4-G^_TF)QDV%]G0W]L,"=#=,B??H&][^_TF)QTF-=P%,B>_H -XM3/3^_TR)[TR)_DR)\NB>\_[_08M=&(/C_4&)71CK)X/+$.LE28M%`$F)10A, -XMB??HW-W^_TR)[TB)QDR)\NAN\_[_08M=&(/+&$&)71A,B>A(@\0(6T%<05U! -XM7D%?7<.054B)Y4%64TB#[!!(B?M(B77H2(UUZ$B-5>3HZ,C8_O]!B<:_B,B!`$2)]NB(V?[_2(G#2(7;=%6+0QB# -XM/;I^0```=`2H"'5%J`1U0;^(R($`1(GVZ`_<_O_V0Q@"=0A(BSOH`=[^_TB) -XMW^CYW?[_ZQQ(8\!(BQ3%,*51`+\!````OO.E40`PP.C;-___2(/$$%M!7EW# -XM9I!%,<#K"V9F+@\?A```````54B)Y4%7059!5%-(@^P018G'08G,28G62(G[ -XM2(EUV$B-==A(C574Z*3Z__^#^/\/A:$```"+5=1(BW782(G?Z-S]__](B532(/L&$B)^TB)=?!(C77P2(U5[.@C^?__@_C_ -XM=2^+5>Q(BW7P2(G?Z%_\__](B<.+0QAFJ<`!=&.H0'0P2(U3'+\!````OGRG -XM40#K/TACP$B+%,4PI5$`OP$```"^&:91`##`Z,,U__\QP.M!J`)T1$B-4QR_ -XM`0```+ZFIU$`9F9F9BX/'X0``````##`Z)DU__]F#Q^$```````QP/9#&`)U -XM"DB+0PC&``!(BP-(@\086UW#J(!TXTB+0PC&``!(BP.`.`!UU$B-4QR_`0`` -XM`+[+IU$`Z[0/'T``54B)Y5-(@^P82(G[2(EU\$B-=?!(C57LZ$/X__^#^/]U -XM/(M5[$B+=?!(B=_H?_O__TB)PXM+&/;!0'082(U3'+\!````OGRG40`PP.C_ -XM-/__BTL8N`$```#VP0)T`C'`2(/$&%M=PV8/'X0``````%5(B>5!5T%60513 -XM2(/L,$F)]TF)_DF+'DB)7W4@0;B074$`ZR],B67(2(/#`DB)7=#'1=@`````Z98```"_`0```+[_ -XMIE$`,,#H<33__T&X8%U!`$B#PP)(C77(2(G?3(GZ,5!5E-(@^P028G^2(U%[$B)]TB)UHG*3(G!28G`Z$L```!( -XMB<,QP+F`R($`2#G+="Y(B=_HM-C^_TR)]TB)QDB)VNA&[O[_N`$```"#?>P` -XM=`U(B=_H8]G^_[@!````2(/$$%M!7EW##Q]$``!52(GE05=!5D%505132(/L -XM:$R)1:A(B4V0B56D28GW28G\0<<``````$R)9=!-C70D`4$/OD0D`8/X*'0% -XM@_A[=1A!N&!=00"#^"AT/(/X>W4@0;B074$`ZR],B76X28U,)`)(B4W`QT7( -XM`````#';ZT>_`0```+[_IE$`,,#HS3+__T&X8%U!`$F-?"0"2(UUN#';3(GZ -XM,@?1`'P -XM@^#^1(GQ*<&#^0$/A6$!``#H`0``00]/QTC_PSG#?,U-C7PD'+\@NH$`OAZ/40!,B?HP -XMP.C$TO[_OV&G40!,B?XPP.BU+O__08M$)!A,BWV(@\@!08E$)!A(8P65=T`` -XM2#U=`0``?PA,B23%\,B!`/_`B05]=T``3(GO3(G^BU6DZ$],B?J+3:1,BT6HZ#,-``!)B<5-A>V+3:0/A8<` -XM``"X@,B!`(7)0;W(R($`3`]%Z$&#_O]T<$V%_W0Q08/^!WP/08U&^<'H'T6- -XM=`;Y0='^08/^!G4Q28M7.$F+=T"_1:91`##`Z,DM___K.DB+1:C'``$```!( -XMBW702(G?Z#&E__])B<7K'TF+3SA)BU=`26/&2(LTQ3"E40"_CZ91`##`Z+TL -XM__](C7VXZ*0H``!(BT702"G82(M-D$B)`4R)Z$B#Q&A;05Q!74%>05]=PZB` -XM#X3<_?__28M$)`C&``!)BP0D@#@`#X7'_?__28U4)!R_`0```+[+IU$`Z:/] -XM__\/'P!52(GE05=!5D%505132(/L.(G3B5VD2(EUJ$F)_DB-?<"^``$``.AU -XMZO[_Q@77=4```(7;#X0_`0``3(U]P.L@2(U(`4B)3____TR)YTB+=:B+5:1(C4VX3(U%M.@$^___ -XM28G%N(#(@0!).<5T"KC(R($`23G%=4R#/>:)0```=3=(BUVXB@4#=4``A,!U -XM%[\!````OL6F40!(B=I,B>$PP.@/+O__20'=$```4V)YNDM____3`-E -XMN$V)YNDA____2(M=N$R)[^@5T_[_3(G_2(G&3(GJZ*?H_O])`=R#?;0`38GF -XM#X3W_O__3(GOZ+_3_O]-B>;IY_[__TR-;9F9F9F8N#Q^$``````!,B?/K#F9F+@\?A``` -XM````2/_#B@.$P'0$/"1U\TB)WDPI]DR)[TR)\N@BZ/[_@#L`#X30````@'L! -XM)'4?2(M%R$B+3=!(*<%(@_D"?9),B>_HFN?^_TB+1X@,B!`$DYQW0%33GG=4F#/:6(0```=31(BT7(2(M- -XMT$@IP4B#^0%_#$R)[^A*Y_[_2(M%R(H+2/_#2(U0`4B)5#X0)____3(G_Z('2_O])B=[I^?[__TB+1;^_TB+!?IR0`#&``!(BSWH -XM_B,B!`$2)_NCIS/[_2(G#2(7;=2],B6W02(U5T+^`L6$` -XM3(GVZ(S+_O](B!(@\086T%< -XM05U!7D%?7<-FD$B+1R!(@\`5!5T%6055!5%-(@^Q828G/28GV2(E]J$B+ -XM6B!(C4,<2(E%D/9#&`)T.4R)_^B[S_[_38GT28G&28UV`4B)W^CIY?[_2(G? -XM3(GV38GF3(GZ3(E]H.@TY?[_@&,8_4B)79CK2DB+`TB)0PA,B?_H>\_^_TB) -XMWTB)79A(B<9,B?I,B7V@Z`7E_O_K(P\?`$TIYDB+?:A,B?9,B>+H[N3^_TR+ -XM==!F+@\?A```````38GTZPYF9BX/'X0``````$G_Q$&*!"2$P'0$/"1U\4R) -XMYDPI]DB+?:A,B?+HK^3^_T&`/"0`#X1;`0``38UT)`)%#[YL)`%!@_U[=`9! -XM@/TH=1BX8%U!`$&#_2AT6T&#_7MU/[B074$`ZTY!@/TD=!Q(BT601#HH=1-( -XMBT68@'@=`'4)2(M=H.GJ````2(M]J+X"````3(GBZ$+D_O_I7?___[\!```` -XMOO^F40`PP.A<*?__N&!=00!,B??_T$R)]DF)QDR)==!!BAZ`^R0/A`S___]- -XMB?=)*?=(BWV03(GZZ,K+_O^%P`^%\O[__TB+19A"@'PX'``/A>+^__^`^SI( -XMBUV@=6U(BT682HU$.!S'105]=Z;_B_O]F9F9F9F8N#Q^$``````!52(GE05=!5E-(@^P8 -XMOXC(@0"^"@```+J`L6$`Z`_+_O](QT78`````$B-==B_2IQ1`.BYR_[_3(M] -XMV+^(R($`ODJ<40!,B?J)P>@1R/[_08G&OXC(@0!$B?;HT"_@+%A`+Y*G%$`Z'+'_O](B05]=PV8N#Q^$ -XM``````!52(GE05932(/L$+_0J%$`Z&O'_O](C77LOXC(@0#H+7<,/'P!52(GE05=!5D%505132(/L*$F)_DB-?;B^``$``.A^ -XMX?[_2(UUU+^(R($`Z)#&_O](B<-(A=L/A"=(B<9,B>KHC.#^_TB+1?HP-_^_TB+1*#X#Y?'\0@/DZ=_$/MLE(#Z/(<^CK!8#Y?77A2(GXPV9F9F8N#Q^$```` -XM``!52(GE05=!5E-028GV2(G[]D,8`G0T3(GWZ#+)_O])B<=)C705]=PTB+0PA(BTL02"G!2(/Y -XM`7\,2(G?Z"W>_O](BT,(2(U(`4B)2PC&`"!,B??HULC^_TB)WTB)QDR)\DB# -XMQ`A;05Y!7UWI7M[^_Y"0D)"0D)"0D)"0D)"02,<%S7=``+"Q80!(QP7*=T`` -XMV+%A`$C'!>=W0```LF$`2,<%7'=``"BR80!(QP7!=T``4+)A`$C'!/___XF-9/___TB)E5C___](B;5P____ -XM28G_28L!N2D```"#?1`H2(E%H+I]````#T31B56,0;X!````3(UEP.L*13'V -XM2(M%H$V)[P^^"#M-C`^$@@(``(3)#X1Z`@``2/_`2(E%H/8%P7U```)T%@^^ -XM,+_GJ%$`3(GZ,,#H,,+^_TB+1:!(#[X`2(L$Q>#3@0!(A^)WDB-5'_59B)PTB+1;!$B#!-B?Y,B??H0)+__TB)1:A(AT```@^$Z?W__[\/J5$`3(GN -XM,,#H2L#^_^G5_?__2(MUH+_]J%$`,,#HA1W__TB+1:!(_\!F9F9F9BX/'X0` -XM`````$B)1:`/O@A(_\`[38QT!(3)=>U(_\A-A?]T&$B+C7C___^#.0!T#$R) -XM_^@1QO[_2(M%H$B+C7C____'`0````"*"$&_@,B!`(3)=`E(_\!(B46@ZQ"_ -XM'ZE1`##`Z`\=__](BT6@2(N-4/___TB)`4R)^$B!Q(@```!;05Q!74%>05]= -XMPV9F9BX/'X0``````%5(B>5!5T%6055!5%-(@^PX2(G[2(U]P#'VZ`';_O]( -XMB5VP3(UUL$R)]^B1D/__2(E%J$B%P'1+,=M,C7VH3(UEP&9F9F9F+@\?A``` -XM````2(M%L$2**,8``$R)_XG>3(GB,1T*$B+ -XM0PA(BTL02"G!2(/Y`7\,2(G?Z#79_O](BT,(2(U(`4B)2PC&`"!)BQ9)*==( -XMB=],B?[H==G^_^M!187D=!1(B=^^`@```+H_J5$`Z%S9_O_K*$B+0PA(BTL0 -XM2"G!2(/Y`7\,2(G?Z.'8_O](BT,(2(U(`4B)2PC&`"ZX`0```%M!7$%>05]= -XMPP\?0`!52(GE05=!5E-(@^PX2(G[2(U]T#'VZ*79_O](B5W`3(UUP$R)]^@U -XMC___2(E%N$B%P`^$DP```+$!3(U]T&:02(M%P(H8Q@``]L$!=2A(BT782(M- -XMX$@IP4B#^0%_#$R)_^A9V/[_2(M%V$B-2`%(B4W8Q@`@2(M]N$B+=<"Z+P`` -XM`.@HE/__2(MUP$B%P'4,2(M5N$@IUDR)_^L,2/_`2"G&3(G_2(G"Z'+8_O]( -XMBT7`B!A,B??HI([__TB)1;@PR4B%P`^%=?___TB+1=C&``!(BT702(/$.%M! -XM7D%?7<-F9F9F9F8N#Q^$``````!52(GE05932(G328G^A?9T*$B+0PA(BTL0 -XM2"G!2(/Y`7\,2(G?Z*;7_O](BT,(2(U(`4B)2PC&`"!)BSY)BW8(NB\```#H -XM=I/__TF+=@A(A5!5T%6055!5%-(@^Q(B],B6V0 -XMZQ$/'X``````2(U1`4B)5__1:3K#4V)[_]- -XMI'@NZP--B>](BTW(2(M5T$@IRDB#^@$/CPO___],B??HH]7^_T&*!TB+3 -XMZ'F0__])B48(28D&22L?28E>$$B+1.__](A534$B)^TB+.^C_O_[_2(M[&.CVO_[_2(G?2(/$ -XM"%M=Z>B__O\/'X0``````$B+%S'`@'H!:'4<#[YR`CG.=`@QP$"`_CIU#$B# -XMP@)(B1>XX-N!`,,/'X0``````%5(B>5!5E-(@^P02(G[2(UUZ.B)U?[_28G& -XM2(M]Z$B%_W0*2(G>,,#HLQ;__TR)\$B#Q!!;05Y=PP\?@`````!(QP55XX-N!`,-F#Q]$``!52(GE -XM05932(G[Z&&^_O])B<9)C7X!Z,5D__]-A?9T,TR)\4B)PF8N#Q^$``````!( -XM#[XS2(7V>`Q(BSW044``0(IT=P)`B#)(_\)(_\-(_\EUW4+&!#``6T%>7<,/ -XM'P!52(GE05932(G[Z`&^_O])B<9)C7X!Z&5D__]-A?9T,TR)\4B)PF8N#Q^$ -XM``````!(#[XS2(7V>`Q(BSV(3T``0(IT=P)`B#)(_\)(_\-(_\EUW4+&!#`` -XM6T%>7<,/'P!52(GE05932(G328G^A?9T*$B+0PA(BTL02"G!2(/Y`7\,2(G? -XMZ,;2_O](BT,(2(U(`4B)2PC&`"!)BSY)BW8(NBX```#HEH[__TB%P'0.28L6 -XM2"G02(G?2(G&ZPU)BQ9)BW8(2"G62(G?Z.'2_O^X`0```%M!7EW##Q^````` -XM`%5(B>5!5T%605132(G308GT28G^28L^28MV"+HN````Z#N.__])B<=-A?]T -XM2$6%Y'0H2(M#"$B+2Q!(*<%(@_D!?PQ(B=_H)=+^_TB+0PA(C4@!2(E+",8` -XM($G_QTF+=@A,*?Y(B=],B?KH8=+^_T&\`0```$2)X%M!7$%>05]=PV9F9F9F -XM9BX/'X0``````%5(B>5!5T%64U!!B5!5T%6055!5%-( -XM@>R8````2(G328G^2(MS"$B-O6#___^Z`0```.@QN?[_08G'187_=%M,C;5@ -XM____1(G_3(GV,=(QR>A#NO[_3&/@3(GGZ&AA__](B<-$B?],B?9(B=I,B>'H -XM)+K^_[^SBE$`OD*I40!(B=HPP.C0$O__2(G?Z)B[_O^[@,B!`.E>!```BX5H -XM_____\")18!(BTL82(E-D(M+*(E-F(7`?A.#^`M\&L=%@`H```"X"@```.L, -XMQT6``0```+@!````2&/X2,'G!.CF8/__2(E%B$B-?;@Q]NBGT/[_2(U]J$R) -XM=:CH.H;__TB)1:!(A<`/A,T#``!%,>WK6`\?A```````187D2(N=6/___P^% -XMOP```$B+1T/A3C___](BYU8____2(F=6/___TB-?;A(B=KH_L[^_T&\`0```$R+?9#I -XM?P```$2)]T2)K53___],C:U@____3(GN,=(QR>ARN/[_3&/X3(G_Z)=?__]( -XMB<-$B?=,B>Y$BZU4____2(G:3(GYZ$RX_O^_LXI1`+Z*J5$`2(G:,,#H^!#_ -XM_TB)W^C`N?[_2(N=6/___^GC`0``#Q]``$G_QV9F9F8N#Q^$``````!!B@>$ -XMP`^$JP$``#PF=3'&1=4FQD76`#'`#Q^``````#M%@'YNOUBI40!F#Q]$``!( -XMC775,,#HE1#__TG_Q^O`/%P/A>8```!!BD1U*4B+1`$2(M-B$R+-`%(BUP!"$F#_O]U$$B#^_]U"K]LJ5$` -XMZ7/___]$*?.%VP^.*/___T6%[70N187D=2E(BT7`2(M-R$@IP4B#^0%_#4B- -XM?;CH),W^_TB+14$/MDUT+D6%Y'4I2(M%P$B+3P/E<%$#[;I2(7`#X60 -XM_/__2(M%P,8``$B+7;A(C;U@____Z)FV_O](BWV(Z#"W_O](B=A(@<28```` -XM6T%<05U!7D%?7<-F9BX/'X0``````%5(B>5!5T%6055!5%-(@^PH18G'B4W$ -XM08G428GU28G^3(EUR+\P````Z()<__](B`/A!`!``!$.?@/A`_H9\G^_XH+2(M%R$B-4`%(B57(B`CK94V%]G06/"9U -XM$DF+5@A)BW803(GOZ)S)_O_K2DB+3](B=Y(BU6@BTVL3(U%L.C)VO__2(M%L$B- -XM7!C_#[Y#`4C_PX7`=`Y$.>!T"40Y^`^%!____TB+1%(BU60=`5$.?EU"$C_PTB)&NL82(D:2(M-F$C'`0`` -XM``!(B5!5T%6055!5%-( -XM@^PH2(G+28G608GU2(E]R$R+/TB+1PA,*?A(B4701(MC*$2)X(/@!H/X!@^$ -XM*P$``$'VQ`@/A(X```!(BW,(2(M3$$B)5,```!(BW,@2(7V#X14`P``187M="Q)BT8( -XM28M.$$@IP4B#^0%_#$R)]^AVQ_[_28M&"$B-2`%)B4X(Q@`@2(MS($B+4QA, -XMB??HM\?^_T2+8RBX`0```.D,`P``0?;$$`^$[@```$B+4Q!(BT7028G$22G4 -XM2"G02(E%P'AR30'\2(MS"$R)Y^A)K_[_A9F9F9F8N#Q^$``````"#R@2)4RA(B4W09@\? -XM1```A<`/A<$```!(BW,(3(G_Z/RM_O])B<2X`0```$V%Y'3?187M=$`QP$@K -XM0R!,B>%,*?E(.<%T,DF+1@A)BTX02"G!2(/Y`7\,3(GWZ-#%_O])BT8(2(U( -XM`4F)3@C&`"!(BT7(3(LX13'M3(GF3"G^3(GW3(GZZ`;&_O](BU,82(MS($R) -XM]^CVQ?[_3(G@2(M5R$@K`DB+2Q!-C3P,3(DZ2`'(2(MUT$B)\4@IP8M3*$@Y -XMQG0+,<#VP@$/A3'___^X`0```.DG____2(-]T`!T0T6%[70O28M&"$F+3A!( -XM*<%(@_D!?PQ,B??H,L7^_TF+1@A(C4@!28E.",8`($B+1T/E<$(P0^VP>F(_O__ -XM2(MS($B+1=!(C00&2#M%P'0]N`$```!%A>UT-DF+1@A)BTX02"G!2(/Y`7\, -XM3(GWZ+/$_O])BT8(2(U(`4F)3@C&`"!(BW,@N`$```#K`T2)Z$B+4QA,B?=! -XMB5!5E-)B?Y)BSY(B?KK'F9F9F9F+@\?A```````2(G"9F9F9BX/ -XM'X0``````$B)T$B-6`$/OE`!@_HZ=#NJ&I40#H -XM^7[__TF)'EM!7EW#D%5(B>5!5T%6055!5%-028G,2(G308GW28G^38LN28M& -XM"$B)1=!,B>B_>O__A05]=PP\?0`#IBZ[^_V9F -XM+@\?A```````54B)Y4%7059!54%44U!)B](BW703(GB2(G!Z`]Z__^%P'1%187_="A(BT,(2(M+ -XM$$@IP4B#^0%_#$B)W^B-PO[_2(M#"$B-2`%(B4L(Q@`@28L628MV"$@IUDB) -XMW^C,PO[_0;\!````1(GX2(/$"%M!7$%=05Y!7UW#D)"0D%5(B>5!5T%6055! -XM5%-(@^Q(38G%B4VD28G728GT28G^0?_52(G#@#LD#X6@````3(EMF$R)?;!, -XMB66H3(UEN$R)Y[X``0``Z`3#_O](B=Y,*?9,B>=,B?+H4\+^_X`[)'5*3(U] -XMN$2+;:1,BW689I!,B?](B=Y(BU6P1(GI3(U%T.B:T___3(MET$D!W$R)YT'_ -XMUDB)PTB)WDPIYDR)_TR)XN@)PO[_@#LD=,1(BT7`Q@``2(M%N$B+3:A(B0%( -XMBT7`2(E!",=!$`$```#K$DV)-"1)B5PD"$''1"00`````$B)V$B#Q$A;05Q! -XM74%>05]=PV9F9F8N#Q^$``````"#?Q``=`A(BS_ITJS^_\.054B)Y4%64TF) -XM]DB)^^B^!```2(7`=`0QP.L02(G?3(GVZ)H```"X`0```%M!7EW#54B)Y4%7 -XM05934$F)UTB)\TF)_DF+!DB%VW0Z2(7`=%Z_&````.@64O__3(EX$$B)&$B+ -XM2PA(B4@(2(E#"$B+2`A(A!!(QT`(`````$C'``````!)B48(28D&2(/$"%M!7D%?7<,/'X`` -XM````54B)Y4%64TF)]DB)^[\8````Z)E1__],B7`02(M+"$B)"$C'0`@````` -XM2(M+"$B%R70&2(E!".L#2(D#2(E#"%M!7EW#D)"0D)"0D)"0D)!52(GE05=! -XM5E-028G^2(L>2(7;=$9-BWX(#Q^``````+\8````Z#91__](BTL02(E($$V% -XM_W4%28D&ZP1)B4<(3(DX2(M;"$B%VTF)QW7128E&"$C'0`@`````2(/$"%M! -XM7D%?7<.0D)"0D)"0D)"02(L&2(7`="1(BT\(2(D(2(L&2(M/"$B%R70&2(E! -XM".L#2(D'2(M&"$B)1PC#D)"054B)Y5-02(GX2(LX,=M(A?]T)DB+3PA(BU\0 -XM2(D(2(7)=`E(QP$`````ZPA(QT`(`````.CGJO[_2(G82(/$"%M=PY"0D)"0 -XMD)"0D)"0D)!52(GE05=!5E-028GV2(L?387V="A(A=MT2F8/'T0``$R+>PA( -XMBWL00?_62(G?Z)VJ_O]-A?],B?MUY>LG2(7;=")F9F9F9BX/'X0``````$R+ -XMM,B?A( -XM@\0(6T%>05]=PY"0D)"0D)"0D)"0D)!52(GE05=!5E-028G628GW2(G[ZP]F -XM9BX/'X0``````$B+6P@QP$B%VW012(M[$$R)]D'_UX7`=>=(B=A(@\0(6T%> -XM05]=PY"0D)"0D)"0D%5(B>5!5T%64U!)B=9)B?=(B?OK&69F+@\?A``````` -XM2(M[$$R)]D'_UTB+6PA(A=MU[4B#Q`A;05Y!7UW#9I!52(GE059328GV2(L? -XMZPR02(M[$$'_UDB+6PA(A=MU\%M!7EW#9F8N#Q^$``````!52(GE05=!5E-0 -XM28G628GW2(G[9F9F9BX/'X0``````$B+&TB%VW012(G?3(GV0?_72(/#"(7` -XM=>=(@\0(6T%>05]=PY"0D)"0D)"0D)"0D%5(B>5!5T%64U!)B=9(B?-)B?]) -XMBP=(A=MT,$B%P'14OQ@```#H1D[__TR)L$2(E#"$B)`UM!7EW#D)"0D)"0 -XMD)"0D)"0D)!(BP\QP$B%R70-2(UY"$@Y<1!(B'1E;F1E9"!F;W)M870@96YT'1E;F1E9"!F;W)M870@96YTF5R;R!S=&%T -XM=7,`8"5S)R!I&%M:6YI;F<@)7,N+BX`=7!D871E('1I;64Z("5S"@`* -XM"E-T;W`@:6X@)7,@*&QI;F4@)6QU(&]F("5S*2X*`"Y#55)$25(`"@I3=&]P -XM(&EN("5S+@H`1W)A<&@@8WEC;&5S('1H2!N97-T -XM960@:68G0!396%R8VAI;F<@9F]R("5S+BXN -XM`&AE6EN9R!S=6)D:7)E8W1O2P@XQ1``````"#C%$````` -XM`(F,40``````CHQ1`````````````````"5S("5S*&EG;F]R960I"@`E'!A;F1S('1O(&5M<'1Y('-T -XM5]L:6YE -XM+A```````"'N$`````` -XM`%2Y0```````EKA```````!4N4```````%2Y0```````I;A```````"TN$`` -XM`````%2Y0```````P[A```````!"4%-I:VYQ5T@6RUJ(&UA>%]J;V)S72!;+6T@9&ER96-T;W)Y72!;+58@=F%R -XM:6%B;&5="@D@("`@6TY!344]=F%L=65=(%MT87)G970@+BXN70H`)7,M+3TE -XM9"``455%54E.1R``0VAI;&0@)7,@9&ES8V]V97)E9"!G6-L97,@ -XM=&AR;W5G:"`E65T+@H`)7,Z(&YO -XM="!Q=65U:6YG("@E9"!U;FUA9&4@8VAI;&1R96XI"@`EG4I"@`````````` -XM`````````$#10```````4-)```````#5U4```````+320```````!M-````` -XM``!STT```````*[30```````\-U```````!)WD```````"S>0```````2=Y` -XM```````XWD```````$G>0```````1-Y```````"3FU$```````8````````` -XMESL``,0````@`````````)F;40``````"`````````!]E0,`Q0```$`````` -XM````H9M1```````*`````````$?P.0!&``````````````"KFU$```````L` -XM````````%8#F`,@`````$````````+:;40``````!@`````````:.0``R0`` -XM```$````````O)M1```````&`````````,LX``!*``````````````#"FU$` -XM``````8`````````!3@``,L`````"````````,B;40``````!@`````````Z -XM.```3````````````````Y-1```````&`````````#DX``#-``````(````` -XM```PDU$```````L`````````7[3@`$X``````````````,Z;40``````"``` -XM``````!?A`,`3@``````````````UIM1```````)`````````#H>#@#/```` -XM`"````````#?FU$```````T`````````F`\9#E```````````````.R;40`` -XM````#`````````"8#X8#4```````````````^)M1```````&`````````*PY -XM``!1``````````````#^FU$```````H`````````:,\Y`-(````(```````` -XM``B<40``````!P````````"&Y@``4P``````````````#YQ1```````*```` -XM`````)@//P!4```````````````9G%$```````8`````````"#\``%4````` -XM`````````!^<40``````!P````````"1_P``U@````!`````````)IQ1```` -XM```*`````````+=@/@#7````@``````````PG%$```````L`````````36?^ -XM`,T``````@```````#N<40``````"``````````\\P,`V0`````!```````` -XM0YQ1```````-`````````"Q0S@]:``````````````!0G%$```````H````` -XM````A]@^`%L``````````````%J<40``````!0````````#9#P``W````!`` -XM````````7YQ1```````&`````````*`^``#=``````````````!EG%$````` -XM``<`````````!.P``.`````````"`````&R<40``````"P````````!-2^\` -XMX0````````0`````56YA"!O9B!S<&5C:6%L('1A"!F;W(@+G!O:7-O;CH@)7,`+FEN8VQU9&4@9FEL96YA -XM;64@;75S="!B92!D96QI;6ET960@8GD@)R(G(&]R("<\)P!5;F-L;W-E9"`N -XM:6YC;'5D92!F:6QE;F%M92X@)R5C)R!E>'!E8W1E9`!5;F5X<&5C=&5D(&5N -XM9"!O9B!F:6QE(&EN(&9O"!O;B`E6EN9R`E'!A;F1I;F<@(B5S(BXN+@!S=69F:7@@:7,@(B5S(BXN+@!% -XM>'!A;F1I;F<@(B5S(BXN+@!0&5S.@``````861D:6YG('-U9F9I>"!R=6QE````````````````````",J*BH@5')A;G-F -XM;W)M871I;VYS.@```,HA00``````Q2%!``````#+(4$``````-$A00`````` -XMUR%!``````#=(4$``````)`C00``````A"-!``````"N)$$``````+@D00`` -XM````PB1!``````#,)$$``````/`D00``````6R-!``````#6)$$``````-TD -XM00``````Y"1!``````#K)$$``````"Y"14=)3@`N14Y$`"Y)3E1%4E)54%0` -XM+D1%1D%53%0`+D]05$E/3D%,(``N55-%(``N15A%0R``+DE'3D]212``+E!2 -XM14-)3U53(``N4TE,14Y4(``N34%+12``+DI/24X@`"Y)3E9)4TE"3$4@`"Y. -XM3U1-04E.(``N3$E"(``N345-0D52(``N05)#2%8@`'5N:VYO=VX`97)R;W(@ -XM=VAE;B!M861E`&]T:&5R('-T871U&ES -XM=&5N="`H;6%Y8F4I.B`E6EN9R!T;R!P -XM;VES;VX@9'EN86UI8R!V87)I86)L92`D)7,`4&]I2!S970*`%1R>6EN9R!T;R!D96QE=&4@9'EN86UI8R!V -XM87)I86)L92`D)7,`5')Y:6YG('1O(&=E="!V86QU92!O9B!D>6YA;6EC('9A -XM6YA;6EC('9A0H`5')Y:6YG('1O("5S(&1Y;F%M -XM:6,@=F%R:6%B;&4@)"5S`&%P<&5N9"!T;P!4$$`````````````````<'E!``````!@>4$` -XM````````````````,'A!`````````````````,!X00``````8'E!```````` -XM`````````/!S00````````````````!`=$$``````.!G00`````````````` -XM``#`:T$``````-!K00````````````````#@9T$`````````````````@&I! -XM``````#P:D$`````````````````\"=``````````````````(!H00`````` -XM``````````"09$$```````````````````````````"`:$$````````````` -XM````X&)!````````````````````````````@&A!`````````````````/!I -XM00```````````````````````````(!H00````````````````!P:4$````` -XM``````````````````````"`:$$``````!!I00`````````````````````` -XM````````````````@&A!``````"P:$$````````````````````````````` -XM`````````!!H00``````0&A!````````````````````````````"B`))V`B -XM.R8\/B@I?"H_>WU;75PD(2->?@`````````!``````````$`````````!``` -XM```````0`T````````4`````````:!)````````&`````````)@&0``````` -XM"@````````#J`P````````L`````````&``````````5```````````````` -XM`````P````````#XM'$```````(`````````P`D````````4``````````<` -XM````````%P````````"H%T````````<`````````6!9````````(```````` -XM`%`!````````"0`````````8```````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````````````````````````````L+-A```` -XM````````````````````````EB%```````"F(4```````+8A0```````QB%` -XM``````#6(4```````.8A0```````]B%````````&(D```````!8B0``````` -XM)B)````````V(D```````$8B0```````5B)```````!F(D```````'8B0``` -XM````AB)```````"6(D```````*8B0```````MB)```````#&(D```````-8B -XM0```````YB)```````#V(D````````8C0```````%B-````````F(T`````` -XM`#8C0```````1B-```````!6(T```````&8C0```````=B-```````"&(T`` -XM`````)8C0```````IB-```````"V(T```````,8C0```````UB-```````#F -XM(T```````/8C0```````!B1````````6)$```````"8D0```````-B1````` -XM``!&)$```````%8D0```````9B1```````!V)$```````(8D0```````EB1` -XM``````"F)$```````+8D0```````QB1```````#6)$```````.8D0``````` -XM]B1````````&)4```````!8E0```````)B5````````V)4```````$8E0``` -XM````5B5```````!F)4```````'8E0```````AB5```````"6)4```````*8E -XM0```````MB5```````#&)4```````-8E0```````YB5```````#V)4`````` -XM``8F0```````%B9````````F)D```````#8F0```````1B9```````!6)D`` -XM`````&8F0```````=B9```````"&)D```````)8F0```````IB9```````"V -XM)D```````,8F0```````UB9```````#F)D```````/8F0```````!B=````` -XM```6)T```````"8G0```````-B=```````!&)T```````%8G0```````9B=` -XM``````!V)T```````(8G0```````EB=```````"F)T```````+8G0``````` -XMQB=```````#6)T```````.8G0```````]B=````````&*$`````````````` -XM``````````````````````````````````````````````#__________P`` -XM```````````````````````````````N6YS='(`+G)E;&$N9'EN`"YR96QA+G!L=``N:6YI=``N=&5X=``N9FEN -XM:0`N#D````````:```` -XM"`$```@`````````&``````````)`````P````````````````````````"P -XM^0$``````*4>```````````````````!```````````````````````````` -XM``````````````````````````````,``0#@`D`````````````````````` -XM``,``@#T`D````````````````````````,``P`0`T`````````````````` -XM``````,`!`"8!D````````````````````````,`!0!H$D`````````````` -XM``````````,`!@!8%D````````````````````````,`!P"H%T`````````` -XM``````````````,`"`!P(4````````````````````````,`"0"`(4`````` -XM``````````````````,`"@`0*$````````````````````````,`"P#0@$$` -XM``````````````````````,`#`#@@%$```````````````````````,`#0`` -XML&$```````````````````````,`#@"LLV$```````````````````````,` -XM#P"PLV$```````````````````````,`$`#PM&$````````````````````` -XM``,`$0#XM'$```````````````````````,`$@#XM'$````````````````` -XM``````,`$P!XN'$```````````````````````,`%`"(N'$````````````` -XM``````````,`%0"0N'$```````````````````````,`%@"0N($````````` -XM``````````````,`%P````````````````````````````,`&``````````` -XM``````````````````,`&0````````````````````````````,`&@`````` -XM`````````````````0````0`\?\`````````````````````'@````(`"@"` -XM.D```````-(!````````+`````$`#0`PL&$``````"@`````````-@````$` -XM%@`PNX$``````$``````````/P````$`%@!PNX$``````"``````````40`` -XM``$`#0`(L&$``````"@`````````7@````0`\?\````````````````````` -XM>@````0`\?\`````````````````````FP````0`\?\````````````````` -XM````N@````(`"@#`0$```````!`$````````Q0````0`\?\````````````` -XM````````X@````(`"@#`6$```````,X`````````[0````(`"@#P4D`````` -XM``\`````````^P````(`"@!P4T```````$``````````"`$```(`"@``4T`` -XM`````&8`````````$P$```(`"@"P4T```````"P`````````(`$```(`"@`0 -XM3$```````$L`````````)@$```(`"@"064```````$P`````````+`$```(` -XM"@#@4T```````-0$````````00$```(`"@#@64```````&\`````````1P$` -XM``(`"@!@3$```````*P%````````40$```$`%@!XOH$```````@````````` -XM70$```$`%@"(OH$```````@`````````9@$```$`%@"`OH$```````0````` -XM````<0$```$`#0!D```````"$"````````UP(` -XM``$`%@`@OX$```````$`````````]`(```0`\?\````````````````````` -XM$@,```0`\?\`````````````````````+@,```(`"@"0AT```````-$````` -XM````-@,```0`\?\`````````````````````4P,```0`\?\````````````` -XM````````;P,```(`"@#`ED````````4`````````>0,```(`"@#@GT`````` -XM`/H`````````A@,```(`"@!@C$```````'<&````````CP,```(`"@"PBT`` -XM`````)T`````````H0,```$`%@!HP($```````0`````````J@,```$`%@"8 -XMP($```````@`````````M@,```(`"@#0FD```````,8`````````PP,```$` -XM%@!@P($```````0`````````R@,```$`%@`XP($``````!``````````U0,` -XM``$`%@!XP($```````$`````````Y0,```(`"@!0BD```````%L!```````` -XM_`,```(`"@"PE$````````T"````````#P0```(`"@"@FT```````$`$```` -XM````(00```$`%@!(P($``````!``````````*@0```$`#0#@L&$```````0` -XM````````-00```$`%@!PP($```````@`````````/@0```$`%@"@P($````` -XM``@`````````2`0```$`%@!8P($```````0`````````4`0```$`%@!P@```(`"@`@)4$``````!,`````````B0@```(`"@#@(D$` -XM`````"$"`````````08```$`%@"0QX$``````$``````````EP@```0`\?\` -XM````````````````````N0@```$`%@#XQX$```````@`````````P`@```$` -XM#0!XL6$```````@`````````R`@```$`%@#0QX$```````@`````````SP@` -XM``$`#0!0L6$``````"@`````````V@@```$`%@#HQX$```````@````````` -XMX@@```$`%@#PQX$```````$`````````"PD```$`%@#8QX$```````@````` -XM````$@D```$`%@#@QX$```````@`````````'0D```(`"@`@0$$``````+$# -XM````````+@D```0`\?\`````````````````````4`D```$`%@``R($````` -XM`(``````````8PD```0`\?\`````````````````````?PD```$`%@#)R($` -XM``````$`````````F0D```$`%@#PR($``````/`*````````I`D```$`%@"$ -XMR($```````0`````````L@D```(`"@``14$``````$H#````````OPD```$` -XM%@#HR($```````0`````````S0D```(`"@!02$$``````!\!````````W0D` -XM``(`"@"074$``````#,`````````Y@D```(`"@!@74$``````"8````````` -XM\@D```$`%@"(R($``````$```````````PH```$`%@#0R($``````!@````` -XM````$`H```$`%@#(R($```````$`````````&PH```(`"@#074$``````)(` -XM````````+`H```$`#0"`L6$``````"@`````````-0H```(`"@`P2D$````` -XM`(`!````````1`H```(`"@"064$``````'$`````````4@H```$`#``PI5$` -XM`````'@`````````6PH```0`\?\`````````````````````@`H```(`"@`@ -XM4$``````)P`````````GPH```(`"@#`>$$``````)P`````````J@H` -XM``(`"@#P:D$``````,$`````````LPH```$`#0"0LV$``````!H````````` -XMP0H```(`"@!P:4$``````'D`````````R0H```(`"@!`9T$``````)4````` -XM````U@H```(`"@!`=$$``````/`#````````Y`H```(`"@#P:4$``````($` -XM````````[@H```(`"@"09$$``````'D`````````]@H```(`"@"`:$$````` -XM`"H``````````@L```(`"@"`:D$``````&0`````````#@L```(`"@`0:$$` -XM`````"@`````````&@L```$`%@#@TX$````````(````````)0L```(`"@#@ -XM<$$``````#4$```````4````` -XM````A`L```(`"@#`:T$```````@`````````DPL```(`"@#P$$``````(\`````````L0L```(`"@`094$````` -XM`"T"````````P0L```$`#0"@LF$``````"@`````````R@L```$`#0!`LV$` -XM`````"@`````````U`L```$`#0"PL6$``````"@`````````W@L```$`#0#8 -XML6$``````"@`````````Z@L```$`#0!0LF$``````"@`````````]`L```$` -XM#0`HLF$``````"@```````````P```$`#0#PLF$``````"@`````````"0P` -XM``$`#0!HLV$``````"@`````````$PP```$`#0``LF$``````"@````````` -XM'0P```$`#0#(LF$``````"@`````````*`P```$`#`"HJ5$``````"@````` -XM````,0P```$`#0!XLF$``````"@`````````.@P```$`#0`8LV$``````"@` -XM````````1`P```0`\?\`````````````````````9`P```0`\?\````````` -XM````````````C@P```0`\?\`````````````````````N`P```0`\?\````` -XM````````````````X@P```0`\?\`````````````````````$PT```0`\?\` -XM````````````````````/@T```0`\?\`````````````````````:0T```0` -XM\?\`````````````````````D0T```0`\?\`````````````````````O0T` -XM``0`\?\`````````````````````[`T```0`\?\````````````````````` -XM%@X```0`\?\`````````````````````0`X```0`\?\````````````````` -XM````:@X```0`\?\`````````````````````E0X```0`\?\````````````` -XM````````P`X```0`\?\`````````````````````Z`X``!$`%@`LW8$````` -XM``0`````````]`X``!$`%@!PW8$```````@``````````P\``!(```"0(4`` -XM`````(8`````````"P\``!(`"@!@?D$``````#X`````````&P\``!(```"@ -XM(4``````````````````*0\``!(`"@`0>T$```````\`````````-@\``!(` -XM"@#P/T$``````"D`````````00\``!$`%@`8W8$```````0`````````30\` -XM`!$`#0"PL&$```````@`````````60\``!(```"P(4```````-8````````` -XM8@\``!(`"@!@@$$```````H`````````;@\``!$`%@!`W8$```````0````` -XM````>@\``!(```#`(4````````<`````````@@\``!(`"@"@PT```````$4" -XM````````C@\``!(`"@`P5T$``````%8"````````FP\``!$`%@!XW8$````` -XM``@`````````HP\``!(`"@!@HD```````/\!````````P0\``!(```#0(4`` -XM`````+X`````````R`\``!(```#@(4```````(<`````````SP\``!(`"@#` -XM2T$``````-P`````````V@\``!(`"@"0DT````````X`````````Y`\``!(` -XM"@!`;D```````*8`````````]@\``!(```#P(4``````````````````_0\` -XM`!(`````(D```````'4`````````$!```!(````0(D```````"0````````` -XM&1```!(`"@!P7D$``````(4`````````*Q```!(`"@!P@$$``````$D````` -XM````-Q```!(`"@!PB$```````"\`````````/!```!(`"@`0@T```````'P" -XM````````11```!(`"@"`SD```````"<`````````31```!$`%@"0W8$````` -XM`!``````````41```!(````@(D```````&,!````````6A```!(`"@!P]T`` -XM`````$``````````8Q```!(`"@#`94```````$4`````````;Q```!(`"@#P -XM;D```````/L`````````?A```!$`%@"0N($``````$``````````D!```!$` -XM\?^PLV$`````````````````F1```!(`"@`034$``````!P!````````IQ`` -XM`!(````P(D````````@`````````KQ```!(`"@#01$```````#8'```````` -XMN1```!(`"@`0LD```````%4`````````S!```!``%0"0N'$````````````` -XM````UA```!(`"@"@DT```````%L`````````X1```!(`"@"@Y$```````*<` -XM````````[!```!(```!`(D```````'\`````````\Q```!``\?\(```````` -XM````````````$!$``!(`"@#0?$```````-$`````````'1$``!(`"@!0^$`` -XM`````!8`````````)Q$``!(```!0(D```````$,`````````+A$``!(```!@ -XM(D``````````````````-1$``!(`"@#0'T$``````!X`````````0Q$``!(` -XM"@!P24$``````*X`````````3Q$``!(```!P(D```````$(!````````91$` -XM`!(`"@!@/$```````%4`````````<1$``!(`"@`04D```````)<````````` -XM>A$``!(`"@#05D$```````D`````````BA$``!(```"`(D```````#<````` -XM````EA$``!(```"0(D```````,0!````````G1$``!(`"@#PSD```````$\` -XM````````JQ$``!(`"@`09D```````$P`````````MA$``!$`%@!$W8$````` -XM``0`````````P!$``!(```"@(D```````/,`````````QQ$``!(```"P(D`` -XM`````/L`````````S!$``!(```#`(D``````````````````T1$``!(`"@!@ -XM[T```````"T`````````XA$``!(`"@``E$```````"\`````````ZQ$``!(` -XM"@"0A4```````'A,``!$` -XM%@!,W8$```````0`````````@!,``!(`"@"0?4$``````',`````````BA,` -XM`!(`"@#0^T````````(`````````FA,``!(`"@#`!$$``````(H````````` -XMJ!,``!(`"@"P9$```````$0`````````M!,``!(````@(T```````!@````` -XM````NA,``!(`"@"0PT````````X`````````QQ,``!(````P(T`````````` -XM````````SQ,``!(`"@"P2T$```````L`````````Y1,``!(```!`(T`````` -XM`!L`````````\!,``!(`"@!074```````%,'````````!10``!(```!0(T`` -XM``````L`````````%A0``!(`"@"P<4```````"L`````````)10``!(```!@ -XM(T```````!\`````````,Q0``!(`"@"@>$```````&\!````````/10``!(` -XM"@!@9D````````H`````````2Q0``!(```!P(T```````#D"````````4A0` -XM`!(`"@#0?D$``````$0`````````9Q0``!(`"@!@.4```````&T````````` -XM=A0``!(```"`(T``````````````````>Q0``!(`"@#`6T$``````)@!```` -XM````BA0``!(```"0(T```````,,!````````D!0``!(`"@!`BD````````\` -XM````````I!0``!(`"@#P?T```````,@`````````JA0``!$`%@"`W8$````` -XM``@`````````LQ0``!(`"@#`4D$``````-$"````````O10``!(`"@#`T$`` -XM`````-X2````````R!0``!(```"@(T```````"$`````````T!0``!$`#0#P -XML&$```````@`````````XA0``!(`"`!P(4``````````````````Z10``!(` -XM``"P(T```````%``````````]A0``!(```#`(T```````(!<``!(```#0)$```````$,&````````@!<``!$` -XM%@"(W8$```````@`````````BQ<``!(`"@#PQ4```````!("````````E!<` -XM`!(`"@"0S4```````"(`````````G!<``!(`"@#`@$```````-@````````` -XMH1<``!(```#@)$```````"L`````````J!<``!(`"@``'T$``````(4````` -XM````MA<``!$`%@#PN($``````,@!````````NQ<``!(```#P)$`````````` -XM````````P!<``!(`"@`0_4```````"8`````````T1<``!(`````)4`````` -XM`!H`````````UQ<``!(`"@!0C$````````0`````````X!<``!``\?^HW8$` -XM````````````````_A<``!(`"@!0Y4```````%0`````````#1@``!(````0 -XM)4```````",`````````%!@``!(````@)4````````P!````````&A@``!(` -XM"@!@/4```````#$`````````(Q@``!(`"@``94````````8`````````+Q@` -XM`!(`"@"0'T$``````!D`````````.Q@``!(`"@#0.4```````!0````````` -XM11@``!(`"@`P'4$``````,8!````````51@``!(````P)4```````*\'```` -XM````71@``!(`"@"P]T```````)$`````````:1@``!(```!`)4```````&\` -XM````````=!@``!(```!0)4```````-P`````````>A@``!$`%@"XNH$````` -XM``0`````````AQ@``!``\?^0N($`````````````````DQ@``!(```!@)4`` -XM``````H`````````FA@``!(```!P)4```````&T`````````I!@``!(```"` -XM)4```````!\`````````JQ@``!(`"@#@0T$```````<`````````M1@``!(` -XM"@"`N4```````)\'````````NA@``!(`"@!0>T$``````(D`````````Q1@` -XM`!(```"0)4```````-P`````````S1@``!(`"@!0T$```````$D````````` -XMUQ@``!(`"@!`1$$``````#@`````````Y1@``!(`"@#`@$$```````T````` -XM````[A@``!(`"@#0^$```````"$!````````!!D``!(```"@)4````````L! -XM````````"QD``!(`"@``SD```````$P`````````$QD``!$`%@`0W($````` -XM```!````````)AD``!(```"P)4```````"41````````+AD``!(```#`)4`` -XM`````#0`````````,QD``!(```#0)4```````#D`````````.QD``!(```#@ -XM)4```````#@`````````2AD``!(```#P)4```````$X`````````5QD``!$` -XM%@!HW8$```````@`````````7AD``!(`````)D```````%<`````````;1D` -XM`!(````0)D```````$L`````````T$``````#`````````` -XM?1D``!(`"@"`)D$``````'`9````````E!D``!(````@)D```````!T````` -XM````FQD``!$`#0#XL&$```````@`````````JQD``!(````P)D```````'0` -XM````````LAD``!(`"@#PH4```````&X`````````P1D``!(`"@"@?D$````` -XM`"4`````````RQD``!$`%@`TW8$```````0`````````V!D``!(`"@`@?T`` -XM`````,(`````````WAD``!(`"@`0?D$``````$<`````````ZQD``!(```!` -XM)D````````D`````````\AD``!(```!0)D```````#0`````````^AD``!$` -XM%@"\NH$```````0``````````QH``!(`"P#0@$$`````````````````"AH` -XM`!(```!@)D```````"D!````````$QH``!(`"@!`>$```````%T````````` -XM(QH``!(`"@`0\$```````(``````````+QH``!(```!P)D```````$,!```` -XM````-QH``!(`"@`@2D$```````4`````````2AH``!$`%@`HW8$```````0` -XM````````51H``!(`"@"@T$```````!0`````````:1H``!(`"@"PST`````` -XM`#X`````````<1H``!(`"@!PLD```````!4"````````@QH``!(`"@"@54$` -XM`````%L`````````CAH``!$`%@`0W8$```````@`````````DAH``!(```"` -XM)D```````%$`````````F!H``!(```"0)D```````.0!````````GQH``!(` -XM"@#@DD```````'4`````````J!H``!(`"@!`*$```````,0`````````L1H` -XM`!(`"@"@3D$``````!T$````````NQH``!(```"@)D```````'8````````` -XMQ!H``!(```"P)D``````````````````R1H``!(`"@"0H4```````&`````` -XM````V!H``!$`%@"@W8$```````0`````````Y!H``!(```#`)D```````,D` -XM````````ZQH``!$`%@!4W8$```````0`````````]1H``!(`"@#P(4$````` -XM`.4`````````!1L``!(`"@!PJD```````#`'````````&AL``!(`"@`P6T$` -XM`````(T`````````(QL``!``\?^0N($`````````````````*AL``!(`"@#P -XM;T```````(4`````````-AL``!$`\?_XM'$`````````````````3!L``!`` -XM\?^HW8$`````````````````41L``!(`"@"@?T$``````$(`````````71L` -XM`!$`%@"`R($```````$`````````9QL``!(`"@!@+T```````(P#```````` -XMD```````($`````````S!L``!(`"@"@@4`` -XM`````$X`````````TQL``!(`"@#P?T$``````!@`````````WAL``!(`"@"@ -XM=D```````$X!````````\!L``!(```#0)D```````!8`````````]1L``!(` -XM"@#P,D````````$``````````QP``!(`"@!`_D```````$H!````````*QP` -XM`!(`"@#`\T```````#4!````````2`0``!$`%@!D$````` -XM`/,`````````'AT``!(`"@!@7$```````/``````````+AT``!(`"@`0@$$` -XM`````$8`````````.1T``!(````@)T```````!X`````````0!T``!(````P -XM)T``````````````````11T``!(`"@`0($$``````)P!````````5!T``!(` -XM``!`)T```````#<`````````7QT``!(`"@"@L4```````!0`````````;QT` -XM`!(`"@!@I$```````.`"````````AAT``!(```!0)T```````'@````````` -XMCAT``!(`"@#`/$```````)P`````````FQT``!(```!@)T```````",````` -XM````HAT``!(`"@"P(4$``````#,`````````LQT``!(```!P)T```````)@` -XM````````N1T``!(```"`)T```````!H`````````P!T``!``#0``L&$````` -XM````````````S1T``!(`"@`PB4````````8!````````WAT``!(```"0)T`` -XM`````(X`````````YQT``!$`%@!@W8$```````0`````````\1T``"`````` -XM````````````````````!1X``!(`"@!@DT```````"P`````````$QX``!$` -XM%@`@QH$```````@`````````(!X``!(```"P)T``````````````````)AX` -XM`!(`"@#P]D```````'@`````````-!X``"(`"@`0*D````````$````````` -XM2AX``!(`"@#@<4```````(<"````````6!X``!(```#`)T`````````````` -XM````7AX``!(```#0)T```````%H`````````9QX``!(```#@)T```````"@` -XM````````=!X``!(`"@#@>T$``````$4`````````?AX``!$`%@!DW8$````` -XM``0`````````AQX``!(```#P)T```````/$`````````C!X``!(`"@`PE$`` -XM`````(``````````F1X``!(`````*$```````````````````"]U0!A&ES=',`0V]N9$1O36%K90!#;VYD -XM1&]487)G970`0V]N9$4`0V]N9$8`0V]N9$AA;F1L94-O;7!A'!R`&-O;F1);G9E'!A -XM;F0N8P!$:7)%>'!A;F17:6QD:0!$:7)0$IO8G,`;DIO8G,`;W-E=`!O=71P=71?;6%S:P!R96UO=F5? -XM:F]B`')U;FYI;F=*;V)S`'-E=``O=7-R+W-R8R]U2YC -XM`&5N;V-M96T`96YO;65M`"]U&5S`'1R86YS9F]R;7,`+W5S2YC`"]U0!S=')E0!3=69F7T%D9$EN8VQU9&5I`$UA -XM:V5?3T]$871E`&)R:U]S=')I;F<`:VQU9&=E7VQO;VM?:&%R9&5R7V9O&5S`&5U;FQI -XM;FL`5&%R9U].97='3FD`<')I;G1?97)R;W)S`%9A&5C=71E`%!A%]P871H`&5X96-V`$IO8E]-86ME`%]?41I<@!487)G7TEG;F]R90!!6U486)L95]);FET`$QS=%]3=6-C`%-U9F9?4&%R$QE;@!O:&%S:%]I;G1E0!F=W)I=&4`=&]U -XM8VA&;&%G`%1A5]N86UE`%-T49L86<`7TIV7U)E9VES=&5R0VQA0!F8VYT;`!3=')?4UE35E-U8G-T`%]?ps.uu << 'END-of-ps.uu' -Xbegin 755 ps -XM?T5,1@$!`0D```````````(``P`!````T)0$"#0````(>````````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(!&`` -XM``1@```%`````!````$````@8```(/`$""#P!`BX$P``C"````8`````$``` -XM`@```+QQ``"\`04(O`$%"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&3H7P``Z-\$".C?!`@<````'`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%L````*````50```!,````O````1@```%0````L```` -XM/0```#L`````````1P```!H```!#````00`````````Q````3P`````````+ -XM`````````!0```!:````3@````````!)`````````!@````N````)P```$H` -XM``!6`````````#8````_`````````!<`````````4````"D`````````4P`` -XM`%D``````````````!$```!8`````````#<````A````-````!\````K```` -XM````````````````2P```%$``````````````$0`````````30```$4````` -XM````,P```%<````````````````````````````````````````````````` -XM```````````````````%````````````````````````````````````#@`` -XM``````````````````P````&````"``````````2```````````````-```` -XM`````!P````````````````````````````````````B`````````"0````' -XM`````````"H``````````````!D````6````!````"4````F````#P`````` -XM```!`````````!X`````````&P```#`````0````.@```#(````````````` -XM`"T`````````````````````````'0```"`````C````-0```#D````H```` -XM`````#X````\`````@```$P````)````2`````````!````````````````X -XM````%0```%(```!"`````P````````````````````````"U`0```````#0` -XM```2````OP(````````S````$@```*$"````````0P```!(```"F`0`````` -XM`&$````2````6P$`````````````$@```(H"````````*@```!(```#L```` -XM`````&L!```2````$`$```````#]"```$@```#,```"\`04(`````!$`\?\Z -XM`@```````)@````2````0@(```````"A````$@````0!````````?P```!(` -XM``!?`@```````!T````2````\P$`````````````$@````,"````````6@`` -XM`!(```#C`````````!T````2````T@(````````S````$@```,4````````` -XM`````!(```#L`@```````.T````2````G0(```````#G`0``$@```"@"```` -XM````!0```!(````\````=)$$"#D````2````^P$```````#=`P``$@```$@` -XM```0D`0(`````!(`"@"8`0``(*\$"$8````2``P`00$````````N````$@`` -XM`!X"````````,P$``!(```#+```````````````2````I@````````"C```` -XM$@```*T!``!X$`4(!````!$`%P#[`````````#T````2````Y0(````````` -XM````$@```-(`````````Q@0``!(````*`@``V`,%"`0````1`!<`8@$````` -XM```5`@``$@`````#````````G@```!(````7`@```````&4"```2````G@$` -XM````````````$@```-@!```@\`0(!````!$`$`"_`````````"T````2```` -XML0(`````````````$@```%0!``#<`P4(!````!$`%P"%`0``X`,%"%0,```1 -XM`!<`3@(```````#,````$@```'X!````````'0(``!(```#C`0```````!8` -XM```2````3@`````````+````$@```+8"````````'0```!(```!'`@`````` -XM```````2````M@$````````Y````$@```,0"````````[0```!(````4`P`` -XMV`,%"``````0`/'_V@````````#?````$@```/L"````````00```!(````+ -XM```````````````2````E@(```````!?````$@```/,`````````;0```!(` -XM``!9````+-8$"``````2``T`Q0$```````",`@``$@```%8"````````'0`` -XM`!(```"U````-!`%"`0````1`!<`#P``````````````$@```*8"```````` -XM30$``!(```!?````=),$""8"```2````,@(```````#+````$@```!8!```` -XM````+0```!(```!H`@````````,!```2`````(````` -XM``"\````$@```'$"````````*P```!(```#>`@`````````````2````@0`` -XM``````"V````$@```*X``````````````!(````3```````````````@```` -XM:0(```````"\````$@```'(!````````&````!(```!J`0```````)<````2 -XM````CP````````!J!```$@```.L!````````1````!(`````;&EB;2YS;RXU -XM`&QO9P!E>'``7TIV7U)E9VES=&5R0VQA7-C;VYF`'-N<')I;G1F`&=E=&=R9VED -XM`&=E=&5N=@!B6YA -XM;64`9V5T<'=U:60`9V5T<'=N86T`87-P&ET`'-T7-C=&QB -XM>6YA;64`7V5D871A`%]?8G-S7W-T87)T`%]E;F0`1D)31%\Q+C`````"``(` -XM`@`"``(``@`"``(``0`"``(``@`"``(``@`"``(``@`"``(``@````(``0`! -XM``(``@`"``(``0`"``(``@`"``(``@`"``(``0`"``(``@`"``(``@`"```` -XM`@`"``(``@`!``(``@`#``(``@`!``(``@`"``,``@````(``@`"``(``@`" -XM``$``@`!``$``@`"``(``@`"``(``@`"`````@````(``@`"`````@`!``$` -XM`0```!`````@````L"AZ!P```P`E`P````````$``0"<````$`````````"P -XM*'H'```"`"4#````````V`,%"`4B``#<`P4(!2H``.`#!0@%*P``-!`%"`4] -XM```X$`4(!4P``#P0!0@%3@``M`(%"`0"!0AH8````.D@_____R7H`@4(:&@` -XM``#I$/____\E[`(%"&AP````Z0#_____)?`"!0AH>````.GP_O___R7T`@4( -XM:(````#IX/[___\E^`(%"&B(````Z=#^____)?P"!0AHD````.G`_O___R4` -XM`P4(:)@```#IL/[___\E!`,%"&B@````Z:#^____)0@#!0AHJ````.F0_O__ -XM_R4,`P4(:+````#I@/[___\E$`,%"&BX````Z7#^____)10#!0AHP````.E@ -XM_O___R48`P4(:,@```#I4/[___\E'`,%"&C0````Z4#^____)2`#!0AHV``` -XM`.DP_O___R4D`P4(:.````#I(/[___\E*`,%"&CH````Z1#^____)2P#!0AH -XM\````.D`_O___R4P`P4(:/@```#I\/W___\E-`,%"&@``0``Z>#]____)3@# -XM!0AH"`$``.G0_?___R4\`P4(:!`!``#IP/W___\E0`,%"&@8`0``Z;#]____ -XM)40#!0AH(`$``.F@_?___R5(`P4(:"@!``#ID/W___\E3`,%"&@P`0``Z8#] -XM____)5`#!0AH.`$``.EP_?___R54`P4(:$`!``#I8/W___\E6`,%"&A(`0`` -XMZ5#]____)5P#!0AH4`$``.E`_?___R5@`P4(:%@!``#I,/W___\E9`,%"&A@ -XM`0``Z2#]____)6@#!0AH:`$``.D0_?___R5L`P4(:'`!``#I`/W___\E<`,% -XM"&AX`0``Z?#\____)70#!0AH@`$``.G@_/___R5X`P4(:(@!``#IT/S___\E -XM?`,%"&B0`0``Z<#\____)8`#!0AHF`$``.FP_/___R6$`P4(:*`!``#IH/S_ -XM__\EB`,%"&BH`0``Z9#\____)8P#!0AHL`$``.F`_/___R60`P4(:+@!``#I -XM!`% -XM"'XVBT4(AL*#[80@\`!A-)T%(#Z+W7QHR#P -XM!`@/MA"#P`&$TG7LN+P!!0B%P'0TB0PDZ/_^___'!"0LU@0(Z//^___HROK_ -XM_XU%"(ET)`B)1"0$B1PDZ'`2#P`2)1?"%_P^$A0```(`_ -XM`'3GBQU($`4(*?''1"0,$@```(D\)(/K`0'+Z/[]___!ZP*)PHG8.=-V`HG0 -XMB40D"(E\)`2)-"3H,?[__X`^`'0(@\8!@#X`=?B+#400!0BA2!`%"(G*@^@! -XM*?(!T(/X`W:'Q@8@BT7P@\8!BPU$$`4(BW@$@\`$B47PA?\/A7O___\Y\8E- -XM['0+,<"`?O\@#Y3`*<;&!@"+5>R)%"3H>_W__XM5$(U$`@2)!"3H[/S__X7` -XMB<8/A`\!``"+1>R%P`^$E````(M%"(L8QT0D!"\```")'"3H,OO__X7`=`.- -XM6`&+51"+10R)'"2)5"0(B40D!.C5^?__A7UW#BT7LB30DB40D!.@#_?__ -XMZ^6+30RXSML$"(7)=-N+11#'1>P`````@\`#Z4____^+10R+51#'1"0$J]8$ -XM"(DT)(E$)`R)5"0(Z-7\___KI\<$)`$```#H1_K__X/X_W1G/?[__Q]_3(T$ -XMA0$```"C2!`%"(D$).CW^___A<")1>RC1!`%"'08BU4(BSJ%_P^%&?[__XM% -XM[,8``.G-_O__QT0D!)W6!`C'!"0!````Z(_Y___'1"0$O-8$",<$)`$```#H -XM>_G__\=$)`2"U@0(QP0D`0```.AG^?__D)"058GEBT4,BP")10R+10B+`(E% -XM"%WI:_K__XVT)@````!5B>575E.#[!R+'4#P!`B`.P!T8\=%\`````"_SML$ -XM"#'VB1PDZ,K[__^+%:@0!0B%TG07UW#D(UT)@!5B>575E.#[$R+10B)!"3H$/C__XE% -XMO(E%\(VV`````(M=\(7;#X3P````@#L`#X3G````QT0D!.K6!`B)'"3H`/O_ -XM_X`\`ST/A>D```#'1?``````QT0D!#T```")'"3HG_C__X7`B<9T!L8``(/& -XM`8U5Q(E=Q,=$)!`PF`0(QT0D#"P```#'1"0(60```,=$)`1`\`0(B10DZ*7Y -XM__^%P(G'#X3)````BT`(A<`/A/H```"%]@^$H@```(D$).B@^O__B30DB7<.)]HV\)P````!5B>53 -XM@^PDBT4,BU@(C47TQT7X`````(D$).BE]O__@\`!='^+1?2)1"0$BU4(BP*+ -XM0"B)!"3H>?/__X7`=$&+1?2)!"3HNO3__XM%^(7`=&6)1"0(#[]#&,<$)(': -XM!`B)1"0$Z(OU__^+1?B)!"3HP/;__X/$)%M=PXVV`````(U%^(E$)`2+1?2) -XM!"3HPO/__X/``0^4P`^VP(/H`2%%^.N6#[!B+10S'1"0(B-H$"(M`"`^_0!C'!"2*V@0( -XMB40D!.BL]/__R<.-M@````!5B>6#[!B+10R+30B+4`@QP(-Y#`!T"(L!BX`T -XM`@``B40D"`^_0AC'!"2.V@0(B40D!.AM]/__R<.-M"8`````58GE@^P8BT4( -XMBP"+@.````#!Z`J)1"0(BT4,BT`(#[]`&,<$))/:!`B)1"0$Z#+T___)PXVV -XM`````(V_`````%6)Y8/L&(M%#(M("(M%"(L`BU`DA=)T2("X2P$```!T(P^_ -XM41@%2P$``(E$)`R)5"0(B50D!,<$))C:!`CHXO/__\G#B50D"`^_01C'!"2? -XMV@0(B40D!.C(\___R<.)]O:`+`$```1T,H"X9@$```!T"P^_41@%9@$``.NM -XMQT0D"*7:!`@/OT$8QP0D@=H$"(E$)`3HB_/__\G#QT0D"(C:!`@/OT$8QP0D -XM@=H$"(E$)`3H;?/__\G#C;0F`````%6)Y8/L&(M%#(M0"(M%"(L`BT`DA6#[!B+10R+4`B+10B+`/:`+`$```1T2H"X9@$```!T(P^_4A@% -XM9@$``(E$)`S'!"28V@0(B50D"(E4)`3H4/+__\G#QT0D"*7:!`@/OT(8QP0D -XM@=H$"(E$)`3H,O+__\G#QT0D"(C:!`@/OT(8QP0D@=H$"(E$)`3H%/+__\G# -XMC;0F`````(V\)P````!5B>6#[!B+10B+``^V@`\"``"#Z%2)1"0(BT4,BT`( -XM#[]`&,<$)*_:!`B)1"0$Z-'Q___)PXUT)@"-O"<`````58GE@^P8BT4(BP`/ -XMMH`-`@``@^A4B40D"(M%#(M`"`^_0!C'!"2OV@0(B40D!.B1\?__R<.-="8` -XMC;PG`````%6)Y593@^P@BT4,BW`(BT4(BPB`N30!```'BYDH`0``BY'\`@`` -XM#X:X````QD7H/_?#````$(U5Z74'QD7I5XU5ZH"Y-0$````/C*,```!^!L8" -XM3H/"`?;'"'0&Q@)8@\(!]L<@=`^`N30!```%=`;&`D6#P@'VPQ!T!L8"5H/" -XM`?;'`G4)@+DV`0```'X&Q@),@\(!]H$L`0```G0&Q@)S@\(!]L,"=`B+03`[ -XM031T3X'C`````70&Q@)*@\(!C47HQ@(`B40D"`^_1AC'!"2!V@0(B40D!.BG -XM\/__@\0@6UY=PP^V@30!``#_)(58VP0(Q@(\@\(!Z5K___^-=@#&`BN#P@'K -XMJ<9%Z%KI'____\9%Z%?I%O___\9%Z$R)]ND+____@^((="F#N00!```4&<"# -XMX`J#P$F(1>CI[_[__\9%Z%3IYO[__\9%Z%+IW?[__\9%Z$3IU/[__XUT)@!5 -XMNHC:!`B)Y8/L&(M%#(M("(M%"(L`@+A4`0```'0&C9!4`0``B50D"`^_01C' -XM!"2!V@0(B40D!.CG[___R<.058GE@^P8BT4,BU`(H8P0!0B%P'0MBTT(BP&# -XMN`0"```!?A\%.@$``(E$)`@/OT(8QP0D@=H$"(E$)`3HI.___\G#QT0D"+/: -XM!`@/OT(8QP0D@=H$"(E$)`3HAN___\G#58GE4X/L%(M%#(M="(L(BU`(A56B<93 -XMB=.#[!"XP?\$"(M2)/9##`)T#HG(N@*ZZF0 -XM58GE@^P8BT4,BTT(BU`(BT$,A6+10R+30A= -XMBU`(BT(<`P'IV?[__XGVC;PG`````%6)Y5=64X'LK````(M%#(L-D!`%"(MX -XM"(M%"(L0*XH8`0``N@=%+L*)R/?JC30*B6#[#B+10R)7?B)=?R+<`B+10B+`(M01(/Z_W11B=`P -XM](U=Z(E$)!`/ML:)'"2)1"0,QT0D".':!`C'1"0$$````.AK[/__B5PD"`^_ -XM1AC'!"2*V@0(B40D!.@S[/__BUWXBW7\B>Q=PY"-="8`QT0D"*;:!`@/OT88 -XMQP0DBMH$"(E$)`3H".S__XM=^(MU_(GL7<.-=@"-O"<`````58GE5E.#[#"+ -XM10R+6`B+10B+``^VD`P"```/MH`-`@``@/H"#X29````=U>`^@$/A+(```") -XM1"00C77P#[;"B40D#,=$)`C_V@0(QT0D!`@```")-"3HN>O__Y"-="8`B70D -XM",9%]P`/OT,8QP0DBMH$"(E$)`3H>.O__X/$,%M>7<.`^@-T*(#Z!'6HC77P -XMB40D#,=$)`CWV@0(QT0D!`@```")-"3H:.O__^NRB?:-=?#'1?!N;W)MQT7T -XM86P``.N=C77PB40D#,=$)`COV@0(QT0D!`@```")-"3H,NO__^EY____C77P -XMB40D#,=$)`CGV@0(QT0D!`@```")-"3H#NO__^E5____D(UT)@!5B>53@^P4 -XMBT4,BU@(H7P0!0B%P'1:H4P0!0B%P'4QBU4(BP+V@"L!```0="/;@.0````Q -XMTJ&($`4(4E#?+"2#Q`C>^=@-H-L$".L&C70F`-GNW5PD"`^_0QC'!"0%VP0( -XMB40D!.AZZO__@\046UW#Z`OS__^C3!`%".N:C70F`%6)Y5.#[!2+'7P0!0B% -XMVW1?BPU0$`4(A\=T<).CNZ?__,=)24]\L)(/$"-[) -XMW1PDZ"KJ___<+:C;!`C=1?#>\>N,B?:-O"<`````58GE4X/L%(M%#(M8"(M% -XM"(D$).@(____W5PD"`^_0QC'!"0%VP0(B40D!.A4Z?__@\046UW#C78`C;PG -XM`````%6)Y5=64X'LK````(M="(`]5!`%"``/A$0!``"+10R+0`B)A6S___^+ -XM>PR%_P^$)`$``(L[B[<4`0``BY\0`0``QT0D"$!"#P#'1"0,`````(ET)`2) -XM'"3HTRH``(ET)`3'1"0(0$(/`,=$)`P`````B1PDB85P____Z$$I``"+-9@0 -XM!0B%]@^%LP```(V(B!,``+NMB]MHBQ=PXL"C5V0BX`8`0``B47TC47TB00DZ$;F__^)'"3'1"0(4-L$",=$ -XM)`1D````B40D#.C:Y?__B5PD"`^_1AC'!"2!V@0(B40D!.@RY___BUWXBW7\ -XMB>Q=PXUT)@!5B>564X/$@(M%#(M="(MP"(M##(7`#X2J````H>#_!`B%P`^( -XM^P```(L#BX`8`0``B47TC47TB00DZ,7E__^+%9`0!0B)P8L#*Y`8`0``@?I_ -XM40$`?EF!^G\Z"0`/CYT```"+%>#_!`BX+=L$"(72='Z-79")3"0,B40D",=$ -XM)`1D````B1PDZ"?E__^)7"0(#[]&&,<$)(':!`B)1"0$Z'_F__^#[(!;7EW# -XMC70F`(L=X/\$"+@=VP0(A=MUL[@EVP0(ZZS'1"0(B-H$"`^_1AC'!"2!V@0( -XMB40D!.A"YO__@^R`6UY=PXVT)@````"X--L$".EX____C;8`````C5V0B4PD -XM#,=$)`@[VP0(QT0D!&0```")'"3HE>3__^EI____QP0D!````.ADYO__@#@` -XM#Y7`#[;`H^#_!`CIYO[__XVV`````(V\)P````!5B>53@^P4BT4,BU@(BT4( -XMBP"+0$2#^/]T-L=$)`0`(```B00DZ+KF__^%P'0BB40D"`^_0QC'!"2!V@0( -XMB40D!.B.Y?__@\046UW#C70F`,=$)`BFV@0(#[]#&,<$)(':!`B)1"0$Z&CE -XM__^#Q!1;7<.-M"8`````C;PG`````%6)Y8/L*(M%#(M5"(E=](EU^(E]_(M8 -XM"(L"BT!$@_C_#X2,````QT0D!``@``")!"3H+N;__X7`B47P='6+=?"X`P`` -XM`+\Q=PXGVBW7PN`,```"_1]L$"(G!\Z8/A6+____I -XM6?___XUT)@!5B>6#[`C'1"0$`````(M%"(L`BX",````B00DZ$/D__^)10C) -XMZ:KE__^-M@````!5B>53@^P4BT4,BU@(BT4(QT0D!`````"+`(N`C````(D$ -XM).@,Y/__B40D"`^_0QC'!"2!V@0(B40D!.CDX___@\046UW#C78`C;PG```` -XM`%6)Y8/L",=$)`0`````BT4(BP"+@(@```")!"3HP^/__XE%",GI*N7__XVV -XM`````%6)Y5.#[!2+10R+6`B+10C'1"0$`````(L`BX"(````B00DZ(SC__^) -XM1"0(#[]#&,<$)(':!`B)1"0$Z&3C__^#Q!1;7<.-=@"-O"<`````58GE@^P( -XMQT0D!`````"+10B+`(N`E````(D$).BSX?__B44(R>FJY/__C;8`````58GE -XM4X/L%(M%#(M8"(M%",=$)`0`````BP"+@)0```")!"3H?.'__XE$)`@/OT,8 -XMQP0D@=H$"(E$)`3HY.+__X/$%%M=PXUV`(V\)P````!5B>53@^P4BQT```4( -XMA=MT'8M+!(G:@#D`=`WK'F+`L8`"H/``8D"@\046UW#H300!0C'!"0@```` -XMB40D!.C=W___BQOKC8E,)`3'!"3+W`0(Z,GA___I1O___SM"&`^-8____XE4 -XM)`3'!"0@````Z&OB__^+&^E8____H300!0C'!"0*````B40D!.B/W___@\04 -XM6UW#B50D!,<$)`H```#H.>+__^G._O__58GE5U93@^P+__XT$A0$```")!"3H"N+__X7`B47L -XM#X2<`@``QT0D"%@```"+0P2)1"0$BT7LB00DZ(7>__^+0PC'1?``````AS'!"28V@0(B40D"(E4)`R) -XM1"0$Z';@__^+3>R)#"3HJ^'__XM-\(7)#X0Q____BT7PB44(@\0<6UY?7>F. -XMX?__BQ6H$`4(A=)U?HM%\(7`=!.+3?#'!"13VP0(B4PD!.@JX/__BT7LQP0D -XMR]P$"(E$)`3H%^#__^N?D(L#QP0DR]P$"`5O`0``B40D!.C]W___H8P0!0B% -XMP`^$P?[__XL#@[@$`@```0^.LO[__P4Z`0``B44,QT4(NMH$"(/$'%M>7UWI -XMQM___P^_7QB)V"L%G!`%"`'0ALDBQ4T$`4(#[[YBT((@^@!A<")0@AX0XL"B?F("(/``8D"@\8!@^L! -XM#XAM_O__#[9._X3)#X1A_O__BSW8`P4(A?]TO:$T$`4(B40D!`^^P8D$).BY -XMW/__Z\@[0AA\!8#Y"G6SB50D!(D\).AAW___Z[`[0AA\#(#Y"HUV``^%"?__ -XM_XE4)`2)/"3H0M___^D#____H300!0C'!"0@````B40D!.AHW/__Z4O____' -XM1"0$G=8$",<$)`$```#H']W__SM"&`^-)/___XE4)`3'!"0@````Z/;>___I -XM&?___XVV`````(V\)P````!5B>575E.#[!R+70B+=0R+0P2+?@B)!"3HA]__ -XM_XT$A0$```")!"3H^-[__X7`B47P#X0!`0``QT0D"%@```"+0P2)1"0$BT7P -XMB00DZ'/;__^+!H7`=#$/OT<8BU7PQP0DF-H$"(E$)`B)5"0,B40D!.BNW?__ -XMBTWPB4T(@\0<6UY?7>GLDBQ4T$`4(#[[YBT((@^@!A<")0@AX.XL"B?F("(/` -XM`8D"@\,!@^X!>)L/MDO_A,ETDXL]V`,%"(7_=,6A-!`%"(E$)`0/OL&)!"3H -XM(]O__^O0.T(8?`J`^0J0C70F`'6VB50D!(D\).C&W?__Z[.+5?#'!"3+W`0( -XMB50D!.CQW/__Z3[____'1"0$G=8$",<$)`$```#HJ-O__Y"0D)!5B>6)4`R+ -XM50A=QT`$`````,<``````(E("(E0$,=`%`````##C70F`(V\)P````"A7!`% -XM"%6)Y5:+50B#^`*+=0Q3="N#Z`%T2(L*BQ:+642+0D0YPW5JBT(H.4$H=$`/ -XMG<`/MM"-5!+_6XG07EW#W480W4(0V=BZZ____ -XM_Y#KV(M"&#E&&'7&ZZZ-="8`BX((`@``,=(Y@0@"``!UL.NXW=C=V.N2N@$` -XM``"-=@#KJ(/[_[K_____=)Z#^/^Z`0```'24.<,9TH/*`>N+D%6)Y593@^P0 -XMBQT```4(A=MT*8M%"(LPZPV-M"8`````BQN%VW05BT,(BP")="0$B00DZ*W; -XM__^%P'7E@\00B=A;7EW#C;8`````C;\`````58GE@^P8H3@0!0C'1"04L-L$ -XM",=$)!!\W00(QT0D#,#=!`C'1"0(X-T$",=$)`2_VP0(B00DZ-G8___'!"0! -XM````Z$W<__^)]HV\)P````!5B>575HG64X'L'`0``(F%[/O__P^V`H3`#X2N -XM`0``D`^^V(E<)`3'!"3,VP0(Z$':__^%P'0,@\8!#[8&A,!UWS';B5PD!(V= -XM]/O__\<$)-';!`CH&]K__X7`='C&`P"+E>S[__^-A?3[__^)1"0$B10D_U(, -XMZQH/OMB)7"0$QP0DS-L$".CIV?__AVZ43___^+A>S[ -XM__^)="0$B00D_U`,#[8&A,`/A5C^___IT/[__XN5[/O__XV%]/O__XE$)`2) -XM%"3_4@P/M@:$P`^%,O[__^FJ_O__C;8`````C;PG`````%6)Y5.)RX/L%(L- -XMJ!`%"(E,)`B+$HE4)`2+%6`0!0B)%"3_T(M5"(E<)`2)5"0(B00DZ"G<__^# -XMQ!1;7<.-=@!5B>53B<.#[`3'0`0`````QT`(`````,<``````(M`%(7`=`B) -XM!"3H*-K__\=##`````#'0Q``````QT,4`````(/$!%M=PXGVC;PG`````%6) -XMY8/L&(E=^(G#B77\BT`$@\`!C30`B?`/KT,(B40D!(M#%(D$).A8U___A575E.!['P,``"+70S&A93W__\`QH64 -XM\___``^V`SPO#X1(`@``/&,/A!("``"-A93[__^_%]P$",=$)`@`!```QT0D -XM!!'N0,```#SIKX$W`0(C7V4#Y?"#Y+`.,(/ -XMA"W^___IQ/W__XUT)@"%VW26# -XM["B)7?2+70R)=?B+=0B)??R`.P!U)L<$)$C>!`CHCM/__S'`QP5T$`4(`0`` -XM`(M=](MU^(M]_(GL7<.0Z*_3___'``````"-1?#'1"0("@```(E$)`2)'"3H -XM@M/__XG'BT7P@#@`=$6)7"0(BT80QP0DKMP$"(E$)`3H,=/__^ALT___QP`B -XM````Z&'3__^#.")T:(L6.U8$?7*+1A2)/)"-0@&)!K@!````ZX&%_WBW.<-T -XMLXVT)@````#H+]/__XL0A=)U"('_GX8!`'Z[B5PD"(M&$,<$)+W6#[#B)=?B+=0R)??R+?0B)7?2`/@!T)HDT).AR -XMU/__@_@0=DF)="0(BT<0QP0D:MP$"(E$)`3H5M+__^L3BT<0QP0D3-P$"(E$ -XM)`3H0=+__\<%=!`%"`$````QP(M=](MU^(M]_(GL7<.-="8`Z%_2___'```` -XM``"-1?#'1"0("@```(E$)`2)-"3HPM'__XG#Z#O2__^+"(7)=0B+1?"`.`!T -XM/,=%X.')^.AQ^?__BP_KX(D<).AYT/__QT7@SMP$"(7`B<-UQ.NTBT7@B70D -XM#(E$)`B+1Q#'!"3GW`0(B40D!.A\T?__Z3;___^-=@"-3"0$@^3P_W'\58GE -XM5U9348'L"`L``(L!BTD$QT0D!,[;!`C'!"0`````B844]?__B8T0]?__Z.C2 -XM___'!"20$`4(Z#S/___'!"3UW`0(Z'#/__^%P'0)@#@`#X6U"P``C5WDB5PD -XM",=$)`1H=`A`QP0D`0```.CHS___@\`!#X3/#0``#[=%YF:%P`^%E0(``,<% -XMJ!`%"$\```"#O13U__\!#XXG`0``BY40]?__BXT0]?__B[T0]?__@\($B948 -XM]?__BTD(B8T<]?__BW<$#[8^B?B$P'0UB?*0C70F``^^P(G3B40D!,<$)&S> -XM!`CH']#__X7`=`J`>`$Z#X2$"@``#[9#`8U3`83`==(QVXDT).A%+/7__P`` -XM``#'A3#U__\`````QX5`]?__`````,>%1/7__P````#'A4SU__\`````QX4D -XM]?__(=T$",>%2/7_______^)]HN5$/7__XN-%/7__\=$)`ALW@0(B50D!(D, -XM).A$SO__@_C_#X1@`P``@^A!/#=V%^@K\___Z\D/M\"#Z`&CJ!`%".EE_?__ -XM#[;`_R2%O-X$"(.%0/7__P''A2SU__\!````QX5(]?__`0```.N2QP0D```` -XM`.@JSO__A<"CW`,%"`^$8PP``(L5W`,%"(V%5/___^@8\___@X5`]?__`<>% -XM3/7__P$```#I4O___\=$)`0`````QP0DP``%".A>U/__QP5<$`4(`@```,8% -XMP``%"`#'A3#U__\!````Z1[___^%VP^$3@@``,<%J!`%"`````"#PP'I!/__ -XM_\=$)`0`````QP0D``$%".@0U/__QP5<$`4(`0```,8%``$%"`#'A3#U__\! -XM````Z=#^___'!5P0!0@"````Z<'^__^+%=P#!0B-19SH8_+__X.%0/7__P'I -XMI_[__Z'<`P4(QT0D!`$```")!"3HLM/__\>%,/7__P$```#I@_[__\<%7!`% -XM"`$```#I=/[__\=$)`0`````QP0D8``%".B`T___Q@5@``4(`,>%,/7__P$` -XM``#I2O[__\=$)`0`````QP0D(``%".A6T___Q@4@``4(`,>%,/7__P$```#I -XM(/[__P^W1>3'A43U__\6````9H/X!0^&"/[__P^WP(F%1/7__^GZ_?__Z$G. -XM__^%P`^%T@@``,<%6!`%"`$```#IWOW__\<%;!`%"`$```#IS_W__\<%E!`% -XM"`$```#IP/W__X.%0/7__P''A2SU__\!````Z:K]___'1"0$`````,<$)#\! -XM!0CHMM+__\8%/P$%"`#IBOW__\>%2/7__P````#I>_W__XL5W`,%"(V%//__ -XM_^@:\?__@X5`]?__`<>%3/7__P$```#I5/W__\<%F!`%"`$```#I1?W__\=$ -XM)`0!````QP0DGP`%".A1TO__H=P#!0C'1"0$`0```(D$).@\TO__QT0D!`$` -XM``#'!"2C``4(Z"C2___&!:,`!0@`Q@6?``4(`,>%,/7__P$```#IZ_S__Z'< -XM`P4(B84D]?__Z=O\__^+/=P#!0B)O2CU___IROS__^A5T?__QP0D`````.BM -XMS/__QP6,$`4($````.FJ_/__BQ7<`P4(C47,Z$SP__^#A4#U__\!QX5,]?__ -XM`0```.F&_/__QP6@$`4(`0```.EW_/__H3P0!0B+O1#U__^#/6P0!0@!C02' -XMB84(]?__#X07"```BX4(]?__BQB%VW1/#[8#@_A_#X=5"P``]@2%%00%"`2+ -XMM0CU__]U(NE`"P``#[8#@_A_#XR)1"0,H6`0!0C'1>S_____B50D"(E, -XM)`2)!"3HU,O__X7`B84@]?__#X21`P``BT7L@_@`#XPW!0``#XZ*`P``:\`< -XMB00DZ,G*__^%P*-D$`4(#X0[`P``BT7LB84T]?__@^@!#XA@`P``QX4\]?__ -XM`````,>%7/7__P````")]HM=G(7;?AZ+E2#U__\QP(M**(M5L#L,@@^$6@$` -XM`(/``3G8=?"+A4CU__^%P'4=BXT@]?__@WE$_P^$$0$``/:!*`$```(/A`0! -XM``"+A4#U__^%P`^$'@$``(M=S(7;?B&+O2#U__\QP(M5X(N/E````#D,@@^$ -XM_0```(/``3G8=?"+7;2%VWX>BX4@]?__BU7(BT@P,<`Y#((/A-@```"#P`$Y -XMV'7PBUV$A=M^(HN5(/7__S'`BXJ,````BU68D#L,@@^$KP```(/``3G8=?"+ -XMG6S___^%VWX>B[T@]?__,<"+58"+3S@[#((/A(<```"#P`$YV'7PBYU4____ -XMA=M^'8N%(/7__XN5:/___XM(1#'`.0R"=&"#P`$YV'7TBYT\____A=M^)XN5 -XM(/7__S'`BXJ(````BY50____.PR"=#:#P`$YV'7TC;0F`````(.%7/7__P&+ -XMC33U__\YC5SU__\/A.L!``"!A2#U__\``P``Z8C^__]KO3SU__\[__XD$).BYQ?__B4<$BU\$A=L/A.H```"+#6P0!0B%R0^%F````,=' -XM"`````")]HLU```%"(7V=0SK0HUT)@"+-H7V=#B+7@CV0PP(C78`=.Z)/"3_ -XM4Q0/MU,8B<$/O\(YP7X&B%0/7__P````#I -XMG?K__XET)`2)/"3H2,;__^EQ]/__H6`0!0B)!"3H9L3__\=$)`3+W`0(QP0D -XM`0```(E$)`CH3L/__\<$)`0```#H%0/7__P````#IN_?__SM"&`^-7/___XE4)`3'!"0@````Z'G" -XM___I4?___Z'8`P4(A<`/A10!``"+%300!0B+0@B#Z`&%P(E""`^(<@$``(L" -XMQ@`*@\`!B0*+A43U__^%P'09BY4,]?__.94X]?__#X3Q````@X4X]?__`8/' -XM`8/&'#N]//7__P^%N?[__XU%S.@UZ/__C46C__XU%A.@= -XMZ/__C85L____Z!+H__^-A53____H!^C__XV%//___^C\Y___H:00!0B)!"3H -XM\\'__XV";P$``(E$)`B-1P3'1"0$6-T$"(D$).C&P?__Z6OY__^)P8M%L(/) -XM`8L0QX5`]?__`````.FQ]O__B<&+18"#R0.+$,>%0/7__P````#IF/;__XG! -XMBX5H____@\D$BQ#'A4#U__\`````Z7SV__^A-!`%",<$)`H```")1"0$Z'Z^ -XM___I\_[__XL=V`,%"(7;#X6_````BQ4T$`4(BT((@^@!A<")0@@/B),```"+ -XM`L8`"H/``8D"Z''=___'A3CU__\`````Z=/^__^)7"0(QT0D!,O]___I2/___Y"0D)"0D)"0D)"0D)"058GE5U:#[#"+11"+512+=0B+ -XM?0R)1>R)P8E5Z(M%Z,=%T`````#'1=0`````B?J)=>2%P(EU\(E]X'44.?EV -XM8(GP]_&)5=#'1=0`````ZQ"+3>`Y3>AV&(EUT(E]U(GVBT70BU74@\0P7E]= -XMPXUV``^]1>B#\!^)1=AU1HM%Z#E%X`^'R0```(M-[#E-Y`^#O0```(M-\(E5 -XMU(E-T.O!D(M%[(7`=0RX`0```#'2]W7LB<&+1>"+5>CW\8M%Y/?QZX*X(``` -XM`(M5["M%V(MU[(M]Y(G!B47@/MDW8T^`)PHM%Y-/F#[9-W(E5](M5 -XMX-/H#[9-V-/B"="+5>#3YP^V3=S3ZO=U](E5S/?F.57,575H/L((M% -XM$(M5%,=%X`````"+=0S'1>0`````B47TB<&+10B%THG7B47L=2,Y\0^&F``` -XM`(GR]_&)P3'`B4W@B47DBT7@BU7D@\0@7E]=PSGR#X>U````#[W"@_`?B47H -XM#X26````N"````"+5?0K1>B)P=/J#[9-Z(E%\(GXBWWTT^`)PHM%[-/G#[9- -XM\(E5W(GRT^@/MDWHT^(/MDWP"=#3[HGR]W7P/MDWHT^`YQG:'BTW8,<"#Z0'I^O[_ -XM_Y"0D)"0D)"0D)!5B>53@^P$H90"!0B#^/]T$C';_]"+@Y`"!0B#ZP2#^/]U -XM\(/$!%M=PY"0D(/L#.@\O___@\0,PR1&@!64UH`>'-T870`6%-4050```!N;R!V86QI9"!K97EW -XM;W)DF5R;RUL96YG=&@I("5S(&YA;64`)7,@;F%M92!T;V\@ -XM;&]N9SH@)7,`3F\@)7,@;F%M960@)R5S)P!.;R`E`````4```"C -XMV@0(`````)C7!`AAV00(``````````#@I`0(``````@```!H````!0```*/: -XM!`@`````2-<$"&G9!`@``````````."D!`@`````"````%@````%````H]H$ -XM"`````!QV00(=-D$"``````0````X*0$"``````#````!`$```4```#,V@0( -XM``````?8!`@-V`0(``````8```"@JP0(``````<````````````````````` -XM````$]H$",[;!`AWV00(```````````````````````````````````````` -XM``!WV00(&=H$"```````````0*$$"``````$```````````````````````` -XM`'W9!`B#V00(``````````#@I`0(``````4```"8````!0```/W:!`@````` -XMB=D$"(_9!`@``````````."D!`@`````!0```)`````%````_=H$"`````"5 -XMV00(FMD$"```````````,*8$"``````$`````````````````````````)_9 -XM!`BEV00(``````(```#@H@0(`````!,`````````````````````````>]<$ -XM"*O9!`@`````!````("I!`@`````"0````````````````````````"PV00( -XMMMD$"```````````X*0$"``````$````-`````4```#,V@0(`````+S9!`C! -XMV00(``````````#@I`0(``````4````\````!0```,S:!`@`````QMD$",O9 -XM!`@``````````."D!`@`````!````.P````)````D-H$"`````#0V00(T]D$ -XM"```````````<*T$"``````$`````````````````````````!SBPE8W!U+"5M -XM96TL8V]M;6%N9`!L86)E;`!P:60L='0LI($"(J2!`B:D@0( -XMJI($"+J2!`C*D@0(VI($".J2!`CZD@0("I,$"!J3!`@JDP0(.I,$"$J3!`A: -XMDP0(:I,$"'J3!`B*DP0(FI,$"*J3!`BZDP0(RI,$"-J3!`CJDP0(^I,$"`J4 -XM!`@:E`0(*I0$"#J4!`A*E`0(6I0$"&J4!`AZE`0(BI0$")J4!`BJE`0(NI0$ -XM"``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

7=O6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G1E>'0`+F9I;FD`+G)O -XM9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]Fps.uu << '1d41113d6c473df8a15e4a4e0ea90bc3' -Xbegin 644 ps -XM?T5,1@$!`0D```````````(``P`!````T)0$"#0````,>````````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(!&`` -XM``1@```%`````!````$````@8```(/`$""#P!`BX$P``C"````8`````$``` -XM`@```+QQ``"\`04(O`$%"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&3H7P``Z-\$".C?!`@<````'`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`0P```%L````*````50```!,````O````1@```%0````L```` -XM/0```#L`````````1P```!H```!#````00`````````Q````3P`````````+ -XM`````````!0```!:````3@````````!)`````````!@````N````)P```$H` -XM``!6`````````#8````_`````````!<`````````4````"D`````````4P`` -XM`%D``````````````!$```!8`````````#<````A````-````!\````K```` -XM````````````````2P```%$``````````````$0`````````30```$4````` -XM````,P```%<````````````````````````````````````````````````` -XM```````````````````%````````````````````````````````````#@`` -XM``````````````````P````&````"``````````2```````````````-```` -XM`````!P````````````````````````````````````B`````````"0````' -XM`````````"H``````````````!D````6````!````"4````F````#P`````` -XM```!`````````!X`````````&P```#`````0````.@```#(````````````` -XM`"T`````````````````````````'0```"`````C````-0```#D````H```` -XM`````#X````\`````@```$P````)````2`````````!````````````````X -XM````%0```%(```!"`````P````````````````````````"U`0```````#0` -XM```2````OP(````````S````$@```*$"````````0P```!(```"F`0`````` -XM`&$````2````6P$`````````````$@```(H"````````*@```!(```#L```` -XM`````&L!```2````$`$```````#]"```$@```#,```"\`04(`````!$`\?\Z -XM`@```````)@````2````0@(```````"A````$@````0!````````?P```!(` -XM``!?`@```````!T````2````\P$`````````````$@````,"````````6@`` -XM`!(```#C`````````!T````2````T@(````````S````$@```,4````````` -XM`````!(```#L`@```````.T````2````G0(```````#G`0``$@```"@"```` -XM````!0```!(````\````=)$$"#D````2````^P$```````#=`P``$@```$@` -XM```0D`0(`````!(`"@"8`0``(*\$"$8````2``P`00$````````N````$@`` -XM`!X"````````,P$``!(```#+```````````````2````I@````````"C```` -XM$@```*T!``!X$`4(!````!$`%P#[`````````#T````2````Y0(````````` -XM````$@```-(`````````Q@0``!(````*`@``V`,%"`0````1`!<`8@$````` -XM```5`@``$@`````#````````G@```!(````7`@```````&4"```2````G@$` -XM````````````$@```-@!```@\`0(!````!$`$`"_`````````"T````2```` -XML0(`````````````$@```%0!``#<`P4(!````!$`%P"%`0``X`,%"%0,```1 -XM`!<`3@(```````#,````$@```'X!````````'0(``!(```#C`0```````!8` -XM```2````3@`````````+````$@```+8"````````'0```!(```!'`@`````` -XM```````2````M@$````````Y````$@```,0"````````[0```!(````4`P`` -XMV`,%"``````0`/'_V@````````#?````$@```/L"````````00```!(````+ -XM```````````````2````E@(```````!?````$@```/,`````````;0```!(` -XM``!9````+-8$"``````2``T`Q0$```````",`@``$@```%8"````````'0`` -XM`!(```"U````-!`%"`0````1`!<`#P``````````````$@```*8"```````` -XM30$``!(```!?````=),$""8"```2````,@(```````#+````$@```!8!```` -XM````+0```!(```!H`@````````,!```2`````(````` -XM``"\````$@```'$"````````*P```!(```#>`@`````````````2````@0`` -XM``````"V````$@```*X``````````````!(````3```````````````@```` -XM:0(```````"\````$@```'(!````````&````!(```!J`0```````)<````2 -XM````CP````````!J!```$@```.L!````````1````!(`````;&EB;2YS;RXU -XM`&QO9P!E>'``7TIV7U)E9VES=&5R0VQA7-C;VYF`'-N<')I;G1F`&=E=&=R9VED -XM`&=E=&5N=@!B6YA -XM;64`9V5T<'=U:60`9V5T<'=N86T`87-P&ET`'-T7-C=&QB -XM>6YA;64`7V5D871A`%]?8G-S7W-T87)T`%]E;F0`1D)31%\Q+C`````"``(` -XM`@`"``(``@`"``(``0`"``(``@`"``(``@`"``(``@`"``(``@````(``0`! -XM``(``@`"``(``0`"``(``@`"``(``@`"``(``0`"``(``@`"``(``@`"```` -XM`@`"``(``@`!``(``@`#``(``@`!``(``@`"``,``@````(``@`"``(``@`" -XM``$``@`!``$``@`"``(``@`"``(``@`"`````@````(``@`"`````@`!``$` -XM`0```!`````@````L"AZ!P```P`E`P````````$``0"<````$`````````"P -XM*'H'```"`"4#````````V`,%"`4B``#<`P4(!2H``.`#!0@%*P``-!`%"`4] -XM```X$`4(!4P``#P0!0@%3@``M`(%"`0"!0AH8````.D@_____R7H`@4(:&@` -XM``#I$/____\E[`(%"&AP````Z0#_____)?`"!0AH>````.GP_O___R7T`@4( -XM:(````#IX/[___\E^`(%"&B(````Z=#^____)?P"!0AHD````.G`_O___R4` -XM`P4(:)@```#IL/[___\E!`,%"&B@````Z:#^____)0@#!0AHJ````.F0_O__ -XM_R4,`P4(:+````#I@/[___\E$`,%"&BX````Z7#^____)10#!0AHP````.E@ -XM_O___R48`P4(:,@```#I4/[___\E'`,%"&C0````Z4#^____)2`#!0AHV``` -XM`.DP_O___R4D`P4(:.````#I(/[___\E*`,%"&CH````Z1#^____)2P#!0AH -XM\````.D`_O___R4P`P4(:/@```#I\/W___\E-`,%"&@``0``Z>#]____)3@# -XM!0AH"`$``.G0_?___R4\`P4(:!`!``#IP/W___\E0`,%"&@8`0``Z;#]____ -XM)40#!0AH(`$``.F@_?___R5(`P4(:"@!``#ID/W___\E3`,%"&@P`0``Z8#] -XM____)5`#!0AH.`$``.EP_?___R54`P4(:$`!``#I8/W___\E6`,%"&A(`0`` -XMZ5#]____)5P#!0AH4`$``.E`_?___R5@`P4(:%@!``#I,/W___\E9`,%"&A@ -XM`0``Z2#]____)6@#!0AH:`$``.D0_?___R5L`P4(:'`!``#I`/W___\E<`,% -XM"&AX`0``Z?#\____)70#!0AH@`$``.G@_/___R5X`P4(:(@!``#IT/S___\E -XM?`,%"&B0`0``Z<#\____)8`#!0AHF`$``.FP_/___R6$`P4(:*`!``#IH/S_ -XM__\EB`,%"&BH`0``Z9#\____)8P#!0AHL`$``.F`_/___R60`P4(:+@!``#I -XM!`% -XM"'XVBT4(AL*#[80@\`!A-)T%(#Z+W7QHR#P -XM!`@/MA"#P`&$TG7LN+P!!0B%P'0TB0PDZ/_^___'!"0LU@0(Z//^___HROK_ -XM_XU%"(ET)`B)1"0$B1PDZ'`2#P`2)1?"%_P^$A0```(`_ -XM`'3GBQU($`4(*?''1"0,$@```(D\)(/K`0'+Z/[]___!ZP*)PHG8.=-V`HG0 -XMB40D"(E\)`2)-"3H,?[__X`^`'0(@\8!@#X`=?B+#400!0BA2!`%"(G*@^@! -XM*?(!T(/X`W:'Q@8@BT7P@\8!BPU$$`4(BW@$@\`$B47PA?\/A7O___\Y\8E- -XM['0+,<"`?O\@#Y3`*<;&!@"+5>R)%"3H>_W__XM5$(U$`@2)!"3H[/S__X7` -XMB<8/A`\!``"+1>R%P`^$E````(M%"(L8QT0D!"\```")'"3H,OO__X7`=`.- -XM6`&+51"+10R)'"2)5"0(B40D!.C5^?__A7UW#BT7LB30DB40D!.@#_?__ -XMZ^6+30RXSML$"(7)=-N+11#'1>P`````@\`#Z4____^+10R+51#'1"0$J]8$ -XM"(DT)(E$)`R)5"0(Z-7\___KI\<$)`$```#H1_K__X/X_W1G/?[__Q]_3(T$ -XMA0$```"C2!`%"(D$).CW^___A<")1>RC1!`%"'08BU4(BSJ%_P^%&?[__XM% -XM[,8``.G-_O__QT0D!)W6!`C'!"0!````Z(_Y___'1"0$O-8$",<$)`$```#H -XM>_G__\=$)`2"U@0(QP0D`0```.AG^?__D)"058GEBT4,BP")10R+10B+`(E% -XM"%WI:_K__XVT)@````!5B>575E.#[!R+'4#P!`B`.P!T8\=%\`````"_SML$ -XM"#'VB1PDZ,K[__^+%:@0!0B%TG07UW#D(UT)@!5B>575E.#[$R+10B)!"3H$/C__XE% -XMO(E%\(VV`````(M=\(7;#X3P````@#L`#X3G````QT0D!.K6!`B)'"3H`/O_ -XM_X`\`ST/A>D```#'1?``````QT0D!#T```")'"3HG_C__X7`B<9T!L8``(/& -XM`8U5Q(E=Q,=$)!`PF`0(QT0D#"P```#'1"0(60```,=$)`1`\`0(B10DZ*7Y -XM__^%P(G'#X3)````BT`(A<`/A/H```"%]@^$H@```(D$).B@^O__B30DB7<.)]HV\)P````!5B>53 -XM@^PDBT4,BU@(C47TQT7X`````(D$).BE]O__@\`!='^+1?2)1"0$BU4(BP*+ -XM0"B)!"3H>?/__X7`=$&+1?2)!"3HNO3__XM%^(7`=&6)1"0(#[]#&,<$)(': -XM!`B)1"0$Z(OU__^+1?B)!"3HP/;__X/$)%M=PXVV`````(U%^(E$)`2+1?2) -XM!"3HPO/__X/``0^4P`^VP(/H`2%%^.N6#[!B+10S'1"0(B-H$"(M`"`^_0!C'!"2*V@0( -XMB40D!.BL]/__R<.-M@````!5B>6#[!B+10R+30B+4`@QP(-Y#`!T"(L!BX`T -XM`@``B40D"`^_0AC'!"2.V@0(B40D!.AM]/__R<.-M"8`````58GE@^P8BT4( -XMBP"+@.````#!Z`J)1"0(BT4,BT`(#[]`&,<$))/:!`B)1"0$Z#+T___)PXVV -XM`````(V_`````%6)Y8/L&(M%#(M("(M%"(L`BU`DA=)T2("X2P$```!T(P^_ -XM41@%2P$``(E$)`R)5"0(B50D!,<$))C:!`CHXO/__\G#B50D"`^_01C'!"2? -XMV@0(B40D!.C(\___R<.)]O:`+`$```1T,H"X9@$```!T"P^_41@%9@$``.NM -XMQT0D"*7:!`@/OT$8QP0D@=H$"(E$)`3HB_/__\G#QT0D"(C:!`@/OT$8QP0D -XM@=H$"(E$)`3H;?/__\G#C;0F`````%6)Y8/L&(M%#(M0"(M%"(L`BT`DA6#[!B+10R+4`B+10B+`/:`+`$```1T2H"X9@$```!T(P^_4A@% -XM9@$``(E$)`S'!"28V@0(B50D"(E4)`3H4/+__\G#QT0D"*7:!`@/OT(8QP0D -XM@=H$"(E$)`3H,O+__\G#QT0D"(C:!`@/OT(8QP0D@=H$"(E$)`3H%/+__\G# -XMC;0F`````(V\)P````!5B>6#[!B+10B+``^V@`\"``"#Z%2)1"0(BT4,BT`( -XM#[]`&,<$)*_:!`B)1"0$Z-'Q___)PXUT)@"-O"<`````58GE@^P8BT4(BP`/ -XMMH`-`@``@^A4B40D"(M%#(M`"`^_0!C'!"2OV@0(B40D!.B1\?__R<.-="8` -XMC;PG`````%6)Y593@^P@BT4,BW`(BT4(BPB`N30!```'BYDH`0``BY'\`@`` -XM#X:X````QD7H/_?#````$(U5Z74'QD7I5XU5ZH"Y-0$````/C*,```!^!L8" -XM3H/"`?;'"'0&Q@)8@\(!]L<@=`^`N30!```%=`;&`D6#P@'VPQ!T!L8"5H/" -XM`?;'`G4)@+DV`0```'X&Q@),@\(!]H$L`0```G0&Q@)S@\(!]L,"=`B+03`[ -XM031T3X'C`````70&Q@)*@\(!C47HQ@(`B40D"`^_1AC'!"2!V@0(B40D!.BG -XM\/__@\0@6UY=PP^V@30!``#_)(58VP0(Q@(\@\(!Z5K___^-=@#&`BN#P@'K -XMJ<9%Z%KI'____\9%Z%?I%O___\9%Z$R)]ND+____@^((="F#N00!```4&<"# -XMX`J#P$F(1>CI[_[__\9%Z%3IYO[__\9%Z%+IW?[__\9%Z$3IU/[__XUT)@!5 -XMNHC:!`B)Y8/L&(M%#(M("(M%"(L`@+A4`0```'0&C9!4`0``B50D"`^_01C' -XM!"2!V@0(B40D!.CG[___R<.058GE@^P8BT4,BU`(H8P0!0B%P'0MBTT(BP&# -XMN`0"```!?A\%.@$``(E$)`@/OT(8QP0D@=H$"(E$)`3HI.___\G#QT0D"+/: -XM!`@/OT(8QP0D@=H$"(E$)`3HAN___\G#58GE4X/L%(M%#(M="(L(BU`(A56B<93 -XMB=.#[!"XP?\$"(M2)/9##`)T#HG(N@*ZZF0 -XM58GE@^P8BT4,BTT(BU`(BT$,A6+10R+30A= -XMBU`(BT(<`P'IV?[__XGVC;PG`````%6)Y5=64X'LK````(M%#(L-D!`%"(MX -XM"(M%"(L0*XH8`0``N@=%+L*)R/?JC30*B6#[#B+10R)7?B)=?R+<`B+10B+`(M01(/Z_W11B=`P -XM](U=Z(E$)!`/ML:)'"2)1"0,QT0D".':!`C'1"0$$````.AK[/__B5PD"`^_ -XM1AC'!"2*V@0(B40D!.@S[/__BUWXBW7\B>Q=PY"-="8`QT0D"*;:!`@/OT88 -XMQP0DBMH$"(E$)`3H".S__XM=^(MU_(GL7<.-=@"-O"<`````58GE5E.#[#"+ -XM10R+6`B+10B+``^VD`P"```/MH`-`@``@/H"#X29````=U>`^@$/A+(```") -XM1"00C77P#[;"B40D#,=$)`C_V@0(QT0D!`@```")-"3HN>O__Y"-="8`B70D -XM",9%]P`/OT,8QP0DBMH$"(E$)`3H>.O__X/$,%M>7<.`^@-T*(#Z!'6HC77P -XMB40D#,=$)`CWV@0(QT0D!`@```")-"3H:.O__^NRB?:-=?#'1?!N;W)MQT7T -XM86P``.N=C77PB40D#,=$)`COV@0(QT0D!`@```")-"3H,NO__^EY____C77P -XMB40D#,=$)`CGV@0(QT0D!`@```")-"3H#NO__^E5____D(UT)@!5B>53@^P4 -XMBT4,BU@(H7P0!0B%P'1:H4P0!0B%P'4QBU4(BP+V@"L!```0="/;@.0````Q -XMTJ&($`4(4E#?+"2#Q`C>^=@-H-L$".L&C70F`-GNW5PD"`^_0QC'!"0%VP0( -XMB40D!.AZZO__@\046UW#Z`OS__^C3!`%".N:C70F`%6)Y5.#[!2+'7P0!0B% -XMVW1?BPU0$`4(A\=T<).CNZ?__,=)24]\L)(/$"-[) -XMW1PDZ"KJ___<+:C;!`C=1?#>\>N,B?:-O"<`````58GE4X/L%(M%#(M8"(M% -XM"(D$).@(____W5PD"`^_0QC'!"0%VP0(B40D!.A4Z?__@\046UW#C78`C;PG -XM`````%6)Y5=64X'LK````(M="(`]5!`%"``/A$0!``"+10R+0`B)A6S___^+ -XM>PR%_P^$)`$``(L[B[<4`0``BY\0`0``QT0D"$!"#P#'1"0,`````(ET)`2) -XM'"3HTRH``(ET)`3'1"0(0$(/`,=$)`P`````B1PDB85P____Z$$I``"+-9@0 -XM!0B%]@^%LP```(V(B!,``+NMB]MHBQ=PXL"C5V0BX`8`0``B47TC47TB00DZ$;F__^)'"3'1"0(4-L$",=$ -XM)`1D````B40D#.C:Y?__B5PD"`^_1AC'!"2!V@0(B40D!.@RY___BUWXBW7\ -XMB>Q=PXUT)@!5B>564X/$@(M%#(M="(MP"(M##(7`#X2J````H>#_!`B%P`^( -XM^P```(L#BX`8`0``B47TC47TB00DZ,7E__^+%9`0!0B)P8L#*Y`8`0``@?I_ -XM40$`?EF!^G\Z"0`/CYT```"+%>#_!`BX+=L$"(72='Z-79")3"0,B40D",=$ -XM)`1D````B1PDZ"?E__^)7"0(#[]&&,<$)(':!`B)1"0$Z'_F__^#[(!;7EW# -XMC70F`(L=X/\$"+@=VP0(A=MUL[@EVP0(ZZS'1"0(B-H$"`^_1AC'!"2!V@0( -XMB40D!.A"YO__@^R`6UY=PXVT)@````"X--L$".EX____C;8`````C5V0B4PD -XM#,=$)`@[VP0(QT0D!&0```")'"3HE>3__^EI____QP0D!````.ADYO__@#@` -XM#Y7`#[;`H^#_!`CIYO[__XVV`````(V\)P````!5B>53@^P4BT4,BU@(BT4( -XMBP"+0$2#^/]T-L=$)`0`(```B00DZ+KF__^%P'0BB40D"`^_0QC'!"2!V@0( -XMB40D!.B.Y?__@\046UW#C70F`,=$)`BFV@0(#[]#&,<$)(':!`B)1"0$Z&CE -XM__^#Q!1;7<.-M"8`````C;PG`````%6)Y8/L*(M%#(M5"(E=](EU^(E]_(M8 -XM"(L"BT!$@_C_#X2,````QT0D!``@``")!"3H+N;__X7`B47P='6+=?"X`P`` -XM`+\Q=PXGVBW7PN`,```"_1]L$"(G!\Z8/A6+____I -XM6?___XUT)@!5B>6#[`C'1"0$`````(M%"(L`BX",````B00DZ$/D__^)10C) -XMZ:KE__^-M@````!5B>53@^P4BT4,BU@(BT4(QT0D!`````"+`(N`C````(D$ -XM).@,Y/__B40D"`^_0QC'!"2!V@0(B40D!.CDX___@\046UW#C78`C;PG```` -XM`%6)Y8/L",=$)`0`````BT4(BP"+@(@```")!"3HP^/__XE%",GI*N7__XVV -XM`````%6)Y5.#[!2+10R+6`B+10C'1"0$`````(L`BX"(````B00DZ(SC__^) -XM1"0(#[]#&,<$)(':!`B)1"0$Z&3C__^#Q!1;7<.-=@"-O"<`````58GE@^P( -XMQT0D!`````"+10B+`(N`E````(D$).BSX?__B44(R>FJY/__C;8`````58GE -XM4X/L%(M%#(M8"(M%",=$)`0`````BP"+@)0```")!"3H?.'__XE$)`@/OT,8 -XMQP0D@=H$"(E$)`3HY.+__X/$%%M=PXUV`(V\)P````!5B>53@^P4BQT```4( -XMA=MT'8M+!(G:@#D`=`WK'F+`L8`"H/``8D"@\046UW#H300!0C'!"0@```` -XMB40D!.C=W___BQOKC8E,)`3'!"3+W`0(Z,GA___I1O___SM"&`^-8____XE4 -XM)`3'!"0@````Z&OB__^+&^E8____H300!0C'!"0*````B40D!.B/W___@\04 -XM6UW#B50D!,<$)`H```#H.>+__^G._O__58GE5U93@^P+__XT$A0$```")!"3H"N+__X7`B47L -XM#X2<`@``QT0D"%@```"+0P2)1"0$BT7LB00DZ(7>__^+0PC'1?``````AS'!"28V@0(B40D"(E4)`R) -XM1"0$Z';@__^+3>R)#"3HJ^'__XM-\(7)#X0Q____BT7PB44(@\0<6UY?7>F. -XMX?__BQ6H$`4(A=)U?HM%\(7`=!.+3?#'!"13VP0(B4PD!.@JX/__BT7LQP0D -XMR]P$"(E$)`3H%^#__^N?D(L#QP0DR]P$"`5O`0``B40D!.C]W___H8P0!0B% -XMP`^$P?[__XL#@[@$`@```0^.LO[__P4Z`0``B44,QT4(NMH$"(/$'%M>7UWI -XMQM___P^_7QB)V"L%G!`%"`'0ALDBQ4T$`4(#[[YBT((@^@!A<")0@AX0XL"B?F("(/``8D"@\8!@^L! -XM#XAM_O__#[9._X3)#X1A_O__BSW8`P4(A?]TO:$T$`4(B40D!`^^P8D$).BY -XMW/__Z\@[0AA\!8#Y"G6SB50D!(D\).AAW___Z[`[0AA\#(#Y"HUV``^%"?__ -XM_XE4)`2)/"3H0M___^D#____H300!0C'!"0@````B40D!.AHW/__Z4O____' -XM1"0$G=8$",<$)`$```#H']W__SM"&`^-)/___XE4)`3'!"0@````Z/;>___I -XM&?___XVV`````(V\)P````!5B>575E.#[!R+70B+=0R+0P2+?@B)!"3HA]__ -XM_XT$A0$```")!"3H^-[__X7`B47P#X0!`0``QT0D"%@```"+0P2)1"0$BT7P -XMB00DZ'/;__^+!H7`=#$/OT<8BU7PQP0DF-H$"(E$)`B)5"0,B40D!.BNW?__ -XMBTWPB4T(@\0<6UY?7>GLDBQ4T$`4(#[[YBT((@^@!A<")0@AX.XL"B?F("(/` -XM`8D"@\,!@^X!>)L/MDO_A,ETDXL]V`,%"(7_=,6A-!`%"(E$)`0/OL&)!"3H -XM(]O__^O0.T(8?`J`^0J0C70F`'6VB50D!(D\).C&W?__Z[.+5?#'!"3+W`0( -XMB50D!.CQW/__Z3[____'1"0$G=8$",<$)`$```#HJ-O__Y"0D)!5B>6)4`R+ -XM50A=QT`$`````,<``````(E("(E0$,=`%`````##C70F`(V\)P````"A7!`% -XM"%6)Y5:+50B#^`*+=0Q3="N#Z`%T2(L*BQ:+642+0D0YPW5JBT(H.4$H=$`/ -XMG<`/MM"-5!+_6XG07EW#W480W4(0V=BZZ____ -XM_Y#KV(M"&#E&&'7&ZZZ-="8`BX((`@``,=(Y@0@"``!UL.NXW=C=V.N2N@$` -XM``"-=@#KJ(/[_[K_____=)Z#^/^Z`0```'24.<,9TH/*`>N+D%6)Y593@^P0 -XMBQT```4(A=MT*8M%"(LPZPV-M"8`````BQN%VW05BT,(BP")="0$B00DZ*W; -XM__^%P'7E@\00B=A;7EW#C;8`````C;\`````58GE@^P8H3@0!0C'1"04L-L$ -XM",=$)!!\W00(QT0D#,#=!`C'1"0(X-T$",=$)`2_VP0(B00DZ-G8___'!"0! -XM````Z$W<__^)]HV\)P````!5B>575HG64X'L'`0``(F%[/O__P^V`H3`#X2N -XM`0``D`^^V(E<)`3'!"3,VP0(Z$':__^%P'0,@\8!#[8&A,!UWS';B5PD!(V= -XM]/O__\<$)-';!`CH&]K__X7`='C&`P"+E>S[__^-A?3[__^)1"0$B10D_U(, -XMZQH/OMB)7"0$QP0DS-L$".CIV?__AVZ43___^+A>S[ -XM__^)="0$B00D_U`,#[8&A,`/A5C^___IT/[__XN5[/O__XV%]/O__XE$)`2) -XM%"3_4@P/M@:$P`^%,O[__^FJ_O__C;8`````C;PG`````%6)Y5.)RX/L%(L- -XMJ!`%"(E,)`B+$HE4)`2+%6`0!0B)%"3_T(M5"(E<)`2)5"0(B00DZ"G<__^# -XMQ!1;7<.-=@!5B>53B<.#[`3'0`0`````QT`(`````,<``````(M`%(7`=`B) -XM!"3H*-K__\=##`````#'0Q``````QT,4`````(/$!%M=PXGVC;PG`````%6) -XMY8/L&(E=^(G#B77\BT`$@\`!C30`B?`/KT,(B40D!(M#%(D$).A8U___A575E.!['P,``"+70S&A93W__\`QH64 -XM\___``^V`SPO#X1(`@``/&,/A!("``"-A93[__^_%]P$",=$)`@`!```QT0D -XM!!'N0,```#SIKX$W`0(C7V4#Y?"#Y+`.,(/ -XMA"W^___IQ/W__XUT)@"%VW26# -XM["B)7?2+70R)=?B+=0B)??R`.P!U)L<$)$C>!`CHCM/__S'`QP5T$`4(`0`` -XM`(M=](MU^(M]_(GL7<.0Z*_3___'``````"-1?#'1"0("@```(E$)`2)'"3H -XM@M/__XG'BT7P@#@`=$6)7"0(BT80QP0DKMP$"(E$)`3H,=/__^ALT___QP`B -XM````Z&'3__^#.")T:(L6.U8$?7*+1A2)/)"-0@&)!K@!````ZX&%_WBW.<-T -XMLXVT)@````#H+]/__XL0A=)U"('_GX8!`'Z[B5PD"(M&$,<$)+W6#[#B)=?B+=0R)??R+?0B)7?2`/@!T)HDT).AR -XMU/__@_@0=DF)="0(BT<0QP0D:MP$"(E$)`3H5M+__^L3BT<0QP0D3-P$"(E$ -XM)`3H0=+__\<%=!`%"`$````QP(M=](MU^(M]_(GL7<.-="8`Z%_2___'```` -XM``"-1?#'1"0("@```(E$)`2)-"3HPM'__XG#Z#O2__^+"(7)=0B+1?"`.`!T -XM/,=%X.')^.AQ^?__BP_KX(D<).AYT/__QT7@SMP$"(7`B<-UQ.NTBT7@B70D -XM#(E$)`B+1Q#'!"3GW`0(B40D!.A\T?__Z3;___^-=@"-3"0$@^3P_W'\58GE -XM5U9348'L"`L``(L!BTD$QT0D!,[;!`C'!"0`````B844]?__B8T0]?__Z.C2 -XM___'!"20$`4(Z#S/___'!"3UW`0(Z'#/__^%P'0)@#@`#X6U"P``C5WDB5PD -XM",=$)`1H=`A`QP0D`0```.CHS___@\`!#X3/#0``#[=%YF:%P`^%E0(``,<% -XMJ!`%"$\```"#O13U__\!#XXG`0``BY40]?__BXT0]?__B[T0]?__@\($B948 -XM]?__BTD(B8T<]?__BW<$#[8^B?B$P'0UB?*0C70F``^^P(G3B40D!,<$)&S> -XM!`CH']#__X7`=`J`>`$Z#X2$"@``#[9#`8U3`83`==(QVXDT).A%+/7__P`` -XM``#'A3#U__\`````QX5`]?__`````,>%1/7__P````#'A4SU__\`````QX4D -XM]?__(=T$",>%2/7_______^)]HN5$/7__XN-%/7__\=$)`ALW@0(B50D!(D, -XM).A$SO__@_C_#X1@`P``@^A!/#=V%^@K\___Z\D/M\"#Z`&CJ!`%".EE_?__ -XM#[;`_R2%O-X$"(.%0/7__P''A2SU__\!````QX5(]?__`0```.N2QP0D```` -XM`.@JSO__A<"CW`,%"`^$8PP``(L5W`,%"(V%5/___^@8\___@X5`]?__`<>% -XM3/7__P$```#I4O___\=$)`0`````QP0DP``%".A>U/__QP5<$`4(`@```,8% -XMP``%"`#'A3#U__\!````Z1[___^%VP^$3@@``,<%J!`%"`````"#PP'I!/__ -XM_\=$)`0`````QP0D``$%".@0U/__QP5<$`4(`0```,8%``$%"`#'A3#U__\! -XM````Z=#^___'!5P0!0@"````Z<'^__^+%=P#!0B-19SH8_+__X.%0/7__P'I -XMI_[__Z'<`P4(QT0D!`$```")!"3HLM/__\>%,/7__P$```#I@_[__\<%7!`% -XM"`$```#I=/[__\=$)`0`````QP0D8``%".B`T___Q@5@``4(`,>%,/7__P$` -XM``#I2O[__\=$)`0`````QP0D(``%".A6T___Q@4@``4(`,>%,/7__P$```#I -XM(/[__P^W1>3'A43U__\6````9H/X!0^&"/[__P^WP(F%1/7__^GZ_?__Z$G. -XM__^%P`^%T@@``,<%6!`%"`$```#IWOW__\<%;!`%"`$```#IS_W__\<%E!`% -XM"`$```#IP/W__X.%0/7__P''A2SU__\!````Z:K]___'1"0$`````,<$)#\! -XM!0CHMM+__\8%/P$%"`#IBOW__\>%2/7__P````#I>_W__XL5W`,%"(V%//__ -XM_^@:\?__@X5`]?__`<>%3/7__P$```#I5/W__\<%F!`%"`$```#I1?W__\=$ -XM)`0!````QP0DGP`%".A1TO__H=P#!0C'1"0$`0```(D$).@\TO__QT0D!`$` -XM``#'!"2C``4(Z"C2___&!:,`!0@`Q@6?``4(`,>%,/7__P$```#IZ_S__Z'< -XM`P4(B84D]?__Z=O\__^+/=P#!0B)O2CU___IROS__^A5T?__QP0D`````.BM -XMS/__QP6,$`4($````.FJ_/__BQ7<`P4(C47,Z$SP__^#A4#U__\!QX5,]?__ -XM`0```.F&_/__QP6@$`4(`0```.EW_/__H3P0!0B+O1#U__^#/6P0!0@!C02' -XMB84(]?__#X07"```BX4(]?__BQB%VW1/#[8#@_A_#X=5"P``]@2%%00%"`2+ -XMM0CU__]U(NE`"P``#[8#@_A_#XR)1"0,H6`0!0C'1>S_____B50D"(E, -XM)`2)!"3HU,O__X7`B84@]?__#X21`P``BT7L@_@`#XPW!0``#XZ*`P``:\`< -XMB00DZ,G*__^%P*-D$`4(#X0[`P``BT7LB84T]?__@^@!#XA@`P``QX4\]?__ -XM`````,>%7/7__P````")]HM=G(7;?AZ+E2#U__\QP(M**(M5L#L,@@^$6@$` -XM`(/``3G8=?"+A4CU__^%P'4=BXT@]?__@WE$_P^$$0$``/:!*`$```(/A`0! -XM``"+A4#U__^%P`^$'@$``(M=S(7;?B&+O2#U__\QP(M5X(N/E````#D,@@^$ -XM_0```(/``3G8=?"+7;2%VWX>BX4@]?__BU7(BT@P,<`Y#((/A-@```"#P`$Y -XMV'7PBUV$A=M^(HN5(/7__S'`BXJ,````BU68D#L,@@^$KP```(/``3G8=?"+ -XMG6S___^%VWX>B[T@]?__,<"+58"+3S@[#((/A(<```"#P`$YV'7PBYU4____ -XMA=M^'8N%(/7__XN5:/___XM(1#'`.0R"=&"#P`$YV'7TBYT\____A=M^)XN5 -XM(/7__S'`BXJ(````BY50____.PR"=#:#P`$YV'7TC;0F`````(.%7/7__P&+ -XMC33U__\YC5SU__\/A.L!``"!A2#U__\``P``Z8C^__]KO3SU__\[__XD$).BYQ?__B4<$BU\$A=L/A.H```"+#6P0!0B%R0^%F````,=' -XM"`````")]HLU```%"(7V=0SK0HUT)@"+-H7V=#B+7@CV0PP(C78`=.Z)/"3_ -XM4Q0/MU,8B<$/O\(YP7X&B%0/7__P````#I -XMG?K__XET)`2)/"3H2,;__^EQ]/__H6`0!0B)!"3H9L3__\=$)`3+W`0(QP0D -XM`0```(E$)`CH3L/__\<$)`0```#H%0/7__P````#IN_?__SM"&`^-7/___XE4)`3'!"0@````Z'G" -XM___I4?___Z'8`P4(A<`/A10!``"+%300!0B+0@B#Z`&%P(E""`^(<@$``(L" -XMQ@`*@\`!B0*+A43U__^%P'09BY4,]?__.94X]?__#X3Q````@X4X]?__`8/' -XM`8/&'#N]//7__P^%N?[__XU%S.@UZ/__C46C__XU%A.@= -XMZ/__C85L____Z!+H__^-A53____H!^C__XV%//___^C\Y___H:00!0B)!"3H -XM\\'__XV";P$``(E$)`B-1P3'1"0$6-T$"(D$).C&P?__Z6OY__^)P8M%L(/) -XM`8L0QX5`]?__`````.FQ]O__B<&+18"#R0.+$,>%0/7__P````#IF/;__XG! -XMBX5H____@\D$BQ#'A4#U__\`````Z7SV__^A-!`%",<$)`H```")1"0$Z'Z^ -XM___I\_[__XL=V`,%"(7;#X6_````BQ4T$`4(BT((@^@!A<")0@@/B),```"+ -XM`L8`"H/``8D"Z''=___'A3CU__\`````Z=/^__^)7"0(QT0D!,O]___I2/___Y"0D)"0D)"0D)"0D)"058GE5U:#[#"+11"+512+=0B+ -XM?0R)1>R)P8E5Z(M%Z,=%T`````#'1=0`````B?J)=>2%P(EU\(E]X'44.?EV -XM8(GP]_&)5=#'1=0`````ZQ"+3>`Y3>AV&(EUT(E]U(GVBT70BU74@\0P7E]= -XMPXUV``^]1>B#\!^)1=AU1HM%Z#E%X`^'R0```(M-[#E-Y`^#O0```(M-\(E5 -XMU(E-T.O!D(M%[(7`=0RX`0```#'2]W7LB<&+1>"+5>CW\8M%Y/?QZX*X(``` -XM`(M5["M%V(MU[(M]Y(G!B47@/MDW8T^`)PHM%Y-/F#[9-W(E5](M5 -XMX-/H#[9-V-/B"="+5>#3YP^V3=S3ZO=U](E5S/?F.57,575H/L((M% -XM$(M5%,=%X`````"+=0S'1>0`````B47TB<&+10B%THG7B47L=2,Y\0^&F``` -XM`(GR]_&)P3'`B4W@B47DBT7@BU7D@\0@7E]=PSGR#X>U````#[W"@_`?B47H -XM#X26````N"````"+5?0K1>B)P=/J#[9-Z(E%\(GXBWWTT^`)PHM%[-/G#[9- -XM\(E5W(GRT^@/MDWHT^(/MDWP"=#3[HGR]W7P/MDWHT^`YQG:'BTW8,<"#Z0'I^O[_ -XM_Y"0D)"0D)"0D)!5B>53@^P$H90"!0B#^/]T$C';_]"+@Y`"!0B#ZP2#^/]U -XM\(/$!%M=PY"0D(/L#.@\O___@\0,PR1&@!64UH`>'-T870`6%-4050```!N;R!V86QI9"!K97EW -XM;W)DF5R;RUL96YG=&@I("5S(&YA;64`)7,@;F%M92!T;V\@ -XM;&]N9SH@)7,`3F\@)7,@;F%M960@)R5S)P!.;R`E`````4```"C -XMV@0(`````)C7!`AAV00(``````````#@I`0(``````@```!H````!0```*/: -XM!`@`````2-<$"&G9!`@``````````."D!`@`````"````%@````%````H]H$ -XM"`````!QV00(=-D$"``````0````X*0$"``````#````!`$```4```#,V@0( -XM``````?8!`@-V`0(``````8```"@JP0(``````<````````````````````` -XM````$]H$",[;!`AWV00(```````````````````````````````````````` -XM``!WV00(&=H$"```````````0*$$"``````$```````````````````````` -XM`'W9!`B#V00(``````````#@I`0(``````4```"8````!0```/W:!`@````` -XMB=D$"(_9!`@``````````."D!`@`````!0```)`````%````_=H$"`````"5 -XMV00(FMD$"```````````,*8$"``````$`````````````````````````)_9 -XM!`BEV00(``````(```#@H@0(`````!,`````````````````````````>]<$ -XM"*O9!`@`````!````("I!`@`````"0````````````````````````"PV00( -XMMMD$"```````````X*0$"``````$````-`````4```#,V@0(`````+S9!`C! -XMV00(``````````#@I`0(``````4````\````!0```,S:!`@`````QMD$",O9 -XM!`@``````````."D!`@`````!````.P````)````D-H$"`````#0V00(T]D$ -XM"```````````<*T$"``````$`````````````````````````!SBPE8W!U+"5M -XM96TL8V]M;6%N9`!L86)E;`!P:60L='0LI($"(J2!`B:D@0( -XMJI($"+J2!`C*D@0(VI($".J2!`CZD@0("I,$"!J3!`@JDP0(.I,$"$J3!`A: -XMDP0(:I,$"'J3!`B*DP0(FI,$"*J3!`BZDP0(RI,$"-J3!`CJDP0(^I,$"`J4 -XM!`@:E`0(*I0$"#J4!`A*E`0(6I0$"&J4!`AZE`0(BI0$")J4!`BJE`0(NI0$ -XM"``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

7=O6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G!L=``N=&5X=``N9FEN -XM:0`N6YA -XM;6EC`"YC=&]Rtcsh.uu << 'END-of-tcsh.uu' -Xbegin 755 tcsh -XM?T5,1@$!`0D```````````(``P`!````(*0$"#0```"HVP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(7)\$ -XM`%R?!``%`````!````$`````H`0``"`)"``@"0AT,0``](P"``8`````$``` -XM`@```$#.!`!`3@D(0$X)"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&0PGP0`,!\)"#`?"0@L````+`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*`````(``````````````"9````.0````````!1```` -XME@````````"#````G````',```",````2@```%X`````````4@````````") -XM````E```````````````<@```)\```!G`````````'H```!F````C@```$X` -XM``"'````%`````0`````````1`````,`````````#@```$(```"&````=P`` -XM````````````%P```)L```"-````-`````````!D`````````)X````````` -XM*P````````!V````;`````````!-````DP````````!%````?@```#L````` -XM````D0`````````W````````````````````)0````````!P`````````#`` -XM``!A````BP`````````V````20````````!M````E0````````!?````?0`` -XM`&D`````````:P````````!0````8@```'\````M````>``````````````` -XM``````````!6`````````&\```""````:@```)@```!&````,@````````!U -XM````6P````````":````3````(H````*````A0```````````````````)`` -XM``!8````;@```)T````8`````````(0```"2````5P```(`````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````$0````8```````````````````````````````$``````````@`````` -XM```>````````````````````#```````````````)@````<````I```````` -XM```````G`````````"X````<`````````"`````C```````````````-```` -XM+P`````````D````%@``````````````````````````````/0````4````H -XM`````````#4````9````00``````````````````````````````$P```$@` -XM`````````````````````````````````````````````#H````````````` -XM`$`````X`````````!`````)````7````"(````_````&@````````!@```` -XM`````````````````````&@`````````5````"$```!9`````````!(````` -XM```````````````=``````````\````;````+`````````!Q`````````$<` -XM```Q``````````````!Y````8P``````````````6@```!4```!\````*@`` -XM````````````B````$L`````````=`````L```"!`````````!\```!#```` -XM,P```&4```![`````````$\```!3````70```#P`````````CP````````"7 -XM````50```#X`````````````````````````I`0````````S````$@```)$$ -XM````````,P```!(```"T`@```````$,````2````$0````````"U````$@`` -XM`(P"`````````````!(```"2`@```````"L````2````RP,````````R```` -XM$@```&\!````````*````!(```"Y`@`````````````2````2@$````````` -XM````$@```#0!````````:P$``!(```#K!````````#@````2````:0$````` -XM``#]"```$@```!D```!`3@D(`````!$`\?_W`@`````````````2````I0(` -XM````````````$@```"(`````````U`,``!(```"#`0```````#,````2```` -XMU`0`````````````$@```'L"````````(P```!(````+!0`````````````2 -XM````$@0````````=````$@```#0#`````````````!(````K`0```````!T` -XM```2````B@0`````````````$@````,"````````5P```!(```#(```````` -XM`#D````2````?@$``,"N!@C>!```$@`,`"`#````````E````!(```#(`@`` -XM`````#D````2````100`````````````$@```"@`````````E@```!(```"2 -XM`0`````````````2````80(```````!S````$@```.$!``"`40D(!````!$` -XM%P#:```````````````2````?0,````````<````$@```#L!```````````` -XM`!(````'!``````````````2````!P$```````!/````$@```.0$```````` -XM<@```!(```#!`P````````4````2````"P0```````!.!0``$@```%P#```` -XM````W0,``!(```#!```````````````2````(@(```````#8````$@```#$` -XM```(FP0(`````!(`"@!)`@`````````````2````HP,`````````````$@`` -XM`+`#````````,P$``!(````-`@`````````````2````M@$````````+```` -XM$@```&\$````````*@```!(```";```````````````2````X``````````` -XM````$@```)<"``#8=0D(!````!$`%P!#`P```````$T````2````2P,````` -XM````````$@```+,"````````*P```!(```#$!``````````````2````YP`` -XM``````#&!```$@```"P#````````(0(``!(```#9`0```````!4"```2```` -XM`P`````````````2````9@0```````!9 -XM````$@```%(#`````````````!(```"0`P`````````````2````=P,````` -XM```[````$@```!0#````````>````!(```#"`0```````$P````2````10`` -XM`/RP"`@`````$@`-`,X"````````C`(``!(```#:`@```````!`````2```` -XM_0(````````E`0``$@```/X#````````'0```!(```#:!````````.T````2 -XM````0@$`````````````$@```#X#`````````````!(```!D`P``X%T)"`0` -XM```1`!<`^P`````````E````$@```",!`````````````!(````\`@`````` -XM`&<````2````[@$```````!?````$@```)X$`````````````!(```!*!``` -XM,*<&"&,````2``P`%0(````````_````$@```)\$````````0P```!(```"H -XM`0```````,,````2````J@(```````!4````$@```!<%``!T40D(`````!`` -XM\?_0```````````````2````EP,```````!#````$@```*\!````````,P`` -XM`!(```!W`0`````````````2````2P```"Q/"0@`````$0#Q_QL$```````` -XM@0```!(````J!0``]*P+"``````0`/'_``4`````````````$@```(`$```` -XM````5P```!(````N!````````&(#```2````]0$```````!A````$@```$X$ -XM````````DP```!(```"7`0`````````````2````)P0````````K````$@`` -XM`&(!`````````````!(```"K!````````!P````2````M`0````````````` -XM$@```$0$`````````````!(````;`0`````````````2````RP0```````"C -XM````$@```.<#````````4@```!(````;`P`````````````2````>`0````` -XM````````$@```!`!````````B@```!(```"Z```````````````2````4P0` -XM``````#($0``$@```&$``````````````"````#+`0```````(H````2```` -XMOP(```````!,````$@```(D!`````````````!(````\`P```````"@````2 -XM````=0`````````4`0``$@```(("`````````````!(```"?`@`````````` -XM```2`````&QI8FYC=7)S97,N@<```(`+P4```````"`40D(!2,``(A1"0@%20`` -XMW%T)"`5?``#@70D(!7(``#A/"0@'`0``/$\)"`<"``!`3PD(!P,``$1/"0@' -XM!```2$\)"`<%``!,3PD(!P8``%!/"0@'!P``5$\)"`<(``!83PD(!PD``%Q/ -XM"0@'"@``8$\)"`<+``!D3PD(!PP``&A/"0@'#0``;$\)"`$\)"`<2``!\3PD(!Q,``(!/"0@'%```A$\)"`<5``"(3PD( -XM!Q8``(Q/"0@'%P``D$\)"`<8``"43PD(!QD``)A/"0@'&@``G$\)"`<;``"@ -XM3PD(!QT``*1/"0@''@``J$\)"```"04`D(!V```)10"0@'80`` -XMF%`)"`=B``"<4`D(!V,``*!0"0@'9```I%`)"`=E``"H4`D(!V8``*Q0"0@' -XM9P``L%`)"`=H``"T4`D(!VD``+A0"0@':P``O%`)"`=L``#`4`D(!VT``,10 -XM"0@';@``R%`)"`=O``#,4`D(!W```-!0"0@'<0``U%`)"`=S``#84`D(!W0` -XM`-Q0"0@'=0``X%`)"`=V``#D4`D(!W<``.A0"0@'>0``[%`)"`=Z``#P4`D( -XM!WL``/10"0@'?```^%`)"`=^``#\4`D(!W\```!1"0@'@```!%$)"`>!```( -XM40D(!X,```Q1"0@'A0``$%$)"`>&```440D(!X<``!A1"0@'B```'%$)"`>) -XM```@40D(!XH``"11"0@'BP``*%$)"`>,```L40D(!XT``#!1"0@'C@``-%$) -XM"`>/```X40D(!Y```#Q1"0@'D0``0%$)"`>2``!$40D(!Y,``$A1"0@'E``` -XM3%$)"`>5``!040D(!Y8``%11"0@'EP``6%$)"`>9``!<40D(!YH``&!1"0@' -XMFP``9%$)"`><``!H40D(!YT``&Q1"0@'G@``<%$)"`>?``"#[`SHX`D``.B[ -XM%00`@\0,PP```/\U,$\)"/\E-$\)"`````#_)3A/"0AH`````.G@_____R4\ -XM3PD(:`@```#IT/____\E0$\)"&@0````Z<#_____)41/"0AH&````.FP____ -XM_R5(3PD(:"````#IH/____\E3$\)"&@H````Z9#_____)5!/"0AH,````.F` -XM_____R543PD(:#@```#I````.GP_O___R5X3PD(:(````#IX/[___\E?$\)"&B(````Z=#^____ -XM)8!/"0AHD````.G`_O___R6$3PD(:)@```#IL/[___\EB$\)"&B@````Z:#^ -XM____)8Q/"0AHJ````.F0_O___R603PD(:+````#I@/[___\EE$\)"&BX```` -XMZ7#^____)9A/"0AHP````.E@_O___R6<3PD(:,@```#I4/[___\EH$\)"&C0 -XM````Z4#^____):1/"0AHV````.DP_O___R6H3PD(:.````#I(/[___\EK$\) -XM"&CH````Z1#^____);!/"0AH\````.D`_O___R6T3PD(:/@```#I\/W___\E -XMN$\)"&@``0``Z>#]____);Q/"0AH"`$``.G0_?___R7`3PD(:!`!``#IP/W_ -XM__\EQ$\)"&@8`0``Z;#]____)!/"0AH4`$``.E`_?___R7D3PD( -XM:%@!``#I,/W___\EZ$\)"&A@`0``Z2#]____)>Q/"0AH:`$``.D0_?___R7P -XM3PD(:'`!``#I`/W___\E]$\)"&AX`0``Z?#\____)?A/"0AH@`$``.G@_/__ -XM_R7\3PD(:(@!``#IT/S___\E`%`)"&B0`0``Z<#\____)010"0AHF`$``.FP -XM_/___R4(4`D(:*`!``#IH/S___\E#%`)"&BH`0``Z9#\____)1!0"0AHL`$` -XM`.F`_/___R444`D(:+@!``#I%`)"&B``@``Z>#Z____)7Q0"0AHB`(``.G0^O___R6`4`D(:)`"``#I -XMP/K___\EA%`)"&B8`@``Z;#Z____)8A0"0AHH`(``.F@^O___R6,4`D(:*@" -XM``#ID/K___\ED%`)"&BP`@``Z8#Z____)910"0AHN`(``.EP^O___R684`D( -XM:,`"``#I8/K___\EG%`)"&C(`@``Z5#Z____):!0"0AHT`(``.E`^O___R6D -XM4`D(:-@"``#I,/K___\EJ%`)"&C@`@``Z2#Z____):Q0"0AHZ`(``.D0^O__ -XM_R6P4`D(:/`"``#I`/K___\EM%`)"&CX`@``Z?#Y____);A0"0AH``,``.G@ -XM^?___R6\4`D(:`@#``#IT/G___\EP%`)"&@0`P``Z<#Y____)<10"0AH&`,` -XM`.FP^?___R7(4`D(:"`#``#IH/G___\ES%`)"&@H`P``Z9#Y____)=!0"0AH -XM,`,``.F`^?___R744`D(:#@#``#IA0"0AH8`,``.D@^?___R7L4`D(:&@#``#I$/G___\E\%`)"&AP`P``Z0#Y -XM____)?10"0AH>`,``.GP^/___R7X4`D(:(`#``#IX/C___\E_%`)"&B(`P`` -XMZ=#X____)0!1"0AHD`,``.G`^/___R4$40D(:)@#``#IL/C___\E"%$)"&B@ -XM`P``Z:#X____)0Q1"0AHJ`,``.F0^/___R4040D(:+`#``#I@/C___\E%%$) -XM"&BX`P``Z7#X____)1A1"0AHP`,``.E@^/___R4<40D(:,@#``#I4/C___\E -XM(%$)"&C0`P``Z4#X____)211"0AHV`,``.DP^/___R4H40D(:.`#``#I(/C_ -XM__\E+%$)"&CH`P``Z1#X____)3!1"0AH\`,``.D`^/___R4T40D(:/@#``#I -XM\/?___\E.%$)"&@`!```Z>#W____)3Q1"0AH"`0``.G0]____R5`40D(:!`$ -XM``#IP/?___\E1%$)"&@8!```Z;#W____)4A1"0AH(`0``.F@]____R5,40D( -XM:"@$``#ID/?___\E4%$)"&@P!```Z8#W____)511"0AH.`0``.EP]____R58 -XM40D(:$`$``#I8/?___\E7%$)"&A(!```Z5#W____)6!1"0AH4`0``.E`]___ -XM_R5D40D(:%@$``#I,/?___\E:%$)"&A@!```Z2#W____)6Q1"0AH:`0``.D0 -XM]____R5P40D(:'`$``#I`/?__P````!5B>564X/L$(/D\(M=!(G1C72=#(7; -XMB378=0D(?C:+10B%P'0OHP`@"0@/MA"$TG0C@\`!ZPH/MA"#P`&$TG04@/HO -XM=?&C`"`)"`^V$(/``832=>RX0$X)"(7`=#2)#"3H5_[__\<$)/RP"`CH2_[_ -XM_^AR]O__C44(B70D"(E$)`2)'"3HYQL``(D$).A+_?__Z-;X___KS9"0D)"0 -XMD)"058GE@^P(@#WD70D(`'0,ZQR#P`2C""`)"/_2H0@@"0B+$(72=>O&!>1= -XM"0@!R<.058GE@^P(H2A/"0B%P'02N`````"%P'0)QP0D*$\)"/_0R<.0D)"0 -XMD)"0D)"0D)"058GE@^P8Z%77``#'!>AV"@@`````QT0D!!````#'!"0````` -XMZ->``0"CM'8*",=$)`@!````QT0D!`(```")!"3HUO;__\=$)`01````QP0D -XM`0```.BF@`$`H\R7"@C'1"0(`0```,=$)`0"````B00DZ*7V___'1"0$$@`` -XM`,<$)`(```#H=8`!`*,$=@H(QT0D"`$```#'1"0$`@```(D$).AT]O__QT0D -XM!!,```"AM'8*"(D$).A#@`$`HT29"PC'1"0(`0```,=$)`0"````B00DZ$+V -XM__^A!'8*"(D$).A%_/__H_R9"PBAS)<*"(D$).@S_/__H^!U"0C)Z3S7``"- -XMM@````"-OP````!5B>6#[`B+10B+$(72=23'1"0$Q)@*",<$))`O"0CHO>`! -XM`#WX;PD(=!6)10C)Z0WP`P")!"3HY9\#`(7`=>O),<##C;8`````C;PG```` -XM`%6)Y5=64X/L'(MU"(-^"/\/A%@!``"+/;AW"@BAO'<*",<%N'<*"`````#' -XM!;QW"@@`````A?^)1?!^&3';B?:+5?"+!)J#PP&)!"3H7X,#`#G[=>N+1?") -XM!"3H4(,#`(U&3,=$)`@D(```B40D!,<$)*!W"@CH8?O__Z&T=@H(B00DZ!A[ -XM`0"+!J/\70D(BT8(H[1V"@B#?@3_=!6A1)D+"(D$).CV>@$`BT8$HT29"PB# -XM?@S_=!6AS)<*"(D$).C;>@$`BT8,H\R7"@B#?A#_=!6A!'8*"(D$).C`>@$` -XMBT80HP1V"@B+1B"CD'8*"(M&-*.\F`H(BT8DHTB:"PB+1BBC2'<*"(M&+*.T -XMF`H(BT8PHS"9"PB+1A2CP'8*"(M&&*/@F0L(BT87UW#HXR8"@CKNHM&0(7`=.J+"(7)=.3'1"0$Q)@*",<$ -XM)"0V"0CHDMX!`(7`=,S'10@D-@D(@\0<6UY?7>EKX`$`C70F`(V\)P````!5 -XMB>575E.!["P!``"A+)H+"(L5*)H+"(F%'/___Z$DF@L(B948____BQ4@F@L( -XMB844____H1R:"PB)E1#___^+%1B:"PB)A0S___^A%)H+"(F5"/___XL5$)H+ -XM"(F%!/___Z$,F@L(B94`____BQ4(F@L(B87\_O__H02:"PB)E?C^__^+%0": -XM"PB)A?3^__^)E?#^___H-7,``(,%`%X)"`&)A>3^___'!"0`F@L(Z,CT___H -XM=YP!`*'L70D(HW!V"@BAP)@*"(7`=!R+10B%P`^$V@$``,<%P)@*"`````#H -XMJGT!`.O`H?R8"@B%P`^%^P,``*&,=@H(A"0B% -XMP'02B00DZ*F``P#'!8!>"0@`````H91W"@B%P`^%8@(``,<$)'AV"@CHMFT! -XM`(G#H91W"@B%P`^%-P(``,=$)`20Z04(QP0D>'8*".CC=0``A=MT#:&`7@D( -XMA<`/A!,#``#'1"0$Q)@*",<$)&`R"0CHOMP!`(7`=#N+'>AV"@C'!<"8"@@! -XM````QP7H=@H(`````,<$)'AV"@CH9%$!`.C/C@$`QP7`F`H(`````(D=Z'8* -XM",<$)`````#H?_?__Z'L70D(QP7(K`L(`0```(7`#X5L`0``BTT(A"9"PB%_P^$*@$``(`]B)@*"`!T#X,]@%X)"`$9P"`%B)@* -XM"(L-[%T)"(7)=1N+%8!>"0B%TG01QP0D````0.@5<@``D(UT)@"A<'8*"(7` -XM=2>A\%T)"(7`#X1*`0``QT0D!`````#'!"1X=@H(Z,:6``"-M@````#'!"1X -XM=@H(Z"1T``#I]_W__XN%Y/[__\<%_)@*"`````")!"3HMW,``(N5'/___XN% -XM&/___XD5+)H+"(N5%/___Z,HF@L(BX40____B14DF@L(BY4,____HR":"PB+ -XMA0C___^)%1R:"PB+E03___^C&)H+"(N%`/___XD5%)H+"(N5_/[__Z,0F@L( -XMBX7X_O__B14,F@L(BY7T_O__HPB:"PB+A?#^__^)%02:"PBC`)H+".@(<0`` -XMZ7K]__^+-?!="0B%]@^%R/[__XL=3)H+"(7;#X6Z_O__C;0F`````(/H`0^? -XMP`^VP(E$)`3'!"1X=@H(Z/0#`.F._?__QP0D>'8*".A4C`$`H80@ -XM"0B%P`^%Z`$``*&`=@H(QT0D"`````#'1"0$>'8*"(D$).BZB`$`QT0D!$`K -XM!@B)PXD$).A8"0B%P'0,QP0D````0.A3<```Z!ZN`P"AU)<*"#'2 -XMQT0D$`$```#'1"0,`````,=$)`@`````A<`/G\*#Z@$)T(E$)`2)'"3H";T! -XM`*&TF0L(A<`/A4P!``"+10B%P'05BSW`=@H(A?\/A1L!``"-M"8`````QT0D -XM"`8```#'1"0$`'8)",<$)'0O"0CH%.,!`.GO_?__BSW`=@H(A?\/A-_\__^+ -XM-?!="0B%]@^%T?S__X`]B)@*"``/A<3\__^+'>"9"PB%VP^%MOS__^G)_/__ -XMC78`BY7D_O__QP7\F`H(`````(,M`%X)"`&)%"3H<7$``(N%'/___XN5&/__ -XM_Z,LF@L(BX44____B14HF@L(BY40____HR2:"PB+A0S___^)%2":"PB+E0C_ -XM__^C')H+"(N%!/___XD5&)H+"(N5`/___Z,4F@L(BX7\_O__B140F@L(BY7X -XM_O__HPR:"PB+A?3^__^)%0B:"PB+E?#^__^C!)H+"(D5`)H+"('$+`$``%M> -XM7UW#BS7@F0L(A?8/A=[^__^+'?!="0B%VP^%T/[__\<$)`````#HI/L"`.F_ -XM_O__QP0D>'8*".CCF0,`H80@"0B%P`^$__W__\<$)'AV"@CH*IX#`.GN_?__ -XMQP4X=PH(`````,=$)`3$F`H(QP0DJ$`)".A7V`$`A<")PP^$=0(``(L0A=(/ -XMA&L"``"-1>R)!"3HU.S__XL;B1PDZ$YO`0"%P(F%[/[__P^%T@(``+A8`@`` -XM`P4,7@D(.T7L#X\T`@``BP.%P`^$(@(``(G?Z;$```"+1;P+1<`/A)<```"+ -XM1:0YP@^,C````(L-#%X)"#G(?P0YRGY^H329"PB%P`^%N0(``(7;N$7)"`@/ -XMA;0"``")!"3HU'@!`,=$)`0P*@@(B<.)!"3HHG```(.][/[__P$/A.T"``"A -XM@)@*",=$)`RDL0@(QT0D"`<```#'1"0$"P```(D$).@@SP``B70D"(E<)`2) -XM!"3HL,@#`(D<).BX;P``BT<$@\<$A<`/A&H!``")!"3H(ND#`(U5C(E4)`2) -XMQHD$).BM[___A"0B#P`$Y -XMT`^-2P$``*$TF0L(A<`/A38!``")#"3H(^___XN5(/___XD4)(G#Z`=Z`P"% -XMVP^$)____XD<).AS\O__A<`/A!?___^)'"3H8_+__\>%Z/[__P````"%P'40 -XMZ?S^__^-="8`@X7H_O__`8D<).@]\O__AC^__^)="0(B50D!(D$).@WQP,`Z8K^__^)]HM%[*,,7@D(QP0D```` -XM`.@L[P,`Z&?8`P#HHJ8#`(GVZ'NJ`P"+%:1W"@B+#;1W"@BAH'<*"#,%L'<* -XM"#'1"<%T%NC9AP$`QP0D`0```.A-G@,`Z4[X__^#/=`D"0@"=>''1"0$```` -XM`,<$)`````#HZ]4#`.O+A=L/A<+^__^+A2#___^)!"3HTW@#`.GV_?__BP.) -XM!"3H9'@!`(7`B?8/A!K]__^#K>S^__\!BP.#PP2)!"3HEM,!`(7`#X\#_?__ -XMN`$```#I^?S__XUT)@"%VP^$L/W__Z&`F`H(QT0D#(VQ"`C'1"0(!@```,=$ -XM)`0+````B00DZ)/,``#I(OW__XU5C#';C84L____B10DQT0D"&````")1"0$ -XMZ&OP__^+5:P[%:B9"PB+C2#___\/G\/I[/W__Z&`F`H(QT0D#)*Q"`C'1"0( -XM!0```,=$)`0+````B00DZ#/,``")7"0$B00DZ,?%`P#I$OW__Z&`F`H(QT0D -XM#'&Q"`C'1"0(`P```,=$)`0+````B00DZ/W+``"+E>C^__^)5"0$B00DZ(O% -XM`P#IWOS__XVV`````%6)Y5>)SU:)UE.![%PA``#'1"0$`````(D$).A@;0$` -XM,=*#^/\/A`\#``"-7?")1?")'"3'1"0$0!X%".CO;```BT7PQT0D!/____^) -XM!"3HG',!`(D<)(E%\.B!;```B1PDZ"EL``"+1?#'1"0(`0```,=$)`0"```` -XMB00DZ#KI__^+7?"Z`0```(7;#XBH`@``A?;'A________=!>-19")1"0$ -XMB1PDZ-WP__^%P`^(A00``(V%P-[__\=$)`2`I@0(B00DZ&-L``"+#91W"@B% -XMR0^%!00``*'\70D(BQ7H=@H(QX70WO_______\>%S-[_______^)A<#>__^A -XMM'8*"(72QX7$WO_______XF%R-[__P^%.@(``*'`=@H(A?^)A=3>__^AX)D+ -XM"(F%V-[__Z%0=PH(B87#>__^A2)H+"(F%Y-[__Z%(=PH( -XMB87HWO__H;28"@B)A>S>__^A,)D+"(F%\-[__Z&\F`H(B87TWO__H>Q="0B) -XMA?C>__\/A;0!``#'A03?__\`````H>R9"PC'1"0()"```,=$)`2@=PH(B84( -XMW___C84,W___B00DZ!;N__^+10B%P'1JBU4(BP*%P'1AQT0D!,28"@C'!"0D -XM-@D(Z$;2`0"%P`^$#@,``(L`A<`/A`0#``")!"3H[',!`(F%_-[__XM%"(D$ -XM).C;%_-[_ -XM_P````"+50B)';1V"@C'!;QW"@@`````QP6X=PH(`````(F5`-___\<%L'<* -XM"`````#'!;1W"@@`````QP6@=PH(`````,<%I'<*"`````#H3S,!`*&T=@H( -XMQP60=@H(`````,<%O)@*"`````")!"3H&NW__X/_`<<%X)D+"`````#'!5!W -XM"@@`````QP5(=PH(`````,<%2)H+"`````#'!3"9"P@`````H\!V"@@9P"$% -XMC)@*"*&4=PH(QP6TF`H(`````(D][%T)",<%_%T)"`$```"%P`^%]0$``,<$ -XM)`````#HF?+__XV%P-[__XD$).A;:0``N@$```"!Q%PA``")T%M>7UW#H8R8 -XM"@B)A03?___I1O[__XUUD(ET)`3'!"0`````Z"+N__^#P`%T9XV%,/___XE$ -XM)`2A1)D+"(D$).@&[O__@\`!=$N+190[A33___\/A-P!``"A1)D+",=$)`3_ -XM____QP0D`````(F%Q-[__^@W<`$`QT0D"`$```#'1"0$`@```*-$F0L(B00D -XMZ.;E__^)="0$QP0D`0```.BF[?__@\`!=&>-A3#___^)1"0$H___HNV\!`,=$)`@!````QT0D!`(```"CS)<*"(D$).AJY?__B70D!,<$ -XM)`(```#H*NW__X/``71IC84P____B40D!*$$=@H(B00DZ`[M__^#P`%T38M% -XME#N%-/___P^$O````*$$=@H(QT0D!/_____'!"0"````B870WO__Z#]O`0#' -XM1"0(`0```,=$)`0"````HP1V"@B)!"3H[N3__XGVZ`MK`0#I0_S__XVV```` -XM`(,%Q*P+"`''1"0$L)`(",<$),2L"PCH-6@``.G;^___QX7\WO__`````.G[ -XM_/__D,<$),2L"PCH=&<``(,%Q*P+"`''1"0$L)`(",<$),2L"PCH^6<``.G? -XM_?__B1PDZ%QJ`0"Z`0```.GL_?__BT60.X4P____#X4U____Z6[___^+19`[ -XMA3#___\/A:7^___IW/[__XM%D#N%,/___P^%%?[__^E,_O__C;8`````58GE -XM5U93@^PD<9@`` -XMQT7P`````.E7____QT0D!#PT"0B)'"3HC./__X7`=>"+7@B-?@C'1?`"```` -XMA=L/A2[____'!"2!```0Z(MC``"+7@C'1?`"````Z1/____'!"1%```0Z'!C -XM``"+7@C'1?`!````Z?C^__^058GE4X/L%*&4=PH(BUT(AGW8@``C;0F`````*'`=@H( -XMA"0@`QP0D``````^4PC')Z+/W__^)'"2)QN@Y9```@\00B?!;7EW#BT@$ -XMAR+-S'`A?9T5HU?!,=%\`````#K#Y") -XMW\=#_#H```"+,X/#!(/^.G0$A?9U\L=#_`````"+!X7`=06_C#,)"(D\).A/ -XMV@,`BU7PBTWLB021@\(!A?:)5?!UO(G0P>`"BU7LQP0"`````(D4),=$)`3P -XM(P8(Z%UC``#'1"0,`@```,=$)`C$F`H(BTWLQP0DE#()"(E,)`3H^L\!`(M% -XM[(D$).C?8@``BU7LB54(@\0<6UY?7>E]8@``C;8`````C;PG`````%6)Y8/L -XM"*'4EPH(AA<____H>1U"0B%P'0HBT4(B00DZ(3D___' -XM1"0$$P```(M#'(D$).C1Y/__BS:%]HGS=9'KRN@&OP``C;8`````Z\N-M"8` -XM````C;PG`````%6)Y593@^P0H329"PB%P`^%B@```.AV_?__BS4`F`H(A?9T -XM2XGSBU,,]L8!=#*+0QP[!=R9"PAT)X'B___]_XE3#,=$)`0!````BT,7B)!"3HQEX``.BA -XM_O__@\0D6UW#QT0D!,28"@C'!"0`+@D(Z)?&`0"%P'1-,575E-1@>R8`0``BP&+203'1>P` -XM````QT7H`````(F%>/[__XF-=/[__\=%Y`````#'1"0$14!`)#K!8/X`G\^QT0D -XM!`````#'!"3,L0@(Z.5>`0"#^/]UXL=$)`0`````QP0D4\<(".C,7@$`@_C_ -XM=0<``(D$)+]P -XMN0@(Z#=F`0"Y!0```/RC#'8*"(G&\Z8/E,`/ML"CE)@*",<$)-:Q"`CH`=D# -XM`(D$).BIU`,`HZ28"@C'!"3>L0@(Z.C8`P")!"3HD-0#`*-T=PH(H=AU"0B) -XM!"3H/MD#`*/0EPH(B00DZ%'7`P"CV'4)",<$).>Q"`CHL-@#`(D$).A8U`,` -XMQP6,F`H((0```,<%1)H+"%X```#'!32:"P@^````QP6,=PH((P```,<%;'<* -XM"`````"CU)D+"*-,=PH(QP0D\;$(".A@V`,`QT0D"`(```#'!"2@,PD(B40D -XM!.B(S0$`BXUT_O__BP&)!"3H.-@#`(D$).C@TP,`QP7X70D(`````*/T70D( -XMQT0D!*0N"0B)!"3H[=G__X7`#Y3`#[;`B86$_O__Z`K@__^CA'8*".B`V___ -XMH\QV"@CH5N#__Z,LF0L(Z)S>__^+M73^__^CZ)@*"(L&@#@M#X3`$0``@[UX -XM_O__`@^$DQ$``,<%-)D+"`````#'!6"9"P@!````NX````#'!"3UL0@(Z*38 -XM__^%P`^5P`^VP*/`I0L(QT0D!$7)"`C'!"0`````Z%/?___'1"0$1BT2>-*D```0`=2R#PP&!^_\```!_(??#```` -XM0'7M@?O_````=MJ)'"2)]N@WV?__J0``!`!TU(,]@%$)"`$/E,(QP('[_P`` -XM``^?P"'0HV"9"PBA/&0)"(7`=`VA0&0)"(7`#X1>$0``Z'T5`P#'!"1T=@H( -XMZ&W7___HG-H#`.@WX?__H;1V"@B)!"3H=MO__X7`B<,/A$P1``")QK@%```` -XM_+_^L0@(B<'SI@^$^`0``(D<).BAU@,`B00DZ$G2`P#'1"0(`@```,<$)+PN -XM"0B)1"0$B6`$`QT0D"`(```#'!"2X+PD(B40D!.BFR0$`C9V<_O__QT0D -XM!``!``")'"3H/-S__X7`#X@]#@``QD6;`(D<).A\U`,`QP0DE#`)"(E$)`3H -XM7,L``.BG=@,`QP0D++((".AGU?__A<")PP^$Z0X``(D$)(G>OQZR"`CH0M0# -XM`(D$).CJSP,`B00DZ!)8`0#'1"0(`@```,<$)-`O"0B)1"0$Z!K)`0"Y"``` -XM`/SSI@^%P0P``,>%?/[__P$```"+M7S^__^_/K(("+D&````_(DUB'<*"(G> -XM\Z8/A3L"```QP*/DF0L(BSWDF0L(A?\/AL@@(Z&S4 -XM__^%P(G#="Z)!"3HGMO__X/X!(F%O[NR"`BY!P```/.F#X2,#0``B[5X_O__@^X!A?8/CD,.``"+E8C^ -XM__^+`H`X+0^%,@X``(U0`0^V0`&$P`^$(PX``,>%@/[__P`````Q_XG3ZS*A -XM#'8*",<%D)@*"`$```")7"0$QP0D?````(E$)`CHV%,```^V0P&#PP&$P`^$ -XM`0$``#QX=\H/ML#_)(6,MP@(N'"Y"`CI??C__XU#!8D$).D`^___B=Z_1+(( -XM"+D#````\Z8/A+']__^+A7S^__^#\`'II?W__XUT)@"#_@$/A%L'``"#A8C^ -XM__\$BXV(_O__BP&)!"3H8-$#`(D$).@(S0,`A<"CD'8*"'0HB00DZ/?,`P") -XM!"3H'U4!`,=$)`@"````QP0D0#8)"(E$)`3H)\8!`*&0=@H(B00DZ*K'`P"+ -XM#9!V"@@YP7,G@WC\7(U0_'4>,<#K"XUV`(/J!(,Z7'4'@\`!.=%R\:@!#X6. -XM!@``@^X!QP6$(`D(`````+\!````#[9#`8/#`83`#X7__O__@^X!@X6(_O__ -XM!(7V?B:+E8C^__^+`H`X+749C5`!#[9``83`=`Z+C8#^__^%R0^$E?[__X7_ -XM#Y3#BX6$_O__A<`/A<4'``"$VP^$J0```(7V#XZA````QT0D!`````"+C8C^ -XM__^+`8D$).B950$`A<")PP^(&0X``*'T70D(B00DZ+)?`P"+E8C^___'!?A= -XM"0@!````BP*)!"3H*-`#`(D$).C0RP,`H_1="0C'1"0$$````(D<).B[6P$` -XMA<"CM'8*"`^(7PT``,=$)`@!````QT0D!`(```"AM'8*"(D$).A=T?__@X6( -XM_O__!,<%A"`)"`````#HVUL!`*&T=@H(B00DZ$K7__^%P*/`=@H(#X3"!@`` -XMH!V"@B)1=RA -XMY'8*"(E%X.@E3@``QP0D`)H+".C%S___@P4`7@D(`<<%P)@*"`````"%P`^5 -XMP`^VP`L%"%X)"`^$`00``(N%C/[__XLUP'8*"(,M`%X)"`&CE'<*"(M%S(7V -XMH]!V"@B+1="CU'8*"(M%U*/8=@H(BT78H]QV"@B+1=RCX'8*"(M%X*/D=@H( -XM=`Z+'9!V"@B%VP^$^`D``(M%Z(7`#X7%!```BT7LA<`/A:D$``"AE'<*"(D$ -XM).BGV?__BPW`=@H(A%A/[__P$```#IUOG__\<%*'<*"`$` -XM``#IQ_G__\<%!%X)"`$```#IN/G__[\!````QP4DF0L(`0```.FD^?__QP4( -XM7@D(`0```.F5^?__QP60F`H(`0```.F&^?__QT7D`0```.EZ^?__QX6`_O__ -XM`0```.EK^?__QP7H70D(`0```.E<^?__OP$```#'!80@"0@`````QP64=PH( -XM`0```.D_^O__QP0D@#()".BJP`$`Z2WY___'!"1@,@D(Z)G``0#I'/G__\=% -XM[`$```#I$/G__\=%Z`$```"0Z0/Y__^_`0```,<%O)@*"`(```#'!80@"0@` -XM````Z>7X__^+E7#^__^_XK$("+D%````_(U$$_R)QO.F#X5R]___B1PDZ);* -XM`P")!"3H/L8#`(D$).AF3@$`QT0D"`(```#'!"0H,@D(B40D!.ANOP$`BYUP -XM_O__A=L/A5'W___I+_?__\<%D)@*"`$```#'!"0I````Z$5,``#I5_G__Z', -XMEPH(B00DZ+_1__^%P`^$Z_K__\<%E'<*"`$```#IW/K__\<$)`````#H0.S_ -XM_^F4^/__QP4(7@D(`0```.E&]/__H]'__X7`#X1;^O__BX6` -XM_O__A<`/A4WZ__^AA'8*"#L%+)D+"`^$/@0``.B_SO__QP`-````QP7D=0D( -XM`0```.BJSO__BP")!"3H4,S__XE$)`BA#'8*",<$)#8```")1"0$Z(M+``#I -XM^OG__XN%=/[__X/`!(F%B/[__^DV]___A=L/A`0&``")'"3H8LD#`(D$).@* -XMQ0,`B00DZ#)-`0#'1"0(`@```,<$)*0O"0B)1"0$Z#J^`0#'1"0$Q)@*",<$ -XM)*0O"0CH=K4!`,<$)*`_"0B)1"0$Z`;```#I)_3__\<$)+6R"`CH1:8#`.DH -XM_?__QP0D@#$)".B4O@$`Z2/U___'1"0$Q)@*",<$)(`Q"0CHR[0!`(7`=`S' -XM!"2`,0D(Z*NV`0#'!>29"P@`````Z0OY___'1"0$`````,<$)`,```#H],[_ -XM_^DB^/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".AX30``,2%P`^$^?K__\<$ -XM)`````#HD0L``)#IY_K__\<$)(`R"0CH'[T!`.E&^___QP0D8#()".@.O0$` -XMZ2K[__^-1`/[OV2R"`C\N08```")QO.F#X2R_/__Z0CT__^)WK\QL@@(N04` -XM``#SI@^$*_/__XG>OS:R"`BY"````/.F#Y3`#[;`B85\_O__Z1;S___'1"0( -XM`@```,=$)`3H-@D(QP0DJ#()".@\O`$`Z1[X___'1"0$+P```(G>B1PDZ,'' -XM__^%P'0#C7`$QT0D"`,```#'1"0$O"X)"(DT).@"R___A/[__P&%P`^$_NW__\<$)`Q> -XM"0CH,<;__\<$).`U"0CH.;L!`.GA[?__Z,^C`@#IF.[__Z',=@H(.P7HF`H( -XM#X6Q^___Z>CU___'!"1%R0@(Z<+N___'!8AW"@@`````QP0D1[((".A>QO__ -XMN@$```"%P'05_(G&OUH;"0BY`@```/.F#Y7`#[;0B17DF0L(Z4_Q__^AS'8* -XM"(D$).B<2P$`A<`/A!@#``"+`(D$).@*Q0,`QT0D"`(```#'!"2X+PD(B40D -XM!.@RN@$`QT0D!,28"@C'!"2X+PD(Z"ZQ`0#'!"3@/PD(B40D!.B^NP``Z2/P -XM___'!"10L@@(Z+W$`P")!"3HA>7__^E$\?__QT0D!,28"@C'!"0`,`D(Z.RP -XM`0#'!"1^L@@(B40D!.C,H0,`QT0D#.BR"`C'1"0("````,=$)`0+````H8"8 -XM"@B)!"3H!Z@``(D$).B?H0,`QP0D`````.B#YO__Z1+R___'1"0$Q)@*",<$ -XM)``P"0CHBK`!`,<$)!$7"0B)1"0$Z&JA`P#'!"0`````Z$[F__^+A73^__^+ -XM6`3IO_'__\=$)`0!````QP0D`P```.A(RO__Z9OU___'!91W"@@!````Z:;V -XM__^[`0```,>%@/[__P````#I1?/__\=$)`3$F`H(QP0DD"\)".@0L`$`ND!! -XM"0CH=N/__XL]-)D+"(7_#X4+_/__Z?O[___'1"0$Q)@*",<$))`O"0CHWZ\! -XM`+H@00D(Z$7C___IJOO__\<$)``````QR3'2N*:R"`CH*]O__^DB^___H81V -XM"@B)!"3H.4D!`(7`#X3@`@``BP")!"3H1\,#`,=$)`@"````QP0DI"\)"(E$ -XM)`3H;[@!`,=$)`3$F`H(QP0DI"\)".AKKP$`QP0DP#\)"(E$)`3H^[D``.G, -XM^?__H;R8"@B%P`^%,/O__Z%`F0L(A<`/A2/[___'1"0$`````,<$)`````#H -XM>&\``.D*^___BQ6\F`H(A=(/A73Z__^A0)D+"(7`#X5G^O__QT0D!`````#' -XM!"0`````Z$1O``#I3OK__X/[`70G@_L"C;0F``````^$50(``(7;#X4=`@`` -XMQP6T=@H($````.EU\O__QP6T=@H($0```.EF\O__H>29"PB)!"3HU\P"`.D\ -XM]?__Z'W0`@#'!"0!````C;8`````Z"O1`@#I[/7__\<%Y'4)"`$```#H(\?_ -XM_XL`B00DZ,G$__^)1"0(B[6(_O__BP;'!"0V````B40D!.@!1```Z:WQ___' -XM!"0>L@@(Z>'\__^)%"3H],/__^E"^___QT0D!`$```"[$@```,<$)!(```#H -XM%LC__\=$)`0!````QP0D%0```.@"R/__QT0D!`$```#'!"06````Z.['___' -XM!"02````Z"+)__^%P`^$D0$``(UUG.MD.P753BU4(A=)X-(L=(%X)"(G(ZPF0 -XMC70F`#G(=!R#Z@&#^O]T)XM`!#T<7@D(=>J)V#G(=>B-="8`6S'`7<.+`3T< -XM7@D(=06A'%X)"(M`#%M=PXVT)@````!5B>5=QP447@D(`````,.058GE4X/L -XM!(M="(M#"(7`=!/'0P0`````QP,`````@\0$6UW#BT,,B00DZ)%-`P")70B# -XMQ`1;7>F$30,`C70F`%6)Y5=64X/L+(M5"(72#Y3`=0^+70R%VW4(@\0L6UY? -XM7<.$P,=%Z`````#'1>P`````QT7P``````^%80$``,=$)`0`````B10DZ('O -XM``")1>#'1"0$,"H("(M%X(D$).B;0@``BT7@B00DZ'"[`P#'1"0$@`$``(D$ -XM).A@1`$`B470@\`!#X3_````QT0D!,28"@C'!"2@-0D(Z,"I`0`]^&\)"'0* -XMBPB%R0^%&@$``+[_____H>AV"@B-?>C'!>AV"@@`````B478H!^QQ>"0AT\HM5W(72=+B+0PR#[@&)/"2)1"0$Z"9&`0#' -XM!"1\N0@(B40D!.CFF0,`@_[_=;^0BT70B00DZ/5#`0"+1=2CS)<*"(M%V*/H -XM=@H(BT7@B00DZ,I```"#Q"Q;7E]=PXGVQT0D!,28"@C'!"1@-0D(Z*RH`0`] -XM^&\)"'0GB00DZ/VW`P")1>#IA_[__XD$).@-N@,`B00DZ+&\__^)QNG4_O__ -XMQT0D!,28"@C'!"20+PD(Z&JH`0#'1"0$)#4)"(D$).@JMP,`B47@Z43^__^) -XM]E6)Y5.#[!2+70C'!11>"0@!````QT0D!&#"0AT%C#2BT`$@\(!/1Q>"0AU\XT4E00```")%"3H -XM7$L#`(L=(%X)"('['%X)"(G'B<9T&XM##(D$).BOM@,`B0:+6P2#Q@2!^QQ> -XM"0AUY<<&`````,=$)`3P(P8(B3PDZ,D_``#'1"0,`@```,=$)`C$F`H(B7PD -XM!,<$)``V"0CH::P!`(D\).A1/P``B3PDZ/D^``"#Q!Q;7E]=PY!5B>564X/L -XM$,=$)`3$F`H(QP0D`#8)".ATI@$`A<")PP^$S0```(L`A<`/A,,```"+#2!> -XM"0B!^1Q>"0AT*XL!BU$$B5`$BU$$B0([#629"PATW8D,).CU^___BPT@7@D( -XM@?D<7@D(==6A9)D+"*,<7@D(HR!>"0C'`!Q>"0C'0`0<7@D(BS.%]G57ZUN- -XM=@"+`(7`=%+'1"0$`0```,<$)!````#HQDD#`(G#BP:)!"3HFK4#`(/&!,=# -XM"`````")0PRA9)D+"(E#!*%DF0L(BP")`Z%DF0L(B1B+`XE8!'0&BP:%P'6H -XM@\006UY=Z3W^__^#Q!!;7EW#C;8`````58GE5[\`!```5E.#[`S'!"0`!``` -XMZ,9)`P")P^L>B?;H=[[__XLP@_XB=4D!_XD<)(E\)`3H]DD#`(G#B7PD!(D< -XM).@TO/__AY`P")!"3H[[0#`(D<)(G&Z*5(`P"#Q`R) -XM\%M>7UW#B1PDZ)-(`P#H&K[__XDP,?:#Q`R)\%M>7UW#B1PD,?;H=D@#`.O/ -XMC70F`%6)Y5=64X'LC````(M%"(M=#(D$).ARN___BU4(@SHOB<+1(H$@\$!A<")1(L$=?&+%HGW -XMA=)U5(GWC4;\.T4(=`_'1OP`````B?N+`X7`=;G'1"0$Q)@*",<$))`O"0CH -XM%:0!`(D$)(G#Z$>Z__^%VXG&=`F#.R\/A*X"``"+10B!Q(P```!;7E]=PX/' -XM!(L'A`0K?0B)#"3H#;G__XG#BT6`B00DZ`"Y__^-5`,!B?C!^`*-!`+!X`*)!"3H -XMG48#`(M5"(G&B<&+`H/"!(D!@\$$A^+58")V8L"@\($B4'\@\$$A^)V8GZBP*# -XMP@2)0?R#P02%P'7QBTV,C7PQ_(M5"(G[B10DZ'9$`P")=0CI'_W__XE$)`B+ -XM30B)'"2)3"0$Z">Y__^%P'47BU4(BP2R@_@O#X0L_?__A<`/A"3]__\['1A> -XM"0AT,HD<).B0L@,`C564B50D!(D$).@=N?__@\`!=!:+192)'1A>"0BCG"`) -XM"(M%F*.@(`D(BTT(C7V4B0PDZ#BP`P")QHL&A)QNF0_O__QT;\+P```(-M@`2+58"#.B]U -XM](M-A(7)=%\QTHM$EP2+38")1)$$@\(!A575HG&4XG#@^P,@S@O='.A -XM9)D+"(M`#(D$).A:M?__B30DB<,QP(/[`0^4P(/H`2'#Z$.U__^-!`.-!(4( -XM````B00DZ.5"`P")QZ%DF0L(B?F+4`R+`H/"!(D!@\$$AB)1>R+`(U(!(E-\(M0!(72#X35```` -XM@SHM#X78````,?_K'('/@````(-%\`2+1?"+$(72#X23````@SHM=5Z+0@2) -XMTX7`=1?KV2GQN`$```#3X`G'BT,(@\,$AR#X`Z%P(D1=`.#SP&#Q!R)^%M>7UW#BT7P,?^+3>R)`>OJ -XMBTWP,?^+5>R)"NO>ZPV0D)"0D)"0D)"0D)"058GE@^P8B5WXB77\@S@K=`XQ -XMVXG8BW7\BUWXB>Q=PXM0!(U(!/?"````0'4G@_I_=ACK((M0"/?"````0(UV -XM`'42@_I_=PV#P`3V!)6]40D(!'7@A=)UN8D,).@`FP$`A<")QGZKBQUDF0L( -XMZPT['629"PAT&(/N`728BUL$@?L<7@D(=>B+'2!>"0CKX,<$)!H``!#H9C(` -XM`.O:C70F`%6)Y5.)PX/L%,=$)`3$F`H(QP0D9#,)".B3G`$`QT0D"`8```#' -XM!"1T,PD(B40D!.AKI0$`B5PD!,=$)`@&````QP0D9#,)".A3I0$`B5PD!,<$ -XM)/@Z"0CH\Z8``(/$%%M=PXVV`````(V\)P````!5B>53@^P4BQUDF0L(C78` -XM@?L<7@D(=!;'1"0$^&\)"(M##(D$).C%]O__B4,,BUL$.QUDF0L(==>+0PR# -XMQ!1;7>E*____C78`C;PG`````%6)Y8/L&(U%"(D$).CO5P,`A<")PG09BT4( -XMB50D!,<$)(ZY"`B)1"0(Z+*,`P#)PXM%",<$))*Y"`B)1"0$Z)V,`P#)PXUT -XM)@"-O"<`````58GE5U93@^P\BS5DF0L(B478@^`$B474BT78QT7<`````,=% -XMX`````"#X`*)1=#ICP```(U%\(D$).AQ5P,`A<")QP^$G````(D$).B+L?__ -XMB<.+1?")!"3H?K'__XU<`P(!7>#V1=@(=!:+%>"7"@B-0O\Y1>!\"#G3#XRY -XM````A?]T$(E\)`3'!"29N0@(Z/N+`P"#?=0!QP0DG;D("!G`@^`6@\`*B40D -XM"(M%\(E$)`3HV(L#`(MV!#LU9)D+"'1=@?X<7@D(=.V+1=2%P'4FBT8,,?^) -XM1?"+1="%P`^$3____XM%\(D$).CLL/__C5@!Z6K___^+1=R+7=S'!"25N0@( -XMB40D!.B"BP,`@\,!B5W#I,____XGV58GE5XG75HG&4X/L#,=$ -XM)`3$F`H(QP0DX#D)".C/F0$`A"0AUVXDU9)D+"(M&#.@Z_?__Z"7R -XM__^+'2Q>"0C'1"0$Q)@*",<$)&`Y"0CH:YD!`(/X`1G`("0B%P'4$A=MU#(/$#%M>7UWI/FP#`(GXZ/?]__^#Q`Q;7E]=Z2ML -XM`P"+`XM3!(E0!(M3!(D"B1PDZ-;N___I>?___Y!5N:.Y"`B)Y;JMN0@(@^PH -XMC44(B5WTB77XB7W\Z-_Z___'!2Q>"0@!````B<.)QH'C@`````^%A0```(M% -XM"(L0A=(/A)@```"%VW4DBT4(BT`$AP0<7@D(=&8Q_SL=9)D+"`^$?0`` -XM`(M#!(L3B1"+$XE"!(D<).@D[O__.QUDF0L(=%*)\.@5_?__ZZ6-=@#'1"0$ -XMQ)@*",<$)'0S"0CHG)@!`(G"A=(/A6K___^)]HL=9)D+"(%[!!Q>"0AUFY"! -XM.QQ>"0AUDL<$)$(``!#H'"X``.N$B?*)^.@1_O__D.E-____BWL$@?\<7@D( -XM=%J+1PR)!"3HQ:D#`(E%\(D$).C6K/__A<`/B5K____HV;#__XL`B00DZ'^N -XM___'!"0V````B40D"(M%\(E$)`3HO"T``.DO____QP0D0P``$.BK+0``Z0?_ -XM__^+/2!>"0CKGHVT)@````"-O"<`````5;E%R0@(B>6Z][D("%93@^P0C44( -XMZ%;Y__^H0(G&=$*A9)D+"(L`.P5DF0L(=!R0/1Q>"0B+&'0(B00DZ/_L__^) -XMV#L%9)D+"'7EHR!>"0BC'%X)",=`!!Q>"0C'`!Q>"0CWQB`````/A8T```#W -XMQA````!U:XM5"(L*A575E.#['R+30R%R0^$=`$` -XM`(M%"#';QT7H`````,=%[`````#'1?``````ZP.#P`2+$(72="Z+2`2%R70G -XM@_HN=>N#^2YUYHM0"(72D`^%2P$``#M%"'0'@WC\+Y!USH/#`>O)A=L/A!D! -XM``"A9)D+"(M`#(D$).B-K/__C02%#````(D$).@R.@,`B46`H629"PB+0`R) -XM1"0$BU6`B10DZ&2K__^+=0B#/B\/A#P"``"+70C'1>P`````BQ,Q_X72=$&# -XM^BZ-H0,`A?]_#>LB@^\!QP`````` -XM=!?'1"0$+P```(M%@(D$).@FJO__AR%P`^%!P$``(MU@(L^A?\/A;4```"+,X7V#X5%____BT7HB00DZ',X -XM`P"+18"#Q'Q;7E]=PXM%"(D$).B=I`,`B46`BT6`@\1\6UY?7<.#^B\/A8;^ -XM___II_[__Y`[70AT$8-[_"^-M"8`````#X4?____A<`/A#'___^-6#[#C'1"0$`````(E= -XM](EU^(E]_(D$).@AV0``QT0D!#`J"`B)QHD$).@_+```,<"#/=B7"@@"B30D -XM#Y3`B40D!.BW_/__B<.)!"3H_:0#`(D$).@1J/__A!F)-"3H?"L``(DT).@D*P``B?#HW?/__^NYZ,*K__^#.`*-=@!T.^BU -XMJ___@S@4=#&-="8`Z*>K__^+`(D$).A-J?__B30DB"2)-"3H>"H``(D<).C0H0,`QP4L7@D(`0```.@A\___Z?K^__^+'11> -XM"0B%VP^$/@$``(DT).A&*@``,<#IW?[__XET)`3'!"3,.`D(Z.\I`0"%P`^% -XM=____\=$)`3$F`H(QP0DW#@)".BSD0$`A<`/A%O___^+$(72#X11____QT7H -XM`````,=%[`````#'1?``````BQB+`X7`=2KI_0```(DT).A7HP,`B00DZ&NF -XM__^%P`^)]0```(/#!(L[A?\/A-@```#'1>P`````BP.)1"0$C47HB00DZ)*? -XM`P"-1>B)!"3'1"0$+P```.@/G0,`C47HB00DB70D!.APGP,`C47HB00DZ%6= -XM`P"AV)<*"(/H`H/X`0^6P`^VP(E$)`2+1>B)!"3HA?K__XG'B00DZ,NB`P") -XM!"3HWZ7__X7`#XA<____BT7HQP4L7@D(`0```(D$).A&-`,`B30DZ!XI``") -XM^.C7\?__Z;#]__^)]HM%X(D$).AAI___B30DBZ(#`(E<)`C'!"0V```` -XMB40D!.B7)@``Z93^__^+1>B)!"3H]S,#`.DB_O__B3PDQP4L7@D(`0```.C@ -XM,P,`BT7HB00DZ-4S`P#I?/W__U6YM[D("(GENJVY"`B#[!B-10B)=?B)??R) -XM7?3H'_+__\<%+%X)"`$```")QHG'@>:`````#X6Y````BT4(BQB%VP^$QP`` -XM`(7V=22+10B+2`2%R70:QP0D#P``$.C^)0``BUWTBW7XBWW\B>Q=PY")V.CI -XM\O__A<")Q@^$_P```(M`#(D$).BDH0,`B<.)!"3HMJ3__X7`#X@U`0``QT0D -XM!,28"@C'!"2@.0D(Z)Z/`0"%P'0P.S5DF0L(="B+%HM&!(E"!(M&!(D0H629 -XM"PB+$(D6H629"PB)1@2)<@2A9)D+"(DPB?J)\.AQ]?__Z6[____'1"0$Q)@* -XM",<$)'0S"0CHJ(\!`(G#Z3'____'1"0$Q)@*",<$)"`Y"0CH+8\!`(7`#X30 -XM````QT0D!,28"@C'!"20+PD(Z'&/`0`]^&\)"(G#=`:+,(7V=0S'!"0B```0 -XMZ`8E``")'"3HSJ`#`(D$).CBH___A:`````#X6:````BT4(BQB%VP^$#P$``(7V -XM=22+10B+0`2%P'0:QP0D#P``$.A>(P``BUWTBW7XBWW\B>Q=PY")V.A)\/__ -XMA<")QG1SQP4L7@D(`0```(M`#(D$).C^G@,`B<.)!"3H$*+__X7`#X@'`0`` -XMH629"PB+4`2+`(D"H629"PB+$(M`!(E"!*%DF0L(B00DZ*;B__^)^HGPZ.WR -XM___KC<=$)`3$F`H(QP0D=#,)".@GC0$`B6#[!B)7?B)PZ&`F`H(B77\BS4,=@H(QT0D -XM#-BY"`C'1"0(`0```,=$)`0,````B00DZ#>#``")7"0(B70D!(D$).C'?`,` -XMBUWXBW7\B>Q=PXVV`````(V\)P````!5B>575E.![,P```"+=0CHO.7__X7` -XMB<,/A!(!``")!"3H&IT#`(U5E(E4)`2)!"3HIZ/__X7`#Y3`B<=U4H7V=`J+ -XM!H7`#X54`0``B?B$P'0^QP0DT;D(".@>H/__A<")QG0LC84T____B40D!(DT -XM).AFH___@\`!=!6+190[A33___\/A&8!``"-M@````#'1"0$,"H("(D<).C` -XM(P``QT0D!/AO"0B)'"3HP.7__XD<)(G&Z%8C``")'"3H_B(``,=$)`0!```` -XMQP0D$````.AJ+@,`,=*)<`R)P\=`"`````"C(%X)"*,<7@D(QT`$'%X)",<` -XM'%X)",<%+%X)"`````#H9O#__\=$)`@&````BT,,QP0D`#8)"(E$)`3HBY,! -XM`('$S````%M>7UW#Z#>C__^+`(D$).C=H/__QP0DAKD("(E$)`BA#'8*"(E$ -XM)`3H6'L#`(7V=`J+!H7`#X7`````N%/'"`CH,/[__\<$)%/'"`CHX)[__X/` -XM`0^$V````,<$)%/'"`CHWYT#`(D$).B'F0,`B<;I(O___XDT).B8FP,`C94T -XM____B50D!(D$).@BHO__@\`!#X2)_O__BT64.X4T____#X5Z_O__BT68.X4X -XM____#X5K_O__B30DZ#>9`P")QNG2_O__BT68.X4X____#X61_O__B30DZ&F= -XM`P")!"3H$9D#`,=$)`0P*@@(B<.)!"3H/R(``.EJ_O__B30DZ!*;`P")P^AK -XM_?__B1PDZ!^>__^#P`$/A"#___^)-"3HTI@#`(7`B<8/A6K^___I"?___\<$ -XM)`$```#H-[___^D7____D)!5B>5=HTA>"0C#C;8`````H4A>"0A5B>6%P'0, -XM7<<%2%X)"`````##H4Q>"0B%P'07BQ"#P`2C3%X)"(72=`E=B=`E____?\.A -XM4%X)"(L0A=)T%5V#P`2C4%X)"+@@````B15,7@D(PUVX_____\<%3%X)"``` -XM``##C;0F`````%6)Y8M%"(7`>":I````0'4?@_A_?QH/ML`/MX0`X"`)"*A# -XM=`O'!71>"0@!````D%W#C;0F`````(V\)P````!5B>5=QP7$EPH(`````,.0 -XM58GE@^P(B00DZ/*9`P#'!"0K```0HR!W"@CH$1X``,G#ZPV0D)"0D)"0D)"0 -XMD)"058GE5U93@^P\BQ5D7@D(A=)T"HL];%X)"(7_=0VC5%X)"(/$/%M>7UW# -XMB00DZ'Z7`P"+-61>"0B%]HE%[`^$[P(``,=%\`````"-M@````"+??"+%6!> -XM"0C!YP*+!#K'1=``````@_AS#X58`@``BUWP@\,!BQ2:A=*)5=0/A/\"``"! -XMX@```$!U0P^V5=2!^O\````/A\T"``"AX%T)"(M$D#3VQ`$/A=4"``"#?=1? -XM#X3+`@``@WW4?W<1BT74]@2%O5$)"`0/A;0"``"+5=3'!"3_N0@(B50D!.C_ -XM'0$`A<`/A9D"``"+#6!>"0B-``````C02QB4W$B<&)1=@Y$'0O -XMBT7$C7,"C0RPBQ&%TG0@C40X#.L/BU`$@\$$@\8!B;'`0````"+%6!>"0B-3@&)3?#!X0*+1=2)3>C'1>0``````=&)3=R)RSD! -XM=$2-3@*)3?#!X0*-'`J)3>B+"X7)="^-!+4(`````<+K%H-%\`&#P`2#PP2) -XM1>B+2@2)VH7)=`Z#1>0!B=,Y3=2)1>AUW,<#`````(M%V(D$).CT'0$`BU7L -XMB10DZ.D=`0"+3>"+1>S'1=``````P>$"B4W,ZQ2-="8`BT7(QT70`0```(EU -XM[(/`!(M5V(D$)(E4)`3HL9`#`(7`B<R)^XD,).AVG/__BU7D -XM*U7@C50"`<'B`HD4).@5*@,`*UWLP?L"B5PD"(G&BT7LB30DB40D!.A&HO__ -XMBTWB57(B10DB4PD!.@QF___BU7,C007B40D!`-=Y(T"0B%VP^%5/___XEU[,=%T`$```"+5=2+3=RA8%X) -XM"`%%Z(E1_(M%Z(D0BU70A=)T;.M6H6!>"0B+!`?'1=`!````B5WLB40D!(M5 -XM[(D4).AJ]P``A<")PW30B40D!(M-[(D,).CQFO__A<`/A((```"+5>R)%"3H -XMRA;%X)"#W___]_=`B#Z`&C;%X)"(-%\`&+3?`Y -XM#61>"0@/AQ[]__^+1>R)!"3H@_@``*&`7@D(QP547@D(^&\)"(7`#X3._/__ -XMQP0D````0.B@&@``@\0\6UY?7<.)%"3HG)K__^DO_?__BT7LB00DZ/`G`P#K -XMAL<$)%@```#H`AH``(GVZZ"-M"8`````C;PG`````%6)Y5=64X/L7(E%L(UT -XM)@"+#41>"0B%R0^%*@(``(L5F'<*"#D5?)P+"`^'2PH``*%47@D(A<`/A"," -XM``"+"(/`!*-47@D(@>'___]_A"0B%R0^/?`L``,<%5%X) -XM"`````#H_OK__X/X)(G!=`J#Q%R)R%M>7UW#BT6PA -XM"0@`````QP5D7@D(`````.@I____B47(@\`!#X2M`0``BUW(@_M[#X1,!0`` -XMB=@E____/X/X(P^$&04``(/[/P^$H04``(/[)0^$NP4``,=%O`````#'1;@` -XM````QT6T`````(/[(0^$H00```^/D@```(/[_P^$IP,``(/["@^$G@,``(G8 -XM)0```$")]G4)@_M_#X9,"```@_O_B?9T+X7`=2L/MM.!^O\```"0#X?F"@`` -XMH>!="0B+1)`T]L0%#X48!P``@_M?#X0/!P``BT6\OB0V"0B%P'40BT6XA<`/ -XMA.<&``"^]"X)"(U%V(ET)`2)!"3HY)`#`(U5V(D4).E/`P``@_LJ#X2R`@`` -XM@?L\``!`#X3%````@_LDD`^%8?___XM5O`E5N(M-N`M-M`^%-@D``*&\F0L( -XMZ%[Z__^-1=B)!"3HHQH``(-]R'L/A?G]___H5/G__X/X?9`/A.K]___'1"0$ -XM?0```,<$)#(```#H)A@``(L-1%X)"(7)#X36_?__QP5$7@D(`````(/$7(G( -XM6UY?7<.-="8`BQ5<7@D(A=(/CO_]__^+%5A>"0B+`H/"!(D56%X)".C<^?__ -XM@RU<7@D(`>F`_?__QP0D`````.C$%P``Z6_]__^+1;B%P`^%:0@``(M%O(7` -XM#X4S"```BT6TA<`/A0\(```Q]HU]YL<%.%X)"`````#K'HM%[#'V@_@*#X29 -XM````B40D!,<$)#1>"0CH/XT#`(U5\(D4).@DBP,`C00WB40D!*%$F0L(QT0D -XM"`$```")!"3H.!H!`(U-\(D,)(G#Z(L9``"#ZP%U4(/&`8U%[(ET)`B)?"0$ -XMB00DZ#"4`P"#^/\/A,<```"%P`^.\````#GZ____*<:-!`>)="0(B40D -XM!(D\).C>F___BT7L@_@*#X5G____A?:-7>QU(.M@BT7L,?:#^`IT5HE$)`3' -XM!"0T7@D(Z).,`P"%]G1"B70D"(E\)`2)'"3HOY,#`(/X_P^$E@```(7`#XZV -XM````.?!TO2G&C00'B70D"(E$)`2)/"3H<9O__XM%[(/X"G6JQP0D-%X)".BA -XMC`,`Z'P.``"A-%X)".AB^/__C578B10DZ*<8``#I__W__XGVQT0D"`````#' -XM1"0$`````,<$)`````#H\);__X/^!0^&O/[__P^V1>8-```@`(E%[+@!```` -XMZ0;___^0C70F`,=$)`@`````QT0D!`````#'!"0`````Z+"6__\/MD7F#0`` -XM(`")1>RX`0```.E`____C4W8O_____^)#"3'1"0$)#8)".@&C@,`C478B00D -XMZ.N+`P#'1"0$Q)@*",<$)"0V"0CHEW\!`(G&BT6XA"0B-5=B)%"3HT!<``.DH_?__BT6\OB0V"0B%P'40BWVXA?\/A((# -XM``"^]"X)"(U5V(ET)`2)%"3HD(T#`(U-V(D,).AUBP,`O_____^)-"3'1"0$ -XMQ)@*".@@?P$`B<:)V.@G]O__A?8/A*X!``"+!H7`#X2D`0``C478B00DZ%H7 -XM```QP.BC^O__B<.+!HD$).@'%@$`BU6\"?J)14__\!1,`P"C,%X)".@=]?__ -XMZ<7Z__^AY*P+"(L-X*P+"(E%W*'HK`L(B4W8B47@C478QT0D!+"1"`B)!"3H -XMW!4``.L4@_C_="6-5=B)7"0$B10DZ*:(`P"X`0```.AL^/__@_A=B<-T%X/X -XM"G76QP0D!0```.BT$@``C70F`.O)C4W8B0PDZ-.(`P"A5%X)"(M=V(7`#X1B -XM`@``QP0D!@```.B'$@``BQ.%T@^$9`(``/?"````0`^$)0$``,=%T`$```"# -XM^BH/A&<"``"#^BT/A$T#``#'1"0$+0```,<$)#(```#H1!(``(M%T(7`=1*+ -XM1<"%P`^%.P0``,=%P/____^+.X7_#X7,`P``C578B10DZ&84``"+?<#I2OW_ -XM_XM%T(U?`2M=T,'@`HE%Q.@*"@``BP:)'5Q>"0B#Z`0#1<2C6%X)".F/^?__ -XMQP0D`````.C6$0``Z;CX___'!"0?````Z,41``"0C70F`(U-V(E<)`2)#"3H -XM@8<#`#'`Z$KW__^#^/^)PW0IJ0```$!U(@^VT('Z_P````^'FP$``*'@70D( -XMBT20-/;$!76_@_M?=+J-1=@Q_XD$).B=AP,`B=CH9O+__\=$)`3$F`H(BT78 -XMB00DZ$-[`0")QNFG^___@_I_#X?2_O__]@25O5$)"`3'1=``````=13IO/[_ -XM_X/Z?W"0CIT_?__XL]7%X)"(7_#X60_?__BQ.% -XMT@^%G/W__\<$)`````#H#1```(L3]\(```!`#X6._?__Z:[^__^#PP3IKOW_ -XM_XD4).CVC___Z6'^__^A>)P+"(L,D(U"`:.8=PH(@>'___]_A7UW#QP0D`````.A)#@``Z2/\__^-="8`Z$OO__^#^'V)PW04QT0D -XM!'T```#'!"0R````Z"`.``")V.@9[___Z67Y__^+1=B)!"3H214!`.GO^/__ -XMB10DZ`B.___I%O7__XU%V(D$).@\$```BT8$Z+3O___IC_/__XM%V(D$).BD -XMB0,`B00DZ-B,__^Z$"\)"(7`#X4I^/__Z2GX__^+%?1="0B%T@^$B@```(M% -XMM(7`=%ZA]%T)"(D$).@DCO__B00DZ(!X`0")!"3H2.L``.GX]___QT0D!,28 -XM"@C'!"0D-@D(Z%]W`0"%P(G`]___C4W8OJ0@"0B)#"0QV^BC#P``QT7$ -XM!````.E(^___Z%(%``"A]%T)".@X[___Z:CW___'!"0K````Z"<-``#IOOS_ -XM_\<$)`0```#H%@T``(VV`````.E?____C70F`(V\)P````!5B>575E.![%R` -XM``"-?>3'1=@`````QT7<`````,=%X`````#'1CO__@\`! -XM=:;'1"0$`````(D\).B)C?__H0AV"@B)!"3HP!D#`(MUY(M=Z.AQDO__,?,Q -XMPX'C____`(D<).@C=P$`QP0D0#()"(G#B40D!.A!A0,`B1PDHPAV"@CHA!D# -XM`.E(____B1PDZ+.-___H_H[__XDPZ/>.__^+`(D$).B=C/__B5PD!,<$)#8` -XM``")1"0(Z-T+``")'"2-GXW__XM%"(U5[(F5M'___XD4),=%\``` -XM``")1>S'!71>"0@`````Z$>F``"-5>R)%"3'1"0$0/X$".CTI0``H71>"0C' -XM1<@`````QP7$EPH(`0```,=$)`2`_@0(B86\?___QP0DQ)<*".A4#@``C578 -XMB10DQT0D!+"1"`CH00X``(U%S,=$)`2PD0@(B00DZ"X.``"-5"0B)%5!>"0C'1=``````N`$```#H -XM2?#__X/X_W0QB<:!YO___S]TYX/^7`^$V`$``(U%S(D$)(ET)`3H4H`#`+@! -XM````Z!CP__^#^/]USXU5S(D4).B8@`,`BW7,QT0D!&````")-"3H@8[__X7` -XM#X3"`0``QT0D!`$```")-"3H+;$``(F%P'___XN%P'___XL0B<>%TG1$BP*) -XMUH7`=!V0)?___S^)`X/#!#F=N'___W1XBT8$@\8$A"0C___]_,<#H7NW__XG#@_MG#X23````@_MA -XM#X2^`0``@_MS#X2M````B5PD!,<$)!ZZ"`CH<0@!`(7`#X1Y`0``B5PD!,<$ -XM)&!>"0CH27T#`(/[<0^$=0$``#'`Z`GM__^#^#J)PP^%/P$``#'`Z/?L___' -XM!6Q>"0@!````QP5P7@D(`````(/X9XG##X1I____@_AA#X5S____QP5P7@D( -XM`0```.E;____@3UL7@D(____?P^$;____\<%;%X)"/___W\QP.B?[/__B<.# -XM^W,/A5/___\QP.B-[/__QT0D!',```#'!"1@7@D(B!="0B+1)`T]L0!=6F#_U]T9(/_?W<*]@2]O5$)"`1U58E\)`3'!"3_N0@( -XMZ%`'`0"%P'5!O@(```#K))"-="8`B5PD!,<$)&!>"0CH('P#`#'`.=\/E,`I -XMQ@^$T?[__S'`Z-KK__^#^/^)PW73A?8/A+O^___'!"18````Z*\%``"#Q`R) -XMV%M>7UWI$>?__Y")7"0$QP0D!P```.@`!@``Z7+^___'!6Q>"0C___]_Z7S^ -XM__^A<%X)"(7`#X4^_O__QP5P7@D(`0```.G*_O__B10DZ-2%___I*O___XUV -XM`%6)Y5.)PX/L%.LWD(UT)@"#^O]T8872>!WWP@```$"0=12#^G]_#P^VP@^W -XMA`#@(`D(J`]U58E4)`2)'"3H3GL#`+@!````Z!3K__^#^%R)PG6],<#H!NO_ -XM_X/X_W0<@_@*NB````!TOHG"@575E.#["RC4%X)"#'`QT7H -XM`````,=%[`````#'1?``````QP5,7@D(^&\)",<%1%X)"`````#HXN7__XU% -XMZ,<%5%X)"`````#'!5Q>"0@`````QT0D!/"1"`B)!"3HJP<``(U%W#';QT7< -XM`````,=%X`````#'1>0`````QT0D!+"1"`B)!"3H@0<``)"X`0```.@FZO__ -XM@_@GB<9T=']0@_@@=.B0C;0F``````^/_P$``(/X"8VT)@````!TSH/X"@^$ -XM]@```(/X_XGV#X3&`0``B35$7@D(C470,`@_XB#Y3`#[;XB?:) -XM^.B9Z?__.<:)PW1H@_@*#X3`````@_C_#X2W````B=@E____?ST*``!`#X3' -XM````@_XG#X3M````@_Y@#X3^````@_XB=;B#^V"X8````'0'B=@-````0(E$ -XM)`2-1=R)!"3H:'D#`(GXZ#'I__\YQHG#=9B#_F`/A3[___^-1=R)!"3'1"0$ -XM8````.@_>0,`C47B)!"3HSWH#`.EO_O__B70D!,<$)#,```#H -XM&@,``(G8)?___W\]"@``0`^%.?___XM5X(72#X0N____BT7`,` -XMZ;_^__^-1=R)7"0$B00DZ(!X`P#IJ_[__S'`Z$3H__^#^`J0#X0*_O__@_C_ -XM#X0!_O__B<:!S@```$#I.O[__X7;B?9T([C_____Z'3C__^-="8`Z0S___^# -XM^"(/A1C^__^)]NE0_O__C47B)!"3HFGD#`(/$+%M>7UW#B?95B>6#["B)=?PQ]HE=^(L- -XM*'<*"(7)=`R)\(M=^(MU_(GL7<.+10C'1?0`````B47PC47PZ,?\__^)PXL` -XMAP,`B1PDB<;H8`@!`(GPBUWXBW7\B>Q=PXUT)@!5B>53@^P$ -XMBQTH=PH(A=MU3XM%"(M($(G+C;0F`````(L1A=)T.HL"@\$$A!VI -XM````0'46@_A_C78`?PX/ML#VA`#@(`D(PW47D(M"!(/"!(7`==6+$872=<:# -XMQ`1;7<.)V.@#_/__BU4(B<.+0A")!"3HTP5=PXUT)@"-O"<`````58GE@^P(H`#`P6\8`D(BQ")%"3_4`2AP&`)"#L%Q&`)"'?:R<.0C70F`%6AQ&`)"(L5 -XMP&`)"(GE78D5Q&`)",.-=@"-O"<`````58GEBT4(BP")10A=Z>\-`P#K#9"0 -XMD)"0D)"0D)"0D)!5B>6#[!BA@%X)"(7`=`+)PX%]"(8```"-10R)1?QV!\=% -XM"(4```")1"0$BU4(BP25H%X)"(D$).AS6@,`HX!>"0C)PXVV`````(V_```` -XM`%6)Y8/L".@E____QT0D!`$```#'!"0`F@L(Z'V!__^058GE5U93@^P<```!`=`Z+-8!>"0B%]@^$M````(G>@>;_ -XM__\/@?Z&````=@6^A0```.CB&P$`]\,````@QP7`F`H(`0````^$C````*&` -XM7@D(A<<$)`$```#HAY___^@RS```QT0D"`(```#'1"0$&"\)",<$ -XM)/0N"0CH=G(!`*'4EPH(A -XM7UW#@>,````0=5B%_W0IH8!>"0C'!"2F&`D(B40D!.@O6@,`Z4[___^+%>1U -XM"0B%TG2)Z7C___^+1?")1"0$BP2UH%X)"(D$).CE60,`QP0D;\<(".CY60,` -XMZ1C___^-="8`H2!W"@C'!"0HN@@(B40D!.C;60,`ZY&)]HV\)P````!5B>5= -XMZ:<#`0"-M"8`````58GEBT4(BP")10A=Z<\#`0#K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[!B+10C'1"0(`````,<$)`,```")1"0$Z-M]___)PXVV`````(V\)P`` -XM``!5B>6#[!B+10C'1"0(`````,<$)`(```")1"0$Z.N!___)PXVV`````(V\ -XM)P````!5B>53@^P4BUT(.1W`8`D(7<.-=@#H=W[__XUT)@"-O"<`````58GE4X/L!(L5O&`)"*'` -XM8`D(BUT(C0S".6#[`B+#`#B40D!*&\8`D(B00DZ$,+`P"+#"0BA@)@* -XM"(D$).B`70``B00DZ.@&`0#'1"0,7[H(",=$)`@#````QT0D!`$```"CI%X) -XM"*&`F`H(B00DZ$Y=``")!"3HM@8!`,=$)`QMN@@(QT0D"`0```#'1"0$`0`` -XM`*.H7@D(H8"8"@B)!"3H'%T``(D$).B$!@$`QT0D#'ZZ"`C'1"0(!0```,=$ -XM)`0!````HZQ>"0BA@)@*"(D$).CJ7```B00DZ%(&`0#'1"0,C;H(",=$)`@& -XM````QT0D!`$```"CL%X)"*&`F`H(B00DZ+A<``")!"3H(`8!`,=$)`RDN@@( -XMQT0D"`<```#'1"0$`0```*.T7@D(H8"8"@B)!"3HAEP``(D$).CN!0$`QT0D -XM#,*Z"`C'1"0("````,=$)`0!````H[A>"0BA@)@*"(D$).A47```B00DZ+P% -XM`0#'1"0,V[H(",=$)`@)````QT0D!`$```"CO%X)"*&`F`H(B00DZ")<``") -XM!"3HB@4!`,=$)`SKN@@(QT0D"`H```#'1"0$`0```*/`7@D(H8"8"@B)!"3H -XM\%L``(D$).A8!0$`QT0D#/^Z"`C'1"0("P```,=$)`0!````H\1>"0BA@)@* -XM"(D$).B^6P``B00DZ"8%`0#'1"0,#;L(",=$)`@,````QT0D!`$```"CR%X) -XM"*&`F`H(B00DZ(Q;``")!"3H]`0!`,=$)`P?NP@(QT0D"`T```#'1"0$`0`` -XM`*/,7@D(H8"8"@B)!"3H6EL``(D$).C"!`$`QT0D##.["`C'1"0(#@```,=$ -XM)`0!````H]!>"0BA@)@*"(D$).@H6P``B00DZ)`$`0#'1"0,1;L(",=$)`@/ -XM````QT0D!`$```"CU%X)"*&`F`H(B00DZ/9:``")!"3H7@0!`,=$)`Q7NP@( -XMQT0D"!````#'1"0$`0```*/87@D(H8"8"@B)!"3HQ%H``(D$).@L!`$`QT0D -XM#&J["`C'1"0($0```,=$)`0!````H]Q>"0BA@)@*"(D$).B26@``B00DZ/H# -XM`0#'1"0,AKL(",=$)`@2````QT0D!`$```"CX%X)"*&`F`H(B00DZ&!:``") -XM!"3HR`,!`,=$)`R/NP@(QT0D"!,```#'1"0$`0```*/D7@D(H8"8"@B)!"3H -XM+EH``(D$).B6`P$`QT0D#)V["`C'1"0(%````,=$)`0!````H^A>"0BA@)@* -XM"(D$).C\60``B00DZ&0#`0#'1"0,M;L(",=$)`@5````QT0D!`$```"C[%X) -XM"*&`F`H(B00DZ,I9``")!"3H,@,!`,=$)`S"NP@(QT0D"!8```#'1"0$`0`` -XM`*/P7@D(H8"8"@B)!"3HF%D``(D$).@``P$`QT0D#-"["`C'1"0(%P```,=$ -XM)`0!````H_1>"0BA@)@*"(D$).AF60``B00DZ,X"`0#'1"0,WKL(",=$)`@8 -XM````QT0D!`$```"C^%X)"*&`F`H(B00DZ#19``")!"3HG`(!`,=$)`S,P@@( -XMQT0D"!D```#'1"0$`0```*/\7@D(H8"8"@B)!"3H`ED``(D$).AJ`@$`QT0D -XM#/&["`C'1"0(&@```,=$)`0!````HP!?"0BA@)@*"(D$).C06```B00DZ#@" -XM`0#'1"0,!+P(",=$)`@;````QT0D!`$```"C!%\)"*&`F`H(B00DZ)Y8``") -XM!"3H!@(!`,=$)`PBO`@(QT0D"!P```#'1"0$`0```*,(7PD(H8"8"@B)!"3H -XM;%@``(D$).C4`0$`QT0D#/#""`C'1"0('0```,=$)`0!````HPQ?"0BA@)@* -XM"(D$).@Z6```B00DZ*(!`0#'1"0,&,,(",=$)`@>````QT0D!`$```"C$%\) -XM"*&`F`H(B00DZ`A8``")!"3H<`$!`,=$)`PTO`@(QT0D"!\```#'1"0$`0`` -XM`*,47PD(H8"8"@B)!"3HUE<``(D$).@^`0$`QT0D#$##"`C'1"0((````,=$ -XM)`0!````HQA?"0BA@)@*"(D$).BD5P``B00DZ`P!`0#'1"0,2[P(",=$)`@A -XM````QT0D!`$```"C'%\)"*&`F`H(B00DZ')7``")!"3HV@`!`,=$)`QHO`@( -XMQT0D""(```#'1"0$`0```*,@7PD(H8"8"@B)!"3H0%<``(D$).BH``$`QT0D -XM#'J\"`C'1"0((P```,=$)`0!````HR1?"0BA@)@*"(D$).@.5P``B00DZ'8` -XM`0#'1"0,=,,(",=$)`@D````QT0D!`$```"C*%\)"*&`F`H(B00DZ-Q6``") -XM!"3H1``!`,=$)`R,O`@(QT0D""4```#'1"0$`0```*,L7PD(H8"8"@B)!"3H -XMJE8``(D$).@2``$`QT0D#*&\"`C'1"0()@```,=$)`0!````HS!?"0BA@)@* -XM"(D$).AX5@``B00DZ.#_``#'1"0,O[P(",=$)`@G````QT0D!`$```"C-%\) -XM"*&`F`H(B00DZ$96``")!"3HKO\``,=$)`S0O`@(QT0D""@```#'1"0$`0`` -XM`*,X7PD(H8"8"@B)!"3H%%8``(D$).A\_P``QT0D#-J\"`C'1"0(*0```,=$ -XM)`0!````HSQ?"0BA@)@*"(D$).CB50``B00DZ$K_``#'1"0,E,,(",=$)`@J -XM````QT0D!`$```"C0%\)"*&`F`H(B00DZ+!5``")!"3H&/\``,=$)`SJO`@( -XMQT0D""L```#'1"0$`0```*-$7PD(H8"8"@B)!"3H?E4``(D$).CF_@``QT0D -XM#/:\"`C'1"0(+````,=$)`0!````HTA?"0BA@)@*"(D$).A,50``B00DZ+3^ -XM``#'1"0,#;T(",=$)`@M````QT0D!`$```"C3%\)"*&`F`H(B00DZ!I5``") -XM!"3H@OX``,=$)`P;O0@(QT0D""X```#'1"0$`0```*-07PD(H8"8"@B)!"3H -XMZ%0``(D$).A0_@``QT0D#">]"`C'1"0(+P```,=$)`0!````HU1?"0BA@)@* -XM"(D$).BV5```B00DZ![^``#'1"0,.[T(",=$)`@P````QT0D!`$```"C6%\) -XM"*&`F`H(B00DZ(14``")!"3H[/T``,=$)`Q0O0@(QT0D"#$```#'1"0$`0`` -XM`*-<7PD(H8"8"@B)!"3H4E0``(D$).BZ_0``QT0D#&*]"`C'1"0(,@```,=$ -XM)`0!````HV!?"0BA@)@*"(D$).@@5```B00DZ(C]``#'1"0,:[T(",=$)`@S -XM````QT0D!`$```"C9%\)"*&`F`H(B00DZ.Y3``")!"3H5OT``,=$)`QVO0@( -XMQT0D"#0```#'1"0$`0```*-H7PD(H8"8"@B)!"3HO%,``(D$).@D_0``QT0D -XM#(.]"`C'1"0(-0```,=$)`0!````HVQ?"0BA@)@*"(D$).B*4P``B00DZ/+\ -XM``#'1"0,D;T(",=$)`@V````QT0D!`$```"C<%\)"*&`F`H(B00DZ%A3``") -XM!"3HP/P``,=$)`RAO0@(QT0D"#<```#'1"0$`0```*-T7PD(H8"8"@B)!"3H -XM)E,``(D$).B._```QT0D#/O>"`C'1"0(.````,=$)`0!````HWA?"0BA@)@* -XM"(D$).CT4@``B00DZ%S\``#'1"0,J+T(",=$)`@Y````QT0D!`$```"C?%\) -XM"*&`F`H(B00DZ,)2``")!"3H*OP``,=$)`RXPP@(QT0D"#H```#'1"0$`0`` -XM`*.`7PD(H8"8"@B)!"3HD%(``(D$).CX^P``QT0D#+N]"`C'1"0(.P```,=$ -XM)`0!````HX1?"0BA@)@*"(D$).A>4@``B00DZ,;[``#'1"0,RKT(",=$)`@\ -XM````QT0D!`$```"CB%\)"*&`F`H(B00DZ"Q2``")!"3HE/L``,=$)`S:O0@( -XMQT0D"#T```#'1"0$`0```*.,7PD(H8"8"@B)!"3H^E$``(D$).AB^P``QT0D -XM#.3#"`C'1"0(/@```,=$)`0!````HY!?"0BA@)@*"(D$).C(40``B00DZ##[ -XM``#'1"0,\;T(",=$)`@_````QT0D!`$```"CE%\)"*&`F`H(B00DZ)91``") -XM!"3H_OH``,=$)`P(Q`@(QT0D"$````#'1"0$`0```*.87PD(H8"8"@B)!"3H -XM9%$``(D$).C,^@``QT0D#`V^"`C'1"0(00```,=$)`0!````HYQ?"0BA@)@* -XM"(D$).@R40``B00DZ)KZ``#'1"0,*+X(",=$)`A#````QT0D!`$```"CH%\) -XM"*&`F`H(B00DZ`!1``")!"3H:/H``,=$)`P[O@@(QT0D"$0```#'1"0$`0`` -XM`*.D7PD(H8"8"@B)!"3HSE```(D$).@V^@``QT0D#%&^"`C'1"0(10```,=$ -XM)`0!````HZA?"0BA@)@*"(D$).B<4```B00DZ`3Z``#'1"0,7[X(",=$)`A& -XM````QT0D!`$```"CK%\)"*&`F`H(B00DZ&I0``")!"3HTOD``,=$)`QQO@@( -XMQT0D"$<```#'1"0$`0```*.P7PD(H8"8"@B)!"3H.%```(D$).B@^0``QT0D -XM#(B^"`C'1"0(2````,=$)`0!````H[1?"0BA@)@*"(D$).@&4```B00DZ&[Y -XM``#'1"0,FKX(",=$)`A)````QT0D!`$```"CN%\)"*&`F`H(B00DZ-1/``") -XM!"3H//D``,=$)`RHO@@(QT0D"$H```#'1"0$`0```*.\7PD(H8"8"@B)!"3H -XMHD\``(D$).@*^0``QT0D#"S$"`C'1"0(2P```,=$)`0!````H\!?"0BA@)@* -XM"(D$).AP3P``B00DZ-CX``#'1"0,3,0(",=$)`A,````QT0D!`$```"CQ%\) -XM"*&`F`H(B00DZ#Y/``")!"3HIO@``,=$)`RQO@@(QT0D"$T```#'1"0$`0`` -XM`*/(7PD(H8"8"@B)!"3H#$\``(D$).AT^```QT0D#,*^"`C'1"0(3@```,=$ -XM)`0!````H\Q?"0BA@)@*"(D$).C:3@``B00DZ$+X``#'1"0,<,0(",=$)`A/ -XM````QT0D!`$```"CT%\)"*&`F`H(B00DZ*A.``")!"3H$/@``,=$)`R]P``QT0D -XM#-B^"`C'1"0(40```,=$)`0!````H]A?"0BA@)@*"(D$).A$3@``B00DZ*SW -XM``#'1"0,\;X(",=$)`A2````QT0D!`$```"CW%\)"*&`F`H(B00DZ!).``") -XM!"3H>O<``,=$)`S`Q`@(QT0D"%,```#'1"0$`0```*/@7PD(H8"8"@B)!"3H -XMX$T``(D$).A(]P``QT0D#`V_"`C'1"0(5````,=$)`0!````H^1?"0BA@)@* -XM"(D$).BN30``B00DZ!;W``#'1"0,([\(",=$)`A5````QT0D!`$```"CZ%\) -XM"*&`F`H(B00DZ'Q-``")!"3HY/8``,=$)`P]OP@(QT0D"%8```#'1"0$`0`` -XM`*/L7PD(H8"8"@B)!"3H2DT``(D$).BR]@``QT0D#%>_"`C'1"0(5P```,=$ -XM)`0!````H_!?"0BA@)@*"(D$).@830``B00DZ(#V``#'1"0,9[\(",=$)`A8 -XM````QT0D!`$```"C]%\)"*&`F`H(B00DZ.9,``")!"3H3O8``,=$)`QROP@( -XMQT0D"%D```#'1"0$`0```*/X7PD(H8"8"@B)!"3HM$P``(D$).@<]@``QT0D -XM#(F_"`C'1"0(6@```,=$)`0!````H_Q?"0BA@)@*"(D$).B"3```B00DZ.KU -XM``#'1"0,F+\(",=$)`A;````QT0D!`$```"C`&`)"*&`F`H(B00DZ%!,``") -XM!"3HN/4``,=$)`RSOP@(QT0D"%P```#'1"0$`0```*,$8`D(H8"8"@B)!"3H -XM'DP``(D$).B&]0``QT0D#,R_"`C'1"0(70```,=$)`0!````HPA@"0BA@)@* -XM"(D$).CL2P``B00DZ%3U``#'1"0,W[\(",=$)`A>````QT0D!`$```"C#&`) -XM"*&`F`H(B00DZ+I+``")!"3H(O4``,=$)`SOOP@(QT0D"%\```#'1"0$`0`` -XM`*,08`D(H8"8"@B)!"3HB$L``(D$).CP]```QT0D#`S`"`C'1"0(8````,=$ -XM)`0!````HQ1@"0BA@)@*"(D$).A62P``B00DZ+[T``#'1"0,'\`(",=$)`AA -XM````QT0D!`$```"C&&`)"*&`F`H(B00DZ"1+``")!"3HC/0``,=$)`PNP`@( -XMQT0D"&(```#'1"0$`0```*,<8`D(H8"8"@B)!"3H\DH``(D$).A:]```QT0D -XM#$+`"`C'1"0(8P```,=$)`0!````HR!@"0BA@)@*"(D$).C`2@``B00DZ"CT -XM``#'1"0,3\`(",=$)`AD````QT0D!`$```"C)&`)"*&`F`H(B00DZ(Y*``") -XM!"3H]O,``,=$)`Q````,=$)`0!````HW1@"0BA@)@* -XM"(D$).BF1@``B00DZ`[P``#'1"0,K,4(",=$)`AY````QT0D!`$```"C>&`) -XM"*&`F`H(B00DZ'1&``")!"3HW.\``,=$)`SP```,=$ -XM)`0!````HX!@"0BA@)@*"(D$).@01@``B00DZ'CO``#'1"0,ML$(",=$)`A\ -XM````QT0D!`$```"CA&`)"*&`F`H(B00DZ-Y%``")!"3H1N\``,=$)`S-P0@( -XMQT0D"'T```#'1"0$`0```*.(8`D(H8"8"@B)!"3HK$4``(D$).@4[P``QT0D -XM#`#&"`C'1"0(@````,=$)`0!````HXQ@"0BA@)@*"(D$).AZ10``B00DZ.+N -XM``#'1"0,W\$(",=$)`B!````QT0D!`$```"CD&`)"*&`F`H(B00DZ$A%``") -XM!"3HL.X``,=$)`SYP0@(QT0D"((```#'1"0$`0```*.48`D(H8"8"@B)!"3H -XM%D4``(D$).A^[@``QT0D#$C&"`C'1"0(@P```,=$)`0!````HYA@"0BA@)@* -XM"(D$).CD1```B00DZ$SN``#'1"0,"\((",=$)`B$````QT0D!`$```"CG&`) -XM"*&`F`H(B00DZ+)$``")!"3H&NX``,=$)`P@P@@(QT0D"(4```#'1"0$`0`` -XM`*.@8`D(H8"8"@B)!"3H@$0``(D$).CH[0``QT0D##?""`C'1"0(A@```,=$ -XM)`0!````HZ1@"0BA@)@*"(D$).A.1```B00DZ+;M``#'1"0,5<((",=$)`B' -XM````QT0D!`$```"CJ&`)"*&`F`H(B00DZ!Q$``")!"3HA.T``,=$)`QFP@@( -XMQT0D"(@```#'1"0$`0```*.L8`D(H8"8"@B)!"3HZD,``(D$).A2[0``QT0D -XM#'#&"`C'1"0(B0```,=$)`0!````H[!@"0BA@)@*"(D$).BX0P``B00DZ"#M -XM``"CN&`)"(/$%%M=PY"0D)"053'`B>6+50A75E.+"H7)="B+-=A@"0B)UXVT -XM)@````!IP/$````QTHT$`8M/!(/'!/?VA6#["BA0)D+"(E=](EU^(E]_(7`=`J+'=A@"0B%VW5RBQW4 -XM8`D(A=L/A;````"+'?!@"0B+->Q@"0B)WP'W=$6A@)@*",=$)`P!QP@(QT0D -XM"`0```#'1"0$#0```(D$).CI0@``:\YDB5PD"(ET)`2)RL'Z'XD$)(G(]_^) -XM1"0,Z&D\`P"+7?2+=?B+??R)[%W#BS7,8`D(A?9TA*&`F`H(QT0D#*3&"`C' -XM1"0(`@```,=$)`0-````B00DZ(U"``"-%/4`````B50D"(E<)`2)!"3H%CP# -XM`.E#____D*&`F`H(QT0D#.S&"`C'1"0(`P```,=$)`0-````B00DZ$M"``") -XM7"0$B00DZ-\[`P#I&O___XUV`(V\)P````!5B>6#[`BAT&`)",<%0)D+"``` -XM``")!"3HX^T"`,<%T&`)"`````#)PXVT)@````!5B>53@^P4QT0D!,28"@C' -XM!"2`,@D(Z#5*`0"%P'1+BQWH=@H(Z&;\``"+10C'!<"8"@@!````QP7H=@H( -XM`````(D$).BG[```QP0D"@```.AK_@``Z#;\``")'>AV"@C'!<"8"@@````` -XM@\046UW#58GE5E.#['"+10B%P'0&BPB%R75KBT4,B00DZ*!;`P")QHU%F(E$ -XM)`2)-"3H*V+__X/``70@BU40A=)U(P^W3:")RH'B`/```('Z`(```'4%@^%) -XM=5*#Q'`QP%M>7<.0#[=-H+@!````B7<.+ -XM50R)!"2)5"0$Z(%8`P")PXD$).@G6P,`B1PDB<;HO>P"`.EZ____B30DQT0D -XM!`$```#HA&'__X7`#Y3`@\1P6P^VP%Y=PXGVC;PG`````%6)Y5=64X/L+(M% -XM#(M]"(7`#X5A`@``QT7P`````*$@)`D(P>`$!>#2"`@]X-(("'9YN_#2"`B+ -XM0_")!"3HWEP#`(D\)(E$)`3HKE[__X7`=4.+10R%P`^$Z@$``*&`F`H(QT0D -XM#"W'"`C'1"0("0```,=$)`0-````B00DZ#Y```")?"0$B00DZ-(Y`P#'1?`! -XM````H2`D"0B)VH/#$,'@!`7@T@@(.=!WC,=$)`3$F`H(QP0DE#()".A12`$` -XMA<")PP^$/P$``*%`F0L(QT7H`````(7`#X5C`@``B7PD!,<$)+@X"0CH4U<# -XM`(E%Y,=$)`0P*@@(B00DZ!#A__^+&X7;#X3S````BS.%]@^$Z0```(M%Z(M5 -XMZ,=%[``````!P,'B`HE%W(E5X.LFB?;V!=1@"0@"#X76````@\,$#X2W```` -XMBS.%]@^$K0```(-%[`&A0)D+"(7`=$C'1"0$C#,)"(DT).B/7?__A"+3>R+!`*#X1_3Z(/P`8/@ -XM`83`=9C'1"0(`````(M%Y(DT)(E$)`3H=/W__X7`#X1L____BW4,A?9T?(L# -XMQP0D4<<("(E$)`3H@S@#`(E\)`3'!"01%PD(Z',X`P"#PP3'1?`!````#X5) -XM____BU7DB10DZ&C?__^+1?"#Q"Q;7E]=PZ&`F`H(QT0D#$7'"`C'1"0("@`` -XM`,=$)`0-````B00DZ(@^``")!"3H(#@#`(MU#(7V=83'1?`!````BT7P@\0L -XM6UY?7<.AT&`)"(M5Z(M-[`^V!!"#X0?3Z(/P`8/@`>DI____B3PDZ'!8`P#' -XM1"0$+P```(D$).APW0``A<`/A;@```#'1"0$E'8*"(D\).AH1@$`A<`/A&?] -XM___'1"0$E'8*"(D\).A01@$`A<")PP^$3?W__Z&`F`H(QT0D#!O'"`C'1"0( -XM"````,=$)`0-````B00DZ-$]``")?"0$B00DZ&4W`P"+`X7`=`B)!"3HI^@` -XM`,<$)`H```#H:_H``,=%\`$```#I_?S__Z'08`D(BU77UW# -XMD%6)Y593@^P0BU4(BT($A575E.#[$R+10B+>`C'1"0$E'8* -XM"(L'B00DZ.]$`0#'1<0`````A#2"`@/AKP```"^ -XM\-((".L:H2`D"0B)\H/&$,'@!`7@T@@(.=`/AIL```"+1O")!"3H*U@#`(L? -XMB1PDB40D!.CY6?__A7UW#C;0F`````#G(#X18____#0```$")`X/# -XM!(/"!(L"A)!"3H28D``(D'B00DQT0D!#`J"`CH9]S__XL7 -XMB57(B10DZ#I5`P#'1"0$+P```(D$).@ZV@``B474QT0D!,28"@C'!"24,@D( -XMZ#-#`0"%P'00BS"%]G0*BP:%P`^%#0(``+[`(`D(BT7(QP0DN#@)"(E$)`3H -XM-U(#`,=%T`````")1=BA0)D+"(7`#X6?`@``BT70BU70BQ['1")5=SK/XL#A<`/A8$```#'1"0(`````(M%R,<$)`````")1"0$Z,_X -XM__^%P`^%E0```(M>!(/&!(7;#X1+`0``@T7,`8M%U(7`=;J+`X/X+W6UBPU` -XMF0L(A[`0```,<$),`X"0B)1"0$Z+-0`P")!XD$),=$)`0P*@@( -XMZ'':__^+50B)%"3H-K8``(L'B00DZ+S9___K,X/"!(D7BPKIL_S__XM%V(D$ -XM).C#Y`(`BT4,A<`/A)T```"+!S';B00DZ.Q0`P"+50R)`HU%[(D$).A\V?__ -XM@\1,B=A;7E]=PXM%U(7`#X3M_?__Z>/]__^AT&`)"(M5T(M-S`^V!!"#X0?3 -XMZ(/P`8/@`>F6_O__BT7$A<`/A;D```"A@)@*"(L?QT0D#%7'"`C'1"0(!0`` -XM`,=$)`0-````B00DZ&$X``")7"0$B00DZ/4Q`P#HX/(``.FJ_/__BT7$A<`/ -XMA8$```"A@)@*"(L?QT0D#'+'"`C'1"0(!@```,=$)`0-````B00DZ!DX``") -XM7"0$,=N)!"3HJS$#`.B6\@``Z2K___^+5"+3

3@,`B0>)'"3H).,"`,=$)`0P*@@(BP>)!"3HDMC__XM5#(72=".+!XD$ -XM).A!3P,`BU4,B0*+![L!````B00DZ,W7___I0?[__XM5"(D4).@MM```Z]^- -XM="8`C;PG`````%6)Y5=64X/L+(M=",=$)`3$F`H(QP0DE#()".@P/P$`A=N) -XMQG1BBT,$A`$`A?;'!4"9"P@!````#X1R`0``BS:%]@^$:`$` -XM`(L&A<`/A%X!``#'1?``````ZQB#Q@0/A$P!``"+!H7`D`^$00$``(-%\`&# -XM."]UXXD$).B93P,`B00DZ#U6__^%P(G'=,V)!"3'1"0$,!X%".B;UO__BT7P -XMBU7P@^`?@^(/B47HB57DB3PDZ'U9__^%P(G"#X3=````BPJ%R73H@'H(+G4; -XM@'H)`'3B-%(4`````N`$````#%=!@ -XM"0C3X`D"]@748`D(`0^$=?___XD<).@&40,`B00DZ/[P___'1"0,BL<(",=$ -XM)`@!````QT0D!`T```")1>RA@)@*"(D$).AV-```BU7PBTWLB5PD#(E4)`B) -XM3"0$B00DZ/PM`P")/"3HH%C__X7`B<(/A2/___^)/"3H\M3__X/&!`^%M/[_ -XM_X/$+%M>7UW#BTWP`P708`D(@^$'T^(($.EA____H2-%`"X`0````,5T&`)"-/@9@D"Z3C____'!53@^P4BUT(QT0D -XM"`````#'!"0"````C4,DB40D!.C75?__C4,\QT0D"`````")1"0$QP0D`P`` -XM`.B\5?__C4-4QT0D"`````")1"0$QP0D#P```.BA5?__QP7\F`H(`````(M# -XM(*/H=@H(H;1V"@B)!"3H!M<``*',EPH(B00DZ/G6``"A!'8*"(D$).CLU@`` -XMH429"PB)!"3HW]8``(M#$(E$)`2+`XD$).@>VP``QT0D"`$```#'1"0$`@`` -XM`(D$)*.T=@H(Z,U0__^+0Q2)1"0$BT,$B00DZ._:``#'1"0(`0```,=$)`0" -XM````B00DH\R7"@CHGE#__XM#&(E$)`2+0PB)!"3HP-H``,=$)`@!````QT0D -XM!`(```")!"2C!'8*".AO4/__BT,A@"0B)!"3H[=T" -XM`,<%Z&`)"`````"AY&`)"(7`=!")1"0$QP0D-P``$.A:T/__QP0D#0``$.A. -XMT/__R57B==64X/L+(E%V(D4).BZ3`,`B<.+1=B) -XM!"3H[4L#`(D=7)D+"(G&Z`Q3___'``````")7"0$B30DZ#I4___'!5R9"P@` -XM````B1PDZ*S6``#HXU+__XL`@_@(=%"#^`QT&X/X`G0-H>1@"0B%P`^$N@$` -XM`(/$+%M>7UW#D.BW4O__BP")!"3H75#__XET)`3'!"0V````B40D".B=S___ -XM@\0L6UY?7<.0C70F`,=$)`0`````B30DZ,#2``")1>"#P`%T+XU%\L=$)`@" -XM````B40D!(M%X(D$).A.T@``@_@"#X2!`0``A)!XE\)`2+1=R)!"3H(=<``(DWB<.+.(D$ -XM).AS2P,`B3PDB<;HJ4H#`(D<)(G'Z#_<`@"+1=R)!"3HA-4``(ET)`2)/"2) -XM-5R9"PCH[E+__XDT),<%7)D+"`````#H8-4``.B74?__BP")!"3H/4___XE\ -XM)`3'!"0V````B40D".A]SO__@\0L6UY?7<.0C70F`,=$)`3$F`H(QP0D*#() -XM".A,.`$`A<`/A-T```#'1"0$Q)@*",<$)"@R"0CHD#@!`(-]X/^)1>AT#H!] -XM\B-T"*&DF`H(B47HQT7L`````(U%Z(D$).C'V0``B47")!"3H^-(``(D<).@\3O__B70D!,<$)'@```")1"0( -XMZ'S-___I+O[__Z%T=PH(Z2W___^-M@````"-O"<`````58GE5U93@^Q,BWT( -XMC5WLBT<0BP#'1?``````B47LBT4,A%P`^$Y0$``(L(AO__\<%M'8*"``` -XM``#'!QT70``````'2P>`"B56XB46\ZRJ)]HL#AQ@"0@!QP5,F0L(`````(D4 -XM).B4UP(`Z&_Y__^#Q$Q;7E]=PXM%R(7`#X2I_O__Z9_^__^+!XD$).C]Y___ -XMB47,Z<#^__^AT&`)"(M5S(M-T`^V!!"#X0?3Z(/P`8/@`>DU____B40D!(D< -XM).A:>```A<")Q@^%G_S__XM%[(D$).B%10,`QP0D,0``$*,@=PH(Z*3)___I -XM?OS__XD<)(E$)`3H(W@``(7`B<,/A03]__^AZ&`)"(D$).A,10,`QP0D,0`` -XM$*,@=PH(Z&O)___IX?S__XVV`````*'H8`D(BQ"#^B\/A(G\__^#^BX/A(#\ -XM___HDOC__Z'H8`D(Z7'\__^AT&`)"(M5N(M-T`^W!`*#X0_3Z(/P`8/@`>EX -XM_O__B?:-O"<`````58GE5E.#Q("AC'8*"(MU#(7`=0VAE'<*"(7`#X5/`@`` -XMQT0D!,28"@B-78S'!"1@-@D(Z,@R`0#'!"0`````A<`/E<`/ML")1"0$Z$"$ -XM``"-1;")1"0(QT0D!-!V"@C'!"0"````Z(%,__^-1")1"0(QT0D!%1W"@C'!"0/````Z$M,__^AZ'8*"(L5 -XMM'8*",=$)`3_____B46LHAV"@@` -XM````Z+O)___'!"3_____Z!_O`@")-"3'1"0$`0```.A/^?__B1PDZ/?(__^# -XM[(!;7EW#QP0D`````.ADZ@``Z:#]__^0D)"0D)"0D)"0D)"0D)!5A<")Y5.) -XMTP^$`@$``(L(A='N#^2)T=HUT -XM)@"#XPAT8(/Y/+@$````C78`=`>#^3ZP`G5,6UW#C70F`(M`"(7`==GVPQ!T -XM%H/Y?)!T.(/Y/'1N@_D^=0:#^CZ0=##VPP1TN8/Y/70_@_DAD'6N@_H]N`8` -XM``!TO8/Z?K`(=9WKM%LQP%W#@_HFC78`==!;N`$```!=PXVV`````(G06UW! -XMZ`2#X`'#@_H]=.*#^GZX!P````^%8O___XGVZ73___^#^CQUF(VV`````.O` -XMC;0F`````(V\)P````!5B>6#['B)!"2)7?2)=?B)UHE]_.CG0`,`@#@`B<-T -XM(8U&_X/X`78@B70D!(D<).A(1___BUWTBW7XBWW\B>Q=P[@!````Z^R-192) -XM1"0$B1PDZ$5'__^#P`%TY8ET)`2)'"3H%$?__X7`#X2"````BT6@.P4LF0L( -XM#X26````BT6D.P7HF`H(=%7'!"0$````Z'9&__^#^/^)QP^$H0```(7`#XZH -XM````C12%`````(D4).BXT@(`B3PDB<.)1"0$Z`9'__^+?:2-#(.)PHGV@^H! -XM>&.+0?R#Z00Y^'7Q#[=5G,'F`S'`A=8/E,#I0O___P^W59R)T"4`\```/0!` -XM``!T&H/^`70B@_X"="2)]N@G1?__#[=5G,'F!NO(9C'`@_X!=>/I"?___[Y) -XM````Z[1FOI(`ZZX/MU6575E.! -XM[/P```"+?0B)^X/#!(L#QP0DIL<("(E$)`3H:L0``(7`=>>+`X7`=0V#>_Q, -XMC5/\#X0``P``B40D!,<$)+W'"`CH0\0``(7`=7O'A13______P``QX48____ -XM`````,>%(/___Q`O"0B+`X7`#X6P````C4<$.=@/A*4```"+10RZ'P```(L8 -XMBS.)\.B9_/__A<`/A4D"``"+50R-0P2)`O9%$`$/A(D```#'!"3X;PD(Z*,\ -XM`P")QX'$_````(GX6UY?7<.+,X/#!,>%%/______``#'A2#___]L+PD(@_Y& -XM=!.#_E#'A2#___\@+PD(#X1)`@``QT0D!&PO"0B)'"3H?T+__X7`#X3^`0`` -XMQX48____`````(L#A<`/A%#____'!"1Z```0Z'O"___I2O___XDT)#'VQT0D -XM!`(```#H)'(``(F%'/___XD$),=$)`0P*@@(Z#[%__^+5P2-1P3'A1#___\` -XM````,?^)PXU"J(/X('9"A=(/B-8````Y%=Q="0@/CLH```"AX%T)"(N$D#0$ -XM``"#^&P/A,````"%_P^$ZP0``(U"OX/X.7#PP2%]G6)BY4<____B10D -XMZ`7$__^)-"3HG2P!`('$_````%M>B<>)^%]=P[H"````Z[.+E1S___^)%"3H -XM63T#`(D$).C]/___B00DZ`5'__^)QNNDN@0```#KBL=$)`0`````BX4<____ -XMB00DZ#CB__^)QNN#B="#^&P/A4#___^+A1#___^%P`^$500``(/Z3`^%,?__ -XM_XN]$/___XM3!(U#!+X!````A=(/A=W^__^+E1S___^)%"3HVSP#`(D$).CC -XMQ@``B[4@____A<")PW0*B00DZ.\^`P")QHD<).A5S@(`BX4<____B00DZ"?# -XM__^)-"3H?SH#`(G'Z=?]__^)-"3HD#P#`(U5B(E4)`2)!"3H'4/__X7`#X6C -XM````BU4,BQJ+,^F,_?__B70D!,<$),K'"`CH;<$``(7`#X3J_?__@\,$QX48 -XM____`0```.DR_?__B=.P3.GW_/__BP.#^"\/CJS]__^#^#QX4@____("\)".E:_?__,?;I-?[__\<$)`L``!#H^K___XM% -XM#(L8BS/IW?S__X/Z00^$=P,``(/Z30^$G`,``(MW*(N5&/___XEU\(72#X3W -XM_?__C47PB00DZ'E!__^)!"3HM3T#`,=$)`0*````B00DBF-?>B)\R7_#0``(X44____QT0D"-''"`C'1"0$!P```(E$)`R)-"3HPAD# -XM`(N%&/___X7`=`R`?>DP=`;&1>@PB?N+E1S___^)%"3HCL#__XD<).@V/`,` -XMB00DZ-XW`P")Q^DV^___BWC[__\/MT<()0#P```] -XM`"````^4P`^V\.G/^___#[='""4`\```/0!````/E,`/MO#IMOO__[X!```` -XMZ:S[__\/MT<()0#P```]`(````^4P`^V\.F3^___#[=W",'N"H/F`>F$^___ -XM#[=W",'N"8/F`>EU^___BY40____#[="""4`\```/0"@```/E,`/MO#I5OO_ -XM_XMW!.E.^___#[=W"NE%^___BY4<____B10DZ-@X`P"-58B)5"0$B00DZ&4_ -XM__^#P`$/A+@```"+$XU]B.GE^O__BX4<____B00DZ*@X`P"-E2C___^)5"0$ -XMB00DZ`(\__^#P`$/A*@```"+$XV%*/___XF%$/___^EO^___BT<0B00DZ!_! -XM``"%P(GX_?__BY4<____B10DZ->^__^+!HD$).A].@,`B00DZ"4V`P") -XMQ^E]^?__BW<8Z8W\__^+1PR)!"3H.\```(7`B<8/A+3]__^+A1S___^)!"3K -XMNHVV`````(MW(.E?_/__BX4<____B00DZ'J^__^+E2#___^)%"3HS#4#`(G' -XMZ23Y__^+E1S___^)%"3H5[[__XN%(/___XD$).BI-0,`B57B<=64X/L'(E5 -XMZ.@M"@``B47PB00DQT0D!#`J"`CH:K[__XL?N@0```"+`^CL]/__A<")Q@^$ -XMH@```(U#!(D'C4;YBUWH@_@!#X;>````B=J)^.CE"0``B47LQT0D!#`J"`B) -XM!"3H(K[__X/C`74?@_X5````C70F`'YN@_X'#X2M````@_X(B?9T?XM% -XM\(D$).A3O?__BQ^+`X7`=!3'1"0$,#L)"(D$).C'.O__AR)1"0$BT7P -XMB00DZ)UP``"%P`^4P`^V\.EB____@\L"Z1K___^+1>R)1"0$BT7PB00DZ'9P -XM``")QNE!____BT7LB40D!(M%\(D$).@9.O__A<`/E<`/MO#I(O___U6)Y8/L -XM&(E=](G#B77XB7W\B57PZ'?^__^+.XG&BP>%P'04QT0D!"@["0B)!"3HV3G_ -XM_X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\QQNO>C;0F```` -XM`%6)Y8/L&(E=](G#B77XB7W\B57PZ(?___^+.XG&BP>%P'04QT0D!"`["0B) -XM!"3H>3G__X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\)QNO> -XMC;0F`````%6)Y8/L&(E=](G3B77XB<:)??SHB/___XG'BP:)1?"+`(7`=!3' -XM1"0$%#L)"(D$).@7.?__AQ=PXM%\(/`!(7_B08/ -XME,`)PXGP@^,!B=KHG?___X7_#Y7"A<`/E<`/MO@AU^O%C;8`````C;\````` -XM58GE@^P8B5WTBUT,BT4(B77XB7W\B=KH9/___XG&BT4(BSB+!X7`=!3'1"0$ -XM"#L)"(D$).B3./__AQ=PXUT)@"+50B#XP$)\XU' -XM!(D"#Y7`#[;`B40D!(D4).B1____"?`/E<`/MO#KQ(VT)@````!5B>57B<=6 -XM4X/L3(E5O(L8BS.%]@^$&P(``,=$)`1`.PD(B30DZ"(X__^%P'5)@\,$B?B) -XM'XM5O.C#____QT0D!#`J"`B)PXD$).@1N___B=CH*OS__XD<)(G&Z&"Z__\Q -XMP(7V#Y3`B00DZ/$B`0"#Q$Q;7E]=P\=$)`1(.PD(B30DZ,4W__^%P'5%@\,$ -XMB?B)'XM5O.AF____QT0D!#`J"`B)QHD$).BTNO__B?#HS?O__XDT)(G#]]/H -XM`;K__XD<).B9(@$`@\1,6UY?7<.0QT0D!%`["0B)-"3H;#?__X7`=4R#PP2) -XM'XM%O(D\)(E$)`3HB/[__XG&BP>+$(72=`6#.BET#L<$)"$``!#H7;?__XL' -XMC5@$B1^)-"3H/B(!`(/$3%M>7UW#C;8`````QT0D!%@["0B)-"3H##?__X7` -XM#X4?`0``B=Z#Q@2-1>R)7<")\\9%R`''1# -XM/BT/A$L!``#V1;P"#X0L`0``B30DZ(DO`P#IT_W__XL'C5C\B1_'0/P````` -XMQT0D"`(```#'1"0$$"\)",<$)/0N"0CHZB@!`(U%X(E%Z(G#B47DQT7@^&\) -XM"(L&AW__^A@%X)"(7`=`S'!"0```!`Z/*T___'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$_____XD<).BZ`0$`C47@B00DZ`^W___HFE;__^DI -XM_O__QT0D!`(```")-"3H960``.F?_/__BT8$QP0DIL<("(E$)`3H;;4``(7` -XM=1N+1@3'!"2]QP@(B40D!.A6M0``A<`/A(/^__^+1;R)?"0$B30DB40D".BK -XM\/__Z57\__^-M@````!5B>6#["B)7?2)PXEU^(E]_(G7Z,C[__^Z`@```(E% -XM\(LSBP:)1>SHI.W__X7`=":-1@3WQP(```")`W0IBU7PB10DZ'C!`@"+1>R) -XM!"3HK2T#`(E%\(M%\(M=](MU^(M]_(GL7<.+5?#'1"0$,"H("(D4).C'MO__ -XMB?J)V.A^____QT0D!#`J"`B)QHD$).BLMO__@^+5>R+`H/X*G1G@_@O -XM=$*#^"5T'8UV`#'VBT7PB00DZ..U__^)-"3H>QX!`(E%\.N,B?#HC_?__X7` -XMB<-T2XM%\.B!]___B<+!^A_W^XG6Z\B)\.AO]___A<")PW0[BT7PZ&'W__^) -XMPL'Z'_?[B<;KJ(M%\.A.]___B<.)\.A%]___B<8/K_/KD,<$)$@```#H(K/_ -XM_XGVZZ7'!"1'````Z!*S__^)]NNUC;0F`````(V\)P````!5B>6#["B)7?2) -XMPXEU^(E]_(G7Z)C^__^Z`0```(E%\(LSBP:)1>SH5.S__X7`=1"+1?"+7?2+ -XM=?B+??R)[%W#C48$B0.+5?#'1"0$,"H("(D4).B8M?__B?J)V.B?____QT0D -XM!#`J"`B)QHD$).A]M?__@^R+`H/X*W0?@_@M=#`QVXM%\(D$).B\ -XMM/__B1PDZ%0=`0")1?#KCXM%\.AG]O__B<.)\.A>]O__C1P8Z]*+1?#H4?;_ -XM_XG#B?#H2/;__RG#Z[V-="8`58GE@^P8B5WTB77XB<:)??R)5?#H%____XG' -XMBP:+&(7;=!V+`\<$)-3'"`B)1"0$Z-NR``"%P'0'BP,[0P1T$(GXBUWTBW7X -XMBWW\B>Q=PY"#!@3'1"0$,"H("(D\).B]M/__BU7PB?#HD____\=$)`0P*@@( -XMB<:)!"3HH;3__X,[/'0HB?CHM?7__XG#B?#HK/7__XG!T_N)/"3HX+/__XD< -XM).AX'`$`BBP/HMNK__X7` -XMB<R)\.B#____QT0D!#`J"`B) -XMQHD$).C!L___]D7L`74=@_\#='F-M@````!^-H/_!`^$@P```(/_!8GV=$:+ -XM1?")!"3H\[+__XD\).B+&P$`B47PBT7PBUWTBW7XBWW\B>Q=PX/_`G75BT7P -XMZ(OT__^)PXGPZ(+T__\YPP^?P`^V^.NZBT7PZ'#T__^)PXGPZ&?T__\YPP^> -XMP`^V^.N?BT7PZ%7T__^)PXGPZ$ST__\YPP^=P`^V^.N$BT7PZ#KT__^)PXGP -XMZ#'T__\YPP^Q=PXGVN@$```#&1=W_Z]20C70F`%4QP(GE7>N(D(VT)@`` -XM``!5B>6#[`B)'"2)="0$BW4(BUT,Z%0R___'``````"+`XE%#(L&B44(BQPD -XMBW0D!(GL7>GU,O__B?:-O"<`````5;@!````B>575E.![$PA``#H*O___XU% -XM\,=$)`1`;04(B00DZ/>Q__^-A3/?__^)1"0$H;1V"@C'1"0(`"```(D$).C8 -XML0``A<")1?`/CM8-``"-E3/?__^)%"3&A`4SW___`.C'+`,`BTT(B0PDB40D -XM!.A$+O__BT4(B00DZ#DO__^+50B)1?"+7(+\@^-_@_L*#X20#0``.T4,#X2' -XM#0``,<"#^QL/E,"%P(F%V-[__P^$U0<``(M%\(/[&XM-"(T$@8F%S-[__P^$ -XM4`@``(N%S-[__\<``````(M5"#F5S-[__XF%T-[__W9"BXW,WO__B8W0WO__ -XMZQ>0C70F`(.MT-[__P2+C=#>__\Y30AS'8N5T-[__XM"_,<$)&#)"`B)1"0$ -XMZ#$R__^%P'31BX70WO__QT7L`````,=%E`````#'19@`````QT6<`````(,X -XM?@^$4P<``(N5T-[__\=$)`0O````B10DZ)PL__^+C=#>__\QTHF-W-[__X7` -XM=!2#P`2)PBN5T-[__XF%W-[__\'Z`HN-T-[__XE4)`2)#"3HF"<#`,=$)`0P -XM*@@(B87@WO__B00DZ&*P__^+A>#>__^#.'X/A$@&``")!"3H"R<#`(F%Y-[_ -XM_XN=Y-[__X7;#X1Z!@``BXWDWO__QT0D!#`J"`B)#"3H(;#__XN5Y-[__[B2 -XM'0D(BPJ%R0^%E0@``(D$).B0+___A<")A?S>__\/A!@,``#'A?C>__\````` -XMBXW__^)!"3HK*___\>%[-[__P$```#'A>C>__\`````B[7XWO__ -XMA?8/A.D$``#HT3+__X7`#X2M````BP")!"3H@RH#`(G'A?^)^8N5W-[__W4/ -XMZ9`````[`77$@\($@\$$BP*%P'7PBX7TWO__AR+ -XM`H7`#X13"P``.PL(.P2/C78`=0R#P@2#P0&+`H7`=>S'`@`` -XM```[C?3>__\/A3C___^+G>S>__^%VW0+BTV8A__^%P`^$ -XM0P<``(M%F(7`#X1H!```@[W8WO__`0^%2@<``(N%T-[__RM%"(M5#,'X`BG" -XMBX7XWO__C5K_A<`/A*,*``"+C=#>___'1"0(`@```,=$)`1(.PD(B0PDZ`5: -XM`0"+1>R+C=#>__^)7"0(B40D!(D,).B,60$`BX7@WO__B00DZ(ZM__^+79C' -XM!"0(````Z-_(``#'!"0(````Z-/(``"+C__^)#"3HH2O__X7`#X5B!@`` -XMQP0D(````.BQR```QP0D(````.BER```QP0D"````.B9R```QP0D"````.B- -XMR```Z`C'``"-C33___^#ZP&)C<#>__]T*,=$)`3$F`H(QP0D\$4)".BC%`$` -XMC94T____B97`WO__A<`/A/D)``"+10C'1"0$"0```(D$).BX+O__QX74WO__ -XM`````(7`#X3J````@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".A/K?__BY7$WO__ -XMH__^#992_B47`BT68B4PD"(-EF/V) -XM1<2+19S'1"0$`````(E%R(M%H(E%S(M%I(E%T(M%J(E%U(M%K(E%V(M%L(E% -XMW(M%M(E%X(M%N(E%Y(M%O(E%Z*',EPH(B00DZ'^L``"AS)<*",=$)`@!```` -XMQT0D!$;)"`B)!"3H$JP``(U%P(E$)`BAS)<*",=$)`0`````B00DZ$:L``#' -XM!"3$K`L(Z.JK___'A=3>__\!````BXW8WO__A__^%TG04 -XMQT0D!`````#'!"0`````Z-03`P"#!<2L"P@!QT0D!+"0"`C'!"3$K`L(Z#FL -XM__^+E<3>__^AS)<*"(E4)`2)!"3H_B?__XM%E(N-Q-[__\=$)`0`````B84T -XM____BT68B4PD"(F%./___XM%G(F%//___XM%H(-EH(")A4#___^+1:2)A43_ -XM__^+1:B)A4C___^+1:R)A4S___^+1;")A5#___^+1;2)A53___^+1;B)A5C_ -XM__^+1;R)A5S___^AS)<*"(D$).A,JP``BU4(BP*%P'12B=__^%P`^$$?G__XN5P-[__Z', -XMEPH(B50D!(D$).C-)O__BXW`WO__H%Z-[_ -XM_P````"+A?S>__^)!"3HCRW__X7`#X2[^___@\`(B00DZ)`E`P")Q^D(^___ -XMBY7HWO__A=(/CK#[__^+A?C>__^%P'2>Z,@L___'A>S>__\`````QX7HWO__ -XM`````.FK^O__C464B87$WO__BX7@WO__B00DZ(RI__^-E33___^+79B#O=C> -XM__\!B97`WO__#X6!_/__Z>#[__^+E>#>__^+G>#>__^+0@2#PP2%P`^%S@$` -XM`,=$)`3$F`H(QP0DD"\)".@]$0$`B5PD!(D$).@!(`,`B87DWO__BYWDWO__ -XMA=L/A8;Y__^-592)E<3>___I=?___XD\).AG(`,`C564B10DB40D!.A('@,` -XMZ?OY___'!"0*````Z/?$``#I&OC__\>%U-[__P$```#I"_W__\=$)`0O```` -XMB00DZ)\J__^%P`^%E?C__^C"*___BY70WO__QT0D!#`J"`C'!"0`````@\($ -XMB97__\`````QX7DWO__`````,>%^-[__P$```#'A>#> -XM__\`````Z1KY__^-M@````"#Z`2)A___IHO?__\=$)`3$F`H(QP0D($() -XM".C>#P$`A<`/A+7Y__^+`(7`#X2K^?__BPB%R8F-\-[__P^$F_G__XF%'-__ -XM_XGYBP&#P02%P'7WBY7PWO__BP*#P@2%P'7W.97PWO__#X0Y`0``.?ET+8UR -XM_(M2_#M1_(U!_(G#=1T[M?#>__\/A!D!```Y^W0-BT/\@^X$@^L$.09TXXN% -XM'-___XM`!(.%'-___P2%P(F%\-[__W6/BT68@\`!B468@^@!#X4D^?__B3PD -XMZ.L>`P")1>SIB_C__X/X+P^$*?[__XG>@\8$BP:%P'51.=X/A!;^__^)\"G8 -XMP?@"B1PDB40D!.@4'P,`B<.)!"3HRB`#`(D$).@BJ0``B1PDB___'!"22N0@(B50D!.C,_P(` -XMZ:KY__^)%"3H3R`#`.E>]___BXW\WO__B0PDZ(RI``#IJOC__X.%Z-[__P'I -XML_?__XE$)`2+193'1"0,4&T%",=$)`@$````B00DZ&@C__^+A>3>__^#O?C> -XM__\!BU68BWV4&]%-___X7`B<*)A03?__]U#\>%!-___P$```"Z`0```(N-`-__ -XM_XU$"O^)T3'2]_&)A__^-A33___^)A<#>__^+A__^%P`^.Q`$``(N- -XMR-[__XN%!-___XF](-___\>%"-___P````#!X0*#Z`&)C;S>__^)A;C>__^+ -XMG03?__^%VP^.4`$``(N-(-___S'VB[T(W___B8T8W___ZR*0BX6\WO__@\8! -XM`[W(WO__`848W___.[4$W___#X08`0``.;T`W___=M>+E1C?__^+`L<$))*Y -XM"`B)1"0$Z/_]`@"+A0S?__^Z(````(7`#X2+````BXT8W___BP&)1"0$BX4, -XMW___B00DZ+(;`P")PXD$).A8'@,`B1PDB840W___Z.JO`@"+C1#?__^-E33_ -XM__^)5"0$B0PDZ)XA__^%P'4X#[>-//___XG()0#P```]`*````^$R0```#T` -XMP```NCT```!T&#T`0```LB]T#X/A2;HJ````=06Z(````(D4).AYP```.;6X -XMWO__#XX-____BXT8W___BP&)!"3HB2+__XU8`3N=%-___P^-[O[__\<$)"`` -XM``"#PP'H/\```#N=%-___WSIZ=+^__]FQT7"4`#IW?W__\<$)`T```#H&\`` -XM`,<$)`H```#H#\```(.%"-___P&+E0C?__^#A2#?__\$.97(WO__#X5J_O__ -XMBY7@WO__B10DZ-&C___IW?;__XN5$-___XV%-/___XE$)`2)%"3HT"/__X7` -XM=1P/MX4\____NCX````E`/```#T`0```#X0C____ND````#I&?___XN%S-[_ -XM_\<$))*Y"`B)1"0$Z&3\`@#'!"0@````Z,B^``#'!"0(````Z+R^``#I*O;_ -XM_XU-\(D,).A,H___BT7P@<1,(0``6UY?7<.-392)C<3>___IEOG__XN%X-[_ -XM_XN5T-[__XE<)`B)1"0$B10DZ&1/`0#I6O7__S')QP(`````.XWTWO__#X4# -XM]/__Z<;T__^AS)<*",=$)`@!````QT0D!$3)"`B)!"3HV:(``(V--/___XF- -XMP-[__^G9]?__D)"0D)"0D)!5B>5=PXUT)@"-O"<`````58GE7<<%=&$)"``` -XM``##D%6)Y5W'!=0D"0@!````PY!5B>53@^P$H0!A"0B#^/]T$XD$)/\5\*P+ -XM",<%`&$)"/____^+'8"8"@B#^_]T,\<%@)@*"/_____K&I"-="8`Z/575E.#["R+11"+712)1"0(BT4,B5PD#(E$)`2+10B)!"3H9_[_ -XM_X,]`&$)"/^)QP^$V````#G##X30````B47LB00DZ&$D__^+#?Q@"0B%R8G" -XMC4`!B47H#X2Y````H?Q@"0B-=>2-7?")1?"0BT7HA<`/A(H```"A^&`)"`,% -XM_&`)""M%\(ET)!")7"0,B47DC47HB40D"(U%[(E$)`2A`&$)"(D$)/\5[*P+ -XM"(/``76[Z*(@__^#.`>-=@!U3J'X8`D(`<")1"0$H?Q@"0B)!"3H%JP"`(7` -XMB<)T,(M%\"L%_&`)"-$E^&`)"`'0B47PBT7HB17\8`D(A<`/A7;___^+/?Q@ -XM"0B0C70F`(/$+(GX6UY?7<.-0B&C^&`)"(D$).AVJP(`A<"C_&`)"`^%*O__ -XM_^O7C;0F`````%6)Y5=64X/L+,=$)`1P?`4(QP74)`D(`````,<$)-0D"0CH -XMZ9___Z$@)`D(QT7H`0```(E%\,'@!(VXX-(("('_X-(("'8DN^#2"`@Q]HL# -XMB00DZ!0C__\YQG,"B<:#PQ`Y^W+I@\8!B77HH>"7"@@QTL=%Y`$```#'1>P` -XM````@\`!]W7HA1T -XM6Z$@)`D(P>`$!>#2"`@[1=QVYHM%W(L8B1PDZ'4B__^)7"0$QP0D^]X("(G& -XMZ%?W`@`Y?>Q^&3MUZ',4QP0D(````(/&`>A>N@``.W7H=>R#1=P0@\`Y1=1^%HL]8&0)"(7_=5;'!"0*````Z"^Z``"#1>`!BT78.47@#X5? -XM____BQU@9`D(A=MT#,<$)`T```#H";H``,<$)`H```#H_;D``,<$)-0D"0CH -XMX9W__X/$+%M>7UWIM;<``,<$)`T```#HV;D``.NAV"@B)1=BAS)<*"(E%[*$$=@H(B47PZ.ZC``#'1"0(`0`` -XM`,=$)`0"````B477UW#B1PDB40D!.BR1P``A<") -XMPW0AQT0D!/`C!@B)WXD<).CZF___B1PDZ/*@``")QNDI_O__QP0D,0```.CO -XMF/__Z]&-M@````"-O"<`````58GE4X/L%(M="(L#HTAW"@B+0P3'!?R8"@@` -XM````HTB:"PB+0PBCZ'8*"*&T=@H(B00DZ`B>``"AS)<*"(D$).C[G0``H01V -XM"@B)!"3H[IT``(M#&(E$)`2+0PR)!"3H+*(``,=$)`@!````QT0D!`(```") -XM!"2CM'8*".C;%___BT,6#[`BAP'8*"(7`=3&AE'<*"(7` -XM=`C)PXVV`````,=$)`0!````QP0D`0```.BX&___QP7,K`L(`0```,G#QP0D -XM+@``$.A4E___Z\&)]E6)Y593@^PPH329"PB%P`^%50$``(UUX.@3-___B70D -XM",=$)`0`````QP0D$@```.CW&O__QT0D!`````#'!"02````Z%,;___'1"0$ -XM$@```,<$)`````#H/Q;__\=$)`@`````B70D!,<$)!(```#HMQK__X,]U)<* -XM"/]U:>G4````.QWP=@H(#X2>````B70D",=$)`0`````QP0D%0```.B%&O__ -XMQT0D!`````#'!"05````Z.$:___'1"0$%0```,<$)`````#HS17__\=$)`@` -XM````B70D!,<$)!4```#H11K__\<$)`\```#H&1G__X/X_XG#=8GH31G__XL` -XMB00DZ/,6___'1"0$ILD(",<$)#8```")1"0(Z"^6__\['?!V"@@/A6+___^A -XMW)D+",<$)`````")1"0$Z%H7__^AW)D+",<$)`\```")1"0$Z!45___'!"0/ -XM````Z*VT`@"#Q#!;7EW#QP0D2@```.C:E?__Z9K^__^0C70F`%6)Y5>)QU93 -XM@^P,BQ7@(@D(A=)X4+O@(@D(,?:-="8`BT,$B00DZ*43`P")/"2)1"0$Z*F7 -XM``"%P'02A?9T#,<$)"<``!#HA97__XG>BT,0@\,0A -XM7UW#QP0D%@``$#'VZ%V5___KYHUT)@"-O"<`````58GE@^Q(B7W\B<>-1>2) -XM7?2+70B)=?B+=0R)5=2)1"0$BP>)!"3HD1K__XM%U(7`=#Z+5>B)=?"+1>0[ -XM5?")7>Q]3HU5Y(E4)`2+!XD$).@X'/__,=*%P'A?BUWTB="+=?B+??R)[%W# -XMC;0F`````(GRB=B!\O___W_WT`G"="*)=>B+5>@[5?")7>2+1>1\LG\%.T7L -XM=JN)1>R)5?")]NNAH2R9"PB%P'35BT7LBU7PB47DB57HZXKHCA?__XGR@?+_ -XM__]_BP")1=R)V/?0"<(/A-\```"A@)@*",=$)`S4O@@(QT0D"`,```#'1"0$ -XM#P```(D$).CT]?__B00DZ%R?``#'1"0$,"H("(E%X(D$).@IE___BTW4N$7) -XM"`B%R0^%N0```(D$).@QGP``QT0D!#`J"`B)QHD$).C_EO__BT7")7"04B70D$(E\)`B)5"0,BU78B00DB50D!.CO[@(`BT7@ -XMB00DZ/25__^Z_____^FD_O__H8"8"@C'1"0,L,D(",=$)`@"````QT0D!`\` -XM``")!"3H%?7__^D<____H8"8"@C'1"0,M\D(",=$)`@$````QT0D!`\```") -XM!"3HZ_3__^D=____C;8`````58GE5S'_5E.#[`R+=0C'1?``````@\8$BQZ% -XMVW0T@SLM#X6*````@\,$BP.%P'3E@_AF#X3&````@_AH#X2S````QP0D@@`` -XM`.CRDO__B?;KU:'@(@D(,?:[X"()"(7`>$>)V(GZQP0D_____\=$)`3___]_ -XMZ';]__\]````@(/>_X/#$(L#A%]G03QT4(````((/$#%M> -XM7UWIEY+__X/$#%M>7UW#B=B)\^L*BT,$@\,$A=>+1?"%P'70QP0D````(.A-DO__Z\*_`0```.DH -XM____QT7P`0```.D<____D(UT)@!5B>56B<93@^P0H:`C"0B%P'0K,=OK#HL$ -XMG:0C"0B#PP&%P'09B40D!(DT).C;$?__A+`XE%\`^^$(L!*=!UVHM%\(D$).AI#P,`BTT(B0PD -XMB40D!.@V$?__AZ[F-M@````"-OP````!5B>6#[#B)7?2) -XMTXEU^(G&B7W\BW@(BT`$QP0DOB+5>R)1=B)5=R+5=R+1=B!\O___W_WT`G"#X2,```` -XMBPZ%R71WBT8,BU7PC' -XM1=0!````A?8/A6;____'1=P!````BS7@(@D(N^`B"0B%]G@3BU77UW#QP0D&```$.@IC___V478V`4@S@@(V04XS@@( -XMV=C[=V,=%R/_____'17UWIT8[__]E]Z@^W1>JT#&:)1>C9;>C? -XM?KKNHM5U(GP@\0\6UY?7>EH_?__VT8(V$W8V7WJ#[=%ZM@%(,X("+0, -XM9HE%Z-EMZ-]]R-EMZNN%BSZ%_P^$1?___[K^R0@(B=CH_O+__]E%V-@--,X( -XM"-E=V.DT____BP:%P`^%'O___[K7R0@(B=CHU_+__]E%V-@-*,X("-E=V.D- -XM____BP:%P`^$]_[__[KWR0@(B=CHL/+__]E%V-@-,,X("-E=V.GF_O__BP:% -XMP`^%Q````+K=R0@(B=CHB?+__]E%V-@-),X("-E=V.F__O__BP:%P`^%J?[_ -XM_]GNV478VNG?X,=%R`````#'1K>P;0,9HE%Z-EMZ-]]R-EMZNF&_O__ -XMBP:%P`^%1O[__[KOR0@(B=CH__'__^E!_O__NL;)"`B)V.CN\?__QT7(____ -XM_\=%S/___W_I3/[__XL&A<`/A`S^___'`VT```"ZYE7$/__A,EUX('[_P$``'_8B54(@\0$6UWI/A#__\<$)`````#H -XM,A#__P^WV(D<).@G$/__B5T,QT4(!575E.#[!R+10B) -XM1>RAT)<*"(E%\(L(AQT">L6@\($.P%U -XM#XM"!(/!!(7`=>^#.3UT%HM+!(/#!(7)=`2)S^O/@\0<6UY?7<.-0P3'`P`` -XM``")1"0$H="7"@B)!"3HAI,``*/0EPH(H=AU"0B)!"3H!)(``*'0EPH(B00D -XMZ,<'`P"CV'4)"(D[B3PDZ)B8`@"+1?")10B#Q!Q;7E]=Z8:8`@"-M@````!5 -XMB>575E.#[!RAT)<*"(E%X(L(A564X/L((M%"(M`!(7`=%:)!"3H=C@! -XM`(7`B<8/A+P```"A<&$)"(U=],<%<&$)"`$```")1?2)'"3'1"0$T#@&".AG -XMC/__B70D!,<$)!$7"0CHI^0"`(D<).BOB___@\0@6UY=P\<%=&$)"`$```#' -XM1"0$8'P%",<$)'1A"0CH*HS__XL=T)<*"(L#A)UU93@^Q,QT0D!,28"@B)1BQB%VW08QT0D!*PZ"0B)'"3H2@C__X7` -XM#X5[`@``QT70`0```(M7!#';N`$```"-=P2%T@^$LP```*&4=PH(A<`/A=@` -XM``")-"3HE3<``(G'A?]T$,=$)`3P(P8(B3PDZ`^+___V1=`!=`J#?<@@#X2_ -XM`0``BS>)^L=%S`````"+1=")5=31Z(A%N(7V=%2AE'<*"(7`=!GIU@$``(VT -XM)@`````-````0(D$).CCIP``BP:%P`^$3@$``(/&!(/X7'7A@'VX`'3;BQZ# -XMQ@2#^W9V<<<$)%P``$#H!:8``(G8Z\&+32)'"3H -XM&OL"`(DT).BR-@``B1PDB)^X7V#X2X_O__QT0D!,`["0B)-"3H$`;__XGZQT7,`````(7`#X4?_O__ -XMBW<$C5<$QT7,`0```.D-_O__C5WDB1PDZ,;Y`@")'"3H3HC__^DF_O__B=`- -XM````0(GVZ1#^___'1"0$O#H)"(D<).BW!?__QT70`@```(7`#X1M_?__QT0D -XM!-`Z"0B)'"3HF`7__\=%T`,```"%P`^$3OW__\=$)`3D.@D(B1PDZ'D%__^% -XMP`^5P`^VP(E%T.DN_?__C;8`````C;PG`````%4QP(GE@^P(BU4(Z,#\___) -XMZ9JA``"-=@"-O"<`````5;@@````B>6+50A=Z9_\___K#9"0D)"0D)"0D)"0 -XMD)!5B>575E.#["R-1>")!"3HK%,``*'@F0L(A"9 -XM"PAT+HG8BU`0BU@LA=)TY3L0=>$[5>!UW(/Z`G0QT!\=` -XM!`````#'!"0!````,?8Q_^C96```B<.-M"8`````@_L@#X2W````@_L)#X2N -XM````@_LC#X2X````@_O_B?8/A`D!``"#^PH/A`0"``")'"3HR4\``,=%\`$` -XM``")]L<$)`$```#HA%@``(/X7(G##X3^````@_LG#X3`````@_LB#X2W```` -XM@_O_C70F``^$N0```(/[*`^4P(G&BT7LAR)!"3HK/D"`(M% -XM\`GX=5J)\(3`=%2+3>R%R0^%OP$``(/[(+X!````#X5/____C;8`````QP0D -XM`0```.@$6```B7UW#,<`YWP^4 -XMP(/H`2''Z13____'!"0!````Z&]7``"#^`J)PP^%Z_[__[,@,?;I"?___Z$$ -XM80D(_R2%C,T(",=$)`0)R@@(,?;'!"04```0Z-F"__^#Q!R)\%M>7UW#H0AA -XM"0@Q]HD$).B0_@(`QT0D!!K*"`C'!"04```0HR!W"@CHIX+__X/$'(GP6UY? -XM7"__^#Q!R)\%M>7UW#QT0D!.(&"0@Q]L<$)!0``!#H1X+__X/$ -XM'(GP6UY?7<.+1>R%P`^$^O[__\<$)`H```#HMDT``(7V#X3H_O__BT7L@V@$ -XM`8D$).@_^`(`@\0) -XMQU:)UE.#[#R#_PJ)3@`````QT7L`````,=%\`````"C!&$)"(D-"&$) -XM"`^$Y@,``(U=Z,=$)`2PD0@(B1PDZ)2$___'1=``````H9B)'"3H?8/__X/$/%M>7UW#D(UT)@#_)(7,S0@(B=CH@0_/__ -XMA?8/B0O____I;O___X/_"W3D@_\$=-\QP.CR^___A?8/B>W^___I4/___Y"- -XM="8`@_\!#X1'`@``@_\!@]X`,<"#;=`!Z,;[__^%]@^)P?[__^DD____A?:- -XMM"8`````#X4*____@_\+C;0F``````^$!?___S'`Z)/[__^%]I`/B8W^___I -XM\/[__Y"-="8`@_\/#X77_O__A?:0C70F``^%RO[__S'`Z&/[__^-=@#IQO[_ -XM_X/_#P^%LO[__X7V#X6J_O__B=CH0_O__XM%[(7`#X7@`0``BU7HB10DZ*U] -XM__^)!"3H=8$``,=$)`0P*@@(B47,B00DZ**"__^+1B#?(+\.@^%,OW__X/H`8/_"HE%[,<$ -XM@@`````/A+````"#_P\/A1/]__^+1>C'1"0$H#L)"(D$).@<_O[_A<`/A?C\ -XM___I*?[__XUV`(M%T(7`#X6T_?__BQ7@F0L(A=(/A*;]__^+0BRCX)D+"(G0 -XMZ/CQ___IDOW__XL5Q",)".D/____BU7H@WR"_#H/A17^__^#Z`&)1>S'!((` -XM````Z0#^__^+`.DI____C478QT78`@```,=%W`````#'1>``````B00DZ&%- -XM``#I]?O__XM%R(E$)`2+1>B)!"3H=OW^_X7`#X52_/__Z8/]__^-M@````"- -XMO"<`````58GE@^P(BQ7@F0L(@WH0`G01C4(0B00DZ!--``#)Z1WX__^+0A0+ -XM0AAUYS'),=(QP.A:^___H>"9"PB#P!")!"3HNDL``*'@F0L(@T`4_X-0&/_) -XMZ>?W__^-M"8`````58GE@^P(H>"9"PB%P'07H2AW"@B%P'0(R<.-M@````#) -XMZ7K____'!"0O```0C78`Z.M\___KV(GVC;PG`````(L5*'<*"%6)Y872=`-= -XMPY!=,"9"PC'0!``````H91W"@B%P'4U -XM, -XM?O__H2AW"@B%P'4.B=DQTK@/````Z.?Y__^)70B#Q!!;7EWI&7[__XU3!+[X -XM;PD(ZYWK#9"0D)"0D)"0D)"0D)!5B>564X/L$(L=X)D+"(MU",<%Q",)"`H` -XM``"%VW44ZSV-0Q")!"3H-$L``(M;+(7;="N#>Q`"=>B+0Q0+0QAUX#'),=(Q -XMP.AT^?__C4,0B00DZ-E)``"+6RR%VW75B?$QTK@*````Z%3Y__^#Q!!;7EWI -XM^?7__XGVC;PG`````%6)Y5.#[!3'1"0$`````(M%"(M`!(D$).C3*@``QT0D -XM!#`J"`B)PXD$).CQ??__H2AW"@B%P'4(B1PDZ$#___^)70B#Q!1;7>DS??__ -XMC78`H2AW"@A5B>6%P'0$7<.)]ETQR3'2N`0```#IT?C__Y!5B>6#[!B+%>"9 -XM"PB+0BB%P'1CBT(@@W@$`(U(!'1!BP")2B")!"3H1/0"`(D$).AL?```QT0D -XM"`(```")1"0$H>"9"PB+0"B)!"3H<.T``*'@F0L(B00DZ!-*``#)PY#'1"0$ -XM`````,<$)`````#H+/W__\G#B10DZ/))``#)D,/K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[`B+#>"9"PB%R706BQ4H=PH(A=)T!LG#C70F`,GI2O___\<$)"\``!"- -XM=@#H^WG__^O9B?:-O"<`````58GE@^P(H>"9"PB%P'0GH>"9"PB#P!")!"3H -XM44@``*$H=PH(AGZ_O__QP0D+P``$(UV`.BK>?__Z\B) -XM]HV\)P````!5B>564X/L$(L=X)D+"(7;=`Z+`SL%[)@*"`^$@@```#';BQ4H -XM=PH(,?:#10@$A=)U'J'`=@H(A7 -XM7<.%VW6VC44(QT0D!`$```")!"3H&,#__X7`#Y3`#[;PZZZ+4PB+#?28"@B+ -XM0P0S!?"8"@@QT0G!#X5B____BT,,.P7XF`H(#X53____BTLHA"9"PB) -XM4"RCX)D+"*'`=@H(QP7$(PD($@```(7`#X09____Z(K[___HA?W__Y"-="8` -XMZ0G____'!"0A```0C70F`.@K>/__Z>S^__^-M@````!5B>6#[`BAC'8*"(7` -XM=0FAE'<*"(7`=1FA-)D+"(7`=`+)P\<$)$8```#H\7?__\G#QP0D`````.BS -XMFP``H329"PB%P'7;Z]N0C;0F`````%6)Y8/L&*&,=@H(A575KX!````4X/L#(M="(M%#(U[!(E%\(VV`````(L'B00D -XMZ`;?``#'1"0$`@```(D<)`^O\.CS?```BP.%P'04QT0D!&A-"0B)!"3H6?;^ -XM_X7`=,FA*'<*"(7`=`6^`0```*&4=PH(AQP0DQ*P+".B`>/__@\0,6UY?7>G$>P`` -XMQP0DQ*P+".AH>/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".CM>/__ZZ^#!<2L -XM"P@!QT0D!+"0"`C'!"3$K`L(Z-!X___I>?___XUT)@"-O"<`````58GE5KX! -XM````4X/L$*$H=PH(@T4(!(7`#X29````BUT(BP.%P`^$G@```,=$)`0@2`D( -XMB00DZ''U_O^%P'4QBT,$A7<.)]H7V=/.+50R+0A`IP\'[`HE<)`2)!"3HI7L``(M% -XM#(D$).@:_O__Z-5Z``"#Q!!;7EW#,53@^P4 -XMBT4(B00DZ&[Q`@#'1"0$\",&"(G#B00DZ+QW___HI_S__\=$)`3$F`H(QP0D -XM8#8)".BCW@``QP0D`````(7`#Y7`#[;`B40D!.@;,```QT0D"`````#'1"0$ -XM5'<*",<$)`\```#H6_C^_XE<)`3'!"0DR@@(Z*OX_O^)7"0$QP0D(,H(".B; -XM^/[_B1PDZ*=V___H,A3__\=%"`$```"#Q!1;7>EQ%/__D%6)Y8/L".@5_/__ -XMQT4,`````,=%"`````#)Z4$6__^058GE@^P(QT0D!)1V"@B+10B)!"3H=^`` -XM`,GI<1@!`)!5B>6#[`C'1"0$_____\<$),28"@CH9ML``,G#C70F`%6)Y593 -XM@^P0BT4(BW`$A?8/A-,```"+4`B-6`B%T@^$@@```,=$)`2@-PD(B30DZ(CS -XM_O^%P'58B30DZ'#O`@#'!"00```0HR!W"@CHCW/__XD<).@W?P``B30DB7>E7 -XMD0``QT4,_____\=%")1V"@B#Q!!;7EWI7MH``(/$$%M>7<.-M"8`````58GE -XM5U93@^PLBUT(BWL$@S\M=`S'!"1Z```0Z+!R__^-0PB)!"3H!2(``,=$)`3P -XM(P8(B47@B00DZ()U__^+=>")=?"+#H7)=%^-1?"#Q@3'1"0(`````(E$)`2) -XM/"3HO*[__\=$)`0P*@@(B<.)!"3H2G7__XE<)`3'!"22N0@(Z(K-`@")'"3H -XMDG3__XL>A=MTK<<$)!W<"`CH<,T"`(EU\(L.AE+Y0(`H91W -XM"@B%P'4DQT0D!`````#'!"0"````Z&KU_O_'!5!W"@@`````@\046UW#QT0D -XM!,"/"`C'!"0"````Z`KE`@#KVI"-M"8`````58GE@^P8B77XBW4(B5WTB7W\ -XMBWT,BT80B00DZ'"0__^+!Z,@=PH(BT80B00DZ,YQ``"-6/\[7PA\*SM?#'X, -XMQP0D#P``$.BEQ=_^''!"0.```0 -XMZ']P___KQXVV`````(V\)P````!5B>575E.#[`R+70B+0Q"+`(E%\(G"BP"I -XM````0`^%BP```(/X.G09B10DZ*!Q``"#^#H/A*(```"+5?"#.B5T>:$@)`D( -XMP>`$C;#@T@@(@?[@T@@(=E>_X-((".L-B?:%P'A$C7L0.?YV0XGP*?C!^`7! -XMX`2-'#B+1?"+"P^^$`^^`2G"B=!UUXD,).C?[0(`BU7PB10DB40D!.B@'0$` -XMA;R)WCG^=[TQVX/$#(G86UY?7<.+0P2H`70Q@^#^B4,$N\@C"0B) -XM%"3H;.L"`*/((PD(Z]6+1?"[Z",)"(D$).A5ZP(`H^@C"0CKOHM%\+O8(PD( -XMB00DZ#[K`@"CV",)".NGC;0F`````%6)Y5=6,?93@^P,BT4(B47PH="7"@B+ -XM&(7;#X24`@``BQ.%T@^$N0```#')@_H]#X2N````@\$!BQ2+A=(/A?X````Y -XMSGT"BV!^_\```!VVHD<))"-="8`Z&?M_O^I -XM```$`'31@SV`40D(`<<%0&0)"``````/E,(QP('[_P````^?P"'0HV"9"PCH -XM6?D!`*$\9`D(A<`/A$?^__^A0&0)"(7`#X4Z_O__Z$K)`0#I,/[__\=$)`2@ -XM3`D(B3PDZ-'L_O^%P'4-B1PDZ`EO`0#I#_[__\=$)`3@-`D(B3PDZ+#L_O^% -XMP`^%]_W__^B'S/__Z&+-__^)]NGF_?__B7T(@\0,6UY?7>G\;O__N`0```#I -XMG/W__XGV58GE5U93@^P,BT4(BW`$C7@$A?8/A)4"``"+!H7`="F)\^L*BT,$ -XM@\,$A)!"3H&F___XE\)`2)-"3H#N'_ -XM_\=$)`2(.PD(B30DZ.KK_O^%P`^$^````(GPZ,_9__^%P`^$%`$``,=$)`1% -XMR0@(NX````#'!"0`````Z+KQ_O_'1"0$1!="0CK'HM$GC2I```$`'4L@\,!@?O_````?R'WPP```$!U[8'[ -XM_P```';:B1PDB?;H9^O^_ZD```0`=-2#/8!1"0@!QP5`9`D(``````^4PC'` -XM@?O_````#Y_`(="C8)D+".A9]P$`BQT\9`D(A=MT+8L-0&0)"(7)=2/H4,7UWI,VW_ -XM_\=$)`3@-`D(B30DZ*_J_O^%P`^$O````,=$)`3`2PD(B30DZ)?J_O^%P'1V -XMQT0D!"A`"0B)-"3H@^K^_X7`#X7!````B3PDZ'=L``#'1"0(`@```,<$)-`O -XM"0B)1"0$Z'_=``")/"3H%VW__XD\).B_;/__B3PDZ#?F`@"+%8AW"@B%THG# -XM#X4\`0``QP5@90D(`````(/$#%M>7UWIR`$`B7T(@\0,6UY?7>E?;/__Z,K)___HI7UWI'N#__\=$)`0\0`D( -XMB30DZ*KI_O^%P'1%QT0D!!A*"0B)-"3HENG^_X7`#X7I````B3PDZ(IK``#' -XM1"0(`@```,<$)`!*"0B)1"0$Z)+<``")/"3H*FS__^F3_O__B7PD!(D\).AY -XM+O__B3PDB -XM7UWI*S?__[@(````OQZR"`C\B=Z)P?.F#X2M_O__N`4```"_,;(("(G>B<'S -XMI@^$E_[__\<$)(`Q"0C'!>29"P@!````QP6(=PH(`````.ANW```Z7+^___' -XM1"0$H#\)"(DT).B5Z/[_AY_[_A7UWI -XMT_0!`,=$)`0`3`D(B30DZ*_G_O^%P'31QT0D!"!,"0B)-"3HF^?^_X7`=+W' -XM1"0$Y$L)"(DT).B'Y_[_A!="0B+1)`T]L0!=1.#^U]T&L<$ -XM)!T``!#H*6?__XL>A=MT4_?#````0'4_BSW@70D(ZR.-=@"+1(!(7;="N#Q@3WPP```$!U%`^VPSW_````=M:)!"3HZN;^_^O0QP0D -XM'P``$.C09O__BT7PB<.+.(M`!(/#!(,X*`^$TP```,<$)!,``!#HKF;__X/# -XM!(D<).AS`0``A<`/A(````")1"0$B1PDZ!\5``"%P(G\````QT0D!#`` -XM``#'!"0!````Z$%T`@")<"2)PXEP((D$).CA-```B3PDZ`G@`@")0RBAX)D+ -XM",=#$`(```")0RR+/"9"PC'!<0C"0@)````A?]U/XLU*'<*"(7V -XM="F#Q`Q;7E]=PXD<).C#<0``B<:)!"3HJ0```.N"B10DZ`OF_O_IN_[__X/$ -XM#%M>7UWI+NO__^@IZ?__Z[J)'"2-="8`Z.MF``"+1(/\@S@I#X44____Z1O_ -XM__^A*'<*"(7`#X4W____QP0D,0``$.BP9?__Z2;___^0D)"0D)"0D)"0D%6) -XMY593@^P0BUT(ZPF-=@"+$(72=1"+`X/#!(7`=?&#Q!!;7EW#B<:)%"3_50R+ -XM5@2#Q@2%TG3>Z^Z-M@````!5B>6+30B+$8/!!(72=!*+`H7`=/$E____/XD" -XM@\($Z^Y=PXVV`````(V\)P````!5B>575E.#[`BAV)<*",=%\`````")1>R+ -XM50B+`H7`#X3I````@T4(!(L0@_I^#X1^````@_H]='F#^GL/A*````"%TG32 -XMBU@$C4@$ZS:)]H/Z>W0YA=)X._?"````0)!U,H/Z?W\M#[;"]H0`X"`)""!T -XM((--\`&#P02%VW29B=J+7@2#^F")SHUY_'7"@TWP`NOD@WWL`W7>A=N-="8` -XM#X1R____@_HN=`V#P02)]NO-@TWP`NN*@_LND(UT)@!UZ8M!!(7`=`6#^"]U -XMW8M5"#EZ_'0&@WGX+W7/@TWP`NO)BU@$A=L/A"O___^#^WT/A5/___^+2`B% -XMR0^%2/___XM5"(L"A<`/A1?___^+1?"#Q`A;7E]=PXVT)@````!5B>575E.# -XM[%R%THE%N(E5M(E-L(L`B47`#X2[`P``BQ*)5;R+1<"+`(7`B47$#X2``0`` -XMBWW`BU7$@SI[=12+0@2%P`^$6@$``(/X?0^$%P(``(M-Q,=$)`1[````B0PD -XMZ-;G_O^%P`^$-@$``(M%Q,=%Z`````#'1>P`````QT7P`````,=%W`````#' -XM1>``````QT7D`````,=%T`````"#.'MT$X/`!(,X>W7XB<,K7<3!^P*)7="- -XM<`2+0`2%P`^$%`$``(GSQT7,`````.L@@_A[#X3O````@_A]D`^$!P$``(/# -XM!(L#A<`/A.D```"#^%MUVX/#!(L#@_A=#X3M`@``A7^__\IPHG0P?@"@_AD`"B4VP -XMB40D!(D<).AQ<`(`BTVXB47`B0&+5<")^"G8@^#\C3P0BT6\*=B#X/P!T(E% -XMO.D!____BP:)!X/O!(DT).@;;P(`Z3K___^+0@B%P`^$+____^G9_?__BTW0 -XMC57HBT7$B10DB4PD"(E$)`3H/=D"`(U-W#G>B4VL#X>\````C47R)\"G(P?@"B40D".BWV`(`BTVHC47HB00DB4PD!.@EV0(`C57HB10D -XMZ`K7`@"+1>B)!"3H?]H"`(U-W(D,)(E$)`3H8-@"`(U.!(G..?,/@V3___^+ -XM7:R)'"3H&-@"`(G&BT7HB00DZ`MN`@"+1>"%P(E%R`^)I?W___?8Z8[]__^- -XMM@````"#1"L"PB+=?R)`Z'DK`L(B4,$H>BL"PB)0PB+ -XM7?B)[%W#C70F`(V\)P````!5B>575HG.4X'LK*```(F%<%___XM%"(F5;%__ -XM_X7`=1#'A7Q?__\`````]D$#0'0*QX5\7___````0(U%Y(U=[(E%W,9%S`'' -XM1=``0```QT74`````,=%V`````#'1>``````QT7D0#P)",=%Z`````#HR8$` -XM`(U%S(D$),=$)`1@/P8(Z"9B__^)'"3H3JH``(D<)(U=\,=$)`1`'@4(Z`MB -XM___'1"0$0!X%"(D<).C[8?__C57,QT0D!/____^)%"3H.)P``(7`#X4O`P`` -XMBT7LB00DZ$5D``"+1?#'1"0$`0```(D$).B":```H01V"@C'1"0$`@```(D$ -XM).AM:```Z!CG_O_HPV@``(DUD'8*"(L&A!.L.@_@-=#&+`X/#!(7` -XM=#$E____/XE#_,=$)`3$F`H(QP0DX#$)".AHR```A"0B%P'02B00DZ/]J`@#'!8!>"0@` -XM````QP0D>'8*".@96```QT0D!)#I!0C'!"1X=@H(Z%5@__^A@%X)"(7`=`S' -XM!"0```!`Z%!=___'!"1X=@H(Z/1X``"A@'8*",=$)`@`````QT0D!'AV"@B) -XM!"3H9W4``,=$)`1`*P8(B<.)!"3H!6#__Z&`7@D(A___'!"0`F@L(Z(#=_O^AP)@*",<%<'8* -XM"`````"%P`^$S?[__XN%@%___\<%_)@*"`````")!"3H55[__XN5O%___XN% -XMN%___XD5+)H+"(N5M%___Z,HF@L(BX6P7___B14DF@L(BY6L7___HR":"PB+ -XMA:A?__^)%1R:"PB+E:1?__^C&)H+"(N%H%___XD5%)H+"(N5G%___Z,0F@L( -XMBX687___B14,F@L(BY647___HPB:"PB+A9!?__^)%02:"PBC`)H+".BF6___ -XMZ2'^__^)'"2-G%A%___P````")G61?__^)E6A?__^%]@^$G````(N->%___X7)=4"+%X'B -XM____/XF5=%___P^%K0$``(U%[(D$).BA7?__Z`RB``"-17UW#C;8`````BX5T7___AB5PD!"G8B40D"(M%[(D$).BQ70``QX6,7___```` -XM`(7`#XY9`0``C3PP.;UD7___#X-V`0``C9W,W___B;W`7___QX6(7___```` -XM`.L-`<.#A8A?__\!.?MS0(NUP%___XN5B%___XE<)`0IWHV$E%B%___P````#I_O[__XUV`%6)Y5=64X/L+(MU"(U%W(D$),=%Z`````#' -XM1>P`````QT7P`````,=%W`````#'1>``````QT7D`````,=$)`3PD0@(Z+=; -XM__^-1>B)!"3'1"0$L)$(".BD6___BP:%P`^%F````(GS,<")1"0(C47HB70D -XM!(D$).A3T`(`BPN%R0^$X@```(M#!(U[!(7`#X67````B?XQTH7`=1O'1"0$ -XM8````,<$)#,```#H7UC__XGR*?K!^@*)5"0$@\8$B3PDZ%G2`@#'1"0$,"H( -XM"(G#B00DZ"=;__^+10R)V8U5Z(D$)(U%W.AD^/__B1PDZ&Q:__^+!H7`#X1H -XM____@_A@B?,/A%W___^-M"8`````@\,$BP.%P'4,B=@I\,'X`NE%____@_A@ -XM=>;K[8/X8(G^#X1>____@_A<=!^#Q@2+!H7`=0R)\BGZP?H"Z4C___^#^&!T -XM[X/X7'7A@\8$BQ:%TG78Z33___^+1>R%P'0+C57HC47- -XM153@^P4 -XMBTT(BT$$@_@M='FI````0'5J@_A_=V7V!(6]40D(!'1;BU$(@^@PC5D(]\(` -XM``!`="7K*)"-="8`]@25O5$)"`1T&8/#!(T$@(U$0M"+$_?"````0'4%@_I_ -XM=MV%TG5YB00DZ-$4__\QR87`=`Z)7"0$B00DZ)_.`@")P8/$%(G(6UW#BU$( -XMC5D(A=)U6,=$)`3$F`H(QP0D=#,)".BGOP``A<")PG1)BP"%P'1#BPUDF0L( -XMBP&+0`R%P'4TBT$$BT@,A*)/"3HLF$"`,<#`````(M-X(MQ -XM!(/!!(E-X(7V=9*+1,"B5PD!(D4)(E-U.@E8@(`BU70C9P#`2#P`2)1=R%_W0ZBP>#^#UUX(D\).@[_?__A<")PP^$:P$``#G'=-.)/"3H -XME6`"`(M-W(D9BT7OHQT0D!,28"@C'!"0`/`D(Z.B[``"%P'0*B30DZ#Q4 -XM___KGXL&A%]G4&]D7P`74ZB1PDZ*[K__^) -XMV(MU^(M=](M]_(GL7<.)V(GRZ`;\__^)PXG'Z]")70B+=?B+7?2+??R)[%WI -XMC%P``(D<),=$)`3P(P8(Z+Q3__^)V.AE^?__.<>)PW0*B3PDZ`=3___KIXD$ -XM).A-4___Z^R-="8`C;PG`````%6)Y5.#[!2+70B)'"3H7NO__X7`=!J)'"2) -XM1"0$Z`[___^%P(G#="*)V(/$%%M=PXD<).@87```B<.)!"3H_NK__XG8@\04 -XM6UW#QP0D,0``$.A*4/__Z]"0C;0F`````%6)Y5=64X/L+,=$)`3$F`H(C7WL -XMQP0DU#L)".@0N@``QT7P`````(G#BT4(B47LB3PDZ-GJ__^%P(GS```` -XMA=L/E<#WQ@(````/MMAU+H7;=0F#Y@$/A>P```"+10B)!"3HA\D"`(D$).A_ -XM40``B44(BT4(@\0L6UY?7<.)^(G:Z,CZ__^%VXG'#X2#````B7W8BU78BP*% -XMP`^$I0$``(M5V(MR!(7V#X2S`0``@WT,`0^$:@$``(-]#`(/A+P```"+30R% -XMR76IBT4(B00DZ#K+`@"+5=B)%"2C('<*".@:5@``QP0D)P``$.A.3___ZX"+ -XM50B)%"3H\<@"`(D$).CI4```B44(BT4(@\0L6UY?7<.#Y@$/A'3___^)!"3' -XM1"0$\",&".@"4O__B?CHJ_?__SG'B478#X1#`0``B3PDZ$A1___K"HGXZ(_W -XM__^)1=B+7=B%VP^%-O___XM5"(D4).BFR@(`QP0D,0``$*,@=PH(Z,5.___I -XM%?___XM5V(E5W(D$).@^S_[_BUW8@\,$C7@!ZP.+=>"+0P2#PP2)1>")-"3H -XM'\_^_XM5X(72C7P'`77AC02]`````(D$).BY7`(`B44(BT78BTT(BQ"%T@^$ -XMI````(L"A+___\_B57DBQ>#QP2!XO___S^#^C\/A/$```!_'(72=6.+11")&(-]Y`$9 -XMP/?0@\`"@\0L6UY?7<.#^EL/A-H```"+=12%]G5B@?K_````#X?"`0``H>!= -XM"0B+G)`T!```@7WD_P````^'F0$``*'@70D(BU7DBX20-`0``#G##Y7`ZRV# -XM^BIUN8L',?:%P'5$B1PDZ'[!`@"+51")`H/$++@"````6UY?7<,[5>0/E<"$ -XMP'5>@T7P!(M=\.DX____BT40BS#W`____S\/A!X!``"#PP2+112)1"0,BU40 -XMB7PD!(D<)(E4)`CH^/[__X/X`73-@_@"#X3F````A)UHU?!('F -XM____/\=%Z`````")WW0M@_Y==#R+1>B%P'53@SLM=%6#PP0QP#EUY`^4P(E% -XMZ(L7B=:)WX'F____/W73QT0D!%T```#'!"0R```0Z/Y+__^+1>@+1>1T@HM5 -XM[#E5Z`^%&/___S'`Z8W^__^-=@"+%X/#!.N[BT<$@\,$@_A==*,E____/\=$ -XM)`@`````B40D!(M%Y(D$).C"UP``A -XM7UW#A?8/A!O___^+51"X`0```(DRZ2K^__^+1>2)!"3HD2)-"2)5"0$Z%K7``"%P'^8QT7H`0`` -XM`.N/C;8`````C;PG`````%6)Y5=64X/L+(MU#(M%",=%W`$```")1?"#/EX/ -XMA!4!``#'!"0$````Z$)9`@#'!"20`0``B(M5"(D4).@]OP(`BQ>)QHL"QT7@`````(7`=#N)TXE$)`2+10B-5?#'1"0, -XM`0```(E4)`B)!"3HW/S__X7`=`V+1?"#3>`!.?!S`HG&BT,$@\,$A`/E,"#Q"Q;#[;`7E]=PXL7BP+'1>``````A57B==64X/L#(E%\(MP"(M:"(L#B40D!(L& -XMB00DZ/C(_O^%P'4/BW8(.W7PBUL(=`XY^W7=@\0,,Q=PY"+'0QA"0B%VW0TBT(8A/&!@"+1?")!"3HA54" -XM`.E0____58GE4XG#@^P$B00DZ(\4``"+0QB%P'0(B00DZ&!5`@")'"3H6%4" -XM`(/$!%M=PXGV58GE5U:)QE.)TX/L+/;"`71FH7!A"0B-??#'!7!A"0@!```` -XMB47PQT0D!-`X!@B)/"3HF4K__X/C0`^%WP```*$,80D(A<`/A,4```"+1AB% -XMP`^$N@```(E$)`3'!"01%PD(Z+BB`@")/"3HP$G__X/$+%M>7UW#QP0D2LX( -XM".A!T;XG/@^<(ZR"+!H/H`87_B09T/X7`>`J+5=R)V.AW_O__BUL< -XMA=MT2*&4=PH(A"%P'X*BU77UW#58GE5S'_ -XM5E.#[!R+=0C'1"0$Q)@*",<$)*`S"0CH+K```(D$).@VK@``A<`/A)\```"# -XMQ@2+'H7;=#"#.RUU*X/#!(L#A7UW#QT0D!,28"@C'!"2@,PD(Z.^N``")!"3H]ZP``(E%\.E1 -XM____ZPV0D)"0D)"0D)"0D)"058GE@^PHB5WTBUT(B77XBT4,B7W\A=L/E,*) -XMUG4$AP/A%@!``")\(3` -XM=#C'1"0$Q)@*",<$).`S"0CHQ=P\=$)`0`````B1PDZ*[S__^)Q\=$)`0P*@@(B3PDZ,Q& -XM__^+%>AV"@C'!>AV"@@`````B57PQT0D!,28"@C'!"1@-@D(Z*6M``"%P'0Q -XMBP"%P'0KBT`$AR+'E?1?__QT0D!,28"@C'!"20+PD(Z$NM -XM``#'1"0$A#0)"(D$).@+O`(`BP/A8;^___'1>Q`+PD(Z7K^__^-M@````!5B>575E.#[!S'1"0$ -XMQ)@*",<$),`S"0CHXZP``#WX;PD(B<8/A.8!``#'1"0$@$,)"+\`=PH(B00D -XMZ$W"_O^%P'0_QT0D!'!#"0B[`'<*"(DT).@TPO[_A<`/A9@!``"+6QR%VW1J -XMBT4,B=KH__C__X7`=.N#+029"@@!B=_K7XG?BU\`2+0P2)1P2+0P2)>`C'1Q@`````BT44QT7L`'<*"(7`=2*+-1QW"@B) -XM=QR+7>R)>QR#Q!R)^%M>7UW#C;8`````B77LBT7LBW`PYT`^%P0```(M%\(GZZ,_W__^% -XMP`^%O0```(M5\(M*'(7)=S'1?``````BW(R+@L^/__BWWPZ=3^__^+%1QW"@B% -XMTG2*BT4,Z.+V__^%P`^$>O___XL=''<*"(,M!)D*"`&%VXG?#X4R_O__Z1_^ -XM__^-M"8`````C;PG`````%6)Y593@^P0BUT(A=MT#HM#"(L`@S@*#X33```` -XMQT0D!,28"@C'!"2@,PD(Z`^J``"+$(72#X3'````]\(```!`#X6[````@_I_ -XM#X>R````,?:)P?8$E;U1"0@$=2?IGP```/?"````0`^%DP```(/Z?P^'B@`` -XM`(/!!/8$E;U1"0@$='V-!+:-=$+0BU$$A=)UT(7;="BA!)D*"(M5#,=$)`@! -XM````B5PD!(/``:,$F0H(B50D#(D$).B!_/__NP!W"@B+4QR%TG0EH029"@@K -XM0A`Y\'P@BT("0C70F`(/$$%M>7<.%]G3!P``BQTLFPL(A=L/ -XMA-$'``"+#32;"PB%R0^$!`@``(L5/)L+"(72#X0W"```H62;"PB%P'0&@\04 -XM6UW#H8"8"@C'1"0,8M$(",=$)`A!````QT0D!`(```")!"3'!6";"PA>T0@( -XMZ'&>__^)!"3HV4<``*-DFPL(@\046UW#H8"8"@C'!6B:"PCXS@@(QT0D#/S. -XM"`C'1"0(`@```,=$)`0"````B00DZ"^>__^)!"3HET<``*-LF@L(Z=S]__^A -XM@)@*",<%<)H+"`//"`C'1"0,!\\(",=$)`@#````QT0D!`(```")!"3H[IW_ -XM_XD$).A61P``HW2:"PCIJ?W__Z&`F`H(QP5XF@L($<\(",=$)`P6SP@(QT0D -XM"`0```#'1"0$`@```(D$).BMG?__B00DZ!5'``"C?)H+".EV_?__H8"8"@C' -XM!8":"PB`SP@(QT0D#!O/"`C'1"0(!0```,=$)`0"````B00DZ&R=__^)!"3H -XMU$8``*.$F@L(Z4/]__^A@)@*",<%B)H+""_/"`C'1"0,-,\(",=$)`@&```` -XMQT0D!`(```")!"3H*YW__XD$).B31@``HXR:"PCI#_W__Z&`F`H(QP60F@L( -XM0\\(",=$)`Q(SP@(QT0D"`<```#'1"0$`@```(D$).CJG/__B00DZ%)&``"% -XMP*.4F@L(#X78_/__H8"8"@C'!9":"PA.SP@(QT0D#%+/"`C'1"0("````,=$ -XM)`0"````B00DZ*:<__^)!"3H#D8``*.4F@L(Z9?\__^-="8`H8"8"@C'!9B: -XM"PA;SP@(QT0D#%_/"`C'1"0("P```,=$)`0"````B00DZ&&<__^)!"3HR44` -XM`*.B:"PAJT`@(QT0D#&_0"`C' -XM1"0(+@```,=$)`0"````B00DZ)*8__^)!"3H^D$``*/LF@L(Z5GY__^A@)@* -XM",<%\)H+"(+0"`C'1"0,A]`(",=$)`@P````QT0D!`(```")!"3H49C__XD$ -XM).BY00``H_2:"PCI)?G__Z&`F`H(QP7XF@L(D=`(",=$)`R6T`@(QT0D"#(` -XM``#'1"0$`@```(D$).@0F/__B00DZ'A!``"C_)H+".GQ^/__H8"8"@C'!0B; -XM"PB@T`@(QT0D#*70"`C'1"0(,P```,=$)`0"````B00DZ,^7__^)!"3H-T$` -XM`*,,FPL(Z;WX__^A@)@*",<%$)L+"+O0"`C'1"0,P-`(",=$)`@U````QT0D -XM!`(```")!"3HCI?__XD$).CV0```HQ2;"PCIB?C__Z&`F`H(QP5`FPL(U]`( -XM",=$)`S=T`@(QT0D"#@```#'1"0$`@```(D$).A-E___B00DZ+5```"C1)L+ -XM".E5^/__H8"8"@C'!2";"PCQT`@(QT0D#/;0"`C'1"0(.@```,=$)`0"```` -XMB00DZ`R7__^)!"3H=$```*,DFPL(Z2'X__^A@)@*",<%*)L+"`W1"`C'1"0, -XM$M$(",=$)`@[````QT0D!`(```")!"3HRY;__XD$).@S0```HRR;"PCI[O?_ -XM_Z&`F`H(QP4PFPL(*M$(",=$)`PQT0@(QT0D"#P```#'1"0$`@```(D$).B* -XMEO__B00DZ/(_``"C-)L+".F[]___H8"8"@C'!3B;"PA$T0@(QT0D#$G1"`C' -XM1"0(/0```,=$)`0"````B00DZ$F6__^)!"3HL3\``*,\FPL(Z8CW__^0D)"0 -XMD)"0587`B>5T!8,X"G0%HT!A"0A=PXVV`````(V\)P````!5B>6+10A=HQAA -XM"0C#C78`58GE@^PHBPV0=@H(B5WTB77XB7W\AR9"P@`````=`V+7?2+ -XM=?B+??R)[%W#BQ6\F`H(A=)UZ:'`=@H(A7<.0C70F`%6)Y5WI -XMM____XVT)@````!5B>564X/L$*&T=@H(QT0D#`(```#'1"0$`````,=$)`@` -XM````B00DZ`^V_O^AL'<*"(L5M'<*",<%T"0)"`(```#'!3"9"P@`````HZ!W -XM"@B)%:1W"@C'!;28"@@`````QP5(=PH(`````,<%2)H+"`````#H9JW__XLU -XM[)D+"(7V=0J+'>"9"PB%VW0'@\006UY=PXL5H'<*"(/J`8G0P?@?P>@3C300 -XMP?X-A?9^WC';H;QW"@B+!)B#PP&)!"3HRS\"`#GS=>F+%;QW"@B-!+*)%"2) -XM1"0$Z'(S``")\,'@#8G"P?H?*06@=PH(&16D=PH(*06P=PH(&16T=PH(*36X -XM=PH(@\006UY=PXUV`%6)Y5>)QU93@^P,H;AW"@@YQWQM@\`"QT0D!`0```") -XM!"3HN3\"`(G&H;QW"@B%P'09B40D!(DT).@",P``H;QW"@B)!"3H-3\"`(L= -XMN'<*"(DUO'<*",=$)`0$````QP0D`"```.AU/P(`C1R>B0.AN'<*"(/``3G' -XMH[AW"@A]DX/$#%M>7UW#C;0F`````%6)Y8/L*(E=](L=T"0)"(E]_(M]"(EU -XM^(/[`HD?='.#^P-T7(/[`70WH8"8"@C'1"0,@-<(",=$)`@'````QT0D!!`` -XM``")!"3HTI+__XE<)`2)!"3H9HP"`.@MLO[_D*$PF0L(B4<,H;28"@B)1P2+ -XM7?2+=?B+??R)[%W#C78`H4AW"@B)1PRA2)H+"(E'!.O>H>R9"PB%P'4:H:!W -XM"@B+%:1W"@B)1P2)5PC'1PP`````Z[N+%:1W"@B+':QW"@BAH'<*"(L-J'<* -XM"#G:?-9^2SL5M'<*"'_,C;8`````?`@[!;!W"@AWO(G&*N)3P2)7PCKCSG(6#[$B+50B)7?2)=?B)??R+&H/[`HD=T"0)"'1S@_L# -XM=%R#^P%T-Z&`F`H(QT0D#(#7"`C'1"0(!P```,=$)`00````B00DZ**1__^) -XM7"0$B00DZ#:+`@#H_;#^_Y"+0@RC,)D+"(M"!*.TF`H(BUWTBW7XBWW\B>Q= -XMPXUV`(M"#*-(=PH(BT($HTB:"PCKWJ'LF0L(BW($BWH(A<")-:!W"@B)/:1W -XM"@ATPXL5K'<*"*&H=PH(.=>)1>B)5>P/C,H````/CKD```"+#;1W"@B+%;!W -XM"@@Y3>R)3=R)5=@/CZD```!\"3E5Z`^'G@```(M-V"M-Z(E-X'1DBU7L,57 -XM5E.![$P@``"%R8F%S-___XF5R-___XF-Q-___\>%U-___P`````/A#(!``"! -XM^0$@```/AU<"``#'A=3?__\`````,=O'A=C?__\`````.9W$W___N@$```!V -XM"(N5Q-___RG:C00:/0`@```/AZ@```"-A?/?__\!V(E$)`2+A#?__\/A:T```#'A=S?__\`````BY7@W___.97- -XM-)"!Q\!W"@B+G>#?__^-A?/?__\KG=S?__\#A=S?__^)-"2)7"0(B40D!.BW -XMJ0(`@_C_=%2%P(G"#XZ.````BTT(A57 -XM5E.#[%R+/1AA"0B%_W1"QP4880D(`````(/$7(GX6UY?7<.A,)D+"(7`#X2D -XM````H3"9"PC'!4R:"P@!````BP"%P*.TF`H(='N#!3"9"P@$H;28"@C'!=`D -XM"0@"````A@$``.E;!0``D(UT)@"+%:1W"@B+/:QW"@BA -XMH'<*"(LUJ'<*"(E5M#GZB46P?`X/CZL#```Y\`^#HP,``*.P=PH(HZAW"@B) -XM1"0$H;1V"@B)%;1W"@B)%:QW"@C'1"0,`````(E4)`B)!"3H&JS^_Z&@=PH( -XMBQ6D=PH(BPVP=PH(BQVT=PH(BS6H=PH(BSVL=PH(B46PB56TBU6TBT6P,=HQ -XMR`G"#X1U`P``BQ6\=PH(BT6PBQ(I\(L\@H-%L`0`BT6PBU6THZ!W"@B) -XM%:1W"@B#__\/A>;^__^+10B%P`^%LP0``*&T=@H(C57$B50D!(D$).@^I_[_ -XMA<`/A;#^___V1=$!#X2F_O__BQ5P8PD(A=)T%:$<80D(@\`!.<*C'&$)"`^. -XMA_[__X,]U)<*"/\/A/K]___'!"0/````Z.2J_O^#^/^)PP^$X_W__Z'4EPH( -XM.<,/A-;]__^)1"0$QP0D#P```.@@3`<*)UH'F_Q\``,'Z#2G&B56HB=#H(?3__XM]O+@`(``` -XM*?`YQWX"B<>+1;R-%+4`````BTVXC1R]`````(MUJ,'@`BG!H;QW"@@#%+") -XM7"0(B4PD!(D4).B)J_[_B?HI?;R+1;S!^A\!/;!W"@@1%;1W"@B%P`^/=O__ -XM_^G<_O__Z+2W`0")1:R)1;SI2?___XL0A=(/A*OZ__^#P`1FOR``B16TF`H( -XMHS"9"PCI%?K__Z%(=PH(Z27[__^+';1W"@B+#;!W"@@YV@^,I?S__P^/0_S_ -XM_SG(#X:7_/__Z3;\___'!?R8"@@!````Z#@E__^A2'<*".GY^O__B^O__QP0D`0```.AS2```Z8WZ__^+10B%P`^%P``` -XM`(UV`.AKQO[_H9!V"@CI#_O__Z&\F`H(A<`/A8\```")^(E$)`3'!"1LG`L( -XMZ#*:`@#IVOC__X/`!&:_(`")%4B:"PBC2'<*".G#^/__H8"8"@B+'0QV"@C' -XM1"0,K-<(",=$)`@#````QT0D!!````")!"3HNX7__XE<)`2)!"3H3W\"`.E+ -XM^O__BSB#P`2CD'8*"(7_#X5U^/__H7P@"0AFOPH`HY!V"@CI8OC__X/H`:.\ -XMF`H(N`H```#I8?___[______Z4;X__^)]HV\)P````!5B>564X/L$(MU#(M= -XM"(U&FX/X$W8*,<"#Q!!;7EW#D/\DA6C8"`B)'"3H(9@"`(G"C4#\.<,/ARD! -XM``"+4OR#^B]U(ND<`0``C;0F`````(/H!#G##X<*`0``BQ"#^B\/A/\```"# -XM^BYUY8/^98GV#X3D````*=C!^`*)10R)70B#Q!!;7EWI1)T"`(D<).C\G@(` -XMQT0D!"\```")!"3H_",``(7`#X65````@_YT#X5C____B5T(@\006UY=Z:V< -XM`@#'1"0$`0```(D<).@=<0(`A7<.)'"3HBIP"`(L0A=(/A"C_ -XM__^)P>L;@_H)=!N!R@```$")$8M1!(/!!(72#X0)____@_H@=>"#_G%UZ(VT -XM)@````#KU\=$)`0`````B1PDZ+YP`@"%P`^$>____X/$$%M>753@^P4BQ68=PH(H7R<"PB+70C'!"0@80D(QP4D80D( -XM`````"G0P>("`Q5XG`L(B40D"(E4)`3HPID"`(E<)`3'!"1XG`L(QP5\G`L( -XM`````.@HF@(`QP0D>)P+".@,F`(`H21A"0C'!"1XG`L(B40D"*$@80D(B40D -XM!.A^F0(`B1PDZ"8O`@#'!9AW"@@`````@\046UW#C;8`````58GE5U93@^P, -XMBT4,BW4(BW@(QP0D#````.C"+P(`B<.)<`3'``````"+10B)0PB)6`2+!XE> -XM"(G>B00DZ`^;`@"+?PB)`X,X"G7'@\0,6UY?7<.-M@````"-O"<`````58GE -XM5E.#[!"+=0B+7@B+`XE$)`3'!"22N0@(Z&!\`@"+6P@Y\W07BP.#.`ITXL<$ -XM)"````#H9C\``(L#Z]*#Q!!;7EW#C70F`(V\)P````!5B>575E.#[!R+'1QW -XM"@B)1>R)5>B%VW0^BU,,BWL(A=)X+8L7BPJ#^0IT)(M%Z,=%\`````"%P'5? -XMBT7LZP>0@\`$@\($BPB%R70H.PIT\(M;'(7;=<*+1>PQVXD$).ASK!H/`!(/"!(L(AC'1>P`````P?@"QT7P -XM`````(E$)`B+1>")%"2)1"0$Z"27`@"+'6!A"0B+`X7`="2#^"9T;X/X7(US -XM!'12B40D!(GSC47HB00DZ`J5`@"+`X7`==R+1>R+50B)`J%,80D(C02'B40D -XM!(U%Z(D$).A5EP(`BU77UW#58G"B>6# -XMX@)7@^`!5E.#[#R)5=")1__^A.&$)"(7`=%*+4`BA-&$)"(D5 -XM.&$)"(/H`87`HS1A"0AX*8L"Z#_I__^+#3!A"0B%R0^$1O___\<%,&$)"``` -XM``"#Q#R)R%M>7UW#QP4X80D(`````.D5____QP0D`````.CR\?__@_@DB<%T -XM&SL-C)@*"'7,BUW0A=MTQ3'`Z`4+``#IY_[__XM=S(7;=-ZA,&$)",=%Z``` -XM``#'1>P`````QT7P`````(7`B474HT1A"0@/A.`"``#'!3!A"0@`````BU74 -XMQP0DQM<("(E4)`3H`AX``(7`#X24````BT74QP4P80D()```0*,\80D(Z7K^ -XM__^A>)P+"(L,D(U"`:.8=PH(AC__X/$/+D@````6XG(7E]=PXU5Z(D4),=$ -XM)`2PD0@(Z&,?__^-1>C'1"0$)````(D$).@PD@(`BUW4@_M[#X2U`@``@_LC -XM#X1L`@``@_L_#X1C`@``,?:#^R4/A%@"``"-5>B)7"0$B10DZ/B1`@"-0_:# -XM^#(/AM$!``#WPP```$!U/H/[?Y!W#O8$G;U1"0@$#X5\`0``#[;3@?K_```` -XM#X=V!```H>!="0B+1)`T]L0!#X6G````@_M?#X2>````A?8/A',"``"#;>P! -XMB1T\80D(C47HB00DZ%D>__^-5>B)%"3H_AW__XU%Z(D$).B3D0(`B00DZ%OY -XM___I#?W__\<%,&$)"`````#WPP```$`/A38"```/MM.!^O\````/A\4!``"A -XMX%T)"(M$D#3VQ`%U'(/[7W07@_M_#X<+`@``]@2=O5$)"`0/A/T!``"-5>B) -XM7"0$B10DZ`B1`@"+'3!A"0B%VXD=1&$)"'62N`(```#H?OS__X7`B<-UC(-] -XMU'N)'3QA"0@/A43___^A,&$)"(7`HT1A"0@/A`D%``#'!3!A"0@`````@_A] -XM#X3>!```HSQA"0C'1"0$?0```,<$)#(```#H6AK__^D!____D(UT)@#'!3!A -XM"0@`````]\,```!`#X5@`0``@_M_#X=7`0``]@2=O5$)"`0/A$D!``"-1>B) -XM7"0$B00DZ%20`@"+'3!A"0B%VXD=1&$)"'6TN`(```#HROO__X7`B<-UKNE' -XM____N`(```#HM?O__XE%U(GVZ1;]____)(6XV`@(A?:)]@^$=O[__\<$)%`` -XM``"-=@#HNQG__^EB_O__A?:-="8`#X16_O__QP0D3@```(UV`.B;&?__Z4+^ -XM__^#;>P!A?;'!3QA"0@*````#X4L_O__QP0D3P```.AT&?__Z1O^__^-1>B) -XM7"0$B00DZ*"/`@"+'3!A"0B%VXD=1&$)"'17QP4P80D(`````+X!````Z77] -XM__^)%"3HL)G^_^DW_O__C57HQT0D!'L```")%"3H7(\"`(L=,&$)"(7;B1U$ -XM80D(#X3H`0``QP4P80D(`````.D5_?__N`(```#HO_K__XG#ZZ7'!"12```` -XMZ-\8___IAOW__X/[6P^$W@(``(/[.@^%(/[__\=%W`````#'1>``````C47H -XMB5PD!(D$).CKC@(`BQTP80D(A=N)'41A"0@/A-@!``#'!3!A"0@`````@_MG -XM#Y3`#X2&`0``@_MA#X0J`@``BU7@A=)U"(3`#X6[`0``@_MA#X3Y`0``C57H -XMB5PD!(D4).B1C@(`@_MS#X7>````BSTP80D(A?^)/41A"0@/A.\!``"-1>C' -XM!3!A"0@`````B7PD!(D$).A;C@(`]\<```!`=3^)^`^VT('Z_P````^'\0$` -XM`*'@70D(BT20-/;$`0^%S@$``(/_7P^$Q0$``(/_?W<.]@2]O5$)"`0/A;(! -XM``")?"0$QP0D_[D(".@4&0``A<`/A9H!``#'1=@"````ZR['!3!A"0@````` -XM@_[_#X1U`@``C57HB70D!(D4).C1C0(`,<`Y_@^4P"E%V'0;BS4P80D(A?:) -XM-41A"0AUPC'`Z#[Y__^)QNO!B5PD!,<$),K7"`CHJA@``(7`#X3G`0``BQTP -XM80D(A=N)'41A"0@/A,8```#'!3!A"0@`````@_LZ#X1Q_O__Z7[\__^-M@`` -XM``"X`@```.CF^/__B<.-="8`Z2?[__^)%"3H?Y?^_XUV`.F#^___@T7@`8U5 -XMZ(E<)`2)%"3H*(T"`(L=,&$)"(7;B1U$80D(#X30````QP4P80D(`````(/[ -XM9P^4P.E'_O__N`(```#HA?C__XG#Z2'^__^#1>`!C47HB5PD!(D$).C;C`(` -XMBQTP80D(A=N)'41A"0@/A$H!``#'!3!A"0@`````Z1C^__^X`@```.@^^/__ -XMB)1"0$Z&J,`@"%_P^%!_[__\<$)%@```#H%A;__^EI -XM^___B10DZ(66_O_I"_[__[@"````Z,KW__^)P^DI____C47HQT0D!%L```") -XM!"3H((P"`.LKQP4P80D(`````(/["@^$X````(U5Z(E<)`2)%"3H_(L"`(/[ -XM70^$J0```(L=,&$)"(7;B1U$80D(=<6X`P```.AI]___BGY__^X`@```.@#]___ -XMB<.0Z/G__[@"````Z)+V__^)P^GJ^___C70F`(V\)P````!5B>6# -XM["B)??R)UXL5,&$)"(EU^(G&B5WTB4WLA=*)%41A"0@/A!8!``"#^BK'!3!A -XM"0@`````BQX/A!4!```/CIL```"#^BT/A+(!``"#^EX/A"$!``#WP@```$"- -XM=@`/A7H!``"#^G\/AW$!``#V!)6]40D(!,=%\`````!U-.E;`0``QP4P80D( -XM`````/?"````0`^%X0$``(/Z?XGV#X?6`0``]@25O5$)"`0/A,@!``"+3?"- -XM!(F-1$+0BQ4P80D(B47PA=*)%41A"0AUM#'`Z*CU__^)PNNSC70F`(/Z)`^$ -XM/P$``(/Z)8UT)@`/A6'___^A;&$)"(/X_W0CA=L/B"X!``")!XVV`````(7; -XM>'R+!SD&?PDY1>P/C:T```#'!"1>````Z($3__\QP(M=](MU^(M]_(GL7<.) -XM]C'`Z#GU__^+'HG"@_HJ#X7K_O__A=L/B/H```"+1>R)!SL&?:NX`0```,<' -XM`````,<&`0```.NYA=L/B,L```"%V\<'`0```'F*C;8`````BQTP80D(A=N) -XM'41A"0@/A)D```#'!3!A"0@`````B1PDZ/K>__^)7"0$QP0DU-<(".@Z%``` -XMA<`/A$;___^)]K@!````Z5?___^-M@````"%VP^(A````(M%[(/H`8D'B10D -XMZ+C>___I$____XUV`(7;>S'!@````#'!"0M````@^@!B0?HDM[__[@! -XM````Z0G___^%VW@YBTWLB0_IVO[__XD&Z\<%,&$)"``````/A($'``"C,&$)"*$$F0H(QP5L80D(_____Z/@F`H(BT6\ -XM.P5$F@L(=&F+'3!A"0B%VXD=1&$)"`^$*`<``,<%,&$)"``````['8R8"@AT -XM0XU#W8/X.W8T,?^)7"0$QP0DV-<(".BW$@``A<`/A!X)``")'"3H5]W__Z&, -XMF`H(HS!A"0B#Q$Q;7E]=P_\DA839"`B+%2"9"PB%THE5P`^$2@H``(M=P#L= -XM()D+",<%+&$)"`$````/A'P(``"+5<"+0@B+4@2+0`@YP@^$E`H``#'VBT`( -XM@\8!.<)U]HM=O#L=1)H+",=%\`````")=>P/A-P)``"+'3!A"0B%VXD=1&$) -XM"`^$V@<``,<%,&$)"`````")7"0$QP0DYM<(".C]$0``AR+5?"#P`$IT(/J`872HS1A"0B)5?!X%8M-P(U"_X7`B<*+20B)1?") -XM3ANS?__B47`H3!A"0B%P*-$80D(#X2%!```QP4P80D( -XM`````(/X.@^%#P0``(L],&$)",<%.&$)"`````"%_XD]1&$)"`^$1@0``,<% -XM,&$)"`````#'1<0`````C;0F`````(/_9[L!````=%N#_V%T48U'VH/X4G9[ -XM@_\*#X2'!@``B7PD!,<$)%L```#H(`___XL=,&$)"(7;B1U$80D(#X2'`P`` -XMQP4P80D(`````(/[.@^$<____^GR_O__C70F`+L"````BSTP80D(A?^)/41A -XM"0AT$L<%,&$)"``````)7<3I>?___S'`Z)+P__^)Q^OM_R2%=-H("*%880D( -XMA<`/A'\)``"A5&$)",<%3&$)"`````#'!"1(80D(B40D!.@[AP(`QP0D2&$) -XM".@?A0(`H4AA"0C'!5AA"0@`````QP0D5&$)"(E$)`3H$(<"`,<$)%1A"0CH -XM](0"`(L=-&$)"(7;B5W(#X28_O__BT7$C5W8QT7H`````,=%S`````"#X`&) -XM1;CK08VT)@````"-7>2)^L=%Y`````"-3>B)'"2+7<"+`^A4[O__B<:+1>B% -XMP'0'QT7,`0```/9%Q`)U>8M5T(DRBUW0@VW(`0^(_?W__\=$)`0,````QP0D -XM`0```.@('`(`C578B470B5`(QP``````B4,(B5@$BTW`BTD(B4W`BP&%P'2[ -XMBTVXAB%P'2#@?[X;PD(#X1W____C47DB?J)!"2-3>B)\.BC[?__B?.)7"0$B00D -XMB<;HCXW^_X7`=;^)'"3H%QL"`.E$____BS4P80D(A?:)-41A"0@/A(,"``#' -XM!3!A"0@`````]\8```!`=3^)\0^VT8'Z_P````^'@0(``*'@70D(BT20-/;$ -XM`0^%A`8``(/^7P^$>P8``(/^?W<.]@2UO5$)"`0/A6@&``")="0$QP0D_[D( -XM".@-#@``A<`/A5`&``#'!"1(80D(Z$F#`@#'!4QA"0@`````ZRR#^PK'!3!A -XM"0@`````=#LY\W1#@_M<#X07`0``B5PD!,<$)$AA"0CHL8("`(L=,&$)"(7; -XMB1U$80D(=<0QP.@J[O__B<.#^PIUQ<<$)`H```#H1]C__Z%,80D(A<`/A:\! -XM``"A2&$)"(L8A=L/A"`'``")!"3H'XW^_Z-,80D(QP5D80D(`````.LNB?:# -XM^PK'!3!A"0@`````=#LY\W1#@_M<#X3L````B5PD!,<$)&!A"0CH)(("`(L= -XM,&$)"(7;B1U$80D(=<0QP.B=[?__B<.#^PIUQ<<$)`H```#HNM?__\<$)&!A -XM"0CH3H("`.DJ_?__@TW$`>DA_?__BQTP80D(@P5P=@H(`87;B1U$80D(#X5Y -XM_/__,<#H3NW__XG#Z77\__^)!"3H;]?__^E*_/__BQTP80D(A=N)'41A"0@/ -XMA(D```#'!3!A"0@`````.?,/A,/^__^#^UP/A+K^___'1"0$7````,<$)$AA -XM"0CH9X$"`.FA_O__,<#HZ^S__XG'Z;;[__\QP.C=[/__Z7G[__^+'3!A"0B% -XMVXD=1&$)"'0]QP4P80D(`````#GS#X3R_O__QT0D!%P```#'!"1@80D(Z!*! -XM`@#IV?[__S'`Z);L__^)PXUT)@#I;____S'`Z(3L__^)PXGVZ\#'!"1<```` -XMZ*(*__^)]NG'^O__,<#H9.S__XG&B?;I=_W__\<$)$AA"0CH'X$"`.E<_O__ -XMB10DZ.Z*_O^)]NEY_?__,<#H-.S__XG#B?;ITOC__S'`Z"3L__^#^'N0#X5_ -XM^/__QT6\>P```.EX^/__QP0D2&$)".C2@`(`QP5,80D(`````.LLQP4P80D( -XM`````(/X"@^$PP(``(/X/P^$Q@(``(E$)`3'!"1(80D(Z#J``@"A,&$)"(7` -XMHT1A"0AUQC'`Z+7K___KQXL=,&$)"(7;B1U$80D(#X2%!```QP4P80D(```` -XM`+\!````Z43X__^+->"8"@@[-029"@B)'3!A"0@/A$,$``"+%1QW"@B%TG44 -XMZ2$!``"-="8`BU(0```.@S"?__Z>'W___'!3!A"0@J````B?&)^HU%\.AH]/__A<`/A,/W -XM__^+'3!A"0B%VXD=1&$)"`^$&P,``,<%,&$)"`````#IJ/C__S'`Z+;J__^) -XMP^DB^/__H3!A"0B%P*-$80D(#X2>`@``QP4P80D(`````(/X?0^$ROC__\<$ -XM)%8```#HK@C__^FY^/__QP0D"@```.B=U/__Z6CY__^+0PB+%828"@B+0`@Y -XMT`^$&`(``#'VBT`(@\8!.=!U]NE_]___B30DZ,MS``")PXD$).BAA`(`QP0D -XM8````(E$)`3H40C__XD<).@I%@(`@\1,6UY?7#^W^0=Q'V!)V]40D( -XM!(T$MHUT0]!U!;[_____B5PD!,<$)$AA"0CH^'T"`(L=,&$)"(7;B1U$80D( -XM=!2%V\<%,&$)"``````/B7'____KCS'`Z%WI__^)P^E=____B1PDZ'[3__^A -XM3&$)"(7`#X5<`0``H4AA"0B)!"3H8(C^_Z-,80D(H8R8"@BC,&$)".D#]O__ -XMQP0D"@```.A$T___H4QA"0B%P`^%]P```*%(80D(B00DZ":(_O^%P*-,80D( -XM#X1*`0``N@$```"A2&$)".B.YO__A<")P@^%COW__^F1_?__B1PDNSH```#' -XM!3!A"0AS````Z.C2___IGO;__XLU!)D*".DU_?__BSTP80D(A?^)/41A"0@/ -XMA(D!``#'!3!A"0@`````B3PDZ++2___WQP```$!U,XGX#[;0@?K_````#X=_ -XM`0``H>!="0B+1)`T]L0!=06#_U]U#\=%\`````")=>SI,O;__X/_)@^%XO7_ -XM_^OF,?;IP(`QP0D2&$)".@W?`(`H4AA"0B+%4QA -XM"0B)1"0$@\`$C125_/___XE4)`B)!"3HSHK^_Z%(80D(,=+'`"T```#I2/[_ -XM_XL-()D+"(7)B4W`#X4B]/__Z:?[__\QP.@3Y___B<.0Z7;[__\QP.@$Y___ -XMB<>)]NEQ_O__QP0D5P```.@?!?__Z?KU__^)%"3HCH7^_XGVZ7O^___'!"19 -XM````Z/\$___IVO7__XUV`(V\)P````!5B>575E.#[%RA[%T)",<%$&$)"``` -XM``#'!7"<"P@`````QP0D[)@*"(E%H.BOT___BU4(B5($B5((QP+X;PD(QP4L -XM80D(`````,<$)`````#H:MG__X/X('3O@_@)=.H[!42:"PAU#HL5P'8*"(72 -XM#X6/!0``B00DZ'+0__^+10B-?>C'1"0$D.D%"(D$).B\!___BUT(QP0D#``` -XM`.C]$@(`B46DB5@$QP``````BU4(B5`(B4($B4,(QT7H`````,=%[`````#' -XM1?``````QT0D!+"1"`B)/"3H<`?__XL=,&$)"(7;B1U$80D(#X1``@``QP4P -XM80D(`````(/[('3=@_L)=-B%VW@,]\,```!`#X0M`@``,?;'1:@#````A?9T -XM13GS#X24````@_M<#X2:````@_L*#X3!`P``D(E<)`2)/"3HY'D"`(L=,&$) -XM"(7;B1U$80D(=%:%]L<%,&$)"`````!UNX7;>-*)V,'H'H/P`8/[?P^>PH30 -XM=,`/ML,/MX0`X"`)"*A3=+&#^UP/A%(!``"H`P^$D@```#'`@_LB#Y3`B=Z# -XMP`*)1:CKCHM%J.@&Y?__B[^__^)'3!A"0B)/"3HH`7_ -XM_XD\).A(!?__B3PDZ.!X`@"+5:2)TXD"QT6@`````(,X"@^%$/[__XM%"(D$ -XM).AN!?__BU4(B10DZ!,%___'!"1LG`L(Z.=X`@"+%7"<"PB%TG04H6R<"PB# -XMZ`2-!)"#.`H/A#,#``"A+&$)",<%$&$)"`$```"#Q%Q;7E]=PS'`Z-OC___I -XM`O___XL=,&$)"(7;B1U$80D(#X1^`0``@_L*QP4P80D(``````^$?0$``#L= -XMC)@*"'00QT0D!%P```")/"3H!W@"`('+````0.D,_O__N`,```#H@N/__XG# -XMZ;G]__^#^W\/C\K]__\/ML,/MX0`X"`)"*A0#X2W_?__@_L[#X12`0``#X^X -XM````@_LF#X3-````C;0F``````^/*@$``(/["HVT)@`````/A"8!``"#^R.- -XMM"8`````#X5R_?__H)7+6X -XM@\8!@_L*#X3-````B5VPBQTP80D(A=N)'41A"0AUR#'`Z*;B__^)P^O'N`H` -XM`$#I\_W__X/[/I"-="8`=!0/C^<```"#^SR0C70F``^%TOS__XE<)`2)/"3H -XMWG8"`*$P80D(A<"C1&$)"`^$&P$``,<%,&$)"``````YV'1*HS!A"0CIW/W_ -XM_S'`Z#WB__^)PX/["@^%@_[__X,]O)@*"`$/A;W]___'!;R8"@@"````Z:[] -XM__^-M@````"-0]B#^`$/AUS\__^)7"0$B3PDZ&AV`@#IB_W__X!]KP!T&X-] -XMN"O'1>0`````B?8/A*@````QR8D-%&$)"(-]L%P/A.C[___KPHVV`````(ET -XM)`3'!"0S````Z.#__O_'!3!A"0@*````Z3G]__^#^UQT$8/[?`^%Z_O__XUV -XM`.D1____BQTP80D(A=N)'41A"0AT+\<%,&$)"`````"#^PH/A;T```"#/;R8 -XM"@@!#X5[^___QP6\F`H(`@```.EL^___,<#H1>'__XG#Z]"X`P```.@WX?__ -XMZ>#^__^+1;R%P`^$3?___P^VT(/Z?Y`/AT#___\QR3'V]@25O5$)"`1U)NDM -XM____C;0F``````^VT(/Z?P^'&O____8$E;U1"0@$#X0,____C02)@\8!C4Q" -XMT(M$M;R%P'74@_X*#X7Q_O__Z>[^___'``````#IPOS__^CF[/__C;8````` -XMZ6GZ__\['8R8"@AT$,=$)`1<````B3PDZ`-U`@"!RP```$#IX/K__Y"0D)"0 -XMD)"058GEBU4(BTT,A=)U!NL9D(/"`0^V`H3`=`X/OL`YR'7O7;@!````PUTQ -XMP,.-="8`53'`B>6+50B+"H7)=`R)]H/``8L,@H7)=?9=PXUT)@!5B>53BUT( -XMBTT,B=J-="8`BP&#P02)`H/"!(7`=?*)V%M=PXVV`````(V\)P````!5B>6+ -XM10B%P'08BQ"%TG4$ZQ")T(M(!(U0!(7)=?2+`%W#73'`PXUV`(V\)P````!5 -XM,=*)Y8M%"(7`=0?K#(GV@\`!@#@`=?B)PEV)T,.)]E6)Y8M-"(7)=!:)RHUT -XM)@"+`B7___\_B0*#P@2%P'7P78G(PXVV`````(V_`````%6)Y8M%"(7`=!F+ -XM$(72=!.)P8'*````0(D1@\$$BQ&%TG7O7<.-="8`C;PG`````%6)Y5.+70B+ -XM30SK"HUT)@"#PP2#P02+$X72=!J+`87`=`^!XO___S\E____/SG"=-];,575E.#[`R+?0R+=1"0Z+MP`@"+10B)="0(B7PD!(D$ -XM).@T?/[_@_C_B<-U"NAX@/[_@S@$=->#Q`R)V%M>7UW#C;8`````C;PG```` -XM`%6)Y5=64X/L#(M]#(MU$.L4Z$:`_O^#.`1U))"-="8`Z%MP`@"+10B)="0( -XMB7PD!(D$).C4@?[_@_C_B<-TTH/$#(G86UY?7<.-M"8`````58GE5U93@^P, -XMBWT,BW40D.@;<`(`BT4(B70D"(E\)`2)!"3HA(/^_X/X_XG#=0KHV'_^_X,X -XM!'37@\0,B=A;7E]=PXVV`````(V\)P````!5B>575E.#[!R+?0SWQP`"``!T -XM80^W=1"-112)1?#K%>B7?_[_@S@$=26-M@````#HJV\"`(ET)`B)?"0$BT4( -XMB00DZ$2!_O^#^/^)PW31@\056 -XM4X/L$(MU".B\?O[_QP``````ZQKHKW[^_X,X!'4>Z,EN`@#HH'[^_\<````` -XM`(DT).A">_[_A<")PW38@\00B=A;7EW#C;0F`````%6)Y593@^P0BW4(Z&Q^ -XM_O_'``````#K&NA??O[_@S@$=1[H>6X"`.A0?O[_QP``````B30DZ!)[_O^% -XMP(G#=-B#Q!")V%M>7<.-M"8`````58GE5U93@^P,BWT(#[=U#.L3Z!5^_O^# -XM.`1U'(UT)@#H*VX"`(ET)`2)/"3H:WK^_X/X_XG#=-J#Q`R)V%M>7UW#C;0F -XM`````(V\)P````!5B>53@^P$BUT(ZQF-="8`Z,=]_O^#.`1U&(VV`````.C; -XM;0(`B1PDZ"^!_O^#P`%TWH/$!%M=PY"-M"8`````58GE4X/L!(M="(7;>1?K -XM(NB'??[_@S@$=1B-M@````#HFVT"`(D<).@??O[_@\`!=-Z#Q`1;7<.0C;0F -XM`````%6)Y8/L",<$)`````#HKO___\<$)`$```#HHO___\<$)`(```#HEO__ -XM_\<%Z'8*"`````#)PXUV`(V\)P````!5B>575E.[`00``(/L#(M]",<$)`$$ -XM``#H0P@"`(G&ZQ&-'`")-"2)7"0$Z(`(`@")QHE<)`B)="0$B3PDZ.J`_O\Y -XMV'3;@_C_=!O&!`8`@\`!B40D!(DT).A2"`(`@\0,6UY?7#2+7?`Q]NL'@\8!.?YT$8/#!(D$).C8!@(`BP.%P'7HBT7PB5T,B44(@\0, -XM6UY?7>E]^O__BUWPZ^:0C;0F`````%6)Y593@^P0BW4(A?9T*(L&A53 -XM@^P$BUT(BP.)!"3HK/___XE="(/$!%M=Z4\&`@#K#9"0D)"0D)"0D)"0D)!5 -XMB>5=Z8?___^-M"8`````58GE@^P(BT4(B00DZ']T`@"C('<*",=%"!D``!#) -XMZ9WX_O^-M@````"-O"<`````58GE5E.#[!"+70R+=0C'1@0`````BQ.%TG0Z -XMD(UT)@"%TG@<]\(```!`=12#^G^0?PX/ML+VA`#@(`D(\W4GD(/#!(E4)`2) -XM-"3H$6X"`(L3A=)URXDT).AC;@(`BP:#Q!!;7EW#QT0D!%P```")-"3HZFT" -XM`(L3Z\:-M@````!5B>53@^P4BUT(B1PDZ`[Y___'1"0$!````(/``8D$).B[ -XM!0(`B5PD!(D$).@/^?__@\046UW#B?:-O"<`````58GE5U93@^P,BW4(BWT, -XMB30DZ,GX__^)/"2)P^B_^/__QT0D!`0```"-1!@!B00DZ&L%`@")="0$B<.) -XM!"3HO?C__XLSB=B%]G0.D(UT)@"#P`2+"(7)=?>)?"0$B00DZ)OX__^#Q`R) -XMV%M>7UW#D%6)Y5>)QU:)UE.#[`SK%I#H1WK^_X,X!'4>C;8`````Z%MJ`@") -XM="0$B3PDZ'MW_O^#^/^)PW38@\0,B=A;7E]=PXVT)@````"-O"<`````58GE -XM@^P8B5WXB=.)=?R)!"3HEG?^_X7`B<9X.X/[_W0E.=YT%8G:B?#HTO___XDT -XM)(G#Z#C\__^)WHGPBUWXBW7\B>Q=PX/X!7[6B?"+7?B+=?R)[%W#OO____^+ -XM7?B)\(MU_(GL7<.0C;0F`````%6)Y5.#[`2+10B+70PYV'06A!>) -XMVI"-="8`Z!O___^)V(/$!%M=PXUV`(/X!7_R@\0$B=I;7>E/____ZPV0D)"0 -XMD)"0D)"0D)"058GE@^P8B5WXBUT(B77\BW4,.?-T'X7;>!N%]G@CB?*)V.C) -XM_O__.=YT"HD<)(GSZ'O[__^)V(MU_(M=^(GL7<.)="0$B1PDZ&/___\YPXG& -XM==CKX(UT)@"-O"<`````58GE4S';@^P$Z*)5__^)]CL=M'8*"'0H.QW,EPH( -XM="`['01V"@AT&#L=1)D+"'00@_L/=`N)'"3H$_O__XUV`(/#`8/[0'7(@\0$ -XM6UWI/E;__XVT)@````"-O"<`````58GE@^PHB7W\BWT(B5WTB77XA?]T>HM% -XM#(7`=&.)/"3HMWO^_XG&BT4,B00DZ*I[_O^)1?"-1`8!B00DZ(\#`@")="0( -XMB7PD!(G#B00DZ-EZ_O^+1?"-%#.)%"2#P`&)1"0(BT4,B40D!.B]>O[_B=B+ -XM=?B+7?2+??R)[%W#B?;'10Q%R0@(ZY2-M"8`````OT7)"`CI?/___XVV```` -XM`%6)Y8/L&(EU^(MU"(E=](E]_(7V=#J)-"3H'GO^_XUX`8D\).@'`P(`B7PD -XM"(ET)`2)PXD$).A1>O[_B=B+=?B+7?2+??R)[%W#C;8`````OD7)"`CKOXGV -XMC;PG`````%6)Y8/L&(EU_(MU#(E=^(U&`8D$).BV`@(`B70D"(G#BT4(B1PD -XMB40D!.C]>?[_B=C&!#,`BUWXBW7\B>Q=PY!5,<")Y5=64X/L#(M="(7;=$>) -XM'"3H1O7__\=$)`0$````@\`!B00DZ/,!`@")QXL#AB?N-M"8````` -XMB00DZ+AM`@")`XM&!(/#!(/&!(7`=>F)^(/$#%M>7UW#ZPV0D)"0D)"0D)"0 -XMD)"058GE5E.#[""+70C'1>P`````C77LQT7P`````,=%]`````"+`^L2QT0D -XM!"````")-"3H>6D"`(L#A"%P%T/ -XME,`/ML##BT($J0```$!T!%TQP,.#^'^0=_;V!(6]40D(!'3L@\((BP+KGI"0 -XMD)"0D)"0D)"0D)!5B>5=QP4@F0L(`````,<%A)@*"`````#'!3"9"P@````` -XMPXVV`````(V\)P````!5B>564X/L$(MU"(7V#X2@````#[8&/`(/A(@```!W -XM$BP!=#:)=0B#Q!!;7EWI?O\!`#P&=^Z+1@B)!"3HO____XM&#(D$).BT____ -XMB74(@\006UY=Z5;_`0"+5A"+`H7`=!>)TXD$).A#_P$`BT,$@\,$A7>D*_P$` -XMBT84B00DZ$_____KSX/$$%M>7<.-M@````!5B>5=Z3?___^-M"8`````58GE -XM5U93NP$```"#[#PYT(E%V(E5U(E-T,=%[``````/A(4```")PXL#B00DZ%Y? -XM__^#^!*)P0^&90,``,=%[`````"+7=@Q_S'VZR*-=@"#^"@/A)<#``"+3>R% -XMR74$A?]U`X/&`8M;"#E=U'0PBP.+`(/X*0^$A`,``'[2@_@\=`6#^#YUT87_ -XM#X2``P``BT7LA3'1"0$!````(D<).AN_@$`BU7DB47HB4(0BTW4BP&#."D/ -XMA&,#``"+1=0Y1=@/A&H#``"+5=`Q_XM-T(M=V,=%W`````"#X@�+'1>`` -XM````QT7P`````(E5S(E-R.LO@_@H#X0N`0``A?\/A4T!``"+-8!>"0B%]@^$ -XM6`$``(-%\`&+6P@Y7=0/A-H```"+$XL"@_@I#X3!`0``?L*#^#P/A$@!``"# -XM^#Z-=@!UNH7_#X4'`0``@WH$/HGV#X3J`@``BT,(.T74#X3_`0``BS#'1"0$ -XM,#L)"(DT).BH;_[_A<`/A,(!``#'1"0$0#L)"(DT).B0;_[_A<`/A<<"``"+ -XM1>2!2`0``0``BUL(BW,(.W74#X2T`0``BP:)\XL`QP0DSML("(E$)`3H7?#_ -XM_X7`#X66`0``BT70@^`,@_@$=`Z+5>2+0@R%P`^$EP(``,<$)&4```#HX.[^ -XM_XM;"#E=U`^%)O___XM=W(7;=`N+3>R%R0^$_@```(M%\(7`#X06`@``BTWD -XMQ@$!BT7D@\0\6UY?7<.%_W4@BU7R%P`^$NO[__XLU@%X)"(7V#X6H_O__BP.)!"3H?&@"`(M- -XM\(M5Z(D$BNF0_O__A?]URX-Z!#P/A+P!``"+2+ -XM00B%P`^$M@$``,<$)&<```#HZNW^_^DK_O__D(UT)@"#[P$/A5C___^+1>R) -XM7>"%P`^$#_[__^E0____BU7PA=(/A5,!``"+3>3&`0*+5>"Y`0```(M%W.CS -XM!```BU7DB4(4BT7D@\0\6UY?7<.+3>2!202`````]D70#(M;"`^%C_[__XM# -XM"#M%U`^%`@$``,<$)&0```#H8^W^_^FD_?__N`$```#3X*D`ZP0`#X6,```` -XMJ!`/A('\__^+6P@[7=0/A6#\___IP!````Z?C[___'0@00````BT74.478#X66_/__QP0D)````.B5 -XM[/[_Z=G]__^+5>2#2@0"Z0K]__^+1>2!2`0``@``Z37^__^+2)00SIAOS__XL& -XMB00DZ%9F`@"+5>2)0@CI=>V+3>B)\H/$'(GX6UY?7>G#^O__C78`A=)US,=$)`08 -XM````QP0D`0```.CH^0$`BTWH@\D$B47PBT,(.?")1>QT7HL`@S@F=$"+1?") -XMVL8``XGXZ'_Z__^+5?")0@B+5>R+`H,X)G0S@TWH`HGRBT,(BTWHZ#[___^+ -XM5?")0@R#Q!R)T%M>7UW#BT7PBTWH@4@$@````(/)#.NNBUWLZ\B+5?")^,8" -XM`XG:Z"CZ__^+5?")0@CKL56)Y5>)UU93B<.#[!PYT(E-['0TB<8QR>L;C;8` -XM````@_@I#X27````@_@F=#*+=@@Y]W03BQ:+`H/X*'7BBW8(@\$!.?=U[8M- -XM[(GZ@\0EF____D(VT)@````!5 -XMB>57B==64XG#@^P<.=")3>QT-HG&,@1\=57B<=6B=93@^P<.=")3>P/A*(```")PS'2ZQV)]H/X -XM"G0F@_@H=0:#P@&-=@"+6P@YW@^$?P```(L#BP"#^"ET;'[:@_@[=>6%THUV -XM`'7>QT0D!!@```#'!"0!````Z&KW`0")VHE%\,8`!(M-[(GXZ,C^__^+5?") -XM0@B+1>R)="0$B40D"(M#"(D$).BL`0``BU7PA<")0@QT+XM%\(/$'%M>7UW# -XMC;0F`````(M;"(/J`3G>=8&+3>R)\H/$'(GX6UY?7>ES_O__BT((QT((```` -XM`(E"#.O"C70F`%6)Y5=64X/L'#G0B47PB57LB4WH#X3L````BQB)QC'_ZQR# -XM^"9T;X/X*'4$@\BP.#^"ET/G[;@_@^=`R#^'R0 -XM==Z#>P1\=-B+=@@[=>R)]@^$G````(L>QT0D!#`["0B)'"3HA&C^_X7`=+2+ -XM`X/X*77"@^\!>:C'!"1A````Z!SH_O_KFH7_=9:#>P0FB?9TCHM-Z(GRBT7P -XMZ''^__^)QP^V`#P$='L\!G1W/`5TR)-"2)1"0$Z&,```")0PSK)X7_ -XM=16+3>B+5>R+1?"#Q!Q;7E]=Z07^___'!"1B````,=OHA^?^_X/$'(G86UY? -XM7575E.#[`R+70B+=0R+?1`Y\W4)ZS&+6P@YWG0JBP.+`,<$),K;"`B) -XM1"0$Z&WH__^%P'7A@\0,B?F)\HG86UY?7>E7_O__@\0,,575HG64XG#@^PL.=`/A#D!``"+`(,X*`^$#P$``,=$)`24 -XM=@H(B00DZ"!1``"%P(G"#X04`0``BT,$B36$F`H(HR"9"PB+`L=$)`10*@8( -XMQP0D,)D+"*,PF0L(Z.WI_O^-1>B)1=B)!"3HC^'__XE%X,<$)#"9"PCH,.G^ -XM_XL-@%X)"(7)=!>-1>B)!"3H6[/__\<$)````$#HO^;^_XL#BQ"%T@^%T@`` -XM`(M%X(7`#X2T````BWL$D(UT)@"+`XD$).@&]`$`BUL(BT,$B00DZ/CS`0`Y -XMWG7DB7<(N`$```")?@2+5=@Y5?!T88M%[(M`!(E&!(M%[(M`!(EP"(M%\(EX -XM!(E'"(M%[(L`B00DZ+GS`0"+1>R)!"3HKO,!`(/$++@!````6UY?7<.+4@2+ -XM`H,X*741ZQV0C70F`(M2!(L"@S@I=`XYTW7R,<"#Q"Q;7E]=PXM#"#G0=._H -XM7````(/$+%M>7UW#BW,(BWL$.?,/A4;____I7?___XM5\(E5W(LZB00DB7PD -XM!.BI9?[_A<`/A1+___^)?"0$QP0D($,)".C57@(`BU7P/A,X```"+&(G&,?_K(I"#^"9T.X/X -XM*`^$G````(/X"G0MBW8(.77L#X26````BQZ+`X/X*71H?M:#^#Z-=@!T-(/X -XM?'0)@_@[==>-="8`A?]USXM%\(GRZ-+]__^Z`0```(7`=62+1@B+5>R#Q!Q; -XM7E]=ZWJ+=@@[=>QT1XL>QT0D!#`["0B)'"3HW&3^_X7`=(^+`X/X*76=D(UT -XM)@"#[P$/B7K____'!"1A````Z-OD_O_I:?___X/'`8UV`.E>____,=*%_W0* -XM@\07UWI2?W__XGVC;PG`````%6)Y5:)UE.) -XMPX/L$#G0=0GK+HM;"#G>=">+`XL`QP0DRML("(E$)`3H4^7__X7`=>&#Q!") -XM\HG86UY=Z<#^__^#Q!`QP%M>7<.-M"8`````58GE5E.[,@```(/L$(MU",<% -XM:)P+"`L```"-M@````"+1@B)\NB&____A&#Q!!;7EW#D)"0D)"0D)"0D)"058GEBT4(78L`HW!A -XM"0C#D%6)Y5W'!=@D"0B@G`L(PY!5B>6#[!BAV"0)"#V@G`L(#X2`````BPV$ -XM=PH(A&$) -XM"`$```"%TG5)BPWH=@H(N@$```"%R74&BQ7,EPH(+:"<"PB)1"0(QT0D!*"< -XM"PB)%"3HH^7__X/``71>QP78)`D(H)P+",<%>&$)"`````#)PXL-Z'8*"+H" -XM````A&$)"`````#'!=@D"0B@G`L(QP0D````(.@` -XMX_[_H=@D"0CI8?___XVV`````.CG9?[_BP"#^`ET'HUT)@!^*8/X&703B?:- -XMO"<`````?"&#Z$6#^`%W&<<$)`$```#HZH+^_^EG____@^@%@_@!=N?'!"0` -XM```@Z*'B_O^0Z4W___^-="8`C;PG`````%6)Y8/L"*'8)`D(BU4(@>+__S\` -XMB!"#P`$]EJ0+"*/8)`D(<@7HEO[__\FX`0```,/K#9"0D)"0D)"0D)"0D)!5 -XMB>53@^P$BPW`F`H(BUT(A#.-=@")'"3H.*4!`(E="(/$!%M=Z4O___^A?)@*"(7`#Y7`Z\*A_)D+"(7` -XM#Y7`Z[:-=@"!XW____>!RP````CKPNA]9@$`ZZN-="8`C;PG`````%6)Y593 -XM@^P0BT4(BQ5P80D(B<:)PX'F````/('C__\_0(72=5VI````0'56.QW<70D( -XM?2RAX%T)"/9$F#4"=!:#^W\/CA8!``"#/8!1"0@!#X0)`0``]D28-@1U&8UV -XM`(/[?P^.L@```(,]@%$)"`$/A*4````)WHDT).C0_O__ZR^+%<"8"@B!X___ -XM_S^%TG0^H>AV"@B%P'5EH?R9"PB%P`^5P(3`=3Z)'"3H7_[__XLUU"0)"(7V -XM=`N!X___/P"#^PIT2H/$$%M>7<.-=@"AZ'8*"(7`=!JA?)@*"(7`#Y7`A,!T -XMP@G>B30DZ/^C`0#KMJ'@=0D(A<`/E<#KII"A;)D+"(7`#Y7`ZYF-="8`@\00 -XM6UY=Z;7\__^)\(/(7(D$).C8_O__B=C!^`:#X`>#P#`)\(D$).C#_O__B=C! -XM^`.#X`>#P#`)\(D$).BN_O__B=B#X`>-6##I%____XU#]X/X`0^&"____XL- -XM=&$)"(7)=!J)\(/(7HD$).A^_O__@_M_=!*#RT#IY_[__X/[#77AZ=W^__^S -XM/Y"-="8`Z='^__^-="8`C;PG`````%6)Y5=64X/L'(M="(G8)?__/P")1"0$ -XMC47NB00DZ"Y:`@"%P(G'="")WC';@>8``,#_#[9$*^Z#PP$)\(D$).@,_O__ -XM.?MUZH/$'%M>7UW#58GE5U93@^PZ)!"3HWED" -XM`(7`B<=T((G>,=N!Y@``P/\/MD0K[H/#`0GPB00DZ`S]__\Y^W7J@\0<6UY? -XM7<-5ND#C12)`=(ITXE<)`B)3"0$ -XMZ&`Z`@"#Q!1;7<.-=@"-O"<`````5;AWFBX`B>564X/L$(MU"(GQP>D&]^&) -XMT\'K`H7;#X2,````B5PD!,<$)-C;"`CH'#H"`&G#0'X%`(GQ*<&X'X7K4??A -XMB=.ZB8B(B,'K!8G8]^J-!!K!^`7H8O___\<$)-K;"`CHYCD"`(G8NHF(B(CW -XMZ@':P?H%:](\*=.)V.@\____QP0DDAT)".C`.0(`B?"Z'X7K4??B@\006\'J -XM!6O29"G6B?!>7>D2____B?:X'X7K4??FQP0D/=P("(G3NHF(B(C!ZP6)V/?J -XM`=K!^@6)5"0$Z'8Y`@#K@HUT)@!5N,6SHI&)Y593@^P0BW4(]^:)T\'K"X7; -XM=&B)7"0$QP0DV-L(".A%.0(`:<,0#@``B?.ZB8B(B"G#B=CWZHT$&HG:P?@% -XMP?H?*=#HD/[__\<$)-K;"`CH%#D"`(G8NHF(B(CWZHG8P?@?@\00`=K!^@4I -XMPFO2/"G3B=A;7EWI7?[__XGPNHF(B(CWZHGPP?@?B?/'!"0]W`@(`?+!^@4I -XMPHE4)`3HQC@"`.NDD)"0D%6A@'<*"(GE7<<%@'<*"`````"CB'8*",.-M"8` -XM````5:&(=@H(B>5=QP6(=@H(`````*.`=PH(PXVT)@````!5B>564XG#H0"8 -XM"@B%P'1`BPT\=PH(,?;K#(VV`````(L`A7<.-M@````"-OP`````[!3QW -XM"@A5B>53B<-T$CL%<)D+"'0J6UW#C;0F`````*%PF0L(A6#[`B#/=27"@C_="*AU)<*"(7`=`C)PXVV`````,<$)#X```#H5-S^ -XM_\F-=@##QP0D(````.A#W/[_C78`Z\V-M"8`````C;PG`````%6)Y593@^P0 -XMBQT`F`H(BW4(QP6,=@H(`@```(7;="N0]D,,`G0>A?:X`;H("'4%N$7)"`B) -XM1"0$QP0D0````.CLV_[_BQN%VW76@\006UY=P^L-D)"0D)"0D)"0D)"0D%6) -XMY8/L6(E]_(M]"(E=](EU^(/_``^."@$``(U=U(UUY(D<).B#8/[_QT0D!!(` -XM``")'"3H@UO^_\=$)`05````B1PDZ'-;_O^)="0(B5PD!,<$)`$```#H#UO^ -XM_\=$)`1@'@4(B30DZ%/>_O^+10S'!"0`````B40D!.B<7/[_@\`!#X2G```` -XMA?]^=L<$)`\```#H\UW^_SE%#'1:C5V\B5PD",=$)`0`````QP0D%@```.CS -XM7O[_QT0D!`$```#'!"06````Z$]?_O^+10S'!"0/````B40D!.@,6O[_QT0D -XM"`````")7"0$QP0D%@```.BT7O[_C47DB00DZ!W=_O\QP(M=](,]U)<*"`"+ -XM=?B+??P/G\"#Z`$A!=27"@B)[%W##XU"____Z]:-=@#HQV#^_\<$)`````") -XM10R)1"0$Z-1;_O^#P`%T"(M]#.DT____Z')=_O^+`(D$).@86_[_QT0D!-S; -XM"`C'!"0V````B40D".A4VO[_QP0D`````.AX>O[_Z\.-M@````!5B>53B<.# -XM[!2+0!B%P'4(ZWZ+6P2+0Q@[0QQU]8G8Z#S]__\QP#L=@'<*"`^4P(/H`2$% -XM@'<*"(G8BU,4C78`@6`,_W___\=`&`````#'0!0`````BT`$.=AUY#L5,)H+ -XM"'0&@\046UW#H0"8"@@QR87`=`^+4!0YT7T"B=&+`(7`=?&)#3":"PB#Q!1; -XM7<.A@)@*",=$)`SLVP@(QT0D"`,```#'1"0$$0```(D$).@K.___B00DZ,,T -XM`@"#Q!1;7<.-M@````"-O"<`````58GE@^PHB77XBW4(B5WTB7W\A?9T"HM> -XM!(U^!(7;=2"+'3QW"@B%VW1HBQ4\=PH(BUWTB="+=?B+??R)[%W#D,=$)`3< -XM/0D(B30DZ/Q8_O^%P'3,QT0D!.@]"0B)-"3HZ%C^_X7`=+C'1"0$]#T)"(DT -XM).C46/[_AP`````ZPR+5?"+$H72B57P=&Z+ -XM5?"+0A@[0AQUZ8,_/W5&BU)XBP*%P'3;B=/K"HM#!(/#!(7`=,T[!G7RB5PD -XM!(DT).A1VO__ASKGHM5\(M" -XM>(D\)(E$)`3H(-K__X7`=(CKS8M5[(72D(UT)@`/A;K^__\QP(,_/P^4P(/H -XM`8/@\04\```0B00DZ-_7_O\QTNF8_O__QP0D.P``$.C,U_[_Z>'^__^)/"3H -XMCU,"`(D$).@S5O[_BQ4`F`H(A=*)P74(ZQB+$H72=!([2A1U]8M"&#M"''7M -XMZ5'^___'!"0M```0Z(77_O^0C70F`.G;_O__C70F`(V\)P````!5B>6#[`B+ -XM10B+0`2)!"3H[/W__X-(#"#)PXVV`````%6)Y593@^P0BS6`=PH(A?9T5/=& -XM#`(!``!T".M)C78`BW8$BT88.T8<=?6+1A2)\\<$)`?<"`B)1"0$Z%`R`@"+ -XM0QC'!"0\W`@(B40D!.@],@(`BUL$.=YUYL<$)`H```#H2O7__\<%@'<*"``` -XM``#'!8AV"@@`````@\006UY=P^L-D)"0D)"0D)"0D)"0D%6)Y5=64XG#@>RL -XM````B95D____BT`8.T,<=`^-="8`BUL$BT,8.T,<=?4Y6P0/A)`'``"+A63_ -XM__^)WHN59/___\>%=/_________'A7C___\`````@^`0B46`BX5D____@>*$ -XM````B56(BY5D____QX5P_________X/@`HE%A(N%9/___X/B`8F58/___X/@ -XM!(F%7/___XVT)@````"+1@R+E7C___^)QPG"@>%?/___R3<"`B%P'4*QX5\____^]X("#N]MP(".@# -XM,`(`C48@B40D#(U&*(E$)`B-1C")1"0$QP0DH&$)".AR6@``B?:+1@0YPW0) -XMB<;IC]___'!"0@````Z"+R___IK?[___:%9/__ -XM_P@/A8("``#VA63___]`#X2Y_O__H629"PB+0`R)1"0$BT,(BT`,B00DZ&53 -XM_O^%P`^$E_[__Z&`F`H(QT0D#'/<"`C'1"0("@```,=$)`01````B00DZ/PT -XM__^)!"3HE"X"`(M#"(M`#(D$).BFH?[_QP0D><((".AZ+@(`Z4O^__^0C70F -XM`#L=/'<*"+@K````=!0QP#L=<)D+"`^4P(/H`8/@\X/`+8M6%+D=W`@(@_H) -XM?@6Y12-1BB)1"0$B10DZ(-4``"+1>PY1>1UMHM%Z#M% -XM\`^?P.NNC47LQT0D#(!A"0B)1"0(B7PD!,<$)*!A"0CHT50``.FJ^O__BT,, -XM]L1`#X1D^/__@.2_@\A`B4,,Z5;X___'!"07W`@(Z!8J`@#I+/___Y!5B>56 -XM4X/L$(MU"(M=#(,%T*P+"`''1"0$L)`(",<$)-"L"PCHE]'^_XGPZQ"-=@"` -XMS@&)4`R+0`0Y\'0IBU`,]L(#=/&)T8/)`8G*@^+]A=N)4`QUVH'A_?[__XE( -XM#(M`!#GP==>%VW5#B?#H?_'__[H+````B?#HD_?__\=$)`03````BT8(D$).C,<$)(0``!")1"0$Z!W-_O^+5@2%TG6DC;8`````@\006UY= -XMPXGVC;PG`````%6)Y5=64X/L#(LUC'8*"(M5"(7V=`K'!8QV"@@"````C4($ -XMBU($OP<```"%TG08BU@$A=MT=,<$)#@```"_5P```.BYS/[_BPTPF@L(A7UW#B=CH&/+__^OD -XMQT0D!*PX"0AFOU<`B10DZ!Y,_O^%P'2%Z6____^)]HV\)P````!5B>53@^P4 -XMBQT`F`H(QP50F@L(`````(7;=0OK68UV`(L;A=MT4&:#>PP`D(UT)@!Y[H,% -XMT*P+"`''1"0$L)`(",<$)-"L"PCHT\[^_[H'````B=B!8PS_?___Z!#U__^H -XM`W08QP0DT*P+".@0SO[_BQN%VW6P@\046UW#B=CH;?'__^O?C70F`(V\)P`` -XM``!5B>575HG&4X/L+(7`B578="V+`(7`=">)\^L/C70F`(/#!'0:BP.%P'04 -XM@S@EB?9U[HD$).A&S?__@\,$=>:)-"3HN7K__\=$)`3P(P8(B<>)!"3H-\[^ -XM_X,%T*P+"`''1"0$L)`(",<$)-"L"PCH',[^_Z&4=PH(A<`/A08"``"%_P^$ -XM6`(``(L?A=L/A$X"``#'1=P`````QT7@`````.MG@_A_=W3V!(6]40D(!'1J -XMB1PDZ+9&`@"-5?#'1"0("@```(E4)`2)!"3HJTW^_XG#BT7P@#@`#X2!```` -XMQP0D.0``$.BURO[_@WW8#P^$+`$``(-]V`$/A"(!``"#QP1T+XL?A=MT*8L# -XM@_@E#X2.````J0```$!TAX/X+9!TD,<$)#D``!#H7UW#C;8`````BTW8B1PD -XMB4PD!.A]2?[_A<`/B73____H($W^_XL`B00DZ,9*_O^)7"0$QP0DJ=P("(E$ -XM)`CH1B4"`(-%X`'I7/___XD<).B%\/__B<:-=@"+4`P)5=R+0`0YQG7S@WW8 -XM%G<<#[9-V+@!````T^"I``!F`'1A]D7<`0^$R````(M%V(E$)`2+1AR)!"3H -XM*T_^_X7`#XCY````@WW8#W0*@WW8`0^%]O[__\=$)`03````BT8,<$ -XM)(0``!")1"0$Z![)_O_I>/[__X,%Q*P+"`''1"0$L)`(",<$),2L"PCH[LO^ -XM_^G:_?__H8"8"@C'1"0,BMP(",=$)`@,````QT0D!!$```")!"3H="K__XE< -XM)`2)!"3H""0"`(-%X`'I'O[__\<$)-"L"PCH`\O^_^E@_O__Z*5+_O^+`(D$ -XM).A+2?[_B5PD!,<$)*'<"`B)1"0(Z,LC`@"#1>`!Z=O^__^)]E6)Y5=64X/L -XM'(M5"(M"!(UZ!(7`=`6#."UT%KL/````B=J)^.BW_/__@\0<6UY?7<.-<`2+ -XM0`2#^&QT=X/XNIQP0D"@```.B[Y?__Z?_^__^+0@B-2@B%P'1AB<^)QND(____]@2%O5$) -XM"`0/A`S___^)-"3H_4("`(U5\,=$)`@`````B50D!(D$).@22?[_B<.+1?"` -XM.`!U#87;>`F#^Q\/CBK____'!"0;```0Z//&_O^-=@#I%O___\<$)`X``!#H -XMW\;^_^F?_O__C78`C;PG`````%6Z$0```(GEBT4(78/`!.D<^___C;8````` -XMC;\`````58GE@^P8B5WXB<.)=?R+`#L%($,)"'1YB1PDZ!Q'_O^)QJ%08PD( -XM@_A/=RT!\(/X3W8PQT0D!,@]"0BA5&,)"(D$).CT1?[_@P548PD($,<%4&,) -XM"%````"+7?B+=?R)[%W#B5PD!*%48PD(B00DZ,A%_O^-!+4``````3508PD( -XM`0548PD(BUWXBW7\B>Q=PX/#!.N"C78`C;PG`````%6%P(GE5HG&4P^$P0`` -XM``^V!CP"#X3M````=WHL`8GV#X2N````BU8$]L($C70F`'4EBT8(A!B+1@2#X`&#^`$9P"4``0``@\`!B4,,BU8$]L8@=`F`S$")0PR+5@3V -XMQD!T"H%+#````0"+5@1FA=)Y!X%+#````@")\,<%5&,)"`!B"0C'!5!C"0@` -XM````Z/O]__^A5&,)",<``````(/`!*-48PD(]D8$"'02BU,,B="`S`B)0PR` -XM?@0`>'N0QP0D`&()".B$/0(`B4-XH8!W"@B%P'1MQT,(`````*&`=PH(BT`4 -XMB4,4H8!W"@B)0P2A@'<*"(M`&(E#'(L5@'<*"(G1ZP*)PHM"!#G!=?>+#0"8 -XM"@B)6@2-0R")"XD=`)@*",=%#`````")10B#Q`Q;7E]=Z9)$_O^`S@R)4PSI -XM>____XD=@'<*"(E['(E;!*%DF0L(B4,(H629"PB#0`@"H3":"PB#^`A_+8L- -XM`)@*"(/``:,PF@L(B4,4BS4\=PH(A?9T28L5<)D+"(72=8B)'7"9"PCK@(L- -XM`)@*"+X!````ARA@)@*",=$)`S( -XMW`@(QT0D"`$```#'1"0$$0```(D$).A$'___B00DZ-P8`@"+6P0Y\W6_C5W( -XMB1PDC7VXZ&-"_O_'1"0$`@```(D<).AC/?[_QT0D!!0```")'"3H4SW^_XU% -XMV(E$)`B)7"0$QP0D`0```.CL//[_C478B00DQT0D!&`>!0CH+<#^_XM%V(E% -XMN(M%W(E%O(M%X(E%P(M%Y(E%Q,=$)`04````B3PDZ.%"_O^0C70F`.@K,`(` -XM,=N)\(VT)@`````+6`R+0`0Y\'7V]L,!=`J)/"3HI4+^_^O7C478B00DZ"R_ -XM_O^AU)<*"(7`?A")1"0$QP0D#P```.C?._[_]L-2#X3T`0``]L,"#X4E`0`` -XMNJ````")\.CEY?__]\,"(```=`Z+/91W"@B%_P^%C@$``(GR,=L/MD(0A,!T -XM$O="#!`@```/MMAT!H/(@`^VV(M2!#GR==^%VP^$@0```,=$)`3$F`H(QP0D -XMP#P)".@^)@``A7]___H>ES^_XGPZ%/@ -XM__^#Q%Q;7E]=PZ&`F`H(QT0D#+W<"`C'1"0(`@```,=$)`01````B00DZ`8< -XM__^)7"0$B00DZ)H5`@#I%?[__XGPZ`[@___I564X/L$(M=".A`W?__BT,$B=[K/L=#&``` -XM``#HJ3S^_XL`B00DZ$\Z_O^)1"0(BT-XQP0DA```$(E$)`3HC+G^_XM&!(7` -XM=#>+1@B#Q@2%P'0MB00DZ`/@___'1"0$`0```(G#B00DZ)'J__^%P'2DB1PD -XMZ%7[__^+1@2%P'7)@\006UY=PXVT)@````!5B>564X/L$(L=`)@*"(7;=%2^ -XM`)@*".L/C;0F`````(L8B<:%VW0^BTL8B=B%R77OBP.)!HM#>(D$).APQ@$` -XMBU,(A=)T#8M""(/H`H7`B4((=":)'"3H5,8!`(GPBQB)QH7;=<*A@'<*"(D$ -XM).C-^O__@\006UY=PXM#"(L0A=)UT8D$).AE>/[_Z\>-=@!5B>575E.#[&R- -XMM"8`````Z)<[_O_'``````"+-91W"@B%]@^$7@(``(L=P'8*"(7;=0Z+#?Q= -XM"0B%R0^$1@(``+@#````C56HB40D!(U%\(E4)`B)!"3H<#C^_XG"C4`!@_@! -XM#X8S`@``BS4`F`H(A?9U".N:BS:%]G24.U88D'7TBTX,B"$``(D$).CP,@(`B00DZ)0U_O\YPP^,]0`` -XM`(M'#(/(0(E'#`E%H(M_!#GW=8N+5@R)T(#D_CMV!(E&#`^$G@$``/=%H`$0 -XM```/A3S^__^)\XM##*@"=`:`S!")0PR+6P0Y\W7LBT,8.T,<=`N+6P2+0Q@[ -XM0QQU]8M]H(/G`@^$?`$``*$\=PH(A^__^)0P3'1"0(`0```,=$)`0"````B00DZ.@S -XM_O^+`X7`>!6+4P2%TG@&@\046UW#B00DZ+&Y__^+0P2%P'@(B00DZ**Y___' -XM10@U````@\046UWI,;3^_Y!5B>6#["C'1"0$Q)@*"(E=](G3B7W\B<>)=?C' -XM!"1@1@D(Z/D=``"%P`^$A@```(D<)(U=[.C6L?[_QT7P`````(D<)(E%[.BT -XM3O__ASH[<`!`.N;B1PDZ%.Q_O_'1"0$,"H("(G#B00DZ%&V_O_' -XM1"0$`````(D<).@18___B1PDB47LZ):U_O_I8?___XM%[(D$).@&+P(`HR!W -XM"@B+1>R)!"3HEL`!`,<$)#$``!#H&K/^_^E7____D(UT)@!5B>575E.![.P` -XM``"+?0B%_W1JBS70F0L(A?9T,XL=P'8*"(7;=0J+#229"PB%R70?BU4(BT(0 -XMABS7H=@H(A?9T"8MU"/9&!01T%8'$[````%M>7UW##[8!_R2%\-P( -XM".@9N/__@<3L````6UY?7<.+70B+0Q"+,(L&)?___W\]````0`^$I@\``(#F -XM!`^$*P\``(M5"(M"$(LPA?9TK(M2!/;""`^%A@(``(#F`@^%1`(``,=$)`@" -XM````QT0D!!`O"0C'!"3T+@D(Z$XE``"+50B`.@$/A90```"+30B+<1"+'L=$ -XM)`0,2`D(B1PDZ,8Q_O^%P`^%5@$``(M&!(7`#X2(!@``BP#'!"3JW`@(B40D -XM!.B1,_[_A<`/A+$!``"+3@B%R0^$8P8``(M=",<%('<*"/31"`B+0Q"+0`2) -XM!"3H]QD``(A#`<=$)`0"````BT,0B00DZ.&W__^!2P0`"```BU4(@#H!#X1L -XM____H2AW"@C'1?``````A<`/A;3^__^+1?"%P'0PBT7P@7@$`/D$"`^$50<` -XM`(M%\(%X!&#V!`@/A$4'``"+1?"!>`2@[00(#X0U!P``BT4(BW`$]\8`(``` -XM=1[WQA`````/A2H'``"+1?"%P'0+9O?&"9@/A!@'``"+50B`.@)T$X'F`00` -XM`'4+BT7PA<`/A,$*``"+10R%P'@-H5AC"0B%P`^$V`T``(M%#(E$)`2+30B) -XM#"3H]NW__X7`#X7""0``H5AC"0B%P`^%2PH``(M%"(MP!,>%'/___P$```#I -XMR@8``,=$)`3D1PD(B1PDZ%@P_O^%P'4JBU8$A=(/A!X%``"+30B!200`$``` -XMQT0D!`$```")-"3HL[;__^E`_O__QT0D!/Q'"0B)'"3H&C#^_X7`#X4&!@`` -XMBT8$A<`/A-P$``"+70B!2P0`@```QT0D!`$```")-"3H<;;__^G^_?__BT4( -XMQD`!!,=$)`0!````B30DZ%6V__^+50B!2@0`"```Z=C]___'!"0`````Z#JU -XM__^+50B+0@B)!"3HS*+^_XL=*'<*"(7;#X24_?__QP0D`````.@2M?__Z8/] -XM__^+712)'"3HPOK__XMU"(M6!.ED_?__BW4(@#X"=`^+11B)-"2)1"0$Z"#B -XM_O_'1"0$$P```,<$)`````#HS+C__\=$)`@!````QT0D!`(```"C1)D+"(D$ -XM).C++O[_QT0D!!$```#'!"0!````Z)NX___'1"0(`0```,=$)`0"````H\R7 -XM"@B)!"3HFB[^_Z',EPH(B00DZ)TT_O_'1"0$$@```,<$)`(```"CX'4)".A8 -XMN/__QT0D"`$```#'1"0$`@```*,$=@H(B00DZ%AV"@@`````BT$$ -XMBU$4@^`@"4($BT4,BUT8B10DQT0D#`````")1"0$B5PD$,=$)`@`````Z`C[ -XM___H\T_^_XMU"(U=Z(M."(M6!(M!!('BI0```(/("`G0B4$$BU48BT4,B5PD -XM#(E4)!"+=1")1"0$B0PDB70D".C%^O__BT4(BW4(BT@,BU8$BT$$@^(Y@\@$ -XM"=")002+51B+10R)5"00BW44B5PD"(E$)`2)#"2)="0,Z(KZ___I[_K__XM% -XM"(M("(7)=%"#XB`)402+10R+51B)#"3'1"0,`````(E$)`2)5"00QT0D"``` -XM``#H3_K__XM-"(M!"/9`!`%T&(M1#(72#X2B^O__]D($`745B?;HZ]7__XM= -XM"(M3#(72#X2'^O__BW4(BT8$@^`P"4($BT4,BU48QT0D#`````#'1"0(```` -XM`(E$)`2)5"00BT8,B00DZ.CY___I3?K__XM="(M+"(7)=%N#XB`)402+10R+ -XM=1B)#"3'1"0,`````(E$)`2)="00QT0D"`````#HK?G__\=$)`3$F`H(QP0D -XM]"X)".CY%@``B00DZ`$5``"%P`^4PH`[!@^4P#C"#X7[^?__BT4(BU`,A=(/ -XMA-KY__^+0`2#X#`)0@2+10R+71C'1"0,`````,=$)`@`````B40D!(E<)!") -XM%"3H0?G__^FF^?__B00DZ%2M__^#Z`&0#X5Z^?__BSTH=PH(A?\/A6SY__^+ -XM30B+01"+`(D$).B\80``A<")A2#___]T"8,X?@^$;PX``(N%(/___XD$).C+ -XM)P(`BY4@____B10DB%`20H@4(='R+1?"!>`3@H04(='"+1?"!>`30H@4(=&2+1?"! -XM>`1`M04(=%B+1?"!>`20H04(=$R+1?"!>`3PI@4(=$"+1?"!>`3PI04(=#2+ -XM1?"!>`3@GP4(="B+1?"!>`1@H`4(=!R+1?"!>`0@HP4(=!"+1?"!>`10?`4( -XM#X7J]___BUT(@#L!#X4J^?__BT7PA<`/A1_Y__^%T@^%%_G__Z'`=@H(A<`/ -XMA`KY__^)'"3H;.O__\=$)`0P*@@(B<.)!"3H.JW^_XD<).@2Y`$`B1PDZ(JL -XM_O_IV_C__Y"-="8`QT0D!'0\"0B)'"3H_"G^_X7`#X7)_O__BT8$A<`/A+[^ -XM__^+10B!2`0`(```QT0D!`$```")-"3H4[#__^G@]___BW4(@68$__?__^F\ -XM^/__BT7PA%'/___P````"AZ'8*"(7`#X4=`@`` -XM]\8`!```#X41`@``]\8``@``#X7<````BU4(BT((A<`/A.\)``"AM'8*",=$ -XM)`0`````B00DZ-JR__^AS)<*",=$)`0!````B00DZ,6R__^A!'8*",=$)`0" -XM````B00DZ+"R__^+30B+40B)R.@3]?__B<.)!"3H"24"`(D$).A!M/__B1PD -XMBL_O_'1"0$`````(D\).A'K/__A<")PP^( -XMI@H``(D\).A%J_[_QT0D!`,```")'"3H82C^_\=$)`0$````B1PDB40D".A- -XM*/[_QT0D!`````")'"3H<;+__XM%"(M0#(72#X2;!@``Z'[T__^)PXD$).AT -XM)`(`B00DZ*RS__^)'"2)Q^@"M@$`QT0D!#`J"`B)/"3HD```#'1"0$Q)@*",<$),`\"0CH0!$``(7`#X2B]/__QT0D!,28"@C' -XM!"3T+@D(Z(01``")!"3HC`\``(7`B<,/A'ST__^A@)@*",=$)`R]W`@(QT0D -XM"`(```#'1"0$$0```(D$).B="/__B5PD!(D$).@Q`@(`Z4;T__^+=0B+5@3V -XMP@%T"*-L=@H(BU8$BQWH=@H(A=MU)O;"!'0ABU40BP*)!"3H':S__XM-$(M! -XM!(D$).@/K/__BUT(BU,$]L((#X7Z\___H5AC"0B%P`^%2@0``(/B`0^%Y//_ -XM_^A%[?__D(UT)@#IU?/__^A62/[_C;8`````Z<7S__^+1?"!>`2P@04(#X6/ -XM_/__Z5_U___'1"0(`````,=$)`1@8PD(QP0D`P```.C6)?[_BUT(QP588PD( -XM`````(MS!,>%'/___P$```#I6?S__XM%#(7`>!B+/5AC"0B%_W4.BS4H=PH( -XMA?8/A"`(``"-7=B)'"3HS2K^_XD<),=$)`04````Z,TE_O^)'"3'1"0$`@`` -XM`.B])?[_C47(B5PD!(E$)`C'!"0!````Z%8E_O^AY'4)"(L5E'<*"(L-P)@* -XM"(L=Z'8*"(LUM'8*"(F%)/___Z',EPH(B94H____BQ4$=@H(B8TL____BPU$ -XMF0L(B9TP____BQW4EPH(B;4T____BS7@=0D(B84X____H?R9"PB)E3S___^+ -XM%6QC"0B)C4#___^+#6AC"0B)G43___^+'61C"0B)M4C___^+-6!C"0B)A4S_ -XM__^A6&,)"(F58/___XF=6/___XF-7/___XFU5/___Z-<8PD(QP7$=@H(```` -XM`,<%3)D+"`````"+'>A="0C'!;AV"@@`````QP51U"0@!A<`/A`T%``"%V\<% -XME'<*"``````/A!0'``#'1"0$`0```,<$)`(```#H;"C^_\=$)`0!````QP0D -XM`P```.A8*/[_BT4,A;Q__^- -XM7@2)'"3H+R/^_XDT)(E<)`2-!(4$````B40D".AX)_[_BW4(BU8$Z2WP__^A -XM!'8*"(D$).@0(_[_H?R9"PC'1"0(`````,=$)`0"````QP0D`@```*-LF0L( -XMZ,HA_O_IH?K__\=$)`@`````QT0D!&!C"0C'!"0#````Z,DA_O^+=0C'!5AC -XM"0@`````BU8$Z87[___WQ@@````/A"@"``#'!"0!````Z&"G__^+312+002) -XM!"3HCB+^_\<%?)@*"`````#I#_K__\=$)`0)````B3PDZ!.E__^#^/^)PP^% -XMR_G__^E\^?__C47(QT0D"`````")1"0$QP0D`P```.A$(?[_QP0D,````.B< -XMH?[_BX4D____BY4H____BXTL____B[4P____H^1U"0B+A33___^)%91W"@B+ -XME3C___^)#<"8"@B+C3S___^)->AV"@B+M4#___^CM'8*"(N%1/___XD5S)<* -XM"(N52/___XD-!'8*"(N-3/___XDU1)D+"(NU8/___Z/4EPH(BX5<____B17@ -XM=0D(BY58____B0W\F0L(BXU4____B35L8PD(HVAC"0BA7&,)"(D59&,)"(D- -XM8&,)"*-88PD(H4R9"PB)!"3H1:X!`*'$=@H(QP5,F0L(`````(D$).@NK@$` -XMH;AV"@C'!<1V"@@`````B00DZ!>N`0"A7)D+",<%N'8*"`````")!"3HP*?_ -XM_XMU",<%7)D+"`````")'"2)="0$Z.?;__^-1_G__\=$)`3$F`H(QP0DH$$)".@P"@``A<`/A/WW__^+ -XMA5#___^%P`^%)@(``(V%:/___XE$)`2)/"3HA"+^_X7`#XC5]___#[>%!U"0C'1"0(`````,=$)`0"````QP0D`0`` -XM`*-\F`H(Z"$?_O_IS/?___?&!`````^%S````/?&(````'0-@SW4EPH(_P^$ -XM30,``,<$)`````#HTZ3__Z%$F0L(B00DZ`(@_O_'1"0(`````,=$)`0"```` -XMQP0D`````.C&'O[_Z83V___HG"7^_XG#Z7?Z__^#/=27"@C_#X5_^___BU4( -XM]D($(`^$ -XM_O_II_;__\<$)`````#H'*3__XM=$(L#B00DZ$L?_O^+`XD$).@%I/__BT,$ -XMB00DZ/JC___IU/7__\=$)`0`````QP0D`0```.C-(O[_BT4(BW`$Z?/Z___' -XM1"0$`0```,<$)`$```#HKB+^_XM="(MS!.G+^O__Z$XA_O^+`(D$).CT'O[_ -XMB7PD!,<$)#8```")1"0(Z#2>_O_I,O7__\=$)`@`````QT0D!&!C"0C'!"0# -XM````Z*\=_O_'!5AC"0@`````Z5_Y___H^R#^_XL`B00DZ*$>_O^)?"0$QP0D -XM-@```(E$)`CHX9W^_^FR_?__C5W8B1PDZ*TB_O_'1"0$%````(D<).BM'?[_ -XMQT0D"&!C"0B)7"0$QP0D`0```.A%'?[_QP588PD(`0```.F>]___B<+'1<@` -XM````@\($QT7,`````,=%T`````"+0`2%P`^%F@```(G6QT0D!,28"@C'!"20 -XM+PD(Z*\'``")1"0$C47(B00DZ)`5`@"-7?X__^+10BS`?9`!"`/A7KX__^-="8` -XMZ4_X__^#^"\/A%W___^)UH/&!(L&AZZ7H8Q_^_XL`A<"-=@!U98M="(MS -XM!,>%'/___P$```#IA_+__P^VP(/(@.GC^/__Z&4B_O^)QNG8]___QP0D```` -XM`.B&H?__QT0D!`````#'!"3,L0@(Z%*?___I3//__XU%R(E\)`2)!"3H/A0" -XM`.EX____Z/`>_O^+`(D$).B6'/[_QT0D!+'<"`C'!"0V````B40D".C2F_[_ -XMBT4(BW`$QX4<____`0```.G[\?__C;8`````C;PG`````%6)Y8/L",<$)`$` -XM``#HNB#^_Y"0D)"0D)"0D)"0D)"058/X"8GE4XG#=A&ZSH#B=#H -XMY/___XG8NLW,S,R+#71C"0CWXHU!!,'J`XT4D@'2*=.-4S")$5M=HW1C"0C# -XMC70F`(V\)P````!5B>575E.)PX/L"(E-[.LFQT,8`0```+@!````C70F`(7` -XMBU7PB?L/E,`/ML`[1>P/A9H```"+>Q2%_P^$CP```#'`.5\0#Y3`.U7LB47P -XM=!^+0QB%P'2X@_@!="B#^/]UOC'`QT,8`````.NSC78`BT,8A12%P(E#$'0&BT$,B5@4B5D, -XMB4L4BT7PB4R'#(M!#,=`&`$```"X_____\=!&/_____I4O___XGV@\0(6UY? -XM7<.#^`%TA8/X_P^%.O___XMS#(M6&(72#X7_````BT80B7X4A<")0PQT!HM& -XM$(E8%(E>$(ES%(M%\(ETAPR+1A#'0!C_____N`$```#'1A@!````Z?'^__^# -XM^@$/A(,```"#P@$/A=_^__^+<0R+012+5A")1A2+0Q"%THE0#'0)BU80BT,0 -XMB4(4BT,0B480B7`4BT,4B7,0B484BT8,A<")0Q!T!HM&#(E8%(E>#(ES%(M% -XM\(ETAPPQP(M6#(-^&``/GL"#Z`&)0AB+1AB+5A#!Z!^)0A@QP,=&&`````#I -XM9?[__XM!#(EY%(7`B4,0=`:+00R)6!2)60R)2Q2+1?")3(<,BT$,QT`8```` -XM`#'`QT$8`````.DM_O__@_H!=$&#P@$/A1_^__^+1A")?A2%P(E##'0&BT80 -XMB5@4B5X0B7,4BT7PB72'#(M&$,=`&``````QP,=&&`````#IY_W__XM.$(M& -XM%(M1#(E!%(M##(72B5`0=`F+40R+0PR)0A2+0PR)00R)2!2+0Q2)2PR)012+ -XM01"%P(E##'0&BT$0B5@4B5D0B4L4BT7PB4R'##'`BU$,@WD8``^>P(/H`8E" -XM&(M!&(M1$,'H'XE"&#'`QT$8`````.EM_?__C;8`````C;PG`````%6)Y5=6 -XM4X/L'(M%"(M]#)")QHM`#(7`=?>+5A2%T@^$B@```(5^"'1?H91W"@B%P`^% -XM@````(L&B00DZ%"9__^)PXM&!,<$)`S="`B)1"0$Z&OS`0"#ZP%T=\<$)"@` -XM``#H>K;__XL&B00DZ*"D___'!"0I````Z&2V___'!"0*````Z%BV__^+1A"% -XMP'6!BT84.W`0=0J)QHM&%#MP$'3VB<:+5A2%T@^%=O___X/$'%M>7UW#C47P -XMB00DZ'\+`@"-1?")!"3H!)K^_^EE____BP:)!"3H-:3__^N?C78`58GE5E.# -XM[!"+70B%VP^$W````(L3@_HKB=`/A*`````Q]H/X+8G"=&WWP@```$`/A;8` -XM``"#^G\/AZT```")V3';]@25O5$)"`1U%^F:````@_I_=Q^#P03V!)6]40D( -XM!'02C02;C5Q"T(M1!/?"````0'36_O^+ -XM$^EI____BT,$,?:-2P2%P`^$6?___XG+Z4G____V!)6]40D(!&:^`0`/A57_ -XM___KO3';ZX;'!"0)```0Z*66_O_I$____U6)Y5.)TX/L!,<"`````(M(!(U0 -XM!,<``````(7)=$_WP0```$!U3(/Y?W=']@2-O5$)"`1T/8L#ZR*-M@````#W -XMP0```$!U*X/Y?Y"-="8`=R'V!(V]40D(!'07C02`@\($C41!T(D#BPJ%R772 -XMC5H$ZPB#^5V-6@1T#,<$)`@``!#H&9;^_XG8@\0$6UW#D%6)Y5=64X/L#(M% -XM#(M]"(M8#(7;="Z+-^L1C;8`````AR)5"0$ -XMB3PDZ*P5_O^%P'7<@\0,B=A;7E]=PXGVBUL,Z]*-="8`C;PG`````%6)Y8/L -XM"(M5"(M%#(72="*%P'0>B40D!(D4).B`____A6#[!C'1"0$Q)@*"(E=](EU^(G&B7W\B=>)!"3H -XM/?___X7`B<-T+87_?@Z+`XD$).A)EO__.<=^#,<$)"L``!#H*97^_XG8BW7X -XMBUWTBWW\B>Q=PXDT).A2G/__Z\E5B>53@^Q$BU4(C5W(B1UT8PD(A=)Y$8U% -XMS/?:QT7(+0```*-T8PD(B=#H4?G__Z%T8PD(QP``````B1PDZ'X.`@"#Q$1; -XM7<.0C;0F`````%6)Y5=6B<93@^P,BP")!"3H:YO__XM&!(D$).@0H@$`BTX0 -XMA -XM7UWI_/C__XM.#.O'BUX4.W,0#Y3`#[;XB4R[#.O)D(UT)@!5B>6#[!B)=?R+ -XM=0B)7?C'1"0$Q)@*"(DT).CQ_?__A<")PW00BW7\B=B+7?B)[%WI*____XDT -XM).@CF___Z^:058GE5HG&4X/L$(M:#(7;=0GK+XM;$(7;="B+2PR%R9!T#8G: -XMB?#HU?___X7`=16)="0$BT,$B00DZ,))__^%P'31B=B#Q!!;7EW#D(UT)@!5 -XMB>575E.#[`R+=0B+?0R+1@2%P'1*,=OK'(VV`````(M`!,<$)(,``!")1"0$ -XMZ%V3_O^+1@2)^NAS____AB$_O__@\,!D.OAA=MT$H/&!(M& -XM!(7`=;:#Q`Q;7E]=PXM&!(D$).CM#@(`HR!W"@CKW(VV`````%6)Y5=64X/L -XM#(M=",=$)`3$F`H(QP0DX$8)".C@_/__QT0D!,28"@C'!"2`,0D(BF5\?[_D(UT)@#'1"0$ -XMQ)@*",<$)(`Q"0CHS/K__X/X`1G`]]`A!8AW"@CKBZ'4F0L(HTQW"@CISO[_ -XM_\<%C)@*""$```#'!42:"PA>````Z1K^__^0C70F`,<%-)H+"#X```#'!8QW -XM"@@C````Z3G^__^-M"8`````Z-N5``#IR+.NL5A<`/G\`/ML")1?"+1(8,A2)>Q3'0Q@`````QT,0```` -XM`(E#"(GXQT,,`````(M5\.@O]/__BU7HB1.)50B#Q!Q;7E]=Z?LI__^)7"0$ -XMQP0D@P``$.A+C_[_Z63___^-M@````!5B>575E.#[#R+712+10B+50R+31") -XM7"+7=2+1(L$@\$! -XMB4W@A# -XM1>P!BTW@.4WL?3V+?>R%_W[MBUWLBT74BSR8ZZ;V1")UC'`@^D! -XMB4WDZQ&-6`$[7>`/C,(```"#Q@2)V#M%Y'SJBW7@,-=@"+7=2+ -XM!(N%P'0&B023@\(!@\$!.TW@=>@[5>!]%XM-U(T$D<<``````(/"`8/`!#M5 -XMX'7O@V7,GXM=S(M%T(M5U(M-V(E=%(E%$(E5#(E-"(/$/%M>7UWI=/W__XD4 -XM).B,*/__A<`/A)[^__^)1"0$BT74B00DZ#4\__^%P(G#=':+3=2)#"3H5)3_ -XM_XE=U.EV_O__B3PDZ/2:`0"+5=S'`@````#I__[__XE=\(EUZ(M^_(7_=!F+ -XM5>B+`H7`=!")?"0$B00DZ#`-_O^%P'06@T7P`8M-X(-%Z`0Y3?`/C03____K -XMRHD\).BBF@$`QT;\`````.O9BU74B10DZ-Z3___'!"0Q```0Z!*-_O_I;O__ -XM_XVV`````(V\)P````!5B>6#[!C'!"0(````Z"Z;`0"+50S'0`0`````B1"+ -XM51")1"0$BT4(QT0D",28"@B)5"0,B00DZ(3]___)PXGV58GE@^P8BT4,B5WT -XMB77XBW40B7W\BWT(B00DZ%`&`@#'1"0$,"H("(G#B00DZ'Z/_O^)="0(B5PD -XM!(D\).A^____B1PDZ!:/_O^+=?B)70B+??R+7?2)[%WILH[^_XGV58GE@^P8 -XMBT4(QT0D"`(```#'1"0$^&\)"(D$).A_____R<.-M@````"-O"<`````58GE -XM5XG'5E.#[!S'1"0$E#()"(D$).CQ"_[_A<`/A=,```#'1"0$Q)@*",<$))0R -XM"0CHZ?7__X7`#X1/`0``BP"-=>C'1>@`````QT7L`````,=%\`````"%P'1+ -XMBQ"%TG1%B7UW#QT0D!``_"0B)/"3H!@O^_X7`=2C'1"0$Q)@* -XM"(D\).AF]?__BQ")%8R8"@B+0`2C1)H+"(/$'%M>7UW#QT0D!$`_"0B)/"3H -XMR@K^_X7`="#'1"0$@#\)"(D\).BV"O[_A#^G]W4O8$E;U1"0@$=$BA<&,)"(/!!(T$@(U$0M"C<&,) -XM"'7-H7!C"0B%P`^/T?O__^LMQT0D!&!`"0B)/"3HH0;^_X7`=2C'!6QW"@@! -XM````Z:S[___'!7!C"0@`````QP5P8PD(&@```.F3^___QT0D!``V"0B)/"3H -XM90;^_X7`=0KHX$G^_^EU^___QT0D!.!&"0B)/"3H1P;^_X7`=0SHTBH``(GV -XMZ57[___'1"0$H$D)"(D\).@G!O[_A@#BP``C78`Z97Z___'1"0$P#0)"(D\).AG!?[_AA"Y?[_B?;H -XM&^;^_^EP^O__QT0D!,P^"0B)/"3H0@7^_X7`#X58^O__QP7T8`D(`0```.E) -XM^O__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+10B+<`2%]G1.B30DZ-:&___' -XM1"0$Q)@*"(DT).@&[___A<")PW0WBP"%P'0QBP"%P'0[QT0D!`$```"+`XD$ -XM).A2B___@\00B?!;7EWIM?C__Y"-="8`OB0V"0CKLXDT).@1C/__BP.+`(7` -XM=<7'!"0*```0Z+V$_O_KMXUT)@"-O"<`````58GE@^PXB5WT@_@]C5W4B7W\ -XMB<^)=?B)7?`/A(````"+"H7)=6"-3=B)WHU5W(U=Z(/X/(E%Z,=%[`````") -XM'G12@_@^=$V).8U%\,<"`````(D$).A&U/[_B<.+1?"+`(7`=`S'!"0A```0 -XMZ#^$_O^)'"3H)^___XM=](MU^(M]_(GL7<.)5=2-==B-3=R-5>#KFHD9B=&# -XMP@3KJHUV`(U5V(G9ZZ")]HV\)P````!5B>6#[!B)=?R)UHE=^(L8A=MT((D$ -XM).B4_0$`BQ:)PXU"_(D&BT+\B00DZ$"1`0"+!HD8B30DZ+33_O^)!"3HK.[_ -XM_XM=^(MU_(GL7<.)]E6)Y8/L&(E=](G3B7W\B77XB4WPZ"?N___V0`@!B<=T -XM$XM`!,<$)(,``!")1"0$Z'R#_O^+!\'C`HMT`_S'1"0$,"H("(DT).A3AO[_ -XMBP?'1"0$`@```(/H!`'#BT7PB00DZ`DS__^)`XDT).B/A?[_BUWTBW7XBWW\ -XMB>Q=PXGV58GE5U93@^P\BT4(@\`$B44(BQ"#P`2)10B%THE5S`^%2@$``.GS -XM`@``C;8`````BT4(BQB%VP^$=`,``(/`!(E%"(L[A?\/A8,!``#'!"0E```0 -XMZ->"_O^-M"8`````BP.%P'4-BT4(BP"%P`^$5P,``(M%S(D$).AB_`$`QT0D -XM!#`J"`B)1=")!"3HCX7^_X/_/0^$0@(``(LSC5,$B57@QP0DZMP("(ET)`3H -XM7H/__X7`#X1S`@``.?YU!XM#!(7`=`S'!"0F```0Z%^"_O_'!"08+PD(Z`/\ -XM`0")P\=$)`0P*@@(B1PDZ#&%_O^+==2%]@^$A@$``(M5\(M%T.B[[/__B=F+ -XM$(M%\(M4@OR)^.AI_?__QT0D!#`J"`B)PXD$).CWA/[_BU7PB=F+1=#H2O[_ -XM_XD<).B2A/[_B1PDZ#J$_O^+1=#HLO7__XM-T(D,).@GA/[_BT4(BQ"%THE5 -XMS`^$O`$``(/`!(E%"(M-S(LY]\<```!`=2F)^`^VP#W_````B478#X?U`0`` -XMH>!="0B+5=B+1)`T]L0!=4"#_U]T.XMUS,<$)!T``!#H?('^_XL^QT74```` -XM`(/_6P^$H````(7_B?,/A&#^___'`P````"#PP3I@O[__XGVBPW@70D(B?N+ -XM=7UW#B7PD!,<$)-3'"`CHTX#__X7`="`Y_G00QP0D)@``$(UT)@#H -XMVW_^_\<$)````!#HSW_^_X/^/70,QP0D)@``$.B^?_[_BT7@C54(Z+/[__^) -XMP^E;_?__B00DZ+#__?^-="8`Z0;^__^+3=#'1"0(`@```(E<)`2)#"3HA/+_ -XM_^E?____B?/IE?S__XM-V(D,)(GVZ'?__?_I>/[__\<$)"4``!#H6G_^_^F8 -XM_/__D(UT)@!5B>575E.#[$R+10B+>`2-<`3'1=P"````QT7(`````,=%S``` -XM``"%_P^$?@```)")/"3'1"0$2#0)".CL_OW_B?HQ_X7`=1B#Q@2+%H72#X2' -XM````QT7<`0```&:_`0#'1"0$H#@)"(D4).B\_OW_"T7,=6.#Q@2+'L=%R`$` -XM``"%VXG:=""_`0```,=$)`2L.`D(B1PDZ)#^_?\+1"-M"8`````BP_WP0`` -XM`$")3=AU,`^VP3W_````B470#X>``@``H>!="0B+5="+1)`T]L0!#X7S```` -XM@WW87P^$Z0```(G^QP0D'0``$.@%?O[_BP8QVX/X6P^$_0$``(7`#X18`0`` -XMQP8`````@\8$BQ:%TG42BTW@BQ&%TG0)@SHH#X1,`@``@_@]#X4R`@``QT0D -XM!%`["0B)-"3HDOW]_X7`#X70````A=L/A0$"``"+7>"-=@#K`X/#!(LSA?8/ -XMA#P!``"#/BEU[L<#`````(M%X(D$).@KB?__BTW(A")^.@2\?__BT7@BSB% -XM_P^$I?[__X/`!(E%X.G:_O__BPW@70D(B?Z+7=B)3=3K)HM5U(M$@C3VQ`5U -XM"8/[7P^%RP```(/&!(L>]\,```!`#X6Z````#[;#/?\```!VT(D$).CN_/W_ -XMB?;KRX7;#X3P````B30DC78`Z'OV`0#'1"0$,"H("(G#B00DZ*E__O^+5?") -XMV8GXZ/WX__^)'"3H17_^_XD<).CM?O[_Z4____^+5>"+`H7`#X3%_O__QT0D -XM!#@["0B)!"3H5_S]_X7`#X6M_O__@T7@!(M-X(L!A<`/A)S^__^#P02)QHE- -XMX.F/_O__QT0D!"D```#'!"0R```0Z$%\_O^+,^FI_O__.?O````BU70BTW4BT21-/;$`0^%#?[__X-]V%\/A??]__^+!C';@_A; -XM#X4#_O__B?"S`8U5\.A/Y?__B<:+`.GN_?__B30DZ([U`0"+3<2)/"2)3"0( -XMB40D!.C+[O__Z7W^__^+5#I -XMI_W__XM-T(D,).AW^_W_Z4O___^0D)"0D)")P8L"50$!B>6+000#0@0]/T(/ -XM`(E!!'X*@P$!@6D$0$(/`%W#C70F`(V\)P````!5B>56BW4,4XM="(GRB=CH -XMO/___XU#"(U6".BQ____BT80.T,0?@.)0Q"+1A0!0Q2+1A@!0QB+1AP!0QR+ -XM1B`!0R"+1B0!0R2+1B@!0RB+1BP!0RR+1C`!0S"+1C0!0S2+1C@!0SB+1CP! -XM0SR+1D`!0T"+1D0!0T1;7EW#C70F`%6)Y8M5#(M-$%.+70B+`BL!B0.+0@0K -XM002%P(E#!'D*@RL!@4,$0$(/`%M=PXUV`%6)Y8/L*(E$)`2-1?B)5"0(B00D -XMZ+?___^+3?RZTTUB$,<$)!#="`B)R/?JBT7XP?D?P?H&*") -XM5=R+3@R)3="+0`PIP8G(]^^)3=#!?=`?BT8$B=&+5>#!^0PK3=")1="+4@0I -XMT(E%T/?OP7W0'XL&`T8(P?H,*U70C101BTW@*P$K00AKP&0!PHE5Y,=$)`3$ -XMF`H(QP0D=#P)".B9X___BU7AT'8L!AEDE___ -XMC70F`(/H1#PS=RD/ML#_)(54W0@(BTW@BT9`*T%`C;8`````B40D!,<$)";= -XM"`CH$-0!``^V0P&->P'KG8M-Y#'`AB->P&)!"3HAYG__P^V0P'I9/___XM5X(M&)"M").NCBU7@BT8L -XM*T(LZYB+5>0QP(72=(^+3>"+5A0#5AP#5A@K41PK410K41B)T,'Z'_=]Y.EM -XM____BU80B=#!Z!\!T-'XZ5S___^+3>"+1C`K03#I3O___XM5Z#'),<"%TG1# -XMVT7DNF=F9F;8#23>"`C9??(/MT7RVT7HWOFT#&:)1?#9;?#;7>S9;?*+3>R) -XMR/?JBP&)3"0(QP0D&MT(".@)TP$` -XM#[9#`>F6_O__BTW@BT8@*T$@Z=+^__^+1=2->P&+5=CH)/W__P^V0P'I"+1B@K0BCIE_[__XM]Y#'`A?\/ -XMA(K^__^+3>"+5A0K412)T,'Z'_=]Y.ET_O__BU7@BT9$*T)$Z6;^__^+5>"+ -XM1CPK0CSI6/[__XM5X(M&."M"..E*_O__BTW@BT8T*T$TZ3S^__^-M@````"- -XMOP````!5B>53@^P4BT4(BU@$C5`$N`0```"%VW0)BT($ARX````B5WXC5VH -XMB77\C;5@____B5PD!,<$)`````#H9/K]_XET)`3'!"3_____Z%3Z_?^)="0$ -XMC77PB1PDZ/GZ__^)-"3'1"0$`````.A%]_W_B70D"(E<)`3'1"0,J)D+",<$ -XM)"!V"@CHS?O__XM=^(MU_(GL7<.-=@!5B>53@^QDC5VTQT0D!`````#'!"2H -XMF0L(Z/[V_?_'1"0$('8*",<$)`````#HVOG]_XE<)`3'!"3_____Z,KY_?^) -XM7"0$QP0D('8*".AN^O__@\1D6UW#D)"0D)"0D)!5B>575E.#[`R+50B+0A"% -XMP'1(B=&+4@B+.87_="N-')`Q]NL#@\,$BP.%P'0.B00DZ,J"`0#'`P````"# -XMQ@$Y_G7BBU4(BT(0B00DZ*^"`0"+30C'01``````@\0,6UY?7<.-M@````"- -XMO"<`````58GE5U:)SE.)TX/L+(/Y!HE%X'8%O@8```"-?>Z-##>)^NL&@\(! -XM@\,".)7?2)=?B)1>R+0@@#`HT$A0@```") -XM1"0$BT(0B00DZ"&#`0")1?"+1Q"%P'0\BQ^+1?"+5>R)WH/#`0-W"(E'$(D4 -XM)(TTL.AY?___B0:+1?")'P-?",<$F`````"+7?2+=?B+??R)[%W#BT<(A*V+5?`QR8/!`<="_`````"#Z@0YR'7OP>`"*47P -XMZX^-M@````!5B>6+10R+`(E%#(M%"(L`B44(7>GC]?W_C;0F`````%4QP(GE -XM5E.#[""+70B+=0PY\W1=BU40A=)T78'[_P````^'Z0```*'@70D(BYR8-`0` -XM`('^_P````^'P0```*'@70D(B[2P-`0``(U%Z(E$)`2-1?")7?")=>C'1>P` -XM````QT7T`````(D$).@[]_W_@\0@6UY=PX'[_P```'=PH>!="0B+1)@T]L00 -XM=!N!_O\```!W2J'@70D(BU2P-&:%TK@!````>,B!^_\```!W;Z'@70D(BT28 -XM-&:%P'F,@?[_````=V.AX%T)"(M4L#2`YA"X_____P^$;?___^N1B30DZ!3S -XM_?^)PNNSC70F`(D<).@$\_W_ZX^-M@````")-"3H!/7]_XG&Z3S___^0B1PD -XMZ/3T_?^)P^D4____D(D<).C4\OW_ZY")-"3HRO+]_XG"ZYJ-=@"-O"<````` -XM58GE5U:)QE.)TX/L+#G*B4W8R)!"3H\.\!`&:!_S^`B47@="QF@?];@`^$@````&:!_RJ` -XM="F+1>P[1?!U%P-UX#E=V'>H,<"`/@`/E,#K5X`^`'7I@\0L,"-1>S'1"0(!@```(ET)`2)!"3H@>\!`(E%X(M% -XM"(G:B00DBTW8B?#H//___X7`=,BX`0```(/$+%M>7UW#@#X`=*$/MQ,/M\([ -XM10@/E,`/MOB%_P^%P@```,=%W`````#K"8VV``````^W$V:!^EV`#X2"```` -XMB=JY!@```(U%\.AS_/__C1Q#9H$[+8!T$8M%\#M%['71QT7<`0```.O(@\," -XMN08```")VHU%Z.A&_/__QT0D"`````"-'$.+1>R)1"0$BT7PB00DZ%G]__^% -XMP'^5QT0D"`````"+1>B)1"0$BT7LB00DZ#O]__^%P`^/<____^N@D+D&```` -XMB=J-1?#H\?O__SE]W`^$T_[__P-UX(T<0^FT_O__@\,"#[<3Z3/___^)]E6) -XMY5=6B<93@>R\````B95<____B8U8____#[<"ZQ60A?\/A1(!``!F@_@O=%2) -XMG5S___]FAHM6!&:#^"^)E6#___]T0#'_9H7`BYU<____>"4/OL"#PP*) -XM1"0$B30DZ"GG`0`/MP-FA8!`(N57/___P^W`F:#^"]TVF:%P'6&C5V( -XMB30DZ#+G`0")7"0$BP:)!"3H8._]_\=%A`````"%P'55BX58____]D`,"'0K -XMBQ:+1@2`?!#_+W0?#[=%D"4`\```/0!````/A,7UW#BX5@ -XM____B48$BY58____BT(,)0`0``"#^`$9P(/@PV8MHG]FB85H____B30DZ(3F -XM`0#H>_+]_\<``````(L&@#@`#X7&````QP0DDAT)".C>\?W_B<>%_P^$P@`` -XM`(M6!`^WA6C____'180`````B95D____B854____B3PDZ!_U_?^%P'1Q@'@( -XM+G4,BY5<____9H,Z+G7BBY5D____@\`(B58$B40D!(DT).CUYP$`B30DZ/WE -XM`0"+E53___^)V8N%9/___P,&B10DBY5<____Z"_\__\Y10ATGXM%"(G:B00D -XMBXU8____B?#HU?W__X7`B46$=(.)/"3H,O7]_XM%A('$O````%M>7UW#B00D -XMZ!SQ_?^)QX7_#X4^____BY58____BUH4A=MT(NB`\?W_BP")1"0$BP:)!"3_ -XMTX7`=`S'183^____Z:/^__^+A5C____'180`````]D`,!`^$C/[__^O;B5PD -XM!(D4).BN\/W_A<`/A5C^__\/MT60)0#P```]`$````^%1/[__\=$)`0O```` -XMB30DZ+;D`0")-"3H#N4!`.DG_O__B?:-O"<`````58GE5U93@^QLBT4(]D4, -XM`8E%O'4:BU44QP(`````QT(0`````/9%#`(/A`P#``"+10R+?12`Y/Z)1PR+ -XM11")1Q2+!XE%I(M'#,='!``````E`!```(/X`1G2@^+#9H'JHG^#^`&+10@9 -XM_X/GPX/'7F:)5:B)?<")!"3HS?/]_XU$``*)!"3HM7L!`(M5"(E%Q`^V.HGX -XM#[;(,<`[3<`/E,"%P(E%R'02@\(!B56\BU4(#[9Z`8GX#[;(BU4,@>(`(``` -XMB56@#X0!`@``B?J+7<2$T@^$F````(VT)@````")^HM%O`^VTHE5T(M5O,=$ -XM)`0&````@\`!B474B10DZ%CM_?^#^/^)Q@^$`@$``(/X`0^.#0$```^W?="- -XM0P(QTHU._V:).XE%S(VV`````(M]O`^V1#H!@,Q`9HE$4P*#P@$YRG7IBT74 -XMBU7,C40P_XU4`````` -XMQT7D`````&:#.@`/A0P"``"+512+`CM%I`^$-0(``/9%#"`/A/\```"+1<0Q -XMVXD$).AI>0$`@\1LB=A;7E]=P\=$)`0`````QP0D`````.@W[/W_B?@\7`^$ -XM&`$```^W?=!FB3N#PP*)7_XJ@`^$ -XM)/___V;'`RJ`@\,"Z1?___\/MP$/M_@[?NGB?B+7<2$P`^$E_[__XM5O(M= -XMQ&:)"P^V0@&#PP*#P@&$P`^VR'7LZ7C^__\Y1:0/A/C^__^+510K1:3'1"0, -XML*@&"(M]%,=$)`@$````B40D!(M2"`%5I(M%I,'@`@-'$(D$).CVZ?W_Z;_^ -XM___'0@@`````Z>C\__^+5=0/M@*#P@&)5=2$P`^$YP````^VP(#,0&:)`X/# -XM`HE=S.GL_?__A=(/A![___^+112-4P*!2`P``0``9L<#6X`[?<`/A-<````/ -XMMP'K"V:#^%UT1`^WP(G.9B7_`&:)`@^W!H/"`HU.`F:#^"UUWP^W7@*-3@)F -XM@_M==-@/ML-FQP(M@(U.!F:)0@(/MT8$@\($9H/X776\C5H"9L<"78#IDOW_ -XM_XM]R(U%W(M-%(D\).@1^?__B<.+1=R)!"3H9'+]___V10P0="6+3:"%R75'BU44BT4(Z`/U___IN/W__X-MU`&X -XM7$```.D1____]T4,``(```^$D_W___9"#0$/A8G]___KP@^W5:AFB5,"C5,$ -XMZ1G___^+?0B)/"3HR._]_X/``8D$).BQ=P$`#[87A-*)PXG!="J)^.L2#[80 -XM@\`!B!$/MA"#P0&$TG04@/I<=>F#P`$/MA"$TG7B@^@!Z]K&`0"+512)V.AO -XM]/__B1PDZ)=V`0#I'/W__Y"058GE5U93@>RL`@``BU4(BP*#^"`/A/8!``"- -XMM@````"#^`D/A.W'`@````"+A5C]__^+$(72#X1C`0``QT0D!)1V"@C' -XM!"3@00D(Z&/2__^%P`^$>0$``(L5+)H+"*$HF@L(B960_?__BQ4DF@L(B86, -XM_?__H2":"PB)E8C]__^+%1R:"PB)A83]__^A&)H+"(F5@/W__XL5%)H+"(F% -XM?/W__Z$0F@L(B95X_?__BQ4,F@L(B85T_?__H0B:"PB)E7#]__^+%02:"PB) -XMA6S]__^A`)H+"(F5:/W__XF%9/W__^@L9_[_QP0D`)H+"(F%7/W__^C&Z/W_ -XMA<`/A"@#``"+A5S]__^)!"3HM&G^_XN5D/W__XN%C/W__XD5+)H+"(N5B/W_ -XM_Z,HF@L(BX6$_?__B14DF@L(BY6`_?__HR":"PB+A7S]__^)%1R:"PB+E7C] -XM__^C&)H+"(N%=/W__XD5%)H+"(N5`0"+A5C]__^-5>B)%"2)1"0$Z!S>`0"+ -XM7>RX0]X(".L4B?:+!+7`W@@(@\8!A<`/A%?___^)7>R)!"3HL^,!`(E$)`2- -XM1>B)!"3HY-T!`(U5Z(D4).C)VP$`BT7HB00DZ%[A`0#'1"0$`````(D$).B^ -XM:/__H]PD"0B#P`%TI(U=L,=$)`1`'@4(C768QP0DW"0)".A*:/[_C46@QT68 -XMP+@&"(D$).@DZOW_B5PD",=%G`````")="0$QP0D`@```.@)Z?W_B1PDC5W8 -XMQT0D!)`>!0CH"FC^_XU%R(E<)`B)1"0$QP0D`@```.B?Y/W_B1PDC9V8_?__ -XMQT0D!&`>!0CHW6?^_^L5B40D"*',EPH(B5PD!(D$).@F9___H=PD"0C'1"0( -XM``(``(E<)`2)!"3HK6?__X7`?\['!"3<)`D(Z/UF_O_I?OW__X/X.@^%4_[_ -XM_^EA_O__BY58_?__QT0D!.!!"0C'!"0"````B50D".A\FP$`Z;7\__^+E5C] -XM___IS_O__\<"+@```(N%8/W__\=`!`````#I)/[__\<$)%3>"`CH2.(!`.F" -XM_?__H8"8"@C'1"0,+MX(",=$)`@!````QT0D!!T```")!"3HOL7^_XN56/W_ -XM_XE4)`2)!"3H3+\!`.G=_/__C;0F`````%6)Y8/L"*'<)`D(@_C_=`B)!"3H -XM2&G__\<%W"0)"/_____)PY"0D)"0D)"0D)"0D(G"58GEHXAC"0B+0@R%P'0) -XMB<*+0@R%P'7WBTH4A&,)"(M">(E$)`2+10B)!"3H3=L!`+@! -XM````@P5X8PD(`8/$$%M>7<.#P0$Y\7ZSB0UX8PD(@\00,&,)"#'`@\006UY=PXD5>&,)"`^V`83`=!R)RP^^P(E$)`2) -XM-"3H,=8!``^V0P&#PP&$P'7F@P5X8PD(`8/$$%NX`0```%Y=PXUV`%6)Y593 -XM@^P0H8!C"0B+=0B%P'0]BU`$A=)T-@^V`H3`=!R)TP^^P(E$)`2)-"3HW=4! -XM``^V0P&#PP&$P'7F@P6`8PD($(/$$%NX`0```%Y=PX/$$#'`6UY=PXVV```` -XM`%6)Y593@^P0H81C"0B+=0B%P'0\BQ"%TG0V#[8"A,!T'(G3#[[`B40D!(DT -XM).A^U0$`#[9#`8/#`83`=>:#!81C"0@,@\006[@!````7EW#@\00,6#[!B)7?2+71")=?B+ -XM=0R)??R+#8AC"0B+?0B%R704B5PD"(ET)`2)/"3H_OO__X7`=2J+%8QC"0@Q -XMP(72=!Z)71"+7?2)=0R+=?B)?0B+??R)[%WI-/___XUT)@"+7?2+=?B+??R) -XM[%W#C78`58GE@^P(BT4(A<"C?&,)"'0(B00DZ"+B_?_'1"0$Q)@*"(M%#(D$ -XM).ACR/__A<"CB&,)"'0:BP#'!8AC"0@`````HXQC"0C)PXVT)@````#'!8QC -XM"0@`````R<.-="8`58GE@^P(BT4(A<"C?&,)"'0(B00DZ,+A_?_'1"0$Q)@* -XM",<$)-PX"0CH`LC__X7`=`>+`*.,8PD(R<.0C70F`%6)Y8/L&(E]_(L]D&,) -XM"(E=](EU^(7_=#F+70B%VW0RH9AC"0B%P(E%\'0F,?:)]HLQ=PXVV```` -XM`(V\)P````!5B>57B==64XG#@^P,BT`0.T,(#X:2````B?@#0PPY0Q1V(HM# -XM#(M+"(L3P>`"`T,$B02*@\$!`7L,B4L(@\0,6UY?7<.+`"B40D!(L#B00DZ%1K`0#'!"3$K`L(B0/HIM`! -XM`.DZ____D%6XD&,)"(GE4X/L%(M="(M3!(/"`>@&____BQ.)5"0$B00DZ!3< -XM_?^#Q!1;7<.)]E6)Y5.)PX/L!(,%Q*P+"`&+`(7`=!R)!"3HTFD!`,<#```` -XM`,=#"`````#'0Q``````BT,$A575E.#[`R+10B+%7QC"0B+=0R+71")1?#HD/___X7`B<8` -XM``#V`Q`/A-T```"A?&,)"(7`="6#!<2L"P@!B00DZ,5?___'!7QC"0@````` -XMQP0DQ*P+".A_S@$`H8QC"0B%P`^$D0```(L`ASP$`B30DZ#;0`0"+1?"+%7QC"0B#Q`Q;7E]=Z;'^__^+#7QC"0B%R76G -XMC;0F`````(/$#(GX6UY?7<.-M@````!5B>575C'V4X/L#(L-R&,)"#L-L&,) -XM"(M]#`^",@$``(L5T&,)"(72=!*+10CH7O[__X7`B<8/A4(!``"AS&,)"(L8 -XMA=L/A#,!``"+%=!C"0B%TG0P@P7$K`L(`8D4).B,7O__QP708PD(`````,<$ -XM),2L"PCH1LT!`*',8PD(BQB%VW2;@SLO=`OK(8UT)@"#.R]U$X/`!(L8A=MU -XM\J/,8PD(Z7C___^CS&,)"(M%"(E<)`2)!"3H5-$!`,='!`````"+`X7`=`R# -XM^"YU.HM;!(7;=3/'!"22'0D(Z&O;_?^CT&,)"(M%$,<`$0```(D\)+X!```` -XMZ`3/`0"#!DSW_W_C;0F`````%6)Y5.#[!2#!<2L -XM"P@!Z!G;_?_'``````#K)9"-="8`Z`?;_?^#.`1U48VV`````.@;RP$`Z/+: -XM_?_'``````#H9]C]_X7`B<-TU<<$),2L"PCHRD,V_W_58GE7>G3V_W_C;0F```` -XM`%6)Y5.#[!2#!<2L"P@!Z)G=_?_'!"3$K`L(B53B<.#[!2)!"3H>]?]_XU0`KBH -XM8PD(Z%+Y__^)7"0$B00DZ&+6_?^#Q!1;7<-5B>575E.#["R+10B%P*-\8PD( -XM=`B)!"3H3]K]__8%P&,)"`$/A"4!``#V!#2"`AV,KOPT@@(BT/PA`$@\,0!>#2"`@YT'?3H#R`2C -XMP&,)"/8%P&,)"`@/A!\"``"AT&,)",<%R&,)"`````"%P'0E@P7$K`L(`8D$ -XM).@C6___QP708PD(`````,<$),2L"PCHW+0Q2%P'0HBT,$ABR_O__BT,0 -XMA:)%"3HUM`!`(D$).AZU_W_A<") -XM1>1TUHD$),=$)`0P'@4(Z-=7_O^+1=R%P'0EQT0D!+@X"0B+!XD$).CNS0$` -XMB47@QT0D!#`J"`B)!"3HJU?^_XM=Y(D<).BP`````QT7H`````(E=\.L' -XM@T7L`8EUZ(MUZ(/&`3MU\'-"BQVH8PD(C02U_/___XL\`XM$`P2)/"2)1"0$ -XMZ&K3_?^%P'3*BT7LAPI7?"+1?#'!"3$K`L( -XMH[!C"0CH'\57 -XM5E.#[`R+-<1C"0B%]G1_BP:%P'1YBSW@70D(ZQB+1(7UW#D)"0D%6)Y5=6 -XM4XM-"(M]#(LQA?9T0XL?ZP^+<02#QP2%]G0UBQ^#P02)\HG8@>+___\_)?__ -XM_S\YPG3>A=NX`0```'0;B?"!X____S\E____/RG86UY?7<.#/P$9P/?06UY? -XM753BTT(BUT,BU40BP&%P'0S@^H!A=)_"^LJ -XMC70F`(/J`70A@\$$BP&%P'7R@^H!A=)_&,53BUT(BTT,BU40ZP>0@\,$@\$$ -XM@^H!=`N+`87`B0-U[5M=P\<#`````%M=PY!5B>575E.#[`R+10B)!"3HJ-'] -XM_XLUT)<*"(7VB47P=%^+'H7;=%F)Q\'G`NL-B?:#Q@1T2XL>A=MT18D<).AY -XMT?W_.47P=^B-!#N#.#UUX,<``````(M%"(E$)`2+!HD$).B9_O__BQ;'!!<] -XM````A6+10R+`(E% -XM#(M%"(L`B44(7>F'=0$`C;0F`````%6)Y5=64X/L'(MU"(M]##G^#X*S```` -XMB?(QR9"-="8`,<"#.F`/E,"#Z@0!P3G7=N^#X0''1>P()0D(=0?'1>P,)0D( -XMQT7P`````.L*C78`@^X$.?=W18L>A=MT\XE<)`2+1>R)!"3H0-3]_X7`=#F# -XM?OQ@^X$.?=VN[@! -XM````@\0<6UY?7<.)7"0$QP0D["0)".CST_W_A<`/A(4```#'1?`!````ZX8Y -XM]XUT)@!SRHL&@_@F=$J#^"AUOH/N!(L6@_H@=`6#^@EU!#GW7UW#@WWP`0^%`/___S'` -XMZ4K___\/ML+VA`#A(`D(('2CZ3/___^-M"8`````58GE5E.#['"%P'17<.# -XMQ'`QP%M>757B<=64X/L;(7`B560=%['1"0$ -XMQ)@*",<$)`PR"0CH6KC__X7`=%6+`(7`=$^+&(7;=$F)QNL@C;8`````B5PD -XM!(D\).AD!/__A!(/&!(7;="7'1"0$A#,)"(D<).@"SOW_A7UW#BT60B3PDB40D!.@BQP$`B<.)!"3HR,D!`(D<)(U= -XME(G&Z%M;`0")7"0$B30DZ!O-_?^#P`%TN@^W39R)R"4`\```/0"@``!T1#T` -XMP```NCT```!TH3T`$```LGQTF#T`(```LB5TCST`8```LB-TACT`0```LB\/ -XMA'G___^#X4FR*@^%;O___^ED____QT0D!,28"@C'!"3@0@D(Z&"W__^%P'0P -XMB5PD!(DT).C,S_W_NB8```"#P`$/A#?___\/MT6````(D$).C_T/W_A<`/E<`/ML")1>2+3<0Q_X7)?DN+5<@Q]HL" -XMB00DZ!"=`0"+7-1@$Y1<2)QHT4@7X=BP*)TXD$ -XM).CEG`$`C5,$.?AST8U&`3E%Q(G&?^.#?<`!&<`QTO?0C7P'`J'@EPH(B7WP -XM]_>%P(G#=".+%>AV"@BX`0```(72#X3%`0``B00DZ,?1_?^%P`^%I0$``,=% -XMX`$```#'1>@`````BU7H`U7$QT78_____\=%W`````")T,'Z'_=]X(7`B46\ -XM#XX>`0``BT7@,?^+3=R%P(E-['\NZ>4```"#1=@!BTW$.4W8?#*+1>2%P`^% -XMS@```(M%O(/'`0%%[#M]X`^$O````(M%Y(7`=="+5>R+3<2)5=@Y3=A]SHM5 -XMR(M%V(T$@HE%T(L8B1PDZ"+,_?^)QHM%P(7`#X2_````C12U`````(U$$_R) -XM5=2+&,<``````(U&_XE$)`2)7"0(BTW0BP&)!"3HNTH``(M5T(M-U(L"B5P! -XM_#';.WWH#XUQ____BTW0BP&)!"3HEYL!`(T<&#E=\`^&6/___\<$)"````"# -XMPP'H?&G__SM=\'7LBT6\@\-M"8`````@_HD="N#P`2)10B)5"0$B1PDZ.F_`0"+10B+ -XM$(72=>")'"3H^+\!`(/$)%M=PXGVC44(QT0D"````$")1"0$B1PDZ%FF`0"% -XMP'6EBT7PB00DZ$I7`0"#Q"0QP%M=PXGV58GE5U93,=N#["R)5>B)3>2)1>R) -XM!"3H5/___XE%\,=$)`0P*@@(B00DZ)%,_O^+??"%_P^$!@$``(M%Z,=`!``` -XM``"+5?"+`H/X/0^$KP$``(/X?@^$&0$``(M-\(E,)`2+1>B)!"3HH\$!`(M5 -XMZ(D4).B(OP$`BTWHNHPS"0BAV)<*"(MQ!(7V=`6+3>B+$8/H`H/X`0^6P`^V -XMP(E$)`2)%"3HIQS^_X7`B<,/A(T```")!"3HY<0!`(D$).B)R_W_BU7DA<") -XM`G1TBU7PB10DZ$E+_O^+3>R+,87V=#J+1>B+4`2%TG0/B<&+`(-\D/PO#X1\ -XM`0``BU7HQT($`````(E<)`2)%"3H`<$!`(M%Z(D$).CFO@$`B1PDZ!Y6`0"# -XMQ"PQP%M>7UW#BT7H,=N)!"3HQ[X!`(VT)@````")'"3H^%4!`(-]"`9T#HL= -XMY&,)"(7;#X16`0``BTWPB0PDZ+E*_O^X_O___X/$+%M>7UW#BTWP@\($BT$$ -XMA<`/A.<```"#^"^)U@^$W````(/&!(L&A<`/A:,```")\"G0P?@"B10DB40D -XM!.@PP@$`B<.)!"3HAM']_XD<)(G'Z'Q5`0"%_P^$8/___XE\)`2+1>B)!"3H -XM-<`!`(D\).A=50$`BU7HBP*#."]T:(ET)`2+3>B)#"3H%,`!`.EL_O__BT7P -XMB00DZ,3Q_O^%P(G##X06____.47P#X0\_O__B40D!(M5Z(D4).CBOP$`B1PD -XMZ`I5`0#I,O[__Y"-="8`@_@O#X5'____C;0F`````.E(____@WH$`8VT)@`` -XM``!UBX,^+W6&@\8$ZX&)UC'`Z2_____'000`````B0PDB5PD!.B(OP$`BT7H -XMBU`$B<&+`(-\D/PO#X1R_O__QT0D!"\```")#"3H\[P!`.E=_O__Z!7*_?^# -XM.!2-M@`````/A(D```#H`S' -XM!"3OW@@(B4PD!.COH0$`BT7PQP6PF0L(`0```(D$).CJ2/[_N/_____I+/[_ -XM_XM]\(7_=,.+5?")5>SKNZ&`F`H(QT0D#-3>"`C'1"0("@```,=$)`0>```` -XMB00DZ/RG_O_KA:&`F`H(QT0D##N["`C'1"0("P```,=$)`0>````B00DZ-6G -XM_O_I6____U6)Y8/L&(/X$HE=](G3B77XBW4(B7W\=B_'0P0`````B30DZ.A' -XM__^)="0$B1PDZ#R^`0"+=?B)70B+??R+7?2)[%WI&+P!`/\DA4#?"`B0QT($ -XM`````(E,)`2)%"3H#;X!`.N[QT($`````,=$)`1^````B10DZ(2[`0#KHHGV -XMBSK'1"0$)````(D\).AZQ/W_A!?WP@```$!U#X/Z?P^.N@,``(VV`````(L6A=(/A#4!``")TX'C____ -XMOP^(R`$``(/[?P^/OP$```^VPP^WA`#@(`D(J$$/A*P!``"+1=C'1>````!` -XMA<`/E<(QR832=`D[7=@/A$X"``"+1>"%P'0-@WW8(HUV``^$I0(``(3)=4B$ -XMTHUT)@!U&87;>`F#^W\/CG,#```['42:"P@/A!,$``"+1=B%P'@4]T78```` -XM0'4+@WW8?Y`/COP````['8R8"@@/A`X!``"%_W08BU74BP*#P@2)5=0YV`^5 -XMP`^VP(/H`2''C47H@\8$B5PD!(D$).C0N0$`BT78A<`/B,7^__^+1=C!Z!Z# -XM\`&#X`&#?=A_#Y["A,`/A*K^__^$T@^$HO[__P^V1=CVA`#@(`D(0`^$D/[_ -XM_XM%T#E%U,=%V``````/@HG^__^+%C'_A=(/A7UW##[9%V/:$`.`@"0A`#X5C_O__Z3[^__\/MD78 -XM]H0`X"`)"$`/A?[^__\['8R8"@@/A?+^__^-5>C'1"0$7````(D4).C=N`$` -XMB5PD!.D:`0``C70F`(M%V('B````0`^4P8E5X(7`#Y7"A,D/A$G^__^$T@^$ -XM3O[__X7;#X@Y_O__@_M_D`^/+_[__P^VPP^WA`#@(`D(J/,/A!S^__^#^R,/ -XMA!/^__^#?=@B#X1R`@``BT78A<`/B,H!``#W1=@```!`B?8/A;L!``"#?=A_ -XM#X^Q`0``#[9%V/:$`.`@"0A`#X2?`0``BU7L@\8$BT7HB5R0_(M%V,'H'H/P -XM`8/@`8-]V'\/GL(Q_^EE_O__C;0F`````(M5[(72=!2+1>B#Z`2-!)"+5=@Y -XM$`^$LP$``(M5V(U%Z(D$)(E4)`3HX[B)7"0$B00DZ,&W`0"+5=B)5"0$C47H@\8$B00D,?_HJKB)%"2)7"0$Z$FW`0"- -XM1>C'1"0$(@```(D$).@VMP$`Z6S]__]\&_=%V````$"0C;0F`````'4*@WW8 -XM?P^.NP```(U5Z,=$)`0`````B10DZ`&W`0#IG/W__P^VP@^WA`#@(`D(J$$/ -XMA#G\__^+1=B%P'0).578#X4I_/__,578@T74!(E4)`2-5>B)%"3HP[8!`.F^ -XM^___#[;#]H0`X"`)"/,/A'S\__^#^R,/A;3]___I;OS__XM%V(U5Z(/&!(D4 -XM)(E$)`3HBK8!`(U%Z(D$)(E<)`3H>[8!`(L&A<`/A8P```"X`0```+H!```` -XM,?_'1=@`````Z:?\__\/MD78]H0`X"`)"$`/A>?\___I+O___\<`7````(U% -XMZ(/&!(E4)`0Q_XD$).@HM@$`N`$```"Z`0```,=%V`````#I8/S__XM%[(7` -XM#X07_?__Z=W[__^#^W\/CZG]__^H@HVT)@`````/A)K]___I>OO__XM5V(U% -XMZ#'_B00DB50D!.C1M0$`Z?S[__^-M@````"-OP````!5B>575E.#[%R)1;2) -XM5;"+`(L0A=)T#XD$).BAVO[_A<")1;AU"C'`@\1<6UY?7<.A+)H+"(E%\(L5 -XM*)H+"(E5[*$DF@L(B47HBQ4@F@L(B57DH1R:"PB)1>"+%1B:"PB)5=RA%)H+ -XM"(E%V(L5$)H+"(E5U*$,F@L(B470BQ4(F@L(B57,H02:"PB)1RC*)H+"(M5Z(D5))H+"(M%Y*,@F@L(BU7@B147UW#BT6XB40D!(M5M(L"B00DZ(OL_O^+5;2)`NFS -XM_O__BT6TBQCKR[C_____QP7`F`H(`````,<%L)D+"`$```#I!/[__XVV```` -XM`(V_`````%6)Y5=64X'L'`$``(F%_/[__Z$LF@L(B97X_O__BQ4HF@L(B8WT -XM_O__BPTDF@L(QT7P`````(E%E*$@F@L(B560BQ4/___XL5!)H+ -XM"(F-=/___XL-`)H+"(F%R+1?"%P`^(O0D``(M5$(M-#(E= -XMZ(F5`/___XD,).@VO?W_B=J)V8/B!(/A((F5%/___XF-#/___\=%W`````#' -XM1>``````B85,____B=B#X`*)A1C___^)V(/@0(F%"/___\=%Y`````#'1=`` -XM````QT74`````,=%V`````#'1>@`````QT0D!,28"@C'!"2`2`D(Z(.F___' -XMA23___\`````/?AO"0AU%>LJ@_IA=0O'A23___\"````D(/`!(L0A=)T$8/Z -XM077BQX4D____`0```.OFB=J#XQ"#X@&-3=")E1S___^)#"2)G1#____'1"0$ -XML)$(".B_/O[_C47%*/___P````#' -XMA2#___\`````QT6L`````(L$A>#@"`C'A03___\$````QX5(____`````,>% -XM9/___P````")19S'A43___\`````BX7T_O__C4WHC570QT74`````(E,)`B) -XM1"0$B10D_U6!(/&!(7;=;J+C43___\+ -XMC4C___^)C2S___\/A+(#``"+1="+50R)1;B+.H7_#X3R`P``BPW@70D(B<.) -XM5:B)C33___^+`XG^@>;___\_B84P____)?___S\YQHE%P`^$?P(``('^_P`` -XM`(FU./___P^'K@4``(N5-/___XM$LC1FA<")=;QY((&]./____\````/A^X& -XM``"+C33___^+C+$T!```B4V\BT7`/?\```")A3S___\/AW4%``"+3<"+A33_ -XM__^+5(@T9H72BT7`>2"!O3S_____````#X>8!@``BU7`BXTT____BX21-`0` -XM`#E%O`^$Z0$``(N%1/___X7`=4Z!Y____S^-1].#^`$/ABH%``"#_E]U-[HM -XM````B[TP____A?]T*#M5P'4:Z:\!```E____/SG+`0``.<(/A)H!``"# -XMPP2+`X7`=>*+A2C___^%P`^$B?W__XU-T(D,).@W._[_@[W\_O__!'4?Z?0$ -XM``"+0P2CX&,)"(L#B00DZ#=&`0")'"3H+T8!`(L=X&,)"(7;==R#O?S^__\& -XM#X2U!```B[4(____A?9T'(M=K(7;=16+C2#___^%R7X+BY4@____]]J)5:R+ -XM3:R)3?"+1>R)!"3H<3K^_XM%E(M5D(M-C*,LF@L(BT6(B14HF@L(BU6$B0TD -XMF@L(BTV`HR":"PB+A7S___^)%1R:"PB+E7C___^)#1B:"PB+C73___^C%)H+ -XM"(N%7UW#C;0F`````(.]^/[__Q(/A:'\__^#O23___\!#X2<`@``QX4H____ -XM`````(N=3/___X7;#X6&_/__BT70@S@N#X5Z_/__BXTD____AW^_X7`#X3W^___BT70BTT,B40D -XM!(D,).B#)0``.84$____B<,/C3@"``"#^`0/A<[[__^+1="+50R+C?3^__^) -XM1"0(B50D#(L!B40D!(M%"(D$).CW(P``A<`/A*'[__^+A1S___^%P`^%(@H` -XM`,>%!/___P,```#IA/O__XGVBU70BTT,B56XBQ&%TG1$BTVX@>+___\_BP&) -XMRXM-#"7___\_.<)T).E3_?__C78`BT,$@>+___\_@\,$@\$$)?___S\YP@^% -XM-/W__XM1!(72==V+C1S___^%R0^%9`,``(N5&/___X72#X4!!0``BX44____ -XMA<`/A2,%``"+A0S___^%P`^%104``(.]^/[__P$/E,.#O?C^__\##Y3`A-N) -XMQP^$6`,``(.]^/[__PL"``"+A2C___^#1:P!A<`/A,CY___I.OS__XM% -XMW(D$).@AU___A#^BX/A4/]__^+0`B%P`^4PH/X+P^4P`G"#[;2B94H____ -XMZ2_]___'A2C___\!````Z2#]__^+10@QV\=`!`````")!"3HV*H!`(F=!/__ -XM_^FK^___@_@$#X3(_?__BX4<____A53^_X7`#X1C^?__BTT(BT70QT$$`````(E$)`2)#"3HB*P! -XM`(M%"(D$).AMJ@$`A=MTD8F=!/___^DP^?__B30DZ#*T_?_I3_K__XD$).@E -XMM/W_B<+IB?K__X/^7P^$TOK__X/^+;I?````D`^$R/K__XGRZ<'Z__^+A03_ -XM__^)1:SI8_O__Z'H)`D(.85D____#X[;````@_C_#X32````@WVL`0^.`OO_ -XM_X/``0^,600``(NU9/___XT\M0````")/"3HXT$!`,=$)`0P*@@(B<.)!"3H -XM@3;^_XL-X&,)"(7)=">%]G@CC10?@ZUD____`8L!B4+\BTD$@^H$A>#'1"0,(,P&",=$)`@$````B70D!(D<).APLOW_BT4(QT`$```` -XM`*'H)`D(BU4(BP2#B10DB40D!.ACJP$`BTT(B0PDZ$BI`0")'"3H8#7^_\=% -XMK`$```#I1?K__XN=\/[__^DX]O__QP7H)`D(_____\>%(/___P````#'1:P` -XM````Z1KZ__^)!"3H[;3]_^EK^?__B30DZ."T_?^)1;R0Z1'Y__^+A1#___^+ -XM5;B+C?3^__^)1"0(B50D!(L!B00DZ*I2_O^%P`^%<_S__XN%*/___X7`#X0; -XM]___Z8WY__^$P`^%H/S__X.]^/[__P%T@^$ -XM\`4``(N-5/___X'B____/XL!)?___S\YP@^%U04``,>%4/___P````#K%XN- -XM5/___X'B____/XL!)?___S\YPG47@X50____`8/'!(.%5/___P2+%X72==+' -XM!P````"+50@K.L'_`HEZ!*'48PD(A<`/A(D$``"+A4C___^%P`^$3OC__XM5 -XM"(N-3/___SM*!`^&//C__\="!`````"+10R)%"2)1"0$Z&:I`0"+50B)%"3H -XM2Z@/X?__@_@O#X4?^O__QT0D!"\```")-"3H -XM5J4!`.D*^O__D,=$)`3$F`H(QP0D0$()".A+___\_)?___S\YT'36BT6DBW@$@\`$B46DA?\/ -XMA7K____I#?S__XM%"(L`B46PB<*+`(7`#X0$`0``BQ7@70D(BXU4____BWVP -XMQX50____`````(F56/___XE-M.F&````BY58____BT2:-&:%P'D=@;U<____ -XM_P````^'HP```(N-6/___XN;_ -XM__\_@?O_````#X95____B1PDZ&.M_?_I4O___XDT).A6K?W_ZXJ)'"3H7*_] -XM_XG#Z5O___^)-"3H3:_]_XG&ZXV+C53___^)U\>%4/___P````")3;2+1;2+ -XM$(72=26+A5#___^+E53___^+3;#!X`*)1"0(B50D!(D,).B)LOW_BT6TB854 -XM____Z67[__^#A2#___\!Z=/S___'1"0$Q)@*",<$)$!""0CHKY;__X7`#X5; -XM^___BX5(____A!C"0CIVOG_ -XM_XM5",="!`````")1"0$B10DZ"^D`0"+30B)#"3H%*(!`.F#^O__QX50____ -XM`````.E6^O__58GE5U93@^Q\BT48BWT0BP#'1=P`````QT7@`````,=%Y``` -XM``")19S'1=``````QT74`````,=%V`````#'1<0`````QT7(`````,=%S``` -XM``#'1>@`````Z&'/__^+50C'!=AC"0@`````BS+'1"0$+P```(DT).@NJOW_ -XMA<`/A.H#``"-6`2)'"0I\^CMI`$`P?L"C4W0B5PD"(ET)`2)#"2)1>SHY*(! -XM`(U%T(D$).A)H0$`C570B10DQT0D!+"1"`CH]BW^_XU%[(D$),=$)`0P'`4( -XMZ.,M_O^+30B+`8,X?@^$]0$``(M5[,=$)`0D````B56HB10DZ*NI_?^%P(G# -XM=!N+3:C'1"0$+P```(D,).CBKOW_A<`/A$X"``")^"4`$```B46@#X7>`0`` -XM,<")^X-]G``/E<"`Y^^)1:2-3=R)#"3HLJ`!`(U%W,=$)`2PD0@(B00DZ%\M -XM_O^#^P8/A#8"```/CM4```"#^Q$/A"<#``"!^_\/``"0#X0-`@``@_L-#X01 -XM`@``,<"+5:2%T@^$]````(/(((E%P(/_#`^/]````(/_"`^-)`(``(/_!`^$ -XM_0$``(UV``^/4@0``(/_`HVT)@`````/A.0!```/CR0%``"#_P&0#X3@```` -XMH8"8"@B+'0QV"@C'1"0,,.$(",=$)`@)````QT0D!!X```")!"3H7XO^_XE< -XM)`2)!"3H\X0!`,<%L)D+"`$```"^_____XUT)@"-3=")#"3HY2O^_X/$?(GP -XM6UY?7<.%V[[_____=.*#ZP$/A3C___^+50C'1"0$+P```(L"B00DZ)"M_?^% -XMP`^$\00``(M5I+\$````N!$```"%T@^%$____XVT)@````"#R$"#_PR)1<`/ -XMC@S___^#_Q,/A#`!```/CS<"``"#_Q`/C_4```"#_PZ-M@`````/C1(!``"+ -XM50B+`HD$).BMH@$`B46HB47LZ?H```")]L=$)`0O````B00DZ`RM_?^%P`^% -XM\_W__XM%[+\#````NP,```")1:CK=HVV`````(M5&(U-W(D,)(E4)`3H[J`! -XM`(M5X(72=!V+1=R#?)#\+W03C47__^%P(GX -XM_O__C5W$QT0D!+"1"`B)'"3HU2K^_XM%Z(M-P(M5J(D<)(E$)!"+11B)3"0, -XMC4W@/A&X&``"+5>"%TG0HBT7<@WR0_"]T'HU-W,=$)`0O````B0PDZ&&< -XM`0"-1=R)!"3HMIP!`('G_^___X/_!`^$?_[__P^/$00``(/_`0^$#@4``)"- -XMM"8`````Z&>G_?^%P`^.L_S__XD<).A[G`$`BT7$BTW0BU4(B00DB?CH".#_ -XM_Z'48PD(A<`/A8O\___'1"0$Q)@*",<$)*`Q"0CH!Y#__X7`#X1O_/__@_X! -XM#X5F_/__@WT<_XGV=#:+11R%P`^%E04``(M=Q(M-W(D<)(E-K.B2)___@_\3 -XM#X:$````,<")1"0$BT4(B00DZ)B;`0"+10B)!"3H[9L!`.D8_/__@_\. -XM_/__#X[F````BT4(BQB#?0P�/`0``BT7LB00DZ/\R`0")'"3H-Y\!`(E% -XMJ(E%[.F$_?__@?\2$```#X6&^___Z9C^__^!_P$0``"0C70F``^%B+1=")%"2-5=SHW]K__X7`B<8/A07[__^# -XM3<`"Z:3\___'!"0-````Z/!"___IBOW__XD<)#'VZ%&@`0")!"3HJ2C__X7` -XM#X71^O__D.G1_O__BT6@A<`/A03[___I&OK__\=$)`3$F`H(QP0DP$()".B7 -XMCO__/?AO"0@/A/L!``"+$(72#X3Q`0``]\(```!`#X7E`0``@_I_C78`#X?9 -XM`0``B<$QP/8$E;U1"0@$=3/IQ@$``(VT)@````#WP@```$`/A;,!``"#^G^0 -XM#X>I`0``@\$$]@25O5$)"`0/A)@!``"-!("-1$+0BU$$A=)URX7`#XZ"`0`` -XM.?`/C7H!``"+112%P`^$;P$``*&`F`H(QT0D#!O?"`C'1"0(!0```,=$)`0> -XM````B00DZ"N%_O^)=;R)!"3HD"[__\=$)`0P*@@(B<.)!"3H7B;^_Z&`F`H( -XMQT0D#&CA"`C'1"0(!P```,=$)`0>````B00DZ.F$_O^+5;R)7"0(B50D!(D$ -XM).AV?@$`B1PDZ'XE_O_H63___XU%\XE$)`2AM'8*",=$)`@!````B00DZ/TE -XM__\/OD7SQP0D`]\("(E$)`3H.7X!`*&`F`H(#[Y=\\=$)`P(WP@(QT0D"`T` -XM``#'1"0$'@```(D$).APA/[_B5PD!(D$).B0I/W_A<`/A"W[__^#_P]T,8VT -XM)@````#H.[___\=$)`P@S`8(QT0D"`0```")="0$B00DZ+NA_?^#_Q`/A#P! -XM``#H$;___\=$)`P!````B70D",<$)/AO"0B)1"0$Z#75___IT?K__X/_!0^$ -XMLOW__X/_$HUT)@`/A>+[__^#3<`$Z4GZ___'1"0$Q)@*",<$)(!""0CH?8S_ -XM_SWX;PD(#X1F____BQ"%T@^$7/____?"````0`^%4/___X/Z?P^'1____S'; -XMB<'V!)6]40D(!'4LZ33____WP@```$`/A2C___^#^G^0#X<>____@\$$]@25 -XMO5$)"`0/A`W___^-!)N-7$+0BU$$A=)URX7;#X7$````A=L/G\")=;R$P`^$ -XMY_[__SE=O`^.WO[__XM%%(7`#X33_O__BT6\A<`/A,C^__^A@)@*",=$)`S^ -XMW@@(QT0D"`8```#'1"0$'@```(D$).C_@O[_Z=+]__^+1>R)!"3HORX!`.E` -XM^/__Z-6]__^%]HG'D`^.J_G__S';ZQV-M@````"#PP''!"0*````Z($___\Y -XM\P^$BOG__XL$G\<$))*Y"`B)1"0$Z$9\`0"A8&0)"(7`=,W'!"0-````Z%$_ -XM___KOX/_$`^$,____XVV`````.AKO?__A?:Z`0```(E%L'XVQT6X`````,=% -XMM`````"+5;B+3;"+!)&)!"3H/*']_SE%M',#B46T@T6X`3EUN'7>BU6T@\(! -XMH>"7"@B)T3'2QT68`0```(/``??QA<")191T`XE%F(M%F(U4!O^)T,'Z'_=] -XMF(7;B46\#Y_`Z;/^__^+51R+30B)5"0$B0PDZ!R6`0#I?_K__X-]#`)T.)#H -XM-Z/]_XL`B00DZ-V@_?_'!"3WW@@(B40D"(M%W(E$)`3H6GL!`,<$)`&Z"`CH -XM3GL!`.E6]O__QP0D`;H(".@]>P$`Z/2B_?^+`(D$).B:H/W_QP0D]]X("(E$ -XM)`B+1=R)1"0$Z!=[`0#I'_;__XGV58GE5U93@>RL````BUT(BT4,QT70```` -XM`,=%U`````#'1=@`````C02#B85X____C470QT7P^&\)",=%[`````#'1"0$ -XML)$("(D$).AO(O[_.YUX____#X-H"0``BY5X____,?^)G7S____'A6C___\` -XM````QT6@`````(/J!,>%#;WP@```$!U+H/Z?W\I#[;"#[>$`.`@"0CVQ"!T -XM"8M-U(/!`8E-H*A`=`PYG6#___\/APP#``"-````B00DZ)A^_O^)7"0$B00DZ"QX`0#'180! -XM````C570B10DZ"H?_O^+182!Q*P```!;7E]=PX-]$`8/A%/___^+A6C___^# -XM?1`$B85L____#X0]____@WT0"W>#BT40_R2%W-\("(/Z?@^$&/[__XU-T(E4 -XM)`2)#"3H5)(!`(M-U(M%T(M4B/R%T@^).?[__XGV@\,$Z6S^__^+$X72>#+W -XMP@```$!U*H/Z?W\E#[;"#[>$`.`@"0BH0706A?]U"C'7@\,$Z6C^__\YUW3R -XMC70F`(/_)P^$,/W__X72D(UT)@`/B%W]___WP@```$"-="8`#X5-_?__@_I_ -XM#X]$_?__#[;"]H0`X"`)"`(/A`7]__^#=8@!#X6&````BX5P____@\,$BXUT -XM____B85H____BT6`B4V@B85\____B50D!(U5T(D4).B&D0$`Z>']__^+0P2- -XM7\__\-````0(E$)`2-1=")!"3H6Y$!`(U#"(GSB<;I-/W_ -XM_X/Z?P^/%OW__P^VPO:$`.`@"0B"#X72_O__Z0#]__^+1=2#PP2+C6C___^# -XMP`&)C7#___^+3:")A6C___^)1:"+A7S___^)G7S___^)C73___^)18#I8/__ -XM_\=%Q`````#'1<@`````QT7,`````,=$)`3$F`H(QP0D@$0)".CLA/__A<`/ -XMA%D%``"+C6S____'1"0$+P```,'A`HG+`UW0B4V!VI````0'46@_A_?Q$/ML#V -XMA`#@(`D((`^%3`<``(/"!#E5C'?5B5PD!(U=Q(D<).B[D@$`B1PDZ*.0`0#' -XM1"0$L)$("(D<).A3'?[_BT7LQT0D#`$```")="0(B1PDB40D%(M%\(E$)!"+ -XM11")1"0$Z&KN__^+E6S___^-3=")#"2)5=2)182+1<2)1"0$Z%R2`0"-1=") -XM!"3H09`!`(D<).A9'/[_@WV$_L<%Y&,)"``````/A,$%``"+1="+E63___^+ -XM')"%VP^$_/S__XM5F(T,$#'`A?\/E,")!"2+E7C___^+A7S____H0-3__X7` -XM#XG3_/__C4W0B0PDZ/T;_O_'183_____Z/__ -XM_P^4P(G9B00DBX5\____Z-#3__^%P`^(W@0``(D<).BP)@$`QT6$`0```.E/ -XM_/__H=B7"@B#Z`*#^`$/EL`/ML")1"0$BX5L____P>`"`T70B00DZ(OL_?^% -XMP(G#=9C'180`````Z13\__^-1>2)1"0$BX5L____P>`"`T70B00DZ"Y:`0"% -XMP`^$\`(``(M%Y(D$).@[)@$`QT6$`````.G:^___BX5L____C5W$QT7$```` -XM`,=%R`````#'1`"`T70B1PDB40D!.C/D`$`B1PDZ+>.`0#'1"0$ -XML)$("(D<).AG&_[_BT7LQT0D#`$```")="0(QT0D!`````")1"04BT7PB1PD -XMB40D$.A][/__BY5L____C4W0B0PDB574B46$BT7$B40D!.AOD`$`C470B00D -XMZ%2.`0")'"3H;!K^_^DR^___BXU\____.8UX____QT7$`````,=%R`````#' -XM1@/A&4!```QTH/^`0^4PHU%Z.CCUO__B<:+1=R)!"3H%AG^_XM%Z#G' -XM=!#'1"0$\",&"(D$).B?&?[_A?8/CH4```"#?1`'#X1"`@``BX5\____,=LI -XMA7C____!O7C___\"BY5X____B10DZ.H?``"+1>CK!X/#`3GS=$^+%)B%TG3R -XMBPJ%R73LB10DZ#D8__^+1>@QTHL,F#'`QP0D`````.C#T/__A<`/B-@"``#' -XM!"04/0D(Z$\W``"%P`^(Q`(``(M%Z.NMBT7H.<=T"(D$).AC&/[_B76$Z2;Y -XM__\Q_XF=?/___\>%:/___P````#'1:``````QT68`````.DN^/__,<"%_XM- -XMY`^4P(N5>/___XD$)(N%?/___^A(T/__AC'1"0,`````(ET)`C' -XM!"3X;PD(B40D!.@,Q___BT7HZ17^__^+58R)%"3HV8T!`,=$)`0P*@@(B460 -XMB00DZ`87_O^!?8SX;PD(=`F+38S'`0````"AX*P+"(D<)(E%Q*'DK`L(B47( -XMH>BL"PB)1,`0")'"3H_XD!`,=$)`2PD0@(B1PD -XMZ*\6_O^+1>R)="0$B1PDB40D#(M%\(E$)`CH50,``(E%A(/H`0^$B@```(M% -XMQ(N-;/___XE$)`2-1=")3=2)!"3HOHL!`(U5T(D4).BCB0$`BTV0B0PDZ+@5 -XM_O_I;OG__XM%Z#G'#X2@^?__B00DD(UT)@#HFQ7^_^F.^?__QP7D8PD(```` -XM`.FM^/__Z#*W__^)-"3HFHH!`(DT)(E%Z.B_%?[_B30DZ&<5_O^+=R)="0(B50D!(D<)(E$)!2+1?")1"00Z/#F__^)183I'____Y"0 -XMD)"0D)"058GE5U93@^P+!HG3B<&!X____S^!X?___S\YRW3>A=)U0XL.A-1P2)1>R+5P2%TG4CC48$B47PBT7PB40D!(M%[(D$).AMOO__N@,` -XM``"%P'6XZX>-1@2)1?"+1@2%P'36)?___S\YPW7-@>+___\_.=%UPXU&"(E$ -XM)`2-1PB)!"3H,+[__X7`=:WI1____XVT)@````!5B>575E.#[#R+10C'1>@` -XM````C77HQT7<`````,=%[`````#'1?``````BQC'1>``````QT7D`````,=$ -XM)`2PD0@(B30DZ/42_O^-5=S'1"0$L)$("(D4).CB$O[_BP.#^"\/A+0```"- -XMM"8`````A7UW#B30DN______HS1#^ -XM_X/$/(G86UY?7<.0D)!5B>57B<]6B<93@^P,BUH,A=MU$>M/BT,$@S@M=$*+ -XM6Q"%VW1`BT,,A+0P2)1"0$B30DZ$+$ -XM_O^%P'3,BP.%P'3&@\0,6UY?7<.#P`3KW8/$##'`6UY?7<.058GE5U93B<.# -XM[#R)1=R-?>B)5=B)3=3'1>@`````QT7L`````,=%\`````"+$X72="H[50QT -XM)8/Z)(US!'4)@WL$.HUS!'1HB50D!(D\).A\@P$`B?.+$X72==:)/"3HC(,! -XM`(M-##D+B<*-0P0/A`(!``")%"3H]!H!`(M%W(D$).A)B0$`B40D#(M5$(E4 -XM)`B+30S'!"1_````B4PD!.A;#?[_@\0\B=A;7E]=PY"-0PB)1>"+0PB#^"V) -XMP0^$OP```('A````0`^%>/___X/X+8G!#X2P````@_E_B?8/AV+____V!(V] -XM40D(!`^$5/___S')@_@M#X2=````BUW@@^@PBW7@BU,$@\8$]\(```!`="/K -XM)O8$E;U1"0@$=!R-5`+0@\8$C02`C01"BQ;WP@```$!U!8/Z?W;:AR+`HL8A=MT8HG&QT7P```` -XM`.LZD(UT)@"AX%T)"(M$F#3!Z`Z)QX/G`70-BT7PA&!^_\```!VN8D<).B]B_W_D.NW -XMQP0D)P```.@"*O__@T7L!(M%[(L(AR+ -XM$H72#X51____@\0,6UY?7<-5B>564X/L((M%"(MP!(7V=$.-4`B+0`B%P`^$ -XMP````(D4).CX%O__B30DBB* -XM_O__QP0D"@```.@>*?__BT,0ANID(UT)@")PXM#%#M8$'3VB7<.)-"3H_@O__S')NJ"D"PCH -XMTOO__X7`==#I%____XGVC;PG`````%6)Y5=64X/L#(7`=`6CZ&,)"(L]Z&,) -XM"(L'B?J%P`^$S0```*D```!`=4F+'>!="0CK)XM$@S3VQ$!T,H/'!(D]Z&,) -XM"(L'A<`/A*(```"I````0`^%HP```#W_````=M*)!"3HTXG]__;$0'7.BQ7H -XM8PD(BQJ)UHG8)0```$")1?!U%H'[_P```'=;H>!="0B+1)@T]L1`=6J%VW@B -XMBT7PA@\8$ -XMB37H8PD(BQZ%VW6ABP>%P'04@\0,B?A;7E]=PXD<).A-B?W_ZZ0Q_X/$#(GX -XM6UY?7<.)^NEP____C58$QP8`````B17H8PD(Z\*+/7P@"0CKP(UV`%6)Y5=6 -XM4X/L3(M="(MU%(D<).BI@@$`QT0D!#`J"`B)1B-!(4(````B00DZ`H7`0#'1"0$,"H("(G'B00DZ*@+_O^+17UW#.P5\(`D(=-XQR8/^ -XM`0^4P;J@I`L(Z`;Z__^Z!````,=%U`$```"%P(E%T'44Z:8"```[!7P@"0B- -XM5@1TJ8-%U`$QP(G6C1P7Z!/^__^+3=2%P(D$CW7;BPU\(`D(A8"C1PWZ0_____'1=@`````BTL$]\$```!`B4W< -XM#X79`@``@?G_````#X=O`@``H>!="0B+5=R+1)`T]L0@#X2X`@``H8"8"@B# -XMPPC'1"0,Z;T(",=$)`@#````QT0D!!L```")!"3H;6C^_XM-U(U5\(D4)(GZ -XMB40D"(M%W(E$)`2)V.BP^/__QT0D!#`J"`B)PXM%\(D$).B+"?[_BT7PBPB% -XMR0^$EP(``*&`F`H(QT0D#%+K"`C'1"0(!0```,=$)`0;````B00DZ`EH_O^+ -XM3=R)^HE,)`2+3=2)1"0(C47LB00DB=CH3/C__\=$)`0P*@@(B<.+1>R)!"3H -XM)PG^_XL3A=(/A((!```QP(M-&#E5W`^5P(/H`0G"B1&#?<0M=FWH'(?]_X-] -XMU`''1=@@)0D(#X;7_O__BU0^^(E5V.G+_O__@WW4`L=%V"`E"0@/AKK^__^+ -XM1#[TB478Z:[^__^+1=3'1=@@)0D(A<`/A)S^__^+3#[\B4W8Z9#^__^+5QC"0B+=>R%P'02B00DZ(82`0#'!>QC"0@`````BP8E____OX/H)(/X -XM5`^&9P$``(DT)+O_#P``Z+R``0#'!"1]````B40D!.C")!"3HSVS__SG##XX]____Z>7\__^)!"3HNFS__SG##Y3`#[;`Z1O___^+ -XM2`2%R0^%QO[__^D3____H8"8"@B^_P\``,=$)`R6X0@(QT0D"`(```#'1"0$ -XM&P```(D$).BS9?[_BTWP`^V -XMP.E@_O___R2%$.,("*&`F`H(QT0D#`>]"`C'1"0(!````,=$)`0;````B00D -XMZ`9E_O_KF(-]R&,/A3#^__^+30S!X`(!`8GVZ2'^__^[$0```(M&!"7___^_ -XM#X1<_O__@_@Z#X4V_O__C48(B00DZ-1\`0"+31"C[&,)"(D!B00DZ,($___I -XM,?[__[L"````Z\"[!P```)#KN+L2````Z[&["@```(GVZZ@QV^NDNPX```"0 -XMC70F`.N8NQ````#KD;L3````B?;KB+L$````ZX&["P```(GVZ77___^[!0`` -XM`.EK____NP$```#I8?___[L,````B?;I5?___[L)````Z4O___^)-"3H.7P! -XM`,=$)`1@````H^QC"0B#P`2)!"3HG8;]_X7`=`?'0`0`````H>AV"@B%P'4_ -XMH;1V"@C'1"0$`````(D$).BH"___HQC"0B[_P\``,=$)`0"````B00DZ,2Q_O^% -XMP(G�>_?__H>QC"0AFNPT`B00DZ%D/`0#'!>QC"0@`````B30DZ(=[`0"+ -XM51"C[&,)"(D"B30DZ#4/`0#IY/S__[L(````Z7#^__^[$A```)#I9?[__[L/ -XM````Z5O^__^[!!```.E1_O__NP40``")]NE%_O__NP$0``#I._[__XU&!(D$ -XM).@F>P$`BTT0H^QC"0B)PXD!QT0D!"D```")!"3HAH7]_X7`=`;'``````") -XM'"2[#0```.CS`O__Z6+\__^-1@2[!@```(D$).C>>@$`BU40H^QC"0B)`HD$ -XM).C,`O__Z3O\__^0D)"0D)"058GE5U93B<.#[!R+,*%P80D(C7WPQP5P80D( -XM`0```,=$)`30.`8(B3PDB47PZ,X#_O^+6P2%VW0:C;0F``````^^!H/&`8D$ -XM).@B'___@^L!=>V)/"3H!0/^_X/$'%M>7UW#C;8`````C;PG`````%6)Y5=6 -XM4X/L+(M%"(M]$(E%Y(M%#(E%X*'T8PD(A<`/A#L!``"AP)@*"(7`#X10`0`` -XMH>AV"@B%P`^%$@$``(LU_)D+"(7V#X03`0``C78`BT7DB00DZ!5\`0`#1>"# -XM_SJ)1>P/A',!``"#_S['1>A()0D(#X2&````,!R[8E4)`B+`XE$)`2+1>PI -XMT(D$).AM?_W_A+B8)@D(Z$[^ -XM__^)?0B#Q"Q;7E]=Z5\?__^A;)D+"(7`#X7R_O__B?:+1>3'!"22N0@(B40D -XM!.AM6@$`B7T(@\0L6UY?7>DN'___BQWH=@H(A=MT%(L-?)@*"(7)=,KIM?[_ -XM_Y"-="8`BQ7@=0D(A=)TMNFA_O__D+AH)@D(Z-;]__^X."8)".C,_?__N(`F -XM"0CHPOW__XE]"(/$+%M>7UWITQ[__\=%Z"`F"0CI%____XT$28/Y%(T$Q4@E -XM"0B)1>@/A0'____IJ_[__XVV`````(V_`````%6)Y5>)QU93@^PLBW4(B57@ -XMBQ^)3=R+$HE5\(L"A<`/A(,````E__\_`#GP='J#^#IU->MS@_A>=#.#P@2) -XM5?")1"0$B1PDZ*1X`0"+5?"-#!B+`H7`="DE__\_`#GP=""#^#IT&XG+@_A< -XM=`!``!U -XMW87VQP4`9`D(`````,<%^&,)"`````#'!?QC"0@`````#X32`0``B30DNQ`` -XM``#H]GW]_XEU\(L6A=*)Q[@0````="V)\;,!C;8`````@>+__S\`,<"#^CH/ -XME,"#P02)3?"+$0'#A=)UY(G8P>`$B<,!^(D$).AC"P$`B77PQP7\8PD(```` -XM`(T4&(D5`&0)"(E5[(E%Z*/X8PD(Z$W\_?_'!"0`F@L(B46LH2R:"PB)1=RA -XM*)H+"(E%V*$DF@L(B474H2":"PB)1="A')H+"(E%S*$8F@L(B47(H12:"PB) -XM1<2A$)H+"(E%P*$,F@L(B46\H0B:"PB)1;BA!)H+"(E%M*$`F@L(B46PZ(I] -XM_?^%P'5IBU7PBS*%]G1@B?.!X___/P"#^RH/A-X```"#^SH/A,H```"+0@2% -XMP(E%J'01BT(()?__/P"#^#T/A"N[D(UT)@`E__\_`(/X.G2L -XM@\($B57PBP*%P'7JBU7PBS*%]G6@BT6LB00DZ!;^_?^+1=RC+)H+"(M%V*,H -XMF@L(BT74HR2:"PB+1="C()H+"(M%S*,@K!?AC -XM"0C!^`2C_&,)"(/$7%M>7UW#C4($B47PZ0C___^+3>B-0@2)1?"-5?"-1>S' -XM!"0]````Z.?\__^%P'0*BT7HBT`$A``````)?__/P")1:3K#8-%X`&#QQB#?>`4=$"+CT0E"0@/ -XMO@$YPW7F#[Y!`3M%I'7=C4(,B47PBT7@C57PQP0D.@```(T,0(T,S4@E"0B- -XM1>SH-_S__^DX_O__BT6HB70D!,<$)(8```")1"0(Z*OZ_?_I/?___XVV```` -XM`%6)Y5=64X/L#,=$)`3$F`H(QP0D:$P)".AS9/__A<")QP^$J0```(L`A<`/ -XMA)\```"+`(7`='F+`(7`='/'!?!C"0@`````QP7T8PD(`````(L'BQB%VW1K -XMO@0```#K%L<%\&,)"`$```"+!XL<,(/&!(7;=$['1"0$R$P)"(D<).CV>?W_ -XMA7UW#D)"0D%6%P(GE=1''!7!W"@C`JPL(HSB:"PA=PX/X`77Y -XMQP5P=PH(P*0+"*,XF@L(Z^B)]E6+#31W"@B)Y5.+70C!XP*-!`L[!;"8"@AS -XM,3L-5)D+"'8CB<*+`8/I!(D"H529"PB#Z@0YR';MBQ50F0L(A=)T!#G"=PD! -XM'31W"@A;7<.-!!.C4)D+".OMC;0F`````(L5-'<*"%6+#529"PB)Y593BUT( -XMB=`IR,'X`CG8?@*)V(7`?E^+'7<,YRL<%/)H+"`(```"C0'<*"(D- -XMD'<*"'(WB7<.--)4`````B=@I\#L%-'<*",<%/)H+"`(```") -XM%4!W"@BCD'<*"'>GB<(QR8T575HG64XG#@^P$B4WPC4@$ -XMBT`$@_A>=#N#^"2_`0```'1!C5#0,<"#^@EW%)"#P02-!("-!$*+$8/J,(/Z -XM"7;MA?]X-8D&@\0$@^D$6XG(7E]=P\<"`0```(/$!(G(6UY?7<.#>P@M=!G' -XM`O___W^#Q`2)R%M>7UW#BU7P*<*)T.O"BT,,C4L,O______KDXVT)@````"- -XMO"<`````58GEBU4(A=)^#XT$E0!V"0@[!529"PAV!UW#D(UT)@!=Z3K^__^- -XM=@"-O"<`````58GEBU4(@^)_@_I_=S+V!)6]40D(!'0HH41W"@B%P'0FH7QW -XM"@@]0$(/`'\3C02`78U$0M"C?'<*"+@,````PUVX9````,-=C4+0HWQW"@BX -XM#````,<%1'<*"`$```##H9QW"@A5B>6#^`%^!:.HF`H(H31W"@B-4`3'``H` -XM``")%31W"@C'0`0`````N`$```!=PXVV`````(V_`````*$T=PH(58GEQP`` -XM````N`,```!=PXUT)@"-O"<`````H31W"@A5B>7'``````"X%````%W#C70F -XM`(V\)P````"A-'<*"%6)Y<<``````+@3````7<.-="8`C;PG`````*$T=PH( -XM58GEQP``````N!(```!=PXUT)@"-O"<`````H529"PB+%31W"@A5B>4YT',( -XM@\`$HU29"PC'`@````"X`P```%W#B?:-O"<`````H31W"@A5B>7'``````"X -XM"@```%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@-````7<.-="8`C;PG -XM`````*$T=PH(58GEQP``````N`8```!=PXUT)@"-O"<`````H31W"@A5B>7' -XM``````"X$````%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@5````7<.- -XM="8`C;PG`````*$T=PH(58GEQP``````N`\```!=PXUT)@"-O"<`````58GE -XM@^P$BQ4H)PD(A=)T%*%4F0L(BPU\=PH(*=#!^`(YR'T,R;AD````PY"-="8` -XMB0PDZ.C[__^X#@```,G#D%6X9````(GE@^P$@3U4F0L(`'8)"'<)R<.-M"8` -XM````H7QW"@B)!"3HL_O__[@.````R<.-M@````"-OP````!5B>6#[`2A5)D+ -XM"#L%-'<*"'0MH7QW"@B)!"3HD/K__XL5-'<*"+@.````.154F0L(=@:)%529 -XM"PC)PY"-="8`BQ7(F0L(A=)T%CT`=@D(=`^#Z`2C5)D+".NXD(UT)@#)N&0` -XM``##B?:-O"<`````BPU4F0L(58GE@?D`=@D(="^A-'<*"#T$=@D(=",YP7,) -XM@\$$B0U4F0L(BT'\BU'XB4'XN`X```")4?Q=PXUV`%VX9````,.)]HV\)P`` -XM``"+#529"PBX9````%6)Y8'Y!'8)"'81BT'\BU'XB4'XN`X```")4?Q=PXVT -XM)@````!5B>6#[`R#/0QD"0@!B7PD"(G'B1PDB70D!'0DH529"PB)/0QD"0BC -XM$&0)"+@,````BQPDBW0D!(M\)`B)[%W#BS4T=PH(QP4,9`D(`````,<%$&0) -XM"`````#'!4!W"@@`````@?X`=@D(=BJY`'8)"#';,=*+!)4`=@D(@\$$@\,! -XMB025()D*"(/"`3GQ4]0$(/`'\4P>`"L@S'!41W"@@!````HWQW"@A= -XMB=##C70F`%6X#````(GE7<<%$'8*"`$```##C;8`````C;\`````53'`B>7H -XM]O?__Z%4F0L(7<<%`)D*"`(```#'!3R:"P@$````HY!W"@@QP,<%0'<*"``` -XM``##C78`C;PG`````%4QP(GEZ+;W__^A5)D+"%W'!0"9"@@!````QP4\F@L( -XM!````*.0=PH(,<#'!4!W"@@`````PXUV`(V\)P````!5B>6#[`2A?'<*"(D$ -XM).C]]___,<#H9O?__[@.````RA&]___ -XMH529"PA=QP4\F@L(`0```*,H)PD(HY!W"@@QP,.)]HV\)P````!5,<")Y5W# -XMB?:-O"<`````,<"#/0"9"@@`58GE70^4P*,`F0H(,<##D(VT)@````!5,<") -XMY5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P````!5 -XM,<")Y5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P`` -XM``!5N`,```")Y>A3_?__70^^P,.-M"8`````C;PG`````%6X`0```(GEZ#/] -XM__]=#[[`PXVT)@````"-O"<`````58GE5U93@^P$H3R:"PB#^`(/A($```!_ -XM%X/H`0^$SP```+AD````@\0$6UY?7<.0@_@##X2X````@_@$=>2A0'<*"(7` -XM#X0\`0``BQV0=PH(B=XK-31W"@B)'529"PC!_@(YQ@^,%@$``(7V?ATQR8L4 -XMC2"9"@B+!(N)!(T@F0H(B12+@\$!.?%UY8/$!+@.````6UY?7<.A0'<*"(7` -XM#X3B````BQV0=PH(B00DB1U4F0L(Z,?U__^+#4!W"@B%R7X7,=*+!)4@F0H( -XMB023@\(!.15`=PH(?^O'!3R:"P@!````@\0$N`X```!;7E]=PXLU0'<*"(/^ -XM``^$AP```(L]D'<*"(G[?AF)^C')B?:+`H/"!(D$C2"9"@B#P0$Y\77MBQ4T -XM=PH(.==V">LED(LU0'<*"(L$LXD#BQ4T=PH(@\,$.=ISZ(LU0'<*"(L]D'<* -XM"(T$M0`````IPK@.````B3U4F0L(B14T=PH(QP4\F@L(`@```(/$!%M>7UW# -XMB<;IX_[__S'`Z9G^__^)]E6X9````(GE7<.-M@````!5N&0```")Y5W#C;8` -XM````5;AD````B>5=PXVV`````%6X9````(GE7<.-M@````!5N&0```")Y5W# -XMC;8`````5;AD````B>5=PXVV`````%6)Y8/L",=$)`0`=@D(QP0D\)D+",<% -XM])D+"`````#H+&8!`,<$)/"9"PCH$&0!`*$T=PH(Q@4D=PH(`2T`=@D(P?@" -XMH^B9"PBA5)D+""T`=@D(P?@"HS!W"@BAG'<*"*.HF`H(R<.)]HV\)P````!5 -XMB>6#[`CHA?___Z$T=PH(QP6HF`H(`````(U0!,<`"@```(D5-'<*",=`!``` -XM``"X`0```,G#B?:-O"<`````58GE@^P(H529"P@[!31W"@AT+:%\=PH(B00D -XMZ"#T__^+%31W"@BX#@```#D55)D+"'8&B154F0L(R<.0C70F`.C;DP``H31W -XM"@C'``````"X!````,G#B?:-O"<`````58GE@^P(Z.7^___'!9QW"@@````` -XMZ*:3``"A-'<*",<``````+@+````R<.-="8`58GE@^P(Z(63``"A-'<*",<` -XM`````+@%````R<.-=@!5B>6#[`CH99,``*$T=PH(QP``````N!$```#)PXUV -XM`%6)Y8/L".A%DP``H31W"@C'``````"X!````,G#C78`58GE@^P(Z"63``"A -XM-'<*",<``````+@)````R<.-=@!5B>6#[`CH!9,``*$T=PH(QP``````N`(` -XM``#)PXUV`%4QP(GE@^P(Z'/R__^A-'<*",<%/)H+"`$```"C5)D+"*,H)PD( -XMHY!W"@CHL*8``#'`R<.-M@````"-OP````!5,<")Y8/L".@S\O__H529"PB+ -XM%31W"@@YT',6@\`$.<*C5)D+"'(HZ'.F``"A5)D+"*,H)PD(HY!W"@@QP,<% -XM/)H+"`$```#)PXVV`````(D55)D+".O0D(VT)@````!5B>6#[`C'!529"P@` -XM=@D(QP4H)PD(`'8)",<%D'<*"`!V"0C'!3R:"P@!````Z`VF```QP.BF\?__ -XM,<#)PXGV58GE@^P(H5"9"PB+%529"PBC5)D+"(D54)D+".C?I0``,<#)PXUT -XM)@"-O"<`````58GE@^P(BQ60=PH(H529"PC'!2@G"0@`````QP4,9`D(```` -XM`,<%$&0)"``````YPL<%1'<*"`````!V*"G"P?H"B15`=PH(N`$```#'!0"9 -XM"@@`````Z!3Q___H;Z4``#'`R<,IT,'X`J-`=PH(Z]?K#9"0D)"0D)"0D)"0 -XMD)!5B>53@^P$]@4,9`D(`G5ABQ409`D(QP4,9`D(`````(72=#:A5)D+",<% -XM/)H+"`(````YPG))=R?'!"0!````NP$```#H-O'__Z%4F0L(B1U`=PH(HY!W -XM"@B#Q`1;7<.)TRG#P?L"B1PDZ!'Q___KV3'`Z'CP___KEHVV`````(G#*=/! -XM^P*)'"3HX?'__^B\I```Z[2-=@"-O"<`````58GE5HG6BQ4T=PH(4XG#H529 -XM"PB#[@&#_O]T%CD8=`@YT'/P.1AT[(/`!)"-="8`Z^XYPKYD````=B53B<.#[`2A5)D+"(GV -XM@^H!@_K_=!HY&'0/C70F`#T`=@D(=NDY&'3E@^@$B?;K[CT`=@D(<@IU$SD= -XM`'8)"'0+N&0```"#Q`1;7<,Y&'0F]@4,9`D(`:-4F0L(="*#P`2C5)D+".CC -XM_?__@\0$N`X```!;7<.%R736@\`$D.O0Z!FC```QP.N]D(UT)@!5NF0```") -XMY8/L"*$$9`D(A6#[`B+#529"PB+ -XM%31W"@@YT7,TH7QW"@B-!($YPJ-4F0L(6#[`B+ -XM%529"PB!^@!V"0AV/XL-?'<*"(G0+0!V"0C!^`(YR'PSC02-`````"G"H6#[`BA-'<*"*-4F0L(HB00DZ$YE_?_VQ$!UVO8%#&0)"`%T$>B/^O__ -XM@\00N`X```!;7EW#Z,Z?``"#Q!`QP%M>7<.0C70F`%6)Y5>)UU93@^PS_#X2-````.?YR&.OLC70F`(-^_%QT6(/&!#GW -XMD(UT)@!VUHL>BT4(B5PD!(D$).CI:/W_A575HG&4X/L'(M]"(E5[(E-Z(-MZ`&# -XM?>C_#X2'````BUWL.=YW&>F,````B?:#>_Q<=!Z#PP0YWI"-="8`=GB+`XD\ -XM)(E$)`3HO&?]_X7`==R)7?"+1?"Y`0```(GRB3PD@^@$Z&3^__^-6`0YWG,/ -XMZR.#>_Q<=!F#PP0YWG(6BP.)/"2)1"0$Z'QG_?^%P'7A.=YWO(-MZ`&#?>C_ -XMBW7P#X5Y____BT7L.?!S`HGP@\0<6UY?7<.)WNE3____ZPV0D)"0D)"0D)"0 -XMD)"05;AD````B>53@^P$BQU4F0L(@?L`=@D(=#&+#7QW"@BZ`'8)"(G8QP0D -XM,$T)".C]_O__]@4,9`D(`:-4F0L(=!#H*OC__[@.````@\0$6UW#Z&J=```Q -XMP.OQC;8`````58GE@^P8Z&6)``"-10B)1"0(QT0D!&5T`""AM'8*"(D$).CU -XM8OW_AH5"9"P@[!529"PAT$>BGAP``Z"*(``")]N@;F```H529 -XM"PC&!575E.#[`RAN)@*"(7`#X06`0``BPTXF0L( -XM*PU\=PH(A/>)#3B9"PB)RHG#P?H?BZ/__BQU4F0L(B30DZ`#G__^+%3B9"PBA*)D+"(L$T(L0 -XMA=)T#XD3BU`$@\,$@\`$A=)U\87_=&.A5)D+"(D=5)D+"*-0F0L(QT0D!,28 -XM"@C'!"0@20D(Z"5*__^%P'0)@#W,F0L(`'5'Q@7,F0L(`(/$#+@.````6UY? -XM7<.#Q`RX9````%M>7UW#B=._`0```"G#P?L"Z23___^)'5"9"PCKI8D<).C& -XMYO__Z5/___^0Z)N%``#H%H8``.NLC70F`%6)Y5.#[!2+#;B8"@B%R74/@\04 -XMN&0```!;7<.-="8`BQ4XF0L(H2B9"PB+!-")!"3H)F#]_XG"C02%``````,% -XM-'<*"#L%L)@*"'/$B10DBQU4F0L(Z/7E__^+%3B9"PBA*)D+"(L$T(L0A=)T -XM$)")$XM0!(/#!(/`!(72=?&#/7QW"@@!=#F)'5"9"PC'1"0$Q)@*",<$)"!) -XM"0CH'DG__X7`=`F`/6#[!B)7?B+'3!D"0B)=?R)QJ$T9`D(B70D -XM!(D<)(E$)`CH@V#]_[H!````A7UW#@\0,N&0```!; -XM7E]=PXL=5)D+"('[`'8)"',=Z^.)="0$B1PDZ*"3_O^%P'7#@^L$@?L`=@D( -XMNBC70F`(V\)P````!5B>564X/L$(LU -XM?'<*"(7V#XZ,````H1QW"@B%P`^$?P```(M(!(M1!(72='6+6`BX_____SG9 -XM=!,QP)"-="8`@\`!.<9_/H/H`8G1B40D",=$)`0`````BT$$B00DZ!TG`0") -XMPXD$).@#_O__A7<.#Q!"X9````%M>7<.)]E6)Y5=64X/L3(L=5)D+ -XM"(/K!('[`'8)"'8XBP.#^"!T,X/X"70NBQ6,F`H(.=")5;QU%.LWBP.#^"!T -XM&(/X"9!T$CM%O'0E@^L$@?L`=@D(=^.+`SD%C)@*"'0-Z'^2``"#Q$Q;7E]= -XMPXE%O(US!(EUX(M3!(/Z(`^$Z0$``(/Z"0^$X`$``(/X((G"="B#^`D/A`\% -XM``"!^P!V"0@/AA,"``"#ZP2+$X/Z(`^$!0(``(/Z"77AH529"PB)1<`Y5;QT -XM$CL=5)D+"',*@\,$BQ,Y5;QU[HU#_#T`=@D(#X+A`0``@WO\7`^%UP$``(U3 -XM^+D!````ZPJ+`H/J!(/X7'4+@\$!@?H`=@D(<^OVP0%U`X/#!#M=P`^#/___ -XM_XG*P>H?C001@^`!*="#Z`%UGXL5''<*"(72B570#X0;`0``BST$F0H(B=XQ -XMTH/'`8E]N(U&!(E%V(M&!(/X*@^$@P$``(/X7@^$R`(``(/X)`^$9`(``(72 -XM#X4,!0``@_@ZBWW8#X0*!```.46\#X2%`P``@_@@#X0J!```@_@)C78`#X0> -XM!```@_@Z#X05!```.WW`#X,,!```,#^"!T,(/X"70K@_@Z="8Y?#^"!UT(M5S(/O!(72#X6>`@``B?@I\(G&BT70P?X"A8``.@TH```B5W'+3@2)]XU!T(/X"78+@_DM=`:)^(GWZSZ#^20/A9$!``")^(GW@W@( -XM+71WN@$```")_NGM^___@_DM#X1K`0``@_DJD'0.@_DD=`F#^5X/A3$!``") -XM^(/Y)'3*@_E>=")1<#I^OK__X/O!#')Z?O^__^+4`R#^B\/CGW___^# -XM^CD/CW3___^+=="+5@2%T@^$:OS__XM2!(MV"#GR#X1<_/__,?^+4@2#QP$Y -XM\G7VA?\/A$C\__^#^2T/A?H```#'1?``````C5`$B578BU`$@_HM#X3````` -XM@_HJ#X2G````BU7PB478B57LA=(/B`S\__^+1>PYP@^/`?S__XM]T(E$)`B) -XM5"0$B3PDZ&,@`0"+==B#Q@2)1S___]_D.E2____BW78BU8$C4+0@_@)=B*#^B1T'8M5\(U'_XE%[.DQ____ -XMB?F-5?#H4-[__^G^_O__BT78C57LB?GH/M[__XM5\(E%V.D*____C78`58GE -XM@^P(H31W"@C'``````#HJOC__S'`R<.-M@````!5B>575E.#["RA8&0)"(7` -XMB47@#X6"````H;1V"@B-?>['1"0(`0```,=$)`0!N@@(B00DZ%?7_O^+10B) -XM/"0E__\_`(E$)`3H4T\!`(7`B<9T)3';C00?@\,!B40D"*&T=@H(QT0D!')T -XM`8")!"3H.%7]_SGS==V+3>"%R70&D.C;60``BT4(B00DZ'#R__^#Q"Q;7E]= -XM#[[`P^C`6```Z73___^-="8`C;PG`````%6)Y8/L".@EG```Z,!Z``"X#@`` -XM`,G#B?:-O"<`````58GE@^P(QP0D`````.BN50``N`X```#)PXVT)@````!5 -XMB>575E.#[`R+?0B%_P^$U0```(L=?'<*"(T$G0`````#!31W"@@[!;"8"@@/ -XM@[8```"#^P$/A+H```"+-0"9"@B%]G1-A=L/CCP!``"+-529"P@QR8L50'<* -XM"(UT)@"+!(Z#P0&)!)4@F0H(@\(!.=F)%4!W"@AUYHD<),<$E2"9"@@````` -XMZ*/:__^+'7QW"@B)'"3H-=K__Z%\=PH(@^@!@_C_HWQW"@AT)(G"D*%4F0L( -XM@^H!B3B#P`2#^O^C5)D+"'7IQP5\=PH(_____^BZB0``,<"#/0"9"@@"=%J# -XMQ`Q;7E]=PX/$#+AD````6UY?7<.A`)D*"(7`=5+'!"0!````Z,79__^A5)D+ -XM"(DX@\`$HU29"PC'!41W"@@`````QP0D`0```.@@C```,<"#/0"9"@@"=:;' -XM!"0`````Z.GG__^#Q`PQP%M>7UW#BQ54F0L(H4!W"@B+$L<$)`$```")%(4@ -XMF0H(C5`!B15`=PH(QP25()D*"`````#HJ]G__^EU____BQ5`=PH(Z>7^__^- -XM="8`C;PG`````%6)Y8/L"*$T=PH(QP``````Z/KU___'!"0@````Z#[^___) -XM#[[`PXGVC;PG`````%6)Y5.#["3HI%0``(U%"(D$),=$)`2P2@<(Z%'5_?^- -XM1?B)!"3H1F```(G#C44(B00DZ)G4_?^#ZP%T%<<$)`````#HZ.7__X/$)%M= -XM#[[`PXM%^(D$).C4_?__@\0D6UT/OL##C70F`(V\)P````!5B>5=Z>=3``"- -XMM"8`````58GE5U93@^P\BPVXF`H(B578*<+!^@*)1=R%R8E5U`^.:`$``,=$ -XM)`3$F`H(QP0DX$D)".@7//__/?AO"0B)PP^$R````*&XF`H(QT0D!(!#"0B) -XM'"2)P@,5/)D+"(E%T(U"_XG"P?H?]WW0B14XF0L(B=>)UNAA4?W_A<`/A30! -XM``"+5="%T@^.B````*$HF0L(BU74QT7L`````(E%S(M%T,'B`HE5Y(/H`8E% -XMR.L/BT7(`?")PL'Z'_=]T(G6BU7,C1SU`````(T\$XM5U(L'B50D"(E%X(M% -XMW(M5X(E$)`2)%"3H45/]_X7`=1&+1>"+5>2+!!"%P`^$*`$``(-%[`&+1=`Y -XM1>QUI>L(H;B8"@B)1="+==2+%3R9"PB+#;QV"@B#Q@$Y3=")%3B9"PA]"XM% -XMT(/``:.XF`H(C1S5`````(/"`8G0P?H?]_D#'2B9"PB)%3R9"P@[GN_O__BT7LBW\$A<")?>A_#>LZBQ4HF0L(B?Z)5____ -XM,<#H%]3__[@.````R<-5N`!V"0B)Y8/L"(L55)D+".BJ^___H529"P@M`'8) -XM",'X`HD$).AEU?__BQ50F0L(A=)T%J%4F0L(.<)V#2T`=@D(*<*)%5"9"PC) -XMN`X```##C;0F`````(V\)P````!5B>6#[`BA5)D+"(L5-'<*".A*^___H529 -XM"P@[!5"9"PBC-'<*"',%HU"9"PC&!6#[`BA5)D+"#L%-'<*"'0= -XMZ*AS``"A-'<*",<``````+@$````R<.-M@`````]`'8)"'76#[`BA5)D+"#L% -XM-'<*"'0MH7QW"@B)!"3H8-/__XL5-'<*"+@.````.154F0L(=@:)%529"PC) -XMPY"-="8`/0!V"0AT%^@4C^_[@"````R<.)]E6)Y8/L"*%4F0L(.P4T=PH(="VA -XM?'<*"(D$).C@TO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+",G#D(UT)@"+ -XM%/__QP58F0L(`0```,<$)`!V"0CHNSX!`#T`=@D(HS1W"@AV(8-X -XM_`H/A(8```"A-'<*"(-X_"!T<8$]-'<*"`!V"0AR6:$T=PH(HU29"PB#Q!2X -XM#@```%M=PX/$%+AD````6UW#B10DZ#85`0#'1"0(`$```,<$)`!V"0B)PXE$ -XM)`3H7'C__XD<).@DUP``QP58F0L(`````.EN____QP4T=PH(`'8)".N;@^@$ -XMHS1W"@CKA8/H!*,T=PH(Z6W___^)]E6)Y5.#[!2+#9QW"@B%R75&H9B8"@B% -XMP`^$#`$``,=$)`@`0```B40D!,<$)`!V"0CHZG?__Z&/P*#X2#````@3TT=PH(`'8) -XM"',*QP4T=PH(`'8)"*$T=PH(HU29"PB#Q!2X#@```%M=PZ.<=PH(@\04N&0` -XM``!;7+!#.%P'01B?#H -XMV>C__X7`=`:+1>R)1?"A#&$)"(7`#X2(````BW\<@T7L`8M%[#D%G'<*"'\P -XMBW7PA?9U#J&8F`H(Z)_H__^%P'1PBT7PHYQW"@CH?OW__X/$'%M>7UT/OL## -XMC78`A?]TS(M'&(7`#X51____B3PDZ#D2`0")1QBA#&$)"(7`#X5&____B3PD -XMZ"$2`0#'1"0$,"H("(G&B00DZ)_)_?_I*O___XDT).CRR/W_B?;I:?___X/$ -XM'+AD````6UY?7<.-M"8`````C;PG`````%6)Y5=64X/L'*$T=PH(QP4,9`D( -XM`````,<%/)H+"`````#'``````"#/9QW"@@`#XQ6`0``#X0A`0``BS4<=PH( -XMA?8/A`8!``#HPOK__XL5G'<*",=%\`$```"%TGX:,<"#P`&+=APYT'7V@\(! -XMA?:)5?`/A-8```"+7AB%VW1LBPT,80D(AL`=@D(B=C!^`*)1"0(Z`I(_?^%P'4'BQ0[A=)T8XGXNP$```#H1^?_ -XM_X7`=%.A#&$)"(7`=%6%VW5=BW87UT/OL## -XM@\06#[`B+%31D"0B%TG07,<"#/2`G"0@5#Y3`@\`5Z(?___\/OL#)PXGV -XM5;AD````B>6#[`B+#31D"0B%R74"R<.A("<)".A?____R0^^P,.-=@"-O"<` -XM````58GE5U93@^PLC77DB478C5WPQT7D`````,=%Z`````#'1>P`````QT0D -XM!+"1"`B)-"3HV<;]_\<$)`!V"0CHC3T!`,=$)`0P*@@(B<>)!"3HN\;]_Z$T -XM=PH(B47#'1"0$*@```(DT).A[.0$`BT78QP4`=@D(`````,<% -XM-'<*"`!V"0C'!529"P@`=@D(HR`G"0C'!"0"````Z/G)__^+%529"P@QP,<" -XM"@```(-]V!4/E,"#Z`&#X/"#P#^)0@2#P@B)%529"PCHBGD``,=%\`````"- -XM=@")'"3H*%$``(/H`75:BT7P@_@-#X2N````?VN#^`B)]G1N@_@*#X2<```` -XMB40D!(DT).C9.`$`H529"PB+5?")$(/`!*-4F0L(HS1W"@CH+7D``,=%\``` -XM``")'"3HSE```(/H`72FB30DZ"'%_?_'!"0`````Z'76__^#Q"Q;7E]=#[[` -XMPX/X&W0\@_A_=9N#?>@!#X91`0``H529"PC'``````"#Z`2#;>@!HU29"PBC -XM-'<*".C%>```QT7P`````.DY____A<`/A#'___^)/"3HN<3]_X-]Z`$/A)P` -XM``#'1"0$*@```(DT).@?.`$`B30DZ'3'!31D"0@`````QP0D,&0) -XM"(E$)`3H:CH!`,<$)#!D"0CH3C@!`(DT).AFQ/W_#[9%V(-]V!7'!31W"@@` -XM=@D(QP54F0L(`'8)"*)(F0L(#X2$````QP0D`````.CC^?__/&0/E,"$P'5= -XM@WWP&[@.````#X2P````@\0L6UY?7<.+'31D"0B%VP^%R0```,<%`'8)"``` -XM``#'!31W"@@`=@D(QP54F0L(`'8)".C2=P``B30DZ-K#_?^#Q"RX9````%M> -XM7UW#Z+AW``"#Q"RX9````%M>7UW#QP0D`````.C?^O__/&0/E,#I=____\=$ -XM)`@`0```B7PD!,<$)`!V"0CHW6___XM%W*,T=PH(BT7@B30DHU29"PCH=1''!9QW"@@`````N&0```#)P^AK]O__ -XMR0^^P,.-M@````!5B>6#[`BA-'<*",<%/)H+"`````#'``````"AG'<*"(7` -XM="RA?'<*"`$%G'<*".@L]O__/&1U1.@C]O__C78`Z-MU``"X9````,G#C70F -XM`,<%G)@*"`````#'1"0$`'8)",<$))B8"@CHLC575E.#[!R+?0B%_P^.^@```#L]O'8* -XM"'1"QT0D!`@```")/"3H],P``(E%[*$HF0L(A0/A+P!``"+/029"@@I\\'[`HD] -XM+&0)"(DU(&0)",<%-&0)"`````")7"0(B70D!,<$)#!D"0CH+#0!`,<%*&0) -XM"`````#'!21D"0@`````QT7@`'8)",=%\``````Q_\=%Z`````#'1>P````` -XMZUJ+1>2#!2AD"0@!QP4D9`D(`````(7`#X3@````QT0D"/___W_'1"0$```` -XM`(M-Y(D,).@Q!@$`B47PB00DZ(8P`0"+3?")QHM%Y(M`'(E-X(E%Y(M%[(7` -XM=7O'!"1`30D(BU7@N0$```")\.CHU___.<:)PW2*BQ#WP@```$!U'H'Z_P`` -XM``^'K`$``*'@70D(BT20-/;$0`^%8O___XU#_+D!````B?*#!21D"0@!QP0D -XM0$T)".AMUO__*=C!^`*->`&A-&0)"#G'=TR+1>R)WH7`=(6+%529"PB-!+T` -XM````*Q4@9`D(`P4T=PH(*=`[!;"8"@@/@DD!``"+3?")#"3HH<@``(/$++AD -XM````6UY?7<.-="8`B40D"*$P9`D(B1PDB40D!.A'/?W_AZ0#___^+/029"@@[/2QD"0@/A3C^__\[ -XM-2!D"0@/A2S^__\['1QD"0@/A2#^__^A-&0)"(7`#X03_O__B40D"*$P9`D( -XMB70D!(D$).C5//W_A<`/A?;]__^+%2AD"0C'1>``=@D(QT7P`````(72=$N# -XM^@$/CQ2%T@^$,0$``,=$)`C___]_QT0D!`````"+1>2)!"3H>@0! -XM`(E%\(D$).C/+@$`BTWDBTD2)1>#'!"1`30D(BPTD9`D(B?"+ -XM5>#H-];__XG&Z<;]__^#Q"RX9````%M>7UW#C78`B10DZ`0Z_?_I4/[__\'Z -XM`HD4).A8P___B3PDZ&#`__^%_W0=,6A5)D+"*,<9`D(BT7PB00DZ!K'``"#Q"RX#@```%M>7UW#B10DZ*$Y -XM_?_IT?S__XL5(&0)"*%4F0L(*=#!^`(Y^`^%B/[__XE\)`B)WHE4)`2)'"3H -XMHCO]_X7`#X1Y_?__Z6G^__^+3>2%R8UT)@!T&K`!BTWD@\`!.<*+21R)3>0/ -XMCLC^__^%R77HQT7P`````.GL_?__D(VT)@````!5NF0```")Y5=64X/L#*%4 -XMF0L(BSTT=PH(.?@/A$L!``"+%7QW"@B-<`2AX%T)"(E5[(E%\(-M[`&#?>S_ -XM#X0(`0``.?YR(.FF````C70F`(M5\(M$@C3VQ$!T*(/&!#GW#X:+````BP:I -XM````0'5./?\```!VV8D$).BM./W_]L1`==B+!CW_````=G6)!"3HESC]_^MR -XMBU7PBT2:-/;$0'62@?O_````=S>+5?"+1)HT]L0%#X5Z____@\8$.?!="0B)1>R)5?"#;>P!@WWL_W1E.?YR%>OPBU7PBT2:-/;$0'5`@\8$ -XM.?=VW8L>]\,```!`=>^!^_\```!VVXD<).@\-_W_Z]B+5?"+1)HT]L1`=+6# -XMQ@0Y]W:NBQ[WPP```$!UI('[_P```';;B1PDZ`TW_?^0Z]53B<.#[`2I````0'00@_M?N`,` -XM``!T.X/$!%M=PSW_````=T6AX%T)"(M4F#2`YD"X`0```'7@@_M_=B&!^_\` -XM``!W,:'@70D(BT28-/;$`72[@\0$N`(```!;757B==6B<93@^P< -XMHB%P`^%_````*'@70D(BQ5,=PH(B47PB57L@VWH`8-]Z/\/A!4! -XM```Y_G([Z^R+5?"+1)HT]L0!#X6$````@_M_=PKV!)V]40D(!'5UB5PD!(M% -XM[(D$).C<.?W_A]\,```!`==2!^_\```!VL8D<).@^-?W_ -XMB?;KK(/K`74>B?:-O"<`````ZQ>+!NAG_O__@^@!C70F`'4'@\8$.?=WZ8-M -XMZ`&#?>C_=",Y_G,?BP;H0O[__XG#ZPN+!N@W_O__.<-UM8/&!#GW=^[KK(U& -XM_(/$'%M>7UW#.?>)^';R@\0C#R?__N`X```"#Q`1;7<.#P`2C5)D+ -XM"*'(F0L(A53@^P$ -XMBQU4F0L(BQ4T=PH(.=-T+HL-?'<*"(G8Z.?]__^C5)D+"*'(F0L(A53@^P$BQU4F0L(BQ4T=PH(.=-T18L-?'<*"(G8Z(?]__^)PHG#H529"PCH -XMF>'__RL=5)D+",'[`HD<).AHNO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+ -XM"(/$!%M=PXGVC;PG`````%6)Y5=64X/L/(L5)"<)"(E%S*%4F0L(B574BQ4T -XM9`D(B470H9QW"@B)5>")1=BA-'<*"(/`&(T$D#L%L)@*"`^#8@0``(G0,=N+ -XM=@,``*$T=PH(QP`*````@\`$@_X5HS1W"@BXI.8("'0%N+3F"`B+ -XM$(72=!V)P8GVH31W"@B)$(/`!*,T=PH(BU$$@\$$A=)UYZ$T=PH(BQ4D)PD( -XMB1"#P`2+#3!D"0BC-'<*"*$T9`D(C5$$C02!.<)S+(/!"(M1_*$T=PH(B1"# -XMP`2)RJ,T=PH(H31D"0B#P03!X`(#!3!D"0@YPG+7H31W"@C'``````#'1"0$ -XMQ)@*",<$)"!)"0CH0AS__X7`=`V#/20G"0@Z#X1L`P``Z'QH``"-1?")!"3H -XM(4```(/H`0^%:@4``(M-\('Y``$``']#H7!W"@@/MM$/M@0"/!MT,P^'O`(` -XM`#P"="D\!)`/A<@"```Q_X,]-&0)"`''1=P!````=UKHTW@``,=%W`````#K -XM3*$T=PH(@\`$.P6PF`H(#X-7`@``B4PD!#'_QP0D,&0)".B$)P$`H31W"@B+ -XM5?")$(U0!(D5-'<*",=`!`````#HU6<``,=%W`````"A-'<*"#T`=@D(=Q?K -XM&L<``````(/H!#T`=@D(HS1W"@AV!8,X"G7FQP``````BTWV)1?"#^P$/AKH```"#??!;#X2P````A?]T"3EUS`^$T````,=$)`0J```` -XMQP0D,&0)".B^)@$`QP0D,&0)".@2)P$`H529"P@]`'8)"'(,.P4T=PH(#X:F -XM`@``B?"#_A6B2)D+"`^$)`(``,<$)`````#HKNC__SQD#X0D`@``@_X5N`!V -XM"0@/A&H"``"C5)D+"*$P9`D(B?*#P`3H9-+__XL5-&0)"*$P9`D(@^H!B14T -XM9`D(QP20`````,<%)"<)"#H```")\.CX_/__/&2)PW1'A-MT7(#[9`^4P(M5 -XMX(72#X3B````#[[#@\0\6UY?7<.#/20G"0@_#X0=`@``,<"#_A4/E<"-!,7\ -XM____`054F0L(Z0G___^#/20G"0@_#X4)`0``@WW4.@^%_P```#';BU74BT7@ -XMB14D)PD(BU78.16<=PH(HS1D"0AT$XD5G'<*".A+YO__/&0/A`H!``"+1="` -XM^V2C5)D+"`^$"`,``(M%W(7`#X5J____A-L/A6+___^A-&0)"(7`#X6&_/__ -XMQT0D!"H```#'!"0P9`D(QP4D)PD(.@```.A$)0$`Z6/\___H6G8``#'_QT7< -XM`````)#IS?W__X3`#X06____C78`Z5G___\\8710#X1,`0``B0T49`D(QP0D%&0)".BH -XM/@``NPX````Q_\=%W`$```#I9_W__[@!````Z:/^__^^%@```+\!````QT7< -XM`````.E'_?__H31D"0B#Z`&CV)D+".B#5```Z/Y4``#I>/S__X/$/+AD```` -XM6UY?7<.^%0```+\!````QT7<`````.D(_?__QP0D`````.@*Z/__/&0/A=S] -XM__^+%31D"0BA,&0)"(/J`8D5-&0)",<$D`````#H4G4``(M5V#D5G'<*"'02 -XMBU78B16<=PH(Z,GD__\\9'2,BT70QP4D)PD(/P```*-4F0L(Z<_]__^A-'<* -XM".F,_?__H3!D"0B)\H/`!.CUS___/&0/A8G]___I/OW__S'`@_X5#Y3`@^@! -XM)?___W^CG'<*".ANY/__/&0/A%4!``"#_A6X`'8)"`^$/0$``*-4F0L(Z53@^P4QP4T -XM9`D(`````,8%S)D+"`#H;OC__\=$)`3$F`H(QP0D($D)"(G#Z*@5__^%P'0) -XMH=B9"PB%P'43#[[#QP78F0L(`````(/$%%M=P\<%V)D+"`````#H25$``.C$ -XM40``Z+]A``#KTHVV`````(V\)P````!5B>57B==64X/L'(UP_*'(F0L(B4WH -XMA<`/A=D```"AX%T)"(L53'<*"(E%\(E5[(-MZ`&#?>C_#X0@`0``.?YS.^OL -XMBU7PBT2:-/;$`0^%A````(/[?W<*]@2=O5$)"`1U=8E<)`2+1>R)!"3H*R_] -XM_X7`=6*#[@0Y]W>SBQ[WPP```$!UW('[_P```':UB1PDZ.8J_?_KLHM5\(M$ -XMFC3VQ`%U)H/[?W<*]@2=O5$)"`1U%XE<)`2+1>R)!"3HVB[]_X7`#X1E____ -XM@^X$.?)PW?!@^X$.?=WNHL&Z'SS__\YPW3N@VWH`8-]Z/]U -XML(U&!(/$'%M>7UW#C58$B?@YUW/O@\053@^P$BQU4F0L(@?L` -XM=@D(=#.+#7QW"@BZ`'8)"(G8Z.3]__^C5)D+"*'(F0L(A53@^P$H529 -XM"P@]`'8)"'0TBPU\=PH(N@!V"0CHB/W__XL55)D+"(G#Z.O6__^A5)D+""G8 -XMP?@"B00DZ*FP__^Z#@```(/$!(G06UW#C;8`````C;\`````58GE5E.[`'8) -XM"(/L$*$`=@D(J0```$!U,8LUX%T)".L5BT2&-/;$0'0@@\,$BP.I````0'44 -XM/?\```!VY(D$).B'*/W_]L1`=>`['31W"@BX9````'0=@P5P=@H(`8`%B)@* -XM"`''!"0`````Z(_&__\/OL"#Q!!;7EW#D(UT)@!5N&0```")Y8/L&(EU_(LU -XM5)D+"#LU-'<*"(E=^'-GBQ[WPP```$!U1X'[_P```'=_H>!="0B+1)@T9H7` -XM>%&!^_\```!W?:'@70D(BT28-/;$$'0;@?O_````=WBAX%T)"(N$F#0(``#K -XM.9"-="8`C48$HU29"PC'!"0!````Z+Q@```QP(M=^(MU_(GL7<.!^_\```!W -XM(J'@70D(BX28-`0``(D&C48$HU29"PCKR(D<).B4)_W_ZX")'"3HFBG]_^O@ -XMB1PDZ(`G_?^-="8`Z7O___^)'"3H'R[]_XUV`.O"C;0F`````(V\)P````!5 -XMB>575E.#[`R+#7QW"@B+%31W"@BA5)D+".@1\?__BS54F0L(.?")QW9"D(UT -XM)@"+'O?#````0'4L@?O_````=TZAX%T)"(M$F#1FA!= -XM"0B+A)@T!```B0:#Q@0Y]W?#H31W"@B)/529"P@YQW8%HU29"PB#Q`RX#@`` -XM`%M>7UW#B?:)'"3HQ";]_^NQB1PDZ,HH_?_KP(VV`````(V_`````%6)Y5=6 -XM4X/L#(L-?'<*"(L5-'<*"*%4F0L(Z&'P__^+-529"P@Y\(G'#X:G````H>!= -XM"0B)1?#K'HVT)@````"+5?"+1)HT]L0!=2J#Q@0Y]P^&?P```(L>]\,```!` -XM=>N!^_\```!VUXD<).@[)OW_]L0!=-:!^_\````/AZ$```"+5?"+1)HT]L00 -XM#X5[````@\8$.?=V/8L>]\,```!`=>^!^_\```!W3*'@70D(BT28-&:%P'G9 -XM@?O_````=T"AX%T)"(N$F#0$``")!H/&!#GW=\.A-'<*"(D]5)D+"#G'=@6C -XM5)D+"(/$#+@.````6UY?7<.)'"3HK27]_^NSB1PDZ+,G_?^)!NO"@?O_```` -XM=QN+5?"+A)HT"```B0;KK(D<).B!)?W_Z5G___^)'"3H)"S]_XD&ZY.-="8` -XM58GE5U93@^P,BPU\=PH(BQ4T=PH(H529"PCH(>___XLU5)D+"#GPB<=V0I"- -XM="8`BQ[WPP```$!U+('[_P```'=.H>!="0B+1)@T]L00=!:!^_\```!W0J'@ -XM70D(BX28-`@``(D&@\8$.?=WPZ$T=PH(B3U4F0L(.<=V!:-4F0L(@\0,N`X` -XM``!;7E]=PXGVB1PDZ-0D_?_KL8D<).AZ*_W_Z\"0D)"0D)"0D)"0D)!5,<") -XMY5=64X/L+.L1C78`@\`!/0`!```/A(0```"`N,"K"P@>=>F^P*L+"(E%X(U% -XMX+N`````QT7H`````(U][(E%[,=%\`(```"0C70F``^V%#.-0O\\`78M@/HU -XM="B)V(/@?XE%Y`^V!#.)!"3HK)L``,=$)`@`````B3PDB40D!.@8GP``@\,! -XM@?L``0``=;V+1>#&!#`U@\0L6UY?7<-F,<#K"H/``3T``0``=!.`N,"D"P@> -XM=>V^P*0+".EH____BQ7(F0L(N!L```"^P*0+"(72#X50____Z4;____K#9"0 -XMD)"0D)"0D)"0D)!5B>564X/L$(L=8)D+"(7;=5^+#<"E"PB%R755BS7@70D( -XMNX````#K+(VT)@````"+1)XTJ0``!`!T!\:#P*L+"`*#PP&!^_\```!_&O?# -XM````0'7M@?O_````=M.)'"3H9R/]_^O-QP5`9`D(`0```(/$$%M>7<.0C;0F -XM`````%6)Y5.#[#2-1>B)1?3'1?@"````QP7(F0L(`````.B=GP``,=(/MH)` -XM*0D(QH+`I`L(`8B"P*L+"(/"`8'Z``$``'7AZ$?^__^-7?3H+____\=%Z!@` -XM``#'1?``````QT7L&````,<$)"L```#H/IH``(D<),=$)`@`````B40D!.BJ -XMG0``QT7L*@```,<$)$T```#H%YH``(D<),=$)`@`````B40D!.B#G0``QT7L -XM)````,<$)$X```#H\)D``(D<),=$)`@`````B40D!.AYD``(D< -XM),=$)`@`````B40D!.CGG```QT7L3@```,<$)&<```#H5)D``(D<),=$)`@` -XM````B40D!.C`G```QT7L/P```,<$)&\```#H+9D``(D<),=$)`@`````B40D -XM!.B9G```QT7L"0```,<$)&H```#H!ID``(D<),=$)`@`````B40D!.ARG``` -XMQT7L!````,<$)&L```#HWY@``(D<),=$)`@`````B40D!.A+G```Z.9=``#H -XM,7<``(/$-%M=PXUT)@"-O"<`````58GE@^P(H3QD"0B%P'0"RF?=@``ZPV0D)"0D)"0D)"0D)"058GE4S';@^P4C;0F```` -XM`(N#Z*4+"(/##(D$).C_K0``@?O0!0``=>>A@)@*",=$)`S2Y@@(QT0D"`$` -XM``#'1"0$`P```(D$),<%X*4+",3F"`C'!>2E"P@(````Z.X!_O^)!"3H5JO^ -XM_\=$)`S<\0@(QT0D"`(```#'1"0$`P```,<%[*4+".CF"`C'!?"E"P@$```` -XMH^BE"PBA@)@*"(D$).BH`?[_B00DZ!"K_O_'1"0,`/((",=$)`@#````QT0D -XM!`,```#'!?BE"PC]Y@@(QP7\I0L(&0```*/TI0L(H8"8"@B)!"3H8@'^_XD$ -XM).C*JO[_QT0D#$3R"`C'1"0(!````,=$)`0#````QP4$I@L($N<(",<%"*8+ -XM"!T```"C`*8+"*&`F`H(B00DZ!P!_O^)!"3HA*K^_\=$)`R`\@@(QT0D"`4` -XM``#'1"0$`P```,<%$*8+""7G"`C'!12F"P@.````HPRF"PBA@)@*"(D$).C6 -XM`/[_B00DZ#ZJ_O_'1"0,1><(",=$)`@&````QT0D!`,```#'!1RF"P@SYP@( -XMQP4@I@L(!P```*,8I@L(H8"8"@B)!"3HD`#^_XD$).CXJ?[_QT0D#*3R"`C' -XM1"0(!P```,=$)`0#````QP4HI@L(7^<(",<%+*8+"#@```"C)*8+"*&`F`H( -XMB00DZ$H`_O^)!"3HLJG^_\=$)`SD\@@(QT0D"`@```#'1"0$`P```,<%-*8+ -XM"&_G"`C'!3BF"PA0````HS"F"PBA@)@*"(D$).@$`/[_B00DZ&RI_O_'1"0, -XMD^<(",=$)`@)````QT0D!`,```#'!4"F"PA[YP@(QP5$I@L(1````*,\I@L( -XMH8"8"@B)!"3HOO_]_XD$).@FJ?[_QT0D#"CS"`C'1"0("@```,=$)`0#```` -XMQP5,I@L(K.<(",<%4*8+"!````"C2*8+"*&`F`H(B00DZ'C__?^)!"3HX*C^ -XM_\=$)`S'YP@(QT0D"`L```#'1"0$`P```,<%6*8+"+GG"`C'!5RF"P@1```` -XMHU2F"PBA@)@*"(D$).@R__W_B00DZ)JH_O_'1"0,[^<(",=$)`@,````QT0D -XM!`,```#'!62F"PC=YP@(QP5HI@L(;````*-@I@L(H8"8"@B)!"3H[/[]_XD$ -XM).A4J/[_QT0D#!SH"`C'1"0(#0```,=$)`0#````QP5PI@L(">@(",<%=*8+ -XM"&T```"C;*8+"*&`F`H(B00DZ*;^_?^)!"3H#JC^_\=$)`Q4\P@(QT0D"`X` -XM``#'1"0$`P```,<%?*8+"#?H"`C'!8"F"PAJ````HWBF"PBA@)@*"(D$).A@ -XM_OW_B00DZ,BG_O_'1"0,6.@(",=$)`@/````QT0D!`,```#'!8BF"PA)Z`@( -XMQP6,I@L(2P```*.$I@L(H8"8"@B)!"3H&O[]_XD$).B"I_[_QT0D#(SS"`C' -XM1"0($````,=$)`0#````QP64I@L(=.@(",<%F*8+"#(```"CD*8+"*&`F`H( -XMB00DZ-3]_?^)!"3H/*?^_\=$)`R\\P@(QT0D"!$```#'1"0$`P```,<%H*8+ -XM"(CH"`C'!:2F"PAP````HYRF"PBA@)@*"(D$).B._?W_B00DZ/:F_O_'1"0, -XME^@(",=$)`@2````QT0D!`,```#'!:RF"PCQY@@(QP6PI@L(!0```*.HI@L( -XMH8"8"@B)!"3H2/W]_XD$).BPIO[_QT0D#/#S"`C'1"0($P```,=$)`0#```` -XMQP6XI@L(M>@(",<%O*8+"&@```"CM*8+"*&`F`H(B00DZ`+]_?^)!"3H:J;^ -XM_\=$)`PX]`@(QT0D"!0```#'1"0$`P```,<%Q*8+",CH"`C'!I?[_QT0D#,3T"`C'1"0(%@```,=$)`0#````QP7RF"P@;````H^2F"PBA@)@*"(D$).CJ -XM^_W_B00DZ%*E_O_'1"0,#.D(",=$)`@8````QT0D!`,```#'!?2F"PC]Z`@( -XMQP7XI@L(,````*/PI@L(H8"8"@B)!"3HI/O]_XD$).@,I?[_QT0D#"?I"`C' -XM1"0(&0```,=$)`0#````QP4`IPL(QNL(",<%!*<+"!0```"C_*8+"*&`F`H( -XMB00DZ%[[_?^)!"3HQJ3^_\=$)`PL]0@(QT0D"!H```#'1"0$`P```,<%#*<+ -XM"$'I"`C'!1"G"P@W````HPBG"PBA@)@*"(D$).@8^_W_B00DZ("D_O_'1"0, -XM6^D(",=$)`@;````QT0D!`,```#'!1BG"PA/Z0@(QP4````QT0D -XM!`,```#'!3RG"PC`Z0@(QP5`IPL(30```*,XIPL(H8"8"@B)!"3H`/K]_XD$ -XM).AHH_[_QT0D#/;I"`C'1"0('P```,=$)`0#````QP5(IPL(Y^D(",<%3*<+ -XM"$<```"C1*<+"*&`F`H(B00DZ+KY_?^)!"3H(J/^_\=$)`QH]0@(QT0D""`` -XM``#'1"0$`P```,<%5*<+"`WJ"`C'!5BG"PA1````HU"G"PBA@)@*"(D$).AT -XM^?W_B00DZ-RB_O_'1"0,*NH(",=$)`@A````QT0D!`,```#'!6"G"P@9Z@@( -XMQP5DIPL(3@```*-*<+ -XM"&/J"`C'!7RG"P@/````HW2G"PBA@)@*"(D$).BB^/W_B00DZ`JB_O_'1"0, -XMM/4(",=$)`@D````QT0D!`,```#'!82G"PAPZ@@(QP6(IPL(,P```*.`IPL( -XMH8"8"@B)!"3H7/C]_XD$).C$H?[_QT0D#.3U"`C'1"0()0```,=$)`0#```` -XMQP60IPL(B.H(",<%E*<+"!4```"CC*<+"*&`F`H(B00DZ!;X_?^)!"3H?J'^ -XM_\=$)`P@]@@(QT0D""8```#'1"0$`P```,<%G*<+"*#J"`C'!:"G"P@6```` -XMHYBG"PBA@)@*"(D$).C0]_W_B00DZ#BA_O_'1"0,6/8(",=$)`@G````QT0D -XM!`,```#'!:BG"PBWZ@@(QP6LIPL(+````*.DIPL(H8"8"@B)!"3HBO?]_XD$ -XM).CRH/[_QT0D#,CJ"`C'1"0(*````,=$)`0#````QP6TIPL(;/`(",<%N*<+ -XM"&$```"CL*<+"*&`F`H(B00DZ$3W_?^)!"3HK*#^_\=$)`SCZ@@(QT0D""D` -XM``#'1"0$`P```,<%P*<+"$+P"`C'!<2G"PAB````H[RG"PBA@)@*"(D$).C^ -XM]OW_B00DZ&:@_O_'1"0,#>L(",=$)`@J````QT0D!`,```#'!BG"P@Q````H^"G"PBA@)@*"(D$).@L]OW_B00DZ)2?_O_'1"0, -XMY/8(",=$)`@M````QT0D!`,```#'!?"G"P@DZP@(QP7TIPL(/0```*/LIPL( -XMH8"8"@B)!"3HYO7]_XD$).A.G_[_QT0D#$'K"`C'1"0(+@```,=$)`0#```` -XMQP7\IPL(-.L(",<%`*@+"!@```"C^*<+"*&`F`H(B00DZ*#U_?^)!"3H")_^ -XM_\=$)`P0]P@(QT0D""\```#'1"0$`P```,<%"*@+"%WK"`C'!0RH"PAK```` -XMHP2H"PBA@)@*"(D$).A:]?W_B00DZ,*>_O_'1"0,4/<(",=$)`@P````QT0D -XM!`,```#'!12H"PANZP@(QP48J`L(1@```*,0J`L(H8"8"@B)!"3H%/7]_XD$ -XM).A\GO[_QT0D#'#W"`C'1"0(,0```,=$)`0#````QP4@J`L(Z^@(",<%)*@+ -XM"$4```"C'*@+"*&`F`H(B00DZ,[T_?^)!"3H-I[^_\=$)`RT]P@(QT0D"#(` -XM``#'1"0$`P```,<%+*@+"'CK"`C'!3"H"PA2````HRBH"PBA@)@*"(D$).B( -XM]/W_B00DZ/"=_O_'1"0,Y/<(",=$)`@S````QT0D!`,```#'!3BH"PB%ZP@( -XMQP4\J`L(2````*,TJ`L(H8"8"@B)!"3H0O3]_XD$).BJG?[_QT0D#)GK"`C' -XM1"0(-````,=$)`0#````QP5$J`L(D>L(",<%2*@+"`,```"C0*@+"*&`F`H( -XMB00DZ/SS_?^)!"3H9)W^_\=$)`P0^`@(QT0D"'H```#'1"0$`P```,<%4*@+ -XM"*GK"`C'!52H"PAX````HTRH"PBA@)@*"(D$).BV\_W_B00DZ!Z=_O_'1"0, -XM./@(",=$)`A[````QT0D!`,```#'!5RH"PBZZP@(QP5@J`L(>0```*-8J`L( -XMH8"8"@B)!"3H2H"P@J```` -XMH]RH"PBA@)@*"(D$).AN\/W_B00DZ-:9_O_'1"0,V/D(",=$)`A`````QT0D -XM!`,```#'!>RH"PBW[`@(QP7PJ`L($@```*/HJ`L(H8"8"@B)!"3H*/#]_XD$ -XM).B0F?[_QT0D#`#Z"`C'1"0(00```,=$)`0#````QP7XJ`L(PNP(",<%_*@+ -XM"$P```"C]*@+"*&`F`H(B00DZ.+O_?^)!"3H2IG^_\=$)`PD^@@(QT0D"$(` -XM``#'1"0$`P```,<%!*D+",WL"`C'!0BI"PAI````HP"I"PBA@)@*"(D$).B< -XM[_W_B00DZ`29_O_'1"0,3/H(",=$)`A#````QT0D!`,```#'!1"I"PC8[`@( -XMQP44J0L(3P```*,,J0L(H8"8"@B)!"3H5N_]_XD$).B^F/[_QT0D#(3Z"`C' -XM1"0(1````,=$)`0#````QP4.H(",<%(*D+""````"C&*D+"*&`F`H( -XMB00DZ!#O_?^)!"3H>)C^_\=$)`RT]0@(QT0D"$4```#'1"0$`P```,<%**D+ -XM"._L"`C'!2RI"P@S````HR2I"PBA@)@*"(D$).C*[OW_B00DZ#*8_O_'1"0, -XM"^T(",=$)`A&````QT0D!`,```#'!32I"P@![0@(QP4XJ0L((P```*,PJ0L( -XMH8"8"@B)!"3HA.[]_XD$).CLE_[_QT0D##KM"`C'1"0(1P```,=$)`0#```` -XMQP5`J0L(*>T(",<%1*D+""0```"C/*D+"*&`F`H(B00DZ#[N_?^)!"3HII?^ -XM_\=$)`QA[0@(QT0D"$@```#'1"0$`P```,<%3*D+"%7M"`C'!5"I"P@-```` -XMHTBI"PBA@)@*"(D$).CX[?W_B00DZ&"7_O_'1"0,A>T(",=$)`A)````QT0D -XM!`,```#'!5BI"PAY[0@(QP5X(",<%C*D+"`$```"CA*D+"*&`F`H( -XMB00DZ)KL_?^)!"3H`I;^_\=$)`S(^@@(QT0D"$X```#'1"0$`P```,<%E*D+ -XM"#_N"`C'!9BI"P@I````HY"I"PBA@)@*"(D$).A4[/W_B00DZ+R5_O_'1"0, -XM7>X(",=$)`A/````QT0D!`,```#'!:"I"PA2[@@(QP6DJ0L($P```*.^X(",<%L*D+"#8```"CJ*D+"*&`F`H(B00DZ,CK_?^)!"3H,)7^ -XM_\=$)`PP^P@(QT0D"%$```#'1"0$`P```,<%N*D+"(?N"`C'!;RI"P@\```` -XMH[2I"PBA@)@*"(D$).B"Z_W_B00DZ.J4_O_'1"0,5/L(",=$)`A2````QT0D -XM!`,```#'!<2I"PBA[@@(QP7(J0L(.@```*/`J0L(H8"8"@B)!"3H/.O]_XD$ -XM).BDE/[_QT0D#'S["`C'1"0(4P```,=$)`0#````QP70J0L(J.X(",<%U*D+ -XM"#L```"CS*D+"*&`F`H(B00DZ/;J_?^)!"3H7I3^_\=$)`SD\@@(QT0D"%0` -XM``#'1"0$`P```,<%W*D+"+;N"`C'!>"I"PA0````H]BI"PBA@)@*"(D$).BP -XMZOW_B00DZ!B4_O_'1"0,SNX(",=$)`A5````QT0D!`,```#'!>BI"PC"[@@( -XMQP7LJ0L(8````*/DJ0L(H8"8"@B)!"3H:NK]_XD$).C2D_[_QT0D#)/G"`C' -XM1"0(5@```,=$)`0#````QP7TJ0L(Y^X(",<%^*D+"$0```"C\*D+"*&`F`H( -XMB00DZ"3J_?^)!"3HC)/^_\=$)`R@^P@(QT0D"%<```#'1"0$`P```,<%`*H+ -XM"/7N"`C'!02J"P@N````H_RI"PBA@)@*"(D$).C>Z?W_B00DZ$:3_O_'1"0, -XMV/L(",=$)`A8````QT0D!`,```#'!0RJ"P@![P@(QP40J@L(2@```*,(J@L( -XMH8"8"@B)!"3HF.G]_XD$).@`D_[_QT0D#`#\"`C'1"0(60```,=$)`0#```` -XMQP48J@L(%N\(",<%'*H+"%,```"C%*H+"*&`F`H(B00DZ%+I_?^)!"3HNI+^ -XM_\=$)`PL[P@(QT0D"%H```#'1"0$`P```,<%)*H+""'O"`C'!2BJ"PA4```` -XMHR"J"PBA@)@*"(D$).@,Z?W_B00DZ'22_O_'1"0,+/P(",=$)`A;````QT0D -XM!`,```#'!3"J"PA%[P@(QP4TJ@L(5P```*,LJ@L(H8"8"@B)!"3HQNC]_XD$ -XM).@NDO[_QT0D#&3\"`C'1"0(7````,=$)`0#````QP4\J@L(4.\(",<%0*H+ -XM"%@```"C.*H+"*&`F`H(B00DZ(#H_?^)!"3HZ)'^_\=$)`R,_`@(QT0D"%T` -XM``#'1"0$`P```,<%2*H+"%GO"`C'!4RJ"PA?````HT2J"PBA@)@*"(D$).@Z -XMZ/W_B00DZ**1_O_'1"0,N/P(",=$)`A>````QT0D!`,```#'!52J"PAF[P@( -XMQP58J@L(7@```*-0J@L(H8"8"@B)!"3H].?]_XD$).A\(",=$)`AA````QT0D!`,```#'!7BJ"PB/[P@(QP5\J@L(+P```*-TJ@L( -XMH8"8"@B)!"3H(N?]_XD$).B*D/[_QT0D#$3]"`C'1"0(8@```,=$)`0#```` -XMQP6$J@L(KN\(",<%B*H+"#\```"C@*H+"*&`F`H(B00DZ-SF_?^)!"3H1)#^ -XM_\=$)`QP_0@(QT0D"&,```#'1"0$`P```,<%D*H+"+_O"`C'!92J"PAC```` -XMHXRJ"PBA@)@*"(D$).B6YOW_B00DZ/Z/_O_'1"0,L/T(",=$)`AD````QT0D -XM!`,```#'!9RJ"PC2[P@(QP6@J@L(9````*.8J@L(H8"8"@B)!"3H4.;]_XD$ -XM).BXC_[_QT0D#/3]"`C'1"0(90```,=$)`0#````QP6HJ@L(YN\(",<%K*H+ -XM"%P```"CI*H+"*&`F`H(B00DZ`KF_?^)!"3H?`(",=$)`AJ````QT0D!`,```#'!>2J"PAK\`@(QP7HJ@L(6P```*/@J@L( -XMH8"8"@B)!"3HK.3]_XD$).@4CO[_QT0D#*S^"`C'1"0(:P```,=$)`0#```` -XMQP7PJ@L(D_`(",<%]*H+"$,```"C[*H+"*&`F`H(B00DZ&;D_?^)!"3HSHW^ -XM_\=$)`RY\`@(QT0D"&P```#'1"0$`P```,<%_*H+"*;P"`C'!0"K"PA"```` -XMH_BJ"PBA@)@*"(D$).@@Y/W_B00DZ(B-_O_'1"0,W?`(",=$)`AM````QT0D -XM!`,```#'!0BK"PC0\`@(QP4,JPL(5@```*,$JPL(H8"8"@B)!"3HVN/]_XD$ -XM).A"C?[_QT0D#`;Q"`C'1"0(;@```,=$)`0#````QP44JPL(^O`(",<%&*L+ -XM"%4```"C$*L+"*&`F`H(B00DZ)3C_?^)!"3H_(S^_\=$)`PG\0@(QT0D"&\` -XM``#'1"0$`P```,<%(*L+"!_Q"`C'!22K"PA9````HQRK"PBA@)@*"(D$).A. -XMX_W_B00DZ+:,_O_'1"0,0_$(",=$)`AP````QT0D!`,```#'!2RK"P@[\0@( -XMQP4PJPL(.0```*,HJPL(H8"8"@B)!"3H"./]_XD$).APC/[_QT0D#.C^"`C' -XM1"0(<0```,=$)`0#````QP4XJPL(8?$(",<%/*L+""$```"C-*L+"*&`F`H( -XMB00DZ,+B_?^)!"3H*HS^_\=$)`P,_P@(QT0D"'(```#'1"0$`P```,<%1*L+ -XM"&_Q"`C'!4BK"P@B````HT"K"PBA@)@*"(D$).A\XOW_B00DZ.2+_O_'1"0, -XM,/\(",=$)`AS````QT0D!`,```#'!5"K"PAT\0@(QP54JPL(=P```*-,JPL( -XMH8"8"@B)!"3H-N+]_XD$).B>B_[_QT0D#&C_"`C'1"0(=````,=$)`0#```` -XMQP5AD"0BC*&4)"*'`+0D( -XM]]`C!0!E"0@+!;PM"0BC`&4)"*',+0D(]]`C!01E"0@+!<@M"0BC!&4)"*'8 -XM+0D(]]`C!0AE"0@+!=0M"0BC"&4)"*'D+0D(BPW\70D(]]`C!0QE"0@+!>`M -XM"0B%R:,,90D(=2JAM'8*",=$)`0`90D(B00DZ'*$``"#P`$/A`C____'!61D -XM"0@!````R<.A1)D+".O4C;8`````58GE4X'L)"```*%H9`D(QT7X`````(7` -XM=`B)!"3H_HD``(L58&0)"#'`QP5H9`D(`````(72=`F!Q"0@``!;7<.-1?B) -XM1"0(H;1V"@C'1"0$?V8$0(D$).B__/S_BT7XAB-==B) -XM'"3HC`#]_\=$)`0"````B1PDZ(S[_/^)="0(B5PD!,<$)`$```#H*/O\_\=$ -XM)`1@'@4(B30DZ&Q^_?^+#?Q="0B%R70ZH429"PC'1"0$@&0)"(D$).C]@@`` -XMB30DB2L)",<$),!D"0CH -XMOWX``(LU="T)"#')BQUX+0D(#[8]<&0)"+@!````T^"%QG45#[:1DBL)"#J1 -XM8"L)"'0&B)%@*PD(A<-T"(GXB(%@*PD(@\$!@_D9='^_XD$).@]W_[_B00DZ(6W__^+-?Q="0B%]@^$ -XM]@$``*%$F0L(QT0D!(!D"0B)!"3HHGX``(/``0^$+@(``*&`9`D(BPV<9`D( -XMBQ6D9`D(BQV@9`D(H\!D"0BAA&0)"(L]D&0)"(LUF&0)"(D-W&0)"*/$9`D( -XMH8AD"0B)%>1D"0B)'>!D"0B)/=!D"0BCR&0)"*&,9`D(B3789`D(B3T090D( -XMH\QD"0BAE&0)"*/49`D(H:AD"0BCZ&0)"*&`9`D(HP!E"0BAA&0)"*,$90D( -XMH8AD"0BC"&4)"*&,9`D(HPQE"0BAE&0)"*,490D(B34890D(H:AD"0B)#1QE -XM"0B)%21E"0B)'2!E"0BC*&4)",<$)(!D"0CH.WT``,<$)(!D"0BC:)D+".C: -XM?```QP0D@&0)"*+`F0L(Z.E\``"+70BC1"L)"*%(+0D(]]`C!8!D"0@+!40M -XM"0BC@&0)"*%4+0D(]]`C!81D"0@+!5`M"0BCA&0)"*%@+0D(]]`C!8AD"0@+ -XM!5PM"0BCB&0)"*%L+0D(]]`C!8QD"0@+!6@M"0B%VZ.,9`D(=7;'1"0$8"L) -XM",<$)(!D"0CHN7L``(U=Y,=$)`0`G@<(QP0D'````.A>^?S_B1PDZ.;Y_/_' -XM1"0$'````(D<).CF]/S_QT0D"`````")7"0$QP0D`@```.A^]/S_,<#'!6QD -XM"0@!````Z6S]__^AM'8*".D%_O__QP0D`&4)".@;?```AP``BPW\70D(A2L)"'0&B)!Y*PD(@\`!@_@7==\PP`^VD)(K"0@X -XMT70..HA@*PD(=`:(D&`K"0B#P`&#^!EUW^DF____C;8`````C;PG`````%6) -XMY8/L",<$)`$```#H#O7__\<%A'<*"`````#'!"0`````Z"C\__^#P`%T?:%@ -XM90D(AJ&$+0D(QT0D!'DK"0C'!"3`9`D(]]`C!0``R<.-="8`Z'M*``#I -XM?/___XVV`````%6)Y8/L&,=$)`2PD`@(@P7$K`L(`<<$),2L"PCHWW7]_XU% -XM^(E$)`2-1?R)!"3H;30``(7`=0>+10B%P'1"H81W"@B%P'11Z(08``#H_Q@` -XM`,<$)`````#HDT,``,<$)`````#H9T$``(M%^(E$)`2+1?R)!"3HI2\``.C0 -XM*```QP0DQ*P+",<%M)D+"`````#HRG3]_\G#BT7XB40D!(M%_(D$).AV+P`` -XMZ]20D)"058GEBT4(78L0B15(=PH(BT`$QP7\F`H(`````*-(F@L(PXVT)@`` -XM``"-O"<`````58GEBT4(7<<%-&4)"`$```"C,&4)",.)]HV\)P````!5B>57 -XM5E.#["R+/31E"0B+=0B%_W1%H3!E"0B_`0```,<%-&4)"`````")!H/$+(GX -XM6UY?7+__S\`@\`$B1:+%4`K"0B_`0```(D$C8"9"PB+!)6`F0L( -XMBPB%R76;C4+_HT`K"0B#Q"R)^%M>7UW#Z(CV__\Q_X7`#XAZ____H;29"PB% -XMP`^%P0```,=%X``````QVXU%[@'8B40D!*&T=@H(QT0D"`$```")!"3H&G3^ -XM_X/X_XG'=&.A8)D+"(7`#X6;````@\,!C47NB5PD"(E$)`2)-"3H$.X``(/` -XM`0^%$____\=$)`@`````QT0D!`````#'!"0`````Z)?Q_/\['8!1"0ARBP^V -XM1>X-```@`(D&Z=_^__^-=@"+5>"%TG5)Z+#S_/^+`(E$)`2AM'8*"(D$).AA -XME@``@\`!="S'1>`!````Z4C____'!"0`````Z'3]__^-="8`Z2K___\/MD7N -XMB0;IC/[__\<&`````.F!_O__D(UT)@!5B>6#[`B+50B%TG0*H4`K"0B#^`A^ -XM"^@T-P``R>ENC/[_@\`!HT`K"0B)%(6`F0L(R<.-M@````"-O"<`````58GE -XM@^P(H;"9"PB%P'04Z,P5``#H1Q8``,<%L)D+"`````#H."8``*$T=PH(QP5\ -XM=PH(`0```,<%1'<*"`````#'!>@D"0C_____R2T`=@D(P?@"PXUT)@"-O"<` -XM````58GE5U:^`0```%.[`'8)"(/L'(L]-'<*"(E%Z*%4F0L(QT7L`````(E% -XM\(L3A=)X,O?"````0'4J@_I_?R4/ML(/MX0`X"`)"*@0#X35````@_HC#X3, -XM````@\,$BQ.%TGG.B1U4F0L(BQ.)V872=$XYRW0&@WG\7'0UA=*-=@!X+O?" -XM````0'4F@_I_C78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U*_;$('4FD(UT)@"# -XMP02)#529"PB+$872=;*A-'<*"#'VHU29"PB#>/P*=$NAC)@*"*/`*PD(H42: -XM"PBCQ"L)"(L#QP0DP"L)"(E$)`3H]?+\_X7`=#J%]HL=5)D+"`^%(O___XM% -XM\*-4F0L(BT7L@\0<6UY?7<.#Z`2C5)D+".NK]L0@#X4K____D.DN____BT7H -XMAT[__X/X_W0I@^@!=0?'1>P!````BQ4T=PH(.?IT##M= -XM\','B=`I^`%%\(G7Z5C___^#?>P!&<`)1>SKV(GV58GE5U93@>R,````H<27 -XM"@C'19@`````A<`/A/,$``#'1"0$Q)@*",<$),!$"0CHS-?^_\=$)`3$F`H( -XMQP0D($4)"(E%G.BUU_[_QT0D!,28"@C'!"1@1PD(B46@Z)[7_O^)PZ$\9`D( -XMA<`/A)@$``#HVA,``,<$)`````#HWN[__X,]A'<*"`$9P/?0"05`*PD(A=MT -XM*HL#AW\_X7`#X5X!```QP4`F0H(`````*%@ -XM9`D(AR!^O\````/C]<```"A<'<*"`^V -XM'`*`^S4/A-,```"$VP^4P#'2BPTXF@L(AC2$0`` -XMB?;H2Q(``.A&(@``QP5$=PH(`````,<%?'<*"`$```#HW3(``.@8B/[_QP7H -XM)`D(_____Z$T=PH(+0!V"0C!^`*)1;#IK@4``+L"````,<`QTNDT____C57L -XMB578C47@C578QT7<`0```(E$)`2)%"3H_&<``(/X`0^$(`$``(/X`G13A"$VP^4P(#[-0^4PNGO_O__/?___W\/A`C____HAN___\<%A'<*"``` -XM``#HAX?^_X'$C````(G86UY?7<,/ML#_)(7@`0D(Z$?L_/^+=>#'!"0*```` -XMZ(R)_O_'1=0`````B770C770Z#KO___'!81W"@@`````B30DZ-@%_O^%P`^% -XMI````(DT).CH^___QT0D!,28"@C'!"1`0PD(Z-G2_O^) -XM19CI\?K__\=$)`2@1PD(B1PDZ*WH_/^%P`^%>OO__\<%`)D*"`$```#I:_O_ -XM_XU%Z(E$)`BAM'8*",=%Z`````#'1"0$?V8$0(D$).@#Z?S_BW7HA?8/A53[ -XM___HI^W__S';A<`/B47[___I(?W__XM%F,<%Z"0)"/____^%P`^$7`8``(M5 -XMF(L"A<`/A$\&``"+,,=$)`1@0PD(B30DZ"#H_/^%P`^$S08``,=$)`1P0PD( -XMB30DZ`CH_/^%P`^$M08``,=$)`3`0PD(B30DZ/#G_/^%P`^%!08``(LU-'<* -XM"('^`'8)"'8B@W[\"G4?Q<=#:%THUT)@!X+O?"````0'4F@_I_ -XMC78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U+_;$('4JD(UT)@"#P02)#529"PB+ -XM$872=;&A-'<*"#'_HU29"PB#>/P*#X2!!0``BP;'!"3`*PD(B40D!.@EZ_S_ -XMA<`/A.<%``"%_XLU5)D+"`^%)____XM%N+X!````QP748PD(`````*-4F0L( -XMH;"9"PB%P'04Z'X,``#H^0P``,<%L)D+"`````#HZAP``(/N`<<%?'<*"`$` -XM``#'!41W"@@`````#X6O^O__Z$@-``"A-'<*"(UP!,<`"@```(DU-'<*",=` -XM!`````"+-31W"@B)\H'J`'8)",'Z`HE5L.E?!```C70F`,=$)`@)````H529 -XM"PC'!"0`=@D(+0!V"0C!^`*)1"0$Z%M&__^%P`^.N0(``.C^]?__B46P@?O_ -XM__]_#X0O^?__Z9_Z___'!"0*````C78`Z%N$_O^A-'<*",=$)`@%````QP0D -XM`'8)""T`=@D(P?@"B40D!.@&1O__Z!$<``"A-'<*",<%?'<*"`$```#'!41W -XM"@@`````QP7H)`D(_____RT`=@D(P?@"B46PZX8QV\<%Z"0)"/_____I)?K_ -XM_XGZ@/H2#X3(`P``#X\,!@``@/H##X4V^O__BS4T=PH(QP7H)`D(_____\<% -XM+&4)"`````#'1:P"````B?*!Z@!V"0C!^@*)5;"+5;"+!)4`=@D(A`"`054F0L(B34T=PH(QT0D!,28"@C'!"1`1`D(Z)[. -XM_O^%P'0,QP0D`````.@^C___H529"PB+5:S'!"0`=@D(+0!V"0C!^`*)19") -XM5"0(B40D!.BG1/__A<`/A=,#``"+3:"%R70WBU6@BP*%P'0NBSC'1"0$8$4) -XM"(D\).@IY/S_A*$L90D(AX`=@D(B76PP7VP`NAZ&``` -XMQP5\=PH(`0```,<%1'<*"`````#I!OS__\=$)`@'````Z87^___'1"0("``` -XM`.F_^___Z,((``"+-31W"@C'1;``````B?.!ZP!V"0C!^P+'1"0$`````,<$ -XM)`$```#'!?!="0@`````QP6<=PH(`````.@RS```Z:+[__^+-31W"@C'!>@D -XM"0C_____QP4L90D(`````,=%K`,```")\"T`=@D(P?@"B46PZ4/\__^#Z`2C -XM5)D+".ER^O__]L0@#X7G^?__Z>OY___H*@@``,<$)`!V"0CH#ML``,=$)`0P -XM*@@(B<>)!"3H/&3]_Z$T=PH(BU68QT0D!&!#"0B)1:2+`HL`B00DZ`GA_/^% -XMP`^4P`^VP.A@\?__@^@!#X0\`@``B3PDZ%]C_?_I"/___\=$)`0`=@D(B30D -XMZ'H0__^%P`^$`?K__Z%4F0L(QT0D"`(```#'!"0`=@D(+0!V"0C!^`*)1"0$ -XMZ/U`__^%P`^.EP,``(/H`0^/2`,``(L5-'<*"#M5M'0-.W6X@D"0@!BS4T=PH(QP4L90D(`0```,=%K`0```#I^_G__Z'88PD( -XMA<`/A`G[__^+?:"%_P^$_OK__XM5H(L"A<`/A/'Z___'1"0$P$4)"(L`B00D -XMZ.?>_/^%P`^%U_K__^G-^O__@P7H)`D(`8LU-'<*",<%+&4)"`$```#'1:P$ -XM````Z93Y___HE@4``,<$)`!V"0CH>M@``,=$)`0P*@@(B<:)!"3HJ&']_\=$ -XM)`0*````B30DZ-3B_/_'``````"A-'<*",<%-'<*"`!V"0B)1:CH>R4``(DT -XM).A3V@``QP0D`@```(E$)`3HX\@``(DT).B[8/W_Z*84``"-1?.)1"0$H;1V -XM"@C'1"0(`0```(D$).@Z8?[_A<`/B-,!```/MD7S@_AYB47L='N#^"!T=HE\ -XM)`3'!"0`=@D(Z*W=_/^+1:2C-'<*"(M%[(/X90^$L@$``(/X80^$.P$``,=$ -XM)`RR`0D(QT0D"`4```"A@)@*",=$)`0&````B00DZ'^__?^)!"3H%[D``.@" -XM>O[_B?;IM/S__^BV)```C;8`````Z6_[__^+5:C'1"0,H`$)",=$)`@"```` -XMB14T=PH(ZZS'!>@D"0C_____Z6#Y___'1"0$P$4)"(D\).A=W?S_A<`/A4WY -XM___I0_G__\<%U&,)"`````"^`@```.@@!```H8"8"@C'1"0,RP$)",=$)`@' -XM````QT0D!`8```")!"3HV[[]_XD$).ASN```Z6+V___'!=1C"0@`````,?;H -XMW0,``*&`F`H(QT0D#+8!"0C'1"0(!@```,=$)`0&````B00DZ)B^_?^)!"3H -XM,+@``.D?]O__Q@7,F0L(`.B?`@``Z!H#``#H%1,``,8%S)D+"`'I[?S__Z&` -XMF`H(QT0D#*L!"0C'1"0(!````,=$)`0&````B00DZ$2^_?^)!"3HW+<``,<% -XM-'<*"`!V"0C'!529"P@`=@D(QT0D!`````#'!"0`````Z.3&``#HKQ(``(D\ -XM).BW7OW_QT6P`````.E[[___H8"8"@C'1"0,I0$)",=$)`@#````QT0D!`8` -XM``")!"3HUKW]_XD$).ANMP``H31W"@C'``````"-"7"@A_X(L]2&4)"(7;C02]`````(E%\*&P -XM=@H(BP2XB320=#R-2_^#P@&%R8E5[(D51&4)"'XIP>("H;!V"@B+=?"+!`;' -XM!!#___\'@\($@^D!=>:+5>R-1!K_HT1E"0B+%>"7"@@Y%41E"0A\)*&P=@H( -XMBTWPBP0!QP20`````(U'`<<%1&4)"`````"C2&4)"(/$"%M>7UW#C70F`(V\ -XM)P````!5B>575E.)TX/L"(MU#(E%[(M]"(7V?F&)R"G0.<9^!H7`?E6)QHM% -XM[(T,B(G*@^H$C02U`````"G"BT7LB4WPC1R8.=IR#XL"@^H$B4'\@^D$.=IS -XM\8M%\#G8QP``````=A:%]GX2BP>#[@&#QP2)`X/#!#E=\'?J@\0(6UY?753B<-T'XL"AE;7<-5B>53@^P$H=R7"@B%P'0_BQTX90D(A=MX+XVV -XM`````(D<)(/K`>CU*@``QP0D`````.C)*```H>"7"@B)!"3H3"(``(/[_W77 -XM@\0$6UW#H3AE"0B)!"3HQ"H``,<$)`T```#HB'?^_\<$)`H```#H?'?^_X/$ -XM!%M=PXVV`````%6)Y5.#[!2+%`"B40D",=$)`0`````B10DZ/W;_/\Y -XM'DZ=?[_C78`C;PG`````%6)Y5=64X/L+(7)B47DB")3?`/ -XMA:`!``"A/&4)"(7`B47B+1>"+#4!E"0B-5`,$BUWRCP*P+"(7;#X36`0``C47P.T7L#X38`0``BT7P)?____O!X`0!PJ$\ -XM90D(B57LB47@>C1P0P?L"@?O___\##X]*`0``BTWLAR)1"0$B=#!X`(#!<"L"PB)!"3H1=[\_XM5Z`$5/&4)"(L- -XM/&4)"(E-W(M%X(E$)`B+5>2)5"0$BT7

`"`P7`K`L(B00DZ!'>_/^+5>`# -XM%3QE"0B-#)4`````D(UT)@"AP*P+"(/"`<<$"`````"#P03VP@-UZ8G8B14\ -XM90D(#0````2#Q"Q;7E]=PZD````$#X6O````C57PQT7H`0```(E5[(L=/&4) -XM"(7;B5W<#XZ1_O__BSW`K`L(,=N+1>B+5>"--(R)!"3H%-G\_X7`==2+5>")="0$ -XMB50D"(M-Y(D,).CZV/S_A@>`=C!^`(- -XM````!.E+____@\0LN#\```!;7E]=PXL-P*P+""7____[P>`$`R)!"3H -XM^];\_XE%Z.D[____B?B#Q"S!^!_!Z!X!^%M>7UW!^`(-````!,.+%3QE"0B) -XM5=SI0/[__XL-/&4)"(E-W.DR_O__D%6)Y5=64X/L'(E%Z(L`B<$E__\_`('A -XM``#`_XE-\(E%[(E4)`2)!"3H$Z4``(G#C4`'@_@'=AF+3>B)VHL!Z`WZ__^# -XMQ!RX`0```%M>7UW#_R2%C`,)"+H!````N"````#HZOG___8%1&4)"`=UZ.O2 -XMBT7PN@$```"#R%SHS_G__XM%[+H!````P?@&@^`'@\`P"T7PZ+;Y__^+1>RZ -XM`0```,'X`X/@!X/`,`M%\.B=^?__N@$```"#9>P'BT7L@\`P"T7PZ(;Y__^# -XMQ!RX`0```%M>7UW#BT7PN@$```"#R%SH:?G__XM%\+H!````@\A5Z%GY__^+ -XM1?"Z`0```(/(*^A)^?__C03=`````/?8B<.#ZQP/B"C___^0C70F`(M%[(G9 -XMN@$```#3^(/@#P^^@'@#"0@+1?#H$OG__X/K!'G=@\0Z,GX__^#?>Q_#X2I````BT7LN@$````)1?"#3?!`BT7PZ*CX__^#Q!RX -XM`0```%M>7UW#BS5(90D(BQ5$90D(BSVP=@H(ZQJ-M"8`````C1RU`````(L$ -XM'X$\D/___P=U+X/J`7GH@^X!#XB`_O__BP2WC1RU`````(D$).BYU/S_C5#_ -XMBP0?@3R0____!W31A?8/B%?^__^-')4`````BT7HN@$````#'+>+"^C]^O__ -XMB0/I"?[__X--\#^Z`0```(M%\.@%^/__Z?/]__]5B>57B<=6B=93@^P,@_H! -XM?Q'K'[H!````N"````#HW?___XGP`P6XF0L(.P7@EPH(?^'WQP````0/A.\` -XM``")^H'B____^\'B!`,5P*P+"(L"AAN)D+"#L%X)<* -XM"'P_#[X%K)@*"(,%:'8*"`&#!3AE"0@!J`''!;B9"P@`````="2H`G08QP0D -XM(````.B6)QU93@^P, -XMA<")1?!T4(L'A%P'6V@\0, -XM6UY?7<,QTHGX.WWP#Y3"Z/?[__^--(>)]^O<58GE5U93@^Q\B56(B<*)18R) -XM382+`(7`#X0$!@``BTV(.P$/A?D%``")5?")3>CK!XM5Z#L"=1?`$BW7P -XM@T7H!(L&A?P@=!#K&I"-="8`BW68@W[\('4, -XM@VV8!(M%\#E%F'?KBU68QP(`````BTWHB0PDZ/?%``")19S'1"0$Q)@*",<$ -XM)"!)"0CH0+O^_X7`=`F`/@Y=9QV(HM%G(-X_"!T#8GVZQ6+ -XM59R#>OP@=0R#;9P$BTWH.4V<=^N+=9S'!@````"+1?"+`(7`B46\=0V+5>B+ -XM`H7`#X2"`@``BTV8BW6@(``(L!.P9T!Y"#P02#Q@2!.?___P=T -XM\HM%O(7`#X5X`@``B4VHB4VLB76TB76PBU7HBQ*%THE5['1R.TWP=FV+??#K -XM$9"-="8`@\<$.?EV7(L'B46\BT6\.47L=>PYSP^"X`(``(M=Z(GZQT7````` -XM`,=%Q`````"+1:PK1:C!^`([1<1]PXGX*T7PT7W`P?@".47`?K.)5:R+5>B) -XM?:B#QP0Y^8E=M(E5L'>DBT68B*T6L*W6TP?@"P?X" -XM*<:%_W4_AC!^@+!^P(YVGT,BT68BU6%6+18@I1=C!?=@"BU78B10DZ'4= -XM``"+3:`Y39@/A*(#``"+1>"%P'X2BW7@B70D!(M%M(D$).B@&P``BU7@*57< -XMBTW@/@WW]__^#Z02#[@2+ -XM`3L_?__Z6_]__\[=>@/AG_]__^+?>B)3:B)3:R)=;2)=;#K$)"-="8` -XM@\<$.?X/AFK]__^+1;P[!W7N.?=R0HM=\(GZQT7(`````,=%S`````"+1;0K -XM1;#!^`([1B)^CG>#X83_?__C;0F`````(/"!(/#!#G1=Q:)T"GXB47`P?@" -XMB47$Z0/]__^-="8`.=YVYHL".P-TUNO>BW6@BT6DB4W8QT7<`````(EUU(EU -XMJ(EUK(E%M(E%L(EUT,=%X`````#ITOW__X7)#XA4`0``BU6LBTVHB=.)5=`I -XMRXE-U(7VBWV@#X@F`0``BTVDB?HK5?")R"M%Z,'Z`L'X`CG"#XYO_?__BT68 -XMBTV)1:")3:3I7/W__XM%Z"M%B,'X`HD$).B4&P``BTVP.4V<#X3:`@`` -XM@'V3``^%S@$``(G[BWWDBW7H*UWDP><"`?Z)7"0$B30DZ((6``"+1?")V8GR -XM`?CH)/+__^F^_?__BT6LZ5?]__^+1>@K18C!^`*)!"3H-AL``(MUL#EUG`^$ -XM60(``(M%Y(E$)`2+5>B)%"3H:!D``(M-Y(M5\"M5C(E,)`2+=>B+#>"7"@C! -XM^@*)-"2+18R)_N@R\?__BT7DBUWH*W7DP>`"`<.)192)'"2)="0$Z/45``"+ -XM1?")V@-%E(GQZ);Q__^+7>3I#_W__XM-C(MUB(E-\(EUZ.D6^O__BTV8BW6< -XMB<^)3:")=:3IQ_[__XM%H#';BU6DB474B46HB46LB56TB56PB470Z9W^__^+ -XM38PI3=#!?=`"BW70C00SB00DZ&,:``"+1:`Y19@/A`L!``"+1>#WV(D$).A* -XM%```BU7B)^8M%\.B?\/__BUWDZ1C\__^+ -XM1=R)1"0$BU6TB10DZ-44``#I>_S__XMUY(ET)`2+1>B)!"3H[A<``(M5\"M5 -XMC(ET)`2+3>C!^@*)#"2+#>"7"@B+18SHO>___^GZ_?__BT6,C0RPBW6XC129 -XMC1RP.=IS#HL"@\($B0&#P00YVG+RQP,`````Z6'___^+19@K18R+%>"7"@C! -XM^`*--`,YUGX"B=:+1=R)1"0$BU6TB10DZ$(4``"+19PK18C!^`(IQHDT).B? -XM$@``Z6;[__^)?"0$BU7HB10DZ!L4``"+=8@I=9R+38PI39C!?9P"P7V8`HM% -XMG"E%F(M5F(D4).AF$@``Z9S[__^)?"0$BU7HB10DZ.(3``"+5>B)^8M%\(/$ -XM?%M>7UWI?N___XE\)`2+=>B)-"3HOQ,``(M%\(GYB?+H8^___^G]^O__C;0F -XM`````(V\)P````!5B>575E.#[!RAA'<*",<%1&4)"`````#'!81W"@@````` -XMQP5(90D(`````(E%\*%XF0L(Z.?V__^A1&4)",<%1&4)"`````"C3&4)"*%( -XM90D(QP5(90D(`````*-090D(H2QW"@CHM?;__X$]-'<*"`!V"0@/AB("``"[ -XM`'8)",=%Y/_____'1>@`````.QU4F0L(3_=1:A1&4)"(D=5)D+"(E% -XMY*%(90D(B47H,=*!^P!V"0@/E,*)V.C,\O__C1R#.1TT=PH(=[^#?>3_#X3$ -XM`0``BPU$90D(H4QE"0B+%>"7"@B%P'0.BQU090D(A=L/A%T!``#'!4QE"0@` -XM````QP5090D(`````*%(90D(N@$```")1>PQP.B\[/__BT7LQT7@`````(7` -XM>&Z+7>"AL'8*"(M-X,'C`HL4&*%`F@L(BP08Z%#V__^AL'8*"(LUX)<*"(L\ -XM&*%`F@L(A?:+%!A^)(L',`Y1>Q]DJ$X90D(.47L?4`[1>!\.XM=X,'C`J%` -XMF@L(NOAO"0B+3>"+!!CHUO7__Z%`F@L(BP08@\,$QP``````@T7@`8M%X#D% -XM.&4)"'W+BT7LHSAE"0B+1>B)!"3HHQ@``(M%Y(D$).AX%@``QP0D`````.C\ -XM"@``Z-=C_O^+1?"CA'<*"(/$'%M>7UW#,RA>)D+".B(]/__ -XMZ7/^__^A1&4)"(E%Y(G!H4AE"0B)1>CI*_[__XVV`````(V_`````%6)Y8/L -XM&(EU^(MU"(E=](E]_(L55)D+"#L5-'<*"'01BUWTBW7XBWW\B>Q=Z0_]__^+ -XM#4QE"0B%R702H>"7"@@K!;B9"P@IR(/X`G[3C02U`````(G7*</_ -XM_S\`@?\`=@D(#Y3`B40D!(D<).B9E0``@_C_=&B#^`$/A(0```"#^/QUEKH! -XM````N%P```#HA_+__XG8N@$```#!^`:#X`>#P##H#X`>#P##H6O+__XU#,+H!````Z$WR__^+7?2+=?B+??R)[%WI3&+^_[H! -XM````N%X```#H+?+__X/[?W1_@\M`N@$```")V.@9\O__Z\K'1"0$Q)@*",<$ -XM)"!)"0CHTZ_^_X7`=`F`/@Y!2QW"@@/E,"!XO__/P`/ML")%"2)1"0$Z/:3``"-4`>#^@9V -XM9@'&.?Y\O"G^@T7P`87;=;:[`'8)".L6C;0F``````'&.?Y\!H-%\`$I_H/# -XM!#L=5)D+"`^#H@```#'`@?L`=@D(#Y3`B40D!(L#)?__/P")!"3HEY,``(U0 -XM!X/Z!G>__R25K`,)"/\DE<@#"0B0@\8!]\8'````C;0F`````'2"@\8!]\8' -XM````=>.-=@#I;____X/&`??&!P```(GV=("#Q@'WQ@<```!UZ(UV`.EM____ -XM@T7P`3'VZ6+___^#Q@3I6O___P'`]]B-=`;]Z4W___^#Q@+I1?___XM%\(D$ -XM).C8%```B30DZ+`2``#'1"0$Q)@*",<$)"!)"0CHS*W^_X7`=`F`/PL0@``BU4,BTT(@_H!B=`/C@D$``"%R:.L;PD(B<@/CO`#```Y -XM%:QO"0BCH&\)"`^$#0$``*%`F@L(QP5`F@L(`````(D$).A<2?[_H;!V"@C' -XM!;!V"@@`````B00DZ$5)_O^AK&\)"+H```$`B<&CX)<*"(G0P?H?]_F-4`&- -XM!(4(````B17(=@H(B00DZ)50``"+%_(L5R'8*"(G8@\,!.<)_VL<$E@````"AR'8* -XM"(DU0)H+"(/``<'@`HD$).@Z4```BQ7(=@H(A=*)QGXKNP$```"AX)<*"(/` -XM`<'@`HD$).@64```B42>_(L5R'8*"(G8@\,!.<)_VL<$E@````")-;!V"@CH -XM\>?__X'$+$(``%M>7UW#.<@/A>O^___'!"3D`PD(Z)[`_/^%P'1'H:QO"0C' -XM1"0(`````,=$)`0`````B00DZ#%I``#'1"0$,"H("(G#B00DZ$]$_?^)7"0$ -XMQP0D`$P)".@_MOW_B1PDZ)=#_?_'!"3L`PD(Z$?`_/^%P'1'H:!O"0C'1"0( -XM`````,=$)`0`````B00DZ-IH``#'1"0$,"H("(G#B00DZ/A#_?^)7"0$QP0D -XMY$L)".CHM?W_B1PDZ$!#_?_'!"3R`PD(Z/"__/^%P`^$*?[__XD$).C4O@`` -XMQT0D"``(``")1"0$C87DWO__B87@O?__B00DZ$#'_/^-1>2-C>3>___'A>#^ -XM__\`````QT7D8P```,=%Z&\```#'1>PC````QT7P`````(E$)`2)#"3H*;4` -XM`(7`B<2)PXD,).CNP/S_C8WDO?__*YW@O?__B8W3>__^)7"0(B40D!.C!QOS_H:QO"0C'A)WDO?__`````(V2] -XM___'1"0(`````,=$)`0`````B00DZ,9G``")'"2)QHE$)`3H9+[\_XDT).A@ -XM30``QT0D!#H```")/"3H#,3\_XV-Y+W__XD,)(E$)`3H.K[\_XU%Y(V-Y+W_ -XM_\=%Y&P```#'1>AI````QT7L(P```,=%\`````")1"0$B0PDZ$VT``"%P(G& -XM#X3[````B<.-1>2)!"3H$L#\_XV-Y+W__RN=W+W__XE,)`3!^P(!PXV%Y-[_ -XM_XE<)`B)!"3HZ\7\_Z&@;PD(QX2=Y-[__P````#'1"0(`````,=$)`0````` -XMB00DZ/=F``"-C>3>__^)#"2)PXE$)`3HC[W\_XD<).B+3```QT0D!#H```") -XM-"3H-\/\_XE$)`2-A>3>__^)!"3H9;W\_XV-Y-[__\>%X/[__P````")3"0$ -XMQP0D($P)".C)L_W_Z2'\__^X&````.D&_/__N%````"0C70F`.GH^___C8WD -XMO?__C87DWO__B40D!(F-W+W__XD,).@IOOS_Z2]__^-C>3>__^) -XM1"0$B0PDZ`R^_/_KA8VT)@````"-O"<`````58GE5E.#[""+70RAK&\)"(MU -XM"(D#H:!O"0B)!HU%\(E$)`BAM'8*",=$)`1H=`A`B00DZ*2^_/^#P`%T%P^W -XM1?)FA7<.0 -XMC70F``^WP+H!````B0:AK&\)"#L#==^AH&\)"#'2.P8/E<*#Q"!;B=!>7<.0 -XMC;0F`````%6)Y8/L&(72B5WTB=.)=?B)QHE]_'0%@#H`=22+1@B)!"3H&4L` -XM`,=&"`````"+7?2+=?B+??R)[%W#D(UT)@")%"3HU,/\_XUX`8M&"(E\)`2) -XM!"3H!DP``(E\)`B)7"0$B48(B00DZ/_"_/_KOY!5B>6#[!B+%,````\.=,/A/@```"+#6AE"0B%R0^%^@```(G'B<8E````(('G -XM````"('F````$(E%\*&`;0D()0```!`Y\'0IA?8/A-X!``"AL&X)"(7`=!B` -XM.`!T$XL5O&X)"(72=`F`.@`/A9T"``"A@&T)""4````(.?AT+87_#X1J`0`` -XMH>QN"0B%P'0<@#@`=!>+%>!N"0B%TG0-@#H`#X4_`@``C70F`*&`;0D()0`` -XM`"`[1?!T48M%\(7`#X3N````H1!O"0B%P'0]@#@`=#B+%1QO"0B%TG0N@#H` -XM="G'1"0(,#H&",=$)`0!````B00DZ,V]_/^!#8!M"0@````@C;0F`````(M= -XM](MU^(M]_(GL7<.-=@"+#;QN"0B%R0^$^/[__X`Y``^$[_[___?"````$`^% -XM>`$``(G&@>8````0]\(````@#X5W`0``B=@E````((E%\('B````"'1"B=^! -XMYP````@/A8````0)0```"")1?#'1"0(,#H&",=$)`0!```` -XMB0PDZ"N]_/_'!8!M"0@`````B=^!YP````CIAO[__Z$<;PD(A<`/A$O___^` -XM.``/A$+____'1"0(,#H&",=$)`0!````B00DZ.:\_/^!)8!M"0C____?Z1O_ -XM__^AX&X)"(7`#X2N_O__@#@`#X2E_O__QT0D"#`Z!@C'1"0$`0```(D$).BI -XMO/S_@26`;0D(____]^E^_O__H;!N"0B%P`^$-O[__X`X``^$+?[__Z&\;@D( -XMA<`/A"#^__^`.``/A!?^___'1"0(,#H&",=$)`0!````B00DZ%:\_/_V!8-M -XM"0@(=!*AX&X)"(7`=`F`.``/A<\```#V!8-M"0@@=!*A'&\)"(7`=`F`.``/ -XMA8T```"!)8!M"0C____OZ;K]__^)QH'F````$`^$N/[__^E]_O__B=@E```` -XM((E%\`^%@_[__XG>@>8````0Z9[^___'1"0(,#H&",=$)`0!````B00DZ,F[ -XM_/^!#8!M"0@````(Z9[]___'1"0(,#H&",=$)`0!````B00DZ**[_/^!#8!M -XM"0@````0Z3S]___'1"0(,#H&",=$)`0!````B00DZ'N[_/^!)8!M"0C____? -XMZ4S____'1"0(,#H&",=$)`0!````B00DZ%2[_/^!)8!M"0C____WZ0K___^) -XM]HV\)P````!5B>6#[!CH%74``,=$)`3$F`H(QP0D\$4)".CAHO[_A7"7"@A_/*$T;PD(A7<.+%?QM"0B%TG3& -XM@#H`=,&A%&X)"(7`=`6`.`!U>*'\;0D(A7<.#Q!!;7EWI -XM=%+^_\=$)`@P.@8(QT0D!`$```")!"3H6+C\_^EK____C;0F`````%6)Y5=6 -XM4X/L+(MU#(M]"(7V?@@[->"7"@A^"(/$+%M>7UW#QT0D!,28"@C'!"0@20D( -XMZ-F?_O^%P`^$H`(``(L5+'<*",=%V`````"+&H7;=!2)T(/`!(L(A``````=#R+ -XM%5"9"PB+#529"PB)T#G*#X=Z`@``+0!V"0C!^`(#1=@YRHE%W(G0#X);`@`` -XM+0!V"0C!^`(#1=B)1>#'1"0$Q)@*",<$)"!)"0CH-9_^_X7`=%*A9&4)"(L= -XMX)<*"`^O'6AV"@@#';B9"PB%P`^$I````#M=X'P,Z`?X__^-M"8`````H61E -XM"0B%P'08H529"P@M`'8)",'X`@-%V#G8#X2(`0``BP<]____!W0XJ0````0/ -XMA(````")PH'B____^\'B!`,5P*P+"(L"AZ#!;B9"P@!@^X!=%N#QP3I0?___Z%4F0L(+0!V"0C!^`(#1=@!PHE% -XMW(E5X.DD____.UW<#XQD____.UW@#XU;____Z(;W__^-M@````#I2____XD$ -XM).BS5/[_@P6XF0L(`8/N`76EQT0D!,28"@C'!"0@20D(Z".>_O^%P'0-H61E -XM"0B%P`^%UP```*'@EPH(.06XF0L(#XP,_O__#[X5K)@*"/;"`0^$I@```(L- -XM:'8*",<%N)D+"`````"#P0&#X@*)#6AV"@@/A-K]__^A0)H+"(L$B(L`A<") -XM1?`/A*,```"-1?")!"3'1"0$`0```.B7_?__H6AV"@B+%;B9"PB-'(4````` -XM`QU`F@L(BP.!/)#___\'#X6+_?__C4H!C12-`````.L#@\$!B0VXF0L(BP.+ -XM!!"#P@0]____!W3HZ6+]___H4O;__XGVZ6S^__^#Z`&CN)D+"(/$+%M>7UW# -XMZ#;V___I'____\=%V`````#'1=P`````QT7@`````.G._?__QP0D(````.C+ -XM4/[_QP6XF0L(`0```.D'_?__B7>E9_/__BQ50;@D(A=)TP8`Z`'2\ -XMH5QN"0B%P`^$N````(`X``^$KP```(L5+&X)"(72#X2A````@#H`#X28```` -XMB00DQT0D"#`Z!@C'1"0$`0```.A1M/S_B5PD!(DT).CY^___H6AN"0B%P'0) -XM@#@`#X6B````H2QN"0C'1"0(,#H&",=$)`0!````B00DZ!:T_/^#Q!!;7EW# -XMQT0D"#`Z!@C'1"0$`0```(D$).CWL_S_QT0D!`$```")-"3HF_O__Z%H;@D( -XMA7>F53?[_QT0D"#`Z!@C' -XM1"0$`0```(D$).AYL_S_Z4'___^0C;0F`````%6)Y5=64X/L'(M]"(L5N)D+ -XM"#G7#X3$````.SW@EPH(#XVX````A?\/A+@```")^(G^@^`'P?X#B47LZS&- -XM=@"+1>P!\#G##Y_`A,!T;<<$)`T```#HED[^_S'2.SW@EPH(QP6XF0L(```` -XM`'UPB?LITXU#!(/X"'82H>1M"0B%P'0)@#@`#X5:`0``A=M_=/?;@_L$?A*A -XM6&\)"(7`=`F`.``/A?H```"`/<"9"P@`=8XYWP^7UW#QP0D#0```.C^3?[_ -XMQP6XF0L(`````(/$'%M>7UW#@_L$?A*A9&\)"(7`=`F`.``/A8@```"`/<"9 -XM"P@`#X2M````B=.)_H'C^````(/F^#GS#X3/````BQ5H=@H(B57PBPU`F@L( -XMBP21@3RP____!W0K.?-](8/#",<$)`D```#HA4W^_SG>?^VA:'8*"(E%\(L- -XM0)H+"(DUN)D+"*&XF0L(B?HIPHE4)`2+5?#!X`(#!)&)!"3H?_G__^LDB5PD -XM"(E<)`2)!"3HZ:[\_\=$)`@P.@8(B5PD!(D$).BEL?S_B3VXF0L(@\0<6UY? -XM7<.+%6AV"@B)5?"+#4":"PCKG8E\)`B)?"0$B00DZ*:N_/_'1"0(,#H&"(E\ -XM)`2)!"3H8K'\_^N[H6AV"@B)1?"+#4":"PCI9/___Y!5B>575E.#[`R+?0BA -XM:'8*"#G'#X3J````.SW(=@H(#X_>````B?LIPX7;#XX``0``]@6LF`H(`0^$ -XMB````(L5:'8*"*%`F@L(BP20BQ"%TG1TBQ7@EPH(B=&#Z0%T(X$\B/___P=U -XM&HT4D.L0C78`BT+X@^H$/?___P=U!8/I`77NB0PDZ%;]__^+%;B9"PBAX)<* -XM"(L-:'8*""G0B40D!*%`F@L(P>("`Q2(B10DZ$SX__^#ZP%T1/8%K)@*"`$/ -XMA7C___^#^P%^%:%`;PD(A`.@")]G5'H01O"0B% -XMP'2R@#@`=*V)WO?>,=N%]G\+ZZ&-="8`H01O"0B#PP''1"0(,#H&",=$)`0! -XM````B00DZ,RO_/\Y\W7@_X!?BF)="0(B70D!(D4).C:K/S_ -XMQT0D"#`Z!@B)="0$B00DZ):O_/_I0O___Z$$;PD(A0C70F -XM`%6)Y5.#["2A)"P)"(U=],=%^`,```#'1?0H+0D(B40D",=$)`0<+`D(B1PD -XMZ`\H``"A$"P)",=%]!@M"0C'1"0$""P)"(D<)(E$)`CH[R<``*%,+`D(QT7T -XM""T)",=$)`1$+`D(B1PDB40D".C/)P``H3@L"0C'1?3X+`D(QT0D!#`L"0B) -XM'"2)1"0(Z*\G``"A8"P)",=%].@L"0C'1"0$6"P)"(D<)(E$)`CHCR<``*%T -XM+`D(QT7TV"P)",=$)`1L+`D(B1PDB40D".AO)P``H20L"0C'1?3(+`D(QT0D -XM!!PL"0B)'"2)1"0(Z$\G``"A$"P)",=%]+@L"0C'1"0$""P)"(D<)(E$)`CH -XM+R<``*%,+`D(QT7TJ"P)",=$)`1$+`D(B1PDB40D".@/)P``H3@L"0C'1?28 -XM+`D(QT0D!#`L"0B)'"2)1"0(Z.\F``"A8"P)",=%](@L"0C'1"0$6"P)"(D< -XM)(E$)`CHSR8``*%T+`D(QT7T>"P)",=$)`1L+`D(B1PDB40D".BO)@``BPW( -XMF0L(A``````ZQ"#QP>`4@_\=```` -XMBU7@BX($+`D(C01`BQR%J&T)"(7;=-D/MC.)\(3`=-")'"3HI:<``(E%[(D$ -XM).@FJOS_BU7@BXH0+`D(B47P@_G_#X2?````@'L!`(GP#[;0=%*+7=B+==P! -XMTP^V`S@$%G1?/#5T6RP!=86+==B-5>R)5"0$B30DZ,`B``"+5>"+@A`L"0B% -XMP'5T#[:"""P)"(@#Z5C___^0C70F`(/$+%M>7UW#BUW8`=,/M@/KN,=%W$`I -XM"0C'1=C`JPL(Z1[___^-!+^-!(4(+`D(B40D!(U%[(E,)`B)!"3HWB,``,8# -XM->D)____BT78C77LB70D!(D$).A$(@``Z?+^__^)1"0(C02_C02%""P)"(UU -XM[(E$)`2)-"3HHB,``.G0_O__C;8`````C;PG`````%6)Y5=64X'L3`@``(U= -XMR(D<).AEK?S_B1PDQT0D!!P```#H9:C\_XU%V(E<)`2)1"0(QP0D`0```.C^ -XMI_S_C478B00DQT0D!&`>!0CH/RO]_XV%R/?__XE%\,<%8&4)"`$```#'!2!W -XM"@CZ`PD(QP0D++((".@RI_S_A<")PW0)@#@`#X6:`P``NS&R"`C'1"0$``@` -XM`,<$)(!E"0CHWC3^_XE<)`3'!"2`90D(Z+JK_/^%P`^.G`(``,<$)`[/"`CH -XM%JC\_X7`#X6>`P``,=*)%91O"0C'!"0*!`D(Z/JG_/^%P`^$9P,``+H!```` -XMB16X;PD(QP0D#00)".C;I_S_QP0D$`0)"*.(;PD(Z,JG_/_'!"03!`D(H\1O -XM"0CH&:;\_\<$)!8$"0BCK&\)".@(IOS_HZ!O"0BAH&T)"(7`="R[H&T)"(UU -XM\(VV`````(ET)`2)!"3H<*[\_XG"B=B#PPSH:.G__XL#A'<*"(7;=&Z`.P!T -XM::$<;PD(AB)1"0$C47LB00DZ%/G__^+ -XM1>B)1"0$BT7LB00DZ,'B__^-1=B)!"3H]B?]_^B!^___@<1,"```6UY?7<.A -XM4&X)"(7`=`F`.``/A0K___^+%4QO"0@QP(72#X3__O__,<"`.@`/E<#I\O[_ -XM_XL5-&\)"#'`A=(/A,+^__\QP(`Z``^5P.FU_O__@_C_#X27`0``A<`/A$$! -XM``"A@)@*"(L=#'8*",=$)`R4"`D(QT0D"!8```#'1"0$!P```(D$).BNAOW_ -XMB5PD!(D$).A"@```H:!M"0C'!:QO"0A0````QP6@;PD(`````,<%N&\)"``` -XM``"%P,<%E&\)"``````/A)O]__^[H&T)"(G8,=*#PPSH[.;__XL#A*#Q!`QP%M>7<.#Q!"P -XM`5M>7<-5B>575C'V4S';@^P,BT4(BSB+@P`L"0B)/"2)1"0$Z'BB_/^%P'08 -XM@\8!@\,4@_X&==^#Q`RX_____UM>7UW#BTT,BP&+402-#+:)!(T(+`D(B12- -XM#"P)"(M%$(D$C1`L"0B#Q`PQP%M>7UW#C78`58GE5U8Q]E,QVX/L#(M]".LV -XMBX80+`D(@_C_="")1"0(C02;C02%""P)"(E$)`2+A@`L"0B)!"3H@R```(/# -XM`8/&%(/[!G0JBT<$A53,=N#[!2-M"8`````BX.D;0D(@\,, -XMB00DZ!\O``"!^^`!``!UYV8QVXUT)@"+@X1O"0B#PPR)!"3H_RX``(/[5'7J -XMH8"8"@C'1"0,&00)",=$)`@!````QT0D!`0```")!"3'!:QM"0CX'`D(Z/N" -XM_?^)!"3H8RS^_\=$)`PO!`D(QT0D"`(```#'1"0$!````,<%N&T)""P$"0BC -XML&T)"*&`F`H(B00DZ+^"_?^)!"3H)RS^_\=$)`P\!`D(QT0D"`,```#'1"0$ -XM!````,<%Q&T)")_1"`BCO&T)"*&`F`H(B00DZ(."_?^)!"3HZRO^_\=$)`Q, -XM!`D(QT0D"`0```#'1"0$!````,<%T&T)",`%"0BCR&T)"*&`F`H(B00DZ$>" -XM_?^)!"3HKRO^_\=$)`QA!`D(QT0D"`4```#'1"0$!````,<%W&T)"$V]"`BC -XMU&T)"*&`F`H(B00DZ`N"_?^)!"3H!_?^)!"3HORK^_\=$)`RI!`D(QT0D"`D```#'1"0$ -XM!````,<%#&X)"*8$"0BC!&X)"*&`F`H(B00DZ!N!_?^)!"3H@RK^_\=$)`R[ -XM!`D(QT0D"`H```#'1"0$!````,<%&&X)"$T;"0BC$&X)"*&`F`H(B00DZ-^` -XM_?^)!"3H1RK^_\=$)`S.!`D(QT0D"`L```#'1"0$!````,<%)&X)",L$"0BC -XM'&X)"*&`F`H(B00DZ*.`_?^)!"3H"RK^_\=$)`SA!`D(QT0D"`P```#'1"0$ -XM!````,<%,&X)"-X$"0BC*&X)"*&`F`H(B00DZ&>`_?^)!"3HSRG^_\=$)`SY -XM!`D(QT0D"`T```#'1"0$!````,<%/&X)"+/1"`BC-&X)"*&`F`H(B00DZ"N` -XM_?^)!"3HDRG^_\=$)`P(!0D(QT0D"`X```#'1"0$!````,<%2&X)"`4%"0BC -XM0&X)"*&`F`H(B00DZ.]__?^)!"3H5RG^_\=$)`P -XM!0D(QT0D"!8```#'1"0$!````,<%M&X)"""_"`BCK&X)"*&`F`H(B00DZ`]^ -XM_?^)!"3H=R?^_\=$)`RM!0D(QT0D"!<```#'1"0$!````,<%S&X)"*;K"`BC -XMN&X)"*&`F`H(B00DZ--]_?^)!"3H.R?^_\=$)`S#!0D(QT0D"!@```#'1"0$ -XM!````,<%V&X)"'CG"`BCT&X)"*&`F`H(B00DZ)=]_?^)!"3H_R;^_\=$)`S0 -XM!0D(QT0D"!D```#'1"0$!````,<%Y&X)",0>"0BCW&X)"*&`F`H(B00DZ%M] -XM_?^)!"3HPR;^_\=$)`S?!0D(QT0D"!H```#'1"0$!````,<%\&X)"*/!"`BC -XMZ&X)"*&`F`H(B00DZ!]]_?^)!"3HAR;^_\=$)`SU!0D(QT0D"!L```#'1"0$ -XM!````,<%_&X)"(T%"0BC]&X)"*&`F`H(B00DZ.-\_?^)!"3H2R;^_\=$)`P# -XM!@D(QT0D"!P```#'1"0$!````,<%"&\)"->\"`BC`&\)"*&`F`H(B00DZ*=\ -XM_?^)!"3H#R;^_\=$)`P3!@D(QT0D"!T```#'1"0$!````,<%%&\)"$D;"0BC -XM#&\)"*&`F`H(B00DZ&M\_?^)!"3HTR7^_\=$)`PD!@D(QT0D"!X```#'1"0$ -XM!````,<%(&\)""$&"0BC&&\)"*&`F`H(B00DZ"]\_?^)!"3HER7^_\=$)`PT -XM!@D(QT0D"!\```#'1"0$!````,<%+&\)"#$&"0BC)&\)"*&`F`H(B00DZ/-[ -XM_?^)!"3H6R7^_\=$)`Q-!@D(QT0D""````#'1"0$!````,<%.&\)"$H&"0BC -XM,&\)"*&`F`H(B00DZ+=[_?^)!"3H'R7^_\=$)`QE!@D(QT0D""$```#'1"0$ -XM!````,<%1&\)"&(&"0BC/&\)"*&`F`H(B00DZ'M[_?^)!"3HXR3^_\=$)`Q^ -XM!@D(QT0D""(```#'1"0$!````,<%4&\)"'L&"0BC2&\)"*&`F`H(B00DZ#][ -XM_?^)!"3HIR3^_\=$)`R6!@D(QT0D"",```#'1"0$!````,<%7&\)"),&"0BC -XM5&\)"*&`F`H(B00DZ`-[_?^)!"3H:R3^_\=$)`RL!@D(QT0D""0```#'1"0$ -XM!````,<%:&\)"/G."`BC8&\)"*&`F`H(B00DZ,=Z_?^)!"3H+R3^_\=$)`S" -XM!@D(QT0D""L```#'1"0$!````,<%>&X)"+\&"0BC;&\)"*&`F`H(B00DZ(MZ -XM_?^)!"3H\R/^_\=$)`S6!@D(QT0D""P```#'1"0$!````,<%H&T)"-,&"0BC -XM?&X)"*&`F`H(B00DZ$]Z_?^)!"3HMR/^_\=$)`SI!@D(QT0D""T```#'1"0$ -XM!````,<%P&X)".8&"0BCI&T)"*&`F`H(B00DZ!-Z_?^)!"3H>R/^_\=$)`S] -XM!@D(QT0D""4```#'1"0$!````,<%=&\)"`````#'!7AO"0@`````H\1N"0BA -XM@)@*",<%@&\)"`T$"0B)!"3HPWG]_XD$).@K(_[_QT0D#!,'"0C'1"0()@`` -XM`,=$)`0$````QP6,;PD(#L\("*.$;PD(H8"8"@B)!"3HAWG]_XD$).CO(O[_ -XMQT0D#"D'"0C'1"0()P```,=$)`0$````QP68;PD(%@0)"*.0;PD(H8"8"@B) -XM!"3H2WG]_XD$).BS(O[_QT0D##D'"0C'1"0(*````,=$)`0$````QP6D;PD( -XM$P0)"*.<;PD(H8"8"@B)!"3H#WG]_XD$).AW(O[_QT0D#$L'"0C'1"0(*0`` -XM`,=$)`0$````QP6P;PD("@0)"*.H;PD(H8"8"@B)!"3HTWC]_XD$).@[(O[_ -XMQT0D#+@("0C'1"0(*@```,=$)`0$````QP6\;PD($`0)"*.T;PD(H8"8"@B) -XM!"3HEWC]_XD$).C_(?[_QP7(;PD(`````,<%S&\)"`````"CP&\)"(/$%%M= -XMPU6)Y8'L2`@``(V%\/?__XE%\(M%"(E=](EU^(E]_,<%('<*"+;1"`B)!"3H -XM`,;]_\=$)`3P(P8(B<.)!"3H?AG]_XL#A<`/A+0```"+$(72#X2J````@_HM -XM#X2V````B9W@]___QX78]___`````,>%W/?__P````")!"2_)`<)".@:D@`` -XMB00DZ%(A_O_'1"0$,"H("(F%S/?__XD$).@<&?W_B[7,]___N04```#\\Z8/ -XMA%W/?__P````!T(,<$)'<``!#H>A7]_\>%V/?__P````#'A=SW__\` -XM````C4,$B87@]___BT,$AG'1"0$`````,<$)"`+"0CHH&\``.F%_O__ -XMB[7,]___O_[>"`BY!0```/SSIG04B[7,]___OS,'"0BY!@```/.F=2^AH&\) -XM",<$)"`+"0B)1"0$Z%UO``#I0O[__XE4)`3'!"0D"PD(Z$AO``#I+?[__XNU -XMS/?__[\6!`D(N0,```#SIG2]B[7,]___OV$'"0BY!0```/SSI@^$40(``(NU -XMS/?__[\3!`D(N0,```#SI@^$.0(``*&@;0D(OJ!M"0B%P'42Z;`#``"#Q@R+ -XM!H7`#X2C`P``BY7,]___B00DB50D!.@(E_S_A#W__^+0@2%P'0R -XMBS"%]G0LBXW<]___A+A#W__^+0@2)!"3HCHP``(D$).@RC_S_B<>+1@2%P'0RBP"% -XMP'0LBX7<]___A<`/AG*_/__BX78]___ -XMA<`/A+S\__\/OL*)1"0$QP0D=```$.BN#_W_Z:3\__^)]HV\)P````!5B>57 -XM5E.#[!R+10R+70C'!2!W"@@UT@@(B47LH:!M"0B%P`^$`P$``+Z@;0D(ZPV# -XMQ@R+!H7`#X3O````B5PD!(D$).C3DOS_AT!``"+%4QO"0@Q -XMP(72=`@QP(`Z``^5P(L5!&\)"*/DF`H(A=)T"H`Z`+@!````=12+%7!O"0@Q -XMP(72=`@QP(`Z``^5P*-X=PH(@\0<6UY?7<.+%8!O"0C'1?"`;PD(A=*)5>AU -XM)HE=#,=%"',``!"#Q!Q;7E]=Z4H._?^#1?`,BT7PBP"%P(E%Z'3:B5PD!(M] -XMZ(D\).BGD?S_AR)/"3H9(S\_XM5\(E""(L5K&\)"*&@ -XM;PD(@7WPI&\)"(D5=)D+"*/$F0L(=`V!??"8;PD(#X4Z____B54,Z!N"0B%P`^$6?[__X`X``^$ -XM4/[__XE$)`2)'"3H[)#\_X7`#Y3`#[;`"05H90D(Z3'^__^+=>RX6`<)"+D$ -XM````_(G'\Z8/A9@```"+1?#'0`@!````H91O"0B#/<1O"0@!BPV(;PD(HL"9 -XM"PBAN&\)"*+(EPH(&<#WT(/@`H7)#Y7""="!??"`;PD(HJR8"@AT#8%]\+QO -XM"0@/A77^__^AK&\)"(E%#*&@;PD(B44(@\0<6UY?7>GER?__N`$```#I'?[_ -XM_XE$)`2)'"3H.Y#\_X7`#Y3`#[;`HVAE"0CI&____XMU[+B1Y`@(N0,```#\ -XMB575E.#[!RA@)@*",=$)`S8"`D(QT0D"`$```#'1"0$!P```(D$).CB -XM;?W_B00DZ'IG``"A@)@*",=$)`QF!PD(QT0D"`(```#'1"0$!P```(D$).BU -XM;?W_B00DZ$UG``"A@)@*"(L=H&\)"(LUK&\)",=$)`P`"0D(QT0D"`,```#' -XM1"0$!P```(D$).A\;?W_B5PD"(ET)`2)!"3H#&<``(`]R)<*"``/A+`"``"A -XM@)@*",=$)`S,[@@(QT0D"`4```#'1"0$!P```(D$).@Z;?W_B00DZ*(6_O_' -XM1"0$,"H("(G'B00DZ'`._?^A@)@*",=$)`R$!PD(QT0D"`0```#'1"0$!P`` -XM`(D$).C[;/W_B7PD!(D$).B/9@``N$7)"`B`/<"9"P@`#X2"`@``B00DZ$46 -XM_O_'1"0$,"H("(G#B00DZ!,._?^A@)@*",=$)`R>!PD(QT0D"`<```#'1"0$ -XM!P```(D$).B>;/W_B5PD!(D$).@R9@``]@6LF`H(`0^$K`$``*&`F`H(QT0D -XM#+('"0C'1"0("@```,=$)`0'````B00DZ&!L_?^)!"3HR!7^_\=$)`0P*@@( -XMB<.)!"3HE@W]_Z&`F`H(QT0D#,0'"0C'1"0("0```,=$)`0'````B00DZ"%L -XM_?^)7"0$B00DZ+5E```/O@6LF`H(J`%T>*@"#X5]`0``H8"8"@C'1"0,M@<) -XM",=$)`@+````QT0D!`<```")!"3HW6O]_XD$).A%%?[_QT0D!#`J"`B)PXD$ -XM).@3#?W_H8"8"@C'1"0,W@<)",=$)`@,````QT0D!`<```")!"3HGFO]_XE< -XM)`2)!"3H,F4``(L=H&T)"(7;#X2/````,?:)]HN&J&T)"(7`=`6`.`!U):&` -XMF`H(QT0D#/0'"0C'1"0(#0```,=$)`0'````B00DZ$QK_?^)!"3HM!3^_\=$ -XM)`0P*@@(B<.)!"3H@@S]_XN&H&T)"(E<)`S'!"3\!PD(B40D"(N&I&T)"(E$ -XM)`3HKF0``(D<).BV"_W_BX:L;0D(@\8,A<`/A77____'!"0*````Z*DG_O^) -XM/"3HD0O]_X/$'%M>7UW#H8"8"@C'1"0,M@<)",=$)`@+````QT0D!`<```") -XM!"3HM&K]_^E/_O__H8"8"@C'1"0,D>0(",=$)`@&````QT0D!`<```")!"3H -XMBFK]_^E+_?__H8"8"@C'1"0,L@<)",=$)`@*````QT0D!`<```")!"3H8&K] -XM_^E^_O__H8"8"@C'1"0,F0<)",=$)`@(````QT0D!`<```")!"3H-FK]_^E4 -XM_?__D%6)Y8M%"%VBX&\)"+C@;PD(PXVT)@````"-O"<`````58GEBT4(78M0 -XM!(L`B17<;PD(H]AO"0BXV&\)",.-=@!5B>53B<.#[`3'!"08````Z'L6``"+ -XM$XL2QT`$_____\=`"`````")$,=`#`````#'0!``````QT`4`````(/$!%M= -XMPXVV`````(V_`````%6)Y5.)PX/L!(7`=$N+0!"%P'0,Z.?____'0Q`````` -XMBT,4Z-C___^+0P2#^/]\"87`?AR#^`)^#(VT)@````#HQXC\_XM#"(D$).@@ -XM%0``B1PDZ!@5``"#Q`1;7<.)]E6)Y5=6B=93@^P,B47PBSJ+&(L7.1.)V74( -XMZQF-="8`B<&+012%P'0W.Q!U\X/!%(G#B4WPC4<$B0:+1@2#Z`&%P(E&!'0J -XMBU,0A=)T$HU#$(GRZ*C___^#Z`%T#8UV`(/$##'`6UY?7<.+0Q"%P'7OBT,4 -XMBU7PB0*)V,=#%`````#H&?___X/$#+@!````6UY?7<.-M@````"-OP````!5 -XMB>6#["B+10B+4`2+`(72B57\B47X=!V+#=1O"0@QP(7)=`^-5?BXU&\)".@O -XM____,<#)P\=$)`PH"PD(QT0D"`,```#'1"0$"0```*&`F`H(B00DZ$9H_?^) -XM!"3HWF$``+C_____R<.-M"8`````58GEBTT,BU4(BP$/M@"`/!`U=`)=PX'Z -XMP*L+"'0:@?K`I`L(=>Z`N,"K"P@U=.6)30A=Z5C___^`N,"D"P@U=>[KVXVV -XM`````(V\)P````!5B>57B<=6B=93B?N#[!R)3?"+`HL0.1=U".L8C70F`(G# -XMBT,4A<`/A,L````[$)!U[HG'BT8$@P8$@^@!A<")1@1U+(M'$(7`=`SH\/W_ -XM_\='$`````"+1P2#^/]\"87`?D>#^`)^,.C?AOS_C78`BU\0A=L/A*0```"+ -XM50B+1Q")%"2+3?")\NAR____@\0<,7<.)V.@5_/__H]1O"0CI>___ -XM_XUT)@"-O"<`````58GE@^PHB5WTB<.)=?B)SHE]_(G7BQ*+`#L"=#.+0Q2% -XMP'04B?KHU?___XM=](MU^(M]_(GL7<.X`0```,____ZX>-M@`` -XM``"-OP````!5H=1O"0B)Y8M5"(M-#%WI//___XVV`````(V_`````%6)Y8/L -XM"*'4;PD(Z'#[___'!=1O"0@`````R>D0UO__58GE5U93@^P-=@"!^_\````/AS0!``"AX%T)"(M$F#3VQ`)T/X/[ -XM?\8&7@^$)P$``(G8@\A`B$8!@\8"BU4(@T7P`8M%\#E"!`^.DP```(M5"(L" -XMBU7PBQR0B=^!YP```$!TIX/[7@^$T````(/[7`^$QP```(/[((GV=#Z%_P^% -XMA@```('[_P````^'TP```*'@70D(BT28-*D```0`=&J!^_\````/A\@```"A -XMX%T)"(M$F#3VQ$!U4('C__\_`(DT)(E<)`3HKGP``(M5"(-%\`$!QHM%\#E" -XM!`^/;?___XM%#(L0A=)T#(M`!(7`=`6(!H/&`<8&`(M%[(/$'%M>7UW#C;8` -XM````B=C!^`:#X`>#P#"(1@&)V,'X`X/@!X/`,(A&`HG8@^`'@\`PQ@97UW#C70F`'Q3@_L"?TZ#ZP&X -XM:#T)")!T!;AT/0D(B30DB40D!.B-_?__QT0D!#`J"`B)PXD$).C+`_W_H4@- -XM"0B)7"0$B00DZ`I<``")70B#Q!Q;7E]=Z0L#_?_HPH'\_Z&`F`H(QT0D#.$+ -XM"0C'1"0(!P```,=$)`0)````B00DZ#%B_?^)10RA2`T)"(E%"(/$'%M>7UWI -XMNEL``(UV`(V\)P````!5B>6#["B+10B)??R)7?2)=?B+&(U3!(E5[(MS!(GW -XM@>?__S\`#X2"`0``BPN)R"7__S\`@_AQ=PXUT)@"!__\```!W-Z'@70D(BT2X-/;$`70S@_\_ -XMQT7P?P```'3"@>:?````B77PZ[>-=@"-1]"#^$9W\/\DA2P,"0B)/"3HU7_\ -XM_^O(B7PD!,<$)`4,"0CH@X'\_X7`=;GK@L=%\`L```#I>?___\=%\`D```#I -XM;?___\=%\`T```")]NE?____QT7P"@```(UT)@#I3____\=%\`P```"-="8` -XMZ3_____'1?`;````C70F`.DO____QT7P"````(UT)@#I'____\=%\`<```"- -XM="8`Z0_____'1?!<````C70F`.G__O__BUWL,=(QR8/#!(/X!P^'T@```(M- -XM[(G"BT$$B6#[!B%THE=](G3B77XB<:)??P/A.@```")UX'G````0'4>@?K_ -XM````#X=0`0``H>!="0B+1)`T]L0"#X7B````@_M>#X1"`0``@_M<#X0'`0`` -XM@_L@=#Z%_XUT)@!U1('[_P````^'X0```*'@70D(BT28-*D```0`="B!^_\` -XM```/ARD!``"AX%T)"(M$F#3VQ$!U#HE<)`2)-"3H7',``.M0QT0D!%P```") -XM-"3H2G,``(G8P?@&@^`'@\`PB40D!(DT).@S#P#") -XM1"0$B30DZ!ES``"-0S")1"0$B30DZ`IS``"+7?2+=?B+??R)[%W#QT0D!%X` -XM``")!"3H[7(``,=$)`1`````B30DZ-UR``#KT<=$)`1>````B30DZ,MR``"# -XM^W\/A(<```"#RT")7"0$B30DZ+-R``#KIXD<).CE?/S_Z1O____'1"0$7``` -XM`(DT).B4<@``QT0D!%P```")-"3HA'(``.EU____B10DZ+-\_/_IK/[__\=$ -XM)`1<````B30DZ&)R``#'1"0$7@```(DT).A2<@``Z4/___^)'"3H@7S\_Y"- -XM="8`Z<[^___'1"0$/P```(DT).@K<@``Z1S___^-M@````!5B>6#[!B%THE= -XM](G3B77XB<:)??QT.8L2BW@$Z/_]__^+4Q"%TG0XB?#HT?___XM#%(7`=!J) -XM?@2+4Q2)\(M=](MU^(M]_(GL7>NTC70F`(M=](MU^(M]_(GL7<.-=@#'1"0$ -XM(@```(DT).BP<0``B30DZ`AR``"+0P2)1"0(C4,(B40D!(L&B00DZ##Z___K -XMG8VT)@````"-O"<`````58GE@^PHAR+2Q"#P`2)1>R+1@2#Z`&) -XM1?")^.BL____BUWTBW7XBWW\B>Q=PXGXB''1"0$(@```(D\).CA<```B3PDZ#EQ -XM``"+0P2)1"0(C4,(B40D!(L'B00DZ&'Y__\QP.N1C;8`````C;PG`````%6) -XMY593@^PPBU4(QT7D`````,=%Z`````#'1>P`````A=)T;(L"B47PBT($B47T -XMH=1O"0B%P'1(C77DQT0D!"(```")-"3H97```,=$)`2PD0@(B30DZ'7]_/^+ -XM#=1O"0B-5?")\.C%_O__@\`!?C")-"3HN/S\_X/$,%M>7<.0BT7TA7<.)]L=%\/AO"0C'1?0`````ZX^A@)@*"(M=\,=$)`P0#`D(QT0D"`0` -XM``#'1"0$"0```(D$).BX6_W_B5PD!(D$).A,50``ZYJ0D)"0D)"0D)"058GE -XMBT4(BU4,#[9(&(@*#[9(&8A*`0^V2!.(2@(/MD@5B$H##[9($(A*!`^V2!&( -XM2@4/MD@2B$H&#[9(%XA*"0^V2!R(2@H/MD@=B$H+#[9(%(A*#`^V2!J(2@T/ -XMMD@;B$H.#[9(%HA*#P^V2!^(2A`/MD@>B$H1#[9((HA*$@^V2""(2A#[9($HA*(@^V -XM2!>(2B`/MD`8B$(A7<.058GEBT4(78M`!(/P!,'H`H/@`<.-M@````"-OP`` -XM``!5B>6+10A=BT`()0`#```]``,```^4P`^VP,.0C70F`%6)Y8M%"%V+0`PE -XM``$``,-5B>53@^P$BUT(B1PDZ-IY_/^%P'0*@\0$6UW#C70F`(E="(/$!%M= -XMZ;][_/^-=@!5B>564X/L$(MU"(M=#.L*Z$=[_/^#."-U(HE<)`C'1"0$`0`` -XM`(DT).C2^OW_@\`!=-TQP(/$$%M>77`P``BU7@`````QT7L`````(E5S(E%R.MMNRT```"_`0```,9%TP&+5>R+LD`/"0B) -XM-"3HD7S\_XU\!P$!?>2+1>0[!>"7"@@/C<`"``"`?=,`#X2A`@``#[[#B70D -XM"(E$)`3'!"1E#0D(Z$Y1``"+5>R+@DP/"0B#P@R)5>R%P`^$P0(``(M5[(N" -XM2`\)"#M%X'1=C11`BT7(*T7,@WW@_XN$D$`M"0BZ`;H("`^$B@(``(E$)`B) -XM5"0$QP0D6PT)".CV4```BT7LBU7(*U7,BX!(#PD(B47@C01`BX2"0"T)"(D$ -XM).C>>_S_B47DB47HBU7LBT7@BXI$#PD(C11`BT7(*T7,C120B<@C@D0M"0B# -XM^`$9V_?3@^,KA8I(+0D(#X7R_O__A-L/E473=0N+1=B%P`^$-?___P^V?=/I -XMY/[__X/&!,=%W`(```#I+/[__X/&!,=%W`$```#I'?[__X-%V`&#Q@3I$?[_ -XM_\=%V`````#'1=P`````QP7H;PD(`0```(L6A=(/A$S^__^+1=R-?@3!X`*) -XM1<2+1=S!X`:)1<"+`H/X*P^$FP```(/X+<9%\P`/A(X```")%"2[0`\)".B$ -XM<```B<:A0`\)"(7`=1+K?XVT)@````"#PPR+`X7`=&^)="0$B00DZ`=X_/^% -XMP'7G@'WS*P^$F````(!]\RT/A,@```"+0PB+5<"+2P0K5<2-!$"-!(+WT2&( -XM1"T)""&(2"T)"(7_#X2.````BQ>%T@^$A````(L"@\<$@_@K#X5E____@\($ -XMB$7SZ6?___^A@)@*",=$)`QK#0D(QT0D"`(```#'1"0$"````(D$).BC5?W_ -XMB70D!,<$)#8``!")1"0(Z._S_/^`??,K#X5H____BT,(BU7`*U7$BTL$C01` -XMC02""8A$+0D(]]$AB$@M"0B%_P^%7UWI^_7\_XM# -XM"(M+!(M5P"M5Q(T$0(T$@HG*]]()B$@M"0@AD$0M"0CI,?___XET)`3'!"1G -XM#0D(Z+1.``#I8?W__\=$)`A%R0@(BU7HQP0D8`T)"(E4)`3HE$X``(M%[`-] -XMZ(E]Y(NP0`\)".D1_?__ND7)"`CI;/W__\<$)`H```#HBA'^_XM%U(E%"(/$ -XM3%M>7UWI:/7\_\=%V`````#'1=P`````Z5G\__^0D)"0D%6)Y8/L&,<$)``` -XM``")7?B)=?SHY';\_XLU]&\)",=$)`Q\$@D(QT0D"`P```#'1"0$$P```(G# -XMH_!O"0BA@)@*"(D$).A65/W_B=HI\HE<)`B)="0$B50D#(D$).C>30``BUWX -XMBW7\B>Q=PXUT)@!5B>6+10B%P'0)H>QO"0B%P'0"7<-=Z7%X_/^0C70F`%6X -XM`@```(GE@^P8BQ7H=@H(A=)U!:$$=@H(QT0D"`X```#'1"0$J1()"(D$).CJ -XM6#[!B)=?R+=0P/KW4(B5WXA?9U!&:^`0"+ -XM#?1O"0B%R70UB30DZ$]W_/^%P(G#="")="0(B1PDQT0D!`````#H=73\_XG8 -XMBW7\BUWXB>Q=P^AH____Z]G'!"0`````Z,9U_/^C]&\)".NXC78`58GE4X/L -XM!(M="(7;=0*S`:'T;PD(A6#[!B)7?B+70R)=?R+ -XM=0B%VW4"LP&A]&\)"(7`=$&%]G0>B5PD!(DT).@K;HJO[__XG8BW7\BUWXB>Q=P\<$)`````#H -XM_G3\_Z/T;PD(ZZR0D)"0D)"0D)"0D%6)Y8/L&*&`F`H(QT0D#+@2"0C'1"0( -XM#````,=$)`04````B00DZ&52_?^)!"3H_4L``*&`F`H(QT0D#.@2"0C'1"0( -XM#0```,=$)`04````B00DZ#A2_?^)!"3HT$L``*&`F`H(QT0D#!P3"0C'1"0( -XM#@```,=$)`04````B00DZ`M2_?^)!"3HHTL``*&`F`H(QT0D#%03"0C'1"0( -XM#P```,=$)`04````B00DZ-Y1_?^)!"3H=DL``*&`F`H(QT0D#)03"0C'1"0( -XM$````,=$)`04````B00DZ+%1_?^)!"3H24L``*&`F`H(QT0D#-03"0C'1"0( -XM$0```,=$)`04````B00DZ(11_?^)!"3H'$L``*&`F`H(QT0D#/P3"0C'1"0( -XM$@```,=$)`04````B00DZ%=1_?^)!"3H[TH``*&`F`H(QT0D#"@4"0C'1"0( -XM$P```,=$)`04````B00DZ"I1_?^)!"3HPDH``*&`F`H(QT0D#&`4"0C'1"0( -XM%````,=$)`04````B00DZ/U0_?^)!"3HE4H``*&`F`H(QT0D#)04"0C'1"0( -XM%0```,=$)`04````B00DZ-!0_?^)!"3H:$H``*&`F`H(QT0D#+04"0C'1"0( -XM%@```,=$)`04````B00DZ*-0_?^)!"3H.TH``*&`F`H(QT0D#.P4"0C'1"0( -XM%P```,=$)`04````B00DZ'90_?^)!"3H#DH``*&`F`H(QT0D#!P5"0C'1"0( -XM&````,=$)`04````B00DZ$E0_?^)!"3HX4D``,<$)`&Z"`CHU4D``*&`F`H( -XMQT0D#$P5"0C'1"0(&0```,=$)`04````B00DZ!!0_?^)!"3HJ$D``*&`F`H( -XMQT0D#'P5"0C'1"0(&@```,=$)`04````B00DZ.-/_?^)!"3H>TD``,G#B?:- -XMO"<`````58GE4XG#@^P4H8"8"@C'1"0,T!4)",=$)`@$````QT0D!!0```") -XM!"3HHD_]_XE<)`2)!"3H-DD``(/$%%M=PU6)Y5=64XG3@^P\B470C47LB47< -XMC47DB57LB4W,B474C47`!````QT78`0`` -XM`,=$)`1H/0D(B00DZ#[J___'1"0$,"H("(G'B00DZ'SP_/^+1=`/MA08@/H! -XM#X3O````H>"E"PB%P'0E#[;2ON"E"P@Y%>2E"PAT?K[@I0L(ZP4Y5@1T57B==6B<93@^PLQT7D```` -XM`,=%Z`````#'1>P`````BP"%P`^$L0```(U=Y,=$)`2PD0@(B1PDZ+'N_/^) -XM=?"+!H7`=%.-=?#K(XUV`(/X7G0EB40D!(D<).AO80``BT7P@\`$B47PBP"% -XMP'0K)?__/P"#^%QUUHDT).@.Z___@_C_=2)!"3H -XMQ?G__XD'BT7HB4<$@\0LB?A;7E]=PZ&`F`H(,?_'1"0,018)",=$)`@%```` -XMQT0D!!0```")!"3HG$S]_XD$).@T1@``@\0LB?A;7E]=PXUV`(V\)P````!5 -XMB>575E.#[%RA/&0)"(M]"(7`#X2+````C4<$B46TBU\$A=L/A,T#``"+`R7_ -XM_S\`@_@M#X6U`@``BT,$)?__/P"#^"T/A'T#``"-5PBY`0```,=%O,"K"PC' -XM1<``````QT7$`````,=%R`````#'1 -XM7UW#D(UT)@#_)(48%PD(Z`1'__^#Q%Q;7E]=P^CW2/__Z6O____'1<`"```` -XMBQJ#P0&)UH7;#X0S`P``BP,E__\_`(/X+0^%T@(``(M#!(U6!"7__S\`@_@M -XM=9*-40&-!)4`````C30'BQZ%VP^$_`(``(/"`8E5T(M%R(7`#X4=`@``BTW, -XMA*?````C478B50D!(D$).C\7@``C478B00DZ,'K_/^-5=B) -XM%"3H9NO\_XU-V(D,).@[7P``BT7<@\`!P>`"B40D!(M%V(D$).B#]___B47L -XMBT7R)!"3HQ^O\_XM%[(L0@?K_````B56X#X]T`0`` -XMBT7$A<`/A#(!``"+?R)!"3HF.'__XM% -XM[(D$).C=ZOS_Z2O^___'1<@!````D.E0_O__QT7$`0```(UT)@#I0/[__\=% -XMP`$```"-="8`Z3#^___H1D?__X/$7%M>7UW#QT6\P*0+".D7_O__QT7,`0`` -XM`.D+_O__BQ7@I0L(,=N%T@^$R?W__XVV`````(N#Z*4+"(E4)`3'!"1<%@D( -XMB40D".A&0P``BY/LI0L(@\,,A=)UV8/$7%M>7UW#QT6\P*L+",=%P`````#' -XM1<0`````QT7(`````,=%T`(```"-5>R)V.C$^___A<`/A=+^___I6OW__XD< -XM)(UT)@#HJ\3__X7`#X3:`@``BP:)!"3H26$``(E%[(D$).@::/S_B47PZ9S^ -XM__^+3="+1="+-(_!X`*%]@^$H`,``(M5M(L<`H7;#X3C`@``Z&_V__^+1>R) -XM!"3HI.G\_^GR_/__Z!KY__^+1>R)!"3HC^G\_^G=_/__@\$!B4W0Z5#]__^) -XMV.CX^/__C478B00DZ&WI_/_IN_S__[H"````L`C'1;S`JPL(QT7``````,=% -XMQ`````#'1<@`````QT7,`````.GW_/__H8"8"@@QV\=%V`````#'1=P````` -XMQT0D#&T6"0C'1"0(!@```,=$)`04````B00DZ%1(_?^)!"3H[$$``#'2#[:" -XMP*L+"#J#P*L+"'0/C4O_N,"K"PCHGOC__XG:@\,!@?L``0``==>Y_P```+C` -XMJPL(Z(+X__^A@)@*"&8QV\=$)`R$%@D(QT0D"`<```#'1"0$%````(D$).CJ -XM1_W_B00DZ()!```QT@^V@L"D"P@Z@\"D"PAT#XU+_[C`I`L(Z#3X__^)VH/# -XM`8'[``$``'77N?\```"XP*0+".@8^/__H8"8"@C'1"0,GA8)",=$)`@(```` -XMQT0D!!0```")!"3H@T?]_XD$).@;00``QP0D`````.COZO__H8"8"@C'1"0, -XMN!8)",=$)`@)````QT0D!!0```")!"3H2D?]_XD$).CB0```C478B00DZ$?# -XM___I-?O__X-[!"T/A5G^__^+0PB-@,``(U%V(D$),=$)`0;````Z.E:``"+!HU5V(D4 -XM)(E$)`3HV%H``.G7^___C578QT0D!!L```")%"3HP%H``(U-V(ET)`2)#"3H -XM(5T``.FP^___@_@_NG\````/A8O[___ICOO__Z&`F`H(BQ['1"0,S!8)",=$ -XM)`@!````QT0D!!0```")!"3H0D;]_XE<)`2)!"3HUC\``.GN_/__C47LB00D -XMZ";!___IZ?O__X-]P``/A>X```"+'>"E"PB_X*4+"(7;=17I?0$``(UV`(/' -XM#(L?A=L/A&T!``")-"3H&V```(E<)`2)!"3HNV?\_X7`==L/ME\$A-L/A)?[ -XM__^+5<@/ML.%T@^%A0(``(-]\`$/CJH"``")!"3H?]O__\=$)`@`````B40D -XM!(U%[(D$).CHWO__BT6\BU6XQ@00->E1^___BUV\`UVX@#LU#X0J`0``Q@,! -XMZ3K[__^+=R)!"3HS^C__^D2^___ -XMC4W8B70D!(D,).AK60``Z6KZ__^)-"3HFF/\_^D'^O__#XP;_O__@WW``@^/ -XM$?[__XU=Y(GPB=KH;??__X7`#X3-^O__QT0D!#`J"`B+1>2)!"3H0N;\_XM- -XMR(7)#X2L````B1PDZ,_:__^+3<")3"0(B40D!(U%[(D$).AIP/__@\`!#X0U -XM`0``BT7DB00DZ+7E_/^+5;R+3;C&!`HUBT7LB00DZ%#E_/_HV[C__^F9^/__ -XMC47LB00DZ)O`___I3OK__Z&`F`H(QT0D#/\6"0C'1"0(`P```,=$)`04```` -XMB00DZ&%$_?^)="0$B00DZ/4]``#I&/K__XU%[(D$).BEV___Q@,!B?;I`_K_ -XM_XD<).@CVO__BU7`B50D"(E$)`2-1>R)!"3H;=W__XM%N(M-O,8$`36+1>R) -XM!"3HN.3\_^D&^/__C47LQT0D!&@]"0B)!"3H\-[__\=$)`0P*@@(B<:)!"3H -XM+N7\_XL5X*4+"(72=#LQV^L-BY/LI0L(@\,,A=)T*HM%[(M-O(L`#[8$"#F# -XMY*4+"'7?B50D"(ET)`3'!"3C%@D(Z#L]``#KR8DT).A!Y/S_D.E3^?__H8"8 -XM"@B+7>S'1"0,[18)",=$)`@"````QT0D!!0```")!"3H8T/]_XE<)`2)!"3H -XM]SP``.F=_O__#("-3=B)1"0$B0PDZ'%7``#IR)!"3HPN/\_^EM_O__C47LB40D!(M-O(D, -XM).C+VO__BT6\BU6XB!P0Z;7X__^0D)"0D)"0D)"0D)"053'`B>5=PXGVC;PG -XM`````%4QP(GE7<<%_&\)"`````##D)"0D)"0D)"0D)"0D)"058M*"(GEB5`$ -XMB4@(B4((BU`(B4($7<.)]HV\)P````!5B>56B=93BPB)TX7)="60BQ.%TG0> -XM.=%T/(VV`````(/Y('0;@\`$BPB%R77RA_/^) -XMP^EX____C;8`````58GE5U93@>P<(0``C46TC5VLQT74`````,=%V`````#' -XM1=P`````QT6L`````(D$).AF9/S_QT6P`````,=$)`@`````B5PD!,<$)!0` -XM``#H1V/\_XU%X(D$).B`*O[_Z(=?_/^%P(G'#X4V`0``BT7@C5W$B00DZ*/D -XM_?_'1"0$H$$(",<$)`X```#H>V/\_XD<).@#9/S_B1PDQT0D!`X```#H`U_\ -XM_XE<)`2-G0S____'1"0(`````,<$)`(```#HE5[\_\<$)`(```#HZ6/\_XM% -XMY,=%[(````")7"0$B84`W___C47LB40D"*&T=@H(B00DZ/%A_/^#P`%T%P^V -XMA0W___\\'`^$H@$``#P"#X2:`0``Z*1G``"%P(G&='(/M@"$P'1K/#IT9\=$ -XM)`0Z````B30DZ$]@_/^%P(G#=`/&``")-"2)]^@\8?S_@\`!#X2E`0``B3PD -XMZ*MD_/^%P(G#=0OK*XVT)@`````!QXN%`-___XE<)`B)?"0$B00DZ(C@_?^% -XMP`^(8@$``"G#==S'!"0`````D(UT)@#H-V/\_XM%Y(V=#-___XD$).AJX_W_ -XMZQN%P`^$KP```(E$)`B-1=2)7"0$B00DZ%U6``"+1>#'1"0(`"```(E<)`2) -XM!"3HQN#]_X/X_W7)QT78`````,>%_-[__P$```"+1>"-=?")!"3H$N/]_^L5 -XMZ*=@_/^#.`1U*(VV`````.B[4```BX7\WO__B70D!(D\)(E$)`CH@5W\_X/X -XM_XG#=,Z-1=3'1"0$T)$("(D$).A;X/S_.=]T(HU%U(D$).BLW_S_@<0<(0`` -XM6UY?7__\`````ZX6+1?"H?W77P?@(AR_('`)",=$)!@"````QT0D -XM%`````#'1"00`````,=$)`P!!```QT0D""!P"0B)1"0$B1PDZ#]@_/_I9_[_ -XM_\<$)`$```#HWF'\_SG>#X2._O__C46,N0@```")A?C>__^+O?C>__\QP/S' -XM1>@`````\ZO'19``````QT64`0```,=%C`,```")-"3HR6+\_XG#Z(9>```Y -XMPP^#K0```(U%Z(E$)`R-18R)1"0(QT0D!`````")-"3H+&/\_X7`=$C'1>@` -XM````Z13^__^)1"0$B30DZ*3F_?_'1"0$`````(G#C47HB40D#(U%C(E$)`B) -XM'"3H\&+\_XD<)(/X`1G`(47HZ'3I__^+1>B%P`^$S?W__XM0%(72#X2R```` -XMB50D!+\@<`D(QT0D"`$$``#'!"0@<`D(Z&U=_/^+1>B)!"3H\F#\_^E:_?__ -XMC9T,W___QT0D!``!``")'"3H5V'\_X7`=:/&A0O@__\`QT0D!"X```")'"3H -XM7%W\_X7`B<=TAL=$)`0N````B30DZ$9=_/^%P`^$;O___X!X`0"-6`%T%(E$ -XM)`2)/"3HJ5[\_X7`#X45____QT0D!"X```")'"3H$5W\_X7`=<_I./___XD$ -XM).A@8/S_C70F`.G__/__C70F`(V\)P````!5B>6#[`C'!"0!````Z"I@_/^- -XMM"8`````C;PG`````%6)Y8/L&(M%"(E=](EU^(E]_(D$).BV5@``B00DZ.[E -XM_?^)QHM%#(D$).BA5@``B00DZ-GE_?^)P^B^7?S_QP``````B5PD!(DT).B< -XM7/S_BQ= -XMPY"-="8`B30DZ.CG__^)'"3HX.?__^AG7?S_BP")!"3H#5O\_\=$)`1(&`D( -XMQP0D-@```(E$)`CH2=K\_^NCC;0F`````%6)Y8/L&(M%#(/X!`^$@````(/X -XM(W0,@\`!=`?)N/_____#QT4,`````,=$)`@`````QT0D!`,```"+10B)!"3H -XM=UG\_X/X_W32@^#[B44,B40D",=$)`0$````BT4(B00DZ%59_/^#P`%TL(U% -XM#,=%#`````")1"0(QT0D!'YF!("+10B)!"3H'UK\_X/``72*R3'`PXUV`(V\ -XM)P````!5B>575E.#[!R+70B%VP^$U````(M%"(L`B47LQT0D!,28"@C'!"20 -XM+PD(Z,!#_O\]^&\)"(G#="&)!"3HZUG\_XE<)`2)1"0(BU7LB<:)%"3HAEO\ -XM_X7`=&NA`'`)"(7`B47P=%6+'21T"0@Q_XGVBW,(B70D"(M#!(E$)`2+1>R) -XM!"3H4UO\_X7`=2.+1>R-%+"+`H/X+W0$A7UW#BPT`<`D(A575E.#[!R+50B+`H/X*P^$I@```(/X+0^$G0```(L= -XM)'0)"(7;#X1F`0``H0!P"0B+-21T"0B-!$"-/(8Y_G-CBT4(BP")1?#K#HUV -XM`(7`>$R-7UW#C78`B=\Y_G*UBT4( -XMB00DZ(]1``")!"3HY]G]_X7`=1+'1>P`````BT7L@\0<6UY?7<.+0!R)!"3H -XMEE,``(D$).@^3P``A<")1>QTVXL=`'`)"(M5"(T<6\'C`HD4)`,=)'0)".@: -XM3P``B0.A`'`)"(M5[(L])'0)"(T$0(E4AP2+-0!P"0B)%"3HT57\_XT<=H/& -XM`<'C`HE$.PB)-0!P"0C'1"0,,$8(",=$)`@,````B70D!(D\).A"5/S_H0!P -XM"0@[!9A-"0@/A5G___^#P`JCF$T)"(T$0,'@`HE$)`2A)'0)"(D$).AVX___ -XMHR1T"0CI,/___\<$)'@```#H$./__Z,D=`D(Z83^__^-M@````!5B>575E.# -XM["S'1"0$Q)@*",<$)"`^"0CH\S[^_XE%W,=$)`3$F`H(QP0D8#X)".C#H4_/__PG#B47D="R+'0"8"@B%VW0B -XMB?:+0WB)-"2)1"0$Z#'6_?^%P'0'BT,4A+!H/X.W01.7T(=-^+ -XM?PB+-XL&@_@[=>^+?P@Y?0AUUX/$+%M>7UW#QP0DF#X)".@]5/S_B47HBP>) -XM!"3H,%3\_XE%[(T$A00```")1"0$QP0D`0```.A:X?__B47PBP>)1"0$BU7P -XMB10DZ`)3_/^+=>2%]@^$,P(``(L'B00DZ-'@___'1"0$%````,<$)`$```#H -XM'>'__XD'QT0D!(`R"0B)!"3HQU+\_\=$)`0,````QP0D`0```.CWX/__QT0D -XM!!@```#'!"0!````B<;HX>#__XD&QT0D!+0^"0B)!"3HBU+\_XGPB?KHYO'_ -XM_XL&BP"#^`IT$8/X.W0,BW8(BP:+`(/X"G7OQT0D!`P```#'!"0!````Z)C@ -XM___'1"0$"````,<$)`$```")P^B"X/__B0/'1"0$P#T)"(D$).@L4OS_BU8$ -XMB=CHAO'__\=$)`0,````QP0D`0```.A2X/__QT0D!`@```#'!"0!````B) -XM!"3HGM[__XM5[,<$)`$```"-!)4(````B40D!.CDWO__B0?'`"4```"+1?") -XM1"0$BP>#P`2)!"3HA%#\_XM?"(L+BP&#^#L/E<*#^`IT>X32='V#Q"Q;7E]=PXG?Z6'\__^-="8`58GE5U93@^P\QT0D -XM!,28"@C'!"3D2`D(Z#,Z_O^%P`^$[````(M%"(MX"(L'@S@[#X3C````.7T( -XM#X32````QT78`````,=%W`````#'1"0$`$D)"(L'B00DZ-U/_/^%P`^%XP$` -XM`(M7"(E5U(L2BP*#^"V)1>`/A+$```"#?>`MBW74#X3Z````BT78A`[#X2/`0``BWW4.7T(#X2#`0``BW\(BP>+`(/X.XE%X'08 -XM.7T(#X1N`0``BW\(BP>+`(/X.XE%X'7HBW\(.7T(#X4\____@\0\6UY?7<,Y -XM?0AT\XM_"(L'@S@[#X4*____Z^N+3=R%R0^%1/___XMUU(M%W(M*!(7`#Y3` -XMA)TX/Y:0^4PH/Y9HM+"`^4P`G0@^`!B47<#Y3`@\,$A"#?>`[#X5Q_O__BWW4@WW@.P^%FO[__^F2_O__A,`/A=;^__^0C70F`.GQ -XM_O__BP>+`(/X"G1Z@_@[='4Y?0AT<(G[ZPV#^#N0=#LY=0AT+XGSBU,$BT,( -XMB4((BT,(B5`$BP.)!"3H#MO__XMS"(D<).@#V___BPZ+`8/X"G7&@_@[=2:+ -XM#HM6!(M&"(E""(M&"(E0!(D,).C7<,YUG;CZ]20C70F`#'VZYS'!2AT"0C04`@(BQ.)QHM"!(7` -XM#X5/____ZX&0A?8/A'C___\IQHVV`````.EK____B<;'!2AT"0A040@(Z5K_ -XM__^-=@"-O"<`````58GE@^P(_Q4H=`D(QP0D`0```.BH_O__R<.-M@````!5 -XMB>6#[!C'!"16&`D(Z!XG``"AY)D+"(7`=`7H\$___Z&T=@H(B00DZ"/1_?_' -XM1"0(`@```,=$)`1@+@D(QP0D`"X)".CG/O[_QT0D!`````#'!"0`````QP7D -XM=0D(`0```,<%A'<*"`````#HGVW\_\G#C;8`````C;PG`````%6)Y5=64X/L -XM?*$LF0L(B00DZ#K/_?^%P(E%D`^$PP$``(MX!(7_#X2X`0``QP0D`````(UU -XM\^CE_?__QP0D"@```.B)Z?W_QT6,`````,=%M`$```"-1;R)!"3H[$_\_XU% -XMG,=%N`````")1"0(C46TB40D!,<$)`(```#HRT[\_XU%S(D$).C`3_S_C47, -XMQT0D!`(```")!"3HO4K\_XU%W(E$)`B-1!0CHE,W\_XU%W(D$),=$)`1@'@4(Z('-_/_HK$___\=$)`0" -XM````QP0D8Q@)".BXS?W_B47L@\`!#X7M````H;1V"@B)1>S'1"0$;!@)",<$ -XM)/O>"`CHD"4``.A[YOW_QP4P=`D(`````.L;#[9%\SP*="X/OL")1"0$QP0D -XM+'0)".C$0```QT0D"`$```")="0$BT7LB00DZ/W,_?^%P'_*QP0D+'0)".C] -XM0```C46TB00DZ$+,_/^+'2QT"0B)?"0$B1PDZ,Q,_/^)?"0$B00DZ%!-_/^% -XMP'1IBT60BQBA@)@*",=$)`QV&`D(QT0D"`(```#'1"0$%@```(D$).A&*_W_ -XMB5PD!(D$).C:)```@T6,`8-]C`4/A6K^___HE_W__X/$?%M>7UW#C47LQT0D -XM!$`>!0B)!"3H7,S\_^D#____B1PDZ*M/_/_'1"0$`````(D<)(E$)`CHUTO\ -XM_Z&$=PH(A2A*)H+"(E%X*$DF@L(B47"0B%P'02B00DZ/?5___'!8!>"0@`````QT7L^&\)",=$)`0,````QP0D -XM`0```.@RUO__B<:+10R)!"3H!4(``(D&@WT(`0^$``(``,=$)`0,````QP0D -XM`0```.@%UO__B<.+11")!"3HV$$``(ES!(EU](E=\(E>"(D#C47LB4,(B48$ -XMC5WLQT0D!)#I!0B)'"3H[LK\_\=$)`3$F`H(QP0D]"X)".@Z,O[_B00DZ$(P -XM_O^)'"2)1;#HA^/]_XM%],=$)`@`````B5PD!(D$).@`X/W_QT0D!$`K!@B) -XM1:R)!"3HGR)!"3HX\C\_^@^[_W_BT6PB00DZ',Q_O_'1"0(`@`` -XM`,<$)/0N"0B)1"0$Z&LY_O^#Q&!;7EW#C70F`.@K!```Z[OH!`4``*$\=`D( -XMAOIC47LB77PB77TB48$B48(Z23^__^0C70F`%6)Y8/L&(E=^(EU_(MU -XM"(,%Q*P+"`''1"0$L)`(",<$),2L"PCH]LC\_XL=0'0)"(7;=3.+#>"9"PC' -XM!4!T"0@!````AQ=Z1G(_/_' -XM1"0(U#<)",=$)`2`-PD(QP0D`@```.BM_/__QT0D#/08"0C'1"0(#@```,=$ -XM)`06````H8"8"@B)!"3H*"?]_XD$).C`(```ZY;'1"0$E'8*",<$)-0W"0CH -XM6B_^_X7`#X1Z____BQV`=PH(B70D",=$)`34-PD(QP0D`@```.A$_/__B1V` -XM=PH(Z5'___^)]HV\)P````!5B>53@^PDQT0D!+"0"`B#!<2L"P@!QP0DQ*P+ -XM".C^Q_S_H41T"0B%P'4UH>"9"PC'!41T"0@!````A"9"PC'!4QT"0@!````A6#[!C'1"0$L)`("(,%Q*P+"`''!"3$ -XMK`L(Z/_$_/^+#3QT"0B%R74LBQ7@F0L(QP4\=`D(`0```(72=&/'!"3$K`L( -XMQP4\=`D(`````.@KQ/S_R"+%0B:"PB)1=RA!)H+"(E5V(L5`)H+"(E%U*&$=PH( -XMB570BQ7`F`H(QP6$=PH(`````(E%R(E5Q.@MO_S_QP0D`)H+"(E%S.C*0/S_ -XMA<`/A)P```#'!"0!````Z&KR__^+52)%1B: -XM"PB+5>"C%)H+"(M%W(D5$)H+"(M5V*,,F@L(BT74B14(F@L(BU70HP2:"PB+ -XM1<2)%0":"PB+5?]_\<$)`````#H%43\ -XM_XM%",<%R*P+"`$```#'1"0$`0```(D$).@L\/W_A,<$)(0` -XM``")1"0$Z+6^_/_KNXUV`%6)Y8/L6(U%Z(E%Y(U5W(E%U(M%"(EU^(UUT(E= -XM](E]_(M]#(E5V(EU\(EUX(E5[,=%T/AO"0C'1>CH10D(QT0D!)1V"@B)!"3H -XM4BC^_X7`B<-T+(L`A564X/L$*%@90D(BUT(AB7E/__BT,$B00DZ/PX``") -XM!"3H-,C]_\=$)`0P*@@(B<:)!"3H`L#\_XM#"(D$).C7.```B00DZ`_(_?_' -XM1"0$,"H("(G#B00DZ-V__/^)7"0$B30DZ$&M__^)=0B#Q!!;7EWI([_\_XUV -XM`%6)Y5.#[`2A8&4)"(M="(7`=07H&)3__XU#!(E%"(/$!%M=Z=BE__^0C;0F -XM`````%6)Y8/L"*%@90D(ACLD___R>D6L/__C;8`````58GE5U93@>R< -XM````BT4(C5`$BT`$A<`/A(@%``")%"3HNVO]_XE%@(D$),=$)`3P(P8(Z#B_ -XM_/^+58"+`H7`="*#."T/A*T"``")T.L.B?:#P`2#.BT/A)L"``"+4`2%TG7M -XMQT7H`````(U-Z,=%[`````#'1?``````QT0D!+"1"`B)#"3HY;[\_XM%@(L0 -XMA=(/A`0&```Q_\>%=/___P````#'A7C___\!````ZV>)-"3HF#<``(U5B(E4 -XM)`2)!"3H)3[\_X/``0^$L@$```^W19"+G7C___\E`/```#T`0```#X2````` -XMB30DZ-Z]_/^+C73___^+18"+5(@$@\$!@X5X____`8F-=/___X72#X0Q!``` -XM,<"#/=B7"@@"B10D#Y3`B40D!.C1COS_QT0D!#`J"`B)QHD$).@OOOS_B30D -XMZ,/POC5#\#X5:____.=8/A%+____'0/P`````Z4;___\YO73___]T -XM,H7_#X4:!```QT0D#`````"+A73___\I^(E$)`B+58#'!"3X;PD(C02ZB40D -XM!.BL;?[_BY5T____A=)T%HM-@(M!!(7`=`S'!"0*````Z!S9_?^)="0$QP0D -XMJQ@)".CL%0``QT7L`````(L&AB+1>R#Z@2-!(*!."\``$`/A,@```"- -XM3>C'1"0$+P```(D,).@9,```C47HB00DZ&XP``"-5>C'1"04`````,=$)!#X -XM;PD(QT0D#`````#'1"0(_P\``,=$)`0`````B10DZ#N._O^+O7C___^)^^EH -XM_O__Z/4\_/\YO73___^+&'0RA?\/A7\#``#'1"0,`````(N%=/___RGXB40D -XM"(M-@,<$)/AO"0B-!+F)1"0$Z(UL_O^)'"3H83K\_XET)`3'!"2B&`D(B40D -XM".CA%```B[UX____B?OI_OW__\<`+P```.E+____H91W"@B%P`^%)0,``*&` -XM7@D(AB)4`B)1>R)%"3'1"0$D.D% -XM".C/NOS_C47HQT0D"`````")1"0$BT7PB00DZ`70_?_'1"0$0"L&"(G#B00D -XMZ*.Z_/^+-8!>"0B%]G0,QP0D````0.B=M_S_BQ74EPH(,<#'1"00`````,=$ -XM)`P`````QT0D"`````"%T@^?P(/H`0G"B50D!(D<).A7!/[_C57HB10DZ*RY -XM_/^+#91W"@B%R0^%2`$``(M%@(D$).B3N?S_@<2<````6UY?7<.-5>B)%"3H -XM?;G\_SG[=-N%_P^%+`$``"G[QT0D#`````")7"0(BTV`QP0D^&\)"(T$N8E$ -XM)`3HS6G^_^NMQP5$3`D(>````.D,_O__QP0D"@```.A`U?W_Z=7[__^-7>C' -XM1>@`````QT7L`````,=%\`````")'"3HZRP``(D<),=$)`2PD0@(Z)NY_/^) -XM'"3'1"04`````,=$)!#X;PD(QT0D#`````#'1"0(_P\``,=$)`0`````Z*N* -XM_O^)'"3HP[C\_X'$G````%M>7UW#QP0D"@```.B\U/W_Z7#\__^#!<2L"P@! -XMQT0D!+"0"`C'!"3$K`L(Z"RY_/_IN_S__\=$)`0,````QP0D`0```.CSP___ -XMQP0D@$P)"(G#Z,4O``")7PB)>P2)WXD#Z;#]___'!"3$K`L(Z$JX_/_II_[_ -XM_\<$)`H```#H2=3]_^G#_O__C57HB10DZ"FX_/_IAO[__XUT)@!5B>575E.# -XM["R+10C'1>@`````QT7L`````,=%\`````"%P`^$\````(MP"#G>```` -XMBT`$.?")1>`/A-<```#'1=@`````C7WHQT7<`````(M%##E%W'QXBU40.57< -XM?W"+'HL#ASKZ(U%Z(D$).B<*@``@\0L6UY?7<.-="8`58GE@^P8BT4(QT0D"/___W_' -XM1"0$`````(D$).BO_O__R<.-M@````"-O"<`````58GE5U93@^PLQP0DL!@) -XM".AG,_S_A<")1>0/A.8!``"+1>3'1"0$+P```(D$).A)-OS_AB+7>@/M@/'1?``````A,!T+HL5W%T)"(L-X%T)"(GV#[;`.=!] -XM!_9$@35`=1*#1?`!BW7PBUWH#[8$'H3`=>"+=>0/M@;'1>P`````A,!T+XL5 -XMW%T)"(L-X%T)"(UV``^VP#G0?0?V1($U0'42@T7L`8M=[(MUY`^V!#.$P'7@ -XMH3QW"@@QVX7`#X3=````BQT`F`H(A=L/A,\```#'1>``````ZPJ+&X7;#X2Y -XM````BT,8.T,<=>Z+0PPE'R```#T`(```=`J#^`)T!8/X$'75BT-XB00DZ/0N -XM``")QP^V`(GZA,!T)(L-W%T)"(LUX%T)"`^VP#G(?0?V1(8U0'4*@\(!#[8" -XMA,!UZ,8"`(G^QT0D!"\```")/"3H[#3\_X7`=`.-<`&+1>R+5>2)="0$B40D -XM"(D4).A_,OS_A"#Q"R)V%M>7UW#BT7PBU7HB70D!(E$)`B)%"3H,#+\_X7` -XM#X42____ZZO'1>1-&PD(C78`Z2C^___'1>B^&`D(Z5#^__^0D)"0D)"0D)"0 -XMD)"0D)!5N@$```")Y8/L"(M-"/?!```@`'4J,-*%R70D@?G_````=SRAX%T) -XM"(M$B#2)PH'B````X'0-P>H>C;8`````R8G0PR4```0`@_@!&<"#R`&)PL'Z -XM'\GWTB'"B=##B?:)#"3HY#'\_^O#C;8`````58GE5U93@^P,BT4(BQB%VP^$ -XMI0```(L]X%T)"(G&ZRKWPP```$!U&('[_P```'=CBT2?-/;$$'5GC;0F```` -XM`(M>!(/&!(7;='&+10R%P'3/]\,```!`=>>!^_\```"0=T^+1)\T9H7`>=6! -XM^_\```!W4HN7UW#B1PDZ$$Q -XM_/_VQ!!TH('[_P```'6#[!B)=?R+=0B)7?CWQ@`` -XM(`!T$;O\____B=B+=?R+7?B)[%W#B30DZ(#^__^%P(G##XZ[````]\8```!` -XM==J!_O\````/AYD```"AX%T)"(M$L#3VQ`)TP(GP)?__/P`]_P```'^R@?[_ -XM````#X>/````H>!="0B+1+`TJ0``!`!T!XM5#(72=(^!_O\````/AWP```"A -XMX%T)"(M$L#3VQ`)T#HGP)?__/P`]_P```'YP@?[___\`N_G___\/CU;___^! -XM_O__``"S^@^/2/___X'^_P```+/[#XXU____Z37___^)-"3H#3#\_Y#I8O__ -XM__?&````0'6XC78`Z67___^)-"3H[R_\_XUV`.EJ____B30DZ-\O_/^-=@#I -XM??___X/^"KO]____#X3I_O__,=N#_@D/E<.#ZP+IV?[__XVV`````(V\)P`` -XM``!5B>575C'V4X/L#(M5"(L"AH> -XM@\,$`=:%P'7<@\0,B?!;7E]=PY"-="8`B00DZ#0O_/_KSI"0D)"0D%6)Y5W# -XMD)"0D)"0D)"0D)"A4'0)"#D%5'0)"%6)Y700#[95"(@0@\`!7:-0=`D(P\8` -XM`%W#C70F`(V\)P````!5B>575E.)RX'LC````(E%A`^V`H3`#X0(`0``B56, -XMQT6L`````.LD#[;`"T6LB00D_U6$B5W0@T6,`8M5C`^V`H3`#X3;````BUW0 -XM/"5UV(-%C`&+58P/M@+'19P`````/"T/A',!```\,`^$O@```#PNQD6;(`^$ -XML@```#PJD`^$OP````^VT(/Z?W<.]@25O5$)"`0/A?T$``#'1:``````/"X/ -XMA+0```#'1:3___]_,?\\(P^$;@$``#'2/&P/A#P!```QR3QZ#X0A`0``#[;` -XM@_A3B464="6#^%%T(#L%W%T)"'T8H>!="0B+=91F@WRP-``/B$$!``"-="8` -XMBT64@^@E@_A3#X;&````@T6,`8M5C(E=T`^V`H3`#X4E____@<2,````6UY? -XM7<.#18P!BTV,#[8!QD6;,#PJ#X5!____BS.#PP2#18P!BU6,B76@#[8"/"X/ -XMA4S___^#18P!BTV,#[8!/"H/A'0$```/MM"#^G\/AR[____V!)6]40D(!`^$ -XM(/___XM%C(D$).C&*_S_BU6,B46D#[8"#[;0@_I_=A_I!O___XUT)@"#18P! -XMBTV,#[8!#[;0@_I_#X?L_O__]@25O5$)"`1UX.G=_O___R2%P!D)"(/"`8E5 -XMC`^V`L=%G`$```#I>/[__X-%C`&Q`8MUC`^V!NG._O__@T6,`8M5C`^V`KH! -XM````/&P/A:W^__^#18P!L@*+38P/M@'IG/[__X-%C`%FOP$`BW6,#[8&Z7_^ -XM__^+A+`T!```N@$```")193IK_[__XUS!(EUT(L;A=N)79`/A`$$``")'"3H -XM`"W\_XM]H"G'BT6FW^O__C477B85X____B47,B1PDB70D!,=$)`@*````QT0D -XM#`````#H738``(M-S(/`,(@!@\$!B1PDB70D!,=$)`@*````QT0D#`````") -XM3)A7C___^)QXD<)(ET)`3'1"0("@```,=$)`P````` -XMZ&XX``"#P#"(!X/'`8D<)(ET)`3'1"0("@```,=$)`P`````Z&HZ``"#^@") -XMPXG6?[=\!8/X`'>PBUVHA=N0C70F`'0&Q@/___W;IBT6/___XE5S(M5S(G8@^`'#ZSS`X/`,,'N`XGQB`*# -XMP@$)V8E5S'7@A?]T&8MUS,8&,(/&`8GP*X5X____B77,Z7/\__^)T"N%>/__ -XM_^EF_/__C5,$B570BP.)QHG#P?X?Z7K^__^-0P0Q]HE%T(L;Z1?\__^-2P2) -XM3="+`\=%J`````")QHG#P?X?A?8/B5S^___WVX/6`/?>QT6H`0```.E)_O__ -XMJ0```$`/A&OZ__^+A7S___^)!"3_583I6OK__XU-V.LA@\`PB$'_B4W,B?*) -XMV`^LT`2#P0'!Z@2)PXG0B=8)V'05B=B#X`^#^`E^U8/`5XA!_XE-S.O3A?]U -XM$XM%S(U5UXF5>/___RG0Z:3[__^+3/___^F"^___B6#[`B+10B+ -XM312+51"C4'0)"`-%#(/H`:-4=`D(N+!M"`CH%_;__Z%0=`D(Q@``@\`!HU!T -XM"0C)PY"-="8`5;@@.P8(B>6+50B+30Q=Z>SU__^-M@````"-OP````!5N"`[ -XM!@B)Y8/L&(M5"(U-#(E-_.C']?__R<.0C70F`%6)Y8/L&(M%"(U-%(M5$(E- -XM_*-0=`D(`T4,@^@!HU1T"0BXL&T(".B4]?__H5!T"0C&``"#P`&C4'0)",G# -XMD)!5B>5=QP6`=`D($!L)",<%A'0)"!0;"0C'!8AT"0@8&PD(QP6,=`D('!L) -XM",<%D'0)""`;"0C'!91T"0@D&PD(QP68=`D(*!L)",<%G'0)""P;"0C'!:!T -XM"0@P&PD(QP6D=`D(-!L)",<%J'0)"#@;"0C'!:QT"0@\&PD(QP6P=`D(0!L) -XM",<%M'0)"$0;"0C'!;AT"0A(&PD(QP6\=`D(3!L)",<%P'0)"%`;"0C'!<1T -XM"0A4&PD(QP7(=`D(6!L)",.-M@````"-O"<`````58GE5U8Q]E.#["R+10R+ -XM.(D\).@$)/S_C02%!````(D$).BIL?__QT7P`````(E%[.L6H>!="0B+1)`T -XM]L0%=06#^U]U4H/&`8M%[(/'!(T$L(E%X(L?BT7L@>/___\_A?:)'+!U!8/[ -XM>W06#[;3@?K_````=KR)%"3H'2/\_Y#KNH/'!(L?@>/___\_B1C'1?`!```` -XMZ]2+1>#'``````"+5?"%TG00BP2+1`$$A -XM7UW#@\<$Z3;___^+1>R)!"3HTU#^_X7`=#"+$(72=,:)PX/Z"G07@_H-=!*+ -XM10@+51")!"2)5"0$Z*L7``"+4P2#PP2%TG7:ZYR+10R).(M%[(D$).@OK___ -XM,<#KG8UT)@"-O"<`````58GE5XG'5HG.4XG3@^P<@#H`="^-1?")7"0$QT0D -XM"`8```")!"3H!1\``(D\)`'#B?`+1?")1"0$Z$(7``"`.P!UT8/$'%M>7UW# -XMD(UT)@!5B>575E.#[$R+10S'1>``````QT7D`````,=%Z`````")1?"-112) -XM!"3H;2+\_\=$)`2PD0@(B47`C47@B00DZ`ND_/^+5?"+`H7`#X28````QT6\ -XM`````.M.D(UT)@"#?0@"#X3Y````H029"@C'!"0]W`@(@\`!B40D!.B>^___ -XMB<.+3;R)VHU%X.@?____B1PDZ#>N__^+1?"-4`2)5?"+0`2%P'1!@_@E=&6# -XM^%P/A)P```"#^%X/A),````[!8R8"@ATF`M%O(U5X(E$)`2)%"3H5A8``(M% -XM\(U0!(E5\(M`!(7`=;^-1>")!"3H"Z/\_XU5X(D4).BPHOS_C47@B00DZ$46 -XM``"#Q$Q;7E]=PXM:!(U*!(7;=*.)3?"+6@2-0]^#^%UV4H/[80^$`0<``(M% -XMO(/()8E$)`2-1>")!"3HYQ4``(M%\(L`Z77___^-1?")!"3HDI___^EE____ -XMBT48QP0D:````(E$)`3H^E;]_XG#Z0?_____)(5D&PD(@66\____^XM%\(GV -XMZ0?___^!3;P````$BT7PD.GW_O__BU6\BT7`QT0D!`(```")5"0(NA^%ZU&+ -XM2!2)R/?JB")%"2)PXE$)`3HM1<` -XM`.FA_O__BU7`BTV\BT(0BQ2%@'0)"(U%X.BH_?__BT7PZ8S^__^!9;S____? -XMBT7PZ7W^__^!9;S____WBT7PZ6[^__^#?0@!#X1W"```QT0D!,28"@C'!"2D -XM+PD(Z&0)_O\]^&\)"'0DBQ"%TG0>B<,+5;R-1>")!"2)5"0$Z,,4``"+4P2# -XMPP2%TG7DBT7PZ1W^__^#?0@!#X0*"```QP0D7!L)"#'VZ-4=_/^)PX7;=3OK -XM0)"#?0@!=`0\+G0UC57LB5PD!,=$)`@&````B10DZ!\<```!PXM%O`M%[(E$ -XM)`2-1>")!"3H6!0```^V`X3`=<&%]G24B30DZ.6K__^+1?")]NFG_?__@WT( -XM`0^$>@<``,=$)`3$F`H(QP0DO"X)".B="/[_/?AO"0@/A%G___^+$(72#X1/ -XM____B<,+5;R-1>")!"2)5"0$Z/03``"+4P2#PP2%TG7DZ2S___^A`)@*"+K_ -XM____AO(@4V\````((M%\.F3 -XM_/__@4V\````"(M%\.F$_/__@WT(`@^$IP8``(M-$(7)#X1*_O__BTV\C47@ -XMBU40Z'7[__^+1?#I6?S__X-]"`$/A+@%``#'!"1<&PD(Z!,<_/^)PX7;=`V+ -XM3;R)VHU%X.A$^___@WT(`0^%`?[__^D6_/__@4V\````$(M%\.D2_/__BT7` -XMBU@(QT0D!,28"@C'!"1@/`D(Z*P&_O^%P`^$L@0``(/["P^.YP,``(/[#+]P -XM````C78`?@.#ZPR+5<"+0@2%P`^%L`,``(M%"`L%:'0)"`^$=P,``,=$)`3$ -XMF`H(QP0D0$8)".A:!O[_BU6\B1PDB50D"(/X`1G`]]"#X`*)1"0$Z`W$__^) -XMPXE$)`2-1>")!"3H?!0``(D<).BDJ?__BW6\C57@B10D@\XZB70D!.CO$0`` -XMBU7`BT6\QT0D!`(```")1"0(BT($B00DZ,+#__^)PXE$)`2-1>")!"3H,10` -XM`(D<).A9J?__BT7PBP"#^'`/A"P$``"#^%`/A",$``#'1"0$Q)@*",<$)&`\ -XM"0CHK@7^_X7`#X3K`P``B?H/OL(+1;R)1"0$C47@B00DZ&\1``"+1;R#R&WI -XM__K__\=$)`3$F`H(QP0D]"X)".C0!?[_/?AO"0@/A(S\__^+$(72#X2"_/__ -XMB<,+5;R-1>")!"2)5"0$Z"<1``"+4P2#PP2%TG7DZ5_\__^#^V,/A-D#``#' -XM1"0$Q)@*",<$)&0S"0CH>P7^_SWX;PD(B<)/6!T"0C'!"1@=`D(Z$+! -XM__^C9'0)"*%D=`D(AL.@_@O#Y3`@\8$#[;``<&+ -XM!H7`=>R$TG0*,<"#/R\/E<`!P8M%\,=%Q`````"#P`2#.#`/A/4!``"+5?"# -XMP@2)5="+`KH!````B47,@^@Q@_@(=PR+5OV__^-5>")%"2)="0$Z'`-``"+1;R+5<#'1"0$`@```(E$)`B+ -XM`HD$).A$O___B<.)1"0$C47@B00DZ+,/``")'"3HVZ3__^F4^___LRZ-="8` -XMZ1S\__^+51C'1"0$30```(D4).C((```B")!"3HQ@P``(M#!(/#!(7`=>3I7?S__XM5&,=$)`1L````B10D -XMZ%0@``")P^GQ]?__BT48QT0D!&T```")!"3H.B```(G&B") -XM%"2#R#R)1"0$Z!0,``"#?<@)#XZ!````BT6\@\@YB40D!(U%X(D$).CU"P`` -XMBT6\C57@B10D@\@KB40D!.C@"P``BT6\C57@B10D@\@^B40D!.C+"P``Z")!"3HI@L``(L$G0A#"0B%P'7@ -XMBT7PQP5H=`D(`0```.GU]/__BT7(@\`P"T6\B40D!(U%X(D$).AQ"P``ZX_K -XM#9"0D)"0D)"0D)"0D)!5B>575E.#[!R+=0B+?0S'!"0`````Z`$4_/^#_@*) -XM1?`/A)0!``"#_@,/A'8!``"#_@$/A+T```#'1"0$Q)@*",<$)*@R"0CHD__] -XM_X/^`8G##XZT````H2QW"@B)!"3HFZ+__\=$)!``````BT7PQP4L=PH(```` -XM`(E\)`B)7"0$B40D#,<$)`````#HGO/__XL]Y)D+"(7_HRQW"@AU,HL0A=)T -XM&XG#C;0F`````(D4).@XM?W_BU,$@\,$A=)U[L<$)`````#H$EC__^CML/W_ -XMH7B9"PB)!"3H(*+__X7VQP5XF0L(`````'0O@\0<6UY?77UWI&K#]_XL=<'0)"(7;=":+/6QT -XM"0CIG?[__\=$)`3$F`H(QP0D`#,)".@1_OW_B"0B%P'02B00DZ&^@___'!8!> -XM"0@`````BT7")6`B)0P2+=P2#QP2)7>"%]G7*B=B- -XM5>2)4`B+5=R)1>B+`J/,=`D(BT((B00DZ$29_?^+1=R)!"3HZ9___XU5Y(D4 -XM),=$)`20Z04(Z%:5_/^-1>2)!"3H"Z[]_XM%[(U5Y(E4)`3'1"0(`````(D$ -XM).B!JOW_QT0D!$`K!@B)PXD$).@?E?S_BPV`7@D(A_?^-1>2) -XM!"3H-I3\_XL5S'0)"(72B57<=`R+0@0[1?`/C+W^__^+%81W"@B%TG0)H3AW -XM"@B%P'0>QP4X=PH(`````,<$),2L"PCH])/\_X/$+%M>7UW#Z+<6___H4C?_ -XM_XGVZ,LW___HQD?__^O*C70F`.B;%?__H!(7;#X2C`@`` -XMC58(B57@BP.#^"T/A,@!``"+=@B%]@^$>0,``*D```!`#X0Y`0``@_@K=`S' -XM!"1L````Z`&1_/^#PP2^`0```(D<).C!#```B00DZ&4/_/^)QXL#AR)5"00B70D#(E$)`B+1=S'!"0#````B40D!.BU[/__B1PDB<;H -XM6Y#\_\=$)`0P*@@(B30DZ.N0_/^+!H7`=!>)\XUV`(D$).CXK?W_BT,$@\,$ -XMA5=QP74=`D(`0```,.058GE7<<%V'0)"`$```## -XMD%6)Y5W'!=QT"0@!````PY!5B>6+10A=BP"CQ*P+",.058GE@^P(HL& -XM@\`$@\$$BQ&%TG0/.Q!T\(L+A6+10B+`(E%"%WI;YC__^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(L`B44( -XM7>E/F/__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+=0B+7@2%VW07,=N+!HL$ -XMF(/#`8D$).@7>D'F/__C;0F`````%6)Y8/L -XM&(E=^(G#B77\BT`(B=8[0P1T&(M3!(L#B320BUWXBW7\B>Q=PXVV`````(7` -XM=1_'0PA`````BT,(P>`"B40D!(L#B00DZ-&8__^)`^O%`<")0PCKX8VV```` -XM`%6)Y5.#[`2+70B+50R)V.B,____@T,$`8/$!%M=PXGV58GE4X/L%(M=",=$ -XM)`0`````B1PDZ,;___^+0P3!X`*)1"0$BP.)!"3HDR____B?95B>6#[!B)7?B)PXEU_(M`"(G6.T,$ -XM=!B+$XGQBT,$B`P"BUWXBW7\B>Q=PXUT)@"%P'453@^P$BUT(#[Y5#(G8 -XMZ(O___^#0P0!@\0$6UW#D%6)Y5.#[!2+70C'1"0$`````(D<).C&____BT,$ -XMB40D!(L#B00DZ*67__^#Q!1;753@^P4BUT(B=CHC?___XM#!(/``<'@`HE$)`2+ -XM`XD$).CVEO__@\046UW#58GE4X/L!(M="(M5#(G8Z%S___^#0P0!@\0$6UW# -XMB?95B>564X/L$(M="(MU$(M3"(GP`T,$.<)S.H72=16#^$!FN@`!QT,(0``` -XM`'86ND````")\`'2`T,$B5,(.=!W\L'B`HE4)`2+`XD$).A^EO__B0.+0P2- -XM%+4`````P>`"`P.)5"0(BU4,B00DB50D!.AF#?S_`7,$@\006UY=PU6)Y5.# -XM[!2+70R)'"3H.@C\_XE<)`2)1"0(BT4(B00DZ%O___^#Q!1;7<.0C70F`%6) -XMY593@^P0BUT(BW40BU,(B?`#0P0YPG,UA=)U$X/X0+)`QT,(0````'83ND`` -XM``")\`'2`T,$B5,(.=!W\HE4)`2+`XD$).C3E?__B0.+4P2+10P#$XET)`B) -XM1"0$B10DZ,4,_/\!)\I"-="8`BP*# -XMP@2%P'7WN/S___\IV"GP`<@!T(D$).C2E/__B=J)QXG!BP*#P@2)`8/!!(7` -XM=?*)\HL"@\($B4'\@\$$A6#[!B)7?B+70R)=?R+=0CWPP``(`!T%H@>N@$```"+7?B)T(MU_(GL7<.- -XM=@")7"0$B30DZ'`*_/^#^/]TV87`N@$```!^UXM=^(G"BW7\B>R)T%W#D(VT -XM)@````!5,<")Y5=64X/L#(M]"(7_#X21````BS7D=`D(A?8/A,$```"+'>1T -XM"0B#QP2)W@,UX'0)".L#@\<$BT?\A=\NAX'0)"(/H@*/@=`D(@\`&B40D!*'D -XM=`D(B00DZ$.3__^)Q@,UX'0)"*/D=`D(C5Z`ZYC&`P"AY'0)"(/$#%M>7UW# -XMH>!T"0B#Z("CX'0)"(/`!HE$)`2AY'0)"(D$).@`D___B<8#->!T"0BCY'0) -XM"(U>@.EM____QP7@=`D(@````,<$)(8```#HA9+__Z/D=`D(Z1____^-="8` -XMC;PG`````%4QP(GE5U93@^P,BWT(A?]T>:'L=`D(A(L=['0)"(G>`S7H -XM=`D(ZPB0C70F`(/'!(L'AAT -XM"0B#Z("CZ'0)"(/`!HE$)`2A['0)"(D$).A/DO__B<8#->AT"0BC['0)"(U> -XM@.NMQ@,`H>QT"0B#Q`Q;7E]=P\<%Z'0)"(````#'!"2&````Z,>1__^C['0) -XM".EH____C;8`````C;PG`````%6X!````(GE5U93@^P,BUT(BPN%R70:,,"- -XMM"8`````@\`!BQ2#A=)U]HT$A00```")!"3H=Y'__XG'BP.)_H7`=!^)!"3H -XM]?[__XD$).@MCOW_B0:+0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT -XM)@````"-O"<`````58GE@^PXBT40B77XBW4(B5WTB7W\B40D"(M%#(DT)(E$ -XM)`3HA`/\_X7`B<-^+(L&B40D!(U%[HE%X(D$).BZ!_S_.<-U#XMU##G;B=F+ -XM?>#\\Z9T!;O_____B=B+=?B+7?2+??R)[%W#C;0F`````%6)Y8/L&(E=^(M% -XM$(EU_(M=#(MU"(E$)`B)7"0$B30DZ&O___^#^/]T%X7`N@$```!^`HG"BUWX -XMB="+=?R)[%W#QT0D"`````#'1"0$`````,<$)`````#HWP+\_P^V`[H!```` -XM#0``(`")!HM=^(G0BW7\B>Q=PY"-M"8`````53'`B>564X/L((M="(7;=%'' -XM!?1T"0@`````@#L`=#&-=?2)7"0$QT0D"`8```")-"3H2?___\<$)/!T"0@! -XMPXM%](E$)`3HA/?__X`[`'72QP0D\'0)".C3]___H?!T"0B#Q"!;7EW#C;0F -XM`````%6X!````(GE5U93@^P,BUT(BSN%_W0:,,"-M"8`````@\`!BS2#A?9U -XM]HT$A00```")!"3HEX___XG'BP.)_H7`=!^)!"3H1?___XD$).CM^O__B0:+ -XM0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT)@````"-O"<`````58GE -XM5U93@^P,BT4(BQB%VP^$FP```(L5X%T)"(G'B57PZS*+5?"!_O\```"+E)HT -XM!```B57L=TB+5?"+A+(T!```.47L=4:#10P$BU\$@\<$A=MT7(M%#(LP.?-T -XMZ8'[_P```':]B1PDZ+X"_/^!_O\```")1>QVOXVT)@````")-"3HI`+\_SE% -XM['2ZA=N0=#2%]KH!````="$Y1>R)]G0SBU7L@\0,6UY?72G"B=##BT4,,=*+ -XM`(7`=0J#Q`R)T%M>7UW#@\0,NO____];B=!>7UW#B=HI\NOAD)"0D)!5B>56 -XM4X/$@,<$)$`Q"0CH["[^_\<$)"0Q"0B)QNC>+O[_QP0D9#$)"(G#Z-`N_O^% -XMVP^$J`$``(7V#X21`0``A<`/A'\!``")7"0_/^)!"3H2?O__\=$)`3$F`H(QP0DO$@)"(G#Z"/G_?^%P'0. -XMBP"%P'0(BP"%P'0"B<.)="00BT9$QT0D"`````")7"0$QP0D`0```(E$)`SH -XMGMO__\=$)`0P*@@(B<:)!"3HW'_\_XL&AR\````@ST`=0D(`<=$)`2PD`@(QP0DQ*P+"`^4P(F%3/___X,%Q*P+"`'H -XM9W_\_\=$)`3$F`H(QP0DO$`)".A3YOW_A<`/A((```"+`(7`B850____=':+ -XM?0B%_P^$:0$``,>%4/___P`````QVXU%[(D$).BY^OO_BU7LB=`K!01U"0@Y -XMPW\NC85@____B14$=0D(B40D!,<$))0="0CH;O[[_X7`=#"+=0B%]@^$>@$` -XM`(UV`,<$),2L"PCH-'[\_X'$O````%M>7UW#BT4(A0C70F`(G>BQZ%VP^$Y0```(U%P(E$)`2-1BK'1"0("``` -XM`(D$).C&^OO_@_@`?-4/A<````"+7>@[7D1\AXGZA-*-=@`/A6`#``")7D3' -XM1D@"````Z6O___^+A5#___^[6`(``(D$).AH%?W_BY50____B10DZ,I[_?^H -XM`0^$>O[__XN54/___XL"B00DZ+*'_?^%P`^$8O[__XN54/___XL"@\($B950 -XM____B00DZ.'B_?]KV#SI0?[__\=$)`S('0D(QT0D"`$```"A@)@*",=$)`0: -XM````B00DZ/3;_/_'1"0$E!T)"(D$).B$U?__Z4_^___'1"0$3````,<$)`$` -XM``#H^X?__XU5P(E4)`3'1"0("````(G#C4`JB00DZ*O[^_^-1=B)1"0$C4,S -XMQT0D"!````")!"3HD?O[_XM%Z(E#1(!]R`!U&<=#2`(```"+1@2),XE#!(D8 -XMB5X$Z6#^__^-5_S_BT4(A<`/A:?]__^+A5#___^%P`^$F?W__XN]4/___X/'"(M' -XM^(7`#X2%_?__BQ"%T@^$>_W__XM?_(7;#X1P_?__BS.%]@^$9OW__\=$)`3D -XM+@D(B00DZ"+Y^__'A4C___\`````A<`/A'L!``"+-2!U"0B+!H7`=13IL0`` -XM`(UV`(LVBQZ%VP^$H@```/9&2`AU[HM?^,<$).0N"0B)7"0$Z-?X^_^%P'0? -XMC48(B00DZ.SV__^)7"0$B00DZ``O_?^%P`^$[0```(U&*HM?_(D$).C*]O__ -XMB5PD!(D$).C>+OW_A<`/A*L```"+1DBH$'01H01U"0B)1D2+1DB#X.^)1DBH -XM`G1>@'X(`'18BX5,____A<`/A/````"#3D@(QD8(`(LVBQZ%VP^%7O___XN- -XM2/___X/'"(7)#X3A_O__Z6S\__^+70B%VP^%8?S__\=$)`SP'0D(QT0D"`(` -XM``#IT_W__Z@!=0BH!`^$$/___XN%3/___X7`=&*-1AF)1"0$C48(B00DZ.#^ -XM^_^#3D@(Z>O^__^+1_S'!"3D+@D(B40D!.C4]_O_A<`/A=#^___I-?___XU& -XM&8M?^(D$).C=]?__B5PD!(D$).CQ+?W_A<`/A*G^___I[/[__XGPB?;H._K_ -XM_^N3QT0D!.0N"0B)'"3HA??[_X7`#Y3`#[;`B85(____Z6+^__^)\.@/^O__ -XMZ03___^-1@B)1"0$C47(QT0D"!````")!"3H+/?[_X7`=0^)7D3'1D@)```` -XMZ>W[__^-557,?]64X/L#,=$)`3$F`H(QP0DO"X)".@QX?W_B00DZ*GR -XM___'!"0!````B<;H&_K__XL=('4)"(L#AS/&0P@`BQN+`X7`==[HB/C__X/$#(GX6UY?7<.-M"8`````C;PG```` -XM`%6)Y5=64X/L+(M=#(MU"(U#LX/X(78IQP0D`P```.B=A/__B!= -XM"0AF@WR.-`!Y"`^VA(XT!```B`,/MD(!@\,!@\(!A,!UTL8#`.E2____C48J -XMB44(@\0L6UY?7>FA@/W_@'XS``^$&P$``(U>,XD<).C(^_O_@\`!B00DZ+&# -XM__^)QP^V1C,/MM"#^G\/AB\!``#'1>0N````A,")_G12BQ7<70D(B57H#[[` -XM.T7D#X2R````#[8#/#H/MM`/A(\````Y5>A^&XL-X%T)"&:#?)$T`'D-A=)X -XM!XN4D30$``")T(/#`8@&#[8#@\8!A,!UM\8&`.FG_O__BT9(@^`'@_@"#X0- -XM`0``@_@$#X3*````@^@!#X6__O__H8"8"@C'1"0,HAT)",=$)`@)````QT0D -XM!!H```")!"3H4M;\_^D-____C489Z07___^0C70F`+HZ````QT7D`````(UT -XM)@#I7/___XD<),=$)`0Z````Z$?V^_^%P(G##X4T____Z6S___^A@)@*",=$ -XM)`Q1#@D(QT0D"`P```#'1"0$&@```(D$).CGU?S_B44(@\0L6UY?7>E(?_W_ -XMC48(Z9#^___V!)6]40D(!,=%Y``````/A"0CHGO'__\<$)``Q"0B)1"0$Z'[H_/_'!"2P'@D(Z(+Q -XM___'!"0D,0D(B40D!.ABZ/S_QP0DJ!X)".AF\?__QP0D9#$)"(E$)`3H1NC\ -XM_\<$)+8>"0CH2O'__\<$)$`Q"0B)1"0$Z"KH_/_)PY"0D)"0D)"058GE@^P8 -XMB5WXBUT,B77\BQ7,=0D(BW4(A=)T)*'0=0D(A<`/A(P```")70R+7?B)=0B+ -XM#=1U"0B+=?R)[%W_X<<%S'4)"`$```#'1"0$`0$``,<$)+L>"0CH[OG[_X7` -XMH]!U"0AT3L=$)`3''@D(B00DZ"7T^_^CU'4)",=$)`32'@D(H=!U"0B)!"3H -XM"_3[_Z/LK`L(QT0D!-@>"0BAT'4)"(D$).CQ\_O_H_"L"PCI=/___XM=^+C_ -XM____BW7\B>Q=PY"0D)"0D)"0D)"0D%6)Y5=6@^PPBT40BU44BW4(BWT,B47L -XMB<&)5>B+1>C'1=``````QT74`````(GZB77DA<")=?")?>!U%#GY=F")\/?Q -XMB570QT74`````.L0BTW@.4WH=AB)==")?=2)]HM%T(M5U(/$,%Y?7<.-=@`/ -XMO47H@_`?B478=4:+1>@Y1>`/A\D```"+3>PY3>0/@[T```"+3?")5=2)3=#K -XMP9"+1>R%P'4,N`$````QTO=U[(G!BT7@BU7H]_&+1>3W\>N"N"````"+5>PK -XM1=B+=>R+?>2)P8E%W-/JBT7H#[9-V-/@"<*+1>33Y@^V3=R)5?2+5>#3Z`^V -XM3=C3X@G0BU7@T^"+1>0K1>P;5>B)1?#I+____SGX=K``````BW4,QT7D`````(E%](G!BT4(A=*)UXE%['4C.?$/AI@```")\O?Q -XMB<$QP(E-X(E%Y(M%X(M5Y(/$(%Y?7<,Y\@^'M0````^]PH/P'XE%Z`^$E@`` -XM`+@@````BU7T*T7HB<'3Z@^V3>B)1?")^(M]]-/@"<*+1>S3YP^V3?")5=R) -XM\M/H#[9-Z-/B#[9-\`G0T^Z)\O=UW(G1B778B478]^QS%(UT)@`QR3'`Z2?___^-M"8` -XM````N0$````QP.D4____BT7L#[9-Z-/@.<9VAXM-V#'`@^D!Z?K^__^0D)"0 -XMD)"0D)"058GE5U:#[%"+30R+512+11#'1;@`````A@]<`]]_I!O____?:@]$`]]G'1<#_____Z>C^__^X(````(M5W"M%R(G! -XMT^H/MDW(B474B?B)UXGRT^`)QXM%W-/@#[9-U(E%K(M%V-/H#[9-R-/B"="+ -XM5=C3X@^V3=2)5>2)\M/J]_>)UO=EK#G60IP1G6BG^__\[1>1VI2M%K!GZZYZ0D)"0 -XMD)"0D)"0D)"0D%6)Y5=6@^PPBU4,BT4(BW40BWT4B570`````#XBD````A?\/B+H```")UXG&BU78B<&+ -XM1=R%_XE5\(E%['44.<9V08G0BU7L]_:)P3'`ZQ.-=@`[?>QV3S'),<"-M"8` -XM````B4W0BTWDB474BT70BU74A7UW#A?9U"[@!```` -XM,=+W]HG!BT7LB?KW\8G&BT7P]_&)P8GPZ[P/O<>#\!^)1>AU1#E]['<%.77P -XM3_____#XE+____D(UT)@")\(GZ -XM]]B#T@#WVO=5Y.DS____N"````")\BM%Z(G!T^H/MDWHB47TB?B)UXM5[-/@ -XM"<>+1?#3Y@^V3?33Z`^V3>C3X@^V3?0)T(M5[(E%S-/J]_>)553@^P$H1A/"0B#^/]T$C';_]"+@Q1/"0B#ZP2#^/]U\(/$!%M= -XMPY"0D(/L#.B\\_O_@\0,PP```````````````````````````````"1&'0@87)G=6UE;G0@"BUD"0EL;V%D(&1I2!S=&%C:R!F2D@"BUI"0EI;G1E6YT87@@;V8@=&AE(&9O;&QO=VEN9R!@9FEL92<@"BUQ"0EA8V-E<'0@ -XM4TE'455)5"!F;W(@&5C=71I -XM;VX@"BU8"0EL:6ME("UX(&)U="!I;F-L=61I;F<@8V]M;6%N9',@&ET(`H*4V5E('1H92!T8W-H*#$I(&UA;G5A -XM;"!P86=E(&9O2!I9@!);7!R;W!EF5D`"5S(&YO="!F;W5N9`!);7!R;W!E6YT87@`3F\@:&]M92!D:7)E8W1O0!$:7)E8W1O0!5`!%>'!A;G-I;VX@8G5F9F5R(&]V97)F;&]W`%9A`!"860@(2!F;W)M`$YO('!R979I;W5S('-U8G-T:71U=&4`0F%D('-U -XM8G-T:71U=&4`3F\@<')E=FEO=7,@;&5F="!H86YD('-I9&4`4FEG:'0@:&%N -XM9"!S:61E('1O;R!L;VYG`$)A9"`A(&UO9&EF:65R.B`E8P!-;V1I9FEE2`I)W,`5&]O(&UA;GD@*"=S`$)A9&QY('!L86-E9"`H`$UI0``07)G=6UE -XM;G0@9F]R("UC(&5N9',@:6X@8F%C:W-L87-H````07)G=6UE;G1S('-H;W5L -XM9"!B92!J;V)S(&]R('!R;V-E6YC(&9A=6QT.B!065T*0```%5S86=E.B!H:7-T -XM;W)Y(%LM)7-=(%LC(&YU;6)E2!A2!F:6QE(&YO="!E>&5C=71A8FQE``!5;FMN;W=N(&]P=&EO;CH@ -XM8"TE%@@72!;(&%R9W5M -XM96YT("XN+B!=```*36ES"4P.'@*`"5D(&AI=',L("5D(&UI!0CO6@4([UH%".]:!0CO6@4([UH%".]:!0CO -XM6@4([EX%"`=?!0@@7P4(.5\%"$-?!0A<7P4([UH%".]:!0CO6@4(:U\%"'I? -XM!0BS7`4([UH%"*%>!0BU7@4([UH%".]:!0C.7@4([UH%"-]>!0CO6@4([UH% -XM".]:!0CO6@4(ZUT%"%);!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4( -XMCEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B. -XM6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(2UL%"(Y:!0@I6P4(CEH%"(Y: -XM!0@B6P4(UUH%"`<`#0`````````````````````````````````@````)P`` -XM`"(````)````.P```"8````\````/@```"@````I````?````%X````E```` -XM`````'1CF4`=FUE;6]R>75S90!D97-CF4`)6IO8B`F`"5J;V(``"5S -XM.B`E6!0@ME@4(&98%"`^5!0@/ -XME@4(!98%"`^5!0@/E04(#Y4%"`^5!0@/E04(#Y4%"`^5!0C[E04(#Y4%"`^5 -XM!0@/E04(\94%"`^5!0CGE04(#Y4%"-V5!0ACF@4(0YH%"(B9!0B(F04((YH% -XM"(B9!0B(F04(B)D%"(B9!0B(F04(\9D%"-&9!0B(F04(B)D%"(B9!0A#F@4( -XM;)L%"&R;!0C%G`4(H)P%"&>;!0ALFP4(YYL%"&R;!0BG -XMFP4(@)T%"&R;!0ALFP4(2)T%"&R;!0ALFP4(YYL%"'1C&-E<'1I;VX`2TE,3`!+:6QL960`55-2 -XM,0!5&ET960`24\`07-Y;F-H&-E961E9`!81E-:`$9I;&5S:7IE(&QI;6ET(&5X -XM8V5E9&5D`%9404Q230!6:7)T=6%L('1I;64@86QA0!B&5C`&5X:70`9F<`9FEL -XM971E0!O;FEN='(`<&]P9`!P&5S -XM=6P`+20J`"@]?@!>*BTE)'M].B,`.EXD*BTE`````&YC:&%R^04(N@(&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``& -XM"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8( -XMI``&"*0`!@B:`@8(I``&"*0`!@B:`@8(I``&"*0`!@BD``8(I``&"*0`!@A\ -XM`@8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0` -XM!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@B:`@8(]1(&")42!@B5$@8(UPH& -XM"-<*!@C7"@8(UPH&")42!@C7"@8(UPH&"&T2!@C7"@8(UPH&"-<*!@C7"@8( -XMUPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8(UPH&"-<*!@C7 -XM"@8(UPH&"!(2!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<* -XM!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH& -XM"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8( -XMF0T&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<- -XM!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT& -XM"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08( -XM%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(T0T&"!<-!@@7#08(T0T&"!<- -XM!@@7#08(%PT&"-$-!@@7#08(%PT&"!<-!@BP$`8(IQ`&"-$-!@@>#P8(T0T& -XM"-$-!@@7#08(%PT&"*<0!@AW:61E7W)E860`.R8*`#P^*"D`)74E=0`E9#H` -XM"`A)W@@(3-X("$_>"`A%R0@(`````&YO="!A -XM(&1I0!U;G)E861A8FQE``HE4R`E0!"860@='=?8V]M;6%N9`H`:71E;7,`)7,Z($EN=&5R;F%L(&UA=&-H -XM(&5R!0<(G@4'"#P#!PB,`P<(QP,'"``````````` -XM````````````````@+X&"/#%!@C`NP8(H,4&"("^!@B`O@8((+X&"*#%!@A@ -XMNP8(D+L&","[!@C`NP8(`+L&"#"[!@C0N@8(H+H&"'"Z!@B`O@8(@+X&""#% -XM!@@`````````````````````P,`&",#`!@C`P`8(0,4&",#`!@C`P`8(P,`& -XM"$#%!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8( -XMP,`&"(#$!@@`````````````````````T,$&"/#"!@BPO08(4,4&"-#!!@C0 -XMP08(L+T&"%#%!@BPO08(L+T&"."Y!@A`O08(X+P&"+#)!@B`O`8(\+L&"&"Y -XM!@C0P08(T,$&")#$!@@*)7,@:6YT97)N86P@97)R;W(Z($D@9&]N)W0@:VYO -XM=R!W:&%T($DG;2!L;V]K:6YG(&9OF4M=V]R9`!C:&%N9V4M -XM8V%S90!C:&%N9V4M=&EL;"UE;F0M;V8M;&EN90!6:2!C:&%N9V4@=&\@96YD -XM(&]F(&QI;F4`8VQE87(M&-H86YG -XM92UP;VEN="UA;F0M;6%R:P!%>&-H86YG92!T:&4@8W5R'!A;F0@=F%R:6%B;&5S`&9O2US96%R8V@M8F%C:W=A2US96%R8V@M9F]R=V%R9`!I;G-E"UM971A`'%U;W1E9"UI;G-E2!E=F5R -XM>71H:6YG`')U;BUF9RUE9&ET;W(`4F5S=&%R="!S=&]P<&5D(&5D:71O<@!R -XM=6XM:&5L<`!S96QF+6EN2!D96QA>65D -XM('-U2UF;'5S:"UO=71P=70`5'1Y(&9L=7-H -XM(&]U='!U="!C:&%R86-T97(`='1Y+7-I9VEN='(`5'1Y(&EN=&5R2US -XM:6=T'0M=V]R9`!V:2UA9&0`=FDM -XM861D+6%T+65O;`!V:2UC:&"!C;VUM86YD`'9I+65N9'=O6%N:P!Y86YK+7!O -XM<`!E7V-O<'E?=&]?8VQI<&)O87)D`&5?<&%S=&5?9G)O;5]C;&EP8F]A5]P`!$ -XM96QE=&4@8VAA2!L:6YE````1&ES<&QA>2!L;V%D(&%V97)A9V4@86YD(&-U -XM&5C=71E(&-O;6UA;F0@86YD(&ME97`@ -XM8W5R'0@:&ES=&]R>2!L:6YE````17AP86YD('!A=&AN86UE7!E9"!T;R!T:&4@;&EN92!V97)B871I;0```$QO;VL@9F]R -XM(&AE;'`@;VX@8W5R&EC86P@8W5R -XM7!E -XM9`!6:2!R97!L86-E(&-H87)A8W1E6%N:V5D('1E>'0@=VET:"!Y86YK(&9R;VT@96%R;&EE -XM2D@4&%S=&4@8VQI<&)O87)D -XM(&)U9F9E'0@=V]R9"!T;R`G7%PG```H5TE.,S(@;VYL -XM>2D@0V]N=F5R="!E86-H("`!K;0!A;0!X;@!C;P!L:0!A9&0@ -XM;F5W(&)L86YK(&QI;F4`8FP`875D:6)L92!B96QL`&-L96%R('1O(&)O='1O -XM;0!C;&5A7-I8V%L('1A8G,`3G5M8F5R(&]F(&QI;F5S`$YU;6)E0!Y97,`8F%U9`!C;VQS``EF;VQL;W=I;F<@8VAA -XM3H@3G5L;"!E>'1E;F1E9"UK97D@;F]T(&%L;&]W960N -XM"@!!9&18:V5Y.B!.=6QL(&5X=&5N9&5D+6ME>2!N;W0@86QL;W=E9"X*```` -XM`$%D9%AK97DZ('-E<75E;F-E+6QE860M:6X@8V]M;6%N9"!N;W0@86QL;W=E -XM9`H``$]C=&%L(&-O;G-T86YT(&1O97,@;F]T(&9I="!I;B!A(&-H87(N"@`E -XM+3$U4RT^(`!N;R!I;G!U=`!3;VUE=&AI;F<@;75S="!F;VQL;WUU]`%5N8F]U;F0@97AT96YD960@:V5Y("(E4R(*``"5'0@(E1T( -XM")4="`B5'0@(E1T(")4="`B5'0@(E1T("-@<"`C8'`@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8 -XM'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@< -XM"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("(4="`C8'`@(V!P( -XM"-@<"`C8'`@(=1T("&4="`C8'`@(V!P("%4="`A%'0@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("#4="`C8'`@(V!P("-@<"`@G'0@(V!P("!L="`C8 -XM'`@(#QT(".D6"0A5;FMN;W=N('-W:71C:``E&%N>0!I>&]F9@!I;6%X8F5L`&ED -XM96QE=&4`;W!O'0`"5L>"!T;R`P>"5L>"`H)6QD*2X*`$]U="!O9B!M96UO -XM7,@=&\@96UA8W,@ -XM8FEN9&EN9W,*````("`@("UD("`@8FEN9"!A;&P@:V5Y4UA<%LE9%T@/3T@)60*`$-C06QT36%P6R5D -XM72`]/2`E9`H`3G5L;"!S=')I;F<@2!B:6YD:6YG,@@(7C(("%XR"`A>,@@(.#0("(HT -XM"`A>,@@(7C(("%XR"`A>,@@(7C(("$4T"`A5-`@(7C(("%XR"`AE-`@(Y#<( -XM"%@W"`A8-P@(O3<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("(8W"`A8-P@( -XM6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(73<("%@W"`A8 -XM-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`CD-P@(6#<("%@W -XM"`B]-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(AC<("%@W"`A8-P@(6#<( -XM"%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A=-P@(2!A;&EA($("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@( -XMBWP(""R!"`CJ?P@(BWP("-M_"`AX@0@(S8(("(M\"`B+?`@(BWP("(M\"`B+ -XM?`@(BWP("(M\"`C`@@@(HW\("(M\"`B+?`@(ZG\("(M\"`AX?P@(:7\(".I_ -XM"`A:?P@(BWP("$!_"`B+?`@("'\("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(^7X("'B!"`C9?@@(BWP("(M\"`B+?`@(98,("(M\"`BK?@@( -XMBWP("%5^"`C??0@(CGT("(M\"`CJ?P@(BWP("(M\"`A_?0@(ZG\("'!]"`B+ -XM?`@(4'T("(M\"`@%?0@(BWP("/5\"`B+?`@(Y'P("'B!"`@L9FEL96,`+&-O -XM;&]R`"QR:``L'`@)``` -XM``$;`SMP+@``!````#"+__^,+@``H(S__ZPN``#PC?__S"X``!"0___L+@`` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````!%R0@(`````"1/"0@````` -XM`````````````````````$`H(RD@0V]P>7)I9VAT("AC*2`Q.3DQ(%1H92!2 -XM96=E;G1S(&]F('1H92!5;FEV97)S:71Y(&]F($-A;&EF;W)N:6$N"B!!;&P@ -XM"0@D-@D(`@````````````````````````#X;PD( -XM``````````````````````````````````````!``$``0`!``$``0`!``$`` -XM0!1`&$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!` -XM`$`4``"``8`0@("``(`0H`&`$*`0@""``(``@`"``(``@``1`!$`$0`1`!$` -XM$0`1`!$`$0`1`(`0H!"``(`0@""``(``%@`6`!8`%@`6`!8`!@`&``8`!@`& -XM``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&((!`@`"``(``@#*``!H` -XM&@`:`!H`&@`:``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`* -XM``H`"B"`$*``@`"``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$`` -XM0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``(``@`"``(``@`"` -XM`(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(`` -XM@`"``(``@``&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`& -XM``8`!@`&``8`@``&``8`!@`&``8`!@`&``H`"@`*``H`"@`*``H`"@`*``H` -XM"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*`(``"@`*``H`"@`*``H`"@`* -XM`````"_*"`@!````[\D("`$````WR@@(``0``/?)"`@"````0,H("``$``#W -XMR0@(`P```$G*"`@`!```]\D("`0```!3R@@(``0``/?)"`@%````80("'#D"`@%````<.0("`4````F````YQP)"$7)"`@`````10("`(````]````Q!X)"'GD"`@%```` -XM>>0("`4````^````)/$("'GD"`@%````>>0("`4````C````?^0("(+D"`@% -XM````@N0("`4````E````G]$("(+D"`@%````@N0("`4````J````.K\("(CD -XM"`@%````B.0("`4`````````CN0("*^^"`@!````K[X("`$`````````D>0( -XM"*^^"`@!````K[X("`$`````````E.0("$7)"`@`````10("$7)"`@`````1!PA@3P<(`$\'"/`J!PAP,`<(8"D'",`O!PCP/`<( -XM("P'"#`L!PA`+`<(4"P'"&`L!PAP+`<(P"H'"*`Z!PAP,0<(<#\'""!0!PB@ -XM,0<(P"L'"&`F!PC@30<(H$T'"+`I!PBP40<(,%$'"&!W!PAP=0<(('8'"+`V -XM!PC0,`<(D#`'"!!H!PB03@<(,%$'"#`Q!PA0*P<($"L'".!.!PB0*P<(H$\' -XM",!/!PCP+P<(8$<'"!!*!P@`+`<(@"<'",!R!PC0)P<(\"<'"%`H!P@04@<( -XM@'0'"`!T!P@0.@<(<"@'"*`L!P@@90<(L#D'"(`X!PB@8P<(P"P'"'!`XX&@$/`1````7````"T````E```````` -XM`"(````G````8`````````````````````````````````````````#@3`D( -XM$0```````````````````-1,"0@5````````````````````]$P)"!,````` -XM```````````````(30D(%````````````````````)`O"0@2```````````` -XM````````($T)"``````````````````````;````3P```$8`````````&P`` -XM`$\```!(`````````!L```!/````1``````````;````3P```$,````````` -XM&P```$\```!"`````````!L```!/````00`````````;````6P```$8````` -XM````&P```%L```!(`````````!L```!;````1``````````;````6P```$,` -XM````````&P```%L```!"`````````!L```!;````00`````````````````` -XM`'P-"0@``0``P````(,-"0@#````0````(H-"0@``````````)$-"0C*!0`` -XM$`B`@)@-"0@``````````'P-"0A``0``@````(,-"0@#````0````(H-"0@` -XM`````````)$-"0B`````'`V`@)@-"0BP\;\!`````'P-"0@```````8``(,- -XM"0@``````````(H-"0@``````````)$-"0@`````@`0``)@-"0@````````` -XM`````````````````&P```!O````9P```&\```!U````=``````````````` -XM80```'4```!T````;P```&P```!O````9P```&\```!U````=``````````V -XM````,````````````````````&$```!U````=````&\```!M````80```'0` -XM``!I````8P````````!H````80```&X```!G````=0```'``````````80`` -XM`"X```!O````=0```'0`````````=````'0```!Y`````````"\```!P```` -XM=````',````O`````````&$```!N````>0````````!S````=````&$```!T -XM````=0```',`````````,``````````Q`````````"T````Q```````````` -XM````````````````````````,````'@````W````9@```&8```!F````9@`` -XM`&8```!F````9@`````````Z`````````%\`````````=````&,```!S```` -XM:`````````!H````;P```&T```!E`````````'4```!S````90```'(````` -XM````9P```'(```!O````=0```'``````````=````&4```!R````;0`````` -XM````````````````````````````````````````=@```&4```!R````0```````````````````````````````````&,```!A````=````&$` -XM``!L````;P```&<`````````3@```$P```!3````4````$$```!4````2``` -XM``````!N````;P```&L```!A````;@```&H```!I`````````'X````O```` -XM+@```&,```!S````:````&0```!I````<@```',````````````````````` -XM``````````````!D````:0```'(```!S````9@```&D```!L````90`````` -XM````````````````````````````````````````0```'P```!N````?````&4```!\````80```"D````_ -XM``!`(```````````````=0```&X```!A````;````&D```!A````````'0```!R````80```&,` -XM``!T``````````````````````````````````````````````!D````=0`` -XM`&X```!I````<0```'4```!E`````````',```!Y````;0```&P```!I```` -XM;@```&L```!S`````````&D```!G````;@```&\```!R````90````````!C -XM````:````&$```!S````90````````!E````>````'````!A````;@```&0` -XM````````````````````````90```&,```!H````;P```%\```!S````=``` -XM`'D```!L````90````````!B````P````````![````(````"X````N````+@```"````!]```` -XM`````'T`````````4````$$```!4````2```````````````9````&4```!F -XM````80```'4```!L````=``````````M````;@`````````M`````````&X` -XM``!O````9P```&P```!O````8@``````````````````````````````;@`` -XM`&\```!N````;P```&T```!A````=````&,```!H```````````````````` -XM`````````````````````&`````@````+@```"X````N````(````&`````` -XM````80```&T```!P````;0````````!T````:0```&T```!E`````````&X` -XM``!O````=````&D```!F````>0`````````````````````````````````` -XM````````````<````'(```!I````;@```'0```!E````>````&D```!T```` -XM=@```&$```!L````=0```&4`````````*````"``````````(````"D````` -XM````(``````````@````?````'P````@`````````"`````F````)@```"`` -XM````````(````'P````@`````````#L````@`````````#L`````````(@`` -XM`"(`````````6P```%T`````````(````#P````\````(``````````@```` -XM/````"``````````(````#X````^`````````"`````^`````````#X````` -XM````(````"X````N````+@`````````E````)0`````````E````*P`````` -XM```E````+0`````````E````(P`````````````````````````````````` -XM`&,```!O````;@```'0```!I````;@```'4```!E```````````````````` -XM``````````````````````````!C````;P```&X```!T````:0```&X```!U -XM````90```%\```!A````<@```&<```!S`````````%\```!P````80```'4` -XM``!S````90````````!@````<````'<```!D````8`````````!F````:0`` -XM`&P```!E````8P`````````````````````````````````````````````` -XM:````&D```!S````=````&,```!H````80```'(```!S```````````````` -XM`````````````````````````'````!R````;P```&T```!P````=````&,` -XM``!H````80```'(```!S``````````````````````````````!H````:0`` -XM`',```!T````;````&D```!T`````````%4```!3````10```%(````````` -XM````````````````3````$\```!'````3@```$$```!-````10````````!' -XM````4@```$\```!5````4````````````````````'<```!O````<@```&0` -XM``!C````:````&$```!R``````````` -XM``!L````:0```',```!T````;````&D```!N````:P```',`````````1``` -XM`$D```!.````1P```"$`````````````0``````````````````````````` -XM``````````!C````;P```'(```!R````90```&,```!T`````````&,```!M -XM````9`````````!A````;````&P`````````90```'(```!A````````1`````@````(```````` -XM``H````H;FEL*0```!0``````````7I2``%\"`$;#`0$B`$``!P````<```` -XMG%S__W`!````00X(A0)"#05%A@2'`P``'````#P```#L7?__1@$```!!#@B% -XM`D(-!46&!(<#```<````7````!Q?__\2`@```$$."(4"0@T%188$AP,``!P` -XM``!\````'&'__X!`@BG@0(,IX$"$*>!`A2G@0(8IX$"'*>!`B" -XMG@0(DIX$"**>!`BRG@0(PIX$"-*>!`CBG@0(\IX$"`*?!`@2GP0((I\$"#*? -XM!`A"GP0(4I\$"&*?!`ARGP0(@I\$")*?!`BBGP0(LI\$",*?!`C2GP0(XI\$ -XM"/*?!`@"H`0($J`$""*@!`@RH`0(0J`$"%*@!`ABH`0(6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G1E>'0`+F9I -XM;FD`+G)O9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]F`0```0````+````!`````@```!E```` -XM`0````8````(FP0("!L``!$```````````````0`````````8`````$````& -XM````')L$"!P;````"0`````````````$````!````&L````!````!@```""D -XM!`@@)```W`P$````````````$`````````!Q`````0````8```#\L`@(_#`$ -XM``P```````````````0`````````=P````$````"````(+$(""`Q!``.;@`` -XM```````````@`````````'\````!`````@```#`?"0@PGP0`+``````````` -XM````!`````````"-`````0````,`````(`D(`*`$`*0M`````````````"`` -XM````````DP````$````"````I$T)"*3-!`"<```````````````$```````` -XM`)T````&`````P```$!."0A`S@0`V`````4`````````!`````@```"F```` -XM`0````,````83PD(&,\$``@```````````````0`````````K0````$````# -XM````($\)""#/!``(```````````````$`````````+0````!`````P```"A/ -XM"0@HSP0`!```````````````!`````````"Y`````0````,````L3PD(+,\$ -XM`$@"``````````````0````$````O@````@````#````@%$)"(#1!`!T6P(` -XM```````````@`````````,,````!``````````````"`T00`60D````````` -XM`````0`````````!`````P``````````````V=H$`,P```````````````$` -X&```````` -X` -Xend -END-of-tcsh.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-3/out/strip-all-3.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-3/out/strip-all-3.out.shar deleted file mode 100644 index fd22c173..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-3/out/strip-all-3.out.shar +++ /dev/null @@ -1,7116 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# tcsh.uu -# -echo x - tcsh.uu -sed 's/^X//' >tcsh.uu << 'e0b48b8aefb9960c9da54cac18bdcb01' -Xbegin 644 tcsh -XM?T5,1@$!`0D```````````(``P`!````(*0$"#0```"LVP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(7)\$ -XM`%R?!``%`````!````$`````H`0``"`)"``@"0AT,0``](P"``8`````$``` -XM`@```$#.!`!`3@D(0$X)"-@```#8````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&0PGP0`,!\)"#`?"0@L````+`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*`````(``````````````"9````.0````````!1```` -XME@````````"#````G````',```",````2@```%X`````````4@````````") -XM````E```````````````<@```)\```!G`````````'H```!F````C@```$X` -XM``"'````%`````0`````````1`````,`````````#@```$(```"&````=P`` -XM````````````%P```)L```"-````-`````````!D`````````)X````````` -XM*P````````!V````;`````````!-````DP````````!%````?@```#L````` -XM````D0`````````W````````````````````)0````````!P`````````#`` -XM``!A````BP`````````V````20````````!M````E0````````!?````?0`` -XM`&D`````````:P````````!0````8@```'\````M````>``````````````` -XM``````````!6`````````&\```""````:@```)@```!&````,@````````!U -XM````6P````````":````3````(H````*````A0```````````````````)`` -XM``!8````;@```)T````8`````````(0```"2````5P```(`````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````$0````8```````````````````````````````$``````````@`````` -XM```>````````````````````#```````````````)@````<````I```````` -XM```````G`````````"X````<`````````"`````C```````````````-```` -XM+P`````````D````%@``````````````````````````````/0````4````H -XM`````````#4````9````00``````````````````````````````$P```$@` -XM`````````````````````````````````````````````#H````````````` -XM`$`````X`````````!`````)````7````"(````_````&@````````!@```` -XM`````````````````````&@`````````5````"$```!9`````````!(````` -XM```````````````=``````````\````;````+`````````!Q`````````$<` -XM```Q``````````````!Y````8P``````````````6@```!4```!\````*@`` -XM````````````B````$L`````````=`````L```"!`````````!\```!#```` -XM,P```&4```![`````````$\```!3````70```#P`````````CP````````"7 -XM````50```#X`````````````````````````I`0````````S````$@```)$$ -XM````````,P```!(```"T`@```````$,````2````$0````````"U````$@`` -XM`(P"`````````````!(```"2`@```````"L````2````RP,````````R```` -XM$@```&\!````````*````!(```"Y`@`````````````2````2@$````````` -XM````$@```#0!````````:P$``!(```#K!````````#@````2````:0$````` -XM``#]"```$@```!D```!`3@D(`````!$`\?_W`@`````````````2````I0(` -XM````````````$@```"(`````````U`,``!(```"#`0```````#,````2```` -XMU`0`````````````$@```'L"````````(P```!(````+!0`````````````2 -XM````$@0````````=````$@```#0#`````````````!(````K`0```````!T` -XM```2````B@0`````````````$@````,"````````5P```!(```#(```````` -XM`#D````2````?@$``,"N!@C>!```$@`,`"`#````````E````!(```#(`@`` -XM`````#D````2````100`````````````$@```"@`````````E@```!(```"2 -XM`0`````````````2````80(```````!S````$@```.$!``"`40D(!````!$` -XM%P#:```````````````2````?0,````````<````$@```#L!```````````` -XM`!(````'!``````````````2````!P$```````!/````$@```.0$```````` -XM<@```!(```#!`P````````4````2````"P0```````!.!0``$@```%P#```` -XM````W0,``!(```#!```````````````2````(@(```````#8````$@```#$` -XM```(FP0(`````!(`"@!)`@`````````````2````HP,`````````````$@`` -XM`+`#````````,P$``!(````-`@`````````````2````M@$````````+```` -XM$@```&\$````````*@```!(```";```````````````2````X``````````` -XM````$@```)<"``#8=0D(!````!$`%P!#`P```````$T````2````2P,````` -XM````````$@```+,"````````*P```!(```#$!``````````````2````YP`` -XM``````#&!```$@```"P#````````(0(``!(```#9`0```````!4"```2```` -XM`P`````````````2````9@0```````!9 -XM````$@```%(#`````````````!(```"0`P`````````````2````=P,````` -XM```[````$@```!0#````````>````!(```#"`0```````$P````2````10`` -XM`/RP"`@`````$@`-`,X"````````C`(``!(```#:`@```````!`````2```` -XM_0(````````E`0``$@```/X#````````'0```!(```#:!````````.T````2 -XM````0@$`````````````$@```#X#`````````````!(```!D`P``X%T)"`0` -XM```1`!<`^P`````````E````$@```",!`````````````!(````\`@`````` -XM`&<````2````[@$```````!?````$@```)X$`````````````!(```!*!``` -XM,*<&"&,````2``P`%0(````````_````$@```)\$````````0P```!(```"H -XM`0```````,,````2````J@(```````!4````$@```!<%``!T40D(`````!`` -XM\?_0```````````````2````EP,```````!#````$@```*\!````````,P`` -XM`!(```!W`0`````````````2````2P```"Q/"0@`````$0#Q_QL$```````` -XM@0```!(````J!0``]*P+"``````0`/'_``4`````````````$@```(`$```` -XM````5P```!(````N!````````&(#```2````]0$```````!A````$@```$X$ -XM````````DP```!(```"7`0`````````````2````)P0````````K````$@`` -XM`&(!`````````````!(```"K!````````!P````2````M`0````````````` -XM$@```$0$`````````````!(````;`0`````````````2````RP0```````"C -XM````$@```.<#````````4@```!(````;`P`````````````2````>`0````` -XM````````$@```!`!````````B@```!(```"Z```````````````2````4P0` -XM``````#($0``$@```&$``````````````"````#+`0```````(H````2```` -XMOP(```````!,````$@```(D!`````````````!(````\`P```````"@````2 -XM````=0`````````4`0``$@```(("`````````````!(```"?`@`````````` -XM```2`````&QI8FYC=7)S97,N@<```(`+P4```````"`40D(!2,``(A1"0@%20`` -XMW%T)"`5?``#@70D(!7(``#A/"0@'`0``/$\)"`<"``!`3PD(!P,``$1/"0@' -XM!```2$\)"`<%``!,3PD(!P8``%!/"0@'!P``5$\)"`<(``!83PD(!PD``%Q/ -XM"0@'"@``8$\)"`<+``!D3PD(!PP``&A/"0@'#0``;$\)"`$\)"`<2``!\3PD(!Q,``(!/"0@'%```A$\)"`<5``"(3PD( -XM!Q8``(Q/"0@'%P``D$\)"`<8``"43PD(!QD``)A/"0@'&@``G$\)"`<;``"@ -XM3PD(!QT``*1/"0@''@``J$\)"```"04`D(!V```)10"0@'80`` -XMF%`)"`=B``"<4`D(!V,``*!0"0@'9```I%`)"`=E``"H4`D(!V8``*Q0"0@' -XM9P``L%`)"`=H``"T4`D(!VD``+A0"0@':P``O%`)"`=L``#`4`D(!VT``,10 -XM"0@';@``R%`)"`=O``#,4`D(!W```-!0"0@'<0``U%`)"`=S``#84`D(!W0` -XM`-Q0"0@'=0``X%`)"`=V``#D4`D(!W<``.A0"0@'>0``[%`)"`=Z``#P4`D( -XM!WL``/10"0@'?```^%`)"`=^``#\4`D(!W\```!1"0@'@```!%$)"`>!```( -XM40D(!X,```Q1"0@'A0``$%$)"`>&```440D(!X<``!A1"0@'B```'%$)"`>) -XM```@40D(!XH``"11"0@'BP``*%$)"`>,```L40D(!XT``#!1"0@'C@``-%$) -XM"`>/```X40D(!Y```#Q1"0@'D0``0%$)"`>2``!$40D(!Y,``$A1"0@'E``` -XM3%$)"`>5``!040D(!Y8``%11"0@'EP``6%$)"`>9``!<40D(!YH``&!1"0@' -XMFP``9%$)"`><``!H40D(!YT``&Q1"0@'G@``<%$)"`>?``"#[`SHX`D``.B[ -XM%00`@\0,PP```/\U,$\)"/\E-$\)"`````#_)3A/"0AH`````.G@_____R4\ -XM3PD(:`@```#IT/____\E0$\)"&@0````Z<#_____)41/"0AH&````.FP____ -XM_R5(3PD(:"````#IH/____\E3$\)"&@H````Z9#_____)5!/"0AH,````.F` -XM_____R543PD(:#@```#I````.GP_O___R5X3PD(:(````#IX/[___\E?$\)"&B(````Z=#^____ -XM)8!/"0AHD````.G`_O___R6$3PD(:)@```#IL/[___\EB$\)"&B@````Z:#^ -XM____)8Q/"0AHJ````.F0_O___R603PD(:+````#I@/[___\EE$\)"&BX```` -XMZ7#^____)9A/"0AHP````.E@_O___R6<3PD(:,@```#I4/[___\EH$\)"&C0 -XM````Z4#^____):1/"0AHV````.DP_O___R6H3PD(:.````#I(/[___\EK$\) -XM"&CH````Z1#^____);!/"0AH\````.D`_O___R6T3PD(:/@```#I\/W___\E -XMN$\)"&@``0``Z>#]____);Q/"0AH"`$``.G0_?___R7`3PD(:!`!``#IP/W_ -XM__\EQ$\)"&@8`0``Z;#]____)!/"0AH4`$``.E`_?___R7D3PD( -XM:%@!``#I,/W___\EZ$\)"&A@`0``Z2#]____)>Q/"0AH:`$``.D0_?___R7P -XM3PD(:'`!``#I`/W___\E]$\)"&AX`0``Z?#\____)?A/"0AH@`$``.G@_/__ -XM_R7\3PD(:(@!``#IT/S___\E`%`)"&B0`0``Z<#\____)010"0AHF`$``.FP -XM_/___R4(4`D(:*`!``#IH/S___\E#%`)"&BH`0``Z9#\____)1!0"0AHL`$` -XM`.F`_/___R444`D(:+@!``#I%`)"&B``@``Z>#Z____)7Q0"0AHB`(``.G0^O___R6`4`D(:)`"``#I -XMP/K___\EA%`)"&B8`@``Z;#Z____)8A0"0AHH`(``.F@^O___R6,4`D(:*@" -XM``#ID/K___\ED%`)"&BP`@``Z8#Z____)910"0AHN`(``.EP^O___R684`D( -XM:,`"``#I8/K___\EG%`)"&C(`@``Z5#Z____):!0"0AHT`(``.E`^O___R6D -XM4`D(:-@"``#I,/K___\EJ%`)"&C@`@``Z2#Z____):Q0"0AHZ`(``.D0^O__ -XM_R6P4`D(:/`"``#I`/K___\EM%`)"&CX`@``Z?#Y____);A0"0AH``,``.G@ -XM^?___R6\4`D(:`@#``#IT/G___\EP%`)"&@0`P``Z<#Y____)<10"0AH&`,` -XM`.FP^?___R7(4`D(:"`#``#IH/G___\ES%`)"&@H`P``Z9#Y____)=!0"0AH -XM,`,``.F`^?___R744`D(:#@#``#IA0"0AH8`,``.D@^?___R7L4`D(:&@#``#I$/G___\E\%`)"&AP`P``Z0#Y -XM____)?10"0AH>`,``.GP^/___R7X4`D(:(`#``#IX/C___\E_%`)"&B(`P`` -XMZ=#X____)0!1"0AHD`,``.G`^/___R4$40D(:)@#``#IL/C___\E"%$)"&B@ -XM`P``Z:#X____)0Q1"0AHJ`,``.F0^/___R4040D(:+`#``#I@/C___\E%%$) -XM"&BX`P``Z7#X____)1A1"0AHP`,``.E@^/___R4<40D(:,@#``#I4/C___\E -XM(%$)"&C0`P``Z4#X____)211"0AHV`,``.DP^/___R4H40D(:.`#``#I(/C_ -XM__\E+%$)"&CH`P``Z1#X____)3!1"0AH\`,``.D`^/___R4T40D(:/@#``#I -XM\/?___\E.%$)"&@`!```Z>#W____)3Q1"0AH"`0``.G0]____R5`40D(:!`$ -XM``#IP/?___\E1%$)"&@8!```Z;#W____)4A1"0AH(`0``.F@]____R5,40D( -XM:"@$``#ID/?___\E4%$)"&@P!```Z8#W____)511"0AH.`0``.EP]____R58 -XM40D(:$`$``#I8/?___\E7%$)"&A(!```Z5#W____)6!1"0AH4`0``.E`]___ -XM_R5D40D(:%@$``#I,/?___\E:%$)"&A@!```Z2#W____)6Q1"0AH:`0``.D0 -XM]____R5P40D(:'`$``#I`/?__P````!5B>564X/L$(/D\(M=!(G1C72=#(7; -XMB378=0D(?C:+10B%P'0OHP`@"0@/MA"$TG0C@\`!ZPH/MA"#P`&$TG04@/HO -XM=?&C`"`)"`^V$(/``832=>RX0$X)"(7`=#2)#"3H5_[__\<$)/RP"`CH2_[_ -XM_^AR]O__C44(B70D"(E$)`2)'"3HYQL``(D$).A+_?__Z-;X___KS9"0D)"0 -XMD)"058GE@^P(@#WD70D(`'0,ZQR#P`2C""`)"/_2H0@@"0B+$(72=>O&!>1= -XM"0@!R<.058GE@^P(H2A/"0B%P'02N`````"%P'0)QP0D*$\)"/_0R<.0D)"0 -XMD)"0D)"0D)"058GE@^P8Z%77``#'!>AV"@@`````QT0D!!````#'!"0````` -XMZ->``0"CM'8*",=$)`@!````QT0D!`(```")!"3HUO;__\=$)`01````QP0D -XM`0```.BF@`$`H\R7"@C'1"0(`0```,=$)`0"````B00DZ*7V___'1"0$$@`` -XM`,<$)`(```#H=8`!`*,$=@H(QT0D"`$```#'1"0$`@```(D$).AT]O__QT0D -XM!!,```"AM'8*"(D$).A#@`$`HT29"PC'1"0(`0```,=$)`0"````B00DZ$+V -XM__^A!'8*"(D$).A%_/__H_R9"PBAS)<*"(D$).@S_/__H^!U"0C)Z3S7``"- -XMM@````"-OP````!5B>6#[`B+10B+$(72=23'1"0$Q)@*",<$))`O"0CHO>`! -XM`#WX;PD(=!6)10C)Z0WP`P")!"3HY9\#`(7`=>O),<##C;8`````C;PG```` -XM`%6)Y5=64X/L'(MU"(-^"/\/A%@!``"+/;AW"@BAO'<*",<%N'<*"`````#' -XM!;QW"@@`````A?^)1?!^&3';B?:+5?"+!)J#PP&)!"3H7X,#`#G[=>N+1?") -XM!"3H4(,#`(U&3,=$)`@D(```B40D!,<$)*!W"@CH8?O__Z&T=@H(B00DZ!A[ -XM`0"+!J/\70D(BT8(H[1V"@B#?@3_=!6A1)D+"(D$).CV>@$`BT8$HT29"PB# -XM?@S_=!6AS)<*"(D$).C;>@$`BT8,H\R7"@B#?A#_=!6A!'8*"(D$).C`>@$` -XMBT80HP1V"@B+1B"CD'8*"(M&-*.\F`H(BT8DHTB:"PB+1BBC2'<*"(M&+*.T -XMF`H(BT8PHS"9"PB+1A2CP'8*"(M&&*/@F0L(BT87UW#HXR8"@CKNHM&0(7`=.J+"(7)=.3'1"0$Q)@*",<$ -XM)"0V"0CHDMX!`(7`=,S'10@D-@D(@\0<6UY?7>EKX`$`C70F`(V\)P````!5 -XMB>575E.!["P!``"A+)H+"(L5*)H+"(F%'/___Z$DF@L(B948____BQ4@F@L( -XMB844____H1R:"PB)E1#___^+%1B:"PB)A0S___^A%)H+"(F5"/___XL5$)H+ -XM"(F%!/___Z$,F@L(B94`____BQ4(F@L(B87\_O__H02:"PB)E?C^__^+%0": -XM"PB)A?3^__^)E?#^___H-7,``(,%`%X)"`&)A>3^___'!"0`F@L(Z,CT___H -XM=YP!`*'L70D(HW!V"@BAP)@*"(7`=!R+10B%P`^$V@$``,<%P)@*"`````#H -XMJGT!`.O`H?R8"@B%P`^%^P,``*&,=@H(A"0B% -XMP'02B00DZ*F``P#'!8!>"0@`````H91W"@B%P`^%8@(``,<$)'AV"@CHMFT! -XM`(G#H91W"@B%P`^%-P(``,=$)`20Z04(QP0D>'8*".CC=0``A=MT#:&`7@D( -XMA<`/A!,#``#'1"0$Q)@*",<$)&`R"0CHOMP!`(7`=#N+'>AV"@C'!<"8"@@! -XM````QP7H=@H(`````,<$)'AV"@CH9%$!`.C/C@$`QP7`F`H(`````(D=Z'8* -XM",<$)`````#H?_?__Z'L70D(QP7(K`L(`0```(7`#X5L`0``BTT(A"9"PB%_P^$*@$``(`]B)@*"`!T#X,]@%X)"`$9P"`%B)@* -XM"(L-[%T)"(7)=1N+%8!>"0B%TG01QP0D````0.@5<@``D(UT)@"A<'8*"(7` -XM=2>A\%T)"(7`#X1*`0``QT0D!`````#'!"1X=@H(Z,:6``"-M@````#'!"1X -XM=@H(Z"1T``#I]_W__XN%Y/[__\<%_)@*"`````")!"3HMW,``(N5'/___XN% -XM&/___XD5+)H+"(N5%/___Z,HF@L(BX40____B14DF@L(BY4,____HR":"PB+ -XMA0C___^)%1R:"PB+E03___^C&)H+"(N%`/___XD5%)H+"(N5_/[__Z,0F@L( -XMBX7X_O__B14,F@L(BY7T_O__HPB:"PB+A?#^__^)%02:"PBC`)H+".@(<0`` -XMZ7K]__^+-?!="0B%]@^%R/[__XL=3)H+"(7;#X6Z_O__C;0F`````(/H`0^? -XMP`^VP(E$)`3'!"1X=@H(Z/0#`.F._?__QP0D>'8*".A4C`$`H80@ -XM"0B%P`^%Z`$``*&`=@H(QT0D"`````#'1"0$>'8*"(D$).BZB`$`QT0D!$`K -XM!@B)PXD$).A8"0B%P'0,QP0D````0.A3<```Z!ZN`P"AU)<*"#'2 -XMQT0D$`$```#'1"0,`````,=$)`@`````A<`/G\*#Z@$)T(E$)`2)'"3H";T! -XM`*&TF0L(A<`/A4P!``"+10B%P'05BSW`=@H(A?\/A1L!``"-M"8`````QT0D -XM"`8```#'1"0$`'8)",<$)'0O"0CH%.,!`.GO_?__BSW`=@H(A?\/A-_\__^+ -XM-?!="0B%]@^%T?S__X`]B)@*"``/A<3\__^+'>"9"PB%VP^%MOS__^G)_/__ -XMC78`BY7D_O__QP7\F`H(`````(,M`%X)"`&)%"3H<7$``(N%'/___XN5&/__ -XM_Z,LF@L(BX44____B14HF@L(BY40____HR2:"PB+A0S___^)%2":"PB+E0C_ -XM__^C')H+"(N%!/___XD5&)H+"(N5`/___Z,4F@L(BX7\_O__B140F@L(BY7X -XM_O__HPR:"PB+A?3^__^)%0B:"PB+E?#^__^C!)H+"(D5`)H+"('$+`$``%M> -XM7UW#BS7@F0L(A?8/A=[^__^+'?!="0B%VP^%T/[__\<$)`````#HI/L"`.F_ -XM_O__QP0D>'8*".CCF0,`H80@"0B%P`^$__W__\<$)'AV"@CH*IX#`.GN_?__ -XMQP4X=PH(`````,=$)`3$F`H(QP0DJ$`)".A7V`$`A<")PP^$=0(``(L0A=(/ -XMA&L"``"-1>R)!"3HU.S__XL;B1PDZ$YO`0"%P(F%[/[__P^%T@(``+A8`@`` -XM`P4,7@D(.T7L#X\T`@``BP.%P`^$(@(``(G?Z;$```"+1;P+1<`/A)<```"+ -XM1:0YP@^,C````(L-#%X)"#G(?P0YRGY^H329"PB%P`^%N0(``(7;N$7)"`@/ -XMA;0"``")!"3HU'@!`,=$)`0P*@@(B<.)!"3HHG```(.][/[__P$/A.T"``"A -XM@)@*",=$)`RDL0@(QT0D"`<```#'1"0$"P```(D$).@@SP``B70D"(E<)`2) -XM!"3HL,@#`(D<).BX;P``BT<$@\<$A<`/A&H!``")!"3H(ND#`(U5C(E4)`2) -XMQHD$).BM[___A"0B#P`$Y -XMT`^-2P$``*$TF0L(A<`/A38!``")#"3H(^___XN5(/___XD4)(G#Z`=Z`P"% -XMVP^$)____XD<).AS\O__A<`/A!?___^)'"3H8_+__\>%Z/[__P````"%P'40 -XMZ?S^__^-="8`@X7H_O__`8D<).@]\O__AC^__^)="0(B50D!(D$).@WQP,`Z8K^__^)]HM%[*,,7@D(QP0D```` -XM`.@L[P,`Z&?8`P#HHJ8#`(GVZ'NJ`P"+%:1W"@B+#;1W"@BAH'<*"#,%L'<* -XM"#'1"<%T%NC9AP$`QP0D`0```.A-G@,`Z4[X__^#/=`D"0@"=>''1"0$```` -XM`,<$)`````#HZ]4#`.O+A=L/A<+^__^+A2#___^)!"3HTW@#`.GV_?__BP.) -XM!"3H9'@!`(7`B?8/A!K]__^#K>S^__\!BP.#PP2)!"3HEM,!`(7`#X\#_?__ -XMN`$```#I^?S__XUT)@"%VP^$L/W__Z&`F`H(QT0D#(VQ"`C'1"0(!@```,=$ -XM)`0+````B00DZ)/,``#I(OW__XU5C#';C84L____B10DQT0D"&````")1"0$ -XMZ&OP__^+5:P[%:B9"PB+C2#___\/G\/I[/W__Z&`F`H(QT0D#)*Q"`C'1"0( -XM!0```,=$)`0+````B00DZ#/,``")7"0$B00DZ,?%`P#I$OW__Z&`F`H(QT0D -XM#'&Q"`C'1"0(`P```,=$)`0+````B00DZ/W+``"+E>C^__^)5"0$B00DZ(O% -XM`P#IWOS__XVV`````%6)Y5>)SU:)UE.![%PA``#'1"0$`````(D$).A@;0$` -XM,=*#^/\/A`\#``"-7?")1?")'"3'1"0$0!X%".CO;```BT7PQT0D!/____^) -XM!"3HG',!`(D<)(E%\.B!;```B1PDZ"EL``"+1?#'1"0(`0```,=$)`0"```` -XMB00DZ#KI__^+7?"Z`0```(7;#XBH`@``A?;'A________=!>-19")1"0$ -XMB1PDZ-WP__^%P`^(A00``(V%P-[__\=$)`2`I@0(B00DZ&-L``"+#91W"@B% -XMR0^%!00``*'\70D(BQ7H=@H(QX70WO_______\>%S-[_______^)A<#>__^A -XMM'8*"(72QX7$WO_______XF%R-[__P^%.@(``*'`=@H(A?^)A=3>__^AX)D+ -XM"(F%V-[__Z%0=PH(B87#>__^A2)H+"(F%Y-[__Z%(=PH( -XMB87HWO__H;28"@B)A>S>__^A,)D+"(F%\-[__Z&\F`H(B87TWO__H>Q="0B) -XMA?C>__\/A;0!``#'A03?__\`````H>R9"PC'1"0()"```,=$)`2@=PH(B84( -XMW___C84,W___B00DZ!;N__^+10B%P'1JBU4(BP*%P'1AQT0D!,28"@C'!"0D -XM-@D(Z$;2`0"%P`^$#@,``(L`A<`/A`0#``")!"3H[',!`(F%_-[__XM%"(D$ -XM).C;%_-[_ -XM_P````"+50B)';1V"@C'!;QW"@@`````QP6X=PH(`````(F5`-___\<%L'<* -XM"`````#'!;1W"@@`````QP6@=PH(`````,<%I'<*"`````#H3S,!`*&T=@H( -XMQP60=@H(`````,<%O)@*"`````")!"3H&NW__X/_`<<%X)D+"`````#'!5!W -XM"@@`````QP5(=PH(`````,<%2)H+"`````#'!3"9"P@`````H\!V"@@9P"$% -XMC)@*"*&4=PH(QP6TF`H(`````(D][%T)",<%_%T)"`$```"%P`^%]0$``,<$ -XM)`````#HF?+__XV%P-[__XD$).A;:0``N@$```"!Q%PA``")T%M>7UW#H8R8 -XM"@B)A03?___I1O[__XUUD(ET)`3'!"0`````Z"+N__^#P`%T9XV%,/___XE$ -XM)`2A1)D+"(D$).@&[O__@\`!=$N+190[A33___\/A-P!``"A1)D+",=$)`3_ -XM____QP0D`````(F%Q-[__^@W<`$`QT0D"`$```#'1"0$`@```*-$F0L(B00D -XMZ.;E__^)="0$QP0D`0```.BF[?__@\`!=&>-A3#___^)1"0$H___HNV\!`,=$)`@!````QT0D!`(```"CS)<*"(D$).AJY?__B70D!,<$ -XM)`(```#H*NW__X/``71IC84P____B40D!*$$=@H(B00DZ`[M__^#P`%T38M% -XME#N%-/___P^$O````*$$=@H(QT0D!/_____'!"0"````B870WO__Z#]O`0#' -XM1"0(`0```,=$)`0"````HP1V"@B)!"3H[N3__XGVZ`MK`0#I0_S__XVV```` -XM`(,%Q*P+"`''1"0$L)`(",<$),2L"PCH-6@``.G;^___QX7\WO__`````.G[ -XM_/__D,<$),2L"PCH=&<``(,%Q*P+"`''1"0$L)`(",<$),2L"PCH^6<``.G? -XM_?__B1PDZ%QJ`0"Z`0```.GL_?__BT60.X4P____#X4U____Z6[___^+19`[ -XMA3#___\/A:7^___IW/[__XM%D#N%,/___P^%%?[__^E,_O__C;8`````58GE -XM5U93@^PD<9@`` -XMQT7P`````.E7____QT0D!#PT"0B)'"3HC./__X7`=>"+7@B-?@C'1?`"```` -XMA=L/A2[____'!"2!```0Z(MC``"+7@C'1?`"````Z1/____'!"1%```0Z'!C -XM``"+7@C'1?`!````Z?C^__^058GE4X/L%*&4=PH(BUT(AGW8@``C;0F`````*'`=@H( -XMA"0@`QP0D``````^4PC')Z+/W__^)'"2)QN@Y9```@\00B?!;7EW#BT@$ -XMAR+-S'`A?9T5HU?!,=%\`````#K#Y") -XMW\=#_#H```"+,X/#!(/^.G0$A?9U\L=#_`````"+!X7`=06_C#,)"(D\).A/ -XMV@,`BU7PBTWLB021@\(!A?:)5?!UO(G0P>`"BU7LQP0"`````(D4),=$)`3P -XM(P8(Z%UC``#'1"0,`@```,=$)`C$F`H(BTWLQP0DE#()"(E,)`3H^L\!`(M% -XM[(D$).C?8@``BU7LB54(@\0<6UY?7>E]8@``C;8`````C;PG`````%6)Y8/L -XM"*'4EPH(AA<____H>1U"0B%P'0HBT4(B00DZ(3D___' -XM1"0$$P```(M#'(D$).C1Y/__BS:%]HGS=9'KRN@&OP``C;8`````Z\N-M"8` -XM````C;PG`````%6)Y593@^P0H329"PB%P`^%B@```.AV_?__BS4`F`H(A?9T -XM2XGSBU,,]L8!=#*+0QP[!=R9"PAT)X'B___]_XE3#,=$)`0!````BT,7B)!"3HQEX``.BA -XM_O__@\0D6UW#QT0D!,28"@C'!"0`+@D(Z)?&`0"%P'1-,575E-1@>R8`0``BP&+203'1>P` -XM````QT7H`````(F%>/[__XF-=/[__\=%Y`````#'1"0$14!`)#K!8/X`G\^QT0D -XM!`````#'!"3,L0@(Z.5>`0"#^/]UXL=$)`0`````QP0D4\<(".C,7@$`@_C_ -XM=0<``(D$)+]P -XMN0@(Z#=F`0"Y!0```/RC#'8*"(G&\Z8/E,`/ML"CE)@*",<$)-:Q"`CH`=D# -XM`(D$).BIU`,`HZ28"@C'!"3>L0@(Z.C8`P")!"3HD-0#`*-T=PH(H=AU"0B) -XM!"3H/MD#`*/0EPH(B00DZ%'7`P"CV'4)",<$).>Q"`CHL-@#`(D$).A8U`,` -XMQP6,F`H((0```,<%1)H+"%X```#'!32:"P@^````QP6,=PH((P```,<%;'<* -XM"`````"CU)D+"*-,=PH(QP0D\;$(".A@V`,`QT0D"`(```#'!"2@,PD(B40D -XM!.B(S0$`BXUT_O__BP&)!"3H.-@#`(D$).C@TP,`QP7X70D(`````*/T70D( -XMQT0D!*0N"0B)!"3H[=G__X7`#Y3`#[;`B86$_O__Z`K@__^CA'8*".B`V___ -XMH\QV"@CH5N#__Z,LF0L(Z)S>__^+M73^__^CZ)@*"(L&@#@M#X3`$0``@[UX -XM_O__`@^$DQ$``,<%-)D+"`````#'!6"9"P@!````NX````#'!"3UL0@(Z*38 -XM__^%P`^5P`^VP*/`I0L(QT0D!$7)"`C'!"0`````Z%/?___'1"0$1BT2>-*D```0`=2R#PP&!^_\```!_(??#```` -XM0'7M@?O_````=MJ)'"2)]N@WV?__J0``!`!TU(,]@%$)"`$/E,(QP('[_P`` -XM``^?P"'0HV"9"PBA/&0)"(7`=`VA0&0)"(7`#X1>$0``Z'T5`P#'!"1T=@H( -XMZ&W7___HG-H#`.@WX?__H;1V"@B)!"3H=MO__X7`B<,/A$P1``")QK@%```` -XM_+_^L0@(B<'SI@^$^`0``(D<).BAU@,`B00DZ$G2`P#'1"0(`@```,<$)+PN -XM"0B)1"0$B6`$`QT0D"`(```#'!"2X+PD(B40D!.BFR0$`C9V<_O__QT0D -XM!``!``")'"3H/-S__X7`#X@]#@``QD6;`(D<).A\U`,`QP0DE#`)"(E$)`3H -XM7,L``.BG=@,`QP0D++((".AGU?__A<")PP^$Z0X``(D$)(G>OQZR"`CH0M0# -XM`(D$).CJSP,`B00DZ!)8`0#'1"0(`@```,<$)-`O"0B)1"0$Z!K)`0"Y"``` -XM`/SSI@^%P0P``,>%?/[__P$```"+M7S^__^_/K(("+D&````_(DUB'<*"(G> -XM\Z8/A3L"```QP*/DF0L(BSWDF0L(A?\/AL@@(Z&S4 -XM__^%P(G#="Z)!"3HGMO__X/X!(F%O[NR"`BY!P```/.F#X2,#0``B[5X_O__@^X!A?8/CD,.``"+E8C^ -XM__^+`H`X+0^%,@X``(U0`0^V0`&$P`^$(PX``,>%@/[__P`````Q_XG3ZS*A -XM#'8*",<%D)@*"`$```")7"0$QP0D?````(E$)`CHV%,```^V0P&#PP&$P`^$ -XM`0$``#QX=\H/ML#_)(6,MP@(N'"Y"`CI??C__XU#!8D$).D`^___B=Z_1+(( -XM"+D#````\Z8/A+']__^+A7S^__^#\`'II?W__XUT)@"#_@$/A%L'``"#A8C^ -XM__\$BXV(_O__BP&)!"3H8-$#`(D$).@(S0,`A<"CD'8*"'0HB00DZ/?,`P") -XM!"3H'U4!`,=$)`@"````QP0D0#8)"(E$)`3H)\8!`*&0=@H(B00DZ*K'`P"+ -XM#9!V"@@YP7,G@WC\7(U0_'4>,<#K"XUV`(/J!(,Z7'4'@\`!.=%R\:@!#X6. -XM!@``@^X!QP6$(`D(`````+\!````#[9#`8/#`83`#X7__O__@^X!@X6(_O__ -XM!(7V?B:+E8C^__^+`H`X+749C5`!#[9``83`=`Z+C8#^__^%R0^$E?[__X7_ -XM#Y3#BX6$_O__A<`/A<4'``"$VP^$J0```(7V#XZA````QT0D!`````"+C8C^ -XM__^+`8D$).B950$`A<")PP^(&0X``*'T70D(B00DZ+)?`P"+E8C^___'!?A= -XM"0@!````BP*)!"3H*-`#`(D$).C0RP,`H_1="0C'1"0$$````(D<).B[6P$` -XMA<"CM'8*"`^(7PT``,=$)`@!````QT0D!`(```"AM'8*"(D$).A=T?__@X6( -XM_O__!,<%A"`)"`````#HVUL!`*&T=@H(B00DZ$K7__^%P*/`=@H(#X3"!@`` -XMH!V"@B)1=RA -XMY'8*"(E%X.@E3@``QP0D`)H+".C%S___@P4`7@D(`<<%P)@*"`````"%P`^5 -XMP`^VP`L%"%X)"`^$`00``(N%C/[__XLUP'8*"(,M`%X)"`&CE'<*"(M%S(7V -XMH]!V"@B+1="CU'8*"(M%U*/8=@H(BT78H]QV"@B+1=RCX'8*"(M%X*/D=@H( -XM=`Z+'9!V"@B%VP^$^`D``(M%Z(7`#X7%!```BT7LA<`/A:D$``"AE'<*"(D$ -XM).BGV?__BPW`=@H(A%A/[__P$```#IUOG__\<%*'<*"`$` -XM``#IQ_G__\<%!%X)"`$```#IN/G__[\!````QP4DF0L(`0```.FD^?__QP4( -XM7@D(`0```.F5^?__QP60F`H(`0```.F&^?__QT7D`0```.EZ^?__QX6`_O__ -XM`0```.EK^?__QP7H70D(`0```.E<^?__OP$```#'!80@"0@`````QP64=PH( -XM`0```.D_^O__QP0D@#()".BJP`$`Z2WY___'!"1@,@D(Z)G``0#I'/G__\=% -XM[`$```#I$/G__\=%Z`$```"0Z0/Y__^_`0```,<%O)@*"`(```#'!80@"0@` -XM````Z>7X__^+E7#^__^_XK$("+D%````_(U$$_R)QO.F#X5R]___B1PDZ);* -XM`P")!"3H/L8#`(D$).AF3@$`QT0D"`(```#'!"0H,@D(B40D!.ANOP$`BYUP -XM_O__A=L/A5'W___I+_?__\<%D)@*"`$```#'!"0I````Z$5,``#I5_G__Z', -XMEPH(B00DZ+_1__^%P`^$Z_K__\<%E'<*"`$```#IW/K__\<$)`````#H0.S_ -XM_^F4^/__QP4(7@D(`0```.E&]/__H]'__X7`#X1;^O__BX6` -XM_O__A<`/A4WZ__^AA'8*"#L%+)D+"`^$/@0``.B_SO__QP`-````QP7D=0D( -XM`0```.BJSO__BP")!"3H4,S__XE$)`BA#'8*",<$)#8```")1"0$Z(M+``#I -XM^OG__XN%=/[__X/`!(F%B/[__^DV]___A=L/A`0&``")'"3H8LD#`(D$).@* -XMQ0,`B00DZ#)-`0#'1"0(`@```,<$)*0O"0B)1"0$Z#J^`0#'1"0$Q)@*",<$ -XM)*0O"0CH=K4!`,<$)*`_"0B)1"0$Z`;```#I)_3__\<$)+6R"`CH1:8#`.DH -XM_?__QP0D@#$)".B4O@$`Z2/U___'1"0$Q)@*",<$)(`Q"0CHR[0!`(7`=`S' -XM!"2`,0D(Z*NV`0#'!>29"P@`````Z0OY___'1"0$`````,<$)`,```#H],[_ -XM_^DB^/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".AX30``,2%P`^$^?K__\<$ -XM)`````#HD0L``)#IY_K__\<$)(`R"0CH'[T!`.E&^___QP0D8#()".@.O0$` -XMZ2K[__^-1`/[OV2R"`C\N08```")QO.F#X2R_/__Z0CT__^)WK\QL@@(N04` -XM``#SI@^$*_/__XG>OS:R"`BY"````/.F#Y3`#[;`B85\_O__Z1;S___'1"0( -XM`@```,=$)`3H-@D(QP0DJ#()".@\O`$`Z1[X___'1"0$+P```(G>B1PDZ,'' -XM__^%P'0#C7`$QT0D"`,```#'1"0$O"X)"(DT).@"R___A/[__P&%P`^$_NW__\<$)`Q> -XM"0CH,<;__\<$).`U"0CH.;L!`.GA[?__Z,^C`@#IF.[__Z',=@H(.P7HF`H( -XM#X6Q^___Z>CU___'!"1%R0@(Z<+N___'!8AW"@@`````QP0D1[((".A>QO__ -XMN@$```"%P'05_(G&OUH;"0BY`@```/.F#Y7`#[;0B17DF0L(Z4_Q__^AS'8* -XM"(D$).B<2P$`A<`/A!@#``"+`(D$).@*Q0,`QT0D"`(```#'!"2X+PD(B40D -XM!.@RN@$`QT0D!,28"@C'!"2X+PD(Z"ZQ`0#'!"3@/PD(B40D!.B^NP``Z2/P -XM___'!"10L@@(Z+W$`P")!"3HA>7__^E$\?__QT0D!,28"@C'!"0`,`D(Z.RP -XM`0#'!"1^L@@(B40D!.C,H0,`QT0D#.BR"`C'1"0("````,=$)`0+````H8"8 -XM"@B)!"3H!Z@``(D$).B?H0,`QP0D`````.B#YO__Z1+R___'1"0$Q)@*",<$ -XM)``P"0CHBK`!`,<$)!$7"0B)1"0$Z&JA`P#'!"0`````Z$[F__^+A73^__^+ -XM6`3IO_'__\=$)`0!````QP0D`P```.A(RO__Z9OU___'!91W"@@!````Z:;V -XM__^[`0```,>%@/[__P````#I1?/__\=$)`3$F`H(QP0DD"\)".@0L`$`ND!! -XM"0CH=N/__XL]-)D+"(7_#X4+_/__Z?O[___'1"0$Q)@*",<$))`O"0CHWZ\! -XM`+H@00D(Z$7C___IJOO__\<$)``````QR3'2N*:R"`CH*]O__^DB^___H81V -XM"@B)!"3H.4D!`(7`#X3@`@``BP")!"3H1\,#`,=$)`@"````QP0DI"\)"(E$ -XM)`3H;[@!`,=$)`3$F`H(QP0DI"\)".AKKP$`QP0DP#\)"(E$)`3H^[D``.G, -XM^?__H;R8"@B%P`^%,/O__Z%`F0L(A<`/A2/[___'1"0$`````,<$)`````#H -XM>&\``.D*^___BQ6\F`H(A=(/A73Z__^A0)D+"(7`#X5G^O__QT0D!`````#' -XM!"0`````Z$1O``#I3OK__X/[`70G@_L"C;0F``````^$50(``(7;#X4=`@`` -XMQP6T=@H($````.EU\O__QP6T=@H($0```.EF\O__H>29"PB)!"3HU\P"`.D\ -XM]?__Z'W0`@#'!"0!````C;8`````Z"O1`@#I[/7__\<%Y'4)"`$```#H(\?_ -XM_XL`B00DZ,G$__^)1"0(B[6(_O__BP;'!"0V````B40D!.@!1```Z:WQ___' -XM!"0>L@@(Z>'\__^)%"3H],/__^E"^___QT0D!`$```"[$@```,<$)!(```#H -XM%LC__\=$)`0!````QP0D%0```.@"R/__QT0D!`$```#'!"06````Z.['___' -XM!"02````Z"+)__^%P`^$D0$``(UUG.MD.P753BU4(A=)X-(L=(%X)"(G(ZPF0 -XMC70F`#G(=!R#Z@&#^O]T)XM`!#T<7@D(=>J)V#G(=>B-="8`6S'`7<.+`3T< -XM7@D(=06A'%X)"(M`#%M=PXVT)@````!5B>5=QP447@D(`````,.058GE4X/L -XM!(M="(M#"(7`=!/'0P0`````QP,`````@\0$6UW#BT,,B00DZ)%-`P")70B# -XMQ`1;7>F$30,`C70F`%6)Y5=64X/L+(M5"(72#Y3`=0^+70R%VW4(@\0L6UY? -XM7<.$P,=%Z`````#'1>P`````QT7P``````^%80$``,=$)`0`````B10DZ('O -XM``")1>#'1"0$,"H("(M%X(D$).B;0@``BT7@B00DZ'"[`P#'1"0$@`$``(D$ -XM).A@1`$`B470@\`!#X3_````QT0D!,28"@C'!"2@-0D(Z,"I`0`]^&\)"'0* -XMBPB%R0^%&@$``+[_____H>AV"@B-?>C'!>AV"@@`````B478H!^QQ>"0AT\HM5W(72=+B+0PR#[@&)/"2)1"0$Z"9&`0#' -XM!"1\N0@(B40D!.CFF0,`@_[_=;^0BT70B00DZ/5#`0"+1=2CS)<*"(M%V*/H -XM=@H(BT7@B00DZ,I```"#Q"Q;7E]=PXGVQT0D!,28"@C'!"1@-0D(Z*RH`0`] -XM^&\)"'0GB00DZ/VW`P")1>#IA_[__XD$).@-N@,`B00DZ+&\__^)QNG4_O__ -XMQT0D!,28"@C'!"20+PD(Z&JH`0#'1"0$)#4)"(D$).@JMP,`B47@Z43^__^) -XM]E6)Y5.#[!2+70C'!11>"0@!````QT0D!&#"0AT%C#2BT`$@\(!/1Q>"0AU\XT4E00```")%"3H -XM7$L#`(L=(%X)"('['%X)"(G'B<9T&XM##(D$).BOM@,`B0:+6P2#Q@2!^QQ> -XM"0AUY<<&`````,=$)`3P(P8(B3PDZ,D_``#'1"0,`@```,=$)`C$F`H(B7PD -XM!,<$)``V"0CH::P!`(D\).A1/P``B3PDZ/D^``"#Q!Q;7E]=PY!5B>564X/L -XM$,=$)`3$F`H(QP0D`#8)".ATI@$`A<")PP^$S0```(L`A<`/A,,```"+#2!> -XM"0B!^1Q>"0AT*XL!BU$$B5`$BU$$B0([#629"PATW8D,).CU^___BPT@7@D( -XM@?D<7@D(==6A9)D+"*,<7@D(HR!>"0C'`!Q>"0C'0`0<7@D(BS.%]G57ZUN- -XM=@"+`(7`=%+'1"0$`0```,<$)!````#HQDD#`(G#BP:)!"3HFK4#`(/&!,=# -XM"`````")0PRA9)D+"(E#!*%DF0L(BP")`Z%DF0L(B1B+`XE8!'0&BP:%P'6H -XM@\006UY=Z3W^__^#Q!!;7EW#C;8`````58GE5[\`!```5E.#[`S'!"0`!``` -XMZ,9)`P")P^L>B?;H=[[__XLP@_XB=4D!_XD<)(E\)`3H]DD#`(G#B7PD!(D< -XM).@TO/__AY`P")!"3H[[0#`(D<)(G&Z*5(`P"#Q`R) -XM\%M>7UW#B1PDZ)-(`P#H&K[__XDP,?:#Q`R)\%M>7UW#B1PD,?;H=D@#`.O/ -XMC70F`%6)Y5=64X'LC````(M%"(M=#(D$).ARN___BU4(@SHOB<+1(H$@\$!A<")1(L$=?&+%HGW -XMA=)U5(GWC4;\.T4(=`_'1OP`````B?N+`X7`=;G'1"0$Q)@*",<$))`O"0CH -XM%:0!`(D$)(G#Z$>Z__^%VXG&=`F#.R\/A*X"``"+10B!Q(P```!;7E]=PX/' -XM!(L'A`0K?0B)#"3H#;G__XG#BT6`B00DZ`"Y__^-5`,!B?C!^`*-!`+!X`*)!"3H -XMG48#`(M5"(G&B<&+`H/"!(D!@\$$A^+58")V8L"@\($B4'\@\$$A^)V8GZBP*# -XMP@2)0?R#P02%P'7QBTV,C7PQ_(M5"(G[B10DZ'9$`P")=0CI'_W__XE$)`B+ -XM30B)'"2)3"0$Z">Y__^%P'47BU4(BP2R@_@O#X0L_?__A<`/A"3]__\['1A> -XM"0AT,HD<).B0L@,`C564B50D!(D$).@=N?__@\`!=!:+192)'1A>"0BCG"`) -XM"(M%F*.@(`D(BTT(C7V4B0PDZ#BP`P")QHL&A)QNF0_O__QT;\+P```(-M@`2+58"#.B]U -XM](M-A(7)=%\QTHM$EP2+38")1)$$@\(!A575HG&4XG#@^P,@S@O='.A -XM9)D+"(M`#(D$).A:M?__B30DB<,QP(/[`0^4P(/H`2'#Z$.U__^-!`.-!(4( -XM````B00DZ.5"`P")QZ%DF0L(B?F+4`R+`H/"!(D!@\$$AB)1>R+`(U(!(E-\(M0!(72#X35```` -XM@SHM#X78````,?_K'('/@````(-%\`2+1?"+$(72#X23````@SHM=5Z+0@2) -XMTX7`=1?KV2GQN`$```#3X`G'BT,(@\,$AR#X`Z%P(D1=`.#SP&#Q!R)^%M>7UW#BT7P,?^+3>R)`>OJ -XMBTWP,?^+5>R)"NO>ZPV0D)"0D)"0D)"0D)"058GE@^P8B5WXB77\@S@K=`XQ -XMVXG8BW7\BUWXB>Q=PXM0!(U(!/?"````0'4G@_I_=ACK((M0"/?"````0(UV -XM`'42@_I_=PV#P`3V!)6]40D(!'7@A=)UN8D,).@`FP$`A<")QGZKBQUDF0L( -XMZPT['629"PAT&(/N`728BUL$@?L<7@D(=>B+'2!>"0CKX,<$)!H``!#H9C(` -XM`.O:C70F`%6)Y5.)PX/L%,=$)`3$F`H(QP0D9#,)".B3G`$`QT0D"`8```#' -XM!"1T,PD(B40D!.AKI0$`B5PD!,=$)`@&````QP0D9#,)".A3I0$`B5PD!,<$ -XM)/@Z"0CH\Z8``(/$%%M=PXVV`````(V\)P````!5B>53@^P4BQUDF0L(C78` -XM@?L<7@D(=!;'1"0$^&\)"(M##(D$).C%]O__B4,,BUL$.QUDF0L(==>+0PR# -XMQ!1;7>E*____C78`C;PG`````%6)Y8/L&(U%"(D$).CO5P,`A<")PG09BT4( -XMB50D!,<$)(ZY"`B)1"0(Z+*,`P#)PXM%",<$))*Y"`B)1"0$Z)V,`P#)PXUT -XM)@"-O"<`````58GE5U93@^P\BS5DF0L(B478@^`$B474BT78QT7<`````,=% -XMX`````"#X`*)1=#ICP```(U%\(D$).AQ5P,`A<")QP^$G````(D$).B+L?__ -XMB<.+1?")!"3H?K'__XU<`P(!7>#V1=@(=!:+%>"7"@B-0O\Y1>!\"#G3#XRY -XM````A?]T$(E\)`3'!"29N0@(Z/N+`P"#?=0!QP0DG;D("!G`@^`6@\`*B40D -XM"(M%\(E$)`3HV(L#`(MV!#LU9)D+"'1=@?X<7@D(=.V+1=2%P'4FBT8,,?^) -XM1?"+1="%P`^$3____XM%\(D$).CLL/__C5@!Z6K___^+1=R+7=S'!"25N0@( -XMB40D!.B"BP,`@\,!B5W#I,____XGV58GE5XG75HG&4X/L#,=$ -XM)`3$F`H(QP0DX#D)".C/F0$`A"0AUVXDU9)D+"(M&#.@Z_?__Z"7R -XM__^+'2Q>"0C'1"0$Q)@*",<$)&`Y"0CH:YD!`(/X`1G`("0B%P'4$A=MU#(/$#%M>7UWI/FP#`(GXZ/?]__^#Q`Q;7E]=Z2ML -XM`P"+`XM3!(E0!(M3!(D"B1PDZ-;N___I>?___Y!5N:.Y"`B)Y;JMN0@(@^PH -XMC44(B5WTB77XB7W\Z-_Z___'!2Q>"0@!````B<.)QH'C@`````^%A0```(M% -XM"(L0A=(/A)@```"%VW4DBT4(BT`$AP0<7@D(=&8Q_SL=9)D+"`^$?0`` -XM`(M#!(L3B1"+$XE"!(D<).@D[O__.QUDF0L(=%*)\.@5_?__ZZ6-=@#'1"0$ -XMQ)@*",<$)'0S"0CHG)@!`(G"A=(/A6K___^)]HL=9)D+"(%[!!Q>"0AUFY"! -XM.QQ>"0AUDL<$)$(``!#H'"X``.N$B?*)^.@1_O__D.E-____BWL$@?\<7@D( -XM=%J+1PR)!"3HQ:D#`(E%\(D$).C6K/__A<`/B5K____HV;#__XL`B00DZ'^N -XM___'!"0V````B40D"(M%\(E$)`3HO"T``.DO____QP0D0P``$.BK+0``Z0?_ -XM__^+/2!>"0CKGHVT)@````"-O"<`````5;E%R0@(B>6Z][D("%93@^P0C44( -XMZ%;Y__^H0(G&=$*A9)D+"(L`.P5DF0L(=!R0/1Q>"0B+&'0(B00DZ/_L__^) -XMV#L%9)D+"'7EHR!>"0BC'%X)",=`!!Q>"0C'`!Q>"0CWQB`````/A8T```#W -XMQA````!U:XM5"(L*A575E.#['R+30R%R0^$=`$` -XM`(M%"#';QT7H`````,=%[`````#'1?``````ZP.#P`2+$(72="Z+2`2%R70G -XM@_HN=>N#^2YUYHM0"(72D`^%2P$``#M%"'0'@WC\+Y!USH/#`>O)A=L/A!D! -XM``"A9)D+"(M`#(D$).B-K/__C02%#````(D$).@R.@,`B46`H629"PB+0`R) -XM1"0$BU6`B10DZ&2K__^+=0B#/B\/A#P"``"+70C'1>P`````BQ,Q_X72=$&# -XM^BZ-H0,`A?]_#>LB@^\!QP`````` -XM=!?'1"0$+P```(M%@(D$).@FJO__AR%P`^%!P$``(MU@(L^A?\/A;4```"+,X7V#X5%____BT7HB00DZ',X -XM`P"+18"#Q'Q;7E]=PXM%"(D$).B=I`,`B46`BT6`@\1\6UY?7<.#^B\/A8;^ -XM___II_[__Y`[70AT$8-[_"^-M"8`````#X4?____A<`/A#'___^-6#[#C'1"0$`````(E= -XM](EU^(E]_(D$).@AV0``QT0D!#`J"`B)QHD$).@_+```,<"#/=B7"@@"B30D -XM#Y3`B40D!.BW_/__B<.)!"3H_:0#`(D$).@1J/__A!F)-"3H?"L``(DT).@D*P``B?#HW?/__^NYZ,*K__^#.`*-=@!T.^BU -XMJ___@S@4=#&-="8`Z*>K__^+`(D$).A-J?__B30DB"2)-"3H>"H``(D<).C0H0,`QP4L7@D(`0```.@A\___Z?K^__^+'11> -XM"0B%VP^$/@$``(DT).A&*@``,<#IW?[__XET)`3'!"3,.`D(Z.\I`0"%P`^% -XM=____\=$)`3$F`H(QP0DW#@)".BSD0$`A<`/A%O___^+$(72#X11____QT7H -XM`````,=%[`````#'1?``````BQB+`X7`=2KI_0```(DT).A7HP,`B00DZ&NF -XM__^%P`^)]0```(/#!(L[A?\/A-@```#'1>P`````BP.)1"0$C47HB00DZ)*? -XM`P"-1>B)!"3'1"0$+P```.@/G0,`C47HB00DB70D!.APGP,`C47HB00DZ%6= -XM`P"AV)<*"(/H`H/X`0^6P`^VP(E$)`2+1>B)!"3HA?K__XG'B00DZ,NB`P") -XM!"3HWZ7__X7`#XA<____BT7HQP4L7@D(`0```(D$).A&-`,`B30DZ!XI``") -XM^.C7\?__Z;#]__^)]HM%X(D$).AAI___B30DBZ(#`(E<)`C'!"0V```` -XMB40D!.B7)@``Z93^__^+1>B)!"3H]S,#`.DB_O__B3PDQP4L7@D(`0```.C@ -XM,P,`BT7HB00DZ-4S`P#I?/W__U6YM[D("(GENJVY"`B#[!B-10B)=?B)??R) -XM7?3H'_+__\<%+%X)"`$```")QHG'@>:`````#X6Y````BT4(BQB%VP^$QP`` -XM`(7V=22+10B+2`2%R70:QP0D#P``$.C^)0``BUWTBW7XBWW\B>Q=PY")V.CI -XM\O__A<")Q@^$_P```(M`#(D$).BDH0,`B<.)!"3HMJ3__X7`#X@U`0``QT0D -XM!,28"@C'!"2@.0D(Z)Z/`0"%P'0P.S5DF0L(="B+%HM&!(E"!(M&!(D0H629 -XM"PB+$(D6H629"PB)1@2)<@2A9)D+"(DPB?J)\.AQ]?__Z6[____'1"0$Q)@* -XM",<$)'0S"0CHJ(\!`(G#Z3'____'1"0$Q)@*",<$)"`Y"0CH+8\!`(7`#X30 -XM````QT0D!,28"@C'!"20+PD(Z'&/`0`]^&\)"(G#=`:+,(7V=0S'!"0B```0 -XMZ`8E``")'"3HSJ`#`(D$).CBH___A:`````#X6:````BT4(BQB%VP^$#P$``(7V -XM=22+10B+0`2%P'0:QP0D#P``$.A>(P``BUWTBW7XBWW\B>Q=PY")V.A)\/__ -XMA<")QG1SQP4L7@D(`0```(M`#(D$).C^G@,`B<.)!"3H$*+__X7`#X@'`0`` -XMH629"PB+4`2+`(D"H629"PB+$(M`!(E"!*%DF0L(B00DZ*;B__^)^HGPZ.WR -XM___KC<=$)`3$F`H(QP0D=#,)".@GC0$`B6#[!B)7?B)PZ&`F`H(B77\BS4,=@H(QT0D -XM#-BY"`C'1"0(`0```,=$)`0,````B00DZ#>#``")7"0(B70D!(D$).C'?`,` -XMBUWXBW7\B>Q=PXVV`````(V\)P````!5B>575E.![,P```"+=0CHO.7__X7` -XMB<,/A!(!``")!"3H&IT#`(U5E(E4)`2)!"3HIZ/__X7`#Y3`B<=U4H7V=`J+ -XM!H7`#X54`0``B?B$P'0^QP0DT;D(".@>H/__A<")QG0LC84T____B40D!(DT -XM).AFH___@\`!=!6+190[A33___\/A&8!``"-M@````#'1"0$,"H("(D<).C` -XM(P``QT0D!/AO"0B)'"3HP.7__XD<)(G&Z%8C``")'"3H_B(``,=$)`0!```` -XMQP0D$````.AJ+@,`,=*)<`R)P\=`"`````"C(%X)"*,<7@D(QT`$'%X)",<` -XM'%X)",<%+%X)"`````#H9O#__\=$)`@&````BT,,QP0D`#8)"(E$)`3HBY,! -XM`('$S````%M>7UW#Z#>C__^+`(D$).C=H/__QP0DAKD("(E$)`BA#'8*"(E$ -XM)`3H6'L#`(7V=`J+!H7`#X7`````N%/'"`CH,/[__\<$)%/'"`CHX)[__X/` -XM`0^$V````,<$)%/'"`CHWYT#`(D$).B'F0,`B<;I(O___XDT).B8FP,`C94T -XM____B50D!(D$).@BHO__@\`!#X2)_O__BT64.X4T____#X5Z_O__BT68.X4X -XM____#X5K_O__B30DZ#>9`P")QNG2_O__BT68.X4X____#X61_O__B30DZ&F= -XM`P")!"3H$9D#`,=$)`0P*@@(B<.)!"3H/R(``.EJ_O__B30DZ!*;`P")P^AK -XM_?__B1PDZ!^>__^#P`$/A"#___^)-"3HTI@#`(7`B<8/A6K^___I"?___\<$ -XM)`$```#H-[___^D7____D)!5B>5=HTA>"0C#C;8`````H4A>"0A5B>6%P'0, -XM7<<%2%X)"`````##H4Q>"0B%P'07BQ"#P`2C3%X)"(72=`E=B=`E____?\.A -XM4%X)"(L0A=)T%5V#P`2C4%X)"+@@````B15,7@D(PUVX_____\<%3%X)"``` -XM``##C;0F`````%6)Y8M%"(7`>":I````0'4?@_A_?QH/ML`/MX0`X"`)"*A# -XM=`O'!71>"0@!````D%W#C;0F`````(V\)P````!5B>5=QP7$EPH(`````,.0 -XM58GE@^P(B00DZ/*9`P#'!"0K```0HR!W"@CH$1X``,G#ZPV0D)"0D)"0D)"0 -XMD)"058GE5U93@^P\BQ5D7@D(A=)T"HL];%X)"(7_=0VC5%X)"(/$/%M>7UW# -XMB00DZ'Z7`P"+-61>"0B%]HE%[`^$[P(``,=%\`````"-M@````"+??"+%6!> -XM"0C!YP*+!#K'1=``````@_AS#X58`@``BUWP@\,!BQ2:A=*)5=0/A/\"``"! -XMX@```$!U0P^V5=2!^O\````/A\T"``"AX%T)"(M$D#3VQ`$/A=4"``"#?=1? -XM#X3+`@``@WW4?W<1BT74]@2%O5$)"`0/A;0"``"+5=3'!"3_N0@(B50D!.C_ -XM'0$`A<`/A9D"``"+#6!>"0B-``````C02QB4W$B<&)1=@Y$'0O -XMBT7$C7,"C0RPBQ&%TG0@C40X#.L/BU`$@\$$@\8!B;'`0````"+%6!>"0B-3@&)3?#!X0*+1=2)3>C'1>0``````=&)3=R)RSD! -XM=$2-3@*)3?#!X0*-'`J)3>B+"X7)="^-!+4(`````<+K%H-%\`&#P`2#PP2) -XM1>B+2@2)VH7)=`Z#1>0!B=,Y3=2)1>AUW,<#`````(M%V(D$).CT'0$`BU7L -XMB10DZ.D=`0"+3>"+1>S'1=``````P>$"B4W,ZQ2-="8`BT7(QT70`0```(EU -XM[(/`!(M5V(D$)(E4)`3HL9`#`(7`B<R)^XD,).AVG/__BU7D -XM*U7@C50"`<'B`HD4).@5*@,`*UWLP?L"B5PD"(G&BT7LB30DB40D!.A&HO__ -XMBTWB57(B10DB4PD!.@QF___BU7,C007B40D!`-=Y(T"0B%VP^%5/___XEU[,=%T`$```"+5=2+3=RA8%X) -XM"`%%Z(E1_(M%Z(D0BU70A=)T;.M6H6!>"0B+!`?'1=`!````B5WLB40D!(M5 -XM[(D4).AJ]P``A<")PW30B40D!(M-[(D,).CQFO__A<`/A((```"+5>R)%"3H -XMRA;%X)"#W___]_=`B#Z`&C;%X)"(-%\`&+3?`Y -XM#61>"0@/AQ[]__^+1>R)!"3H@_@``*&`7@D(QP547@D(^&\)"(7`#X3._/__ -XMQP0D````0.B@&@``@\0\6UY?7<.)%"3HG)K__^DO_?__BT7LB00DZ/`G`P#K -XMAL<$)%@```#H`AH``(GVZZ"-M"8`````C;PG`````%6)Y5=64X/L7(E%L(UT -XM)@"+#41>"0B%R0^%*@(``(L5F'<*"#D5?)P+"`^'2PH``*%47@D(A<`/A"," -XM``"+"(/`!*-47@D(@>'___]_A"0B%R0^/?`L``,<%5%X) -XM"`````#H_OK__X/X)(G!=`J#Q%R)R%M>7UW#BT6PA -XM"0@`````QP5D7@D(`````.@I____B47(@\`!#X2M`0``BUW(@_M[#X1,!0`` -XMB=@E____/X/X(P^$&04``(/[/P^$H04``(/[)0^$NP4``,=%O`````#'1;@` -XM````QT6T`````(/[(0^$H00```^/D@```(/[_P^$IP,``(/["@^$G@,``(G8 -XM)0```$")]G4)@_M_#X9,"```@_O_B?9T+X7`=2L/MM.!^O\```"0#X?F"@`` -XMH>!="0B+1)`T]L0%#X48!P``@_M?#X0/!P``BT6\OB0V"0B%P'40BT6XA<`/ -XMA.<&``"^]"X)"(U%V(ET)`2)!"3HY)`#`(U5V(D4).E/`P``@_LJ#X2R`@`` -XM@?L\``!`#X3%````@_LDD`^%8?___XM5O`E5N(M-N`M-M`^%-@D``*&\F0L( -XMZ%[Z__^-1=B)!"3HHQH``(-]R'L/A?G]___H5/G__X/X?9`/A.K]___'1"0$ -XM?0```,<$)#(```#H)A@``(L-1%X)"(7)#X36_?__QP5$7@D(`````(/$7(G( -XM6UY?7<.-="8`BQ5<7@D(A=(/CO_]__^+%5A>"0B+`H/"!(D56%X)".C<^?__ -XM@RU<7@D(`>F`_?__QP0D`````.C$%P``Z6_]__^+1;B%P`^%:0@``(M%O(7` -XM#X4S"```BT6TA<`/A0\(```Q]HU]YL<%.%X)"`````#K'HM%[#'V@_@*#X29 -XM````B40D!,<$)#1>"0CH/XT#`(U5\(D4).@DBP,`C00WB40D!*%$F0L(QT0D -XM"`$```")!"3H.!H!`(U-\(D,)(G#Z(L9``"#ZP%U4(/&`8U%[(ET)`B)?"0$ -XMB00DZ#"4`P"#^/\/A,<```"%P`^.\````#GZ____*<:-!`>)="0(B40D -XM!(D\).C>F___BT7L@_@*#X5G____A?:-7>QU(.M@BT7L,?:#^`IT5HE$)`3' -XM!"0T7@D(Z).,`P"%]G1"B70D"(E\)`2)'"3HOY,#`(/X_P^$E@```(7`#XZV -XM````.?!TO2G&C00'B70D"(E$)`2)/"3H<9O__XM%[(/X"G6JQP0D-%X)".BA -XMC`,`Z'P.``"A-%X)".AB^/__C578B10DZ*<8``#I__W__XGVQT0D"`````#' -XM1"0$`````,<$)`````#H\);__X/^!0^&O/[__P^V1>8-```@`(E%[+@!```` -XMZ0;___^0C70F`,=$)`@`````QT0D!`````#'!"0`````Z+"6__\/MD7F#0`` -XM(`")1>RX`0```.E`____C4W8O_____^)#"3'1"0$)#8)".@&C@,`C478B00D -XMZ.N+`P#'1"0$Q)@*",<$)"0V"0CHEW\!`(G&BT6XA"0B-5=B)%"3HT!<``.DH_?__BT6\OB0V"0B%P'40BWVXA?\/A((# -XM``"^]"X)"(U5V(ET)`2)%"3HD(T#`(U-V(D,).AUBP,`O_____^)-"3'1"0$ -XMQ)@*".@@?P$`B<:)V.@G]O__A?8/A*X!``"+!H7`#X2D`0``C478B00DZ%H7 -XM```QP.BC^O__B<.+!HD$).@'%@$`BU6\"?J)14__\!1,`P"C,%X)".@=]?__ -XMZ<7Z__^AY*P+"(L-X*P+"(E%W*'HK`L(B4W8B47@C478QT0D!+"1"`B)!"3H -XMW!4``.L4@_C_="6-5=B)7"0$B10DZ*:(`P"X`0```.AL^/__@_A=B<-T%X/X -XM"G76QP0D!0```.BT$@``C70F`.O)C4W8B0PDZ-.(`P"A5%X)"(M=V(7`#X1B -XM`@``QP0D!@```.B'$@``BQ.%T@^$9`(``/?"````0`^$)0$``,=%T`$```"# -XM^BH/A&<"``"#^BT/A$T#``#'1"0$+0```,<$)#(```#H1!(``(M%T(7`=1*+ -XM1<"%P`^%.P0``,=%P/____^+.X7_#X7,`P``C578B10DZ&84``"+?<#I2OW_ -XM_XM%T(U?`2M=T,'@`HE%Q.@*"@``BP:)'5Q>"0B#Z`0#1<2C6%X)".F/^?__ -XMQP0D`````.C6$0``Z;CX___'!"0?````Z,41``"0C70F`(U-V(E<)`2)#"3H -XM@8<#`#'`Z$KW__^#^/^)PW0IJ0```$!U(@^VT('Z_P````^'FP$``*'@70D( -XMBT20-/;$!76_@_M?=+J-1=@Q_XD$).B=AP,`B=CH9O+__\=$)`3$F`H(BT78 -XMB00DZ$-[`0")QNFG^___@_I_#X?2_O__]@25O5$)"`3'1=``````=13IO/[_ -XM_X/Z?W"0CIT_?__XL]7%X)"(7_#X60_?__BQ.% -XMT@^%G/W__\<$)`````#H#1```(L3]\(```!`#X6._?__Z:[^__^#PP3IKOW_ -XM_XD4).CVC___Z6'^__^A>)P+"(L,D(U"`:.8=PH(@>'___]_A7UW#QP0D`````.A)#@``Z2/\__^-="8`Z$OO__^#^'V)PW04QT0D -XM!'T```#'!"0R````Z"`.``")V.@9[___Z67Y__^+1=B)!"3H214!`.GO^/__ -XMB10DZ`B.___I%O7__XU%V(D$).@\$```BT8$Z+3O___IC_/__XM%V(D$).BD -XMB0,`B00DZ-B,__^Z$"\)"(7`#X4I^/__Z2GX__^+%?1="0B%T@^$B@```(M% -XMM(7`=%ZA]%T)"(D$).@DCO__B00DZ(!X`0")!"3H2.L``.GX]___QT0D!,28 -XM"@C'!"0D-@D(Z%]W`0"%P(G`]___C4W8OJ0@"0B)#"0QV^BC#P``QT7$ -XM!````.E(^___Z%(%``"A]%T)".@X[___Z:CW___'!"0K````Z"<-``#IOOS_ -XM_\<$)`0```#H%@T``(VV`````.E?____C70F`(V\)P````!5B>575E.![%R` -XM``"-?>3'1=@`````QT7<`````,=%X`````#'1CO__@\`! -XM=:;'1"0$`````(D\).B)C?__H0AV"@B)!"3HP!D#`(MUY(M=Z.AQDO__,?,Q -XMPX'C____`(D<).@C=P$`QP0D0#()"(G#B40D!.A!A0,`B1PDHPAV"@CHA!D# -XM`.E(____B1PDZ+.-___H_H[__XDPZ/>.__^+`(D$).B=C/__B5PD!,<$)#8` -XM``")1"0(Z-T+``")'"2-GXW__XM%"(U5[(F5M'___XD4),=%\``` -XM``")1>S'!71>"0@`````Z$>F``"-5>R)%"3'1"0$0/X$".CTI0``H71>"0C' -XM1<@`````QP7$EPH(`0```,=$)`2`_@0(B86\?___QP0DQ)<*".A4#@``C578 -XMB10DQT0D!+"1"`CH00X``(U%S,=$)`2PD0@(B00DZ"X.``"-5"0B)%5!>"0C'1=``````N`$```#H -XM2?#__X/X_W0QB<:!YO___S]TYX/^7`^$V`$``(U%S(D$)(ET)`3H4H`#`+@! -XM````Z!CP__^#^/]USXU5S(D4).B8@`,`BW7,QT0D!&````")-"3H@8[__X7` -XM#X3"`0``QT0D!`$```")-"3H+;$``(F%P'___XN%P'___XL0B<>%TG1$BP*) -XMUH7`=!V0)?___S^)`X/#!#F=N'___W1XBT8$@\8$A"0C___]_,<#H7NW__XG#@_MG#X23````@_MA -XM#X2^`0``@_MS#X2M````B5PD!,<$)!ZZ"`CH<0@!`(7`#X1Y`0``B5PD!,<$ -XM)&!>"0CH27T#`(/[<0^$=0$``#'`Z`GM__^#^#J)PP^%/P$``#'`Z/?L___' -XM!6Q>"0@!````QP5P7@D(`````(/X9XG##X1I____@_AA#X5S____QP5P7@D( -XM`0```.E;____@3UL7@D(____?P^$;____\<%;%X)"/___W\QP.B?[/__B<.# -XM^W,/A5/___\QP.B-[/__QT0D!',```#'!"1@7@D(B!="0B+1)`T]L0!=6F#_U]T9(/_?W<*]@2]O5$)"`1U58E\)`3'!"3_N0@( -XMZ%`'`0"%P'5!O@(```#K))"-="8`B5PD!,<$)&!>"0CH('P#`#'`.=\/E,`I -XMQ@^$T?[__S'`Z-KK__^#^/^)PW73A?8/A+O^___'!"18````Z*\%``"#Q`R) -XMV%M>7UWI$>?__Y")7"0$QP0D!P```.@`!@``Z7+^___'!6Q>"0C___]_Z7S^ -XM__^A<%X)"(7`#X4^_O__QP5P7@D(`0```.G*_O__B10DZ-2%___I*O___XUV -XM`%6)Y5.)PX/L%.LWD(UT)@"#^O]T8872>!WWP@```$"0=12#^G]_#P^VP@^W -XMA`#@(`D(J`]U58E4)`2)'"3H3GL#`+@!````Z!3K__^#^%R)PG6],<#H!NO_ -XM_X/X_W0<@_@*NB````!TOHG"@575E.#["RC4%X)"#'`QT7H -XM`````,=%[`````#'1?``````QP5,7@D(^&\)",<%1%X)"`````#HXN7__XU% -XMZ,<%5%X)"`````#'!5Q>"0@`````QT0D!/"1"`B)!"3HJP<``(U%W#';QT7< -XM`````,=%X`````#'1>0`````QT0D!+"1"`B)!"3H@0<``)"X`0```.@FZO__ -XM@_@GB<9T=']0@_@@=.B0C;0F``````^/_P$``(/X"8VT)@````!TSH/X"@^$ -XM]@```(/X_XGV#X3&`0``B35$7@D(C470,`@_XB#Y3`#[;XB?:) -XM^.B9Z?__.<:)PW1H@_@*#X3`````@_C_#X2W````B=@E____?ST*``!`#X3' -XM````@_XG#X3M````@_Y@#X3^````@_XB=;B#^V"X8````'0'B=@-````0(E$ -XM)`2-1=R)!"3H:'D#`(GXZ#'I__\YQHG#=9B#_F`/A3[___^-1=R)!"3'1"0$ -XM8````.@_>0,`C47B)!"3HSWH#`.EO_O__B70D!,<$)#,```#H -XM&@,``(G8)?___W\]"@``0`^%.?___XM5X(72#X0N____BT7`,` -XMZ;_^__^-1=R)7"0$B00DZ(!X`P#IJ_[__S'`Z$3H__^#^`J0#X0*_O__@_C_ -XM#X0!_O__B<:!S@```$#I.O[__X7;B?9T([C_____Z'3C__^-="8`Z0S___^# -XM^"(/A1C^__^)]NE0_O__C47B)!"3HFGD#`(/$+%M>7UW#B?95B>6#["B)=?PQ]HE=^(L- -XM*'<*"(7)=`R)\(M=^(MU_(GL7<.+10C'1?0`````B47PC47PZ,?\__^)PXL` -XMAP,`B1PDB<;H8`@!`(GPBUWXBW7\B>Q=PXUT)@!5B>53@^P$ -XMBQTH=PH(A=MU3XM%"(M($(G+C;0F`````(L1A=)T.HL"@\$$A!VI -XM````0'46@_A_C78`?PX/ML#VA`#@(`D(PW47D(M"!(/"!(7`==6+$872=<:# -XMQ`1;7<.)V.@#_/__BU4(B<.+0A")!"3HTP5=PXUT)@"-O"<`````58GE@^P(H`#`P6\8`D(BQ")%"3_4`2AP&`)"#L%Q&`)"'?:R<.0C70F`%6AQ&`)"(L5 -XMP&`)"(GE78D5Q&`)",.-=@"-O"<`````58GEBT4(BP")10A=Z>\-`P#K#9"0 -XMD)"0D)"0D)"0D)!5B>6#[!BA@%X)"(7`=`+)PX%]"(8```"-10R)1?QV!\=% -XM"(4```")1"0$BU4(BP25H%X)"(D$).AS6@,`HX!>"0C)PXVV`````(V_```` -XM`%6)Y8/L".@E____QT0D!`$```#'!"0`F@L(Z'V!__^058GE5U93@^P<```!`=`Z+-8!>"0B%]@^$M````(G>@>;_ -XM__\/@?Z&````=@6^A0```.CB&P$`]\,````@QP7`F`H(`0````^$C````*&` -XM7@D(A<<$)`$```#HAY___^@RS```QT0D"`(```#'1"0$&"\)",<$ -XM)/0N"0CH=G(!`*'4EPH(A -XM7UW#@>,````0=5B%_W0IH8!>"0C'!"2F&`D(B40D!.@O6@,`Z4[___^+%>1U -XM"0B%TG2)Z7C___^+1?")1"0$BP2UH%X)"(D$).CE60,`QP0D;\<(".CY60,` -XMZ1C___^-="8`H2!W"@C'!"0HN@@(B40D!.C;60,`ZY&)]HV\)P````!5B>5= -XMZ:<#`0"-M"8`````58GEBT4(BP")10A=Z<\#`0#K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[!B+10C'1"0(`````,<$)`,```")1"0$Z-M]___)PXVV`````(V\)P`` -XM``!5B>6#[!B+10C'1"0(`````,<$)`(```")1"0$Z.N!___)PXVV`````(V\ -XM)P````!5B>53@^P4BUT(.1W`8`D(7<.-=@#H=W[__XUT)@"-O"<`````58GE4X/L!(L5O&`)"*'` -XM8`D(BUT(C0S".6#[`B+#`#B40D!*&\8`D(B00DZ$,+`P"+#"0BA@)@* -XM"(D$).B`70``B00DZ.@&`0#'1"0,7[H(",=$)`@#````QT0D!`$```"CI%X) -XM"*&`F`H(B00DZ$Y=``")!"3HM@8!`,=$)`QMN@@(QT0D"`0```#'1"0$`0`` -XM`*.H7@D(H8"8"@B)!"3H'%T``(D$).B$!@$`QT0D#'ZZ"`C'1"0(!0```,=$ -XM)`0!````HZQ>"0BA@)@*"(D$).CJ7```B00DZ%(&`0#'1"0,C;H(",=$)`@& -XM````QT0D!`$```"CL%X)"*&`F`H(B00DZ+A<``")!"3H(`8!`,=$)`RDN@@( -XMQT0D"`<```#'1"0$`0```*.T7@D(H8"8"@B)!"3HAEP``(D$).CN!0$`QT0D -XM#,*Z"`C'1"0("````,=$)`0!````H[A>"0BA@)@*"(D$).A47```B00DZ+P% -XM`0#'1"0,V[H(",=$)`@)````QT0D!`$```"CO%X)"*&`F`H(B00DZ")<``") -XM!"3HB@4!`,=$)`SKN@@(QT0D"`H```#'1"0$`0```*/`7@D(H8"8"@B)!"3H -XM\%L``(D$).A8!0$`QT0D#/^Z"`C'1"0("P```,=$)`0!````H\1>"0BA@)@* -XM"(D$).B^6P``B00DZ"8%`0#'1"0,#;L(",=$)`@,````QT0D!`$```"CR%X) -XM"*&`F`H(B00DZ(Q;``")!"3H]`0!`,=$)`P?NP@(QT0D"`T```#'1"0$`0`` -XM`*/,7@D(H8"8"@B)!"3H6EL``(D$).C"!`$`QT0D##.["`C'1"0(#@```,=$ -XM)`0!````H]!>"0BA@)@*"(D$).@H6P``B00DZ)`$`0#'1"0,1;L(",=$)`@/ -XM````QT0D!`$```"CU%X)"*&`F`H(B00DZ/9:``")!"3H7@0!`,=$)`Q7NP@( -XMQT0D"!````#'1"0$`0```*/87@D(H8"8"@B)!"3HQ%H``(D$).@L!`$`QT0D -XM#&J["`C'1"0($0```,=$)`0!````H]Q>"0BA@)@*"(D$).B26@``B00DZ/H# -XM`0#'1"0,AKL(",=$)`@2````QT0D!`$```"CX%X)"*&`F`H(B00DZ&!:``") -XM!"3HR`,!`,=$)`R/NP@(QT0D"!,```#'1"0$`0```*/D7@D(H8"8"@B)!"3H -XM+EH``(D$).B6`P$`QT0D#)V["`C'1"0(%````,=$)`0!````H^A>"0BA@)@* -XM"(D$).C\60``B00DZ&0#`0#'1"0,M;L(",=$)`@5````QT0D!`$```"C[%X) -XM"*&`F`H(B00DZ,I9``")!"3H,@,!`,=$)`S"NP@(QT0D"!8```#'1"0$`0`` -XM`*/P7@D(H8"8"@B)!"3HF%D``(D$).@``P$`QT0D#-"["`C'1"0(%P```,=$ -XM)`0!````H_1>"0BA@)@*"(D$).AF60``B00DZ,X"`0#'1"0,WKL(",=$)`@8 -XM````QT0D!`$```"C^%X)"*&`F`H(B00DZ#19``")!"3HG`(!`,=$)`S,P@@( -XMQT0D"!D```#'1"0$`0```*/\7@D(H8"8"@B)!"3H`ED``(D$).AJ`@$`QT0D -XM#/&["`C'1"0(&@```,=$)`0!````HP!?"0BA@)@*"(D$).C06```B00DZ#@" -XM`0#'1"0,!+P(",=$)`@;````QT0D!`$```"C!%\)"*&`F`H(B00DZ)Y8``") -XM!"3H!@(!`,=$)`PBO`@(QT0D"!P```#'1"0$`0```*,(7PD(H8"8"@B)!"3H -XM;%@``(D$).C4`0$`QT0D#/#""`C'1"0('0```,=$)`0!````HPQ?"0BA@)@* -XM"(D$).@Z6```B00DZ*(!`0#'1"0,&,,(",=$)`@>````QT0D!`$```"C$%\) -XM"*&`F`H(B00DZ`A8``")!"3H<`$!`,=$)`PTO`@(QT0D"!\```#'1"0$`0`` -XM`*,47PD(H8"8"@B)!"3HUE<``(D$).@^`0$`QT0D#$##"`C'1"0((````,=$ -XM)`0!````HQA?"0BA@)@*"(D$).BD5P``B00DZ`P!`0#'1"0,2[P(",=$)`@A -XM````QT0D!`$```"C'%\)"*&`F`H(B00DZ')7``")!"3HV@`!`,=$)`QHO`@( -XMQT0D""(```#'1"0$`0```*,@7PD(H8"8"@B)!"3H0%<``(D$).BH``$`QT0D -XM#'J\"`C'1"0((P```,=$)`0!````HR1?"0BA@)@*"(D$).@.5P``B00DZ'8` -XM`0#'1"0,=,,(",=$)`@D````QT0D!`$```"C*%\)"*&`F`H(B00DZ-Q6``") -XM!"3H1``!`,=$)`R,O`@(QT0D""4```#'1"0$`0```*,L7PD(H8"8"@B)!"3H -XMJE8``(D$).@2``$`QT0D#*&\"`C'1"0()@```,=$)`0!````HS!?"0BA@)@* -XM"(D$).AX5@``B00DZ.#_``#'1"0,O[P(",=$)`@G````QT0D!`$```"C-%\) -XM"*&`F`H(B00DZ$96``")!"3HKO\``,=$)`S0O`@(QT0D""@```#'1"0$`0`` -XM`*,X7PD(H8"8"@B)!"3H%%8``(D$).A\_P``QT0D#-J\"`C'1"0(*0```,=$ -XM)`0!````HSQ?"0BA@)@*"(D$).CB50``B00DZ$K_``#'1"0,E,,(",=$)`@J -XM````QT0D!`$```"C0%\)"*&`F`H(B00DZ+!5``")!"3H&/\``,=$)`SJO`@( -XMQT0D""L```#'1"0$`0```*-$7PD(H8"8"@B)!"3H?E4``(D$).CF_@``QT0D -XM#/:\"`C'1"0(+````,=$)`0!````HTA?"0BA@)@*"(D$).A,50``B00DZ+3^ -XM``#'1"0,#;T(",=$)`@M````QT0D!`$```"C3%\)"*&`F`H(B00DZ!I5``") -XM!"3H@OX``,=$)`P;O0@(QT0D""X```#'1"0$`0```*-07PD(H8"8"@B)!"3H -XMZ%0``(D$).A0_@``QT0D#">]"`C'1"0(+P```,=$)`0!````HU1?"0BA@)@* -XM"(D$).BV5```B00DZ![^``#'1"0,.[T(",=$)`@P````QT0D!`$```"C6%\) -XM"*&`F`H(B00DZ(14``")!"3H[/T``,=$)`Q0O0@(QT0D"#$```#'1"0$`0`` -XM`*-<7PD(H8"8"@B)!"3H4E0``(D$).BZ_0``QT0D#&*]"`C'1"0(,@```,=$ -XM)`0!````HV!?"0BA@)@*"(D$).@@5```B00DZ(C]``#'1"0,:[T(",=$)`@S -XM````QT0D!`$```"C9%\)"*&`F`H(B00DZ.Y3``")!"3H5OT``,=$)`QVO0@( -XMQT0D"#0```#'1"0$`0```*-H7PD(H8"8"@B)!"3HO%,``(D$).@D_0``QT0D -XM#(.]"`C'1"0(-0```,=$)`0!````HVQ?"0BA@)@*"(D$).B*4P``B00DZ/+\ -XM``#'1"0,D;T(",=$)`@V````QT0D!`$```"C<%\)"*&`F`H(B00DZ%A3``") -XM!"3HP/P``,=$)`RAO0@(QT0D"#<```#'1"0$`0```*-T7PD(H8"8"@B)!"3H -XM)E,``(D$).B._```QT0D#/O>"`C'1"0(.````,=$)`0!````HWA?"0BA@)@* -XM"(D$).CT4@``B00DZ%S\``#'1"0,J+T(",=$)`@Y````QT0D!`$```"C?%\) -XM"*&`F`H(B00DZ,)2``")!"3H*OP``,=$)`RXPP@(QT0D"#H```#'1"0$`0`` -XM`*.`7PD(H8"8"@B)!"3HD%(``(D$).CX^P``QT0D#+N]"`C'1"0(.P```,=$ -XM)`0!````HX1?"0BA@)@*"(D$).A>4@``B00DZ,;[``#'1"0,RKT(",=$)`@\ -XM````QT0D!`$```"CB%\)"*&`F`H(B00DZ"Q2``")!"3HE/L``,=$)`S:O0@( -XMQT0D"#T```#'1"0$`0```*.,7PD(H8"8"@B)!"3H^E$``(D$).AB^P``QT0D -XM#.3#"`C'1"0(/@```,=$)`0!````HY!?"0BA@)@*"(D$).C(40``B00DZ##[ -XM``#'1"0,\;T(",=$)`@_````QT0D!`$```"CE%\)"*&`F`H(B00DZ)91``") -XM!"3H_OH``,=$)`P(Q`@(QT0D"$````#'1"0$`0```*.87PD(H8"8"@B)!"3H -XM9%$``(D$).C,^@``QT0D#`V^"`C'1"0(00```,=$)`0!````HYQ?"0BA@)@* -XM"(D$).@R40``B00DZ)KZ``#'1"0,*+X(",=$)`A#````QT0D!`$```"CH%\) -XM"*&`F`H(B00DZ`!1``")!"3H:/H``,=$)`P[O@@(QT0D"$0```#'1"0$`0`` -XM`*.D7PD(H8"8"@B)!"3HSE```(D$).@V^@``QT0D#%&^"`C'1"0(10```,=$ -XM)`0!````HZA?"0BA@)@*"(D$).B<4```B00DZ`3Z``#'1"0,7[X(",=$)`A& -XM````QT0D!`$```"CK%\)"*&`F`H(B00DZ&I0``")!"3HTOD``,=$)`QQO@@( -XMQT0D"$<```#'1"0$`0```*.P7PD(H8"8"@B)!"3H.%```(D$).B@^0``QT0D -XM#(B^"`C'1"0(2````,=$)`0!````H[1?"0BA@)@*"(D$).@&4```B00DZ&[Y -XM``#'1"0,FKX(",=$)`A)````QT0D!`$```"CN%\)"*&`F`H(B00DZ-1/``") -XM!"3H//D``,=$)`RHO@@(QT0D"$H```#'1"0$`0```*.\7PD(H8"8"@B)!"3H -XMHD\``(D$).@*^0``QT0D#"S$"`C'1"0(2P```,=$)`0!````H\!?"0BA@)@* -XM"(D$).AP3P``B00DZ-CX``#'1"0,3,0(",=$)`A,````QT0D!`$```"CQ%\) -XM"*&`F`H(B00DZ#Y/``")!"3HIO@``,=$)`RQO@@(QT0D"$T```#'1"0$`0`` -XM`*/(7PD(H8"8"@B)!"3H#$\``(D$).AT^```QT0D#,*^"`C'1"0(3@```,=$ -XM)`0!````H\Q?"0BA@)@*"(D$).C:3@``B00DZ$+X``#'1"0,<,0(",=$)`A/ -XM````QT0D!`$```"CT%\)"*&`F`H(B00DZ*A.``")!"3H$/@``,=$)`R]P``QT0D -XM#-B^"`C'1"0(40```,=$)`0!````H]A?"0BA@)@*"(D$).A$3@``B00DZ*SW -XM``#'1"0,\;X(",=$)`A2````QT0D!`$```"CW%\)"*&`F`H(B00DZ!).``") -XM!"3H>O<``,=$)`S`Q`@(QT0D"%,```#'1"0$`0```*/@7PD(H8"8"@B)!"3H -XMX$T``(D$).A(]P``QT0D#`V_"`C'1"0(5````,=$)`0!````H^1?"0BA@)@* -XM"(D$).BN30``B00DZ!;W``#'1"0,([\(",=$)`A5````QT0D!`$```"CZ%\) -XM"*&`F`H(B00DZ'Q-``")!"3HY/8``,=$)`P]OP@(QT0D"%8```#'1"0$`0`` -XM`*/L7PD(H8"8"@B)!"3H2DT``(D$).BR]@``QT0D#%>_"`C'1"0(5P```,=$ -XM)`0!````H_!?"0BA@)@*"(D$).@830``B00DZ(#V``#'1"0,9[\(",=$)`A8 -XM````QT0D!`$```"C]%\)"*&`F`H(B00DZ.9,``")!"3H3O8``,=$)`QROP@( -XMQT0D"%D```#'1"0$`0```*/X7PD(H8"8"@B)!"3HM$P``(D$).@<]@``QT0D -XM#(F_"`C'1"0(6@```,=$)`0!````H_Q?"0BA@)@*"(D$).B"3```B00DZ.KU -XM``#'1"0,F+\(",=$)`A;````QT0D!`$```"C`&`)"*&`F`H(B00DZ%!,``") -XM!"3HN/4``,=$)`RSOP@(QT0D"%P```#'1"0$`0```*,$8`D(H8"8"@B)!"3H -XM'DP``(D$).B&]0``QT0D#,R_"`C'1"0(70```,=$)`0!````HPA@"0BA@)@* -XM"(D$).CL2P``B00DZ%3U``#'1"0,W[\(",=$)`A>````QT0D!`$```"C#&`) -XM"*&`F`H(B00DZ+I+``")!"3H(O4``,=$)`SOOP@(QT0D"%\```#'1"0$`0`` -XM`*,08`D(H8"8"@B)!"3HB$L``(D$).CP]```QT0D#`S`"`C'1"0(8````,=$ -XM)`0!````HQ1@"0BA@)@*"(D$).A62P``B00DZ+[T``#'1"0,'\`(",=$)`AA -XM````QT0D!`$```"C&&`)"*&`F`H(B00DZ"1+``")!"3HC/0``,=$)`PNP`@( -XMQT0D"&(```#'1"0$`0```*,<8`D(H8"8"@B)!"3H\DH``(D$).A:]```QT0D -XM#$+`"`C'1"0(8P```,=$)`0!````HR!@"0BA@)@*"(D$).C`2@``B00DZ"CT -XM``#'1"0,3\`(",=$)`AD````QT0D!`$```"C)&`)"*&`F`H(B00DZ(Y*``") -XM!"3H]O,``,=$)`Q````,=$)`0!````HW1@"0BA@)@* -XM"(D$).BF1@``B00DZ`[P``#'1"0,K,4(",=$)`AY````QT0D!`$```"C>&`) -XM"*&`F`H(B00DZ'1&``")!"3HW.\``,=$)`SP```,=$ -XM)`0!````HX!@"0BA@)@*"(D$).@01@``B00DZ'CO``#'1"0,ML$(",=$)`A\ -XM````QT0D!`$```"CA&`)"*&`F`H(B00DZ-Y%``")!"3H1N\``,=$)`S-P0@( -XMQT0D"'T```#'1"0$`0```*.(8`D(H8"8"@B)!"3HK$4``(D$).@4[P``QT0D -XM#`#&"`C'1"0(@````,=$)`0!````HXQ@"0BA@)@*"(D$).AZ10``B00DZ.+N -XM``#'1"0,W\$(",=$)`B!````QT0D!`$```"CD&`)"*&`F`H(B00DZ$A%``") -XM!"3HL.X``,=$)`SYP0@(QT0D"((```#'1"0$`0```*.48`D(H8"8"@B)!"3H -XM%D4``(D$).A^[@``QT0D#$C&"`C'1"0(@P```,=$)`0!````HYA@"0BA@)@* -XM"(D$).CD1```B00DZ$SN``#'1"0,"\((",=$)`B$````QT0D!`$```"CG&`) -XM"*&`F`H(B00DZ+)$``")!"3H&NX``,=$)`P@P@@(QT0D"(4```#'1"0$`0`` -XM`*.@8`D(H8"8"@B)!"3H@$0``(D$).CH[0``QT0D##?""`C'1"0(A@```,=$ -XM)`0!````HZ1@"0BA@)@*"(D$).A.1```B00DZ+;M``#'1"0,5<((",=$)`B' -XM````QT0D!`$```"CJ&`)"*&`F`H(B00DZ!Q$``")!"3HA.T``,=$)`QFP@@( -XMQT0D"(@```#'1"0$`0```*.L8`D(H8"8"@B)!"3HZD,``(D$).A2[0``QT0D -XM#'#&"`C'1"0(B0```,=$)`0!````H[!@"0BA@)@*"(D$).BX0P``B00DZ"#M -XM``"CN&`)"(/$%%M=PY"0D)"053'`B>6+50A75E.+"H7)="B+-=A@"0B)UXVT -XM)@````!IP/$````QTHT$`8M/!(/'!/?VA6#["BA0)D+"(E=](EU^(E]_(7`=`J+'=A@"0B%VW5RBQW4 -XM8`D(A=L/A;````"+'?!@"0B+->Q@"0B)WP'W=$6A@)@*",=$)`P!QP@(QT0D -XM"`0```#'1"0$#0```(D$).CI0@``:\YDB5PD"(ET)`2)RL'Z'XD$)(G(]_^) -XM1"0,Z&D\`P"+7?2+=?B+??R)[%W#BS7,8`D(A?9TA*&`F`H(QT0D#*3&"`C' -XM1"0(`@```,=$)`0-````B00DZ(U"``"-%/4`````B50D"(E<)`2)!"3H%CP# -XM`.E#____D*&`F`H(QT0D#.S&"`C'1"0(`P```,=$)`0-````B00DZ$M"``") -XM7"0$B00DZ-\[`P#I&O___XUV`(V\)P````!5B>6#[`BAT&`)",<%0)D+"``` -XM``")!"3HX^T"`,<%T&`)"`````#)PXVT)@````!5B>53@^P4QT0D!,28"@C' -XM!"2`,@D(Z#5*`0"%P'1+BQWH=@H(Z&;\``"+10C'!<"8"@@!````QP7H=@H( -XM`````(D$).BG[```QP0D"@```.AK_@``Z#;\``")'>AV"@C'!<"8"@@````` -XM@\046UW#58GE5E.#['"+10B%P'0&BPB%R75KBT4,B00DZ*!;`P")QHU%F(E$ -XM)`2)-"3H*V+__X/``70@BU40A=)U(P^W3:")RH'B`/```('Z`(```'4%@^%) -XM=5*#Q'`QP%M>7<.0#[=-H+@!````B7<.+ -XM50R)!"2)5"0$Z(%8`P")PXD$).@G6P,`B1PDB<;HO>P"`.EZ____B30DQT0D -XM!`$```#HA&'__X7`#Y3`@\1P6P^VP%Y=PXGVC;PG`````%6)Y5=64X/L+(M% -XM#(M]"(7`#X5A`@``QT7P`````*$@)`D(P>`$!>#2"`@]X-(("'9YN_#2"`B+ -XM0_")!"3HWEP#`(D\)(E$)`3HKE[__X7`=4.+10R%P`^$Z@$``*&`F`H(QT0D -XM#"W'"`C'1"0("0```,=$)`0-````B00DZ#Y```")?"0$B00DZ-(Y`P#'1?`! -XM````H2`D"0B)VH/#$,'@!`7@T@@(.=!WC,=$)`3$F`H(QP0DE#()".A12`$` -XMA<")PP^$/P$``*%`F0L(QT7H`````(7`#X5C`@``B7PD!,<$)+@X"0CH4U<# -XM`(E%Y,=$)`0P*@@(B00DZ!#A__^+&X7;#X3S````BS.%]@^$Z0```(M%Z(M5 -XMZ,=%[``````!P,'B`HE%W(E5X.LFB?;V!=1@"0@"#X76````@\,$#X2W```` -XMBS.%]@^$K0```(-%[`&A0)D+"(7`=$C'1"0$C#,)"(DT).B/7?__A"+3>R+!`*#X1_3Z(/P`8/@ -XM`83`=9C'1"0(`````(M%Y(DT)(E$)`3H=/W__X7`#X1L____BW4,A?9T?(L# -XMQP0D4<<("(E$)`3H@S@#`(E\)`3'!"01%PD(Z',X`P"#PP3'1?`!````#X5) -XM____BU7DB10DZ&C?__^+1?"#Q"Q;7E]=PZ&`F`H(QT0D#$7'"`C'1"0("@`` -XM`,=$)`0-````B00DZ(@^``")!"3H(#@#`(MU#(7V=83'1?`!````BT7P@\0L -XM6UY?7<.AT&`)"(M5Z(M-[`^V!!"#X0?3Z(/P`8/@`>DI____B3PDZ'!8`P#' -XM1"0$+P```(D$).APW0``A<`/A;@```#'1"0$E'8*"(D\).AH1@$`A<`/A&?] -XM___'1"0$E'8*"(D\).A01@$`A<")PP^$3?W__Z&`F`H(QT0D#!O'"`C'1"0( -XM"````,=$)`0-````B00DZ-$]``")?"0$B00DZ&4W`P"+`X7`=`B)!"3HI^@` -XM`,<$)`H```#H:_H``,=%\`$```#I_?S__Z'08`D(BU77UW# -XMD%6)Y593@^P0BU4(BT($A575E.#[$R+10B+>`C'1"0$E'8* -XM"(L'B00DZ.]$`0#'1<0`````A#2"`@/AKP```"^ -XM\-((".L:H2`D"0B)\H/&$,'@!`7@T@@(.=`/AIL```"+1O")!"3H*U@#`(L? -XMB1PDB40D!.CY6?__A7UW#C;0F`````#G(#X18____#0```$")`X/# -XM!(/"!(L"A)!"3H28D``(D'B00DQT0D!#`J"`CH9]S__XL7 -XMB57(B10DZ#I5`P#'1"0$+P```(D$).@ZV@``B474QT0D!,28"@C'!"24,@D( -XMZ#-#`0"%P'00BS"%]G0*BP:%P`^%#0(``+[`(`D(BT7(QP0DN#@)"(E$)`3H -XM-U(#`,=%T`````")1=BA0)D+"(7`#X6?`@``BT70BU70BQ['1")5=SK/XL#A<`/A8$```#'1"0(`````(M%R,<$)`````")1"0$Z,_X -XM__^%P`^%E0```(M>!(/&!(7;#X1+`0``@T7,`8M%U(7`=;J+`X/X+W6UBPU` -XMF0L(A[`0```,<$),`X"0B)1"0$Z+-0`P")!XD$),=$)`0P*@@( -XMZ'':__^+50B)%"3H-K8``(L'B00DZ+S9___K,X/"!(D7BPKIL_S__XM%V(D$ -XM).C#Y`(`BT4,A<`/A)T```"+!S';B00DZ.Q0`P"+50R)`HU%[(D$).A\V?__ -XM@\1,B=A;7E]=PXM%U(7`#X3M_?__Z>/]__^AT&`)"(M5T(M-S`^V!!"#X0?3 -XMZ(/P`8/@`>F6_O__BT7$A<`/A;D```"A@)@*"(L?QT0D#%7'"`C'1"0(!0`` -XM`,=$)`0-````B00DZ&$X``")7"0$B00DZ/4Q`P#HX/(``.FJ_/__BT7$A<`/ -XMA8$```"A@)@*"(L?QT0D#'+'"`C'1"0(!@```,=$)`0-````B00DZ!DX``") -XM7"0$,=N)!"3HJS$#`.B6\@``Z2K___^+5"+3

3@,`B0>)'"3H).,"`,=$)`0P*@@(BP>)!"3HDMC__XM5#(72=".+!XD$ -XM).A!3P,`BU4,B0*+![L!````B00DZ,W7___I0?[__XM5"(D4).@MM```Z]^- -XM="8`C;PG`````%6)Y5=64X/L+(M=",=$)`3$F`H(QP0DE#()".@P/P$`A=N) -XMQG1BBT,$A`$`A?;'!4"9"P@!````#X1R`0``BS:%]@^$:`$` -XM`(L&A<`/A%X!``#'1?``````ZQB#Q@0/A$P!``"+!H7`D`^$00$``(-%\`&# -XM."]UXXD$).B93P,`B00DZ#U6__^%P(G'=,V)!"3'1"0$,!X%".B;UO__BT7P -XMBU7P@^`?@^(/B47HB57DB3PDZ'U9__^%P(G"#X3=````BPJ%R73H@'H(+G4; -XM@'H)`'3B-%(4`````N`$````#%=!@ -XM"0C3X`D"]@748`D(`0^$=?___XD<).@&40,`B00DZ/[P___'1"0,BL<(",=$ -XM)`@!````QT0D!`T```")1>RA@)@*"(D$).AV-```BU7PBTWLB5PD#(E4)`B) -XM3"0$B00DZ/PM`P")/"3HH%C__X7`B<(/A2/___^)/"3H\M3__X/&!`^%M/[_ -XM_X/$+%M>7UW#BTWP`P708`D(@^$'T^(($.EA____H2-%`"X`0````,5T&`)"-/@9@D"Z3C____'!53@^P4BUT(QT0D -XM"`````#'!"0"````C4,DB40D!.C75?__C4,\QT0D"`````")1"0$QP0D`P`` -XM`.B\5?__C4-4QT0D"`````")1"0$QP0D#P```.BA5?__QP7\F`H(`````(M# -XM(*/H=@H(H;1V"@B)!"3H!M<``*',EPH(B00DZ/G6``"A!'8*"(D$).CLU@`` -XMH429"PB)!"3HW]8``(M#$(E$)`2+`XD$).@>VP``QT0D"`$```#'1"0$`@`` -XM`(D$)*.T=@H(Z,U0__^+0Q2)1"0$BT,$B00DZ._:``#'1"0(`0```,=$)`0" -XM````B00DH\R7"@CHGE#__XM#&(E$)`2+0PB)!"3HP-H``,=$)`@!````QT0D -XM!`(```")!"2C!'8*".AO4/__BT,A@"0B)!"3H[=T" -XM`,<%Z&`)"`````"AY&`)"(7`=!")1"0$QP0D-P``$.A:T/__QP0D#0``$.A. -XMT/__R57B==64X/L+(E%V(D4).BZ3`,`B<.+1=B) -XM!"3H[4L#`(D=7)D+"(G&Z`Q3___'``````")7"0$B30DZ#I4___'!5R9"P@` -XM````B1PDZ*S6``#HXU+__XL`@_@(=%"#^`QT&X/X`G0-H>1@"0B%P`^$N@$` -XM`(/$+%M>7UW#D.BW4O__BP")!"3H75#__XET)`3'!"0V````B40D".B=S___ -XM@\0L6UY?7<.0C70F`,=$)`0`````B30DZ,#2``")1>"#P`%T+XU%\L=$)`@" -XM````B40D!(M%X(D$).A.T@``@_@"#X2!`0``A)!XE\)`2+1=R)!"3H(=<``(DWB<.+.(D$ -XM).AS2P,`B3PDB<;HJ4H#`(D<)(G'Z#_<`@"+1=R)!"3HA-4``(ET)`2)/"2) -XM-5R9"PCH[E+__XDT),<%7)D+"`````#H8-4``.B74?__BP")!"3H/4___XE\ -XM)`3'!"0V````B40D".A]SO__@\0L6UY?7<.0C70F`,=$)`3$F`H(QP0D*#() -XM".A,.`$`A<`/A-T```#'1"0$Q)@*",<$)"@R"0CHD#@!`(-]X/^)1>AT#H!] -XM\B-T"*&DF`H(B47HQT7L`````(U%Z(D$).C'V0``B47")!"3H^-(``(D<).@\3O__B70D!,<$)'@```")1"0( -XMZ'S-___I+O[__Z%T=PH(Z2W___^-M@````"-O"<`````58GE5U93@^Q,BWT( -XMC5WLBT<0BP#'1?``````B47LBT4,A%P`^$Y0$``(L(AO__\<%M'8*"``` -XM``#'!QT70``````'2P>`"B56XB46\ZRJ)]HL#AQ@"0@!QP5,F0L(`````(D4 -XM).B4UP(`Z&_Y__^#Q$Q;7E]=PXM%R(7`#X2I_O__Z9_^__^+!XD$).C]Y___ -XMB47,Z<#^__^AT&`)"(M5S(M-T`^V!!"#X0?3Z(/P`8/@`>DU____B40D!(D< -XM).A:>```A<")Q@^%G_S__XM%[(D$).B%10,`QP0D,0``$*,@=PH(Z*3)___I -XM?OS__XD<)(E$)`3H(W@``(7`B<,/A03]__^AZ&`)"(D$).A,10,`QP0D,0`` -XM$*,@=PH(Z&O)___IX?S__XVV`````*'H8`D(BQ"#^B\/A(G\__^#^BX/A(#\ -XM___HDOC__Z'H8`D(Z7'\__^AT&`)"(M5N(M-T`^W!`*#X0_3Z(/P`8/@`>EX -XM_O__B?:-O"<`````58GE5E.#Q("AC'8*"(MU#(7`=0VAE'<*"(7`#X5/`@`` -XMQT0D!,28"@B-78S'!"1@-@D(Z,@R`0#'!"0`````A<`/E<`/ML")1"0$Z$"$ -XM``"-1;")1"0(QT0D!-!V"@C'!"0"````Z(%,__^-1")1"0(QT0D!%1W"@C'!"0/````Z$M,__^AZ'8*"(L5 -XMM'8*",=$)`3_____B46LHAV"@@` -XM````Z+O)___'!"3_____Z!_O`@")-"3'1"0$`0```.A/^?__B1PDZ/?(__^# -XM[(!;7EW#QP0D`````.ADZ@``Z:#]__^0D)"0D)"0D)"0D)"0D)!5A<")Y5.) -XMTP^$`@$``(L(A='N#^2)T=HUT -XM)@"#XPAT8(/Y/+@$````C78`=`>#^3ZP`G5,6UW#C70F`(M`"(7`==GVPQ!T -XM%H/Y?)!T.(/Y/'1N@_D^=0:#^CZ0=##VPP1TN8/Y/70_@_DAD'6N@_H]N`8` -XM``!TO8/Z?K`(=9WKM%LQP%W#@_HFC78`==!;N`$```!=PXVV`````(G06UW! -XMZ`2#X`'#@_H]=.*#^GZX!P````^%8O___XGVZ73___^#^CQUF(VV`````.O` -XMC;0F`````(V\)P````!5B>6#['B)!"2)7?2)=?B)UHE]_.CG0`,`@#@`B<-T -XM(8U&_X/X`78@B70D!(D<).A(1___BUWTBW7XBWW\B>Q=P[@!````Z^R-192) -XM1"0$B1PDZ$5'__^#P`%TY8ET)`2)'"3H%$?__X7`#X2"````BT6@.P4LF0L( -XM#X26````BT6D.P7HF`H(=%7'!"0$````Z'9&__^#^/^)QP^$H0```(7`#XZH -XM````C12%`````(D4).BXT@(`B3PDB<.)1"0$Z`9'__^+?:2-#(.)PHGV@^H! -XM>&.+0?R#Z00Y^'7Q#[=5G,'F`S'`A=8/E,#I0O___P^W59R)T"4`\```/0!` -XM``!T&H/^`70B@_X"="2)]N@G1?__#[=5G,'F!NO(9C'`@_X!=>/I"?___[Y) -XM````Z[1FOI(`ZZX/MU6575E.! -XM[/P```"+?0B)^X/#!(L#QP0DIL<("(E$)`3H:L0``(7`=>>+`X7`=0V#>_Q, -XMC5/\#X0``P``B40D!,<$)+W'"`CH0\0``(7`=7O'A13______P``QX48____ -XM`````,>%(/___Q`O"0B+`X7`#X6P````C4<$.=@/A*4```"+10RZ'P```(L8 -XMBS.)\.B9_/__A<`/A4D"``"+50R-0P2)`O9%$`$/A(D```#'!"3X;PD(Z*,\ -XM`P")QX'$_````(GX6UY?7<.+,X/#!,>%%/______``#'A2#___]L+PD(@_Y& -XM=!.#_E#'A2#___\@+PD(#X1)`@``QT0D!&PO"0B)'"3H?T+__X7`#X3^`0`` -XMQX48____`````(L#A<`/A%#____'!"1Z```0Z'O"___I2O___XDT)#'VQT0D -XM!`(```#H)'(``(F%'/___XD$),=$)`0P*@@(Z#[%__^+5P2-1P3'A1#___\` -XM````,?^)PXU"J(/X('9"A=(/B-8````Y%=Q="0@/CLH```"AX%T)"(N$D#0$ -XM``"#^&P/A,````"%_P^$ZP0``(U"OX/X.7#PP2%]G6)BY4<____B10D -XMZ`7$__^)-"3HG2P!`('$_````%M>B<>)^%]=P[H"````Z[.+E1S___^)%"3H -XM63T#`(D$).C]/___B00DZ`5'__^)QNNDN@0```#KBL=$)`0`````BX4<____ -XMB00DZ#CB__^)QNN#B="#^&P/A4#___^+A1#___^%P`^$500``(/Z3`^%,?__ -XM_XN]$/___XM3!(U#!+X!````A=(/A=W^__^+E1S___^)%"3HVSP#`(D$).CC -XMQ@``B[4@____A<")PW0*B00DZ.\^`P")QHD<).A5S@(`BX4<____B00DZ"?# -XM__^)-"3H?SH#`(G'Z=?]__^)-"3HD#P#`(U5B(E4)`2)!"3H'4/__X7`#X6C -XM````BU4,BQJ+,^F,_?__B70D!,<$),K'"`CH;<$``(7`#X3J_?__@\,$QX48 -XM____`0```.DR_?__B=.P3.GW_/__BP.#^"\/CJS]__^#^#QX4@____("\)".E:_?__,?;I-?[__\<$)`L``!#H^K___XM% -XM#(L8BS/IW?S__X/Z00^$=P,``(/Z30^$G`,``(MW*(N5&/___XEU\(72#X3W -XM_?__C47PB00DZ'E!__^)!"3HM3T#`,=$)`0*````B00DBF-?>B)\R7_#0``(X44____QT0D"-''"`C'1"0$!P```(E$)`R)-"3HPAD# -XM`(N%&/___X7`=`R`?>DP=`;&1>@PB?N+E1S___^)%"3HCL#__XD<).@V/`,` -XMB00DZ-XW`P")Q^DV^___BWC[__\/MT<()0#P```] -XM`"````^4P`^V\.G/^___#[='""4`\```/0!````/E,`/MO#IMOO__[X!```` -XMZ:S[__\/MT<()0#P```]`(````^4P`^V\.F3^___#[=W",'N"H/F`>F$^___ -XM#[=W",'N"8/F`>EU^___BY40____#[="""4`\```/0"@```/E,`/MO#I5OO_ -XM_XMW!.E.^___#[=W"NE%^___BY4<____B10DZ-@X`P"-58B)5"0$B00DZ&4_ -XM__^#P`$/A+@```"+$XU]B.GE^O__BX4<____B00DZ*@X`P"-E2C___^)5"0$ -XMB00DZ`(\__^#P`$/A*@```"+$XV%*/___XF%$/___^EO^___BT<0B00DZ!_! -XM``"%P(GX_?__BY4<____B10DZ->^__^+!HD$).A].@,`B00DZ"4V`P") -XMQ^E]^?__BW<8Z8W\__^+1PR)!"3H.\```(7`B<8/A+3]__^+A1S___^)!"3K -XMNHVV`````(MW(.E?_/__BX4<____B00DZ'J^__^+E2#___^)%"3HS#4#`(G' -XMZ23Y__^+E1S___^)%"3H5[[__XN%(/___XD$).BI-0,`B57B<=64X/L'(E5 -XMZ.@M"@``B47PB00DQT0D!#`J"`CH:K[__XL?N@0```"+`^CL]/__A<")Q@^$ -XMH@```(U#!(D'C4;YBUWH@_@!#X;>````B=J)^.CE"0``B47LQT0D!#`J"`B) -XM!"3H(K[__X/C`74?@_X5````C70F`'YN@_X'#X2M````@_X(B?9T?XM% -XM\(D$).A3O?__BQ^+`X7`=!3'1"0$,#L)"(D$).C'.O__AR)1"0$BT7P -XMB00DZ)UP``"%P`^4P`^V\.EB____@\L"Z1K___^+1>R)1"0$BT7PB00DZ'9P -XM``")QNE!____BT7LB40D!(M%\(D$).@9.O__A<`/E<`/MO#I(O___U6)Y8/L -XM&(E=](G#B77XB7W\B57PZ'?^__^+.XG&BP>%P'04QT0D!"@["0B)!"3HV3G_ -XM_X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\QQNO>C;0F```` -XM`%6)Y8/L&(E=](G#B77XB7W\B57PZ(?___^+.XG&BP>%P'04QT0D!"`["0B) -XM!"3H>3G__X7`=`^)\(M=](MU^(M]_(GL7<.+5?"-1P2)`XG8Z*O___\)QNO> -XMC;0F`````%6)Y8/L&(E=](G3B77XB<:)??SHB/___XG'BP:)1?"+`(7`=!3' -XM1"0$%#L)"(D$).@7.?__AQ=PXM%\(/`!(7_B08/ -XME,`)PXGP@^,!B=KHG?___X7_#Y7"A<`/E<`/MO@AU^O%C;8`````C;\````` -XM58GE@^P8B5WTBUT,BT4(B77XB7W\B=KH9/___XG&BT4(BSB+!X7`=!3'1"0$ -XM"#L)"(D$).B3./__AQ=PXUT)@"+50B#XP$)\XU' -XM!(D"#Y7`#[;`B40D!(D4).B1____"?`/E<`/MO#KQ(VT)@````!5B>57B<=6 -XM4X/L3(E5O(L8BS.%]@^$&P(``,=$)`1`.PD(B30DZ"(X__^%P'5)@\,$B?B) -XM'XM5O.C#____QT0D!#`J"`B)PXD$).@1N___B=CH*OS__XD<)(G&Z&"Z__\Q -XMP(7V#Y3`B00DZ/$B`0"#Q$Q;7E]=P\=$)`1(.PD(B30DZ,4W__^%P'5%@\,$ -XMB?B)'XM5O.AF____QT0D!#`J"`B)QHD$).BTNO__B?#HS?O__XDT)(G#]]/H -XM`;K__XD<).B9(@$`@\1,6UY?7<.0QT0D!%`["0B)-"3H;#?__X7`=4R#PP2) -XM'XM%O(D\)(E$)`3HB/[__XG&BP>+$(72=`6#.BET#L<$)"$``!#H7;?__XL' -XMC5@$B1^)-"3H/B(!`(/$3%M>7UW#C;8`````QT0D!%@["0B)-"3H##?__X7` -XM#X4?`0``B=Z#Q@2-1>R)7<")\\9%R`''1# -XM/BT/A$L!``#V1;P"#X0L`0``B30DZ(DO`P#IT_W__XL'C5C\B1_'0/P````` -XMQT0D"`(```#'1"0$$"\)",<$)/0N"0CHZB@!`(U%X(E%Z(G#B47DQT7@^&\) -XM"(L&AW__^A@%X)"(7`=`S'!"0```!`Z/*T___'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$_____XD<).BZ`0$`C47@B00DZ`^W___HFE;__^DI -XM_O__QT0D!`(```")-"3H960``.F?_/__BT8$QP0DIL<("(E$)`3H;;4``(7` -XM=1N+1@3'!"2]QP@(B40D!.A6M0``A<`/A(/^__^+1;R)?"0$B30DB40D".BK -XM\/__Z57\__^-M@````!5B>6#["B)7?2)PXEU^(E]_(G7Z,C[__^Z`@```(E% -XM\(LSBP:)1>SHI.W__X7`=":-1@3WQP(```")`W0IBU7PB10DZ'C!`@"+1>R) -XM!"3HK2T#`(E%\(M%\(M=](MU^(M]_(GL7<.+5?#'1"0$,"H("(D4).C'MO__ -XMB?J)V.A^____QT0D!#`J"`B)QHD$).BLMO__@^+5>R+`H/X*G1G@_@O -XM=$*#^"5T'8UV`#'VBT7PB00DZ..U__^)-"3H>QX!`(E%\.N,B?#HC_?__X7` -XMB<-T2XM%\.B!]___B<+!^A_W^XG6Z\B)\.AO]___A<")PW0[BT7PZ&'W__^) -XMPL'Z'_?[B<;KJ(M%\.A.]___B<.)\.A%]___B<8/K_/KD,<$)$@```#H(K/_ -XM_XGVZZ7'!"1'````Z!*S__^)]NNUC;0F`````(V\)P````!5B>6#["B)7?2) -XMPXEU^(E]_(G7Z)C^__^Z`0```(E%\(LSBP:)1>SH5.S__X7`=1"+1?"+7?2+ -XM=?B+??R)[%W#C48$B0.+5?#'1"0$,"H("(D4).B8M?__B?J)V.B?____QT0D -XM!#`J"`B)QHD$).A]M?__@^R+`H/X*W0?@_@M=#`QVXM%\(D$).B\ -XMM/__B1PDZ%0=`0")1?#KCXM%\.AG]O__B<.)\.A>]O__C1P8Z]*+1?#H4?;_ -XM_XG#B?#H2/;__RG#Z[V-="8`58GE@^P8B5WTB77XB<:)??R)5?#H%____XG' -XMBP:+&(7;=!V+`\<$)-3'"`B)1"0$Z-NR``"%P'0'BP,[0P1T$(GXBUWTBW7X -XMBWW\B>Q=PY"#!@3'1"0$,"H("(D\).B]M/__BU7PB?#HD____\=$)`0P*@@( -XMB<:)!"3HH;3__X,[/'0HB?CHM?7__XG#B?#HK/7__XG!T_N)/"3HX+/__XD< -XM).AX'`$`BBP/HMNK__X7` -XMB<R)\.B#____QT0D!#`J"`B) -XMQHD$).C!L___]D7L`74=@_\#='F-M@````!^-H/_!`^$@P```(/_!8GV=$:+ -XM1?")!"3H\[+__XD\).B+&P$`B47PBT7PBUWTBW7XBWW\B>Q=PX/_`G75BT7P -XMZ(OT__^)PXGPZ(+T__\YPP^?P`^V^.NZBT7PZ'#T__^)PXGPZ&?T__\YPP^> -XMP`^V^.N?BT7PZ%7T__^)PXGPZ$ST__\YPP^=P`^V^.N$BT7PZ#KT__^)PXGP -XMZ#'T__\YPP^Q=PXGVN@$```#&1=W_Z]20C70F`%4QP(GE7>N(D(VT)@`` -XM``!5B>6#[`B)'"2)="0$BW4(BUT,Z%0R___'``````"+`XE%#(L&B44(BQPD -XMBW0D!(GL7>GU,O__B?:-O"<`````5;@!````B>575E.![$PA``#H*O___XU% -XM\,=$)`1`;04(B00DZ/>Q__^-A3/?__^)1"0$H;1V"@C'1"0(`"```(D$).C8 -XML0``A<")1?`/CM8-``"-E3/?__^)%"3&A`4SW___`.C'+`,`BTT(B0PDB40D -XM!.A$+O__BT4(B00DZ#DO__^+50B)1?"+7(+\@^-_@_L*#X20#0``.T4,#X2' -XM#0``,<"#^QL/E,"%P(F%V-[__P^$U0<``(M%\(/[&XM-"(T$@8F%S-[__P^$ -XM4`@``(N%S-[__\<``````(M5"#F5S-[__XF%T-[__W9"BXW,WO__B8W0WO__ -XMZQ>0C70F`(.MT-[__P2+C=#>__\Y30AS'8N5T-[__XM"_,<$)&#)"`B)1"0$ -XMZ#$R__^%P'31BX70WO__QT7L`````,=%E`````#'19@`````QT6<`````(,X -XM?@^$4P<``(N5T-[__\=$)`0O````B10DZ)PL__^+C=#>__\QTHF-W-[__X7` -XM=!2#P`2)PBN5T-[__XF%W-[__\'Z`HN-T-[__XE4)`2)#"3HF"<#`,=$)`0P -XM*@@(B87@WO__B00DZ&*P__^+A>#>__^#.'X/A$@&``")!"3H"R<#`(F%Y-[_ -XM_XN=Y-[__X7;#X1Z!@``BXWDWO__QT0D!#`J"`B)#"3H(;#__XN5Y-[__[B2 -XM'0D(BPJ%R0^%E0@``(D$).B0+___A<")A?S>__\/A!@,``#'A?C>__\````` -XMBXW__^)!"3HK*___\>%[-[__P$```#'A>C>__\`````B[7XWO__ -XMA?8/A.D$``#HT3+__X7`#X2M````BP")!"3H@RH#`(G'A?^)^8N5W-[__W4/ -XMZ9`````[`77$@\($@\$$BP*%P'7PBX7TWO__AR+ -XM`H7`#X13"P``.PL(.P2/C78`=0R#P@2#P0&+`H7`=>S'`@`` -XM```[C?3>__\/A3C___^+G>S>__^%VW0+BTV8A__^%P`^$ -XM0P<``(M%F(7`#X1H!```@[W8WO__`0^%2@<``(N%T-[__RM%"(M5#,'X`BG" -XMBX7XWO__C5K_A<`/A*,*``"+C=#>___'1"0(`@```,=$)`1(.PD(B0PDZ`5: -XM`0"+1>R+C=#>__^)7"0(B40D!(D,).B,60$`BX7@WO__B00DZ(ZM__^+79C' -XM!"0(````Z-_(``#'!"0(````Z-/(``"+C__^)#"3HH2O__X7`#X5B!@`` -XMQP0D(````.BQR```QP0D(````.BER```QP0D"````.B9R```QP0D"````.B- -XMR```Z`C'``"-C33___^#ZP&)C<#>__]T*,=$)`3$F`H(QP0D\$4)".BC%`$` -XMC94T____B97`WO__A<`/A/D)``"+10C'1"0$"0```(D$).BX+O__QX74WO__ -XM`````(7`#X3J````@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".A/K?__BY7$WO__ -XMH__^#992_B47`BT68B4PD"(-EF/V) -XM1<2+19S'1"0$`````(E%R(M%H(E%S(M%I(E%T(M%J(E%U(M%K(E%V(M%L(E% -XMW(M%M(E%X(M%N(E%Y(M%O(E%Z*',EPH(B00DZ'^L``"AS)<*",=$)`@!```` -XMQT0D!$;)"`B)!"3H$JP``(U%P(E$)`BAS)<*",=$)`0`````B00DZ$:L``#' -XM!"3$K`L(Z.JK___'A=3>__\!````BXW8WO__A__^%TG04 -XMQT0D!`````#'!"0`````Z-03`P"#!<2L"P@!QT0D!+"0"`C'!"3$K`L(Z#FL -XM__^+E<3>__^AS)<*"(E4)`2)!"3H_B?__XM%E(N-Q-[__\=$)`0`````B84T -XM____BT68B4PD"(F%./___XM%G(F%//___XM%H(-EH(")A4#___^+1:2)A43_ -XM__^+1:B)A4C___^+1:R)A4S___^+1;")A5#___^+1;2)A53___^+1;B)A5C_ -XM__^+1;R)A5S___^AS)<*"(D$).A,JP``BU4(BP*%P'12B=__^%P`^$$?G__XN5P-[__Z', -XMEPH(B50D!(D$).C-)O__BXW`WO__H%Z-[_ -XM_P````"+A?S>__^)!"3HCRW__X7`#X2[^___@\`(B00DZ)`E`P")Q^D(^___ -XMBY7HWO__A=(/CK#[__^+A?C>__^%P'2>Z,@L___'A>S>__\`````QX7HWO__ -XM`````.FK^O__C464B87$WO__BX7@WO__B00DZ(RI__^-E33___^+79B#O=C> -XM__\!B97`WO__#X6!_/__Z>#[__^+E>#>__^+G>#>__^+0@2#PP2%P`^%S@$` -XM`,=$)`3$F`H(QP0DD"\)".@]$0$`B5PD!(D$).@!(`,`B87DWO__BYWDWO__ -XMA=L/A8;Y__^-592)E<3>___I=?___XD\).AG(`,`C564B10DB40D!.A('@,` -XMZ?OY___'!"0*````Z/?$``#I&OC__\>%U-[__P$```#I"_W__\=$)`0O```` -XMB00DZ)\J__^%P`^%E?C__^C"*___BY70WO__QT0D!#`J"`C'!"0`````@\($ -XMB97__\`````QX7DWO__`````,>%^-[__P$```#'A>#> -XM__\`````Z1KY__^-M@````"#Z`2)A___IHO?__\=$)`3$F`H(QP0D($() -XM".C>#P$`A<`/A+7Y__^+`(7`#X2K^?__BPB%R8F-\-[__P^$F_G__XF%'-__ -XM_XGYBP&#P02%P'7WBY7PWO__BP*#P@2%P'7W.97PWO__#X0Y`0``.?ET+8UR -XM_(M2_#M1_(U!_(G#=1T[M?#>__\/A!D!```Y^W0-BT/\@^X$@^L$.09TXXN% -XM'-___XM`!(.%'-___P2%P(F%\-[__W6/BT68@\`!B468@^@!#X4D^?__B3PD -XMZ.L>`P")1>SIB_C__X/X+P^$*?[__XG>@\8$BP:%P'51.=X/A!;^__^)\"G8 -XMP?@"B1PDB40D!.@4'P,`B<.)!"3HRB`#`(D$).@BJ0``B1PDB___'!"22N0@(B50D!.C,_P(` -XMZ:KY__^)%"3H3R`#`.E>]___BXW\WO__B0PDZ(RI``#IJOC__X.%Z-[__P'I -XML_?__XE$)`2+193'1"0,4&T%",=$)`@$````B00DZ&@C__^+A>3>__^#O?C> -XM__\!BU68BWV4&]%-___X7`B<*)A03?__]U#\>%!-___P$```"Z`0```(N-`-__ -XM_XU$"O^)T3'2]_&)A__^-A33___^)A<#>__^+A__^%P`^.Q`$``(N- -XMR-[__XN%!-___XF](-___\>%"-___P````#!X0*#Z`&)C;S>__^)A;C>__^+ -XMG03?__^%VP^.4`$``(N-(-___S'VB[T(W___B8T8W___ZR*0BX6\WO__@\8! -XM`[W(WO__`848W___.[4$W___#X08`0``.;T`W___=M>+E1C?__^+`L<$))*Y -XM"`B)1"0$Z/_]`@"+A0S?__^Z(````(7`#X2+````BXT8W___BP&)1"0$BX4, -XMW___B00DZ+(;`P")PXD$).A8'@,`B1PDB840W___Z.JO`@"+C1#?__^-E33_ -XM__^)5"0$B0PDZ)XA__^%P'4X#[>-//___XG()0#P```]`*````^$R0```#T` -XMP```NCT```!T&#T`0```LB]T#X/A2;HJ````=06Z(````(D4).AYP```.;6X -XMWO__#XX-____BXT8W___BP&)!"3HB2+__XU8`3N=%-___P^-[O[__\<$)"`` -XM``"#PP'H/\```#N=%-___WSIZ=+^__]FQT7"4`#IW?W__\<$)`T```#H&\`` -XM`,<$)`H```#H#\```(.%"-___P&+E0C?__^#A2#?__\$.97(WO__#X5J_O__ -XMBY7@WO__B10DZ-&C___IW?;__XN5$-___XV%-/___XE$)`2)%"3HT"/__X7` -XM=1P/MX4\____NCX````E`/```#T`0```#X0C____ND````#I&?___XN%S-[_ -XM_\<$))*Y"`B)1"0$Z&3\`@#'!"0@````Z,B^``#'!"0(````Z+R^``#I*O;_ -XM_XU-\(D,).A,H___BT7P@<1,(0``6UY?7<.-392)C<3>___IEOG__XN%X-[_ -XM_XN5T-[__XE<)`B)1"0$B10DZ&1/`0#I6O7__S')QP(`````.XWTWO__#X4# -XM]/__Z<;T__^AS)<*",=$)`@!````QT0D!$3)"`B)!"3HV:(``(V--/___XF- -XMP-[__^G9]?__D)"0D)"0D)!5B>5=PXUT)@"-O"<`````58GE7<<%=&$)"``` -XM``##D%6)Y5W'!=0D"0@!````PY!5B>53@^P$H0!A"0B#^/]T$XD$)/\5\*P+ -XM",<%`&$)"/____^+'8"8"@B#^_]T,\<%@)@*"/_____K&I"-="8`Z/575E.#["R+11"+712)1"0(BT4,B5PD#(E$)`2+10B)!"3H9_[_ -XM_X,]`&$)"/^)QP^$V````#G##X30````B47LB00DZ&$D__^+#?Q@"0B%R8G" -XMC4`!B47H#X2Y````H?Q@"0B-=>2-7?")1?"0BT7HA<`/A(H```"A^&`)"`,% -XM_&`)""M%\(ET)!")7"0,B47DC47HB40D"(U%[(E$)`2A`&$)"(D$)/\5[*P+ -XM"(/``76[Z*(@__^#.`>-=@!U3J'X8`D(`<")1"0$H?Q@"0B)!"3H%JP"`(7` -XMB<)T,(M%\"L%_&`)"-$E^&`)"`'0B47PBT7HB17\8`D(A<`/A7;___^+/?Q@ -XM"0B0C70F`(/$+(GX6UY?7<.-0B&C^&`)"(D$).AVJP(`A<"C_&`)"`^%*O__ -XM_^O7C;0F`````%6)Y5=64X/L+,=$)`1P?`4(QP74)`D(`````,<$)-0D"0CH -XMZ9___Z$@)`D(QT7H`0```(E%\,'@!(VXX-(("('_X-(("'8DN^#2"`@Q]HL# -XMB00DZ!0C__\YQG,"B<:#PQ`Y^W+I@\8!B77HH>"7"@@QTL=%Y`$```#'1>P` -XM````@\`!]W7HA1T -XM6Z$@)`D(P>`$!>#2"`@[1=QVYHM%W(L8B1PDZ'4B__^)7"0$QP0D^]X("(G& -XMZ%?W`@`Y?>Q^&3MUZ',4QP0D(````(/&`>A>N@``.W7H=>R#1=P0@\`Y1=1^%HL]8&0)"(7_=5;'!"0*````Z"^Z``"#1>`!BT78.47@#X5? -XM____BQU@9`D(A=MT#,<$)`T```#H";H``,<$)`H```#H_;D``,<$)-0D"0CH -XMX9W__X/$+%M>7UWIM;<``,<$)`T```#HV;D``.NAV"@B)1=BAS)<*"(E%[*$$=@H(B47PZ.ZC``#'1"0(`0`` -XM`,=$)`0"````B477UW#B1PDB40D!.BR1P``A<") -XMPW0AQT0D!/`C!@B)WXD<).CZF___B1PDZ/*@``")QNDI_O__QP0D,0```.CO -XMF/__Z]&-M@````"-O"<`````58GE4X/L%(M="(L#HTAW"@B+0P3'!?R8"@@` -XM````HTB:"PB+0PBCZ'8*"*&T=@H(B00DZ`B>``"AS)<*"(D$).C[G0``H01V -XM"@B)!"3H[IT``(M#&(E$)`2+0PR)!"3H+*(``,=$)`@!````QT0D!`(```") -XM!"2CM'8*".C;%___BT,6#[`BAP'8*"(7`=3&AE'<*"(7` -XM=`C)PXVV`````,=$)`0!````QP0D`0```.BX&___QP7,K`L(`0```,G#QP0D -XM+@``$.A4E___Z\&)]E6)Y593@^PPH329"PB%P`^%50$``(UUX.@3-___B70D -XM",=$)`0`````QP0D$@```.CW&O__QT0D!`````#'!"02````Z%,;___'1"0$ -XM$@```,<$)`````#H/Q;__\=$)`@`````B70D!,<$)!(```#HMQK__X,]U)<* -XM"/]U:>G4````.QWP=@H(#X2>````B70D",=$)`0`````QP0D%0```.B%&O__ -XMQT0D!`````#'!"05````Z.$:___'1"0$%0```,<$)`````#HS17__\=$)`@` -XM````B70D!,<$)!4```#H11K__\<$)`\```#H&1G__X/X_XG#=8GH31G__XL` -XMB00DZ/,6___'1"0$ILD(",<$)#8```")1"0(Z"^6__\['?!V"@@/A6+___^A -XMW)D+",<$)`````")1"0$Z%H7__^AW)D+",<$)`\```")1"0$Z!45___'!"0/ -XM````Z*VT`@"#Q#!;7EW#QP0D2@```.C:E?__Z9K^__^0C70F`%6)Y5>)QU93 -XM@^P,BQ7@(@D(A=)X4+O@(@D(,?:-="8`BT,$B00DZ*43`P")/"2)1"0$Z*F7 -XM``"%P'02A?9T#,<$)"<``!#HA97__XG>BT,0@\,0A -XM7UW#QP0D%@``$#'VZ%V5___KYHUT)@"-O"<`````58GE@^Q(B7W\B<>-1>2) -XM7?2+70B)=?B+=0R)5=2)1"0$BP>)!"3HD1K__XM%U(7`=#Z+5>B)=?"+1>0[ -XM5?")7>Q]3HU5Y(E4)`2+!XD$).@X'/__,=*%P'A?BUWTB="+=?B+??R)[%W# -XMC;0F`````(GRB=B!\O___W_WT`G"="*)=>B+5>@[5?")7>2+1>1\LG\%.T7L -XM=JN)1>R)5?")]NNAH2R9"PB%P'35BT7LBU7PB47DB57HZXKHCA?__XGR@?+_ -XM__]_BP")1=R)V/?0"<(/A-\```"A@)@*",=$)`S4O@@(QT0D"`,```#'1"0$ -XM#P```(D$).CT]?__B00DZ%R?``#'1"0$,"H("(E%X(D$).@IE___BTW4N$7) -XM"`B%R0^%N0```(D$).@QGP``QT0D!#`J"`B)QHD$).C_EO__BT7")7"04B70D$(E\)`B)5"0,BU78B00DB50D!.CO[@(`BT7@ -XMB00DZ/25__^Z_____^FD_O__H8"8"@C'1"0,L,D(",=$)`@"````QT0D!`\` -XM``")!"3H%?7__^D<____H8"8"@C'1"0,M\D(",=$)`@$````QT0D!`\```") -XM!"3HZ_3__^D=____C;8`````58GE5S'_5E.#[`R+=0C'1?``````@\8$BQZ% -XMVW0T@SLM#X6*````@\,$BP.%P'3E@_AF#X3&````@_AH#X2S````QP0D@@`` -XM`.CRDO__B?;KU:'@(@D(,?:[X"()"(7`>$>)V(GZQP0D_____\=$)`3___]_ -XMZ';]__\]````@(/>_X/#$(L#A%]G03QT4(````((/$#%M> -XM7UWIEY+__X/$#%M>7UW#B=B)\^L*BT,$@\,$A=>+1?"%P'70QP0D````(.A-DO__Z\*_`0```.DH -XM____QT7P`0```.D<____D(UT)@!5B>56B<93@^P0H:`C"0B%P'0K,=OK#HL$ -XMG:0C"0B#PP&%P'09B40D!(DT).C;$?__A+`XE%\`^^$(L!*=!UVHM%\(D$).AI#P,`BTT(B0PD -XMB40D!.@V$?__AZ[F-M@````"-OP````!5B>6#[#B)7?2) -XMTXEU^(G&B7W\BW@(BT`$QP0DOB+5>R)1=B)5=R+5=R+1=B!\O___W_WT`G"#X2,```` -XMBPZ%R71WBT8,BU7PC' -XM1=0!````A?8/A6;____'1=P!````BS7@(@D(N^`B"0B%]G@3BU77UW#QP0D&```$.@IC___V478V`4@S@@(V04XS@@( -XMV=C[=V,=%R/_____'17UWIT8[__]E]Z@^W1>JT#&:)1>C9;>C? -XM?KKNHM5U(GP@\0\6UY?7>EH_?__VT8(V$W8V7WJ#[=%ZM@%(,X("+0, -XM9HE%Z-EMZ-]]R-EMZNN%BSZ%_P^$1?___[K^R0@(B=CH_O+__]E%V-@--,X( -XM"-E=V.DT____BP:%P`^%'O___[K7R0@(B=CHU_+__]E%V-@-*,X("-E=V.D- -XM____BP:%P`^$]_[__[KWR0@(B=CHL/+__]E%V-@-,,X("-E=V.GF_O__BP:% -XMP`^%Q````+K=R0@(B=CHB?+__]E%V-@-),X("-E=V.F__O__BP:%P`^%J?[_ -XM_]GNV478VNG?X,=%R`````#'1K>P;0,9HE%Z-EMZ-]]R-EMZNF&_O__ -XMBP:%P`^%1O[__[KOR0@(B=CH__'__^E!_O__NL;)"`B)V.CN\?__QT7(____ -XM_\=%S/___W_I3/[__XL&A<`/A`S^___'`VT```"ZYE7$/__A,EUX('[_P$``'_8B54(@\0$6UWI/A#__\<$)`````#H -XM,A#__P^WV(D<).@G$/__B5T,QT4(!575E.#[!R+10B) -XM1>RAT)<*"(E%\(L(AQT">L6@\($.P%U -XM#XM"!(/!!(7`=>^#.3UT%HM+!(/#!(7)=`2)S^O/@\0<6UY?7<.-0P3'`P`` -XM``")1"0$H="7"@B)!"3HAI,``*/0EPH(H=AU"0B)!"3H!)(``*'0EPH(B00D -XMZ,<'`P"CV'4)"(D[B3PDZ)B8`@"+1?")10B#Q!Q;7E]=Z8:8`@"-M@````!5 -XMB>575E.#[!RAT)<*"(E%X(L(A564X/L((M%"(M`!(7`=%:)!"3H=C@! -XM`(7`B<8/A+P```"A<&$)"(U=],<%<&$)"`$```")1?2)'"3'1"0$T#@&".AG -XMC/__B70D!,<$)!$7"0CHI^0"`(D<).BOB___@\0@6UY=P\<%=&$)"`$```#' -XM1"0$8'P%",<$)'1A"0CH*HS__XL=T)<*"(L#A)UU93@^Q,QT0D!,28"@B)1BQB%VW08QT0D!*PZ"0B)'"3H2@C__X7` -XM#X5[`@``QT70`0```(M7!#';N`$```"-=P2%T@^$LP```*&4=PH(A<`/A=@` -XM``")-"3HE3<``(G'A?]T$,=$)`3P(P8(B3PDZ`^+___V1=`!=`J#?<@@#X2_ -XM`0``BS>)^L=%S`````"+1=")5=31Z(A%N(7V=%2AE'<*"(7`=!GIU@$``(VT -XM)@`````-````0(D$).CCIP``BP:%P`^$3@$``(/&!(/X7'7A@'VX`'3;BQZ# -XMQ@2#^W9V<<<$)%P``$#H!:8``(G8Z\&+32)'"3H -XM&OL"`(DT).BR-@``B1PDB)^X7V#X2X_O__QT0D!,`["0B)-"3H$`;__XGZQT7,`````(7`#X4?_O__ -XMBW<$C5<$QT7,`0```.D-_O__C5WDB1PDZ,;Y`@")'"3H3HC__^DF_O__B=`- -XM````0(GVZ1#^___'1"0$O#H)"(D<).BW!?__QT70`@```(7`#X1M_?__QT0D -XM!-`Z"0B)'"3HF`7__\=%T`,```"%P`^$3OW__\=$)`3D.@D(B1PDZ'D%__^% -XMP`^5P`^VP(E%T.DN_?__C;8`````C;PG`````%4QP(GE@^P(BU4(Z,#\___) -XMZ9JA``"-=@"-O"<`````5;@@````B>6+50A=Z9_\___K#9"0D)"0D)"0D)"0 -XMD)!5B>575E.#["R-1>")!"3HK%,``*'@F0L(A"9 -XM"PAT+HG8BU`0BU@LA=)TY3L0=>$[5>!UW(/Z`G0QT!\=` -XM!`````#'!"0!````,?8Q_^C96```B<.-M"8`````@_L@#X2W````@_L)#X2N -XM````@_LC#X2X````@_O_B?8/A`D!``"#^PH/A`0"``")'"3HR4\``,=%\`$` -XM``")]L<$)`$```#HA%@``(/X7(G##X3^````@_LG#X3`````@_LB#X2W```` -XM@_O_C70F``^$N0```(/[*`^4P(G&BT7LAR)!"3HK/D"`(M% -XM\`GX=5J)\(3`=%2+3>R%R0^%OP$``(/[(+X!````#X5/____C;8`````QP0D -XM`0```.@$6```B7UW#,<`YWP^4 -XMP(/H`2''Z13____'!"0!````Z&]7``"#^`J)PP^%Z_[__[,@,?;I"?___Z$$ -XM80D(_R2%C,T(",=$)`0)R@@(,?;'!"04```0Z-F"__^#Q!R)\%M>7UW#H0AA -XM"0@Q]HD$).B0_@(`QT0D!!K*"`C'!"04```0HR!W"@CHIX+__X/$'(GP6UY? -XM7"__^#Q!R)\%M>7UW#QT0D!.(&"0@Q]L<$)!0``!#H1X+__X/$ -XM'(GP6UY?7<.+1>R%P`^$^O[__\<$)`H```#HMDT``(7V#X3H_O__BT7L@V@$ -XM`8D$).@_^`(`@\0) -XMQU:)UE.#[#R#_PJ)3@`````QT7L`````,=%\`````"C!&$)"(D-"&$) -XM"`^$Y@,``(U=Z,=$)`2PD0@(B1PDZ)2$___'1=``````H9B)'"3H?8/__X/$/%M>7UW#D(UT)@#_)(7,S0@(B=CH@0_/__ -XMA?8/B0O____I;O___X/_"W3D@_\$=-\QP.CR^___A?8/B>W^___I4/___Y"- -XM="8`@_\!#X1'`@``@_\!@]X`,<"#;=`!Z,;[__^%]@^)P?[__^DD____A?:- -XMM"8`````#X4*____@_\+C;0F``````^$!?___S'`Z)/[__^%]I`/B8W^___I -XM\/[__Y"-="8`@_\/#X77_O__A?:0C70F``^%RO[__S'`Z&/[__^-=@#IQO[_ -XM_X/_#P^%LO[__X7V#X6J_O__B=CH0_O__XM%[(7`#X7@`0``BU7HB10DZ*U] -XM__^)!"3H=8$``,=$)`0P*@@(B47,B00DZ**"__^+1B#?(+\.@^%,OW__X/H`8/_"HE%[,<$ -XM@@`````/A+````"#_P\/A1/]__^+1>C'1"0$H#L)"(D$).@<_O[_A<`/A?C\ -XM___I*?[__XUV`(M%T(7`#X6T_?__BQ7@F0L(A=(/A*;]__^+0BRCX)D+"(G0 -XMZ/CQ___IDOW__XL5Q",)".D/____BU7H@WR"_#H/A17^__^#Z`&)1>S'!((` -XM````Z0#^__^+`.DI____C478QT78`@```,=%W`````#'1>``````B00DZ&%- -XM``#I]?O__XM%R(E$)`2+1>B)!"3H=OW^_X7`#X52_/__Z8/]__^-M@````"- -XMO"<`````58GE@^P(BQ7@F0L(@WH0`G01C4(0B00DZ!--``#)Z1WX__^+0A0+ -XM0AAUYS'),=(QP.A:^___H>"9"PB#P!")!"3HNDL``*'@F0L(@T`4_X-0&/_) -XMZ>?W__^-M"8`````58GE@^P(H>"9"PB%P'07H2AW"@B%P'0(R<.-M@````#) -XMZ7K____'!"0O```0C78`Z.M\___KV(GVC;PG`````(L5*'<*"%6)Y872=`-= -XMPY!=,"9"PC'0!``````H91W"@B%P'4U -XM, -XM?O__H2AW"@B%P'4.B=DQTK@/````Z.?Y__^)70B#Q!!;7EWI&7[__XU3!+[X -XM;PD(ZYWK#9"0D)"0D)"0D)"0D)!5B>564X/L$(L=X)D+"(MU",<%Q",)"`H` -XM``"%VW44ZSV-0Q")!"3H-$L``(M;+(7;="N#>Q`"=>B+0Q0+0QAUX#'),=(Q -XMP.AT^?__C4,0B00DZ-E)``"+6RR%VW75B?$QTK@*````Z%3Y__^#Q!!;7EWI -XM^?7__XGVC;PG`````%6)Y5.#[!3'1"0$`````(M%"(M`!(D$).C3*@``QT0D -XM!#`J"`B)PXD$).CQ??__H2AW"@B%P'4(B1PDZ$#___^)70B#Q!1;7>DS??__ -XMC78`H2AW"@A5B>6%P'0$7<.)]ETQR3'2N`0```#IT?C__Y!5B>6#[!B+%>"9 -XM"PB+0BB%P'1CBT(@@W@$`(U(!'1!BP")2B")!"3H1/0"`(D$).AL?```QT0D -XM"`(```")1"0$H>"9"PB+0"B)!"3H<.T``*'@F0L(B00DZ!-*``#)PY#'1"0$ -XM`````,<$)`````#H+/W__\G#B10DZ/))``#)D,/K#9"0D)"0D)"0D)"0D)!5 -XMB>6#[`B+#>"9"PB%R706BQ4H=PH(A=)T!LG#C70F`,GI2O___\<$)"\``!"- -XM=@#H^WG__^O9B?:-O"<`````58GE@^P(H>"9"PB%P'0GH>"9"PB#P!")!"3H -XM44@``*$H=PH(AGZ_O__QP0D+P``$(UV`.BK>?__Z\B) -XM]HV\)P````!5B>564X/L$(L=X)D+"(7;=`Z+`SL%[)@*"`^$@@```#';BQ4H -XM=PH(,?:#10@$A=)U'J'`=@H(A7 -XM7<.%VW6VC44(QT0D!`$```")!"3H&,#__X7`#Y3`#[;PZZZ+4PB+#?28"@B+ -XM0P0S!?"8"@@QT0G!#X5B____BT,,.P7XF`H(#X53____BTLHA"9"PB) -XM4"RCX)D+"*'`=@H(QP7$(PD($@```(7`#X09____Z(K[___HA?W__Y"-="8` -XMZ0G____'!"0A```0C70F`.@K>/__Z>S^__^-M@````!5B>6#[`BAC'8*"(7` -XM=0FAE'<*"(7`=1FA-)D+"(7`=`+)P\<$)$8```#H\7?__\G#QP0D`````.BS -XMFP``H329"PB%P'7;Z]N0C;0F`````%6)Y8/L&*&,=@H(A575KX!````4X/L#(M="(M%#(U[!(E%\(VV`````(L'B00D -XMZ`;?``#'1"0$`@```(D<)`^O\.CS?```BP.%P'04QT0D!&A-"0B)!"3H6?;^ -XM_X7`=,FA*'<*"(7`=`6^`0```*&4=PH(AQP0DQ*P+".B`>/__@\0,6UY?7>G$>P`` -XMQP0DQ*P+".AH>/__@P7$K`L(`<=$)`2PD`@(QP0DQ*P+".CM>/__ZZ^#!<2L -XM"P@!QT0D!+"0"`C'!"3$K`L(Z-!X___I>?___XUT)@"-O"<`````58GE5KX! -XM````4X/L$*$H=PH(@T4(!(7`#X29````BUT(BP.%P`^$G@```,=$)`0@2`D( -XMB00DZ''U_O^%P'4QBT,$A7<.)]H7V=/.+50R+0A`IP\'[`HE<)`2)!"3HI7L``(M% -XM#(D$).@:_O__Z-5Z``"#Q!!;7EW#,53@^P4 -XMBT4(B00DZ&[Q`@#'1"0$\",&"(G#B00DZ+QW___HI_S__\=$)`3$F`H(QP0D -XM8#8)".BCW@``QP0D`````(7`#Y7`#[;`B40D!.@;,```QT0D"`````#'1"0$ -XM5'<*",<$)`\```#H6_C^_XE<)`3'!"0DR@@(Z*OX_O^)7"0$QP0D(,H(".B; -XM^/[_B1PDZ*=V___H,A3__\=%"`$```"#Q!1;7>EQ%/__D%6)Y8/L".@5_/__ -XMQT4,`````,=%"`````#)Z4$6__^058GE@^P(QT0D!)1V"@B+10B)!"3H=^`` -XM`,GI<1@!`)!5B>6#[`C'1"0$_____\<$),28"@CH9ML``,G#C70F`%6)Y593 -XM@^P0BT4(BW`$A?8/A-,```"+4`B-6`B%T@^$@@```,=$)`2@-PD(B30DZ(CS -XM_O^%P'58B30DZ'#O`@#'!"00```0HR!W"@CHCW/__XD<).@W?P``B30DB7>E7 -XMD0``QT4,_____\=%")1V"@B#Q!!;7EWI7MH``(/$$%M>7<.-M"8`````58GE -XM5U93@^PLBUT(BWL$@S\M=`S'!"1Z```0Z+!R__^-0PB)!"3H!2(``,=$)`3P -XM(P8(B47@B00DZ()U__^+=>")=?"+#H7)=%^-1?"#Q@3'1"0(`````(E$)`2) -XM/"3HO*[__\=$)`0P*@@(B<.)!"3H2G7__XE<)`3'!"22N0@(Z(K-`@")'"3H -XMDG3__XL>A=MTK<<$)!W<"`CH<,T"`(EU\(L.AE+Y0(`H91W -XM"@B%P'4DQT0D!`````#'!"0"````Z&KU_O_'!5!W"@@`````@\046UW#QT0D -XM!,"/"`C'!"0"````Z`KE`@#KVI"-M"8`````58GE@^P8B77XBW4(B5WTB7W\ -XMBWT,BT80B00DZ'"0__^+!Z,@=PH(BT80B00DZ,YQ``"-6/\[7PA\*SM?#'X, -XMQP0D#P``$.BEQ=_^''!"0.```0 -XMZ']P___KQXVV`````(V\)P````!5B>575E.#[`R+70B+0Q"+`(E%\(G"BP"I -XM````0`^%BP```(/X.G09B10DZ*!Q``"#^#H/A*(```"+5?"#.B5T>:$@)`D( -XMP>`$C;#@T@@(@?[@T@@(=E>_X-((".L-B?:%P'A$C7L0.?YV0XGP*?C!^`7! -XMX`2-'#B+1?"+"P^^$`^^`2G"B=!UUXD,).C?[0(`BU7PB10DB40D!.B@'0$` -XMA;R)WCG^=[TQVX/$#(G86UY?7<.+0P2H`70Q@^#^B4,$N\@C"0B) -XM%"3H;.L"`*/((PD(Z]6+1?"[Z",)"(D$).A5ZP(`H^@C"0CKOHM%\+O8(PD( -XMB00DZ#[K`@"CV",)".NGC;0F`````%6)Y5=6,?93@^P,BT4(B47PH="7"@B+ -XM&(7;#X24`@``BQ.%T@^$N0```#')@_H]#X2N````@\$!BQ2+A=(/A?X````Y -XMSGT"BV!^_\```!VVHD<))"-="8`Z&?M_O^I -XM```$`'31@SV`40D(`<<%0&0)"``````/E,(QP('[_P````^?P"'0HV"9"PCH -XM6?D!`*$\9`D(A<`/A$?^__^A0&0)"(7`#X4Z_O__Z$K)`0#I,/[__\=$)`2@ -XM3`D(B3PDZ-'L_O^%P'4-B1PDZ`EO`0#I#_[__\=$)`3@-`D(B3PDZ+#L_O^% -XMP`^%]_W__^B'S/__Z&+-__^)]NGF_?__B7T(@\0,6UY?7>G\;O__N`0```#I -XMG/W__XGV58GE5U93@^P,BT4(BW`$C7@$A?8/A)4"``"+!H7`="F)\^L*BT,$ -XM@\,$A)!"3H&F___XE\)`2)-"3H#N'_ -XM_\=$)`2(.PD(B30DZ.KK_O^%P`^$^````(GPZ,_9__^%P`^$%`$``,=$)`1% -XMR0@(NX````#'!"0`````Z+KQ_O_'1"0$1!="0CK'HM$GC2I```$`'4L@\,!@?O_````?R'WPP```$!U[8'[ -XM_P```';:B1PDB?;H9^O^_ZD```0`=-2#/8!1"0@!QP5`9`D(``````^4PC'` -XM@?O_````#Y_`(="C8)D+".A9]P$`BQT\9`D(A=MT+8L-0&0)"(7)=2/H4,7UWI,VW_ -XM_\=$)`3@-`D(B30DZ*_J_O^%P`^$O````,=$)`3`2PD(B30DZ)?J_O^%P'1V -XMQT0D!"A`"0B)-"3H@^K^_X7`#X7!````B3PDZ'=L``#'1"0(`@```,<$)-`O -XM"0B)1"0$Z'_=``")/"3H%VW__XD\).B_;/__B3PDZ#?F`@"+%8AW"@B%THG# -XM#X4\`0``QP5@90D(`````(/$#%M>7UWIR`$`B7T(@\0,6UY?7>E?;/__Z,K)___HI7UWI'N#__\=$)`0\0`D( -XMB30DZ*KI_O^%P'1%QT0D!!A*"0B)-"3HENG^_X7`#X7I````B3PDZ(IK``#' -XM1"0(`@```,<$)`!*"0B)1"0$Z)+<``")/"3H*FS__^F3_O__B7PD!(D\).AY -XM+O__B3PDB -XM7UWI*S?__[@(````OQZR"`C\B=Z)P?.F#X2M_O__N`4```"_,;(("(G>B<'S -XMI@^$E_[__\<$)(`Q"0C'!>29"P@!````QP6(=PH(`````.ANW```Z7+^___' -XM1"0$H#\)"(DT).B5Z/[_AY_[_A7UWI -XMT_0!`,=$)`0`3`D(B30DZ*_G_O^%P'31QT0D!"!,"0B)-"3HF^?^_X7`=+W' -XM1"0$Y$L)"(DT).B'Y_[_A!="0B+1)`T]L0!=1.#^U]T&L<$ -XM)!T``!#H*6?__XL>A=MT4_?#````0'4_BSW@70D(ZR.-=@"+1(!(7;="N#Q@3WPP```$!U%`^VPSW_````=M:)!"3HZN;^_^O0QP0D -XM'P``$.C09O__BT7PB<.+.(M`!(/#!(,X*`^$TP```,<$)!,``!#HKF;__X/# -XM!(D<).AS`0``A<`/A(````")1"0$B1PDZ!\5``"%P(G\````QT0D!#`` -XM``#'!"0!````Z$%T`@")<"2)PXEP((D$).CA-```B3PDZ`G@`@")0RBAX)D+ -XM",=#$`(```")0RR+/"9"PC'!<0C"0@)````A?]U/XLU*'<*"(7V -XM="F#Q`Q;7E]=PXD<).C#<0``B<:)!"3HJ0```.N"B10DZ`OF_O_IN_[__X/$ -XM#%M>7UWI+NO__^@IZ?__Z[J)'"2-="8`Z.MF``"+1(/\@S@I#X44____Z1O_ -XM__^A*'<*"(7`#X4W____QP0D,0``$.BP9?__Z2;___^0D)"0D)"0D)"0D%6) -XMY593@^P0BUT(ZPF-=@"+$(72=1"+`X/#!(7`=?&#Q!!;7EW#B<:)%"3_50R+ -XM5@2#Q@2%TG3>Z^Z-M@````!5B>6+30B+$8/!!(72=!*+`H7`=/$E____/XD" -XM@\($Z^Y=PXVV`````(V\)P````!5B>575E.#[`BAV)<*",=%\`````")1>R+ -XM50B+`H7`#X3I````@T4(!(L0@_I^#X1^````@_H]='F#^GL/A*````"%TG32 -XMBU@$C4@$ZS:)]H/Z>W0YA=)X._?"````0)!U,H/Z?W\M#[;"]H0`X"`)""!T -XM((--\`&#P02%VW29B=J+7@2#^F")SHUY_'7"@TWP`NOD@WWL`W7>A=N-="8` -XM#X1R____@_HN=`V#P02)]NO-@TWP`NN*@_LND(UT)@!UZ8M!!(7`=`6#^"]U -XMW8M5"#EZ_'0&@WGX+W7/@TWP`NO)BU@$A=L/A"O___^#^WT/A5/___^+2`B% -XMR0^%2/___XM5"(L"A<`/A1?___^+1?"#Q`A;7E]=PXVT)@````!5B>575E.# -XM[%R%THE%N(E5M(E-L(L`B47`#X2[`P``BQ*)5;R+1<"+`(7`B47$#X2``0`` -XMBWW`BU7$@SI[=12+0@2%P`^$6@$``(/X?0^$%P(``(M-Q,=$)`1[````B0PD -XMZ-;G_O^%P`^$-@$``(M%Q,=%Z`````#'1>P`````QT7P`````,=%W`````#' -XM1>``````QT7D`````,=%T`````"#.'MT$X/`!(,X>W7XB<,K7<3!^P*)7="- -XM<`2+0`2%P`^$%`$``(GSQT7,`````.L@@_A[#X3O````@_A]D`^$!P$``(/# -XM!(L#A<`/A.D```"#^%MUVX/#!(L#@_A=#X3M`@``A7^__\IPHG0P?@"@_AD`"B4VP -XMB40D!(D<).AQ<`(`BTVXB47`B0&+5<")^"G8@^#\C3P0BT6\*=B#X/P!T(E% -XMO.D!____BP:)!X/O!(DT).@;;P(`Z3K___^+0@B%P`^$+____^G9_?__BTW0 -XMC57HBT7$B10DB4PD"(E$)`3H/=D"`(U-W#G>B4VL#X>\````C47R)\"G(P?@"B40D".BWV`(`BTVHC47HB00DB4PD!.@EV0(`C57HB10D -XMZ`K7`@"+1>B)!"3H?]H"`(U-W(D,)(E$)`3H8-@"`(U.!(G..?,/@V3___^+ -XM7:R)'"3H&-@"`(G&BT7HB00DZ`MN`@"+1>"%P(E%R`^)I?W___?8Z8[]__^- -XMM@````"#1"L"PB+=?R)`Z'DK`L(B4,$H>BL"PB)0PB+ -XM7?B)[%W#C70F`(V\)P````!5B>575HG.4X'LK*```(F%<%___XM%"(F5;%__ -XM_X7`=1#'A7Q?__\`````]D$#0'0*QX5\7___````0(U%Y(U=[(E%W,9%S`'' -XM1=``0```QT74`````,=%V`````#'1>``````QT7D0#P)",=%Z`````#HR8$` -XM`(U%S(D$),=$)`1@/P8(Z"9B__^)'"3H3JH``(D<)(U=\,=$)`1`'@4(Z`MB -XM___'1"0$0!X%"(D<).C[8?__C57,QT0D!/____^)%"3H.)P``(7`#X4O`P`` -XMBT7LB00DZ$5D``"+1?#'1"0$`0```(D$).B":```H01V"@C'1"0$`@```(D$ -XM).AM:```Z!CG_O_HPV@``(DUD'8*"(L&A!.L.@_@-=#&+`X/#!(7` -XM=#$E____/XE#_,=$)`3$F`H(QP0DX#$)".AHR```A"0B%P'02B00DZ/]J`@#'!8!>"0@` -XM````QP0D>'8*".@96```QT0D!)#I!0C'!"1X=@H(Z%5@__^A@%X)"(7`=`S' -XM!"0```!`Z%!=___'!"1X=@H(Z/1X``"A@'8*",=$)`@`````QT0D!'AV"@B) -XM!"3H9W4``,=$)`1`*P8(B<.)!"3H!6#__Z&`7@D(A___'!"0`F@L(Z(#=_O^AP)@*",<%<'8* -XM"`````"%P`^$S?[__XN%@%___\<%_)@*"`````")!"3H55[__XN5O%___XN% -XMN%___XD5+)H+"(N5M%___Z,HF@L(BX6P7___B14DF@L(BY6L7___HR":"PB+ -XMA:A?__^)%1R:"PB+E:1?__^C&)H+"(N%H%___XD5%)H+"(N5G%___Z,0F@L( -XMBX687___B14,F@L(BY647___HPB:"PB+A9!?__^)%02:"PBC`)H+".BF6___ -XMZ2'^__^)'"2-G%A%___P````")G61?__^)E6A?__^%]@^$G````(N->%___X7)=4"+%X'B -XM____/XF5=%___P^%K0$``(U%[(D$).BA7?__Z`RB``"-17UW#C;8`````BX5T7___AB5PD!"G8B40D"(M%[(D$).BQ70``QX6,7___```` -XM`(7`#XY9`0``C3PP.;UD7___#X-V`0``C9W,W___B;W`7___QX6(7___```` -XM`.L-`<.#A8A?__\!.?MS0(NUP%___XN5B%___XE<)`0IWHV$E%B%___P````#I_O[__XUV`%6)Y5=64X/L+(MU"(U%W(D$),=%Z`````#' -XM1>P`````QT7P`````,=%W`````#'1>``````QT7D`````,=$)`3PD0@(Z+=; -XM__^-1>B)!"3'1"0$L)$(".BD6___BP:%P`^%F````(GS,<")1"0(C47HB70D -XM!(D$).A3T`(`BPN%R0^$X@```(M#!(U[!(7`#X67````B?XQTH7`=1O'1"0$ -XM8````,<$)#,```#H7UC__XGR*?K!^@*)5"0$@\8$B3PDZ%G2`@#'1"0$,"H( -XM"(G#B00DZ"=;__^+10R)V8U5Z(D$)(U%W.AD^/__B1PDZ&Q:__^+!H7`#X1H -XM____@_A@B?,/A%W___^-M"8`````@\,$BP.%P'4,B=@I\,'X`NE%____@_A@ -XM=>;K[8/X8(G^#X1>____@_A<=!^#Q@2+!H7`=0R)\BGZP?H"Z4C___^#^&!T -XM[X/X7'7A@\8$BQ:%TG78Z33___^+1>R%P'0+C57HC47- -XM153@^P4 -XMBTT(BT$$@_@M='FI````0'5J@_A_=V7V!(6]40D(!'1;BU$(@^@PC5D(]\(` -XM``!`="7K*)"-="8`]@25O5$)"`1T&8/#!(T$@(U$0M"+$_?"````0'4%@_I_ -XM=MV%TG5YB00DZ-$4__\QR87`=`Z)7"0$B00DZ)_.`@")P8/$%(G(6UW#BU$( -XMC5D(A=)U6,=$)`3$F`H(QP0D=#,)".BGOP``A<")PG1)BP"%P'1#BPUDF0L( -XMBP&+0`R%P'4TBT$$BT@,A*)/"3HLF$"`,<#`````(M-X(MQ -XM!(/!!(E-X(7V=9*+1,"B5PD!(D4)(E-U.@E8@(`BU70C9P#`2#P`2)1=R%_W0ZBP>#^#UUX(D\).@[_?__A<")PP^$:P$``#G'=-.)/"3H -XME6`"`(M-W(D9BT7OHQT0D!,28"@C'!"0`/`D(Z.B[``"%P'0*B30DZ#Q4 -XM___KGXL&A%]G4&]D7P`74ZB1PDZ*[K__^) -XMV(MU^(M=](M]_(GL7<.)V(GRZ`;\__^)PXG'Z]")70B+=?B+7?2+??R)[%WI -XMC%P``(D<),=$)`3P(P8(Z+Q3__^)V.AE^?__.<>)PW0*B3PDZ`=3___KIXD$ -XM).A-4___Z^R-="8`C;PG`````%6)Y5.#[!2+70B)'"3H7NO__X7`=!J)'"2) -XM1"0$Z`[___^%P(G#="*)V(/$%%M=PXD<).@87```B<.)!"3H_NK__XG8@\04 -XM6UW#QP0D,0``$.A*4/__Z]"0C;0F`````%6)Y5=64X/L+,=$)`3$F`H(C7WL -XMQP0DU#L)".@0N@``QT7P`````(G#BT4(B47LB3PDZ-GJ__^%P(GS```` -XMA=L/E<#WQ@(````/MMAU+H7;=0F#Y@$/A>P```"+10B)!"3HA\D"`(D$).A_ -XM40``B44(BT4(@\0L6UY?7<.)^(G:Z,CZ__^%VXG'#X2#````B7W8BU78BP*% -XMP`^$I0$``(M5V(MR!(7V#X2S`0``@WT,`0^$:@$``(-]#`(/A+P```"+30R% -XMR76IBT4(B00DZ#K+`@"+5=B)%"2C('<*".@:5@``QP0D)P``$.A.3___ZX"+ -XM50B)%"3H\<@"`(D$).CI4```B44(BT4(@\0L6UY?7<.#Y@$/A'3___^)!"3' -XM1"0$\",&".@"4O__B?CHJ_?__SG'B478#X1#`0``B3PDZ$A1___K"HGXZ(_W -XM__^)1=B+7=B%VP^%-O___XM5"(D4).BFR@(`QP0D,0``$*,@=PH(Z,5.___I -XM%?___XM5V(E5W(D$).@^S_[_BUW8@\,$C7@!ZP.+=>"+0P2#PP2)1>")-"3H -XM'\_^_XM5X(72C7P'`77AC02]`````(D$).BY7`(`B44(BT78BTT(BQ"%T@^$ -XMI````(L"A+___\_B57DBQ>#QP2!XO___S^#^C\/A/$```!_'(72=6.+11")&(-]Y`$9 -XMP/?0@\`"@\0L6UY?7<.#^EL/A-H```"+=12%]G5B@?K_````#X?"`0``H>!= -XM"0B+G)`T!```@7WD_P````^'F0$``*'@70D(BU7DBX20-`0``#G##Y7`ZRV# -XM^BIUN8L',?:%P'5$B1PDZ'[!`@"+51")`H/$++@"````6UY?7<,[5>0/E<"$ -XMP'5>@T7P!(M=\.DX____BT40BS#W`____S\/A!X!``"#PP2+112)1"0,BU40 -XMB7PD!(D<)(E4)`CH^/[__X/X`73-@_@"#X3F````A)UHU?!('F -XM____/\=%Z`````")WW0M@_Y==#R+1>B%P'53@SLM=%6#PP0QP#EUY`^4P(E% -XMZ(L7B=:)WX'F____/W73QT0D!%T```#'!"0R```0Z/Y+__^+1>@+1>1T@HM5 -XM[#E5Z`^%&/___S'`Z8W^__^-=@"+%X/#!.N[BT<$@\,$@_A==*,E____/\=$ -XM)`@`````B40D!(M%Y(D$).C"UP``A -XM7UW#A?8/A!O___^+51"X`0```(DRZ2K^__^+1>2)!"3HD2)-"2)5"0$Z%K7``"%P'^8QT7H`0`` -XM`.N/C;8`````C;PG`````%6)Y5=64X/L+(MU#(M%",=%W`$```")1?"#/EX/ -XMA!4!``#'!"0$````Z$)9`@#'!"20`0``B(M5"(D4).@]OP(`BQ>)QHL"QT7@`````(7`=#N)TXE$)`2+10B-5?#'1"0, -XM`0```(E4)`B)!"3HW/S__X7`=`V+1?"#3>`!.?!S`HG&BT,$@\,$A`/E,"#Q"Q;#[;`7E]=PXL7BP+'1>``````A57B==64X/L#(E%\(MP"(M:"(L#B40D!(L& -XMB00DZ/C(_O^%P'4/BW8(.W7PBUL(=`XY^W7=@\0,,Q=PY"+'0QA"0B%VW0TBT(8A/&!@"+1?")!"3HA54" -XM`.E0____58GE4XG#@^P$B00DZ(\4``"+0QB%P'0(B00DZ&!5`@")'"3H6%4" -XM`(/$!%M=PXGV58GE5U:)QE.)TX/L+/;"`71FH7!A"0B-??#'!7!A"0@!```` -XMB47PQT0D!-`X!@B)/"3HF4K__X/C0`^%WP```*$,80D(A<`/A,4```"+1AB% -XMP`^$N@```(E$)`3'!"01%PD(Z+BB`@")/"3HP$G__X/$+%M>7UW#QP0D2LX( -XM".A!T;XG/@^<(ZR"+!H/H`87_B09T/X7`>`J+5=R)V.AW_O__BUL< -XMA=MT2*&4=PH(A"%P'X*BU77UW#58GE5S'_ -XM5E.#[!R+=0C'1"0$Q)@*",<$)*`S"0CH+K```(D$).@VK@``A<`/A)\```"# -XMQ@2+'H7;=#"#.RUU*X/#!(L#A7UW#QT0D!,28"@C'!"2@,PD(Z.^N``")!"3H]ZP``(E%\.E1 -XM____ZPV0D)"0D)"0D)"0D)"058GE@^PHB5WTBUT(B77XBT4,B7W\A=L/E,*) -XMUG4$AP/A%@!``")\(3` -XM=#C'1"0$Q)@*",<$).`S"0CHQ=P\=$)`0`````B1PDZ*[S__^)Q\=$)`0P*@@(B3PDZ,Q& -XM__^+%>AV"@C'!>AV"@@`````B57PQT0D!,28"@C'!"1@-@D(Z*6M``"%P'0Q -XMBP"%P'0KBT`$AR+'E?1?__QT0D!,28"@C'!"20+PD(Z$NM -XM``#'1"0$A#0)"(D$).@+O`(`BP/A8;^___'1>Q`+PD(Z7K^__^-M@````!5B>575E.#[!S'1"0$ -XMQ)@*",<$),`S"0CHXZP``#WX;PD(B<8/A.8!``#'1"0$@$,)"+\`=PH(B00D -XMZ$W"_O^%P'0_QT0D!'!#"0B[`'<*"(DT).@TPO[_A<`/A9@!``"+6QR%VW1J -XMBT4,B=KH__C__X7`=.N#+029"@@!B=_K7XG?BU\`2+0P2)1P2+0P2)>`C'1Q@`````BT44QT7L`'<*"(7`=2*+-1QW"@B) -XM=QR+7>R)>QR#Q!R)^%M>7UW#C;8`````B77LBT7LBW`PYT`^%P0```(M%\(GZZ,_W__^% -XMP`^%O0```(M5\(M*'(7)=S'1?``````BW(R+@L^/__BWWPZ=3^__^+%1QW"@B% -XMTG2*BT4,Z.+V__^%P`^$>O___XL=''<*"(,M!)D*"`&%VXG?#X4R_O__Z1_^ -XM__^-M"8`````C;PG`````%6)Y593@^P0BUT(A=MT#HM#"(L`@S@*#X33```` -XMQT0D!,28"@C'!"2@,PD(Z`^J``"+$(72#X3'````]\(```!`#X6[````@_I_ -XM#X>R````,?:)P?8$E;U1"0@$=2?IGP```/?"````0`^%DP```(/Z?P^'B@`` -XM`(/!!/8$E;U1"0@$='V-!+:-=$+0BU$$A=)UT(7;="BA!)D*"(M5#,=$)`@! -XM````B5PD!(/``:,$F0H(B50D#(D$).B!_/__NP!W"@B+4QR%TG0EH029"@@K -XM0A`Y\'P@BT("0C70F`(/$$%M>7<.%]G3!P``BQTLFPL(A=L/ -XMA-$'``"+#32;"PB%R0^$!`@``(L5/)L+"(72#X0W"```H62;"PB%P'0&@\04 -XM6UW#H8"8"@C'1"0,8M$(",=$)`A!````QT0D!`(```")!"3'!6";"PA>T0@( -XMZ'&>__^)!"3HV4<``*-DFPL(@\046UW#H8"8"@C'!6B:"PCXS@@(QT0D#/S. -XM"`C'1"0(`@```,=$)`0"````B00DZ"^>__^)!"3HET<``*-LF@L(Z=S]__^A -XM@)@*",<%<)H+"`//"`C'1"0,!\\(",=$)`@#````QT0D!`(```")!"3H[IW_ -XM_XD$).A61P``HW2:"PCIJ?W__Z&`F`H(QP5XF@L($<\(",=$)`P6SP@(QT0D -XM"`0```#'1"0$`@```(D$).BMG?__B00DZ!5'``"C?)H+".EV_?__H8"8"@C' -XM!8":"PB`SP@(QT0D#!O/"`C'1"0(!0```,=$)`0"````B00DZ&R=__^)!"3H -XMU$8``*.$F@L(Z4/]__^A@)@*",<%B)H+""_/"`C'1"0,-,\(",=$)`@&```` -XMQT0D!`(```")!"3H*YW__XD$).B31@``HXR:"PCI#_W__Z&`F`H(QP60F@L( -XM0\\(",=$)`Q(SP@(QT0D"`<```#'1"0$`@```(D$).CJG/__B00DZ%)&``"% -XMP*.4F@L(#X78_/__H8"8"@C'!9":"PA.SP@(QT0D#%+/"`C'1"0("````,=$ -XM)`0"````B00DZ*:<__^)!"3H#D8``*.4F@L(Z9?\__^-="8`H8"8"@C'!9B: -XM"PA;SP@(QT0D#%_/"`C'1"0("P```,=$)`0"````B00DZ&&<__^)!"3HR44` -XM`*.B:"PAJT`@(QT0D#&_0"`C' -XM1"0(+@```,=$)`0"````B00DZ)*8__^)!"3H^D$``*/LF@L(Z5GY__^A@)@* -XM",<%\)H+"(+0"`C'1"0,A]`(",=$)`@P````QT0D!`(```")!"3H49C__XD$ -XM).BY00``H_2:"PCI)?G__Z&`F`H(QP7XF@L(D=`(",=$)`R6T`@(QT0D"#(` -XM``#'1"0$`@```(D$).@0F/__B00DZ'A!``"C_)H+".GQ^/__H8"8"@C'!0B; -XM"PB@T`@(QT0D#*70"`C'1"0(,P```,=$)`0"````B00DZ,^7__^)!"3H-T$` -XM`*,,FPL(Z;WX__^A@)@*",<%$)L+"+O0"`C'1"0,P-`(",=$)`@U````QT0D -XM!`(```")!"3HCI?__XD$).CV0```HQ2;"PCIB?C__Z&`F`H(QP5`FPL(U]`( -XM",=$)`S=T`@(QT0D"#@```#'1"0$`@```(D$).A-E___B00DZ+5```"C1)L+ -XM".E5^/__H8"8"@C'!2";"PCQT`@(QT0D#/;0"`C'1"0(.@```,=$)`0"```` -XMB00DZ`R7__^)!"3H=$```*,DFPL(Z2'X__^A@)@*",<%*)L+"`W1"`C'1"0, -XM$M$(",=$)`@[````QT0D!`(```")!"3HRY;__XD$).@S0```HRR;"PCI[O?_ -XM_Z&`F`H(QP4PFPL(*M$(",=$)`PQT0@(QT0D"#P```#'1"0$`@```(D$).B* -XMEO__B00DZ/(_``"C-)L+".F[]___H8"8"@C'!3B;"PA$T0@(QT0D#$G1"`C' -XM1"0(/0```,=$)`0"````B00DZ$F6__^)!"3HL3\``*,\FPL(Z8CW__^0D)"0 -XMD)"0587`B>5T!8,X"G0%HT!A"0A=PXVV`````(V\)P````!5B>6+10A=HQAA -XM"0C#C78`58GE@^PHBPV0=@H(B5WTB77XB7W\AR9"P@`````=`V+7?2+ -XM=?B+??R)[%W#BQ6\F`H(A=)UZ:'`=@H(A7<.0C70F`%6)Y5WI -XMM____XVT)@````!5B>564X/L$*&T=@H(QT0D#`(```#'1"0$`````,=$)`@` -XM````B00DZ`^V_O^AL'<*"(L5M'<*",<%T"0)"`(```#'!3"9"P@`````HZ!W -XM"@B)%:1W"@C'!;28"@@`````QP5(=PH(`````,<%2)H+"`````#H9JW__XLU -XM[)D+"(7V=0J+'>"9"PB%VW0'@\006UY=PXL5H'<*"(/J`8G0P?@?P>@3C300 -XMP?X-A?9^WC';H;QW"@B+!)B#PP&)!"3HRS\"`#GS=>F+%;QW"@B-!+*)%"2) -XM1"0$Z'(S``")\,'@#8G"P?H?*06@=PH(&16D=PH(*06P=PH(&16T=PH(*36X -XM=PH(@\006UY=PXUV`%6)Y5>)QU93@^P,H;AW"@@YQWQM@\`"QT0D!`0```") -XM!"3HN3\"`(G&H;QW"@B%P'09B40D!(DT).@",P``H;QW"@B)!"3H-3\"`(L= -XMN'<*"(DUO'<*",=$)`0$````QP0D`"```.AU/P(`C1R>B0.AN'<*"(/``3G' -XMH[AW"@A]DX/$#%M>7UW#C;0F`````%6)Y8/L*(E=](L=T"0)"(E]_(M]"(EU -XM^(/[`HD?='.#^P-T7(/[`70WH8"8"@C'1"0,@-<(",=$)`@'````QT0D!!`` -XM``")!"3HTI+__XE<)`2)!"3H9HP"`.@MLO[_D*$PF0L(B4<,H;28"@B)1P2+ -XM7?2+=?B+??R)[%W#C78`H4AW"@B)1PRA2)H+"(E'!.O>H>R9"PB%P'4:H:!W -XM"@B+%:1W"@B)1P2)5PC'1PP`````Z[N+%:1W"@B+':QW"@BAH'<*"(L-J'<* -XM"#G:?-9^2SL5M'<*"'_,C;8`````?`@[!;!W"@AWO(G&*N)3P2)7PCKCSG(6#[$B+50B)7?2)=?B)??R+&H/[`HD=T"0)"'1S@_L# -XM=%R#^P%T-Z&`F`H(QT0D#(#7"`C'1"0(!P```,=$)`00````B00DZ**1__^) -XM7"0$B00DZ#:+`@#H_;#^_Y"+0@RC,)D+"(M"!*.TF`H(BUWTBW7XBWW\B>Q= -XMPXUV`(M"#*-(=PH(BT($HTB:"PCKWJ'LF0L(BW($BWH(A<")-:!W"@B)/:1W -XM"@ATPXL5K'<*"*&H=PH(.=>)1>B)5>P/C,H````/CKD```"+#;1W"@B+%;!W -XM"@@Y3>R)3=R)5=@/CZD```!\"3E5Z`^'G@```(M-V"M-Z(E-X'1DBU7L,57 -XM5E.![$P@``"%R8F%S-___XF5R-___XF-Q-___\>%U-___P`````/A#(!``"! -XM^0$@```/AU<"``#'A=3?__\`````,=O'A=C?__\`````.9W$W___N@$```!V -XM"(N5Q-___RG:C00:/0`@```/AZ@```"-A?/?__\!V(E$)`2+A#?__\/A:T```#'A=S?__\`````BY7@W___.97- -XM-)"!Q\!W"@B+G>#?__^-A?/?__\KG=S?__\#A=S?__^)-"2)7"0(B40D!.BW -XMJ0(`@_C_=%2%P(G"#XZ.````BTT(A57 -XM5E.#[%R+/1AA"0B%_W1"QP4880D(`````(/$7(GX6UY?7<.A,)D+"(7`#X2D -XM````H3"9"PC'!4R:"P@!````BP"%P*.TF`H(='N#!3"9"P@$H;28"@C'!=`D -XM"0@"````A@$``.E;!0``D(UT)@"+%:1W"@B+/:QW"@BA -XMH'<*"(LUJ'<*"(E5M#GZB46P?`X/CZL#```Y\`^#HP,``*.P=PH(HZAW"@B) -XM1"0$H;1V"@B)%;1W"@B)%:QW"@C'1"0,`````(E4)`B)!"3H&JS^_Z&@=PH( -XMBQ6D=PH(BPVP=PH(BQVT=PH(BS6H=PH(BSVL=PH(B46PB56TBU6TBT6P,=HQ -XMR`G"#X1U`P``BQ6\=PH(BT6PBQ(I\(L\@H-%L`0`BT6PBU6THZ!W"@B) -XM%:1W"@B#__\/A>;^__^+10B%P`^%LP0``*&T=@H(C57$B50D!(D$).@^I_[_ -XMA<`/A;#^___V1=$!#X2F_O__BQ5P8PD(A=)T%:$<80D(@\`!.<*C'&$)"`^. -XMA_[__X,]U)<*"/\/A/K]___'!"0/````Z.2J_O^#^/^)PP^$X_W__Z'4EPH( -XM.<,/A-;]__^)1"0$QP0D#P```.@@3`<*)UH'F_Q\``,'Z#2G&B56HB=#H(?3__XM]O+@`(``` -XM*?`YQWX"B<>+1;R-%+4`````BTVXC1R]`````(MUJ,'@`BG!H;QW"@@#%+") -XM7"0(B4PD!(D4).B)J_[_B?HI?;R+1;S!^A\!/;!W"@@1%;1W"@B%P`^/=O__ -XM_^G<_O__Z+2W`0")1:R)1;SI2?___XL0A=(/A*OZ__^#P`1FOR``B16TF`H( -XMHS"9"PCI%?K__Z%(=PH(Z27[__^+';1W"@B+#;!W"@@YV@^,I?S__P^/0_S_ -XM_SG(#X:7_/__Z3;\___'!?R8"@@!````Z#@E__^A2'<*".GY^O__B^O__QP0D`0```.AS2```Z8WZ__^+10B%P`^%P``` -XM`(UV`.AKQO[_H9!V"@CI#_O__Z&\F`H(A<`/A8\```")^(E$)`3'!"1LG`L( -XMZ#*:`@#IVOC__X/`!&:_(`")%4B:"PBC2'<*".G#^/__H8"8"@B+'0QV"@C' -XM1"0,K-<(",=$)`@#````QT0D!!````")!"3HNX7__XE<)`2)!"3H3W\"`.E+ -XM^O__BSB#P`2CD'8*"(7_#X5U^/__H7P@"0AFOPH`HY!V"@CI8OC__X/H`:.\ -XMF`H(N`H```#I8?___[______Z4;X__^)]HV\)P````!5B>564X/L$(MU#(M= -XM"(U&FX/X$W8*,<"#Q!!;7EW#D/\DA6C8"`B)'"3H(9@"`(G"C4#\.<,/ARD! -XM``"+4OR#^B]U(ND<`0``C;0F`````(/H!#G##X<*`0``BQ"#^B\/A/\```"# -XM^BYUY8/^98GV#X3D````*=C!^`*)10R)70B#Q!!;7EWI1)T"`(D<).C\G@(` -XMQT0D!"\```")!"3H_",``(7`#X65````@_YT#X5C____B5T(@\006UY=Z:V< -XM`@#'1"0$`0```(D<).@=<0(`A7<.)'"3HBIP"`(L0A=(/A"C_ -XM__^)P>L;@_H)=!N!R@```$")$8M1!(/!!(72#X0)____@_H@=>"#_G%UZ(VT -XM)@````#KU\=$)`0`````B1PDZ+YP`@"%P`^$>____X/$$%M>753@^P4BQ68=PH(H7R<"PB+70C'!"0@80D(QP4D80D( -XM`````"G0P>("`Q5XG`L(B40D"(E4)`3HPID"`(E<)`3'!"1XG`L(QP5\G`L( -XM`````.@HF@(`QP0D>)P+".@,F`(`H21A"0C'!"1XG`L(B40D"*$@80D(B40D -XM!.A^F0(`B1PDZ"8O`@#'!9AW"@@`````@\046UW#C;8`````58GE5U93@^P, -XMBT4,BW4(BW@(QP0D#````.C"+P(`B<.)<`3'``````"+10B)0PB)6`2+!XE> -XM"(G>B00DZ`^;`@"+?PB)`X,X"G7'@\0,6UY?7<.-M@````"-O"<`````58GE -XM5E.#[!"+=0B+7@B+`XE$)`3'!"22N0@(Z&!\`@"+6P@Y\W07BP.#.`ITXL<$ -XM)"````#H9C\``(L#Z]*#Q!!;7EW#C70F`(V\)P````!5B>575E.#[!R+'1QW -XM"@B)1>R)5>B%VW0^BU,,BWL(A=)X+8L7BPJ#^0IT)(M%Z,=%\`````"%P'5? -XMBT7LZP>0@\`$@\($BPB%R70H.PIT\(M;'(7;=<*+1>PQVXD$).ASK!H/`!(/"!(L(AC'1>P`````P?@"QT7P -XM`````(E$)`B+1>")%"2)1"0$Z"27`@"+'6!A"0B+`X7`="2#^"9T;X/X7(US -XM!'12B40D!(GSC47HB00DZ`J5`@"+`X7`==R+1>R+50B)`J%,80D(C02'B40D -XM!(U%Z(D$).A5EP(`BU77UW#58G"B>6# -XMX@)7@^`!5E.#[#R)5=")1__^A.&$)"(7`=%*+4`BA-&$)"(D5 -XM.&$)"(/H`87`HS1A"0AX*8L"Z#_I__^+#3!A"0B%R0^$1O___\<%,&$)"``` -XM``"#Q#R)R%M>7UW#QP4X80D(`````.D5____QP0D`````.CR\?__@_@DB<%T -XM&SL-C)@*"'7,BUW0A=MTQ3'`Z`4+``#IY_[__XM=S(7;=-ZA,&$)",=%Z``` -XM``#'1>P`````QT7P`````(7`B474HT1A"0@/A.`"``#'!3!A"0@`````BU74 -XMQP0DQM<("(E4)`3H`AX``(7`#X24````BT74QP4P80D()```0*,\80D(Z7K^ -XM__^A>)P+"(L,D(U"`:.8=PH(AC__X/$/+D@````6XG(7E]=PXU5Z(D4),=$ -XM)`2PD0@(Z&,?__^-1>C'1"0$)````(D$).@PD@(`BUW4@_M[#X2U`@``@_LC -XM#X1L`@``@_L_#X1C`@``,?:#^R4/A%@"``"-5>B)7"0$B10DZ/B1`@"-0_:# -XM^#(/AM$!``#WPP```$!U/H/[?Y!W#O8$G;U1"0@$#X5\`0``#[;3@?K_```` -XM#X=V!```H>!="0B+1)`T]L0!#X6G````@_M?#X2>````A?8/A',"``"#;>P! -XMB1T\80D(C47HB00DZ%D>__^-5>B)%"3H_AW__XU%Z(D$).B3D0(`B00DZ%OY -XM___I#?W__\<%,&$)"`````#WPP```$`/A38"```/MM.!^O\````/A\4!``"A -XMX%T)"(M$D#3VQ`%U'(/[7W07@_M_#X<+`@``]@2=O5$)"`0/A/T!``"-5>B) -XM7"0$B10DZ`B1`@"+'3!A"0B%VXD=1&$)"'62N`(```#H?OS__X7`B<-UC(-] -XMU'N)'3QA"0@/A43___^A,&$)"(7`HT1A"0@/A`D%``#'!3!A"0@`````@_A] -XM#X3>!```HSQA"0C'1"0$?0```,<$)#(```#H6AK__^D!____D(UT)@#'!3!A -XM"0@`````]\,```!`#X5@`0``@_M_#X=7`0``]@2=O5$)"`0/A$D!``"-1>B) -XM7"0$B00DZ%20`@"+'3!A"0B%VXD=1&$)"'6TN`(```#HROO__X7`B<-UKNE' -XM____N`(```#HM?O__XE%U(GVZ1;]____)(6XV`@(A?:)]@^$=O[__\<$)%`` -XM``"-=@#HNQG__^EB_O__A?:-="8`#X16_O__QP0D3@```(UV`.B;&?__Z4+^ -XM__^#;>P!A?;'!3QA"0@*````#X4L_O__QP0D3P```.AT&?__Z1O^__^-1>B) -XM7"0$B00DZ*"/`@"+'3!A"0B%VXD=1&$)"'17QP4P80D(`````+X!````Z77] -XM__^)%"3HL)G^_^DW_O__C57HQT0D!'L```")%"3H7(\"`(L=,&$)"(7;B1U$ -XM80D(#X3H`0``QP4P80D(`````.D5_?__N`(```#HO_K__XG#ZZ7'!"12```` -XMZ-\8___IAOW__X/[6P^$W@(``(/[.@^%(/[__\=%W`````#'1>``````C47H -XMB5PD!(D$).CKC@(`BQTP80D(A=N)'41A"0@/A-@!``#'!3!A"0@`````@_MG -XM#Y3`#X2&`0``@_MA#X0J`@``BU7@A=)U"(3`#X6[`0``@_MA#X3Y`0``C57H -XMB5PD!(D4).B1C@(`@_MS#X7>````BSTP80D(A?^)/41A"0@/A.\!``"-1>C' -XM!3!A"0@`````B7PD!(D$).A;C@(`]\<```!`=3^)^`^VT('Z_P````^'\0$` -XM`*'@70D(BT20-/;$`0^%S@$``(/_7P^$Q0$``(/_?W<.]@2]O5$)"`0/A;(! -XM``")?"0$QP0D_[D(".@4&0``A<`/A9H!``#'1=@"````ZR['!3!A"0@````` -XM@_[_#X1U`@``C57HB70D!(D4).C1C0(`,<`Y_@^4P"E%V'0;BS4P80D(A?:) -XM-41A"0AUPC'`Z#[Y__^)QNO!B5PD!,<$),K7"`CHJA@``(7`#X3G`0``BQTP -XM80D(A=N)'41A"0@/A,8```#'!3!A"0@`````@_LZ#X1Q_O__Z7[\__^-M@`` -XM``"X`@```.CF^/__B<.-="8`Z2?[__^)%"3H?Y?^_XUV`.F#^___@T7@`8U5 -XMZ(E<)`2)%"3H*(T"`(L=,&$)"(7;B1U$80D(#X30````QP4P80D(`````(/[ -XM9P^4P.E'_O__N`(```#HA?C__XG#Z2'^__^#1>`!C47HB5PD!(D$).C;C`(` -XMBQTP80D(A=N)'41A"0@/A$H!``#'!3!A"0@`````Z1C^__^X`@```.@^^/__ -XMB)1"0$Z&J,`@"%_P^%!_[__\<$)%@```#H%A;__^EI -XM^___B10DZ(66_O_I"_[__[@"````Z,KW__^)P^DI____C47HQT0D!%L```") -XM!"3H((P"`.LKQP4P80D(`````(/["@^$X````(U5Z(E<)`2)%"3H_(L"`(/[ -XM70^$J0```(L=,&$)"(7;B1U$80D(=<6X`P```.AI]___BGY__^X`@```.@#]___ -XMB<.0Z/G__[@"````Z)+V__^)P^GJ^___C70F`(V\)P````!5B>6# -XM["B)??R)UXL5,&$)"(EU^(G&B5WTB4WLA=*)%41A"0@/A!8!``"#^BK'!3!A -XM"0@`````BQX/A!4!```/CIL```"#^BT/A+(!``"#^EX/A"$!``#WP@```$"- -XM=@`/A7H!``"#^G\/AW$!``#V!)6]40D(!,=%\`````!U-.E;`0``QP4P80D( -XM`````/?"````0`^%X0$``(/Z?XGV#X?6`0``]@25O5$)"`0/A,@!``"+3?"- -XM!(F-1$+0BQ4P80D(B47PA=*)%41A"0AUM#'`Z*CU__^)PNNSC70F`(/Z)`^$ -XM/P$``(/Z)8UT)@`/A6'___^A;&$)"(/X_W0CA=L/B"X!``")!XVV`````(7; -XM>'R+!SD&?PDY1>P/C:T```#'!"1>````Z($3__\QP(M=](MU^(M]_(GL7<.) -XM]C'`Z#GU__^+'HG"@_HJ#X7K_O__A=L/B/H```"+1>R)!SL&?:NX`0```,<' -XM`````,<&`0```.NYA=L/B,L```"%V\<'`0```'F*C;8`````BQTP80D(A=N) -XM'41A"0@/A)D```#'!3!A"0@`````B1PDZ/K>__^)7"0$QP0DU-<(".@Z%``` -XMA<`/A$;___^)]K@!````Z5?___^-M@````"%VP^(A````(M%[(/H`8D'B10D -XMZ+C>___I$____XUV`(7;>S'!@````#'!"0M````@^@!B0?HDM[__[@! -XM````Z0G___^%VW@YBTWLB0_IVO[__XD&Z\<%,&$)"``````/A($'``"C,&$)"*$$F0H(QP5L80D(_____Z/@F`H(BT6\ -XM.P5$F@L(=&F+'3!A"0B%VXD=1&$)"`^$*`<``,<%,&$)"``````['8R8"@AT -XM0XU#W8/X.W8T,?^)7"0$QP0DV-<(".BW$@``A<`/A!X)``")'"3H5]W__Z&, -XMF`H(HS!A"0B#Q$Q;7E]=P_\DA839"`B+%2"9"PB%THE5P`^$2@H``(M=P#L= -XM()D+",<%+&$)"`$````/A'P(``"+5<"+0@B+4@2+0`@YP@^$E`H``#'VBT`( -XM@\8!.<)U]HM=O#L=1)H+",=%\`````")=>P/A-P)``"+'3!A"0B%VXD=1&$) -XM"`^$V@<``,<%,&$)"`````")7"0$QP0DYM<(".C]$0``AR+5?"#P`$IT(/J`872HS1A"0B)5?!X%8M-P(U"_X7`B<*+20B)1?") -XM3ANS?__B47`H3!A"0B%P*-$80D(#X2%!```QP4P80D( -XM`````(/X.@^%#P0``(L],&$)",<%.&$)"`````"%_XD]1&$)"`^$1@0``,<% -XM,&$)"`````#'1<0`````C;0F`````(/_9[L!````=%N#_V%T48U'VH/X4G9[ -XM@_\*#X2'!@``B7PD!,<$)%L```#H(`___XL=,&$)"(7;B1U$80D(#X2'`P`` -XMQP4P80D(`````(/[.@^$<____^GR_O__C70F`+L"````BSTP80D(A?^)/41A -XM"0AT$L<%,&$)"``````)7<3I>?___S'`Z)+P__^)Q^OM_R2%=-H("*%880D( -XMA<`/A'\)``"A5&$)",<%3&$)"`````#'!"1(80D(B40D!.@[AP(`QP0D2&$) -XM".@?A0(`H4AA"0C'!5AA"0@`````QP0D5&$)"(E$)`3H$(<"`,<$)%1A"0CH -XM](0"`(L=-&$)"(7;B5W(#X28_O__BT7$C5W8QT7H`````,=%S`````"#X`&) -XM1;CK08VT)@````"-7>2)^L=%Y`````"-3>B)'"2+7<"+`^A4[O__B<:+1>B% -XMP'0'QT7,`0```/9%Q`)U>8M5T(DRBUW0@VW(`0^(_?W__\=$)`0,````QP0D -XM`0```.@('`(`C578B470B5`(QP``````B4,(B5@$BTW`BTD(B4W`BP&%P'2[ -XMBTVXAB%P'2#@?[X;PD(#X1W____C47DB?J)!"2-3>B)\.BC[?__B?.)7"0$B00D -XMB<;HCXW^_X7`=;^)'"3H%QL"`.E$____BS4P80D(A?:)-41A"0@/A(,"``#' -XM!3!A"0@`````]\8```!`=3^)\0^VT8'Z_P````^'@0(``*'@70D(BT20-/;$ -XM`0^%A`8``(/^7P^$>P8``(/^?W<.]@2UO5$)"`0/A6@&``")="0$QP0D_[D( -XM".@-#@``A<`/A5`&``#'!"1(80D(Z$F#`@#'!4QA"0@`````ZRR#^PK'!3!A -XM"0@`````=#LY\W1#@_M<#X07`0``B5PD!,<$)$AA"0CHL8("`(L=,&$)"(7; -XMB1U$80D(=<0QP.@J[O__B<.#^PIUQ<<$)`H```#H1]C__Z%,80D(A<`/A:\! -XM``"A2&$)"(L8A=L/A"`'``")!"3H'XW^_Z-,80D(QP5D80D(`````.LNB?:# -XM^PK'!3!A"0@`````=#LY\W1#@_M<#X3L````B5PD!,<$)&!A"0CH)(("`(L= -XM,&$)"(7;B1U$80D(=<0QP.B=[?__B<.#^PIUQ<<$)`H```#HNM?__\<$)&!A -XM"0CH3H("`.DJ_?__@TW$`>DA_?__BQTP80D(@P5P=@H(`87;B1U$80D(#X5Y -XM_/__,<#H3NW__XG#Z77\__^)!"3H;]?__^E*_/__BQTP80D(A=N)'41A"0@/ -XMA(D```#'!3!A"0@`````.?,/A,/^__^#^UP/A+K^___'1"0$7````,<$)$AA -XM"0CH9X$"`.FA_O__,<#HZ^S__XG'Z;;[__\QP.C=[/__Z7G[__^+'3!A"0B% -XMVXD=1&$)"'0]QP4P80D(`````#GS#X3R_O__QT0D!%P```#'!"1@80D(Z!*! -XM`@#IV?[__S'`Z);L__^)PXUT)@#I;____S'`Z(3L__^)PXGVZ\#'!"1<```` -XMZ*(*__^)]NG'^O__,<#H9.S__XG&B?;I=_W__\<$)$AA"0CH'X$"`.E<_O__ -XMB10DZ.Z*_O^)]NEY_?__,<#H-.S__XG#B?;ITOC__S'`Z"3L__^#^'N0#X5_ -XM^/__QT6\>P```.EX^/__QP0D2&$)".C2@`(`QP5,80D(`````.LLQP4P80D( -XM`````(/X"@^$PP(``(/X/P^$Q@(``(E$)`3'!"1(80D(Z#J``@"A,&$)"(7` -XMHT1A"0AUQC'`Z+7K___KQXL=,&$)"(7;B1U$80D(#X2%!```QP4P80D(```` -XM`+\!````Z43X__^+->"8"@@[-029"@B)'3!A"0@/A$,$``"+%1QW"@B%TG44 -XMZ2$!``"-="8`BU(0```.@S"?__Z>'W___'!3!A"0@J````B?&)^HU%\.AH]/__A<`/A,/W -XM__^+'3!A"0B%VXD=1&$)"`^$&P,``,<%,&$)"`````#IJ/C__S'`Z+;J__^) -XMP^DB^/__H3!A"0B%P*-$80D(#X2>`@``QP4P80D(`````(/X?0^$ROC__\<$ -XM)%8```#HK@C__^FY^/__QP0D"@```.B=U/__Z6CY__^+0PB+%828"@B+0`@Y -XMT`^$&`(``#'VBT`(@\8!.=!U]NE_]___B30DZ,MS``")PXD$).BAA`(`QP0D -XM8````(E$)`3H40C__XD<).@I%@(`@\1,6UY?7#^W^0=Q'V!)V]40D( -XM!(T$MHUT0]!U!;[_____B5PD!,<$)$AA"0CH^'T"`(L=,&$)"(7;B1U$80D( -XM=!2%V\<%,&$)"``````/B7'____KCS'`Z%WI__^)P^E=____B1PDZ'[3__^A -XM3&$)"(7`#X5<`0``H4AA"0B)!"3H8(C^_Z-,80D(H8R8"@BC,&$)".D#]O__ -XMQP0D"@```.A$T___H4QA"0B%P`^%]P```*%(80D(B00DZ":(_O^%P*-,80D( -XM#X1*`0``N@$```"A2&$)".B.YO__A<")P@^%COW__^F1_?__B1PDNSH```#' -XM!3!A"0AS````Z.C2___IGO;__XLU!)D*".DU_?__BSTP80D(A?^)/41A"0@/ -XMA(D!``#'!3!A"0@`````B3PDZ++2___WQP```$!U,XGX#[;0@?K_````#X=_ -XM`0``H>!="0B+1)`T]L0!=06#_U]U#\=%\`````")=>SI,O;__X/_)@^%XO7_ -XM_^OF,?;IP(`QP0D2&$)".@W?`(`H4AA"0B+%4QA -XM"0B)1"0$@\`$C125_/___XE4)`B)!"3HSHK^_Z%(80D(,=+'`"T```#I2/[_ -XM_XL-()D+"(7)B4W`#X4B]/__Z:?[__\QP.@3Y___B<.0Z7;[__\QP.@$Y___ -XMB<>)]NEQ_O__QP0D5P```.@?!?__Z?KU__^)%"3HCH7^_XGVZ7O^___'!"19 -XM````Z/\$___IVO7__XUV`(V\)P````!5B>575E.#[%RA[%T)",<%$&$)"``` -XM``#'!7"<"P@`````QP0D[)@*"(E%H.BOT___BU4(B5($B5((QP+X;PD(QP4L -XM80D(`````,<$)`````#H:MG__X/X('3O@_@)=.H[!42:"PAU#HL5P'8*"(72 -XM#X6/!0``B00DZ'+0__^+10B-?>C'1"0$D.D%"(D$).B\!___BUT(QP0D#``` -XM`.C]$@(`B46DB5@$QP``````BU4(B5`(B4($B4,(QT7H`````,=%[`````#' -XM1?``````QT0D!+"1"`B)/"3H<`?__XL=,&$)"(7;B1U$80D(#X1``@``QP4P -XM80D(`````(/[('3=@_L)=-B%VW@,]\,```!`#X0M`@``,?;'1:@#````A?9T -XM13GS#X24````@_M<#X2:````@_L*#X3!`P``D(E<)`2)/"3HY'D"`(L=,&$) -XM"(7;B1U$80D(=%:%]L<%,&$)"`````!UNX7;>-*)V,'H'H/P`8/[?P^>PH30 -XM=,`/ML,/MX0`X"`)"*A3=+&#^UP/A%(!``"H`P^$D@```#'`@_LB#Y3`B=Z# -XMP`*)1:CKCHM%J.@&Y?__B[^__^)'3!A"0B)/"3HH`7_ -XM_XD\).A(!?__B3PDZ.!X`@"+5:2)TXD"QT6@`````(,X"@^%$/[__XM%"(D$ -XM).AN!?__BU4(B10DZ!,%___'!"1LG`L(Z.=X`@"+%7"<"PB%TG04H6R<"PB# -XMZ`2-!)"#.`H/A#,#``"A+&$)",<%$&$)"`$```"#Q%Q;7E]=PS'`Z-OC___I -XM`O___XL=,&$)"(7;B1U$80D(#X1^`0``@_L*QP4P80D(``````^$?0$``#L= -XMC)@*"'00QT0D!%P```")/"3H!W@"`('+````0.D,_O__N`,```#H@N/__XG# -XMZ;G]__^#^W\/C\K]__\/ML,/MX0`X"`)"*A0#X2W_?__@_L[#X12`0``#X^X -XM````@_LF#X3-````C;0F``````^/*@$``(/["HVT)@`````/A"8!``"#^R.- -XMM"8`````#X5R_?__H)7+6X -XM@\8!@_L*#X3-````B5VPBQTP80D(A=N)'41A"0AUR#'`Z*;B__^)P^O'N`H` -XM`$#I\_W__X/[/I"-="8`=!0/C^<```"#^SR0C70F``^%TOS__XE<)`2)/"3H -XMWG8"`*$P80D(A<"C1&$)"`^$&P$``,<%,&$)"``````YV'1*HS!A"0CIW/W_ -XM_S'`Z#WB__^)PX/["@^%@_[__X,]O)@*"`$/A;W]___'!;R8"@@"````Z:[] -XM__^-M@````"-0]B#^`$/AUS\__^)7"0$B3PDZ&AV`@#IB_W__X!]KP!T&X-] -XMN"O'1>0`````B?8/A*@````QR8D-%&$)"(-]L%P/A.C[___KPHVV`````(ET -XM)`3'!"0S````Z.#__O_'!3!A"0@*````Z3G]__^#^UQT$8/[?`^%Z_O__XUV -XM`.D1____BQTP80D(A=N)'41A"0AT+\<%,&$)"`````"#^PH/A;T```"#/;R8 -XM"@@!#X5[^___QP6\F`H(`@```.EL^___,<#H1>'__XG#Z]"X`P```.@WX?__ -XMZ>#^__^+1;R%P`^$3?___P^VT(/Z?Y`/AT#___\QR3'V]@25O5$)"`1U)NDM -XM____C;0F``````^VT(/Z?P^'&O____8$E;U1"0@$#X0,____C02)@\8!C4Q" -XMT(M$M;R%P'74@_X*#X7Q_O__Z>[^___'``````#IPOS__^CF[/__C;8````` -XMZ6GZ__\['8R8"@AT$,=$)`1<````B3PDZ`-U`@"!RP```$#IX/K__Y"0D)"0 -XMD)"058GEBU4(BTT,A=)U!NL9D(/"`0^V`H3`=`X/OL`YR'7O7;@!````PUTQ -XMP,.-="8`53'`B>6+50B+"H7)=`R)]H/``8L,@H7)=?9=PXUT)@!5B>53BUT( -XMBTT,B=J-="8`BP&#P02)`H/"!(7`=?*)V%M=PXVV`````(V\)P````!5B>6+ -XM10B%P'08BQ"%TG4$ZQ")T(M(!(U0!(7)=?2+`%W#73'`PXUV`(V\)P````!5 -XM,=*)Y8M%"(7`=0?K#(GV@\`!@#@`=?B)PEV)T,.)]E6)Y8M-"(7)=!:)RHUT -XM)@"+`B7___\_B0*#P@2%P'7P78G(PXVV`````(V_`````%6)Y8M%"(7`=!F+ -XM$(72=!.)P8'*````0(D1@\$$BQ&%TG7O7<.-="8`C;PG`````%6)Y5.+70B+ -XM30SK"HUT)@"#PP2#P02+$X72=!J+`87`=`^!XO___S\E____/SG"=-];,575E.#[`R+?0R+=1"0Z+MP`@"+10B)="0(B7PD!(D$ -XM).@T?/[_@_C_B<-U"NAX@/[_@S@$=->#Q`R)V%M>7UW#C;8`````C;PG```` -XM`%6)Y5=64X/L#(M]#(MU$.L4Z$:`_O^#.`1U))"-="8`Z%MP`@"+10B)="0( -XMB7PD!(D$).C4@?[_@_C_B<-TTH/$#(G86UY?7<.-M"8`````58GE5U93@^P, -XMBWT,BW40D.@;<`(`BT4(B70D"(E\)`2)!"3HA(/^_X/X_XG#=0KHV'_^_X,X -XM!'37@\0,B=A;7E]=PXVV`````(V\)P````!5B>575E.#[!R+?0SWQP`"``!T -XM80^W=1"-112)1?#K%>B7?_[_@S@$=26-M@````#HJV\"`(ET)`B)?"0$BT4( -XMB00DZ$2!_O^#^/^)PW31@\056 -XM4X/L$(MU".B\?O[_QP``````ZQKHKW[^_X,X!'4>Z,EN`@#HH'[^_\<````` -XM`(DT).A">_[_A<")PW38@\00B=A;7EW#C;0F`````%6)Y593@^P0BW4(Z&Q^ -XM_O_'``````#K&NA??O[_@S@$=1[H>6X"`.A0?O[_QP``````B30DZ!)[_O^% -XMP(G#=-B#Q!")V%M>7<.-M"8`````58GE5U93@^P,BWT(#[=U#.L3Z!5^_O^# -XM.`1U'(UT)@#H*VX"`(ET)`2)/"3H:WK^_X/X_XG#=-J#Q`R)V%M>7UW#C;0F -XM`````(V\)P````!5B>53@^P$BUT(ZQF-="8`Z,=]_O^#.`1U&(VV`````.C; -XM;0(`B1PDZ"^!_O^#P`%TWH/$!%M=PY"-M"8`````58GE4X/L!(M="(7;>1?K -XM(NB'??[_@S@$=1B-M@````#HFVT"`(D<).@??O[_@\`!=-Z#Q`1;7<.0C;0F -XM`````%6)Y8/L",<$)`````#HKO___\<$)`$```#HHO___\<$)`(```#HEO__ -XM_\<%Z'8*"`````#)PXUV`(V\)P````!5B>575E.[`00``(/L#(M]",<$)`$$ -XM``#H0P@"`(G&ZQ&-'`")-"2)7"0$Z(`(`@")QHE<)`B)="0$B3PDZ.J`_O\Y -XMV'3;@_C_=!O&!`8`@\`!B40D!(DT).A2"`(`@\0,6UY?7#2+7?`Q]NL'@\8!.?YT$8/#!(D$).C8!@(`BP.%P'7HBT7PB5T,B44(@\0, -XM6UY?7>E]^O__BUWPZ^:0C;0F`````%6)Y593@^P0BW4(A?9T*(L&A53 -XM@^P$BUT(BP.)!"3HK/___XE="(/$!%M=Z4\&`@#K#9"0D)"0D)"0D)"0D)!5 -XMB>5=Z8?___^-M"8`````58GE@^P(BT4(B00DZ']T`@"C('<*",=%"!D``!#) -XMZ9WX_O^-M@````"-O"<`````58GE5E.#[!"+70R+=0C'1@0`````BQ.%TG0Z -XMD(UT)@"%TG@<]\(```!`=12#^G^0?PX/ML+VA`#@(`D(\W4GD(/#!(E4)`2) -XM-"3H$6X"`(L3A=)URXDT).AC;@(`BP:#Q!!;7EW#QT0D!%P```")-"3HZFT" -XM`(L3Z\:-M@````!5B>53@^P4BUT(B1PDZ`[Y___'1"0$!````(/``8D$).B[ -XM!0(`B5PD!(D$).@/^?__@\046UW#B?:-O"<`````58GE5U93@^P,BW4(BWT, -XMB30DZ,GX__^)/"2)P^B_^/__QT0D!`0```"-1!@!B00DZ&L%`@")="0$B<.) -XM!"3HO?C__XLSB=B%]G0.D(UT)@"#P`2+"(7)=?>)?"0$B00DZ)OX__^#Q`R) -XMV%M>7UW#D%6)Y5>)QU:)UE.#[`SK%I#H1WK^_X,X!'4>C;8`````Z%MJ`@") -XM="0$B3PDZ'MW_O^#^/^)PW38@\0,B=A;7E]=PXVT)@````"-O"<`````58GE -XM@^P8B5WXB=.)=?R)!"3HEG?^_X7`B<9X.X/[_W0E.=YT%8G:B?#HTO___XDT -XM)(G#Z#C\__^)WHGPBUWXBW7\B>Q=PX/X!7[6B?"+7?B+=?R)[%W#OO____^+ -XM7?B)\(MU_(GL7<.0C;0F`````%6)Y5.#[`2+10B+70PYV'06A!>) -XMVI"-="8`Z!O___^)V(/$!%M=PXUV`(/X!7_R@\0$B=I;7>E/____ZPV0D)"0 -XMD)"0D)"0D)"058GE@^P8B5WXBUT(B77\BW4,.?-T'X7;>!N%]G@CB?*)V.C) -XM_O__.=YT"HD<)(GSZ'O[__^)V(MU_(M=^(GL7<.)="0$B1PDZ&/___\YPXG& -XM==CKX(UT)@"-O"<`````58GE4S';@^P$Z*)5__^)]CL=M'8*"'0H.QW,EPH( -XM="`['01V"@AT&#L=1)D+"'00@_L/=`N)'"3H$_O__XUV`(/#`8/[0'7(@\0$ -XM6UWI/E;__XVT)@````"-O"<`````58GE@^PHB7W\BWT(B5WTB77XA?]T>HM% -XM#(7`=&.)/"3HMWO^_XG&BT4,B00DZ*I[_O^)1?"-1`8!B00DZ(\#`@")="0( -XMB7PD!(G#B00DZ-EZ_O^+1?"-%#.)%"2#P`&)1"0(BT4,B40D!.B]>O[_B=B+ -XM=?B+7?2+??R)[%W#B?;'10Q%R0@(ZY2-M"8`````OT7)"`CI?/___XVV```` -XM`%6)Y8/L&(EU^(MU"(E=](E]_(7V=#J)-"3H'GO^_XUX`8D\).@'`P(`B7PD -XM"(ET)`2)PXD$).A1>O[_B=B+=?B+7?2+??R)[%W#C;8`````OD7)"`CKOXGV -XMC;PG`````%6)Y8/L&(EU_(MU#(E=^(U&`8D$).BV`@(`B70D"(G#BT4(B1PD -XMB40D!.C]>?[_B=C&!#,`BUWXBW7\B>Q=PY!5,<")Y5=64X/L#(M="(7;=$>) -XM'"3H1O7__\=$)`0$````@\`!B00DZ/,!`@")QXL#AB?N-M"8````` -XMB00DZ+AM`@")`XM&!(/#!(/&!(7`=>F)^(/$#%M>7UW#ZPV0D)"0D)"0D)"0 -XMD)"058GE5E.#[""+70C'1>P`````C77LQT7P`````,=%]`````"+`^L2QT0D -XM!"````")-"3H>6D"`(L#A"%P%T/ -XME,`/ML##BT($J0```$!T!%TQP,.#^'^0=_;V!(6]40D(!'3L@\((BP+KGI"0 -XMD)"0D)"0D)"0D)!5B>5=QP4@F0L(`````,<%A)@*"`````#'!3"9"P@````` -XMPXVV`````(V\)P````!5B>564X/L$(MU"(7V#X2@````#[8&/`(/A(@```!W -XM$BP!=#:)=0B#Q!!;7EWI?O\!`#P&=^Z+1@B)!"3HO____XM&#(D$).BT____ -XMB74(@\006UY=Z5;_`0"+5A"+`H7`=!>)TXD$).A#_P$`BT,$@\,$A7>D*_P$` -XMBT84B00DZ$_____KSX/$$%M>7<.-M@````!5B>5=Z3?___^-M"8`````58GE -XM5U93NP$```"#[#PYT(E%V(E5U(E-T,=%[``````/A(4```")PXL#B00DZ%Y? -XM__^#^!*)P0^&90,``,=%[`````"+7=@Q_S'VZR*-=@"#^"@/A)<#``"+3>R% -XMR74$A?]U`X/&`8M;"#E=U'0PBP.+`(/X*0^$A`,``'[2@_@\=`6#^#YUT87_ -XM#X2``P``BT7LA3'1"0$!````(D<).AN_@$`BU7DB47HB4(0BTW4BP&#."D/ -XMA&,#``"+1=0Y1=@/A&H#``"+5=`Q_XM-T(M=V,=%W`````"#X@�+'1>`` -XM````QT7P`````(E5S(E-R.LO@_@H#X0N`0``A?\/A4T!``"+-8!>"0B%]@^$ -XM6`$``(-%\`&+6P@Y7=0/A-H```"+$XL"@_@I#X3!`0``?L*#^#P/A$@!``"# -XM^#Z-=@!UNH7_#X4'`0``@WH$/HGV#X3J`@``BT,(.T74#X3_`0``BS#'1"0$ -XM,#L)"(DT).BH;_[_A<`/A,(!``#'1"0$0#L)"(DT).B0;_[_A<`/A<<"``"+ -XM1>2!2`0``0``BUL(BW,(.W74#X2T`0``BP:)\XL`QP0DSML("(E$)`3H7?#_ -XM_X7`#X66`0``BT70@^`,@_@$=`Z+5>2+0@R%P`^$EP(``,<$)&4```#HX.[^ -XM_XM;"#E=U`^%)O___XM=W(7;=`N+3>R%R0^$_@```(M%\(7`#X06`@``BTWD -XMQ@$!BT7D@\0\6UY?7<.%_W4@BU7R%P`^$NO[__XLU@%X)"(7V#X6H_O__BP.)!"3H?&@"`(M- -XM\(M5Z(D$BNF0_O__A?]URX-Z!#P/A+P!``"+2+ -XM00B%P`^$M@$``,<$)&<```#HZNW^_^DK_O__D(UT)@"#[P$/A5C___^+1>R) -XM7>"%P`^$#_[__^E0____BU7PA=(/A5,!``"+3>3&`0*+5>"Y`0```(M%W.CS -XM!```BU7DB4(4BT7D@\0\6UY?7<.+3>2!202`````]D70#(M;"`^%C_[__XM# -XM"#M%U`^%`@$``,<$)&0```#H8^W^_^FD_?__N`$```#3X*D`ZP0`#X6,```` -XMJ!`/A('\__^+6P@[7=0/A6#\___IP!````Z?C[___'0@00````BT74.478#X66_/__QP0D)````.B5 -XM[/[_Z=G]__^+5>2#2@0"Z0K]__^+1>2!2`0``@``Z37^__^+2)00SIAOS__XL& -XMB00DZ%9F`@"+5>2)0@CI=>V+3>B)\H/$'(GX6UY?7>G#^O__C78`A=)US,=$)`08 -XM````QP0D`0```.CH^0$`BTWH@\D$B47PBT,(.?")1>QT7HL`@S@F=$"+1?") -XMVL8``XGXZ'_Z__^+5?")0@B+5>R+`H,X)G0S@TWH`HGRBT,(BTWHZ#[___^+ -XM5?")0@R#Q!R)T%M>7UW#BT7PBTWH@4@$@````(/)#.NNBUWLZ\B+5?")^,8" -XM`XG:Z"CZ__^+5?")0@CKL56)Y5>)UU93B<.#[!PYT(E-['0TB<8QR>L;C;8` -XM````@_@I#X27````@_@F=#*+=@@Y]W03BQ:+`H/X*'7BBW8(@\$!.?=U[8M- -XM[(GZ@\0EF____D(VT)@````!5 -XMB>57B==64XG#@^P<.=")3>QT-HG&,@1\=57B<=6B=93@^P<.=")3>P/A*(```")PS'2ZQV)]H/X -XM"G0F@_@H=0:#P@&-=@"+6P@YW@^$?P```(L#BP"#^"ET;'[:@_@[=>6%THUV -XM`'7>QT0D!!@```#'!"0!````Z&KW`0")VHE%\,8`!(M-[(GXZ,C^__^+5?") -XM0@B+1>R)="0$B40D"(M#"(D$).BL`0``BU7PA<")0@QT+XM%\(/$'%M>7UW# -XMC;0F`````(M;"(/J`3G>=8&+3>R)\H/$'(GX6UY?7>ES_O__BT((QT((```` -XM`(E"#.O"C70F`%6)Y5=64X/L'#G0B47PB57LB4WH#X3L````BQB)QC'_ZQR# -XM^"9T;X/X*'4$@\BP.#^"ET/G[;@_@^=`R#^'R0 -XM==Z#>P1\=-B+=@@[=>R)]@^$G````(L>QT0D!#`["0B)'"3HA&C^_X7`=+2+ -XM`X/X*77"@^\!>:C'!"1A````Z!SH_O_KFH7_=9:#>P0FB?9TCHM-Z(GRBT7P -XMZ''^__^)QP^V`#P$='L\!G1W/`5TR)-"2)1"0$Z&,```")0PSK)X7_ -XM=16+3>B+5>R+1?"#Q!Q;7E]=Z07^___'!"1B````,=OHA^?^_X/$'(G86UY? -XM7575E.#[`R+70B+=0R+?1`Y\W4)ZS&+6P@YWG0JBP.+`,<$),K;"`B) -XM1"0$Z&WH__^%P'7A@\0,B?F)\HG86UY?7>E7_O__@\0,,575HG64XG#@^PL.=`/A#D!``"+`(,X*`^$#P$``,=$)`24 -XM=@H(B00DZ"!1``"%P(G"#X04`0``BT,$B36$F`H(HR"9"PB+`L=$)`10*@8( -XMQP0D,)D+"*,PF0L(Z.WI_O^-1>B)1=B)!"3HC^'__XE%X,<$)#"9"PCH,.G^ -XM_XL-@%X)"(7)=!>-1>B)!"3H6[/__\<$)````$#HO^;^_XL#BQ"%T@^%T@`` -XM`(M%X(7`#X2T````BWL$D(UT)@"+`XD$).@&]`$`BUL(BT,$B00DZ/CS`0`Y -XMWG7DB7<(N`$```")?@2+5=@Y5?!T88M%[(M`!(E&!(M%[(M`!(EP"(M%\(EX -XM!(E'"(M%[(L`B00DZ+GS`0"+1>R)!"3HKO,!`(/$++@!````6UY?7<.+4@2+ -XM`H,X*741ZQV0C70F`(M2!(L"@S@I=`XYTW7R,<"#Q"Q;7E]=PXM#"#G0=._H -XM7````(/$+%M>7UW#BW,(BWL$.?,/A4;____I7?___XM5\(E5W(LZB00DB7PD -XM!.BI9?[_A<`/A1+___^)?"0$QP0D($,)".C57@(`BU7P/A,X```"+&(G&,?_K(I"#^"9T.X/X -XM*`^$G````(/X"G0MBW8(.77L#X26````BQZ+`X/X*71H?M:#^#Z-=@!T-(/X -XM?'0)@_@[==>-="8`A?]USXM%\(GRZ-+]__^Z`0```(7`=62+1@B+5>R#Q!Q; -XM7E]=ZWJ+=@@[=>QT1XL>QT0D!#`["0B)'"3HW&3^_X7`=(^+`X/X*76=D(UT -XM)@"#[P$/B7K____'!"1A````Z-OD_O_I:?___X/'`8UV`.E>____,=*%_W0* -XM@\07UWI2?W__XGVC;PG`````%6)Y5:)UE.) -XMPX/L$#G0=0GK+HM;"#G>=">+`XL`QP0DRML("(E$)`3H4^7__X7`=>&#Q!") -XM\HG86UY=Z<#^__^#Q!`QP%M>7<.-M"8`````58GE5E.[,@```(/L$(MU",<% -XM:)P+"`L```"-M@````"+1@B)\NB&____A&#Q!!;7EW#D)"0D)"0D)"0D)"058GEBT4(78L`HW!A -XM"0C#D%6)Y5W'!=@D"0B@G`L(PY!5B>6#[!BAV"0)"#V@G`L(#X2`````BPV$ -XM=PH(A&$) -XM"`$```"%TG5)BPWH=@H(N@$```"%R74&BQ7,EPH(+:"<"PB)1"0(QT0D!*"< -XM"PB)%"3HH^7__X/``71>QP78)`D(H)P+",<%>&$)"`````#)PXL-Z'8*"+H" -XM````A&$)"`````#'!=@D"0B@G`L(QP0D````(.@` -XMX_[_H=@D"0CI8?___XVV`````.CG9?[_BP"#^`ET'HUT)@!^*8/X&703B?:- -XMO"<`````?"&#Z$6#^`%W&<<$)`$```#HZH+^_^EG____@^@%@_@!=N?'!"0` -XM```@Z*'B_O^0Z4W___^-="8`C;PG`````%6)Y8/L"*'8)`D(BU4(@>+__S\` -XMB!"#P`$]EJ0+"*/8)`D(<@7HEO[__\FX`0```,/K#9"0D)"0D)"0D)"0D)!5 -XMB>53@^P$BPW`F`H(BUT(A#.-=@")'"3H.*4!`(E="(/$!%M=Z4O___^A?)@*"(7`#Y7`Z\*A_)D+"(7` -XM#Y7`Z[:-=@"!XW____>!RP````CKPNA]9@$`ZZN-="8`C;PG`````%6)Y593 -XM@^P0BT4(BQ5P80D(B<:)PX'F````/('C__\_0(72=5VI````0'56.QW<70D( -XM?2RAX%T)"/9$F#4"=!:#^W\/CA8!``"#/8!1"0@!#X0)`0``]D28-@1U&8UV -XM`(/[?P^.L@```(,]@%$)"`$/A*4````)WHDT).C0_O__ZR^+%<"8"@B!X___ -XM_S^%TG0^H>AV"@B%P'5EH?R9"PB%P`^5P(3`=3Z)'"3H7_[__XLUU"0)"(7V -XM=`N!X___/P"#^PIT2H/$$%M>7<.-=@"AZ'8*"(7`=!JA?)@*"(7`#Y7`A,!T -XMP@G>B30DZ/^C`0#KMJ'@=0D(A<`/E<#KII"A;)D+"(7`#Y7`ZYF-="8`@\00 -XM6UY=Z;7\__^)\(/(7(D$).C8_O__B=C!^`:#X`>#P#`)\(D$).C#_O__B=C! -XM^`.#X`>#P#`)\(D$).BN_O__B=B#X`>-6##I%____XU#]X/X`0^&"____XL- -XM=&$)"(7)=!J)\(/(7HD$).A^_O__@_M_=!*#RT#IY_[__X/[#77AZ=W^__^S -XM/Y"-="8`Z='^__^-="8`C;PG`````%6)Y5=64X/L'(M="(G8)?__/P")1"0$ -XMC47NB00DZ"Y:`@"%P(G'="")WC';@>8``,#_#[9$*^Z#PP$)\(D$).@,_O__ -XM.?MUZH/$'%M>7UW#58GE5U93@^PZ)!"3HWED" -XM`(7`B<=T((G>,=N!Y@``P/\/MD0K[H/#`0GPB00DZ`S]__\Y^W7J@\0<6UY? -XM7<-5ND#C12)`=(ITXE<)`B)3"0$ -XMZ&`Z`@"#Q!1;7<.-=@"-O"<`````5;AWFBX`B>564X/L$(MU"(GQP>D&]^&) -XMT\'K`H7;#X2,````B5PD!,<$)-C;"`CH'#H"`&G#0'X%`(GQ*<&X'X7K4??A -XMB=.ZB8B(B,'K!8G8]^J-!!K!^`7H8O___\<$)-K;"`CHYCD"`(G8NHF(B(CW -XMZ@':P?H%:](\*=.)V.@\____QP0DDAT)".C`.0(`B?"Z'X7K4??B@\006\'J -XM!6O29"G6B?!>7>D2____B?:X'X7K4??FQP0D/=P("(G3NHF(B(C!ZP6)V/?J -XM`=K!^@6)5"0$Z'8Y`@#K@HUT)@!5N,6SHI&)Y593@^P0BW4(]^:)T\'K"X7; -XM=&B)7"0$QP0DV-L(".A%.0(`:<,0#@``B?.ZB8B(B"G#B=CWZHT$&HG:P?@% -XMP?H?*=#HD/[__\<$)-K;"`CH%#D"`(G8NHF(B(CWZHG8P?@?@\00`=K!^@4I -XMPFO2/"G3B=A;7EWI7?[__XGPNHF(B(CWZHGPP?@?B?/'!"0]W`@(`?+!^@4I -XMPHE4)`3HQC@"`.NDD)"0D%6A@'<*"(GE7<<%@'<*"`````"CB'8*",.-M"8` -XM````5:&(=@H(B>5=QP6(=@H(`````*.`=PH(PXVT)@````!5B>564XG#H0"8 -XM"@B%P'1`BPT\=PH(,?;K#(VV`````(L`A7<.-M@````"-OP`````[!3QW -XM"@A5B>53B<-T$CL%<)D+"'0J6UW#C;0F`````*%PF0L(A6#[`B#/=27"@C_="*AU)<*"(7`=`C)PXVV`````,<$)#X```#H5-S^ -XM_\F-=@##QP0D(````.A#W/[_C78`Z\V-M"8`````C;PG`````%6)Y593@^P0 -XMBQT`F`H(BW4(QP6,=@H(`@```(7;="N0]D,,`G0>A?:X`;H("'4%N$7)"`B) -XM1"0$QP0D0````.CLV_[_BQN%VW76@\006UY=P^L-D)"0D)"0D)"0D)"0D%6) -XMY8/L6(E]_(M]"(E=](EU^(/_``^."@$``(U=U(UUY(D<).B#8/[_QT0D!!(` -XM``")'"3H@UO^_\=$)`05````B1PDZ'-;_O^)="0(B5PD!,<$)`$```#H#UO^ -XM_\=$)`1@'@4(B30DZ%/>_O^+10S'!"0`````B40D!.B<7/[_@\`!#X2G```` -XMA?]^=L<$)`\```#H\UW^_SE%#'1:C5V\B5PD",=$)`0`````QP0D%@```.CS -XM7O[_QT0D!`$```#'!"06````Z$]?_O^+10S'!"0/````B40D!.@,6O[_QT0D -XM"`````")7"0$QP0D%@```.BT7O[_C47DB00DZ!W=_O\QP(M=](,]U)<*"`"+ -XM=?B+??P/G\"#Z`$A!=27"@B)[%W##XU"____Z]:-=@#HQV#^_\<$)`````") -XM10R)1"0$Z-1;_O^#P`%T"(M]#.DT____Z')=_O^+`(D$).@86_[_QT0D!-S; -XM"`C'!"0V````B40D".A4VO[_QP0D`````.AX>O[_Z\.-M@````!5B>53B<.# -XM[!2+0!B%P'4(ZWZ+6P2+0Q@[0QQU]8G8Z#S]__\QP#L=@'<*"`^4P(/H`2$% -XM@'<*"(G8BU,4C78`@6`,_W___\=`&`````#'0!0`````BT`$.=AUY#L5,)H+ -XM"'0&@\046UW#H0"8"@@QR87`=`^+4!0YT7T"B=&+`(7`=?&)#3":"PB#Q!1; -XM7<.A@)@*",=$)`SLVP@(QT0D"`,```#'1"0$$0```(D$).@K.___B00DZ,,T -XM`@"#Q!1;7<.-M@````"-O"<`````58GE@^PHB77XBW4(B5WTB7W\A?9T"HM> -XM!(U^!(7;=2"+'3QW"@B%VW1HBQ4\=PH(BUWTB="+=?B+??R)[%W#D,=$)`3< -XM/0D(B30DZ/Q8_O^%P'3,QT0D!.@]"0B)-"3HZ%C^_X7`=+C'1"0$]#T)"(DT -XM).C46/[_AP`````ZPR+5?"+$H72B57P=&Z+ -XM5?"+0A@[0AQUZ8,_/W5&BU)XBP*%P'3;B=/K"HM#!(/#!(7`=,T[!G7RB5PD -XM!(DT).A1VO__ASKGHM5\(M" -XM>(D\)(E$)`3H(-K__X7`=(CKS8M5[(72D(UT)@`/A;K^__\QP(,_/P^4P(/H -XM`8/@\04\```0B00DZ-_7_O\QTNF8_O__QP0D.P``$.C,U_[_Z>'^__^)/"3H -XMCU,"`(D$).@S5O[_BQ4`F`H(A=*)P74(ZQB+$H72=!([2A1U]8M"&#M"''7M -XMZ5'^___'!"0M```0Z(77_O^0C70F`.G;_O__C70F`(V\)P````!5B>6#[`B+ -XM10B+0`2)!"3H[/W__X-(#"#)PXVV`````%6)Y593@^P0BS6`=PH(A?9T5/=& -XM#`(!``!T".M)C78`BW8$BT88.T8<=?6+1A2)\\<$)`?<"`B)1"0$Z%`R`@"+ -XM0QC'!"0\W`@(B40D!.@],@(`BUL$.=YUYL<$)`H```#H2O7__\<%@'<*"``` -XM``#'!8AV"@@`````@\006UY=P^L-D)"0D)"0D)"0D)"0D%6)Y5=64XG#@>RL -XM````B95D____BT`8.T,<=`^-="8`BUL$BT,8.T,<=?4Y6P0/A)`'``"+A63_ -XM__^)WHN59/___\>%=/_________'A7C___\`````@^`0B46`BX5D____@>*$ -XM````B56(BY5D____QX5P_________X/@`HE%A(N%9/___X/B`8F58/___X/@ -XM!(F%7/___XVT)@````"+1@R+E7C___^)QPG"@>%?/___R3<"`B%P'4*QX5\____^]X("#N]MP(".@# -XM,`(`C48@B40D#(U&*(E$)`B-1C")1"0$QP0DH&$)".AR6@``B?:+1@0YPW0) -XMB<;IC]___'!"0@````Z"+R___IK?[___:%9/__ -XM_P@/A8("``#VA63___]`#X2Y_O__H629"PB+0`R)1"0$BT,(BT`,B00DZ&53 -XM_O^%P`^$E_[__Z&`F`H(QT0D#'/<"`C'1"0("@```,=$)`01````B00DZ/PT -XM__^)!"3HE"X"`(M#"(M`#(D$).BFH?[_QP0D><((".AZ+@(`Z4O^__^0C70F -XM`#L=/'<*"+@K````=!0QP#L=<)D+"`^4P(/H`8/@\X/`+8M6%+D=W`@(@_H) -XM?@6Y12-1BB)1"0$B10DZ(-4``"+1>PY1>1UMHM%Z#M% -XM\`^?P.NNC47LQT0D#(!A"0B)1"0(B7PD!,<$)*!A"0CHT50``.FJ^O__BT,, -XM]L1`#X1D^/__@.2_@\A`B4,,Z5;X___'!"07W`@(Z!8J`@#I+/___Y!5B>56 -XM4X/L$(MU"(M=#(,%T*P+"`''1"0$L)`(",<$)-"L"PCHE]'^_XGPZQ"-=@"` -XMS@&)4`R+0`0Y\'0IBU`,]L(#=/&)T8/)`8G*@^+]A=N)4`QUVH'A_?[__XE( -XM#(M`!#GP==>%VW5#B?#H?_'__[H+````B?#HD_?__\=$)`03````BT8(D$).C,<$)(0``!")1"0$Z!W-_O^+5@2%TG6DC;8`````@\006UY= -XMPXGVC;PG`````%6)Y5=64X/L#(LUC'8*"(M5"(7V=`K'!8QV"@@"````C4($ -XMBU($OP<```"%TG08BU@$A=MT=,<$)#@```"_5P```.BYS/[_BPTPF@L(A7UW#B=CH&/+__^OD -XMQT0D!*PX"0AFOU<`B10DZ!Y,_O^%P'2%Z6____^)]HV\)P````!5B>53@^P4 -XMBQT`F`H(QP50F@L(`````(7;=0OK68UV`(L;A=MT4&:#>PP`D(UT)@!Y[H,% -XMT*P+"`''1"0$L)`(",<$)-"L"PCHT\[^_[H'````B=B!8PS_?___Z!#U__^H -XM`W08QP0DT*P+".@0SO[_BQN%VW6P@\046UW#B=CH;?'__^O?C70F`(V\)P`` -XM``!5B>575HG&4X/L+(7`B578="V+`(7`=">)\^L/C70F`(/#!'0:BP.%P'04 -XM@S@EB?9U[HD$).A&S?__@\,$=>:)-"3HN7K__\=$)`3P(P8(B<>)!"3H-\[^ -XM_X,%T*P+"`''1"0$L)`(",<$)-"L"PCH',[^_Z&4=PH(A<`/A08"``"%_P^$ -XM6`(``(L?A=L/A$X"``#'1=P`````QT7@`````.MG@_A_=W3V!(6]40D(!'1J -XMB1PDZ+9&`@"-5?#'1"0("@```(E4)`2)!"3HJTW^_XG#BT7P@#@`#X2!```` -XMQP0D.0``$.BURO[_@WW8#P^$+`$``(-]V`$/A"(!``"#QP1T+XL?A=MT*8L# -XM@_@E#X2.````J0```$!TAX/X+9!TD,<$)#D``!#H7UW#C;8`````BTW8B1PD -XMB4PD!.A]2?[_A<`/B73____H($W^_XL`B00DZ,9*_O^)7"0$QP0DJ=P("(E$ -XM)`CH1B4"`(-%X`'I7/___XD<).B%\/__B<:-=@"+4`P)5=R+0`0YQG7S@WW8 -XM%G<<#[9-V+@!````T^"I``!F`'1A]D7<`0^$R````(M%V(E$)`2+1AR)!"3H -XM*T_^_X7`#XCY````@WW8#W0*@WW8`0^%]O[__\=$)`03````BT8,<$ -XM)(0``!")1"0$Z![)_O_I>/[__X,%Q*P+"`''1"0$L)`(",<$),2L"PCH[LO^ -XM_^G:_?__H8"8"@C'1"0,BMP(",=$)`@,````QT0D!!$```")!"3H="K__XE< -XM)`2)!"3H""0"`(-%X`'I'O[__\<$)-"L"PCH`\O^_^E@_O__Z*5+_O^+`(D$ -XM).A+2?[_B5PD!,<$)*'<"`B)1"0(Z,LC`@"#1>`!Z=O^__^)]E6)Y5=64X/L -XM'(M5"(M"!(UZ!(7`=`6#."UT%KL/````B=J)^.BW_/__@\0<6UY?7<.-<`2+ -XM0`2#^&QT=X/XNIQP0D"@```.B[Y?__Z?_^__^+0@B-2@B%P'1AB<^)QND(____]@2%O5$) -XM"`0/A`S___^)-"3H_4("`(U5\,=$)`@`````B50D!(D$).@22?[_B<.+1?"` -XM.`!U#87;>`F#^Q\/CBK____'!"0;```0Z//&_O^-=@#I%O___\<$)`X``!#H -XMW\;^_^F?_O__C78`C;PG`````%6Z$0```(GEBT4(78/`!.D<^___C;8````` -XMC;\`````58GE@^P8B5WXB<.)=?R+`#L%($,)"'1YB1PDZ!Q'_O^)QJ%08PD( -XM@_A/=RT!\(/X3W8PQT0D!,@]"0BA5&,)"(D$).CT1?[_@P548PD($,<%4&,) -XM"%````"+7?B+=?R)[%W#B5PD!*%48PD(B00DZ,A%_O^-!+4``````3508PD( -XM`0548PD(BUWXBW7\B>Q=PX/#!.N"C78`C;PG`````%6%P(GE5HG&4P^$P0`` -XM``^V!CP"#X3M````=WHL`8GV#X2N````BU8$]L($C70F`'4EBT8(A!B+1@2#X`&#^`$9P"4``0``@\`!B4,,BU8$]L8@=`F`S$")0PR+5@3V -XMQD!T"H%+#````0"+5@1FA=)Y!X%+#````@")\,<%5&,)"`!B"0C'!5!C"0@` -XM````Z/O]__^A5&,)",<``````(/`!*-48PD(]D8$"'02BU,,B="`S`B)0PR` -XM?@0`>'N0QP0D`&()".B$/0(`B4-XH8!W"@B%P'1MQT,(`````*&`=PH(BT`4 -XMB4,4H8!W"@B)0P2A@'<*"(M`&(E#'(L5@'<*"(G1ZP*)PHM"!#G!=?>+#0"8 -XM"@B)6@2-0R")"XD=`)@*",=%#`````")10B#Q`Q;7E]=Z9)$_O^`S@R)4PSI -XM>____XD=@'<*"(E['(E;!*%DF0L(B4,(H629"PB#0`@"H3":"PB#^`A_+8L- -XM`)@*"(/``:,PF@L(B4,4BS4\=PH(A?9T28L5<)D+"(72=8B)'7"9"PCK@(L- -XM`)@*"+X!````ARA@)@*",=$)`S( -XMW`@(QT0D"`$```#'1"0$$0```(D$).A$'___B00DZ-P8`@"+6P0Y\W6_C5W( -XMB1PDC7VXZ&-"_O_'1"0$`@```(D<).AC/?[_QT0D!!0```")'"3H4SW^_XU% -XMV(E$)`B)7"0$QP0D`0```.CL//[_C478B00DQT0D!&`>!0CH+<#^_XM%V(E% -XMN(M%W(E%O(M%X(E%P(M%Y(E%Q,=$)`04````B3PDZ.%"_O^0C70F`.@K,`(` -XM,=N)\(VT)@`````+6`R+0`0Y\'7V]L,!=`J)/"3HI4+^_^O7C478B00DZ"R_ -XM_O^AU)<*"(7`?A")1"0$QP0D#P```.C?._[_]L-2#X3T`0``]L,"#X4E`0`` -XMNJ````")\.CEY?__]\,"(```=`Z+/91W"@B%_P^%C@$``(GR,=L/MD(0A,!T -XM$O="#!`@```/MMAT!H/(@`^VV(M2!#GR==^%VP^$@0```,=$)`3$F`H(QP0D -XMP#P)".@^)@``A7]___H>ES^_XGPZ%/@ -XM__^#Q%Q;7E]=PZ&`F`H(QT0D#+W<"`C'1"0(`@```,=$)`01````B00DZ`8< -XM__^)7"0$B00DZ)H5`@#I%?[__XGPZ`[@___I564X/L$(M=".A`W?__BT,$B=[K/L=#&``` -XM``#HJ3S^_XL`B00DZ$\Z_O^)1"0(BT-XQP0DA```$(E$)`3HC+G^_XM&!(7` -XM=#>+1@B#Q@2%P'0MB00DZ`/@___'1"0$`0```(G#B00DZ)'J__^%P'2DB1PD -XMZ%7[__^+1@2%P'7)@\006UY=PXVT)@````!5B>564X/L$(L=`)@*"(7;=%2^ -XM`)@*".L/C;0F`````(L8B<:%VW0^BTL8B=B%R77OBP.)!HM#>(D$).APQ@$` -XMBU,(A=)T#8M""(/H`H7`B4((=":)'"3H5,8!`(GPBQB)QH7;=<*A@'<*"(D$ -XM).C-^O__@\006UY=PXM#"(L0A=)UT8D$).AE>/[_Z\>-=@!5B>575E.#[&R- -XMM"8`````Z)<[_O_'``````"+-91W"@B%]@^$7@(``(L=P'8*"(7;=0Z+#?Q= -XM"0B%R0^$1@(``+@#````C56HB40D!(U%\(E4)`B)!"3H<#C^_XG"C4`!@_@! -XM#X8S`@``BS4`F`H(A?9U".N:BS:%]G24.U88D'7TBTX,B"$``(D$).CP,@(`B00DZ)0U_O\YPP^,]0`` -XM`(M'#(/(0(E'#`E%H(M_!#GW=8N+5@R)T(#D_CMV!(E&#`^$G@$``/=%H`$0 -XM```/A3S^__^)\XM##*@"=`:`S!")0PR+6P0Y\W7LBT,8.T,<=`N+6P2+0Q@[ -XM0QQU]8M]H(/G`@^$?`$``*$\=PH(A^__^)0P3'1"0(`0```,=$)`0"````B00DZ.@S -XM_O^+`X7`>!6+4P2%TG@&@\046UW#B00DZ+&Y__^+0P2%P'@(B00DZ**Y___' -XM10@U````@\046UWI,;3^_Y!5B>6#["C'1"0$Q)@*"(E=](G3B7W\B<>)=?C' -XM!"1@1@D(Z/D=``"%P`^$A@```(D<)(U=[.C6L?[_QT7P`````(D<)(E%[.BT -XM3O__ASH[<`!`.N;B1PDZ%.Q_O_'1"0$,"H("(G#B00DZ%&V_O_' -XM1"0$`````(D<).@18___B1PDB47LZ):U_O_I8?___XM%[(D$).@&+P(`HR!W -XM"@B+1>R)!"3HEL`!`,<$)#$``!#H&K/^_^E7____D(UT)@!5B>575E.![.P` -XM``"+?0B%_W1JBS70F0L(A?9T,XL=P'8*"(7;=0J+#229"PB%R70?BU4(BT(0 -XMABS7H=@H(A?9T"8MU"/9&!01T%8'$[````%M>7UW##[8!_R2%\-P( -XM".@9N/__@<3L````6UY?7<.+70B+0Q"+,(L&)?___W\]````0`^$I@\``(#F -XM!`^$*P\``(M5"(M"$(LPA?9TK(M2!/;""`^%A@(``(#F`@^%1`(``,=$)`@" -XM````QT0D!!`O"0C'!"3T+@D(Z$XE``"+50B`.@$/A90```"+30B+<1"+'L=$ -XM)`0,2`D(B1PDZ,8Q_O^%P`^%5@$``(M&!(7`#X2(!@``BP#'!"3JW`@(B40D -XM!.B1,_[_A<`/A+$!``"+3@B%R0^$8P8``(M=",<%('<*"/31"`B+0Q"+0`2) -XM!"3H]QD``(A#`<=$)`0"````BT,0B00DZ.&W__^!2P0`"```BU4(@#H!#X1L -XM____H2AW"@C'1?``````A<`/A;3^__^+1?"%P'0PBT7P@7@$`/D$"`^$50<` -XM`(M%\(%X!&#V!`@/A$4'``"+1?"!>`2@[00(#X0U!P``BT4(BW`$]\8`(``` -XM=1[WQA`````/A2H'``"+1?"%P'0+9O?&"9@/A!@'``"+50B`.@)T$X'F`00` -XM`'4+BT7PA<`/A,$*``"+10R%P'@-H5AC"0B%P`^$V`T``(M%#(E$)`2+30B) -XM#"3H]NW__X7`#X7""0``H5AC"0B%P`^%2PH``(M%"(MP!,>%'/___P$```#I -XMR@8``,=$)`3D1PD(B1PDZ%@P_O^%P'4JBU8$A=(/A!X%``"+30B!200`$``` -XMQT0D!`$```")-"3HL[;__^E`_O__QT0D!/Q'"0B)'"3H&C#^_X7`#X4&!@`` -XMBT8$A<`/A-P$``"+70B!2P0`@```QT0D!`$```")-"3H<;;__^G^_?__BT4( -XMQD`!!,=$)`0!````B30DZ%6V__^+50B!2@0`"```Z=C]___'!"0`````Z#JU -XM__^+50B+0@B)!"3HS*+^_XL=*'<*"(7;#X24_?__QP0D`````.@2M?__Z8/] -XM__^+712)'"3HPOK__XMU"(M6!.ED_?__BW4(@#X"=`^+11B)-"2)1"0$Z"#B -XM_O_'1"0$$P```,<$)`````#HS+C__\=$)`@!````QT0D!`(```"C1)D+"(D$ -XM).C++O[_QT0D!!$```#'!"0!````Z)NX___'1"0(`0```,=$)`0"````H\R7 -XM"@B)!"3HFB[^_Z',EPH(B00DZ)TT_O_'1"0$$@```,<$)`(```"CX'4)".A8 -XMN/__QT0D"`$```#'1"0$`@```*,$=@H(B00DZ%AV"@@`````BT$$ -XMBU$4@^`@"4($BT4,BUT8B10DQT0D#`````")1"0$B5PD$,=$)`@`````Z`C[ -XM___H\T_^_XMU"(U=Z(M."(M6!(M!!('BI0```(/("`G0B4$$BU48BT4,B5PD -XM#(E4)!"+=1")1"0$B0PDB70D".C%^O__BT4(BW4(BT@,BU8$BT$$@^(Y@\@$ -XM"=")002+51B+10R)5"00BW44B5PD"(E$)`2)#"2)="0,Z(KZ___I[_K__XM% -XM"(M("(7)=%"#XB`)402+10R+51B)#"3'1"0,`````(E$)`2)5"00QT0D"``` -XM``#H3_K__XM-"(M!"/9`!`%T&(M1#(72#X2B^O__]D($`745B?;HZ]7__XM= -XM"(M3#(72#X2'^O__BW4(BT8$@^`P"4($BT4,BU48QT0D#`````#'1"0(```` -XM`(E$)`2)5"00BT8,B00DZ.CY___I3?K__XM="(M+"(7)=%N#XB`)402+10R+ -XM=1B)#"3'1"0,`````(E$)`2)="00QT0D"`````#HK?G__\=$)`3$F`H(QP0D -XM]"X)".CY%@``B00DZ`$5``"%P`^4PH`[!@^4P#C"#X7[^?__BT4(BU`,A=(/ -XMA-KY__^+0`2#X#`)0@2+10R+71C'1"0,`````,=$)`@`````B40D!(E<)!") -XM%"3H0?G__^FF^?__B00DZ%2M__^#Z`&0#X5Z^?__BSTH=PH(A?\/A6SY__^+ -XM30B+01"+`(D$).B\80``A<")A2#___]T"8,X?@^$;PX``(N%(/___XD$).C+ -XM)P(`BY4@____B10DB%`20H@4(='R+1?"!>`3@H04(='"+1?"!>`30H@4(=&2+1?"! -XM>`1`M04(=%B+1?"!>`20H04(=$R+1?"!>`3PI@4(=$"+1?"!>`3PI04(=#2+ -XM1?"!>`3@GP4(="B+1?"!>`1@H`4(=!R+1?"!>`0@HP4(=!"+1?"!>`10?`4( -XM#X7J]___BUT(@#L!#X4J^?__BT7PA<`/A1_Y__^%T@^%%_G__Z'`=@H(A<`/ -XMA`KY__^)'"3H;.O__\=$)`0P*@@(B<.)!"3H.JW^_XD<).@2Y`$`B1PDZ(JL -XM_O_IV_C__Y"-="8`QT0D!'0\"0B)'"3H_"G^_X7`#X7)_O__BT8$A<`/A+[^ -XM__^+10B!2`0`(```QT0D!`$```")-"3H4[#__^G@]___BW4(@68$__?__^F\ -XM^/__BT7PA%'/___P````"AZ'8*"(7`#X4=`@`` -XM]\8`!```#X41`@``]\8``@``#X7<````BU4(BT((A<`/A.\)``"AM'8*",=$ -XM)`0`````B00DZ-JR__^AS)<*",=$)`0!````B00DZ,6R__^A!'8*",=$)`0" -XM````B00DZ+"R__^+30B+40B)R.@3]?__B<.)!"3H"24"`(D$).A!M/__B1PD -XMBL_O_'1"0$`````(D\).A'K/__A<")PP^( -XMI@H``(D\).A%J_[_QT0D!`,```")'"3H82C^_\=$)`0$````B1PDB40D".A- -XM*/[_QT0D!`````")'"3H<;+__XM%"(M0#(72#X2;!@``Z'[T__^)PXD$).AT -XM)`(`B00DZ*RS__^)'"2)Q^@"M@$`QT0D!#`J"`B)/"3HD```#'1"0$Q)@*",<$),`\"0CH0!$``(7`#X2B]/__QT0D!,28"@C' -XM!"3T+@D(Z(01``")!"3HC`\``(7`B<,/A'ST__^A@)@*",=$)`R]W`@(QT0D -XM"`(```#'1"0$$0```(D$).B="/__B5PD!(D$).@Q`@(`Z4;T__^+=0B+5@3V -XMP@%T"*-L=@H(BU8$BQWH=@H(A=MU)O;"!'0ABU40BP*)!"3H':S__XM-$(M! -XM!(D$).@/K/__BUT(BU,$]L((#X7Z\___H5AC"0B%P`^%2@0``(/B`0^%Y//_ -XM_^A%[?__D(UT)@#IU?/__^A62/[_C;8`````Z<7S__^+1?"!>`2P@04(#X6/ -XM_/__Z5_U___'1"0(`````,=$)`1@8PD(QP0D`P```.C6)?[_BUT(QP588PD( -XM`````(MS!,>%'/___P$```#I6?S__XM%#(7`>!B+/5AC"0B%_W4.BS4H=PH( -XMA?8/A"`(``"-7=B)'"3HS2K^_XD<),=$)`04````Z,TE_O^)'"3'1"0$`@`` -XM`.B])?[_C47(B5PD!(E$)`C'!"0!````Z%8E_O^AY'4)"(L5E'<*"(L-P)@* -XM"(L=Z'8*"(LUM'8*"(F%)/___Z',EPH(B94H____BQ4$=@H(B8TL____BPU$ -XMF0L(B9TP____BQW4EPH(B;4T____BS7@=0D(B84X____H?R9"PB)E3S___^+ -XM%6QC"0B)C4#___^+#6AC"0B)G43___^+'61C"0B)M4C___^+-6!C"0B)A4S_ -XM__^A6&,)"(F58/___XF=6/___XF-7/___XFU5/___Z-<8PD(QP7$=@H(```` -XM`,<%3)D+"`````"+'>A="0C'!;AV"@@`````QP51U"0@!A<`/A`T%``"%V\<% -XME'<*"``````/A!0'``#'1"0$`0```,<$)`(```#H;"C^_\=$)`0!````QP0D -XM`P```.A8*/[_BT4,A;Q__^- -XM7@2)'"3H+R/^_XDT)(E<)`2-!(4$````B40D".AX)_[_BW4(BU8$Z2WP__^A -XM!'8*"(D$).@0(_[_H?R9"PC'1"0(`````,=$)`0"````QP0D`@```*-LF0L( -XMZ,HA_O_IH?K__\=$)`@`````QT0D!&!C"0C'!"0#````Z,DA_O^+=0C'!5AC -XM"0@`````BU8$Z87[___WQ@@````/A"@"``#'!"0!````Z&"G__^+312+002) -XM!"3HCB+^_\<%?)@*"`````#I#_K__\=$)`0)````B3PDZ!.E__^#^/^)PP^% -XMR_G__^E\^?__C47(QT0D"`````")1"0$QP0D`P```.A$(?[_QP0D,````.B< -XMH?[_BX4D____BY4H____BXTL____B[4P____H^1U"0B+A33___^)%91W"@B+ -XME3C___^)#<"8"@B+C3S___^)->AV"@B+M4#___^CM'8*"(N%1/___XD5S)<* -XM"(N52/___XD-!'8*"(N-3/___XDU1)D+"(NU8/___Z/4EPH(BX5<____B17@ -XM=0D(BY58____B0W\F0L(BXU4____B35L8PD(HVAC"0BA7&,)"(D59&,)"(D- -XM8&,)"*-88PD(H4R9"PB)!"3H1:X!`*'$=@H(QP5,F0L(`````(D$).@NK@$` -XMH;AV"@C'!<1V"@@`````B00DZ!>N`0"A7)D+",<%N'8*"`````")!"3HP*?_ -XM_XMU",<%7)D+"`````")'"2)="0$Z.?;__^-1_G__\=$)`3$F`H(QP0DH$$)".@P"@``A<`/A/WW__^+ -XMA5#___^%P`^%)@(``(V%:/___XE$)`2)/"3HA"+^_X7`#XC5]___#[>%!U"0C'1"0(`````,=$)`0"````QP0D`0`` -XM`*-\F`H(Z"$?_O_IS/?___?&!`````^%S````/?&(````'0-@SW4EPH(_P^$ -XM30,``,<$)`````#HTZ3__Z%$F0L(B00DZ`(@_O_'1"0(`````,=$)`0"```` -XMQP0D`````.C&'O[_Z83V___HG"7^_XG#Z7?Z__^#/=27"@C_#X5_^___BU4( -XM]D($(`^$ -XM_O_II_;__\<$)`````#H'*3__XM=$(L#B00DZ$L?_O^+`XD$).@%I/__BT,$ -XMB00DZ/JC___IU/7__\=$)`0`````QP0D`0```.C-(O[_BT4(BW`$Z?/Z___' -XM1"0$`0```,<$)`$```#HKB+^_XM="(MS!.G+^O__Z$XA_O^+`(D$).CT'O[_ -XMB7PD!,<$)#8```")1"0(Z#2>_O_I,O7__\=$)`@`````QT0D!&!C"0C'!"0# -XM````Z*\=_O_'!5AC"0@`````Z5_Y___H^R#^_XL`B00DZ*$>_O^)?"0$QP0D -XM-@```(E$)`CHX9W^_^FR_?__C5W8B1PDZ*TB_O_'1"0$%````(D<).BM'?[_ -XMQT0D"&!C"0B)7"0$QP0D`0```.A%'?[_QP588PD(`0```.F>]___B<+'1<@` -XM````@\($QT7,`````,=%T`````"+0`2%P`^%F@```(G6QT0D!,28"@C'!"20 -XM+PD(Z*\'``")1"0$C47(B00DZ)`5`@"-7?X__^+10BS`?9`!"`/A7KX__^-="8` -XMZ4_X__^#^"\/A%W___^)UH/&!(L&AZZ7H8Q_^_XL`A<"-=@!U98M="(MS -XM!,>%'/___P$```#IA_+__P^VP(/(@.GC^/__Z&4B_O^)QNG8]___QP0D```` -XM`.B&H?__QT0D!`````#'!"3,L0@(Z%*?___I3//__XU%R(E\)`2)!"3H/A0" -XM`.EX____Z/`>_O^+`(D$).B6'/[_QT0D!+'<"`C'!"0V````B40D".C2F_[_ -XMBT4(BW`$QX4<____`0```.G[\?__C;8`````C;PG`````%6)Y8/L",<$)`$` -XM``#HNB#^_Y"0D)"0D)"0D)"0D)"058/X"8GE4XG#=A&ZSH#B=#H -XMY/___XG8NLW,S,R+#71C"0CWXHU!!,'J`XT4D@'2*=.-4S")$5M=HW1C"0C# -XMC70F`(V\)P````!5B>575E.)PX/L"(E-[.LFQT,8`0```+@!````C70F`(7` -XMBU7PB?L/E,`/ML`[1>P/A9H```"+>Q2%_P^$CP```#'`.5\0#Y3`.U7LB47P -XM=!^+0QB%P'2X@_@!="B#^/]UOC'`QT,8`````.NSC78`BT,8A12%P(E#$'0&BT$,B5@4B5D, -XMB4L4BT7PB4R'#(M!#,=`&`$```"X_____\=!&/_____I4O___XGV@\0(6UY? -XM7<.#^`%TA8/X_P^%.O___XMS#(M6&(72#X7_````BT80B7X4A<")0PQT!HM& -XM$(E8%(E>$(ES%(M%\(ETAPR+1A#'0!C_____N`$```#'1A@!````Z?'^__^# -XM^@$/A(,```"#P@$/A=_^__^+<0R+012+5A")1A2+0Q"%THE0#'0)BU80BT,0 -XMB4(4BT,0B480B7`4BT,4B7,0B484BT8,A<")0Q!T!HM&#(E8%(E>#(ES%(M% -XM\(ETAPPQP(M6#(-^&``/GL"#Z`&)0AB+1AB+5A#!Z!^)0A@QP,=&&`````#I -XM9?[__XM!#(EY%(7`B4,0=`:+00R)6!2)60R)2Q2+1?")3(<,BT$,QT`8```` -XM`#'`QT$8`````.DM_O__@_H!=$&#P@$/A1_^__^+1A")?A2%P(E##'0&BT80 -XMB5@4B5X0B7,4BT7PB72'#(M&$,=`&``````QP,=&&`````#IY_W__XM.$(M& -XM%(M1#(E!%(M##(72B5`0=`F+40R+0PR)0A2+0PR)00R)2!2+0Q2)2PR)012+ -XM01"%P(E##'0&BT$0B5@4B5D0B4L4BT7PB4R'##'`BU$,@WD8``^>P(/H`8E" -XM&(M!&(M1$,'H'XE"&#'`QT$8`````.EM_?__C;8`````C;PG`````%6)Y5=6 -XM4X/L'(M%"(M]#)")QHM`#(7`=?>+5A2%T@^$B@```(5^"'1?H91W"@B%P`^% -XM@````(L&B00DZ%"9__^)PXM&!,<$)`S="`B)1"0$Z&OS`0"#ZP%T=\<$)"@` -XM``#H>K;__XL&B00DZ*"D___'!"0I````Z&2V___'!"0*````Z%BV__^+1A"% -XMP'6!BT84.W`0=0J)QHM&%#MP$'3VB<:+5A2%T@^%=O___X/$'%M>7UW#C47P -XMB00DZ'\+`@"-1?")!"3H!)K^_^EE____BP:)!"3H-:3__^N?C78`58GE5E.# -XM[!"+70B%VP^$W````(L3@_HKB=`/A*`````Q]H/X+8G"=&WWP@```$`/A;8` -XM``"#^G\/AZT```")V3';]@25O5$)"`1U%^F:````@_I_=Q^#P03V!)6]40D( -XM!'02C02;C5Q"T(M1!/?"````0'36_O^+ -XM$^EI____BT,$,?:-2P2%P`^$6?___XG+Z4G____V!)6]40D(!&:^`0`/A57_ -XM___KO3';ZX;'!"0)```0Z*66_O_I$____U6)Y5.)TX/L!,<"`````(M(!(U0 -XM!,<``````(7)=$_WP0```$!U3(/Y?W=']@2-O5$)"`1T/8L#ZR*-M@````#W -XMP0```$!U*X/Y?Y"-="8`=R'V!(V]40D(!'07C02`@\($C41!T(D#BPJ%R772 -XMC5H$ZPB#^5V-6@1T#,<$)`@``!#H&9;^_XG8@\0$6UW#D%6)Y5=64X/L#(M% -XM#(M]"(M8#(7;="Z+-^L1C;8`````AR)5"0$ -XMB3PDZ*P5_O^%P'7<@\0,B=A;7E]=PXGVBUL,Z]*-="8`C;PG`````%6)Y8/L -XM"(M5"(M%#(72="*%P'0>B40D!(D4).B`____A6#[!C'1"0$Q)@*"(E=](EU^(G&B7W\B=>)!"3H -XM/?___X7`B<-T+87_?@Z+`XD$).A)EO__.<=^#,<$)"L``!#H*97^_XG8BW7X -XMBUWTBWW\B>Q=PXDT).A2G/__Z\E5B>53@^Q$BU4(C5W(B1UT8PD(A=)Y$8U% -XMS/?:QT7(+0```*-T8PD(B=#H4?G__Z%T8PD(QP``````B1PDZ'X.`@"#Q$1; -XM7<.0C;0F`````%6)Y5=6B<93@^P,BP")!"3H:YO__XM&!(D$).@0H@$`BTX0 -XMA -XM7UWI_/C__XM.#.O'BUX4.W,0#Y3`#[;XB4R[#.O)D(UT)@!5B>6#[!B)=?R+ -XM=0B)7?C'1"0$Q)@*"(DT).CQ_?__A<")PW00BW7\B=B+7?B)[%WI*____XDT -XM).@CF___Z^:058GE5HG&4X/L$(M:#(7;=0GK+XM;$(7;="B+2PR%R9!T#8G: -XMB?#HU?___X7`=16)="0$BT,$B00DZ,))__^%P'31B=B#Q!!;7EW#D(UT)@!5 -XMB>575E.#[`R+=0B+?0R+1@2%P'1*,=OK'(VV`````(M`!,<$)(,``!")1"0$ -XMZ%V3_O^+1@2)^NAS____AB$_O__@\,!D.OAA=MT$H/&!(M& -XM!(7`=;:#Q`Q;7E]=PXM&!(D$).CM#@(`HR!W"@CKW(VV`````%6)Y5=64X/L -XM#(M=",=$)`3$F`H(QP0DX$8)".C@_/__QT0D!,28"@C'!"2`,0D(BF5\?[_D(UT)@#'1"0$ -XMQ)@*",<$)(`Q"0CHS/K__X/X`1G`]]`A!8AW"@CKBZ'4F0L(HTQW"@CISO[_ -XM_\<%C)@*""$```#'!42:"PA>````Z1K^__^0C70F`,<%-)H+"#X```#'!8QW -XM"@@C````Z3G^__^-M"8`````Z-N5``#IR+.NL5A<`/G\`/ML")1?"+1(8,A2)>Q3'0Q@`````QT,0```` -XM`(E#"(GXQT,,`````(M5\.@O]/__BU7HB1.)50B#Q!Q;7E]=Z?LI__^)7"0$ -XMQP0D@P``$.A+C_[_Z63___^-M@````!5B>575E.#[#R+712+10B+50R+31") -XM7"+7=2+1(L$@\$! -XMB4W@A# -XM1>P!BTW@.4WL?3V+?>R%_W[MBUWLBT74BSR8ZZ;V1")UC'`@^D! -XMB4WDZQ&-6`$[7>`/C,(```"#Q@2)V#M%Y'SJBW7@,-=@"+7=2+ -XM!(N%P'0&B023@\(!@\$!.TW@=>@[5>!]%XM-U(T$D<<``````(/"`8/`!#M5 -XMX'7O@V7,GXM=S(M%T(M5U(M-V(E=%(E%$(E5#(E-"(/$/%M>7UWI=/W__XD4 -XM).B,*/__A<`/A)[^__^)1"0$BT74B00DZ#4\__^%P(G#=':+3=2)#"3H5)3_ -XM_XE=U.EV_O__B3PDZ/2:`0"+5=S'`@````#I__[__XE=\(EUZ(M^_(7_=!F+ -XM5>B+`H7`=!")?"0$B00DZ#`-_O^%P'06@T7P`8M-X(-%Z`0Y3?`/C03____K -XMRHD\).BBF@$`QT;\`````.O9BU74B10DZ-Z3___'!"0Q```0Z!*-_O_I;O__ -XM_XVV`````(V\)P````!5B>6#[!C'!"0(````Z"Z;`0"+50S'0`0`````B1"+ -XM51")1"0$BT4(QT0D",28"@B)5"0,B00DZ(3]___)PXGV58GE@^P8BT4,B5WT -XMB77XBW40B7W\BWT(B00DZ%`&`@#'1"0$,"H("(G#B00DZ'Z/_O^)="0(B5PD -XM!(D\).A^____B1PDZ!:/_O^+=?B)70B+??R+7?2)[%WILH[^_XGV58GE@^P8 -XMBT4(QT0D"`(```#'1"0$^&\)"(D$).A_____R<.-M@````"-O"<`````58GE -XM5XG'5E.#[!S'1"0$E#()"(D$).CQ"_[_A<`/A=,```#'1"0$Q)@*",<$))0R -XM"0CHZ?7__X7`#X1/`0``BP"-=>C'1>@`````QT7L`````,=%\`````"%P'1+ -XMBQ"%TG1%B7UW#QT0D!``_"0B)/"3H!@O^_X7`=2C'1"0$Q)@* -XM"(D\).AF]?__BQ")%8R8"@B+0`2C1)H+"(/$'%M>7UW#QT0D!$`_"0B)/"3H -XMR@K^_X7`="#'1"0$@#\)"(D\).BV"O[_A#^G]W4O8$E;U1"0@$=$BA<&,)"(/!!(T$@(U$0M"C<&,) -XM"'7-H7!C"0B%P`^/T?O__^LMQT0D!&!`"0B)/"3HH0;^_X7`=2C'!6QW"@@! -XM````Z:S[___'!7!C"0@`````QP5P8PD(&@```.F3^___QT0D!``V"0B)/"3H -XM90;^_X7`=0KHX$G^_^EU^___QT0D!.!&"0B)/"3H1P;^_X7`=0SHTBH``(GV -XMZ57[___'1"0$H$D)"(D\).@G!O[_A@#BP``C78`Z97Z___'1"0$P#0)"(D\).AG!?[_AA"Y?[_B?;H -XM&^;^_^EP^O__QT0D!,P^"0B)/"3H0@7^_X7`#X58^O__QP7T8`D(`0```.E) -XM^O__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+10B+<`2%]G1.B30DZ-:&___' -XM1"0$Q)@*"(DT).@&[___A<")PW0WBP"%P'0QBP"%P'0[QT0D!`$```"+`XD$ -XM).A2B___@\00B?!;7EWIM?C__Y"-="8`OB0V"0CKLXDT).@1C/__BP.+`(7` -XM=<7'!"0*```0Z+V$_O_KMXUT)@"-O"<`````58GE@^PXB5WT@_@]C5W4B7W\ -XMB<^)=?B)7?`/A(````"+"H7)=6"-3=B)WHU5W(U=Z(/X/(E%Z,=%[`````") -XM'G12@_@^=$V).8U%\,<"`````(D$).A&U/[_B<.+1?"+`(7`=`S'!"0A```0 -XMZ#^$_O^)'"3H)^___XM=](MU^(M]_(GL7<.)5=2-==B-3=R-5>#KFHD9B=&# -XMP@3KJHUV`(U5V(G9ZZ")]HV\)P````!5B>6#[!B)=?R)UHE=^(L8A=MT((D$ -XM).B4_0$`BQ:)PXU"_(D&BT+\B00DZ$"1`0"+!HD8B30DZ+33_O^)!"3HK.[_ -XM_XM=^(MU_(GL7<.)]E6)Y8/L&(E=](G3B7W\B77XB4WPZ"?N___V0`@!B<=T -XM$XM`!,<$)(,``!")1"0$Z'R#_O^+!\'C`HMT`_S'1"0$,"H("(DT).A3AO[_ -XMBP?'1"0$`@```(/H!`'#BT7PB00DZ`DS__^)`XDT).B/A?[_BUWTBW7XBWW\ -XMB>Q=PXGV58GE5U93@^P\BT4(@\`$B44(BQ"#P`2)10B%THE5S`^%2@$``.GS -XM`@``C;8`````BT4(BQB%VP^$=`,``(/`!(E%"(L[A?\/A8,!``#'!"0E```0 -XMZ->"_O^-M"8`````BP.%P'4-BT4(BP"%P`^$5P,``(M%S(D$).AB_`$`QT0D -XM!#`J"`B)1=")!"3HCX7^_X/_/0^$0@(``(LSC5,$B57@QP0DZMP("(ET)`3H -XM7H/__X7`#X1S`@``.?YU!XM#!(7`=`S'!"0F```0Z%^"_O_'!"08+PD(Z`/\ -XM`0")P\=$)`0P*@@(B1PDZ#&%_O^+==2%]@^$A@$``(M5\(M%T.B[[/__B=F+ -XM$(M%\(M4@OR)^.AI_?__QT0D!#`J"`B)PXD$).CWA/[_BU7PB=F+1=#H2O[_ -XM_XD<).B2A/[_B1PDZ#J$_O^+1=#HLO7__XM-T(D,).@GA/[_BT4(BQ"%THE5 -XMS`^$O`$``(/`!(E%"(M-S(LY]\<```!`=2F)^`^VP#W_````B478#X?U`0`` -XMH>!="0B+5=B+1)`T]L0!=4"#_U]T.XMUS,<$)!T``!#H?('^_XL^QT74```` -XM`(/_6P^$H````(7_B?,/A&#^___'`P````"#PP3I@O[__XGVBPW@70D(B?N+ -XM=7UW#B7PD!,<$)-3'"`CHTX#__X7`="`Y_G00QP0D)@``$(UT)@#H -XMVW_^_\<$)````!#HSW_^_X/^/70,QP0D)@``$.B^?_[_BT7@C54(Z+/[__^) -XMP^E;_?__B00DZ+#__?^-="8`Z0;^__^+3=#'1"0(`@```(E<)`2)#"3HA/+_ -XM_^E?____B?/IE?S__XM-V(D,)(GVZ'?__?_I>/[__\<$)"4``!#H6G_^_^F8 -XM_/__D(UT)@!5B>575E.#[$R+10B+>`2-<`3'1=P"````QT7(`````,=%S``` -XM``"%_P^$?@```)")/"3'1"0$2#0)".CL_OW_B?HQ_X7`=1B#Q@2+%H72#X2' -XM````QT7<`0```&:_`0#'1"0$H#@)"(D4).B\_OW_"T7,=6.#Q@2+'L=%R`$` -XM``"%VXG:=""_`0```,=$)`2L.`D(B1PDZ)#^_?\+1"-M"8`````BP_WP0`` -XM`$")3=AU,`^VP3W_````B470#X>``@``H>!="0B+5="+1)`T]L0!#X7S```` -XM@WW87P^$Z0```(G^QP0D'0``$.@%?O[_BP8QVX/X6P^$_0$``(7`#X18`0`` -XMQP8`````@\8$BQ:%TG42BTW@BQ&%TG0)@SHH#X1,`@``@_@]#X4R`@``QT0D -XM!%`["0B)-"3HDOW]_X7`#X70````A=L/A0$"``"+7>"-=@#K`X/#!(LSA?8/ -XMA#P!``"#/BEU[L<#`````(M%X(D$).@KB?__BTW(A")^.@2\?__BT7@BSB% -XM_P^$I?[__X/`!(E%X.G:_O__BPW@70D(B?Z+7=B)3=3K)HM5U(M$@C3VQ`5U -XM"8/[7P^%RP```(/&!(L>]\,```!`#X6Z````#[;#/?\```!VT(D$).CN_/W_ -XMB?;KRX7;#X3P````B30DC78`Z'OV`0#'1"0$,"H("(G#B00DZ*E__O^+5?") -XMV8GXZ/WX__^)'"3H17_^_XD<).CM?O[_Z4____^+5>"+`H7`#X3%_O__QT0D -XM!#@["0B)!"3H5_S]_X7`#X6M_O__@T7@!(M-X(L!A<`/A)S^__^#P02)QHE- -XMX.F/_O__QT0D!"D```#'!"0R```0Z$%\_O^+,^FI_O__.?O````BU70BTW4BT21-/;$`0^%#?[__X-]V%\/A??]__^+!C';@_A; -XM#X4#_O__B?"S`8U5\.A/Y?__B<:+`.GN_?__B30DZ([U`0"+3<2)/"2)3"0( -XMB40D!.C+[O__Z7W^__^+5#I -XMI_W__XM-T(D,).AW^_W_Z4O___^0D)"0D)")P8L"50$!B>6+000#0@0]/T(/ -XM`(E!!'X*@P$!@6D$0$(/`%W#C70F`(V\)P````!5B>56BW4,4XM="(GRB=CH -XMO/___XU#"(U6".BQ____BT80.T,0?@.)0Q"+1A0!0Q2+1A@!0QB+1AP!0QR+ -XM1B`!0R"+1B0!0R2+1B@!0RB+1BP!0RR+1C`!0S"+1C0!0S2+1C@!0SB+1CP! -XM0SR+1D`!0T"+1D0!0T1;7EW#C70F`%6)Y8M5#(M-$%.+70B+`BL!B0.+0@0K -XM002%P(E#!'D*@RL!@4,$0$(/`%M=PXUV`%6)Y8/L*(E$)`2-1?B)5"0(B00D -XMZ+?___^+3?RZTTUB$,<$)!#="`B)R/?JBT7XP?D?P?H&*") -XM5=R+3@R)3="+0`PIP8G(]^^)3=#!?=`?BT8$B=&+5>#!^0PK3=")1="+4@0I -XMT(E%T/?OP7W0'XL&`T8(P?H,*U70C101BTW@*P$K00AKP&0!PHE5Y,=$)`3$ -XMF`H(QP0D=#P)".B9X___BU7AT'8L!AEDE___ -XMC70F`(/H1#PS=RD/ML#_)(54W0@(BTW@BT9`*T%`C;8`````B40D!,<$)";= -XM"`CH$-0!``^V0P&->P'KG8M-Y#'`AB->P&)!"3HAYG__P^V0P'I9/___XM5X(M&)"M").NCBU7@BT8L -XM*T(LZYB+5>0QP(72=(^+3>"+5A0#5AP#5A@K41PK410K41B)T,'Z'_=]Y.EM -XM____BU80B=#!Z!\!T-'XZ5S___^+3>"+1C`K03#I3O___XM5Z#'),<"%TG1# -XMVT7DNF=F9F;8#23>"`C9??(/MT7RVT7HWOFT#&:)1?#9;?#;7>S9;?*+3>R) -XMR/?JBP&)3"0(QP0D&MT(".@)TP$` -XM#[9#`>F6_O__BTW@BT8@*T$@Z=+^__^+1=2->P&+5=CH)/W__P^V0P'I"+1B@K0BCIE_[__XM]Y#'`A?\/ -XMA(K^__^+3>"+5A0K412)T,'Z'_=]Y.ET_O__BU7@BT9$*T)$Z6;^__^+5>"+ -XM1CPK0CSI6/[__XM5X(M&."M"..E*_O__BTW@BT8T*T$TZ3S^__^-M@````"- -XMOP````!5B>53@^P4BT4(BU@$C5`$N`0```"%VW0)BT($ARX````B5WXC5VH -XMB77\C;5@____B5PD!,<$)`````#H9/K]_XET)`3'!"3_____Z%3Z_?^)="0$ -XMC77PB1PDZ/GZ__^)-"3'1"0$`````.A%]_W_B70D"(E<)`3'1"0,J)D+",<$ -XM)"!V"@CHS?O__XM=^(MU_(GL7<.-=@!5B>53@^QDC5VTQT0D!`````#'!"2H -XMF0L(Z/[V_?_'1"0$('8*",<$)`````#HVOG]_XE<)`3'!"3_____Z,KY_?^) -XM7"0$QP0D('8*".AN^O__@\1D6UW#D)"0D)"0D)!5B>575E.#[`R+50B+0A"% -XMP'1(B=&+4@B+.87_="N-')`Q]NL#@\,$BP.%P'0.B00DZ,J"`0#'`P````"# -XMQ@$Y_G7BBU4(BT(0B00DZ*^"`0"+30C'01``````@\0,6UY?7<.-M@````"- -XMO"<`````58GE5U:)SE.)TX/L+(/Y!HE%X'8%O@8```"-?>Z-##>)^NL&@\(! -XM@\,".)7?2)=?B)1>R+0@@#`HT$A0@```") -XM1"0$BT(0B00DZ"&#`0")1?"+1Q"%P'0\BQ^+1?"+5>R)WH/#`0-W"(E'$(D4 -XM)(TTL.AY?___B0:+1?")'P-?",<$F`````"+7?2+=?B+??R)[%W#BT<(A*V+5?`QR8/!`<="_`````"#Z@0YR'7OP>`"*47P -XMZX^-M@````!5B>6+10R+`(E%#(M%"(L`B44(7>GC]?W_C;0F`````%4QP(GE -XM5E.#[""+70B+=0PY\W1=BU40A=)T78'[_P````^'Z0```*'@70D(BYR8-`0` -XM`('^_P````^'P0```*'@70D(B[2P-`0``(U%Z(E$)`2-1?")7?")=>C'1>P` -XM````QT7T`````(D$).@[]_W_@\0@6UY=PX'[_P```'=PH>!="0B+1)@T]L00 -XM=!N!_O\```!W2J'@70D(BU2P-&:%TK@!````>,B!^_\```!W;Z'@70D(BT28 -XM-&:%P'F,@?[_````=V.AX%T)"(M4L#2`YA"X_____P^$;?___^N1B30DZ!3S -XM_?^)PNNSC70F`(D<).@$\_W_ZX^-M@````")-"3H!/7]_XG&Z3S___^0B1PD -XMZ/3T_?^)P^D4____D(D<).C4\OW_ZY")-"3HRO+]_XG"ZYJ-=@"-O"<````` -XM58GE5U:)QE.)TX/L+#G*B4W8R)!"3H\.\!`&:!_S^`B47@="QF@?];@`^$@````&:!_RJ` -XM="F+1>P[1?!U%P-UX#E=V'>H,<"`/@`/E,#K5X`^`'7I@\0L,"-1>S'1"0(!@```(ET)`2)!"3H@>\!`(E%X(M% -XM"(G:B00DBTW8B?#H//___X7`=,BX`0```(/$+%M>7UW#@#X`=*$/MQ,/M\([ -XM10@/E,`/MOB%_P^%P@```,=%W`````#K"8VV``````^W$V:!^EV`#X2"```` -XMB=JY!@```(U%\.AS_/__C1Q#9H$[+8!T$8M%\#M%['71QT7<`0```.O(@\," -XMN08```")VHU%Z.A&_/__QT0D"`````"-'$.+1>R)1"0$BT7PB00DZ%G]__^% -XMP'^5QT0D"`````"+1>B)1"0$BT7LB00DZ#O]__^%P`^/<____^N@D+D&```` -XMB=J-1?#H\?O__SE]W`^$T_[__P-UX(T<0^FT_O__@\,"#[<3Z3/___^)]E6) -XMY5=6B<93@>R\````B95<____B8U8____#[<"ZQ60A?\/A1(!``!F@_@O=%2) -XMG5S___]FAHM6!&:#^"^)E6#___]T0#'_9H7`BYU<____>"4/OL"#PP*) -XM1"0$B30DZ"GG`0`/MP-FA8!`(N57/___P^W`F:#^"]TVF:%P'6&C5V( -XMB30DZ#+G`0")7"0$BP:)!"3H8._]_\=%A`````"%P'55BX58____]D`,"'0K -XMBQ:+1@2`?!#_+W0?#[=%D"4`\```/0!````/A,7UW#BX5@ -XM____B48$BY58____BT(,)0`0``"#^`$9P(/@PV8MHG]FB85H____B30DZ(3F -XM`0#H>_+]_\<``````(L&@#@`#X7&````QP0DDAT)".C>\?W_B<>%_P^$P@`` -XM`(M6!`^WA6C____'180`````B95D____B854____B3PDZ!_U_?^%P'1Q@'@( -XM+G4,BY5<____9H,Z+G7BBY5D____@\`(B58$B40D!(DT).CUYP$`B30DZ/WE -XM`0"+E53___^)V8N%9/___P,&B10DBY5<____Z"_\__\Y10ATGXM%"(G:B00D -XMBXU8____B?#HU?W__X7`B46$=(.)/"3H,O7]_XM%A('$O````%M>7UW#B00D -XMZ!SQ_?^)QX7_#X4^____BY58____BUH4A=MT(NB`\?W_BP")1"0$BP:)!"3_ -XMTX7`=`S'183^____Z:/^__^+A5C____'180`````]D`,!`^$C/[__^O;B5PD -XM!(D4).BN\/W_A<`/A5C^__\/MT60)0#P```]`$````^%1/[__\=$)`0O```` -XMB30DZ+;D`0")-"3H#N4!`.DG_O__B?:-O"<`````58GE5U93@^QLBT4(]D4, -XM`8E%O'4:BU44QP(`````QT(0`````/9%#`(/A`P#``"+10R+?12`Y/Z)1PR+ -XM11")1Q2+!XE%I(M'#,='!``````E`!```(/X`1G2@^+#9H'JHG^#^`&+10@9 -XM_X/GPX/'7F:)5:B)?<")!"3HS?/]_XU$``*)!"3HM7L!`(M5"(E%Q`^V.HGX -XM#[;(,<`[3<`/E,"%P(E%R'02@\(!B56\BU4(#[9Z`8GX#[;(BU4,@>(`(``` -XMB56@#X0!`@``B?J+7<2$T@^$F````(VT)@````")^HM%O`^VTHE5T(M5O,=$ -XM)`0&````@\`!B474B10DZ%CM_?^#^/^)Q@^$`@$``(/X`0^.#0$```^W?="- -XM0P(QTHU._V:).XE%S(VV`````(M]O`^V1#H!@,Q`9HE$4P*#P@$YRG7IBT74 -XMBU7,C40P_XU4`````` -XMQT7D`````&:#.@`/A0P"``"+512+`CM%I`^$-0(``/9%#"`/A/\```"+1<0Q -XMVXD$).AI>0$`@\1LB=A;7E]=P\=$)`0`````QP0D`````.@W[/W_B?@\7`^$ -XM&`$```^W?=!FB3N#PP*)7_XJ@`^$ -XM)/___V;'`RJ`@\,"Z1?___\/MP$/M_@[?NGB?B+7<2$P`^$E_[__XM5O(M= -XMQ&:)"P^V0@&#PP*#P@&$P`^VR'7LZ7C^__\Y1:0/A/C^__^+510K1:3'1"0, -XML*@&"(M]%,=$)`@$````B40D!(M2"`%5I(M%I,'@`@-'$(D$).CVZ?W_Z;_^ -XM___'0@@`````Z>C\__^+5=0/M@*#P@&)5=2$P`^$YP````^VP(#,0&:)`X/# -XM`HE=S.GL_?__A=(/A![___^+112-4P*!2`P``0``9L<#6X`[?<`/A-<````/ -XMMP'K"V:#^%UT1`^WP(G.9B7_`&:)`@^W!H/"`HU.`F:#^"UUWP^W7@*-3@)F -XM@_M==-@/ML-FQP(M@(U.!F:)0@(/MT8$@\($9H/X776\C5H"9L<"78#IDOW_ -XM_XM]R(U%W(M-%(D\).@1^?__B<.+1=R)!"3H9'+]___V10P0="6+3:"%R75'BU44BT4(Z`/U___IN/W__X-MU`&X -XM7$```.D1____]T4,``(```^$D_W___9"#0$/A8G]___KP@^W5:AFB5,"C5,$ -XMZ1G___^+?0B)/"3HR._]_X/``8D$).BQ=P$`#[87A-*)PXG!="J)^.L2#[80 -XM@\`!B!$/MA"#P0&$TG04@/I<=>F#P`$/MA"$TG7B@^@!Z]K&`0"+512)V.AO -XM]/__B1PDZ)=V`0#I'/W__Y"058GE5U93@>RL`@``BU4(BP*#^"`/A/8!``"- -XMM@````"#^`D/A.W'`@````"+A5C]__^+$(72#X1C`0``QT0D!)1V"@C' -XM!"3@00D(Z&/2__^%P`^$>0$``(L5+)H+"*$HF@L(B960_?__BQ4DF@L(B86, -XM_?__H2":"PB)E8C]__^+%1R:"PB)A83]__^A&)H+"(F5@/W__XL5%)H+"(F% -XM?/W__Z$0F@L(B95X_?__BQ4,F@L(B85T_?__H0B:"PB)E7#]__^+%02:"PB) -XMA6S]__^A`)H+"(F5:/W__XF%9/W__^@L9_[_QP0D`)H+"(F%7/W__^C&Z/W_ -XMA<`/A"@#``"+A5S]__^)!"3HM&G^_XN5D/W__XN%C/W__XD5+)H+"(N5B/W_ -XM_Z,HF@L(BX6$_?__B14DF@L(BY6`_?__HR":"PB+A7S]__^)%1R:"PB+E7C] -XM__^C&)H+"(N%=/W__XD5%)H+"(N5`0"+A5C]__^-5>B)%"2)1"0$Z!S>`0"+ -XM7>RX0]X(".L4B?:+!+7`W@@(@\8!A<`/A%?___^)7>R)!"3HL^,!`(E$)`2- -XM1>B)!"3HY-T!`(U5Z(D4).C)VP$`BT7HB00DZ%[A`0#'1"0$`````(D$).B^ -XM:/__H]PD"0B#P`%TI(U=L,=$)`1`'@4(C768QP0DW"0)".A*:/[_C46@QT68 -XMP+@&"(D$).@DZOW_B5PD",=%G`````")="0$QP0D`@```.@)Z?W_B1PDC5W8 -XMQT0D!)`>!0CH"FC^_XU%R(E<)`B)1"0$QP0D`@```.B?Y/W_B1PDC9V8_?__ -XMQT0D!&`>!0CHW6?^_^L5B40D"*',EPH(B5PD!(D$).@F9___H=PD"0C'1"0( -XM``(``(E<)`2)!"3HK6?__X7`?\['!"3<)`D(Z/UF_O_I?OW__X/X.@^%4_[_ -XM_^EA_O__BY58_?__QT0D!.!!"0C'!"0"````B50D".A\FP$`Z;7\__^+E5C] -XM___IS_O__\<"+@```(N%8/W__\=`!`````#I)/[__\<$)%3>"`CH2.(!`.F" -XM_?__H8"8"@C'1"0,+MX(",=$)`@!````QT0D!!T```")!"3HOL7^_XN56/W_ -XM_XE4)`2)!"3H3+\!`.G=_/__C;0F`````%6)Y8/L"*'<)`D(@_C_=`B)!"3H -XM2&G__\<%W"0)"/_____)PY"0D)"0D)"0D)"0D(G"58GEHXAC"0B+0@R%P'0) -XMB<*+0@R%P'7WBTH4A&,)"(M">(E$)`2+10B)!"3H3=L!`+@! -XM````@P5X8PD(`8/$$%M>7<.#P0$Y\7ZSB0UX8PD(@\00,&,)"#'`@\006UY=PXD5>&,)"`^V`83`=!R)RP^^P(E$)`2) -XM-"3H,=8!``^V0P&#PP&$P'7F@P5X8PD(`8/$$%NX`0```%Y=PXUV`%6)Y593 -XM@^P0H8!C"0B+=0B%P'0]BU`$A=)T-@^V`H3`=!R)TP^^P(E$)`2)-"3HW=4! -XM``^V0P&#PP&$P'7F@P6`8PD($(/$$%NX`0```%Y=PX/$$#'`6UY=PXVV```` -XM`%6)Y593@^P0H81C"0B+=0B%P'0\BQ"%TG0V#[8"A,!T'(G3#[[`B40D!(DT -XM).A^U0$`#[9#`8/#`83`=>:#!81C"0@,@\006[@!````7EW#@\00,6#[!B)7?2+71")=?B+ -XM=0R)??R+#8AC"0B+?0B%R704B5PD"(ET)`2)/"3H_OO__X7`=2J+%8QC"0@Q -XMP(72=!Z)71"+7?2)=0R+=?B)?0B+??R)[%WI-/___XUT)@"+7?2+=?B+??R) -XM[%W#C78`58GE@^P(BT4(A<"C?&,)"'0(B00DZ"+B_?_'1"0$Q)@*"(M%#(D$ -XM).ACR/__A<"CB&,)"'0:BP#'!8AC"0@`````HXQC"0C)PXVT)@````#'!8QC -XM"0@`````R<.-="8`58GE@^P(BT4(A<"C?&,)"'0(B00DZ,+A_?_'1"0$Q)@* -XM",<$)-PX"0CH`LC__X7`=`>+`*.,8PD(R<.0C70F`%6)Y8/L&(E]_(L]D&,) -XM"(E=](EU^(7_=#F+70B%VW0RH9AC"0B%P(E%\'0F,?:)]HLQ=PXVV```` -XM`(V\)P````!5B>57B==64XG#@^P,BT`0.T,(#X:2````B?@#0PPY0Q1V(HM# -XM#(M+"(L3P>`"`T,$B02*@\$!`7L,B4L(@\0,6UY?7<.+`"B40D!(L#B00DZ%1K`0#'!"3$K`L(B0/HIM`! -XM`.DZ____D%6XD&,)"(GE4X/L%(M="(M3!(/"`>@&____BQ.)5"0$B00DZ!3< -XM_?^#Q!1;7<.)]E6)Y5.)PX/L!(,%Q*P+"`&+`(7`=!R)!"3HTFD!`,<#```` -XM`,=#"`````#'0Q``````BT,$A575E.#[`R+10B+%7QC"0B+=0R+71")1?#HD/___X7`B<8` -XM``#V`Q`/A-T```"A?&,)"(7`="6#!<2L"P@!B00DZ,5?___'!7QC"0@````` -XMQP0DQ*P+".A_S@$`H8QC"0B%P`^$D0```(L`ASP$`B30DZ#;0`0"+1?"+%7QC"0B#Q`Q;7E]=Z;'^__^+#7QC"0B%R76G -XMC;0F`````(/$#(GX6UY?7<.-M@````!5B>575C'V4X/L#(L-R&,)"#L-L&,) -XM"(M]#`^",@$``(L5T&,)"(72=!*+10CH7O[__X7`B<8/A4(!``"AS&,)"(L8 -XMA=L/A#,!``"+%=!C"0B%TG0P@P7$K`L(`8D4).B,7O__QP708PD(`````,<$ -XM),2L"PCH1LT!`*',8PD(BQB%VW2;@SLO=`OK(8UT)@"#.R]U$X/`!(L8A=MU -XM\J/,8PD(Z7C___^CS&,)"(M%"(E<)`2)!"3H5-$!`,='!`````"+`X7`=`R# -XM^"YU.HM;!(7;=3/'!"22'0D(Z&O;_?^CT&,)"(M%$,<`$0```(D\)+X!```` -XMZ`3/`0"#!DSW_W_C;0F`````%6)Y5.#[!2#!<2L -XM"P@!Z!G;_?_'``````#K)9"-="8`Z`?;_?^#.`1U48VV`````.@;RP$`Z/+: -XM_?_'``````#H9]C]_X7`B<-TU<<$),2L"PCHRD,V_W_58GE7>G3V_W_C;0F```` -XM`%6)Y5.#[!2#!<2L"P@!Z)G=_?_'!"3$K`L(B53B<.#[!2)!"3H>]?]_XU0`KBH -XM8PD(Z%+Y__^)7"0$B00DZ&+6_?^#Q!1;7<-5B>575E.#["R+10B%P*-\8PD( -XM=`B)!"3H3]K]__8%P&,)"`$/A"4!``#V!#2"`AV,KOPT@@(BT/PA`$@\,0!>#2"`@YT'?3H#R`2C -XMP&,)"/8%P&,)"`@/A!\"``"AT&,)",<%R&,)"`````"%P'0E@P7$K`L(`8D$ -XM).@C6___QP708PD(`````,<$),2L"PCHW+0Q2%P'0HBT,$ABR_O__BT,0 -XMA:)%"3HUM`!`(D$).AZU_W_A<") -XM1>1TUHD$),=$)`0P'@4(Z-=7_O^+1=R%P'0EQT0D!+@X"0B+!XD$).CNS0$` -XMB47@QT0D!#`J"`B)!"3HJU?^_XM=Y(D<).BP`````QT7H`````(E=\.L' -XM@T7L`8EUZ(MUZ(/&`3MU\'-"BQVH8PD(C02U_/___XL\`XM$`P2)/"2)1"0$ -XMZ&K3_?^%P'3*BT7LAPI7?"+1?#'!"3$K`L( -XMH[!C"0CH'\57 -XM5E.#[`R+-<1C"0B%]G1_BP:%P'1YBSW@70D(ZQB+1(7UW#D)"0D%6)Y5=6 -XM4XM-"(M]#(LQA?9T0XL?ZP^+<02#QP2%]G0UBQ^#P02)\HG8@>+___\_)?__ -XM_S\YPG3>A=NX`0```'0;B?"!X____S\E____/RG86UY?7<.#/P$9P/?06UY? -XM753BTT(BUT,BU40BP&%P'0S@^H!A=)_"^LJ -XMC70F`(/J`70A@\$$BP&%P'7R@^H!A=)_&,53BUT(BTT,BU40ZP>0@\,$@\$$ -XM@^H!=`N+`87`B0-U[5M=P\<#`````%M=PY!5B>575E.#[`R+10B)!"3HJ-'] -XM_XLUT)<*"(7VB47P=%^+'H7;=%F)Q\'G`NL-B?:#Q@1T2XL>A=MT18D<).AY -XMT?W_.47P=^B-!#N#.#UUX,<``````(M%"(E$)`2+!HD$).B9_O__BQ;'!!<] -XM````A6+10R+`(E% -XM#(M%"(L`B44(7>F'=0$`C;0F`````%6)Y5=64X/L'(MU"(M]##G^#X*S```` -XMB?(QR9"-="8`,<"#.F`/E,"#Z@0!P3G7=N^#X0''1>P()0D(=0?'1>P,)0D( -XMQT7P`````.L*C78`@^X$.?=W18L>A=MT\XE<)`2+1>R)!"3H0-3]_X7`=#F# -XM?OQ@^X$.?=VN[@! -XM````@\0<6UY?7<.)7"0$QP0D["0)".CST_W_A<`/A(4```#'1?`!````ZX8Y -XM]XUT)@!SRHL&@_@F=$J#^"AUOH/N!(L6@_H@=`6#^@EU!#GW7UW#@WWP`0^%`/___S'` -XMZ4K___\/ML+VA`#A(`D(('2CZ3/___^-M"8`````58GE5E.#['"%P'17<.# -XMQ'`QP%M>757B<=64X/L;(7`B560=%['1"0$ -XMQ)@*",<$)`PR"0CH6KC__X7`=%6+`(7`=$^+&(7;=$F)QNL@C;8`````B5PD -XM!(D\).AD!/__A!(/&!(7;="7'1"0$A#,)"(D<).@"SOW_A7UW#BT60B3PDB40D!.@BQP$`B<.)!"3HR,D!`(D<)(U= -XME(G&Z%M;`0")7"0$B30DZ!O-_?^#P`%TN@^W39R)R"4`\```/0"@``!T1#T` -XMP```NCT```!TH3T`$```LGQTF#T`(```LB5TCST`8```LB-TACT`0```LB\/ -XMA'G___^#X4FR*@^%;O___^ED____QT0D!,28"@C'!"3@0@D(Z&"W__^%P'0P -XMB5PD!(DT).C,S_W_NB8```"#P`$/A#?___\/MT6````(D$).C_T/W_A<`/E<`/ML")1>2+3<0Q_X7)?DN+5<@Q]HL" -XMB00DZ!"=`0"+7-1@$Y1<2)QHT4@7X=BP*)TXD$ -XM).CEG`$`C5,$.?AST8U&`3E%Q(G&?^.#?<`!&<`QTO?0C7P'`J'@EPH(B7WP -XM]_>%P(G#=".+%>AV"@BX`0```(72#X3%`0``B00DZ,?1_?^%P`^%I0$``,=% -XMX`$```#'1>@`````BU7H`U7$QT78_____\=%W`````")T,'Z'_=]X(7`B46\ -XM#XX>`0``BT7@,?^+3=R%P(E-['\NZ>4```"#1=@!BTW$.4W8?#*+1>2%P`^% -XMS@```(M%O(/'`0%%[#M]X`^$O````(M%Y(7`=="+5>R+3<2)5=@Y3=A]SHM5 -XMR(M%V(T$@HE%T(L8B1PDZ"+,_?^)QHM%P(7`#X2_````C12U`````(U$$_R) -XM5=2+&,<``````(U&_XE$)`2)7"0(BTW0BP&)!"3HNTH``(M5T(M-U(L"B5P! -XM_#';.WWH#XUQ____BTW0BP&)!"3HEYL!`(T<&#E=\`^&6/___\<$)"````"# -XMPP'H?&G__SM=\'7LBT6\@\-M"8`````@_HD="N#P`2)10B)5"0$B1PDZ.F_`0"+10B+ -XM$(72=>")'"3H^+\!`(/$)%M=PXGVC44(QT0D"````$")1"0$B1PDZ%FF`0"% -XMP'6EBT7PB00DZ$I7`0"#Q"0QP%M=PXGV58GE5U93,=N#["R)5>B)3>2)1>R) -XM!"3H5/___XE%\,=$)`0P*@@(B00DZ)%,_O^+??"%_P^$!@$``(M%Z,=`!``` -XM``"+5?"+`H/X/0^$KP$``(/X?@^$&0$``(M-\(E,)`2+1>B)!"3HH\$!`(M5 -XMZ(D4).B(OP$`BTWHNHPS"0BAV)<*"(MQ!(7V=`6+3>B+$8/H`H/X`0^6P`^V -XMP(E$)`2)%"3HIQS^_X7`B<,/A(T```")!"3HY<0!`(D$).B)R_W_BU7DA<") -XM`G1TBU7PB10DZ$E+_O^+3>R+,87V=#J+1>B+4`2%TG0/B<&+`(-\D/PO#X1\ -XM`0``BU7HQT($`````(E<)`2)%"3H`<$!`(M%Z(D$).CFO@$`B1PDZ!Y6`0"# -XMQ"PQP%M>7UW#BT7H,=N)!"3HQ[X!`(VT)@````")'"3H^%4!`(-]"`9T#HL= -XMY&,)"(7;#X16`0``BTWPB0PDZ+E*_O^X_O___X/$+%M>7UW#BTWP@\($BT$$ -XMA<`/A.<```"#^"^)U@^$W````(/&!(L&A<`/A:,```")\"G0P?@"B10DB40D -XM!.@PP@$`B<.)!"3HAM']_XD<)(G'Z'Q5`0"%_P^$8/___XE\)`2+1>B)!"3H -XM-<`!`(D\).A=50$`BU7HBP*#."]T:(ET)`2+3>B)#"3H%,`!`.EL_O__BT7P -XMB00DZ,3Q_O^%P(G##X06____.47P#X0\_O__B40D!(M5Z(D4).CBOP$`B1PD -XMZ`I5`0#I,O[__Y"-="8`@_@O#X5'____C;0F`````.E(____@WH$`8VT)@`` -XM``!UBX,^+W6&@\8$ZX&)UC'`Z2_____'000`````B0PDB5PD!.B(OP$`BT7H -XMBU`$B<&+`(-\D/PO#X1R_O__QT0D!"\```")#"3H\[P!`.E=_O__Z!7*_?^# -XM.!2-M@`````/A(D```#H`S' -XM!"3OW@@(B4PD!.COH0$`BT7PQP6PF0L(`0```(D$).CJ2/[_N/_____I+/[_ -XM_XM]\(7_=,.+5?")5>SKNZ&`F`H(QT0D#-3>"`C'1"0("@```,=$)`0>```` -XMB00DZ/RG_O_KA:&`F`H(QT0D##N["`C'1"0("P```,=$)`0>````B00DZ-6G -XM_O_I6____U6)Y8/L&(/X$HE=](G3B77XBW4(B7W\=B_'0P0`````B30DZ.A' -XM__^)="0$B1PDZ#R^`0"+=?B)70B+??R+7?2)[%WI&+P!`/\DA4#?"`B0QT($ -XM`````(E,)`2)%"3H#;X!`.N[QT($`````,=$)`1^````B10DZ(2[`0#KHHGV -XMBSK'1"0$)````(D\).AZQ/W_A!?WP@```$!U#X/Z?P^.N@,``(VV`````(L6A=(/A#4!``")TX'C____ -XMOP^(R`$``(/[?P^/OP$```^VPP^WA`#@(`D(J$$/A*P!``"+1=C'1>````!` -XMA<`/E<(QR832=`D[7=@/A$X"``"+1>"%P'0-@WW8(HUV``^$I0(``(3)=4B$ -XMTHUT)@!U&87;>`F#^W\/CG,#```['42:"P@/A!,$``"+1=B%P'@4]T78```` -XM0'4+@WW8?Y`/COP````['8R8"@@/A`X!``"%_W08BU74BP*#P@2)5=0YV`^5 -XMP`^VP(/H`2''C47H@\8$B5PD!(D$).C0N0$`BT78A<`/B,7^__^+1=C!Z!Z# -XM\`&#X`&#?=A_#Y["A,`/A*K^__^$T@^$HO[__P^V1=CVA`#@(`D(0`^$D/[_ -XM_XM%T#E%U,=%V``````/@HG^__^+%C'_A=(/A7UW##[9%V/:$`.`@"0A`#X5C_O__Z3[^__\/MD78 -XM]H0`X"`)"$`/A?[^__\['8R8"@@/A?+^__^-5>C'1"0$7````(D4).C=N`$` -XMB5PD!.D:`0``C70F`(M%V('B````0`^4P8E5X(7`#Y7"A,D/A$G^__^$T@^$ -XM3O[__X7;#X@Y_O__@_M_D`^/+_[__P^VPP^WA`#@(`D(J/,/A!S^__^#^R,/ -XMA!/^__^#?=@B#X1R`@``BT78A<`/B,H!``#W1=@```!`B?8/A;L!``"#?=A_ -XM#X^Q`0``#[9%V/:$`.`@"0A`#X2?`0``BU7L@\8$BT7HB5R0_(M%V,'H'H/P -XM`8/@`8-]V'\/GL(Q_^EE_O__C;0F`````(M5[(72=!2+1>B#Z`2-!)"+5=@Y -XM$`^$LP$``(M5V(U%Z(D$)(E4)`3HX[B)7"0$B00DZ,&W`0"+5=B)5"0$C47H@\8$B00D,?_HJKB)%"2)7"0$Z$FW`0"- -XM1>C'1"0$(@```(D$).@VMP$`Z6S]__]\&_=%V````$"0C;0F`````'4*@WW8 -XM?P^.NP```(U5Z,=$)`0`````B10DZ`&W`0#IG/W__P^VP@^WA`#@(`D(J$$/ -XMA#G\__^+1=B%P'0).578#X4I_/__,578@T74!(E4)`2-5>B)%"3HP[8!`.F^ -XM^___#[;#]H0`X"`)"/,/A'S\__^#^R,/A;3]___I;OS__XM%V(U5Z(/&!(D4 -XM)(E$)`3HBK8!`(U%Z(D$)(E<)`3H>[8!`(L&A<`/A8P```"X`0```+H!```` -XM,?_'1=@`````Z:?\__\/MD78]H0`X"`)"$`/A>?\___I+O___\<`7````(U% -XMZ(/&!(E4)`0Q_XD$).@HM@$`N`$```"Z`0```,=%V`````#I8/S__XM%[(7` -XM#X07_?__Z=W[__^#^W\/CZG]__^H@HVT)@`````/A)K]___I>OO__XM5V(U% -XMZ#'_B00DB50D!.C1M0$`Z?S[__^-M@````"-OP````!5B>575E.#[%R)1;2) -XM5;"+`(L0A=)T#XD$).BAVO[_A<")1;AU"C'`@\1<6UY?7<.A+)H+"(E%\(L5 -XM*)H+"(E5[*$DF@L(B47HBQ4@F@L(B57DH1R:"PB)1>"+%1B:"PB)5=RA%)H+ -XM"(E%V(L5$)H+"(E5U*$,F@L(B470BQ4(F@L(B57,H02:"PB)1RC*)H+"(M5Z(D5))H+"(M%Y*,@F@L(BU7@B147UW#BT6XB40D!(M5M(L"B00DZ(OL_O^+5;2)`NFS -XM_O__BT6TBQCKR[C_____QP7`F`H(`````,<%L)D+"`$```#I!/[__XVV```` -XM`(V_`````%6)Y5=64X'L'`$``(F%_/[__Z$LF@L(B97X_O__BQ4HF@L(B8WT -XM_O__BPTDF@L(QT7P`````(E%E*$@F@L(B560BQ4/___XL5!)H+ -XM"(F-=/___XL-`)H+"(F%R+1?"%P`^(O0D``(M5$(M-#(E= -XMZ(F5`/___XD,).@VO?W_B=J)V8/B!(/A((F5%/___XF-#/___\=%W`````#' -XM1>``````B85,____B=B#X`*)A1C___^)V(/@0(F%"/___\=%Y`````#'1=`` -XM````QT74`````,=%V`````#'1>@`````QT0D!,28"@C'!"2`2`D(Z(.F___' -XMA23___\`````/?AO"0AU%>LJ@_IA=0O'A23___\"````D(/`!(L0A=)T$8/Z -XM077BQX4D____`0```.OFB=J#XQ"#X@&-3=")E1S___^)#"2)G1#____'1"0$ -XML)$(".B_/O[_C47%*/___P````#' -XMA2#___\`````QT6L`````(L$A>#@"`C'A03___\$````QX5(____`````,>% -XM9/___P````")19S'A43___\`````BX7T_O__C4WHC570QT74`````(E,)`B) -XM1"0$B10D_U6!(/&!(7;=;J+C43___\+ -XMC4C___^)C2S___\/A+(#``"+1="+50R)1;B+.H7_#X3R`P``BPW@70D(B<.) -XM5:B)C33___^+`XG^@>;___\_B84P____)?___S\YQHE%P`^$?P(``('^_P`` -XM`(FU./___P^'K@4``(N5-/___XM$LC1FA<")=;QY((&]./____\````/A^X& -XM``"+C33___^+C+$T!```B4V\BT7`/?\```")A3S___\/AW4%``"+3<"+A33_ -XM__^+5(@T9H72BT7`>2"!O3S_____````#X>8!@``BU7`BXTT____BX21-`0` -XM`#E%O`^$Z0$``(N%1/___X7`=4Z!Y____S^-1].#^`$/ABH%``"#_E]U-[HM -XM````B[TP____A?]T*#M5P'4:Z:\!```E____/SG+`0``.<(/A)H!``"# -XMPP2+`X7`=>*+A2C___^%P`^$B?W__XU-T(D,).@W._[_@[W\_O__!'4?Z?0$ -XM``"+0P2CX&,)"(L#B00DZ#=&`0")'"3H+T8!`(L=X&,)"(7;==R#O?S^__\& -XM#X2U!```B[4(____A?9T'(M=K(7;=16+C2#___^%R7X+BY4@____]]J)5:R+ -XM3:R)3?"+1>R)!"3H<3K^_XM%E(M5D(M-C*,LF@L(BT6(B14HF@L(BU6$B0TD -XMF@L(BTV`HR":"PB+A7S___^)%1R:"PB+E7C___^)#1B:"PB+C73___^C%)H+ -XM"(N%7UW#C;0F`````(.]^/[__Q(/A:'\__^#O23___\!#X2<`@``QX4H____ -XM`````(N=3/___X7;#X6&_/__BT70@S@N#X5Z_/__BXTD____AW^_X7`#X3W^___BT70BTT,B40D -XM!(D,).B#)0``.84$____B<,/C3@"``"#^`0/A<[[__^+1="+50R+C?3^__^) -XM1"0(B50D#(L!B40D!(M%"(D$).CW(P``A<`/A*'[__^+A1S___^%P`^%(@H` -XM`,>%!/___P,```#IA/O__XGVBU70BTT,B56XBQ&%TG1$BTVX@>+___\_BP&) -XMRXM-#"7___\_.<)T).E3_?__C78`BT,$@>+___\_@\,$@\$$)?___S\YP@^% -XM-/W__XM1!(72==V+C1S___^%R0^%9`,``(N5&/___X72#X4!!0``BX44____ -XMA<`/A2,%``"+A0S___^%P`^%104``(.]^/[__P$/E,.#O?C^__\##Y3`A-N) -XMQP^$6`,``(.]^/[__PL"``"+A2C___^#1:P!A<`/A,CY___I.OS__XM% -XMW(D$).@AU___A#^BX/A4/]__^+0`B%P`^4PH/X+P^4P`G"#[;2B94H____ -XMZ2_]___'A2C___\!````Z2#]__^+10@QV\=`!`````")!"3HV*H!`(F=!/__ -XM_^FK^___@_@$#X3(_?__BX4<____A53^_X7`#X1C^?__BTT(BT70QT$$`````(E$)`2)#"3HB*P! -XM`(M%"(D$).AMJ@$`A=MTD8F=!/___^DP^?__B30DZ#*T_?_I3_K__XD$).@E -XMM/W_B<+IB?K__X/^7P^$TOK__X/^+;I?````D`^$R/K__XGRZ<'Z__^+A03_ -XM__^)1:SI8_O__Z'H)`D(.85D____#X[;````@_C_#X32````@WVL`0^.`OO_ -XM_X/``0^,600``(NU9/___XT\M0````")/"3HXT$!`,=$)`0P*@@(B<.)!"3H -XM@3;^_XL-X&,)"(7)=">%]G@CC10?@ZUD____`8L!B4+\BTD$@^H$A>#'1"0,(,P&",=$)`@$````B70D!(D<).APLOW_BT4(QT`$```` -XM`*'H)`D(BU4(BP2#B10DB40D!.ACJP$`BTT(B0PDZ$BI`0")'"3H8#7^_\=% -XMK`$```#I1?K__XN=\/[__^DX]O__QP7H)`D(_____\>%(/___P````#'1:P` -XM````Z1KZ__^)!"3H[;3]_^EK^?__B30DZ."T_?^)1;R0Z1'Y__^+A1#___^+ -XM5;B+C?3^__^)1"0(B50D!(L!B00DZ*I2_O^%P`^%<_S__XN%*/___X7`#X0; -XM]___Z8WY__^$P`^%H/S__X.]^/[__P%T@^$ -XM\`4``(N-5/___X'B____/XL!)?___S\YP@^%U04``,>%4/___P````#K%XN- -XM5/___X'B____/XL!)?___S\YPG47@X50____`8/'!(.%5/___P2+%X72==+' -XM!P````"+50@K.L'_`HEZ!*'48PD(A<`/A(D$``"+A4C___^%P`^$3OC__XM5 -XM"(N-3/___SM*!`^&//C__\="!`````"+10R)%"2)1"0$Z&:I`0"+50B)%"3H -XM2Z@/X?__@_@O#X4?^O__QT0D!"\```")-"3H -XM5J4!`.D*^O__D,=$)`3$F`H(QP0D0$()".A+___\_)?___S\YT'36BT6DBW@$@\`$B46DA?\/ -XMA7K____I#?S__XM%"(L`B46PB<*+`(7`#X0$`0``BQ7@70D(BXU4____BWVP -XMQX50____`````(F56/___XE-M.F&````BY58____BT2:-&:%P'D=@;U<____ -XM_P````^'HP```(N-6/___XN;_ -XM__\_@?O_````#X95____B1PDZ&.M_?_I4O___XDT).A6K?W_ZXJ)'"3H7*_] -XM_XG#Z5O___^)-"3H3:_]_XG&ZXV+C53___^)U\>%4/___P````")3;2+1;2+ -XM$(72=26+A5#___^+E53___^+3;#!X`*)1"0(B50D!(D,).B)LOW_BT6TB854 -XM____Z67[__^#A2#___\!Z=/S___'1"0$Q)@*",<$)$!""0CHKY;__X7`#X5; -XM^___BX5(____A!C"0CIVOG_ -XM_XM5",="!`````")1"0$B10DZ"^D`0"+30B)#"3H%*(!`.F#^O__QX50____ -XM`````.E6^O__58GE5U93@^Q\BT48BWT0BP#'1=P`````QT7@`````,=%Y``` -XM``")19S'1=``````QT74`````,=%V`````#'1<0`````QT7(`````,=%S``` -XM``#'1>@`````Z&'/__^+50C'!=AC"0@`````BS+'1"0$+P```(DT).@NJOW_ -XMA<`/A.H#``"-6`2)'"0I\^CMI`$`P?L"C4W0B5PD"(ET)`2)#"2)1>SHY*(! -XM`(U%T(D$).A)H0$`C570B10DQT0D!+"1"`CH]BW^_XU%[(D$),=$)`0P'`4( -XMZ.,M_O^+30B+`8,X?@^$]0$``(M5[,=$)`0D````B56HB10DZ*NI_?^%P(G# -XM=!N+3:C'1"0$+P```(D,).CBKOW_A<`/A$X"``")^"4`$```B46@#X7>`0`` -XM,<")^X-]G``/E<"`Y^^)1:2-3=R)#"3HLJ`!`(U%W,=$)`2PD0@(B00DZ%\M -XM_O^#^P8/A#8"```/CM4```"#^Q$/A"<#``"!^_\/``"0#X0-`@``@_L-#X01 -XM`@``,<"+5:2%T@^$]````(/(((E%P(/_#`^/]````(/_"`^-)`(``(/_!`^$ -XM_0$``(UV``^/4@0``(/_`HVT)@`````/A.0!```/CR0%``"#_P&0#X3@```` -XMH8"8"@B+'0QV"@C'1"0,,.$(",=$)`@)````QT0D!!X```")!"3H7XO^_XE< -XM)`2)!"3H\X0!`,<%L)D+"`$```"^_____XUT)@"-3=")#"3HY2O^_X/$?(GP -XM6UY?7<.%V[[_____=.*#ZP$/A3C___^+50C'1"0$+P```(L"B00DZ)"M_?^% -XMP`^$\00``(M5I+\$````N!$```"%T@^%$____XVT)@````"#R$"#_PR)1<`/ -XMC@S___^#_Q,/A#`!```/CS<"``"#_Q`/C_4```"#_PZ-M@`````/C1(!``"+ -XM50B+`HD$).BMH@$`B46HB47LZ?H```")]L=$)`0O````B00DZ`RM_?^%P`^% -XM\_W__XM%[+\#````NP,```")1:CK=HVV`````(M5&(U-W(D,)(E4)`3H[J`! -XM`(M5X(72=!V+1=R#?)#\+W03C47__^%P(GX -XM_O__C5W$QT0D!+"1"`B)'"3HU2K^_XM%Z(M-P(M5J(D<)(E$)!"+11B)3"0, -XMC4W@/A&X&``"+5>"%TG0HBT7<@WR0_"]T'HU-W,=$)`0O````B0PDZ&&< -XM`0"-1=R)!"3HMIP!`('G_^___X/_!`^$?_[__P^/$00``(/_`0^$#@4``)"- -XMM"8`````Z&>G_?^%P`^.L_S__XD<).A[G`$`BT7$BTW0BU4(B00DB?CH".#_ -XM_Z'48PD(A<`/A8O\___'1"0$Q)@*",<$)*`Q"0CH!Y#__X7`#X1O_/__@_X! -XM#X5F_/__@WT<_XGV=#:+11R%P`^%E04``(M=Q(M-W(D<)(E-K.B2)___@_\3 -XM#X:$````,<")1"0$BT4(B00DZ)B;`0"+10B)!"3H[9L!`.D8_/__@_\. -XM_/__#X[F````BT4(BQB#?0P�/`0``BT7LB00DZ/\R`0")'"3H-Y\!`(E% -XMJ(E%[.F$_?__@?\2$```#X6&^___Z9C^__^!_P$0``"0C70F``^%B+1=")%"2-5=SHW]K__X7`B<8/A07[__^# -XM3<`"Z:3\___'!"0-````Z/!"___IBOW__XD<)#'VZ%&@`0")!"3HJ2C__X7` -XM#X71^O__D.G1_O__BT6@A<`/A03[___I&OK__\=$)`3$F`H(QP0DP$()".B7 -XMCO__/?AO"0@/A/L!``"+$(72#X3Q`0``]\(```!`#X7E`0``@_I_C78`#X?9 -XM`0``B<$QP/8$E;U1"0@$=3/IQ@$``(VT)@````#WP@```$`/A;,!``"#^G^0 -XM#X>I`0``@\$$]@25O5$)"`0/A)@!``"-!("-1$+0BU$$A=)URX7`#XZ"`0`` -XM.?`/C7H!``"+112%P`^$;P$``*&`F`H(QT0D#!O?"`C'1"0(!0```,=$)`0> -XM````B00DZ"N%_O^)=;R)!"3HD"[__\=$)`0P*@@(B<.)!"3H7B;^_Z&`F`H( -XMQT0D#&CA"`C'1"0(!P```,=$)`0>````B00DZ.F$_O^+5;R)7"0(B50D!(D$ -XM).AV?@$`B1PDZ'XE_O_H63___XU%\XE$)`2AM'8*",=$)`@!````B00DZ/TE -XM__\/OD7SQP0D`]\("(E$)`3H.7X!`*&`F`H(#[Y=\\=$)`P(WP@(QT0D"`T` -XM``#'1"0$'@```(D$).APA/[_B5PD!(D$).B0I/W_A<`/A"W[__^#_P]T,8VT -XM)@````#H.[___\=$)`P@S`8(QT0D"`0```")="0$B00DZ+NA_?^#_Q`/A#P! -XM``#H$;___\=$)`P!````B70D",<$)/AO"0B)1"0$Z#75___IT?K__X/_!0^$ -XMLOW__X/_$HUT)@`/A>+[__^#3<`$Z4GZ___'1"0$Q)@*",<$)(!""0CH?8S_ -XM_SWX;PD(#X1F____BQ"%T@^$7/____?"````0`^%4/___X/Z?P^'1____S'; -XMB<'V!)6]40D(!'4LZ33____WP@```$`/A2C___^#^G^0#X<>____@\$$]@25 -XMO5$)"`0/A`W___^-!)N-7$+0BU$$A=)URX7;#X7$````A=L/G\")=;R$P`^$ -XMY_[__SE=O`^.WO[__XM%%(7`#X33_O__BT6\A<`/A,C^__^A@)@*",=$)`S^ -XMW@@(QT0D"`8```#'1"0$'@```(D$).C_@O[_Z=+]__^+1>R)!"3HORX!`.E` -XM^/__Z-6]__^%]HG'D`^.J_G__S';ZQV-M@````"#PP''!"0*````Z($___\Y -XM\P^$BOG__XL$G\<$))*Y"`B)1"0$Z$9\`0"A8&0)"(7`=,W'!"0-````Z%$_ -XM___KOX/_$`^$,____XVV`````.AKO?__A?:Z`0```(E%L'XVQT6X`````,=% -XMM`````"+5;B+3;"+!)&)!"3H/*']_SE%M',#B46T@T6X`3EUN'7>BU6T@\(! -XMH>"7"@B)T3'2QT68`0```(/``??QA<")191T`XE%F(M%F(U4!O^)T,'Z'_=] -XMF(7;B46\#Y_`Z;/^__^+51R+30B)5"0$B0PDZ!R6`0#I?_K__X-]#`)T.)#H -XM-Z/]_XL`B00DZ-V@_?_'!"3WW@@(B40D"(M%W(E$)`3H6GL!`,<$)`&Z"`CH -XM3GL!`.E6]O__QP0D`;H(".@]>P$`Z/2B_?^+`(D$).B:H/W_QP0D]]X("(E$ -XM)`B+1=R)1"0$Z!=[`0#I'_;__XGV58GE5U93@>RL````BUT(BT4,QT70```` -XM`,=%U`````#'1=@`````C02#B85X____C470QT7P^&\)",=%[`````#'1"0$ -XML)$("(D$).AO(O[_.YUX____#X-H"0``BY5X____,?^)G7S____'A6C___\` -XM````QT6@`````(/J!,>%#;WP@```$!U+H/Z?W\I#[;"#[>$`.`@"0CVQ"!T -XM"8M-U(/!`8E-H*A`=`PYG6#___\/APP#``"-````B00DZ)A^_O^)7"0$B00DZ"QX`0#'180! -XM````C570B10DZ"H?_O^+182!Q*P```!;7E]=PX-]$`8/A%/___^+A6C___^# -XM?1`$B85L____#X0]____@WT0"W>#BT40_R2%W-\("(/Z?@^$&/[__XU-T(E4 -XM)`2)#"3H5)(!`(M-U(M%T(M4B/R%T@^).?[__XGV@\,$Z6S^__^+$X72>#+W -XMP@```$!U*H/Z?W\E#[;"#[>$`.`@"0BH0706A?]U"C'7@\,$Z6C^__\YUW3R -XMC70F`(/_)P^$,/W__X72D(UT)@`/B%W]___WP@```$"-="8`#X5-_?__@_I_ -XM#X]$_?__#[;"]H0`X"`)"`(/A`7]__^#=8@!#X6&````BX5P____@\,$BXUT -XM____B85H____BT6`B4V@B85\____B50D!(U5T(D4).B&D0$`Z>']__^+0P2- -XM7\__\-````0(E$)`2-1=")!"3H6Y$!`(U#"(GSB<;I-/W_ -XM_X/Z?P^/%OW__P^VPO:$`.`@"0B"#X72_O__Z0#]__^+1=2#PP2+C6C___^# -XMP`&)C7#___^+3:")A6C___^)1:"+A7S___^)G7S___^)C73___^)18#I8/__ -XM_\=%Q`````#'1<@`````QT7,`````,=$)`3$F`H(QP0D@$0)".CLA/__A<`/ -XMA%D%``"+C6S____'1"0$+P```,'A`HG+`UW0B4V!VI````0'46@_A_?Q$/ML#V -XMA`#@(`D((`^%3`<``(/"!#E5C'?5B5PD!(U=Q(D<).B[D@$`B1PDZ*.0`0#' -XM1"0$L)$("(D<).A3'?[_BT7LQT0D#`$```")="0(B1PDB40D%(M%\(E$)!"+ -XM11")1"0$Z&KN__^+E6S___^-3=")#"2)5=2)182+1<2)1"0$Z%R2`0"-1=") -XM!"3H09`!`(D<).A9'/[_@WV$_L<%Y&,)"``````/A,$%``"+1="+E63___^+ -XM')"%VP^$_/S__XM5F(T,$#'`A?\/E,")!"2+E7C___^+A7S____H0-3__X7` -XM#XG3_/__C4W0B0PDZ/T;_O_'183_____Z/__ -XM_P^4P(G9B00DBX5\____Z-#3__^%P`^(W@0``(D<).BP)@$`QT6$`0```.E/ -XM_/__H=B7"@B#Z`*#^`$/EL`/ML")1"0$BX5L____P>`"`T70B00DZ(OL_?^% -XMP(G#=9C'180`````Z13\__^-1>2)1"0$BX5L____P>`"`T70B00DZ"Y:`0"% -XMP`^$\`(``(M%Y(D$).@[)@$`QT6$`````.G:^___BX5L____C5W$QT7$```` -XM`,=%R`````#'1`"`T70B1PDB40D!.C/D`$`B1PDZ+>.`0#'1"0$ -XML)$("(D<).AG&_[_BT7LQT0D#`$```")="0(QT0D!`````")1"04BT7PB1PD -XMB40D$.A][/__BY5L____C4W0B0PDB574B46$BT7$B40D!.AOD`$`C470B00D -XMZ%2.`0")'"3H;!K^_^DR^___BXU\____.8UX____QT7$`````,=%R`````#' -XM1@/A&4!```QTH/^`0^4PHU%Z.CCUO__B<:+1=R)!"3H%AG^_XM%Z#G' -XM=!#'1"0$\",&"(D$).B?&?[_A?8/CH4```"#?1`'#X1"`@``BX5\____,=LI -XMA7C____!O7C___\"BY5X____B10DZ.H?``"+1>CK!X/#`3GS=$^+%)B%TG3R -XMBPJ%R73LB10DZ#D8__^+1>@QTHL,F#'`QP0D`````.C#T/__A<`/B-@"``#' -XM!"04/0D(Z$\W``"%P`^(Q`(``(M%Z.NMBT7H.<=T"(D$).AC&/[_B76$Z2;Y -XM__\Q_XF=?/___\>%:/___P````#'1:``````QT68`````.DN^/__,<"%_XM- -XMY`^4P(N5>/___XD$)(N%?/___^A(T/__AC'1"0,`````(ET)`C' -XM!"3X;PD(B40D!.@,Q___BT7HZ17^__^+58R)%"3HV8T!`,=$)`0P*@@(B460 -XMB00DZ`87_O^!?8SX;PD(=`F+38S'`0````"AX*P+"(D<)(E%Q*'DK`L(B47( -XMH>BL"PB)1,`0")'"3H_XD!`,=$)`2PD0@(B1PD -XMZ*\6_O^+1>R)="0$B1PDB40D#(M%\(E$)`CH50,``(E%A(/H`0^$B@```(M% -XMQ(N-;/___XE$)`2-1=")3=2)!"3HOHL!`(U5T(D4).BCB0$`BTV0B0PDZ+@5 -XM_O_I;OG__XM%Z#G'#X2@^?__B00DD(UT)@#HFQ7^_^F.^?__QP7D8PD(```` -XM`.FM^/__Z#*W__^)-"3HFHH!`(DT)(E%Z.B_%?[_B30DZ&<5_O^+=R)="0(B50D!(D<)(E$)!2+1?")1"00Z/#F__^)183I'____Y"0 -XMD)"0D)"058GE5U93@^P+!HG3B<&!X____S^!X?___S\YRW3>A=)U0XL.A-1P2)1>R+5P2%TG4CC48$B47PBT7PB40D!(M%[(D$).AMOO__N@,` -XM``"%P'6XZX>-1@2)1?"+1@2%P'36)?___S\YPW7-@>+___\_.=%UPXU&"(E$ -XM)`2-1PB)!"3H,+[__X7`=:WI1____XVT)@````!5B>575E.#[#R+10C'1>@` -XM````C77HQT7<`````,=%[`````#'1?``````BQC'1>``````QT7D`````,=$ -XM)`2PD0@(B30DZ/42_O^-5=S'1"0$L)$("(D4).CB$O[_BP.#^"\/A+0```"- -XMM"8`````A7UW#B30DN______HS1#^ -XM_X/$/(G86UY?7<.0D)!5B>57B<]6B<93@^P,BUH,A=MU$>M/BT,$@S@M=$*+ -XM6Q"%VW1`BT,,A+0P2)1"0$B30DZ$+$ -XM_O^%P'3,BP.%P'3&@\0,6UY?7<.#P`3KW8/$##'`6UY?7<.058GE5U93B<.# -XM[#R)1=R-?>B)5=B)3=3'1>@`````QT7L`````,=%\`````"+$X72="H[50QT -XM)8/Z)(US!'4)@WL$.HUS!'1HB50D!(D\).A\@P$`B?.+$X72==:)/"3HC(,! -XM`(M-##D+B<*-0P0/A`(!``")%"3H]!H!`(M%W(D$).A)B0$`B40D#(M5$(E4 -XM)`B+30S'!"1_````B4PD!.A;#?[_@\0\B=A;7E]=PY"-0PB)1>"+0PB#^"V) -XMP0^$OP```('A````0`^%>/___X/X+8G!#X2P````@_E_B?8/AV+____V!(V] -XM40D(!`^$5/___S')@_@M#X2=````BUW@@^@PBW7@BU,$@\8$]\(```!`="/K -XM)O8$E;U1"0@$=!R-5`+0@\8$C02`C01"BQ;WP@```$!U!8/Z?W;:AR+`HL8A=MT8HG&QT7P```` -XM`.LZD(UT)@"AX%T)"(M$F#3!Z`Z)QX/G`70-BT7PA&!^_\```!VN8D<).B]B_W_D.NW -XMQP0D)P```.@"*O__@T7L!(M%[(L(AR+ -XM$H72#X51____@\0,6UY?7<-5B>564X/L((M%"(MP!(7V=$.-4`B+0`B%P`^$ -XMP````(D4).CX%O__B30DBB* -XM_O__QP0D"@```.@>*?__BT,0ANID(UT)@")PXM#%#M8$'3VB7<.)-"3H_@O__S')NJ"D"PCH -XMTOO__X7`==#I%____XGVC;PG`````%6)Y5=64X/L#(7`=`6CZ&,)"(L]Z&,) -XM"(L'B?J%P`^$S0```*D```!`=4F+'>!="0CK)XM$@S3VQ$!T,H/'!(D]Z&,) -XM"(L'A<`/A*(```"I````0`^%HP```#W_````=M*)!"3HTXG]__;$0'7.BQ7H -XM8PD(BQJ)UHG8)0```$")1?!U%H'[_P```'=;H>!="0B+1)@T]L1`=6J%VW@B -XMBT7PA@\8$ -XMB37H8PD(BQZ%VW6ABP>%P'04@\0,B?A;7E]=PXD<).A-B?W_ZZ0Q_X/$#(GX -XM6UY?7<.)^NEP____C58$QP8`````B17H8PD(Z\*+/7P@"0CKP(UV`%6)Y5=6 -XM4X/L3(M="(MU%(D<).BI@@$`QT0D!#`J"`B)1B-!(4(````B00DZ`H7`0#'1"0$,"H("(G'B00DZ*@+_O^+17UW#.P5\(`D(=-XQR8/^ -XM`0^4P;J@I`L(Z`;Z__^Z!````,=%U`$```"%P(E%T'44Z:8"```[!7P@"0B- -XM5@1TJ8-%U`$QP(G6C1P7Z!/^__^+3=2%P(D$CW7;BPU\(`D(A8"C1PWZ0_____'1=@`````BTL$]\$```!`B4W< -XM#X79`@``@?G_````#X=O`@``H>!="0B+5=R+1)`T]L0@#X2X`@``H8"8"@B# -XMPPC'1"0,Z;T(",=$)`@#````QT0D!!L```")!"3H;6C^_XM-U(U5\(D4)(GZ -XMB40D"(M%W(E$)`2)V.BP^/__QT0D!#`J"`B)PXM%\(D$).B+"?[_BT7PBPB% -XMR0^$EP(``*&`F`H(QT0D#%+K"`C'1"0(!0```,=$)`0;````B00DZ`EH_O^+ -XM3=R)^HE,)`2+3=2)1"0(C47LB00DB=CH3/C__\=$)`0P*@@(B<.+1>R)!"3H -XM)PG^_XL3A=(/A((!```QP(M-&#E5W`^5P(/H`0G"B1&#?<0M=FWH'(?]_X-] -XMU`''1=@@)0D(#X;7_O__BU0^^(E5V.G+_O__@WW4`L=%V"`E"0@/AKK^__^+ -XM1#[TB478Z:[^__^+1=3'1=@@)0D(A<`/A)S^__^+3#[\B4W8Z9#^__^+5QC"0B+=>R%P'02B00DZ(82`0#'!>QC"0@`````BP8E____OX/H)(/X -XM5`^&9P$``(DT)+O_#P``Z+R``0#'!"1]````B40D!.C")!"3HSVS__SG##XX]____Z>7\__^)!"3HNFS__SG##Y3`#[;`Z1O___^+ -XM2`2%R0^%QO[__^D3____H8"8"@B^_P\``,=$)`R6X0@(QT0D"`(```#'1"0$ -XM&P```(D$).BS9?[_BTWP`^V -XMP.E@_O___R2%$.,("*&`F`H(QT0D#`>]"`C'1"0(!````,=$)`0;````B00D -XMZ`9E_O_KF(-]R&,/A3#^__^+30S!X`(!`8GVZ2'^__^[$0```(M&!"7___^_ -XM#X1<_O__@_@Z#X4V_O__C48(B00DZ-1\`0"+31"C[&,)"(D!B00DZ,($___I -XM,?[__[L"````Z\"[!P```)#KN+L2````Z[&["@```(GVZZ@QV^NDNPX```"0 -XMC70F`.N8NQ````#KD;L3````B?;KB+L$````ZX&["P```(GVZ77___^[!0`` -XM`.EK____NP$```#I8?___[L,````B?;I5?___[L)````Z4O___^)-"3H.7P! -XM`,=$)`1@````H^QC"0B#P`2)!"3HG8;]_X7`=`?'0`0`````H>AV"@B%P'4_ -XMH;1V"@C'1"0$`````(D$).BH"___HQC"0B[_P\``,=$)`0"````B00DZ,2Q_O^% -XMP(G�>_?__H>QC"0AFNPT`B00DZ%D/`0#'!>QC"0@`````B30DZ(=[`0"+ -XM51"C[&,)"(D"B30DZ#4/`0#IY/S__[L(````Z7#^__^[$A```)#I9?[__[L/ -XM````Z5O^__^[!!```.E1_O__NP40``")]NE%_O__NP$0``#I._[__XU&!(D$ -XM).@F>P$`BTT0H^QC"0B)PXD!QT0D!"D```")!"3HAH7]_X7`=`;'``````") -XM'"2[#0```.CS`O__Z6+\__^-1@2[!@```(D$).C>>@$`BU40H^QC"0B)`HD$ -XM).C,`O__Z3O\__^0D)"0D)"058GE5U93B<.#[!R+,*%P80D(C7WPQP5P80D( -XM`0```,=$)`30.`8(B3PDB47PZ,X#_O^+6P2%VW0:C;0F``````^^!H/&`8D$ -XM).@B'___@^L!=>V)/"3H!0/^_X/$'%M>7UW#C;8`````C;PG`````%6)Y5=6 -XM4X/L+(M%"(M]$(E%Y(M%#(E%X*'T8PD(A<`/A#L!``"AP)@*"(7`#X10`0`` -XMH>AV"@B%P`^%$@$``(LU_)D+"(7V#X03`0``C78`BT7DB00DZ!5\`0`#1>"# -XM_SJ)1>P/A',!``"#_S['1>A()0D(#X2&````,!R[8E4)`B+`XE$)`2+1>PI -XMT(D$).AM?_W_A+B8)@D(Z$[^ -XM__^)?0B#Q"Q;7E]=Z5\?__^A;)D+"(7`#X7R_O__B?:+1>3'!"22N0@(B40D -XM!.AM6@$`B7T(@\0L6UY?7>DN'___BQWH=@H(A=MT%(L-?)@*"(7)=,KIM?[_ -XM_Y"-="8`BQ7@=0D(A=)TMNFA_O__D+AH)@D(Z-;]__^X."8)".C,_?__N(`F -XM"0CHPOW__XE]"(/$+%M>7UWITQ[__\=%Z"`F"0CI%____XT$28/Y%(T$Q4@E -XM"0B)1>@/A0'____IJ_[__XVV`````(V_`````%6)Y5>)QU93@^PLBW4(B57@ -XMBQ^)3=R+$HE5\(L"A<`/A(,````E__\_`#GP='J#^#IU->MS@_A>=#.#P@2) -XM5?")1"0$B1PDZ*1X`0"+5?"-#!B+`H7`="DE__\_`#GP=""#^#IT&XG+@_A< -XM=`!``!U -XMW87VQP4`9`D(`````,<%^&,)"`````#'!?QC"0@`````#X32`0``B30DNQ`` -XM``#H]GW]_XEU\(L6A=*)Q[@0````="V)\;,!C;8`````@>+__S\`,<"#^CH/ -XME,"#P02)3?"+$0'#A=)UY(G8P>`$B<,!^(D$).AC"P$`B77PQP7\8PD(```` -XM`(T4&(D5`&0)"(E5[(E%Z*/X8PD(Z$W\_?_'!"0`F@L(B46LH2R:"PB)1=RA -XM*)H+"(E%V*$DF@L(B474H2":"PB)1="A')H+"(E%S*$8F@L(B47(H12:"PB) -XM1<2A$)H+"(E%P*$,F@L(B46\H0B:"PB)1;BA!)H+"(E%M*$`F@L(B46PZ(I] -XM_?^%P'5IBU7PBS*%]G1@B?.!X___/P"#^RH/A-X```"#^SH/A,H```"+0@2% -XMP(E%J'01BT(()?__/P"#^#T/A"N[D(UT)@`E__\_`(/X.G2L -XM@\($B57PBP*%P'7JBU7PBS*%]G6@BT6LB00DZ!;^_?^+1=RC+)H+"(M%V*,H -XMF@L(BT74HR2:"PB+1="C()H+"(M%S*,@K!?AC -XM"0C!^`2C_&,)"(/$7%M>7UW#C4($B47PZ0C___^+3>B-0@2)1?"-5?"-1>S' -XM!"0]````Z.?\__^%P'0*BT7HBT`$A``````)?__/P")1:3K#8-%X`&#QQB#?>`4=$"+CT0E"0@/ -XMO@$YPW7F#[Y!`3M%I'7=C4(,B47PBT7@C57PQP0D.@```(T,0(T,S4@E"0B- -XM1>SH-_S__^DX_O__BT6HB70D!,<$)(8```")1"0(Z*OZ_?_I/?___XVV```` -XM`%6)Y5=64X/L#,=$)`3$F`H(QP0D:$P)".AS9/__A<")QP^$J0```(L`A<`/ -XMA)\```"+`(7`='F+`(7`='/'!?!C"0@`````QP7T8PD(`````(L'BQB%VW1K -XMO@0```#K%L<%\&,)"`$```"+!XL<,(/&!(7;=$['1"0$R$P)"(D<).CV>?W_ -XMA7UW#D)"0D%6%P(GE=1''!7!W"@C`JPL(HSB:"PA=PX/X`77Y -XMQP5P=PH(P*0+"*,XF@L(Z^B)]E6+#31W"@B)Y5.+70C!XP*-!`L[!;"8"@AS -XM,3L-5)D+"'8CB<*+`8/I!(D"H529"PB#Z@0YR';MBQ50F0L(A=)T!#G"=PD! -XM'31W"@A;7<.-!!.C4)D+".OMC;0F`````(L5-'<*"%6+#529"PB)Y593BUT( -XMB=`IR,'X`CG8?@*)V(7`?E^+'7<,YRL<%/)H+"`(```"C0'<*"(D- -XMD'<*"'(WB7<.--)4`````B=@I\#L%-'<*",<%/)H+"`(```") -XM%4!W"@BCD'<*"'>GB<(QR8T575HG64XG#@^P$B4WPC4@$ -XMBT`$@_A>=#N#^"2_`0```'1!C5#0,<"#^@EW%)"#P02-!("-!$*+$8/J,(/Z -XM"7;MA?]X-8D&@\0$@^D$6XG(7E]=P\<"`0```(/$!(G(6UY?7<.#>P@M=!G' -XM`O___W^#Q`2)R%M>7UW#BU7P*<*)T.O"BT,,C4L,O______KDXVT)@````"- -XMO"<`````58GEBU4(A=)^#XT$E0!V"0@[!529"PAV!UW#D(UT)@!=Z3K^__^- -XM=@"-O"<`````58GEBU4(@^)_@_I_=S+V!)6]40D(!'0HH41W"@B%P'0FH7QW -XM"@@]0$(/`'\3C02`78U$0M"C?'<*"+@,````PUVX9````,-=C4+0HWQW"@BX -XM#````,<%1'<*"`$```##H9QW"@A5B>6#^`%^!:.HF`H(H31W"@B-4`3'``H` -XM``")%31W"@C'0`0`````N`$```!=PXVV`````(V_`````*$T=PH(58GEQP`` -XM````N`,```!=PXUT)@"-O"<`````H31W"@A5B>7'``````"X%````%W#C70F -XM`(V\)P````"A-'<*"%6)Y<<``````+@3````7<.-="8`C;PG`````*$T=PH( -XM58GEQP``````N!(```!=PXUT)@"-O"<`````H529"PB+%31W"@A5B>4YT',( -XM@\`$HU29"PC'`@````"X`P```%W#B?:-O"<`````H31W"@A5B>7'``````"X -XM"@```%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@-````7<.-="8`C;PG -XM`````*$T=PH(58GEQP``````N`8```!=PXUT)@"-O"<`````H31W"@A5B>7' -XM``````"X$````%W#C70F`(V\)P````"A-'<*"%6)Y<<``````+@5````7<.- -XM="8`C;PG`````*$T=PH(58GEQP``````N`\```!=PXUT)@"-O"<`````58GE -XM@^P$BQ4H)PD(A=)T%*%4F0L(BPU\=PH(*=#!^`(YR'T,R;AD````PY"-="8` -XMB0PDZ.C[__^X#@```,G#D%6X9````(GE@^P$@3U4F0L(`'8)"'<)R<.-M"8` -XM````H7QW"@B)!"3HL_O__[@.````R<.-M@````"-OP````!5B>6#[`2A5)D+ -XM"#L%-'<*"'0MH7QW"@B)!"3HD/K__XL5-'<*"+@.````.154F0L(=@:)%529 -XM"PC)PY"-="8`BQ7(F0L(A=)T%CT`=@D(=`^#Z`2C5)D+".NXD(UT)@#)N&0` -XM``##B?:-O"<`````BPU4F0L(58GE@?D`=@D(="^A-'<*"#T$=@D(=",YP7,) -XM@\$$B0U4F0L(BT'\BU'XB4'XN`X```")4?Q=PXUV`%VX9````,.)]HV\)P`` -XM``"+#529"PBX9````%6)Y8'Y!'8)"'81BT'\BU'XB4'XN`X```")4?Q=PXVT -XM)@````!5B>6#[`R#/0QD"0@!B7PD"(G'B1PDB70D!'0DH529"PB)/0QD"0BC -XM$&0)"+@,````BQPDBW0D!(M\)`B)[%W#BS4T=PH(QP4,9`D(`````,<%$&0) -XM"`````#'!4!W"@@`````@?X`=@D(=BJY`'8)"#';,=*+!)4`=@D(@\$$@\,! -XMB025()D*"(/"`3GQ4]0$(/`'\4P>`"L@S'!41W"@@!````HWQW"@A= -XMB=##C70F`%6X#````(GE7<<%$'8*"`$```##C;8`````C;\`````53'`B>7H -XM]O?__Z%4F0L(7<<%`)D*"`(```#'!3R:"P@$````HY!W"@@QP,<%0'<*"``` -XM``##C78`C;PG`````%4QP(GEZ+;W__^A5)D+"%W'!0"9"@@!````QP4\F@L( -XM!````*.0=PH(,<#'!4!W"@@`````PXUV`(V\)P````!5B>6#[`2A?'<*"(D$ -XM).C]]___,<#H9O?__[@.````RA&]___ -XMH529"PA=QP4\F@L(`0```*,H)PD(HY!W"@@QP,.)]HV\)P````!5,<")Y5W# -XMB?:-O"<`````,<"#/0"9"@@`58GE70^4P*,`F0H(,<##D(VT)@````!5,<") -XMY5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P````!5 -XM,<")Y5W#B?:-O"<`````53'`B>5=PXGVC;PG`````%4QP(GE7<.)]HV\)P`` -XM``!5N`,```")Y>A3_?__70^^P,.-M"8`````C;PG`````%6X`0```(GEZ#/] -XM__]=#[[`PXVT)@````"-O"<`````58GE5U93@^P$H3R:"PB#^`(/A($```!_ -XM%X/H`0^$SP```+AD````@\0$6UY?7<.0@_@##X2X````@_@$=>2A0'<*"(7` -XM#X0\`0``BQV0=PH(B=XK-31W"@B)'529"PC!_@(YQ@^,%@$``(7V?ATQR8L4 -XMC2"9"@B+!(N)!(T@F0H(B12+@\$!.?%UY8/$!+@.````6UY?7<.A0'<*"(7` -XM#X3B````BQV0=PH(B00DB1U4F0L(Z,?U__^+#4!W"@B%R7X7,=*+!)4@F0H( -XMB023@\(!.15`=PH(?^O'!3R:"P@!````@\0$N`X```!;7E]=PXLU0'<*"(/^ -XM``^$AP```(L]D'<*"(G[?AF)^C')B?:+`H/"!(D$C2"9"@B#P0$Y\77MBQ4T -XM=PH(.==V">LED(LU0'<*"(L$LXD#BQ4T=PH(@\,$.=ISZ(LU0'<*"(L]D'<* -XM"(T$M0`````IPK@.````B3U4F0L(B14T=PH(QP4\F@L(`@```(/$!%M>7UW# -XMB<;IX_[__S'`Z9G^__^)]E6X9````(GE7<.-M@````!5N&0```")Y5W#C;8` -XM````5;AD````B>5=PXVV`````%6X9````(GE7<.-M@````!5N&0```")Y5W# -XMC;8`````5;AD````B>5=PXVV`````%6)Y8/L",=$)`0`=@D(QP0D\)D+",<% -XM])D+"`````#H+&8!`,<$)/"9"PCH$&0!`*$T=PH(Q@4D=PH(`2T`=@D(P?@" -XMH^B9"PBA5)D+""T`=@D(P?@"HS!W"@BAG'<*"*.HF`H(R<.)]HV\)P````!5 -XMB>6#[`CHA?___Z$T=PH(QP6HF`H(`````(U0!,<`"@```(D5-'<*",=`!``` -XM``"X`0```,G#B?:-O"<`````58GE@^P(H529"P@[!31W"@AT+:%\=PH(B00D -XMZ"#T__^+%31W"@BX#@```#D55)D+"'8&B154F0L(R<.0C70F`.C;DP``H31W -XM"@C'``````"X!````,G#B?:-O"<`````58GE@^P(Z.7^___'!9QW"@@````` -XMZ*:3``"A-'<*",<``````+@+````R<.-="8`58GE@^P(Z(63``"A-'<*",<` -XM`````+@%````R<.-=@!5B>6#[`CH99,``*$T=PH(QP``````N!$```#)PXUV -XM`%6)Y8/L".A%DP``H31W"@C'``````"X!````,G#C78`58GE@^P(Z"63``"A -XM-'<*",<``````+@)````R<.-=@!5B>6#[`CH!9,``*$T=PH(QP``````N`(` -XM``#)PXUV`%4QP(GE@^P(Z'/R__^A-'<*",<%/)H+"`$```"C5)D+"*,H)PD( -XMHY!W"@CHL*8``#'`R<.-M@````"-OP````!5,<")Y8/L".@S\O__H529"PB+ -XM%31W"@@YT',6@\`$.<*C5)D+"'(HZ'.F``"A5)D+"*,H)PD(HY!W"@@QP,<% -XM/)H+"`$```#)PXVV`````(D55)D+".O0D(VT)@````!5B>6#[`C'!529"P@` -XM=@D(QP4H)PD(`'8)",<%D'<*"`!V"0C'!3R:"P@!````Z`VF```QP.BF\?__ -XM,<#)PXGV58GE@^P(H5"9"PB+%529"PBC5)D+"(D54)D+".C?I0``,<#)PXUT -XM)@"-O"<`````58GE@^P(BQ60=PH(H529"PC'!2@G"0@`````QP4,9`D(```` -XM`,<%$&0)"``````YPL<%1'<*"`````!V*"G"P?H"B15`=PH(N`$```#'!0"9 -XM"@@`````Z!3Q___H;Z4``#'`R<,IT,'X`J-`=PH(Z]?K#9"0D)"0D)"0D)"0 -XMD)!5B>53@^P$]@4,9`D(`G5ABQ409`D(QP4,9`D(`````(72=#:A5)D+",<% -XM/)H+"`(````YPG))=R?'!"0!````NP$```#H-O'__Z%4F0L(B1U`=PH(HY!W -XM"@B#Q`1;7<.)TRG#P?L"B1PDZ!'Q___KV3'`Z'CP___KEHVV`````(G#*=/! -XM^P*)'"3HX?'__^B\I```Z[2-=@"-O"<`````58GE5HG6BQ4T=PH(4XG#H529 -XM"PB#[@&#_O]T%CD8=`@YT'/P.1AT[(/`!)"-="8`Z^XYPKYD````=B53B<.#[`2A5)D+"(GV -XM@^H!@_K_=!HY&'0/C70F`#T`=@D(=NDY&'3E@^@$B?;K[CT`=@D(<@IU$SD= -XM`'8)"'0+N&0```"#Q`1;7<,Y&'0F]@4,9`D(`:-4F0L(="*#P`2C5)D+".CC -XM_?__@\0$N`X```!;7<.%R736@\`$D.O0Z!FC```QP.N]D(UT)@!5NF0```") -XMY8/L"*$$9`D(A6#[`B+#529"PB+ -XM%31W"@@YT7,TH7QW"@B-!($YPJ-4F0L(6#[`B+ -XM%529"PB!^@!V"0AV/XL-?'<*"(G0+0!V"0C!^`(YR'PSC02-`````"G"H6#[`BA-'<*"*-4F0L(HB00DZ$YE_?_VQ$!UVO8%#&0)"`%T$>B/^O__ -XM@\00N`X```!;7EW#Z,Z?``"#Q!`QP%M>7<.0C70F`%6)Y5>)UU93@^PS_#X2-````.?YR&.OLC70F`(-^_%QT6(/&!#GW -XMD(UT)@!VUHL>BT4(B5PD!(D$).CI:/W_A575HG&4X/L'(M]"(E5[(E-Z(-MZ`&# -XM?>C_#X2'````BUWL.=YW&>F,````B?:#>_Q<=!Z#PP0YWI"-="8`=GB+`XD\ -XM)(E$)`3HO&?]_X7`==R)7?"+1?"Y`0```(GRB3PD@^@$Z&3^__^-6`0YWG,/ -XMZR.#>_Q<=!F#PP0YWG(6BP.)/"2)1"0$Z'QG_?^%P'7A.=YWO(-MZ`&#?>C_ -XMBW7P#X5Y____BT7L.?!S`HGP@\0<6UY?7<.)WNE3____ZPV0D)"0D)"0D)"0 -XMD)"05;AD````B>53@^P$BQU4F0L(@?L`=@D(=#&+#7QW"@BZ`'8)"(G8QP0D -XM,$T)".C]_O__]@4,9`D(`:-4F0L(=!#H*OC__[@.````@\0$6UW#Z&J=```Q -XMP.OQC;8`````58GE@^P8Z&6)``"-10B)1"0(QT0D!&5T`""AM'8*"(D$).CU -XM8OW_AH5"9"P@[!529"PAT$>BGAP``Z"*(``")]N@;F```H529 -XM"PC&!575E.#[`RAN)@*"(7`#X06`0``BPTXF0L( -XM*PU\=PH(A/>)#3B9"PB)RHG#P?H?BZ/__BQU4F0L(B30DZ`#G__^+%3B9"PBA*)D+"(L$T(L0 -XMA=)T#XD3BU`$@\,$@\`$A=)U\87_=&.A5)D+"(D=5)D+"*-0F0L(QT0D!,28 -XM"@C'!"0@20D(Z"5*__^%P'0)@#W,F0L(`'5'Q@7,F0L(`(/$#+@.````6UY? -XM7<.#Q`RX9````%M>7UW#B=._`0```"G#P?L"Z23___^)'5"9"PCKI8D<).C& -XMYO__Z5/___^0Z)N%``#H%H8``.NLC70F`%6)Y5.#[!2+#;B8"@B%R74/@\04 -XMN&0```!;7<.-="8`BQ4XF0L(H2B9"PB+!-")!"3H)F#]_XG"C02%``````,% -XM-'<*"#L%L)@*"'/$B10DBQU4F0L(Z/7E__^+%3B9"PBA*)D+"(L$T(L0A=)T -XM$)")$XM0!(/#!(/`!(72=?&#/7QW"@@!=#F)'5"9"PC'1"0$Q)@*",<$)"!) -XM"0CH'DG__X7`=`F`/6#[!B)7?B+'3!D"0B)=?R)QJ$T9`D(B70D -XM!(D<)(E$)`CH@V#]_[H!````A7UW#@\0,N&0```!; -XM7E]=PXL=5)D+"('[`'8)"',=Z^.)="0$B1PDZ*"3_O^%P'7#@^L$@?L`=@D( -XMNBC70F`(V\)P````!5B>564X/L$(LU -XM?'<*"(7V#XZ,````H1QW"@B%P`^$?P```(M(!(M1!(72='6+6`BX_____SG9 -XM=!,QP)"-="8`@\`!.<9_/H/H`8G1B40D",=$)`0`````BT$$B00DZ!TG`0") -XMPXD$).@#_O__A7<.#Q!"X9````%M>7<.)]E6)Y5=64X/L3(L=5)D+ -XM"(/K!('[`'8)"'8XBP.#^"!T,X/X"70NBQ6,F`H(.=")5;QU%.LWBP.#^"!T -XM&(/X"9!T$CM%O'0E@^L$@?L`=@D(=^.+`SD%C)@*"'0-Z'^2``"#Q$Q;7E]= -XMPXE%O(US!(EUX(M3!(/Z(`^$Z0$``(/Z"0^$X`$``(/X((G"="B#^`D/A`\% -XM``"!^P!V"0@/AA,"``"#ZP2+$X/Z(`^$!0(``(/Z"77AH529"PB)1<`Y5;QT -XM$CL=5)D+"',*@\,$BQ,Y5;QU[HU#_#T`=@D(#X+A`0``@WO\7`^%UP$``(U3 -XM^+D!````ZPJ+`H/J!(/X7'4+@\$!@?H`=@D(<^OVP0%U`X/#!#M=P`^#/___ -XM_XG*P>H?C001@^`!*="#Z`%UGXL5''<*"(72B570#X0;`0``BST$F0H(B=XQ -XMTH/'`8E]N(U&!(E%V(M&!(/X*@^$@P$``(/X7@^$R`(``(/X)`^$9`(``(72 -XM#X4,!0``@_@ZBWW8#X0*!```.46\#X2%`P``@_@@#X0J!```@_@)C78`#X0> -XM!```@_@Z#X05!```.WW`#X,,!```,#^"!T,(/X"70K@_@Z="8Y?#^"!UT(M5S(/O!(72#X6>`@``B?@I\(G&BT70P?X"A8``.@TH```B5W'+3@2)]XU!T(/X"78+@_DM=`:)^(GWZSZ#^20/A9$!``")^(GW@W@( -XM+71WN@$```")_NGM^___@_DM#X1K`0``@_DJD'0.@_DD=`F#^5X/A3$!``") -XM^(/Y)'3*@_E>=")1<#I^OK__X/O!#')Z?O^__^+4`R#^B\/CGW___^# -XM^CD/CW3___^+=="+5@2%T@^$:OS__XM2!(MV"#GR#X1<_/__,?^+4@2#QP$Y -XM\G7VA?\/A$C\__^#^2T/A?H```#'1?``````C5`$B578BU`$@_HM#X3````` -XM@_HJ#X2G````BU7PB478B57LA=(/B`S\__^+1>PYP@^/`?S__XM]T(E$)`B) -XM5"0$B3PDZ&,@`0"+==B#Q@2)1S___]_D.E2____BW78BU8$C4+0@_@)=B*#^B1T'8M5\(U'_XE%[.DQ____ -XMB?F-5?#H4-[__^G^_O__BT78C57LB?GH/M[__XM5\(E%V.D*____C78`58GE -XM@^P(H31W"@C'``````#HJOC__S'`R<.-M@````!5B>575E.#["RA8&0)"(7` -XMB47@#X6"````H;1V"@B-?>['1"0(`0```,=$)`0!N@@(B00DZ%?7_O^+10B) -XM/"0E__\_`(E$)`3H4T\!`(7`B<9T)3';C00?@\,!B40D"*&T=@H(QT0D!')T -XM`8")!"3H.%7]_SGS==V+3>"%R70&D.C;60``BT4(B00DZ'#R__^#Q"Q;7E]= -XM#[[`P^C`6```Z73___^-="8`C;PG`````%6)Y8/L".@EG```Z,!Z``"X#@`` -XM`,G#B?:-O"<`````58GE@^P(QP0D`````.BN50``N`X```#)PXVT)@````!5 -XMB>575E.#[`R+?0B%_P^$U0```(L=?'<*"(T$G0`````#!31W"@@[!;"8"@@/ -XM@[8```"#^P$/A+H```"+-0"9"@B%]G1-A=L/CCP!``"+-529"P@QR8L50'<* -XM"(UT)@"+!(Z#P0&)!)4@F0H(@\(!.=F)%4!W"@AUYHD<),<$E2"9"@@````` -XMZ*/:__^+'7QW"@B)'"3H-=K__Z%\=PH(@^@!@_C_HWQW"@AT)(G"D*%4F0L( -XM@^H!B3B#P`2#^O^C5)D+"'7IQP5\=PH(_____^BZB0``,<"#/0"9"@@"=%J# -XMQ`Q;7E]=PX/$#+AD````6UY?7<.A`)D*"(7`=5+'!"0!````Z,79__^A5)D+ -XM"(DX@\`$HU29"PC'!41W"@@`````QP0D`0```.@@C```,<"#/0"9"@@"=:;' -XM!"0`````Z.GG__^#Q`PQP%M>7UW#BQ54F0L(H4!W"@B+$L<$)`$```")%(4@ -XMF0H(C5`!B15`=PH(QP25()D*"`````#HJ]G__^EU____BQ5`=PH(Z>7^__^- -XM="8`C;PG`````%6)Y8/L"*$T=PH(QP``````Z/KU___'!"0@````Z#[^___) -XM#[[`PXGVC;PG`````%6)Y5.#["3HI%0``(U%"(D$),=$)`2P2@<(Z%'5_?^- -XM1?B)!"3H1F```(G#C44(B00DZ)G4_?^#ZP%T%<<$)`````#HZ.7__X/$)%M= -XM#[[`PXM%^(D$).C4_?__@\0D6UT/OL##C70F`(V\)P````!5B>5=Z>=3``"- -XMM"8`````58GE5U93@^P\BPVXF`H(B578*<+!^@*)1=R%R8E5U`^.:`$``,=$ -XM)`3$F`H(QP0DX$D)".@7//__/?AO"0B)PP^$R````*&XF`H(QT0D!(!#"0B) -XM'"2)P@,5/)D+"(E%T(U"_XG"P?H?]WW0B14XF0L(B=>)UNAA4?W_A<`/A30! -XM``"+5="%T@^.B````*$HF0L(BU74QT7L`````(E%S(M%T,'B`HE5Y(/H`8E% -XMR.L/BT7(`?")PL'Z'_=]T(G6BU7,C1SU`````(T\$XM5U(L'B50D"(E%X(M% -XMW(M5X(E$)`2)%"3H45/]_X7`=1&+1>"+5>2+!!"%P`^$*`$``(-%[`&+1=`Y -XM1>QUI>L(H;B8"@B)1="+==2+%3R9"PB+#;QV"@B#Q@$Y3=")%3B9"PA]"XM% -XMT(/``:.XF`H(C1S5`````(/"`8G0P?H?]_D#'2B9"PB)%3R9"P@[GN_O__BT7LBW\$A<")?>A_#>LZBQ4HF0L(B?Z)5____ -XM,<#H%]3__[@.````R<-5N`!V"0B)Y8/L"(L55)D+".BJ^___H529"P@M`'8) -XM",'X`HD$).AEU?__BQ50F0L(A=)T%J%4F0L(.<)V#2T`=@D(*<*)%5"9"PC) -XMN`X```##C;0F`````(V\)P````!5B>6#[`BA5)D+"(L5-'<*".A*^___H529 -XM"P@[!5"9"PBC-'<*"',%HU"9"PC&!6#[`BA5)D+"#L%-'<*"'0= -XMZ*AS``"A-'<*",<``````+@$````R<.-M@`````]`'8)"'76#[`BA5)D+"#L% -XM-'<*"'0MH7QW"@B)!"3H8-/__XL5-'<*"+@.````.154F0L(=@:)%529"PC) -XMPY"-="8`/0!V"0AT%^@4C^_[@"````R<.)]E6)Y8/L"*%4F0L(.P4T=PH(="VA -XM?'<*"(D$).C@TO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+",G#D(UT)@"+ -XM%/__QP58F0L(`0```,<$)`!V"0CHNSX!`#T`=@D(HS1W"@AV(8-X -XM_`H/A(8```"A-'<*"(-X_"!T<8$]-'<*"`!V"0AR6:$T=PH(HU29"PB#Q!2X -XM#@```%M=PX/$%+AD````6UW#B10DZ#85`0#'1"0(`$```,<$)`!V"0B)PXE$ -XM)`3H7'C__XD<).@DUP``QP58F0L(`````.EN____QP4T=PH(`'8)".N;@^@$ -XMHS1W"@CKA8/H!*,T=PH(Z6W___^)]E6)Y5.#[!2+#9QW"@B%R75&H9B8"@B% -XMP`^$#`$``,=$)`@`0```B40D!,<$)`!V"0CHZG?__Z&/P*#X2#````@3TT=PH(`'8) -XM"',*QP4T=PH(`'8)"*$T=PH(HU29"PB#Q!2X#@```%M=PZ.<=PH(@\04N&0` -XM``!;7+!#.%P'01B?#H -XMV>C__X7`=`:+1>R)1?"A#&$)"(7`#X2(````BW\<@T7L`8M%[#D%G'<*"'\P -XMBW7PA?9U#J&8F`H(Z)_H__^%P'1PBT7PHYQW"@CH?OW__X/$'%M>7UT/OL## -XMC78`A?]TS(M'&(7`#X51____B3PDZ#D2`0")1QBA#&$)"(7`#X5&____B3PD -XMZ"$2`0#'1"0$,"H("(G&B00DZ)_)_?_I*O___XDT).CRR/W_B?;I:?___X/$ -XM'+AD````6UY?7<.-M"8`````C;PG`````%6)Y5=64X/L'*$T=PH(QP4,9`D( -XM`````,<%/)H+"`````#'``````"#/9QW"@@`#XQ6`0``#X0A`0``BS4<=PH( -XMA?8/A`8!``#HPOK__XL5G'<*",=%\`$```"%TGX:,<"#P`&+=APYT'7V@\(! -XMA?:)5?`/A-8```"+7AB%VW1LBPT,80D(AL`=@D(B=C!^`*)1"0(Z`I(_?^%P'4'BQ0[A=)T8XGXNP$```#H1^?_ -XM_X7`=%.A#&$)"(7`=%6%VW5=BW87UT/OL## -XM@\06#[`B+%31D"0B%TG07,<"#/2`G"0@5#Y3`@\`5Z(?___\/OL#)PXGV -XM5;AD````B>6#[`B+#31D"0B%R74"R<.A("<)".A?____R0^^P,.-=@"-O"<` -XM````58GE5U93@^PLC77DB478C5WPQT7D`````,=%Z`````#'1>P`````QT0D -XM!+"1"`B)-"3HV<;]_\<$)`!V"0CHC3T!`,=$)`0P*@@(B<>)!"3HN\;]_Z$T -XM=PH(B47#'1"0$*@```(DT).A[.0$`BT78QP4`=@D(`````,<% -XM-'<*"`!V"0C'!529"P@`=@D(HR`G"0C'!"0"````Z/G)__^+%529"P@QP,<" -XM"@```(-]V!4/E,"#Z`&#X/"#P#^)0@2#P@B)%529"PCHBGD``,=%\`````"- -XM=@")'"3H*%$``(/H`75:BT7P@_@-#X2N````?VN#^`B)]G1N@_@*#X2<```` -XMB40D!(DT).C9.`$`H529"PB+5?")$(/`!*-4F0L(HS1W"@CH+7D``,=%\``` -XM``")'"3HSE```(/H`72FB30DZ"'%_?_'!"0`````Z'76__^#Q"Q;7E]=#[[` -XMPX/X&W0\@_A_=9N#?>@!#X91`0``H529"PC'``````"#Z`2#;>@!HU29"PBC -XM-'<*".C%>```QT7P`````.DY____A<`/A#'___^)/"3HN<3]_X-]Z`$/A)P` -XM``#'1"0$*@```(DT).@?.`$`B30DZ'3'!31D"0@`````QP0D,&0) -XM"(E$)`3H:CH!`,<$)#!D"0CH3C@!`(DT).AFQ/W_#[9%V(-]V!7'!31W"@@` -XM=@D(QP54F0L(`'8)"*)(F0L(#X2$````QP0D`````.CC^?__/&0/E,"$P'5= -XM@WWP&[@.````#X2P````@\0L6UY?7<.+'31D"0B%VP^%R0```,<%`'8)"``` -XM``#'!31W"@@`=@D(QP54F0L(`'8)".C2=P``B30DZ-K#_?^#Q"RX9````%M> -XM7UW#Z+AW``"#Q"RX9````%M>7UW#QP0D`````.C?^O__/&0/E,#I=____\=$ -XM)`@`0```B7PD!,<$)`!V"0CHW6___XM%W*,T=PH(BT7@B30DHU29"PCH=1''!9QW"@@`````N&0```#)P^AK]O__ -XMR0^^P,.-M@````!5B>6#[`BA-'<*",<%/)H+"`````#'``````"AG'<*"(7` -XM="RA?'<*"`$%G'<*".@L]O__/&1U1.@C]O__C78`Z-MU``"X9````,G#C70F -XM`,<%G)@*"`````#'1"0$`'8)",<$))B8"@CHLC575E.#[!R+?0B%_P^.^@```#L]O'8* -XM"'1"QT0D!`@```")/"3H],P``(E%[*$HF0L(A0/A+P!``"+/029"@@I\\'[`HD] -XM+&0)"(DU(&0)",<%-&0)"`````")7"0(B70D!,<$)#!D"0CH+#0!`,<%*&0) -XM"`````#'!21D"0@`````QT7@`'8)",=%\``````Q_\=%Z`````#'1>P````` -XMZUJ+1>2#!2AD"0@!QP4D9`D(`````(7`#X3@````QT0D"/___W_'1"0$```` -XM`(M-Y(D,).@Q!@$`B47PB00DZ(8P`0"+3?")QHM%Y(M`'(E-X(E%Y(M%[(7` -XM=7O'!"1`30D(BU7@N0$```")\.CHU___.<:)PW2*BQ#WP@```$!U'H'Z_P`` -XM``^'K`$``*'@70D(BT20-/;$0`^%8O___XU#_+D!````B?*#!21D"0@!QP0D -XM0$T)".AMUO__*=C!^`*->`&A-&0)"#G'=TR+1>R)WH7`=(6+%529"PB-!+T` -XM````*Q4@9`D(`P4T=PH(*=`[!;"8"@@/@DD!``"+3?")#"3HH<@``(/$++AD -XM````6UY?7<.-="8`B40D"*$P9`D(B1PDB40D!.A'/?W_AZ0#___^+/029"@@[/2QD"0@/A3C^__\[ -XM-2!D"0@/A2S^__\['1QD"0@/A2#^__^A-&0)"(7`#X03_O__B40D"*$P9`D( -XMB70D!(D$).C5//W_A<`/A?;]__^+%2AD"0C'1>``=@D(QT7P`````(72=$N# -XM^@$/CQ2%T@^$,0$``,=$)`C___]_QT0D!`````"+1>2)!"3H>@0! -XM`(E%\(D$).C/+@$`BTWDBTD2)1>#'!"1`30D(BPTD9`D(B?"+ -XM5>#H-];__XG&Z<;]__^#Q"RX9````%M>7UW#C78`B10DZ`0Z_?_I4/[__\'Z -XM`HD4).A8P___B3PDZ&#`__^%_W0=,6A5)D+"*,<9`D(BT7PB00DZ!K'``"#Q"RX#@```%M>7UW#B10DZ*$Y -XM_?_IT?S__XL5(&0)"*%4F0L(*=#!^`(Y^`^%B/[__XE\)`B)WHE4)`2)'"3H -XMHCO]_X7`#X1Y_?__Z6G^__^+3>2%R8UT)@!T&K`!BTWD@\`!.<*+21R)3>0/ -XMCLC^__^%R77HQT7P`````.GL_?__D(VT)@````!5NF0```")Y5=64X/L#*%4 -XMF0L(BSTT=PH(.?@/A$L!``"+%7QW"@B-<`2AX%T)"(E5[(E%\(-M[`&#?>S_ -XM#X0(`0``.?YR(.FF````C70F`(M5\(M$@C3VQ$!T*(/&!#GW#X:+````BP:I -XM````0'5./?\```!VV8D$).BM./W_]L1`==B+!CW_````=G6)!"3HESC]_^MR -XMBU7PBT2:-/;$0'62@?O_````=S>+5?"+1)HT]L0%#X5Z____@\8$.?!="0B)1>R)5?"#;>P!@WWL_W1E.?YR%>OPBU7PBT2:-/;$0'5`@\8$ -XM.?=VW8L>]\,```!`=>^!^_\```!VVXD<).@\-_W_Z]B+5?"+1)HT]L1`=+6# -XMQ@0Y]W:NBQ[WPP```$!UI('[_P```';;B1PDZ`TW_?^0Z]53B<.#[`2I````0'00@_M?N`,` -XM``!T.X/$!%M=PSW_````=T6AX%T)"(M4F#2`YD"X`0```'7@@_M_=B&!^_\` -XM``!W,:'@70D(BT28-/;$`72[@\0$N`(```!;757B==6B<93@^P< -XMHB%P`^%_````*'@70D(BQ5,=PH(B47PB57L@VWH`8-]Z/\/A!4! -XM```Y_G([Z^R+5?"+1)HT]L0!#X6$````@_M_=PKV!)V]40D(!'5UB5PD!(M% -XM[(D$).C<.?W_A]\,```!`==2!^_\```!VL8D<).@^-?W_ -XMB?;KK(/K`74>B?:-O"<`````ZQ>+!NAG_O__@^@!C70F`'4'@\8$.?=WZ8-M -XMZ`&#?>C_=",Y_G,?BP;H0O[__XG#ZPN+!N@W_O__.<-UM8/&!#GW=^[KK(U& -XM_(/$'%M>7UW#.?>)^';R@\0C#R?__N`X```"#Q`1;7<.#P`2C5)D+ -XM"*'(F0L(A53@^P$ -XMBQU4F0L(BQ4T=PH(.=-T+HL-?'<*"(G8Z.?]__^C5)D+"*'(F0L(A53@^P$BQU4F0L(BQ4T=PH(.=-T18L-?'<*"(G8Z(?]__^)PHG#H529"PCH -XMF>'__RL=5)D+",'[`HD<).AHNO__BQ4T=PH(N`X````Y%529"PAV!HD55)D+ -XM"(/$!%M=PXGVC;PG`````%6)Y5=64X/L/(L5)"<)"(E%S*%4F0L(B574BQ4T -XM9`D(B470H9QW"@B)5>")1=BA-'<*"(/`&(T$D#L%L)@*"`^#8@0``(G0,=N+ -XM=@,``*$T=PH(QP`*````@\`$@_X5HS1W"@BXI.8("'0%N+3F"`B+ -XM$(72=!V)P8GVH31W"@B)$(/`!*,T=PH(BU$$@\$$A=)UYZ$T=PH(BQ4D)PD( -XMB1"#P`2+#3!D"0BC-'<*"*$T9`D(C5$$C02!.<)S+(/!"(M1_*$T=PH(B1"# -XMP`2)RJ,T=PH(H31D"0B#P03!X`(#!3!D"0@YPG+7H31W"@C'``````#'1"0$ -XMQ)@*",<$)"!)"0CH0AS__X7`=`V#/20G"0@Z#X1L`P``Z'QH``"-1?")!"3H -XM(4```(/H`0^%:@4``(M-\('Y``$``']#H7!W"@@/MM$/M@0"/!MT,P^'O`(` -XM`#P"="D\!)`/A<@"```Q_X,]-&0)"`''1=P!````=UKHTW@``,=%W`````#K -XM3*$T=PH(@\`$.P6PF`H(#X-7`@``B4PD!#'_QP0D,&0)".B$)P$`H31W"@B+ -XM5?")$(U0!(D5-'<*",=`!`````#HU6<``,=%W`````"A-'<*"#T`=@D(=Q?K -XM&L<``````(/H!#T`=@D(HS1W"@AV!8,X"G7FQP``````BTWV)1?"#^P$/AKH```"#??!;#X2P````A?]T"3EUS`^$T````,=$)`0J```` -XMQP0D,&0)".B^)@$`QP0D,&0)".@2)P$`H529"P@]`'8)"'(,.P4T=PH(#X:F -XM`@``B?"#_A6B2)D+"`^$)`(``,<$)`````#HKNC__SQD#X0D`@``@_X5N`!V -XM"0@/A&H"``"C5)D+"*$P9`D(B?*#P`3H9-+__XL5-&0)"*$P9`D(@^H!B14T -XM9`D(QP20`````,<%)"<)"#H```")\.CX_/__/&2)PW1'A-MT7(#[9`^4P(M5 -XMX(72#X3B````#[[#@\0\6UY?7<.#/20G"0@_#X0=`@``,<"#_A4/E<"-!,7\ -XM____`054F0L(Z0G___^#/20G"0@_#X4)`0``@WW4.@^%_P```#';BU74BT7@ -XMB14D)PD(BU78.16<=PH(HS1D"0AT$XD5G'<*".A+YO__/&0/A`H!``"+1="` -XM^V2C5)D+"`^$"`,``(M%W(7`#X5J____A-L/A6+___^A-&0)"(7`#X6&_/__ -XMQT0D!"H```#'!"0P9`D(QP4D)PD(.@```.A$)0$`Z6/\___H6G8``#'_QT7< -XM`````)#IS?W__X3`#X06____C78`Z5G___\\8710#X1,`0``B0T49`D(QP0D%&0)".BH -XM/@``NPX````Q_\=%W`$```#I9_W__[@!````Z:/^__^^%@```+\!````QT7< -XM`````.E'_?__H31D"0B#Z`&CV)D+".B#5```Z/Y4``#I>/S__X/$/+AD```` -XM6UY?7<.^%0```+\!````QT7<`````.D(_?__QP0D`````.@*Z/__/&0/A=S] -XM__^+%31D"0BA,&0)"(/J`8D5-&0)",<$D`````#H4G4``(M5V#D5G'<*"'02 -XMBU78B16<=PH(Z,GD__\\9'2,BT70QP4D)PD(/P```*-4F0L(Z<_]__^A-'<* -XM".F,_?__H3!D"0B)\H/`!.CUS___/&0/A8G]___I/OW__S'`@_X5#Y3`@^@! -XM)?___W^CG'<*".ANY/__/&0/A%4!``"#_A6X`'8)"`^$/0$``*-4F0L(Z53@^P4QP4T -XM9`D(`````,8%S)D+"`#H;OC__\=$)`3$F`H(QP0D($D)"(G#Z*@5__^%P'0) -XMH=B9"PB%P'43#[[#QP78F0L(`````(/$%%M=P\<%V)D+"`````#H25$``.C$ -XM40``Z+]A``#KTHVV`````(V\)P````!5B>57B==64X/L'(UP_*'(F0L(B4WH -XMA<`/A=D```"AX%T)"(L53'<*"(E%\(E5[(-MZ`&#?>C_#X0@`0``.?YS.^OL -XMBU7PBT2:-/;$`0^%A````(/[?W<*]@2=O5$)"`1U=8E<)`2+1>R)!"3H*R_] -XM_X7`=6*#[@0Y]W>SBQ[WPP```$!UW('[_P```':UB1PDZ.8J_?_KLHM5\(M$ -XMFC3VQ`%U)H/[?W<*]@2=O5$)"`1U%XE<)`2+1>R)!"3HVB[]_X7`#X1E____ -XM@^X$.?)PW?!@^X$.?=WNHL&Z'SS__\YPW3N@VWH`8-]Z/]U -XML(U&!(/$'%M>7UW#C58$B?@YUW/O@\053@^P$BQU4F0L(@?L` -XM=@D(=#.+#7QW"@BZ`'8)"(G8Z.3]__^C5)D+"*'(F0L(A53@^P$H529 -XM"P@]`'8)"'0TBPU\=PH(N@!V"0CHB/W__XL55)D+"(G#Z.O6__^A5)D+""G8 -XMP?@"B00DZ*FP__^Z#@```(/$!(G06UW#C;8`````C;\`````58GE5E.[`'8) -XM"(/L$*$`=@D(J0```$!U,8LUX%T)".L5BT2&-/;$0'0@@\,$BP.I````0'44 -XM/?\```!VY(D$).B'*/W_]L1`=>`['31W"@BX9````'0=@P5P=@H(`8`%B)@* -XM"`''!"0`````Z(_&__\/OL"#Q!!;7EW#D(UT)@!5N&0```")Y8/L&(EU_(LU -XM5)D+"#LU-'<*"(E=^'-GBQ[WPP```$!U1X'[_P```'=_H>!="0B+1)@T9H7` -XM>%&!^_\```!W?:'@70D(BT28-/;$$'0;@?O_````=WBAX%T)"(N$F#0(``#K -XM.9"-="8`C48$HU29"PC'!"0!````Z+Q@```QP(M=^(MU_(GL7<.!^_\```!W -XM(J'@70D(BX28-`0``(D&C48$HU29"PCKR(D<).B4)_W_ZX")'"3HFBG]_^O@ -XMB1PDZ(`G_?^-="8`Z7O___^)'"3H'R[]_XUV`.O"C;0F`````(V\)P````!5 -XMB>575E.#[`R+#7QW"@B+%31W"@BA5)D+".@1\?__BS54F0L(.?")QW9"D(UT -XM)@"+'O?#````0'4L@?O_````=TZAX%T)"(M$F#1FA!= -XM"0B+A)@T!```B0:#Q@0Y]W?#H31W"@B)/529"P@YQW8%HU29"PB#Q`RX#@`` -XM`%M>7UW#B?:)'"3HQ";]_^NQB1PDZ,HH_?_KP(VV`````(V_`````%6)Y5=6 -XM4X/L#(L-?'<*"(L5-'<*"*%4F0L(Z&'P__^+-529"P@Y\(G'#X:G````H>!= -XM"0B)1?#K'HVT)@````"+5?"+1)HT]L0!=2J#Q@0Y]P^&?P```(L>]\,```!` -XM=>N!^_\```!VUXD<).@[)OW_]L0!=-:!^_\````/AZ$```"+5?"+1)HT]L00 -XM#X5[````@\8$.?=V/8L>]\,```!`=>^!^_\```!W3*'@70D(BT28-&:%P'G9 -XM@?O_````=T"AX%T)"(N$F#0$``")!H/&!#GW=\.A-'<*"(D]5)D+"#G'=@6C -XM5)D+"(/$#+@.````6UY?7<.)'"3HK27]_^NSB1PDZ+,G_?^)!NO"@?O_```` -XM=QN+5?"+A)HT"```B0;KK(D<).B!)?W_Z5G___^)'"3H)"S]_XD&ZY.-="8` -XM58GE5U93@^P,BPU\=PH(BQ4T=PH(H529"PCH(>___XLU5)D+"#GPB<=V0I"- -XM="8`BQ[WPP```$!U+('[_P```'=.H>!="0B+1)@T]L00=!:!^_\```!W0J'@ -XM70D(BX28-`@``(D&@\8$.?=WPZ$T=PH(B3U4F0L(.<=V!:-4F0L(@\0,N`X` -XM``!;7E]=PXGVB1PDZ-0D_?_KL8D<).AZ*_W_Z\"0D)"0D)"0D)"0D)!5,<") -XMY5=64X/L+.L1C78`@\`!/0`!```/A(0```"`N,"K"P@>=>F^P*L+"(E%X(U% -XMX+N`````QT7H`````(U][(E%[,=%\`(```"0C70F``^V%#.-0O\\`78M@/HU -XM="B)V(/@?XE%Y`^V!#.)!"3HK)L``,=$)`@`````B3PDB40D!.@8GP``@\,! -XM@?L``0``=;V+1>#&!#`U@\0L6UY?7<-F,<#K"H/``3T``0``=!.`N,"D"P@> -XM=>V^P*0+".EH____BQ7(F0L(N!L```"^P*0+"(72#X50____Z4;____K#9"0 -XMD)"0D)"0D)"0D)!5B>564X/L$(L=8)D+"(7;=5^+#<"E"PB%R755BS7@70D( -XMNX````#K+(VT)@````"+1)XTJ0``!`!T!\:#P*L+"`*#PP&!^_\```!_&O?# -XM````0'7M@?O_````=M.)'"3H9R/]_^O-QP5`9`D(`0```(/$$%M>7<.0C;0F -XM`````%6)Y5.#[#2-1>B)1?3'1?@"````QP7(F0L(`````.B=GP``,=(/MH)` -XM*0D(QH+`I`L(`8B"P*L+"(/"`8'Z``$``'7AZ$?^__^-7?3H+____\=%Z!@` -XM``#'1?``````QT7L&````,<$)"L```#H/IH``(D<),=$)`@`````B40D!.BJ -XMG0``QT7L*@```,<$)$T```#H%YH``(D<),=$)`@`````B40D!.B#G0``QT7L -XM)````,<$)$X```#H\)D``(D<),=$)`@`````B40D!.AYD``(D< -XM),=$)`@`````B40D!.CGG```QT7L3@```,<$)&<```#H5)D``(D<),=$)`@` -XM````B40D!.C`G```QT7L/P```,<$)&\```#H+9D``(D<),=$)`@`````B40D -XM!.B9G```QT7L"0```,<$)&H```#H!ID``(D<),=$)`@`````B40D!.ARG``` -XMQT7L!````,<$)&L```#HWY@``(D<),=$)`@`````B40D!.A+G```Z.9=``#H -XM,7<``(/$-%M=PXUT)@"-O"<`````58GE@^P(H3QD"0B%P'0"RF?=@``ZPV0D)"0D)"0D)"0D)"058GE4S';@^P4C;0F```` -XM`(N#Z*4+"(/##(D$).C_K0``@?O0!0``=>>A@)@*",=$)`S2Y@@(QT0D"`$` -XM``#'1"0$`P```(D$),<%X*4+",3F"`C'!>2E"P@(````Z.X!_O^)!"3H5JO^ -XM_\=$)`S<\0@(QT0D"`(```#'1"0$`P```,<%[*4+".CF"`C'!?"E"P@$```` -XMH^BE"PBA@)@*"(D$).BH`?[_B00DZ!"K_O_'1"0,`/((",=$)`@#````QT0D -XM!`,```#'!?BE"PC]Y@@(QP7\I0L(&0```*/TI0L(H8"8"@B)!"3H8@'^_XD$ -XM).C*JO[_QT0D#$3R"`C'1"0(!````,=$)`0#````QP4$I@L($N<(",<%"*8+ -XM"!T```"C`*8+"*&`F`H(B00DZ!P!_O^)!"3HA*K^_\=$)`R`\@@(QT0D"`4` -XM``#'1"0$`P```,<%$*8+""7G"`C'!12F"P@.````HPRF"PBA@)@*"(D$).C6 -XM`/[_B00DZ#ZJ_O_'1"0,1><(",=$)`@&````QT0D!`,```#'!1RF"P@SYP@( -XMQP4@I@L(!P```*,8I@L(H8"8"@B)!"3HD`#^_XD$).CXJ?[_QT0D#*3R"`C' -XM1"0(!P```,=$)`0#````QP4HI@L(7^<(",<%+*8+"#@```"C)*8+"*&`F`H( -XMB00DZ$H`_O^)!"3HLJG^_\=$)`SD\@@(QT0D"`@```#'1"0$`P```,<%-*8+ -XM"&_G"`C'!3BF"PA0````HS"F"PBA@)@*"(D$).@$`/[_B00DZ&RI_O_'1"0, -XMD^<(",=$)`@)````QT0D!`,```#'!4"F"PA[YP@(QP5$I@L(1````*,\I@L( -XMH8"8"@B)!"3HOO_]_XD$).@FJ?[_QT0D#"CS"`C'1"0("@```,=$)`0#```` -XMQP5,I@L(K.<(",<%4*8+"!````"C2*8+"*&`F`H(B00DZ'C__?^)!"3HX*C^ -XM_\=$)`S'YP@(QT0D"`L```#'1"0$`P```,<%6*8+"+GG"`C'!5RF"P@1```` -XMHU2F"PBA@)@*"(D$).@R__W_B00DZ)JH_O_'1"0,[^<(",=$)`@,````QT0D -XM!`,```#'!62F"PC=YP@(QP5HI@L(;````*-@I@L(H8"8"@B)!"3H[/[]_XD$ -XM).A4J/[_QT0D#!SH"`C'1"0(#0```,=$)`0#````QP5PI@L(">@(",<%=*8+ -XM"&T```"C;*8+"*&`F`H(B00DZ*;^_?^)!"3H#JC^_\=$)`Q4\P@(QT0D"`X` -XM``#'1"0$`P```,<%?*8+"#?H"`C'!8"F"PAJ````HWBF"PBA@)@*"(D$).A@ -XM_OW_B00DZ,BG_O_'1"0,6.@(",=$)`@/````QT0D!`,```#'!8BF"PA)Z`@( -XMQP6,I@L(2P```*.$I@L(H8"8"@B)!"3H&O[]_XD$).B"I_[_QT0D#(SS"`C' -XM1"0($````,=$)`0#````QP64I@L(=.@(",<%F*8+"#(```"CD*8+"*&`F`H( -XMB00DZ-3]_?^)!"3H/*?^_\=$)`R\\P@(QT0D"!$```#'1"0$`P```,<%H*8+ -XM"(CH"`C'!:2F"PAP````HYRF"PBA@)@*"(D$).B._?W_B00DZ/:F_O_'1"0, -XME^@(",=$)`@2````QT0D!`,```#'!:RF"PCQY@@(QP6PI@L(!0```*.HI@L( -XMH8"8"@B)!"3H2/W]_XD$).BPIO[_QT0D#/#S"`C'1"0($P```,=$)`0#```` -XMQP6XI@L(M>@(",<%O*8+"&@```"CM*8+"*&`F`H(B00DZ`+]_?^)!"3H:J;^ -XM_\=$)`PX]`@(QT0D"!0```#'1"0$`P```,<%Q*8+",CH"`C'!I?[_QT0D#,3T"`C'1"0(%@```,=$)`0#````QP7RF"P@;````H^2F"PBA@)@*"(D$).CJ -XM^_W_B00DZ%*E_O_'1"0,#.D(",=$)`@8````QT0D!`,```#'!?2F"PC]Z`@( -XMQP7XI@L(,````*/PI@L(H8"8"@B)!"3HI/O]_XD$).@,I?[_QT0D#"?I"`C' -XM1"0(&0```,=$)`0#````QP4`IPL(QNL(",<%!*<+"!0```"C_*8+"*&`F`H( -XMB00DZ%[[_?^)!"3HQJ3^_\=$)`PL]0@(QT0D"!H```#'1"0$`P```,<%#*<+ -XM"$'I"`C'!1"G"P@W````HPBG"PBA@)@*"(D$).@8^_W_B00DZ("D_O_'1"0, -XM6^D(",=$)`@;````QT0D!`,```#'!1BG"PA/Z0@(QP4````QT0D -XM!`,```#'!3RG"PC`Z0@(QP5`IPL(30```*,XIPL(H8"8"@B)!"3H`/K]_XD$ -XM).AHH_[_QT0D#/;I"`C'1"0('P```,=$)`0#````QP5(IPL(Y^D(",<%3*<+ -XM"$<```"C1*<+"*&`F`H(B00DZ+KY_?^)!"3H(J/^_\=$)`QH]0@(QT0D""`` -XM``#'1"0$`P```,<%5*<+"`WJ"`C'!5BG"PA1````HU"G"PBA@)@*"(D$).AT -XM^?W_B00DZ-RB_O_'1"0,*NH(",=$)`@A````QT0D!`,```#'!6"G"P@9Z@@( -XMQP5DIPL(3@```*-*<+ -XM"&/J"`C'!7RG"P@/````HW2G"PBA@)@*"(D$).BB^/W_B00DZ`JB_O_'1"0, -XMM/4(",=$)`@D````QT0D!`,```#'!82G"PAPZ@@(QP6(IPL(,P```*.`IPL( -XMH8"8"@B)!"3H7/C]_XD$).C$H?[_QT0D#.3U"`C'1"0()0```,=$)`0#```` -XMQP60IPL(B.H(",<%E*<+"!4```"CC*<+"*&`F`H(B00DZ!;X_?^)!"3H?J'^ -XM_\=$)`P@]@@(QT0D""8```#'1"0$`P```,<%G*<+"*#J"`C'!:"G"P@6```` -XMHYBG"PBA@)@*"(D$).C0]_W_B00DZ#BA_O_'1"0,6/8(",=$)`@G````QT0D -XM!`,```#'!:BG"PBWZ@@(QP6LIPL(+````*.DIPL(H8"8"@B)!"3HBO?]_XD$ -XM).CRH/[_QT0D#,CJ"`C'1"0(*````,=$)`0#````QP6TIPL(;/`(",<%N*<+ -XM"&$```"CL*<+"*&`F`H(B00DZ$3W_?^)!"3HK*#^_\=$)`SCZ@@(QT0D""D` -XM``#'1"0$`P```,<%P*<+"$+P"`C'!<2G"PAB````H[RG"PBA@)@*"(D$).C^ -XM]OW_B00DZ&:@_O_'1"0,#>L(",=$)`@J````QT0D!`,```#'!BG"P@Q````H^"G"PBA@)@*"(D$).@L]OW_B00DZ)2?_O_'1"0, -XMY/8(",=$)`@M````QT0D!`,```#'!?"G"P@DZP@(QP7TIPL(/0```*/LIPL( -XMH8"8"@B)!"3HYO7]_XD$).A.G_[_QT0D#$'K"`C'1"0(+@```,=$)`0#```` -XMQP7\IPL(-.L(",<%`*@+"!@```"C^*<+"*&`F`H(B00DZ*#U_?^)!"3H")_^ -XM_\=$)`P0]P@(QT0D""\```#'1"0$`P```,<%"*@+"%WK"`C'!0RH"PAK```` -XMHP2H"PBA@)@*"(D$).A:]?W_B00DZ,*>_O_'1"0,4/<(",=$)`@P````QT0D -XM!`,```#'!12H"PANZP@(QP48J`L(1@```*,0J`L(H8"8"@B)!"3H%/7]_XD$ -XM).A\GO[_QT0D#'#W"`C'1"0(,0```,=$)`0#````QP4@J`L(Z^@(",<%)*@+ -XM"$4```"C'*@+"*&`F`H(B00DZ,[T_?^)!"3H-I[^_\=$)`RT]P@(QT0D"#(` -XM``#'1"0$`P```,<%+*@+"'CK"`C'!3"H"PA2````HRBH"PBA@)@*"(D$).B( -XM]/W_B00DZ/"=_O_'1"0,Y/<(",=$)`@S````QT0D!`,```#'!3BH"PB%ZP@( -XMQP4\J`L(2````*,TJ`L(H8"8"@B)!"3H0O3]_XD$).BJG?[_QT0D#)GK"`C' -XM1"0(-````,=$)`0#````QP5$J`L(D>L(",<%2*@+"`,```"C0*@+"*&`F`H( -XMB00DZ/SS_?^)!"3H9)W^_\=$)`P0^`@(QT0D"'H```#'1"0$`P```,<%4*@+ -XM"*GK"`C'!52H"PAX````HTRH"PBA@)@*"(D$).BV\_W_B00DZ!Z=_O_'1"0, -XM./@(",=$)`A[````QT0D!`,```#'!5RH"PBZZP@(QP5@J`L(>0```*-8J`L( -XMH8"8"@B)!"3H2H"P@J```` -XMH]RH"PBA@)@*"(D$).AN\/W_B00DZ-:9_O_'1"0,V/D(",=$)`A`````QT0D -XM!`,```#'!>RH"PBW[`@(QP7PJ`L($@```*/HJ`L(H8"8"@B)!"3H*/#]_XD$ -XM).B0F?[_QT0D#`#Z"`C'1"0(00```,=$)`0#````QP7XJ`L(PNP(",<%_*@+ -XM"$P```"C]*@+"*&`F`H(B00DZ.+O_?^)!"3H2IG^_\=$)`PD^@@(QT0D"$(` -XM``#'1"0$`P```,<%!*D+",WL"`C'!0BI"PAI````HP"I"PBA@)@*"(D$).B< -XM[_W_B00DZ`29_O_'1"0,3/H(",=$)`A#````QT0D!`,```#'!1"I"PC8[`@( -XMQP44J0L(3P```*,,J0L(H8"8"@B)!"3H5N_]_XD$).B^F/[_QT0D#(3Z"`C' -XM1"0(1````,=$)`0#````QP4.H(",<%(*D+""````"C&*D+"*&`F`H( -XMB00DZ!#O_?^)!"3H>)C^_\=$)`RT]0@(QT0D"$4```#'1"0$`P```,<%**D+ -XM"._L"`C'!2RI"P@S````HR2I"PBA@)@*"(D$).C*[OW_B00DZ#*8_O_'1"0, -XM"^T(",=$)`A&````QT0D!`,```#'!32I"P@![0@(QP4XJ0L((P```*,PJ0L( -XMH8"8"@B)!"3HA.[]_XD$).CLE_[_QT0D##KM"`C'1"0(1P```,=$)`0#```` -XMQP5`J0L(*>T(",<%1*D+""0```"C/*D+"*&`F`H(B00DZ#[N_?^)!"3HII?^ -XM_\=$)`QA[0@(QT0D"$@```#'1"0$`P```,<%3*D+"%7M"`C'!5"I"P@-```` -XMHTBI"PBA@)@*"(D$).CX[?W_B00DZ&"7_O_'1"0,A>T(",=$)`A)````QT0D -XM!`,```#'!5BI"PAY[0@(QP5X(",<%C*D+"`$```"CA*D+"*&`F`H( -XMB00DZ)KL_?^)!"3H`I;^_\=$)`S(^@@(QT0D"$X```#'1"0$`P```,<%E*D+ -XM"#_N"`C'!9BI"P@I````HY"I"PBA@)@*"(D$).A4[/W_B00DZ+R5_O_'1"0, -XM7>X(",=$)`A/````QT0D!`,```#'!:"I"PA2[@@(QP6DJ0L($P```*.^X(",<%L*D+"#8```"CJ*D+"*&`F`H(B00DZ,CK_?^)!"3H,)7^ -XM_\=$)`PP^P@(QT0D"%$```#'1"0$`P```,<%N*D+"(?N"`C'!;RI"P@\```` -XMH[2I"PBA@)@*"(D$).B"Z_W_B00DZ.J4_O_'1"0,5/L(",=$)`A2````QT0D -XM!`,```#'!<2I"PBA[@@(QP7(J0L(.@```*/`J0L(H8"8"@B)!"3H/.O]_XD$ -XM).BDE/[_QT0D#'S["`C'1"0(4P```,=$)`0#````QP70J0L(J.X(",<%U*D+ -XM"#L```"CS*D+"*&`F`H(B00DZ/;J_?^)!"3H7I3^_\=$)`SD\@@(QT0D"%0` -XM``#'1"0$`P```,<%W*D+"+;N"`C'!>"I"PA0````H]BI"PBA@)@*"(D$).BP -XMZOW_B00DZ!B4_O_'1"0,SNX(",=$)`A5````QT0D!`,```#'!>BI"PC"[@@( -XMQP7LJ0L(8````*/DJ0L(H8"8"@B)!"3H:NK]_XD$).C2D_[_QT0D#)/G"`C' -XM1"0(5@```,=$)`0#````QP7TJ0L(Y^X(",<%^*D+"$0```"C\*D+"*&`F`H( -XMB00DZ"3J_?^)!"3HC)/^_\=$)`R@^P@(QT0D"%<```#'1"0$`P```,<%`*H+ -XM"/7N"`C'!02J"P@N````H_RI"PBA@)@*"(D$).C>Z?W_B00DZ$:3_O_'1"0, -XMV/L(",=$)`A8````QT0D!`,```#'!0RJ"P@![P@(QP40J@L(2@```*,(J@L( -XMH8"8"@B)!"3HF.G]_XD$).@`D_[_QT0D#`#\"`C'1"0(60```,=$)`0#```` -XMQP48J@L(%N\(",<%'*H+"%,```"C%*H+"*&`F`H(B00DZ%+I_?^)!"3HNI+^ -XM_\=$)`PL[P@(QT0D"%H```#'1"0$`P```,<%)*H+""'O"`C'!2BJ"PA4```` -XMHR"J"PBA@)@*"(D$).@,Z?W_B00DZ'22_O_'1"0,+/P(",=$)`A;````QT0D -XM!`,```#'!3"J"PA%[P@(QP4TJ@L(5P```*,LJ@L(H8"8"@B)!"3HQNC]_XD$ -XM).@NDO[_QT0D#&3\"`C'1"0(7````,=$)`0#````QP4\J@L(4.\(",<%0*H+ -XM"%@```"C.*H+"*&`F`H(B00DZ(#H_?^)!"3HZ)'^_\=$)`R,_`@(QT0D"%T` -XM``#'1"0$`P```,<%2*H+"%GO"`C'!4RJ"PA?````HT2J"PBA@)@*"(D$).@Z -XMZ/W_B00DZ**1_O_'1"0,N/P(",=$)`A>````QT0D!`,```#'!52J"PAF[P@( -XMQP58J@L(7@```*-0J@L(H8"8"@B)!"3H].?]_XD$).A\(",=$)`AA````QT0D!`,```#'!7BJ"PB/[P@(QP5\J@L(+P```*-TJ@L( -XMH8"8"@B)!"3H(N?]_XD$).B*D/[_QT0D#$3]"`C'1"0(8@```,=$)`0#```` -XMQP6$J@L(KN\(",<%B*H+"#\```"C@*H+"*&`F`H(B00DZ-SF_?^)!"3H1)#^ -XM_\=$)`QP_0@(QT0D"&,```#'1"0$`P```,<%D*H+"+_O"`C'!92J"PAC```` -XMHXRJ"PBA@)@*"(D$).B6YOW_B00DZ/Z/_O_'1"0,L/T(",=$)`AD````QT0D -XM!`,```#'!9RJ"PC2[P@(QP6@J@L(9````*.8J@L(H8"8"@B)!"3H4.;]_XD$ -XM).BXC_[_QT0D#/3]"`C'1"0(90```,=$)`0#````QP6HJ@L(YN\(",<%K*H+ -XM"%P```"CI*H+"*&`F`H(B00DZ`KF_?^)!"3H?`(",=$)`AJ````QT0D!`,```#'!>2J"PAK\`@(QP7HJ@L(6P```*/@J@L( -XMH8"8"@B)!"3HK.3]_XD$).@4CO[_QT0D#*S^"`C'1"0(:P```,=$)`0#```` -XMQP7PJ@L(D_`(",<%]*H+"$,```"C[*H+"*&`F`H(B00DZ&;D_?^)!"3HSHW^ -XM_\=$)`RY\`@(QT0D"&P```#'1"0$`P```,<%_*H+"*;P"`C'!0"K"PA"```` -XMH_BJ"PBA@)@*"(D$).@@Y/W_B00DZ(B-_O_'1"0,W?`(",=$)`AM````QT0D -XM!`,```#'!0BK"PC0\`@(QP4,JPL(5@```*,$JPL(H8"8"@B)!"3HVN/]_XD$ -XM).A"C?[_QT0D#`;Q"`C'1"0(;@```,=$)`0#````QP44JPL(^O`(",<%&*L+ -XM"%4```"C$*L+"*&`F`H(B00DZ)3C_?^)!"3H_(S^_\=$)`PG\0@(QT0D"&\` -XM``#'1"0$`P```,<%(*L+"!_Q"`C'!22K"PA9````HQRK"PBA@)@*"(D$).A. -XMX_W_B00DZ+:,_O_'1"0,0_$(",=$)`AP````QT0D!`,```#'!2RK"P@[\0@( -XMQP4PJPL(.0```*,HJPL(H8"8"@B)!"3H"./]_XD$).APC/[_QT0D#.C^"`C' -XM1"0(<0```,=$)`0#````QP4XJPL(8?$(",<%/*L+""$```"C-*L+"*&`F`H( -XMB00DZ,+B_?^)!"3H*HS^_\=$)`P,_P@(QT0D"'(```#'1"0$`P```,<%1*L+ -XM"&_Q"`C'!4BK"P@B````HT"K"PBA@)@*"(D$).A\XOW_B00DZ.2+_O_'1"0, -XM,/\(",=$)`AS````QT0D!`,```#'!5"K"PAT\0@(QP54JPL(=P```*-,JPL( -XMH8"8"@B)!"3H-N+]_XD$).B>B_[_QT0D#&C_"`C'1"0(=````,=$)`0#```` -XMQP5AD"0BC*&4)"*'`+0D( -XM]]`C!0!E"0@+!;PM"0BC`&4)"*',+0D(]]`C!01E"0@+!<@M"0BC!&4)"*'8 -XM+0D(]]`C!0AE"0@+!=0M"0BC"&4)"*'D+0D(BPW\70D(]]`C!0QE"0@+!>`M -XM"0B%R:,,90D(=2JAM'8*",=$)`0`90D(B00DZ'*$``"#P`$/A`C____'!61D -XM"0@!````R<.A1)D+".O4C;8`````58GE4X'L)"```*%H9`D(QT7X`````(7` -XM=`B)!"3H_HD``(L58&0)"#'`QP5H9`D(`````(72=`F!Q"0@``!;7<.-1?B) -XM1"0(H;1V"@C'1"0$?V8$0(D$).B__/S_BT7XAB-==B) -XM'"3HC`#]_\=$)`0"````B1PDZ(S[_/^)="0(B5PD!,<$)`$```#H*/O\_\=$ -XM)`1@'@4(B30DZ&Q^_?^+#?Q="0B%R70ZH429"PC'1"0$@&0)"(D$).C]@@`` -XMB30DB2L)",<$),!D"0CH -XMOWX``(LU="T)"#')BQUX+0D(#[8]<&0)"+@!````T^"%QG45#[:1DBL)"#J1 -XM8"L)"'0&B)%@*PD(A<-T"(GXB(%@*PD(@\$!@_D9='^_XD$).@]W_[_B00DZ(6W__^+-?Q="0B%]@^$ -XM]@$``*%$F0L(QT0D!(!D"0B)!"3HHGX``(/``0^$+@(``*&`9`D(BPV<9`D( -XMBQ6D9`D(BQV@9`D(H\!D"0BAA&0)"(L]D&0)"(LUF&0)"(D-W&0)"*/$9`D( -XMH8AD"0B)%>1D"0B)'>!D"0B)/=!D"0BCR&0)"*&,9`D(B3789`D(B3T090D( -XMH\QD"0BAE&0)"*/49`D(H:AD"0BCZ&0)"*&`9`D(HP!E"0BAA&0)"*,$90D( -XMH8AD"0BC"&4)"*&,9`D(HPQE"0BAE&0)"*,490D(B34890D(H:AD"0B)#1QE -XM"0B)%21E"0B)'2!E"0BC*&4)",<$)(!D"0CH.WT``,<$)(!D"0BC:)D+".C: -XM?```QP0D@&0)"*+`F0L(Z.E\``"+70BC1"L)"*%(+0D(]]`C!8!D"0@+!40M -XM"0BC@&0)"*%4+0D(]]`C!81D"0@+!5`M"0BCA&0)"*%@+0D(]]`C!8AD"0@+ -XM!5PM"0BCB&0)"*%L+0D(]]`C!8QD"0@+!6@M"0B%VZ.,9`D(=7;'1"0$8"L) -XM",<$)(!D"0CHN7L``(U=Y,=$)`0`G@<(QP0D'````.A>^?S_B1PDZ.;Y_/_' -XM1"0$'````(D<).CF]/S_QT0D"`````")7"0$QP0D`@```.A^]/S_,<#'!6QD -XM"0@!````Z6S]__^AM'8*".D%_O__QP0D`&4)".@;?```AP``BPW\70D(A2L)"'0&B)!Y*PD(@\`!@_@7==\PP`^VD)(K"0@X -XMT70..HA@*PD(=`:(D&`K"0B#P`&#^!EUW^DF____C;8`````C;PG`````%6) -XMY8/L",<$)`$```#H#O7__\<%A'<*"`````#'!"0`````Z"C\__^#P`%T?:%@ -XM90D(AJ&$+0D(QT0D!'DK"0C'!"3`9`D(]]`C!0``R<.-="8`Z'M*``#I -XM?/___XVV`````%6)Y8/L&,=$)`2PD`@(@P7$K`L(`<<$),2L"PCHWW7]_XU% -XM^(E$)`2-1?R)!"3H;30``(7`=0>+10B%P'1"H81W"@B%P'11Z(08``#H_Q@` -XM`,<$)`````#HDT,``,<$)`````#H9T$``(M%^(E$)`2+1?R)!"3HI2\``.C0 -XM*```QP0DQ*P+",<%M)D+"`````#HRG3]_\G#BT7XB40D!(M%_(D$).AV+P`` -XMZ]20D)"058GEBT4(78L0B15(=PH(BT`$QP7\F`H(`````*-(F@L(PXVT)@`` -XM``"-O"<`````58GEBT4(7<<%-&4)"`$```"C,&4)",.)]HV\)P````!5B>57 -XM5E.#["R+/31E"0B+=0B%_W1%H3!E"0B_`0```,<%-&4)"`````")!H/$+(GX -XM6UY?7+__S\`@\`$B1:+%4`K"0B_`0```(D$C8"9"PB+!)6`F0L( -XMBPB%R76;C4+_HT`K"0B#Q"R)^%M>7UW#Z(CV__\Q_X7`#XAZ____H;29"PB% -XMP`^%P0```,=%X``````QVXU%[@'8B40D!*&T=@H(QT0D"`$```")!"3H&G3^ -XM_X/X_XG'=&.A8)D+"(7`#X6;````@\,!C47NB5PD"(E$)`2)-"3H$.X``(/` -XM`0^%$____\=$)`@`````QT0D!`````#'!"0`````Z)?Q_/\['8!1"0ARBP^V -XM1>X-```@`(D&Z=_^__^-=@"+5>"%TG5)Z+#S_/^+`(E$)`2AM'8*"(D$).AA -XME@``@\`!="S'1>`!````Z4C____'!"0`````Z'3]__^-="8`Z2K___\/MD7N -XMB0;IC/[__\<&`````.F!_O__D(UT)@!5B>6#[`B+50B%TG0*H4`K"0B#^`A^ -XM"^@T-P``R>ENC/[_@\`!HT`K"0B)%(6`F0L(R<.-M@````"-O"<`````58GE -XM@^P(H;"9"PB%P'04Z,P5``#H1Q8``,<%L)D+"`````#H."8``*$T=PH(QP5\ -XM=PH(`0```,<%1'<*"`````#'!>@D"0C_____R2T`=@D(P?@"PXUT)@"-O"<` -XM````58GE5U:^`0```%.[`'8)"(/L'(L]-'<*"(E%Z*%4F0L(QT7L`````(E% -XM\(L3A=)X,O?"````0'4J@_I_?R4/ML(/MX0`X"`)"*@0#X35````@_HC#X3, -XM````@\,$BQ.%TGG.B1U4F0L(BQ.)V872=$XYRW0&@WG\7'0UA=*-=@!X+O?" -XM````0'4F@_I_C78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U*_;$('4FD(UT)@"# -XMP02)#529"PB+$872=;*A-'<*"#'VHU29"PB#>/P*=$NAC)@*"*/`*PD(H42: -XM"PBCQ"L)"(L#QP0DP"L)"(E$)`3H]?+\_X7`=#J%]HL=5)D+"`^%(O___XM% -XM\*-4F0L(BT7L@\0<6UY?7<.#Z`2C5)D+".NK]L0@#X4K____D.DN____BT7H -XMAT[__X/X_W0I@^@!=0?'1>P!````BQ4T=PH(.?IT##M= -XM\','B=`I^`%%\(G7Z5C___^#?>P!&<`)1>SKV(GV58GE5U93@>R,````H<27 -XM"@C'19@`````A<`/A/,$``#'1"0$Q)@*",<$),!$"0CHS-?^_\=$)`3$F`H( -XMQP0D($4)"(E%G.BUU_[_QT0D!,28"@C'!"1@1PD(B46@Z)[7_O^)PZ$\9`D( -XMA<`/A)@$``#HVA,``,<$)`````#HWN[__X,]A'<*"`$9P/?0"05`*PD(A=MT -XM*HL#AW\_X7`#X5X!```QP4`F0H(`````*%@ -XM9`D(AR!^O\````/C]<```"A<'<*"`^V -XM'`*`^S4/A-,```"$VP^4P#'2BPTXF@L(AC2$0`` -XMB?;H2Q(``.A&(@``QP5$=PH(`````,<%?'<*"`$```#HW3(``.@8B/[_QP7H -XM)`D(_____Z$T=PH(+0!V"0C!^`*)1;#IK@4``+L"````,<`QTNDT____C57L -XMB578C47@C578QT7<`0```(E$)`2)%"3H_&<``(/X`0^$(`$``(/X`G13A"$VP^4P(#[-0^4PNGO_O__/?___W\/A`C____HAN___\<%A'<*"``` -XM``#HAX?^_X'$C````(G86UY?7<,/ML#_)(7@`0D(Z$?L_/^+=>#'!"0*```` -XMZ(R)_O_'1=0`````B770C770Z#KO___'!81W"@@`````B30DZ-@%_O^%P`^% -XMI````(DT).CH^___QT0D!,28"@C'!"1`0PD(Z-G2_O^) -XM19CI\?K__\=$)`2@1PD(B1PDZ*WH_/^%P`^%>OO__\<%`)D*"`$```#I:_O_ -XM_XU%Z(E$)`BAM'8*",=%Z`````#'1"0$?V8$0(D$).@#Z?S_BW7HA?8/A53[ -XM___HI^W__S';A<`/B47[___I(?W__XM%F,<%Z"0)"/____^%P`^$7`8``(M5 -XMF(L"A<`/A$\&``"+,,=$)`1@0PD(B30DZ"#H_/^%P`^$S08``,=$)`1P0PD( -XMB30DZ`CH_/^%P`^$M08``,=$)`3`0PD(B30DZ/#G_/^%P`^%!08``(LU-'<* -XM"('^`'8)"'8B@W[\"G4?Q<=#:%THUT)@!X+O?"````0'4F@_I_ -XMC78`?QX/ML(/MX0`X"`)"*@0=`6#^B-U+_;$('4JD(UT)@"#P02)#529"PB+ -XM$872=;&A-'<*"#'_HU29"PB#>/P*#X2!!0``BP;'!"3`*PD(B40D!.@EZ_S_ -XMA<`/A.<%``"%_XLU5)D+"`^%)____XM%N+X!````QP748PD(`````*-4F0L( -XMH;"9"PB%P'04Z'X,``#H^0P``,<%L)D+"`````#HZAP``(/N`<<%?'<*"`$` -XM``#'!41W"@@`````#X6O^O__Z$@-``"A-'<*"(UP!,<`"@```(DU-'<*",=` -XM!`````"+-31W"@B)\H'J`'8)",'Z`HE5L.E?!```C70F`,=$)`@)````H529 -XM"PC'!"0`=@D(+0!V"0C!^`*)1"0$Z%M&__^%P`^.N0(``.C^]?__B46P@?O_ -XM__]_#X0O^?__Z9_Z___'!"0*````C78`Z%N$_O^A-'<*",=$)`@%````QP0D -XM`'8)""T`=@D(P?@"B40D!.@&1O__Z!$<``"A-'<*",<%?'<*"`$```#'!41W -XM"@@`````QP7H)`D(_____RT`=@D(P?@"B46PZX8QV\<%Z"0)"/_____I)?K_ -XM_XGZ@/H2#X3(`P``#X\,!@``@/H##X4V^O__BS4T=PH(QP7H)`D(_____\<% -XM+&4)"`````#'1:P"````B?*!Z@!V"0C!^@*)5;"+5;"+!)4`=@D(A`"`054F0L(B34T=PH(QT0D!,28"@C'!"1`1`D(Z)[. -XM_O^%P'0,QP0D`````.@^C___H529"PB+5:S'!"0`=@D(+0!V"0C!^`*)19") -XM5"0(B40D!.BG1/__A<`/A=,#``"+3:"%R70WBU6@BP*%P'0NBSC'1"0$8$4) -XM"(D\).@IY/S_A*$L90D(AX`=@D(B76PP7VP`NAZ&``` -XMQP5\=PH(`0```,<%1'<*"`````#I!OS__\=$)`@'````Z87^___'1"0("``` -XM`.F_^___Z,((``"+-31W"@C'1;``````B?.!ZP!V"0C!^P+'1"0$`````,<$ -XM)`$```#'!?!="0@`````QP6<=PH(`````.@RS```Z:+[__^+-31W"@C'!>@D -XM"0C_____QP4L90D(`````,=%K`,```")\"T`=@D(P?@"B46PZ4/\__^#Z`2C -XM5)D+".ER^O__]L0@#X7G^?__Z>OY___H*@@``,<$)`!V"0CH#ML``,=$)`0P -XM*@@(B<>)!"3H/&3]_Z$T=PH(BU68QT0D!&!#"0B)1:2+`HL`B00DZ`GA_/^% -XMP`^4P`^VP.A@\?__@^@!#X0\`@``B3PDZ%]C_?_I"/___\=$)`0`=@D(B30D -XMZ'H0__^%P`^$`?K__Z%4F0L(QT0D"`(```#'!"0`=@D(+0!V"0C!^`*)1"0$ -XMZ/U`__^%P`^.EP,``(/H`0^/2`,``(L5-'<*"#M5M'0-.W6X@D"0@!BS4T=PH(QP4L90D(`0```,=%K`0```#I^_G__Z'88PD( -XMA<`/A`G[__^+?:"%_P^$_OK__XM5H(L"A<`/A/'Z___'1"0$P$4)"(L`B00D -XMZ.?>_/^%P`^%U_K__^G-^O__@P7H)`D(`8LU-'<*",<%+&4)"`$```#'1:P$ -XM````Z93Y___HE@4``,<$)`!V"0CH>M@``,=$)`0P*@@(B<:)!"3HJ&']_\=$ -XM)`0*````B30DZ-3B_/_'``````"A-'<*",<%-'<*"`!V"0B)1:CH>R4``(DT -XM).A3V@``QP0D`@```(E$)`3HX\@``(DT).B[8/W_Z*84``"-1?.)1"0$H;1V -XM"@C'1"0(`0```(D$).@Z8?[_A<`/B-,!```/MD7S@_AYB47L='N#^"!T=HE\ -XM)`3'!"0`=@D(Z*W=_/^+1:2C-'<*"(M%[(/X90^$L@$``(/X80^$.P$``,=$ -XM)`RR`0D(QT0D"`4```"A@)@*",=$)`0&````B00DZ'^__?^)!"3H%[D``.@" -XM>O[_B?;IM/S__^BV)```C;8`````Z6_[__^+5:C'1"0,H`$)",=$)`@"```` -XMB14T=PH(ZZS'!>@D"0C_____Z6#Y___'1"0$P$4)"(D\).A=W?S_A<`/A4WY -XM___I0_G__\<%U&,)"`````"^`@```.@@!```H8"8"@C'1"0,RP$)",=$)`@' -XM````QT0D!`8```")!"3HV[[]_XD$).ASN```Z6+V___'!=1C"0@`````,?;H -XMW0,``*&`F`H(QT0D#+8!"0C'1"0(!@```,=$)`0&````B00DZ)B^_?^)!"3H -XM,+@``.D?]O__Q@7,F0L(`.B?`@``Z!H#``#H%1,``,8%S)D+"`'I[?S__Z&` -XMF`H(QT0D#*L!"0C'1"0(!````,=$)`0&````B00DZ$2^_?^)!"3HW+<``,<% -XM-'<*"`!V"0C'!529"P@`=@D(QT0D!`````#'!"0`````Z.3&``#HKQ(``(D\ -XM).BW7OW_QT6P`````.E[[___H8"8"@C'1"0,I0$)",=$)`@#````QT0D!`8` -XM``")!"3HUKW]_XD$).ANMP``H31W"@C'``````"-"7"@A_X(L]2&4)"(7;C02]`````(E%\*&P -XM=@H(BP2XB320=#R-2_^#P@&%R8E5[(D51&4)"'XIP>("H;!V"@B+=?"+!`;' -XM!!#___\'@\($@^D!=>:+5>R-1!K_HT1E"0B+%>"7"@@Y%41E"0A\)*&P=@H( -XMBTWPBP0!QP20`````(U'`<<%1&4)"`````"C2&4)"(/$"%M>7UW#C70F`(V\ -XM)P````!5B>575E.)TX/L"(MU#(E%[(M]"(7V?F&)R"G0.<9^!H7`?E6)QHM% -XM[(T,B(G*@^H$C02U`````"G"BT7LB4WPC1R8.=IR#XL"@^H$B4'\@^D$.=IS -XM\8M%\#G8QP``````=A:%]GX2BP>#[@&#QP2)`X/#!#E=\'?J@\0(6UY?753B<-T'XL"AE;7<-5B>53@^P$H=R7"@B%P'0_BQTX90D(A=MX+XVV -XM`````(D<)(/K`>CU*@``QP0D`````.C)*```H>"7"@B)!"3H3"(``(/[_W77 -XM@\0$6UW#H3AE"0B)!"3HQ"H``,<$)`T```#HB'?^_\<$)`H```#H?'?^_X/$ -XM!%M=PXVV`````%6)Y5.#[!2+%`"B40D",=$)`0`````B10DZ/W;_/\Y -XM'DZ=?[_C78`C;PG`````%6)Y5=64X/L+(7)B47DB")3?`/ -XMA:`!``"A/&4)"(7`B47B+1>"+#4!E"0B-5`,$BUWRCP*P+"(7;#X36`0``C47P.T7L#X38`0``BT7P)?____O!X`0!PJ$\ -XM90D(B57LB47@>C1P0P?L"@?O___\##X]*`0``BTWLAR)1"0$B=#!X`(#!<"L"PB)!"3H1=[\_XM5Z`$5/&4)"(L- -XM/&4)"(E-W(M%X(E$)`B+5>2)5"0$BT7

`"`P7`K`L(B00DZ!'>_/^+5>`# -XM%3QE"0B-#)4`````D(UT)@"AP*P+"(/"`<<$"`````"#P03VP@-UZ8G8B14\ -XM90D(#0````2#Q"Q;7E]=PZD````$#X6O````C57PQT7H`0```(E5[(L=/&4) -XM"(7;B5W<#XZ1_O__BSW`K`L(,=N+1>B+5>"--(R)!"3H%-G\_X7`==2+5>")="0$ -XMB50D"(M-Y(D,).CZV/S_A@>`=C!^`(- -XM````!.E+____@\0LN#\```!;7E]=PXL-P*P+""7____[P>`$`R)!"3H -XM^];\_XE%Z.D[____B?B#Q"S!^!_!Z!X!^%M>7UW!^`(-````!,.+%3QE"0B) -XM5=SI0/[__XL-/&4)"(E-W.DR_O__D%6)Y5=64X/L'(E%Z(L`B<$E__\_`('A -XM``#`_XE-\(E%[(E4)`2)!"3H$Z4``(G#C4`'@_@'=AF+3>B)VHL!Z`WZ__^# -XMQ!RX`0```%M>7UW#_R2%C`,)"+H!````N"````#HZOG___8%1&4)"`=UZ.O2 -XMBT7PN@$```"#R%SHS_G__XM%[+H!````P?@&@^`'@\`P"T7PZ+;Y__^+1>RZ -XM`0```,'X`X/@!X/`,`M%\.B=^?__N@$```"#9>P'BT7L@\`P"T7PZ(;Y__^# -XMQ!RX`0```%M>7UW#BT7PN@$```"#R%SH:?G__XM%\+H!````@\A5Z%GY__^+ -XM1?"Z`0```(/(*^A)^?__C03=`````/?8B<.#ZQP/B"C___^0C70F`(M%[(G9 -XMN@$```#3^(/@#P^^@'@#"0@+1?#H$OG__X/K!'G=@\0Z,GX__^#?>Q_#X2I````BT7LN@$````)1?"#3?!`BT7PZ*CX__^#Q!RX -XM`0```%M>7UW#BS5(90D(BQ5$90D(BSVP=@H(ZQJ-M"8`````C1RU`````(L$ -XM'X$\D/___P=U+X/J`7GH@^X!#XB`_O__BP2WC1RU`````(D$).BYU/S_C5#_ -XMBP0?@3R0____!W31A?8/B%?^__^-')4`````BT7HN@$````#'+>+"^C]^O__ -XMB0/I"?[__X--\#^Z`0```(M%\.@%^/__Z?/]__]5B>57B<=6B=93@^P,@_H! -XM?Q'K'[H!````N"````#HW?___XGP`P6XF0L(.P7@EPH(?^'WQP````0/A.\` -XM``")^H'B____^\'B!`,5P*P+"(L"AAN)D+"#L%X)<* -XM"'P_#[X%K)@*"(,%:'8*"`&#!3AE"0@!J`''!;B9"P@`````="2H`G08QP0D -XM(````.B6)QU93@^P, -XMA<")1?!T4(L'A%P'6V@\0, -XM6UY?7<,QTHGX.WWP#Y3"Z/?[__^--(>)]^O<58GE5U93@^Q\B56(B<*)18R) -XM382+`(7`#X0$!@``BTV(.P$/A?D%``")5?")3>CK!XM5Z#L"=1?`$BW7P -XM@T7H!(L&A?P@=!#K&I"-="8`BW68@W[\('4, -XM@VV8!(M%\#E%F'?KBU68QP(`````BTWHB0PDZ/?%``")19S'1"0$Q)@*",<$ -XM)"!)"0CH0+O^_X7`=`F`/@Y=9QV(HM%G(-X_"!T#8GVZQ6+ -XM59R#>OP@=0R#;9P$BTWH.4V<=^N+=9S'!@````"+1?"+`(7`B46\=0V+5>B+ -XM`H7`#X2"`@``BTV8BW6@(``(L!.P9T!Y"#P02#Q@2!.?___P=T -XM\HM%O(7`#X5X`@``B4VHB4VLB76TB76PBU7HBQ*%THE5['1R.TWP=FV+??#K -XM$9"-="8`@\<$.?EV7(L'B46\BT6\.47L=>PYSP^"X`(``(M=Z(GZQT7````` -XM`,=%Q`````"+1:PK1:C!^`([1<1]PXGX*T7PT7W`P?@".47`?K.)5:R+5>B) -XM?:B#QP0Y^8E=M(E5L'>DBT68B*T6L*W6TP?@"P?X" -XM*<:%_W4_AC!^@+!^P(YVGT,BT68BU6%6+18@I1=C!?=@"BU78B10DZ'4= -XM``"+3:`Y39@/A*(#``"+1>"%P'X2BW7@B70D!(M%M(D$).B@&P``BU7@*57< -XMBTW@/@WW]__^#Z02#[@2+ -XM`3L_?__Z6_]__\[=>@/AG_]__^+?>B)3:B)3:R)=;2)=;#K$)"-="8` -XM@\<$.?X/AFK]__^+1;P[!W7N.?=R0HM=\(GZQT7(`````,=%S`````"+1;0K -XM1;#!^`([1B)^CG>#X83_?__C;0F`````(/"!(/#!#G1=Q:)T"GXB47`P?@" -XMB47$Z0/]__^-="8`.=YVYHL".P-TUNO>BW6@BT6DB4W8QT7<`````(EUU(EU -XMJ(EUK(E%M(E%L(EUT,=%X`````#ITOW__X7)#XA4`0``BU6LBTVHB=.)5=`I -XMRXE-U(7VBWV@#X@F`0``BTVDB?HK5?")R"M%Z,'Z`L'X`CG"#XYO_?__BT68 -XMBTV)1:")3:3I7/W__XM%Z"M%B,'X`HD$).B4&P``BTVP.4V<#X3:`@`` -XM@'V3``^%S@$``(G[BWWDBW7H*UWDP><"`?Z)7"0$B30DZ((6``"+1?")V8GR -XM`?CH)/+__^F^_?__BT6LZ5?]__^+1>@K18C!^`*)!"3H-AL``(MUL#EUG`^$ -XM60(``(M%Y(E$)`2+5>B)%"3H:!D``(M-Y(M5\"M5C(E,)`2+=>B+#>"7"@C! -XM^@*)-"2+18R)_N@R\?__BT7DBUWH*W7DP>`"`<.)192)'"2)="0$Z/45``"+ -XM1?")V@-%E(GQZ);Q__^+7>3I#_W__XM-C(MUB(E-\(EUZ.D6^O__BTV8BW6< -XMB<^)3:")=:3IQ_[__XM%H#';BU6DB474B46HB46LB56TB56PB470Z9W^__^+ -XM38PI3=#!?=`"BW70C00SB00DZ&,:``"+1:`Y19@/A`L!``"+1>#WV(D$).A* -XM%```BU7B)^8M%\.B?\/__BUWDZ1C\__^+ -XM1=R)1"0$BU6TB10DZ-44``#I>_S__XMUY(ET)`2+1>B)!"3H[A<``(M5\"M5 -XMC(ET)`2+3>C!^@*)#"2+#>"7"@B+18SHO>___^GZ_?__BT6,C0RPBW6XC129 -XMC1RP.=IS#HL"@\($B0&#P00YVG+RQP,`````Z6'___^+19@K18R+%>"7"@C! -XM^`*--`,YUGX"B=:+1=R)1"0$BU6TB10DZ$(4``"+19PK18C!^`(IQHDT).B? -XM$@``Z6;[__^)?"0$BU7HB10DZ!L4``"+=8@I=9R+38PI39C!?9P"P7V8`HM% -XMG"E%F(M5F(D4).AF$@``Z9S[__^)?"0$BU7HB10DZ.(3``"+5>B)^8M%\(/$ -XM?%M>7UWI?N___XE\)`2+=>B)-"3HOQ,``(M%\(GYB?+H8^___^G]^O__C;0F -XM`````(V\)P````!5B>575E.#[!RAA'<*",<%1&4)"`````#'!81W"@@````` -XMQP5(90D(`````(E%\*%XF0L(Z.?V__^A1&4)",<%1&4)"`````"C3&4)"*%( -XM90D(QP5(90D(`````*-090D(H2QW"@CHM?;__X$]-'<*"`!V"0@/AB("``"[ -XM`'8)",=%Y/_____'1>@`````.QU4F0L(3_=1:A1&4)"(D=5)D+"(E% -XMY*%(90D(B47H,=*!^P!V"0@/E,*)V.C,\O__C1R#.1TT=PH(=[^#?>3_#X3$ -XM`0``BPU$90D(H4QE"0B+%>"7"@B%P'0.BQU090D(A=L/A%T!``#'!4QE"0@` -XM````QP5090D(`````*%(90D(N@$```")1>PQP.B\[/__BT7LQT7@`````(7` -XM>&Z+7>"AL'8*"(M-X,'C`HL4&*%`F@L(BP08Z%#V__^AL'8*"(LUX)<*"(L\ -XM&*%`F@L(A?:+%!A^)(L',`Y1>Q]DJ$X90D(.47L?4`[1>!\.XM=X,'C`J%` -XMF@L(NOAO"0B+3>"+!!CHUO7__Z%`F@L(BP08@\,$QP``````@T7@`8M%X#D% -XM.&4)"'W+BT7LHSAE"0B+1>B)!"3HHQ@``(M%Y(D$).AX%@``QP0D`````.C\ -XM"@``Z-=C_O^+1?"CA'<*"(/$'%M>7UW#,RA>)D+".B(]/__ -XMZ7/^__^A1&4)"(E%Y(G!H4AE"0B)1>CI*_[__XVV`````(V_`````%6)Y8/L -XM&(EU^(MU"(E=](E]_(L55)D+"#L5-'<*"'01BUWTBW7XBWW\B>Q=Z0_]__^+ -XM#4QE"0B%R702H>"7"@@K!;B9"P@IR(/X`G[3C02U`````(G7*</_ -XM_S\`@?\`=@D(#Y3`B40D!(D<).B9E0``@_C_=&B#^`$/A(0```"#^/QUEKH! -XM````N%P```#HA_+__XG8N@$```#!^`:#X`>#P##H#X`>#P##H6O+__XU#,+H!````Z$WR__^+7?2+=?B+??R)[%WI3&+^_[H! -XM````N%X```#H+?+__X/[?W1_@\M`N@$```")V.@9\O__Z\K'1"0$Q)@*",<$ -XM)"!)"0CHTZ_^_X7`=`F`/@Y!2QW"@@/E,"!XO__/P`/ML")%"2)1"0$Z/:3``"-4`>#^@9V -XM9@'&.?Y\O"G^@T7P`87;=;:[`'8)".L6C;0F``````'&.?Y\!H-%\`$I_H/# -XM!#L=5)D+"`^#H@```#'`@?L`=@D(#Y3`B40D!(L#)?__/P")!"3HEY,``(U0 -XM!X/Z!G>__R25K`,)"/\DE<@#"0B0@\8!]\8'````C;0F`````'2"@\8!]\8' -XM````=>.-=@#I;____X/&`??&!P```(GV=("#Q@'WQ@<```!UZ(UV`.EM____ -XM@T7P`3'VZ6+___^#Q@3I6O___P'`]]B-=`;]Z4W___^#Q@+I1?___XM%\(D$ -XM).C8%```B30DZ+`2``#'1"0$Q)@*",<$)"!)"0CHS*W^_X7`=`F`/PL0@``BU4,BTT(@_H!B=`/C@D$``"%R:.L;PD(B<@/CO`#```Y -XM%:QO"0BCH&\)"`^$#0$``*%`F@L(QP5`F@L(`````(D$).A<2?[_H;!V"@C' -XM!;!V"@@`````B00DZ$5)_O^AK&\)"+H```$`B<&CX)<*"(G0P?H?]_F-4`&- -XM!(4(````B17(=@H(B00DZ)50``"+%_(L5R'8*"(G8@\,!.<)_VL<$E@````"AR'8* -XM"(DU0)H+"(/``<'@`HD$).@Z4```BQ7(=@H(A=*)QGXKNP$```"AX)<*"(/` -XM`<'@`HD$).@64```B42>_(L5R'8*"(G8@\,!.<)_VL<$E@````")-;!V"@CH -XM\>?__X'$+$(``%M>7UW#.<@/A>O^___'!"3D`PD(Z)[`_/^%P'1'H:QO"0C' -XM1"0(`````,=$)`0`````B00DZ#%I``#'1"0$,"H("(G#B00DZ$]$_?^)7"0$ -XMQP0D`$P)".@_MOW_B1PDZ)=#_?_'!"3L`PD(Z$?`_/^%P'1'H:!O"0C'1"0( -XM`````,=$)`0`````B00DZ-IH``#'1"0$,"H("(G#B00DZ/A#_?^)7"0$QP0D -XMY$L)".CHM?W_B1PDZ$!#_?_'!"3R`PD(Z/"__/^%P`^$*?[__XD$).C4O@`` -XMQT0D"``(``")1"0$C87DWO__B87@O?__B00DZ$#'_/^-1>2-C>3>___'A>#^ -XM__\`````QT7D8P```,=%Z&\```#'1>PC````QT7P`````(E$)`2)#"3H*;4` -XM`(7`B<2)PXD,).CNP/S_C8WDO?__*YW@O?__B8W3>__^)7"0(B40D!.C!QOS_H:QO"0C'A)WDO?__`````(V2] -XM___'1"0(`````,=$)`0`````B00DZ,9G``")'"2)QHE$)`3H9+[\_XDT).A@ -XM30``QT0D!#H```")/"3H#,3\_XV-Y+W__XD,)(E$)`3H.K[\_XU%Y(V-Y+W_ -XM_\=%Y&P```#'1>AI````QT7L(P```,=%\`````")1"0$B0PDZ$VT``"%P(G& -XM#X3[````B<.-1>2)!"3H$L#\_XV-Y+W__RN=W+W__XE,)`3!^P(!PXV%Y-[_ -XM_XE<)`B)!"3HZ\7\_Z&@;PD(QX2=Y-[__P````#'1"0(`````,=$)`0````` -XMB00DZ/=F``"-C>3>__^)#"2)PXE$)`3HC[W\_XD<).B+3```QT0D!#H```") -XM-"3H-\/\_XE$)`2-A>3>__^)!"3H9;W\_XV-Y-[__\>%X/[__P````")3"0$ -XMQP0D($P)".C)L_W_Z2'\__^X&````.D&_/__N%````"0C70F`.GH^___C8WD -XMO?__C87DWO__B40D!(F-W+W__XD,).@IOOS_Z2]__^-C>3>__^) -XM1"0$B0PDZ`R^_/_KA8VT)@````"-O"<`````58GE5E.#[""+70RAK&\)"(MU -XM"(D#H:!O"0B)!HU%\(E$)`BAM'8*",=$)`1H=`A`B00DZ*2^_/^#P`%T%P^W -XM1?)FA7<.0 -XMC70F``^WP+H!````B0:AK&\)"#L#==^AH&\)"#'2.P8/E<*#Q"!;B=!>7<.0 -XMC;0F`````%6)Y8/L&(72B5WTB=.)=?B)QHE]_'0%@#H`=22+1@B)!"3H&4L` -XM`,=&"`````"+7?2+=?B+??R)[%W#D(UT)@")%"3HU,/\_XUX`8M&"(E\)`2) -XM!"3H!DP``(E\)`B)7"0$B48(B00DZ/_"_/_KOY!5B>6#[!B+%,````\.=,/A/@```"+#6AE"0B%R0^%^@```(G'B<8E````(('G -XM````"('F````$(E%\*&`;0D()0```!`Y\'0IA?8/A-X!``"AL&X)"(7`=!B` -XM.`!T$XL5O&X)"(72=`F`.@`/A9T"``"A@&T)""4````(.?AT+87_#X1J`0`` -XMH>QN"0B%P'0<@#@`=!>+%>!N"0B%TG0-@#H`#X4_`@``C70F`*&`;0D()0`` -XM`"`[1?!T48M%\(7`#X3N````H1!O"0B%P'0]@#@`=#B+%1QO"0B%TG0N@#H` -XM="G'1"0(,#H&",=$)`0!````B00DZ,V]_/^!#8!M"0@````@C;0F`````(M= -XM](MU^(M]_(GL7<.-=@"+#;QN"0B%R0^$^/[__X`Y``^$[_[___?"````$`^% -XM>`$``(G&@>8````0]\(````@#X5W`0``B=@E````((E%\('B````"'1"B=^! -XMYP````@/A8````0)0```"")1?#'1"0(,#H&",=$)`0!```` -XMB0PDZ"N]_/_'!8!M"0@`````B=^!YP````CIAO[__Z$<;PD(A<`/A$O___^` -XM.``/A$+____'1"0(,#H&",=$)`0!````B00DZ.:\_/^!)8!M"0C____?Z1O_ -XM__^AX&X)"(7`#X2N_O__@#@`#X2E_O__QT0D"#`Z!@C'1"0$`0```(D$).BI -XMO/S_@26`;0D(____]^E^_O__H;!N"0B%P`^$-O[__X`X``^$+?[__Z&\;@D( -XMA<`/A"#^__^`.``/A!?^___'1"0(,#H&",=$)`0!````B00DZ%:\_/_V!8-M -XM"0@(=!*AX&X)"(7`=`F`.``/A<\```#V!8-M"0@@=!*A'&\)"(7`=`F`.``/ -XMA8T```"!)8!M"0C____OZ;K]__^)QH'F````$`^$N/[__^E]_O__B=@E```` -XM((E%\`^%@_[__XG>@>8````0Z9[^___'1"0(,#H&",=$)`0!````B00DZ,F[ -XM_/^!#8!M"0@````(Z9[]___'1"0(,#H&",=$)`0!````B00DZ**[_/^!#8!M -XM"0@````0Z3S]___'1"0(,#H&",=$)`0!````B00DZ'N[_/^!)8!M"0C____? -XMZ4S____'1"0(,#H&",=$)`0!````B00DZ%2[_/^!)8!M"0C____WZ0K___^) -XM]HV\)P````!5B>6#[!CH%74``,=$)`3$F`H(QP0D\$4)".CAHO[_A7"7"@A_/*$T;PD(A7<.+%?QM"0B%TG3& -XM@#H`=,&A%&X)"(7`=`6`.`!U>*'\;0D(A7<.#Q!!;7EWI -XM=%+^_\=$)`@P.@8(QT0D!`$```")!"3H6+C\_^EK____C;0F`````%6)Y5=6 -XM4X/L+(MU#(M]"(7V?@@[->"7"@A^"(/$+%M>7UW#QT0D!,28"@C'!"0@20D( -XMZ-F?_O^%P`^$H`(``(L5+'<*",=%V`````"+&H7;=!2)T(/`!(L(A``````=#R+ -XM%5"9"PB+#529"PB)T#G*#X=Z`@``+0!V"0C!^`(#1=@YRHE%W(G0#X);`@`` -XM+0!V"0C!^`(#1=B)1>#'1"0$Q)@*",<$)"!)"0CH-9_^_X7`=%*A9&4)"(L= -XMX)<*"`^O'6AV"@@#';B9"PB%P`^$I````#M=X'P,Z`?X__^-M"8`````H61E -XM"0B%P'08H529"P@M`'8)",'X`@-%V#G8#X2(`0``BP<]____!W0XJ0````0/ -XMA(````")PH'B____^\'B!`,5P*P+"(L"AZ#!;B9"P@!@^X!=%N#QP3I0?___Z%4F0L(+0!V"0C!^`(#1=@!PHE% -XMW(E5X.DD____.UW<#XQD____.UW@#XU;____Z(;W__^-M@````#I2____XD$ -XM).BS5/[_@P6XF0L(`8/N`76EQT0D!,28"@C'!"0@20D(Z".>_O^%P'0-H61E -XM"0B%P`^%UP```*'@EPH(.06XF0L(#XP,_O__#[X5K)@*"/;"`0^$I@```(L- -XM:'8*",<%N)D+"`````"#P0&#X@*)#6AV"@@/A-K]__^A0)H+"(L$B(L`A<") -XM1?`/A*,```"-1?")!"3'1"0$`0```.B7_?__H6AV"@B+%;B9"PB-'(4````` -XM`QU`F@L(BP.!/)#___\'#X6+_?__C4H!C12-`````.L#@\$!B0VXF0L(BP.+ -XM!!"#P@0]____!W3HZ6+]___H4O;__XGVZ6S^__^#Z`&CN)D+"(/$+%M>7UW# -XMZ#;V___I'____\=%V`````#'1=P`````QT7@`````.G._?__QP0D(````.C+ -XM4/[_QP6XF0L(`0```.D'_?__B7>E9_/__BQ50;@D(A=)TP8`Z`'2\ -XMH5QN"0B%P`^$N````(`X``^$KP```(L5+&X)"(72#X2A````@#H`#X28```` -XMB00DQT0D"#`Z!@C'1"0$`0```.A1M/S_B5PD!(DT).CY^___H6AN"0B%P'0) -XM@#@`#X6B````H2QN"0C'1"0(,#H&",=$)`0!````B00DZ!:T_/^#Q!!;7EW# -XMQT0D"#`Z!@C'1"0$`0```(D$).CWL_S_QT0D!`$```")-"3HF_O__Z%H;@D( -XMA7>F53?[_QT0D"#`Z!@C' -XM1"0$`0```(D$).AYL_S_Z4'___^0C;0F`````%6)Y5=64X/L'(M]"(L5N)D+ -XM"#G7#X3$````.SW@EPH(#XVX````A?\/A+@```")^(G^@^`'P?X#B47LZS&- -XM=@"+1>P!\#G##Y_`A,!T;<<$)`T```#HED[^_S'2.SW@EPH(QP6XF0L(```` -XM`'UPB?LITXU#!(/X"'82H>1M"0B%P'0)@#@`#X5:`0``A=M_=/?;@_L$?A*A -XM6&\)"(7`=`F`.``/A?H```"`/<"9"P@`=8XYWP^7UW#QP0D#0```.C^3?[_ -XMQP6XF0L(`````(/$'%M>7UW#@_L$?A*A9&\)"(7`=`F`.``/A8@```"`/<"9 -XM"P@`#X2M````B=.)_H'C^````(/F^#GS#X3/````BQ5H=@H(B57PBPU`F@L( -XMBP21@3RP____!W0K.?-](8/#",<$)`D```#HA4W^_SG>?^VA:'8*"(E%\(L- -XM0)H+"(DUN)D+"*&XF0L(B?HIPHE4)`2+5?#!X`(#!)&)!"3H?_G__^LDB5PD -XM"(E<)`2)!"3HZ:[\_\=$)`@P.@8(B5PD!(D$).BEL?S_B3VXF0L(@\0<6UY? -XM7<.+%6AV"@B)5?"+#4":"PCKG8E\)`B)?"0$B00DZ*:N_/_'1"0(,#H&"(E\ -XM)`2)!"3H8K'\_^N[H6AV"@B)1?"+#4":"PCI9/___Y!5B>575E.#[`R+?0BA -XM:'8*"#G'#X3J````.SW(=@H(#X_>````B?LIPX7;#XX``0``]@6LF`H(`0^$ -XMB````(L5:'8*"*%`F@L(BP20BQ"%TG1TBQ7@EPH(B=&#Z0%T(X$\B/___P=U -XM&HT4D.L0C78`BT+X@^H$/?___P=U!8/I`77NB0PDZ%;]__^+%;B9"PBAX)<* -XM"(L-:'8*""G0B40D!*%`F@L(P>("`Q2(B10DZ$SX__^#ZP%T1/8%K)@*"`$/ -XMA7C___^#^P%^%:%`;PD(A`.@")]G5'H01O"0B% -XMP'2R@#@`=*V)WO?>,=N%]G\+ZZ&-="8`H01O"0B#PP''1"0(,#H&",=$)`0! -XM````B00DZ,RO_/\Y\W7@_X!?BF)="0(B70D!(D4).C:K/S_ -XMQT0D"#`Z!@B)="0$B00DZ):O_/_I0O___Z$$;PD(A0C70F -XM`%6)Y5.#["2A)"P)"(U=],=%^`,```#'1?0H+0D(B40D",=$)`0<+`D(B1PD -XMZ`\H``"A$"P)",=%]!@M"0C'1"0$""P)"(D<)(E$)`CH[R<``*%,+`D(QT7T -XM""T)",=$)`1$+`D(B1PDB40D".C/)P``H3@L"0C'1?3X+`D(QT0D!#`L"0B) -XM'"2)1"0(Z*\G``"A8"P)",=%].@L"0C'1"0$6"P)"(D<)(E$)`CHCR<``*%T -XM+`D(QT7TV"P)",=$)`1L+`D(B1PDB40D".AO)P``H20L"0C'1?3(+`D(QT0D -XM!!PL"0B)'"2)1"0(Z$\G``"A$"P)",=%]+@L"0C'1"0$""P)"(D<)(E$)`CH -XM+R<``*%,+`D(QT7TJ"P)",=$)`1$+`D(B1PDB40D".@/)P``H3@L"0C'1?28 -XM+`D(QT0D!#`L"0B)'"2)1"0(Z.\F``"A8"P)",=%](@L"0C'1"0$6"P)"(D< -XM)(E$)`CHSR8``*%T+`D(QT7T>"P)",=$)`1L+`D(B1PDB40D".BO)@``BPW( -XMF0L(A``````ZQ"#QP>`4@_\=```` -XMBU7@BX($+`D(C01`BQR%J&T)"(7;=-D/MC.)\(3`=-")'"3HI:<``(E%[(D$ -XM).@FJOS_BU7@BXH0+`D(B47P@_G_#X2?````@'L!`(GP#[;0=%*+7=B+==P! -XMTP^V`S@$%G1?/#5T6RP!=86+==B-5>R)5"0$B30DZ,`B``"+5>"+@A`L"0B% -XMP'5T#[:"""P)"(@#Z5C___^0C70F`(/$+%M>7UW#BUW8`=,/M@/KN,=%W$`I -XM"0C'1=C`JPL(Z1[___^-!+^-!(4(+`D(B40D!(U%[(E,)`B)!"3HWB,``,8# -XM->D)____BT78C77LB70D!(D$).A$(@``Z?+^__^)1"0(C02_C02%""P)"(UU -XM[(E$)`2)-"3HHB,``.G0_O__C;8`````C;PG`````%6)Y5=64X'L3`@``(U= -XMR(D<).AEK?S_B1PDQT0D!!P```#H9:C\_XU%V(E<)`2)1"0(QP0D`0```.C^ -XMI_S_C478B00DQT0D!&`>!0CH/RO]_XV%R/?__XE%\,<%8&4)"`$```#'!2!W -XM"@CZ`PD(QP0D++((".@RI_S_A<")PW0)@#@`#X6:`P``NS&R"`C'1"0$``@` -XM`,<$)(!E"0CHWC3^_XE<)`3'!"2`90D(Z+JK_/^%P`^.G`(``,<$)`[/"`CH -XM%JC\_X7`#X6>`P``,=*)%91O"0C'!"0*!`D(Z/JG_/^%P`^$9P,``+H!```` -XMB16X;PD(QP0D#00)".C;I_S_QP0D$`0)"*.(;PD(Z,JG_/_'!"03!`D(H\1O -XM"0CH&:;\_\<$)!8$"0BCK&\)".@(IOS_HZ!O"0BAH&T)"(7`="R[H&T)"(UU -XM\(VV`````(ET)`2)!"3H<*[\_XG"B=B#PPSH:.G__XL#A'<*"(7;=&Z`.P!T -XM::$<;PD(AB)1"0$C47LB00DZ%/G__^+ -XM1>B)1"0$BT7LB00DZ,'B__^-1=B)!"3H]B?]_^B!^___@<1,"```6UY?7<.A -XM4&X)"(7`=`F`.``/A0K___^+%4QO"0@QP(72#X3__O__,<"`.@`/E<#I\O[_ -XM_XL5-&\)"#'`A=(/A,+^__\QP(`Z``^5P.FU_O__@_C_#X27`0``A<`/A$$! -XM``"A@)@*"(L=#'8*",=$)`R4"`D(QT0D"!8```#'1"0$!P```(D$).BNAOW_ -XMB5PD!(D$).A"@```H:!M"0C'!:QO"0A0````QP6@;PD(`````,<%N&\)"``` -XM``"%P,<%E&\)"``````/A)O]__^[H&T)"(G8,=*#PPSH[.;__XL#A*#Q!`QP%M>7<.#Q!"P -XM`5M>7<-5B>575C'V4S';@^P,BT4(BSB+@P`L"0B)/"2)1"0$Z'BB_/^%P'08 -XM@\8!@\,4@_X&==^#Q`RX_____UM>7UW#BTT,BP&+402-#+:)!(T(+`D(B12- -XM#"P)"(M%$(D$C1`L"0B#Q`PQP%M>7UW#C78`58GE5U8Q]E,QVX/L#(M]".LV -XMBX80+`D(@_C_="")1"0(C02;C02%""P)"(E$)`2+A@`L"0B)!"3H@R```(/# -XM`8/&%(/[!G0JBT<$A53,=N#[!2-M"8`````BX.D;0D(@\,, -XMB00DZ!\O``"!^^`!``!UYV8QVXUT)@"+@X1O"0B#PPR)!"3H_RX``(/[5'7J -XMH8"8"@C'1"0,&00)",=$)`@!````QT0D!`0```")!"3'!:QM"0CX'`D(Z/N" -XM_?^)!"3H8RS^_\=$)`PO!`D(QT0D"`(```#'1"0$!````,<%N&T)""P$"0BC -XML&T)"*&`F`H(B00DZ+^"_?^)!"3H)RS^_\=$)`P\!`D(QT0D"`,```#'1"0$ -XM!````,<%Q&T)")_1"`BCO&T)"*&`F`H(B00DZ(."_?^)!"3HZRO^_\=$)`Q, -XM!`D(QT0D"`0```#'1"0$!````,<%T&T)",`%"0BCR&T)"*&`F`H(B00DZ$>" -XM_?^)!"3HKRO^_\=$)`QA!`D(QT0D"`4```#'1"0$!````,<%W&T)"$V]"`BC -XMU&T)"*&`F`H(B00DZ`N"_?^)!"3H!_?^)!"3HORK^_\=$)`RI!`D(QT0D"`D```#'1"0$ -XM!````,<%#&X)"*8$"0BC!&X)"*&`F`H(B00DZ!N!_?^)!"3H@RK^_\=$)`R[ -XM!`D(QT0D"`H```#'1"0$!````,<%&&X)"$T;"0BC$&X)"*&`F`H(B00DZ-^` -XM_?^)!"3H1RK^_\=$)`S.!`D(QT0D"`L```#'1"0$!````,<%)&X)",L$"0BC -XM'&X)"*&`F`H(B00DZ*.`_?^)!"3H"RK^_\=$)`SA!`D(QT0D"`P```#'1"0$ -XM!````,<%,&X)"-X$"0BC*&X)"*&`F`H(B00DZ&>`_?^)!"3HSRG^_\=$)`SY -XM!`D(QT0D"`T```#'1"0$!````,<%/&X)"+/1"`BC-&X)"*&`F`H(B00DZ"N` -XM_?^)!"3HDRG^_\=$)`P(!0D(QT0D"`X```#'1"0$!````,<%2&X)"`4%"0BC -XM0&X)"*&`F`H(B00DZ.]__?^)!"3H5RG^_\=$)`P -XM!0D(QT0D"!8```#'1"0$!````,<%M&X)"""_"`BCK&X)"*&`F`H(B00DZ`]^ -XM_?^)!"3H=R?^_\=$)`RM!0D(QT0D"!<```#'1"0$!````,<%S&X)"*;K"`BC -XMN&X)"*&`F`H(B00DZ--]_?^)!"3H.R?^_\=$)`S#!0D(QT0D"!@```#'1"0$ -XM!````,<%V&X)"'CG"`BCT&X)"*&`F`H(B00DZ)=]_?^)!"3H_R;^_\=$)`S0 -XM!0D(QT0D"!D```#'1"0$!````,<%Y&X)",0>"0BCW&X)"*&`F`H(B00DZ%M] -XM_?^)!"3HPR;^_\=$)`S?!0D(QT0D"!H```#'1"0$!````,<%\&X)"*/!"`BC -XMZ&X)"*&`F`H(B00DZ!]]_?^)!"3HAR;^_\=$)`SU!0D(QT0D"!L```#'1"0$ -XM!````,<%_&X)"(T%"0BC]&X)"*&`F`H(B00DZ.-\_?^)!"3H2R;^_\=$)`P# -XM!@D(QT0D"!P```#'1"0$!````,<%"&\)"->\"`BC`&\)"*&`F`H(B00DZ*=\ -XM_?^)!"3H#R;^_\=$)`P3!@D(QT0D"!T```#'1"0$!````,<%%&\)"$D;"0BC -XM#&\)"*&`F`H(B00DZ&M\_?^)!"3HTR7^_\=$)`PD!@D(QT0D"!X```#'1"0$ -XM!````,<%(&\)""$&"0BC&&\)"*&`F`H(B00DZ"]\_?^)!"3HER7^_\=$)`PT -XM!@D(QT0D"!\```#'1"0$!````,<%+&\)"#$&"0BC)&\)"*&`F`H(B00DZ/-[ -XM_?^)!"3H6R7^_\=$)`Q-!@D(QT0D""````#'1"0$!````,<%.&\)"$H&"0BC -XM,&\)"*&`F`H(B00DZ+=[_?^)!"3H'R7^_\=$)`QE!@D(QT0D""$```#'1"0$ -XM!````,<%1&\)"&(&"0BC/&\)"*&`F`H(B00DZ'M[_?^)!"3HXR3^_\=$)`Q^ -XM!@D(QT0D""(```#'1"0$!````,<%4&\)"'L&"0BC2&\)"*&`F`H(B00DZ#][ -XM_?^)!"3HIR3^_\=$)`R6!@D(QT0D"",```#'1"0$!````,<%7&\)"),&"0BC -XM5&\)"*&`F`H(B00DZ`-[_?^)!"3H:R3^_\=$)`RL!@D(QT0D""0```#'1"0$ -XM!````,<%:&\)"/G."`BC8&\)"*&`F`H(B00DZ,=Z_?^)!"3H+R3^_\=$)`S" -XM!@D(QT0D""L```#'1"0$!````,<%>&X)"+\&"0BC;&\)"*&`F`H(B00DZ(MZ -XM_?^)!"3H\R/^_\=$)`S6!@D(QT0D""P```#'1"0$!````,<%H&T)"-,&"0BC -XM?&X)"*&`F`H(B00DZ$]Z_?^)!"3HMR/^_\=$)`SI!@D(QT0D""T```#'1"0$ -XM!````,<%P&X)".8&"0BCI&T)"*&`F`H(B00DZ!-Z_?^)!"3H>R/^_\=$)`S] -XM!@D(QT0D""4```#'1"0$!````,<%=&\)"`````#'!7AO"0@`````H\1N"0BA -XM@)@*",<%@&\)"`T$"0B)!"3HPWG]_XD$).@K(_[_QT0D#!,'"0C'1"0()@`` -XM`,=$)`0$````QP6,;PD(#L\("*.$;PD(H8"8"@B)!"3HAWG]_XD$).CO(O[_ -XMQT0D#"D'"0C'1"0()P```,=$)`0$````QP68;PD(%@0)"*.0;PD(H8"8"@B) -XM!"3H2WG]_XD$).BS(O[_QT0D##D'"0C'1"0(*````,=$)`0$````QP6D;PD( -XM$P0)"*.<;PD(H8"8"@B)!"3H#WG]_XD$).AW(O[_QT0D#$L'"0C'1"0(*0`` -XM`,=$)`0$````QP6P;PD("@0)"*.H;PD(H8"8"@B)!"3HTWC]_XD$).@[(O[_ -XMQT0D#+@("0C'1"0(*@```,=$)`0$````QP6\;PD($`0)"*.T;PD(H8"8"@B) -XM!"3HEWC]_XD$).C_(?[_QP7(;PD(`````,<%S&\)"`````"CP&\)"(/$%%M= -XMPU6)Y8'L2`@``(V%\/?__XE%\(M%"(E=](EU^(E]_,<%('<*"+;1"`B)!"3H -XM`,;]_\=$)`3P(P8(B<.)!"3H?AG]_XL#A<`/A+0```"+$(72#X2J````@_HM -XM#X2V````B9W@]___QX78]___`````,>%W/?__P````")!"2_)`<)".@:D@`` -XMB00DZ%(A_O_'1"0$,"H("(F%S/?__XD$).@<&?W_B[7,]___N04```#\\Z8/ -XMA%W/?__P````!T(,<$)'<``!#H>A7]_\>%V/?__P````#'A=SW__\` -XM````C4,$B87@]___BT,$AG'1"0$`````,<$)"`+"0CHH&\``.F%_O__ -XMB[7,]___O_[>"`BY!0```/SSIG04B[7,]___OS,'"0BY!@```/.F=2^AH&\) -XM",<$)"`+"0B)1"0$Z%UO``#I0O[__XE4)`3'!"0D"PD(Z$AO``#I+?[__XNU -XMS/?__[\6!`D(N0,```#SIG2]B[7,]___OV$'"0BY!0```/SSI@^$40(``(NU -XMS/?__[\3!`D(N0,```#SI@^$.0(``*&@;0D(OJ!M"0B%P'42Z;`#``"#Q@R+ -XM!H7`#X2C`P``BY7,]___B00DB50D!.@(E_S_A#W__^+0@2%P'0R -XMBS"%]G0LBXW<]___A+A#W__^+0@2)!"3HCHP``(D$).@RC_S_B<>+1@2%P'0RBP"% -XMP'0LBX7<]___A<`/AG*_/__BX78]___ -XMA<`/A+S\__\/OL*)1"0$QP0D=```$.BN#_W_Z:3\__^)]HV\)P````!5B>57 -XM5E.#[!R+10R+70C'!2!W"@@UT@@(B47LH:!M"0B%P`^$`P$``+Z@;0D(ZPV# -XMQ@R+!H7`#X3O````B5PD!(D$).C3DOS_AT!``"+%4QO"0@Q -XMP(72=`@QP(`Z``^5P(L5!&\)"*/DF`H(A=)T"H`Z`+@!````=12+%7!O"0@Q -XMP(72=`@QP(`Z``^5P*-X=PH(@\0<6UY?7<.+%8!O"0C'1?"`;PD(A=*)5>AU -XM)HE=#,=%"',``!"#Q!Q;7E]=Z4H._?^#1?`,BT7PBP"%P(E%Z'3:B5PD!(M] -XMZ(D\).BGD?S_AR)/"3H9(S\_XM5\(E""(L5K&\)"*&@ -XM;PD(@7WPI&\)"(D5=)D+"*/$F0L(=`V!??"8;PD(#X4Z____B54,Z!N"0B%P`^$6?[__X`X``^$ -XM4/[__XE$)`2)'"3H[)#\_X7`#Y3`#[;`"05H90D(Z3'^__^+=>RX6`<)"+D$ -XM````_(G'\Z8/A9@```"+1?#'0`@!````H91O"0B#/<1O"0@!BPV(;PD(HL"9 -XM"PBAN&\)"*+(EPH(&<#WT(/@`H7)#Y7""="!??"`;PD(HJR8"@AT#8%]\+QO -XM"0@/A77^__^AK&\)"(E%#*&@;PD(B44(@\0<6UY?7>GER?__N`$```#I'?[_ -XM_XE$)`2)'"3H.Y#\_X7`#Y3`#[;`HVAE"0CI&____XMU[+B1Y`@(N0,```#\ -XMB575E.#[!RA@)@*",=$)`S8"`D(QT0D"`$```#'1"0$!P```(D$).CB -XM;?W_B00DZ'IG``"A@)@*",=$)`QF!PD(QT0D"`(```#'1"0$!P```(D$).BU -XM;?W_B00DZ$UG``"A@)@*"(L=H&\)"(LUK&\)",=$)`P`"0D(QT0D"`,```#' -XM1"0$!P```(D$).A\;?W_B5PD"(ET)`2)!"3H#&<``(`]R)<*"``/A+`"``"A -XM@)@*",=$)`S,[@@(QT0D"`4```#'1"0$!P```(D$).@Z;?W_B00DZ*(6_O_' -XM1"0$,"H("(G'B00DZ'`._?^A@)@*",=$)`R$!PD(QT0D"`0```#'1"0$!P`` -XM`(D$).C[;/W_B7PD!(D$).B/9@``N$7)"`B`/<"9"P@`#X2"`@``B00DZ$46 -XM_O_'1"0$,"H("(G#B00DZ!,._?^A@)@*",=$)`R>!PD(QT0D"`<```#'1"0$ -XM!P```(D$).B>;/W_B5PD!(D$).@R9@``]@6LF`H(`0^$K`$``*&`F`H(QT0D -XM#+('"0C'1"0("@```,=$)`0'````B00DZ&!L_?^)!"3HR!7^_\=$)`0P*@@( -XMB<.)!"3HE@W]_Z&`F`H(QT0D#,0'"0C'1"0("0```,=$)`0'````B00DZ"%L -XM_?^)7"0$B00DZ+5E```/O@6LF`H(J`%T>*@"#X5]`0``H8"8"@C'1"0,M@<) -XM",=$)`@+````QT0D!`<```")!"3HW6O]_XD$).A%%?[_QT0D!#`J"`B)PXD$ -XM).@3#?W_H8"8"@C'1"0,W@<)",=$)`@,````QT0D!`<```")!"3HGFO]_XE< -XM)`2)!"3H,F4``(L=H&T)"(7;#X2/````,?:)]HN&J&T)"(7`=`6`.`!U):&` -XMF`H(QT0D#/0'"0C'1"0(#0```,=$)`0'````B00DZ$QK_?^)!"3HM!3^_\=$ -XM)`0P*@@(B<.)!"3H@@S]_XN&H&T)"(E<)`S'!"3\!PD(B40D"(N&I&T)"(E$ -XM)`3HKF0``(D<).BV"_W_BX:L;0D(@\8,A<`/A77____'!"0*````Z*DG_O^) -XM/"3HD0O]_X/$'%M>7UW#H8"8"@C'1"0,M@<)",=$)`@+````QT0D!`<```") -XM!"3HM&K]_^E/_O__H8"8"@C'1"0,D>0(",=$)`@&````QT0D!`<```")!"3H -XMBFK]_^E+_?__H8"8"@C'1"0,L@<)",=$)`@*````QT0D!`<```")!"3H8&K] -XM_^E^_O__H8"8"@C'1"0,F0<)",=$)`@(````QT0D!`<```")!"3H-FK]_^E4 -XM_?__D%6)Y8M%"%VBX&\)"+C@;PD(PXVT)@````"-O"<`````58GEBT4(78M0 -XM!(L`B17<;PD(H]AO"0BXV&\)",.-=@!5B>53B<.#[`3'!"08````Z'L6``"+ -XM$XL2QT`$_____\=`"`````")$,=`#`````#'0!``````QT`4`````(/$!%M= -XMPXVV`````(V_`````%6)Y5.)PX/L!(7`=$N+0!"%P'0,Z.?____'0Q`````` -XMBT,4Z-C___^+0P2#^/]\"87`?AR#^`)^#(VT)@````#HQXC\_XM#"(D$).@@ -XM%0``B1PDZ!@5``"#Q`1;7<.)]E6)Y5=6B=93@^P,B47PBSJ+&(L7.1.)V74( -XMZQF-="8`B<&+012%P'0W.Q!U\X/!%(G#B4WPC4<$B0:+1@2#Z`&%P(E&!'0J -XMBU,0A=)T$HU#$(GRZ*C___^#Z`%T#8UV`(/$##'`6UY?7<.+0Q"%P'7OBT,4 -XMBU7PB0*)V,=#%`````#H&?___X/$#+@!````6UY?7<.-M@````"-OP````!5 -XMB>6#["B+10B+4`2+`(72B57\B47X=!V+#=1O"0@QP(7)=`^-5?BXU&\)".@O -XM____,<#)P\=$)`PH"PD(QT0D"`,```#'1"0$"0```*&`F`H(B00DZ$9H_?^) -XM!"3HWF$``+C_____R<.-M"8`````58GEBTT,BU4(BP$/M@"`/!`U=`)=PX'Z -XMP*L+"'0:@?K`I`L(=>Z`N,"K"P@U=.6)30A=Z5C___^`N,"D"P@U=>[KVXVV -XM`````(V\)P````!5B>57B<=6B=93B?N#[!R)3?"+`HL0.1=U".L8C70F`(G# -XMBT,4A<`/A,L````[$)!U[HG'BT8$@P8$@^@!A<")1@1U+(M'$(7`=`SH\/W_ -XM_\='$`````"+1P2#^/]\"87`?D>#^`)^,.C?AOS_C78`BU\0A=L/A*0```"+ -XM50B+1Q")%"2+3?")\NAR____@\0<,7<.)V.@5_/__H]1O"0CI>___ -XM_XUT)@"-O"<`````58GE@^PHB5WTB<.)=?B)SHE]_(G7BQ*+`#L"=#.+0Q2% -XMP'04B?KHU?___XM=](MU^(M]_(GL7<.X`0```,____ZX>-M@`` -XM``"-OP````!5H=1O"0B)Y8M5"(M-#%WI//___XVV`````(V_`````%6)Y8/L -XM"*'4;PD(Z'#[___'!=1O"0@`````R>D0UO__58GE5U93@^P-=@"!^_\````/AS0!``"AX%T)"(M$F#3VQ`)T/X/[ -XM?\8&7@^$)P$``(G8@\A`B$8!@\8"BU4(@T7P`8M%\#E"!`^.DP```(M5"(L" -XMBU7PBQR0B=^!YP```$!TIX/[7@^$T````(/[7`^$QP```(/[((GV=#Z%_P^% -XMA@```('[_P````^'TP```*'@70D(BT28-*D```0`=&J!^_\````/A\@```"A -XMX%T)"(M$F#3VQ$!U4('C__\_`(DT)(E<)`3HKGP``(M5"(-%\`$!QHM%\#E" -XM!`^/;?___XM%#(L0A=)T#(M`!(7`=`6(!H/&`<8&`(M%[(/$'%M>7UW#C;8` -XM````B=C!^`:#X`>#P#"(1@&)V,'X`X/@!X/`,(A&`HG8@^`'@\`PQ@97UW#C70F`'Q3@_L"?TZ#ZP&X -XM:#T)")!T!;AT/0D(B30DB40D!.B-_?__QT0D!#`J"`B)PXD$).C+`_W_H4@- -XM"0B)7"0$B00DZ`I<``")70B#Q!Q;7E]=Z0L#_?_HPH'\_Z&`F`H(QT0D#.$+ -XM"0C'1"0(!P```,=$)`0)````B00DZ#%B_?^)10RA2`T)"(E%"(/$'%M>7UWI -XMNEL``(UV`(V\)P````!5B>6#["B+10B)??R)7?2)=?B+&(U3!(E5[(MS!(GW -XM@>?__S\`#X2"`0``BPN)R"7__S\`@_AQ=PXUT)@"!__\```!W-Z'@70D(BT2X-/;$`70S@_\_ -XMQT7P?P```'3"@>:?````B77PZ[>-=@"-1]"#^$9W\/\DA2P,"0B)/"3HU7_\ -XM_^O(B7PD!,<$)`4,"0CH@X'\_X7`=;GK@L=%\`L```#I>?___\=%\`D```#I -XM;?___\=%\`T```")]NE?____QT7P"@```(UT)@#I3____\=%\`P```"-="8` -XMZ3_____'1?`;````C70F`.DO____QT7P"````(UT)@#I'____\=%\`<```"- -XM="8`Z0_____'1?!<````C70F`.G__O__BUWL,=(QR8/#!(/X!P^'T@```(M- -XM[(G"BT$$B6#[!B%THE=](G3B77XB<:)??P/A.@```")UX'G````0'4>@?K_ -XM````#X=0`0``H>!="0B+1)`T]L0"#X7B````@_M>#X1"`0``@_M<#X0'`0`` -XM@_L@=#Z%_XUT)@!U1('[_P````^'X0```*'@70D(BT28-*D```0`="B!^_\` -XM```/ARD!``"AX%T)"(M$F#3VQ$!U#HE<)`2)-"3H7',``.M0QT0D!%P```") -XM-"3H2G,``(G8P?@&@^`'@\`PB40D!(DT).@S#P#") -XM1"0$B30DZ!ES``"-0S")1"0$B30DZ`IS``"+7?2+=?B+??R)[%W#QT0D!%X` -XM``")!"3H[7(``,=$)`1`````B30DZ-UR``#KT<=$)`1>````B30DZ,MR``"# -XM^W\/A(<```"#RT")7"0$B30DZ+-R``#KIXD<).CE?/S_Z1O____'1"0$7``` -XM`(DT).B4<@``QT0D!%P```")-"3HA'(``.EU____B10DZ+-\_/_IK/[__\=$ -XM)`1<````B30DZ&)R``#'1"0$7@```(DT).A2<@``Z4/___^)'"3H@7S\_Y"- -XM="8`Z<[^___'1"0$/P```(DT).@K<@``Z1S___^-M@````!5B>6#[!B%THE= -XM](G3B77XB<:)??QT.8L2BW@$Z/_]__^+4Q"%TG0XB?#HT?___XM#%(7`=!J) -XM?@2+4Q2)\(M=](MU^(M]_(GL7>NTC70F`(M=](MU^(M]_(GL7<.-=@#'1"0$ -XM(@```(DT).BP<0``B30DZ`AR``"+0P2)1"0(C4,(B40D!(L&B00DZ##Z___K -XMG8VT)@````"-O"<`````58GE@^PHAR+2Q"#P`2)1>R+1@2#Z`&) -XM1?")^.BL____BUWTBW7XBWW\B>Q=PXGXB''1"0$(@```(D\).CA<```B3PDZ#EQ -XM``"+0P2)1"0(C4,(B40D!(L'B00DZ&'Y__\QP.N1C;8`````C;PG`````%6) -XMY593@^PPBU4(QT7D`````,=%Z`````#'1>P`````A=)T;(L"B47PBT($B47T -XMH=1O"0B%P'1(C77DQT0D!"(```")-"3H97```,=$)`2PD0@(B30DZ'7]_/^+ -XM#=1O"0B-5?")\.C%_O__@\`!?C")-"3HN/S\_X/$,%M>7<.0BT7TA7<.)]L=%\/AO"0C'1?0`````ZX^A@)@*"(M=\,=$)`P0#`D(QT0D"`0` -XM``#'1"0$"0```(D$).BX6_W_B5PD!(D$).A,50``ZYJ0D)"0D)"0D)"058GE -XMBT4(BU4,#[9(&(@*#[9(&8A*`0^V2!.(2@(/MD@5B$H##[9($(A*!`^V2!&( -XM2@4/MD@2B$H&#[9(%XA*"0^V2!R(2@H/MD@=B$H+#[9(%(A*#`^V2!J(2@T/ -XMMD@;B$H.#[9(%HA*#P^V2!^(2A`/MD@>B$H1#[9((HA*$@^V2""(2A#[9($HA*(@^V -XM2!>(2B`/MD`8B$(A7<.058GEBT4(78M`!(/P!,'H`H/@`<.-M@````"-OP`` -XM``!5B>6+10A=BT`()0`#```]``,```^4P`^VP,.0C70F`%6)Y8M%"%V+0`PE -XM``$``,-5B>53@^P$BUT(B1PDZ-IY_/^%P'0*@\0$6UW#C70F`(E="(/$!%M= -XMZ;][_/^-=@!5B>564X/L$(MU"(M=#.L*Z$=[_/^#."-U(HE<)`C'1"0$`0`` -XM`(DT).C2^OW_@\`!=-TQP(/$$%M>77`P``BU7@`````QT7L`````(E5S(E%R.MMNRT```"_`0```,9%TP&+5>R+LD`/"0B) -XM-"3HD7S\_XU\!P$!?>2+1>0[!>"7"@@/C<`"``"`?=,`#X2A`@``#[[#B70D -XM"(E$)`3'!"1E#0D(Z$Y1``"+5>R+@DP/"0B#P@R)5>R%P`^$P0(``(M5[(N" -XM2`\)"#M%X'1=C11`BT7(*T7,@WW@_XN$D$`M"0BZ`;H("`^$B@(``(E$)`B) -XM5"0$QP0D6PT)".CV4```BT7LBU7(*U7,BX!(#PD(B47@C01`BX2"0"T)"(D$ -XM).C>>_S_B47DB47HBU7LBT7@BXI$#PD(C11`BT7(*T7,C120B<@C@D0M"0B# -XM^`$9V_?3@^,KA8I(+0D(#X7R_O__A-L/E473=0N+1=B%P`^$-?___P^V?=/I -XMY/[__X/&!,=%W`(```#I+/[__X/&!,=%W`$```#I'?[__X-%V`&#Q@3I$?[_ -XM_\=%V`````#'1=P`````QP7H;PD(`0```(L6A=(/A$S^__^+1=R-?@3!X`*) -XM1<2+1=S!X`:)1<"+`H/X*P^$FP```(/X+<9%\P`/A(X```")%"2[0`\)".B$ -XM<```B<:A0`\)"(7`=1+K?XVT)@````"#PPR+`X7`=&^)="0$B00DZ`=X_/^% -XMP'7G@'WS*P^$F````(!]\RT/A,@```"+0PB+5<"+2P0K5<2-!$"-!(+WT2&( -XM1"T)""&(2"T)"(7_#X2.````BQ>%T@^$A````(L"@\<$@_@K#X5E____@\($ -XMB$7SZ6?___^A@)@*",=$)`QK#0D(QT0D"`(```#'1"0$"````(D$).BC5?W_ -XMB70D!,<$)#8``!")1"0(Z._S_/^`??,K#X5H____BT,(BU7`*U7$BTL$C01` -XMC02""8A$+0D(]]$AB$@M"0B%_P^%7UWI^_7\_XM# -XM"(M+!(M5P"M5Q(T$0(T$@HG*]]()B$@M"0@AD$0M"0CI,?___XET)`3'!"1G -XM#0D(Z+1.``#I8?W__\=$)`A%R0@(BU7HQP0D8`T)"(E4)`3HE$X``(M%[`-] -XMZ(E]Y(NP0`\)".D1_?__ND7)"`CI;/W__\<$)`H```#HBA'^_XM%U(E%"(/$ -XM3%M>7UWI:/7\_\=%V`````#'1=P`````Z5G\__^0D)"0D%6)Y8/L&,<$)``` -XM``")7?B)=?SHY';\_XLU]&\)",=$)`Q\$@D(QT0D"`P```#'1"0$$P```(G# -XMH_!O"0BA@)@*"(D$).A65/W_B=HI\HE<)`B)="0$B50D#(D$).C>30``BUWX -XMBW7\B>Q=PXUT)@!5B>6+10B%P'0)H>QO"0B%P'0"7<-=Z7%X_/^0C70F`%6X -XM`@```(GE@^P8BQ7H=@H(A=)U!:$$=@H(QT0D"`X```#'1"0$J1()"(D$).CJ -XM6#[!B)=?R+=0P/KW4(B5WXA?9U!&:^`0"+ -XM#?1O"0B%R70UB30DZ$]W_/^%P(G#="")="0(B1PDQT0D!`````#H=73\_XG8 -XMBW7\BUWXB>Q=P^AH____Z]G'!"0`````Z,9U_/^C]&\)".NXC78`58GE4X/L -XM!(M="(7;=0*S`:'T;PD(A6#[!B)7?B+70R)=?R+ -XM=0B%VW4"LP&A]&\)"(7`=$&%]G0>B5PD!(DT).@K;HJO[__XG8BW7\BUWXB>Q=P\<$)`````#H -XM_G3\_Z/T;PD(ZZR0D)"0D)"0D)"0D%6)Y8/L&*&`F`H(QT0D#+@2"0C'1"0( -XM#````,=$)`04````B00DZ&52_?^)!"3H_4L``*&`F`H(QT0D#.@2"0C'1"0( -XM#0```,=$)`04````B00DZ#A2_?^)!"3HT$L``*&`F`H(QT0D#!P3"0C'1"0( -XM#@```,=$)`04````B00DZ`M2_?^)!"3HHTL``*&`F`H(QT0D#%03"0C'1"0( -XM#P```,=$)`04````B00DZ-Y1_?^)!"3H=DL``*&`F`H(QT0D#)03"0C'1"0( -XM$````,=$)`04````B00DZ+%1_?^)!"3H24L``*&`F`H(QT0D#-03"0C'1"0( -XM$0```,=$)`04````B00DZ(11_?^)!"3H'$L``*&`F`H(QT0D#/P3"0C'1"0( -XM$@```,=$)`04````B00DZ%=1_?^)!"3H[TH``*&`F`H(QT0D#"@4"0C'1"0( -XM$P```,=$)`04````B00DZ"I1_?^)!"3HPDH``*&`F`H(QT0D#&`4"0C'1"0( -XM%````,=$)`04````B00DZ/U0_?^)!"3HE4H``*&`F`H(QT0D#)04"0C'1"0( -XM%0```,=$)`04````B00DZ-!0_?^)!"3H:$H``*&`F`H(QT0D#+04"0C'1"0( -XM%@```,=$)`04````B00DZ*-0_?^)!"3H.TH``*&`F`H(QT0D#.P4"0C'1"0( -XM%P```,=$)`04````B00DZ'90_?^)!"3H#DH``*&`F`H(QT0D#!P5"0C'1"0( -XM&````,=$)`04````B00DZ$E0_?^)!"3HX4D``,<$)`&Z"`CHU4D``*&`F`H( -XMQT0D#$P5"0C'1"0(&0```,=$)`04````B00DZ!!0_?^)!"3HJ$D``*&`F`H( -XMQT0D#'P5"0C'1"0(&@```,=$)`04````B00DZ.-/_?^)!"3H>TD``,G#B?:- -XMO"<`````58GE4XG#@^P4H8"8"@C'1"0,T!4)",=$)`@$````QT0D!!0```") -XM!"3HHD_]_XE<)`2)!"3H-DD``(/$%%M=PU6)Y5=64XG3@^P\B470C47LB47< -XMC47DB57LB4W,B474C47`!````QT78`0`` -XM`,=$)`1H/0D(B00DZ#[J___'1"0$,"H("(G'B00DZ'SP_/^+1=`/MA08@/H! -XM#X3O````H>"E"PB%P'0E#[;2ON"E"P@Y%>2E"PAT?K[@I0L(ZP4Y5@1T57B==6B<93@^PLQT7D```` -XM`,=%Z`````#'1>P`````BP"%P`^$L0```(U=Y,=$)`2PD0@(B1PDZ+'N_/^) -XM=?"+!H7`=%.-=?#K(XUV`(/X7G0EB40D!(D<).AO80``BT7P@\`$B47PBP"% -XMP'0K)?__/P"#^%QUUHDT).@.Z___@_C_=2)!"3H -XMQ?G__XD'BT7HB4<$@\0LB?A;7E]=PZ&`F`H(,?_'1"0,018)",=$)`@%```` -XMQT0D!!0```")!"3HG$S]_XD$).@T1@``@\0LB?A;7E]=PXUV`(V\)P````!5 -XMB>575E.#[%RA/&0)"(M]"(7`#X2+````C4<$B46TBU\$A=L/A,T#``"+`R7_ -XM_S\`@_@M#X6U`@``BT,$)?__/P"#^"T/A'T#``"-5PBY`0```,=%O,"K"PC' -XM1<``````QT7$`````,=%R`````#'1 -XM7UW#D(UT)@#_)(48%PD(Z`1'__^#Q%Q;7E]=P^CW2/__Z6O____'1<`"```` -XMBQJ#P0&)UH7;#X0S`P``BP,E__\_`(/X+0^%T@(``(M#!(U6!"7__S\`@_@M -XM=9*-40&-!)4`````C30'BQZ%VP^$_`(``(/"`8E5T(M%R(7`#X4=`@``BTW, -XMA*?````C478B50D!(D$).C\7@``C478B00DZ,'K_/^-5=B) -XM%"3H9NO\_XU-V(D,).@[7P``BT7<@\`!P>`"B40D!(M%V(D$).B#]___B47L -XMBT7R)!"3HQ^O\_XM%[(L0@?K_````B56X#X]T`0`` -XMBT7$A<`/A#(!``"+?R)!"3HF.'__XM% -XM[(D$).C=ZOS_Z2O^___'1<@!````D.E0_O__QT7$`0```(UT)@#I0/[__\=% -XMP`$```"-="8`Z3#^___H1D?__X/$7%M>7UW#QT6\P*0+".D7_O__QT7,`0`` -XM`.D+_O__BQ7@I0L(,=N%T@^$R?W__XVV`````(N#Z*4+"(E4)`3'!"1<%@D( -XMB40D".A&0P``BY/LI0L(@\,,A=)UV8/$7%M>7UW#QT6\P*L+",=%P`````#' -XM1<0`````QT7(`````,=%T`(```"-5>R)V.C$^___A<`/A=+^___I6OW__XD< -XM)(UT)@#HJ\3__X7`#X3:`@``BP:)!"3H26$``(E%[(D$).@::/S_B47PZ9S^ -XM__^+3="+1="+-(_!X`*%]@^$H`,``(M5M(L<`H7;#X3C`@``Z&_V__^+1>R) -XM!"3HI.G\_^GR_/__Z!KY__^+1>R)!"3HC^G\_^G=_/__@\$!B4W0Z5#]__^) -XMV.CX^/__C478B00DZ&WI_/_IN_S__[H"````L`C'1;S`JPL(QT7``````,=% -XMQ`````#'1<@`````QT7,`````.GW_/__H8"8"@@QV\=%V`````#'1=P````` -XMQT0D#&T6"0C'1"0(!@```,=$)`04````B00DZ%1(_?^)!"3H[$$``#'2#[:" -XMP*L+"#J#P*L+"'0/C4O_N,"K"PCHGOC__XG:@\,!@?L``0``==>Y_P```+C` -XMJPL(Z(+X__^A@)@*"&8QV\=$)`R$%@D(QT0D"`<```#'1"0$%````(D$).CJ -XM1_W_B00DZ()!```QT@^V@L"D"P@Z@\"D"PAT#XU+_[C`I`L(Z#3X__^)VH/# -XM`8'[``$``'77N?\```"XP*0+".@8^/__H8"8"@C'1"0,GA8)",=$)`@(```` -XMQT0D!!0```")!"3H@T?]_XD$).@;00``QP0D`````.COZO__H8"8"@C'1"0, -XMN!8)",=$)`@)````QT0D!!0```")!"3H2D?]_XD$).CB0```C478B00DZ$?# -XM___I-?O__X-[!"T/A5G^__^+0PB-@,``(U%V(D$),=$)`0;````Z.E:``"+!HU5V(D4 -XM)(E$)`3HV%H``.G7^___C578QT0D!!L```")%"3HP%H``(U-V(ET)`2)#"3H -XM(5T``.FP^___@_@_NG\````/A8O[___ICOO__Z&`F`H(BQ['1"0,S!8)",=$ -XM)`@!````QT0D!!0```")!"3H0D;]_XE<)`2)!"3HUC\``.GN_/__C47LB00D -XMZ";!___IZ?O__X-]P``/A>X```"+'>"E"PB_X*4+"(7;=17I?0$``(UV`(/' -XM#(L?A=L/A&T!``")-"3H&V```(E<)`2)!"3HNV?\_X7`==L/ME\$A-L/A)?[ -XM__^+5<@/ML.%T@^%A0(``(-]\`$/CJH"``")!"3H?]O__\=$)`@`````B40D -XM!(U%[(D$).CHWO__BT6\BU6XQ@00->E1^___BUV\`UVX@#LU#X0J`0``Q@,! -XMZ3K[__^+=R)!"3HS^C__^D2^___ -XMC4W8B70D!(D,).AK60``Z6KZ__^)-"3HFF/\_^D'^O__#XP;_O__@WW``@^/ -XM$?[__XU=Y(GPB=KH;??__X7`#X3-^O__QT0D!#`J"`B+1>2)!"3H0N;\_XM- -XMR(7)#X2L````B1PDZ,_:__^+3<")3"0(B40D!(U%[(D$).AIP/__@\`!#X0U -XM`0``BT7DB00DZ+7E_/^+5;R+3;C&!`HUBT7LB00DZ%#E_/_HV[C__^F9^/__ -XMC47LB00DZ)O`___I3OK__Z&`F`H(QT0D#/\6"0C'1"0(`P```,=$)`04```` -XMB00DZ&%$_?^)="0$B00DZ/4]``#I&/K__XU%[(D$).BEV___Q@,!B?;I`_K_ -XM_XD<).@CVO__BU7`B50D"(E$)`2-1>R)!"3H;=W__XM%N(M-O,8$`36+1>R) -XM!"3HN.3\_^D&^/__C47LQT0D!&@]"0B)!"3H\-[__\=$)`0P*@@(B<:)!"3H -XM+N7\_XL5X*4+"(72=#LQV^L-BY/LI0L(@\,,A=)T*HM%[(M-O(L`#[8$"#F# -XMY*4+"'7?B50D"(ET)`3'!"3C%@D(Z#L]``#KR8DT).A!Y/S_D.E3^?__H8"8 -XM"@B+7>S'1"0,[18)",=$)`@"````QT0D!!0```")!"3H8T/]_XE<)`2)!"3H -XM]SP``.F=_O__#("-3=B)1"0$B0PDZ'%7``#IR)!"3HPN/\_^EM_O__C47LB40D!(M-O(D, -XM).C+VO__BT6\BU6XB!P0Z;7X__^0D)"0D)"0D)"0D)"053'`B>5=PXGVC;PG -XM`````%4QP(GE7<<%_&\)"`````##D)"0D)"0D)"0D)"0D)"058M*"(GEB5`$ -XMB4@(B4((BU`(B4($7<.)]HV\)P````!5B>56B=93BPB)TX7)="60BQ.%TG0> -XM.=%T/(VV`````(/Y('0;@\`$BPB%R77RA_/^) -XMP^EX____C;8`````58GE5U93@>P<(0``C46TC5VLQT74`````,=%V`````#' -XM1=P`````QT6L`````(D$).AF9/S_QT6P`````,=$)`@`````B5PD!,<$)!0` -XM``#H1V/\_XU%X(D$).B`*O[_Z(=?_/^%P(G'#X4V`0``BT7@C5W$B00DZ*/D -XM_?_'1"0$H$$(",<$)`X```#H>V/\_XD<).@#9/S_B1PDQT0D!`X```#H`U_\ -XM_XE<)`2-G0S____'1"0(`````,<$)`(```#HE5[\_\<$)`(```#HZ6/\_XM% -XMY,=%[(````")7"0$B84`W___C47LB40D"*&T=@H(B00DZ/%A_/^#P`%T%P^V -XMA0W___\\'`^$H@$``#P"#X2:`0``Z*1G``"%P(G&='(/M@"$P'1K/#IT9\=$ -XM)`0Z````B30DZ$]@_/^%P(G#=`/&``")-"2)]^@\8?S_@\`!#X2E`0``B3PD -XMZ*MD_/^%P(G#=0OK*XVT)@`````!QXN%`-___XE<)`B)?"0$B00DZ(C@_?^% -XMP`^(8@$``"G#==S'!"0`````D(UT)@#H-V/\_XM%Y(V=#-___XD$).AJX_W_ -XMZQN%P`^$KP```(E$)`B-1=2)7"0$B00DZ%U6``"+1>#'1"0(`"```(E<)`2) -XM!"3HQN#]_X/X_W7)QT78`````,>%_-[__P$```"+1>"-=?")!"3H$N/]_^L5 -XMZ*=@_/^#.`1U*(VV`````.B[4```BX7\WO__B70D!(D\)(E$)`CH@5W\_X/X -XM_XG#=,Z-1=3'1"0$T)$("(D$).A;X/S_.=]T(HU%U(D$).BLW_S_@<0<(0`` -XM6UY?7__\`````ZX6+1?"H?W77P?@(AR_('`)",=$)!@"````QT0D -XM%`````#'1"00`````,=$)`P!!```QT0D""!P"0B)1"0$B1PDZ#]@_/_I9_[_ -XM_\<$)`$```#HWF'\_SG>#X2._O__C46,N0@```")A?C>__^+O?C>__\QP/S' -XM1>@`````\ZO'19``````QT64`0```,=%C`,```")-"3HR6+\_XG#Z(9>```Y -XMPP^#K0```(U%Z(E$)`R-18R)1"0(QT0D!`````")-"3H+&/\_X7`=$C'1>@` -XM````Z13^__^)1"0$B30DZ*3F_?_'1"0$`````(G#C47HB40D#(U%C(E$)`B) -XM'"3H\&+\_XD<)(/X`1G`(47HZ'3I__^+1>B%P`^$S?W__XM0%(72#X2R```` -XMB50D!+\@<`D(QT0D"`$$``#'!"0@<`D(Z&U=_/^+1>B)!"3H\F#\_^E:_?__ -XMC9T,W___QT0D!``!``")'"3H5V'\_X7`=:/&A0O@__\`QT0D!"X```")'"3H -XM7%W\_X7`B<=TAL=$)`0N````B30DZ$9=_/^%P`^$;O___X!X`0"-6`%T%(E$ -XM)`2)/"3HJ5[\_X7`#X45____QT0D!"X```")'"3H$5W\_X7`=<_I./___XD$ -XM).A@8/S_C70F`.G__/__C70F`(V\)P````!5B>6#[`C'!"0!````Z"I@_/^- -XMM"8`````C;PG`````%6)Y8/L&(M%"(E=](EU^(E]_(D$).BV5@``B00DZ.[E -XM_?^)QHM%#(D$).BA5@``B00DZ-GE_?^)P^B^7?S_QP``````B5PD!(DT).B< -XM7/S_BQ= -XMPY"-="8`B30DZ.CG__^)'"3HX.?__^AG7?S_BP")!"3H#5O\_\=$)`1(&`D( -XMQP0D-@```(E$)`CH2=K\_^NCC;0F`````%6)Y8/L&(M%#(/X!`^$@````(/X -XM(W0,@\`!=`?)N/_____#QT4,`````,=$)`@`````QT0D!`,```"+10B)!"3H -XM=UG\_X/X_W32@^#[B44,B40D",=$)`0$````BT4(B00DZ%59_/^#P`%TL(U% -XM#,=%#`````")1"0(QT0D!'YF!("+10B)!"3H'UK\_X/``72*R3'`PXUV`(V\ -XM)P````!5B>575E.#[!R+70B%VP^$U````(M%"(L`B47LQT0D!,28"@C'!"20 -XM+PD(Z,!#_O\]^&\)"(G#="&)!"3HZUG\_XE<)`2)1"0(BU7LB<:)%"3HAEO\ -XM_X7`=&NA`'`)"(7`B47P=%6+'21T"0@Q_XGVBW,(B70D"(M#!(E$)`2+1>R) -XM!"3H4UO\_X7`=2.+1>R-%+"+`H/X+W0$A7UW#BPT`<`D(A575E.#[!R+50B+`H/X*P^$I@```(/X+0^$G0```(L= -XM)'0)"(7;#X1F`0``H0!P"0B+-21T"0B-!$"-/(8Y_G-CBT4(BP")1?#K#HUV -XM`(7`>$R-7UW#C78`B=\Y_G*UBT4( -XMB00DZ(]1``")!"3HY]G]_X7`=1+'1>P`````BT7L@\0<6UY?7<.+0!R)!"3H -XMEE,``(D$).@^3P``A<")1>QTVXL=`'`)"(M5"(T<6\'C`HD4)`,=)'0)".@: -XM3P``B0.A`'`)"(M5[(L])'0)"(T$0(E4AP2+-0!P"0B)%"3HT57\_XT<=H/& -XM`<'C`HE$.PB)-0!P"0C'1"0,,$8(",=$)`@,````B70D!(D\).A"5/S_H0!P -XM"0@[!9A-"0@/A5G___^#P`JCF$T)"(T$0,'@`HE$)`2A)'0)"(D$).AVX___ -XMHR1T"0CI,/___\<$)'@```#H$./__Z,D=`D(Z83^__^-M@````!5B>575E.# -XM["S'1"0$Q)@*",<$)"`^"0CH\S[^_XE%W,=$)`3$F`H(QP0D8#X)".C#H4_/__PG#B47D="R+'0"8"@B%VW0B -XMB?:+0WB)-"2)1"0$Z#'6_?^%P'0'BT,4A+!H/X.W01.7T(=-^+ -XM?PB+-XL&@_@[=>^+?P@Y?0AUUX/$+%M>7UW#QP0DF#X)".@]5/S_B47HBP>) -XM!"3H,%3\_XE%[(T$A00```")1"0$QP0D`0```.A:X?__B47PBP>)1"0$BU7P -XMB10DZ`)3_/^+=>2%]@^$,P(``(L'B00DZ-'@___'1"0$%````,<$)`$```#H -XM'>'__XD'QT0D!(`R"0B)!"3HQU+\_\=$)`0,````QP0D`0```.CWX/__QT0D -XM!!@```#'!"0!````B<;HX>#__XD&QT0D!+0^"0B)!"3HBU+\_XGPB?KHYO'_ -XM_XL&BP"#^`IT$8/X.W0,BW8(BP:+`(/X"G7OQT0D!`P```#'!"0!````Z)C@ -XM___'1"0$"````,<$)`$```")P^B"X/__B0/'1"0$P#T)"(D$).@L4OS_BU8$ -XMB=CHAO'__\=$)`0,````QP0D`0```.A2X/__QT0D!`@```#'!"0!````B) -XM!"3HGM[__XM5[,<$)`$```"-!)4(````B40D!.CDWO__B0?'`"4```"+1?") -XM1"0$BP>#P`2)!"3HA%#\_XM?"(L+BP&#^#L/E<*#^`IT>X32='V#Q"Q;7E]=PXG?Z6'\__^-="8`58GE5U93@^P\QT0D -XM!,28"@C'!"3D2`D(Z#,Z_O^%P`^$[````(M%"(MX"(L'@S@[#X3C````.7T( -XM#X32````QT78`````,=%W`````#'1"0$`$D)"(L'B00DZ-U/_/^%P`^%XP$` -XM`(M7"(E5U(L2BP*#^"V)1>`/A+$```"#?>`MBW74#X3Z````BT78A`[#X2/`0``BWW4.7T(#X2#`0``BW\(BP>+`(/X.XE%X'08 -XM.7T(#X1N`0``BW\(BP>+`(/X.XE%X'7HBW\(.7T(#X4\____@\0\6UY?7<,Y -XM?0AT\XM_"(L'@S@[#X4*____Z^N+3=R%R0^%1/___XMUU(M%W(M*!(7`#Y3` -XMA)TX/Y:0^4PH/Y9HM+"`^4P`G0@^`!B47<#Y3`@\,$A"#?>`[#X5Q_O__BWW4@WW@.P^%FO[__^F2_O__A,`/A=;^__^0C70F`.GQ -XM_O__BP>+`(/X"G1Z@_@[='4Y?0AT<(G[ZPV#^#N0=#LY=0AT+XGSBU,$BT,( -XMB4((BT,(B5`$BP.)!"3H#MO__XMS"(D<).@#V___BPZ+`8/X"G7&@_@[=2:+ -XM#HM6!(M&"(E""(M&"(E0!(D,).C7<,YUG;CZ]20C70F`#'VZYS'!2AT"0C04`@(BQ.)QHM"!(7` -XM#X5/____ZX&0A?8/A'C___\IQHVV`````.EK____B<;'!2AT"0A040@(Z5K_ -XM__^-=@"-O"<`````58GE@^P(_Q4H=`D(QP0D`0```.BH_O__R<.-M@````!5 -XMB>6#[!C'!"16&`D(Z!XG``"AY)D+"(7`=`7H\$___Z&T=@H(B00DZ"/1_?_' -XM1"0(`@```,=$)`1@+@D(QP0D`"X)".CG/O[_QT0D!`````#'!"0`````QP7D -XM=0D(`0```,<%A'<*"`````#HGVW\_\G#C;8`````C;PG`````%6)Y5=64X/L -XM?*$LF0L(B00DZ#K/_?^%P(E%D`^$PP$``(MX!(7_#X2X`0``QP0D`````(UU -XM\^CE_?__QP0D"@```.B)Z?W_QT6,`````,=%M`$```"-1;R)!"3H[$_\_XU% -XMG,=%N`````")1"0(C46TB40D!,<$)`(```#HRT[\_XU%S(D$).C`3_S_C47, -XMQT0D!`(```")!"3HO4K\_XU%W(E$)`B-1!0CHE,W\_XU%W(D$),=$)`1@'@4(Z('-_/_HK$___\=$)`0" -XM````QP0D8Q@)".BXS?W_B47L@\`!#X7M````H;1V"@B)1>S'1"0$;!@)",<$ -XM)/O>"`CHD"4``.A[YOW_QP4P=`D(`````.L;#[9%\SP*="X/OL")1"0$QP0D -XM+'0)".C$0```QT0D"`$```")="0$BT7LB00DZ/W,_?^%P'_*QP0D+'0)".C] -XM0```C46TB00DZ$+,_/^+'2QT"0B)?"0$B1PDZ,Q,_/^)?"0$B00DZ%!-_/^% -XMP'1IBT60BQBA@)@*",=$)`QV&`D(QT0D"`(```#'1"0$%@```(D$).A&*_W_ -XMB5PD!(D$).C:)```@T6,`8-]C`4/A6K^___HE_W__X/$?%M>7UW#C47LQT0D -XM!$`>!0B)!"3H7,S\_^D#____B1PDZ*M/_/_'1"0$`````(D<)(E$)`CHUTO\ -XM_Z&$=PH(A2A*)H+"(E%X*$DF@L(B47"0B%P'02B00DZ/?5___'!8!>"0@`````QT7L^&\)",=$)`0,````QP0D -XM`0```.@RUO__B<:+10R)!"3H!4(``(D&@WT(`0^$``(``,=$)`0,````QP0D -XM`0```.@%UO__B<.+11")!"3HV$$``(ES!(EU](E=\(E>"(D#C47LB4,(B48$ -XMC5WLQT0D!)#I!0B)'"3H[LK\_\=$)`3$F`H(QP0D]"X)".@Z,O[_B00DZ$(P -XM_O^)'"2)1;#HA^/]_XM%],=$)`@`````B5PD!(D$).@`X/W_QT0D!$`K!@B) -XM1:R)!"3HGR)!"3HX\C\_^@^[_W_BT6PB00DZ',Q_O_'1"0(`@`` -XM`,<$)/0N"0B)1"0$Z&LY_O^#Q&!;7EW#C70F`.@K!```Z[OH!`4``*$\=`D( -XMAOIC47LB77PB77TB48$B48(Z23^__^0C70F`%6)Y8/L&(E=^(EU_(MU -XM"(,%Q*P+"`''1"0$L)`(",<$),2L"PCH]LC\_XL=0'0)"(7;=3.+#>"9"PC' -XM!4!T"0@!````AQ=Z1G(_/_' -XM1"0(U#<)",=$)`2`-PD(QP0D`@```.BM_/__QT0D#/08"0C'1"0(#@```,=$ -XM)`06````H8"8"@B)!"3H*"?]_XD$).C`(```ZY;'1"0$E'8*",<$)-0W"0CH -XM6B_^_X7`#X1Z____BQV`=PH(B70D",=$)`34-PD(QP0D`@```.A$_/__B1V` -XM=PH(Z5'___^)]HV\)P````!5B>53@^PDQT0D!+"0"`B#!<2L"P@!QP0DQ*P+ -XM".C^Q_S_H41T"0B%P'4UH>"9"PC'!41T"0@!````A"9"PC'!4QT"0@!````A6#[!C'1"0$L)`("(,%Q*P+"`''!"3$ -XMK`L(Z/_$_/^+#3QT"0B%R74LBQ7@F0L(QP4\=`D(`0```(72=&/'!"3$K`L( -XMQP4\=`D(`````.@KQ/S_R"+%0B:"PB)1=RA!)H+"(E5V(L5`)H+"(E%U*&$=PH( -XMB570BQ7`F`H(QP6$=PH(`````(E%R(E5Q.@MO_S_QP0D`)H+"(E%S.C*0/S_ -XMA<`/A)P```#'!"0!````Z&KR__^+52)%1B: -XM"PB+5>"C%)H+"(M%W(D5$)H+"(M5V*,,F@L(BT74B14(F@L(BU70HP2:"PB+ -XM1<2)%0":"PB+5?]_\<$)`````#H%43\ -XM_XM%",<%R*P+"`$```#'1"0$`0```(D$).@L\/W_A,<$)(0` -XM``")1"0$Z+6^_/_KNXUV`%6)Y8/L6(U%Z(E%Y(U5W(E%U(M%"(EU^(UUT(E= -XM](E]_(M]#(E5V(EU\(EUX(E5[,=%T/AO"0C'1>CH10D(QT0D!)1V"@B)!"3H -XM4BC^_X7`B<-T+(L`A564X/L$*%@90D(BUT(AB7E/__BT,$B00DZ/PX``") -XM!"3H-,C]_\=$)`0P*@@(B<:)!"3H`L#\_XM#"(D$).C7.```B00DZ`_(_?_' -XM1"0$,"H("(G#B00DZ-V__/^)7"0$B30DZ$&M__^)=0B#Q!!;7EWI([_\_XUV -XM`%6)Y5.#[`2A8&4)"(M="(7`=07H&)3__XU#!(E%"(/$!%M=Z=BE__^0C;0F -XM`````%6)Y8/L"*%@90D(ACLD___R>D6L/__C;8`````58GE5U93@>R< -XM````BT4(C5`$BT`$A<`/A(@%``")%"3HNVO]_XE%@(D$),=$)`3P(P8(Z#B_ -XM_/^+58"+`H7`="*#."T/A*T"``")T.L.B?:#P`2#.BT/A)L"``"+4`2%TG7M -XMQT7H`````(U-Z,=%[`````#'1?``````QT0D!+"1"`B)#"3HY;[\_XM%@(L0 -XMA=(/A`0&```Q_\>%=/___P````#'A7C___\!````ZV>)-"3HF#<``(U5B(E4 -XM)`2)!"3H)3[\_X/``0^$L@$```^W19"+G7C___\E`/```#T`0```#X2````` -XMB30DZ-Z]_/^+C73___^+18"+5(@$@\$!@X5X____`8F-=/___X72#X0Q!``` -XM,<"#/=B7"@@"B10D#Y3`B40D!.C1COS_QT0D!#`J"`B)QHD$).@OOOS_B30D -XMZ,/POC5#\#X5:____.=8/A%+____'0/P`````Z4;___\YO73___]T -XM,H7_#X4:!```QT0D#`````"+A73___\I^(E$)`B+58#'!"3X;PD(C02ZB40D -XM!.BL;?[_BY5T____A=)T%HM-@(M!!(7`=`S'!"0*````Z!S9_?^)="0$QP0D -XMJQ@)".CL%0``QT7L`````(L&AB+1>R#Z@2-!(*!."\``$`/A,@```"- -XM3>C'1"0$+P```(D,).@9,```C47HB00DZ&XP``"-5>C'1"04`````,=$)!#X -XM;PD(QT0D#`````#'1"0(_P\``,=$)`0`````B10DZ#N._O^+O7C___^)^^EH -XM_O__Z/4\_/\YO73___^+&'0RA?\/A7\#``#'1"0,`````(N%=/___RGXB40D -XM"(M-@,<$)/AO"0B-!+F)1"0$Z(UL_O^)'"3H83K\_XET)`3'!"2B&`D(B40D -XM".CA%```B[UX____B?OI_OW__\<`+P```.E+____H91W"@B%P`^%)0,``*&` -XM7@D(AB)4`B)1>R)%"3'1"0$D.D% -XM".C/NOS_C47HQT0D"`````")1"0$BT7PB00DZ`70_?_'1"0$0"L&"(G#B00D -XMZ*.Z_/^+-8!>"0B%]G0,QP0D````0.B=M_S_BQ74EPH(,<#'1"00`````,=$ -XM)`P`````QT0D"`````"%T@^?P(/H`0G"B50D!(D<).A7!/[_C57HB10DZ*RY -XM_/^+#91W"@B%R0^%2`$``(M%@(D$).B3N?S_@<2<````6UY?7<.-5>B)%"3H -XM?;G\_SG[=-N%_P^%+`$``"G[QT0D#`````")7"0(BTV`QP0D^&\)"(T$N8E$ -XM)`3HS6G^_^NMQP5$3`D(>````.D,_O__QP0D"@```.A`U?W_Z=7[__^-7>C' -XM1>@`````QT7L`````,=%\`````")'"3HZRP``(D<),=$)`2PD0@(Z)NY_/^) -XM'"3'1"04`````,=$)!#X;PD(QT0D#`````#'1"0(_P\``,=$)`0`````Z*N* -XM_O^)'"3HP[C\_X'$G````%M>7UW#QP0D"@```.B\U/W_Z7#\__^#!<2L"P@! -XMQT0D!+"0"`C'!"3$K`L(Z"RY_/_IN_S__\=$)`0,````QP0D`0```.CSP___ -XMQP0D@$P)"(G#Z,4O``")7PB)>P2)WXD#Z;#]___'!"3$K`L(Z$JX_/_II_[_ -XM_\<$)`H```#H2=3]_^G#_O__C57HB10DZ"FX_/_IAO[__XUT)@!5B>575E.# -XM["R+10C'1>@`````QT7L`````,=%\`````"%P`^$\````(MP"#G>```` -XMBT`$.?")1>`/A-<```#'1=@`````C7WHQT7<`````(M%##E%W'QXBU40.57< -XM?W"+'HL#ASKZ(U%Z(D$).B<*@``@\0L6UY?7<.-="8`58GE@^P8BT4(QT0D"/___W_' -XM1"0$`````(D$).BO_O__R<.-M@````"-O"<`````58GE5U93@^PLQP0DL!@) -XM".AG,_S_A<")1>0/A.8!``"+1>3'1"0$+P```(D$).A)-OS_AB+7>@/M@/'1?``````A,!T+HL5W%T)"(L-X%T)"(GV#[;`.=!] -XM!_9$@35`=1*#1?`!BW7PBUWH#[8$'H3`=>"+=>0/M@;'1>P`````A,!T+XL5 -XMW%T)"(L-X%T)"(UV``^VP#G0?0?V1($U0'42@T7L`8M=[(MUY`^V!#.$P'7@ -XMH3QW"@@QVX7`#X3=````BQT`F`H(A=L/A,\```#'1>``````ZPJ+&X7;#X2Y -XM````BT,8.T,<=>Z+0PPE'R```#T`(```=`J#^`)T!8/X$'75BT-XB00DZ/0N -XM``")QP^V`(GZA,!T)(L-W%T)"(LUX%T)"`^VP#G(?0?V1(8U0'4*@\(!#[8" -XMA,!UZ,8"`(G^QT0D!"\```")/"3H[#3\_X7`=`.-<`&+1>R+5>2)="0$B40D -XM"(D4).A_,OS_A"#Q"R)V%M>7UW#BT7PBU7HB70D!(E$)`B)%"3H,#+\_X7` -XM#X42____ZZO'1>1-&PD(C78`Z2C^___'1>B^&`D(Z5#^__^0D)"0D)"0D)"0 -XMD)"0D)!5N@$```")Y8/L"(M-"/?!```@`'4J,-*%R70D@?G_````=SRAX%T) -XM"(M$B#2)PH'B````X'0-P>H>C;8`````R8G0PR4```0`@_@!&<"#R`&)PL'Z -XM'\GWTB'"B=##B?:)#"3HY#'\_^O#C;8`````58GE5U93@^P,BT4(BQB%VP^$ -XMI0```(L]X%T)"(G&ZRKWPP```$!U&('[_P```'=CBT2?-/;$$'5GC;0F```` -XM`(M>!(/&!(7;='&+10R%P'3/]\,```!`=>>!^_\```"0=T^+1)\T9H7`>=6! -XM^_\```!W4HN7UW#B1PDZ$$Q -XM_/_VQ!!TH('[_P```'6#[!B)=?R+=0B)7?CWQ@`` -XM(`!T$;O\____B=B+=?R+7?B)[%W#B30DZ(#^__^%P(G##XZ[````]\8```!` -XM==J!_O\````/AYD```"AX%T)"(M$L#3VQ`)TP(GP)?__/P`]_P```'^R@?[_ -XM````#X>/````H>!="0B+1+`TJ0``!`!T!XM5#(72=(^!_O\````/AWP```"A -XMX%T)"(M$L#3VQ`)T#HGP)?__/P`]_P```'YP@?[___\`N_G___\/CU;___^! -XM_O__``"S^@^/2/___X'^_P```+/[#XXU____Z37___^)-"3H#3#\_Y#I8O__ -XM__?&````0'6XC78`Z67___^)-"3H[R_\_XUV`.EJ____B30DZ-\O_/^-=@#I -XM??___X/^"KO]____#X3I_O__,=N#_@D/E<.#ZP+IV?[__XVV`````(V\)P`` -XM``!5B>575C'V4X/L#(M5"(L"AH> -XM@\,$`=:%P'7<@\0,B?!;7E]=PY"-="8`B00DZ#0O_/_KSI"0D)"0D%6)Y5W# -XMD)"0D)"0D)"0D)"A4'0)"#D%5'0)"%6)Y700#[95"(@0@\`!7:-0=`D(P\8` -XM`%W#C70F`(V\)P````!5B>575E.)RX'LC````(E%A`^V`H3`#X0(`0``B56, -XMQT6L`````.LD#[;`"T6LB00D_U6$B5W0@T6,`8M5C`^V`H3`#X3;````BUW0 -XM/"5UV(-%C`&+58P/M@+'19P`````/"T/A',!```\,`^$O@```#PNQD6;(`^$ -XML@```#PJD`^$OP````^VT(/Z?W<.]@25O5$)"`0/A?T$``#'1:``````/"X/ -XMA+0```#'1:3___]_,?\\(P^$;@$``#'2/&P/A#P!```QR3QZ#X0A`0``#[;` -XM@_A3B464="6#^%%T(#L%W%T)"'T8H>!="0B+=91F@WRP-``/B$$!``"-="8` -XMBT64@^@E@_A3#X;&````@T6,`8M5C(E=T`^V`H3`#X4E____@<2,````6UY? -XM7<.#18P!BTV,#[8!QD6;,#PJ#X5!____BS.#PP2#18P!BU6,B76@#[8"/"X/ -XMA4S___^#18P!BTV,#[8!/"H/A'0$```/MM"#^G\/AR[____V!)6]40D(!`^$ -XM(/___XM%C(D$).C&*_S_BU6,B46D#[8"#[;0@_I_=A_I!O___XUT)@"#18P! -XMBTV,#[8!#[;0@_I_#X?L_O__]@25O5$)"`1UX.G=_O___R2%P!D)"(/"`8E5 -XMC`^V`L=%G`$```#I>/[__X-%C`&Q`8MUC`^V!NG._O__@T6,`8M5C`^V`KH! -XM````/&P/A:W^__^#18P!L@*+38P/M@'IG/[__X-%C`%FOP$`BW6,#[8&Z7_^ -XM__^+A+`T!```N@$```")193IK_[__XUS!(EUT(L;A=N)79`/A`$$``")'"3H -XM`"W\_XM]H"G'BT6FW^O__C477B85X____B47,B1PDB70D!,=$)`@*````QT0D -XM#`````#H738``(M-S(/`,(@!@\$!B1PDB70D!,=$)`@*````QT0D#`````") -XM3)A7C___^)QXD<)(ET)`3'1"0("@```,=$)`P````` -XMZ&XX``"#P#"(!X/'`8D<)(ET)`3'1"0("@```,=$)`P`````Z&HZ``"#^@") -XMPXG6?[=\!8/X`'>PBUVHA=N0C70F`'0&Q@/___W;IBT6/___XE5S(M5S(G8@^`'#ZSS`X/`,,'N`XGQB`*# -XMP@$)V8E5S'7@A?]T&8MUS,8&,(/&`8GP*X5X____B77,Z7/\__^)T"N%>/__ -XM_^EF_/__C5,$B570BP.)QHG#P?X?Z7K^__^-0P0Q]HE%T(L;Z1?\__^-2P2) -XM3="+`\=%J`````")QHG#P?X?A?8/B5S^___WVX/6`/?>QT6H`0```.E)_O__ -XMJ0```$`/A&OZ__^+A7S___^)!"3_583I6OK__XU-V.LA@\`PB$'_B4W,B?*) -XMV`^LT`2#P0'!Z@2)PXG0B=8)V'05B=B#X`^#^`E^U8/`5XA!_XE-S.O3A?]U -XM$XM%S(U5UXF5>/___RG0Z:3[__^+3/___^F"^___B6#[`B+10B+ -XM312+51"C4'0)"`-%#(/H`:-4=`D(N+!M"`CH%_;__Z%0=`D(Q@``@\`!HU!T -XM"0C)PY"-="8`5;@@.P8(B>6+50B+30Q=Z>SU__^-M@````"-OP````!5N"`[ -XM!@B)Y8/L&(M5"(U-#(E-_.C']?__R<.0C70F`%6)Y8/L&(M%"(U-%(M5$(E- -XM_*-0=`D(`T4,@^@!HU1T"0BXL&T(".B4]?__H5!T"0C&``"#P`&C4'0)",G# -XMD)!5B>5=QP6`=`D($!L)",<%A'0)"!0;"0C'!8AT"0@8&PD(QP6,=`D('!L) -XM",<%D'0)""`;"0C'!91T"0@D&PD(QP68=`D(*!L)",<%G'0)""P;"0C'!:!T -XM"0@P&PD(QP6D=`D(-!L)",<%J'0)"#@;"0C'!:QT"0@\&PD(QP6P=`D(0!L) -XM",<%M'0)"$0;"0C'!;AT"0A(&PD(QP6\=`D(3!L)",<%P'0)"%`;"0C'!<1T -XM"0A4&PD(QP7(=`D(6!L)",.-M@````"-O"<`````58GE5U8Q]E.#["R+10R+ -XM.(D\).@$)/S_C02%!````(D$).BIL?__QT7P`````(E%[.L6H>!="0B+1)`T -XM]L0%=06#^U]U4H/&`8M%[(/'!(T$L(E%X(L?BT7L@>/___\_A?:)'+!U!8/[ -XM>W06#[;3@?K_````=KR)%"3H'2/\_Y#KNH/'!(L?@>/___\_B1C'1?`!```` -XMZ]2+1>#'``````"+5?"%TG00BP2+1`$$A -XM7UW#@\<$Z3;___^+1>R)!"3HTU#^_X7`=#"+$(72=,:)PX/Z"G07@_H-=!*+ -XM10@+51")!"2)5"0$Z*L7``"+4P2#PP2%TG7:ZYR+10R).(M%[(D$).@OK___ -XM,<#KG8UT)@"-O"<`````58GE5XG'5HG.4XG3@^P<@#H`="^-1?")7"0$QT0D -XM"`8```")!"3H!1\``(D\)`'#B?`+1?")1"0$Z$(7``"`.P!UT8/$'%M>7UW# -XMD(UT)@!5B>575E.#[$R+10S'1>``````QT7D`````,=%Z`````")1?"-112) -XM!"3H;2+\_\=$)`2PD0@(B47`C47@B00DZ`ND_/^+5?"+`H7`#X28````QT6\ -XM`````.M.D(UT)@"#?0@"#X3Y````H029"@C'!"0]W`@(@\`!B40D!.B>^___ -XMB<.+3;R)VHU%X.@?____B1PDZ#>N__^+1?"-4`2)5?"+0`2%P'1!@_@E=&6# -XM^%P/A)P```"#^%X/A),````[!8R8"@ATF`M%O(U5X(E$)`2)%"3H5A8``(M% -XM\(U0!(E5\(M`!(7`=;^-1>")!"3H"Z/\_XU5X(D4).BPHOS_C47@B00DZ$46 -XM``"#Q$Q;7E]=PXM:!(U*!(7;=*.)3?"+6@2-0]^#^%UV4H/[80^$`0<``(M% -XMO(/()8E$)`2-1>")!"3HYQ4``(M%\(L`Z77___^-1?")!"3HDI___^EE____ -XMBT48QP0D:````(E$)`3H^E;]_XG#Z0?_____)(5D&PD(@66\____^XM%\(GV -XMZ0?___^!3;P````$BT7PD.GW_O__BU6\BT7`QT0D!`(```")5"0(NA^%ZU&+ -XM2!2)R/?JB")%"2)PXE$)`3HM1<` -XM`.FA_O__BU7`BTV\BT(0BQ2%@'0)"(U%X.BH_?__BT7PZ8S^__^!9;S____? -XMBT7PZ7W^__^!9;S____WBT7PZ6[^__^#?0@!#X1W"```QT0D!,28"@C'!"2D -XM+PD(Z&0)_O\]^&\)"'0DBQ"%TG0>B<,+5;R-1>")!"2)5"0$Z,,4``"+4P2# -XMPP2%TG7DBT7PZ1W^__^#?0@!#X0*"```QP0D7!L)"#'VZ-4=_/^)PX7;=3OK -XM0)"#?0@!=`0\+G0UC57LB5PD!,=$)`@&````B10DZ!\<```!PXM%O`M%[(E$ -XM)`2-1>")!"3H6!0```^V`X3`=<&%]G24B30DZ.6K__^+1?")]NFG_?__@WT( -XM`0^$>@<``,=$)`3$F`H(QP0DO"X)".B="/[_/?AO"0@/A%G___^+$(72#X1/ -XM____B<,+5;R-1>")!"2)5"0$Z/03``"+4P2#PP2%TG7DZ2S___^A`)@*"+K_ -XM____AO(@4V\````((M%\.F3 -XM_/__@4V\````"(M%\.F$_/__@WT(`@^$IP8``(M-$(7)#X1*_O__BTV\C47@ -XMBU40Z'7[__^+1?#I6?S__X-]"`$/A+@%``#'!"1<&PD(Z!,<_/^)PX7;=`V+ -XM3;R)VHU%X.A$^___@WT(`0^%`?[__^D6_/__@4V\````$(M%\.D2_/__BT7` -XMBU@(QT0D!,28"@C'!"1@/`D(Z*P&_O^%P`^$L@0``(/["P^.YP,``(/[#+]P -XM````C78`?@.#ZPR+5<"+0@2%P`^%L`,``(M%"`L%:'0)"`^$=P,``,=$)`3$ -XMF`H(QP0D0$8)".A:!O[_BU6\B1PDB50D"(/X`1G`]]"#X`*)1"0$Z`W$__^) -XMPXE$)`2-1>")!"3H?!0``(D<).BDJ?__BW6\C57@B10D@\XZB70D!.CO$0`` -XMBU7`BT6\QT0D!`(```")1"0(BT($B00DZ,+#__^)PXE$)`2-1>")!"3H,10` -XM`(D<).A9J?__BT7PBP"#^'`/A"P$``"#^%`/A",$``#'1"0$Q)@*",<$)&`\ -XM"0CHK@7^_X7`#X3K`P``B?H/OL(+1;R)1"0$C47@B00DZ&\1``"+1;R#R&WI -XM__K__\=$)`3$F`H(QP0D]"X)".C0!?[_/?AO"0@/A(S\__^+$(72#X2"_/__ -XMB<,+5;R-1>")!"2)5"0$Z"<1``"+4P2#PP2%TG7DZ5_\__^#^V,/A-D#``#' -XM1"0$Q)@*",<$)&0S"0CH>P7^_SWX;PD(B<)/6!T"0C'!"1@=`D(Z$+! -XM__^C9'0)"*%D=`D(AL.@_@O#Y3`@\8$#[;``<&+ -XM!H7`=>R$TG0*,<"#/R\/E<`!P8M%\,=%Q`````"#P`2#.#`/A/4!``"+5?"# -XMP@2)5="+`KH!````B47,@^@Q@_@(=PR+5OV__^-5>")%"2)="0$Z'`-``"+1;R+5<#'1"0$`@```(E$)`B+ -XM`HD$).A$O___B<.)1"0$C47@B00DZ+,/``")'"3HVZ3__^F4^___LRZ-="8` -XMZ1S\__^+51C'1"0$30```(D4).C((```B")!"3HQ@P``(M#!(/#!(7`=>3I7?S__XM5&,=$)`1L````B10D -XMZ%0@``")P^GQ]?__BT48QT0D!&T```")!"3H.B```(G&B") -XM%"2#R#R)1"0$Z!0,``"#?<@)#XZ!````BT6\@\@YB40D!(U%X(D$).CU"P`` -XMBT6\C57@B10D@\@KB40D!.C@"P``BT6\C57@B10D@\@^B40D!.C+"P``Z")!"3HI@L``(L$G0A#"0B%P'7@ -XMBT7PQP5H=`D(`0```.GU]/__BT7(@\`P"T6\B40D!(U%X(D$).AQ"P``ZX_K -XM#9"0D)"0D)"0D)"0D)!5B>575E.#[!R+=0B+?0S'!"0`````Z`$4_/^#_@*) -XM1?`/A)0!``"#_@,/A'8!``"#_@$/A+T```#'1"0$Q)@*",<$)*@R"0CHD__] -XM_X/^`8G##XZT````H2QW"@B)!"3HFZ+__\=$)!``````BT7PQP4L=PH(```` -XM`(E\)`B)7"0$B40D#,<$)`````#HGO/__XL]Y)D+"(7_HRQW"@AU,HL0A=)T -XM&XG#C;0F`````(D4).@XM?W_BU,$@\,$A=)U[L<$)`````#H$EC__^CML/W_ -XMH7B9"PB)!"3H(*+__X7VQP5XF0L(`````'0O@\0<6UY?77UWI&K#]_XL=<'0)"(7;=":+/6QT -XM"0CIG?[__\=$)`3$F`H(QP0D`#,)".@1_OW_B"0B%P'02B00DZ&^@___'!8!> -XM"0@`````BT7")6`B)0P2+=P2#QP2)7>"%]G7*B=B- -XM5>2)4`B+5=R)1>B+`J/,=`D(BT((B00DZ$29_?^+1=R)!"3HZ9___XU5Y(D4 -XM),=$)`20Z04(Z%:5_/^-1>2)!"3H"Z[]_XM%[(U5Y(E4)`3'1"0(`````(D$ -XM).B!JOW_QT0D!$`K!@B)PXD$).@?E?S_BPV`7@D(A_?^-1>2) -XM!"3H-I3\_XL5S'0)"(72B57<=`R+0@0[1?`/C+W^__^+%81W"@B%TG0)H3AW -XM"@B%P'0>QP4X=PH(`````,<$),2L"PCH])/\_X/$+%M>7UW#Z+<6___H4C?_ -XM_XGVZ,LW___HQD?__^O*C70F`.B;%?__H!(7;#X2C`@`` -XMC58(B57@BP.#^"T/A,@!``"+=@B%]@^$>0,``*D```!`#X0Y`0``@_@K=`S' -XM!"1L````Z`&1_/^#PP2^`0```(D<).C!#```B00DZ&4/_/^)QXL#AR)5"00B70D#(E$)`B+1=S'!"0#````B40D!.BU[/__B1PDB<;H -XM6Y#\_\=$)`0P*@@(B30DZ.N0_/^+!H7`=!>)\XUV`(D$).CXK?W_BT,$@\,$ -XMA5=QP74=`D(`0```,.058GE7<<%V'0)"`$```## -XMD%6)Y5W'!=QT"0@!````PY!5B>6+10A=BP"CQ*P+",.058GE@^P(HL& -XM@\`$@\$$BQ&%TG0/.Q!T\(L+A6+10B+`(E%"%WI;YC__^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(L`B44( -XM7>E/F/__ZPV0D)"0D)"0D)"0D)"058GE5E.#[!"+=0B+7@2%VW07,=N+!HL$ -XMF(/#`8D$).@7>D'F/__C;0F`````%6)Y8/L -XM&(E=^(G#B77\BT`(B=8[0P1T&(M3!(L#B320BUWXBW7\B>Q=PXVV`````(7` -XM=1_'0PA`````BT,(P>`"B40D!(L#B00DZ-&8__^)`^O%`<")0PCKX8VV```` -XM`%6)Y5.#[`2+70B+50R)V.B,____@T,$`8/$!%M=PXGV58GE4X/L%(M=",=$ -XM)`0`````B1PDZ,;___^+0P3!X`*)1"0$BP.)!"3HDR____B?95B>6#[!B)7?B)PXEU_(M`"(G6.T,$ -XM=!B+$XGQBT,$B`P"BUWXBW7\B>Q=PXUT)@"%P'453@^P$BUT(#[Y5#(G8 -XMZ(O___^#0P0!@\0$6UW#D%6)Y5.#[!2+70C'1"0$`````(D<).C&____BT,$ -XMB40D!(L#B00DZ*67__^#Q!1;753@^P4BUT(B=CHC?___XM#!(/``<'@`HE$)`2+ -XM`XD$).CVEO__@\046UW#58GE4X/L!(M="(M5#(G8Z%S___^#0P0!@\0$6UW# -XMB?95B>564X/L$(M="(MU$(M3"(GP`T,$.<)S.H72=16#^$!FN@`!QT,(0``` -XM`'86ND````")\`'2`T,$B5,(.=!W\L'B`HE4)`2+`XD$).A^EO__B0.+0P2- -XM%+4`````P>`"`P.)5"0(BU4,B00DB50D!.AF#?S_`7,$@\006UY=PU6)Y5.# -XM[!2+70R)'"3H.@C\_XE<)`2)1"0(BT4(B00DZ%O___^#Q!1;7<.0C70F`%6) -XMY593@^P0BUT(BW40BU,(B?`#0P0YPG,UA=)U$X/X0+)`QT,(0````'83ND`` -XM``")\`'2`T,$B5,(.=!W\HE4)`2+`XD$).C3E?__B0.+4P2+10P#$XET)`B) -XM1"0$B10DZ,4,_/\!)\I"-="8`BP*# -XMP@2%P'7WN/S___\IV"GP`<@!T(D$).C2E/__B=J)QXG!BP*#P@2)`8/!!(7` -XM=?*)\HL"@\($B4'\@\$$A6#[!B)7?B+70R)=?R+=0CWPP``(`!T%H@>N@$```"+7?B)T(MU_(GL7<.- -XM=@")7"0$B30DZ'`*_/^#^/]TV87`N@$```!^UXM=^(G"BW7\B>R)T%W#D(VT -XM)@````!5,<")Y5=64X/L#(M]"(7_#X21````BS7D=`D(A?8/A,$```"+'>1T -XM"0B#QP2)W@,UX'0)".L#@\<$BT?\A=\NAX'0)"(/H@*/@=`D(@\`&B40D!*'D -XM=`D(B00DZ$.3__^)Q@,UX'0)"*/D=`D(C5Z`ZYC&`P"AY'0)"(/$#%M>7UW# -XMH>!T"0B#Z("CX'0)"(/`!HE$)`2AY'0)"(D$).@`D___B<8#->!T"0BCY'0) -XM"(U>@.EM____QP7@=`D(@````,<$)(8```#HA9+__Z/D=`D(Z1____^-="8` -XMC;PG`````%4QP(GE5U93@^P,BWT(A?]T>:'L=`D(A(L=['0)"(G>`S7H -XM=`D(ZPB0C70F`(/'!(L'AAT -XM"0B#Z("CZ'0)"(/`!HE$)`2A['0)"(D$).A/DO__B<8#->AT"0BC['0)"(U> -XM@.NMQ@,`H>QT"0B#Q`Q;7E]=P\<%Z'0)"(````#'!"2&````Z,>1__^C['0) -XM".EH____C;8`````C;PG`````%6X!````(GE5U93@^P,BUT(BPN%R70:,,"- -XMM"8`````@\`!BQ2#A=)U]HT$A00```")!"3H=Y'__XG'BP.)_H7`=!^)!"3H -XM]?[__XD$).@MCOW_B0:+0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT -XM)@````"-O"<`````58GE@^PXBT40B77XBW4(B5WTB7W\B40D"(M%#(DT)(E$ -XM)`3HA`/\_X7`B<-^+(L&B40D!(U%[HE%X(D$).BZ!_S_.<-U#XMU##G;B=F+ -XM?>#\\Z9T!;O_____B=B+=?B+7?2+??R)[%W#C;0F`````%6)Y8/L&(E=^(M% -XM$(EU_(M=#(MU"(E$)`B)7"0$B30DZ&O___^#^/]T%X7`N@$```!^`HG"BUWX -XMB="+=?R)[%W#QT0D"`````#'1"0$`````,<$)`````#HWP+\_P^V`[H!```` -XM#0``(`")!HM=^(G0BW7\B>Q=PY"-M"8`````53'`B>564X/L((M="(7;=%'' -XM!?1T"0@`````@#L`=#&-=?2)7"0$QT0D"`8```")-"3H2?___\<$)/!T"0@! -XMPXM%](E$)`3HA/?__X`[`'72QP0D\'0)".C3]___H?!T"0B#Q"!;7EW#C;0F -XM`````%6X!````(GE5U93@^P,BUT(BSN%_W0:,,"-M"8`````@\`!BS2#A?9U -XM]HT$A00```")!"3HEX___XG'BP.)_H7`=!^)!"3H1?___XD$).CM^O__B0:+ -XM0P2#Q@2#PP2%P'7AQP8`````B?B#Q`Q;7E]=PXVT)@````"-O"<`````58GE -XM5U93@^P,BT4(BQB%VP^$FP```(L5X%T)"(G'B57PZS*+5?"!_O\```"+E)HT -XM!```B57L=TB+5?"+A+(T!```.47L=4:#10P$BU\$@\<$A=MT7(M%#(LP.?-T -XMZ8'[_P```':]B1PDZ+X"_/^!_O\```")1>QVOXVT)@````")-"3HI`+\_SE% -XM['2ZA=N0=#2%]KH!````="$Y1>R)]G0SBU7L@\0,6UY?72G"B=##BT4,,=*+ -XM`(7`=0J#Q`R)T%M>7UW#@\0,NO____];B=!>7UW#B=HI\NOAD)"0D)!5B>56 -XM4X/$@,<$)$`Q"0CH["[^_\<$)"0Q"0B)QNC>+O[_QP0D9#$)"(G#Z-`N_O^% -XMVP^$J`$``(7V#X21`0``A<`/A'\!``")7"0_/^)!"3H2?O__\=$)`3$F`H(QP0DO$@)"(G#Z"/G_?^%P'0. -XMBP"%P'0(BP"%P'0"B<.)="00BT9$QT0D"`````")7"0$QP0D`0```(E$)`SH -XMGMO__\=$)`0P*@@(B<:)!"3HW'_\_XL&AR\````@ST`=0D(`<=$)`2PD`@(QP0DQ*P+"`^4P(F%3/___X,%Q*P+"`'H -XM9W_\_\=$)`3$F`H(QP0DO$`)".A3YOW_A<`/A((```"+`(7`B850____=':+ -XM?0B%_P^$:0$``,>%4/___P`````QVXU%[(D$).BY^OO_BU7LB=`K!01U"0@Y -XMPW\NC85@____B14$=0D(B40D!,<$))0="0CH;O[[_X7`=#"+=0B%]@^$>@$` -XM`(UV`,<$),2L"PCH-'[\_X'$O````%M>7UW#BT4(A0C70F`(G>BQZ%VP^$Y0```(U%P(E$)`2-1BK'1"0("``` -XM`(D$).C&^OO_@_@`?-4/A<````"+7>@[7D1\AXGZA-*-=@`/A6`#``")7D3' -XM1D@"````Z6O___^+A5#___^[6`(``(D$).AH%?W_BY50____B10DZ,I[_?^H -XM`0^$>O[__XN54/___XL"B00DZ+*'_?^%P`^$8O[__XN54/___XL"@\($B950 -XM____B00DZ.'B_?]KV#SI0?[__\=$)`S('0D(QT0D"`$```"A@)@*",=$)`0: -XM````B00DZ/3;_/_'1"0$E!T)"(D$).B$U?__Z4_^___'1"0$3````,<$)`$` -XM``#H^X?__XU5P(E4)`3'1"0("````(G#C4`JB00DZ*O[^_^-1=B)1"0$C4,S -XMQT0D"!````")!"3HD?O[_XM%Z(E#1(!]R`!U&<=#2`(```"+1@2),XE#!(D8 -XMB5X$Z6#^__^-5_S_BT4(A<`/A:?]__^+A5#___^%P`^$F?W__XN]4/___X/'"(M' -XM^(7`#X2%_?__BQ"%T@^$>_W__XM?_(7;#X1P_?__BS.%]@^$9OW__\=$)`3D -XM+@D(B00DZ"+Y^__'A4C___\`````A<`/A'L!``"+-2!U"0B+!H7`=13IL0`` -XM`(UV`(LVBQZ%VP^$H@```/9&2`AU[HM?^,<$).0N"0B)7"0$Z-?X^_^%P'0? -XMC48(B00DZ.SV__^)7"0$B00DZ``O_?^%P`^$[0```(U&*HM?_(D$).C*]O__ -XMB5PD!(D$).C>+OW_A<`/A*L```"+1DBH$'01H01U"0B)1D2+1DB#X.^)1DBH -XM`G1>@'X(`'18BX5,____A<`/A/````"#3D@(QD8(`(LVBQZ%VP^%7O___XN- -XM2/___X/'"(7)#X3A_O__Z6S\__^+70B%VP^%8?S__\=$)`SP'0D(QT0D"`(` -XM``#IT_W__Z@!=0BH!`^$$/___XN%3/___X7`=&*-1AF)1"0$C48(B00DZ.#^ -XM^_^#3D@(Z>O^__^+1_S'!"3D+@D(B40D!.C4]_O_A<`/A=#^___I-?___XU& -XM&8M?^(D$).C=]?__B5PD!(D$).CQ+?W_A<`/A*G^___I[/[__XGPB?;H._K_ -XM_^N3QT0D!.0N"0B)'"3HA??[_X7`#Y3`#[;`B85(____Z6+^__^)\.@/^O__ -XMZ03___^-1@B)1"0$C47(QT0D"!````")!"3H+/?[_X7`=0^)7D3'1D@)```` -XMZ>W[__^-557,?]64X/L#,=$)`3$F`H(QP0DO"X)".@QX?W_B00DZ*GR -XM___'!"0!````B<;H&_K__XL=('4)"(L#AS/&0P@`BQN+`X7`==[HB/C__X/$#(GX6UY?7<.-M"8`````C;PG```` -XM`%6)Y5=64X/L+(M=#(MU"(U#LX/X(78IQP0D`P```.B=A/__B!= -XM"0AF@WR.-`!Y"`^VA(XT!```B`,/MD(!@\,!@\(!A,!UTL8#`.E2____C48J -XMB44(@\0L6UY?7>FA@/W_@'XS``^$&P$``(U>,XD<).C(^_O_@\`!B00DZ+&# -XM__^)QP^V1C,/MM"#^G\/AB\!``#'1>0N````A,")_G12BQ7<70D(B57H#[[` -XM.T7D#X2R````#[8#/#H/MM`/A(\````Y5>A^&XL-X%T)"&:#?)$T`'D-A=)X -XM!XN4D30$``")T(/#`8@&#[8#@\8!A,!UM\8&`.FG_O__BT9(@^`'@_@"#X0- -XM`0``@_@$#X3*````@^@!#X6__O__H8"8"@C'1"0,HAT)",=$)`@)````QT0D -XM!!H```")!"3H4M;\_^D-____C489Z07___^0C70F`+HZ````QT7D`````(UT -XM)@#I7/___XD<),=$)`0Z````Z$?V^_^%P(G##X4T____Z6S___^A@)@*",=$ -XM)`Q1#@D(QT0D"`P```#'1"0$&@```(D$).CGU?S_B44(@\0L6UY?7>E(?_W_ -XMC48(Z9#^___V!)6]40D(!,=%Y``````/A"0CHGO'__\<$)``Q"0B)1"0$Z'[H_/_'!"2P'@D(Z(+Q -XM___'!"0D,0D(B40D!.ABZ/S_QP0DJ!X)".AF\?__QP0D9#$)"(E$)`3H1NC\ -XM_\<$)+8>"0CH2O'__\<$)$`Q"0B)1"0$Z"KH_/_)PY"0D)"0D)"058GE@^P8 -XMB5WXBUT,B77\BQ7,=0D(BW4(A=)T)*'0=0D(A<`/A(P```")70R+7?B)=0B+ -XM#=1U"0B+=?R)[%W_X<<%S'4)"`$```#'1"0$`0$``,<$)+L>"0CH[OG[_X7` -XMH]!U"0AT3L=$)`3''@D(B00DZ"7T^_^CU'4)",=$)`32'@D(H=!U"0B)!"3H -XM"_3[_Z/LK`L(QT0D!-@>"0BAT'4)"(D$).CQ\_O_H_"L"PCI=/___XM=^+C_ -XM____BW7\B>Q=PY"0D)"0D)"0D)"0D%6)Y5=6@^PPBT40BU44BW4(BWT,B47L -XMB<&)5>B+1>C'1=``````QT74`````(GZB77DA<")=?")?>!U%#GY=F")\/?Q -XMB570QT74`````.L0BTW@.4WH=AB)==")?=2)]HM%T(M5U(/$,%Y?7<.-=@`/ -XMO47H@_`?B478=4:+1>@Y1>`/A\D```"+3>PY3>0/@[T```"+3?")5=2)3=#K -XMP9"+1>R%P'4,N`$````QTO=U[(G!BT7@BU7H]_&+1>3W\>N"N"````"+5>PK -XM1=B+=>R+?>2)P8E%W-/JBT7H#[9-V-/@"<*+1>33Y@^V3=R)5?2+5>#3Z`^V -XM3=C3X@G0BU7@T^"+1>0K1>P;5>B)1?#I+____SGX=K``````BW4,QT7D`````(E%](G!BT4(A=*)UXE%['4C.?$/AI@```")\O?Q -XMB<$QP(E-X(E%Y(M%X(M5Y(/$(%Y?7<,Y\@^'M0````^]PH/P'XE%Z`^$E@`` -XM`+@@````BU7T*T7HB<'3Z@^V3>B)1?")^(M]]-/@"<*+1>S3YP^V3?")5=R) -XM\M/H#[9-Z-/B#[9-\`G0T^Z)\O=UW(G1B778B478]^QS%(UT)@`QR3'`Z2?___^-M"8` -XM````N0$````QP.D4____BT7L#[9-Z-/@.<9VAXM-V#'`@^D!Z?K^__^0D)"0 -XMD)"0D)"058GE5U:#[%"+30R+512+11#'1;@`````A@]<`]]_I!O____?:@]$`]]G'1<#_____Z>C^__^X(````(M5W"M%R(G! -XMT^H/MDW(B474B?B)UXGRT^`)QXM%W-/@#[9-U(E%K(M%V-/H#[9-R-/B"="+ -XM5=C3X@^V3=2)5>2)\M/J]_>)UO=EK#G60IP1G6BG^__\[1>1VI2M%K!GZZYZ0D)"0 -XMD)"0D)"0D)"0D%6)Y5=6@^PPBU4,BT4(BW40BWT4B570`````#XBD````A?\/B+H```")UXG&BU78B<&+ -XM1=R%_XE5\(E%['44.<9V08G0BU7L]_:)P3'`ZQ.-=@`[?>QV3S'),<"-M"8` -XM````B4W0BTWDB474BT70BU74A7UW#A?9U"[@!```` -XM,=+W]HG!BT7LB?KW\8G&BT7P]_&)P8GPZ[P/O<>#\!^)1>AU1#E]['<%.77P -XM3_____#XE+____D(UT)@")\(GZ -XM]]B#T@#WVO=5Y.DS____N"````")\BM%Z(G!T^H/MDWHB47TB?B)UXM5[-/@ -XM"<>+1?#3Y@^V3?33Z`^V3>C3X@^V3?0)T(M5[(E%S-/J]_>)553@^P$H1A/"0B#^/]T$C';_]"+@Q1/"0B#ZP2#^/]U\(/$!%M= -XMPY"0D(/L#.B\\_O_@\0,PP```````````````````````````````"1&'0@87)G=6UE;G0@"BUD"0EL;V%D(&1I2!S=&%C:R!F2D@"BUI"0EI;G1E6YT87@@;V8@=&AE(&9O;&QO=VEN9R!@9FEL92<@"BUQ"0EA8V-E<'0@ -XM4TE'455)5"!F;W(@&5C=71I -XM;VX@"BU8"0EL:6ME("UX(&)U="!I;F-L=61I;F<@8V]M;6%N9',@&ET(`H*4V5E('1H92!T8W-H*#$I(&UA;G5A -XM;"!P86=E(&9O2!I9@!);7!R;W!EF5D`"5S(&YO="!F;W5N9`!);7!R;W!E6YT87@`3F\@:&]M92!D:7)E8W1O0!$:7)E8W1O0!5`!%>'!A;G-I;VX@8G5F9F5R(&]V97)F;&]W`%9A`!"860@(2!F;W)M`$YO('!R979I;W5S('-U8G-T:71U=&4`0F%D('-U -XM8G-T:71U=&4`3F\@<')E=FEO=7,@;&5F="!H86YD('-I9&4`4FEG:'0@:&%N -XM9"!S:61E('1O;R!L;VYG`$)A9"`A(&UO9&EF:65R.B`E8P!-;V1I9FEE2`I)W,`5&]O(&UA;GD@*"=S`$)A9&QY('!L86-E9"`H`$UI0``07)G=6UE -XM;G0@9F]R("UC(&5N9',@:6X@8F%C:W-L87-H````07)G=6UE;G1S('-H;W5L -XM9"!B92!J;V)S(&]R('!R;V-E6YC(&9A=6QT.B!065T*0```%5S86=E.B!H:7-T -XM;W)Y(%LM)7-=(%LC(&YU;6)E2!A2!F:6QE(&YO="!E>&5C=71A8FQE``!5;FMN;W=N(&]P=&EO;CH@ -XM8"TE%@@72!;(&%R9W5M -XM96YT("XN+B!=```*36ES"4P.'@*`"5D(&AI=',L("5D(&UI!0CO6@4([UH%".]:!0CO6@4([UH%".]:!0CO -XM6@4([EX%"`=?!0@@7P4(.5\%"$-?!0A<7P4([UH%".]:!0CO6@4(:U\%"'I? -XM!0BS7`4([UH%"*%>!0BU7@4([UH%".]:!0C.7@4([UH%"-]>!0CO6@4([UH% -XM".]:!0CO6@4(ZUT%"%);!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4( -XMCEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B. -XM6@4(CEH%"(Y:!0B.6@4(CEH%"(Y:!0B.6@4(2UL%"(Y:!0@I6P4(CEH%"(Y: -XM!0@B6P4(UUH%"`<`#0`````````````````````````````````@````)P`` -XM`"(````)````.P```"8````\````/@```"@````I````?````%X````E```` -XM`````'1CF4`=FUE;6]R>75S90!D97-CF4`)6IO8B`F`"5J;V(``"5S -XM.B`E6!0@ME@4(&98%"`^5!0@/ -XME@4(!98%"`^5!0@/E04(#Y4%"`^5!0@/E04(#Y4%"`^5!0C[E04(#Y4%"`^5 -XM!0@/E04(\94%"`^5!0CGE04(#Y4%"-V5!0ACF@4(0YH%"(B9!0B(F04((YH% -XM"(B9!0B(F04(B)D%"(B9!0B(F04(\9D%"-&9!0B(F04(B)D%"(B9!0A#F@4( -XM;)L%"&R;!0C%G`4(H)P%"&>;!0ALFP4(YYL%"&R;!0BG -XMFP4(@)T%"&R;!0ALFP4(2)T%"&R;!0ALFP4(YYL%"'1C&-E<'1I;VX`2TE,3`!+:6QL960`55-2 -XM,0!5&ET960`24\`07-Y;F-H&-E961E9`!81E-:`$9I;&5S:7IE(&QI;6ET(&5X -XM8V5E9&5D`%9404Q230!6:7)T=6%L('1I;64@86QA0!B&5C`&5X:70`9F<`9FEL -XM971E0!O;FEN='(`<&]P9`!P&5S -XM=6P`+20J`"@]?@!>*BTE)'M].B,`.EXD*BTE`````&YC:&%R^04(N@(&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``& -XM"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8( -XMI``&"*0`!@B:`@8(I``&"*0`!@B:`@8(I``&"*0`!@BD``8(I``&"*0`!@A\ -XM`@8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@BD``8(I``&"*0` -XM!@BD``8(I``&"*0`!@BD``8(I``&"*0`!@B:`@8(]1(&")42!@B5$@8(UPH& -XM"-<*!@C7"@8(UPH&")42!@C7"@8(UPH&"&T2!@C7"@8(UPH&"-<*!@C7"@8( -XMUPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8(UPH&"-<*!@C7 -XM"@8(UPH&"!(2!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<* -XM!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH& -XM"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@C7"@8(UPH&"-<*!@B5$@8( -XMF0T&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<- -XM!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT& -XM"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08( -XM%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7 -XM#08(%PT&"!<-!@@7#08(%PT&"!<-!@@7#08(T0T&"!<-!@@7#08(T0T&"!<- -XM!@@7#08(%PT&"-$-!@@7#08(%PT&"!<-!@BP$`8(IQ`&"-$-!@@>#P8(T0T& -XM"-$-!@@7#08(%PT&"*<0!@AW:61E7W)E860`.R8*`#P^*"D`)74E=0`E9#H` -XM"`A)W@@(3-X("$_>"`A%R0@(`````&YO="!A -XM(&1I0!U;G)E861A8FQE``HE4R`E0!"860@='=?8V]M;6%N9`H`:71E;7,`)7,Z($EN=&5R;F%L(&UA=&-H -XM(&5R!0<(G@4'"#P#!PB,`P<(QP,'"``````````` -XM````````````````@+X&"/#%!@C`NP8(H,4&"("^!@B`O@8((+X&"*#%!@A@ -XMNP8(D+L&","[!@C`NP8(`+L&"#"[!@C0N@8(H+H&"'"Z!@B`O@8(@+X&""#% -XM!@@`````````````````````P,`&",#`!@C`P`8(0,4&",#`!@C`P`8(P,`& -XM"$#%!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8(P,`&",#`!@C`P`8( -XMP,`&"(#$!@@`````````````````````T,$&"/#"!@BPO08(4,4&"-#!!@C0 -XMP08(L+T&"%#%!@BPO08(L+T&"."Y!@A`O08(X+P&"+#)!@B`O`8(\+L&"&"Y -XM!@C0P08(T,$&")#$!@@*)7,@:6YT97)N86P@97)R;W(Z($D@9&]N)W0@:VYO -XM=R!W:&%T($DG;2!L;V]K:6YG(&9OF4M=V]R9`!C:&%N9V4M -XM8V%S90!C:&%N9V4M=&EL;"UE;F0M;V8M;&EN90!6:2!C:&%N9V4@=&\@96YD -XM(&]F(&QI;F4`8VQE87(M&-H86YG -XM92UP;VEN="UA;F0M;6%R:P!%>&-H86YG92!T:&4@8W5R'!A;F0@=F%R:6%B;&5S`&9O2US96%R8V@M8F%C:W=A2US96%R8V@M9F]R=V%R9`!I;G-E"UM971A`'%U;W1E9"UI;G-E2!E=F5R -XM>71H:6YG`')U;BUF9RUE9&ET;W(`4F5S=&%R="!S=&]P<&5D(&5D:71O<@!R -XM=6XM:&5L<`!S96QF+6EN2!D96QA>65D -XM('-U2UF;'5S:"UO=71P=70`5'1Y(&9L=7-H -XM(&]U='!U="!C:&%R86-T97(`='1Y+7-I9VEN='(`5'1Y(&EN=&5R2US -XM:6=T'0M=V]R9`!V:2UA9&0`=FDM -XM861D+6%T+65O;`!V:2UC:&"!C;VUM86YD`'9I+65N9'=O6%N:P!Y86YK+7!O -XM<`!E7V-O<'E?=&]?8VQI<&)O87)D`&5?<&%S=&5?9G)O;5]C;&EP8F]A5]P`!$ -XM96QE=&4@8VAA2!L:6YE````1&ES<&QA>2!L;V%D(&%V97)A9V4@86YD(&-U -XM&5C=71E(&-O;6UA;F0@86YD(&ME97`@ -XM8W5R'0@:&ES=&]R>2!L:6YE````17AP86YD('!A=&AN86UE7!E9"!T;R!T:&4@;&EN92!V97)B871I;0```$QO;VL@9F]R -XM(&AE;'`@;VX@8W5R&EC86P@8W5R -XM7!E -XM9`!6:2!R97!L86-E(&-H87)A8W1E6%N:V5D('1E>'0@=VET:"!Y86YK(&9R;VT@96%R;&EE -XM2D@4&%S=&4@8VQI<&)O87)D -XM(&)U9F9E'0@=V]R9"!T;R`G7%PG```H5TE.,S(@;VYL -XM>2D@0V]N=F5R="!E86-H("`!K;0!A;0!X;@!C;P!L:0!A9&0@ -XM;F5W(&)L86YK(&QI;F4`8FP`875D:6)L92!B96QL`&-L96%R('1O(&)O='1O -XM;0!C;&5A7-I8V%L('1A8G,`3G5M8F5R(&]F(&QI;F5S`$YU;6)E0!Y97,`8F%U9`!C;VQS``EF;VQL;W=I;F<@8VAA -XM3H@3G5L;"!E>'1E;F1E9"UK97D@;F]T(&%L;&]W960N -XM"@!!9&18:V5Y.B!.=6QL(&5X=&5N9&5D+6ME>2!N;W0@86QL;W=E9"X*```` -XM`$%D9%AK97DZ('-E<75E;F-E+6QE860M:6X@8V]M;6%N9"!N;W0@86QL;W=E -XM9`H``$]C=&%L(&-O;G-T86YT(&1O97,@;F]T(&9I="!I;B!A(&-H87(N"@`E -XM+3$U4RT^(`!N;R!I;G!U=`!3;VUE=&AI;F<@;75S="!F;VQL;WUU]`%5N8F]U;F0@97AT96YD960@:V5Y("(E4R(*``"5'0@(E1T( -XM")4="`B5'0@(E1T(")4="`B5'0@(E1T("-@<"`C8'`@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8 -XM'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("-@< -XM"`C8'`@(V!P("-@<"`C8'`@(V!P("-@<"`C8'`@(V!P("(4="`C8'`@(V!P( -XM"-@<"`C8'`@(=1T("&4="`C8'`@(V!P("%4="`A%'0@(V!P("-@<"`C8'`@( -XMV!P("-@<"`C8'`@(V!P("#4="`C8'`@(V!P("-@<"`@G'0@(V!P("!L="`C8 -XM'`@(#QT(".D6"0A5;FMN;W=N('-W:71C:``E&%N>0!I>&]F9@!I;6%X8F5L`&ED -XM96QE=&4`;W!O'0`"5L>"!T;R`P>"5L>"`H)6QD*2X*`$]U="!O9B!M96UO -XM7,@=&\@96UA8W,@ -XM8FEN9&EN9W,*````("`@("UD("`@8FEN9"!A;&P@:V5Y4UA<%LE9%T@/3T@)60*`$-C06QT36%P6R5D -XM72`]/2`E9`H`3G5L;"!S=')I;F<@2!B:6YD:6YG,@@(7C(("%XR"`A>,@@(.#0("(HT -XM"`A>,@@(7C(("%XR"`A>,@@(7C(("$4T"`A5-`@(7C(("%XR"`AE-`@(Y#<( -XM"%@W"`A8-P@(O3<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("(8W"`A8-P@( -XM6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(73<("%@W"`A8 -XM-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`CD-P@(6#<("%@W -XM"`B]-P@(6#<("%@W"`A8-P@(6#<("%@W"`A8-P@(AC<("%@W"`A8-P@(6#<( -XM"%@W"`A8-P@(6#<("%@W"`A8-P@(6#<("%@W"`A=-P@(2!A;&EA($("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP("(M\"`B+?`@( -XMBWP(""R!"`CJ?P@(BWP("-M_"`AX@0@(S8(("(M\"`B+?`@(BWP("(M\"`B+ -XM?`@(BWP("(M\"`C`@@@(HW\("(M\"`B+?`@(ZG\("(M\"`AX?P@(:7\(".I_ -XM"`A:?P@(BWP("$!_"`B+?`@("'\("(M\"`B+?`@(BWP("(M\"`B+?`@(BWP( -XM"(M\"`B+?`@(^7X("'B!"`C9?@@(BWP("(M\"`B+?`@(98,("(M\"`BK?@@( -XMBWP("%5^"`C??0@(CGT("(M\"`CJ?P@(BWP("(M\"`A_?0@(ZG\("'!]"`B+ -XM?`@(4'T("(M\"`@%?0@(BWP("/5\"`B+?`@(Y'P("'B!"`@L9FEL96,`+&-O -XM;&]R`"QR:``L'`@)``` -XM``$;`SMP+@``!````#"+__^,+@``H(S__ZPN``#PC?__S"X``!"0___L+@`` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````!%R0@(`````"1/"0@````` -XM`````````````````````$`H(RD@0V]P>7)I9VAT("AC*2`Q.3DQ(%1H92!2 -XM96=E;G1S(&]F('1H92!5;FEV97)S:71Y(&]F($-A;&EF;W)N:6$N"B!!;&P@ -XM"0@D-@D(`@````````````````````````#X;PD( -XM``````````````````````````````````````!``$``0`!``$``0`!``$`` -XM0!1`&$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!` -XM`$`4``"``8`0@("``(`0H`&`$*`0@""``(``@`"``(``@``1`!$`$0`1`!$` -XM$0`1`!$`$0`1`(`0H!"``(`0@""``(``%@`6`!8`%@`6`!8`!@`&``8`!@`& -XM``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&((!`@`"``(``@#*``!H` -XM&@`:`!H`&@`:``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`* -XM``H`"B"`$*``@`"``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``$`` -XM0`!``$``0`!``$``0`!``$``0`!``$``0`!``$``0`!``(``@`"``(``@`"` -XM`(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(`` -XM@`"``(``@``&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`&``8`!@`& -XM``8`!@`&``8`@``&``8`!@`&``8`!@`&``H`"@`*``H`"@`*``H`"@`*``H` -XM"@`*``H`"@`*``H`"@`*``H`"@`*``H`"@`*`(``"@`*``H`"@`*``H`"@`* -XM`````"_*"`@!````[\D("`$````WR@@(``0``/?)"`@"````0,H("``$``#W -XMR0@(`P```$G*"`@`!```]\D("`0```!3R@@(``0``/?)"`@%````80("'#D"`@%````<.0("`4````F````YQP)"$7)"`@`````10("`(````]````Q!X)"'GD"`@%```` -XM>>0("`4````^````)/$("'GD"`@%````>>0("`4````C````?^0("(+D"`@% -XM````@N0("`4````E````G]$("(+D"`@%````@N0("`4````J````.K\("(CD -XM"`@%````B.0("`4`````````CN0("*^^"`@!````K[X("`$`````````D>0( -XM"*^^"`@!````K[X("`$`````````E.0("$7)"`@`````10("$7)"`@`````1!PA@3P<(`$\'"/`J!PAP,`<(8"D'",`O!PCP/`<( -XM("P'"#`L!PA`+`<(4"P'"&`L!PAP+`<(P"H'"*`Z!PAP,0<(<#\'""!0!PB@ -XM,0<(P"L'"&`F!PC@30<(H$T'"+`I!PBP40<(,%$'"&!W!PAP=0<(('8'"+`V -XM!PC0,`<(D#`'"!!H!PB03@<(,%$'"#`Q!PA0*P<($"L'".!.!PB0*P<(H$\' -XM",!/!PCP+P<(8$<'"!!*!P@`+`<(@"<'",!R!PC0)P<(\"<'"%`H!P@04@<( -XM@'0'"`!T!P@0.@<(<"@'"*`L!P@@90<(L#D'"(`X!PB@8P<(P"P'"'!`XX&@$/`1````7````"T````E```````` -XM`"(````G````8`````````````````````````````````````````#@3`D( -XM$0```````````````````-1,"0@5````````````````````]$P)"!,````` -XM```````````````(30D(%````````````````````)`O"0@2```````````` -XM````````($T)"``````````````````````;````3P```$8`````````&P`` -XM`$\```!(`````````!L```!/````1``````````;````3P```$,````````` -XM&P```$\```!"`````````!L```!/````00`````````;````6P```$8````` -XM````&P```%L```!(`````````!L```!;````1``````````;````6P```$,` -XM````````&P```%L```!"`````````!L```!;````00`````````````````` -XM`'P-"0@``0``P````(,-"0@#````0````(H-"0@``````````)$-"0C*!0`` -XM$`B`@)@-"0@``````````'P-"0A``0``@````(,-"0@#````0````(H-"0@` -XM`````````)$-"0B`````'`V`@)@-"0BP\;\!`````'P-"0@```````8``(,- -XM"0@``````````(H-"0@``````````)$-"0@`````@`0``)@-"0@````````` -XM`````````````````&P```!O````9P```&\```!U````=``````````````` -XM80```'4```!T````;P```&P```!O````9P```&\```!U````=``````````V -XM````,````````````````````&$```!U````=````&\```!M````80```'0` -XM``!I````8P````````!H````80```&X```!G````=0```'``````````80`` -XM`"X```!O````=0```'0`````````=````'0```!Y`````````"\```!P```` -XM=````',````O`````````&$```!N````>0````````!S````=````&$```!T -XM````=0```',`````````,``````````Q`````````"T````Q```````````` -XM````````````````````````,````'@````W````9@```&8```!F````9@`` -XM`&8```!F````9@`````````Z`````````%\`````````=````&,```!S```` -XM:`````````!H````;P```&T```!E`````````'4```!S````90```'(````` -XM````9P```'(```!O````=0```'``````````=````&4```!R````;0`````` -XM````````````````````````````````````````=@```&4```!R````0```````````````````````````````````&,```!A````=````&$` -XM``!L````;P```&<`````````3@```$P```!3````4````$$```!4````2``` -XM``````!N````;P```&L```!A````;@```&H```!I`````````'X````O```` -XM+@```&,```!S````:````&0```!I````<@```',````````````````````` -XM``````````````!D````:0```'(```!S````9@```&D```!L````90`````` -XM````````````````````````````````````````0```'P```!N````?````&4```!\````80```"D````_ -XM``!`(```````````````=0```&X```!A````;````&D```!A````````'0```!R````80```&,` -XM``!T``````````````````````````````````````````````!D````=0`` -XM`&X```!I````<0```'4```!E`````````',```!Y````;0```&P```!I```` -XM;@```&L```!S`````````&D```!G````;@```&\```!R````90````````!C -XM````:````&$```!S````90````````!E````>````'````!A````;@```&0` -XM````````````````````````90```&,```!H````;P```%\```!S````=``` -XM`'D```!L````90````````!B````P````````![````(````"X````N````+@```"````!]```` -XM`````'T`````````4````$$```!4````2```````````````9````&4```!F -XM````80```'4```!L````=``````````M````;@`````````M`````````&X` -XM``!O````9P```&P```!O````8@``````````````````````````````;@`` -XM`&\```!N````;P```&T```!A````=````&,```!H```````````````````` -XM`````````````````````&`````@````+@```"X````N````(````&`````` -XM````80```&T```!P````;0````````!T````:0```&T```!E`````````&X` -XM``!O````=````&D```!F````>0`````````````````````````````````` -XM````````````<````'(```!I````;@```'0```!E````>````&D```!T```` -XM=@```&$```!L````=0```&4`````````*````"``````````(````"D````` -XM````(``````````@````?````'P````@`````````"`````F````)@```"`` -XM````````(````'P````@`````````#L````@`````````#L`````````(@`` -XM`"(`````````6P```%T`````````(````#P````\````(``````````@```` -XM/````"``````````(````#X````^`````````"`````^`````````#X````` -XM````(````"X````N````+@`````````E````)0`````````E````*P`````` -XM```E````+0`````````E````(P`````````````````````````````````` -XM`&,```!O````;@```'0```!I````;@```'4```!E```````````````````` -XM``````````````````````````!C````;P```&X```!T````:0```&X```!U -XM````90```%\```!A````<@```&<```!S`````````%\```!P````80```'4` -XM``!S````90````````!@````<````'<```!D````8`````````!F````:0`` -XM`&P```!E````8P`````````````````````````````````````````````` -XM:````&D```!S````=````&,```!H````80```'(```!S```````````````` -XM`````````````````````````'````!R````;P```&T```!P````=````&,` -XM``!H````80```'(```!S``````````````````````````````!H````:0`` -XM`',```!T````;````&D```!T`````````%4```!3````10```%(````````` -XM````````````````3````$\```!'````3@```$$```!-````10````````!' -XM````4@```$\```!5````4````````````````````'<```!O````<@```&0` -XM``!C````:````&$```!R``````````` -XM``!L````:0```',```!T````;````&D```!N````:P```',`````````1``` -XM`$D```!.````1P```"$`````````````0``````````````````````````` -XM``````````!C````;P```'(```!R````90```&,```!T`````````&,```!M -XM````9`````````!A````;````&P`````````90```'(```!A````````1`````@````(```````` -XM``H````H;FEL*0```!0``````````7I2``%\"`$;#`0$B`$``!P````<```` -XMG%S__W`!````00X(A0)"#05%A@2'`P``'````#P```#L7?__1@$```!!#@B% -XM`D(-!46&!(<#```<````7````!Q?__\2`@```$$."(4"0@T%188$AP,``!P` -XM``!\````'&'__X!`@BG@0(,IX$"$*>!`A2G@0(8IX$"'*>!`B" -XMG@0(DIX$"**>!`BRG@0(PIX$"-*>!`CBG@0(\IX$"`*?!`@2GP0((I\$"#*? -XM!`A"GP0(4I\$"&*?!`ARGP0(@I\$")*?!`BBGP0(LI\$",*?!`C2GP0(XI\$ -XM"/*?!`@"H`0($J`$""*@!`@RH`0(0J`$"%*@!`ABH`0(6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G!L=``N=&5X -XM=``N9FEN:0`N6YA;6EC`"YC=&]Rvi.uu << 'END-of-vi.uu' -Xbegin 755 vi -XM?T5,1@$!`0D```````````(``P`!````X*0$"#0````8IP0``````#0`(``' -XM`"@`&@`9``8````T````-(`$"#2`!`C@````X`````4````$`````P```!0! -XM```4@00(%($$"!4````5````!`````$````!``````````"`!`@`@`0(@(\$ -XM`("/!``%`````!````$`````D`0``!`)"``0"0B$!```@!$```8`````$``` -XM`@```%"1!`!0$0D(4!$)"-````#0````!@````0````$````+`$``"R!!`@L -XM@00(&````!@````$````!````%#E=&1LCP0`;`\)"&P/"0@4````%`````0` -XM```$````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``)-0P`@P```*@````Q```````````````W`````````&<```!4```` -XMH@````````"(`````````'<```"9````3@```&X````_``````````````"0 -XM````@@``````````````I0```*<```"/`````````(````!6````G0```)$` -XM``"*`````````)L```!2``````````4`````````F````&$````T````>@`` -XM``````"+````G````)X````-`````````'\``````````````'D````````` -XM)P```$,````8````:@````````!T````H0````````"$`````````$P````X -XM````H``````````?````E0```#``````````8P`````````6`````````#T` -XM``!F````E@``````````````EP```!$```!:``````````````!B````@P`` -XM`($```!7````7````)0`````````%P```'4````N````?0````````!H```` -XM`````(P``````````````'````"'````F@```*0```!)````<@```*8````` -XM````4`````````!8````>P```)(`````````HP```````````````````)\` -XM```\````;P```%4```!^`````````(D```!?````60```(4````Z```````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````0```````````````````!(````` -XM````````````````````!`````(````````````````````.````#``````` -XM```5`````````!0````(````````````````````````````````````*0`` -XM````````````(P````D``````````````"H````E````+P`````````````` -XM"@`````````````````````````L```````````````<```````````````9 -XM`````````"@````D`````````$(``````````P`````````V`````````$H` -XM```Y````,P`````````;`````````$$````````````````````+````-0`` -XM`````````````````!T````0````&@````\````'````70`````````````` -XM`````#X```!$`````````!X````A````:0``````````````(````&0````` -XM````````````````````$P````````!1````````````````````10```$\` -XM```R````!@```#L``````````````&P```!(`````````$<````````````` -XM`',```!`````````````````````6P````````!@````)@```(T```!+```` -XM`````%X```!Q`````````'P```!-````C@```'@```!M`````````"(```"& -XM`````````&L```!&`````````%,````M````DP```'8````K````90`````` -XM``````````````````!\!````````,8````2````VP$````````R`@``$@`` -XM`*P"````````-````!(```!3!````````#,````2````N@(```````!#```` -XM$@```!($````````5@$``!(````]!``````````````2````K@,````````R -XM````$@```#8$````````H0```!(```!0`0```````'(#```2````+P$````` -XM``""`0``$@```+\"`````````````!(```"C`0```````&L!```2````R`$` -XM``````#]"```$@```!$```!0$0D(`````!$`\?^T`@`````````````2```` -XM.0(`````````````$@```!H`````````U`,``!(```"1!``````````````2 -XM````-P0```````"A````$@```/\"`````````````!(```!/`P```````%H` -XM```2````50(```````!7````$@```$(!````````.0```!(````P!``````` -XM```````2````!@(```````!J````$@```"``````````30```!(````G```` -XM`````/8#```2````>P0```````":````$@```"0$`````````````!(````O -XM`````````!D````2````XP$```````#!````$@```/,!`````````````!(` -XM``">`P```````%T````2````2@$`````````````$@```&X!````````3P`` -XM`!(```",`P````````4````2````S`(`````````````$@```.`#```````` -XM3@4``!(````5`P```````-T#```2````:@(```````#8````$@```#<```"@ -XMFP0(`````!(`"@`@`@```````.H````2````=P(`````````````$@```%X# -XM`````````````!(```#M`@`````````````2````S@$```````"2`0``$@`` -XM`)`0```````#,````2````3``` -XM``````"2````$@```'$#``"@%`D(!````!$`%P!5`````````"0````2```` -XM*@(````````5`@``$@```'X#````````90(``!(```"/`@`````````````2 -XM````,`,````````T````$@```-,"````$`D(!````!$`$`!:`````````-T` -XM```2````9`````````!"````$@```&L`````````;@```!(```!U```````` -XM`-P#```2````0P0`````````````$@```*<"`````````````!(```"X`P`` -XM`````%(7```2````&0(``*04"0@$````$0`7`,`#````````*P```!(````^ -XM`P```````,T````2````?`(``*@4"0A4#```$0`7`(4#`````````````!(` -XM``#/`P```````,P````2````90(```````"A````$@```'L`````````)``` -XM`!(```"0`0```````#````!(```";````'(H("``````2 -XM``T`,0$```````"8````$@```-<#````````'0```!(```"7!````````.T` -XM```2````.`$```0A"0@$````$0`7`*H!`````````````!(````\!``````` -XM`+$````2````&P0````````D````$@```#0"`````````````!(````=`P`` -XM""$)"`0````1`!<`8@$````````E````$@```'\!`````````````!(```"A -XM`````````#D````2````7P0`````````````$@```%@$````````8@```!(` -XM``"6`P```````,L````2````@00`````````````$@```*L````,(0D(!``` -XM`!$`%P!L!````````/H````2````8`0```````!#````$@```*$$```````` -XM`````!(````+`@```````,,````2````KP0``(04"0@`````$`#Q_Z<$```` -XM````/0```!(````2`@```````#,````2````U`$`````````````$@```+(` -XM```T$@D(`````!$`\?_M`P```````($````2````P@0``(`A"0@`````$`#Q -XM_P@$````````8@,``!(```"K`0`````````````2````R`````````!T```` -XM$@```$`"````````80```!(```"G`P````````,!```2````Z0$``!`A"0@$ -XM````$0`7`&\$````````DP```!(```#%`@``%"$)"`0````1`!<`^`$````` -XM````````$@```,T`````````H@```!(```"Q`0```````$4````2````5@,` -XM``````#*#```$@````$$````````*P```!(```#6````&"$)"`0````1`!<` -XM7P(`````````````$@```,$!`````````````!(```#=`````````+4````2 -XM````YP`````````%`0``$@```#("````````[````!(```!E!``````````` -XM```2````(P0`````````````$@```'0!S971V8G5F`&5X96-L`%]?7-T96T`9F5O9@!M86QL;V,`:7-A='1Y`&]P=&%R9P!V&5C -XM`&]P96YD:7(`6YA;64`9V5T<'=U:60`9V5T8W=D`&9G971C -XM`&=E=&AO&ET`'-E=&QO8V%L90!R96=E&ET`'-T@<` -XM``(`QP0```````"@%`D(!3P``*04"0@%2@``J!0)"`5-``#\(`D(!6(````A -XM"0@%9P``!"$)"`5Q```((0D(!78```PA"0@%?@``$"$)"`6/```4(0D(!9$` -XM`!@A"0@%EP``'"$)"`6C``!`$@D(!P$``$02"0@'`@``2!()"`<#``!,$@D( -XM!P0``%`2"0@'!0``5!()"`<&``!8$@D(!P<``%P2"0@'"```8!()"`<)``!D -XM$@D(!PH``&@2"0@'"P``;!()"`<,``!P$@D(!PT``'02"0@'#@``>!()"`<0 -XM``!\$@D(!Q$``(`2"0@'$@``A!()"`<3``"($@D(!Q0``(P2"0@'%0``D!() -XM"`<6``"4$@D(!Q<``)@2"0@'&```G!()"`<9``"@$@D(!QH``*02"0@'&P`` -XMJ!()"`<<``"L$@D(!QT``+`2"0@''@``M!()"````[!,)"`=Y``#P$PD(!WH``/03"0@'>P``^!,) -XM"`=\``#\$PD(!WT````4"0@'?P``!!0)"`>````(%`D(!X$```P4"0@'@@`` -XM$!0)"`>$```4%`D(!X4``!@4"0@'A@``'!0)"`>(```@%`D(!XH``"04"0@' -XMBP``*!0)"`>,```L%`D(!XT``#`4"0@'C@``-!0)"`>0```X%`D(!Y(``#P4 -XM"0@'DP``0!0)"`>4``!$%`D(!Y4``$@4"0@'E@``3!0)"`>8``!0%`D(!YD` -XM`%04"0@'F@``6!0)"`>;``!<%`D(!YP``&`4"0@'G0``9!0)"`>>``!H%`D( -XM!Y\``&P4"0@'H```A``!T%`D(!Z(``'@4"0@'I0``?!0)"`>F``"` -XM%`D(!Z<``(/L#.@("@``Z$/N`P"#Q`S#````_S4X$@D(_R4\$@D(`````/\E -XM0!()"&@`````Z>#_____)402"0AH"````.G0_____R5($@D(:!````#IP/__ -XM__\E3!()"&@8````Z;#_____)5`2"0AH(````.F@_____R54$@D(:"@```#I -XMD/____\E6!()"&@P````Z8#_____)5P2"0AH.````.EP_____R5@$@D(:$`` -XM``#I8/____\E9!()"&A(````Z5#_____)6@2"0AH4````.E`_____R5L$@D( -XM:%@```#I,/____\E`2"0AH0`$``.E@_?___R7D$@D(:$@!``#I4/W___\EZ!() -XM"&A0`0``Z4#]____)>P2"0AH6`$``.DP_?___R7P$@D(:&`!``#I(/W___\E -XM]!()"&AH`0``Z1#]____)?@2"0AH<`$``.D`_?___R7\$@D(:'@!``#I\/S_ -XM__\E`!,)"&B``0``Z>#\____)003"0AHB`$``.G0_/___R4($PD(:)`!``#I -XMP/S___\E#!,)"&B8`0``Z;#\____)1`3"0AHH`$``.F@_/___R44$PD(:*@! -XM``#ID/S___\E&!,)"&BP`0``Z8#\____)1P3"0AHN`$``.EP_/___R4@$PD( -XM:,`!``#I8/S___\E)!,)"&C(`0``Z5#\____)2@3"0AHT`$``.E`_/___R4L -XM$PD(:-@!``#I,/S___\E,!,)"&C@`0``Z2#\____)303"0AHZ`$``.D0_/__ -XM_R4X$PD(:/`!``#I`/S___\E/!,)"&CX`0``Z?#[____)4`3"0AH``(``.G@ -XM^____R5$$PD(:`@"``#IT/O___\E2!,)"&@0`@``Z<#[____)4P3"0AH&`(` -XM`.FP^____R50$PD(:"`"``#IH/O___\E5!,)"&@H`@``Z9#[____)5@3"0AH -XM,`(``.F`^____R5<$PD(:#@"``#I!,)"&AP`@``Z0#[ -XM____)7P3"0AH>`(``.GP^O___R6`$PD(:(`"``#IX/K___\EA!,)"&B(`@`` -XMZ=#Z____)8@3"0AHD`(``.G`^O___R6,$PD(:)@"``#IL/K___\ED!,)"&B@ -XM`@``Z:#Z____)903"0AHJ`(``.F0^O___R68$PD(:+`"``#I@/K___\EG!,) -XM"&BX`@``Z7#Z____):`3"0AHP`(``.E@^O___R6D$PD(:,@"``#I4/K___\E -XMJ!,)"&C0`@``Z4#Z____):P3"0AHV`(``.DP^O___R6P$PD(:.`"``#I(/K_ -XM__\EM!,)"&CH`@``Z1#Z____);@3"0AH\`(``.D`^O___R6\$PD(:/@"``#I -XM\/G___\EP!,)"&@``P``Z>#Y____)<03"0AH"`,``.G0^?___R7($PD(:!`# -XM``#IP/G___\ES!,)"&@8`P``Z;#Y____)=`3"0AH(`,``.F@^?___R74$PD( -XM:"@#``#ID/G___\EV!,)"&@P`P``Z8#Y____)=P3"0AH.`,``.EP^?___R7@ -XM$PD(:$`#``#I8/G___\EY!,)"&A(`P``Z5#Y____)>@3"0AH4`,``.E`^?__ -XM_R7L$PD(:%@#``#I,/G___\E\!,)"&A@`P``Z2#Y____)?03"0AH:`,``.D0 -XM^?___R7X$PD(:'`#``#I`/G___\E_!,)"&AX`P``Z?#X____)0`4"0AH@`,` -XM`.G@^/___R4$%`D(:(@#``#IT/C___\E"!0)"&B0`P``Z<#X____)0P4"0AH -XMF`,``.FP^/___R40%`D(:*`#``#IH/C___\E%!0)"&BH`P``Z9#X____)1@4 -XM"0AHL`,``.F`^/___R4<%`D(:+@#``#I#V__\```````````````!5B>564X/L$(/D -XM\(M=!(G1C72=#(7;B35H(0D(?C:+10B%P'0OHP`0"0@/MA"$TG0C@\`!ZPH/ -XMMA"#P`&$TG04@/HO=?&C`!`)"`^V$(/``832=>RX4!$)"(7`=#2)#"3HG_[_ -XM_\<$)!R*"`CHD_[__^A*]O__C44(B70D"(E$)`2)'"3H5P\``(D$).AC_?__ -XMZ'[X___KS9"0D)"0D)"058GE@^P(@#T@(0D(`'0,ZQR#P`2C"!`)"/_2H0@0 -XM"0B+$(72=>O&!2`A"0@!R<.058GE@^P(H3`2"0B%P'02N`````"%P'0)QP0D -XM,!()"/_0R<.0D)"0D)"0D)"0D)"0H0PA"0BZ_____U6)Y8M-#(7`=`,/OQ") -XM$:$,(0D(NO____^%P'0$#[]0`HM%$(D0BT4(BT!(*0$QP%W#C70F`%6)Y8M% -XM"(M5#(M-%(M`$(/Z`8M`)'0Y6#[!BA$"$)",=$)`B`````QT0D!`$```#' -XM!"2,B@@(B40D#.AI^___R<.-=@!5B>6#[!B+10B)7?2)=?B)??R+0!"+4"2) -XM5?"+<%R+11"%P'0;BYH0`@``]L,$=46+7?0QP(MU^(M]_(GL7<.0BTWPBX$0 -XM`@``J`)TXX/@_8F!$`(``(ET)`3'!"0UBP@(Z,[Y__^A!"$)"(D$).CA]___ -XMZ[NX!0```+\OBP@(_(G!\Z9UJHM%\(/+`HF8$`(``(M5#(E4)`3KOY"-="8` -XM53'2B>6#[`B+10B+0!"+0"2+B*0!``"%R74@*A -XM'"$)"(D4),=$)`@`````@^@!B40D!.@(^?__H0PA"0B)!"3H6_;__Z$,(0D( -XMQT0D!`````")!"3H)O?__\=$)`@`````QT0D!`````")-"3H*O[__^BY]/__ -XMC8,$`0``B40D",=$)`01````QP0D`````.A+^?__QT0D!!(```#'!"0````` -XMZ-?S__^+@Z0!``"%P'0Y@Z,0`@``YS'2BUWTB="+=?B+??R)[%W#D(U%Q(E$ -XM)`C'1"0$$0```,<$)`````#H^?C__S'2Z]&0QT0D"`$```"+1B"+0`B)-"2) -XM1"0$Z);]__^A#"$)",=$)`0!````B00DZ&7V__^+1<")?"0(B40D!*$,(0D( -XMB00DZ`WX___'1"0$`0```(DT).CY_?__C47PB40D$,=$)`P`````QT0D"``` -XM``#'1"0$`0```(DT).AB(0``N@$```"%P`^%1?___XM=\(7;#X1R_O__BT80 -XM,-*+0"2!B!`"`````0``Z2/___^-=@"-1<2)1"0$QP0D`````.AA\O__C8,$ -XM`0``B40D",=$)`01````QP0D`````.@3^/__Z0'^__^-=@"-O"<`````58GE -XM@^PHB5WTBUT(B77XBW40B7W\BWT,B70D"(GX`T-(B40D!*$,(0D(B00DZ#+W -XM__\QTH/``70/BUWTB="+=?B+??R)[%W#BT-(B70D$(E\)`S'1"0($(L("(E$ -XM)!3'1"0$`P```(D<).@1H@``N@$```#KPXUV`(V\)P````!5B>6#[`BA#"$) -XM",=$)`0!````B00DZ!GU___)@\`!#Y3`#[;`PXUV`(V\)P````!5B>6#["B+ -XM50B)7?2)=?B)??SV@JP$```0BT(0#X64````@\`(.0(/A,,```"+#0PA"0B_ -XM_____[[_____A0(/OS&+0D"+6DB+4C0YT`^#B`````'8QT0D"``` -XM``")1"0$B0PDZ$7V__^#P`%T+:$,(0D(QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!/____^)!"3HT_C__Z$,(0D(B7PD"(ET)`2)!"3H_O7__Z$,(0D( -XMQT0D!/____^)!"3H.?3__XM=](MU^(M]_(/``0^4P(GL70^VP,.-0O_I`" -XM`T(0BT`XA<`/E<"$P'7___S'`R<.)]HV\)P````!5B>6#[`B+10B+0!"+0"0%!`$``(D$).A8 -XM]/__/98```!T378Q/2P!``"-M@````!T/G9,/5@"``"-M"8`````="X]L`0` -XM`'4^BT4,QP"P!```,<#)PX/X2W05=C>#^&YT#CV&````=1Z-M"8`````BT4, -XMQP!8`@``,<#)PXUV`#W(````=.F+10S'`(`E```QP,G#@_@R=>[KU9"-="8` -XM58GE4X/L%(M-"(M5#(M!$(72BU@D=5F+51"%T@^%S@```(N##`(``(7`#X20 -XM````BX.@`0``QX,,`@```````(7`#X0[`0``QT0D"(#*!`C'1"0$`0```(D$ -XM).AD\O__H00A"0B)!"3HI_'__^M1D(/J`70+Z+KP__^-M@````#V@:P$```1 -XM=$R+DY@!``"X`0```(72=%*+11"%P`^$E````,=$)`B`R@0(QT0D!`$```") -XM%"3H"?+__Y"-="8`H00A"0B)!"3H1_'__X/$%#'`6UW#BT40A?KB(GV58GE4X/L -XM%(M%"(M5#(M`$(72BU@D=#"#Z@%T!>BC[O__BX.0`0``A<`/A'(!``#'1"0( -XM@,H$",=$)`0!````B00DZ`WP__^+@X@!``"%P'1GH:`4"0B%P'5'BQ4$(0D( -XMBT((@^@!A<")0@@/B%\!``"+`L8`#8/``8D"QT0D"(#*!`C'1"0$`0```(N# -XMB`$``(D$).B[[___@\04,6+0"2# -XMB!`"```@QX"D`0```0```%W#B?:A?"$)"%6)Y8M`)(.($`(``$!=PXVV```` -XM`(V_`````*%\(0D(58GEBT`D@8@0`@``@````,>`I`$```\```!=P^L-D)"0 -XMD)"0D)"0D)"0D*%\(0D(58GEBT`D@8@0`@````$``%W#B?:-O"<`````58GE -XM4XG3@^P4B40D"*$0(0D(QT0D!$F+"`B)!"3H4NG__X7;=!FA$"$)"(E<)`C' -XM1"0$28L("(D$).@UZ?__Z-#M__^+`(D$).@FZ___QT0D!'WI"`B)1"0(H1`A -XM"0B)!"3H#>G__\<$)`$```#H\>___XVV`````(V\)P````!5B>6#[#B)7?2- -XM7=R)=?B)UHE]_(G'C47DB4W[__XM=](MU^(M]_(GL7<.0C;0F`````%6)Y8/L&(EU^(MU#(E]_(M]"(E= -XM](7VBU\D='8QTKG@L00(N`$```#H@____X7`="?'1"0(38L(",=$)`0%```` -XMB30DZ/>8```QP(M=](MU^(M]_(GL7<,QTKD`L@0(L`+H2O___X7`=<"Q!`BP`>CH_O__ -XMAC__X7` -XM==6-D\`!``"Y`+($"+`"Z*?^__^%P'6_QT0D!`\```#'!"1L(0D(Z+/H__^% -XMP'6GC9/8`0``N2"R!`BP#^AY_O__A575E-1@^PXBP&+202)1=2A)"$)"(E-T(/``:,D -XM(0D(@^@!#X5F`P``BT70BQC'1"0$+P```(D<).AJZO__AB35\(0D(QT0D!!0"``#'!"0! -XM````Z"GL__^%P(G'#X3J`@``B7XDQP0D`````.BP[?__A<`/A7@!``"#CE0( -XM```0]H<1`@```@^$>P$``(V'!`$``(E$)`3'!"0`````Z)[F__^#P`$/A*&8`@``&"L!`C'AF0(``#@JP0(QX9H -XM"````````,>&;`@``,"K!`C'AG`(``#@I00(QX9T"```L*H$",>&>`@``)"Y -XM!`C'AGP(``!PKP0(QX:`"```L-`$",>&B`@``("J!`C'AH0(```@I@0(QX:0 -XM"````*H$",>&E`@```````#'AHP(``#0S@0(QX:8"```8*<$",>&G`@``,"F -XM!`C'AJ`(``!`PP0(QX:D"```P*<$",>&J`@``)"F!`C'!"1MBP@(Z`?F__^% -XMP(E%W`^$G0$``(U%Y(L>B40D"(M%W,=$)`0!````B00DZ-#K__^+1>2#^/\/ -XMA%`!``"%P`^%J````(M%W(E<)`C'1"0$E(L("(E$)`RA$"$)"(D$).@,Y?__ -XMQP0D`0```.CPZ___@8\0`@````(``/:'$0(```(/A87^___'1"0(`````,=$ -XM)`0`````QP0D6HL(".@MZ___@_C_B<,/A'W^__^-AP0!``")1"0$B1PDZ`#E -XM__^#P`%T#8D<).C3Z?__Z5G^__^+!KICBP@(Z![[___'!"0!````Z';K__^) -XM]HM%W(D$).B9Y?__A<")1ER)1F`/A-0```"-1>B)1"0,C47LQT0D$`````") -XM1"0(QT0D!`````#'!"0`````Z$T3``"%P'5+BT7LQT0D#`````#'1"0(```` -XM`,=$)`0`````B49(B49$BT7HB48\B48XH00A"0B)!"3H]N/__\=$)`0````` -XMB30DZ%+[__^%P'1NQP0D`0```.C6ZO__B?:A$"$)"(E<)`C'1"0$=(L("(D$ -XM).C+X___QP0D`0```.BOZO__QT7____Z-3E__^+1=")-"2)1"0(BT74 -XMB40D!.C*=P``BUXDQT0D!`````#'!"0!````B478C8.H`0``B40D".CJZ/__ -XMC8/``0``B40D",=$)`0`````QP0D`@```.C,Z/__C8/8`0``@]H<0`@```G5=BX>D`0``A?__Z$$(0D(B00DZ(CE___K@9"058GE5U93@>PL!0``BU4(BTT4BT(0BT`D -XMB87P^O__N---8A#W;12+113!^@;!^!\IPFG"Z`,``(F5Z/K__RG!:<'H`P`` -XM]D40`8F%[/K__P^%C@4``(N5\/K__XN"$`(``*A`#X5:!0``J:`!``!T&:@@ -XM#X6,!0``A,`/B)4%``#VQ`$/A5\"``"+310QTH7)=!6+E>CZ__^+C>SZ__^) -XM5>"-5>")3>2+10B+0!")A?SZ__^+2"2X(````(F-`/O___:!$0(```(/A'`! -XM``")]L>$A03___\`````@^@!=?"%TG1'@XT(____`8E4)!"-E0C____'1"0, -XM`````,=$)`@`````B50D!,<$)`$```#H#^+__X/X_P^$4P$``(7`NP0````/ -XMA#\!``#V11`PD`^%GP,``,>%^/K__P````"+C?SZ__^X(````(N5_/K__X/! -XM"(F-Y/K___:"5`@``"`/A.X"``"%P`^%O````(N-_/K__[`!@XT(____`8MQ -XM"#NUY/K__W1(,?^0C70F`(M%"/:`KP0```%T*(N8@````+@!````BTL$B+-CNUY/K__W7"C4%^/K__P````#H=.3__[L#````@S@$=!W'1"0( -XM=+P("+,"QT0D!`4```"+10B)!"3H29```(N%^/K__X7`#X6``0``@_L$=K#H -XMY>'__XN%]/K__XN-\/K__XM5#(E"%#'`B4H0QT(("0```('$+`4``%M>7UW# -XMBY7P^O__@.3^C4WHB8(0`@``C47LB40D#(U%\(E,)!")1"0(QT0D!`$```"+ -XM50B)%"3H00X``(7`#X7_`@``BUWHA=L/A%?]__^-18B+=>R)A0C___^-1;2) -XMA0S___^+1?"-G0C[__^)78C'1;0`````QT6\`````,=%D`````")1"0,QT0D -XM"+.+"`C'1"0$``0``(D<).@0Y/__B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,IV8E-D(V-"/___\=$)`@`````B4PD!(M% -XM"(D$).CNI```A<`/A%8"``"+10S'0`@+````,<#I\O[__Y"-="8`BU4,,<#' -XM0@@#````@<0L!0``6UY?7<.+10S'0`@"````@<0L!0``,7UW#C46TB40D",=$)`01````QP0D`````.@DY/__ -XMZ6#^___'1"0(_P```(N%\/K__\<$)`````")1"0$Z('F__^#^/^)P@^$_?W_ -XM_X7`#X2B````BTT(]H&L!````70FBX7P^O__@'P"_PIT&8N-`/O__P^V@10! -XM``"+C?#Z__^(!!&#P@&+A0#[__\QV\>```$```````")E?3Z___ITOW__XU% -XMM(E$)`3'!"0`````Z+S=__^%P`^%1OS___9%$!!U=8N%`/O__P5<`0``B40D -XM",=$)`01````QP0D`````.A;X___QX7X^O__`0```.D8_/__BY4`^___NP$` -XM``"+@@`!``"#P`&#^#&)@@`!```/CUS]__\/MH(4`0``,-N+C?#Z__^(`<>% -XM]/K__P$```#I//W__XM%M(E%B(M%N(%EB/_Y__^)18R+1;R)19"+1<")192+ -XM1<2!991_____B468BT7(B46*`@("`=.GWPH"```!U -XM!L'J$(/!`@#2@]D#*=F-E0C___^)39#'1"0(`````(E4)`2+30B)#"3H)J(` -XM`.D[_?__D%6)Y8/L&(M%#(E=^(EU_(D$).A=X/__A<")PW01@_C_=`R)!"3H -XMZN/__X7`=1(QP(M=^(MU_(GL7<.-M@````"-<`&)-"3H>>+__XM5$(7`B0)T -XM'(ET)`B)7"0$B00DZ-#A__^+7?@QP(MU_(GL7C;0F`````(V\)P````!5B>53B<.#[`2+@(@! -XM``"%P'02B00DZ*GB___'@X@!````````BX.,`0``A+__\>#D`$```````"+@Y0!``"%P'02 -XMB00DZ%7B___'@Y0!````````BX.8`0``A6#[!B)=?B+=0B)??PQ_XE=](M>)/:#$`(``!AU$(GXBUWT -XMBW7XBWW\B>Q=PY")-"3HR`X``(7`#Y7`#[;XBX,0`@``)1`"```]$`(``'0Y -XMBX,0`@``)0@"```]"`(``'0YC8,$`0``B40D",=$)`01````QP0D`````.AB -XMW___@Z,0`@``Y^N5B?#HOO[__X7`=+R_`0```.NUBT8DZ`O^___KO8GVC;PG -XM`````%6)Y8/L2(72B77\B<:)7?AT'L=$)`@!````B50D!(D$).CNWO__BUWX -XMBW7\B>Q=PXU=T(E,)`R)'"3'1"0(^I8(",=$)`0H````Z`7>__^)7"0$B30D -XMQT0D"`$```#HL=[__XM=^(MU_(GL7<.-=@!5B>575E.#["R+=0B+7A"+0R2) -XM1>2`NU0(````#XB^`0``#[95#(/B`8G7#X0_`0``BX:L!```J`0/A5$!``#V -XM10P"=`BH"`^%0P$``*@$D'0)@^#[B8:L!```J`AT:X/@]XF&K`0``(U#"#D& -XM="S'1"0(`````(M&2`-&-(E$)`2A#"$)"(D$).B6W?__H0PA"0B)!"3HN=O_ -XM_\=$)`@`````BT8T`T9(@^@!B40D!*$,(0D(B00DZ&?=__^A#"$)"(D$).BZ -XMVO__B?B$P`^$S````(M&$(M8)(N#$`(``*@(#X75!```]L0"#X4Q`P``BU7D -XM@XH0`@``"?:&K`0```$/A(@```"+1>2+D(P!``"%TG1[]H8@`@```0^$`@4` -XM`(N&&`(``(T$0,'@`@-&$(M`.(/H`8D4)(E$)`C'1"0$`````.@YV/__QT0D -XM"(#*!`C'1"0$`0```(D$).@AV___@\0L,)-"3'1"0('(P(",=$)`0#````Z&^'``"#Q"RX -XM`0```%M>7UW#B?:)'"3H^/S__X7`#X7``P``@:-4"```?____^DC_O__D,<$ -XM)`$```#HR-W__X7`=*G'1"0(`````,=$)`0_````B30DZ!B0``"%P`^%@`,` -XM`/:&]`,```$/A"P$``"+ANP#``"-!$#!X`(#1A"+6#C'!"1MBP@(Z.G6__\Q -XMR8G:B47HN&V+"`CH)/W__\<$)/2+"`CHS-;__XE%[/:&(`(```$/A/<#``"+ -XMAA@"``"-!$#!X`(#1A"+2#@QTKCTBP@(Z.K\___'!"3ZBP@(Z)+6__^)1?#V -XMAF`!```!#X2R`P``BX98`0``C01`P>`"`T80BT@X,=*X^HL(".BP_/__Z%_: -XM___'``````"A`"$)"(D<)(E$)`BA!"$)"(E$)`3H']?__X7`#X2:`P``BTWH -XMAR%T@^$UP,``(M%\(7`#X2[`P``B70D!(M&$(V?7`$``(D$ -XM).B][/__Z,S9___HM]C__XUV`.B_VO__H0PA"0C'1"0$`0```(D$).CZU___ -XMH0PA"0C'1"0$`0```(D$).CEV/__QX<,`@```0```,=$)`0`````QP0D$@`` -XM`.CWVO__B5PD!,<$)`````#H1]7__X7`#X75`@``BX<$`0``]L0"=`J!CUP! -XM`````@``]L0$=`J!CUP!````!```@8]H`0``@````,:'=P$``/_&AW4!``#_ -XMQH=V`0``_\:'>P$``/_&AWH!``#_QH=^`0``_XDT).@+"@``A<`/A?4!``#I -XMK@$``(V#C`$``(E$)`C'1"0$18L("(DT).BT^/__C8.8`0``B40D",=$)`3@ -XMBP@(B30DZ)KX__^-@Y0!``")1"0(QT0D!.6+"`B)-"3H@/C__XV#B`$``(E$ -XM)`C'1"0$N8P("(DT).AF^/__C8.0`0``B40D",=$)`27C0@(B30DZ$SX__^+ -XM@Y@!``"%P`^$D@$``(N3E`$``(72#X1R`0``BX,$`0``BY,(`0``B8,P`0`` -XMBX,,`0``@\H#@8LP`0````$``(F#.`$``(N#$`$``(F3-`$``(F#/`$``(N# -XM%`$``(&+/`$``,\%``")@T`!``"+@Q@!``")@T0!``"+@QP!``")@T@!``"+ -XM@R`!``")@TP!``"+@R0!``")@U`!``"+@R@!``")@U0!``"+@RP!``")@U@! -XM``"!PS`!``")7"0(QT0D!!$```#'!"0`````Z$O9__^%P`^$7UW#@\0L -XMN`$```!;7E]=PX'#,`$``.NTO__Z1C\__^)7"0,QT0D"`*,"`C'1"0$ -XM`P```(DT).@9@@``N`$```#I8?K__Y"0D)"0D)"0D)"0D)"0D%6)Y8/L"*&@ -XM%`D(BU4(A"N+`8@0@\`!#[;2B0')B=## -XMH00A"0B)%"2)1"0$Z![2___)B<*)T,.-="8`.T$8?`6`^@IURXD4)(E,)`3H -XMOM?__XG"Z\>-M@````!5B>575E.#["R+=1B%]G0&QP8!````C47LB40D",=$ -XM)`1H=`A`QP0D`@```.BSTO__@\`!#X2&`0``#[=][`^W1>Z%_P^4PX7`B47< -XM#Y1%XXM%#(7`=!R$VP^$Y````(7V=`;'!@````"#Q"PQP%M>7UW#A-L/A+D` -XM``#'!"1MBP@(Z`W1__^%P'05A-L/A8P!``"`?>,`#X51`0``C78`A?]U!&:_ -XM&`"+7=R%VW4'QT7<4````,<$)/2+"`CHTM#__X7`=!K'1"0("@```,=$)`0` -XM````B00DZ*;4__^)Q\<$)/J+"`CHJ-#__X7`=!O'1"0("@```,=$)`0````` -XMB00DZ'S4__^)1=R+31"%R70%BU40B3J+512%T@^$1____XM%%(M5W(D0@\0L -XM,,!Z7G^__^+@A@"``"-!$#! -XMX`(#0A"+0#CI>____\<$)&R,"`CHRM;__X7`>#B)1=SIFO[__XG"BX!8`0`` -XMC01`P>`"`T(0BT`XZ6?____'!"1'@QP(/$<%M>7<.-M"8`````#[=%H(D<)"7O_P`` -XMB40D!.@_U?__A -XM7<.%]G0FB5PD#,=$)`BXC0@(QT0D!`4```")-"3H^'T``+@!````Z6#___^# -XMQ'"X`0```%M>7<.)]H7V=.Z)7"0,B30DQT0D")^M"`C'1"0$!0```.C`?0`` -XM@\1PN`$```!;7EW#C70F`%6)Y5.#[!2+70B+50R+0Q"#^AZ+2"1T>WX6@_H_ -XM="&#^DIT-8/$%#'`6UW#C70F`(/Z"'0+@_H8=>J-M@````"!B%0(``"````` -XM,<"#HZP$``#S@\046UW#BT44BP"%P'56@XD0`@``!(M#((7`=+2+0`B%P'2M -XMB1PDQT0D"`$```")1"0$Z&77__^#Q!0QP%M=PXM%%(L0B1PDB4PD!(72#Y3` -XM#[;`B40D".CP_?__@\04,Q=Z9_^__^+7?0QP(MU^(M]_(GL7<-5B>53@^P$BT4(BX!$`0``A@`````B?:+5>B+@B"."`B)!"3H$\__ -XM_X7`B<B+@CB."`B#PA")5>B%P`^%3?___XL=2(\("(7;#X3+````QT7D -XM`````(MUY(N&0(\("(D$).A+SO__A<")1?`/A)$```"#P`$/A(@````/MH9, -XMCP@(OR`0"0@Y!2`0"0AT"X/'"#D'=?F%_W1IBT7DBU7PBX!(CP@(B470B10D -XMZ*'1__^+==")-"2)P^B4T?__C5<$QT0D(`8```#'1"0<`@```,=$)!@!```` -XMB50D%(E<)!"+5?")1"0(B70D!(E4)`R+=0B)-"3HX\\``(7`#X5E`0``BU7D -XMBX)8CP@(@\(0B57DA<`/A3S___^+#6B/"`B%R0^$30$``,=%X`````#ID0`` -XM`(M5X(MU[(N2:(\("(E5U(DT).@'T?__B478BT7$B00DZ/G0__^+5=2)%"2) -XMP^CLT/__QT0D(`8```#'1"0<`@```(MUV(ET)!B+5>R)7"00B50D%(MUQ(E$ -XM)`B)="0,BT74B40D!(M5"(D4).@YSP``A<`/A;L```"0BW7@BX9XCP@(@\80 -XMB77@A<`/A+````"+=>"+AF"/"`B)!"3HW,S__X7`B47$=-&#^/]TS/R_C8P( -XM"+D"````B<;SIG2[BT7@BX!DCP@(A<")1>P/A2W___^+=<2+5>")-"2+NFB/ -XM"`CH-]#__XD\)(G#Z"W0___'1"0@!@```,=$)!P"````QT0D&`````#'1"04 -XM`````(E<)!")="0,B40D"(E\)`2+10B)!"3H?LX``(7`#X1&____@\1____XL3A=)T!HM#!(E"!(M#!(D0B1PDZ`;.__^+GD`!``"%VW7-C88L -XM`0``.88L`0``=`Z)10B#Q!!;7EWI//___X/$$%M>7<.0C70F`%6)Y5.#[`2+ -XM0!"+D$`!``"%TG1*,=L/MD(0@^@Q/`AW#P^VP/\DA;"/"`B)TXUV`(L2A=)U -XMX(7;="2+$X72=`:+0P2)0@2+0P2)$(U#"(D$).C:_O__B1PDZ';-__^#Q`1; -XM7QD(0->N8QD(0-(UT)@#KCHVT)@````"-O"<`````58GE@^P8QT0D!#P` -XM``")7?2)=?B+=12)??S'!"0!````Z-[*__^%P(G##X2#````A?:)QXEP#'47 -XMBT40B4,0B?B+7?2+=?B+??R)[%W#B?:)-"3H+,S__X7`B4,(=":+30R%R733 -XMBU40A=)TS(M5$(D$)(E4)`B+50R)5"0$Z#',___KM(M5",=$)`@`````QT0D -XM!`4```")%"3H<'4``(M#"(7`=;B)'"0Q_^ASS/__ZXR+10@Q_\=$)`@````` -XMQT0D!`4```")!"3H0'4``.EJ____C70F`(V\)P````!5B>564X/L,(M="(U% -XM](MU&(E$)!"-1?")1"0,QT0D"`$```"+10R)'"2)1"0$Z*U```"%P'0,@\0P -XMN`$```!;7EW#BT7TB1PDQT0D"`````#'1"0$`````(E$)`SHOO[__X7`B<-T -XMSXM%](7`="R+512%TG1,BU7PBT,(`540BU44B50D"(M5$(D$)(E4)`3H/\O_ -XM_XM%%(E#$(U6"(D3BT8,B4,$.U8(=!^+1@R)&(E>#(M#$`%&%(/$,%LQP%Y= -XMPRM%$(E%%.NLB5X(Z^&058GE5U93@^PLBT4,BWT(A<`/A,X"```/M@#V11@$ -XMB$7K#X4-`0``]D48`@^%^0```,=%[``````/ME7K,N+1Q"+L$`!``"%]G4/Z9`"``"+-H7V#X2&`@``.E80=?&% -XM]@^$>0(``(7)B?8/A(X!``#V11@!#X2'````@$X8`8M5$(M-%(L:.QEV$^D@ -XM`0``BT44@\,!.1@/@A(!``")="00QT0D#`````#'1"0(`````(E<)`2)/"3H -XM+?[__X7`=,Z-1@B)!"3HOOO__[@!````QT84`````,9&&`"#Q"Q;7E]=P_9% -XM&`$/A(X!``")^.AE_/__QT7L`0```.GQ_O__BTT0,<"+$8M-%#L1#X0E`0`` -XMBTT0B70D$(E$)`R+002)5"0$B3PDB40D".BY_?__ALQQT7L`````,=% -XM\`````#I0?W__\=$)`0<````QP0D`0```.@;QO__A<`/A)````")Q@^V1>N( -XM1A"-1@B)1@B)1@R+5Q"+@D`!``"%P(D&=`R+@D`!``")<`2+5Q")LD`!``"+ -XM1Q`%0`$``(E&!.DR_?__,<"#?>P`#Y3`B47P#[:4DS0$``"(5>L/MM+IP_S_ -XM_XM5$(M-%(L".P$/A4W___^+=Q`QR<=%[`````#'1?``````@<8D`0``Z=/\ -XM___'1"0(`````,=$)`0%````B3PDZ'=P``"X`0```.DO_?__D)"0D)"0D)"0 -XMD)"0D%6)Y5=64X/L/(M=%(MU"(M]#(7;#X2D````BT40BPB)3?")RCD/=FOI -XMA0```(UV`(-&9`&Z'X7K48M-\(G(]^+!Z@5KTF0YT74_BT80]H!4"```!'5< -XMQT0D#`$```#'1"0(`````,=$)`0`````B30DZ!HT``"%P'4,BT80]H!4"``` -XM!'4LBTWPC5'_B57P.1=W'XE4)`2)-"3H040``(7`=(V[`0```(/$/(G86UY? -XM7<,QVX/$/(G86UY?7<.-1?")1"0$B30DZ(,]``"%P'72BTT0BQ$[5?`/@M4` -XM``"0#X23````B57P.Q=W=XUV`.DF`P``@T9D`;H?A>M1BTWPB+1A#V@%0(```$#X7\`@``QT0D#`$```#'1"0(`````,=$)`0````` -XMB30DZ%$S``"%P'40BT80]H!4"```!`^%R`(``(M-\(U1_XE5\#D7#X.W`@`` -XMB50D!(DT).AP0P``ADJ____C47HC5WDB40D$(E<)`S'1"0(`0```(E4 -XM)`2)-"3H=3H``(7`#X4`____BU40BT($.T7H#X-%!0``BQ*+!SG0#X22`P`` -XMBU\$QT7@`````(7;B5W<#X20````C57DQT0D$`````")5"0,QT0D"`$```") -XM1"0$B30DZ!HZ``"%P`^%I?[__X7V#X3^`@``BUX0A=L/A/,"``#V@U4(```! -XM#X7F`@``BT7"+0WB)1>R!BU0(`````0`` -XMBUW")!"3HIL3__XM-$(L1C47HC5WDB40D$(E<)`S' -XM1"0(`0```(E4)`2)-"3HBSD``(7`#X57`0``BU7HA=(/A)@```"+11"+0`2) -XM1=2-0O\Y1=0/A(,```"+3=R-1!'_*T74.<$/AQ8$``"+3=R%R0^%MP,``(7V -XM=!2+7A"%VW0-]H-5"````0^$*00``(7`QT7L`````,=%X``````/A08%``"+ -XM1>2+7>`K5=0#7=R#P`$#1=2#Z@&)5"0(B1PDB40D!.CGP___BU40BT7H`47< -XM@VW<`8M2!"E5W(M-W(E,)`R+7>")7"0(BP>)-"2)1"0$Z'0]``"%P`^%D``` -XM`(M5$(L"B47P.0=R=.E5`0``@T9D`;H?A>M1BTWPB+ -XM1A#V@%0(```$#X4K`0``QT0D#`$```#'1"0(`````,=$)`0`````B30DZ.$P -XM``"%P'40BT80]H!4"```!`^%]P```(M-\(U!_XE%\#D'#X/F````B40D!(DT -XM).@`00``AP___Z8W\__^-1>B)1"00C47DB40D#,=$)`@!````BP>) -XM-"2)1"0$Z-$W``"%P`^%7/S__X7V=':+7A"%VW1O]H-5"````75FBT<$.T-X -XM#X?4`@``BU-TB57@BT-XB47L@8M4"`````$``(M'!(E$)`B+1>2)1"0$BTW@ -XMB0PDZ&["__^+1P2)1"0,BUW@B5PD"(L'B30DB40D!.@./```A<`/A>G[__\Q -XMV^DH____QT7L`````(M'!,=%X`````"%P'2JB40D#(U%[(E$)`C'1"0$```` -XM`(DT).@/X```A<`/A*K[__^)1>"+1P3I?/___XM%W,=%[`````#'1>`````` -XM!0`!```/A"7]__^)1"0,C47LB40D",=$)`0`````B30DZ,7?``"%P(E%X`^% -XM__S__^E8^___D(UT)@"-1>B)1"00C47DB40D#,=$)`@!````B50D!(DT).B> -XM-@``A<`/A2G[__^%]@^$NP```(M>$(7;#X2P````]H-5"````0^%HP```(M% -XMZ#E#>`^"+@(``(M3=(E5X(M#>(E%[(&+5`@````!``"+1P2%P`^%G@$``(M= -XM$(M%Y(M;!(/``8E=V(M5V(M=X`-?!`-%V/?2`U7HB40D!(D<)(E4)`CH#<'_ -XM_XM'!(M5$`-%Z(/H`2M"!(E$)`R+3>")3"0(BP>)-"2)1"0$Z*$Z``"%P`^% -XMO?W__S';Z;O]__^!H%0(``#__O__Z6OZ__^+1>C'1>P`````QT7@`````(7` -XM#X1F____B40D#(U%[(E$)`C'1"0$`````(DT).B/W@``A<")1>`/A4#____I -XM(OK__S';A?9T>HM>$(7;='.+3>`Y2W1T:SM%[`^&6?S__XE$)`R-1>R)1"0( -XMBTW@B30DB4PD!.A'W@``A<`/A.+Y__^+71")1>"+5>B+6P2)7=3I(_S__\=$ -XM)`C4CP@(NP$```#'1"0$`P```(DT).AN:0``Z?+\__^+71"+$^GE^?__@:-4 -XM"```__[__SM#>`^'E@```(M#=(E%X(M#>(E%[(&+5`@````!``"+51"+4@2) -XM5=2+5>CIO?O__XE$)`R-0WB)1"0(BT-TB30DB40D!.BKW0``A<`/A$;Y__^) -XM0W3I`OW__XE$)`B+1>2)1"0$BTW@B0PDZ(F____I1_[__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AFW0``A<`/A`'Y__^)0W3IA?K__XE$)`R-0WB)1"0(BT-T -XMB30DB40D!.@\W0``A<`/A-?X__^)0W3I0/___XE$)`R-0WB)1"0(BT-TB30D -XMB40D!.@2W0``A<`/A*WX__^)0W3IJ/W__XE$)`R-1>R)1"0(QT0D!`````") -XM-"3HY]P``(7`#X6@_O__Z7WX__^0D)"0D)"0D)"058GE@^P8BU4(]H)$`@`` -XM`70DBX(\`@``C01`P>`"`T(0BU`XA=*Z`0````^4P(3`=!C)B=##BX(\`@`` -XMN@$```"%P`^4P(3`=>CHY;O__\<``````,=$)`0&````BT44B00DZ+RY__^% -XMP'4DQT0D"`$```#'1"0$`@```(M%%(D$).C]M___N@$```#)B=##Z)^[__^# -XM."-T%HVV`````.B/N___,=*#."-UAHUT)@#)N@(```")T,.-M"8`````58GE -XM@^P8B5WXBUT(B77\BW4,BX.D````AQ=PXD<),=$ -XM)`@`````QT0D!`4```#H`&<``(M=^(MU_(GL7<.-M@````!5B>6#[!B+30B+ -XM41R%TG0.BT$@]D`80'0%@SH!?@3),<##BT4,ABX48VO__A%#-K__P````"%P`^$/@$``(M%&(/@`H/X`1G2@>+X`P``@<()`@`` -XMB84(VO__B94`"`T(0BW`XZ*6X___'```` -XM``#'1"0(`````,=$)`0`````BY5`VO__B10DZ$&Z__^%P(F%*-K__P^(L@4` -XM`(V=C/[__S'_B5PD!(M%"(D$).A8)P$`QT0D&`````#'1"04`````,=$)!`` -XM````QT0D#`````#'1"0(`````,=$)`0`````B1PDZ!`R`@"`/DX/A`<%``") -XM-"3HT[O__XET)`B)7"0$B40D#(M5"(D4).B(-0$`A<`/A*`#``"`O0;:__\` -XM#X2&`0``N`$```"!Q!PF``!;7E]=PXUV`("]!]K__P`/A#,#``"%VP^%*P,` -XM`(N5$-K___9"6`$/A?0&``"+E1#:__^+19`[0D0/A`D#``#V11@0N"R1"`AU -XM!;ATD0@(B40D#(N%0-K__\=$)`0#````B40D"(M5"(D4).AX:```N`$```#I -XM@/___XM5"/:"^`(```$/A#X#``"+@O`"``"-!$#!X`(#0A"+6#B%VP^5P(3` -XM#X1:_?__]D48$+ATD`@(=06XJ)`("(E$)`C'1"0$`P```(M5"(D4).@(8P`` -XM@<0<)@``N`$```!;7E]=PXM5&(F=0-K__\>%&-K__P````#&A0?:__\`@^($ -XMB94`VO__#Y2%!MK__^D%_?__B<*+@*`$``"-!$#!X`(#0A"+4#B%T@^4P.D1 -XM_?__BX4DVO__B00DZ#&W__^%P`^%D@D``(N%.-K__X7`="Z+10B%P'09BU4( -XMBT(0A#91@#@WT8`0^$E@4``(U%Z(E$)`B+A4#:__^)1"0$ -XMBU4(B10DZ.A4``"+G0S:__^%VXF%(-K__P^%+00``,=$)`@`````QT0D!$R2 -XM"`B+10B-O4SZ__^)!"3H,U<``(M5[(E4)!2+5?")5"00BY4@VO__B40D",=$ -XM)`1`!```B3PDB50D#.BKM?__B?F)PXM%"(MP.#GS#X-5!@``B4PD#,=$)`B? -XMK0@(QT0D!`0```"+10B)!"3HUF```(M5Z#'`A=(/A.O\__^+10B%P'09BU4( -XMBT(0AWZ__^-E7#___^) -XM5"0$BX5`VO__B00DZ%"R__^%P`^%F`0``(N5$-K__X!*6`&+A7#___^)0CR+ -XMA73___^)0D"+19")0D3I&/W__^B\LO__@S@"#X12_/__B[5`VO__QX4PVO__ -XM`````,>%.-K__P````#'A23:________@[THVO___W0.BY4HVO__B10DZ`BS -XM__^#O23:____=!R+A3#:__^)!"3HL;#__XN5)-K__XD4).CCLO__A?9T'\=$ -XM)`R?K0@(B70D",=$)`0%````BT4(B00DZ#QC``"+O3C:__^%_P^$+OK__XMU -XM"(7V=!F+50B+0A"%P'0/BY4XVO__.5!T#X0&!0``BX4XVO__B00DZ`2U___I -XM^_G__X7_#X13`0``BT4(A<`/A*(#``"+10B+6!"%VP^$E`,``/:#50@```$/ -XMA8<#``"+A0#___^+`(M`"(U$`#([0W@/A[\%``"+4W2)E3C:__^+0WB)1>2! -XMBU0(`````0``BX4`____BXTXVO__BQ"#P0&+`@^V$(32#X3Y!```BYTXVO__ -XMC4@!QX4TVO__`````.L@@/HO#X17`0``#[9!_X@##[81@\,!@\$!A-(/A,@! -XM``"`^B5UVX`Y)73?Q@,E@\,!Z]>#O0S:__\!=$+HS:[__XU=T,=%V`$```#' -XM1=P`````B5PD!(M5"(D4).CI*@``A<`/A0[Y__^-1=C'1=0`````B44,B5T0 -XMZ>OZ__^+C0C:__^X>)(("(7)=06XI)((",=$)`@`````B40D!.ES^___BX5P -XM____.T(\#X4/^?__BX5T____.T)`#X4`^?__Z>GX__^-="8`BX4`____BP"+ -XM`,>%.-K__P````")A3#:__^-A1#___^)1"0$BY4PVO__B10DZ,*O__^Z`0H` -XM`(7`#X7/`@``#[>%&/___R4`\```/0"````/A'0#``#'1"0,190("(ET)`@Q -XM]L=$)`0#````BT4(B00DZ"EA``#'A23:________Z7_]__^!H%0(``#__O__ -XM,<#I&_C__XF=--K__^F>_O__BY40VO__@&)8^XN5%-K__P^W0AB$P`^)3OK_ -XM_X"]!]K__P`/A#X#``"#R$!FB4(8Z37Z___HN*___X,X#9!U#HN=`-K__X7; -XM#X5]`P``QT0D#)^M"`B+A4#:___'1"0$!0```(E$)`B+50B)%"3HBV```+@! -XM````Z9/W___&`R7&0P%DQD,"`(N%--K__X7`#X3U`@``BY4TVO__Q@(`BX4X -XMVO__B00DZ,6N__^+E33:___&`B^#P@&)E3S:__^)QX7_#X0\`@``QX4LVO__ -XM`````(D\).@'LO__A<`/A$0!``"-5>"#P`B)5"0(BY4\VO__B00DB50D!.B# -XMKO__@^@!=<^+1>`YA2S:__]]Q(F%+-K__^N\QT0D#)^M"`B+E4#:___'1"0$ -XM!0```(E4)`B+10B)!"3HPE\``(D<).@^K___N`$```#IPO;__XN5(-K__XD4 -XM).A6LO__C4[]C10'B?@YUW(0ZQJ-="8`@\`!.<)V#X/K`8`X+XUV`'7N.%.-K__P````"-1``R -XMA<`/A([\__^)1"0,C47DB40D",=$)`0`````BU4(B10DZ(O.``"%P`^$)@(` -XM`(F%.-K__XN%`/___XN-.-K__XL0@\$!Z4S\__^)/"3HL['__XN%+-K__\=$ -XM)`A:W@@(@\`!B40D#(N%.-K__P-%Y(D<)"G8B40D!.@WKO__BX4XVO__B84P -XMVO__Z0S]___'1"0(@`$``(E4)`2+E3#:__^)%"3H+*___X7`B84DVO__#XC/ -XM^O__C95,VO__QT0D"``@``")5"0$BX4HVO__B00DZ#ZQ__^#^`")QP^.EP$` -XM`#';ZP8IQW3-`<.-A4S:__\!V(E\)`B)1"0$BX4DVO__B00DZ*NH__^%P'G8 -XMB[4PVO__Z6WZ__^!H%0(``#__O__Z?GT__^+A0#___^+`(LPQX4PVO__```` -XM`,>%)-K________I._K__XN='/___^C?K___.<-T%)-K________I_/G__XN5%-K__X/@OV:) -XM0ACI\?;__XN%.-K__\8`)8G#Q@%DQD$!`,<$)$'Q"`CHVZO__XG'BX4XVO__ -XMB84\VO__Z1?]__\/MX48____N@$$``"H-@^$KO[__\=$)`S4D0@(Z?'[__^- -XMA1#___^)1"0$BY5`VO__B10DZ&^K__^%P'41#[>U&/___XGPA,`/B8$```#H -XM]:O__\<`#0```.E&_/__B40D#(U#>(E$)`B+0W2)1"0$BT4(B00DZ&G,``"% -XMP'0(B4-TZ1CZ__\Q]L>%,-K__P````#'A3C:__\`````QX4DVO_______^D- -XM^?__?!:+E2C:__^)%"3H'*S__X7`#X35]/__B[5`VO__Z>KX__^+G1S____H -XMCJ[__SG##X5L____9H'.@``/M\:)1"0$BY5`VO__B10DZ!RN__^%P`^%2O__ -XM_\=$)`BV`0``BX4___\G#C;0F`````(N"\`(``(7`#Y7`ZX&-=@!5,G"[O__B?:+@QP! -XM``"-!$#!X`(#0Q"+0#B%P`^5P(3`=____Y"-M"8`````58GE5U93@>R\"``` -XMBU4,#[="&*@@="&#X-]FB4(8B50D!(M-"(D,).BCK@``@<2\"```6UY?7<.+ -XM50R#X`%FB4(8QT0D!%P```#'!"0!````Z!ZF__^%P(F%5/?__P^$UP8``(N% -XM5/?__X!(6`+'0!0`````QT`0`````,=`2/_____'0%3_____BU4,BU((A=*) -XME5SW__\/A!@"``"+C5SW__\/M@$\+P^$)P,``#PN#X0#`P``C95L____B50D -XM!(N-7/?__XD,).@5I/__N@$```"%P`^$Z0```(M%"/:`U`(```$/A-P&``") -XMPHN`S`(``(T$0,'@`@-"$(M0.(UR`>L-A-L/A&,&``")\H/&`0^V7O^`^SIT -XM!(3;=?"-1OXYPG/?QD;_`(N%7/?__XV];/?__XE4)`S'1"0(N90(",=$)`0` -XM!```B40D$(D\).C.I/__C95L____B85@]___B%[_B50D!(D\).ASH___A)UL'_'XG_P?\? -XMB?Z)_L'N%C'_`<81UP^L_@K!_PJ#_@IW#(7V9KL`!`^%E@4``(N%5/?__X!( -XM6`&+A6S___^+E53W__^)0CR+A7#___^)0D"+18R)0D0/MX5T____)0#P```] -XM`(````^$)`(``,=$)`RXDP@(BXU8]___QT0D!`,```")3"0(BT4(B00DZ-]3 -XM``#I^@$``(MU%(/F"(UT)@#'1"0(`````,=$)`0*````BU4(B10DZ*57``"% -XMP`^$%P$``(M5#(M""(7`=!*)!"3HGZ7__XM-#,=!"`````"+50PQVXM"#(7` -XM="")!"3HP:#__XM-#(M!#(D$).ASI?__BT4,QT`,`````(N55/?___9"6$`/ -XMA24$``"+C53W__^+04R%P'05B00DZ$2E__^+A53W___'0$P`````BY54]___ -XMBT($A7UW##[9! -XM`3PO=!0\+@^%[?S__X!Y`B^)]@^%X?S__XV%;/___XE$)`2+A5SW__^)!"3H -XM]J#__S'2A<`/E,+IR_W__XM-"/:!>`$```$/A+`#``"+@7`!``"-!$#!X`(# -XM01"+0#B-G6S[__^)1"0,QT0D"+^4"`C'1"0$``0``(D<).CFH?__B1PDZ.ZB -XM__^#^/\/A-4#``")!"3HO:'__XM%#(M0"(72#X0L!```B1PDZ)>=__^+50R% -XMP(E"#`^$[@,``(M""(7`#X2^`P``BU4,A?:+4@R)E5CW__\/A#P#``"+A53W -XM__^[``0``(/`1(D$).A4G/__BU4(QT7,`````,=%X`````#'1=``````QT78 -XM`````,=%W`````#'1>0`````QD7@"HE=U(M"$(N`5`@``(/@0(/X`1G`]]"# -XMX`2)12+A53W__\QTH!(6`2-1Z``"%P'4,BY54]___BT),B47DBY58]___Z0_] -XM___'1"0(E),(",=$)`0%````BTT(B0PDZ$%)``#IG_K__XD<).BXF?__BTT, -XMA<")00@/A2S\__^+00R%P'0(B00DZ"N@___'1"0(`````,=$)`0%````BT4( -XMB00DZ/Q(``")'"3H2)O__^E2^O__9H%(&(``Z__^%P'5WBU4,9H%*&``!Z1/[__^[`0```(U][(UUZ.L1C;0F```` -XM`(M%[(7`=2:#PP&)?"00B70D#,=$)`@`````B5PD!(M%"(D$).CG$0``AR%P'0(BT7H@#@C=,N+30B)64R[`0```.GK^O__#[9``3PJ -XM=&P\+P^%8?___XM5"(&*K`0````!``"#1>@"@VWL`NL*@T7H`8/H`8E%[(M% -XM[(/X`780BU7H@#HO=>:`>@$O=>#KIX/#`8E\)!")="0,QT0D"`````")7"0$ -XMBT4(B00DZ,L0``"%P'3"Z?W^__^+50B!BJP$`````0``ZPV-=@"#1>@!@^@! -XMB47LBT7L@_@!=A.+5>B`.BIUYH!Z`2]UX.E%____@\,!B7PD$(ET)`S'1"0( -XM`````(E<)`2+10B)!"3H:1```(7`=+_IF_[__U6)Y5:)UE.#[""+6!"-5?") -XM5"0,C57WB50D"(E,)`2)!"3_DX0(``"%P'54BT7PA53BUT(#[9-#/:#X`(```$/A!P!``"+@]@"``"-!$#!X`(# -XM0Q"+0#B%P'0]#[80A-)U$.LT#[90`832C78`="F#P`$XT77NB(N(````N`$` -XM``")@Y````#&A!B(`````(V#B````%M=P_:#C`(```$/A<<```"+@X0"``"% -XMP`^$TP````^V$(32=13IQP````^V4`&$T@^$NP```(/``3C1=>T/MM$[%?P@ -XM"0A]$*$((0D(]D20-0(/A0H!``#V@Z0"```!#X3M````BX.<`@``C01`P>`" -XM`T,0BT`XA<`/E<"$P`^$D0```,'J!@^V@CR6"`C&@X@```!`"`T,0BT`XA<`/A2W___\/MM$[%?P@ -XM"0@/C4#___^A""$)"/9$D#8$#X0P____Z -XM=`.-04"(@XD```"X`@```.E8_O__C70F`%6)Y5.#[`B+70B+10R)'"2)1"0$ -XMZ.?]__^+@Y````"#Q`A;7<.-="8`C;PG`````%6)Y5=6,?93@^P,BT4(BW@0 -XMB7WPBU4(B70D!(D4).BM_?__BU4(B<.+@I````"(AUT!```/ML"-2/^#^?]T -XM)(M%\(T4=HV44%@!``"-="8`#[8#@^D!@\,!B`*#P@&#^?]U[8/&`8/'!H'^ -XM_P```'6C@\0,6UY?7<.-M"8`````58GEBT4(5XM]#%8Q]E.+2!#K#\>!'`$` -XM``````"^`0```(N9&`$``(7;="QKD1P!```53@^P4BUT,BU4(@WL(#'8%Z'R2__^+0PC_)(7H -XME0@(QT0D",N5"`C'1"0$`P```(D4).BF0```C;8`````BT,,A6# -XM["B+10S'1"00@`L%",=$)`P(````QT0D!"`0"0B(1?RAZ!`)"(E$)`B-1?B) -XM!"3H+)3__S'2A`` -XM``"+BQ0!```Y310/A]<```"-="8`BTT4`8L8`0``BY,0`0``A7UW#BY,8`0``A=(/A$?___\K112)@QP!``#I.?___XN[&`$` -XM`(N+%`$``(M5%(U$`AZ-%#@YRG-'A?]U:K@>````QX,<`0``'@```.D'____ -XMBU4(BT(0,=*`N%('``#_#X5X____BTT(QT0D!/\```")#"3H/_[__XG"Z5[_ -XM__^#^D!S!;I`````BT4(Z+;]__^Z`0```(7`#X5:____B[L8`0``ZY)KQQR+ -XMDQ`!``")1"0(:X,<`0``'(T$`HE$)`1K110@0"0C'1"0,@`L% -XM",=$)`@(````QP0D(!`)"(E$)`3HA(S__\:&4@<```"+'>@0"0B%VW0^,575E.#[&R+10B+>!"+10R%P`^$WP4``(M-%(M%%(/A0(/@08E- -XML(E%K(N'&`$``(7`="J+1;"%P`^%L04``(M%K,=%R`````#'1<0`````A<`/ -XMA#0!``"-M@````#VAU0(```@#X6F`P``QT7(`````(M-$(E,)`R+112#X#&) -XM1"0(BT4,B40D!(M5"(D4)/^7>`@``(7`#X7P`@``BTT,BT$(C5#]@_H'=R3_ -XM))40@)#X3?`@``BTT,BP&)`HM!!(E"!(M!"(E" -XM"(M!#(E"#(M!$(E"$(M!%(E"%(M!&(E"&,=%Q`````"+3:R%R0^%9`0``(M% -XM%(M5%(/@!H/B`HE%N(E5M&NW'`$``!P#MQ`!``"#?@@!#X6 -XM_?__BT4(]H`<`P```0^%S0(``(M%"(N`%`,``(7`#Y7`A,`/A!`#``"#1<@! -XM@WW(`70?BT7(NF=F9F;WZHM%R,'Z`L'X'RG"C122`=(Y57UW#QT7$`0```.G:_?__@_@( -XM#Y7`#[;PBT4(@\8&BT`0B47,BU@(B<>#QP@Y^W08C;8`````B1PDB70D!.AD -XMI```BQLY^W7NBU7,BUH0B=>#QQ`Y^W2?B1PDB70D!.A#I```BQLY^W7NZXN+ -XM0Q@!AQP!``#IL/[__XM5"(D4).AB?P$`A<`/A$?\___I9?___Y"-="8`BUW0 -XMBT$0A=MT?XG&BT70C5H<`?")1;SK)XVT)@````"+30@/ML"+41`/MI0"4P<` -XM`(E3],9#^`"#PQP[=;QT2<=#[`$````/M@:#Q@$\_XA#\'7,BU4(BT(0,=*` -XMN%('``#_=''`$```````#IZOW__XG!BX`4`P``C01`P>`"`T$0BT`XA<`/E<#I(_W_ -XM__9%%`ATBXM-##'`QD$,8<=!$`````#'00@!````QD$4`(/$;%M>7UW#,<#I -XMG/W__XU5U(E5#.D6^O__QT0D$`8```"+0R")5"0(QT0D!`````")1"0,BU4( -XMB10DZ,;V__^%P`^%7OW__P^V5@R#^G]WCI"-="8`Z0O___^#AQP!```!,<#I -XM0OW__XL&BTT,B0&+1@2)002+1@B)00B+1@R)00R+1A")01"+1A2)012+1AB) -XM01CI`O___XM5"/:"&`0```%T58N"$`0``(T$0,'@`@-"$(M`.(7`#Y7`A,#' -XM11``````#X2_^?__@WX0"71+BT4(]H`(`@```70MB<*+@``"``"-!$#!X`(# -XM0A!K0#ADB440Z9#Y__^+30B+@1`$``"%P`^5P.NRBTT(:XD``@``9(E-$.EN -XM^?__BT4(]H"0`0```70HB<*+@(@!``#KLXM-"(M!$(.(5`@```2+10S'0`@$ -XM````,<#I6_S__XM-"&N)B`$``&2)31#I*/G__Y"0D)!5B>6#[!B+10S'1"0( -XM6)8(",=$)`0#````B40D#(M%"(D$).A8-```R<.-M@````!5B>6#[#B+50R) -XM??R+?1B)7?2)=?B%T@^$PP```(M%"(M8'(7;#X0X`0``]D40`G5"BT4(]H"O -XM!```"'0CBTAXBT!\BW$4B47@BT`4.?*)1=P/@]L````[5=P/AR`!``"+0Q`[ -XM10P/A+H```#'0Q``````C44,B47DC47LQT7H!````(M3!(E$)`B-1>3'1"0, -XM`````(E$)`2)%"3_4@R#^/]T;H/H`70WBT4,A?^)0Q"+1?")0PR+1>R)0PAT -XM!8M%\(D'BT44A<`/A+\```"+0PB+512)`C'`ZRJ0C70F`/9%$`%U+(7_=`;' -XM!P````"+512X`0```(72=`F+513'`@````"+7?2+=?B+??R)[%W#BT4,B40D -XM!(M%"(D$).BL_O__Z\"%_W2:BT,,B0>0ZY(YPG=*.?)T#8VV`````(L).U$4 -XM=?F%_W0%BT$0B0>+712%VW0WBT$(BU44B0(QP.NBQT0D"`0```#'1"0$```` -XM`(D$).CU_0$`Z6;___\I==PK5=R)50SITO[__S'`Z7#___^-="8`C;PG```` -XM`%6)Y5.#[!2+30B+70R+41R%TG1A,<"%VW0CBU(4A=)T(O:!KP0```AT#(M! -XM?`-0%(M!>"M0%#'`.=H/D\"#Q!1;7<.)7"0$QT0D$`````#'1"0,`````,=$ -XM)`@`````B0PDZ/G]__^%P`^4P(/$%%L/ML!=P\=$)`@$````QT0D!`````") -XM#"3H0_T!`+@!````ZZF-M@````"-OP````!5B>6#[$B)=?B+=0B)??R+?0R) -XM7?2+7AR%VP^$NP```(M3%(72="J)%S'`]H:O!```"'00BT9\`U`4BT9X*U`4 -XM,<")%XM=](MU^(M]_(GL7<.-1?")1>"-1>C'1>0$````BU,$B40D"(U%X,=$ -XM)`P&````B40D!(D4)/]2%(/X_W0Q@^@!=':+1>"+`(E%\(E#$(E#%(M%[(E# -XM#(M%Z(E#"/:&KP0```AU8(M%\(D',<#KD<=$)`C%E@@(QT0D!`4```")-"3H -XM13$``+@!````QP<`````Z6G____'1"0(!````,=$)`0`````B30DZ#W\`0"X -XM`0```.E'____,<#'!P````#I.O___XM&?(M`%#M%\'>8ZY.)]HV\)P````!5 -XMB>6#[#B)=?B+=1B)7?2+70R)??R+?0B%]G0&QP8`````BT44QT0D"`````") -XM7"0$B3PDB40D$(M%$(E$)`SH7/S__S'2ASVAJP$```!=4N+?AR#/P%T2XM&$(M8"(/`"#G#=0[K -XM/(M&$(L;@\`(.=AT,#G>=/`Y>QQUZXM%[(E$)`B+1?")'"2)1"0$Z.))`P"% -XMP'31N`$```"#Q!Q;7E]=PXM5"#'`A=)T[XM%[(E$)`B+1?")-"2)1"0$Z+)) -XM`P"#Q!Q;7E]=PXUV`(V\)P````!5B>564X/L((MU"(M>'(7;#X2\````QT0D -XM"`<```"+10R)-"2)1"0$Z),/``"-10R)1>B+11#'1>P$````B47PBT44B47T -XMBU,$C47PB40D"(U%Z,=$)`P`````B40D!(D4)/]2$(/``0^$B````(M#$#M% -XM#'1*]D-8`G4X@$M8!,=$)`@&````BT4,B30DB40D!.@I#P``BU4,B?"Y`P`` -XM`,<$)`$```#HL_[__X/$(%M>7<.)-"3H-)X``.N^B?;V0U@"QT,0`````'2O -XMC78`Z^*)-"3'1"0(!````,=$)`0`````Z-;Y`0"#Q""X`0```%M>7<.+10R) -XM-"3'1"0(X98(",=$)`0%````B40D#.B++@``@\0@N`$```!;7EW#ZPV0D)"0 -XMD)"0D)"0D)"058GE5U93@^PLBW4(BUX2+11#'1>@$ -XM````B47LBT44B47PBU,$C47LB40D"(U%Y,=$)`P%````B40D!(D4)/]2$(/` -XM`0^$Z````(M#$#M%#'<'QT,0`````(M#%(7`=`:#P`&)0Q3V0U@"#X6'```` -XM@$M8!+\!````QT0D"`4```"+10R)-"2)1"0$Z/(-``"+10S'1"0$`@```(DT -XM)(E$)`CH6QT``(G#BT4,QT0D!`(```")-"2)1"0(Z&(X`0"%P'4(A=L/E<`/ -XMMOB+50RY`@```(GPQP0D`0```.A`_?__N@$```"%P'4"B?J#Q"R)T%M>7UW# -XMB30DZ+.<``#I;/___XDT),=$)`@$````QT0D!`````#H9O@!`(/$++H!```` -XM6XG07E]=PXVT)@````"+10R)-"3'1"0(@)8(",=$)`0%````B40D#.@1+0`` -XM@\0LN@$```!;B=!>7UW#B?95B>575E.#["R+=0B+7AR%VP^$"0$``(U%$(E% -XMY(M%%,=%Z`0```")1>R+11B)1?"+4P2-1>R)1"0(C47DQT0D#`0```")1"0$ -XMB10D_U(0@\`!#X3O````BT,0.T40=@?'0Q``````BT,4A7UW#C70F`(V\)P````!5B>56 -XM4X/L((MU"(M>'(7;#X3*````BT4,QT0D!`$```")-"2)1"0(Z/,:``"%P'0/ -XMN`$```"#Q"!;7EW#C78`BT4,QT0D!`$```")-"2)1"0(Z.DU`0"%P'76QT0D -XM"`0```"+10R)-"2)1"0$Z"X+``"-10R)1?"-1?#'1?0$````BU,$QT0D"``` -XM``")1"0$B10D_U((@^@!='*+0Q`[10QR!\=#$`````"+0Q2%P'0&@^@!B4,4 -XM]D-8`G5&@$M8!(GPBU4,N0$```#'!"0!````Z&CZ__^#Q"!;7EW#D(DT),=$ -XM)`@$````QT0D!`````#HJ/4!`(/$(+@!````6UY=PXDT).C$F0``Z["+10S' -XM1"0(_I8(",=$)`0%````B30DB40D#.A3*@``N`$```#I__[__Y"0D)"0D)"0 -XMD%6)Y5.#[`2+70R+0QB%P'0-B00D_U`$QT,8`````(M#'(7`=`^)!"3H)X'_ -XM_\=#'`````#'0R``````,<#'0RP!````QT,P`````,=#*`$```#'0R0!```` -XM@\0$6UW#D%6)Y5.#[!2+70S'0QP`````QT,@`````,=#+`$```#'0S`````` -XMQT,H`0```,=#)`$```#'1"00`````,=$)`P"````QT0D"(`!``#'1"0$!@(` -XM`,<$)`````#H-('__S'2A<")0QAT"(/$%(G06UW#QT0D"!R7"`C'1"0$!0`` -XM`(M%"(D$).A4*0``N@$```"`2U@0@\046XG07<.-=@!5B>56B<93B7<.058GE5U93@^Q,BWT(BW<<#[966/;"$`^%Z`$``(M&*#M&)`^$ -XM`0(``(/*$(U&*(A66(E%Z,=%[`0```#'1<``````BT88C57@@T8H`8E4)`B- -XM5>C'1"0,`````(E4)`2)!"3_4`R%P`^%X0$``(M=X(`["'8+Z`IZ__^-M@`` -XM```/M@/_)(5\F`@(C57$C4,!B10DQT0D"!0```")1"0$Z!!^__^+1C'1>P$````B?:+1AB-5>"# -XM;B@!B50D"(U5Z,=$)`P`````B50D!(D$)/]0#(7`#X5W`0``BUW@@#L(=@7H -XMC'?__P^V`_\DA:"8"`B-0P&)1"0$C478QT0D"`@```")!"3HF'O__XM5"(M% -XMV#M"3'29@T8H`8!F6.\QP(/$3%M>7UW#C7L!C47$QT0D"!0```")?"0$B00D -XMZ&%[__^+1___BT4(BU!,.U7P='R+50B+1?`Y0E@/A'3___^#0F`!B4)8Z6C___^- -XM0P&)1"0$C478QT0D"`@```")!"3HQGK__XM5"(M%V#M"3`^%+O___X-^*`$/ -XMA;G^___I'____XUT)@")!"3'1"0(%)@(",=$)`0#````Z*@D``"#Q$RX`0`` -XM`%M>7UW#BT7DB50D!(/H!8E$)`R-0P6)1"0(BU4(B10DZ-OT__^%P`^$7/__ -XM_^DG____BT4(N>\!``"ZP)<(".@<^___N`$```#IL_[__XGV58GE5U93@^Q, -XMBWT(BW<<#[9&6*@0#X7=`0``@WXH`0^$^`$``(/($(A&6(U&*(E%Z,=%[`0` -XM``#'1<``````D(M&&(U5X(-N*`&)5"0(C57HQT0D#`````")5"0$B00D_U`, -XMA<`/A="`.PAV!>B,=?__#[8#_R2%Q)@("(U5Q(U#`8D4),=$)`@4 -XM````B40D!.B8>?__BT7,B478BT70B472#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3HF_/__X7` -XM#X4]`0``BT7P.4=8=*J#1V`!B4=8QT7``0```.D(____C4,!B40D!(U%\,=$ -XM)`@$````B00DZ.)X__^+1>2#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3H;O3_ -XM_X7`#X7@````@T=<`<=%P`$```#IMO[__XU#`8E$)`2-1?#'1"0(!````(D$ -XM).B0>/__BT7PB3PDB40D!.@=]___A<`/A9\```"#1V0!QT7``0```.EU_O__ -XMBU7`A=(/A&K^__^-0P''1"0("````(E$)`2+10R)!"3H1'C__S'`@&98[^L= -XMQT0D"$B8"`C'1"0$`P```(D\).A`(@``N`$```"#Q$Q;7E]=PXD\),=$)`AL -XMEP@(QT0D!`(```#H&R(``(/$3+@!````6UY?7<.)^+F(`0``NL"7"`CHO?C_ -XM_[@!````Z[N`9ECON`$```#KL(UT)@"-O"<`````58GE5XG75HG&4X/L+(M8 -XM'(-[(`AW*HU#(,=$)`P)````B40D"(M#'(DT)(E$)`3H3)8``+H!````ABT,H,=*#P`&)0RB)0R2#Q"R)T%M>7UW#C;8`````B?"Z -XMP)<("+G#````Z,_W__^#Q"RZ`0```%N)T%Y?7<-5,<")Y593@^P@BW4(BUX< -XM]D-8$`^%J0```(M++(7)#X6K````@WL@%'B+1?2#P`6)1>R+4QB-1>B)1"0(C47@QT0D#`````")1"0$ -XMB10D_U(0@\`!#X2-````BT,H@\`!B4,HB4,D,<"#Q$!;7EW#N@$```")\.C$ -XM_/__A7<.0C47TB40D -XM$(U%\(E$)`S'1"0(`@```(M%#(DT)(E$)`3H"^K__X7`#X38_O__BT4,@_@! -XM="Z)1"0$B30DZ+_I__^X`0```.N!B?"Y$0$``+K`EP@(Z.?T__^X`0```.EF -XM____QT7T`````,=%\$^-"`CIC_[__XUV`(V\)P````!5B>6+30B+41SV0E@0 -XM=1.+0BR%P'00BT%,B4(LBT%0B4(P73'`PXM!3(E"+(M!4(E",+H"````B'[__^058GE5E.#[""+=0B+1AB%P'0CQT0D"`$```#'1"0$`````(D$).AF -XMR/__BT88B00DZ'M>``"+1@B-7@@YV'00D(D$).AH7@``BT8(.=AU\8M&$(U> -XM$#G8=!:-M"8`````B00DZ$A>``"+1A`YV'7Q]H94"````G10ZUR-M@````"# -XM>P@#N>B8"`B+4PR+0Q!T!;E/C0@(B40D#*$0(0D(B50D$(E,)`C'1"0$\)@( -XM"(D$).AM;/__BQ.%TG0&BT,$B4($BT,$B1"+7FR%VW6Q@\0@6UY=PZ$0(0D( -XMQP0D!P```(E$)`3HF6S__^O;C78`58GE5HG64XG+@^P0BQ40(0D(B00DB50D -XM!.BF;?__A=MT&:$0(0D(B5PD",=$)`2=K0@(B00DZ/EK__^%]G0HZ)!P__^+ -XM`(D$).CF;?__QT0D!)VM"`B)1"0(H1`A"0B)!"3HS6O__Z$0(0D(QP0D"@`` -XM`(E$)`3H&&S__X/$$%M>7<.-M@````"-O"<`````58GE5U93@>R<`0``BT4( -XMBYAH"```A=L/A'L#``"+50B+BI0(``"%R0^$A0,``(M="+_XF`@(BTT(_(G8 -XM@\$(@\`0B8U\_O__BS.)0Q")0Q2#P'")0WR#Z`2)@X0```"#Z$R)0S")0S0% -XM_````(E+"(E+#+D#````QX.``````````,9#<`&)@RP!``")@S`!``#'@T`! -XM````````QX-$`0```````(FU@/[___.F#X6;`@``QX6(_O__`0```,>%E/[_ -XM_P````"+71"0C70F`(/#!(L3A=*)E7C^__]T9OR_`9D("+D#````B=;SIG15 -XMBY5X_O__#[8"/"L/A,\````\+77+B[5X_O__#[9&`83`#X0I`0``/&-T##Q4 -XM=`@\='0$/'=UJ8N%>/[__X!X`@!UG8/#!(/#!(L3A=*)E7C^__]UFHM%"#'_ -XM,=LQ]H.(5`@``$#'A8S^__\`````QX68_O__`````,>%G/[__P````#'A9#^ -XM__\`````C78`QT0D"`29"`B+31")3"0$BT4,B00DZ(IM__^#^/\/A!\"``"# -XMZ$:#^#$/AK4```"+50B[`0```/^2J`@``('$G`$``(G86UY?7<.-M@````") -XMUX/'`8!Z`0!U)<<$)`0```#HS7#__X7`B0,/A'H"``#'`"UC)`#IU/[__XUT -XM)@"+C7C^__^)#"3H]G'__X/``HD$).B;%D/[__P$```#I7O[__\>%E/[__P$```#I3_[__\>%F/[__P$` -XM``#I0/[__XM-"(.A5`@``+_I,?[__XNU@/[__[_WF`@(N00```#SI@^$3?W_ -XM_XNU@/[__[_[F`@(N08```#SI@^%J`0``,>%B/[__P(```#'A93^__\!```` -XMZ3#]___'@&@(```0,@@(BU4(BXJ4"```A7UW#BT7P@XBL!``` -XM`8M="(M%\(M3"(D0BY5\_O__BT7PB5`$.U,,#X1G`P``BTT(BT7PBU$(B4($ -XMBU7PBUT(B5,(B10DZ`?:__^%P'68BX6,_O__A<`/A#`#``#'1<`9````C47( -XMQT7$-P```(N=E/[__X7;=`G'`"H```"#P`2+C9C^__^%R70)QP`2````@\`$ -XMBY60_O__A=)T"<<`,P```(/`!,<`_____XU%P(E$)`2+1?")!"3H8S8``(7` -XM#X4@____A?8/A(H```"-G:3^__^)="0,QT0D"!29"`C'1"0$``$``(D<).@% -XM:___B=F)7=2+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(```'4&P>H0@\$" -XM`-*-1=2#V0.)1>0IV8U%Y(U5P(E-W,=%P`````#'1<@`````B57HQT0D"``` -XM``")1"0$BT7PB00DZ,DK``"+A:#^__^%P`^%M`(``(M5\/:"(`(```$/A(D" -XM``"+@A@"``"-!$#!X`(#0A"+0#B)0C2+5?#V@F`!```!#X19`@``BX)8`0`` -XMC01`P>`"`T(0BT`XB4(XBX6@_O__A<`/A/;]__^+5?"+C83^__^#_W*+=1"- -XM'(X/A`(#``#V@FP$```!#X0G`@``BX)D!```C01`P>`"`T(0BT`X@\`!T>B) -XM@H0```"+10B+@`P!``"%P`^$^P(``(N%G/[__X7`=!V+E9S^__^)5"0$BT7P -XMB00DZ)'.`0"%P`^%KOW__XLSA?9T;(M5\(M"((7`=#V+0`B#ZP2)!"3HOVS_ -XM_X/``8D$).AD:___A<")PHD##X3.`P``BT7PBT`@BT`(B10DB40D!.CC;/__ -XMBU7PB5HHB5HDBT7P@8BL!````"```(/_3\__^-1>R)%"2-7:2)1"0(QT0D!`,```#H^@@``(M5[,<$)`$```") -XM5"0(B40D!.B78?__ZQ2#^`QT2XM%\(D$)(M5"/^29`@``,=$)`P`````QT0D -XM"`````")7"0$BT7PB00DZ.[5__^%P`^%2_K__XM%K(/X!'0-@^@!=;V+1;2# -XM^`AUL(M5\.D-_?__BT(DA564XM`'(G3BU`XA=)T'P^V2A`Q]HG0 -XM.L9D`^V2!`YV7,.B<*+`H7`=?!;B=!>7<.)UCG9=`*)\%N)PEZ)T%W# -XMC78`C;PG`````%6)Y593@^P@BT4,BW40@_@!=%US"^CZ8?__C;8`````@_@" -XM=`LQTH/$((G06UY=PXM5",=$)`0"````B10DZ&W=__^%P'10BU4(BT(WKO(VT)@````"+50B+0AR+6#B%VW2H -XMC78`BT,(.?!R"'0\@^@!B4,(BQN%VW7KZXZ-1?2)1"0$BT4(B00DZ*?=__^Z -XM`0```(7`#X5Q____@WWT`76+C70F`.E@____@$L1`8M%"(E<)`2)!"3HB.[_ -XM_^NUC;8`````58GE5U93@^P,BW4,BWT(@_Y@#X2(````B?*)^.BO_O__A<") -XMPW0/#[9($`^VP3GP#X1Z````QP0D%````.BR9?__A<")P@^$S0```(7;#X2? -XM````BP.%P(D"=`6+`XE0!(D3B5H$BTT0B=.+`8E""(M!!(E"#(GPB$(0BTT4 -XM,<"%R74/B$,1,=*#Q`R)T%M>7UW#B=.X`@```.OHC70F`&:^)P#I;____XVT -XM)@````"+112%P'4I#[9#$3'2@^`#@_@"=,2+51"+`HE#"(M"!(A+$(E###'` -XMZZJ-M@````"+51"+`HE#"(M"!(A+$(E##.NBBT\6#["B)7?2+70R)=?B)??R#^V!T;8M%"(G:Z&_] -XM__^%P(G&=`X/MD`0#[;X.=^(1?-T4X#[_P^$XP```(M5"`^VPXT$0(V$`%`! -XM```#0A"#P`B)1"0,QT0D"(":"`B+10B+512)!"2)5"0$Z,X-``"X`0```(M= -XM](MU^(M]_(GL7<.S)^N/]D81`70R@'WS_P^$G0```(M5"(T$?XV$`%`!```# -XM0A"#P`B)1"0,QT0D")B:"`CKIXVT)@````"+1@B#^`%U!XM>#(7;=$"+50B) -XM1"0$B10DZ++:__^%P'4J@'WS_W1ABU4(C01_C80`4`$```-"$(/`"(E$)`S' -XM1"0(O)H(".E4____BT8(BU40B0*+1@R)0@0QP.E6____BT4(B5PD!(D$).@` -XMR?__Z1____^+10B)?"0$B00DZ.S(___I8O___XM%"(E\)`2)!"3HV,C__^NA -XMC;8`````58GE4X/L!(M=#(M3.(72=""+"H7)=`:+0@2)002+0@2)"(D4).C* -XM8___BU,XA=)UX(/$!#'`6UW#D)"0D)"0D%6)Y8M%"(M`:(7`=`F)10B+2`1= -XM_^%=PY"-M"8`````58GE5U93@^PLBW40QP8`````BU4,#[8"A,!T00^^P(7` -XM>$N+'?P@"0@YV'U!BPT((0D(]D2!-@1U&^LRC70F``^^P(7`>"`Y4'0/A`X!``"+1>`Q]HD$).AZ8O__BU4(@47<``$``(72#X5;____BU7< -XMB10DZ+UA__^%P'5*QT7@3XT(".D<____BT7#I -XM-____XM=X(G7.?,/@T?___\\_W0]BU4(#[;`C01`C80`4`$```-"$(/`"#G> -XM#[80#Y?!A-)U0`^V1P&#QP&$P`^$%?___X3)#X0-____//]UPXM%",=$)`3_ -XM____B00DZ(+&__\YW@^7P0^V$(32=,:-M@````"$R72\B!,/ME`!@\,!.=X/ -XME\&#P`&$TG7GZZ6!H%0(``#__O__,?;I[O[__XE$)`R-0WB+50B)1"0(BT-T -XMB10DB40D!.C7?@``A<`/A.K^__^)0W3I5?[__XM5X#'VB10DZ"YA___IK_[_ -XM_\8#`.GP_?__C;8`````C;PG`````%6)Y8/L.(E=^(M=#(EU_(MU$`^^`X/X -XM?W<*]@2%W10)"`1U'(7V=`J)'"3HE&'__XD&B=B+=?R+7?B)[%W#B?8/OD,! -XM@_A_=]OV!(7=%`D(!'31#[Y#`H/X?W?(]@2%W10)"`1TOH![`WQUN(U%](E% -XMY,=%Z`0```")'"3H\UC__XE%](M%"(7`=%6+50B+0A"%P'1+BU!HA=)T1(U% -XM[(E$)`B-1>3'1"0,`````(E$)`2)%"3_4@R%P'4DBU7PA=)T'87V=`6-0O^) -XM!HM%[,9$`O\`BUWLZ5;___^-="8`@\,$Z3S___^0C;0F`````%6)Y8/L"(M% -XM#(M-"(M5$(/X!78,Z*M:__^-M"8`````_R2%')T("(E5$,=%#,2<"`B)30C) -XMZ=;^__^)51#'10SJF@@(B4T(R>G#_O__B540QT4,9)P("(E-",GIL/[__XE5 -XM$,=%#(2<"`B)30C)Z9W^__^)51#'10S]F@@(B4T(R>F*_O__B540QT4,&YL( -XM"(E-",GI=_[__XVT)@````!5B>575E.#["R+10B+<""+1@B)!"3H&F#__XM= -XM"(7;B47H#X3M````BU4(BUH0A=L/A-\```#V@U4(```!#X72````C02%@``` -XM`#M#>`^'9`4``(M+=(E-X(M#>(E%[(&+5`@````!``"+10B+<""+5@B+?>`/ -XMM@*$P`^$Y@```(G6ZU>+50@/ML"-!$`!P`-"$`^VF%T!``")7>@/M@8\_W1= -XMBU4(#[;`C01`C80`4`$```-"$(/`"(D\)(E<)`B)1"0$Z$M>__\/MD8!@\8! -XM`WWHA,`/A(L````\_W6EQT0D!/____^+30B)#"3H;L7__XG#B5WH#[8&//]U -XMI8GVQT0D!/____^+30B)#"3H3`"`T$0BT`XA<`/E<"$P`^%"0(``,8".HUR -XM`L9"`2#V11`!#X0K`0``C47PB40D!(M%"(D$).BMT___A<`/A0D!``"+1?"% -XMP`^%C0(``(U5Z(E4)`C'1"0$CYL("(M-"(D,).B0^___BU7HB30DB50D"(E$ -XM)`3H(5S__XGP`T7HZ0B)%"2)3"0(QT0D!%F;"`CH7/O__XG"Z1O_ -XM__^-5>B)5"0(QT0D!$B;"`B+30B)#"3H._O__XM5Z(D<)(E4)`B)1"0$Z,Q; -XM__^)V`-%Z,8`+(U8`L9``2"+50B+0ASV0%@$#X2S_O__ZY2+=>"+30B)#"3H -XM*34!`(M%"(M0$(M%Z(ET)`C'1"0$!````(E$)`R+30B)#"3_DI0(``"+10B% -XMP'06BU4(BT(0AB)1"0(QT0D!+J;"`B+50B)%"3HBOK__XM-#(DT)(E,)`B)1"0$Z)M<__^) -XM-"3H,US__XT$!HU(`<8`"HG(*T7@]D40`HE%Z`^$3?___XM5"(MR.#GP#X8_ -XM____BU7@C5[].?IR+#G7=#>-C&0@$@C5H"B0PDB40D",=$)`1UFP@(Z'CY__^+5>B)'"2)5"0(B40D!.@) -XM6O__B=H#5>CI2?W__X/@[V:)01B-3>B)3"0(QT0D!#N;"`B+10B)!"3H.OG_ -XM_XM5Z(D<)(E4)`B)1"0$Z,M9__^)V@-5Z.G[_/__C47HB40D",=$)`2>FP@( -XMBU4(B10DZ`/Y__\QTHE$)`2+3?!K70QDB4PD#(G8]_&)1"00BTT,B30DB4PD -XM".C_6O__B30DZ)=:__^-!`;I7_[__X&@5`@``/_^__^#Q"Q;7E]=PXE$)`R- -XM0WB)1"0(BT-TB40D!(M5"(D4).@\=P``A<`/A.C]__^)0W3I;_K__XVV```` -XM`(V_`````%6)Y5=64X/L/(MU"/:&K@0```0/A;"`C'1"0$&0```(E$)`SH-%;__XU5[(E%U`'#B47L,<")5"0(@WR^7`&) -XM-"0/E<"+!(50G0@(B40D!.AD]___BU7LB1PDB50D"(E$)`3H]5?__XM%[(U5 -XM[`'#B47@Q@,@BP2]6)T("(/#`8E4)`B)-"2)1"0$Z"GW__^+5>R)'"2)5"0( -XMB40D!.BZ5___BT7LBU7@`<.-1!`!`T78`T74B478,<#'1+Y<`````(/'`8/_ -XM!P^%'?___\8#"HDT).@0,0$`BT78BU80@\`!B40D#(M%W,=$)`0$````B30D -XMB40D"/^2E`@``(7V=`^+1A"%P'0(BU7<.5!T=&B+1=R)!"3HL5?__X/$/%M> -XM7UW#BX8@`P``C01`P>`"`T80BT@XZ3'^__\PP,=$AEP`````@\`!@_@'=?"# -XMQ#Q;7E]=PX%[>+P"``!V)XM#=(E%W(M#>(E%\(&+5`@````!``#I8?[__X&@ -XM5`@``/_^___KEXU#>,=$)`R]`@``B40D"(M#=(DT)(E$)`3HMG0``(7`#X1Q -XM____B4-TZZZ)]HV\)P````!5B>575E.#[#R+?0B%_P^$9`0``(M%"(-]#`:+ -XM0!")1=AV!>B,4?__BU4,_R25-)T(",=%#`,```"A*"$)"(/``:,H(0D(@^@! -XM=$:#Q#Q;7E]=PXM%"/:`,`0```$/A#@$``"+@"@$``"+5=B-!$"+3((XA+1>R- -XM'`8[7?!W'(!]UP"--`$`0`` -XMBU-TB57@BT-XB47P@8M4"`````$``(-]#`4/A`L!``"#?0P##X7R_O__BWW@ -XM,?;&1=<`BT4(A<`/A.?^__^+1=B%P`^$W/[__XM%V(N0!`$``(72#X3+_O__ -XM#[8"A,`/A$P!``")T^M5C78`BU4(#[;`C01`C80`4`$```-"$(/`"(E$)`S' -XM1"0(GZT("(M%\(D\)"GPB40D!.B!4O__`<8[=?")1>P/A^_^__\!QP^V0P&# -XMPP&$P`^$\P```#S_=:K'1"0$_____XM%"(D$).B7N?__ZZN0C70F`(M%W,=% -XM\`````#'1>``````A<`/A"'___^+1=R-5?")5"0(QT0D!`````")1"0,BT4( -XMB00DZ`9R``"%P`^$A@$``(-]#`6)1>`/A?7^__^-1>R)1"0(QT0D!,R;"`B+ -XM10B)!"3H-_/__XM5[#E5\`^"2_[__XE4)`B)1"0$BU7@B10DZ+Q3__^+=>R+ -XM?>#&1=(E4)`R)1"0(BT-TB40D -XM!(M%"(D$).A[<0``A<`/A/L```")0W3I3_[__XM5V(N""`$``,=$)`C8FP@( -XMB40D#(M%\(D\)"GPB40D!.A)4?__`<8[=?")1>P/A[?]__\!Q^DY_?__Z(]0 -XM__^+`(D$).CE3?__QT0D")VM"`B)1"0,BT7PB30D*=B)1"0$Z`A1__\!PSM= -XM\(E%[`^'=OW__P'&@\,!.UWPQT4,`P````^'8?W__\8&"HM]"(7_=`N+10B) -XM!"3H7"P!`(MUV(7V#X3Y````B5PD#(M5X(E4)`B+10R)1"0$BU4(B10DBT78 -XM_Y"4"```BTT(A`Y4'0/A.````"+1>")!"3H[%+_ -XM_\<%*"$)"`````"#Q#Q;7E]=PXM%"/:`K`0```(/A.C[___V@#`$```!=6Z+ -XM10B+F"@$``"%VP^4P(3`#X3)^___BU78@XI4"````NG3^___@WT,`G0P@WT, -XM!L=%V``````/A:K[___'10P$````Z9[[__^+10B+D"@$``"%T@^4P.G*^___ -XMQT4,`P```,=%V`````#I>/O__XN`*`0``(M5V(T$0(MT@CB%]@^4P.N)BU7@ -XMH1`A"0B)7"0(QT0D!/*8"`B)5"0,B00DZ&Q*___I`____X&@5`@``/_^___I -XM'/___XUT)@!5B>6#[#B)=?B+=1")??R+?0B)7?2%]G1IZ-9.__^+&(U%\(ET -XM)`2)1"0(B3PDZ#WN__^)QNBZ3O__B1B+112)="0,B3PDB40D"(M%#(E$)`3H -XMFOK__XM%\(7`=!B%_W0,BT<0A"-1>C'1>0$````QT7P`0```(E$)`B- -XM1>#'1"0,`````(E$)`2)'"3_4PR%P'4*@WWL$@^$`P$``(D<)/]3!*'L$`D( -XMA<`/A+L```#'!>P0"0@`````N`$```"!Q#P$``!;7E]=PZ'L$`D(A7UW#QP0DWYL(".@H2?__ABX\)L("+D2````_(G'\Z8/A>7^ -XM__^+10C'!>P0"0@`````BU`0BT)HA575C'V4X/L#(M]"(G[ZQ*#QA"#PPR!_O`$```/A+P```"#OFBC -XM"`@#=>7VAFRC"`@!==P/MI,``0``@^(!#X2B````BX/X````C01`P>`"`T<0 -XMBT`XA<`/E<"$P'0LA-(/A*0```"+@_@```"-!$#!X`(#1Q"+0#B)!"3HX4[_ -XM_P^VDP`!``"#X@&$TG1GBX/X````C01`P>`"`T<0BT@\A7UW#BX/X````A<`/E<#I9?___XN#_````(7`#Y7`ZZ.+@_P` -XM``#KN8N#^````.EC____D(VT)@````!5B>6#[!B+10S'1"0,=)T(",=$)`0# -XM````B40D"(M%"(D$).@8_/__R<.-M@````!5B>53@^P4BTT,BUT(C01)C02# -XM]H```0```70TBX#X````C01`P>`"`T,0BU`XA=)T!S'`@#H`=0R+51"X`0`` -XM`(72=!.#Q!1;7<.0C70F`(N0^````.O6P>$$BX%@HP@(B1PDQT0D#+"="`C' -XM1"0$`P```(E$)`CHD_O__X/$%+@!````6UW#D(VT)@````!5B>6#[%B)7?2+ -XM70B-1>R)=?B)??S'1"000%<%"(E=[,=$)`P(````QT0D""8```#'1"0$8*@( -XM"(D$).AD2___AQ=PXU%W(E=W,=$ -XM)!`@5P4(QT0D#!````#'1"0(3P```,=$)`1@HP@(B00DZ!I+__^%P'7!B1PD -XMZ)Y-__^+-6"C"`B%]HE%R'19#[8#QT708*,(",=%Q`````"(1<_K%(VT)@`` -XM``"#1=`0BT70BS"%]G0G#[9%SS@&?.M_'8M%R(G?_#G`B<'SIG7;BTW$A`"`T80BU`XBP.)5"0,QT0D!':?"`B)-"2)1"0(Z/XD -XM`0")PNGZ_O__C;0F`````(N`^````(T$0,'@`@-&$(M`.(7`#Y3`ZY:-M"8` -XM````BX#X````C01`P>`"`T80BT`XZ3+___^+@/@```"-!$#!X`(#1A"+0#B% -XMP`^5P.G/_O__C01)BY2&^````.EV____C;0F`````(V\)P````!5B>575E.! -XM[,P"``"+10B+2#C'A53]__\*````C70F`#'2B#'A43]__\`````QX50_?__`````,>%7/W__P````"#Z@*)E3S]__^) -XMC3C]__^+E5S]__\/MH)LHP@(J`0/A1`!``")U\'_!(-]#`)T%8-]#`,/A&(" -XM``"#?0P!=%'H7$3__Z@!=4B+C5S]__^+@6BC"`B#^`(/A\\#``"+50B-!'^- -XM!(+V@``!```!#X2=!```BX#X````C01`P>`"`T(0BU`XBT`\.<(/A*0```"+ -XM50B-!'^--(*-AO`````/ME@0@^/]B%@0BXU<_?__BX%@HP@(B00DZ/-)__^+ -XME5S]__^)A4S]__^+@FBC"`B#^`(/A'D"```/@]8!``"#XP$/A%H"``"+AO@` -XM``"+30B-!$#!X`(#01"+0#B%P`^4P(3`=`>#A4S]__\"BX4\_?__.85,_?__ -XM#X\(`@``BY50_?__B;R5:/W__X/"`8F54/W__XN57/W__XN"<*,("(/"$(F5 -XM7/W__X7`#X6^_O__BY50_?__A=(/CNX```"+C5#]__\YC53]__\/C#L#``#' -XMA5C]__\!````QX5`_?__`````,>%8/W__P````"+A53]__^%P'Y[BX58_?__ -XM,?8QVXN50/W__XT\$.LXBX5(_?__@\8!BTT(QT0D#$^-"`C'1"0$?I\(""G0 -XMB40D"(D,).@D(@$``YU8_?__.[54_?__="Z+E4#]__^-!!.+E(5H_?__BT4( -XMP>($@<)@HP@(Z,7[__^)PHT$'SF%4/W__W^:@X5@_?__`8N%8/W__SF%6/W_ -XM_P^/'0,``(.]1/W__P`/A+(!``"+50C'1"0$)KH("(D4).@?(0$`BX5$_?__ -XM,=N-M:3^__^%P`^.B0$``(L4GH/#`8M%",'B!('"8*,(".A2^___.YU$_?__ -XM#X1F`0``BTT(QT0D!":Z"`B)#"3HTR`!`.O(BTT(C01_]H2!``$```(/A(7^ -XM___IW/W__X/X`P^%3_[__XG:@^(!#X1"`0``BTT(C01_BX2!^````(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,!T(X32#X7O`0``BTT(C01_BX2!^````(D$).BI1___ -XM`85,_?__@X5,_?__`XN%//W__SF%3/W__P^.^/W__XN-1/W__XF\C:3^__^# -XMP0&)C43]___I\_W__XNV^````(7V#Y3`Z;#]__^#XP$/A,<```"+AO@```"+ -XM50B-!$#!X`(#0A"+0#B-3>")#"2)1"0,QT0D"+.@"`C'1"0$%````.@"1/__ -XMC4W@BP&#P02-D/_^_O[WT"'"@>*`@("`=.GWPH"````/A"(!````TH/9`RN- -XM./W__P&-3/W__^E"_?__@\`&,=*#X/J)A4C]__^)R/>U2/W__XF%5/W__^GA -XM^___D(M%",=$)`0FN@@(B00DZ&T?`0"!Q,P"``!;7E]=PXM-"(T$?XN,@?@` -XM``"%R0^5P.G%_O__BX;X````Z4/___^#^`,/A5O\__^+30B-!'^-!($/MH@` -XM`0``@^$!#X2Q````BX#X````BU4(C01`P>`"`T(0BU`XBT`\.<(/A,;\__^$ -XMR0^%JP```(M5"(T$?XT$@HN0_````(72#X0#_/__BX#X````B50D!(D$).BQ -XM0O__A<`/A(W\___IY/O__XN54/W__XG0P?H?][U4_?__@_H!@]C_A<")A5C] -XM__\/CZK\___I=_W__\'J$(/!`NG3_O__BU4(C01_BX2"^````(T$0,'@`@-" -XM$(M`..D`_O__BY#X````BX#\````Z5;___^+D/@```"+@/P```#I9_O__XM- -XM"(T$?XN$@?@```"-!$#!X`(#01"+4#R%T@^$3OO__XM`..E)____BU4(QT0D -XM!":Z"`B)%"3H#QX!`(N-8/W__XF-0/W__^DA_/__C;0F`````(V\)P````!5 -XMB>6#[!B+10R)??R+?0B)7?2)=?B+=1"-!$#!X`*-%#CV@@`!```!C9P'^``` -XM`'06BX+X````C01`C02%,`````-'$(U8"/?&"````'5Q]\8!````=#[WQ@P` -XM```/A)T```"#Y@)U&(M#!(7`C78`=`Z)!"3H"D3__XVV`````(M5%#'`B5,$ -XMBUWTBW7XBWW\B>Q=P_?&#````'18@^8"=0Z+`X7`=`B)!"3HU$/__XM5%#'` -XMB1/KSXVT)@````"+112)!"3H*3W__X7`B444#X5Y____QT0D"`````#'1"0$ -XM!0```(D\).B"[/__N`$```#KDXM%&(D#,<#KBHGVBT48B4,$,<#I>____XUV -XM`%6)Y57VAVRC"`@!==R+1?"%P`^%'`$``/:#``$```$/A`$!``"+@_@```"+50R- -XM!$#!X`(#0A"+0#B%P`^$\@```(M5#,=$)!``````B40D#,=$)`@*````B70D -XM!(D4).@T_O__A<`/A2H!```/MI,``0``@^(!#X0*`0``BX/X````BTT,C01` -XMP>`"`T$0BT`\A<`/E<"$P`^$2O___X32#X0<`0``BX/X````BU4,C01`P>`" -XM`T(0BT`\BTT,QT0D$`````")1"0,QT0D"`L```")="0$B0PDZ+K]__^%P`^$ -XM`O___XM%"(/&`8/'$,=$)`@`````@\,,QT0D!`4```")!"3H_NK__X/^3\=% -XM\`$````/A>#^__^+1?"#Q!Q;7E]=PXN#^````(7`#X4.____BTT,QT0D$``` -XM``#'1"0,`````,=$)`@&````B70D!(D,).@^_?__BT4,QT0D$`````#'1"0, -XM`````,=$)`@'````B70D!(D$).@7_?__Z6+^__^+@_P```"%P`^5P.D`____ -XMBTT,QT0D$`````#'1"0,`````,=$)`@'````B70D!(D,).C;_/__Z23___^+ -XM@_P```#I[O[__XUT)@"-O"<`````58GE5U93@^Q\Z8/A&4YV9`/A%H(``"`^CW'1<0!````QT7(`````'0.QT7$```` -XM`,=%R`$```"%R<=%[`````#'1=``````=`G&`0"#P0&)3=")'"3H]O+__X7` -XMB<P/MD<, -XMA=(/E<&H(`^%`0(``*@0#X57`@``BU7$A=(/A3H%``"+5R%P`^%#`,``(M%R(7`#X1V`0``BT6X -XMA_O__]D<,`G5@BTT(C01;C02!#[:0``$``(/B`0^$ -XM&00``(N`^````(T$0,'@`@-!$(MP.(7V#Y7`A,!T+(32#X6)!```BTT(C01; -XMBX2!^````(M5T(D$)(E4)`3HPSO__X7`#X33_O__BT<$A/[__X3)#X3W_?__QT0D#-"= -XM"`B+10B)="0(QT0D!`,```")!"3HY>O__\=%S`$```#I1?[__X![`6\/A8C^ -XM__^-P!````B30DZ#WP__^%P(G'#X5'_?__Z6?^__^%T@^%H?W__\=$ -XM)`P`G@@(Z9,!``"+1<2%P`^$?_[__XM5T`^^`H/X?P^'GP```/8$A=T4"0@$ -XM#X21````C47@C4WPQT0D#`H```")1"0(B50D!(D,).CS6```B46\@^@!#X25 -XM`P``BU4(C47HB70D!(E$)`B)%"3HH=G__XM5"(U-Y(E,)`B)%"2)PXM%T(E$ -XM)`3HAMG__X-]O`&)Q@^#-P4``(M-"(E$)!")7"0,QT0D")"?"`C'1"0$!0`` -XM`(D,).C7Y?__ZUN0C70F`(M5"(U%Z(ET)`2)1"0(B10DZ#K9__^+50B-3>2) -XM3"0(B10DB<.+1=")1"0$Z!_9__^+30B)7"0,QT0D"*B>"`C'1"0$`P```(D, -XM)(G&B40D$.AZY?__BT7HA2%VP^$/O[__XM-"(7)=!.+30B+01"%P'0).W!T#X1#!``` -XMB30DZ#@\___'1`/M@"$P'0G#[[0A=(/B+W\__\[%?P@ -XM"0@/C;'\__^A""$)"/9$D#8"#X2A_/__#[9'#*A`=`N+5?"%T@^$VP$``*@" -XM=3&+50B-!%N-!(+V@``!```!#X3.`0``BX#X````C01`P>`"`T(0BT`X.T7P -XM#X2E^?__BT<$ASIM/S__XNP^````(7V#Y3`Z6O\__^!H%0( -XM``#__O__Z9C[__^!H%0(``#__O__QT7,`0```.E/^/__BY#X````A=(/E<#I -XM-OS__X-]O`)T$H-]O`,/A3G[__^-=@#ID?C__XE$)!"+10B)7"0,QT0D"("> -XM"`C'1"0$`P```(D$).B(X/__Z0G[___'1"0,U)X(".F*^?__BX#X````Z3G^ -XM__^+10C'1"00`0```,=$)`P`````QT0D"`````")7"0$B00DZ-3R___IN_?_ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y8'L6`0``(EU^(MU"(U%V(E=](V=R/O__XE% -XMZ(U%R(E]_(G?B5W8QT7(`````,=%T`````#'1>``````B47LQT0D$`,```#' -XM1"0,`````,=$)`@`````QT0D!#\```")-"3H5_+__X7`=3.`CO0#```!QT0D -XM$`$```#'1"0,`````,=$)`@`````QT0D!!@```")-"3H)/+__X7`=$#!XP2+ -XM@V"C"`C'1"0(2)\(",=$)`0#````B30DB40D#.AKW___N@$```"+7?2)T(MU -XM^(M]_(GL7<.-M"8`````@(X@`@```<=$)!``````QT0D#`````#'1"0(```` -XM`,=$)`0(````B30DZ+'Q__^%P'6-@(Y@`0```<=$)!`"````QT0D#`````#' -XM1"0(`````,=$)`0S````B30DZ'[Q__^%P`^%5O___X".9`,```''!"2GGP@( -XMZ-*`@("`=.GWPH"```!U!L'J$(/!`@#2NPH```"#V0,I -XM^8U5Z(E-X,=$)`@`````B50D!(DT).BL\___A<`/A43^__^!_]*?"`B)^W0E -XMQX7(^___97-C8<>%S/O__W!E=&G'A=#[__]M93TVQH74^___`(G9BP&#P02- -XMD/_^_O[WT"'"@>*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*?F-1>B)3>#' -XM1"0(`````(E$)`2)-"3H+?/__X7`=!2[#````.F__?__N"'5"`CI>O[__X'_ -XMWY\("'0=QX7(^___:V5Y=,>%S/O__VEM93UFQX70^___-@")^8L!@\$$C9#_ -XM_O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D -XM"`````")5"0$B30DZ*CR__^%P'04NQ8```#I.OW__[B_GP@(Z7O^__^!^^F? -XM"`AT'L>%R/O__VUA=&/'A*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0( -XM`````(E$)`2)-"3H(O+__X7`=`J['0```.FT_/__QT0D#/6?"`C'1"0(#*`( -XM",=$)`0`!```B1PDZ,@P__^)V8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*` -XM@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D"`````")5"0$B30DZ*SQ__^% -XMP'0*NR````#I/OS__X'[%J`("(G?=!O'A%S/O__V=R87#'A=#[__]H% -XMV/O__U!14%#'A=S[__\@3$EPQX7@^___<&QP:<>%Y/O__W!B<`")V8L!@\$$ -XMC9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLF````@]D#*?F- -XM5>B)3>#'1"0(`````(E4)`2)-"3HA/#__X7`#X4<^___QT0D#$^-"`C'1"0( -XML)\(",=$)`0`!```B3PDZ#`O__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I -XM]\*`@```=0;!ZA"#P0(`TKLG````@]D#*?F-1>B)3>#'1"0(`````(E$)`2) -XM-"3H#_#__X7`#X6G^O__QT0D#!^@"`C'1"0(,Z`(",=$)`0`!```B3PDZ+LN -XM__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLK -XM````@]D#*?F-5>B)3>#'1"0(`````(E4)`2)-"3HFN___X7`#X4R^O__@?\] -XMH`@(B?MT.\>%R/O__W-E8W3'A%U/O__TA( -XM($C'A=C[__]5;FAS9L>%W/O__V@`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,I^8U%Z(E-X,=$)`@`````B40D!(DT).@% -XM[___A%S/O__VQM973'A=#[__]A/7Y[QX74^___6RH_),>% -XMV/O__V`G(ES&A=S[__\`C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0(`````(E$)`2)-"3HS.W_ -XM_X7`=`J[-0```.E>^/__@?M_H`@(="7'A% -XMT/O__W1H/3C&A=3[__\`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(`` -XM`'4&P>H0@\$"`-*[-@```(/9`RN-O/O__XU5Z,=$)`@`````B4W@B50D!(DT -XM).A`[?__A<`/A=CW__^!O;S[__^,H`@(="?'A%T/O__VQL/3%FQX74^___-@"-CH0@\$"`-*[.0```(/9`RN-O/O__XU%Z,=$)`@````` -XMB4W@B40D!(DT).BP[/__A<`/A4CW__^!O;S[__^:H`@(=!W'A")5"0$B30DZ"KL__^%P`^%PO;__XV%R/O__\=$)`Q@P0@(QT0D"*2@"`C' -XM1"0$``0``(D$).C0*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NSX```"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3HI^O__X7`#X4_]O__]H8@`@```0^$QP$``(N&&`(``(T$0,'@`@-& -XM$(M`.(/H`='HA<")1?!U!\=%\`$```"+1?#'1"0(K*`(",=$)`0`!```B40D -XM#(V%R/O__XD$).@<*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NS````"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3H\^K__X7`#X6+]?__BT80C57PB50D!(DT)/^08`@``+H!````A<`/ -XMA97U__^+1?`]6`(```^'U````,=%\`@```"+1?#'1"0(MZ`(",=$)`0`!``` -XMB40D#(V%R/O__XD$).AE*?__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("` -XM=.GWPH"```!U!L'J$(/!`@#2NTD```"#V0,KC;S[__^-5>C'1"0(`````(E- -XMX(E4)`2)-"3H/.K__X7`#X74]/__H6"C"`B%P`^$L`$``(GS,?^)^,'@!(F% -XMP/O__XN`:*,("(/X`0^$9`$```^"L0```(/X`@^$`@$``(/X`XVT)@````!T -XM,^C-)?__/;`$``"-="8`#X>\````QT7P$````(UV`.D5____BX88`@``@^@! -XMT>CI0/[__P^VDP`!``"#X@$/A(````"+@_@```"-!$#!X`(#1A"+0#B%P`^5 -XMP(3`=#Z$TG19BX/X````C01`P>`"`T80BT`XQT0D$`````")1"0,QT0D"`L` -XM``")?"0$B30DZ!KF__^%P`^%\O/__XN%P/O__X/##(N`<*,("(7`#X3$```` -XM@\O___S'2Z:3R__^+&^ES\O__ -XMC78`58GE5U93@^PLBQ5@HP@(BWT,A=(/A)L"``#'1?``````Z8(```"+3>2- -XM!$F+30B-!('V@``!```!#X1>`@``BX#X````C01`P>`"`T$0BT`XA<`/E<"$ -XMP`^$%@(``(E4)`C'1"0$PJ`("(D\).CR(/__H:`4"0B%P`^%<0$```^_1PS! -XMZ`:#X`&$P`^%=`$``(M-\(N1<*,("(/!$(E-\(72#X0-`@``BT7P]H!LHP@( -XM"'7=BTWPP?@$B47DBX%HHP@(@_@"#X1D`0``#X)4____@_@#=9N+5>2+30B- -XM!%*-!('V@``!```!#X2=`0``BX#X````C01`P>`"`T$0BT`XA<`/E,"$P`^% -XM8____XE\)`S'1"0(!````,=$)`0!````QP0DXJ`(".AU)O__BU7PBX)@HP@( -XM#[8PB?&$R0^$L`$```^^V8E%[.MTC78`H0@A"0CV1)@V`G1QH:`4"0B%P`^% -XM=P$``(M'"(/H`87`B4<(#XC4`@``BP?&`%R#P`&)!Z&@%`D(A(&(/``8D'BTWL#[9Q`8/!`8E-[(GPA,`/A#2-!$F+30B-!('V@``!```!=&B+ -XM@/@```"-!$#!X`(#01"+0#B)1"0,B50D",=$)`34H`@(B3PDZ/4>___I_OW_ -XM_XE4)`C'1"0$RJ`("(D\).C<'O__Z>7]__^+@/@```"%P`^4P.EJ_O__BX#X -XM````A<`/E<#IJ?W__XN`^````.NB@\0L,CK;8GVH0@A"0CV1)@V`G1KBPV@%`D(A+%:`4"0B%TG5)BT<(@^@!A<")1PAX2HL' -XMB!B#P`&)!XM5Z`^V<@&#P@&)5>B)\83)=%T/OMF%VW@(.1W\(`D(?XF)\8#Y -XM7'2.BQ6@%`D(A=)TMXE\)`2)'"3H)\#P*D'6JB7PD!(D< -XM).@6)/__ZZ6)?"0$QP0D7````.A$'O__Z7#___^AH!0)"(7`=6>+1PB#Z`&% -XMP(E'"`^(G@```(L'Q@`*@\`!B0?I)/S__SM'&`^-(_W__XE\)`3'!"1<```` -XMZ+TC___I&/W__SM'&`^-%O___XE\)`3'!"1<````Z)\C___I"____XN`^``` -XM`.FT_O__B7PD!,<$)`H```#HOQW__^G(^___B7PD!,<$)#T```#HJAW__^E? -XM_O__.T<8#XU,_O__B7PD!,<$)#T```#H3"/__^E!_O__B7PD!,<$)`H```#H -XM-R/__XUV`.E]^___D)"0D)"0D)"0D)!5B>6+112+50B+`(7`=!&!HJP$``#_ -XM_]__,6+10B#B*P$```@,Q=PXN1&`(``(U"_^O+C012P>`"`T$0 -XMBT`X@^@!Z\>-M"8`````C;PG`````%6)Y5.#["2+70B-5?B+0Q")5"0$B1PD -XM_Y!@"```N@$```"%P'4+,-*!??C`$@``=P^#Q"2)T%M=PXVT)@````"+112) -XM1"0,BT40B40D"(M%#(D<)(E$)`3H$____X/$)%M=B<*)T,.)]HV\)P````!5 -XMB>53@^PDBUT(C57XBT,0B50D!(D<)/^08`@``+H!````A6#[!B+112+"(7)=2N+10C'1"00`````,=$ -XM)`P`````QT0D"`````#'1"0$0P```(D$).CFW/__R3'`PXGV58GE@^P8BT40 -XMB00DZ`,B__\QTJ@!=""+10C'1"0(F*D(",=$)`0#````B00DZ![*__^Z`0`` -XM`,F)T,.0C70F`%6)Y8/L&(M%$(D$).C#(?__,=*H`70@BT4(QT0D"-"I"`C' -XM1"0$`P```(D$).C>R?__N@$```#)B=##D(UT)@!5B>6#[!B+10C'1"0(#*H( -XM",=$)`0#````B00DZ*_)__\QP,G#C70F`(V\)P````!5B>6#["B)=?B+=12) -XM7?2+70B)??R+!H7`#X01`0``/?0!``!V,L=$)`ST`0``QT0D"&"J"`C'1"0$ -XM`P```(D<).A:R?__N`$```"+7?2+=?B+??R)[%W#B40D$,=$)`P`````QT0D -XM"`````#'1"0$&````(D<).BTV___BP:#^`$/A/D```"#Z`'1Z(F#A`````^V -XM@VP$``"#X`&)QP^%O````(N+9`0``(N#:`0``(G*.<$/A%L!``")^(3`=`R- -XM!%+!X`(#0Q"+4#B+!CG"#X8:`0``@^@!B40D$,=$)`P`````QT0D"`````#' -XM1"0$20```(D<).@SV___BP:#Z`&)1"00QT0D#`````#'1"0(`0```,=$)`1) -XM````B1PDZ`K;__\QP.D>____C78`QT0D#`$```#'1"0(-*H(",=$)`0#```` -XMB1PDZ%#(__^X`0```.GQ_O__C;8`````BY-D!```C012P>`"`T,0BT@XBT`\ -XMZ3C___^-M@`````/MH-L!```QX.$`````0```(/@`8G'=%^+DV0$``"-!%+! -XMX`(#0Q"+2#B+0#PYP70*B?B$P'50.Q9V-<=$)!`!````QT0D#`````#'1"0( -XM`````,=$)`1)````B1PDZ$W:___'1"00`0```.D6____,<#I5/[__XN+9`0` -XM`(N#:`0``(G*ZZ:-!%+!X`(#0Q"+4#CKHHL&Z;K^__^-="8`58GE@^P8BT44 -XMBP"#^!-V0#'2/?0!``!W!\F)T,.-=@#'1"0,]`$``,=$)`BXJ@@(QT0D!`,` -XM``"+10B)!"3H/53@^P$BUT( -XMB1PDZ*Z$__\QP(.+K`0``""#Q`1;76#[`B+ -XM11")1"0$BT4(B00DZ!C,__\QP,G#D)"0D%6)Y5=64X/L3(MU#(M]"(7V#X3I -XM`@``BU44BUX(@SH!#X1B`P``]D88`0^$G0```(M%'(7`=6*+312+`8/H`8M5 -XM&(/&"(E%\(/``3GSB0)U$.M-@T7P`8-'7`&+&SGS=#^+0Q")1"00BT,(B40D -XM#(M%\,=$)`0!````B3PDB40D".C*F/__A2)1"0,QT0D"`$```")5"0$B3PDZ`F1 -XM__^%P'6/A?\/A/,"``"+5Q"%THE5T`^$Y0(``/:"50@```$/A=@"``"+1>B+ -XM3=`#0Q"#P`$[07@/A[T#``"+3="+5="+272)3R!BE0(`````0`` -XMB4W4BT7HA`[`P^$\`(``(M5\(M#$(E$)!"+0PB)5"0( -XMQT0D!`$```")/"2)1"0,Z(66__^%P'3"NP$```"%_W03BT<0A#X1\ -XM`@``BT,0B40D$(M#"(E$)`R+1?#'1"0$`0```(D\)(E$)`CH8Y7__X7`=,7I -XME/S__XM%Z,=%[``````#0Q#'1<@`````QT74`````(/``0^$./W__XE$)`R- -XM1>R)1"0(QT0D!`````")/"3HNS8``(7`B47(B474#X4/_?__Z4+\__^!IE0( -XM``#__O__BU7`BT7$`T(0.T9X=V:+3G2)3R!CE0(`````0``B4W4 -XMZ:#]__\QP(-[$``/E<#I-_W__P^VA)`T!```Z9;^__^)1"0,C47LB40D"(M- -XMR(D\)(E,)`3H/38``(7`#X3/^___B47(B474Z5C]__^)1"0,C49XB40D"(M& -XM=(D\)(E$)`3H$#8``(7`#X2B^___B49TZ7#___^)1"0,B2)1"0$BT7(B00DZ,,6__^+5=B+3<@!5>0! -XMT8E-S.DS^___BTT8,=O'`0$```#'000`````Z33Z__^!H%0(``#__O__Z27Z -XM___'1"0$_P```(D\).C&>___Z>/\__^+5<2)5"0(BT7DB40D!(M-S(D,).A< -XM%O__BT7$`47,BU7PZ3/___^0D)"0D)"0D)"058GEBT4(5U93BT@0BU$(C7D( -XM.?IT"CG0=3N+$CG7=4"+41"-<1`Y\G1`BQHYWG1,BT($B4,$BT($.<9T.HD8 -XMBT$(B7H$B0(Y>0QT)HM!"(E0!(E1"%N)T%Y?7<.-="8`.=!U\3G0=/CKZS'2 -XMC70F`.OCB5$,Z]N)61#KPXM"!(E!%(L:Z["-=@"-O"<`````58GE5S'_5E.# -XM[`R+=0B+1@R#Z`&%P(E&#`^%'`$``(L6A=)T)(M>$(U#"#G"#X1&`0``BT8$ -XMB4($BTX$C4,(.<$/A$L!``")$8.FK`0``/._`0```(DT).B3P`$`B30DBN?C8;(````B00DZ.<3__^+AN`` -XM``"%P'6:ZZ"+1@2)0PR+7A"+3@2+%HU#"#G!#X6U_O__B5,(Z:_^__^-M@`` -XM``!5B>575E.#[`R+11"+=0B+?0S'``````#'1"0$L`0``,<$)`$```#H.!+_ -XM_X7`B<,/A%0"``"+11")&(M&!(/``87_B48$B4,(C4-XQT,,`0```(ES$,=# -XM+`(```")0WB)0WP/A.1H````@8NL!````(```(B#J````(N7P````#'` -XM@[^L``````^5P(72B8.L````="2+A\0```")5"0$B1PDB40D".C$+P``A<") -XM@\`````/A$8!``"+E]@```"+A\0```"%THF#Q````'0DBX?<````B50D!(D< -XM)(E$)`CHBB\``(7`B8/8````#X0,`0``BY?@````BX?<````A=*)@]P```!T -XM)(N'Y````(E4)`2)'"2)1"0(Z%`O``"%P(F#X`````^$T@```(N'Y````(F# -XMY````(N'[````(7`=$V--(4`````B30DZ&$2__^%P(F#Z````'1XBX?L```` -XMBY/H````B8/L````BX?P````B8/P````BX?H````B70D"(D4)(E$)`3H4Q+_ -XM_XE<)`2)/"3H0\___X7`=1^+AZP$``")7"0$B3PD@^`#"8.L!```Z(36``"% -XMP'1ZB1PDZ&C\__^X`0```(/$#%M>7UW#QT0D"`````#'1"0$!0```(D<).A3 -XMN___BY/H````A=(/A6+___^0C70F`,=$)`@`````QT0D!`4```")/"3H*+O_ -XM_^NFC;8`````QX.L`````````(E<)`2)/"3H"M8``(7`=8:)7"0$B3PDZ%J] -XM`0"%P`^%`/MDL!.,@/A`0!``"#[@$/A"`"```/OM`XP8E5V(M5X(G3=%*+5>") -XMT^LCC70F``^V"H/"`8@+@\,!@^X!#X35`0``#[8*#[[!.T78="B#_@%VW(#Y -XM7'77C4(!B47<#[9*`0^^P3M%V`^$2P$```^V"HM5W.N_B=Z#P@$K=>"+10R% -XMP'0%BT4,B1"+7>")]HM%$`^V51"+31")="0(@^`0@_@!&<"#XH"#X`2#P`*` -XM^@$9TH/A`??2"N!```0'59 -XMBT40QT0D$`````#'1"0,`````(/@$(/X`1G`@^`$@\`"B40D&(V'L````(E$ -XM)!2+A\0```")5"0$B3PDB40D".BT(`$`A7UW#C;0F`````(/$/#'`6UY?7<.#[@&# -XMP@+I*W7@Z5S^__^)^+("Z-3\__^X`0```.G3_O__BU7@Z4'^__^)]E6Z`@`` -XM`(GE5U93@^QLBT4@BW4(B40D"(M%'(E$)`2+11B)!"2+312)\.A1_?__A<`/ -XMA>````#V12`(#X3E````BU4,BP*)1>R+2@2#P0&)3<2+12"[9````#'_QT7` -XM`0```(/@$(E%K.M8D(UT)@"+AI0$``"-!$#!X`(#1A"+0#B%P`^4P(3`#X4N -XM`P``C47LB40D!(DT).BBA/__A<`/A<\"``"+1>R%P'1@@\`!OP$```")1>R# -XM;>P!QT7$`````(/K`8/[_P^$D0$``(7_=`Z+50R+`CM%[`^'OP(``(M5[(72 -XM=6B%_P^%L`(``/:&G`0```$/A7/___^+AI0$``"%P`^4P.EZ____]D4@$`^% -XMW@(``+L!````@\1LB=A;7E]=PXM5#(MZ!(7_#X6I`0``BQ*#^@$/A-`"``"- -XM0O^)1>SIFP$``(VV`````(U-Z(U%Y(E,)!")1"0,QT0D"`````")5"0$B30D -XMZ(Z!__^%P`^%^P$``(M%Z(V6L````(U-U,=%U`````#'1=@`````B47 -XM`0``BTW$QT6T`````(E-L(M%U(M5V(M-Z(E%R(/``8E5S(/2`#';@_H`B474 -XMB578#X[)````BT7LBTT0BU7(B0'V12`"#X7#`0``BT7H.<(/@K@!``"#^`&- -XM4/\9P/?0,=LAPHE1!.D:`0``BT80]H!4"```!`^%!0$``,=$)`P!````QT0D -XM"`````#'1"0$`````(DT).CP>/__A")1"00B50D#,=$)`@!````BT7DB40D!(M-O(D,).B2 -XM!___@_@!#X3O_O__A<`/A10!``"+1<2%P`^$MO[__X-]V``/C*S^__\/C\S^ -XM__^+3;`Y3=0/@IK^__^-M@````#IM?[__[L!````]D4@$(GV#X26_?__B30D -XMQT0D!`(```#H^OC__X/$;(G86UY?7575E.#[$R+12")1"0(BT4R)1"0,QT0D"`````")="0$BU4(B10DZ+E]__^%P`^$ -XM-0$``(M%T(7`#X7!````BTT(]H&R-??")?"00B50D#,=$)`@!````BTT,BP&)1"0$BT4(B00D -XMZ*)\__^%P'7#BU4,]D4@"(LR#X0=`0``BUH$A=L/A&K^__^#ZP'I8O[__XM5 -XM\(72=`2!P;````")3@`````B5W< -XMQT7@`````(E$)!"-1=R)1"0,QT0D"`$```"+1>R)#"2)1"0$Z.@#__^#^`%U -XM?8/&`3';Z:S^__^0C70F`(M%"(N`E`0``(7`#Y3`A,`/A(/^___V12`0#X05 -XM____BT4(N@$```#HH_7__^L-BT4(N@,```#HE/7__[L!````QT0D!`(```"+ -XM10B)!"3H3/7__X/$3(G86UY?7<.[`0```/9%(!!UV.G,_O__A<`/A+L```#V -XM12`0C;8`````#X3^````BU7(B40D!(E4)`B+30B)#"3HI!BT4,BU@$ -XM@\,!.UWP#X)&_?__@\8!,=N-5>R)?"00B50D#,=$)`@`````B70D!(M-"(D, -XM).@Y>___A<`/A!?]__^+10CV@)P$```!#X2N````B<*+@)0$``"-!$#!X`(# -XM0A"+2#B%R0^4P(3`#X3?_/__]D4@$`^$&_[__XM%"+H!````NP$```#HI/3_ -XM_^D)_O__BT70AP/A)\!``"+ -XM1>R+50PY4`AUY?9`)`%UWXMP&+L&````BW@4A?9^>##;ZS.-="8`BU4(#[;` -XMC01`C80`4`$```-"$(/`"(M5"(E$)`2)%"3H6]X```'#@^X!=!^#QP$/M@<\ -XM_W7*BT4(QT0D!/\```")!"3HIVG__^O+B=BZJZJJ*O?JB=C!^!\IPHT44@'2 -XM*=J-6@:%VWX@C;0F`````(M5",=$)`32U`@(B10DZ/W=```IPX7;?^>+1>R+ -XMR+$H72 -XMB57L#X5A_O__BT7P@\0<6UY?7<.+50@/ML"-!$"-A`!0`0```T(0@\`(BU4( -XMB40D!(D4).C9W```@^L!=*2#Q@$/M@8\_W7,BT4(QT0D!/\```")!"3H)VC_ -XM_^O-D(UT)@!5B>564X/L$(MU"(N>1`$``(7;=%"+0PR%P'0(B00DZ"`#__^+ -XM0Q2%P'0(B00DZ!$#__^+0QR%P'0(B00DZ`(#__^+$X72=`:+0P2)0@2+0P2) -XM$(D<).CI`O__BYY$`0``A=MUL(/$$%M>7<.-="8`58GE4X/L!(M="(L3A=)T -XM!HM#!(E"!(M#!(D0BT,,A(```"+ -XM31"+4Q0/MD$,.`(/A]````!R"(M]'#E["'1?BP.)7?"%P`^$T````(G#BT40 -XMA?````+31PY2PAUS_9#)`%UR8M+&(M%&#G( -XM=@*)R(M]%#G`B<'\\Z8/DL`/E\(HP@^^PNLHD(UT)@#V0R0!=9N+2QB+11@Y -XMR'=JB40D"(M%$(D4)(E$)`3HW?O__X/X`'\_#XQS____BU48.U,8D%_O__D(UT -XM)@#)N`$```##B?:-O"<`````58GE@^PXBT4DB77XBU44BW48B5WTB40D%(U% -XM\(E$)`2+10B)??R+?2#'1"08`````(ET)!")5"0,QT0D"`````")!"3H!_[_ -XM_X7`B<-T9?9%*`)U6XM%'(7`=$J%_XGV=$2+51R+10B)?"0(B50D!(D$).AH -XM'```A<")Q@^$I0$``(M#'(7`=`B)!"3H,P#__XE[(#'`B7,Q=PS'_,?;KUHUT)@`QP.OEQT0D!"@```#'!"0!````Z-S]_O^%P(G##X0Z -XM`0``BT4,A____QT,,`````(M5$(E3$(M%%(M5"(ET)`B)1"0$ -XMB10DZ((;``"%P(E#%`^$!`$``(ES&(M%'(7`#X2*````BT4____Z$+[_O^+,(M##(7`#X2(_O__B00DZ#W^_O_I>_[__XUT)@#H -XM'_O^_XLPBT,4B00DZ"+^_O_KT(VV`````(V_`````%6)Y5=64X/L'(M5"(MU -XM#(M"$(N`1`$``(7`B47D=17I3@(``(M%Y(L`A<")1>0/A#X"``"+1>2+510Y -XM4`AUY?9`)`ATWXM%$(7`=`^+11")="0$B00DZ)GW_O^+5>2+1>2+4A2)5>"+ -XM0!B%P(E%Z'5DZ<8```"#^WQT<#L=_"`)"'T,H0@A"0CV1)@V`G5%R+!HGZB!"#P`&)!H-MZ`%T9XM5X`^V.H/"`8E5X(GX#[;8@_L6=8NAH!0) -XM"(7`#X6(`0``BT8(@^@!A<")1@@/B#<"``"+!L8`%H/``8D&BT8(@^@!A<") -XM1@AYI#M&&'P%@/L*=9J)="0$B1PDZ.[[_O^#;>@!=9FAH!0)"(7`#X5(`@`` -XMBT8(@^@!A<")1@@/B$P"``"+!L8`((/``8D&BT7DBT`P/A,0```"+ -XM5>2+4B"%THE5\'50Z;(```"#^WQT7(#"`9`/A'L!``"+50B+0A"`O`-3!P`` -XM#'1"BPV@%`D(A+1>P/MCB#P`&)1>R)^@^VVH/[%G6?H:`4"0B%P`^%ZP```(M&"(/H`87` -XMB48(#XA8`0``BP;&`!:#P`&)!HM&"(/H`87`B48(>:0[1AA\!8#["G6:B70D -XM!(D<).CQ^O[_@VWP`769BQ6@%`D(A=(/A34!``"+1@B#Z`&%P(E&"`^(;`$` -XM`(L&Q@`*@\`!B0:+1>2+`(7`B47D#X7"_?__@\0<,% -XM://__P````#'A7#S__\`````QX5X\___`````(F%@//__\>%?//________' -XMA8SS__\`````QX60\___`````(F58//__XN%9//__XD$).C3^/[_A<`/A!0! -XM``"-6`B_<:P("/RY"````(G>\Z9UUHE<)!"+A8CS__^-E93S__^)%"3'1"0( -XMN90(",=$)`0`!```B40D#.@[]O[_C864\___QT0D"`````#'1"0$`@```(D$ -XM).@]]_[_@_C_B85L\___=(''1"00`0```(E$)`S'1"0(`````,=$)`0````` -XMBU4(B10DZ!//__P%^&\=$)`CXK0@(QT0D!`0```"+10B)!"3H>:#__XN5>//__SF5 -XM%=//__P$```#I;?[__XN5C//__XD4).BA -XM]O[_BX60\___B00DZ)/V_O^+E7SS__^)%"3H!?3^_X'$K`P``+H!````6XG0 -XM7E]=PXV5E/O__\=$)`0*````B10DZ+WQ_O^%P(F%A//__P^$0/[__XN-;//_ -XM_XV%E/?__[H`!```B85<\___Z/_[__^%P`^$'/[__XNU7//__[\TK`@(N1,` -XM``#\\Z8/A0/^__^-E93W___'1"0$"@```(D4).A<\?[_A<`/A.7]___&``"+ -XMA83S__^-=93&``"#A7#S__\!Z,GR_O_'``````"-A:?W__^)="0$B00DZ!'R -XM_O^%P'0/Z*CR_O^#.`*0#X1(`0``BY6`\___C86G^___B00DB50D!.CF\O[_ -XMA<`/A:3]__^#A7CS__\!B70D!(N%;//__XD$).BE]O[_BX6,\___A[_[_Z6_\ -XM___'1"0(`````,=$)`0%````BU4(B10DZ"J=___I3_S__\=$)`@`````QT0D -XM!`4```"+50B)%"3H"IW__XD<).@6]/[_Z2?\__^-M@````"-O"<`````58GE -XM5U93@>R,"```QT0D"`````#'1"0$*P```(M%"(D$).C)I?__N@$```"%P`^% -XM<@(``(M5"/:"!`,```$/A6\"``"+?0B+M_P"``")-"3HC^S^_X7`#X5X`@`` -XMQP0D0?$(".@+\/[_A<")A8CW__\/A%X"``"-A93[__^-E93W___'A8SW__\` -XM````B86$]___B96`]___C;0F`````(N5B/?__XD4).@V\_[_A<`/A,H!``"- -XM6`B_<:P("/RY"````(G>\Z9UUL=$)`13K`@(B1PDZ"KQ_O^%P(F%?/?__W2\ -XMBQ6@%`D(A=(/A5D"```/OT`.QT0D$`$```")1"0,QT0D"`````#'1"0$```` -XM`(M5"(D4).BC,___@_@"#X02`@``BX5\]___C964^___QT0D!``$``")%"2) -XM1"0(Z*[M_O^%P`^$N`$``(NUA/?__[@@K`@(N1,```#\B0$``(N5?/?__XV]E/?_ -XM_\=$)`0`!```B3PDB50D".A'[?[_A<`/A%$!``"+M8#W__^X-*P("+D3```` -XM_(G'\Z8/A38!``"-A93W___'1"0$"@```(D$).A^[?[_A<`/A!@!``#&``"+ -XMO9#W__^-=93&!P#H\N[^_\<``````(V%I_?__XET)`2)!"3H.N[^_X7`#X4\ -XM`0``H:`4"0B%P`^%1P$``(N5?/?__P^_0@Z)="0$B00DZ._R_O^-1;2)!"3H -XM!.W^_XV5I_O__XE4)`C'!"16K`@(B40D!.CZ[O[_QX6,]___`0```.FL```` -XMC;0F`````(N%C/?__X7`=0S'!"1AK`@(Z)[I_O^+O8CW__^)/"3H0/+^_S'2 -XM@<2,"```B=!;7E]=PXN"_`(``(T$0,'@`@-"$(MP.(DT).@7ZO[_A<`/A(C] -XM__^)="0(QT0D#$BL"`C'1"0$!0```(M]"(D\).@,G___@<2,"```N@$```!; -XMB=!>7UW#QT0D#&BN"`B)7"0(QT0D!`,```"+50B)%"3HVY[__XN%?/?__XD$ -XM).C!\/[_Z6C]__^+O7SW__^)/"3HKO#^_^E5_?__BX5\]___B00DZ*OO_O_I -XMF/W__^B1[?[_@S@"#X6V_O__B1PDZ-#K_O_KKXN]?/?__XD\).B`[_[_Z;#^ -XM__^-M"8`````58GE@>RH"```B77\B<:-19B)7?B)TXE$)`3'!"1ZK`@(Z)[L -XM_O^%P'0JB30DQT0D#(VL"`C'1"0(>JP(",=$)`0%````Z":>__^+7?B+=?R) -XM[%W#B5PD$(V=A/?__XD<),=$)`QZK`@(QT0D"*>L"`C'1"0$%`@``.B&[?[_ -XMB1PDZ%[K_O^+7?B+=?R)[%W#58GE@^PHB10DB5WTB=.)=?B)??R)SXE%\.AF -XM[O[_@_C_B<9T'P^W10B)'"2)1"0$Z&_O_O^)\(M=](MU^(M]_(GL7<.+1?#' -XM1"0,GZT("(E\)`C'1"0$!0```(D$).A]G?__Z]"-="8`C;PG`````%6)Y5>) -XMQU93BK^_[@!````@<1\%0``6UY? -XM7<.+A_P"``"-!$#!X`(#1Q"+<#CI-?[__XVV`````('$?!4``+@!````6UY? -XM7<.+E=3J__^+A7UW#BX7,ZO__BY70ZO__BQB-1?"+,HD$).B5Y_[_ -XMBY78ZO__QT0D1`:M"`B)7"1`QT0D/`NM"`B)5"1(C97P_O__B5PD.,=$)#08 -XMKP@(QT0D,$"O"`C'1"0L=*\("(E4)"C'1"0D$*T("(N5V.K__XE$)!"-A?#J -XM___'1"0<(:T("(ET)!B)5"0@QT0D%#RM"`C'1"0,2*T(",=$)`B8KP@(QT0D -XM!``0``")!"3H0>G^_SW_#P``B87@ZO__#X<+_O__A<"-M?#J__]U0>FN```` -XMQ@(*@\(!B=,I\XF5W.K__XE<)`B)="0$BY74ZO__B10DZ/OC_O\YPP^%G_[_ -XM_RF=X.K__XNUW.K__W1RBX7@ZO__@_@\C50P_W:UQT0D!`H```")-"3HEN;^ -XM_XG"*?"#^#Q^G#GR=IB)T.L(D(/J`3GR=A:`.B!U](G0*?"#^#P/CGK___^) -XMT.OCB<+I;____\=$)`@`````QT0D!`4```")/"3HU)/__^E%_O__BYW$ZO__ -XMA=MU!S'`Z7;]__^-E?#Z__^)^.A1^O__BX74ZO__B00DZ#?H_O^%P`^%Z_W_ -XM_S'`Z4S]__^-="8`58GE@>PH)```B7W\BWT(B5WTB77XBU\Q= -XMPY`Q]NOLBT,$QT0D!`L```")!"3_4!B%P`^%Y0$``/9%#`1T!(!+6"#V10P! -XM=*N+4U")^.BI^?__ZY^-M"8`````QT0D"`````#'1"0$*P```(D\).CHF___ -XMA<`/A9`!``#VAP0#```!#X7"`0``B[?\`@``C87T^___B70D#,=$)`AYK0@( -XMQT0D!``$``")!"3H3^?^_XGQB?B-E?3[___'!"2``0``Z,7Y__^)A>C;__^# -XMP`$/A#8!``"+1Q#'1"0(`0```,=$)`3DKP@(B3PD_Y!H"```BUM,QT0D"``` -XM``#'1"0$`````(F=[-O__XD<).@-Z/[_B87PV___@\`!=%>-A?3;__^)1"0$ -XMBX7PV___QT0D"``@``")!"3H(NK^_X/X`(G##XX9`0``,?;K!BG#=,T!QHV% -XM]-O__P'PB40D!(N%Z-O__XE<)`B)!"3HC^'^_X7`>=B+A>S;___'1"0,GZT( -XM",=$)`0%````B3PDB40D".C5EO__C87T^___O@$```")!"3H!N3^_XN%Z-O_ -XM_XD$).@XYO[_BT<0QT0D"`(```#'1"0$`````(D\)/^0:`@``.DC_O__C78` -XMQT0D"`$```#'1"0$`````(D\).@X//__A<`/A!#^__^^`0```.D&_O__C;8` -XM````]D4,`KX!````#X3Q_?__D.N^@&-8G[X!````QT0D#%ZM"`B+0TS'1"0$ -XM!0```(D\)(E$)`CH)I;__^G!_?__BX?\`@``C01`P>`"`T<0BW`XZ2W^__\/ -XMA0W___^+A>C;__^)!"3H>N7^_X7`#X49____C8WT^___N@$```")^#'VZ&KX -XM__^%P`^$'O___^GX_O__C;8`````C;PG`````%4QR8GE@^PHB77\BW4(B5WX -XMBUX<#[936(G0@^#]J$"(0UAT)HM#4(/BO8A36(7`="7'1"0$@`$``(M#3(D$ -XM).A`Y_[_,Q\!``` -XMBW4(QT0D"`````#'1"0$*P```(DT).A)F/__A'^__^058GE4X/L%(M=".BUX?[_QP``````BT44B40D"(M% -XM$(E$)`2+10R)!"3HAN'^_XD#Z(_A_O^Z`0```(L`A'^_\<``````(M%%(E$)`B+11")1"0$BT4,B00DZ/;?_O^)`^@?X?[_ -XMN@$```"+"(7)=0B#Q!2)T%M=P^@'X?[_@S@B=`Z#Q!0QTEN)T%W#C70F`(,[ -XM_[H"````=>B#Q!2)T%M=PXVT)@````"-O"<`````58GE@^P8B77\BW40B5WX -XMC48!B00DZ"KC_O^%P'0EB<.+10R)="0(B1PDB40D!.A!X_[_Q@0S`(G8BW7\ -XMBUWXB>Q=PXM%"#';QT0D"`````#'1"0$!0```(D$).APC/__Z]6-M"8````` -XMC;PG`````%6)Y5.#[!2+70C'1"0$+P```(D<).@ZW_[_A7UW# -XMBT7LAQT*0^V`SP@=.8\"73BB0^#Q"PQP%M>7UW# -XMC;8`````@\0L,6#[!B+ -XM112)7?2+70R)??R+?1")=?B%P'54/0`!``"+%W)8A=N--`)T78D<)(ET)`3H -XMS-S^_XG#A=MT5XL'B?+'1"0$`````"G"`=B)5"0(B00DZ*K>_O^)-XG8BW7X -XMBUWTBWW\B>Q=PY"-="8`BQ53@^PDBT44BUT(@_@"=&Z#^`-T287`=27'1"0(`````,=$)`0% -XM````B1PDZ&V*__^#Q"1;7<.-M"8`````BTL)___I-?___^A1V_[_C47XB40D -XM!(D<).A^5___A<`/A1G___^+1?B%P`^$>?___XE$)`S'1"0(`+((",=$)`0# -XM````B1PDZ%^)___I[?[__XM5##'`A=)T!8M5#(L"QT0D"`0```")1"0$B1PD -XMZ%A4`0#IQO[__XUV`%6)Y5=64X/L#(L]P,P("(E%\(E5[(7_=$( -XM1>NXP,P("#A5ZWT6ZS*)]HM[&(7_="D/MA>-0Q@X5>M\'CA5ZXG#=>>+3>R+ -XM=?#\.Q`/MC>-1MP\.`^&)@$``(M# -XM%(7`#X01`0``BTL0#[8QB?`/OM"%TGA#.17\(`D(?R_K.8M#%(U1`8E3$(/H -XM`87`B4,4#X3A````#[8RB=&)\`^^T(72>!0[%?P@"0A]#*$((0D(]D20-@)U -XMQX/Z?P^'R@```/8$E=T4"0@$#X2\````BTT(BS&%]G47QP$!````BU7=='I)/___X-K%`&ZT)D%"(E+$(`Y+W0%NC"5!0B+3=R+ -XM04R+3=B)`8M-W(M!4(M-V(E!!(N#@````"4````!@_@!&<`PP`5P`0``B40D -XM&(U%[(E$)!2+0Q2)1"00BT,0B4PD"(E,)`2)1"0,BT7Q0!#X:R````BU,0#[Y"`8/X?P^'H@```/8$A=T4 -XM"0@$#X24````Q@(KZ7?]__^+50C'`@$```"!BX````````0`@WL4`0^$,@,` -XM`,=$)`P#````BU78B50D"(M#$`^^0`&)1"0$BTWS'`@$` -XM``"!BX````````0`QT0D#`H```")1"0(BT,0B40D!(U%\(D$).CN]O__@_@! -XM#X6L````BT7PBU78B0+'0@0`````BU7LB=`K0Q`I0Q2)4Q#I?_S__[K0F04( -XMZ=O]__^#^G\/AZ0```#V!)7=%`D(!`^$E@```(#Y+0^$'0$``#'_@/E>#X02 -XM`0``C47LC57PQT0D#`H```")1"0(B70D!(D4).AP]O__@_@!=3*#?>``#XR@ -XM````D`^.L````(M5\(72D(UT)@!^$+C___]_*T7@.=`/@Y0```"X`@```(E$ -XM)`S'1"0(`P```,=$)`0`````BTW`%%X(-#$`&-1_^)0Q3I(OS__XM5\(72>1"X````@"M%X#G" -XM#XT!`0``A?]T1HM%\/?8BU7L`47@B=`K0Q`I0Q2)4Q#I[/O___8$E=T4"0@$ -XM=(WIVO[__X-K%`&_`0```(U&`8G&B4,0Z=C^__^-M@````"+1?#KNK@!```` -XMZX&+3=B+1>"+$??8.=`/A@_\___'1"0(C+((",=$)`0#````BT7" -XM__^+50S'`@$```#I\?O__X/$/+@!````6UY?7<.+>Q`/MC?'!"0*L0@(B?(/ -XMOL*)1"0$Z"75_O^%P`^$FOK__\=$)`P!````QT0D"`$```#'1"0$`````(M- -XMW(D,).CF]___BT4,QP`!````,<#ID/O__X-#$`*#:Q0"Z67Z__^X`P```.EF -XM_O__QT0D#`(```#'1"0(`P```,=$)`0`````BT7575KX"````4X/L+(M=#(M%$(M]",<``````,=#8``` -XM``"+0Q2%P'1_BTL0#[81C4+W/#(/AJ0```"+11"-3>B)VHE$)`2-1?")!"2) -XM^.@K^?__A<`/A4<"``"+11"+`(7`=6J+1?"%P'0]A?8/A#D"``"+0V"#^`$/ -XMA)H!``"#^`(/A'(!```Q]H7`=92+1>B+5>S'0V`!````B4-DBT,4B5-HAG<_O__]H.#````!`^%>____XM7'(72#X01 -XM`0``A?8/A$8!``"-0VR)1"0$B3PDZ$E.__^%P`^%)0$``#'`@WML`,=#<``` -XM``#'0V@`````#Y7`,?:#0Q`!@VL4`8E#9,=#8`(```#I=?[__Y"+0V"#^`%T -XM?8/X`@^$D@```(7`#X5M____C;0F`````.BOT?[_BU-LBT-PB5-DB4-HBT=, -XMB4-LBT=0QT-@`@```(E#<`^V$>DU____BU-L,?:+0W")4V2)0VB+1>B+5>R) -XM0VR)4W#I"?[__XM%Z#'VBU7LQT-@`@```(E#;(E3<.GO_?__BT-DO@$```") -XM1TR+0VB)1U"#0Q`!@VL4`>G1_?__BT-LO@$```")1TR+0W")1U"#0Q`!@VL4 -XM`>FS_?__QT0D#`$```#'1"0(`0```(D\),=$)`0`````Z)_T__^+11#'``$` -XM``"#Q"PQP%M>7UW#N`$```#I)/[__\=$)`P!````QT0D"`````#KP8M#8(/X -XM`71<@_@"=$N%P)`/A>G]__^+1TR)0V2+1U#'0V`!````B4-H,<#IXOW__\=$ -XM)`BXL@@(QT0D!`,```")/"3HR'[__XM%$,<``0```#'`Z;K]__^+4VR+0W") -XM4V2)0VB+1TR)0VR+1U#'0V`"````B4-PZ8C]__^-="8`58GE5U93@>R,```` -XMBT4(BU4(BTT(BT`0@\%,B464BY*8````B560BUA\B4V$BT,(A%"+1:`[!?P@"0A]1:$((0D(BU6@]D20 -XM-@)T-KX!````BTL4@T,0`8/I`87)B4L4=#&+0Q`/M@`/OM`\"HE5H'6YBTV4 -XM@X$(`0```8-##`'KSX7)=`J#?:`Z#X0[`0``BTL4A0`````Z?$%``"0BTL4@^D!A2)3"0(B5PD!(DT).C)^?__A<`/A5H%``"+5>2%T@^%D0X` -XM`(M#%(7`=$*+>Q`/MA!0[!?P@"0A]#*$((0D(]D2P-@)U -XM"8#Z.@^%Y@,``(U'`8E#$(M#%(/H`87`B4,4=;['0R!0T`@(BW60BT8H"8.` -XM````BT-@A`P`` -XMQT6L`0```.G2`P``H0@A"0B+?:#V1+@V`@^$UOW__XM+%(U"`8E#$(/I`87) -XMB4L4#X0__/__B<(/O@"%P(E%H`^(K_W__SL%_"`)"'R^Z:+]__^)]HM#%(/H -XM`87`B4,4#X2Z`0``BU,0C4(!B4,0@'H!"G7@@8N```````"``(-#$`&#:Q0! -XMBTV4BUE\Z=#Z__^+182+50B)1"0$B10DZ!%'__^%P`^%X@(``(M-",=!4``` -XM``"+@X`````E__^__XF#@````.G#^O__BU9(BT9,B580C0P"B10DB40D"(E, -XM)`3H@<_^_XM&3(E&%(M'"(M5"(E"3(E&1(/``8E'"`^V1E"H#`^$>_S__XM% -XM"(&(K`0``````@"+592+6GR+2Q2%R0^%./K__^EI_/__C;8`````BW,4A?:) -XM\0^$>P(``(M]C`^V%X#Z(0^$EA0```^^\H7V>!0Y-?P@"0A^#*$((0D(]D2P -XM-@)U38#Z*P^$G!0``(MS%,=%G`````#'19@`````QT6P`````.E<_O__#[X7 -XMA=(/B.$1```[%?P@"0@/C=41``"A""$)"/9$D#8"#X3%$0``BWL0C4'_B4,4 -XMB<&#QP&%P(E[$'7$,?:+>Q")\,=%K`````#'19@`````QT6<`````,=%L``` -XM``#IZ`$``(M3(.DE_?__@:.`````___^_^GR_/__BTT(B[F0`@``A?\/E<#I -XMQ_S__XM#$(`X"@^$2?[__XMUE(M>?.DK^?__BT4(]H"L!````@^%-OK__XN3 -XM@````/;&"`^$I?O__^DB^O__@/I\#X0D_/__@/H*#X0;_/__BT6@QP0D5;$( -XM"(E$)`3HN-2KN`^1\/ -XMABP4```Q]HM5J(GXZ.'M__^%P(E#(`^$0QP``(M3(('Z.-,("(G1#X2.&P`` -XMA?8/A#$6```/MT$(]L0!#X4K%@``@?E0T`@(#X06%@``@?F8T`@(#X0*%@`` -XM#[8/#[[1A=)X%#L5_"`)"'T,H0@A"0B+E)`T"```B!?I_1L``(UV`(M#2(D$ -XM).BIS?[_BQ.%TG0&BT,$B4($BT,$B1")'"3HD,W^_XM>?#E=P`^%7@H``,=# -XM%`````"+50C'1"0$`@```(D4).CV-/__A7UW#BWV,,<#'19P`````QT6L`````,=%F`````#'1;`````` -XMA<`/A'0@``")^.L\B?*`^A9T9(-]H`H/A,4```"#?:!\#X2[````#[9-H(@/ -XMBT,0@VL4`8M3%(/``8E#$(72#X2\````@\Q0!=I:+0Q`/OD`!@_@* -XMB47D=6J+=92#A@@!```!@T,,`8-%G`&#:Q0!@T,0`8M%Y(E%H.EV____BU4( -XMBT(0@+A2!P``_P^%3____XM-H(D4)(E,)`3HY#7__X/X$G2?@WV@"@^%.___ -XM_XGR@/H*#X1#$```@VL4`8MS%.L-@_A\#X4H____ZYDQ]HM#$(M3&(ES'(/` -XM`8E#&"G0B5,0*T6<@^@!@7L@H-$("(E#%`^$L0X``(N#@````(G"@^(/@_H" -XM#X0<#@``#X?`````@^H!#X7-````BU-@A=*)]@^%=!````T```@`J"#'0V`! -XM````B8.`````#X5V&P``BU4(BT),B4-DBTT(@7L@P,P("(M!4(E#:`^%GP`` -XM`,=#8`(```"+50B+0DR#P`&)0V2+30CV@4`#```!BU%,#X4V$```BW4(BX8X -XM`P```=")0VR+?0B+1U")0W")0VB-1?")1"0$B3PDZ/)!__^%P`^%!0<``(M% -XM\(7`=$$[1TQV/#M#;',WB4-LZS*-="8`@_H$#X3F`@``@_H(C70F``^$7@,` -XM`(MS8(7V#X6E!@``@7L@P,P("`^$8?___XM#(,=#7`````"+>`P/MC>)\(3` -XM#X26&@``BTL4B?*`^B$/A'$$``"%R71GBT,0#[X0A=(/B,4#```Y%?P@"0@/ -XMCKD#``"A""$)"/9$D#8"=2SIJ`,```^^$H72#XB:`P``.Q7\(`D(#XV.`P`` -XMH0@A"0CV1)`V`@^$?@,``(M3$(U!_XE#%(G!@\(!A<")4Q!UQ,=$)`2WL0@( -XMB3PDZ)/)_O^%P`^%[04``(M#8(/X`0^$P`0``(/X`@^$,@L``(M-"(N#@``` -XM`(N1K`0``/;"`@^%?P,``/;$0`^%=@,``*D```0`#X59#0``@^(!C78`=`>+ -XM10B#0"P!BU4(BTH((``"+ -XM30CV@:X$```"#X72"```]H$8`0```0^%P1<``(MU"(N&$`$``(7`#Y7`A,`/ -XMA*\(``#V@X````!`#X2B"```N@`0``#IG`@``,=#8`$```"+1TR#P`&)0V2+ -XM1U")0VCIWO7__XM38(72#X6%````#0``"`")@X````#'0V`"````BW4(BT8< -XMA<`/A+$3``"+?0B-0VR)1"0$B3PDZ*0^__^%P`^%MP,``/:#@````"`/A)$1 -XM``"+0VR%P`^%AA$``(.+@````!#'0V0`````@XN`````!,=#<`````#'0V@` -XM````Z:W\__^+4V"%T@^$HOS__X/J`0^%F?S__XM39(M#:,=#8`(```")4VR) -XM0W#I@?S__XMS%(M]C(7VB?`/A'$2``")^<=%G`````#K+(#Z"@^$UO?__P^V -XM1:"(`8M[$(-K%`&+Q"%]HGP#X0`^O__@\$!#[87#[["@/IL!```Z3'[__\/ML#_)(5(M@@(9H-+?""#:Q0!@T,0 -XM`8MS%(7VB?$/A.?^__^+0Q`/M@`\+@^$XPT```^/*P@``#PK#X3?#0``/"V) -XM]G3$B?'IOO[__SPCD(UT)@!U\(&C@````/___O]F@4M\``*+39"!22@``@`` -XM@VL4`8-#$`&+O$B4PD#(M-"(M#$(E<)`2)#"2)1"0(Z"XN``"%P'55 -XM#[9'`8U7`3Q.#X0T^O__#[[`@^@PB47D@'H!;P^$4`L``(MUD(M6)#G0#X03 -XM^O__BT,@BW4(BT`0QT0D"+JQ"`C'1"0$`P```(DT)(E$)`SH]6S__XM['(7_ -XM#X6C````BW,4A?9U+XUV`.F"````@/H6=%>#_@J-=@`/A!H/``"#_GP/A!$/ -XM``"+0Q2#Z`&%P(E#%'14BT,0#[80@\`!]H."`````HE#$`^^\G7!B?`\_P^$ -XM7`8``(M]"`^VP(M7$("\`E,'```2=:F+0Q2#^`%VH8/H`8E#%(M#%(-#$`&# -XMZ`&%P(E#%'6LBTL?(V&@````(E%P#G##X2B]?__]D-0 -XM#P^$<_7__XM3/(U[/#GZ=2?I6?7__XM"!(E!!(M"!#G'="J)"(D4).CVPO[_ -XMBU,\.=2%T@^%;O[__XM%Z(7`#X3& -XM%0``BT74A<`/A<R)!"3H!]W__X/X`0^%VQ0``(M-[(7)#X02$0``BT7@*T,0*4,4BT7@ -XMB4,0@#]A#X35$0``BT7LB4-89H-+?`2+2Q3I?_O__XM#$`^V,(GR@/HK#X0K -XM"0``@/HM#X0B"0``@/I>#X09"0``@/HCB?8/A`X)``")\0^^P8/X?W<.]@2% -XMW10)"`0/A>+Z__^#:Q0!B?"#0Q`!9H-+?`&+2Q2(0U'I'_O__XM[$(E]R(E] -XMX(M#%(7`#X3R````@\(7V>!@[-?P@"0A]$*$((0D(]D2P -XM-@(/A;L```"+5<2)^(A"_X-K%`�Q`!@T7$`8M#%(7`#X2J````BT7$B47( -XM@^@!B47,BT,0]H."`````@^V.(GZ#[[R=:")\#S_#X2'"```BTT(#[;`BU$0 -XM@+P"4P<``!)UB(M#%(/X`7:`BU,0@^@!B4,4C4(!B4,0#[9"`8M-Q(A!_^N) -XM,<"!>R#8S`@(B4PD#(M-"`^4P(E$)!"+0Q")7"0$B0PDB40D".AB,P``A<`/ -XMA#/V___I0/S__Y"-="8`@T,0`8-K%`&+=`I1Q")?8P/O@>% -XMP(E%H`^(W`D``#D%_"`)"`^.T`D``*$((0D(BU6@]D20-@)U,NF\"0``#[X" -XMA<")1:`/B*L)```[!?P@"0@/C9\)``"A""$)"(MUH/9$L#8"#X2,"0``BU,0 -XMC4'_B4,4B<&#P@&%P(E3$'6^Z5K[__^%TG0KBWT(BT=,QT78`````(E4)!") -XM7"0$B474C474B40D#(E$)`B)/"3H)9\``(M%F(7`=%GV@X(````"#X1.`P`` -XMBT68BU6P@'P0_Q8/E,"$P'01BU,8C4+_B4,8QD+_%H-#'`&+39@I2Q@!2QR+ -XM0QB+=;")3"0(B00DB70D!.B3OO[_@8N```````!``(M#&(E#$(M#'(E#%(M] -XM"(N7K`0``/;&'G5BBT64BUA\Z5WI__^+0VR%P`^%/?G__XN#@````*@0#X5L -XM^?__BWT(]H>L!````74+J0````(/A57Y___'1"0,`0```,=$)`@$````BT,@ -XMB40D!(M%"(D$).C.W/__Z73Z__^+30B+01"+6'R%VW15,?\Q]H![4`AV!>@! -XMN?[_#[9#4/\DA62W"`B%_W4@BWT(QT0D"*RS"`C'1"0$`P```(D\)+\!```` -XMZ!YG__^+&X7;=<`)]P^%R?K__XM-"(N1K`0``(#F%@^$9>___^G,ZO__A?9U -XMUXM%"&:^`0#'1"0(Y+,(",=$)`0#````B00DZ-9F__^+&X7;#X5T____Z[*+ -XM30B+D:P$``#VP@%U"ZD````"#X7.\___QT0D#`$```"+=0C'1"0(!````(M# -XM((DT)(E$)`3H[]O__^F5^?__BU-@A=(/A1[V__\-```(`,=#8`(```")@X`` -XM``"+30B+44R#^@$/A,X$``")4VR)4V2+?0B+1U")0W")0VCIB/+__P^V%X#Z -XM*P^%Z^W__^F"`@``BU4(BT(0@+A2!P``_P^%3?G__XET)`2)%"3HYR;__X/X -XM$@^%./G__^F*^?__A<"-M"8`````=1?I/_'__X/H`8VV``````^$,/'__X/" -XM`8`Z7(UT)@!UY<8"%NO@BWT(B40D!(D\).@:,___A<`/A"4/``"+EZP$``"+ -XM@X````#ISO+__SP]#X2_!0``/%X/A=/W__]F@TM\`NF2]___/&R0C70F``^$ -XMOP4``#QP#X6T]___9H%+?``0BT60@4@H`!```.G)]___BWT(BT=,B474BT=0 -XMB478C474@:.`````___[_\=$)`P!````B40D",=$)`0G````B3PDZ+55__^% -XMP`^%./C__XN7K`0``.E<\O__B10DZ)IB___I'//__XM-"(E$)`2)#"3H5C+_ -XM_X7`#X2U!P``BT9$BWT(B4=,Z63H__^)%"3HZ$;__^E#\O__BTV8BW6P#[9$ -XM,?\\_P^$"P,``(M]"`^VP(M7$("\`E,'```2#Y3`Z93\__^!BX```````(`` -XMZ:[O__^+4VR+=0B%THG0BTY,=06X`0```#G!#X1<]?__A=)U`K(!BWT(B?B) -XM5TR#P%#'1U``````B40D"(E4)`2)/"3H--C__^DO]?__BU-DBT4(A=*+2$R) -XMT'4%N`$````YP0^$$_7__X72=0*R`8M-"(G(B5%,@\!0QT%0`````(E$)`B) -XM5"0$B0PDZ.O7___IYO3__X/Z`@^%3O#__XM3;(M#<,=#8`$```")4V2)0VCI -XM-O#__XN!.`,``(T$0,'@`@-!$(M`..F\[___@VL4`8MS%(U'`6:!2WP``8E# -XM$(7VB?&)0Q@/A,GK__\/MA")Q^E`Z___BT,4@\!Z+1:`[!?P@"0A]$Z$((0D(BU6@ -XM]D20-@(/A5`#```/MDV@B`Z+0Q"#:Q0!BU,4@\`!B4,0A=(/A#(#``"#Q@$/ -XMM@`/OM")5:#V@X(````"=:0/MD6@//\/A#H"``"+30@/ML"+41"`O`)3!P`` -XM$G6)BT,4@_@!=HP!@^@!BU,0B4,4C4(!B4,0#[Y2`8E5H.N*N`$```#3 -XMX*D#B@(`#X5%!0``A<`/B;KK__^+%7#."`B)^8E5X`^V!SH"=1"#P0&#P@&) -XM5>`/M@$Z`G3P/&QT&SQP=!<\*W03/"UT#SQ>C78`=`@\(P^%>>O__XM#$#'V -XMB4L0*<@!0Q2A<,X("(E#)*%TS@@(B4,HH7C."`B)0RRA?,X("(E#,*&`S@@( -XMQT,P>;$("(E#-*&$S@@(B4,XC4,DB4,@Z4'K__^+0Q"`.`0/A(SF__^`YG^) -XMDX````#I?N;__ZD````"=0V!>R#`S`@(#X6G[___BWT(BU64QT0D!`$```") -XM/"3_DGP(``#IB^___X`_*P^%E/+__SPKB?8/A/+V__\\+0^%@O+__V:#2WP( -XMZ?#V__^+?9"+5R2%T@^$P^[__^FC]/__BU4(BT(0@+A2!P``_P^%I/G__\=$ -XM)`3_____B10DZ'(B__^#^!(/A8OY___I=?G__XUT)@"H(`^$*OO__XU%\(E$ -XM)`2)#"3H:2___X7`#X5\]/__BWWPA?\/A9L*``"#BX`````0QT-L`````,=# -XM9`````#I]/K__\=$)`0Q````B3PDZ+"S_O^%P`^%U/'__^G5]O__BT,4A<`/ -XMA`7N__^-="8`Z0'T__^+50B+0A"`N%('``#_#X4!]___B70D!(D4).C,(?__ -XM@_@2#X7L]O__Z5_W__^+50B+0A"`N%('``#_#X5/_?__BTV@B10DB4PD!.B< -XM(?__@_@2#X4W_?__Z:G]__\Q]HM3(`^W0@CVQ`)T+XM5"/:"9`,```$/A)<# -XM``"+@EP#``"-!$#!X`(#0A"+0#B%P`^5P(3`#X71"@``@?DXS0@(#X0O!0`` -XM@?EHS0@(#X1N!@``@?GPS`@(#X2"!@``@?F0SP@(#X1F!@``@?E0T`@(#X0T -XM!P``@:.`````_____>DOY?__@VL4`8/``6:!2WP``8M+%(E#$.D5\?__,?;I -XMO^+__XM#$(G&*?Z)=9B+0`````BW,4A?8/A'P```"+0Q`/O@"%P(E%H`^(E3`0``C78`#[X`A<")1:`/ -XMB$(!```[!?P@"0@/C38!``"A""$)"(M-H/9$B#8"#X0C`0``QT7D`0```(M# -XM$(-K%`&+"+0Q2%P'4FZ9T```")\H#Z%G1,B?"(!X-K -XM%`&#QP&+0Q2#0Q`!A<`/A'P```"+0Q`/MC")\`^^P(E%H/:#@@````)UR`^V -XM1:`\_W0RBTT(#[;`BU$0@+P"4P<``!)UM(M#%(/X`7:LBU,0@^@!B4,4C4(! -XMB4,0#[9"`8@'ZYF+50B+0A"`N%('``#_=8:+3:")%"2)3"0$Z"T?__^#^!(/ -XMA6[____KN(GVBT7@BU4(B5PD!"G'B7PD#(E$)`B)%"3HA"$``(7`#X0EZ___ -XMZ3+Q__^-M"8`````A?:)\`^$[O[__X-]H"&)]@^%XO[__X%[(/C0"`AT"XM] -XMY(7_#X3._O__A?8/A"\(``"+>Q`/MA>`^@IU$8UV`.F.Y?__@#\*#X0T!0`` -XMBWL0@^@!B4,4@\Q!UY,=%G`````#IM^?__XUV`(-[%`$/AD;Q___' -XM0QP!````Z5/Q__\/OM*%TG@4.Q7\(`D(?0RA""$)"(N4D#0$``"^`0```(@7 -XMZ5CF__^)T/?8.4%,#X>TZ___QT0D"&2S"`C'1"0$`P```(D,).A.7?__Z53P -XM__^+182+50B)1"0$B10DZ"3__P^V!SP\#X7V^O__#[[`B46@BTL4A -XM``"%P`^%UNW__XM+(.E:^O__#[8/@/EK#X1]`0``@/ES#X2N`@``A?8/A>'C -XM__^+10B%P)`/A#("``"+50B+P_O^+=;R+?0C'1"0,?[$(",=$)`0#````B70D"(D\).@Q7___ -XMBWT(BT<0AQ"+0Q3'19P`````Z:7C__^`/S`/A.7N -XM__^+?0C'1"0(G;$(",=$)`0#````B3PDZ'U9___I@^S__XN!$`$``(T$0,'@ -XM`@-!$(M`.(7`#Y7`Z3'H__^+30C'1"0$_____XD,).@Y%?__Z;SI__]F@TM\ -XM$.E2[O__@WVH`HVV``````^%?/[__X-K$`&Y>,\("(-#%`''0R!XSP@(Z1SB -XM__^+39#'02@`$```Z;WX__^+2Q3I`>K__XMU"(U%\(E$)`2)-"3HV";__X7` -XM#X7KZ___BT7PAR)0VSI%^[__XM]"(M'3(E#9.DWY/__N@H```")QL=%G`````#I1>#_ -XM_XL"QT0D".RR"`C'1"0$`P```(D\)(E$)`SH;5C__^ESZ___BT6HQT7<```` -XM`,=%O`````"#P`$/A>L"``"+5:B+1;S&!!``B50D"(E\)`2)!"3HV*[^_XMU -XM"(M-O,=$)`Q_L0@(QT0D!`,```")-"2)3"0(Z")=__^%]@^%Z?W__^GZ_?__ -XMD(UT)@"#?:@!="B+1:@QTH/H`8E%B`^V1#H!/&-T##QG=`@\<@^%+/W__X/" -XM`3M5B'7CBT,0@\`!*T6HB4,0BT,4@^@!`T6HB4,4H7#1"`B)0R2A=-$("(E# -XM**%XT0@(QT,H4-T&"(E#+*%\T0@(B4,PH8#1"`B)0S2AA-$("(E#.(U#)(E# -XM(.ERX/__BU,4C4$!B4,0@^H!A=*)4Q3'1:0"````#X3E````BTL0#[8!/%QT -XM+P^^P#G'#Y3`#[;`*46D@VL4`8MS%(-#$`&%]HGR#X0%^/__BTVDA(E$)`B+1G2) -XM1"0$BT4(B00DZ-7*__^%P`^$..G__XE&=.FU^___BW4(QT0D#`$```#'1"0( -XM`@```,=$)`0`````B30DZ&++___I".G__XM3$(E5C.D"^___@:!4"```__[_ -XM_^GNZ/__BW4(B40D#,=$)`@#````QT0D!`````")-"3H),O__^G*Z/__BWL0 -XMQT6<`````.FTW___QT0D"`@```"+50B+`8D4)(E$)`3HMR`!`.F=Z/__QT0D -XM#!BS"`B+=0B+0Q#'1"0$`P```(DT)(E$)`CH@%K__^EVZ/__BW,4Z7_@__^+ -XM30B)1"0,C47575E.#[!R+10B)1?"+,(M^$(DT).C$'@$`A4"```BQ.%TG0&BT,$B4($BT,$ -XMB1"+0PR)!"3HM:O^_XD<).BMJ_[_BU]LA=MUM_:'5`@``!`/A9,"``"-5GB[ -XM(`H``(V'D````(E5[(E%Z.FH`0``BX8T`0``BU80C01`BTR".(7)#Y7`A,!T -XM`X/+0/:&[`(```$/A.,!``"+AN0"``"-!$"+1((XA<`/E<"$P'0&@'D````-+4"`C'AY0````!````QX<``0```(`` -XM`(DT).C:U/__A,`````8N&K`0` -XM`*D````"=!&I```$`'1W@::L!```_____8DT).C.@@``]H8\`0```0^%)?[_ -XM_XN&-`$``(M6$(7`#Y7`Z2?^___'1"0$)KH("(DT).CN@@``B30DZ):"``#K -XMF8UT)@"+AN0"``"%P`^5P.D?_O__BT((B8>0````BT(0B8>4````Z;W^___' -XM1"0(`````(M&3(DT)(E$)`3HLDG__^EM____@>(`!```B50D",=$)`0````` -XMB30DZ-/\_O^%P'0U@\0'C`````$```#'AX@```#(L0@( -XMZ53]__^+5?`QP(DR@\0<6UY?7<.)-"3H(I+__XM5\(D"B74(@\0<6UY?7>F> -XMDO__D)"0D)"0D)"0D)"0D)!5B>564X/L$(M%#(MU"(M`=(L8BT80]H!4"``` -XM`70CQT0D#`````"+0PB)1"0(BP.)-"2)1"0$Z%2G__\QTH7`="/'1"0,B+<( -XM"(L#QT0D!`,```")-"2)1"0(Z%!6__^Z`0```(/$$(G06UY=PXGV58GE5U93 -XM@^P\BT4,BU!XA=)U+\=$)`@`````QT0D!`````"+10B)!"3HHJ+__S'2A<`/ -XMA&L!``"#Q#R)T%M>7UW#@_H"=`7HF*+^_XM`=(E%X(L`BSB)?>B+0`B)1>0/ -XMMDP'_P^VT3L5_"`)"`^-_0```*$((0D(]T20-``%```/A.H```"+1>@/M@B$ -XMR70NBQW\(`D(B@/ML`YV'T+]D2&-@(/A80!```/MD(!@\(! -XMA,!UXX-]Y`(/A@(!``"+=>2#[@(/A/8```"+/?P@"0BA""$)"(M5Z(E]W(E% -XM[.L2C;8`````@\(!@^X!#X3.````#[;!.T7S&1?,!]T2#-``%``!U -XM!X#Y7P^41?,/MDH!#[;!.47R[`0```/=$AS0`!0``=0R-M@````"` -XM^5\/E,,Z7?-TI<=$)`@PN`@(QT0D!`,```"+10B)!"3HRD___[H!````Z"+4P3'1"0@"````,=$)!P`````BT((B40D&(L"B40D%(M]Y(E\)!"+ -XM1>C'1"0(`````,=$)`0`````B40D#(M5"(D4).AJI?__N@$```"%P`^%%?[_ -XM_XM="##2BT,0@XA4"````>D!_O__QT0D"/RW"`C'1"0$`P```(M="(D<).C> -XM3O__N@$```#IW/W__Y"0D)!5B>575E.#[#R)1=R)5=B+5=R+0!")1>"+0AR% -XMP`^$L`,``(M%V(M5W(MX9(U!_X/X`8EZ3`^&>`$``(/I`0^$?@$``(M-V(MQ -XM'(7V=&N+41B)TX`["@^$Y`$``(/#`8/N`77OBT7<]H"N!````@^$ZP$``(G8 -XM*="#^`$/A.`"`T$0 -XMBW`XA?8/E<"$P+H0$!``=06Z`!`0`(M-W/:!/`$```$/A=0!``"+1=R+@#0! -XM``"%P`^5P(3`=`.#RD"-=>R)=>R)=?")5"0,QT0D"`````")="0$BU7DR0C70F``^$E0```#'` -XM@\0\6UY?7<,YTP^%'/[__X7V#X04_O__@^X!=#^#PP&)VNGT_?__B=@IT.D9 -XM_O__@#HN#X40_O__A?8/A#K^__^#[@&-="8`#X0M_O__BU78C4,!B4(8Z1_^ -XM___'1"00`````,=$)`Q/C0@(B7PD",=$)`0!````BTWGH_?__QT0D!`$```")%"3H11G__X7`#X13____BTW<,<#'04P! -XM````@\0\6UY?7<.+@30!``"-!$#!X`(#01"+2#B%R0^5P.D>_O__BT7$P/A17____'1"0$`0```(D$).CO&/__A<`/A/W^__^+5=PQP,="3`$```#I -XM[O[__\=$)`0!````BT7P``Z3S___^-M@````!5N0(` -XM``")Y8M%"(M5#%WIG/O__XVV`````(V_`````%6Y`0```(GEBT4(BU4,7>E\ -XM^___C;8`````C;\`````53')B>6+10B+50Q=Z5_[__^0D)"0D)"0D)"0D)"0 -XMD)!5N`(```")Y5=64X/L'(M=#(M]"(7;=`:+0WB#P`''1"0$!````(D$).CF -XMGO[_A<`/A)$```"%VXE%\'1-BTMTBW7PBP&+4`B%TG1JB) -XMUH/&!,<&`````(M%\(/$'%M>7UW#QT0D"`````#'1"0$!0```(D\).A!2?__ -XMQT7P`````.O4D(VT)@````!5B>575E.#["R+?0B+7R2%VP^$1`$``(L#A<`/ -XMA"`!``#'1>@!````QT7L`````,=%\`````#IGP```)"-="8`@WWH`70:QT0D -XM!-+4"`B)/"3H6GD``(M/*,=%\`$````YRP^$R````(L3N4^-"`B)R(E$)!") -XM5"0,B4PD",=$)`2RN`@(B3PDZ+-Y``"+1Q#V@%0(```$#X6D````QT0D#`$` -XM``#'1"0(`````,=$)`0`````B3PDZ*,,__^%P'4,BT<0]H!4"```!'5T@\,$ -XMBP.%P'1K@T7H`8D$).@2H/[_BT\H,=(YV0^4P@-%\(TT4`%U[(M'.(/H`3E% -XM[`^"//___\=$)`0FN@@(B3PDZ)QX``"+3RB)=>S'1?``````.```@\0L,56 -XM4X/L$(M="(MU#(M#)(7`#X2(````QT0D"!$````/MT9\B1PD)0`!``")1"0$ -XMZ&KQ_O^%P'0,@\00N`$```!;7EW#BT,DB4,HBP")'"2)1"0$Z%;T_O^%P(G" -XM=-H/MT9\QT0D"`````")5"0$B1PD)0`!``"#^`$9P(/@_(/`)(E$)`SHI/7^ -XM_X7`=:J!BZP$````"``$@\006UY=PXD<),=$)`CTN`@(QT0D!`,```#H]T;_ -XM_X/$$+@!````6UY=PXUT)@"-O"<`````58GE@^PHB77XBW4(B7W\BWT,B5WT -XMBT8H.T8D#X3>````]H>!`````74VQT0D"!$````/MT=\B30D)0`!``")1"0$ -XMZ(GP_O^%P'15N`$```"+7?2+=?B+??R)[%W#C78`BUC\B1PDZ#F>_O^)7"0( -XMB7PD!(DT)(E$)`SHL0D``(7`=(72=1:+1RB%P`^$GP$` -XM`(M(!(7)#X24`0``BTT,]H&!`````71XA=)T-(U%\(E$)`B)?"0$BT<0B00D -XMZ.Z'__^Z`0```(7`#X2(`0``@\0LB=!;7E]=PXVT)@````"+1RB+6`2)'"3H -XM]IS^_XE<)`B)1"0,BT4,B3PDB40D!.AK"```A<`/A`0!``"#Q"RZ`0```%N) -XMT%Y?7<.-="8`QT0D"!$```"+50P/MT)\B3PD)0`!``")1"0$Z-#N_O^%P'7) -XMBTT,BU%XA=(/A"`"``#VAZT$```@=3*+5R2%TG0KBP*%P'0=B=.-M@````") -XM!"3HO)O^_XM#!(/#!(7`=>Z+5R2)%"3HIYO^_X&GK`0``/^?___'1R@````` -XMQT0D!`0```"+50R+0GB#P`&)!"3H79G^_X7`B<:)1R0/A"8"``"+10R+2'2+ -XM`8M0"(72#X0;`0``B -XM7UV)PHG0PXUT)@")/"3'1"0(U[@(",=$)`0#````Z-A#__^#Q"RZ`0```%N) -XMT%Y?70O__N@$```#IP_S__Y"0D)!5B>57 -XM5E.#[`R+10B+F)@```"+4QR%TG1,BT,@A) -XM%"3HOYC^_\=#'``````QP,=#(`````#'0R0`````@\0,6UY?7<.-M@````"- -XMOP````!5B>575E.#[!R)1>R)5>B+L)@```"+1B2)1?"+3B"%R70,B<*#P@*- -XM0?\YPGQ/BU8((M]\,'G -XM`HG[`UXB#P`$Y0P1S(XL3B4,$ -XMA=)T8HE$)`2)%"3H99+^_X7`B0,/A!$!``"`2PP!BT7P@\`!B2) -XM^P->'(L+A6_O^-=@#KG<=$)`00````QP0D`0```.@^E?[_ -XMA<")`P^$U0```(M&'(M5\(L4D(72#X5$____BU7LQT0D"`````#'1"0$!0`` -XM`(D4).@40/__N`$```#KAL=$)`00````QP0D`0```.CME/[_A<")`P^$I``` -XM`(M&'(M5Y(L4D(72#X5+____ZZV+5>S'1"0(`````,=$)`0%````B10DZ,$_ -XM__^+5AR%T@^%DO[__XM%[(D$).B;_?__Z7?___^+1>S'1"0(`````,=$)`0% -XM````B00DZ(L___^+.X7_#X7*_O__@&,,_L<#`````,=#!`````#I//___XM5 -XM[,=$)`@`````QT0D!`4```")%"3H4#___^D+____BU7LQT0D"`````#'1"0$ -XM!0```(D4).@P/___Z3S___^-="8`C;PG`````%6)Y5=64X/L'(M%"(MU%(N` -XMF````(7VB47D=#:+#?P@"0B+%0@A"0B+?1#K!HUV`(/'`0^^!X7`>#0YR'TP -XM]D2"-@(/A+T!``"#[@&-="8`==Z+5>2+30R+0AR)072+0B2)07B#Q!PQP%M> -XM7UW#A?9TX(E]$,=%\`````#K+8GV/!9T6(7;>!8['?P@"0B)]GT,H0@A"0CV -XM1)@V`G57@T40`8-%\`&#[@%T2HM5$(M-#`^V`O:!@@````(/OMAUP(#[_P^$ -XMN@```(M-"`^VPXM1$("\`E,'```2=:B#_@%VHX-%$`&#[@ `!@T7P`8/N -XM`76VBU7PBT4(Z*#\__^+3>2+422+01R+3?"+!)")2`B+3>2+7?"+01R%VXL$ -XMD(L`B47L#X3!````BT7PB?N+?>R)1>CK(H`[%@^4P(3`=`.#PP$/M@.(!X/' -XM`8-MZ`$/A(D```"#PP&+50SV@H(````"==(/M@,\_W1#BTT(#[;`BU$0@+P" -XM4P<``!(/E,#KNXM5"(M"$("X4@<``/\/A>[^__^)7"0$B10DZ$[^_O^#^!(/ -XMA=G^___I+/___XM5"(M"$("X4@<``/]UAL=$)`3_____B10DZ"'^_O^#^!(/ -XMA6W____I9?___XUV`(M%[(M-\(T$`8E%[(M5[,8"`(M-Y(-!)`&%]@^%&_[_ -XM_^E,_O__A?:)?1#'1?``````#X5:_O__Z=C^__^-=@!5N@$```")Y8/L"(M% -XM"(ET)`2+=0R)'"2+F)@```#'0R0`````Z%;[__^+0QR)1G2+0R2)1GB+'"0Q -XMP(MT)`2)[%W#C;8`````C;PG`````%6)Y8/L&(M%"(EU^(MU%(E]_(M]#(E= -XM](N8F````(GRZ`O[__^+4R2+0QR+!)"+$(M%$(ET)`B)%"2)1"0$Z!&3_O^+ -XM4R2+0QR+!)"+`,8$,`"+4R2+0QR+!)")<`B+0QR#0R0!B4=TBT,DB4=XBUWT -XM,<"+=?B+??R)[%W#C78`58GE5U93@^Q,BWT,B47`BT44B56\BU48B4VXBTT0 -XMBP")1>"+`HM5"(E%\(L)A=*)37UW#BTW`BT$@ -XMBT`(A<")1<@/A&H#``"+7`^''@$``(M#>(MS=(E%\(&+5`@` -XM```!``#I;?___XU-\(E4)`R)3"0(BUW@B5PD!(M%P(D$).@'K?__A<`/A*P! -XM``")P>FJ_/__C4-XB4PD#(E$)`B+0W2)1"0$BT7`B00DZ-NL__^%P`^$@`$` -XM`(E#=.D1_?__@:-4"```__[__XM-S#M+>`^'$`$``(M#>(MS=(E%\(&+5`@` -XM```!``#I8_W__XU-\(E4)`R)3"0(B70D!(M%P(D$).B#K/__A<`/A"@!``") -XMQNDS_O__C5WPB4PD#(E<)`B)="0$BU7`B10DZ%JL__^%P`^$_P```(G&Z93^ -XM__^-0WB)3"0,B40D"(M#=(E$)`2+1<")!"3H+JS__X7`#X33````B4-TZ;3^ -XM__^)1"0,C4-XB40D"(M#=(E$)`2+5<")%"3H`:S__X7`#X2F````B4-TZ;7^ -XM__^!HU0(``#__O__.W-X=V:+0WB+4W2)1?"!BU0(`````0``Z0C]__^-3?") -XM5"0,B4PD"(ET)`2+1<")!"3HL*O__X7`=%F)QNEK_/__C4-XB4PD#(E$)`B+ -XM0W2)1"0$BT7`B00DZ(BK__^%P'0QB4-TZ7UW#QT0D"#RY"`C'1"0$ -XM`P```(D,).AF-O__@\1,N`$```!;7E]=PXU%\(ET)`R)1"0(B50D!(M%P(D$ -XM).C?JO__A*_O^-=@!5B>575E.#[#R+?0B%_W04BU\0A=MT#?:#50@```$/A$P! -XM``#'1>@`````C5WPQT7P`````,=$)`P``@``B5PD",=$)`0`````B3PDZ"^J -XM__^%P`^$D`$``(E%Z(M%&,=%[`````")7"00B40D%(U%Z(E$)`R-1>R)1"0( -XMBT7HB40D!(M5%(GXB10DBTT0BU4,Z!KY__^%P`^%H@```(M%[(7`B47<=&B+ -XM5>B)T0'!.`/@]T````/O@*%P`^(T@```(LU_"`)"#G&#X[$````BQT( -XM(0D(]D2#-@)U(^FR````#[X"A<`/B+`````YQ@^.J````/9$@S8"#X2=```` -XM@\(!.7UW#C70F`(7_=!.+5Q"%TG0,BT)T.T7H#X2O````BT7HB00D -XMZ)*+_O^X`0```(/$/%M>7UW#D(%[>/\!``!V28M#=(E%Z(M#>(E%\(&+5`@` -XM```!``"-7?#IQ?[__SE-X`^$")5"0(BT4,B3PDB40D -XM!.AS]___Z4[___^-0WC'1"0,``(``(E$)`B+0W2)/"2)1"0$Z*"H__^%P'0% -XMB4-TZY"X`0```(GVZ7+___^!HE0(``#__O__,<#I8?___X&B5`@``/_^__^X -XM`0```.E-____C;8`````58GE5U93@^Q,B47(B57$B4W`]H!D`P```0^$D0(` -XM`(G"BX!<`P``C01`P>`"`T(0BT`XA<`/E<"$P`^%A@(``(M%R/:`<`,```$/ -XMA9X"``"+1#'1"0$+P```(M5X(D4).A%AO[_BU7@B57S'1?#_____QT7L_____XE5U(D$).CL -XMA/[_A<`/B-8#``#'1"0$D+X("(M%[(D$).B!A_[_A<")1

7UW# -XMB<*+@&@#``"-!$#!X`(#0A"+0#B)1>#I4OW__\=$)`0!````BT7PB00DZ->! -XM_O^+1>R)!"3H+(7^_XM%\(D$).@AA?[_QP0D`@```.@5A?[_QT0D$`````"+ -XM1=C'1"0(V[D("(E$)`R+5=R)5"0$BT7@B00DZ'R!_O_'1"0,WKD("(M5X,=$ -XM)`0%````B50D"(M%R(D$).A&-?__QP0D?P```.@NAO[_@:-4"```__[__XM5 -XMP(L"`<`[0WAW8(M3=(E5V(M5P(M#>(D"@8M4"`````$``(L"Z9C]__^)5"0, -XMBT7`B40D"(M5V(E4)`2+1*3__X7`#X1*`0``BU7`B478BP+I9OW_ -XM_XD4).C_AO[_B<;I%?W__XE$)`R-0WB)1"0(BT-TB40D!(M%R(D$).@WI/__ -XMA<`/A`D!``")0W3I<____\=$)`C5N0@(QT0D!`4```"+5 -XM7UW#QT0D"%;?"`C'1"0$!0```(M%R(D$).@?+___@\1,N`$```!;7E]=P\=$ -XM)`SSN0@(BT7<,?;'1"0$`P```(E$)`B+5@/A)X! -XM``"+1>B)!"3HKX3^_X/$;(GP6UY?7<.0@7YX_P$```^&CP$``(M&=(E%Z(M& -XM>(E%\(&.5`@````!``#I5/___\=$)`@!````QT0D!#0```")'"3H4#;__X7` -XM="V+1>R+5>B#Z`6#P@6)1>R)1"0,B50D"(M5#(D<)(E4)`3H!N[__XG&Z6+_ -XM___'1"0(`0```,=$)`0U````B1PDZ`)1:2#[P4/ME$%A-(/A,(```"%_W4%_P^$\_[_ -XM_X/O`0^$"P$``(U%[(D$)(U-\(G8C57HZ&/X__^%P`^%6?[__XM%[(E$)`R+ -XM1>B)1"0(Z=/^__^!HE0(``#__O__B?"#Q&Q;7E]=PXU&>,=$)`P``@``B40D -XM"(M&=(D<)(E$)`3H=J#__X7`=`B)1G3I1_[__[X!````D(UT)@#I(/[__X7_ -XM#X1G_O__H?P@"0@Q]HL-""$)"(E%K(E-L.L(BT78#[94!@6+1=B-1#`%B47< -XMBT6D*?"#Z`6)1=0/OL*%P'@:.T6L?16+5;#V1((V`G4>]T2"-``%``!U%)") -XM1"0$BTVHB0PDZ,5]_O^%P'4:@\8!.?=UJ.GU_?__BX-T`P``B46HZ5+^__^+ -XM?=3IY/[__XM-W(`Y*@^%Z?[__\8!`(M%Z(/`!8E%M(N3F````(E5S,=$)`0O -XM````B00DZ.Y]_O^%P(G`0``.46T#X2_`0``Q@``BT6TB00DZ)V"_O^) -XM1<"#Q@&)=>"+5>")%"3HB8+^_XM-M(E%N(D,).@[?O[_A<")1<@/A+T!``"+ -XM5`@ND'3; -XM@\`(B470B00DZ#2"_O^)1;R+?;R)V`-]P(U7`NC=Z/__BT7,BU`DBT`?[_Z>K[__^#P`B)1=")!"3H -XM78'^_SE%N(E%O`^'ZO[__XM-N(MUT(M]X/PYR?.F#X76_O__Z0?___^+1<") -XM1"0(BU6TB30DB50D!.@"@/[_`W7`@WW``799Q@8O@\8!Z0;____'1"0(!;H( -XM"+X!````QT0D!`,```")'"3H+2G__^EK^___QT7``0```,=%M`J@"`CI/_[_ -XM_XM-M,=%P`````#'1;1!\0@(B4W@Z2S^__^+3;2`.2]UG^FK_O__QT0D#)^M -XM"`B+1;2^`0```,=$)`0%````B1PDB40D".C;+?__Z0G[__^0D)"0D)!5B>57 -XM5E.#[!R+?0SV1WP!=`X/ME=1@/I`=`6`^BIU&XM%"&:#N*P$````#XGB`0`` -XMBTT(#[:1J````(M="`^VRH&+K`0```"```"(DZ@````[#?P@"0@/C&4!``") -XMT(M="(MS$(N>0`$``(7;=0_I;`$``(L;A=L/A&(!```Z0Q!U\<=$)`2$```` -XMQP0D`0```.@=??[_A<")1?`/A*4!``"+=?"+1?"#QCR)<#R)<$#'1"0$$``` -XM`,<$)`$```#H[WS^_X7`B<(/A+H!``"+1V2)0@CVAX(````(#X56`0``BT=L -XMB4(,BT7P@$A0`8M-\(M!/(ER!(D".W%`#X1^`0``B5`$BT7PC7L(,?:)4#R+ -XM4PPQP#G7=!B-M@````"+0A"+4@2#P`$!QCG7=?&-!#:)!"3H^GW^_XM5\(7` -XMB4(0#X3_````BU7PB4)(B7),Q@0P`(M;##G?="P!QHGVBT,(BU,0B30DB40D -XM!(E4)`CH[GW^_XGP`T,0Q@`*BUL$C7`!.=]UV(M-"(M=\(M1$(M"?(7`B0-T -XM"8M"?(E8!(M1$(M%\(E"?(M5"(M-\(M"$(/`?(E!!(/$'#'`6UY?7<.A""$) -XM"&:#?(@T``^)BO[__P^VA(@T!```Z7_^__^-!$F`P@&-A$98`0``='J)1"0$ -XMQT0D"`````"+50B)%"3HVO$``+@!````@\0<6UY?7<.)!"3'1"0(!0```,=$ -XM)`0`````Z+7Q``"#Q!RX`0```%M>7UW#B4(,BTWP@$E0`NFH_O__QT0D"``` -XM``#'1"0$!0```(M-"(D,).A>)O__N`$```#KHL=$)`3_````BT4(B00DZ#3B -XM_O_I;O___XE10.E]_O__QT0D"`````#'1"0$!0```(M5"(D4).@<)O__N`$` -XM``#I7?___Y"058GE5U93@^P\BWT,BW4(BT=TBP")1>"+0`B%P`^$K@$``(N> -XMF````(M#&(7`=`B)!"3H[7S^_XM5X(L"B00DZ%!V_O^%P(E#&`^$3`(``/:' -XM@@```"!T+HN&K`0``*D```0`=2&H`@^$^`$``(M5X(L"QT0D!-7:"`B)-"2) -XM1"0(Z+H)`@"+1V"%P`^%L@```(M&'(7`=&CV0%@$=&+VAB0!```!#X3@`0`` -XMBX8<`0``C01`P>`"`T80BT`XA<`/E<"$P`^%(@(``/:&8`0```$/A.8!``"+ -XMAE@$``"-!$#!X`(#1A"+0#B%P`^5P(3`=`[VAJX$```$#X3.`0``D#'2,<#V -XMAJP$```1B50D#`^4P(E$)!"+5>"+`HE\)`2)-"2)1"0(Z/6```#WAJP$```" -XM``0`='TQTH/$/(G06UY?7<.+3AR%R0^$NP$``(./@````$"#?V0!#X2A```` -XM,<")1"08BU7@BP*)?"0$B30DB40D%(U%Z(E$)!"-1VR)1"0,C4=DB40D".B! -XM)P``BU7H]H:L!````HE63`^%I````(M%[/>&K`0```(`!`")1E!U@XDT),=$ -XM)`0EN@@(Z,Q4``"#Q#PQTEN)T%Y?7P<"```BU4(BUT,BT(<]D!8!'0Y]D-] -XM`74SBT(@BT`(@#@O="C'1"0(3+H(",=$)`0#````B10DZ)PB__^!Q!P(``"X -XM`0```%M>7UW#BT-XA<`/A:,```#'!"2_N@@(Z'ER_O^%P(F%\/?__P^$HP$` -XM`(N5\/?__XD4).A-`"`T(0BU`XC7(!ZPB`^SIT"X/&`0^V7O^$VW7PC4;^.<)R:X3;="") -XM\NOF@^@!=$SHB'/^_X!Y`2YUJ`^V00(\+W0$A,!UG,=$)`R?K0@(BX7P]___ -XMQT0D!`4```")1"0(BU4(B10DZ*TF__^X`0```('$'`@``%M>7UW#BT-TBP"+ -XM`(F%\/?__^D4____QD;_`(N%\/?__XV]]/?__XE4)`S'1"0(N90(",=$)`0` -XM"```B40D$(D\).CO=?[_B%[_B3PDZ#1Q_O^%P'0R#[9>_^E-____@<0<"``` -XM,7<.0QX:L`````0```.O*C70F`(M5#(M"%(DT),=$ -XM)`0"````B40D".AFNP``@\0PN`$```!;7EW#BT,575KX!````4X/L'(M]"(N'F````(M8$(7;=#>)]HM# -XM$(E$)!"+0PB)="0(@\8!QT0D!%C4"`B)/"2)1"0,Z"M0``"+&X7;==6#Q!PQ -XMP%M>7UW#B3PDQT0D!$#4"`CH"U```(/$'#'`6UY?7<.058GE4X'L-`@``(F% -XMZ/?__XU%](F5Y/?__XF-X/?__\=%[/_____'1?C_____QT7T_____XD$).B( -XMR)!"3H=7#^_X7`#XCY````Z&AV_O^+E>3W__^#^/^) -XM0A`/A+@!``"%P`^%2P$``,=$)`0`````BT7TC9WL]___B00DZ)5O_O_'1"0$ -XM`0```(M%\(D$).B";_[_QT0D!`(```"+1?")!"3H;V_^_XM%^(D$).C$#W__^)5"00BY7D]___BT((QT0D"*S5"`C'1"0$``@` -XM`(D<)(E$)`SHFG+^_\=$)!``````B5PD#,=$)`C;N0@(QT0D!%Z@"`C'!"19 -XMH`@(Z/)N_O_'1"0,Z;D("(E<)`C'1"0$!0```(N%Z/?__XD$).B\(O__QP0D -XM?P```.BD<_[_QT0D"%;?"`C'1"0$!0```(N%Z/?__XD$).B"'?__BT7T@_C_ -XM=`B)!"3H!G+^_XM%^(/X_W0(B00DZ/9Q_O^+1>R#^/]T"(D$).CF3W__^)0AB!Q#0(```QP%M=P\=$ -XM)`C5N0@(QT0D!`4```"+A>CW__^)!"3HK!S__^DE____C;0F`````%6)Y5.) -XMTX/L)(7;BY"8````='V+0QB%P'0(B00DZ()S_O^+0R"%P'0(B00DZ'-S_O^- -XM1?C'1"0(`````(E$)`2+0Q")!"3H^6S^_XL3A=)T!HM#!(E"!(M#!(D0BT,L -XMA -XM7UW#D(UT)@!5B>57B<=64X/L#(D$).BAB70D"(E$)`2)/"3H)FK^_X7`=>.#Q`R)V%M>7UW#,=N#Q`R) -XMV%M>7UW#D(VT)@````!5B>575HG&4XG3@^PDH``(L5(-@("(72=#4QVXN#*-@("(E4)`S'1"0(!0```,=$)`22U`@( -XMB40D$(DT).A(2@``BY,PV`@(@\,0A=)US3'`@\0<6UY?7<.)T.@J____A<") -XMQW0^BT`(B40D#(L'B30DQT0D!&[4"`B)1"0(Z`=*``"+1PR)-"3'1"0$7ND( -XM"(E$)`CH\$D``(/$'#'`6UY?7<.)7"0(QT0D!/#5"`B)-"3HTDD``+@!```` -XMZY*-="8`C;PG`````%6)Y8M%"(M5$%WI$?___Y!5B>575E.![.P,``"+10B+ -XM71"+@)@```")A33S__^+0!"%P`^$8`$``(N--//__\>%///__P````#'A4#S -XM__\`````.0D/A&,!``"%VW0]#[8##[[0A=)X+XLU_"`)"#G6?B6+#0@A"0CK -XM%I"-="8`@\,!#[8##[[0A=)X"SGR?0?V1)$V`G7HA,!U38M%"+JGU`@(Z'?^ -XM__^+A3SS__^%P'0.BX4\\___B00DZ`-O_O^+A4#S__^%P'0.BY5`\___B10D -XMZ.MN_O^X`0```('$[`P``%M>7UW#C5,!B95<\___#[9[`8GY#[[1A=)XG8LU -XM_"`)"#GR?9.+#0@A"0B)C5CS___V1)$V`G2`/'/'A4SS__\`````#X0<`0`` -XMN9W4"`CK$H.%3//__P&#P0$XP@^$`P$```^V40&$TG7F//\/A#$!``"+50@/ -XMML"-!$"-A`!0`0```T(0@\`(BWT(QT0D$)W4"`B)1"0,QT0D"#S6"`C'1"0$ -XM`P```(D\).@<%___Z1#___^+50C'1"0(&-8(",=$)`0#````B10DZ/P6__^X -XM`0```.D@____QT0D!"````#'!"0!````Z-)K_O^%P(F%///__P^$^?[__XN] -XM///__XG&@\8(B7<(B7<,QT0D!"P```#'!"0!````Z)]K_O^%P(F%0//__P^$ -XMEO[__XM'"(N50//__XD"B7($.W<,#X2\!@``BXU`\___B4@$BX5`\___B[T\ -XM\___B4<(B4<0Z1'^__^)^(3`=1_I1_[__P^^PH7`>$0YQHGV?CZ+C5CS___V -XM1($V`G0Q@X5<\___`8N%7//__P^V$(32==+I%/[__XM-",=$)`3_____B0PD -XMZ`72_O_IS?[__X#Z(@^%*`8``(N]7//__P^V5P&$T@^$%@8``(!_`@`/A0P& -XM```/OL*%P'@<.<:)]GX6BXU8\___9H-\@30`>0@/MI2!-`0``(M]"(M'$(N` -XM0`$``(7`=1+IU`4``(UV`(L`A<`/A,<%```Z4!"-=@!U[HM`"(M("(F-7//_ -XM_XMP$(U&(XE$)`3'!"0!````Z'!J_O^%P(F%9//__P^$*@<``(N]9//__XN- -XM9//__XGZ@\$(@\(=B8U@\___B4\(B4\,B5<4#[8#B$<=C48"QD(!((E'&(M' -XM%(N57//__XET)`B#P`*)5"0$B00DZ,-K_O^+1Q3&1`8"`(!/'`&+30B+?0B+ -XM10B+22")C3CS__^+?TR)O43S__^+0%#'A5#S__\`````B85(\___@'D8`'D7 -XMBU4,BY*`````P>H(]]*#X@&)E5#S__^+C33S__^+21"%R8F-+//__P^$E08` -XM`,>%5//__P````"+O2SS__^+E63S__^+C4SS__^+/XF],//__XM"%(N]+//_ -XM_XE,)`C'1"0$K-0("(/``HE$)`R+1R")!"3HRF/^_XM'((D$).CO9O[_ZW^- -XM1>R-E8CS__^-??*)?"0,B40D",=$)`2RU`@(B10DZ,EG_O^#^`(/A#$#``"- -XMC8CS___'1"0$"@```(D,).B*9O[_A<")1>AT`\8``(N5+//__XV]B//__XE\ -XM)!"+30B+0@C'1"0(R-0(",=$)`0#````B0PDB40D#.C:$___BY4L\___C8V( -XM\___BT(8QT0D!``(``")#"2)1"0(Z+ME_O^%P`^%5O___XL=H!0)"(7;#X43 -XM!0``BY4L\___BT(8#[]`#,'H!8/@`83`=`OHB6?^_\<`!0```(N]+//__XM' -XM",=$)`B?K0@(QT0D!`4```")1"0,BT4(B00DZ&<8__^+10@QR8GZZ*OV__^+ -XMC3SS__^%R70.BY4\\___B10DZ$=J_O^+C63S__^+?0B)3"0$B3PDZ"ZL``"X -XM`0```.E"^___@_L"#X09`P``@_\"B?L/CK`"``"#^P,/A?P!``"+5>B%THF5 -XM://__P^$ZP$``(7V#X3C`0``B10DZ)IJ_O^+C2SS__^)A7CS__^+62B+`X7` -XM#X1*!```C76(ZPV#PP2+`X7`#X0X!```B[UL\___B40D#(V%B/O__\=$)`BY -XME`@(QT0D!``$``")?"00B00DZ"-G_O^-E8C[__^)="0$B10DZ-%E_O^%P'6Q -XMBQN)G7#S__^)'"3H'6K^_XN-+//__XF%*//__XM%J#M!%`^%://__P````"+E2CS__^+C7SS -XM___'!"0!````C40*,`.%>//__XE$)`3HYV;^_X7`B<,/A.\#``"-0"B)0Q2+ -XMO2CS__^%_W0RBY4H\___BXUP\___B00DB50D"(E,)`3H86C^_XN]*//__XM# -XM%,8$."^#QP&)O2CS__^+A7SS__^+E2CS__\#4Q2#P`&)1"0(BX5L\___B10D -XMB40D!.@C:/[_BX4H\___`X5\\___B4,8BY6`\___B5,//__XE+)(N]://__XG(@\`!B40D"(D4)(E\)`3HU&?^_XN% -XM8//__XD#BY5D\___BT(,B4,$BXU@\___.TH(#X3I`@``B1B+O63S__^)7PR# -XMA53S__\!BT7L@^@!B47L@\`!#X0V`0``B[TL\___BT<8QT0D!``(``")1"0( -XMC86(\___B00DZ,IB_O^%P`^$#_W__XV5B//__\=$)`0*````B10DZ!QC_O^% -XMP(E%Z`^$C0```(V-B//__[\!````Q@``B4WHC47HQT0D!-'4"`B-7_^)!"3H -XMFF7^_X7`B<8/A&S]__^%VP^%4/W__XDT).@@:/[_B;5L\___B85\\___@\C\__^+A5SS__^)!"3HE6?^_XG&Z3OZ__^)5PSI -XM1?G__XM!&(D$).C[9O[_B<'KD8N5+//__XM%".CU\___BX4P\___A<")A2SS -XM__\/A>KZ__^+E53S__^%T@^$9P$``(N-9//__XM1"(E1$(M]#`^W1WPE``$` -XM`/:'@0````$/A/$!``")1"0(BT4(B50D!(D$).@KM```A<`/A3SW__^+50B+ -XM4A2)50B+BI@```")C33S__^+A33S__^+E33S__^+&#G3B=@/A&\!``"+O63S -XM__^)!XE7!(N%-//__SM`!`^$30$``(N5-//__XN-9//__XL"B4@$BX5D\___ -XMB[TT\___B0>+E63S__^+30B+0A")5"0$B0PDB40D".A1[O__BX50\___A<`/ -XMA-D```"+?0B+4Q"+1R")0@B+4Q"+1TR)0@R+1U"+4Q")0A`QP.F\]O__BXTL -XM\___BT$8B00DZ$%?_O^%P`^5P.GE^O__QX4H\___`````.DI_/__B[5H\___ -XMN-34"`BY"@```/R)Q_.F#X4P_/__Z1?\__^+50C'1"0(`````,=$)`0%```` -XMB10DZ"D.___I'?;__XE:".D1_?__BT4(QT0D"-[4"`C'1"0$!````(D$).@! -XM#O__,<#I*/;__XM]",=$)`@`````QT0D!`4```")/"3HWPW__^F/^O__BT,0 -XMBY4X\___B5`(BT,0BXU$\___B4@,BT,0B[U(\___B7@0,<#IW?7__XEX!.F\ -XM_O__BY4\\___B1J+C3SS__^)VHE9!#M;!'1"BP.+O3SS__^)>`2+C3SS__^+ -XMA33S__^)RXD(B>(D\).C29/[_BU4(B7PD"(ET)`2)%"2)1"0,Z(?>__^Z -XM`0```(7`=2Z+5G@YV@^$QP$``(U#`3G"="R+10C'1"0(`0```(E\)`2)!"3H -XMY=<``+H!````BUWTB="+=?B+??R)[%W#D(M&=(U]E(L$F(LPB7PD!(DT).C] -XM7_[_A<`/A3`"```/MT6<)0#P```]`$````^$/0(``,=$)`0O````B30DZ&%? -XM_O^%P(F%+//__W0,Q@``@\`!B84L\___B30DZ!-D_O_'!"0!````B<.-0#B) -XM1"0$Z"YA_O^%P(G'#X19`@``C4`TB4<(B5\,B5PD"(ET)`2)!"3HNV+^_XM% -XMM(E'%,=$)!`&U0@(BT<(QT0D"+F4"`C'1"0$``@``(E$)`R-A33S__^)!"3H -XMB&#^_XV%-/___XV5-//__XE$)`2)%"3H,%_^_X7`#X2_````BT<(B00DZ#U< -XM_O^%P(E'+`^$Y`$``,=$)`0$````QP0D`@```.B.8/[_A<")PHE'*`^$XP$` -XM`(M'+(D"BXTL\___B?J+10CHB.S__X7`#X7]````BY4H\___BT(0A<")!W0& -XMBT(0B7@$BX4H\___B?J)>!"+A2CS__^#P!")1P2+10CHC.___S'2A<`/A'+^ -XM__^+10B)^C')Z(;N__^Z`0```.E<_O__BT4(NO?4"`CH?_'__[H!````Z47^ -XM__^+M63___^-1@&)!"3H:&'^_X7`B4%+//___O4"`B%P`^$H?W_ -XM_XM%"(E<)`C'1"0$!0```(D$).CA"?__N@$```#I%_W__\=$)`@`````Z6W_ -XM__^+10C'1"0(`````,=$)`0%````B00DZ*\)___I-____XM'+(7`#X0L____ -XMB00DZ*M@_O_'1RP`````Z1C___^)'"3H%U[^_XM'++D!````BY4P\___Q@00 -XM`(M'+`^V$(32="6#P`$PR>L*#[80A-)T%(/``8#Z.G7Q#[80A-)T!8/!`>OL -XM@\$!QT0D!`0```")#"3H)E[^_X7`B<.)1R@/A'O____'1"0$(=4("(M'+(D$ -XM).@67/[_A<`/A(+]__^)`X/#!,=$)`0AU0@(QP0D`````.CU6_[_A575E.#[#R+10B+L)@```#VAC@$```!#X0X`0`` -XM@(XX!````8M5#(M"=(L`BU`(BS"%TGYC#[X&A7'1"0(:-8( -XM",=$)`0#````BT4(B00DZ",(__^X`0```(/$/%M>7UW#A=)TU(72#XX2`@`` -XMBSW\(`D(B?.A""$)"(E]U(E%X(VT)@`````/M@L/OL&%P'@/.T74?0J+?>#V -XM1(#"+#?P@ -XM"0@YR'TFBQ4((0D(ZQ>)]H/#`0^V`X3`=!(/OL"%P'@+.<%^!_9$@C5`=>2) -XM\.B-[?__A<`/A#?___^)7"0(BU4,B50D!(M]"(D\)/]0!(/$/%M>7UW#QP0D -XM$]4(".A15_[_A<")QP^$LO[__XD$).C_7O[_B47%W^_XM]V(E] -XM[,=$)`0?U0@(B1PDZ.);_O^%P'0=@#@`=.>)1"0(BT4,B40D!(M5"(D4).A? -XM^?__Z\^+10B%P'06BWT(BT<0AO__A<")1=@/A3O___^X`0```.D#_O__B40D#(U# -XM>(E$)`B+0W2)1"0$BU4(B10DZ*1Z__^%P'35B4-TZ?+^__\/M@Z)\XUV`.D? -XM_O__@:!4"```__[__^E+_?__D)"0D)"0D)"0D)"058GE@^PXB77XBW4(B5WT -XMBUT,B7W\BT8`/MT-\C5-1C7MDQT0D$`$```")?"0( -XM@^`!]]@APHM%X(E4)`2)-"2)1"0,Z!J1_O^%P'06N`$```"+7?2+=?B+??R) -XM[%W#C70F`(M%X,=$)`P!````B7PD!(DT)(E$)`CHY93^_X7`=57OX#8"`A6B=93B<.# -XM[!R+4!#V1A@!=06_C=@("(7)#X3R````B7PD#(E,)`C'1"0$G]@("(D<).C` -XM-0``BT8(@\8(B77L.?")1?`/A+X```"+5?"+>A"+0@B%_XE%Z`^$AP```#'V -XMZV:-="8`#[;`C01`C80`4`$```-#$(/`"(E$)`2)'"3HX30``(M#$/:`5`@` -XM``1U=\=$)`P!````QT0D"`````#'1"0$`````(D<).AER/[_A@/M@06//]UD\=$)`3_````B1PDZ/.__O_KE,=$ -XM)`0FN@@(B1PDZ'$T``"+1?"+5>R+`#G0B47P#X5"____@\0<6UY?7<,/MD80 -XM//]T$@^VP(T$0(V,0E@!``#I]/[__\=$)`3_````B1PDZ)R__O^)P>G=_O__ -XMD(UT)@!5B>6#["B+50R+10B)7?2)=?B)??R)1>R)5?"+0G2+`(L8#[83@/IC -XM#X2W````=T*`^F(/A.<```"-M"8`````QT0D"`H```"+5?"+0B"+0!")1"0$ -XMBWWLB3PDZ&#.``"X`0```(M=](MU^(M]_(GL7<.`^G-T.8#Z='7$BT`(@_@$ -XM=[RZ8,$("#G`_(G>B=>)P?.F=:J+1>R+7?2+=?B+??R)10B)[%WIPZ$``(UV -XM`(M`"(/X!W>(NA_N"`@YP/R)WHG7B<'SI@^%GK10``BT`(@_@+#X=/____NN78"`@YP/R)WHG7B<'SI@^%.?___XM% -XM[(M=](MU^(M]_(E%"(GL7>DBX___B?:+0`B#^` -XMB=>)P?.F#X7^_O__BU7LBT(0BYA``0``A=L/A"$!```/MD,0@_A_=PKV!(7= -XM%`D(!'5>C4,(.4,(=`R+1>PQR8G:Z#/]__^+5>R+0A#V@%0(```$#X7@```` -XMQT0D#`$```#'1"0(`````,=$)`0`````B10DZ"#&_O^%P'43BWWLBT<0]H!4 -XM"```!`^%J0```(L;A=MUB8M5[(M"$(NP0`$``(7V='6-=@`/MD80@_A_=UWV -XM!(7=%`D(!'13C48(.48(=`R+1>PQR8GRZ*G\__^+?>R+1Q#V@%0(```$=5K' -XM1"0,`0```,=$)`@`````QT0D!`````")/"3HFL7^_X7`=0R+1Q#V@%0(```$ -XM=2J+-H7V=92+5>R+0A"+D"`!``"%TG04BT7LN=;8"`CH1_S__S'`Z?7]__\Q -XMP.GN_?__BY`@`0``A=)UV\=$)`BXV`@(QT0D!`0```"+?>R)/"3H!`'__S'` -XMZ<+]__^0D)"0D)"0D)"0D)"058GE@^PXB5WTBUT,B77XBW4(B7W\BT-XA#' -XM1"0(`````(E\)`0E``$``/?:@^(@@_@!&<#WT(/@!`G0B40D#(DT).A'KO[_ -XMA+0&2) -XM1?B+1?C'1"0$\=@("(D<)(E$)`CH5B\``#'2@\0DB=!;7<.-1?B)1"0$B1PD -XMZ!W,_O^Z`0```(7`=,?KWL=$)`@$````BT`@BP")'"2)1"0$Z"G)``"Z`0`` -XM`.N^D)!5B>6#[!B)7?2+70B)=?B+50R)??R+0QR%P`^$O0```(M">(7`=2G' -XM1"0(`0```(M#3(D<)(E$)`3H4O7^_S'`BUWTBW7XBWW\B>Q=PXUV`(/H`70+ -XMZ%I/_O^-M@````"+0G2+#_____QT7<_____\=%Z/_____'1>3_ -XM____=!.-1>2)!"3H84[^_X7`#XCP!```C47") -XM!"3H0TW^_\=$)`0"````BT7@B00DZ#!-_O^+1>2#^/]T"(D$).B`4/[_BT7H -XM@_C_=`B)!"3H<%#^_XM%W(D$).AE4/[_BT7@B00DZ%I0_O^+10@/MIAP`P`` -XM@^,!#X2/`P``B<*+@&@#``"-!$#!X`(#0A"+0#C'1"0$+P```(D$).B#3O[_ -XMA<"-4`$/A-8$``"$VP^$2@,``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!`` -XM````BTT`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B) -XM!"3H$0#__\<$)'\```#H^5#^_Y"-="8`N@$```"#Q$R)T%M>7UW#D(M%Y(/X -XM_W0(B00DZ&1/_O^+1>")!"3H64_^_XM%((/H`8/X`0^&H`(``(M-"(M!'(!( -XM6`CHJTO^_X/X_XG'#X2S`P``A<`/A"8#``"+1>B)!"3H'4_^_X-](`,/A?,# -XM``"+50B+LI@```"-1>R)1"0(BU70B50D!(M-"(D,).CMQ@``AR)1"0(BT8LB40D -XM!(M-"(D,).B.+P``A<`/A'#___^+%:`4"0B%T@^%%`0``(M5T`^_0@S!Z`:# -XMX`&$P`^%WP,``(M5T#'VB10DZ+I0_O_'1"00`0```,=$)`P`````QT0D"`G9 -XM"`B)?"0$BT4(B00DZ`]3``"%P`^$00,``+X!````BU48BP*#^`%V&8E$)`2+ -XM30B)#"3HN<;^_X7`=0:+11B#*`&+50B+0AR`8%CW@WT@`@^$G`$``#'`QT0D -XM$`````")1"0,BT4B#^/]T"(D$).AB3?[_BUW0A=MT+HM-T(D,).C` -XM3_[_BT7@@_C_#X3`_?__B00DZ#Q-_O^#Q$RZ`0```%N)T%Y?7<.+1=R#^/]T -XMU8D$).@=3?[_Z\N-M"8`````QT0D"-6Y"`C'1"0$!0```(M5"(D4).AE^/[_ -XMZ7+____'1"0(SKD(",=$)`0%````BT4(B00DZ$7X_O_I4O___XM-"(N!:`,` -XM`.D2_?__BTT(BX%H`P``Z;W\__^+30B+@6@#``#I=_S__X-](`$/A-````"- -XM1?#'1"04`0```(E$)!"+31")3"0,BT70QT0D!/;8"`B)1"0(BU4(B10DZ*PR -XM``"+30B%P`^5P`^V\(M%\`%!7(-](`(/A7;^__^+51"+"H7)#X7&`0``BTT8 -XMB0&+30BX`0```/:!K`0```(/A5'^___I2O[__\=$)`A6WP@(QT0D!`4```"+ -XM50B)%"3H>O?^_\=%T`````#I@/[__XM%W(D$).CW2_[_QT0D!!KW"`B+1>B) -XM!"3HU$O^_X7`#X7#`0``QP0D`0```.A`3?[_BT7HB00DZ,5+_O^-1?#'1"04 -XM`0```(E$)!"+51")5"0,BTW0QT0D!/;8"`B)3"0(BT4(B00DZ-$Q``"+50B% -XMP`^5P`^V\(M%\`%"7#'`Z:#]___'1"0(UKD("+X!````QT0D!`4```"+10B) -XM!"3HR?;^_XM%Z(D$).A22_[_BT7`"`T(0BU`XZ0C[__^-1?#'1"04`0```(E$)!"+312)3"0, -XMBT70QT0D!/;8"`B)1"0(BU4(B10DZ"PQ``"+30B%P`^5P`^V\(M%\`%!7.F0 -XM_/__A?8/A;S\__^+12"%P`^%L?S__\=$)!`!````BU44B50D#(M-$,=$)`0` -XM````B4PD"(M%"(D$).BJ@?[_AR)5>B+5?`/MD)0J`UT1(M:/(UZ/#G?=#&+,XM###M%$(GQ -XMR)0@B+0PR#P`&)0@R+1>B)6@2)0PR+`XD"BP,Y -XMQW0=B5`$B1.)\^E@____@VL,`8U"_XE#"(GSZ4____^+1?")4$")$^O>BT7P -XMB4@\ZX>+0P2+5?")0D"+"^EN____QT0D"`````#'1"0$!0```(M5"(D4).C0 -XM\_[_@\057B<=64X/L -XM;(E5M(E-L(MP'(7V#X1?`0``]H"N!````@^%(0$``(M-M(M9>(7;#X3I```` -XMBT%TBS7\(`D(BP"+"`^V$0^VVCGS?1NA""$)".L-@\$!#[81#[;:.?-]!_9$ -XMF#8"=>R$T@^$KP```#D=_"`)"`^/CP```(#Z7`^$F@```(#Z?`^$D0```(#Z -XM"@^$B````(U!`8E%S`^V40&$T@^$;@$``(MUS`^VPCG#B?%U*^GR````D(UT -XM)@`/MA:#Q@&($0^V%H/!`832#X1'`0``#[;".<,/A-$```"`^EQUVHU&`8E% -XMT`^V5@$/ML(YPP^$J@```(#Z7`^$EP````^V%HMUT.NZH0@A"0CW1)@T``4` -XM``^$7O___Y#'1"0("@```(MUM(M&((M`$(D\)(E$)`3HD[T``+@!````@\1L -XM6UY?7<.+5;2+0B"+`(D\),=$)`@8V0@(QT0D!`,```")1"0,Z$+R_O^#Q&RX -XM`0```%M>7UW#QT0D"`0```"+0B"+`(D\)(E$)`3H/+T``+@!````ZZ?&`5P/ -XMME8!@\$!@\8"Z1G___^+=N!```0`^$&@,``(M'3(E%Y(M'4(E%Z(U%Y,=$)`P!````B40D -XM",=$)`0G````B3PDZ";B_O^%P'08N`$```#I*O___XMUS(GQ#[;".<-UD>N, -XMQT0D!(0```#'!"0!````Z&I&_O^%P(E%N`^$^0(``(M-N(M%N(/!/(E-O(E( -XM/(E(0(M5M(M"=(GRBP`K$(M`""G0A<")1?!U#+Y+C0@(QT7P`0```(M%\`'` -XMB00DZ)Q'_O^+3;B%P(E!$`^$J`(``(M5N(E"2(M%\(E"3(M-N(G"`U$0B70D -XM!(E$)`B)%"3HFD?^_XMUN,=&1`````"#?;`!&<"#X/R#P`@(1E"+1Q"+4'R% -XMTHD6=`F+0'R)<`2+1Q"+5;B)4'R+1Q"#P'R)0@2+3;2+662+<6PY\XEUQ`^' -XM?P(``,=%P`$```#'1R)5"00B4PD#,=$)`@!````B5PD!(D\).A+N_[_ -XMA<`/A?']__^+=?"-1=3'1=0`````QT78`````,=%X`````")==R-M[````#' -XM1"00!````(E$)`S'1"0(`````(M%[(DT)(E$)`3HP$+^_X7`#X2O_O__@_@! -XM=!6)="0(B40D!(D\).@/5P``Z9O^__^+5;"%T@^$Z_[__^F+_O__B5H,Z=[^ -XM__^)03SIT/[__XV'L````(E$)!2-A\0```")1"00C8?`````QT0D&`(```") -XM1"0,*TW,B4PD"(M5S(D\)(E4)`3H;E<``(7`#X4D_?__QX>L`````0```.GF -XM_/__C8>P````QT0D&`(```")1"04QT0D$`````#'1"0,`````(N'Q````(E4 -XM)`2)/"2)1"0(Z!]7``"%P`^$IOS__^G0_/__QT0D"`````#'1"0$!0```(D\ -XM).A:[O[_N`$```#IXOO__XM%N(L0A=)T!HM`!(E"!(MUN(M&!(D0BT80B00D -XMZ$)%_O^)-"3H.D7^_\=$)`0"````B3PDZ%8S__\QP.FA^___QT0D"`8```#' -XM1"0$`````(D\).@7N0``N`$```#I?_O__XVV`````(V\)P````!5N0$```") -XMY8M%"(M5#%WI'/K__XVV`````(V_`````%6)Y8M5#(M%"%T/MDI]@^$!Z?KY -XM__^0D)"0D)"0D)"058GE@^P8BT4(B5WTB7W\BWT,B77XBW`0BT9\C9Z````` -XMBU`4A=(/A80```"#?1@!&<#WT"4`:`(`B8.`````BT4Q=PS'`QT,(```` -XM`.OHD(UT)@#'1"0$A````,<$)`$```#HT$'^_X7`=$V)PXM&?(7`B0-T!HM& -XM?(E8!(U&?(E>?(E#!.E%____BT44B40D"(M%$(E$)`2+10B)!"3HT%___X7` -XMB4,0#X5%____N`$```#I?O___XM%",=$)`@`````QT0D!`4```")!"3H<.S^ -XM_[@!````Z5G___^-M@````!5B>6![#@$``")5"0$B5WTB=.)=?B)SHE]_(G' -XMB0PDZ*`__O\QTH7`=!:+7?2)T(MU^(M]_(GL7<.-M"8`````Z/]#_O^+50B% -XMT@^$Q@```(M+#(7)#X6[````#[=#"+H"````J!)TPKL"````C47PB40D"(ET -XM)`2)/"3H8-_^_\=$)`0O````B30DB87@^___Z#X^_O^%P`^$!`$``(/[`0^$ -XMP`````^"DP```(/[`G4BBY7@^___QT0D"%C:"`C'1"0$`P```(D\)(E4)`SH -XMC.O^_XM-\+H!````A_O__C47LB70D!(E$)`B)/"3H#=[^_X/[`8G^```` -XM#[__^)="0,QT0D"%S9"`C'1"0$`P```(E$)!")/"3H6NK^_XM=[(7; -XM#X3#_O__A?]T#8M'$(7`=`8[<'20=&*)-"3H2D'^_^FE_O__@_L"==*+A>#[ -XM__^)="0,QT0D"+S9"`C'1"0$`P```(E$)!")/"3H!NK^_^NJBY7@^___B40D -XM#,=$)`B0V0@(QT0D!`,```")5"00B3PDZ-[I_O_K@H&@5`@``/_^___I0?[_ -XM_XVV`````(V\)P````!5B>6![,@```")7?2-G5C___^)=?B)UHE]_(G'C47L -XMB40D&(D<),=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D!#8` -XM``#H7;<``(DT).@I0?[_B70D"(D<)(E$)`R-1=R)1"0$Z.ZR``")7"0$B3PD -XMZ")/``"+7?2+=?B+??R)[%W#D(UT)@!5N9;:"`B)Y8'LZ`0``(EU^(MU"(E] -XM_(U]E(GZB5WTB?#'1"0$`````,<$)`$```#HF_S__X/X`@^$4@$``(M&$(M` -XM?(M`%(7`#X5B`0``]X:L!`````8``'05,<"+7?2+=?B+??R)[%W#C;8````` -XMQP0DH]H(".BX./[_A<")PP^$50$``(D$).AF0/[_QT0D%`````#'1"00`0`` -XM`(E<)`C'1"0$H]H("(DT)(E$)`SHVOK__X7`#X7(````BT80BT!\BT`4A<`/ -XMA>\```#WAJP$````!@``=8#VAJ@!```!#X3C````BX:@`0``C01`P>`"`T80 -XMBW@XA?\/E<"$P`^$5/___XV=-/___[FKV@@(B=J)\,=$)`0`````QP0D```` -XM`.BF^___A<`/A?P```"YG=H("(G:B?#'1"0$`````,<$)`````#H@?O__X/X -XM`@^%VP```(N%-/___SM%E'4/BX4X____.T68#X3!````NIW:"`B)\.CR_?__ -XMA<`/A*T```"X`0```.G-_O__NI;:"`B)\.C4_?__A_O__B30DZ.=H___ID?[__XDT).C::/__Z03___^+GJ`!``"%VP^5P.DD -XM____QP0DI-H(".A--_[_A<")PP^$C0```(D$).C[/O[_QT0D%`````#'1"00 -XM`0```(E<)`C'1"0$I-H("(DT)(E$)`SH;_G__X7`#X25_O__Z5C___^#^`)T -XM((M&$(M`?(M(%(7)#X07_O__B30DZ%1H__\QP.D*_O__BX4T____.T64=0N+ -XMA3C___\[19ATRKJKV@@(B?#H^_S__X7`=+KI"/___\<$)+^Z"`CHJC;^_X7` -XMB<,/A"K^__^`.``/A"'^__^)1"0,C84T^___QT0D$*O:"`C'1"0(N90(",=$ -XM)`0`!```B00DZ`T[_O^-C33[__^)^HGPQT0D!`$```#'!"0`````Z.OY__^% -XMP'5(C84T^___QT0D$)W:"`B)7"0,QT0D"+F4"`C'1"0$``0``(D$).C!.O[_ -XMC8TT^___B?J)\,=$)`0!````QP0D`````.B?^?__@_@"#X6$_?__C94T^___ -XMB?#H*?S__X7`#X1O_?__Z3+^__^-M@````"-OP````!5B>6#?0P^BT40=`1= -XM,<##B44,7>D7@```C;0F`````%6)Y8/L&(EU^(MU"(E]_#'_B5WTBYZ8```` -XMA=MT4_:&KP0```%U:3'_B30DZ&^C__^%P'52BT,LA)]HDT)&:_`0#H9"L``(7`=8GK -XMA8VT)@````"-O"<`````58GE@^P8QT0D!#P$``")7?2)=?B+=0B)??R+?0S' -XM!"0!````Z,LY_O^%P(G#=&*)AY@```")`XE#!,=`"`````"-0`B)0PPQP(7V -XMQT,0`````'0PBX:8````BT`8AQ=P\=$)`@`````QT0D!`4```")-"3H -XM5^3^_[@!````Z]3'1"0(`````,=$)`0%````B3PDZ#CD_O^X`0```.NUD%6) -XMY5=64X/L3(M%"(M`'(7`#X1Z!0``BW4,BT9D@\`!B40D!(M%"(D$).A1L?[_ -XMA<`/A,P$``"+10B%P'07BTT(BUD0A=MT#?:#50@```$/A.<$``"-1?#'1?`` -XM````QT0D#``!``")1"0(QT0D!`````"+=0B)-"3H4EC__X7`B478#X1"!0`` -XMBTT,]D%\!'0$@T%L`8MU#(M&9(M6;(G'.=")5>`/A!$%```Y1>#'1=0!```` -XM#X*F`0``QT7(`````,=%S`````"-M@````"-1>R-5>B)1"00B50D#,=$)`@` -XM````B7PD!(M-"(D,).CKKO[_A<`/A2X$``"+1>R%P`^$2`$``(M5S#';C50" -XM`HM%"(E5S(7`#X2T`0``BTT(BUD0A=L/A*8!``"+1=@Y0W0/A)H!``"+5R%]HEU -XMQ(EUO'1EBTWH#[X!B`/AG3^__^+=0R+1F2+50B)0DR+30R+<62+66PYWG(6Z3<" -XM``"-M@````"#ZP$YW@^#)@(``(E<)`2+10B)!"3H%K;^_X7`=.*+50B%TG06 -XMBU4(BT(0AR+30@IT(/H`8E!4#M]X,=%U``````/AJ+] -XM___I*?___XM-Z(E$)`B)3"0$BT7R+5>@!1=P!1<@/OG00 -XM_^G(_O__BTWH@#DI#X2E_O__B70D!,<$)-/:"`CH*3/^_\=%T`````"%P'07 -XMBT7R#P@<@!B57_/__ -XMC4-XB50D#(E$)`B+0W2)1"0$BTT(B0PDZ$Q4__^%P`^$/P$``(E#=.E5_O__ -XMB57$QT70`````(M%Q.F0_O__B57$BT7$Z87^__^+3=2%R0^$J````(M%"(7` -XM=!:+50B+0A"%P'0,BTW8.4AT#X0]`0``BW78B30DZ&`V_O^+50R+30B+0FP# -XM06B#P`$K0F2)06B#Q$PQP%M>7UW#QT0D"+3:"`C'1"0$`P```(M5"(D4).@2 -XMW_[_@\1,N`$```!;7E]=PXMU#(U'_XE&;(M&9.DF_?__@7MX_P````^&C``` -XM`(M3=(E5V(M#>(E%\(&+5`@````!``#I)?O__XM5V"E5W(M-W(ET)`2)5"0( -XMB4PD#(MU"(DT).@,K_[_A<`/A##____I#?W__\=$)`@$````BU4,BT(@BP") -XM1"0$BTT(B0PDZ*"I``"#Q$RX`0```%M>7UW#C4@!B4W@B4YLZ>'Z__^X`0`` -XM`.GV_/__C4-XQT0D#``!``")1"0(BT-TB40D!(M%"(D$).C:4O__AR+`8E%\`^V.(GZ@/HC#X2@````@_L!=$Z+ -XM5@3'1"0@"````(E<)!R+0@B)1"08BP*+50B)1"04BP:+0`B)%"3'1"0(```` -XM`,=$)`0`````B40D$(M%\(E$)`SHUC+__XG"Z6[___^+1?"`>`$`=:F)^H#" -XM`0^$A`$``(M-"(M1$(GY#[;!#[:,`E,'``"#^0P/AQ0!``"X`0```-/@J8`2 -XM```/A0T!``"+30R+<73I9?___XM-\`^V40&#^G\/AU#____V!)7=%`D(!`^$ -XM0O___P^V00(/MM"#^G]V%^L?C;8`````#[9!`P^VT(/Z?W<-@\$!]@25W10) -XM"`1UYX3`#X4-____BU8$QT0D(`D```"+3?")7"0?[__XM5"(M"$#'2B["`"```A?8/A&/^__^+10R+2'2+402+0@B)1"04 -XMBP*+5?")1"00BP&+30B+0`B)5"0(B5PD!(D,)(E$)`S_UHG"Z2K^__^+50R+ -XM@@! -XM="/'1"0(6-L(",=$)`0#````B1PDZ&G:_O^X`0```(/$%%M=PXU!9,=$)`P! -XM````B40D"(L"#[8`B1PDB40D!.B^RO[_@\046UW#QT0D"`0```"+02"+`(D< -XM)(E$)`3H/Z4``+@!````Z[20D)"0D)"0D%6)Y8'LB````(E=](M=#(EU^(E] -XM_(M#>,=%D)W:"`B%P'0F@^@!=`CHERO^_XUV`(M#=(L`BP")19")1"0$BT4( -XMB00DZ%=R_O_V0WT!=1J-192)1"0$BT60B00DZ!,M_O^%P`^$D0$``(M%D,=$ -XM)`BD`0``QT0D!`$&``")!"3H4"_^_X7`B<,/B#@!``#'1"0$&O<("(D$).CV -XM+?[_A<")QP^$>P$``(E$)`2+10C'1"0,`````,=$)`B"VP@(B00DZ$DR__^% -XMP`^%X0```(L=H!0)"(7;#X7#````]D<,0`^%R0```(M%",=$)`P!````QT0D -XM"([;"`B)?"0$B00DZ`HR__^%P`^%H@```(L-H!0)"(7)#X48`0``]D<,0`^% -XMB@```(M%",=$)`P"````QT0D")/;"`B)?"0$B00DZ,LQ__^%P'5GBQ6@%`D( -XMA=(/A?0```#V1PQ`=5.+10B)?"0$B00DZ*0&__^%P'5`H:`4"0B%P`^%Z``` -XM`/9'#$!U+8D\).B)+_[_A<`/A.@```#H?"S^_XLPZR.-="8`B3PDZ*PM_O^% -XMP`^$-____^A?+/[_BS")/"3H52_^_^A0+/[_B3"+19#'1"0,GZT(",=$)`0% -XM````B40D"(M%"(D$).@XW?[_N`$```"+7?2+=?B+??R)[%W#BT60QT0D#+#; -XM"`C'1"0$`P```(E$)`B+10B)!"3H!-W^_[@!````Z\KH["O^_XLPB1PDZ'(L -XM_O_KBXD\).@8+?[_A<")]@^%:O___^G;_O__B3PDB?;H_RS^_X7`#X53____ -XMC78`Z?C^__^)/"3HYRS^_X7`D`^%.O___^D(____BT60QT0D#)G;"`C'1"0$ -XM!````(E$)`B+10B)!"3H@]S^_S'`Z4G___^0D)"0D)"0D)"0D)!5B>575E.# -XM[$R+30B+10R+41R%T@^$:`,``(M(;(MP9(E-V(M`5#GPB47<#X.S`0``BUHX -XMQT74`````(7;=0CK/8L;A=MT-X![$">0C70F`'3OBT,(.?!RZ#E%W'+C@&,1 -XM_8E<)`2+50B)%"3H[[7^_\=%U`$```"+&X7;=7UW#.<@/AT7^___'1"0(X-L(",=$ -XM)`0#````BT4(B00DZ%G5_O^#Q$RX`0```%M>7UW#B?.+==R)3>"-="8`@VW@ -XM`8-]X/\/A`P"``"-3>R-1>B)3"00B40D#,=$)`@!````B5PD!(M5"(D4).B] -XMH/[_A4_?__Z<#^__^-0WC'1"0,``$` -XM`(E$)`B+0W2)1"0$BU4(B10DZ(M(__^%P`^$6O[__XE#=.NFQT0D"`0```"+ -XM0""+`(D,)(E$)`3HY9X``+@!````Z3?^__^+1=R+5=PK1*O[_BT4(BU77UW#BU4,@$W@`8M"5,=%Z`````")1>2-1>R) -XM1"00C47DB40D#(U%R,=$)!0!````QT0D"`````")1"0$B3PDZ,<+__^%P'6A -XM`W7L,=LK=<#'1U``````B7=,ZY+'1"0(!````(M5#+L!````BT(@BP")/"2) -XM1"0$Z/Z<``"#Q$R)V%M>7UW#D)"0D%6)Y8/L&(M5"/:"L`(```%T/HN"J`(` -XM`(T$0,'@`@-"$(M(.(7)#Y3`A,!T,L=$)`@,W`@(QT0D!`,```")%"3HB]'^ -XM_[@!````R<.-="8`BX*H`@``A<`/E,"$P'7.QT0D"$C<"`C'1"0$`P```(D4 -XM).A9T?[_N`$```#)PY"058GE@^PHB77XBW4,B7W\BWT(B5WTBT9TBQB+`XD\ -XM)(E$)`3HN&G^_P^W1GR)/"0E``$``(E$)`3HD(VT)@````!5B>53@^PDBUT(BT,_O^%P'00N`$```"#Q"1;7<.0C70F -XM`,=$)`0(````B1PDZ+`\__^%P'757,?]64X/L#(MU#(M% -XM"(`^`(N8F````'1IQT7P`````.LEBX,T!```#[84-XA4#P`&`^@J)@S0$ -XM``!T(H/'`8`\-P!T*8&[-`0````$``!VSXM%"(D$).A/____Z\*#QP''1?`! -XM````@#PW`'77BT7PA6#[#B+ -XM10B)??R)7?2)=?B+L)@```"-11")1?"+GC0$``")1"0,BT4,B40D"+@`!``` -XM*=B)1"0$C40>-(D$).AN(/[_B<>-!!B`?#`S"HF&-`0``'0'/0`"``!V"XM% -XM"(D$).BV_O__B?B+7?2+=?B+??R)[%W#C;0F`````%6)Y5=6B<93@^PLB4W@ -XMBTT,B57D]H`X`@```0^$`0(``(M0$(N`,`(``(T$0(M$@CB%P`^5P(3`=`.` -XMS03VAM`#```!#X3*`0``BX;(`P``C01`BT2".(E%\(M5X('A``0``(L:B4W< -XM@VT(`8-]"/\/A(\!``"+3>0/M@$\"0^$\P```#S_#X2I`0``BU80#[;`C01` -XM`<"-C`)8`0``B4WH#[:4`ET!``")5>R+31"%R74.BWWL`=\[?C@/@IP```"+ -XM5>PQ_X72=7?IGP```)"+11"%P'4'BU7H#[8$%XE$)`C'1"0$BNP("(DT).B. -XM_O__BT80]H!4"```!`^%`P$``,=$)`P!````QT0D"`````#'1"0$`````(DT -XM).A^D?[_AQT+3E>.'6*QT0D -XM!":Z"`@QVXDT).B8_?__Z7/___^+1>B)^XDT)(E$)`3H@OW__X-%Y`'I\?[_ -XM_XM]W(7_#X4*____.UXX<^`QP(D9@\0L6UY?7<.+AL@#``")1?#I./[__XN`,`(``(M6 -XM$(7`#Y7`Z0'^___'1"0$_P```(DT).@;B/[_QT0D!/\```")-"2)1>CH"(K^ -XM_XE%[.E,_O__58GE5U93@^PLBUT(QT7L`````(MU#/:#F`(```$/A($```"+ -XM@Y`"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=#&-3>RZLMP("(G8QT7PLMP(",=$ -XM)`@`````QT0D!`````#'!"0(````Z#7]__^%P'4HC57PC47HB40D$(E4)`S' -XM1"0(`0```(L&B1PDB40D!.@ME_[_AS'1"0$`````(M&!(GYB00DB=CHROS__X7` -XM=;V+5?"+11`#5@2)5?"+2`2+1@2^`0```#G!=`2)SBG&B?F)V,=$)`A>```` -XMQT0D!`````")-"3HB_S__X7`#X5Z____BT,0]H!4"```!`^%:O___\=$)`P! -XM````QT0D"`````#'1"0$`````(D<).CSCO[_A____\=$)`0FN@@(B1PDZ"KZ__\QP.EF____ -XMC78`QT0D"`````"+11B-312)%"0E``0``(E$)`2+50R)V.@,^___A<`/A"G_ -XM__^#Q!2X`0```%M=PXM#$/:`5`@```0/A1K____I3/___XE$)`2-312Z+?`( -XM"(G8QT0D"`````#'!"0!````Z,+Z__^%P`^$,/___^NTD(VT)@````!5B>57 -XM5E.#[#R+=0B+?1B+1AR%P`^$@P$``(M%$(M5%(L8BQ(YTXE5S`^'5P$``(GX -XM)0`"``")1=#IX````(GVQT7HPMP("(M5Z(U-\(GPQT0D"`````#'1"0$```` -XM`,<$)`@```#H1?K__X7`#X4=`0``C47LB40D$(U%Z(E$)`S'1"0(`0```(E< -XM)`2)-"3H.Y3^_X7`#X7S````BU7LA=)U#/?'``0```^$M@```(E\)!"+1?") -XM5"0(B40D#(M%Z(DT)(E$)`3H\OW__X7`#X6Z````BT80]H!4"```!`^%H``` -XM`,=$)`P!````QT0D"`````#'1"0$`````(DT).A*C/[_A -XMB5PD#,=$)`B[W`@(QT0D!`H```")%"3H:1S^_XU%WHE%Z.GA_O__QT0D!":Z -XM"`B)-"3H*OC__XM&$/:`5`@```0/A&#___^#Q#PQP%M>7UW#N`$```"#Q#Q; -XM7E]=P\=$)`@$````BU4,BT(@BP")-"2)1"0$Z(>2``"X`0```.O558GE5E.# -XM[""+70R+=0@/MT-\B5PD!(DT)(E$)!"-0VR)1"0,C4-DB40D".@0_O__N@$` -XM``"%P'4.BT-L,-*)1DR+0W")1E"#Q"")T%M>7<-5B>564X/L((M=#(MU"`^W -XM0WR)7"0$B30D@,P"#[?`B40D$(U#;(E$)`R-0V2)1"0(Z+K]__^Z`0```(7` -XM=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PXUV`(V\)P````!5B>564X/L((M= -XM#(MU"`^W0WR)7"0$B30D@,P$#[?`B40D$(U#;(E$)`R-0V2)1"0(Z%K]__^Z -XM`0```(7`=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PY"0D)"0D)"0D)!5B>53 -XM@^PTBUT(BTT,BT,575E.#[#R+?0B+1Q")1=2+112+EY@```")5="+ -XM,,=%V`````#'1=P`````QT7@R]P(".G/````C;8`````BUW8NA^%ZU&#PP&) -XMV/?BP>H%:])D.=-U=XM'$/:`5`@```0/A;X```#'1"0,`0```,=$)`@````` -XMQT0D!`````")/"3HUXC^_X7`=1"+1Q#V@%0(```$#X6*````BT4")/"2)1"0$_]+'1>``````BT7P -XMBU70B40D$(M"+(ET)`C'1"0$`0```(D\)(E$)`SH.Y?^_X7`#X7L````BT7P -XM@\8!`47R)1"0(BT4,B3PDB40D!.@IM_[_ -XMBU7R%TG08A?]T#(M'$(7`=`4[6'1T>XD<).AR&O[_,=OK28M%$(D$).B3&/[_ -XMA<`/A%G___^+50R[`0```,=$)`R?K0@(QT0D!`4```")/"2)5"0(Z#/(_O^+ -XM11")!"3H'!K^_XM%'(7`=1R+5=3'1"0(`@```,=$)`0`````B3PD_Y)H"``` -XM@\0\B=A;7E]=PX&@5`@``/_^__\QV^O,C;8`````C;PG`````%6)Y8'LJ``` -XM`(E]_(M]"(E=](M5##';B77XBT<0B85X____BT)XAL -XM!```J`(/A:D"``"+10SV@((````@#X0C`P``BT!TBP28BP#'1"0$(+H("(D\ -XM)(E$)`CHW_'__XD\).CW\/__BX>L!```J!!U"PT```@`B8>L!```J`)T)HN5 -XM>/___\=$)`0!````B3PD_Y*@"```A<`/A2$#``"#CZP$```4BU4,QT0D&`(` -XM``"+0G2+E73___^+!`*+`,=$)`P`````B3PDB40D%(U%Z(E$)!"+10R#P&2) -XM1"0(BT4,B40D!.A#P___A<`/A1,!``"+50PQR8.*@````$"+5>CVAZP$```" -XMB5=,#X2M````QT=0`````(U'4(E$)`B)5"0$B3PDZ-(S__\QR>F,````BX5\ -XM____BU4,B70D"(D\)(E$)`R)5"0$Z&Z1__^%P`^%K@```(M5#(M">(7`>!*# -XM^`$/CB+]__^#^`(/A)\!``"+50S'1"0(`0```(M"=(L`BP")/"2)1"0$Z+R* -XM``"Y`0```.LFD(UT)@#'1"0,GZT("(ET)`C'1"0$!0```(D\).B$Q/[_N0$` -XM``"+7?2)R(MU^(M]_(GL7_S__XM5#(M"9`-%\(E'3.D`____BX=<`P``BY5X____ -XMC01`BT2".(7`#Y7`Z>7[__^+50SV@H(````@#X2!_?__BT)TBP28BP#'1"0$ -XMU=H("(D\)(E$)`CH5J(!`(N'K`0``.E:_?__BU4,BT)TBU`$BT<@BS(/MT`8 -XM)80```"#P(`/A*````")="0$B3PDZ']6_O_INOO__XD<).CV$_[_B?;IS/[_ -XM_XM5#,=$)`@)````BT(@Z1[^___'1"0$);H("(D\).@X[O__Z>3\__^)="0, -XMQT0D"#3="`C'1"0$`P```(D\).B7O?[_Z;#^___'1"0("@```(M"((M`$(D\ -XM)(E$)`3HF(@``+D!````Z?_]__^+50S'1"0(`P```(M"(.FQ_?__BT((B70D -XM!(D\)(E$)`CH>##__X7`B<-T%(M'((M`"(D$).A(%/[_BT<@B5@(BT<@9H%@ -XM&#__BT<@9H-(&`R+5Q#'1"0(`0```(M'((M`"(D\)(E$)`3_DIP(``#IROK_ -XM_\=$)`@`````QT0D!`4```")/"3HXKS^_[D!````Z6G]__^0D)"0D)"0D%6) -XMY5=64X/L+(M]"(M'$(MP$(U0$(E5Y#G6#X39````QT7H`0```,=%[`````#' -XM1?``````ZT&#?>@!=!?'1"0$TM0("(D\).@#[?__QT7P`0```(M&((M`"(D\ -XM)(E$)`3HZNS__XLV.77D#X2O````@T7H`8M'$/:`5`@```0/A8P```#'1"0, -XM`0```,=$)`@`````QT0D!`````")/"3H6X#^_X7`=0R+1Q#V@%0(```$=5R+ -XM1B"+0`B)!"3HT1/^_XM=\`'#`5WLBT7UW#C78`C;PG`````%6)Y5.#[!2+30R+70@/MT%\@^`<@_@, -XM=%>#^!1T,H/X!+H"````="W'1"0("@```(M!((M`$(D<)(E$)`3H+H8``(/$ -XM%+@!````6UW#C78`N@$```")5"0(BT%8B1PDB40D!.A(Z@$`@\046UW#B?8Q -XMTNOAC;8`````C;\`````53'`B>564X/L((M5#(MU"(N:@````(M*>('C``$` -XM`(7)=`>+0G2+`(L`B40D"(U%](E<)`R)1"0$B30DZ-_T`0"Z`0```(7`=18P -XMTH7;=!"+1?2!CJP$````$```B484@\0@B=!;7EW#C;0F`````%6)Y5WIQ^\! -XM`)"0D)"0D)!5B>56B=93BY"`````B0` -XM````BU@(N`$````Y^W1),?;V@Z\$```!=#6+@X````"+2`2X`0```(G*@^$? -XMP>H%T^`)A)58____BX.`````BT`$.?!^"8G&C;0F`````(L;.?MUO(U&`8U5 -XMX(E4)!"-E5C____'1"0,`````,=$)`@`````B50D!(D$).C"!_[_@_C_=!&% -XMP'4U,<"!Q%P!``!;7E]=PXD<),=$)`B*W0@(QT0D!`4```#H8+?^_X'$7`$` -XM`+@!````6UY?7<.+A;S^__^+<`@Y_@^$"O____:&KP0```$/A`H!``"+AH`` -XM``"+2`2)R(/A'\'H!8N$A5C____3Z*@!#X3H````C57PB50D!(DT).CQA/[_ -XMA<`/A<<```"%]@^$V````(M>$(7;#X3-````]H-5"````0^%P````(%[>/\# -XM```/AFX#``"+0W2)A<#^__^+0WB)1>R!BU0(`````0``BYW`_O__BY:````` -XMB=B#P`&)ES'1"0,``0``(E$)`C'1"0$`````(DT).B3*O__ -XMAS'1"0$_P```(DT).C0=?[_@_@(#Y3"@_@,#Y3`Z[['1"0(A-T("+L!```` -XMQT0D!`4```")-"3HU;3^_^ER_O__.=@/AAL!```IV(G:B87$_O__C47HB00D -XMBXW$_O__B?#H6_K__X7`=`N+3>B%R0^$J0```,=%V`````"X(````,=%W*"& -XM`0#'A(74_O__`````(/H`77PBY7(_O__N`$```"+2@2)RH/A'\'J!=/@"825 -XMV/[__XU%V(E$)!"-A=C^___'1"0,`````,=$)`@`````B40D!(N5R/[__XM" -XM!(/``8D$).A9!/[_@^@!=2V+A<3^__^)7"0$B40D"(N5P/[__XD4).CH"?[_ -XMBYW`_O__`YW$_O__Z5W]__^+C<3^__^)VHGPZ/3Z__^%P`^%JOW__XM%\(U0 -XM`8E5\(N5Q/[__XE<)`R)1"0(QT0D!`$```")5"00B30DZ+&&_O^%P'4VBT7P -XMB49,BY7$_O__@^H!@[W$_O__`1G`]]`APHE64,=$)`0!````B30DZ%ZV`0") -XMP^D9_?__NP$```#I#_W__X&@5`@``/_^___I*/W__XU#>,=$)`P`!```B40D -XM"(M#=(DT)(E$)`3HX"?__X7`#X0&_?__B4-TZ63\__]5B>6#[$B)=?B+=0B- -XM1?")7?2)??R)1"0$B30DZ/^`_O^%P'0;NP$```")V(MU^(M=](M]_(GL7<.- -XMM"8`````C47DB40D$(M%\(U]V(E\)`S'1"0(`0```(DT)(E$)`3H>W[^_X7` -XM=;R+3>2-1>"+5=B)!"2)\.AD^/__A$(7; -XM#X3<````]H-5"````0^%SP```(M%Y(/H@#M#>`^'E0$``(M3=(E5T(M#>(E% -XM[(&+5`@````!``"+1>2)1"0(BT78B40D!(M%T(D$).@O"/[_QT7,`0```.L) -XMB?;'1")!"2)\.@%]___AB+1>B+OH`` -XM``")1"0(BT78B40D!(M'!(D$).C``/[_.T7HB<-T9X7;=%;'1"0(A-T(",=$ -XM)`0%````B30DZ/FP_O_I`____X&@5`@``/_^___IW_W__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AK)?__A<`/A+C]__^)0W3I0?[__^BZ!/[_QP`%````ZYW' -XM1"0(`0```,=$)`0FN@@(BT<$B00DZ#<`_O^#Z`$/A77___^+?$(7;=%N+5=`Y4W1T4XM%Y`-%Z#M%['=UBT7H,=N)1"0(BT78 -XMB40D!(M%T`-%Y(D$).@E!O[_BT7D`T7HB30DB40D#(M%T(E$)`B+1?")1"0$ -XMZ(&`_O^%P`^5P^DV_O__@:-4"```__[__XM%Y`-%Z#M#>'="BT-TB470BT-X -XMB47L@8M4"`````$``.N+BU70B40D#(U%[(E$)`B)-"2)5"0$Z'`D__^%P`^$ -XMO?S__XE%T.EA____B40D#(U#>(E$)`B+0W2)-"2)1"0$Z$8D__^%P`^$D_S_ -XM_XE#=.N7B?:-O"<`````58GE5U93@>S,!```BU4(BT4,]H*L!````@^$"@(` -XM`(M0>(72=!.)1"0$BTT(B0PDZ&NN__^%P'4?QT0D"`````#'1"0$-````(M% -XM"(D$).@\N/[_A% -XM8/O__ZO="`BX<````+^QW0@(HO@0"0CI@P```,8%]1`)"'3H8`7^_XN55/O_ -XM_\<$)/`0"0B)5"0(B40D!.B6!?[_QT0D!)`!``#'!"3P$`D(Z.($_O_'!"3P -XM$`D(Z,8"_O_'1"0(`````,=$)`0"````QP0D\!`)".BJ`_[_@_C_B<8/A2(! -XM``")'"3H9P+^_P^V!X/'`83`#X3A````Q@7U$`D(<`^V1__'1"0(`````,=$ -XM)`0"````QP0D\!`)"*+Y$`D(Z%T#_O^#^/^)PP^%1O___^B-`?[_@S@"=;'' -XM1"0(7`H)",=$)`0%````BT4(B00DZ&FM_O_K0\=$)`@`W@@(QT0D!`,```") -XM%"3H3ZW^_X'$S`0``+@!````6UY?77UW#BXU@^___#[9!`8/!`8F-8/O__X3` -XM#X5R_O__Z,@`_O_'``(```#I-?___XN-3/O__XE!"(G(@\`4B5D$=!#'1"0$ -XM\!`)"(D$).BJ!/[_BX50^___A`'^_\=$)`@!````QT0D!,?="`C'!"3.W0@(Z%P!_O_'1"0(`0```,=$ -XM)`3-H0@(QP0DUMT(".A``?[_Z`L"_O_'1"0(`````,=$)`1A=``@BXU,^___ -XMBT$(B00DZ`K]_?^+E4S[__^+0@2)!"3H.0#^_\=$)`0`````BXU,^___BT$( -XMB00DZ,#\_?_'1"0$`0```(N53/O__XM""(D$).BG_/W_QT0D!`(```"+C4S[ -XM__^+00B)!"3HCOS]_XN53/O__XM""(D$).C=__W_BTT(]H%P`P```0^$V@$` -XM`(N!:`,``(T$0,'@`@-!$(M8.,=$)`0O````B1PDZ`O^_?^)VH7`=`.-4`&) -XM5"0$QT0D#`````#'1"0(G-X("(D<).@6_/W_QT0D#.FY"`B)7"0(QT0D!`4` -XM``"+50B)%"3HXZ_^_\<$)'\```#HRP#^_\=$)`@`````QT0D!`4```"+50B) -XM%"3HK*K^_[@!````Z6_[__\QP(VU:/___\=$AGP`````@^@!@_C@=?"+30BX -XM`0```,=%Z`4```#'1>P`````BXF`````B8U8^___BTD$BB)5"00QT0D#`````#'1"0(`````(ET)`2+C5C[__^+002#P`&) -XM!"3H6?K]_X/X_P^$Z````(7`#X3#````C85H^___B85$^___B<.+A43[__^) -XM7"0$*=@%``0``(E$)`B+E5C[__^+0@2)!"3HY`'^_X/X_P^$KP$``(7`#X6[ -XM````QT0D".W="`C'1"0$`P```(M-"(D,).BTJ?[_BT4(B00DZ/GO__^X`0`` -XM`.EL^O__QT0D"&.+"`C'1"0$!0```(M%"(D$).B$J?[_Z5O\___'1"0(UKD( -XM",=$)`0%````BU4(B10DZ&2I_O_I._S__XM%"(N8:`,``.DJ_O__QT0D"-S= -XM"`C'1"0$`P```(M-"(D,).@VJ?[_ZX#'1"0(BMT(",=$)`0%````BU4(B10D -XMZ!FI_O_I8/___P'#.9U$^___#X,Q`0``C95H^___C;UI^___B95<^___ZV:- -XM3?")3"0$BT4(B00DZ-!V_O^%P`^%)/___XU'_RN%7/O__XE$)!"+E5S[__^) -XM5"0,BT7PQT0D!`````")1"0(BTT(B0PDZ*=[_O^%P`^%Z_[__XF]7/O__XGX -XM@\EC____BU4(BT(0@+A2!P``_W6MB10DQT0D!/\` -XM``#H!FG^_X/X"`^4PH/X#`^4P.O"QT0D"(3="`C'1"0$!0```(M%"(D$).@- -XMJ/[_Z53^__\YA43[__]S*RN=7/O__XV5:/O__XE<)`B+A5S[__^)%"2)1"0$ -XMZ,+]_?^-C6C[__^-'!DYG43[__\/A,/]__^-1>C'1>@`````QT7LH(8!`(E$ -XM)!#'1"0,`````,=$)`@`````B70D!(N56/O__XM"!(/``8D$).C`]_W_@_C_ -XM#X23````@^@!#X1T_?__C47PB40D!(M%"(D$).A8=?[_A<`/A:S]__\KG43[ -XM__^-E6C[__^)5"0,B5PD$(M%\,=$)`0`````B40D"(M-"(D,).@R>O[_A<`/ -XMA7;]__^+10B)V8V5:/O__^@J[O__A<`/A=KW__^+50B+0A"!BJP$```````! -XM@XA4"```(#'`Z<'W__^-="8`QT0D"(K="`C'1"0$!0```(M-"(D,).C5IO[_ -XMZ1S]__]5B>6#[!B+50R+30B+0GB%P'44QT0D!`(```")#"3H/;/^_S'`R<.+ -XM0B"+0!")1"0(BT)TB0PDB40D!.A@O/[_R87`#Y7`#[;`PY"0D)"0D%6)Y5=6 -XM4X/L/(M]#(M=$(UU[.AM^OW_QP``````QT0D"`````")="0$B3PDZ//V_?^# -XMP`%U-.A)^OW_@S@$B?9TT,=$)`@TW@@(QT0D!`4```"+10B)!"3H(Z;^_[@! -XM````@\0\6UY?7<.+5>R)T(/@?X/X?P^$O0$``(7`#X3^````BWT8A?]T#(/X -XM#8UV``^$H@$```^V`SP@#X2'`0``/`D/A'\!``"-1?"_/-X("(E<)`2)1"0( -XMBU4(B10DZ#R9_O^)!"2)P^AV_?W_B<:+1>R$P'@%OT^-"`B)PKB@X`@(@^)_ -XMZPX]F.$("`^$3P$``(/`"#L0=>Z+0`2#_A2Z/O$("'<%ND^-"`B#_A2)1"08 -XMB?")?"0EF_O__@\,!Z5____^#Q#PQP%M>7UW#B50D#,=$)`A*W@@( -XMQT0D!"@```#'!"1`(0D(Z,+X_?^X0"$)".F1_O__N4^-"`CI9?___X&@5`@` -XM`/_^__^X`0```.G8_?__C;8`````58GE4X/L%(M%"(M8$,=$)`@`````QT0D -XM!#0```")!"3HRZS^_[H!````A<`/A58!``"+50CV@JP$```"#X5.`0``BT48 -XMA<`/A80!``"+112%P'0EBU44B50D!(M-"(D,).@*U/__QT0D!":Z"`B+10B) -XM!"3H]]/__XM5"(D4).B]OW_A<"-4`$/ -XMA+H!``"$VP^$I`$``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!``````BTT0 -XMQT0D"-NY"`B)5"0$B00DB4PD#.@#]/W_BT4(]H!P`P```0^$3@$``(G"BX!H -XM`P``C01`P>`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B)!"3HK*?^ -XM_\<$)'\```#HE/C]_\=$)!``````QT0D#`````"+51")1"0$B50D"(M-"(D, -XM).CJ^___B<*#Q!2)T%M=P\=$)`0!````B10D_Y.@"```A\=$)`@"```` -XMBTT,BT$@BP")1"0$BT4(B00DZ$QM``"#Q!2Z`0```%N)T%W#QT0D!":Z"`B+ -XM10B)!"3HC-+__XM%%(7`#X5E_O__Z87^___'1"0(U;D(",=$)`0%````BTT( -XMB0PDZ.&A_O^#Q!2Z`0```%N)T%W#C70F`,=$)`@`````QT0D!`````"+50B) -XM%"3_DUP(``"+30B#B:P$```4BT48A<`/A/S]___I>____XG"BX!H`P``C01` -XMP>`"`T(0BT`XZ4?^__^+30B+@6@#``#IN/[__XM-"(N!:`,``.EC_O__A-MT -XM'(M5"(N":`,``(T$0,'@`@-"$(M`.(G"Z2;^__^+30B+@6@#``")PND6_O__ -XMD(UT)@!5B>564[L!````@>P@!```BW4(QT0D"`````#'1"0$-````(DT).@% -XMJO[_A<`/A:D```#VAG`#```!#X6H````BX9H`P``C9WX^___B1PDB40D#,=$ -XM)`B9W@@(QT0D!``$``#H;/7]_XM&$,=$)`@`````QT0D!`````")-"3_D)P( -XM``"+AJP$``")7"0(QT0D#`````")-"2#\!#!Z`2#X`&)1"00BT4,B40D!.B. -XM_/__BU80QT0D"`$```")PXM&((M`"(DT)(E$)`3_DIP(``"!CJP$``````@` -XM@<0@!```B=A;7EW#BX9H`P``C01`P>`"`T80BT`XZ4?___^058GE5XG'5E.# -XM[%R)5<")3;R+6!R%VP^$$`4``/:`B`,```%U,8N0@`,``(72#Y3`A,!T/<=$ -XM)`B@X0@(QT0D!`0```")/"3HY)_^_S'`@\1<6UY?7<.+@(`#``"-!$#!X`(# -XM1Q"+2#B%R0^4P(3`=WC_````#X9^!```BW-TB77@QR<=%T`````")1;CK,HN'R`,``(T$0,'@ -XM`@-'$(M0.(T$"HG6B46T,=*)R/?VBTVT@T70`2G1.5W0#X2[````BU70BW6X -XM#[8$,CP@#X29````/`D/A:$```#VA]`#```!=:N+E\@#``#KM<=%\`````"- -XM1?#'1"0,``$``(E$)`C'1"0$`````(D\).BZ$O__A<")1=P/A>[^__^#Q%RX -XM`0```%M>7UW#QT74`````(N/@`,``(T<2?:'B`,```&)R'0-C02=``````-' -XM$(M`.(/"`0%%U(E5Z`^V`CP^=-@\/`^%7O[__^O.@T70`8/!`3E=T`^%1?__ -XM_X-]O`$/A.8!``")SBMUU#M-U!G`]]`AQCGQ#X3;`0``A?_'1>``````#X2& -XM`0``BT<0A<")1>`/A'@!``"+5=PY4'0/A&P!``"-!!X[1?`/A[X!```/MH_0 -XM`P``BY?(`P``BUWPK7=R)7"0,BW7"+5>"+0'2)1=R+0GB)1?"!BE0(`````0``Z67^ -XM__^+1=2--`'I)?[__XM5Q#E73`^%M_S__\=%V`$```#IJ_S__XE$)`R-1?") -XM1"0(BU7(E$ -XM)`B+0G2)/"2)1"0$Z/,=$ -XM)`P``0``B40D"(M#=(D\)(E$)`3H.P___X7`#X2$_/__B4-TZ53[__^!H%0( -XM``#__O__N`$```#IE?K__X&@5`@``/_^___I-/[__Y"-M"8`````5;D!```` -XMB>6+10B+50Q=Z1SZ__^-M@````"-OP````!5,"N-192)1"0$B1PDZ!OR_?^%P'48 -XMBU7(BT7$@_H`?$A^/.C%[?W_QP`,````BU4(QT0D#)^M"`B)="0(QT0D!`4` -XM``")%"3HK)[^_[@!````BUWTBW7XBWW\B>Q=PST``!``=[V-=@"#P`&)!"3H -XMZ>_]_X7`B460=&F+59"+1<3&!!``B50D!(E$)`B)'"3H6/']_XD<)(G'Z-[M -XM_?^#__]T+HM5R(G[BT7$P?L?,=HQ^`G"=%KH,>W]_\<`!0```(M%D(D$).@P -XM\/W_Z5S___^+5N?]_XD$ -XM)(G&Z%#N_?^%P(G#=$J)="0,B7PD!(E$)`B+1>R)!"3H4^?]_XE<)`S'1"0( -XMO^$(",=$)`0#````BT7PB00DZ*"7_O^+=?B)70B+??R+7?2)[%WIH.[]_XM% -XM\,=%$`````"+7?3'10P%````BW7XBWW\B44(B>Q=Z6>7_O^-M"8`````58GE -XM5U93@^P\]D4@$<=%V``````/A;P```"+10CV@+0!```!#X55!```BTT(BX&L -XM`0``A<`/E<"+70@/ML")1=CV@_P!```!#X1B!```BX/T`0``C01`P>`"`T,0 -XMBT`XA<`/E<"$P'0$@TW8`HM%"/:`\`$```$/A"`$``")PHN`Z`$``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T/(MU$(7V=#&+'?P@"0B+-0@A"0B+31"+50SK`X/" -XM`0^^`H7`>`PYV'T(9H-\AC0`>`N#Z0&)]G7C@TW8`HM=((/C`HE=T'00BWT( -XM]H>N!```0`^%>@4``(M%((/@"(E%U'00BU4(]H*N!```@`^%?04``(M=%(7; -XM#X01`@``]D4@`0^$6@(``(M-$+@W````A+?0B+7Q"%VW0-]H-5"``` -XM`0^$.`4``(7`QT7P``````^%HP<``,=%X`````"P`;X:````BUW@Q@->QP`H -XM6R`)QT`$77PO7,=`""HH6U['0`PJ77QMXD(UT)@`/OL.)1"0$QP0DS.$(".CQY_W_A@\8!@VT0`71%@T4,`8M]#`^V'X#[('7#QP8H6R`)QT8$77PO7,=&""HH -XM6U['1@PJ77QO]_XM-%(L!Q@0X`(7V="B+70B%VW06BUT(BT,0A7UW#]D4@$`^$/@$``(M% -XM"(7`#X1R`P``BTT(BUD0A=L/A&0#``#V@U4(```!#X57`P``BT40`<`[0W@/ -XMAP\(``"+0W2)1>"+0WB)1?"!BU0(`````0``BT40A<`/A?4$``"+50P/M@+' -XM1=P`````/%Z+=>`/A%H&``"+11"%P'5T#``")]@^V00&)SX/'`3PO#X2_ -XM`P``/#\/A+<#``"-M"8`````#[[#B40D!,<$)-OA"`CHH>7]_X7`=`S&!ER+ -XM10R#Q@$/MAB('H/&`8-M$`$/A)D#``")?0R+30P/MAF`^UQTH(M]#(/'`>NX -XM]D4@!`^$V0$``(/$/+@!````6UY?7<.)PHN`K`$``(T$0,'@`@-"$(M`.(7` -XM#Y7`Z9O[__^+30B+N>@!``"%_P^5P.GF^___BWT(BX?T`0``A<`/E<#IHOO_ -XM_XM%$#'VNP$```"%P`^$:P$``(M5$##;BTT,ZQR0/"H/A.T````\+@^$Y0`` -XM`(/&`8/J`71:@\$!#[8!/%L/A,\```!^V#Q<#X2`````/'YUW(M]"/:'4`(` -XM``$/A.D```"+AT@"``"-!$#!X`(#1Q"+0#B%P`^5P(3`=+2+70@#L^0```"# -XMZ@&[`0```'6FA=L/A)L!``"+70B%VW07BU4(BUH0A=MT#?:#50@```$/A$(% -XM```Q_X7VQT7P``````^%$@8``(G[Z>D!``"#^@$/AE?___^#P0&#Z@$/M@$\ -XM/'0@#XXL`0``/%L/A``$```\?@^$GP,``#P^B?8/A2(!``"#Q@B[`0```(GV -XMZ1[___^+?0CVAU`"```!=#^+AT@"``"-!$#!X`(#1Q"+0#B%P`^4P(3`#X3S -XM_O__@\8"NP$```#IYO[__XM%"(N`2`(``(7`#Y7`Z1O___^+10B+N$@"``"% -XM_P^4P.O(*?N^`0```(E=$(/#`8E]#(M]#(E]X.E$_/__B7PD"(E$)`2+10B) -XM!"3HXOC__X/$/+@!````6UY?7<.)^`6P````B00DZ"KG_?^!IZP$``#__[__ -XMZ6CZ__^)T`7(````B00DZ`SG_?^+30B!H:P$``#__W__Z6+Z__\Y0W@/@C0$ -XM``"+2W2)3>"+0WB)SH/&&HE%\(G(@8M4"`````$``(/``>FW^O__/"H/A-0" -XM```\+@^$S`(``(/&`I"-="8`Z?[]__^+71`Q]H/#`>D^____BT40QT7P```` -XM`,=%X``````!P`^$M/S__XE$)`R-1?")1"0(QT0D!`````"+70B)'"3HQP3_ -XM_X7`B47@#X6+_/__Z2G]__^-M"8`````@/HJ#X07`0``@/HNC70F``^$"@$` -XM`(@3@\,!@VT0`0^$N_[__X-%#`&+10P/MA"`^EL/A.@```!^QH#Z7'1^@/I^ -XM==*+30CV@5`"```!#X0(`0``BX%(`@``C01`P>`"`T$0BT`XA<`/E<"$P`^% -XM+0(``,8#?H/#`>N@D(UT)@"+?0R)PX-M$`&('H/&`8/'`H-M$`$/A6?\__^+ -XM1=R%P'0&Q@8D@\8!*W7@B?.)=1"#PP&^`0```.F"^O__@WT0`0^&<@(``(-% -XM#`&+30R#;1`!#[81@/H\#X0_`P``#X_I`0``@/HJ=`V`^BZ-="8`#X7R`0`` -XMBTT(]H%0`@```0^$L@,``(N!2`(``(T$0,'@`@-!$(M`.(7`#Y7`ZR20BTT( -XM]H%0`@```71#BX%(`@``C01`P>`"`T$0BT`XA<`/E,"$P`^$R_[__\8#7(M- -XM#(/#`0^V$>FZ_O__BT4(BX!(`@``A<`/E<#I_/[__XM%"(N`2`(``(7`#Y3` -XMZ\2+30R+71"+50P/MD09_X/J`3PO#X2)`0``/#\/A($!```\),=%W``````/ -XMA(8"``"+?0P/M@<\+W0(/#\/A=;Z__^#10P!BU4,@VT0`0^V`NG#^O__B40D -XM#(U%\(E$)`C'1"0$`````(M%"(D$).B^`O__A<`/A"C[__^)1>"+=>"#P`&# -XMQAKI-/C__XM]"/:'4`(```$/A#P!``"+AT@"``"-!$#!X`(#1Q"+>#B%_P^4 -XMP.FT^___QT0D"`````#'1"0$!0```(M-"(D,).B^C?[_BUT4BP.%P`^%'OG_ -XM_^DX^?__BWT(]H=0`@```0^$T````(N'2`(``(T$0,'@`@-'$(M`.(7`#Y3` -XMA,`/A!#[__^#Q@&[`0```.D#^___BTT(BY'@````BX'D````B1PDB50D!(E$ -XM)`CH]>/]_XM%"`.8Y````.E._?__@/I;#X0@_O__@/I^#X3]````@/H^#X3< -XM````Q@-"#10P!@VT0`8/&`>F0^?__ -XM@:!4"```__[__^FG^/__@VT0`75DBWT,#[8'QT7<`````.E>^?__Q@-<@\,! -XMZ=?\__^+10B+@$@"``"%P`^4P.DT____BT4(BX!(`@``A<`/E,#I@?K__SMS -XM>`^'6`$``(M#>(M[=(E%\(&+5`@````!``#IKOK__XM-$`^V!!'I"?[__XE$ -XM)`R-0WB)1"0(BT-TB40D!(M5"(D4).C\`/__A<`/A&;Y__^)0W3IG_O__\<# -XM6ULZ/F;'0P0Z7<9#!EV#PP?I/_S__XM%"/:`4`(```$/A+D```")PHN`2`(` -XM`(T$0,'@`@-"$(M(.(7)#Y7`A,`/A6;\__^+10B+D.````")P>F,_O__QP-; -XM6SH\9L=#!#I=QD,&78/#!^GF^___@VT0`0^$N0```,=%W`$```#I9/W__XU% -XM\(ET)`R)1"0(QT0D!`````"+30B)#"3H1P#__X7`B<%N/[__P````#'A;S^__\`````QX7`_O__`````,>% -XMQ/[__P````"#Y@&)C93^__^#Z`D\:793BY6@_O__NP$```#'1"0("@```(M" -XM((M`$(D\)(E$)`3H/E4``('$?`$``(G86UY?7<.+AWP!``"-!$#!X`(#1Q"+ -XM6#B%VP^4P.E$____D(UT)@`/ML#_)(6TX@@(A?8/A2`5``#VAZX$``!`#X0U -XM%0``BXV4_O__QX7$_O__`0```(E-"(N%$/___X/``8F%$/___P^V`(3`#X5: -XM____BY7$_O__A=(/A*80``#VAZP$```"="&`O_0`````=!B+A;S^__\+A;C^ -XM__\+A<#^__\/A2T2``"+C:#^___'1?``````BX6@_O__BTEDB8T,____BT!L -XM.<&)A:3^__\/A_\4``"+1Q#V@%0(```$#X7O%```BY6\_O__BXW`_O__"Y6X -XM_O__QX70_O__`````,>%U/[__P`````)RL>%V/[__P````#'A0C___\````` -XMQX4$____`````(F5F/[__\=$)`P!````QT0D"`````#'1"0$`````(D\).CS -XM3/[_A\.``"+C0S___^-1>R-E1#___^)1"00B50D -XM#,=$)`@!````B4PD!(D\).@T5/[_A<`/A7,%``"`O_0`````=&:+A=C^__^% -XMP`^$BA(``#';A?\/A'H/``"+7Q"%VP^$;P\``(N5V/[__SE3=`^$8`\``(M5 -XM[#M5\`^'PQ```(E4)`B+A1#___^+E=C^__^)1"0$B10DZ+W>_?^+C=C^__^) -XMC1#___^+1>R[`0```#'VQX6P_O__`````,>%R/[__P$```#'A%&/___P````#' -XMA1S___\`````B8T@____BTT(B40D$(N%L/[__P.%$/___\>%)/___P````") -XM5"0,QT0D"`H```")1"0$B0PDZ.C:_?^#^`$/A$$#``"%P`^%%!4``(.-S/[_ -XM_P&%VP^%!`(``(N%&/___PN%'/___P^%\@$``(N%(/___PN%)/___P^%X`$` -XM`(N%K/[__X7`#X1M#P``BYT`____@\,!.YT(____=DF!^P`!``")V',%N``! -XM```!A0C___^+A03___^%P`^$O!0``(N%"/___XN5!/___XE$)`2)%"3H>MC] -XM_X7`#X1`$0``B84$____BX6P_O__`X40____BXT`____BY4$____#[8`B`01 -XM@X6P_O__`8.MK/[__P&)G0#___^[`0```,>%T/[__P$```#IK?[__\>%P/[_ -XM_P$```#IM?S__\>%N/[__P$```#IIOS__X"_]0`````/E(?U````Z9/\__^` -XMO_0`````#Y2']````/:'K`0```$/A'C\__^-1=2)1=2)1=CI:OS__X72#X7= -XM^___Z!_:_?_'``````"-A1#___^)1"0$BX40____QT0D"`H```")!"3HR=C] -XM_XG#BX40____@#@`=0F#Z`&)A1#____HWMG]_X,X(@^$5Q$``(N5H/[__XM" -XM;(E"9(/H`0'8B4)LB40D!(D\).@!4_[_AC[__^+C:#^__^#:5P! -XMZ=G[__^+A:#^__^#0%P!ZB+A;#^__\#A2#___^)3=R)3>2)1>"+1>R% -XMP'4.QT7@`````,=%Z`````#VAZP$```"#X1&`@``BU7L.57@<@:-0O^)1>`Y -XM5>AR!HU"_XE%Z(M%Y,=$)`0!````B3PDB4=,BT7HB4=0Z**'`0"%P`^%L0$` -XM`,=$)`@`````C5VXQT0D!`GB"`B)/"3HGWK^_\=$)`@`````B3PDB40D!.B[ -XM:`$`QT0D#`````#'1"0(`````(E<)`2)/"3HGTC^_X7`#X5>`0``BT7`@_@! -XM#X0H`@``<@6#^`1V#(E<)`2)/"3H:$/^_XM'$(.(5`@```3'A=#^__\!```` -XMQX74_O__`0```(7V#X1-"@``BYVL_O__A=L/A)<```"+G0#___\#G:S^__\[ -XMG0C___]V28'[``$``(G8_O__C474QT0D#``(``#'1"0(`````(E$)`2)/"3H)ST``(7` -XM#X4V____BT74BT`(#[8`B$7$#[9%Q#QQ#X3?_?__/'D/A:\)``"+A0S___\Q -XMTHNU&/___XN-"/___XE'3(N%`/___P.%&/___Q.5'/___XEW4(/Z`'P.#X]0 -XM`P``.<@/AT@#``"+E0#___^+A;#^__\#E03___\#A1#___^)="0(B10DB40D -XM!.AS^__\/A&,#```\7`^$$P,```^VM>S^__^)\8#Y -XM_P^$O@(```^VT8M'$`^VA`)3!P``@_@(#Y3"@_@,#Y3`A,!U"(32#X2H`@`` -XMBX?L````.X?P````#X0D!0``BX?P````BY?H````BXT`____B0R"@\`!B8?P -XM````BYT`____@\,!.9T(____OW__X.]^/[__P(/A.L"```/AS(#``"#O?C^__\! -XM#X3B`@``Z+;/_?^+C?3^__^^7````+I<````AS^__\/AHT"``"#A?#^__\!Z:7\___VAU`"```! -XM#X2*`0``BX=(`@``C01`P>`"`T<0BW`XA?8/E<"$P(V5&/___P^$<_S__XL: -XMBW($B=@A\(/``0^$8?S__XM*#(M2"(G0(C^__^+E>C^__^)\(@" -XM@\(!.YV<_O__B97H_O__#X0O_/__@X7D_O__`8N%Y/[__P^V,(GR@,(!#X4> -XM____BT<0@+A2!P``_P^%#O___\=$)`3_````B3PDZ/@\_O_I^?[__XN?2`(` -XM`(7;#Y7`Z7W^___'A;C^__\`````QX6\_O__`````,>%P/[__P````#I6O+_ -XM_X.]^/[__P,/A($"``"#O?C^__\$#X7/_?__B?(/ML([!?P@"0@/C>7^__^+ -XM%0@A"0CV1((U$`^$U/[__P^VM((T"```Z_[_BX?H````A<`/A8+Z__^[`0```,>'[`````````#I -XM-?C__P^VP/\DA5SD"`C'A?C^__\`````B?(/ML([!?P@"0@/C6?Z__^+%0@A -XM"0AF@WR"-``/B57Z__\/MK2"-`0``.E(^O__BX4(____B00DZ%O1_?_I@?K_ -XM_X.]^/[__P,/A"L"``"#O?C^__\$#X7!_/__B?$/ML$[!?P@"0@/C0KZ__^+ -XM%0@A"0CV1((U$`^$^?G__P^VM((T"```Z>SY__\IE0#___^)T,>'\``````` -XM``"+E0#___^+C0S___\#A03___^)/"2)5"0,B40D"(E,)`3HP4K^_X7`#X50 -XM]___BX4,____.4=8=`>#1V`!B4=8BX68_O__A@`````A<")5=R)5>0/A2,(``"+A;S^__^%P`^%Z`<``(NUP/[_ -XM_X7V="B+E:#^__^-1=R)1"0,C47DQT0D$``0``")1"0(B50D!(D\).BUL/__ -XMBYW4_O__@X4,____`87;#X0E`0``@+_T`````'4SBX6H_O__.4=,=0N+E;3^ -XM__\Y5U!T'8U'4(E$)`B+1TS'1U``````B3PDB40D!.A4[?[_BXW0_O__A%^/[__P````#I??W__\>%^/[_ -XM_P````#I1/S__\=$)`@$````BT(@NP$```"+`(D\)(E$)`3H1D0``.D#[___ -XMBXT(____B0PDZ(?/_?_I=/S__\>%P/[__P````#'A;C^__\`````QX6\_O__ -XM`````/9%#`(/A%#O___IGN[__X&C5`@``/_^__^+1>PY0W@/@JX!``"+2W2) -XMC=C^__^+0WB)1?"!BU0(`````0``BU7LZ77P___'A?C^__\`````Z=/]__^+ -XMC0S___\YC:3^__\/@LG^__^+1Q#V@%0(```$#X26[___Z;3^__^-="8`BX4` -XM____,=(#A2#___\3E23___^+C0C___^#^@!\27\$.0(``,>%T/[__P$```#I?//__XVV`````,=$)`3_````B3PDZ&`X_O^#^`@/ -XME,*#^`P/E,#IEO;__P^VM((T!```Z9+Z__^-1?")1"0(BX78_O__B50D#(D\ -XM)(E$)`3H]>O^_X7`#X3M\?__BU7LB878_O__Z0KO___'1"0(;.(("+L!```` -XMQT0D!`,```")/"3H(G?^_^G_[/__B40D#(U#>(E$)`B+0W2)/"2)1"0$Z*/K -XM_O^%P`^$F_'__XE#=.DH_O__@X7P_O__`<>%^/[__P````#I@_7__XN%[/[_ -XM_X.%\/[__P'!X`2-E"@8_/__Z3GY__^#A?#^__\!]H=0`@```0^$WP$``(N' -XM2`(``(T$0,'@`@-'$(M0.(72#Y3`Z?OX__^#A?#^__\!QX7X_O__`P```.DA -XM]?__@X7P_O__`<>%^/[__P0```#I"_7__X.%\/[__P''A?C^__\!````Z?7T -XM__^#A?#^__\!QX7X_O__`@```.G?]/__@:!4"```__[__^E8\___QT0D""'B -XM"`B[`0```,=$)`0#````B3PDZ`UV_O_I!//__\'@`HD$).AQS/W_Z7?Z__]\ -XM##T``0``D`^#8/?__[@``0``D(UT)@#I4??__X7_#X3+````BU\0A=L/A,`` -XM``#V@U4(```!#X6S````BT7L.4-X#X)G!```BT-TB878_O__BT-XB47P@8M4 -XM"`````$``(M5[.E9[?__QT0D"`````"[`0```,=$)`0%````B3PDZ'%U_O_I -XM3NO__XN5"/___XD4).C2R_W_Z?OV___'1"0(`````,=$)`0%````B3PDZ$%U -XM_O_I,_+__XN%R/[__X7`#X1Y_?__BX6L_O__,=N%P`^%C>[__X.-S/[__P+' -XMAS'1?``````A=(/A,'L__^-1?")5"0,B40D",=$ -XM)`0`````B3PDZ'OI_O^%P`^%AOW__^EN[___BX=(`@``A<`/E,#I*/?__\=$ -XM)`@TX@@(NP$```#'1"0$`P```(D\).BA=/[_Z7[J___'1"0(!@```+L!```` -XMQT0D!`````")/"3HGS\``.E%T/[__P````#' -XMA=C^__\`````QX4$____`````.E=^O__BX4`____*97\_O__QX?P```````` -XM`"G0B86P_O__B="+E?S^__^+C0S___\#A=S^__^)/"2)5"0,B40D"(E,)`3H -XM-T3^_X7`#X7&\/__BXT,____C47LC940____B40D$(E4)`S'1"0(`0```(E, -XM)`2)/"3H5#_^_X7`#X63\/__,=N%_P^$S0$``(M?$(7;#X3"`0``BX78_O__ -XM.4-T#X2S`0``BU7L.U7P#X>R`@``B50D"(N%$/___XN5V/[__XE$)`2)%"3H -XM],G]_XN-V/[__XN%"/___SF%L/[__XM=[(F-$/___W9,BX6P_O__/0`!``!S -XM!;@``0```84(____BX7<_O__A<`/A$`"``"+C0C___^+A=S^__^)3"0$B00D -XMZ)G$_?^%P`^$7_W__XF%!/___XN5L/[__XN%$/___XN-!/___RN=L/[__XE4 -XM)`B)1"0$B9VL_O__B0PDZ%W)_?^+AP$``(N5L/[__S';O@$```")E0#____I\.O__XN-N/[__PF-O/[__XN% -XMO/[__PN%P/[__P^%^OC__XN5H/[__S';@XJ`````0.E+[___BU4(NP$```") -XM1"0$B3PDB50D".@7VO__Z2[O__^+C0C___^)#"3HF,C]_^E)Z___C47`^".P$``(M3=(F5V/[__XM#>(E%\(&+5`@````!``"+5>SI -XM(O[__XN-"/___XD,).CTQ_W_Z;;M__]\#ST``0``C70F``^#*/G__[@``0`` -XMD(UT)@#I&?G__XN%"/___XD$).C!Q_W_Z3+Y__^)1"0,C4-XB40D"(M#=(D\ -XM)(E$)`3HSN7^_X7`#X3&Z___B4-TZ6_[__^+E;#^__\QV[X!````@XW,_O__ -XM`L>%R/[__P````")E:S^__^)E0#____I7NK__\=$)`CBX0@(NP$```#'1"0$ -XM`P```(D\).C2O__XM5[(F%V/[__^D;_?__BXT( -XM____B0PDZ.W&_?_I`O'__XE$)`R-0WB)1"0(BT-TB3PDB40D!.CZY/[_A<`/ -XMA/+J__^)0W3IF_[__XN-L/[__XN%!/___XF-`/___XF%W/[__XN5W/[__\>% -XMT/[__P$```")E03____I]>O__XVT)@````!5B>6#["B)7?2+70B)=?B+=0R) -XM??R+D\````"%T@^$E0```/:#K@0``$"-N[````!T/HM&>#')AQ=Z;;D__^-M@````"+1G2+`(L(Z]*-M"8` -XM````QT0D&`(```")?"04QT0D$`````#'1"0,`````(N#Q````(E4)`2)'"2) -XM1"0(Z`[8__^%P'2,BUWTN`$```"+=?B+??R)[%W#QT0D"`8```#'1"0$```` -XM`(D<).A@.@``Z]2-M"8`````C;PG`````%6)Y8/L*(E=](M="(EU^(MU#(E] -XM_(N3V````(72#X25````]H.N!```@(V[R````'0^BT9X,7UW#@\`!.3W\(`D(B47!Y``` -XM``````"+5=2)V8E4)`2+10@%L````(D$)(M5#(M%".C[X/__@\1,6UY?7<.) -XMSBMUW,=$)!@"````BT4(!;````")1"04BT4(!<0```")1"00BT4(B70D"`7` -XM````B40D#(M%W(E$)`2+50B)%"3H3-3__X7`=`JX`0```.G-_?__QT0D&`@` -XM``"+10@%R````(E$)!2+10@%W````(E$)!"+10B)="0(!=@```")1"0,BTW< -XMB4PD!(M%"(D$).C\T___A"K`````$```#'1=0!````Z7O^__^# -XMPP'I\?[__XM%"(7`#X0L`@``BU4(BW(0A?8/A!X"``#VAE4(```!#X41`@`` -XMBU70.59X#X(G`P``BT9TB478BT9XB47P@8Y4"`````$``(MUV,=%X``````/ -XMMA.$TG0P#[[".?@/A","``"`^EP/A*4```"`^GX/A/<```"#PP&(%H/&`8-% -XMX`$/MA.$TG70A?\/A/8!``"+1>"+30B%P(F!Y````'1$BX'@````A`"`T$0 -XMBT`XA<`/E<"$P`^$V/[__XM5"(/#`8N"X````(N2Y````(DT)(E$)`2)5"0( -XMZ!O`_?^+50B+@N0````!1>`!QNE__O__!;````#'1"08`@```(E$)!3'1"00 -XM`````,=$)`P`````BTT(BX'$````B50D!(D,)(E$)`CHRM'__X7`#X17_/__ -XMZ77]__^+10B+@$@"``"%P`^5P.EI____@\,!B`!#[83 -XM@\,!Z=7]__\/ME,!C4L!A-)T2@^^PCGX#X7;^___C4L"BS,``+@!````Z8#Z__^+30B+D4@"``"%T@^4P.EC -XM_O__A?]TO8G+Z1G\__^!H%0(``#__O__Z0K\___'1"0(`````,=$)`0%```` -XMB0PDZ`QH_O^+10B%P'02BU4(BT(0A=G,/MA.`^@ET:X#Z(+C_____=&%;7E]=PSGR -XM"(NX -XMF````#G:=2#K18M"!(E!!(M"!#G8=":)"(D4).C,O?W_BU8(.=IT)XL*.=EU -XMW(M"!(E&#(M"!(L*.=AUVHE."(D4).BEO?W_BU8(.=IUV8L6A=)T#SGZ=!V+ -XM1@2)0@2+1@2)$(DT).B!O?W_@\0,,53B=.#[`2+$HN(F````(72="N+0P2)0@2+0P2)$(M#"(D$).@YO?W_ -XMB1PDZ#&]_?^#Q`0QP%M=PY"-="8`BT,$B4$,BQ/KT8VV`````%6)Y593@^P0 -XMBW4(BYZ8````BP,YV'0@B40D!(DT).CM_O__BP,YV'7NBU,(A=)T#HGPZ'G_ -XM__^+4PB%TG7RBT,4AR+4`B% -XMTG7NC7L!B5WPZTV-M@````")="0(BU7PB00DB50D!.CQN_W_BT,(Q@0P`,9# -XM$`#'`P````"+5>R+0@R)0P2+0@R)&(E:#`^V3_^$R0^$EP```(E]\(/'`0^V -XM3_^$R70A#[[1A=)X[CL5_"`)"'WFH0@A"0CV1)`V`G3:C;8`````C7?_*W7P -XM@_X!=K['!"04````Z$V[_?^%P(G#=%6-1@&)!"3H/+O]_X7`B4,(#X5=____ -XMQT0D"`````#'1"0$!0```(M%"(D$).BB9/[_BT,(A<`/A3?___^)'"3HH[O] -XM_[@!````ZP(QP(/$'%M>7UW#QT0D"`````#'1"0$!0```(M5"(D4).AC9/[_ -XM@\0B+1?")7"0(B4PD!(D$).@"NOW_BU7PBTWP@\(( -XMB57LB5$(B5$,QT$0`````(M%Z(MP%(7V=`B)R(/`'8E!%(M5Z(MR"(/""(E5 -XMW#G6=2_IN````(M-[(D+BU7PBT(,B4,$.TH(#X2-````B1B+3?")60R+-CMU -XMW`^$C@```(M>%+\L````A=MT!HM^&(/'+8M.((7)=`B+1B2#P`$!QXD\).@_ -XMN?W_A<")PP^$$@$``(E\)`B)="0$B00DZ%6Y_?^+5A2%TG0&C4,HB4,4BT8@ -XMA2+1?")$(M"!(M-\(E!!#L2#X3&````BU7DBTWP -XMBT($B0B+1>2+5?")4`2+3>B+1>"+"3G!B4WH#X6*_O__BU7@BW((A?9U6^FY -XM````C;0F`````(L&B0.+1@2)0P2+1@B)0PB+1@R)0PR+1A")0Q"+1@B)!"3H -XM;;+]_X7`B4,(#X2@````QP,`````BU7DBT(,B4,$BT(,B1B)6@R+-H7V=&/' -XM!"04````Z"FX_?^%P(G#=9^+30S'1"0(`````,=$)`0%````B0PDZ)1A_O^X -XM`0```(/$+%M>7UW#B0KI/O___XM5#,=$)`@`````QT0D!`4```")%"3H96'^ -XM_[@!````Z\^+3>"+012%P'02B00DZ-"Q_?^+5>2%P(E"%'23,<#KK[`!ZZN- -XM=@"-O"<`````58GE5U93@^PLBT4(BX"8````B47HBS@YQP^$-P(``(M%"(-X -XM."(/A@4"``"+0!#'1>P!````]H!4"```!`^%"0(``,=$)`P!````QT0D"``` -XM``#'1"0$`````(M%"(D$).CZ)/[_A@/A,8!``"+=PB-5PB)5>0YU@^$@`$``(GPZV.0C70F`(U$`^:)1"00QT0D -XM#!H```#'1"0(&@```,=$)`0.YP@(BU4(B10DZ'61__\Y=Q`/A)0````Y=P@/ -XMA*<```#'1"0$)KH("(M%"(D$).A0D?__BS8[=>0/A!P!``"+1P@YQ@^$\@`` -XM`,=$)`2WW`@(BT4(B00DZ">1__^+1@B%P`^$S````(M8"(D<).C%M_W_@_@> -XM#X=H____B5PD$,=$)`P>````QT0D"!X```#'1"0$&^<("(M%"(D$).CAD/__ -XM.7<0#X5L____QT0D!.#A"`B+50B)%"3HQ9#__SEW"`^%6?___XM?%(7;#X1. -XM____BT4(BT`XB47P@^@>@_@8#X8Y____B1PDZ$BW_?^YMMP("#MW$(G"=`6Y -XMM=P("(E<)!"+1?"#Z",YT'8"B=")1"0,B4PD",=$)`3PF`@(BU4(B10DZ%B0 -XM___I\/[__XUV`(M>%.DO____BT7LQT0D!`GG"`B)1"0(BU4(B10DZ"Z0___I -XM`O___XM5"(L_BT(0]H!4"```!'4D@T7L`>D2_O__QT0D"/+F"`C'1"0$`P`` -XM`(M%"(D$).CD7O[_@\0L, -XM7UW#BU,(BT,,B4(0BT,0BU,(B4(4BT8@9H-(&`''1"0,(````,=$)`@````` -XMBT,(B30DB40D!.BM#/[_A$``0``7>GM_O__B1PDQT0D"`````#'1"0$`0```.@U -XM^?__@\04N`$```!;7<.-=@"-O"<`````58GE5U93@^PLBT4(B[B8````BQ(7`=1V+10P/MTA\BT4(@>$``0``Z(7^__^#Q"Q;7E]= -XMPX/H`70%Z->N_?^+072+`(L`QT0D"`H```")1=R-1?")1"0$BT7+5>`/A9+^__\QP.F@_O__D(UT)@!5B>564X/L$(MU -XM#(M="(M&"(7`='(QTCE#('0@QT0D"!$```"+11")'"2)1"0$Z(T%_O^%P'0. -XMN@$```"#Q!")T%M>77<.+1A2)'"2)1"0$ -XMZ#H(_O^%P(E&"`^%=/___^N4C;8`````C;PG`````%6)Y8/L.(E]_(M]#(EU -XM^(MU"(E=](M'"(7`#X0``0``C47PB40D"(ET)`2+1A")!"3H>IW^_X7`=!:X -XM`0```(M=](MU^(M]_(GL7<.-="8`BT7PQT0D"`````")-"2)1"0$Z!F1`0"% -XMP`^%T0```(M'"#M&(`^$]0```(M5$(E$)`2+1?#'1"0(`````(E4)`R)!"3H -XM!PG^_X7`=52+1PB+7?"+0`C'1"0$`````(DT)(E$)`CH1A#__XE#)(E#*(M% -XM\(&@K`0``/_^__^+1?"!B*P$``"`````BT7P@8ZL!````!```(E&%#'`Z4[_ -XM__^+1?#'1"0$`````(D$).@IO[_A<`/A88```"+@ZP```"%P'0OBU7LC4-0 -XMQT-0`````(E$)`B)'"2)4TR)5"0$Z*S,_O\QP(M=](MU^(M]_(GL7R)1"0$Z/DE_O^%P'6IBT4(QT0D!``` -XM``")'"2)1"0(Z#[T__^X`0```.NMC;0F`````,=$)`0H````B30DZ&2K_?^% -XMP'0R*?#'1"08A````,=$)!0`````B40D$(ET)`R)?"0(B7PD!(D<).B2I?[_ -XMA<`/A#3___^+10C'1"0$`@```(D<)(E$)`CHT_/__[@!````Z3____^)]HV\ -XM)P````!5B>6#[!B)??R+?0B)7?2)=?B+AY@```"+&#G##X24````BT,0BW`$ -XMC4,(.<9T:(M5#`^W0GR)="0$B3PD)0`!``")1"0(Z/7[__^Z`0```(7`=1SV -XM0QP!B7,0=".)="0(B5PD!(D\).@S-___,=*0BUWTB="+=?B+??R)[%W#D(M# -XM%(M6((M.)(D$)(GXZ`W^__\QTNO9QT0D"(#F"`C'1"0$`P```(D\).AA5_[_ -XMN@$```#KNL=$)`@`````QT0D!`$```")/"3H\O+__S'2ZYZ-M"8`````C;PG -XM`````%6)Y8/L&(E]_(M]"(E=](EU^(N'F````(L8.<,/A)0```"+0Q"+,(U# -XM"#G&=&F+50P/MT)\B70D!(D\)"4``0``B40D".@6^___N@$```"%P'4=]D,< -XM`8ES$'0DB70D"(E<)`2)/"3H5#;__S'2B?:+7?2)T(MU^(M]_(GL7<.0BT,4 -XMBU8@BTXDB00DB?CH+?W__S'2Z]G'1"0(K.8(",=$)`0#````B3PDZ(%6_O^Z -XM`0```.NZQT0D"`````#'1"0$`0```(D\).@2\O__N@$```#KFXUT)@"-O"<` -XM````58GE5U93@>R<#```BT4(BU4,BX"8````B86(\___BT)XA<`/A5,#``"+ -XME8CS__^+C[__^) -XM1"0,QT0D"$/G"`C'1"0$``0``(E4)!")'"3HRJG]_\=$)`20O@@(B1PDZ.JD -XM_?^-C>CW__^)C7SS__^%P(F%I//__P^$QP```(N%I//__XV5Z/?__\=$)`0` -XM!```B10DB40D".C@IOW_A<`/A)$```"-C>CW__^+`8/!!(V0__[^_O?0(<*! -XMXH"`@(!TZ??"@(```'4&P>H0@\$"`-*#V0,KC7SS__^-0?^`O`7H]___"@^% -XMUP@``,:$!>CW__\`#[:%Z/?__X3`=#.+#?P@"0B-E>CW__^+'0@A"0@/OL"% -XMP'@/.%G//__P````"`>A@`#XE0!```BU4,]H*!`````0^%4PD``(M5#`^W -XM0GS'A9SS__\!````)0`!``")1"0(BXV0\___BT$(B40D!(M%"(D$).BS]___ -XMA<`/A4,$``"+E8CS__^+&CG3B=@/A#P*``"+M9#S__^)!HE6!(N%B//__SM` -XM!`^$&@H``(N5B//__XN-D//__XL"B4@$BX60\___B[6(\___B0:+E9#S__^+ -XMM9#S__^+0A"+2"2+4""+1A2)!"2+10CHG?G__XN%G//__X7`#X1D"```BTT( -XMBU,0BT$@B4((BU,0BT%,B4(,BU,0BT%0B4(0@<2<#```,`"`T80BU@XA=L/E<"$P`^%M_S__XNUB//_ -XM_XM%"(MV%(FUV//__XN`F````(F%L//__XDT).A%JOW_QP0D`0```(G#C4`A -XMB40D!.A@I_W_A<")A8#S__\/A(X'``")A9#S__^+E9#S__^#P`B)ACW__^)="0$ -XMBX7`\___B00DZ/>I_?^%P`^%N`(``,=$)!0`````QT0D&`````"+E<#S___' -XM1"0,`@```,=$)`@#````B50D$(N%&/C__\<$)`````")1"0$Z"^E_?^)A=3S -XM__^#P`$/A&D"``"+A=3S__\#A1CX__^+G=3S__^)PBN5U//__XF%X//__XG0 -XMP>@?`=#1^`'#.9W@\___=Q7K'8VT)@`````[G>#S__\/A#8*```/M@.#PP$\ -XM"G7J.9W@\___#X0@"@``B[W4\___B[7@\___BX78\___B?&)VNA3Z?__@^@! -XM#X3@`0``B=Z)\BGZB=#!Z!\!T-'XC1PX.=YW".L0B?8Y\W0.#[8#@\,!/`IU -XM\CG>=;PYO>#S__]V.HN-X//__XGZBX78\___Z`/I__^#^/]T(H7`#X3*`0`` -XM.[W@\___#QP$\"G3&.[W@\___=>Z+A1CX__^)1"0$B[74\___B30D -XMZ&BB_?^%P`^%=@0``(N5P//__XD4).C2I/W_A<`/A4`$``"+E=SS__^`8A#\ -XMBX7<\___BP"%P(F%W//__P^%'/[__XN5@//__XM""#F%S//__P^$,0<``(NU -XM@//__XE&$.G<^___BXV(\___BT$4A7UW#B=_I&_[__^CR -XMHOW_BXW<\___BP")00R+M<#S__^)-"3H::/]_XNUW//__X!.$`''A:SS__\! -XM````Z9#^__^%_P^$2/[__SN]X//__XE]Z',A@#\*=!R)^.L%@#@*="&#P`$[ -XMA>#S__^)1>AU[>D<_O__.[W@\___#X00_O__B?B`.`H/A07^___&``"+5>B) -XM?>B_`0```(F5T//__XU-Z,=$)`31U`@(C5__B0PDZ&NC_?^%P(G&=!^%VW4+ -XMB;6\\___@\B%_W0:A?9T%HD\ -XM).C.I?W_A<")A<3S__\/A0$!``"-=?")="0(BX78\___B40D!(M5"(D4).A@ -XM0?[_B47HC47LB40D"(N-W//__XM!"(E$)`2+=0B)-"3H/D'^_XE$)!")PXM% -XMZ,=$)`AIYP@(QT0D!`,```")-"2)1"0,Z)E-_O^+5?"%TG0>A?9T#XM6$(72 -XM=`B+0G0[1>AT5XM%Z(D$).B(I/W_BT7LAF-_O__B30DZ/VD_?^)M;3S__^)A@/H?W_BXW<\___BP") -XM00SI)O[__XN-O//__XE,)`2+M=CS__^)-"3H1Z']_X7`#X5O_/__BX6T\___ -XM@#@O=!J-E>C[__^)5"0$B00DZ"*@_?^%P`^%20$``#'VBY7(\___BXW$\___ -XMQP0D`0```(U$"C`!\(E$)`3HAJ']_X7`B<,/A!S\__^-0"B%]HE#%`^%N@$` -XM`(N%R//__XGR`U,4@\`!B40D"(N-M//__XD4)(E,)`3H^J+]_XN5R//__XT$ -XM%HE#&`-#%(/``8E#((N-Q//__XG*B4LD@\(!B50D"(E\)`2)!"3HQZ+]_XNU -XMS//__XDSBY6`\___BT(,B4,$.W((#X2<`0``B1B+C8#S__^)60SII_[__\=$ -XM)`B0E`@(QT0D!`4```"+30B)#"3HVTO^_^F@^___QT0D"(7G"`C'1"0$!0`` -XM`(M%"(D$).B[2_[_Z6K[__^+M:3S__^)-"3H[)_]_X/X"G7MZ1GW__^+@=0# -XM``"-!$#!X`(#01"+<#CIY_O__XM%"(M`%(E%"(N0F````(F5B//__^GR]___ -XMQT0D!"\```"+C=SS__^+00B)!"3H2)[]_X7`B<8/A)3^___&``"+A;3S__^- -XMG>CS__^)1"00BY7<\___BT((QT0D"+F4"`C'1"0$``0``(D<)(E$)`SHMI_] -XM_XV-Z/O__\8&+XE,)`2)'"3H89[]_X7`#X4__O__B[7<\___BW8(B;6X\___ -XMB30DZ**B_?^)QNDC_O__C;0F`````('$G`P``+@!````6UY?7<.)="0(BY6X -XM\___B00DB50D!.A.H?W_BT,4Q@0P+X/&`>DA_O__BT,0B[6,\___B7`(BT,0 -XMBY64\___B5`,BT,0BXV8\___B4@0@<2<#```,_O__BTT, -XM#[=!?,>%G//__P`````E``$``.GK^O__#[9"`8UR`<8"`(3`=2+I[?7__XUT -XM)@`YP7X<]D2#-4!T%8/&`0^V!H3`#X30]?__#[[`A_?^%P(G< -XM^O__C5@(B5X(B5X,QT0D!"P```#'!"0!````Z%*>_?^%P(G'#X0<^O__BT8( -XMB5\$B0<[7@P/A%T"``")>`2)?@B)?A#I,/7__XEP!.GO]?__B1Z)VHE>!#M; -XM!`^$)`(``(L#B7`$BXV(\___B?.)\(DQZ9[U___'1"0,4^<("(N%H//__\=$ -XM)`0#````B40D"(M5"(D4).CR3?[_B30DZ.Z?_?^X`0```.G+^?__QT0D#%/G -XM"`B+C=CS___'1"0$`P```(E,)`B+=0B)-"3HNTW^_XN%K//__X7`=%6+A;#S -XM__^+6`B%VW4*ZT:)]HL;A=MT/@^V0Q"#X`.#Z`%U[NA]G/W_BU,,B1#'1"0, -XMGZT("(M#",=$)`0%````B40D"(M5"(D4).AB3?[_@$L0`NN\BXV`\___B0PD -XMZ%*?_?^X`0```.DO^?__#[9"`8UZ`<8"`(3`#X3;\___#[[`A<`/B$0!``"+ -XM#?P@"0@YP0^.&`$``(L=""$)".L9@\")^NL2#[9"`8/"`83`#X2'\___#[[`A;V1(,U0'3? -XMQ@(`@+WH]___``^$9?/__X`^``^$7//__X`_``^$4_/__XDT).@&E_W_A<`/ -XMCD/S__^)/"3H1I_]_XDT)(G#Z#R?_?_'!"0!````C40#+HE$)`3H6)S]_X7` -XMB<,/A(K\__^-0"B)0Q2)?"0$B00DZ%R?_?^)/"3H!)_]_XE#&`-#%(/``8E# -XM((ET)`2)!"3H/)_]_XN%J//__XD#BY6$\___BT(,B4,$BXVH\___.TH(=$>) -XM&(NUA//__XE>#.G]\?__B7,$Z=G]__^+'0@A"0CI!?___XE^#.F>_?__B[W4 -XM\___Z27V__^+#?P@"0B+'0@A"0CIX?[__XE:".NVC;8`````C;PG`````%6) -XMY8M%#(&(@`````````B)10Q=Z4?P__^-M"8`````58GE@>S(````B77XBW4, -XMC47LB5WTC9U8____B7W\BWT(B40D&,=$)!0`````QT0D$`````#'1"0,```` -XM`,=$)`@`````QT0D!#H```")'"3H*Q0``(DT).CWG?W_B70D"(D<)(E$)`R- -XM1=R)1"0$Z+P/``")7"0$B3PDZ,#O__^%P'41BX>L!```@.3^#(")AZP$``"+ -XM7?0QP(MU^(M]_(GL7<.0D)"0D)"0D)"0D)!5B>6#[!B)7?2+70B)=?B)QHE] -XM_(G7]\,``$``#X6.````]\,``!``=!CVAI@"```!=4V+AI`"``"%P`^5P(3` -XM=5F#XQ!T&HM'"(E$)`B+1QS'!"3RF`@(B40D!.CSF?W_H00A"0B+7?2+=?B+ -XM??R)10B)[%WI^I?]_XVV`````(N&D`(``(T$0,'@`@-&$(M0.(72#Y7`A,!T -XMIXM'%,<$)+O<"`B)1"0$Z*:9_?_KDHD,).A575E.! -XM[,P```"+?0R+=12+'SG[=!`Y.P^$%0(``(D\).AHS?W_QT0D#"````#'1"0( -XM`````,=$)`0`````BT4(B00DZ,7._?^%P(G##X0K`0``BP>)>P2)`SE_!`^$ -XM,@,``(L'B5@$B1^+50B+0DR#P`&)0Q2+2A")C53____V@50(```0#X2B```` -XM@^;OB?&)\(/A0"4``@``QX5<____`````(F-4/___XF%3/___XU5V,=$)`P` -XM````QT0D"`````")5"0$BTT(B0PDZ'L(_O^%P`^%HP```(-]X`L/AJL```"- -XM1=@Q]HE$)`2+50B)%"3H10/^_XL3.?H/A+$```"+0P2)0@2+0P0Y^`^$LP`` -XM`(D0B1PDZ$#,_?^!Q,P```")\%M>7UW#C78`]\80````=#")7"00QT0D#``` -XM``#'1"0(`````(M5"(M"3(D4)(E$)`3H$HX``(7`=1Z!S@!```")-"2+31") -XMVHM%".C(_?__Z13___^-=@"^`0```('$S````(GP6UY?7<.+1>#_)(6,YP@( -XMBT,(@'P"_RX/A1D!``"+$S'V.?H/A4____^+0P2)1P2+0P2+$SGX#X5-____ -XMB1?I2/___[X!````Z2'___^+0Q"#P`$[0PQWBX50____A0[%?P@"0A]&J$((0D(]D20-0)T#H/Y"G0)@_D/#X66_O__BT,0#[95 -XMY(M+"(@4`8/``8E#$.E^_O__@WL,'P^&X?W__\=#$`````#I(?[__Y"-="8` -XM_R2-O.<("(E$)`R-0PR)1"0(BT,(B40D!(M-"(D,).A,M_[_A<`/A`3___^) -XM0PCI8?____9%[`(/A%_____WQB`````/A04!``#WQ@`(```/A84$``#WQ@`0 -XM``"-="8`=!&+0QR+4Q"#P`$YP@^$V?[__\=$)`P@````QT0D"`````#'1"0$ -XM`````(M%"(D$).@JS/W_A<")A5C___\/A(S^__^+0Q2+E5C___^#P`'WQA`` -XM``")0A1T1X.]7/___P(/A,@"``"+A5C___^)1"00BT,0B5PD",=$)`0````` -XMB40D#(M5"(D4).@PC```A<`/A3C^___'A5S___\`````B30DBTT0BT4(BY58 -XM____Z-K[__^+C5C___^).8M'!(E!!#D_#X2K`@``BT<$BY58____B1"+C5C_ -XM__^)RXE/!.D<_?__B5\$Z2+E43___^( -XM`HM#",9``0"AH!0)"(7`#X7=`P``BQ4$(0D(BT((@^@!A<")0@@/B.(#``"+ -XM`C'VQ@`*@\`!B0+I2OS__XM#$#M#'`^'"_W___?&$`````^$__S__\>%7/__ -XM_P$```#I\/S___?&$`````^$JOO__XM+$(7)B4V`#X2<^___@[U<____`0^$ -XM'`$```^#!`$``(M%@#M#'`^'??O__XM5"/:"T`,```$/A/,"``"+@L@#``"- -XM!$#!X`(#0A"+0#B)A7#___^+10CV@(@#```!#X2W`@``B<*+@(`#``"-!$#! -XMX`(#0A"+0#B)A73___^+0P@QTL=%D`````")A7S____K%XUT)@"#P@`! -XMBT6`.460#X2)`0``BTV0BX5\____@#P!"77>BXUP____B=`!T3'2][5P____ -XMB8U(____*=&)RNO#B50D$(M%N,=$)`0`````B40D#(U%G(E$)`B+30B)#"3H -XM:XD``(7`#X5S^___BT6DB00DZ!R6_?_'A5S___\`````Z2O]__^)#^E9_?__ -XM@[U<____`P^$U0```.B4D/W_BT,<@\`!.46`#X=D^O__BU,E?W_BT,%7/___P````#KCHM3"#'VBT,0Q@0"`.GD^?__ -XM@^H!B95(____B=`QTO>U=/___S'`BXU(____QX5H____`````"G1.8UP____ -XMB4V,=S.+A7#___^)18CK`XE-B(M%B#'2][5P____BTV(`XUP____@X5H____ -XM`2G1.4V,<]N+18B+58PIPHF5;/___P.5:/___XG0B95X____@\`!.T,,#X>' -XM````BY5X____QT,0`````(E3'(N%:/___X7`=!F+0Q"+4PC&!`()@\`!B4,0 -XM@ZUH____`77GBX5L____A<`/A-K^__^+0Q"+4PC&!`(@@\`!B4,0@ZUL____ -XM`77GZ;S^__^+30B+B8`#``")C73____I3_W__XM-"(N)R`,``(F-$:#R("(0UC'0S0!````B7PD!(DT).BK%_[_AR)1DR+1?")1E`QP.L%N`$```"+7?2+=?B+??R)[%W#BT,T@_@! -XM=+]S"8UT)@#H;XW]_X/X`G7&B7PD!(DT).C:$O[_A53@^P4BUT(QT0D!!#H"`B)'"3H]FO__XD<),=$)`1( -XMZ`@(Z.9K__^)'"3'1"0$@.@(".C6:___B1PDQT0D!,#H"`CHQFO__XD<),=$ -XM)`0?Z0@(Z+9K__^#Q!0QP%M=PXVT)@````"-O"<`````58GE5U93@^Q,BU4, -XMBT)XA<`/A0@!``"+'<#,"`B%VP^$\````(M5"+O`S`@(C77CBT(0]H!4"``` -XM!`^%U0```,=$)`P!````QT0D"`````#'1"0$`````(M%"(D$).CM_OW_A!0[%?P@"0A]#*$((0D(BY20-`@``(A5Y`^V`3'2QD7F78A% -XMY0^V1`H!B$0R!(/"`83`=?")\HM#%(/#&(E4)`S'1"0(#````,=$)`24U`@( -XMB40D$(M%"(D$).@T:___BP.%P'03BU4(BT(0]H!4"```!`^$*____X/$3#'` -XM6UY?7<.#Z`%T!>BKB_W_BT)TBP")1D( -XM"(E$)`B+10B)!"3HGFG__X/$3#'`6UY?7<.-="8`58GE5U93@^PC;0F`````(N&!`0``(7`=(NX8`L)".N&@^@!=`7H28G]_XM"=(L` -XM@W@(`70GQT0D"`H```"+0B"+0!")-"2)1"0$Z)`"``"#Q!RX`0```%M>7UW# -XMBP`/MA@/MM.#^GY_=X/Z6W1J@_I==&6`^WX/A)$```")T,'@!`4`_`@(BW@( -XMA?]T4XM(#`^^$872>!D[%?P@"0A]$:$((0D(NT^-"`CV1)`V`G4%N]+4"`B) -XM?"00B4PD#(E<)`C'1"0$:^D("(DT).C^9___,<#I`O___P^V0`$YT'23C012 -XM@,,!C81!6`$``'1&B30DB40D",=$)`3\Z`@(Z,QG__^#Q!PQP%M>7UW#]H8, -XM!````70MBX8$!```C01`BT2!.(7`#X11____N&`+"0CI4?___XE4)`2)-"3H -XM;O+]_^NLBX8$!```A(M1=(/``8E!>,<$@@````!;7<.-M@`` -XM``"-OP````!5B>564X/L$(M="(MS$,=$)`0!````B1PD_Y:@"```N@$```"% -XMP'0)@\00B=!;7EW#QT0D"`````#'1"0$`````(D<)/^67`@``/:#(`(```%T -XM4(N#&`(``(T$0,'@`@-#$/:#8`$```&+0#B)0S1T1(N#6`$``(T$0,'@`@-# -XM$(M`.(E#.(N#K`0``#'2@^#]@\@%B8.L!```@\00B=!;7EW#BX,8`@``]H-@ -XM`0```8E#-'6\BX-8`0``Z\:-=@!5B>53@^P4BT4,BUT(AGQ,_[_QT40\.H(",=%#`,```")30C) -XMZ=HS_O_'11`4ZP@(QT4,`P```(E-",GIPS/^_XE4)`S'1"0(/.L(",=$)`0# -XM````B0PDZ*EP,_[_58GE5S'_5E.#[!R+10B+=0R+@)@```") -XM1?#H58?]_\<``````(M5\(M:+(/",(E5[(M5\(M",#G'<@^-5P$YT')3BT7P -XMB?L#6"RAH!0)"(7`=6Z+1@2#Z`&%P(E&!`^(W0```(L&#[80@\`!B0:#^O]T -XM78/Z"@^$U````(@3BU7P@\(/]_^GP_O__B30DZ&N)_?^)PND>____BU40 -XM,<").H/$'%M>7UW#D%6)Y8/L&(E=](M=#(EU^(MU"(E]_(M](,=$)`B$```` -XMC1Q;C1S=P,P(",=$)`0`````B30DZ'J%_?^)7B"+11")1F"+112)1F2+11C' -XM1G`!````QT9H`0```(E&;(M%'(7`=`9F@4Y\``&%_\=&>`````")?G1T!L<' -XM`````(M=](MU^(M]_(GL7<.0D)"0D%6)Y8/L&(M%",=$)`CXZP@(QT0D!`0` -XM``")!"3H7S'^_S'`R<.0D)"0D)"0D)"0D%6)Y5=64X'L+`$``(M="(M]#/:# -XML`(```$/A)$```"+@Z@"``"-!$#!X`(#0Q"+4#B%T@^4P(3`#X6%````BU=D -XMA=(/A*<```")4TP/MT]\B<@E8@@``(/X(`^$X`````^/D0```(/X`@^%G``` -XM`(/A!+Y>````#X71````C78`B70D$(VU\/[__XE4)`S'1"0(ANP(",=$)`0` -XM`0``B30DZ$Z%_?_IT````)"-="8`BX.H`@``A<`/E,"$P`^$>____\=$)`A` -XM[`@(QT0D!`,```")'"3H=3#^_[@!````@<0L`0``6UY?7<.0C70F`+(!Z5+_ -XM__^#^$`/A!4!```]``@```^$<@$``(M#((E0$(M#(,=`%`````"-0U")1"0( -XMBT-,B1PDB40D!.COH_[_BT,@9H-(&`'IH@```(GVOBT```"#X00/A#+___^+ -XM1UB)="00C;7P_O__B50D#,=$)`A\[`@(B40D%,=$)`0``0``B30DZ'F$_?_' -XM1"00#````(E$)`R)="0(QT0D!`````")'"3HU?#]_P^W1WPE`!8``#T``@`` -XM#X2A````/0`$``!U*L=$)!`!````QT0D#`````#'1"0(`````,=$)`0:```` -XMB1PDZ`)"_O^)]HN#K`0``*@0=0L-```(`(F#K`0``*D```(`=22#X/J#R`*) -XM@ZP$``"!Q"P!```QP%M>7UW#OBX```#I)O___Y"+0QR#0PP!@P`!C47PB5WP -XMB00DZ"CG``"%P'1+@<0L`0``N`$```!;7E]=PXUT)@#'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$(@```(D<).AH0?[_Z6/___^^*P```.F^_O__B1PD -XMC;8`````Z)OX__^%P'6CQT0D!":Z"`B)'"3H)U___S'`Z3#^__]5B>575E.! -XM[)P```"+10B+?1"+0!")A7#___^+112+,(M%&(L`B85X____BT4/___X7`#X1S`@``.[5X____#X=G`@``QX5T -XM____`````,>%?/___P````#'18"-[`@(ZSR0C70F`(M'"(/H`87`B4<(#X@9 -XM`@``BP?&``J#P`&)!X.%=/___P&#Q@$YM7C___\/@H0"``")G7S___^+G7S_ -XM__^Z'X7K48/#`8G8]^+!Z@5KTF0YTP^%@P```(M5"(M"$/:`5`@```0/A>T` -XM``#'1"0,`0```,=$)`@`````QT0D!`````")%"3HQO']_X7`=1.+50B+0A#V -XM@%0(```$#X6V````BT4DA%?/___P`` -XM``")/"3H4W[]_X7`#X7Z_O__Z4/___^+10S'1"0,GZT(",=$)`0%````B10D -XMB40D".BC,/[_Z>'^__^+#:`4"0B%R75##[]'#HD$).@L?/W_A<`/A;/^___I -XM-?___XF=?/___XD\).CQ??W_A<`/A9C^___IX?[__XD\).A<@?W_B<+IY/[_ -XM_XD\).A-@?W_Z[>-M"8`````58GE5XG75E.#[#R)1=B)3=2+!T5HM'=(L`BQ@/M@.$P'0U -XM#[[`A2#?=0"=0V`.R$/A+P```"-="8`@W]D`0^&7`(``(M%X(7`D'0; -XM@WW4`W0)@#L^#X2O`0``BT7@A7UW#B1PDZ`*"_?^+5=B)7"0(B7PD -XM!(D4)(E$)`SHM_O^_X7`#X4,`@``BT=XA!K`0` -XM``(`!``/A:#^___'1"0$);H("(D,).A>6?__,<#IB?[__XVT)@````"`>P$^ -XM#X5'_O__@\,"@\X"#[8#A,`/A#;^__\/OL"%P`^(*_[__XL-_"`)"#G!#XX= -XM_O__BQ4((0D(ZR6-="8`@\,!#[8#A,`/A`/^__\/OL"%P`^(^/W__SG!#X[P -XM_?__]D2"-@)UV.GD_?__C78`QT0D"`0```"+0B"+`(E$)`2+1=B)!"3H9//_ -XM_[@!````Z>S]__^+1VR#P`&)1"0$BT78B00DZ'7U_?^%P'4=BT]X@\X!B4W@ -XMZ7W]__^X`0```.F[_?__Z+AY_?^+5WB)5>#I8_W__XN!7`,``(T$0,'@`@-! -XM$(M(.(7)#Y7`Z1/^__^+1W2+3=B+4`2+02"+&@^W0!@EA````(/`@`^$@@`` -XM`(M%V(E<)`2)!"3H/L#]_XM-V(U';(E$)`B-1V2)="00B5PD#(E$)`2)#"3H -XM3<']_^DZ_?__BT<@QT0D"`H```"+3=B+0!")#"2)1"0$Z(OR__^X`0```.D3 -XM_?__BT<@QT0D"`D```"+5=B+`(D4)(E$)`3H9?+__[@!````Z>W\__^+0@B) -XM7"0$B0PDB40D".A8FO[_A<")1=QT'8M5V(M"((M`"(D$).@D?OW_BTW8BU7< -XMBT$@B5`(BTW8BT$@9H%@&#__BT$@9H-(&`R+41#'1"0(`0```(M!((M`"(D, -XM)(E$)`3_DIP(``#I'____XVV`````(V\)P````!5B>564X/L$(MU"(M&'(7` -XM='GV0%@$=!.+50RY`P```(GPZ&G[__^%P'44QT0D!`````")-"3HE;_]_X7` -XM=!&X`0```(/$$%M>7<.0C70F`(M%#`^W6'R)-"2!XP`!``")7"0$Z/?P__^% -XMP'72@_L!&<`E`/[__P4`!```"8:L!```@\006S'`7EW#QT0D"`0```"+50R+ -XM0B"+`(DT)(E$)`3H.?'__[@!````ZY:)]E6Y`@```(GEBT4(BU4,7>G,^O__ -XMC;8`````C;\`````5;D!````B>6#[!B)=?R+=0B+50R)7?B)\.BB^O__AQ=P\=$)`0`````B30DZ+^^_?^%P'7=BT4,#[=8?(DT -XM)('C``$``(E<)`3H,O#__X7`=<"#^P$9P"4`_O__!0`$```)AJP$```QP(M= -XM^(MU_(GL7<.-M@````"-O"<`````53')B>6#[!B)7?B+70R)=?R+=0B)VHGP -XMZ!/Z__^%P'0/BUWXN`$```"+=?R)[%W#QT0D!`````")-"3H,+[]_X7`==W' -XM0W@`````B5T,BUWXB74(BW7\B>Q=Z5'?_O^058GE4X/L%(M="(M-#(M#'(7` -XM=#8/MT%\C5%1QT0D$`$```")'"2#X`'WV"'"C4%LB40D#(U!9(E$)`B)5"0$ -XMZ%RP_?^#Q!1;7+B -XM"```@_I`B47P#X2+`0``#X^5````@_H"#X1-`0``@_H@#X0A`0``]H."```` -XM"'0&@\`!B47PBT7PB4-DBT7P@^@!```````C47PB40D!(DT).C- -XM\?W_A<`/A<4```"+1?`Y0VQV`XE#;(E<)`2)-"3H7ES__X7`#X6F````BU7@ -XMA=)T"(M%X(E&3#'`@\0L6UY?7<.+2UCI5____XVT)@````"!^H````!T$X'Z -XM``@``(GV#X5G____Z7'___^->?^Z`0```-'O.?AV!(G"*?J)4V2+1?"#Z`&) -XM0VR)7"0$B30DZ.M;__^%P'4WQT0D!)SL"`B)-"3HMU/__XM%\(E%X(E#9(E# -XM;(E<)`2)-"3HOUO__X7`#X3Z````C;0F`````(/$++@!````6UY?7<.-=@"+ -XMCF0$``"#Z0'ILO[__SG!N@$```!S!8U0`2G*B5-DBT7PB4-LQT7@`````.D% -XM____C10).=`/AIL```"#P`$IT(E#9(M#9(/H`0'(B4-LQT7@`````.FY_O__ -XMD(UT)@"-4?^Y`0```-'J.=!V!(G!*=&)2V2)T`-%\(E#;(M&3(E%Z(M&4(E% -XM[(U%Z,=$)`P!````B40D",=$)`0G````B30DZ-@2_O_'1>``````Z6#^___' -XM1"0(!````(M#((L`B30DB40D!.A3[?__N`$```#I@O[__\=#9`$```#I8?__ -XM_\=$)`2<[`@(B30DZ(U2__^+1?"#P`&)0V2+1?"#Z`$!^(E#;.D(_O__D)"0 -XMD%6)Y8/L&(M%",=$)`C([`@(QT0D!`,```")!"3HSR'^_[@!````R<.0D)"0 -XMD)"0D%6)Y8/L&(M%",=$)`CX[`@(QT0D!`,```")!"3HGR'^_[@!````R<.0 -XMD)"0D)"0D%6)Y5.#[!2+70R#>Q0$=@7H+W/]_XM#%/\DA2CM"`B0,<"#Q!1; -XM7<.+`X/X`71QC5#_C4,,B1.)1"00C4,(B40D#,=$)`@!````B50D!(M%"(D$ -XM).CG[/W_A____C;8`````58GE5E.#[#"+70R-1?2+=0B)1"00 -XMC4,,B40D#(U#"(E$)`B+`XDT)(E$)`3H;^[]_X7`=!.+5?2X`0```(72=26# -XMQ#!;7EW#BT,,A7<.X`0```.ORC;8`````C;\`````58GE -XM5E.#[!"+=0B+70R)]HE<)`2)-"3HQ/S__X7`=3.+0Q2#^`-TZ(/X`73CA<"0 -XM=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X`0```%M> -XM7<.058GE5E.#[!"+=0B+70R)]HE<)`2)-"3H=/W__X7`=3.+0Q2#^`-TZ(/X -XM`73CA<"0=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X -XM`0```%M>7<.058GE5U93@^P\BT4,]D`Q`G0.#[90`8#Z0'0%@/HJ=1N+50AF -XM@[JL!`````^)0P$``(M="`^VDZ@```"+10@/MLJ!B*P$````@```.PW\(`D( -XM#XS(````B="+70B+7UW#QT0D"`4```#'1"0$`````(D4).A$Y___ -XM@\0\N`$```!;7E]=PXM5##'`]D(Q"`^$;____XM"!(U=X(D<),=$)`CZE@@( -XMQT0D!!0```")1"0,Z(IP_?_'1"00`````(E<)`C'1"0$`````(E$)`R+70B) -XM'"3HX]S]_X7`#Y7`#[;`Z1W____'1"0$_P```(M%"(D$).B3U_W_Z3[___^0 -XMD)"0D)"0D)"0D)"0D%6)Y5.)PX/L%(#Z_W0U#[;"C01`C80`4`$```-#$(/` -XM"(D<)(E$)`S'1"0(2^T(",=$)`0"````Z%,;_O^#Q!1;7<.)5"0$B1PDZ#'7 -XM_?_KT.L-D)"0D)"0D)"0D)"0D%6)Y5=64X/L+(M]#`^V5P+V1S$@#[;:=0^+ -XM30B+@9P```"(D(0!``"+50B+@IP```#'@(@!```!````C47LB40D$(U%\(E$ -XM)`R-1>B)1"0(BT7UW#BT7PAAS!P^^`CG8=>PYT77B)5T2)1T")1TB+1RR%P'0.]D`&('0(@V\X`3'`ZX0Q -XMP.N`B?95B>6#[!B)7?B+70R)=?R+=0B)7"0$B30DZ.+^__^Z`0```(7`=22+ -XM0T"+4SR#P`&)4T0QTHE#0(E#2(N&G````,>`B`$```,```"+7?B)T(MU_(GL -XM7<.)]HV\)P````!5B>575E.#["R+?0P/ME<"]DC]_X7`=".+3>RX`0```(7)=`^+10B)VNC'_?__N`$` -XM``"#Q"Q;7E]=PXM%\(7`=.*+3>B^`0```(E-X`'!BT7@`TAV!P^^`CG8=>PYT77@ZYV+=P3K -XMV8M'+(M5Z"M5X(7`B5=`=`;V0`8@=0V+1SR)5TB)1T0QP.N$BT`B`$```0` -XM``"+7?B)T(MU_(GL7<.0C70F`(M#/(E32(E#1.O2D(UT)@!5B>6#[!C'1"0( -XM7.T(",=$)`0"````B00DZ#(8_O_)PU6)Y8/L&(EU_(MU"(E=^(M5#(N&G``` -XM``^V@(0!``"(0@*+AIP```"+F(@!``"#^P1V!>BL:?W__R2=@.T("(E4)`2) -XM-"3HM?W__XG"C78`BX:<````B9B(`0``BUWXB="+=?R)[%W#B?#HR)T%W#B50D!(DT).C4_?__B<+KP(E4)`2)-"3H9/S__XG" -XMZ[")5"0$B30DZ,3^__^)PNN@58GE@^P(BU4(BTT,BX*<````#[:`A`$``(A! -XM`HN"G````(.XB`$```1V!>@$:?W_BX"(`0``_R2%E.T("(E-#(E5",GI=_[_ -XM_XG0Z.#^__^X`0```,G#B4T,B54(R>GM^___B4T,B54(R>E!_?__B4T,B54( -XMR>G5_/__D)"0D)!5B>575E.#["R+10R+?0R+70R+2#")SHG(P>X#@^`"@^8! -XM@_@!BT4,&=*!X0`"``"#XOZ#QS2#P@2#PP&#P#R#^0&)1>`9P`GR]]`APXM% -XM"(E4)!"+5>")?"0(B5PD!(D$)(E4)`SH-:+]_X7`=!&X`0```(/$+%M>7UW# -XMC70F`(M5X(M%"(ET)`R)?"0$B50D"(D$).@&IOW_AR)7"00QT0D#`````#'1"0(`````(M" -XM1(E$)`2+10B)!"3HRN']_X7`#X63````BT4,BT@P]L$(=1>!X0_^__^#R2") -XM2#"+50R+1>PY0DAS73'`]L$$#X19____BU4,@>$/_O__@\E`B4HPZ47___^0 -XMBU4(C47PB40D!(D4).BNX_W_A<`/A27___^+1?"%P`^%9?___XM%#,=`1`$` -XM``#'0$@`````,<#I!____X/X`8U0_QG`]]`APHM%#(E02.N/BT7PBU4(B5PD -XM$,=$)`P`````QT0D"`$```")1"0$B10DZ`GA_?^%P`^%P/[__XM%\(M5#(E" -XM1.DQ____D)"058GE4X/L-(M="(U%^(E$)!"-1?2)1"0,QT0D"`````"+0TR) -XM'"2)1"0$Z,'@_?^%P'0&@WM,`71\BT7XA<")]G1.QT0D%`````#'1"00```` -XM`(E$)`R+1?3'1"0$`````(D<)(E$)`CH,R?__[H!````A6#["B)7?2)PXE]_(EU^(MP$,=$)`0`````B00DZ#S!_?^% -XMP(G'=!>-1AB)1"0(B5PD!(DT).BS5O[_AQ= -XMP\=$)`P`````QT0D"`````")?"0$BT88B00DZ&["_?^%P'4.BT88BT`<@&!8 -XMOS'`Z\*+1AB)!"3HP53^_[@!````Z["-=@"-O"<`````58GE@^PXB5WTB<.) -XM??R)UXEU^(M`$(M`&(7`=&6+7<.+1?0Y0U!RU8/X`8U0_QG`]]`A -XMPHE34.O$58GE@^P8B5WTB<.+02")=?B)UHE]_(E,)`2)'"3_4`2)\HG'B=CH -XM5?___[H!````A57 -XM5E.#["R+70B+>Q#'1>``````Z>,```"0C70F`(N#3`$``(T$0,'@`@-#$(M` -XM.(7`#Y7`A,!T$8GRB=CH3/[__X7`#X6.`0``QT0D%`$```#'1"00`````(M& -XM$(E$)`R+1@C'1"0$`````(D<)(E$)`CH-B3__X7`#X58`0``B1PDZ$;H``#V -XM@ZP$```0="ZAH!0)"(7`#X7#````BQ4$(0D(BT((@^@!A<")0@@/B#`!``"+ -XM`L8`"H/``8D"B1PDZ/>2_O^)'"3HKT'__XU%\(E$)`2)'"3H0/,``(7`#X7R -XM````BT7PA<`/A(H```"#0RP!QT7@`0```(M'?(M`%(7`#X5V____BT4,QT0D -XM#(`!00#'1"0(.@```(D<)(E$)`3H!:(``(7`#X6G````BW-XBT8X@_@!#X2Z -XM````A7UW#B50D!,<$)`H```#H -XM?6;]_^G%_O__@WX0`78-B?*)V.B%_/__AS'1"0( -XM`0```(D<)(E$)`3H@$8!`(7`=".+1>R)!"3H`5'^_[@!````ZYF)V.BC^___ -XMA<"0=8CI;/___XM&&(M0'(M%[(E0'(M%[(M`'(,``8M&&(M0((M%[(E0((M% -XM[(M0((M#(`^W0!AFB4(8BU7LC4),B10DB40D!.BEW?W_BT7LBU!,A=)U"L=` -XM3`$```"+1>R!B*P$``````$`B5L8BT7L@8NL!````!```(E#%#'`Z0S___^- -XMM@````"-O"<`````58GE4X'LM````(V=>/___XD<),=$)!@`````QT0D%``` -XM``#'1"00`````,=$)`P`````QT0D"`````#'1"0$/````.@8W?__BU4,B=F+ -XM10CH>_S__X'$M````%M=PXGV58GE5E.![+````"+=0R+1C3V1C$(C4@!=`R+ -XM5@2#^@)V!(U,`O^-G73___^)3"00B40D#(D<),=$)!@`````QT0D%`````#' -XM1"0(`@```,=$)`0<````Z*3<__^+10B)V8GRZ`C\__^!Q+````!;7EW#C;0F -XM`````(V\)P````!5B>6![+@```")=?R+=0R)7?B+1A2#^`5T"H/X#'19Z"!@ -XM_?^-G73____'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!"P```")'"3H'MS__XM%"(G9B?+H@OO__XM=^(MU_(GL7<.-G73_ -XM___'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D -XM!$@```")'"3HRMO__^NJD(VT)@````!5B>6![+@```")=?B+=0R)??R+?0B) -XM7?3V1C$@=6*+1BP]X``)"'18/>`""0AT4<=$)`R`B$$`QT0D""$```")="0$ -XMB3PDZ&6>``"%P`^%G@```(M?>(-[.`0/A,(```"+1TR)1D2+1U")1D@QP(GV -XMBUWTBW7XBWW\B>Q=PXUV`,=$)!@`````C9UP____QT0D%`````"+1CR)1"00 -XMBT8TQT0D"`(```#'1"0$`0```(D<)(E$)`SH!-O__XN'F````,=`)`````#' -XM1"00`0```,=$)`P!````QT0D"-7:"`B)7"0$B3PDZ`/7_O^%P'0/N`$```#I -XM=?___Y"-="8`BX>8````B=F+4"2)5>B+0!R)\HE%Y(GXZ!/Z___I3O___XD\ -XM).@FXP``QT0D&`````#'1"04`````(M&/(E$)!"+1C3'1"0(`@```,=$)`0! -XM````B40D#(V%8````QT`D`````,=$)!`!````BT,0 -XM@^@!B40D#(M#"(D\)(/``8E$)`B-A7#___^)1"0$Z$_6_O^%P`^%2/___XN' -XMF````(V-R-O5C___^)1"08QT0D%`````#'1"00`````,=$)`P` -XM````QT0D"`````#'1"0$.@```(D\).ASV?__BX:<````BY@P`0``B1PDZ#-C -XM_?^)7"0(B3PDB40D#(U%W(E$)`3H^-3__XM5#(GYB?#HK/C__XM=](MU^(M] -XM_(GL7<.+EM`!``"%T@^$____D%6)Y5.![,0```"-G6#___^-1?2)1"08B1PDQT0D%`````#' -XM1"00`````,=$)`P`````QT0D"`````#'1"0$-P```.B)V/__C47DB40D!(D< -XM),=$)`P'````QT0D"'[`"`CH&M3__XM5#(G9BT4(Z,WW__^!Q,0```!;7<.- -XM="8`58GE5E.![,````"+=0R-1?")1"08C9U<____QT0D%`````"+1CR)1"00 -XMBT8TB1PDQT0D"`(```#'1"0$!P```(E$)`SH!]C__XU%X(E$)`2)'"3'1"0, -XM`0```,=$)`B9[P@(Z)C3__^+10B)V8GRZ$SW__^!Q,````!;7EW#B?95B>56 -XM4X'LP````(MU#(U%\(E$)!B-G5S____'1"04`````(M&/(E$)!"+1C2)'"3' -XM1"0(`@```,=$)`0%````B40D#.B'U___C47@B40D!(D<),=$)`P!````QT0D -XM"':["`CH&-/__XM%"(G9B?+HS/;__X'$P````%M>7<.)]E6)Y593@>S````` -XMBW4,C9U<____C47PBU8TB40D&(D<),=$)!0!````B50D$(E4)`S'1"0(`@`` -XM`,=$)`0#````Z`K7__^-1>")1"0$B1PDQT0D#`$```#'1"0(3XT(".B;TO__ -XMBT4(B=F)\NA/]O__@<3`````6UY=PY"-="8`58GE@>S(````B7W\BWT(B5WT -XMB77XB[>D````A?8/A)T```#'1"0(`0```,=$)`0`````B3PDZ)6R_?^Z`0`` -XM`(7`=`^+7?2)T(MU^(M]_(GL7<.-1>R-G5C___^)1"08QT0D%`````#'1"00 -XM`````,=$)`P`````QT0D"`````#'1"0$%````(D<).A`UO__B30DZ`Q@_?^) -XM="0(B1PDB40D#(U%W(E$)`3HT='__XM5#(G9B?CHA?7__XG"ZX60QT0D"`T$ -XM"0C'1"0$`P```(D\).@("/[_N@$```#I8O___XVT)@````"-O"<`````58GE -XM5E.#[!"+70B+7<.)'"3'1"0(`````,=$)`0`````_Y9< -XM"```BU,@BT-,B4(0BT-0BU,@B4(4BT,@9H-(&`&+@ZP$``"#X/6#R`&)@ZP$ -XM``")'"3'1"0$)KH(".C4-___@\00,6#[!B# -XM^@)T-8/Z`W05@^H!=`+)PXGVC;PG`````.C/6/W_QT0D"(0$"0C'1"0$`P`` -XM`(D$).@#!_[_R<.0QT0D"&0$"0C'1"0$`P```(D$).CH!O[_R<.-M@````!5 -XMB>575E.![+P```"+50P/MD("/"-T.CPK=#H\+70VQT0D"`8```"+30R[`0`` -XM`(M!*(M`"(E$)`2+=0B)-"3HC)T``('$O````(G86UY?72+0#@Y^(F%7/__ -XM_W-XBU7'@Y -XM\'UT@\(!]D2!-4!T:H/#`3G[=>/K"XM=X(7;#X1X`0``QT0D"+\$"0B[`0`` -XM`,=$)`0#````BTT(B0PDZ)`%_O^!Q+P```")V%M>7UW#QX58____`0```.D' -XM____BT4(N@(```"[`0```.@B_O__Z]"+G5S___\[G5S___\/A,`!``"+30B) -XM65#'1"0$`````(D,).@8"`$`BW7%9/___P````"#P#(/ -XMA(P!``")1"0,C47HB40D",=$)`0`````BU4(B10DZ.9X_O^%P(F%9/___P^% -XM8`$``+L!````@<2\````B=A;7E]=PX/X`G8JB[5L____#[94%@&`^EB(E4__ -XM__\/E(57____#X3P`0``@/IX#X3G`0``A,D/A//^__^#^`$/ANK^__^+M5S_ -XM__^+C5#___^#Q@$/MA0Q#[["@_A_#X?3_O__]@2%W10)"`0/A,7^__^`^C@/ -XMA+S^__^`^CG'A6C___^S!`D(QX5@____"`````^%T_[__^F:_O__B9UL____ -XMB9U<____Z5W^__\/MD,!#[[0@_I_#X;#`0``@^@X/`%W0\>%:/___[.@"`C' -XMA6#___\*````@\,!Z9+^__\/OD,!@_A_=PKV!(7=%`D(!'7EB40D!,<$)-H$ -XM"0CHFU7]_X7`==&+30B%R0^$E_[__XM%"(M8$(7;#X2)_O__]H-5"````0^% -XM?/[__XU',CM#>`^'8`,``(M#=(F%9/___XM#>(E%Z(&+5`@````!``")\BN5 -XM7/___SMUY(F5%8/___Q````#IZOS___8$E=T4"0@$#X0O_O__/#@/ -XMA"[^__\\.0^%.O[__^DA_O__@/LKC70F`'0)@/LM#X6!_/__B[5<____BY50 -XM____QX5H____N@0)"(/&`0^^!#*#^'\/AY_[___IS'1"0, -XM"@```,=$)`@`````B00DZ&MS_O^#^`$/A:'^__^+30R+E5C___^`>0(M=0+W -XMVHM-[(7)#X[4`0``A=(/CLP!``"X____?RG(.=`/@[T!``"X`@```.ED_O__ -XMBT4,@'@"*P^$@P$``(M%\#F%6/___P^'+@$``"N%6/___XE%\(.]8/___Q"+ -XME7#___]U`X/J`HM%\(V->/___XE4)`R)1"00BY5H____QT0D!&0```")#"2) -XM5"0(Z"=5_?^)QXN%7/___XE$)`B+1=R)1"0$BY5D____B10DZ$96_?^+G63_ -XM__^-C7C___\#G6S___^)3"0$B7PD"(D<)`'[Z")6_?^+1>0KA5S___\KA7#_ -XM__^)1"0(`W72)1"0,B[5D____ -XMB70D"(M5#(M"-(E$)`2+30B)#"3H2]#]_XG#Z7+]__^)5"0(BX5L____`T7< -XMB40D!(N-9/___XD,).BI5?W_BX5D____BY5P____Q@00`(N%9/___^GR_/__ -XMA=)Y>+@```"`*<@YPGUMN`,```#I$/W__XE$)`R-0WB)1"0(BT-TB40D!(M- -XM"(D,).@4=/[_A<`/A#3[__^)0W3I<_S__X&@5`@``/_^___IQ?G__XM5\(G0 -XM]]`[A5C___\/@E/^__^+A5C___\!T(E%\.ER_O__AD?&@`` -XMBX'``@``C01`P>`"`T$0BT`XB5T0B4T(B44,6UWI_1D``(N!4`,``(T$0,'@ -XM`@-!$(M`.(E=#(E-"(E%$%M=Z=L9``"-="8`C;PG`````%6)Y593@^P0BW4( -XMBYZ<````A=MT8(N#,`$``(7`=`B)!"3H#57]_XN#1`$``(7`=`B)!"3H^U3] -XM_XN#?`$``(7`=`B)!"3HZ53]_XN&G````(N`C`$``(7`=`B)!"3HT53]_XD< -XM).C)5/W_QX:<`````````(/$$#'`6UY=PXGV58GE@^P8QT0D!,P!``")7?2+ -XM70B)=?B)??S'!"0!````Z&Y2_?^%P(G6````BT4,A=N)L)P```#'AJP! -XM````````#X3:````B[N<````BX=(`0``A$`0``,=*( -XMAH0!``"+AX@!``")AH@!``"+A[0!``")AK0!``"+7?2)T(MU^(M]_(GL7<.) -XM!"3H1U/]_X7`B<*)AD0!``!T+8N'2`$``(E$)`B+AT0!``")%"2)1"0$Z(]2 -XM_?^+AT@!``")AD@!``#I5?___\=$)`@`````QT0D!`4```")'"3H@OS]_[H! -XM````ZY$QTL>&B`$```````#K@Y"0D)"0D)"0D)"0D)!5B>575HG.4XMZ,('. -XM`(2$!(G#]\<`(```=`B)SH'.`(2$!O:#``$```$/A*`!``"+@_@```"-!$#! -XMX`(#0Q"+0#B%P`^5P(3`=`.#S@3V@PP!```!#X1E`0``BX,$`0``C01`P>`" -XM`T,0BT`XA<`/E<"$P'0#@\X0]H,\`0```0^$*@$``(N#-`$``(T$0,'@`@-# -XM$(M(.(7)#Y7`A,!T`X/.0/:#E`,```$/A.\```"+@XP#``"-!$#!X`(#0Q"+ -XM0#B%P`^5P(3`=`:!S@```!#V@Z\$```!=`:!S@`(``#V@R0$```!#X2B```` -XMBX,`"`T,0BT`XA<`/E<"$P'0&@'E`````$```")QHU%[(E$)!"-1?")1"0,C47HB40D"(M#-(D\)(E$ -XM)`3HYLC]_X7`=!J+5>R%T@^$!P$``(/.",=%\`````")=>#K%(M%\(7`#X3A -XM````@B%P`^$O0```(M#,(U3`8US/,=$)!``````B70D#"4``@`` -XM@_@!&<#WT"'"C4,TB40D"(E4)`2)/"3HVH3]_X7`=7:+1>#'1"0<`0```,=$ -XM)!@`````QT0D%`````")1"0@BT7PB40D$(M%Z(ET)`B)7"0$B3PDB40D#.BY -XM4P``@\0\6UY?7<.0B5-`Z6W___^+4P2#Z@&-!`*)0T"+5?"#Z@$YT`^&4___ -XM_^O<@\X(Z1?___^-="8`@\0\N`$```!;7E]=PXUS/.EU____C70F`(V\)P`` -XM``!5,'E`````0```")QHU%[(E$ -XM)!"-1?")1"0,C47HB40D"(M#-(D\)(E$)`3H9L?]_X7`=!B+5>RX`0```(72 -XM='B#S@C'1?``````ZQ"+3?"%R74#@\X(@B)1"0(B50D!(DT).B#QOW_A7UW# -XMBU7PA=)UKX/+".NJD(M'!.NOC70F`(V\)P````!5,&E`````````"+5S2)5DR)PXU%[(E$)!"-1?")1"0,C47H -XMB40D"(E4)`2)-"3HL\7]_X7`=&6+5>RX`0```(72=%$QTH/+",=%\`````#V -XM1S$(N`$```!T`XM'!(E$)!R+1>B)7"0@QT0D&`````#'1"04`````(E4)!") -XM1"0,QT0D"`````")?"0$B30DZ`)1``"#Q#Q;7E]=PXM5\(72=!.+1E"#P`$Y -XMPG0.B490ZYV-="8`@\L(ZY2#RPB)5E#KC(UV`%6)Y8/L&(E=^(M="(EU_(MU -XM#(U#4,=#4`````")1"0(BT8TB1PDB40D!.BQ:?[_AQ= -XMZ>#]__^+7?BX`0```(MU_(GL7<.058GE5E.#[#"+=0R-1?2+70B)1"00QT0D -XM#`````#'1"0(`````(M&-(D<)(E$)`3H#,']_X7`=1*+1?2#^`&-4/\9P/?0 -XM(<*)4U"+0Q"+D!@!``"%TG04BY`0`0``:X`<`0``'/9$`A0"=0B)'"3H'=?] -XM_XET)`2)'"3H(?[__X/$,%M>7<.-=@"-O"<`````58GE5U93@^Q,BUT,BW4( -XMBT,PBU,T)0_^__^#R"`[4SR)0S`/A!<"```QR8G:B?#H;/C__XE%T,>&E``` -XM``$```"+0S#!Z`.)QX/G`70SQT,X`````/:&#`$```$/A!X"``"+A@0!``"- -XM!$#!X`(#1A"+0#B%P`^5P(3`#X42`@``BT,TB49,BT,XB490BT80BY`8`0`` -XMA=)T%(N0$`$``&N`'`$``!SV1`(4`G4(B30DZ$K6_?^%_W4,BT,T.T,\#X0* -XM`@``C4,\C5,TB57R-1>B)1"00C47LB40D#(U%Y(E$)`B+0S2)-"2)1"0$Z'#"_?^%P`^% -XM#@$``(M5[#E3.'($@TW0"/9#,0BX`0```'0#BT,$BTW0B40D',=$)!@````` -XMQT0D%`````")3"0@B50D$(M%Y(E<)`3'1"0(`````(DT)(E$)`SHQ$T``(M- -XMU(7)B<-T,87V=!.+1A"%P'0,BU74.5!T#X0E`@``BTW4B0PDZ.U)_?^#Q$R) -XMV%M>7UW#NP$```"#Q$R)V%M>7UW#C47HB40D$(U%[(E$)`R-1>2)1"0(B50D -XM!(DT).BOP?W_A<`/A,#]__^+1>B%P'3!B5PD!(DT).B4^___BP`````Z>'^__^0BT,PC5,!C7L\QT0D$``` -XM``")?"0,)0`"``"#^`$9P/?0(<*-0S2)1"0(B50D!(DT).B:??W_A<`/A2/_ -XM__^+1>R%P'4$@TW0"/9#,0BZ`0````^%T0```(%-T``@(`"+3=")5"0B)1"0,QT0D"`$```")5"0$B1PDZ`6[_?^%P`^% -XM6____XM33(/J`?9',0BX`0```'0#BT<$BTW@B40D'(E4)!C'1"04`````(E, -XM)""+1>R)1"00BT7HB7PD!(D<),=$)`@`````B40D#.C`20``@\0\6UY?7<.- -XM1?")1"0$B1PDZ-F\_?^%P`^%[_[__XM-\(7)#X6&_O__,=+'1>@`````QT7L -XM`````.EZ____D%4QR8GEBT4(BU4,7>DO_O__ZPV0D)"0D)"0D)"0D)"05;D! -XM````B>6+10B+50Q=Z0S^__^0D)"0D)"0D)"0D)!5B>6#[`B+30R+02R%P'0& -XM]D`&('4JA<#'04``````=`KV0`8@=`2#:3@!BT%`BU$\B4%(,<")443)PY"- -XM="8`BU$XA=)USXM%"(D$).C^A0``N`$```#)PXVT)@````!5B>6#[`B+30R+ -XM03B%P'10]D$Q"+H!````=34YPG(HQT%``````(M!+(7`=`KV0`8@=`2#:3@! -XMBT%`BU$\B4%(,<")443)PRG0B4%`Z]B)]HM1!#G"<\CK[HVT)@````"+10B) -XM!"3HA84``+@!````R<.-M"8`````C;PG`````%6)Y5.#[!2+70SV0S$(='"+ -XM0P2#^`%V:(/H`8E#!(E$)`B+0S2)1"0$BT4(B00DZ,SR``")P8E#0(M#+(7` -XM=`KV0`8@#X66````BU,X.=%V1H7`#X2D````]D`&((UV``^$EP```(U!_XE# -XM0(M#-(E32(E#1#'`ZS:-M"8`````BT,LA-M"8`````A!W5`^$*`$``(M+.(/N`8E+2(E[1`^$D0```(M#/#E#-',+ -XMBU-`A=(/A(4```"#:T`!,<#I0____XM#0(M3/(E#2#'`B5-$Z3#___^+4SR+ -XM>S2)5>#KIXM30(M+.(G(B=&)4SB+5>")>SR)0T")UXE3-.N8@TLP"+X!```` -XMZ37___^+4T"+2S@YR@^$KP```#G1#X9T____Z\.%T@^$.?___Y"-="8`Z>O^ -XM__\QP.G)_O__@^@!B4,\C77PB40D!(M%W(ET)!#'1"0,`````,=$)`@!```` -XMB00DZ'BT_?^%P`^%D/[__XM%\(ET)`C'1?``````@_@!C5#_&<#WT"'"BT,T -XMB5-`BU7EO_?__ZPV0 -XMD)"0D)"0D)"0D)"058GE@^P8BU4,QT0D#`$```"-0C2)1"0(#[9"`HE$)`2+ -XM10B)!"3H9=C]_\G#D)"058GE5U93@^Q,BTT,C47HBW4(B40D$(U5Y(U%[(E$ -XM)`R)5"0(BT$TB30DB40D!.B]MOW_A7UW#BT4,BUWLBT@X.=ESRXG*`U7D -XM#[8"#[[P/#Z)=<`/A`0"``!_)SPI#X0M`@``/#P/A!0"```\*(UV``^$^`$` -XM`(/!`8/"`3G9=-(E.0#G##X.C`0``BW4,BU8L -XMA=(/A+P!``#V0@8@#X2R`0``BT8XB5Y$B49(A=(/A*````#V0@8@#X26```` -XMBW4,B=J+1CPYPP^$A@````^#CP$``(GS@\,TBTL$AP/A-\````/M@(\ -XM(`^$O0```#P)#X2U````,<")]NDY_O__#[9%W#M%P'07.46\#X7*_O__@^X! -XM#X7!_O__Z?'^__^#Q@'IM/[__SQ[D'09/'T/A4S^__^[\"H'",=%O'L```#I -XM:_[__[L`+`<(QT6\?0```.E:_O__N_`J!PC'1;Q;````Z4G^__^[\"H'",=% -XMO#P```#I./[__[L`+`<(QT6\*0```.DG_O__NP`L!PC'1;P^````Z1;^__^[ -XM\"H'",=%O"@```#I!?[__XM%[(/"`8E5Y(/H`87`B47L#X4A____BTT,,<"# -XM23`(Z6C]__\/A(8```"+50R)2DB)0D2+30R+42SI9/[__\=$)`@,!0D(Z2G] -XM__^+=0R)3DB)1D3I2?[__XM=#(/#/.EK_O__BUT,@\,TZ7G^__^-1?#'1?`` -XM````B40D"(L#B40D!(M%"(D$).A06/[_A<`/A?'\__^+0P0[1?`/AZC^__^+ -XM30R+432+03SI*O[__SM..`^&R+@'P!``"%P'0(B00DZ-@Z_?^%_W03BT7HB7PD!(D< -XM)(E$)`CHD3G]_XM%$(7`=!R+51"-1@&)1"0(B50D!(M5\(T$$XD$).AN.?W_ -XMBT7LB9A\`0``,<#I-(7`=`;V0`8@=52)V(/X -XM`78IBT4(C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2)!"3HN*[]_X7`=$2[ -XM`0```(E>/#'`QT9``````,=&2`````")7D2#Q#Q;7E]=PY"+1CB%P`^%50$` -XM`(/[`0^$T0$``(-.,`B-0_^)1C3KCL=%W`(```#V1C$(#X4_`0``BT7PA<`/ -XMA70!``#'1=@!````BT4(@^L!C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2) -XM!"3H):[]_X7`#X5I____BTW8A0'K$HUV``^V0@*#P@*$P`^$ -XM5/___XGY.,AUZP^V0@$\(`^$``$``(M-U#I!`G77@VW<`771D.G,_O__@WW8 -XM`8VT)@````!T!>AM,_W_BT7PA<`/A!'___^)1"0$BT7LB00DZ!]X``"%P`^% -XM^O[__X-MW`$/A([^___'1=@`````Z>3^__^0@^@!B48XB=CI0?[__XUV`(M& -XM!`'`B47`"#X7V_O__D(UT)@#I]/[__XUT)@"-O"<`````58GE5U93 -XM@^P\BWT,BTB) -XM3=2)1"00B50D#,=$)`@`````B5PD!(M%"(D$).C"J_W_A@8,?W_C70F`(M-\(7)#X05____B4PD -XM!(M%Z(D$).C&=0``A<`/A6W___^#;=@!='.+3?#'1=``````Z>G^__^+3?"# -XM^0$/AMW^__^+50B+@IP```"+@'P!``")1

.+ -XM5-U[`^V0@$\(`^$F`$``#I&`G7; -XM@VW8`775BT7UW#@?M``@D(#X7, -XM_O__BTB)!"3H%70``(7`#X2F -XM_?__Z9#]__^#;=@!C70F``^%J?W__^FP_O__D(UT)@"+3?"-<_^#^0$9P(U1 -XM__?0(<(Y5S@/A:+]___'1"0$`````(M%"(D$).AB=@``N`$```#IP?W__X/Y -XM`@^%7_[__^E?_O__N`$```"0C70F`.FD_?__BTWPZ#[;` -XM_R2%,`4)"+DY````BX.<````B$H!B(B9````6UW#N3(```#KY[DS````Z^"Y -XM-````.O9N34```"-="8`Z\ZY-@```.O'N3<```")]NN^N3@```#KMXVT)@`` -XM``!5B>575E.#["R+70R+?0B+0S#VQ"`/A<(```#VQ`B^`0```'0#BW,$C4,! -XMB47PC4-$B47L@^X!@_[_#X2N````BT,P)0`"``"#^`$9TO?2(U7PQT0D%`$` -XM``"+1>S'1"0$`````(E4)`B)/"2)1"00C4,TB40D#.BT%?[_A<````B46TC47LB40D$(U%Z(E$)`S' -XM1"0(`0```(M&-(D\)(E$)`3HTZ7]_X7`#X6A`0``BT7LA<`/A$,!``#'1;@! -XM````]D8Q"'0&BU8$B56XBT8TB48\BT8X@^@!`T6XB49`BU7L@^H!.=`/A[4! -XM``#'1;P`````]D8Q(`^$)@$``(7_#X19`0``BU\0A=L/A$X!``#V@U4(```! -XM#X5!`0``BT7L.4-X#X(@/A$\!``"+ -XM5;2+@D`!``"#^`P/A$\!``"+3;2+5<`#5C@/MH$\`0``BTVXB10DB40D!(E, -XM)`CHR"S]_XM%[(E$)`R+1<")1"0(BT8TB3PDB40D!.AGJ?W_B<.%_W03BT<0 -XMA' -XME`````0```"-77UW#BT7LQT7P`````,=%P`````"%P`^$TO[__XE$)`R-1?") -XM1"0(QT0D!`````")/"3HUTS^_X7`=+F)1<"+1>SIJ/[__XU&-+L!````B40D -XM!(D\).B4<```@\1QT6/:'#`$```$/A$,"``"+AP0!``"- -XM!$#!X`(#1Q"+0#B%P`^5P(3`B=%T+HM=Z`^^$X72>"<[%?P@"0A]'Z$((0D( -XM]D20-@)T$XU!_X-%Z`&%P(G!B47L==*+7>B+1>R)7"0$B3PDB40D#(E$)`CH -XM*&']_X7`B<-T_?_IZ?S__\=$)`@'````,=O'1"0$`````(D\).C$;``` -XMZ1_]__^)7"0$B3PDZ,/#``"%P`^$(____^D\_?__@_@)C78`=60QV^GW_/__ -XM@8^L!`````0``+L!````Z>/\__^!H%0(``#__O__Z:'\__^)1"0,C4-XB40D -XM"(M#=(D\)(E$)`3H"DK^_X7`#X3H_/__B4-TZ;K[__^+GP0!``"%VP^5P.G$ -XM_?__#[9%V(M-M(B!/`$``(M%W(F!0`$``.EC^___D)"0D)"0D)"0D)"0D)"0 -XM58GE5E.#[#"+70R+=0CV0S$(=%R#>P0!=%:-0T#'0T``````B40D"(M#-(DT -XM)(E$)`3HN4C^_X7`#X7"````BT,LA7<.+1?2%P'3)C5#_ -XMBT,LB5-`A7<.- -XM=@"#Q#`QP%M>7<.-M"8`````BT,\B5-(B4-$@\0P,6#[#B)7?2+70R-1>R)1"00C47PB77XBW4(B7W\B40D#,=$)`@` -XM````BT,TB30DB40D!.BVHOW_A6#[`B)'"2)="0$BT@\BW!`B4A$B7!(BT`LA/KV(GVC;PG`````%6X`0```(GE4X/L%(M=#/9#,0AT -XM`XM#!(E$)`B-0SR)1"0$BT4(QT0D#`(```")!"3HJO0``+H!````AR+61"-0P@Y`0^$D`````^V@6P$ -XM``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L#Z_"N@$```"#^`)V`XU0 -XM_HU'/(E4)`C'1"0,`````(E$)`2)#"3HHO,``+H!````AR+61"- -XM0P@Y`0^$D`````^V@6P$``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L -XM#Z_"N@$```"#^`)V`XU0_HU'/(E4)`C'1"0,`P```(E$)`2)#"3HLO(``+H! -XM````AED&O__C70F -XM`(E-#(E5"%WI-/___XUT)@!=Z3JX__^-=@"-O"<`````5;H!````B>6#[`B+ -XM30SV03$(=`.+402+030YPG,4*=")PHE!/(M!0(E11(E!2#'`R<.-032)1"0$ -XMBT4(B00DZ"QE``"X`0```,G#D(UT)@!5,<")Y5.#[!2+70SV0S$(=`:+0P2# -XMZ`&)1"0(C4,\B40D!(M%",=$)`P`````B00DZ+KA``"Z`0```(7`=0F)V.BZ -XM^O__,=*#Q!2)T%M=PU6)Y5.#[!2+70S'1"0,`@```,=$)`@`````C4,\B40D -XM!(M%"(D$).ATX0``N@$```"%P'4)B=CH=/K__S'2@\04B=!;7<.-=@"-O"<` -XM````53'`B>53@^P4BUT,]D,Q"'0&BT,$@^@!B40D"(U#/(E$)`2+10C'1"0, -XM`P```(D$).@:X0``N@$```"%P'4)B=CH&OK__S'2@\04B=!;7<-5B>564X/L -XM((M=#(MU"/9#,0AT+(M#!(DT)(E$)`3H79G]_X7`=#N+0P2)0SR)V.C<^?__ -XM,<"#Q"!;7EW#C78`C47TB40D!(DT).C1F?W_A9_?^%P'0/C78`@\0@N`$```!;7EW#BU7TA=)UM>N!D)"0D)"0 -XMD)"0D)!5B>6#[#B)7?2+70R)??R+?1")=?B+2S2+Q=PXGV==,[4T!VSHGVC;PG`````.NP -XMBU-`A=)UTH/H`8E#/(UU\(E$)`2+10B)="00QT0D#`````#'1"0(`0```(D$ -XM).AKEOW_A6#[#B)7?2)TXE-\(M-#(EU -XM^(G&BT,LB7W\BWT0BW2)1?"!BU0(`````0``QT0D%'T&"0B+AIP```"+@#`!``#' -XM1"0,A08)",=$)`BRN`@(B40D$(M%\(D\)(E$)`3H^AS]_XGYQT0D"`$```#' -XM1"0$0````(D$)(M5#(GPZ!?^__^)P^MFC78`,?^%TL=%\`````!U=,=$)!1] -XM!@D(BX`P`0``QT0D#(4&"0C'1"0(LK@("(E$)!"+1?")/"2)1"0$Z)8<_?^) -XM^<=$)`@!````QT0D!$````")!"2+50R)\.BS_?__A?:)PW0,BT80A_?^#Q"R)V%M>7UW#C47PB50D#(E$)`C'1"0$`````(DT).@T -XM//[_A(E4)`R)1"0(BT-TB30DB40D!.CR._[_AZ`0`` -XM`(GVB50D"(M5##')QT0D!"````#'!"0`````Z*/\___)PY"Z`@```.O9B?:- -XMO"<`````58GE5XG75HG&4X/L3/9",2`/A1D"``#V@$P#```!#X7<`0``BX!$ -XM`P``A<`/E<`\`1G`,=(E````^`6`B$`(@_D"#Y3"@^H!@^+P@\(_B40D#(E4 -XM)`B)?"0$B30DZ"Y7``"%P`^%M@$``(M6>(M".(7`#X2H`0``@_@%#X31`0`` -XMBT((BUX0B8.0````BT(0QX,``0``````!(F#E````(M&$(N`&`$``(7`=0K' -XM@P`!```````%BT9,B47$BT90B47,C47PB40D"(V#@````(E$)`2)-"3H!$3^ -XM_X7`#X4\`0``BX.0````B470BX.4````B47(QX.4`````````(M%\(7`#X75 -XM````BX/@````@_@!#X2B`0``@_@"#X2"`0``BT<\B30DB40D!.C.DOW_A<`/ -XMA#X!``"+1RR%P'0*]D`&(`^%T`$``(N+``$``(M=R(7;#X20`0``BT70@#AZ -XM=5V+7LA@^L!#X2O`0``@\(! -XM#[8*#[[!@_A_=PKV!(7=%`D(!'7?C4'3/`$/AE8"``"`^2L/A$T"``"`^5X/ -XMA$0"``#'1"0(/`8)",=$)`0#````B30DZ-?$_?^-M"8`````BT7$B4=$BT7, -XMB4=(@\1,N`$```!;7E]=PXVT)@````"+@$0#``"-!$#!X`(#1A"+0#B%P`^5 -XMP.D3_O__C70F`+@!````@\1,6UY?7<.-=@")3"0(,7UW#BT9,B4<\BT$``!``B5=$#X0?____BTK^___'1"00#````,=$)`P!````QT0D"#\- -XM"0C'1"0$`````(DT).AMA/W_A<`/A;7^___'1"00#````(M%R(E$)`R+1=#' -XM1"0$`````(DT)(E$)`CH/X3]_X7`#X6'_O__BT<\C5W6+10B+50Q=Z"+5>"X`0```(72#X3N````BT4,]D`Q"`^%40$``,=%W`$```"# -XM[@&-5?"-3>R)5"00B4PD#,=$)`@`````B70D!(M="(D<).B`C?W_A<`/A>T` -XM``"+3?"%R73)BUWLB5W8#[8#/'L/A+0````\#`^$K````#PN=:R#^0&0=J:+ -XM5>`/M@*$P'2L+#[9"`H/"`H3`=(B)^SC8=>\/MD(!/"`/A'X` -XM``"+7=@Z0P)UVX-MW`%UU8M%#(EP/,=`0`````"+50R+0CB%P`^%B0```(M" -XM,(-J-`$E#_[__X/(0(E",(-*,`B+70R+0T"+4SR)0T@QP(E31(/$/%M>7UW# -XMBX%0`P``C01`P>`"`T$0BT`XB47@Z>#^__^#;=P!#X7Z_O__ZY"#^0(/A7G_ -XM__^-M"8`````Z77___^+10S'0#P!````QT!``````(M5#(M".(7`#X1W____ -XMBTT,@^@!B4$XZ7____^+50R+4@2)5=SIJ/[__\=$)`0`````BU4(B10DZ(U8 -XM``"#Q#RX`0```%M>7UW#58GE5U93@^P\BT4(]H!8`P```0^$%P(``(G"BX!0 -XM`P``C01`P>`"`T(0BT`XB478!``"+50R+6C2#PP&- -XM5?"-3>R)5"00B4PD#,=$)`@`````B5PD!(M%"(D$).B4B_W_A<`/A?X```"+ -XM3?"%R73)BW7L#[8&/'MT?8M5#(MZ+(7_=!'V1P8@=`L\?71IC;0F`````#P, -XM#X2D````/"YUF(/Y`9!VDHM5W`^V`H3`=(@/ME8!B%7CBU7-U[`^V0@$\('1T.D8"==^#;=@!C78`==:%_W0F]D<&('0@ -XM@^L!D.M_@VW8`0^%./___SQ[B?8/A',!``"+30R+>2R+10R%_XE8/,=`0``` -XM```/A9T```"+10R+4#R)P8M`0(E11(E!2(/$/#'`6UY?7<.#;=@!#X7N_O__ -XMZYJ#^0*0C70F`'6"@VW8`0^%7/___XUT)@#K@(M5#(/K`3E:-`^$[@```(U% -XM\(E$)!#'1"0,`````,=$)`@!````B5PD!(M5"(D4).A9BOW_A -XM_O__D)"0D)"0D)"0D)"058GE5U93@^P\BU4,C7W8BT(TB478BT(XB47R#^`$/ -XMA,T!``"%P`^$I0$``+L!````B7PD!(M-"(D,).C$G/__A<`/A4R# -XM^`(/A.N#@_L"C;8`````=`B%VP^%_O[_ -XM_X/N`8UV``^%\O[__XE\)`2+70B)'"3HNYO__X7`=4*+=>R%]@^%9?___P^V -XM5>@[%?P@"0@/C57___^A""$)"/9$D#8"#X1%____B7PD!(M%"(D$).CMG?__ -XMA<`/A"[___^X`0```(/$/%M>7UW#@_X!#X08____B7PD!(M5"(D4).C`G?__ -XMA7UW##[95Z#L5_"`)"'T,H0@A"0CV1)`V`G47B5PD!(DT -XM).A+F/__AR%P'4K#[9%Z#PI=-T\7739/")TU3PG -XM=-$/MM`[%?P@"0A](*$((0D(]D20-@)T%(E<)`2)-"3HRYK__X7`#X7'_O__ -XMBU78.5R#^`-TY(7`#X6\````#[95Z#L5_"`)"'T,H0@A"0CV1)`V`G7$BT7$@T7, -XM`8E%V(M%R(E%W.F:_O__@/H_#X7?_O__BT70A<`/A(W^__^#;7UW#B5PD!(DT).B:F?__A<`/A#+^___I\?W__XE<)`2)-"3H89;_ -XM_X7`#X7=_?__@WWL`W3FC78`Z0O^__^#Z`$/A5/___^+5=B+1RR)5SR+5=R% -XMP(E70'1B]D`&('1#0!#X0N`0``BX*0`0``BP")@I0!``"+@9P```"+ -XM@)`!``"+0`B)@IP!``"+@9P```"+@)`!``"+0`2)@I@!``"+04")@J`!``"+ -XM042)@J0!``"+03R)@J@!``"+04`Y040/A-4```"+F9P```"-!$"+DXP!``"# -XMZAB--,*+DY`!```YUG90BP*#P`&)0AB+@9P```"+D)`!``"+@(P!``"+0`2) -XM0AR+@9P```"+@)`!``#'0"`!````BX&<````@X"0`0``&(N9G````(N3D`$` -XM`#G6=["+DY`!``"+`H/``8E"&(N!G````(N`D`$``,=`(`$```"+@9P```"+ -XM@)`!``#'0!P`````BX&<````BX"0`0``QD`N`(N!G````(.`D`$``!B+04"# -XMP`&)04")042)03Q;,7<.+F9P```#KDHVV`````(V\)P````!5B>575E.# -XM["R+11"%P`^$"`$``(M`"(E%\(M-%(M]\(7)#X2:````#[X'A<`/B(\```"+ -XM-?P@"0@YQ@^.@0```(L=""$)"(GZ]D2#-@)U&>MP#[X"A(M5&(E""(M-&(M1$(72=)2+31B+00B)5"0(B40D!`'8B00DZ'T* -XM_?_I=____XM%#(7`=12+11C'0!P`````@\0L,575E.)PX/L/(E5U(E-T,#B+5=2+3=B+4@B%R8E5Z`^$80$` -XM``^V$@^^PH7`#XA3`0``BS7\(`D(.?")=>P/C4(!``"+#0@A"0B)3?#V1($V -XM`@^$+@$``(MUZ#';BT78QT7<`````,=%X`````"-!`:)1#@[1>Q],XM-\/9$@38"="F`^@EUTX7;=`?'1>`! -XM````BU70`````=QR)^^L"B#1>0!C0P[*=$[3=QV -XMZHG8BWW)\"M%Z(T4#SG0=&HI1=B)PXM%V"G3B70D!"G>B30DB40D -XM".B*"/W_BU74*5H0*5H8BUWDBTW4@^L!@_O_BU$(=!J+=>2)T(T,%HUT)@#& -XM``F#P`$YR'7VC50:`87_=`V-!#K&`B"#P@$YPG7VBT70QP`!````@\0\6UY? -XM76#[!C'1"0(Y`<)",=$)`0"````B00DZ`*R_?_)PU6)Y5>)QU:) -XMUE.#[#SV10L!B4W8#X1>`0``BT(HA<`/A`L!``"#Z`&)0BB0C70F`(M=V(M& -XM&(M."`^V$X@4`8/``8E&&#'`@\0\6UY?7<.)T0-.$#M.#'8KC48,B40D"(M& -XM"(E,)`R)/"2)1"0$Z"TF_O^%P`^$U0(``(E&"(M5[(M%Z"G"BT8HB57['1>@`````BT7@A``````ZTT\_P^$Q@````^VP(T$0`'``T<0#[:`70$``(E%[(M5[(M%Z#G" -XM#X0)____#X-,_O__*="#1>`!A<")1>@/A/G^__^+1BB%P`^$[O[__X/H`8M6 -XM"(E&*(M%\`^V!`(\"76?C47LB40D$(M&%(E<)`R)5"0$B3PDB40D".@_N``` -XMZYR)1"0,C48,B40D"(M&"(D\)(E$)`3H,R3^_X7`#X3;````BU8@@T80`8E& -XM"(72#X2I_?__Z<+^__^+3@B+5A@/M@01B$01`>F1_?__D,=$)`3_____B3PD -XMZ$!M_?_I-____\=$)`3_````B3PDZ"MM_?_IX_[__XM%W(7`#X0Q_O__,<#& -XM1!`!((/``3M%W'7SZ1W^__^)T`-&"`^V&,8`"8U%Z(E$)!"-1?")1"0,BT84 -XMB3PDB40D"(M&"(E$)`3H>+<``(M6"(M%\(@<`NF*_O__BT7PBU8HBUW@`T8( -XM`U8@`U7@B00DB50D"(T4&(E4)`3HF03]_^G5_?__N`$```#I[?S__\=$)`3_ -XM____B3PDZ(9J_?^+3@B)PNEN_?__C;8`````C;\`````58GE5U:)UE.#[$R) -XM1#B+5`"`T(0BT`XB47,BUX8,)^"G0`47@.5X8=]^+5>`QVSE5 -XMU,=%V`````!V'8G3B=`QT@'[]_>+1>`ITSE=U`^#O````(M=U"G#BT7-=@"+1BB+?C2%P(E^$'1#@R'WBPLYT715 -XMBT,$B4$$BT,$B0B)'"3H=S/]_\=$)`@!````BT84@\`!B40D!(M%\(D$).@: -XMQ0``@_@!&=LA\^N%D(M&((7`=;:+1@C&!#@@@T8@`8-&$`&#"0CKI8M#!(E! -XM!(L+ZZ>-="8`C;PG`````%6)Y5=64X/L7(E%U(M%#(E5T(E-S,<``````(M" -XM&(M2)#G0B578#X1,`0``BUW0C4C_BW,(`"+7<"#Z0$I -XM^X/'`3M-V'12BW7`B?CWV`^V%#`/ML([1>!]#8MUR/=$AC0`!0``=3*`^E]T -XM+3M%X'W&BU7(]D2"-@)TO.L7UW#B7PD -XM!(D<).C2(/[_A<`/A+<```"+11#'``$```"#Q%PQP%M>7UW#QT0D$`$```"+ -XM0R")1"0,BT,7UW#BUW(]T2#-``%```/A%+^__^A_"`) -XM"+\!````BUW`B47<@^D!@^L!@\B+2AB+0QR#Z0&) -XMR@-3"(E%Y*$((0D(B7WLB47PZPLY2R1T)(/J`8/I`0^^`H7`>`\[1>Q]"HM] -XM\/9$AS8"=32#Q@$[3>1UUXET)`2)%"3H%Q_^_X7`=0Z+?>B##P2#Q!Q;7E]= -XMPXM%Z(,@^X/$'%M>7UW#@\(!.4WD=,PY2R1UU^O%D(VT)@````!5B>57B==6 -XM4X/L'(M"&`-""`^V$(A5\\8``(M'&(/H`8G#`U\(@#L8=#"+3QPYP70IBUNBT<8BU<(#[9-\X@,`HM' -XM""EW&(M7&"EW$(A<`O^+5RB%TG4HBU<@A=)TD(M'&`-'"`-'*(E4)`B-%#") -XM5"0$B00DZ)'\_/_I;____XM'&`-'"(E4)`B-%#")5"0$B00DZ'/\_/_KO8VV -XM`````(V\)P````!5B>575HG&4X/L#(NXG````(-X-`&)^0^$TP```(N7J`$` -XM`(E0/(N'I`$``(E&1(N'H`$``#M&1(E&0`^$Y````#G0B=-R,HM&$(E<)`2# -XMPP''1"0(`````(DT)/^0D`@``(M&$(DT)/^0;`@``#E>0'/4BXZ<````BT8\ -XMBY&,`0``C01`@^H8C03"B8&0`0``]H84`@```75RBXX,`@``AL`0`````` -XM`(/$#%M>7UW#BX8,`@``C01`P>`"`T80BU@XA=L/E,#K@(.OD`$``!CI8/__ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y5=64X'LO`(``(M%"(M5"(M-"(MU%(M`$(F% -XMB/W__XN2G````(F5?/W__X&)K`0```````B#P7B+70B)C8S]__^+6W@YRXF= -XM8/W__P^$6A$``#D+#X1;"```BUT8@\,@BX6,_?__B00DZ$`M_?^)7"0,BWT8 -XMB70D!(E\)`B+10B)!"3HIB[]_X7`B85@_?__#X3H!P``BU4(BXU@_?__BT)X -XMB0&+G8S]__^)600Y6GP/A$$/``"+=0B+O6#]__^+1GB)>`2+E6#]__^+10B) -XM4'B+C6#]___'03@$````BUT(BT-,B4$4BU-0B5$8BUT8A=L/A#]``"%P`^%3P8``(M%**@0=$B+ -XM52"%TG1!B[U@_?__QT0D#`````#'1"0(`````(E\)!"+12")1"0$BU4(B10D -XMZ"7M__^%P`^%#08``(M''(E'&.L9D(UT)@"H`@^%"`8``(N=8/W__XM#&(E# -XM)/9%*D!T(8NU8/W__P^V31R+1AB+5@B(#`*#P`A`!@T8D`8E&&/9%*`@/ -XMA6(&``#V12M`QX6@_?__`````'0OBWT(]H>0!````0^%>08``(M5"(N"B`0` -XM`(7`#X2"!@``BTT(BTDX*<&)C:#]__^+O8C]___'1=P`````]H=4"````0^$ -XMB@4``/9%*@3'A9#]__\"````#X1V!0``BU4H]\(````"=!:)T"7__W__B44H -XMB<+'A9#]__\`````B="+30@E````"(/X`1G`@>(```0`]]"#X`.#^@&+E6#] -XM__^(A:C]__\9P/?0@^`$B47@BT(4B4%,BT(8B4%0QT0D!`$```")#"3H?J0` -XM`(7`#X76!```BUT,]D,Q(`^$QP@``,>%F/W__P````#'A%I/W__P````#'A=3]__\`````QX64_?__`````,>%P/W__P`` -XM``#'A)O83]__^+M=3]__^%]G0:BY6$_?__@'H,(`^$ -XM!Q\``,>%U/W__P````"+C83]___V010(#X68"P``@[V8_?__`@^4PH.]F/W_ -XM_P0/E,&$TG4$A,ET3(M%X(/@[_9%*@2)1>!T!H/(!(E%X(32=!6+G83]__^+ -XM0Q"#Z!"#^`$/AM8B``"$R700BX6$_?__@W@0#`^%8R,``,>%F/W__P````"# -XMO%`D(`74@BY5@_?__BT4(Z)7X -XM__^%P`^%$`<``,>%R/W__P````"+G83]__^+2Q"#^10/AD@'``#V12A`#X32 -XM"@``BX6$_?__#[90##L5_"`)"`^-:0T``*$((0D(]D20-0(/A%D-``"#^0H/ -XMA%`-``"#^0\/A$<-``#'1"0(<`@)",=$)`0"````BU4(B10DZ+2?_?_V12L" -XM#X65#```BXV@_?__A%S/W__P````"+A7S]__^+@%P!``"% -XMP`^$@@P``(M-"/:!KP0``!!U*HN%Q/W__X7`=2#'1"0(`````,=$)`0````` -XMB0PDZ'1X``"%P`^%+`(``(N%H/W__X7`=1"+70B+0Q"+@!@!``"%P'4UB[5@ -XM_?__BWT(BT84B4=,BT88B4=0,<"#O:#]__\`B3PD#Y7`B40D!.B%H0``A<`/ -XMA=T!```/MH6H_?__J`*)A5S^__\/A/T```"+50B#>C0!#X3I````BXU@_?__ -XMBTD8@_D!B8TX_O__#X;<&P``B[5@_?__BUX(B[4X_O__#[9$'O\\7(B%/_[_ -XM_P^$#AL``(M5"/:"?`,```$/A+<:``"+@G0#``"-!$#!X`(#0A"+4#@/OH4_ -XM_O__B10DB40D!.B`\/S_A"(MV&(FU./[__P^V1![_B(4__O__#[:5 -XM/_[__SH3#X6O&```@[TX_O__`G0+@'P>_EP/A)L8``"+30R+432+03B)442) -XM04B`I:C]___]]D4K`@^%4OS__^D=!0``#[:%#/___SGP#X0N&@``.<,/A0(7 -XM``"#K2#^__\!#X7U%@``BY7\_O__.Y5X_O__#X(&_O__#X6;)@``BX4`____ -XM.X5\_O__#X+N_?__BTT(B5%,B4%0QT0D!`$```")#"3H]9\``(7`=5&+70CV -XM@UP"```!#X1-)@``BX-4`@``C01`P>`"`T,0:T`X9,=$)`Q`````B40D",=$ -XM)`0`````BWT(B3PDZ/]@_?^%P`^$A_W__XVT)@````"X`0```('$O`(``%M> -XM7UW#BXU@_?__BT$8QT$D`````(E!'.GL^?__QX60_?__`````.E[^O__BUT8 -XMB[U@_?__@\,@.5\,#X*6]___BY5@_?__A?;'0B@`````QT(D`````,="(``` -XM``#'0AP`````#X3#"```BTT8B4H0B4PD"(ET)`2+0@B)!"3H%?+\_^F_]___ -XMBT48B[U@_?__*=")1R#I]_?__XN=8/W__XM#"(M3&,8$$""#0Q`!@T,@`<=$ -XM)`@#````BT,4B40D!(MU"(DT).CGM0``Z6?Y__^+AX@$``"-!$#!X`(#1Q"+ -XM0#B%P`^%?OG__XM="/:#A`0```$/A!((``"+@WP$``"-!$#!X`(#0Q"+0#B) -XMA:#]___I7_G__XN]8/W__XM'&`-'"(T,&(M%"/:`#`$```$/A/4=``")PHN` -XM!`$``(T$0,'@`@-"$(M0.(72#Y7`A,!T08N%G/W__X7`=##O93]__\"#X15(```B70D -XM$(N-8/W__XM!&(E,)`C'1"0$`````(E$)`R+70B)'"3HPN3__X7`#X5-`0`` -XMQX64_?__`````(M&'(E&&(N%T/W__X7`#X3(````BX5@_O__A$(N-8/[__P%.&(N=,/[__XE>*(N]+/[__XE^(,>%T/W_ -XM_P````"+?BB%_W4LBUX@A=MU)8M&$(/``3M&#`^'("```(--*`B+5@B+1AC& -XM!`(@@T8@`8-&$`''1"0(`@```(M&%(E$)`2+50B)%"3H-[,``(N-8/[__XFU -XM8/W__XF--/[__X7`#X1S^?__BU4(BT)XBU@4ZPF)]H7;=!J#ZP&)7"0$BTT( -XMB0PDZ$IF_?^%P'3FA=MU!;L!````BW4(N`$```"#CJP$``!`B5Y,QT90```` -XM`('$O`(``%M>7UW#_R2-J`@)"(UUM,>%F/W__P````#'A%I/W__P````#'A=3]__\`````B;6$_?__QX64_?__`````,>% -XMP/W__P````#'A`7`$```````#'@%@!````````QX!4`0`` -XM`````(E<)`2+50B)%"3HM(4``,=$)`0!````BTT(B0PDZ(&:``#'A<3]__\` -XM````B[V$_?__@W\("P^&UP,``(N=A/W__XE<)`2+=0B)-"3HDE;]_X.]D/W_ -XM_P(/A!,+``#V1>`$=`KV12H"#X7-!0``]D4H")!T$8N]8/W__XM/((7)#X7P -XM!```]D4K`0^$R@```(N%8/W__XMP*(7V#X3^````BU4(,=N+2GB)RNL2BT(0 -XM`T(LBQ(!PSF5C/W__W03.Y5@_?__=>:+O6#]__^+1QCKX3E=&`^&C````(U% -XMT,=$)!``````B40D#,=$)`@#````BT$4B40D!(M%"(D$).AO8OW_A(F%$/[__P^% -XMCP0``,=%T`````"+0Q")1"0,BT,(B40D"(M#%(E$)`2+30B)#"3H.F;]_X7` -XM#X6U_/__BU70A=(/A3,0``"+`$=!?V12H"=!&+E6#]__^-3>"+10CH;NS__XN%D/W__X7`="R+O83]__\/ -XMMD\,#[;1.Q7\(`D(#XS)`0``@/E?QX60_?__`0````^$R0$``(M%*(G9B00D -XMBY5@_?__BT4(Z&+B__^%P`^%/?O__X.]F/W__P,/A``)``"+O>[__X-O$`&#;R`!Z0/[__^)P2G1Z4KZ___'1"0(!P```,=$)`0````` -XMBTT(B0PDZ`PI``#II?K__XET)`2+50B)%"3H"(```(7`#X2G^?__Z3OU__^+ -XM10B!B*P$````!```N`$```#I*?7__XN-I/W__X7)#X5E!P``BT4HJ0````(/ -XMA5<'``"+O83]__^`?PP`#X5'!P``BY5\_?__BY)$`0``A=(/A(_^__\E__]_ -XM_PT````"B44HQX60_?__`````.E9\/__BY5@_?__C4W@BT4(Z#?I___I'?K_ -XM_XM%"(U-T(G:Z#7=___I9OO__XE$)`R)T(/`#(E$)`B+0@B)1"0$BTT(B0PD -XMZ.$%_O^%P`^$'/C__XN=8/W__XE#".G+_?__B[5@_?__BT88.T8<#X<(\?__ -XM]D4H$`^$_O#__\>%E/W__P,```#I[_#___9%*00/A.7P__^+E6#]__^Y`0`` -XM`(M%".ACXO__A<`/A;[W___IM?S___9%*!")]@^$N?#__XN]8/W__XM?&(7; -XM#X0/\?__@[V4_?__`0^$LA,```^#.A$``(NU8/W__XM&'(7`#X2$\/__`T8D -XM.<,/AWGP__^+10@QR8GRZ/[A___IS_#__XN=8/W__XM#&#M#'`^'5O#___9% -XM*!`/A$SP___'A93]__\!````Z3WP__^+O6#]__^+7QB%VXG9#X3?"@``BX5@ -XM_?__.4@D#X.D!0``BY5@_?__BT("-7PS'A9C]__\#````@\@0@^#[B47@ -XMZ8#Z__^+C6#]__^+41B%T@^$MPD``(N=8/W__SM3)`^&4`0``(NU8/W__XM& -XM'(7`=`8YPHG!=Q"+O6#]__^+3R3'1QP`````BY5@_?__BT(H`T(8*E!____B[U@_?__BT<8BU%S/W__P$```#I&>[__XM%*&:%P`^)#>[__X-] -XM)`$/AA\5```E__]__PT````"@VTD`:@!B44H#X7A%```J0````%T&HNU8/W_ -XM_XM&*,=&*`````")1B"!92C____^QX60_?__`````,>%I/W__P````#IDNS_ -XM_XNU-/[__XFU8/[__XM5*/;&"`^$F@4``('B```"``^%Z0H``(M5"/:"KP0` -XM``$/A?0-``"+C6#]__^+01@[021W!\=!.`(```#VA:C]__\"#X3^!P``BYU@ -XM_?__BT,D@\`!.4,8#X+I!P``QT,X!0```(NU8/[__XFU-/[__^G,]?__QX7( -XM_?__`0```.GZ]___BY5@_?__BT4(Z('E__^%P`^%_//__\>%R/W__P````#I -XMV_C__\=$)`@#````BT,4B3PDB40D!.CSI@``A<`/A'KW___IR?/__XVV```` -XM`(G(@\`,B50D#(E$)`B+00B)1"0$BW4(B30DZ&$!_O^%P`^$^>___XN]8/W_ -XM_XE'"(M%T.GSZ/__BXU@_?__BT74`T$(B50D"(/``8E$)`0!V(D$).AKXOS_ -XMZ>+H__^-!!.%VXE%U`^$,^G__XGPC1P>Q@`@@\`!.=AU]ND?Z?__B[6$_?__ -XMC5X,Z:3W__^+52CWP@````(/A=[T__^+G8C]___V@U0(```!#X3+]/__BYV$ -XM_?__C47<@>(```(`B40D"(U%V(E$)`2)%"2+E6#]__^+10B#PPR)V>@@X?__ -XMA<`/A=OR__^+1=B%P`^$B/3___9%*H`/A#GL__^+M:3]__\IQHGP@^@!B86D -XM_?__Z2'L__^+52CWP@````(/A=/V__^+A8C]___V@%0(```!#X3`]O__C47< -XM@>(```(`B40D"(U%V(G9B40D!(D4)(N58/W__XM%".BBX/__A<`/A5WR__^+ -XM1=B%P`^$AO;___9%*H`/A+OK__^+E:3]__\IPHG0@^@!B86D_?__Z:/K__^+ -XMA6#]__^#:!@!@T`H`>GM]O__C47DB40D!(M5"(D4).C(CP``A<`/A0/R__^+ -XMC:#]__\[3>0/A_#V__^+72B+M6#]__^+O6#]__^A""$)"(F=%/[__XMV&(GQ -XM@^D!B;4<_O__B!4Y\'T1B[T8_O__]D2'-@(/A>,.``"+O6#]__\Y -XM3QQUQ,=%V`````#I9_;___9%*P(/A=3J__^+10CH5MC__^G'ZO__B[V8_?__ -XMA?\/A?$```"+32CVQ0$/A)($``"+70@/MI-4`0``@^(!#X2&"```BX-,`0`` -XMC01`P>`"`T,0BW`XA?8/E<"$P`^$8`0``(32#X1B#```BWT(BX=,`0``C01` -XMP>`"`T<0BT`XBYV$_?__#[X`#[93##';.=`/E,.!X0```0`/A!P$``"+=0@/ -XMMI;``0``@^(!#X0$"```BX:X`0``C01`P>`"`T80BT`XA<`/E<"$P`^$Z@,` -XM`(32#X3E"P``BU4(BX*X`0``C01`P>`"`T(0BT`XB[6$_?__#[X`#[96##G0 -XM#Y3`#[;0@^L!#X1A!@``@^H!#X3[!P``BY6$_?__]D(4`0^$AP,``(.%P/W_ -XM_P&!O<#]__\``0``#X^@!P``]D4J@`^$$NC__XN=I/W__XNU?/W__X/#`6O# -XM'#N&2`$```^'4PD``(NUA/W__XN%?/W__VN5I/W__QR+B$0!``"+!HD$"HM& -XM!(E$"@2+1@B)1`H(BT8,B40*#(M&$(E$"A"+1A2)1`H4BT88B40*&(F=I/W_ -XM_^FAY___QT0D!/____^+10B)!"3HK4;]_^GAY/__A<`/A$0%```YT`^&(/[_ -XM_XU0_XN%8/W__XE0&`^VC:C]__^#X0)T#8N=8/W__XM#",8$$""+M6#]__^+ -XM1AR#1B@!.488C__^DR^?__QT0D!/____^+30B)#"3H -XM.T3]_XG!Z>?D__^)1"0,B="#P`R)1"0(BT((B40D!(M-"(D,).C%_/W_A<`/ -XMA`#O__^+G6#]__^)0PCI"/3__X.]D/W__P(/A(\%``"+G9#]__^%VP^%:P0` -XM`/9%X`1T"O9%*@(/A04*``#V12@(=!6+G6#]__^+2R"%R70(@VL0`8-K(`&+ -XMM6#]__^+1A")1C2+1AB)1C")1A#'1"0(`P```(M&%(E$)`2+?0B)/"3HFJ$` -XM`(7`#X5U[O__BT8@QT8L`````(M>*/9%*P&)A9S]__\/A-KK__^%VP^$TNO_ -XM_XM.&`-."`^^$872#XA`[/__.17\(`D(?S+I,^S__XN58/W__X/!`8-"+`&# -XMZP$/A,4)```/OA&%T@^($NS__SL5_"`)"`^-!NS__Z$((0D(]D20-@)UQ^GU -XMZ___D(NU8/W__XM&%(E#3(M&&(E#4,=$)`0!````B1PDZ,Z)``"%P`^%)NK_ -XM_XV%>/[__\=$)`P#````QT0D"`````")1"0$B1PDZ)2;``"%P`^%_.G__XM& -XM%(V]_/[__XF%_/[__XM&&(/H`8F%`/___XE\)`2)'"3H!6?__X7`#X7-Z?__ -XM#[:%#/___S';QX4@_O__`0```#PI#[;P#Y7#@^L!@^.MB(4G_O__@\-[C97\ -XM_O__B50D!(M-"(D,).B^9/__A<`/A8;I__^+A1#___^%P`^$O.C__X/X`G0% -XM@_@$=%F/W__P(```#I,>;__\>% -XMP/W__P````#I@?S__S'2Z4'\__\QV^G*^___BT4(@:"L!```____]^E<\O__ -XMBX5@_?__BW`DBT@8QT`<`````.F#]?__QT0D"`,```"+0Q2)1"0$BW4(B30D -XMZ'J?``"%P`^%5>S__^FF[___BXU@_O__B8TT_O__Z>KM__^-12B)^8D$)(N5 -XMC/W__XM%".B6V?__A<`/A"'L__^+2!B)A6#]___I]?3__XU%*(D$)(N5C/W_ -XM_XM%".ALV?__A<`/A/?K__^+4!B)A6#]___I'_;__XM]"(NU8/W__XN'G``` -XM`(M>%&:!B,@!``"``(GX@:>L!```____Y^A:WO__A<`/A1+H___VA5S^__\! -XM#X1W!0``BT4,BU`TBT`XB95X_O__B85\_O__N$````"+O6#]__^+5PB`.B\/ -XMA&D(``")1"08QT0D%`````"+C6#]__^+01B#Z`&)1"00C4(!B40D#(M%#(/` -XM1(E$)`B-A7C^__^)1"0$BW4(B30DZ`?-_?^%P`^4P(3`#X3P!```BWT,BU4( -XMBT=$B4),BT=(B4)0@*6H_?___HM"$(NX&`$``(7_#X2N"@``BT4(Z`C-__^% -XMP`^%4.?__XM-"(N!G````&:!H,@!``!__XN!G````(&)K`0``````!B+M6#] -XM__^+@)`!``"+`(E&%(N!G````(N`D`$``#D8#X0^YO__QT0D#`````#'1"0( -XM`````(E$)`2)#"3HO4L``(7`#X7EYO__BWT(BT<0QT0D!`````")/"3_D)@( -XM``#I_N7__\>%D/W__P$```#IAOO__XM-"(N1=`,``.E-Y?__C44HB00DBXU@ -XM_?__BY6,_?__BT4(Z*+7__^%P(F%8/W__P^%FN/__^DBZO__@X4@_O__`>G0 -XM_/__@_X"#X2?Y?__@'P>_EP/A93E___IV>3__X72=!*+O6#]__^+1Q@[1R0/ -XMA8GY__^+A6#]___'0#@!````Z8#K__^H!`^%NP,```^VE:C]__^+A6#]__^# -XMX@*+2!B)E4#^__\YS@^"_0,```^VA:C]__^#X`*)A4#^___I>O/__\=$)`@# -XM````B[U@_?__BT<4B40D!(M%"(D$).B4G```A<`/A6_I___I^O3__XM=#(M3 -XM-(M#.(E31(E#2.GHY/__]\(````"#X7>_O__B[V(_?__]H=4"````0^$R_[_ -XM_XN=A/W__XU%W('B```"`(E$)`B-1=B)1"0$B10DBY5@_?__BT4(@\,,B=GH -XM1-?__X7`#X7_Z/__BT78A<`/A(C^__^+E6#^___V12J`B94T_O__#X11XO__ -XMBXVD_?__*<&)R(/H`8F%I/W__^DYXO__C78`QX74_?__`````.DGXO__BWT( -XMBX>X`0``A<`/E<#I`/C__XMU"(N>3`$``(7;#Y7`Z7[W___'1"0$`0```(M- -XM"(D,).@X0/W_A<`/A2,'``#V12L"QX7`_?__``````^%9^[__^G-X?__BY5@ -XM_?__BUH8QX7<_?__`````,>%Q/W__P````"#^P$/A,H&``"+M6#]__^+/?P@ -XM"0BA""$)"(MV"(F]9/W__XF%V/W__\>%6/[__P````"-3![_B;5T_O__ZP@Y -XM1R1T0(/I`0^^$8G8*X58_O__@^@!A=)X&3N59/W__WT1B[78_?__]D26-@(/ -XMA9,'``"+O6#]__^#A5C^__\!.4<<=;N)RRN==/[__XN58/W__XM"$(/``3M" -XM#'8SB40D#(G0@\`,B40D"(N-=/[__XE,)`2+=0B)-"3H._7]_X7`#X1VY___ -XMB[U@_?__B4<(BX5@_?__`U@(B9UP_O__`YU8_O__B9UL_O__#[8SQ@,JC9UX -XM_O__QT0D&`````#'1"04`````,=$)!``````QT0D#`````#'1"0(`````,=$ -XM)`0`````B1PDZ!M.__^)7"0$BU4(B10DZ!Q#_O^%P`^%]^;__XN%6/[__X/` -XM`8E$)`R+C7#^__^)7"0$B4PD"(M="(D<).A^4?[_A<`/A#0'``"+E6S^__^) -XM\(@"Z2W@__^-M"8`````B40D#(GP!4@!``")1"0(BX9$`0``B40D!(M]"(D\ -XM).A,]/W_A<`/A(?F__^)AD0!``#I=O;__\=$)!`$````QT0D#`$```#'1"0( -XME@@)",=$)`0`````B10DZ)%`_?_IW_'__X.]E/W__P,/A'4#``#H#M'\_X"- -XMJ/W__P'I+OO__XMU#(M&2(M61(F%?/[__[A(````B95X_O__Z83Z__^-4?^+ -XMC6#]__^#02@!B5$8#[:=J/W__X/C`HF=0/[__W0'BT$(Q@00((N]8/W__XM/ -XM&(M'"`^^5`'_A=(/B!S\__\[%?P@"0@/C1#\__^A""$)"/9$D#8"#X4GW___ -XMZ?O[__^+E6#]__^+0@@/MEP!_P^^TX72>!P[%?P@"0A]%*$((0D(N0$```#W -XM1)`T``4``'4(,"+10CHCM7__^GE]?__BTT(BX&X -XM`0``Z2+T__^+50B+@DP!``#II?/__XNU8/W__X-N&`B@!B[V$_?__QX68 -XM_?__`````(U?#.D/Z?__BUT(BX,$`0``A<`/E<#I$>+__XNUG/W__X7V#X1( -XMXO__#[X1A=(/B#_B__\Y%?P@"0A_-NDRXO__B[5@_?__@\$!@T8L`8.MG/W_ -XM_P$/A!;B__\/OA&%T@^(#>+__SL5_"`)"`^-`>+__Z$((0D(]D20-@)UP^GP -XMX?__C5@,QX68_?__`````.F"Z/__BX5@_?__BU`%:/___P````")5"0, -XMB40D",=$)`0`````BWT(B3PDZ#[Q_?^%P(G"#X1WX___B85D____BT8%E/W__P(```"+7AB)A6S___^)A7C___^+ -XMC6#]__^+00C&1`/_((M!*`-!&"M!),=!'`````")02B+022)01CIAMS__XE$ -XM)!C'1"04`````(M'&(/H`8E$)!"-0@&)1"0,BT4,@\!$B40D"(V%>/[__XE$ -XM)`2+10B)!"3H1,G]_X7`#Y3`Z9CW__^+E6#]__^+0AR%P`^$R-O__P-")(/` -XM`3G##X>ZV___QX64_?__`````.E@____]H44_O__"(U"`8F%*/[__P^$WP$` -XM`(N%8/W__XN]8/[__XM8((/K`8F=+/[__XMP*"F]'/[__XN='/[__XFU,/[_ -XM_XE8&(NU8/W__XM&$(/``2M&("M&*,=&(`$````I^(E&$(N%8/W__\=`*``` -XM```/OAJ%VWAP.1W\(`D(?FBA""$)"/9$F#8"=%R+G6#]__^#:Q@!@VL0`3M+ -XM''1)B[5@_?__B=,[3B1U-.LZ.Q7\(`D(?3*A""$)"/9$D#8"=":+O6#]__^# -XMZ0&#;Q@!@V\0`3E/''00@^L!.4\D=`@/OE/_A=)YQHN%A/W__\=%V`$````/ -XMME`,.Q7\(`D(?26A""$)"/9$D#8"=!G'A=#]__\!````QX74_?__`0```.GA -XM[/__QX70_?__`0```.G2[/__BTH(,-O'A5C^__\`````B8UT_O__Z9_Y___' -XM1"0(,`@)",=$)`0#````BUT(B1PDZ%)Z_?_IO?C__XER>.EWW___B70D$(N% -XM>/___\=$)`0`````B3PDB40D#(V%7/___XE$)`CH;<3__X7`#X7XX/__A?\/ -XMA(P#``"+5Q"%T@^$@0,``(N%9/___SM"=`^$60,``(D$).C_T/S_QX64_?__ -XM`````.E\W___#[:5J/W__X/B`HF50/[__^F-ZO__B[U@_?__BX5@_?__BYU@ -XM_O__B[5@_?__BW\@B;TL_O__BT`H*9T<_O__B[T<_O__B84P_O__B7X8BX4L -XM_O__QT8@`````/?8*T8H*=@!1A#I&O[__\=$)`0`````B10DZ$)\``"%P`^$ -XM.O7__^F5W/__C5D!*YUT_O__Z7GX__^)1"0,C48,B40D"(M&"(E$)`2+10B) -XM!"3HRNW]_X7`#X0%X/__B48(Z;/?__^+G33^___'A:3]__\`````QX60_?__ -XM`````(F=8/[__^E`Z___B[U@_?__BT<8.T'__XN58/W__XM")(/``3E"&`^"3.'__\=".`4```#I0.'__XN-\/[__XGP -XMBYWL_O__BY5L_O__A#]__^)G03^__^(`G4BBX7<_?__A<`/A=38__^+ -XM30B+01")#"3_D&0(``#IP-C__X/I`0^$_P$``(M5"(N-!/[__XM2$(F5`/[_ -XM_XL!BP")A4C^___'1"0$+P```(D$).@IR_S_A<`/A+#]__\KA4C^ -XM__^#ZP&#P`&%VXF%[/W__XF=#]__\QVX/J`HF5:/W__^LDC70F`#N=:/W__W0]BXT$_O__B[7L_?__BT29 -XM"(/#`3MP"'<;B[WL_?__BS"+C>S]___\.?^+O4C^___SIG3%QX7L_?__```` -XM`(N%X/W__XN-!/[__\>%3/[__P8```"%P`^.6`0``(NUX/W__XF-5/[__\>% -XM:/[__P````"+E>S]__\#E4C^__\/M@*$P'1XB=/'A?3]__\`````ZR:+50@/ -XMML"-!$`!P`-"$`^V@%T!```!A?3]__\/MD,!@\,!A,!T,#S_==;'1"0$_P`` -XM`(M-"(D,).CY-/W_Z]:)="0$BW4(B30DZ.@R_?_IY?#__XUV`(N=]/W__SF= -XM:/[__W,&B9UH_O__@^X!#X2"`P``B[U4_O__BT<$@\<$BP")O53^__^)A4C^ -XM___I3?___XMU"&N&5`(``&3IM]G__XN%`/___^ELV?__@:)4"```__[__\>% -XME/W__P````#I(=S__XN%9/___^F#_/__BX7@_?__@^@!B85P_?__Z;W^__^+ -XMA>S^__^+`(L`B85$_O__B00DZ`[._/\YA5C^__^)PP^$P````(N%6/[__XNU -XM1/[__X7`#Y7`#X6&````A=MT1XN-8/W__XM!*(7`=1/I`0$``(MX*(/&`87_ -XM#X3S````#[8&B[UP_O__B`>+A6#]__^#QP&)O7#^__^#:"@!@T`8`8/K`77+ -XMB[5P_O__B;5L_O__Z6P!```/M@:#ZP&#Q@&+O7#^__^(!X/'`8.M6/[__P&) -XMO7#^__\/E<`/A'K___^%VW72A,`/A&[___^+A6#]__^+E5C^__\I4!@!4"CI -XM5____XNU1/[__SG`B<&+O7#^___\\Z8/A2?___^+A=S]__^%P`^%J]7__XV% -XM_/[__XE$)`2+A43^__^)!"3HH3]__^-7#,!B9UL_O__@[W@_?__`0^%IM3__XV%_/[__XE$)`2+ -XMA>S^__^+`(L`B00DZ)C'_/^%P`^%@M3__P^WA03___\E`/```#T`0```#X5K -XMU/__B[U@_?__BT%W/W__P$```#I -XM//+__XE$)`R)^(/`#(E$)`B)7"0$BT4(B00DZ!'H_?^%P`^$3-K__XG"B4<( -XMZ6O___^+M6#]__^#Z`&)1BCKGXN%X/W__XN5!/[__XT,@HN%:/[__[JKJJJJ -XM]^+!Z@*-%%*-5!(&B95,_O__BUT(BY.L!```QX7H_?__`````/?"````$'06 -XM@>+____OB9.L!```QX7H_?__`0```(MU"(M&.#F%3/[__P^'Q0$``(/H`3'2 -XMB[W@_?__][5,_O__.?B)A7C]__\/@@@#``#'A?#]__\!````BY7P_?__,<#' -XMA?S]__\`````P>("B95L_?__BY5X_?__A=(/A"T!``"+G?#]__^+O03^___' -XMA?C]__\``````<.--(>)G5#^___ID@```(D<).AVR?S_BX4`_O__]H!4"``` -XM!`^%U@$``(N54/[__SF5X/W__P^&V@```,=$)`Q/C0@(BX5,_O__*X4(_O__ -XMQT0D!'Z?"`B)1"0(BTT(B0PDZ"*C_O^+G0#^___V@U0(```$#X6&`0``@X7X -XM_?__`8N]\/W__XN%>/W__P&]4/[__P.U;/W__SF%^/W__W1UC570B50D"(L& -XMBP`#A>S]__^)1"0$BTT(B0PDZ#AE_?_'1"0$GZT("(E$)`B+?0B)PXD\).BO -XMHO[_BTW0A#]__^%P'XY -XMBYW@_?__ZPN-M@````"#ZP%T)HET)`C'1"0$?>D("(M5"(D4).C4H?[_BXT` -XM_O__]H%4"```!'35BWW0A?]T(HM="(7;=!.+70B+0Q"%P'0).7!T#X1C`0`` -XMB30DZ*#'_/^+M0#^___VAE0(```$#X0&`0``BYT`_O__@Z-4"```^XN%Z/W_ -XM_X7`=`V+=0B!CJP$```````0BX7L_O__B[W@_?__BQ"--+B+6@B+$HF5=/W_ -XM_XN5L:C70F`(N]=/W__P^V!!,Z!#MU!X/#`3G+=>J+A7#]__^#[@2# -XMZ`&)A7#]___KG8N-=/W__\>%Q/W__P$```")C43^___I?_G__XN%X/W__S'2 -XM][5X_?__@_H!@]C_A<")A?#]__\/A>#\___'1"0$)KH("(M%"(D$).@&H/[_ -XMBY4`_O__]H)4"```!`^%^O[__XM-"(D,).B8G_[_Z??^__^)1"0,BL```"+@YP```"+@)`!``"+`(&+K`0``````!#'0U``````B4-,BU44 -XM@)QU:)SE.#["R%P(E5W`^$Y@```(M8$(7;#X3;````]H-5"``` -XM`0^%S@```(M5"#E3>`^"3@$``(M+=(E-X(M#>(E%\(&+5`@````!``"+10B) -XM="0$B40D"(M5X(D4).@\P_S_BTW@BT40BU7@`U4,C5P!`3G:7UW#BT4(QT7P`````,=% -XMX`````"%P`^$.____XM%",=$)`0`````B3PDB40D#(U%\(E$)`CH*^']_X7` -XMB47@#X42____NP$```#KK8M5"+L!````B50D#(M-X(E,)`B+1=R)/"2)1"0$ -XMZ+<\_?^%P`^%8?___^E:____@:!4"```__[__X/$+(G86UY?7<.-0WB)5"0, -XMB40D"(M#=(D\)(E$)`3HO.#]_X7`=)B)0W3IC/[__U6)Y5=64X/L+(MU#(M> -XM-)"-1>R)1"00C47PB40D#,=$)`@!````B5PD!(M%"(D$).B+-_W_A575E.#["R+10SV0#$(BW@TBW`X#X7`````QT7@`0`` -XM`(U%\(U-[(E$)!")3"0,QT0D"`````")?"0$BT4(B00DZ-@V_?^%P`^%H``` -XM`(M5\(72=1F+10S'0$@`````@VW@`71%,?;KN)"-="8`BT7@`?`YPG='BTT, -XMC5K_B=`I\"E%X(E92(M-[(D4)(GZB5PD"(ET)`2+10CH#_W__X7`=56+5>"% -XMTG4FBT4,B7A$,<"#Q"Q;7E]=PXUT)@"+30R-6/^)04C'1>``````Z[>#QP$Q -XM]NE'____BTT,BTD$A`/A3;____KO9"#_P%T$H/O`>NR@\0LN`$```!; -XM7E]=P\=$)`@!````QT0D!`````"+30B)#"3H/@$``+@!````ZXN0D)"0D)"0 -XM58GE4X/L!(M-"(M=#(N1G````(M!+(F"@`$``(M1'`^V0EB$P'@@@\B`B$)8 -XMQT(T`@```(U#1(E%#(E-"(/$!%M=Z:E%_?_V0S$@=0\QP(-Z-`(/E<"#P`&) -XM0C2+0C2#^`%T"H/X`G3+Z(:[_/^-0T2)10R)30B#Q`1;7>GO0/W_ZPV0D)"0 -XMD)"0D)"0D)"058GEBU4(BT4,QT!(`````(M"'(!(6("+0AS'0#0"````B54( -XM7>DV0_W_D)"0D)"058GE5E.+30R+50B#Z0&#^?]T00^^`H7`>$.+-?P@"0@Y -XM\'TYBQT((0D(]D2#-@)U&^LJ#[Y"`87`>"(Y\(UV`'T;@\(!]D2#-@)T$8/I -XM`8/Y_W7?6[@!````7EW#6S'`7EW#C;8`````C;PG`````%6)Y8/L&(M%$(M5 -XM"(M-#(/X!W8"RFN:/W_QT40 -XM8`H)",=%#`(```")50C)Z9=H_?_'11!["@D(QT4,`@```(E5",GI@&C]_X/X -XM!0^5P`^VP(/``HE,)`S'1"0(E@H)"(E$)`2)%"3H7&C]_\G#B4PD#,=$)`BP -XM"@D(QT0D!`,```")%"3H/FC]_\G#C;8`````C;\`````58GE@^P8BT4(QT0D -XM"(P)"0C'1"0$`@```(D$).@/:/W_R<.-M@````"-O"<`````58GE@^P8BT4, -XMAQT0D"-@)"0C'1"0$`@```(M%"(D$).C39_W_R<.0QT0D"*P) -XM"0C'1"0$`@```(M%"(D$).BU9_W_R<.-=@!5B>6#[!B+10C'1"0(O@H)",=$ -XM)`0"````B00DZ(]G_?_)PXVV`````(V\)P````!5B>6#[#B)7?B+70R)=?R+ -XM=0B%VW1:C47TB40D$,=$)`P`````QT0D"`$```"+`XDT)(E$)`3H]3+]_X7` -XM=2.+1?2#Z`$Y0P1T)L=$)`@$"@D(QT0D!`(```")-"3H'F?]_XM=^(MU_(GL -XM7<.-="8`B30DQT0D"`,```#'1"0$`````.CH_?__BUWXBW7\B>Q=PXVT)@`` -XM``"-O"<`````58GE@^PHB5WXBUT,B77\BW4(A=MT&HU%](E$)`2)-"3HJS3] -XM_X7`=1^+`SM%]'(BQT0D"`(```#'1"0$`````(DT).B(_?__BUWXBW7\B>Q= -XMPXDT),=$)`@H"@D(QT0D!`(```#H=F;]_XM=^(MU_(GL7<.0D)"0D)"0D)"0 -XMD)!5B>575HG&4XG+@^P\B57,QT70`0```/9",0AT!HM"!(E%T(M5S(U-W(M" -XM-(E%W(M".(E%X(E,)`2)-"3HCT;__X7`#X47`0``BT7PAP[%?P@ -XM"0@/C0T!``"A""$)"/9$D#8"#X3]````C57#??`$=9"+3"+3"+??"%_P^%Y?[__P^V5>P[%?P@ -XM"0@/C>S^__^A""$)"/9$D#8"#X3<_O__Z<#^__^A""$)"&8Q__=$D#0`!0`` -XM=0Z`^5\/E<`/MOB0C70F`(U-W(E,)`2)-"3H\4+__X7`#X5Y____BUWP@_L$ -XM#X0,____A=MU/P^V3>P/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X6F```` -XM.Q7\(`D(?0^A""$)"/=$D#0`!0``=9^`^5]TFHM%T(7`#X0"____A=MU&`^V -XM5>P[%?P@"0A]+:$((0D(]D20-@)T(8U5W(E4)`2)-"3HA$7__X7`#X7L_O__ -XM@WWP!`^$@?[__X-MT`&#?=#_#X1S_O__BU7POP$```"%T@^%-/___P^V3>P/ -XMMM$[%?P@"0@/C`'___^`^5\/E<`/MOCI$____XUV`#L5_"`)"'T3H0@A"0CW -XM1)`T``4```^%6____X#Y7P^%[/[__^E-____BT7@.T$XD`^%&_[__XG(@\`T -XMB40D!(DT).A9^___N`$```#I5/[__S'`Z4W^__^%R0^%W_W__^DB_O__C70F -XM`(V\)P````!5N0$```")Y8M%"(M5#%WIO/S__XVV`````(V_`````%4QR8GE -XMBT4(BU4,7>F?_/__ZPV0D)"0D)"0D)"0D)"058GE5XG75HG&4XG+@^P\QT70 -XM`0```/9",0AT!HM"!(E%T(M'-(E%W(M7.(U%W(E5X(E$)`2)-"3H(T/__X7` -XM#X4+`0``BU7PA=)U(`^V5>P[%?P@"0@/C0$!``"A""$)"/9$D#8"#X3Q```` -XMC47P[%?P@"0A]T:$( -XM(0D(]D20-@)TQ8M%T(7`#X1+`@``C47"+1?"%P`^%\?[_ -XM_P^V5>P[%?P@"0@/C?C^__^A""$)"/9$D#8"#X3H_O__Z/___XM=\(/[`@^$$/___X7;=4(/MDWL#[;1.Q7\(`D(?0RA""$)"/9$D#8" -XM=2>+1+1="% -XMP`^$`O___X7;=1@/ME7L.Q7\(`D(?2VA""$)"/9$D#8"="&-1=R)1"0$B30D -XMZ(!"__^%P`^%Z/[__X-]\`(/A(+^__^#;=`!@WW0_P^$=/[__XM%\,=%S`$` -XM``"%P`^%+____P^V3>P/MM$[%?P@"0@/C/O^__\QP(#Y7P^5P(E%S.D,____ -XM.Q7\(`D(?1.A""$)"/=$D#0`!0``#X5:____@/E?#X7H_O__Z4S___^+1=P[ -XM1S1T&XM5X.DA_O__BT<\B5=(B4=$@\0\,FL_/__C;8`````C;\`````53')B>6+10B+ -XM50Q=Z8_\___K#9"0D)"0D)"0D)"0D)!5B>575HG&4XG+@^P\B57,QT70`0`` -XM`/9",0AT!HM"!(E%T(M5S(U-W(M"-(E%W(M".(E%X(E,)`2)-"3HGS___X7` -XM#X6;`0``BU7P@_H!#X0O`0``A=)U$`^V3>P[#?P@"0@/C`L!``"%VP^%70(` -XM`(-MT`&#?=#_#X1\````D(U=W(E<)`2)-"3H83[__X7`#X5-`0``BT7P@_@" -XM=%R%P'48#[95[#L5_"`)"'W1H0@A"0CV1)`V`G3%BT70AP/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X7:````.Q7\(`D(?0^A -XM""$)"/=$D#0`!0``=:.`^5]TGHM]T(7_=1B+1`[0S@/A9K]__^)V(/`-(E$)`2)-"3H -XM\O3__[@!````Z4'^__^!^D`""0@/A!G^__^!^I`#"0@/A4W]___I"/[__XUT -XM)@"-O"<`````5;D!````B>6+10B+50Q=Z1S\__^-M@````"-OP````!5,"+0S"-4P&->S3'1"00`````(E\ -XM)`@E``(``(/X`1G`]]`APHM%X(E4)`2)-"2)1"0,Z#?E_/^%P'4CBT7@QT0D -XM#`````")?"0$B30DB40D".@8Z?S_Z6G___^-=@"X`0```.E<____C;8````` -XMB4-`BT,X@_@!C5#_&<#WT"'"B5-(Z7/___^0D)"0D)!5B>564X/L,(M=#(MU -XM"(M3,(U+`8DT)(G0)0`"``"#^`$9P/?0(<'!Z@.-0SR#X@&)1"0,C4,TB50D -XM$(E$)`B)3"0$Z)CD_/^%P'0,@\0PN`$```!;7EW#BT,\`T9T@\`!*T,TB49T -XMC47TB40D$,=$)`P`````QT0D"`$```"+0T2)-"2)1"0$Z&,D_?^%P'6[BT,P -XMJ`AU*R4/_O__@\@@B4,PBT7T.4-( -XM7<.#Q#`QP%M>7<.0D)"058GEBT4,4XM="(E#/(E#1(M#-(/H`3E#/'8&B4,\ -XMB4-$BXN<````BT,\BY&,`0``C01`@^H8C03"B8&0`0``,<"#BZP$``!`6UW# -XMD(UT)@!5B>6#[#B)7?2+70R)=?B+=0B)??SV0S$(#X51`0``BT,TB47PBT7P -XM]D,Q$(E#1(M#.(E#2'1>BU,(A=)T5P^VAFP$``"#X`&)QP^%5@$``(N.9`0` -XM`(G(.=!S%XGXA,!T#(T$2<'@`@-&$(M(.(G*B4L(B50D!(DT).@Q____AQ=PP^V4P*`^BT/A+0!``!V8X#Z+@^$1`$``(#Z -XM7G5>]D,Q"`^$J@$``(M%\,=$)`@`````B30DB40D!.B-:```AQ=PXVV -XM`````(M#"/\DA1@+"0B)7"0$B30DZ%I"``"%P'2AN`,```#KS(-[$!)U++@0 -XM````C70F`.N)BT80B30D_Y!D"```N`0```#KJ(M5\+@"````A=)TCNN:N`4` -XM``#KDXVV`````%6)Y5=6B<93@^P\B%7D#[;2C5K0C7W8B4W0ZP:-="8`B<,Q -XMTHGYB?#'!"0*````Z`S___^#^`5U:`^V5>2#^G]W;/8$E=T4"0@$=&*-!)N- -XM1$+0.=ASR3'2B?F)\,<$)`H```#HU_[__X/X!74S#[9%Y(/X?W<*]@2%W10) -XM"`1UUL=$)`S_____QT0D"'`+"0C'1"0$`P```(DT).AO4_W_@\0\N`$```!; -XM7E]=PXM%T(D8@\0\,`)B46P#X0\`0``]D7D`G0)BT40QP`!````BTT(#[9]W(7) -XM#X2F`0``B?J`^B(/A.8```")^0^VT8/Z?W<.]@25W10)"`0/A8\!``"+50S' -XM`@````")^8#Y(@^$=@(``(GX/'X/APD!``")^(GZB`,/ML#!X`0%`/P("(#Z -XM1(E%M`^$'0,``(M%M(L`A<`/A,0$``")^8#Y?@^$*P,``(M%M(E#*(L`A<`/ -XMA-8$``"+1;2+0`2)1;B+0S#VQ`@/A$D"``#W1;@```0`#X4\`@``BT4(A<`/ -XMA`$&``"+?0@/MA>`^GX/A%P&```/ML+!X`2+@`C\"`C'1"0(!@```(E$)`2+ -XM1:R)!"3HM^C__S'V@\1\B?!;7E]=PXM5"(72#X0-`0``QT0D"``````Q]L=$ -XM)`0`````BTVLB0PDZ(/H___IG?[__XM-L(7)=6''1"0(O0L)"+X!````QT0D -XM!`(```"+3:R)#"3H9U']_^EQ_O__//\/A$D$``"+5:P/ML"-!$"-A`!0`0`` -XM`T(0@\`(QT0D"`0````Q]HE$)`2+?:R)/"3H&^C__^DU_O__@WVP`@^%5?__ -XM_XM]K#'VBT<0B3PD_Y!D"```Z4'____'1;`"````Z4[^__^`^3"-M"8````` -XM#X1A_O__BT6LC4L$Z,_\__^%P`^%$/___X%+,``(```QTHM]#(U-T,<'`0`` -XM`,<$)`(```"+1:SHX_O__X/X!0^$B0```(G&Z;+]___'!"0`````BT6L,=*- -XM3=#HO_O__X/X!77@@WW@"0^$N?[___9%Y`)T"8M]$,<'`0````^V1=PQTH%+ -XM,``"``"-3="(0P''!"0"````BT6LZ'_[__^#^`5UH(-]X`D/A'G^___V1>0" -XM=`F+11#'``$````/MGW`)#X3@_/__ -XM]D7D`HUV`'0)BTT0QP$!````#[9]W`^V`XGZ.-`/A8#\___IW?[__\=$)`@8 -XM#`D(QT0D!`,```"+?:PQ]HD\).AB3OW_Z9C\___W1;@```(`#X7%!0``BTVT -XM]D$&$`^$4OO__XU%\(E$)!"-1>R)1"0,QT0D"`$```"+?:R+1TR)/"2)1"0$ -XMZ,L9_?^%P`^%3/S__XM?4(M%\#G8B46@=F>+3>P/O@09A<`/B,(#``"+%?P@ -XM"0@YPHE5G`^.N0,``(L]""$)"(E]I/9$AS5`#X2)!0``C10+ZR8/OD(!A<`/ -XMB+($```[19P/C:D$``"+3:2#P@'V1($U0`^$F`0``(/#`3M=H'72QT0D"*0+ -XM"0@Q]L=$)`0"````BWVLB3PDZ()-_?_IC/K__P^V`SQ$#X0/`P``B?8/AWT! -XM```\0P^$\P(``(M%M(7`#X46^___,?;IB_O__XGZ@/HN#X3M`0``,=N#?>`) -XM#Y3#@\,$@/K_#X3Q`P``BTVL#[;"C01`C80`4`$```-!$(/`"(E<)`CI._O_ -XM_\=$)`3_````BTVLB0PDZ.X(_?_IM?O__XM-K(N!!`0``(7`#Y7`Z03^___W -XM1;@``(``=0GVQ`(/A=P```#W1;@````!#X0*_?__QP0D`````(M%K#'2C4W0 -XMZ./W__^#^`4/A0#\__^#?>`)#X39^O__]D7D`G0)BU40QP(!````#[9%W(%+ -XM,``"``"(0P'IP?S__\<$)`````"+1:PQTHU-T.B:]___@_@%#X6W^___@WW@ -XM"0^$D/K___9%Y`*-=@!T"8M5$,<"`0````^V1=PQTH%+,``"``"-3="(0P'' -XM!"0"````BT6LZ%/W__^#^`4/A7#[__^#?>`)#X1)^O__]D7D`G0)BTT0QP$! -XM````#[9]W.F#^?__BTVTBT$(Z0_Z__\\4P^$C@$``#Q9C78`#X5X_O__QD7P -XM7\8#>8U%\,=$)!`,````QT0D#`$```")1"0(QT0D!`````"+5:R)%"3HR0S] -XM_X7`#X7:^?__#[8#P>`$!0#\"`B)1;3I+/[__XM%K/:`#`0```$/A#,!``") -XMP8N`!`0``(T$0,'@`@-!$(M`.(7`#X1X^?__H6@+"0CI>OG__XM-J(7)#X1) -XM^?__BU6LBX*<````BX"``0``.T(L#X53`@``@4LP`"```,=#*%`#"0CI,?C_ -XM_\<$)`````"+1:PQTHU-T.@^]O__@_@%#X5;^O__@WW@"0^$-/G___9%Y`)T -XM"8M5$,<"`0````^V1=P/MM"#^G^(0P(/AS_[___V!)7=%`D(!`^$,?O__XM% -XMK(U+".BP]O__A<`/A?'X__^!2S``$```,=*-3=#'!"0`````BT6LZ,WU__^# -XM^`4/A>KY__^#?>`)#X3#^/__]D7D`G0)BTT0QP$!````#[9%W(A#`NG5^O__ -XMQD7P),8#8^F0_O__QD7P),8#9.F$_O__QD7P7\8#8^EX_O__BWVLBX<$!``` -XMA<`/A%#X___IT_[__Z'\(`D(B46<#[84"P^^PH7`#XC"````BST((0D(B7VD -XM.P7\(`D(#XVU````BWVD]T2'-``%```/A*0```#'1;P!````C3P9B=F#P0$[ -XM3:!S/@^V5P&(59L/OM*%TG@9.U6R)7"0$BXR)5:"+/?P@"0B)?9SIM?[__XM-J(M1,/;& -XM(`^$S````(M#,/;$"'05BT6H@,X(B5`PBT,$BU6HB4($BT,P]L0"=`H/MD,! -XMBTVHB$$!QT0D"$P```"+?:B)'"2)?"0$Z#2?_/_IFO7__\<$)`````"+1:PQ -XMTHU-T.BG\___@_@%#X7$]___@WW@"0^$G?;___9%Y`)T"8M5$,<"`0````^V -XM1=R(0P+I^?G__P^V%`L/OL+I*/[__XE$)`R-AS0!``")1"0(BXS\````BT4(BS"-18R+5A#'1"0(3````,=$)`0` -XM````B00DB948____Z%^;_/^#3;P@BUX0B[Z<````QT0D!`(```")-"3_DZ`( -XM``"%P'00N`$```"!Q/P```!;7E]=P\=$)`@!````QT0D!`````")-"3_DUP( -XM``"+AJP$``"#X/J#R`+VAB`"```!B8:L!```#X0I!P``BX88`@``C01`P>`" -XM`T80BT`XB8>T`0``]H9@`0```8E&-`^$]@8``(N&6`$``(T$0,'@`@-&$(M` -XM./:&;`0```&)1C@/A+`&``"+AF0$``"+5C2-!$#!X`(#1A"#^@&+0#B)1D2) -XM1CP/A*0&``"#Z@$YT`^'E0D``(M&-(/H`8E&0(N>G````,=&2`````#'1"0$ -XM&````(N#M`$``(/``8D$).B=F_S_A<")@XP!```/A"<*``"+CIP```"+1CR+ -XMD8P!``"-!$"#ZAB-!,*)@9`!``"+AIP```"+D(P!``"+1DR)`HN&G````(N` -XMC`$``,=`!`````"+AIP```"+@(P!``#'0`@!````@8ZL!```H````&:#C\@! -XM```%BU80QT0D"`$```"+1B"+0`B)-"2)1"0$_Y*<"```BYZ<````BT80BX@8 -XM`0``AB% -XM_W5;BX:<````C56,QT0D"$P```")5"0$!9@```")!"3HJ)O\_XN&G````(&( -XMR``````@``#V1;T$=!"+AIP```"!B,@`````"```BX:<````@:#(`````/[_ -XM_XM%O"7P`0``@_@@#X0"!```#X8Q!0``/8`````/A.D#```]``$``(VT)@`` -XM``!T$(/X0`^%(`4``,=%U`````"-1=2)1"0(BT70B30DB40D!.A(N/W_A<`/ -XMA+4#``#'1"0$`@```(DT).@``_W_A<`/A7@#``"+1A#V@%0(```$#X0H`P`` -XM@Z!4"```^\=$)`0"````B30DZ-$"_?^%P`^$^@$``,=$)`C0#`D(QT0D!`,` -XM``")-"3H$43]_XN&K`0``/;$$`^%^@$``/;$"`^%60(``(N%&/___X"X5`@` -XM``!X#?:&K`0```$/A,W]__^+50B),HM^$(M?"(U'"(U7$(F%+/___\>%*/__ -XM_P`````YPXF5%/___W5-Z9$&``"+0P2)0@2+0P0YA2S___]T?(D0BY44____ -XMB1.+1Q2)0P0[5Q`/A#@&``"+1Q2)&(E?%(.%*/___P&+7P@YG2S___\/A$D& -XM``"+@YP```"+@(P!``"%P'08B00DZ&&:_/^+@YP```#'@(P!````````BQ,Y -XME2S___]UAHM#!(E'#(M#!#F%+/___XL3=82)5PCK@8DT).@3)?W_A<"0#X6: -XM_O__BY48____QT7H`````(M"?(M`%(7`#X6+_?__C46,QT0D"$P```"-?>C' -XM1"0$`````(D$).AUEOS_BY:<````C47LB40D!(U-C(GPB7PD",<$)`````"! -XMPI@```#H6>___X/X!`^&0@(``(M-M/9!!P(/A%P#``#VAF0#```!#X1+!P`` -XMBX9<`P``C01`P>`"`T80BT`XA<`/E<"$P`^$,`,```^V18P\_P^$=0@```^V -XMP(T$0(V$`%`!```#1A"#P`C'1"0("````(E$)`2)-"3H5`W__^F__?__QT0D -XM"-D+"0C'1"0$`P```(DT).@70OW_BX:L!```]L00#X0&_O__@.3O#0````*) -XMAJP$``"+=A2+GIP```"+5A#'1"0(`0```(M&((M`"(DT)(E$)`3_DIP(``!F -XM@XO(`0```<=$)`0!````B30DZ)M$``"%P`^%&OK__XN&K`0``/;$"`^$J_W_ -XM_XUT)@"`Y/>)AJP$``"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``#I -XM>_W__XUT)@#'AI0````"````QT0D!`````")-"3H-D0``(7`#X6U^?__]T6\ -XM8`$```^$F?O__Y!F@Z/(`0``OXU&5(E$)`2)-"3HR44``.E\^___C70F`,=$ -XM)`P!````QT0D"`````#'1"0$`````(DT).@P!?W_A<`/A>?\__^+1A#V@%0( -XM```$#X37_/__Z9O\__^-=@#'1"0(H`P)",=$)`0"````B30DZ,A`_?_I:_S_ -XM_V:#B\@!``!`BU70B59,BTW4B4Y0BT6\]L1`=1VI```!``^%,0$``&:%P`^) -XM._S__SM5V`^$-`4``(U5V,=$)`P!````B50D",=$)`0G````B30DZ.LP_?^% -XMP`^$"_S__^GN^____R2%3`L)"(M6-(N&9`0``(/Z`8E&1(E&/`^%7/G__\=& -XM0`$```#I9/G__XN&6`$``.D1^?__BX88`@``Z=[X__\E``0``(E$)`C'1"0$ -XM`````(DT).C4ZOS_A<`/A6/X__^-7?")7"0$B30DZ.US``"%P`^%3/C__XM% -XM\(7`#X2(`P``BT7PBU4(B0*)-"3HNH#]_X7`#X4I^/__BW7PA?8/A&\$``"+ -XMGIP```"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``!F@XO(`0```>EV -XM^?__A<`/A,/^__^#^!`/A-P"``"0C70F`.@?D?S_.U78#X78_O__B?;IO_[_ -XM_XU5C(E4)`2)-"3HO##__X7`#X74^O__Z?GY__^+1A#I[_K__XM5O/;&()!T -XM%XM%[(7`=!"+AIP```#'@.@````!````B=`+002I`,`!`(E%O'0,BT9,B478 -XMBT90B47`S`2)1;P/MD6,.H5`____#X3>`P``BT6TQX4<____```` -XM`#U@"PD(B85L____#X2J`P``BT6\B<*!XO`!``"H((F5(/___W0,@\H0@^+? -XMB94@____BY5H____)0_^__^)1;R+0@0E#_[__PF%0```")!"3H))+\_XN5 -XM)/___XN%,/___XF0Z````(M%O"4("```/0@(``!T48-&+`'I^?7__SM-W`^% -XMP_K__^GP]O__,<"-M@````#II_/__XN&7`,``(7`#Y7`Z;SX__^)=PCI3O[_ -XM_XE7$.DD_O__BT8$B4<4BQ;I!O[__XM%D`-%R(/H`8E%R.NAC95`____B10D -XMQT0D"$P```#'1"0$`````.B&COS_C47@,=*)1"0$C46,B00DC8U`____B?") -XM?"0(Z'+G__^#^`4/A1_]___I)OS__XM%R(DT)(E$)`3H]0?]_X7`#X5S_O__ -XM@WW(`745#[9%C#QCD`^$6?[__SPA#X11_O__QT0D"`$```#'1"0$`````(DT -XM).A:T?__Z0#5DR)1"00QT0D#`````"#Z@&)52#^`&-4/\9P/?0(<*)5/___SM-@`^&R/W__^O$ -XMD)"0D)"0D)"0D)"0D)"058GE5U93@^P\BW4(]H:O!```$(M^$(N&G````'0* -XM@\0\,*)!"3H%8W\_XDT)(E$)`B-1>*)1"0$_Y=8"```BY:<````@\,8 -XM.9J0`0``0"```@\0\,%2/___P````#WP@`` -XM`!!U&8N`G````(.X7`$```$/E\`/ML")A4C___^#XA!T.8M="(N#G````(M3 -XM0(N(C`$``(M#-#G"#X.B)1"0$BUT(B1PD_Y%P"```QT0D"`````"+@YP```"+50PKD(P!``")'"2) -XMT,'X`VG`JZJJJHE$)`2+C23_____D9`(``"-1?")1"00C47DB40D#,=$)`@` -XM````BUT,BP.)1"0$BT4(B00DZ(4"_?^+50B+30B+4CB)QHF5+/____:!%`(` -XM``$/A68$``"+70B+@PP"``"%P`^5P(3`#X1O!```BT4,BUT(BT`$QX4\____ -XM`````(F%./____:#.`(```$/A'4$``"+@S`"``"-!$#!X`(#0Q"+0#B)A4S_ -XM__^+50C'A5#___\`````]H*O!```$'51]H*8`@```0^$504``(N"D`(``(T$ -XM0,'@`@-"$(M`.(7`#Y7`A,!T'8.M+/___PB%]@^%+`0``(N=./___X7;#X2* -XM"```BY5,____B950____A?8/A20$``"+3?"%R0^$&00``(N%./___X7`#X4# -XM!0``BU4,QT(,`````,9"%`#'A3#___\`````QX4T____`````(M%$(7`=!&+ -XM50R+30B+`CM!3`^$>PD``(N=2/___\>%*/___P`````)^P^%"P,``(N5-/__ -XM_SM5\`^#?@L```N]2/___XV=9/___XU%XXF]5/___XG?QX5<____`````,>% -XM1/___P````")G1S___^)A2#___^-=@"+1>0/MA"#P`&)1>0/MLJ`^@F(E6/_ -XM__^)C4#___\/A,P$``"`O6/_____#X2M!0``BY5`____BTT(C012`<`#01`/ -XMMH!=`0``B<8QTBNU,/___P&U7/___XN-7/___SF-+/___W=4@_H!#X1.!0`` -XMBT4,B?.(6!:+A5S___\KA2S___^+70PIQHGQB$L5BX5<____.84L____<#``"+70B+30R+ -XM@YP```"+71`KB(P!``")R,'X`VG`JZJJJHD#BT4(]H"O!```"`^$5@4``(N% -XM7/___XM-%"GPB0&+10CV@)@"```!#X0F!0``B<&+@)`"``"-!$#!X`(#01"+ -XM0#B%P`^5P(3`=!J+10CV@*\$```0=0Z+C3C___^%R0^$5@,``(N%5/___X7` -XM#X4^`0``A=(/A+@#``"%]G15,=OK#8/#`<8'((/'`3GS=$0[O2#___]RZ\8' -XM`(V%9/___X/#`2N]'/___XE$)`2)?"0(BU4(C;UD____B10DBXTD_____Y%8 -XM"```Q@<@@\# -XMQP&#^?]U[8N%7/___X/``3F%+/___W82BU4(B10DBXTD_____Y%L"```.;T< -XM____#X()!@``BT7LB40D"(M%Z(E$)`2+30B)#"2+G23_____DY`(``"!Q.P` -XM```QP%M>7UW#BX$,`@``C01`P>`"`T$0BT`XA<`/E<"$P`^%D?O__XM5#(M= -XM"(M*"(/I`8F-//___P^OC2S___^)C3C____V@S@"```!#X6+^___BT4(BX`P -XM`@``B85,____Z8_[__^-4/_I7/K__XN=3/___XM%#(F=4/___X,X`0^$O/O_ -XM_XGVBU40A=)T$8M-#(M="(L!.T-,#X1P`@``"[U(____#X4N____BUT,QT,0 -XM`````,=##`````#&0Q4`QD,4`(N%./___X7`=4J%]@^$S`(``(,[`;I^```` -XM#X2^`@``BTT(C112`=*+01`/MHP070$``(V$$%@!``")1"0$B4PD"(M="(D< -XM)(N5)/____^26`@``(M-"(D,)(N=)/____^3;`@``(M%[(E$)`B+1>B)1"0$ -XMBT4(B00D_Y.0"```@<3L````,^?__@<3L```` -XM,2)G3#____V@!0"```!#X5=!```BTT(BX$,`@``A`"`T,0BT@XBX5<____,=*)SO?Q*=:Z -XM`0```"NU,/___P&U7/___^D5^___C1PW.9T@____#X;4````@+UC_____P^$ -XM0P$``(N-0/___XM="(T$28V$`%`!```#0Q"#P`B-3O^)C5C___^#P0$/A%K\ -XM__^+G3#___^)^8T4&(T<-XVT)@`````/M@*#P@&(`8/!`3G9=?&+A5C___^- -XM?#@!Z2?\__^+G2S___\IV2G.BTT,B?"(016(01:)G5S____IR/K__XN=0/__ -XM_XE<)`2+10B)!"3H/>W\_^E1^O__BX.<````BU40*XB,`0``B0/MA"#P`&) -XM1>0/MLJ`^@F)C4#___]UH8N53/___X72=:"+10CV@-`#```!#X0J`@``B<*+ -XM@,@#``"-!$#!X`(#0A"+2#B)V#'2]_&)R"G0ZXB+50R-G63___^+`HD<),=$ -XM)`@K#0D(QT0D!(````")1"0,Z/N!_/^)7"0$B40D"(M-"(D,)(N=)/____^3 -XM6`@``(N%3/___XF%4/___^DP]___@,(!#X0V`0``BY5`____BTT(C012`<`# -XM01`/MH!=`0```<,[G2S___]R'XM-""N=+/___XM).(.M//___P&)C2S___\/ -XMA#P!``"#A33___\!BY4T____.57P#X8F`0``BT7D#[80@\`!B47D#[;*@/H) -XMB8U`____=8:+A4S___^%P'6%BT4(]H#0`P```0^$%@$``(G"BX#(`P``C01` -XMP>`"`T(0BT@XB=@QTO?QB<@IT.EJ____Q@<`C9UD____*[T<____B5PD!(E\ -XM)`B+10B)!"2+E23_____DE@(``#IR?G__XG"BX`,`@``C01`P>`"`T(0BT`X -XMA<`/A:;[___IC_O__XM14#F5-/___P^'=O;__XN%-/___P.%+/___SG"#X=B -XM]O__BX4T____@\(!*<*)E2C____I9/;__XN%0/___XE$)`2+50B)%"3HR.G\ -XM_^G(_O__BX5`____B40D!(M5"(D4).BNZ?S_ZG)]?__BT4( -XMBXC(`P``Z?#^__^+10B+B,@#``#IW/W__XM%"(M`.(F%+/___XN%-/___XM= -XM#(E##,9#%/_'A3#___\`````Z8+U__^#A33___\!BYTT____BTT,B5D,QD$4 -XM`,>%,/___P````#I7/7__XM5"(N--/___SM-\(M2.(F5+/___W.D.YTX____ -XM#X0B`0``BXTT____BU4,B4H,*YTX____*=B)A3#___^(0A2#;>0!Z1/U___& -XM!P"-E63___\KO1S___^)5"0$B7PD"(M-"(V]9/___XD,)(N=)/____^36`@` -XM`(M%"(M8$.G$]___BX5`____B40D!(M5"(D4).AMZ/S_Z7/W__\/MD(5.,$/ -XMA,(```"+4A`/ML")A3#___\/MH4P____B94T____BXTT____BU4,B4H,B$(4 -XMBUT(`4WD]H,4`@```716BX,,`@``C01`P>`"`T,0BT`XA%,/___P````#I\?/__XM2$#'`QX4P____`````(/"`8F5-/___^DZ -XM____D)"0D)"0D)"0D)"0D%6)Y5.#[!2+70B+0Q"+4S2+B)`(``"+0T`YT'(# -XMC4+_B1PDQT0D"`````")1"0$_]&+0Q")'"3'1"0$`````/^0F`@``(/$%%M= -XMPY"-="8`58GE5U93B<.#[#R)5=")3S0!#X1/`0``@WW,`0^$!0$```^# -XML````(U%\(E$)`C'1"0$`0```(D<).BQ'_W_B<*+1?")5"0$B1PDB40D"/^6 -XM6`@``(.'7`$```''AU0!````````C7W4B1PD_Y9L"```QT0D!`````")'"3_ -XMEI@(``"+5="%TG0ABT70QP``````ZQ:+1=R#^`%T48/X!'1!B1PD_Y9D"``` -XMQT0D#`````#'1"0(`````(E\)`2)'"3H:>S\_X7`=,J0C70F`(/$/%M>7UW# -XM@WW,`G0KZ-%Y_/_&1>!Q@XY4"```!(-]S`%T48-]S`)UUH!]X'%UT(..5`@` -XM``3KQXU%\(E$)`C'1"0$!0```(D<).C0'OW_B<+I&O___XU%\(E$)`C'1"0$ -XM`@```(D<).BR'OW_B<+I_/[__X!]X#IUA8M%T(7`#X1Z____BT70QP`!```` -XM@\0\6UY?7<.-1?")1"0(QT0D!`0```")'"3H@"=#&+3>B)V(M5[(M=](MU^(M]_(GL7>F3_?__C78` -XMBU-`.=!V*2G*ZX60C70F`(U"_^NOBU7PBX)4`0``.T-`<\&+7?2+=?B+??R) -XM[%W#C5#_*L!```"`^$ -XM;0$``(M#$(E$)`R+0PR)1"0(BT,(B3PDB40D!/^6E`@``(L3A=)T!HM#!(E" -XM!(M#!(D0BT,,B00DZ.)\_/^)'"3HVGS\_XM>;(7;=;>+1+1<#'@%P!````````QX!8`0```````,>`5`$```````"+ -XM1>R+50R)1"0(BT7PB10DB40D!/^6D`@``#'2@\1,B=!;7E]=PX/H`71F,"7`$```````#'@E@!````````QX)4`0```````(E$)`2)/"3H -XM^A(``.EO____BTT0AL -XM!```QT0D"`(```"+1TR)/"2)1"0$Z$<<_?_ICO[__X/@_8F&5`@``(D\)/^6 -XM9`@``.EF_O__QT0D!`$```")/"3H:R<``+H!````A<`/A+C^___I#____XG! -XM*='I0/___XE]#.D+_O__,S<````B85`____B94\____BY5`____B8TX____BT`0B85$____BT4(BY*< -XM````B8U4____A<")E4C___\/CI8#``"-C7#___^-7>^)C3#___^)G33___^+ -XM70B+M3C____'1"0$"@```(E<)`B)-"3H6'7\_XF=4/___XF%5/___XN%5/__ -XM_X7`=!"+E53___\I\HF54/___XG3BXU(____B[5`____BY%8`0``BTXXC003 -XM.7UW#B[5`____BYU,____B30DB5PD!.@OWOS_ -XMB<;I"?[__XN-0/___XNU1/___XM!0(M)-(N>D`@``#G(<@.-0?^)1"0$BX5` -XM____B50D"(D$)/_3@[T\____`P^%7/W__XN50/___XN-1/___\=$)`@!```` -XMQT0D!`$```")%"3_D5P(``#I,OW__XN-0/___XN=1/___\=$)`@`````QT0D -XM!`$```")#"3_DUP(``#IX?[__XN%0/___[D"````,=+H(_C__^E*_/__BY5( -XM____BX)<`0``Z3'\__^+E4C____V@L@!```"#X0>_/__@ZI4`0```8/H`6:# -XMHL@!``#]B8)<`0``Z0'\__^+M4#___^+G43___^+1D"+BY`(```YP@^&Q0`` -XM`(/H`8E$)`2+A4#____'1"0(`````(D$)/_1BY5`____BXU$____B10D_Y%L -XM"```BYU`____BW,X@_X/=@6^#P```(N%0/___XM8$,=$)`@!````QT0D!`$` -XM``")!"3_DUP(``"+E4#___^)="0(QT0D!#$-"0B)%"3_DU@(``"+C4#____' -XM1"0(`````,=$)`0!````B0PD_Y-<"```BYU(____@X-<`0```6:#B\@!```" -XM@X-4`0```8N#7`$``.D0^___C4+^Z3;___^+A4C___^+M4#___^+E43___\% -XM6`$``(E$)`B-1?")1"0$B30D_Y)P"```Z=']__^-=@!5B>575E.#[#R+=0B+ -XM?0R+1A")1="+GIP```#'!P````"+@U@!``!F@XO(`0```87`#X5)`0``BY:L -XM!```]L(0#X40`0``]\(``!``=0V#NUP!```!#X:X`0``B=`E___O_X'B```( -XM`(F&K`0``'40BT80]H!4"```!`^$,@$``/:&K`0``!`/A;4```"+1A"#P`@Y -XM!G0'@XZL!```0/:#R`$```@/A8L```#'1"0(`0```,=$)`0`````B30DBU70 -XM_Y)<"```@::L!```[__W_X.[7`$```$/AD@!``#'1>`&````BY-<`0``N0$` -XM``"+1C0YPG)9B47LC478B4WDQX-<`0```````,>#6`$```````#'@U0!```` -XM````B40D!(DT).@&"P``,=*#Q#R)T%M>7UW#@XZL!```(.EI____9H.+R`$` -XM``3I/O___Y")P2G1ZZ&+1A#'1"0$`@```(DT)/^0H`@``+H!````A#4`$```$```#IA?[__\=$)`P!````QT0D"`````#'1"0$`````(DT).B. -XMX/S_A7UW#B?J)\.BG -XM\O__ZZ>0C70F`%6)Y5=64X/L+(MU"(M=#/:&K`0``!"+?A!T-8M5$(72#X0L -XM`0``A=N)V`^$&`$``(E4)`R)1"0(QT0D!'WI"`B)-"3HF$S^_XDT).BP2_[_ -XMC47PB40D"(U%[(E$)`2)-"3_EW`(``"+1D"+5C2+CY`(```YT'(#C4+_QT0D -XM"`````")1"0$B30D_]&)-"3_EVP(``"%V\=%X`````!T+HD<).CM'````BT7@B40D"(E<)`2)-"3_EU@(``"+51"%TG0PBT40 -XMB00DZ+5R_/^+7CB+5>")P0'"C4/^.<)W1(M%$(E,)`B)-"2)1"0$_Y=8"``` -XMBT7PB30DB40D"(M%[(E$)`3_EY`(``")-"3'1"0$`````/^7F`@``(/$+%M> -XM7UW#*UW@C4O^Z[2-="8`B47@Z73___^X3XT(".G>_O__ND^-"`CIRO[__XUT -XM)@!5B>6#[#B)=?B+=0B)7?2+11")??SVAJP$```1=3.#^`*+?A"+GIP```!T -XM-(/X`P^$JP$``(/H`0^$D@```(GVQT0D!`````")-"3_EY@(``"+7?2+=?B+ -XM??R)[%W#B?:+@V`!``"%P'36BY-<`0``@^@!B8-@`0``A=)U,87`=2V+1D"+ -XM5C2+CY`(```YT'(#C4+_QT0D"`````")1"0$B30D_]&)-"3_EVP(``"+@W`! -XM``")1"0(BX-L`0``B30DB40D!/^7D`@``.EP____BX-@`0``BXM<`0``@\`! -XMA`$``&G`0$(/``'"@?I'Z`$`#XX<_O__BT7DBU7H@[MD`0``!(F#=`$` -XM`(F3>`$```^$A0```(N'D`@``(E%W(M&0(M6-(N+:`$``#G0<@.-0O^)3"0( -XMB40D!(DT)/]5W(N39`$``(N'6`@``(U*`8'"1PT)"(F+9`$``(E4)`3'1"0( -XM`0```(DT)/_0BX>0"```B47@BU9`BTXTBX-H`0``.7UW#BTW<@Z%4"```_8M%"(D$)/^19`@``.GB_O__J!`/A.T"``"+ -XM50B+0A#'1"0$`0```(D4)/^0H`@``(7`#X37_O__Z2;___^-1?")1"0(C47L -XMB40D!(M-"(D,)(M5W/^2<`@``(-]#`$/A`$"``"+512+11"+30B`?!#_"@^4 -XMP`^VP"G"B544@WDT`0^$?`,``,=%Z`````"+5>B+10B#P@*)5>B+2#B#Z0&) -XM3>"+3=B+@5@!``"%P'0IC00"`T44.47@#X/U`@``BY%0`0``N574"`C'!"0" -XM````BT4(Z/[P__^+30R+5=B)BE`!``"+112+71"%P'4FZ8L-B?8Y^'T2]D2&-@)T"X/I`0^^0?^%P'GJB=:)\"G8*444#X7P```` -XMB<@IV(/X`7X+@'P8_RX/A`P!``")!"2+50R)V8M%".C7[___BTT(BT$0]H!4 -XM"```!'5LQT0D#`$```#'1"0(`````,=$)`0`````B0PDZ"C8_/^%P'4/BU4( -XMBT(0]H!4"```!'4YB?/IP?[__XM!$,=$)`0"````B0PD_Y"@"```@\0L6UY? -XM7<.+312Z`0```(D,)(M-$(M%".A<[___BT7PB40D"(M%[(E$)`2+30B)#"2+ -XM5=S_DI`(``#'1"0$`````(M-"(D,)(M5W/^2F`@``(/$+%M>7UW#BU44C303 -XMB?")\2G8*444#X00____*=F)#"2+50R)V8M%".CY[O__N2:Z"`BZ`0```,<$ -XM)`$```"+10CHX.[__^D$____C4'_*=CIZO[__XM-"(D,).CVW/[_A<`/A/;[ -XM___I1?S__\=$)`@!````QT0D!`$```"+10B)!"2+5=S_DEP(``"+31")3"0( -XMBT44QP0D\I@("(E$)`3H1&?\_\=$)`@`````QT0D!`$```"+50B)%"2+3=S_ -XMD5P(``#IO/O__XG1B=;I2_[__XD<).BO:?S_BT40B40D#*$0(0D(BU44QT0D -XM!$$-"0B)!"2)5"0(Z-QA_/_IK_O__XM%V+E8\0@(BY!0`0``QP0D`0```(M% -XM".@&[O__N=+4"`BZ`0```,<$)`$```"+10CH[>W__^GJ_/__QP,`````B5AL -XM@\!LB4,$Z6#[__^-1>B)1"0(QT0D!`0```")#"3H_0C]_^EO_/__D)"0D)"0 -XMD)!5B>564X/L$(M=#(MU"(M3##M3%'80ZU.+4PR#P@$Y4Q2)4PQR18N&G``` -XM`(T44L'B`P.0C`$``(/J&,9"%@#'1"0,`````,=$)`@`````B50D!(DT).BU -XMV?__ARL````B95P____BT`0B85X____BY:<````B95\____B='VAJP$```@ -XM='7'@JP!````````BX:L!```]L0!#X6/!P``A,!Y+\=$)`@"````BT9,B30D -XMB40D!.A8(@``A7UW#QT0D"`,```#'1"0$ -XM`````(DT).@H(@``A2)?"0,B40D"(E<)`2)-"3HH=?__X7`#X5Y -XM_O__@WWD_W3&BY5\____BX+$`0``A``"Z`0```(G#BT9`@_@!=`2)PM'J.=H/@OD'``"%VP^$?@```#M& -XM/'4'ZW`"`T80BT`XA<`/E<"$P`^%.@<``(N-?/___\=%Y/_____'@<0!```````` -XMBX:<````.9B0`0``#X+J"0``BP,[1DP/A=\)``"-N<`!``#K(9"+AIP```"# -XMPQ@YF)`!```/@MH&``"+`SM&3`^%SP8``(U%Y(E\)`R)1"0(B5PD!(DT).C) -XMU/__A<`/A:'[__^#?>3_=+N+E7S___^)FL0!```QTL=%B`````#K&O:&K`0` -XM`$!T#(M&0#E&1`^%?0<``+H!````BXU\____BYG$`0``A=L/A$P)``"+1E"+ -XMC7S___^)@;P!``"+1DR)@;@!``#VAI@"```!#X4=`0``BX:0`@``A<`/E<"$ -XMP'07BX5\____]H#(`0``('0(A=(/A"<#``"+18B%P'0'@XUP____`XN5_K)`^VP(T$0`'``T80#[:`70$```%%D#M]D`^"P@@``(M& -XM((M`"(/K`3G8#X-L!P``#[8#/"\/A%X'```\_W7"QT0D!/____^)-"3H%LG\ -XM_^O"BX:0`@``C01`P>`"`T80BT@XAF)5"0(B5PD!(E,)`R)-"3H&QD``(M6/(/Z -XM`8G#N`$```!T!(G0T>@YV`^'>P@``,=%J`$```"+AIP```"#^@&+@(P!``#' -XM1;`!````BT`$B46LN`$```!T!(G0T>B)1"0,BT9,B30DB40D"(U%J(E$)`3H -XMN!@``(M6/+D!````@_H!=`2)T='I.<$/AQ0)``"+5DS'1"0(`@```(E4)`2) -XM-"3H^!H``(7`#X6@^/__@XZL!```0.GX^/__QT0D"`,```#I/X__^+0@@YQP^&V/C_ -XM_XM./+L!````@_D!=`2)R]'KB?DIP3G+#X)_"@``B30DZ"(B``"%P`^%^O?_ -XM_XN&G````(N`D`$``#MX"'??Z97X__^)-"3H;,___X7`#X3)_/__C70F`.G+ -XM]___QT60`````#M&!)`/A3/]__^)-"2+593_DFP(``"+7CB#ZP'VAC0#```! -XM#X3?!@``BX8L`P``C01`P>`"`T80BT`XA<`/E<"$P`^%+0<``(M]D(/'`O:& -XMH`,```$/A)T&``"+AI@#``"-!$#!X`(#1A"+0#B%P`^5P(3`=#:+1AP/MD!8 -XM@^`$@_@!C474@]/_B40D"(N&E````(DT)(L$A9`-"0B)1"0$Z"[^_/\K7=2) -XM18PY^W9TBT64BU8TBXB0"```BT9`.=!R`XU"_XE<)`B)1"0$B30D_]'VAJ`# -XM```!#X1>!P``BX:8`P``C01`P>`"`T80BU@XA=L/E<"$P'0IBT8<]D!8!`^% -XM00H``(M%U(E$)`B+38R)-"2)3"0$BU64_Y)8"```B?;VA7#___\!#X5=`0`` -XMBX5T____A<`/A2/____^2D`@``(DT)(N->/__ -XM__^1;`@``(N&G````(-N/`&#J)`!```8BT8\.T9$=Z+'1"0(`0```(M&3(E$ -XM)`2)-"3HRQ<``(7`#X33_/__Z6[U__^+A@P"``"%P`^5P.DY^?__BXU\____ -XM#[>!R`$``(DT)(/@!(E$)`2+E7C_____DI@(``#IL?[__XN-?/___XN!P`$` -XM`(E$)`B+1>2)-"2)1"0$BY5X_____Y*0"```BU6(A=(/A'+^__^-1E2)1"0$ -XMB30DZ*8*``#I7O[__S'2QT6(`````.EY^?__C490QT0D$`````")1"0,B50D -XM",=$)`0`````B30DZ&`.``")1:`/MHZ8`@``@^$!#X6?````BY:0`@``A=(/ -XME<"$P'0*@WV@!W8$@VV@"(M[!#E]H`^'WP```(N6I`,```^VCJP#``"-!%*# -XMX0&)A6S___^$R8G0=`^+A6S____!X`(#1A"+0#@YQP^"I@,``(3)B=!T#XN% -XM;/___\'@`@-&$(M`."G'.7V@=L?VAJ\$```0#X3>`0``B7L$BX:<````BXB0 -XM`0``QT6(`````.D+]?__BY:0`@``C012P>`"`T80BT`XA<`/E<#I4/___XM> -XM/#G8#X)X^/__C;0F`````(E<)`2#PP''1"0(`````(DT)(N->/____^1D`@` -XM`(DT)(N5>/____^2;`@``#E>0'/.Z3KX__^%_XVT)@`````/A?$!``"$R0^$ -XM.0,``(T$4L'@`@-&$(M`.(7`#Y7`A,`/A!,#``"+5CB)T(E5G(/H"#E%H`^& -XMSP$``(N&I`,```^VCJP#``"-%$"#X0&)A63___^)E6C___^%R8N%9/___W0/ -XMBX5H____P>`"`T80BT`XBU6<`<>-!!@2+AIP```"#PAB+B)`!```YT7/JQT6(`0```.D'\___@XZL!```((GP -XMBY5P____Z(;Q___I]O'__XM&4#N!O`$```^$W0(``(U%X(E$)!"-1>R)1"0, -XMC47B)1"0(C47DB40D!(DT)(N5>/____^2<`@``#'2QT6(`````.EP\___BX5\ -XM____BY"\`0``.590#X-A`0``B=<#?=R)?=R+@+P!```[1>R+3E`/@S?V__^- -XM4`$IRHN-?/___XN!P`$``(/`!3G"#X<;]O__C5K_@_O_QT6`_____P^$#/__ -XM_P^V%XU'_XE%W(#Z"0^$]O7__P^VPC'_B46$ZSN+582-!%(!P`-&$`^V@%T! -XM``"#ZP$!QX/[_P^$RO[__XM%W`^V$(/H`8E%W(#Z"0^$M_7__P^VRHE-A(#" -XM`77`BTV$B30DB4PD!.@1O?S_Z\''1"0$_____XDT).C_NOS_Z6#[__^)>0C' -XM1"0(`P```,=$)`0`````B30DZ"\0``"+1DR#CJP$``!`BY:<````Z8KU__^+ -XM?9"#QP*-!#HYPP^&[_W__\=$)`@"````QT0D!+C<"`B)-"2+593_DE@(``"+ -XM1=2+39"#P`*-?`$"Z<']__^)>@C'1"0(`````,=$)`0`````B30DZ,`/``"# -XMCJP$``!`Z17N__^+1=R+C7S___^#P`$!T(E%W(M>4(NYP`$``"N9O`$``.LE -XMBX:0`@``C01`P>`"`T80BT`XA<`/E<"$P'16BT8X@^@(.?AV7X/K`8/[_W17 -XMBT7<#[80@\`!B47<@/H)#X2,]/__#[;"@,(!="R-!$`!P`-&$`^V@%T!```! -XMQ_:&F`(```%UG(N.D`(``(7)#Y7`ZZ:+1CCKJXE$)`2)-"3HP+O\_^O5BX5\ -XM____B;C``0``]H:8`@```71;BX:0`@``C01`P>`"`T80BU`XA=(/E<"$P'0[ -XMBT8X@^@(.<GD_/__58GE5U93@^P< -XMBWT(BT<0B47L]H>L!```0`^%%@$``(M8"(UP"/:'F`(```$/A#T!``"+AY`" -XM``"+5>R-!$"+1((XA<`/E<`\`1G`@^#@@\`Q.=Z)1?!U0NM;C;8`````BY.< -XM````#[>"R`$``(5%\'0B#[>2R`$``(G8@^(!@\H"Z!KK__^+AYP```!F@XC( -XM`0```8L;.?-T&SG[=/:+@ZP$``#VQ`9UZZA@=+.+DYP```#KO8M=#(7;=0WV -XMAZP$```(#X6V````N@,```")^.C+ZO__N@$```"%P'5-BU7LBUH(.?-U#NLX -XMC;8`````BQLY\W0H]H.O!````G3QB1PDQT0D"`````")?"0$Z(W5__^+&[@! -XM````.?-UV(7`=7B#CZP$```(,=*#Q!R)T%M>7UW#BU7LBUH(B=:#Q@@Y\P^$ -XMW?[__SG[=`J!BZP$``!````"BQLY\W7LBT7L]H>8`@```8M8"`^%P_[__XN' -XMD`(``(7`#Y7`ZS' -XM1"0$`````(D\)/^2F`@``#'2@X^L!```".EO____D)"0D%6)Y8M-"%/V@10" -XM```!BY&<````=&*+@0P"``"-!$#!X`(#01"+0#B%P`^5P(3`=%:+@L0!``#V -XM@9@"```!BY+``0``BU@$=%V+@9`"``"-!$#!X`(#01"+2#B%R0^5P,'@'\'X -XM'X/@"(T4$RG"BT4,B1`QP%M=PXN9#`(``(7;#Y7`A,!UJHN"Q`$``(N2P`$` -XM`(M8"(/K`0^O63CV@9@"```!=:.+@9`"``"%P`^5P.NMC;8`````C;PG```` -XM`%6)Y5=64X/L3(U%\(E$)!"-1>R)1"0,QT0D"`````"+10R)1"0$BT4(B00D -XMZ!_&_/^+=>R%]@^$A0$``(M=\(7;#X1Z`0``BU4(]H(X`@```0^%\````(M- -XM"(M%"(N),`(``(E-W/:`%`(```$/A/D```")PHN`#`(``(T$0,'@`@-"$(M` -XM.(E%V(M-"#'2,?^+11#W<3B)5/^__\Q_^G<_O__ -XM@\1,,/_#[9%XW1W -XMBU4(C01``<`#0A`/MH!=`0```<,)=&:#ZP$I3D#____BT7`"`T(0BT@XZ\R)^#'2]_''1`"`T(0BT`XB474,?^%VP^$$@$``(L[B77@QT70`````.M7@/O_#[;# -XM#X1]`0``BU4(C01``<`#0A`/MH!=`0```470C30PBT74A`" -XM`T(0BT@XBT70,=+W\8G(*=#I>____XM%"(N0D`(``(72#Y7`Z=C^__^-=@"` -XM^_\/ML,/A!"+51B%TG0)BU48B?`IV(D"@\0\B?!;7E]=PXM%"(N(R`,``.G+_O__ -XMB?`QTO?QQT70`````"G6Z6W^__^)1"0$BT4(B00DZ,ZR_/_IY_[__XG"BX#( -XM`P``C01`P>`"`T(0BT@XZ3C___^+3=B%R720BU4(BT(0#[:`-0(```'&Z7S_ -XM__^)R#'2]W7,,?\IT>G(_O__C47PBU4(B40D$(U%#(E$)`R+11#'1"0(```` -XM`(D4)(E$)`3H'<#\_XM%\(7`=1F+11B%P`^$0O___XM5&,<"`````.DT____ -XMBT4,A<")1=P/A1W]___KUXVV`````(V\)P````!5B>564X/L((M="(MU$/:# -XM%`(```$/A)@```"+@PP"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=6^%]@^$A0`` -XM`(L&A7<.Z`0```(/$((G06UY=PXN##`(``(7`#Y7`Z6____^+ -XM@YP```"+50PYD*P!```/A6S___^+D+`!``#KRE6)Y5=64XG#@^PLB57@BW`0 -XM@W@T`71_C47LB40D"(U%\(E$)`2)'"3_EG`(``"+1>"%P'17,?^)'"3_EG0( -XM``"+0T"+4S2+CI`(```YT'(#C4+_QT0D"`````"#QP&)1"0$B1PD_]&)'"3_ -XMEH@(``"+1>R)1"0(BT7PB1PDB40D!/^6D`@``#M]X'6K@\0L,R)'"2)1"0(BT7PB40D!/^6D`@``(D<)/^6B`@``#M] -XMX'0WBU-`BT,TBXZ0"```.<)RJX/H`NNIQT0D"`````#'1"0$`````(D$)/^6 -XMD`@``(D<)/^6;`@``(/$+#'`6UY?7<.)]HV\)P````!5B>575E.#[`R+?0B+ -XM=0SVAQ0"```!=#B+APP"``"-!$#!X`(#1Q"+6#B%VP^5P(3`="R+!CM%$'=S -XMBW40*<:#Q`R)\%M>7UW#C;0F`````(N/#`(``(7)#Y7`A,!UU(L>.UT0=%8Y -XM71!S88MV"(/K`8/N`3E=$'?&.W44=@?KOSEU%'*ZB5PD!(/K`<=$)`@````` -XMB3PDZ&3\__\!QCE=$';=@\0,B?!;7E]=PXG&*W40@\0,6XGP7E]=PXMV"(/$ -XM#%N#[@&)\%Y?7<.)7"0$@\,!QT0D"`````")/"3H'?S__RM&"#E=$(UP`753@^P4BU4(BUT0BTT,QD,6`/:"%`(```%T-HN"#`(``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T*HL!@^@!B0.+002)0P0QP(,[``^4P(/$%%M=PXN" -XM#`(``(7`#Y7`A,!UUH-Y"`%T&XL!B0.+00B#Z`&)0P@QP(,[``^4P(/$%%M= -XMPXL!@^@!B0/'1"0(`````(E$)`2)%"3H0OO__XE#".NBC;8`````C;PG```` -XM`%6)Y593@^P0BU4(BUT0BW4,QD,6`/:"%`(```%T,HN"#`(``(T$0,'@`@-" -XM$(M`.(7`#Y7`A,!T)HL&@\`!B0.+1@2)0P2#Q!`QP%M>7<.0BX(,`@``A<`/ -XME<"$P'7:QT0D"`````"+!HD4)(E$)`3HN_K__SM&"'06BP:)`XM&"(/``8E# -XM"(/$$#'`6UY=PXL&QT,(`0```(/``8D#ZZ95B>575E.#[#R+?0B+=0R+71"+ -XM3SR+AYP```"%R8N`C`$``'00,=*#P@'&0!8`@\`8.<````BX*0`0``ZPV0C70F`(N7G````(G8.X*,`0``#X8-`0``C5CHB5PD -XM"(E$)`2)/"3H"?[__X7`=-6^`0```(N'G````(N`C`$``(DPBX><````BX", -XM`0``QT`$`````(N'G````(N`C`$``,=`"`$```"+AYP```"+7SR+@(P!``#K -XM`HGP@^L!#X2A````C7`8B70D"(E$)`2)/"3H3?[__X7`=-Z+AYP```"+@(P! -XM``#'``$```"+AYP```"+@(P!``#'0`0`````BX><````BX",`0``QT`(`0`` -XM`(N7G````(N"C`$``.L+C78`BY><````B=@[@I`!``!S,8U8&(E<)`B)1"0$ -XMB3PDZ-W]__^%P'39@\0\N`$```!;7E]=PX7V#X44____Z4/___^#Q#PQP%M> -XM7UW#QT7<`0```+H!````QT7@`````,=%Y`$```"+1SR#^`%T!(G"T>J-7=R) -XM5"0,B70D"(E<)`2)/"3HJ/O__XM7/+D!````@_H!=`2)T='I.<$/@ZK^__^) -XM7"0$B3PDZ*.Z_/^%P`^%<````BY"0`0``BT7")0@2+AYP```"+D)`!``"+1>2)0@CIO_W__XN'G````(N` -XMD`$``(DPBX><````BX"0`0``QT`$`````(N'G````(N8D`$``,=$)`@````` -XMB70D!(D\).BA]___B4,(Z7;]__^+3SR+EYP```#1Z8T$2<'@`P."C`$``(DP -XMQT`$`````,=`"`$```#K`HG8BY><````BXJ,`0``.L(BY><````B=@[@I`!```/ -XM@S+^__^-6!B)7"0(B40D!(D\).C>^___AF,_?__D(UT)@!5B>6#[#B+ -XM112)=?B+=1")??R+?0B)7?2#^`(/A+\```"#^`-T4H7`=4F+AYP```"+D)`! -XM``")T2N(C`$``(G(P?@#:<"KJJJJ.<8/A@4!``#'1"0(R`T)",=$)`0"```` -XMB3PDZ,?J_/^X`0```.G6````Z&P\_/^+AYP```"+D(P!``"+@)`!```IT,'X -XM`VG`JZJJJCGP-!':%]HT@?`=#1^`'PC01`C1S!@'L6``^$!@$``(L#BTT,B0&+ -XM0PR)000QP(M=](MU^(M]_(GL7<.-!':)T\'@`RG#B47@BP.)/"2)1"0$Z`^W -XM_/^%P'6[C47PB40D!(D\).B@?`=#1^(T$0,'@`RG#Z?;^__^-M@````#'1"0,`````,=$)`@````` -XMB5PD!(D\).CDL/__A<`/A-;^__^X`0```.G;_O__BX",`0``ZYF+AYP```"+ -XM@(P!``#I*?___XGVC;PG`````%6)Y593@^P0BW4(BX:<````BU9,BYB,`0`` -XMBPLYRG(@BX"0`0``.Q!W%CG*=%F)]H/#&#L3=?DYV'-0D(UT)@"#Q!"X`0`` -XM`%M>7<.-="8`QT0D#`````#'1"0(`````(E<)`2)-"3H1+#__X7`=="+0Q`[ -XM1E!S+(N&G````(/#&(N`D`$``#G87<.-M"8`````C;PG`````%6)Y5.#[!2+70B+0Q#' -XM1"0(`````,=$)`0`````B1PD_Y"0"```N@$```")V.BN]?__A<`/A88```"+ -XM2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H____B40D"(E4)`2#PAB) -XM%"3H53W\_XN#G````(N`C`$``(E$)`B#P!B)1"0$B1PDZ$+W__^%P'4NQT0D -XM#`````#'1"0(`````(N#G````(N`C`$``(D<)(E$)`3H-J___X/$%%M=PX/$ -XM%+@!````6UW#D(UT)@"+@YP```"+@(P!``")1"0(ZZ"-M"8`````C;PG```` -XM`%6)Y5.#[!2+70B+0Q#'1"0(`````,=$)`0`````B1PD_Y"0"```N@$```") -XMV.AN\___A<`/A88```"+2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H -XM____B40D"(U"&(E$)`2)%"3H93S\_XN#G````(N`D`$``(E$)`B#Z!B)1"0$ -XMB1PDZ`+W__^%P'4NQT0D#`````#'1"0(`````(N#G````(N`D`$``(D<)(E$ -XM)`3H1J[__X/$%%M=PX/$%+@!````6UW#D(UT)@"+@YP```"+@)`!``")1"0( -XMZZ"-M"8`````C;PG`````%6)Y5=64X/L/(M%"(M=$(M]#(N`G````(7;#Y3" -XMB=:)1=!U3(7_=4C'1"0$`@```(M-"(D,).@5L_S_A^@*-_S_C;8`````BT4(BY"<````Z[V0C70F`(/_`76PZ5[___^-M@````"+ -XM==!F@X[(`0``$,>&K`$```````"+10@Y>$P/A'\!``"+50B+@JP$``"I```` -XM$'5UJ!!T8HM-T#'`9H.)R`$```B#Q#Q;7E]=PXVV`````(/[`@^%-____XMU -XM"(M./(7)=`\QTH/"`8,``8/`&#G*=?.+50B+0DPYQW<&@\`!B4),BTW0,7UW#BX*<````@[A<`0```7>/BW4(C57LBT80B50D"(U5 -XM\(E4)`2)-"3_D'`(``"#^P(/A!H!``"#^P,/A&L!``"#ZP$/A??^__^+EIP` -XM``"+BHP!```[.8G+=`>#PQ@[.W7YBT4(]H`4`@```0^$M0$``(G&BX`,`@`` -XMC01`P>`"`T80BT`XA<`/E<"$P`^%B@$``(N2D`$``(U#&#G0#X=Y`0``.WL8 -XM#X5P`0``O@$```#K"XVT)@`````[.'4*@\`8@\8!.=!V\HM5"#MR/`^"C0(` -XM`(.*K`0``""+==!F@X[(`0``((MU"(M5[(M&$(E4)`B+5?")-"2)5"0$_Y"0 -XM"```,<#I\OW__V:#CL@!```!Z73^__^+=0B+3CR%R706,=*-M"8`````@\(! -XM@R@!@\`8.G_O__@^@!B4),Z9S^__^+50B+@IP```"+ -XMF(P!``"+2P2)3=0[.W0(D(/#&#L[=?G'1"0(`````(E\)`2+=0B)-"3HXN[_ -XM_SM&/(G!#X+J`@``@XZL!```((M-T&:#B<@!```@Z3S___^+=0B+EIP```"+ -XMLHP!```[/G0'@\88.SYU^8M%"/:`%`(```$/A'H!``")P8N`#`(``(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,`/A`H!``")\\=%X`$```#'1=@!````BTT(BT7@.T$\ -XM`!.=AS\<=$)`@`````B7PD!(M5"(D4).@D[?__B478 -XMZ;?^__^+10B+B`P"``"%R0^5P.F,_O__BU4(BT(0B=HIRL'Z`VG2JZJJJL=$ -XM)`@`````B50D!(M-"(D,)/^0D`@``(M%"(GRZ+3M__^%P`^%(O___XM5"(T$ -XM=HT\Q0````"+@IP```"+@)`!``")'"0IV,'X`VG`JZJJJH/``2GPC01`P>`# -XMB40D"(T$'XE$)`3HGC;\_XM-"(N!G````(N0D`$``(G0*?@YV'(=@RL!@\,8 -XM.=AS]HMU"(N&G````(N0D`$``(G0*?B-6!B-0^B)WCG0`#B40D".A;-?S_BU4(BX*<````.["0`0``=Q>#!@&# -XMQAB+30B+@9P````YL)`!``!SZ8MUW(7V#X1$_/__O@$```#K#X/&`3MUW`^' -XM,?S__X/#&(D[BT74B7,(QD,6`(E#!,=$)`P`````QT0D"`````")7"0$BU4( -XMB10DZ!"G__^%P'2_Z1W]__^+30B+@9P```"+@)`!``")="0$*?#!^`-IP*NJ -XMJJJ#P`$IV(T$0,'@`XE$)`B-!%N-!,:)!"3HH#3\_XM%V(7`#X3]^O__BU4( -XMBX*<````.["0`0``#X?H^O__NP$```#K*9"-="8`.UW8#X33^O__BU4(@\88 -XMBX*<````.;"0`0``#X*[^O__@\,!B3Z)7@C&1A8`QT0D#`````#'1"0(```` -XM`(ET)`2+30B)#"3H5*;__X7`=+#I8?S__XM-"(M=X"M=V(M1$,=$)`@````` -XMBX&<````B?$KB(P!``")R,'X`VG`JZJJJHE$)`2+10B)!"3_DI`(``"+10B) -XMVNBDZO__A<`/A1+\__^+50B-!%O!X`.)1`#B40D"(M%S(DT)`'PB40D!.B-,_S_BT78A",9&%@#'1"0,`````,=$)`@`````B70D!(M-"(D, -XM).A]I?__A<`/A8O[__\[7=AUQ8MU"(N&G````(N0D`$``(G0*T7,C7`8C4;H -XMB?,YT',;B70D"(E$)`2+10B)!"3HS>W__X7`#X5+^___QT0D#`````#'1"0( -XM`````(ET)`2+50B)%"3H%J7__X7`#X4D^___BTT(@\88BX&<````BY"0`0`` -XM.=IUG^DO^?__B?/'1>``````Z6K[__^0C70F`%6)Y5=64X/L?(M]"(MU$(N' -XMG````&:#B,@!```!C47PB40D!(D\).@$]/__A<`/A7P!``"#?10'=@N-M@`` -XM``#H/R[\_P^V312P`=/@J(X/A6@!``"H<73ABX><````BUWPBY",`0``BPJ# -XM^0$/A-$#``"+1T`Y1T0/A!\$```YQ@^"NP(``(L"B46\BT($B47`BT((B47$ -XMBT(,B47(BT(0B47,BT(4B470B?CH?^G__X7`#X7W````A?9T?3';D.LKBT78 -XM@\,!BTW4.?.)1<"+1=R)3;R)1<2+1>")12)1B)1=!T4(U%U(U5 -XMO(E$)`B)5"0$B3PDZ+WK__^%P`^%I0```(-]U`%UL?:'%`(```$/A!8&``"+ -XMAPP"``"-!$#!X`(#1Q"+0#B%P'4&@WW<`76(BTW4BX><````BY",`0``B0J+ -XM1=B)0@2+1=R)0@B+1>")0@R+1>2)0A"+1>B)0A3'1"0(`P```,=$)`0````` -XMB3PDZ(_L__^%P'4KQT0D#`````#'1"0(`````(M-#(D\)(E,)`3H_.___X7` -XM#X1@`@``C70F`+@!````@\1\6UY?7<.+3?"-1=2)39R)1"0(BX><````BX"0 -XM`0``B3PDB40D!.B.Z___A<````BX"0`0``B3PDB40D!.@[ZO__A<`/A"/_ -XM___I;O[__XM%%(7`#X0Z_?__@WT4!0^$X0```(U%[(E$)`2)/"3HRO#__\=% -XMF`````"%P`^%PP```(7V='2+1SP[1T!U2.MJBX<,`@``C01`P>`"`T<0BT`X -XMAR+30R+$(D1BT`,B4$$A?8/A0(#``"#?10%#Y5%JX!]JP!T%(-] -XM%`)T#HM-#(M!!(7`#X2\`@``@\1\,_[___'1"0$`````(D\).@\<````BYB,`0``QT6P`0```.F9_O__BX><````BY"0 -XM`0``BP*)1=2+0@2)1=B+0@B)1=R+0@R)1>"+0A")1>2+0A2)1>B)^.C+X___ -XMA<`/A4/[__^%]@^$20,``#';ZU*-M"8`````BT6\.T74=!2)1"0$B3PDZ(RC -XM_/^%P`^$(@,``(M%P(/#`8M-O#GSB478BT7$B4W4B47R+30R+$(D1BT`,B4$$A?8/A!#\ -XM__\QV\=%H`````#K$X-]%`<```` -XMBX"0`0``B3PDB40D!.@WY?__A<`/A6_Y__^+AYP```"+5=2+@)`!```Y$'04 -XMB50D!(D\).C`H?S_A<`/A"H!``")/"3H<.W__X7`#X4X^?__@WT4`G6)BX>< -XM````BU6<.Y",`0``=S#'1:`!````Z7;___^%VW0IBX><````BTV<.XB,`0`` -XM#X9=____@^D8B4V<````BU6<.Y"0`0``=1OK.(UV`(/N`70P -XMBX><````BTV<.8B0`0``=!^+79R#19P8BU6`#*<.)7:SI?/O__XM% -XME(7`#X2;^?__BP.+30R)`?:'%`(```$/A&@!``"+APP"``"-!$#!X`(#1Q"+ -XM0#B%P`^5P(3`#X0Y`0``BTL$BT=4,=+W=SB-%!&)5"0(BP.)/"2)1"0$Z&37 -XM__^+50R)0@3I/?G__\=$)`P`````QT0D"`````")3"0$B3PDZ.V9__^%P`^$ -XM_/K__^FP]O__@WT4`P^$@P```(-]%`>)]@^%)/7__^E*_O__BT6@A<`/A.;X -XM__^+39R+50R+`8D"]H<4`@```0^$V@```(N'#`(``(T$0,'@`@-'$(M`.(7` -XM#Y7`A,`/A*D```"+19R+2`2+1U0QTO=W.(T4$8E4)`B+39R+`8D\)(E$)`3H -XMKM;__XM5#(E"!.E_^/__A?8/A87]__^+AYP```"+@(P!``")19SIO/W__\=$ -XM)`P`````QT0D"`````")3"0$B3PDZ!N9__^%P`^$I?W__^G>]?__QT64```` -XM`(VT)@````#IA?G__XM+"(/I`0^O3SB0Z;K^__^+MPP"``"%]@^5P.F?_O__ -XMBU6R+3P2#P`@YP0^$ -XM0`$``(GRB?LQP`%32"ES-`%!2(M!1`%Q-`%Q/#M!0`^$\0```(N1G````(T$ -XM=@%Q0(T\Q0`````!NI`!``"+0T"!B:P$```@```"*7,\*?`[0T2)0T!S`XE# -XM1(N#G````"FXD`$``#'`@8NL!```(````NLEQT0D#`$```#'1"0(+`X)",=$ -XM)`0"````B3PDZ*_/_/^X`0```(M=](MU^(M]_(GL7<,QP.OO*=:-M"8````` -XMBU7LBQ^#P@@YTW0(C48!.4-`)\(G[]]@QTNFN_O__D(VT)@````!5B>57 -XM5E.#[`R%THE5\(M`$'1_BW`0C7@0.?=T?XGSZP:+&SG?="^+0R"+5?"+0`B) -XM5"0$B00DZ`@C_/^%P'7A@\0,B=A;7E]=PXVV`````(LV.?=T1HM&((M8",=$ -XM)`0O````B1PDZ&@A_/^%P'0#C5@!BT7PB1PDB40D!.C"(OS_A+ -XM1TR)0A"+1U"+5R")0A2+1R!F@T@8`8N'G````(&/K`0````0``"+EIP```") -XM=Q2+@+0!``")@K0!``"+1SB)1CB+1S2)1C2+1TB)1DB+1D0[1D`/A#,!``#V -XMAFP$```!#X7[````BX9D!```BU=`B48\.=")1D0/A@G````-'HB8:$````QT0D!!@```"+@[0!``"#P`&)!"3H/2+\_X7` -XMB8.,`0``#X3@````BXZ<````BT8\BY&,`0``C01`@^H8C03"B8&0`0``QT0D -XM"`$```"+1DR)-"2)1"0$Z$;>__^Z`0```(7`=5F+3?"+%H/!$#G*#X3/```` -XMBT8$B4($BT8$.<$/A+,```")$(L'B7X$B0:+1?"+%X/`"#G"#X2/````B7($ -XMBX:<````,=*)-V:#B,@!```!@8ZL!```0````H/$'(G06UY?7<.+AF0$``"+ -XM5T"-!$#!X`(#1A"+0#@YT(E&/(E&1`^'^?[__XM&0.GW_O__BT8T@^@!B49$ -XMB49`B48\Z>O^__^)-"3'1"0(`````,=$)`0%````Z$/,_/^#Q!RZ`0```%N) -XMT%Y?7<.+5?")<@SI:?___XM%\(E0$.E$____BU7PBT8$B4(4BQ;I)____XVT -XM)@````"-O"<`````58GE5U93@^P%]@^$KP```(M&1#M&0`^$R0```(M&-(N6G````(/H`8E&0-'HB8:$ -XM````BT8\BXJ0`0``C01`P>`#`X*,`0``BQ&-6.B)4.B+002)0P2+00B)0PB+ -XM00R)0PR+01")0Q"+012)0Q2+CIP```"+1CR+D8P!``"-!$"#ZAB-!,*)@9`! -XM``"#??`!=#>#??`"=`7HS!S\_\=$)`@`````QT0D!`````")-"3H0-S__X&. -XMK`0```````*#Q!PQP%M>7UW#QT0D"`,```#'1"0$`````(DT).@4W/__Z]*) -XM]HM&-(/H`8E&1(E&/.DF____BQDQ]CG:#X0`____BT%(B=Z)0TB+030!0S3' -XM1?`"````Z>;^__^)]HV\)P````!5B>564X/L((M="(U%](MS$(E$)`2)'"3H -XM<_[__[H!````A`C`$```````"+1?2!BZP$````$```B4,4@\0@B=!;7EW# -XMBT,$B48,BT,$BQ,YP768D(E6"(U6$(D3BT84B4,$.U80=9:)7A#KEL=$)`A8 -XM#@D(QT0D!`,```")'"3HL,G\_[H!````Z[")]HV\)P````!5B>575E.#[#R+ -XM=0B+?0R+1A")1>"#?C0#=RW'1"0,`P```,=$)`B0#@D(QT0D!`,```")-"3H -XM9@2)/C';BT8TN@$```"# -XM^`%T`XU0_XM/-(E60+H!````@_D!=`.-4?^)5T"+5=PY5=@/A.(!``"%VW0# -XM*4X\BT9`.48\=@.)1CPY1D1V`XE&1/:&;`0```$/A=X```"+AF0$``")1SR) -XM1T2+1T`Y1SQV`XE'/#M'1',#B4=$@WXT`8N.G`````^$?`$``(N1C`$``(M& -XM/(/J&(T$0(T$PHF!D`$``(N/G````(-_-`$/A$@!``"+D8P!``"+1SR#ZAB- -XM!$"-!,*)@9`!``"+1D#1Z(7`B8:$````=0K'AH0````!````BT=`T>B%P(F' -XMA````'4*QX>$`````0```(N'K`0``(N6K`0```T@```"@^(/"=")AZP$``"# -XMQ#PQP%M>7UW#C70F`(/[!@^&"_[__[L&````Z0'^__^+AF0$``"-!$#!X`(# -XM1A"+0#CI$?___XVV`````(U%\(E$)`2)-"3H8=[__S'2A-(M/ -XM-(E'2(M&!`%.2(E'!(M%X(M6!(/`"#G"#X3<````B3J+AIP```"[`0```(E^ -XM!(N0C`$``(M&0(D4)"G(C01`P>`#B40D"(T$28T$PHE$)`3H51S\_^D(_O__ -XMBX&,`0``Z;_^__^0BX&,`0``Z8O^__^0C70F`(/X`;H!````=`.-4/_VAFP$ -XM```!B58\B59$=#R+AF0$``"-!$#!X`(#1A"+0#B)1SR)1T2-0?\Y1SP/AB3^ -XM__^#Z0%T.(E'/.D4_O__BU7@B7H,Z9#]__^+AF0$``#KSL=$)`@`````QT0D -XM!`4```")-"3HV,7\_^G@_/__N`$```#KP8M%X(EX"(M/-(UV`.D5____C70F -XM`(V\)P````!5B>575E.#["R+112+=0B+?1"%P(M>$'1KB?J)\.BN]O__BU4, -XMB47PBT7PA<")`G1[BWT4A?\/A:4```"+%HU+"#G*#X0&`0``BT8$B4($BT8$ -XM.<$/A!D!``")$(U3$(D6BT,4B48$.U,0#X3[````BT,4B3")SW]HG!,<#K$XUV`#M]['9/,2)1=2+1="+5=2%R70']]B#T@#WVH/$,%Y?7<.%]G4+N`$````QTO?VB<&+ -XM1>R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!RG+D!```` -XM,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KWV(/2`/?: -XM]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`)QXM%\-/F -XM#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)````'5S86=E.B!E>"!;+65&4G)3F5= -XM(%MF:6QE("XN+ET*`````$5R7!E"@!L -XM:6YE]!`B`O00(Y;D$"*Z]!`AS -XM;7-O`')MC0@(`````&"<"`AHC0@(:XT( -XM"`````"#C0@(+_8("(F-"`@`````EHT("!+V"`B&ET('=I;&P@9&ES8V%R -XM9"!M;V1I9FEC871I;VYS`````#(V-'Q&:6QE(&UO9&EF:65D('-I;F-E(&QA -XM2!T:&%N('1H:7,@8V]P>0``,C4X?"5S -XM(&5X<&%N9&5D(&EN=&\@=&]O(&UA;GD@9FEL92!N86UE6]U`#(T,'PE -XMF4@979E;G0`,C@W?%5N97AP96-T960@=W)I=&4@979E;G0` -XM``"S"P4(]`L%",$,!0BS"P4(APP%"*0,!0@9#`4(LPL%"+,+!0@S#`4(30P% -XM"&H,!0C""P4(610%"&41!0B"$04(@A$%"%D4!0A9%`4(@A$%"$T4!0@P,3(S -XM-#4V-P`P,3(S-#4V-S@Y86)C9&5F````,#`X?$5R"]V:3H@`"5S)2XJ2!O;F4@=&%G(&9I;&4@;6%Y(&)E('-P96-I9FEE9"X`+7,@ -XM;W!T:6]N(&ES(&]N;'D@87!P;&EC86)L92!T;R!E>"X`@#,%"'$S!0CO,04( -XM[S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04(8C,%"%,S!0CO -XM,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q -XM!0CO,04([S$%".\Q!0@O,P4([S$%"!PS!0CO,04([S$%".\Q!0CO,04([S$% -XM".\Q!0@-,P4([S$%".\Q!0CO,04([S$%".\Q!0CZ,@4(\#(%",DR!0CO,04( -XMMC(%"*LR!0@P,3=\36%R:R`E&ES=',`,C8X?&-O;F9I2!K97D@=&\@8V]N=&EN=64Z(``R-S!\4')E2!T;R!C;VYT:6YU92!;.B!T;R!E;G1E2!K97D@=&\@8V]N=&EN=64@6W$@=&\@<75I=%TZ -XM(``P,S!\5&AE(&9I;&4@)7,@:7,@;F]T(&$@;65S3TEULJ/R1@)R)<`'-H:69T=VED=&@].`!S:61EA"`@``````P````````##]0@(`(4%"`(````(````+:$("``` -XM`````````````*>\"`@``````P`````````UH0@(````````````````0J$( -XM"``````"`````````$VA"`@```````````````">V@@(```````````````` -XM6*$("'"%!0@``````````&&A"`@``````P````````!GH0@(``````$````` -XM````;:$("````````````````'>A"`@``````@````````"`H0@(<(4%"``` -XM````````B*$("'"%!0@``````````).A"`@``````@````````";H0@(L'\% -XM"```````````7(P(".""!0@"````"````*6A"`BP@@4(``````@```!8O`@( -XML'\%"```````````L=X("``````!`````````*JA"`@``````0````````"P -XMH0@(``````(`````````NJ$("``````!`````````+^A"`@``````````!`` -XM``#(H0@($(8%"`,`````````SZ$("."%!0@#`````````-,$"0BP?P4(```` -XM``````#7H0@(X(4%"```````````T+D("``````!`````````-VA"`@````` -XM`0````````#FH0@(<((%"`,`````````(J$("``````#`````````-&A"`C@ -XMA04(`P````````#QH0@(``````$`````````AIL("(!_!0@``````@```/BA -XM"`@``````P````````#_H0@(````````````````!J(("``````!```````` -XM``RB"`@``````@`````````3H@@(````````````````8*(("``````"```` -XM`````!FB"`@````````````````DH@@(,((%"`,`````````+:(("``````` -XM````(````(3="`@``````P`````````TH@@(``````,`````````/J(("``` -XM```"````0````$FB"`@```````````````!3H@@(````````````````7*(( -XM"``````"````0````&>B"`@```````````````!PH@@(```````````0```` -XM>J(("+!_!0@"````0````(*B"`@``````@````````!@P0@(``````,````` -XM````,(L("``````#````"0```(RB"`@```````````````"2H@@(```````` -XM````````FJ(("``````!`````````**B"`BP@04(``````````"LH@@(```` -XM````````````M*(("-"`!0@"````#````+JB"`A`@04(`@````P```"_H@@( -XM8(`%"`(````,````Q:(("``````!`````````,JB"`C0?P4(`@````````#1 -XMH@@(````````````````W*(("``````"`````````.2B"`@``````@`````` -XM``#OH@@(``````$`````````^*(("``````````````````````````````` -XM```````!HP@(`0````FB"`@"`````Z(("`,````$HP@(!0````>C"`@(```` -XM^Z$("`H````*HP@(#0```!V<"`@+````^)@("`X````-HP@($@```).-"`@3 -XM````K:$("!4````0HP@(&````!.C"`@?````':,(""(````@HP@()0```"2C -XM"`@F````,:((""P```"TL0@(*@```"FC"`@P````+:,("#(```!>H`@(-``` -XM`#*C"`@Z````-Z,("#<````ZHP@(.````#ZC"`@V````/<$("#X```!!HP@( -XM/0```$2C"`A"````1Z,("#P```!?BP@(/P```$JC"`@_````&O<("$D```!2 -XMHP@(3@```%6C"`A)````6*,("$L```!;HP@(3````+^_"`A-```````````` -XM```P-#E\5&AE('-E8W1I;VX@;W!T:6]N(&UU2!0A8+79I+7)E8V]V97(M9FEL93H@`%@M=FDM -XM2!F:6QE`````$9R;VTZ(')O -XM;W0@*$YV:2!R96-O=F5R>2!P2X@```E2`O(&]R -XM(#\`!"$C)BH\/3Y`?@`P.#!\56YK;F]W;B!C;VUM86YD(&YA;64`,6)C83$` -XM,#DX?%1H92`E2!N -XM;W0@8F4@>F5R;P!L<@`P.#9\57-A9V4Z("5S`'-C2`E;'4@;&EN97,@:6X@=&AE(&9I;&4`,3`S -XM?$EL;&5G86P@861D"!M;V1E -XM`````#`X-'PE"!T86)L92!E"!C;VUM86YD(&9A:6QE9#H@<&5N9&EN9R!C;VUM86YDP@4(N,(%"%W'!0A\Q`4(?,0%"`7'!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0BOQ@4(_<<%")['!0B>QP4(GL<%")[' -XM!0B>QP4(GL<%")['!0B>QP4(GL<%")['!0A\Q`4(?,0%"'S$!0A\Q`4(?,0% -XM"-W%!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4( -XM?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(9\8%".O+!0CLR@4([,H%".S* -XM!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H% -XM".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(Z\L%".S*!0CLR@4( -XM[,H%".S*!0CXRP4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(FLL%".S*!0CL -XMR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S* -XM!0CLR@4(H\L%".3>!0B#W@4(@]X%"-C$%"-C&-E<'0@870@=&AE(&5N9``R-S-\16YT97)I;F<@ -XM97@@:6YP=70@;6]D92X`,3$T?$YO(&9I;&4@;&ES="!T;R!D:7-P;&%Y`"5S -XM)7,E'!A;G-I;VX@9F%I -XM;&5D`"$E3H@)7,`&5C=71E(&$@8G5F9F5R`#P`2!L:6YE(&YU;6)E<@!S -XM:&EF="!L:6YE5T`8V]P>0!C'5S86=E`%ME>'5=')C -XM(&9I;&4`(69.`%ML:6YE72!O6W!E;ET@6R]212]=(%MF;&%G2!L:6YEF4@6RLM -XM77)O=W,`5T@;&EN92!;9FQA9W-= -XM``!C;W!Y(&QI;F5S(&5L2!B6W5F9F5R2!S970I(&9I;&4@;F%M -XM90``8G)I;F<@82!B86-K9W)O=6YD960@72!;=VEN -XM9&]W7W-I>F5=(%MF;&%G2!D:69F97)E;G0@,,( -XM")S#"`C3O`@(T$,&"`````#:O`@(W;P(",##"`@1"PD(L$8&"$(```!ZL0@( -XM[,,("/6\"`C.V`@(X$@&"`````#+P0@(),0("%S$"`@E!`D(D$L&"``!``!^ -XMO`@($+T(""N]"`CXF`@(D$L&"``!``!^O`@(1KT(""N]"`A=O0@(8!$'"``` -XM``#;OP@(9;T("(S$"`B;T("+#$"`B'O0@(L)$& -XM"``%``!^O`@(BKT("-C$"`B7O0@(P%X&"`0```#:O`@(",4("#S%"`B>O0@( -XM\!`'"`````!/C0@(H[T("*J]"`C!O0@(``(&"#$```#5V@@(R+T("-N]"`CV -XMO0@(4&@&"$(```#[O0@(<,4("`"^"`@2]@@(X'$&"`$```#+P0@('KX(""N^ -XM"`A8O`@(T(4&"((```#\O0@(G,4(",#%"`B#E`@(('4&"$(````O]@@(0+X( -XM".C%"`C3]`@(X'$&"`$```#+P0@(6[X(""N^"`@(H@@(`&\&"`````!MO@@( -XM<+X("`S&"`B&O@@(<'(&"`````"-O@@(DKX("*&^"`C)P`@(T`8&"``!``"T -XMO@@(.,8("%C&"`C3!`D(<(4&"((```#\O0@(A,8("*C&"`C0N0@(L'H&"`$` -XM``#;O`@(N+X(",C&"`C1H0@(((4&"((```#\O0@([,8("-6^"`CCO@@(P"H' -XM"#0"``#;O`@(Z+X("!#'"`CSO@@(P"H'"#0"``#;O`@(^KX("#S'"`@'OP@( -XMX'L&"`````!/C0@($+\("'3'"`@;OP@(H`4&"``!``#5V@@()+\(")S'"`AV -XMO`@(,(8&"'$```#_]`@(-;\("-#'"`A+OP@(T(8&"`````#5V@@(4+\("%J_ -XM"`@$V0@(L(D&"#$```#;O`@(9;\("/#'"`@KH`@(,'L&"`````"-O@@(@[\( -XM")._"`BHOP@(,)$&"``$``"OOP@(LK\(""#("`C"OP@(T`0&"`````#5V@@( -XMR;\("$3("`C5OP@(T`4'"``!``#:OP@(W[\("'3("`C;O`@(,-X&"`(```#; -XMO`@(F,@("-3("`C(L0@(\)P&"``"``!]O`@(];\("`C`"`B1F@@(L*4&"``` -XM```@P`@(^,@("#C)"`B$W0@(4*L&"``"``!/C0@((\`("&C)"`@KP`@(8+(& -XM"`````".O@@(,L`("$#`"`A]H@@(X+,&"``"``#5V@@(6\`("&7`"`A^P`@( -XMX+,&"``"``#5V@@(AL`("&7`"`C-H0@(@'D&"$(````9C0@(D\`(")S#"`@] -XMP0@(,/8&"``!``#:OP@(L<`("'3("`C&P`@(4/4&"`````#5V@@(SL`("-O` -XM"`CPP`@($.\&"`````#:OP@(]\`("(C)"`@3P0@(L0@(<-P&"`(```#;O`@( -XM7,P("(3,"`@```````````````````````````````!.;R!C0!A9&0`8W-C;W!E -XM+F]U=`!C&5C(&-S8V]P92`M9&P@+68@)7,`````,S$R?"5D.B!N;R!S=6-H(&-S -XM8V]P92!S97-S:6]N```E2!C7!E.B!U2!Y;W4@;W(@2!Y;W4````Q,S!\)7,Z(&YO="!S;W5R8V5D.B!W2!M87!P960`,3,T -XM?%1H92`E2!B92!R96%D```Q-#9\)7,Z(')E860@;&]C -XM:R!W87,@=6YA=F%I;&%B;&4````Q-#E\3F\@8F%C:V=R;W5N9"!S8W)E96YS -XM('1O(&1I&5C=71E`'!Q&ET960`0V]N=&EN=65D`$5- -XM5"!T'!IF4@;&EM:70@97AC965D960````````` -XM```````&````G]X("`X```"JW@@("@```+;>"`@4````P-X("!,```#-W@@( -XM!P```-?>"`@(````X-X("`$```#YW@@(!`````#?"`@=````%-\("`(````H -XMWP@(%P```#+?"`@&````/]\("`D```!(WP@(#0```$_?"`@;````6]\("`,` -XM``!SWP@("P```'C?"`@1````B]\("`P```">WP@(#P```*[?"`@%````N=\( -XM"!(```#(WP@(%0```-+?"`@6````YM\("!````#[WP@('@```!#@"`@?```` -XM)N`("!H````\X`@('````%+@"`@8````9N`("!D```!]X`@(,34R?'-H:69T -XM=VED=&@@;W!T:6]N('-E="!T;R`P`%)%(&5R+EM=)"H`,34S?$-O=6YT(&]V97)F;&]W`#$U-'Q#;W5N="!U;F1E -XM2!N -XM;W0@8F4@8V]M8FEN960@=VET:"!T:&4@8R!F;&%G(&EN('9I(&UO9&4`PL(& -XM"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@C" -XMP@8(/<(&"#W"!@CXQ@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&".G& -XM!@@]P@8(VL8&"#W"!@@]P@8(6,8&"%C&!@A8Q@8(6,8&"%C&!@A8Q@8(6,8& -XM"%C&!@A8Q@8(6,8&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@] -XMP@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W" -XM!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(+\8& -XM"#W"!@@]P@8(/<(&"!S&!@@]P@8(/<(&"#W"!@@]P@8(#<8&"#W"!@@]P@8( -XM/<(&"/[%!@@]P@8(FL(&"+_5!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5 -XM!@BCU08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@B-U08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(&]8&"+K.!@BZS@8( -XMNLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(!=8&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"(W5 -XM!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@@QU@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@BZS@8(NLX&"+K.!@COU08(,38T?"5S.B!T:&4@=&%G)W,@;&EN92!N -XM=6UB97(@:7,@<&%S="!T:&4@96YD(&]F('1H92!F:6QE````,38V?"5S.B!S -XM96%R8V@@<&%T=&5R;B!N;W0@9F]U;F0`````,34Y?$QE2!A="!T:&4@;&%S -XM="!T86<@;V8@=&AI'5S86=E -XM(%MC;61=/$-2/B(*````1F]R(&$@=FD@:V5Y('5S86=E('-T871E;65N="!E -XM;G1E5T\0U(^(@H`````5&AE("5S(&ME>2!H87,@ -XM;F\@8W5R&ET+"!E;G1E0`Q-S1\57-A9V4Z("5S -XM`#$T-'PE2!F:6QE(&YA;65S```` -XM,C@S?%1H92`E"!T97)M:6YA;"!I -XM;G1E"!T97)M:6YA;"!I;G1E2!O9B!#86QI9F]R;FEA+"!" -XM97)K96QE>2X````Q-S5\5&AE('9IB5C`#(U -XM,WQ72!S8W)E96YS`%Y#`%MC;W5N=%U>1`!;8V]U;G1=7D4`7D4@2!C:&%R86-T97)S`%MC;W5N=%U>2@!>2B!M;W9E(&1O=VX@8GD@;&EN97,` -XM7DP`7DP@2!L:6YE2!L:6YE -XM4@!>4B!R961R87<@5@!>5B!I;G!U="!A(&QI -XM=&5R86P@8VAA"!M;V1E`%Y=`%Y= -XM('1A9R!P=7-H(&-U`%Y>('-W:71C:"!T;R!P&ET`%M;`%M;(&UO=F4@8F%C:R!S96-T:6]N`%U=(&UO=F4@ -XM9F]R=V%R9"!S96-T:6]N`"!>(&UO=F4@=&\@9FER2!C;VQU;6YS`&U;82UZ70`@;2!S970@;6%R:P`@;B!R97!E870@ -XM;&%S="!S96%R8V@`6V-O=6YT76\`(&\@87!P96YD(&%F=&5R(&QI;F4`6V)U -XM9F9EB!R97!O02!S96%R8V@@9F]R=V%R9"!F;W(@8W5R -XM0R!I;G1E2!L:6YE2!L:6YE2!L -XM:6YE2!T -XM97AT('1O(&UO=&EO;B!I;G1O(&$@8W5T(&)U9F9E<@````!;;&EN95UZ6W=I -XM;F1O=U]S:7IE75LM?"Y\*WQ>?#Q#4CY=```````````````````````````` -XM````````````H(,'"")`5`"H[0@(!/@(")![!P@@``0`LNT("+SM"`@````` -XM`````-3M"`@H^`@(<'T'""``!`#7[0@(8/@("-!Z!P@```0`X>T(".OM"`B` -XM?`<((``$``/N"`@-[@@(0)4'"``````G[@@(*NX("&!>!P@@`$0`.>X("$/N -XM"`@`````````````````````,'X'"!@`1`!>[@@(:.X("``````````````` -XM````````<@<(`````'[N"`B![@@(P'X'"$@`1`"2[@@(D/@("#!^!P@8`$0` -XMG.X("*;N"`@`````````````````````$'\'"!@`1`"\[@@(QNX("``````` -XM````````````````<@<(`````-KN"`C=[@@(`````````````````````!`] -XM!P@@0```[NX("/'N"`C0?0<((``$`/SN"`@&[P@(```````````B[P@()>\( -XM"-!Y!P@`````0N\("$7O"`@`````````````````````,'L'"```!`!<[P@( -XM9N\("*!!!P@````">N\("'WO"`@``````````(_O"`B\^`@(D$0'"`````"; -XM[P@(GN\("(!`!P@@0!``M.\("+?O"`B@0P<(`````,_O"`C2[P@(```````` -XM`````````````*!X!P@@`$0`[>\("/3X"`BP/@<((``L`ACY"`@\^0@(```` -XM`````````````````*!%!P@@``X`^.\("`?P"`A@=P<(@`!$`"7P"`@O\`@( -XMH&0'"")`1`!&\`@(2/`(""!#!P@`````/+L("%GP"`@P9`<(*`!#`'#P"`AD -XM^0@($)('"")`1`!X\`@(@?`("-".!P@B0$0`E_`("*#P"`@````````````` -XM````````,'X'"$@`1`"Y\`@(C/D("%`T!P@@`$0`PO`("+CY"`@0?P<(2`!$ -XM`,OP"`C<^0@(``````````!!\0@(U/`("/")!P@B@$``[_`("/WP"`@`7@<( -XM(`!``+BB"`@/\0@(```````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````,#H'"``````J\0@(0_$("``U!P@@`$0` -XM4?$("`CZ"`B@0@<((``L`%KQ"`AP\0@(`````````````````````"!"!P@@ -XM`"P`CO$(""SZ"`@0B@<((H!``*3Q"`BR\0@(T"X'""``!`'%\0@(S?$("/!6 -XM!P@@``P`W_$(".CQ"`APZ0<((`!$`/[Q"`@'\@@(```````````<\@@(+?(( -XM"```````````1O(("%#R"`CP[`<((`!$`&GR"`AR\@@(4#$'""``1@",\@@( -XM3/H("%"`!PA(`$4`G_(("*CR"`@`@`<("`%%`+CR"`AT^@@(<%8'""``#`#! -XM\@@(G/H("'`]!P@@``P`RO(("-/R"`@`````````````````````8'\'"`@! -XM10#A\@@(ZO(("+!_!P@(`44`<(L("`/S"`B`A0<((H!``/:B"`@<\P@(X%T' -XM""``#``S\P@(//,("`!Q!P@@`(P`4?,("+SZ"`B01`<(`````%OS"`A=\P@( -XMX%,'""``#`!R\P@(>_,("```````````D?,("*+S"`A0,@<((`!&`,#S"`C@ -XM^@@(T.('""`````$[P@(T_,("```````````````````````\0<((`!$`._S -XM"`CX\P@((/$'""``C``0]`@(#/L("```````````(?0("#+T"`@@]P<(```` -XM`#_T"`A"]`@(,(H'""!`1`!8]`@(6_0("```````````````````````C`<( -XM($!$`(H&"0AP]`@(\%\'""``1``!P@@`$0` -XMJO4("+/U"`C`5`<((``,`,OU"`C4]0@(,'X'"!@`1`#L]0@(]?4("!!_!P@8 -XM`$0`"_8("!3V"`B@>`<((`!$`"CV"`@Q]@@(<&0'"````@!*]@@(4?8("%"% -XM!P@B@$``]J(("%WV"`C`70<((``,`'/V"`A\]@@(`'`'""``C`"1]@@(5/L( -XM"``````````````````````@<@<((``,`)OV"`BN]@@(8%('""``C`##]@@( -XMU/8(",`S!P@@`$8`[/8("'C["`A`X@<((````/R6"`C_]@@(```````````` -XM`````````.#P!P@@`$0`$_<("!SW"`@0\@<((`",`#'W"`A"]P@(0/,'""`` -XMK`!6]P@(I/L("&#T!PA```4`T/L("'3W"`@P:0<((D!$`(WW"`B6]P@(X%X' -XM""``1`"M]P@(MO<(",!K!P@B0$0`R/<("-'W"`@0X0<((``,`.OW"`CT]P@( -XM,S`W?$YO(&5X(&-O;6UA;F0@=&\@97AE8W5T90`Q.#!\3F\@<')E=FEO=7,@ -XM9FEL92!T;R!E9&ET````,C`W?%1H92!1(&-O;6UA;F0@/!P@HCP<(*(\'""B/!P@HCP<(=X\'""B/!PAWCP<(*(\'""B/ -XM!P@HCP<(*(\'"(*/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\' -XM""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(@H\'""B/!P@HCP<( -XM*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@H -XMCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/ -XM!P@HCP<(*(\'""B/!P@HCP<(=X\'"#$Y-'Q.;R!M;W)E(&-H87)A8W1E\!PBJNP<(;ZP'"("[!PAOK`<(;ZP'"+^^!PA6O@<(;ZP'"$*_!PB_O@<( -XM/;X'"#V^!PAOK`<($[X'"(B]!PA@O0<(,KP'"%6[!PCYM`<(G+H'"(6Z!PB% -XMN@<(#K4'"/FT!PAIN@<(^;0'"/FT!PCYM`<(^;0'"$FZ!P@R,#%\0G5F9F5R -XM2!I;B!T:&4@9FER,'"#(P-GQ.;R!C:&%R86-T97)S('1O(&1E;&5T90#O]P<(,?@'""KX!P@J -XM^`<(0O@'"%7X!P@:^`<([_<'"._W!PCO]P<([_<'"/OW!PA5^`<($`@(""@( -XM"`@E#0@(YP0("$$-"`APX`<((``L`.D+"0C_"PD(,C,U?$YU;6)E2!I;B!C;VUM86YD(&UO9&4` -XM,C,V?$EN=&5R7,@9&ES8V%R9&5D`````#(S,7Q);G1E7,@9&ES8V%R9&5D```E9"!S8W)E96YS(&)A8VMG6]U'`@)````1L#.Z0!```!````]'C__\`!```````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````````$^-"`@`````+!()"``````` -XM`````````````````````0```%P````"````7@````,````$````!````!(` -XM```%````%`````8````:````!P```#H````(````#0````D````;````"@`` -XM``P````+````&`````P````*````#0```'T````.````*0````\````)```` -XM$`````@````1````%0```!(````1````$@```!8````3````%P```!0````P -XM```````````````````````````````````````````````5`````0```"]D -XM978O<'1Y6%@``"SS"`@``````````````````````````!0``````````7I2 -XM``%\"`$;#`0$B`$``!P````<````+'?__X)`$"`8```#XA00("@```-`$```+````$````!4``````````P```#02 -XM"0@"````B`0``!0````1````%P```!B7!`@1````N)8$"!(```!@````$P`` -XM``@```#^__]OF)8$"/___V\!````\/__;TB5!`@````````````````````` -XM``````````````````````````````````````````#_____`````/____\` -XM`````````%`1"0@``````````,J;!`C:FP0(ZIL$"/J;!`@*G`0(&IP$""J< -XM!`@ZG`0(2IP$"%JIP$"(J!`@:G@0(*IX$"#J>!`A* -XMG@0(6IX$"&J>!`AZG@0(BIX$")J>!`BJG@0(NIX$",J>!`C:G@0(ZIX$"/J> -XM!`@*GP0(&I\$""J?!`@ZGP0(2I\$"%J?!`AJGP0(>I\$"(J?!`B:GP0(JI\$ -XM"+J?!`C*GP0(VI\$".J?!`CZGP0("J`$"!J@!`@JH`0(.J`$"$J@!`A:H`0( -XM:J`$"'J@!`B*H`0(FJ`$"*J@!`BZH`0(RJ`$"-J@!`CJH`0(^J`$"`JA!`@: -XMH00(*J$$"#JA!`A*H00(6J$$"&JA!`AZH00(BJ$$")JA!`BJH00(NJ$$",JA -XM!`C:H00(ZJ$$"/JA!`@*H@0(&J($""JB!`@ZH@0(2J($"%JB!`AJH@0(>J($ -XM"(JB!`B:H@0(JJ($"+JB!`C*H@0(VJ($".JB!`CZH@0("J,$"!JC!`@JHP0( -XM.J,$"$JC!`A:HP0(:J,$"'JC!`B*HP0(FJ,$"*JC!`BZHP0(RJ,$"-JC!`CJ -XMHP0(^J,$"`JD!`@:I`0(*J0$"#JD!`A*I`0(6J0$"&JD!`AZI`0(BJ0$")JD -XM!`BJI`0(NJ0$",JD!`@``````````````````````````````````````"1& -XM'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6YA -XM;6EC`"YC=&]R!```-`$```` -XM``````````$`````````-P```/___V\"````2)4$"$@5``!0`0``!``````` -XM```"`````@```$0```#^__]O`@```)B6!`B8%@``(`````4````!````!``` -XM``````!3````"0````(```"XE@0(N!8``&`````$``````````0````(```` -XM7`````D````"````&)<$"!@7``"(!```!`````L````$````"````&4````! -XM````!@```*";!`B@&P``$0``````````````!`````````!@`````0````8` -XM``"TFP0(M!L``"`)``````````````0````$````:P````$````&````X*0$ -XM".`D```\Y0,````````````0`````````'$````!````!@```!R*"`@<"@0` -XM#```````````````!`````````!W`````0````(```!`B@@(0`H$`"N%```` -XM`````````"``````````?P````$````"````;`\)"&R/!``4```````````` -XM```$`````````(T````!`````P`````0"0@`D`0`%`$`````````````(``` -XM``````"3`````0````(````4$0D(%)$$`#P```````````````0````````` -XMG0````8````#````4!$)"%"1!`#0````!0`````````$````"````*8````! -XM`````P```"`2"0@@D@0`"```````````````!`````````"M`````0````,` -XM```H$@D(*)($``@```````````````0`````````M`````$````#````,!() -XM"#"2!``$```````````````$`````````+D````!`````P```#02"0@TD@0` -XM4`(`````````````!`````0```"^````"`````,```"@%`D(H)0$`.`,```` -XM`````````"``````````PP````$``````````````*"4!`"I$0`````````` -XM```!``````````$````#``````````````!)I@0`S````````````````0`` -X%```````` -X` -Xend -END-of-vi.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-4/out/strip-all-4.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-4/out/strip-all-4.out.shar deleted file mode 100644 index a1ce6214..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-4/out/strip-all-4.out.shar +++ /dev/null @@ -1,6817 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# vi.uu -# -echo x - vi.uu -sed 's/^X//' >vi.uu << '5f6cb34c34598fc980a32aede89eafe8' -Xbegin 644 vi -XM?T5,1@$!`0D```````````(``P`!````X*0$"#0````@`` -XM``````"+````G````)X````-`````````'\``````````````'D````````` -XM)P```$,````8````:@````````!T````H0````````"$`````````$P````X -XM````H``````````?````E0```#``````````8P`````````6`````````#T` -XM``!F````E@``````````````EP```!$```!:``````````````!B````@P`` -XM`($```!7````7````)0`````````%P```'4````N````?0````````!H```` -XM`````(P``````````````'````"'````F@```*0```!)````<@```*8````` -XM````4`````````!8````>P```)(`````````HP```````````````````)\` -XM```\````;P```%4```!^`````````(D```!?````60```(4````Z```````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````0```````````````````!(````` -XM````````````````````!`````(````````````````````.````#``````` -XM```5`````````!0````(````````````````````````````````````*0`` -XM````````````(P````D``````````````"H````E````+P`````````````` -XM"@`````````````````````````L```````````````<```````````````9 -XM`````````"@````D`````````$(``````````P`````````V`````````$H` -XM```Y````,P`````````;`````````$$````````````````````+````-0`` -XM`````````````````!T````0````&@````\````'````70`````````````` -XM`````#X```!$`````````!X````A````:0``````````````(````&0````` -XM````````````````````$P````````!1````````````````````10```$\` -XM```R````!@```#L``````````````&P```!(`````````$<````````````` -XM`',```!`````````````````````6P````````!@````)@```(T```!+```` -XM`````%X```!Q`````````'P```!-````C@```'@```!M`````````"(```"& -XM`````````&L```!&`````````%,````M````DP```'8````K````90`````` -XM``````````````````!\!````````,8````2````VP$````````R`@``$@`` -XM`*P"````````-````!(```!3!````````#,````2````N@(```````!#```` -XM$@```!($````````5@$``!(````]!``````````````2````K@,````````R -XM````$@```#8$````````H0```!(```!0`0```````'(#```2````+P$````` -XM``""`0``$@```+\"`````````````!(```"C`0```````&L!```2````R`$` -XM``````#]"```$@```!$```!0$0D(`````!$`\?^T`@`````````````2```` -XM.0(`````````````$@```!H`````````U`,``!(```"1!``````````````2 -XM````-P0```````"A````$@```/\"`````````````!(```!/`P```````%H` -XM```2````50(```````!7````$@```$(!````````.0```!(````P!``````` -XM```````2````!@(```````!J````$@```"``````````30```!(````G```` -XM`````/8#```2````>P0```````":````$@```"0$`````````````!(````O -XM`````````!D````2````XP$```````#!````$@```/,!`````````````!(` -XM``">`P```````%T````2````2@$`````````````$@```&X!````````3P`` -XM`!(```",`P````````4````2````S`(`````````````$@```.`#```````` -XM3@4``!(````5`P```````-T#```2````:@(```````#8````$@```#<```"@ -XMFP0(`````!(`"@`@`@```````.H````2````=P(`````````````$@```%X# -XM`````````````!(```#M`@`````````````2````S@$```````"2`0``$@`` -XM`)`0```````#,````2````3``` -XM``````"2````$@```'$#``"@%`D(!````!$`%P!5`````````"0````2```` -XM*@(````````5`@``$@```'X#````````90(``!(```"/`@`````````````2 -XM````,`,````````T````$@```-,"````$`D(!````!$`$`!:`````````-T` -XM```2````9`````````!"````$@```&L`````````;@```!(```!U```````` -XM`-P#```2````0P0`````````````$@```*<"`````````````!(```"X`P`` -XM`````%(7```2````&0(``*04"0@$````$0`7`,`#````````*P```!(````^ -XM`P```````,T````2````?`(``*@4"0A4#```$0`7`(4#`````````````!(` -XM``#/`P```````,P````2````90(```````"A````$@```'L`````````)``` -XM`!(```"0`0```````#````!(```";````'(H("``````2 -XM``T`,0$```````"8````$@```-<#````````'0```!(```"7!````````.T` -XM```2````.`$```0A"0@$````$0`7`*H!`````````````!(````\!``````` -XM`+$````2````&P0````````D````$@```#0"`````````````!(````=`P`` -XM""$)"`0````1`!<`8@$````````E````$@```'\!`````````````!(```"A -XM`````````#D````2````7P0`````````````$@```%@$````````8@```!(` -XM``"6`P```````,L````2````@00`````````````$@```*L````,(0D(!``` -XM`!$`%P!L!````````/H````2````8`0```````!#````$@```*$$```````` -XM`````!(````+`@```````,,````2````KP0``(04"0@`````$`#Q_Z<$```` -XM````/0```!(````2`@```````#,````2````U`$`````````````$@```+(` -XM```T$@D(`````!$`\?_M`P```````($````2````P@0``(`A"0@`````$`#Q -XM_P@$````````8@,``!(```"K`0`````````````2````R`````````!T```` -XM$@```$`"````````80```!(```"G`P````````,!```2````Z0$``!`A"0@$ -XM````$0`7`&\$````````DP```!(```#%`@``%"$)"`0````1`!<`^`$````` -XM````````$@```,T`````````H@```!(```"Q`0```````$4````2````5@,` -XM``````#*#```$@````$$````````*P```!(```#6````&"$)"`0````1`!<` -XM7P(`````````````$@```,$!`````````````!(```#=`````````+4````2 -XM````YP`````````%`0``$@```#("````````[````!(```!E!``````````` -XM```2````(P0`````````````$@```'0!S971V8G5F`&5X96-L`%]?7-T96T`9F5O9@!M86QL;V,`:7-A='1Y`&]P=&%R9P!V&5C -XM`&]P96YD:7(`6YA;64`9V5T<'=U:60`9V5T8W=D`&9G971C -XM`&=E=&AO&ET`'-E=&QO8V%L90!R96=E&ET`'-T@<` -XM``(`QP0```````"@%`D(!3P``*04"0@%2@``J!0)"`5-``#\(`D(!6(````A -XM"0@%9P``!"$)"`5Q```((0D(!78```PA"0@%?@``$"$)"`6/```4(0D(!9$` -XM`!@A"0@%EP``'"$)"`6C``!`$@D(!P$``$02"0@'`@``2!()"`<#``!,$@D( -XM!P0``%`2"0@'!0``5!()"`<&``!8$@D(!P<``%P2"0@'"```8!()"`<)``!D -XM$@D(!PH``&@2"0@'"P``;!()"`<,``!P$@D(!PT``'02"0@'#@``>!()"`<0 -XM``!\$@D(!Q$``(`2"0@'$@``A!()"`<3``"($@D(!Q0``(P2"0@'%0``D!() -XM"`<6``"4$@D(!Q<``)@2"0@'&```G!()"`<9``"@$@D(!QH``*02"0@'&P`` -XMJ!()"`<<``"L$@D(!QT``+`2"0@''@``M!()"````[!,)"`=Y``#P$PD(!WH``/03"0@'>P``^!,) -XM"`=\``#\$PD(!WT````4"0@'?P``!!0)"`>````(%`D(!X$```P4"0@'@@`` -XM$!0)"`>$```4%`D(!X4``!@4"0@'A@``'!0)"`>(```@%`D(!XH``"04"0@' -XMBP``*!0)"`>,```L%`D(!XT``#`4"0@'C@``-!0)"`>0```X%`D(!Y(``#P4 -XM"0@'DP``0!0)"`>4``!$%`D(!Y4``$@4"0@'E@``3!0)"`>8``!0%`D(!YD` -XM`%04"0@'F@``6!0)"`>;``!<%`D(!YP``&`4"0@'G0``9!0)"`>>``!H%`D( -XM!Y\``&P4"0@'H```A``!T%`D(!Z(``'@4"0@'I0``?!0)"`>F``"` -XM%`D(!Z<``(/L#.@("@``Z$/N`P"#Q`S#````_S4X$@D(_R4\$@D(`````/\E -XM0!()"&@`````Z>#_____)402"0AH"````.G0_____R5($@D(:!````#IP/__ -XM__\E3!()"&@8````Z;#_____)5`2"0AH(````.F@_____R54$@D(:"@```#I -XMD/____\E6!()"&@P````Z8#_____)5P2"0AH.````.EP_____R5@$@D(:$`` -XM``#I8/____\E9!()"&A(````Z5#_____)6@2"0AH4````.E`_____R5L$@D( -XM:%@```#I,/____\E`2"0AH0`$``.E@_?___R7D$@D(:$@!``#I4/W___\EZ!() -XM"&A0`0``Z4#]____)>P2"0AH6`$``.DP_?___R7P$@D(:&`!``#I(/W___\E -XM]!()"&AH`0``Z1#]____)?@2"0AH<`$``.D`_?___R7\$@D(:'@!``#I\/S_ -XM__\E`!,)"&B``0``Z>#\____)003"0AHB`$``.G0_/___R4($PD(:)`!``#I -XMP/S___\E#!,)"&B8`0``Z;#\____)1`3"0AHH`$``.F@_/___R44$PD(:*@! -XM``#ID/S___\E&!,)"&BP`0``Z8#\____)1P3"0AHN`$``.EP_/___R4@$PD( -XM:,`!``#I8/S___\E)!,)"&C(`0``Z5#\____)2@3"0AHT`$``.E`_/___R4L -XM$PD(:-@!``#I,/S___\E,!,)"&C@`0``Z2#\____)303"0AHZ`$``.D0_/__ -XM_R4X$PD(:/`!``#I`/S___\E/!,)"&CX`0``Z?#[____)4`3"0AH``(``.G@ -XM^____R5$$PD(:`@"``#IT/O___\E2!,)"&@0`@``Z<#[____)4P3"0AH&`(` -XM`.FP^____R50$PD(:"`"``#IH/O___\E5!,)"&@H`@``Z9#[____)5@3"0AH -XM,`(``.F`^____R5<$PD(:#@"``#I!,)"&AP`@``Z0#[ -XM____)7P3"0AH>`(``.GP^O___R6`$PD(:(`"``#IX/K___\EA!,)"&B(`@`` -XMZ=#Z____)8@3"0AHD`(``.G`^O___R6,$PD(:)@"``#IL/K___\ED!,)"&B@ -XM`@``Z:#Z____)903"0AHJ`(``.F0^O___R68$PD(:+`"``#I@/K___\EG!,) -XM"&BX`@``Z7#Z____):`3"0AHP`(``.E@^O___R6D$PD(:,@"``#I4/K___\E -XMJ!,)"&C0`@``Z4#Z____):P3"0AHV`(``.DP^O___R6P$PD(:.`"``#I(/K_ -XM__\EM!,)"&CH`@``Z1#Z____);@3"0AH\`(``.D`^O___R6\$PD(:/@"``#I -XM\/G___\EP!,)"&@``P``Z>#Y____)<03"0AH"`,``.G0^?___R7($PD(:!`# -XM``#IP/G___\ES!,)"&@8`P``Z;#Y____)=`3"0AH(`,``.F@^?___R74$PD( -XM:"@#``#ID/G___\EV!,)"&@P`P``Z8#Y____)=P3"0AH.`,``.EP^?___R7@ -XM$PD(:$`#``#I8/G___\EY!,)"&A(`P``Z5#Y____)>@3"0AH4`,``.E`^?__ -XM_R7L$PD(:%@#``#I,/G___\E\!,)"&A@`P``Z2#Y____)?03"0AH:`,``.D0 -XM^?___R7X$PD(:'`#``#I`/G___\E_!,)"&AX`P``Z?#X____)0`4"0AH@`,` -XM`.G@^/___R4$%`D(:(@#``#IT/C___\E"!0)"&B0`P``Z<#X____)0P4"0AH -XMF`,``.FP^/___R40%`D(:*`#``#IH/C___\E%!0)"&BH`P``Z9#X____)1@4 -XM"0AHL`,``.F`^/___R4<%`D(:+@#``#I#V__\```````````````!5B>564X/L$(/D -XM\(M=!(G1C72=#(7;B35H(0D(?C:+10B%P'0OHP`0"0@/MA"$TG0C@\`!ZPH/ -XMMA"#P`&$TG04@/HO=?&C`!`)"`^V$(/``832=>RX4!$)"(7`=#2)#"3HG_[_ -XM_\<$)!R*"`CHD_[__^A*]O__C44(B70D"(E$)`2)'"3H5P\``(D$).AC_?__ -XMZ'[X___KS9"0D)"0D)"058GE@^P(@#T@(0D(`'0,ZQR#P`2C"!`)"/_2H0@0 -XM"0B+$(72=>O&!2`A"0@!R<.058GE@^P(H3`2"0B%P'02N`````"%P'0)QP0D -XM,!()"/_0R<.0D)"0D)"0D)"0D)"0H0PA"0BZ_____U6)Y8M-#(7`=`,/OQ") -XM$:$,(0D(NO____^%P'0$#[]0`HM%$(D0BT4(BT!(*0$QP%W#C70F`%6)Y8M% -XM"(M5#(M-%(M`$(/Z`8M`)'0Y6#[!BA$"$)",=$)`B`````QT0D!`$```#' -XM!"2,B@@(B40D#.AI^___R<.-=@!5B>6#[!B+10B)7?2)=?B)??R+0!"+4"2) -XM5?"+<%R+11"%P'0;BYH0`@``]L,$=46+7?0QP(MU^(M]_(GL7<.0BTWPBX$0 -XM`@``J`)TXX/@_8F!$`(``(ET)`3'!"0UBP@(Z,[Y__^A!"$)"(D$).CA]___ -XMZ[NX!0```+\OBP@(_(G!\Z9UJHM%\(/+`HF8$`(``(M5#(E4)`3KOY"-="8` -XM53'2B>6#[`B+10B+0!"+0"2+B*0!``"%R74@*A -XM'"$)"(D4),=$)`@`````@^@!B40D!.@(^?__H0PA"0B)!"3H6_;__Z$,(0D( -XMQT0D!`````")!"3H)O?__\=$)`@`````QT0D!`````")-"3H*O[__^BY]/__ -XMC8,$`0``B40D",=$)`01````QP0D`````.A+^?__QT0D!!(```#'!"0````` -XMZ-?S__^+@Z0!``"%P'0Y@Z,0`@``YS'2BUWTB="+=?B+??R)[%W#D(U%Q(E$ -XM)`C'1"0$$0```,<$)`````#H^?C__S'2Z]&0QT0D"`$```"+1B"+0`B)-"2) -XM1"0$Z);]__^A#"$)",=$)`0!````B00DZ&7V__^+1<")?"0(B40D!*$,(0D( -XMB00DZ`WX___'1"0$`0```(DT).CY_?__C47PB40D$,=$)`P`````QT0D"``` -XM``#'1"0$`0```(DT).AB(0``N@$```"%P`^%1?___XM=\(7;#X1R_O__BT80 -XM,-*+0"2!B!`"`````0``Z2/___^-=@"-1<2)1"0$QP0D`````.AA\O__C8,$ -XM`0``B40D",=$)`01````QP0D`````.@3^/__Z0'^__^-=@"-O"<`````58GE -XM@^PHB5WTBUT(B77XBW40B7W\BWT,B70D"(GX`T-(B40D!*$,(0D(B00DZ#+W -XM__\QTH/``70/BUWTB="+=?B+??R)[%W#BT-(B70D$(E\)`S'1"0($(L("(E$ -XM)!3'1"0$`P```(D<).@1H@``N@$```#KPXUV`(V\)P````!5B>6#[`BA#"$) -XM",=$)`0!````B00DZ!GU___)@\`!#Y3`#[;`PXUV`(V\)P````!5B>6#["B+ -XM50B)7?2)=?B)??SV@JP$```0BT(0#X64````@\`(.0(/A,,```"+#0PA"0B_ -XM_____[[_____A0(/OS&+0D"+6DB+4C0YT`^#B`````'8QT0D"``` -XM``")1"0$B0PDZ$7V__^#P`%T+:$,(0D(QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!/____^)!"3HT_C__Z$,(0D(B7PD"(ET)`2)!"3H_O7__Z$,(0D( -XMQT0D!/____^)!"3H.?3__XM=](MU^(M]_(/``0^4P(GL70^VP,.-0O_I`" -XM`T(0BT`XA<`/E<"$P'7___S'`R<.)]HV\)P````!5B>6#[`B+10B+0!"+0"0%!`$``(D$).A8 -XM]/__/98```!T378Q/2P!``"-M@````!T/G9,/5@"``"-M"8`````="X]L`0` -XM`'4^BT4,QP"P!```,<#)PX/X2W05=C>#^&YT#CV&````=1Z-M"8`````BT4, -XMQP!8`@``,<#)PXUV`#W(````=.F+10S'`(`E```QP,G#@_@R=>[KU9"-="8` -XM58GE4X/L%(M-"(M5#(M!$(72BU@D=5F+51"%T@^%S@```(N##`(``(7`#X20 -XM````BX.@`0``QX,,`@```````(7`#X0[`0``QT0D"(#*!`C'1"0$`0```(D$ -XM).AD\O__H00A"0B)!"3HI_'__^M1D(/J`70+Z+KP__^-M@````#V@:P$```1 -XM=$R+DY@!``"X`0```(72=%*+11"%P`^$E````,=$)`B`R@0(QT0D!`$```") -XM%"3H"?+__Y"-="8`H00A"0B)!"3H1_'__X/$%#'`6UW#BT40A?KB(GV58GE4X/L -XM%(M%"(M5#(M`$(72BU@D=#"#Z@%T!>BC[O__BX.0`0``A<`/A'(!``#'1"0( -XM@,H$",=$)`0!````B00DZ`WP__^+@X@!``"%P'1GH:`4"0B%P'5'BQ4$(0D( -XMBT((@^@!A<")0@@/B%\!``"+`L8`#8/``8D"QT0D"(#*!`C'1"0$`0```(N# -XMB`$``(D$).B[[___@\04,6+0"2# -XMB!`"```@QX"D`0```0```%W#B?:A?"$)"%6)Y8M`)(.($`(``$!=PXVV```` -XM`(V_`````*%\(0D(58GEBT`D@8@0`@``@````,>`I`$```\```!=P^L-D)"0 -XMD)"0D)"0D)"0D*%\(0D(58GEBT`D@8@0`@````$``%W#B?:-O"<`````58GE -XM4XG3@^P4B40D"*$0(0D(QT0D!$F+"`B)!"3H4NG__X7;=!FA$"$)"(E<)`C' -XM1"0$28L("(D$).@UZ?__Z-#M__^+`(D$).@FZ___QT0D!'WI"`B)1"0(H1`A -XM"0B)!"3H#>G__\<$)`$```#H\>___XVV`````(V\)P````!5B>6#[#B)7?2- -XM7=R)=?B)UHE]_(G'C47DB4W[__XM=](MU^(M]_(GL7<.0C;0F`````%6)Y8/L&(EU^(MU#(E]_(M]"(E= -XM](7VBU\D='8QTKG@L00(N`$```#H@____X7`="?'1"0(38L(",=$)`0%```` -XMB30DZ/>8```QP(M=](MU^(M]_(GL7<,QTKD`L@0(L`+H2O___X7`=<"Q!`BP`>CH_O__ -XMAC__X7` -XM==6-D\`!``"Y`+($"+`"Z*?^__^%P'6_QT0D!`\```#'!"1L(0D(Z+/H__^% -XMP'6GC9/8`0``N2"R!`BP#^AY_O__A575E-1@^PXBP&+202)1=2A)"$)"(E-T(/``:,D -XM(0D(@^@!#X5F`P``BT70BQC'1"0$+P```(D<).AJZO__AB35\(0D(QT0D!!0"``#'!"0! -XM````Z"GL__^%P(G'#X3J`@``B7XDQP0D`````.BP[?__A<`/A7@!``"#CE0( -XM```0]H<1`@```@^$>P$``(V'!`$``(E$)`3'!"0`````Z)[F__^#P`$/A*&8`@``&"L!`C'AF0(``#@JP0(QX9H -XM"````````,>&;`@``,"K!`C'AG`(``#@I00(QX9T"```L*H$",>&>`@``)"Y -XM!`C'AGP(``!PKP0(QX:`"```L-`$",>&B`@``("J!`C'AH0(```@I@0(QX:0 -XM"````*H$",>&E`@```````#'AHP(``#0S@0(QX:8"```8*<$",>&G`@``,"F -XM!`C'AJ`(``!`PP0(QX:D"```P*<$",>&J`@``)"F!`C'!"1MBP@(Z`?F__^% -XMP(E%W`^$G0$``(U%Y(L>B40D"(M%W,=$)`0!````B00DZ-#K__^+1>2#^/\/ -XMA%`!``"%P`^%J````(M%W(E<)`C'1"0$E(L("(E$)`RA$"$)"(D$).@,Y?__ -XMQP0D`0```.CPZ___@8\0`@````(``/:'$0(```(/A87^___'1"0(`````,=$ -XM)`0`````QP0D6HL(".@MZ___@_C_B<,/A'W^__^-AP0!``")1"0$B1PDZ`#E -XM__^#P`%T#8D<).C3Z?__Z5G^__^+!KICBP@(Z![[___'!"0!````Z';K__^) -XM]HM%W(D$).B9Y?__A<")1ER)1F`/A-0```"-1>B)1"0,C47LQT0D$`````") -XM1"0(QT0D!`````#'!"0`````Z$T3``"%P'5+BT7LQT0D#`````#'1"0(```` -XM`,=$)`0`````B49(B49$BT7HB48\B48XH00A"0B)!"3H]N/__\=$)`0````` -XMB30DZ%+[__^%P'1NQP0D`0```.C6ZO__B?:A$"$)"(E<)`C'1"0$=(L("(D$ -XM).C+X___QP0D`0```.BOZO__QT7____Z-3E__^+1=")-"2)1"0(BT74 -XMB40D!.C*=P``BUXDQT0D!`````#'!"0!````B478C8.H`0``B40D".CJZ/__ -XMC8/``0``B40D",=$)`0`````QP0D`@```.C,Z/__C8/8`0``@]H<0`@```G5=BX>D`0``A?__Z$$(0D(B00DZ(CE___K@9"058GE5U93@>PL!0``BU4(BTT4BT(0BT`D -XMB87P^O__N---8A#W;12+113!^@;!^!\IPFG"Z`,``(F5Z/K__RG!:<'H`P`` -XM]D40`8F%[/K__P^%C@4``(N5\/K__XN"$`(``*A`#X5:!0``J:`!``!T&:@@ -XM#X6,!0``A,`/B)4%``#VQ`$/A5\"``"+310QTH7)=!6+E>CZ__^+C>SZ__^) -XM5>"-5>")3>2+10B+0!")A?SZ__^+2"2X(````(F-`/O___:!$0(```(/A'`! -XM``")]L>$A03___\`````@^@!=?"%TG1'@XT(____`8E4)!"-E0C____'1"0, -XM`````,=$)`@`````B50D!,<$)`$```#H#^+__X/X_P^$4P$``(7`NP0````/ -XMA#\!``#V11`PD`^%GP,``,>%^/K__P````"+C?SZ__^X(````(N5_/K__X/! -XM"(F-Y/K___:"5`@``"`/A.X"``"%P`^%O````(N-_/K__[`!@XT(____`8MQ -XM"#NUY/K__W1(,?^0C70F`(M%"/:`KP0```%T*(N8@````+@!````BTL$B+-CNUY/K__W7"C4%^/K__P````#H=.3__[L#````@S@$=!W'1"0( -XM=+P("+,"QT0D!`4```"+10B)!"3H29```(N%^/K__X7`#X6``0``@_L$=K#H -XMY>'__XN%]/K__XN-\/K__XM5#(E"%#'`B4H0QT(("0```('$+`4``%M>7UW# -XMBY7P^O__@.3^C4WHB8(0`@``C47LB40D#(U%\(E,)!")1"0(QT0D!`$```"+ -XM50B)%"3H00X``(7`#X7_`@``BUWHA=L/A%?]__^-18B+=>R)A0C___^-1;2) -XMA0S___^+1?"-G0C[__^)78C'1;0`````QT6\`````,=%D`````")1"0,QT0D -XM"+.+"`C'1"0$``0``(D<).@0Y/__B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,IV8E-D(V-"/___\=$)`@`````B4PD!(M% -XM"(D$).CNI```A<`/A%8"``"+10S'0`@+````,<#I\O[__Y"-="8`BU4,,<#' -XM0@@#````@<0L!0``6UY?7<.+10S'0`@"````@<0L!0``,7UW#C46TB40D",=$)`01````QP0D`````.@DY/__ -XMZ6#^___'1"0(_P```(N%\/K__\<$)`````")1"0$Z('F__^#^/^)P@^$_?W_ -XM_X7`#X2B````BTT(]H&L!````70FBX7P^O__@'P"_PIT&8N-`/O__P^V@10! -XM``"+C?#Z__^(!!&#P@&+A0#[__\QV\>```$```````")E?3Z___ITOW__XU% -XMM(E$)`3'!"0`````Z+S=__^%P`^%1OS___9%$!!U=8N%`/O__P5<`0``B40D -XM",=$)`01````QP0D`````.A;X___QX7X^O__`0```.D8_/__BY4`^___NP$` -XM``"+@@`!``"#P`&#^#&)@@`!```/CUS]__\/MH(4`0``,-N+C?#Z__^(`<>% -XM]/K__P$```#I//W__XM%M(E%B(M%N(%EB/_Y__^)18R+1;R)19"+1<")192+ -XM1<2!991_____B468BT7(B46*`@("`=.GWPH"```!U -XM!L'J$(/!`@#2@]D#*=F-E0C___^)39#'1"0(`````(E4)`2+30B)#"3H)J(` -XM`.D[_?__D%6)Y8/L&(M%#(E=^(EU_(D$).A=X/__A<")PW01@_C_=`R)!"3H -XMZN/__X7`=1(QP(M=^(MU_(GL7<.-M@````"-<`&)-"3H>>+__XM5$(7`B0)T -XM'(ET)`B)7"0$B00DZ-#A__^+7?@QP(MU_(GL7C;0F`````(V\)P````!5B>53B<.#[`2+@(@! -XM``"%P'02B00DZ*GB___'@X@!````````BX.,`0``A+__\>#D`$```````"+@Y0!``"%P'02 -XMB00DZ%7B___'@Y0!````````BX.8`0``A6#[!B)=?B+=0B)??PQ_XE=](M>)/:#$`(``!AU$(GXBUWT -XMBW7XBWW\B>Q=PY")-"3HR`X``(7`#Y7`#[;XBX,0`@``)1`"```]$`(``'0Y -XMBX,0`@``)0@"```]"`(``'0YC8,$`0``B40D",=$)`01````QP0D`````.AB -XMW___@Z,0`@``Y^N5B?#HOO[__X7`=+R_`0```.NUBT8DZ`O^___KO8GVC;PG -XM`````%6)Y8/L2(72B77\B<:)7?AT'L=$)`@!````B50D!(D$).CNWO__BUWX -XMBW7\B>Q=PXU=T(E,)`R)'"3'1"0(^I8(",=$)`0H````Z`7>__^)7"0$B30D -XMQT0D"`$```#HL=[__XM=^(MU_(GL7<.-=@!5B>575E.#["R+=0B+7A"+0R2) -XM1>2`NU0(````#XB^`0``#[95#(/B`8G7#X0_`0``BX:L!```J`0/A5$!``#V -XM10P"=`BH"`^%0P$``*@$D'0)@^#[B8:L!```J`AT:X/@]XF&K`0``(U#"#D& -XM="S'1"0(`````(M&2`-&-(E$)`2A#"$)"(D$).B6W?__H0PA"0B)!"3HN=O_ -XM_\=$)`@`````BT8T`T9(@^@!B40D!*$,(0D(B00DZ&?=__^A#"$)"(D$).BZ -XMVO__B?B$P`^$S````(M&$(M8)(N#$`(``*@(#X75!```]L0"#X4Q`P``BU7D -XM@XH0`@``"?:&K`0```$/A(@```"+1>2+D(P!``"%TG1[]H8@`@```0^$`@4` -XM`(N&&`(``(T$0,'@`@-&$(M`.(/H`8D4)(E$)`C'1"0$`````.@YV/__QT0D -XM"(#*!`C'1"0$`0```(D$).@AV___@\0L,)-"3'1"0('(P(",=$)`0#````Z&^'``"#Q"RX -XM`0```%M>7UW#B?:)'"3H^/S__X7`#X7``P``@:-4"```?____^DC_O__D,<$ -XM)`$```#HR-W__X7`=*G'1"0(`````,=$)`0_````B30DZ!B0``"%P`^%@`,` -XM`/:&]`,```$/A"P$``"+ANP#``"-!$#!X`(#1A"+6#C'!"1MBP@(Z.G6__\Q -XMR8G:B47HN&V+"`CH)/W__\<$)/2+"`CHS-;__XE%[/:&(`(```$/A/<#``"+ -XMAA@"``"-!$#!X`(#1A"+2#@QTKCTBP@(Z.K\___'!"3ZBP@(Z)+6__^)1?#V -XMAF`!```!#X2R`P``BX98`0``C01`P>`"`T80BT@X,=*X^HL(".BP_/__Z%_: -XM___'``````"A`"$)"(D<)(E$)`BA!"$)"(E$)`3H']?__X7`#X2:`P``BTWH -XMAR%T@^$UP,``(M%\(7`#X2[`P``B70D!(M&$(V?7`$``(D$ -XM).B][/__Z,S9___HM]C__XUV`.B_VO__H0PA"0C'1"0$`0```(D$).CZU___ -XMH0PA"0C'1"0$`0```(D$).CEV/__QX<,`@```0```,=$)`0`````QP0D$@`` -XM`.CWVO__B5PD!,<$)`````#H1]7__X7`#X75`@``BX<$`0``]L0"=`J!CUP! -XM`````@``]L0$=`J!CUP!````!```@8]H`0``@````,:'=P$``/_&AW4!``#_ -XMQH=V`0``_\:'>P$``/_&AWH!``#_QH=^`0``_XDT).@+"@``A<`/A?4!``#I -XMK@$``(V#C`$``(E$)`C'1"0$18L("(DT).BT^/__C8.8`0``B40D",=$)`3@ -XMBP@(B30DZ)KX__^-@Y0!``")1"0(QT0D!.6+"`B)-"3H@/C__XV#B`$``(E$ -XM)`C'1"0$N8P("(DT).AF^/__C8.0`0``B40D",=$)`27C0@(B30DZ$SX__^+ -XM@Y@!``"%P`^$D@$``(N3E`$``(72#X1R`0``BX,$`0``BY,(`0``B8,P`0`` -XMBX,,`0``@\H#@8LP`0````$``(F#.`$``(N#$`$``(F3-`$``(F#/`$``(N# -XM%`$``(&+/`$``,\%``")@T`!``"+@Q@!``")@T0!``"+@QP!``")@T@!``"+ -XM@R`!``")@TP!``"+@R0!``")@U`!``"+@R@!``")@U0!``"+@RP!``")@U@! -XM``"!PS`!``")7"0(QT0D!!$```#'!"0`````Z$O9__^%P`^$7UW#@\0L -XMN`$```!;7E]=PX'#,`$``.NTO__Z1C\__^)7"0,QT0D"`*,"`C'1"0$ -XM`P```(DT).@9@@``N`$```#I8?K__Y"0D)"0D)"0D)"0D)"0D%6)Y8/L"*&@ -XM%`D(BU4(A"N+`8@0@\`!#[;2B0')B=## -XMH00A"0B)%"2)1"0$Z![2___)B<*)T,.-="8`.T$8?`6`^@IURXD4)(E,)`3H -XMOM?__XG"Z\>-M@````!5B>575E.#["R+=1B%]G0&QP8!````C47LB40D",=$ -XM)`1H=`A`QP0D`@```.BSTO__@\`!#X2&`0``#[=][`^W1>Z%_P^4PX7`B47< -XM#Y1%XXM%#(7`=!R$VP^$Y````(7V=`;'!@````"#Q"PQP%M>7UW#A-L/A+D` -XM``#'!"1MBP@(Z`W1__^%P'05A-L/A8P!``"`?>,`#X51`0``C78`A?]U!&:_ -XM&`"+7=R%VW4'QT7<4````,<$)/2+"`CHTM#__X7`=!K'1"0("@```,=$)`0` -XM````B00DZ*;4__^)Q\<$)/J+"`CHJ-#__X7`=!O'1"0("@```,=$)`0````` -XMB00DZ'S4__^)1=R+31"%R70%BU40B3J+512%T@^$1____XM%%(M5W(D0@\0L -XM,,!Z7G^__^+@A@"``"-!$#! -XMX`(#0A"+0#CI>____\<$)&R,"`CHRM;__X7`>#B)1=SIFO[__XG"BX!8`0`` -XMC01`P>`"`T(0BT`XZ6?____'!"1'@QP(/$<%M>7<.-M"8`````#[=%H(D<)"7O_P`` -XMB40D!.@_U?__A -XM7<.%]G0FB5PD#,=$)`BXC0@(QT0D!`4```")-"3H^'T``+@!````Z6#___^# -XMQ'"X`0```%M>7<.)]H7V=.Z)7"0,B30DQT0D")^M"`C'1"0$!0```.C`?0`` -XM@\1PN`$```!;7EW#C70F`%6)Y5.#[!2+70B+50R+0Q"#^AZ+2"1T>WX6@_H_ -XM="&#^DIT-8/$%#'`6UW#C70F`(/Z"'0+@_H8=>J-M@````"!B%0(``"````` -XM,<"#HZP$``#S@\046UW#BT44BP"%P'56@XD0`@``!(M#((7`=+2+0`B%P'2M -XMB1PDQT0D"`$```")1"0$Z&77__^#Q!0QP%M=PXM%%(L0B1PDB4PD!(72#Y3` -XM#[;`B40D".CP_?__@\04,Q=Z9_^__^+7?0QP(MU^(M]_(GL7<-5B>53@^P$BT4(BX!$`0``A@`````B?:+5>B+@B"."`B)!"3H$\__ -XM_X7`B<B+@CB."`B#PA")5>B%P`^%3?___XL=2(\("(7;#X3+````QT7D -XM`````(MUY(N&0(\("(D$).A+SO__A<")1?`/A)$```"#P`$/A(@````/MH9, -XMCP@(OR`0"0@Y!2`0"0AT"X/'"#D'=?F%_W1IBT7DBU7PBX!(CP@(B470B10D -XMZ*'1__^+==")-"2)P^B4T?__C5<$QT0D(`8```#'1"0<`@```,=$)!@!```` -XMB50D%(E<)!"+5?")1"0(B70D!(E4)`R+=0B)-"3HX\\``(7`#X5E`0``BU7D -XMBX)8CP@(@\(0B57DA<`/A3S___^+#6B/"`B%R0^$30$``,=%X`````#ID0`` -XM`(M5X(MU[(N2:(\("(E5U(DT).@'T?__B478BT7$B00DZ/G0__^+5=2)%"2) -XMP^CLT/__QT0D(`8```#'1"0<`@```(MUV(ET)!B+5>R)7"00B50D%(MUQ(E$ -XM)`B)="0,BT74B40D!(M5"(D4).@YSP``A<`/A;L```"0BW7@BX9XCP@(@\80 -XMB77@A<`/A+````"+=>"+AF"/"`B)!"3HW,S__X7`B47$=-&#^/]TS/R_C8P( -XM"+D"````B<;SIG2[BT7@BX!DCP@(A<")1>P/A2W___^+=<2+5>")-"2+NFB/ -XM"`CH-]#__XD\)(G#Z"W0___'1"0@!@```,=$)!P"````QT0D&`````#'1"04 -XM`````(E<)!")="0,B40D"(E\)`2+10B)!"3H?LX``(7`#X1&____@\1____XL3A=)T!HM#!(E"!(M#!(D0B1PDZ`;.__^+GD`!``"%VW7-C88L -XM`0``.88L`0``=`Z)10B#Q!!;7EWI//___X/$$%M>7<.0C70F`%6)Y5.#[`2+ -XM0!"+D$`!``"%TG1*,=L/MD(0@^@Q/`AW#P^VP/\DA;"/"`B)TXUV`(L2A=)U -XMX(7;="2+$X72=`:+0P2)0@2+0P2)$(U#"(D$).C:_O__B1PDZ';-__^#Q`1; -XM7QD(0->N8QD(0-(UT)@#KCHVT)@````"-O"<`````58GE@^P8QT0D!#P` -XM``")7?2)=?B+=12)??S'!"0!````Z-[*__^%P(G##X2#````A?:)QXEP#'47 -XMBT40B4,0B?B+7?2+=?B+??R)[%W#B?:)-"3H+,S__X7`B4,(=":+30R%R733 -XMBU40A=)TS(M5$(D$)(E4)`B+50R)5"0$Z#',___KM(M5",=$)`@`````QT0D -XM!`4```")%"3H<'4``(M#"(7`=;B)'"0Q_^ASS/__ZXR+10@Q_\=$)`@````` -XMQT0D!`4```")!"3H0'4``.EJ____C70F`(V\)P````!5B>564X/L,(M="(U% -XM](MU&(E$)!"-1?")1"0,QT0D"`$```"+10R)'"2)1"0$Z*U```"%P'0,@\0P -XMN`$```!;7EW#BT7TB1PDQT0D"`````#'1"0$`````(E$)`SHOO[__X7`B<-T -XMSXM%](7`="R+512%TG1,BU7PBT,(`540BU44B50D"(M5$(D$)(E4)`3H/\O_ -XM_XM%%(E#$(U6"(D3BT8,B4,$.U8(=!^+1@R)&(E>#(M#$`%&%(/$,%LQP%Y= -XMPRM%$(E%%.NLB5X(Z^&058GE5U93@^PLBT4,BWT(A<`/A,X"```/M@#V11@$ -XMB$7K#X4-`0``]D48`@^%^0```,=%[``````/ME7K,N+1Q"+L$`!``"%]G4/Z9`"``"+-H7V#X2&`@``.E80=?&% -XM]@^$>0(``(7)B?8/A(X!``#V11@!#X2'````@$X8`8M5$(M-%(L:.QEV$^D@ -XM`0``BT44@\,!.1@/@A(!``")="00QT0D#`````#'1"0(`````(E<)`2)/"3H -XM+?[__X7`=,Z-1@B)!"3HOOO__[@!````QT84`````,9&&`"#Q"Q;7E]=P_9% -XM&`$/A(X!``")^.AE_/__QT7L`0```.GQ_O__BTT0,<"+$8M-%#L1#X0E`0`` -XMBTT0B70D$(E$)`R+002)5"0$B3PDB40D".BY_?__ALQQT7L`````,=% -XM\`````#I0?W__\=$)`0<````QP0D`0```.@;QO__A<`/A)````")Q@^V1>N( -XM1A"-1@B)1@B)1@R+5Q"+@D`!``"%P(D&=`R+@D`!``")<`2+5Q")LD`!``"+ -XM1Q`%0`$``(E&!.DR_?__,<"#?>P`#Y3`B47P#[:4DS0$``"(5>L/MM+IP_S_ -XM_XM5$(M-%(L".P$/A4W___^+=Q`QR<=%[`````#'1?``````@<8D`0``Z=/\ -XM___'1"0(`````,=$)`0%````B3PDZ'=P``"X`0```.DO_?__D)"0D)"0D)"0 -XMD)"0D%6)Y5=64X/L/(M=%(MU"(M]#(7;#X2D````BT40BPB)3?")RCD/=FOI -XMA0```(UV`(-&9`&Z'X7K48M-\(G(]^+!Z@5KTF0YT74_BT80]H!4"```!'5< -XMQT0D#`$```#'1"0(`````,=$)`0`````B30DZ!HT``"%P'4,BT80]H!4"``` -XM!'4LBTWPC5'_B57P.1=W'XE4)`2)-"3H040``(7`=(V[`0```(/$/(G86UY? -XM7<,QVX/$/(G86UY?7<.-1?")1"0$B30DZ(,]``"%P'72BTT0BQ$[5?`/@M4` -XM``"0#X23````B57P.Q=W=XUV`.DF`P``@T9D`;H?A>M1BTWPB+1A#V@%0(```$#X7\`@``QT0D#`$```#'1"0(`````,=$)`0````` -XMB30DZ%$S``"%P'40BT80]H!4"```!`^%R`(``(M-\(U1_XE5\#D7#X.W`@`` -XMB50D!(DT).AP0P``ADJ____C47HC5WDB40D$(E<)`S'1"0(`0```(E4 -XM)`2)-"3H=3H``(7`#X4`____BU40BT($.T7H#X-%!0``BQ*+!SG0#X22`P`` -XMBU\$QT7@`````(7;B5W<#X20````C57DQT0D$`````")5"0,QT0D"`$```") -XM1"0$B30DZ!HZ``"%P`^%I?[__X7V#X3^`@``BUX0A=L/A/,"``#V@U4(```! -XM#X7F`@``BT7"+0WB)1>R!BU0(`````0`` -XMBUW")!"3HIL3__XM-$(L1C47HC5WDB40D$(E<)`S' -XM1"0(`0```(E4)`2)-"3HBSD``(7`#X57`0``BU7HA=(/A)@```"+11"+0`2) -XM1=2-0O\Y1=0/A(,```"+3=R-1!'_*T74.<$/AQ8$``"+3=R%R0^%MP,``(7V -XM=!2+7A"%VW0-]H-5"````0^$*00``(7`QT7L`````,=%X``````/A08%``"+ -XM1>2+7>`K5=0#7=R#P`$#1=2#Z@&)5"0(B1PDB40D!.CGP___BU40BT7H`47< -XM@VW<`8M2!"E5W(M-W(E,)`R+7>")7"0(BP>)-"2)1"0$Z'0]``"%P`^%D``` -XM`(M5$(L"B47P.0=R=.E5`0``@T9D`;H?A>M1BTWPB+ -XM1A#V@%0(```$#X4K`0``QT0D#`$```#'1"0(`````,=$)`0`````B30DZ.$P -XM``"%P'40BT80]H!4"```!`^%]P```(M-\(U!_XE%\#D'#X/F````B40D!(DT -XM).@`00``AP___Z8W\__^-1>B)1"00C47DB40D#,=$)`@!````BP>) -XM-"2)1"0$Z-$W``"%P`^%7/S__X7V=':+7A"%VW1O]H-5"````75FBT<$.T-X -XM#X?4`@``BU-TB57@BT-XB47L@8M4"`````$``(M'!(E$)`B+1>2)1"0$BTW@ -XMB0PDZ&["__^+1P2)1"0,BUW@B5PD"(L'B30DB40D!.@./```A<`/A>G[__\Q -XMV^DH____QT7L`````(M'!,=%X`````"%P'2JB40D#(U%[(E$)`C'1"0$```` -XM`(DT).@/X```A<`/A*K[__^)1>"+1P3I?/___XM%W,=%[`````#'1>`````` -XM!0`!```/A"7]__^)1"0,C47LB40D",=$)`0`````B30DZ,7?``"%P(E%X`^% -XM__S__^E8^___D(UT)@"-1>B)1"00C47DB40D#,=$)`@!````B50D!(DT).B> -XM-@``A<`/A2G[__^%]@^$NP```(M>$(7;#X2P````]H-5"````0^%HP```(M% -XMZ#E#>`^"+@(``(M3=(E5X(M#>(E%[(&+5`@````!``"+1P2%P`^%G@$``(M= -XM$(M%Y(M;!(/``8E=V(M5V(M=X`-?!`-%V/?2`U7HB40D!(D<)(E4)`CH#<'_ -XM_XM'!(M5$`-%Z(/H`2M"!(E$)`R+3>")3"0(BP>)-"2)1"0$Z*$Z``"%P`^% -XMO?W__S';Z;O]__^!H%0(``#__O__Z6OZ__^+1>C'1>P`````QT7@`````(7` -XM#X1F____B40D#(U%[(E$)`C'1"0$`````(DT).B/W@``A<")1>`/A4#____I -XM(OK__S';A?9T>HM>$(7;='.+3>`Y2W1T:SM%[`^&6?S__XE$)`R-1>R)1"0( -XMBTW@B30DB4PD!.A'W@``A<`/A.+Y__^+71")1>"+5>B+6P2)7=3I(_S__\=$ -XM)`C4CP@(NP$```#'1"0$`P```(DT).AN:0``Z?+\__^+71"+$^GE^?__@:-4 -XM"```__[__SM#>`^'E@```(M#=(E%X(M#>(E%[(&+5`@````!``"+51"+4@2) -XM5=2+5>CIO?O__XE$)`R-0WB)1"0(BT-TB30DB40D!.BKW0``A<`/A$;Y__^) -XM0W3I`OW__XE$)`B+1>2)1"0$BTW@B0PDZ(F____I1_[__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AFW0``A<`/A`'Y__^)0W3IA?K__XE$)`R-0WB)1"0(BT-T -XMB30DB40D!.@\W0``A<`/A-?X__^)0W3I0/___XE$)`R-0WB)1"0(BT-TB30D -XMB40D!.@2W0``A<`/A*WX__^)0W3IJ/W__XE$)`R-1>R)1"0(QT0D!`````") -XM-"3HY]P``(7`#X6@_O__Z7WX__^0D)"0D)"0D)"058GE@^P8BU4(]H)$`@`` -XM`70DBX(\`@``C01`P>`"`T(0BU`XA=*Z`0````^4P(3`=!C)B=##BX(\`@`` -XMN@$```"%P`^4P(3`=>CHY;O__\<``````,=$)`0&````BT44B00DZ+RY__^% -XMP'4DQT0D"`$```#'1"0$`@```(M%%(D$).C]M___N@$```#)B=##Z)^[__^# -XM."-T%HVV`````.B/N___,=*#."-UAHUT)@#)N@(```")T,.-M"8`````58GE -XM@^P8B5WXBUT(B77\BW4,BX.D````AQ=PXD<),=$ -XM)`@`````QT0D!`4```#H`&<``(M=^(MU_(GL7<.-M@````!5B>6#[!B+30B+ -XM41R%TG0.BT$@]D`80'0%@SH!?@3),<##BT4,ABX48VO__A%#-K__P````"%P`^$/@$``(M%&(/@`H/X`1G2@>+X`P``@<()`@`` -XMB84(VO__B94`"`T(0BW`XZ*6X___'```` -XM``#'1"0(`````,=$)`0`````BY5`VO__B10DZ$&Z__^%P(F%*-K__P^(L@4` -XM`(V=C/[__S'_B5PD!(M%"(D$).A8)P$`QT0D&`````#'1"04`````,=$)!`` -XM````QT0D#`````#'1"0(`````,=$)`0`````B1PDZ!`R`@"`/DX/A`<%``") -XM-"3HT[O__XET)`B)7"0$B40D#(M5"(D4).B(-0$`A<`/A*`#``"`O0;:__\` -XM#X2&`0``N`$```"!Q!PF``!;7E]=PXUV`("]!]K__P`/A#,#``"%VP^%*P,` -XM`(N5$-K___9"6`$/A?0&``"+E1#:__^+19`[0D0/A`D#``#V11@0N"R1"`AU -XM!;ATD0@(B40D#(N%0-K__\=$)`0#````B40D"(M5"(D4).AX:```N`$```#I -XM@/___XM5"/:"^`(```$/A#X#``"+@O`"``"-!$#!X`(#0A"+6#B%VP^5P(3` -XM#X1:_?__]D48$+ATD`@(=06XJ)`("(E$)`C'1"0$`P```(M5"(D4).@(8P`` -XM@<0<)@``N`$```!;7E]=PXM5&(F=0-K__\>%&-K__P````#&A0?:__\`@^($ -XMB94`VO__#Y2%!MK__^D%_?__B<*+@*`$``"-!$#!X`(#0A"+4#B%T@^4P.D1 -XM_?__BX4DVO__B00DZ#&W__^%P`^%D@D``(N%.-K__X7`="Z+10B%P'09BU4( -XMBT(0A#91@#@WT8`0^$E@4``(U%Z(E$)`B+A4#:__^)1"0$ -XMBU4(B10DZ.A4``"+G0S:__^%VXF%(-K__P^%+00``,=$)`@`````QT0D!$R2 -XM"`B+10B-O4SZ__^)!"3H,U<``(M5[(E4)!2+5?")5"00BY4@VO__B40D",=$ -XM)`1`!```B3PDB50D#.BKM?__B?F)PXM%"(MP.#GS#X-5!@``B4PD#,=$)`B? -XMK0@(QT0D!`0```"+10B)!"3HUF```(M5Z#'`A=(/A.O\__^+10B%P'09BU4( -XMBT(0AWZ__^-E7#___^) -XM5"0$BX5`VO__B00DZ%"R__^%P`^%F`0``(N5$-K__X!*6`&+A7#___^)0CR+ -XMA73___^)0D"+19")0D3I&/W__^B\LO__@S@"#X12_/__B[5`VO__QX4PVO__ -XM`````,>%.-K__P````#'A23:________@[THVO___W0.BY4HVO__B10DZ`BS -XM__^#O23:____=!R+A3#:__^)!"3HL;#__XN5)-K__XD4).CCLO__A?9T'\=$ -XM)`R?K0@(B70D",=$)`0%````BT4(B00DZ#QC``"+O3C:__^%_P^$+OK__XMU -XM"(7V=!F+50B+0A"%P'0/BY4XVO__.5!T#X0&!0``BX4XVO__B00DZ`2U___I -XM^_G__X7_#X13`0``BT4(A<`/A*(#``"+10B+6!"%VP^$E`,``/:#50@```$/ -XMA8<#``"+A0#___^+`(M`"(U$`#([0W@/A[\%``"+4W2)E3C:__^+0WB)1>2! -XMBU0(`````0``BX4`____BXTXVO__BQ"#P0&+`@^V$(32#X3Y!```BYTXVO__ -XMC4@!QX4TVO__`````.L@@/HO#X17`0``#[9!_X@##[81@\,!@\$!A-(/A,@! -XM``"`^B5UVX`Y)73?Q@,E@\,!Z]>#O0S:__\!=$+HS:[__XU=T,=%V`$```#' -XM1=P`````B5PD!(M5"(D4).CI*@``A<`/A0[Y__^-1=C'1=0`````B44,B5T0 -XMZ>OZ__^+C0C:__^X>)(("(7)=06XI)((",=$)`@`````B40D!.ES^___BX5P -XM____.T(\#X4/^?__BX5T____.T)`#X4`^?__Z>GX__^-="8`BX4`____BP"+ -XM`,>%.-K__P````")A3#:__^-A1#___^)1"0$BY4PVO__B10DZ,*O__^Z`0H` -XM`(7`#X7/`@``#[>%&/___R4`\```/0"````/A'0#``#'1"0,190("(ET)`@Q -XM]L=$)`0#````BT4(B00DZ"EA``#'A23:________Z7_]__^!H%0(``#__O__ -XM,<#I&_C__XF=--K__^F>_O__BY40VO__@&)8^XN5%-K__P^W0AB$P`^)3OK_ -XM_X"]!]K__P`/A#X#``"#R$!FB4(8Z37Z___HN*___X,X#9!U#HN=`-K__X7; -XM#X5]`P``QT0D#)^M"`B+A4#:___'1"0$!0```(E$)`B+50B)%"3HBV```+@! -XM````Z9/W___&`R7&0P%DQD,"`(N%--K__X7`#X3U`@``BY4TVO__Q@(`BX4X -XMVO__B00DZ,6N__^+E33:___&`B^#P@&)E3S:__^)QX7_#X0\`@``QX4LVO__ -XM`````(D\).@'LO__A<`/A$0!``"-5>"#P`B)5"0(BY4\VO__B00DB50D!.B# -XMKO__@^@!=<^+1>`YA2S:__]]Q(F%+-K__^N\QT0D#)^M"`B+E4#:___'1"0$ -XM!0```(E4)`B+10B)!"3HPE\``(D<).@^K___N`$```#IPO;__XN5(-K__XD4 -XM).A6LO__C4[]C10'B?@YUW(0ZQJ-="8`@\`!.<)V#X/K`8`X+XUV`'7N.%.-K__P````"-1``R -XMA<`/A([\__^)1"0,C47DB40D",=$)`0`````BU4(B10DZ(O.``"%P`^$)@(` -XM`(F%.-K__XN%`/___XN-.-K__XL0@\$!Z4S\__^)/"3HL['__XN%+-K__\=$ -XM)`A:W@@(@\`!B40D#(N%.-K__P-%Y(D<)"G8B40D!.@WKO__BX4XVO__B84P -XMVO__Z0S]___'1"0(@`$``(E4)`2+E3#:__^)%"3H+*___X7`B84DVO__#XC/ -XM^O__C95,VO__QT0D"``@``")5"0$BX4HVO__B00DZ#ZQ__^#^`")QP^.EP$` -XM`#';ZP8IQW3-`<.-A4S:__\!V(E\)`B)1"0$BX4DVO__B00DZ*NH__^%P'G8 -XMB[4PVO__Z6WZ__^!H%0(``#__O__Z?GT__^+A0#___^+`(LPQX4PVO__```` -XM`,>%)-K________I._K__XN='/___^C?K___.<-T%)-K________I_/G__XN5%-K__X/@OV:) -XM0ACI\?;__XN%.-K__\8`)8G#Q@%DQD$!`,<$)$'Q"`CHVZO__XG'BX4XVO__ -XMB84\VO__Z1?]__\/MX48____N@$$``"H-@^$KO[__\=$)`S4D0@(Z?'[__^- -XMA1#___^)1"0$BY5`VO__B10DZ&^K__^%P'41#[>U&/___XGPA,`/B8$```#H -XM]:O__\<`#0```.E&_/__B40D#(U#>(E$)`B+0W2)1"0$BT4(B00DZ&G,``"% -XMP'0(B4-TZ1CZ__\Q]L>%,-K__P````#'A3C:__\`````QX4DVO_______^D- -XM^?__?!:+E2C:__^)%"3H'*S__X7`#X35]/__B[5`VO__Z>KX__^+G1S____H -XMCJ[__SG##X5L____9H'.@``/M\:)1"0$BY5`VO__B10DZ!RN__^%P`^%2O__ -XM_\=$)`BV`0``BX4___\G#C;0F`````(N"\`(``(7`#Y7`ZX&-=@!5,G"[O__B?:+@QP! -XM``"-!$#!X`(#0Q"+0#B%P`^5P(3`=____Y"-M"8`````58GE5U93@>R\"``` -XMBU4,#[="&*@@="&#X-]FB4(8B50D!(M-"(D,).BCK@``@<2\"```6UY?7<.+ -XM50R#X`%FB4(8QT0D!%P```#'!"0!````Z!ZF__^%P(F%5/?__P^$UP8``(N% -XM5/?__X!(6`+'0!0`````QT`0`````,=`2/_____'0%3_____BU4,BU((A=*) -XME5SW__\/A!@"``"+C5SW__\/M@$\+P^$)P,``#PN#X0#`P``C95L____B50D -XM!(N-7/?__XD,).@5I/__N@$```"%P`^$Z0```(M%"/:`U`(```$/A-P&``") -XMPHN`S`(``(T$0,'@`@-"$(M0.(UR`>L-A-L/A&,&``")\H/&`0^V7O^`^SIT -XM!(3;=?"-1OXYPG/?QD;_`(N%7/?__XV];/?__XE4)`S'1"0(N90(",=$)`0` -XM!```B40D$(D\).C.I/__C95L____B85@]___B%[_B50D!(D\).ASH___A)UL'_'XG_P?\? -XMB?Z)_L'N%C'_`<81UP^L_@K!_PJ#_@IW#(7V9KL`!`^%E@4``(N%5/?__X!( -XM6`&+A6S___^+E53W__^)0CR+A7#___^)0D"+18R)0D0/MX5T____)0#P```] -XM`(````^$)`(``,=$)`RXDP@(BXU8]___QT0D!`,```")3"0(BT4(B00DZ-]3 -XM``#I^@$``(MU%(/F"(UT)@#'1"0(`````,=$)`0*````BU4(B10DZ*57``"% -XMP`^$%P$``(M5#(M""(7`=!*)!"3HGZ7__XM-#,=!"`````"+50PQVXM"#(7` -XM="")!"3HP:#__XM-#(M!#(D$).ASI?__BT4,QT`,`````(N55/?___9"6$`/ -XMA24$``"+C53W__^+04R%P'05B00DZ$2E__^+A53W___'0$P`````BY54]___ -XMBT($A7UW##[9! -XM`3PO=!0\+@^%[?S__X!Y`B^)]@^%X?S__XV%;/___XE$)`2+A5SW__^)!"3H -XM]J#__S'2A<`/E,+IR_W__XM-"/:!>`$```$/A+`#``"+@7`!``"-!$#!X`(# -XM01"+0#B-G6S[__^)1"0,QT0D"+^4"`C'1"0$``0``(D<).CFH?__B1PDZ.ZB -XM__^#^/\/A-4#``")!"3HO:'__XM%#(M0"(72#X0L!```B1PDZ)>=__^+50R% -XMP(E"#`^$[@,``(M""(7`#X2^`P``BU4,A?:+4@R)E5CW__\/A#P#``"+A53W -XM__^[``0``(/`1(D$).A4G/__BU4(QT7,`````,=%X`````#'1=``````QT78 -XM`````,=%W`````#'1>0`````QD7@"HE=U(M"$(N`5`@``(/@0(/X`1G`]]"# -XMX`2)12+A53W__\QTH!(6`2-1Z``"%P'4,BY54]___BT),B47DBY58]___Z0_] -XM___'1"0(E),(",=$)`0%````BTT(B0PDZ$%)``#IG_K__XD<).BXF?__BTT, -XMA<")00@/A2S\__^+00R%P'0(B00DZ"N@___'1"0(`````,=$)`0%````BT4( -XMB00DZ/Q(``")'"3H2)O__^E2^O__9H%(&(``Z__^%P'5WBU4,9H%*&``!Z1/[__^[`0```(U][(UUZ.L1C;0F```` -XM`(M%[(7`=2:#PP&)?"00B70D#,=$)`@`````B5PD!(M%"(D$).CG$0``AR%P'0(BT7H@#@C=,N+30B)64R[`0```.GK^O__#[9``3PJ -XM=&P\+P^%8?___XM5"(&*K`0````!``"#1>@"@VWL`NL*@T7H`8/H`8E%[(M% -XM[(/X`780BU7H@#HO=>:`>@$O=>#KIX/#`8E\)!")="0,QT0D"`````")7"0$ -XMBT4(B00DZ,L0``"%P'3"Z?W^__^+50B!BJP$`````0``ZPV-=@"#1>@!@^@! -XMB47LBT7L@_@!=A.+5>B`.BIUYH!Z`2]UX.E%____@\,!B7PD$(ET)`S'1"0( -XM`````(E<)`2+10B)!"3H:1```(7`=+_IF_[__U6)Y5:)UE.#[""+6!"-5?") -XM5"0,C57WB50D"(E,)`2)!"3_DX0(``"%P'54BT7PA53BUT(#[9-#/:#X`(```$/A!P!``"+@]@"``"-!$#!X`(# -XM0Q"+0#B%P'0]#[80A-)U$.LT#[90`832C78`="F#P`$XT77NB(N(````N`$` -XM``")@Y````#&A!B(`````(V#B````%M=P_:#C`(```$/A<<```"+@X0"``"% -XMP`^$TP````^V$(32=13IQP````^V4`&$T@^$NP```(/``3C1=>T/MM$[%?P@ -XM"0A]$*$((0D(]D20-0(/A0H!``#V@Z0"```!#X3M````BX.<`@``C01`P>`" -XM`T,0BT`XA<`/E<"$P`^$D0```,'J!@^V@CR6"`C&@X@```!`"`T,0BT`XA<`/A2W___\/MM$[%?P@ -XM"0@/C4#___^A""$)"/9$D#8$#X0P____Z -XM=`.-04"(@XD```"X`@```.E8_O__C70F`%6)Y5.#[`B+70B+10R)'"2)1"0$ -XMZ.?]__^+@Y````"#Q`A;7<.-="8`C;PG`````%6)Y5=6,?93@^P,BT4(BW@0 -XMB7WPBU4(B70D!(D4).BM_?__BU4(B<.+@I````"(AUT!```/ML"-2/^#^?]T -XM)(M%\(T4=HV44%@!``"-="8`#[8#@^D!@\,!B`*#P@&#^?]U[8/&`8/'!H'^ -XM_P```'6C@\0,6UY?7<.-M"8`````58GEBT4(5XM]#%8Q]E.+2!#K#\>!'`$` -XM``````"^`0```(N9&`$``(7;="QKD1P!```53@^P4BUT,BU4(@WL(#'8%Z'R2__^+0PC_)(7H -XME0@(QT0D",N5"`C'1"0$`P```(D4).BF0```C;8`````BT,,A6# -XM["B+10S'1"00@`L%",=$)`P(````QT0D!"`0"0B(1?RAZ!`)"(E$)`B-1?B) -XM!"3H+)3__S'2A`` -XM``"+BQ0!```Y310/A]<```"-="8`BTT4`8L8`0``BY,0`0``A7UW#BY,8`0``A=(/A$?___\K112)@QP!``#I.?___XN[&`$` -XM`(N+%`$``(M5%(U$`AZ-%#@YRG-'A?]U:K@>````QX,<`0``'@```.D'____ -XMBU4(BT(0,=*`N%('``#_#X5X____BTT(QT0D!/\```")#"3H/_[__XG"Z5[_ -XM__^#^D!S!;I`````BT4(Z+;]__^Z`0```(7`#X5:____B[L8`0``ZY)KQQR+ -XMDQ`!``")1"0(:X,<`0``'(T$`HE$)`1K110@0"0C'1"0,@`L% -XM",=$)`@(````QP0D(!`)"(E$)`3HA(S__\:&4@<```"+'>@0"0B%VW0^,575E.#[&R+10B+>!"+10R%P`^$WP4``(M-%(M%%(/A0(/@08E- -XML(E%K(N'&`$``(7`="J+1;"%P`^%L04``(M%K,=%R`````#'1<0`````A<`/ -XMA#0!``"-M@````#VAU0(```@#X6F`P``QT7(`````(M-$(E,)`R+112#X#&) -XM1"0(BT4,B40D!(M5"(D4)/^7>`@``(7`#X7P`@``BTT,BT$(C5#]@_H'=R3_ -XM))40@)#X3?`@``BTT,BP&)`HM!!(E"!(M!"(E" -XM"(M!#(E"#(M!$(E"$(M!%(E"%(M!&(E"&,=%Q`````"+3:R%R0^%9`0``(M% -XM%(M5%(/@!H/B`HE%N(E5M&NW'`$``!P#MQ`!``"#?@@!#X6 -XM_?__BT4(]H`<`P```0^%S0(``(M%"(N`%`,``(7`#Y7`A,`/A!`#``"#1<@! -XM@WW(`70?BT7(NF=F9F;WZHM%R,'Z`L'X'RG"C122`=(Y57UW#QT7$`0```.G:_?__@_@( -XM#Y7`#[;PBT4(@\8&BT`0B47,BU@(B<>#QP@Y^W08C;8`````B1PDB70D!.AD -XMI```BQLY^W7NBU7,BUH0B=>#QQ`Y^W2?B1PDB70D!.A#I```BQLY^W7NZXN+ -XM0Q@!AQP!``#IL/[__XM5"(D4).AB?P$`A<`/A$?\___I9?___Y"-="8`BUW0 -XMBT$0A=MT?XG&BT70C5H<`?")1;SK)XVT)@````"+30@/ML"+41`/MI0"4P<` -XM`(E3],9#^`"#PQP[=;QT2<=#[`$````/M@:#Q@$\_XA#\'7,BU4(BT(0,=*` -XMN%('``#_=''`$```````#IZOW__XG!BX`4`P``C01`P>`"`T$0BT`XA<`/E<#I(_W_ -XM__9%%`ATBXM-##'`QD$,8<=!$`````#'00@!````QD$4`(/$;%M>7UW#,<#I -XMG/W__XU5U(E5#.D6^O__QT0D$`8```"+0R")5"0(QT0D!`````")1"0,BU4( -XMB10DZ,;V__^%P`^%7OW__P^V5@R#^G]WCI"-="8`Z0O___^#AQP!```!,<#I -XM0OW__XL&BTT,B0&+1@2)002+1@B)00B+1@R)00R+1A")01"+1A2)012+1AB) -XM01CI`O___XM5"/:"&`0```%T58N"$`0``(T$0,'@`@-"$(M`.(7`#Y7`A,#' -XM11``````#X2_^?__@WX0"71+BT4(]H`(`@```70MB<*+@``"``"-!$#!X`(# -XM0A!K0#ADB440Z9#Y__^+30B+@1`$``"%P`^5P.NRBTT(:XD``@``9(E-$.EN -XM^?__BT4(]H"0`0```70HB<*+@(@!``#KLXM-"(M!$(.(5`@```2+10S'0`@$ -XM````,<#I6_S__XM-"&N)B`$``&2)31#I*/G__Y"0D)!5B>6#[!B+10S'1"0( -XM6)8(",=$)`0#````B40D#(M%"(D$).A8-```R<.-M@````!5B>6#[#B+50R) -XM??R+?1B)7?2)=?B%T@^$PP```(M%"(M8'(7;#X0X`0``]D40`G5"BT4(]H"O -XM!```"'0CBTAXBT!\BW$4B47@BT`4.?*)1=P/@]L````[5=P/AR`!``"+0Q`[ -XM10P/A+H```#'0Q``````C44,B47DC47LQT7H!````(M3!(E$)`B-1>3'1"0, -XM`````(E$)`2)%"3_4@R#^/]T;H/H`70WBT4,A?^)0Q"+1?")0PR+1>R)0PAT -XM!8M%\(D'BT44A<`/A+\```"+0PB+512)`C'`ZRJ0C70F`/9%$`%U+(7_=`;' -XM!P````"+512X`0```(72=`F+513'`@````"+7?2+=?B+??R)[%W#BT4,B40D -XM!(M%"(D$).BL_O__Z\"%_W2:BT,,B0>0ZY(YPG=*.?)T#8VV`````(L).U$4 -XM=?F%_W0%BT$0B0>+712%VW0WBT$(BU44B0(QP.NBQT0D"`0```#'1"0$```` -XM`(D$).CU_0$`Z6;___\I==PK5=R)50SITO[__S'`Z7#___^-="8`C;PG```` -XM`%6)Y5.#[!2+30B+70R+41R%TG1A,<"%VW0CBU(4A=)T(O:!KP0```AT#(M! -XM?`-0%(M!>"M0%#'`.=H/D\"#Q!1;7<.)7"0$QT0D$`````#'1"0,`````,=$ -XM)`@`````B0PDZ/G]__^%P`^4P(/$%%L/ML!=P\=$)`@$````QT0D!`````") -XM#"3H0_T!`+@!````ZZF-M@````"-OP````!5B>6#[$B)=?B+=0B)??R+?0R) -XM7?2+7AR%VP^$NP```(M3%(72="J)%S'`]H:O!```"'00BT9\`U`4BT9X*U`4 -XM,<")%XM=](MU^(M]_(GL7<.-1?")1>"-1>C'1>0$````BU,$B40D"(U%X,=$ -XM)`P&````B40D!(D4)/]2%(/X_W0Q@^@!=':+1>"+`(E%\(E#$(E#%(M%[(E# -XM#(M%Z(E#"/:&KP0```AU8(M%\(D',<#KD<=$)`C%E@@(QT0D!`4```")-"3H -XM13$``+@!````QP<`````Z6G____'1"0(!````,=$)`0`````B30DZ#W\`0"X -XM`0```.E'____,<#'!P````#I.O___XM&?(M`%#M%\'>8ZY.)]HV\)P````!5 -XMB>6#[#B)=?B+=1B)7?2+70R)??R+?0B%]G0&QP8`````BT44QT0D"`````") -XM7"0$B3PDB40D$(M%$(E$)`SH7/S__S'2ASVAJP$```!=4N+?AR#/P%T2XM&$(M8"(/`"#G#=0[K -XM/(M&$(L;@\`(.=AT,#G>=/`Y>QQUZXM%[(E$)`B+1?")'"2)1"0$Z.))`P"% -XMP'31N`$```"#Q!Q;7E]=PXM5"#'`A=)T[XM%[(E$)`B+1?")-"2)1"0$Z+)) -XM`P"#Q!Q;7E]=PXUV`(V\)P````!5B>564X/L((MU"(M>'(7;#X2\````QT0D -XM"`<```"+10R)-"2)1"0$Z),/``"-10R)1>B+11#'1>P$````B47PBT44B47T -XMBU,$C47PB40D"(U%Z,=$)`P`````B40D!(D4)/]2$(/``0^$B````(M#$#M% -XM#'1*]D-8`G4X@$M8!,=$)`@&````BT4,B30DB40D!.@I#P``BU4,B?"Y`P`` -XM`,<$)`$```#HL_[__X/$(%M>7<.)-"3H-)X``.N^B?;V0U@"QT,0`````'2O -XMC78`Z^*)-"3'1"0(!````,=$)`0`````Z-;Y`0"#Q""X`0```%M>7<.+10R) -XM-"3'1"0(X98(",=$)`0%````B40D#.B++@``@\0@N`$```!;7EW#ZPV0D)"0 -XMD)"0D)"0D)"058GE5U93@^PLBW4(BUX2+11#'1>@$ -XM````B47LBT44B47PBU,$C47LB40D"(U%Y,=$)`P%````B40D!(D4)/]2$(/` -XM`0^$Z````(M#$#M%#'<'QT,0`````(M#%(7`=`:#P`&)0Q3V0U@"#X6'```` -XM@$M8!+\!````QT0D"`4```"+10R)-"2)1"0$Z/(-``"+10S'1"0$`@```(DT -XM)(E$)`CH6QT``(G#BT4,QT0D!`(```")-"2)1"0(Z&(X`0"%P'4(A=L/E<`/ -XMMOB+50RY`@```(GPQP0D`0```.A`_?__N@$```"%P'4"B?J#Q"R)T%M>7UW# -XMB30DZ+.<``#I;/___XDT),=$)`@$````QT0D!`````#H9O@!`(/$++H!```` -XM6XG07E]=PXVT)@````"+10R)-"3'1"0(@)8(",=$)`0%````B40D#.@1+0`` -XM@\0LN@$```!;B=!>7UW#B?95B>575E.#["R+=0B+7AR%VP^$"0$``(U%$(E% -XMY(M%%,=%Z`0```")1>R+11B)1?"+4P2-1>R)1"0(C47DQT0D#`0```")1"0$ -XMB10D_U(0@\`!#X3O````BT,0.T40=@?'0Q``````BT,4A7UW#C70F`(V\)P````!5B>56 -XM4X/L((MU"(M>'(7;#X3*````BT4,QT0D!`$```")-"2)1"0(Z/,:``"%P'0/ -XMN`$```"#Q"!;7EW#C78`BT4,QT0D!`$```")-"2)1"0(Z.DU`0"%P'76QT0D -XM"`0```"+10R)-"2)1"0$Z"X+``"-10R)1?"-1?#'1?0$````BU,$QT0D"``` -XM``")1"0$B10D_U((@^@!='*+0Q`[10QR!\=#$`````"+0Q2%P'0&@^@!B4,4 -XM]D-8`G5&@$M8!(GPBU4,N0$```#'!"0!````Z&CZ__^#Q"!;7EW#D(DT),=$ -XM)`@$````QT0D!`````#HJ/4!`(/$(+@!````6UY=PXDT).C$F0``Z["+10S' -XM1"0(_I8(",=$)`0%````B30DB40D#.A3*@``N`$```#I__[__Y"0D)"0D)"0 -XMD%6)Y5.#[`2+70R+0QB%P'0-B00D_U`$QT,8`````(M#'(7`=`^)!"3H)X'_ -XM_\=#'`````#'0R``````,<#'0RP!````QT,P`````,=#*`$```#'0R0!```` -XM@\0$6UW#D%6)Y5.#[!2+70S'0QP`````QT,@`````,=#+`$```#'0S`````` -XMQT,H`0```,=#)`$```#'1"00`````,=$)`P"````QT0D"(`!``#'1"0$!@(` -XM`,<$)`````#H-('__S'2A<")0QAT"(/$%(G06UW#QT0D"!R7"`C'1"0$!0`` -XM`(M%"(D$).A4*0``N@$```"`2U@0@\046XG07<.-=@!5B>56B<93B7<.058GE5U93@^Q,BWT(BW<<#[966/;"$`^%Z`$``(M&*#M&)`^$ -XM`0(``(/*$(U&*(A66(E%Z,=%[`0```#'1<``````BT88C57@@T8H`8E4)`B- -XM5>C'1"0,`````(E4)`2)!"3_4`R%P`^%X0$``(M=X(`["'8+Z`IZ__^-M@`` -XM```/M@/_)(5\F`@(C57$C4,!B10DQT0D"!0```")1"0$Z!!^__^+1C'1>P$````B?:+1AB-5>"# -XM;B@!B50D"(U5Z,=$)`P`````B50D!(D$)/]0#(7`#X5W`0``BUW@@#L(=@7H -XMC'?__P^V`_\DA:"8"`B-0P&)1"0$C478QT0D"`@```")!"3HF'O__XM5"(M% -XMV#M"3'29@T8H`8!F6.\QP(/$3%M>7UW#C7L!C47$QT0D"!0```")?"0$B00D -XMZ&%[__^+1___BT4(BU!,.U7P='R+50B+1?`Y0E@/A'3___^#0F`!B4)8Z6C___^- -XM0P&)1"0$C478QT0D"`@```")!"3HQGK__XM5"(M%V#M"3`^%+O___X-^*`$/ -XMA;G^___I'____XUT)@")!"3'1"0(%)@(",=$)`0#````Z*@D``"#Q$RX`0`` -XM`%M>7UW#BT7DB50D!(/H!8E$)`R-0P6)1"0(BU4(B10DZ-OT__^%P`^$7/__ -XM_^DG____BT4(N>\!``"ZP)<(".@<^___N`$```#IL_[__XGV58GE5U93@^Q, -XMBWT(BW<<#[9&6*@0#X7=`0``@WXH`0^$^`$``(/($(A&6(U&*(E%Z,=%[`0` -XM``#'1<``````D(M&&(U5X(-N*`&)5"0(C57HQT0D#`````")5"0$B00D_U`, -XMA<`/A="`.PAV!>B,=?__#[8#_R2%Q)@("(U5Q(U#`8D4),=$)`@4 -XM````B40D!.B8>?__BT7,B478BT70B472#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3HF_/__X7` -XM#X4]`0``BT7P.4=8=*J#1V`!B4=8QT7``0```.D(____C4,!B40D!(U%\,=$ -XM)`@$````B00DZ.)X__^+1>2#Z`6)1"0,C4,%B40D"(M%\(D\)(E$)`3H;O3_ -XM_X7`#X7@````@T=<`<=%P`$```#IMO[__XU#`8E$)`2-1?#'1"0(!````(D$ -XM).B0>/__BT7PB3PDB40D!.@=]___A<`/A9\```"#1V0!QT7``0```.EU_O__ -XMBU7`A=(/A&K^__^-0P''1"0("````(E$)`2+10R)!"3H1'C__S'`@&98[^L= -XMQT0D"$B8"`C'1"0$`P```(D\).A`(@``N`$```"#Q$Q;7E]=PXD\),=$)`AL -XMEP@(QT0D!`(```#H&R(``(/$3+@!````6UY?7<.)^+F(`0``NL"7"`CHO?C_ -XM_[@!````Z[N`9ECON`$```#KL(UT)@"-O"<`````58GE5XG75HG&4X/L+(M8 -XM'(-[(`AW*HU#(,=$)`P)````B40D"(M#'(DT)(E$)`3H3)8``+H!````ABT,H,=*#P`&)0RB)0R2#Q"R)T%M>7UW#C;8`````B?"Z -XMP)<("+G#````Z,_W__^#Q"RZ`0```%N)T%Y?7<-5,<")Y593@^P@BW4(BUX< -XM]D-8$`^%J0```(M++(7)#X6K````@WL@%'B+1?2#P`6)1>R+4QB-1>B)1"0(C47@QT0D#`````")1"0$ -XMB10D_U(0@\`!#X2-````BT,H@\`!B4,HB4,D,<"#Q$!;7EW#N@$```")\.C$ -XM_/__A7<.0C47TB40D -XM$(U%\(E$)`S'1"0(`@```(M%#(DT)(E$)`3H"^K__X7`#X38_O__BT4,@_@! -XM="Z)1"0$B30DZ+_I__^X`0```.N!B?"Y$0$``+K`EP@(Z.?T__^X`0```.EF -XM____QT7T`````,=%\$^-"`CIC_[__XUV`(V\)P````!5B>6+30B+41SV0E@0 -XM=1.+0BR%P'00BT%,B4(LBT%0B4(P73'`PXM!3(E"+(M!4(E",+H"````B'[__^058GE5E.#[""+=0B+1AB%P'0CQT0D"`$```#'1"0$`````(D$).AF -XMR/__BT88B00DZ'M>``"+1@B-7@@YV'00D(D$).AH7@``BT8(.=AU\8M&$(U> -XM$#G8=!:-M"8`````B00DZ$A>``"+1A`YV'7Q]H94"````G10ZUR-M@````"# -XM>P@#N>B8"`B+4PR+0Q!T!;E/C0@(B40D#*$0(0D(B50D$(E,)`C'1"0$\)@( -XM"(D$).AM;/__BQ.%TG0&BT,$B4($BT,$B1"+7FR%VW6Q@\0@6UY=PZ$0(0D( -XMQP0D!P```(E$)`3HF6S__^O;C78`58GE5HG64XG+@^P0BQ40(0D(B00DB50D -XM!.BF;?__A=MT&:$0(0D(B5PD",=$)`2=K0@(B00DZ/EK__^%]G0HZ)!P__^+ -XM`(D$).CF;?__QT0D!)VM"`B)1"0(H1`A"0B)!"3HS6O__Z$0(0D(QP0D"@`` -XM`(E$)`3H&&S__X/$$%M>7<.-M@````"-O"<`````58GE5U93@>R<`0``BT4( -XMBYAH"```A=L/A'L#``"+50B+BI0(``"%R0^$A0,``(M="+_XF`@(BTT(_(G8 -XM@\$(@\`0B8U\_O__BS.)0Q")0Q2#P'")0WR#Z`2)@X0```"#Z$R)0S")0S0% -XM_````(E+"(E+#+D#````QX.``````````,9#<`&)@RP!``")@S`!``#'@T`! -XM````````QX-$`0```````(FU@/[___.F#X6;`@``QX6(_O__`0```,>%E/[_ -XM_P````"+71"0C70F`(/#!(L3A=*)E7C^__]T9OR_`9D("+D#````B=;SIG15 -XMBY5X_O__#[8"/"L/A,\````\+77+B[5X_O__#[9&`83`#X0I`0``/&-T##Q4 -XM=`@\='0$/'=UJ8N%>/[__X!X`@!UG8/#!(/#!(L3A=*)E7C^__]UFHM%"#'_ -XM,=LQ]H.(5`@``$#'A8S^__\`````QX68_O__`````,>%G/[__P````#'A9#^ -XM__\`````C78`QT0D"`29"`B+31")3"0$BT4,B00DZ(IM__^#^/\/A!\"``"# -XMZ$:#^#$/AK4```"+50B[`0```/^2J`@``('$G`$``(G86UY?7<.-M@````") -XMUX/'`8!Z`0!U)<<$)`0```#HS7#__X7`B0,/A'H"``#'`"UC)`#IU/[__XUT -XM)@"+C7C^__^)#"3H]G'__X/``HD$).B;%D/[__P$```#I7O[__\>%E/[__P$```#I3_[__\>%F/[__P$` -XM``#I0/[__XM-"(.A5`@``+_I,?[__XNU@/[__[_WF`@(N00```#SI@^$3?W_ -XM_XNU@/[__[_[F`@(N08```#SI@^%J`0``,>%B/[__P(```#'A93^__\!```` -XMZ3#]___'@&@(```0,@@(BU4(BXJ4"```A7UW#BT7P@XBL!``` -XM`8M="(M%\(M3"(D0BY5\_O__BT7PB5`$.U,,#X1G`P``BTT(BT7PBU$(B4($ -XMBU7PBUT(B5,(B10DZ`?:__^%P'68BX6,_O__A<`/A#`#``#'1<`9````C47( -XMQT7$-P```(N=E/[__X7;=`G'`"H```"#P`2+C9C^__^%R70)QP`2````@\`$ -XMBY60_O__A=)T"<<`,P```(/`!,<`_____XU%P(E$)`2+1?")!"3H8S8``(7` -XM#X4@____A?8/A(H```"-G:3^__^)="0,QT0D"!29"`C'1"0$``$``(D<).@% -XM:___B=F)7=2+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(```'4&P>H0@\$" -XM`-*-1=2#V0.)1>0IV8U%Y(U5P(E-W,=%P`````#'1<@`````B57HQT0D"``` -XM``")1"0$BT7PB00DZ,DK``"+A:#^__^%P`^%M`(``(M5\/:"(`(```$/A(D" -XM``"+@A@"``"-!$#!X`(#0A"+0#B)0C2+5?#V@F`!```!#X19`@``BX)8`0`` -XMC01`P>`"`T(0BT`XB4(XBX6@_O__A<`/A/;]__^+5?"+C83^__^#_W*+=1"- -XM'(X/A`(#``#V@FP$```!#X0G`@``BX)D!```C01`P>`"`T(0BT`X@\`!T>B) -XM@H0```"+10B+@`P!``"%P`^$^P(``(N%G/[__X7`=!V+E9S^__^)5"0$BT7P -XMB00DZ)'.`0"%P`^%KOW__XLSA?9T;(M5\(M"((7`=#V+0`B#ZP2)!"3HOVS_ -XM_X/``8D$).AD:___A<")PHD##X3.`P``BT7PBT`@BT`(B10DB40D!.CC;/__ -XMBU7PB5HHB5HDBT7P@8BL!````"```(/_3\__^-1>R)%"2-7:2)1"0(QT0D!`,```#H^@@``(M5[,<$)`$```") -XM5"0(B40D!.B78?__ZQ2#^`QT2XM%\(D$)(M5"/^29`@``,=$)`P`````QT0D -XM"`````")7"0$BT7PB00DZ.[5__^%P`^%2_K__XM%K(/X!'0-@^@!=;V+1;2# -XM^`AUL(M5\.D-_?__BT(DA564XM`'(G3BU`XA=)T'P^V2A`Q]HG0 -XM.L9D`^V2!`YV7,.B<*+`H7`=?!;B=!>7<.)UCG9=`*)\%N)PEZ)T%W# -XMC78`C;PG`````%6)Y593@^P@BT4,BW40@_@!=%US"^CZ8?__C;8`````@_@" -XM=`LQTH/$((G06UY=PXM5",=$)`0"````B10DZ&W=__^%P'10BU4(BT(WKO(VT)@````"+50B+0AR+6#B%VW2H -XMC78`BT,(.?!R"'0\@^@!B4,(BQN%VW7KZXZ-1?2)1"0$BT4(B00DZ*?=__^Z -XM`0```(7`#X5Q____@WWT`76+C70F`.E@____@$L1`8M%"(E<)`2)!"3HB.[_ -XM_^NUC;8`````58GE5U93@^P,BW4,BWT(@_Y@#X2(````B?*)^.BO_O__A<") -XMPW0/#[9($`^VP3GP#X1Z````QP0D%````.BR9?__A<")P@^$S0```(7;#X2? -XM````BP.%P(D"=`6+`XE0!(D3B5H$BTT0B=.+`8E""(M!!(E"#(GPB$(0BTT4 -XM,<"%R74/B$,1,=*#Q`R)T%M>7UW#B=.X`@```.OHC70F`&:^)P#I;____XVT -XM)@````"+112%P'4I#[9#$3'2@^`#@_@"=,2+51"+`HE#"(M"!(A+$(E###'` -XMZZJ-M@````"+51"+`HE#"(M"!(A+$(E##.NBBT\6#["B)7?2+70R)=?B)??R#^V!T;8M%"(G:Z&_] -XM__^%P(G&=`X/MD`0#[;X.=^(1?-T4X#[_P^$XP```(M5"`^VPXT$0(V$`%`! -XM```#0A"#P`B)1"0,QT0D"(":"`B+10B+512)!"2)5"0$Z,X-``"X`0```(M= -XM](MU^(M]_(GL7<.S)^N/]D81`70R@'WS_P^$G0```(M5"(T$?XV$`%`!```# -XM0A"#P`B)1"0,QT0D")B:"`CKIXVT)@````"+1@B#^`%U!XM>#(7;=$"+50B) -XM1"0$B10DZ++:__^%P'4J@'WS_W1ABU4(C01_C80`4`$```-"$(/`"(E$)`S' -XM1"0(O)H(".E4____BT8(BU40B0*+1@R)0@0QP.E6____BT4(B5PD!(D$).@` -XMR?__Z1____^+10B)?"0$B00DZ.S(___I8O___XM%"(E\)`2)!"3HV,C__^NA -XMC;8`````58GE4X/L!(M=#(M3.(72=""+"H7)=`:+0@2)002+0@2)"(D4).C* -XM8___BU,XA=)UX(/$!#'`6UW#D)"0D)"0D%6)Y8M%"(M`:(7`=`F)10B+2`1= -XM_^%=PY"-M"8`````58GE5U93@^PLBW40QP8`````BU4,#[8"A,!T00^^P(7` -XM>$N+'?P@"0@YV'U!BPT((0D(]D2!-@1U&^LRC70F``^^P(7`>"`Y4'0/A`X!``"+1>`Q]HD$).AZ8O__BU4(@47<``$``(72#X5;____BU7< -XMB10DZ+UA__^%P'5*QT7@3XT(".D<____BT7#I -XM-____XM=X(G7.?,/@T?___\\_W0]BU4(#[;`C01`C80`4`$```-"$(/`"#G> -XM#[80#Y?!A-)U0`^V1P&#QP&$P`^$%?___X3)#X0-____//]UPXM%",=$)`3_ -XM____B00DZ(+&__\YW@^7P0^V$(32=,:-M@````"$R72\B!,/ME`!@\,!.=X/ -XME\&#P`&$TG7GZZ6!H%0(``#__O__,?;I[O[__XE$)`R-0WB+50B)1"0(BT-T -XMB10DB40D!.C7?@``A<`/A.K^__^)0W3I5?[__XM5X#'VB10DZ"YA___IK_[_ -XM_\8#`.GP_?__C;8`````C;PG`````%6)Y8/L.(E=^(M=#(EU_(MU$`^^`X/X -XM?W<*]@2%W10)"`1U'(7V=`J)'"3HE&'__XD&B=B+=?R+7?B)[%W#B?8/OD,! -XM@_A_=]OV!(7=%`D(!'31#[Y#`H/X?W?(]@2%W10)"`1TOH![`WQUN(U%](E% -XMY,=%Z`0```")'"3H\UC__XE%](M%"(7`=%6+50B+0A"%P'1+BU!HA=)T1(U% -XM[(E$)`B-1>3'1"0,`````(E$)`2)%"3_4@R%P'4DBU7PA=)T'87V=`6-0O^) -XM!HM%[,9$`O\`BUWLZ5;___^-="8`@\,$Z3S___^0C;0F`````%6)Y8/L"(M% -XM#(M-"(M5$(/X!78,Z*M:__^-M"8`````_R2%')T("(E5$,=%#,2<"`B)30C) -XMZ=;^__^)51#'10SJF@@(B4T(R>G#_O__B540QT4,9)P("(E-",GIL/[__XE5 -XM$,=%#(2<"`B)30C)Z9W^__^)51#'10S]F@@(B4T(R>F*_O__B540QT4,&YL( -XM"(E-",GI=_[__XVT)@````!5B>575E.#["R+10B+<""+1@B)!"3H&F#__XM= -XM"(7;B47H#X3M````BU4(BUH0A=L/A-\```#V@U4(```!#X72````C02%@``` -XM`#M#>`^'9`4``(M+=(E-X(M#>(E%[(&+5`@````!``"+10B+<""+5@B+?>`/ -XMM@*$P`^$Y@```(G6ZU>+50@/ML"-!$`!P`-"$`^VF%T!``")7>@/M@8\_W1= -XMBU4(#[;`C01`C80`4`$```-"$(/`"(D\)(E<)`B)1"0$Z$M>__\/MD8!@\8! -XM`WWHA,`/A(L````\_W6EQT0D!/____^+30B)#"3H;L7__XG#B5WH#[8&//]U -XMI8GVQT0D!/____^+30B)#"3H3`"`T$0BT`XA<`/E<"$P`^%"0(``,8".HUR -XM`L9"`2#V11`!#X0K`0``C47PB40D!(M%"(D$).BMT___A<`/A0D!``"+1?"% -XMP`^%C0(``(U5Z(E4)`C'1"0$CYL("(M-"(D,).B0^___BU7HB30DB50D"(E$ -XM)`3H(5S__XGP`T7HZ0B)%"2)3"0(QT0D!%F;"`CH7/O__XG"Z1O_ -XM__^-5>B)5"0(QT0D!$B;"`B+30B)#"3H._O__XM5Z(D<)(E4)`B)1"0$Z,Q; -XM__^)V`-%Z,8`+(U8`L9``2"+50B+0ASV0%@$#X2S_O__ZY2+=>"+30B)#"3H -XM*34!`(M%"(M0$(M%Z(ET)`C'1"0$!````(E$)`R+30B)#"3_DI0(``"+10B% -XMP'06BU4(BT(0AB)1"0(QT0D!+J;"`B+50B)%"3HBOK__XM-#(DT)(E,)`B)1"0$Z)M<__^) -XM-"3H,US__XT$!HU(`<8`"HG(*T7@]D40`HE%Z`^$3?___XM5"(MR.#GP#X8_ -XM____BU7@C5[].?IR+#G7=#>-C&0@$@C5H"B0PDB40D",=$)`1UFP@(Z'CY__^+5>B)'"2)5"0(B40D!.@) -XM6O__B=H#5>CI2?W__X/@[V:)01B-3>B)3"0(QT0D!#N;"`B+10B)!"3H.OG_ -XM_XM5Z(D<)(E4)`B)1"0$Z,M9__^)V@-5Z.G[_/__C47HB40D",=$)`2>FP@( -XMBU4(B10DZ`/Y__\QTHE$)`2+3?!K70QDB4PD#(G8]_&)1"00BTT,B30DB4PD -XM".C_6O__B30DZ)=:__^-!`;I7_[__X&@5`@``/_^__^#Q"Q;7E]=PXE$)`R- -XM0WB)1"0(BT-TB40D!(M5"(D4).@\=P``A<`/A.C]__^)0W3I;_K__XVV```` -XM`(V_`````%6)Y5=64X/L/(MU"/:&K@0```0/A;"`C'1"0$&0```(E$)`SH-%;__XU5[(E%U`'#B47L,<")5"0(@WR^7`&) -XM-"0/E<"+!(50G0@(B40D!.AD]___BU7LB1PDB50D"(E$)`3H]5?__XM%[(U5 -XM[`'#B47@Q@,@BP2]6)T("(/#`8E4)`B)-"2)1"0$Z"GW__^+5>R)'"2)5"0( -XMB40D!.BZ5___BT7LBU7@`<.-1!`!`T78`T74B478,<#'1+Y<`````(/'`8/_ -XM!P^%'?___\8#"HDT).@0,0$`BT78BU80@\`!B40D#(M%W,=$)`0$````B30D -XMB40D"/^2E`@``(7V=`^+1A"%P'0(BU7<.5!T=&B+1=R)!"3HL5?__X/$/%M> -XM7UW#BX8@`P``C01`P>`"`T80BT@XZ3'^__\PP,=$AEP`````@\`!@_@'=?"# -XMQ#Q;7E]=PX%[>+P"``!V)XM#=(E%W(M#>(E%\(&+5`@````!``#I8?[__X&@ -XM5`@``/_^___KEXU#>,=$)`R]`@``B40D"(M#=(DT)(E$)`3HMG0``(7`#X1Q -XM____B4-TZZZ)]HV\)P````!5B>575E.#[#R+?0B%_P^$9`0``(M%"(-]#`:+ -XM0!")1=AV!>B,4?__BU4,_R25-)T(",=%#`,```"A*"$)"(/``:,H(0D(@^@! -XM=$:#Q#Q;7E]=PXM%"/:`,`0```$/A#@$``"+@"@$``"+5=B-!$"+3((XA+1>R- -XM'`8[7?!W'(!]UP"--`$`0`` -XMBU-TB57@BT-XB47P@8M4"`````$``(-]#`4/A`L!``"#?0P##X7R_O__BWW@ -XM,?;&1=<`BT4(A<`/A.?^__^+1=B%P`^$W/[__XM%V(N0!`$``(72#X3+_O__ -XM#[8"A,`/A$P!``")T^M5C78`BU4(#[;`C01`C80`4`$```-"$(/`"(E$)`S' -XM1"0(GZT("(M%\(D\)"GPB40D!.B!4O__`<8[=?")1>P/A^_^__\!QP^V0P&# -XMPP&$P`^$\P```#S_=:K'1"0$_____XM%"(D$).B7N?__ZZN0C70F`(M%W,=% -XM\`````#'1>``````A<`/A"'___^+1=R-5?")5"0(QT0D!`````")1"0,BT4( -XMB00DZ`9R``"%P`^$A@$``(-]#`6)1>`/A?7^__^-1>R)1"0(QT0D!,R;"`B+ -XM10B)!"3H-_/__XM5[#E5\`^"2_[__XE4)`B)1"0$BU7@B10DZ+Q3__^+=>R+ -XM?>#&1=(E4)`R)1"0(BT-TB40D -XM!(M%"(D$).A[<0``A<`/A/L```")0W3I3_[__XM5V(N""`$``,=$)`C8FP@( -XMB40D#(M%\(D\)"GPB40D!.A)4?__`<8[=?")1>P/A[?]__\!Q^DY_?__Z(]0 -XM__^+`(D$).CE3?__QT0D")VM"`B)1"0,BT7PB30D*=B)1"0$Z`A1__\!PSM= -XM\(E%[`^'=OW__P'&@\,!.UWPQT4,`P````^'8?W__\8&"HM]"(7_=`N+10B) -XM!"3H7"P!`(MUV(7V#X3Y````B5PD#(M5X(E4)`B+10R)1"0$BU4(B10DBT78 -XM_Y"4"```BTT(A`Y4'0/A.````"+1>")!"3H[%+_ -XM_\<%*"$)"`````"#Q#Q;7E]=PXM%"/:`K`0```(/A.C[___V@#`$```!=6Z+ -XM10B+F"@$``"%VP^4P(3`#X3)^___BU78@XI4"````NG3^___@WT,`G0P@WT, -XM!L=%V``````/A:K[___'10P$````Z9[[__^+10B+D"@$``"%T@^4P.G*^___ -XMQT4,`P```,=%V`````#I>/O__XN`*`0``(M5V(T$0(MT@CB%]@^4P.N)BU7@ -XMH1`A"0B)7"0(QT0D!/*8"`B)5"0,B00DZ&Q*___I`____X&@5`@``/_^___I -XM'/___XUT)@!5B>6#[#B)=?B+=1")??R+?0B)7?2%]G1IZ-9.__^+&(U%\(ET -XM)`2)1"0(B3PDZ#WN__^)QNBZ3O__B1B+112)="0,B3PDB40D"(M%#(E$)`3H -XMFOK__XM%\(7`=!B%_W0,BT<0A"-1>C'1>0$````QT7P`0```(E$)`B- -XM1>#'1"0,`````(E$)`2)'"3_4PR%P'4*@WWL$@^$`P$``(D<)/]3!*'L$`D( -XMA<`/A+L```#'!>P0"0@`````N`$```"!Q#P$``!;7E]=PZ'L$`D(A7UW#QP0DWYL(".@H2?__ABX\)L("+D2````_(G'\Z8/A>7^ -XM__^+10C'!>P0"0@`````BU`0BT)HA575C'V4X/L#(M]"(G[ZQ*#QA"#PPR!_O`$```/A+P```"#OFBC -XM"`@#=>7VAFRC"`@!==P/MI,``0``@^(!#X2B````BX/X````C01`P>`"`T<0 -XMBT`XA<`/E<"$P'0LA-(/A*0```"+@_@```"-!$#!X`(#1Q"+0#B)!"3HX4[_ -XM_P^VDP`!``"#X@&$TG1GBX/X````C01`P>`"`T<0BT@\A7UW#BX/X````A<`/E<#I9?___XN#_````(7`#Y7`ZZ.+@_P` -XM``#KN8N#^````.EC____D(VT)@````!5B>6#[!B+10S'1"0,=)T(",=$)`0# -XM````B40D"(M%"(D$).@8_/__R<.-M@````!5B>53@^P4BTT,BUT(C01)C02# -XM]H```0```70TBX#X````C01`P>`"`T,0BU`XA=)T!S'`@#H`=0R+51"X`0`` -XM`(72=!.#Q!1;7<.0C70F`(N0^````.O6P>$$BX%@HP@(B1PDQT0D#+"="`C' -XM1"0$`P```(E$)`CHD_O__X/$%+@!````6UW#D(VT)@````!5B>6#[%B)7?2+ -XM70B-1>R)=?B)??S'1"000%<%"(E=[,=$)`P(````QT0D""8```#'1"0$8*@( -XM"(D$).AD2___AQ=PXU%W(E=W,=$ -XM)!`@5P4(QT0D#!````#'1"0(3P```,=$)`1@HP@(B00DZ!I+__^%P'7!B1PD -XMZ)Y-__^+-6"C"`B%]HE%R'19#[8#QT708*,(",=%Q`````"(1<_K%(VT)@`` -XM``"#1=`0BT70BS"%]G0G#[9%SS@&?.M_'8M%R(G?_#G`B<'SIG7;BTW$A`"`T80BU`XBP.)5"0,QT0D!':?"`B)-"2)1"0(Z/XD -XM`0")PNGZ_O__C;0F`````(N`^````(T$0,'@`@-&$(M`.(7`#Y3`ZY:-M"8` -XM````BX#X````C01`P>`"`T80BT`XZ3+___^+@/@```"-!$#!X`(#1A"+0#B% -XMP`^5P.G/_O__C01)BY2&^````.EV____C;0F`````(V\)P````!5B>575E.! -XM[,P"``"+10B+2#C'A53]__\*````C70F`#'2B#'A43]__\`````QX50_?__`````,>%7/W__P````"#Z@*)E3S]__^) -XMC3C]__^+E5S]__\/MH)LHP@(J`0/A1`!``")U\'_!(-]#`)T%8-]#`,/A&(" -XM``"#?0P!=%'H7$3__Z@!=4B+C5S]__^+@6BC"`B#^`(/A\\#``"+50B-!'^- -XM!(+V@``!```!#X2=!```BX#X````C01`P>`"`T(0BU`XBT`\.<(/A*0```"+ -XM50B-!'^--(*-AO`````/ME@0@^/]B%@0BXU<_?__BX%@HP@(B00DZ/-)__^+ -XME5S]__^)A4S]__^+@FBC"`B#^`(/A'D"```/@]8!``"#XP$/A%H"``"+AO@` -XM``"+30B-!$#!X`(#01"+0#B%P`^4P(3`=`>#A4S]__\"BX4\_?__.85,_?__ -XM#X\(`@``BY50_?__B;R5:/W__X/"`8F54/W__XN57/W__XN"<*,("(/"$(F5 -XM7/W__X7`#X6^_O__BY50_?__A=(/CNX```"+C5#]__\YC53]__\/C#L#``#' -XMA5C]__\!````QX5`_?__`````,>%8/W__P````"+A53]__^%P'Y[BX58_?__ -XM,?8QVXN50/W__XT\$.LXBX5(_?__@\8!BTT(QT0D#$^-"`C'1"0$?I\(""G0 -XMB40D"(D,).@D(@$``YU8_?__.[54_?__="Z+E4#]__^-!!.+E(5H_?__BT4( -XMP>($@<)@HP@(Z,7[__^)PHT$'SF%4/W__W^:@X5@_?__`8N%8/W__SF%6/W_ -XM_P^/'0,``(.]1/W__P`/A+(!``"+50C'1"0$)KH("(D4).@?(0$`BX5$_?__ -XM,=N-M:3^__^%P`^.B0$``(L4GH/#`8M%",'B!('"8*,(".A2^___.YU$_?__ -XM#X1F`0``BTT(QT0D!":Z"`B)#"3HTR`!`.O(BTT(C01_]H2!``$```(/A(7^ -XM___IW/W__X/X`P^%3_[__XG:@^(!#X1"`0``BTT(C01_BX2!^````(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,!T(X32#X7O`0``BTT(C01_BX2!^````(D$).BI1___ -XM`85,_?__@X5,_?__`XN%//W__SF%3/W__P^.^/W__XN-1/W__XF\C:3^__^# -XMP0&)C43]___I\_W__XNV^````(7V#Y3`Z;#]__^#XP$/A,<```"+AO@```"+ -XM50B-!$#!X`(#0A"+0#B-3>")#"2)1"0,QT0D"+.@"`C'1"0$%````.@"1/__ -XMC4W@BP&#P02-D/_^_O[WT"'"@>*`@("`=.GWPH"````/A"(!````TH/9`RN- -XM./W__P&-3/W__^E"_?__@\`&,=*#X/J)A4C]__^)R/>U2/W__XF%5/W__^GA -XM^___D(M%",=$)`0FN@@(B00DZ&T?`0"!Q,P"``!;7E]=PXM-"(T$?XN,@?@` -XM``"%R0^5P.G%_O__BX;X````Z4/___^#^`,/A5O\__^+30B-!'^-!($/MH@` -XM`0``@^$!#X2Q````BX#X````BU4(C01`P>`"`T(0BU`XBT`\.<(/A,;\__^$ -XMR0^%JP```(M5"(T$?XT$@HN0_````(72#X0#_/__BX#X````B50D!(D$).BQ -XM0O__A<`/A(W\___IY/O__XN54/W__XG0P?H?][U4_?__@_H!@]C_A<")A5C] -XM__\/CZK\___I=_W__\'J$(/!`NG3_O__BU4(C01_BX2"^````(T$0,'@`@-" -XM$(M`..D`_O__BY#X````BX#\````Z5;___^+D/@```"+@/P```#I9_O__XM- -XM"(T$?XN$@?@```"-!$#!X`(#01"+4#R%T@^$3OO__XM`..E)____BU4(QT0D -XM!":Z"`B)%"3H#QX!`(N-8/W__XF-0/W__^DA_/__C;0F`````(V\)P````!5 -XMB>6#[!B+10R)??R+?0B)7?2)=?B+=1"-!$#!X`*-%#CV@@`!```!C9P'^``` -XM`'06BX+X````C01`C02%,`````-'$(U8"/?&"````'5Q]\8!````=#[WQ@P` -XM```/A)T```"#Y@)U&(M#!(7`C78`=`Z)!"3H"D3__XVV`````(M5%#'`B5,$ -XMBUWTBW7XBWW\B>Q=P_?&#````'18@^8"=0Z+`X7`=`B)!"3HU$/__XM5%#'` -XMB1/KSXVT)@````"+112)!"3H*3W__X7`B444#X5Y____QT0D"`````#'1"0$ -XM!0```(D\).B"[/__N`$```#KDXM%&(D#,<#KBHGVBT48B4,$,<#I>____XUV -XM`%6)Y57VAVRC"`@!==R+1?"%P`^%'`$``/:#``$```$/A`$!``"+@_@```"+50R- -XM!$#!X`(#0A"+0#B%P`^$\@```(M5#,=$)!``````B40D#,=$)`@*````B70D -XM!(D4).@T_O__A<`/A2H!```/MI,``0``@^(!#X0*`0``BX/X````BTT,C01` -XMP>`"`T$0BT`\A<`/E<"$P`^$2O___X32#X0<`0``BX/X````BU4,C01`P>`" -XM`T(0BT`\BTT,QT0D$`````")1"0,QT0D"`L```")="0$B0PDZ+K]__^%P`^$ -XM`O___XM%"(/&`8/'$,=$)`@`````@\,,QT0D!`4```")!"3H_NK__X/^3\=% -XM\`$````/A>#^__^+1?"#Q!Q;7E]=PXN#^````(7`#X4.____BTT,QT0D$``` -XM``#'1"0,`````,=$)`@&````B70D!(D,).@^_?__BT4,QT0D$`````#'1"0, -XM`````,=$)`@'````B70D!(D$).@7_?__Z6+^__^+@_P```"%P`^5P.D`____ -XMBTT,QT0D$`````#'1"0,`````,=$)`@'````B70D!(D,).C;_/__Z23___^+ -XM@_P```#I[O[__XUT)@"-O"<`````58GE5U93@^Q\Z8/A&4YV9`/A%H(``"`^CW'1<0!````QT7(`````'0.QT7$```` -XM`,=%R`$```"%R<=%[`````#'1=``````=`G&`0"#P0&)3=")'"3H]O+__X7` -XMB<P/MD<, -XMA=(/E<&H(`^%`0(``*@0#X57`@``BU7$A=(/A3H%``"+5R%P`^%#`,``(M%R(7`#X1V`0``BT6X -XMA_O__]D<,`G5@BTT(C01;C02!#[:0``$``(/B`0^$ -XM&00``(N`^````(T$0,'@`@-!$(MP.(7V#Y7`A,!T+(32#X6)!```BTT(C01; -XMBX2!^````(M5T(D$)(E4)`3HPSO__X7`#X33_O__BT<$A/[__X3)#X3W_?__QT0D#-"= -XM"`B+10B)="0(QT0D!`,```")!"3HY>O__\=%S`$```#I1?[__X![`6\/A8C^ -XM__^-P!````B30DZ#WP__^%P(G'#X5'_?__Z6?^__^%T@^%H?W__\=$ -XM)`P`G@@(Z9,!``"+1<2%P`^$?_[__XM5T`^^`H/X?P^'GP```/8$A=T4"0@$ -XM#X21````C47@C4WPQT0D#`H```")1"0(B50D!(D,).CS6```B46\@^@!#X25 -XM`P``BU4(C47HB70D!(E$)`B)%"3HH=G__XM5"(U-Y(E,)`B)%"2)PXM%T(E$ -XM)`3HAMG__X-]O`&)Q@^#-P4``(M-"(E$)!")7"0,QT0D")"?"`C'1"0$!0`` -XM`(D,).C7Y?__ZUN0C70F`(M5"(U%Z(ET)`2)1"0(B10DZ#K9__^+50B-3>2) -XM3"0(B10DB<.+1=")1"0$Z!_9__^+30B)7"0,QT0D"*B>"`C'1"0$`P```(D, -XM)(G&B40D$.AZY?__BT7HA2%VP^$/O[__XM-"(7)=!.+30B+01"%P'0).W!T#X1#!``` -XMB30DZ#@\___'1`/M@"$P'0G#[[0A=(/B+W\__\[%?P@ -XM"0@/C;'\__^A""$)"/9$D#8"#X2A_/__#[9'#*A`=`N+5?"%T@^$VP$``*@" -XM=3&+50B-!%N-!(+V@``!```!#X3.`0``BX#X````C01`P>`"`T(0BT`X.T7P -XM#X2E^?__BT<$ASIM/S__XNP^````(7V#Y3`Z6O\__^!H%0( -XM``#__O__Z9C[__^!H%0(``#__O__QT7,`0```.E/^/__BY#X````A=(/E<#I -XM-OS__X-]O`)T$H-]O`,/A3G[__^-=@#ID?C__XE$)!"+10B)7"0,QT0D"("> -XM"`C'1"0$`P```(D$).B(X/__Z0G[___'1"0,U)X(".F*^?__BX#X````Z3G^ -XM__^+10C'1"00`0```,=$)`P`````QT0D"`````")7"0$B00DZ-3R___IN_?_ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y8'L6`0``(EU^(MU"(U%V(E=](V=R/O__XE% -XMZ(U%R(E]_(G?B5W8QT7(`````,=%T`````#'1>``````B47LQT0D$`,```#' -XM1"0,`````,=$)`@`````QT0D!#\```")-"3H5_+__X7`=3.`CO0#```!QT0D -XM$`$```#'1"0,`````,=$)`@`````QT0D!!@```")-"3H)/+__X7`=$#!XP2+ -XM@V"C"`C'1"0(2)\(",=$)`0#````B30DB40D#.AKW___N@$```"+7?2)T(MU -XM^(M]_(GL7<.-M"8`````@(X@`@```<=$)!``````QT0D#`````#'1"0(```` -XM`,=$)`0(````B30DZ+'Q__^%P'6-@(Y@`0```<=$)!`"````QT0D#`````#' -XM1"0(`````,=$)`0S````B30DZ'[Q__^%P`^%5O___X".9`,```''!"2GGP@( -XMZ-*`@("`=.GWPH"```!U!L'J$(/!`@#2NPH```"#V0,I -XM^8U5Z(E-X,=$)`@`````B50D!(DT).BL\___A<`/A43^__^!_]*?"`B)^W0E -XMQX7(^___97-C8<>%S/O__W!E=&G'A=#[__]M93TVQH74^___`(G9BP&#P02- -XMD/_^_O[WT"'"@>*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*?F-1>B)3>#' -XM1"0(`````(E$)`2)-"3H+?/__X7`=!2[#````.F__?__N"'5"`CI>O[__X'_ -XMWY\("'0=QX7(^___:V5Y=,>%S/O__VEM93UFQX70^___-@")^8L!@\$$C9#_ -XM_O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D -XM"`````")5"0$B30DZ*CR__^%P'04NQ8```#I.OW__[B_GP@(Z7O^__^!^^F? -XM"`AT'L>%R/O__VUA=&/'A*`@("`=.GWPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0( -XM`````(E$)`2)-"3H(O+__X7`=`J['0```.FT_/__QT0D#/6?"`C'1"0(#*`( -XM",=$)`0`!```B1PDZ,@P__^)V8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*` -XM@```=0;!ZA"#P0(`TH/9`RG9C57HB4W@QT0D"`````")5"0$B30DZ*SQ__^% -XMP'0*NR````#I/OS__X'[%J`("(G?=!O'A%S/O__V=R87#'A=#[__]H% -XMV/O__U!14%#'A=S[__\@3$EPQX7@^___<&QP:<>%Y/O__W!B<`")V8L!@\$$ -XMC9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLF````@]D#*?F- -XM5>B)3>#'1"0(`````(E4)`2)-"3HA/#__X7`#X4<^___QT0D#$^-"`C'1"0( -XML)\(",=$)`0`!```B3PDZ#`O__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I -XM]\*`@```=0;!ZA"#P0(`TKLG````@]D#*?F-1>B)3>#'1"0(`````(E$)`2) -XM-"3H#_#__X7`#X6G^O__QT0D#!^@"`C'1"0(,Z`(",=$)`0`!```B3PDZ+LN -XM__^)^8L!@\$$C9#__O[^]]`APH'B@("`@'3I]\*`@```=0;!ZA"#P0(`TKLK -XM````@]D#*?F-5>B)3>#'1"0(`````(E4)`2)-"3HFN___X7`#X4R^O__@?\] -XMH`@(B?MT.\>%R/O__W-E8W3'A%U/O__TA( -XM($C'A=C[__]5;FAS9L>%W/O__V@`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!T -XMZ??"@(```'4&P>H0@\$"`-*#V0,I^8U%Z(E-X,=$)`@`````B40D!(DT).@% -XM[___A%S/O__VQM973'A=#[__]A/7Y[QX74^___6RH_),>% -XMV/O__V`G(ES&A=S[__\`C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2@]D#*=F-1>B)3>#'1"0(`````(E$)`2)-"3HS.W_ -XM_X7`=`J[-0```.E>^/__@?M_H`@(="7'A% -XMT/O__W1H/3C&A=3[__\`B=F+`8/!!(V0__[^_O?0(<*!XH"`@(!TZ??"@(`` -XM`'4&P>H0@\$"`-*[-@```(/9`RN-O/O__XU5Z,=$)`@`````B4W@B50D!(DT -XM).A`[?__A<`/A=CW__^!O;S[__^,H`@(="?'A%T/O__VQL/3%FQX74^___-@"-CH0@\$"`-*[.0```(/9`RN-O/O__XU%Z,=$)`@````` -XMB4W@B40D!(DT).BP[/__A<`/A4CW__^!O;S[__^:H`@(=!W'A")5"0$B30DZ"KL__^%P`^%PO;__XV%R/O__\=$)`Q@P0@(QT0D"*2@"`C' -XM1"0$``0``(D$).C0*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NSX```"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3HI^O__X7`#X4_]O__]H8@`@```0^$QP$``(N&&`(``(T$0,'@`@-& -XM$(M`.(/H`='HA<")1?!U!\=%\`$```"+1?#'1"0(K*`(",=$)`0`!```B40D -XM#(V%R/O__XD$).@<*O__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("`=.GW -XMPH"```!U!L'J$(/!`@#2NS````"#V0,KC;S[__^-5>C'1"0(`````(E-X(E4 -XM)`2)-"3H\^K__X7`#X6+]?__BT80C57PB50D!(DT)/^08`@``+H!````A<`/ -XMA97U__^+1?`]6`(```^'U````,=%\`@```"+1?#'1"0(MZ`(",=$)`0`!``` -XMB40D#(V%R/O__XD$).AE*?__C8W(^___BP&#P02-D/_^_O[WT"'"@>*`@("` -XM=.GWPH"```!U!L'J$(/!`@#2NTD```"#V0,KC;S[__^-5>C'1"0(`````(E- -XMX(E4)`2)-"3H/.K__X7`#X74]/__H6"C"`B%P`^$L`$``(GS,?^)^,'@!(F% -XMP/O__XN`:*,("(/X`0^$9`$```^"L0```(/X`@^$`@$``(/X`XVT)@````!T -XM,^C-)?__/;`$``"-="8`#X>\````QT7P$````(UV`.D5____BX88`@``@^@! -XMT>CI0/[__P^VDP`!``"#X@$/A(````"+@_@```"-!$#!X`(#1A"+0#B%P`^5 -XMP(3`=#Z$TG19BX/X````C01`P>`"`T80BT`XQT0D$`````")1"0,QT0D"`L` -XM``")?"0$B30DZ!KF__^%P`^%\O/__XN%P/O__X/##(N`<*,("(7`#X3$```` -XM@\O___S'2Z:3R__^+&^ES\O__ -XMC78`58GE5U93@^PLBQ5@HP@(BWT,A=(/A)L"``#'1?``````Z8(```"+3>2- -XM!$F+30B-!('V@``!```!#X1>`@``BX#X````C01`P>`"`T$0BT`XA<`/E<"$ -XMP`^$%@(``(E4)`C'1"0$PJ`("(D\).CR(/__H:`4"0B%P`^%<0$```^_1PS! -XMZ`:#X`&$P`^%=`$``(M-\(N1<*,("(/!$(E-\(72#X0-`@``BT7P]H!LHP@( -XM"'7=BTWPP?@$B47DBX%HHP@(@_@"#X1D`0``#X)4____@_@#=9N+5>2+30B- -XM!%*-!('V@``!```!#X2=`0``BX#X````C01`P>`"`T$0BT`XA<`/E,"$P`^% -XM8____XE\)`S'1"0(!````,=$)`0!````QP0DXJ`(".AU)O__BU7PBX)@HP@( -XM#[8PB?&$R0^$L`$```^^V8E%[.MTC78`H0@A"0CV1)@V`G1QH:`4"0B%P`^% -XM=P$``(M'"(/H`87`B4<(#XC4`@``BP?&`%R#P`&)!Z&@%`D(A(&(/``8D'BTWL#[9Q`8/!`8E-[(GPA,`/A#2-!$F+30B-!('V@``!```!=&B+ -XM@/@```"-!$#!X`(#01"+0#B)1"0,B50D",=$)`34H`@(B3PDZ/4>___I_OW_ -XM_XE4)`C'1"0$RJ`("(D\).C<'O__Z>7]__^+@/@```"%P`^4P.EJ_O__BX#X -XM````A<`/E<#IJ?W__XN`^````.NB@\0L,CK;8GVH0@A"0CV1)@V`G1KBPV@%`D(A+%:`4"0B%TG5)BT<(@^@!A<")1PAX2HL' -XMB!B#P`&)!XM5Z`^V<@&#P@&)5>B)\83)=%T/OMF%VW@(.1W\(`D(?XF)\8#Y -XM7'2.BQ6@%`D(A=)TMXE\)`2)'"3H)\#P*D'6JB7PD!(D< -XM).@6)/__ZZ6)?"0$QP0D7````.A$'O__Z7#___^AH!0)"(7`=6>+1PB#Z`&% -XMP(E'"`^(G@```(L'Q@`*@\`!B0?I)/S__SM'&`^-(_W__XE\)`3'!"1<```` -XMZ+TC___I&/W__SM'&`^-%O___XE\)`3'!"1<````Z)\C___I"____XN`^``` -XM`.FT_O__B7PD!,<$)`H```#HOQW__^G(^___B7PD!,<$)#T```#HJAW__^E? -XM_O__.T<8#XU,_O__B7PD!,<$)#T```#H3"/__^E!_O__B7PD!,<$)`H```#H -XM-R/__XUV`.E]^___D)"0D)"0D)"0D)!5B>6+112+50B+`(7`=!&!HJP$``#_ -XM_]__,6+10B#B*P$```@,Q=PXN1&`(``(U"_^O+C012P>`"`T$0 -XMBT`X@^@!Z\>-M"8`````C;PG`````%6)Y5.#["2+70B-5?B+0Q")5"0$B1PD -XM_Y!@"```N@$```"%P'4+,-*!??C`$@``=P^#Q"2)T%M=PXVT)@````"+112) -XM1"0,BT40B40D"(M%#(D<)(E$)`3H$____X/$)%M=B<*)T,.)]HV\)P````!5 -XMB>53@^PDBUT(C57XBT,0B50D!(D<)/^08`@``+H!````A6#[!B+112+"(7)=2N+10C'1"00`````,=$ -XM)`P`````QT0D"`````#'1"0$0P```(D$).CFW/__R3'`PXGV58GE@^P8BT40 -XMB00DZ`,B__\QTJ@!=""+10C'1"0(F*D(",=$)`0#````B00DZ![*__^Z`0`` -XM`,F)T,.0C70F`%6)Y8/L&(M%$(D$).C#(?__,=*H`70@BT4(QT0D"-"I"`C' -XM1"0$`P```(D$).C>R?__N@$```#)B=##D(UT)@!5B>6#[!B+10C'1"0(#*H( -XM",=$)`0#````B00DZ*_)__\QP,G#C70F`(V\)P````!5B>6#["B)=?B+=12) -XM7?2+70B)??R+!H7`#X01`0``/?0!``!V,L=$)`ST`0``QT0D"&"J"`C'1"0$ -XM`P```(D<).A:R?__N`$```"+7?2+=?B+??R)[%W#B40D$,=$)`P`````QT0D -XM"`````#'1"0$&````(D<).BTV___BP:#^`$/A/D```"#Z`'1Z(F#A`````^V -XM@VP$``"#X`&)QP^%O````(N+9`0``(N#:`0``(G*.<$/A%L!``")^(3`=`R- -XM!%+!X`(#0Q"+4#B+!CG"#X8:`0``@^@!B40D$,=$)`P`````QT0D"`````#' -XM1"0$20```(D<).@SV___BP:#Z`&)1"00QT0D#`````#'1"0(`0```,=$)`1) -XM````B1PDZ`K;__\QP.D>____C78`QT0D#`$```#'1"0(-*H(",=$)`0#```` -XMB1PDZ%#(__^X`0```.GQ_O__C;8`````BY-D!```C012P>`"`T,0BT@XBT`\ -XMZ3C___^-M@`````/MH-L!```QX.$`````0```(/@`8G'=%^+DV0$``"-!%+! -XMX`(#0Q"+2#B+0#PYP70*B?B$P'50.Q9V-<=$)!`!````QT0D#`````#'1"0( -XM`````,=$)`1)````B1PDZ$W:___'1"00`0```.D6____,<#I5/[__XN+9`0` -XM`(N#:`0``(G*ZZ:-!%+!X`(#0Q"+4#CKHHL&Z;K^__^-="8`58GE@^P8BT44 -XMBP"#^!-V0#'2/?0!``!W!\F)T,.-=@#'1"0,]`$``,=$)`BXJ@@(QT0D!`,` -XM``"+10B)!"3H/53@^P$BUT( -XMB1PDZ*Z$__\QP(.+K`0``""#Q`1;76#[`B+ -XM11")1"0$BT4(B00DZ!C,__\QP,G#D)"0D%6)Y5=64X/L3(MU#(M]"(7V#X3I -XM`@``BU44BUX(@SH!#X1B`P``]D88`0^$G0```(M%'(7`=6*+312+`8/H`8M5 -XM&(/&"(E%\(/``3GSB0)U$.M-@T7P`8-'7`&+&SGS=#^+0Q")1"00BT,(B40D -XM#(M%\,=$)`0!````B3PDB40D".C*F/__A2)1"0,QT0D"`$```")5"0$B3PDZ`F1 -XM__^%P'6/A?\/A/,"``"+5Q"%THE5T`^$Y0(``/:"50@```$/A=@"``"+1>B+ -XM3=`#0Q"#P`$[07@/A[T#``"+3="+5="+272)3R!BE0(`````0`` -XMB4W4BT7HA`[`P^$\`(``(M5\(M#$(E$)!"+0PB)5"0( -XMQT0D!`$```")/"2)1"0,Z(66__^%P'3"NP$```"%_W03BT<0A#X1\ -XM`@``BT,0B40D$(M#"(E$)`R+1?#'1"0$`0```(D\)(E$)`CH8Y7__X7`=,7I -XME/S__XM%Z,=%[``````#0Q#'1<@`````QT74`````(/``0^$./W__XE$)`R- -XM1>R)1"0(QT0D!`````")/"3HNS8``(7`B47(B474#X4/_?__Z4+\__^!IE0( -XM``#__O__BU7`BT7$`T(0.T9X=V:+3G2)3R!CE0(`````0``B4W4 -XMZ:#]__\QP(-[$``/E<#I-_W__P^VA)`T!```Z9;^__^)1"0,C47LB40D"(M- -XMR(D\)(E,)`3H/38``(7`#X3/^___B47(B474Z5C]__^)1"0,C49XB40D"(M& -XM=(D\)(E$)`3H$#8``(7`#X2B^___B49TZ7#___^)1"0,B2)1"0$BT7(B00DZ,,6__^+5=B+3<@!5>0! -XMT8E-S.DS^___BTT8,=O'`0$```#'000`````Z33Z__^!H%0(``#__O__Z27Z -XM___'1"0$_P```(D\).C&>___Z>/\__^+5<2)5"0(BT7DB40D!(M-S(D,).A< -XM%O__BT7$`47,BU7PZ3/___^0D)"0D)"0D)"058GEBT4(5U93BT@0BU$(C7D( -XM.?IT"CG0=3N+$CG7=4"+41"-<1`Y\G1`BQHYWG1,BT($B4,$BT($.<9T.HD8 -XMBT$(B7H$B0(Y>0QT)HM!"(E0!(E1"%N)T%Y?7<.-="8`.=!U\3G0=/CKZS'2 -XMC70F`.OCB5$,Z]N)61#KPXM"!(E!%(L:Z["-=@"-O"<`````58GE5S'_5E.# -XM[`R+=0B+1@R#Z`&%P(E&#`^%'`$``(L6A=)T)(M>$(U#"#G"#X1&`0``BT8$ -XMB4($BTX$C4,(.<$/A$L!``")$8.FK`0``/._`0```(DT).B3P`$`B30DBN?C8;(````B00DZ.<3__^+AN`` -XM``"%P'6:ZZ"+1@2)0PR+7A"+3@2+%HU#"#G!#X6U_O__B5,(Z:_^__^-M@`` -XM``!5B>575E.#[`R+11"+=0B+?0S'``````#'1"0$L`0``,<$)`$```#H.!+_ -XM_X7`B<,/A%0"``"+11")&(M&!(/``87_B48$B4,(C4-XQT,,`0```(ES$,=# -XM+`(```")0WB)0WP/A.1H````@8NL!````(```(B#J````(N7P````#'` -XM@[^L``````^5P(72B8.L````="2+A\0```")5"0$B1PDB40D".C$+P``A<") -XM@\`````/A$8!``"+E]@```"+A\0```"%THF#Q````'0DBX?<````B50D!(D< -XM)(E$)`CHBB\``(7`B8/8````#X0,`0``BY?@````BX?<````A=*)@]P```!T -XM)(N'Y````(E4)`2)'"2)1"0(Z%`O``"%P(F#X`````^$T@```(N'Y````(F# -XMY````(N'[````(7`=$V--(4`````B30DZ&$2__^%P(F#Z````'1XBX?L```` -XMBY/H````B8/L````BX?P````B8/P````BX?H````B70D"(D4)(E$)`3H4Q+_ -XM_XE<)`2)/"3H0\___X7`=1^+AZP$``")7"0$B3PD@^`#"8.L!```Z(36``"% -XMP'1ZB1PDZ&C\__^X`0```(/$#%M>7UW#QT0D"`````#'1"0$!0```(D<).A3 -XMN___BY/H````A=(/A6+___^0C70F`,=$)`@`````QT0D!`4```")/"3H*+O_ -XM_^NFC;8`````QX.L`````````(E<)`2)/"3H"M8``(7`=8:)7"0$B3PDZ%J] -XM`0"%P`^%`/MDL!.,@/A`0!``"#[@$/A"`"```/OM`XP8E5V(M5X(G3=%*+5>") -XMT^LCC70F``^V"H/"`8@+@\,!@^X!#X35`0``#[8*#[[!.T78="B#_@%VW(#Y -XM7'77C4(!B47<#[9*`0^^P3M%V`^$2P$```^V"HM5W.N_B=Z#P@$K=>"+10R% -XMP'0%BT4,B1"+7>")]HM%$`^V51"+31")="0(@^`0@_@!&<"#XH"#X`2#P`*` -XM^@$9TH/A`??2"N!```0'59 -XMBT40QT0D$`````#'1"0,`````(/@$(/X`1G`@^`$@\`"B40D&(V'L````(E$ -XM)!2+A\0```")5"0$B3PDB40D".BT(`$`A7UW#C;0F`````(/$/#'`6UY?7<.#[@&# -XMP@+I*W7@Z5S^__^)^+("Z-3\__^X`0```.G3_O__BU7@Z4'^__^)]E6Z`@`` -XM`(GE5U93@^QLBT4@BW4(B40D"(M%'(E$)`2+11B)!"2+312)\.A1_?__A<`/ -XMA>````#V12`(#X3E````BU4,BP*)1>R+2@2#P0&)3<2+12"[9````#'_QT7` -XM`0```(/@$(E%K.M8D(UT)@"+AI0$``"-!$#!X`(#1A"+0#B%P`^4P(3`#X4N -XM`P``C47LB40D!(DT).BBA/__A<`/A<\"``"+1>R%P'1@@\`!OP$```")1>R# -XM;>P!QT7$`````(/K`8/[_P^$D0$``(7_=`Z+50R+`CM%[`^'OP(``(M5[(72 -XM=6B%_P^%L`(``/:&G`0```$/A7/___^+AI0$``"%P`^4P.EZ____]D4@$`^% -XMW@(``+L!````@\1LB=A;7E]=PXM5#(MZ!(7_#X6I`0``BQ*#^@$/A-`"``"- -XM0O^)1>SIFP$``(VV`````(U-Z(U%Y(E,)!")1"0,QT0D"`````")5"0$B30D -XMZ(Z!__^%P`^%^P$``(M%Z(V6L````(U-U,=%U`````#'1=@`````B47 -XM`0``BTW$QT6T`````(E-L(M%U(M5V(M-Z(E%R(/``8E5S(/2`#';@_H`B474 -XMB578#X[)````BT7LBTT0BU7(B0'V12`"#X7#`0``BT7H.<(/@K@!``"#^`&- -XM4/\9P/?0,=LAPHE1!.D:`0``BT80]H!4"```!`^%!0$``,=$)`P!````QT0D -XM"`````#'1"0$`````(DT).CP>/__A")1"00B50D#,=$)`@!````BT7DB40D!(M-O(D,).B2 -XM!___@_@!#X3O_O__A<`/A10!``"+1<2%P`^$MO[__X-]V``/C*S^__\/C\S^ -XM__^+3;`Y3=0/@IK^__^-M@````#IM?[__[L!````]D4@$(GV#X26_?__B30D -XMQT0D!`(```#H^OC__X/$;(G86UY?7575E.#[$R+12")1"0(BT4R)1"0,QT0D"`````")="0$BU4(B10DZ+E]__^%P`^$ -XM-0$``(M%T(7`#X7!````BTT(]H&R-??")?"00B50D#,=$)`@!````BTT,BP&)1"0$BT4(B00D -XMZ*)\__^%P'7#BU4,]D4@"(LR#X0=`0``BUH$A=L/A&K^__^#ZP'I8O[__XM5 -XM\(72=`2!P;````")3@`````B5W< -XMQT7@`````(E$)!"-1=R)1"0,QT0D"`$```"+1>R)#"2)1"0$Z.@#__^#^`%U -XM?8/&`3';Z:S^__^0C70F`(M%"(N`E`0``(7`#Y3`A,`/A(/^___V12`0#X05 -XM____BT4(N@$```#HH_7__^L-BT4(N@,```#HE/7__[L!````QT0D!`(```"+ -XM10B)!"3H3/7__X/$3(G86UY?7<.[`0```/9%(!!UV.G,_O__A<`/A+L```#V -XM12`0C;8`````#X3^````BU7(B40D!(E4)`B+30B)#"3HI!BT4,BU@$ -XM@\,!.UWP#X)&_?__@\8!,=N-5>R)?"00B50D#,=$)`@`````B70D!(M-"(D, -XM).@Y>___A<`/A!?]__^+10CV@)P$```!#X2N````B<*+@)0$``"-!$#!X`(# -XM0A"+2#B%R0^4P(3`#X3?_/__]D4@$`^$&_[__XM%"+H!````NP$```#HI/3_ -XM_^D)_O__BT70AP/A)\!``"+ -XM1>R+50PY4`AUY?9`)`%UWXMP&+L&````BW@4A?9^>##;ZS.-="8`BU4(#[;` -XMC01`C80`4`$```-"$(/`"(M5"(E$)`2)%"3H6]X```'#@^X!=!^#QP$/M@<\ -XM_W7*BT4(QT0D!/\```")!"3HIVG__^O+B=BZJZJJ*O?JB=C!^!\IPHT44@'2 -XM*=J-6@:%VWX@C;0F`````(M5",=$)`32U`@(B10DZ/W=```IPX7;?^>+1>R+ -XMR+$H72 -XMB57L#X5A_O__BT7P@\0<6UY?7<.+50@/ML"-!$"-A`!0`0```T(0@\`(BU4( -XMB40D!(D4).C9W```@^L!=*2#Q@$/M@8\_W7,BT4(QT0D!/\```")!"3H)VC_ -XM_^O-D(UT)@!5B>564X/L$(MU"(N>1`$``(7;=%"+0PR%P'0(B00DZ"`#__^+ -XM0Q2%P'0(B00DZ!$#__^+0QR%P'0(B00DZ`(#__^+$X72=`:+0P2)0@2+0P2) -XM$(D<).CI`O__BYY$`0``A=MUL(/$$%M>7<.-="8`58GE4X/L!(M="(L3A=)T -XM!HM#!(E"!(M#!(D0BT,,A(```"+ -XM31"+4Q0/MD$,.`(/A]````!R"(M]'#E["'1?BP.)7?"%P`^$T````(G#BT40 -XMA?````+31PY2PAUS_9#)`%UR8M+&(M%&#G( -XM=@*)R(M]%#G`B<'\\Z8/DL`/E\(HP@^^PNLHD(UT)@#V0R0!=9N+2QB+11@Y -XMR'=JB40D"(M%$(D4)(E$)`3HW?O__X/X`'\_#XQS____BU48.U,8D%_O__D(UT -XM)@#)N`$```##B?:-O"<`````58GE@^PXBT4DB77XBU44BW48B5WTB40D%(U% -XM\(E$)`2+10B)??R+?2#'1"08`````(ET)!")5"0,QT0D"`````")!"3H!_[_ -XM_X7`B<-T9?9%*`)U6XM%'(7`=$J%_XGV=$2+51R+10B)?"0(B50D!(D$).AH -XM'```A<")Q@^$I0$``(M#'(7`=`B)!"3H,P#__XE[(#'`B7,Q=PS'_,?;KUHUT)@`QP.OEQT0D!"@```#'!"0!````Z-S]_O^%P(G##X0Z -XM`0``BT4,A____QT,,`````(M5$(E3$(M%%(M5"(ET)`B)1"0$ -XMB10DZ((;``"%P(E#%`^$!`$``(ES&(M%'(7`#X2*````BT4____Z$+[_O^+,(M##(7`#X2(_O__B00DZ#W^_O_I>_[__XUT)@#H -XM'_O^_XLPBT,4B00DZ"+^_O_KT(VV`````(V_`````%6)Y5=64X/L'(M5"(MU -XM#(M"$(N`1`$``(7`B47D=17I3@(``(M%Y(L`A<")1>0/A#X"``"+1>2+510Y -XM4`AUY?9`)`ATWXM%$(7`=`^+11")="0$B00DZ)GW_O^+5>2+1>2+4A2)5>"+ -XM0!B%P(E%Z'5DZ<8```"#^WQT<#L=_"`)"'T,H0@A"0CV1)@V`G5%R+!HGZB!"#P`&)!H-MZ`%T9XM5X`^V.H/"`8E5X(GX#[;8@_L6=8NAH!0) -XM"(7`#X6(`0``BT8(@^@!A<")1@@/B#<"``"+!L8`%H/``8D&BT8(@^@!A<") -XM1@AYI#M&&'P%@/L*=9J)="0$B1PDZ.[[_O^#;>@!=9FAH!0)"(7`#X5(`@`` -XMBT8(@^@!A<")1@@/B$P"``"+!L8`((/``8D&BT7DBT`P/A,0```"+ -XM5>2+4B"%THE5\'50Z;(```"#^WQT7(#"`9`/A'L!``"+50B+0A"`O`-3!P`` -XM#'1"BPV@%`D(A+1>P/MCB#P`&)1>R)^@^VVH/[%G6?H:`4"0B%P`^%ZP```(M&"(/H`87` -XMB48(#XA8`0``BP;&`!:#P`&)!HM&"(/H`87`B48(>:0[1AA\!8#["G6:B70D -XM!(D<).CQ^O[_@VWP`769BQ6@%`D(A=(/A34!``"+1@B#Z`&%P(E&"`^(;`$` -XM`(L&Q@`*@\`!B0:+1>2+`(7`B47D#X7"_?__@\0<,% -XM://__P````#'A7#S__\`````QX5X\___`````(F%@//__\>%?//________' -XMA8SS__\`````QX60\___`````(F58//__XN%9//__XD$).C3^/[_A<`/A!0! -XM``"-6`B_<:P("/RY"````(G>\Z9UUHE<)!"+A8CS__^-E93S__^)%"3'1"0( -XMN90(",=$)`0`!```B40D#.@[]O[_C864\___QT0D"`````#'1"0$`@```(D$ -XM).@]]_[_@_C_B85L\___=(''1"00`0```(E$)`S'1"0(`````,=$)`0````` -XMBU4(B10DZ!//__P%^&\=$)`CXK0@(QT0D!`0```"+10B)!"3H>:#__XN5>//__SF5 -XM%=//__P$```#I;?[__XN5C//__XD4).BA -XM]O[_BX60\___B00DZ)/V_O^+E7SS__^)%"3H!?3^_X'$K`P``+H!````6XG0 -XM7E]=PXV5E/O__\=$)`0*````B10DZ+WQ_O^%P(F%A//__P^$0/[__XN-;//_ -XM_XV%E/?__[H`!```B85<\___Z/_[__^%P`^$'/[__XNU7//__[\TK`@(N1,` -XM``#\\Z8/A0/^__^-E93W___'1"0$"@```(D4).A<\?[_A<`/A.7]___&``"+ -XMA83S__^-=93&``"#A7#S__\!Z,GR_O_'``````"-A:?W__^)="0$B00DZ!'R -XM_O^%P'0/Z*CR_O^#.`*0#X1(`0``BY6`\___C86G^___B00DB50D!.CF\O[_ -XMA<`/A:3]__^#A7CS__\!B70D!(N%;//__XD$).BE]O[_BX6,\___A[_[_Z6_\ -XM___'1"0(`````,=$)`0%````BU4(B10DZ"J=___I3_S__\=$)`@`````QT0D -XM!`4```"+50B)%"3H"IW__XD<).@6]/[_Z2?\__^-M@````"-O"<`````58GE -XM5U93@>R,"```QT0D"`````#'1"0$*P```(M%"(D$).C)I?__N@$```"%P`^% -XM<@(``(M5"/:"!`,```$/A6\"``"+?0B+M_P"``")-"3HC^S^_X7`#X5X`@`` -XMQP0D0?$(".@+\/[_A<")A8CW__\/A%X"``"-A93[__^-E93W___'A8SW__\` -XM````B86$]___B96`]___C;0F`````(N5B/?__XD4).@V\_[_A<`/A,H!``"- -XM6`B_<:P("/RY"````(G>\Z9UUL=$)`13K`@(B1PDZ"KQ_O^%P(F%?/?__W2\ -XMBQ6@%`D(A=(/A5D"```/OT`.QT0D$`$```")1"0,QT0D"`````#'1"0$```` -XM`(M5"(D4).BC,___@_@"#X02`@``BX5\]___C964^___QT0D!``$``")%"2) -XM1"0(Z*[M_O^%P`^$N`$``(NUA/?__[@@K`@(N1,```#\B0$``(N5?/?__XV]E/?_ -XM_\=$)`0`!```B3PDB50D".A'[?[_A<`/A%$!``"+M8#W__^X-*P("+D3```` -XM_(G'\Z8/A38!``"-A93W___'1"0$"@```(D$).A^[?[_A<`/A!@!``#&``"+ -XMO9#W__^-=93&!P#H\N[^_\<``````(V%I_?__XET)`2)!"3H.N[^_X7`#X4\ -XM`0``H:`4"0B%P`^%1P$``(N5?/?__P^_0@Z)="0$B00DZ._R_O^-1;2)!"3H -XM!.W^_XV5I_O__XE4)`C'!"16K`@(B40D!.CZ[O[_QX6,]___`0```.FL```` -XMC;0F`````(N%C/?__X7`=0S'!"1AK`@(Z)[I_O^+O8CW__^)/"3H0/+^_S'2 -XM@<2,"```B=!;7E]=PXN"_`(``(T$0,'@`@-"$(MP.(DT).@7ZO[_A<`/A(C] -XM__^)="0(QT0D#$BL"`C'1"0$!0```(M]"(D\).@,G___@<2,"```N@$```!; -XMB=!>7UW#QT0D#&BN"`B)7"0(QT0D!`,```"+50B)%"3HVY[__XN%?/?__XD$ -XM).C!\/[_Z6C]__^+O7SW__^)/"3HKO#^_^E5_?__BX5\]___B00DZ*OO_O_I -XMF/W__^B1[?[_@S@"#X6V_O__B1PDZ-#K_O_KKXN]?/?__XD\).B`[_[_Z;#^ -XM__^-M"8`````58GE@>RH"```B77\B<:-19B)7?B)TXE$)`3'!"1ZK`@(Z)[L -XM_O^%P'0JB30DQT0D#(VL"`C'1"0(>JP(",=$)`0%````Z":>__^+7?B+=?R) -XM[%W#B5PD$(V=A/?__XD<),=$)`QZK`@(QT0D"*>L"`C'1"0$%`@``.B&[?[_ -XMB1PDZ%[K_O^+7?B+=?R)[%W#58GE@^PHB10DB5WTB=.)=?B)??R)SXE%\.AF -XM[O[_@_C_B<9T'P^W10B)'"2)1"0$Z&_O_O^)\(M=](MU^(M]_(GL7<.+1?#' -XM1"0,GZT("(E\)`C'1"0$!0```(D$).A]G?__Z]"-="8`C;PG`````%6)Y5>) -XMQU93BK^_[@!````@<1\%0``6UY? -XM7<.+A_P"``"-!$#!X`(#1Q"+<#CI-?[__XVV`````('$?!4``+@!````6UY? -XM7<.+E=3J__^+A7UW#BX7,ZO__BY70ZO__BQB-1?"+,HD$).B5Y_[_ -XMBY78ZO__QT0D1`:M"`B)7"1`QT0D/`NM"`B)5"1(C97P_O__B5PD.,=$)#08 -XMKP@(QT0D,$"O"`C'1"0L=*\("(E4)"C'1"0D$*T("(N5V.K__XE$)!"-A?#J -XM___'1"0<(:T("(ET)!B)5"0@QT0D%#RM"`C'1"0,2*T(",=$)`B8KP@(QT0D -XM!``0``")!"3H0>G^_SW_#P``B87@ZO__#X<+_O__A<"-M?#J__]U0>FN```` -XMQ@(*@\(!B=,I\XF5W.K__XE<)`B)="0$BY74ZO__B10DZ/OC_O\YPP^%G_[_ -XM_RF=X.K__XNUW.K__W1RBX7@ZO__@_@\C50P_W:UQT0D!`H```")-"3HEN;^ -XM_XG"*?"#^#Q^G#GR=IB)T.L(D(/J`3GR=A:`.B!U](G0*?"#^#P/CGK___^) -XMT.OCB<+I;____\=$)`@`````QT0D!`4```")/"3HU)/__^E%_O__BYW$ZO__ -XMA=MU!S'`Z7;]__^-E?#Z__^)^.A1^O__BX74ZO__B00DZ#?H_O^%P`^%Z_W_ -XM_S'`Z4S]__^-="8`58GE@>PH)```B7W\BWT(B5WTB77XBU\Q= -XMPY`Q]NOLBT,$QT0D!`L```")!"3_4!B%P`^%Y0$``/9%#`1T!(!+6"#V10P! -XM=*N+4U")^.BI^?__ZY^-M"8`````QT0D"`````#'1"0$*P```(D\).CHF___ -XMA<`/A9`!``#VAP0#```!#X7"`0``B[?\`@``C87T^___B70D#,=$)`AYK0@( -XMQT0D!``$``")!"3H3^?^_XGQB?B-E?3[___'!"2``0``Z,7Y__^)A>C;__^# -XMP`$/A#8!``"+1Q#'1"0(`0```,=$)`3DKP@(B3PD_Y!H"```BUM,QT0D"``` -XM``#'1"0$`````(F=[-O__XD<).@-Z/[_B87PV___@\`!=%>-A?3;__^)1"0$ -XMBX7PV___QT0D"``@``")!"3H(NK^_X/X`(G##XX9`0``,?;K!BG#=,T!QHV% -XM]-O__P'PB40D!(N%Z-O__XE<)`B)!"3HC^'^_X7`>=B+A>S;___'1"0,GZT( -XM",=$)`0%````B3PDB40D".C5EO__C87T^___O@$```")!"3H!N3^_XN%Z-O_ -XM_XD$).@XYO[_BT<0QT0D"`(```#'1"0$`````(D\)/^0:`@``.DC_O__C78` -XMQT0D"`$```#'1"0$`````(D\).@X//__A<`/A!#^__^^`0```.D&_O__C;8` -XM````]D4,`KX!````#X3Q_?__D.N^@&-8G[X!````QT0D#%ZM"`B+0TS'1"0$ -XM!0```(D\)(E$)`CH)I;__^G!_?__BX?\`@``C01`P>`"`T<0BW`XZ2W^__\/ -XMA0W___^+A>C;__^)!"3H>N7^_X7`#X49____C8WT^___N@$```")^#'VZ&KX -XM__^%P`^$'O___^GX_O__C;8`````C;PG`````%4QR8GE@^PHB77\BW4(B5WX -XMBUX<#[936(G0@^#]J$"(0UAT)HM#4(/BO8A36(7`="7'1"0$@`$``(M#3(D$ -XM).A`Y_[_,Q\!``` -XMBW4(QT0D"`````#'1"0$*P```(DT).A)F/__A'^__^058GE4X/L%(M=".BUX?[_QP``````BT44B40D"(M% -XM$(E$)`2+10R)!"3HAN'^_XD#Z(_A_O^Z`0```(L`A'^_\<``````(M%%(E$)`B+11")1"0$BT4,B00DZ/;?_O^)`^@?X?[_ -XMN@$```"+"(7)=0B#Q!2)T%M=P^@'X?[_@S@B=`Z#Q!0QTEN)T%W#C70F`(,[ -XM_[H"````=>B#Q!2)T%M=PXVT)@````"-O"<`````58GE@^P8B77\BW40B5WX -XMC48!B00DZ"KC_O^%P'0EB<.+10R)="0(B1PDB40D!.A!X_[_Q@0S`(G8BW7\ -XMBUWXB>Q=PXM%"#';QT0D"`````#'1"0$!0```(D$).APC/__Z]6-M"8````` -XMC;PG`````%6)Y5.#[!2+70C'1"0$+P```(D<).@ZW_[_A7UW# -XMBT7LAQT*0^V`SP@=.8\"73BB0^#Q"PQP%M>7UW# -XMC;8`````@\0L,6#[!B+ -XM112)7?2+70R)??R+?1")=?B%P'54/0`!``"+%W)8A=N--`)T78D<)(ET)`3H -XMS-S^_XG#A=MT5XL'B?+'1"0$`````"G"`=B)5"0(B00DZ*K>_O^)-XG8BW7X -XMBUWTBWW\B>Q=PY"-="8`BQ53@^PDBT44BUT(@_@"=&Z#^`-T287`=27'1"0(`````,=$)`0% -XM````B1PDZ&V*__^#Q"1;7<.-M"8`````BTL)___I-?___^A1V_[_C47XB40D -XM!(D<).A^5___A<`/A1G___^+1?B%P`^$>?___XE$)`S'1"0(`+((",=$)`0# -XM````B1PDZ%^)___I[?[__XM5##'`A=)T!8M5#(L"QT0D"`0```")1"0$B1PD -XMZ%A4`0#IQO[__XUV`%6)Y5=64X/L#(L]P,P("(E%\(E5[(7_=$( -XM1>NXP,P("#A5ZWT6ZS*)]HM[&(7_="D/MA>-0Q@X5>M\'CA5ZXG#=>>+3>R+ -XM=?#\.Q`/MC>-1MP\.`^&)@$``(M# -XM%(7`#X01`0``BTL0#[8QB?`/OM"%TGA#.17\(`D(?R_K.8M#%(U1`8E3$(/H -XM`87`B4,4#X3A````#[8RB=&)\`^^T(72>!0[%?P@"0A]#*$((0D(]D20-@)U -XMQX/Z?P^'R@```/8$E=T4"0@$#X2\````BTT(BS&%]G47QP$!````BU7=='I)/___X-K%`&ZT)D%"(E+$(`Y+W0%NC"5!0B+3=R+ -XM04R+3=B)`8M-W(M!4(M-V(E!!(N#@````"4````!@_@!&<`PP`5P`0``B40D -XM&(U%[(E$)!2+0Q2)1"00BT,0B4PD"(E,)`2)1"0,BT7Q0!#X:R````BU,0#[Y"`8/X?P^'H@```/8$A=T4 -XM"0@$#X24````Q@(KZ7?]__^+50C'`@$```"!BX````````0`@WL4`0^$,@,` -XM`,=$)`P#````BU78B50D"(M#$`^^0`&)1"0$BTWS'`@$` -XM``"!BX````````0`QT0D#`H```")1"0(BT,0B40D!(U%\(D$).CN]O__@_@! -XM#X6L````BT7PBU78B0+'0@0`````BU7LB=`K0Q`I0Q2)4Q#I?_S__[K0F04( -XMZ=O]__^#^G\/AZ0```#V!)7=%`D(!`^$E@```(#Y+0^$'0$``#'_@/E>#X02 -XM`0``C47LC57PQT0D#`H```")1"0(B70D!(D4).AP]O__@_@!=3*#?>``#XR@ -XM````D`^.L````(M5\(72D(UT)@!^$+C___]_*T7@.=`/@Y0```"X`@```(E$ -XM)`S'1"0(`P```,=$)`0`````BTW`%%X(-#$`&-1_^)0Q3I(OS__XM5\(72>1"X````@"M%X#G" -XM#XT!`0``A?]T1HM%\/?8BU7L`47@B=`K0Q`I0Q2)4Q#I[/O___8$E=T4"0@$ -XM=(WIVO[__X-K%`&_`0```(U&`8G&B4,0Z=C^__^-M@````"+1?#KNK@!```` -XMZX&+3=B+1>"+$??8.=`/A@_\___'1"0(C+((",=$)`0#````BT7" -XM__^+50S'`@$```#I\?O__X/$/+@!````6UY?7<.+>Q`/MC?'!"0*L0@(B?(/ -XMOL*)1"0$Z"75_O^%P`^$FOK__\=$)`P!````QT0D"`$```#'1"0$`````(M- -XMW(D,).CF]___BT4,QP`!````,<#ID/O__X-#$`*#:Q0"Z67Z__^X`P```.EF -XM_O__QT0D#`(```#'1"0(`P```,=$)`0`````BT7575KX"````4X/L+(M=#(M%$(M]",<``````,=#8``` -XM``"+0Q2%P'1_BTL0#[81C4+W/#(/AJ0```"+11"-3>B)VHE$)`2-1?")!"2) -XM^.@K^?__A<`/A4<"``"+11"+`(7`=6J+1?"%P'0]A?8/A#D"``"+0V"#^`$/ -XMA)H!``"#^`(/A'(!```Q]H7`=92+1>B+5>S'0V`!````B4-DBT,4B5-HAG<_O__]H.#````!`^%>____XM7'(72#X01 -XM`0``A?8/A$8!``"-0VR)1"0$B3PDZ$E.__^%P`^%)0$``#'`@WML`,=#<``` -XM``#'0V@`````#Y7`,?:#0Q`!@VL4`8E#9,=#8`(```#I=?[__Y"+0V"#^`%T -XM?8/X`@^$D@```(7`#X5M____C;0F`````.BOT?[_BU-LBT-PB5-DB4-HBT=, -XMB4-LBT=0QT-@`@```(E#<`^V$>DU____BU-L,?:+0W")4V2)0VB+1>B+5>R) -XM0VR)4W#I"?[__XM%Z#'VBU7LQT-@`@```(E#;(E3<.GO_?__BT-DO@$```") -XM1TR+0VB)1U"#0Q`!@VL4`>G1_?__BT-LO@$```")1TR+0W")1U"#0Q`!@VL4 -XM`>FS_?__QT0D#`$```#'1"0(`0```(D\),=$)`0`````Z)_T__^+11#'``$` -XM``"#Q"PQP%M>7UW#N`$```#I)/[__\=$)`P!````QT0D"`````#KP8M#8(/X -XM`71<@_@"=$N%P)`/A>G]__^+1TR)0V2+1U#'0V`!````B4-H,<#IXOW__\=$ -XM)`BXL@@(QT0D!`,```")/"3HR'[__XM%$,<``0```#'`Z;K]__^+4VR+0W") -XM4V2)0VB+1TR)0VR+1U#'0V`"````B4-PZ8C]__^-="8`58GE5U93@>R,```` -XMBT4(BU4(BTT(BT`0@\%,B464BY*8````B560BUA\B4V$BT,(A%"+1:`[!?P@"0A]1:$((0D(BU6@]D20 -XM-@)T-KX!````BTL4@T,0`8/I`87)B4L4=#&+0Q`/M@`/OM`\"HE5H'6YBTV4 -XM@X$(`0```8-##`'KSX7)=`J#?:`Z#X0[`0``BTL4A0`````Z?$%``"0BTL4@^D!A2)3"0(B5PD!(DT).C)^?__A<`/A5H%``"+5>2%T@^%D0X` -XM`(M#%(7`=$*+>Q`/MA!0[!?P@"0A]#*$((0D(]D2P-@)U -XM"8#Z.@^%Y@,``(U'`8E#$(M#%(/H`87`B4,4=;['0R!0T`@(BW60BT8H"8.` -XM````BT-@A`P`` -XMQT6L`0```.G2`P``H0@A"0B+?:#V1+@V`@^$UOW__XM+%(U"`8E#$(/I`87) -XMB4L4#X0__/__B<(/O@"%P(E%H`^(K_W__SL%_"`)"'R^Z:+]__^)]HM#%(/H -XM`87`B4,4#X2Z`0``BU,0C4(!B4,0@'H!"G7@@8N```````"``(-#$`&#:Q0! -XMBTV4BUE\Z=#Z__^+182+50B)1"0$B10DZ!%'__^%P`^%X@(``(M-",=!4``` -XM``"+@X`````E__^__XF#@````.G#^O__BU9(BT9,B580C0P"B10DB40D"(E, -XM)`3H@<_^_XM&3(E&%(M'"(M5"(E"3(E&1(/``8E'"`^V1E"H#`^$>_S__XM% -XM"(&(K`0``````@"+592+6GR+2Q2%R0^%./K__^EI_/__C;8`````BW,4A?:) -XM\0^$>P(``(M]C`^V%X#Z(0^$EA0```^^\H7V>!0Y-?P@"0A^#*$((0D(]D2P -XM-@)U38#Z*P^$G!0``(MS%,=%G`````#'19@`````QT6P`````.E<_O__#[X7 -XMA=(/B.$1```[%?P@"0@/C=41``"A""$)"/9$D#8"#X3%$0``BWL0C4'_B4,4 -XMB<&#QP&%P(E[$'7$,?:+>Q")\,=%K`````#'19@`````QT6<`````,=%L``` -XM``#IZ`$``(M3(.DE_?__@:.`````___^_^GR_/__BTT(B[F0`@``A?\/E<#I -XMQ_S__XM#$(`X"@^$2?[__XMUE(M>?.DK^?__BT4(]H"L!````@^%-OK__XN3 -XM@````/;&"`^$I?O__^DB^O__@/I\#X0D_/__@/H*#X0;_/__BT6@QP0D5;$( -XM"(E$)`3HN-2KN`^1\/ -XMABP4```Q]HM5J(GXZ.'M__^%P(E#(`^$0QP``(M3(('Z.-,("(G1#X2.&P`` -XMA?8/A#$6```/MT$(]L0!#X4K%@``@?E0T`@(#X06%@``@?F8T`@(#X0*%@`` -XM#[8/#[[1A=)X%#L5_"`)"'T,H0@A"0B+E)`T"```B!?I_1L``(UV`(M#2(D$ -XM).BIS?[_BQ.%TG0&BT,$B4($BT,$B1")'"3HD,W^_XM>?#E=P`^%7@H``,=# -XM%`````"+50C'1"0$`@```(D4).CV-/__A7UW#BWV,,<#'19P`````QT6L`````,=%F`````#'1;`````` -XMA<`/A'0@``")^.L\B?*`^A9T9(-]H`H/A,4```"#?:!\#X2[````#[9-H(@/ -XMBT,0@VL4`8M3%(/``8E#$(72#X2\````@\Q0!=I:+0Q`/OD`!@_@* -XMB47D=6J+=92#A@@!```!@T,,`8-%G`&#:Q0!@T,0`8M%Y(E%H.EV____BU4( -XMBT(0@+A2!P``_P^%3____XM-H(D4)(E,)`3HY#7__X/X$G2?@WV@"@^%.___ -XM_XGR@/H*#X1#$```@VL4`8MS%.L-@_A\#X4H____ZYDQ]HM#$(M3&(ES'(/` -XM`8E#&"G0B5,0*T6<@^@!@7L@H-$("(E#%`^$L0X``(N#@````(G"@^(/@_H" -XM#X0<#@``#X?`````@^H!#X7-````BU-@A=*)]@^%=!````T```@`J"#'0V`! -XM````B8.`````#X5V&P``BU4(BT),B4-DBTT(@7L@P,P("(M!4(E#:`^%GP`` -XM`,=#8`(```"+50B+0DR#P`&)0V2+30CV@4`#```!BU%,#X4V$```BW4(BX8X -XM`P```=")0VR+?0B+1U")0W")0VB-1?")1"0$B3PDZ/)!__^%P`^%!0<``(M% -XM\(7`=$$[1TQV/#M#;',WB4-LZS*-="8`@_H$#X3F`@``@_H(C70F``^$7@,` -XM`(MS8(7V#X6E!@``@7L@P,P("`^$8?___XM#(,=#7`````"+>`P/MC>)\(3` -XM#X26&@``BTL4B?*`^B$/A'$$``"%R71GBT,0#[X0A=(/B,4#```Y%?P@"0@/ -XMCKD#``"A""$)"/9$D#8"=2SIJ`,```^^$H72#XB:`P``.Q7\(`D(#XV.`P`` -XMH0@A"0CV1)`V`@^$?@,``(M3$(U!_XE#%(G!@\(!A<")4Q!UQ,=$)`2WL0@( -XMB3PDZ)/)_O^%P`^%[04``(M#8(/X`0^$P`0``(/X`@^$,@L``(M-"(N#@``` -XM`(N1K`0``/;"`@^%?P,``/;$0`^%=@,``*D```0`#X59#0``@^(!C78`=`>+ -XM10B#0"P!BU4(BTH((``"+ -XM30CV@:X$```"#X72"```]H$8`0```0^%P1<``(MU"(N&$`$``(7`#Y7`A,`/ -XMA*\(``#V@X````!`#X2B"```N@`0``#IG`@``,=#8`$```"+1TR#P`&)0V2+ -XM1U")0VCIWO7__XM38(72#X6%````#0``"`")@X````#'0V`"````BW4(BT8< -XMA<`/A+$3``"+?0B-0VR)1"0$B3PDZ*0^__^%P`^%MP,``/:#@````"`/A)$1 -XM``"+0VR%P`^%AA$``(.+@````!#'0V0`````@XN`````!,=#<`````#'0V@` -XM````Z:W\__^+4V"%T@^$HOS__X/J`0^%F?S__XM39(M#:,=#8`(```")4VR) -XM0W#I@?S__XMS%(M]C(7VB?`/A'$2``")^<=%G`````#K+(#Z"@^$UO?__P^V -XM1:"(`8M[$(-K%`&+Q"%]HGP#X0`^O__@\$!#[87#[["@/IL!```Z3'[__\/ML#_)(5(M@@(9H-+?""#:Q0!@T,0 -XM`8MS%(7VB?$/A.?^__^+0Q`/M@`\+@^$XPT```^/*P@``#PK#X3?#0``/"V) -XM]G3$B?'IOO[__SPCD(UT)@!U\(&C@````/___O]F@4M\``*+39"!22@``@`` -XM@VL4`8-#$`&+O$B4PD#(M-"(M#$(E<)`2)#"2)1"0(Z"XN``"%P'55 -XM#[9'`8U7`3Q.#X0T^O__#[[`@^@PB47D@'H!;P^$4`L``(MUD(M6)#G0#X03 -XM^O__BT,@BW4(BT`0QT0D"+JQ"`C'1"0$`P```(DT)(E$)`SH]6S__XM['(7_ -XM#X6C````BW,4A?9U+XUV`.F"````@/H6=%>#_@J-=@`/A!H/``"#_GP/A!$/ -XM``"+0Q2#Z`&%P(E#%'14BT,0#[80@\`!]H."`````HE#$`^^\G7!B?`\_P^$ -XM7`8``(M]"`^VP(M7$("\`E,'```2=:F+0Q2#^`%VH8/H`8E#%(M#%(-#$`&# -XMZ`&%P(E#%'6LBTL?(V&@````(E%P#G##X2B]?__]D-0 -XM#P^$<_7__XM3/(U[/#GZ=2?I6?7__XM"!(E!!(M"!#G'="J)"(D4).CVPO[_ -XMBU,\.=2%T@^%;O[__XM%Z(7`#X3& -XM%0``BT74A<`/A<R)!"3H!]W__X/X`0^%VQ0``(M-[(7)#X02$0``BT7@*T,0*4,4BT7@ -XMB4,0@#]A#X35$0``BT7LB4-89H-+?`2+2Q3I?_O__XM#$`^V,(GR@/HK#X0K -XM"0``@/HM#X0B"0``@/I>#X09"0``@/HCB?8/A`X)``")\0^^P8/X?W<.]@2% -XMW10)"`0/A>+Z__^#:Q0!B?"#0Q`!9H-+?`&+2Q2(0U'I'_O__XM[$(E]R(E] -XMX(M#%(7`#X3R````@\(7V>!@[-?P@"0A]$*$((0D(]D2P -XM-@(/A;L```"+5<2)^(A"_X-K%`�Q`!@T7$`8M#%(7`#X2J````BT7$B47( -XM@^@!B47,BT,0]H."`````@^V.(GZ#[[R=:")\#S_#X2'"```BTT(#[;`BU$0 -XM@+P"4P<``!)UB(M#%(/X`7:`BU,0@^@!B4,4C4(!B4,0#[9"`8M-Q(A!_^N) -XM,<"!>R#8S`@(B4PD#(M-"`^4P(E$)!"+0Q")7"0$B0PDB40D".AB,P``A<`/ -XMA#/V___I0/S__Y"-="8`@T,0`8-K%`&+=`I1Q")?8P/O@>% -XMP(E%H`^(W`D``#D%_"`)"`^.T`D``*$((0D(BU6@]D20-@)U,NF\"0``#[X" -XMA<")1:`/B*L)```[!?P@"0@/C9\)``"A""$)"(MUH/9$L#8"#X2,"0``BU,0 -XMC4'_B4,4B<&#P@&%P(E3$'6^Z5K[__^%TG0KBWT(BT=,QT78`````(E4)!") -XM7"0$B474C474B40D#(E$)`B)/"3H)9\``(M%F(7`=%GV@X(````"#X1.`P`` -XMBT68BU6P@'P0_Q8/E,"$P'01BU,8C4+_B4,8QD+_%H-#'`&+39@I2Q@!2QR+ -XM0QB+=;")3"0(B00DB70D!.B3OO[_@8N```````!``(M#&(E#$(M#'(E#%(M] -XM"(N7K`0``/;&'G5BBT64BUA\Z5WI__^+0VR%P`^%/?G__XN#@````*@0#X5L -XM^?__BWT(]H>L!````74+J0````(/A57Y___'1"0,`0```,=$)`@$````BT,@ -XMB40D!(M%"(D$).C.W/__Z73Z__^+30B+01"+6'R%VW15,?\Q]H![4`AV!>@! -XMN?[_#[9#4/\DA62W"`B%_W4@BWT(QT0D"*RS"`C'1"0$`P```(D\)+\!```` -XMZ!YG__^+&X7;=<`)]P^%R?K__XM-"(N1K`0``(#F%@^$9>___^G,ZO__A?9U -XMUXM%"&:^`0#'1"0(Y+,(",=$)`0#````B00DZ-9F__^+&X7;#X5T____Z[*+ -XM30B+D:P$``#VP@%U"ZD````"#X7.\___QT0D#`$```"+=0C'1"0(!````(M# -XM((DT)(E$)`3H[]O__^F5^?__BU-@A=(/A1[V__\-```(`,=#8`(```")@X`` -XM``"+30B+44R#^@$/A,X$``")4VR)4V2+?0B+1U")0W")0VCIB/+__P^V%X#Z -XM*P^%Z^W__^F"`@``BU4(BT(0@+A2!P``_P^%3?G__XET)`2)%"3HYR;__X/X -XM$@^%./G__^F*^?__A<"-M"8`````=1?I/_'__X/H`8VV``````^$,/'__X/" -XM`8`Z7(UT)@!UY<8"%NO@BWT(B40D!(D\).@:,___A<`/A"4/``"+EZP$``"+ -XM@X````#ISO+__SP]#X2_!0``/%X/A=/W__]F@TM\`NF2]___/&R0C70F``^$ -XMOP4``#QP#X6T]___9H%+?``0BT60@4@H`!```.G)]___BWT(BT=,B474BT=0 -XMB478C474@:.`````___[_\=$)`P!````B40D",=$)`0G````B3PDZ+55__^% -XMP`^%./C__XN7K`0``.E<\O__B10DZ)IB___I'//__XM-"(E$)`2)#"3H5C+_ -XM_X7`#X2U!P``BT9$BWT(B4=,Z63H__^)%"3HZ$;__^E#\O__BTV8BW6P#[9$ -XM,?\\_P^$"P,``(M]"`^VP(M7$("\`E,'```2#Y3`Z93\__^!BX```````(`` -XMZ:[O__^+4VR+=0B%THG0BTY,=06X`0```#G!#X1<]?__A=)U`K(!BWT(B?B) -XM5TR#P%#'1U``````B40D"(E4)`2)/"3H--C__^DO]?__BU-DBT4(A=*+2$R) -XMT'4%N`$````YP0^$$_7__X72=0*R`8M-"(G(B5%,@\!0QT%0`````(E$)`B) -XM5"0$B0PDZ.O7___IYO3__X/Z`@^%3O#__XM3;(M#<,=#8`$```")4V2)0VCI -XM-O#__XN!.`,``(T$0,'@`@-!$(M`..F\[___@VL4`8MS%(U'`6:!2WP``8E# -XM$(7VB?&)0Q@/A,GK__\/MA")Q^E`Z___BT,4@\!Z+1:`[!?P@"0A]$Z$((0D(BU6@ -XM]D20-@(/A5`#```/MDV@B`Z+0Q"#:Q0!BU,4@\`!B4,0A=(/A#(#``"#Q@$/ -XMM@`/OM")5:#V@X(````"=:0/MD6@//\/A#H"``"+30@/ML"+41"`O`)3!P`` -XM$G6)BT,4@_@!=HP!@^@!BU,0B4,4C4(!B4,0#[Y2`8E5H.N*N`$```#3 -XMX*D#B@(`#X5%!0``A<`/B;KK__^+%7#."`B)^8E5X`^V!SH"=1"#P0&#P@&) -XM5>`/M@$Z`G3P/&QT&SQP=!<\*W03/"UT#SQ>C78`=`@\(P^%>>O__XM#$#'V -XMB4L0*<@!0Q2A<,X("(E#)*%TS@@(B4,HH7C."`B)0RRA?,X("(E#,*&`S@@( -XMQT,P>;$("(E#-*&$S@@(B4,XC4,DB4,@Z4'K__^+0Q"`.`0/A(SF__^`YG^) -XMDX````#I?N;__ZD````"=0V!>R#`S`@(#X6G[___BWT(BU64QT0D!`$```") -XM/"3_DGP(``#IB^___X`_*P^%E/+__SPKB?8/A/+V__\\+0^%@O+__V:#2WP( -XMZ?#V__^+?9"+5R2%T@^$P^[__^FC]/__BU4(BT(0@+A2!P``_P^%I/G__\=$ -XM)`3_____B10DZ'(B__^#^!(/A8OY___I=?G__XUT)@"H(`^$*OO__XU%\(E$ -XM)`2)#"3H:2___X7`#X5\]/__BWWPA?\/A9L*``"#BX`````0QT-L`````,=# -XM9`````#I]/K__\=$)`0Q````B3PDZ+"S_O^%P`^%U/'__^G5]O__BT,4A<`/ -XMA`7N__^-="8`Z0'T__^+50B+0A"`N%('``#_#X4!]___B70D!(D4).C,(?__ -XM@_@2#X7L]O__Z5_W__^+50B+0A"`N%('``#_#X5/_?__BTV@B10DB4PD!.B< -XM(?__@_@2#X4W_?__Z:G]__\Q]HM3(`^W0@CVQ`)T+XM5"/:"9`,```$/A)<# -XM``"+@EP#``"-!$#!X`(#0A"+0#B%P`^5P(3`#X71"@``@?DXS0@(#X0O!0`` -XM@?EHS0@(#X1N!@``@?GPS`@(#X2"!@``@?F0SP@(#X1F!@``@?E0T`@(#X0T -XM!P``@:.`````_____>DOY?__@VL4`8/``6:!2WP``8M+%(E#$.D5\?__,?;I -XMO^+__XM#$(G&*?Z)=9B+0`````BW,4A?8/A'P```"+0Q`/O@"%P(E%H`^(E3`0``C78`#[X`A<")1:`/ -XMB$(!```[!?P@"0@/C38!``"A""$)"(M-H/9$B#8"#X0C`0``QT7D`0```(M# -XM$(-K%`&+"+0Q2%P'4FZ9T```")\H#Z%G1,B?"(!X-K -XM%`&#QP&+0Q2#0Q`!A<`/A'P```"+0Q`/MC")\`^^P(E%H/:#@@````)UR`^V -XM1:`\_W0RBTT(#[;`BU$0@+P"4P<``!)UM(M#%(/X`7:LBU,0@^@!B4,4C4(! -XMB4,0#[9"`8@'ZYF+50B+0A"`N%('``#_=8:+3:")%"2)3"0$Z"T?__^#^!(/ -XMA6[____KN(GVBT7@BU4(B5PD!"G'B7PD#(E$)`B)%"3HA"$``(7`#X0EZ___ -XMZ3+Q__^-M"8`````A?:)\`^$[O[__X-]H"&)]@^%XO[__X%[(/C0"`AT"XM] -XMY(7_#X3._O__A?8/A"\(``"+>Q`/MA>`^@IU$8UV`.F.Y?__@#\*#X0T!0`` -XMBWL0@^@!B4,4@\Q!UY,=%G`````#IM^?__XUV`(-[%`$/AD;Q___' -XM0QP!````Z5/Q__\/OM*%TG@4.Q7\(`D(?0RA""$)"(N4D#0$``"^`0```(@7 -XMZ5CF__^)T/?8.4%,#X>TZ___QT0D"&2S"`C'1"0$`P```(D,).A.7?__Z53P -XM__^+182+50B)1"0$B10DZ"3__P^V!SP\#X7V^O__#[[`B46@BTL4A -XM``"%P`^%UNW__XM+(.E:^O__#[8/@/EK#X1]`0``@/ES#X2N`@``A?8/A>'C -XM__^+10B%P)`/A#("``"+50B+P_O^+=;R+?0C'1"0,?[$(",=$)`0#````B70D"(D\).@Q7___ -XMBWT(BT<0AQ"+0Q3'19P`````Z:7C__^`/S`/A.7N -XM__^+?0C'1"0(G;$(",=$)`0#````B3PDZ'U9___I@^S__XN!$`$``(T$0,'@ -XM`@-!$(M`.(7`#Y7`Z3'H__^+30C'1"0$_____XD,).@Y%?__Z;SI__]F@TM\ -XM$.E2[O__@WVH`HVV``````^%?/[__X-K$`&Y>,\("(-#%`''0R!XSP@(Z1SB -XM__^+39#'02@`$```Z;WX__^+2Q3I`>K__XMU"(U%\(E$)`2)-"3HV";__X7` -XM#X7KZ___BT7PAR)0VSI%^[__XM]"(M'3(E#9.DWY/__N@H```")QL=%G`````#I1>#_ -XM_XL"QT0D".RR"`C'1"0$`P```(D\)(E$)`SH;5C__^ESZ___BT6HQT7<```` -XM`,=%O`````"#P`$/A>L"``"+5:B+1;S&!!``B50D"(E\)`2)!"3HV*[^_XMU -XM"(M-O,=$)`Q_L0@(QT0D!`,```")-"2)3"0(Z")=__^%]@^%Z?W__^GZ_?__ -XMD(UT)@"#?:@!="B+1:@QTH/H`8E%B`^V1#H!/&-T##QG=`@\<@^%+/W__X/" -XM`3M5B'7CBT,0@\`!*T6HB4,0BT,4@^@!`T6HB4,4H7#1"`B)0R2A=-$("(E# -XM**%XT0@(QT,H4-T&"(E#+*%\T0@(B4,PH8#1"`B)0S2AA-$("(E#.(U#)(E# -XM(.ERX/__BU,4C4$!B4,0@^H!A=*)4Q3'1:0"````#X3E````BTL0#[8!/%QT -XM+P^^P#G'#Y3`#[;`*46D@VL4`8MS%(-#$`&%]HGR#X0%^/__BTVDA(E$)`B+1G2) -XM1"0$BT4(B00DZ-7*__^%P`^$..G__XE&=.FU^___BW4(QT0D#`$```#'1"0( -XM`@```,=$)`0`````B30DZ&++___I".G__XM3$(E5C.D"^___@:!4"```__[_ -XM_^GNZ/__BW4(B40D#,=$)`@#````QT0D!`````")-"3H),O__^G*Z/__BWL0 -XMQT6<`````.FTW___QT0D"`@```"+50B+`8D4)(E$)`3HMR`!`.F=Z/__QT0D -XM#!BS"`B+=0B+0Q#'1"0$`P```(DT)(E$)`CH@%K__^EVZ/__BW,4Z7_@__^+ -XM30B)1"0,C47575E.#[!R+10B)1?"+,(M^$(DT).C$'@$`A4"```BQ.%TG0&BT,$B4($BT,$ -XMB1"+0PR)!"3HM:O^_XD<).BMJ_[_BU]LA=MUM_:'5`@``!`/A9,"``"-5GB[ -XM(`H``(V'D````(E5[(E%Z.FH`0``BX8T`0``BU80C01`BTR".(7)#Y7`A,!T -XM`X/+0/:&[`(```$/A.,!``"+AN0"``"-!$"+1((XA<`/E<"$P'0&@'D````-+4"`C'AY0````!````QX<``0```(`` -XM`(DT).C:U/__A,`````8N&K`0` -XM`*D````"=!&I```$`'1W@::L!```_____8DT).C.@@``]H8\`0```0^%)?[_ -XM_XN&-`$``(M6$(7`#Y7`Z2?^___'1"0$)KH("(DT).CN@@``B30DZ):"``#K -XMF8UT)@"+AN0"``"%P`^5P.D?_O__BT((B8>0````BT(0B8>4````Z;W^___' -XM1"0(`````(M&3(DT)(E$)`3HLDG__^EM____@>(`!```B50D",=$)`0````` -XMB30DZ-/\_O^%P'0U@\0'C`````$```#'AX@```#(L0@( -XMZ53]__^+5?`QP(DR@\0<6UY?7<.)-"3H(I+__XM5\(D"B74(@\0<6UY?7>F> -XMDO__D)"0D)"0D)"0D)"0D)!5B>564X/L$(M%#(MU"(M`=(L8BT80]H!4"``` -XM`70CQT0D#`````"+0PB)1"0(BP.)-"2)1"0$Z%2G__\QTH7`="/'1"0,B+<( -XM"(L#QT0D!`,```")-"2)1"0(Z%!6__^Z`0```(/$$(G06UY=PXGV58GE5U93 -XM@^P\BT4,BU!XA=)U+\=$)`@`````QT0D!`````"+10B)!"3HHJ+__S'2A<`/ -XMA&L!``"#Q#R)T%M>7UW#@_H"=`7HF*+^_XM`=(E%X(L`BSB)?>B+0`B)1>0/ -XMMDP'_P^VT3L5_"`)"`^-_0```*$((0D(]T20-``%```/A.H```"+1>@/M@B$ -XMR70NBQW\(`D(B@/ML`YV'T+]D2&-@(/A80!```/MD(!@\(! -XMA,!UXX-]Y`(/A@(!``"+=>2#[@(/A/8```"+/?P@"0BA""$)"(M5Z(E]W(E% -XM[.L2C;8`````@\(!@^X!#X3.````#[;!.T7S&1?,!]T2#-``%``!U -XM!X#Y7P^41?,/MDH!#[;!.47R[`0```/=$AS0`!0``=0R-M@````"` -XM^5\/E,,Z7?-TI<=$)`@PN`@(QT0D!`,```"+10B)!"3HRD___[H!````Z"+4P3'1"0@"````,=$)!P`````BT((B40D&(L"B40D%(M]Y(E\)!"+ -XM1>C'1"0(`````,=$)`0`````B40D#(M5"(D4).AJI?__N@$```"%P`^%%?[_ -XM_XM="##2BT,0@XA4"````>D!_O__QT0D"/RW"`C'1"0$`P```(M="(D<).C> -XM3O__N@$```#IW/W__Y"0D)!5B>575E.#[#R)1=R)5=B+5=R+0!")1>"+0AR% -XMP`^$L`,``(M%V(M5W(MX9(U!_X/X`8EZ3`^&>`$``(/I`0^$?@$``(M-V(MQ -XM'(7V=&N+41B)TX`["@^$Y`$``(/#`8/N`77OBT7<]H"N!````@^$ZP$``(G8 -XM*="#^`$/A.`"`T$0 -XMBW`XA?8/E<"$P+H0$!``=06Z`!`0`(M-W/:!/`$```$/A=0!``"+1=R+@#0! -XM``"%P`^5P(3`=`.#RD"-=>R)=>R)=?")5"0,QT0D"`````")="0$BU7DR0C70F``^$E0```#'` -XM@\0\6UY?7<,YTP^%'/[__X7V#X04_O__@^X!=#^#PP&)VNGT_?__B=@IT.D9 -XM_O__@#HN#X40_O__A?8/A#K^__^#[@&-="8`#X0M_O__BU78C4,!B4(8Z1_^ -XM___'1"00`````,=$)`Q/C0@(B7PD",=$)`0!````BTWGH_?__QT0D!`$```")%"3H11G__X7`#X13____BTW<,<#'04P! -XM````@\0\6UY?7<.+@30!``"-!$#!X`(#01"+2#B%R0^5P.D>_O__BT7$P/A17____'1"0$`0```(D$).CO&/__A<`/A/W^__^+5=PQP,="3`$```#I -XM[O[__\=$)`0!````BT7P``Z3S___^-M@````!5N0(` -XM``")Y8M%"(M5#%WIG/O__XVV`````(V_`````%6Y`0```(GEBT4(BU4,7>E\ -XM^___C;8`````C;\`````53')B>6+10B+50Q=Z5_[__^0D)"0D)"0D)"0D)"0 -XMD)!5N`(```")Y5=64X/L'(M=#(M]"(7;=`:+0WB#P`''1"0$!````(D$).CF -XMGO[_A<`/A)$```"%VXE%\'1-BTMTBW7PBP&+4`B%TG1JB) -XMUH/&!,<&`````(M%\(/$'%M>7UW#QT0D"`````#'1"0$!0```(D\).A!2?__ -XMQT7P`````.O4D(VT)@````!5B>575E.#["R+?0B+7R2%VP^$1`$``(L#A<`/ -XMA"`!``#'1>@!````QT7L`````,=%\`````#IGP```)"-="8`@WWH`70:QT0D -XM!-+4"`B)/"3H6GD``(M/*,=%\`$````YRP^$R````(L3N4^-"`B)R(E$)!") -XM5"0,B4PD",=$)`2RN`@(B3PDZ+-Y``"+1Q#V@%0(```$#X6D````QT0D#`$` -XM``#'1"0(`````,=$)`0`````B3PDZ*,,__^%P'4,BT<0]H!4"```!'5T@\,$ -XMBP.%P'1K@T7H`8D$).@2H/[_BT\H,=(YV0^4P@-%\(TT4`%U[(M'.(/H`3E% -XM[`^"//___\=$)`0FN@@(B3PDZ)QX``"+3RB)=>S'1?``````.```@\0L,56 -XM4X/L$(M="(MU#(M#)(7`#X2(````QT0D"!$````/MT9\B1PD)0`!``")1"0$ -XMZ&KQ_O^%P'0,@\00N`$```!;7EW#BT,DB4,HBP")'"2)1"0$Z%;T_O^%P(G" -XM=-H/MT9\QT0D"`````")5"0$B1PD)0`!``"#^`$9P(/@_(/`)(E$)`SHI/7^ -XM_X7`=:J!BZP$````"``$@\006UY=PXD<),=$)`CTN`@(QT0D!`,```#H]T;_ -XM_X/$$+@!````6UY=PXUT)@"-O"<`````58GE@^PHB77XBW4(B7W\BWT,B5WT -XMBT8H.T8D#X3>````]H>!`````74VQT0D"!$````/MT=\B30D)0`!``")1"0$ -XMZ(GP_O^%P'15N`$```"+7?2+=?B+??R)[%W#C78`BUC\B1PDZ#F>_O^)7"0( -XMB7PD!(DT)(E$)`SHL0D``(7`=(72=1:+1RB%P`^$GP$` -XM`(M(!(7)#X24`0``BTT,]H&!`````71XA=)T-(U%\(E$)`B)?"0$BT<0B00D -XMZ.Z'__^Z`0```(7`#X2(`0``@\0LB=!;7E]=PXVT)@````"+1RB+6`2)'"3H -XM]IS^_XE<)`B)1"0,BT4,B3PDB40D!.AK"```A<`/A`0!``"#Q"RZ`0```%N) -XMT%Y?7<.-="8`QT0D"!$```"+50P/MT)\B3PD)0`!``")1"0$Z-#N_O^%P'7) -XMBTT,BU%XA=(/A"`"``#VAZT$```@=3*+5R2%TG0KBP*%P'0=B=.-M@````") -XM!"3HO)O^_XM#!(/#!(7`=>Z+5R2)%"3HIYO^_X&GK`0``/^?___'1R@````` -XMQT0D!`0```"+50R+0GB#P`&)!"3H79G^_X7`B<:)1R0/A"8"``"+10R+2'2+ -XM`8M0"(72#X0;`0``B -XM7UV)PHG0PXUT)@")/"3'1"0(U[@(",=$)`0#````Z-A#__^#Q"RZ`0```%N) -XMT%Y?70O__N@$```#IP_S__Y"0D)!5B>57 -XM5E.#[`R+10B+F)@```"+4QR%TG1,BT,@A) -XM%"3HOYC^_\=#'``````QP,=#(`````#'0R0`````@\0,6UY?7<.-M@````"- -XMOP````!5B>575E.#[!R)1>R)5>B+L)@```"+1B2)1?"+3B"%R70,B<*#P@*- -XM0?\YPGQ/BU8((M]\,'G -XM`HG[`UXB#P`$Y0P1S(XL3B4,$ -XMA=)T8HE$)`2)%"3H99+^_X7`B0,/A!$!``"`2PP!BT7P@\`!B2) -XM^P->'(L+A6_O^-=@#KG<=$)`00````QP0D`0```.@^E?[_ -XMA<")`P^$U0```(M&'(M5\(L4D(72#X5$____BU7LQT0D"`````#'1"0$!0`` -XM`(D4).@40/__N`$```#KAL=$)`00````QP0D`0```.CME/[_A<")`P^$I``` -XM`(M&'(M5Y(L4D(72#X5+____ZZV+5>S'1"0(`````,=$)`0%````B10DZ,$_ -XM__^+5AR%T@^%DO[__XM%[(D$).B;_?__Z7?___^+1>S'1"0(`````,=$)`0% -XM````B00DZ(L___^+.X7_#X7*_O__@&,,_L<#`````,=#!`````#I//___XM5 -XM[,=$)`@`````QT0D!`4```")%"3H4#___^D+____BU7LQT0D"`````#'1"0$ -XM!0```(D4).@P/___Z3S___^-="8`C;PG`````%6)Y5=64X/L'(M%"(MU%(N` -XMF````(7VB47D=#:+#?P@"0B+%0@A"0B+?1#K!HUV`(/'`0^^!X7`>#0YR'TP -XM]D2"-@(/A+T!``"#[@&-="8`==Z+5>2+30R+0AR)072+0B2)07B#Q!PQP%M> -XM7UW#A?9TX(E]$,=%\`````#K+8GV/!9T6(7;>!8['?P@"0B)]GT,H0@A"0CV -XM1)@V`G57@T40`8-%\`&#[@%T2HM5$(M-#`^V`O:!@@````(/OMAUP(#[_P^$ -XMN@```(M-"`^VPXM1$("\`E,'```2=:B#_@%VHX-%$`&#[@ `!@T7P`8/N -XM`76VBU7PBT4(Z*#\__^+3>2+422+01R+3?"+!)")2`B+3>2+7?"+01R%VXL$ -XMD(L`B47L#X3!````BT7PB?N+?>R)1>CK(H`[%@^4P(3`=`.#PP$/M@.(!X/' -XM`8-MZ`$/A(D```"#PP&+50SV@H(````"==(/M@,\_W1#BTT(#[;`BU$0@+P" -XM4P<``!(/E,#KNXM5"(M"$("X4@<``/\/A>[^__^)7"0$B10DZ$[^_O^#^!(/ -XMA=G^___I+/___XM5"(M"$("X4@<``/]UAL=$)`3_____B10DZ"'^_O^#^!(/ -XMA6W____I9?___XUV`(M%[(M-\(T$`8E%[(M5[,8"`(M-Y(-!)`&%]@^%&_[_ -XM_^E,_O__A?:)?1#'1?``````#X5:_O__Z=C^__^-=@!5N@$```")Y8/L"(M% -XM"(ET)`2+=0R)'"2+F)@```#'0R0`````Z%;[__^+0QR)1G2+0R2)1GB+'"0Q -XMP(MT)`2)[%W#C;8`````C;PG`````%6)Y8/L&(M%"(EU^(MU%(E]_(M]#(E= -XM](N8F````(GRZ`O[__^+4R2+0QR+!)"+$(M%$(ET)`B)%"2)1"0$Z!&3_O^+ -XM4R2+0QR+!)"+`,8$,`"+4R2+0QR+!)")<`B+0QR#0R0!B4=TBT,DB4=XBUWT -XM,<"+=?B+??R)[%W#C78`58GE5U93@^Q,BWT,B47`BT44B56\BU48B4VXBTT0 -XMBP")1>"+`HM5"(E%\(L)A=*)37UW#BTW`BT$@ -XMBT`(A<")1<@/A&H#``"+7`^''@$``(M#>(MS=(E%\(&+5`@` -XM```!``#I;?___XU-\(E4)`R)3"0(BUW@B5PD!(M%P(D$).@'K?__A<`/A*P! -XM``")P>FJ_/__C4-XB4PD#(E$)`B+0W2)1"0$BT7`B00DZ-NL__^%P`^$@`$` -XM`(E#=.D1_?__@:-4"```__[__XM-S#M+>`^'$`$``(M#>(MS=(E%\(&+5`@` -XM```!``#I8_W__XU-\(E4)`R)3"0(B70D!(M%P(D$).B#K/__A<`/A"@!``") -XMQNDS_O__C5WPB4PD#(E<)`B)="0$BU7`B10DZ%JL__^%P`^$_P```(G&Z93^ -XM__^-0WB)3"0,B40D"(M#=(E$)`2+1<")!"3H+JS__X7`#X33````B4-TZ;3^ -XM__^)1"0,C4-XB40D"(M#=(E$)`2+5<")%"3H`:S__X7`#X2F````B4-TZ;7^ -XM__^!HU0(``#__O__.W-X=V:+0WB+4W2)1?"!BU0(`````0``Z0C]__^-3?") -XM5"0,B4PD"(ET)`2+1<")!"3HL*O__X7`=%F)QNEK_/__C4-XB4PD#(E$)`B+ -XM0W2)1"0$BT7`B00DZ(BK__^%P'0QB4-TZ7UW#QT0D"#RY"`C'1"0$ -XM`P```(D,).AF-O__@\1,N`$```!;7E]=PXU%\(ET)`R)1"0(B50D!(M%P(D$ -XM).C?JO__A*_O^-=@!5B>575E.#[#R+?0B%_W04BU\0A=MT#?:#50@```$/A$P! -XM``#'1>@`````C5WPQT7P`````,=$)`P``@``B5PD",=$)`0`````B3PDZ"^J -XM__^%P`^$D`$``(E%Z(M%&,=%[`````")7"00B40D%(U%Z(E$)`R-1>R)1"0( -XMBT7HB40D!(M5%(GXB10DBTT0BU4,Z!KY__^%P`^%H@```(M%[(7`B47<=&B+ -XM5>B)T0'!.`/@]T````/O@*%P`^(T@```(LU_"`)"#G&#X[$````BQT( -XM(0D(]D2#-@)U(^FR````#[X"A<`/B+`````YQ@^.J````/9$@S8"#X2=```` -XM@\(!.7UW#C70F`(7_=!.+5Q"%TG0,BT)T.T7H#X2O````BT7HB00D -XMZ)*+_O^X`0```(/$/%M>7UW#D(%[>/\!``!V28M#=(E%Z(M#>(E%\(&+5`@` -XM```!``"-7?#IQ?[__SE-X`^$")5"0(BT4,B3PDB40D -XM!.AS]___Z4[___^-0WC'1"0,``(``(E$)`B+0W2)/"2)1"0$Z*"H__^%P'0% -XMB4-TZY"X`0```(GVZ7+___^!HE0(``#__O__,<#I8?___X&B5`@``/_^__^X -XM`0```.E-____C;8`````58GE5U93@^Q,B47(B57$B4W`]H!D`P```0^$D0(` -XM`(G"BX!<`P``C01`P>`"`T(0BT`XA<`/E<"$P`^%A@(``(M%R/:`<`,```$/ -XMA9X"``"+1#'1"0$+P```(M5X(D4).A%AO[_BU7@B57S'1?#_____QT7L_____XE5U(D$).CL -XMA/[_A<`/B-8#``#'1"0$D+X("(M%[(D$).B!A_[_A<")1

7UW# -XMB<*+@&@#``"-!$#!X`(#0A"+0#B)1>#I4OW__\=$)`0!````BT7PB00DZ->! -XM_O^+1>R)!"3H+(7^_XM%\(D$).@AA?[_QP0D`@```.@5A?[_QT0D$`````"+ -XM1=C'1"0(V[D("(E$)`R+5=R)5"0$BT7@B00DZ'R!_O_'1"0,WKD("(M5X,=$ -XM)`0%````B50D"(M%R(D$).A&-?__QP0D?P```.@NAO[_@:-4"```__[__XM5 -XMP(L"`<`[0WAW8(M3=(E5V(M5P(M#>(D"@8M4"`````$``(L"Z9C]__^)5"0, -XMBT7`B40D"(M5V(E4)`2+1*3__X7`#X1*`0``BU7`B478BP+I9OW_ -XM_XD4).C_AO[_B<;I%?W__XE$)`R-0WB)1"0(BT-TB40D!(M%R(D$).@WI/__ -XMA<`/A`D!``")0W3I<____\=$)`C5N0@(QT0D!`4```"+5 -XM7UW#QT0D"%;?"`C'1"0$!0```(M%R(D$).@?+___@\1,N`$```!;7E]=P\=$ -XM)`SSN0@(BT7<,?;'1"0$`P```(E$)`B+5@/A)X! -XM``"+1>B)!"3HKX3^_X/$;(GP6UY?7<.0@7YX_P$```^&CP$``(M&=(E%Z(M& -XM>(E%\(&.5`@````!``#I5/___\=$)`@!````QT0D!#0```")'"3H4#;__X7` -XM="V+1>R+5>B#Z`6#P@6)1>R)1"0,B50D"(M5#(D<)(E4)`3H!N[__XG&Z6+_ -XM___'1"0(`0```,=$)`0U````B1PDZ`)1:2#[P4/ME$%A-(/A,(```"%_W4%_P^$\_[_ -XM_X/O`0^$"P$``(U%[(D$)(U-\(G8C57HZ&/X__^%P`^%6?[__XM%[(E$)`R+ -XM1>B)1"0(Z=/^__^!HE0(``#__O__B?"#Q&Q;7E]=PXU&>,=$)`P``@``B40D -XM"(M&=(D<)(E$)`3H=J#__X7`=`B)1G3I1_[__[X!````D(UT)@#I(/[__X7_ -XM#X1G_O__H?P@"0@Q]HL-""$)"(E%K(E-L.L(BT78#[94!@6+1=B-1#`%B47< -XMBT6D*?"#Z`6)1=0/OL*%P'@:.T6L?16+5;#V1((V`G4>]T2"-``%``!U%)") -XM1"0$BTVHB0PDZ,5]_O^%P'4:@\8!.?=UJ.GU_?__BX-T`P``B46HZ5+^__^+ -XM?=3IY/[__XM-W(`Y*@^%Z?[__\8!`(M%Z(/`!8E%M(N3F````(E5S,=$)`0O -XM````B00DZ.Y]_O^%P(G`0``.46T#X2_`0``Q@``BT6TB00DZ)V"_O^) -XM1<"#Q@&)=>"+5>")%"3HB8+^_XM-M(E%N(D,).@[?O[_A<")1<@/A+T!``"+ -XM5`@ND'3; -XM@\`(B470B00DZ#2"_O^)1;R+?;R)V`-]P(U7`NC=Z/__BT7,BU`DBT`?[_Z>K[__^#P`B)1=")!"3H -XM78'^_SE%N(E%O`^'ZO[__XM-N(MUT(M]X/PYR?.F#X76_O__Z0?___^+1<") -XM1"0(BU6TB30DB50D!.@"@/[_`W7`@WW``799Q@8O@\8!Z0;____'1"0(!;H( -XM"+X!````QT0D!`,```")'"3H+2G__^EK^___QT7``0```,=%M`J@"`CI/_[_ -XM_XM-M,=%P`````#'1;1!\0@(B4W@Z2S^__^+3;2`.2]UG^FK_O__QT0D#)^M -XM"`B+1;2^`0```,=$)`0%````B1PDB40D".C;+?__Z0G[__^0D)"0D)!5B>57 -XM5E.#[!R+?0SV1WP!=`X/ME=1@/I`=`6`^BIU&XM%"&:#N*P$````#XGB`0`` -XMBTT(#[:1J````(M="`^VRH&+K`0```"```"(DZ@````[#?P@"0@/C&4!``") -XMT(M="(MS$(N>0`$``(7;=0_I;`$``(L;A=L/A&(!```Z0Q!U\<=$)`2$```` -XMQP0D`0```.@=??[_A<")1?`/A*4!``"+=?"+1?"#QCR)<#R)<$#'1"0$$``` -XM`,<$)`$```#H[WS^_X7`B<(/A+H!``"+1V2)0@CVAX(````(#X56`0``BT=L -XMB4(,BT7P@$A0`8M-\(M!/(ER!(D".W%`#X1^`0``B5`$BT7PC7L(,?:)4#R+ -XM4PPQP#G7=!B-M@````"+0A"+4@2#P`$!QCG7=?&-!#:)!"3H^GW^_XM5\(7` -XMB4(0#X3_````BU7PB4)(B7),Q@0P`(M;##G?="P!QHGVBT,(BU,0B30DB40D -XM!(E4)`CH[GW^_XGP`T,0Q@`*BUL$C7`!.=]UV(M-"(M=\(M1$(M"?(7`B0-T -XM"8M"?(E8!(M1$(M%\(E"?(M5"(M-\(M"$(/`?(E!!(/$'#'`6UY?7<.A""$) -XM"&:#?(@T``^)BO[__P^VA(@T!```Z7_^__^-!$F`P@&-A$98`0``='J)1"0$ -XMQT0D"`````"+50B)%"3HVO$``+@!````@\0<6UY?7<.)!"3'1"0(!0```,=$ -XM)`0`````Z+7Q``"#Q!RX`0```%M>7UW#B4(,BTWP@$E0`NFH_O__QT0D"``` -XM``#'1"0$!0```(M-"(D,).A>)O__N`$```#KHL=$)`3_````BT4(B00DZ#3B -XM_O_I;O___XE10.E]_O__QT0D"`````#'1"0$!0```(M5"(D4).@<)O__N`$` -XM``#I7?___Y"058GE5U93@^P\BWT,BW4(BT=TBP")1>"+0`B%P`^$K@$``(N> -XMF````(M#&(7`=`B)!"3H[7S^_XM5X(L"B00DZ%!V_O^%P(E#&`^$3`(``/:' -XM@@```"!T+HN&K`0``*D```0`=2&H`@^$^`$``(M5X(L"QT0D!-7:"`B)-"2) -XM1"0(Z+H)`@"+1V"%P`^%L@```(M&'(7`=&CV0%@$=&+VAB0!```!#X3@`0`` -XMBX8<`0``C01`P>`"`T80BT`XA<`/E<"$P`^%(@(``/:&8`0```$/A.8!``"+ -XMAE@$``"-!$#!X`(#1A"+0#B%P`^5P(3`=`[VAJX$```$#X3.`0``D#'2,<#V -XMAJP$```1B50D#`^4P(E$)!"+5>"+`HE\)`2)-"2)1"0(Z/6```#WAJP$```" -XM``0`='TQTH/$/(G06UY?7<.+3AR%R0^$NP$``(./@````$"#?V0!#X2A```` -XM,<")1"08BU7@BP*)?"0$B30DB40D%(U%Z(E$)!"-1VR)1"0,C4=DB40D".B! -XM)P``BU7H]H:L!````HE63`^%I````(M%[/>&K`0```(`!`")1E!U@XDT),=$ -XM)`0EN@@(Z,Q4``"#Q#PQTEN)T%Y?7P<"```BU4(BUT,BT(<]D!8!'0Y]D-] -XM`74SBT(@BT`(@#@O="C'1"0(3+H(",=$)`0#````B10DZ)PB__^!Q!P(``"X -XM`0```%M>7UW#BT-XA<`/A:,```#'!"2_N@@(Z'ER_O^%P(F%\/?__P^$HP$` -XM`(N5\/?__XD4).A-`"`T(0BU`XC7(!ZPB`^SIT"X/&`0^V7O^$VW7PC4;^.<)R:X3;="") -XM\NOF@^@!=$SHB'/^_X!Y`2YUJ`^V00(\+W0$A,!UG,=$)`R?K0@(BX7P]___ -XMQT0D!`4```")1"0(BU4(B10DZ*TF__^X`0```('$'`@``%M>7UW#BT-TBP"+ -XM`(F%\/?__^D4____QD;_`(N%\/?__XV]]/?__XE4)`S'1"0(N90(",=$)`0` -XM"```B40D$(D\).CO=?[_B%[_B3PDZ#1Q_O^%P'0R#[9>_^E-____@<0<"``` -XM,7<.0QX:L`````0```.O*C70F`(M5#(M"%(DT),=$ -XM)`0"````B40D".AFNP``@\0PN`$```!;7EW#BT,575KX!````4X/L'(M]"(N'F````(M8$(7;=#>)]HM# -XM$(E$)!"+0PB)="0(@\8!QT0D!%C4"`B)/"2)1"0,Z"M0``"+&X7;==6#Q!PQ -XMP%M>7UW#B3PDQT0D!$#4"`CH"U```(/$'#'`6UY?7<.058GE4X'L-`@``(F% -XMZ/?__XU%](F5Y/?__XF-X/?__\=%[/_____'1?C_____QT7T_____XD$).B( -XMR)!"3H=7#^_X7`#XCY````Z&AV_O^+E>3W__^#^/^) -XM0A`/A+@!``"%P`^%2P$``,=$)`0`````BT7TC9WL]___B00DZ)5O_O_'1"0$ -XM`0```(M%\(D$).B";_[_QT0D!`(```"+1?")!"3H;V_^_XM%^(D$).C$#W__^)5"00BY7D]___BT((QT0D"*S5"`C'1"0$``@` -XM`(D<)(E$)`SHFG+^_\=$)!``````B5PD#,=$)`C;N0@(QT0D!%Z@"`C'!"19 -XMH`@(Z/)N_O_'1"0,Z;D("(E<)`C'1"0$!0```(N%Z/?__XD$).B\(O__QP0D -XM?P```.BD<_[_QT0D"%;?"`C'1"0$!0```(N%Z/?__XD$).B"'?__BT7T@_C_ -XM=`B)!"3H!G+^_XM%^(/X_W0(B00DZ/9Q_O^+1>R#^/]T"(D$).CF3W__^)0AB!Q#0(```QP%M=P\=$ -XM)`C5N0@(QT0D!`4```"+A>CW__^)!"3HK!S__^DE____C;0F`````%6)Y5.) -XMTX/L)(7;BY"8````='V+0QB%P'0(B00DZ()S_O^+0R"%P'0(B00DZ'-S_O^- -XM1?C'1"0(`````(E$)`2+0Q")!"3H^6S^_XL3A=)T!HM#!(E"!(M#!(D0BT,L -XMA -XM7UW#D(UT)@!5B>57B<=64X/L#(D$).BAB70D"(E$)`2)/"3H)FK^_X7`=>.#Q`R)V%M>7UW#,=N#Q`R) -XMV%M>7UW#D(VT)@````!5B>575HG&4XG3@^PDH``(L5(-@("(72=#4QVXN#*-@("(E4)`S'1"0(!0```,=$)`22U`@( -XMB40D$(DT).A(2@``BY,PV`@(@\,0A=)US3'`@\0<6UY?7<.)T.@J____A<") -XMQW0^BT`(B40D#(L'B30DQT0D!&[4"`B)1"0(Z`=*``"+1PR)-"3'1"0$7ND( -XM"(E$)`CH\$D``(/$'#'`6UY?7<.)7"0(QT0D!/#5"`B)-"3HTDD``+@!```` -XMZY*-="8`C;PG`````%6)Y8M%"(M5$%WI$?___Y!5B>575E.![.P,``"+10B+ -XM71"+@)@```")A33S__^+0!"%P`^$8`$``(N--//__\>%///__P````#'A4#S -XM__\`````.0D/A&,!``"%VW0]#[8##[[0A=)X+XLU_"`)"#G6?B6+#0@A"0CK -XM%I"-="8`@\,!#[8##[[0A=)X"SGR?0?V1)$V`G7HA,!U38M%"+JGU`@(Z'?^ -XM__^+A3SS__^%P'0.BX4\\___B00DZ`-O_O^+A4#S__^%P'0.BY5`\___B10D -XMZ.MN_O^X`0```('$[`P``%M>7UW#C5,!B95<\___#[9[`8GY#[[1A=)XG8LU -XM_"`)"#GR?9.+#0@A"0B)C5CS___V1)$V`G2`/'/'A4SS__\`````#X0<`0`` -XMN9W4"`CK$H.%3//__P&#P0$XP@^$`P$```^V40&$TG7F//\/A#$!``"+50@/ -XMML"-!$"-A`!0`0```T(0@\`(BWT(QT0D$)W4"`B)1"0,QT0D"#S6"`C'1"0$ -XM`P```(D\).@<%___Z1#___^+50C'1"0(&-8(",=$)`0#````B10DZ/P6__^X -XM`0```.D@____QT0D!"````#'!"0!````Z-)K_O^%P(F%///__P^$^?[__XN] -XM///__XG&@\8(B7<(B7<,QT0D!"P```#'!"0!````Z)]K_O^%P(F%0//__P^$ -XMEO[__XM'"(N50//__XD"B7($.W<,#X2\!@``BXU`\___B4@$BX5`\___B[T\ -XM\___B4<(B4<0Z1'^__^)^(3`=1_I1_[__P^^PH7`>$0YQHGV?CZ+C5CS___V -XM1($V`G0Q@X5<\___`8N%7//__P^V$(32==+I%/[__XM-",=$)`3_____B0PD -XMZ`72_O_IS?[__X#Z(@^%*`8``(N]7//__P^V5P&$T@^$%@8``(!_`@`/A0P& -XM```/OL*%P'@<.<:)]GX6BXU8\___9H-\@30`>0@/MI2!-`0``(M]"(M'$(N` -XM0`$``(7`=1+IU`4``(UV`(L`A<`/A,<%```Z4!"-=@!U[HM`"(M("(F-7//_ -XM_XMP$(U&(XE$)`3'!"0!````Z'!J_O^%P(F%9//__P^$*@<``(N]9//__XN- -XM9//__XGZ@\$(@\(=B8U@\___B4\(B4\,B5<4#[8#B$<=C48"QD(!((E'&(M' -XM%(N57//__XET)`B#P`*)5"0$B00DZ,-K_O^+1Q3&1`8"`(!/'`&+30B+?0B+ -XM10B+22")C3CS__^+?TR)O43S__^+0%#'A5#S__\`````B85(\___@'D8`'D7 -XMBU4,BY*`````P>H(]]*#X@&)E5#S__^+C33S__^+21"%R8F-+//__P^$E08` -XM`,>%5//__P````"+O2SS__^+E63S__^+C4SS__^+/XF],//__XM"%(N]+//_ -XM_XE,)`C'1"0$K-0("(/``HE$)`R+1R")!"3HRF/^_XM'((D$).CO9O[_ZW^- -XM1>R-E8CS__^-??*)?"0,B40D",=$)`2RU`@(B10DZ,EG_O^#^`(/A#$#``"- -XMC8CS___'1"0$"@```(D,).B*9O[_A<")1>AT`\8``(N5+//__XV]B//__XE\ -XM)!"+30B+0@C'1"0(R-0(",=$)`0#````B0PDB40D#.C:$___BY4L\___C8V( -XM\___BT(8QT0D!``(``")#"2)1"0(Z+ME_O^%P`^%5O___XL=H!0)"(7;#X43 -XM!0``BY4L\___BT(8#[]`#,'H!8/@`83`=`OHB6?^_\<`!0```(N]+//__XM' -XM",=$)`B?K0@(QT0D!`4```")1"0,BT4(B00DZ&<8__^+10@QR8GZZ*OV__^+ -XMC3SS__^%R70.BY4\\___B10DZ$=J_O^+C63S__^+?0B)3"0$B3PDZ"ZL``"X -XM`0```.E"^___@_L"#X09`P``@_\"B?L/CK`"``"#^P,/A?P!``"+5>B%THF5 -XM://__P^$ZP$``(7V#X3C`0``B10DZ)IJ_O^+C2SS__^)A7CS__^+62B+`X7` -XM#X1*!```C76(ZPV#PP2+`X7`#X0X!```B[UL\___B40D#(V%B/O__\=$)`BY -XME`@(QT0D!``$``")?"00B00DZ"-G_O^-E8C[__^)="0$B10DZ-%E_O^%P'6Q -XMBQN)G7#S__^)'"3H'6K^_XN-+//__XF%*//__XM%J#M!%`^%://__P````"+E2CS__^+C7SS -XM___'!"0!````C40*,`.%>//__XE$)`3HYV;^_X7`B<,/A.\#``"-0"B)0Q2+ -XMO2CS__^%_W0RBY4H\___BXUP\___B00DB50D"(E,)`3H86C^_XN]*//__XM# -XM%,8$."^#QP&)O2CS__^+A7SS__^+E2CS__\#4Q2#P`&)1"0(BX5L\___B10D -XMB40D!.@C:/[_BX4H\___`X5\\___B4,8BY6`\___B5,//__XE+)(N]://__XG(@\`!B40D"(D4)(E\)`3HU&?^_XN% -XM8//__XD#BY5D\___BT(,B4,$BXU@\___.TH(#X3I`@``B1B+O63S__^)7PR# -XMA53S__\!BT7L@^@!B47L@\`!#X0V`0``B[TL\___BT<8QT0D!``(``")1"0( -XMC86(\___B00DZ,IB_O^%P`^$#_W__XV5B//__\=$)`0*````B10DZ!QC_O^% -XMP(E%Z`^$C0```(V-B//__[\!````Q@``B4WHC47HQT0D!-'4"`B-7_^)!"3H -XMFF7^_X7`B<8/A&S]__^%VP^%4/W__XDT).@@:/[_B;5L\___B85\\___@\C\__^+A5SS__^)!"3HE6?^_XG&Z3OZ__^)5PSI -XM1?G__XM!&(D$).C[9O[_B<'KD8N5+//__XM%".CU\___BX4P\___A<")A2SS -XM__\/A>KZ__^+E53S__^%T@^$9P$``(N-9//__XM1"(E1$(M]#`^W1WPE``$` -XM`/:'@0````$/A/$!``")1"0(BT4(B50D!(D$).@KM```A<`/A3SW__^+50B+ -XM4A2)50B+BI@```")C33S__^+A33S__^+E33S__^+&#G3B=@/A&\!``"+O63S -XM__^)!XE7!(N%-//__SM`!`^$30$``(N5-//__XN-9//__XL"B4@$BX5D\___ -XMB[TT\___B0>+E63S__^+30B+0A")5"0$B0PDB40D".A1[O__BX50\___A<`/ -XMA-D```"+?0B+4Q"+1R")0@B+4Q"+1TR)0@R+1U"+4Q")0A`QP.F\]O__BXTL -XM\___BT$8B00DZ$%?_O^%P`^5P.GE^O__QX4H\___`````.DI_/__B[5H\___ -XMN-34"`BY"@```/R)Q_.F#X4P_/__Z1?\__^+50C'1"0(`````,=$)`0%```` -XMB10DZ"D.___I'?;__XE:".D1_?__BT4(QT0D"-[4"`C'1"0$!````(D$).@! -XM#O__,<#I*/;__XM]",=$)`@`````QT0D!`4```")/"3HWPW__^F/^O__BT,0 -XMBY4X\___B5`(BT,0BXU$\___B4@,BT,0B[U(\___B7@0,<#IW?7__XEX!.F\ -XM_O__BY4\\___B1J+C3SS__^)VHE9!#M;!'1"BP.+O3SS__^)>`2+C3SS__^+ -XMA33S__^)RXD(B>(D\).C29/[_BU4(B7PD"(ET)`2)%"2)1"0,Z(?>__^Z -XM`0```(7`=2Z+5G@YV@^$QP$``(U#`3G"="R+10C'1"0(`0```(E\)`2)!"3H -XMY=<``+H!````BUWTB="+=?B+??R)[%W#D(M&=(U]E(L$F(LPB7PD!(DT).C] -XM7_[_A<`/A3`"```/MT6<)0#P```]`$````^$/0(``,=$)`0O````B30DZ&%? -XM_O^%P(F%+//__W0,Q@``@\`!B84L\___B30DZ!-D_O_'!"0!````B<.-0#B) -XM1"0$Z"YA_O^%P(G'#X19`@``C4`TB4<(B5\,B5PD"(ET)`2)!"3HNV+^_XM% -XMM(E'%,=$)!`&U0@(BT<(QT0D"+F4"`C'1"0$``@``(E$)`R-A33S__^)!"3H -XMB&#^_XV%-/___XV5-//__XE$)`2)%"3H,%_^_X7`#X2_````BT<(B00DZ#U< -XM_O^%P(E'+`^$Y`$``,=$)`0$````QP0D`@```.B.8/[_A<")PHE'*`^$XP$` -XM`(M'+(D"BXTL\___B?J+10CHB.S__X7`#X7]````BY4H\___BT(0A<")!W0& -XMBT(0B7@$BX4H\___B?J)>!"+A2CS__^#P!")1P2+10CHC.___S'2A<`/A'+^ -XM__^+10B)^C')Z(;N__^Z`0```.E<_O__BT4(NO?4"`CH?_'__[H!````Z47^ -XM__^+M63___^-1@&)!"3H:&'^_X7`B4%+//___O4"`B%P`^$H?W_ -XM_XM%"(E<)`C'1"0$!0```(D$).CA"?__N@$```#I%_W__\=$)`@`````Z6W_ -XM__^+10C'1"0(`````,=$)`0%````B00DZ*\)___I-____XM'+(7`#X0L____ -XMB00DZ*M@_O_'1RP`````Z1C___^)'"3H%U[^_XM'++D!````BY4P\___Q@00 -XM`(M'+`^V$(32="6#P`$PR>L*#[80A-)T%(/``8#Z.G7Q#[80A-)T!8/!`>OL -XM@\$!QT0D!`0```")#"3H)E[^_X7`B<.)1R@/A'O____'1"0$(=4("(M'+(D$ -XM).@67/[_A<`/A(+]__^)`X/#!,=$)`0AU0@(QP0D`````.CU6_[_A575E.#[#R+10B+L)@```#VAC@$```!#X0X`0`` -XM@(XX!````8M5#(M"=(L`BU`(BS"%TGYC#[X&A7'1"0(:-8( -XM",=$)`0#````BT4(B00DZ",(__^X`0```(/$/%M>7UW#A=)TU(72#XX2`@`` -XMBSW\(`D(B?.A""$)"(E]U(E%X(VT)@`````/M@L/OL&%P'@/.T74?0J+?>#V -XM1(#"+#?P@ -XM"0@YR'TFBQ4((0D(ZQ>)]H/#`0^V`X3`=!(/OL"%P'@+.<%^!_9$@C5`=>2) -XM\.B-[?__A<`/A#?___^)7"0(BU4,B50D!(M]"(D\)/]0!(/$/%M>7UW#QP0D -XM$]4(".A15_[_A<")QP^$LO[__XD$).C_7O[_B47%W^_XM]V(E] -XM[,=$)`0?U0@(B1PDZ.);_O^%P'0=@#@`=.>)1"0(BT4,B40D!(M5"(D4).A? -XM^?__Z\^+10B%P'06BWT(BT<0AO__A<")1=@/A3O___^X`0```.D#_O__B40D#(U# -XM>(E$)`B+0W2)1"0$BU4(B10DZ*1Z__^%P'35B4-TZ?+^__\/M@Z)\XUV`.D? -XM_O__@:!4"```__[__^E+_?__D)"0D)"0D)"0D)"058GE@^PXB77XBW4(B5WT -XMBUT,B7W\BT8`/MT-\C5-1C7MDQT0D$`$```")?"0( -XM@^`!]]@APHM%X(E4)`2)-"2)1"0,Z!J1_O^%P'06N`$```"+7?2+=?B+??R) -XM[%W#C70F`(M%X,=$)`P!````B7PD!(DT)(E$)`CHY93^_X7`=57OX#8"`A6B=93B<.# -XM[!R+4!#V1A@!=06_C=@("(7)#X3R````B7PD#(E,)`C'1"0$G]@("(D<).C` -XM-0``BT8(@\8(B77L.?")1?`/A+X```"+5?"+>A"+0@B%_XE%Z`^$AP```#'V -XMZV:-="8`#[;`C01`C80`4`$```-#$(/`"(E$)`2)'"3HX30``(M#$/:`5`@` -XM``1U=\=$)`P!````QT0D"`````#'1"0$`````(D<).AER/[_A@/M@06//]UD\=$)`3_````B1PDZ/.__O_KE,=$ -XM)`0FN@@(B1PDZ'$T``"+1?"+5>R+`#G0B47P#X5"____@\0<6UY?7<,/MD80 -XM//]T$@^VP(T$0(V,0E@!``#I]/[__\=$)`3_````B1PDZ)R__O^)P>G=_O__ -XMD(UT)@!5B>6#["B+50R+10B)7?2)=?B)??R)1>R)5?"+0G2+`(L8#[83@/IC -XM#X2W````=T*`^F(/A.<```"-M"8`````QT0D"`H```"+5?"+0B"+0!")1"0$ -XMBWWLB3PDZ&#.``"X`0```(M=](MU^(M]_(GL7<.`^G-T.8#Z='7$BT`(@_@$ -XM=[RZ8,$("#G`_(G>B=>)P?.F=:J+1>R+7?2+=?B+??R)10B)[%WIPZ$``(UV -XM`(M`"(/X!W>(NA_N"`@YP/R)WHG7B<'SI@^%GK10``BT`(@_@+#X=/____NN78"`@YP/R)WHG7B<'SI@^%.?___XM% -XM[(M=](MU^(M]_(E%"(GL7>DBX___B?:+0`B#^` -XMB=>)P?.F#X7^_O__BU7LBT(0BYA``0``A=L/A"$!```/MD,0@_A_=PKV!(7= -XM%`D(!'5>C4,(.4,(=`R+1>PQR8G:Z#/]__^+5>R+0A#V@%0(```$#X7@```` -XMQT0D#`$```#'1"0(`````,=$)`0`````B10DZ"#&_O^%P'43BWWLBT<0]H!4 -XM"```!`^%J0```(L;A=MUB8M5[(M"$(NP0`$``(7V='6-=@`/MD80@_A_=UWV -XM!(7=%`D(!'13C48(.48(=`R+1>PQR8GRZ*G\__^+?>R+1Q#V@%0(```$=5K' -XM1"0,`0```,=$)`@`````QT0D!`````")/"3HFL7^_X7`=0R+1Q#V@%0(```$ -XM=2J+-H7V=92+5>R+0A"+D"`!``"%TG04BT7LN=;8"`CH1_S__S'`Z?7]__\Q -XMP.GN_?__BY`@`0``A=)UV\=$)`BXV`@(QT0D!`0```"+?>R)/"3H!`'__S'` -XMZ<+]__^0D)"0D)"0D)"0D)"058GE@^PXB5WTBUT,B77XBW4(B7W\BT-XA#' -XM1"0(`````(E\)`0E``$``/?:@^(@@_@!&<#WT(/@!`G0B40D#(DT).A'KO[_ -XMA+0&2) -XM1?B+1?C'1"0$\=@("(D<)(E$)`CH5B\``#'2@\0DB=!;7<.-1?B)1"0$B1PD -XMZ!W,_O^Z`0```(7`=,?KWL=$)`@$````BT`@BP")'"2)1"0$Z"G)``"Z`0`` -XM`.N^D)!5B>6#[!B)7?2+70B)=?B+50R)??R+0QR%P`^$O0```(M">(7`=2G' -XM1"0(`0```(M#3(D<)(E$)`3H4O7^_S'`BUWTBW7XBWW\B>Q=PXUV`(/H`70+ -XMZ%I/_O^-M@````"+0G2+#_____QT7<_____\=%Z/_____'1>3_ -XM____=!.-1>2)!"3H84[^_X7`#XCP!```C47") -XM!"3H0TW^_\=$)`0"````BT7@B00DZ#!-_O^+1>2#^/]T"(D$).B`4/[_BT7H -XM@_C_=`B)!"3H<%#^_XM%W(D$).AE4/[_BT7@B00DZ%I0_O^+10@/MIAP`P`` -XM@^,!#X2/`P``B<*+@&@#``"-!$#!X`(#0A"+0#C'1"0$+P```(D$).B#3O[_ -XMA<"-4`$/A-8$``"$VP^$2@,``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!`` -XM````BTT`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B) -XM!"3H$0#__\<$)'\```#H^5#^_Y"-="8`N@$```"#Q$R)T%M>7UW#D(M%Y(/X -XM_W0(B00DZ&1/_O^+1>")!"3H64_^_XM%((/H`8/X`0^&H`(``(M-"(M!'(!( -XM6`CHJTO^_X/X_XG'#X2S`P``A<`/A"8#``"+1>B)!"3H'4_^_X-](`,/A?,# -XM``"+50B+LI@```"-1>R)1"0(BU70B50D!(M-"(D,).CMQ@``AR)1"0(BT8LB40D -XM!(M-"(D,).B.+P``A<`/A'#___^+%:`4"0B%T@^%%`0``(M5T`^_0@S!Z`:# -XMX`&$P`^%WP,``(M5T#'VB10DZ+I0_O_'1"00`0```,=$)`P`````QT0D"`G9 -XM"`B)?"0$BT4(B00DZ`]3``"%P`^$00,``+X!````BU48BP*#^`%V&8E$)`2+ -XM30B)#"3HN<;^_X7`=0:+11B#*`&+50B+0AR`8%CW@WT@`@^$G`$``#'`QT0D -XM$`````")1"0,BT4B#^/]T"(D$).AB3?[_BUW0A=MT+HM-T(D,).C` -XM3_[_BT7@@_C_#X3`_?__B00DZ#Q-_O^#Q$RZ`0```%N)T%Y?7<.+1=R#^/]T -XMU8D$).@=3?[_Z\N-M"8`````QT0D"-6Y"`C'1"0$!0```(M5"(D4).AE^/[_ -XMZ7+____'1"0(SKD(",=$)`0%````BT4(B00DZ$7X_O_I4O___XM-"(N!:`,` -XM`.D2_?__BTT(BX%H`P``Z;W\__^+30B+@6@#``#I=_S__X-](`$/A-````"- -XM1?#'1"04`0```(E$)!"+31")3"0,BT70QT0D!/;8"`B)1"0(BU4(B10DZ*PR -XM``"+30B%P`^5P`^V\(M%\`%!7(-](`(/A7;^__^+51"+"H7)#X7&`0``BTT8 -XMB0&+30BX`0```/:!K`0```(/A5'^___I2O[__\=$)`A6WP@(QT0D!`4```"+ -XM50B)%"3H>O?^_\=%T`````#I@/[__XM%W(D$).CW2_[_QT0D!!KW"`B+1>B) -XM!"3HU$O^_X7`#X7#`0``QP0D`0```.A`3?[_BT7HB00DZ,5+_O^-1?#'1"04 -XM`0```(E$)!"+51")5"0,BTW0QT0D!/;8"`B)3"0(BT4(B00DZ-$Q``"+50B% -XMP`^5P`^V\(M%\`%"7#'`Z:#]___'1"0(UKD("+X!````QT0D!`4```"+10B) -XM!"3HR?;^_XM%Z(D$).A22_[_BT7`"`T(0BU`XZ0C[__^-1?#'1"04`0```(E$)!"+312)3"0, -XMBT70QT0D!/;8"`B)1"0(BU4(B10DZ"PQ``"+30B%P`^5P`^V\(M%\`%!7.F0 -XM_/__A?8/A;S\__^+12"%P`^%L?S__\=$)!`!````BU44B50D#(M-$,=$)`0` -XM````B4PD"(M%"(D$).BJ@?[_AR)5>B+5?`/MD)0J`UT1(M:/(UZ/#G?=#&+,XM###M%$(GQ -XMR)0@B+0PR#P`&)0@R+1>B)6@2)0PR+`XD"BP,Y -XMQW0=B5`$B1.)\^E@____@VL,`8U"_XE#"(GSZ4____^+1?")4$")$^O>BT7P -XMB4@\ZX>+0P2+5?")0D"+"^EN____QT0D"`````#'1"0$!0```(M5"(D4).C0 -XM\_[_@\057B<=64X/L -XM;(E5M(E-L(MP'(7V#X1?`0``]H"N!````@^%(0$``(M-M(M9>(7;#X3I```` -XMBT%TBS7\(`D(BP"+"`^V$0^VVCGS?1NA""$)".L-@\$!#[81#[;:.?-]!_9$ -XMF#8"=>R$T@^$KP```#D=_"`)"`^/CP```(#Z7`^$F@```(#Z?`^$D0```(#Z -XM"@^$B````(U!`8E%S`^V40&$T@^$;@$``(MUS`^VPCG#B?%U*^GR````D(UT -XM)@`/MA:#Q@&($0^V%H/!`832#X1'`0``#[;".<,/A-$```"`^EQUVHU&`8E% -XMT`^V5@$/ML(YPP^$J@```(#Z7`^$EP````^V%HMUT.NZH0@A"0CW1)@T``4` -XM``^$7O___Y#'1"0("@```(MUM(M&((M`$(D\)(E$)`3HD[T``+@!````@\1L -XM6UY?7<.+5;2+0B"+`(D\),=$)`@8V0@(QT0D!`,```")1"0,Z$+R_O^#Q&RX -XM`0```%M>7UW#QT0D"`0```"+0B"+`(D\)(E$)`3H/+T``+@!````ZZ?&`5P/ -XMME8!@\$!@\8"Z1G___^+=N!```0`^$&@,``(M'3(E%Y(M'4(E%Z(U%Y,=$)`P!````B40D -XM",=$)`0G````B3PDZ";B_O^%P'08N`$```#I*O___XMUS(GQ#[;".<-UD>N, -XMQT0D!(0```#'!"0!````Z&I&_O^%P(E%N`^$^0(``(M-N(M%N(/!/(E-O(E( -XM/(E(0(M5M(M"=(GRBP`K$(M`""G0A<")1?!U#+Y+C0@(QT7P`0```(M%\`'` -XMB00DZ)Q'_O^+3;B%P(E!$`^$J`(``(M5N(E"2(M%\(E"3(M-N(G"`U$0B70D -XM!(E$)`B)%"3HFD?^_XMUN,=&1`````"#?;`!&<"#X/R#P`@(1E"+1Q"+4'R% -XMTHD6=`F+0'R)<`2+1Q"+5;B)4'R+1Q"#P'R)0@2+3;2+662+<6PY\XEUQ`^' -XM?P(``,=%P`$```#'1R)5"00B4PD#,=$)`@!````B5PD!(D\).A+N_[_ -XMA<`/A?']__^+=?"-1=3'1=0`````QT78`````,=%X`````")==R-M[````#' -XM1"00!````(E$)`S'1"0(`````(M%[(DT)(E$)`3HP$+^_X7`#X2O_O__@_@! -XM=!6)="0(B40D!(D\).@/5P``Z9O^__^+5;"%T@^$Z_[__^F+_O__B5H,Z=[^ -XM__^)03SIT/[__XV'L````(E$)!2-A\0```")1"00C8?`````QT0D&`(```") -XM1"0,*TW,B4PD"(M5S(D\)(E4)`3H;E<``(7`#X4D_?__QX>L`````0```.GF -XM_/__C8>P````QT0D&`(```")1"04QT0D$`````#'1"0,`````(N'Q````(E4 -XM)`2)/"2)1"0(Z!]7``"%P`^$IOS__^G0_/__QT0D"`````#'1"0$!0```(D\ -XM).A:[O[_N`$```#IXOO__XM%N(L0A=)T!HM`!(E"!(MUN(M&!(D0BT80B00D -XMZ$)%_O^)-"3H.D7^_\=$)`0"````B3PDZ%8S__\QP.FA^___QT0D"`8```#' -XM1"0$`````(D\).@7N0``N`$```#I?_O__XVV`````(V\)P````!5N0$```") -XMY8M%"(M5#%WI'/K__XVV`````(V_`````%6)Y8M5#(M%"%T/MDI]@^$!Z?KY -XM__^0D)"0D)"0D)"058GE@^P8BT4(B5WTB7W\BWT,B77XBW`0BT9\C9Z````` -XMBU`4A=(/A80```"#?1@!&<#WT"4`:`(`B8.`````BT4Q=PS'`QT,(```` -XM`.OHD(UT)@#'1"0$A````,<$)`$```#HT$'^_X7`=$V)PXM&?(7`B0-T!HM& -XM?(E8!(U&?(E>?(E#!.E%____BT44B40D"(M%$(E$)`2+10B)!"3HT%___X7` -XMB4,0#X5%____N`$```#I?O___XM%",=$)`@`````QT0D!`4```")!"3H<.S^ -XM_[@!````Z5G___^-M@````!5B>6![#@$``")5"0$B5WTB=.)=?B)SHE]_(G' -XMB0PDZ*`__O\QTH7`=!:+7?2)T(MU^(M]_(GL7<.-M"8`````Z/]#_O^+50B% -XMT@^$Q@```(M+#(7)#X6[````#[=#"+H"````J!)TPKL"````C47PB40D"(ET -XM)`2)/"3H8-_^_\=$)`0O````B30DB87@^___Z#X^_O^%P`^$!`$``(/[`0^$ -XMP`````^"DP```(/[`G4BBY7@^___QT0D"%C:"`C'1"0$`P```(D\)(E4)`SH -XMC.O^_XM-\+H!````A_O__C47LB70D!(E$)`B)/"3H#=[^_X/[`8G^```` -XM#[__^)="0,QT0D"%S9"`C'1"0$`P```(E$)!")/"3H6NK^_XM=[(7; -XM#X3#_O__A?]T#8M'$(7`=`8[<'20=&*)-"3H2D'^_^FE_O__@_L"==*+A>#[ -XM__^)="0,QT0D"+S9"`C'1"0$`P```(E$)!")/"3H!NK^_^NJBY7@^___B40D -XM#,=$)`B0V0@(QT0D!`,```")5"00B3PDZ-[I_O_K@H&@5`@``/_^___I0?[_ -XM_XVV`````(V\)P````!5B>6![,@```")7?2-G5C___^)=?B)UHE]_(G'C47L -XMB40D&(D<),=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D!#8` -XM``#H7;<``(DT).@I0?[_B70D"(D<)(E$)`R-1=R)1"0$Z.ZR``")7"0$B3PD -XMZ")/``"+7?2+=?B+??R)[%W#D(UT)@!5N9;:"`B)Y8'LZ`0``(EU^(MU"(E] -XM_(U]E(GZB5WTB?#'1"0$`````,<$)`$```#HF_S__X/X`@^$4@$``(M&$(M` -XM?(M`%(7`#X5B`0``]X:L!`````8``'05,<"+7?2+=?B+??R)[%W#C;8````` -XMQP0DH]H(".BX./[_A<")PP^$50$``(D$).AF0/[_QT0D%`````#'1"00`0`` -XM`(E<)`C'1"0$H]H("(DT)(E$)`SHVOK__X7`#X7(````BT80BT!\BT`4A<`/ -XMA>\```#WAJP$````!@``=8#VAJ@!```!#X3C````BX:@`0``C01`P>`"`T80 -XMBW@XA?\/E<"$P`^$5/___XV=-/___[FKV@@(B=J)\,=$)`0`````QP0D```` -XM`.BF^___A<`/A?P```"YG=H("(G:B?#'1"0$`````,<$)`````#H@?O__X/X -XM`@^%VP```(N%-/___SM%E'4/BX4X____.T68#X3!````NIW:"`B)\.CR_?__ -XMA<`/A*T```"X`0```.G-_O__NI;:"`B)\.C4_?__A_O__B30DZ.=H___ID?[__XDT).C::/__Z03___^+GJ`!``"%VP^5P.DD -XM____QP0DI-H(".A--_[_A<")PP^$C0```(D$).C[/O[_QT0D%`````#'1"00 -XM`0```(E<)`C'1"0$I-H("(DT)(E$)`SH;_G__X7`#X25_O__Z5C___^#^`)T -XM((M&$(M`?(M(%(7)#X07_O__B30DZ%1H__\QP.D*_O__BX4T____.T64=0N+ -XMA3C___\[19ATRKJKV@@(B?#H^_S__X7`=+KI"/___\<$)+^Z"`CHJC;^_X7` -XMB<,/A"K^__^`.``/A"'^__^)1"0,C84T^___QT0D$*O:"`C'1"0(N90(",=$ -XM)`0`!```B00DZ`T[_O^-C33[__^)^HGPQT0D!`$```#'!"0`````Z.OY__^% -XMP'5(C84T^___QT0D$)W:"`B)7"0,QT0D"+F4"`C'1"0$``0``(D$).C!.O[_ -XMC8TT^___B?J)\,=$)`0!````QP0D`````.B?^?__@_@"#X6$_?__C94T^___ -XMB?#H*?S__X7`#X1O_?__Z3+^__^-M@````"-OP````!5B>6#?0P^BT40=`1= -XM,<##B44,7>D7@```C;0F`````%6)Y8/L&(EU^(MU"(E]_#'_B5WTBYZ8```` -XMA=MT4_:&KP0```%U:3'_B30DZ&^C__^%P'52BT,LA)]HDT)&:_`0#H9"L``(7`=8GK -XMA8VT)@````"-O"<`````58GE@^P8QT0D!#P$``")7?2)=?B+=0B)??R+?0S' -XM!"0!````Z,LY_O^%P(G#=&*)AY@```")`XE#!,=`"`````"-0`B)0PPQP(7V -XMQT,0`````'0PBX:8````BT`8AQ=P\=$)`@`````QT0D!`4```")-"3H -XM5^3^_[@!````Z]3'1"0(`````,=$)`0%````B3PDZ#CD_O^X`0```.NUD%6) -XMY5=64X/L3(M%"(M`'(7`#X1Z!0``BW4,BT9D@\`!B40D!(M%"(D$).A1L?[_ -XMA<`/A,P$``"+10B%P'07BTT(BUD0A=MT#?:#50@```$/A.<$``"-1?#'1?`` -XM````QT0D#``!``")1"0(QT0D!`````"+=0B)-"3H4EC__X7`B478#X1"!0`` -XMBTT,]D%\!'0$@T%L`8MU#(M&9(M6;(G'.=")5>`/A!$%```Y1>#'1=0!```` -XM#X*F`0``QT7(`````,=%S`````"-M@````"-1>R-5>B)1"00B50D#,=$)`@` -XM````B7PD!(M-"(D,).CKKO[_A<`/A2X$``"+1>R%P`^$2`$``(M5S#';C50" -XM`HM%"(E5S(7`#X2T`0``BTT(BUD0A=L/A*8!``"+1=@Y0W0/A)H!``"+5R%]HEU -XMQ(EUO'1EBTWH#[X!B`/AG3^__^+=0R+1F2+50B)0DR+30R+<62+66PYWG(6Z3<" -XM``"-M@````"#ZP$YW@^#)@(``(E<)`2+10B)!"3H%K;^_X7`=.*+50B%TG06 -XMBU4(BT(0AR+30@IT(/H`8E!4#M]X,=%U``````/AJ+] -XM___I*?___XM-Z(E$)`B)3"0$BT7R+5>@!1=P!1<@/OG00 -XM_^G(_O__BTWH@#DI#X2E_O__B70D!,<$)-/:"`CH*3/^_\=%T`````"%P'07 -XMBT7R#P@<@!B57_/__ -XMC4-XB50D#(E$)`B+0W2)1"0$BTT(B0PDZ$Q4__^%P`^$/P$``(E#=.E5_O__ -XMB57$QT70`````(M%Q.F0_O__B57$BT7$Z87^__^+3=2%R0^$J````(M%"(7` -XM=!:+50B+0A"%P'0,BTW8.4AT#X0]`0``BW78B30DZ&`V_O^+50R+30B+0FP# -XM06B#P`$K0F2)06B#Q$PQP%M>7UW#QT0D"+3:"`C'1"0$`P```(M5"(D4).@2 -XMW_[_@\1,N`$```!;7E]=PXMU#(U'_XE&;(M&9.DF_?__@7MX_P````^&C``` -XM`(M3=(E5V(M#>(E%\(&+5`@````!``#I)?O__XM5V"E5W(M-W(ET)`2)5"0( -XMB4PD#(MU"(DT).@,K_[_A<`/A##____I#?W__\=$)`@$````BU4,BT(@BP") -XM1"0$BTT(B0PDZ*"I``"#Q$RX`0```%M>7UW#C4@!B4W@B4YLZ>'Z__^X`0`` -XM`.GV_/__C4-XQT0D#``!``")1"0(BT-TB40D!(M%"(D$).C:4O__AR+`8E%\`^V.(GZ@/HC#X2@````@_L!=$Z+ -XM5@3'1"0@"````(E<)!R+0@B)1"08BP*+50B)1"04BP:+0`B)%"3'1"0(```` -XM`,=$)`0`````B40D$(M%\(E$)`SHUC+__XG"Z6[___^+1?"`>`$`=:F)^H#" -XM`0^$A`$``(M-"(M1$(GY#[;!#[:,`E,'``"#^0P/AQ0!``"X`0```-/@J8`2 -XM```/A0T!``"+30R+<73I9?___XM-\`^V40&#^G\/AU#____V!)7=%`D(!`^$ -XM0O___P^V00(/MM"#^G]V%^L?C;8`````#[9!`P^VT(/Z?W<-@\$!]@25W10) -XM"`1UYX3`#X4-____BU8$QT0D(`D```"+3?")7"0?[__XM5"(M"$#'2B["`"```A?8/A&/^__^+10R+2'2+402+0@B)1"04 -XMBP*+5?")1"00BP&+30B+0`B)5"0(B5PD!(D,)(E$)`S_UHG"Z2K^__^+50R+ -XM@@! -XM="/'1"0(6-L(",=$)`0#````B1PDZ&G:_O^X`0```(/$%%M=PXU!9,=$)`P! -XM````B40D"(L"#[8`B1PDB40D!.B^RO[_@\046UW#QT0D"`0```"+02"+`(D< -XM)(E$)`3H/Z4``+@!````Z[20D)"0D)"0D%6)Y8'LB````(E=](M=#(EU^(E] -XM_(M#>,=%D)W:"`B%P'0F@^@!=`CHERO^_XUV`(M#=(L`BP")19")1"0$BT4( -XMB00DZ%=R_O_V0WT!=1J-192)1"0$BT60B00DZ!,M_O^%P`^$D0$``(M%D,=$ -XM)`BD`0``QT0D!`$&``")!"3H4"_^_X7`B<,/B#@!``#'1"0$&O<("(D$).CV -XM+?[_A<")QP^$>P$``(E$)`2+10C'1"0,`````,=$)`B"VP@(B00DZ$DR__^% -XMP`^%X0```(L=H!0)"(7;#X7#````]D<,0`^%R0```(M%",=$)`P!````QT0D -XM"([;"`B)?"0$B00DZ`HR__^%P`^%H@```(L-H!0)"(7)#X48`0``]D<,0`^% -XMB@```(M%",=$)`P"````QT0D")/;"`B)?"0$B00DZ,LQ__^%P'5GBQ6@%`D( -XMA=(/A?0```#V1PQ`=5.+10B)?"0$B00DZ*0&__^%P'5`H:`4"0B%P`^%Z``` -XM`/9'#$!U+8D\).B)+_[_A<`/A.@```#H?"S^_XLPZR.-="8`B3PDZ*PM_O^% -XMP`^$-____^A?+/[_BS")/"3H52_^_^A0+/[_B3"+19#'1"0,GZT(",=$)`0% -XM````B40D"(M%"(D$).@XW?[_N`$```"+7?2+=?B+??R)[%W#BT60QT0D#+#; -XM"`C'1"0$`P```(E$)`B+10B)!"3H!-W^_[@!````Z\KH["O^_XLPB1PDZ'(L -XM_O_KBXD\).@8+?[_A<")]@^%:O___^G;_O__B3PDB?;H_RS^_X7`#X53____ -XMC78`Z?C^__^)/"3HYRS^_X7`D`^%.O___^D(____BT60QT0D#)G;"`C'1"0$ -XM!````(E$)`B+10B)!"3H@]S^_S'`Z4G___^0D)"0D)"0D)"0D)!5B>575E.# -XM[$R+30B+10R+41R%T@^$:`,``(M(;(MP9(E-V(M`5#GPB47<#X.S`0``BUHX -XMQT74`````(7;=0CK/8L;A=MT-X![$">0C70F`'3OBT,(.?!RZ#E%W'+C@&,1 -XM_8E<)`2+50B)%"3H[[7^_\=%U`$```"+&X7;=7UW#.<@/AT7^___'1"0(X-L(",=$ -XM)`0#````BT4(B00DZ%G5_O^#Q$RX`0```%M>7UW#B?.+==R)3>"-="8`@VW@ -XM`8-]X/\/A`P"``"-3>R-1>B)3"00B40D#,=$)`@!````B5PD!(M5"(D4).B] -XMH/[_A4_?__Z<#^__^-0WC'1"0,``$` -XM`(E$)`B+0W2)1"0$BU4(B10DZ(M(__^%P`^$6O[__XE#=.NFQT0D"`0```"+ -XM0""+`(D,)(E$)`3HY9X``+@!````Z3?^__^+1=R+5=PK1*O[_BT4(BU77UW#BU4,@$W@`8M"5,=%Z`````")1>2-1>R) -XM1"00C47DB40D#(U%R,=$)!0!````QT0D"`````")1"0$B3PDZ,<+__^%P'6A -XM`W7L,=LK=<#'1U``````B7=,ZY+'1"0(!````(M5#+L!````BT(@BP")/"2) -XM1"0$Z/Z<``"#Q$R)V%M>7UW#D)"0D%6)Y8/L&(M5"/:"L`(```%T/HN"J`(` -XM`(T$0,'@`@-"$(M(.(7)#Y3`A,!T,L=$)`@,W`@(QT0D!`,```")%"3HB]'^ -XM_[@!````R<.-="8`BX*H`@``A<`/E,"$P'7.QT0D"$C<"`C'1"0$`P```(D4 -XM).A9T?[_N`$```#)PY"058GE@^PHB77XBW4,B7W\BWT(B5WTBT9TBQB+`XD\ -XM)(E$)`3HN&G^_P^W1GR)/"0E``$``(E$)`3HD(VT)@````!5B>53@^PDBUT(BT,_O^%P'00N`$```"#Q"1;7<.0C70F -XM`,=$)`0(````B1PDZ+`\__^%P'757,?]64X/L#(MU#(M% -XM"(`^`(N8F````'1IQT7P`````.LEBX,T!```#[84-XA4#P`&`^@J)@S0$ -XM``!T(H/'`8`\-P!T*8&[-`0````$``!VSXM%"(D$).A/____Z\*#QP''1?`! -XM````@#PW`'77BT7PA6#[#B+ -XM10B)??R)7?2)=?B+L)@```"-11")1?"+GC0$``")1"0,BT4,B40D"+@`!``` -XM*=B)1"0$C40>-(D$).AN(/[_B<>-!!B`?#`S"HF&-`0``'0'/0`"``!V"XM% -XM"(D$).BV_O__B?B+7?2+=?B+??R)[%W#C;0F`````%6)Y5=6B<93@^PLB4W@ -XMBTT,B57D]H`X`@```0^$`0(``(M0$(N`,`(``(T$0(M$@CB%P`^5P(3`=`.` -XMS03VAM`#```!#X3*`0``BX;(`P``C01`BT2".(E%\(M5X('A``0``(L:B4W< -XM@VT(`8-]"/\/A(\!``"+3>0/M@$\"0^$\P```#S_#X2I`0``BU80#[;`C01` -XM`<"-C`)8`0``B4WH#[:4`ET!``")5>R+31"%R74.BWWL`=\[?C@/@IP```"+ -XM5>PQ_X72=7?IGP```)"+11"%P'4'BU7H#[8$%XE$)`C'1"0$BNP("(DT).B. -XM_O__BT80]H!4"```!`^%`P$``,=$)`P!````QT0D"`````#'1"0$`````(DT -XM).A^D?[_AQT+3E>.'6*QT0D -XM!":Z"`@QVXDT).B8_?__Z7/___^+1>B)^XDT)(E$)`3H@OW__X-%Y`'I\?[_ -XM_XM]W(7_#X4*____.UXX<^`QP(D9@\0L6UY?7<.+AL@#``")1?#I./[__XN`,`(``(M6 -XM$(7`#Y7`Z0'^___'1"0$_P```(DT).@;B/[_QT0D!/\```")-"2)1>CH"(K^ -XM_XE%[.E,_O__58GE5U93@^PLBUT(QT7L`````(MU#/:#F`(```$/A($```"+ -XM@Y`"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=#&-3>RZLMP("(G8QT7PLMP(",=$ -XM)`@`````QT0D!`````#'!"0(````Z#7]__^%P'4HC57PC47HB40D$(E4)`S' -XM1"0(`0```(L&B1PDB40D!.@ME_[_AS'1"0$`````(M&!(GYB00DB=CHROS__X7` -XM=;V+5?"+11`#5@2)5?"+2`2+1@2^`0```#G!=`2)SBG&B?F)V,=$)`A>```` -XMQT0D!`````")-"3HB_S__X7`#X5Z____BT,0]H!4"```!`^%:O___\=$)`P! -XM````QT0D"`````#'1"0$`````(D<).CSCO[_A____\=$)`0FN@@(B1PDZ"KZ__\QP.EF____ -XMC78`QT0D"`````"+11B-312)%"0E``0``(E$)`2+50R)V.@,^___A<`/A"G_ -XM__^#Q!2X`0```%M=PXM#$/:`5`@```0/A1K____I3/___XE$)`2-312Z+?`( -XM"(G8QT0D"`````#'!"0!````Z,+Z__^%P`^$,/___^NTD(VT)@````!5B>57 -XM5E.#[#R+=0B+?1B+1AR%P`^$@P$``(M%$(M5%(L8BQ(YTXE5S`^'5P$``(GX -XM)0`"``")1=#IX````(GVQT7HPMP("(M5Z(U-\(GPQT0D"`````#'1"0$```` -XM`,<$)`@```#H1?K__X7`#X4=`0``C47LB40D$(U%Z(E$)`S'1"0(`0```(E< -XM)`2)-"3H.Y3^_X7`#X7S````BU7LA=)U#/?'``0```^$M@```(E\)!"+1?") -XM5"0(B40D#(M%Z(DT)(E$)`3H\OW__X7`#X6Z````BT80]H!4"```!`^%H``` -XM`,=$)`P!````QT0D"`````#'1"0$`````(DT).A*C/[_A -XMB5PD#,=$)`B[W`@(QT0D!`H```")%"3H:1S^_XU%WHE%Z.GA_O__QT0D!":Z -XM"`B)-"3H*OC__XM&$/:`5`@```0/A&#___^#Q#PQP%M>7UW#N`$```"#Q#Q; -XM7E]=P\=$)`@$````BU4,BT(@BP")-"2)1"0$Z(>2``"X`0```.O558GE5E.# -XM[""+70R+=0@/MT-\B5PD!(DT)(E$)!"-0VR)1"0,C4-DB40D".@0_O__N@$` -XM``"%P'4.BT-L,-*)1DR+0W")1E"#Q"")T%M>7<-5B>564X/L((M=#(MU"`^W -XM0WR)7"0$B30D@,P"#[?`B40D$(U#;(E$)`R-0V2)1"0(Z+K]__^Z`0```(7` -XM=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PXUV`(V\)P````!5B>564X/L((M= -XM#(MU"`^W0WR)7"0$B30D@,P$#[?`B40D$(U#;(E$)`R-0V2)1"0(Z%K]__^Z -XM`0```(7`=0Z+0VPPTHE&3(M#<(E&4(/$((G06UY=PY"0D)"0D)"0D)!5B>53 -XM@^PTBUT(BTT,BT,575E.#[#R+?0B+1Q")1=2+112+EY@```")5="+ -XM,,=%V`````#'1=P`````QT7@R]P(".G/````C;8`````BUW8NA^%ZU&#PP&) -XMV/?BP>H%:])D.=-U=XM'$/:`5`@```0/A;X```#'1"0,`0```,=$)`@````` -XMQT0D!`````")/"3HUXC^_X7`=1"+1Q#V@%0(```$#X6*````BT4")/"2)1"0$_]+'1>``````BT7P -XMBU70B40D$(M"+(ET)`C'1"0$`0```(D\)(E$)`SH.Y?^_X7`#X7L````BT7P -XM@\8!`47R)1"0(BT4,B3PDB40D!.@IM_[_ -XMBU7R%TG08A?]T#(M'$(7`=`4[6'1T>XD<).AR&O[_,=OK28M%$(D$).B3&/[_ -XMA<`/A%G___^+50R[`0```,=$)`R?K0@(QT0D!`4```")/"2)5"0(Z#/(_O^+ -XM11")!"3H'!K^_XM%'(7`=1R+5=3'1"0(`@```,=$)`0`````B3PD_Y)H"``` -XM@\0\B=A;7E]=PX&@5`@``/_^__\QV^O,C;8`````C;PG`````%6)Y8'LJ``` -XM`(E]_(M]"(E=](M5##';B77XBT<0B85X____BT)XAL -XM!```J`(/A:D"``"+10SV@((````@#X0C`P``BT!TBP28BP#'1"0$(+H("(D\ -XM)(E$)`CHW_'__XD\).CW\/__BX>L!```J!!U"PT```@`B8>L!```J`)T)HN5 -XM>/___\=$)`0!````B3PD_Y*@"```A<`/A2$#``"#CZP$```4BU4,QT0D&`(` -XM``"+0G2+E73___^+!`*+`,=$)`P`````B3PDB40D%(U%Z(E$)!"+10R#P&2) -XM1"0(BT4,B40D!.A#P___A<`/A1,!``"+50PQR8.*@````$"+5>CVAZP$```" -XMB5=,#X2M````QT=0`````(U'4(E$)`B)5"0$B3PDZ-(S__\QR>F,````BX5\ -XM____BU4,B70D"(D\)(E$)`R)5"0$Z&Z1__^%P`^%K@```(M5#(M">(7`>!*# -XM^`$/CB+]__^#^`(/A)\!``"+50S'1"0(`0```(M"=(L`BP")/"2)1"0$Z+R* -XM``"Y`0```.LFD(UT)@#'1"0,GZT("(ET)`C'1"0$!0```(D\).B$Q/[_N0$` -XM``"+7?2)R(MU^(M]_(GL7_S__XM5#(M"9`-%\(E'3.D`____BX=<`P``BY5X____ -XMC01`BT2".(7`#Y7`Z>7[__^+50SV@H(````@#X2!_?__BT)TBP28BP#'1"0$ -XMU=H("(D\)(E$)`CH5J(!`(N'K`0``.E:_?__BU4,BT)TBU`$BT<@BS(/MT`8 -XM)80```"#P(`/A*````")="0$B3PDZ']6_O_INOO__XD<).CV$_[_B?;IS/[_ -XM_XM5#,=$)`@)````BT(@Z1[^___'1"0$);H("(D\).@X[O__Z>3\__^)="0, -XMQT0D"#3="`C'1"0$`P```(D\).B7O?[_Z;#^___'1"0("@```(M"((M`$(D\ -XM)(E$)`3HF(@``+D!````Z?_]__^+50S'1"0(`P```(M"(.FQ_?__BT((B70D -XM!(D\)(E$)`CH>##__X7`B<-T%(M'((M`"(D$).A(%/[_BT<@B5@(BT<@9H%@ -XM&#__BT<@9H-(&`R+5Q#'1"0(`0```(M'((M`"(D\)(E$)`3_DIP(``#IROK_ -XM_\=$)`@`````QT0D!`4```")/"3HXKS^_[D!````Z6G]__^0D)"0D)"0D%6) -XMY5=64X/L+(M]"(M'$(MP$(U0$(E5Y#G6#X39````QT7H`0```,=%[`````#' -XM1?``````ZT&#?>@!=!?'1"0$TM0("(D\).@#[?__QT7P`0```(M&((M`"(D\ -XM)(E$)`3HZNS__XLV.77D#X2O````@T7H`8M'$/:`5`@```0/A8P```#'1"0, -XM`0```,=$)`@`````QT0D!`````")/"3H6X#^_X7`=0R+1Q#V@%0(```$=5R+ -XM1B"+0`B)!"3HT1/^_XM=\`'#`5WLBT7UW#C78`C;PG`````%6)Y5.#[!2+30R+70@/MT%\@^`<@_@, -XM=%>#^!1T,H/X!+H"````="W'1"0("@```(M!((M`$(D<)(E$)`3H+H8``(/$ -XM%+@!````6UW#C78`N@$```")5"0(BT%8B1PDB40D!.A(Z@$`@\046UW#B?8Q -XMTNOAC;8`````C;\`````53'`B>564X/L((M5#(MU"(N:@````(M*>('C``$` -XM`(7)=`>+0G2+`(L`B40D"(U%](E<)`R)1"0$B30DZ-_T`0"Z`0```(7`=18P -XMTH7;=!"+1?2!CJP$````$```B484@\0@B=!;7EW#C;0F`````%6)Y5WIQ^\! -XM`)"0D)"0D)!5B>56B=93BY"`````B0` -XM````BU@(N`$````Y^W1),?;V@Z\$```!=#6+@X````"+2`2X`0```(G*@^$? -XMP>H%T^`)A)58____BX.`````BT`$.?!^"8G&C;0F`````(L;.?MUO(U&`8U5 -XMX(E4)!"-E5C____'1"0,`````,=$)`@`````B50D!(D$).C"!_[_@_C_=!&% -XMP'4U,<"!Q%P!``!;7E]=PXD<),=$)`B*W0@(QT0D!`4```#H8+?^_X'$7`$` -XM`+@!````6UY?7<.+A;S^__^+<`@Y_@^$"O____:&KP0```$/A`H!``"+AH`` -XM``"+2`2)R(/A'\'H!8N$A5C____3Z*@!#X3H````C57PB50D!(DT).CQA/[_ -XMA<`/A<<```"%]@^$V````(M>$(7;#X3-````]H-5"````0^%P````(%[>/\# -XM```/AFX#``"+0W2)A<#^__^+0WB)1>R!BU0(`````0``BYW`_O__BY:````` -XMB=B#P`&)ES'1"0,``0``(E$)`C'1"0$`````(DT).B3*O__ -XMAS'1"0$_P```(DT).C0=?[_@_@(#Y3"@_@,#Y3`Z[['1"0(A-T("+L!```` -XMQT0D!`4```")-"3HU;3^_^ER_O__.=@/AAL!```IV(G:B87$_O__C47HB00D -XMBXW$_O__B?#H6_K__X7`=`N+3>B%R0^$J0```,=%V`````"X(````,=%W*"& -XM`0#'A(74_O__`````(/H`77PBY7(_O__N`$```"+2@2)RH/A'\'J!=/@"825 -XMV/[__XU%V(E$)!"-A=C^___'1"0,`````,=$)`@`````B40D!(N5R/[__XM" -XM!(/``8D$).A9!/[_@^@!=2V+A<3^__^)7"0$B40D"(N5P/[__XD4).CH"?[_ -XMBYW`_O__`YW$_O__Z5W]__^+C<3^__^)VHGPZ/3Z__^%P`^%JOW__XM%\(U0 -XM`8E5\(N5Q/[__XE<)`R)1"0(QT0D!`$```")5"00B30DZ+&&_O^%P'4VBT7P -XMB49,BY7$_O__@^H!@[W$_O__`1G`]]`APHE64,=$)`0!````B30DZ%ZV`0") -XMP^D9_?__NP$```#I#_W__X&@5`@``/_^___I*/W__XU#>,=$)`P`!```B40D -XM"(M#=(DT)(E$)`3HX"?__X7`#X0&_?__B4-TZ63\__]5B>6#[$B)=?B+=0B- -XM1?")7?2)??R)1"0$B30DZ/^`_O^%P'0;NP$```")V(MU^(M=](M]_(GL7<.- -XMM"8`````C47DB40D$(M%\(U]V(E\)`S'1"0(`0```(DT)(E$)`3H>W[^_X7` -XM=;R+3>2-1>"+5=B)!"2)\.AD^/__A$(7; -XM#X3<````]H-5"````0^%SP```(M%Y(/H@#M#>`^'E0$``(M3=(E5T(M#>(E% -XM[(&+5`@````!``"+1>2)1"0(BT78B40D!(M%T(D$).@O"/[_QT7,`0```.L) -XMB?;'1")!"2)\.@%]___AB+1>B+OH`` -XM``")1"0(BT78B40D!(M'!(D$).C``/[_.T7HB<-T9X7;=%;'1"0(A-T(",=$ -XM)`0%````B30DZ/FP_O_I`____X&@5`@``/_^___IW_W__XE$)`R-0WB)1"0( -XMBT-TB30DB40D!.AK)?__A<`/A+C]__^)0W3I0?[__^BZ!/[_QP`%````ZYW' -XM1"0(`0```,=$)`0FN@@(BT<$B00DZ#<`_O^#Z`$/A77___^+?$(7;=%N+5=`Y4W1T4XM%Y`-%Z#M%['=UBT7H,=N)1"0(BT78 -XMB40D!(M%T`-%Y(D$).@E!O[_BT7D`T7HB30DB40D#(M%T(E$)`B+1?")1"0$ -XMZ(&`_O^%P`^5P^DV_O__@:-4"```__[__XM%Y`-%Z#M#>'="BT-TB470BT-X -XMB47L@8M4"`````$``.N+BU70B40D#(U%[(E$)`B)-"2)5"0$Z'`D__^%P`^$ -XMO?S__XE%T.EA____B40D#(U#>(E$)`B+0W2)-"2)1"0$Z$8D__^%P`^$D_S_ -XM_XE#=.N7B?:-O"<`````58GE5U93@>S,!```BU4(BT4,]H*L!````@^$"@(` -XM`(M0>(72=!.)1"0$BTT(B0PDZ&NN__^%P'4?QT0D"`````#'1"0$-````(M% -XM"(D$).@\N/[_A% -XM8/O__ZO="`BX<````+^QW0@(HO@0"0CI@P```,8%]1`)"'3H8`7^_XN55/O_ -XM_\<$)/`0"0B)5"0(B40D!.B6!?[_QT0D!)`!``#'!"3P$`D(Z.($_O_'!"3P -XM$`D(Z,8"_O_'1"0(`````,=$)`0"````QP0D\!`)".BJ`_[_@_C_B<8/A2(! -XM``")'"3H9P+^_P^V!X/'`83`#X3A````Q@7U$`D(<`^V1__'1"0(`````,=$ -XM)`0"````QP0D\!`)"*+Y$`D(Z%T#_O^#^/^)PP^%1O___^B-`?[_@S@"=;'' -XM1"0(7`H)",=$)`0%````BT4(B00DZ&FM_O_K0\=$)`@`W@@(QT0D!`,```") -XM%"3H3ZW^_X'$S`0``+@!````6UY?77UW#BXU@^___#[9!`8/!`8F-8/O__X3` -XM#X5R_O__Z,@`_O_'``(```#I-?___XN-3/O__XE!"(G(@\`4B5D$=!#'1"0$ -XM\!`)"(D$).BJ!/[_BX50^___A`'^_\=$)`@!````QT0D!,?="`C'!"3.W0@(Z%P!_O_'1"0(`0```,=$ -XM)`3-H0@(QP0DUMT(".A``?[_Z`L"_O_'1"0(`````,=$)`1A=``@BXU,^___ -XMBT$(B00DZ`K]_?^+E4S[__^+0@2)!"3H.0#^_\=$)`0`````BXU,^___BT$( -XMB00DZ,#\_?_'1"0$`0```(N53/O__XM""(D$).BG_/W_QT0D!`(```"+C4S[ -XM__^+00B)!"3HCOS]_XN53/O__XM""(D$).C=__W_BTT(]H%P`P```0^$V@$` -XM`(N!:`,``(T$0,'@`@-!$(M8.,=$)`0O````B1PDZ`O^_?^)VH7`=`.-4`&) -XM5"0$QT0D#`````#'1"0(G-X("(D<).@6_/W_QT0D#.FY"`B)7"0(QT0D!`4` -XM``"+50B)%"3HXZ_^_\<$)'\```#HRP#^_\=$)`@`````QT0D!`4```"+50B) -XM%"3HK*K^_[@!````Z6_[__\QP(VU:/___\=$AGP`````@^@!@_C@=?"+30BX -XM`0```,=%Z`4```#'1>P`````BXF`````B8U8^___BTD$BB)5"00QT0D#`````#'1"0(`````(ET)`2+C5C[__^+002#P`&) -XM!"3H6?K]_X/X_P^$Z````(7`#X3#````C85H^___B85$^___B<.+A43[__^) -XM7"0$*=@%``0``(E$)`B+E5C[__^+0@2)!"3HY`'^_X/X_P^$KP$``(7`#X6[ -XM````QT0D".W="`C'1"0$`P```(M-"(D,).BTJ?[_BT4(B00DZ/GO__^X`0`` -XM`.EL^O__QT0D"&.+"`C'1"0$!0```(M%"(D$).B$J?[_Z5O\___'1"0(UKD( -XM",=$)`0%````BU4(B10DZ&2I_O_I._S__XM%"(N8:`,``.DJ_O__QT0D"-S= -XM"`C'1"0$`P```(M-"(D,).@VJ?[_ZX#'1"0(BMT(",=$)`0%````BU4(B10D -XMZ!FI_O_I8/___P'#.9U$^___#X,Q`0``C95H^___C;UI^___B95<^___ZV:- -XM3?")3"0$BT4(B00DZ-!V_O^%P`^%)/___XU'_RN%7/O__XE$)!"+E5S[__^) -XM5"0,BT7PQT0D!`````")1"0(BTT(B0PDZ*=[_O^%P`^%Z_[__XF]7/O__XGX -XM@\EC____BU4(BT(0@+A2!P``_W6MB10DQT0D!/\` -XM``#H!FG^_X/X"`^4PH/X#`^4P.O"QT0D"(3="`C'1"0$!0```(M%"(D$).@- -XMJ/[_Z53^__\YA43[__]S*RN=7/O__XV5:/O__XE<)`B+A5S[__^)%"2)1"0$ -XMZ,+]_?^-C6C[__^-'!DYG43[__\/A,/]__^-1>C'1>@`````QT7LH(8!`(E$ -XM)!#'1"0,`````,=$)`@`````B70D!(N56/O__XM"!(/``8D$).C`]_W_@_C_ -XM#X23````@^@!#X1T_?__C47PB40D!(M%"(D$).A8=?[_A<`/A:S]__\KG43[ -XM__^-E6C[__^)5"0,B5PD$(M%\,=$)`0`````B40D"(M-"(D,).@R>O[_A<`/ -XMA7;]__^+10B)V8V5:/O__^@J[O__A<`/A=KW__^+50B+0A"!BJP$```````! -XM@XA4"```(#'`Z<'W__^-="8`QT0D"(K="`C'1"0$!0```(M-"(D,).C5IO[_ -XMZ1S]__]5B>6#[!B+50R+30B+0GB%P'44QT0D!`(```")#"3H/;/^_S'`R<.+ -XM0B"+0!")1"0(BT)TB0PDB40D!.A@O/[_R87`#Y7`#[;`PY"0D)"0D%6)Y5=6 -XM4X/L/(M]#(M=$(UU[.AM^OW_QP``````QT0D"`````")="0$B3PDZ//V_?^# -XMP`%U-.A)^OW_@S@$B?9TT,=$)`@TW@@(QT0D!`4```"+10B)!"3H(Z;^_[@! -XM````@\0\6UY?7<.+5>R)T(/@?X/X?P^$O0$``(7`#X3^````BWT8A?]T#(/X -XM#8UV``^$H@$```^V`SP@#X2'`0``/`D/A'\!``"-1?"_/-X("(E<)`2)1"0( -XMBU4(B10DZ#R9_O^)!"2)P^AV_?W_B<:+1>R$P'@%OT^-"`B)PKB@X`@(@^)_ -XMZPX]F.$("`^$3P$``(/`"#L0=>Z+0`2#_A2Z/O$("'<%ND^-"`B#_A2)1"08 -XMB?")?"0EF_O__@\,!Z5____^#Q#PQP%M>7UW#B50D#,=$)`A*W@@( -XMQT0D!"@```#'!"1`(0D(Z,+X_?^X0"$)".F1_O__N4^-"`CI9?___X&@5`@` -XM`/_^__^X`0```.G8_?__C;8`````58GE4X/L%(M%"(M8$,=$)`@`````QT0D -XM!#0```")!"3HRZS^_[H!````A<`/A58!``"+50CV@JP$```"#X5.`0``BT48 -XMA<`/A80!``"+112%P'0EBU44B50D!(M-"(D,).@*U/__QT0D!":Z"`B+10B) -XM!"3H]]/__XM5"(D4).B]OW_A<"-4`$/ -XMA+H!``"$VP^$I`$``(M-"(N!:`,``(T$0,'@`@-!$(M`.,=$)!``````BTT0 -XMQT0D"-NY"`B)5"0$B00DB4PD#.@#]/W_BT4(]H!P`P```0^$3@$``(G"BX!H -XM`P``C01`P>`"`T(0BT`XQT0D#.FY"`B)1"0(QT0D!`4```"+10B)!"3HK*?^ -XM_\<$)'\```#HE/C]_\=$)!``````QT0D#`````"+51")1"0$B50D"(M-"(D, -XM).CJ^___B<*#Q!2)T%M=P\=$)`0!````B10D_Y.@"```A\=$)`@"```` -XMBTT,BT$@BP")1"0$BT4(B00DZ$QM``"#Q!2Z`0```%N)T%W#QT0D!":Z"`B+ -XM10B)!"3HC-+__XM%%(7`#X5E_O__Z87^___'1"0(U;D(",=$)`0%````BTT( -XMB0PDZ.&A_O^#Q!2Z`0```%N)T%W#C70F`,=$)`@`````QT0D!`````"+50B) -XM%"3_DUP(``"+30B#B:P$```4BT48A<`/A/S]___I>____XG"BX!H`P``C01` -XMP>`"`T(0BT`XZ4?^__^+30B+@6@#``#IN/[__XM-"(N!:`,``.EC_O__A-MT -XM'(M5"(N":`,``(T$0,'@`@-"$(M`.(G"Z2;^__^+30B+@6@#``")PND6_O__ -XMD(UT)@!5B>564[L!````@>P@!```BW4(QT0D"`````#'1"0$-````(DT).@% -XMJO[_A<`/A:D```#VAG`#```!#X6H````BX9H`P``C9WX^___B1PDB40D#,=$ -XM)`B9W@@(QT0D!``$``#H;/7]_XM&$,=$)`@`````QT0D!`````")-"3_D)P( -XM``"+AJP$``")7"0(QT0D#`````")-"2#\!#!Z`2#X`&)1"00BT4,B40D!.B. -XM_/__BU80QT0D"`$```")PXM&((M`"(DT)(E$)`3_DIP(``"!CJP$``````@` -XM@<0@!```B=A;7EW#BX9H`P``C01`P>`"`T80BT`XZ4?___^058GE5XG'5E.# -XM[%R)5<")3;R+6!R%VP^$$`4``/:`B`,```%U,8N0@`,``(72#Y3`A,!T/<=$ -XM)`B@X0@(QT0D!`0```")/"3HY)_^_S'`@\1<6UY?7<.+@(`#``"-!$#!X`(# -XM1Q"+2#B%R0^4P(3`=WC_````#X9^!```BW-TB77@QR<=%T`````")1;CK,HN'R`,``(T$0,'@ -XM`@-'$(M0.(T$"HG6B46T,=*)R/?VBTVT@T70`2G1.5W0#X2[````BU70BW6X -XM#[8$,CP@#X29````/`D/A:$```#VA]`#```!=:N+E\@#``#KM<=%\`````"- -XM1?#'1"0,``$``(E$)`C'1"0$`````(D\).BZ$O__A<")1=P/A>[^__^#Q%RX -XM`0```%M>7UW#QT74`````(N/@`,``(T<2?:'B`,```&)R'0-C02=``````-' -XM$(M`.(/"`0%%U(E5Z`^V`CP^=-@\/`^%7O[__^O.@T70`8/!`3E=T`^%1?__ -XM_X-]O`$/A.8!``")SBMUU#M-U!G`]]`AQCGQ#X3;`0``A?_'1>``````#X2& -XM`0``BT<0A<")1>`/A'@!``"+5=PY4'0/A&P!``"-!!X[1?`/A[X!```/MH_0 -XM`P``BY?(`P``BUWPK7=R)7"0,BW7"+5>"+0'2)1=R+0GB)1?"!BE0(`````0``Z67^ -XM__^+1=2--`'I)?[__XM5Q#E73`^%M_S__\=%V`$```#IJ_S__XE$)`R-1?") -XM1"0(BU7(E$ -XM)`B+0G2)/"2)1"0$Z/,=$ -XM)`P``0``B40D"(M#=(D\)(E$)`3H.P___X7`#X2$_/__B4-TZ53[__^!H%0( -XM``#__O__N`$```#IE?K__X&@5`@``/_^___I-/[__Y"-M"8`````5;D!```` -XMB>6+10B+50Q=Z1SZ__^-M@````"-OP````!5,"N-192)1"0$B1PDZ!OR_?^%P'48 -XMBU7(BT7$@_H`?$A^/.C%[?W_QP`,````BU4(QT0D#)^M"`B)="0(QT0D!`4` -XM``")%"3HK)[^_[@!````BUWTBW7XBWW\B>Q=PST``!``=[V-=@"#P`&)!"3H -XMZ>_]_X7`B460=&F+59"+1<3&!!``B50D!(E$)`B)'"3H6/']_XD<)(G'Z-[M -XM_?^#__]T+HM5R(G[BT7$P?L?,=HQ^`G"=%KH,>W]_\<`!0```(M%D(D$).@P -XM\/W_Z5S___^+5N?]_XD$ -XM)(G&Z%#N_?^%P(G#=$J)="0,B7PD!(E$)`B+1>R)!"3H4^?]_XE<)`S'1"0( -XMO^$(",=$)`0#````BT7PB00DZ*"7_O^+=?B)70B+??R+7?2)[%WIH.[]_XM% -XM\,=%$`````"+7?3'10P%````BW7XBWW\B44(B>Q=Z6>7_O^-M"8`````58GE -XM5U93@^P\]D4@$<=%V``````/A;P```"+10CV@+0!```!#X55!```BTT(BX&L -XM`0``A<`/E<"+70@/ML")1=CV@_P!```!#X1B!```BX/T`0``C01`P>`"`T,0 -XMBT`XA<`/E<"$P'0$@TW8`HM%"/:`\`$```$/A"`$``")PHN`Z`$``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T/(MU$(7V=#&+'?P@"0B+-0@A"0B+31"+50SK`X/" -XM`0^^`H7`>`PYV'T(9H-\AC0`>`N#Z0&)]G7C@TW8`HM=((/C`HE=T'00BWT( -XM]H>N!```0`^%>@4``(M%((/@"(E%U'00BU4(]H*N!```@`^%?04``(M=%(7; -XM#X01`@``]D4@`0^$6@(``(M-$+@W````A+?0B+7Q"%VW0-]H-5"``` -XM`0^$.`4``(7`QT7P``````^%HP<``,=%X`````"P`;X:````BUW@Q@->QP`H -XM6R`)QT`$77PO7,=`""HH6U['0`PJ77QMXD(UT)@`/OL.)1"0$QP0DS.$(".CQY_W_A@\8!@VT0`71%@T4,`8M]#`^V'X#[('7#QP8H6R`)QT8$77PO7,=&""HH -XM6U['1@PJ77QO]_XM-%(L!Q@0X`(7V="B+70B%VW06BUT(BT,0A7UW#]D4@$`^$/@$``(M% -XM"(7`#X1R`P``BTT(BUD0A=L/A&0#``#V@U4(```!#X57`P``BT40`<`[0W@/ -XMAP\(``"+0W2)1>"+0WB)1?"!BU0(`````0``BT40A<`/A?4$``"+50P/M@+' -XM1=P`````/%Z+=>`/A%H&``"+11"%P'5T#``")]@^V00&)SX/'`3PO#X2_ -XM`P``/#\/A+<#``"-M"8`````#[[#B40D!,<$)-OA"`CHH>7]_X7`=`S&!ER+ -XM10R#Q@$/MAB('H/&`8-M$`$/A)D#``")?0R+30P/MAF`^UQTH(M]#(/'`>NX -XM]D4@!`^$V0$``(/$/+@!````6UY?7<.)PHN`K`$``(T$0,'@`@-"$(M`.(7` -XM#Y7`Z9O[__^+30B+N>@!``"%_P^5P.GF^___BWT(BX?T`0``A<`/E<#IHOO_ -XM_XM%$#'VNP$```"%P`^$:P$``(M5$##;BTT,ZQR0/"H/A.T````\+@^$Y0`` -XM`(/&`8/J`71:@\$!#[8!/%L/A,\```!^V#Q<#X2`````/'YUW(M]"/:'4`(` -XM``$/A.D```"+AT@"``"-!$#!X`(#1Q"+0#B%P`^5P(3`=+2+70@#L^0```"# -XMZ@&[`0```'6FA=L/A)L!``"+70B%VW07BU4(BUH0A=MT#?:#50@```$/A$(% -XM```Q_X7VQT7P``````^%$@8``(G[Z>D!``"#^@$/AE?___^#P0&#Z@$/M@$\ -XM/'0@#XXL`0``/%L/A``$```\?@^$GP,``#P^B?8/A2(!``"#Q@B[`0```(GV -XMZ1[___^+?0CVAU`"```!=#^+AT@"``"-!$#!X`(#1Q"+0#B%P`^4P(3`#X3S -XM_O__@\8"NP$```#IYO[__XM%"(N`2`(``(7`#Y7`Z1O___^+10B+N$@"``"% -XM_P^4P.O(*?N^`0```(E=$(/#`8E]#(M]#(E]X.E$_/__B7PD"(E$)`2+10B) -XM!"3HXOC__X/$/+@!````6UY?7<.)^`6P````B00DZ"KG_?^!IZP$``#__[__ -XMZ6CZ__^)T`7(````B00DZ`SG_?^+30B!H:P$``#__W__Z6+Z__\Y0W@/@C0$ -XM``"+2W2)3>"+0WB)SH/&&HE%\(G(@8M4"`````$``(/``>FW^O__/"H/A-0" -XM```\+@^$S`(``(/&`I"-="8`Z?[]__^+71`Q]H/#`>D^____BT40QT7P```` -XM`,=%X``````!P`^$M/S__XE$)`R-1?")1"0(QT0D!`````"+70B)'"3HQP3_ -XM_X7`B47@#X6+_/__Z2G]__^-M"8`````@/HJ#X07`0``@/HNC70F``^$"@$` -XM`(@3@\,!@VT0`0^$N_[__X-%#`&+10P/MA"`^EL/A.@```!^QH#Z7'1^@/I^ -XM==*+30CV@5`"```!#X0(`0``BX%(`@``C01`P>`"`T$0BT`XA<`/E<"$P`^% -XM+0(``,8#?H/#`>N@D(UT)@"+?0R)PX-M$`&('H/&`8/'`H-M$`$/A6?\__^+ -XM1=R%P'0&Q@8D@\8!*W7@B?.)=1"#PP&^`0```.F"^O__@WT0`0^&<@(``(-% -XM#`&+30R#;1`!#[81@/H\#X0_`P``#X_I`0``@/HJ=`V`^BZ-="8`#X7R`0`` -XMBTT(]H%0`@```0^$L@,``(N!2`(``(T$0,'@`@-!$(M`.(7`#Y7`ZR20BTT( -XM]H%0`@```71#BX%(`@``C01`P>`"`T$0BT`XA<`/E,"$P`^$R_[__\8#7(M- -XM#(/#`0^V$>FZ_O__BT4(BX!(`@``A<`/E<#I_/[__XM%"(N`2`(``(7`#Y3` -XMZ\2+30R+71"+50P/MD09_X/J`3PO#X2)`0``/#\/A($!```\),=%W``````/ -XMA(8"``"+?0P/M@<\+W0(/#\/A=;Z__^#10P!BU4,@VT0`0^V`NG#^O__B40D -XM#(U%\(E$)`C'1"0$`````(M%"(D$).B^`O__A<`/A"C[__^)1>"+=>"#P`&# -XMQAKI-/C__XM]"/:'4`(```$/A#P!``"+AT@"``"-!$#!X`(#1Q"+>#B%_P^4 -XMP.FT^___QT0D"`````#'1"0$!0```(M-"(D,).B^C?[_BUT4BP.%P`^%'OG_ -XM_^DX^?__BWT(]H=0`@```0^$T````(N'2`(``(T$0,'@`@-'$(M`.(7`#Y3` -XMA,`/A!#[__^#Q@&[`0```.D#^___BTT(BY'@````BX'D````B1PDB50D!(E$ -XM)`CH]>/]_XM%"`.8Y````.E._?__@/I;#X0@_O__@/I^#X3]````@/H^#X3< -XM````Q@-"#10P!@VT0`8/&`>F0^?__ -XM@:!4"```__[__^FG^/__@VT0`75DBWT,#[8'QT7<`````.E>^?__Q@-<@\,! -XMZ=?\__^+10B+@$@"``"%P`^4P.DT____BT4(BX!(`@``A<`/E,#I@?K__SMS -XM>`^'6`$``(M#>(M[=(E%\(&+5`@````!``#IKOK__XM-$`^V!!'I"?[__XE$ -XM)`R-0WB)1"0(BT-TB40D!(M5"(D4).C\`/__A<`/A&;Y__^)0W3IG_O__\<# -XM6ULZ/F;'0P0Z7<9#!EV#PP?I/_S__XM%"/:`4`(```$/A+D```")PHN`2`(` -XM`(T$0,'@`@-"$(M(.(7)#Y7`A,`/A6;\__^+10B+D.````")P>F,_O__QP-; -XM6SH\9L=#!#I=QD,&78/#!^GF^___@VT0`0^$N0```,=%W`$```#I9/W__XU% -XM\(ET)`R)1"0(QT0D!`````"+30B)#"3H1P#__X7`B<%N/[__P````#'A;S^__\`````QX7`_O__`````,>% -XMQ/[__P````"#Y@&)C93^__^#Z`D\:793BY6@_O__NP$```#'1"0("@```(M" -XM((M`$(D\)(E$)`3H/E4``('$?`$``(G86UY?7<.+AWP!``"-!$#!X`(#1Q"+ -XM6#B%VP^4P.E$____D(UT)@`/ML#_)(6TX@@(A?8/A2`5``#VAZX$``!`#X0U -XM%0``BXV4_O__QX7$_O__`0```(E-"(N%$/___X/``8F%$/___P^V`(3`#X5: -XM____BY7$_O__A=(/A*80``#VAZP$```"="&`O_0`````=!B+A;S^__\+A;C^ -XM__\+A<#^__\/A2T2``"+C:#^___'1?``````BX6@_O__BTEDB8T,____BT!L -XM.<&)A:3^__\/A_\4``"+1Q#V@%0(```$#X7O%```BY6\_O__BXW`_O__"Y6X -XM_O__QX70_O__`````,>%U/[__P`````)RL>%V/[__P````#'A0C___\````` -XMQX4$____`````(F5F/[__\=$)`P!````QT0D"`````#'1"0$`````(D\).CS -XM3/[_A\.``"+C0S___^-1>R-E1#___^)1"00B50D -XM#,=$)`@!````B4PD!(D\).@T5/[_A<`/A7,%``"`O_0`````=&:+A=C^__^% -XMP`^$BA(``#';A?\/A'H/``"+7Q"%VP^$;P\``(N5V/[__SE3=`^$8`\``(M5 -XM[#M5\`^'PQ```(E4)`B+A1#___^+E=C^__^)1"0$B10DZ+W>_?^+C=C^__^) -XMC1#___^+1>R[`0```#'VQX6P_O__`````,>%R/[__P$```#'A%&/___P````#' -XMA1S___\`````B8T@____BTT(B40D$(N%L/[__P.%$/___\>%)/___P````") -XM5"0,QT0D"`H```")1"0$B0PDZ.C:_?^#^`$/A$$#``"%P`^%%!4``(.-S/[_ -XM_P&%VP^%!`(``(N%&/___PN%'/___P^%\@$``(N%(/___PN%)/___P^%X`$` -XM`(N%K/[__X7`#X1M#P``BYT`____@\,!.YT(____=DF!^P`!``")V',%N``! -XM```!A0C___^+A03___^%P`^$O!0``(N%"/___XN5!/___XE$)`2)%"3H>MC] -XM_X7`#X1`$0``B84$____BX6P_O__`X40____BXT`____BY4$____#[8`B`01 -XM@X6P_O__`8.MK/[__P&)G0#___^[`0```,>%T/[__P$```#IK?[__\>%P/[_ -XM_P$```#IM?S__\>%N/[__P$```#IIOS__X"_]0`````/E(?U````Z9/\__^` -XMO_0`````#Y2']````/:'K`0```$/A'C\__^-1=2)1=2)1=CI:OS__X72#X7= -XM^___Z!_:_?_'``````"-A1#___^)1"0$BX40____QT0D"`H```")!"3HR=C] -XM_XG#BX40____@#@`=0F#Z`&)A1#____HWMG]_X,X(@^$5Q$``(N5H/[__XM" -XM;(E"9(/H`0'8B4)LB40D!(D\).@!4_[_AC[__^+C:#^__^#:5P! -XMZ=G[__^+A:#^__^#0%P!ZB+A;#^__\#A2#___^)3=R)3>2)1>"+1>R% -XMP'4.QT7@`````,=%Z`````#VAZP$```"#X1&`@``BU7L.57@<@:-0O^)1>`Y -XM5>AR!HU"_XE%Z(M%Y,=$)`0!````B3PDB4=,BT7HB4=0Z**'`0"%P`^%L0$` -XM`,=$)`@`````C5VXQT0D!`GB"`B)/"3HGWK^_\=$)`@`````B3PDB40D!.B[ -XM:`$`QT0D#`````#'1"0(`````(E<)`2)/"3HGTC^_X7`#X5>`0``BT7`@_@! -XM#X0H`@``<@6#^`1V#(E<)`2)/"3H:$/^_XM'$(.(5`@```3'A=#^__\!```` -XMQX74_O__`0```(7V#X1-"@``BYVL_O__A=L/A)<```"+G0#___\#G:S^__\[ -XMG0C___]V28'[``$``(G8_O__C474QT0D#``(``#'1"0(`````(E$)`2)/"3H)ST``(7` -XM#X4V____BT74BT`(#[8`B$7$#[9%Q#QQ#X3?_?__/'D/A:\)``"+A0S___\Q -XMTHNU&/___XN-"/___XE'3(N%`/___P.%&/___Q.5'/___XEW4(/Z`'P.#X]0 -XM`P``.<@/AT@#``"+E0#___^+A;#^__\#E03___\#A1#___^)="0(B10DB40D -XM!.AS^__\/A&,#```\7`^$$P,```^VM>S^__^)\8#Y -XM_P^$O@(```^VT8M'$`^VA`)3!P``@_@(#Y3"@_@,#Y3`A,!U"(32#X2H`@`` -XMBX?L````.X?P````#X0D!0``BX?P````BY?H````BXT`____B0R"@\`!B8?P -XM````BYT`____@\,!.9T(____OW__X.]^/[__P(/A.L"```/AS(#``"#O?C^__\! -XM#X3B`@``Z+;/_?^+C?3^__^^7````+I<````AS^__\/AHT"``"#A?#^__\!Z:7\___VAU`"```! -XM#X2*`0``BX=(`@``C01`P>`"`T<0BW`XA?8/E<"$P(V5&/___P^$<_S__XL: -XMBW($B=@A\(/``0^$8?S__XM*#(M2"(G0(C^__^+E>C^__^)\(@" -XM@\(!.YV<_O__B97H_O__#X0O_/__@X7D_O__`8N%Y/[__P^V,(GR@,(!#X4> -XM____BT<0@+A2!P``_P^%#O___\=$)`3_````B3PDZ/@\_O_I^?[__XN?2`(` -XM`(7;#Y7`Z7W^___'A;C^__\`````QX6\_O__`````,>%P/[__P````#I6O+_ -XM_X.]^/[__P,/A($"``"#O?C^__\$#X7/_?__B?(/ML([!?P@"0@/C>7^__^+ -XM%0@A"0CV1((U$`^$U/[__P^VM((T"```Z_[_BX?H````A<`/A8+Z__^[`0```,>'[`````````#I -XM-?C__P^VP/\DA5SD"`C'A?C^__\`````B?(/ML([!?P@"0@/C6?Z__^+%0@A -XM"0AF@WR"-``/B57Z__\/MK2"-`0``.E(^O__BX4(____B00DZ%O1_?_I@?K_ -XM_X.]^/[__P,/A"L"``"#O?C^__\$#X7!_/__B?$/ML$[!?P@"0@/C0KZ__^+ -XM%0@A"0CV1((U$`^$^?G__P^VM((T"```Z>SY__\IE0#___^)T,>'\``````` -XM``"+E0#___^+C0S___\#A03___^)/"2)5"0,B40D"(E,)`3HP4K^_X7`#X50 -XM]___BX4,____.4=8=`>#1V`!B4=8BX68_O__A@`````A<")5=R)5>0/A2,(``"+A;S^__^%P`^%Z`<``(NUP/[_ -XM_X7V="B+E:#^__^-1=R)1"0,C47DQT0D$``0``")1"0(B50D!(D\).BUL/__ -XMBYW4_O__@X4,____`87;#X0E`0``@+_T`````'4SBX6H_O__.4=,=0N+E;3^ -XM__\Y5U!T'8U'4(E$)`B+1TS'1U``````B3PDB40D!.A4[?[_BXW0_O__A%^/[__P````#I??W__\>%^/[_ -XM_P````#I1/S__\=$)`@$````BT(@NP$```"+`(D\)(E$)`3H1D0``.D#[___ -XMBXT(____B0PDZ(?/_?_I=/S__\>%P/[__P````#'A;C^__\`````QX6\_O__ -XM`````/9%#`(/A%#O___IGN[__X&C5`@``/_^__^+1>PY0W@/@JX!``"+2W2) -XMC=C^__^+0WB)1?"!BU0(`````0``BU7LZ77P___'A?C^__\`````Z=/]__^+ -XMC0S___\YC:3^__\/@LG^__^+1Q#V@%0(```$#X26[___Z;3^__^-="8`BX4` -XM____,=(#A2#___\3E23___^+C0C___^#^@!\27\$.0(``,>%T/[__P$```#I?//__XVV`````,=$)`3_````B3PDZ&`X_O^#^`@/ -XME,*#^`P/E,#IEO;__P^VM((T!```Z9+Z__^-1?")1"0(BX78_O__B50D#(D\ -XM)(E$)`3H]>O^_X7`#X3M\?__BU7LB878_O__Z0KO___'1"0(;.(("+L!```` -XMQT0D!`,```")/"3H(G?^_^G_[/__B40D#(U#>(E$)`B+0W2)/"2)1"0$Z*/K -XM_O^%P`^$F_'__XE#=.DH_O__@X7P_O__`<>%^/[__P````#I@_7__XN%[/[_ -XM_X.%\/[__P'!X`2-E"@8_/__Z3GY__^#A?#^__\!]H=0`@```0^$WP$``(N' -XM2`(``(T$0,'@`@-'$(M0.(72#Y3`Z?OX__^#A?#^__\!QX7X_O__`P```.DA -XM]?__@X7P_O__`<>%^/[__P0```#I"_7__X.%\/[__P''A?C^__\!````Z?7T -XM__^#A?#^__\!QX7X_O__`@```.G?]/__@:!4"```__[__^E8\___QT0D""'B -XM"`B[`0```,=$)`0#````B3PDZ`UV_O_I!//__\'@`HD$).AQS/W_Z7?Z__]\ -XM##T``0``D`^#8/?__[@``0``D(UT)@#I4??__X7_#X3+````BU\0A=L/A,`` -XM``#V@U4(```!#X6S````BT7L.4-X#X)G!```BT-TB878_O__BT-XB47P@8M4 -XM"`````$``(M5[.E9[?__QT0D"`````"[`0```,=$)`0%````B3PDZ'%U_O_I -XM3NO__XN5"/___XD4).C2R_W_Z?OV___'1"0(`````,=$)`0%````B3PDZ$%U -XM_O_I,_+__XN%R/[__X7`#X1Y_?__BX6L_O__,=N%P`^%C>[__X.-S/[__P+' -XMAS'1?``````A=(/A,'L__^-1?")5"0,B40D",=$ -XM)`0`````B3PDZ'OI_O^%P`^%AOW__^EN[___BX=(`@``A<`/E,#I*/?__\=$ -XM)`@TX@@(NP$```#'1"0$`P```(D\).BA=/[_Z7[J___'1"0(!@```+L!```` -XMQT0D!`````")/"3HGS\``.E%T/[__P````#' -XMA=C^__\`````QX4$____`````.E=^O__BX4`____*97\_O__QX?P```````` -XM`"G0B86P_O__B="+E?S^__^+C0S___\#A=S^__^)/"2)5"0,B40D"(E,)`3H -XM-T3^_X7`#X7&\/__BXT,____C47LC940____B40D$(E4)`S'1"0(`0```(E, -XM)`2)/"3H5#_^_X7`#X63\/__,=N%_P^$S0$``(M?$(7;#X3"`0``BX78_O__ -XM.4-T#X2S`0``BU7L.U7P#X>R`@``B50D"(N%$/___XN5V/[__XE$)`2)%"3H -XM],G]_XN-V/[__XN%"/___SF%L/[__XM=[(F-$/___W9,BX6P_O__/0`!``!S -XM!;@``0```84(____BX7<_O__A<`/A$`"``"+C0C___^+A=S^__^)3"0$B00D -XMZ)G$_?^%P`^$7_W__XF%!/___XN5L/[__XN%$/___XN-!/___RN=L/[__XE4 -XM)`B)1"0$B9VL_O__B0PDZ%W)_?^+AP$``(N5L/[__S';O@$```")E0#____I\.O__XN-N/[__PF-O/[__XN% -XMO/[__PN%P/[__P^%^OC__XN5H/[__S';@XJ`````0.E+[___BU4(NP$```") -XM1"0$B3PDB50D".@7VO__Z2[O__^+C0C___^)#"3HF,C]_^E)Z___C47`^".P$``(M3=(F5V/[__XM#>(E%\(&+5`@````!``"+5>SI -XM(O[__XN-"/___XD,).CTQ_W_Z;;M__]\#ST``0``C70F``^#*/G__[@``0`` -XMD(UT)@#I&?G__XN%"/___XD$).C!Q_W_Z3+Y__^)1"0,C4-XB40D"(M#=(D\ -XM)(E$)`3HSN7^_X7`#X3&Z___B4-TZ6_[__^+E;#^__\QV[X!````@XW,_O__ -XM`L>%R/[__P````")E:S^__^)E0#____I7NK__\=$)`CBX0@(NP$```#'1"0$ -XM`P```(D\).C2O__XM5[(F%V/[__^D;_?__BXT( -XM____B0PDZ.W&_?_I`O'__XE$)`R-0WB)1"0(BT-TB3PDB40D!.CZY/[_A<`/ -XMA/+J__^)0W3IF_[__XN-L/[__XN%!/___XF-`/___XF%W/[__XN5W/[__\>% -XMT/[__P$```")E03____I]>O__XVT)@````!5B>6#["B)7?2+70B)=?B+=0R) -XM??R+D\````"%T@^$E0```/:#K@0``$"-N[````!T/HM&>#')AQ=Z;;D__^-M@````"+1G2+`(L(Z]*-M"8` -XM````QT0D&`(```")?"04QT0D$`````#'1"0,`````(N#Q````(E4)`2)'"2) -XM1"0(Z`[8__^%P'2,BUWTN`$```"+=?B+??R)[%W#QT0D"`8```#'1"0$```` -XM`(D<).A@.@``Z]2-M"8`````C;PG`````%6)Y8/L*(E=](M="(EU^(MU#(E] -XM_(N3V````(72#X25````]H.N!```@(V[R````'0^BT9X,7UW#@\`!.3W\(`D(B47!Y``` -XM``````"+5=2)V8E4)`2+10@%L````(D$)(M5#(M%".C[X/__@\1,6UY?7<.) -XMSBMUW,=$)!@"````BT4(!;````")1"04BT4(!<0```")1"00BT4(B70D"`7` -XM````B40D#(M%W(E$)`2+50B)%"3H3-3__X7`=`JX`0```.G-_?__QT0D&`@` -XM``"+10@%R````(E$)!2+10@%W````(E$)!"+10B)="0(!=@```")1"0,BTW< -XMB4PD!(M%"(D$).C\T___A"K`````$```#'1=0!````Z7O^__^# -XMPP'I\?[__XM%"(7`#X0L`@``BU4(BW(0A?8/A!X"``#VAE4(```!#X41`@`` -XMBU70.59X#X(G`P``BT9TB478BT9XB47P@8Y4"`````$``(MUV,=%X``````/ -XMMA.$TG0P#[[".?@/A","``"`^EP/A*4```"`^GX/A/<```"#PP&(%H/&`8-% -XMX`$/MA.$TG70A?\/A/8!``"+1>"+30B%P(F!Y````'1$BX'@````A`"`T$0 -XMBT`XA<`/E<"$P`^$V/[__XM5"(/#`8N"X````(N2Y````(DT)(E$)`2)5"0( -XMZ!O`_?^+50B+@N0````!1>`!QNE__O__!;````#'1"08`@```(E$)!3'1"00 -XM`````,=$)`P`````BTT(BX'$````B50D!(D,)(E$)`CHRM'__X7`#X17_/__ -XMZ77]__^+10B+@$@"``"%P`^5P.EI____@\,!B`!#[83 -XM@\,!Z=7]__\/ME,!C4L!A-)T2@^^PCGX#X7;^___C4L"BS,``+@!````Z8#Z__^+30B+D4@"``"%T@^4P.EC -XM_O__A?]TO8G+Z1G\__^!H%0(``#__O__Z0K\___'1"0(`````,=$)`0%```` -XMB0PDZ`QH_O^+10B%P'02BU4(BT(0A=G,/MA.`^@ET:X#Z(+C_____=&%;7E]=PSGR -XM"(NX -XMF````#G:=2#K18M"!(E!!(M"!#G8=":)"(D4).C,O?W_BU8(.=IT)XL*.=EU -XMW(M"!(E&#(M"!(L*.=AUVHE."(D4).BEO?W_BU8(.=IUV8L6A=)T#SGZ=!V+ -XM1@2)0@2+1@2)$(DT).B!O?W_@\0,,53B=.#[`2+$HN(F````(72="N+0P2)0@2+0P2)$(M#"(D$).@YO?W_ -XMB1PDZ#&]_?^#Q`0QP%M=PY"-="8`BT,$B4$,BQ/KT8VV`````%6)Y593@^P0 -XMBW4(BYZ8````BP,YV'0@B40D!(DT).CM_O__BP,YV'7NBU,(A=)T#HGPZ'G_ -XM__^+4PB%TG7RBT,4AR+4`B% -XMTG7NC7L!B5WPZTV-M@````")="0(BU7PB00DB50D!.CQN_W_BT,(Q@0P`,9# -XM$`#'`P````"+5>R+0@R)0P2+0@R)&(E:#`^V3_^$R0^$EP```(E]\(/'`0^V -XM3_^$R70A#[[1A=)X[CL5_"`)"'WFH0@A"0CV1)`V`G3:C;8`````C7?_*W7P -XM@_X!=K['!"04````Z$V[_?^%P(G#=%6-1@&)!"3H/+O]_X7`B4,(#X5=____ -XMQT0D"`````#'1"0$!0```(M%"(D$).BB9/[_BT,(A<`/A3?___^)'"3HH[O] -XM_[@!````ZP(QP(/$'%M>7UW#QT0D"`````#'1"0$!0```(M5"(D4).AC9/[_ -XM@\0B+1?")7"0(B4PD!(D$).@"NOW_BU7PBTWP@\(( -XMB57LB5$(B5$,QT$0`````(M%Z(MP%(7V=`B)R(/`'8E!%(M5Z(MR"(/""(E5 -XMW#G6=2_IN````(M-[(D+BU7PBT(,B4,$.TH(#X2-````B1B+3?")60R+-CMU -XMW`^$C@```(M>%+\L````A=MT!HM^&(/'+8M.((7)=`B+1B2#P`$!QXD\).@_ -XMN?W_A<")PP^$$@$``(E\)`B)="0$B00DZ%6Y_?^+5A2%TG0&C4,HB4,4BT8@ -XMA2+1?")$(M"!(M-\(E!!#L2#X3&````BU7DBTWP -XMBT($B0B+1>2+5?")4`2+3>B+1>"+"3G!B4WH#X6*_O__BU7@BW((A?9U6^FY -XM````C;0F`````(L&B0.+1@2)0P2+1@B)0PB+1@R)0PR+1A")0Q"+1@B)!"3H -XM;;+]_X7`B4,(#X2@````QP,`````BU7DBT(,B4,$BT(,B1B)6@R+-H7V=&/' -XM!"04````Z"FX_?^%P(G#=9^+30S'1"0(`````,=$)`0%````B0PDZ)1A_O^X -XM`0```(/$+%M>7UW#B0KI/O___XM5#,=$)`@`````QT0D!`4```")%"3H96'^ -XM_[@!````Z\^+3>"+012%P'02B00DZ-"Q_?^+5>2%P(E"%'23,<#KK[`!ZZN- -XM=@"-O"<`````58GE5U93@^PLBT4(BX"8````B47HBS@YQP^$-P(``(M%"(-X -XM."(/A@4"``"+0!#'1>P!````]H!4"```!`^%"0(``,=$)`P!````QT0D"``` -XM``#'1"0$`````(M%"(D$).CZ)/[_A@/A,8!``"+=PB-5PB)5>0YU@^$@`$``(GPZV.0C70F`(U$`^:)1"00QT0D -XM#!H```#'1"0(&@```,=$)`0.YP@(BU4(B10DZ'61__\Y=Q`/A)0````Y=P@/ -XMA*<```#'1"0$)KH("(M%"(D$).A0D?__BS8[=>0/A!P!``"+1P@YQ@^$\@`` -XM`,=$)`2WW`@(BT4(B00DZ">1__^+1@B%P`^$S````(M8"(D<).C%M_W_@_@> -XM#X=H____B5PD$,=$)`P>````QT0D"!X```#'1"0$&^<("(M%"(D$).CAD/__ -XM.7<0#X5L____QT0D!.#A"`B+50B)%"3HQ9#__SEW"`^%6?___XM?%(7;#X1. -XM____BT4(BT`XB47P@^@>@_@8#X8Y____B1PDZ$BW_?^YMMP("#MW$(G"=`6Y -XMM=P("(E<)!"+1?"#Z",YT'8"B=")1"0,B4PD",=$)`3PF`@(BU4(B10DZ%B0 -XM___I\/[__XUV`(M>%.DO____BT7LQT0D!`GG"`B)1"0(BU4(B10DZ"Z0___I -XM`O___XM5"(L_BT(0]H!4"```!'4D@T7L`>D2_O__QT0D"/+F"`C'1"0$`P`` -XM`(M%"(D$).CD7O[_@\0L, -XM7UW#BU,(BT,,B4(0BT,0BU,(B4(4BT8@9H-(&`''1"0,(````,=$)`@````` -XMBT,(B30DB40D!.BM#/[_A$``0``7>GM_O__B1PDQT0D"`````#'1"0$`0```.@U -XM^?__@\04N`$```!;7<.-=@"-O"<`````58GE5U93@^PLBT4(B[B8````BQ(7`=1V+10P/MTA\BT4(@>$``0``Z(7^__^#Q"Q;7E]= -XMPX/H`70%Z->N_?^+072+`(L`QT0D"`H```")1=R-1?")1"0$BT7+5>`/A9+^__\QP.F@_O__D(UT)@!5B>564X/L$(MU -XM#(M="(M&"(7`='(QTCE#('0@QT0D"!$```"+11")'"2)1"0$Z(T%_O^%P'0. -XMN@$```"#Q!")T%M>77<.+1A2)'"2)1"0$ -XMZ#H(_O^%P(E&"`^%=/___^N4C;8`````C;PG`````%6)Y8/L.(E]_(M]#(EU -XM^(MU"(E=](M'"(7`#X0``0``C47PB40D"(ET)`2+1A")!"3H>IW^_X7`=!:X -XM`0```(M=](MU^(M]_(GL7<.-="8`BT7PQT0D"`````")-"2)1"0$Z!F1`0"% -XMP`^%T0```(M'"#M&(`^$]0```(M5$(E$)`2+1?#'1"0(`````(E4)`R)!"3H -XM!PG^_X7`=52+1PB+7?"+0`C'1"0$`````(DT)(E$)`CH1A#__XE#)(E#*(M% -XM\(&@K`0``/_^__^+1?"!B*P$``"`````BT7P@8ZL!````!```(E&%#'`Z4[_ -XM__^+1?#'1"0$`````(D$).@IO[_A<`/A88```"+@ZP```"%P'0OBU7LC4-0 -XMQT-0`````(E$)`B)'"2)4TR)5"0$Z*S,_O\QP(M=](MU^(M]_(GL7R)1"0$Z/DE_O^%P'6IBT4(QT0D!``` -XM``")'"2)1"0(Z#[T__^X`0```.NMC;0F`````,=$)`0H````B30DZ&2K_?^% -XMP'0R*?#'1"08A````,=$)!0`````B40D$(ET)`R)?"0(B7PD!(D<).B2I?[_ -XMA<`/A#3___^+10C'1"0$`@```(D<)(E$)`CHT_/__[@!````Z3____^)]HV\ -XM)P````!5B>6#[!B)??R+?0B)7?2)=?B+AY@```"+&#G##X24````BT,0BW`$ -XMC4,(.<9T:(M5#`^W0GR)="0$B3PD)0`!``")1"0(Z/7[__^Z`0```(7`=1SV -XM0QP!B7,0=".)="0(B5PD!(D\).@S-___,=*0BUWTB="+=?B+??R)[%W#D(M# -XM%(M6((M.)(D$)(GXZ`W^__\QTNO9QT0D"(#F"`C'1"0$`P```(D\).AA5_[_ -XMN@$```#KNL=$)`@`````QT0D!`$```")/"3H\O+__S'2ZYZ-M"8`````C;PG -XM`````%6)Y8/L&(E]_(M]"(E=](EU^(N'F````(L8.<,/A)0```"+0Q"+,(U# -XM"#G&=&F+50P/MT)\B70D!(D\)"4``0``B40D".@6^___N@$```"%P'4=]D,< -XM`8ES$'0DB70D"(E<)`2)/"3H5#;__S'2B?:+7?2)T(MU^(M]_(GL7<.0BT,4 -XMBU8@BTXDB00DB?CH+?W__S'2Z]G'1"0(K.8(",=$)`0#````B3PDZ(%6_O^Z -XM`0```.NZQT0D"`````#'1"0$`0```(D\).@2\O__N@$```#KFXUT)@"-O"<` -XM````58GE5U93@>R<#```BT4(BU4,BX"8````B86(\___BT)XA<`/A5,#``"+ -XME8CS__^+C[__^) -XM1"0,QT0D"$/G"`C'1"0$``0``(E4)!")'"3HRJG]_\=$)`20O@@(B1PDZ.JD -XM_?^-C>CW__^)C7SS__^%P(F%I//__P^$QP```(N%I//__XV5Z/?__\=$)`0` -XM!```B10DB40D".C@IOW_A<`/A)$```"-C>CW__^+`8/!!(V0__[^_O?0(<*! -XMXH"`@(!TZ??"@(```'4&P>H0@\$"`-*#V0,KC7SS__^-0?^`O`7H]___"@^% -XMUP@``,:$!>CW__\`#[:%Z/?__X3`=#.+#?P@"0B-E>CW__^+'0@A"0@/OL"% -XMP'@/.%G//__P````"`>A@`#XE0!```BU4,]H*!`````0^%4PD``(M5#`^W -XM0GS'A9SS__\!````)0`!``")1"0(BXV0\___BT$(B40D!(M%"(D$).BS]___ -XMA<`/A4,$``"+E8CS__^+&CG3B=@/A#P*``"+M9#S__^)!HE6!(N%B//__SM` -XM!`^$&@H``(N5B//__XN-D//__XL"B4@$BX60\___B[6(\___B0:+E9#S__^+ -XMM9#S__^+0A"+2"2+4""+1A2)!"2+10CHG?G__XN%G//__X7`#X1D"```BTT( -XMBU,0BT$@B4((BU,0BT%,B4(,BU,0BT%0B4(0@<2<#```,`"`T80BU@XA=L/E<"$P`^%M_S__XNUB//_ -XM_XM%"(MV%(FUV//__XN`F````(F%L//__XDT).A%JOW_QP0D`0```(G#C4`A -XMB40D!.A@I_W_A<")A8#S__\/A(X'``")A9#S__^+E9#S__^#P`B)ACW__^)="0$ -XMBX7`\___B00DZ/>I_?^%P`^%N`(``,=$)!0`````QT0D&`````"+E<#S___' -XM1"0,`@```,=$)`@#````B50D$(N%&/C__\<$)`````")1"0$Z"^E_?^)A=3S -XM__^#P`$/A&D"``"+A=3S__\#A1CX__^+G=3S__^)PBN5U//__XF%X//__XG0 -XMP>@?`=#1^`'#.9W@\___=Q7K'8VT)@`````[G>#S__\/A#8*```/M@.#PP$\ -XM"G7J.9W@\___#X0@"@``B[W4\___B[7@\___BX78\___B?&)VNA3Z?__@^@! -XM#X3@`0``B=Z)\BGZB=#!Z!\!T-'XC1PX.=YW".L0B?8Y\W0.#[8#@\,!/`IU -XM\CG>=;PYO>#S__]V.HN-X//__XGZBX78\___Z`/I__^#^/]T(H7`#X3*`0`` -XM.[W@\___#QP$\"G3&.[W@\___=>Z+A1CX__^)1"0$B[74\___B30D -XMZ&BB_?^%P`^%=@0``(N5P//__XD4).C2I/W_A<`/A4`$``"+E=SS__^`8A#\ -XMBX7<\___BP"%P(F%W//__P^%'/[__XN5@//__XM""#F%S//__P^$,0<``(NU -XM@//__XE&$.G<^___BXV(\___BT$4A7UW#B=_I&_[__^CR -XMHOW_BXW<\___BP")00R+M<#S__^)-"3H::/]_XNUW//__X!.$`''A:SS__\! -XM````Z9#^__^%_P^$2/[__SN]X//__XE]Z',A@#\*=!R)^.L%@#@*="&#P`$[ -XMA>#S__^)1>AU[>D<_O__.[W@\___#X00_O__B?B`.`H/A07^___&``"+5>B) -XM?>B_`0```(F5T//__XU-Z,=$)`31U`@(C5__B0PDZ&NC_?^%P(G&=!^%VW4+ -XMB;6\\___@\B%_W0:A?9T%HD\ -XM).C.I?W_A<")A<3S__\/A0$!``"-=?")="0(BX78\___B40D!(M5"(D4).A@ -XM0?[_B47HC47LB40D"(N-W//__XM!"(E$)`2+=0B)-"3H/D'^_XE$)!")PXM% -XMZ,=$)`AIYP@(QT0D!`,```")-"2)1"0,Z)E-_O^+5?"%TG0>A?9T#XM6$(72 -XM=`B+0G0[1>AT5XM%Z(D$).B(I/W_BT7LAF-_O__B30DZ/VD_?^)M;3S__^)A@/H?W_BXW<\___BP") -XM00SI)O[__XN-O//__XE,)`2+M=CS__^)-"3H1Z']_X7`#X5O_/__BX6T\___ -XM@#@O=!J-E>C[__^)5"0$B00DZ"*@_?^%P`^%20$``#'VBY7(\___BXW$\___ -XMQP0D`0```(U$"C`!\(E$)`3HAJ']_X7`B<,/A!S\__^-0"B%]HE#%`^%N@$` -XM`(N%R//__XGR`U,4@\`!B40D"(N-M//__XD4)(E,)`3H^J+]_XN5R//__XT$ -XM%HE#&`-#%(/``8E#((N-Q//__XG*B4LD@\(!B50D"(E\)`2)!"3HQZ+]_XNU -XMS//__XDSBY6`\___BT(,B4,$.W((#X2<`0``B1B+C8#S__^)60SII_[__\=$ -XM)`B0E`@(QT0D!`4```"+30B)#"3HVTO^_^F@^___QT0D"(7G"`C'1"0$!0`` -XM`(M%"(D$).B[2_[_Z6K[__^+M:3S__^)-"3H[)_]_X/X"G7MZ1GW__^+@=0# -XM``"-!$#!X`(#01"+<#CIY_O__XM%"(M`%(E%"(N0F````(F5B//__^GR]___ -XMQT0D!"\```"+C=SS__^+00B)!"3H2)[]_X7`B<8/A)3^___&``"+A;3S__^- -XMG>CS__^)1"00BY7<\___BT((QT0D"+F4"`C'1"0$``0``(D<)(E$)`SHMI_] -XM_XV-Z/O__\8&+XE,)`2)'"3H89[]_X7`#X4__O__B[7<\___BW8(B;6X\___ -XMB30DZ**B_?^)QNDC_O__C;0F`````('$G`P``+@!````6UY?7<.)="0(BY6X -XM\___B00DB50D!.A.H?W_BT,4Q@0P+X/&`>DA_O__BT,0B[6,\___B7`(BT,0 -XMBY64\___B5`,BT,0BXV8\___B4@0@<2<#```,_O__BTT, -XM#[=!?,>%G//__P`````E``$``.GK^O__#[9"`8UR`<8"`(3`=2+I[?7__XUT -XM)@`YP7X<]D2#-4!T%8/&`0^V!H3`#X30]?__#[[`A_?^%P(G< -XM^O__C5@(B5X(B5X,QT0D!"P```#'!"0!````Z%*>_?^%P(G'#X0<^O__BT8( -XMB5\$B0<[7@P/A%T"``")>`2)?@B)?A#I,/7__XEP!.GO]?__B1Z)VHE>!#M; -XM!`^$)`(``(L#B7`$BXV(\___B?.)\(DQZ9[U___'1"0,4^<("(N%H//__\=$ -XM)`0#````B40D"(M5"(D4).CR3?[_B30DZ.Z?_?^X`0```.G+^?__QT0D#%/G -XM"`B+C=CS___'1"0$`P```(E,)`B+=0B)-"3HNTW^_XN%K//__X7`=%6+A;#S -XM__^+6`B%VW4*ZT:)]HL;A=MT/@^V0Q"#X`.#Z`%U[NA]G/W_BU,,B1#'1"0, -XMGZT("(M#",=$)`0%````B40D"(M5"(D4).AB3?[_@$L0`NN\BXV`\___B0PD -XMZ%*?_?^X`0```.DO^?__#[9"`8UZ`<8"`(3`#X3;\___#[[`A<`/B$0!``"+ -XM#?P@"0@YP0^.&`$``(L=""$)".L9@\")^NL2#[9"`8/"`83`#X2'\___#[[`A;V1(,U0'3? -XMQ@(`@+WH]___``^$9?/__X`^``^$7//__X`_``^$4_/__XDT).@&E_W_A<`/ -XMCD/S__^)/"3H1I_]_XDT)(G#Z#R?_?_'!"0!````C40#+HE$)`3H6)S]_X7` -XMB<,/A(K\__^-0"B)0Q2)?"0$B00DZ%R?_?^)/"3H!)_]_XE#&`-#%(/``8E# -XM((ET)`2)!"3H/)_]_XN%J//__XD#BY6$\___BT(,B4,$BXVH\___.TH(=$>) -XM&(NUA//__XE>#.G]\?__B7,$Z=G]__^+'0@A"0CI!?___XE^#.F>_?__B[W4 -XM\___Z27V__^+#?P@"0B+'0@A"0CIX?[__XE:".NVC;8`````C;PG`````%6) -XMY8M%#(&(@`````````B)10Q=Z4?P__^-M"8`````58GE@>S(````B77XBW4, -XMC47LB5WTC9U8____B7W\BWT(B40D&,=$)!0`````QT0D$`````#'1"0,```` -XM`,=$)`@`````QT0D!#H```")'"3H*Q0``(DT).CWG?W_B70D"(D<)(E$)`R- -XM1=R)1"0$Z+P/``")7"0$B3PDZ,#O__^%P'41BX>L!```@.3^#(")AZP$``"+ -XM7?0QP(MU^(M]_(GL7<.0D)"0D)"0D)"0D)!5B>6#[!B)7?2+70B)=?B)QHE] -XM_(G7]\,``$``#X6.````]\,``!``=!CVAI@"```!=4V+AI`"``"%P`^5P(3` -XM=5F#XQ!T&HM'"(E$)`B+1QS'!"3RF`@(B40D!.CSF?W_H00A"0B+7?2+=?B+ -XM??R)10B)[%WI^I?]_XVV`````(N&D`(``(T$0,'@`@-&$(M0.(72#Y7`A,!T -XMIXM'%,<$)+O<"`B)1"0$Z*:9_?_KDHD,).A575E.! -XM[,P```"+?0R+=12+'SG[=!`Y.P^$%0(``(D\).AHS?W_QT0D#"````#'1"0( -XM`````,=$)`0`````BT4(B00DZ,7._?^%P(G##X0K`0``BP>)>P2)`SE_!`^$ -XM,@,``(L'B5@$B1^+50B+0DR#P`&)0Q2+2A")C53____V@50(```0#X2B```` -XM@^;OB?&)\(/A0"4``@``QX5<____`````(F-4/___XF%3/___XU5V,=$)`P` -XM````QT0D"`````")5"0$BTT(B0PDZ'L(_O^%P`^%HP```(-]X`L/AJL```"- -XM1=@Q]HE$)`2+50B)%"3H10/^_XL3.?H/A+$```"+0P2)0@2+0P0Y^`^$LP`` -XM`(D0B1PDZ$#,_?^!Q,P```")\%M>7UW#C78`]\80````=#")7"00QT0D#``` -XM``#'1"0(`````(M5"(M"3(D4)(E$)`3H$HX``(7`=1Z!S@!```")-"2+31") -XMVHM%".C(_?__Z13___^-=@"^`0```('$S````(GP6UY?7<.+1>#_)(6,YP@( -XMBT,(@'P"_RX/A1D!``"+$S'V.?H/A4____^+0P2)1P2+0P2+$SGX#X5-____ -XMB1?I2/___[X!````Z2'___^+0Q"#P`$[0PQWBX50____A0[%?P@"0A]&J$((0D(]D20-0)T#H/Y"G0)@_D/#X66_O__BT,0#[95 -XMY(M+"(@4`8/``8E#$.E^_O__@WL,'P^&X?W__\=#$`````#I(?[__Y"-="8` -XM_R2-O.<("(E$)`R-0PR)1"0(BT,(B40D!(M-"(D,).A,M_[_A<`/A`3___^) -XM0PCI8?____9%[`(/A%_____WQB`````/A04!``#WQ@`(```/A84$``#WQ@`0 -XM``"-="8`=!&+0QR+4Q"#P`$YP@^$V?[__\=$)`P@````QT0D"`````#'1"0$ -XM`````(M%"(D$).@JS/W_A<")A5C___\/A(S^__^+0Q2+E5C___^#P`'WQA`` -XM``")0A1T1X.]7/___P(/A,@"``"+A5C___^)1"00BT,0B5PD",=$)`0````` -XMB40D#(M5"(D4).@PC```A<`/A3C^___'A5S___\`````B30DBTT0BT4(BY58 -XM____Z-K[__^+C5C___^).8M'!(E!!#D_#X2K`@``BT<$BY58____B1"+C5C_ -XM__^)RXE/!.D<_?__B5\$Z2+E43___^( -XM`HM#",9``0"AH!0)"(7`#X7=`P``BQ4$(0D(BT((@^@!A<")0@@/B.(#``"+ -XM`C'VQ@`*@\`!B0+I2OS__XM#$#M#'`^'"_W___?&$`````^$__S__\>%7/__ -XM_P$```#I\/S___?&$`````^$JOO__XM+$(7)B4V`#X2<^___@[U<____`0^$ -XM'`$```^#!`$``(M%@#M#'`^'??O__XM5"/:"T`,```$/A/,"``"+@L@#``"- -XM!$#!X`(#0A"+0#B)A7#___^+10CV@(@#```!#X2W`@``B<*+@(`#``"-!$#! -XMX`(#0A"+0#B)A73___^+0P@QTL=%D`````")A7S____K%XUT)@"#P@`! -XMBT6`.460#X2)`0``BTV0BX5\____@#P!"77>BXUP____B=`!T3'2][5P____ -XMB8U(____*=&)RNO#B50D$(M%N,=$)`0`````B40D#(U%G(E$)`B+30B)#"3H -XM:XD``(7`#X5S^___BT6DB00DZ!R6_?_'A5S___\`````Z2O]__^)#^E9_?__ -XM@[U<____`P^$U0```.B4D/W_BT,<@\`!.46`#X=D^O__BU,E?W_BT,%7/___P````#KCHM3"#'VBT,0Q@0"`.GD^?__ -XM@^H!B95(____B=`QTO>U=/___S'`BXU(____QX5H____`````"G1.8UP____ -XMB4V,=S.+A7#___^)18CK`XE-B(M%B#'2][5P____BTV(`XUP____@X5H____ -XM`2G1.4V,<]N+18B+58PIPHF5;/___P.5:/___XG0B95X____@\`!.T,,#X>' -XM````BY5X____QT,0`````(E3'(N%:/___X7`=!F+0Q"+4PC&!`()@\`!B4,0 -XM@ZUH____`77GBX5L____A<`/A-K^__^+0Q"+4PC&!`(@@\`!B4,0@ZUL____ -XM`77GZ;S^__^+30B+B8`#``")C73____I3_W__XM-"(N)R`,``(F-$:#R("(0UC'0S0!````B7PD!(DT).BK%_[_AR)1DR+1?")1E`QP.L%N`$```"+7?2+=?B+??R)[%W#BT,T@_@! -XM=+]S"8UT)@#H;XW]_X/X`G7&B7PD!(DT).C:$O[_A53@^P4BUT(QT0D!!#H"`B)'"3H]FO__XD<),=$)`1( -XMZ`@(Z.9K__^)'"3'1"0$@.@(".C6:___B1PDQT0D!,#H"`CHQFO__XD<),=$ -XM)`0?Z0@(Z+9K__^#Q!0QP%M=PXVT)@````"-O"<`````58GE5U93@^Q,BU4, -XMBT)XA<`/A0@!``"+'<#,"`B%VP^$\````(M5"+O`S`@(C77CBT(0]H!4"``` -XM!`^%U0```,=$)`P!````QT0D"`````#'1"0$`````(M%"(D$).CM_OW_A!0[%?P@"0A]#*$((0D(BY20-`@``(A5Y`^V`3'2QD7F78A% -XMY0^V1`H!B$0R!(/"`83`=?")\HM#%(/#&(E4)`S'1"0(#````,=$)`24U`@( -XMB40D$(M%"(D$).@T:___BP.%P'03BU4(BT(0]H!4"```!`^$*____X/$3#'` -XM6UY?7<.#Z`%T!>BKB_W_BT)TBP")1D( -XM"(E$)`B+10B)!"3HGFG__X/$3#'`6UY?7<.-="8`58GE5U93@^PC;0F`````(N&!`0``(7`=(NX8`L)".N&@^@!=`7H28G]_XM"=(L` -XM@W@(`70GQT0D"`H```"+0B"+0!")-"2)1"0$Z)`"``"#Q!RX`0```%M>7UW# -XMBP`/MA@/MM.#^GY_=X/Z6W1J@_I==&6`^WX/A)$```")T,'@!`4`_`@(BW@( -XMA?]T4XM(#`^^$872>!D[%?P@"0A]$:$((0D(NT^-"`CV1)`V`G4%N]+4"`B) -XM?"00B4PD#(E<)`C'1"0$:^D("(DT).C^9___,<#I`O___P^V0`$YT'23C012 -XM@,,!C81!6`$``'1&B30DB40D",=$)`3\Z`@(Z,QG__^#Q!PQP%M>7UW#]H8, -XM!````70MBX8$!```C01`BT2!.(7`#X11____N&`+"0CI4?___XE4)`2)-"3H -XM;O+]_^NLBX8$!```A(M1=(/``8E!>,<$@@````!;7<.-M@`` -XM``"-OP````!5B>564X/L$(M="(MS$,=$)`0!````B1PD_Y:@"```N@$```"% -XMP'0)@\00B=!;7EW#QT0D"`````#'1"0$`````(D<)/^67`@``/:#(`(```%T -XM4(N#&`(``(T$0,'@`@-#$/:#8`$```&+0#B)0S1T1(N#6`$``(T$0,'@`@-# -XM$(M`.(E#.(N#K`0``#'2@^#]@\@%B8.L!```@\00B=!;7EW#BX,8`@``]H-@ -XM`0```8E#-'6\BX-8`0``Z\:-=@!5B>53@^P4BT4,BUT(AGQ,_[_QT40\.H(",=%#`,```")30C) -XMZ=HS_O_'11`4ZP@(QT4,`P```(E-",GIPS/^_XE4)`S'1"0(/.L(",=$)`0# -XM````B0PDZ*EP,_[_58GE5S'_5E.#[!R+10B+=0R+@)@```") -XM1?#H58?]_\<``````(M5\(M:+(/",(E5[(M5\(M",#G'<@^-5P$YT')3BT7P -XMB?L#6"RAH!0)"(7`=6Z+1@2#Z`&%P(E&!`^(W0```(L&#[80@\`!B0:#^O]T -XM78/Z"@^$U````(@3BU7P@\(/]_^GP_O__B30DZ&N)_?^)PND>____BU40 -XM,<").H/$'%M>7UW#D%6)Y8/L&(E=](M=#(EU^(MU"(E]_(M](,=$)`B$```` -XMC1Q;C1S=P,P(",=$)`0`````B30DZ'J%_?^)7B"+11")1F"+112)1F2+11C' -XM1G`!````QT9H`0```(E&;(M%'(7`=`9F@4Y\``&%_\=&>`````")?G1T!L<' -XM`````(M=](MU^(M]_(GL7<.0D)"0D%6)Y8/L&(M%",=$)`CXZP@(QT0D!`0` -XM``")!"3H7S'^_S'`R<.0D)"0D)"0D)"0D%6)Y5=64X'L+`$``(M="(M]#/:# -XML`(```$/A)$```"+@Z@"``"-!$#!X`(#0Q"+4#B%T@^4P(3`#X6%````BU=D -XMA=(/A*<```")4TP/MT]\B<@E8@@``(/X(`^$X`````^/D0```(/X`@^%G``` -XM`(/A!+Y>````#X71````C78`B70D$(VU\/[__XE4)`S'1"0(ANP(",=$)`0` -XM`0``B30DZ$Z%_?_IT````)"-="8`BX.H`@``A<`/E,"$P`^$>____\=$)`A` -XM[`@(QT0D!`,```")'"3H=3#^_[@!````@<0L`0``6UY?7<.0C70F`+(!Z5+_ -XM__^#^$`/A!4!```]``@```^$<@$``(M#((E0$(M#(,=`%`````"-0U")1"0( -XMBT-,B1PDB40D!.COH_[_BT,@9H-(&`'IH@```(GVOBT```"#X00/A#+___^+ -XM1UB)="00C;7P_O__B50D#,=$)`A\[`@(B40D%,=$)`0``0``B30DZ'F$_?_' -XM1"00#````(E$)`R)="0(QT0D!`````")'"3HU?#]_P^W1WPE`!8``#T``@`` -XM#X2A````/0`$``!U*L=$)!`!````QT0D#`````#'1"0(`````,=$)`0:```` -XMB1PDZ`)"_O^)]HN#K`0``*@0=0L-```(`(F#K`0``*D```(`=22#X/J#R`*) -XM@ZP$``"!Q"P!```QP%M>7UW#OBX```#I)O___Y"+0QR#0PP!@P`!C47PB5WP -XMB00DZ"CG``"%P'1+@<0L`0``N`$```!;7E]=PXUT)@#'1"00`0```,=$)`P` -XM````QT0D"`````#'1"0$(@```(D<).AH0?[_Z6/___^^*P```.F^_O__B1PD -XMC;8`````Z)OX__^%P'6CQT0D!":Z"`B)'"3H)U___S'`Z3#^__]5B>575E.! -XM[)P```"+10B+?1"+0!")A7#___^+112+,(M%&(L`B85X____BT4/___X7`#X1S`@``.[5X____#X=G`@``QX5T -XM____`````,>%?/___P````#'18"-[`@(ZSR0C70F`(M'"(/H`87`B4<(#X@9 -XM`@``BP?&``J#P`&)!X.%=/___P&#Q@$YM7C___\/@H0"``")G7S___^+G7S_ -XM__^Z'X7K48/#`8G8]^+!Z@5KTF0YTP^%@P```(M5"(M"$/:`5`@```0/A>T` -XM``#'1"0,`0```,=$)`@`````QT0D!`````")%"3HQO']_X7`=1.+50B+0A#V -XM@%0(```$#X6V````BT4DA%?/___P`` -XM``")/"3H4W[]_X7`#X7Z_O__Z4/___^+10S'1"0,GZT(",=$)`0%````B10D -XMB40D".BC,/[_Z>'^__^+#:`4"0B%R75##[]'#HD$).@L?/W_A<`/A;/^___I -XM-?___XF=?/___XD\).CQ??W_A<`/A9C^___IX?[__XD\).A<@?W_B<+IY/[_ -XM_XD\).A-@?W_Z[>-M"8`````58GE5XG75E.#[#R)1=B)3=2+!T5HM'=(L`BQ@/M@.$P'0U -XM#[[`A2#?=0"=0V`.R$/A+P```"-="8`@W]D`0^&7`(``(M%X(7`D'0; -XM@WW4`W0)@#L^#X2O`0``BT7@A7UW#B1PDZ`*"_?^+5=B)7"0(B7PD -XM!(D4)(E$)`SHM_O^_X7`#X4,`@``BT=XA!K`0` -XM``(`!``/A:#^___'1"0$);H("(D,).A>6?__,<#IB?[__XVT)@````"`>P$^ -XM#X5'_O__@\,"@\X"#[8#A,`/A#;^__\/OL"%P`^(*_[__XL-_"`)"#G!#XX= -XM_O__BQ4((0D(ZR6-="8`@\,!#[8#A,`/A`/^__\/OL"%P`^(^/W__SG!#X[P -XM_?__]D2"-@)UV.GD_?__C78`QT0D"`0```"+0B"+`(E$)`2+1=B)!"3H9//_ -XM_[@!````Z>S]__^+1VR#P`&)1"0$BT78B00DZ'7U_?^%P'4=BT]X@\X!B4W@ -XMZ7W]__^X`0```.F[_?__Z+AY_?^+5WB)5>#I8_W__XN!7`,``(T$0,'@`@-! -XM$(M(.(7)#Y7`Z1/^__^+1W2+3=B+4`2+02"+&@^W0!@EA````(/`@`^$@@`` -XM`(M%V(E<)`2)!"3H/L#]_XM-V(U';(E$)`B-1V2)="00B5PD#(E$)`2)#"3H -XM3<']_^DZ_?__BT<@QT0D"`H```"+3=B+0!")#"2)1"0$Z(OR__^X`0```.D3 -XM_?__BT<@QT0D"`D```"+5=B+`(D4)(E$)`3H9?+__[@!````Z>W\__^+0@B) -XM7"0$B0PDB40D".A8FO[_A<")1=QT'8M5V(M"((M`"(D$).@D?OW_BTW8BU7< -XMBT$@B5`(BTW8BT$@9H%@&#__BT$@9H-(&`R+41#'1"0(`0```(M!((M`"(D, -XM)(E$)`3_DIP(``#I'____XVV`````(V\)P````!5B>564X/L$(MU"(M&'(7` -XM='GV0%@$=!.+50RY`P```(GPZ&G[__^%P'44QT0D!`````")-"3HE;_]_X7` -XM=!&X`0```(/$$%M>7<.0C70F`(M%#`^W6'R)-"2!XP`!``")7"0$Z/?P__^% -XMP'72@_L!&<`E`/[__P4`!```"8:L!```@\006S'`7EW#QT0D"`0```"+50R+ -XM0B"+`(DT)(E$)`3H.?'__[@!````ZY:)]E6Y`@```(GEBT4(BU4,7>G,^O__ -XMC;8`````C;\`````5;D!````B>6#[!B)=?R+=0B+50R)7?B)\.BB^O__AQ=P\=$)`0`````B30DZ+^^_?^%P'7=BT4,#[=8?(DT -XM)('C``$``(E<)`3H,O#__X7`=<"#^P$9P"4`_O__!0`$```)AJP$```QP(M= -XM^(MU_(GL7<.-M@````"-O"<`````53')B>6#[!B)7?B+70R)=?R+=0B)VHGP -XMZ!/Z__^%P'0/BUWXN`$```"+=?R)[%W#QT0D!`````")-"3H,+[]_X7`==W' -XM0W@`````B5T,BUWXB74(BW7\B>Q=Z5'?_O^058GE4X/L%(M="(M-#(M#'(7` -XM=#8/MT%\C5%1QT0D$`$```")'"2#X`'WV"'"C4%LB40D#(U!9(E$)`B)5"0$ -XMZ%RP_?^#Q!1;7+B -XM"```@_I`B47P#X2+`0``#X^5````@_H"#X1-`0``@_H@#X0A`0``]H."```` -XM"'0&@\`!B47PBT7PB4-DBT7P@^@!```````C47PB40D!(DT).C- -XM\?W_A<`/A<4```"+1?`Y0VQV`XE#;(E<)`2)-"3H7ES__X7`#X6F````BU7@ -XMA=)T"(M%X(E&3#'`@\0L6UY?7<.+2UCI5____XVT)@````"!^H````!T$X'Z -XM``@``(GV#X5G____Z7'___^->?^Z`0```-'O.?AV!(G"*?J)4V2+1?"#Z`&) -XM0VR)7"0$B30DZ.M;__^%P'4WQT0D!)SL"`B)-"3HMU/__XM%\(E%X(E#9(E# -XM;(E<)`2)-"3HOUO__X7`#X3Z````C;0F`````(/$++@!````6UY?7<.-=@"+ -XMCF0$``"#Z0'ILO[__SG!N@$```!S!8U0`2G*B5-DBT7PB4-LQT7@`````.D% -XM____C10).=`/AIL```"#P`$IT(E#9(M#9(/H`0'(B4-LQT7@`````.FY_O__ -XMD(UT)@"-4?^Y`0```-'J.=!V!(G!*=&)2V2)T`-%\(E#;(M&3(E%Z(M&4(E% -XM[(U%Z,=$)`P!````B40D",=$)`0G````B30DZ-@2_O_'1>``````Z6#^___' -XM1"0(!````(M#((L`B30DB40D!.A3[?__N`$```#I@O[__\=#9`$```#I8?__ -XM_\=$)`2<[`@(B30DZ(U2__^+1?"#P`&)0V2+1?"#Z`$!^(E#;.D(_O__D)"0 -XMD%6)Y8/L&(M%",=$)`C([`@(QT0D!`,```")!"3HSR'^_[@!````R<.0D)"0 -XMD)"0D%6)Y8/L&(M%",=$)`CX[`@(QT0D!`,```")!"3HGR'^_[@!````R<.0 -XMD)"0D)"0D%6)Y5.#[!2+70R#>Q0$=@7H+W/]_XM#%/\DA2CM"`B0,<"#Q!1; -XM7<.+`X/X`71QC5#_C4,,B1.)1"00C4,(B40D#,=$)`@!````B50D!(M%"(D$ -XM).CG[/W_A____C;8`````58GE5E.#[#"+70R-1?2+=0B)1"00 -XMC4,,B40D#(U#"(E$)`B+`XDT)(E$)`3H;^[]_X7`=!.+5?2X`0```(72=26# -XMQ#!;7EW#BT,,A7<.X`0```.ORC;8`````C;\`````58GE -XM5E.#[!"+=0B+70R)]HE<)`2)-"3HQ/S__X7`=3.+0Q2#^`-TZ(/X`73CA<"0 -XM=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X`0```%M> -XM7<.058GE5E.#[!"+=0B+70R)]HE<)`2)-"3H=/W__X7`=3.+0Q2#^`-TZ(/X -XM`73CA<"0=1@/ME,0.Q7\(`D(?0RA""$)"/9$D#8"=<:#Q!`QP%M>7<.#Q!"X -XM`0```%M>7<.058GE5U93@^P\BT4,]D`Q`G0.#[90`8#Z0'0%@/HJ=1N+50AF -XM@[JL!`````^)0P$``(M="`^VDZ@```"+10@/MLJ!B*P$````@```.PW\(`D( -XM#XS(````B="+70B+7UW#QT0D"`4```#'1"0$`````(D4).A$Y___ -XM@\0\N`$```!;7E]=PXM5##'`]D(Q"`^$;____XM"!(U=X(D<),=$)`CZE@@( -XMQT0D!!0```")1"0,Z(IP_?_'1"00`````(E<)`C'1"0$`````(E$)`R+70B) -XM'"3HX]S]_X7`#Y7`#[;`Z1W____'1"0$_P```(M%"(D$).B3U_W_Z3[___^0 -XMD)"0D)"0D)"0D)"0D%6)Y5.)PX/L%(#Z_W0U#[;"C01`C80`4`$```-#$(/` -XM"(D<)(E$)`S'1"0(2^T(",=$)`0"````Z%,;_O^#Q!1;7<.)5"0$B1PDZ#'7 -XM_?_KT.L-D)"0D)"0D)"0D)"0D%6)Y5=64X/L+(M]#`^V5P+V1S$@#[;:=0^+ -XM30B+@9P```"(D(0!``"+50B+@IP```#'@(@!```!````C47LB40D$(U%\(E$ -XM)`R-1>B)1"0(BT7UW#BT7PAAS!P^^`CG8=>PYT77B)5T2)1T")1TB+1RR%P'0.]D`&('0(@V\X`3'`ZX0Q -XMP.N`B?95B>6#[!B)7?B+70R)=?R+=0B)7"0$B30DZ.+^__^Z`0```(7`=22+ -XM0T"+4SR#P`&)4T0QTHE#0(E#2(N&G````,>`B`$```,```"+7?B)T(MU_(GL -XM7<.)]HV\)P````!5B>575E.#["R+?0P/ME<"]DC]_X7`=".+3>RX`0```(7)=`^+10B)VNC'_?__N`$` -XM``"#Q"Q;7E]=PXM%\(7`=.*+3>B^`0```(E-X`'!BT7@`TAV!P^^`CG8=>PYT77@ZYV+=P3K -XMV8M'+(M5Z"M5X(7`B5=`=`;V0`8@=0V+1SR)5TB)1T0QP.N$BT`B`$```0` -XM``"+7?B)T(MU_(GL7<.0C70F`(M#/(E32(E#1.O2D(UT)@!5B>6#[!C'1"0( -XM7.T(",=$)`0"````B00DZ#(8_O_)PU6)Y8/L&(EU_(MU"(E=^(M5#(N&G``` -XM``^V@(0!``"(0@*+AIP```"+F(@!``"#^P1V!>BL:?W__R2=@.T("(E4)`2) -XM-"3HM?W__XG"C78`BX:<````B9B(`0``BUWXB="+=?R)[%W#B?#HR)T%W#B50D!(DT).C4_?__B<+KP(E4)`2)-"3H9/S__XG" -XMZ[")5"0$B30DZ,3^__^)PNN@58GE@^P(BU4(BTT,BX*<````#[:`A`$``(A! -XM`HN"G````(.XB`$```1V!>@$:?W_BX"(`0``_R2%E.T("(E-#(E5",GI=_[_ -XM_XG0Z.#^__^X`0```,G#B4T,B54(R>GM^___B4T,B54(R>E!_?__B4T,B54( -XMR>G5_/__D)"0D)!5B>575E.#["R+10R+?0R+70R+2#")SHG(P>X#@^`"@^8! -XM@_@!BT4,&=*!X0`"``"#XOZ#QS2#P@2#PP&#P#R#^0&)1>`9P`GR]]`APXM% -XM"(E4)!"+5>")?"0(B5PD!(D$)(E4)`SH-:+]_X7`=!&X`0```(/$+%M>7UW# -XMC70F`(M5X(M%"(ET)`R)?"0$B50D"(D$).@&IOW_AR)7"00QT0D#`````#'1"0(`````(M" -XM1(E$)`2+10B)!"3HRN']_X7`#X63````BT4,BT@P]L$(=1>!X0_^__^#R2") -XM2#"+50R+1>PY0DAS73'`]L$$#X19____BU4,@>$/_O__@\E`B4HPZ47___^0 -XMBU4(C47PB40D!(D4).BNX_W_A<`/A27___^+1?"%P`^%9?___XM%#,=`1`$` -XM``#'0$@`````,<#I!____X/X`8U0_QG`]]`APHM%#(E02.N/BT7PBU4(B5PD -XM$,=$)`P`````QT0D"`$```")1"0$B10DZ`GA_?^%P`^%P/[__XM%\(M5#(E" -XM1.DQ____D)"058GE4X/L-(M="(U%^(E$)!"-1?2)1"0,QT0D"`````"+0TR) -XM'"2)1"0$Z,'@_?^%P'0&@WM,`71\BT7XA<")]G1.QT0D%`````#'1"00```` -XM`(E$)`R+1?3'1"0$`````(D<)(E$)`CH,R?__[H!````A6#["B)7?2)PXE]_(EU^(MP$,=$)`0`````B00DZ#S!_?^% -XMP(G'=!>-1AB)1"0(B5PD!(DT).BS5O[_AQ= -XMP\=$)`P`````QT0D"`````")?"0$BT88B00DZ&["_?^%P'4.BT88BT`<@&!8 -XMOS'`Z\*+1AB)!"3HP53^_[@!````Z["-=@"-O"<`````58GE@^PXB5WTB<.) -XM??R)UXEU^(M`$(M`&(7`=&6+7<.+1?0Y0U!RU8/X`8U0_QG`]]`A -XMPHE34.O$58GE@^P8B5WTB<.+02")=?B)UHE]_(E,)`2)'"3_4`2)\HG'B=CH -XM5?___[H!````A57 -XM5E.#["R+70B+>Q#'1>``````Z>,```"0C70F`(N#3`$``(T$0,'@`@-#$(M` -XM.(7`#Y7`A,!T$8GRB=CH3/[__X7`#X6.`0``QT0D%`$```#'1"00`````(M& -XM$(E$)`R+1@C'1"0$`````(D<)(E$)`CH-B3__X7`#X58`0``B1PDZ$;H``#V -XM@ZP$```0="ZAH!0)"(7`#X7#````BQ4$(0D(BT((@^@!A<")0@@/B#`!``"+ -XM`L8`"H/``8D"B1PDZ/>2_O^)'"3HKT'__XU%\(E$)`2)'"3H0/,``(7`#X7R -XM````BT7PA<`/A(H```"#0RP!QT7@`0```(M'?(M`%(7`#X5V____BT4,QT0D -XM#(`!00#'1"0(.@```(D<)(E$)`3H!:(``(7`#X6G````BW-XBT8X@_@!#X2Z -XM````A7UW#B50D!,<$)`H```#H -XM?6;]_^G%_O__@WX0`78-B?*)V.B%_/__AS'1"0( -XM`0```(D<)(E$)`3H@$8!`(7`=".+1>R)!"3H`5'^_[@!````ZYF)V.BC^___ -XMA<"0=8CI;/___XM&&(M0'(M%[(E0'(M%[(M`'(,``8M&&(M0((M%[(E0((M% -XM[(M0((M#(`^W0!AFB4(8BU7LC4),B10DB40D!.BEW?W_BT7LBU!,A=)U"L=` -XM3`$```"+1>R!B*P$``````$`B5L8BT7L@8NL!````!```(E#%#'`Z0S___^- -XMM@````"-O"<`````58GE4X'LM````(V=>/___XD<),=$)!@`````QT0D%``` -XM``#'1"00`````,=$)`P`````QT0D"`````#'1"0$/````.@8W?__BU4,B=F+ -XM10CH>_S__X'$M````%M=PXGV58GE5E.![+````"+=0R+1C3V1C$(C4@!=`R+ -XM5@2#^@)V!(U,`O^-G73___^)3"00B40D#(D<),=$)!@`````QT0D%`````#' -XM1"0(`@```,=$)`0<````Z*3<__^+10B)V8GRZ`C\__^!Q+````!;7EW#C;0F -XM`````(V\)P````!5B>6![+@```")=?R+=0R)7?B+1A2#^`5T"H/X#'19Z"!@ -XM_?^-G73____'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@` -XM````QT0D!"P```")'"3H'MS__XM%"(G9B?+H@OO__XM=^(MU_(GL7<.-G73_ -XM___'1"08`````,=$)!0`````QT0D$`````#'1"0,`````,=$)`@`````QT0D -XM!$@```")'"3HRMO__^NJD(VT)@````!5B>6![+@```")=?B+=0R)??R+?0B) -XM7?3V1C$@=6*+1BP]X``)"'18/>`""0AT4<=$)`R`B$$`QT0D""$```")="0$ -XMB3PDZ&6>``"%P`^%G@```(M?>(-[.`0/A,(```"+1TR)1D2+1U")1D@QP(GV -XMBUWTBW7XBWW\B>Q=PXUV`,=$)!@`````C9UP____QT0D%`````"+1CR)1"00 -XMBT8TQT0D"`(```#'1"0$`0```(D<)(E$)`SH!-O__XN'F````,=`)`````#' -XM1"00`0```,=$)`P!````QT0D"-7:"`B)7"0$B3PDZ`/7_O^%P'0/N`$```#I -XM=?___Y"-="8`BX>8````B=F+4"2)5>B+0!R)\HE%Y(GXZ!/Z___I3O___XD\ -XM).@FXP``QT0D&`````#'1"04`````(M&/(E$)!"+1C3'1"0(`@```,=$)`0! -XM````B40D#(V%8````QT`D`````,=$)!`!````BT,0 -XM@^@!B40D#(M#"(D\)(/``8E$)`B-A7#___^)1"0$Z$_6_O^%P`^%2/___XN' -XMF````(V-R-O5C___^)1"08QT0D%`````#'1"00`````,=$)`P` -XM````QT0D"`````#'1"0$.@```(D\).ASV?__BX:<````BY@P`0``B1PDZ#-C -XM_?^)7"0(B3PDB40D#(U%W(E$)`3H^-3__XM5#(GYB?#HK/C__XM=](MU^(M] -XM_(GL7<.+EM`!``"%T@^$____D%6)Y5.![,0```"-G6#___^-1?2)1"08B1PDQT0D%`````#' -XM1"00`````,=$)`P`````QT0D"`````#'1"0$-P```.B)V/__C47DB40D!(D< -XM),=$)`P'````QT0D"'[`"`CH&M3__XM5#(G9BT4(Z,WW__^!Q,0```!;7<.- -XM="8`58GE5E.![,````"+=0R-1?")1"08C9U<____QT0D%`````"+1CR)1"00 -XMBT8TB1PDQT0D"`(```#'1"0$!P```(E$)`SH!]C__XU%X(E$)`2)'"3'1"0, -XM`0```,=$)`B9[P@(Z)C3__^+10B)V8GRZ$SW__^!Q,````!;7EW#B?95B>56 -XM4X'LP````(MU#(U%\(E$)!B-G5S____'1"04`````(M&/(E$)!"+1C2)'"3' -XM1"0(`@```,=$)`0%````B40D#.B'U___C47@B40D!(D<),=$)`P!````QT0D -XM"':["`CH&-/__XM%"(G9B?+HS/;__X'$P````%M>7<.)]E6)Y593@>S````` -XMBW4,C9U<____C47PBU8TB40D&(D<),=$)!0!````B50D$(E4)`S'1"0(`@`` -XM`,=$)`0#````Z`K7__^-1>")1"0$B1PDQT0D#`$```#'1"0(3XT(".B;TO__ -XMBT4(B=F)\NA/]O__@<3`````6UY=PY"-="8`58GE@>S(````B7W\BWT(B5WT -XMB77XB[>D````A?8/A)T```#'1"0(`0```,=$)`0`````B3PDZ)6R_?^Z`0`` -XM`(7`=`^+7?2)T(MU^(M]_(GL7<.-1>R-G5C___^)1"08QT0D%`````#'1"00 -XM`````,=$)`P`````QT0D"`````#'1"0$%````(D<).A`UO__B30DZ`Q@_?^) -XM="0(B1PDB40D#(U%W(E$)`3HT='__XM5#(G9B?CHA?7__XG"ZX60QT0D"`T$ -XM"0C'1"0$`P```(D\).@("/[_N@$```#I8O___XVT)@````"-O"<`````58GE -XM5E.#[!"+70B+7<.)'"3'1"0(`````,=$)`0`````_Y9< -XM"```BU,@BT-,B4(0BT-0BU,@B4(4BT,@9H-(&`&+@ZP$``"#X/6#R`&)@ZP$ -XM``")'"3'1"0$)KH(".C4-___@\00,6#[!B# -XM^@)T-8/Z`W05@^H!=`+)PXGVC;PG`````.C/6/W_QT0D"(0$"0C'1"0$`P`` -XM`(D$).@#!_[_R<.0QT0D"&0$"0C'1"0$`P```(D$).CH!O[_R<.-M@````!5 -XMB>575E.![+P```"+50P/MD("/"-T.CPK=#H\+70VQT0D"`8```"+30R[`0`` -XM`(M!*(M`"(E$)`2+=0B)-"3HC)T``('$O````(G86UY?72+0#@Y^(F%7/__ -XM_W-XBU7'@Y -XM\'UT@\(!]D2!-4!T:H/#`3G[=>/K"XM=X(7;#X1X`0``QT0D"+\$"0B[`0`` -XM`,=$)`0#````BTT(B0PDZ)`%_O^!Q+P```")V%M>7UW#QX58____`0```.D' -XM____BT4(N@(```"[`0```.@B_O__Z]"+G5S___\[G5S___\/A,`!``"+30B) -XM65#'1"0$`````(D,).@8"`$`BW7%9/___P````"#P#(/ -XMA(P!``")1"0,C47HB40D",=$)`0`````BU4(B10DZ.9X_O^%P(F%9/___P^% -XM8`$``+L!````@<2\````B=A;7E]=PX/X`G8JB[5L____#[94%@&`^EB(E4__ -XM__\/E(57____#X3P`0``@/IX#X3G`0``A,D/A//^__^#^`$/ANK^__^+M5S_ -XM__^+C5#___^#Q@$/MA0Q#[["@_A_#X?3_O__]@2%W10)"`0/A,7^__^`^C@/ -XMA+S^__^`^CG'A6C___^S!`D(QX5@____"`````^%T_[__^F:_O__B9UL____ -XMB9U<____Z5W^__\/MD,!#[[0@_I_#X;#`0``@^@X/`%W0\>%:/___[.@"`C' -XMA6#___\*````@\,!Z9+^__\/OD,!@_A_=PKV!(7=%`D(!'7EB40D!,<$)-H$ -XM"0CHFU7]_X7`==&+30B%R0^$E_[__XM%"(M8$(7;#X2)_O__]H-5"````0^% -XM?/[__XU',CM#>`^'8`,``(M#=(F%9/___XM#>(E%Z(&+5`@````!``")\BN5 -XM7/___SMUY(F5%8/___Q````#IZOS___8$E=T4"0@$#X0O_O__/#@/ -XMA"[^__\\.0^%.O[__^DA_O__@/LKC70F`'0)@/LM#X6!_/__B[5<____BY50 -XM____QX5H____N@0)"(/&`0^^!#*#^'\/AY_[___IS'1"0, -XM"@```,=$)`@`````B00DZ&MS_O^#^`$/A:'^__^+30R+E5C___^`>0(M=0+W -XMVHM-[(7)#X[4`0``A=(/CLP!``"X____?RG(.=`/@[T!``"X`@```.ED_O__ -XMBT4,@'@"*P^$@P$``(M%\#F%6/___P^'+@$``"N%6/___XE%\(.]8/___Q"+ -XME7#___]U`X/J`HM%\(V->/___XE4)`R)1"00BY5H____QT0D!&0```")#"2) -XM5"0(Z"=5_?^)QXN%7/___XE$)`B+1=R)1"0$BY5D____B10DZ$96_?^+G63_ -XM__^-C7C___\#G6S___^)3"0$B7PD"(D<)`'[Z")6_?^+1>0KA5S___\KA7#_ -XM__^)1"0(`W72)1"0,B[5D____ -XMB70D"(M5#(M"-(E$)`2+30B)#"3H2]#]_XG#Z7+]__^)5"0(BX5L____`T7< -XMB40D!(N-9/___XD,).BI5?W_BX5D____BY5P____Q@00`(N%9/___^GR_/__ -XMA=)Y>+@```"`*<@YPGUMN`,```#I$/W__XE$)`R-0WB)1"0(BT-TB40D!(M- -XM"(D,).@4=/[_A<`/A#3[__^)0W3I<_S__X&@5`@``/_^___IQ?G__XM5\(G0 -XM]]`[A5C___\/@E/^__^+A5C___\!T(E%\.ER_O__AD?&@`` -XMBX'``@``C01`P>`"`T$0BT`XB5T0B4T(B44,6UWI_1D``(N!4`,``(T$0,'@ -XM`@-!$(M`.(E=#(E-"(E%$%M=Z=L9``"-="8`C;PG`````%6)Y593@^P0BW4( -XMBYZ<````A=MT8(N#,`$``(7`=`B)!"3H#57]_XN#1`$``(7`=`B)!"3H^U3] -XM_XN#?`$``(7`=`B)!"3HZ53]_XN&G````(N`C`$``(7`=`B)!"3HT53]_XD< -XM).C)5/W_QX:<`````````(/$$#'`6UY=PXGV58GE@^P8QT0D!,P!``")7?2+ -XM70B)=?B)??S'!"0!````Z&Y2_?^%P(G6````BT4,A=N)L)P```#'AJP! -XM````````#X3:````B[N<````BX=(`0``A$`0``,=*( -XMAH0!``"+AX@!``")AH@!``"+A[0!``")AK0!``"+7?2)T(MU^(M]_(GL7<.) -XM!"3H1U/]_X7`B<*)AD0!``!T+8N'2`$``(E$)`B+AT0!``")%"2)1"0$Z(]2 -XM_?^+AT@!``")AD@!``#I5?___\=$)`@`````QT0D!`4```")'"3H@OS]_[H! -XM````ZY$QTL>&B`$```````#K@Y"0D)"0D)"0D)"0D)!5B>575HG.4XMZ,('. -XM`(2$!(G#]\<`(```=`B)SH'.`(2$!O:#``$```$/A*`!``"+@_@```"-!$#! -XMX`(#0Q"+0#B%P`^5P(3`=`.#S@3V@PP!```!#X1E`0``BX,$`0``C01`P>`" -XM`T,0BT`XA<`/E<"$P'0#@\X0]H,\`0```0^$*@$``(N#-`$``(T$0,'@`@-# -XM$(M(.(7)#Y7`A,!T`X/.0/:#E`,```$/A.\```"+@XP#``"-!$#!X`(#0Q"+ -XM0#B%P`^5P(3`=`:!S@```!#V@Z\$```!=`:!S@`(``#V@R0$```!#X2B```` -XMBX,`"`T,0BT`XA<`/E<"$P'0&@'E`````$```")QHU%[(E$)!"-1?")1"0,C47HB40D"(M#-(D\)(E$ -XM)`3HYLC]_X7`=!J+5>R%T@^$!P$``(/.",=%\`````")=>#K%(M%\(7`#X3A -XM````@B%P`^$O0```(M#,(U3`8US/,=$)!``````B70D#"4``@`` -XM@_@!&<#WT"'"C4,TB40D"(E4)`2)/"3HVH3]_X7`=7:+1>#'1"0<`0```,=$ -XM)!@`````QT0D%`````")1"0@BT7PB40D$(M%Z(ET)`B)7"0$B3PDB40D#.BY -XM4P``@\0\6UY?7<.0B5-`Z6W___^+4P2#Z@&-!`*)0T"+5?"#Z@$YT`^&4___ -XM_^O<@\X(Z1?___^-="8`@\0\N`$```!;7E]=PXUS/.EU____C70F`(V\)P`` -XM``!5,'E`````0```")QHU%[(E$ -XM)!"-1?")1"0,C47HB40D"(M#-(D\)(E$)`3H9L?]_X7`=!B+5>RX`0```(72 -XM='B#S@C'1?``````ZQ"+3?"%R74#@\X(@B)1"0(B50D!(DT).B#QOW_A7UW# -XMBU7PA=)UKX/+".NJD(M'!.NOC70F`(V\)P````!5,&E`````````"+5S2)5DR)PXU%[(E$)!"-1?")1"0,C47H -XMB40D"(E4)`2)-"3HL\7]_X7`=&6+5>RX`0```(72=%$QTH/+",=%\`````#V -XM1S$(N`$```!T`XM'!(E$)!R+1>B)7"0@QT0D&`````#'1"04`````(E4)!") -XM1"0,QT0D"`````")?"0$B30DZ`)1``"#Q#Q;7E]=PXM5\(72=!.+1E"#P`$Y -XMPG0.B490ZYV-="8`@\L(ZY2#RPB)5E#KC(UV`%6)Y8/L&(E=^(M="(EU_(MU -XM#(U#4,=#4`````")1"0(BT8TB1PDB40D!.BQ:?[_AQ= -XMZ>#]__^+7?BX`0```(MU_(GL7<.058GE5E.#[#"+=0R-1?2+70B)1"00QT0D -XM#`````#'1"0(`````(M&-(D<)(E$)`3H#,']_X7`=1*+1?2#^`&-4/\9P/?0 -XM(<*)4U"+0Q"+D!@!``"%TG04BY`0`0``:X`<`0``'/9$`A0"=0B)'"3H'=?] -XM_XET)`2)'"3H(?[__X/$,%M>7<.-=@"-O"<`````58GE5U93@^Q,BUT,BW4( -XMBT,PBU,T)0_^__^#R"`[4SR)0S`/A!<"```QR8G:B?#H;/C__XE%T,>&E``` -XM``$```"+0S#!Z`.)QX/G`70SQT,X`````/:&#`$```$/A!X"``"+A@0!``"- -XM!$#!X`(#1A"+0#B%P`^5P(3`#X42`@``BT,TB49,BT,XB490BT80BY`8`0`` -XMA=)T%(N0$`$``&N`'`$``!SV1`(4`G4(B30DZ$K6_?^%_W4,BT,T.T,\#X0* -XM`@``C4,\C5,TB57R-1>B)1"00C47LB40D#(U%Y(E$)`B+0S2)-"2)1"0$Z'#"_?^%P`^% -XM#@$``(M5[#E3.'($@TW0"/9#,0BX`0```'0#BT,$BTW0B40D',=$)!@````` -XMQT0D%`````")3"0@B50D$(M%Y(E<)`3'1"0(`````(DT)(E$)`SHQ$T``(M- -XMU(7)B<-T,87V=!.+1A"%P'0,BU74.5!T#X0E`@``BTW4B0PDZ.U)_?^#Q$R) -XMV%M>7UW#NP$```"#Q$R)V%M>7UW#C47HB40D$(U%[(E$)`R-1>2)1"0(B50D -XM!(DT).BOP?W_A<`/A,#]__^+1>B%P'3!B5PD!(DT).B4^___BP`````Z>'^__^0BT,PC5,!C7L\QT0D$``` -XM``")?"0,)0`"``"#^`$9P/?0(<*-0S2)1"0(B50D!(DT).B:??W_A<`/A2/_ -XM__^+1>R%P'4$@TW0"/9#,0BZ`0````^%T0```(%-T``@(`"+3=")5"0B)1"0,QT0D"`$```")5"0$B1PDZ`6[_?^%P`^% -XM6____XM33(/J`?9',0BX`0```'0#BT<$BTW@B40D'(E4)!C'1"04`````(E, -XM)""+1>R)1"00BT7HB7PD!(D<),=$)`@`````B40D#.C`20``@\0\6UY?7<.- -XM1?")1"0$B1PDZ-F\_?^%P`^%[_[__XM-\(7)#X6&_O__,=+'1>@`````QT7L -XM`````.EZ____D%4QR8GEBT4(BU4,7>DO_O__ZPV0D)"0D)"0D)"0D)"05;D! -XM````B>6+10B+50Q=Z0S^__^0D)"0D)"0D)"0D)!5B>6#[`B+30R+02R%P'0& -XM]D`&('4JA<#'04``````=`KV0`8@=`2#:3@!BT%`BU$\B4%(,<")443)PY"- -XM="8`BU$XA=)USXM%"(D$).C^A0``N`$```#)PXVT)@````!5B>6#[`B+30R+ -XM03B%P'10]D$Q"+H!````=34YPG(HQT%``````(M!+(7`=`KV0`8@=`2#:3@! -XMBT%`BU$\B4%(,<")443)PRG0B4%`Z]B)]HM1!#G"<\CK[HVT)@````"+10B) -XM!"3HA84``+@!````R<.-M"8`````C;PG`````%6)Y5.#[!2+70SV0S$(='"+ -XM0P2#^`%V:(/H`8E#!(E$)`B+0S2)1"0$BT4(B00DZ,SR``")P8E#0(M#+(7` -XM=`KV0`8@#X66````BU,X.=%V1H7`#X2D````]D`&((UV``^$EP```(U!_XE# -XM0(M#-(E32(E#1#'`ZS:-M"8`````BT,LA-M"8`````A!W5`^$*`$``(M+.(/N`8E+2(E[1`^$D0```(M#/#E#-',+ -XMBU-`A=(/A(4```"#:T`!,<#I0____XM#0(M3/(E#2#'`B5-$Z3#___^+4SR+ -XM>S2)5>#KIXM30(M+.(G(B=&)4SB+5>")>SR)0T")UXE3-.N8@TLP"+X!```` -XMZ37___^+4T"+2S@YR@^$KP```#G1#X9T____Z\.%T@^$.?___Y"-="8`Z>O^ -XM__\QP.G)_O__@^@!B4,\C77PB40D!(M%W(ET)!#'1"0,`````,=$)`@!```` -XMB00DZ'BT_?^%P`^%D/[__XM%\(ET)`C'1?``````@_@!C5#_&<#WT"'"BT,T -XMB5-`BU7EO_?__ZPV0 -XMD)"0D)"0D)"0D)"058GE@^P8BU4,QT0D#`$```"-0C2)1"0(#[9"`HE$)`2+ -XM10B)!"3H9=C]_\G#D)"058GE5U93@^Q,BTT,C47HBW4(B40D$(U5Y(U%[(E$ -XM)`R)5"0(BT$TB30DB40D!.B]MOW_A7UW#BT4,BUWLBT@X.=ESRXG*`U7D -XM#[8"#[[P/#Z)=<`/A`0"``!_)SPI#X0M`@``/#P/A!0"```\*(UV``^$^`$` -XM`(/!`8/"`3G9=-(E.0#G##X.C`0``BW4,BU8L -XMA=(/A+P!``#V0@8@#X2R`0``BT8XB5Y$B49(A=(/A*````#V0@8@#X26```` -XMBW4,B=J+1CPYPP^$A@````^#CP$``(GS@\,TBTL$AP/A-\````/M@(\ -XM(`^$O0```#P)#X2U````,<")]NDY_O__#[9%W#M%P'07.46\#X7*_O__@^X! -XM#X7!_O__Z?'^__^#Q@'IM/[__SQ[D'09/'T/A4S^__^[\"H'",=%O'L```#I -XM:_[__[L`+`<(QT6\?0```.E:_O__N_`J!PC'1;Q;````Z4G^__^[\"H'",=% -XMO#P```#I./[__[L`+`<(QT6\*0```.DG_O__NP`L!PC'1;P^````Z1;^__^[ -XM\"H'",=%O"@```#I!?[__XM%[(/"`8E5Y(/H`87`B47L#X4A____BTT,,<"# -XM23`(Z6C]__\/A(8```"+50R)2DB)0D2+30R+42SI9/[__\=$)`@,!0D(Z2G] -XM__^+=0R)3DB)1D3I2?[__XM=#(/#/.EK_O__BUT,@\,TZ7G^__^-1?#'1?`` -XM````B40D"(L#B40D!(M%"(D$).A06/[_A<`/A?'\__^+0P0[1?`/AZC^__^+ -XM30R+432+03SI*O[__SM..`^&R+@'P!``"%P'0(B00DZ-@Z_?^%_W03BT7HB7PD!(D< -XM)(E$)`CHD3G]_XM%$(7`=!R+51"-1@&)1"0(B50D!(M5\(T$$XD$).AN.?W_ -XMBT7LB9A\`0``,<#I-(7`=`;V0`8@=52)V(/X -XM`78IBT4(C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2)!"3HN*[]_X7`=$2[ -XM`0```(E>/#'`QT9``````,=&2`````")7D2#Q#Q;7E]=PY"+1CB%P`^%50$` -XM`(/[`0^$T0$``(-.,`B-0_^)1C3KCL=%W`(```#V1C$(#X4_`0``BT7PA<`/ -XMA70!``#'1=@!````BT4(@^L!C57PC4WLB50D$(E,)`S'1"0(`````(E<)`2) -XM!"3H):[]_X7`#X5I____BTW8A0'K$HUV``^V0@*#P@*$P`^$ -XM5/___XGY.,AUZP^V0@$\(`^$``$``(M-U#I!`G77@VW<`771D.G,_O__@WW8 -XM`8VT)@````!T!>AM,_W_BT7PA<`/A!'___^)1"0$BT7LB00DZ!]X``"%P`^% -XM^O[__X-MW`$/A([^___'1=@`````Z>3^__^0@^@!B48XB=CI0?[__XUV`(M& -XM!`'`B47`"#X7V_O__D(UT)@#I]/[__XUT)@"-O"<`````58GE5U93 -XM@^P\BWT,BTB) -XM3=2)1"00B50D#,=$)`@`````B5PD!(M%"(D$).C"J_W_A@8,?W_C70F`(M-\(7)#X05____B4PD -XM!(M%Z(D$).C&=0``A<`/A6W___^#;=@!='.+3?#'1=``````Z>G^__^+3?"# -XM^0$/AMW^__^+50B+@IP```"+@'P!``")1

.+ -XM5-U[`^V0@$\(`^$F`$``#I&`G7; -XM@VW8`775BT7UW#@?M``@D(#X7, -XM_O__BTB)!"3H%70``(7`#X2F -XM_?__Z9#]__^#;=@!C70F``^%J?W__^FP_O__D(UT)@"+3?"-<_^#^0$9P(U1 -XM__?0(<(Y5S@/A:+]___'1"0$`````(M%"(D$).AB=@``N`$```#IP?W__X/Y -XM`@^%7_[__^E?_O__N`$```"0C70F`.FD_?__BTWPZ#[;` -XM_R2%,`4)"+DY````BX.<````B$H!B(B9````6UW#N3(```#KY[DS````Z^"Y -XM-````.O9N34```"-="8`Z\ZY-@```.O'N3<```")]NN^N3@```#KMXVT)@`` -XM``!5B>575E.#["R+70R+?0B+0S#VQ"`/A<(```#VQ`B^`0```'0#BW,$C4,! -XMB47PC4-$B47L@^X!@_[_#X2N````BT,P)0`"``"#^`$9TO?2(U7PQT0D%`$` -XM``"+1>S'1"0$`````(E4)`B)/"2)1"00C4,TB40D#.BT%?[_A<````B46TC47LB40D$(U%Z(E$)`S' -XM1"0(`0```(M&-(D\)(E$)`3HTZ7]_X7`#X6A`0``BT7LA<`/A$,!``#'1;@! -XM````]D8Q"'0&BU8$B56XBT8TB48\BT8X@^@!`T6XB49`BU7L@^H!.=`/A[4! -XM``#'1;P`````]D8Q(`^$)@$``(7_#X19`0``BU\0A=L/A$X!``#V@U4(```! -XM#X5!`0``BT7L.4-X#X(@/A$\!``"+ -XM5;2+@D`!``"#^`P/A$\!``"+3;2+5<`#5C@/MH$\`0``BTVXB10DB40D!(E, -XM)`CHR"S]_XM%[(E$)`R+1<")1"0(BT8TB3PDB40D!.AGJ?W_B<.%_W03BT<0 -XMA' -XME`````0```"-77UW#BT7LQT7P`````,=%P`````"%P`^$TO[__XE$)`R-1?") -XM1"0(QT0D!`````")/"3HUTS^_X7`=+F)1<"+1>SIJ/[__XU&-+L!````B40D -XM!(D\).B4<```@\1QT6/:'#`$```$/A$,"``"+AP0!``"- -XM!$#!X`(#1Q"+0#B%P`^5P(3`B=%T+HM=Z`^^$X72>"<[%?P@"0A]'Z$((0D( -XM]D20-@)T$XU!_X-%Z`&%P(G!B47L==*+7>B+1>R)7"0$B3PDB40D#(E$)`CH -XM*&']_X7`B<-T_?_IZ?S__\=$)`@'````,=O'1"0$`````(D\).C$;``` -XMZ1_]__^)7"0$B3PDZ,/#``"%P`^$(____^D\_?__@_@)C78`=60QV^GW_/__ -XM@8^L!`````0``+L!````Z>/\__^!H%0(``#__O__Z:'\__^)1"0,C4-XB40D -XM"(M#=(D\)(E$)`3H"DK^_X7`#X3H_/__B4-TZ;K[__^+GP0!``"%VP^5P.G$ -XM_?__#[9%V(M-M(B!/`$``(M%W(F!0`$``.EC^___D)"0D)"0D)"0D)"0D)"0 -XM58GE5E.#[#"+70R+=0CV0S$(=%R#>P0!=%:-0T#'0T``````B40D"(M#-(DT -XM)(E$)`3HN4C^_X7`#X7"````BT,LA7<.+1?2%P'3)C5#_ -XMBT,LB5-`A7<.- -XM=@"#Q#`QP%M>7<.-M"8`````BT,\B5-(B4-$@\0P,6#[#B)7?2+70R-1>R)1"00C47PB77XBW4(B7W\B40D#,=$)`@` -XM````BT,TB30DB40D!.BVHOW_A6#[`B)'"2)="0$BT@\BW!`B4A$B7!(BT`LA/KV(GVC;PG`````%6X`0```(GE4X/L%(M=#/9#,0AT -XM`XM#!(E$)`B-0SR)1"0$BT4(QT0D#`(```")!"3HJO0``+H!````AR+61"-0P@Y`0^$D`````^V@6P$ -XM``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L#Z_"N@$```"#^`)V`XU0 -XM_HU'/(E4)`C'1"0,`````(E$)`2)#"3HHO,``+H!````AR+61"- -XM0P@Y`0^$D`````^V@6P$``"+<4"#X`&(1?-U7HN19`0``(G0.?!V8XGRBT7L -XM#Z_"N@$```"#^`)V`XU0_HU'/(E4)`C'1"0,`P```(E$)`2)#"3HLO(``+H! -XM````AED&O__C70F -XM`(E-#(E5"%WI-/___XUT)@!=Z3JX__^-=@"-O"<`````5;H!````B>6#[`B+ -XM30SV03$(=`.+402+030YPG,4*=")PHE!/(M!0(E11(E!2#'`R<.-032)1"0$ -XMBT4(B00DZ"QE``"X`0```,G#D(UT)@!5,<")Y5.#[!2+70SV0S$(=`:+0P2# -XMZ`&)1"0(C4,\B40D!(M%",=$)`P`````B00DZ+KA``"Z`0```(7`=0F)V.BZ -XM^O__,=*#Q!2)T%M=PU6)Y5.#[!2+70S'1"0,`@```,=$)`@`````C4,\B40D -XM!(M%"(D$).ATX0``N@$```"%P'4)B=CH=/K__S'2@\04B=!;7<.-=@"-O"<` -XM````53'`B>53@^P4BUT,]D,Q"'0&BT,$@^@!B40D"(U#/(E$)`2+10C'1"0, -XM`P```(D$).@:X0``N@$```"%P'4)B=CH&OK__S'2@\04B=!;7<-5B>564X/L -XM((M=#(MU"/9#,0AT+(M#!(DT)(E$)`3H79G]_X7`=#N+0P2)0SR)V.C<^?__ -XM,<"#Q"!;7EW#C78`C47TB40D!(DT).C1F?W_A9_?^%P'0/C78`@\0@N`$```!;7EW#BU7TA=)UM>N!D)"0D)"0 -XMD)"0D)!5B>6#[#B)7?2+70R)??R+?1")=?B+2S2+Q=PXGV==,[4T!VSHGVC;PG`````.NP -XMBU-`A=)UTH/H`8E#/(UU\(E$)`2+10B)="00QT0D#`````#'1"0(`0```(D$ -XM).AKEOW_A6#[#B)7?2)TXE-\(M-#(EU -XM^(G&BT,LB7W\BWT0BW2)1?"!BU0(`````0``QT0D%'T&"0B+AIP```"+@#`!``#' -XM1"0,A08)",=$)`BRN`@(B40D$(M%\(D\)(E$)`3H^AS]_XGYQT0D"`$```#' -XM1"0$0````(D$)(M5#(GPZ!?^__^)P^MFC78`,?^%TL=%\`````!U=,=$)!1] -XM!@D(BX`P`0``QT0D#(4&"0C'1"0(LK@("(E$)!"+1?")/"2)1"0$Z)8<_?^) -XM^<=$)`@!````QT0D!$````")!"2+50R)\.BS_?__A?:)PW0,BT80A_?^#Q"R)V%M>7UW#C47PB50D#(E$)`C'1"0$`````(DT).@T -XM//[_A(E4)`R)1"0(BT-TB30DB40D!.CR._[_AZ`0`` -XM`(GVB50D"(M5##')QT0D!"````#'!"0`````Z*/\___)PY"Z`@```.O9B?:- -XMO"<`````58GE5XG75HG&4X/L3/9",2`/A1D"``#V@$P#```!#X7<`0``BX!$ -XM`P``A<`/E<`\`1G`,=(E````^`6`B$`(@_D"#Y3"@^H!@^+P@\(_B40D#(E4 -XM)`B)?"0$B30DZ"Y7``"%P`^%M@$``(M6>(M".(7`#X2H`0``@_@%#X31`0`` -XMBT((BUX0B8.0````BT(0QX,``0``````!(F#E````(M&$(N`&`$``(7`=0K' -XM@P`!```````%BT9,B47$BT90B47,C47PB40D"(V#@````(E$)`2)-"3H!$3^ -XM_X7`#X4\`0``BX.0````B470BX.4````B47(QX.4`````````(M%\(7`#X75 -XM````BX/@````@_@!#X2B`0``@_@"#X2"`0``BT<\B30DB40D!.C.DOW_A<`/ -XMA#X!``"+1RR%P'0*]D`&(`^%T`$``(N+``$``(M=R(7;#X20`0``BT70@#AZ -XM=5V+7LA@^L!#X2O`0``@\(! -XM#[8*#[[!@_A_=PKV!(7=%`D(!'7?C4'3/`$/AE8"``"`^2L/A$T"``"`^5X/ -XMA$0"``#'1"0(/`8)",=$)`0#````B30DZ-?$_?^-M"8`````BT7$B4=$BT7, -XMB4=(@\1,N`$```!;7E]=PXVT)@````"+@$0#``"-!$#!X`(#1A"+0#B%P`^5 -XMP.D3_O__C70F`+@!````@\1,6UY?7<.-=@")3"0(,7UW#BT9,B4<\BT$``!``B5=$#X0?____BTK^___'1"00#````,=$)`P!````QT0D"#\- -XM"0C'1"0$`````(DT).AMA/W_A<`/A;7^___'1"00#````(M%R(E$)`R+1=#' -XM1"0$`````(DT)(E$)`CH/X3]_X7`#X6'_O__BT<\C5W6+10B+50Q=Z"+5>"X`0```(72#X3N````BT4,]D`Q"`^%40$``,=%W`$```"# -XM[@&-5?"-3>R)5"00B4PD#,=$)`@`````B70D!(M="(D<).B`C?W_A<`/A>T` -XM``"+3?"%R73)BUWLB5W8#[8#/'L/A+0````\#`^$K````#PN=:R#^0&0=J:+ -XM5>`/M@*$P'2L+#[9"`H/"`H3`=(B)^SC8=>\/MD(!/"`/A'X` -XM``"+7=@Z0P)UVX-MW`%UU8M%#(EP/,=`0`````"+50R+0CB%P`^%B0```(M" -XM,(-J-`$E#_[__X/(0(E",(-*,`B+70R+0T"+4SR)0T@QP(E31(/$/%M>7UW# -XMBX%0`P``C01`P>`"`T$0BT`XB47@Z>#^__^#;=P!#X7Z_O__ZY"#^0(/A7G_ -XM__^-M"8`````Z77___^+10S'0#P!````QT!``````(M5#(M".(7`#X1W____ -XMBTT,@^@!B4$XZ7____^+50R+4@2)5=SIJ/[__\=$)`0`````BU4(B10DZ(U8 -XM``"#Q#RX`0```%M>7UW#58GE5U93@^P\BT4(]H!8`P```0^$%P(``(G"BX!0 -XM`P``C01`P>`"`T(0BT`XB478!``"+50R+6C2#PP&- -XM5?"-3>R)5"00B4PD#,=$)`@`````B5PD!(M%"(D$).B4B_W_A<`/A?X```"+ -XM3?"%R73)BW7L#[8&/'MT?8M5#(MZ+(7_=!'V1P8@=`L\?71IC;0F`````#P, -XM#X2D````/"YUF(/Y`9!VDHM5W`^V`H3`=(@/ME8!B%7CBU7-U[`^V0@$\('1T.D8"==^#;=@!C78`==:%_W0F]D<&('0@ -XM@^L!D.M_@VW8`0^%./___SQ[B?8/A',!``"+30R+>2R+10R%_XE8/,=`0``` -XM```/A9T```"+10R+4#R)P8M`0(E11(E!2(/$/#'`6UY?7<.#;=@!#X7N_O__ -XMZYJ#^0*0C70F`'6"@VW8`0^%7/___XUT)@#K@(M5#(/K`3E:-`^$[@```(U% -XM\(E$)!#'1"0,`````,=$)`@!````B5PD!(M5"(D4).A9BOW_A -XM_O__D)"0D)"0D)"0D)"058GE5U93@^P\BU4,C7W8BT(TB478BT(XB47R#^`$/ -XMA,T!``"%P`^$I0$``+L!````B7PD!(M-"(D,).C$G/__A<`/A4R# -XM^`(/A.N#@_L"C;8`````=`B%VP^%_O[_ -XM_X/N`8UV``^%\O[__XE\)`2+70B)'"3HNYO__X7`=4*+=>R%]@^%9?___P^V -XM5>@[%?P@"0@/C57___^A""$)"/9$D#8"#X1%____B7PD!(M%"(D$).CMG?__ -XMA<`/A"[___^X`0```(/$/%M>7UW#@_X!#X08____B7PD!(M5"(D4).C`G?__ -XMA7UW##[95Z#L5_"`)"'T,H0@A"0CV1)`V`G47B5PD!(DT -XM).A+F/__AR%P'4K#[9%Z#PI=-T\7739/")TU3PG -XM=-$/MM`[%?P@"0A](*$((0D(]D20-@)T%(E<)`2)-"3HRYK__X7`#X7'_O__ -XMBU78.5R#^`-TY(7`#X6\````#[95Z#L5_"`)"'T,H0@A"0CV1)`V`G7$BT7$@T7, -XM`8E%V(M%R(E%W.F:_O__@/H_#X7?_O__BT70A<`/A(W^__^#;7UW#B5PD!(DT).B:F?__A<`/A#+^___I\?W__XE<)`2)-"3H89;_ -XM_X7`#X7=_?__@WWL`W3FC78`Z0O^__^#Z`$/A5/___^+5=B+1RR)5SR+5=R% -XMP(E70'1B]D`&('1#0!#X0N`0``BX*0`0``BP")@I0!``"+@9P```"+ -XM@)`!``"+0`B)@IP!``"+@9P```"+@)`!``"+0`2)@I@!``"+04")@J`!``"+ -XM042)@J0!``"+03R)@J@!``"+04`Y040/A-4```"+F9P```"-!$"+DXP!``"# -XMZAB--,*+DY`!```YUG90BP*#P`&)0AB+@9P```"+D)`!``"+@(P!``"+0`2) -XM0AR+@9P```"+@)`!``#'0"`!````BX&<````@X"0`0``&(N9G````(N3D`$` -XM`#G6=["+DY`!``"+`H/``8E"&(N!G````(N`D`$``,=`(`$```"+@9P```"+ -XM@)`!``#'0!P`````BX&<````BX"0`0``QD`N`(N!G````(.`D`$``!B+04"# -XMP`&)04")042)03Q;,7<.+F9P```#KDHVV`````(V\)P````!5B>575E.# -XM["R+11"%P`^$"`$``(M`"(E%\(M-%(M]\(7)#X2:````#[X'A<`/B(\```"+ -XM-?P@"0@YQ@^.@0```(L=""$)"(GZ]D2#-@)U&>MP#[X"A(M5&(E""(M-&(M1$(72=)2+31B+00B)5"0(B40D!`'8B00DZ'T* -XM_?_I=____XM%#(7`=12+11C'0!P`````@\0L,575E.)PX/L/(E5U(E-T,#B+5=2+3=B+4@B%R8E5Z`^$80$` -XM``^V$@^^PH7`#XA3`0``BS7\(`D(.?")=>P/C4(!``"+#0@A"0B)3?#V1($V -XM`@^$+@$``(MUZ#';BT78QT7<`````,=%X`````"-!`:)1#@[1>Q],XM-\/9$@38"="F`^@EUTX7;=`?'1>`! -XM````BU70`````=QR)^^L"B#1>0!C0P[*=$[3=QV -XMZHG8BWW)\"M%Z(T4#SG0=&HI1=B)PXM%V"G3B70D!"G>B30DB40D -XM".B*"/W_BU74*5H0*5H8BUWDBTW4@^L!@_O_BU$(=!J+=>2)T(T,%HUT)@#& -XM``F#P`$YR'7VC50:`87_=`V-!#K&`B"#P@$YPG7VBT70QP`!````@\0\6UY? -XM76#[!C'1"0(Y`<)",=$)`0"````B00DZ`*R_?_)PU6)Y5>)QU:) -XMUE.#[#SV10L!B4W8#X1>`0``BT(HA<`/A`L!``"#Z`&)0BB0C70F`(M=V(M& -XM&(M."`^V$X@4`8/``8E&&#'`@\0\6UY?7<.)T0-.$#M.#'8KC48,B40D"(M& -XM"(E,)`R)/"2)1"0$Z"TF_O^%P`^$U0(``(E&"(M5[(M%Z"G"BT8HB57['1>@`````BT7@A``````ZTT\_P^$Q@````^VP(T$0`'``T<0#[:`70$``(E%[(M5[(M%Z#G" -XM#X0)____#X-,_O__*="#1>`!A<")1>@/A/G^__^+1BB%P`^$[O[__X/H`8M6 -XM"(E&*(M%\`^V!`(\"76?C47LB40D$(M&%(E<)`R)5"0$B3PDB40D".@_N``` -XMZYR)1"0,C48,B40D"(M&"(D\)(E$)`3H,R3^_X7`#X3;````BU8@@T80`8E& -XM"(72#X2I_?__Z<+^__^+3@B+5A@/M@01B$01`>F1_?__D,=$)`3_____B3PD -XMZ$!M_?_I-____\=$)`3_````B3PDZ"MM_?_IX_[__XM%W(7`#X0Q_O__,<#& -XM1!`!((/``3M%W'7SZ1W^__^)T`-&"`^V&,8`"8U%Z(E$)!"-1?")1"0,BT84 -XMB3PDB40D"(M&"(E$)`3H>+<``(M6"(M%\(@<`NF*_O__BT7PBU8HBUW@`T8( -XM`U8@`U7@B00DB50D"(T4&(E4)`3HF03]_^G5_?__N`$```#I[?S__\=$)`3_ -XM____B3PDZ(9J_?^+3@B)PNEN_?__C;8`````C;\`````58GE5U:)UE.#[$R) -XM1#B+5`"`T(0BT`XB47,BUX8,)^"G0`47@.5X8=]^+5>`QVSE5 -XMU,=%V`````!V'8G3B=`QT@'[]_>+1>`ITSE=U`^#O````(M=U"G#BT7-=@"+1BB+?C2%P(E^$'1#@R'WBPLYT715 -XMBT,$B4$$BT,$B0B)'"3H=S/]_\=$)`@!````BT84@\`!B40D!(M%\(D$).@: -XMQ0``@_@!&=LA\^N%D(M&((7`=;:+1@C&!#@@@T8@`8-&$`&#"0CKI8M#!(E! -XM!(L+ZZ>-="8`C;PG`````%6)Y5=64X/L7(E%U(M%#(E5T(E-S,<``````(M" -XM&(M2)#G0B578#X1,`0``BUW0C4C_BW,(`"+7<"#Z0$I -XM^X/'`3M-V'12BW7`B?CWV`^V%#`/ML([1>!]#8MUR/=$AC0`!0``=3*`^E]T -XM+3M%X'W&BU7(]D2"-@)TO.L7UW#B7PD -XM!(D<).C2(/[_A<`/A+<```"+11#'``$```"#Q%PQP%M>7UW#QT0D$`$```"+ -XM0R")1"0,BT,7UW#BUW(]T2#-``%```/A%+^__^A_"`) -XM"+\!````BUW`B47<@^D!@^L!@\B+2AB+0QR#Z0&) -XMR@-3"(E%Y*$((0D(B7WLB47PZPLY2R1T)(/J`8/I`0^^`H7`>`\[1>Q]"HM] -XM\/9$AS8"=32#Q@$[3>1UUXET)`2)%"3H%Q_^_X7`=0Z+?>B##P2#Q!Q;7E]= -XMPXM%Z(,@^X/$'%M>7UW#@\(!.4WD=,PY2R1UU^O%D(VT)@````!5B>57B==6 -XM4X/L'(M"&`-""`^V$(A5\\8``(M'&(/H`8G#`U\(@#L8=#"+3QPYP70IBUNBT<8BU<(#[9-\X@,`HM' -XM""EW&(M7&"EW$(A<`O^+5RB%TG4HBU<@A=)TD(M'&`-'"`-'*(E4)`B-%#") -XM5"0$B00DZ)'\_/_I;____XM'&`-'"(E4)`B-%#")5"0$B00DZ'/\_/_KO8VV -XM`````(V\)P````!5B>575HG&4X/L#(NXG````(-X-`&)^0^$TP```(N7J`$` -XM`(E0/(N'I`$``(E&1(N'H`$``#M&1(E&0`^$Y````#G0B=-R,HM&$(E<)`2# -XMPP''1"0(`````(DT)/^0D`@``(M&$(DT)/^0;`@``#E>0'/4BXZ<````BT8\ -XMBY&,`0``C01`@^H8C03"B8&0`0``]H84`@```75RBXX,`@``AL`0`````` -XM`(/$#%M>7UW#BX8,`@``C01`P>`"`T80BU@XA=L/E,#K@(.OD`$``!CI8/__ -XM_^L-D)"0D)"0D)"0D)"0D%6)Y5=64X'LO`(``(M%"(M5"(M-"(MU%(M`$(F% -XMB/W__XN2G````(F5?/W__X&)K`0```````B#P7B+70B)C8S]__^+6W@YRXF= -XM8/W__P^$6A$``#D+#X1;"```BUT8@\,@BX6,_?__B00DZ$`M_?^)7"0,BWT8 -XMB70D!(E\)`B+10B)!"3HIB[]_X7`B85@_?__#X3H!P``BU4(BXU@_?__BT)X -XMB0&+G8S]__^)600Y6GP/A$$/``"+=0B+O6#]__^+1GB)>`2+E6#]__^+10B) -XM4'B+C6#]___'03@$````BUT(BT-,B4$4BU-0B5$8BUT8A=L/A#]``"%P`^%3P8``(M%**@0=$B+ -XM52"%TG1!B[U@_?__QT0D#`````#'1"0(`````(E\)!"+12")1"0$BU4(B10D -XMZ"7M__^%P`^%#08``(M''(E'&.L9D(UT)@"H`@^%"`8``(N=8/W__XM#&(E# -XM)/9%*D!T(8NU8/W__P^V31R+1AB+5@B(#`*#P`A`!@T8D`8E&&/9%*`@/ -XMA6(&``#V12M`QX6@_?__`````'0OBWT(]H>0!````0^%>08``(M5"(N"B`0` -XM`(7`#X2"!@``BTT(BTDX*<&)C:#]__^+O8C]___'1=P`````]H=4"````0^$ -XMB@4``/9%*@3'A9#]__\"````#X1V!0``BU4H]\(````"=!:)T"7__W__B44H -XMB<+'A9#]__\`````B="+30@E````"(/X`1G`@>(```0`]]"#X`.#^@&+E6#] -XM__^(A:C]__\9P/?0@^`$B47@BT(4B4%,BT(8B4%0QT0D!`$```")#"3H?J0` -XM`(7`#X76!```BUT,]D,Q(`^$QP@``,>%F/W__P````#'A%I/W__P````#'A=3]__\`````QX64_?__`````,>%P/W__P`` -XM``#'A)O83]__^+M=3]__^%]G0:BY6$_?__@'H,(`^$ -XM!Q\``,>%U/W__P````"+C83]___V010(#X68"P``@[V8_?__`@^4PH.]F/W_ -XM_P0/E,&$TG4$A,ET3(M%X(/@[_9%*@2)1>!T!H/(!(E%X(32=!6+G83]__^+ -XM0Q"#Z!"#^`$/AM8B``"$R700BX6$_?__@W@0#`^%8R,``,>%F/W__P````"# -XMO%`D(`74@BY5@_?__BT4(Z)7X -XM__^%P`^%$`<``,>%R/W__P````"+G83]__^+2Q"#^10/AD@'``#V12A`#X32 -XM"@``BX6$_?__#[90##L5_"`)"`^-:0T``*$((0D(]D20-0(/A%D-``"#^0H/ -XMA%`-``"#^0\/A$<-``#'1"0(<`@)",=$)`0"````BU4(B10DZ+2?_?_V12L" -XM#X65#```BXV@_?__A%S/W__P````"+A7S]__^+@%P!``"% -XMP`^$@@P``(M-"/:!KP0``!!U*HN%Q/W__X7`=2#'1"0(`````,=$)`0````` -XMB0PDZ'1X``"%P`^%+`(``(N%H/W__X7`=1"+70B+0Q"+@!@!``"%P'4UB[5@ -XM_?__BWT(BT84B4=,BT88B4=0,<"#O:#]__\`B3PD#Y7`B40D!.B%H0``A<`/ -XMA=T!```/MH6H_?__J`*)A5S^__\/A/T```"+50B#>C0!#X3I````BXU@_?__ -XMBTD8@_D!B8TX_O__#X;<&P``B[5@_?__BUX(B[4X_O__#[9$'O\\7(B%/_[_ -XM_P^$#AL``(M5"/:"?`,```$/A+<:``"+@G0#``"-!$#!X`(#0A"+4#@/OH4_ -XM_O__B10DB40D!.B`\/S_A"(MV&(FU./[__P^V1![_B(4__O__#[:5 -XM/_[__SH3#X6O&```@[TX_O__`G0+@'P>_EP/A)L8``"+30R+432+03B)442) -XM04B`I:C]___]]D4K`@^%4OS__^D=!0``#[:%#/___SGP#X0N&@``.<,/A0(7 -XM``"#K2#^__\!#X7U%@``BY7\_O__.Y5X_O__#X(&_O__#X6;)@``BX4`____ -XM.X5\_O__#X+N_?__BTT(B5%,B4%0QT0D!`$```")#"3H]9\``(7`=5&+70CV -XM@UP"```!#X1-)@``BX-4`@``C01`P>`"`T,0:T`X9,=$)`Q`````B40D",=$ -XM)`0`````BWT(B3PDZ/]@_?^%P`^$A_W__XVT)@````"X`0```('$O`(``%M> -XM7UW#BXU@_?__BT$8QT$D`````(E!'.GL^?__QX60_?__`````.E[^O__BUT8 -XMB[U@_?__@\,@.5\,#X*6]___BY5@_?__A?;'0B@`````QT(D`````,="(``` -XM``#'0AP`````#X3#"```BTT8B4H0B4PD"(ET)`2+0@B)!"3H%?+\_^F_]___ -XMBT48B[U@_?__*=")1R#I]_?__XN=8/W__XM#"(M3&,8$$""#0Q`!@T,@`<=$ -XM)`@#````BT,4B40D!(MU"(DT).CGM0``Z6?Y__^+AX@$``"-!$#!X`(#1Q"+ -XM0#B%P`^%?OG__XM="/:#A`0```$/A!((``"+@WP$``"-!$#!X`(#0Q"+0#B) -XMA:#]___I7_G__XN]8/W__XM'&`-'"(T,&(M%"/:`#`$```$/A/4=``")PHN` -XM!`$``(T$0,'@`@-"$(M0.(72#Y7`A,!T08N%G/W__X7`=##O93]__\"#X15(```B70D -XM$(N-8/W__XM!&(E,)`C'1"0$`````(E$)`R+70B)'"3HPN3__X7`#X5-`0`` -XMQX64_?__`````(M&'(E&&(N%T/W__X7`#X3(````BX5@_O__A$(N-8/[__P%.&(N=,/[__XE>*(N]+/[__XE^(,>%T/W_ -XM_P````"+?BB%_W4LBUX@A=MU)8M&$(/``3M&#`^'("```(--*`B+5@B+1AC& -XM!`(@@T8@`8-&$`''1"0(`@```(M&%(E$)`2+50B)%"3H-[,``(N-8/[__XFU -XM8/W__XF--/[__X7`#X1S^?__BU4(BT)XBU@4ZPF)]H7;=!J#ZP&)7"0$BTT( -XMB0PDZ$IF_?^%P'3FA=MU!;L!````BW4(N`$```"#CJP$``!`B5Y,QT90```` -XM`('$O`(``%M>7UW#_R2-J`@)"(UUM,>%F/W__P````#'A%I/W__P````#'A=3]__\`````B;6$_?__QX64_?__`````,>% -XMP/W__P````#'A`7`$```````#'@%@!````````QX!4`0`` -XM`````(E<)`2+50B)%"3HM(4``,=$)`0!````BTT(B0PDZ(&:``#'A<3]__\` -XM````B[V$_?__@W\("P^&UP,``(N=A/W__XE<)`2+=0B)-"3HDE;]_X.]D/W_ -XM_P(/A!,+``#V1>`$=`KV12H"#X7-!0``]D4H")!T$8N]8/W__XM/((7)#X7P -XM!```]D4K`0^$R@```(N%8/W__XMP*(7V#X3^````BU4(,=N+2GB)RNL2BT(0 -XM`T(LBQ(!PSF5C/W__W03.Y5@_?__=>:+O6#]__^+1QCKX3E=&`^&C````(U% -XMT,=$)!``````B40D#,=$)`@#````BT$4B40D!(M%"(D$).AO8OW_A(F%$/[__P^% -XMCP0``,=%T`````"+0Q")1"0,BT,(B40D"(M#%(E$)`2+30B)#"3H.F;]_X7` -XM#X6U_/__BU70A=(/A3,0``"+`$=!?V12H"=!&+E6#]__^-3>"+10CH;NS__XN%D/W__X7`="R+O83]__\/ -XMMD\,#[;1.Q7\(`D(#XS)`0``@/E?QX60_?__`0````^$R0$``(M%*(G9B00D -XMBY5@_?__BT4(Z&+B__^%P`^%/?O__X.]F/W__P,/A``)``"+O>[__X-O$`&#;R`!Z0/[__^)P2G1Z4KZ___'1"0(!P```,=$)`0````` -XMBTT(B0PDZ`PI``#II?K__XET)`2+50B)%"3H"(```(7`#X2G^?__Z3OU__^+ -XM10B!B*P$````!```N`$```#I*?7__XN-I/W__X7)#X5E!P``BT4HJ0````(/ -XMA5<'``"+O83]__^`?PP`#X5'!P``BY5\_?__BY)$`0``A=(/A(_^__\E__]_ -XM_PT````"B44HQX60_?__`````.E9\/__BY5@_?__C4W@BT4(Z#?I___I'?K_ -XM_XM%"(U-T(G:Z#7=___I9OO__XE$)`R)T(/`#(E$)`B+0@B)1"0$BTT(B0PD -XMZ.$%_O^%P`^$'/C__XN=8/W__XE#".G+_?__B[5@_?__BT88.T8<#X<(\?__ -XM]D4H$`^$_O#__\>%E/W__P,```#I[_#___9%*00/A.7P__^+E6#]__^Y`0`` -XM`(M%".ACXO__A<`/A;[W___IM?S___9%*!")]@^$N?#__XN]8/W__XM?&(7; -XM#X0/\?__@[V4_?__`0^$LA,```^#.A$``(NU8/W__XM&'(7`#X2$\/__`T8D -XM.<,/AWGP__^+10@QR8GRZ/[A___IS_#__XN=8/W__XM#&#M#'`^'5O#___9% -XM*!`/A$SP___'A93]__\!````Z3WP__^+O6#]__^+7QB%VXG9#X3?"@``BX5@ -XM_?__.4@D#X.D!0``BY5@_?__BT("-7PS'A9C]__\#````@\@0@^#[B47@ -XMZ8#Z__^+C6#]__^+41B%T@^$MPD``(N=8/W__SM3)`^&4`0``(NU8/W__XM& -XM'(7`=`8YPHG!=Q"+O6#]__^+3R3'1QP`````BY5@_?__BT(H`T(8*E!____B[U@_?__BT<8BU%S/W__P$```#I&>[__XM%*&:%P`^)#>[__X-] -XM)`$/AA\5```E__]__PT````"@VTD`:@!B44H#X7A%```J0````%T&HNU8/W_ -XM_XM&*,=&*`````")1B"!92C____^QX60_?__`````,>%I/W__P````#IDNS_ -XM_XNU-/[__XFU8/[__XM5*/;&"`^$F@4``('B```"``^%Z0H``(M5"/:"KP0` -XM``$/A?0-``"+C6#]__^+01@[021W!\=!.`(```#VA:C]__\"#X3^!P``BYU@ -XM_?__BT,D@\`!.4,8#X+I!P``QT,X!0```(NU8/[__XFU-/[__^G,]?__QX7( -XM_?__`0```.GZ]___BY5@_?__BT4(Z('E__^%P`^%_//__\>%R/W__P````#I -XMV_C__\=$)`@#````BT,4B3PDB40D!.CSI@``A<`/A'KW___IR?/__XVV```` -XM`(G(@\`,B50D#(E$)`B+00B)1"0$BW4(B30DZ&$!_O^%P`^$^>___XN]8/W_ -XM_XE'"(M%T.GSZ/__BXU@_?__BT74`T$(B50D"(/``8E$)`0!V(D$).AKXOS_ -XMZ>+H__^-!!.%VXE%U`^$,^G__XGPC1P>Q@`@@\`!.=AU]ND?Z?__B[6$_?__ -XMC5X,Z:3W__^+52CWP@````(/A=[T__^+G8C]___V@U0(```!#X3+]/__BYV$ -XM_?__C47<@>(```(`B40D"(U%V(E$)`2)%"2+E6#]__^+10B#PPR)V>@@X?__ -XMA<`/A=OR__^+1=B%P`^$B/3___9%*H`/A#GL__^+M:3]__\IQHGP@^@!B86D -XM_?__Z2'L__^+52CWP@````(/A=/V__^+A8C]___V@%0(```!#X3`]O__C47< -XM@>(```(`B40D"(U%V(G9B40D!(D4)(N58/W__XM%".BBX/__A<`/A5WR__^+ -XM1=B%P`^$AO;___9%*H`/A+OK__^+E:3]__\IPHG0@^@!B86D_?__Z:/K__^+ -XMA6#]__^#:!@!@T`H`>GM]O__C47DB40D!(M5"(D4).C(CP``A<`/A0/R__^+ -XMC:#]__\[3>0/A_#V__^+72B+M6#]__^+O6#]__^A""$)"(F=%/[__XMV&(GQ -XM@^D!B;4<_O__B!4Y\'T1B[T8_O__]D2'-@(/A>,.``"+O6#]__\Y -XM3QQUQ,=%V`````#I9_;___9%*P(/A=3J__^+10CH5MC__^G'ZO__B[V8_?__ -XMA?\/A?$```"+32CVQ0$/A)($``"+70@/MI-4`0``@^(!#X2&"```BX-,`0`` -XMC01`P>`"`T,0BW`XA?8/E<"$P`^$8`0``(32#X1B#```BWT(BX=,`0``C01` -XMP>`"`T<0BT`XBYV$_?__#[X`#[93##';.=`/E,.!X0```0`/A!P$``"+=0@/ -XMMI;``0``@^(!#X0$"```BX:X`0``C01`P>`"`T80BT`XA<`/E<"$P`^$Z@,` -XM`(32#X3E"P``BU4(BX*X`0``C01`P>`"`T(0BT`XB[6$_?__#[X`#[96##G0 -XM#Y3`#[;0@^L!#X1A!@``@^H!#X3[!P``BY6$_?__]D(4`0^$AP,``(.%P/W_ -XM_P&!O<#]__\``0``#X^@!P``]D4J@`^$$NC__XN=I/W__XNU?/W__X/#`6O# -XM'#N&2`$```^'4PD``(NUA/W__XN%?/W__VN5I/W__QR+B$0!``"+!HD$"HM& -XM!(E$"@2+1@B)1`H(BT8,B40*#(M&$(E$"A"+1A2)1`H4BT88B40*&(F=I/W_ -XM_^FAY___QT0D!/____^+10B)!"3HK4;]_^GAY/__A<`/A$0%```YT`^&(/[_ -XM_XU0_XN%8/W__XE0&`^VC:C]__^#X0)T#8N=8/W__XM#",8$$""+M6#]__^+ -XM1AR#1B@!.488C__^DR^?__QT0D!/____^+30B)#"3H -XM.T3]_XG!Z>?D__^)1"0,B="#P`R)1"0(BT((B40D!(M-"(D,).C%_/W_A<`/ -XMA`#O__^+G6#]__^)0PCI"/3__X.]D/W__P(/A(\%``"+G9#]__^%VP^%:P0` -XM`/9%X`1T"O9%*@(/A04*``#V12@(=!6+G6#]__^+2R"%R70(@VL0`8-K(`&+ -XMM6#]__^+1A")1C2+1AB)1C")1A#'1"0(`P```(M&%(E$)`2+?0B)/"3HFJ$` -XM`(7`#X5U[O__BT8@QT8L`````(M>*/9%*P&)A9S]__\/A-KK__^%VP^$TNO_ -XM_XM.&`-."`^^$872#XA`[/__.17\(`D(?S+I,^S__XN58/W__X/!`8-"+`&# -XMZP$/A,4)```/OA&%T@^($NS__SL5_"`)"`^-!NS__Z$((0D(]D20-@)UQ^GU -XMZ___D(NU8/W__XM&%(E#3(M&&(E#4,=$)`0!````B1PDZ,Z)``"%P`^%)NK_ -XM_XV%>/[__\=$)`P#````QT0D"`````")1"0$B1PDZ)2;``"%P`^%_.G__XM& -XM%(V]_/[__XF%_/[__XM&&(/H`8F%`/___XE\)`2)'"3H!6?__X7`#X7-Z?__ -XM#[:%#/___S';QX4@_O__`0```#PI#[;P#Y7#@^L!@^.MB(4G_O__@\-[C97\ -XM_O__B50D!(M-"(D,).B^9/__A<`/A8;I__^+A1#___^%P`^$O.C__X/X`G0% -XM@_@$=%F/W__P(```#I,>;__\>% -XMP/W__P````#I@?S__S'2Z4'\__\QV^G*^___BT4(@:"L!```____]^E<\O__ -XMBX5@_?__BW`DBT@8QT`<`````.F#]?__QT0D"`,```"+0Q2)1"0$BW4(B30D -XMZ'J?``"%P`^%5>S__^FF[___BXU@_O__B8TT_O__Z>KM__^-12B)^8D$)(N5 -XMC/W__XM%".B6V?__A<`/A"'L__^+2!B)A6#]___I]?3__XU%*(D$)(N5C/W_ -XM_XM%".ALV?__A<`/A/?K__^+4!B)A6#]___I'_;__XM]"(NU8/W__XN'G``` -XM`(M>%&:!B,@!``"``(GX@:>L!```____Y^A:WO__A<`/A1+H___VA5S^__\! -XM#X1W!0``BT4,BU`TBT`XB95X_O__B85\_O__N$````"+O6#]__^+5PB`.B\/ -XMA&D(``")1"08QT0D%`````"+C6#]__^+01B#Z`&)1"00C4(!B40D#(M%#(/` -XM1(E$)`B-A7C^__^)1"0$BW4(B30DZ`?-_?^%P`^4P(3`#X3P!```BWT,BU4( -XMBT=$B4),BT=(B4)0@*6H_?___HM"$(NX&`$``(7_#X2N"@``BT4(Z`C-__^% -XMP`^%4.?__XM-"(N!G````&:!H,@!``!__XN!G````(&)K`0``````!B+M6#] -XM__^+@)`!``"+`(E&%(N!G````(N`D`$``#D8#X0^YO__QT0D#`````#'1"0( -XM`````(E$)`2)#"3HO4L``(7`#X7EYO__BWT(BT<0QT0D!`````")/"3_D)@( -XM``#I_N7__\>%D/W__P$```#IAOO__XM-"(N1=`,``.E-Y?__C44HB00DBXU@ -XM_?__BY6,_?__BT4(Z*+7__^%P(F%8/W__P^%FN/__^DBZO__@X4@_O__`>G0 -XM_/__@_X"#X2?Y?__@'P>_EP/A93E___IV>3__X72=!*+O6#]__^+1Q@[1R0/ -XMA8GY__^+A6#]___'0#@!````Z8#K__^H!`^%NP,```^VE:C]__^+A6#]__^# -XMX@*+2!B)E4#^__\YS@^"_0,```^VA:C]__^#X`*)A4#^___I>O/__\=$)`@# -XM````B[U@_?__BT<4B40D!(M%"(D$).B4G```A<`/A6_I___I^O3__XM=#(M3 -XM-(M#.(E31(E#2.GHY/__]\(````"#X7>_O__B[V(_?__]H=4"````0^$R_[_ -XM_XN=A/W__XU%W('B```"`(E$)`B-1=B)1"0$B10DBY5@_?__BT4(@\,,B=GH -XM1-?__X7`#X7_Z/__BT78A<`/A(C^__^+E6#^___V12J`B94T_O__#X11XO__ -XMBXVD_?__*<&)R(/H`8F%I/W__^DYXO__C78`QX74_?__`````.DGXO__BWT( -XMBX>X`0``A<`/E<#I`/C__XMU"(N>3`$``(7;#Y7`Z7[W___'1"0$`0```(M- -XM"(D,).@X0/W_A<`/A2,'``#V12L"QX7`_?__``````^%9^[__^G-X?__BY5@ -XM_?__BUH8QX7<_?__`````,>%Q/W__P````"#^P$/A,H&``"+M6#]__^+/?P@ -XM"0BA""$)"(MV"(F]9/W__XF%V/W__\>%6/[__P````"-3![_B;5T_O__ZP@Y -XM1R1T0(/I`0^^$8G8*X58_O__@^@!A=)X&3N59/W__WT1B[78_?__]D26-@(/ -XMA9,'``"+O6#]__^#A5C^__\!.4<<=;N)RRN==/[__XN58/W__XM"$(/``3M" -XM#'8SB40D#(G0@\`,B40D"(N-=/[__XE,)`2+=0B)-"3H._7]_X7`#X1VY___ -XMB[U@_?__B4<(BX5@_?__`U@(B9UP_O__`YU8_O__B9UL_O__#[8SQ@,JC9UX -XM_O__QT0D&`````#'1"04`````,=$)!``````QT0D#`````#'1"0(`````,=$ -XM)`0`````B1PDZ!M.__^)7"0$BU4(B10DZ!Q#_O^%P`^%]^;__XN%6/[__X/` -XM`8E$)`R+C7#^__^)7"0$B4PD"(M="(D<).A^4?[_A<`/A#0'``"+E6S^__^) -XM\(@"Z2W@__^-M"8`````B40D#(GP!4@!``")1"0(BX9$`0``B40D!(M]"(D\ -XM).A,]/W_A<`/A(?F__^)AD0!``#I=O;__\=$)!`$````QT0D#`$```#'1"0( -XME@@)",=$)`0`````B10DZ)%`_?_IW_'__X.]E/W__P,/A'4#``#H#M'\_X"- -XMJ/W__P'I+OO__XMU#(M&2(M61(F%?/[__[A(````B95X_O__Z83Z__^-4?^+ -XMC6#]__^#02@!B5$8#[:=J/W__X/C`HF=0/[__W0'BT$(Q@00((N]8/W__XM/ -XM&(M'"`^^5`'_A=(/B!S\__\[%?P@"0@/C1#\__^A""$)"/9$D#8"#X4GW___ -XMZ?O[__^+E6#]__^+0@@/MEP!_P^^TX72>!P[%?P@"0A]%*$((0D(N0$```#W -XM1)`T``4``'4(,"+10CHCM7__^GE]?__BTT(BX&X -XM`0``Z2+T__^+50B+@DP!``#II?/__XNU8/W__X-N&`B@!B[V$_?__QX68 -XM_?__`````(U?#.D/Z?__BUT(BX,$`0``A<`/E<#I$>+__XNUG/W__X7V#X1( -XMXO__#[X1A=(/B#_B__\Y%?P@"0A_-NDRXO__B[5@_?__@\$!@T8L`8.MG/W_ -XM_P$/A!;B__\/OA&%T@^(#>+__SL5_"`)"`^-`>+__Z$((0D(]D20-@)UP^GP -XMX?__C5@,QX68_?__`````.F"Z/__BX5@_?__BU`%:/___P````")5"0, -XMB40D",=$)`0`````BWT(B3PDZ#[Q_?^%P(G"#X1WX___B85D____BT8%E/W__P(```"+7AB)A6S___^)A7C___^+ -XMC6#]__^+00C&1`/_((M!*`-!&"M!),=!'`````")02B+022)01CIAMS__XE$ -XM)!C'1"04`````(M'&(/H`8E$)!"-0@&)1"0,BT4,@\!$B40D"(V%>/[__XE$ -XM)`2+10B)!"3H1,G]_X7`#Y3`Z9CW__^+E6#]__^+0AR%P`^$R-O__P-")(/` -XM`3G##X>ZV___QX64_?__`````.E@____]H44_O__"(U"`8F%*/[__P^$WP$` -XM`(N%8/W__XN]8/[__XM8((/K`8F=+/[__XMP*"F]'/[__XN='/[__XFU,/[_ -XM_XE8&(NU8/W__XM&$(/``2M&("M&*,=&(`$````I^(E&$(N%8/W__\=`*``` -XM```/OAJ%VWAP.1W\(`D(?FBA""$)"/9$F#8"=%R+G6#]__^#:Q@!@VL0`3M+ -XM''1)B[5@_?__B=,[3B1U-.LZ.Q7\(`D(?3*A""$)"/9$D#8"=":+O6#]__^# -XMZ0&#;Q@!@V\0`3E/''00@^L!.4\D=`@/OE/_A=)YQHN%A/W__\=%V`$````/ -XMME`,.Q7\(`D(?26A""$)"/9$D#8"=!G'A=#]__\!````QX74_?__`0```.GA -XM[/__QX70_?__`0```.G2[/__BTH(,-O'A5C^__\`````B8UT_O__Z9_Y___' -XM1"0(,`@)",=$)`0#````BUT(B1PDZ%)Z_?_IO?C__XER>.EWW___B70D$(N% -XM>/___\=$)`0`````B3PDB40D#(V%7/___XE$)`CH;<3__X7`#X7XX/__A?\/ -XMA(P#``"+5Q"%T@^$@0,``(N%9/___SM"=`^$60,``(D$).C_T/S_QX64_?__ -XM`````.E\W___#[:5J/W__X/B`HF50/[__^F-ZO__B[U@_?__BX5@_?__BYU@ -XM_O__B[5@_?__BW\@B;TL_O__BT`H*9T<_O__B[T<_O__B84P_O__B7X8BX4L -XM_O__QT8@`````/?8*T8H*=@!1A#I&O[__\=$)`0`````B10DZ$)\``"%P`^$ -XM.O7__^F5W/__C5D!*YUT_O__Z7GX__^)1"0,C48,B40D"(M&"(E$)`2+10B) -XM!"3HRNW]_X7`#X0%X/__B48(Z;/?__^+G33^___'A:3]__\`````QX60_?__ -XM`````(F=8/[__^E`Z___B[U@_?__BT<8.T'__XN58/W__XM")(/``3E"&`^"3.'__\=".`4```#I0.'__XN-\/[__XGP -XMBYWL_O__BY5L_O__A#]__^)G03^__^(`G4BBX7<_?__A<`/A=38__^+ -XM30B+01")#"3_D&0(``#IP-C__X/I`0^$_P$``(M5"(N-!/[__XM2$(F5`/[_ -XM_XL!BP")A4C^___'1"0$+P```(D$).@IR_S_A<`/A+#]__\KA4C^ -XM__^#ZP&#P`&%VXF%[/W__XF=#]__\QVX/J`HF5:/W__^LDC70F`#N=:/W__W0]BXT$_O__B[7L_?__BT29 -XM"(/#`3MP"'<;B[WL_?__BS"+C>S]___\.?^+O4C^___SIG3%QX7L_?__```` -XM`(N%X/W__XN-!/[__\>%3/[__P8```"%P`^.6`0``(NUX/W__XF-5/[__\>% -XM:/[__P````"+E>S]__\#E4C^__\/M@*$P'1XB=/'A?3]__\`````ZR:+50@/ -XMML"-!$`!P`-"$`^V@%T!```!A?3]__\/MD,!@\,!A,!T,#S_==;'1"0$_P`` -XM`(M-"(D,).CY-/W_Z]:)="0$BW4(B30DZ.@R_?_IY?#__XUV`(N=]/W__SF= -XM:/[__W,&B9UH_O__@^X!#X2"`P``B[U4_O__BT<$@\<$BP")O53^__^)A4C^ -XM___I3?___XMU"&N&5`(``&3IM]G__XN%`/___^ELV?__@:)4"```__[__\>% -XME/W__P````#I(=S__XN%9/___^F#_/__BX7@_?__@^@!B85P_?__Z;W^__^+ -XMA>S^__^+`(L`B85$_O__B00DZ`[._/\YA5C^__^)PP^$P````(N%6/[__XNU -XM1/[__X7`#Y7`#X6&````A=MT1XN-8/W__XM!*(7`=1/I`0$``(MX*(/&`87_ -XM#X3S````#[8&B[UP_O__B`>+A6#]__^#QP&)O7#^__^#:"@!@T`8`8/K`77+ -XMB[5P_O__B;5L_O__Z6P!```/M@:#ZP&#Q@&+O7#^__^(!X/'`8.M6/[__P&) -XMO7#^__\/E<`/A'K___^%VW72A,`/A&[___^+A6#]__^+E5C^__\I4!@!4"CI -XM5____XNU1/[__SG`B<&+O7#^___\\Z8/A2?___^+A=S]__^%P`^%J]7__XV% -XM_/[__XE$)`2+A43^__^)!"3HH3]__^-7#,!B9UL_O__@[W@_?__`0^%IM3__XV%_/[__XE$)`2+ -XMA>S^__^+`(L`B00DZ)C'_/^%P`^%@M3__P^WA03___\E`/```#T`0```#X5K -XMU/__B[U@_?__BT%W/W__P$```#I -XM//+__XE$)`R)^(/`#(E$)`B)7"0$BT4(B00DZ!'H_?^%P`^$3-K__XG"B4<( -XMZ6O___^+M6#]__^#Z`&)1BCKGXN%X/W__XN5!/[__XT,@HN%:/[__[JKJJJJ -XM]^+!Z@*-%%*-5!(&B95,_O__BUT(BY.L!```QX7H_?__`````/?"````$'06 -XM@>+____OB9.L!```QX7H_?__`0```(MU"(M&.#F%3/[__P^'Q0$``(/H`3'2 -XMB[W@_?__][5,_O__.?B)A7C]__\/@@@#``#'A?#]__\!````BY7P_?__,<#' -XMA?S]__\`````P>("B95L_?__BY5X_?__A=(/A"T!``"+G?#]__^+O03^___' -XMA?C]__\``````<.--(>)G5#^___ID@```(D<).AVR?S_BX4`_O__]H!4"``` -XM!`^%U@$``(N54/[__SF5X/W__P^&V@```,=$)`Q/C0@(BX5,_O__*X4(_O__ -XMQT0D!'Z?"`B)1"0(BTT(B0PDZ"*C_O^+G0#^___V@U0(```$#X6&`0``@X7X -XM_?__`8N]\/W__XN%>/W__P&]4/[__P.U;/W__SF%^/W__W1UC570B50D"(L& -XMBP`#A>S]__^)1"0$BTT(B0PDZ#AE_?_'1"0$GZT("(E$)`B+?0B)PXD\).BO -XMHO[_BTW0A#]__^%P'XY -XMBYW@_?__ZPN-M@````"#ZP%T)HET)`C'1"0$?>D("(M5"(D4).C4H?[_BXT` -XM_O__]H%4"```!'35BWW0A?]T(HM="(7;=!.+70B+0Q"%P'0).7!T#X1C`0`` -XMB30DZ*#'_/^+M0#^___VAE0(```$#X0&`0``BYT`_O__@Z-4"```^XN%Z/W_ -XM_X7`=`V+=0B!CJP$```````0BX7L_O__B[W@_?__BQ"--+B+6@B+$HF5=/W_ -XM_XN5L:C70F`(N]=/W__P^V!!,Z!#MU!X/#`3G+=>J+A7#]__^#[@2# -XMZ`&)A7#]___KG8N-=/W__\>%Q/W__P$```")C43^___I?_G__XN%X/W__S'2 -XM][5X_?__@_H!@]C_A<")A?#]__\/A>#\___'1"0$)KH("(M%"(D$).@&H/[_ -XMBY4`_O__]H)4"```!`^%^O[__XM-"(D,).B8G_[_Z??^__^)1"0,BL```"+@YP```"+@)`!``"+`(&+K`0``````!#'0U``````B4-,BU44 -XM@)QU:)SE.#["R%P(E5W`^$Y@```(M8$(7;#X3;````]H-5"``` -XM`0^%S@```(M5"#E3>`^"3@$``(M+=(E-X(M#>(E%\(&+5`@````!``"+10B) -XM="0$B40D"(M5X(D4).@\P_S_BTW@BT40BU7@`U4,C5P!`3G:7UW#BT4(QT7P`````,=% -XMX`````"%P`^$.____XM%",=$)`0`````B3PDB40D#(U%\(E$)`CH*^']_X7` -XMB47@#X42____NP$```#KK8M5"+L!````B50D#(M-X(E,)`B+1=R)/"2)1"0$ -XMZ+<\_?^%P`^%8?___^E:____@:!4"```__[__X/$+(G86UY?7<.-0WB)5"0, -XMB40D"(M#=(D\)(E$)`3HO.#]_X7`=)B)0W3IC/[__U6)Y5=64X/L+(MU#(M> -XM-)"-1>R)1"00C47PB40D#,=$)`@!````B5PD!(M%"(D$).B+-_W_A575E.#["R+10SV0#$(BW@TBW`X#X7`````QT7@`0`` -XM`(U%\(U-[(E$)!")3"0,QT0D"`````")?"0$BT4(B00DZ-@V_?^%P`^%H``` -XM`(M5\(72=1F+10S'0$@`````@VW@`71%,?;KN)"-="8`BT7@`?`YPG='BTT, -XMC5K_B=`I\"E%X(E92(M-[(D4)(GZB5PD"(ET)`2+10CH#_W__X7`=56+5>"% -XMTG4FBT4,B7A$,<"#Q"Q;7E]=PXUT)@"+30R-6/^)04C'1>``````Z[>#QP$Q -XM]NE'____BTT,BTD$A`/A3;____KO9"#_P%T$H/O`>NR@\0LN`$```!; -XM7E]=P\=$)`@!````QT0D!`````"+30B)#"3H/@$``+@!````ZXN0D)"0D)"0 -XM58GE4X/L!(M-"(M=#(N1G````(M!+(F"@`$``(M1'`^V0EB$P'@@@\B`B$)8 -XMQT(T`@```(U#1(E%#(E-"(/$!%M=Z:E%_?_V0S$@=0\QP(-Z-`(/E<"#P`&) -XM0C2+0C2#^`%T"H/X`G3+Z(:[_/^-0T2)10R)30B#Q`1;7>GO0/W_ZPV0D)"0 -XMD)"0D)"0D)"058GEBU4(BT4,QT!(`````(M"'(!(6("+0AS'0#0"````B54( -XM7>DV0_W_D)"0D)"058GE5E.+30R+50B#Z0&#^?]T00^^`H7`>$.+-?P@"0@Y -XM\'TYBQT((0D(]D2#-@)U&^LJ#[Y"`87`>"(Y\(UV`'T;@\(!]D2#-@)T$8/I -XM`8/Y_W7?6[@!````7EW#6S'`7EW#C;8`````C;PG`````%6)Y8/L&(M%$(M5 -XM"(M-#(/X!W8"RFN:/W_QT40 -XM8`H)",=%#`(```")50C)Z9=H_?_'11!["@D(QT4,`@```(E5",GI@&C]_X/X -XM!0^5P`^VP(/``HE,)`S'1"0(E@H)"(E$)`2)%"3H7&C]_\G#B4PD#,=$)`BP -XM"@D(QT0D!`,```")%"3H/FC]_\G#C;8`````C;\`````58GE@^P8BT4(QT0D -XM"(P)"0C'1"0$`@```(D$).@/:/W_R<.-M@````"-O"<`````58GE@^P8BT4, -XMAQT0D"-@)"0C'1"0$`@```(M%"(D$).C39_W_R<.0QT0D"*P) -XM"0C'1"0$`@```(M%"(D$).BU9_W_R<.-=@!5B>6#[!B+10C'1"0(O@H)",=$ -XM)`0"````B00DZ(]G_?_)PXVV`````(V\)P````!5B>6#[#B)7?B+70R)=?R+ -XM=0B%VW1:C47TB40D$,=$)`P`````QT0D"`$```"+`XDT)(E$)`3H]3+]_X7` -XM=2.+1?2#Z`$Y0P1T)L=$)`@$"@D(QT0D!`(```")-"3H'F?]_XM=^(MU_(GL -XM7<.-="8`B30DQT0D"`,```#'1"0$`````.CH_?__BUWXBW7\B>Q=PXVT)@`` -XM``"-O"<`````58GE@^PHB5WXBUT,B77\BW4(A=MT&HU%](E$)`2)-"3HJS3] -XM_X7`=1^+`SM%]'(BQT0D"`(```#'1"0$`````(DT).B(_?__BUWXBW7\B>Q= -XMPXDT),=$)`@H"@D(QT0D!`(```#H=F;]_XM=^(MU_(GL7<.0D)"0D)"0D)"0 -XMD)!5B>575HG&4XG+@^P\B57,QT70`0```/9",0AT!HM"!(E%T(M5S(U-W(M" -XM-(E%W(M".(E%X(E,)`2)-"3HCT;__X7`#X47`0``BT7PAP[%?P@ -XM"0@/C0T!``"A""$)"/9$D#8"#X3]````C57#??`$=9"+3"+3"+??"%_P^%Y?[__P^V5>P[%?P@ -XM"0@/C>S^__^A""$)"/9$D#8"#X3<_O__Z<#^__^A""$)"&8Q__=$D#0`!0`` -XM=0Z`^5\/E<`/MOB0C70F`(U-W(E,)`2)-"3H\4+__X7`#X5Y____BUWP@_L$ -XM#X0,____A=MU/P^V3>P/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X6F```` -XM.Q7\(`D(?0^A""$)"/=$D#0`!0``=9^`^5]TFHM%T(7`#X0"____A=MU&`^V -XM5>P[%?P@"0A]+:$((0D(]D20-@)T(8U5W(E4)`2)-"3HA$7__X7`#X7L_O__ -XM@WWP!`^$@?[__X-MT`&#?=#_#X1S_O__BU7POP$```"%T@^%-/___P^V3>P/ -XMMM$[%?P@"0@/C`'___^`^5\/E<`/MOCI$____XUV`#L5_"`)"'T3H0@A"0CW -XM1)`T``4```^%6____X#Y7P^%[/[__^E-____BT7@.T$XD`^%&_[__XG(@\`T -XMB40D!(DT).A9^___N`$```#I5/[__S'`Z4W^__^%R0^%W_W__^DB_O__C70F -XM`(V\)P````!5N0$```")Y8M%"(M5#%WIO/S__XVV`````(V_`````%4QR8GE -XMBT4(BU4,7>F?_/__ZPV0D)"0D)"0D)"0D)"058GE5XG75HG&4XG+@^P\QT70 -XM`0```/9",0AT!HM"!(E%T(M'-(E%W(M7.(U%W(E5X(E$)`2)-"3H(T/__X7` -XM#X4+`0``BU7PA=)U(`^V5>P[%?P@"0@/C0$!``"A""$)"/9$D#8"#X3Q```` -XMC47P[%?P@"0A]T:$( -XM(0D(]D20-@)TQ8M%T(7`#X1+`@``C47"+1?"%P`^%\?[_ -XM_P^V5>P[%?P@"0@/C?C^__^A""$)"/9$D#8"#X3H_O__Z/___XM=\(/[`@^$$/___X7;=4(/MDWL#[;1.Q7\(`D(?0RA""$)"/9$D#8" -XM=2>+1+1="% -XMP`^$`O___X7;=1@/ME7L.Q7\(`D(?2VA""$)"/9$D#8"="&-1=R)1"0$B30D -XMZ(!"__^%P`^%Z/[__X-]\`(/A(+^__^#;=`!@WW0_P^$=/[__XM%\,=%S`$` -XM``"%P`^%+____P^V3>P/MM$[%?P@"0@/C/O^__\QP(#Y7P^5P(E%S.D,____ -XM.Q7\(`D(?1.A""$)"/=$D#0`!0``#X5:____@/E?#X7H_O__Z4S___^+1=P[ -XM1S1T&XM5X.DA_O__BT<\B5=(B4=$@\0\,FL_/__C;8`````C;\`````53')B>6+10B+ -XM50Q=Z8_\___K#9"0D)"0D)"0D)"0D)!5B>575HG&4XG+@^P\B57,QT70`0`` -XM`/9",0AT!HM"!(E%T(M5S(U-W(M"-(E%W(M".(E%X(E,)`2)-"3HGS___X7` -XM#X6;`0``BU7P@_H!#X0O`0``A=)U$`^V3>P[#?P@"0@/C`L!``"%VP^%70(` -XM`(-MT`&#?=#_#X1\````D(U=W(E<)`2)-"3H83[__X7`#X5-`0``BT7P@_@" -XM=%R%P'48#[95[#L5_"`)"'W1H0@A"0CV1)`V`G3%BT70AP/MM$[%?P@"0A]#*$((0D(]D20-@)U)(7_#X7:````.Q7\(`D(?0^A -XM""$)"/=$D#0`!0``=:.`^5]TGHM]T(7_=1B+1`[0S@/A9K]__^)V(/`-(E$)`2)-"3H -XM\O3__[@!````Z4'^__^!^D`""0@/A!G^__^!^I`#"0@/A4W]___I"/[__XUT -XM)@"-O"<`````5;D!````B>6+10B+50Q=Z1S\__^-M@````"-OP````!5,"+0S"-4P&->S3'1"00`````(E\ -XM)`@E``(``(/X`1G`]]`APHM%X(E4)`2)-"2)1"0,Z#?E_/^%P'4CBT7@QT0D -XM#`````")?"0$B30DB40D".@8Z?S_Z6G___^-=@"X`0```.E<____C;8````` -XMB4-`BT,X@_@!C5#_&<#WT"'"B5-(Z7/___^0D)"0D)!5B>564X/L,(M=#(MU -XM"(M3,(U+`8DT)(G0)0`"``"#^`$9P/?0(<'!Z@.-0SR#X@&)1"0,C4,TB50D -XM$(E$)`B)3"0$Z)CD_/^%P'0,@\0PN`$```!;7EW#BT,\`T9T@\`!*T,TB49T -XMC47TB40D$,=$)`P`````QT0D"`$```"+0T2)-"2)1"0$Z&,D_?^%P'6[BT,P -XMJ`AU*R4/_O__@\@@B4,PBT7T.4-( -XM7<.#Q#`QP%M>7<.0D)"058GEBT4,4XM="(E#/(E#1(M#-(/H`3E#/'8&B4,\ -XMB4-$BXN<````BT,\BY&,`0``C01`@^H8C03"B8&0`0``,<"#BZP$``!`6UW# -XMD(UT)@!5B>6#[#B)7?2+70R)=?B+=0B)??SV0S$(#X51`0``BT,TB47PBT7P -XM]D,Q$(E#1(M#.(E#2'1>BU,(A=)T5P^VAFP$``"#X`&)QP^%5@$``(N.9`0` -XM`(G(.=!S%XGXA,!T#(T$2<'@`@-&$(M(.(G*B4L(B50D!(DT).@Q____AQ=PP^V4P*`^BT/A+0!``!V8X#Z+@^$1`$``(#Z -XM7G5>]D,Q"`^$J@$``(M%\,=$)`@`````B30DB40D!.B-:```AQ=PXVV -XM`````(M#"/\DA1@+"0B)7"0$B30DZ%I"``"%P'2AN`,```#KS(-[$!)U++@0 -XM````C70F`.N)BT80B30D_Y!D"```N`0```#KJ(M5\+@"````A=)TCNN:N`4` -XM``#KDXVV`````%6)Y5=6B<93@^P\B%7D#[;2C5K0C7W8B4W0ZP:-="8`B<,Q -XMTHGYB?#'!"0*````Z`S___^#^`5U:`^V5>2#^G]W;/8$E=T4"0@$=&*-!)N- -XM1$+0.=ASR3'2B?F)\,<$)`H```#HU_[__X/X!74S#[9%Y(/X?W<*]@2%W10) -XM"`1UUL=$)`S_____QT0D"'`+"0C'1"0$`P```(DT).AO4_W_@\0\N`$```!; -XM7E]=PXM%T(D8@\0\,`)B46P#X0\`0``]D7D`G0)BT40QP`!````BTT(#[9]W(7) -XM#X2F`0``B?J`^B(/A.8```")^0^VT8/Z?W<.]@25W10)"`0/A8\!``"+50S' -XM`@````")^8#Y(@^$=@(``(GX/'X/APD!``")^(GZB`,/ML#!X`0%`/P("(#Z -XM1(E%M`^$'0,``(M%M(L`A<`/A,0$``")^8#Y?@^$*P,``(M%M(E#*(L`A<`/ -XMA-8$``"+1;2+0`2)1;B+0S#VQ`@/A$D"``#W1;@```0`#X4\`@``BT4(A<`/ -XMA`$&``"+?0@/MA>`^GX/A%P&```/ML+!X`2+@`C\"`C'1"0(!@```(E$)`2+ -XM1:R)!"3HM^C__S'V@\1\B?!;7E]=PXM5"(72#X0-`0``QT0D"``````Q]L=$ -XM)`0`````BTVLB0PDZ(/H___IG?[__XM-L(7)=6''1"0(O0L)"+X!````QT0D -XM!`(```"+3:R)#"3H9U']_^EQ_O__//\/A$D$``"+5:P/ML"-!$"-A`!0`0`` -XM`T(0@\`(QT0D"`0````Q]HE$)`2+?:R)/"3H&^C__^DU_O__@WVP`@^%5?__ -XM_XM]K#'VBT<0B3PD_Y!D"```Z4'____'1;`"````Z4[^__^`^3"-M"8````` -XM#X1A_O__BT6LC4L$Z,_\__^%P`^%$/___X%+,``(```QTHM]#(U-T,<'`0`` -XM`,<$)`(```"+1:SHX_O__X/X!0^$B0```(G&Z;+]___'!"0`````BT6L,=*- -XM3=#HO_O__X/X!77@@WW@"0^$N?[___9%Y`)T"8M]$,<'`0````^V1=PQTH%+ -XM,``"``"-3="(0P''!"0"````BT6LZ'_[__^#^`5UH(-]X`D/A'G^___V1>0" -XM=`F+11#'``$````/MGW`)#X3@_/__ -XM]D7D`HUV`'0)BTT0QP$!````#[9]W`^V`XGZ.-`/A8#\___IW?[__\=$)`@8 -XM#`D(QT0D!`,```"+?:PQ]HD\).AB3OW_Z9C\___W1;@```(`#X7%!0``BTVT -XM]D$&$`^$4OO__XU%\(E$)!"-1>R)1"0,QT0D"`$```"+?:R+1TR)/"2)1"0$ -XMZ,L9_?^%P`^%3/S__XM?4(M%\#G8B46@=F>+3>P/O@09A<`/B,(#``"+%?P@ -XM"0@YPHE5G`^.N0,``(L]""$)"(E]I/9$AS5`#X2)!0``C10+ZR8/OD(!A<`/ -XMB+($```[19P/C:D$``"+3:2#P@'V1($U0`^$F`0``(/#`3M=H'72QT0D"*0+ -XM"0@Q]L=$)`0"````BWVLB3PDZ()-_?_IC/K__P^V`SQ$#X0/`P``B?8/AWT! -XM```\0P^$\P(``(M%M(7`#X46^___,?;IB_O__XGZ@/HN#X3M`0``,=N#?>`) -XM#Y3#@\,$@/K_#X3Q`P``BTVL#[;"C01`C80`4`$```-!$(/`"(E<)`CI._O_ -XM_\=$)`3_````BTVLB0PDZ.X(_?_IM?O__XM-K(N!!`0``(7`#Y7`Z03^___W -XM1;@``(``=0GVQ`(/A=P```#W1;@````!#X0*_?__QP0D`````(M%K#'2C4W0 -XMZ./W__^#^`4/A0#\__^#?>`)#X39^O__]D7D`G0)BU40QP(!````#[9%W(%+ -XM,``"``"(0P'IP?S__\<$)`````"+1:PQTHU-T.B:]___@_@%#X6W^___@WW@ -XM"0^$D/K___9%Y`*-=@!T"8M5$,<"`0````^V1=PQTH%+,``"``"-3="(0P'' -XM!"0"````BT6LZ%/W__^#^`4/A7#[__^#?>`)#X1)^O__]D7D`G0)BTT0QP$! -XM````#[9]W.F#^?__BTVTBT$(Z0_Z__\\4P^$C@$``#Q9C78`#X5X_O__QD7P -XM7\8#>8U%\,=$)!`,````QT0D#`$```")1"0(QT0D!`````"+5:R)%"3HR0S] -XM_X7`#X7:^?__#[8#P>`$!0#\"`B)1;3I+/[__XM%K/:`#`0```$/A#,!``") -XMP8N`!`0``(T$0,'@`@-!$(M`.(7`#X1X^?__H6@+"0CI>OG__XM-J(7)#X1) -XM^?__BU6LBX*<````BX"``0``.T(L#X53`@``@4LP`"```,=#*%`#"0CI,?C_ -XM_\<$)`````"+1:PQTHU-T.@^]O__@_@%#X5;^O__@WW@"0^$-/G___9%Y`)T -XM"8M5$,<"`0````^V1=P/MM"#^G^(0P(/AS_[___V!)7=%`D(!`^$,?O__XM% -XMK(U+".BP]O__A<`/A?'X__^!2S``$```,=*-3=#'!"0`````BT6LZ,WU__^# -XM^`4/A>KY__^#?>`)#X3#^/__]D7D`G0)BTT0QP$!````#[9%W(A#`NG5^O__ -XMQD7P),8#8^F0_O__QD7P),8#9.F$_O__QD7P7\8#8^EX_O__BWVLBX<$!``` -XMA<`/A%#X___IT_[__Z'\(`D(B46<#[84"P^^PH7`#XC"````BST((0D(B7VD -XM.P7\(`D(#XVU````BWVD]T2'-``%```/A*0```#'1;P!````C3P9B=F#P0$[ -XM3:!S/@^V5P&(59L/OM*%TG@9.U6R)7"0$BXR)5:"+/?P@"0B)?9SIM?[__XM-J(M1,/;& -XM(`^$S````(M#,/;$"'05BT6H@,X(B5`PBT,$BU6HB4($BT,P]L0"=`H/MD,! -XMBTVHB$$!QT0D"$P```"+?:B)'"2)?"0$Z#2?_/_IFO7__\<$)`````"+1:PQ -XMTHU-T.BG\___@_@%#X7$]___@WW@"0^$G?;___9%Y`)T"8M5$,<"`0````^V -XM1=R(0P+I^?G__P^V%`L/OL+I*/[__XE$)`R-AS0!``")1"0(BXS\````BT4(BS"-18R+5A#'1"0(3````,=$)`0` -XM````B00DB948____Z%^;_/^#3;P@BUX0B[Z<````QT0D!`(```")-"3_DZ`( -XM``"%P'00N`$```"!Q/P```!;7E]=P\=$)`@!````QT0D!`````")-"3_DUP( -XM``"+AJP$``"#X/J#R`+VAB`"```!B8:L!```#X0I!P``BX88`@``C01`P>`" -XM`T80BT`XB8>T`0``]H9@`0```8E&-`^$]@8``(N&6`$``(T$0,'@`@-&$(M` -XM./:&;`0```&)1C@/A+`&``"+AF0$``"+5C2-!$#!X`(#1A"#^@&+0#B)1D2) -XM1CP/A*0&``"#Z@$YT`^'E0D``(M&-(/H`8E&0(N>G````,=&2`````#'1"0$ -XM&````(N#M`$``(/``8D$).B=F_S_A<")@XP!```/A"<*``"+CIP```"+1CR+ -XMD8P!``"-!$"#ZAB-!,*)@9`!``"+AIP```"+D(P!``"+1DR)`HN&G````(N` -XMC`$``,=`!`````"+AIP```"+@(P!``#'0`@!````@8ZL!```H````&:#C\@! -XM```%BU80QT0D"`$```"+1B"+0`B)-"2)1"0$_Y*<"```BYZ<````BT80BX@8 -XM`0``AB% -XM_W5;BX:<````C56,QT0D"$P```")5"0$!9@```")!"3HJ)O\_XN&G````(&( -XMR``````@``#V1;T$=!"+AIP```"!B,@`````"```BX:<````@:#(`````/[_ -XM_XM%O"7P`0``@_@@#X0"!```#X8Q!0``/8`````/A.D#```]``$``(VT)@`` -XM``!T$(/X0`^%(`4``,=%U`````"-1=2)1"0(BT70B30DB40D!.A(N/W_A<`/ -XMA+4#``#'1"0$`@```(DT).@``_W_A<`/A7@#``"+1A#V@%0(```$#X0H`P`` -XM@Z!4"```^\=$)`0"````B30DZ-$"_?^%P`^$^@$``,=$)`C0#`D(QT0D!`,` -XM``")-"3H$43]_XN&K`0``/;$$`^%^@$``/;$"`^%60(``(N%&/___X"X5`@` -XM``!X#?:&K`0```$/A,W]__^+50B),HM^$(M?"(U'"(U7$(F%+/___\>%*/__ -XM_P`````YPXF5%/___W5-Z9$&``"+0P2)0@2+0P0YA2S___]T?(D0BY44____ -XMB1.+1Q2)0P0[5Q`/A#@&``"+1Q2)&(E?%(.%*/___P&+7P@YG2S___\/A$D& -XM``"+@YP```"+@(P!``"%P'08B00DZ&&:_/^+@YP```#'@(P!````````BQ,Y -XME2S___]UAHM#!(E'#(M#!#F%+/___XL3=82)5PCK@8DT).@3)?W_A<"0#X6: -XM_O__BY48____QT7H`````(M"?(M`%(7`#X6+_?__C46,QT0D"$P```"-?>C' -XM1"0$`````(D$).AUEOS_BY:<````C47LB40D!(U-C(GPB7PD",<$)`````"! -XMPI@```#H6>___X/X!`^&0@(``(M-M/9!!P(/A%P#``#VAF0#```!#X1+!P`` -XMBX9<`P``C01`P>`"`T80BT`XA<`/E<"$P`^$,`,```^V18P\_P^$=0@```^V -XMP(T$0(V$`%`!```#1A"#P`C'1"0("````(E$)`2)-"3H5`W__^F__?__QT0D -XM"-D+"0C'1"0$`P```(DT).@70OW_BX:L!```]L00#X0&_O__@.3O#0````*) -XMAJP$``"+=A2+GIP```"+5A#'1"0(`0```(M&((M`"(DT)(E$)`3_DIP(``!F -XM@XO(`0```<=$)`0!````B30DZ)M$``"%P`^%&OK__XN&K`0``/;$"`^$J_W_ -XM_XUT)@"`Y/>)AJP$``"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``#I -XM>_W__XUT)@#'AI0````"````QT0D!`````")-"3H-D0``(7`#X6U^?__]T6\ -XM8`$```^$F?O__Y!F@Z/(`0``OXU&5(E$)`2)-"3HR44``.E\^___C70F`,=$ -XM)`P!````QT0D"`````#'1"0$`````(DT).@P!?W_A<`/A>?\__^+1A#V@%0( -XM```$#X37_/__Z9O\__^-=@#'1"0(H`P)",=$)`0"````B30DZ,A`_?_I:_S_ -XM_V:#B\@!``!`BU70B59,BTW4B4Y0BT6\]L1`=1VI```!``^%,0$``&:%P`^) -XM._S__SM5V`^$-`4``(U5V,=$)`P!````B50D",=$)`0G````B30DZ.LP_?^% -XMP`^$"_S__^GN^____R2%3`L)"(M6-(N&9`0``(/Z`8E&1(E&/`^%7/G__\=& -XM0`$```#I9/G__XN&6`$``.D1^?__BX88`@``Z=[X__\E``0``(E$)`C'1"0$ -XM`````(DT).C4ZOS_A<`/A6/X__^-7?")7"0$B30DZ.US``"%P`^%3/C__XM% -XM\(7`#X2(`P``BT7PBU4(B0*)-"3HNH#]_X7`#X4I^/__BW7PA?8/A&\$``"+ -XMGIP```"+1A#'1"0(`0```(M6((M2"(DT)(E4)`3_D)P(``!F@XO(`0```>EV -XM^?__A<`/A,/^__^#^!`/A-P"``"0C70F`.@?D?S_.U78#X78_O__B?;IO_[_ -XM_XU5C(E4)`2)-"3HO##__X7`#X74^O__Z?GY__^+1A#I[_K__XM5O/;&()!T -XM%XM%[(7`=!"+AIP```#'@.@````!````B=`+002I`,`!`(E%O'0,BT9,B478 -XMBT90B47`S`2)1;P/MD6,.H5`____#X3>`P``BT6TQX4<____```` -XM`#U@"PD(B85L____#X2J`P``BT6\B<*!XO`!``"H((F5(/___W0,@\H0@^+? -XMB94@____BY5H____)0_^__^)1;R+0@0E#_[__PF%0```")!"3H))+\_XN5 -XM)/___XN%,/___XF0Z````(M%O"4("```/0@(``!T48-&+`'I^?7__SM-W`^% -XMP_K__^GP]O__,<"-M@````#II_/__XN&7`,``(7`#Y7`Z;SX__^)=PCI3O[_ -XM_XE7$.DD_O__BT8$B4<4BQ;I!O[__XM%D`-%R(/H`8E%R.NAC95`____B10D -XMQT0D"$P```#'1"0$`````.B&COS_C47@,=*)1"0$C46,B00DC8U`____B?") -XM?"0(Z'+G__^#^`4/A1_]___I)OS__XM%R(DT)(E$)`3H]0?]_X7`#X5S_O__ -XM@WW(`745#[9%C#QCD`^$6?[__SPA#X11_O__QT0D"`$```#'1"0$`````(DT -XM).A:T?__Z0#5DR)1"00QT0D#`````"#Z@&)52#^`&-4/\9P/?0(<*)5/___SM-@`^&R/W__^O$ -XMD)"0D)"0D)"0D)"0D)"058GE5U93@^P\BW4(]H:O!```$(M^$(N&G````'0* -XM@\0\,*)!"3H%8W\_XDT)(E$)`B-1>*)1"0$_Y=8"```BY:<````@\,8 -XM.9J0`0``0"```@\0\,%2/___P````#WP@`` -XM`!!U&8N`G````(.X7`$```$/E\`/ML")A4C___^#XA!T.8M="(N#G````(M3 -XM0(N(C`$``(M#-#G"#X.B)1"0$BUT(B1PD_Y%P"```QT0D"`````"+@YP```"+50PKD(P!``")'"2) -XMT,'X`VG`JZJJJHE$)`2+C23_____D9`(``"-1?")1"00C47DB40D#,=$)`@` -XM````BUT,BP.)1"0$BT4(B00DZ(4"_?^+50B+30B+4CB)QHF5+/____:!%`(` -XM``$/A68$``"+70B+@PP"``"%P`^5P(3`#X1O!```BT4,BUT(BT`$QX4\____ -XM`````(F%./____:#.`(```$/A'4$``"+@S`"``"-!$#!X`(#0Q"+0#B)A4S_ -XM__^+50C'A5#___\`````]H*O!```$'51]H*8`@```0^$504``(N"D`(``(T$ -XM0,'@`@-"$(M`.(7`#Y7`A,!T'8.M+/___PB%]@^%+`0``(N=./___X7;#X2* -XM"```BY5,____B950____A?8/A20$``"+3?"%R0^$&00``(N%./___X7`#X4# -XM!0``BU4,QT(,`````,9"%`#'A3#___\`````QX4T____`````(M%$(7`=!&+ -XM50R+30B+`CM!3`^$>PD``(N=2/___\>%*/___P`````)^P^%"P,``(N5-/__ -XM_SM5\`^#?@L```N]2/___XV=9/___XU%XXF]5/___XG?QX5<____`````,>% -XM1/___P````")G1S___^)A2#___^-=@"+1>0/MA"#P`&)1>0/MLJ`^@F(E6/_ -XM__^)C4#___\/A,P$``"`O6/_____#X2M!0``BY5`____BTT(C012`<`#01`/ -XMMH!=`0``B<8QTBNU,/___P&U7/___XN-7/___SF-+/___W=4@_H!#X1.!0`` -XMBT4,B?.(6!:+A5S___\KA2S___^+70PIQHGQB$L5BX5<____.84L____<#``"+70B+30R+ -XM@YP```"+71`KB(P!``")R,'X`VG`JZJJJHD#BT4(]H"O!```"`^$5@4``(N% -XM7/___XM-%"GPB0&+10CV@)@"```!#X0F!0``B<&+@)`"``"-!$#!X`(#01"+ -XM0#B%P`^5P(3`=!J+10CV@*\$```0=0Z+C3C___^%R0^$5@,``(N%5/___X7` -XM#X4^`0``A=(/A+@#``"%]G15,=OK#8/#`<8'((/'`3GS=$0[O2#___]RZ\8' -XM`(V%9/___X/#`2N]'/___XE$)`2)?"0(BU4(C;UD____B10DBXTD_____Y%8 -XM"```Q@<@@\# -XMQP&#^?]U[8N%7/___X/``3F%+/___W82BU4(B10DBXTD_____Y%L"```.;T< -XM____#X()!@``BT7LB40D"(M%Z(E$)`2+30B)#"2+G23_____DY`(``"!Q.P` -XM```QP%M>7UW#BX$,`@``C01`P>`"`T$0BT`XA<`/E<"$P`^%D?O__XM5#(M= -XM"(M*"(/I`8F-//___P^OC2S___^)C3C____V@S@"```!#X6+^___BT4(BX`P -XM`@``B85,____Z8_[__^-4/_I7/K__XN=3/___XM%#(F=4/___X,X`0^$O/O_ -XM_XGVBU40A=)T$8M-#(M="(L!.T-,#X1P`@``"[U(____#X4N____BUT,QT,0 -XM`````,=##`````#&0Q4`QD,4`(N%./___X7`=4J%]@^$S`(``(,[`;I^```` -XM#X2^`@``BTT(C112`=*+01`/MHP070$``(V$$%@!``")1"0$B4PD"(M="(D< -XM)(N5)/____^26`@``(M-"(D,)(N=)/____^3;`@``(M%[(E$)`B+1>B)1"0$ -XMBT4(B00D_Y.0"```@<3L````,^?__@<3L```` -XM,2)G3#____V@!0"```!#X5=!```BTT(BX$,`@``A`"`T,0BT@XBX5<____,=*)SO?Q*=:Z -XM`0```"NU,/___P&U7/___^D5^___C1PW.9T@____#X;4````@+UC_____P^$ -XM0P$``(N-0/___XM="(T$28V$`%`!```#0Q"#P`B-3O^)C5C___^#P0$/A%K\ -XM__^+G3#___^)^8T4&(T<-XVT)@`````/M@*#P@&(`8/!`3G9=?&+A5C___^- -XM?#@!Z2?\__^+G2S___\IV2G.BTT,B?"(016(01:)G5S____IR/K__XN=0/__ -XM_XE<)`2+10B)!"3H/>W\_^E1^O__BX.<````BU40*XB,`0``B0/MA"#P`&) -XM1>0/MLJ`^@F)C4#___]UH8N53/___X72=:"+10CV@-`#```!#X0J`@``B<*+ -XM@,@#``"-!$#!X`(#0A"+2#B)V#'2]_&)R"G0ZXB+50R-G63___^+`HD<),=$ -XM)`@K#0D(QT0D!(````")1"0,Z/N!_/^)7"0$B40D"(M-"(D,)(N=)/____^3 -XM6`@``(N%3/___XF%4/___^DP]___@,(!#X0V`0``BY5`____BTT(C012`<`# -XM01`/MH!=`0```<,[G2S___]R'XM-""N=+/___XM).(.M//___P&)C2S___\/ -XMA#P!``"#A33___\!BY4T____.57P#X8F`0``BT7D#[80@\`!B47D#[;*@/H) -XMB8U`____=8:+A4S___^%P'6%BT4(]H#0`P```0^$%@$``(G"BX#(`P``C01` -XMP>`"`T(0BT@XB=@QTO?QB<@IT.EJ____Q@<`C9UD____*[T<____B5PD!(E\ -XM)`B+10B)!"2+E23_____DE@(``#IR?G__XG"BX`,`@``C01`P>`"`T(0BT`X -XMA<`/A:;[___IC_O__XM14#F5-/___P^'=O;__XN%-/___P.%+/___SG"#X=B -XM]O__BX4T____@\(!*<*)E2C____I9/;__XN%0/___XE$)`2+50B)%"3HR.G\ -XM_^G(_O__BX5`____B40D!(M5"(D4).BNZ?S_ZG)]?__BT4( -XMBXC(`P``Z?#^__^+10B+B,@#``#IW/W__XM%"(M`.(F%+/___XN%-/___XM= -XM#(E##,9#%/_'A3#___\`````Z8+U__^#A33___\!BYTT____BTT,B5D,QD$4 -XM`,>%,/___P````#I7/7__XM5"(N--/___SM-\(M2.(F5+/___W.D.YTX____ -XM#X0B`0``BXTT____BU4,B4H,*YTX____*=B)A3#___^(0A2#;>0!Z1/U___& -XM!P"-E63___\KO1S___^)5"0$B7PD"(M-"(V]9/___XD,)(N=)/____^36`@` -XM`(M%"(M8$.G$]___BX5`____B40D!(M5"(D4).AMZ/S_Z7/W__\/MD(5.,$/ -XMA,(```"+4A`/ML")A3#___\/MH4P____B94T____BXTT____BU4,B4H,B$(4 -XMBUT(`4WD]H,4`@```716BX,,`@``C01`P>`"`T,0BT`XA%,/___P````#I\?/__XM2$#'`QX4P____`````(/"`8F5-/___^DZ -XM____D)"0D)"0D)"0D)"0D%6)Y5.#[!2+70B+0Q"+4S2+B)`(``"+0T`YT'(# -XMC4+_B1PDQT0D"`````")1"0$_]&+0Q")'"3'1"0$`````/^0F`@``(/$%%M= -XMPY"-="8`58GE5U93B<.#[#R)5=")3S0!#X1/`0``@WW,`0^$!0$```^# -XML````(U%\(E$)`C'1"0$`0```(D<).BQ'_W_B<*+1?")5"0$B1PDB40D"/^6 -XM6`@``(.'7`$```''AU0!````````C7W4B1PD_Y9L"```QT0D!`````")'"3_ -XMEI@(``"+5="%TG0ABT70QP``````ZQ:+1=R#^`%T48/X!'1!B1PD_Y9D"``` -XMQT0D#`````#'1"0(`````(E\)`2)'"3H:>S\_X7`=,J0C70F`(/$/%M>7UW# -XM@WW,`G0KZ-%Y_/_&1>!Q@XY4"```!(-]S`%T48-]S`)UUH!]X'%UT(..5`@` -XM``3KQXU%\(E$)`C'1"0$!0```(D<).C0'OW_B<+I&O___XU%\(E$)`C'1"0$ -XM`@```(D<).BR'OW_B<+I_/[__X!]X#IUA8M%T(7`#X1Z____BT70QP`!```` -XM@\0\6UY?7<.-1?")1"0(QT0D!`0```")'"3H@"=#&+3>B)V(M5[(M=](MU^(M]_(GL7>F3_?__C78` -XMBU-`.=!V*2G*ZX60C70F`(U"_^NOBU7PBX)4`0``.T-`<\&+7?2+=?B+??R) -XM[%W#C5#_*L!```"`^$ -XM;0$``(M#$(E$)`R+0PR)1"0(BT,(B3PDB40D!/^6E`@``(L3A=)T!HM#!(E" -XM!(M#!(D0BT,,B00DZ.)\_/^)'"3HVGS\_XM>;(7;=;>+1+1<#'@%P!````````QX!8`0```````,>`5`$```````"+ -XM1>R+50R)1"0(BT7PB10DB40D!/^6D`@``#'2@\1,B=!;7E]=PX/H`71F,"7`$```````#'@E@!````````QX)4`0```````(E$)`2)/"3H -XM^A(``.EO____BTT0AL -XM!```QT0D"`(```"+1TR)/"2)1"0$Z$<<_?_ICO[__X/@_8F&5`@``(D\)/^6 -XM9`@``.EF_O__QT0D!`$```")/"3H:R<``+H!````A<`/A+C^___I#____XG! -XM*='I0/___XE]#.D+_O__,S<````B85`____B94\____BY5`____B8TX____BT`0B85$____BT4(BY*< -XM````B8U4____A<")E4C___\/CI8#``"-C7#___^-7>^)C3#___^)G33___^+ -XM70B+M3C____'1"0$"@```(E<)`B)-"3H6'7\_XF=4/___XF%5/___XN%5/__ -XM_X7`=!"+E53___\I\HF54/___XG3BXU(____B[5`____BY%8`0``BTXXC003 -XM.7UW#B[5`____BYU,____B30DB5PD!.@OWOS_ -XMB<;I"?[__XN-0/___XNU1/___XM!0(M)-(N>D`@``#G(<@.-0?^)1"0$BX5` -XM____B50D"(D$)/_3@[T\____`P^%7/W__XN50/___XN-1/___\=$)`@!```` -XMQT0D!`$```")%"3_D5P(``#I,OW__XN-0/___XN=1/___\=$)`@`````QT0D -XM!`$```")#"3_DUP(``#IX?[__XN%0/___[D"````,=+H(_C__^E*_/__BY5( -XM____BX)<`0``Z3'\__^+E4C____V@L@!```"#X0>_/__@ZI4`0```8/H`6:# -XMHL@!``#]B8)<`0``Z0'\__^+M4#___^+G43___^+1D"+BY`(```YP@^&Q0`` -XM`(/H`8E$)`2+A4#____'1"0(`````(D$)/_1BY5`____BXU$____B10D_Y%L -XM"```BYU`____BW,X@_X/=@6^#P```(N%0/___XM8$,=$)`@!````QT0D!`$` -XM``")!"3_DUP(``"+E4#___^)="0(QT0D!#$-"0B)%"3_DU@(``"+C4#____' -XM1"0(`````,=$)`0!````B0PD_Y-<"```BYU(____@X-<`0```6:#B\@!```" -XM@X-4`0```8N#7`$``.D0^___C4+^Z3;___^+A4C___^+M4#___^+E43___\% -XM6`$``(E$)`B-1?")1"0$B30D_Y)P"```Z=']__^-=@!5B>575E.#[#R+=0B+ -XM?0R+1A")1="+GIP```#'!P````"+@U@!``!F@XO(`0```87`#X5)`0``BY:L -XM!```]L(0#X40`0``]\(``!``=0V#NUP!```!#X:X`0``B=`E___O_X'B```( -XM`(F&K`0``'40BT80]H!4"```!`^$,@$``/:&K`0``!`/A;4```"+1A"#P`@Y -XM!G0'@XZL!```0/:#R`$```@/A8L```#'1"0(`0```,=$)`0`````B30DBU70 -XM_Y)<"```@::L!```[__W_X.[7`$```$/AD@!``#'1>`&````BY-<`0``N0$` -XM``"+1C0YPG)9B47LC478B4WDQX-<`0```````,>#6`$```````#'@U0!```` -XM````B40D!(DT).@&"P``,=*#Q#R)T%M>7UW#@XZL!```(.EI____9H.+R`$` -XM``3I/O___Y")P2G1ZZ&+1A#'1"0$`@```(DT)/^0H`@``+H!````A#4`$```$```#IA?[__\=$)`P!````QT0D"`````#'1"0$`````(DT).B. -XMX/S_A7UW#B?J)\.BG -XM\O__ZZ>0C70F`%6)Y5=64X/L+(MU"(M=#/:&K`0``!"+?A!T-8M5$(72#X0L -XM`0``A=N)V`^$&`$``(E4)`R)1"0(QT0D!'WI"`B)-"3HF$S^_XDT).BP2_[_ -XMC47PB40D"(U%[(E$)`2)-"3_EW`(``"+1D"+5C2+CY`(```YT'(#C4+_QT0D -XM"`````")1"0$B30D_]&)-"3_EVP(``"%V\=%X`````!T+HD<).CM'````BT7@B40D"(E<)`2)-"3_EU@(``"+51"%TG0PBT40 -XMB00DZ+5R_/^+7CB+5>")P0'"C4/^.<)W1(M%$(E,)`B)-"2)1"0$_Y=8"``` -XMBT7PB30DB40D"(M%[(E$)`3_EY`(``")-"3'1"0$`````/^7F`@``(/$+%M> -XM7UW#*UW@C4O^Z[2-="8`B47@Z73___^X3XT(".G>_O__ND^-"`CIRO[__XUT -XM)@!5B>6#[#B)=?B+=0B)7?2+11")??SVAJP$```1=3.#^`*+?A"+GIP```!T -XM-(/X`P^$JP$``(/H`0^$D@```(GVQT0D!`````")-"3_EY@(``"+7?2+=?B+ -XM??R)[%W#B?:+@V`!``"%P'36BY-<`0``@^@!B8-@`0``A=)U,87`=2V+1D"+ -XM5C2+CY`(```YT'(#C4+_QT0D"`````")1"0$B30D_]&)-"3_EVP(``"+@W`! -XM``")1"0(BX-L`0``B30DB40D!/^7D`@``.EP____BX-@`0``BXM<`0``@\`! -XMA`$``&G`0$(/``'"@?I'Z`$`#XX<_O__BT7DBU7H@[MD`0``!(F#=`$` -XM`(F3>`$```^$A0```(N'D`@``(E%W(M&0(M6-(N+:`$``#G0<@.-0O^)3"0( -XMB40D!(DT)/]5W(N39`$``(N'6`@``(U*`8'"1PT)"(F+9`$``(E4)`3'1"0( -XM`0```(DT)/_0BX>0"```B47@BU9`BTXTBX-H`0``.7UW#BTW<@Z%4"```_8M%"(D$)/^19`@``.GB_O__J!`/A.T"``"+ -XM50B+0A#'1"0$`0```(D4)/^0H`@``(7`#X37_O__Z2;___^-1?")1"0(C47L -XMB40D!(M-"(D,)(M5W/^2<`@``(-]#`$/A`$"``"+512+11"+30B`?!#_"@^4 -XMP`^VP"G"B544@WDT`0^$?`,``,=%Z`````"+5>B+10B#P@*)5>B+2#B#Z0&) -XM3>"+3=B+@5@!``"%P'0IC00"`T44.47@#X/U`@``BY%0`0``N574"`C'!"0" -XM````BT4(Z/[P__^+30R+5=B)BE`!``"+112+71"%P'4FZ8L-B?8Y^'T2]D2&-@)T"X/I`0^^0?^%P'GJB=:)\"G8*444#X7P```` -XMB<@IV(/X`7X+@'P8_RX/A`P!``")!"2+50R)V8M%".C7[___BTT(BT$0]H!4 -XM"```!'5LQT0D#`$```#'1"0(`````,=$)`0`````B0PDZ"C8_/^%P'4/BU4( -XMBT(0]H!4"```!'4YB?/IP?[__XM!$,=$)`0"````B0PD_Y"@"```@\0L6UY? -XM7<.+312Z`0```(D,)(M-$(M%".A<[___BT7PB40D"(M%[(E$)`2+30B)#"2+ -XM5=S_DI`(``#'1"0$`````(M-"(D,)(M5W/^2F`@``(/$+%M>7UW#BU44C303 -XMB?")\2G8*444#X00____*=F)#"2+50R)V8M%".CY[O__N2:Z"`BZ`0```,<$ -XM)`$```"+10CHX.[__^D$____C4'_*=CIZO[__XM-"(D,).CVW/[_A<`/A/;[ -XM___I1?S__\=$)`@!````QT0D!`$```"+10B)!"2+5=S_DEP(``"+31")3"0( -XMBT44QP0D\I@("(E$)`3H1&?\_\=$)`@`````QT0D!`$```"+50B)%"2+3=S_ -XMD5P(``#IO/O__XG1B=;I2_[__XD<).BO:?S_BT40B40D#*$0(0D(BU44QT0D -XM!$$-"0B)!"2)5"0(Z-QA_/_IK_O__XM%V+E8\0@(BY!0`0``QP0D`0```(M% -XM".@&[O__N=+4"`BZ`0```,<$)`$```"+10CH[>W__^GJ_/__QP,`````B5AL -XM@\!LB4,$Z6#[__^-1>B)1"0(QT0D!`0```")#"3H_0C]_^EO_/__D)"0D)"0 -XMD)!5B>564X/L$(M=#(MU"(M3##M3%'80ZU.+4PR#P@$Y4Q2)4PQR18N&G``` -XM`(T44L'B`P.0C`$``(/J&,9"%@#'1"0,`````,=$)`@`````B50D!(DT).BU -XMV?__ARL````B95P____BT`0B85X____BY:<````B95\____B='VAJP$```@ -XM='7'@JP!````````BX:L!```]L0!#X6/!P``A,!Y+\=$)`@"````BT9,B30D -XMB40D!.A8(@``A7UW#QT0D"`,```#'1"0$ -XM`````(DT).@H(@``A2)?"0,B40D"(E<)`2)-"3HH=?__X7`#X5Y -XM_O__@WWD_W3&BY5\____BX+$`0``A``"Z`0```(G#BT9`@_@!=`2)PM'J.=H/@OD'``"%VP^$?@```#M& -XM/'4'ZW`"`T80BT`XA<`/E<"$P`^%.@<``(N-?/___\=%Y/_____'@<0!```````` -XMBX:<````.9B0`0``#X+J"0``BP,[1DP/A=\)``"-N<`!``#K(9"+AIP```"# -XMPQ@YF)`!```/@MH&``"+`SM&3`^%SP8``(U%Y(E\)`R)1"0(B5PD!(DT).C) -XMU/__A<`/A:'[__^#?>3_=+N+E7S___^)FL0!```QTL=%B`````#K&O:&K`0` -XM`$!T#(M&0#E&1`^%?0<``+H!````BXU\____BYG$`0``A=L/A$P)``"+1E"+ -XMC7S___^)@;P!``"+1DR)@;@!``#VAI@"```!#X4=`0``BX:0`@``A<`/E<"$ -XMP'07BX5\____]H#(`0``('0(A=(/A"<#``"+18B%P'0'@XUP____`XN5_K)`^VP(T$0`'``T80#[:`70$```%%D#M]D`^"P@@``(M& -XM((M`"(/K`3G8#X-L!P``#[8#/"\/A%X'```\_W7"QT0D!/____^)-"3H%LG\ -XM_^O"BX:0`@``C01`P>`"`T80BT@XAF)5"0(B5PD!(E,)`R)-"3H&QD``(M6/(/Z -XM`8G#N`$```!T!(G0T>@YV`^'>P@``,=%J`$```"+AIP```"#^@&+@(P!``#' -XM1;`!````BT`$B46LN`$```!T!(G0T>B)1"0,BT9,B30DB40D"(U%J(E$)`3H -XMN!@``(M6/+D!````@_H!=`2)T='I.<$/AQ0)``"+5DS'1"0(`@```(E4)`2) -XM-"3H^!H``(7`#X6@^/__@XZL!```0.GX^/__QT0D"`,```#I/X__^+0@@YQP^&V/C_ -XM_XM./+L!````@_D!=`2)R]'KB?DIP3G+#X)_"@``B30DZ"(B``"%P`^%^O?_ -XM_XN&G````(N`D`$``#MX"'??Z97X__^)-"3H;,___X7`#X3)_/__C70F`.G+ -XM]___QT60`````#M&!)`/A3/]__^)-"2+593_DFP(``"+7CB#ZP'VAC0#```! -XM#X3?!@``BX8L`P``C01`P>`"`T80BT`XA<`/E<"$P`^%+0<``(M]D(/'`O:& -XMH`,```$/A)T&``"+AI@#``"-!$#!X`(#1A"+0#B%P`^5P(3`=#:+1AP/MD!8 -XM@^`$@_@!C474@]/_B40D"(N&E````(DT)(L$A9`-"0B)1"0$Z"[^_/\K7=2) -XM18PY^W9TBT64BU8TBXB0"```BT9`.=!R`XU"_XE<)`B)1"0$B30D_]'VAJ`# -XM```!#X1>!P``BX:8`P``C01`P>`"`T80BU@XA=L/E<"$P'0IBT8<]D!8!`^% -XM00H``(M%U(E$)`B+38R)-"2)3"0$BU64_Y)8"```B?;VA7#___\!#X5=`0`` -XMBX5T____A<`/A2/____^2D`@``(DT)(N->/__ -XM__^1;`@``(N&G````(-N/`&#J)`!```8BT8\.T9$=Z+'1"0(`0```(M&3(E$ -XM)`2)-"3HRQ<``(7`#X33_/__Z6[U__^+A@P"``"%P`^5P.DY^?__BXU\____ -XM#[>!R`$``(DT)(/@!(E$)`2+E7C_____DI@(``#IL?[__XN-?/___XN!P`$` -XM`(E$)`B+1>2)-"2)1"0$BY5X_____Y*0"```BU6(A=(/A'+^__^-1E2)1"0$ -XMB30DZ*8*``#I7O[__S'2QT6(`````.EY^?__C490QT0D$`````")1"0,B50D -XM",=$)`0`````B30DZ&`.``")1:`/MHZ8`@``@^$!#X6?````BY:0`@``A=(/ -XME<"$P'0*@WV@!W8$@VV@"(M[!#E]H`^'WP```(N6I`,```^VCJP#``"-!%*# -XMX0&)A6S___^$R8G0=`^+A6S____!X`(#1A"+0#@YQP^"I@,``(3)B=!T#XN% -XM;/___\'@`@-&$(M`."G'.7V@=L?VAJ\$```0#X3>`0``B7L$BX:<````BXB0 -XM`0``QT6(`````.D+]?__BY:0`@``C012P>`"`T80BT`XA<`/E<#I4/___XM> -XM/#G8#X)X^/__C;0F`````(E<)`2#PP''1"0(`````(DT)(N->/____^1D`@` -XM`(DT)(N5>/____^2;`@``#E>0'/.Z3KX__^%_XVT)@`````/A?$!``"$R0^$ -XM.0,``(T$4L'@`@-&$(M`.(7`#Y7`A,`/A!,#``"+5CB)T(E5G(/H"#E%H`^& -XMSP$``(N&I`,```^VCJP#``"-%$"#X0&)A63___^)E6C___^%R8N%9/___W0/ -XMBX5H____P>`"`T80BT`XBU6<`<>-!!@2+AIP```"#PAB+B)`!```YT7/JQT6(`0```.D'\___@XZL!```((GP -XMBY5P____Z(;Q___I]O'__XM&4#N!O`$```^$W0(``(U%X(E$)!"-1>R)1"0, -XMC47B)1"0(C47DB40D!(DT)(N5>/____^2<`@``#'2QT6(`````.EP\___BX5\ -XM____BY"\`0``.590#X-A`0``B=<#?=R)?=R+@+P!```[1>R+3E`/@S?V__^- -XM4`$IRHN-?/___XN!P`$``(/`!3G"#X<;]O__C5K_@_O_QT6`_____P^$#/__ -XM_P^V%XU'_XE%W(#Z"0^$]O7__P^VPC'_B46$ZSN+582-!%(!P`-&$`^V@%T! -XM``"#ZP$!QX/[_P^$RO[__XM%W`^V$(/H`8E%W(#Z"0^$M_7__P^VRHE-A(#" -XM`77`BTV$B30DB4PD!.@1O?S_Z\''1"0$_____XDT).C_NOS_Z6#[__^)>0C' -XM1"0(`P```,=$)`0`````B30DZ"\0``"+1DR#CJP$``!`BY:<````Z8KU__^+ -XM?9"#QP*-!#HYPP^&[_W__\=$)`@"````QT0D!+C<"`B)-"2+593_DE@(``"+ -XM1=2+39"#P`*-?`$"Z<']__^)>@C'1"0(`````,=$)`0`````B30DZ,`/``"# -XMCJP$``!`Z17N__^+1=R+C7S___^#P`$!T(E%W(M>4(NYP`$``"N9O`$``.LE -XMBX:0`@``C01`P>`"`T80BT`XA<`/E<"$P'16BT8X@^@(.?AV7X/K`8/[_W17 -XMBT7<#[80@\`!B47<@/H)#X2,]/__#[;"@,(!="R-!$`!P`-&$`^V@%T!```! -XMQ_:&F`(```%UG(N.D`(``(7)#Y7`ZZ:+1CCKJXE$)`2)-"3HP+O\_^O5BX5\ -XM____B;C``0``]H:8`@```71;BX:0`@``C01`P>`"`T80BU`XA=(/E<"$P'0[ -XMBT8X@^@(.<GD_/__58GE5U93@^P< -XMBWT(BT<0B47L]H>L!```0`^%%@$``(M8"(UP"/:'F`(```$/A#T!``"+AY`" -XM``"+5>R-!$"+1((XA<`/E<`\`1G`@^#@@\`Q.=Z)1?!U0NM;C;8`````BY.< -XM````#[>"R`$``(5%\'0B#[>2R`$``(G8@^(!@\H"Z!KK__^+AYP```!F@XC( -XM`0```8L;.?-T&SG[=/:+@ZP$``#VQ`9UZZA@=+.+DYP```#KO8M=#(7;=0WV -XMAZP$```(#X6V````N@,```")^.C+ZO__N@$```"%P'5-BU7LBUH(.?-U#NLX -XMC;8`````BQLY\W0H]H.O!````G3QB1PDQT0D"`````")?"0$Z(W5__^+&[@! -XM````.?-UV(7`=7B#CZP$```(,=*#Q!R)T%M>7UW#BU7LBUH(B=:#Q@@Y\P^$ -XMW?[__SG[=`J!BZP$``!````"BQLY\W7LBT7L]H>8`@```8M8"`^%P_[__XN' -XMD`(``(7`#Y7`ZS' -XM1"0$`````(D\)/^2F`@``#'2@X^L!```".EO____D)"0D%6)Y8M-"%/V@10" -XM```!BY&<````=&*+@0P"``"-!$#!X`(#01"+0#B%P`^5P(3`=%:+@L0!``#V -XM@9@"```!BY+``0``BU@$=%V+@9`"``"-!$#!X`(#01"+2#B%R0^5P,'@'\'X -XM'X/@"(T4$RG"BT4,B1`QP%M=PXN9#`(``(7;#Y7`A,!UJHN"Q`$``(N2P`$` -XM`(M8"(/K`0^O63CV@9@"```!=:.+@9`"``"%P`^5P.NMC;8`````C;PG```` -XM`%6)Y5=64X/L3(U%\(E$)!"-1>R)1"0,QT0D"`````"+10R)1"0$BT4(B00D -XMZ!_&_/^+=>R%]@^$A0$``(M=\(7;#X1Z`0``BU4(]H(X`@```0^%\````(M- -XM"(M%"(N),`(``(E-W/:`%`(```$/A/D```")PHN`#`(``(T$0,'@`@-"$(M` -XM.(E%V(M-"#'2,?^+11#W<3B)5/^__\Q_^G<_O__ -XM@\1,,/_#[9%XW1W -XMBU4(C01``<`#0A`/MH!=`0```<,)=&:#ZP$I3D#____BT7`"`T(0BT@XZ\R)^#'2]_''1`"`T(0BT`XB474,?^%VP^$$@$``(L[B77@QT70`````.M7@/O_#[;# -XM#X1]`0``BU4(C01``<`#0A`/MH!=`0```470C30PBT74A`" -XM`T(0BT@XBT70,=+W\8G(*=#I>____XM%"(N0D`(``(72#Y7`Z=C^__^-=@"` -XM^_\/ML,/A!"+51B%TG0)BU48B?`IV(D"@\0\B?!;7E]=PXM%"(N(R`,``.G+_O__ -XMB?`QTO?QQT70`````"G6Z6W^__^)1"0$BT4(B00DZ,ZR_/_IY_[__XG"BX#( -XM`P``C01`P>`"`T(0BT@XZ3C___^+3=B%R720BU4(BT(0#[:`-0(```'&Z7S_ -XM__^)R#'2]W7,,?\IT>G(_O__C47PBU4(B40D$(U%#(E$)`R+11#'1"0(```` -XM`(D4)(E$)`3H'<#\_XM%\(7`=1F+11B%P`^$0O___XM5&,<"`````.DT____ -XMBT4,A<")1=P/A1W]___KUXVV`````(V\)P````!5B>564X/L((M="(MU$/:# -XM%`(```$/A)@```"+@PP"``"-!$#!X`(#0Q"+0#B%P`^5P(3`=6^%]@^$A0`` -XM`(L&A7<.Z`0```(/$((G06UY=PXN##`(``(7`#Y7`Z6____^+ -XM@YP```"+50PYD*P!```/A6S___^+D+`!``#KRE6)Y5=64XG#@^PLB57@BW`0 -XM@W@T`71_C47LB40D"(U%\(E$)`2)'"3_EG`(``"+1>"%P'17,?^)'"3_EG0( -XM``"+0T"+4S2+CI`(```YT'(#C4+_QT0D"`````"#QP&)1"0$B1PD_]&)'"3_ -XMEH@(``"+1>R)1"0(BT7PB1PDB40D!/^6D`@``#M]X'6K@\0L,R)'"2)1"0(BT7PB40D!/^6D`@``(D<)/^6B`@``#M] -XMX'0WBU-`BT,TBXZ0"```.<)RJX/H`NNIQT0D"`````#'1"0$`````(D$)/^6 -XMD`@``(D<)/^6;`@``(/$+#'`6UY?7<.)]HV\)P````!5B>575E.#[`R+?0B+ -XM=0SVAQ0"```!=#B+APP"``"-!$#!X`(#1Q"+6#B%VP^5P(3`="R+!CM%$'=S -XMBW40*<:#Q`R)\%M>7UW#C;0F`````(N/#`(``(7)#Y7`A,!UU(L>.UT0=%8Y -XM71!S88MV"(/K`8/N`3E=$'?&.W44=@?KOSEU%'*ZB5PD!(/K`<=$)`@````` -XMB3PDZ&3\__\!QCE=$';=@\0,B?!;7E]=PXG&*W40@\0,6XGP7E]=PXMV"(/$ -XM#%N#[@&)\%Y?7<.)7"0$@\,!QT0D"`````")/"3H'?S__RM&"#E=$(UP`753@^P4BU4(BUT0BTT,QD,6`/:"%`(```%T-HN"#`(``(T$0,'@ -XM`@-"$(M`.(7`#Y7`A,!T*HL!@^@!B0.+002)0P0QP(,[``^4P(/$%%M=PXN" -XM#`(``(7`#Y7`A,!UUH-Y"`%T&XL!B0.+00B#Z`&)0P@QP(,[``^4P(/$%%M= -XMPXL!@^@!B0/'1"0(`````(E$)`2)%"3H0OO__XE#".NBC;8`````C;PG```` -XM`%6)Y593@^P0BU4(BUT0BW4,QD,6`/:"%`(```%T,HN"#`(``(T$0,'@`@-" -XM$(M`.(7`#Y7`A,!T)HL&@\`!B0.+1@2)0P2#Q!`QP%M>7<.0BX(,`@``A<`/ -XME<"$P'7:QT0D"`````"+!HD4)(E$)`3HN_K__SM&"'06BP:)`XM&"(/``8E# -XM"(/$$#'`6UY=PXL&QT,(`0```(/``8D#ZZ95B>575E.#[#R+?0B+=0R+71"+ -XM3SR+AYP```"%R8N`C`$``'00,=*#P@'&0!8`@\`8.<````BX*0`0``ZPV0C70F`(N7G````(G8.X*,`0``#X8-`0``C5CHB5PD -XM"(E$)`2)/"3H"?[__X7`=-6^`0```(N'G````(N`C`$``(DPBX><````BX", -XM`0``QT`$`````(N'G````(N`C`$``,=`"`$```"+AYP```"+7SR+@(P!``#K -XM`HGP@^L!#X2A````C7`8B70D"(E$)`2)/"3H3?[__X7`=-Z+AYP```"+@(P! -XM``#'``$```"+AYP```"+@(P!``#'0`0`````BX><````BX",`0``QT`(`0`` -XM`(N7G````(N"C`$``.L+C78`BY><````B=@[@I`!``!S,8U8&(E<)`B)1"0$ -XMB3PDZ-W]__^%P'39@\0\N`$```!;7E]=PX7V#X44____Z4/___^#Q#PQP%M> -XM7UW#QT7<`0```+H!````QT7@`````,=%Y`$```"+1SR#^`%T!(G"T>J-7=R) -XM5"0,B70D"(E<)`2)/"3HJ/O__XM7/+D!````@_H!=`2)T='I.<$/@ZK^__^) -XM7"0$B3PDZ*.Z_/^%P`^%<````BY"0`0``BT7")0@2+AYP```"+D)`!``"+1>2)0@CIO_W__XN'G````(N` -XMD`$``(DPBX><````BX"0`0``QT`$`````(N'G````(N8D`$``,=$)`@````` -XMB70D!(D\).BA]___B4,(Z7;]__^+3SR+EYP```#1Z8T$2<'@`P."C`$``(DP -XMQT`$`````,=`"`$```#K`HG8BY><````BXJ,`0``.L(BY><````B=@[@I`!```/ -XM@S+^__^-6!B)7"0(B40D!(D\).C>^___AF,_?__D(UT)@!5B>6#[#B+ -XM112)=?B+=1")??R+?0B)7?2#^`(/A+\```"#^`-T4H7`=4F+AYP```"+D)`! -XM``")T2N(C`$``(G(P?@#:<"KJJJJ.<8/A@4!``#'1"0(R`T)",=$)`0"```` -XMB3PDZ,?J_/^X`0```.G6````Z&P\_/^+AYP```"+D(P!``"+@)`!```IT,'X -XM`VG`JZJJJCGP-!':%]HT@?`=#1^`'PC01`C1S!@'L6``^$!@$``(L#BTT,B0&+ -XM0PR)000QP(M=](MU^(M]_(GL7<.-!':)T\'@`RG#B47@BP.)/"2)1"0$Z`^W -XM_/^%P'6[C47PB40D!(D\).B@?`=#1^(T$0,'@`RG#Z?;^__^-M@````#'1"0,`````,=$)`@````` -XMB5PD!(D\).CDL/__A<`/A-;^__^X`0```.G;_O__BX",`0``ZYF+AYP```"+ -XM@(P!``#I*?___XGVC;PG`````%6)Y593@^P0BW4(BX:<````BU9,BYB,`0`` -XMBPLYRG(@BX"0`0``.Q!W%CG*=%F)]H/#&#L3=?DYV'-0D(UT)@"#Q!"X`0`` -XM`%M>7<.-="8`QT0D#`````#'1"0(`````(E<)`2)-"3H1+#__X7`=="+0Q`[ -XM1E!S+(N&G````(/#&(N`D`$``#G87<.-M"8`````C;PG`````%6)Y5.#[!2+70B+0Q#' -XM1"0(`````,=$)`0`````B1PD_Y"0"```N@$```")V.BN]?__A<`/A88```"+ -XM2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H____B40D"(E4)`2#PAB) -XM%"3H53W\_XN#G````(N`C`$``(E$)`B#P!B)1"0$B1PDZ$+W__^%P'4NQT0D -XM#`````#'1"0(`````(N#G````(N`C`$``(D<)(E$)`3H-J___X/$%%M=PX/$ -XM%+@!````6UW#D(UT)@"+@YP```"+@(P!``")1"0(ZZ"-M"8`````C;PG```` -XM`%6)Y5.#[!2+70B+0Q#'1"0(`````,=$)`0`````B1PD_Y"0"```N@$```") -XMV.AN\___A<`/A88```"+2S2#^0$/A(H```"+@YP```"+D(P!``"-!$F-!,7H -XM____B40D"(U"&(E$)`2)%"3H93S\_XN#G````(N`D`$``(E$)`B#Z!B)1"0$ -XMB1PDZ`+W__^%P'4NQT0D#`````#'1"0(`````(N#G````(N`D`$``(D<)(E$ -XM)`3H1J[__X/$%%M=PX/$%+@!````6UW#D(UT)@"+@YP```"+@)`!``")1"0( -XMZZ"-M"8`````C;PG`````%6)Y5=64X/L/(M%"(M=$(M]#(N`G````(7;#Y3" -XMB=:)1=!U3(7_=4C'1"0$`@```(M-"(D,).@5L_S_A^@*-_S_C;8`````BT4(BY"<````Z[V0C70F`(/_`76PZ5[___^-M@````"+ -XM==!F@X[(`0``$,>&K`$```````"+10@Y>$P/A'\!``"+50B+@JP$``"I```` -XM$'5UJ!!T8HM-T#'`9H.)R`$```B#Q#Q;7E]=PXVV`````(/[`@^%-____XMU -XM"(M./(7)=`\QTH/"`8,``8/`&#G*=?.+50B+0DPYQW<&@\`!B4),BTW0,7UW#BX*<````@[A<`0```7>/BW4(C57LBT80B50D"(U5 -XM\(E4)`2)-"3_D'`(``"#^P(/A!H!``"#^P,/A&L!``"#ZP$/A??^__^+EIP` -XM``"+BHP!```[.8G+=`>#PQ@[.W7YBT4(]H`4`@```0^$M0$``(G&BX`,`@`` -XMC01`P>`"`T80BT`XA<`/E<"$P`^%B@$``(N2D`$``(U#&#G0#X=Y`0``.WL8 -XM#X5P`0``O@$```#K"XVT)@`````[.'4*@\`8@\8!.=!V\HM5"#MR/`^"C0(` -XM`(.*K`0``""+==!F@X[(`0``((MU"(M5[(M&$(E4)`B+5?")-"2)5"0$_Y"0 -XM"```,<#I\OW__V:#CL@!```!Z73^__^+=0B+3CR%R706,=*-M"8`````@\(! -XM@R@!@\`8.G_O__@^@!B4),Z9S^__^+50B+@IP```"+ -XMF(P!``"+2P2)3=0[.W0(D(/#&#L[=?G'1"0(`````(E\)`2+=0B)-"3HXN[_ -XM_SM&/(G!#X+J`@``@XZL!```((M-T&:#B<@!```@Z3S___^+=0B+EIP```"+ -XMLHP!```[/G0'@\88.SYU^8M%"/:`%`(```$/A'H!``")P8N`#`(``(T$0,'@ -XM`@-!$(M8.(7;#Y7`A,`/A`H!``")\\=%X`$```#'1=@!````BTT(BT7@.T$\ -XM`!.=AS\<=$)`@`````B7PD!(M5"(D4).@D[?__B478 -XMZ;?^__^+10B+B`P"``"%R0^5P.F,_O__BU4(BT(0B=HIRL'Z`VG2JZJJJL=$ -XM)`@`````B50D!(M-"(D,)/^0D`@``(M%"(GRZ+3M__^%P`^%(O___XM5"(T$ -XM=HT\Q0````"+@IP```"+@)`!``")'"0IV,'X`VG`JZJJJH/``2GPC01`P>`# -XMB40D"(T$'XE$)`3HGC;\_XM-"(N!G````(N0D`$``(G0*?@YV'(=@RL!@\,8 -XM.=AS]HMU"(N&G````(N0D`$``(G0*?B-6!B-0^B)WCG0`#B40D".A;-?S_BU4(BX*<````.["0`0``=Q>#!@&# -XMQAB+30B+@9P````YL)`!``!SZ8MUW(7V#X1$_/__O@$```#K#X/&`3MUW`^' -XM,?S__X/#&(D[BT74B7,(QD,6`(E#!,=$)`P`````QT0D"`````")7"0$BU4( -XMB10DZ!"G__^%P'2_Z1W]__^+30B+@9P```"+@)`!``")="0$*?#!^`-IP*NJ -XMJJJ#P`$IV(T$0,'@`XE$)`B-!%N-!,:)!"3HH#3\_XM%V(7`#X3]^O__BU4( -XMBX*<````.["0`0``#X?H^O__NP$```#K*9"-="8`.UW8#X33^O__BU4(@\88 -XMBX*<````.;"0`0``#X*[^O__@\,!B3Z)7@C&1A8`QT0D#`````#'1"0(```` -XM`(ET)`2+30B)#"3H5*;__X7`=+#I8?S__XM-"(M=X"M=V(M1$,=$)`@````` -XMBX&<````B?$KB(P!``")R,'X`VG`JZJJJHE$)`2+10B)!"3_DI`(``"+10B) -XMVNBDZO__A<`/A1+\__^+50B-!%O!X`.)1`#B40D"(M%S(DT)`'PB40D!.B-,_S_BT78A",9&%@#'1"0,`````,=$)`@`````B70D!(M-"(D, -XM).A]I?__A<`/A8O[__\[7=AUQ8MU"(N&G````(N0D`$``(G0*T7,C7`8C4;H -XMB?,YT',;B70D"(E$)`2+10B)!"3HS>W__X7`#X5+^___QT0D#`````#'1"0( -XM`````(ET)`2+50B)%"3H%J7__X7`#X4D^___BTT(@\88BX&<````BY"0`0`` -XM.=IUG^DO^?__B?/'1>``````Z6K[__^0C70F`%6)Y5=64X/L?(M]"(MU$(N' -XMG````&:#B,@!```!C47PB40D!(D\).@$]/__A<`/A7P!``"#?10'=@N-M@`` -XM``#H/R[\_P^V312P`=/@J(X/A6@!``"H<73ABX><````BUWPBY",`0``BPJ# -XM^0$/A-$#``"+1T`Y1T0/A!\$```YQ@^"NP(``(L"B46\BT($B47`BT((B47$ -XMBT(,B47(BT(0B47,BT(4B470B?CH?^G__X7`#X7W````A?9T?3';D.LKBT78 -XM@\,!BTW4.?.)1<"+1=R)3;R)1<2+1>")12)1B)1=!T4(U%U(U5 -XMO(E$)`B)5"0$B3PDZ+WK__^%P`^%I0```(-]U`%UL?:'%`(```$/A!8&``"+ -XMAPP"``"-!$#!X`(#1Q"+0#B%P'4&@WW<`76(BTW4BX><````BY",`0``B0J+ -XM1=B)0@2+1=R)0@B+1>")0@R+1>2)0A"+1>B)0A3'1"0(`P```,=$)`0````` -XMB3PDZ(_L__^%P'4KQT0D#`````#'1"0(`````(M-#(D\)(E,)`3H_.___X7` -XM#X1@`@``C70F`+@!````@\1\6UY?7<.+3?"-1=2)39R)1"0(BX><````BX"0 -XM`0``B3PDB40D!.B.Z___A<````BX"0`0``B3PDB40D!.@[ZO__A<`/A"/_ -XM___I;O[__XM%%(7`#X0Z_?__@WT4!0^$X0```(U%[(E$)`2)/"3HRO#__\=% -XMF`````"%P`^%PP```(7V='2+1SP[1T!U2.MJBX<,`@``C01`P>`"`T<0BT`X -XMAR+30R+$(D1BT`,B4$$A?8/A0(#``"#?10%#Y5%JX!]JP!T%(-] -XM%`)T#HM-#(M!!(7`#X2\`@``@\1\,_[___'1"0$`````(D\).@\<````BYB,`0``QT6P`0```.F9_O__BX><````BY"0 -XM`0``BP*)1=2+0@2)1=B+0@B)1=R+0@R)1>"+0A")1>2+0A2)1>B)^.C+X___ -XMA<`/A4/[__^%]@^$20,``#';ZU*-M"8`````BT6\.T74=!2)1"0$B3PDZ(RC -XM_/^%P`^$(@,``(M%P(/#`8M-O#GSB478BT7$B4W4B47R+30R+$(D1BT`,B4$$A?8/A!#\ -XM__\QV\=%H`````#K$X-]%`<```` -XMBX"0`0``B3PDB40D!.@WY?__A<`/A6_Y__^+AYP```"+5=2+@)`!```Y$'04 -XMB50D!(D\).C`H?S_A<`/A"H!``")/"3H<.W__X7`#X4X^?__@WT4`G6)BX>< -XM````BU6<.Y",`0``=S#'1:`!````Z7;___^%VW0IBX><````BTV<.XB,`0`` -XM#X9=____@^D8B4V<````BU6<.Y"0`0``=1OK.(UV`(/N`70P -XMBX><````BTV<.8B0`0``=!^+79R#19P8BU6`#*<.)7:SI?/O__XM% -XME(7`#X2;^?__BP.+30R)`?:'%`(```$/A&@!``"+APP"``"-!$#!X`(#1Q"+ -XM0#B%P`^5P(3`#X0Y`0``BTL$BT=4,=+W=SB-%!&)5"0(BP.)/"2)1"0$Z&37 -XM__^+50R)0@3I/?G__\=$)`P`````QT0D"`````")3"0$B3PDZ.V9__^%P`^$ -XM_/K__^FP]O__@WT4`P^$@P```(-]%`>)]@^%)/7__^E*_O__BT6@A<`/A.;X -XM__^+39R+50R+`8D"]H<4`@```0^$V@```(N'#`(``(T$0,'@`@-'$(M`.(7` -XM#Y7`A,`/A*D```"+19R+2`2+1U0QTO=W.(T4$8E4)`B+39R+`8D\)(E$)`3H -XMKM;__XM5#(E"!.E_^/__A?8/A87]__^+AYP```"+@(P!``")19SIO/W__\=$ -XM)`P`````QT0D"`````")3"0$B3PDZ!N9__^%P`^$I?W__^G>]?__QT64```` -XM`(VT)@````#IA?G__XM+"(/I`0^O3SB0Z;K^__^+MPP"``"%]@^5P.F?_O__ -XMBU6R+3P2#P`@YP0^$ -XM0`$``(GRB?LQP`%32"ES-`%!2(M!1`%Q-`%Q/#M!0`^$\0```(N1G````(T$ -XM=@%Q0(T\Q0`````!NI`!``"+0T"!B:P$```@```"*7,\*?`[0T2)0T!S`XE# -XM1(N#G````"FXD`$``#'`@8NL!```(````NLEQT0D#`$```#'1"0(+`X)",=$ -XM)`0"````B3PDZ*_/_/^X`0```(M=](MU^(M]_(GL7<,QP.OO*=:-M"8````` -XMBU7LBQ^#P@@YTW0(C48!.4-`)\(G[]]@QTNFN_O__D(VT)@````!5B>57 -XM5E.#[`R%THE5\(M`$'1_BW`0C7@0.?=T?XGSZP:+&SG?="^+0R"+5?"+0`B) -XM5"0$B00DZ`@C_/^%P'7A@\0,B=A;7E]=PXVV`````(LV.?=T1HM&((M8",=$ -XM)`0O````B1PDZ&@A_/^%P'0#C5@!BT7PB1PDB40D!.C"(OS_A+ -XM1TR)0A"+1U"+5R")0A2+1R!F@T@8`8N'G````(&/K`0````0``"+EIP```") -XM=Q2+@+0!``")@K0!``"+1SB)1CB+1S2)1C2+1TB)1DB+1D0[1D`/A#,!``#V -XMAFP$```!#X7[````BX9D!```BU=`B48\.=")1D0/A@G````-'HB8:$````QT0D!!@```"+@[0!``"#P`&)!"3H/2+\_X7` -XMB8.,`0``#X3@````BXZ<````BT8\BY&,`0``C01`@^H8C03"B8&0`0``QT0D -XM"`$```"+1DR)-"2)1"0$Z$;>__^Z`0```(7`=5F+3?"+%H/!$#G*#X3/```` -XMBT8$B4($BT8$.<$/A+,```")$(L'B7X$B0:+1?"+%X/`"#G"#X2/````B7($ -XMBX:<````,=*)-V:#B,@!```!@8ZL!```0````H/$'(G06UY?7<.+AF0$``"+ -XM5T"-!$#!X`(#1A"+0#@YT(E&/(E&1`^'^?[__XM&0.GW_O__BT8T@^@!B49$ -XMB49`B48\Z>O^__^)-"3'1"0(`````,=$)`0%````Z$/,_/^#Q!RZ`0```%N) -XMT%Y?7<.+5?")<@SI:?___XM%\(E0$.E$____BU7PBT8$B4(4BQ;I)____XVT -XM)@````"-O"<`````58GE5U93@^P%]@^$KP```(M&1#M&0`^$R0```(M&-(N6G````(/H`8E&0-'HB8:$ -XM````BT8\BXJ0`0``C01`P>`#`X*,`0``BQ&-6.B)4.B+002)0P2+00B)0PB+ -XM00R)0PR+01")0Q"+012)0Q2+CIP```"+1CR+D8P!``"-!$"#ZAB-!,*)@9`! -XM``"#??`!=#>#??`"=`7HS!S\_\=$)`@`````QT0D!`````")-"3H0-S__X&. -XMK`0```````*#Q!PQP%M>7UW#QT0D"`,```#'1"0$`````(DT).@4W/__Z]*) -XM]HM&-(/H`8E&1(E&/.DF____BQDQ]CG:#X0`____BT%(B=Z)0TB+030!0S3' -XM1?`"````Z>;^__^)]HV\)P````!5B>564X/L((M="(U%](MS$(E$)`2)'"3H -XM<_[__[H!````A`C`$```````"+1?2!BZP$````$```B4,4@\0@B=!;7EW# -XMBT,$B48,BT,$BQ,YP768D(E6"(U6$(D3BT84B4,$.U80=9:)7A#KEL=$)`A8 -XM#@D(QT0D!`,```")'"3HL,G\_[H!````Z[")]HV\)P````!5B>575E.#[#R+ -XM=0B+?0R+1A")1>"#?C0#=RW'1"0,`P```,=$)`B0#@D(QT0D!`,```")-"3H -XM9@2)/C';BT8TN@$```"# -XM^`%T`XU0_XM/-(E60+H!````@_D!=`.-4?^)5T"+5=PY5=@/A.(!``"%VW0# -XM*4X\BT9`.48\=@.)1CPY1D1V`XE&1/:&;`0```$/A=X```"+AF0$``")1SR) -XM1T2+1T`Y1SQV`XE'/#M'1',#B4=$@WXT`8N.G`````^$?`$``(N1C`$``(M& -XM/(/J&(T$0(T$PHF!D`$``(N/G````(-_-`$/A$@!``"+D8P!``"+1SR#ZAB- -XM!$"-!,*)@9`!``"+1D#1Z(7`B8:$````=0K'AH0````!````BT=`T>B%P(F' -XMA````'4*QX>$`````0```(N'K`0``(N6K`0```T@```"@^(/"=")AZP$``"# -XMQ#PQP%M>7UW#C70F`(/[!@^&"_[__[L&````Z0'^__^+AF0$``"-!$#!X`(# -XM1A"+0#CI$?___XVV`````(U%\(E$)`2)-"3H8=[__S'2A-(M/ -XM-(E'2(M&!`%.2(E'!(M%X(M6!(/`"#G"#X3<````B3J+AIP```"[`0```(E^ -XM!(N0C`$``(M&0(D4)"G(C01`P>`#B40D"(T$28T$PHE$)`3H51S\_^D(_O__ -XMBX&,`0``Z;_^__^0BX&,`0``Z8O^__^0C70F`(/X`;H!````=`.-4/_VAFP$ -XM```!B58\B59$=#R+AF0$``"-!$#!X`(#1A"+0#B)1SR)1T2-0?\Y1SP/AB3^ -XM__^#Z0%T.(E'/.D4_O__BU7@B7H,Z9#]__^+AF0$``#KSL=$)`@`````QT0D -XM!`4```")-"3HV,7\_^G@_/__N`$```#KP8M%X(EX"(M/-(UV`.D5____C70F -XM`(V\)P````!5B>575E.#["R+112+=0B+?1"%P(M>$'1KB?J)\.BN]O__BU4, -XMB47PBT7PA<")`G1[BWT4A?\/A:4```"+%HU+"#G*#X0&`0``BT8$B4($BT8$ -XM.<$/A!D!``")$(U3$(D6BT,4B48$.U,0#X3[````BT,4B3")SW]HG!,<#K$XUV`#M]['9/,2)1=2+1="+5=2%R70']]B#T@#WVH/$,%Y?7<.%]G4+N`$````QTO?VB<&+ -XM1>R)^O?QB<:+1?#W\8G!B?#KO`^]QX/P'XE%Z'5$.7WL=P4Y=?!RG+D!```` -XM,<#KGO==V(-5W`#W7=R%_\=%Y/____\/B4O___^0C70F`(GPB?KWV(/2`/?: -XM]U7DZ3/___^X(````(GR*T7HB<'3Z@^V3>B)1?2)^(G7BU7LT^`)QXM%\-/F -XM#[9-]-/H#[9-Z-/B#[9-]`G0BU7LB47,T^KW]XE5S(G']^8Y5'`@)````'5S86=E.B!E>"!;+65&4G)3F5= -XM(%MF:6QE("XN+ET*`````$5R7!E"@!L -XM:6YE]!`B`O00(Y;D$"*Z]!`AS -XM;7-O`')MC0@(`````&"<"`AHC0@(:XT( -XM"`````"#C0@(+_8("(F-"`@`````EHT("!+V"`B&ET('=I;&P@9&ES8V%R -XM9"!M;V1I9FEC871I;VYS`````#(V-'Q&:6QE(&UO9&EF:65D('-I;F-E(&QA -XM2!T:&%N('1H:7,@8V]P>0``,C4X?"5S -XM(&5X<&%N9&5D(&EN=&\@=&]O(&UA;GD@9FEL92!N86UE6]U`#(T,'PE -XMF4@979E;G0`,C@W?%5N97AP96-T960@=W)I=&4@979E;G0` -XM``"S"P4(]`L%",$,!0BS"P4(APP%"*0,!0@9#`4(LPL%"+,+!0@S#`4(30P% -XM"&H,!0C""P4(610%"&41!0B"$04(@A$%"%D4!0A9%`4(@A$%"$T4!0@P,3(S -XM-#4V-P`P,3(S-#4V-S@Y86)C9&5F````,#`X?$5R"]V:3H@`"5S)2XJ2!O;F4@=&%G(&9I;&4@;6%Y(&)E('-P96-I9FEE9"X`+7,@ -XM;W!T:6]N(&ES(&]N;'D@87!P;&EC86)L92!T;R!E>"X`@#,%"'$S!0CO,04( -XM[S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04(8C,%"%,S!0CO -XM,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q!0CO,04([S$%".\Q -XM!0CO,04([S$%".\Q!0@O,P4([S$%"!PS!0CO,04([S$%".\Q!0CO,04([S$% -XM".\Q!0@-,P4([S$%".\Q!0CO,04([S$%".\Q!0CZ,@4(\#(%",DR!0CO,04( -XMMC(%"*LR!0@P,3=\36%R:R`E&ES=',`,C8X?&-O;F9I2!K97D@=&\@8V]N=&EN=64Z(``R-S!\4')E2!T;R!C;VYT:6YU92!;.B!T;R!E;G1E2!K97D@=&\@8V]N=&EN=64@6W$@=&\@<75I=%TZ -XM(``P,S!\5&AE(&9I;&4@)7,@:7,@;F]T(&$@;65S3TEULJ/R1@)R)<`'-H:69T=VED=&@].`!S:61EA"`@``````P````````##]0@(`(4%"`(````(````+:$("``` -XM`````````````*>\"`@``````P`````````UH0@(````````````````0J$( -XM"``````"`````````$VA"`@```````````````">V@@(```````````````` -XM6*$("'"%!0@``````````&&A"`@``````P````````!GH0@(``````$````` -XM````;:$("````````````````'>A"`@``````@````````"`H0@(<(4%"``` -XM````````B*$("'"%!0@``````````).A"`@``````@````````";H0@(L'\% -XM"```````````7(P(".""!0@"````"````*6A"`BP@@4(``````@```!8O`@( -XML'\%"```````````L=X("``````!`````````*JA"`@``````0````````"P -XMH0@(``````(`````````NJ$("``````!`````````+^A"`@``````````!`` -XM``#(H0@($(8%"`,`````````SZ$("."%!0@#`````````-,$"0BP?P4(```` -XM``````#7H0@(X(4%"```````````T+D("``````!`````````-VA"`@````` -XM`0````````#FH0@(<((%"`,`````````(J$("``````#`````````-&A"`C@ -XMA04(`P````````#QH0@(``````$`````````AIL("(!_!0@``````@```/BA -XM"`@``````P````````#_H0@(````````````````!J(("``````!```````` -XM``RB"`@``````@`````````3H@@(````````````````8*(("``````"```` -XM`````!FB"`@````````````````DH@@(,((%"`,`````````+:(("``````` -XM````(````(3="`@``````P`````````TH@@(``````,`````````/J(("``` -XM```"````0````$FB"`@```````````````!3H@@(````````````````7*(( -XM"``````"````0````&>B"`@```````````````!PH@@(```````````0```` -XM>J(("+!_!0@"````0````(*B"`@``````@````````!@P0@(``````,````` -XM````,(L("``````#````"0```(RB"`@```````````````"2H@@(```````` -XM````````FJ(("``````!`````````**B"`BP@04(``````````"LH@@(```` -XM````````````M*(("-"`!0@"````#````+JB"`A`@04(`@````P```"_H@@( -XM8(`%"`(````,````Q:(("``````!`````````,JB"`C0?P4(`@````````#1 -XMH@@(````````````````W*(("``````"`````````.2B"`@``````@`````` -XM``#OH@@(``````$`````````^*(("``````````````````````````````` -XM```````!HP@(`0````FB"`@"`````Z(("`,````$HP@(!0````>C"`@(```` -XM^Z$("`H````*HP@(#0```!V<"`@+````^)@("`X````-HP@($@```).-"`@3 -XM````K:$("!4````0HP@(&````!.C"`@?````':,(""(````@HP@()0```"2C -XM"`@F````,:((""P```"TL0@(*@```"FC"`@P````+:,("#(```!>H`@(-``` -XM`#*C"`@Z````-Z,("#<````ZHP@(.````#ZC"`@V````/<$("#X```!!HP@( -XM/0```$2C"`A"````1Z,("#P```!?BP@(/P```$JC"`@_````&O<("$D```!2 -XMHP@(3@```%6C"`A)````6*,("$L```!;HP@(3````+^_"`A-```````````` -XM```P-#E\5&AE('-E8W1I;VX@;W!T:6]N(&UU2!0A8+79I+7)E8V]V97(M9FEL93H@`%@M=FDM -XM2!F:6QE`````$9R;VTZ(')O -XM;W0@*$YV:2!R96-O=F5R>2!P2X@```E2`O(&]R -XM(#\`!"$C)BH\/3Y`?@`P.#!\56YK;F]W;B!C;VUM86YD(&YA;64`,6)C83$` -XM,#DX?%1H92`E2!N -XM;W0@8F4@>F5R;P!L<@`P.#9\57-A9V4Z("5S`'-C2`E;'4@;&EN97,@:6X@=&AE(&9I;&4`,3`S -XM?$EL;&5G86P@861D"!M;V1E -XM`````#`X-'PE"!T86)L92!E"!C;VUM86YD(&9A:6QE9#H@<&5N9&EN9R!C;VUM86YDP@4(N,(%"%W'!0A\Q`4(?,0%"`7'!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0BOQ@4(_<<%")['!0B>QP4(GL<%")[' -XM!0B>QP4(GL<%")['!0B>QP4(GL<%")['!0A\Q`4(?,0%"'S$!0A\Q`4(?,0% -XM"-W%!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4( -XM?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\ -XMQ`4(?,0%"'S$!0A\Q`4(?,0%"'S$!0A\Q`4(9\8%".O+!0CLR@4([,H%".S* -XM!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H% -XM".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(Z\L%".S*!0CLR@4( -XM[,H%".S*!0CXRP4([,H%".S*!0CLR@4([,H%".S*!0CLR@4(FLL%".S*!0CL -XMR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S*!0CLR@4([,H%".S* -XM!0CLR@4(H\L%".3>!0B#W@4(@]X%"-C$%"-C&-E<'0@870@=&AE(&5N9``R-S-\16YT97)I;F<@ -XM97@@:6YP=70@;6]D92X`,3$T?$YO(&9I;&4@;&ES="!T;R!D:7-P;&%Y`"5S -XM)7,E'!A;G-I;VX@9F%I -XM;&5D`"$E3H@)7,`&5C=71E(&$@8G5F9F5R`#P`2!L:6YE(&YU;6)E<@!S -XM:&EF="!L:6YE5T`8V]P>0!C'5S86=E`%ME>'5=')C -XM(&9I;&4`(69.`%ML:6YE72!O6W!E;ET@6R]212]=(%MF;&%G2!L:6YEF4@6RLM -XM77)O=W,`5T@;&EN92!;9FQA9W-= -XM``!C;W!Y(&QI;F5S(&5L2!B6W5F9F5R2!S970I(&9I;&4@;F%M -XM90``8G)I;F<@82!B86-K9W)O=6YD960@72!;=VEN -XM9&]W7W-I>F5=(%MF;&%G2!D:69F97)E;G0@,,( -XM")S#"`C3O`@(T$,&"`````#:O`@(W;P(",##"`@1"PD(L$8&"$(```!ZL0@( -XM[,,("/6\"`C.V`@(X$@&"`````#+P0@(),0("%S$"`@E!`D(D$L&"``!``!^ -XMO`@($+T(""N]"`CXF`@(D$L&"``!``!^O`@(1KT(""N]"`A=O0@(8!$'"``` -XM``#;OP@(9;T("(S$"`B;T("+#$"`B'O0@(L)$& -XM"``%``!^O`@(BKT("-C$"`B7O0@(P%X&"`0```#:O`@(",4("#S%"`B>O0@( -XM\!`'"`````!/C0@(H[T("*J]"`C!O0@(``(&"#$```#5V@@(R+T("-N]"`CV -XMO0@(4&@&"$(```#[O0@(<,4("`"^"`@2]@@(X'$&"`$```#+P0@('KX(""N^ -XM"`A8O`@(T(4&"((```#\O0@(G,4(",#%"`B#E`@(('4&"$(````O]@@(0+X( -XM".C%"`C3]`@(X'$&"`$```#+P0@(6[X(""N^"`@(H@@(`&\&"`````!MO@@( -XM<+X("`S&"`B&O@@(<'(&"`````"-O@@(DKX("*&^"`C)P`@(T`8&"``!``"T -XMO@@(.,8("%C&"`C3!`D(<(4&"((```#\O0@(A,8("*C&"`C0N0@(L'H&"`$` -XM``#;O`@(N+X(",C&"`C1H0@(((4&"((```#\O0@([,8("-6^"`CCO@@(P"H' -XM"#0"``#;O`@(Z+X("!#'"`CSO@@(P"H'"#0"``#;O`@(^KX("#S'"`@'OP@( -XMX'L&"`````!/C0@($+\("'3'"`@;OP@(H`4&"``!``#5V@@()+\(")S'"`AV -XMO`@(,(8&"'$```#_]`@(-;\("-#'"`A+OP@(T(8&"`````#5V@@(4+\("%J_ -XM"`@$V0@(L(D&"#$```#;O`@(9;\("/#'"`@KH`@(,'L&"`````"-O@@(@[\( -XM")._"`BHOP@(,)$&"``$``"OOP@(LK\(""#("`C"OP@(T`0&"`````#5V@@( -XMR;\("$3("`C5OP@(T`4'"``!``#:OP@(W[\("'3("`C;O`@(,-X&"`(```#; -XMO`@(F,@("-3("`C(L0@(\)P&"``"``!]O`@(];\("`C`"`B1F@@(L*4&"``` -XM```@P`@(^,@("#C)"`B$W0@(4*L&"``"``!/C0@((\`("&C)"`@KP`@(8+(& -XM"`````".O@@(,L`("$#`"`A]H@@(X+,&"``"``#5V@@(6\`("&7`"`A^P`@( -XMX+,&"``"``#5V@@(AL`("&7`"`C-H0@(@'D&"$(````9C0@(D\`(")S#"`@] -XMP0@(,/8&"``!``#:OP@(L<`("'3("`C&P`@(4/4&"`````#5V@@(SL`("-O` -XM"`CPP`@($.\&"`````#:OP@(]\`("(C)"`@3P0@(L0@(<-P&"`(```#;O`@( -XM7,P("(3,"`@```````````````````````````````!.;R!C0!A9&0`8W-C;W!E -XM+F]U=`!C&5C(&-S8V]P92`M9&P@+68@)7,`````,S$R?"5D.B!N;R!S=6-H(&-S -XM8V]P92!S97-S:6]N```E2!C7!E.B!U2!Y;W4@;W(@2!Y;W4````Q,S!\)7,Z(&YO="!S;W5R8V5D.B!W2!M87!P960`,3,T -XM?%1H92`E2!B92!R96%D```Q-#9\)7,Z(')E860@;&]C -XM:R!W87,@=6YA=F%I;&%B;&4````Q-#E\3F\@8F%C:V=R;W5N9"!S8W)E96YS -XM('1O(&1I&5C=71E`'!Q&ET960`0V]N=&EN=65D`$5- -XM5"!T'!IF4@;&EM:70@97AC965D960````````` -XM```````&````G]X("`X```"JW@@("@```+;>"`@4````P-X("!,```#-W@@( -XM!P```-?>"`@(````X-X("`$```#YW@@(!`````#?"`@=````%-\("`(````H -XMWP@(%P```#+?"`@&````/]\("`D```!(WP@(#0```$_?"`@;````6]\("`,` -XM``!SWP@("P```'C?"`@1````B]\("`P```">WP@(#P```*[?"`@%````N=\( -XM"!(```#(WP@(%0```-+?"`@6````YM\("!````#[WP@('@```!#@"`@?```` -XM)N`("!H````\X`@('````%+@"`@8````9N`("!D```!]X`@(,34R?'-H:69T -XM=VED=&@@;W!T:6]N('-E="!T;R`P`%)%(&5R+EM=)"H`,34S?$-O=6YT(&]V97)F;&]W`#$U-'Q#;W5N="!U;F1E -XM2!N -XM;W0@8F4@8V]M8FEN960@=VET:"!T:&4@8R!F;&%G(&EN('9I(&UO9&4`PL(& -XM"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@C" -XMP@8(/<(&"#W"!@CXQ@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&".G& -XM!@@]P@8(VL8&"#W"!@@]P@8(6,8&"%C&!@A8Q@8(6,8&"%C&!@A8Q@8(6,8& -XM"%C&!@A8Q@8(6,8&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8( -XM/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@] -XMP@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W" -XM!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(/<(&"#W"!@@]P@8(+\8& -XM"#W"!@@]P@8(/<(&"!S&!@@]P@8(/<(&"#W"!@@]P@8(#<8&"#W"!@@]P@8( -XM/<(&"/[%!@@]P@8(FL(&"+_5!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5!@BCU08(H]4&"*/5 -XM!@BCU08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@B-U08(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(&]8&"+K.!@BZS@8( -XMNLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(!=8&"+K.!@BZS@8(NLX&"+K.!@BZ -XMS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@BZS@8(NLX&"(W5 -XM!@BZS@8(NLX&"+K.!@BZS@8(NLX&"+K.!@@QU@8(NLX&"+K.!@BZS@8(NLX& -XM"+K.!@BZS@8(NLX&"+K.!@COU08(,38T?"5S.B!T:&4@=&%G)W,@;&EN92!N -XM=6UB97(@:7,@<&%S="!T:&4@96YD(&]F('1H92!F:6QE````,38V?"5S.B!S -XM96%R8V@@<&%T=&5R;B!N;W0@9F]U;F0`````,34Y?$QE2!A="!T:&4@;&%S -XM="!T86<@;V8@=&AI'5S86=E -XM(%MC;61=/$-2/B(*````1F]R(&$@=FD@:V5Y('5S86=E('-T871E;65N="!E -XM;G1E5T\0U(^(@H`````5&AE("5S(&ME>2!H87,@ -XM;F\@8W5R&ET+"!E;G1E0`Q-S1\57-A9V4Z("5S -XM`#$T-'PE2!F:6QE(&YA;65S```` -XM,C@S?%1H92`E"!T97)M:6YA;"!I -XM;G1E"!T97)M:6YA;"!I;G1E2!O9B!#86QI9F]R;FEA+"!" -XM97)K96QE>2X````Q-S5\5&AE('9IB5C`#(U -XM,WQ72!S8W)E96YS`%Y#`%MC;W5N=%U>1`!;8V]U;G1=7D4`7D4@2!C:&%R86-T97)S`%MC;W5N=%U>2@!>2B!M;W9E(&1O=VX@8GD@;&EN97,` -XM7DP`7DP@2!L:6YE2!L:6YE -XM4@!>4B!R961R87<@5@!>5B!I;G!U="!A(&QI -XM=&5R86P@8VAA"!M;V1E`%Y=`%Y= -XM('1A9R!P=7-H(&-U`%Y>('-W:71C:"!T;R!P&ET`%M;`%M;(&UO=F4@8F%C:R!S96-T:6]N`%U=(&UO=F4@ -XM9F]R=V%R9"!S96-T:6]N`"!>(&UO=F4@=&\@9FER2!C;VQU;6YS`&U;82UZ70`@;2!S970@;6%R:P`@;B!R97!E870@ -XM;&%S="!S96%R8V@`6V-O=6YT76\`(&\@87!P96YD(&%F=&5R(&QI;F4`6V)U -XM9F9EB!R97!O02!S96%R8V@@9F]R=V%R9"!F;W(@8W5R -XM0R!I;G1E2!L:6YE2!L:6YE2!L -XM:6YE2!T -XM97AT('1O(&UO=&EO;B!I;G1O(&$@8W5T(&)U9F9E<@````!;;&EN95UZ6W=I -XM;F1O=U]S:7IE75LM?"Y\*WQ>?#Q#4CY=```````````````````````````` -XM````````````H(,'"")`5`"H[0@(!/@(")![!P@@``0`LNT("+SM"`@````` -XM`````-3M"`@H^`@(<'T'""``!`#7[0@(8/@("-!Z!P@```0`X>T(".OM"`B` -XM?`<((``$``/N"`@-[@@(0)4'"``````G[@@(*NX("&!>!P@@`$0`.>X("$/N -XM"`@`````````````````````,'X'"!@`1`!>[@@(:.X("``````````````` -XM````````<@<(`````'[N"`B![@@(P'X'"$@`1`"2[@@(D/@("#!^!P@8`$0` -XMG.X("*;N"`@`````````````````````$'\'"!@`1`"\[@@(QNX("``````` -XM````````````````<@<(`````-KN"`C=[@@(`````````````````````!`] -XM!P@@0```[NX("/'N"`C0?0<((``$`/SN"`@&[P@(```````````B[P@()>\( -XM"-!Y!P@`````0N\("$7O"`@`````````````````````,'L'"```!`!<[P@( -XM9N\("*!!!P@````">N\("'WO"`@``````````(_O"`B\^`@(D$0'"`````"; -XM[P@(GN\("(!`!P@@0!``M.\("+?O"`B@0P<(`````,_O"`C2[P@(```````` -XM`````````````*!X!P@@`$0`[>\("/3X"`BP/@<((``L`ACY"`@\^0@(```` -XM`````````````````*!%!P@@``X`^.\("`?P"`A@=P<(@`!$`"7P"`@O\`@( -XMH&0'"")`1`!&\`@(2/`(""!#!P@`````/+L("%GP"`@P9`<(*`!#`'#P"`AD -XM^0@($)('"")`1`!X\`@(@?`("-".!P@B0$0`E_`("*#P"`@````````````` -XM````````,'X'"$@`1`"Y\`@(C/D("%`T!P@@`$0`PO`("+CY"`@0?P<(2`!$ -XM`,OP"`C<^0@(``````````!!\0@(U/`("/")!P@B@$``[_`("/WP"`@`7@<( -XM(`!``+BB"`@/\0@(```````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM````````````````````````````,#H'"``````J\0@(0_$("``U!P@@`$0` -XM4?$("`CZ"`B@0@<((``L`%KQ"`AP\0@(`````````````````````"!"!P@@ -XM`"P`CO$(""SZ"`@0B@<((H!``*3Q"`BR\0@(T"X'""``!`'%\0@(S?$("/!6 -XM!P@@``P`W_$(".CQ"`APZ0<((`!$`/[Q"`@'\@@(```````````<\@@(+?(( -XM"```````````1O(("%#R"`CP[`<((`!$`&GR"`AR\@@(4#$'""``1@",\@@( -XM3/H("%"`!PA(`$4`G_(("*CR"`@`@`<("`%%`+CR"`AT^@@(<%8'""``#`#! -XM\@@(G/H("'`]!P@@``P`RO(("-/R"`@`````````````````````8'\'"`@! -XM10#A\@@(ZO(("+!_!P@(`44`<(L("`/S"`B`A0<((H!``/:B"`@<\P@(X%T' -XM""``#``S\P@(//,("`!Q!P@@`(P`4?,("+SZ"`B01`<(`````%OS"`A=\P@( -XMX%,'""``#`!R\P@(>_,("```````````D?,("*+S"`A0,@<((`!&`,#S"`C@ -XM^@@(T.('""`````$[P@(T_,("```````````````````````\0<((`!$`._S -XM"`CX\P@((/$'""``C``0]`@(#/L("```````````(?0("#+T"`@@]P<(```` -XM`#_T"`A"]`@(,(H'""!`1`!8]`@(6_0("```````````````````````C`<( -XM($!$`(H&"0AP]`@(\%\'""``1``!P@@`$0` -XMJO4("+/U"`C`5`<((``,`,OU"`C4]0@(,'X'"!@`1`#L]0@(]?4("!!_!P@8 -XM`$0`"_8("!3V"`B@>`<((`!$`"CV"`@Q]@@(<&0'"````@!*]@@(4?8("%"% -XM!P@B@$``]J(("%WV"`C`70<((``,`'/V"`A\]@@(`'`'""``C`"1]@@(5/L( -XM"``````````````````````@<@<((``,`)OV"`BN]@@(8%('""``C`##]@@( -XMU/8(",`S!P@@`$8`[/8("'C["`A`X@<((````/R6"`C_]@@(```````````` -XM`````````.#P!P@@`$0`$_<("!SW"`@0\@<((`",`#'W"`A"]P@(0/,'""`` -XMK`!6]P@(I/L("&#T!PA```4`T/L("'3W"`@P:0<((D!$`(WW"`B6]P@(X%X' -XM""``1`"M]P@(MO<(",!K!P@B0$0`R/<("-'W"`@0X0<((``,`.OW"`CT]P@( -XM,S`W?$YO(&5X(&-O;6UA;F0@=&\@97AE8W5T90`Q.#!\3F\@<')E=FEO=7,@ -XM9FEL92!T;R!E9&ET````,C`W?%1H92!1(&-O;6UA;F0@/!P@HCP<(*(\'""B/!P@HCP<(=X\'""B/!PAWCP<(*(\'""B/ -XM!P@HCP<(*(\'"(*/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\' -XM""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(@H\'""B/!P@HCP<( -XM*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@H -XMCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/!P@HCP<(*(\'""B/ -XM!P@HCP<(*(\'""B/!P@HCP<(=X\'"#$Y-'Q.;R!M;W)E(&-H87)A8W1E\!PBJNP<(;ZP'"("[!PAOK`<(;ZP'"+^^!PA6O@<(;ZP'"$*_!PB_O@<( -XM/;X'"#V^!PAOK`<($[X'"(B]!PA@O0<(,KP'"%6[!PCYM`<(G+H'"(6Z!PB% -XMN@<(#K4'"/FT!PAIN@<(^;0'"/FT!PCYM`<(^;0'"$FZ!P@R,#%\0G5F9F5R -XM2!I;B!T:&4@9FER,'"#(P-GQ.;R!C:&%R86-T97)S('1O(&1E;&5T90#O]P<(,?@'""KX!P@J -XM^`<(0O@'"%7X!P@:^`<([_<'"._W!PCO]P<([_<'"/OW!PA5^`<($`@(""@( -XM"`@E#0@(YP0("$$-"`APX`<((``L`.D+"0C_"PD(,C,U?$YU;6)E2!I;B!C;VUM86YD(&UO9&4` -XM,C,V?$EN=&5R7,@9&ES8V%R9&5D`````#(S,7Q);G1E7,@9&ES8V%R9&5D```E9"!S8W)E96YS(&)A8VMG6]U'`@)````1L#.Z0!```!````]'C__\`!```````````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````````````````````$^-"`@`````+!()"``````` -XM`````````````````````0```%P````"````7@````,````$````!````!(` -XM```%````%`````8````:````!P```#H````(````#0````D````;````"@`` -XM``P````+````&`````P````*````#0```'T````.````*0````\````)```` -XM$`````@````1````%0```!(````1````$@```!8````3````%P```!0````P -XM```````````````````````````````````````````````5`````0```"]D -XM978O<'1Y6%@``"SS"`@``````````````````````````!0``````````7I2 -XM``%\"`$;#`0$B`$``!P````<````+'?__X)`$"`8```#XA00("@```-`$```+````$````!4``````````P```#02 -XM"0@"````B`0``!0````1````%P```!B7!`@1````N)8$"!(```!@````$P`` -XM``@```#^__]OF)8$"/___V\!````\/__;TB5!`@````````````````````` -XM``````````````````````````````````````````#_____`````/____\` -XM`````````%`1"0@``````````,J;!`C:FP0(ZIL$"/J;!`@*G`0(&IP$""J< -XM!`@ZG`0(2IP$"%JIP$"(J!`@:G@0(*IX$"#J>!`A* -XMG@0(6IX$"&J>!`AZG@0(BIX$")J>!`BJG@0(NIX$",J>!`C:G@0(ZIX$"/J> -XM!`@*GP0(&I\$""J?!`@ZGP0(2I\$"%J?!`AJGP0(>I\$"(J?!`B:GP0(JI\$ -XM"+J?!`C*GP0(VI\$".J?!`CZGP0("J`$"!J@!`@JH`0(.J`$"$J@!`A:H`0( -XM:J`$"'J@!`B*H`0(FJ`$"*J@!`BZH`0(RJ`$"-J@!`CJH`0(^J`$"`JA!`@: -XMH00(*J$$"#JA!`A*H00(6J$$"&JA!`AZH00(BJ$$")JA!`BJH00(NJ$$",JA -XM!`C:H00(ZJ$$"/JA!`@*H@0(&J($""JB!`@ZH@0(2J($"%JB!`AJH@0(>J($ -XM"(JB!`B:H@0(JJ($"+JB!`C*H@0(VJ($".JB!`CZH@0("J,$"!JC!`@JHP0( -XM.J,$"$JC!`A:HP0(:J,$"'JC!`B*HP0(FJ,$"*JC!`BZHP0(RJ,$"-JC!`CJ -XMHP0(^J,$"`JD!`@:I`0(*J0$"#JD!`A*I`0(6J0$"&JD!`AZI`0(BJ0$")JD -XM!`BJI`0(NJ0$",JD!`@``````````````````````````````````````"1& -XM'`@)``D1G)E94)31#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#)`$"'@0``#0 -XM!``````````````!`````````#<```#___]O`@```$B5!`A(%0``4`$```0` -XM`````````@````(```!$````_O__;P(```"8E@0(F!8``"`````%`````0`` -XM``0`````````4P````D```!"````N)8$"+@6``!@````!``````````$```` -XM"````%P````)````0@```!B7!`@8%P``B`0```0````+````!`````@```!E -XM`````0````8```"@FP0(H!L``!$```````````````0`````````:P````$` -XM```&````M)L$"+0;```@"0`````````````$````!````'`````!````!@`` -XM`."D!`C@)```/.4#````````````$`````````!V`````0````8````pkill.uu << 'END-of-pkill.uu' -Xbegin 755 pkill -XM?T5,1@$!`0D```````````(``P`!````D(X$"#0```#T+@```````#0`(``& -XM`"@`&P`8``8````T````-(`$"#2`!`C`````P`````4````$`````P```/0` -XM``#T@`0(](`$"!4````5````!`````$````!``````````"`!`@`@`0(YBH` -XM`.8J```%`````!````$```#H*@``Z+H$".BZ!`C$`0``R`(```8`````$``` -XM`@````0K```$NP0(!+L$"-````#0````!@````0````$````#`$```R!!`@, -XM@00(&````!@````$````!````"]L:6)E>&5C+VQD+65L9BYS;RXQ``````@` -XM```$`````0```$9R965"4T0`%C4,`"4```!"`````````$`````%```````` -XM``D````W````$````"\````4````!P```"4````H````*P```"(````D```` -XM-``````````]````,````#D````;`````````#4````N````$@```#,````6 -XM````(0`````````_````*@```#(````8`````0`````````Q````00`````` -XM`````````````````````````````````````````@````8````````````` -XM````````````#0`````````````````````````+```````````````````` -XM```````````,```````````````9````'````````````````````!$````` -XM`````P```!H````.`````````",````$````'P````\`````````'@```"D` -XM```(````)P```!4````L`````````"8````=`````````!,`````````%P`` -XM`#8````X````+0```#L````*````(````#P````^````.@`````````````` -XM```````````P`0```````#0````2````ZP$```````!6`0``$@````T````$ -XMNP0(`````!$`\?\X`0`````````````2````S`$```````"A````$@```-$! -XM````````'0```!(```#;`````````&H````2````70$```````"_````$@`` -XM`*0!````````!0```!(````-`0```````,H````2````%@```(R+!`@````` -XM$@`*`%P$```````#*#``` -XM$@```-H!````````*P```!(```"Z```````````````2````$`(````````` -XM````$@```$\`````````M@```!(````@`0`````````````2````70`````` -XM````````(````.X`````````&````!(```#'`````````(0````2````<0`` -XM``````!J!```$@````!L:6)K=FTN@<```(`/`(```````"PO`0( -XM!1```#"]!`@%$@``-+T$"`47```XO00(!2(``#R]!`@%(P``0+T$"`4G``!$ -XMO00(!2@``$B]!`@%-0``3+T$"`4V``#TNP0(!P$``/B[!`@'`@``_+L$"`<$ -XM````O`0(!P4```2\!`@'!@``"+P$"`<'```,O`0(!P@``!"\!`@'"0``%+P$ -XM"`<*```8O`0(!PP``!R\!`@'#0``(+P$"`<.```DO`0(!Q$``"B\!`@'$P`` -XM++P$"`<5```PO`0(!Q8``#2\!`@'&```.+P$"`<9```\O`0(!QH``$"\!`@' -XM&P``1+P$"`<<``!(O`0(!QT``$R\!`@''P``4+P$"`<@``!4O`0(!R$``%B\ -XM!`@')```7+P$"`#_____)?B[!`AH -XM"````.G0_____R7\NP0(:!````#IP/____\E`+P$"&@8````Z;#_____)02\ -XM!`AH(````.F@_____R4(O`0(:"@```#ID/____\E#+P$"&@P````Z8#_____ -XM)1"\!`AH.````.EP_____R44O`0(:$````#I8/____\E&+P$"&A(````Z5#_ -XM____)1R\!`AH4````.E`_____R4@O`0(:%@```#I,/____\E)+P$"&A@```` -XMZ2#_____)2B\!`AH:````.D0_____R4LO`0(:'````#I`/____\E,+P$"&AX -XM````Z?#^____)32\!`AH@````.G@_O___R4XO`0(:(@```#IT/[___\E/+P$ -XM"&B0````Z<#^____)4"\!`AHF````.FP_O___R5$O`0(:*````#IH/[___\E -XM2+P$"&BH````Z9#^____)4R\!`AHL````.F`_O___R50O`0(:+@```#I+P$"&@(`0``Z=#]____)7R\!`AH$`$``.G`_?___R6` -XMO`0(:!@!``#IL/W___\EA+P$"&@@`0``Z:#]____)8B\!`AH*`$``.F0_?__ -XM_R6,O`0(:#`!``#I@/W___\ED+P$"&@X`0``Z7#]____)92\!`AH0`$``.E@ -XM_?___R68O`0(:$@!``#I4/W___\EG+P$"&A0`0``Z4#]____):"\!`AH6`$` -XM`.DP_?___R6DO`0(:&`!``#I(/W___\EJ+P$"&AH`0``Z1#]__]5B>564X/L -XM$(/D\(M=!(G1C72=#(7;B36LO00(?C:+10B%P'0OH^BZ!`@/MA"$TG0C@\`! -XMZPH/MA"#P`&$TG04@/HO=?&CZ+H$"`^V$(/``832=>RX!+L$"(7`=#2)#"3H -XM&____\<$)(RE!`CH#____^B&_/__C44(B70D"(E$)`2)'"3HEP0``(D$).A_ -XM_O__Z/K\___KS9"0D)"0D)"058GE@^P(@#U0O00(`'0,ZQR#P`2C\+H$"/_2 -XMH?"Z!`B+$(72=>O&!5"]!`@!R<.058GE@^P(H>2[!`B%P'02N`````"%P'0) -XMQP0DY+L$"/_0R<.0D)"0D)"0D)"0D)"058GE4[OBI00(@^P4H8"]!`B%P'4% -XMN_JE!`CHL?[__XE<)`S'1"0$#*@$"(E$)`BA2+T$"(D$).CD^___QP0D`@`` -XM`.C(_?__D(VT)@````!5B>575KX!````4X'LG`0``(F%=/O__XF5%?/O__Q"F!`B-=@"-E8#[___'1"0$V:8$"(D4).@J_?__A<")PP^$ -XM@`(``(`[``^$BP```,<$)`@```#H:_W__X7`B85L^___#X1P`@``BY5T^___ -XMB[UL^___BP*)!XU%\(DZQT0D"`````")1"0$B1PDZ$3\__^)1P2)PHM%\(`X -XM`'4?@[UP^___!`^$.@$``'%>/O__W"F!`@/E\(/DL`XP@^%R0```(N5?/O_ -XM_XV]D/O__XN%>/O__\=$)`B!I@0(QT0D!``$``")5"0,B40D$(D\).C(^O__ -XMC460B40D!(D\).@Y^O__@\`!#X3R````]D69(`^$"@$``(M%I#'VBY5L^___ -XMB4($Z9/]__^XP*8$"+D$````_(G>B7UW#QT0D"`@```#'1"0$ -XM%J8$",<$)`,```#HX?K__[A]I@0(N0,```")G7C[__^)WHG'\Z8/A!O____' -XMA7S[__]XI@0(Z0S___^)7"0(QT0D!$:F!`C'!"0"````Z"[Y__^)7"0(QT0D -XM!#"F!`C'!"0"````Z!;Y__^)7"0(QT0D!%BF!`C'!"0"````Z/[X___H>?G_ -XM_X,X`G4PB5PD",=$)`2&I@0(QP0D`@```.C<^/__B5PD",=$)`2KI@0(QP0D -XM`@```.C$^/__B5PD",=$)`28I@0(QP0D`P```.@<^O__C;8`````C;\````` -XMC4PD!(/D\/]Q_%6)Y5>_VZ8$"%9348'LJ`P``(L9BTD$QT0D!+^G!`C'!"0` -XM````B8UP\___Z.7Y___H%=//__P`````Q]L>%>//__^6F!`C'A7SS___EI@0(QX6` -XM\___`````,>%B//__P````"+E7#S___'1"0(L*@$"(D<)(E4)`3H'OC__X/X -XM_P^$I`(``(/H1(/X-'8%Z!C[____)(7(J00(QP6FY_?__BX5P\___BY5P\___@\`$@_L!B86T\___BW($QX6, -XM\___X*,$"`^.6OW__X`^+0^%4?W__XU%[(U^`<=$)`@*````B40D!(D\).CC -XM]?__B<*+1>R`.``/A5<&``"+C;3S__^#ZP&)%?2Z!`C'A8SS___@HP0(B8UP -XM\___Z07]__^+/4R]!`@I^XF=O//__P^$'0$``(L=A+T$"(7;#X7M````BY5T -XM\___A=(/A%X!``"+C73S___'1"0$[Z8$"(D,).CK]?__A<")PP^$DPH``(N% -XMB//__X7`=#>A,+T$"(7`#X5[!@``#[]##L=$)`0&````B00DZ+;T__^%P`^$ -XM.@H``.@Y]?__@S@C#X6."@``C;7(^___B5PD",=$)`0`!```B30DZ*;T__^% -XMP`^$E@```(D<).@6]O__C47HQT0D"`H```")1"0$B30DZ-_T__^)P8M%Z`^V -XM`(3`#X0?!0``#[;0.Q4XO00(#XP`!0``BXUT\___QT0D!%:G!`C'!"0#```` -XMB4PD".@R]/__BPV(O00(A,'```/OT,,P>@%@^`! -XMA,`/A"\)``")'"3H8?7__XN%=//__\=$)`1`IP0(QP0D`P```(E$)`CHL_/_ -XM_XN%B//__\>%A//_______^%P`^%F@@``.AF]?__BXU\\___C97(\___B50D -XM$,=$)`P`````QT0D"`````")3"0$HZB]!`B+A7CS__^)!"3H3_7__X7`HZ2] -XM!`@/A(H(``#'1"0,?+T$",=$)`@`````QT0D!`@```")!"3H8O7__X7`HW2] -XM!`@/A#@(``"A?+T$"(D$).AX]/__A<")PJ-XO00(#X0%"0``BXUP\___H7R] -XM!`B)%"3'1"0$`````(T\N8F]N//__XE$)`CH0?/__XN%N//__XL0A=(/A&X" -XM``"A_+H$"(E4)`2-5=B)%"2)1"0(Z>__^%P`^%AP4``*%\O00(BSUTO00( -XMA<`/CAD"``#'A9SS__\`````ZV&)]O:'*`$```1T:HNU@//__X7V?BV-AV\! -XM``")1"00BX>(````B50D",=$)`2JIP0(B40D#*%(O00(B00DZ+#Q__^#A9SS -XM__\!BX6<\___.05\O00(#XZR`0``@<<``P``BU+E83S__^%TG@(.86$\___=:2A7+T$"(7`#X0=`0``BY.,````.U`$=1/I -XM#0$``)"-="8`.5`$#X3_````BP"%P(UV`'7NBY68\___QD0Z_P"+-7R]!`CI -XM:____XD<).A0\?__,T70"T74#X6D_?__H7B]!`B+E9SS___&!`(!Z9#]__^A -XM1+T$"/9$D#5`#X3P^O__C4'[/9J&`0")C83S__\/AI'[__^+A73S___'1"0$ -XM5J<$",<$)`,```")1"0(Z`[O___'1"0(`P```,=$)`3AI@0(B3PDZ-;N__^% -XMP'4#C7X$O@$```#K#(/&`8/^(`^$<0,``(L$M;"\!`B)?"0$B00DZ(GN__^% -XMP'7=@_X@#X11`P``BX6T\___@^L!B37TN@0(QX6,\___X*,$"(F%%E//__P````")C:SS__\QR>L_BX6L\___AN/C8W(\___C578B4PD"(E4)`3'1"0,``@``(D$).AY[/__BY6X -XM\___C8W(\___B4PD#(L"QT0D!'"I!`C'!"0"````B40D".C?[/__BX6H\___ -XMBX`8`0``B85L\___Z2W___^)="0(QT0D!`````")'"3H%.W__X/__W0)H7B] -XM!`C&!#@!BQ5\O00(N`$```"+'72]!`B%TGYG,?8Q_^LFBPV0O00(ANP,<"%_P^4P(D$).AR -XM[?__BX6H\___BY60\___.Y`<`0``#YS`Z<[^__^)'"3HL.O__X7`#Y7`Z17X -XM__^A8+T$"(7`="*+4S`[4`1U"NL8C78`.5`$=!"+`(7`=?60C70F`.E6_?__ -XMH6R]!`B%P'48B?;K)3E31'0@BP"%P)"-="8`#X2,^___BU`$@_K_=>3V@R@! -XM```"==NA:+T$"(7`=#6+4S@[4`1U#>LKC;8`````.5`$=""+`(7`=?60C70F -XM`.G=^___QX6,\___X*,$")#I'_/__XL59+T$"(72="R+BP`"``"+0@0YP746 -XMZQV)]HL2A=(/A,'\__^+0@0YR)!T"87)?NJ#P`%UY8N%O//__X7`#X4*^___ -XMBX68\___QD0X_P&+-7R]!`CI]/K__\=$)`0@J00(QP0D`P```.CMZO__H:2] -XM!`B)!"3H<.O__\=$)`2-IP0(QP0D`P```(E$)`CHR.K__XV5R//__XE4)`C' -XM1"0$;Z<$",<$)`,```#HJNK__XD<).@R[/__BY5T\___QT0D!`"I!`C'!"0# -XM````B50D".CTZ___B1PDZ`SL__^+E73S___'1"0$"J<$",<$)`,```")5"0( -XMZ%[J__^+A73S___'1"0$\:8$",<$)`,```")1"0(Z+#K__^A>+T$"(ET)`C' -XM1"0$`````(D$).B'ZO__Z7S]__^+C73S___'1"0$(J<$",<$)`,```")3"0( -XMZ`3J__^A?+T$",=$)`1(J00(QP0D`P```(E$)`CH5^O__XVT)@````!5B>56 -XMB<93@^P0H92]!`B%P'4-BQV`O00(A=MU0XUV`(L-F+T$"(7)=5:AE+T$"(7` -XM="2-AF\!``")1"0(BT8HQP0DZ:<$"(E$)`3H0.K__X/$$%M>7<.A@+T$"(7` -XM=-.+1BC'!"0'J`0(B40D!.@=ZO__@\006UY=PXVV`````*&DO00(QT0D"``` -XM``")="0$B00DZ&?J__^%P(G#=(N+1BC'!"3EIP0(B40D!.C>Z?__BP.%P'28 -XM@\,$B40D!,<$).RG!`CHQ>G__XL3A=)TX:$PO00(A#.+`L8`((/``8D"BP.%P'6[Z4[___^A0+T$",<$)"````")1"0$ -XMZ%GH___KF8VT)@`````[0AA]R(E4)`3'!"0@````Z-OI___I>/___XVV```` -XM`%6)Y8/L"(M%".BR_O__H?BZ!`C'!"3LIP0(B40D!.@MZ?__N`$```#)PXVV -XM`````%6)Y593@^P0H8R]!`B+=0B%P`^$N````,<$).^G!`CH_.C__XGPZ&7^ -XM___'!"3UIP0(Z.GH__^A0+T$"(D$).A,Z/__H3"]!`B%P`^%^````*$\O00( -XMBU`$@^H!A=*)4`0/B/8```"+%3R]!`B+`@^V&(/``8D"B=F-M"8`````@_D* -XM=#N#P0%T-J$PO00(A70+@_M9=1^-M@````"A]+H$"(E$)`2+1BB) -XM!"3H#.?__X/``70VN@$```"#Q!")T%M>7<.A/+T$"(D$).B,Z?__B<'I=?__ -XM_Z$\O00(B00DZ/CH__^)P>EA____Z,SG__\QTH,X`W3#BT8HQP0D^*<$"(E$ -XM)`3H`NC__X/$$#'26XG07EW#H3R]!`B)!"3H.NG__XG#Z1K___^A/+T$"(D$ -XM).BFZ/__B'`@)`!;+4Q39FEL;F]V>%T@6RUD(&1E;&EM -XM70!;+7-I9VYA;%T@6RU)3&9I;F]V>%T`+V1E=B\`0V%N;F]T(&%L;&]C871E -XM("5Z=2!B>71E0`E0!);G9A;&ED('!I -XM9"!I;B!F:6QE(&`E7-T -XM96U="B`@("`@("`@("`@("!;+5`@<'!I9%T@6RU5('5I9%T@6RUG('!G'!R97-S:6]N(&`E'`@ -XM)````+^G!`@`````X+L$"`\```"^IP0(`0`````````!`````0````$```!^ -XM````#````(R+!`@-````C*4$"`0````D@00(!0```.B&!`@&````R(($"`H` -XM``!%`@``"P```!`````5``````````,```#HNP0(`@```'`!```4````$0`` -XM`!<````'`@)``D1G)E94)3 -XM1#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

6%R($5X<"`D`$=#0SH@*$=. -XM52D@-"XR+C$@,C`P-S`W,3D@(%M&6YS -XM='(`+F=N=2YV97)S:6]N`"YG;G4N=F5R6YA;6EC`"YC=&]R`$``````````````0`````````1`````P``````````````)"X``,X````` -XM``````````$``````````0````(``````````````"PS``!@"0``&@```%(` -XM```$````$`````D````#``````````````",/```9@8``````````````0`` -XM`````````````````````````````````/2`!`@``````P`!```````,@00( -XM``````,``@``````)($$"``````#``,``````,B"!`@``````P`$``````#H -XMA@0(``````,`!0``````+HD$"``````#``8``````+2)!`@``````P`'```` -XM``#4B00(``````,`"```````'(H$"``````#``D``````(R+!`@``````P`* -XM``````"@BP0(``````,`"P``````D(X$"``````#``P``````(RE!`@````` -XM`P`-``````"8I00(``````,`#@``````Z+H$"``````#``\```````"[!`@` -XM`````P`0```````$NP0(``````,`$0``````U+L$"``````#`!(``````-R[ -XM!`@``````P`3``````#DNP0(``````,`%```````Z+L$"``````#`!4````` -XM`*R\!`@``````P`6``````````````````,`%P`````````````````#`!@` -XM`````````````````P`9``````````````````,`&@`!```````````````$ -XM`/'_"`````R!!`@8`````0`"``\```````````````0`\?\P```````````` -XM```$`/'_/P``````````````!`#Q_P\```````````````0`\?]*```````` -XM```````$`/'_50```-2[!`@``````0`2`&,```#````Y+L$"``````!`!0`Z@```&"E!`@``````@`,```!```````` -XM``````0`\?\P```````````````$`/'_/P``````````````!`#Q_P`!```` -XM``````````0`\?\A`0`````````````$`/'_*0$``)"/!`A(`````@`,`"\! -XM``"`O00(!`````$`%@`U`0``X(\$",0#```"``P`/@$``*B]!`@$`````0`6 -XM`$0!``"PHP0(*@````(`#`!,`0``G+T$"`0````!`!8`5@$``)"]!`@$```` -XM`0`6`%X!``!PO00(!`````$`%@!G`0``;+T$"`0````!`!8`<`$``&B]!`@$ -XM`````0`6`'@!``"(O00(!`````$`%@!_`0``A+T$"`0````!`!8`A@$``)2] -XM!`@$`````0`6`(X!``!DO00(!`````$`%@"6`0``_+H$"`0````!``\`G0$` -XM`&"]!`@$`````0`6`*8!``"8O00(!`````$`%@"P`0``^+H$"`0````!``\` -XMM@$``%R]!`@$`````0`6`+\!``"@O00(!`````$`%@#(`0``6+T$"`0````! -XM`!8`T0$``(R]!`@$`````0`6`-T!``!4O00(!`````$`%@#F`0``X*,$"'$! -XM```"``P`[@$``/2Z!`@$`````0`/`/4!``"DO00(!`````$`%@#X`0``?+T$ -XM"`0````!`!8`_@$``'2]!`@$`````0`6``0"``!XO00(!`````$`%@`-`@`` -XM<*($"#H!```"``P`&@(````````T````$@```"P"````````5@$``!(````_ -XM`@``!+L$"``````1`/'_2`(`````````````$@```%<"````````H0```!(` -XM``!F`@```````!T````2````>0(```````!J````$@```(@"``#LN@0(```` -XM`!$"#P"5`@```````+\````2````J@(````````%````$@```+X"```````` -XMR@```!(```#4`@``C(L$"``````2``H`V@(`````````````$@```.H"```` -XM````+@```!(```#Y`@```````)(!```2````"0,``*R]!`@$````$0`6`!$# -XM``"PO`0(@````!$`%@`G`P```````)`````2````.`,``#"]!`@$````$0`6 -XM`$\#````````90(``!(```!@`P``Z+H$"`0````1``\`:P,``)".!`B8```` -XM$@`,`'(#`````````````!(```"!`P```````%(7```2````DP,``#2]!`@$ -XM````$0`6`*0#`````````````!(```"U`P```````!T"```2````Q@,````` -XM```6````$@```-@#````````"P```!(```#C`P```````!T````2````]@,` -XM```````Y````$@````<$``"LO`0(`````!``\?\3!```L),$"+D.```2``P` -XM&`0```````#?````$@```"L$````````00```!(````Z!``````````````2 -XM````2P0``#B]!`@$````$0`6`&,$```\O00(!````!$`%@!V!````````-,` -XM```2````A@0```````!?````$@```)<$``",I00(`````!(`#0"=!```0+T$ -XM"`0````1`!8`L00``$2]!`@$````$0`6`,X$````````8@```!(```#?!``` -XM`````"8"```2````ZP0```````#+````$@```/T$````````^@```!(````/ -XM!0```````$,````2````'@4```````##````$@```"\%````````/@```!(` -XM```]!0``K+P$"``````0`/'_1`4``.B[!`@`````$0#Q_UH%``"PO00(```` -XM`!``\?]?!0```````&(#```2````&5C0$!&0E-$7S$N,`!O<'1Apkill.uu << '521a9e5ac40550eee504b066258ae35d' -Xbegin 644 pkill -XM?T5,1@$!`0D```````````(``P`!````D(X$"#0```#H+@```````#0`(``& -XM`"@`&0`8``8````T````-(`$"#2`!`C`````P`````4````$`````P```/0` -XM``#T@`0(](`$"!4````5````!`````$````!``````````"`!`@`@`0(YBH` -XM`.8J```%`````!````$```#H*@``Z+H$".BZ!`C$`0``R`(```8`````$``` -XM`@````0K```$NP0(!+L$"-````#0````!@````0````$````#`$```R!!`@, -XM@00(&````!@````$````!````"]L:6)E>&5C+VQD+65L9BYS;RXQ``````@` -XM```$`````0```$9R965"4T0`%C4,`"4```!"`````````$`````%```````` -XM``D````W````$````"\````4````!P```"4````H````*P```"(````D```` -XM-``````````]````,````#D````;`````````#4````N````$@```#,````6 -XM````(0`````````_````*@```#(````8`````0`````````Q````00`````` -XM`````````````````````````````````````````@````8````````````` -XM````````````#0`````````````````````````+```````````````````` -XM```````````,```````````````9````'````````````````````!$````` -XM`````P```!H````.`````````",````$````'P````\`````````'@```"D` -XM```(````)P```!4````L`````````"8````=`````````!,`````````%P`` -XM`#8````X````+0```#L````*````(````#P````^````.@`````````````` -XM```````````P`0```````#0````2````ZP$```````!6`0``$@````T````$ -XMNP0(`````!$`\?\X`0`````````````2````S`$```````"A````$@```-$! -XM````````'0```!(```#;`````````&H````2````70$```````"_````$@`` -XM`*0!````````!0```!(````-`0```````,H````2````%@```(R+!`@````` -XM$@`*`%P$```````#*#``` -XM$@```-H!````````*P```!(```"Z```````````````2````$`(````````` -XM````$@```$\`````````M@```!(````@`0`````````````2````70`````` -XM````````(````.X`````````&````!(```#'`````````(0````2````<0`` -XM``````!J!```$@````!L:6)K=FTN@<```(`/`(```````"PO`0( -XM!1```#"]!`@%$@``-+T$"`47```XO00(!2(``#R]!`@%(P``0+T$"`4G``!$ -XMO00(!2@``$B]!`@%-0``3+T$"`4V``#TNP0(!P$``/B[!`@'`@``_+L$"`<$ -XM````O`0(!P4```2\!`@'!@``"+P$"`<'```,O`0(!P@``!"\!`@'"0``%+P$ -XM"`<*```8O`0(!PP``!R\!`@'#0``(+P$"`<.```DO`0(!Q$``"B\!`@'$P`` -XM++P$"`<5```PO`0(!Q8``#2\!`@'&```.+P$"`<9```\O`0(!QH``$"\!`@' -XM&P``1+P$"`<<``!(O`0(!QT``$R\!`@''P``4+P$"`<@``!4O`0(!R$``%B\ -XM!`@')```7+P$"`#_____)?B[!`AH -XM"````.G0_____R7\NP0(:!````#IP/____\E`+P$"&@8````Z;#_____)02\ -XM!`AH(````.F@_____R4(O`0(:"@```#ID/____\E#+P$"&@P````Z8#_____ -XM)1"\!`AH.````.EP_____R44O`0(:$````#I8/____\E&+P$"&A(````Z5#_ -XM____)1R\!`AH4````.E`_____R4@O`0(:%@```#I,/____\E)+P$"&A@```` -XMZ2#_____)2B\!`AH:````.D0_____R4LO`0(:'````#I`/____\E,+P$"&AX -XM````Z?#^____)32\!`AH@````.G@_O___R4XO`0(:(@```#IT/[___\E/+P$ -XM"&B0````Z<#^____)4"\!`AHF````.FP_O___R5$O`0(:*````#IH/[___\E -XM2+P$"&BH````Z9#^____)4R\!`AHL````.F`_O___R50O`0(:+@```#I+P$"&@(`0``Z=#]____)7R\!`AH$`$``.G`_?___R6` -XMO`0(:!@!``#IL/W___\EA+P$"&@@`0``Z:#]____)8B\!`AH*`$``.F0_?__ -XM_R6,O`0(:#`!``#I@/W___\ED+P$"&@X`0``Z7#]____)92\!`AH0`$``.E@ -XM_?___R68O`0(:$@!``#I4/W___\EG+P$"&A0`0``Z4#]____):"\!`AH6`$` -XM`.DP_?___R6DO`0(:&`!``#I(/W___\EJ+P$"&AH`0``Z1#]__]5B>564X/L -XM$(/D\(M=!(G1C72=#(7;B36LO00(?C:+10B%P'0OH^BZ!`@/MA"$TG0C@\`! -XMZPH/MA"#P`&$TG04@/HO=?&CZ+H$"`^V$(/``832=>RX!+L$"(7`=#2)#"3H -XM&____\<$)(RE!`CH#____^B&_/__C44(B70D"(E$)`2)'"3HEP0``(D$).A_ -XM_O__Z/K\___KS9"0D)"0D)"058GE@^P(@#U0O00(`'0,ZQR#P`2C\+H$"/_2 -XMH?"Z!`B+$(72=>O&!5"]!`@!R<.058GE@^P(H>2[!`B%P'02N`````"%P'0) -XMQP0DY+L$"/_0R<.0D)"0D)"0D)"0D)"058GE4[OBI00(@^P4H8"]!`B%P'4% -XMN_JE!`CHL?[__XE<)`S'1"0$#*@$"(E$)`BA2+T$"(D$).CD^___QP0D`@`` -XM`.C(_?__D(VT)@````!5B>575KX!````4X'LG`0``(F%=/O__XF5%?/O__Q"F!`B-=@"-E8#[___'1"0$V:8$"(D4).@J_?__A<")PP^$ -XM@`(``(`[``^$BP```,<$)`@```#H:_W__X7`B85L^___#X1P`@``BY5T^___ -XMB[UL^___BP*)!XU%\(DZQT0D"`````")1"0$B1PDZ$3\__^)1P2)PHM%\(`X -XM`'4?@[UP^___!`^$.@$``'%>/O__W"F!`@/E\(/DL`XP@^%R0```(N5?/O_ -XM_XV]D/O__XN%>/O__\=$)`B!I@0(QT0D!``$``")5"0,B40D$(D\).C(^O__ -XMC460B40D!(D\).@Y^O__@\`!#X3R````]D69(`^$"@$``(M%I#'VBY5L^___ -XMB4($Z9/]__^XP*8$"+D$````_(G>B7UW#QT0D"`@```#'1"0$ -XM%J8$",<$)`,```#HX?K__[A]I@0(N0,```")G7C[__^)WHG'\Z8/A!O____' -XMA7S[__]XI@0(Z0S___^)7"0(QT0D!$:F!`C'!"0"````Z"[Y__^)7"0(QT0D -XM!#"F!`C'!"0"````Z!;Y__^)7"0(QT0D!%BF!`C'!"0"````Z/[X___H>?G_ -XM_X,X`G4PB5PD",=$)`2&I@0(QP0D`@```.C<^/__B5PD",=$)`2KI@0(QP0D -XM`@```.C$^/__B5PD",=$)`28I@0(QP0D`P```.@<^O__C;8`````C;\````` -XMC4PD!(/D\/]Q_%6)Y5>_VZ8$"%9348'LJ`P``(L9BTD$QT0D!+^G!`C'!"0` -XM````B8UP\___Z.7Y___H%=//__P`````Q]L>%>//__^6F!`C'A7SS___EI@0(QX6` -XM\___`````,>%B//__P````"+E7#S___'1"0(L*@$"(D<)(E4)`3H'OC__X/X -XM_P^$I`(``(/H1(/X-'8%Z!C[____)(7(J00(QP6FY_?__BX5P\___BY5P\___@\`$@_L!B86T\___BW($QX6, -XM\___X*,$"`^.6OW__X`^+0^%4?W__XU%[(U^`<=$)`@*````B40D!(D\).CC -XM]?__B<*+1>R`.``/A5<&``"+C;3S__^#ZP&)%?2Z!`C'A8SS___@HP0(B8UP -XM\___Z07]__^+/4R]!`@I^XF=O//__P^$'0$``(L=A+T$"(7;#X7M````BY5T -XM\___A=(/A%X!``"+C73S___'1"0$[Z8$"(D,).CK]?__A<")PP^$DPH``(N% -XMB//__X7`=#>A,+T$"(7`#X5[!@``#[]##L=$)`0&````B00DZ+;T__^%P`^$ -XM.@H``.@Y]?__@S@C#X6."@``C;7(^___B5PD",=$)`0`!```B30DZ*;T__^% -XMP`^$E@```(D<).@6]O__C47HQT0D"`H```")1"0$B30DZ-_T__^)P8M%Z`^V -XM`(3`#X0?!0``#[;0.Q4XO00(#XP`!0``BXUT\___QT0D!%:G!`C'!"0#```` -XMB4PD".@R]/__BPV(O00(A,'```/OT,,P>@%@^`! -XMA,`/A"\)``")'"3H8?7__XN%=//__\=$)`1`IP0(QP0D`P```(E$)`CHL_/_ -XM_XN%B//__\>%A//_______^%P`^%F@@``.AF]?__BXU\\___C97(\___B50D -XM$,=$)`P`````QT0D"`````")3"0$HZB]!`B+A7CS__^)!"3H3_7__X7`HZ2] -XM!`@/A(H(``#'1"0,?+T$",=$)`@`````QT0D!`@```")!"3H8O7__X7`HW2] -XM!`@/A#@(``"A?+T$"(D$).AX]/__A<")PJ-XO00(#X0%"0``BXUP\___H7R] -XM!`B)%"3'1"0$`````(T\N8F]N//__XE$)`CH0?/__XN%N//__XL0A=(/A&X" -XM``"A_+H$"(E4)`2-5=B)%"2)1"0(Z>__^%P`^%AP4``*%\O00(BSUTO00( -XMA<`/CAD"``#'A9SS__\`````ZV&)]O:'*`$```1T:HNU@//__X7V?BV-AV\! -XM``")1"00BX>(````B50D",=$)`2JIP0(B40D#*%(O00(B00DZ+#Q__^#A9SS -XM__\!BX6<\___.05\O00(#XZR`0``@<<``P``BU+E83S__^%TG@(.86$\___=:2A7+T$"(7`#X0=`0``BY.,````.U`$=1/I -XM#0$``)"-="8`.5`$#X3_````BP"%P(UV`'7NBY68\___QD0Z_P"+-7R]!`CI -XM:____XD<).A0\?__,T70"T74#X6D_?__H7B]!`B+E9SS___&!`(!Z9#]__^A -XM1+T$"/9$D#5`#X3P^O__C4'[/9J&`0")C83S__\/AI'[__^+A73S___'1"0$ -XM5J<$",<$)`,```")1"0(Z`[O___'1"0(`P```,=$)`3AI@0(B3PDZ-;N__^% -XMP'4#C7X$O@$```#K#(/&`8/^(`^$<0,``(L$M;"\!`B)?"0$B00DZ(GN__^% -XMP'7=@_X@#X11`P``BX6T\___@^L!B37TN@0(QX6,\___X*,$"(F%%E//__P````")C:SS__\QR>L_BX6L\___AN/C8W(\___C578B4PD"(E4)`3'1"0,``@``(D$).AY[/__BY6X -XM\___C8W(\___B4PD#(L"QT0D!'"I!`C'!"0"````B40D".C?[/__BX6H\___ -XMBX`8`0``B85L\___Z2W___^)="0(QT0D!`````")'"3H%.W__X/__W0)H7B] -XM!`C&!#@!BQ5\O00(N`$```"+'72]!`B%TGYG,?8Q_^LFBPV0O00(ANP,<"%_P^4P(D$).AR -XM[?__BX6H\___BY60\___.Y`<`0``#YS`Z<[^__^)'"3HL.O__X7`#Y7`Z17X -XM__^A8+T$"(7`="*+4S`[4`1U"NL8C78`.5`$=!"+`(7`=?60C70F`.E6_?__ -XMH6R]!`B%P'48B?;K)3E31'0@BP"%P)"-="8`#X2,^___BU`$@_K_=>3V@R@! -XM```"==NA:+T$"(7`=#6+4S@[4`1U#>LKC;8`````.5`$=""+`(7`=?60C70F -XM`.G=^___QX6,\___X*,$")#I'_/__XL59+T$"(72="R+BP`"``"+0@0YP746 -XMZQV)]HL2A=(/A,'\__^+0@0YR)!T"87)?NJ#P`%UY8N%O//__X7`#X4*^___ -XMBX68\___QD0X_P&+-7R]!`CI]/K__\=$)`0@J00(QP0D`P```.CMZO__H:2] -XM!`B)!"3H<.O__\=$)`2-IP0(QP0D`P```(E$)`CHR.K__XV5R//__XE4)`C' -XM1"0$;Z<$",<$)`,```#HJNK__XD<).@R[/__BY5T\___QT0D!`"I!`C'!"0# -XM````B50D".CTZ___B1PDZ`SL__^+E73S___'1"0$"J<$",<$)`,```")5"0( -XMZ%[J__^+A73S___'1"0$\:8$",<$)`,```")1"0(Z+#K__^A>+T$"(ET)`C' -XM1"0$`````(D$).B'ZO__Z7S]__^+C73S___'1"0$(J<$",<$)`,```")3"0( -XMZ`3J__^A?+T$",=$)`1(J00(QP0D`P```(E$)`CH5^O__XVT)@````!5B>56 -XMB<93@^P0H92]!`B%P'4-BQV`O00(A=MU0XUV`(L-F+T$"(7)=5:AE+T$"(7` -XM="2-AF\!``")1"0(BT8HQP0DZ:<$"(E$)`3H0.K__X/$$%M>7<.A@+T$"(7` -XM=-.+1BC'!"0'J`0(B40D!.@=ZO__@\006UY=PXVV`````*&DO00(QT0D"``` -XM``")="0$B00DZ&?J__^%P(G#=(N+1BC'!"3EIP0(B40D!.C>Z?__BP.%P'28 -XM@\,$B40D!,<$).RG!`CHQ>G__XL3A=)TX:$PO00(A#.+`L8`((/``8D"BP.%P'6[Z4[___^A0+T$",<$)"````")1"0$ -XMZ%GH___KF8VT)@`````[0AA]R(E4)`3'!"0@````Z-OI___I>/___XVV```` -XM`%6)Y8/L"(M%".BR_O__H?BZ!`C'!"3LIP0(B40D!.@MZ?__N`$```#)PXVV -XM`````%6)Y593@^P0H8R]!`B+=0B%P`^$N````,<$).^G!`CH_.C__XGPZ&7^ -XM___'!"3UIP0(Z.GH__^A0+T$"(D$).A,Z/__H3"]!`B%P`^%^````*$\O00( -XMBU`$@^H!A=*)4`0/B/8```"+%3R]!`B+`@^V&(/``8D"B=F-M"8`````@_D* -XM=#N#P0%T-J$PO00(A70+@_M9=1^-M@````"A]+H$"(E$)`2+1BB) -XM!"3H#.?__X/``70VN@$```"#Q!")T%M>7<.A/+T$"(D$).B,Z?__B<'I=?__ -XM_Z$\O00(B00DZ/CH__^)P>EA____Z,SG__\QTH,X`W3#BT8HQP0D^*<$"(E$ -XM)`3H`NC__X/$$#'26XG07EW#H3R]!`B)!"3H.NG__XG#Z1K___^A/+T$"(D$ -XM).BFZ/__B'`@)`!;+4Q39FEL;F]V>%T@6RUD(&1E;&EM -XM70!;+7-I9VYA;%T@6RU)3&9I;F]V>%T`+V1E=B\`0V%N;F]T(&%L;&]C871E -XM("5Z=2!B>71E0`E0!);G9A;&ED('!I -XM9"!I;B!F:6QE(&`E7-T -XM96U="B`@("`@("`@("`@("!;+5`@<'!I9%T@6RU5('5I9%T@6RUG('!G'!R97-S:6]N(&`E'`@ -XM)````+^G!`@`````X+L$"`\```"^IP0(`0`````````!`````0````$```!^ -XM````#````(R+!`@-````C*4$"`0````D@00(!0```.B&!`@&````R(($"`H` -XM``!%`@``"P```!`````5``````````,```#HNP0(`@```'`!```4````$0`` -XM`!<````'`@)``D1G)E94)3 -XM1#H@'`@)`!'0T,Z("A'3E4I(#0N,BXQ(#(P,#

6%R($5X<"`D`$=#0SH@*$=. -XM52D@-"XR+C$@,C`P-S`W,3D@(%M&6YS>6T`+F1Y;G-T<@`N9VYU+G9E6X`+G)E;"YP;'0`+FEN:70`+G!L=``N -XM=&5X=``N9FEN:0`N`$````````````` -XM`0`````````!`````P``````````````)"X``,,```````````````$````` -X#```` -X` -Xend -521a9e5ac40550eee504b066258ae35d -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.err b/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.out b/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.sh deleted file mode 100644 index 88325b78..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-5/strip-all-5.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-all-5 tc/strip-all-5 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} pkill" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/in/strip-all-6.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/in/strip-all-6.in.shar deleted file mode 100644 index e3eb6cde..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/in/strip-all-6.in.shar +++ /dev/null @@ -1,107 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# mcs.o.uu -# -echo x - mcs.o.uu -sed 's/^X//' >mcs.o.uu << 'END-of-mcs.o.uu' -Xbegin 644 mcs.o -XM?T5,1@$!`0D```````````$``P`!``````````````!\"0```````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&(E4)`3'1"0(`````(D$).C\____ -XM,=*%P'0),=*#>"``#Y7"R8G0PXUV`%6)Y8/L&(E4)`3'1"0(`````(D$).C\ -XM____,=*%P'0),=*#>!@`#Y7"R8G0PXUV`%6)Y8/L&,=$)`@`````B50D!(D$ -XM).C\____A575E.![/P```#'A1#___\`````QX44____`````(N%$/___XM5"(E$)`2+ -XM0AB)!"3H_/___X7`B840____#X0Z!@``BY40____C46TB40D!(D4).C\____ -XMA<`/A$D&``"+30B+1;2+24")A0S___^)C0C___^+C13___^%R0^%?P(``(M5 -XMS(F5%/___XM%N(/X"'2)A"C`````````#'@H@````` -XM`@``QP0D``(``.C\____BTT(A<")@80````/A$<%``"+A2C___^+E2C___^+ -XM0`B)A3#___\#0A0YA3#___^)A2#___\/@M$```#IZ0$``(M%"(NXC````(M- -XM"(N1B````(N-'/___XT$#SG0%6/___P````")1"0$B10DB8U4 -XM____Z/S___^%P`^$HO[__XN5)/___XM%".B"^O__A6UT86(`+G-T``!4!P```A8``%P'```!"```;`<` -XM``(7``!T!P```0@``(`'```"'@``C`<```(6``"4!P```0@``*0'```"%P`` -XML`<```(6``"X!P```0@``,@'```"%P``T`<```(6``#8!P```0@``.@'```" -X;%P``\`<```(6``#X!P```0@```@(```"%P`` -X` -Xend -END-of-mcs.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/out/strip-all-6.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/out/strip-all-6.out.shar deleted file mode 100644 index 8261a177..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/out/strip-all-6.out.shar +++ /dev/null @@ -1,175 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# mcs.o.1.uu -# mcs.o.uu -# -echo x - mcs.o.1.uu -sed 's/^X//' >mcs.o.1.uu << 'f795b6a491de52ced7008ed30e59ba9b' -Xbegin 644 mcs.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````!T"0```````#0````` -XM`"@`"``'`````````````````%6)Y8/L&(E4)`3'1"0(`````(D$).C\____ -XM,=*%P'0),=*#>"``#Y7"R8G0PXUV`%6)Y8/L&(E4)`3'1"0(`````(D$).C\ -XM____,=*%P'0),=*#>!@`#Y7"R8G0PXUV`%6)Y8/L&,=$)`@`````B50D!(D$ -XM).C\____A575E.![/P```#'A1#___\`````QX44____`````(N%$/___XM5"(E$)`2+ -XM0AB)!"3H_/___X7`B840____#X0Z!@``BY40____C46TB40D!(D4).C\____ -XMA<`/A$D&``"+30B+1;2+24")A0S___^)C0C___^+C13___^%R0^%?P(``(M5 -XMS(F5%/___XM%N(/X"'2)A"C`````````#'@H@````` -XM`@``QP0D``(``.C\____BTT(A<")@80````/A$<%``"+A2C___^+E2C___^+ -XM0`B)A3#___\#0A0YA3#___^)A2#___\/@M$```#IZ0$``(M%"(NXC````(M- -XM"(N1B````(N-'/___XT$#SG0%6/___P````")1"0$B10DB8U4 -XM____Z/S___^%P`^$HO[__XN5)/___XM%".B"^O__A'0`+F1A -XM=&$`+F)Smcs.o.uu << '4890727b4c22736e61623154688c0ec6' -Xbegin 644 mcs.o -XM?T5,1@$!`0D```````````$``P`!``````````````!\"0```````#0````` -XM`"@`"@`'`````````````````%6)Y8/L&(E4)`3'1"0(`````(D$).C\____ -XM,=*%P'0),=*#>"``#Y7"R8G0PXUV`%6)Y8/L&(E4)`3'1"0(`````(D$).C\ -XM____,=*%P'0),=*#>!@`#Y7"R8G0PXUV`%6)Y8/L&,=$)`@`````B50D!(D$ -XM).C\____A575E.![/P```#'A1#___\`````QX44____`````(N%$/___XM5"(E$)`2+ -XM0AB)!"3H_/___X7`B840____#X0Z!@``BY40____C46TB40D!(D4).C\____ -XMA<`/A$D&``"+30B+1;2+24")A0S___^)C0C___^+C13___^%R0^%?P(``(M5 -XMS(F5%/___XM%N(/X"'2)A"C`````````#'@H@````` -XM`@``QP0D``(``.C\____BTT(A<")@80````/A$<%``"+A2C___^+E2C___^+ -XM0`B)A3#___\#0A0YA3#___^)A2#___\/@M$```#IZ0$``(M%"(NXC````(M- -XM"(N1B````(N-'/___XT$#SG0%6/___P````")1"0$B10DB8U4 -XM____Z/S___^%P`^$HO[__XN5)/___XM%".B"^O__A6UT86(`+G-T``!4!P```A8``%P'```!"```;`<` -XM``(7``!T!P```0@``(`'```"'@``C`<```(6``"4!P```0@``*0'```"%P`` -XML`<```(6``"X!P```0@``,@'```"%P``T`<```(6``#8!P```0@``.@'```" -X;%P``\`<```(6``#X!P```0@```@(```"%P`` -X` -Xend -4890727b4c22736e61623154688c0ec6 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.err b/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.out b/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.sh deleted file mode 100644 index 639f4292..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-6/strip-all-6.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-all-6 tc/strip-all-6 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} -o mcs.o.1 mcs.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/in/strip-all-7.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/in/strip-all-7.in.shar deleted file mode 100644 index 565fd43c..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/in/strip-all-7.in.shar +++ /dev/null @@ -1,262 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.uu -# -echo x - sections.o.uu -sed 's/^X//' >sections.o.uu << 'END-of-sections.o.uu' -Xbegin 644 sections.o -XM?T5,1@$!`0D```````````$``P`!``````````````!X'````````#0````` -XM`"@`"P`(`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8`````)$9R965"4T0D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M& -XM0!E;&9? -XM9V5T@``````````````$````(8``````````````!````"7```````````` -XM```0````H@``````````````$````+(``````````````!````"Z```````` -XM```````0````Q0``````````````$````,H```!P`@``#`$``!(``0#6```` -XM```````````0````Y```````````````$````.X``````````````!````#_ -XM``````0```,"```2``$`#P$`````````````$````!H!`````````````!`` -XM```A`0`````````````0````)0$``!`&```6`0``$@`!`"\!```````````` -XM`!`````[`0``,`<``#D!```2``$`10$`````````````$````$\!``!P"``` -XM\`$``!(``0!?`0`````````````0````90$``&`*```H`0``$@`!`'(!```` -XM`````````!````!_`0`````````````0````B@$``)`+``"7````$@`!`)D! -XM`````````````!````"@`0`````````````0````IP$``*`,``#V`P``$@`! -XM`+(!`````````````!````#"`0`````````````0````U`$````````````` -XM$````.`!`````````````!````#K`0`````````````0````^`$````````` -XM````$`````("`````````````!`````'`@`````````````0````#P(``)`1 -XM``!5!P``$@`!`!P"`````````````!`````J`@`````````````0````,0(` -XM````````````$````#@"`````````````!````!``@`````````````0```` -XM3`(`````````````$`````!S96-T:6]N`!M96UM;W9E`&5L9E]E`!U<&1A=&5? -XM5]D -XM871A`&5L9E]G971D871A`&-O<'E?6YC7W-E -XM8W1I;VYS`'=A5]C;VYT96YT`&-R96%T95]S>6UT86(`;65M8W!Y`'-T`\```$&``"8 -XM#P```A@``+8/```"%```O@\```$&``#.#P```A4``-H/```"%```X@\```$& -XM``#R#P```A4``/X/```"%```!A````$&```6$````A4``"(0```"%```*A`` -XM``$&```Z$````A4``$(0```!!@``3A````(=``!:$````A0``&(0```!!@`` -XM``"@ -XM%````B<``.X4```"'P``^10```(8```'%0```2\``!45```!,```914```(W -XM``"_%0```C<``.,5```")P``[A4```(V```&%@```C<``#06```"-0``518` -XM``(G``!@%@```C8``'06```!!@``@!8```(=``"%%@```3```)46```",0`` -XMPA8```(R``#V%@```A\``!L7```".```.Q<```(1``!1%P```BX``&@7```" -XM.0``@A<```(I``"T%P```BD``-(7```"%```VA<```$&``#J%P```A4``/(7 -XM```!!@``_A<```(=```*&````A0``!(8```!!@``(A@```(5```N&````A0` -XM`#88```!!@``1A@```(5``!+&````A@``(T8```")@``P1@```(4``#)&``` -X,`08``-D8```"%0`` -X` -Xend -END-of-sections.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/out/strip-all-7.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/out/strip-all-7.out.shar deleted file mode 100644 index 11f20eaa..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/out/strip-all-7.out.shar +++ /dev/null @@ -1,439 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.1.uu -# sections.o.uu -# -echo x - sections.o.1.uu -sed 's/^X//' >sections.o.1.uu << 'eb2ac2808b7045ab3c2faf26922f5e01' -Xbegin 644 sections.o.1 -XM?T5,1@$!`0D```````````$``P`!``````````````!P'````````#0````` -XM`"@`"0`(`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8`````)$9R965"4T0D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M& -XM0!E;&9? -XM9V5Tsections.o.uu << 'f3eccedeeefe85afebc666fca5eb0742' -Xbegin 644 sections.o -XM?T5,1@$!`0D```````````$``P`!``````````````!X'````````#0````` -XM`"@`"P`(`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8`````)$9R965"4T0D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M& -XM0!E;&9? -XM9V5T@``````````````$````(8``````````````!````"7```````````` -XM```0````H@``````````````$````+(``````````````!````"Z```````` -XM```````0````Q0``````````````$````,H```!P`@``#`$``!(``0#6```` -XM```````````0````Y```````````````$````.X``````````````!````#_ -XM``````0```,"```2``$`#P$`````````````$````!H!`````````````!`` -XM```A`0`````````````0````)0$``!`&```6`0``$@`!`"\!```````````` -XM`!`````[`0``,`<``#D!```2``$`10$`````````````$````$\!``!P"``` -XM\`$``!(``0!?`0`````````````0````90$``&`*```H`0``$@`!`'(!```` -XM`````````!````!_`0`````````````0````B@$``)`+``"7````$@`!`)D! -XM`````````````!````"@`0`````````````0````IP$``*`,``#V`P``$@`! -XM`+(!`````````````!````#"`0`````````````0````U`$````````````` -XM$````.`!`````````````!````#K`0`````````````0````^`$````````` -XM````$`````("`````````````!`````'`@`````````````0````#P(``)`1 -XM``!5!P``$@`!`!P"`````````````!`````J`@`````````````0````,0(` -XM````````````$````#@"`````````````!````!``@`````````````0```` -XM3`(`````````````$`````!S96-T:6]N`!M96UM;W9E`&5L9E]E`!U<&1A=&5? -XM5]D -XM871A`&5L9E]G971D871A`&-O<'E?6YC7W-E -XM8W1I;VYS`'=A5]C;VYT96YT`&-R96%T95]S>6UT86(`;65M8W!Y`'-T`\```$&``"8 -XM#P```A@``+8/```"%```O@\```$&``#.#P```A4``-H/```"%```X@\```$& -XM``#R#P```A4``/X/```"%```!A````$&```6$````A4``"(0```"%```*A`` -XM``$&```Z$````A4``$(0```!!@``3A````(=``!:$````A0``&(0```!!@`` -XM``"@ -XM%````B<``.X4```"'P``^10```(8```'%0```2\``!45```!,```914```(W -XM``"_%0```C<``.,5```")P``[A4```(V```&%@```C<``#06```"-0``518` -XM``(G``!@%@```C8``'06```!!@``@!8```(=``"%%@```3```)46```",0`` -XMPA8```(R``#V%@```A\``!L7```".```.Q<```(1``!1%P```BX``&@7```" -XM.0``@A<```(I``"T%P```BD``-(7```"%```VA<```$&``#J%P```A4``/(7 -XM```!!@``_A<```(=```*&````A0``!(8```!!@``(A@```(5```N&````A0` -XM`#88```!!@``1A@```(5``!+&````A@``(T8```")@``P1@```(4``#)&``` -X,`08``-D8```"%0`` -X` -Xend -f3eccedeeefe85afebc666fca5eb0742 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.err b/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.out b/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.sh deleted file mode 100644 index 6b6f5d26..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-7/strip-all-7.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-all-7 tc/strip-all-7 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} -o sections.o.1 sections.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/in/strip-all-8.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/in/strip-all-8.in.shar deleted file mode 100644 index 959c4dce..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/in/strip-all-8.in.shar +++ /dev/null @@ -1,708 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.debug.uu -# -echo x - sections.o.debug.uu -sed 's/^X//' >sections.o.debug.uu << 'END-of-sections.o.debug.uu' -Xbegin 644 sections.o.debug -XM?T5,1@$!`0D```````````$``P`!``````````````!86@```````#0````` -XM`"@`&0`6`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM) -XM$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,` -XM``D3`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L-``,(.@L["TD3.`H` -XM``P5`2<,21,!$P``#04`21,```X3``,./`P```\!`4D3`1,``!`A`$D3+PL` -XM`!$3`0L+.@L["P$3```2%@`#"#H+.PM)$P``$P0!"PLZ"SL+`1,``!0H``,. -XM'`T``!4N`0,..@L["R<,$0$2`4`&`1,``!8%``,(.@L["TD3`@8``!4P````,W!@`` -XM!6-W````!P2B````!P3M````"*(````#Z`(```7DEP````/"`0```B^P```` -XM"94'```(`D8Q`0``"FX$```"1S$!```"(P`*4P````"(SP*O0@` -XM``)\VP(```(C0`IW"````GWK`@```B-#"U]L8@`"@`@!```"(T0*L`8```*# -XM3`````(C3`IJ`@```H3]`````B-0``P!3````&D"```-O@`````'!%D"```, -XM`4P```")`@``#;X````-X0````U,``````<$;P(```P!_0```*D"```-O@`` -XM``W]````#4P`````!P2/`@``#`%,````R0(```V^````#><````-3``````' -XM!*\"```."P````$'!,\"```/+````.L"```0NP````(`#RP```#[`@``$+L` -XM``````.5"````H4W`0```Z\'```&)LL````#G0````8JRP````\L````+`,` -XM`!"[````#P`1"`9Z40,```K/!0``!GL&`P```B,`"FD#```&?!$#```"(P0` -XM`WX$```&?2P#```#``````%B`,```(C"``#D04```>&"P4``!)%;&8` -XM""9&!0``#B$(```!`QX!```()U<%```.,@$```$3!`@V]@4``!0@!0```!2V -XM!````12!`P```A1?`P```Q1+!```!!2:"```!11P`P``!A0^````!Q13`P`` -XM"!2+`P``"10S!```"A1`!P``"Q0E!@``#!3=`@``#13F!```#A2K"```#Q0$ -XM`0``$!1Z`@``$13V`@``$A2*,&```"(P``"?D%```P"&BC -XM!@``"KD&```(;-8````"(P`*P00```AMO@````(C"`I0!@``"&[6`````B,, -XM"E$````(;]8````"(Q0*[P(```AP]@4```(C'`KE!@``"'%>`````B,@"NH` -XM```(=JD&```"(R0*<`<```AW7@````(C*`H4!```"'@!!@```B,L``<$&`8` -XM``<$3`4```-?!P``"'D8!@```^`````)+F`$```#N`$```DP``4```/&!0`` -XM"3(P!0``$00*)/(&```*&P8```HD&P<```(C```)5@0```@*(1L'```*EP8` -XM``HBYP````(C``IL`0``"B3;!@```B,$``<$\@8``!$$"C8X!P``"AL&```* -XM-NT'```"(P``";L%```P"BCM!P``"I<&```**><````"(P`*#`4```HJYP`` -XM``(C!`IS!0``"BOG`````B,("IX#```*+.<````"(PP+861D``HN3`````(C -XM$`K;`0``"B],`````B,4"OX#```*,$P````"(Q@*AP$```HQ3`````(C'`K@ -XM!0``"C),`````B,@"B0````*,TP````"(R0*#00```HT3`````(C*`JG!@`` -XM"C8A!P```B,L``<$.`<``!$$"C\*"```"AL&```*/T\(```"(P``"74!```0 -XM"CI/"```"I<&```*.^$````"(P`*:`<```H\X0````(C!`K'!```"CWR```` -XM`B,("A0````*/_,'```"(PP`!P0*"```$0@*4GH(```*\`````I25@D```(C -XM``J=`0``"E)<"0```B,$``F`!@``6`I#5@D```J7!@``"D3G`````B,`"VES -XM``I%J08```(C!`MOT!```("E^P"0``"L$&```*7U8)```"(P`*I@<` -XM``I?7`D```(C!``1!`I@QPD```H;!@``"F`V"@```B,```G`````,`I7-@H` -XM``MO9F8`"EC6`````B,`"V9S>@`*6=8````"(P@+;7-Z``I:U@````(C$`H0 -XM!P``"EO6`````B,8"B0````*74P````"(R`*?P<```I?APD```(C)`H)`P`` -XM"F"P"0```B,L``<$QPD``!,$"H1C"@``%*P#````%+8````!%)4$```"%)D" -XM```#%(@&```$`!$("IB("@``"@@"```*F#8*```"(P`*SP,```J8B`H```(C -XM!``'!#8*```1"`J9LPH```H(`@``"IGM!P```B,`"L\#```*F;,*```"(P0` -XM!P3M!P``$0@*FMX*```*"`(```J:3P@```(C``K/`P``"IK>"@```B,$``<$ -XM3P@``!$("IP)"P``"@@"```*G!L'```"(P`*SP,```J<"0L```(C!``'!!L' -XM```1"`J>-`L```H(`@``"IX;!P```B,`"L\#```*G@D+```"(P0`$0@*H%D+ -XM```*P08```J@5@D```(C``JF!P``"J!<"0```B,$`!$$"J)P"P``"E\%```* -XMHE8)```"(P``"3\"``"("F8�``"D0!```*9^<````"(P`*L`0```IJ3``` -XM``(C!`HX`@``"FM,`````B,("VEE8P`*;4P````"(PP+;V5C``IN3`````(C -XM$`ME:6X`"F\�```B,4"GL&```*<`8-```"(Q@*I0,```IR3`````(C'`HW -XM````"G-,`````B,@"E0(```*>4P````"(R0*_08```IZ3`````(C*`HN`P`` -XM"GM,`````B,L"J8!```*?$P````"(S`*FP4```I]3`````(C-`I(!0``"GY, -XM`````B,X"M8"```*@%8)```"(SP*)@@```J!5@D```(C0`H_!0``"H)6"0`` -XM`B-$"M\'```*BCP*```"(T@*$@,```J33`````(C3`H;!```"I8Q`0```B-0 -XM"AX````*F&,*```"(U0*7@0```J9C@H```(C7`K/`@``"IJY"@```B-D"B8! -XM```*G.0*```"(VP*60$```J>#PL```(C=`I_!P``"J`T"P```B-\"E@'```* -XMHED+```#(X0!``<$.P4``!5D"````9H!`````'0`````````3@T``!9E8W`` -XM`9E.#0``+````!9S96,``9E6"0``50```!=S``&;5@D```%1``<$<`L``!@! -XM,@4```$-`P&`````;0(``(D```"L#0``&65C<``!#`-.#0``M0```!IS``$. -XM`U8)``#K````&[<#```!#P.L#0``"0$``!QS:``!$`/%!@```Y&L?P`'!*\& -XM```8`2L````!WP(!<`(``'P#```]`0``)0X``!EE8W```=X"3@T``&D!```: -XM("3````.8!```=3@,```'B`DP`````'@L&```!T`(!@`,``/(#```$ -XM`@``;0X``!EE8W```<\"3@T``#`"```?EP8```'/`N<```!#`@``&G,``=$" -XM5@D``&P"````&`%`!@```9D"`0`$```#!@``B@(``.\.```996-P``&8`DX- -XM``"V`@``&G-A``&:`D\(``#6`@``&Z@````!FP)6"0``]`(``"!S``&;`E8) -XM```:;V0``9P"K`T``!(#```:;W,``9T"J08``#L#```<;W-H``&>`L4&```# -XMD:Q_`!@!?0$```%T`@$0!@``)@<``%D#``!&#P``&7,``7,"5@D``(4#```: -XM:60``74"K`T``-(#```:;V0``74"K`T``/L#```;J00```%V`DP````D!``` -XM`!@!\00```%@`@$P!P``:0@``$($``"_#P``&65C<``!7P).#0``;@0``!EI -XM@@````DR0$```%5`4P```!@ -XM#```E@P``(T(``!Q$0``%F5C<``!5$X-``"Y"```(I<&```!5.<```#,"``` -XM(W-A8P`!5NT'``#?"````"6Z!P```38!3`````&F$0``)F5C<``!-4X-```G -XMEP8```$UYP```"@I!(``#%?8P`"AP%,````,5]P -XM``*'`7@2````!P3[`@``'L,(```!'P(!H!```(@1``!X"@```1,``!ED``$> -XM`N<```"D"@``&7-Z``$>`O(```#-"@``&F,``2`"YP```/8*```R3Q(``"`` -XM```!)`+A$@``,VP2```4"P``+6$2````-$\2```X`````28",VP2```]"P`` -XM,V$2``!Q"P`````U$0$```%3`0$!I1,``#%E8W```5(!3@T``#%S``%2`58) -XM```@=``!5`%6"0``'9<&```!50'G````(&ES:``!5@'%!@``(')E;``!5P'0 -XM!@``'5D%```!6`&E$P``'?<&```!60&K$P``(&ED``%:`:P-```=J00```%; -XM`4P````@:0`!6P%,````';4%```!6P%,````(&-A<``!6P%,``````<$40,` -XM``<$,`4``"4C!P```7D!3`````'9$P``)F5C<``!>$X-```GEP8```%XYP`` -XM```UUP0```'7`0$!>A0``#%E8W```=8!3@T``#%S``'6`58)```@T'```=!P0```'9`?(````=`@(```'9`?(````@<``!V0'R````(&QE;@`! -XMV0'R````(&(``=H!X0```"!C``':`>$````@9``!V@'A````('-R8P`!V@'A -XM````(&5N9``!V@'A````'?D````!VP%,`````#![!0```4`"`;X````!SQ0` -XM`#%S``$_`E8)```VQP0```$_`L\4```@:60``4$"K`T``"!B``%"`N$````@ -XM<5```M&Q,``"T/$P``-Y`````O)1,``.8+```O -XM+Q,``!H,```X.Q,```.1G'\X1Q,```*17"]3$P``.`P``#A?$P```W6(?SAK -XM$P```W6$?R]V$P``Q`P``#F"$P``.8P3```YF!,`````,K$3```8`0```4,! -XM!A8``#/-$P``^`P``"W"$P```#+9$P``,`$```%$`:\6```M\Q,``"WG$P`` -XM-V`!```O_1,``!8-```O"10``#0-```Y%10``#DA%```+RL4``"1#0``.3<4 -XM```O010``/$-```O2Q0``#8.```Y510``#AA%````W6,?SEM%```-'H4``#P -XM`0```=T!+984```MC!0``#<0`@``+Z(4``"6#@``.:T4```YMQ0``"_"%``` -XM(@\````````ZU10``(L4``"W%````4@!X18``"WQ%```+>84```NI!0``+<4 -XM```O_!0``$L/`````#0(%0``0`(```%)`2T6%0``-W`"```O(!4``'0/```O -XM*Q4``+X/```T3Q(``+`"```!.P(S;!(``-P/```M81(````````[9`0```** -XM>!(```$!/$<"```"H`%,`````0$`<`0```(`N`````$!^PX*``$!`0$````! -XM+W5S7,``'-E8W1I;VYS+F,`````K?P\/`#00CAE0@L"!,(+`AT",IL#40BW9@@ZY0-L<68(.M<9@RPB=!`(#XGX(5;H$`0.9?P(N`;H#Y0#%`YM_J<>?""V.@`-V1P,DQ0-BJ0,* -XM[P@6`[U^Q0/2`P(G`?ZL"*H#=V,(JG(#\WWO`Q\('0B2QG((<`,)C;@#YP$( -XM*U8#B7]_"%T(=0@MD0@>9)HZ90@>ME>4-3WFSHX#"P@K`VF;`Q"@I(&9A:6QE9#H@)7,`-C8X(&=E;&9?9V5T6UT86(`+G-T@P```$`4```````````8`P``'H,```!`%(``````````'P, -XM``"(#````0!0D@P``)4,```!`%```````````*`,``"A#````@!T!*$,``"C -XM#````@!T"*,,``"6$````@!U"```````````H`P``,L,```"`)$`RPP``)80 -XM```"`'4(```````````R#0``6`\```$`4Y#P``K@\```$`4'80 -XM``!^$````0!0``````````!##@``1@X```$`4$4/``""#P```0!0```````` -XM``"@$```H1````(`=`2A$```HQ````(`=`BC$```B!$```(`=0@````````` -XM`*`0``"Y$````0!0Y1```/$0```!`%`=$0``)1$```$`4```````````H!`` -XM`+00```!`%+E$```Z!````$`4AT1```E$0```0!2``````````"R$```(1$` -XM``$`4R41``"($0```0!3``````````##$```Z!````$`4AT1```E$0```0!2 -XM%@```0!7MA8``,L6```!`%?7%@``KQ@```$`5]T8``#E&````0!7```` -XM``````#.%P``UA<```$`4%$8``!H&````0!0:Q@``(D8```!`%#=&```Y1@` -XM``$`4```````````/A(``$,2```!`%*&%0``BQ4```$`4@``````````ZA4` -XM`/(5```!`%!<%@``7!8```$`4```````````M!$``(P3```#`'6@?XP3``"4 -XM$P```0!2E!,``#T6```#`'6@?ST6``!`%@```0!20!8``&L6```#`'6@?VL6 -XM``!P%@```0!28%0``'Q8```$`5X06``"> -XM%@```0!7MA8``,L6```!`%?.%P``[A<```$`5P``````````M!$``-\3```# -XM`'60?]\3```"%````0!0`A0``*H5```#`'60?ZH5``"P%0```0!0L!4``.48 -XM```#`'60?P``````````M!$``-H1```!`%8`$@``"!(```$`5M,3```Y%0`` -XM`0!64Q4``($5```!`%:8%0``ZA4```$`5H06``">%@```0!6MA8``,L6```! -XM`%;.%P``[A<```$`5@``````````31(``-$2```!`%-1$P``Z!,```$`4_83 -XM```:%````0!3*Q0``$04```!`%-4%```@Q0```$`4SD5```\%0```0!34Q4` -XM`%85```!`%.J%0``^!4```$`4Q\6```H%@```0!3/18``&<6```!`%-P%@`` -XMA!8```$`4\X7```"&````0!3``````````!8$P``=Q,```$`4#D5```_%0`` -XM`0!0SA<``-87```!`%```````````+01``#'$0```0!0`!(```L2```!`%"F -XM%```KQ0```$`4```````````M!$``,T1```!`%,`$@``!Q(```$`4],4```Y -XM%0```0!3A!8``)X6```!`%.V%@``RQ8```$`4\X7``#N%P```0!3```````` -XM``#_%```"Q4```$`4,X7``#6%P```0!0``````````"T$0``[Q$```$`4@`2 -XM```^$@```0!2T1(``-02```!`%(9%0``.14```$`4K86``#&%@```0!2```` -XM``````"W`````@``````0Q<``%0-``!S971?5]S:&1R`+\/``!R97-Y;F-?$```%@``MA8``.,2``!1$P`` -XM``````````#U$@``41,``,48``#E&```D1@``+D8``!/&```:Q@``#(8``!* -XM&```#A@``"88``"X%P``SA<``(87``"L%P``;!<``'H7``!5%P``71<``"X7 -XM```Q%P``'Q<``"L7``#_%@``!1<``/H6``#\%@``U18``.46``">%@``MA8` -XM````````````.1(``&`2``"!%0``F!4`````````````8!(``-$2``#N%P`` -XM`A@``*H5``"$%@``.14``($5``!1$P``@!0`````````````8!(``-$2``#N -XM%P```A@``'`6``"$%@``^!4``#T6``#R%0``]A4``.<5``#J%0``JA4``,L5 -XM``!&%0``@14``&$4``"`%```/A0``%04```B%```*Q0``!<4```:%```LA,` -XM`!04``"9$P``J!,``)03``"6$P``@1,``(P3``!1$P``=!,````````````` -XM8!(``-$2``!P%@``A!8``%$3``!>$P````````````!Q$@``GA(``'`6``"$ -XM%@``5A,``%X3``"T$@``P1(``+`2``"R$@````````````"W%```.14``,X7 -XM``#N%P``MA8``-46``"$%@``GA8``)@5``"J%0````````````"W%```X!0` -XM`-87``#N%P``MA8``-46``"8%0``JA4``/T4```Y%0``]A0``/@4``#R%``` -XM]!0`````````````&14``#D5``"V%@``U18`````````````16QF-C1?061D -XM<@!?7W-&24Q%6`!S861D7VQI6U?5]D871A`&-O<'D`95]E;G1R>0!U:6YT,S)?=`!T -XM<65?<')E=@!S96-T:6]N0!C;VUP@!R96YA;64` -XM9%]N97AT`'9?F5? -XM=`!I7!E -XM`&1?=F5R7!E`'5N```"````!<````(````!`````@```!>`````0`` -XM````````````"C@``#````````````````$`````````9P````$````R```` -XM`````#HX``":`@`````````````!`````0```'8````!````,@````````#4 -XM.@``+0``````````````!`````$```")`````0``````````````!#L``.0! -XM``````````````0`````````A0````D``````````````&!X``#P````%P`` -XM``T````$````"````)8````!``````````````#H/```&Q`````````````` -XM`0````````"E`````0```````````````TT``+L```````````````$````` -XM````H0````D``````````````%!Y```(````%P```!`````$````"````+D` -XM```!``````````````"^30``(````````````````0````````"U````"0`` -XM````````````6'D``!`````7````$@````0````(````R`````$````````` -XM`````-Y-``#(`@`````````````!`````````-8````!````,`````````"F -XM4```S@@``````````````0````$````1`````P``````````````=%D``.$` -XM``````````````$``````````0````(``````````````$!>```P!```&``` -XM`!8````$````$`````D````#``````````````!P8@``8`(````````````` -XM`0```````````````````````````````0``````````````!`#Q_P`````` -XM``````````,``0`````````````````#``,``````````````````P`$```` -XM``````````````,`!0`````````````````#``8``````````````````P`( -XM``P`````````=`````(``0`````````````````#``L`'P```(`#``!R```` -XM`@`!``````````````````,`#``O````,`P``"T````"``$`0P```&`,```V -XM`````@`!`%4```"@$```Z`````(``0`````````````````#``T````````` -XM`````````P`/``````````````````,`$``````````````````#`!(````` -XM`````````````P`4``````````````````,`%0`````````````````#``H` -XM8````(````#M`0``$@`!`&T``````````````!````!Z```````````````0 -XM````A@``````````````$````)<``````````````!````"B```````````` -XM```0````L@``````````````$````+H``````````````!````#%```````` -XM```````0````R@```'`"```,`0``$@`!`-8``````````````!````#D```` -XM```````````0````[@``````````````$````/\`````!````P(``!(``0`/ -XM`0`````````````0````&@$`````````````$````"$!`````````````!`` -XM```E`0``$`8``!8!```2``$`+P$`````````````$````#L!```P!P``.0$` -XM`!(``0!%`0`````````````0````3P$``'`(``#P`0``$@`!`%\!```````` -XM`````!````!E`0``8`H``"@!```2``$`<@$`````````````$````'\!```` -XM`````````!````"*`0``D`L``)<````2``$`F0$`````````````$````*`! -XM`````````````!````"G`0``H`P``/8#```2``$`L@$`````````````$``` -XM`,(!`````````````!````#4`0`````````````0````X`$````````````` -XM$````.L!`````````````!````#X`0`````````````0`````@(````````` -XM````$`````<"`````````````!`````/`@``D!$``%4'```2``$`'`(````` -XM````````$````"H"`````````````!`````Q`@`````````````0````.`(` -XM````````````$````$`"`````````````!````!,`@`````````````0```` -XM`'-E8W1I;VYS+F,`:6YS97)T7W1O7W-E8U]L:7-T`&%D9%]T;U]S:'-T5]S:&1R`%]?=61I=F1I,P!R97-Y;F-?'1S8VX`96QF7W-T```)`@```AT``!$"```!"0``(0(```(>```M`@```AT``#4"```!"0`` -XM10(```(>``!1`@```AT``%D"```!"0``:0(```(>``"1`@```A<``*8"```" -XM(```TP(```(:``#K`@```AD``/L"```"(0``'`,```(=```D`P```0D``#0# -XM```"'@``0`,```(=``!(`P```0D``%@#```"'@``8`,```(=``!H`P```0D` -XM`'@#```"'@``H`,```(B``"T`P```0D``+P#```"(@``Q`,```$)``#,`P`` -XM`B(``-0#```!"0``W`,```(B``#D`P```0D``.P#```"(@``)`0```$)``!* -XM!````B0``&@$```")0``PP0```(8```8!0```A<``$`%```"&0``9P4```(= -XM``!O!0```0D``'\%```"'@``AP4```$)``"3!0```B8``)\%```"'0``IP4` -XM``$)``"W!0```AX``,,%```"'0``RP4```$)``#;!0```AX``.<%```"'0`` -XM[P4```$)``#_!0```AX``#<&```"&```BP8```(H``"6!@```B$``.H&```" -XM'0``\@8```$)```"!P```AX```H'```"'0``$@<```$)```B!P```AX``$P' -XM```"%P``9@<```(7``#K!P```AD```4(```"'0``#0@```$)```="````AX` -XM`"D(```"'0``,0@```$)``!!"````AX``$T(```"'0``50@```$)``!E"``` -XM`AX``.@(```"*@``2PD```(7``!]"0```AD``.T)```"*@``#0H```$+```2 -XM"@```BP``"`*```"'0``*`H```$)```X"@```AX``$0*```"'0``3`H```$) -XM``!<"@```AX``'D*```"+@``E0H```(E``#L"@```B\``#0+```"'0``/`L` -XM``$)``!,"P```AX``%@+```"'0``8`L```$)``!P"P```AX``'@+```!"0`` -XMA`L```(>``"Y"P```C$``-P+```",@``%PP```$)```C#````AX``$8,```" -XM,```=@P```(P``"Y#````B4``,T,```!"0``&@T```(T```V#0```0D``&0- -XM```")0``N0T```(U``#*#0```B0``.`-```"&@``^`T```$)```)#@```0D` -XM`"4.```!"0``5`X```(V``!Q#@```A<``)4.```"-P``K0X```$)``#L#@`` -XM`BD``/D.```!"0``-0\```(P``!X#P```0D``)@/```"(0``M@\```(=``"^ -XM#P```0D``,X/```"'@``V@\```(=``#B#P```0D``/(/```"'@``_@\```(= -XM```&$````0D``!80```"'@``(A````(=```J$````0D``#H0```"'@``0A`` -XM``$)``!.$````B8``%H0```"'0``8A````$)``!R$````AX``'H0```"'0`` -XM@A````$)``"2$````AX``+40```!.```OQ````$Y``#M$````3@``/<0```! -XM.0``)A$```$Y```V$0```CH``$$1```!.0``4!$```(Z``!J$0```CL``'\1 -XM```".P``SA$```$)``#K$0```CT```P2```!"0``'1(```$)``!J$@```C(` -XM`)02```"/@``K!(```(H``#($@```C(``/$2```"%P``4A,```(A``"0$P`` -XM`C(``!L4```"/P``-A0```(Q``"'%````B<``*`4```",```[A0```(H``#Y -XM%````B$```<5```!.```%14```$Y``!E%0```D```+\5```"0```XQ4```(P -XM``#N%0```C\```86```"0```-!8```(^``!5%@```C```&`6```"/P``=!8` -XM``$)``"`%@```B8``(46```!.0``E18```(Z``#"%@```CL``/86```"*``` -XM&Q<```)!```[%P```AH``%$7```"-P``:!<```)"``""%P```C(``+07```" -XM,@``TA<```(=``#:%P```0D``.H7```"'@``\A<```$)``#^%P```B8```H8 -XM```"'0``$A@```$)```B&````AX``"X8```"'0``-A@```$)``!&&````AX` -XM`$L8```"(0``C1@```(O``#!&````AT``,D8```!"0``V1@```(>```&```` -XM`04```P````!%```$0````$4```5`````10``!D````!`@``'0````$"```A -XM`````0<``"@````!%```+P````$4```V`````10``#L````!%```2`````$4 -XM``!4`````10``&$````!%```9@````$4``!S`````10``'@````!%```A0`` -XM``$4``",`````10``),````!%```F`````$4``"E`````10``*P````!%``` -XML0````$4``#!`````10``,P````!%```UP````$4``#S`````10``/X````! -XM%```"0$```$4```5`0```10``",!```!%```.`$```$4``!K`0```10``'D! -XM```!%```E0$```$4``"C`0```10``+$!```!%```OP$```$4``#-`0```10` -XM`-L!```!%```]P$```$4```3`@```10``"$"```!%```/0(```$4``!+`@`` -XM`10``-`"```!%```_`(```$4```'`P```10``!(#```!%```-0,```$4``!# -XM`P```10``%(#```!%```70,```$4``!H`P```10``',#```!%```?@,```$4 -XM``")`P```10``)P#```!%```J@,```$4``"X`P```10``,8#```!%```U`,` -XM``$4``#B`P```10``/`#```!%```_@,```$4```,!````10``!H$```!%``` -XM*`0```$4```V!````10``$0$```!%```4@0```$4``!A!````10``'0$```! -XM%```@@0```$4``"0!````10``)X$```!%```K`0```$4``"Z!````10``,@$ -XM```!%```U@0```$4``#D!````10``/($```!%````04```$4```4!0```10` -XM`"(%```!%```,04```$4``!'!0```10``$T%```!%```6`4```$4``!F!0`` -XM`10``&P%```!%```<@4```$4``!X!0```10``'X%```!%```A`4```$4``"* -XM!0```10``)`%```!%```E@4```$4``""````10``&P(```!%```>P@```$4``"'"````10``.8(```!%``` -XM]`@```$4```0"0```10``!X)```!%```+`D```$4```Z"0```10``$@)```! -XM%```:PD```$4``!Y"0```10``(@)```!%```E`D```$4``"B"0```10``+D) -XM```!%```R`D```$4``#^"0```10```P*```!%```&@H```$4```H"@```10` -XM`$4*```!%```2PH```$4``!1"@```10``%<*```!%```70H```$4``!L"@`` -XM`10``'H*```!%```EPH```$4``"E"@```10``,(*```!%```T`H```$4``#M -XM"@```10``/L*```!%```&`L```$4```F"P```10``#T+```!%```2PL```$4 -XM``!B"P```10``'$+```!%```?0L```$4``"+"P```10``)D+```!%```T0L` -XM``$4``#?"P```10``.T+```!%```^PL```$4```)#````10``!<,```!%``` -XM)0P```$4```S#````10``$$,```!%```3PP```$4``!=#````10``&L,```! -XM%```>0P```$4``"'#````10``)4,```!%```HPP```$4``"Q#````10``+\, -XM```!%```S0P```$4``#;#````10``.D,```!%```]PP```$4```-#0```10` -XM`!0-```!`@``&`T```$"```<#0```1```"\-```!$```/@T```$0``!6#0`` -XM`10``%X-```!`@``8@T```$"``!F#0```1```'H-```!$```B`T```$0``"- -XM#0```10``)@-```!$```M`T```$4``"\#0```0(``,`-```!`@``Q`T```$0 -XM``#8#0```1```.8-```!$```]`T```$0```)#@```10``!0.```!$```&0X` -XM``$4```F#@```10``"X.```!`@``,@X```$"```V#@```1```$H.```!$``` -XM3PX```$4``!:#@```1```&@.```!$```;PX```$4``!W#@```0(``'L.```! -XM`@``?PX```$0``"3#@```1```*(.```!$```IPX```$4``"R#@```1```,L. -XM```!$```V@X```$0``#Q#@```10``/D.```!`@``_0X```$"```!#P```1`` -XM`!,/```!$```(@\```$0```Q#P```1```#8/```!%```00\```$0``!(#P`` -XM`10``%`/```!`@``5`\```$"``!8#P```1```&P/```!$```>P\```$0``"* -XM#P```1```(\/```!%```F@\```$0``#!#P```10``,D/```!`@``S0\```$" -XM``#1#P```1```.4/```!$```\P\```$0```3$````1```!H0```!%```)1`` -XM``$"```I$````0(``"T0```!$```0!````$0``!.$````1```%,0```!%``` -XM7A````$0``!S$````10``'X0```!$```A1````$4``"0$````0(``)00```! -XM`@``F!````$0``"K$````1```+`0```!%```NA````$0``#)$````1```-@0 -XM```!$```WA````$4``#I$````0(``.T0```!`@``\1````$0```$$0```1`` -XM``D1```!%```$Q$```$0```B$0```1```"@1```!%```,Q$```$"```W$0`` -XM`0(``#L1```!$```3A$```$0``!3$0```10``%T1```!$```;!$```$0``!R -XM$0```10``(X1```!%```J!$```$4``"O$0```0(``+,1```!`@``MQ$```$0 -XM``#*$0```1```-<1```!$```W!$```$4``#F$0```1```/01```!$```"!(` -XM``$4```2$@```1```!<2```!%```(1(```$0```J$@```1,``#L2```!`@`` -XM/Q(```$"``!($@```1```%`2```!%```?Q(```$4``"'$@```0(``(L2```! -XM`@``CQ(```$0``"A$@```1```+`2```!$```OA(```$0``#'$@```1,``-<2 -XM```!$```YA(```$3``#R$@```1```/L2```!$````A,```$4```P$P```10` -XM`%03```!%```8!,```$4``!W$P```10``(T3```!%```LA,```$4``#.$P`` -XM`10``-H3```!%```"A0```$4```6%````10``&X4```!%```>Q0```$4``"7 -XM%````10``,,4```!%```UA0```$4``#R%````10```D5```!%```+!4```$4 -XM```Z%0```10``$(5```!`@``1A4```$"``!*%0```1```%X5```!$```=14` -XM``$3``"+%0```1,``)05```!$```G14```$0``"W%0```1```-(5```!$``` -XM[!4```$3``#\%0```1````L6```!$P``(18```$3```J%@```1```#,6```! -XM$```1A8```$0``!4%@```1```%T6```!$```>18```$3``"+%@```1,``)06 -XM```!$```IQ8```$0``"T%@```0(``+@6```!`@``SA8```$"``#2%@```0(` -XM`-L6```!$```YA8```$3``#S%@```1,``/P6```!$```!1<```$0```.%P`` -XM`1,``!H7```!$```*!<```$4```U%P```10``,4````!`@``&`````$/```< -XM`````0(``#@````!#P``/`````$"``!8`````0\``%P````!`@``>`````$/ -XM``!\`````0(``)@````!#P``G`````$"``"X`````0\``+P````!`@``V``` -XM``$/``#<`````0(``/@````!#P``_`````$"```8`0```0\``!P!```!`@`` -XM.`$```$/```\`0```0(``%@!```!#P``7`$```$"``!P`0```0\``'0!```! -XM`@``B`$```$/``",`0```0(``*@!```!#P``K`$```$"``#(`0```0\``,P! -X>```!`@``!@````$&```&`````08``!`````!`@`` -X` -Xend -END-of-sections.o.debug.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/out/strip-all-8.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/out/strip-all-8.out.shar deleted file mode 100644 index 876fc7e7..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/out/strip-all-8.out.shar +++ /dev/null @@ -1,885 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.debug.1.uu -# sections.o.debug.uu -# -echo x - sections.o.debug.1.uu -sed 's/^X//' >sections.o.debug.1.uu << '7441d94dfba58dda29235b0205ebc7b3' -Xbegin 644 sections.o.debug.1 -XM?T5,1@$!`0D```````````$``P`!``````````````!P'````````#0````` -XM`"@`"0`(`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8`````)$9R965"4T0D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M& -XM0!E;&9? -XM9V5Tsections.o.debug.uu << '07454e9209d1c5eccb83c5c72e752a37' -Xbegin 644 sections.o.debug -XM?T5,1@$!`0D```````````$``P`!``````````````!86@```````#0````` -XM`"@`&0`6`````````````````%6)Y5:)QE.+2'R)TX7)=#^+0A"+4A0[411R -XM''<%.T$07@`````BT80BU84QT6X -XM`P```,=%O`````")1`````` -XMQT7<`````(M&"(D$).C\____A<")PP^$Z@```/9'3!`/A(\```"+1AB+5AR) -XM1=2-1;2)5=B)1"0$BT8(B00DZ/S___^%P`^$W@```,<#`0```,=#!`````"+ -XM1@R)0PB+1AB+5AS'0PP`````QT,0`````(E#%(E3&,=#'`$```#'0R`!```` -XMBT8(B00DZ/S___^)1"0$BT<8B00DZ/S___^%P`^$I0```(/$3%M>7UW#C70F -XM`(M&&(M6'(M.#(/`\(/2_XE&&(E6'(E$)`B-01")1"0$B0PDZ/S____I1/__ -XM_\<$)/_____H_/___\=$)`0`````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0>````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0W -XM````QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`15````QP0D1@`` -XM`(E$)`CH_/___XUV`%6)Y5=64X/L3(MU"(M>?(7;='>-?;2)?"0$BT,(B00D -XMZ/S___^%P'1[BP.)1"0$BT9$B00DZ/S___^+5=R%THE%M'0LBT9\A7UW#QT7<`````.O,QP0D -XM_____^C\____QT0D!'(```#'!"1&````B40D".C\____QP0D_____^C\____ -XMQT0D!#<```#'!"1&````B40D".C\____B00DZ/S____'1"0$C@```,<$)$8` -XM``")1"0(Z/S___^-="8`58GE@^P8B77\B=:)7?B+6$2+0PR%P'08B70D!(D< -XM).C\____BUWXBW7\B>Q=PXGVQT0D!*4```")'"3H_/___\=$)`2F````B1PD -XMZ/S____'1"0$K@```(D<).C\____QT0D!+8```")'"3H_/___^NFC;0F```` -XM`(V\)P````!5B>575E.#[$R+10B+6'R%VW4)ZQB+6TB%VW01BS.Y"@```+^V -XM````_/.F=>B+50B+0B)64B)04R+0TR)"(U!2(E#3(D\).C\____A<")P@^$Q@```,<``0```,=` -XM!`````#'0`P`````QT`0`````(M&!(E""(M&",="&`````#'0AP!````QT(@ -XM`0```(E"%(U5M(E4)`2)/"3H_/___X7`#X27````QT6X`0```(M%"(L6Z$O^ -XM__^-1;2)1"0$B3PDZ/S___^%P`^$DP```(MV#(7V#X7I_O__@\1,6UY?7````QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`3E````QP0D1@```(E$)`CH_/___\<$)/_____H -XM_/___\=$)`0W````QP0D1@```(E$)`CH_/___XVV`````(V\)P````!5B>56 -XM4X/L$(MU"(M>1(7;=`>+3@R%R71U,=OK4XUV`(M&"(D$).C\____A<")P0^$ -XMG0```(M61(72=5F+`XM3!(D!BT,,B5$$BU,0B4$,BT,(B5$0BU,8B4$(BT,< -XMB4$7564X'LD````(MU$(U%N(E$)`2+10R)!"3H_/__ -XM_X7`#X2E````C9UX____B5PD!(DT).C\____A<`/A*\```"+1;B+512)A7C_ -XM__^+1;R)A7S___^+1<")18"+1<2)182+1")1:"+1>2)1:2+1>B)1:B+1>R)1:R+1?")1;"+ -XM1?2)1;2+10CHG?O__XE<)`2)-"3H_/___X7`=%*!Q)````!;7EW#QP0D____ -XM_^C\____QT0D!!P!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D -XM!#H!``#'!"1&````B40D".C\____QP0D_____^C\____QT0D!%@!``#'!"1& -XM````B40D".C\____C;0F`````%6)Y5=64X/L?(M%"(MX?(7_#X0N`0``QT6H -XM`````,=%K`````#I_````(VV`````(MW%#MUK(M?$`^"$0$``'<).UVH#X(& -XM`0``BT<\A<"0=4^+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2) -XM5"0$Z/S___^)59R+39R)19@/K\8/K\L!P8M%F/?CC301B4<0B7<4BUVHBW6L -XMBT=`A<`/A88```"+5S"+3S2)T(/P"`G(=!*)R`G0=`R+7Q"+=Q0#7Q@3=QR- -XM5;")5"0$BT<(B00DZ/S___^%P`^$P0```(M'$(M7%(E%R(E5S(M'&(M7'(E% -XMT(U%L(E5U(E$)`2+1PB)!"3H_/___X7`#X2S````BW](A?]T)8E=J(EUK(M% -XMK`M%J`^%_O[__XM?$(MW%`-?&!-W'(M_2(7_==N#Q'Q;7E]=PXUV`(M'/(7` -XM=4.+7RB+=RR)V(/`_XGR@]+_`T6H$U6LB5PD"(ET)`R)!"2)5"0$Z/S___^) -XM592+392)19`/K\8/K\L!P8M%D.GV_O__QP0D`````.C\____ZZ_'!"3_____ -XMZ/S____'1"0$564X/L4(MU"(U%N(E$)`2+1A2)!"3H -XM_/___X7`#X2G````QT0D!%@```#'!"0!````Z/S___^%P(G##X31````BT7@ -XMBU7DB4,0B5,4BT9\N@$```"%P'06,-*-=@"#>$`!BT!(@](`A7LCBULLA=MT'(L#B30D -XMB40D!.C\____A!@`#Y7"R8G0PXUV`%6)Y8/L&,=$ -XM)`@`````B50D!(D$).C\____A575E.#[&S'1"0$6````,<$)`$```#H_/___XM5"(7` -XMB4)$#X1S`P``QP"V````QT`$`````,=`&`````#'0!P`````QT`H`0```,=` -XM+`````#'0#P`````QT`P`P```,=`-`````"+50B-1?")1"0$BT(4B00DZ/S_ -XM__^%P`^$+`,``,=%H`````#I$0$``(MUG+^F````N0@```#SI@^%K@$``(M% -XM"(-X2`$/A.\```#'1"0$6````,<$)`$```#H_/___X7`#X3.`@``B<.+19R) -XM`XM5H(E3!(M%R(M5S(E#$(E3%(M%T(M5U(E#&(E3'(M%X(M5Y(E#*(E3+(M% -XMM,=#-`````")0S"+50B)7"0$B10DZ/S___^)0SR+50B+0AB)!"3H_/___X7` -XMB4,(#X0=`@``BT6@B00DZ/S___^%P(E#.`^$*P(``(MUG+D*````O[8```#\ -XM\Z8/A_^__^+`XM5"(E$)`R+0PB) -XM1"0(BT,$B10DB40D!.C\____Z1#___^+=9R_K@```+D(````\Z8/A#W^__^+ -XM50B+0C2%P'4+BT(XA<`/A#7^__^+50B+19S'1"0(`````(D4)(E$)`3H_/__ -XM_XM5"(MZ-(7_=`^%P'0+BW`DA?8/A?'^__^+50B+6CB%VW03A<`/A-_^__^+ -XM2!R%R0^$U/[__XMUG+D*````O[8```#\\Z8/DL`/E\(HP@^^PH7`#X0H____ -XMZ;W]___H_/___X7`B?8/A=````"#Q&Q;7E]=P\<$)/_____H_/___\=$)`3^ -XM`0``QP0D1@```(E$)`CH_/___\<$)/_____H_/___\=$)`0:`@``QP0D1@`` -XM`(E$)`CH_/___\<$)/_____H_/___\=$)`0P`@``QP0D1@```(E$)`CH_/__ -XM_\<$)/_____H_/___\=$)`1&`@``QP0D1@```(E$)`CH_/___\=$)`2K`0`` -XMQP0D1@```.C\____QP0D_____^C\____QT0D!.,!``#'!"1&````B40D".C\ -XM____B00DZ/S____'1"0$C@```,<$)$8```")1"0(Z/S___^-=@"-O"<````` -XM58GE5U93C3P0@^P,.?AS;8G#ZS&A`````(7`=6B+%0````"+0@B#Z`&%P(E" -XM"`^(GP```(L"Q@`*@\`!B0*#PP$Y^W0X#[83A-)TR*$`````A$N+`8GR@\,!B!"#P`$Y^XD!=R,````BT4(BT!\A<")18!T5XU5Y(F5 -XM?/___^L-BTV`BTE(AF+&;^F````N0@```#\B=[S -XMIG4MBUT(]D-,0'7-B1PDZ/S___^#2TQ`BTV`BTE(A -XM7UW#OZX```"Y"````(G>\Z9TP_R_M@```+D*````B=[SIG2(BT4(@WA(`0^$ -XMF````(M%"(G:Z!WZ__^%P`^$-@,``#';QT60`````,=%H`````#K08UV`(M% -XMH`-#%(D$).C\____B460BW60A?8/A/0#``"+4PB+0Q2+39`#3:")5"0$B40D -XM"(D,).C\____BU,4`56@BTV`B5PD!(M!!(D$).C\____A<")PP^$EP```(M] -XMD(7_=9^+0Q2)!"3H_/___XE%D.N@BU6`BT(P@_`)"T(T#X56____C4VDB4PD -XM!(M"!(D$).C\____A<`/A+P%``"+70CV0TP0#X64`P``BT-\AC^___H_/___X7`#X5P!```BTV0A_S__XM=@(M%"(L3Z!KW__^%P`^$,O___^DA_O__BUV0BT64B7PD"(E< -XM)`2)!"3H_/___XM5H(M-G(T$%\8$"`"#P`&)1:#IO?[__XM%"(G:Z*7V__^% -XMP`^$[?[__^FS_/__D(VT)@````#H^_K__^E<____BU60BT6<`T6@B7PD"(E4 -XM)`2)!"3H_/___P%]H.F)_O__BU6`BTT(QT0D"`````"+`HD,)(E$)`3H_/__ -XM_XMP#(DT).C\____B70D!(G#B40D"(M%G`-%H(D$).C\____BT6<`UV@Q@0# -XM`(/#`8E=H.E*_O__BU6@BTV0BUVD< -XM_?__QT0D!($"``#'!"1&````Z/S___^A`````,<$)`H```")1"0$Z/S____I -XM%OO__XM-"(M%S(M1/#M".'0IBT6`BQCI@_O__XE4)`3'!"0*````Z/S____I -XMZ?K__XM-@(L9Z63[__\Q_\=%B`````#'180`````BUV$BU6`B5PD!(M"!(D$ -XM).C\____A<")180/A$4!``"+182-7>2)7"0(QT0D!`````")!"3H_/___SN% -XM?/___P^%^P```(M5"(M=\(M"0(M`!(D$).C\____BTT(B5PD"(E$)`2+012) -XM!"3H_/___X7`#X2E````BUT(B40D!(D<).C\____A<`/A''___^#>Q`!=#+' -XM!"1`````Z/S___^%P'1DB46(BU7HBTV(BT7DB5$$BU7PB0&+1>R)40R)00CI -XM.?___\<$)"````#H_/___X7`=#*)QXM%Y(D'BT7LB4<$Z1?___^)!"3H_/__ -XM_\=$)`0#`0``QP0D1@```(E$)`CH_/___\=$)`1S`@``QP0D1@```.C\____ -XMQP0D_____^C\____QT0D!!H"``#'!"1&````B40D".C\____QP0D_____^C\ -XM____QT0D!%P"``#'!"1&````B40D".C\____Z/S___^%P`^%=____XM-"(-Y -XM$`&)]G1[BU6(BT6`B5`,BTT(QT0D#`$```#'1"0(`````,=$)`0,````BT$8 -XMB00DZ/S___^+78#'0QP`````QT-$`0```(E#&(M%@(L8Z8KY__^+58"+&NF` -XM^?__QP0D_____^C\____QT0D!)$!``#'!"1&````B40D".C\____BUV`B7L, -XMZX8````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+.PM) -XM$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8`21,` -XM``D3`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L-``,(.@L["TD3.`H` -XM``P5`2<,21,!$P``#04`21,```X3``,./`P```\!`4D3`1,``!`A`$D3+PL` -XM`!$3`0L+.@L["P$3```2%@`#"#H+.PM)$P``$P0!"PLZ"SL+`1,``!0H``,. -XM'`T``!4N`0,..@L["R<,$0$2`4`&`1,``!8%``,(.@L["TD3`@8``!4P````,W!@`` -XM!6-W````!P2B````!P3M````"*(````#Z`(```7DEP````/"`0```B^P```` -XM"94'```(`D8Q`0``"FX$```"1S$!```"(P`*4P````"(SP*O0@` -XM``)\VP(```(C0`IW"````GWK`@```B-#"U]L8@`"@`@!```"(T0*L`8```*# -XM3`````(C3`IJ`@```H3]`````B-0``P!3````&D"```-O@`````'!%D"```, -XM`4P```")`@``#;X````-X0````U,``````<$;P(```P!_0```*D"```-O@`` -XM``W]````#4P`````!P2/`@``#`%,````R0(```V^````#><````-3``````' -XM!*\"```."P````$'!,\"```/+````.L"```0NP````(`#RP```#[`@``$+L` -XM``````.5"````H4W`0```Z\'```&)LL````#G0````8JRP````\L````+`,` -XM`!"[````#P`1"`9Z40,```K/!0``!GL&`P```B,`"FD#```&?!$#```"(P0` -XM`WX$```&?2P#```#``````%B`,```(C"``#D04```>&"P4``!)%;&8` -XM""9&!0``#B$(```!`QX!```()U<%```.,@$```$3!`@V]@4``!0@!0```!2V -XM!````12!`P```A1?`P```Q1+!```!!2:"```!11P`P``!A0^````!Q13`P`` -XM"!2+`P``"10S!```"A1`!P``"Q0E!@``#!3=`@``#13F!```#A2K"```#Q0$ -XM`0``$!1Z`@``$13V`@``$A2*,&```"(P``"?D%```P"&BC -XM!@``"KD&```(;-8````"(P`*P00```AMO@````(C"`I0!@``"&[6`````B,, -XM"E$````(;]8````"(Q0*[P(```AP]@4```(C'`KE!@``"'%>`````B,@"NH` -XM```(=JD&```"(R0*<`<```AW7@````(C*`H4!```"'@!!@```B,L``<$&`8` -XM``<$3`4```-?!P``"'D8!@```^`````)+F`$```#N`$```DP``4```/&!0`` -XM"3(P!0``$00*)/(&```*&P8```HD&P<```(C```)5@0```@*(1L'```*EP8` -XM``HBYP````(C``IL`0``"B3;!@```B,$``<$\@8``!$$"C8X!P``"AL&```* -XM-NT'```"(P``";L%```P"BCM!P``"I<&```**><````"(P`*#`4```HJYP`` -XM``(C!`IS!0``"BOG`````B,("IX#```*+.<````"(PP+861D``HN3`````(C -XM$`K;`0``"B],`````B,4"OX#```*,$P````"(Q@*AP$```HQ3`````(C'`K@ -XM!0``"C),`````B,@"B0````*,TP````"(R0*#00```HT3`````(C*`JG!@`` -XM"C8A!P```B,L``<$.`<``!$$"C\*"```"AL&```*/T\(```"(P``"74!```0 -XM"CI/"```"I<&```*.^$````"(P`*:`<```H\X0````(C!`K'!```"CWR```` -XM`B,("A0````*/_,'```"(PP`!P0*"```$0@*4GH(```*\`````I25@D```(C -XM``J=`0``"E)<"0```B,$``F`!@``6`I#5@D```J7!@``"D3G`````B,`"VES -XM``I%J08```(C!`MOT!```("E^P"0``"L$&```*7U8)```"(P`*I@<` -XM``I?7`D```(C!``1!`I@QPD```H;!@``"F`V"@```B,```G`````,`I7-@H` -XM``MO9F8`"EC6`````B,`"V9S>@`*6=8````"(P@+;7-Z``I:U@````(C$`H0 -XM!P``"EO6`````B,8"B0````*74P````"(R`*?P<```I?APD```(C)`H)`P`` -XM"F"P"0```B,L``<$QPD``!,$"H1C"@``%*P#````%+8````!%)4$```"%)D" -XM```#%(@&```$`!$("IB("@``"@@"```*F#8*```"(P`*SP,```J8B`H```(C -XM!``'!#8*```1"`J9LPH```H(`@``"IGM!P```B,`"L\#```*F;,*```"(P0` -XM!P3M!P``$0@*FMX*```*"`(```J:3P@```(C``K/`P``"IK>"@```B,$``<$ -XM3P@``!$("IP)"P``"@@"```*G!L'```"(P`*SP,```J<"0L```(C!``'!!L' -XM```1"`J>-`L```H(`@``"IX;!P```B,`"L\#```*G@D+```"(P0`$0@*H%D+ -XM```*P08```J@5@D```(C``JF!P``"J!<"0```B,$`!$$"J)P"P``"E\%```* -XMHE8)```"(P``"3\"``"("F8�``"D0!```*9^<````"(P`*L`0```IJ3``` -XM``(C!`HX`@``"FM,`````B,("VEE8P`*;4P````"(PP+;V5C``IN3`````(C -XM$`ME:6X`"F\�```B,4"GL&```*<`8-```"(Q@*I0,```IR3`````(C'`HW -XM````"G-,`````B,@"E0(```*>4P````"(R0*_08```IZ3`````(C*`HN`P`` -XM"GM,`````B,L"J8!```*?$P````"(S`*FP4```I]3`````(C-`I(!0``"GY, -XM`````B,X"M8"```*@%8)```"(SP*)@@```J!5@D```(C0`H_!0``"H)6"0`` -XM`B-$"M\'```*BCP*```"(T@*$@,```J33`````(C3`H;!```"I8Q`0```B-0 -XM"AX````*F&,*```"(U0*7@0```J9C@H```(C7`K/`@``"IJY"@```B-D"B8! -XM```*G.0*```"(VP*60$```J>#PL```(C=`I_!P``"J`T"P```B-\"E@'```* -XMHED+```#(X0!``<$.P4``!5D"````9H!`````'0`````````3@T``!9E8W`` -XM`9E.#0``+````!9S96,``9E6"0``50```!=S``&;5@D```%1``<$<`L``!@! -XM,@4```$-`P&`````;0(``(D```"L#0``&65C<``!#`-.#0``M0```!IS``$. -XM`U8)``#K````&[<#```!#P.L#0``"0$``!QS:``!$`/%!@```Y&L?P`'!*\& -XM```8`2L````!WP(!<`(``'P#```]`0``)0X``!EE8W```=X"3@T``&D!```: -XM("3````.8!```=3@,```'B`DP`````'@L&```!T`(!@`,``/(#```$ -XM`@``;0X``!EE8W```<\"3@T``#`"```?EP8```'/`N<```!#`@``&G,``=$" -XM5@D``&P"````&`%`!@```9D"`0`$```#!@``B@(``.\.```996-P``&8`DX- -XM``"V`@``&G-A``&:`D\(``#6`@``&Z@````!FP)6"0``]`(``"!S``&;`E8) -XM```:;V0``9P"K`T``!(#```:;W,``9T"J08``#L#```<;W-H``&>`L4&```# -XMD:Q_`!@!?0$```%T`@$0!@``)@<``%D#``!&#P``&7,``7,"5@D``(4#```: -XM:60``74"K`T``-(#```:;V0``74"K`T``/L#```;J00```%V`DP````D!``` -XM`!@!\00```%@`@$P!P``:0@``$($``"_#P``&65C<``!7P).#0``;@0``!EI -XM@@````DR0$```%5`4P```!@ -XM#```E@P``(T(``!Q$0``%F5C<``!5$X-``"Y"```(I<&```!5.<```#,"``` -XM(W-A8P`!5NT'``#?"````"6Z!P```38!3`````&F$0``)F5C<``!-4X-```G -XMEP8```$UYP```"@I!(``#%?8P`"AP%,````,5]P -XM``*'`7@2````!P3[`@``'L,(```!'P(!H!```(@1``!X"@```1,``!ED``$> -XM`N<```"D"@``&7-Z``$>`O(```#-"@``&F,``2`"YP```/8*```R3Q(``"`` -XM```!)`+A$@``,VP2```4"P``+6$2````-$\2```X`````28",VP2```]"P`` -XM,V$2``!Q"P`````U$0$```%3`0$!I1,``#%E8W```5(!3@T``#%S``%2`58) -XM```@=``!5`%6"0``'9<&```!50'G````(&ES:``!5@'%!@``(')E;``!5P'0 -XM!@``'5D%```!6`&E$P``'?<&```!60&K$P``(&ED``%:`:P-```=J00```%; -XM`4P````@:0`!6P%,````';4%```!6P%,````(&-A<``!6P%,``````<$40,` -XM``<$,`4``"4C!P```7D!3`````'9$P``)F5C<``!>$X-```GEP8```%XYP`` -XM```UUP0```'7`0$!>A0``#%E8W```=8!3@T``#%S``'6`58)```@T'```=!P0```'9`?(````=`@(```'9`?(````@<``!V0'R````(&QE;@`! -XMV0'R````(&(``=H!X0```"!C``':`>$````@9``!V@'A````('-R8P`!V@'A -XM````(&5N9``!V@'A````'?D````!VP%,`````#![!0```4`"`;X````!SQ0` -XM`#%S``$_`E8)```VQP0```$_`L\4```@:60``4$"K`T``"!B``%"`N$````@ -XM<5```M&Q,``"T/$P``-Y`````O)1,``.8+```O -XM+Q,``!H,```X.Q,```.1G'\X1Q,```*17"]3$P``.`P``#A?$P```W6(?SAK -XM$P```W6$?R]V$P``Q`P``#F"$P``.8P3```YF!,`````,K$3```8`0```4,! -XM!A8``#/-$P``^`P``"W"$P```#+9$P``,`$```%$`:\6```M\Q,``"WG$P`` -XM-V`!```O_1,``!8-```O"10``#0-```Y%10``#DA%```+RL4``"1#0``.3<4 -XM```O010``/$-```O2Q0``#8.```Y510``#AA%````W6,?SEM%```-'H4``#P -XM`0```=T!+984```MC!0``#<0`@``+Z(4``"6#@``.:T4```YMQ0``"_"%``` -XM(@\````````ZU10``(L4``"W%````4@!X18``"WQ%```+>84```NI!0``+<4 -XM```O_!0``$L/`````#0(%0``0`(```%)`2T6%0``-W`"```O(!4``'0/```O -XM*Q4``+X/```T3Q(``+`"```!.P(S;!(``-P/```M81(````````[9`0```** -XM>!(```$!/$<"```"H`%,`````0$`<`0```(`N`````$!^PX*``$!`0$````! -XM+W5S7,``'-E8W1I;VYS+F,`````K?P\/`#00CAE0@L"!,(+`AT",IL#40BW9@@ZY0-L<68(.M<9@RPB=!`(#XGX(5;H$`0.9?P(N`;H#Y0#%`YM_J<>?""V.@`-V1P,DQ0-BJ0,* -XM[P@6`[U^Q0/2`P(G`?ZL"*H#=V,(JG(#\WWO`Q\('0B2QG((<`,)C;@#YP$( -XM*U8#B7]_"%T(=0@MD0@>9)HZ90@>ME>4-3WFSHX#"P@K`VF;`Q"@I(&9A:6QE9#H@)7,`-C8X(&=E;&9?9V5T6UT86(`+G-T@P```$`4```````````8`P``'H,```!`%(``````````'P, -XM``"(#````0!0D@P``)4,```!`%```````````*`,``"A#````@!T!*$,``"C -XM#````@!T"*,,``"6$````@!U"```````````H`P``,L,```"`)$`RPP``)80 -XM```"`'4(```````````R#0``6`\```$`4Y#P``K@\```$`4'80 -XM``!^$````0!0``````````!##@``1@X```$`4$4/``""#P```0!0```````` -XM``"@$```H1````(`=`2A$```HQ````(`=`BC$```B!$```(`=0@````````` -XM`*`0``"Y$````0!0Y1```/$0```!`%`=$0``)1$```$`4```````````H!`` -XM`+00```!`%+E$```Z!````$`4AT1```E$0```0!2``````````"R$```(1$` -XM``$`4R41``"($0```0!3``````````##$```Z!````$`4AT1```E$0```0!2 -XM%@```0!7MA8``,L6```!`%?7%@``KQ@```$`5]T8``#E&````0!7```` -XM``````#.%P``UA<```$`4%$8``!H&````0!0:Q@``(D8```!`%#=&```Y1@` -XM``$`4```````````/A(``$,2```!`%*&%0``BQ4```$`4@``````````ZA4` -XM`/(5```!`%!<%@``7!8```$`4```````````M!$``(P3```#`'6@?XP3``"4 -XM$P```0!2E!,``#T6```#`'6@?ST6``!`%@```0!20!8``&L6```#`'6@?VL6 -XM``!P%@```0!28%0``'Q8```$`5X06``"> -XM%@```0!7MA8``,L6```!`%?.%P``[A<```$`5P``````````M!$``-\3```# -XM`'60?]\3```"%````0!0`A0``*H5```#`'60?ZH5``"P%0```0!0L!4``.48 -XM```#`'60?P``````````M!$``-H1```!`%8`$@``"!(```$`5M,3```Y%0`` -XM`0!64Q4``($5```!`%:8%0``ZA4```$`5H06``">%@```0!6MA8``,L6```! -XM`%;.%P``[A<```$`5@``````````31(``-$2```!`%-1$P``Z!,```$`4_83 -XM```:%````0!3*Q0``$04```!`%-4%```@Q0```$`4SD5```\%0```0!34Q4` -XM`%85```!`%.J%0``^!4```$`4Q\6```H%@```0!3/18``&<6```!`%-P%@`` -XMA!8```$`4\X7```"&````0!3``````````!8$P``=Q,```$`4#D5```_%0`` -XM`0!0SA<``-87```!`%```````````+01``#'$0```0!0`!(```L2```!`%"F -XM%```KQ0```$`4```````````M!$``,T1```!`%,`$@``!Q(```$`4],4```Y -XM%0```0!3A!8``)X6```!`%.V%@``RQ8```$`4\X7``#N%P```0!3```````` -XM``#_%```"Q4```$`4,X7``#6%P```0!0``````````"T$0``[Q$```$`4@`2 -XM```^$@```0!2T1(``-02```!`%(9%0``.14```$`4K86``#&%@```0!2```` -XM``````"W`````@``````0Q<``%0-``!S971?5]S:&1R`+\/``!R97-Y;F-?$```%@``MA8``.,2``!1$P`` -XM``````````#U$@``41,``,48``#E&```D1@``+D8``!/&```:Q@``#(8``!* -XM&```#A@``"88``"X%P``SA<``(87``"L%P``;!<``'H7``!5%P``71<``"X7 -XM```Q%P``'Q<``"L7``#_%@``!1<``/H6``#\%@``U18``.46``">%@``MA8` -XM````````````.1(``&`2``"!%0``F!4`````````````8!(``-$2``#N%P`` -XM`A@``*H5``"$%@``.14``($5``!1$P``@!0`````````````8!(``-$2``#N -XM%P```A@``'`6``"$%@``^!4``#T6``#R%0``]A4``.<5``#J%0``JA4``,L5 -XM``!&%0``@14``&$4``"`%```/A0``%04```B%```*Q0``!<4```:%```LA,` -XM`!04``"9$P``J!,``)03``"6$P``@1,``(P3``!1$P``=!,````````````` -XM8!(``-$2``!P%@``A!8``%$3``!>$P````````````!Q$@``GA(``'`6``"$ -XM%@``5A,``%X3``"T$@``P1(``+`2``"R$@````````````"W%```.14``,X7 -XM``#N%P``MA8``-46``"$%@``GA8``)@5``"J%0````````````"W%```X!0` -XM`-87``#N%P``MA8``-46``"8%0``JA4``/T4```Y%0``]A0``/@4``#R%``` -XM]!0`````````````&14``#D5``"V%@``U18`````````````16QF-C1?061D -XM<@!?7W-&24Q%6`!S861D7VQI6U?5]D871A`&-O<'D`95]E;G1R>0!U:6YT,S)?=`!T -XM<65?<')E=@!S96-T:6]N0!C;VUP@!R96YA;64` -XM9%]N97AT`'9?F5? -XM=`!I7!E -XM`&1?=F5R7!E`'5N```"````!<````(````!`````@```!>`````0`` -XM````````````"C@``#````````````````$`````````9P````$````R```` -XM`````#HX``":`@`````````````!`````0```'8````!````,@````````#4 -XM.@``+0``````````````!`````$```")`````0``````````````!#L``.0! -XM``````````````0`````````A0````D``````````````&!X``#P````%P`` -XM``T````$````"````)8````!``````````````#H/```&Q`````````````` -XM`0````````"E`````0```````````````TT``+L```````````````$````` -XM````H0````D``````````````%!Y```(````%P```!`````$````"````+D` -XM```!``````````````"^30``(````````````````0````````"U````"0`` -XM````````````6'D``!`````7````$@````0````(````R`````$````````` -XM`````-Y-``#(`@`````````````!`````````-8````!````,`````````"F -XM4```S@@``````````````0````$````1`````P``````````````=%D``.$` -XM``````````````$``````````0````(``````````````$!>```P!```&``` -XM`!8````$````$`````D````#``````````````!P8@``8`(````````````` -XM`0```````````````````````````````0``````````````!`#Q_P`````` -XM``````````,``0`````````````````#``,``````````````````P`$```` -XM``````````````,`!0`````````````````#``8``````````````````P`( -XM``P`````````=`````(``0`````````````````#``L`'P```(`#``!R```` -XM`@`!``````````````````,`#``O````,`P``"T````"``$`0P```&`,```V -XM`````@`!`%4```"@$```Z`````(``0`````````````````#``T````````` -XM`````````P`/``````````````````,`$``````````````````#`!(````` -XM`````````````P`4``````````````````,`%0`````````````````#``H` -XM8````(````#M`0``$@`!`&T``````````````!````!Z```````````````0 -XM````A@``````````````$````)<``````````````!````"B```````````` -XM```0````L@``````````````$````+H``````````````!````#%```````` -XM```````0````R@```'`"```,`0``$@`!`-8``````````````!````#D```` -XM```````````0````[@``````````````$````/\`````!````P(``!(``0`/ -XM`0`````````````0````&@$`````````````$````"$!`````````````!`` -XM```E`0``$`8``!8!```2``$`+P$`````````````$````#L!```P!P``.0$` -XM`!(``0!%`0`````````````0````3P$``'`(``#P`0``$@`!`%\!```````` -XM`````!````!E`0``8`H``"@!```2``$`<@$`````````````$````'\!```` -XM`````````!````"*`0``D`L``)<````2``$`F0$`````````````$````*`! -XM`````````````!````"G`0``H`P``/8#```2``$`L@$`````````````$``` -XM`,(!`````````````!````#4`0`````````````0````X`$````````````` -XM$````.L!`````````````!````#X`0`````````````0`````@(````````` -XM````$`````<"`````````````!`````/`@``D!$``%4'```2``$`'`(````` -XM````````$````"H"`````````````!`````Q`@`````````````0````.`(` -XM````````````$````$`"`````````````!````!,`@`````````````0```` -XM`'-E8W1I;VYS+F,`:6YS97)T7W1O7W-E8U]L:7-T`&%D9%]T;U]S:'-T5]S:&1R`%]?=61I=F1I,P!R97-Y;F-?'1S8VX`96QF7W-T```)`@```AT``!$"```!"0``(0(```(>```M`@```AT``#4"```!"0`` -XM10(```(>``!1`@```AT``%D"```!"0``:0(```(>``"1`@```A<``*8"```" -XM(```TP(```(:``#K`@```AD``/L"```"(0``'`,```(=```D`P```0D``#0# -XM```"'@``0`,```(=``!(`P```0D``%@#```"'@``8`,```(=``!H`P```0D` -XM`'@#```"'@``H`,```(B``"T`P```0D``+P#```"(@``Q`,```$)``#,`P`` -XM`B(``-0#```!"0``W`,```(B``#D`P```0D``.P#```"(@``)`0```$)``!* -XM!````B0``&@$```")0``PP0```(8```8!0```A<``$`%```"&0``9P4```(= -XM``!O!0```0D``'\%```"'@``AP4```$)``"3!0```B8``)\%```"'0``IP4` -XM``$)``"W!0```AX``,,%```"'0``RP4```$)``#;!0```AX``.<%```"'0`` -XM[P4```$)``#_!0```AX``#<&```"&```BP8```(H``"6!@```B$``.H&```" -XM'0``\@8```$)```"!P```AX```H'```"'0``$@<```$)```B!P```AX``$P' -XM```"%P``9@<```(7``#K!P```AD```4(```"'0``#0@```$)```="````AX` -XM`"D(```"'0``,0@```$)``!!"````AX``$T(```"'0``50@```$)``!E"``` -XM`AX``.@(```"*@``2PD```(7``!]"0```AD``.T)```"*@``#0H```$+```2 -XM"@```BP``"`*```"'0``*`H```$)```X"@```AX``$0*```"'0``3`H```$) -XM``!<"@```AX``'D*```"+@``E0H```(E``#L"@```B\``#0+```"'0``/`L` -XM``$)``!,"P```AX``%@+```"'0``8`L```$)``!P"P```AX``'@+```!"0`` -XMA`L```(>``"Y"P```C$``-P+```",@``%PP```$)```C#````AX``$8,```" -XM,```=@P```(P``"Y#````B4``,T,```!"0``&@T```(T```V#0```0D``&0- -XM```")0``N0T```(U``#*#0```B0``.`-```"&@``^`T```$)```)#@```0D` -XM`"4.```!"0``5`X```(V``!Q#@```A<``)4.```"-P``K0X```$)``#L#@`` -XM`BD``/D.```!"0``-0\```(P``!X#P```0D``)@/```"(0``M@\```(=``"^ -XM#P```0D``,X/```"'@``V@\```(=``#B#P```0D``/(/```"'@``_@\```(= -XM```&$````0D``!80```"'@``(A````(=```J$````0D``#H0```"'@``0A`` -XM``$)``!.$````B8``%H0```"'0``8A````$)``!R$````AX``'H0```"'0`` -XM@A````$)``"2$````AX``+40```!.```OQ````$Y``#M$````3@``/<0```! -XM.0``)A$```$Y```V$0```CH``$$1```!.0``4!$```(Z``!J$0```CL``'\1 -XM```".P``SA$```$)``#K$0```CT```P2```!"0``'1(```$)``!J$@```C(` -XM`)02```"/@``K!(```(H``#($@```C(``/$2```"%P``4A,```(A``"0$P`` -XM`C(``!L4```"/P``-A0```(Q``"'%````B<``*`4```",```[A0```(H``#Y -XM%````B$```<5```!.```%14```$Y``!E%0```D```+\5```"0```XQ4```(P -XM``#N%0```C\```86```"0```-!8```(^``!5%@```C```&`6```"/P``=!8` -XM``$)``"`%@```B8``(46```!.0``E18```(Z``#"%@```CL``/86```"*``` -XM&Q<```)!```[%P```AH``%$7```"-P``:!<```)"``""%P```C(``+07```" -XM,@``TA<```(=``#:%P```0D``.H7```"'@``\A<```$)``#^%P```B8```H8 -XM```"'0``$A@```$)```B&````AX``"X8```"'0``-A@```$)``!&&````AX` -XM`$L8```"(0``C1@```(O``#!&````AT``,D8```!"0``V1@```(>```&```` -XM`04```P````!%```$0````$4```5`````10``!D````!`@``'0````$"```A -XM`````0<``"@````!%```+P````$4```V`````10``#L````!%```2`````$4 -XM``!4`````10``&$````!%```9@````$4``!S`````10``'@````!%```A0`` -XM``$4``",`````10``),````!%```F`````$4``"E`````10``*P````!%``` -XML0````$4``#!`````10``,P````!%```UP````$4``#S`````10``/X````! -XM%```"0$```$4```5`0```10``",!```!%```.`$```$4``!K`0```10``'D! -XM```!%```E0$```$4``"C`0```10``+$!```!%```OP$```$4``#-`0```10` -XM`-L!```!%```]P$```$4```3`@```10``"$"```!%```/0(```$4``!+`@`` -XM`10``-`"```!%```_`(```$4```'`P```10``!(#```!%```-0,```$4``!# -XM`P```10``%(#```!%```70,```$4``!H`P```10``',#```!%```?@,```$4 -XM``")`P```10``)P#```!%```J@,```$4``"X`P```10``,8#```!%```U`,` -XM``$4``#B`P```10``/`#```!%```_@,```$4```,!````10``!H$```!%``` -XM*`0```$4```V!````10``$0$```!%```4@0```$4``!A!````10``'0$```! -XM%```@@0```$4``"0!````10``)X$```!%```K`0```$4``"Z!````10``,@$ -XM```!%```U@0```$4``#D!````10``/($```!%````04```$4```4!0```10` -XM`"(%```!%```,04```$4``!'!0```10``$T%```!%```6`4```$4``!F!0`` -XM`10``&P%```!%```<@4```$4``!X!0```10``'X%```!%```A`4```$4``"* -XM!0```10``)`%```!%```E@4```$4``""````10``&P(```!%```>P@```$4``"'"````10``.8(```!%``` -XM]`@```$4```0"0```10``!X)```!%```+`D```$4```Z"0```10``$@)```! -XM%```:PD```$4``!Y"0```10``(@)```!%```E`D```$4``"B"0```10``+D) -XM```!%```R`D```$4``#^"0```10```P*```!%```&@H```$4```H"@```10` -XM`$4*```!%```2PH```$4``!1"@```10``%<*```!%```70H```$4``!L"@`` -XM`10``'H*```!%```EPH```$4``"E"@```10``,(*```!%```T`H```$4``#M -XM"@```10``/L*```!%```&`L```$4```F"P```10``#T+```!%```2PL```$4 -XM``!B"P```10``'$+```!%```?0L```$4``"+"P```10``)D+```!%```T0L` -XM``$4``#?"P```10``.T+```!%```^PL```$4```)#````10``!<,```!%``` -XM)0P```$4```S#````10``$$,```!%```3PP```$4``!=#````10``&L,```! -XM%```>0P```$4``"'#````10``)4,```!%```HPP```$4``"Q#````10``+\, -XM```!%```S0P```$4``#;#````10``.D,```!%```]PP```$4```-#0```10` -XM`!0-```!`@``&`T```$"```<#0```1```"\-```!$```/@T```$0``!6#0`` -XM`10``%X-```!`@``8@T```$"``!F#0```1```'H-```!$```B`T```$0``"- -XM#0```10``)@-```!$```M`T```$4``"\#0```0(``,`-```!`@``Q`T```$0 -XM``#8#0```1```.8-```!$```]`T```$0```)#@```10``!0.```!$```&0X` -XM``$4```F#@```10``"X.```!`@``,@X```$"```V#@```1```$H.```!$``` -XM3PX```$4``!:#@```1```&@.```!$```;PX```$4``!W#@```0(``'L.```! -XM`@``?PX```$0``"3#@```1```*(.```!$```IPX```$4``"R#@```1```,L. -XM```!$```V@X```$0``#Q#@```10``/D.```!`@``_0X```$"```!#P```1`` -XM`!,/```!$```(@\```$0```Q#P```1```#8/```!%```00\```$0``!(#P`` -XM`10``%`/```!`@``5`\```$"``!8#P```1```&P/```!$```>P\```$0``"* -XM#P```1```(\/```!%```F@\```$0``#!#P```10``,D/```!`@``S0\```$" -XM``#1#P```1```.4/```!$```\P\```$0```3$````1```!H0```!%```)1`` -XM``$"```I$````0(``"T0```!$```0!````$0``!.$````1```%,0```!%``` -XM7A````$0``!S$````10``'X0```!$```A1````$4``"0$````0(``)00```! -XM`@``F!````$0``"K$````1```+`0```!%```NA````$0``#)$````1```-@0 -XM```!$```WA````$4``#I$````0(``.T0```!`@``\1````$0```$$0```1`` -XM``D1```!%```$Q$```$0```B$0```1```"@1```!%```,Q$```$"```W$0`` -XM`0(``#L1```!$```3A$```$0``!3$0```10``%T1```!$```;!$```$0``!R -XM$0```10``(X1```!%```J!$```$4``"O$0```0(``+,1```!`@``MQ$```$0 -XM``#*$0```1```-<1```!$```W!$```$4``#F$0```1```/01```!$```"!(` -XM``$4```2$@```1```!<2```!%```(1(```$0```J$@```1,``#L2```!`@`` -XM/Q(```$"``!($@```1```%`2```!%```?Q(```$4``"'$@```0(``(L2```! -XM`@``CQ(```$0``"A$@```1```+`2```!$```OA(```$0``#'$@```1,``-<2 -XM```!$```YA(```$3``#R$@```1```/L2```!$````A,```$4```P$P```10` -XM`%03```!%```8!,```$4``!W$P```10``(T3```!%```LA,```$4``#.$P`` -XM`10``-H3```!%```"A0```$4```6%````10``&X4```!%```>Q0```$4``"7 -XM%````10``,,4```!%```UA0```$4``#R%````10```D5```!%```+!4```$4 -XM```Z%0```10``$(5```!`@``1A4```$"``!*%0```1```%X5```!$```=14` -XM``$3``"+%0```1,``)05```!$```G14```$0``"W%0```1```-(5```!$``` -XM[!4```$3``#\%0```1````L6```!$P``(18```$3```J%@```1```#,6```! -XM$```1A8```$0``!4%@```1```%T6```!$```>18```$3``"+%@```1,``)06 -XM```!$```IQ8```$0``"T%@```0(``+@6```!`@``SA8```$"``#2%@```0(` -XM`-L6```!$```YA8```$3``#S%@```1,``/P6```!$```!1<```$0```.%P`` -XM`1,``!H7```!$```*!<```$4```U%P```10``,4````!`@``&`````$/```< -XM`````0(``#@````!#P``/`````$"``!8`````0\``%P````!`@``>`````$/ -XM``!\`````0(``)@````!#P``G`````$"``"X`````0\``+P````!`@``V``` -XM``$/``#<`````0(``/@````!#P``_`````$"```8`0```0\``!P!```!`@`` -XM.`$```$/```\`0```0(``%@!```!#P``7`$```$"``!P`0```0\``'0!```! -XM`@``B`$```$/``",`0```0(``*@!```!#P``K`$```$"``#(`0```0\``,P! -X>```!`@``!@````$&```&`````08``!`````!`@`` -X` -Xend -07454e9209d1c5eccb83c5c72e752a37 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.err b/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.out b/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.sh deleted file mode 100644 index d8c125a8..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-8/strip-all-8.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-all-8 tc/strip-all-8 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} -o sections.o.debug.1 sections.o.debug" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-all-9/in/strip-all-9.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-all-9/in/strip-all-9.in.shar deleted file mode 100644 index 9d05c993..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-all-9/in/strip-all-9.in.shar +++ /dev/null @@ -1,2302 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# elfcopy.uu -# -echo x - elfcopy.uu -sed 's/^X//' >elfcopy.uu << 'END-of-elfcopy.uu' -Xbegin 755 elfcopy -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````#AM`0`` -XM`````````$``.``'`$``)0`B``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6YC7W-E8W1I;VYS`"(1``!I;G-E5]C;VYT96YT``````!! -XM`````@!^+@``W`D``'$(``!A9&1?=&]?:6YS96=?;&ES=`#W"```8V]P>5]P -XM:&1R`'P)``!S971U<%]P:&1R``````!C`````@!:.```!1,```L,``!L;V]K -XM=7!?:V5E<%]S>6UL:7-T`&8,``!A9&1?=&]?6`@```TP&```".8,````" -XM"`5=`P```X8"```".I4````""`>1`@```@@$AP,```($!*D#```#]00```)2 -XMB@````,\!0```E1X````!0@'!@@#?`$```,F9@````,5`P```R=X`````[0& -XM```#*68````#B0````,L9@````,T`P```RYF`````PT"```#,4(````#70<` -XM``,S0@````,(!0```S1X`````W`&```#/F8````#&@$```-;9@````(!!K(! -XM```#_`$```190@````-/`P``!%YF`````X@"```$8XH````'"#,!```'"&U````"7(&```$"`$=`0``"MT%```0 -XM!2X/`@``"X<'```%+\\!```"(P`+\`4```4P@P````(C"``*U@```'@&@PH# -XM```+V`0```:$*`$```(C``M-!P``!H68`0```B,$"V@&```&AJ,!```"(P@+ -XM@P0```:'K@$```(C"@N0`0``!HC:`0```B,,"V0"```&B8T!```"(Q`+O@$` -XM``:**`$```(C%`O9!0``!HSF`0```B,8"R`#```&C>8!```"(R@+8`4```:. -XMY@$```(C.`NK`@``!I>Y`0```B-("S8````&F')`P```B,`#%]R``AH -XM7P````(C"`Q?=P`(:5\````"(PP+?0H```AJ.P````(C$`NN!@``"&L[```` -XM`B,2#%]B9@`(;&`#```"(Q@+0P8```AM7P````(C*`M)`@``"'##`````B,P -XM"_,!```(<<,$```"(S@+L@0```ARXP0```(C0`O2!```"',#!0```B-("TD` -XM```(=",%```"(U`,7W5B``AW8`,```(C6`L`````"'@O!0```B-H#%]U<@`( -XM>5\````"(W`+1@0```A\-04```(C=`N;````"'U%!0```B-W#%]L8@`(@&`# -XM```"(W@++0````B#7P````,CB`$+=PD```B$50,```,CD`$`#0%?````PP0` -XM``[#``````<(LP0```T!7P```.,$```.PP````Y;`0``#E\`````!PC)!``` -XM#0%5`P```P4```[#````#E4#```.7P`````'".D$```-`5\````C!0``#L,` -XM```.80$```Y?``````<("04```_M`@```0<(*04``!`T````104``!'````` -XM`@`0-````%4%```1P````````Z8"```(A8\#```""`58`P``$#0```!W!0`` -XM$<`````/``/[`@``"290`0```Y0&```!%7$#```"%7$'```#%=L````$`!0$"C9=!P``%3$%````%9H'```! -XM%>8%```"%;$%```#%H````3%>$"```4%7P#```5%0X!```6%?X$```7`!0$ -XM"E6T'```+MPH```PB80$```(C``M>!```#"2M -XM!P```B,(``<(Q`<``!((##8*"```"U8%```,-K\(```"(P``"F8#``!(#"B_ -XM"```"[<*```,*6$!```"(P`+H@$```PJ80$```(C"`M!`@``#"MA`0```B,0 -XM"X4-```,+&$!```"(Q@,861D``PN7P````(C(`M;`0``#"]?`````B,D"\D' -XM```,,%\````"(R@+404```PQ7P````(C+`O9`0``##)?`````B,P"V\````, -XM,U\````"(S0+5P0```PT7P````(C.`NB!```##;S!P```B-```<("@@``!(( -XM##_<"```"U8%```,/R$)```"(P``"@<&```@##HA"0``"[<*```,.UL!```" -XM(P`+=`H```P\6P$```(C"`L`"```##W$`0```B,0"Z<````,/\4(```"(Q@` -XM!PC<"```$A`,44P)```+5P4```Q1&@H```(C``LX`@``#%$@"@```B,(``JD -XM"0``>`Q#&@H```NW"@``#$1A`0```B,`#&ES``Q%G`<```(C"`QO=`H```O7`@`` -XM#%X:"@```B,`"P0'```,7B`*```"(P@`$@@,7XL*```+5@4```Q?^@H```(C -XM```*NP(``$`,5OH*```,;V9F``Q74`$```(C``QF@`,65`!```"(Q`+W0@```Q:4`$```(C&`MO````#%Q?`````B,@"X@'```, -XM7DL*```"(R@+3@L```Q?=`H```(C.``'"(L*```4!`R-)PL``!5B`0```!40 -XM!0```14W!@```A7X!0```Q43!@``!``2$`RI3`L```O6`@``#*GZ"@```B,` -XM"P,'```,J4P+```"(P@`!PCZ"@``$A`,JG<+```+U@(```RJOP@```(C``L# -XM!P``#*IW"P```B,(``<(OP@``!(0#*NB"P``"]8"```,JR$)```"(P`+`P<` -XM``RKH@L```(C"``'""$)```2$`RMS0L```O6`@``#*WM!P```B,`"P,'```, -XMKU\````" -XM(RP,;F]S``Q]7P````(C,`LQ!```#()?`````B,T"T\!```,@U\````"(S@+ -XMO0<```R$7P````(C/`O-`0``#(5?`````B-`"V,````,AE\````"(T0+104` -XM``R'7P````(C2`O@#```#(D:"@```B-0"VH-```,BAH*```"(U@+Y@D```R+ -XM&@H```(C8`M^!@``#),`"P```B-H"WX*```,FU\````"(VP+KP<```R>Z@T` -XM``(C<`OS!@``#*'J#0```B-X"^T&```,I(D#```#(X`!"U0'```,IXD#```# -XM(X@!"S`!```,J2<+```#(Y`!"P<````,JE(+```#(Z`!"S8!```,JWT+```# -XM([`!"W@&```,K:@+```#(\`!"XP$```,K],+```#(]`!"X@'```,L?@+```# -XM(^`!``<(>P8```<(4`$``!8W!P``!`$L#PX``!7&`````!5V`````14/!@`` -XM`@`7>P<```%:`@%@'$```````(D<0````````````!<&`P```5,"`9`<0``` -XM````N1Q````````X````%[@````!3`(!P!Q```````#I'$```````'`````8 -XM/P<```$,`0$!F0X``!EE8W```0L!F0X``!EI9F0``0L!7P```!EO9F0``0L! -XM7P`````'"!T,```:&`````&(`0'D#@``&V5C<``!AYD.```J`8```$O`0'P -XM'$```````'\C0```````J````/D/```?96-P``$N`9D.``#A````'W-R8P`! -XM+@%A`0``*@$``!]D04```$R`<0!```A:69D``$S`5\```#&`P``(6]F9``!,P%?````(@0``"-F -XM#@````````%7`22,#@``)(`.```D=`X``".?#@``H`````$=`22L#@``)3`! -XM```FMPX``,H$```GP@X```.1\'XGS0X```.1L'XFV`X``$P%````````&%T& -XM```!%0(!`5H0```996-P``$4`ID.```H]@(```$4`E\````H$`,```$4`EH0 -XM```IA```"1N$```);`$```F -XMDA```+,+```FGA```.D+```FJA```$4,```MMA```"W"$```+BJ`````X0&```"+[H````)5@8``!`"1E,!```*(@4```)'4P$` -XM``(C``K_!P```DA?`````B,(``<(-`````FC`@``F`)F?0(```M?<``"9U,! -XM```"(P`+7W(``FA?`````B,("U]W``)I7P````(C#`I]"@```FH[`````B,0 -XM"JX&```":SL````"(Q(+7V)F``)L*@$```(C&`I#!@```FU?`````B,H"DD" -XM```"<+@````"(S`*\P$```)QC0(```(C.`JR!````G*M`@```B-`"M($```" -XM<\T"```"(T@*20````)T[0(```(C4`M?=6(``G/D" -XM```"(V@+7W5R``)Y7P````(C<`I&!````GS_`@```B-T"IL````"?0\#```" -XM(W<+7VQB``*`*@$```(C>`HM`````H-?`````R.(`0IW"0```H0?`0```R.0 -XM`0`,`5\```"-`@``#;@`````!PA]`@``#`%?````K0(```VX````#0,!```- -XM7P`````'"),"```,`1\!``#-`@``#;@````-'P$```U?``````<(LP(```P! -XM7P```.T"```-N`````T)`0``#5\`````!PC3`@``#NT"```!!PCS`@``#S0` -XM```/`P``$+4````"``\T````'P,``!"U```````#I@(```*%60$```((!5@# -XM```#C0H```8F[0````,%"```!BG,`````Q$(```&*NT````/-````&(#```0 -XMM0````\`$0@&>H<#```*Q0D```9[,0,```(C``KV"```!GQ'`P```B,$``-& -XM"0``!GUB`P``$0P&@,4#```*Q0D```:!,0,```(C``KV"```!H)'`P```B,$ -XM"D,*```&@SP#```"(P@``V0*```&A)(#```#^P(```$T`,```(C``KV"``` -XM!X4'!````B,(``.L"0``!X:*!0``$1@'B>T%```*Q0D```>*T`,```(C``KV -XM"```!XL'!````B,("D,*```'C/$#```"(Q```^\)```'C;H%```216QF``@F -XM`P8```ZV`P```0,&`0``""<4!@``#@4!```!$P0(-K,&```4,04````4F@<` -XM``$4Y@4```(4L04```,4S`,```04OP8```44C@<```843`0```<4D`4```@4 -XM4`````D4?`(```H4^@````L49P<```P4?@4```T4EP0```X4G`8```\4(0(` -XM`!`4(@$``!$4(@8``!(4Z@```!,4X0(``!04?`,``!44#@$``!84_@0``!<` -XM`^((```(3QH&```1"`AXU08```I6!0``"'A@!P```B,```G5"0``0`AH8`<` -XM``HT"@``"&SX`````B,`"E@)```(;;@````"(P@*$@H```AN^`````(C$`K^ -XM!P``"&_X`````B,8"ML(```(<+,&```"(R`*J@H```AQ<0````(C)`HY"``` -XM"'9F!P```B,H"GP*```(=W$````"(S`*(PD```AXO@8```(C.``'"-4&```' -XM"`D&```#U@D```AYU08```.,'```*MPH```HB"0$```(C``I>!```"B2C!P```B,(``<(N@<``!$("C8` -XM"```"E8%```*-K4(```"(P``"68#``!("BBU"```"K<*```**0D!```"(P`* -XMH@$```HJ"0$```(C"`I!`@``"BL)`0```B,0"H4-```*+`D!```"(Q@+861D -XM``HN7P````(C(`I;`0``"B]?`````B,D"LD'```*,%\````"(R@*404```HQ -XM7P````(C+`K9`0``"C)?`````B,P"F\````*,U\````"(S0*5P0```HT7P`` -XM``(C.`JB!```"C;I!P```B-```<(``@``!$("C_2"```"E8%```*/Q<)```" -XM(P``"0<&```@"CH7"0``"K<*```*.P,!```"(P`*=`H```H\`P$```(C"`H` -XM"```"CT4`0```B,0"J<````*/[L(```"(Q@`!PC2"```$1`*44()```*5P4` -XM``I1$`H```(C``HX`@``"E$6"@```B,(``FD"0``>`I#$`H```JW"@``"D0) -XM`0```B,`"VES``I%9@<```(C"`MO:@H```K7`@``"EX0"@```B,`"@0'```*7A8* -XM```"(P@`$0@*7X$*```*5@4```I?\`H```(C```)NP(``$`*5O`*```+;V9F -XM``I7^`````(C``MF@`*6?@````"(Q`*W0@```I: -XM^`````(C&`IO````"EQ?`````B,@"H@'```*7D$*```"(R@*3@L```I?:@H` -XM``(C.``'"($*```3!`J-'0L``!1B`0```!00!0```10W!@```A3X!0```Q03 -XM!@``!``1$`JI0@L```K6`@``"JGP"@```B,`"@,'```*J4(+```"(P@`!PCP -XM"@``$1`*JFT+```*U@(```JJM0@```(C``H#!P``"JIM"P```B,(``<(M0@` -XM`!$0"JN8"P``"M8"```*JQ<)```"(P`*`P<```JKF`L```(C"``'"!<)```1 -XM$`JMPPL```K6`@``"JWC!P```B,`"@,'```*K<,+```"(P@`!PCC!P``$1`* -XMK^X+```*U@(```JOXP<```(C``H#!P``"J_#"P```B,(`!$0"K$3#```"M<" -XM```*L1`*```"(P`*!`<```JQ%@H```(C"``)(P```/`*;MH-```*E0,```IO -XM"0$```(C``JA````"G)?`````B,("K8'```*U\````"(RP+;F]S``I]7P````(C,`HQ -XM!```"H)?`````B,T"D\!```*@U\````"(S@*O0<```J$7P````(C/`K-`0`` -XM"H5?`````B-`"F,````*AE\````"(T0*104```J'7P````(C2`K@#```"HD0 -XM"@```B-0"FH-```*BA`*```"(U@*Y@D```J+$`H```(C8`I^!@``"I/V"@`` -XM`B-H"GX*```*FU\````"(VP*KP<```J>X`T```(C<`KS!@``"J'@#0```B-X -XM"NT&```*I%,!```#(X`!"E0'```*IU,!```#(X@!"C`!```*J1T+```#(Y`! -XM"@<````*JD@+```#(Z`!"C8!```*JW,+```#([`!"G@&```*K9X+```#(\`! -XM"HP$```*K\D+```#(]`!"H@'```*L>X+```#(^`!``<(^`4```<(^````!73 -XM"@```>(!\"M```````!M+$````````)W"#H.```696-P``'A.@X```%5%G-E -XM8P`!X1`*```!5!=S``'C$`H```%1&/,*```![D,L0`````````<($PP``!D! -XMC`D```&C`P%P+$```````"8N0```````OA```*`.```:96-P``&B`SH.``#W -XM$```&W,``:0#$`H``$`1```<`0L```&E`Z`.``!V$0``'7-H``&F`X('```# -XMD9!_``<(;`<``!D!\@<```%[`P$P+D```````#WPD```%L`P%`+T```````*LO0```````_!(` -XM`%`S0```````&C5```````#4&```(A$``!IE -XM8W```4@".@X``%T9```; -XM$@``$+4````$``<("0$``"(!F`H```$W`5\```!`-T```````(DX0``````` -XMY!X``'X3```C96-P``$V.@X``!T?```DMPH```$V"0$``&8?```KD`4``$`3 -XM```ET```#O(```,;<*```!7PD!```X(0``%VES:``!8(('```#D9!_)6ES -XM``%A9@<``&XA```Q!0D```%B%`$``*0A```Q$0D```%C7P```-PA````,@&( -XM"````?D!L#E```````#%/$```````!(B``"S%```(V5C<``!^#H.``##(@`` -XM)7,``?H0"@``#",``#&W"@```?L)`0``52,``"5IL'```!__@```"3)```,3P* -XM```!__@```#<)```'!$)```!``%?````."4````SDP@```*'`0%?`````]P4 -XM```T7V,``H`(#`0``('-R8P`!>`(#`0``(&5N9``!>`(#`0``.3\( -XM```!>0)?`````#.?"0```=X"`;@````!:Q<``#1S``'=`A`*```[``@```'= -XM`FL7```@:60``=\"H`X``"!B``'@`@,!```@$"%`$``#D1"0```>(" -XM7P`````'"!0!```X7@D```$@`@$!V1<``#1E8W```1\".@X``#1S``$?`A`* -XM```@;W-H``$A`H('```@;"````;4!7P````$,&```.F5C -XM<``!M#H.```HMPH```&T"0$``"IS86,``;:U"````#B>"````X8```V:18```8J```M7A8````U=18``"`(```!E0&7 -XM&0``+8\6```M@Q8``#R`"```/9D6```\*@``/:46``!R*@``,+$6```PO18` -XM`#W'%@``#RL``##3%@``/=T6``#=*P``/><6``#1+```,/$6```O_18```.1 -XML'XP"1<``#<6%P``H`D```%[`BTR%P``+2@7```\X`D``#T^%P``Q2T``#!) -XM%P``,%,7```]7A<``),N````````-6T5``!`"@```9`!,AH``"V'%0``+7L5 -XM```\H`H``#V1%0``W"X``"^=%0```Y'0?B^I%0```Y&P?R^U%0```Y&0?SW! -XM%0``)2\``"_-%0```Y&H?B_9%0```Y&@?B_E%0```Y&8?B_Q%0```Y&0?CW\ -XM%0``NB\``#`(%@``/1(6```\,```/1X6``#1,```/2H6```M,0`````^V1<` -XM`+Y`0```````X4!````````!H@%T&@``+?47```MZA<``"[-0$```````.%` -XM0```````/0`8``!C,0`````W#!@``)`,```!HP$M&A@``#SP#```/208``"L -XM,0``/2\8```N,@``-[,4``!P#0```=D"-M`4``!W,@``+<44````````/SP) -XM```"BMP4```!`4#%!````J`!7P````$!`-@)```"`-X%```(`0T'```!)@L` -XM`.$#``"024```````(5-0```````$`@```(!!JL!```"`0BI`0```@(%NP4` -XM``("!]$&```#!`5I;G0`!$T#```".%L````"!`>6`@```@@%70,```2&`@`` -XM`CIT`````@@'D0(```((!(<#```"!`2I`P``!/4$```"4FD````%"`<&"`(! -XM!K(!```$3P,```->4`````2(`@```V-I````!PB9````!PC"````")D````$ -XM]P0```/HB0````3[`@``!":K````!-<#```$**L````$I@4```0KH`````0P -XM"0``!"VK````"3@$9W`L```1KT@````(C$`J("P``!&S2`````B,8"CP+ -XM```$;?,````"(R`*@`L```1N\P````(C*`I7"P``!&_S`````B,P``0Q"P`` -XM!'#^````"T5L9@`%)HT!```,M@,```$$!@$```4GG@$```P%`0```0T$!57C -XM`0``#A\$````#L\%```!#G8$```"#M\!```##IX#```$#@T````%#L4%```& -XM#LH"```'#BX"```(``<(DP$```1?"P``!B]W`0``!P@T`````@@%6`,```D( -XM!R08`@``"E8%```')$$"```"(P``#T,-```0!R%!`@``"K<*```'(KP````" -XM(P`*7@0```,!```" -XM(P@0;W,`!T;C`0```B,0$&)U9@`'1Y<````"(Q@0;V9F``=(JP````(C(!!S -XM>@`'2:L````"(R@08V%P``=*JP````(C,`HV"@``!TNK`````B,X"MT(```' -XM3*L````"(T`*WP0```=-20````(C2`JQ````!TY)`````B-,"JL$```'3TD` -XM```"(U`*W0H```=1>P,```(C6`HM`P``!U)Z!````B-H``<(H`,```<(;@0` -XM``D0!U*?!```"E<%```'4FX$```"(P`*.`(```=2=`0```(C"``/*`4``!`' -XM7L@$```*UP(```=>;@0```(C``H$!P``!UYT!````B,(``D(!U_?!```"E8% -XM```'7TX%```"(P``#[L"``!`!U9.!0``$&]F9@`'5ZL````"(P`09G-Z``=8 -XMJP````(C"!!MI3@4```(C``H#!P``!ZF@!0```B,(``<(3@4```D0!ZK+!0``"M8"```' -XMJA,#```"(P`*`P<```>JRP4```(C"``'"!,#```)$`>K]@4```K6`@``!ZMU -XM`P```B,`"@,'```'J_8%```"(P@`!PAU`P``"1`'K2$&```*U@(```>M00(` -XM``(C``H#!P``!ZTA!@```B,(``<(00(```D0!Z],!@``"M8"```'KT$"```" -XM(P`*`P<```>O(08```(C"``)$`>Q<08```K7`@``![%N!````B,`"@0'```' -XML70$```"(P@`#R,```#P!VXX"```"I4#```';[P````"(P`*H0````=R20`` -XM``(C"`JV!P``!W-)`````B,,$&EE8P`'=4D````"(Q`0;V5C``=V20````(C -XM%!!E:6X`!W#@(```"(R`*Q@$```=Z20````(C*`HJ -XM!```!WM)`````B,L$&YO"20````(C-`I/`0`` -XM!X-)`````B,X"KT'```'A$D````"(SP*S0$```>%20````(C0`IC````!X9) -XM`````B-$"D4%```'ATD````"(T@*X`P```>);@0```(C4`IJ#0``!XIN!``` -XM`B-8"N8)```'BVX$```"(V`*?@8```>35`4```(C:`I^"@``!YM)`````B-L -XM"J\'```'GCX(```"(W`*\P8```>A/@@```(C>`KM!@``!Z3T`0```R.``0I4 -XM!P``!Z?T`0```R.(`0HP`0``!ZE[!0```R.0`0H'````!ZJF!0```R.@`0HV -XM`0``!ZO1!0```R.P`0IX!@``!ZW\!0```R/``0J,!```!Z\G!@```R/0`0J( -XM!P``![%,!@```R/@`0`'"((!```'"*L````1$0L```%5`0%Q"```$G-E9P`! -XM5$X%```2=``! -XMA\<```#M-```'FD``8A)````$#4````@`08+```!9`%@3$```````(5-0``` -XM````634``!5E8W```6/Q"```SC4``!-S96<``65.!0``'Z`+```!9ND!```# -XMD:!_&,8!```!9\<````7-@``$VD``6A)```````!$P```@")!P``"`$-!P`` -XM`9L,``#A`P``D$U```````#:9D```````&4)```"`0:K`0```@$(J0$```(" -XM!;L%```#^@$```(V30````("!]$&```$!`5I;G0``TT#```".&8````"!`>6 -XM`@```TP&```".7@````""`5=`P```X8"```".HH````""`>1`@```@@$AP,` -XM``($!*D#```#]00```)2?P````4(!P8(`@$&L@$```-.!@```T]M`````_P! -XM```#64(````#3P,```->6P````.(`@```V-_````!PBO````!PCN````"*\` -XM```#]P0```/HGP````((!5@#```#C0H```0FS`````.\#```!"?!`````Q$( -XM```$*LP````)$`2W@P$```I+#0``!+@;`0```B,`"A4-```$N04!```"(P0* -XMJP(```2Z&P$```(C"`H-#0``!+LT`````B,,"O,,```$O#0````"(PT*_`P` -XM``2]$`$```(C#@`##@P```2^)@$```/[`@``!2;7`````YN@$```(C+`KF"@``!5_%`0```B,P"NL( -XM```%8,4!```"(S@``[P(```%8=`!```)$`6#E0(```K%"0``!82.`0```B,` -XM"O8(```%A<4!```"(P@``ZP)```%AG`"```)&`6)TP(```K%"0``!8J.`0`` -XM`B,`"O8(```%B\4!```"(P@*0PH```6,KP$```(C$``#[PD```6-H`(```D8 -XM!;X[`P``"DL-```%O[H!```"(P`*#0T```7`-`````(C!`KS#```!<$T```` -XM`B,%"OP,```%PID!```"(P8*%0T```7#C@$```(C"`JK`@``!<3%`0```B,0 -XM``,U#```!<7>`@``"T5L9@`&)E$#```,M@,```$#!@$```8G8@,```P%`0`` -XM`0T$!C8!!```#C$%````#IH'```!#N8%```"#K$%```##LP#```$#K\&```% -XM#HX'```&#DP$```'#I`%```(#E`````)#GP"```*#OH````+#F<'```,#GX% -XM```-#I<$```.#IP&```/#B$"```0#B(!```1#B(&```2#NH````3#N$"```4 -XM#GP#```5#@X!```6#OX$```7``/B"```!D]H`P``"0@&>",$```*5@4```9X -XMK@0```(C```/U0D``$`&:*X$```*-`H```9LUP````(C``I8"0``!FVM```` -XM`B,("A(*```&;M<````"(Q`*_@<```9OUP````(C&`K;"```!G`!!````B,@ -XM"JH*```&<68````"(R0*.0@```9VM`0```(C*`I\"@``!G=F`````B,P"B,) -XM```&>`P$```"(S@`!P@C!```!PA7`P```]8)```&>2,$```#6P@```@`(2=<````" -XM(R@08V%P``A*UP````(C,`HV"@``"$O7`````B,X"MT(```(3-<````"(T`* -XMWP0```A-5`````(C2`JQ````"$Y4`````B-,"JL$```(3U0````"(U`*W0H` -XM``A1:P8```(C6`HM`P``"%)J!P```B-H``<(D`8```<(7@<```D0"%*/!P`` -XM"E<%```(4EX'```"(P`*.`(```A29`<```(C"``/*`4``!`(7K@'```*UP(` -XM``A>7@<```(C``H$!P``"%YD!P```B,(``D("%_/!P``"E8%```(7SX(```" -XM(P``#[L"``!`"%8^"```$&]F9@`(5]<````"(P`09G-Z``A8UP````(C"!!M -XME0````"(R@**@0```A[5`````(C+!!N;W,`"'U4`````B,P"C$$```(@E0` -XM```"(S0*3P$```B#5`````(C.`J]!P``"(14`````B,\"LT!```(A50````" -XM(T`*8P````B&5`````(C1`I%!0``"(=4`````B-("N`,```(B5X'```"(U`* -XM:@T```B*7@<```(C6`KF"0``"(M>!P```B-@"GX&```(D[$(```"(V@*?@H` -XM``B;5`````(C;`JO!P``")Z;"P```B-P"O,&```(H9L+```"(W@*[08```BD -XMH0L```,C@`$*5`<```BGH0L```,CB`$*,`$```BIV`@```,CD`$*!P````BJ -XM`PD```,CH`$*-@$```BK+@D```,CL`$*>`8```BM60D```,CP`$*C`0```BO -XMA`D```,CT`$*B`<```BQJ0D```,CX`$`!PA&`P``!PC7````!P@T````$:\+ -XM```!00%4````D$U```````"@34````````)W"-8+```2E@#```&W,``>M>!P``'(,,```![``.```<[@P```'MH0L``!MI[% -XM!```&W-Y;0`![]`$```;:60``?`&#@``&VES``'QM`0``!SG"P```?+S```` -XM&VYD>``!\O,````<"`P```'R\P```!MS8P`!\O,````<\P8```'R\P```!P? -XM#````?/S````'`4-```!\_,````(````<9PP```'UX@```!ME8P`!]E0````<$0D```'V5````!MI``'V -XM5````!T_#````9L!``<(1`@```<(N@0``!X>#0```58!5`````%0#@``&F5C -XM<``!5&`,```:@` -XM````(&X,```!@`(!5`````&%#@``(65C<``!?P)@#```(K<*```!?P+H```` -XM&',``8$",04````94PT```%Z`0$5#P``&F5C<``!>6`,```:^@````;9``!?`8.```;B@P```',`50````!1`\``!IE8W````!5`````%?#P``&G,``=_6 -XM"P```![1"P```38!5`````%Z#P``&G,``376"P```"`G#````3H"`!])P`- -XM```@#@```>,!M!(``"@-#0``*<`.```J&`T``-0[```K(0T``"HL#0``R#P` -XM`"PW#0```Y&@?2Q"#0```Y&`?RI-#0``@#T``"I7#0``.#X``"IA#0``S3X` -XM`"IL#0``,3\``"MW#0``*X(-```JC`T``%0_```KEPT``"JB#0``S3\``"JM -XM#0``%$(``"JX#0``7T,``"K##0``GT0``"K.#0``-$4``"K9#0``F$4``"KC -XM#0``YT4``"KN#0``[D8``"WW#0``:%%````````N#`X``"`4```!<@$H1`X` -XM`"@[#@``*#(.```H*`X``"@=#@``+U`.```W6$```````%U80````````5O1 -XM$0``,&X.```11P``*&(.```Q-UA```````!.6$```````"IZ#@``1T<````` -XM,H4.``#P%````6=4$@``,)T.``#O1P``*)(.```ID!4``"JG#@``$D@``"JR -XM#@``6T@``"J[#@``*$D``"S$#@```Y&@?RS-#@```Y'@?BS7#@```Y'@?"KA -XM#@``T$D``"KJ#@``G4H``"KU#@``:DL``"H`#P``O4P``"L)#P`````R%0\` -XM`#`7```!:902```H.@\``#`Q#P``BDT``"@F#P``,T0/```56T```````"A; -XM0````````=@\``&`7```!)0(HC`\``"GP%P``+)8/```#D>!\+*(/```#D>!^*JX/ -XM``!_3@``*KD/```!3P``*\4/```JT`\``(-/```KW`\````````(`P```@`S -XM"@``"`$-!P```78-``#A`P``X&9````````/:4```````!(-```"`0:K`0`` -XM`@$(J0$```("!;L%```"`@?1!@```P0%:6YT``($!Y8"```""`5=`P``!(8" -XM```".FD````""`>1`@```@@$AP,```($!*D#```$]00```)27@````4(!P8( -XM`@$&L@$```3W!````S)^````!PB.````!PBL````"(X````""`58`P``!(@" -XM```$8UX````$!@$```4GS@````D%`0```0<(PP````H0!E'_````"U<%```& -XM4@`&2;@````"(R@-8V%P``9*N`````(C,`LV"@`` -XM!DNX`````B,X"]T(```&3+@````"(T`+WP0```9-20````(C2`NQ````!DY) -XM`````B-,"ZL$```&3TD````"(U`+W0H```91V@````(C6`LM`P``!E+9`0`` -XM`B-H``<(_P````<(S0$```H0!E+^`0``"U<%```&4LT!```"(P`+.`(```92 -XMTP$```(C"``.`7X-```!5P%)````X&9```````!O9T```````,Q/``"#`@`` -XM#W0``5;-`0``?5````]S``%6I@```-E0```08@`!6*8````040``$&,``5BF -XM````1E$``!!R``%8I@```'Q1```0;&5N``%9E0```+)1```1<0T```%9E0`` -XM`.A1````$@%@#0```2D!<&=````````/:4```````!Y2```/=``!*,T!``#/ -XM4@``#W,``2BF````*U,``!-R``$JI@```!!B``$KH````&-3```08P`!*Z`` -XM``"P4P``$&QE;@`!+)4```#Y4P``$7$-```!+)4````O5```$5L!```!+4D` -XM``!X5``````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+ -XM.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8` -XM21,```D6``,..@L[!4D3```*$P$##@L+.@L["P$3```+#0`##CH+.PM)$S@* -XM```,#0`#"#H+.PM)$S@*```-%0$G#$D3`1,```X%`$D3```/$P`##CP,```0 -XM`0%)$P$3```1(0!)$R\+```2$P$+"SH+.PL!$P``$Q8``P@Z"SL+21,``!0$ -XM`0L+.@L["P$3```5*``##AP-```6!`$##@L+.@L["P$3```7+@`##CH+.P4G -XM#!$!$@%`!@``&"X!`PXZ"SL%)PP@"P$3```9!0`#"#H+.P5)$P``&BX!`PXZ -XM"SL+)PP@"P$3```;!0`#"#H+.PM)$P``'#0``PXZ"SL+21,``!TT``,(.@L[ -XM"TD3```>+@$##CH+.P4G#!$!$@%`!@$3```?!0`#"#H+.P5)$P(&```@-``# -XM#CH+.P5)$P(&```A-``#"#H+.P5)$P(&```B-``##CH+.P5)$P``(QT!,1-5 -XM!E@+604``"0%`#$3```E"P%5!@``)C0`,1,"!@``)S0`,1,""@``*`4``PXZ -XM"SL%21,``"DT``,(.@L[!4D3```J+@$_#`,..@L[!2<,21,1`1(!0`8!$P`` -XM*P4``PXZ"SL%21,"!@``+!T!,1-5!E@+604!$P``+30`,1,``"XT``,..@L[ -XM"TD3`@H``"\T``,..@L["TD3/PP\#```,#0``PXZ"SL%21,_##P,`````1$! -XM)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+ -XM/@L#"```!20`"PL^"P``!@\`"PL```+@$##CH+.P4G#!$!$@%`!@$3```?!0`##CH+.P5)$P(&```@ -XM-``#"#H+.P5)$P``(2X!/PP##CH+.P4G#$D3$0$2`4`&`1,``"(N`3\,`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```C!0`#"#H+.PM)$P(&```D!0`##CH+.PM)$P(& -XM```E-``#"#H+.PM)$P(&```F+@$##CH+.PLG#$D3$0$2`4`&`1,``"+@$# -XM#CH+.PLG#$D3(`L!$P``'P4``PXZ"SL+21,``"`N`0,..@L[!2<,21,@"P$3 -XM```A!0`#"#H+.P5)$P``(@4``PXZ"SL%21,``",T``,..@L[!4D3```D+@$_ -XM#`,..@L[!2<,$0$2`4`&```E-``#"#H+.P5)$P(*```F-``##CH+.P5)$P(& -XM```G'0$Q$U4&6`M9!0$3```H!0`Q$P``*0L!508``"HT`#$3`@8``"LT`#$3 -XM```L-``Q$P(*```M"@`Q$Q$!```N'0$Q$U4&6`M9!0``+QT!,1,1`1(!6`M9 -XM"P$3```P!0`Q$P(&```Q"P$1`1(!```R'0$Q$U4&6`M9"P$3```S'0$Q$Q$! -XM$@%8"UD+`````1$!)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```R0`"PL^ -XM"P,(```$%@`##CH+.PM)$P``!20`"PL^"P``!@\`"PL```7!E2YH````````"0)@'$````````/9 -XM!`%(")P#=_U(")P#=_U(")P#X7W]`BL5`WHY6V4(D0,9C>(X`[E__0BO`Q(( -XMJ0-P_0@2"*T#\GX('4D(9@A`13OR"&=84J)#4E:JG9R!99V<2PB"`B03@8(( -XMGTFLGH4(6H*""&>"-CQ7`P^-<@AR.%8#"6,(67*!`QH(8P,*C0-Z_0,W")N4 -XM@(`#QWX".`$#E`&-G#@Z`PVIG#@Z9@@["$@(0(X(6`/J?L7"`_L`Q8%%.U8X -XM.F(\U%:.@/Y&`^-^?P,2C0/Y``@K_P-6"%4#QP`(Q0.&?P@Y`R,(Q0/=``C% -XM`[Y_"'\#F7\(Q0-B",4(S`/J``C%`\L`",4#I7\(.0/8``C%`^E^_0-YX0.4 -XM`?T#G@+OGE+(R9PX.F7F?8^XN+6`@;BXLX"%`WH('8#P\/16CU-)BTD(5P/O -XM?0A_"/$#P@`",0$#OG^W`P\(X0-Q""L#"M,#=@@=QP@ZR'(#%M,#=0AQ"#K( -XM7,``'-E8W1I;VYS+F,````` -XM7!E2YH````````"0+P*T````````/D`0&X"%24`B@2<@-W8P.\!0CA -XM"*!)"$J.CDB`CHZ`>EP(3[U(.%8($W*`2(!R;DP(R`-L",5(1DA&2`-KFP,, -XM",4##PC%`PL(Q0.J?P(H`:X#$PA'9P-I"&.."!3G@-D('_562@-CC0,6",4( -XMR@-/`B0!UD0]=V324,;&Q@-#"#GI"+@($P@L"$H(G4$#>#DZ@$AR@$A#2PAE -XM"!)RA31,-$A(Q0C(`PK]`PH(Q0C-`ZU_`BP!D0,7 -XMTP-NC0A+`PEQ9("`9(`#;6,#%0@Y5DH#;7$Z?CN`9(`##F,#:7$#%0C%`TT" -XM)P$(Q692/-8(/59B`DH05^0#=`(H`0C(",P#O7X")0&A"'?&E0C6"%:%"!)) -XM-U:.`V+%N`,2C0-M?P,BC0-J"!W&`PW]",H#Z7T")`$#"HT(2@B>6%)*U45) -XM-ZX(+#A(,&"`4@@24CP#%D)L(/<:0`B,,`Q$(1P,58P-K*P,-.0-S*TX(6@A( -XMQ@@\"&<##0@K`WF-20-6 -XM[PCU"*LZ2%E?2(Z.@`,3X0,+"'%6D`-KX0-6",4(R`,B",4#<0C%`V3A`\,` -XM",4#[`(")@$@1%B=!`(#QGW]_@0!`[<"Q8YT!`(#Q'T(.<8$`0.W`CD$`@/) -XM?4<$`0.W`G$$`@/)?3D$`0.W`CDQ;0@M!`(#Q'W]R`0!`W$(Q?U8`\0![WV! -XM10.^?G''@P,)`C5HPZ.%:/"!Y^5E0ML)=9ROB.`POA -XM`VF;JP-L?P.9?@A'A0.6`0CA`X5]J>(#E00(.0A:_`@[5H,$`@.O?0A'_@0! -XM`YH""!W4""P#<=,(2`,850@75GX#C'R-`XP$"-,#89OBN.XZ5M0#=M,#6PAC -XMX@/G``AQ`VS]`]Q^"%4(9PC_"&8('C@ZGP)B"XYR`E\1`X)_"/V`R@,="/T( -XM@@@>.%8"-!4(UP(M$3<[9M3GK`-G`DP!JJH(Y@,*",6L!`(#BW\"3P$$`0/X -XM`.$"91$"1@T#A@$"1@$#S0#A`Z]^")OX`D@-`E`*`W`(Q0/-`)L##0C%`WD( -XMQ0-)",4#9PC]`QT([U8J+&?H"#T"*Q$#8\4#$@)"`0(4``$!40$```(`E@`` -XM``$!^PX*``$!`0$````!+W5S7!EG$Q`VL('=,\ -XM4CS(.@BXW0-P")O3/%(\R#H(N-T#ZWX(FP,)*P-W50@CCH_&"(\(U@C7`YM^ -XMJ0B""$L(H`AS.PC4.')JA@-XFPAR"#P")!(('LE6@[QZ+P@Z"#P")!,(6%:" -XM`R.-"!XX5@/*``(D`0(E$`(U$PAGC@C&JKBX@8Y4@&8#;`+5`0$#&<6`"!YP -XM+`@>"&%TG@(F$8#&`R#%C@,4J0,5J0B0<@,+?P-V50,*50-V58`#+4<#5']R -XM;TNXP.5?W&<`]<`FP,; -XM"!U6`U=_40,+?P-W?[B_`WE52*JXN*JDAL@(Q@-'",4(D+%R\(!(G\#M`%_`[!^`D$! -XM`R)5`WI'`[.%Y\@/L?0CO`ZL$""L(9`.4?N$#4(T#>0@K`_Y]"$<( -XMUW0#Z0#O`B86`Y9_J<@#254#O@((8P(N$`@>"#RO"$@#"0+4`0$(/+M4.H", -XM4PBO"'*`.$@#OWX(?P,+"$<#F`$(*P@ZJ@A(`LH!%@+1`18(.@-X`B\!"#<( -XM.PCM".P#D'\"S0$!`_4`TP,Q`B@!`TW]`YA^`BT!`ZD#",4#O'X(Q0CM`S@( -XMX0-*`C0!"#<#@@$(.7*X@$AR;P.Q?\4#2@+,`0$"+A$#-`(N`0-/"#D#,P(E -XM`0,V`D.')F"*X( -XM<@B?"!8")!("(Q0(9`AP:`(W$`A6*CK&V@(F$^,(\4@#;[<#U0$(C0(I$0,T -XM`B,!`ZQ_`BX!5BHL`_,!")L#XGX(?P/_?@(J`0.-?_U6*BP#[P#3`Y)_*P-# -XM"'\#]@#A",D(%`.$?^$#AP,(Q0.G?0C%`BL45BHL`_8!Q0.@`0(K`0/7?'$" -XM(Q,(/`-Z",4"'@`!`0(!```"`(D````!`?L."@`!`0$!`````2]U7!EG\_`W5Q`PM5`T&W_4VX@`C)CT4[Z`,) -XM50-Q?P@>JL<#%PA5`VOA5PA6.GY(.$@#"0(D`4A&2`@;RDBX.%:`N`-ZX0-E -XM_0@``0$`%````/____\!``%X$`P'")`!````````'`````````!@'$`````` -XM`"D`````````1`X0```````<`````````)`<0```````*0````````!$#A`` -XM`````!P`````````P!Q````````I`````````$0.$```````+`````````#P -XM'$```````(\&````````2H\"A@9A#N`!C@.-!(P%@P<`````````/``````` -XM``"`(T```````'`(````````0@X0CP)%#AB.`TH.($(.*$$.,$$..$<.T`&# -XM!X8&C`6-!````````!0```#_____`0`!>!`,!PB0`0```````!0```#H```` -XM\"M```````!]`````````"0```#H````<"Q```````"V`0```````$J#!8P# -XM40YPC0*&!``````L````Z````#`N0```````!P$```````!"#A!!#AB&`XP" -XM1`X@1`Y@@P0````````<````Z````$`O0```````:P````````!.#B"#`X8" -XM`#0```#H````L"]```````#B`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$ -XM#G"#!H8%C`0`````)````.@```"@,4```````/0`````````00X0A@)$#AA$ -XM#B"#`P```"0```#H````H#)````````Y`0```````$J&!(,%5`ZP`8T"C`,` -XM```L````Z````.`S0```````.@$```````!"#A!"#AA!#B!!#BA$#G"#!88$ -XMC`.-`@`D````Z````"`U0```````_P````````!!#A"&`D0.&$0.8(,#```` -XM+````.@````@-D```````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP -XM@P4`'````.@```#0-D```````"(`````````1@X0```````<````Z``````W -XM0```````-P````````!$#A```````"0```#H````0#=```````!)`0`````` -XM`%J,`X,%C0*&!$<.8``````L````Z````)`X0```````%0$```````!"#A", -XM`D0.&(8#0PX@@P1(#G`````````\````Z````+`Y0```````%0,```````!" -XM#A!'#AA"#B!"#BA!#C"&!HP%C02.`X\"20XX1`Z0`8,'````````)````.@` -XM``#0/$```````-L`````````00X0A@)%#AA$#B"#`P```#P```#H````L#U` -XM``````#3"P```````$(.$$(.&$(.($(.*$$.,$$..$<.D`*#!X8&C`6-!(X# -XMCP(````````4````_____P$``7@0#`<(D`$````````4````X`,``)!)0``` -XM````V0`````````T````X`,``'!*0```````[@$```````!"#A!"#AA"#B!! -XM#BB&!8P$C0..`D0.,$0.L`&#!@```"P```#@`P``8$Q````````E`0`````` -XM`$(.$$$.&$$.((,$A@.,`D<.8````````!0```#_____`0`!>!`,!PB0`0`` -XM`````!0```!X!```D$U````````0`````````!0```!X!```H$U````````0 -XM`````````"0```!X!```L$U```````!!`````````$$.$(8"1`X81`X@@P,` -XM```<````>`0```!.0```````9@````````!.#B"&`H,#`!P```!X!```<$Y` -XM``````!F`````````$X.((8"@P,`/````'@$``#@3D```````/H7```````` -XM0@X01PX80@X@C02.`X\"10XH00XP00XX1P[@!(,'A@:,!0```````!0```#_ -XM____`0`!>!`,!PB0`0```````#P```!H!0``X&9```````"/`````````$(. -XM$$(.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`DH.0``````````\````:`4` -XM`'!G0```````GP$```````!"#A!"#AA"#B"-!(X#CP)%#BA!#C!!#CA$#E"# -XM!X8&C`4`````````7V5X=')A`'9?F4`5]L;VYG;W!T -XM`!%3$9?0U].54Q,`&]P -XM:&YU;0!S96-T:6]N6U?;&ES=`!S=')I<%]L;VYG;W!T6U?:V5E<`!%3$9?5%]32$12`'-A8U]L:7-T`&YO8V]P>0!? -XM6U?F4`14Q&7U1? -XM4U=/4D0`8W)E871E7V9I;&4`7U]F9FQA9W-?=`!%3$9?5%](04Q&`&]P=&%R -XM9P!S:&]R="!U;G-I9VYE9"!I;G0`14Q&7TM?05(`=E]R96P`6YC7W-E8W1I;VYS`$5L -XM9C8T7U-H9'(`:7-?'0`;G-E8W,`16QF-C1?6'=O`!R7V%D9&5N9`!R96PV-`!I -XM@!A9&1?=&]?:6YS96=?;&ES=`!P7V%L:6=N`$=% -XM;&9?4&AD<@!P7V9L86=S`'!?='EP90!P7W9A9&1R`'!?;65M6UB;VQS`&ES7V1E8G5G7W-Y;6)O;`!S=%]S>@!I -XM6T`5]C87``8V%L8U]N;VYL;V-A;`!%;&8V-%]3>6T`8W)E -XM871E7W-E8W-Y;0!'16QF7U-Y;0!A9&1?=&]?:V5E<%]L:7-T`'-T7V)U9@!L -XM;V]K=7!?5]B=68`:7-?;F5E9&5D7W-Y;6)O;`!S -XM>6UB;VQS+F,`:7-?;&]C86Q?6UB;VP`;'-Y9&%T80!L;V]K=7!?:V5E<%]S>6UL:7-T`'-T7VYA -XM;64`;6%R:U]S>6UB;VQS`&EN>@4````````?!P````````$`7@`````````````````````&`0`````` -XM``D!`````````0!0"0$````````,!`````````$`7"P$````````-00````` -XM```!`%QQ!````````'0$`````````0!0=`0```````#I!`````````$`7$T% -XM````````:04````````!`%R0!0```````-\&`````````0!<\`8````````0 -XM!P````````$`7``````````````````````O`P```````+H#`````````0!3 -XMVP,```````#\`P````````$`4Z,$````````SP0````````!`%/@!0`````` -XM`!<&`````````0!3CP8```````"M!@````````$`4\$&````````WP8````` -XM```!`%,`````````````````````?`(```````"Z`P````````,`D;A_VP,` -XM```````L!`````````,`D;A_HP0```````#I!`````````,`D;A_5@4````` -XM``!I!0````````,`D;A_P@4````````7!@````````,`D;A_CP8```````"M -XM!@````````,`D;A_P08```````#?!@````````,`D;A_\`8```````#_!@`` -XM``````,`D;A_`````````````````````"`'````````(@<````````"`'<( -XM(@<````````G!P````````(`=Q`G!P```````#$'`````````@!W&#$'```` -XM````,P<````````"`'<@,P<````````T!P````````(`=R@T!P```````#4' -XM`````````@!W,#4'````````/`<````````"`'`````````````````````"`'````````00<````` -XM```!`%1!!P```````(8-`````````0!?U0T```````"0#P````````$`7P`` -XM``````````````````!I!P```````&X'`````````0!540D```````!6"0`` -XM``````$`58()````````APD````````!`%6?"0```````*0)`````````0!5 -XMT`D```````#5"0````````$`58$+````````C`L````````!`%4U#``````` -XM`#H,`````````0!5/0P```````!"#`````````$`59T-````````H@T````` -XM```!`%7.#0```````-,-`````````0!5X@T```````#G#0````````$`5:4. -XM````````J@X````````!`%7)#@```````,X.`````````0!5W0X```````#B -XM#@````````$`55(/````````7@\````````!`%4````````````````````` -XMA`@```````"<"`````````$`4%H)````````>`D````````!`%"H"0`````` -XM`,8)`````````0!0]@T````````"#@````````$`4``````````````````` -XM```P#````````#H,`````````0!420P```````!0#`````````$`5``````` -XM```````````````I#````````#H,`````````0!120P```````!0#``````` -XM``$`40````````````````````#\"0```````/\)`````````0!0_PD````` -XM```>"@````````$`75`*````````4`H````````!`%T6#@```````"<.```` -XM`````0!=,0X```````!"#@````````$`70````````````````````"$"``` -XM`````/\)`````````0!=4`H````````4"P````````$`7=$+````````7`P` -XM```````!`%WV#0```````!8.`````````0!=0@X```````!G#@````````$` -XM70````````````````````"$"````````!X*`````````0!3G@H```````"A -XM"@````````$`4*$*````````%`L````````!`%/1"P```````%P,```````` -XM`0!3]@T````````'#@````````$`4Q8.````````)PX````````!`%,Q#@`` -XM`````$(.`````````0!34PX```````!G#@````````$`4P`````````````` -XM``````"$"````````)P(`````````0!0GP@```````#;"`````````$`4.(( -XM````````5@D````````!`%!X"0```````(<)`````````0!0C`D```````"D -XM"0````````$`4,8)````````U0D````````!`%#:"0```````/D)```````` -XM`0!0\@L````````)#`````````$`4`X,````````$PP````````!`%!0#``` -XM`````%4,`````````0!0`````````````````````!X*````````1@H````` -XM```!`%,'#@```````!8.`````````0!3`````````````````````#H,```` -XM````0@P````````!`%`[#0```````'H-`````````0!0```````````````` -XM`````!T+````````T0L````````!`%;2#````````&H-`````````0!6U0T` -XM``````#V#0````````$`5B<.````````,0X````````!`%8````````````` -XM````````&PL````````E"P````````,`D;!^)0L````````M"P````````,` -XMD;1^+0L````````P"P````````,`D;A^,`L````````R"P````````$`73(+ -XM````````,@L````````!`%,R"P```````$L+`````````P"1L'Y+"P`````` -XM`&P+`````````0!3;`L```````!R"P````````$`4W(+````````APL````` -XM```!`%.'"P```````(X+`````````0!=C@L```````"6"P````````$`4Y8+ -XM````````F`L````````#`)&T?I@+````````H`L````````!`%.@"P`````` -XM`*(+`````````P"1N'ZB"P```````+`+`````````0!3L`L```````"R"P`` -XM``````,`D;!^L@L```````#1"P````````$`4SH,````````20P````````# -XM`)&T?M(,````````^@P````````!`%/Z#`````````H-`````````P"1M'X* -XM#0````````P-`````````P"1L'X,#0```````!0-`````````0!3%`T````` -XM```S#0````````,`D;A^,PT```````"!#0````````$`4X$-````````E0T` -XM```````#`)&P?I4-````````U0T````````#`)&T?M4-````````]@T````` -XM```!`%,G#@```````#$.`````````0!3`````````````````````$4+```` -XM````3@L````````!`%#2#````````.(,`````````0!0)PX````````L#@`` -XM``````$`4``````````````````````Z#````````$D,`````````0!6:@T` -XM``````!Z#0````````$`5GH-````````E0T````````!`%"5#0```````-4- -XM`````````0!6`````````````````````(`,````````F`P````````!`%"Q -XM#@```````+\.`````````0!0`````````````````````&,(````````_PD` -XM```````!`%T4"P```````#`+`````````0!=\@L```````#2#`````````$` -XM7?8-````````!PX````````!`%UG#@```````&@/`````````0!=B0\````` -XM``"0#P````````$`70````````````````````!<#````````)@,```````` -XM`0!0FPP```````#+#`````````$`4&<.````````J@X````````!`%"_#@`` -XM`````,X.`````````0!0TPX```````#B#@````````$`4.<.````````"@\` -XM```````!`%``````````````````````.@P```````!)#`````````$`5CD/ -XM````````10\````````!`%9%#P```````%4/`````````0!050\```````!H -XM#P````````$`5@````````````````````"``````````)L``````````@!W -XM")L`````````-@(````````#`'?P``````````````````````"````````` -XM`*8``````````0!5I@````````"1`0````````$`7)L!````````-@(````` -XM```!`%P`````````````````````GP````````",`0````````$`5IL!```` -XM````-@(````````!`%8`````````````````````!0$````````(`0`````` -XM``$`4`@!````````AP$````````!`%.;`0```````+X!`````````0!3W`$` -XM```````V`@````````$`4P````````````````````!``@```````$("```` -XM`````@!W"$("````````0P(````````"`'<00P(```````!'`@````````(` -XM=QA'`@```````$L"`````````@!W($L"````````1P,````````#`'?@```` -XM``````````````````!``@```````%P"`````````0!57`(```````#M`@`` -XM``````$`5O`"````````1P,````````!`%8`````````````````````4@(` -XM``````#L`@````````$`4_`"````````1P,````````!`%,````````````` -XM````````Y0(```````#P`@````````$`4"P#````````,P,````````!`%`` -XM````````````````````4`,```````!>`P````````(`=PA>`P```````+L# -XM`````````@!W(`````````````````````!0`P```````'(#`````````0!5 -XMA0,```````"(`P````````$`50````````````````````!0`P```````&P# -XM`````````0!4;`,```````!W`P````````$`5G<#````````A0,````````! -XM`%2%`P```````+L#`````````0!6`````````````````````&(#```````` -XM?`,````````!`%-\`P```````(4#`````````0!5A0,```````"[`P`````` -XM``$`4P````````````````````#``P```````,(#`````````@!W",(#```` -XM````Q`,````````"`'<0Q`,```````#)`P````````(`=QC)`P```````,H# -XM`````````@!W(,H#````````RP,````````"`',#````````%@4````````!`%T6!0```````!D% -XM`````````0!5&04```````"B!0````````$`70`````````````````````$ -XM!````````!$%`````````0!3&04```````"B!0````````$`4P`````````` -XM``````````#6`P```````!(%`````````0!6&04```````"B!0````````$` -XM5@````````````````````"/!````````)($`````````0!0D@0```````#0 -XM!`````````$`44@%````````4@4````````!`%$````````````````````` -XM#00````````4!0````````$`7!D%````````H@4````````!`%P````````` -XM````````````L`4```````"Q!0````````(`=PBQ!0```````+4%```````` -XM`@!W$+4%````````N04````````"`'<8N04```````"D!@````````(`=R`` -XM````````````````````L`4```````#+!0````````$`5P`0````````````````````"P!@```````-0&`````````0!5U`8` -XM``````!_!P````````$`7(\'````````Z0<````````!`%P````````````` -XM````````L`8```````#9!@````````$`5-D&````````X08````````!`%4` -XM````````````````````L`8```````#A!@````````$`4>$&````````;P<` -XM```````!`%./!P```````.D'`````````0!3`````````````````````+`& -XM````````X08````````!`%+A!@```````'<'`````````0!6CP<```````#I -XM!P````````$`5@````````````````````#P!P```````/('`````````@!W -XM"/('````````]`<````````"`'<0]`<```````#U!P````````(`=QCU!P`` -XM`````/8'`````````@!W(/8'````````^@<````````"`'PL````````!`%1]"P```````(D+`````````0!6I0L```````"G -XM"P````````$`5L(+````````Q`L````````!`%;\"P```````),,```````` -XM`0!6`````````````````````'T+````````?PL````````!`%`T#``````` -XM`#D,`````````0!0:`P```````"##`````````$`4(X,````````F0P````` -XM```!`%``````````````````````H`P```````"B#`````````(`=PBB#``` -XM`````*8,`````````@!W$*8,````````J0P````````"`'<8J0P```````"Q -XM#`````````(`=R"Q#````````+4-`````````P!W\``````````````````` -XM````H`P```````"U#`````````$`5;4,````````+PT````````!`%PP#0`` -XM`````+4-`````````0!<`````````````````````*`,````````K0P````` -XM```!`%2M#````````"P-`````````0!3,`T```````"U#0````````$`4P`` -XM```````````````````2#0```````!\-`````````0!0>0T```````"##0`` -XM``````$`4`````````````````````"H#````````"T-`````````0!6,`T` -XM``````"U#0````````$`5@`````````````````````%#0```````#`-```` -XM`````@"16'D-````````EPT````````"`)%8`````````````````````"<- -XM````````,`T````````!`%$W#0```````$<-`````````0!1```````````` -XM`````````,`-````````P@T````````"`'<(P@T```````#)#0````````(` -XM=Q#)#0```````,L-`````````@!W&,L-````````S0T````````"`'<@S0T` -XM``````#.#0````````(`=RC.#0```````-<-`````````@!W,-<-```````` -XMVPT````````"`'NA````````#5$`````````$`7@`````````````` -XM```````T#@```````)P0`````````P"1N'^Z$````````-40`````````P"1 -XMN'\`````````````````````-`X````````0$`````````$`7140```````` -XMG!`````````!`%VZ$````````-40`````````0!=```````````````````` -XM`/\.`````````@\````````!`%`"#P```````%\/`````````0!1W@\````` -XM``#D#P````````$`4140````````'Q`````````!`%$````````````````` -XM````_P\````````5$`````````$`4+H0````````P1`````````!`%`````` -XM````````````````X!````````#A$`````````(`=PCA$````````.80```` -XM`````@!W$.80````````ZA`````````"`'<8ZA````````"[$0````````(` -XM=R``````````````````````X!````````!'$0````````$`56H1```````` -XM?1$````````!`%6$$0```````(X1`````````0!5K!$```````"Q$0`````` -XM``$`50````````````````````#@$`````````41`````````0!4+!$````` -XM``!$$0````````$`5&H1````````>!$````````!`%2$$0```````(L1```` -XM`````0!4`````````````````````/(0````````;Q$````````!`%-Q$0`` -XM`````+L1`````````0!3`````````````````````/00````````1!$````` -XM```!`%1J$0```````'@1`````````0!4A!$```````"+$0````````$`5*P1 -XM````````MA$````````!`%0`````````````````````]!`````````%$0`` -XM``````$`5"P1````````>!$````````!`%2$$0```````(L1`````````0!4 -XME1$```````"G$0````````$`5`````````````````````#T$````````'T1 -XM`````````0!5A!$```````".$0````````$`5941````````IQ$````````! -XM`%6L$0```````+$1`````````0!5`````````````````````,`1```````` -XMPA$````````"`'<(PA$```````#$$0````````(`=Q#$$0```````,81```` -XM`````@!W&,81````````R!$````````"`'<@R!$```````#)$0````````(` -XM=RC)$0```````,H1`````````@!W,,H1````````T1$````````"`'!8````````!`%5X%@```````)(6`````````P"1 -XMR'Z2%@```````)<6`````````0!5EQ8```````"3'0````````,`DP`0````````````````````#@ -XM`````````%P!`````````0!57`$```````!/`@````````$`5E8"```````` -XMS@(````````!`%8`````````````````````]@````````!A`0````````$` -XM4H4!````````3@(````````!`%-6`@```````)("`````````0!3```````` -XM`````````````/T`````````!`$````````!`%`+`0```````&$!```````` -XM`0!0`````````````````````/T`````````80$````````!`%$````````` -XM````````````H0$```````"J`0````````$`7*H!````````40(````````! -XM`%Q6`@```````)("`````````0!<`````````````````````-`"```````` -XMT@(````````"`'<(T@(```````#3`@````````(`=Q#3`@```````-0"```` -XM`````@!W&-0"````````VP(````````"`'<@VP(```````#U`P````````,` -XM=^```````````````````````-`"````````WP(````````!`%7?`@`````` -XM`*0#`````````0!3J`,```````#U`P````````$`4P`````````````````` -XM``#V`@````````4#`````````@"16`H#````````UP,````````"`)%8```` -XM`````````````````"``````````(0`````````"`'<((0`````````E```` -XM``````(`=Q`E`````````"D``````````@!W&"D`````````80`````````" -XM`'<@`````````````````````"``````````-P`````````!`%5````````` -XM`$8``````````0!56`````````!A``````````$`50`````````````````` -XM```@`````````#4``````````0!4-0````````!7``````````$`5E@````` -XM````8``````````!`%9@`````````&$``````````0!4```````````````` -XM`````#``````````5@`````````!`%-8`````````%\``````````0!3```` -XM`````````````````'``````````?@`````````"`'<(?@````````#6```` -XM``````(`=R``````````````````````<`````````"&``````````$`588` -XM````````P``````````!`%;%`````````-8``````````0!6```````````` -XM`````````'``````````C@`````````!`%2.`````````+L``````````0!3 -XMQ0````````#6``````````$`4P````````````````````#@`````````.X` -XM`````````@!W".X`````````1@$````````"`'<@```````````````````` -XM`.``````````]@`````````!`%7V`````````#`!`````````0!6-0$````` -XM``!&`0````````$`5@````````````````````#@`````````/X````````` -XM`0!4_@`````````K`0````````$`4S4!````````1@$````````!`%,````` -XM````````````````4`$```````!2`0````````(`=PA2`0```````%D!```` -XM`````@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(` -XM=R!@`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0````` -XM``!%%`````````$`4488````````4!@````````!`%$````````````````` -XM````;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``` -XM`````%`8`````````0!1`````````````````````-\#````````KP4````` -XM```!`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1 -XM````````*!$````````!`%/2$0````````82`````````0!3:!(````````T -XM$P````````$`4XX3````````I!,````````!`%/)$P```````!`4```````` -XM`0!3K!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`` -XM`````)@7`````````0!3I1@```````#*&`````````$`4P`````````````` -XM``````##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1 -XMD'S$"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R. -XM%````````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`` -XM`````.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````` -XM````````````V`,```````"U!P````````,`D8A\R0<```````!I"0`````` -XM``,`D8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,` -XMD8A\CA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\ -XMPA<```````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```` -XM`````````````````(@"````````WP,````````!`%-I"0```````-\)```` -XM`````0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q -XM%P```````&X7`````````0!3F!<```````"I%P````````$`4\`7```````` -XMZA<````````!`%,`````````````````````B@(```````"U!P````````,` -XMD;A_R0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_ -XM*!@```````!*&0````````,`D;A_`````````````````````%P$```````` -XM9@0````````!`%``````````````````````_P(```````"U!P````````,` -XMD8!\R0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\ -XMCA0```````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```` -XM`````````````````,\#````````M0<````````#`)'8?,D'````````:0D` -XM```````#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````` -XM```#`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````# -XM`)'8?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8 -XM?-(/````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0 -XM````````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```` -XM````D1$````````#`)'8?)$1````````LA$````````#`)'X>[(1```````` -XM!A(````````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,` -XM```````#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````` -XM```#`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````# -XM`)'8?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8 -XM?$87````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7 -XM````````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````` -XM``````````````#8`P```````+4'`````````P"1\'O)!P```````&D)```` -XM`````P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.```````` -XM`P"1\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1 -XM\'L4$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT -XM$P```````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``` -XM`````#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P`````` -XM`,`7`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9 -XM`````````P"1\'L`````````````````````V`,```````#N`P````````$` -XM7YD%````````00<````````!`%^H"````````&D)`````````0!?&PH````` -XM``#A$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```` -XM`````0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0 -XM%````````&P4`````````0!?CA0```````"L%`````````$`7\P4```````` -XM`Q<````````!`%]5%P```````&X7`````````0!?J1<```````#`%P`````` -XM``$`7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@` -XM``````!*&0````````$`7P````````````````````"*`@```````/`"```` -XM`````0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4 -XM````````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````` -XM```````````````3`@```````+4'`````````P"1Y'O)!P```````&P4```` -XM`````P"1Y'N.%````````$H9`````````P"1Y'L````````````````````` -XM!@,````````N`P````````$`4(L#````````I`,````````!`%#8`P`````` -XM`/`#`````````0!5_0,````````(!`````````$`59D%````````\04````` -XM```!`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\) -XM````````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!: -XM%P````````$`59@7````````I!<````````!`%#`%P```````,(7```````` -XM`0!0PA<```````#'%P````````$`50````````````````````"O!0`````` -XM`/8%`````````0!2`````````````````````)<*````````GPH````````! -XM`%3$"@```````,D*`````````0!5`````````````````````-@#```````` -XMWP,````````!`%.N"@```````/$*`````````0!3_@H```````!-"P`````` -XM``$`4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<` -XM``````#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88 -XM`````````0!3`````````````````````&X)````````>`D````````!`%4` -XM````````````````````51$```````!?$0````````$`5&D5````````;!4` -XM```````!`%!L%0```````'H5`````````0!4`````````````````````-@# -XM````````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```` -XM````X1`````````#`)&X?.\0````````;!0````````#`)&X?(X4```````` -XM,1<````````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<` -XM```````#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````` -XM```#`)&X?``````````````````````T"P```````$,+`````````0!<51$` -XM``````"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7 -XM`````````0!`T````````!`%4*%0````````X5`````````0!5 -XM51<```````!:%P````````$`5;`7````````LA<````````!`%"R%P`````` -XM`,`7`````````0!5PA<```````#'%P````````$`5988````````F!@````` -XM```!`%"8&````````*48`````````0!5`````````````````````-@#```` -XM````M0<````````#`)&L?,D'````````:0D````````#`)&L?$8*```````` -XMX1`````````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<` -XM```````#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````` -XM```#`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````# -XM`)&L?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`` -XM`````&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@`````` -XM`&,*`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``` -XM``````,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P`````` -XM``,`D<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,` -XMD<1\*!@```````!*&0````````,`D<1\`````````````````````$,'```` -XM````M0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``` -XM``````$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3 -XMRA@```````#7&`````````$`4P````````````````````!&!P```````+4' -XM`````````0!>R0<```````#8!P````````$`7ML'````````J`@````````! -XM`%Z.%````````*P4`````````0!>51<```````!N%P````````$`7LH8```` -XM````UQ@````````!`%X`````````````````````X@<````````>"``````` -XM``$`4%47````````6A<````````!`%7*&````````-<8`````````0!0```` -XM`````````````````````````````@`````````"`'<(`@`````````$```` -XM``````(`=Q`$``````````8``````````@!W&`8`````````"``````````" -XM`'<@"``````````)``````````(`=R@)``````````H``````````@!W,`H` -XM````````%``````````"`'@`````````!`%][```` -XM`````(X``````````0!?`````````````````````#,`````````;P`````` -XM```!`%9[`````````(8``````````0!6`````````````````````#4````` -XM````;0`````````!`%Q[`````````(@``````````0!<```````````````` -XM`````#4`````````;@`````````!`%-[`````````(4``````````0!3```` -XM`````````````````"0``````````@````````,` -XMD;A_`````````````````````.0`````````2P$````````!`%Q2`0`````` -XM``8"`````````0!<#0(````````>`@````````$`7``````````````````` -XM``#V`````````$@!`````````0!34@$```````"E`0````````$`4P`````` -XM``````````````#G`````````%$!`````````0!?4@$````````,`@`````` -XM``$`7PT"````````'@(````````!`%\`````````````````````[P`````` -XM```>`@````````(`D40`````````````````````#P$```````#;`P`````` -XM`/`&````````$`<```````#!!@```````-\&````````%P8```````"M!@`` -XM`````,(%````````_@4```````"0!0```````*X%````````304```````!I -XM!0```````,\$````````Z00````````L!````````#4$```````````````` -XM`````````````)!<```````!) -XM%P```````&H7````````0A<```````!&%P````````@7````````,!<````` -XM```"%P````````47````````[A8```````#W%@```````-H6````````X18` -XM``````#,%@```````-46`````````````````````````````%P2```````` -XM@1(```````#A%0```````/L5`````````````````````````````($2```` -XM````Y1(````````[&P```````$H;````````"A8```````"H%@```````'$5 -XM````````X14```````!@$P```````)L4```````````````````````````` -XM`($2````````Y1(````````[&P```````$H;````````EQ8```````"H%@`` -XM`````#@6````````6X`+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF -XM:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y -XM;F%M:6,`+F-T;W)S`"YD=&]RE```````*!Z```````` -XMH`$````````%``````````@`````````$`````````"X`````0````,````` -XM````0'Q0``````!`?````````!`````````````````````(```````````` -XM````````OP````$````#`````````%!\4```````4'P````````0```````` -XM````````````"````````````````````,8````!`````P````````!@?%`` -XM`````&!\````````"`````````````````````@```````````````````#+ -XM`````0````,`````````:'Q0``````!H?````````$@"```````````````` -XM```(``````````@`````````T`````@````#`````````+!^4```````L'X` -XM```````P````````````````````"````````````````````-4````!```` -XM`````````````````````+!^````````]@$```````````````````$````` -XM``````````````#>`````0````````````````````````"F@````````/`` -XM```````````````````!````````````````````[0````$````````````` -XM````````````EH$```````#I`0```````````````````0`````````````` -XM`````/T````!`````````````````````````'^#````````:TX````````` -XM``````````$````````````````````)`0```0`````````````````````` -XM``#JT0```````#4+```````````````````!````````````````````%P$` -XM``$`````````````````````````']T````````8#@`````````````````` -XM`0```````````````````",!```!`````````````````````````#CK```` -XM``````8```````````````````@````````````````````P`0```0```#`` -XM```````````````````X\0```````(P-```````````````````!```````` -XM``$`````````.P$```$`````````````````````````Q/X```````"<5``` -XM`````````````````0```````````````````$8!```!```````````````` -XM`````````&!3`0``````@!@```````````````````$````````````````` -XM```1`````P````````````````````````#@:P$``````%0!```````````` -XM```````!`````````````````````0````(````````````````````````` -XM>'8!``````"@$0```````"0```!/````"``````````8``````````D````# -XM`````````````````````````!B(`0``````B@D```````````````````$` -XM`````````````````````````````````````````````````````````P`! -XM`,@!0````````````````````````P`"`.`!0``````````````````````` -XM`P`#`/@!0````````````````````````P`$`%`$0``````````````````` -XM`````P`%`-`+0````````````````````````P`&`.`.0``````````````` -XM`````````P`'`(`/0````````````````````````P`(`,`/0``````````` -XM`````````````P`)`#@00````````````````````````P`*`,@60``````` -XM`````````````````P`+`-P60````````````````````````P`,`%`;0``` -XM`````````````````````P`-`#AI0````````````````````````P`.`$AI -XM0````````````````````````P`/`$1R0````````````````````````P`0 -XM`&!R4````````````````````````P`1`&!U4``````````````````````` -XM`P`2`*!Z4````````````````````````P`3`$!\4``````````````````` -XM`````P`4`%!\4````````````````````````P`5`&!\4``````````````` -XM`````````P`6`&A\4````````````````````````P`7`+!^4``````````` -XM`````````````P`8`````````````````````````````P`9```````````` -XM`````````````````P`:`````````````````````````````P`;```````` -XM`````````````````````P`<`````````````````````````````P`=```` -XM`````````````````````````P`>`````````````````````````````P`? -XM`````````````````````````````P`@```````````````````````````` -XM`P`A`````````````````````````````P`B```````````````````````` -XM`````P`C`````````````````````````````P`D```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`3`$!\ -XM4`````````````````!@`````0`4`%!\4`````````````````!N`````0`5 -XM`&!\4`````````````````![`````@`,`/`;0`````````````````"1```` -XM`0`7`-1^4````````0````````"@`````0`0`'!R4`````````````````"G -XM`````@`,`#`<0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`3`$A\4`````````````````#``````0`4`%A\4``````````` -XM``````#-`````0`1`&AZ4`````````````````#;`````0`5`&!\4``````` -XM``````````#G`````@`,`!!I0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0```@`,`&`<0```````*0`````````N`0`` -XM`@`,`)`<0```````*0`````````X`0```@`,`,`<0```````*0````````!& -XM`0```@`,`/`<0```````CP8```````!2`0```0`0`,!S4```````H`$````` -XM``!C`0```0`0`(!R4```````0`$```````!R`0``!`#Q_P`````````````` -XM``````!]`0```@`,`/`K0```````?0````````"0`0```@`,`$`O0``````` -XM:P````````"@`0```@`,`-`V0```````(@````````"T`0```@`,```W0``` -XM````-P````````#&`0```@`,`-`\0```````VP````````#1`0``!`#Q_P`` -XM``````````````````#<`0``!`#Q_P````````````````````#F`0```@`, -XM`)!-0```````$`````````#W`0```@`,`*!-0```````$``````````'`@`` -XM!`#Q_P`````````````````````/`@``$@`,`"`U0```````_P`````````< -XM`@``$@`,`*`Q0```````]``````````F`@``$@```.P60```````D``````` -XM```X`@``$@```/P60```````AP````````!2`@``$@````P70```````%P$` -XM``````!I`@``$@```!P70```````314```````!^`@``$@`,`*`R0``````` -XM.0$```````"(`@``$@```"P70```````?`$```````"9`@``$@`,`'!.0``` -XM````9@````````"J`@``$0`2`*!Z4`````````````````"S`@``$@```#P7 -XM0```````V@(```````#)`@``$@```$P70```````G@````````#8`@``$@`` -XM`%P70```````-`````````#J`@``$@```&P70```````50````````#[`@`` -XM$@`,`)`X0```````%0$````````/`P``$@`,`+`]0```````TPL````````< -XM`P``$@```'P70```````Y0`````````R`P``$@`,`.!F0```````CP`````` -XM``!``P``$@```(P70```````B@````````!0`P``$@```)P70``````````` -XM``````!A`P``$@```*P70```````:@````````!X`P``$0(0`&AR4``````` -XM``````````"%`P``$@```+P70```````X@````````":`P``$@`,`.!.0``` -XM````^A<```````"H`P``$@```,P70```````C`$```````#"`P``$@`,`+`O -XM0```````X@$```````#2`P``$@```-P70````````@````````#F`P``$@`` -XM`.P70```````AP8```````#X`P``$@```/P70```````.P`````````.!``` -XM$@````P80```````&0$````````E!```$@`,`.`S0```````.@$````````U -XM!```$@`*`,@60``````````````````[!```$@```!P80```````)``````` -XM``!2!```$@```"P80```````B`````````!A!```$0`7`-A^4```````"``` -XM``````!I!```$@```#P80```````3`````````![!```$@```$P80``````` -XM*0````````",!```$@```%P80```````-0````````"A!```$@```&P80``` -XM````:0$```````"V!```$@```'P80```````:@````````#0!```$0`7`+!^ -XM4```````!`````````#G!```$@```(P80```````K0(```````#X!```$@`` -XM`)P80```````%@`````````+!0``$0`0`&!R4```````"``````````6!0`` -XM$@`,`"`V0```````H@`````````E!0``$@`,`%`;0```````DP`````````L -XM!0``$@```*P80```````E0`````````\!0``$@```+P80``````````````` -XM``!+!0``$0`7`+A^4```````"`````````!!0``$@`,`#`N0```````!P$```````"J!0``$@`,`'!*0``` -XM````[@$```````"T!0``$@`,`'!G0```````GP$```````#%!0``$@```/P8 -XM0```````*`````````#"```$@```+P:0```````\@````````!O"```$0`7`,A^4```````"``` -XM``````"#"```$@```,P:0```````=@````````"2"```$0`7`-!^4``````` -XM!`````````"C"```$@```-P:0```````+P````````"T"```$@`,``!.0``` -XM````9@````````#&"```$@`,`)!)0```````V0````````#8"```$@```.P: -XM0```````'@````````#I"```$@```/P:0```````N0$````````$"0``$@`` -XM``P;0```````(0`````````9"0``$@```!P;0``````` -XM"0``$@`,`&!,0```````)0$```````!I"0``$@```#P;0```````:`$````` -XM``!_"0``$@`,`+`Y0```````%0,`````````8W)T,2YC`&%B:71A9P`O=7-R -XM+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\8V]M;6%N9"UL:6YE/@`\8G5I -XM;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ)4U1?7P!?7T143U)?3$E35%]? -XM`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R4!`1D)31%\Q -XM+C``5]P:&1R -XM`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A=&5?elfcopy.1.uu << 'e4e59173f6354081a9e3a7debde2f069' -Xbegin 644 elfcopy.1 -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````("!```` -XM`````````$``.``'`$``&@`9``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6X`+G)E -XM;&$N<&QT`"YI;FET`"YP;'0`+G1E>'0`+F9I;FD`+G)O9&%T80`N96A?9G)A -XM;65?:&1R`"YD871A`"YE:%]F``````````$ -XM``````````@`````````&`````````!=````!````$(`````````.!!````` -XM```X$````````)`&````````!`````L````(`````````!@`````````9P`` -XM``$````&`````````,@60```````R!8````````3```````````````````` -XM!````````````````````&T````!````!@````````#<%D```````-P6```` -XM````<`0```````````````````0`````````$`````````!R`````0````8` -XM````````4!M```````!0&P```````.A-```````````````````0```````` -XM````````````>`````$````&`````````#AI0```````.&D````````.```` -XM````````````````!````````````````````'X````!`````@````````!( -XM:4```````$AI````````_`@```````````````````@````````````````` -XM``"&`````0````(`````````1')```````!$<@````````@````````````` -XM```````$````````````````````E`````$````#`````````&!R4``````` -XM8'(``````````P``````````````````(````````````````````)H````! -XM`````@````````!@=5```````&!U````````0`4```````````````````@` -XM``````````````````"D````!@````,`````````H'I0``````"@>@`````` -XM`*`!````````!0`````````(`````````!``````````K0````$````#```` -XM`````$!\4```````0'P````````0````````````````````"``````````` -XM`````````+0````!`````P````````!0?%```````%!\````````$``````` -XM``````````````@```````````````````"[`````0````,`````````8'Q0 -XM``````!@?`````````@````````````````````(```````````````````` -XMP`````$````#`````````&A\4```````:'P```````!(`@`````````````` -XM````"``````````(`````````,4````(`````P````````"P?E```````+!^ -XM````````,`````````````````````@```````````````````#*`````0`` -XM``````````````````````"P?@```````/8!```````````````````!```` -XM`````````````````0````,`````````````````````````IH````````#3 -X?`````````````````````0`````````````````````` -X` -Xend -e4e59173f6354081a9e3a7debde2f069 -echo x - elfcopy.uu -sed 's/^X//' >elfcopy.uu << '2151ae8f08071e33d3c60fbc8f2d2844' -Xbegin 644 elfcopy -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````#AM`0`` -XM`````````$``.``'`$``)0`B``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6YC7W-E8W1I;VYS`"(1``!I;G-E5]C;VYT96YT``````!! -XM`````@!^+@``W`D``'$(``!A9&1?=&]?:6YS96=?;&ES=`#W"```8V]P>5]P -XM:&1R`'P)``!S971U<%]P:&1R``````!C`````@!:.```!1,```L,``!L;V]K -XM=7!?:V5E<%]S>6UL:7-T`&8,``!A9&1?=&]?6`@```TP&```".8,````" -XM"`5=`P```X8"```".I4````""`>1`@```@@$AP,```($!*D#```#]00```)2 -XMB@````,\!0```E1X````!0@'!@@#?`$```,F9@````,5`P```R=X`````[0& -XM```#*68````#B0````,L9@````,T`P```RYF`````PT"```#,4(````#70<` -XM``,S0@````,(!0```S1X`````W`&```#/F8````#&@$```-;9@````(!!K(! -XM```#_`$```190@````-/`P``!%YF`````X@"```$8XH````'"#,!```'"&U````"7(&```$"`$=`0``"MT%```0 -XM!2X/`@``"X<'```%+\\!```"(P`+\`4```4P@P````(C"``*U@```'@&@PH# -XM```+V`0```:$*`$```(C``M-!P``!H68`0```B,$"V@&```&AJ,!```"(P@+ -XM@P0```:'K@$```(C"@N0`0``!HC:`0```B,,"V0"```&B8T!```"(Q`+O@$` -XM``:**`$```(C%`O9!0``!HSF`0```B,8"R`#```&C>8!```"(R@+8`4```:. -XMY@$```(C.`NK`@``!I>Y`0```B-("S8````&F')`P```B,`#%]R``AH -XM7P````(C"`Q?=P`(:5\````"(PP+?0H```AJ.P````(C$`NN!@``"&L[```` -XM`B,2#%]B9@`(;&`#```"(Q@+0P8```AM7P````(C*`M)`@``"'##`````B,P -XM"_,!```(<<,$```"(S@+L@0```ARXP0```(C0`O2!```"',#!0```B-("TD` -XM```(=",%```"(U`,7W5B``AW8`,```(C6`L`````"'@O!0```B-H#%]U<@`( -XM>5\````"(W`+1@0```A\-04```(C=`N;````"'U%!0```B-W#%]L8@`(@&`# -XM```"(W@++0````B#7P````,CB`$+=PD```B$50,```,CD`$`#0%?````PP0` -XM``[#``````<(LP0```T!7P```.,$```.PP````Y;`0``#E\`````!PC)!``` -XM#0%5`P```P4```[#````#E4#```.7P`````'".D$```-`5\````C!0``#L,` -XM```.80$```Y?``````<("04```_M`@```0<(*04``!`T````104``!'````` -XM`@`0-````%4%```1P````````Z8"```(A8\#```""`58`P``$#0```!W!0`` -XM$<`````/``/[`@``"290`0```Y0&```!%7$#```"%7$'```#%=L````$`!0$"C9=!P``%3$%````%9H'```! -XM%>8%```"%;$%```#%H````3%>$"```4%7P#```5%0X!```6%?X$```7`!0$ -XM"E6T'```+MPH```PB80$```(C``M>!```#"2M -XM!P```B,(``<(Q`<``!((##8*"```"U8%```,-K\(```"(P``"F8#``!(#"B_ -XM"```"[<*```,*6$!```"(P`+H@$```PJ80$```(C"`M!`@``#"MA`0```B,0 -XM"X4-```,+&$!```"(Q@,861D``PN7P````(C(`M;`0``#"]?`````B,D"\D' -XM```,,%\````"(R@+404```PQ7P````(C+`O9`0``##)?`````B,P"V\````, -XM,U\````"(S0+5P0```PT7P````(C.`NB!```##;S!P```B-```<("@@``!(( -XM##_<"```"U8%```,/R$)```"(P``"@<&```@##HA"0``"[<*```,.UL!```" -XM(P`+=`H```P\6P$```(C"`L`"```##W$`0```B,0"Z<````,/\4(```"(Q@` -XM!PC<"```$A`,44P)```+5P4```Q1&@H```(C``LX`@``#%$@"@```B,(``JD -XM"0``>`Q#&@H```NW"@``#$1A`0```B,`#&ES``Q%G`<```(C"`QO=`H```O7`@`` -XM#%X:"@```B,`"P0'```,7B`*```"(P@`$@@,7XL*```+5@4```Q?^@H```(C -XM```*NP(``$`,5OH*```,;V9F``Q74`$```(C``QF@`,65`!```"(Q`+W0@```Q:4`$```(C&`MO````#%Q?`````B,@"X@'```, -XM7DL*```"(R@+3@L```Q?=`H```(C.``'"(L*```4!`R-)PL``!5B`0```!40 -XM!0```14W!@```A7X!0```Q43!@``!``2$`RI3`L```O6`@``#*GZ"@```B,` -XM"P,'```,J4P+```"(P@`!PCZ"@``$A`,JG<+```+U@(```RJOP@```(C``L# -XM!P``#*IW"P```B,(``<(OP@``!(0#*NB"P``"]8"```,JR$)```"(P`+`P<` -XM``RKH@L```(C"``'""$)```2$`RMS0L```O6`@``#*WM!P```B,`"P,'```, -XMKU\````" -XM(RP,;F]S``Q]7P````(C,`LQ!```#()?`````B,T"T\!```,@U\````"(S@+ -XMO0<```R$7P````(C/`O-`0``#(5?`````B-`"V,````,AE\````"(T0+104` -XM``R'7P````(C2`O@#```#(D:"@```B-0"VH-```,BAH*```"(U@+Y@D```R+ -XM&@H```(C8`M^!@``#),`"P```B-H"WX*```,FU\````"(VP+KP<```R>Z@T` -XM``(C<`OS!@``#*'J#0```B-X"^T&```,I(D#```#(X`!"U0'```,IXD#```# -XM(X@!"S`!```,J2<+```#(Y`!"P<````,JE(+```#(Z`!"S8!```,JWT+```# -XM([`!"W@&```,K:@+```#(\`!"XP$```,K],+```#(]`!"X@'```,L?@+```# -XM(^`!``<(>P8```<(4`$``!8W!P``!`$L#PX``!7&`````!5V`````14/!@`` -XM`@`7>P<```%:`@%@'$```````(D<0````````````!<&`P```5,"`9`<0``` -XM````N1Q````````X````%[@````!3`(!P!Q```````#I'$```````'`````8 -XM/P<```$,`0$!F0X``!EE8W```0L!F0X``!EI9F0``0L!7P```!EO9F0``0L! -XM7P`````'"!T,```:&`````&(`0'D#@``&V5C<``!AYD.```J`8```$O`0'P -XM'$```````'\C0```````J````/D/```?96-P``$N`9D.``#A````'W-R8P`! -XM+@%A`0``*@$``!]D04```$R`<0!```A:69D``$S`5\```#&`P``(6]F9``!,P%?````(@0``"-F -XM#@````````%7`22,#@``)(`.```D=`X``".?#@``H`````$=`22L#@``)3`! -XM```FMPX``,H$```GP@X```.1\'XGS0X```.1L'XFV`X``$P%````````&%T& -XM```!%0(!`5H0```996-P``$4`ID.```H]@(```$4`E\````H$`,```$4`EH0 -XM```IA```"1N$```);`$```F -XMDA```+,+```FGA```.D+```FJA```$4,```MMA```"W"$```+BJ`````X0&```"+[H````)5@8``!`"1E,!```*(@4```)'4P$` -XM``(C``K_!P```DA?`````B,(``<(-`````FC`@``F`)F?0(```M?<``"9U,! -XM```"(P`+7W(``FA?`````B,("U]W``)I7P````(C#`I]"@```FH[`````B,0 -XM"JX&```":SL````"(Q(+7V)F``)L*@$```(C&`I#!@```FU?`````B,H"DD" -XM```"<+@````"(S`*\P$```)QC0(```(C.`JR!````G*M`@```B-`"M($```" -XM<\T"```"(T@*20````)T[0(```(C4`M?=6(``G/D" -XM```"(V@+7W5R``)Y7P````(C<`I&!````GS_`@```B-T"IL````"?0\#```" -XM(W<+7VQB``*`*@$```(C>`HM`````H-?`````R.(`0IW"0```H0?`0```R.0 -XM`0`,`5\```"-`@``#;@`````!PA]`@``#`%?````K0(```VX````#0,!```- -XM7P`````'"),"```,`1\!``#-`@``#;@````-'P$```U?``````<(LP(```P! -XM7P```.T"```-N`````T)`0``#5\`````!PC3`@``#NT"```!!PCS`@``#S0` -XM```/`P``$+4````"``\T````'P,``!"U```````#I@(```*%60$```((!5@# -XM```#C0H```8F[0````,%"```!BG,`````Q$(```&*NT````/-````&(#```0 -XMM0````\`$0@&>H<#```*Q0D```9[,0,```(C``KV"```!GQ'`P```B,$``-& -XM"0``!GUB`P``$0P&@,4#```*Q0D```:!,0,```(C``KV"```!H)'`P```B,$ -XM"D,*```&@SP#```"(P@``V0*```&A)(#```#^P(```$T`,```(C``KV"``` -XM!X4'!````B,(``.L"0``!X:*!0``$1@'B>T%```*Q0D```>*T`,```(C``KV -XM"```!XL'!````B,("D,*```'C/$#```"(Q```^\)```'C;H%```216QF``@F -XM`P8```ZV`P```0,&`0``""<4!@``#@4!```!$P0(-K,&```4,04````4F@<` -XM``$4Y@4```(4L04```,4S`,```04OP8```44C@<```843`0```<4D`4```@4 -XM4`````D4?`(```H4^@````L49P<```P4?@4```T4EP0```X4G`8```\4(0(` -XM`!`4(@$``!$4(@8``!(4Z@```!,4X0(``!04?`,``!44#@$``!84_@0``!<` -XM`^((```(3QH&```1"`AXU08```I6!0``"'A@!P```B,```G5"0``0`AH8`<` -XM``HT"@``"&SX`````B,`"E@)```(;;@````"(P@*$@H```AN^`````(C$`K^ -XM!P``"&_X`````B,8"ML(```(<+,&```"(R`*J@H```AQ<0````(C)`HY"``` -XM"'9F!P```B,H"GP*```(=W$````"(S`*(PD```AXO@8```(C.``'"-4&```' -XM"`D&```#U@D```AYU08```.,'```*MPH```HB"0$```(C``I>!```"B2C!P```B,(``<(N@<``!$("C8` -XM"```"E8%```*-K4(```"(P``"68#``!("BBU"```"K<*```**0D!```"(P`* -XMH@$```HJ"0$```(C"`I!`@``"BL)`0```B,0"H4-```*+`D!```"(Q@+861D -XM``HN7P````(C(`I;`0``"B]?`````B,D"LD'```*,%\````"(R@*404```HQ -XM7P````(C+`K9`0``"C)?`````B,P"F\````*,U\````"(S0*5P0```HT7P`` -XM``(C.`JB!```"C;I!P```B-```<(``@``!$("C_2"```"E8%```*/Q<)```" -XM(P``"0<&```@"CH7"0``"K<*```*.P,!```"(P`*=`H```H\`P$```(C"`H` -XM"```"CT4`0```B,0"J<````*/[L(```"(Q@`!PC2"```$1`*44()```*5P4` -XM``I1$`H```(C``HX`@``"E$6"@```B,(``FD"0``>`I#$`H```JW"@``"D0) -XM`0```B,`"VES``I%9@<```(C"`MO:@H```K7`@``"EX0"@```B,`"@0'```*7A8* -XM```"(P@`$0@*7X$*```*5@4```I?\`H```(C```)NP(``$`*5O`*```+;V9F -XM``I7^`````(C``MF@`*6?@````"(Q`*W0@```I: -XM^`````(C&`IO````"EQ?`````B,@"H@'```*7D$*```"(R@*3@L```I?:@H` -XM``(C.``'"($*```3!`J-'0L``!1B`0```!00!0```10W!@```A3X!0```Q03 -XM!@``!``1$`JI0@L```K6`@``"JGP"@```B,`"@,'```*J4(+```"(P@`!PCP -XM"@``$1`*JFT+```*U@(```JJM0@```(C``H#!P``"JIM"P```B,(``<(M0@` -XM`!$0"JN8"P``"M8"```*JQ<)```"(P`*`P<```JKF`L```(C"``'"!<)```1 -XM$`JMPPL```K6`@``"JWC!P```B,`"@,'```*K<,+```"(P@`!PCC!P``$1`* -XMK^X+```*U@(```JOXP<```(C``H#!P``"J_#"P```B,(`!$0"K$3#```"M<" -XM```*L1`*```"(P`*!`<```JQ%@H```(C"``)(P```/`*;MH-```*E0,```IO -XM"0$```(C``JA````"G)?`````B,("K8'```*U\````"(RP+;F]S``I]7P````(C,`HQ -XM!```"H)?`````B,T"D\!```*@U\````"(S@*O0<```J$7P````(C/`K-`0`` -XM"H5?`````B-`"F,````*AE\````"(T0*104```J'7P````(C2`K@#```"HD0 -XM"@```B-0"FH-```*BA`*```"(U@*Y@D```J+$`H```(C8`I^!@``"I/V"@`` -XM`B-H"GX*```*FU\````"(VP*KP<```J>X`T```(C<`KS!@``"J'@#0```B-X -XM"NT&```*I%,!```#(X`!"E0'```*IU,!```#(X@!"C`!```*J1T+```#(Y`! -XM"@<````*JD@+```#(Z`!"C8!```*JW,+```#([`!"G@&```*K9X+```#(\`! -XM"HP$```*K\D+```#(]`!"H@'```*L>X+```#(^`!``<(^`4```<(^````!73 -XM"@```>(!\"M```````!M+$````````)W"#H.```696-P``'A.@X```%5%G-E -XM8P`!X1`*```!5!=S``'C$`H```%1&/,*```![D,L0`````````<($PP``!D! -XMC`D```&C`P%P+$```````"8N0```````OA```*`.```:96-P``&B`SH.``#W -XM$```&W,``:0#$`H``$`1```<`0L```&E`Z`.``!V$0``'7-H``&F`X('```# -XMD9!_``<(;`<``!D!\@<```%[`P$P+D```````#WPD```%L`P%`+T```````*LO0```````_!(` -XM`%`S0```````&C5```````#4&```(A$``!IE -XM8W```4@".@X``%T9```; -XM$@``$+4````$``<("0$``"(!F`H```$W`5\```!`-T```````(DX0``````` -XMY!X``'X3```C96-P``$V.@X``!T?```DMPH```$V"0$``&8?```KD`4``$`3 -XM```ET```#O(```,;<*```!7PD!```X(0``%VES:``!8(('```#D9!_)6ES -XM``%A9@<``&XA```Q!0D```%B%`$``*0A```Q$0D```%C7P```-PA````,@&( -XM"````?D!L#E```````#%/$```````!(B``"S%```(V5C<``!^#H.``##(@`` -XM)7,``?H0"@``#",``#&W"@```?L)`0``52,``"5IL'```!__@```"3)```,3P* -XM```!__@```#<)```'!$)```!``%?````."4````SDP@```*'`0%?`````]P4 -XM```T7V,``H`(#`0``('-R8P`!>`(#`0``(&5N9``!>`(#`0``.3\( -XM```!>0)?`````#.?"0```=X"`;@````!:Q<``#1S``'=`A`*```[``@```'= -XM`FL7```@:60``=\"H`X``"!B``'@`@,!```@$"%`$``#D1"0```>(" -XM7P`````'"!0!```X7@D```$@`@$!V1<``#1E8W```1\".@X``#1S``$?`A`* -XM```@;W-H``$A`H('```@;"````;4!7P````$,&```.F5C -XM<``!M#H.```HMPH```&T"0$``"IS86,``;:U"````#B>"````X8```V:18```8J```M7A8````U=18``"`(```!E0&7 -XM&0``+8\6```M@Q8``#R`"```/9D6```\*@``/:46``!R*@``,+$6```PO18` -XM`#W'%@``#RL``##3%@``/=T6``#=*P``/><6``#1+```,/$6```O_18```.1 -XML'XP"1<``#<6%P``H`D```%[`BTR%P``+2@7```\X`D``#T^%P``Q2T``#!) -XM%P``,%,7```]7A<``),N````````-6T5``!`"@```9`!,AH``"V'%0``+7L5 -XM```\H`H``#V1%0``W"X``"^=%0```Y'0?B^I%0```Y&P?R^U%0```Y&0?SW! -XM%0``)2\``"_-%0```Y&H?B_9%0```Y&@?B_E%0```Y&8?B_Q%0```Y&0?CW\ -XM%0``NB\``#`(%@``/1(6```\,```/1X6``#1,```/2H6```M,0`````^V1<` -XM`+Y`0```````X4!````````!H@%T&@``+?47```MZA<``"[-0$```````.%` -XM0```````/0`8``!C,0`````W#!@``)`,```!HP$M&A@``#SP#```/208``"L -XM,0``/2\8```N,@``-[,4``!P#0```=D"-M`4``!W,@``+<44````````/SP) -XM```"BMP4```!`4#%!````J`!7P````$!`-@)```"`-X%```(`0T'```!)@L` -XM`.$#``"024```````(5-0```````$`@```(!!JL!```"`0BI`0```@(%NP4` -XM``("!]$&```#!`5I;G0`!$T#```".%L````"!`>6`@```@@%70,```2&`@`` -XM`CIT`````@@'D0(```((!(<#```"!`2I`P``!/4$```"4FD````%"`<&"`(! -XM!K(!```$3P,```->4`````2(`@```V-I````!PB9````!PC"````")D````$ -XM]P0```/HB0````3[`@``!":K````!-<#```$**L````$I@4```0KH`````0P -XM"0``!"VK````"3@$9W`L```1KT@````(C$`J("P``!&S2`````B,8"CP+ -XM```$;?,````"(R`*@`L```1N\P````(C*`I7"P``!&_S`````B,P``0Q"P`` -XM!'#^````"T5L9@`%)HT!```,M@,```$$!@$```4GG@$```P%`0```0T$!57C -XM`0``#A\$````#L\%```!#G8$```"#M\!```##IX#```$#@T````%#L4%```& -XM#LH"```'#BX"```(``<(DP$```1?"P``!B]W`0``!P@T`````@@%6`,```D( -XM!R08`@``"E8%```')$$"```"(P``#T,-```0!R%!`@``"K<*```'(KP````" -XM(P`*7@0```,!```" -XM(P@0;W,`!T;C`0```B,0$&)U9@`'1Y<````"(Q@0;V9F``=(JP````(C(!!S -XM>@`'2:L````"(R@08V%P``=*JP````(C,`HV"@``!TNK`````B,X"MT(```' -XM3*L````"(T`*WP0```=-20````(C2`JQ````!TY)`````B-,"JL$```'3TD` -XM```"(U`*W0H```=1>P,```(C6`HM`P``!U)Z!````B-H``<(H`,```<(;@0` -XM``D0!U*?!```"E<%```'4FX$```"(P`*.`(```=2=`0```(C"``/*`4``!`' -XM7L@$```*UP(```=>;@0```(C``H$!P``!UYT!````B,(``D(!U_?!```"E8% -XM```'7TX%```"(P``#[L"``!`!U9.!0``$&]F9@`'5ZL````"(P`09G-Z``=8 -XMJP````(C"!!MI3@4```(C``H#!P``!ZF@!0```B,(``<(3@4```D0!ZK+!0``"M8"```' -XMJA,#```"(P`*`P<```>JRP4```(C"``'"!,#```)$`>K]@4```K6`@``!ZMU -XM`P```B,`"@,'```'J_8%```"(P@`!PAU`P``"1`'K2$&```*U@(```>M00(` -XM``(C``H#!P``!ZTA!@```B,(``<(00(```D0!Z],!@``"M8"```'KT$"```" -XM(P`*`P<```>O(08```(C"``)$`>Q<08```K7`@``![%N!````B,`"@0'```' -XML70$```"(P@`#R,```#P!VXX"```"I4#```';[P````"(P`*H0````=R20`` -XM``(C"`JV!P``!W-)`````B,,$&EE8P`'=4D````"(Q`0;V5C``=V20````(C -XM%!!E:6X`!W#@(```"(R`*Q@$```=Z20````(C*`HJ -XM!```!WM)`````B,L$&YO"20````(C-`I/`0`` -XM!X-)`````B,X"KT'```'A$D````"(SP*S0$```>%20````(C0`IC````!X9) -XM`````B-$"D4%```'ATD````"(T@*X`P```>);@0```(C4`IJ#0``!XIN!``` -XM`B-8"N8)```'BVX$```"(V`*?@8```>35`4```(C:`I^"@``!YM)`````B-L -XM"J\'```'GCX(```"(W`*\P8```>A/@@```(C>`KM!@``!Z3T`0```R.``0I4 -XM!P``!Z?T`0```R.(`0HP`0``!ZE[!0```R.0`0H'````!ZJF!0```R.@`0HV -XM`0``!ZO1!0```R.P`0IX!@``!ZW\!0```R/``0J,!```!Z\G!@```R/0`0J( -XM!P``![%,!@```R/@`0`'"((!```'"*L````1$0L```%5`0%Q"```$G-E9P`! -XM5$X%```2=``! -XMA\<```#M-```'FD``8A)````$#4````@`08+```!9`%@3$```````(5-0``` -XM````634``!5E8W```6/Q"```SC4``!-S96<``65.!0``'Z`+```!9ND!```# -XMD:!_&,8!```!9\<````7-@``$VD``6A)```````!$P```@")!P``"`$-!P`` -XM`9L,``#A`P``D$U```````#:9D```````&4)```"`0:K`0```@$(J0$```(" -XM!;L%```#^@$```(V30````("!]$&```$!`5I;G0``TT#```".&8````"!`>6 -XM`@```TP&```".7@````""`5=`P```X8"```".HH````""`>1`@```@@$AP,` -XM``($!*D#```#]00```)2?P````4(!P8(`@$&L@$```-.!@```T]M`````_P! -XM```#64(````#3P,```->6P````.(`@```V-_````!PBO````!PCN````"*\` -XM```#]P0```/HGP````((!5@#```#C0H```0FS`````.\#```!"?!`````Q$( -XM```$*LP````)$`2W@P$```I+#0``!+@;`0```B,`"A4-```$N04!```"(P0* -XMJP(```2Z&P$```(C"`H-#0``!+LT`````B,,"O,,```$O#0````"(PT*_`P` -XM``2]$`$```(C#@`##@P```2^)@$```/[`@``!2;7`````YN@$```(C+`KF"@``!5_%`0```B,P"NL( -XM```%8,4!```"(S@``[P(```%8=`!```)$`6#E0(```K%"0``!82.`0```B,` -XM"O8(```%A<4!```"(P@``ZP)```%AG`"```)&`6)TP(```K%"0``!8J.`0`` -XM`B,`"O8(```%B\4!```"(P@*0PH```6,KP$```(C$``#[PD```6-H`(```D8 -XM!;X[`P``"DL-```%O[H!```"(P`*#0T```7`-`````(C!`KS#```!<$T```` -XM`B,%"OP,```%PID!```"(P8*%0T```7#C@$```(C"`JK`@``!<3%`0```B,0 -XM``,U#```!<7>`@``"T5L9@`&)E$#```,M@,```$#!@$```8G8@,```P%`0`` -XM`0T$!C8!!```#C$%````#IH'```!#N8%```"#K$%```##LP#```$#K\&```% -XM#HX'```&#DP$```'#I`%```(#E`````)#GP"```*#OH````+#F<'```,#GX% -XM```-#I<$```.#IP&```/#B$"```0#B(!```1#B(&```2#NH````3#N$"```4 -XM#GP#```5#@X!```6#OX$```7``/B"```!D]H`P``"0@&>",$```*5@4```9X -XMK@0```(C```/U0D``$`&:*X$```*-`H```9LUP````(C``I8"0``!FVM```` -XM`B,("A(*```&;M<````"(Q`*_@<```9OUP````(C&`K;"```!G`!!````B,@ -XM"JH*```&<68````"(R0*.0@```9VM`0```(C*`I\"@``!G=F`````B,P"B,) -XM```&>`P$```"(S@`!P@C!```!PA7`P```]8)```&>2,$```#6P@```@`(2=<````" -XM(R@08V%P``A*UP````(C,`HV"@``"$O7`````B,X"MT(```(3-<````"(T`* -XMWP0```A-5`````(C2`JQ````"$Y4`````B-,"JL$```(3U0````"(U`*W0H` -XM``A1:P8```(C6`HM`P``"%)J!P```B-H``<(D`8```<(7@<```D0"%*/!P`` -XM"E<%```(4EX'```"(P`*.`(```A29`<```(C"``/*`4``!`(7K@'```*UP(` -XM``A>7@<```(C``H$!P``"%YD!P```B,(``D("%_/!P``"E8%```(7SX(```" -XM(P``#[L"``!`"%8^"```$&]F9@`(5]<````"(P`09G-Z``A8UP````(C"!!M -XME0````"(R@**@0```A[5`````(C+!!N;W,`"'U4`````B,P"C$$```(@E0` -XM```"(S0*3P$```B#5`````(C.`J]!P``"(14`````B,\"LT!```(A50````" -XM(T`*8P````B&5`````(C1`I%!0``"(=4`````B-("N`,```(B5X'```"(U`* -XM:@T```B*7@<```(C6`KF"0``"(M>!P```B-@"GX&```(D[$(```"(V@*?@H` -XM``B;5`````(C;`JO!P``")Z;"P```B-P"O,&```(H9L+```"(W@*[08```BD -XMH0L```,C@`$*5`<```BGH0L```,CB`$*,`$```BIV`@```,CD`$*!P````BJ -XM`PD```,CH`$*-@$```BK+@D```,CL`$*>`8```BM60D```,CP`$*C`0```BO -XMA`D```,CT`$*B`<```BQJ0D```,CX`$`!PA&`P``!PC7````!P@T````$:\+ -XM```!00%4````D$U```````"@34````````)W"-8+```2E@#```&W,``>M>!P``'(,,```![``.```<[@P```'MH0L``!MI[% -XM!```&W-Y;0`![]`$```;:60``?`&#@``&VES``'QM`0``!SG"P```?+S```` -XM&VYD>``!\O,````<"`P```'R\P```!MS8P`!\O,````<\P8```'R\P```!P? -XM#````?/S````'`4-```!\_,````(````<9PP```'UX@```!ME8P`!]E0````<$0D```'V5````!MI``'V -XM5````!T_#````9L!``<(1`@```<(N@0``!X>#0```58!5`````%0#@``&F5C -XM<``!5&`,```:@` -XM````(&X,```!@`(!5`````&%#@``(65C<``!?P)@#```(K<*```!?P+H```` -XM&',``8$",04````94PT```%Z`0$5#P``&F5C<``!>6`,```:^@````;9``!?`8.```;B@P```',`50````!1`\``!IE8W````!5`````%?#P``&G,``=_6 -XM"P```![1"P```38!5`````%Z#P``&G,``376"P```"`G#````3H"`!])P`- -XM```@#@```>,!M!(``"@-#0``*<`.```J&`T``-0[```K(0T``"HL#0``R#P` -XM`"PW#0```Y&@?2Q"#0```Y&`?RI-#0``@#T``"I7#0``.#X``"IA#0``S3X` -XM`"IL#0``,3\``"MW#0``*X(-```JC`T``%0_```KEPT``"JB#0``S3\``"JM -XM#0``%$(``"JX#0``7T,``"K##0``GT0``"K.#0``-$4``"K9#0``F$4``"KC -XM#0``YT4``"KN#0``[D8``"WW#0``:%%````````N#`X``"`4```!<@$H1`X` -XM`"@[#@``*#(.```H*`X``"@=#@``+U`.```W6$```````%U80````````5O1 -XM$0``,&X.```11P``*&(.```Q-UA```````!.6$```````"IZ#@``1T<````` -XM,H4.``#P%````6=4$@``,)T.``#O1P``*)(.```ID!4``"JG#@``$D@``"JR -XM#@``6T@``"J[#@``*$D``"S$#@```Y&@?RS-#@```Y'@?BS7#@```Y'@?"KA -XM#@``T$D``"KJ#@``G4H``"KU#@``:DL``"H`#P``O4P``"L)#P`````R%0\` -XM`#`7```!:902```H.@\``#`Q#P``BDT``"@F#P``,T0/```56T```````"A; -XM0````````=@\``&`7```!)0(HC`\``"GP%P``+)8/```#D>!\+*(/```#D>!^*JX/ -XM``!_3@``*KD/```!3P``*\4/```JT`\``(-/```KW`\````````(`P```@`S -XM"@``"`$-!P```78-``#A`P``X&9````````/:4```````!(-```"`0:K`0`` -XM`@$(J0$```("!;L%```"`@?1!@```P0%:6YT``($!Y8"```""`5=`P``!(8" -XM```".FD````""`>1`@```@@$AP,```($!*D#```$]00```)27@````4(!P8( -XM`@$&L@$```3W!````S)^````!PB.````!PBL````"(X````""`58`P``!(@" -XM```$8UX````$!@$```4GS@````D%`0```0<(PP````H0!E'_````"U<%```& -XM4@`&2;@````"(R@-8V%P``9*N`````(C,`LV"@`` -XM!DNX`````B,X"]T(```&3+@````"(T`+WP0```9-20````(C2`NQ````!DY) -XM`````B-,"ZL$```&3TD````"(U`+W0H```91V@````(C6`LM`P``!E+9`0`` -XM`B-H``<(_P````<(S0$```H0!E+^`0``"U<%```&4LT!```"(P`+.`(```92 -XMTP$```(C"``.`7X-```!5P%)````X&9```````!O9T```````,Q/``"#`@`` -XM#W0``5;-`0``?5````]S``%6I@```-E0```08@`!6*8````040``$&,``5BF -XM````1E$``!!R``%8I@```'Q1```0;&5N``%9E0```+)1```1<0T```%9E0`` -XM`.A1````$@%@#0```2D!<&=````````/:4```````!Y2```/=``!*,T!``#/ -XM4@``#W,``2BF````*U,``!-R``$JI@```!!B``$KH````&-3```08P`!*Z`` -XM``"P4P``$&QE;@`!+)4```#Y4P``$7$-```!+)4````O5```$5L!```!+4D` -XM``!X5``````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+ -XM.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8` -XM21,```D6``,..@L[!4D3```*$P$##@L+.@L["P$3```+#0`##CH+.PM)$S@* -XM```,#0`#"#H+.PM)$S@*```-%0$G#$D3`1,```X%`$D3```/$P`##CP,```0 -XM`0%)$P$3```1(0!)$R\+```2$P$+"SH+.PL!$P``$Q8``P@Z"SL+21,``!0$ -XM`0L+.@L["P$3```5*``##AP-```6!`$##@L+.@L["P$3```7+@`##CH+.P4G -XM#!$!$@%`!@``&"X!`PXZ"SL%)PP@"P$3```9!0`#"#H+.P5)$P``&BX!`PXZ -XM"SL+)PP@"P$3```;!0`#"#H+.PM)$P``'#0``PXZ"SL+21,``!TT``,(.@L[ -XM"TD3```>+@$##CH+.P4G#!$!$@%`!@$3```?!0`#"#H+.P5)$P(&```@-``# -XM#CH+.P5)$P(&```A-``#"#H+.P5)$P(&```B-``##CH+.P5)$P``(QT!,1-5 -XM!E@+604``"0%`#$3```E"P%5!@``)C0`,1,"!@``)S0`,1,""@``*`4``PXZ -XM"SL%21,``"DT``,(.@L[!4D3```J+@$_#`,..@L[!2<,21,1`1(!0`8!$P`` -XM*P4``PXZ"SL%21,"!@``+!T!,1-5!E@+604!$P``+30`,1,``"XT``,..@L[ -XM"TD3`@H``"\T``,..@L["TD3/PP\#```,#0``PXZ"SL%21,_##P,`````1$! -XM)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+ -XM/@L#"```!20`"PL^"P``!@\`"PL```+@$##CH+.P4G#!$!$@%`!@$3```?!0`##CH+.P5)$P(&```@ -XM-``#"#H+.P5)$P``(2X!/PP##CH+.P4G#$D3$0$2`4`&`1,``"(N`3\,`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```C!0`#"#H+.PM)$P(&```D!0`##CH+.PM)$P(& -XM```E-``#"#H+.PM)$P(&```F+@$##CH+.PLG#$D3$0$2`4`&`1,``"+@$# -XM#CH+.PLG#$D3(`L!$P``'P4``PXZ"SL+21,``"`N`0,..@L[!2<,21,@"P$3 -XM```A!0`#"#H+.P5)$P``(@4``PXZ"SL%21,``",T``,..@L[!4D3```D+@$_ -XM#`,..@L[!2<,$0$2`4`&```E-``#"#H+.P5)$P(*```F-``##CH+.P5)$P(& -XM```G'0$Q$U4&6`M9!0$3```H!0`Q$P``*0L!508``"HT`#$3`@8``"LT`#$3 -XM```L-``Q$P(*```M"@`Q$Q$!```N'0$Q$U4&6`M9!0``+QT!,1,1`1(!6`M9 -XM"P$3```P!0`Q$P(&```Q"P$1`1(!```R'0$Q$U4&6`M9"P$3```S'0$Q$Q$! -XM$@%8"UD+`````1$!)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```R0`"PL^ -XM"P,(```$%@`##CH+.PM)$P``!20`"PL^"P``!@\`"PL```7!E2YH````````"0)@'$````````/9 -XM!`%(")P#=_U(")P#=_U(")P#X7W]`BL5`WHY6V4(D0,9C>(X`[E__0BO`Q(( -XMJ0-P_0@2"*T#\GX('4D(9@A`13OR"&=84J)#4E:JG9R!99V<2PB"`B03@8(( -XMGTFLGH4(6H*""&>"-CQ7`P^-<@AR.%8#"6,(67*!`QH(8P,*C0-Z_0,W")N4 -XM@(`#QWX".`$#E`&-G#@Z`PVIG#@Z9@@["$@(0(X(6`/J?L7"`_L`Q8%%.U8X -XM.F(\U%:.@/Y&`^-^?P,2C0/Y``@K_P-6"%4#QP`(Q0.&?P@Y`R,(Q0/=``C% -XM`[Y_"'\#F7\(Q0-B",4(S`/J``C%`\L`",4#I7\(.0/8``C%`^E^_0-YX0.4 -XM`?T#G@+OGE+(R9PX.F7F?8^XN+6`@;BXLX"%`WH('8#P\/16CU-)BTD(5P/O -XM?0A_"/$#P@`",0$#OG^W`P\(X0-Q""L#"M,#=@@=QP@ZR'(#%M,#=0AQ"#K( -XM7,``'-E8W1I;VYS+F,````` -XM7!E2YH````````"0+P*T````````/D`0&X"%24`B@2<@-W8P.\!0CA -XM"*!)"$J.CDB`CHZ`>EP(3[U(.%8($W*`2(!R;DP(R`-L",5(1DA&2`-KFP,, -XM",4##PC%`PL(Q0.J?P(H`:X#$PA'9P-I"&.."!3G@-D('_562@-CC0,6",4( -XMR@-/`B0!UD0]=V324,;&Q@-#"#GI"+@($P@L"$H(G4$#>#DZ@$AR@$A#2PAE -XM"!)RA31,-$A(Q0C(`PK]`PH(Q0C-`ZU_`BP!D0,7 -XMTP-NC0A+`PEQ9("`9(`#;6,#%0@Y5DH#;7$Z?CN`9(`##F,#:7$#%0C%`TT" -XM)P$(Q692/-8(/59B`DH05^0#=`(H`0C(",P#O7X")0&A"'?&E0C6"%:%"!)) -XM-U:.`V+%N`,2C0-M?P,BC0-J"!W&`PW]",H#Z7T")`$#"HT(2@B>6%)*U45) -XM-ZX(+#A(,&"`4@@24CP#%D)L(/<:0`B,,`Q$(1P,58P-K*P,-.0-S*TX(6@A( -XMQ@@\"&<##0@K`WF-20-6 -XM[PCU"*LZ2%E?2(Z.@`,3X0,+"'%6D`-KX0-6",4(R`,B",4#<0C%`V3A`\,` -XM",4#[`(")@$@1%B=!`(#QGW]_@0!`[<"Q8YT!`(#Q'T(.<8$`0.W`CD$`@/) -XM?4<$`0.W`G$$`@/)?3D$`0.W`CDQ;0@M!`(#Q'W]R`0!`W$(Q?U8`\0![WV! -XM10.^?G''@P,)`C5HPZ.%:/"!Y^5E0ML)=9ROB.`POA -XM`VF;JP-L?P.9?@A'A0.6`0CA`X5]J>(#E00(.0A:_`@[5H,$`@.O?0A'_@0! -XM`YH""!W4""P#<=,(2`,850@75GX#C'R-`XP$"-,#89OBN.XZ5M0#=M,#6PAC -XMX@/G``AQ`VS]`]Q^"%4(9PC_"&8('C@ZGP)B"XYR`E\1`X)_"/V`R@,="/T( -XM@@@>.%8"-!4(UP(M$3<[9M3GK`-G`DP!JJH(Y@,*",6L!`(#BW\"3P$$`0/X -XM`.$"91$"1@T#A@$"1@$#S0#A`Z]^")OX`D@-`E`*`W`(Q0/-`)L##0C%`WD( -XMQ0-)",4#9PC]`QT([U8J+&?H"#T"*Q$#8\4#$@)"`0(4``$!40$```(`E@`` -XM``$!^PX*``$!`0$````!+W5S7!EG$Q`VL('=,\ -XM4CS(.@BXW0-P")O3/%(\R#H(N-T#ZWX(FP,)*P-W50@CCH_&"(\(U@C7`YM^ -XMJ0B""$L(H`AS.PC4.')JA@-XFPAR"#P")!(('LE6@[QZ+P@Z"#P")!,(6%:" -XM`R.-"!XX5@/*``(D`0(E$`(U$PAGC@C&JKBX@8Y4@&8#;`+5`0$#&<6`"!YP -XM+`@>"&%TG@(F$8#&`R#%C@,4J0,5J0B0<@,+?P-V50,*50-V58`#+4<#5']R -XM;TNXP.5?W&<`]<`FP,; -XM"!U6`U=_40,+?P-W?[B_`WE52*JXN*JDAL@(Q@-'",4(D+%R\(!(G\#M`%_`[!^`D$! -XM`R)5`WI'`[.%Y\@/L?0CO`ZL$""L(9`.4?N$#4(T#>0@K`_Y]"$<( -XMUW0#Z0#O`B86`Y9_J<@#254#O@((8P(N$`@>"#RO"$@#"0+4`0$(/+M4.H", -XM4PBO"'*`.$@#OWX(?P,+"$<#F`$(*P@ZJ@A(`LH!%@+1`18(.@-X`B\!"#<( -XM.PCM".P#D'\"S0$!`_4`TP,Q`B@!`TW]`YA^`BT!`ZD#",4#O'X(Q0CM`S@( -XMX0-*`C0!"#<#@@$(.7*X@$AR;P.Q?\4#2@+,`0$"+A$#-`(N`0-/"#D#,P(E -XM`0,V`D.')F"*X( -XM<@B?"!8")!("(Q0(9`AP:`(W$`A6*CK&V@(F$^,(\4@#;[<#U0$(C0(I$0,T -XM`B,!`ZQ_`BX!5BHL`_,!")L#XGX(?P/_?@(J`0.-?_U6*BP#[P#3`Y)_*P-# -XM"'\#]@#A",D(%`.$?^$#AP,(Q0.G?0C%`BL45BHL`_8!Q0.@`0(K`0/7?'$" -XM(Q,(/`-Z",4"'@`!`0(!```"`(D````!`?L."@`!`0$!`````2]U7!EG\_`W5Q`PM5`T&W_4VX@`C)CT4[Z`,) -XM50-Q?P@>JL<#%PA5`VOA5PA6.GY(.$@#"0(D`4A&2`@;RDBX.%:`N`-ZX0-E -XM_0@``0$`%````/____\!``%X$`P'")`!````````'`````````!@'$`````` -XM`"D`````````1`X0```````<`````````)`<0```````*0````````!$#A`` -XM`````!P`````````P!Q````````I`````````$0.$```````+`````````#P -XM'$```````(\&````````2H\"A@9A#N`!C@.-!(P%@P<`````````/``````` -XM``"`(T```````'`(````````0@X0CP)%#AB.`TH.($(.*$$.,$$..$<.T`&# -XM!X8&C`6-!````````!0```#_____`0`!>!`,!PB0`0```````!0```#H```` -XM\"M```````!]`````````"0```#H````<"Q```````"V`0```````$J#!8P# -XM40YPC0*&!``````L````Z````#`N0```````!P$```````!"#A!!#AB&`XP" -XM1`X@1`Y@@P0````````<````Z````$`O0```````:P````````!.#B"#`X8" -XM`#0```#H````L"]```````#B`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$ -XM#G"#!H8%C`0`````)````.@```"@,4```````/0`````````00X0A@)$#AA$ -XM#B"#`P```"0```#H````H#)````````Y`0```````$J&!(,%5`ZP`8T"C`,` -XM```L````Z````.`S0```````.@$```````!"#A!"#AA!#B!!#BA$#G"#!88$ -XMC`.-`@`D````Z````"`U0```````_P````````!!#A"&`D0.&$0.8(,#```` -XM+````.@````@-D```````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP -XM@P4`'````.@```#0-D```````"(`````````1@X0```````<````Z``````W -XM0```````-P````````!$#A```````"0```#H````0#=```````!)`0`````` -XM`%J,`X,%C0*&!$<.8``````L````Z````)`X0```````%0$```````!"#A", -XM`D0.&(8#0PX@@P1(#G`````````\````Z````+`Y0```````%0,```````!" -XM#A!'#AA"#B!"#BA!#C"&!HP%C02.`X\"20XX1`Z0`8,'````````)````.@` -XM``#0/$```````-L`````````00X0A@)%#AA$#B"#`P```#P```#H````L#U` -XM``````#3"P```````$(.$$(.&$(.($(.*$$.,$$..$<.D`*#!X8&C`6-!(X# -XMCP(````````4````_____P$``7@0#`<(D`$````````4````X`,``)!)0``` -XM````V0`````````T````X`,``'!*0```````[@$```````!"#A!"#AA"#B!! -XM#BB&!8P$C0..`D0.,$0.L`&#!@```"P```#@`P``8$Q````````E`0`````` -XM`$(.$$$.&$$.((,$A@.,`D<.8````````!0```#_____`0`!>!`,!PB0`0`` -XM`````!0```!X!```D$U````````0`````````!0```!X!```H$U````````0 -XM`````````"0```!X!```L$U```````!!`````````$$.$(8"1`X81`X@@P,` -XM```<````>`0```!.0```````9@````````!.#B"&`H,#`!P```!X!```<$Y` -XM``````!F`````````$X.((8"@P,`/````'@$``#@3D```````/H7```````` -XM0@X01PX80@X@C02.`X\"10XH00XP00XX1P[@!(,'A@:,!0```````!0```#_ -XM____`0`!>!`,!PB0`0```````#P```!H!0``X&9```````"/`````````$(. -XM$$(.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`DH.0``````````\````:`4` -XM`'!G0```````GP$```````!"#A!"#AA"#B"-!(X#CP)%#BA!#C!!#CA$#E"# -XM!X8&C`4`````````7V5X=')A`'9?F4`5]L;VYG;W!T -XM`!%3$9?0U].54Q,`&]P -XM:&YU;0!S96-T:6]N6U?;&ES=`!S=')I<%]L;VYG;W!T6U?:V5E<`!%3$9?5%]32$12`'-A8U]L:7-T`&YO8V]P>0!? -XM6U?F4`14Q&7U1? -XM4U=/4D0`8W)E871E7V9I;&4`7U]F9FQA9W-?=`!%3$9?5%](04Q&`&]P=&%R -XM9P!S:&]R="!U;G-I9VYE9"!I;G0`14Q&7TM?05(`=E]R96P`6YC7W-E8W1I;VYS`$5L -XM9C8T7U-H9'(`:7-?'0`;G-E8W,`16QF-C1?6'=O`!R7V%D9&5N9`!R96PV-`!I -XM@!A9&1?=&]?:6YS96=?;&ES=`!P7V%L:6=N`$=% -XM;&9?4&AD<@!P7V9L86=S`'!?='EP90!P7W9A9&1R`'!?;65M6UB;VQS`&ES7V1E8G5G7W-Y;6)O;`!S=%]S>@!I -XM6T`5]C87``8V%L8U]N;VYL;V-A;`!%;&8V-%]3>6T`8W)E -XM871E7W-E8W-Y;0!'16QF7U-Y;0!A9&1?=&]?:V5E<%]L:7-T`'-T7V)U9@!L -XM;V]K=7!?5]B=68`:7-?;F5E9&5D7W-Y;6)O;`!S -XM>6UB;VQS+F,`:7-?;&]C86Q?6UB;VP`;'-Y9&%T80!L;V]K=7!?:V5E<%]S>6UL:7-T`'-T7VYA -XM;64`;6%R:U]S>6UB;VQS`&EN>@4````````?!P````````$`7@`````````````````````&`0`````` -XM``D!`````````0!0"0$````````,!`````````$`7"P$````````-00````` -XM```!`%QQ!````````'0$`````````0!0=`0```````#I!`````````$`7$T% -XM````````:04````````!`%R0!0```````-\&`````````0!<\`8````````0 -XM!P````````$`7``````````````````````O`P```````+H#`````````0!3 -XMVP,```````#\`P````````$`4Z,$````````SP0````````!`%/@!0`````` -XM`!<&`````````0!3CP8```````"M!@````````$`4\$&````````WP8````` -XM```!`%,`````````````````````?`(```````"Z`P````````,`D;A_VP,` -XM```````L!`````````,`D;A_HP0```````#I!`````````,`D;A_5@4````` -XM``!I!0````````,`D;A_P@4````````7!@````````,`D;A_CP8```````"M -XM!@````````,`D;A_P08```````#?!@````````,`D;A_\`8```````#_!@`` -XM``````,`D;A_`````````````````````"`'````````(@<````````"`'<( -XM(@<````````G!P````````(`=Q`G!P```````#$'`````````@!W&#$'```` -XM````,P<````````"`'<@,P<````````T!P````````(`=R@T!P```````#4' -XM`````````@!W,#4'````````/`<````````"`'`````````````````````"`'````````00<````` -XM```!`%1!!P```````(8-`````````0!?U0T```````"0#P````````$`7P`` -XM``````````````````!I!P```````&X'`````````0!540D```````!6"0`` -XM``````$`58()````````APD````````!`%6?"0```````*0)`````````0!5 -XMT`D```````#5"0````````$`58$+````````C`L````````!`%4U#``````` -XM`#H,`````````0!5/0P```````!"#`````````$`59T-````````H@T````` -XM```!`%7.#0```````-,-`````````0!5X@T```````#G#0````````$`5:4. -XM````````J@X````````!`%7)#@```````,X.`````````0!5W0X```````#B -XM#@````````$`55(/````````7@\````````!`%4````````````````````` -XMA`@```````"<"`````````$`4%H)````````>`D````````!`%"H"0`````` -XM`,8)`````````0!0]@T````````"#@````````$`4``````````````````` -XM```P#````````#H,`````````0!420P```````!0#`````````$`5``````` -XM```````````````I#````````#H,`````````0!120P```````!0#``````` -XM``$`40````````````````````#\"0```````/\)`````````0!0_PD````` -XM```>"@````````$`75`*````````4`H````````!`%T6#@```````"<.```` -XM`````0!=,0X```````!"#@````````$`70````````````````````"$"``` -XM`````/\)`````````0!=4`H````````4"P````````$`7=$+````````7`P` -XM```````!`%WV#0```````!8.`````````0!=0@X```````!G#@````````$` -XM70````````````````````"$"````````!X*`````````0!3G@H```````"A -XM"@````````$`4*$*````````%`L````````!`%/1"P```````%P,```````` -XM`0!3]@T````````'#@````````$`4Q8.````````)PX````````!`%,Q#@`` -XM`````$(.`````````0!34PX```````!G#@````````$`4P`````````````` -XM``````"$"````````)P(`````````0!0GP@```````#;"`````````$`4.(( -XM````````5@D````````!`%!X"0```````(<)`````````0!0C`D```````"D -XM"0````````$`4,8)````````U0D````````!`%#:"0```````/D)```````` -XM`0!0\@L````````)#`````````$`4`X,````````$PP````````!`%!0#``` -XM`````%4,`````````0!0`````````````````````!X*````````1@H````` -XM```!`%,'#@```````!8.`````````0!3`````````````````````#H,```` -XM````0@P````````!`%`[#0```````'H-`````````0!0```````````````` -XM`````!T+````````T0L````````!`%;2#````````&H-`````````0!6U0T` -XM``````#V#0````````$`5B<.````````,0X````````!`%8````````````` -XM````````&PL````````E"P````````,`D;!^)0L````````M"P````````,` -XMD;1^+0L````````P"P````````,`D;A^,`L````````R"P````````$`73(+ -XM````````,@L````````!`%,R"P```````$L+`````````P"1L'Y+"P`````` -XM`&P+`````````0!3;`L```````!R"P````````$`4W(+````````APL````` -XM```!`%.'"P```````(X+`````````0!=C@L```````"6"P````````$`4Y8+ -XM````````F`L````````#`)&T?I@+````````H`L````````!`%.@"P`````` -XM`*(+`````````P"1N'ZB"P```````+`+`````````0!3L`L```````"R"P`` -XM``````,`D;!^L@L```````#1"P````````$`4SH,````````20P````````# -XM`)&T?M(,````````^@P````````!`%/Z#`````````H-`````````P"1M'X* -XM#0````````P-`````````P"1L'X,#0```````!0-`````````0!3%`T````` -XM```S#0````````,`D;A^,PT```````"!#0````````$`4X$-````````E0T` -XM```````#`)&P?I4-````````U0T````````#`)&T?M4-````````]@T````` -XM```!`%,G#@```````#$.`````````0!3`````````````````````$4+```` -XM````3@L````````!`%#2#````````.(,`````````0!0)PX````````L#@`` -XM``````$`4``````````````````````Z#````````$D,`````````0!6:@T` -XM``````!Z#0````````$`5GH-````````E0T````````!`%"5#0```````-4- -XM`````````0!6`````````````````````(`,````````F`P````````!`%"Q -XM#@```````+\.`````````0!0`````````````````````&,(````````_PD` -XM```````!`%T4"P```````#`+`````````0!=\@L```````#2#`````````$` -XM7?8-````````!PX````````!`%UG#@```````&@/`````````0!=B0\````` -XM``"0#P````````$`70````````````````````!<#````````)@,```````` -XM`0!0FPP```````#+#`````````$`4&<.````````J@X````````!`%"_#@`` -XM`````,X.`````````0!0TPX```````#B#@````````$`4.<.````````"@\` -XM```````!`%``````````````````````.@P```````!)#`````````$`5CD/ -XM````````10\````````!`%9%#P```````%4/`````````0!050\```````!H -XM#P````````$`5@````````````````````"``````````)L``````````@!W -XM")L`````````-@(````````#`'?P``````````````````````"````````` -XM`*8``````````0!5I@````````"1`0````````$`7)L!````````-@(````` -XM```!`%P`````````````````````GP````````",`0````````$`5IL!```` -XM````-@(````````!`%8`````````````````````!0$````````(`0`````` -XM``$`4`@!````````AP$````````!`%.;`0```````+X!`````````0!3W`$` -XM```````V`@````````$`4P````````````````````!``@```````$("```` -XM`````@!W"$("````````0P(````````"`'<00P(```````!'`@````````(` -XM=QA'`@```````$L"`````````@!W($L"````````1P,````````#`'?@```` -XM``````````````````!``@```````%P"`````````0!57`(```````#M`@`` -XM``````$`5O`"````````1P,````````!`%8`````````````````````4@(` -XM``````#L`@````````$`4_`"````````1P,````````!`%,````````````` -XM````````Y0(```````#P`@````````$`4"P#````````,P,````````!`%`` -XM````````````````````4`,```````!>`P````````(`=PA>`P```````+L# -XM`````````@!W(`````````````````````!0`P```````'(#`````````0!5 -XMA0,```````"(`P````````$`50````````````````````!0`P```````&P# -XM`````````0!4;`,```````!W`P````````$`5G<#````````A0,````````! -XM`%2%`P```````+L#`````````0!6`````````````````````&(#```````` -XM?`,````````!`%-\`P```````(4#`````````0!5A0,```````"[`P`````` -XM``$`4P````````````````````#``P```````,(#`````````@!W",(#```` -XM````Q`,````````"`'<0Q`,```````#)`P````````(`=QC)`P```````,H# -XM`````````@!W(,H#````````RP,````````"`',#````````%@4````````!`%T6!0```````!D% -XM`````````0!5&04```````"B!0````````$`70`````````````````````$ -XM!````````!$%`````````0!3&04```````"B!0````````$`4P`````````` -XM``````````#6`P```````!(%`````````0!6&04```````"B!0````````$` -XM5@````````````````````"/!````````)($`````````0!0D@0```````#0 -XM!`````````$`44@%````````4@4````````!`%$````````````````````` -XM#00````````4!0````````$`7!D%````````H@4````````!`%P````````` -XM````````````L`4```````"Q!0````````(`=PBQ!0```````+4%```````` -XM`@!W$+4%````````N04````````"`'<8N04```````"D!@````````(`=R`` -XM````````````````````L`4```````#+!0````````$`5P`0````````````````````"P!@```````-0&`````````0!5U`8` -XM``````!_!P````````$`7(\'````````Z0<````````!`%P````````````` -XM````````L`8```````#9!@````````$`5-D&````````X08````````!`%4` -XM````````````````````L`8```````#A!@````````$`4>$&````````;P<` -XM```````!`%./!P```````.D'`````````0!3`````````````````````+`& -XM````````X08````````!`%+A!@```````'<'`````````0!6CP<```````#I -XM!P````````$`5@````````````````````#P!P```````/('`````````@!W -XM"/('````````]`<````````"`'<0]`<```````#U!P````````(`=QCU!P`` -XM`````/8'`````````@!W(/8'````````^@<````````"`'PL````````!`%1]"P```````(D+`````````0!6I0L```````"G -XM"P````````$`5L(+````````Q`L````````!`%;\"P```````),,```````` -XM`0!6`````````````````````'T+````````?PL````````!`%`T#``````` -XM`#D,`````````0!0:`P```````"##`````````$`4(X,````````F0P````` -XM```!`%``````````````````````H`P```````"B#`````````(`=PBB#``` -XM`````*8,`````````@!W$*8,````````J0P````````"`'<8J0P```````"Q -XM#`````````(`=R"Q#````````+4-`````````P!W\``````````````````` -XM````H`P```````"U#`````````$`5;4,````````+PT````````!`%PP#0`` -XM`````+4-`````````0!<`````````````````````*`,````````K0P````` -XM```!`%2M#````````"P-`````````0!3,`T```````"U#0````````$`4P`` -XM```````````````````2#0```````!\-`````````0!0>0T```````"##0`` -XM``````$`4`````````````````````"H#````````"T-`````````0!6,`T` -XM``````"U#0````````$`5@`````````````````````%#0```````#`-```` -XM`````@"16'D-````````EPT````````"`)%8`````````````````````"<- -XM````````,`T````````!`%$W#0```````$<-`````````0!1```````````` -XM`````````,`-````````P@T````````"`'<(P@T```````#)#0````````(` -XM=Q#)#0```````,L-`````````@!W&,L-````````S0T````````"`'<@S0T` -XM``````#.#0````````(`=RC.#0```````-<-`````````@!W,-<-```````` -XMVPT````````"`'NA````````#5$`````````$`7@`````````````` -XM```````T#@```````)P0`````````P"1N'^Z$````````-40`````````P"1 -XMN'\`````````````````````-`X````````0$`````````$`7140```````` -XMG!`````````!`%VZ$````````-40`````````0!=```````````````````` -XM`/\.`````````@\````````!`%`"#P```````%\/`````````0!1W@\````` -XM``#D#P````````$`4140````````'Q`````````!`%$````````````````` -XM````_P\````````5$`````````$`4+H0````````P1`````````!`%`````` -XM````````````````X!````````#A$`````````(`=PCA$````````.80```` -XM`````@!W$.80````````ZA`````````"`'<8ZA````````"[$0````````(` -XM=R``````````````````````X!````````!'$0````````$`56H1```````` -XM?1$````````!`%6$$0```````(X1`````````0!5K!$```````"Q$0`````` -XM``$`50````````````````````#@$`````````41`````````0!4+!$````` -XM``!$$0````````$`5&H1````````>!$````````!`%2$$0```````(L1```` -XM`````0!4`````````````````````/(0````````;Q$````````!`%-Q$0`` -XM`````+L1`````````0!3`````````````````````/00````````1!$````` -XM```!`%1J$0```````'@1`````````0!4A!$```````"+$0````````$`5*P1 -XM````````MA$````````!`%0`````````````````````]!`````````%$0`` -XM``````$`5"P1````````>!$````````!`%2$$0```````(L1`````````0!4 -XME1$```````"G$0````````$`5`````````````````````#T$````````'T1 -XM`````````0!5A!$```````".$0````````$`5941````````IQ$````````! -XM`%6L$0```````+$1`````````0!5`````````````````````,`1```````` -XMPA$````````"`'<(PA$```````#$$0````````(`=Q#$$0```````,81```` -XM`````@!W&,81````````R!$````````"`'<@R!$```````#)$0````````(` -XM=RC)$0```````,H1`````````@!W,,H1````````T1$````````"`'!8````````!`%5X%@```````)(6`````````P"1 -XMR'Z2%@```````)<6`````````0!5EQ8```````"3'0````````,`DP`0````````````````````#@ -XM`````````%P!`````````0!57`$```````!/`@````````$`5E8"```````` -XMS@(````````!`%8`````````````````````]@````````!A`0````````$` -XM4H4!````````3@(````````!`%-6`@```````)("`````````0!3```````` -XM`````````````/T`````````!`$````````!`%`+`0```````&$!```````` -XM`0!0`````````````````````/T`````````80$````````!`%$````````` -XM````````````H0$```````"J`0````````$`7*H!````````40(````````! -XM`%Q6`@```````)("`````````0!<`````````````````````-`"```````` -XMT@(````````"`'<(T@(```````#3`@````````(`=Q#3`@```````-0"```` -XM`````@!W&-0"````````VP(````````"`'<@VP(```````#U`P````````,` -XM=^```````````````````````-`"````````WP(````````!`%7?`@`````` -XM`*0#`````````0!3J`,```````#U`P````````$`4P`````````````````` -XM``#V`@````````4#`````````@"16`H#````````UP,````````"`)%8```` -XM`````````````````"``````````(0`````````"`'<((0`````````E```` -XM``````(`=Q`E`````````"D``````````@!W&"D`````````80`````````" -XM`'<@`````````````````````"``````````-P`````````!`%5````````` -XM`$8``````````0!56`````````!A``````````$`50`````````````````` -XM```@`````````#4``````````0!4-0````````!7``````````$`5E@````` -XM````8``````````!`%9@`````````&$``````````0!4```````````````` -XM`````#``````````5@`````````!`%-8`````````%\``````````0!3```` -XM`````````````````'``````````?@`````````"`'<(?@````````#6```` -XM``````(`=R``````````````````````<`````````"&``````````$`588` -XM````````P``````````!`%;%`````````-8``````````0!6```````````` -XM`````````'``````````C@`````````!`%2.`````````+L``````````0!3 -XMQ0````````#6``````````$`4P````````````````````#@`````````.X` -XM`````````@!W".X`````````1@$````````"`'<@```````````````````` -XM`.``````````]@`````````!`%7V`````````#`!`````````0!6-0$````` -XM``!&`0````````$`5@````````````````````#@`````````/X````````` -XM`0!4_@`````````K`0````````$`4S4!````````1@$````````!`%,````` -XM````````````````4`$```````!2`0````````(`=PA2`0```````%D!```` -XM`````@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(` -XM=R!@`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0````` -XM``!%%`````````$`4488````````4!@````````!`%$````````````````` -XM````;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``` -XM`````%`8`````````0!1`````````````````````-\#````````KP4````` -XM```!`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1 -XM````````*!$````````!`%/2$0````````82`````````0!3:!(````````T -XM$P````````$`4XX3````````I!,````````!`%/)$P```````!`4```````` -XM`0!3K!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`` -XM`````)@7`````````0!3I1@```````#*&`````````$`4P`````````````` -XM``````##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1 -XMD'S$"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R. -XM%````````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`` -XM`````.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````` -XM````````````V`,```````"U!P````````,`D8A\R0<```````!I"0`````` -XM``,`D8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,` -XMD8A\CA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\ -XMPA<```````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```` -XM`````````````````(@"````````WP,````````!`%-I"0```````-\)```` -XM`````0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q -XM%P```````&X7`````````0!3F!<```````"I%P````````$`4\`7```````` -XMZA<````````!`%,`````````````````````B@(```````"U!P````````,` -XMD;A_R0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_ -XM*!@```````!*&0````````,`D;A_`````````````````````%P$```````` -XM9@0````````!`%``````````````````````_P(```````"U!P````````,` -XMD8!\R0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\ -XMCA0```````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```` -XM`````````````````,\#````````M0<````````#`)'8?,D'````````:0D` -XM```````#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````` -XM```#`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````# -XM`)'8?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8 -XM?-(/````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0 -XM````````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```` -XM````D1$````````#`)'8?)$1````````LA$````````#`)'X>[(1```````` -XM!A(````````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,` -XM```````#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````` -XM```#`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````# -XM`)'8?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8 -XM?$87````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7 -XM````````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````` -XM``````````````#8`P```````+4'`````````P"1\'O)!P```````&D)```` -XM`````P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.```````` -XM`P"1\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1 -XM\'L4$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT -XM$P```````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``` -XM`````#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P`````` -XM`,`7`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9 -XM`````````P"1\'L`````````````````````V`,```````#N`P````````$` -XM7YD%````````00<````````!`%^H"````````&D)`````````0!?&PH````` -XM``#A$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```` -XM`````0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0 -XM%````````&P4`````````0!?CA0```````"L%`````````$`7\P4```````` -XM`Q<````````!`%]5%P```````&X7`````````0!?J1<```````#`%P`````` -XM``$`7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@` -XM``````!*&0````````$`7P````````````````````"*`@```````/`"```` -XM`````0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4 -XM````````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````` -XM```````````````3`@```````+4'`````````P"1Y'O)!P```````&P4```` -XM`````P"1Y'N.%````````$H9`````````P"1Y'L````````````````````` -XM!@,````````N`P````````$`4(L#````````I`,````````!`%#8`P`````` -XM`/`#`````````0!5_0,````````(!`````````$`59D%````````\04````` -XM```!`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\) -XM````````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!: -XM%P````````$`59@7````````I!<````````!`%#`%P```````,(7```````` -XM`0!0PA<```````#'%P````````$`50````````````````````"O!0`````` -XM`/8%`````````0!2`````````````````````)<*````````GPH````````! -XM`%3$"@```````,D*`````````0!5`````````````````````-@#```````` -XMWP,````````!`%.N"@```````/$*`````````0!3_@H```````!-"P`````` -XM``$`4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<` -XM``````#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88 -XM`````````0!3`````````````````````&X)````````>`D````````!`%4` -XM````````````````````51$```````!?$0````````$`5&D5````````;!4` -XM```````!`%!L%0```````'H5`````````0!4`````````````````````-@# -XM````````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```` -XM````X1`````````#`)&X?.\0````````;!0````````#`)&X?(X4```````` -XM,1<````````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<` -XM```````#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````` -XM```#`)&X?``````````````````````T"P```````$,+`````````0!<51$` -XM``````"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7 -XM`````````0!`T````````!`%4*%0````````X5`````````0!5 -XM51<```````!:%P````````$`5;`7````````LA<````````!`%"R%P`````` -XM`,`7`````````0!5PA<```````#'%P````````$`5988````````F!@````` -XM```!`%"8&````````*48`````````0!5`````````````````````-@#```` -XM````M0<````````#`)&L?,D'````````:0D````````#`)&L?$8*```````` -XMX1`````````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<` -XM```````#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````` -XM```#`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````# -XM`)&L?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`` -XM`````&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@`````` -XM`&,*`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``` -XM``````,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P`````` -XM``,`D<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,` -XMD<1\*!@```````!*&0````````,`D<1\`````````````````````$,'```` -XM````M0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``` -XM``````$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3 -XMRA@```````#7&`````````$`4P````````````````````!&!P```````+4' -XM`````````0!>R0<```````#8!P````````$`7ML'````````J`@````````! -XM`%Z.%````````*P4`````````0!>51<```````!N%P````````$`7LH8```` -XM````UQ@````````!`%X`````````````````````X@<````````>"``````` -XM``$`4%47````````6A<````````!`%7*&````````-<8`````````0!0```` -XM`````````````````````````````@`````````"`'<(`@`````````$```` -XM``````(`=Q`$``````````8``````````@!W&`8`````````"``````````" -XM`'<@"``````````)``````````(`=R@)``````````H``````````@!W,`H` -XM````````%``````````"`'@`````````!`%][```` -XM`````(X``````````0!?`````````````````````#,`````````;P`````` -XM```!`%9[`````````(8``````````0!6`````````````````````#4````` -XM````;0`````````!`%Q[`````````(@``````````0!<```````````````` -XM`````#4`````````;@`````````!`%-[`````````(4``````````0!3```` -XM`````````````````"0``````````@````````,` -XMD;A_`````````````````````.0`````````2P$````````!`%Q2`0`````` -XM``8"`````````0!<#0(````````>`@````````$`7``````````````````` -XM``#V`````````$@!`````````0!34@$```````"E`0````````$`4P`````` -XM``````````````#G`````````%$!`````````0!?4@$````````,`@`````` -XM``$`7PT"````````'@(````````!`%\`````````````````````[P`````` -XM```>`@````````(`D40`````````````````````#P$```````#;`P`````` -XM`/`&````````$`<```````#!!@```````-\&````````%P8```````"M!@`` -XM`````,(%````````_@4```````"0!0```````*X%````````304```````!I -XM!0```````,\$````````Z00````````L!````````#4$```````````````` -XM`````````````)!<```````!) -XM%P```````&H7````````0A<```````!&%P````````@7````````,!<````` -XM```"%P````````47````````[A8```````#W%@```````-H6````````X18` -XM``````#,%@```````-46`````````````````````````````%P2```````` -XM@1(```````#A%0```````/L5`````````````````````````````($2```` -XM````Y1(````````[&P```````$H;````````"A8```````"H%@```````'$5 -XM````````X14```````!@$P```````)L4```````````````````````````` -XM`($2````````Y1(````````[&P```````$H;````````EQ8```````"H%@`` -XM`````#@6````````6X`+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF -XM:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y -XM;F%M:6,`+F-T;W)S`"YD=&]RE```````*!Z```````` -XMH`$````````%``````````@`````````$`````````"X`````0````,````` -XM````0'Q0``````!`?````````!`````````````````````(```````````` -XM````````OP````$````#`````````%!\4```````4'P````````0```````` -XM````````````"````````````````````,8````!`````P````````!@?%`` -XM`````&!\````````"`````````````````````@```````````````````#+ -XM`````0````,`````````:'Q0``````!H?````````$@"```````````````` -XM```(``````````@`````````T`````@````#`````````+!^4```````L'X` -XM```````P````````````````````"````````````````````-4````!```` -XM`````````````````````+!^````````]@$```````````````````$````` -XM``````````````#>`````0````````````````````````"F@````````/`` -XM```````````````````!````````````````````[0````$````````````` -XM````````````EH$```````#I`0```````````````````0`````````````` -XM`````/T````!`````````````````````````'^#````````:TX````````` -XM``````````$````````````````````)`0```0`````````````````````` -XM``#JT0```````#4+```````````````````!````````````````````%P$` -XM``$`````````````````````````']T````````8#@`````````````````` -XM`0```````````````````",!```!`````````````````````````#CK```` -XM``````8```````````````````@````````````````````P`0```0```#`` -XM```````````````````X\0```````(P-```````````````````!```````` -XM``$`````````.P$```$`````````````````````````Q/X```````"<5``` -XM`````````````````0```````````````````$8!```!```````````````` -XM`````````&!3`0``````@!@```````````````````$````````````````` -XM```1`````P````````````````````````#@:P$``````%0!```````````` -XM```````!`````````````````````0````(````````````````````````` -XM>'8!``````"@$0```````"0```!/````"``````````8``````````D````# -XM`````````````````````````!B(`0``````B@D```````````````````$` -XM`````````````````````````````````````````````````````````P`! -XM`,@!0````````````````````````P`"`.`!0``````````````````````` -XM`P`#`/@!0````````````````````````P`$`%`$0``````````````````` -XM`````P`%`-`+0````````````````````````P`&`.`.0``````````````` -XM`````````P`'`(`/0````````````````````````P`(`,`/0``````````` -XM`````````````P`)`#@00````````````````````````P`*`,@60``````` -XM`````````````````P`+`-P60````````````````````````P`,`%`;0``` -XM`````````````````````P`-`#AI0````````````````````````P`.`$AI -XM0````````````````````````P`/`$1R0````````````````````````P`0 -XM`&!R4````````````````````````P`1`&!U4``````````````````````` -XM`P`2`*!Z4````````````````````````P`3`$!\4``````````````````` -XM`````P`4`%!\4````````````````````````P`5`&!\4``````````````` -XM`````````P`6`&A\4````````````````````````P`7`+!^4``````````` -XM`````````````P`8`````````````````````````````P`9```````````` -XM`````````````````P`:`````````````````````````````P`;```````` -XM`````````````````````P`<`````````````````````````````P`=```` -XM`````````````````````````P`>`````````````````````````````P`? -XM`````````````````````````````P`@```````````````````````````` -XM`P`A`````````````````````````````P`B```````````````````````` -XM`````P`C`````````````````````````````P`D```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`3`$!\ -XM4`````````````````!@`````0`4`%!\4`````````````````!N`````0`5 -XM`&!\4`````````````````![`````@`,`/`;0`````````````````"1```` -XM`0`7`-1^4````````0````````"@`````0`0`'!R4`````````````````"G -XM`````@`,`#`<0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`3`$A\4`````````````````#``````0`4`%A\4``````````` -XM``````#-`````0`1`&AZ4`````````````````#;`````0`5`&!\4``````` -XM``````````#G`````@`,`!!I0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0```@`,`&`<0```````*0`````````N`0`` -XM`@`,`)`<0```````*0`````````X`0```@`,`,`<0```````*0````````!& -XM`0```@`,`/`<0```````CP8```````!2`0```0`0`,!S4```````H`$````` -XM``!C`0```0`0`(!R4```````0`$```````!R`0``!`#Q_P`````````````` -XM``````!]`0```@`,`/`K0```````?0````````"0`0```@`,`$`O0``````` -XM:P````````"@`0```@`,`-`V0```````(@````````"T`0```@`,```W0``` -XM````-P````````#&`0```@`,`-`\0```````VP````````#1`0``!`#Q_P`` -XM``````````````````#<`0``!`#Q_P````````````````````#F`0```@`, -XM`)!-0```````$`````````#W`0```@`,`*!-0```````$``````````'`@`` -XM!`#Q_P`````````````````````/`@``$@`,`"`U0```````_P`````````< -XM`@``$@`,`*`Q0```````]``````````F`@``$@```.P60```````D``````` -XM```X`@``$@```/P60```````AP````````!2`@``$@````P70```````%P$` -XM``````!I`@``$@```!P70```````314```````!^`@``$@`,`*`R0``````` -XM.0$```````"(`@``$@```"P70```````?`$```````"9`@``$@`,`'!.0``` -XM````9@````````"J`@``$0`2`*!Z4`````````````````"S`@``$@```#P7 -XM0```````V@(```````#)`@``$@```$P70```````G@````````#8`@``$@`` -XM`%P70```````-`````````#J`@``$@```&P70```````50````````#[`@`` -XM$@`,`)`X0```````%0$````````/`P``$@`,`+`]0```````TPL````````< -XM`P``$@```'P70```````Y0`````````R`P``$@`,`.!F0```````CP`````` -XM``!``P``$@```(P70```````B@````````!0`P``$@```)P70``````````` -XM``````!A`P``$@```*P70```````:@````````!X`P``$0(0`&AR4``````` -XM``````````"%`P``$@```+P70```````X@````````":`P``$@`,`.!.0``` -XM````^A<```````"H`P``$@```,P70```````C`$```````#"`P``$@`,`+`O -XM0```````X@$```````#2`P``$@```-P70````````@````````#F`P``$@`` -XM`.P70```````AP8```````#X`P``$@```/P70```````.P`````````.!``` -XM$@````P80```````&0$````````E!```$@`,`.`S0```````.@$````````U -XM!```$@`*`,@60``````````````````[!```$@```!P80```````)``````` -XM``!2!```$@```"P80```````B`````````!A!```$0`7`-A^4```````"``` -XM``````!I!```$@```#P80```````3`````````![!```$@```$P80``````` -XM*0````````",!```$@```%P80```````-0````````"A!```$@```&P80``` -XM````:0$```````"V!```$@```'P80```````:@````````#0!```$0`7`+!^ -XM4```````!`````````#G!```$@```(P80```````K0(```````#X!```$@`` -XM`)P80```````%@`````````+!0``$0`0`&!R4```````"``````````6!0`` -XM$@`,`"`V0```````H@`````````E!0``$@`,`%`;0```````DP`````````L -XM!0``$@```*P80```````E0`````````\!0``$@```+P80``````````````` -XM``!+!0``$0`7`+A^4```````"`````````!!0``$@`,`#`N0```````!P$```````"J!0``$@`,`'!*0``` -XM````[@$```````"T!0``$@`,`'!G0```````GP$```````#%!0``$@```/P8 -XM0```````*`````````#"```$@```+P:0```````\@````````!O"```$0`7`,A^4```````"``` -XM``````"#"```$@```,P:0```````=@````````"2"```$0`7`-!^4``````` -XM!`````````"C"```$@```-P:0```````+P````````"T"```$@`,``!.0``` -XM````9@````````#&"```$@`,`)!)0```````V0````````#8"```$@```.P: -XM0```````'@````````#I"```$@```/P:0```````N0$````````$"0``$@`` -XM``P;0```````(0`````````9"0``$@```!P;0``````` -XM"0``$@`,`&!,0```````)0$```````!I"0``$@```#P;0```````:`$````` -XM``!_"0``$@`,`+`Y0```````%0,`````````8W)T,2YC`&%B:71A9P`O=7-R -XM+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\8V]M;6%N9"UL:6YE/@`\8G5I -XM;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ)4U1?7P!?7T143U)?3$E35%]? -XM`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R4!`1D)31%\Q -XM+C``5]P:&1R -XM`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A=&5?liba.a.uu << '610ec18d793cc5cecdc2a997e4eaf41c' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliba.a.1.uu << 'b253f047a1631a2a184043b6f45926f7' -Xbegin 644 liba.a.1 -XM(3QA'0`+G)E;"YT97AT`"YD871A`"YB'0`+G)E;"YT97AT`"YD871A`"YB6#[!C'1"0(`````,=$)`0`````QP0D`````.C\____ -XMR<-M97-S86=E,0!M97-S86=E,@```&US9S$@/2`E'0`+F1A=&$`+F)S````!4` -XM``````````````$`````````+@````$``````````````(T````F```````` -XM```````!``````````$````#``````````````"S````-P`````````````` -X(`0`````````` -X` -Xend -b253f047a1631a2a184043b6f45926f7 -echo x - liba.a.uu -sed 's/^X//' >liba.a.uu << '610ec18d793cc5cecdc2a997e4eaf41c' -Xbegin 644 liba.a -XM(3QA`!Y`&US9S$`;7-G,@!O=71P=71M'0`+F1A=&$` -XM+F)S6#[`C'1"0$`````,<$ -XM)`````#H_/___\G#:&5L;&\L('=O6UT86(`+G-T6UT86(`+G-T````!4````````````` -XM``$`````````.`````$``````````````(T````F```````````````!```` -XM`````!$````#``````````````"S````00```````````````0`````````! -XM`````@``````````````A`(``+`````)````!P````0````0````"0````,` -XM`````````````#0#```A```````````````!```````````````````````` -XM```````!```````````````$`/'_`````````````````P`!```````````` -XM``````,``P`````````````````#``0``````````````````P`%```````` -XM``````````,`!@`&``````````D````1``,`"P````D````)````$0`#`!`` -XM````````)````!(``0`:```````````````0`````&$T+F,`;7-G,0!Mliblong.a.uu << 'bffcfa998f235061c92dda36112dc47a' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Mliblong.a.1.uu << '8eb77b0d36e0369a1b3adf0cc5ef193a' -Xbegin 644 liblong.a.1 -XM(3QA7'!0`````%```` -XMBT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#'0`+F1A=&$` -XM+F)S7'!0`````!````QP4``````@`` -XM`(L5`````(M%"(G!*=&)RJ$`````B=$IP8G(7<,``$=#0SH@*$=.52D@-"XR -XM+C$@,C`P-S`W,3D@(%M&'0`+G)E;"YT97AT`"YD871A`"YB`````````````````````0`````````)@````$` -XM```"`````````'@````5```````````````!`````````"X````!```````` -XM``````"-````)@```````````````0`````````!`````P`````````````` -X8LP```#<```````````````$````````` -X` -Xend -8eb77b0d36e0369a1b3adf0cc5ef193a -echo x - liblong.a.uu -sed 's/^X//' >liblong.a.uu << 'bffcfa998f235061c92dda36112dc47a' -Xbegin 644 liblong.a -XM(3QA2```'D@``"LX```K.```*SG-U;6UU;`!A`&US9P!P`!Y`&US9S$`;7-G,@!O=71P=71M7'!0`` -XM```%````BT4,BU4(`<*A``````^OPEW#``!'0T,Z("A'3E4I(#0N,BXQ(#(P -XM,#6UT86(`+G-T`!Y``4````!!P``#P`` -XM``$(```9`````0<``"<````!"```+S(W("`@("`@("`@("`@(#$Q.30W-S'0`+F1A=&$`+F)S`````````````````````0`````````,`````$````"```````` -XM`'@````5```````````````!`````````#@````!``````````````"-```` -XM)@```````````````0`````````1`````P``````````````LP```$$````` -XM``````````$``````````0````(``````````````(0"``"P````"0````<` -XM```$````$`````D````#```````````````T`P``(0```````````````0`` -XM`````````````````````````````0``````````````!`#Q_P`````````` -XM``````,``0`````````````````#``,``````````````````P`$```````` -XM``````````,`!0`````````````````#``8`!@`````````)````$0`#``L` -XM```)````"0```!$``P`0`````````"0````2``$`&@``````````````$``` -XM``!A-"YC`&US9S$`;7-G,@!O=71P=71Msections.o.uu << 'END-of-sections.o.uu' -Xbegin 644 sections.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q```` -XM`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -XM````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -XM`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -XM9EP"```+7W```F50````"(W`*``````)\W@(```(C -XM=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -XM``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -XM```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -XM5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -XM`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -XM```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -XM`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -XM`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -XM""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -XM`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -XM"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -XM````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -XM%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -XM!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -XM"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -XM```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -XM``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -XM"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -XM``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -XM-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -XM``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -XM(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -XM````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -XM"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -XM"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -XM`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -XM``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -XM``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -XM````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -XM"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -XM```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -XM"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -XM!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -XM60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -XM```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -XM```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -XMHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -XM``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -XM%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -XM"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -XM`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -XM`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -XM"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -XM``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -XM``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -XM`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -XM!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -XM`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -XM".@````F``````$X`50``````````````````````````````+T2```C96-P -XM``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -XM```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -XM.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -XM%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -XM@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -XMQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -XM``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -XM`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -XM`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -XM-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -XM``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -XM`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -XM+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -XM`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -XM20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -XMO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -XM($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -XM!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -XM`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -XM86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -XM;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -XM'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -XM`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -XM#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -XM@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -XMY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -XM0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -XM1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -XM1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -XM`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -XM`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -XM!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -XM``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -XM`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -XM`````````````````````'``````````E@`````````!`%66`````````($! -XM`````````0!00` -XM``````"W!`````````$`42\%````````.04````````!`%$````````````` -XM````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -XM````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -XM`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -XM``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -XM````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -XM``````$`5DL&````````A`8````````!`%8`````````````````````J04` -XM```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -XM`````````0!3`````````````````````+P%````````OP4````````!`%"_ -XM!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -XM```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -XM4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -XMR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -XM`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -XM````````````````D`8```````"Y!@````````$`5+D&````````P08````` -XM```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -XM````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -XM`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -XM``````#)!P````````$`5@````````````````````#0!P```````-('```` -XM`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -XM=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -XM`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -XM````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -XM``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -XM``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -XM````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -XM````````````````````<@X```````!U#@````````$`4'4.````````@PX` -XM```````!`%1##P```````$T/`````````0!4`````````````````````-\, -XM````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -XM#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -XM`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -XM`!0/`````````0!0`````````````````````!`0````````$1`````````" -XM`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -XM````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -XM```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -XM5=P0````````X1`````````!`%4`````````````````````$!`````````U -XM$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -XM`0!4M!````````"[$`````````$`5``````````````````````B$``````` -XM`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -XM```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -XM````NQ`````````!`%3<$````````.80`````````0!4```````````````` -XM`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -XM``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -XM````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -XM$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -XM``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -XM`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -XM````````^1`````````"`'%P`````` -XM``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -XM``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -XM````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -XM`````&(7`````````0!4`````````````````````"$1````````=A$````` -XM```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -XM````````)14````````!`%9$%0```````-X7`````````0!6```````````` -XM`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -XMWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -XM`-X7`````````0!<`````````````````````"$1````````?!$````````! -XM`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -XM````WA<````````!`%X`````````````````````$A<````````7%P`````` -XM``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -XM`````````````````+T1````````PA$````````!`%0#%0````````@5```` -XM`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -XM`````,05`````````0!0`````````````````````"$1`````````1,````` -XM```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -XMZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -XM``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -XM```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -XM5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -XM``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -XM````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -XM`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -XM```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -XM````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -XM`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -XM`````%@7`````````0!<`````````````````````"$1````````-A$````` -XM```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -XM````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -XM%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -XM#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -XM```T#@```````#H.````````+@X````````Q#@`````````````````````` -XM```````U$````````%,0````````W!````````#K$``````````````````` -XM``````````!W$````````(<0````````Q1````````#<$````````)40```` -XM````F!````````"+$````````)(0`````````````````````````````!(1 -XM````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -XM``,6````````U!8```````!/$@```````,`2```````````````````````` -XM`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -XM%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -XM``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -XM``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -XME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -XM````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -XM````````*18````````L%@````````,6````````'18````````````````` -XM````````````M1$```````#@$0```````/L4````````%14````````````` -XM````````````````X!$```````!$$@```````"L7````````.A<````````E -XM%0```````.05````````L10```````#[%````````,`2````````!10````` -XM````````````````````````X!$```````!$$@```````"L7````````.A<` -XM``````#3%0```````.05````````$P```````+$3 -XM````````NA,````````K$P```````*43````````'1,````````A$P`````` -XM``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -XM`````,`2````````YA(`````````````````````````````X!$```````!$ -XM$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -XM`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -XM``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -XM`````````````````````#$4````````L10````````0%P```````"L7```` -XM````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -XM`````````````````````````````#$4````````6!0````````7%P`````` -XM`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -XM`````+$4````````:A0```````!L%````````&04````````9Q0````````` -XM````````````````````CA0```````"Q%````````-06````````XQ8````` -XM````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -XM9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -XM4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -XM2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -XM;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -XM7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -XM`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -XM1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -XM96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -XM````B`,````````"````)````/S_________C0,````````*````"0```+8` -XM````````E0,````````"````)````/S_________O0,````````*````"0`` -XM`+8`````````]0,````````"````)@```/S_________$`0````````"```` -XM)P```/S_________;P0````````"````&@```/S_________LP0````````" -XM````&0```/S_________V@0````````"````&P```/S_________!@4````` -XM```"````'P```/S_________"P4````````*````"0```,``````````&@4` -XM```````"````(````/S_________'P4````````*````"0```-@````````` -XM*P4````````"````*````/S_________-04````````"````'P```/S_____ -XM____.@4````````*````"0```!X`````````204````````"````(````/S_ -XM________4P4````````"````'P```/S_________6`4````````*````"0`` -XM`.4`````````9P4````````"````(````/S_________<04````````"```` -XM'P```/S_________=@4````````*````"0```#<`````````A04````````" -XM````(````/S_________M04````````"````&@```/S__________@4````` -XM```"````*@```/S_________"P8````````"````(P```/S_________408` -XM```````"````'P```/S_________5@8````````*````"0```!X````````` -XM908````````"````(````/S_________;`8````````"````'P```/S_____ -XM____<08````````*````"0````,!````````@`8````````"````(````/S_ -XM________O08````````"````&0```/S_________T08````````"````&0`` -XM`/S_________/P<````````"````&P```/S_________=0<````````"```` -XM'P```/S_________>@<````````*````"0```!P!````````B0<````````" -XM````(````/S_________DP<````````"````'P```/S_________F`<````` -XM```*````"0```#H!````````IP<````````"````(````/S_________L0<` -XM```````"````'P```/S_________M@<````````*````"0```%@!```````` -XMQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -XM____;@@````````"````&P```/S_________LP@````````*````"P`````` -XM````````N@@````````"````+0```/S_________R0@````````"````'P`` -XM`/S_________S@@````````*````"0```',!````````W0@````````"```` -XM(````/S_________YP@````````"````'P```/S_________[`@````````* -XM````"0```%@!````````^P@````````"````(````/S_________$0D````` -XM```"````+P```/S_________*0D````````"````)P```/S_________>@D` -XM```````"````,````/S_________N`D````````"````'P```/S_________ -XMO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -XM____U@D````````"````'P```/S_________VPD````````*````"0```+D! -XM````````Z@D````````"````(````/S_________[PD````````*````"0`` -XM`*L!````````^PD````````"````(````/S_________,0H````````"```` -XM,@```/S_________5`H````````"````,P```/S_________:PH````````" -XM````-````/S_________E`H````````*````"0```-$!````````G@H````` -XM```"````(````/S_________MPH````````"````,0```/S_________YPH` -XM```````"````,0```/S_________0@L````````*````"0```+8````````` -XM:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -XM````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -XM````````JPL````````+````"0```.H!````````M`L````````+````"0`` -XM`/P!````````O0L````````+````"0````("````````X@L````````"```` -XM-0```/S_________\`L````````"````-@```/S_________(@P````````" -XM````,0```/S_________?PP````````"````)P```/S_________DPP````` -XM```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -XM```````"````.0```/S__________PP````````"````&0```/S_________ -XM'0T````````"````.@```/S_________5`T````````*````"0```+8````` -XM````?@T````````"````)@```/S_________DPT````````"````'````/S_ -XM________N`T````````*````"0```*8`````````T@T````````*````"0`` -XM`*X`````````$0X````````"````.````/S_________*@X````````"```` -XM.0```/S_________/@X````````"````'````/S_________3@X````````" -XM````&0```/S_________:PX````````"````.@```/S_________FPX````` -XM```"````)P```/S_________W`X````````"````.P```/S_________]PX` -XM```````"````*P```/S_________`0\````````"````(P```/S_________ -XM$`\````````"````'P```/S_________%0\````````*````"0```(X````` -XM````)`\````````"````(````/S_________*0\````````"````(P```/S_ -XM________20\````````"````'P```/S_________3@\````````*````"0`` -XM`#\"````````70\````````"````(````/S_________9P\````````"```` -XM'P```/S_________;`\````````*````"0```","````````>P\````````" -XM````(````/S_________A0\````````"````'P```/S_________B@\````` -XM```*````"0```(,"````````F0\````````"````(````/S_________HP\` -XM```````"````'P```/S_________J`\````````*````"0```&T"```````` -XMMP\````````"````(````/S_________O`\````````*````"0```*L!```` -XM````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -XM________U0\````````*````"0````@"````````Y`\````````"````(``` -XM`/S_________[@\````````"````'P```/S_________\P\````````*```` -XM"0```%4"`````````A`````````"````(````/S_________)A`````````" -XM````/````/S_________,1`````````"````/0```/S_________91`````` -XM```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -XM/0```/S_________UA0````````"````0P```/S_________-A4````````" -XM````0P```/S_________4!4````````"````,0```/S_________7!4````` -XM```"````-0```/S_________=!4````````"````0P```/S_________HA4` -XM```````"````0@```/S_________MQ4````````"````,0```/S_________ -XMP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -XM````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -XM________\14````````"````/@```/S_________)18````````"````*@`` -XM`/S_________0Q8````````"````1````/S_________9Q8````````"```` -XM'````/S_________>Q8````````"````.@```/S_________D18````````" -XM````10```/S_________JA8````````"````,P```/S_________VA8````` -XM```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -XM```````"````'P```/S_________&!<````````*````"0````,!```````` -XM)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -XM````-A<````````"````*````/S_________0!<````````"````'P```/S_ -XM________11<````````*````"0```)$!````````5!<````````"````(``` -XM`/S_________7A<````````"````'P```/S_________8Q<````````*```` -XM"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -XM````C0`````````*````%@```.4&````````E``````````*````%@```&<( -XM````````FP`````````*````%@```.(!````````H``````````*````%@`` -XM`'`&````````L``````````*````%@```/$'````````O0`````````*```` -XM%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -XM````%@```*T!````````V``````````*````%@```#H&````````]``````` -XM```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -XM```````*````%@```*\'````````%@$````````*````%@```'@$```````` -XM)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -XM````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -XM````````E@$````````*````%@```)P`````````I`$````````*````%@`` -XM`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -XM%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -XM`/H!````````HP<````````*````%@````@$````````L0<````````*```` -XM%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -XM````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -XM```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -XM```````*````%@```(X!````````(0@````````*````%@```+$&```````` -XM+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -XM````2P@````````*````%@```"T`````````:`@````````*````%@````D! -XM````````=@@````````*````%@```+8!````````A0@````````*````%@`` -XM`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -XM%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -XM````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -XM```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -XM```````*````%@```)\'````````=0D````````*````%@````D!```````` -XM@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -XM````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -XM````````PPD````````*````%@```!X&````````T@D````````*````%@`` -XM`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -XM%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -XM````%@```"4#````````3PH````````*````%@```,@#````````50H````` -XM```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -XM```````*````%@```*$"````````9PH````````*````%@```*(&```````` -XM=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -XM````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -XM````````S`H````````*````%@```"<"````````V@H````````*````%@`` -XM`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -XM%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -XM````%@```.L#````````1PL````````*````%@```-L&````````50L````` -XM```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -XM```````*````%@```$<"````````APL````````*````%@```%T!```````` -XME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -XM````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -XM````````]PL````````*````%@```%``````````!0P````````*````%@`` -XM`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -XM%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -XM````%@```)X%````````2PP````````*````%@```$L%````````60P````` -XM```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -XM```````*````%@```$(%````````@PP````````*````%@```/D'```````` -XMD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -XM````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -XM````````R@P````````*````%@```-<"````````V0P````````*````%@`` -XM`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -XM%@```)D'````````!@T````````*````%@```'('````````'`T````````* -XM````%@```'X(````````(PT````````!`````@``````````````*PT````` -XM```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -XM```````!`````@```'``````````>`T````````!`````@```"8"```````` -XM@`T````````*````$@``````````````E`T````````*````$@```#D````` -XM````H@T````````*````$@```((`````````IPT````````*````%@```-,# -XM````````L@T````````*````$@```+@`````````S@T````````*````%@`` -XM`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -XM`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -XM````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -XM```*````$@````@"````````*PX````````*````%@````$$````````-@X` -XM```````*````$@```%$"````````.PX````````*````%@```&H#```````` -XM2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -XM````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -XM````````=`X````````*````$@```+\"````````>0X````````*````%@`` -XM`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -XM$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -XM`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -XM```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -XM```````*````$@```),$````````V0X````````*````%@```,$````````` -XMY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -XM````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -XM````````*P\````````!`````@```)`%````````,P\````````!`````@`` -XM`(0&````````.P\````````*````$@```'X%````````30\````````*```` -XM$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -XM````$@```)8&````````<`\````````*````%@````$$````````>P\````` -XM```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -XM```````!`````@```)`&````````D@\````````!`````@```,D'```````` -XMF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -XM````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -XM````````T0\````````*````%@```+$&````````W`\````````*````$@`` -XM`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -XM`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -XM````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -XM```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -XM```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -XM````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -XM````````IQ`````````*````%@```#("````````LA`````````*````$@`` -XM`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -XM$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -XM`````@`````*````````[!`````````!`````@```*(*````````]!`````` -XM```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -XM```````*````%@```+$&````````%A$````````*````$@```"P,```````` -XM)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -XM````.A$````````*````%@```'D&````````11$````````!`````@```+`* -XM````````31$````````!`````@```-(*````````51$````````*````$@`` -XM`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -XM%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -XM````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -XM```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -XM```````*````$@```+L-````````NA$````````*````$@```/,-```````` -XMOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -XM````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -XM````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -XM``L`````````)1(````````*````%@```-0'````````,!(````````!```` -XM`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -XM````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -XM```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -XM```````*````%0``````````````>A(````````*````$@```&`/```````` -XMA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -XM````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -XM````````OA(````````*````%@```.4"````````VA(````````*````%@`` -XM`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -XM%@```/4#````````$!,````````*````%@````$$````````'1,````````* -XM````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -XM```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -XM```````*````$@```%H0````````5!,````````*````$@```*,0```````` -XM61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -XM````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -XM````````E!,````````*````%@````$$````````GA,````````*````$@`` -XM`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -XM%0```)``````````PA,````````*````$@```"82````````U!,````````* -XM````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -XM```*````%@```'H"````````'10````````*````%@```-T(````````)10` -XM```````!`````@```!`0````````+10````````!`````@```.L0```````` -XM-10````````*````$@```!03````````1Q0````````*````$@```'03```` -XM````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -XM````````;10````````*````%0```&`!````````?10````````*````$@`` -XM`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -XM$@```+X4````````H10````````*````$@```!H5````````J!0````````* -XM````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -XM```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -XM```````*````%@````$$````````,Q4````````*````%@```+@%```````` -XM6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -XM````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -XM````````O!4````````*````%@```"$"````````%!8````````*````%@`` -XM`!(!````````(18````````*````%@```'X%````````/18````````*```` -XM%@```,H$````````:18````````*````%@````$$````````?!8````````* -XM````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -XM```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -XM```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -XM\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -XM````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -XM````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -XM`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -XM$@````87````````9A<````````*````$@```$\7````````;Q<````````* -XM````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -XM```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -XM```````*````$@```-(8````````NA<````````*````%0```+`#```````` -XMT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -XM````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -XM`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -XM`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -XM%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -XM````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -XM```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -XM```````!`````@```#$4````````FA@````````*````$@```)X<```````` -XMI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -XM````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -XM````````S1@````````*````%0```+`&````````V1@````````*````$@`` -XM`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -XM%@```$\"````````Q0`````````!`````@``````````````'``````````* -XM````$```````````````(``````````!`````@``````````````-``````` -XM```*````$```````````````.``````````!`````@```'``````````7``` -XM```````*````$```````````````8``````````!`````@```#`"```````` -XMC``````````*````$```````````````D``````````!`````@```#`#```` -XM````K``````````*````$```````````````L``````````!`````@```*`# -XM````````Y``````````*````$```````````````Z``````````!`````@`` -XM`)`%````````#`$````````*````$```````````````$`$````````!```` -XM`@```)`&````````-`$````````*````$```````````````.`$````````! -XM`````@```-`'````````9`$````````*````$```````````````:`$````` -XM```!`````@`````)````````C`$````````*````$```````````````D`$` -XM```````!`````@`````*````````O`$````````*````$``````````````` -XMP`$````````!`````@```+`*````````W`$````````*````$``````````` -XM````X`$````````!`````@```.`*````````_`$````````*````$``````` -XM``````````(````````!`````@```"`+````````)`(````````*````$``` -XM````````````*`(````````!`````@```&`,````````9`(````````*```` -XM$```````````````:`(````````!`````@```!`0````````C`(````````* -XM````$```````````````D`(````````!`````@```/`0````````(``````` -XM```*`````@``````````````.``````````*`````@```'``````````6``` -XM```````*`````@```#`"````````@``````````*`````@```#`#```````` -XMF``````````*`````@```*`#````````R``````````*`````@```)`%```` -XM````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -XM````````,`$````````*`````@`````)````````4`$````````*`````@`` -XM```*````````>`$````````*`````@```+`*````````D`$````````*```` -XM`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -XM`````@```&`,``````````(````````*`````@```!`0````````(`(````` -XM```*`````@```/`0````````!@`````````*````!@``````````````!@`` -XM```````*````!@``````````````$``````````!`````@`````````````` -X` -Xend -END-of-sections.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/out/strip-debug-1.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/out/strip-debug-1.out.shar deleted file mode 100644 index a28c1711..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/out/strip-debug-1.out.shar +++ /dev/null @@ -1,1503 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.1.uu -# sections.o.uu -# -echo x - sections.o.1.uu -sed 's/^X//' >sections.o.1.uu << 'eb2ac2808b7045ab3c2faf26922f5e01' -Xbegin 644 sections.o.1 -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````$`]```` -XM`````````$```````$``#0`*`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A'1S8VX@9F%I;&5D.B`E0`N9&5B=6<`+F=N=2YL:6YK;VYC92YW:2X`+FQI;F4`+G-T86(`96QF7V=E -XM='-H"!F86EL960Z -XM("5S`&=E;&9?9V5T&!HP%C02.`X\"````````+G-Y;71A8@`N -XM````$`````````````````````````"I````$``````````````````````` -XM``"Y````$`````````````````````````#!````$``````````````````` -XM``````#,````$`````````````````````````#1````$@`!`#`"```````` -XM_`````````#=````$`````````````````````````#K````$``````````` -XM``````````````#U````$``````````````````````````&`0``$@`!`*`# -XM````````Z0$````````6`0``$``````````````````````````A`0``$``` -XM```````````````````````H`0``$``````````````````````````L`0`` -XM$@`!`)`%````````]``````````V`0``$`````````````````````````!" -XM`0``$@`!`)`&````````.0$```````!,`0``$@`!`-`'````````+P$````` -XM``!<`0``$`````````````````````````!B`0``$@`!```)````````_P`` -XM``````!O`0``$`````````````````````````!\`0``$``````````````` -XM``````````"'`0``$@`!```*````````H@````````"6`0``$``````````` -XM``````````````"=`0``$`````````````````````````"D`0``$``````` -XM``````````````````"K`0``$`````````````````````````"R`0``$``` -XM``````````````````````"Z`0``$@`!`&`,````````I@,```````#%`0`` -XM$`````````````````````````#5`0``$`````````````````````````#A -XM`0``$`````````````````````````#L`0``$``````````````````````` -XM``#^`0``$``````````````````````````+`@``$``````````````````` -XM```````5`@``$``````````````````````````:`@``$``````````````` -XM```````````B`@``$@`!`/`0````````[@8````````O`@``$``````````` -XM```````````````]`@``$`````````````````````````!$`@``$``````` -XM``````````````````!,`@``$`````````````````````````!8`@``$``` -XM````````````````````````:6YS97)T7W1O7W-E8U]L:7-T`&%D9%]T;U]S -XM:'-T5]S:&1R`')E`!I;G-EF4`;&]O:W5P7W-E8U]A8W0`'1S -XM8VX`96QF7W-T0!G96QF7V=E=')E;`!L;V]K=7!?:V5E<%]S -XM>6UL:7-T``````"7``````````(````/````_/_________N``````````(` -XM```0````_/________\;`0````````(````1````_/________]9`0`````` -XM``(````2````_/________]F`0````````(````3````_/________^E`0`` -XM``````(````4````_/________^T`0````````(````5````_/________^Y -XM`0````````H````#``````````````#(`0````````(````6````_/______ -XM___2`0````````(````5````_/_________7`0````````H````#````'@`` -XM``````#F`0````````(````6````_/_________P`0````````(````5```` -XM_/_________U`0````````H````#````-P`````````$`@````````(````6 -XM````_/________\.`@````````(````5````_/________\3`@````````H` -XM```#````50`````````B`@````````(````6````_/________]/`@`````` -XM``(````/````_/________]@`@````````(````8````_/________^7`@`` -XM``````(````2````_/________^H`@````````(````1````_/________^Z -XM`@````````(````9````_/_________;`@````````(````5````_/______ -XM___@`@````````H````#````<@````````#O`@````````(````6````_/__ -XM_______Y`@````````(````5````_/_________^`@````````H````#```` -XM-P`````````-`P````````(````6````_/________\4`P````````(````5 -XM````_/________\9`P````````H````#````C@`````````H`P````````(` -XM```6````_/________]I`P````````H````#````I0````````!N`P`````` -XM``(````:````_/________]V`P````````H````#````I@````````![`P`` -XM``````(````:````_/________^#`P````````H````#````K@````````"( -XM`P````````(````:````_/________^-`P````````H````#````M@`````` -XM``"5`P````````(````:````_/________^]`P````````H````#````M@`` -XM``````#U`P````````(````<````_/________\0!`````````(````=```` -XM_/________]O!`````````(````0````_/________^S!`````````(````/ -XM````_/_________:!`````````(````1````_/________\&!0````````(` -XM```5````_/________\+!0````````H````#````P``````````:!0`````` -XM``(````6````_/________\?!0````````H````#````V``````````K!0`` -XM``````(````>````_/________\U!0````````(````5````_/________\Z -XM!0````````H````#````'@````````!)!0````````(````6````_/______ -XM__]3!0````````(````5````_/________]8!0````````H````#````Y0`` -XM``````!G!0````````(````6````_/________]Q!0````````(````5```` -XM_/________]V!0````````H````#````-P````````"%!0````````(````6 -XM````_/________^U!0````````(````0````_/_________^!0````````(` -XM```@````_/________\+!@````````(````9````_/________]1!@`````` -XM``(````5````_/________]6!@````````H````#````'@````````!E!@`` -XM``````(````6````_/________]L!@````````(````5````_/________]Q -XM!@````````H````#`````P$```````"`!@````````(````6````_/______ -XM__^]!@````````(````/````_/_________1!@````````(````/````_/__ -XM______\_!P````````(````1````_/________]U!P````````(````5```` -XM_/________]Z!P````````H````#````'`$```````")!P````````(````6 -XM````_/________^3!P````````(````5````_/________^8!P````````H` -XM```#````.@$```````"G!P````````(````6````_/________^Q!P`````` -XM``(````5````_/________^V!P````````H````#````6`$```````#%!P`` -XM``````(````6````_/________]+"`````````(````/````_/________]N -XM"`````````(````1````_/________^S"`````````H````%```````````` -XM``"Z"`````````(````C````_/_________)"`````````(````5````_/__ -XM_______."`````````H````#````"@````````(` -XM```6````_/________^W"@````````(````G````_/_________G"@`````` -XM``(````G````_/________]""P````````H````#````M@````````!I"P`` -XM``````H````#````I@````````"&"P````````H````#````K@````````"7 -XM"P````````H````#````XP$```````"B"P````````L````#````XP$````` -XM``"K"P````````L````#````Z@$```````"T"P````````L````#````_`$` -XM``````"]"P````````L````#`````@(```````#B"P````````(````K```` -XM_/_________P"P````````(````L````_/________\B#`````````(````G -XM````_/________]_#`````````(````=````_/________^3#`````````L` -XM```#````M@````````#+#`````````(````N````_/_________H#``````` -XM``(````O````_/__________#`````````(````/````_/________\=#0`` -XM``````(````P````_/________]4#0````````H````#````M@````````!^ -XM#0````````(````<````_/________^3#0````````(````2````_/______ -XM__^X#0````````H````#````I@````````#2#0````````H````#````K@`` -XM```````1#@````````(````N````_/________\J#@````````(````O```` -XM_/________\^#@````````(````2````_/________].#@````````(````/ -XM````_/________]K#@````````(````P````_/________^;#@````````(` -XM```=````_/_________<#@````````(````Q````_/_________W#@`````` -XM``(````A````_/________\!#P````````(````9````_/________\0#P`` -XM``````(````5````_/________\5#P````````H````#````C@`````````D -XM#P````````(````6````_/________\I#P````````(````9````_/______ -XM__])#P````````(````5````_/________].#P````````H````#````/P(` -XM``````!=#P````````(````6````_/________]G#P````````(````5```` -XM_/________]L#P````````H````#````(P(```````![#P````````(````6 -XM````_/________^%#P````````(````5````_/________^*#P````````H` -XM```#````@P(```````"9#P````````(````6````_/________^C#P`````` -XM``(````5````_/________^H#P````````H````#````;0(```````"W#P`` -XM``````(````6````_/________^\#P````````H````#````JP$```````#& -XM#P````````(````>````_/_________0#P````````(````5````_/______ -XM___5#P````````H````#````"`(```````#D#P````````(````6````_/__ -XM_______N#P````````(````5````_/_________S#P````````H````#```` -XM50(````````"$`````````(````6````_/________\F$`````````(````R -XM````_/________\Q$`````````(````S````_/________]E$`````````(` -XM```R````_/________]P$`````````(````S````_/________^D$``````` -XM``(````S````_/________^N$`````````(````T````_/________^W$``` -XM``````(````S````_/________^_$`````````(````T````_/_________3 -XM$`````````(````U````_/_________B$`````````(````U````_/______ -XM__\W$0````````H````#````I@````````!7$0````````(````W````_/__ -XM______^`$0````````H````#````K@````````"2$0````````H````#```` -XMM@````````#J$0````````(````I````_/________\,$@````````(````X -XM````_/________\A$@````````(````@````_/________\[$@````````(` -XM```I````_/________]9$@````````(````/````_/_________!$@`````` -XM``(````9````_/________\"$P````````(````I````_/________^I$P`` -XM``````(````K````_/_________!$P````````(````H````_/________\) -XM%`````````(````?````_/________\9%`````````(````G````_/______ -XM__]@%`````````(````@````_/________]M%`````````(````9````_/__ -XM______][%`````````(````R````_/________^*%`````````(````S```` -XM_/_________6%`````````(````Y````_/________\V%0````````(````Y -XM````_/________]0%0````````(````G````_/________]<%0````````(` -XM```K````_/________]T%0````````(````Y````_/________^B%0`````` -XM``(````X````_/________^W%0````````(````G````_/_________`%0`` -XM``````(````K````_/_________4%0````````H````#````O@(```````#@ -XM%0````````(````>````_/_________G%0````````(````S````_/______ -XM___Q%0````````(````T````_/________\E%@````````(````@````_/__ -XM______]#%@````````(````Z````_/________]G%@````````(````2```` -XM_/________][%@````````(````P````_/________^1%@````````(````[ -XM````_/________^J%@````````(````I````_/_________:%@````````(` -XM```U````_/_________I%@````````(````I````_/________\3%P`````` -XM``(````5````_/________\8%P````````H````#`````P$````````G%P`` -XM``````(````6````_/________\L%P````````H````#````L`(````````V -XM%P````````(````>````_/________]`%P````````(````5````_/______ -XM__]%%P````````H````#````D0$```````!4%P````````(````6````_/__ -XM______]>%P````````(````5````_/________]C%P````````H````#```` -XM/P(```````!R%P````````(````6````_/________]\%P````````(````5 -XM````_/________^!%P````````H````#````F0(```````"0%P````````(` -XM```6````_/________^5%P````````(````9````_/_________%%P`````` -XM``(````F````_/________]A`P````````(````:````_/________\@```` -XM``````H````!```````````````X``````````H````!````<`````````!8 -XM``````````H````!````,`(```````"```````````H````!````,`,````` -XM``"8``````````H````!````H`,```````#(``````````H````!````D`4` -XM``````#H``````````H````!````D`8````````(`0````````H````!```` -XMT`<````````P`0````````H````!``````D```````!0`0````````H````! -XM``````H```````!X`0````````H````!````L`H```````"0`0````````H` -XM```!````X`H```````"H`0````````H````!````(`L```````#(`0`````` -XM``H````!````8`P``````````@````````H````!````$!`````````@`@`` -XM``````H````!````\!`````````````````````````````````````````` -XM````````````````````````````````````````````````````&P````$` -XM```&````````````````````0`````````#>%P``````````````````$``` -XM`````````````````"$````$````0````````````````````#`F```````` -XMD!4````````+`````0````@`````````&``````````L`````0````,````` -XM```````````````@&``````````````````````````````$```````````` -XM````````,@````@````#````````````````````(!@````````````````` -XM````````````!````````````````````#<````!```````````````````` -XM`````"`8````````,`````````````````````$```````````````````!` -XM`````0```#(```````````````````!0&````````-<"```````````````` -XM```!``````````$`````````3P````$````R````````````````````*!L` -XM```````M````````````````````"``````````!`````````%X````!```` -XM`@```````````````````%@;````````4`(```````````````````@````` -XM``````````````!H````!````$````````````````````#`.P```````(`! -XM````````"P````@````(`````````!@`````````$0````,````````````` -XM````````````J!T```````!W`````````````````````0`````````````` -XM``````$````"`````````````````````````"`>````````H`4````````, -XM````#@````@`````````&``````````)`````P`````````````````````` -XJ``#`(P```````&P"```````````````````!```````````````````` -X` -Xend -eb2ac2808b7045ab3c2faf26922f5e01 -echo x - sections.o.uu -sed 's/^X//' >sections.o.uu << 'f3eccedeeefe85afebc666fca5eb0742' -Xbegin 644 sections.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q```` -XM`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -XM````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -XM`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -XM9EP"```+7W```F50````"(W`*``````)\W@(```(C -XM=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -XM``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -XM```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -XM5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -XM`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -XM```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -XM`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -XM`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -XM""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -XM`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -XM"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -XM````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -XM%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -XM!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -XM"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -XM```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -XM``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -XM"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -XM``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -XM-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -XM``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -XM(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -XM````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -XM"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -XM"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -XM`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -XM``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -XM``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -XM````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -XM"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -XM```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -XM"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -XM!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -XM60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -XM```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -XM```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -XMHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -XM``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -XM%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -XM"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -XM`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -XM`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -XM"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -XM``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -XM``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -XM`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -XM!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -XM`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -XM".@````F``````$X`50``````````````````````````````+T2```C96-P -XM``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -XM```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -XM.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -XM%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -XM@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -XMQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -XM``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -XM`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -XM`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -XM-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -XM``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -XM`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -XM+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -XM`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -XM20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -XMO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -XM($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -XM!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -XM`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -XM86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -XM;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -XM'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -XM`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -XM#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -XM@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -XMY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -XM0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -XM1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -XM1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -XM`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -XM`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -XM!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -XM``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -XM`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -XM`````````````````````'``````````E@`````````!`%66`````````($! -XM`````````0!00` -XM``````"W!`````````$`42\%````````.04````````!`%$````````````` -XM````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -XM````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -XM`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -XM``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -XM````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -XM``````$`5DL&````````A`8````````!`%8`````````````````````J04` -XM```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -XM`````````0!3`````````````````````+P%````````OP4````````!`%"_ -XM!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -XM```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -XM4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -XMR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -XM`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -XM````````````````D`8```````"Y!@````````$`5+D&````````P08````` -XM```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -XM````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -XM`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -XM``````#)!P````````$`5@````````````````````#0!P```````-('```` -XM`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -XM=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -XM`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -XM````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -XM``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -XM``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -XM````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -XM````````````````````<@X```````!U#@````````$`4'4.````````@PX` -XM```````!`%1##P```````$T/`````````0!4`````````````````````-\, -XM````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -XM#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -XM`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -XM`!0/`````````0!0`````````````````````!`0````````$1`````````" -XM`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -XM````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -XM```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -XM5=P0````````X1`````````!`%4`````````````````````$!`````````U -XM$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -XM`0!4M!````````"[$`````````$`5``````````````````````B$``````` -XM`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -XM```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -XM````NQ`````````!`%3<$````````.80`````````0!4```````````````` -XM`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -XM``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -XM````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -XM$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -XM``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -XM`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -XM````````^1`````````"`'%P`````` -XM``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -XM``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -XM````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -XM`````&(7`````````0!4`````````````````````"$1````````=A$````` -XM```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -XM````````)14````````!`%9$%0```````-X7`````````0!6```````````` -XM`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -XMWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -XM`-X7`````````0!<`````````````````````"$1````````?!$````````! -XM`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -XM````WA<````````!`%X`````````````````````$A<````````7%P`````` -XM``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -XM`````````````````+T1````````PA$````````!`%0#%0````````@5```` -XM`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -XM`````,05`````````0!0`````````````````````"$1`````````1,````` -XM```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -XMZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -XM``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -XM```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -XM5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -XM``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -XM````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -XM`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -XM```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -XM````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -XM`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -XM`````%@7`````````0!<`````````````````````"$1````````-A$````` -XM```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -XM````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -XM%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -XM#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -XM```T#@```````#H.````````+@X````````Q#@`````````````````````` -XM```````U$````````%,0````````W!````````#K$``````````````````` -XM``````````!W$````````(<0````````Q1````````#<$````````)40```` -XM````F!````````"+$````````)(0`````````````````````````````!(1 -XM````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -XM``,6````````U!8```````!/$@```````,`2```````````````````````` -XM`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -XM%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -XM``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -XM``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -XME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -XM````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -XM````````*18````````L%@````````,6````````'18````````````````` -XM````````````M1$```````#@$0```````/L4````````%14````````````` -XM````````````````X!$```````!$$@```````"L7````````.A<````````E -XM%0```````.05````````L10```````#[%````````,`2````````!10````` -XM````````````````````````X!$```````!$$@```````"L7````````.A<` -XM``````#3%0```````.05````````$P```````+$3 -XM````````NA,````````K$P```````*43````````'1,````````A$P`````` -XM``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -XM`````,`2````````YA(`````````````````````````````X!$```````!$ -XM$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -XM`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -XM``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -XM`````````````````````#$4````````L10````````0%P```````"L7```` -XM````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -XM`````````````````````````````#$4````````6!0````````7%P`````` -XM`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -XM`````+$4````````:A0```````!L%````````&04````````9Q0````````` -XM````````````````````CA0```````"Q%````````-06````````XQ8````` -XM````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -XM9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -XM4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -XM2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -XM;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -XM7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -XM`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -XM1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -XM96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -XM````B`,````````"````)````/S_________C0,````````*````"0```+8` -XM````````E0,````````"````)````/S_________O0,````````*````"0`` -XM`+8`````````]0,````````"````)@```/S_________$`0````````"```` -XM)P```/S_________;P0````````"````&@```/S_________LP0````````" -XM````&0```/S_________V@0````````"````&P```/S_________!@4````` -XM```"````'P```/S_________"P4````````*````"0```,``````````&@4` -XM```````"````(````/S_________'P4````````*````"0```-@````````` -XM*P4````````"````*````/S_________-04````````"````'P```/S_____ -XM____.@4````````*````"0```!X`````````204````````"````(````/S_ -XM________4P4````````"````'P```/S_________6`4````````*````"0`` -XM`.4`````````9P4````````"````(````/S_________<04````````"```` -XM'P```/S_________=@4````````*````"0```#<`````````A04````````" -XM````(````/S_________M04````````"````&@```/S__________@4````` -XM```"````*@```/S_________"P8````````"````(P```/S_________408` -XM```````"````'P```/S_________5@8````````*````"0```!X````````` -XM908````````"````(````/S_________;`8````````"````'P```/S_____ -XM____<08````````*````"0````,!````````@`8````````"````(````/S_ -XM________O08````````"````&0```/S_________T08````````"````&0`` -XM`/S_________/P<````````"````&P```/S_________=0<````````"```` -XM'P```/S_________>@<````````*````"0```!P!````````B0<````````" -XM````(````/S_________DP<````````"````'P```/S_________F`<````` -XM```*````"0```#H!````````IP<````````"````(````/S_________L0<` -XM```````"````'P```/S_________M@<````````*````"0```%@!```````` -XMQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -XM____;@@````````"````&P```/S_________LP@````````*````"P`````` -XM````````N@@````````"````+0```/S_________R0@````````"````'P`` -XM`/S_________S@@````````*````"0```',!````````W0@````````"```` -XM(````/S_________YP@````````"````'P```/S_________[`@````````* -XM````"0```%@!````````^P@````````"````(````/S_________$0D````` -XM```"````+P```/S_________*0D````````"````)P```/S_________>@D` -XM```````"````,````/S_________N`D````````"````'P```/S_________ -XMO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -XM____U@D````````"````'P```/S_________VPD````````*````"0```+D! -XM````````Z@D````````"````(````/S_________[PD````````*````"0`` -XM`*L!````````^PD````````"````(````/S_________,0H````````"```` -XM,@```/S_________5`H````````"````,P```/S_________:PH````````" -XM````-````/S_________E`H````````*````"0```-$!````````G@H````` -XM```"````(````/S_________MPH````````"````,0```/S_________YPH` -XM```````"````,0```/S_________0@L````````*````"0```+8````````` -XM:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -XM````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -XM````````JPL````````+````"0```.H!````````M`L````````+````"0`` -XM`/P!````````O0L````````+````"0````("````````X@L````````"```` -XM-0```/S_________\`L````````"````-@```/S_________(@P````````" -XM````,0```/S_________?PP````````"````)P```/S_________DPP````` -XM```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -XM```````"````.0```/S__________PP````````"````&0```/S_________ -XM'0T````````"````.@```/S_________5`T````````*````"0```+8````` -XM````?@T````````"````)@```/S_________DPT````````"````'````/S_ -XM________N`T````````*````"0```*8`````````T@T````````*````"0`` -XM`*X`````````$0X````````"````.````/S_________*@X````````"```` -XM.0```/S_________/@X````````"````'````/S_________3@X````````" -XM````&0```/S_________:PX````````"````.@```/S_________FPX````` -XM```"````)P```/S_________W`X````````"````.P```/S_________]PX` -XM```````"````*P```/S_________`0\````````"````(P```/S_________ -XM$`\````````"````'P```/S_________%0\````````*````"0```(X````` -XM````)`\````````"````(````/S_________*0\````````"````(P```/S_ -XM________20\````````"````'P```/S_________3@\````````*````"0`` -XM`#\"````````70\````````"````(````/S_________9P\````````"```` -XM'P```/S_________;`\````````*````"0```","````````>P\````````" -XM````(````/S_________A0\````````"````'P```/S_________B@\````` -XM```*````"0```(,"````````F0\````````"````(````/S_________HP\` -XM```````"````'P```/S_________J`\````````*````"0```&T"```````` -XMMP\````````"````(````/S_________O`\````````*````"0```*L!```` -XM````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -XM________U0\````````*````"0````@"````````Y`\````````"````(``` -XM`/S_________[@\````````"````'P```/S_________\P\````````*```` -XM"0```%4"`````````A`````````"````(````/S_________)A`````````" -XM````/````/S_________,1`````````"````/0```/S_________91`````` -XM```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -XM/0```/S_________UA0````````"````0P```/S_________-A4````````" -XM````0P```/S_________4!4````````"````,0```/S_________7!4````` -XM```"````-0```/S_________=!4````````"````0P```/S_________HA4` -XM```````"````0@```/S_________MQ4````````"````,0```/S_________ -XMP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -XM````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -XM________\14````````"````/@```/S_________)18````````"````*@`` -XM`/S_________0Q8````````"````1````/S_________9Q8````````"```` -XM'````/S_________>Q8````````"````.@```/S_________D18````````" -XM````10```/S_________JA8````````"````,P```/S_________VA8````` -XM```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -XM```````"````'P```/S_________&!<````````*````"0````,!```````` -XM)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -XM````-A<````````"````*````/S_________0!<````````"````'P```/S_ -XM________11<````````*````"0```)$!````````5!<````````"````(``` -XM`/S_________7A<````````"````'P```/S_________8Q<````````*```` -XM"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -XM````C0`````````*````%@```.4&````````E``````````*````%@```&<( -XM````````FP`````````*````%@```.(!````````H``````````*````%@`` -XM`'`&````````L``````````*````%@```/$'````````O0`````````*```` -XM%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -XM````%@```*T!````````V``````````*````%@```#H&````````]``````` -XM```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -XM```````*````%@```*\'````````%@$````````*````%@```'@$```````` -XM)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -XM````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -XM````````E@$````````*````%@```)P`````````I`$````````*````%@`` -XM`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -XM%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -XM`/H!````````HP<````````*````%@````@$````````L0<````````*```` -XM%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -XM````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -XM```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -XM```````*````%@```(X!````````(0@````````*````%@```+$&```````` -XM+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -XM````2P@````````*````%@```"T`````````:`@````````*````%@````D! -XM````````=@@````````*````%@```+8!````````A0@````````*````%@`` -XM`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -XM%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -XM````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -XM```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -XM```````*````%@```)\'````````=0D````````*````%@````D!```````` -XM@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -XM````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -XM````````PPD````````*````%@```!X&````````T@D````````*````%@`` -XM`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -XM%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -XM````%@```"4#````````3PH````````*````%@```,@#````````50H````` -XM```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -XM```````*````%@```*$"````````9PH````````*````%@```*(&```````` -XM=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -XM````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -XM````````S`H````````*````%@```"<"````````V@H````````*````%@`` -XM`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -XM%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -XM````%@```.L#````````1PL````````*````%@```-L&````````50L````` -XM```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -XM```````*````%@```$<"````````APL````````*````%@```%T!```````` -XME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -XM````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -XM````````]PL````````*````%@```%``````````!0P````````*````%@`` -XM`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -XM%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -XM````%@```)X%````````2PP````````*````%@```$L%````````60P````` -XM```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -XM```````*````%@```$(%````````@PP````````*````%@```/D'```````` -XMD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -XM````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -XM````````R@P````````*````%@```-<"````````V0P````````*````%@`` -XM`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -XM%@```)D'````````!@T````````*````%@```'('````````'`T````````* -XM````%@```'X(````````(PT````````!`````@``````````````*PT````` -XM```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -XM```````!`````@```'``````````>`T````````!`````@```"8"```````` -XM@`T````````*````$@``````````````E`T````````*````$@```#D````` -XM````H@T````````*````$@```((`````````IPT````````*````%@```-,# -XM````````L@T````````*````$@```+@`````````S@T````````*````%@`` -XM`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -XM`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -XM````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -XM```*````$@````@"````````*PX````````*````%@````$$````````-@X` -XM```````*````$@```%$"````````.PX````````*````%@```&H#```````` -XM2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -XM````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -XM````````=`X````````*````$@```+\"````````>0X````````*````%@`` -XM`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -XM$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -XM`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -XM```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -XM```````*````$@```),$````````V0X````````*````%@```,$````````` -XMY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -XM````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -XM````````*P\````````!`````@```)`%````````,P\````````!`````@`` -XM`(0&````````.P\````````*````$@```'X%````````30\````````*```` -XM$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -XM````$@```)8&````````<`\````````*````%@````$$````````>P\````` -XM```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -XM```````!`````@```)`&````````D@\````````!`````@```,D'```````` -XMF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -XM````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -XM````````T0\````````*````%@```+$&````````W`\````````*````$@`` -XM`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -XM`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -XM````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -XM```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -XM```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -XM````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -XM````````IQ`````````*````%@```#("````````LA`````````*````$@`` -XM`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -XM$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -XM`````@`````*````````[!`````````!`````@```*(*````````]!`````` -XM```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -XM```````*````%@```+$&````````%A$````````*````$@```"P,```````` -XM)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -XM````.A$````````*````%@```'D&````````11$````````!`````@```+`* -XM````````31$````````!`````@```-(*````````51$````````*````$@`` -XM`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -XM%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -XM````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -XM```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -XM```````*````$@```+L-````````NA$````````*````$@```/,-```````` -XMOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -XM````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -XM````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -XM``L`````````)1(````````*````%@```-0'````````,!(````````!```` -XM`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -XM````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -XM```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -XM```````*````%0``````````````>A(````````*````$@```&`/```````` -XMA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -XM````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -XM````````OA(````````*````%@```.4"````````VA(````````*````%@`` -XM`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -XM%@```/4#````````$!,````````*````%@````$$````````'1,````````* -XM````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -XM```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -XM```````*````$@```%H0````````5!,````````*````$@```*,0```````` -XM61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -XM````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -XM````````E!,````````*````%@````$$````````GA,````````*````$@`` -XM`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -XM%0```)``````````PA,````````*````$@```"82````````U!,````````* -XM````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -XM```*````%@```'H"````````'10````````*````%@```-T(````````)10` -XM```````!`````@```!`0````````+10````````!`````@```.L0```````` -XM-10````````*````$@```!03````````1Q0````````*````$@```'03```` -XM````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -XM````````;10````````*````%0```&`!````````?10````````*````$@`` -XM`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -XM$@```+X4````````H10````````*````$@```!H5````````J!0````````* -XM````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -XM```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -XM```````*````%@````$$````````,Q4````````*````%@```+@%```````` -XM6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -XM````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -XM````````O!4````````*````%@```"$"````````%!8````````*````%@`` -XM`!(!````````(18````````*````%@```'X%````````/18````````*```` -XM%@```,H$````````:18````````*````%@````$$````````?!8````````* -XM````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -XM```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -XM```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -XM\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -XM````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -XM````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -XM`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -XM$@````87````````9A<````````*````$@```$\7````````;Q<````````* -XM````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -XM```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -XM```````*````$@```-(8````````NA<````````*````%0```+`#```````` -XMT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -XM````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -XM`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -XM`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -XM%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -XM````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -XM```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -XM```````!`````@```#$4````````FA@````````*````$@```)X<```````` -XMI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -XM````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -XM````````S1@````````*````%0```+`&````````V1@````````*````$@`` -XM`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -XM%@```$\"````````Q0`````````!`````@``````````````'``````````* -XM````$```````````````(``````````!`````@``````````````-``````` -XM```*````$```````````````.``````````!`````@```'``````````7``` -XM```````*````$```````````````8``````````!`````@```#`"```````` -XMC``````````*````$```````````````D``````````!`````@```#`#```` -XM````K``````````*````$```````````````L``````````!`````@```*`# -XM````````Y``````````*````$```````````````Z``````````!`````@`` -XM`)`%````````#`$````````*````$```````````````$`$````````!```` -XM`@```)`&````````-`$````````*````$```````````````.`$````````! -XM`````@```-`'````````9`$````````*````$```````````````:`$````` -XM```!`````@`````)````````C`$````````*````$```````````````D`$` -XM```````!`````@`````*````````O`$````````*````$``````````````` -XMP`$````````!`````@```+`*````````W`$````````*````$``````````` -XM````X`$````````!`````@```.`*````````_`$````````*````$``````` -XM``````````(````````!`````@```"`+````````)`(````````*````$``` -XM````````````*`(````````!`````@```&`,````````9`(````````*```` -XM$```````````````:`(````````!`````@```!`0````````C`(````````* -XM````$```````````````D`(````````!`````@```/`0````````(``````` -XM```*`````@``````````````.``````````*`````@```'``````````6``` -XM```````*`````@```#`"````````@``````````*`````@```#`#```````` -XMF``````````*`````@```*`#````````R``````````*`````@```)`%```` -XM````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -XM````````,`$````````*`````@`````)````````4`$````````*`````@`` -XM```*````````>`$````````*`````@```+`*````````D`$````````*```` -XM`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -XM`````@```&`,``````````(````````*`````@```!`0````````(`(````` -XM```*`````@```/`0````````!@`````````*````!@``````````````!@`` -XM```````*````!@``````````````$``````````!`````@`````````````` -X` -Xend -f3eccedeeefe85afebc666fca5eb0742 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.err b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.out b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.sh deleted file mode 100644 index 5b484303..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-1/strip-debug-1.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-debug-1 tc/strip-debug-1 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} -g -o sections.o.1 sections.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/in/strip-debug-2.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/in/strip-debug-2.in.shar deleted file mode 100644 index 559b0f91..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/in/strip-debug-2.in.shar +++ /dev/null @@ -1,913 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# symbols.o.uu -# -echo x - symbols.o.uu -sed 's/^X//' >symbols.o.uu << 'END-of-symbols.o.uu' -Xbegin 644 symbols.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````,!C```` -XM`````````$```````$``&@`7``^V1P3`Z`0L`0^4P`^VP,,/MD<$P.@$A,`/ -XME,`/ML##54B)]5-(@^P(2(N?T````$B%VW4+ZR%(BUL(2(7;=!A(BS-(B>_H -XM`````(7`=>A(@\0(L`%;7<-(@\0(,](BU$02(MQ"+D`````Z`````!(BUPD,$B-M"2``0`` -XM2(M[$.@`````2(7`#X2O$@``2(M$)#A(C;0D0`$``$B+>!#H`````$B%P`^$ -XMD!(``$'V16P@#X7*!0``28M]&$B-M"08`@``Z`````"%P`^$)!8``$F+?2#H -XM`````(7`B40D1`^$T14``+X!````OS````#H`````$B%P$F)Q@^$U!4``+\` -XM`@``Z`````!(A<`/A-(5``!(B40D2,8``+X!````08M],(/'!XU'!X7_#TCX -XMP?\#2&/_Z`````!(A`/A;<.``"+ -XME"0``0``2(NT)!@"``!)BWT8Z`````!(AZ`````!(AT)#@!``!(A````!(A=L/A+$!``!!OP````#K#4B+6UA(A=L/ -XMA)P!``!,BP.Y"````$R)__Q,B<;SIG3@OP````"Y"````$R)QO.F=,^_```` -XM`+D*````3(G&\Z9TOD'V16P$=!!(BT-`2(/X"72M2(/X!'2G2(M[$.@````` -XM28N5B````$B)P4C!Z0,/MA0*B<�?3ZH/B`76`QX0DX`$```````!(QX0D -XMZ`$```````!(QX0D\`$```````#&A"3D`0```TB+>PCH`````(-\)$0!9HF$ -XM).8!```/A+$-``!)BU802(72#X2J$@``2(N,)+@```!).TXH#X8*#P``BX0D -XMX`$``(7`#X4##0``28M&*$B-!$#'!,(`````28M&*`^VE"3D`0``28M.$$B- -XM!$"(5,$$28M&*`^VE"3E`0``28M.$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$` -XM`$B-!$!(B53!"$F+1BA)BTX02(N4)/`!``!(C01`2(E4P1`/MXPDY@$``(U! -XM_V8]_OX/AV<,``!)BT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&28-&*`%( -XMBUM82(7;#X5D_O__2(-\)'``=%5(@WPD*`!T0S'2,?;K!)!(B?*)\$B+7"1P -XMB?'!^`.#X0=(F`^V!!C3Z*@!=!-(C035`````$D#17A)BU8H2`$02(/&`4@[ -XM="0H=<1(BWPD<.@`````,<"#?"1$`4F+5B!)BTU0#Y7`20-6*$B-!,40```` -XM2`^OPDB)02A)BT503(EP&$F+15A(BU0D4$B)4"A)BT582(M,)$A(B4@82(M$ -XM)#!(BU@82(-[*``/A;T"``!(@WL@``^%2P(``$B+3"0X2(MY$.@`````2(7` -XM2(G"#X3/$0``2,<``0```$C'0!``````N0$```!(BUPD.+X2````2(M#&$B) -XM0@A(BT,H2(V<),````#'0B`!````QT(D`0```$B)0AA(QX0DD`$````````Q -XMP$&#?10!2(M4)#`/E1!O0$` -XM``!,B?I$B>9(B=_H`````$PY^`^%^0P```^VA"3$`0``P.@$A,!%#T3U28/$ -XM`4F#Q0%).>QTD^O)2(M\)##H`````$B+?"0XZ`````!(@<0H`@``6UU!7$%= -XM05Y!7\/H`````(7`#X7H$```2(M4)#A$B;0DK`$``$B-M"2``0``2,>$)%`! -XM````````2,>$)'`!```!````2(M,)#!(BT(HQX0D1`$```,```!(QX0D2`$` -XM``````!(QX0D>`$```````#'A"1L`0```````,>$)&@!````````2(F$)&`! -XM``!(BWD0Z`````"%P'0>2(M<)#A(C;0D0`$``$B+>Q#H`````(7`#X4_____ -XMO______H`````+X`````2(G"OT8````QP.@`````2(M4)#!(BWH0Z`````!( -XMA!#H`````$B%P$B)P@^$(@\``$&#?10!#X3A"@``2,<`"````$C'0!`````` -XM2(M#$$B)0@A(BT,HQT(@$@```,=")`$```!(C01`2,'@`TB)0ACIZ?S__TB+ -XM?"0HO@@```#H`````$B%P$F)17@/A%8.``!(BU0D*+X!````2(/"!TC!Z@-( -XMB==(B90D@````.@`````2(7`2(E$)'@/A"8.``!(BTPD>#'V2(G?2(E,)'#H -XM`````$B%P$B)1"1H#X1:#0``2(V<).`!``!(C80DP````$B-E"3``0``2(V, -XM)``"``!(QT0D6$````!(QX0DN````$````!(QT0D4`$```!!OP`"``!(QX0D -XMJ`````````!(QX0DL`````````!(B5PD&$B)1"002(D4)$B)3"0(BX0DL``` -XM`$B+?"1H2(V4).`!``")QHF$)*0```#H`````$@[1"08#X4;"@``BY0DX`$` -XM`$F+?1A(BW0D8.@`````2(7`2(G%#X3!!@``2(G&3(GOZ`````"%P`^%YP`` -XM`$F+G<````!(A=MU"^M)2(M;"$B%VW1`2(LS2(GOZ`````"%P'7H2(.$)+`` -XM```!2(N$)+````!(.40D*`^$[_C__TB+G"2P````2(F<)*@```#I2/___P^W -XME"3F`0``C4+_9CW^_G<.28M%<`^WTDB#/-``=+!!@WUH`72I28N5@````$B% -XMT@^$F`D``(N$)*0```!$BZ0DI````,'X`T&#Y`=(8]A$B>$/M@03T^BH`74T -XM0?9%;`0/A0L"``!!BT5H@_@$#X1;____@_@"=1$2)X;@!````T^`(!!I)BU5X28M&($B+C"2H````2(D$ -XMRH-\)$0!#X3*`0``2(V\).`!``#H%O3__X7`#X24`@``28M6$$B%T@^$E0<` -XM`$B+A"2X````23M&*`^&!P4``(N\).`!``"%_P^$C@,``(!]```/A(0#``!) -XMBT8HBTPD4$B-!$")#,))BT8H#[:4).0!``!)BTX02(T$0(A4P01)BT8H#[:4 -XM).4!``!)BTX02(T$0(A4P05)BT8H28M.$$B+E"3H`0``2(T$0$B)5,$(28M& -XM*$F+3A!(BY0D\`$``$B-!$!(B53!$`^WC"3F`0``C4'_9CW^_@^&,P,``$F+ -XM1BA)BU802(T$0&:)3,(&28-&*`$/MH0DY`$``(/@#X/X`P^$D0(``(!]```/ -XMA-G]___K'DB+?"1(30'_3(G^Z`````!(A<`/A`@$``!(B40D2$B)[^@````` -XM2(M4)%!(B<%(`<))C4?_2#G"<\9(BUPD2$@#7"102(G*2(GN2(G?Z`````!( -XMB>_H`````$B)[\8$`P#H`````$B+7"102(U<`P%(B5PD4.E=_?__2(V\).`! -XM``#H@_+__X7`#X4W_O__#[:$).0!``#`Z`0\`@^%S?W__TF+57A)BT8H2(N< -XM)*@```!(B03:@WPD1`$/A3;^__](C;PDX`$``.A,\O__A<`/A$@"``!)BQ9( -XMA=(/A-\(``!(BX0DN````$D[1B@/ADH%``!$BXPDX`$``$6%R70*@'T```^% -XM&00``$F+1BA(P>`$QP00`````$F+1B@/MI0DY`$``$F+#DC!X`2(5`@,28M& -XM*`^VE"3E`0``28L.2,'@!(A4"`U)BT8H28L.2(N4).@!``!(P>`$B50(!$F+ -XM1BA)BPY(BY0D\`$``$C!X`2)5`@(#[>,).8!``"-0?]F/?[^#X8Q`P``28M& -XM*$F+%DC!X`1FB4P0#ND[_O__28M6&$B%T@^$H@4``$B+1"1823M&(`^&/0(` -XM`(NT).`!``"%]@^$Z0```(!]```/A-\```!)BT8@BTPD4$B-!$")#,))BT8@ -XM#[:4).0!``!)BTX82(T$0(A4P01)BT8@#[:4).4!``!)BTX82(T$0(A4P05) -XMBT8@28M.&$B+E"3H`0``2(T$0$B)5,$(28M&($F+3AA(BY0D\`$``$B-!$!( -XMB53!$`^WC"3F`0``C4'_9CW^_@^&@0```$F+1B!)BU882(T$0&:)3,(&28-& -XM(`$/MH0DY`$``(/@#X/X`P^%;_W__P^WE"3F`0``28M%<$B+#-"X`0```$B) -XMRH/A!TC!Z@-)`Y6(````T^`(`NE`_?__28M&($B-!$#'!,(`````Z1S___]) -XMBT8H2(T$0,<$P@````#I=_S__TF+17!)BU8@#[?)28MV&$B+!,A(C1129HE$ -XMU@;I;____TF+17!)BU8H#[?)28MV$$B+!,A(C1129HE$U@;IO?S__TF+5@A( -XMA=(/A+\&``!(BUPD6$D[7B`/AC(#``!$BX0DX`$``$6%P'0*@'T```^%OP$` -XM`$F+1B!(P>`$QP00`````$F+1B`/MI0DY`$``$F+3@A(P>`$B%0(#$F+1B`/ -XMMI0DY0$``$F+3@A(P>`$B%0(#4F+1B!)BTX(2(N4).@!``!(P>`$B50(!$F+ -XM1B!)BTX(2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&Q@```$F+ -XM1B!)BU8(2,'@!&:)3!`.Z8'^__](QT0D8`````#I$/+__T@!P$B)UTB--$!( -XMB40D6$C!Y@/H`````$B%P$B)PDF)1A@/A9O]__^^`````+]&````,<#H```` -XM`$@!P$B)UTB--$!(B80DN````$C!Y@/H`````$B%P$B)PDF)1A`/A<[Z___K -XMPK______Z`````"^`````$B)PK]&````,<#H`````+______Z`````"^```` -XM`$B)PK]&````,<#H`````$F+17!)BU8@#[?)28MV"$B+!,A(P>($9HE$,@[I -XML/W__TF+17!)BU8H#[?)28LV2(L$R$C!X@1FB40R#NG_^O__28M&*$F+5A!( -XMC01`9HE,P@;IG_/__X!]```/A//R__])BT8HBTPD4$B-!$")#,+I[O+__TF+ -XM1B"+3"102,'@!(D,$.D\_O__28M&*(M,)%!(P>`$B0P0Z>+[__](QP`$```` -XM2(M#*$C!X`1(B4(02(M#"$B)0@A(BT,@QT(@$@```,=")`$```!(P>`$2(E" -XM&.GU\___28L62(72#X0Q!@``2(N,)+@```!).TXH#X9]!```BXPDX`$``(7) -XM#X3[````@'T```^$\0```$F+1BB+3"102,'@!(D,$$F+1B@/MI0DY`$``$F+ -XM#DC!X`2(5`@,28M&*`^VE"3E`0``28L.2,'@!(A4"`U)BT8H28L.2(N4).@! -XM``!(P>`$B50(!$F+1BA)BPY(BY0D\`$``$C!X`2)5`@(#[>,).8!``"-0?]F -XM/?[^#X:-`0``28M&*$F+%DC!X`1FB4P0#NE3\O__2`'`2(G72(G&2(F$)+@` -XM``!(P>8$Z`````!(A`$2(E"&.D-\O__2(M<)%A(C3Q;2,'G -XM`^@`````2(7`2(G"28E&&`^%2_K__^E=____9F9FD+______Z`````"^```` -XM`$B)PK]&````,<#H`````+______Z`````"^`````$B)PK]&````,<#H```` -XM`$F+17!)BU8H#[?)28LV2(L$R$C!X@1FB40R#NF[\/__2(N\)(````"^`0`` -XM`.@`````2(7`28F%@`````^$[0(``$F+?1A(C;0D$`(``.@`````A<`/A"$# -XM``!%,>1)BWT83(GFZ`````!(A_H```` -XM`(7`#X5U____28M%4(N<).@```!(BW@(Z`````!(.<-(QX0DD`````````!( -XMQX0DF``````````/A4#___](BXPDD````$@[C"3@````#X.O`@``2(NT))@` -XM``!,B>?H`````$B%P$B)A"28````#X2.`@``2(N4))@```!(BT(8,=)(][0D -XM^````(7`2(G#?JS'A"2,`````````(.\),0````)#X2@`@``B[0DC````$B+ -XMO"28````2(V4),`!``#H`````$@[!"0/A;$"``"+A"3,`0``2(F$))````!( -XM@[PDD``````/E8$Z`````!(A<#Z`````!(A`````((!0`````#``````(ZB@````((!P`````""`0``````@0$```` -XM``,``````E)_````!0@'!@@"`08``````P`````#3VT````#``````-90@`` -XM``,``````UY;`````P`````#8W\````'"*\````'".X````(KP````,````` -XM`^B?`````@@%``````,`````!";,`````P`````$)\$````#``````0JS``` -XM``D0!+>#`0``"@`````$N!L!```"(P`*``````2Y!0$```(C!`H`````!+H; -XM`0```B,("@`````$NS0````"(PP*``````2\-`````(C#0H`````!+T0`0`` -XM`B,.``,`````!+XF`0```P`````%)M<````#``````4GP0````,`````!2C7 -XM`````P`````%*K8````#``````4KS`````,`````!2W7````"4`%564"```* -XM``````56N@$```(C``H`````!5BZ`0```B,$"@`````%6<4!```"(P@*```` -XM``5:C@$```(C$`H`````!5ND`0```B,8"@`````%7,4!```"(R`*``````5= -XMN@$```(C*`H`````!5ZZ`0```B,L"@`````%7\4!```"(S`*``````5@Q0$` -XM``(C.``#``````5AT`$```D0!8.5`@``"@`````%A(X!```"(P`*``````6% -XMQ0$```(C"``#``````6&<`(```D8!8G3`@``"@`````%BHX!```"(P`*```` -XM``6+Q0$```(C"`H`````!8RO`0```B,0``,`````!8V@`@``"1@%OCL#```* -XM``````6_N@$```(C``H`````!<`T`````B,$"@`````%P30````"(P4*```` -XM``7"F0$```(C!@H`````!<..`0```B,("@`````%Q,4!```"(Q```P`````% -XMQ=X"```+16QF``8F40,```P``````0,`````!B=B`P``#``````!#00&-@$$ -XM```.```````.``````$.``````(.``````,.``````0.``````4.``````8. -XM``````<.``````@.``````D.``````H.``````L.``````P.``````T.```` -XM``X.``````\.`````!`.`````!$.`````!(.`````!,.`````!0.`````!4. -XM`````!8.`````!<``P`````&3V@#```)"`9X(P0```H`````!GBN!````B,` -XM``\`````0`9HK@0```H`````!FS7`````B,`"@`````&;:T````"(P@*```` -XM``9NUP````(C$`H`````!F_7`````B,8"@`````&<`$$```"(R`*``````9Q -XM9@````(C)`H`````!G:T!````B,H"@`````&=V8````"(S`*``````9X#`0` -XM``(C.``'"",$```'"%<#```#``````9Y(P0```,`````!S!E`@```P`````' -XM,3L#```#``````@````"(P`*``````@JZ`````(C"`H`````""OH`````B,0"@`````( -XM+.@````"(Q@0861D``@N5`````(C(`H`````""]4`````B,D"@`````(,%0` -XM```"(R@*``````@Q5`````(C+`H`````"#)4`````B,P"@`````(,U0````" -XM(S0*``````@T5`````(C.`H`````"#8W!0```B-```<(3@4```D("#\@!@`` -XM"@`````(/V4&```"(P``#P`````@"#IE!@``"@`````(.^(````"(P`*```` -XM``@\X@````(C"`H`````"#WS`````B,0"@`````(/PD&```"(Q@`!P@@!@`` -XM"1`(49`&```*``````A17@<```(C``H`````"%%D!P```B,(``\`````>`A# -XM7@<```H`````"$3H`````B,`$&ES``A%M`0```(C"!!O!P``"1`(4H\'```*``````A2 -XM7@<```(C``H`````"%)D!P```B,(``\`````$`A>N`<```H`````"%Y>!P`` -XM`B,`"@`````(7F0'```"(P@`"0@(7\\'```*``````A?/@@```(C```/```` -XM`$`(5CX(```0;V9F``A7UP````(C`!!F@`(6=<` -XM```"(Q`*``````A:UP````(C&`H`````"%Q4`````B,@"@`````(7H\'```" -XM(R@*``````A?N`<```(C.``'",\'```/`````#`(8Z4(```0;#,R``ADI0@` -XM``(C`!!G,S(`"&6E"````B,($&PV-``(9JL(```"(Q`09S8T``AGJP@```(C -XM&!!N9W,`"&CS`````B,@$&YL!P```B,`"@`` -XM```(L60'```"(P@`#P````#P"&Z5"P``"@`````(;^@````"(P`*``````AR -XM5`````(C"`H`````"'-4`````B,,$&EE8P`(=50````"(Q`0;V5C``AV5``` -XM``(C%!!E:6X`"'>5"P```B,8"@`````(>)4+```"(R`*``````AZ5`````(C -XM*`H`````"'M4`````B,L$&YO -XM!P```B-8"@`````(BUX'```"(V`*``````B3L0@```(C:`H`````")M4```` -XM`B-L"@`````(GIL+```"(W`*``````BAFPL```(C>`H`````"*2A"P```R.` -XM`0H`````"*>A"P```R.(`0H`````"*G8"````R.0`0H`````"*H#"0```R.@ -XM`0H`````"*LN"0```R.P`0H`````"*U9"0```R/``0H`````"*^$"0```R/0 -XM`0H`````"+&I"0```R/@`0`'"$8#```'"-<````'"#0````1``````%!`50` -XM`````````````````````````G<(U@L``!)S``%`U@L```%5``<(T`0``!$` -XM`````4L!5``````````````````````````"=P@+#```$G,``4K6"P```54` -XM$P$``````7,"`50``````````````````````````````&`,```496-P``%R -XM`F`,````````%0`````!<@+H`````````!9S``%T`C$%``````````<(S@D` -XM`!VA"P``&VES:``![L4$```;?,````<``````%[ -XMZ````!MD``%\!@X``!MS``%]M`0``!MR``%^VP0``!MR80`!?^8$```;6T``3P"T`0``!AO9``!/0(&#@``(P`` -XM```!/@+,````&'-C``$_`O,````C``````%``E0````8:0`!0`)4`````"0! -XM``````'*`0$``````````````````````````!1E8W```0`!S@'%!````Y&@?B5S:'0``!^+-<.```#D>!\*N$.```````` -XM*NH.````````*O4.````````*@`/````````*PD/`````#(5#P````````%I -XME!(``"@Z#P``,#$/````````*"8/```S1`\````````````````````````! -XMURA5#P`````S7P\````````````````````````!;RAP#P```````"YZ#P`` -XM``````$E`BB,#P``*0`````LE@\```.1X'PLH@\```.1X'XJK@\````````J -XMN0\````````KQ0\``"K0#P```````"O<#P```````*D#```"`*`````!`?L. -XM"@`!`0$!`````2]U7,`+W5S6UB;VQS+F,`````7W1Y<&5S+F@``0``='EP -XM97,N:``"``!E;&8S,BYH``(``&5L9C8T+F@``@``;&EB96QF+F@``P``9V5L -XM9BYH``,``&5L9F-O<'DN:`````````D"```````````#P``!YR'G`Z($'9`( -XM9.9",`-Z<3$#:P@=TSQ2/,@Z"+C=`W`(F],\4CS(.@BXW0/K?@B;`PDK`W=5 -XM""..C\8(CPC6"-<#FWZI"(((2PB@"',["-0XR5:# -XMO'HO"#H(/`(D$PA85H(#(XT('CA6`\H``B0!`B40`C43"&>.",:JN+B!CE2` -XM9@-L`M4!`0,9Q8`('G`L"!X(872>`B81@,8#(,6.`Q2I`Q6I")!R`PM_`W95 -XM`PI5`W95@`,M1P-4?W)O2[AR5`@L2E.JM8(#)(T#7%4#)'\"(A0(@-0X.JH( -XM9@A[`Y5_<9P#UP";`QL('58#5W]1`PM_`W=_N+\#>55(JKBXJJ2&R`C&`T<( -XMQ0B0L7+P@$AR;P->_0A*L7*`@$AR;P/C?OWB.$AE"/XX5F)84E@#L'X(FP,B -XM?P-Z?P.T`7\#L'X"00$#(E4#>D<#MP%5>0-XX7GR`^Q]".\#JP0(*PAD`Y1^ -XMX0-0C0-Y""L#_GT(1PC7=`/I`.\")A8#EG^IR`-)50.^`@AC`BX0"!X(/*\( -XM2`,)`M0!`0@\NU0Z@(Q3"*\(``$!`"1&"!I;F1E>`!R96%L;&]C(&9A:6QE9``N&!HP%````````%``````````!>E(``7@0`0,, -XM!PB0`0``%````!P`````````$```````````````%````#0`````````$``` -XM````````````'````$P`````````00````!!#A"&`D0.&$0.((,#```4```` -XM;`````````!F`````$X.((8"@P,4````A`````````!F`````$X.((8"@P,T -XM````G`````````#Z%P```$(.$$<.&$(.((T$C@./`D4.*$$.,$$..$<.X`2# -XM!X8&C`4``````"``````````(0`````````"`'<((0`````````E```````` -XM``(`=Q`E`````````"D``````````@!W&"D`````````80`````````"`'<@ -XM`````````````````````"``````````-P`````````!`%5``````````$8` -XM`````````0!56`````````!A``````````$`50`````````````````````@ -XM`````````#4``````````0!4-0````````!7``````````$`5E@````````` -XM8``````````!`%9@`````````&$``````````0!4```````````````````` -XM`#``````````5@`````````!`%-8`````````%\``````````0!3```````` -XM`````````````'``````````?@`````````"`'<(?@````````#6```````` -XM``(`=R``````````````````````<`````````"&``````````$`588````` -XM````P``````````!`%;%`````````-8``````````0!6```````````````` -XM`````'``````````C@`````````!`%2.`````````+L``````````0!3Q0`` -XM``````#6``````````$`4P````````````````````#@`````````.X````` -XM`````@!W".X`````````1@$````````"`'<@`````````````````````.`` -XM````````]@`````````!`%7V`````````#`!`````````0!6-0$```````!& -XM`0````````$`5@````````````````````#@`````````/X``````````0!4 -XM_@`````````K`0````````$`4S4!````````1@$````````!`%,````````` -XM````````````4`$```````!2`0````````(`=PA2`0```````%D!```````` -XM`@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(`=R!@ -XM`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0```````!% -XM%`````````$`4488````````4!@````````!`%$````````````````````` -XM;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``````` -XM`%`8`````````0!1`````````````````````-\#````````KP4````````! -XM`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1```` -XM````*!$````````!`%/2$0````````82`````````0!3:!(````````T$P`` -XM``````$`4XX3````````I!,````````!`%/)$P```````!`4`````````0!3 -XMK!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`````` -XM`)@7`````````0!3I1@```````#*&`````````$`4P`````````````````` -XM``##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1D'S$ -XM"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R.%``` -XM`````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`````` -XM`.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````````` -XM````````V`,```````"U!P````````,`D8A\R0<```````!I"0````````,` -XMD8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,`D8A\ -XMCA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\PA<` -XM``````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```````` -XM`````````````(@"````````WP,````````!`%-I"0```````-\)```````` -XM`0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q%P`` -XM`````&X7`````````0!3F!<```````"I%P````````$`4\`7````````ZA<` -XM```````!`%,`````````````````````B@(```````"U!P````````,`D;A_ -XMR0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_*!@` -XM``````!*&0````````,`D;A_`````````````````````%P$````````9@0` -XM```````!`%``````````````````````_P(```````"U!P````````,`D8!\ -XMR0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\CA0` -XM``````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```````` -XM`````````````,\#````````M0<````````#`)'8?,D'````````:0D````` -XM```#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````````# -XM`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````#`)'8 -XM?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8?-(/ -XM````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0```` -XM````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```````` -XMD1$````````#`)'8?)$1````````LA$````````#`)'X>[(1````````!A(` -XM```````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,````` -XM```#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````````# -XM`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````#`)'8 -XM?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8?$87 -XM````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7```` -XM````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````````` -XM``````````#8`P```````+4'`````````P"1\'O)!P```````&D)```````` -XM`P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.`````````P"1 -XM\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1\'L4 -XM$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT$P`` -XM`````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``````` -XM`#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P```````,`7 -XM`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9```` -XM`````P"1\'L`````````````````````V`,```````#N`P````````$`7YD% -XM````````00<````````!`%^H"````````&D)`````````0!?&PH```````#A -XM$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```````` -XM`0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0%``` -XM`````&P4`````````0!?CA0```````"L%`````````$`7\P4`````````Q<` -XM```````!`%]5%P```````&X7`````````0!?J1<```````#`%P````````$` -XM7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@````` -XM``!*&0````````$`7P````````````````````"*`@```````/`"```````` -XM`0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4```` -XM````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````````` -XM```````````3`@```````+4'`````````P"1Y'O)!P```````&P4```````` -XM`P"1Y'N.%````````$H9`````````P"1Y'L`````````````````````!@,` -XM```````N`P````````$`4(L#````````I`,````````!`%#8`P```````/`# -XM`````````0!5_0,````````(!`````````$`59D%````````\04````````! -XM`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\)```` -XM````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!:%P`` -XM``````$`59@7````````I!<````````!`%#`%P```````,(7`````````0!0 -XMPA<```````#'%P````````$`50````````````````````"O!0```````/8% -XM`````````0!2`````````````````````)<*````````GPH````````!`%3$ -XM"@```````,D*`````````0!5`````````````````````-@#````````WP,` -XM```````!`%.N"@```````/$*`````````0!3_@H```````!-"P````````$` -XM4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<````` -XM``#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88```` -XM`````0!3`````````````````````&X)````````>`D````````!`%4````` -XM````````````````51$```````!?$0````````$`5&D5````````;!4````` -XM```!`%!L%0```````'H5`````````0!4`````````````````````-@#```` -XM````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```````` -XMX1`````````#`)&X?.\0````````;!0````````#`)&X?(X4````````,1<` -XM```````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<````` -XM```#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````````# -XM`)&X?``````````````````````T"P```````$,+`````````0!<51$````` -XM``"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7```` -XM`````0!`T````````!`%4*%0````````X5`````````0!551<` -XM``````!:%P````````$`5;`7````````LA<````````!`%"R%P```````,`7 -XM`````````0!5PA<```````#'%P````````$`5988````````F!@````````! -XM`%"8&````````*48`````````0!5`````````````````````-@#```````` -XMM0<````````#`)&L?,D'````````:0D````````#`)&L?$8*````````X1`` -XM```````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<````` -XM```#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````````# -XM`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````#`)&L -XM?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`````` -XM`&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@```````&,* -XM`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``````` -XM``,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P````````,` -XMD<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,`D<1\ -XM*!@```````!*&0````````,`D<1\`````````````````````$,'```````` -XMM0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``````` -XM``$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3RA@` -XM``````#7&`````````$`4P````````````````````!&!P```````+4'```` -XM`````0!>R0<```````#8!P````````$`7ML'````````J`@````````!`%Z. -XM%````````*P4`````````0!>51<```````!N%P````````$`7LH8```````` -XMUQ@````````!`%X`````````````````````X@<````````>"`````````$` -XM4%47````````6A<````````!`%7*&````````-<8`````````0!0```````` -XM`````````````&,````"```````%$P``"PP``&QO;VMU<%]K965P7W-Y;6QI -XM1,```````!\$P`` -XM`````&L3`````````D```````"*"0```````,X%```````` -XM/@8```````"Z!0```````+P%````````I`0```````"S!0```````%($```` -XM````FP0````````R!````````$D$````````B0,`````````!````````&@# -XM````````;@,```````!B`P```````&4#````````00,```````!*`P`````` -XM`#0#````````-@,````````N`P```````#$#````````(`,````````B`P`` -XM``````0#````````&`,```````#:`@```````.`"````````U`(```````#7 -XM`@```````+,"````````O`(```````"B`@```````*@"````````G`(````` -XM``"?`@```````&X"````````?@(````````^`@```````$\"````````+@(` -XM```````T`@```````"@"````````*P(````````3`@```````!D"```````` -XM#0(````````/`@````````````````````````````#?"0```````/<)```` -XM````UQ@```````!*&0```````&08````````I1@````````H&````````$88 -XM````````PA<```````#J%P```````*D7````````P!<```````#,%``````` -XM`+<6````````51$```````!S$0```````'`-````````F`T```````#^"@`` -XM`````(X+````````E`H```````#-"@```````#@*````````1@H````````` -XM````````````````````WPD```````#W"0```````-<8````````2AD````` -XM``!D&````````*48````````*!@```````!&&````````,(7````````ZA<` -XM``````"I%P```````,`7````````S!0```````"W%@```````%41```````` -XMA4` -XM``````!^%0```````&P5````````F4`=6YS:6=N -XM960@:6YT`$5,1E]47TY530!%;&8S,E]7;W)D`&ES7V1E8G5G7W-Y;6)O;`!3 -XM5%))4%]!3$P`@!D7W-C;@!T<65?;F5X=`!%;&8S,E]! -XM9&1R`$5,1E]47U-85T]21`!%;&9?4V-N`'-Y;6YD>`!I6U?:V5E<`!%3$9?5%]214P`61A=&$`6UB;VP`;G-Y -XM;7,`87!P96YD`'-E8U]H96%D`$5,1E]47UA73U)$`$5L9C,R7U-Y;0!S='%H -XM7V9I0!?7W5I;G0Q-E]T`$5,1E]4 -XM7U-934E.1D\`4U1225!?3D].1$5"54<`9W-Y7V-A<`!V7W-A9&0`7!E`$5,1E]47U-930!C -XM86QC7VYO;FQO8V%L`$5L9C8T7U-Y;0!S96-N9'@`16QF7U1Y<&4`6UB;VP`6UB=68`16QF-C1?6'=O6UL:7-T`$5L9C,R7TAA;&8` -XM=E]S86,`14Q&7U1?3D]410!%;&8V-%]/9F8`861D7W1O7W-TF4`96QF97)R`&-R96%T95]S>6UT -XM86(`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0`6T``!PF4`:7-?'=O6UT86(`+G-T6UB;VP`:7-?;&]C86Q? -XM`!G -XM96QF7V=E=&-L87-S`&-A;&QO8P!E;&9?;F5X='-C;@!E;&9?1$````````"````*@```/S_________?A$` -XM```````*````"@```(P`````````C1$````````"````%P```/S_________ -XM2A,````````"````*P```/S_________=1,````````"````*P```/S_____ -XM____M1,````````"````%@```/S_________RA,````````*````"@```'X` -XM````````UA,````````"````+@```/S_________]Q,````````"````*P`` -XM`/S_________4Q0````````"````%@```/S_________=A0````````"```` -XM*@```/S_________>Q0````````*````"@```"(`````````BA0````````" -XM````%P```/S_________E!0````````"````*@```/S_________F10````` -XM```*````"@````(!````````J!0````````"````%P```/S_________VA0` -XM```````"````'@```/S_________^Q0````````"````'````/S_________ -XM$A4````````"````'P```/S_________+A4````````"````&P```/S_____ -XM____8A4````````"````(````/S_________=A4````````"````+P```/S_ -XM________B14````````"````,````/S_________I14````````"````(0`` -XM`/S_________[!4````````"````)@```/S_________3Q8````````"```` -XM,0```/S_________DA8````````*````"@```$8!````````F18````````" -XM````,@```/S_________Q!8````````"````%@```/S_________ZA8````` -XM```"````%@```/S_________&1<````````"````*P```/S_________,A<` -XM```````"````(@```/S_________5A<````````"````*@```/S_________ -XM6Q<````````*````"@```.L`````````:A<````````"````%P```/S_____ -XM____?Q<````````"````%@```/S_________F1<````````*````"@```-`` -XM````````I1<````````"````%P```/S_________JA<````````"````(@`` -XM`/S_________PQ<````````"````*@```/S_________R!<````````*```` -XM"@```+D`````````UQ<````````"````%P```/S_________W!<````````* -XM````"@```'``````````YA<````````"````+@```/S_________\!<````` -XM```"````*@```/S_________]1<````````*````"@```%<`````````!!@` -XM```````"````%P```/S_________"1@````````*````"@```'`````````` -XM%1@````````"````+@```/S_________&A@````````*````"@```'X````` -XM````)!@````````"````+@```/S_________+A@````````"````*@```/S_ -XM________,Q@````````*````"@```#P`````````0A@````````"````%P`` -XM`/S_________3!@````````"````*@```/S_________41@````````*```` -XM"@```'0!````````8!@````````"````%P```/S_________D!@````````" -XM````(@```/S_________LA@````````"````%@```/S_________[Q@````` -XM```"````,P```/S_________%!D````````"````*@```/S_________&1D` -XM```````*````"@```"\!````````*!D````````"````%P```/S_________ -XM,AD````````"````*@```/S_________-QD````````*````"@```!D!```` -XM````1AD````````"````%P```/S_________!@`````````*````!0`````` -XM````````#``````````*````$0```%`'````````$0`````````*````$0`` -XM`'`#````````%0`````````*````$0```*(%````````&0`````````!```` -XM`@``````````````(0`````````!`````@```$H9````````*0`````````* -XM````!P``````````````,``````````*````$0```.,&````````-P`````` -XM```*````$0```$T&````````/@`````````*````$0```%<%````````0P`` -XM```````*````$0```,0!````````4``````````*````$0````<'```````` -XM7``````````*````$0```%L&````````:0`````````*````$0```&8````` -XM````;@`````````*````$0```,P$````````>P`````````*````$0```&D% -XM````````@``````````*````$0```'("````````C0`````````*````$0`` -XM``H&````````E``````````*````$0```'`'````````FP`````````*```` -XM$0```&(!````````H``````````*````$0```+\%````````L@`````````* -XM````$0````X#````````MP`````````*````$0```!0"````````P@`````` -XM```*````$0```.8$````````S0`````````*````$0```#0!````````V``` -XM```````*````$0```)D%````````]``````````*````$0````T"```````` -XM`0$````````*````$0```,0#````````!@$````````*````$0```+\````` -XM````$0$````````*````$0```.4#````````'`$````````*````$0```'T` -XM````````+P$````````*````$0```+H'````````/0$````````*````$0`` -XM`*D&````````2P$````````*````$0```+(&````````60$````````*```` -XM$0```!P&````````9P$````````*````$0```#H%````````=0$````````* -XM````$0```$@%````````A`$````````*````$0```)D!````````CP$````` -XM```*````$0``````````````F@$````````*````$0```(8"````````I0$` -XM```````*````$0````$$````````L`$````````*````$0```$,'```````` -XMNP$````````*````$0```)X'````````Q@$````````*````$0```*X#```` -XM````V0$````````*````$0```-8$````````YP$````````*````$0```"0& -XM````````]0$````````*````$0```)<&`````````P(````````*````$0`` -XM`,@%````````$0(````````*````$0```(T$````````'P(````````*```` -XM$0```#`$````````+0(````````*````$0```)$%````````.P(````````* -XM````$0```$@#````````20(````````*````$0```)$'````````5P(````` -XM```*````$0```+<"````````9@(````````*````$0```,('````````>0(` -XM```````*````$0```#$%````````AP(````````*````$0```-@"```````` -XME@(````````*````$0```.\$````````J0(````````*````$0```#$%```` -XM````MP(````````*````$0```-@"````````Q0(````````*````$0```"P& -XM````````U`(````````*````$0```(8%````````YP(````````*````$0`` -XM`+H'````````]0(````````*````$0```!P&`````````P,````````*```` -XM$0```#H%````````$0,````````*````$0```$@%````````'P,````````* -XM````$0```*D&````````+0,````````*````$0```+(&````````/`,````` -XM```*````$0```#L"````````4@,````````*````$0```",'````````6`,` -XM```````*````$0```-<`````````8P,````````*````$0```*D$```````` -XM<0,````````*````$0```)X$````````=P,````````*````$0```%,$```` -XM````?0,````````*````$0```!,#````````@P,````````*````$0```,X" -XM````````B0,````````*````$0```-(#````````CP,````````*````$0`` -XM`*D'````````E0,````````*````$0````(#````````FP,````````*```` -XM$0```$,`````````H0,````````*````$0```,("````````IP,````````* -XM````$0```/8#````````K0,````````*````$0```+H#````````LP,````` -XM```*````$0```&8&````````N0,````````*````$0````0!````````OP,` -XM```````*````$0````("````````Q0,````````*````$0```'L$```````` -XMRP,````````*````$0````P%````````T0,````````*````$0```,H````` -XM````UP,````````*````$0```,\!````````W0,````````*````$0```"," -XM````````XP,````````*````$0```.0%````````Z0,````````*````$0`` -XM`.\&````````[P,````````*````$0```&D$````````]0,````````*```` -XM$0```(T!````````^P,````````*````$0```',``````````@0````````* -XM````$0```$P"````````%00````````*````$0```'P%````````)`0````` -XM```*````$0```'(%````````,`0````````*````$0```/@%````````/@0` -XM```````*````$0```%X$````````3`0````````*````$0```+D%```````` -XM6@0````````*````$0```%\`````````:`0````````*````$0```!P"```` -XM````=@0````````*````$0```-,&````````A`0````````*````$0```+`` -XM````````D@0````````*````$0```((&````````H`0````````*````$0`` -XM`)H#````````NP0````````*````$0```'$&````````Q@0````````*```` -XM$0```%@!````````T00````````*````$0```'T"````````W`0````````* -XM````$0```",%````````YP0````````*````$0```'<'````````^@0````` -XM```*````$0```'P%````````"04````````*````$0```-T#````````%04` -XM```````*````$0```-\%````````(P4````````*````$0````X!```````` -XM0`4````````*````$0```'P%````````3P4````````*````$0```!@%```` -XM````6P4````````*````$0```-\%````````:04````````*````$0```)<$ -XM````````=P4````````*````$0```-X$````````A04````````*````$0`` -XM`"\#````````H04````````*````$0```'T!````````KP4````````*```` -XM$0```'H#````````O04````````*````$0```!\!````````RP4````````* -XM````$0```%$%````````V04````````*````$0```#4`````````YP4````` -XM```*````$0```),#````````]04````````*````$0```.\%````````$@8` -XM```````*````$0```'P%````````(08````````*````$0```!`P` -XM```````!`````@```-8`````````@`P````````*````#0```#L!```````` -XME`P````````*````#0```',!````````F0P````````*````$0```-\%```` -XM````I`P````````*````#0```+P!````````M0P````````*````$0```*8" -XM````````O0P````````!`````@```.``````````Q0P````````!`````@`` -XM`$8!````````S0P````````*````#0````4"````````X0P````````*```` -XM#0```#T"````````Y@P````````*````$0```-\%````````\0P````````* -XM````#0```(8"`````````0T````````*````$0```$X`````````(@T````` -XM```*````$0```/L"````````+0T````````*````$0```"P%````````8@T` -XM```````*````$0```.8`````````>`T````````*````$0```'P\````````*````$0`` -XM`"T"````````N@\````````*````$0````L`````````T0\````````*```` -XM$0```#@$````````Z0\````````*````$0```#\$````````\0\````````! -XM`````@```%`!````````^0\````````!`````@```$H9`````````1`````` -XM```*````#0```,\"````````$1`````````*````#0```(`#````````-!`` -XM```````*````$0```/L"````````/Q`````````*````#0```-P#```````` -XM1!`````````*````$0```"0!````````3Q`````````*````#0```$L$```` -XM````5!`````````*````$0```,L&````````7Q`````````*````#0```+H$ -XM````````9!`````````*````$0```'0$````````;Q`````````*````#0`` -XM`#P%````````F!`````````*````$```````````````J1`````````*```` -XM$````*``````````LA`````````*````#0```(4%````````P!`````````* -XM````#0```'D&````````VQ`````````*````#0```#$'````````Y!`````` -XM```*````#0```.D'````````[1`````````*````#0```'X(````````]A`` -XM```````*````#0```.((````````"1$````````*````#0````4)```````` -XM%Q$````````*````#0```'X)````````(!$````````*````#0```,4+```` -XM````*1$````````*````#0```!`-````````,A$````````*````#0```%`. -XM````````.Q$````````*````#0```.4.````````1!$````````*````#0`` -XM`$D/````````31$````````*````#0```)@/````````5A$````````*```` -XM#0```)\0````````7Q$````````!`````@```-@#````````;!$````````* -XM````$``````&````````D1$````````!`````@```*<*````````F1$````` -XM```!`````@```,T*````````K!$````````*````#0```,(0````````MA$` -XM```````!`````@```*<*````````OA$````````!`````@```+X*```````` -XMRQ$````````*````#0```/@0````````UA$````````*````$````-`&```` -XM````Y1$````````*````#0```*`1````````[Q$````````*````$````'`' -XM````````^!$````````*````#0```,,1`````````1(````````*````#0`` -XM``P2````````"A(````````*````#0```-D2````````+A(````````*```` -XM#0```($3````````-Q(````````*````#0```$X4````````0!(````````* -XM````#0```!L5````````21(````````*````#0```&X6````````61(````` -XM```*````$````!`)````````;1(````````*````#0```#L7````````>Q(` -XM```````!`````@```(4-````````@Q(````````!`````@```)@-```````` -XMF1(````````!`````@```'<+````````H1(````````!`````@```(X+```` -XM````N1(````````*````$````$`)````````QA(````````*````$````-`) -XM````````X1(````````*````#0```#`8````````ZA(````````*````#0`` -XM`+(8````````^!(````````*````#0```#09````````K0`````````!```` -XM`@``````````````'``````````*````"P``````````````(``````````! -XM`````@``````````````-``````````*````"P``````````````.``````` -XM```!`````@```!``````````3``````````*````"P``````````````4``` -XM```````!`````@```"``````````=``````````*````"P`````````````` -XM>``````````!`````@```'``````````E``````````*````"P`````````` -XM````F``````````!`````@```.``````````M``````````*````"P`````` -XM````````N``````````!`````@```%`!````````(``````````*`````@`` -XM````````````.``````````*`````@```!``````````4``````````*```` -XM`@```"``````````<``````````*`````@```'``````````B``````````* -XM`````@```.``````````H``````````*`````@```%`!````````!@`````` -XM```*````!@``````````````!@`````````*````!@``````````````$``` -X5```````!`````@`````````````` -X` -Xend -END-of-symbols.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/out/strip-debug-2.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/out/strip-debug-2.out.shar deleted file mode 100644 index 1055c63d..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/out/strip-debug-2.out.shar +++ /dev/null @@ -1,1207 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# symbols.o.1.uu -# symbols.o.uu -# -echo x - symbols.o.1.uu -sed 's/^X//' >symbols.o.1.uu << '7e9b8d093a79e3138d3b7dc9490f1606' -Xbegin 644 symbols.o.1 -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````&@O```` -XM`````````$```````$``#``)``^V1P3`Z`0L`0^4P`^VP,,/MD<$P.@$A,`/ -XME,`/ML##54B)]5-(@^P(2(N?T````$B%VW4+ZR%(BUL(2(7;=!A(BS-(B>_H -XM`````(7`=>A(@\0(L`%;7<-(@\0(,](BU$02(MQ"+D`````Z`````!(BUPD,$B-M"2``0`` -XM2(M[$.@`````2(7`#X2O$@``2(M$)#A(C;0D0`$``$B+>!#H`````$B%P`^$ -XMD!(``$'V16P@#X7*!0``28M]&$B-M"08`@``Z`````"%P`^$)!8``$F+?2#H -XM`````(7`B40D1`^$T14``+X!````OS````#H`````$B%P$F)Q@^$U!4``+\` -XM`@``Z`````!(A<`/A-(5``!(B40D2,8``+X!````08M],(/'!XU'!X7_#TCX -XMP?\#2&/_Z`````!(A`/A;<.``"+ -XME"0``0``2(NT)!@"``!)BWT8Z`````!(AZ`````!(AT)#@!``!(A````!(A=L/A+$!``!!OP````#K#4B+6UA(A=L/ -XMA)P!``!,BP.Y"````$R)__Q,B<;SIG3@OP````"Y"````$R)QO.F=,^_```` -XM`+D*````3(G&\Z9TOD'V16P$=!!(BT-`2(/X"72M2(/X!'2G2(M[$.@````` -XM28N5B````$B)P4C!Z0,/MA0*B<�?3ZH/B`76`QX0DX`$```````!(QX0D -XMZ`$```````!(QX0D\`$```````#&A"3D`0```TB+>PCH`````(-\)$0!9HF$ -XM).8!```/A+$-``!)BU802(72#X2J$@``2(N,)+@```!).TXH#X8*#P``BX0D -XMX`$``(7`#X4##0``28M&*$B-!$#'!,(`````28M&*`^VE"3D`0``28M.$$B- -XM!$"(5,$$28M&*`^VE"3E`0``28M.$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$` -XM`$B-!$!(B53!"$F+1BA)BTX02(N4)/`!``!(C01`2(E4P1`/MXPDY@$``(U! -XM_V8]_OX/AV<,``!)BT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&28-&*`%( -XMBUM82(7;#X5D_O__2(-\)'``=%5(@WPD*`!T0S'2,?;K!)!(B?*)\$B+7"1P -XMB?'!^`.#X0=(F`^V!!C3Z*@!=!-(C035`````$D#17A)BU8H2`$02(/&`4@[ -XM="0H=<1(BWPD<.@`````,<"#?"1$`4F+5B!)BTU0#Y7`20-6*$B-!,40```` -XM2`^OPDB)02A)BT503(EP&$F+15A(BU0D4$B)4"A)BT582(M,)$A(B4@82(M$ -XM)#!(BU@82(-[*``/A;T"``!(@WL@``^%2P(``$B+3"0X2(MY$.@`````2(7` -XM2(G"#X3/$0``2,<``0```$C'0!``````N0$```!(BUPD.+X2````2(M#&$B) -XM0@A(BT,H2(V<),````#'0B`!````QT(D`0```$B)0AA(QX0DD`$````````Q -XMP$&#?10!2(M4)#`/E1!O0$` -XM``!,B?I$B>9(B=_H`````$PY^`^%^0P```^VA"3$`0``P.@$A,!%#T3U28/$ -XM`4F#Q0%).>QTD^O)2(M\)##H`````$B+?"0XZ`````!(@<0H`@``6UU!7$%= -XM05Y!7\/H`````(7`#X7H$```2(M4)#A$B;0DK`$``$B-M"2``0``2,>$)%`! -XM````````2,>$)'`!```!````2(M,)#!(BT(HQX0D1`$```,```!(QX0D2`$` -XM``````!(QX0D>`$```````#'A"1L`0```````,>$)&@!````````2(F$)&`! -XM``!(BWD0Z`````"%P'0>2(M<)#A(C;0D0`$``$B+>Q#H`````(7`#X4_____ -XMO______H`````+X`````2(G"OT8````QP.@`````2(M4)#!(BWH0Z`````!( -XMA!#H`````$B%P$B)P@^$(@\``$&#?10!#X3A"@``2,<`"````$C'0!`````` -XM2(M#$$B)0@A(BT,HQT(@$@```,=")`$```!(C01`2,'@`TB)0ACIZ?S__TB+ -XM?"0HO@@```#H`````$B%P$F)17@/A%8.``!(BU0D*+X!````2(/"!TC!Z@-( -XMB==(B90D@````.@`````2(7`2(E$)'@/A"8.``!(BTPD>#'V2(G?2(E,)'#H -XM`````$B%P$B)1"1H#X1:#0``2(V<).`!``!(C80DP````$B-E"3``0``2(V, -XM)``"``!(QT0D6$````!(QX0DN````$````!(QT0D4`$```!!OP`"``!(QX0D -XMJ`````````!(QX0DL`````````!(B5PD&$B)1"002(D4)$B)3"0(BX0DL``` -XM`$B+?"1H2(V4).`!``")QHF$)*0```#H`````$@[1"08#X4;"@``BY0DX`$` -XM`$F+?1A(BW0D8.@`````2(7`2(G%#X3!!@``2(G&3(GOZ`````"%P`^%YP`` -XM`$F+G<````!(A=MU"^M)2(M;"$B%VW1`2(LS2(GOZ`````"%P'7H2(.$)+`` -XM```!2(N$)+````!(.40D*`^$[_C__TB+G"2P````2(F<)*@```#I2/___P^W -XME"3F`0``C4+_9CW^_G<.28M%<`^WTDB#/-``=+!!@WUH`72I28N5@````$B% -XMT@^$F`D``(N$)*0```!$BZ0DI````,'X`T&#Y`=(8]A$B>$/M@03T^BH`74T -XM0?9%;`0/A0L"``!!BT5H@_@$#X1;____@_@"=1$2)X;@!````T^`(!!I)BU5X28M&($B+C"2H````2(D$ -XMRH-\)$0!#X3*`0``2(V\).`!``#H%O3__X7`#X24`@``28M6$$B%T@^$E0<` -XM`$B+A"2X````23M&*`^&!P4``(N\).`!``"%_P^$C@,``(!]```/A(0#``!) -XMBT8HBTPD4$B-!$")#,))BT8H#[:4).0!``!)BTX02(T$0(A4P01)BT8H#[:4 -XM).4!``!)BTX02(T$0(A4P05)BT8H28M.$$B+E"3H`0``2(T$0$B)5,$(28M& -XM*$F+3A!(BY0D\`$``$B-!$!(B53!$`^WC"3F`0``C4'_9CW^_@^&,P,``$F+ -XM1BA)BU802(T$0&:)3,(&28-&*`$/MH0DY`$``(/@#X/X`P^$D0(``(!]```/ -XMA-G]___K'DB+?"1(30'_3(G^Z`````!(A<`/A`@$``!(B40D2$B)[^@````` -XM2(M4)%!(B<%(`<))C4?_2#G"<\9(BUPD2$@#7"102(G*2(GN2(G?Z`````!( -XMB>_H`````$B)[\8$`P#H`````$B+7"102(U<`P%(B5PD4.E=_?__2(V\).`! -XM``#H@_+__X7`#X4W_O__#[:$).0!``#`Z`0\`@^%S?W__TF+57A)BT8H2(N< -XM)*@```!(B03:@WPD1`$/A3;^__](C;PDX`$``.A,\O__A<`/A$@"``!)BQ9( -XMA=(/A-\(``!(BX0DN````$D[1B@/ADH%``!$BXPDX`$``$6%R70*@'T```^% -XM&00``$F+1BA(P>`$QP00`````$F+1B@/MI0DY`$``$F+#DC!X`2(5`@,28M& -XM*`^VE"3E`0``28L.2,'@!(A4"`U)BT8H28L.2(N4).@!``!(P>`$B50(!$F+ -XM1BA)BPY(BY0D\`$``$C!X`2)5`@(#[>,).8!``"-0?]F/?[^#X8Q`P``28M& -XM*$F+%DC!X`1FB4P0#ND[_O__28M6&$B%T@^$H@4``$B+1"1823M&(`^&/0(` -XM`(NT).`!``"%]@^$Z0```(!]```/A-\```!)BT8@BTPD4$B-!$")#,))BT8@ -XM#[:4).0!``!)BTX82(T$0(A4P01)BT8@#[:4).4!``!)BTX82(T$0(A4P05) -XMBT8@28M.&$B+E"3H`0``2(T$0$B)5,$(28M&($F+3AA(BY0D\`$``$B-!$!( -XMB53!$`^WC"3F`0``C4'_9CW^_@^&@0```$F+1B!)BU882(T$0&:)3,(&28-& -XM(`$/MH0DY`$``(/@#X/X`P^%;_W__P^WE"3F`0``28M%<$B+#-"X`0```$B) -XMRH/A!TC!Z@-)`Y6(````T^`(`NE`_?__28M&($B-!$#'!,(`````Z1S___]) -XMBT8H2(T$0,<$P@````#I=_S__TF+17!)BU8@#[?)28MV&$B+!,A(C1129HE$ -XMU@;I;____TF+17!)BU8H#[?)28MV$$B+!,A(C1129HE$U@;IO?S__TF+5@A( -XMA=(/A+\&``!(BUPD6$D[7B`/AC(#``!$BX0DX`$``$6%P'0*@'T```^%OP$` -XM`$F+1B!(P>`$QP00`````$F+1B`/MI0DY`$``$F+3@A(P>`$B%0(#$F+1B`/ -XMMI0DY0$``$F+3@A(P>`$B%0(#4F+1B!)BTX(2(N4).@!``!(P>`$B50(!$F+ -XM1B!)BTX(2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&Q@```$F+ -XM1B!)BU8(2,'@!&:)3!`.Z8'^__](QT0D8`````#I$/+__T@!P$B)UTB--$!( -XMB40D6$C!Y@/H`````$B%P$B)PDF)1A@/A9O]__^^`````+]&````,<#H```` -XM`$@!P$B)UTB--$!(B80DN````$C!Y@/H`````$B%P$B)PDF)1A`/A<[Z___K -XMPK______Z`````"^`````$B)PK]&````,<#H`````+______Z`````"^```` -XM`$B)PK]&````,<#H`````$F+17!)BU8@#[?)28MV"$B+!,A(P>($9HE$,@[I -XML/W__TF+17!)BU8H#[?)28LV2(L$R$C!X@1FB40R#NG_^O__28M&*$F+5A!( -XMC01`9HE,P@;IG_/__X!]```/A//R__])BT8HBTPD4$B-!$")#,+I[O+__TF+ -XM1B"+3"102,'@!(D,$.D\_O__28M&*(M,)%!(P>`$B0P0Z>+[__](QP`$```` -XM2(M#*$C!X`1(B4(02(M#"$B)0@A(BT,@QT(@$@```,=")`$```!(P>`$2(E" -XM&.GU\___28L62(72#X0Q!@``2(N,)+@```!).TXH#X9]!```BXPDX`$``(7) -XM#X3[````@'T```^$\0```$F+1BB+3"102,'@!(D,$$F+1B@/MI0DY`$``$F+ -XM#DC!X`2(5`@,28M&*`^VE"3E`0``28L.2,'@!(A4"`U)BT8H28L.2(N4).@! -XM``!(P>`$B50(!$F+1BA)BPY(BY0D\`$``$C!X`2)5`@(#[>,).8!``"-0?]F -XM/?[^#X:-`0``28M&*$F+%DC!X`1FB4P0#NE3\O__2`'`2(G72(G&2(F$)+@` -XM``!(P>8$Z`````!(A`$2(E"&.D-\O__2(M<)%A(C3Q;2,'G -XM`^@`````2(7`2(G"28E&&`^%2_K__^E=____9F9FD+______Z`````"^```` -XM`$B)PK]&````,<#H`````+______Z`````"^`````$B)PK]&````,<#H```` -XM`$F+17!)BU8H#[?)28LV2(L$R$C!X@1FB40R#NF[\/__2(N\)(````"^`0`` -XM`.@`````2(7`28F%@`````^$[0(``$F+?1A(C;0D$`(``.@`````A<`/A"$# -XM``!%,>1)BWT83(GFZ`````!(A_H```` -XM`(7`#X5U____28M%4(N<).@```!(BW@(Z`````!(.<-(QX0DD`````````!( -XMQX0DF``````````/A4#___](BXPDD````$@[C"3@````#X.O`@``2(NT))@` -XM``!,B>?H`````$B%P$B)A"28````#X2.`@``2(N4))@```!(BT(8,=)(][0D -XM^````(7`2(G#?JS'A"2,`````````(.\),0````)#X2@`@``B[0DC````$B+ -XMO"28````2(V4),`!``#H`````$@[!"0/A;$"``"+A"3,`0``2(F$))````!( -XM@[PDD``````/E8$Z`````!(A<#Z`````!(A6T@9F%I;&5D.B`E"!I -XM;F1E>`!R96%L;&]C(&9A:6QE9``N!`!`PP'")`!```4````'``````````0```````````````4 -XM````-``````````0```````````````<````3`````````!!`````$$.$(8" -XM1`X81`X@@P,``!0```!L`````````&8`````3@X@A@*#`Q0```"$```````` -XM`&8`````3@X@A@*#`S0```"<`````````/H7````0@X01PX80@X@C02.`X\" -XM10XH00XP00XX1P[@!(,'A@:,!0```````"YS>6UT86(`+G-T6UB;VP` -XM;&]O:W5P7VME97!?'-C -XM;@!E;&9?97)R;F\`9G)E90!E;&9?;F5W9&%T80!G96QF7V9S:7IE`&5L9E]G -XM971D871A`&=E;&9?9V5Tsymbols.o.uu << '4a9e1967a3d1d330020ec46c822fc6a0' -Xbegin 644 symbols.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````,!C```` -XM`````````$```````$``&@`7``^V1P3`Z`0L`0^4P`^VP,,/MD<$P.@$A,`/ -XME,`/ML##54B)]5-(@^P(2(N?T````$B%VW4+ZR%(BUL(2(7;=!A(BS-(B>_H -XM`````(7`=>A(@\0(L`%;7<-(@\0(,](BU$02(MQ"+D`````Z`````!(BUPD,$B-M"2``0`` -XM2(M[$.@`````2(7`#X2O$@``2(M$)#A(C;0D0`$``$B+>!#H`````$B%P`^$ -XMD!(``$'V16P@#X7*!0``28M]&$B-M"08`@``Z`````"%P`^$)!8``$F+?2#H -XM`````(7`B40D1`^$T14``+X!````OS````#H`````$B%P$F)Q@^$U!4``+\` -XM`@``Z`````!(A<`/A-(5``!(B40D2,8``+X!````08M],(/'!XU'!X7_#TCX -XMP?\#2&/_Z`````!(A`/A;<.``"+ -XME"0``0``2(NT)!@"``!)BWT8Z`````!(AZ`````!(AT)#@!``!(A````!(A=L/A+$!``!!OP````#K#4B+6UA(A=L/ -XMA)P!``!,BP.Y"````$R)__Q,B<;SIG3@OP````"Y"````$R)QO.F=,^_```` -XM`+D*````3(G&\Z9TOD'V16P$=!!(BT-`2(/X"72M2(/X!'2G2(M[$.@````` -XM28N5B````$B)P4C!Z0,/MA0*B<�?3ZH/B`76`QX0DX`$```````!(QX0D -XMZ`$```````!(QX0D\`$```````#&A"3D`0```TB+>PCH`````(-\)$0!9HF$ -XM).8!```/A+$-``!)BU802(72#X2J$@``2(N,)+@```!).TXH#X8*#P``BX0D -XMX`$``(7`#X4##0``28M&*$B-!$#'!,(`````28M&*`^VE"3D`0``28M.$$B- -XM!$"(5,$$28M&*`^VE"3E`0``28M.$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$` -XM`$B-!$!(B53!"$F+1BA)BTX02(N4)/`!``!(C01`2(E4P1`/MXPDY@$``(U! -XM_V8]_OX/AV<,``!)BT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&28-&*`%( -XMBUM82(7;#X5D_O__2(-\)'``=%5(@WPD*`!T0S'2,?;K!)!(B?*)\$B+7"1P -XMB?'!^`.#X0=(F`^V!!C3Z*@!=!-(C035`````$D#17A)BU8H2`$02(/&`4@[ -XM="0H=<1(BWPD<.@`````,<"#?"1$`4F+5B!)BTU0#Y7`20-6*$B-!,40```` -XM2`^OPDB)02A)BT503(EP&$F+15A(BU0D4$B)4"A)BT582(M,)$A(B4@82(M$ -XM)#!(BU@82(-[*``/A;T"``!(@WL@``^%2P(``$B+3"0X2(MY$.@`````2(7` -XM2(G"#X3/$0``2,<``0```$C'0!``````N0$```!(BUPD.+X2````2(M#&$B) -XM0@A(BT,H2(V<),````#'0B`!````QT(D`0```$B)0AA(QX0DD`$````````Q -XMP$&#?10!2(M4)#`/E1!O0$` -XM``!,B?I$B>9(B=_H`````$PY^`^%^0P```^VA"3$`0``P.@$A,!%#T3U28/$ -XM`4F#Q0%).>QTD^O)2(M\)##H`````$B+?"0XZ`````!(@<0H`@``6UU!7$%= -XM05Y!7\/H`````(7`#X7H$```2(M4)#A$B;0DK`$``$B-M"2``0``2,>$)%`! -XM````````2,>$)'`!```!````2(M,)#!(BT(HQX0D1`$```,```!(QX0D2`$` -XM``````!(QX0D>`$```````#'A"1L`0```````,>$)&@!````````2(F$)&`! -XM``!(BWD0Z`````"%P'0>2(M<)#A(C;0D0`$``$B+>Q#H`````(7`#X4_____ -XMO______H`````+X`````2(G"OT8````QP.@`````2(M4)#!(BWH0Z`````!( -XMA!#H`````$B%P$B)P@^$(@\``$&#?10!#X3A"@``2,<`"````$C'0!`````` -XM2(M#$$B)0@A(BT,HQT(@$@```,=")`$```!(C01`2,'@`TB)0ACIZ?S__TB+ -XM?"0HO@@```#H`````$B%P$F)17@/A%8.``!(BU0D*+X!````2(/"!TC!Z@-( -XMB==(B90D@````.@`````2(7`2(E$)'@/A"8.``!(BTPD>#'V2(G?2(E,)'#H -XM`````$B%P$B)1"1H#X1:#0``2(V<).`!``!(C80DP````$B-E"3``0``2(V, -XM)``"``!(QT0D6$````!(QX0DN````$````!(QT0D4`$```!!OP`"``!(QX0D -XMJ`````````!(QX0DL`````````!(B5PD&$B)1"002(D4)$B)3"0(BX0DL``` -XM`$B+?"1H2(V4).`!``")QHF$)*0```#H`````$@[1"08#X4;"@``BY0DX`$` -XM`$F+?1A(BW0D8.@`````2(7`2(G%#X3!!@``2(G&3(GOZ`````"%P`^%YP`` -XM`$F+G<````!(A=MU"^M)2(M;"$B%VW1`2(LS2(GOZ`````"%P'7H2(.$)+`` -XM```!2(N$)+````!(.40D*`^$[_C__TB+G"2P````2(F<)*@```#I2/___P^W -XME"3F`0``C4+_9CW^_G<.28M%<`^WTDB#/-``=+!!@WUH`72I28N5@````$B% -XMT@^$F`D``(N$)*0```!$BZ0DI````,'X`T&#Y`=(8]A$B>$/M@03T^BH`74T -XM0?9%;`0/A0L"``!!BT5H@_@$#X1;____@_@"=1$2)X;@!````T^`(!!I)BU5X28M&($B+C"2H````2(D$ -XMRH-\)$0!#X3*`0``2(V\).`!``#H%O3__X7`#X24`@``28M6$$B%T@^$E0<` -XM`$B+A"2X````23M&*`^&!P4``(N\).`!``"%_P^$C@,``(!]```/A(0#``!) -XMBT8HBTPD4$B-!$")#,))BT8H#[:4).0!``!)BTX02(T$0(A4P01)BT8H#[:4 -XM).4!``!)BTX02(T$0(A4P05)BT8H28M.$$B+E"3H`0``2(T$0$B)5,$(28M& -XM*$F+3A!(BY0D\`$``$B-!$!(B53!$`^WC"3F`0``C4'_9CW^_@^&,P,``$F+ -XM1BA)BU802(T$0&:)3,(&28-&*`$/MH0DY`$``(/@#X/X`P^$D0(``(!]```/ -XMA-G]___K'DB+?"1(30'_3(G^Z`````!(A<`/A`@$``!(B40D2$B)[^@````` -XM2(M4)%!(B<%(`<))C4?_2#G"<\9(BUPD2$@#7"102(G*2(GN2(G?Z`````!( -XMB>_H`````$B)[\8$`P#H`````$B+7"102(U<`P%(B5PD4.E=_?__2(V\).`! -XM``#H@_+__X7`#X4W_O__#[:$).0!``#`Z`0\`@^%S?W__TF+57A)BT8H2(N< -XM)*@```!(B03:@WPD1`$/A3;^__](C;PDX`$``.A,\O__A<`/A$@"``!)BQ9( -XMA=(/A-\(``!(BX0DN````$D[1B@/ADH%``!$BXPDX`$``$6%R70*@'T```^% -XM&00``$F+1BA(P>`$QP00`````$F+1B@/MI0DY`$``$F+#DC!X`2(5`@,28M& -XM*`^VE"3E`0``28L.2,'@!(A4"`U)BT8H28L.2(N4).@!``!(P>`$B50(!$F+ -XM1BA)BPY(BY0D\`$``$C!X`2)5`@(#[>,).8!``"-0?]F/?[^#X8Q`P``28M& -XM*$F+%DC!X`1FB4P0#ND[_O__28M6&$B%T@^$H@4``$B+1"1823M&(`^&/0(` -XM`(NT).`!``"%]@^$Z0```(!]```/A-\```!)BT8@BTPD4$B-!$")#,))BT8@ -XM#[:4).0!``!)BTX82(T$0(A4P01)BT8@#[:4).4!``!)BTX82(T$0(A4P05) -XMBT8@28M.&$B+E"3H`0``2(T$0$B)5,$(28M&($F+3AA(BY0D\`$``$B-!$!( -XMB53!$`^WC"3F`0``C4'_9CW^_@^&@0```$F+1B!)BU882(T$0&:)3,(&28-& -XM(`$/MH0DY`$``(/@#X/X`P^%;_W__P^WE"3F`0``28M%<$B+#-"X`0```$B) -XMRH/A!TC!Z@-)`Y6(````T^`(`NE`_?__28M&($B-!$#'!,(`````Z1S___]) -XMBT8H2(T$0,<$P@````#I=_S__TF+17!)BU8@#[?)28MV&$B+!,A(C1129HE$ -XMU@;I;____TF+17!)BU8H#[?)28MV$$B+!,A(C1129HE$U@;IO?S__TF+5@A( -XMA=(/A+\&``!(BUPD6$D[7B`/AC(#``!$BX0DX`$``$6%P'0*@'T```^%OP$` -XM`$F+1B!(P>`$QP00`````$F+1B`/MI0DY`$``$F+3@A(P>`$B%0(#$F+1B`/ -XMMI0DY0$``$F+3@A(P>`$B%0(#4F+1B!)BTX(2(N4).@!``!(P>`$B50(!$F+ -XM1B!)BTX(2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&Q@```$F+ -XM1B!)BU8(2,'@!&:)3!`.Z8'^__](QT0D8`````#I$/+__T@!P$B)UTB--$!( -XMB40D6$C!Y@/H`````$B%P$B)PDF)1A@/A9O]__^^`````+]&````,<#H```` -XM`$@!P$B)UTB--$!(B80DN````$C!Y@/H`````$B%P$B)PDF)1A`/A<[Z___K -XMPK______Z`````"^`````$B)PK]&````,<#H`````+______Z`````"^```` -XM`$B)PK]&````,<#H`````$F+17!)BU8@#[?)28MV"$B+!,A(P>($9HE$,@[I -XML/W__TF+17!)BU8H#[?)28LV2(L$R$C!X@1FB40R#NG_^O__28M&*$F+5A!( -XMC01`9HE,P@;IG_/__X!]```/A//R__])BT8HBTPD4$B-!$")#,+I[O+__TF+ -XM1B"+3"102,'@!(D,$.D\_O__28M&*(M,)%!(P>`$B0P0Z>+[__](QP`$```` -XM2(M#*$C!X`1(B4(02(M#"$B)0@A(BT,@QT(@$@```,=")`$```!(P>`$2(E" -XM&.GU\___28L62(72#X0Q!@``2(N,)+@```!).TXH#X9]!```BXPDX`$``(7) -XM#X3[````@'T```^$\0```$F+1BB+3"102,'@!(D,$$F+1B@/MI0DY`$``$F+ -XM#DC!X`2(5`@,28M&*`^VE"3E`0``28L.2,'@!(A4"`U)BT8H28L.2(N4).@! -XM``!(P>`$B50(!$F+1BA)BPY(BY0D\`$``$C!X`2)5`@(#[>,).8!``"-0?]F -XM/?[^#X:-`0``28M&*$F+%DC!X`1FB4P0#NE3\O__2`'`2(G72(G&2(F$)+@` -XM``!(P>8$Z`````!(A`$2(E"&.D-\O__2(M<)%A(C3Q;2,'G -XM`^@`````2(7`2(G"28E&&`^%2_K__^E=____9F9FD+______Z`````"^```` -XM`$B)PK]&````,<#H`````+______Z`````"^`````$B)PK]&````,<#H```` -XM`$F+17!)BU8H#[?)28LV2(L$R$C!X@1FB40R#NF[\/__2(N\)(````"^`0`` -XM`.@`````2(7`28F%@`````^$[0(``$F+?1A(C;0D$`(``.@`````A<`/A"$# -XM``!%,>1)BWT83(GFZ`````!(A_H```` -XM`(7`#X5U____28M%4(N<).@```!(BW@(Z`````!(.<-(QX0DD`````````!( -XMQX0DF``````````/A4#___](BXPDD````$@[C"3@````#X.O`@``2(NT))@` -XM``!,B>?H`````$B%P$B)A"28````#X2.`@``2(N4))@```!(BT(8,=)(][0D -XM^````(7`2(G#?JS'A"2,`````````(.\),0````)#X2@`@``B[0DC````$B+ -XMO"28````2(V4),`!``#H`````$@[!"0/A;$"``"+A"3,`0``2(F$))````!( -XM@[PDD``````/E8$Z`````!(A<#Z`````!(A`````((!0`````#``````(ZB@````((!P`````""`0``````@0$```` -XM``,``````E)_````!0@'!@@"`08``````P`````#3VT````#``````-90@`` -XM``,``````UY;`````P`````#8W\````'"*\````'".X````(KP````,````` -XM`^B?`````@@%``````,`````!";,`````P`````$)\$````#``````0JS``` -XM``D0!+>#`0``"@`````$N!L!```"(P`*``````2Y!0$```(C!`H`````!+H; -XM`0```B,("@`````$NS0````"(PP*``````2\-`````(C#0H`````!+T0`0`` -XM`B,.``,`````!+XF`0```P`````%)M<````#``````4GP0````,`````!2C7 -XM`````P`````%*K8````#``````4KS`````,`````!2W7````"4`%564"```* -XM``````56N@$```(C``H`````!5BZ`0```B,$"@`````%6<4!```"(P@*```` -XM``5:C@$```(C$`H`````!5ND`0```B,8"@`````%7,4!```"(R`*``````5= -XMN@$```(C*`H`````!5ZZ`0```B,L"@`````%7\4!```"(S`*``````5@Q0$` -XM``(C.``#``````5AT`$```D0!8.5`@``"@`````%A(X!```"(P`*``````6% -XMQ0$```(C"``#``````6&<`(```D8!8G3`@``"@`````%BHX!```"(P`*```` -XM``6+Q0$```(C"`H`````!8RO`0```B,0``,`````!8V@`@``"1@%OCL#```* -XM``````6_N@$```(C``H`````!<`T`````B,$"@`````%P30````"(P4*```` -XM``7"F0$```(C!@H`````!<..`0```B,("@`````%Q,4!```"(Q```P`````% -XMQ=X"```+16QF``8F40,```P``````0,`````!B=B`P``#``````!#00&-@$$ -XM```.```````.``````$.``````(.``````,.``````0.``````4.``````8. -XM``````<.``````@.``````D.``````H.``````L.``````P.``````T.```` -XM``X.``````\.`````!`.`````!$.`````!(.`````!,.`````!0.`````!4. -XM`````!8.`````!<``P`````&3V@#```)"`9X(P0```H`````!GBN!````B,` -XM``\`````0`9HK@0```H`````!FS7`````B,`"@`````&;:T````"(P@*```` -XM``9NUP````(C$`H`````!F_7`````B,8"@`````&<`$$```"(R`*``````9Q -XM9@````(C)`H`````!G:T!````B,H"@`````&=V8````"(S`*``````9X#`0` -XM``(C.``'"",$```'"%<#```#``````9Y(P0```,`````!S!E`@```P`````' -XM,3L#```#``````@````"(P`*``````@JZ`````(C"`H`````""OH`````B,0"@`````( -XM+.@````"(Q@0861D``@N5`````(C(`H`````""]4`````B,D"@`````(,%0` -XM```"(R@*``````@Q5`````(C+`H`````"#)4`````B,P"@`````(,U0````" -XM(S0*``````@T5`````(C.`H`````"#8W!0```B-```<(3@4```D("#\@!@`` -XM"@`````(/V4&```"(P``#P`````@"#IE!@``"@`````(.^(````"(P`*```` -XM``@\X@````(C"`H`````"#WS`````B,0"@`````(/PD&```"(Q@`!P@@!@`` -XM"1`(49`&```*``````A17@<```(C``H`````"%%D!P```B,(``\`````>`A# -XM7@<```H`````"$3H`````B,`$&ES``A%M`0```(C"!!O!P``"1`(4H\'```*``````A2 -XM7@<```(C``H`````"%)D!P```B,(``\`````$`A>N`<```H`````"%Y>!P`` -XM`B,`"@`````(7F0'```"(P@`"0@(7\\'```*``````A?/@@```(C```/```` -XM`$`(5CX(```0;V9F``A7UP````(C`!!F@`(6=<` -XM```"(Q`*``````A:UP````(C&`H`````"%Q4`````B,@"@`````(7H\'```" -XM(R@*``````A?N`<```(C.``'",\'```/`````#`(8Z4(```0;#,R``ADI0@` -XM``(C`!!G,S(`"&6E"````B,($&PV-``(9JL(```"(Q`09S8T``AGJP@```(C -XM&!!N9W,`"&CS`````B,@$&YL!P```B,`"@`` -XM```(L60'```"(P@`#P````#P"&Z5"P``"@`````(;^@````"(P`*``````AR -XM5`````(C"`H`````"'-4`````B,,$&EE8P`(=50````"(Q`0;V5C``AV5``` -XM``(C%!!E:6X`"'>5"P```B,8"@`````(>)4+```"(R`*``````AZ5`````(C -XM*`H`````"'M4`````B,L$&YO -XM!P```B-8"@`````(BUX'```"(V`*``````B3L0@```(C:`H`````")M4```` -XM`B-L"@`````(GIL+```"(W`*``````BAFPL```(C>`H`````"*2A"P```R.` -XM`0H`````"*>A"P```R.(`0H`````"*G8"````R.0`0H`````"*H#"0```R.@ -XM`0H`````"*LN"0```R.P`0H`````"*U9"0```R/``0H`````"*^$"0```R/0 -XM`0H`````"+&I"0```R/@`0`'"$8#```'"-<````'"#0````1``````%!`50` -XM`````````````````````````G<(U@L``!)S``%`U@L```%5``<(T`0``!$` -XM`````4L!5``````````````````````````"=P@+#```$G,``4K6"P```54` -XM$P$``````7,"`50``````````````````````````````&`,```496-P``%R -XM`F`,````````%0`````!<@+H`````````!9S``%T`C$%``````````<(S@D` -XM`!VA"P``&VES:``![L4$```;?,````<``````%[ -XMZ````!MD``%\!@X``!MS``%]M`0``!MR``%^VP0``!MR80`!?^8$```;6T``3P"T`0``!AO9``!/0(&#@``(P`` -XM```!/@+,````&'-C``$_`O,````C``````%``E0````8:0`!0`)4`````"0! -XM``````'*`0$``````````````````````````!1E8W```0`!S@'%!````Y&@?B5S:'0``!^+-<.```#D>!\*N$.```````` -XM*NH.````````*O4.````````*@`/````````*PD/`````#(5#P````````%I -XME!(``"@Z#P``,#$/````````*"8/```S1`\````````````````````````! -XMURA5#P`````S7P\````````````````````````!;RAP#P```````"YZ#P`` -XM``````$E`BB,#P``*0`````LE@\```.1X'PLH@\```.1X'XJK@\````````J -XMN0\````````KQ0\``"K0#P```````"O<#P```````*D#```"`*`````!`?L. -XM"@`!`0$!`````2]U7,`+W5S6UB;VQS+F,`````7W1Y<&5S+F@``0``='EP -XM97,N:``"``!E;&8S,BYH``(``&5L9C8T+F@``@``;&EB96QF+F@``P``9V5L -XM9BYH``,``&5L9F-O<'DN:`````````D"```````````#P``!YR'G`Z($'9`( -XM9.9",`-Z<3$#:P@=TSQ2/,@Z"+C=`W`(F],\4CS(.@BXW0/K?@B;`PDK`W=5 -XM""..C\8(CPC6"-<#FWZI"(((2PB@"',["-0XR5:# -XMO'HO"#H(/`(D$PA85H(#(XT('CA6`\H``B0!`B40`C43"&>.",:JN+B!CE2` -XM9@-L`M4!`0,9Q8`('G`L"!X(872>`B81@,8#(,6.`Q2I`Q6I")!R`PM_`W95 -XM`PI5`W95@`,M1P-4?W)O2[AR5`@L2E.JM8(#)(T#7%4#)'\"(A0(@-0X.JH( -XM9@A[`Y5_<9P#UP";`QL('58#5W]1`PM_`W=_N+\#>55(JKBXJJ2&R`C&`T<( -XMQ0B0L7+P@$AR;P->_0A*L7*`@$AR;P/C?OWB.$AE"/XX5F)84E@#L'X(FP,B -XM?P-Z?P.T`7\#L'X"00$#(E4#>D<#MP%5>0-XX7GR`^Q]".\#JP0(*PAD`Y1^ -XMX0-0C0-Y""L#_GT(1PC7=`/I`.\")A8#EG^IR`-)50.^`@AC`BX0"!X(/*\( -XM2`,)`M0!`0@\NU0Z@(Q3"*\(``$!`"1&"!I;F1E>`!R96%L;&]C(&9A:6QE9``N&!HP%````````%``````````!>E(``7@0`0,, -XM!PB0`0``%````!P`````````$```````````````%````#0`````````$``` -XM````````````'````$P`````````00````!!#A"&`D0.&$0.((,#```4```` -XM;`````````!F`````$X.((8"@P,4````A`````````!F`````$X.((8"@P,T -XM````G`````````#Z%P```$(.$$<.&$(.((T$C@./`D4.*$$.,$$..$<.X`2# -XM!X8&C`4``````"``````````(0`````````"`'<((0`````````E```````` -XM``(`=Q`E`````````"D``````````@!W&"D`````````80`````````"`'<@ -XM`````````````````````"``````````-P`````````!`%5``````````$8` -XM`````````0!56`````````!A``````````$`50`````````````````````@ -XM`````````#4``````````0!4-0````````!7``````````$`5E@````````` -XM8``````````!`%9@`````````&$``````````0!4```````````````````` -XM`#``````````5@`````````!`%-8`````````%\``````````0!3```````` -XM`````````````'``````````?@`````````"`'<(?@````````#6```````` -XM``(`=R``````````````````````<`````````"&``````````$`588````` -XM````P``````````!`%;%`````````-8``````````0!6```````````````` -XM`````'``````````C@`````````!`%2.`````````+L``````````0!3Q0`` -XM``````#6``````````$`4P````````````````````#@`````````.X````` -XM`````@!W".X`````````1@$````````"`'<@`````````````````````.`` -XM````````]@`````````!`%7V`````````#`!`````````0!6-0$```````!& -XM`0````````$`5@````````````````````#@`````````/X``````````0!4 -XM_@`````````K`0````````$`4S4!````````1@$````````!`%,````````` -XM````````````4`$```````!2`0````````(`=PA2`0```````%D!```````` -XM`@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(`=R!@ -XM`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0```````!% -XM%`````````$`4488````````4!@````````!`%$````````````````````` -XM;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``````` -XM`%`8`````````0!1`````````````````````-\#````````KP4````````! -XM`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1```` -XM````*!$````````!`%/2$0````````82`````````0!3:!(````````T$P`` -XM``````$`4XX3````````I!,````````!`%/)$P```````!`4`````````0!3 -XMK!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`````` -XM`)@7`````````0!3I1@```````#*&`````````$`4P`````````````````` -XM``##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1D'S$ -XM"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R.%``` -XM`````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`````` -XM`.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````````` -XM````````V`,```````"U!P````````,`D8A\R0<```````!I"0````````,` -XMD8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,`D8A\ -XMCA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\PA<` -XM``````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```````` -XM`````````````(@"````````WP,````````!`%-I"0```````-\)```````` -XM`0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q%P`` -XM`````&X7`````````0!3F!<```````"I%P````````$`4\`7````````ZA<` -XM```````!`%,`````````````````````B@(```````"U!P````````,`D;A_ -XMR0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_*!@` -XM``````!*&0````````,`D;A_`````````````````````%P$````````9@0` -XM```````!`%``````````````````````_P(```````"U!P````````,`D8!\ -XMR0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\CA0` -XM``````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```````` -XM`````````````,\#````````M0<````````#`)'8?,D'````````:0D````` -XM```#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````````# -XM`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````#`)'8 -XM?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8?-(/ -XM````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0```` -XM````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```````` -XMD1$````````#`)'8?)$1````````LA$````````#`)'X>[(1````````!A(` -XM```````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,````` -XM```#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````````# -XM`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````#`)'8 -XM?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8?$87 -XM````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7```` -XM````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````````` -XM``````````#8`P```````+4'`````````P"1\'O)!P```````&D)```````` -XM`P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.`````````P"1 -XM\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1\'L4 -XM$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT$P`` -XM`````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``````` -XM`#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P```````,`7 -XM`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9```` -XM`````P"1\'L`````````````````````V`,```````#N`P````````$`7YD% -XM````````00<````````!`%^H"````````&D)`````````0!?&PH```````#A -XM$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```````` -XM`0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0%``` -XM`````&P4`````````0!?CA0```````"L%`````````$`7\P4`````````Q<` -XM```````!`%]5%P```````&X7`````````0!?J1<```````#`%P````````$` -XM7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@````` -XM``!*&0````````$`7P````````````````````"*`@```````/`"```````` -XM`0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4```` -XM````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````````` -XM```````````3`@```````+4'`````````P"1Y'O)!P```````&P4```````` -XM`P"1Y'N.%````````$H9`````````P"1Y'L`````````````````````!@,` -XM```````N`P````````$`4(L#````````I`,````````!`%#8`P```````/`# -XM`````````0!5_0,````````(!`````````$`59D%````````\04````````! -XM`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\)```` -XM````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!:%P`` -XM``````$`59@7````````I!<````````!`%#`%P```````,(7`````````0!0 -XMPA<```````#'%P````````$`50````````````````````"O!0```````/8% -XM`````````0!2`````````````````````)<*````````GPH````````!`%3$ -XM"@```````,D*`````````0!5`````````````````````-@#````````WP,` -XM```````!`%.N"@```````/$*`````````0!3_@H```````!-"P````````$` -XM4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<````` -XM``#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88```` -XM`````0!3`````````````````````&X)````````>`D````````!`%4````` -XM````````````````51$```````!?$0````````$`5&D5````````;!4````` -XM```!`%!L%0```````'H5`````````0!4`````````````````````-@#```` -XM````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```````` -XMX1`````````#`)&X?.\0````````;!0````````#`)&X?(X4````````,1<` -XM```````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<````` -XM```#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````````# -XM`)&X?``````````````````````T"P```````$,+`````````0!<51$````` -XM``"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7```` -XM`````0!`T````````!`%4*%0````````X5`````````0!551<` -XM``````!:%P````````$`5;`7````````LA<````````!`%"R%P```````,`7 -XM`````````0!5PA<```````#'%P````````$`5988````````F!@````````! -XM`%"8&````````*48`````````0!5`````````````````````-@#```````` -XMM0<````````#`)&L?,D'````````:0D````````#`)&L?$8*````````X1`` -XM```````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<````` -XM```#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````````# -XM`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````#`)&L -XM?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`````` -XM`&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@```````&,* -XM`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``````` -XM``,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P````````,` -XMD<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,`D<1\ -XM*!@```````!*&0````````,`D<1\`````````````````````$,'```````` -XMM0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``````` -XM``$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3RA@` -XM``````#7&`````````$`4P````````````````````!&!P```````+4'```` -XM`````0!>R0<```````#8!P````````$`7ML'````````J`@````````!`%Z. -XM%````````*P4`````````0!>51<```````!N%P````````$`7LH8```````` -XMUQ@````````!`%X`````````````````````X@<````````>"`````````$` -XM4%47````````6A<````````!`%7*&````````-<8`````````0!0```````` -XM`````````````&,````"```````%$P``"PP``&QO;VMU<%]K965P7W-Y;6QI -XM1,```````!\$P`` -XM`````&L3`````````D```````"*"0```````,X%```````` -XM/@8```````"Z!0```````+P%````````I`0```````"S!0```````%($```` -XM````FP0````````R!````````$D$````````B0,`````````!````````&@# -XM````````;@,```````!B`P```````&4#````````00,```````!*`P`````` -XM`#0#````````-@,````````N`P```````#$#````````(`,````````B`P`` -XM``````0#````````&`,```````#:`@```````.`"````````U`(```````#7 -XM`@```````+,"````````O`(```````"B`@```````*@"````````G`(````` -XM``"?`@```````&X"````````?@(````````^`@```````$\"````````+@(` -XM```````T`@```````"@"````````*P(````````3`@```````!D"```````` -XM#0(````````/`@````````````````````````````#?"0```````/<)```` -XM````UQ@```````!*&0```````&08````````I1@````````H&````````$88 -XM````````PA<```````#J%P```````*D7````````P!<```````#,%``````` -XM`+<6````````51$```````!S$0```````'`-````````F`T```````#^"@`` -XM`````(X+````````E`H```````#-"@```````#@*````````1@H````````` -XM````````````````````WPD```````#W"0```````-<8````````2AD````` -XM``!D&````````*48````````*!@```````!&&````````,(7````````ZA<` -XM``````"I%P```````,`7````````S!0```````"W%@```````%41```````` -XMA4` -XM``````!^%0```````&P5````````F4`=6YS:6=N -XM960@:6YT`$5,1E]47TY530!%;&8S,E]7;W)D`&ES7V1E8G5G7W-Y;6)O;`!3 -XM5%))4%]!3$P`@!D7W-C;@!T<65?;F5X=`!%;&8S,E]! -XM9&1R`$5,1E]47U-85T]21`!%;&9?4V-N`'-Y;6YD>`!I6U?:V5E<`!%3$9?5%]214P`61A=&$`6UB;VP`;G-Y -XM;7,`87!P96YD`'-E8U]H96%D`$5,1E]47UA73U)$`$5L9C,R7U-Y;0!S='%H -XM7V9I0!?7W5I;G0Q-E]T`$5,1E]4 -XM7U-934E.1D\`4U1225!?3D].1$5"54<`9W-Y7V-A<`!V7W-A9&0`7!E`$5,1E]47U-930!C -XM86QC7VYO;FQO8V%L`$5L9C8T7U-Y;0!S96-N9'@`16QF7U1Y<&4`6UB;VP`6UB=68`16QF-C1?6'=O6UL:7-T`$5L9C,R7TAA;&8` -XM=E]S86,`14Q&7U1?3D]410!%;&8V-%]/9F8`861D7W1O7W-TF4`96QF97)R`&-R96%T95]S>6UT -XM86(`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0`6T``!PF4`:7-?'=O6UT86(`+G-T6UB;VP`:7-?;&]C86Q? -XM`!G -XM96QF7V=E=&-L87-S`&-A;&QO8P!E;&9?;F5X='-C;@!E;&9?1$````````"````*@```/S_________?A$` -XM```````*````"@```(P`````````C1$````````"````%P```/S_________ -XM2A,````````"````*P```/S_________=1,````````"````*P```/S_____ -XM____M1,````````"````%@```/S_________RA,````````*````"@```'X` -XM````````UA,````````"````+@```/S_________]Q,````````"````*P`` -XM`/S_________4Q0````````"````%@```/S_________=A0````````"```` -XM*@```/S_________>Q0````````*````"@```"(`````````BA0````````" -XM````%P```/S_________E!0````````"````*@```/S_________F10````` -XM```*````"@````(!````````J!0````````"````%P```/S_________VA0` -XM```````"````'@```/S_________^Q0````````"````'````/S_________ -XM$A4````````"````'P```/S_________+A4````````"````&P```/S_____ -XM____8A4````````"````(````/S_________=A4````````"````+P```/S_ -XM________B14````````"````,````/S_________I14````````"````(0`` -XM`/S_________[!4````````"````)@```/S_________3Q8````````"```` -XM,0```/S_________DA8````````*````"@```$8!````````F18````````" -XM````,@```/S_________Q!8````````"````%@```/S_________ZA8````` -XM```"````%@```/S_________&1<````````"````*P```/S_________,A<` -XM```````"````(@```/S_________5A<````````"````*@```/S_________ -XM6Q<````````*````"@```.L`````````:A<````````"````%P```/S_____ -XM____?Q<````````"````%@```/S_________F1<````````*````"@```-`` -XM````````I1<````````"````%P```/S_________JA<````````"````(@`` -XM`/S_________PQ<````````"````*@```/S_________R!<````````*```` -XM"@```+D`````````UQ<````````"````%P```/S_________W!<````````* -XM````"@```'``````````YA<````````"````+@```/S_________\!<````` -XM```"````*@```/S_________]1<````````*````"@```%<`````````!!@` -XM```````"````%P```/S_________"1@````````*````"@```'`````````` -XM%1@````````"````+@```/S_________&A@````````*````"@```'X````` -XM````)!@````````"````+@```/S_________+A@````````"````*@```/S_ -XM________,Q@````````*````"@```#P`````````0A@````````"````%P`` -XM`/S_________3!@````````"````*@```/S_________41@````````*```` -XM"@```'0!````````8!@````````"````%P```/S_________D!@````````" -XM````(@```/S_________LA@````````"````%@```/S_________[Q@````` -XM```"````,P```/S_________%!D````````"````*@```/S_________&1D` -XM```````*````"@```"\!````````*!D````````"````%P```/S_________ -XM,AD````````"````*@```/S_________-QD````````*````"@```!D!```` -XM````1AD````````"````%P```/S_________!@`````````*````!0`````` -XM````````#``````````*````$0```%`'````````$0`````````*````$0`` -XM`'`#````````%0`````````*````$0```*(%````````&0`````````!```` -XM`@``````````````(0`````````!`````@```$H9````````*0`````````* -XM````!P``````````````,``````````*````$0```.,&````````-P`````` -XM```*````$0```$T&````````/@`````````*````$0```%<%````````0P`` -XM```````*````$0```,0!````````4``````````*````$0````<'```````` -XM7``````````*````$0```%L&````````:0`````````*````$0```&8````` -XM````;@`````````*````$0```,P$````````>P`````````*````$0```&D% -XM````````@``````````*````$0```'("````````C0`````````*````$0`` -XM``H&````````E``````````*````$0```'`'````````FP`````````*```` -XM$0```&(!````````H``````````*````$0```+\%````````L@`````````* -XM````$0````X#````````MP`````````*````$0```!0"````````P@`````` -XM```*````$0```.8$````````S0`````````*````$0```#0!````````V``` -XM```````*````$0```)D%````````]``````````*````$0````T"```````` -XM`0$````````*````$0```,0#````````!@$````````*````$0```+\````` -XM````$0$````````*````$0```.4#````````'`$````````*````$0```'T` -XM````````+P$````````*````$0```+H'````````/0$````````*````$0`` -XM`*D&````````2P$````````*````$0```+(&````````60$````````*```` -XM$0```!P&````````9P$````````*````$0```#H%````````=0$````````* -XM````$0```$@%````````A`$````````*````$0```)D!````````CP$````` -XM```*````$0``````````````F@$````````*````$0```(8"````````I0$` -XM```````*````$0````$$````````L`$````````*````$0```$,'```````` -XMNP$````````*````$0```)X'````````Q@$````````*````$0```*X#```` -XM````V0$````````*````$0```-8$````````YP$````````*````$0```"0& -XM````````]0$````````*````$0```)<&`````````P(````````*````$0`` -XM`,@%````````$0(````````*````$0```(T$````````'P(````````*```` -XM$0```#`$````````+0(````````*````$0```)$%````````.P(````````* -XM````$0```$@#````````20(````````*````$0```)$'````````5P(````` -XM```*````$0```+<"````````9@(````````*````$0```,('````````>0(` -XM```````*````$0```#$%````````AP(````````*````$0```-@"```````` -XME@(````````*````$0```.\$````````J0(````````*````$0```#$%```` -XM````MP(````````*````$0```-@"````````Q0(````````*````$0```"P& -XM````````U`(````````*````$0```(8%````````YP(````````*````$0`` -XM`+H'````````]0(````````*````$0```!P&`````````P,````````*```` -XM$0```#H%````````$0,````````*````$0```$@%````````'P,````````* -XM````$0```*D&````````+0,````````*````$0```+(&````````/`,````` -XM```*````$0```#L"````````4@,````````*````$0```",'````````6`,` -XM```````*````$0```-<`````````8P,````````*````$0```*D$```````` -XM<0,````````*````$0```)X$````````=P,````````*````$0```%,$```` -XM````?0,````````*````$0```!,#````````@P,````````*````$0```,X" -XM````````B0,````````*````$0```-(#````````CP,````````*````$0`` -XM`*D'````````E0,````````*````$0````(#````````FP,````````*```` -XM$0```$,`````````H0,````````*````$0```,("````````IP,````````* -XM````$0```/8#````````K0,````````*````$0```+H#````````LP,````` -XM```*````$0```&8&````````N0,````````*````$0````0!````````OP,` -XM```````*````$0````("````````Q0,````````*````$0```'L$```````` -XMRP,````````*````$0````P%````````T0,````````*````$0```,H````` -XM````UP,````````*````$0```,\!````````W0,````````*````$0```"," -XM````````XP,````````*````$0```.0%````````Z0,````````*````$0`` -XM`.\&````````[P,````````*````$0```&D$````````]0,````````*```` -XM$0```(T!````````^P,````````*````$0```',``````````@0````````* -XM````$0```$P"````````%00````````*````$0```'P%````````)`0````` -XM```*````$0```'(%````````,`0````````*````$0```/@%````````/@0` -XM```````*````$0```%X$````````3`0````````*````$0```+D%```````` -XM6@0````````*````$0```%\`````````:`0````````*````$0```!P"```` -XM````=@0````````*````$0```-,&````````A`0````````*````$0```+`` -XM````````D@0````````*````$0```((&````````H`0````````*````$0`` -XM`)H#````````NP0````````*````$0```'$&````````Q@0````````*```` -XM$0```%@!````````T00````````*````$0```'T"````````W`0````````* -XM````$0```",%````````YP0````````*````$0```'<'````````^@0````` -XM```*````$0```'P%````````"04````````*````$0```-T#````````%04` -XM```````*````$0```-\%````````(P4````````*````$0````X!```````` -XM0`4````````*````$0```'P%````````3P4````````*````$0```!@%```` -XM````6P4````````*````$0```-\%````````:04````````*````$0```)<$ -XM````````=P4````````*````$0```-X$````````A04````````*````$0`` -XM`"\#````````H04````````*````$0```'T!````````KP4````````*```` -XM$0```'H#````````O04````````*````$0```!\!````````RP4````````* -XM````$0```%$%````````V04````````*````$0```#4`````````YP4````` -XM```*````$0```),#````````]04````````*````$0```.\%````````$@8` -XM```````*````$0```'P%````````(08````````*````$0```!`P` -XM```````!`````@```-8`````````@`P````````*````#0```#L!```````` -XME`P````````*````#0```',!````````F0P````````*````$0```-\%```` -XM````I`P````````*````#0```+P!````````M0P````````*````$0```*8" -XM````````O0P````````!`````@```.``````````Q0P````````!`````@`` -XM`$8!````````S0P````````*````#0````4"````````X0P````````*```` -XM#0```#T"````````Y@P````````*````$0```-\%````````\0P````````* -XM````#0```(8"`````````0T````````*````$0```$X`````````(@T````` -XM```*````$0```/L"````````+0T````````*````$0```"P%````````8@T` -XM```````*````$0```.8`````````>`T````````*````$0```'P\````````*````$0`` -XM`"T"````````N@\````````*````$0````L`````````T0\````````*```` -XM$0```#@$````````Z0\````````*````$0```#\$````````\0\````````! -XM`````@```%`!````````^0\````````!`````@```$H9`````````1`````` -XM```*````#0```,\"````````$1`````````*````#0```(`#````````-!`` -XM```````*````$0```/L"````````/Q`````````*````#0```-P#```````` -XM1!`````````*````$0```"0!````````3Q`````````*````#0```$L$```` -XM````5!`````````*````$0```,L&````````7Q`````````*````#0```+H$ -XM````````9!`````````*````$0```'0$````````;Q`````````*````#0`` -XM`#P%````````F!`````````*````$```````````````J1`````````*```` -XM$````*``````````LA`````````*````#0```(4%````````P!`````````* -XM````#0```'D&````````VQ`````````*````#0```#$'````````Y!`````` -XM```*````#0```.D'````````[1`````````*````#0```'X(````````]A`` -XM```````*````#0```.((````````"1$````````*````#0````4)```````` -XM%Q$````````*````#0```'X)````````(!$````````*````#0```,4+```` -XM````*1$````````*````#0```!`-````````,A$````````*````#0```%`. -XM````````.Q$````````*````#0```.4.````````1!$````````*````#0`` -XM`$D/````````31$````````*````#0```)@/````````5A$````````*```` -XM#0```)\0````````7Q$````````!`````@```-@#````````;!$````````* -XM````$``````&````````D1$````````!`````@```*<*````````F1$````` -XM```!`````@```,T*````````K!$````````*````#0```,(0````````MA$` -XM```````!`````@```*<*````````OA$````````!`````@```+X*```````` -XMRQ$````````*````#0```/@0````````UA$````````*````$````-`&```` -XM````Y1$````````*````#0```*`1````````[Q$````````*````$````'`' -XM````````^!$````````*````#0```,,1`````````1(````````*````#0`` -XM``P2````````"A(````````*````#0```-D2````````+A(````````*```` -XM#0```($3````````-Q(````````*````#0```$X4````````0!(````````* -XM````#0```!L5````````21(````````*````#0```&X6````````61(````` -XM```*````$````!`)````````;1(````````*````#0```#L7````````>Q(` -XM```````!`````@```(4-````````@Q(````````!`````@```)@-```````` -XMF1(````````!`````@```'<+````````H1(````````!`````@```(X+```` -XM````N1(````````*````$````$`)````````QA(````````*````$````-`) -XM````````X1(````````*````#0```#`8````````ZA(````````*````#0`` -XM`+(8````````^!(````````*````#0```#09````````K0`````````!```` -XM`@``````````````'``````````*````"P``````````````(``````````! -XM`````@``````````````-``````````*````"P``````````````.``````` -XM```!`````@```!``````````3``````````*````"P``````````````4``` -XM```````!`````@```"``````````=``````````*````"P`````````````` -XM>``````````!`````@```'``````````E``````````*````"P`````````` -XM````F``````````!`````@```.``````````M``````````*````"P`````` -XM````````N``````````!`````@```%`!````````(``````````*`````@`` -XM````````````.``````````*`````@```!``````````4``````````*```` -XM`@```"``````````<``````````*`````@```'``````````B``````````* -XM`````@```.``````````H``````````*`````@```%`!````````!@`````` -XM```*````!@``````````````!@`````````*````!@``````````````$``` -X5```````!`````@`````````````` -X` -Xend -4a9e1967a3d1d330020ec46c822fc6a0 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.err b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.out b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.sh deleted file mode 100644 index 966d622f..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-2/strip-debug-2.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-debug-2 tc/strip-debug-2 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} -g -o symbols.o.1 symbols.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/in/strip-debug-3.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/in/strip-debug-3.in.shar deleted file mode 100644 index a9a6af6a..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/in/strip-debug-3.in.shar +++ /dev/null @@ -1,676 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# ls.uu -# -echo x - ls.uu -sed 's/^X//' >ls.uu << 'END-of-ls.uu' -Xbegin 555 ls -XM?T5,1@(!`0D```````````(`/@`!````H!M```````!``````````#!M```` -XM`````````$``.``'`$``&@`9``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````&1>````````9%X````````` -XM`!````````$````&`````&``````````8%````````!@4```````P`D````` -XM``!P"P``````````$````````@````8```"P90```````+!E4```````L&50 -XM``````"P`0```````+`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````7%X```````!<7D```````%Q>0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``9-0P`0P```%4````]````40```!4`````````.@```%`````````` -XM.0```#<```!.````0P```!0`````````/@```#0```!!````2P`````````I -XM`````````!8````%````2@```%(```!%`````````!H````J````)````$8` -XM`````````````#$`````````4P```"4`````````"0````@````````````` -XM```````,````.P```#,```!/````"P```!P```!4````+P```!T````````` -XM`````$T````L````1P```$P``````````````#\`````````20```$`````` -XM````+@```#(````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````#0`` -XM``````````````````8`````````"@`````````````````````````````` -XM$0```!@````````````````````>`````````!D````7``````````(````2 -XM````````````````````(@````X````0````#P````<````?````$P`````` -XM```````````````````C````+0```"`````````````````````A````-0`` -XM```````X````,```````````````&P```"8````G`````````#8````$```` -XM2````$(`````````/````$0`````````*P`````````H```````````````` -XM`````````````````````````&X!```2````7!=```````"*`````````-`" -XM```2````;!=```````#2`````````)D!```2````?!=```````"0```````` -XM`),"```2````C!=````````5`````````'4"```2````G!=````````R```` -XM`````"T!```2````K!=````````;`````````'L"```2````O!=````````` -XM`````````/8````2````S!=```````!\`0````````X````1`/'_L&50```` -XM`````````````*$!```2````W!=``````````````````!<````2````[!=` -XM``````"_`P```````&T````2````_!=```````#A`P```````%("```2```` -XM#!A```````">`````````!`"```2````'!A```````!5`````````!`````````$H!```2 -XM````_!A```````!?`````````.X````2````#!E````````H`````````+D" -XM```2````'!E````````I`````````-\!```2````+!E```````#H`0`````` -XM`!<"```1`!<`P&E0```````$`````````"0"```2````/!E```````"M`@`` -XM`````+D!```1`!```&!0```````(`````````+X````2````3!E```````#X -XM`@```````+(````2````7!E```````"5`````````',````2````;!E````` -XM``"S`P````````D"```2````?!E```````!D`0```````#4"```2````C!E` -XM`````````````````,0!```2````G!E````````(`````````.4````2```` -XMK!E``````````````````-4"```2````O!E````````A`0```````)H!```2 -XM````S!E```````"B`````````)@"```2````W!E````````/`0```````.X" -XM```0`/'_P&E0`````````````````-P````2````[!E```````!J`0`````` -XM`.("```2````_!E```````"H`````````),````1`!<`Q&E0```````$```` -XM`````'D````2````#!I```````#8!0```````,P!```2````'!I```````!? -XM`````````&@"```2````+!I```````#0!````````"T````2``T`>%A````` -XM`````````````*8!```2````/!I```````"E`@```````.`````````*$````2````7!M````````````` -XM`````$D````@`````````````````````````"0!```2````;!M````````` -XM`````````($````2````?!M```````!C`0```````,8````2````C!M````` -XM``!=``````````!L:6)U=&EL+G-O+C<`7T193D%-24,`:'5M86YI>F5?;G5M -XM8F5R`%]I;FET`%]F:6YI`%]'3$]"04Q?3T9&4T547U1!0DQ%7P!?2G9?4F5G -XM:7-T97)#;&%S&ET`'-E=&QO8V%L90!F='-? -XMF4`871O:0!U -XM#_____)390$`!H`0```.G0_____R4N4!``:`(```#IP/____\E -XM)E`0`&@#````Z;#_____)1Y0$`!H!````.F@_____R464!``:`4```#ID/__ -XM__\E#E`0`&@&````Z8#_____)090$`!H!P```.EP_____R7^3Q``:`@```#I -XM8/____\E]D\0`&@)````Z5#_____)>Y/$`!H"@```.E`_____R7F3Q``:`L` -XM``#I,/____\EWD\0`&@,````Z2#_____)=9/$`!H#0```.D0_____R7.3Q`` -XM:`X```#I`/____\EQD\0`&@/````Z?#^____);Y/$`!H$````.G@_O___R6V -XM3Q``:!$```#IT/[___\EKD\0`&@2````Z<#^____):9/$`!H$P```.FP_O__ -XM_R6>3Q``:!0```#IH/[___\EED\0`&@5````Z9#^____)8Y/$`!H%@```.F` -XM_O___R6&3Q``:!<```#I````Z0#^____)49/ -XM$`!H'P```.GP_?___R4^3Q``:"````#IX/W___\E-D\0`&@A````Z=#]____ -XM)2Y/$`!H(@```.G`_?___R4F3Q``:",```#IL/W___\E'D\0`&@D````Z:#] -XM____)19/$`!H)0```.F0_?___R4.3Q``:"8```#I@/W___\E!D\0`&@G```` -XMZ7#]____)?Y.$`!H*````.E@_?___R7V3A``:"D```#I4/W___\E[DX0`&@J -XM````Z4#]____)>9.$`!H*P```.DP_?___R7>3A``:"P```#I(/W___\EUDX0 -XM`&@M````Z1#]____)#\____);9.$`!H,0```.G0_/___R6N3A``:#(```#IP/S_ -XM__\EIDX0`&@S````Z;#\____)9Y.$`!H-````.F@_/___R663A``:#4```#I -XMD/S___\ECDX0`&@V````Z8#\____)89.$`!H-P```.EP_/___R5^3A``:#@` -XM``#I8/S___\E=DX0`&@Y````Z5#\____)6Y.$`!H.@```.E`_/___R5F3A`` -XM:#L```#I,/S___\E7DX0`&@\````Z2#\____)59.$`!H/0```.D0_/___R5. -XM3A``:#X```#I`/S___\E1DX0`&@_````Z?#[____)3Y.$`!H0````.G@^___ -XM_R4V3A``:$$```#IT/O___\E+DX0`&A"````Z<#[____)29.$`!H0P```.FP -XM^___`````$%43(UG"%53BQ](8\.%VTB-;,<02(DM+4\0`'XZ2(M7"$B%TG0Q -XM2(D5,T00``^V`H3`="-(@\(!/"](BP4?1!``2`]$PDB)!11$$``/M@)(@\(! -XMA,!UX;BP95``2(7`="M(B??H$____[]X6$``Z`G____H(/O__XG?2(GJ3(GF -XMZ-L1``")Q^AP_O__Z(O\___KUI"0D)"0D)"0D)"0D)!(@^P(@#V931```'00 -XMZR202(/`"$B)!;5#$`#_TDB+!:Q#$`!(BQ!(A=)UY,8%<4T0``%(@\0(PV9F -XM9I!F9F:02(,]^$H0``!T%K@`````2(7`=`R_@&=0`$F)PT'_XY#SPY"0D)"0 -XMD)"0D)"0D)"04TB+5GBY`0```$B+1WA(BUA(2#E:2'X$6XG(PWT'N?_____K -XM\UM(B[:`````2(N_@````.E#_/__9F9FD&9FD$B)\$B)_DB)Q^FR____9I!( -XMBU9X2(M'>$B+2#A(.4HX?@:X`0```,-\#$B+2$!(.4I`?^Y]"[C_____9F:0 -XM9I##2(NV@````$B+OX````#IZ/O__V9F9I!F9F:09F9FD$B)\$B)_DB)Q^FB -XM____9I!(BU9X2(M'>$B+2&A(.4IH?@:X`0```,-\#$B+2'!(.4IP?^Y]"[C_ -XM____9F:09I##2(NV@````$B+OX````#IB/O__V9F9I!F9F:09F9FD$B)\$B) -XM_DB)Q^FB____9I!(BU9X2(M'>$B+2!A(.4H8?@:X`0```,-\#$B+2"!(.4H@ -XM?^Y]"[C_____9F:09I##2(NV@````$B+OX````#I*/O__V9F9I!F9F:09F9F -XMD$B)\$B)_DB)Q^FB____9I!(BU9X2(M'>$B+2"A(.4HH?@:X`0```,-\#$B+ -XM2#!(.4HP?^Y]"[C_____9F:09I##2(NV@````$B+OX````#IR/K__V9F9I!F -XM9F:09F9FD$B)\$B)_DB)Q^FB____9I!(BX>`````2(N^@````$B)QNF6^O__ -XM9F9FD&9FD&9FD$B+MH````!(B[^`````Z7GZ__^0D)"0D)"0D)"0D)"02(L_ -XMBU=H@_H'=%5(BS:+3FB#^0=T2H/Z"G0F@_D*="$YRG0L2(-_8`!U)8L%"TL0 -XM`(7`=1N#Z@&X`0```'4'\\/IFO___X/I`;C_____=.],BQW92A``0?_C9F:0 -XM9F:0,<##9F9FD&9FD&9FD&9FD$%7059!54%408G455-(@>QH!0``1(L5%4P0 -XM`$B)?"1(2(ET)$!(QX0D&`4```````!%A=)U$$2+#?=+$`!%A$)%@%````````QX0D5`4```````!(QX0D*`4```````!(QX0D,`4````` -XM``!(QX0D.`4```````!(QX0D0`4```````!(QX0D(`4```````!T"8`X``^% -XMD08``$B#?"1```^$+@8``$B+7"1`08/D`DC'1"10`````,=$)%@`````QT0D -XM?`````!(QT0D<`````!$B60D/.G,`@``@_@*#X3/`@``2(-\)$@`#X2K`P`` -XM2(N#@````(`X+@^$@`,``$B+0TA(.X0D,`4``$@/1H0D,`4``(L-M4H0`(7) -XM2(F$)#`%``!U"HL57TH0`(72="E(BW-(2(N[@````.AG+```2#N$)#`%``!( -XM#T:$)#`%``!(B80D,`4``(M$)%R%P`^$,P(``$R+8WA)BT0D4$@[A"1`!0`` -XM2`].A"1`!0``2(F$)$`%``!!BT0D!$@[A"0X!0``2`]&A"0X!0``2(F$)#@% -XM``!!#[=$)`I(.X0D*`4``$@/1H0D*`4``$B)A"0H!0``28M$)$A(.X0D2`4` -XM`$@/3H0D2`4``$B)A"1(!0``28M$)%!(`40D4(L%"4H0`(7`#X2>`0``BP6C -XM2!``A<`/A*L"``!!BTPD#$B-O"3P!```NO180`"^#0```#'`Z%WX__]!BTPD -XM$$B-O"0`!0``NO180`"^#0```#'`Z#_X__](C80D\`0``$B)1"1@2(V$)``% -XM``!(B40D:$B+?"1@Z'OY__])B<:+A"14!0``2(M\)&A).<9$B?`/1H0D5`4` -XM`(F$)%0%``#H4OG__TF)Q8N$)%@%``!).<5$B>@/1H0D6`4``$4Q_XF$)%@% -XM``"+!3I)$`"%P`^%4P(``(L%Y$@0`#'22,>$)!@%````````A<`/A:,"``!- -XM`?5+C7PO+$@!U^A6^/__2(7`2(G%#X3`"```2(UX($B).$B+="1@Z.GX__]) -XMC7PN(4B)?0A(BW0D:.C6^/__00^W1"0()0#P```]`"````^$IP$``#T`8``` -XM#X2<`0``1(L=KD@0`$6%VP^%I`$``$2+%59($`!%A=)T.D2+#9)($`!)C5SCHB?7__TB+LX`` -XM``!(B<*_[5A``#'`Z"/V__](QT,8`0```,<%X480``$```!(BUL02(7;=;M$ -XMBT0D?$6%P`^$\P(``$B+1"1`BTPD7$B)A"20!```BT0D?(7)B80DI`0``$B+ -XMA"0P!0``B80DJ`0```^%"P4``$B-O"20!```_Q5%1A``BQ6[1Q``QP5]1A`` -XM`0```(72=!](@WPD0`!T%TB+7"1`2(M[(.@O]___2(M;$$B%VW7N2('$:`4` -XM`%M=05Q!74%>05_#BS421A``A?8/A7+\__](QT,8`0```.D#____@^@!#X5< -XM_/__BSWJ11``A?\/A4[\___KVD&+?"0,,?;HM/7__TB)1"1@08M\)!`Q]NA3 -XM]/__2(E$)&CIA/W__T2+'1)'$`#'1"18`0```$6%VP^$7/[__TJ-?"TB2(E] -XM$$B+="1PZ.[V__](BWPD<.B$]O__Z3K^__]!BWPD7.C5\O__2(7`2(E$)'`/ -XMA+L&``"`.`!U($B)Q^A:]O__O_=80`#H_HO_3__XM$)#R%P'1X2(NT)!`%``!(B>_H=_7_ -XM_X/``71X2(N\)!`%``!(C;0D&`4``.@-\___@\`!=%Y(B[PD$`4``.A[\___ -XM2(.\)!@%````='E(B[PD&`4``.C#]?__2#N$)"`%``!(B<)(BX0D(`4``$@/ -XM1\)(B80D(`4``.F9_/__2(NT)!`%``!(B>_H;_+__X/``76(2(M#"$B+DX`` -XM``"_!5E``$B+<#`QP.@?]/__2(N\)!`%``#H`O/__TB#O"08!0```'6'O_=8 -XM0`#H'?+__TB)A"08!0``Z7#___](BT,(2(VL)(````!,BX.`````NA-90`"^ -XM`00``$B)[TB+2"@QP.BU\___Z?'^___'1"1\`````$C'1"10`````,=$)%@` -XM````BST)11``A?]U#HLUFT00`(7V#X1I_?__2(-\)$@`#X7I_/__Z5C]__\Q -XMP(,]>400```/E<")1"1OX__](B`.CIUY3PZ=>'&`3`/MD(!B$$!2(/!`L9!`0`/ -XMMD("2(/"`83`==F`>?\Z#X08!```2(V$)"`%``!(C8PD0`4``$B-E"0X!0`` -XM3(V,)%0%``!,C80D*`4``+Z064``2(E$)"!(C80D,`4``$B)[TB)1"082(V$ -XM)$@%``!(B40D$$B-A"1](B80D2`4``.AA\O__ -XMZ6+W__^+1"182(N,)$`%``!(C9PDT`0``+H964``OA@```!(B=^)A"2@!``` -XM2(M$)%!(B80DF`0``#'`Z!#Q__](B=F+`4B#P02-D/_^_O[WT"'"@>*`@("` -XM=.B)T+X8````2(G?P>@0]\*`@```#T302(U!`D@/1,B+A"1$)%@%````````QX0D7`4```````!(QX0D -XM2`4```````!(QX0D,`4```````!$BP4Q0!``,___V;'`3``Z=[[__]( -XMC4T"9L=%`#`ZQD4"`.EW^___OOE80`"_`0```#'`Z&OO__]F9F:09F9FD&9F -XM9I!F9I!!5[C`'D``059!B?Y(B?=!54&)U3'21(GN05154TB#[`B+#7$^$`"% -XMR4@/1-#HRN[__TB%P$F)Q`^$.`(``#'V2(G'Z`3N__](AP$``(L%^#T0`(7`#X0(`0``BP5Z/1``A<`/A4D! -XM``!(BS5S/1``BT8,@^@!A<")1@P/B%H!``!(BP;&``I(@\`!2(D&2(M[,.BD -XM#P``OT=90`#HYNK__T2)_DR)Y^@K[?__1(GJ2(G&2(G?2(G%Z([R__^+!6@] -XM$`"%P`^%0/___TB%[0^$-____[H$````2(G>3(GGZ$/L___I(O___V:0@_@$ -XM=`F#^`SCHQNO__TB+LX````!(B<*_[5A``#'`Z&#L___'!28] -XM$``!````Z>7^__]F9I!FD$B+LX````"_*EE``#'`Z#GL___IR/[__^AO[/__ -XM1(L8187;#X6<````2(/$"%M=05Q!74%>05_#08/^`0^.-/___TB+>S#HQ0X` -XM`+]'64``Z`?J___'!<$\$``!````Z1+___^+!9H]$`"%P`^%9/[__T'VQ0A! -XMOP`!```/A5[^___I3_[__TB+-2H\$`"_"@```.ADZO__Z<;^__^+!4T\$`"% -XMP`^$-?[__^ER_O__OPH```#HPNS__V9FD&9FD.F>_O__ODE90`"_`0```#'` -XMZ.;L__^^(5E``+\!````,<#HU>S__V9FD&9FD&9FD$%6055)B?6^&UU``$%4 -XM55.)^S'_2('L(`8``$B-A"0`!```2(F$)`@&``#HO.S__[\!````Z*+L__^% -XMP`^$B````+]264``QP7/,1``4````.AVZ?__2(7`=`F`.``/A=`'``!(C90D -XM$`8``#'`OFAT"$"_`0```.C_Z?__@\`!=!8/MX0D$@8``&:%P'0)#[?`B06( -XM,1``QP5V/!```0```+T0````NLA90`!,B>Z)W^B&ZO__@_C_=$&#Z#&#^$=V -XM,.@8'@``Z]V_4EE``,<%/SL0``$```#H[NC__TB%P'2_2(G'Z*'H__^)!2\Q -XM$`#KKXG`_R3%.%I``(L-_CH0`$2+)=P4``+]:64``Z+'H__]( -XMA=(B<;HQ>K__X/H -XM`0^$-@8``(L%VCL0`(7`=#J^4#=``+\"````QP6^.Q```0```.BIZO__OE`W -XM0`"_`P```.B:ZO__OX990`#H0.C__TB)Q^@,"```BP7&.Q``A<`/A-D```"+ -XM%;P[$`"%TG4:BSU*.A``A?]U$(LUE#L0`(GH@\@!A?8/1.B+#5PZ$`")Z`R` -XMAB%TG4,1(LU(#L0`$6%]G0;1(L=##H0`$6%VP^$.@4``$C'!2`[$``" -XM````1(L5#3H0`$6%T@^$5`0``$2+#0DZ$`!%A;__TB%P`^%/O[__^E7_O__@\T@QP7Z.!```0```.F<_?__ -XMQP4#.A```````,<%&3H0``$```#'!/K__XL59340`+`!A=(/1056-1``B050-1``Z5SZ__]$BS5H-1`` -XM187V=;M$BQU(-A``187;#X2:`0``2,<%%#40`,`=0`#I6OO__XL]/340`(7_ -XM#X5!^___BS4;-A``A?8/A%0!``!(QP7H-!``$!Y``.DN^___BS4)-1``N#!% -XM0`"ZP$%``(7V2`]$PDB)!;XT$`#I)_O__TB-O"00`#IM?K__TR-M"0(!@``OW=90`!,B?;HX>7__TR) -XM]K]Z64``2(D%3C40`.C-Y?__3(GVOWU90`!(B06*-1``Z+GE__],B?:_@%E` -XM`$B)!98U$`#HI>7__TR)]K^#64``2(D%6C40`.B1Y?__2(7`2(D%$S40``^$ -XMT@```$B#/?4T$```#X1'^?__2(,]-S40```/A#GY__](@SWI-!````^$*_G_ -XM_\<%`340``$```#I)OG__TB)Q^A0X?__QP72-!```0```(D%U"D0`.E1^/__ -XMBPT!-1``A0`!%AXO__NG`W0`!(BSU.-!``O@$```!(@\0(Z43B__](BSW9,Q``NF`\ -XM0`"^`0```.@NXO__NF`\0`#KSF9F9I!F9F:09F:04XG[Z)C___^)WS'VZ+OB -XM___HUN/__XG>B<=;Z6S@__](@^P8N@$```!(C70D%T"(?"07OP$```#H+^#_ -XM_S'`2(/$&,-F9F:09F9FD&9F9I!!5[@;74``28G_059!54%455-(@^PH2(7_ -XM3`]$^$4Q[44Q]DR)_T4QY.A^X___9L=$)`X``$B)!"3K1&9FD&:0#[[!@^@P -XMB0-F@WPD#@`/A,````!FQT0D#@$`2(/%`4B#PP1(@_T"=5)!@\4!28/&#$F# -XMQ`)!@_T+#X3A````3#DD)$''AFAJ4```````=U!(BQ5Y)0``00^V!!2(1"00 -XM00^V1!0!B$0D$4ECQ3'M2(T$0$B-'(5@:E``#[9,+!"-0=`\!P^&=?___XU! -XMGSP'=R,/OL&#Z&&)`^E\____D$,/M@0\B$0D$$,/MD0\`8A$)!'KM8U!OSP' -XM=RD/OL%!QX9H:E```0```(/H08D#Z4?___^_.%U``#'`Z)S@___I+____P^V -XMP3L%]C`0`'T12&/02(L%]C`0`(N$D$`(``"#^'AT#P^^\;^`74``,<#H9^#_ -XM_\<#_____^G[_O__2(/$*%M=05Q!74%>05_#D%53B?M(C2Q;2(/L"(L$K6AJ -XM4`"%P'5YBQ2M8&I0`(/Z_W0E2(L]OC$0`#'VZ+O>__](AG_&```Z:H1``!F9F:09F:09F:02(/L"(L%5BT0`(7`=2A(BS53+1``BT8, -XM@^@!A<")1@QX+DB+!D"(.$B#P`%(B08QP$B#Q`C#2(LU*RT0`.AJV___,<`\```@?\`0```='4QP$B#Q`C#B?@E`/```#T`H``` -XM#X3N````#X>5````/0`0```/A'(!```]`$```&9FD&:0=#^#YTETQ8L%DRP0 -XM`(7`#X6I`0``2(LUC"P0`(M&#(/H`87`B48,#XB.`@``2(L&Q@`J2(/``4B) -XM!K@!````ZXV+%5DL$`"%T@^%P0```$B+-5(L$`"+1@R#Z`&%P(E&#`^(.@$` -XM`$B+!L8`+TB#P`%(B0:X`0```$B#Q`C#9I`]`,````^$H````#T`X```#X5L -XM____BP4$+!``A<`/A:L!``!(BS7]*Q``BT8,@^@!A<")1@P/B',!``!(BP;& -XM`"5(@\`!2(D&N`$```#I^_[__XL%QRL0`(7`#X6)`0``2(LUP"L0`(M&#(/H -XM`87`B48,#XC@````2(L&Q@!`2(/``4B)!K@!````Z;[^__](BS61*Q``OR\` -XM``#HR]G__[@!````Z:/^__^+!6\K$`"%P`^%9P$``$B+-6@K$`"+1@R#Z`&% -XMP(E&#`^(O@```$B+!L8`/4B#P`%(B0:X`0```.EF_O__BP4R*Q``A<`/A0\! -XM``!(BS4K*Q``BT8,@^@!A<")1@QX;$B+!L8`?$B#P`%(B0:X`0```.DM_O__ -XM.T8H#XV]_O__OR\```#HN-O__[@!````Z1#^__](BS7C*A``ORH```#H'=G_ -XM_[@!````Z?7]__\[1B@/C1?___^_0````.B`V___N`$```#IV/W__SM&*'V/ -XMOWP```#H9]O__[@!````Z;_]__\[1B@/C3G___^_/0```&9FD.A'V___N`$` -XM``#IG_W__SM&*`^-A/[__[\E````9F:0Z"?;__^X`0```.E__?__2(LU4BH0 -XM`+\E````Z(S8__^X`0```.ED_?__2(LU-RH0`+]`````Z''8__^X`0```.E) -XM_?__2(LU'"H0`+]\````Z%;8__^X`0```.DN_?__2(LU`2H0`+\]````Z#O8 -XM__^X`0```.D3_?__.T8H#XUI_?__ORH```#HGMK__[@!````Z?;\__]F9F:0 -XM9F9FD$B)7"3@3(ED)/!%,>1,B6PD^$B);"3H2(/L*$2+%3XK$`!(B?M)B=5( -XMBV]X1872#X7;````1(L-Q"H0`$6%R0^%C0```$2+!>0J$`!%AZ_ -XM!%U``$B)PD@#55!(B<%(@^H!2(G02,'Z/TCW^4B)PC'`Z,G8__]!`<3I.O__ -XM_V9FD&:0BU4$O[Q<0``QP.BMV/__08G$Z0[___]F9I!F9I!F9I!52(G]4TB# -XM[`A(BQ](A=MU+.ME2(LU?B@0`(M&#(/H`87`B48,>%A(BP;&``I(@\`!2(D& -XM2(M;$$B%VW0[2(-[&`%T\(M5'(MU+$B)W^A^_O__1(L=-R@0`$6%VW2U2(LU -XM,R@0`+\*````Z&W6__](BUL02(7;=<5(@\0(6UW#OPH```#HT]C__^NI9F:0 -XM9I!!5T%6055!5%532(/L*(,]5RD0``%(B7PD"(M'%$49[4&#Y0=!@\4!.P56 -XM'A``#X_\`@``2(M<)`A(BQ/'1"08`````$B%TG0E2(L-,"@0`$B#>A@!=`Y( -XM8T0D&$B)%,"08`4B+4A!(A=)UXD2+%2LI$`!(BT0D"$6%THM0&'0(BT`L -XM@\`!`<*+#;`H$`"%R70-2(M<)`B+0QR#P`$!PH,]Z"@0``%$B>B#VO_WV$0! -XMZHE$)!`APHE4)"2+1"0DBQ69'1```<`YT`^/1P(``(G0P?H?]WPD)(M4)!A! -XMB<>)T,'Z'T'W_X/Z`4B+5"0(@]C_B40D'$B+`DB%P`^$PP$``$B#>&``#X6X -XM`0``1(M$)!Q%A<`/CGP!``#'1"04`````,=$)"``````BSUA*!``BU0D((7_ -XM#T54)!1%A?^)5"04#XX0`0``1(MD)"0Q[4&^`0```$B+3"0(2(L%'"<0`(M1 -XM'(MQ+$AC3"042(L\R.C(_/__BU0D%(G!BS40*!``BT0D%`-$)!R+7"08@\(! -XMA?8/1-`YVHE4)!0/C;<````!S4*-7"T`(UPD$$0YXW]=BP7:)Q``AASUO__ZZB+'9\E$`"%VW5#2(LUG"40`(M&#(/H`87` -XMB48,>$)(BP;&``I(@\`!2(D&@T0D(`&+1"0<.40D(`^%E/[__TB#Q"A;74%< -XM05U!7D%?PTB+-5DE$`"_"@```.B3T___Z\N_"@```.@'UO__Z[]$BPW6)A`` -XM187)=0B%R0^$-/[__TB+3"0(2(LU>280`+_"7$``2(M1"$B#Z@%(C0PR,=)( -XMB0/A7L```!(BS47)!``BT8,@^@!A<")1@P/B(X```!(BP9%,>3& -XM``I(@\`!2(D&BU4$](BP;&``I(@\`!2(D&6UU! -XM7,-(BS6<(Q``OPH```!%,>3HT]'__^N76UU!7$B+-8(C$`"_"@```.F\T?__ -XMOPH```!%,>3H+]3__^EP____6UU!7+\*````Z1S4__]!5T%628G^055!5%53 -XM2('L:`@``$R+)TV%Y`^$\P(``$F#?"1@``^%YP(``$R-O"0P!```0;T!```` -XMQT0D'/_____'1"08`````.D[`@``D$F+C"2`````NO%80`"^`00``$R)_S'` -XM3(G[Z`W3__])BT0D>`^W0`@E`/```#T`H```#X3X`@``/0#@```/A.T"``"^ -XM.P```$B)W^B[`0```.BVT?__@^@!#X00!0``3(GO0;T!````Z,_3__]F -XM9I"+30")3"0<28M<)"`/MTT*2(VT)$`(``!%BT8X08M6,+_07$``2(M#"$B) -XM1"0(08M&*(D$)$R+"S'`Z"W2__]$BQ6V(Q``1872#X51`P``1(L-7B,0`$6% -XMR0^%)P,```^W10@E`/```#T`(```#X0M`@``/0!@```/A"("``!%BT80187` -XM#X7F`P``BST3(Q``2(M52$&+=C2%_P^$OP,``+X%````3(G_0;D'````0;@@ -XM````N1M=0`#HS<___TR)_K\*74``,<#HGM'__V:0BPW:(A``A[__XL% -XMLR(0`(7`#X4;`@``#[=%""4`\```/0"@```/A&<"``"+!0$A$`"%P`^%"0(` -XM`$B+-?H@$`"+1@R#Z`&%P(E&#`^(KP,``$B+!L8`"DB#P`%(B09-BV0D$$V% -XMY`^$U0```$F#?"08`73JBQU8(A``28ML)'B%VP^%2P$``$2+'>0A$`!%A=L/ -XMA5X!```/MWT(2(VT)$`(``#H%M#__T6%[74-BT0D'#E%``^$'_[__TF#?"1@ -XM`&:0#X1J_?__28M$)`A-BX0D@````$R)^[H364``O@$$``!,B?](BT@H,<#H -XM;M#__^E<_?__1(LMVB$0`$6%[74*BRUK(1``A>UT+4F+5@A(BS5\(1``O\)< -XM0`!(@^H!2(T,,C'22(G(2/?V2(G&,<#H"=#__TV+)DV%Y`^%S?S__TB!Q&@( -XM``!;74%<05U!7D%?PTB)WK_Q6$``,<#H#-#__T&]`0```.EE_?__9F:09I"+ -XM112)PC#F@?K_````#X9U`0``#[;TO^I<0``QP.BJS___BPWH(!``AUF9F:09F9FD.DK^___Z&+-__^+..AKS/__2(L]D!T0`$B) -XMP4B)VKX/74``,<#H(LO__^E:_/__2(V4)%@(``"^`0```$R)[^B(S/__@^@! -XM=4F#PP&#^P1UWL:$)$H(```KZ<'Z__^_"@```.CTS?__Z4_\__]F9I#H]\S_ -XM_X,X%@^$=____TB)WK_Q6$``,<#H/\W__^F>^O__@_L##XZ$^O__9F:09I#K -XMKY"0D)"0D)"0D)"0D)"02(/L"$B+#>T<$`"_N%U``+H^````O@$```#H7Z@````$%6055%,>U!5$&)]#'V54B)_5-( -XM@>R8````2(GG3(V\)(P```#H2\S__T6%Y'46Z8P```!F9I!FD$F#Q0%(`=U% -XMA>1T>TECU$B)X4B)[DR)_^@_RO__2(7`2(G#=&)(@_O_=#Q(@_O^D'1JB[PD -XMC````('__P```'1UA4B!Q)@```!, -XMB>A;74%<05U!7D%?PT*-!*4`````2)A)`<7KW&9FD&:005>Z@````#'V059% -XM,?9!54F)_4%455-(@>R8````2(GGZ&;+__](C;PDC````$B)X;H&````3(GN -XMZ&[)__](A5T)8L%%QL0`(7`=,,/MCM(BS41&Q``@\4!2(/#`>A) -XMR?__1#GE==N+G"2,````30'E@?O_````=WM(BP7O&A``2&/3BT300*D```0` -XM#X0S____,<"%VW0U@?O_````#X?B````2(L%Q!H0`$ACTXM$T$`E```$X$B) -XMPH'B````X`^$K0```$B)T$C!Z!Y!`<;I\/[__SM&*`^V^GP*0(#_"@^%0___ -XM_^@_R___9F:0Z4+___^)W^CPR/__9F9FD.N&NH`````Q]DB)Y^@;RO__BQ5) -XM&A``A=)U>$B+-48:$`!!#[95`(M&#(/H`87`B48,>')(BP:($$B#P`%(B09) -XM@\4!08/&`>EY_O__3(GNO_%80``QP.@0RO__00'&2('$F````$2)\%M=05Q! -XM74%>05_#)0``!`!(@_@!&<"#R`'I1____XG?Z%[(___I(/___T$/MGT`2(LU -XMR1D0`.@(R/__ZYH[1B@/MOI\!D"`_PIU@.ASRO__ZX5F9I!FD$%7NH`````Q -XM]D4Q_T%6055)B?U!5%532('LF````$B)Y^A&R?__2(V\)(P```!(B>&Z!@`` -XM`$R)[NA.Q___2(7`28GM`P``28U&`DB#^`$/A@4!``"+G"2,````@?O_ -XM````#X>/`P``2(L%/AD0`$ACTXM$T$"I```$``^$`0,``(/[(@^$^`(``(/[ -XM7`^$[P(``$6%]GYH3(GK,>WK,TB+-?\8$``/MA.+1@R#Z`&%P(E&#`^('`,` -XM`$B+!H@02(/``4B)!H/%`4B#PP%$.?5T)T2+)<08$`!%A>1TP0^V.TB+-;T8 -XM$`"#Q0%(@\,!Z/7&__]$.?5UV8N<)(P````QP(7;=#6!^_\````/AZX#``!( -XMBP64&!``2&/3BT300"4```3@2(G"@>(```#@#X1V`P``2(G02,'H'D$!QTF# -XM_OX/A&P"``!)@_[_#X2U`@``30'UZV0 -XMZ>T```!(BS4L&!``BT8,@^@!A<")1@P/B)@!``!(BP;&`%Q(@\`!2(D&BST` -XM&!``A?\/A>\```!(BS7Y%Q``B=C`Z`8/ML"->#"+1@R#Z`&%P(E&#`^(-P$` -XM`$B+!D"(.$B#P`%(B0:+-<(7$`"%]@^%V@```$B+-;L7$`")V,#H`X/@!XUX -XM,(M&#(/H`87`B48,#X@W`0``2(L&0(@X2(/``4B)!HL-A!<0`(7)#X7#```` -XM2(LU?1<0`(G8@^`'C7@PBT8,@^@!A<")1@P/B"$!``!(BP9`B#A(@\`!2(D& -XM2(/%`4&#QP1!.>P/CM_^__]$BP4W%Q``0@^V7"T`187`#X3]_O__2(LU*1<0 -XM`+]<````Z&/%__^+/1$7$`"%_P^$$?___XG82(LU"!<0`,#H!@^V^(/',.@^ -XMQ?__BS7L%A``A?8/A"K___]F9F:0B=A(BS7?%A``P.@#B<>#YP>#QS#H$\7_ -XM_XL-P180`(7)#X0]____OP<```!(BS6U%A``(=^#QS#H[\3__^E/____.T8H -XM?`]`@/\*9F:09I`/A;7^___H40`#HS<3__TB%P$B)PP^$9O___T2+%5X5 -XM$`!%A=(/A98```!(BS56%1``BT8,@^@!A<")1@P/B*8```!(BP;&`%Q(@\`! -XM2(D&1(L-*140`$6%R7532(LU)140``^V0P&+5@P/OOB#Z@&%THE6#'A@2(L& -XM0(@X2(/``4B)!D&#QP+IE/S__R4```0`2(/X`1G`@\@!00''Z7[\__^)W^AB -XMP___Z53\__\/OGL!2(LUSA00`.@-P___Z\-(BS7`%!``OUP```#H^L+__^EY -XM____.U8H?`8\"F:0=97H9<7__^N;.T8H9F9FD`^-3?___[]<````9F:09I#H -XM1\7__^E&____9F:09F:005>Z@````#'V13'_059)B?Y!54%455-(@>R8```` -XM2(GGZ!;$__](C;PDC````$B)X;H&````3(GVZ!["__](AQUVHNL)(P````QP(7M=#6! -XM_?\````/AW0!``!(BP5O$Q``2&/5BT300"4```3@2(G"@>(```#@#X0_`0`` -XM2(G02,'H'DT![D$!Q^GH_O__9I`[1B@/MOI\"D"`_PH/A6#____HYF+_O__BP7/$A``A<`/A:P```!(BS7($A``BT8, -XM@^@!A<")1@P/B.D```!(BP;&`#](@\`!2(D&28/&`4&#QP&Z@````#'V2(GG -XMZ%?"___I//[__XGOZ`O!___IB?[__TB+-7L2$`"_/P```.BUP/__ZX:+!6$2 -XM$`"%P`^%LP```$B+-5H2$`"+1@R#Z`&%P(E&#`^(L0```$B+!L8`/TB#P`%( -XMB09!@\05_#2(LU'!(0`+\_````Z%;`___I -XM8____R4```0`2(/X`1G`@\@!Z;7^__^)[^AWP/__Z8[^__\[1BAF9I`/C>S^ -XM__^_/P```&9FD&:0Z)?"___IY?[__SM&*&9FD`^-"____[\_````9F:09I#H -XM=\+__^D$____2(LUIQ$0`+\_````Z.&____I7/___SM&*`^-1O___[\_```` -XM9I#H1\+__^E"____D)"0D)"02(L%"0\0`%-(@_C_=!4QV__02(N#6&=0`$B# -XMZPA(@_C_=>U;PY"0D$B#[`CHO\/__TB#Q`C#`````````````"1&'`@)`!,4U]#3TQ724142%,`;6%L;&]C`"5S.B`E -XM"``)3-D+"`E -XM,V0@`"4J&-X9'AB -XM>&5G961A8F%G86-A9`!,4T-/3$]24R!S:&]U;&0@=7-E(&-H87)A8W1E!`!`PP'")`!```<````'````*`;0`"3`````$(.$(P"10X8 -XM00X@@P2&`Q0````\````0!Q``#@`````1`X0`````!0```!4````@!Q``"(` -XM`````````````!0```!L````L!Q``#D`````00X0@P(``!0```"$````\!Q` -XM``X``````````````!0```"<`````!U``$0``````````````!0```"T```` -XM4!U```X``````````````!0```#,````8!U``$0``````````````!0```#D -XM````L!U```X``````````````!0```#\````P!U``$0``````````````!0` -XM```4`0``$!Y```X``````````````!0````L`0``(!Y``$0````````````` -XM`!0```!$`0``&!@``````-````-P!``!P*T``AP(```!"#A!'#AB.`X\" -XM2`X@C01*#BA!#C!!#CA$#D"#!X8&C`4````````L````%`(````N0`#F"``` -XM`$(.$$(.&(T#C@)*#B!!#BA!#C"#!H8%C`1+#M`,```4````1`(``/`V0`!5 -XM`````$0.$``````4````7`(``%`W0``@`````$$.$(,"```4````=`(``'`W -XM0``D`````$0.(``````T````C`(``*`W0`!O`0```$(.$(\"2@X80@X@0@XH -XM00XP00XX1`Y@@P>&!HP%C02.`P```````!P```#$`@``$#E``*L`````00X0 -XM00X8@P.&`DH.(```%````.0"``#`.4``1@$```!'#A``````'````/P"```0 -XM.T``#@$```!!#A!!#AA$#H`!@P.&`@`4````'`,``"`\0``V```````````` -XM```4````-`,``&`\0`!G`````$0.$``````4````3`,``-`\0``H`P```$0. -XM$``````<````9`,```!`0``G`0```$J,`X,%40XPA@2-`@```!P```"$`P`` -XM,$%``(L`````00X0A@)$#AA$#B"#`P``-````*0#``#`04``90,```!"#A!" -XM#AA"#B!"#BA!#C!!#CA$#F"#!X8&C`6-!(X#CP(````````<````W`,``#!% -XM0`!``0```$(.$$$.&(8#C`)$#B"#!#0```#\`P``<$9``&(&````0@X00@X8 -XMC@./`D4.($(.*$$.,$$..$<.H!&#!X8&C`6-!```````%````#0$``#@3$`` -XM*0````!$#A``````-````$P$```034``ZP````!"#A!'#AA"#B"-!(X#CP)% -XM#BB,!48.,(8&1`XX1P[0`8,'```````T````A`0```!.0``;`@```$(.$$D. -XM&(X#CP)%#B"-!$4.*$$.,$$..$<.T`&#!X8&C`4``````#0```"\!```(%!` -XM`"H%````0@X0CP),#AA"#B"-!(X#10XH00XP00XX1P[0`8,'A@:,!0`````` -XM-````/0$``!054``^@(```!"#A"/`DP.&(X#10X@0@XH00XP00XX1P[0`8,' -XMA@:,!8T$````````````&``````````!>E(``7@0`0,,!PB0`0```````!0` -XM```@````4%A``"4`````2`X0@P(```$``````````0`````````!```````` -XM`%T``````````0````````")``````````P`````````.!=````````-```` -XM`````'A80```````!`````````#X`4````````4`````````6`Q````````& -XM`````````&`$0```````"@`````````1`P````````L`````````&``````` -XM```5`````````````````````P````````"(9U````````(`````````8`8` -XM```````4``````````<`````````%P````````#8$$````````<````````` -XM2!!````````(`````````)``````````"0`````````8`````````/[__V\` -XM````&!!```````#___]O``````$`````````\/__;P````!J#T`````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````/__________``````````#__________P````````````````````"P -XM95````````````````````````````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````'`@)``D1G)E94)31#H@'`@)`!'0T,Z -XM("A'3E4I(#0N,BXQ(#(P,#'`@)`!'0T,Z("A' -XM3E4I(#0N,BXQ(#(P,#6YS='(`+F=N=2YV97)S:6]N -XM`"YG;G4N=F5R'0`+F9I;FD`+G)O9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]F%A```````!X6`````````X````````````````````$```````````````` -XM````>0````$````"`````````)!80```````D%@```````#,!0`````````` -XM````````$````````````````````($````!`````@````````!<7D`````` -XM`%Q>````````"`````````````````````0```````````````````"/```` -XM`0````,``````````&!0````````8````````$P````````````````````0 -XM````````````````````E0````$````"`````````%!@4```````4&`````` -XM``!@!0``````````````````"````````````````````)\````&`````P`` -XM``````"P95```````+!E````````L`$````````%``````````@````````` -XM$`````````"H`````0````,`````````8&=0``````!@9P```````!`````` -XM```````````````(````````````````````KP````$````#`````````'!G -XM4```````<&<````````0````````````````````"``````````````````` -XM`+8````!`````P````````"`9U```````(!G````````"``````````````` -XM``````@```````````````````"[`````0````,`````````B&=0``````"( -XM9P```````#@"```````````````````(``````````@`````````P`````@` -XM```#`````````,!I4```````P&D```````"P`0``````````````````(``` -XM`````````````````,4````!`````````````````````````,!I```````` -XMGP(```````````````````$````````````````````!`````P`````````` -XM``````````````!?;````````,X````````````````````!```````````` -X&```````` -X` -Xend -END-of-ls.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/out/strip-debug-3.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/out/strip-debug-3.out.shar deleted file mode 100644 index 8705146d..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/out/strip-debug-3.out.shar +++ /dev/null @@ -1,1342 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# ls.1.uu -# ls.uu -# -echo x - ls.1.uu -sed 's/^X//' >ls.1.uu << 'd7b52e16e66a16e1176ab066b800c102' -Xbegin 444 ls.1 -XM?T5,1@(!`0D```````````(`/@`!````H!M```````!``````````#AM```` -XM`````````$``.``'`$``&@`9``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````&1>````````9%X````````` -XM`!````````$````&`````&``````````8%````````!@4```````P`D````` -XM``!P"P``````````$````````@````8```"P90```````+!E4```````L&50 -XM``````"P`0```````+`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````7%X```````!<7D```````%Q>0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``9-0P`0P```%4````]````40```!4`````````.@```%`````````` -XM.0```#<```!.````0P```!0`````````/@```#0```!!````2P`````````I -XM`````````!8````%````2@```%(```!%`````````!H````J````)````$8` -XM`````````````#$`````````4P```"4`````````"0````@````````````` -XM```````,````.P```#,```!/````"P```!P```!4````+P```!T````````` -XM`````$T````L````1P```$P``````````````#\`````````20```$`````` -XM````+@```#(````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````#0`` -XM``````````````````8`````````"@`````````````````````````````` -XM$0```!@````````````````````>`````````!D````7``````````(````2 -XM````````````````````(@````X````0````#P````<````?````$P`````` -XM```````````````````C````+0```"`````````````````````A````-0`` -XM```````X````,```````````````&P```"8````G`````````#8````$```` -XM2````$(`````````/````$0`````````*P`````````H```````````````` -XM`````````````````````````&X!```2````7!=```````"*`````````-`" -XM```2````;!=```````#2`````````)D!```2````?!=```````"0```````` -XM`),"```2````C!=````````5`````````'4"```2````G!=````````R```` -XM`````"T!```2````K!=````````;`````````'L"```2````O!=````````` -XM`````````/8````2````S!=```````!\`0````````X````1`/'_L&50```` -XM`````````````*$!```2````W!=``````````````````!<````2````[!=` -XM``````"_`P```````&T````2````_!=```````#A`P```````%("```2```` -XM#!A```````">`````````!`"```2````'!A```````!5`````````!`````````$H!```2 -XM````_!A```````!?`````````.X````2````#!E````````H`````````+D" -XM```2````'!E````````I`````````-\!```2````+!E```````#H`0`````` -XM`!<"```1`!<`P&E0```````$`````````"0"```2````/!E```````"M`@`` -XM`````+D!```1`!```&!0```````(`````````+X````2````3!E```````#X -XM`@```````+(````2````7!E```````"5`````````',````2````;!E````` -XM``"S`P````````D"```2````?!E```````!D`0```````#4"```2````C!E` -XM`````````````````,0!```2````G!E````````(`````````.4````2```` -XMK!E``````````````````-4"```2````O!E````````A`0```````)H!```2 -XM````S!E```````"B`````````)@"```2````W!E````````/`0```````.X" -XM```0`/'_P&E0`````````````````-P````2````[!E```````!J`0`````` -XM`.("```2````_!E```````"H`````````),````1`!<`Q&E0```````$```` -XM`````'D````2````#!I```````#8!0```````,P!```2````'!I```````!? -XM`````````&@"```2````+!I```````#0!````````"T````2``T`>%A````` -XM`````````````*8!```2````/!I```````"E`@```````.`````````*$````2````7!M````````````` -XM`````$D````@`````````````````````````"0!```2````;!M````````` -XM`````````($````2````?!M```````!C`0```````,8````2````C!M````` -XM``!=``````````!L:6)U=&EL+G-O+C<`7T193D%-24,`:'5M86YI>F5?;G5M -XM8F5R`%]I;FET`%]F:6YI`%]'3$]"04Q?3T9&4T547U1!0DQ%7P!?2G9?4F5G -XM:7-T97)#;&%S&ET`'-E=&QO8V%L90!F='-? -XMF4`871O:0!U -XM#_____)390$`!H`0```.G0_____R4N4!``:`(```#IP/____\E -XM)E`0`&@#````Z;#_____)1Y0$`!H!````.F@_____R464!``:`4```#ID/__ -XM__\E#E`0`&@&````Z8#_____)090$`!H!P```.EP_____R7^3Q``:`@```#I -XM8/____\E]D\0`&@)````Z5#_____)>Y/$`!H"@```.E`_____R7F3Q``:`L` -XM``#I,/____\EWD\0`&@,````Z2#_____)=9/$`!H#0```.D0_____R7.3Q`` -XM:`X```#I`/____\EQD\0`&@/````Z?#^____);Y/$`!H$````.G@_O___R6V -XM3Q``:!$```#IT/[___\EKD\0`&@2````Z<#^____):9/$`!H$P```.FP_O__ -XM_R6>3Q``:!0```#IH/[___\EED\0`&@5````Z9#^____)8Y/$`!H%@```.F` -XM_O___R6&3Q``:!<```#I````Z0#^____)49/ -XM$`!H'P```.GP_?___R4^3Q``:"````#IX/W___\E-D\0`&@A````Z=#]____ -XM)2Y/$`!H(@```.G`_?___R4F3Q``:",```#IL/W___\E'D\0`&@D````Z:#] -XM____)19/$`!H)0```.F0_?___R4.3Q``:"8```#I@/W___\E!D\0`&@G```` -XMZ7#]____)?Y.$`!H*````.E@_?___R7V3A``:"D```#I4/W___\E[DX0`&@J -XM````Z4#]____)>9.$`!H*P```.DP_?___R7>3A``:"P```#I(/W___\EUDX0 -XM`&@M````Z1#]____)#\____);9.$`!H,0```.G0_/___R6N3A``:#(```#IP/S_ -XM__\EIDX0`&@S````Z;#\____)9Y.$`!H-````.F@_/___R663A``:#4```#I -XMD/S___\ECDX0`&@V````Z8#\____)89.$`!H-P```.EP_/___R5^3A``:#@` -XM``#I8/S___\E=DX0`&@Y````Z5#\____)6Y.$`!H.@```.E`_/___R5F3A`` -XM:#L```#I,/S___\E7DX0`&@\````Z2#\____)59.$`!H/0```.D0_/___R5. -XM3A``:#X```#I`/S___\E1DX0`&@_````Z?#[____)3Y.$`!H0````.G@^___ -XM_R4V3A``:$$```#IT/O___\E+DX0`&A"````Z<#[____)29.$`!H0P```.FP -XM^___`````$%43(UG"%53BQ](8\.%VTB-;,<02(DM+4\0`'XZ2(M7"$B%TG0Q -XM2(D5,T00``^V`H3`="-(@\(!/"](BP4?1!``2`]$PDB)!11$$``/M@)(@\(! -XMA,!UX;BP95``2(7`="M(B??H$____[]X6$``Z`G____H(/O__XG?2(GJ3(GF -XMZ-L1``")Q^AP_O__Z(O\___KUI"0D)"0D)"0D)"0D)!(@^P(@#V931```'00 -XMZR202(/`"$B)!;5#$`#_TDB+!:Q#$`!(BQ!(A=)UY,8%<4T0``%(@\0(PV9F -XM9I!F9F:02(,]^$H0``!T%K@`````2(7`=`R_@&=0`$F)PT'_XY#SPY"0D)"0 -XMD)"0D)"0D)"04TB+5GBY`0```$B+1WA(BUA(2#E:2'X$6XG(PWT'N?_____K -XM\UM(B[:`````2(N_@````.E#_/__9F9FD&9FD$B)\$B)_DB)Q^FR____9I!( -XMBU9X2(M'>$B+2#A(.4HX?@:X`0```,-\#$B+2$!(.4I`?^Y]"[C_____9F:0 -XM9I##2(NV@````$B+OX````#IZ/O__V9F9I!F9F:09F9FD$B)\$B)_DB)Q^FB -XM____9I!(BU9X2(M'>$B+2&A(.4IH?@:X`0```,-\#$B+2'!(.4IP?^Y]"[C_ -XM____9F:09I##2(NV@````$B+OX````#IB/O__V9F9I!F9F:09F9FD$B)\$B) -XM_DB)Q^FB____9I!(BU9X2(M'>$B+2!A(.4H8?@:X`0```,-\#$B+2"!(.4H@ -XM?^Y]"[C_____9F:09I##2(NV@````$B+OX````#I*/O__V9F9I!F9F:09F9F -XMD$B)\$B)_DB)Q^FB____9I!(BU9X2(M'>$B+2"A(.4HH?@:X`0```,-\#$B+ -XM2#!(.4HP?^Y]"[C_____9F:09I##2(NV@````$B+OX````#IR/K__V9F9I!F -XM9F:09F9FD$B)\$B)_DB)Q^FB____9I!(BX>`````2(N^@````$B)QNF6^O__ -XM9F9FD&9FD&9FD$B+MH````!(B[^`````Z7GZ__^0D)"0D)"0D)"0D)"02(L_ -XMBU=H@_H'=%5(BS:+3FB#^0=T2H/Z"G0F@_D*="$YRG0L2(-_8`!U)8L%"TL0 -XM`(7`=1N#Z@&X`0```'4'\\/IFO___X/I`;C_____=.],BQW92A``0?_C9F:0 -XM9F:0,<##9F9FD&9FD&9FD&9FD$%7059!54%408G455-(@>QH!0``1(L5%4P0 -XM`$B)?"1(2(ET)$!(QX0D&`4```````!%A=)U$$2+#?=+$`!%A$)%@%````````QX0D5`4```````!(QX0D*`4```````!(QX0D,`4````` -XM``!(QX0D.`4```````!(QX0D0`4```````!(QX0D(`4```````!T"8`X``^% -XMD08``$B#?"1```^$+@8``$B+7"1`08/D`DC'1"10`````,=$)%@`````QT0D -XM?`````!(QT0D<`````!$B60D/.G,`@``@_@*#X3/`@``2(-\)$@`#X2K`P`` -XM2(N#@````(`X+@^$@`,``$B+0TA(.X0D,`4``$@/1H0D,`4``(L-M4H0`(7) -XM2(F$)#`%``!U"HL57TH0`(72="E(BW-(2(N[@````.AG+```2#N$)#`%``!( -XM#T:$)#`%``!(B80D,`4``(M$)%R%P`^$,P(``$R+8WA)BT0D4$@[A"1`!0`` -XM2`].A"1`!0``2(F$)$`%``!!BT0D!$@[A"0X!0``2`]&A"0X!0``2(F$)#@% -XM``!!#[=$)`I(.X0D*`4``$@/1H0D*`4``$B)A"0H!0``28M$)$A(.X0D2`4` -XM`$@/3H0D2`4``$B)A"1(!0``28M$)%!(`40D4(L%"4H0`(7`#X2>`0``BP6C -XM2!``A<`/A*L"``!!BTPD#$B-O"3P!```NO180`"^#0```#'`Z%WX__]!BTPD -XM$$B-O"0`!0``NO180`"^#0```#'`Z#_X__](C80D\`0``$B)1"1@2(V$)``% -XM``!(B40D:$B+?"1@Z'OY__])B<:+A"14!0``2(M\)&A).<9$B?`/1H0D5`4` -XM`(F$)%0%``#H4OG__TF)Q8N$)%@%``!).<5$B>@/1H0D6`4``$4Q_XF$)%@% -XM``"+!3I)$`"%P`^%4P(``(L%Y$@0`#'22,>$)!@%````````A<`/A:,"``!- -XM`?5+C7PO+$@!U^A6^/__2(7`2(G%#X3`"```2(UX($B).$B+="1@Z.GX__]) -XMC7PN(4B)?0A(BW0D:.C6^/__00^W1"0()0#P```]`"````^$IP$``#T`8``` -XM#X2<`0``1(L=KD@0`$6%VP^%I`$``$2+%59($`!%A=)T.D2+#9)($`!)C5SCHB?7__TB+LX`` -XM``!(B<*_[5A``#'`Z"/V__](QT,8`0```,<%X480``$```!(BUL02(7;=;M$ -XMBT0D?$6%P`^$\P(``$B+1"1`BTPD7$B)A"20!```BT0D?(7)B80DI`0``$B+ -XMA"0P!0``B80DJ`0```^%"P4``$B-O"20!```_Q5%1A``BQ6[1Q``QP5]1A`` -XM`0```(72=!](@WPD0`!T%TB+7"1`2(M[(.@O]___2(M;$$B%VW7N2('$:`4` -XM`%M=05Q!74%>05_#BS421A``A?8/A7+\__](QT,8`0```.D#____@^@!#X5< -XM_/__BSWJ11``A?\/A4[\___KVD&+?"0,,?;HM/7__TB)1"1@08M\)!`Q]NA3 -XM]/__2(E$)&CIA/W__T2+'1)'$`#'1"18`0```$6%VP^$7/[__TJ-?"TB2(E] -XM$$B+="1PZ.[V__](BWPD<.B$]O__Z3K^__]!BWPD7.C5\O__2(7`2(E$)'`/ -XMA+L&``"`.`!U($B)Q^A:]O__O_=80`#H_HO_3__XM$)#R%P'1X2(NT)!`%``!(B>_H=_7_ -XM_X/``71X2(N\)!`%``!(C;0D&`4``.@-\___@\`!=%Y(B[PD$`4``.A[\___ -XM2(.\)!@%````='E(B[PD&`4``.C#]?__2#N$)"`%``!(B<)(BX0D(`4``$@/ -XM1\)(B80D(`4``.F9_/__2(NT)!`%``!(B>_H;_+__X/``76(2(M#"$B+DX`` -XM``"_!5E``$B+<#`QP.@?]/__2(N\)!`%``#H`O/__TB#O"08!0```'6'O_=8 -XM0`#H'?+__TB)A"08!0``Z7#___](BT,(2(VL)(````!,BX.`````NA-90`"^ -XM`00``$B)[TB+2"@QP.BU\___Z?'^___'1"1\`````$C'1"10`````,=$)%@` -XM````BST)11``A?]U#HLUFT00`(7V#X1I_?__2(-\)$@`#X7I_/__Z5C]__\Q -XMP(,]>400```/E<")1"1OX__](B`.CIUY3PZ=>'&`3`/MD(!B$$!2(/!`L9!`0`/ -XMMD("2(/"`83`==F`>?\Z#X08!```2(V$)"`%``!(C8PD0`4``$B-E"0X!0`` -XM3(V,)%0%``!,C80D*`4``+Z064``2(E$)"!(C80D,`4``$B)[TB)1"082(V$ -XM)$@%``!(B40D$$B-A"1](B80D2`4``.AA\O__ -XMZ6+W__^+1"182(N,)$`%``!(C9PDT`0``+H964``OA@```!(B=^)A"2@!``` -XM2(M$)%!(B80DF`0``#'`Z!#Q__](B=F+`4B#P02-D/_^_O[WT"'"@>*`@("` -XM=.B)T+X8````2(G?P>@0]\*`@```#T302(U!`D@/1,B+A"1$)%@%````````QX0D7`4```````!(QX0D -XM2`4```````!(QX0D,`4```````!$BP4Q0!``,___V;'`3``Z=[[__]( -XMC4T"9L=%`#`ZQD4"`.EW^___OOE80`"_`0```#'`Z&OO__]F9F:09F9FD&9F -XM9I!F9I!!5[C`'D``059!B?Y(B?=!54&)U3'21(GN05154TB#[`B+#7$^$`"% -XMR4@/1-#HRN[__TB%P$F)Q`^$.`(``#'V2(G'Z`3N__](AP$``(L%^#T0`(7`#X0(`0``BP5Z/1``A<`/A4D! -XM``!(BS5S/1``BT8,@^@!A<")1@P/B%H!``!(BP;&``I(@\`!2(D&2(M[,.BD -XM#P``OT=90`#HYNK__T2)_DR)Y^@K[?__1(GJ2(G&2(G?2(G%Z([R__^+!6@] -XM$`"%P`^%0/___TB%[0^$-____[H$````2(G>3(GGZ$/L___I(O___V:0@_@$ -XM=`F#^`SCHQNO__TB+LX````!(B<*_[5A``#'`Z&#L___'!28] -XM$``!````Z>7^__]F9I!FD$B+LX````"_*EE``#'`Z#GL___IR/[__^AO[/__ -XM1(L8187;#X6<````2(/$"%M=05Q!74%>05_#08/^`0^.-/___TB+>S#HQ0X` -XM`+]'64``Z`?J___'!<$\$``!````Z1+___^+!9H]$`"%P`^%9/[__T'VQ0A! -XMOP`!```/A5[^___I3_[__TB+-2H\$`"_"@```.ADZO__Z<;^__^+!4T\$`"% -XMP`^$-?[__^ER_O__OPH```#HPNS__V9FD&9FD.F>_O__ODE90`"_`0```#'` -XMZ.;L__^^(5E``+\!````,<#HU>S__V9FD&9FD&9FD$%6055)B?6^&UU``$%4 -XM55.)^S'_2('L(`8``$B-A"0`!```2(F$)`@&``#HO.S__[\!````Z*+L__^% -XMP`^$B````+]264``QP7/,1``4````.AVZ?__2(7`=`F`.``/A=`'``!(C90D -XM$`8``#'`OFAT"$"_`0```.C_Z?__@\`!=!8/MX0D$@8``&:%P'0)#[?`B06( -XM,1``QP5V/!```0```+T0````NLA90`!,B>Z)W^B&ZO__@_C_=$&#Z#&#^$=V -XM,.@8'@``Z]V_4EE``,<%/SL0``$```#H[NC__TB%P'2_2(G'Z*'H__^)!2\Q -XM$`#KKXG`_R3%.%I``(L-_CH0`$2+)=P4``+]:64``Z+'H__]( -XMA=(B<;HQ>K__X/H -XM`0^$-@8``(L%VCL0`(7`=#J^4#=``+\"````QP6^.Q```0```.BIZO__OE`W -XM0`"_`P```.B:ZO__OX990`#H0.C__TB)Q^@,"```BP7&.Q``A<`/A-D```"+ -XM%;P[$`"%TG4:BSU*.A``A?]U$(LUE#L0`(GH@\@!A?8/1.B+#5PZ$`")Z`R` -XMAB%TG4,1(LU(#L0`$6%]G0;1(L=##H0`$6%VP^$.@4``$C'!2`[$``" -XM````1(L5#3H0`$6%T@^$5`0``$2+#0DZ$`!%A;__TB%P`^%/O[__^E7_O__@\T@QP7Z.!```0```.F<_?__ -XMQP4#.A```````,<%&3H0``$```#'!/K__XL59340`+`!A=(/1056-1``B050-1``Z5SZ__]$BS5H-1`` -XM187V=;M$BQU(-A``187;#X2:`0``2,<%%#40`,`=0`#I6OO__XL]/340`(7_ -XM#X5!^___BS4;-A``A?8/A%0!``!(QP7H-!``$!Y``.DN^___BS4)-1``N#!% -XM0`"ZP$%``(7V2`]$PDB)!;XT$`#I)_O__TB-O"00`#IM?K__TR-M"0(!@``OW=90`!,B?;HX>7__TR) -XM]K]Z64``2(D%3C40`.C-Y?__3(GVOWU90`!(B06*-1``Z+GE__],B?:_@%E` -XM`$B)!98U$`#HI>7__TR)]K^#64``2(D%6C40`.B1Y?__2(7`2(D%$S40``^$ -XMT@```$B#/?4T$```#X1'^?__2(,]-S40```/A#GY__](@SWI-!````^$*_G_ -XM_\<%`340``$```#I)OG__TB)Q^A0X?__QP72-!```0```(D%U"D0`.E1^/__ -XMBPT!-1``A0`!%AXO__NG`W0`!(BSU.-!``O@$```!(@\0(Z43B__](BSW9,Q``NF`\ -XM0`"^`0```.@NXO__NF`\0`#KSF9F9I!F9F:09F:04XG[Z)C___^)WS'VZ+OB -XM___HUN/__XG>B<=;Z6S@__](@^P8N@$```!(C70D%T"(?"07OP$```#H+^#_ -XM_S'`2(/$&,-F9F:09F9FD&9F9I!!5[@;74``28G_059!54%455-(@^PH2(7_ -XM3`]$^$4Q[44Q]DR)_T4QY.A^X___9L=$)`X``$B)!"3K1&9FD&:0#[[!@^@P -XMB0-F@WPD#@`/A,````!FQT0D#@$`2(/%`4B#PP1(@_T"=5)!@\4!28/&#$F# -XMQ`)!@_T+#X3A````3#DD)$''AFAJ4```````=U!(BQ5Y)0``00^V!!2(1"00 -XM00^V1!0!B$0D$4ECQ3'M2(T$0$B-'(5@:E``#[9,+!"-0=`\!P^&=?___XU! -XMGSP'=R,/OL&#Z&&)`^E\____D$,/M@0\B$0D$$,/MD0\`8A$)!'KM8U!OSP' -XM=RD/OL%!QX9H:E```0```(/H08D#Z4?___^_.%U``#'`Z)S@___I+____P^V -XMP3L%]C`0`'T12&/02(L%]C`0`(N$D$`(``"#^'AT#P^^\;^`74``,<#H9^#_ -XM_\<#_____^G[_O__2(/$*%M=05Q!74%>05_#D%53B?M(C2Q;2(/L"(L$K6AJ -XM4`"%P'5YBQ2M8&I0`(/Z_W0E2(L]OC$0`#'VZ+O>__](AG_&```Z:H1``!F9F:09F:09F:02(/L"(L%5BT0`(7`=2A(BS53+1``BT8, -XM@^@!A<")1@QX+DB+!D"(.$B#P`%(B08QP$B#Q`C#2(LU*RT0`.AJV___,<`\```@?\`0```='4QP$B#Q`C#B?@E`/```#T`H``` -XM#X3N````#X>5````/0`0```/A'(!```]`$```&9FD&:0=#^#YTETQ8L%DRP0 -XM`(7`#X6I`0``2(LUC"P0`(M&#(/H`87`B48,#XB.`@``2(L&Q@`J2(/``4B) -XM!K@!````ZXV+%5DL$`"%T@^%P0```$B+-5(L$`"+1@R#Z`&%P(E&#`^(.@$` -XM`$B+!L8`+TB#P`%(B0:X`0```$B#Q`C#9I`]`,````^$H````#T`X```#X5L -XM____BP4$+!``A<`/A:L!``!(BS7]*Q``BT8,@^@!A<")1@P/B',!``!(BP;& -XM`"5(@\`!2(D&N`$```#I^_[__XL%QRL0`(7`#X6)`0``2(LUP"L0`(M&#(/H -XM`87`B48,#XC@````2(L&Q@!`2(/``4B)!K@!````Z;[^__](BS61*Q``OR\` -XM``#HR]G__[@!````Z:/^__^+!6\K$`"%P`^%9P$``$B+-6@K$`"+1@R#Z`&% -XMP(E&#`^(O@```$B+!L8`/4B#P`%(B0:X`0```.EF_O__BP4R*Q``A<`/A0\! -XM``!(BS4K*Q``BT8,@^@!A<")1@QX;$B+!L8`?$B#P`%(B0:X`0```.DM_O__ -XM.T8H#XV]_O__OR\```#HN-O__[@!````Z1#^__](BS7C*A``ORH```#H'=G_ -XM_[@!````Z?7]__\[1B@/C1?___^_0````.B`V___N`$```#IV/W__SM&*'V/ -XMOWP```#H9]O__[@!````Z;_]__\[1B@/C3G___^_/0```&9FD.A'V___N`$` -XM``#IG_W__SM&*`^-A/[__[\E````9F:0Z"?;__^X`0```.E__?__2(LU4BH0 -XM`+\E````Z(S8__^X`0```.ED_?__2(LU-RH0`+]`````Z''8__^X`0```.E) -XM_?__2(LU'"H0`+]\````Z%;8__^X`0```.DN_?__2(LU`2H0`+\]````Z#O8 -XM__^X`0```.D3_?__.T8H#XUI_?__ORH```#HGMK__[@!````Z?;\__]F9F:0 -XM9F9FD$B)7"3@3(ED)/!%,>1,B6PD^$B);"3H2(/L*$2+%3XK$`!(B?M)B=5( -XMBV]X1872#X7;````1(L-Q"H0`$6%R0^%C0```$2+!>0J$`!%AZ_ -XM!%U``$B)PD@#55!(B<%(@^H!2(G02,'Z/TCW^4B)PC'`Z,G8__]!`<3I.O__ -XM_V9FD&:0BU4$O[Q<0``QP.BMV/__08G$Z0[___]F9I!F9I!F9I!52(G]4TB# -XM[`A(BQ](A=MU+.ME2(LU?B@0`(M&#(/H`87`B48,>%A(BP;&``I(@\`!2(D& -XM2(M;$$B%VW0[2(-[&`%T\(M5'(MU+$B)W^A^_O__1(L=-R@0`$6%VW2U2(LU -XM,R@0`+\*````Z&W6__](BUL02(7;=<5(@\0(6UW#OPH```#HT]C__^NI9F:0 -XM9I!!5T%6055!5%532(/L*(,]5RD0``%(B7PD"(M'%$49[4&#Y0=!@\4!.P56 -XM'A``#X_\`@``2(M<)`A(BQ/'1"08`````$B%TG0E2(L-,"@0`$B#>A@!=`Y( -XM8T0D&$B)%,"08`4B+4A!(A=)UXD2+%2LI$`!(BT0D"$6%THM0&'0(BT`L -XM@\`!`<*+#;`H$`"%R70-2(M<)`B+0QR#P`$!PH,]Z"@0``%$B>B#VO_WV$0! -XMZHE$)!`APHE4)"2+1"0DBQ69'1```<`YT`^/1P(``(G0P?H?]WPD)(M4)!A! -XMB<>)T,'Z'T'W_X/Z`4B+5"0(@]C_B40D'$B+`DB%P`^$PP$``$B#>&``#X6X -XM`0``1(M$)!Q%A<`/CGP!``#'1"04`````,=$)"``````BSUA*!``BU0D((7_ -XM#T54)!1%A?^)5"04#XX0`0``1(MD)"0Q[4&^`0```$B+3"0(2(L%'"<0`(M1 -XM'(MQ+$AC3"042(L\R.C(_/__BU0D%(G!BS40*!``BT0D%`-$)!R+7"08@\(! -XMA?8/1-`YVHE4)!0/C;<````!S4*-7"T`(UPD$$0YXW]=BP7:)Q``AASUO__ZZB+'9\E$`"%VW5#2(LUG"40`(M&#(/H`87` -XMB48,>$)(BP;&``I(@\`!2(D&@T0D(`&+1"0<.40D(`^%E/[__TB#Q"A;74%< -XM05U!7D%?PTB+-5DE$`"_"@```.B3T___Z\N_"@```.@'UO__Z[]$BPW6)A`` -XM187)=0B%R0^$-/[__TB+3"0(2(LU>280`+_"7$``2(M1"$B#Z@%(C0PR,=)( -XMB0/A7L```!(BS47)!``BT8,@^@!A<")1@P/B(X```!(BP9%,>3& -XM``I(@\`!2(D&BU4$](BP;&``I(@\`!2(D&6UU! -XM7,-(BS6<(Q``OPH```!%,>3HT]'__^N76UU!7$B+-8(C$`"_"@```.F\T?__ -XMOPH```!%,>3H+]3__^EP____6UU!7+\*````Z1S4__]!5T%628G^055!5%53 -XM2('L:`@``$R+)TV%Y`^$\P(``$F#?"1@``^%YP(``$R-O"0P!```0;T!```` -XMQT0D'/_____'1"08`````.D[`@``D$F+C"2`````NO%80`"^`00``$R)_S'` -XM3(G[Z`W3__])BT0D>`^W0`@E`/```#T`H```#X3X`@``/0#@```/A.T"``"^ -XM.P```$B)W^B[`0```.BVT?__@^@!#X00!0``3(GO0;T!````Z,_3__]F -XM9I"+30")3"0<28M<)"`/MTT*2(VT)$`(``!%BT8X08M6,+_07$``2(M#"$B) -XM1"0(08M&*(D$)$R+"S'`Z"W2__]$BQ6V(Q``1872#X51`P``1(L-7B,0`$6% -XMR0^%)P,```^W10@E`/```#T`(```#X0M`@``/0!@```/A"("``!%BT80187` -XM#X7F`P``BST3(Q``2(M52$&+=C2%_P^$OP,``+X%````3(G_0;D'````0;@@ -XM````N1M=0`#HS<___TR)_K\*74``,<#HGM'__V:0BPW:(A``A[__XL% -XMLR(0`(7`#X4;`@``#[=%""4`\```/0"@```/A&<"``"+!0$A$`"%P`^%"0(` -XM`$B+-?H@$`"+1@R#Z`&%P(E&#`^(KP,``$B+!L8`"DB#P`%(B09-BV0D$$V% -XMY`^$U0```$F#?"08`73JBQU8(A``28ML)'B%VP^%2P$``$2+'>0A$`!%A=L/ -XMA5X!```/MWT(2(VT)$`(``#H%M#__T6%[74-BT0D'#E%``^$'_[__TF#?"1@ -XM`&:0#X1J_?__28M$)`A-BX0D@````$R)^[H364``O@$$``!,B?](BT@H,<#H -XM;M#__^E<_?__1(LMVB$0`$6%[74*BRUK(1``A>UT+4F+5@A(BS5\(1``O\)< -XM0`!(@^H!2(T,,C'22(G(2/?V2(G&,<#H"=#__TV+)DV%Y`^%S?S__TB!Q&@( -XM``!;74%<05U!7D%?PTB)WK_Q6$``,<#H#-#__T&]`0```.EE_?__9F:09I"+ -XM112)PC#F@?K_````#X9U`0``#[;TO^I<0``QP.BJS___BPWH(!``AUF9F:09F9FD.DK^___Z&+-__^+..AKS/__2(L]D!T0`$B) -XMP4B)VKX/74``,<#H(LO__^E:_/__2(V4)%@(``"^`0```$R)[^B(S/__@^@! -XM=4F#PP&#^P1UWL:$)$H(```KZ<'Z__^_"@```.CTS?__Z4_\__]F9I#H]\S_ -XM_X,X%@^$=____TB)WK_Q6$``,<#H/\W__^F>^O__@_L##XZ$^O__9F:09I#K -XMKY"0D)"0D)"0D)"0D)"02(/L"$B+#>T<$`"_N%U``+H^````O@$```#H7Z@````$%6055%,>U!5$&)]#'V54B)_5-( -XM@>R8````2(GG3(V\)(P```#H2\S__T6%Y'46Z8P```!F9I!FD$F#Q0%(`=U% -XMA>1T>TECU$B)X4B)[DR)_^@_RO__2(7`2(G#=&)(@_O_=#Q(@_O^D'1JB[PD -XMC````('__P```'1UA4B!Q)@```!, -XMB>A;74%<05U!7D%?PT*-!*4`````2)A)`<7KW&9FD&:005>Z@````#'V059% -XM,?9!54F)_4%455-(@>R8````2(GGZ&;+__](C;PDC````$B)X;H&````3(GN -XMZ&[)__](A5T)8L%%QL0`(7`=,,/MCM(BS41&Q``@\4!2(/#`>A) -XMR?__1#GE==N+G"2,````30'E@?O_````=WM(BP7O&A``2&/3BT300*D```0` -XM#X0S____,<"%VW0U@?O_````#X?B````2(L%Q!H0`$ACTXM$T$`E```$X$B) -XMPH'B````X`^$K0```$B)T$C!Z!Y!`<;I\/[__SM&*`^V^GP*0(#_"@^%0___ -XM_^@_R___9F:0Z4+___^)W^CPR/__9F9FD.N&NH`````Q]DB)Y^@;RO__BQ5) -XM&A``A=)U>$B+-48:$`!!#[95`(M&#(/H`87`B48,>')(BP:($$B#P`%(B09) -XM@\4!08/&`>EY_O__3(GNO_%80``QP.@0RO__00'&2('$F````$2)\%M=05Q! -XM74%>05_#)0``!`!(@_@!&<"#R`'I1____XG?Z%[(___I(/___T$/MGT`2(LU -XMR1D0`.@(R/__ZYH[1B@/MOI\!D"`_PIU@.ASRO__ZX5F9I!FD$%7NH`````Q -XM]D4Q_T%6055)B?U!5%532('LF````$B)Y^A&R?__2(V\)(P```!(B>&Z!@`` -XM`$R)[NA.Q___2(7`28GM`P``28U&`DB#^`$/A@4!``"+G"2,````@?O_ -XM````#X>/`P``2(L%/AD0`$ACTXM$T$"I```$``^$`0,``(/[(@^$^`(``(/[ -XM7`^$[P(``$6%]GYH3(GK,>WK,TB+-?\8$``/MA.+1@R#Z`&%P(E&#`^('`,` -XM`$B+!H@02(/``4B)!H/%`4B#PP%$.?5T)T2+)<08$`!%A>1TP0^V.TB+-;T8 -XM$`"#Q0%(@\,!Z/7&__]$.?5UV8N<)(P````QP(7;=#6!^_\````/AZX#``!( -XMBP64&!``2&/3BT300"4```3@2(G"@>(```#@#X1V`P``2(G02,'H'D$!QTF# -XM_OX/A&P"``!)@_[_#X2U`@``30'UZV0 -XMZ>T```!(BS4L&!``BT8,@^@!A<")1@P/B)@!``!(BP;&`%Q(@\`!2(D&BST` -XM&!``A?\/A>\```!(BS7Y%Q``B=C`Z`8/ML"->#"+1@R#Z`&%P(E&#`^(-P$` -XM`$B+!D"(.$B#P`%(B0:+-<(7$`"%]@^%V@```$B+-;L7$`")V,#H`X/@!XUX -XM,(M&#(/H`87`B48,#X@W`0``2(L&0(@X2(/``4B)!HL-A!<0`(7)#X7#```` -XM2(LU?1<0`(G8@^`'C7@PBT8,@^@!A<")1@P/B"$!``!(BP9`B#A(@\`!2(D& -XM2(/%`4&#QP1!.>P/CM_^__]$BP4W%Q``0@^V7"T`187`#X3]_O__2(LU*1<0 -XM`+]<````Z&/%__^+/1$7$`"%_P^$$?___XG82(LU"!<0`,#H!@^V^(/',.@^ -XMQ?__BS7L%A``A?8/A"K___]F9F:0B=A(BS7?%A``P.@#B<>#YP>#QS#H$\7_ -XM_XL-P180`(7)#X0]____OP<```!(BS6U%A``(=^#QS#H[\3__^E/____.T8H -XM?`]`@/\*9F:09I`/A;7^___H40`#HS<3__TB%P$B)PP^$9O___T2+%5X5 -XM$`!%A=(/A98```!(BS56%1``BT8,@^@!A<")1@P/B*8```!(BP;&`%Q(@\`! -XM2(D&1(L-*140`$6%R7532(LU)140``^V0P&+5@P/OOB#Z@&%THE6#'A@2(L& -XM0(@X2(/``4B)!D&#QP+IE/S__R4```0`2(/X`1G`@\@!00''Z7[\__^)W^AB -XMP___Z53\__\/OGL!2(LUSA00`.@-P___Z\-(BS7`%!``OUP```#H^L+__^EY -XM____.U8H?`8\"F:0=97H9<7__^N;.T8H9F9FD`^-3?___[]<````9F:09I#H -XM1\7__^E&____9F:09F:005>Z@````#'V13'_059)B?Y!54%455-(@>R8```` -XM2(GGZ!;$__](C;PDC````$B)X;H&````3(GVZ!["__](AQUVHNL)(P````QP(7M=#6! -XM_?\````/AW0!``!(BP5O$Q``2&/5BT300"4```3@2(G"@>(```#@#X0_`0`` -XM2(G02,'H'DT![D$!Q^GH_O__9I`[1B@/MOI\"D"`_PH/A6#____HYF+_O__BP7/$A``A<`/A:P```!(BS7($A``BT8, -XM@^@!A<")1@P/B.D```!(BP;&`#](@\`!2(D&28/&`4&#QP&Z@````#'V2(GG -XMZ%?"___I//[__XGOZ`O!___IB?[__TB+-7L2$`"_/P```.BUP/__ZX:+!6$2 -XM$`"%P`^%LP```$B+-5H2$`"+1@R#Z`&%P(E&#`^(L0```$B+!L8`/TB#P`%( -XMB09!@\05_#2(LU'!(0`+\_````Z%;`___I -XM8____R4```0`2(/X`1G`@\@!Z;7^__^)[^AWP/__Z8[^__\[1BAF9I`/C>S^ -XM__^_/P```&9FD&:0Z)?"___IY?[__SM&*&9FD`^-"____[\_````9F:09I#H -XM=\+__^D$____2(LUIQ$0`+\_````Z.&____I7/___SM&*`^-1O___[\_```` -XM9I#H1\+__^E"____D)"0D)"02(L%"0\0`%-(@_C_=!4QV__02(N#6&=0`$B# -XMZPA(@_C_=>U;PY"0D$B#[`CHO\/__TB#Q`C#`````````````"1&'`@)`!,4U]#3TQ724142%,`;6%L;&]C`"5S.B`E -XM"``)3-D+"`E -XM,V0@`"4J&-X9'AB -XM>&5G961A8F%G86-A9`!,4T-/3$]24R!S:&]U;&0@=7-E(&-H87)A8W1E!`!`PP'")`!```<````'````*`;0`"3`````$(.$(P"10X8 -XM00X@@P2&`Q0````\````0!Q``#@`````1`X0`````!0```!4````@!Q``"(` -XM`````````````!0```!L````L!Q``#D`````00X0@P(``!0```"$````\!Q` -XM``X``````````````!0```"<`````!U``$0``````````````!0```"T```` -XM4!U```X``````````````!0```#,````8!U``$0``````````````!0```#D -XM````L!U```X``````````````!0```#\````P!U``$0``````````````!0` -XM```4`0``$!Y```X``````````````!0````L`0``(!Y``$0````````````` -XM`!0```!$`0``&!@``````-````-P!``!P*T``AP(```!"#A!'#AB.`X\" -XM2`X@C01*#BA!#C!!#CA$#D"#!X8&C`4````````L````%`(````N0`#F"``` -XM`$(.$$(.&(T#C@)*#B!!#BA!#C"#!H8%C`1+#M`,```4````1`(``/`V0`!5 -XM`````$0.$``````4````7`(``%`W0``@`````$$.$(,"```4````=`(``'`W -XM0``D`````$0.(``````T````C`(``*`W0`!O`0```$(.$(\"2@X80@X@0@XH -XM00XP00XX1`Y@@P>&!HP%C02.`P```````!P```#$`@``$#E``*L`````00X0 -XM00X8@P.&`DH.(```%````.0"``#`.4``1@$```!'#A``````'````/P"```0 -XM.T``#@$```!!#A!!#AA$#H`!@P.&`@`4````'`,``"`\0``V```````````` -XM```4````-`,``&`\0`!G`````$0.$``````4````3`,``-`\0``H`P```$0. -XM$``````<````9`,```!`0``G`0```$J,`X,%40XPA@2-`@```!P```"$`P`` -XM,$%``(L`````00X0A@)$#AA$#B"#`P``-````*0#``#`04``90,```!"#A!" -XM#AA"#B!"#BA!#C!!#CA$#F"#!X8&C`6-!(X#CP(````````<````W`,``#!% -XM0`!``0```$(.$$$.&(8#C`)$#B"#!#0```#\`P``<$9``&(&````0@X00@X8 -XMC@./`D4.($(.*$$.,$$..$<.H!&#!X8&C`6-!```````%````#0$``#@3$`` -XM*0````!$#A``````-````$P$```034``ZP````!"#A!'#AA"#B"-!(X#CP)% -XM#BB,!48.,(8&1`XX1P[0`8,'```````T````A`0```!.0``;`@```$(.$$D. -XM&(X#CP)%#B"-!$4.*$$.,$$..$<.T`&#!X8&C`4``````#0```"\!```(%!` -XM`"H%````0@X0CP),#AA"#B"-!(X#10XH00XP00XX1P[0`8,'A@:,!0`````` -XM-````/0$``!054``^@(```!"#A"/`DP.&(X#10X@0@XH00XP00XX1P[0`8,' -XMA@:,!8T$````````````&``````````!>E(``7@0`0,,!PB0`0```````!0` -XM```@````4%A``"4`````2`X0@P(```$``````````0`````````!```````` -XM`%T``````````0````````")``````````P`````````.!=````````-```` -XM`````'A80```````!`````````#X`4````````4`````````6`Q````````& -XM`````````&`$0```````"@`````````1`P````````L`````````&``````` -XM```5`````````````````````P````````"(9U````````(`````````8`8` -XM```````4``````````<`````````%P````````#8$$````````<````````` -XM2!!````````(`````````)``````````"0`````````8`````````/[__V\` -XM````&!!```````#___]O``````$`````````\/__;P````!J#T`````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````/__________``````````#__________P````````````````````"P -XM95````````````````````````````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````'`@)``D1G)E94)31#H@'`@)`!'0T,Z -XM("A'3E4I(#0N,BXQ(#(P,#'`@)`!'0T,Z("A' -XM3E4I(#0N,BXQ(#(P,#6YS='(`+F=N=2YV97)S:6]N -XM`"YG;G4N=F5R6YA;6EC`"YC=&]R0```````7%X````````(````````````````````!``````````````` -XM`````)0````!`````P``````````8%````````!@````````3``````````` -XM`````````!````````````````````":`````0````(`````````4&!0```` -XM``!08````````&`%```````````````````(````````````````````I``` -XM``8````#`````````+!E4```````L&4```````"P`0````````4````````` -XM"``````````0`````````*T````!`````P````````!@9U```````&!G```` -XM````$`````````````````````@```````````````````"T`````0````,` -XM````````<&=0``````!P9P```````!`````````````````````(```````` -XM````````````NP````$````#`````````(!G4```````@&<````````(```` -XM````````````````"````````````````````,`````!`````P````````"( -XM9U```````(AG````````.`(```````````````````@`````````"``````` -XM``#%````"`````,`````````P&E0``````#`:0```````+`!```````````` -XM```````@````````````````````R@````$````````````````````````` -XMP&D```````"?`@```````````````````0````````````````````$````# -XM`````````````````````````%]L````````TP````````````````````$` -X.```````````````````` -X` -Xend -d7b52e16e66a16e1176ab066b800c102 -echo x - ls.uu -sed 's/^X//' >ls.uu << '4db11c737631d887608e3186a17a7a3e' -Xbegin 555 ls -XM?T5,1@(!`0D```````````(`/@`!````H!M```````!``````````#!M```` -XM`````````$``.``'`$``&@`9``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````&1>````````9%X````````` -XM`!````````$````&`````&``````````8%````````!@4```````P`D````` -XM``!P"P``````````$````````@````8```"P90```````+!E4```````L&50 -XM``````"P`0```````+`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````7%X```````!<7D```````%Q>0```````"``````````(``````````0` -XM````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -XM94)31``9-0P`0P```%4````]````40```!4`````````.@```%`````````` -XM.0```#<```!.````0P```!0`````````/@```#0```!!````2P`````````I -XM`````````!8````%````2@```%(```!%`````````!H````J````)````$8` -XM`````````````#$`````````4P```"4`````````"0````@````````````` -XM```````,````.P```#,```!/````"P```!P```!4````+P```!T````````` -XM`````$T````L````1P```$P``````````````#\`````````20```$`````` -XM````+@```#(````````````````````````````````````````````````` -XM```!`````````````````````````````````````P``````````````#0`` -XM``````````````````8`````````"@`````````````````````````````` -XM$0```!@````````````````````>`````````!D````7``````````(````2 -XM````````````````````(@````X````0````#P````<````?````$P`````` -XM```````````````````C````+0```"`````````````````````A````-0`` -XM```````X````,```````````````&P```"8````G`````````#8````$```` -XM2````$(`````````/````$0`````````*P`````````H```````````````` -XM`````````````````````````&X!```2````7!=```````"*`````````-`" -XM```2````;!=```````#2`````````)D!```2````?!=```````"0```````` -XM`),"```2````C!=````````5`````````'4"```2````G!=````````R```` -XM`````"T!```2````K!=````````;`````````'L"```2````O!=````````` -XM`````````/8````2````S!=```````!\`0````````X````1`/'_L&50```` -XM`````````````*$!```2````W!=``````````````````!<````2````[!=` -XM``````"_`P```````&T````2````_!=```````#A`P```````%("```2```` -XM#!A```````">`````````!`"```2````'!A```````!5`````````!`````````$H!```2 -XM````_!A```````!?`````````.X````2````#!E````````H`````````+D" -XM```2````'!E````````I`````````-\!```2````+!E```````#H`0`````` -XM`!<"```1`!<`P&E0```````$`````````"0"```2````/!E```````"M`@`` -XM`````+D!```1`!```&!0```````(`````````+X````2````3!E```````#X -XM`@```````+(````2````7!E```````"5`````````',````2````;!E````` -XM``"S`P````````D"```2````?!E```````!D`0```````#4"```2````C!E` -XM`````````````````,0!```2````G!E````````(`````````.4````2```` -XMK!E``````````````````-4"```2````O!E````````A`0```````)H!```2 -XM````S!E```````"B`````````)@"```2````W!E````````/`0```````.X" -XM```0`/'_P&E0`````````````````-P````2````[!E```````!J`0`````` -XM`.("```2````_!E```````"H`````````),````1`!<`Q&E0```````$```` -XM`````'D````2````#!I```````#8!0```````,P!```2````'!I```````!? -XM`````````&@"```2````+!I```````#0!````````"T````2``T`>%A````` -XM`````````````*8!```2````/!I```````"E`@```````.`````````*$````2````7!M````````````` -XM`````$D````@`````````````````````````"0!```2````;!M````````` -XM`````````($````2````?!M```````!C`0```````,8````2````C!M````` -XM``!=``````````!L:6)U=&EL+G-O+C<`7T193D%-24,`:'5M86YI>F5?;G5M -XM8F5R`%]I;FET`%]F:6YI`%]'3$]"04Q?3T9&4T547U1!0DQ%7P!?2G9?4F5G -XM:7-T97)#;&%S&ET`'-E=&QO8V%L90!F='-? -XMF4`871O:0!U -XM#_____)390$`!H`0```.G0_____R4N4!``:`(```#IP/____\E -XM)E`0`&@#````Z;#_____)1Y0$`!H!````.F@_____R464!``:`4```#ID/__ -XM__\E#E`0`&@&````Z8#_____)090$`!H!P```.EP_____R7^3Q``:`@```#I -XM8/____\E]D\0`&@)````Z5#_____)>Y/$`!H"@```.E`_____R7F3Q``:`L` -XM``#I,/____\EWD\0`&@,````Z2#_____)=9/$`!H#0```.D0_____R7.3Q`` -XM:`X```#I`/____\EQD\0`&@/````Z?#^____);Y/$`!H$````.G@_O___R6V -XM3Q``:!$```#IT/[___\EKD\0`&@2````Z<#^____):9/$`!H$P```.FP_O__ -XM_R6>3Q``:!0```#IH/[___\EED\0`&@5````Z9#^____)8Y/$`!H%@```.F` -XM_O___R6&3Q``:!<```#I````Z0#^____)49/ -XM$`!H'P```.GP_?___R4^3Q``:"````#IX/W___\E-D\0`&@A````Z=#]____ -XM)2Y/$`!H(@```.G`_?___R4F3Q``:",```#IL/W___\E'D\0`&@D````Z:#] -XM____)19/$`!H)0```.F0_?___R4.3Q``:"8```#I@/W___\E!D\0`&@G```` -XMZ7#]____)?Y.$`!H*````.E@_?___R7V3A``:"D```#I4/W___\E[DX0`&@J -XM````Z4#]____)>9.$`!H*P```.DP_?___R7>3A``:"P```#I(/W___\EUDX0 -XM`&@M````Z1#]____)#\____);9.$`!H,0```.G0_/___R6N3A``:#(```#IP/S_ -XM__\EIDX0`&@S````Z;#\____)9Y.$`!H-````.F@_/___R663A``:#4```#I -XMD/S___\ECDX0`&@V````Z8#\____)89.$`!H-P```.EP_/___R5^3A``:#@` -XM``#I8/S___\E=DX0`&@Y````Z5#\____)6Y.$`!H.@```.E`_/___R5F3A`` -XM:#L```#I,/S___\E7DX0`&@\````Z2#\____)59.$`!H/0```.D0_/___R5. -XM3A``:#X```#I`/S___\E1DX0`&@_````Z?#[____)3Y.$`!H0````.G@^___ -XM_R4V3A``:$$```#IT/O___\E+DX0`&A"````Z<#[____)29.$`!H0P```.FP -XM^___`````$%43(UG"%53BQ](8\.%VTB-;,<02(DM+4\0`'XZ2(M7"$B%TG0Q -XM2(D5,T00``^V`H3`="-(@\(!/"](BP4?1!``2`]$PDB)!11$$``/M@)(@\(! -XMA,!UX;BP95``2(7`="M(B??H$____[]X6$``Z`G____H(/O__XG?2(GJ3(GF -XMZ-L1``")Q^AP_O__Z(O\___KUI"0D)"0D)"0D)"0D)!(@^P(@#V931```'00 -XMZR202(/`"$B)!;5#$`#_TDB+!:Q#$`!(BQ!(A=)UY,8%<4T0``%(@\0(PV9F -XM9I!F9F:02(,]^$H0``!T%K@`````2(7`=`R_@&=0`$F)PT'_XY#SPY"0D)"0 -XMD)"0D)"0D)"04TB+5GBY`0```$B+1WA(BUA(2#E:2'X$6XG(PWT'N?_____K -XM\UM(B[:`````2(N_@````.E#_/__9F9FD&9FD$B)\$B)_DB)Q^FR____9I!( -XMBU9X2(M'>$B+2#A(.4HX?@:X`0```,-\#$B+2$!(.4I`?^Y]"[C_____9F:0 -XM9I##2(NV@````$B+OX````#IZ/O__V9F9I!F9F:09F9FD$B)\$B)_DB)Q^FB -XM____9I!(BU9X2(M'>$B+2&A(.4IH?@:X`0```,-\#$B+2'!(.4IP?^Y]"[C_ -XM____9F:09I##2(NV@````$B+OX````#IB/O__V9F9I!F9F:09F9FD$B)\$B) -XM_DB)Q^FB____9I!(BU9X2(M'>$B+2!A(.4H8?@:X`0```,-\#$B+2"!(.4H@ -XM?^Y]"[C_____9F:09I##2(NV@````$B+OX````#I*/O__V9F9I!F9F:09F9F -XMD$B)\$B)_DB)Q^FB____9I!(BU9X2(M'>$B+2"A(.4HH?@:X`0```,-\#$B+ -XM2#!(.4HP?^Y]"[C_____9F:09I##2(NV@````$B+OX````#IR/K__V9F9I!F -XM9F:09F9FD$B)\$B)_DB)Q^FB____9I!(BX>`````2(N^@````$B)QNF6^O__ -XM9F9FD&9FD&9FD$B+MH````!(B[^`````Z7GZ__^0D)"0D)"0D)"0D)"02(L_ -XMBU=H@_H'=%5(BS:+3FB#^0=T2H/Z"G0F@_D*="$YRG0L2(-_8`!U)8L%"TL0 -XM`(7`=1N#Z@&X`0```'4'\\/IFO___X/I`;C_____=.],BQW92A``0?_C9F:0 -XM9F:0,<##9F9FD&9FD&9FD&9FD$%7059!54%408G455-(@>QH!0``1(L5%4P0 -XM`$B)?"1(2(ET)$!(QX0D&`4```````!%A=)U$$2+#?=+$`!%A$)%@%````````QX0D5`4```````!(QX0D*`4```````!(QX0D,`4````` -XM``!(QX0D.`4```````!(QX0D0`4```````!(QX0D(`4```````!T"8`X``^% -XMD08``$B#?"1```^$+@8``$B+7"1`08/D`DC'1"10`````,=$)%@`````QT0D -XM?`````!(QT0D<`````!$B60D/.G,`@``@_@*#X3/`@``2(-\)$@`#X2K`P`` -XM2(N#@````(`X+@^$@`,``$B+0TA(.X0D,`4``$@/1H0D,`4``(L-M4H0`(7) -XM2(F$)#`%``!U"HL57TH0`(72="E(BW-(2(N[@````.AG+```2#N$)#`%``!( -XM#T:$)#`%``!(B80D,`4``(M$)%R%P`^$,P(``$R+8WA)BT0D4$@[A"1`!0`` -XM2`].A"1`!0``2(F$)$`%``!!BT0D!$@[A"0X!0``2`]&A"0X!0``2(F$)#@% -XM``!!#[=$)`I(.X0D*`4``$@/1H0D*`4``$B)A"0H!0``28M$)$A(.X0D2`4` -XM`$@/3H0D2`4``$B)A"1(!0``28M$)%!(`40D4(L%"4H0`(7`#X2>`0``BP6C -XM2!``A<`/A*L"``!!BTPD#$B-O"3P!```NO180`"^#0```#'`Z%WX__]!BTPD -XM$$B-O"0`!0``NO180`"^#0```#'`Z#_X__](C80D\`0``$B)1"1@2(V$)``% -XM``!(B40D:$B+?"1@Z'OY__])B<:+A"14!0``2(M\)&A).<9$B?`/1H0D5`4` -XM`(F$)%0%``#H4OG__TF)Q8N$)%@%``!).<5$B>@/1H0D6`4``$4Q_XF$)%@% -XM``"+!3I)$`"%P`^%4P(``(L%Y$@0`#'22,>$)!@%````````A<`/A:,"``!- -XM`?5+C7PO+$@!U^A6^/__2(7`2(G%#X3`"```2(UX($B).$B+="1@Z.GX__]) -XMC7PN(4B)?0A(BW0D:.C6^/__00^W1"0()0#P```]`"````^$IP$``#T`8``` -XM#X2<`0``1(L=KD@0`$6%VP^%I`$``$2+%59($`!%A=)T.D2+#9)($`!)C5SCHB?7__TB+LX`` -XM``!(B<*_[5A``#'`Z"/V__](QT,8`0```,<%X480``$```!(BUL02(7;=;M$ -XMBT0D?$6%P`^$\P(``$B+1"1`BTPD7$B)A"20!```BT0D?(7)B80DI`0``$B+ -XMA"0P!0``B80DJ`0```^%"P4``$B-O"20!```_Q5%1A``BQ6[1Q``QP5]1A`` -XM`0```(72=!](@WPD0`!T%TB+7"1`2(M[(.@O]___2(M;$$B%VW7N2('$:`4` -XM`%M=05Q!74%>05_#BS421A``A?8/A7+\__](QT,8`0```.D#____@^@!#X5< -XM_/__BSWJ11``A?\/A4[\___KVD&+?"0,,?;HM/7__TB)1"1@08M\)!`Q]NA3 -XM]/__2(E$)&CIA/W__T2+'1)'$`#'1"18`0```$6%VP^$7/[__TJ-?"TB2(E] -XM$$B+="1PZ.[V__](BWPD<.B$]O__Z3K^__]!BWPD7.C5\O__2(7`2(E$)'`/ -XMA+L&``"`.`!U($B)Q^A:]O__O_=80`#H_HO_3__XM$)#R%P'1X2(NT)!`%``!(B>_H=_7_ -XM_X/``71X2(N\)!`%``!(C;0D&`4``.@-\___@\`!=%Y(B[PD$`4``.A[\___ -XM2(.\)!@%````='E(B[PD&`4``.C#]?__2#N$)"`%``!(B<)(BX0D(`4``$@/ -XM1\)(B80D(`4``.F9_/__2(NT)!`%``!(B>_H;_+__X/``76(2(M#"$B+DX`` -XM``"_!5E``$B+<#`QP.@?]/__2(N\)!`%``#H`O/__TB#O"08!0```'6'O_=8 -XM0`#H'?+__TB)A"08!0``Z7#___](BT,(2(VL)(````!,BX.`````NA-90`"^ -XM`00``$B)[TB+2"@QP.BU\___Z?'^___'1"1\`````$C'1"10`````,=$)%@` -XM````BST)11``A?]U#HLUFT00`(7V#X1I_?__2(-\)$@`#X7I_/__Z5C]__\Q -XMP(,]>400```/E<")1"1OX__](B`.CIUY3PZ=>'&`3`/MD(!B$$!2(/!`L9!`0`/ -XMMD("2(/"`83`==F`>?\Z#X08!```2(V$)"`%``!(C8PD0`4``$B-E"0X!0`` -XM3(V,)%0%``!,C80D*`4``+Z064``2(E$)"!(C80D,`4``$B)[TB)1"082(V$ -XM)$@%``!(B40D$$B-A"1](B80D2`4``.AA\O__ -XMZ6+W__^+1"182(N,)$`%``!(C9PDT`0``+H964``OA@```!(B=^)A"2@!``` -XM2(M$)%!(B80DF`0``#'`Z!#Q__](B=F+`4B#P02-D/_^_O[WT"'"@>*`@("` -XM=.B)T+X8````2(G?P>@0]\*`@```#T302(U!`D@/1,B+A"1$)%@%````````QX0D7`4```````!(QX0D -XM2`4```````!(QX0D,`4```````!$BP4Q0!``,___V;'`3``Z=[[__]( -XMC4T"9L=%`#`ZQD4"`.EW^___OOE80`"_`0```#'`Z&OO__]F9F:09F9FD&9F -XM9I!F9I!!5[C`'D``059!B?Y(B?=!54&)U3'21(GN05154TB#[`B+#7$^$`"% -XMR4@/1-#HRN[__TB%P$F)Q`^$.`(``#'V2(G'Z`3N__](AP$``(L%^#T0`(7`#X0(`0``BP5Z/1``A<`/A4D! -XM``!(BS5S/1``BT8,@^@!A<")1@P/B%H!``!(BP;&``I(@\`!2(D&2(M[,.BD -XM#P``OT=90`#HYNK__T2)_DR)Y^@K[?__1(GJ2(G&2(G?2(G%Z([R__^+!6@] -XM$`"%P`^%0/___TB%[0^$-____[H$````2(G>3(GGZ$/L___I(O___V:0@_@$ -XM=`F#^`SCHQNO__TB+LX````!(B<*_[5A``#'`Z&#L___'!28] -XM$``!````Z>7^__]F9I!FD$B+LX````"_*EE``#'`Z#GL___IR/[__^AO[/__ -XM1(L8187;#X6<````2(/$"%M=05Q!74%>05_#08/^`0^.-/___TB+>S#HQ0X` -XM`+]'64``Z`?J___'!<$\$``!````Z1+___^+!9H]$`"%P`^%9/[__T'VQ0A! -XMOP`!```/A5[^___I3_[__TB+-2H\$`"_"@```.ADZO__Z<;^__^+!4T\$`"% -XMP`^$-?[__^ER_O__OPH```#HPNS__V9FD&9FD.F>_O__ODE90`"_`0```#'` -XMZ.;L__^^(5E``+\!````,<#HU>S__V9FD&9FD&9FD$%6055)B?6^&UU``$%4 -XM55.)^S'_2('L(`8``$B-A"0`!```2(F$)`@&``#HO.S__[\!````Z*+L__^% -XMP`^$B````+]264``QP7/,1``4````.AVZ?__2(7`=`F`.``/A=`'``!(C90D -XM$`8``#'`OFAT"$"_`0```.C_Z?__@\`!=!8/MX0D$@8``&:%P'0)#[?`B06( -XM,1``QP5V/!```0```+T0````NLA90`!,B>Z)W^B&ZO__@_C_=$&#Z#&#^$=V -XM,.@8'@``Z]V_4EE``,<%/SL0``$```#H[NC__TB%P'2_2(G'Z*'H__^)!2\Q -XM$`#KKXG`_R3%.%I``(L-_CH0`$2+)=P4``+]:64``Z+'H__]( -XMA=(B<;HQ>K__X/H -XM`0^$-@8``(L%VCL0`(7`=#J^4#=``+\"````QP6^.Q```0```.BIZO__OE`W -XM0`"_`P```.B:ZO__OX990`#H0.C__TB)Q^@,"```BP7&.Q``A<`/A-D```"+ -XM%;P[$`"%TG4:BSU*.A``A?]U$(LUE#L0`(GH@\@!A?8/1.B+#5PZ$`")Z`R` -XMAB%TG4,1(LU(#L0`$6%]G0;1(L=##H0`$6%VP^$.@4``$C'!2`[$``" -XM````1(L5#3H0`$6%T@^$5`0``$2+#0DZ$`!%A;__TB%P`^%/O[__^E7_O__@\T@QP7Z.!```0```.F<_?__ -XMQP4#.A```````,<%&3H0``$```#'!/K__XL59340`+`!A=(/1056-1``B050-1``Z5SZ__]$BS5H-1`` -XM187V=;M$BQU(-A``187;#X2:`0``2,<%%#40`,`=0`#I6OO__XL]/340`(7_ -XM#X5!^___BS4;-A``A?8/A%0!``!(QP7H-!``$!Y``.DN^___BS4)-1``N#!% -XM0`"ZP$%``(7V2`]$PDB)!;XT$`#I)_O__TB-O"00`#IM?K__TR-M"0(!@``OW=90`!,B?;HX>7__TR) -XM]K]Z64``2(D%3C40`.C-Y?__3(GVOWU90`!(B06*-1``Z+GE__],B?:_@%E` -XM`$B)!98U$`#HI>7__TR)]K^#64``2(D%6C40`.B1Y?__2(7`2(D%$S40``^$ -XMT@```$B#/?4T$```#X1'^?__2(,]-S40```/A#GY__](@SWI-!````^$*_G_ -XM_\<%`340``$```#I)OG__TB)Q^A0X?__QP72-!```0```(D%U"D0`.E1^/__ -XMBPT!-1``A0`!%AXO__NG`W0`!(BSU.-!``O@$```!(@\0(Z43B__](BSW9,Q``NF`\ -XM0`"^`0```.@NXO__NF`\0`#KSF9F9I!F9F:09F:04XG[Z)C___^)WS'VZ+OB -XM___HUN/__XG>B<=;Z6S@__](@^P8N@$```!(C70D%T"(?"07OP$```#H+^#_ -XM_S'`2(/$&,-F9F:09F9FD&9F9I!!5[@;74``28G_059!54%455-(@^PH2(7_ -XM3`]$^$4Q[44Q]DR)_T4QY.A^X___9L=$)`X``$B)!"3K1&9FD&:0#[[!@^@P -XMB0-F@WPD#@`/A,````!FQT0D#@$`2(/%`4B#PP1(@_T"=5)!@\4!28/&#$F# -XMQ`)!@_T+#X3A````3#DD)$''AFAJ4```````=U!(BQ5Y)0``00^V!!2(1"00 -XM00^V1!0!B$0D$4ECQ3'M2(T$0$B-'(5@:E``#[9,+!"-0=`\!P^&=?___XU! -XMGSP'=R,/OL&#Z&&)`^E\____D$,/M@0\B$0D$$,/MD0\`8A$)!'KM8U!OSP' -XM=RD/OL%!QX9H:E```0```(/H08D#Z4?___^_.%U``#'`Z)S@___I+____P^V -XMP3L%]C`0`'T12&/02(L%]C`0`(N$D$`(``"#^'AT#P^^\;^`74``,<#H9^#_ -XM_\<#_____^G[_O__2(/$*%M=05Q!74%>05_#D%53B?M(C2Q;2(/L"(L$K6AJ -XM4`"%P'5YBQ2M8&I0`(/Z_W0E2(L]OC$0`#'VZ+O>__](AG_&```Z:H1``!F9F:09F:09F:02(/L"(L%5BT0`(7`=2A(BS53+1``BT8, -XM@^@!A<")1@QX+DB+!D"(.$B#P`%(B08QP$B#Q`C#2(LU*RT0`.AJV___,<`\```@?\`0```='4QP$B#Q`C#B?@E`/```#T`H``` -XM#X3N````#X>5````/0`0```/A'(!```]`$```&9FD&:0=#^#YTETQ8L%DRP0 -XM`(7`#X6I`0``2(LUC"P0`(M&#(/H`87`B48,#XB.`@``2(L&Q@`J2(/``4B) -XM!K@!````ZXV+%5DL$`"%T@^%P0```$B+-5(L$`"+1@R#Z`&%P(E&#`^(.@$` -XM`$B+!L8`+TB#P`%(B0:X`0```$B#Q`C#9I`]`,````^$H````#T`X```#X5L -XM____BP4$+!``A<`/A:L!``!(BS7]*Q``BT8,@^@!A<")1@P/B',!``!(BP;& -XM`"5(@\`!2(D&N`$```#I^_[__XL%QRL0`(7`#X6)`0``2(LUP"L0`(M&#(/H -XM`87`B48,#XC@````2(L&Q@!`2(/``4B)!K@!````Z;[^__](BS61*Q``OR\` -XM``#HR]G__[@!````Z:/^__^+!6\K$`"%P`^%9P$``$B+-6@K$`"+1@R#Z`&% -XMP(E&#`^(O@```$B+!L8`/4B#P`%(B0:X`0```.EF_O__BP4R*Q``A<`/A0\! -XM``!(BS4K*Q``BT8,@^@!A<")1@QX;$B+!L8`?$B#P`%(B0:X`0```.DM_O__ -XM.T8H#XV]_O__OR\```#HN-O__[@!````Z1#^__](BS7C*A``ORH```#H'=G_ -XM_[@!````Z?7]__\[1B@/C1?___^_0````.B`V___N`$```#IV/W__SM&*'V/ -XMOWP```#H9]O__[@!````Z;_]__\[1B@/C3G___^_/0```&9FD.A'V___N`$` -XM``#IG_W__SM&*`^-A/[__[\E````9F:0Z"?;__^X`0```.E__?__2(LU4BH0 -XM`+\E````Z(S8__^X`0```.ED_?__2(LU-RH0`+]`````Z''8__^X`0```.E) -XM_?__2(LU'"H0`+]\````Z%;8__^X`0```.DN_?__2(LU`2H0`+\]````Z#O8 -XM__^X`0```.D3_?__.T8H#XUI_?__ORH```#HGMK__[@!````Z?;\__]F9F:0 -XM9F9FD$B)7"3@3(ED)/!%,>1,B6PD^$B);"3H2(/L*$2+%3XK$`!(B?M)B=5( -XMBV]X1872#X7;````1(L-Q"H0`$6%R0^%C0```$2+!>0J$`!%AZ_ -XM!%U``$B)PD@#55!(B<%(@^H!2(G02,'Z/TCW^4B)PC'`Z,G8__]!`<3I.O__ -XM_V9FD&:0BU4$O[Q<0``QP.BMV/__08G$Z0[___]F9I!F9I!F9I!52(G]4TB# -XM[`A(BQ](A=MU+.ME2(LU?B@0`(M&#(/H`87`B48,>%A(BP;&``I(@\`!2(D& -XM2(M;$$B%VW0[2(-[&`%T\(M5'(MU+$B)W^A^_O__1(L=-R@0`$6%VW2U2(LU -XM,R@0`+\*````Z&W6__](BUL02(7;=<5(@\0(6UW#OPH```#HT]C__^NI9F:0 -XM9I!!5T%6055!5%532(/L*(,]5RD0``%(B7PD"(M'%$49[4&#Y0=!@\4!.P56 -XM'A``#X_\`@``2(M<)`A(BQ/'1"08`````$B%TG0E2(L-,"@0`$B#>A@!=`Y( -XM8T0D&$B)%,"08`4B+4A!(A=)UXD2+%2LI$`!(BT0D"$6%THM0&'0(BT`L -XM@\`!`<*+#;`H$`"%R70-2(M<)`B+0QR#P`$!PH,]Z"@0``%$B>B#VO_WV$0! -XMZHE$)!`APHE4)"2+1"0DBQ69'1```<`YT`^/1P(``(G0P?H?]WPD)(M4)!A! -XMB<>)T,'Z'T'W_X/Z`4B+5"0(@]C_B40D'$B+`DB%P`^$PP$``$B#>&``#X6X -XM`0``1(M$)!Q%A<`/CGP!``#'1"04`````,=$)"``````BSUA*!``BU0D((7_ -XM#T54)!1%A?^)5"04#XX0`0``1(MD)"0Q[4&^`0```$B+3"0(2(L%'"<0`(M1 -XM'(MQ+$AC3"042(L\R.C(_/__BU0D%(G!BS40*!``BT0D%`-$)!R+7"08@\(! -XMA?8/1-`YVHE4)!0/C;<````!S4*-7"T`(UPD$$0YXW]=BP7:)Q``AASUO__ZZB+'9\E$`"%VW5#2(LUG"40`(M&#(/H`87` -XMB48,>$)(BP;&``I(@\`!2(D&@T0D(`&+1"0<.40D(`^%E/[__TB#Q"A;74%< -XM05U!7D%?PTB+-5DE$`"_"@```.B3T___Z\N_"@```.@'UO__Z[]$BPW6)A`` -XM187)=0B%R0^$-/[__TB+3"0(2(LU>280`+_"7$``2(M1"$B#Z@%(C0PR,=)( -XMB0/A7L```!(BS47)!``BT8,@^@!A<")1@P/B(X```!(BP9%,>3& -XM``I(@\`!2(D&BU4$](BP;&``I(@\`!2(D&6UU! -XM7,-(BS6<(Q``OPH```!%,>3HT]'__^N76UU!7$B+-8(C$`"_"@```.F\T?__ -XMOPH```!%,>3H+]3__^EP____6UU!7+\*````Z1S4__]!5T%628G^055!5%53 -XM2('L:`@``$R+)TV%Y`^$\P(``$F#?"1@``^%YP(``$R-O"0P!```0;T!```` -XMQT0D'/_____'1"08`````.D[`@``D$F+C"2`````NO%80`"^`00``$R)_S'` -XM3(G[Z`W3__])BT0D>`^W0`@E`/```#T`H```#X3X`@``/0#@```/A.T"``"^ -XM.P```$B)W^B[`0```.BVT?__@^@!#X00!0``3(GO0;T!````Z,_3__]F -XM9I"+30")3"0<28M<)"`/MTT*2(VT)$`(``!%BT8X08M6,+_07$``2(M#"$B) -XM1"0(08M&*(D$)$R+"S'`Z"W2__]$BQ6V(Q``1872#X51`P``1(L-7B,0`$6% -XMR0^%)P,```^W10@E`/```#T`(```#X0M`@``/0!@```/A"("``!%BT80187` -XM#X7F`P``BST3(Q``2(M52$&+=C2%_P^$OP,``+X%````3(G_0;D'````0;@@ -XM````N1M=0`#HS<___TR)_K\*74``,<#HGM'__V:0BPW:(A``A[__XL% -XMLR(0`(7`#X4;`@``#[=%""4`\```/0"@```/A&<"``"+!0$A$`"%P`^%"0(` -XM`$B+-?H@$`"+1@R#Z`&%P(E&#`^(KP,``$B+!L8`"DB#P`%(B09-BV0D$$V% -XMY`^$U0```$F#?"08`73JBQU8(A``28ML)'B%VP^%2P$``$2+'>0A$`!%A=L/ -XMA5X!```/MWT(2(VT)$`(``#H%M#__T6%[74-BT0D'#E%``^$'_[__TF#?"1@ -XM`&:0#X1J_?__28M$)`A-BX0D@````$R)^[H364``O@$$``!,B?](BT@H,<#H -XM;M#__^E<_?__1(LMVB$0`$6%[74*BRUK(1``A>UT+4F+5@A(BS5\(1``O\)< -XM0`!(@^H!2(T,,C'22(G(2/?V2(G&,<#H"=#__TV+)DV%Y`^%S?S__TB!Q&@( -XM``!;74%<05U!7D%?PTB)WK_Q6$``,<#H#-#__T&]`0```.EE_?__9F:09I"+ -XM112)PC#F@?K_````#X9U`0``#[;TO^I<0``QP.BJS___BPWH(!``AUF9F:09F9FD.DK^___Z&+-__^+..AKS/__2(L]D!T0`$B) -XMP4B)VKX/74``,<#H(LO__^E:_/__2(V4)%@(``"^`0```$R)[^B(S/__@^@! -XM=4F#PP&#^P1UWL:$)$H(```KZ<'Z__^_"@```.CTS?__Z4_\__]F9I#H]\S_ -XM_X,X%@^$=____TB)WK_Q6$``,<#H/\W__^F>^O__@_L##XZ$^O__9F:09I#K -XMKY"0D)"0D)"0D)"0D)"02(/L"$B+#>T<$`"_N%U``+H^````O@$```#H7Z@````$%6055%,>U!5$&)]#'V54B)_5-( -XM@>R8````2(GG3(V\)(P```#H2\S__T6%Y'46Z8P```!F9I!FD$F#Q0%(`=U% -XMA>1T>TECU$B)X4B)[DR)_^@_RO__2(7`2(G#=&)(@_O_=#Q(@_O^D'1JB[PD -XMC````('__P```'1UA4B!Q)@```!, -XMB>A;74%<05U!7D%?PT*-!*4`````2)A)`<7KW&9FD&:005>Z@````#'V059% -XM,?9!54F)_4%455-(@>R8````2(GGZ&;+__](C;PDC````$B)X;H&````3(GN -XMZ&[)__](A5T)8L%%QL0`(7`=,,/MCM(BS41&Q``@\4!2(/#`>A) -XMR?__1#GE==N+G"2,````30'E@?O_````=WM(BP7O&A``2&/3BT300*D```0` -XM#X0S____,<"%VW0U@?O_````#X?B````2(L%Q!H0`$ACTXM$T$`E```$X$B) -XMPH'B````X`^$K0```$B)T$C!Z!Y!`<;I\/[__SM&*`^V^GP*0(#_"@^%0___ -XM_^@_R___9F:0Z4+___^)W^CPR/__9F9FD.N&NH`````Q]DB)Y^@;RO__BQ5) -XM&A``A=)U>$B+-48:$`!!#[95`(M&#(/H`87`B48,>')(BP:($$B#P`%(B09) -XM@\4!08/&`>EY_O__3(GNO_%80``QP.@0RO__00'&2('$F````$2)\%M=05Q! -XM74%>05_#)0``!`!(@_@!&<"#R`'I1____XG?Z%[(___I(/___T$/MGT`2(LU -XMR1D0`.@(R/__ZYH[1B@/MOI\!D"`_PIU@.ASRO__ZX5F9I!FD$%7NH`````Q -XM]D4Q_T%6055)B?U!5%532('LF````$B)Y^A&R?__2(V\)(P```!(B>&Z!@`` -XM`$R)[NA.Q___2(7`28GM`P``28U&`DB#^`$/A@4!``"+G"2,````@?O_ -XM````#X>/`P``2(L%/AD0`$ACTXM$T$"I```$``^$`0,``(/[(@^$^`(``(/[ -XM7`^$[P(``$6%]GYH3(GK,>WK,TB+-?\8$``/MA.+1@R#Z`&%P(E&#`^('`,` -XM`$B+!H@02(/``4B)!H/%`4B#PP%$.?5T)T2+)<08$`!%A>1TP0^V.TB+-;T8 -XM$`"#Q0%(@\,!Z/7&__]$.?5UV8N<)(P````QP(7;=#6!^_\````/AZX#``!( -XMBP64&!``2&/3BT300"4```3@2(G"@>(```#@#X1V`P``2(G02,'H'D$!QTF# -XM_OX/A&P"``!)@_[_#X2U`@``30'UZV0 -XMZ>T```!(BS4L&!``BT8,@^@!A<")1@P/B)@!``!(BP;&`%Q(@\`!2(D&BST` -XM&!``A?\/A>\```!(BS7Y%Q``B=C`Z`8/ML"->#"+1@R#Z`&%P(E&#`^(-P$` -XM`$B+!D"(.$B#P`%(B0:+-<(7$`"%]@^%V@```$B+-;L7$`")V,#H`X/@!XUX -XM,(M&#(/H`87`B48,#X@W`0``2(L&0(@X2(/``4B)!HL-A!<0`(7)#X7#```` -XM2(LU?1<0`(G8@^`'C7@PBT8,@^@!A<")1@P/B"$!``!(BP9`B#A(@\`!2(D& -XM2(/%`4&#QP1!.>P/CM_^__]$BP4W%Q``0@^V7"T`187`#X3]_O__2(LU*1<0 -XM`+]<````Z&/%__^+/1$7$`"%_P^$$?___XG82(LU"!<0`,#H!@^V^(/',.@^ -XMQ?__BS7L%A``A?8/A"K___]F9F:0B=A(BS7?%A``P.@#B<>#YP>#QS#H$\7_ -XM_XL-P180`(7)#X0]____OP<```!(BS6U%A``(=^#QS#H[\3__^E/____.T8H -XM?`]`@/\*9F:09I`/A;7^___H40`#HS<3__TB%P$B)PP^$9O___T2+%5X5 -XM$`!%A=(/A98```!(BS56%1``BT8,@^@!A<")1@P/B*8```!(BP;&`%Q(@\`! -XM2(D&1(L-*140`$6%R7532(LU)140``^V0P&+5@P/OOB#Z@&%THE6#'A@2(L& -XM0(@X2(/``4B)!D&#QP+IE/S__R4```0`2(/X`1G`@\@!00''Z7[\__^)W^AB -XMP___Z53\__\/OGL!2(LUSA00`.@-P___Z\-(BS7`%!``OUP```#H^L+__^EY -XM____.U8H?`8\"F:0=97H9<7__^N;.T8H9F9FD`^-3?___[]<````9F:09I#H -XM1\7__^E&____9F:09F:005>Z@````#'V13'_059)B?Y!54%455-(@>R8```` -XM2(GGZ!;$__](C;PDC````$B)X;H&````3(GVZ!["__](AQUVHNL)(P````QP(7M=#6! -XM_?\````/AW0!``!(BP5O$Q``2&/5BT300"4```3@2(G"@>(```#@#X0_`0`` -XM2(G02,'H'DT![D$!Q^GH_O__9I`[1B@/MOI\"D"`_PH/A6#____HYF+_O__BP7/$A``A<`/A:P```!(BS7($A``BT8, -XM@^@!A<")1@P/B.D```!(BP;&`#](@\`!2(D&28/&`4&#QP&Z@````#'V2(GG -XMZ%?"___I//[__XGOZ`O!___IB?[__TB+-7L2$`"_/P```.BUP/__ZX:+!6$2 -XM$`"%P`^%LP```$B+-5H2$`"+1@R#Z`&%P(E&#`^(L0```$B+!L8`/TB#P`%( -XMB09!@\05_#2(LU'!(0`+\_````Z%;`___I -XM8____R4```0`2(/X`1G`@\@!Z;7^__^)[^AWP/__Z8[^__\[1BAF9I`/C>S^ -XM__^_/P```&9FD&:0Z)?"___IY?[__SM&*&9FD`^-"____[\_````9F:09I#H -XM=\+__^D$____2(LUIQ$0`+\_````Z.&____I7/___SM&*`^-1O___[\_```` -XM9I#H1\+__^E"____D)"0D)"02(L%"0\0`%-(@_C_=!4QV__02(N#6&=0`$B# -XMZPA(@_C_=>U;PY"0D$B#[`CHO\/__TB#Q`C#`````````````"1&'`@)`!,4U]#3TQ724142%,`;6%L;&]C`"5S.B`E -XM"``)3-D+"`E -XM,V0@`"4J&-X9'AB -XM>&5G961A8F%G86-A9`!,4T-/3$]24R!S:&]U;&0@=7-E(&-H87)A8W1E!`!`PP'")`!```<````'````*`;0`"3`````$(.$(P"10X8 -XM00X@@P2&`Q0````\````0!Q``#@`````1`X0`````!0```!4````@!Q``"(` -XM`````````````!0```!L````L!Q``#D`````00X0@P(``!0```"$````\!Q` -XM``X``````````````!0```"<`````!U``$0``````````````!0```"T```` -XM4!U```X``````````````!0```#,````8!U``$0``````````````!0```#D -XM````L!U```X``````````````!0```#\````P!U``$0``````````````!0` -XM```4`0``$!Y```X``````````````!0````L`0``(!Y``$0````````````` -XM`!0```!$`0``&!@``````-````-P!``!P*T``AP(```!"#A!'#AB.`X\" -XM2`X@C01*#BA!#C!!#CA$#D"#!X8&C`4````````L````%`(````N0`#F"``` -XM`$(.$$(.&(T#C@)*#B!!#BA!#C"#!H8%C`1+#M`,```4````1`(``/`V0`!5 -XM`````$0.$``````4````7`(``%`W0``@`````$$.$(,"```4````=`(``'`W -XM0``D`````$0.(``````T````C`(``*`W0`!O`0```$(.$(\"2@X80@X@0@XH -XM00XP00XX1`Y@@P>&!HP%C02.`P```````!P```#$`@``$#E``*L`````00X0 -XM00X8@P.&`DH.(```%````.0"``#`.4``1@$```!'#A``````'````/P"```0 -XM.T``#@$```!!#A!!#AA$#H`!@P.&`@`4````'`,``"`\0``V```````````` -XM```4````-`,``&`\0`!G`````$0.$``````4````3`,``-`\0``H`P```$0. -XM$``````<````9`,```!`0``G`0```$J,`X,%40XPA@2-`@```!P```"$`P`` -XM,$%``(L`````00X0A@)$#AA$#B"#`P``-````*0#``#`04``90,```!"#A!" -XM#AA"#B!"#BA!#C!!#CA$#F"#!X8&C`6-!(X#CP(````````<````W`,``#!% -XM0`!``0```$(.$$$.&(8#C`)$#B"#!#0```#\`P``<$9``&(&````0@X00@X8 -XMC@./`D4.($(.*$$.,$$..$<.H!&#!X8&C`6-!```````%````#0$``#@3$`` -XM*0````!$#A``````-````$P$```034``ZP````!"#A!'#AA"#B"-!(X#CP)% -XM#BB,!48.,(8&1`XX1P[0`8,'```````T````A`0```!.0``;`@```$(.$$D. -XM&(X#CP)%#B"-!$4.*$$.,$$..$<.T`&#!X8&C`4``````#0```"\!```(%!` -XM`"H%````0@X0CP),#AA"#B"-!(X#10XH00XP00XX1P[0`8,'A@:,!0`````` -XM-````/0$``!054``^@(```!"#A"/`DP.&(X#10X@0@XH00XP00XX1P[0`8,' -XMA@:,!8T$````````````&``````````!>E(``7@0`0,,!PB0`0```````!0` -XM```@````4%A``"4`````2`X0@P(```$``````````0`````````!```````` -XM`%T``````````0````````")``````````P`````````.!=````````-```` -XM`````'A80```````!`````````#X`4````````4`````````6`Q````````& -XM`````````&`$0```````"@`````````1`P````````L`````````&``````` -XM```5`````````````````````P````````"(9U````````(`````````8`8` -XM```````4``````````<`````````%P````````#8$$````````<````````` -XM2!!````````(`````````)``````````"0`````````8`````````/[__V\` -XM````&!!```````#___]O``````$`````````\/__;P````!J#T`````````` -XM```````````````````````````````````````````````````````````` -XM```````````````````````````````````````````````````````````` -XM`````/__________``````````#__________P````````````````````"P -XM95````````````````````````````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````'`@)``D1G)E94)31#H@'`@)`!'0T,Z -XM("A'3E4I(#0N,BXQ(#(P,#'`@)`!'0T,Z("A' -XM3E4I(#0N,BXQ(#(P,#6YS='(`+F=N=2YV97)S:6]N -XM`"YG;G4N=F5R'0`+F9I;FD`+G)O9&%T80`N96A?9G)A;65?:&1R`"YD871A`"YE:%]F%A```````!X6`````````X````````````````````$```````````````` -XM````>0````$````"`````````)!80```````D%@```````#,!0`````````` -XM````````$````````````````````($````!`````@````````!<7D`````` -XM`%Q>````````"`````````````````````0```````````````````"/```` -XM`0````,``````````&!0````````8````````$P````````````````````0 -XM````````````````````E0````$````"`````````%!@4```````4&`````` -XM``!@!0``````````````````"````````````````````)\````&`````P`` -XM``````"P95```````+!E````````L`$````````%``````````@````````` -XM$`````````"H`````0````,`````````8&=0``````!@9P```````!`````` -XM```````````````(````````````````````KP````$````#`````````'!G -XM4```````<&<````````0````````````````````"``````````````````` -XM`+8````!`````P````````"`9U```````(!G````````"``````````````` -XM``````@```````````````````"[`````0````,`````````B&=0``````"( -XM9P```````#@"```````````````````(``````````@`````````P`````@` -XM```#`````````,!I4```````P&D```````"P`0``````````````````(``` -XM`````````````````,4````!`````````````````````````,!I```````` -XMGP(```````````````````$````````````````````!`````P`````````` -XM``````````````!?;````````,X````````````````````!```````````` -X&```````` -X` -Xend -4db11c737631d887608e3186a17a7a3e -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.err b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.out b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.sh deleted file mode 100644 index 56075544..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-3/strip-debug-3.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-debug-3 tc/strip-debug-3 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} -g -o ls.1 ls" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/in/strip-debug-4.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/in/strip-debug-4.in.shar deleted file mode 100644 index 9d05c993..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-debug-4/in/strip-debug-4.in.shar +++ /dev/null @@ -1,2302 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# elfcopy.uu -# -echo x - elfcopy.uu -sed 's/^X//' >elfcopy.uu << 'END-of-elfcopy.uu' -Xbegin 755 elfcopy -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````#AM`0`` -XM`````````$``.``'`$``)0`B``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6YC7W-E8W1I;VYS`"(1``!I;G-E5]C;VYT96YT``````!! -XM`````@!^+@``W`D``'$(``!A9&1?=&]?:6YS96=?;&ES=`#W"```8V]P>5]P -XM:&1R`'P)``!S971U<%]P:&1R``````!C`````@!:.```!1,```L,``!L;V]K -XM=7!?:V5E<%]S>6UL:7-T`&8,``!A9&1?=&]?6`@```TP&```".8,````" -XM"`5=`P```X8"```".I4````""`>1`@```@@$AP,```($!*D#```#]00```)2 -XMB@````,\!0```E1X````!0@'!@@#?`$```,F9@````,5`P```R=X`````[0& -XM```#*68````#B0````,L9@````,T`P```RYF`````PT"```#,4(````#70<` -XM``,S0@````,(!0```S1X`````W`&```#/F8````#&@$```-;9@````(!!K(! -XM```#_`$```190@````-/`P``!%YF`````X@"```$8XH````'"#,!```'"&U````"7(&```$"`$=`0``"MT%```0 -XM!2X/`@``"X<'```%+\\!```"(P`+\`4```4P@P````(C"``*U@```'@&@PH# -XM```+V`0```:$*`$```(C``M-!P``!H68`0```B,$"V@&```&AJ,!```"(P@+ -XM@P0```:'K@$```(C"@N0`0``!HC:`0```B,,"V0"```&B8T!```"(Q`+O@$` -XM``:**`$```(C%`O9!0``!HSF`0```B,8"R`#```&C>8!```"(R@+8`4```:. -XMY@$```(C.`NK`@``!I>Y`0```B-("S8````&F')`P```B,`#%]R``AH -XM7P````(C"`Q?=P`(:5\````"(PP+?0H```AJ.P````(C$`NN!@``"&L[```` -XM`B,2#%]B9@`(;&`#```"(Q@+0P8```AM7P````(C*`M)`@``"'##`````B,P -XM"_,!```(<<,$```"(S@+L@0```ARXP0```(C0`O2!```"',#!0```B-("TD` -XM```(=",%```"(U`,7W5B``AW8`,```(C6`L`````"'@O!0```B-H#%]U<@`( -XM>5\````"(W`+1@0```A\-04```(C=`N;````"'U%!0```B-W#%]L8@`(@&`# -XM```"(W@++0````B#7P````,CB`$+=PD```B$50,```,CD`$`#0%?````PP0` -XM``[#``````<(LP0```T!7P```.,$```.PP````Y;`0``#E\`````!PC)!``` -XM#0%5`P```P4```[#````#E4#```.7P`````'".D$```-`5\````C!0``#L,` -XM```.80$```Y?``````<("04```_M`@```0<(*04``!`T````104``!'````` -XM`@`0-````%4%```1P````````Z8"```(A8\#```""`58`P``$#0```!W!0`` -XM$<`````/``/[`@``"290`0```Y0&```!%7$#```"%7$'```#%=L````$`!0$"C9=!P``%3$%````%9H'```! -XM%>8%```"%;$%```#%H````3%>$"```4%7P#```5%0X!```6%?X$```7`!0$ -XM"E6T'```+MPH```PB80$```(C``M>!```#"2M -XM!P```B,(``<(Q`<``!((##8*"```"U8%```,-K\(```"(P``"F8#``!(#"B_ -XM"```"[<*```,*6$!```"(P`+H@$```PJ80$```(C"`M!`@``#"MA`0```B,0 -XM"X4-```,+&$!```"(Q@,861D``PN7P````(C(`M;`0``#"]?`````B,D"\D' -XM```,,%\````"(R@+404```PQ7P````(C+`O9`0``##)?`````B,P"V\````, -XM,U\````"(S0+5P0```PT7P````(C.`NB!```##;S!P```B-```<("@@``!(( -XM##_<"```"U8%```,/R$)```"(P``"@<&```@##HA"0``"[<*```,.UL!```" -XM(P`+=`H```P\6P$```(C"`L`"```##W$`0```B,0"Z<````,/\4(```"(Q@` -XM!PC<"```$A`,44P)```+5P4```Q1&@H```(C``LX`@``#%$@"@```B,(``JD -XM"0``>`Q#&@H```NW"@``#$1A`0```B,`#&ES``Q%G`<```(C"`QO=`H```O7`@`` -XM#%X:"@```B,`"P0'```,7B`*```"(P@`$@@,7XL*```+5@4```Q?^@H```(C -XM```*NP(``$`,5OH*```,;V9F``Q74`$```(C``QF@`,65`!```"(Q`+W0@```Q:4`$```(C&`MO````#%Q?`````B,@"X@'```, -XM7DL*```"(R@+3@L```Q?=`H```(C.``'"(L*```4!`R-)PL``!5B`0```!40 -XM!0```14W!@```A7X!0```Q43!@``!``2$`RI3`L```O6`@``#*GZ"@```B,` -XM"P,'```,J4P+```"(P@`!PCZ"@``$A`,JG<+```+U@(```RJOP@```(C``L# -XM!P``#*IW"P```B,(``<(OP@``!(0#*NB"P``"]8"```,JR$)```"(P`+`P<` -XM``RKH@L```(C"``'""$)```2$`RMS0L```O6`@``#*WM!P```B,`"P,'```, -XMKU\````" -XM(RP,;F]S``Q]7P````(C,`LQ!```#()?`````B,T"T\!```,@U\````"(S@+ -XMO0<```R$7P````(C/`O-`0``#(5?`````B-`"V,````,AE\````"(T0+104` -XM``R'7P````(C2`O@#```#(D:"@```B-0"VH-```,BAH*```"(U@+Y@D```R+ -XM&@H```(C8`M^!@``#),`"P```B-H"WX*```,FU\````"(VP+KP<```R>Z@T` -XM``(C<`OS!@``#*'J#0```B-X"^T&```,I(D#```#(X`!"U0'```,IXD#```# -XM(X@!"S`!```,J2<+```#(Y`!"P<````,JE(+```#(Z`!"S8!```,JWT+```# -XM([`!"W@&```,K:@+```#(\`!"XP$```,K],+```#(]`!"X@'```,L?@+```# -XM(^`!``<(>P8```<(4`$``!8W!P``!`$L#PX``!7&`````!5V`````14/!@`` -XM`@`7>P<```%:`@%@'$```````(D<0````````````!<&`P```5,"`9`<0``` -XM````N1Q````````X````%[@````!3`(!P!Q```````#I'$```````'`````8 -XM/P<```$,`0$!F0X``!EE8W```0L!F0X``!EI9F0``0L!7P```!EO9F0``0L! -XM7P`````'"!T,```:&`````&(`0'D#@``&V5C<``!AYD.```J`8```$O`0'P -XM'$```````'\C0```````J````/D/```?96-P``$N`9D.``#A````'W-R8P`! -XM+@%A`0``*@$``!]D04```$R`<0!```A:69D``$S`5\```#&`P``(6]F9``!,P%?````(@0``"-F -XM#@````````%7`22,#@``)(`.```D=`X``".?#@``H`````$=`22L#@``)3`! -XM```FMPX``,H$```GP@X```.1\'XGS0X```.1L'XFV`X``$P%````````&%T& -XM```!%0(!`5H0```996-P``$4`ID.```H]@(```$4`E\````H$`,```$4`EH0 -XM```IA```"1N$```);`$```F -XMDA```+,+```FGA```.D+```FJA```$4,```MMA```"W"$```+BJ`````X0&```"+[H````)5@8``!`"1E,!```*(@4```)'4P$` -XM``(C``K_!P```DA?`````B,(``<(-`````FC`@``F`)F?0(```M?<``"9U,! -XM```"(P`+7W(``FA?`````B,("U]W``)I7P````(C#`I]"@```FH[`````B,0 -XM"JX&```":SL````"(Q(+7V)F``)L*@$```(C&`I#!@```FU?`````B,H"DD" -XM```"<+@````"(S`*\P$```)QC0(```(C.`JR!````G*M`@```B-`"M($```" -XM<\T"```"(T@*20````)T[0(```(C4`M?=6(``G/D" -XM```"(V@+7W5R``)Y7P````(C<`I&!````GS_`@```B-T"IL````"?0\#```" -XM(W<+7VQB``*`*@$```(C>`HM`````H-?`````R.(`0IW"0```H0?`0```R.0 -XM`0`,`5\```"-`@``#;@`````!PA]`@``#`%?````K0(```VX````#0,!```- -XM7P`````'"),"```,`1\!``#-`@``#;@````-'P$```U?``````<(LP(```P! -XM7P```.T"```-N`````T)`0``#5\`````!PC3`@``#NT"```!!PCS`@``#S0` -XM```/`P``$+4````"``\T````'P,``!"U```````#I@(```*%60$```((!5@# -XM```#C0H```8F[0````,%"```!BG,`````Q$(```&*NT````/-````&(#```0 -XMM0````\`$0@&>H<#```*Q0D```9[,0,```(C``KV"```!GQ'`P```B,$``-& -XM"0``!GUB`P``$0P&@,4#```*Q0D```:!,0,```(C``KV"```!H)'`P```B,$ -XM"D,*```&@SP#```"(P@``V0*```&A)(#```#^P(```$T`,```(C``KV"``` -XM!X4'!````B,(``.L"0``!X:*!0``$1@'B>T%```*Q0D```>*T`,```(C``KV -XM"```!XL'!````B,("D,*```'C/$#```"(Q```^\)```'C;H%```216QF``@F -XM`P8```ZV`P```0,&`0``""<4!@``#@4!```!$P0(-K,&```4,04````4F@<` -XM``$4Y@4```(4L04```,4S`,```04OP8```44C@<```843`0```<4D`4```@4 -XM4`````D4?`(```H4^@````L49P<```P4?@4```T4EP0```X4G`8```\4(0(` -XM`!`4(@$``!$4(@8``!(4Z@```!,4X0(``!04?`,``!44#@$``!84_@0``!<` -XM`^((```(3QH&```1"`AXU08```I6!0``"'A@!P```B,```G5"0``0`AH8`<` -XM``HT"@``"&SX`````B,`"E@)```(;;@````"(P@*$@H```AN^`````(C$`K^ -XM!P``"&_X`````B,8"ML(```(<+,&```"(R`*J@H```AQ<0````(C)`HY"``` -XM"'9F!P```B,H"GP*```(=W$````"(S`*(PD```AXO@8```(C.``'"-4&```' -XM"`D&```#U@D```AYU08```.,'```*MPH```HB"0$```(C``I>!```"B2C!P```B,(``<(N@<``!$("C8` -XM"```"E8%```*-K4(```"(P``"68#``!("BBU"```"K<*```**0D!```"(P`* -XMH@$```HJ"0$```(C"`I!`@``"BL)`0```B,0"H4-```*+`D!```"(Q@+861D -XM``HN7P````(C(`I;`0``"B]?`````B,D"LD'```*,%\````"(R@*404```HQ -XM7P````(C+`K9`0``"C)?`````B,P"F\````*,U\````"(S0*5P0```HT7P`` -XM``(C.`JB!```"C;I!P```B-```<(``@``!$("C_2"```"E8%```*/Q<)```" -XM(P``"0<&```@"CH7"0``"K<*```*.P,!```"(P`*=`H```H\`P$```(C"`H` -XM"```"CT4`0```B,0"J<````*/[L(```"(Q@`!PC2"```$1`*44()```*5P4` -XM``I1$`H```(C``HX`@``"E$6"@```B,(``FD"0``>`I#$`H```JW"@``"D0) -XM`0```B,`"VES``I%9@<```(C"`MO:@H```K7`@``"EX0"@```B,`"@0'```*7A8* -XM```"(P@`$0@*7X$*```*5@4```I?\`H```(C```)NP(``$`*5O`*```+;V9F -XM``I7^`````(C``MF@`*6?@````"(Q`*W0@```I: -XM^`````(C&`IO````"EQ?`````B,@"H@'```*7D$*```"(R@*3@L```I?:@H` -XM``(C.``'"($*```3!`J-'0L``!1B`0```!00!0```10W!@```A3X!0```Q03 -XM!@``!``1$`JI0@L```K6`@``"JGP"@```B,`"@,'```*J4(+```"(P@`!PCP -XM"@``$1`*JFT+```*U@(```JJM0@```(C``H#!P``"JIM"P```B,(``<(M0@` -XM`!$0"JN8"P``"M8"```*JQ<)```"(P`*`P<```JKF`L```(C"``'"!<)```1 -XM$`JMPPL```K6`@``"JWC!P```B,`"@,'```*K<,+```"(P@`!PCC!P``$1`* -XMK^X+```*U@(```JOXP<```(C``H#!P``"J_#"P```B,(`!$0"K$3#```"M<" -XM```*L1`*```"(P`*!`<```JQ%@H```(C"``)(P```/`*;MH-```*E0,```IO -XM"0$```(C``JA````"G)?`````B,("K8'```*U\````"(RP+;F]S``I]7P````(C,`HQ -XM!```"H)?`````B,T"D\!```*@U\````"(S@*O0<```J$7P````(C/`K-`0`` -XM"H5?`````B-`"F,````*AE\````"(T0*104```J'7P````(C2`K@#```"HD0 -XM"@```B-0"FH-```*BA`*```"(U@*Y@D```J+$`H```(C8`I^!@``"I/V"@`` -XM`B-H"GX*```*FU\````"(VP*KP<```J>X`T```(C<`KS!@``"J'@#0```B-X -XM"NT&```*I%,!```#(X`!"E0'```*IU,!```#(X@!"C`!```*J1T+```#(Y`! -XM"@<````*JD@+```#(Z`!"C8!```*JW,+```#([`!"G@&```*K9X+```#(\`! -XM"HP$```*K\D+```#(]`!"H@'```*L>X+```#(^`!``<(^`4```<(^````!73 -XM"@```>(!\"M```````!M+$````````)W"#H.```696-P``'A.@X```%5%G-E -XM8P`!X1`*```!5!=S``'C$`H```%1&/,*```![D,L0`````````<($PP``!D! -XMC`D```&C`P%P+$```````"8N0```````OA```*`.```:96-P``&B`SH.``#W -XM$```&W,``:0#$`H``$`1```<`0L```&E`Z`.``!V$0``'7-H``&F`X('```# -XMD9!_``<(;`<``!D!\@<```%[`P$P+D```````#WPD```%L`P%`+T```````*LO0```````_!(` -XM`%`S0```````&C5```````#4&```(A$``!IE -XM8W```4@".@X``%T9```; -XM$@``$+4````$``<("0$``"(!F`H```$W`5\```!`-T```````(DX0``````` -XMY!X``'X3```C96-P``$V.@X``!T?```DMPH```$V"0$``&8?```KD`4``$`3 -XM```ET```#O(```,;<*```!7PD!```X(0``%VES:``!8(('```#D9!_)6ES -XM``%A9@<``&XA```Q!0D```%B%`$``*0A```Q$0D```%C7P```-PA````,@&( -XM"````?D!L#E```````#%/$```````!(B``"S%```(V5C<``!^#H.``##(@`` -XM)7,``?H0"@``#",``#&W"@```?L)`0``52,``"5IL'```!__@```"3)```,3P* -XM```!__@```#<)```'!$)```!``%?````."4````SDP@```*'`0%?`````]P4 -XM```T7V,``H`(#`0``('-R8P`!>`(#`0``(&5N9``!>`(#`0``.3\( -XM```!>0)?`````#.?"0```=X"`;@````!:Q<``#1S``'=`A`*```[``@```'= -XM`FL7```@:60``=\"H`X``"!B``'@`@,!```@$"%`$``#D1"0```>(" -XM7P`````'"!0!```X7@D```$@`@$!V1<``#1E8W```1\".@X``#1S``$?`A`* -XM```@;W-H``$A`H('```@;"````;4!7P````$,&```.F5C -XM<``!M#H.```HMPH```&T"0$``"IS86,``;:U"````#B>"````X8```V:18```8J```M7A8````U=18``"`(```!E0&7 -XM&0``+8\6```M@Q8``#R`"```/9D6```\*@``/:46``!R*@``,+$6```PO18` -XM`#W'%@``#RL``##3%@``/=T6``#=*P``/><6``#1+```,/$6```O_18```.1 -XML'XP"1<``#<6%P``H`D```%[`BTR%P``+2@7```\X`D``#T^%P``Q2T``#!) -XM%P``,%,7```]7A<``),N````````-6T5``!`"@```9`!,AH``"V'%0``+7L5 -XM```\H`H``#V1%0``W"X``"^=%0```Y'0?B^I%0```Y&P?R^U%0```Y&0?SW! -XM%0``)2\``"_-%0```Y&H?B_9%0```Y&@?B_E%0```Y&8?B_Q%0```Y&0?CW\ -XM%0``NB\``#`(%@``/1(6```\,```/1X6``#1,```/2H6```M,0`````^V1<` -XM`+Y`0```````X4!````````!H@%T&@``+?47```MZA<``"[-0$```````.%` -XM0```````/0`8``!C,0`````W#!@``)`,```!HP$M&A@``#SP#```/208``"L -XM,0``/2\8```N,@``-[,4``!P#0```=D"-M`4``!W,@``+<44````````/SP) -XM```"BMP4```!`4#%!````J`!7P````$!`-@)```"`-X%```(`0T'```!)@L` -XM`.$#``"024```````(5-0```````$`@```(!!JL!```"`0BI`0```@(%NP4` -XM``("!]$&```#!`5I;G0`!$T#```".%L````"!`>6`@```@@%70,```2&`@`` -XM`CIT`````@@'D0(```((!(<#```"!`2I`P``!/4$```"4FD````%"`<&"`(! -XM!K(!```$3P,```->4`````2(`@```V-I````!PB9````!PC"````")D````$ -XM]P0```/HB0````3[`@``!":K````!-<#```$**L````$I@4```0KH`````0P -XM"0``!"VK````"3@$9W`L```1KT@````(C$`J("P``!&S2`````B,8"CP+ -XM```$;?,````"(R`*@`L```1N\P````(C*`I7"P``!&_S`````B,P``0Q"P`` -XM!'#^````"T5L9@`%)HT!```,M@,```$$!@$```4GG@$```P%`0```0T$!57C -XM`0``#A\$````#L\%```!#G8$```"#M\!```##IX#```$#@T````%#L4%```& -XM#LH"```'#BX"```(``<(DP$```1?"P``!B]W`0``!P@T`````@@%6`,```D( -XM!R08`@``"E8%```')$$"```"(P``#T,-```0!R%!`@``"K<*```'(KP````" -XM(P`*7@0```,!```" -XM(P@0;W,`!T;C`0```B,0$&)U9@`'1Y<````"(Q@0;V9F``=(JP````(C(!!S -XM>@`'2:L````"(R@08V%P``=*JP````(C,`HV"@``!TNK`````B,X"MT(```' -XM3*L````"(T`*WP0```=-20````(C2`JQ````!TY)`````B-,"JL$```'3TD` -XM```"(U`*W0H```=1>P,```(C6`HM`P``!U)Z!````B-H``<(H`,```<(;@0` -XM``D0!U*?!```"E<%```'4FX$```"(P`*.`(```=2=`0```(C"``/*`4``!`' -XM7L@$```*UP(```=>;@0```(C``H$!P``!UYT!````B,(``D(!U_?!```"E8% -XM```'7TX%```"(P``#[L"``!`!U9.!0``$&]F9@`'5ZL````"(P`09G-Z``=8 -XMJP````(C"!!MI3@4```(C``H#!P``!ZF@!0```B,(``<(3@4```D0!ZK+!0``"M8"```' -XMJA,#```"(P`*`P<```>JRP4```(C"``'"!,#```)$`>K]@4```K6`@``!ZMU -XM`P```B,`"@,'```'J_8%```"(P@`!PAU`P``"1`'K2$&```*U@(```>M00(` -XM``(C``H#!P``!ZTA!@```B,(``<(00(```D0!Z],!@``"M8"```'KT$"```" -XM(P`*`P<```>O(08```(C"``)$`>Q<08```K7`@``![%N!````B,`"@0'```' -XML70$```"(P@`#R,```#P!VXX"```"I4#```';[P````"(P`*H0````=R20`` -XM``(C"`JV!P``!W-)`````B,,$&EE8P`'=4D````"(Q`0;V5C``=V20````(C -XM%!!E:6X`!W#@(```"(R`*Q@$```=Z20````(C*`HJ -XM!```!WM)`````B,L$&YO"20````(C-`I/`0`` -XM!X-)`````B,X"KT'```'A$D````"(SP*S0$```>%20````(C0`IC````!X9) -XM`````B-$"D4%```'ATD````"(T@*X`P```>);@0```(C4`IJ#0``!XIN!``` -XM`B-8"N8)```'BVX$```"(V`*?@8```>35`4```(C:`I^"@``!YM)`````B-L -XM"J\'```'GCX(```"(W`*\P8```>A/@@```(C>`KM!@``!Z3T`0```R.``0I4 -XM!P``!Z?T`0```R.(`0HP`0``!ZE[!0```R.0`0H'````!ZJF!0```R.@`0HV -XM`0``!ZO1!0```R.P`0IX!@``!ZW\!0```R/``0J,!```!Z\G!@```R/0`0J( -XM!P``![%,!@```R/@`0`'"((!```'"*L````1$0L```%5`0%Q"```$G-E9P`! -XM5$X%```2=``! -XMA\<```#M-```'FD``8A)````$#4````@`08+```!9`%@3$```````(5-0``` -XM````634``!5E8W```6/Q"```SC4``!-S96<``65.!0``'Z`+```!9ND!```# -XMD:!_&,8!```!9\<````7-@``$VD``6A)```````!$P```@")!P``"`$-!P`` -XM`9L,``#A`P``D$U```````#:9D```````&4)```"`0:K`0```@$(J0$```(" -XM!;L%```#^@$```(V30````("!]$&```$!`5I;G0``TT#```".&8````"!`>6 -XM`@```TP&```".7@````""`5=`P```X8"```".HH````""`>1`@```@@$AP,` -XM``($!*D#```#]00```)2?P````4(!P8(`@$&L@$```-.!@```T]M`````_P! -XM```#64(````#3P,```->6P````.(`@```V-_````!PBO````!PCN````"*\` -XM```#]P0```/HGP````((!5@#```#C0H```0FS`````.\#```!"?!`````Q$( -XM```$*LP````)$`2W@P$```I+#0``!+@;`0```B,`"A4-```$N04!```"(P0* -XMJP(```2Z&P$```(C"`H-#0``!+LT`````B,,"O,,```$O#0````"(PT*_`P` -XM``2]$`$```(C#@`##@P```2^)@$```/[`@``!2;7`````YN@$```(C+`KF"@``!5_%`0```B,P"NL( -XM```%8,4!```"(S@``[P(```%8=`!```)$`6#E0(```K%"0``!82.`0```B,` -XM"O8(```%A<4!```"(P@``ZP)```%AG`"```)&`6)TP(```K%"0``!8J.`0`` -XM`B,`"O8(```%B\4!```"(P@*0PH```6,KP$```(C$``#[PD```6-H`(```D8 -XM!;X[`P``"DL-```%O[H!```"(P`*#0T```7`-`````(C!`KS#```!<$T```` -XM`B,%"OP,```%PID!```"(P8*%0T```7#C@$```(C"`JK`@``!<3%`0```B,0 -XM``,U#```!<7>`@``"T5L9@`&)E$#```,M@,```$#!@$```8G8@,```P%`0`` -XM`0T$!C8!!```#C$%````#IH'```!#N8%```"#K$%```##LP#```$#K\&```% -XM#HX'```&#DP$```'#I`%```(#E`````)#GP"```*#OH````+#F<'```,#GX% -XM```-#I<$```.#IP&```/#B$"```0#B(!```1#B(&```2#NH````3#N$"```4 -XM#GP#```5#@X!```6#OX$```7``/B"```!D]H`P``"0@&>",$```*5@4```9X -XMK@0```(C```/U0D``$`&:*X$```*-`H```9LUP````(C``I8"0``!FVM```` -XM`B,("A(*```&;M<````"(Q`*_@<```9OUP````(C&`K;"```!G`!!````B,@ -XM"JH*```&<68````"(R0*.0@```9VM`0```(C*`I\"@``!G=F`````B,P"B,) -XM```&>`P$```"(S@`!P@C!```!PA7`P```]8)```&>2,$```#6P@```@`(2=<````" -XM(R@08V%P``A*UP````(C,`HV"@``"$O7`````B,X"MT(```(3-<````"(T`* -XMWP0```A-5`````(C2`JQ````"$Y4`````B-,"JL$```(3U0````"(U`*W0H` -XM``A1:P8```(C6`HM`P``"%)J!P```B-H``<(D`8```<(7@<```D0"%*/!P`` -XM"E<%```(4EX'```"(P`*.`(```A29`<```(C"``/*`4``!`(7K@'```*UP(` -XM``A>7@<```(C``H$!P``"%YD!P```B,(``D("%_/!P``"E8%```(7SX(```" -XM(P``#[L"``!`"%8^"```$&]F9@`(5]<````"(P`09G-Z``A8UP````(C"!!M -XME0````"(R@**@0```A[5`````(C+!!N;W,`"'U4`````B,P"C$$```(@E0` -XM```"(S0*3P$```B#5`````(C.`J]!P``"(14`````B,\"LT!```(A50````" -XM(T`*8P````B&5`````(C1`I%!0``"(=4`````B-("N`,```(B5X'```"(U`* -XM:@T```B*7@<```(C6`KF"0``"(M>!P```B-@"GX&```(D[$(```"(V@*?@H` -XM``B;5`````(C;`JO!P``")Z;"P```B-P"O,&```(H9L+```"(W@*[08```BD -XMH0L```,C@`$*5`<```BGH0L```,CB`$*,`$```BIV`@```,CD`$*!P````BJ -XM`PD```,CH`$*-@$```BK+@D```,CL`$*>`8```BM60D```,CP`$*C`0```BO -XMA`D```,CT`$*B`<```BQJ0D```,CX`$`!PA&`P``!PC7````!P@T````$:\+ -XM```!00%4````D$U```````"@34````````)W"-8+```2E@#```&W,``>M>!P``'(,,```![``.```<[@P```'MH0L``!MI[% -XM!```&W-Y;0`![]`$```;:60``?`&#@``&VES``'QM`0``!SG"P```?+S```` -XM&VYD>``!\O,````<"`P```'R\P```!MS8P`!\O,````<\P8```'R\P```!P? -XM#````?/S````'`4-```!\_,````(````<9PP```'UX@```!ME8P`!]E0````<$0D```'V5````!MI``'V -XM5````!T_#````9L!``<(1`@```<(N@0``!X>#0```58!5`````%0#@``&F5C -XM<``!5&`,```:@` -XM````(&X,```!@`(!5`````&%#@``(65C<``!?P)@#```(K<*```!?P+H```` -XM&',``8$",04````94PT```%Z`0$5#P``&F5C<``!>6`,```:^@````;9``!?`8.```;B@P```',`50````!1`\``!IE8W````!5`````%?#P``&G,``=_6 -XM"P```![1"P```38!5`````%Z#P``&G,``376"P```"`G#````3H"`!])P`- -XM```@#@```>,!M!(``"@-#0``*<`.```J&`T``-0[```K(0T``"HL#0``R#P` -XM`"PW#0```Y&@?2Q"#0```Y&`?RI-#0``@#T``"I7#0``.#X``"IA#0``S3X` -XM`"IL#0``,3\``"MW#0``*X(-```JC`T``%0_```KEPT``"JB#0``S3\``"JM -XM#0``%$(``"JX#0``7T,``"K##0``GT0``"K.#0``-$4``"K9#0``F$4``"KC -XM#0``YT4``"KN#0``[D8``"WW#0``:%%````````N#`X``"`4```!<@$H1`X` -XM`"@[#@``*#(.```H*`X``"@=#@``+U`.```W6$```````%U80````````5O1 -XM$0``,&X.```11P``*&(.```Q-UA```````!.6$```````"IZ#@``1T<````` -XM,H4.``#P%````6=4$@``,)T.``#O1P``*)(.```ID!4``"JG#@``$D@``"JR -XM#@``6T@``"J[#@``*$D``"S$#@```Y&@?RS-#@```Y'@?BS7#@```Y'@?"KA -XM#@``T$D``"KJ#@``G4H``"KU#@``:DL``"H`#P``O4P``"L)#P`````R%0\` -XM`#`7```!:902```H.@\``#`Q#P``BDT``"@F#P``,T0/```56T```````"A; -XM0````````=@\``&`7```!)0(HC`\``"GP%P``+)8/```#D>!\+*(/```#D>!^*JX/ -XM``!_3@``*KD/```!3P``*\4/```JT`\``(-/```KW`\````````(`P```@`S -XM"@``"`$-!P```78-``#A`P``X&9````````/:4```````!(-```"`0:K`0`` -XM`@$(J0$```("!;L%```"`@?1!@```P0%:6YT``($!Y8"```""`5=`P``!(8" -XM```".FD````""`>1`@```@@$AP,```($!*D#```$]00```)27@````4(!P8( -XM`@$&L@$```3W!````S)^````!PB.````!PBL````"(X````""`58`P``!(@" -XM```$8UX````$!@$```4GS@````D%`0```0<(PP````H0!E'_````"U<%```& -XM4@`&2;@````"(R@-8V%P``9*N`````(C,`LV"@`` -XM!DNX`````B,X"]T(```&3+@````"(T`+WP0```9-20````(C2`NQ````!DY) -XM`````B-,"ZL$```&3TD````"(U`+W0H```91V@````(C6`LM`P``!E+9`0`` -XM`B-H``<(_P````<(S0$```H0!E+^`0``"U<%```&4LT!```"(P`+.`(```92 -XMTP$```(C"``.`7X-```!5P%)````X&9```````!O9T```````,Q/``"#`@`` -XM#W0``5;-`0``?5````]S``%6I@```-E0```08@`!6*8````040``$&,``5BF -XM````1E$``!!R``%8I@```'Q1```0;&5N``%9E0```+)1```1<0T```%9E0`` -XM`.A1````$@%@#0```2D!<&=````````/:4```````!Y2```/=``!*,T!``#/ -XM4@``#W,``2BF````*U,``!-R``$JI@```!!B``$KH````&-3```08P`!*Z`` -XM``"P4P``$&QE;@`!+)4```#Y4P``$7$-```!+)4````O5```$5L!```!+4D` -XM``!X5``````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+ -XM.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8` -XM21,```D6``,..@L[!4D3```*$P$##@L+.@L["P$3```+#0`##CH+.PM)$S@* -XM```,#0`#"#H+.PM)$S@*```-%0$G#$D3`1,```X%`$D3```/$P`##CP,```0 -XM`0%)$P$3```1(0!)$R\+```2$P$+"SH+.PL!$P``$Q8``P@Z"SL+21,``!0$ -XM`0L+.@L["P$3```5*``##AP-```6!`$##@L+.@L["P$3```7+@`##CH+.P4G -XM#!$!$@%`!@``&"X!`PXZ"SL%)PP@"P$3```9!0`#"#H+.P5)$P``&BX!`PXZ -XM"SL+)PP@"P$3```;!0`#"#H+.PM)$P``'#0``PXZ"SL+21,``!TT``,(.@L[ -XM"TD3```>+@$##CH+.P4G#!$!$@%`!@$3```?!0`#"#H+.P5)$P(&```@-``# -XM#CH+.P5)$P(&```A-``#"#H+.P5)$P(&```B-``##CH+.P5)$P``(QT!,1-5 -XM!E@+604``"0%`#$3```E"P%5!@``)C0`,1,"!@``)S0`,1,""@``*`4``PXZ -XM"SL%21,``"DT``,(.@L[!4D3```J+@$_#`,..@L[!2<,21,1`1(!0`8!$P`` -XM*P4``PXZ"SL%21,"!@``+!T!,1-5!E@+604!$P``+30`,1,``"XT``,..@L[ -XM"TD3`@H``"\T``,..@L["TD3/PP\#```,#0``PXZ"SL%21,_##P,`````1$! -XM)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+ -XM/@L#"```!20`"PL^"P``!@\`"PL```+@$##CH+.P4G#!$!$@%`!@$3```?!0`##CH+.P5)$P(&```@ -XM-``#"#H+.P5)$P``(2X!/PP##CH+.P4G#$D3$0$2`4`&`1,``"(N`3\,`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```C!0`#"#H+.PM)$P(&```D!0`##CH+.PM)$P(& -XM```E-``#"#H+.PM)$P(&```F+@$##CH+.PLG#$D3$0$2`4`&`1,``"+@$# -XM#CH+.PLG#$D3(`L!$P``'P4``PXZ"SL+21,``"`N`0,..@L[!2<,21,@"P$3 -XM```A!0`#"#H+.P5)$P``(@4``PXZ"SL%21,``",T``,..@L[!4D3```D+@$_ -XM#`,..@L[!2<,$0$2`4`&```E-``#"#H+.P5)$P(*```F-``##CH+.P5)$P(& -XM```G'0$Q$U4&6`M9!0$3```H!0`Q$P``*0L!508``"HT`#$3`@8``"LT`#$3 -XM```L-``Q$P(*```M"@`Q$Q$!```N'0$Q$U4&6`M9!0``+QT!,1,1`1(!6`M9 -XM"P$3```P!0`Q$P(&```Q"P$1`1(!```R'0$Q$U4&6`M9"P$3```S'0$Q$Q$! -XM$@%8"UD+`````1$!)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```R0`"PL^ -XM"P,(```$%@`##CH+.PM)$P``!20`"PL^"P``!@\`"PL```7!E2YH````````"0)@'$````````/9 -XM!`%(")P#=_U(")P#=_U(")P#X7W]`BL5`WHY6V4(D0,9C>(X`[E__0BO`Q(( -XMJ0-P_0@2"*T#\GX('4D(9@A`13OR"&=84J)#4E:JG9R!99V<2PB"`B03@8(( -XMGTFLGH4(6H*""&>"-CQ7`P^-<@AR.%8#"6,(67*!`QH(8P,*C0-Z_0,W")N4 -XM@(`#QWX".`$#E`&-G#@Z`PVIG#@Z9@@["$@(0(X(6`/J?L7"`_L`Q8%%.U8X -XM.F(\U%:.@/Y&`^-^?P,2C0/Y``@K_P-6"%4#QP`(Q0.&?P@Y`R,(Q0/=``C% -XM`[Y_"'\#F7\(Q0-B",4(S`/J``C%`\L`",4#I7\(.0/8``C%`^E^_0-YX0.4 -XM`?T#G@+OGE+(R9PX.F7F?8^XN+6`@;BXLX"%`WH('8#P\/16CU-)BTD(5P/O -XM?0A_"/$#P@`",0$#OG^W`P\(X0-Q""L#"M,#=@@=QP@ZR'(#%M,#=0AQ"#K( -XM7,``'-E8W1I;VYS+F,````` -XM7!E2YH````````"0+P*T````````/D`0&X"%24`B@2<@-W8P.\!0CA -XM"*!)"$J.CDB`CHZ`>EP(3[U(.%8($W*`2(!R;DP(R`-L",5(1DA&2`-KFP,, -XM",4##PC%`PL(Q0.J?P(H`:X#$PA'9P-I"&.."!3G@-D('_562@-CC0,6",4( -XMR@-/`B0!UD0]=V324,;&Q@-#"#GI"+@($P@L"$H(G4$#>#DZ@$AR@$A#2PAE -XM"!)RA31,-$A(Q0C(`PK]`PH(Q0C-`ZU_`BP!D0,7 -XMTP-NC0A+`PEQ9("`9(`#;6,#%0@Y5DH#;7$Z?CN`9(`##F,#:7$#%0C%`TT" -XM)P$(Q692/-8(/59B`DH05^0#=`(H`0C(",P#O7X")0&A"'?&E0C6"%:%"!)) -XM-U:.`V+%N`,2C0-M?P,BC0-J"!W&`PW]",H#Z7T")`$#"HT(2@B>6%)*U45) -XM-ZX(+#A(,&"`4@@24CP#%D)L(/<:0`B,,`Q$(1P,58P-K*P,-.0-S*TX(6@A( -XMQ@@\"&<##0@K`WF-20-6 -XM[PCU"*LZ2%E?2(Z.@`,3X0,+"'%6D`-KX0-6",4(R`,B",4#<0C%`V3A`\,` -XM",4#[`(")@$@1%B=!`(#QGW]_@0!`[<"Q8YT!`(#Q'T(.<8$`0.W`CD$`@/) -XM?4<$`0.W`G$$`@/)?3D$`0.W`CDQ;0@M!`(#Q'W]R`0!`W$(Q?U8`\0![WV! -XM10.^?G''@P,)`C5HPZ.%:/"!Y^5E0ML)=9ROB.`POA -XM`VF;JP-L?P.9?@A'A0.6`0CA`X5]J>(#E00(.0A:_`@[5H,$`@.O?0A'_@0! -XM`YH""!W4""P#<=,(2`,850@75GX#C'R-`XP$"-,#89OBN.XZ5M0#=M,#6PAC -XMX@/G``AQ`VS]`]Q^"%4(9PC_"&8('C@ZGP)B"XYR`E\1`X)_"/V`R@,="/T( -XM@@@>.%8"-!4(UP(M$3<[9M3GK`-G`DP!JJH(Y@,*",6L!`(#BW\"3P$$`0/X -XM`.$"91$"1@T#A@$"1@$#S0#A`Z]^")OX`D@-`E`*`W`(Q0/-`)L##0C%`WD( -XMQ0-)",4#9PC]`QT([U8J+&?H"#T"*Q$#8\4#$@)"`0(4``$!40$```(`E@`` -XM``$!^PX*``$!`0$````!+W5S7!EG$Q`VL('=,\ -XM4CS(.@BXW0-P")O3/%(\R#H(N-T#ZWX(FP,)*P-W50@CCH_&"(\(U@C7`YM^ -XMJ0B""$L(H`AS.PC4.')JA@-XFPAR"#P")!(('LE6@[QZ+P@Z"#P")!,(6%:" -XM`R.-"!XX5@/*``(D`0(E$`(U$PAGC@C&JKBX@8Y4@&8#;`+5`0$#&<6`"!YP -XM+`@>"&%TG@(F$8#&`R#%C@,4J0,5J0B0<@,+?P-V50,*50-V58`#+4<#5']R -XM;TNXP.5?W&<`]<`FP,; -XM"!U6`U=_40,+?P-W?[B_`WE52*JXN*JDAL@(Q@-'",4(D+%R\(!(G\#M`%_`[!^`D$! -XM`R)5`WI'`[.%Y\@/L?0CO`ZL$""L(9`.4?N$#4(T#>0@K`_Y]"$<( -XMUW0#Z0#O`B86`Y9_J<@#254#O@((8P(N$`@>"#RO"$@#"0+4`0$(/+M4.H", -XM4PBO"'*`.$@#OWX(?P,+"$<#F`$(*P@ZJ@A(`LH!%@+1`18(.@-X`B\!"#<( -XM.PCM".P#D'\"S0$!`_4`TP,Q`B@!`TW]`YA^`BT!`ZD#",4#O'X(Q0CM`S@( -XMX0-*`C0!"#<#@@$(.7*X@$AR;P.Q?\4#2@+,`0$"+A$#-`(N`0-/"#D#,P(E -XM`0,V`D.')F"*X( -XM<@B?"!8")!("(Q0(9`AP:`(W$`A6*CK&V@(F$^,(\4@#;[<#U0$(C0(I$0,T -XM`B,!`ZQ_`BX!5BHL`_,!")L#XGX(?P/_?@(J`0.-?_U6*BP#[P#3`Y)_*P-# -XM"'\#]@#A",D(%`.$?^$#AP,(Q0.G?0C%`BL45BHL`_8!Q0.@`0(K`0/7?'$" -XM(Q,(/`-Z",4"'@`!`0(!```"`(D````!`?L."@`!`0$!`````2]U7!EG\_`W5Q`PM5`T&W_4VX@`C)CT4[Z`,) -XM50-Q?P@>JL<#%PA5`VOA5PA6.GY(.$@#"0(D`4A&2`@;RDBX.%:`N`-ZX0-E -XM_0@``0$`%````/____\!``%X$`P'")`!````````'`````````!@'$`````` -XM`"D`````````1`X0```````<`````````)`<0```````*0````````!$#A`` -XM`````!P`````````P!Q````````I`````````$0.$```````+`````````#P -XM'$```````(\&````````2H\"A@9A#N`!C@.-!(P%@P<`````````/``````` -XM``"`(T```````'`(````````0@X0CP)%#AB.`TH.($(.*$$.,$$..$<.T`&# -XM!X8&C`6-!````````!0```#_____`0`!>!`,!PB0`0```````!0```#H```` -XM\"M```````!]`````````"0```#H````<"Q```````"V`0```````$J#!8P# -XM40YPC0*&!``````L````Z````#`N0```````!P$```````!"#A!!#AB&`XP" -XM1`X@1`Y@@P0````````<````Z````$`O0```````:P````````!.#B"#`X8" -XM`#0```#H````L"]```````#B`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$ -XM#G"#!H8%C`0`````)````.@```"@,4```````/0`````````00X0A@)$#AA$ -XM#B"#`P```"0```#H````H#)````````Y`0```````$J&!(,%5`ZP`8T"C`,` -XM```L````Z````.`S0```````.@$```````!"#A!"#AA!#B!!#BA$#G"#!88$ -XMC`.-`@`D````Z````"`U0```````_P````````!!#A"&`D0.&$0.8(,#```` -XM+````.@````@-D```````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP -XM@P4`'````.@```#0-D```````"(`````````1@X0```````<````Z``````W -XM0```````-P````````!$#A```````"0```#H````0#=```````!)`0`````` -XM`%J,`X,%C0*&!$<.8``````L````Z````)`X0```````%0$```````!"#A", -XM`D0.&(8#0PX@@P1(#G`````````\````Z````+`Y0```````%0,```````!" -XM#A!'#AA"#B!"#BA!#C"&!HP%C02.`X\"20XX1`Z0`8,'````````)````.@` -XM``#0/$```````-L`````````00X0A@)%#AA$#B"#`P```#P```#H````L#U` -XM``````#3"P```````$(.$$(.&$(.($(.*$$.,$$..$<.D`*#!X8&C`6-!(X# -XMCP(````````4````_____P$``7@0#`<(D`$````````4````X`,``)!)0``` -XM````V0`````````T````X`,``'!*0```````[@$```````!"#A!"#AA"#B!! -XM#BB&!8P$C0..`D0.,$0.L`&#!@```"P```#@`P``8$Q````````E`0`````` -XM`$(.$$$.&$$.((,$A@.,`D<.8````````!0```#_____`0`!>!`,!PB0`0`` -XM`````!0```!X!```D$U````````0`````````!0```!X!```H$U````````0 -XM`````````"0```!X!```L$U```````!!`````````$$.$(8"1`X81`X@@P,` -XM```<````>`0```!.0```````9@````````!.#B"&`H,#`!P```!X!```<$Y` -XM``````!F`````````$X.((8"@P,`/````'@$``#@3D```````/H7```````` -XM0@X01PX80@X@C02.`X\"10XH00XP00XX1P[@!(,'A@:,!0```````!0```#_ -XM____`0`!>!`,!PB0`0```````#P```!H!0``X&9```````"/`````````$(. -XM$$(.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`DH.0``````````\````:`4` -XM`'!G0```````GP$```````!"#A!"#AA"#B"-!(X#CP)%#BA!#C!!#CA$#E"# -XM!X8&C`4`````````7V5X=')A`'9?F4`5]L;VYG;W!T -XM`!%3$9?0U].54Q,`&]P -XM:&YU;0!S96-T:6]N6U?;&ES=`!S=')I<%]L;VYG;W!T6U?:V5E<`!%3$9?5%]32$12`'-A8U]L:7-T`&YO8V]P>0!? -XM6U?F4`14Q&7U1? -XM4U=/4D0`8W)E871E7V9I;&4`7U]F9FQA9W-?=`!%3$9?5%](04Q&`&]P=&%R -XM9P!S:&]R="!U;G-I9VYE9"!I;G0`14Q&7TM?05(`=E]R96P`6YC7W-E8W1I;VYS`$5L -XM9C8T7U-H9'(`:7-?'0`;G-E8W,`16QF-C1?6'=O`!R7V%D9&5N9`!R96PV-`!I -XM@!A9&1?=&]?:6YS96=?;&ES=`!P7V%L:6=N`$=% -XM;&9?4&AD<@!P7V9L86=S`'!?='EP90!P7W9A9&1R`'!?;65M6UB;VQS`&ES7V1E8G5G7W-Y;6)O;`!S=%]S>@!I -XM6T`5]C87``8V%L8U]N;VYL;V-A;`!%;&8V-%]3>6T`8W)E -XM871E7W-E8W-Y;0!'16QF7U-Y;0!A9&1?=&]?:V5E<%]L:7-T`'-T7V)U9@!L -XM;V]K=7!?5]B=68`:7-?;F5E9&5D7W-Y;6)O;`!S -XM>6UB;VQS+F,`:7-?;&]C86Q?6UB;VP`;'-Y9&%T80!L;V]K=7!?:V5E<%]S>6UL:7-T`'-T7VYA -XM;64`;6%R:U]S>6UB;VQS`&EN>@4````````?!P````````$`7@`````````````````````&`0`````` -XM``D!`````````0!0"0$````````,!`````````$`7"P$````````-00````` -XM```!`%QQ!````````'0$`````````0!0=`0```````#I!`````````$`7$T% -XM````````:04````````!`%R0!0```````-\&`````````0!<\`8````````0 -XM!P````````$`7``````````````````````O`P```````+H#`````````0!3 -XMVP,```````#\`P````````$`4Z,$````````SP0````````!`%/@!0`````` -XM`!<&`````````0!3CP8```````"M!@````````$`4\$&````````WP8````` -XM```!`%,`````````````````````?`(```````"Z`P````````,`D;A_VP,` -XM```````L!`````````,`D;A_HP0```````#I!`````````,`D;A_5@4````` -XM``!I!0````````,`D;A_P@4````````7!@````````,`D;A_CP8```````"M -XM!@````````,`D;A_P08```````#?!@````````,`D;A_\`8```````#_!@`` -XM``````,`D;A_`````````````````````"`'````````(@<````````"`'<( -XM(@<````````G!P````````(`=Q`G!P```````#$'`````````@!W&#$'```` -XM````,P<````````"`'<@,P<````````T!P````````(`=R@T!P```````#4' -XM`````````@!W,#4'````````/`<````````"`'`````````````````````"`'````````00<````` -XM```!`%1!!P```````(8-`````````0!?U0T```````"0#P````````$`7P`` -XM``````````````````!I!P```````&X'`````````0!540D```````!6"0`` -XM``````$`58()````````APD````````!`%6?"0```````*0)`````````0!5 -XMT`D```````#5"0````````$`58$+````````C`L````````!`%4U#``````` -XM`#H,`````````0!5/0P```````!"#`````````$`59T-````````H@T````` -XM```!`%7.#0```````-,-`````````0!5X@T```````#G#0````````$`5:4. -XM````````J@X````````!`%7)#@```````,X.`````````0!5W0X```````#B -XM#@````````$`55(/````````7@\````````!`%4````````````````````` -XMA`@```````"<"`````````$`4%H)````````>`D````````!`%"H"0`````` -XM`,8)`````````0!0]@T````````"#@````````$`4``````````````````` -XM```P#````````#H,`````````0!420P```````!0#`````````$`5``````` -XM```````````````I#````````#H,`````````0!120P```````!0#``````` -XM``$`40````````````````````#\"0```````/\)`````````0!0_PD````` -XM```>"@````````$`75`*````````4`H````````!`%T6#@```````"<.```` -XM`````0!=,0X```````!"#@````````$`70````````````````````"$"``` -XM`````/\)`````````0!=4`H````````4"P````````$`7=$+````````7`P` -XM```````!`%WV#0```````!8.`````````0!=0@X```````!G#@````````$` -XM70````````````````````"$"````````!X*`````````0!3G@H```````"A -XM"@````````$`4*$*````````%`L````````!`%/1"P```````%P,```````` -XM`0!3]@T````````'#@````````$`4Q8.````````)PX````````!`%,Q#@`` -XM`````$(.`````````0!34PX```````!G#@````````$`4P`````````````` -XM``````"$"````````)P(`````````0!0GP@```````#;"`````````$`4.(( -XM````````5@D````````!`%!X"0```````(<)`````````0!0C`D```````"D -XM"0````````$`4,8)````````U0D````````!`%#:"0```````/D)```````` -XM`0!0\@L````````)#`````````$`4`X,````````$PP````````!`%!0#``` -XM`````%4,`````````0!0`````````````````````!X*````````1@H````` -XM```!`%,'#@```````!8.`````````0!3`````````````````````#H,```` -XM````0@P````````!`%`[#0```````'H-`````````0!0```````````````` -XM`````!T+````````T0L````````!`%;2#````````&H-`````````0!6U0T` -XM``````#V#0````````$`5B<.````````,0X````````!`%8````````````` -XM````````&PL````````E"P````````,`D;!^)0L````````M"P````````,` -XMD;1^+0L````````P"P````````,`D;A^,`L````````R"P````````$`73(+ -XM````````,@L````````!`%,R"P```````$L+`````````P"1L'Y+"P`````` -XM`&P+`````````0!3;`L```````!R"P````````$`4W(+````````APL````` -XM```!`%.'"P```````(X+`````````0!=C@L```````"6"P````````$`4Y8+ -XM````````F`L````````#`)&T?I@+````````H`L````````!`%.@"P`````` -XM`*(+`````````P"1N'ZB"P```````+`+`````````0!3L`L```````"R"P`` -XM``````,`D;!^L@L```````#1"P````````$`4SH,````````20P````````# -XM`)&T?M(,````````^@P````````!`%/Z#`````````H-`````````P"1M'X* -XM#0````````P-`````````P"1L'X,#0```````!0-`````````0!3%`T````` -XM```S#0````````,`D;A^,PT```````"!#0````````$`4X$-````````E0T` -XM```````#`)&P?I4-````````U0T````````#`)&T?M4-````````]@T````` -XM```!`%,G#@```````#$.`````````0!3`````````````````````$4+```` -XM````3@L````````!`%#2#````````.(,`````````0!0)PX````````L#@`` -XM``````$`4``````````````````````Z#````````$D,`````````0!6:@T` -XM``````!Z#0````````$`5GH-````````E0T````````!`%"5#0```````-4- -XM`````````0!6`````````````````````(`,````````F`P````````!`%"Q -XM#@```````+\.`````````0!0`````````````````````&,(````````_PD` -XM```````!`%T4"P```````#`+`````````0!=\@L```````#2#`````````$` -XM7?8-````````!PX````````!`%UG#@```````&@/`````````0!=B0\````` -XM``"0#P````````$`70````````````````````!<#````````)@,```````` -XM`0!0FPP```````#+#`````````$`4&<.````````J@X````````!`%"_#@`` -XM`````,X.`````````0!0TPX```````#B#@````````$`4.<.````````"@\` -XM```````!`%``````````````````````.@P```````!)#`````````$`5CD/ -XM````````10\````````!`%9%#P```````%4/`````````0!050\```````!H -XM#P````````$`5@````````````````````"``````````)L``````````@!W -XM")L`````````-@(````````#`'?P``````````````````````"````````` -XM`*8``````````0!5I@````````"1`0````````$`7)L!````````-@(````` -XM```!`%P`````````````````````GP````````",`0````````$`5IL!```` -XM````-@(````````!`%8`````````````````````!0$````````(`0`````` -XM``$`4`@!````````AP$````````!`%.;`0```````+X!`````````0!3W`$` -XM```````V`@````````$`4P````````````````````!``@```````$("```` -XM`````@!W"$("````````0P(````````"`'<00P(```````!'`@````````(` -XM=QA'`@```````$L"`````````@!W($L"````````1P,````````#`'?@```` -XM``````````````````!``@```````%P"`````````0!57`(```````#M`@`` -XM``````$`5O`"````````1P,````````!`%8`````````````````````4@(` -XM``````#L`@````````$`4_`"````````1P,````````!`%,````````````` -XM````````Y0(```````#P`@````````$`4"P#````````,P,````````!`%`` -XM````````````````````4`,```````!>`P````````(`=PA>`P```````+L# -XM`````````@!W(`````````````````````!0`P```````'(#`````````0!5 -XMA0,```````"(`P````````$`50````````````````````!0`P```````&P# -XM`````````0!4;`,```````!W`P````````$`5G<#````````A0,````````! -XM`%2%`P```````+L#`````````0!6`````````````````````&(#```````` -XM?`,````````!`%-\`P```````(4#`````````0!5A0,```````"[`P`````` -XM``$`4P````````````````````#``P```````,(#`````````@!W",(#```` -XM````Q`,````````"`'<0Q`,```````#)`P````````(`=QC)`P```````,H# -XM`````````@!W(,H#````````RP,````````"`',#````````%@4````````!`%T6!0```````!D% -XM`````````0!5&04```````"B!0````````$`70`````````````````````$ -XM!````````!$%`````````0!3&04```````"B!0````````$`4P`````````` -XM``````````#6`P```````!(%`````````0!6&04```````"B!0````````$` -XM5@````````````````````"/!````````)($`````````0!0D@0```````#0 -XM!`````````$`44@%````````4@4````````!`%$````````````````````` -XM#00````````4!0````````$`7!D%````````H@4````````!`%P````````` -XM````````````L`4```````"Q!0````````(`=PBQ!0```````+4%```````` -XM`@!W$+4%````````N04````````"`'<8N04```````"D!@````````(`=R`` -XM````````````````````L`4```````#+!0````````$`5P`0````````````````````"P!@```````-0&`````````0!5U`8` -XM``````!_!P````````$`7(\'````````Z0<````````!`%P````````````` -XM````````L`8```````#9!@````````$`5-D&````````X08````````!`%4` -XM````````````````````L`8```````#A!@````````$`4>$&````````;P<` -XM```````!`%./!P```````.D'`````````0!3`````````````````````+`& -XM````````X08````````!`%+A!@```````'<'`````````0!6CP<```````#I -XM!P````````$`5@````````````````````#P!P```````/('`````````@!W -XM"/('````````]`<````````"`'<0]`<```````#U!P````````(`=QCU!P`` -XM`````/8'`````````@!W(/8'````````^@<````````"`'PL````````!`%1]"P```````(D+`````````0!6I0L```````"G -XM"P````````$`5L(+````````Q`L````````!`%;\"P```````),,```````` -XM`0!6`````````````````````'T+````````?PL````````!`%`T#``````` -XM`#D,`````````0!0:`P```````"##`````````$`4(X,````````F0P````` -XM```!`%``````````````````````H`P```````"B#`````````(`=PBB#``` -XM`````*8,`````````@!W$*8,````````J0P````````"`'<8J0P```````"Q -XM#`````````(`=R"Q#````````+4-`````````P!W\``````````````````` -XM````H`P```````"U#`````````$`5;4,````````+PT````````!`%PP#0`` -XM`````+4-`````````0!<`````````````````````*`,````````K0P````` -XM```!`%2M#````````"P-`````````0!3,`T```````"U#0````````$`4P`` -XM```````````````````2#0```````!\-`````````0!0>0T```````"##0`` -XM``````$`4`````````````````````"H#````````"T-`````````0!6,`T` -XM``````"U#0````````$`5@`````````````````````%#0```````#`-```` -XM`````@"16'D-````````EPT````````"`)%8`````````````````````"<- -XM````````,`T````````!`%$W#0```````$<-`````````0!1```````````` -XM`````````,`-````````P@T````````"`'<(P@T```````#)#0````````(` -XM=Q#)#0```````,L-`````````@!W&,L-````````S0T````````"`'<@S0T` -XM``````#.#0````````(`=RC.#0```````-<-`````````@!W,-<-```````` -XMVPT````````"`'NA````````#5$`````````$`7@`````````````` -XM```````T#@```````)P0`````````P"1N'^Z$````````-40`````````P"1 -XMN'\`````````````````````-`X````````0$`````````$`7140```````` -XMG!`````````!`%VZ$````````-40`````````0!=```````````````````` -XM`/\.`````````@\````````!`%`"#P```````%\/`````````0!1W@\````` -XM``#D#P````````$`4140````````'Q`````````!`%$````````````````` -XM````_P\````````5$`````````$`4+H0````````P1`````````!`%`````` -XM````````````````X!````````#A$`````````(`=PCA$````````.80```` -XM`````@!W$.80````````ZA`````````"`'<8ZA````````"[$0````````(` -XM=R``````````````````````X!````````!'$0````````$`56H1```````` -XM?1$````````!`%6$$0```````(X1`````````0!5K!$```````"Q$0`````` -XM``$`50````````````````````#@$`````````41`````````0!4+!$````` -XM``!$$0````````$`5&H1````````>!$````````!`%2$$0```````(L1```` -XM`````0!4`````````````````````/(0````````;Q$````````!`%-Q$0`` -XM`````+L1`````````0!3`````````````````````/00````````1!$````` -XM```!`%1J$0```````'@1`````````0!4A!$```````"+$0````````$`5*P1 -XM````````MA$````````!`%0`````````````````````]!`````````%$0`` -XM``````$`5"P1````````>!$````````!`%2$$0```````(L1`````````0!4 -XME1$```````"G$0````````$`5`````````````````````#T$````````'T1 -XM`````````0!5A!$```````".$0````````$`5941````````IQ$````````! -XM`%6L$0```````+$1`````````0!5`````````````````````,`1```````` -XMPA$````````"`'<(PA$```````#$$0````````(`=Q#$$0```````,81```` -XM`````@!W&,81````````R!$````````"`'<@R!$```````#)$0````````(` -XM=RC)$0```````,H1`````````@!W,,H1````````T1$````````"`'!8````````!`%5X%@```````)(6`````````P"1 -XMR'Z2%@```````)<6`````````0!5EQ8```````"3'0````````,`DP`0````````````````````#@ -XM`````````%P!`````````0!57`$```````!/`@````````$`5E8"```````` -XMS@(````````!`%8`````````````````````]@````````!A`0````````$` -XM4H4!````````3@(````````!`%-6`@```````)("`````````0!3```````` -XM`````````````/T`````````!`$````````!`%`+`0```````&$!```````` -XM`0!0`````````````````````/T`````````80$````````!`%$````````` -XM````````````H0$```````"J`0````````$`7*H!````````40(````````! -XM`%Q6`@```````)("`````````0!<`````````````````````-`"```````` -XMT@(````````"`'<(T@(```````#3`@````````(`=Q#3`@```````-0"```` -XM`````@!W&-0"````````VP(````````"`'<@VP(```````#U`P````````,` -XM=^```````````````````````-`"````````WP(````````!`%7?`@`````` -XM`*0#`````````0!3J`,```````#U`P````````$`4P`````````````````` -XM``#V`@````````4#`````````@"16`H#````````UP,````````"`)%8```` -XM`````````````````"``````````(0`````````"`'<((0`````````E```` -XM``````(`=Q`E`````````"D``````````@!W&"D`````````80`````````" -XM`'<@`````````````````````"``````````-P`````````!`%5````````` -XM`$8``````````0!56`````````!A``````````$`50`````````````````` -XM```@`````````#4``````````0!4-0````````!7``````````$`5E@````` -XM````8``````````!`%9@`````````&$``````````0!4```````````````` -XM`````#``````````5@`````````!`%-8`````````%\``````````0!3```` -XM`````````````````'``````````?@`````````"`'<(?@````````#6```` -XM``````(`=R``````````````````````<`````````"&``````````$`588` -XM````````P``````````!`%;%`````````-8``````````0!6```````````` -XM`````````'``````````C@`````````!`%2.`````````+L``````````0!3 -XMQ0````````#6``````````$`4P````````````````````#@`````````.X` -XM`````````@!W".X`````````1@$````````"`'<@```````````````````` -XM`.``````````]@`````````!`%7V`````````#`!`````````0!6-0$````` -XM``!&`0````````$`5@````````````````````#@`````````/X````````` -XM`0!4_@`````````K`0````````$`4S4!````````1@$````````!`%,````` -XM````````````````4`$```````!2`0````````(`=PA2`0```````%D!```` -XM`````@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(` -XM=R!@`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0````` -XM``!%%`````````$`4488````````4!@````````!`%$````````````````` -XM````;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``` -XM`````%`8`````````0!1`````````````````````-\#````````KP4````` -XM```!`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1 -XM````````*!$````````!`%/2$0````````82`````````0!3:!(````````T -XM$P````````$`4XX3````````I!,````````!`%/)$P```````!`4```````` -XM`0!3K!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`` -XM`````)@7`````````0!3I1@```````#*&`````````$`4P`````````````` -XM``````##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1 -XMD'S$"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R. -XM%````````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`` -XM`````.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````` -XM````````````V`,```````"U!P````````,`D8A\R0<```````!I"0`````` -XM``,`D8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,` -XMD8A\CA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\ -XMPA<```````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```` -XM`````````````````(@"````````WP,````````!`%-I"0```````-\)```` -XM`````0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q -XM%P```````&X7`````````0!3F!<```````"I%P````````$`4\`7```````` -XMZA<````````!`%,`````````````````````B@(```````"U!P````````,` -XMD;A_R0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_ -XM*!@```````!*&0````````,`D;A_`````````````````````%P$```````` -XM9@0````````!`%``````````````````````_P(```````"U!P````````,` -XMD8!\R0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\ -XMCA0```````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```` -XM`````````````````,\#````````M0<````````#`)'8?,D'````````:0D` -XM```````#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````` -XM```#`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````# -XM`)'8?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8 -XM?-(/````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0 -XM````````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```` -XM````D1$````````#`)'8?)$1````````LA$````````#`)'X>[(1```````` -XM!A(````````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,` -XM```````#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````` -XM```#`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````# -XM`)'8?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8 -XM?$87````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7 -XM````````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````` -XM``````````````#8`P```````+4'`````````P"1\'O)!P```````&D)```` -XM`````P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.```````` -XM`P"1\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1 -XM\'L4$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT -XM$P```````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``` -XM`````#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P`````` -XM`,`7`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9 -XM`````````P"1\'L`````````````````````V`,```````#N`P````````$` -XM7YD%````````00<````````!`%^H"````````&D)`````````0!?&PH````` -XM``#A$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```` -XM`````0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0 -XM%````````&P4`````````0!?CA0```````"L%`````````$`7\P4```````` -XM`Q<````````!`%]5%P```````&X7`````````0!?J1<```````#`%P`````` -XM``$`7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@` -XM``````!*&0````````$`7P````````````````````"*`@```````/`"```` -XM`````0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4 -XM````````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````` -XM```````````````3`@```````+4'`````````P"1Y'O)!P```````&P4```` -XM`````P"1Y'N.%````````$H9`````````P"1Y'L````````````````````` -XM!@,````````N`P````````$`4(L#````````I`,````````!`%#8`P`````` -XM`/`#`````````0!5_0,````````(!`````````$`59D%````````\04````` -XM```!`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\) -XM````````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!: -XM%P````````$`59@7````````I!<````````!`%#`%P```````,(7```````` -XM`0!0PA<```````#'%P````````$`50````````````````````"O!0`````` -XM`/8%`````````0!2`````````````````````)<*````````GPH````````! -XM`%3$"@```````,D*`````````0!5`````````````````````-@#```````` -XMWP,````````!`%.N"@```````/$*`````````0!3_@H```````!-"P`````` -XM``$`4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<` -XM``````#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88 -XM`````````0!3`````````````````````&X)````````>`D````````!`%4` -XM````````````````````51$```````!?$0````````$`5&D5````````;!4` -XM```````!`%!L%0```````'H5`````````0!4`````````````````````-@# -XM````````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```` -XM````X1`````````#`)&X?.\0````````;!0````````#`)&X?(X4```````` -XM,1<````````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<` -XM```````#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````` -XM```#`)&X?``````````````````````T"P```````$,+`````````0!<51$` -XM``````"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7 -XM`````````0!`T````````!`%4*%0````````X5`````````0!5 -XM51<```````!:%P````````$`5;`7````````LA<````````!`%"R%P`````` -XM`,`7`````````0!5PA<```````#'%P````````$`5988````````F!@````` -XM```!`%"8&````````*48`````````0!5`````````````````````-@#```` -XM````M0<````````#`)&L?,D'````````:0D````````#`)&L?$8*```````` -XMX1`````````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<` -XM```````#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````` -XM```#`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````# -XM`)&L?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`` -XM`````&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@`````` -XM`&,*`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``` -XM``````,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P`````` -XM``,`D<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,` -XMD<1\*!@```````!*&0````````,`D<1\`````````````````````$,'```` -XM````M0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``` -XM``````$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3 -XMRA@```````#7&`````````$`4P````````````````````!&!P```````+4' -XM`````````0!>R0<```````#8!P````````$`7ML'````````J`@````````! -XM`%Z.%````````*P4`````````0!>51<```````!N%P````````$`7LH8```` -XM````UQ@````````!`%X`````````````````````X@<````````>"``````` -XM``$`4%47````````6A<````````!`%7*&````````-<8`````````0!0```` -XM`````````````````````````````@`````````"`'<(`@`````````$```` -XM``````(`=Q`$``````````8``````````@!W&`8`````````"``````````" -XM`'<@"``````````)``````````(`=R@)``````````H``````````@!W,`H` -XM````````%``````````"`'@`````````!`%][```` -XM`````(X``````````0!?`````````````````````#,`````````;P`````` -XM```!`%9[`````````(8``````````0!6`````````````````````#4````` -XM````;0`````````!`%Q[`````````(@``````````0!<```````````````` -XM`````#4`````````;@`````````!`%-[`````````(4``````````0!3```` -XM`````````````````"0``````````@````````,` -XMD;A_`````````````````````.0`````````2P$````````!`%Q2`0`````` -XM``8"`````````0!<#0(````````>`@````````$`7``````````````````` -XM``#V`````````$@!`````````0!34@$```````"E`0````````$`4P`````` -XM``````````````#G`````````%$!`````````0!?4@$````````,`@`````` -XM``$`7PT"````````'@(````````!`%\`````````````````````[P`````` -XM```>`@````````(`D40`````````````````````#P$```````#;`P`````` -XM`/`&````````$`<```````#!!@```````-\&````````%P8```````"M!@`` -XM`````,(%````````_@4```````"0!0```````*X%````````304```````!I -XM!0```````,\$````````Z00````````L!````````#4$```````````````` -XM`````````````)!<```````!) -XM%P```````&H7````````0A<```````!&%P````````@7````````,!<````` -XM```"%P````````47````````[A8```````#W%@```````-H6````````X18` -XM``````#,%@```````-46`````````````````````````````%P2```````` -XM@1(```````#A%0```````/L5`````````````````````````````($2```` -XM````Y1(````````[&P```````$H;````````"A8```````"H%@```````'$5 -XM````````X14```````!@$P```````)L4```````````````````````````` -XM`($2````````Y1(````````[&P```````$H;````````EQ8```````"H%@`` -XM`````#@6````````6X`+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF -XM:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y -XM;F%M:6,`+F-T;W)S`"YD=&]RE```````*!Z```````` -XMH`$````````%``````````@`````````$`````````"X`````0````,````` -XM````0'Q0``````!`?````````!`````````````````````(```````````` -XM````````OP````$````#`````````%!\4```````4'P````````0```````` -XM````````````"````````````````````,8````!`````P````````!@?%`` -XM`````&!\````````"`````````````````````@```````````````````#+ -XM`````0````,`````````:'Q0``````!H?````````$@"```````````````` -XM```(``````````@`````````T`````@````#`````````+!^4```````L'X` -XM```````P````````````````````"````````````````````-4````!```` -XM`````````````````````+!^````````]@$```````````````````$````` -XM``````````````#>`````0````````````````````````"F@````````/`` -XM```````````````````!````````````````````[0````$````````````` -XM````````````EH$```````#I`0```````````````````0`````````````` -XM`````/T````!`````````````````````````'^#````````:TX````````` -XM``````````$````````````````````)`0```0`````````````````````` -XM``#JT0```````#4+```````````````````!````````````````````%P$` -XM``$`````````````````````````']T````````8#@`````````````````` -XM`0```````````````````",!```!`````````````````````````#CK```` -XM``````8```````````````````@````````````````````P`0```0```#`` -XM```````````````````X\0```````(P-```````````````````!```````` -XM``$`````````.P$```$`````````````````````````Q/X```````"<5``` -XM`````````````````0```````````````````$8!```!```````````````` -XM`````````&!3`0``````@!@```````````````````$````````````````` -XM```1`````P````````````````````````#@:P$``````%0!```````````` -XM```````!`````````````````````0````(````````````````````````` -XM>'8!``````"@$0```````"0```!/````"``````````8``````````D````# -XM`````````````````````````!B(`0``````B@D```````````````````$` -XM`````````````````````````````````````````````````````````P`! -XM`,@!0````````````````````````P`"`.`!0``````````````````````` -XM`P`#`/@!0````````````````````````P`$`%`$0``````````````````` -XM`````P`%`-`+0````````````````````````P`&`.`.0``````````````` -XM`````````P`'`(`/0````````````````````````P`(`,`/0``````````` -XM`````````````P`)`#@00````````````````````````P`*`,@60``````` -XM`````````````````P`+`-P60````````````````````````P`,`%`;0``` -XM`````````````````````P`-`#AI0````````````````````````P`.`$AI -XM0````````````````````````P`/`$1R0````````````````````````P`0 -XM`&!R4````````````````````````P`1`&!U4``````````````````````` -XM`P`2`*!Z4````````````````````````P`3`$!\4``````````````````` -XM`````P`4`%!\4````````````````````````P`5`&!\4``````````````` -XM`````````P`6`&A\4````````````````````````P`7`+!^4``````````` -XM`````````````P`8`````````````````````````````P`9```````````` -XM`````````````````P`:`````````````````````````````P`;```````` -XM`````````````````````P`<`````````````````````````````P`=```` -XM`````````````````````````P`>`````````````````````````````P`? -XM`````````````````````````````P`@```````````````````````````` -XM`P`A`````````````````````````````P`B```````````````````````` -XM`````P`C`````````````````````````````P`D```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`3`$!\ -XM4`````````````````!@`````0`4`%!\4`````````````````!N`````0`5 -XM`&!\4`````````````````![`````@`,`/`;0`````````````````"1```` -XM`0`7`-1^4````````0````````"@`````0`0`'!R4`````````````````"G -XM`````@`,`#`<0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`3`$A\4`````````````````#``````0`4`%A\4``````````` -XM``````#-`````0`1`&AZ4`````````````````#;`````0`5`&!\4``````` -XM``````````#G`````@`,`!!I0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0```@`,`&`<0```````*0`````````N`0`` -XM`@`,`)`<0```````*0`````````X`0```@`,`,`<0```````*0````````!& -XM`0```@`,`/`<0```````CP8```````!2`0```0`0`,!S4```````H`$````` -XM``!C`0```0`0`(!R4```````0`$```````!R`0``!`#Q_P`````````````` -XM``````!]`0```@`,`/`K0```````?0````````"0`0```@`,`$`O0``````` -XM:P````````"@`0```@`,`-`V0```````(@````````"T`0```@`,```W0``` -XM````-P````````#&`0```@`,`-`\0```````VP````````#1`0``!`#Q_P`` -XM``````````````````#<`0``!`#Q_P````````````````````#F`0```@`, -XM`)!-0```````$`````````#W`0```@`,`*!-0```````$``````````'`@`` -XM!`#Q_P`````````````````````/`@``$@`,`"`U0```````_P`````````< -XM`@``$@`,`*`Q0```````]``````````F`@``$@```.P60```````D``````` -XM```X`@``$@```/P60```````AP````````!2`@``$@````P70```````%P$` -XM``````!I`@``$@```!P70```````314```````!^`@``$@`,`*`R0``````` -XM.0$```````"(`@``$@```"P70```````?`$```````"9`@``$@`,`'!.0``` -XM````9@````````"J`@``$0`2`*!Z4`````````````````"S`@``$@```#P7 -XM0```````V@(```````#)`@``$@```$P70```````G@````````#8`@``$@`` -XM`%P70```````-`````````#J`@``$@```&P70```````50````````#[`@`` -XM$@`,`)`X0```````%0$````````/`P``$@`,`+`]0```````TPL````````< -XM`P``$@```'P70```````Y0`````````R`P``$@`,`.!F0```````CP`````` -XM``!``P``$@```(P70```````B@````````!0`P``$@```)P70``````````` -XM``````!A`P``$@```*P70```````:@````````!X`P``$0(0`&AR4``````` -XM``````````"%`P``$@```+P70```````X@````````":`P``$@`,`.!.0``` -XM````^A<```````"H`P``$@```,P70```````C`$```````#"`P``$@`,`+`O -XM0```````X@$```````#2`P``$@```-P70````````@````````#F`P``$@`` -XM`.P70```````AP8```````#X`P``$@```/P70```````.P`````````.!``` -XM$@````P80```````&0$````````E!```$@`,`.`S0```````.@$````````U -XM!```$@`*`,@60``````````````````[!```$@```!P80```````)``````` -XM``!2!```$@```"P80```````B`````````!A!```$0`7`-A^4```````"``` -XM``````!I!```$@```#P80```````3`````````![!```$@```$P80``````` -XM*0````````",!```$@```%P80```````-0````````"A!```$@```&P80``` -XM````:0$```````"V!```$@```'P80```````:@````````#0!```$0`7`+!^ -XM4```````!`````````#G!```$@```(P80```````K0(```````#X!```$@`` -XM`)P80```````%@`````````+!0``$0`0`&!R4```````"``````````6!0`` -XM$@`,`"`V0```````H@`````````E!0``$@`,`%`;0```````DP`````````L -XM!0``$@```*P80```````E0`````````\!0``$@```+P80``````````````` -XM``!+!0``$0`7`+A^4```````"`````````!!0``$@`,`#`N0```````!P$```````"J!0``$@`,`'!*0``` -XM````[@$```````"T!0``$@`,`'!G0```````GP$```````#%!0``$@```/P8 -XM0```````*`````````#"```$@```+P:0```````\@````````!O"```$0`7`,A^4```````"``` -XM``````"#"```$@```,P:0```````=@````````"2"```$0`7`-!^4``````` -XM!`````````"C"```$@```-P:0```````+P````````"T"```$@`,``!.0``` -XM````9@````````#&"```$@`,`)!)0```````V0````````#8"```$@```.P: -XM0```````'@````````#I"```$@```/P:0```````N0$````````$"0``$@`` -XM``P;0```````(0`````````9"0``$@```!P;0``````` -XM"0``$@`,`&!,0```````)0$```````!I"0``$@```#P;0```````:`$````` -XM``!_"0``$@`,`+`Y0```````%0,`````````8W)T,2YC`&%B:71A9P`O=7-R -XM+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\8V]M;6%N9"UL:6YE/@`\8G5I -XM;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ)4U1?7P!?7T143U)?3$E35%]? -XM`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R4!`1D)31%\Q -XM+C``5]P:&1R -XM`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A=&5?elfcopy.1.uu << 'e4e59173f6354081a9e3a7debde2f069' -Xbegin 644 elfcopy.1 -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````(B9```` -XM`````````$``.``'`$``'``9``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6UT -XM86(`+G-T6YS>6T`+F1Y;G-T<@`N9VYU+G9EE``````````````````D0````$`%0!@?%`````````````````` -XMG0````(`#``0:4``````````````````LP````(`#`!@'$```````"D````` -XM````OP````(`#`"0'$```````"D`````````R0````(`#`#`'$```````"D` -XM````````UP````(`#`#P'$```````(\&````````XP````$`$`#`E`````````````` -XM``````````,`$P!`?%````````````````````````,`%`!0?%`````````` -XM``````````````,`%0!@?%````````````````````````,`%@!H?%`````` -XM``````````````````,`%P"P?E````````````````````````,`&``````` -XM````````````````>`$``!(`#``@-4```````/\`````````A0$``!(`#`"@ -XM,4```````/0`````````CP$``!(```#L%D```````)``````````H0$``!(` -XM``#\%D```````(<`````````NP$``!(````,%T```````!E``````````````````'`(``!(````\%T```````-H" -XM````````,@(``!(```!,%T```````)X`````````00(``!(```!<%T`````` -XM`#0`````````4P(``!(```!L%T```````%4`````````9`(``!(`#`"0.$`` -XM`````!4!````````>`(``!(`#`"P/4```````-,+````````A0(``!(```!\ -XM%T```````.4`````````FP(``!(`#`#@9D```````(\`````````J0(``!(` -XM``",%T```````(H`````````N0(``!(```"<%T``````````````````R@(` -XM`!(```"L%T```````&H`````````X0(``!$"$`!H`!C -XM;VUP;&5T960N-3`R.0!P+C4P,C<`9G)A;65?9'5M;7D`7U]#5$]27T5.1%]? -XM`%]?1%1/4E]%3D1?7P!?7T9204U%7T5.1%]?`%]?2D-27T5.1%]?`%]?9&]? -XM9VQO8F%L7V-T;W)S7V%U>`!S=')I<%]U5]U6UB;VP`:7-?;&]C86Q?4!`1D)31%\Q+C``5]P:&1R`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A -XM=&5?E```````*!Z````````H`$````````%```` -XM``````@`````````$`````````"]`````0````,`````````0'Q0``````!` -XM?````````!`````````````````````(````````````````````Q`````$` -XM```#`````````%!\4```````4'P````````0````````````````````"``` -XM`````````````````,L````!`````P````````!@?%```````&!\```````` -XM"`````````````````````@```````````````````#0`````0````,````` -XM````:'Q0``````!H?````````$@"```````````````````(``````````@` -XM````````U0````@````#`````````+!^4```````L'X````````P```````` -XM````````````"````````````````````-H````!```````````````````` -XM`````+!^````````]@$```````````````````$````````````````````1 -XM`````P````````````````````````"F@````````.,````````````````` -XM```!`````````````````````0````(`````````````````````````D($` -XM````````#P```````!L````S````"``````````8``````````D````#```` -XM`````````````````````)"0````````\P@```````````````````$````` -X+```````````````` -X` -Xend -e4e59173f6354081a9e3a7debde2f069 -echo x - elfcopy.uu -sed 's/^X//' >elfcopy.uu << '2151ae8f08071e33d3c60fbc8f2d2844' -Xbegin 644 elfcopy -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````#AM`0`` -XM`````````$``.``'`$``)0`B``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6YC7W-E8W1I;VYS`"(1``!I;G-E5]C;VYT96YT``````!! -XM`````@!^+@``W`D``'$(``!A9&1?=&]?:6YS96=?;&ES=`#W"```8V]P>5]P -XM:&1R`'P)``!S971U<%]P:&1R``````!C`````@!:.```!1,```L,``!L;V]K -XM=7!?:V5E<%]S>6UL:7-T`&8,``!A9&1?=&]?6`@```TP&```".8,````" -XM"`5=`P```X8"```".I4````""`>1`@```@@$AP,```($!*D#```#]00```)2 -XMB@````,\!0```E1X````!0@'!@@#?`$```,F9@````,5`P```R=X`````[0& -XM```#*68````#B0````,L9@````,T`P```RYF`````PT"```#,4(````#70<` -XM``,S0@````,(!0```S1X`````W`&```#/F8````#&@$```-;9@````(!!K(! -XM```#_`$```190@````-/`P``!%YF`````X@"```$8XH````'"#,!```'"&U````"7(&```$"`$=`0``"MT%```0 -XM!2X/`@``"X<'```%+\\!```"(P`+\`4```4P@P````(C"``*U@```'@&@PH# -XM```+V`0```:$*`$```(C``M-!P``!H68`0```B,$"V@&```&AJ,!```"(P@+ -XM@P0```:'K@$```(C"@N0`0``!HC:`0```B,,"V0"```&B8T!```"(Q`+O@$` -XM``:**`$```(C%`O9!0``!HSF`0```B,8"R`#```&C>8!```"(R@+8`4```:. -XMY@$```(C.`NK`@``!I>Y`0```B-("S8````&F')`P```B,`#%]R``AH -XM7P````(C"`Q?=P`(:5\````"(PP+?0H```AJ.P````(C$`NN!@``"&L[```` -XM`B,2#%]B9@`(;&`#```"(Q@+0P8```AM7P````(C*`M)`@``"'##`````B,P -XM"_,!```(<<,$```"(S@+L@0```ARXP0```(C0`O2!```"',#!0```B-("TD` -XM```(=",%```"(U`,7W5B``AW8`,```(C6`L`````"'@O!0```B-H#%]U<@`( -XM>5\````"(W`+1@0```A\-04```(C=`N;````"'U%!0```B-W#%]L8@`(@&`# -XM```"(W@++0````B#7P````,CB`$+=PD```B$50,```,CD`$`#0%?````PP0` -XM``[#``````<(LP0```T!7P```.,$```.PP````Y;`0``#E\`````!PC)!``` -XM#0%5`P```P4```[#````#E4#```.7P`````'".D$```-`5\````C!0``#L,` -XM```.80$```Y?``````<("04```_M`@```0<(*04``!`T````104``!'````` -XM`@`0-````%4%```1P````````Z8"```(A8\#```""`58`P``$#0```!W!0`` -XM$<`````/``/[`@``"290`0```Y0&```!%7$#```"%7$'```#%=L````$`!0$"C9=!P``%3$%````%9H'```! -XM%>8%```"%;$%```#%H````3%>$"```4%7P#```5%0X!```6%?X$```7`!0$ -XM"E6T'```+MPH```PB80$```(C``M>!```#"2M -XM!P```B,(``<(Q`<``!((##8*"```"U8%```,-K\(```"(P``"F8#``!(#"B_ -XM"```"[<*```,*6$!```"(P`+H@$```PJ80$```(C"`M!`@``#"MA`0```B,0 -XM"X4-```,+&$!```"(Q@,861D``PN7P````(C(`M;`0``#"]?`````B,D"\D' -XM```,,%\````"(R@+404```PQ7P````(C+`O9`0``##)?`````B,P"V\````, -XM,U\````"(S0+5P0```PT7P````(C.`NB!```##;S!P```B-```<("@@``!(( -XM##_<"```"U8%```,/R$)```"(P``"@<&```@##HA"0``"[<*```,.UL!```" -XM(P`+=`H```P\6P$```(C"`L`"```##W$`0```B,0"Z<````,/\4(```"(Q@` -XM!PC<"```$A`,44P)```+5P4```Q1&@H```(C``LX`@``#%$@"@```B,(``JD -XM"0``>`Q#&@H```NW"@``#$1A`0```B,`#&ES``Q%G`<```(C"`QO=`H```O7`@`` -XM#%X:"@```B,`"P0'```,7B`*```"(P@`$@@,7XL*```+5@4```Q?^@H```(C -XM```*NP(``$`,5OH*```,;V9F``Q74`$```(C``QF@`,65`!```"(Q`+W0@```Q:4`$```(C&`MO````#%Q?`````B,@"X@'```, -XM7DL*```"(R@+3@L```Q?=`H```(C.``'"(L*```4!`R-)PL``!5B`0```!40 -XM!0```14W!@```A7X!0```Q43!@``!``2$`RI3`L```O6`@``#*GZ"@```B,` -XM"P,'```,J4P+```"(P@`!PCZ"@``$A`,JG<+```+U@(```RJOP@```(C``L# -XM!P``#*IW"P```B,(``<(OP@``!(0#*NB"P``"]8"```,JR$)```"(P`+`P<` -XM``RKH@L```(C"``'""$)```2$`RMS0L```O6`@``#*WM!P```B,`"P,'```, -XMKU\````" -XM(RP,;F]S``Q]7P````(C,`LQ!```#()?`````B,T"T\!```,@U\````"(S@+ -XMO0<```R$7P````(C/`O-`0``#(5?`````B-`"V,````,AE\````"(T0+104` -XM``R'7P````(C2`O@#```#(D:"@```B-0"VH-```,BAH*```"(U@+Y@D```R+ -XM&@H```(C8`M^!@``#),`"P```B-H"WX*```,FU\````"(VP+KP<```R>Z@T` -XM``(C<`OS!@``#*'J#0```B-X"^T&```,I(D#```#(X`!"U0'```,IXD#```# -XM(X@!"S`!```,J2<+```#(Y`!"P<````,JE(+```#(Z`!"S8!```,JWT+```# -XM([`!"W@&```,K:@+```#(\`!"XP$```,K],+```#(]`!"X@'```,L?@+```# -XM(^`!``<(>P8```<(4`$``!8W!P``!`$L#PX``!7&`````!5V`````14/!@`` -XM`@`7>P<```%:`@%@'$```````(D<0````````````!<&`P```5,"`9`<0``` -XM````N1Q````````X````%[@````!3`(!P!Q```````#I'$```````'`````8 -XM/P<```$,`0$!F0X``!EE8W```0L!F0X``!EI9F0``0L!7P```!EO9F0``0L! -XM7P`````'"!T,```:&`````&(`0'D#@``&V5C<``!AYD.```J`8```$O`0'P -XM'$```````'\C0```````J````/D/```?96-P``$N`9D.``#A````'W-R8P`! -XM+@%A`0``*@$``!]D04```$R`<0!```A:69D``$S`5\```#&`P``(6]F9``!,P%?````(@0``"-F -XM#@````````%7`22,#@``)(`.```D=`X``".?#@``H`````$=`22L#@``)3`! -XM```FMPX``,H$```GP@X```.1\'XGS0X```.1L'XFV`X``$P%````````&%T& -XM```!%0(!`5H0```996-P``$4`ID.```H]@(```$4`E\````H$`,```$4`EH0 -XM```IA```"1N$```);`$```F -XMDA```+,+```FGA```.D+```FJA```$4,```MMA```"W"$```+BJ`````X0&```"+[H````)5@8``!`"1E,!```*(@4```)'4P$` -XM``(C``K_!P```DA?`````B,(``<(-`````FC`@``F`)F?0(```M?<``"9U,! -XM```"(P`+7W(``FA?`````B,("U]W``)I7P````(C#`I]"@```FH[`````B,0 -XM"JX&```":SL````"(Q(+7V)F``)L*@$```(C&`I#!@```FU?`````B,H"DD" -XM```"<+@````"(S`*\P$```)QC0(```(C.`JR!````G*M`@```B-`"M($```" -XM<\T"```"(T@*20````)T[0(```(C4`M?=6(``G/D" -XM```"(V@+7W5R``)Y7P````(C<`I&!````GS_`@```B-T"IL````"?0\#```" -XM(W<+7VQB``*`*@$```(C>`HM`````H-?`````R.(`0IW"0```H0?`0```R.0 -XM`0`,`5\```"-`@``#;@`````!PA]`@``#`%?````K0(```VX````#0,!```- -XM7P`````'"),"```,`1\!``#-`@``#;@````-'P$```U?``````<(LP(```P! -XM7P```.T"```-N`````T)`0``#5\`````!PC3`@``#NT"```!!PCS`@``#S0` -XM```/`P``$+4````"``\T````'P,``!"U```````#I@(```*%60$```((!5@# -XM```#C0H```8F[0````,%"```!BG,`````Q$(```&*NT````/-````&(#```0 -XMM0````\`$0@&>H<#```*Q0D```9[,0,```(C``KV"```!GQ'`P```B,$``-& -XM"0``!GUB`P``$0P&@,4#```*Q0D```:!,0,```(C``KV"```!H)'`P```B,$ -XM"D,*```&@SP#```"(P@``V0*```&A)(#```#^P(```$T`,```(C``KV"``` -XM!X4'!````B,(``.L"0``!X:*!0``$1@'B>T%```*Q0D```>*T`,```(C``KV -XM"```!XL'!````B,("D,*```'C/$#```"(Q```^\)```'C;H%```216QF``@F -XM`P8```ZV`P```0,&`0``""<4!@``#@4!```!$P0(-K,&```4,04````4F@<` -XM``$4Y@4```(4L04```,4S`,```04OP8```44C@<```843`0```<4D`4```@4 -XM4`````D4?`(```H4^@````L49P<```P4?@4```T4EP0```X4G`8```\4(0(` -XM`!`4(@$``!$4(@8``!(4Z@```!,4X0(``!04?`,``!44#@$``!84_@0``!<` -XM`^((```(3QH&```1"`AXU08```I6!0``"'A@!P```B,```G5"0``0`AH8`<` -XM``HT"@``"&SX`````B,`"E@)```(;;@````"(P@*$@H```AN^`````(C$`K^ -XM!P``"&_X`````B,8"ML(```(<+,&```"(R`*J@H```AQ<0````(C)`HY"``` -XM"'9F!P```B,H"GP*```(=W$````"(S`*(PD```AXO@8```(C.``'"-4&```' -XM"`D&```#U@D```AYU08```.,'```*MPH```HB"0$```(C``I>!```"B2C!P```B,(``<(N@<``!$("C8` -XM"```"E8%```*-K4(```"(P``"68#``!("BBU"```"K<*```**0D!```"(P`* -XMH@$```HJ"0$```(C"`I!`@``"BL)`0```B,0"H4-```*+`D!```"(Q@+861D -XM``HN7P````(C(`I;`0``"B]?`````B,D"LD'```*,%\````"(R@*404```HQ -XM7P````(C+`K9`0``"C)?`````B,P"F\````*,U\````"(S0*5P0```HT7P`` -XM``(C.`JB!```"C;I!P```B-```<(``@``!$("C_2"```"E8%```*/Q<)```" -XM(P``"0<&```@"CH7"0``"K<*```*.P,!```"(P`*=`H```H\`P$```(C"`H` -XM"```"CT4`0```B,0"J<````*/[L(```"(Q@`!PC2"```$1`*44()```*5P4` -XM``I1$`H```(C``HX`@``"E$6"@```B,(``FD"0``>`I#$`H```JW"@``"D0) -XM`0```B,`"VES``I%9@<```(C"`MO:@H```K7`@``"EX0"@```B,`"@0'```*7A8* -XM```"(P@`$0@*7X$*```*5@4```I?\`H```(C```)NP(``$`*5O`*```+;V9F -XM``I7^`````(C``MF@`*6?@````"(Q`*W0@```I: -XM^`````(C&`IO````"EQ?`````B,@"H@'```*7D$*```"(R@*3@L```I?:@H` -XM``(C.``'"($*```3!`J-'0L``!1B`0```!00!0```10W!@```A3X!0```Q03 -XM!@``!``1$`JI0@L```K6`@``"JGP"@```B,`"@,'```*J4(+```"(P@`!PCP -XM"@``$1`*JFT+```*U@(```JJM0@```(C``H#!P``"JIM"P```B,(``<(M0@` -XM`!$0"JN8"P``"M8"```*JQ<)```"(P`*`P<```JKF`L```(C"``'"!<)```1 -XM$`JMPPL```K6`@``"JWC!P```B,`"@,'```*K<,+```"(P@`!PCC!P``$1`* -XMK^X+```*U@(```JOXP<```(C``H#!P``"J_#"P```B,(`!$0"K$3#```"M<" -XM```*L1`*```"(P`*!`<```JQ%@H```(C"``)(P```/`*;MH-```*E0,```IO -XM"0$```(C``JA````"G)?`````B,("K8'```*U\````"(RP+;F]S``I]7P````(C,`HQ -XM!```"H)?`````B,T"D\!```*@U\````"(S@*O0<```J$7P````(C/`K-`0`` -XM"H5?`````B-`"F,````*AE\````"(T0*104```J'7P````(C2`K@#```"HD0 -XM"@```B-0"FH-```*BA`*```"(U@*Y@D```J+$`H```(C8`I^!@``"I/V"@`` -XM`B-H"GX*```*FU\````"(VP*KP<```J>X`T```(C<`KS!@``"J'@#0```B-X -XM"NT&```*I%,!```#(X`!"E0'```*IU,!```#(X@!"C`!```*J1T+```#(Y`! -XM"@<````*JD@+```#(Z`!"C8!```*JW,+```#([`!"G@&```*K9X+```#(\`! -XM"HP$```*K\D+```#(]`!"H@'```*L>X+```#(^`!``<(^`4```<(^````!73 -XM"@```>(!\"M```````!M+$````````)W"#H.```696-P``'A.@X```%5%G-E -XM8P`!X1`*```!5!=S``'C$`H```%1&/,*```![D,L0`````````<($PP``!D! -XMC`D```&C`P%P+$```````"8N0```````OA```*`.```:96-P``&B`SH.``#W -XM$```&W,``:0#$`H``$`1```<`0L```&E`Z`.``!V$0``'7-H``&F`X('```# -XMD9!_``<(;`<``!D!\@<```%[`P$P+D```````#WPD```%L`P%`+T```````*LO0```````_!(` -XM`%`S0```````&C5```````#4&```(A$``!IE -XM8W```4@".@X``%T9```; -XM$@``$+4````$``<("0$``"(!F`H```$W`5\```!`-T```````(DX0``````` -XMY!X``'X3```C96-P``$V.@X``!T?```DMPH```$V"0$``&8?```KD`4``$`3 -XM```ET```#O(```,;<*```!7PD!```X(0``%VES:``!8(('```#D9!_)6ES -XM``%A9@<``&XA```Q!0D```%B%`$``*0A```Q$0D```%C7P```-PA````,@&( -XM"````?D!L#E```````#%/$```````!(B``"S%```(V5C<``!^#H.``##(@`` -XM)7,``?H0"@``#",``#&W"@```?L)`0``52,``"5IL'```!__@```"3)```,3P* -XM```!__@```#<)```'!$)```!``%?````."4````SDP@```*'`0%?`````]P4 -XM```T7V,``H`(#`0``('-R8P`!>`(#`0``(&5N9``!>`(#`0``.3\( -XM```!>0)?`````#.?"0```=X"`;@````!:Q<``#1S``'=`A`*```[``@```'= -XM`FL7```@:60``=\"H`X``"!B``'@`@,!```@$"%`$``#D1"0```>(" -XM7P`````'"!0!```X7@D```$@`@$!V1<``#1E8W```1\".@X``#1S``$?`A`* -XM```@;W-H``$A`H('```@;"````;4!7P````$,&```.F5C -XM<``!M#H.```HMPH```&T"0$``"IS86,``;:U"````#B>"````X8```V:18```8J```M7A8````U=18``"`(```!E0&7 -XM&0``+8\6```M@Q8``#R`"```/9D6```\*@``/:46``!R*@``,+$6```PO18` -XM`#W'%@``#RL``##3%@``/=T6``#=*P``/><6``#1+```,/$6```O_18```.1 -XML'XP"1<``#<6%P``H`D```%[`BTR%P``+2@7```\X`D``#T^%P``Q2T``#!) -XM%P``,%,7```]7A<``),N````````-6T5``!`"@```9`!,AH``"V'%0``+7L5 -XM```\H`H``#V1%0``W"X``"^=%0```Y'0?B^I%0```Y&P?R^U%0```Y&0?SW! -XM%0``)2\``"_-%0```Y&H?B_9%0```Y&@?B_E%0```Y&8?B_Q%0```Y&0?CW\ -XM%0``NB\``#`(%@``/1(6```\,```/1X6``#1,```/2H6```M,0`````^V1<` -XM`+Y`0```````X4!````````!H@%T&@``+?47```MZA<``"[-0$```````.%` -XM0```````/0`8``!C,0`````W#!@``)`,```!HP$M&A@``#SP#```/208``"L -XM,0``/2\8```N,@``-[,4``!P#0```=D"-M`4``!W,@``+<44````````/SP) -XM```"BMP4```!`4#%!````J`!7P````$!`-@)```"`-X%```(`0T'```!)@L` -XM`.$#``"024```````(5-0```````$`@```(!!JL!```"`0BI`0```@(%NP4` -XM``("!]$&```#!`5I;G0`!$T#```".%L````"!`>6`@```@@%70,```2&`@`` -XM`CIT`````@@'D0(```((!(<#```"!`2I`P``!/4$```"4FD````%"`<&"`(! -XM!K(!```$3P,```->4`````2(`@```V-I````!PB9````!PC"````")D````$ -XM]P0```/HB0````3[`@``!":K````!-<#```$**L````$I@4```0KH`````0P -XM"0``!"VK````"3@$9W`L```1KT@````(C$`J("P``!&S2`````B,8"CP+ -XM```$;?,````"(R`*@`L```1N\P````(C*`I7"P``!&_S`````B,P``0Q"P`` -XM!'#^````"T5L9@`%)HT!```,M@,```$$!@$```4GG@$```P%`0```0T$!57C -XM`0``#A\$````#L\%```!#G8$```"#M\!```##IX#```$#@T````%#L4%```& -XM#LH"```'#BX"```(``<(DP$```1?"P``!B]W`0``!P@T`````@@%6`,```D( -XM!R08`@``"E8%```')$$"```"(P``#T,-```0!R%!`@``"K<*```'(KP````" -XM(P`*7@0```,!```" -XM(P@0;W,`!T;C`0```B,0$&)U9@`'1Y<````"(Q@0;V9F``=(JP````(C(!!S -XM>@`'2:L````"(R@08V%P``=*JP````(C,`HV"@``!TNK`````B,X"MT(```' -XM3*L````"(T`*WP0```=-20````(C2`JQ````!TY)`````B-,"JL$```'3TD` -XM```"(U`*W0H```=1>P,```(C6`HM`P``!U)Z!````B-H``<(H`,```<(;@0` -XM``D0!U*?!```"E<%```'4FX$```"(P`*.`(```=2=`0```(C"``/*`4``!`' -XM7L@$```*UP(```=>;@0```(C``H$!P``!UYT!````B,(``D(!U_?!```"E8% -XM```'7TX%```"(P``#[L"``!`!U9.!0``$&]F9@`'5ZL````"(P`09G-Z``=8 -XMJP````(C"!!MI3@4```(C``H#!P``!ZF@!0```B,(``<(3@4```D0!ZK+!0``"M8"```' -XMJA,#```"(P`*`P<```>JRP4```(C"``'"!,#```)$`>K]@4```K6`@``!ZMU -XM`P```B,`"@,'```'J_8%```"(P@`!PAU`P``"1`'K2$&```*U@(```>M00(` -XM``(C``H#!P``!ZTA!@```B,(``<(00(```D0!Z],!@``"M8"```'KT$"```" -XM(P`*`P<```>O(08```(C"``)$`>Q<08```K7`@``![%N!````B,`"@0'```' -XML70$```"(P@`#R,```#P!VXX"```"I4#```';[P````"(P`*H0````=R20`` -XM``(C"`JV!P``!W-)`````B,,$&EE8P`'=4D````"(Q`0;V5C``=V20````(C -XM%!!E:6X`!W#@(```"(R`*Q@$```=Z20````(C*`HJ -XM!```!WM)`````B,L$&YO"20````(C-`I/`0`` -XM!X-)`````B,X"KT'```'A$D````"(SP*S0$```>%20````(C0`IC````!X9) -XM`````B-$"D4%```'ATD````"(T@*X`P```>);@0```(C4`IJ#0``!XIN!``` -XM`B-8"N8)```'BVX$```"(V`*?@8```>35`4```(C:`I^"@``!YM)`````B-L -XM"J\'```'GCX(```"(W`*\P8```>A/@@```(C>`KM!@``!Z3T`0```R.``0I4 -XM!P``!Z?T`0```R.(`0HP`0``!ZE[!0```R.0`0H'````!ZJF!0```R.@`0HV -XM`0``!ZO1!0```R.P`0IX!@``!ZW\!0```R/``0J,!```!Z\G!@```R/0`0J( -XM!P``![%,!@```R/@`0`'"((!```'"*L````1$0L```%5`0%Q"```$G-E9P`! -XM5$X%```2=``! -XMA\<```#M-```'FD``8A)````$#4````@`08+```!9`%@3$```````(5-0``` -XM````634``!5E8W```6/Q"```SC4``!-S96<``65.!0``'Z`+```!9ND!```# -XMD:!_&,8!```!9\<````7-@``$VD``6A)```````!$P```@")!P``"`$-!P`` -XM`9L,``#A`P``D$U```````#:9D```````&4)```"`0:K`0```@$(J0$```(" -XM!;L%```#^@$```(V30````("!]$&```$!`5I;G0``TT#```".&8````"!`>6 -XM`@```TP&```".7@````""`5=`P```X8"```".HH````""`>1`@```@@$AP,` -XM``($!*D#```#]00```)2?P````4(!P8(`@$&L@$```-.!@```T]M`````_P! -XM```#64(````#3P,```->6P````.(`@```V-_````!PBO````!PCN````"*\` -XM```#]P0```/HGP````((!5@#```#C0H```0FS`````.\#```!"?!`````Q$( -XM```$*LP````)$`2W@P$```I+#0``!+@;`0```B,`"A4-```$N04!```"(P0* -XMJP(```2Z&P$```(C"`H-#0``!+LT`````B,,"O,,```$O#0````"(PT*_`P` -XM``2]$`$```(C#@`##@P```2^)@$```/[`@``!2;7`````YN@$```(C+`KF"@``!5_%`0```B,P"NL( -XM```%8,4!```"(S@``[P(```%8=`!```)$`6#E0(```K%"0``!82.`0```B,` -XM"O8(```%A<4!```"(P@``ZP)```%AG`"```)&`6)TP(```K%"0``!8J.`0`` -XM`B,`"O8(```%B\4!```"(P@*0PH```6,KP$```(C$``#[PD```6-H`(```D8 -XM!;X[`P``"DL-```%O[H!```"(P`*#0T```7`-`````(C!`KS#```!<$T```` -XM`B,%"OP,```%PID!```"(P8*%0T```7#C@$```(C"`JK`@``!<3%`0```B,0 -XM``,U#```!<7>`@``"T5L9@`&)E$#```,M@,```$#!@$```8G8@,```P%`0`` -XM`0T$!C8!!```#C$%````#IH'```!#N8%```"#K$%```##LP#```$#K\&```% -XM#HX'```&#DP$```'#I`%```(#E`````)#GP"```*#OH````+#F<'```,#GX% -XM```-#I<$```.#IP&```/#B$"```0#B(!```1#B(&```2#NH````3#N$"```4 -XM#GP#```5#@X!```6#OX$```7``/B"```!D]H`P``"0@&>",$```*5@4```9X -XMK@0```(C```/U0D``$`&:*X$```*-`H```9LUP````(C``I8"0``!FVM```` -XM`B,("A(*```&;M<````"(Q`*_@<```9OUP````(C&`K;"```!G`!!````B,@ -XM"JH*```&<68````"(R0*.0@```9VM`0```(C*`I\"@``!G=F`````B,P"B,) -XM```&>`P$```"(S@`!P@C!```!PA7`P```]8)```&>2,$```#6P@```@`(2=<````" -XM(R@08V%P``A*UP````(C,`HV"@``"$O7`````B,X"MT(```(3-<````"(T`* -XMWP0```A-5`````(C2`JQ````"$Y4`````B-,"JL$```(3U0````"(U`*W0H` -XM``A1:P8```(C6`HM`P``"%)J!P```B-H``<(D`8```<(7@<```D0"%*/!P`` -XM"E<%```(4EX'```"(P`*.`(```A29`<```(C"``/*`4``!`(7K@'```*UP(` -XM``A>7@<```(C``H$!P``"%YD!P```B,(``D("%_/!P``"E8%```(7SX(```" -XM(P``#[L"``!`"%8^"```$&]F9@`(5]<````"(P`09G-Z``A8UP````(C"!!M -XME0````"(R@**@0```A[5`````(C+!!N;W,`"'U4`````B,P"C$$```(@E0` -XM```"(S0*3P$```B#5`````(C.`J]!P``"(14`````B,\"LT!```(A50````" -XM(T`*8P````B&5`````(C1`I%!0``"(=4`````B-("N`,```(B5X'```"(U`* -XM:@T```B*7@<```(C6`KF"0``"(M>!P```B-@"GX&```(D[$(```"(V@*?@H` -XM``B;5`````(C;`JO!P``")Z;"P```B-P"O,&```(H9L+```"(W@*[08```BD -XMH0L```,C@`$*5`<```BGH0L```,CB`$*,`$```BIV`@```,CD`$*!P````BJ -XM`PD```,CH`$*-@$```BK+@D```,CL`$*>`8```BM60D```,CP`$*C`0```BO -XMA`D```,CT`$*B`<```BQJ0D```,CX`$`!PA&`P``!PC7````!P@T````$:\+ -XM```!00%4````D$U```````"@34````````)W"-8+```2E@#```&W,``>M>!P``'(,,```![``.```<[@P```'MH0L``!MI[% -XM!```&W-Y;0`![]`$```;:60``?`&#@``&VES``'QM`0``!SG"P```?+S```` -XM&VYD>``!\O,````<"`P```'R\P```!MS8P`!\O,````<\P8```'R\P```!P? -XM#````?/S````'`4-```!\_,````(````<9PP```'UX@```!ME8P`!]E0````<$0D```'V5````!MI``'V -XM5````!T_#````9L!``<(1`@```<(N@0``!X>#0```58!5`````%0#@``&F5C -XM<``!5&`,```:@` -XM````(&X,```!@`(!5`````&%#@``(65C<``!?P)@#```(K<*```!?P+H```` -XM&',``8$",04````94PT```%Z`0$5#P``&F5C<``!>6`,```:^@````;9``!?`8.```;B@P```',`50````!1`\``!IE8W````!5`````%?#P``&G,``=_6 -XM"P```![1"P```38!5`````%Z#P``&G,``376"P```"`G#````3H"`!])P`- -XM```@#@```>,!M!(``"@-#0``*<`.```J&`T``-0[```K(0T``"HL#0``R#P` -XM`"PW#0```Y&@?2Q"#0```Y&`?RI-#0``@#T``"I7#0``.#X``"IA#0``S3X` -XM`"IL#0``,3\``"MW#0``*X(-```JC`T``%0_```KEPT``"JB#0``S3\``"JM -XM#0``%$(``"JX#0``7T,``"K##0``GT0``"K.#0``-$4``"K9#0``F$4``"KC -XM#0``YT4``"KN#0``[D8``"WW#0``:%%````````N#`X``"`4```!<@$H1`X` -XM`"@[#@``*#(.```H*`X``"@=#@``+U`.```W6$```````%U80````````5O1 -XM$0``,&X.```11P``*&(.```Q-UA```````!.6$```````"IZ#@``1T<````` -XM,H4.``#P%````6=4$@``,)T.``#O1P``*)(.```ID!4``"JG#@``$D@``"JR -XM#@``6T@``"J[#@``*$D``"S$#@```Y&@?RS-#@```Y'@?BS7#@```Y'@?"KA -XM#@``T$D``"KJ#@``G4H``"KU#@``:DL``"H`#P``O4P``"L)#P`````R%0\` -XM`#`7```!:902```H.@\``#`Q#P``BDT``"@F#P``,T0/```56T```````"A; -XM0````````=@\``&`7```!)0(HC`\``"GP%P``+)8/```#D>!\+*(/```#D>!^*JX/ -XM``!_3@``*KD/```!3P``*\4/```JT`\``(-/```KW`\````````(`P```@`S -XM"@``"`$-!P```78-``#A`P``X&9````````/:4```````!(-```"`0:K`0`` -XM`@$(J0$```("!;L%```"`@?1!@```P0%:6YT``($!Y8"```""`5=`P``!(8" -XM```".FD````""`>1`@```@@$AP,```($!*D#```$]00```)27@````4(!P8( -XM`@$&L@$```3W!````S)^````!PB.````!PBL````"(X````""`58`P``!(@" -XM```$8UX````$!@$```4GS@````D%`0```0<(PP````H0!E'_````"U<%```& -XM4@`&2;@````"(R@-8V%P``9*N`````(C,`LV"@`` -XM!DNX`````B,X"]T(```&3+@````"(T`+WP0```9-20````(C2`NQ````!DY) -XM`````B-,"ZL$```&3TD````"(U`+W0H```91V@````(C6`LM`P``!E+9`0`` -XM`B-H``<(_P````<(S0$```H0!E+^`0``"U<%```&4LT!```"(P`+.`(```92 -XMTP$```(C"``.`7X-```!5P%)````X&9```````!O9T```````,Q/``"#`@`` -XM#W0``5;-`0``?5````]S``%6I@```-E0```08@`!6*8````040``$&,``5BF -XM````1E$``!!R``%8I@```'Q1```0;&5N``%9E0```+)1```1<0T```%9E0`` -XM`.A1````$@%@#0```2D!<&=````````/:4```````!Y2```/=``!*,T!``#/ -XM4@``#W,``2BF````*U,``!-R``$JI@```!!B``$KH````&-3```08P`!*Z`` -XM``"P4P``$&QE;@`!+)4```#Y4P``$7$-```!+)4````O5```$5L!```!+4D` -XM``!X5``````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+ -XM.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8` -XM21,```D6``,..@L[!4D3```*$P$##@L+.@L["P$3```+#0`##CH+.PM)$S@* -XM```,#0`#"#H+.PM)$S@*```-%0$G#$D3`1,```X%`$D3```/$P`##CP,```0 -XM`0%)$P$3```1(0!)$R\+```2$P$+"SH+.PL!$P``$Q8``P@Z"SL+21,``!0$ -XM`0L+.@L["P$3```5*``##AP-```6!`$##@L+.@L["P$3```7+@`##CH+.P4G -XM#!$!$@%`!@``&"X!`PXZ"SL%)PP@"P$3```9!0`#"#H+.P5)$P``&BX!`PXZ -XM"SL+)PP@"P$3```;!0`#"#H+.PM)$P``'#0``PXZ"SL+21,``!TT``,(.@L[ -XM"TD3```>+@$##CH+.P4G#!$!$@%`!@$3```?!0`#"#H+.P5)$P(&```@-``# -XM#CH+.P5)$P(&```A-``#"#H+.P5)$P(&```B-``##CH+.P5)$P``(QT!,1-5 -XM!E@+604``"0%`#$3```E"P%5!@``)C0`,1,"!@``)S0`,1,""@``*`4``PXZ -XM"SL%21,``"DT``,(.@L[!4D3```J+@$_#`,..@L[!2<,21,1`1(!0`8!$P`` -XM*P4``PXZ"SL%21,"!@``+!T!,1-5!E@+604!$P``+30`,1,``"XT``,..@L[ -XM"TD3`@H``"\T``,..@L["TD3/PP\#```,#0``PXZ"SL%21,_##P,`````1$! -XM)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+ -XM/@L#"```!20`"PL^"P``!@\`"PL```+@$##CH+.P4G#!$!$@%`!@$3```?!0`##CH+.P5)$P(&```@ -XM-``#"#H+.P5)$P``(2X!/PP##CH+.P4G#$D3$0$2`4`&`1,``"(N`3\,`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```C!0`#"#H+.PM)$P(&```D!0`##CH+.PM)$P(& -XM```E-``#"#H+.PM)$P(&```F+@$##CH+.PLG#$D3$0$2`4`&`1,``"+@$# -XM#CH+.PLG#$D3(`L!$P``'P4``PXZ"SL+21,``"`N`0,..@L[!2<,21,@"P$3 -XM```A!0`#"#H+.P5)$P``(@4``PXZ"SL%21,``",T``,..@L[!4D3```D+@$_ -XM#`,..@L[!2<,$0$2`4`&```E-``#"#H+.P5)$P(*```F-``##CH+.P5)$P(& -XM```G'0$Q$U4&6`M9!0$3```H!0`Q$P``*0L!508``"HT`#$3`@8``"LT`#$3 -XM```L-``Q$P(*```M"@`Q$Q$!```N'0$Q$U4&6`M9!0``+QT!,1,1`1(!6`M9 -XM"P$3```P!0`Q$P(&```Q"P$1`1(!```R'0$Q$U4&6`M9"P$3```S'0$Q$Q$! -XM$@%8"UD+`````1$!)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```R0`"PL^ -XM"P,(```$%@`##CH+.PM)$P``!20`"PL^"P``!@\`"PL```7!E2YH````````"0)@'$````````/9 -XM!`%(")P#=_U(")P#=_U(")P#X7W]`BL5`WHY6V4(D0,9C>(X`[E__0BO`Q(( -XMJ0-P_0@2"*T#\GX('4D(9@A`13OR"&=84J)#4E:JG9R!99V<2PB"`B03@8(( -XMGTFLGH4(6H*""&>"-CQ7`P^-<@AR.%8#"6,(67*!`QH(8P,*C0-Z_0,W")N4 -XM@(`#QWX".`$#E`&-G#@Z`PVIG#@Z9@@["$@(0(X(6`/J?L7"`_L`Q8%%.U8X -XM.F(\U%:.@/Y&`^-^?P,2C0/Y``@K_P-6"%4#QP`(Q0.&?P@Y`R,(Q0/=``C% -XM`[Y_"'\#F7\(Q0-B",4(S`/J``C%`\L`",4#I7\(.0/8``C%`^E^_0-YX0.4 -XM`?T#G@+OGE+(R9PX.F7F?8^XN+6`@;BXLX"%`WH('8#P\/16CU-)BTD(5P/O -XM?0A_"/$#P@`",0$#OG^W`P\(X0-Q""L#"M,#=@@=QP@ZR'(#%M,#=0AQ"#K( -XM7,``'-E8W1I;VYS+F,````` -XM7!E2YH````````"0+P*T````````/D`0&X"%24`B@2<@-W8P.\!0CA -XM"*!)"$J.CDB`CHZ`>EP(3[U(.%8($W*`2(!R;DP(R`-L",5(1DA&2`-KFP,, -XM",4##PC%`PL(Q0.J?P(H`:X#$PA'9P-I"&.."!3G@-D('_562@-CC0,6",4( -XMR@-/`B0!UD0]=V324,;&Q@-#"#GI"+@($P@L"$H(G4$#>#DZ@$AR@$A#2PAE -XM"!)RA31,-$A(Q0C(`PK]`PH(Q0C-`ZU_`BP!D0,7 -XMTP-NC0A+`PEQ9("`9(`#;6,#%0@Y5DH#;7$Z?CN`9(`##F,#:7$#%0C%`TT" -XM)P$(Q692/-8(/59B`DH05^0#=`(H`0C(",P#O7X")0&A"'?&E0C6"%:%"!)) -XM-U:.`V+%N`,2C0-M?P,BC0-J"!W&`PW]",H#Z7T")`$#"HT(2@B>6%)*U45) -XM-ZX(+#A(,&"`4@@24CP#%D)L(/<:0`B,,`Q$(1P,58P-K*P,-.0-S*TX(6@A( -XMQ@@\"&<##0@K`WF-20-6 -XM[PCU"*LZ2%E?2(Z.@`,3X0,+"'%6D`-KX0-6",4(R`,B",4#<0C%`V3A`\,` -XM",4#[`(")@$@1%B=!`(#QGW]_@0!`[<"Q8YT!`(#Q'T(.<8$`0.W`CD$`@/) -XM?4<$`0.W`G$$`@/)?3D$`0.W`CDQ;0@M!`(#Q'W]R`0!`W$(Q?U8`\0![WV! -XM10.^?G''@P,)`C5HPZ.%:/"!Y^5E0ML)=9ROB.`POA -XM`VF;JP-L?P.9?@A'A0.6`0CA`X5]J>(#E00(.0A:_`@[5H,$`@.O?0A'_@0! -XM`YH""!W4""P#<=,(2`,850@75GX#C'R-`XP$"-,#89OBN.XZ5M0#=M,#6PAC -XMX@/G``AQ`VS]`]Q^"%4(9PC_"&8('C@ZGP)B"XYR`E\1`X)_"/V`R@,="/T( -XM@@@>.%8"-!4(UP(M$3<[9M3GK`-G`DP!JJH(Y@,*",6L!`(#BW\"3P$$`0/X -XM`.$"91$"1@T#A@$"1@$#S0#A`Z]^")OX`D@-`E`*`W`(Q0/-`)L##0C%`WD( -XMQ0-)",4#9PC]`QT([U8J+&?H"#T"*Q$#8\4#$@)"`0(4``$!40$```(`E@`` -XM``$!^PX*``$!`0$````!+W5S7!EG$Q`VL('=,\ -XM4CS(.@BXW0-P")O3/%(\R#H(N-T#ZWX(FP,)*P-W50@CCH_&"(\(U@C7`YM^ -XMJ0B""$L(H`AS.PC4.')JA@-XFPAR"#P")!(('LE6@[QZ+P@Z"#P")!,(6%:" -XM`R.-"!XX5@/*``(D`0(E$`(U$PAGC@C&JKBX@8Y4@&8#;`+5`0$#&<6`"!YP -XM+`@>"&%TG@(F$8#&`R#%C@,4J0,5J0B0<@,+?P-V50,*50-V58`#+4<#5']R -XM;TNXP.5?W&<`]<`FP,; -XM"!U6`U=_40,+?P-W?[B_`WE52*JXN*JDAL@(Q@-'",4(D+%R\(!(G\#M`%_`[!^`D$! -XM`R)5`WI'`[.%Y\@/L?0CO`ZL$""L(9`.4?N$#4(T#>0@K`_Y]"$<( -XMUW0#Z0#O`B86`Y9_J<@#254#O@((8P(N$`@>"#RO"$@#"0+4`0$(/+M4.H", -XM4PBO"'*`.$@#OWX(?P,+"$<#F`$(*P@ZJ@A(`LH!%@+1`18(.@-X`B\!"#<( -XM.PCM".P#D'\"S0$!`_4`TP,Q`B@!`TW]`YA^`BT!`ZD#",4#O'X(Q0CM`S@( -XMX0-*`C0!"#<#@@$(.7*X@$AR;P.Q?\4#2@+,`0$"+A$#-`(N`0-/"#D#,P(E -XM`0,V`D.')F"*X( -XM<@B?"!8")!("(Q0(9`AP:`(W$`A6*CK&V@(F$^,(\4@#;[<#U0$(C0(I$0,T -XM`B,!`ZQ_`BX!5BHL`_,!")L#XGX(?P/_?@(J`0.-?_U6*BP#[P#3`Y)_*P-# -XM"'\#]@#A",D(%`.$?^$#AP,(Q0.G?0C%`BL45BHL`_8!Q0.@`0(K`0/7?'$" -XM(Q,(/`-Z",4"'@`!`0(!```"`(D````!`?L."@`!`0$!`````2]U7!EG\_`W5Q`PM5`T&W_4VX@`C)CT4[Z`,) -XM50-Q?P@>JL<#%PA5`VOA5PA6.GY(.$@#"0(D`4A&2`@;RDBX.%:`N`-ZX0-E -XM_0@``0$`%````/____\!``%X$`P'")`!````````'`````````!@'$`````` -XM`"D`````````1`X0```````<`````````)`<0```````*0````````!$#A`` -XM`````!P`````````P!Q````````I`````````$0.$```````+`````````#P -XM'$```````(\&````````2H\"A@9A#N`!C@.-!(P%@P<`````````/``````` -XM``"`(T```````'`(````````0@X0CP)%#AB.`TH.($(.*$$.,$$..$<.T`&# -XM!X8&C`6-!````````!0```#_____`0`!>!`,!PB0`0```````!0```#H```` -XM\"M```````!]`````````"0```#H````<"Q```````"V`0```````$J#!8P# -XM40YPC0*&!``````L````Z````#`N0```````!P$```````!"#A!!#AB&`XP" -XM1`X@1`Y@@P0````````<````Z````$`O0```````:P````````!.#B"#`X8" -XM`#0```#H````L"]```````#B`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$ -XM#G"#!H8%C`0`````)````.@```"@,4```````/0`````````00X0A@)$#AA$ -XM#B"#`P```"0```#H````H#)````````Y`0```````$J&!(,%5`ZP`8T"C`,` -XM```L````Z````.`S0```````.@$```````!"#A!"#AA!#B!!#BA$#G"#!88$ -XMC`.-`@`D````Z````"`U0```````_P````````!!#A"&`D0.&$0.8(,#```` -XM+````.@````@-D```````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP -XM@P4`'````.@```#0-D```````"(`````````1@X0```````<````Z``````W -XM0```````-P````````!$#A```````"0```#H````0#=```````!)`0`````` -XM`%J,`X,%C0*&!$<.8``````L````Z````)`X0```````%0$```````!"#A", -XM`D0.&(8#0PX@@P1(#G`````````\````Z````+`Y0```````%0,```````!" -XM#A!'#AA"#B!"#BA!#C"&!HP%C02.`X\"20XX1`Z0`8,'````````)````.@` -XM``#0/$```````-L`````````00X0A@)%#AA$#B"#`P```#P```#H````L#U` -XM``````#3"P```````$(.$$(.&$(.($(.*$$.,$$..$<.D`*#!X8&C`6-!(X# -XMCP(````````4````_____P$``7@0#`<(D`$````````4````X`,``)!)0``` -XM````V0`````````T````X`,``'!*0```````[@$```````!"#A!"#AA"#B!! -XM#BB&!8P$C0..`D0.,$0.L`&#!@```"P```#@`P``8$Q````````E`0`````` -XM`$(.$$$.&$$.((,$A@.,`D<.8````````!0```#_____`0`!>!`,!PB0`0`` -XM`````!0```!X!```D$U````````0`````````!0```!X!```H$U````````0 -XM`````````"0```!X!```L$U```````!!`````````$$.$(8"1`X81`X@@P,` -XM```<````>`0```!.0```````9@````````!.#B"&`H,#`!P```!X!```<$Y` -XM``````!F`````````$X.((8"@P,`/````'@$``#@3D```````/H7```````` -XM0@X01PX80@X@C02.`X\"10XH00XP00XX1P[@!(,'A@:,!0```````!0```#_ -XM____`0`!>!`,!PB0`0```````#P```!H!0``X&9```````"/`````````$(. -XM$$(.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`DH.0``````````\````:`4` -XM`'!G0```````GP$```````!"#A!"#AA"#B"-!(X#CP)%#BA!#C!!#CA$#E"# -XM!X8&C`4`````````7V5X=')A`'9?F4`5]L;VYG;W!T -XM`!%3$9?0U].54Q,`&]P -XM:&YU;0!S96-T:6]N6U?;&ES=`!S=')I<%]L;VYG;W!T6U?:V5E<`!%3$9?5%]32$12`'-A8U]L:7-T`&YO8V]P>0!? -XM6U?F4`14Q&7U1? -XM4U=/4D0`8W)E871E7V9I;&4`7U]F9FQA9W-?=`!%3$9?5%](04Q&`&]P=&%R -XM9P!S:&]R="!U;G-I9VYE9"!I;G0`14Q&7TM?05(`=E]R96P`6YC7W-E8W1I;VYS`$5L -XM9C8T7U-H9'(`:7-?'0`;G-E8W,`16QF-C1?6'=O`!R7V%D9&5N9`!R96PV-`!I -XM@!A9&1?=&]?:6YS96=?;&ES=`!P7V%L:6=N`$=% -XM;&9?4&AD<@!P7V9L86=S`'!?='EP90!P7W9A9&1R`'!?;65M6UB;VQS`&ES7V1E8G5G7W-Y;6)O;`!S=%]S>@!I -XM6T`5]C87``8V%L8U]N;VYL;V-A;`!%;&8V-%]3>6T`8W)E -XM871E7W-E8W-Y;0!'16QF7U-Y;0!A9&1?=&]?:V5E<%]L:7-T`'-T7V)U9@!L -XM;V]K=7!?5]B=68`:7-?;F5E9&5D7W-Y;6)O;`!S -XM>6UB;VQS+F,`:7-?;&]C86Q?6UB;VP`;'-Y9&%T80!L;V]K=7!?:V5E<%]S>6UL:7-T`'-T7VYA -XM;64`;6%R:U]S>6UB;VQS`&EN>@4````````?!P````````$`7@`````````````````````&`0`````` -XM``D!`````````0!0"0$````````,!`````````$`7"P$````````-00````` -XM```!`%QQ!````````'0$`````````0!0=`0```````#I!`````````$`7$T% -XM````````:04````````!`%R0!0```````-\&`````````0!<\`8````````0 -XM!P````````$`7``````````````````````O`P```````+H#`````````0!3 -XMVP,```````#\`P````````$`4Z,$````````SP0````````!`%/@!0`````` -XM`!<&`````````0!3CP8```````"M!@````````$`4\$&````````WP8````` -XM```!`%,`````````````````````?`(```````"Z`P````````,`D;A_VP,` -XM```````L!`````````,`D;A_HP0```````#I!`````````,`D;A_5@4````` -XM``!I!0````````,`D;A_P@4````````7!@````````,`D;A_CP8```````"M -XM!@````````,`D;A_P08```````#?!@````````,`D;A_\`8```````#_!@`` -XM``````,`D;A_`````````````````````"`'````````(@<````````"`'<( -XM(@<````````G!P````````(`=Q`G!P```````#$'`````````@!W&#$'```` -XM````,P<````````"`'<@,P<````````T!P````````(`=R@T!P```````#4' -XM`````````@!W,#4'````````/`<````````"`'`````````````````````"`'````````00<````` -XM```!`%1!!P```````(8-`````````0!?U0T```````"0#P````````$`7P`` -XM``````````````````!I!P```````&X'`````````0!540D```````!6"0`` -XM``````$`58()````````APD````````!`%6?"0```````*0)`````````0!5 -XMT`D```````#5"0````````$`58$+````````C`L````````!`%4U#``````` -XM`#H,`````````0!5/0P```````!"#`````````$`59T-````````H@T````` -XM```!`%7.#0```````-,-`````````0!5X@T```````#G#0````````$`5:4. -XM````````J@X````````!`%7)#@```````,X.`````````0!5W0X```````#B -XM#@````````$`55(/````````7@\````````!`%4````````````````````` -XMA`@```````"<"`````````$`4%H)````````>`D````````!`%"H"0`````` -XM`,8)`````````0!0]@T````````"#@````````$`4``````````````````` -XM```P#````````#H,`````````0!420P```````!0#`````````$`5``````` -XM```````````````I#````````#H,`````````0!120P```````!0#``````` -XM``$`40````````````````````#\"0```````/\)`````````0!0_PD````` -XM```>"@````````$`75`*````````4`H````````!`%T6#@```````"<.```` -XM`````0!=,0X```````!"#@````````$`70````````````````````"$"``` -XM`````/\)`````````0!=4`H````````4"P````````$`7=$+````````7`P` -XM```````!`%WV#0```````!8.`````````0!=0@X```````!G#@````````$` -XM70````````````````````"$"````````!X*`````````0!3G@H```````"A -XM"@````````$`4*$*````````%`L````````!`%/1"P```````%P,```````` -XM`0!3]@T````````'#@````````$`4Q8.````````)PX````````!`%,Q#@`` -XM`````$(.`````````0!34PX```````!G#@````````$`4P`````````````` -XM``````"$"````````)P(`````````0!0GP@```````#;"`````````$`4.(( -XM````````5@D````````!`%!X"0```````(<)`````````0!0C`D```````"D -XM"0````````$`4,8)````````U0D````````!`%#:"0```````/D)```````` -XM`0!0\@L````````)#`````````$`4`X,````````$PP````````!`%!0#``` -XM`````%4,`````````0!0`````````````````````!X*````````1@H````` -XM```!`%,'#@```````!8.`````````0!3`````````````````````#H,```` -XM````0@P````````!`%`[#0```````'H-`````````0!0```````````````` -XM`````!T+````````T0L````````!`%;2#````````&H-`````````0!6U0T` -XM``````#V#0````````$`5B<.````````,0X````````!`%8````````````` -XM````````&PL````````E"P````````,`D;!^)0L````````M"P````````,` -XMD;1^+0L````````P"P````````,`D;A^,`L````````R"P````````$`73(+ -XM````````,@L````````!`%,R"P```````$L+`````````P"1L'Y+"P`````` -XM`&P+`````````0!3;`L```````!R"P````````$`4W(+````````APL````` -XM```!`%.'"P```````(X+`````````0!=C@L```````"6"P````````$`4Y8+ -XM````````F`L````````#`)&T?I@+````````H`L````````!`%.@"P`````` -XM`*(+`````````P"1N'ZB"P```````+`+`````````0!3L`L```````"R"P`` -XM``````,`D;!^L@L```````#1"P````````$`4SH,````````20P````````# -XM`)&T?M(,````````^@P````````!`%/Z#`````````H-`````````P"1M'X* -XM#0````````P-`````````P"1L'X,#0```````!0-`````````0!3%`T````` -XM```S#0````````,`D;A^,PT```````"!#0````````$`4X$-````````E0T` -XM```````#`)&P?I4-````````U0T````````#`)&T?M4-````````]@T````` -XM```!`%,G#@```````#$.`````````0!3`````````````````````$4+```` -XM````3@L````````!`%#2#````````.(,`````````0!0)PX````````L#@`` -XM``````$`4``````````````````````Z#````````$D,`````````0!6:@T` -XM``````!Z#0````````$`5GH-````````E0T````````!`%"5#0```````-4- -XM`````````0!6`````````````````````(`,````````F`P````````!`%"Q -XM#@```````+\.`````````0!0`````````````````````&,(````````_PD` -XM```````!`%T4"P```````#`+`````````0!=\@L```````#2#`````````$` -XM7?8-````````!PX````````!`%UG#@```````&@/`````````0!=B0\````` -XM``"0#P````````$`70````````````````````!<#````````)@,```````` -XM`0!0FPP```````#+#`````````$`4&<.````````J@X````````!`%"_#@`` -XM`````,X.`````````0!0TPX```````#B#@````````$`4.<.````````"@\` -XM```````!`%``````````````````````.@P```````!)#`````````$`5CD/ -XM````````10\````````!`%9%#P```````%4/`````````0!050\```````!H -XM#P````````$`5@````````````````````"``````````)L``````````@!W -XM")L`````````-@(````````#`'?P``````````````````````"````````` -XM`*8``````````0!5I@````````"1`0````````$`7)L!````````-@(````` -XM```!`%P`````````````````````GP````````",`0````````$`5IL!```` -XM````-@(````````!`%8`````````````````````!0$````````(`0`````` -XM``$`4`@!````````AP$````````!`%.;`0```````+X!`````````0!3W`$` -XM```````V`@````````$`4P````````````````````!``@```````$("```` -XM`````@!W"$("````````0P(````````"`'<00P(```````!'`@````````(` -XM=QA'`@```````$L"`````````@!W($L"````````1P,````````#`'?@```` -XM``````````````````!``@```````%P"`````````0!57`(```````#M`@`` -XM``````$`5O`"````````1P,````````!`%8`````````````````````4@(` -XM``````#L`@````````$`4_`"````````1P,````````!`%,````````````` -XM````````Y0(```````#P`@````````$`4"P#````````,P,````````!`%`` -XM````````````````````4`,```````!>`P````````(`=PA>`P```````+L# -XM`````````@!W(`````````````````````!0`P```````'(#`````````0!5 -XMA0,```````"(`P````````$`50````````````````````!0`P```````&P# -XM`````````0!4;`,```````!W`P````````$`5G<#````````A0,````````! -XM`%2%`P```````+L#`````````0!6`````````````````````&(#```````` -XM?`,````````!`%-\`P```````(4#`````````0!5A0,```````"[`P`````` -XM``$`4P````````````````````#``P```````,(#`````````@!W",(#```` -XM````Q`,````````"`'<0Q`,```````#)`P````````(`=QC)`P```````,H# -XM`````````@!W(,H#````````RP,````````"`',#````````%@4````````!`%T6!0```````!D% -XM`````````0!5&04```````"B!0````````$`70`````````````````````$ -XM!````````!$%`````````0!3&04```````"B!0````````$`4P`````````` -XM``````````#6`P```````!(%`````````0!6&04```````"B!0````````$` -XM5@````````````````````"/!````````)($`````````0!0D@0```````#0 -XM!`````````$`44@%````````4@4````````!`%$````````````````````` -XM#00````````4!0````````$`7!D%````````H@4````````!`%P````````` -XM````````````L`4```````"Q!0````````(`=PBQ!0```````+4%```````` -XM`@!W$+4%````````N04````````"`'<8N04```````"D!@````````(`=R`` -XM````````````````````L`4```````#+!0````````$`5P`0````````````````````"P!@```````-0&`````````0!5U`8` -XM``````!_!P````````$`7(\'````````Z0<````````!`%P````````````` -XM````````L`8```````#9!@````````$`5-D&````````X08````````!`%4` -XM````````````````````L`8```````#A!@````````$`4>$&````````;P<` -XM```````!`%./!P```````.D'`````````0!3`````````````````````+`& -XM````````X08````````!`%+A!@```````'<'`````````0!6CP<```````#I -XM!P````````$`5@````````````````````#P!P```````/('`````````@!W -XM"/('````````]`<````````"`'<0]`<```````#U!P````````(`=QCU!P`` -XM`````/8'`````````@!W(/8'````````^@<````````"`'PL````````!`%1]"P```````(D+`````````0!6I0L```````"G -XM"P````````$`5L(+````````Q`L````````!`%;\"P```````),,```````` -XM`0!6`````````````````````'T+````````?PL````````!`%`T#``````` -XM`#D,`````````0!0:`P```````"##`````````$`4(X,````````F0P````` -XM```!`%``````````````````````H`P```````"B#`````````(`=PBB#``` -XM`````*8,`````````@!W$*8,````````J0P````````"`'<8J0P```````"Q -XM#`````````(`=R"Q#````````+4-`````````P!W\``````````````````` -XM````H`P```````"U#`````````$`5;4,````````+PT````````!`%PP#0`` -XM`````+4-`````````0!<`````````````````````*`,````````K0P````` -XM```!`%2M#````````"P-`````````0!3,`T```````"U#0````````$`4P`` -XM```````````````````2#0```````!\-`````````0!0>0T```````"##0`` -XM``````$`4`````````````````````"H#````````"T-`````````0!6,`T` -XM``````"U#0````````$`5@`````````````````````%#0```````#`-```` -XM`````@"16'D-````````EPT````````"`)%8`````````````````````"<- -XM````````,`T````````!`%$W#0```````$<-`````````0!1```````````` -XM`````````,`-````````P@T````````"`'<(P@T```````#)#0````````(` -XM=Q#)#0```````,L-`````````@!W&,L-````````S0T````````"`'<@S0T` -XM``````#.#0````````(`=RC.#0```````-<-`````````@!W,-<-```````` -XMVPT````````"`'NA````````#5$`````````$`7@`````````````` -XM```````T#@```````)P0`````````P"1N'^Z$````````-40`````````P"1 -XMN'\`````````````````````-`X````````0$`````````$`7140```````` -XMG!`````````!`%VZ$````````-40`````````0!=```````````````````` -XM`/\.`````````@\````````!`%`"#P```````%\/`````````0!1W@\````` -XM``#D#P````````$`4140````````'Q`````````!`%$````````````````` -XM````_P\````````5$`````````$`4+H0````````P1`````````!`%`````` -XM````````````````X!````````#A$`````````(`=PCA$````````.80```` -XM`````@!W$.80````````ZA`````````"`'<8ZA````````"[$0````````(` -XM=R``````````````````````X!````````!'$0````````$`56H1```````` -XM?1$````````!`%6$$0```````(X1`````````0!5K!$```````"Q$0`````` -XM``$`50````````````````````#@$`````````41`````````0!4+!$````` -XM``!$$0````````$`5&H1````````>!$````````!`%2$$0```````(L1```` -XM`````0!4`````````````````````/(0````````;Q$````````!`%-Q$0`` -XM`````+L1`````````0!3`````````````````````/00````````1!$````` -XM```!`%1J$0```````'@1`````````0!4A!$```````"+$0````````$`5*P1 -XM````````MA$````````!`%0`````````````````````]!`````````%$0`` -XM``````$`5"P1````````>!$````````!`%2$$0```````(L1`````````0!4 -XME1$```````"G$0````````$`5`````````````````````#T$````````'T1 -XM`````````0!5A!$```````".$0````````$`5941````````IQ$````````! -XM`%6L$0```````+$1`````````0!5`````````````````````,`1```````` -XMPA$````````"`'<(PA$```````#$$0````````(`=Q#$$0```````,81```` -XM`````@!W&,81````````R!$````````"`'<@R!$```````#)$0````````(` -XM=RC)$0```````,H1`````````@!W,,H1````````T1$````````"`'!8````````!`%5X%@```````)(6`````````P"1 -XMR'Z2%@```````)<6`````````0!5EQ8```````"3'0````````,`DP`0````````````````````#@ -XM`````````%P!`````````0!57`$```````!/`@````````$`5E8"```````` -XMS@(````````!`%8`````````````````````]@````````!A`0````````$` -XM4H4!````````3@(````````!`%-6`@```````)("`````````0!3```````` -XM`````````````/T`````````!`$````````!`%`+`0```````&$!```````` -XM`0!0`````````````````````/T`````````80$````````!`%$````````` -XM````````````H0$```````"J`0````````$`7*H!````````40(````````! -XM`%Q6`@```````)("`````````0!<`````````````````````-`"```````` -XMT@(````````"`'<(T@(```````#3`@````````(`=Q#3`@```````-0"```` -XM`````@!W&-0"````````VP(````````"`'<@VP(```````#U`P````````,` -XM=^```````````````````````-`"````````WP(````````!`%7?`@`````` -XM`*0#`````````0!3J`,```````#U`P````````$`4P`````````````````` -XM``#V`@````````4#`````````@"16`H#````````UP,````````"`)%8```` -XM`````````````````"``````````(0`````````"`'<((0`````````E```` -XM``````(`=Q`E`````````"D``````````@!W&"D`````````80`````````" -XM`'<@`````````````````````"``````````-P`````````!`%5````````` -XM`$8``````````0!56`````````!A``````````$`50`````````````````` -XM```@`````````#4``````````0!4-0````````!7``````````$`5E@````` -XM````8``````````!`%9@`````````&$``````````0!4```````````````` -XM`````#``````````5@`````````!`%-8`````````%\``````````0!3```` -XM`````````````````'``````````?@`````````"`'<(?@````````#6```` -XM``````(`=R``````````````````````<`````````"&``````````$`588` -XM````````P``````````!`%;%`````````-8``````````0!6```````````` -XM`````````'``````````C@`````````!`%2.`````````+L``````````0!3 -XMQ0````````#6``````````$`4P````````````````````#@`````````.X` -XM`````````@!W".X`````````1@$````````"`'<@```````````````````` -XM`.``````````]@`````````!`%7V`````````#`!`````````0!6-0$````` -XM``!&`0````````$`5@````````````````````#@`````````/X````````` -XM`0!4_@`````````K`0````````$`4S4!````````1@$````````!`%,````` -XM````````````````4`$```````!2`0````````(`=PA2`0```````%D!```` -XM`````@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(` -XM=R!@`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0````` -XM``!%%`````````$`4488````````4!@````````!`%$````````````````` -XM````;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``` -XM`````%`8`````````0!1`````````````````````-\#````````KP4````` -XM```!`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1 -XM````````*!$````````!`%/2$0````````82`````````0!3:!(````````T -XM$P````````$`4XX3````````I!,````````!`%/)$P```````!`4```````` -XM`0!3K!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`` -XM`````)@7`````````0!3I1@```````#*&`````````$`4P`````````````` -XM``````##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1 -XMD'S$"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R. -XM%````````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`` -XM`````.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````` -XM````````````V`,```````"U!P````````,`D8A\R0<```````!I"0`````` -XM``,`D8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,` -XMD8A\CA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\ -XMPA<```````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```` -XM`````````````````(@"````````WP,````````!`%-I"0```````-\)```` -XM`````0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q -XM%P```````&X7`````````0!3F!<```````"I%P````````$`4\`7```````` -XMZA<````````!`%,`````````````````````B@(```````"U!P````````,` -XMD;A_R0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_ -XM*!@```````!*&0````````,`D;A_`````````````````````%P$```````` -XM9@0````````!`%``````````````````````_P(```````"U!P````````,` -XMD8!\R0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\ -XMCA0```````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```` -XM`````````````````,\#````````M0<````````#`)'8?,D'````````:0D` -XM```````#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````` -XM```#`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````# -XM`)'8?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8 -XM?-(/````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0 -XM````````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```` -XM````D1$````````#`)'8?)$1````````LA$````````#`)'X>[(1```````` -XM!A(````````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,` -XM```````#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````` -XM```#`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````# -XM`)'8?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8 -XM?$87````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7 -XM````````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````` -XM``````````````#8`P```````+4'`````````P"1\'O)!P```````&D)```` -XM`````P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.```````` -XM`P"1\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1 -XM\'L4$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT -XM$P```````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``` -XM`````#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P`````` -XM`,`7`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9 -XM`````````P"1\'L`````````````````````V`,```````#N`P````````$` -XM7YD%````````00<````````!`%^H"````````&D)`````````0!?&PH````` -XM``#A$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```` -XM`````0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0 -XM%````````&P4`````````0!?CA0```````"L%`````````$`7\P4```````` -XM`Q<````````!`%]5%P```````&X7`````````0!?J1<```````#`%P`````` -XM``$`7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@` -XM``````!*&0````````$`7P````````````````````"*`@```````/`"```` -XM`````0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4 -XM````````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````` -XM```````````````3`@```````+4'`````````P"1Y'O)!P```````&P4```` -XM`````P"1Y'N.%````````$H9`````````P"1Y'L````````````````````` -XM!@,````````N`P````````$`4(L#````````I`,````````!`%#8`P`````` -XM`/`#`````````0!5_0,````````(!`````````$`59D%````````\04````` -XM```!`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\) -XM````````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!: -XM%P````````$`59@7````````I!<````````!`%#`%P```````,(7```````` -XM`0!0PA<```````#'%P````````$`50````````````````````"O!0`````` -XM`/8%`````````0!2`````````````````````)<*````````GPH````````! -XM`%3$"@```````,D*`````````0!5`````````````````````-@#```````` -XMWP,````````!`%.N"@```````/$*`````````0!3_@H```````!-"P`````` -XM``$`4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<` -XM``````#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88 -XM`````````0!3`````````````````````&X)````````>`D````````!`%4` -XM````````````````````51$```````!?$0````````$`5&D5````````;!4` -XM```````!`%!L%0```````'H5`````````0!4`````````````````````-@# -XM````````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```` -XM````X1`````````#`)&X?.\0````````;!0````````#`)&X?(X4```````` -XM,1<````````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<` -XM```````#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````` -XM```#`)&X?``````````````````````T"P```````$,+`````````0!<51$` -XM``````"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7 -XM`````````0!`T````````!`%4*%0````````X5`````````0!5 -XM51<```````!:%P````````$`5;`7````````LA<````````!`%"R%P`````` -XM`,`7`````````0!5PA<```````#'%P````````$`5988````````F!@````` -XM```!`%"8&````````*48`````````0!5`````````````````````-@#```` -XM````M0<````````#`)&L?,D'````````:0D````````#`)&L?$8*```````` -XMX1`````````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<` -XM```````#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````` -XM```#`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````# -XM`)&L?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`` -XM`````&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@`````` -XM`&,*`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``` -XM``````,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P`````` -XM``,`D<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,` -XMD<1\*!@```````!*&0````````,`D<1\`````````````````````$,'```` -XM````M0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``` -XM``````$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3 -XMRA@```````#7&`````````$`4P````````````````````!&!P```````+4' -XM`````````0!>R0<```````#8!P````````$`7ML'````````J`@````````! -XM`%Z.%````````*P4`````````0!>51<```````!N%P````````$`7LH8```` -XM````UQ@````````!`%X`````````````````````X@<````````>"``````` -XM``$`4%47````````6A<````````!`%7*&````````-<8`````````0!0```` -XM`````````````````````````````@`````````"`'<(`@`````````$```` -XM``````(`=Q`$``````````8``````````@!W&`8`````````"``````````" -XM`'<@"``````````)``````````(`=R@)``````````H``````````@!W,`H` -XM````````%``````````"`'@`````````!`%][```` -XM`````(X``````````0!?`````````````````````#,`````````;P`````` -XM```!`%9[`````````(8``````````0!6`````````````````````#4````` -XM````;0`````````!`%Q[`````````(@``````````0!<```````````````` -XM`````#4`````````;@`````````!`%-[`````````(4``````````0!3```` -XM`````````````````"0``````````@````````,` -XMD;A_`````````````````````.0`````````2P$````````!`%Q2`0`````` -XM``8"`````````0!<#0(````````>`@````````$`7``````````````````` -XM``#V`````````$@!`````````0!34@$```````"E`0````````$`4P`````` -XM``````````````#G`````````%$!`````````0!?4@$````````,`@`````` -XM``$`7PT"````````'@(````````!`%\`````````````````````[P`````` -XM```>`@````````(`D40`````````````````````#P$```````#;`P`````` -XM`/`&````````$`<```````#!!@```````-\&````````%P8```````"M!@`` -XM`````,(%````````_@4```````"0!0```````*X%````````304```````!I -XM!0```````,\$````````Z00````````L!````````#4$```````````````` -XM`````````````)!<```````!) -XM%P```````&H7````````0A<```````!&%P````````@7````````,!<````` -XM```"%P````````47````````[A8```````#W%@```````-H6````````X18` -XM``````#,%@```````-46`````````````````````````````%P2```````` -XM@1(```````#A%0```````/L5`````````````````````````````($2```` -XM````Y1(````````[&P```````$H;````````"A8```````"H%@```````'$5 -XM````````X14```````!@$P```````)L4```````````````````````````` -XM`($2````````Y1(````````[&P```````$H;````````EQ8```````"H%@`` -XM`````#@6````````6X`+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF -XM:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y -XM;F%M:6,`+F-T;W)S`"YD=&]RE```````*!Z```````` -XMH`$````````%``````````@`````````$`````````"X`````0````,````` -XM````0'Q0``````!`?````````!`````````````````````(```````````` -XM````````OP````$````#`````````%!\4```````4'P````````0```````` -XM````````````"````````````````````,8````!`````P````````!@?%`` -XM`````&!\````````"`````````````````````@```````````````````#+ -XM`````0````,`````````:'Q0``````!H?````````$@"```````````````` -XM```(``````````@`````````T`````@````#`````````+!^4```````L'X` -XM```````P````````````````````"````````````````````-4````!```` -XM`````````````````````+!^````````]@$```````````````````$````` -XM``````````````#>`````0````````````````````````"F@````````/`` -XM```````````````````!````````````````````[0````$````````````` -XM````````````EH$```````#I`0```````````````````0`````````````` -XM`````/T````!`````````````````````````'^#````````:TX````````` -XM``````````$````````````````````)`0```0`````````````````````` -XM``#JT0```````#4+```````````````````!````````````````````%P$` -XM``$`````````````````````````']T````````8#@`````````````````` -XM`0```````````````````",!```!`````````````````````````#CK```` -XM``````8```````````````````@````````````````````P`0```0```#`` -XM```````````````````X\0```````(P-```````````````````!```````` -XM``$`````````.P$```$`````````````````````````Q/X```````"<5``` -XM`````````````````0```````````````````$8!```!```````````````` -XM`````````&!3`0``````@!@```````````````````$````````````````` -XM```1`````P````````````````````````#@:P$``````%0!```````````` -XM```````!`````````````````````0````(````````````````````````` -XM>'8!``````"@$0```````"0```!/````"``````````8``````````D````# -XM`````````````````````````!B(`0``````B@D```````````````````$` -XM`````````````````````````````````````````````````````````P`! -XM`,@!0````````````````````````P`"`.`!0``````````````````````` -XM`P`#`/@!0````````````````````````P`$`%`$0``````````````````` -XM`````P`%`-`+0````````````````````````P`&`.`.0``````````````` -XM`````````P`'`(`/0````````````````````````P`(`,`/0``````````` -XM`````````````P`)`#@00````````````````````````P`*`,@60``````` -XM`````````````````P`+`-P60````````````````````````P`,`%`;0``` -XM`````````````````````P`-`#AI0````````````````````````P`.`$AI -XM0````````````````````````P`/`$1R0````````````````````````P`0 -XM`&!R4````````````````````````P`1`&!U4``````````````````````` -XM`P`2`*!Z4````````````````````````P`3`$!\4``````````````````` -XM`````P`4`%!\4````````````````````````P`5`&!\4``````````````` -XM`````````P`6`&A\4````````````````````````P`7`+!^4``````````` -XM`````````````P`8`````````````````````````````P`9```````````` -XM`````````````````P`:`````````````````````````````P`;```````` -XM`````````````````````P`<`````````````````````````````P`=```` -XM`````````````````````````P`>`````````````````````````````P`? -XM`````````````````````````````P`@```````````````````````````` -XM`P`A`````````````````````````````P`B```````````````````````` -XM`````P`C`````````````````````````````P`D```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`3`$!\ -XM4`````````````````!@`````0`4`%!\4`````````````````!N`````0`5 -XM`&!\4`````````````````![`````@`,`/`;0`````````````````"1```` -XM`0`7`-1^4````````0````````"@`````0`0`'!R4`````````````````"G -XM`````@`,`#`<0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`3`$A\4`````````````````#``````0`4`%A\4``````````` -XM``````#-`````0`1`&AZ4`````````````````#;`````0`5`&!\4``````` -XM``````````#G`````@`,`!!I0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0```@`,`&`<0```````*0`````````N`0`` -XM`@`,`)`<0```````*0`````````X`0```@`,`,`<0```````*0````````!& -XM`0```@`,`/`<0```````CP8```````!2`0```0`0`,!S4```````H`$````` -XM``!C`0```0`0`(!R4```````0`$```````!R`0``!`#Q_P`````````````` -XM``````!]`0```@`,`/`K0```````?0````````"0`0```@`,`$`O0``````` -XM:P````````"@`0```@`,`-`V0```````(@````````"T`0```@`,```W0``` -XM````-P````````#&`0```@`,`-`\0```````VP````````#1`0``!`#Q_P`` -XM``````````````````#<`0``!`#Q_P````````````````````#F`0```@`, -XM`)!-0```````$`````````#W`0```@`,`*!-0```````$``````````'`@`` -XM!`#Q_P`````````````````````/`@``$@`,`"`U0```````_P`````````< -XM`@``$@`,`*`Q0```````]``````````F`@``$@```.P60```````D``````` -XM```X`@``$@```/P60```````AP````````!2`@``$@````P70```````%P$` -XM``````!I`@``$@```!P70```````314```````!^`@``$@`,`*`R0``````` -XM.0$```````"(`@``$@```"P70```````?`$```````"9`@``$@`,`'!.0``` -XM````9@````````"J`@``$0`2`*!Z4`````````````````"S`@``$@```#P7 -XM0```````V@(```````#)`@``$@```$P70```````G@````````#8`@``$@`` -XM`%P70```````-`````````#J`@``$@```&P70```````50````````#[`@`` -XM$@`,`)`X0```````%0$````````/`P``$@`,`+`]0```````TPL````````< -XM`P``$@```'P70```````Y0`````````R`P``$@`,`.!F0```````CP`````` -XM``!``P``$@```(P70```````B@````````!0`P``$@```)P70``````````` -XM``````!A`P``$@```*P70```````:@````````!X`P``$0(0`&AR4``````` -XM``````````"%`P``$@```+P70```````X@````````":`P``$@`,`.!.0``` -XM````^A<```````"H`P``$@```,P70```````C`$```````#"`P``$@`,`+`O -XM0```````X@$```````#2`P``$@```-P70````````@````````#F`P``$@`` -XM`.P70```````AP8```````#X`P``$@```/P70```````.P`````````.!``` -XM$@````P80```````&0$````````E!```$@`,`.`S0```````.@$````````U -XM!```$@`*`,@60``````````````````[!```$@```!P80```````)``````` -XM``!2!```$@```"P80```````B`````````!A!```$0`7`-A^4```````"``` -XM``````!I!```$@```#P80```````3`````````![!```$@```$P80``````` -XM*0````````",!```$@```%P80```````-0````````"A!```$@```&P80``` -XM````:0$```````"V!```$@```'P80```````:@````````#0!```$0`7`+!^ -XM4```````!`````````#G!```$@```(P80```````K0(```````#X!```$@`` -XM`)P80```````%@`````````+!0``$0`0`&!R4```````"``````````6!0`` -XM$@`,`"`V0```````H@`````````E!0``$@`,`%`;0```````DP`````````L -XM!0``$@```*P80```````E0`````````\!0``$@```+P80``````````````` -XM``!+!0``$0`7`+A^4```````"`````````!!0``$@`,`#`N0```````!P$```````"J!0``$@`,`'!*0``` -XM````[@$```````"T!0``$@`,`'!G0```````GP$```````#%!0``$@```/P8 -XM0```````*`````````#"```$@```+P:0```````\@````````!O"```$0`7`,A^4```````"``` -XM``````"#"```$@```,P:0```````=@````````"2"```$0`7`-!^4``````` -XM!`````````"C"```$@```-P:0```````+P````````"T"```$@`,``!.0``` -XM````9@````````#&"```$@`,`)!)0```````V0````````#8"```$@```.P: -XM0```````'@````````#I"```$@```/P:0```````N0$````````$"0``$@`` -XM``P;0```````(0`````````9"0``$@```!P;0``````` -XM"0``$@`,`&!,0```````)0$```````!I"0``$@```#P;0```````:`$````` -XM``!_"0``$@`,`+`Y0```````%0,`````````8W)T,2YC`&%B:71A9P`O=7-R -XM+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\8V]M;6%N9"UL:6YE/@`\8G5I -XM;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ)4U1?7P!?7T143U)?3$E35%]? -XM`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R4!`1D)31%\Q -XM+C``5]P:&1R -XM`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A=&5?empty.o.uu << '446fa33c5b702a1d1fbfe3ec7a501a1a' -Xbegin 644 empty.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````'`````` -XM`````````$```````$``!P`$```Nempty.o.uu << '446fa33c5b702a1d1fbfe3ec7a501a1a' -Xbegin 644 empty.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````%`````` -XM`````````$```````$```@`!```Nsections.o.uu << 'END-of-sections.o.uu' -Xbegin 644 sections.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q```` -XM`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -XM````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -XM`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -XM9EP"```+7W```F50````"(W`*``````)\W@(```(C -XM=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -XM``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -XM```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -XM5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -XM`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -XM```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -XM`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -XM`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -XM""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -XM`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -XM"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -XM````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -XM%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -XM!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -XM"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -XM```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -XM``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -XM"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -XM``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -XM-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -XM``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -XM(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -XM````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -XM"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -XM"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -XM`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -XM``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -XM``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -XM````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -XM"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -XM```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -XM"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -XM!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -XM60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -XM```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -XM```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -XMHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -XM``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -XM%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -XM"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -XM`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -XM`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -XM"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -XM``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -XM``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -XM`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -XM!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -XM`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -XM".@````F``````$X`50``````````````````````````````+T2```C96-P -XM``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -XM```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -XM.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -XM%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -XM@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -XMQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -XM``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -XM`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -XM`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -XM-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -XM``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -XM`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -XM+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -XM`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -XM20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -XMO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -XM($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -XM!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -XM`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -XM86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -XM;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -XM'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -XM`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -XM#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -XM@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -XMY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -XM0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -XM1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -XM1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -XM`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -XM`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -XM!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -XM``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -XM`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -XM`````````````````````'``````````E@`````````!`%66`````````($! -XM`````````0!00` -XM``````"W!`````````$`42\%````````.04````````!`%$````````````` -XM````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -XM````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -XM`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -XM``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -XM````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -XM``````$`5DL&````````A`8````````!`%8`````````````````````J04` -XM```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -XM`````````0!3`````````````````````+P%````````OP4````````!`%"_ -XM!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -XM```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -XM4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -XMR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -XM`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -XM````````````````D`8```````"Y!@````````$`5+D&````````P08````` -XM```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -XM````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -XM`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -XM``````#)!P````````$`5@````````````````````#0!P```````-('```` -XM`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -XM=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -XM`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -XM````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -XM``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -XM``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -XM````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -XM````````````````````<@X```````!U#@````````$`4'4.````````@PX` -XM```````!`%1##P```````$T/`````````0!4`````````````````````-\, -XM````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -XM#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -XM`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -XM`!0/`````````0!0`````````````````````!`0````````$1`````````" -XM`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -XM````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -XM```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -XM5=P0````````X1`````````!`%4`````````````````````$!`````````U -XM$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -XM`0!4M!````````"[$`````````$`5``````````````````````B$``````` -XM`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -XM```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -XM````NQ`````````!`%3<$````````.80`````````0!4```````````````` -XM`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -XM``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -XM````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -XM$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -XM``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -XM`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -XM````````^1`````````"`'%P`````` -XM``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -XM``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -XM````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -XM`````&(7`````````0!4`````````````````````"$1````````=A$````` -XM```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -XM````````)14````````!`%9$%0```````-X7`````````0!6```````````` -XM`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -XMWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -XM`-X7`````````0!<`````````````````````"$1````````?!$````````! -XM`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -XM````WA<````````!`%X`````````````````````$A<````````7%P`````` -XM``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -XM`````````````````+T1````````PA$````````!`%0#%0````````@5```` -XM`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -XM`````,05`````````0!0`````````````````````"$1`````````1,````` -XM```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -XMZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -XM``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -XM```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -XM5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -XM``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -XM````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -XM`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -XM```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -XM````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -XM`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -XM`````%@7`````````0!<`````````````````````"$1````````-A$````` -XM```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -XM````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -XM%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -XM#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -XM```T#@```````#H.````````+@X````````Q#@`````````````````````` -XM```````U$````````%,0````````W!````````#K$``````````````````` -XM``````````!W$````````(<0````````Q1````````#<$````````)40```` -XM````F!````````"+$````````)(0`````````````````````````````!(1 -XM````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -XM``,6````````U!8```````!/$@```````,`2```````````````````````` -XM`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -XM%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -XM``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -XM``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -XME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -XM````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -XM````````*18````````L%@````````,6````````'18````````````````` -XM````````````M1$```````#@$0```````/L4````````%14````````````` -XM````````````````X!$```````!$$@```````"L7````````.A<````````E -XM%0```````.05````````L10```````#[%````````,`2````````!10````` -XM````````````````````````X!$```````!$$@```````"L7````````.A<` -XM``````#3%0```````.05````````$P```````+$3 -XM````````NA,````````K$P```````*43````````'1,````````A$P`````` -XM``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -XM`````,`2````````YA(`````````````````````````````X!$```````!$ -XM$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -XM`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -XM``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -XM`````````````````````#$4````````L10````````0%P```````"L7```` -XM````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -XM`````````````````````````````#$4````````6!0````````7%P`````` -XM`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -XM`````+$4````````:A0```````!L%````````&04````````9Q0````````` -XM````````````````````CA0```````"Q%````````-06````````XQ8````` -XM````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -XM9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -XM4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -XM2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -XM;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -XM7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -XM`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -XM1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -XM96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -XM````B`,````````"````)````/S_________C0,````````*````"0```+8` -XM````````E0,````````"````)````/S_________O0,````````*````"0`` -XM`+8`````````]0,````````"````)@```/S_________$`0````````"```` -XM)P```/S_________;P0````````"````&@```/S_________LP0````````" -XM````&0```/S_________V@0````````"````&P```/S_________!@4````` -XM```"````'P```/S_________"P4````````*````"0```,``````````&@4` -XM```````"````(````/S_________'P4````````*````"0```-@````````` -XM*P4````````"````*````/S_________-04````````"````'P```/S_____ -XM____.@4````````*````"0```!X`````````204````````"````(````/S_ -XM________4P4````````"````'P```/S_________6`4````````*````"0`` -XM`.4`````````9P4````````"````(````/S_________<04````````"```` -XM'P```/S_________=@4````````*````"0```#<`````````A04````````" -XM````(````/S_________M04````````"````&@```/S__________@4````` -XM```"````*@```/S_________"P8````````"````(P```/S_________408` -XM```````"````'P```/S_________5@8````````*````"0```!X````````` -XM908````````"````(````/S_________;`8````````"````'P```/S_____ -XM____<08````````*````"0````,!````````@`8````````"````(````/S_ -XM________O08````````"````&0```/S_________T08````````"````&0`` -XM`/S_________/P<````````"````&P```/S_________=0<````````"```` -XM'P```/S_________>@<````````*````"0```!P!````````B0<````````" -XM````(````/S_________DP<````````"````'P```/S_________F`<````` -XM```*````"0```#H!````````IP<````````"````(````/S_________L0<` -XM```````"````'P```/S_________M@<````````*````"0```%@!```````` -XMQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -XM____;@@````````"````&P```/S_________LP@````````*````"P`````` -XM````````N@@````````"````+0```/S_________R0@````````"````'P`` -XM`/S_________S@@````````*````"0```',!````````W0@````````"```` -XM(````/S_________YP@````````"````'P```/S_________[`@````````* -XM````"0```%@!````````^P@````````"````(````/S_________$0D````` -XM```"````+P```/S_________*0D````````"````)P```/S_________>@D` -XM```````"````,````/S_________N`D````````"````'P```/S_________ -XMO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -XM____U@D````````"````'P```/S_________VPD````````*````"0```+D! -XM````````Z@D````````"````(````/S_________[PD````````*````"0`` -XM`*L!````````^PD````````"````(````/S_________,0H````````"```` -XM,@```/S_________5`H````````"````,P```/S_________:PH````````" -XM````-````/S_________E`H````````*````"0```-$!````````G@H````` -XM```"````(````/S_________MPH````````"````,0```/S_________YPH` -XM```````"````,0```/S_________0@L````````*````"0```+8````````` -XM:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -XM````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -XM````````JPL````````+````"0```.H!````````M`L````````+````"0`` -XM`/P!````````O0L````````+````"0````("````````X@L````````"```` -XM-0```/S_________\`L````````"````-@```/S_________(@P````````" -XM````,0```/S_________?PP````````"````)P```/S_________DPP````` -XM```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -XM```````"````.0```/S__________PP````````"````&0```/S_________ -XM'0T````````"````.@```/S_________5`T````````*````"0```+8````` -XM````?@T````````"````)@```/S_________DPT````````"````'````/S_ -XM________N`T````````*````"0```*8`````````T@T````````*````"0`` -XM`*X`````````$0X````````"````.````/S_________*@X````````"```` -XM.0```/S_________/@X````````"````'````/S_________3@X````````" -XM````&0```/S_________:PX````````"````.@```/S_________FPX````` -XM```"````)P```/S_________W`X````````"````.P```/S_________]PX` -XM```````"````*P```/S_________`0\````````"````(P```/S_________ -XM$`\````````"````'P```/S_________%0\````````*````"0```(X````` -XM````)`\````````"````(````/S_________*0\````````"````(P```/S_ -XM________20\````````"````'P```/S_________3@\````````*````"0`` -XM`#\"````````70\````````"````(````/S_________9P\````````"```` -XM'P```/S_________;`\````````*````"0```","````````>P\````````" -XM````(````/S_________A0\````````"````'P```/S_________B@\````` -XM```*````"0```(,"````````F0\````````"````(````/S_________HP\` -XM```````"````'P```/S_________J`\````````*````"0```&T"```````` -XMMP\````````"````(````/S_________O`\````````*````"0```*L!```` -XM````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -XM________U0\````````*````"0````@"````````Y`\````````"````(``` -XM`/S_________[@\````````"````'P```/S_________\P\````````*```` -XM"0```%4"`````````A`````````"````(````/S_________)A`````````" -XM````/````/S_________,1`````````"````/0```/S_________91`````` -XM```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -XM/0```/S_________UA0````````"````0P```/S_________-A4````````" -XM````0P```/S_________4!4````````"````,0```/S_________7!4````` -XM```"````-0```/S_________=!4````````"````0P```/S_________HA4` -XM```````"````0@```/S_________MQ4````````"````,0```/S_________ -XMP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -XM````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -XM________\14````````"````/@```/S_________)18````````"````*@`` -XM`/S_________0Q8````````"````1````/S_________9Q8````````"```` -XM'````/S_________>Q8````````"````.@```/S_________D18````````" -XM````10```/S_________JA8````````"````,P```/S_________VA8````` -XM```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -XM```````"````'P```/S_________&!<````````*````"0````,!```````` -XM)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -XM````-A<````````"````*````/S_________0!<````````"````'P```/S_ -XM________11<````````*````"0```)$!````````5!<````````"````(``` -XM`/S_________7A<````````"````'P```/S_________8Q<````````*```` -XM"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -XM````C0`````````*````%@```.4&````````E``````````*````%@```&<( -XM````````FP`````````*````%@```.(!````````H``````````*````%@`` -XM`'`&````````L``````````*````%@```/$'````````O0`````````*```` -XM%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -XM````%@```*T!````````V``````````*````%@```#H&````````]``````` -XM```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -XM```````*````%@```*\'````````%@$````````*````%@```'@$```````` -XM)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -XM````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -XM````````E@$````````*````%@```)P`````````I`$````````*````%@`` -XM`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -XM%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -XM`/H!````````HP<````````*````%@````@$````````L0<````````*```` -XM%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -XM````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -XM```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -XM```````*````%@```(X!````````(0@````````*````%@```+$&```````` -XM+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -XM````2P@````````*````%@```"T`````````:`@````````*````%@````D! -XM````````=@@````````*````%@```+8!````````A0@````````*````%@`` -XM`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -XM%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -XM````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -XM```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -XM```````*````%@```)\'````````=0D````````*````%@````D!```````` -XM@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -XM````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -XM````````PPD````````*````%@```!X&````````T@D````````*````%@`` -XM`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -XM%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -XM````%@```"4#````````3PH````````*````%@```,@#````````50H````` -XM```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -XM```````*````%@```*$"````````9PH````````*````%@```*(&```````` -XM=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -XM````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -XM````````S`H````````*````%@```"<"````````V@H````````*````%@`` -XM`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -XM%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -XM````%@```.L#````````1PL````````*````%@```-L&````````50L````` -XM```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -XM```````*````%@```$<"````````APL````````*````%@```%T!```````` -XME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -XM````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -XM````````]PL````````*````%@```%``````````!0P````````*````%@`` -XM`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -XM%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -XM````%@```)X%````````2PP````````*````%@```$L%````````60P````` -XM```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -XM```````*````%@```$(%````````@PP````````*````%@```/D'```````` -XMD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -XM````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -XM````````R@P````````*````%@```-<"````````V0P````````*````%@`` -XM`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -XM%@```)D'````````!@T````````*````%@```'('````````'`T````````* -XM````%@```'X(````````(PT````````!`````@``````````````*PT````` -XM```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -XM```````!`````@```'``````````>`T````````!`````@```"8"```````` -XM@`T````````*````$@``````````````E`T````````*````$@```#D````` -XM````H@T````````*````$@```((`````````IPT````````*````%@```-,# -XM````````L@T````````*````$@```+@`````````S@T````````*````%@`` -XM`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -XM`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -XM````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -XM```*````$@````@"````````*PX````````*````%@````$$````````-@X` -XM```````*````$@```%$"````````.PX````````*````%@```&H#```````` -XM2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -XM````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -XM````````=`X````````*````$@```+\"````````>0X````````*````%@`` -XM`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -XM$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -XM`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -XM```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -XM```````*````$@```),$````````V0X````````*````%@```,$````````` -XMY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -XM````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -XM````````*P\````````!`````@```)`%````````,P\````````!`````@`` -XM`(0&````````.P\````````*````$@```'X%````````30\````````*```` -XM$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -XM````$@```)8&````````<`\````````*````%@````$$````````>P\````` -XM```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -XM```````!`````@```)`&````````D@\````````!`````@```,D'```````` -XMF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -XM````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -XM````````T0\````````*````%@```+$&````````W`\````````*````$@`` -XM`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -XM`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -XM````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -XM```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -XM```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -XM````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -XM````````IQ`````````*````%@```#("````````LA`````````*````$@`` -XM`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -XM$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -XM`````@`````*````````[!`````````!`````@```*(*````````]!`````` -XM```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -XM```````*````%@```+$&````````%A$````````*````$@```"P,```````` -XM)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -XM````.A$````````*````%@```'D&````````11$````````!`````@```+`* -XM````````31$````````!`````@```-(*````````51$````````*````$@`` -XM`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -XM%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -XM````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -XM```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -XM```````*````$@```+L-````````NA$````````*````$@```/,-```````` -XMOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -XM````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -XM````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -XM``L`````````)1(````````*````%@```-0'````````,!(````````!```` -XM`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -XM````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -XM```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -XM```````*````%0``````````````>A(````````*````$@```&`/```````` -XMA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -XM````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -XM````````OA(````````*````%@```.4"````````VA(````````*````%@`` -XM`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -XM%@```/4#````````$!,````````*````%@````$$````````'1,````````* -XM````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -XM```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -XM```````*````$@```%H0````````5!,````````*````$@```*,0```````` -XM61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -XM````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -XM````````E!,````````*````%@````$$````````GA,````````*````$@`` -XM`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -XM%0```)``````````PA,````````*````$@```"82````````U!,````````* -XM````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -XM```*````%@```'H"````````'10````````*````%@```-T(````````)10` -XM```````!`````@```!`0````````+10````````!`````@```.L0```````` -XM-10````````*````$@```!03````````1Q0````````*````$@```'03```` -XM````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -XM````````;10````````*````%0```&`!````````?10````````*````$@`` -XM`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -XM$@```+X4````````H10````````*````$@```!H5````````J!0````````* -XM````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -XM```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -XM```````*````%@````$$````````,Q4````````*````%@```+@%```````` -XM6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -XM````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -XM````````O!4````````*````%@```"$"````````%!8````````*````%@`` -XM`!(!````````(18````````*````%@```'X%````````/18````````*```` -XM%@```,H$````````:18````````*````%@````$$````````?!8````````* -XM````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -XM```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -XM```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -XM\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -XM````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -XM````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -XM`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -XM$@````87````````9A<````````*````$@```$\7````````;Q<````````* -XM````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -XM```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -XM```````*````$@```-(8````````NA<````````*````%0```+`#```````` -XMT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -XM````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -XM`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -XM`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -XM%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -XM````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -XM```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -XM```````!`````@```#$4````````FA@````````*````$@```)X<```````` -XMI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -XM````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -XM````````S1@````````*````%0```+`&````````V1@````````*````$@`` -XM`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -XM%@```$\"````````Q0`````````!`````@``````````````'``````````* -XM````$```````````````(``````````!`````@``````````````-``````` -XM```*````$```````````````.``````````!`````@```'``````````7``` -XM```````*````$```````````````8``````````!`````@```#`"```````` -XMC``````````*````$```````````````D``````````!`````@```#`#```` -XM````K``````````*````$```````````````L``````````!`````@```*`# -XM````````Y``````````*````$```````````````Z``````````!`````@`` -XM`)`%````````#`$````````*````$```````````````$`$````````!```` -XM`@```)`&````````-`$````````*````$```````````````.`$````````! -XM`````@```-`'````````9`$````````*````$```````````````:`$````` -XM```!`````@`````)````````C`$````````*````$```````````````D`$` -XM```````!`````@`````*````````O`$````````*````$``````````````` -XMP`$````````!`````@```+`*````````W`$````````*````$``````````` -XM````X`$````````!`````@```.`*````````_`$````````*````$``````` -XM``````````(````````!`````@```"`+````````)`(````````*````$``` -XM````````````*`(````````!`````@```&`,````````9`(````````*```` -XM$```````````````:`(````````!`````@```!`0````````C`(````````* -XM````$```````````````D`(````````!`````@```/`0````````(``````` -XM```*`````@``````````````.``````````*`````@```'``````````6``` -XM```````*`````@```#`"````````@``````````*`````@```#`#```````` -XMF``````````*`````@```*`#````````R``````````*`````@```)`%```` -XM````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -XM````````,`$````````*`````@`````)````````4`$````````*`````@`` -XM```*````````>`$````````*`````@```+`*````````D`$````````*```` -XM`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -XM`````@```&`,``````````(````````*`````@```!`0````````(`(````` -XM```*`````@```/`0````````!@`````````*````!@``````````````!@`` -XM```````*````!@``````````````$``````````!`````@`````````````` -X` -Xend -END-of-sections.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/out/strip-onlydebug-1.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/out/strip-onlydebug-1.out.shar deleted file mode 100644 index 523bed44..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/out/strip-onlydebug-1.out.shar +++ /dev/null @@ -1,2084 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.1.uu -# sections.o.uu -# -echo x - sections.o.1.uu -sed 's/^X//' >sections.o.1.uu << 'eb2ac2808b7045ab3c2faf26922f5e01' -Xbegin 644 sections.o.1 -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````."?```` -XM`````````$```````$``&P`8``$1`24.$PL##AL.$0$2`1`&```")``+"SX+ -XM`PX```,6``,..@L["TD3```$)``+"SX+`P@```4D``L+/@L```8/``L+```' -XM#P`+"TD3```()@!)$P``"1,!`PX+"SH+.PL!$P``"@T``PXZ"SL+21,X"@`` -XM"PT``P@Z"SL+21,X"@``#!4!)PQ)$P$3```-!0!)$P``#A,``PX\#```#P$! -XM21,!$P``$"$`21,O"P``$1,!"PLZ"SL+`1,``!(6``,(.@L["TD3```3!`$+ -XM"SH+.PL!$P``%"@``PX<#0``%2X!`PXZ"SL+)PP1`1(!0`H!$P``%@4``P@Z -XM"SL+21,""@``%S0``P@Z"SL+21,""@``&"X!/PP##CH+.P4G#!$!$@%`!@$3 -XM```9!0`#"#H+.P5)$P(&```:-``#"#H+.P5)$P(&```;-``##CH+.P5)$P(& -XM```<-``#"#H+.P5)$P(*```=-``##CH+.P5)$P``'BX!`PXZ"SL%)PP1`1(! -XM0`8!$P``'P4``PXZ"SL%21,"!@``(#0``P@Z"SL%21,``"$N`3\,`PXZ"SL% -XM)PQ)$Q$!$@%`!@$3```B+@$_#`,..@L["R<,21,1`1(!0`8!$P``(P4``P@Z -XM"SL+21,"!@``)`4``PXZ"SL+21,"!@``)30``P@Z"SL+21,"!@``)BX!`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```G+@$##CH+.PLG#$D3(`L!$P``*`4``PXZ"SL+ -XM21,``"DT``,..@L["TD3```J-``#"#H+.PM)$P``*PL!508!$P``+!T!,1,1 -XM`1(!6`M9"P``+04`,1,``"X+`1$!$@$``"\T`#$3`@H``#`T`#$3```Q!0`# -XM"#H+.PM)$P``,BX!/PP##CH+.PLG#!$!$@%`!@$3```S-``##CH+.PM)$P(& -XM```T-``##CH+.PM)$P(*```U'0$Q$U4&6`M9!0``-@L!508``#`````((!0`````#```` -XM``,ZB@````((!P`````""`0``````@0$``````,``````U)_````!0@'!@@# -XM``````0T;0````(!!@`````#``````590@````,`````!5Y;`````P`````% -XM8W\````'"+H````'".X````(N@````,`````!>B?`````P`````"+Z\````) -XM`````!`"1C(!```*``````)',@$```(C``H``````DA4`````B,(``<(-``` -XM``D`````F`)F7`(```M?<``"9S(!```"(P`+7W(``FA4`````B,("U]W``)I -XM5`````(C#`H``````FH[`````B,0"@`````":SL````"(Q(+7V)F``)L"0$` -XM``(C&`H``````FU4`````B,H"@`````"<*T````"(S`*``````)Q;`(```(C -XM.`H``````G*,`@```B-`"@`````"-@"```"(V@+7W5R``)Y5`````(C<`H````` -XM`GS>`@```B-T"@`````"?>X"```"(W<+7VQB``*`"0$```(C>`H``````H-4 -XM`````R.(`0H``````H3^`````R.0`0`,`50```!L`@``#:T`````!PA<`@`` -XM#`%4````C`(```VM````#>(````-5``````'"'("```,`?X```"L`@``#:T` -XM```-_@````U4``````<(D@(```P!5````,P"```-K0````WH````#50````` -XM!PBR`@``#@`````!!PC2`@``#S0```#N`@``$*H````"``\T````_@(``!"J -XM```````#``````*%.`$```((!0`````#``````8FS`````,`````!BK,```` -XM#S0````V`P``$*H````/`!$(!GI;`P``"@`````&>Q`#```"(P`*``````9\ -XM&P,```(C!``#``````9]-@,```,`````!R;7`````P`````')\$````#```` -XM``$9@,```(C``H`````!X62`P```B,(``,`````!X85 -XM!0``$D5L9@`()E`%```.``````$#``````@G804```X``````1,$"#8`!@`` -XM%```````%``````!%``````"%``````#%``````$%``````%%``````&%``` -XM```'%``````(%``````)%``````*%``````+%``````,%``````-%``````. -XM%``````/%``````0%``````1%``````2%``````3%``````4%``````5%``` -XM```6%``````7``,`````"$]G!0``$0@(>"(&```*``````AXK08```(C```) -XM`````$`(:*T&```*``````ALUP````(C``H`````"&VM`````B,("@`````( -XM;M<````"(Q`*``````AOUP````(C&`H`````"'``!@```B,@"@`````(<68` -XM```"(R0*``````AVLP8```(C*`H`````"'=F`````B,P"@`````(>`L&```" -XM(S@`!P@B!@``!PA6!0```P`````(>2(&```#``````DN:@0```,`````"3`* -XM!0```P`````),CH%```1"`HD_`8```H`````"B0E!P```B,```D`````$`HA -XM)0<```H`````"B+H`````B,`"@`````*).4&```"(P@`!PC\!@``$0@*-D(' -XM```*``````HV]P<```(C```)`````$@**/<'```*``````HIZ`````(C``H` -XM````"BKH`````B,("@`````**^@````"(Q`*``````HLZ`````(C&`MA9&0` -XM"BY4`````B,@"@`````*+U0````"(R0*``````HP5`````(C*`H`````"C%4 -XM`````B,L"@`````*,E0````"(S`*``````HS5`````(C-`H`````"C14```` -XM`B,X"@`````*-BL'```"(T``!PA"!P``$0@*/Q0(```*``````H_60@```(C -XM```)`````"`*.ED(```*``````H[X@````(C``H`````"CSB`````B,("@`` -XM```*/?,````"(Q`*``````H__0<```(C&``'"!0(```1$`I2A`@```H````` -XM"E)@"0```B,`"@`````*4F8)```"(P@`"0````!X"D-@"0``"@`````*1.@` -XM```"(P`+:7,`"D6S!@```B,("V]S``I&LP8```(C$`MB=68`"D>M`````B,8 -XM"V]F9@`*2-<````"(R`+``*3$PL```(C -XM"``1$`J@8PL```H`````"J!@"0```B,`"@`````*H&8)```"(P@`$0@*HGH+ -XM```*``````JB8`D```(C```)`````-@*9A4-```*``````IGZ`````(C``H` -XM````"FI4`````B,("@`````*:U0````"(PP+:65C``IM5`````(C$`MO96,` -XM"FY4`````B,4"V5I;@`*;Q4-```"(Q@*``````IP%0T```(C(`H`````"G)4 -XM`````B,H"@`````*U0````"(S@*``````I\5`````(C/`H`````"GU4`````B-` -XM"@`````*?E0````"(T0*``````J`8`D```(C2`H`````"H%@"0```B-0"@`` -XM```*@F`)```"(U@*``````J*1@H```(C8`H`````"I-4`````B-D"@`````* -XMEC(!```"(V@*``````J8;0H```(C<`H`````"IF8"@```R.``0H`````"IK# -XM"@```R.0`0H`````"ISN"@```R.@`0H`````"IX9"P```R.P`0H`````"J`^ -XM"P```R/``0H`````"J)C"P```R/0`0`'"$4%```5``````'C`0`````````` -XM```````````"=PA@#0``%F5C<``!XF`-```!519S96,``>)@"0```507``````$A`P$``````````````````````````)<. -XM```996-P``$@`V`-````````'P`````!(`/H`````````!IS``$B`V`)```` -XM`````!@!``````'J`@$``````````````````````````"$/```996-P``'I -XM`F`-````````&G-A``'K`ED(````````&P`````![`)@"0```````"!S``'L -XM`F`)```:;V0``>T"Q@T````````:;W,``>X"LP8````````<;W-H``'O`L\& -XM```#D9!_`!@!``````'%`@$``````````````````````````(`/```9$@`` -XM$*H````$``<(Z````"8``````3@!5``````````````````````````````` -XMO1(``"-E8W```3=@#0```````"0``````3?H`````````"L`````?Q(``"5S -XM86,``4OW!P`````````LW1$````````````````````````!12WN$0``+@`` -XM```````````````````O^1$```.1H'\P!!(``````"<``````5\!5`````$; -XM$P``,65C<``!7F`-```H``````%>S````"D``````6#H````*FES:``!8<\& -XM```J:7,``6*S!@``*0`````!8_,````I``````%D5``````R`0`````!]@$` -XM`````````````````````````.T3```C96-P``'U8`T````````ET3```` -XM`````7<".PH4````````._\3```````````\``````&E`0$!2Q4``#EE8W`` -XM`:0!8`T``#ES``&D`6`)```@=``!I@%@"0``'0`````!IP'H````(&ES:``! -XMJ`'/!@``(')E;``!J0':!@``'0`````!J@%+%0``'0`````!JP%1%0``(&ED -XM``&L`<8-```=``````&M`50````@:0`!K0%4````'0`````!K0%4````(&-A -XM<``!K0%4``````<(6P,```<(.@4``"<``````<(!5`````%_%0``,65C<``! -XMP6`-```H``````'!Z``````\``````$H`@$!(!8``#EE8W```2<"8`T``#ES -XM``$G`F`)```@@````JQ8````````````` -XM```````````!F@&@&```+9<6```MC!8``"X`````````````````````-Z(6 -XM```````````UKA8````````!FP$MO!8``#8`````-\86````````-]$6```` -XM````->T3`````````8P".PH4````````+?\3````````/P`````"BA84```! -XM`4```````J`!5`````$!`'X$```"`+@````!`?L."@`!`0$!`````2]UEP(3[U(.%8($W*`2(!R;DP(R`-L -XM",5(1DA&2`-KFP,,",4##PC%`PL(Q0.D?P(H`:ZX"!2]`WI'/TD(CHX##=,# -XM8^\#(8U62@-UC0-HFP,<",4(R@-)"-/61#UW9-)0QL;&`T$(.>D(N`@3""P( -XM2@B=`PHY`W8Y.H!)""L#)L4#7,4( -XMR`,,_0,*",4(S0.K?P(E`9$#%],#;HT(2P,)<62`@&2``VUC`Q4(.59*`VUQ -XM.GX[@&2``PYC`VEQ`Q4(Q0--`BR\#KG_3&IY2 -XM"!)2/`,61S$#9@A_`^\``BX!?`(R$M0#F7\(C0,+MP-XFZW&"%@#I0$")`$# -XM"2L#=U4#"9L#=U4#"7\(('*%>H"`"LX"'+&"#P(Y0.Q`0A'")TZ2%E? -XM2(Z.@`,1Q0.\?@AQ5@/0`7\(F59*`Z5^"!T#G@$(Q0,I",4(P0-Q",4#P7[A -XM",P#@@0"*`$@1%B=!`(#DW[]_@0!`^H!Q8YT!`(#D7X(.<8$`0/J`3D$`@.6 -XM?D<$`0/J`7$$`@.6?CD$`0/J`3DQ;0@M!`(#D7[]R`0!`VL(Q?U8`^0`MP.< -XM?^&/@PA7JH`#=HT#)(T#8@@=`PK]"%P#M'[A`]H#`BL!_I`(5@-WC0AR5@/T -XM?=,#'ZD(:.*X"'`#"<6``^8!"!U6`XE_?PB'")\(+5E#2P@>5HPZ.%9E""R, -XM5E0ML)=9O/B.`POA`VF;`Q^I"%U6?@.N?D<#H7Y_\`/'`P@Y"%K\"#M6@P0" -XM`_Q]"$?^!`$#J`$('0,E")O4""P#['S3`[X#"(T#1^\(2`,9F_"X[CI6U`-V -XMTP-;"&/P`^<`"'$#;/T#MGX(TP@>`QE_"'((N@(M$3<[9M2L!`(#HG\",`$$ -XM`0/<`.$#H@$"+0$#LW\(FP/T?N$#,PC%",`##@C%5BHL:%F7@R=+_@(-``$! -XM`"1&!`,!PB0`0```````!0````````````` -XM``````!P`````````"0```````````````````"V`0```````$J#!8P#40YP -XMC0*&!``````L````````````````````_`````````!"#A!!#AB&`XP"1`X@ -XM1`Y@@P0````````<````````````````````:P````````!.#B"#`X8"`#0` -XM``````````````````#I`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$#G"# -XM!H8%C`0`````)````````````````````/0`````````00X0A@)$#AA$#B"# -XM`P```"0````````````````````Y`0```````$J&!(,%5`ZP`8T"C`,````L -XM````````````````````+P$```````!"#A!"#AA!#B!!#BA$#G"#!88$C`.- -XM`@`D````````````````````_P````````!!#A"&`D0.&$0.8(,#````+``` -XM`````````````````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP@P4` -XM'````````````````````"(`````````1@X0```````<```````````````` -XM````-P````````!$#A```````"0```````````````````!``0```````%J, -XM`X,%C0*&!$<.8``````\````````````````````I@,```````!"#A!'#AA" -XM#B!"#BA!#C"&!HP%C02.`X\"20XX1P[0`8,'````````)``````````````` -XM`````-L`````````00X0A@)%#AA$#B"#`P```#P```````````````````#N -XM!@```````$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(````` -XM``!P`````````(L``````````@!W"(L`````````)@(````````#`'?P```` -XM``````````````````!P`````````)8``````````0!5E@````````"!`0`` -XM``````$`7(L!````````)@(````````!`%P`````````````````````CP`` -XM``````!\`0````````$`5HL!````````)@(````````!`%8````````````` -XM````````]0````````#X``````````$`4/@`````````=P$````````!`%.+ -XM`0```````*X!`````````0!3S`$````````F`@````````$`4P`````````` -XM```````````P`@```````#("`````````@!W"#("````````,P(````````" -XM`'<0,P(````````W`@````````(`=Q@W`@```````#L"`````````@!W(#L" -XM````````+`,````````#`'?@```````````````````````P`@```````$<" -XM`````````0!51P(```````#(`@````````$`5LL"````````+`,````````! -XM`%8`````````````````````0@(```````#'`@````````$`4\L"```````` -XM+`,````````!`%,`````````````````````=@(```````";`@````````$` -XM4)\"````````K`(````````!`%#+`@```````-4"`````````0!0```````` -XM`````````````,`"````````RP(````````!`%`1`P```````!@#```````` -XM`0!0`````````````````````#`#````````/@,````````"`'<(/@,````` -XM``";`P````````(`=R``````````````````````,`,```````!2`P`````` -XM``$`564#````````:`,````````!`%4`````````````````````,`,````` -XM``!,`P````````$`5$P#````````5P,````````!`%97`P```````&4#```` -XM`````0!490,```````";`P````````$`5@````````````````````!"`P`` -XM`````%P#`````````0!37`,```````!E`P````````$`564#````````FP,` -XM```````!`%,`````````````````````H`,```````"B`P````````(`=PBB -XM`P```````*0#`````````@!W$*0#````````J0,````````"`'<8J0,````` -XM``"J`P````````(`=R"J`P```````*L#`````````@!W**L#````````KP,` -XM```````"`'```````````````` -XM``````T/````````%`\````````!`%`O#P```````$,/`````````0!0```` -XM`````````````````'(.````````=0X````````!`%!U#@```````(,.```` -XM`````0!40P\```````!-#P````````$`5`````````````````````#?#``` -XM`````'`-`````````0!3]@T```````"K#@````````$`4P`/````````.0\` -XM```````!`%-##P```````'\/`````````0!3NP\````````&$`````````$` -XM4P````````````````````#?#````````.P,`````````0!0!P\````````4 -XM#P````````$`4``````````````````````0$````````!$0`````````@!W -XM"!$0````````%A`````````"`'<0%A`````````:$`````````(`=Q@:$``` -XM`````.L0`````````@!W(``````````````````````0$````````'<0```` -XM`````0!5FA````````"M$`````````$`5;00````````OA`````````!`%7< -XM$````````.$0`````````0!5`````````````````````!`0````````-1`` -XM```````!`%1<$````````'00`````````0!4FA````````"H$`````````$` -XM5+00````````NQ`````````!`%0`````````````````````(A````````"? -XM$`````````$`4Z$0````````ZQ`````````!`%,````````````````````` -XM)!````````!T$`````````$`5)H0````````J!`````````!`%2T$``````` -XM`+L0`````````0!4W!````````#F$`````````$`5``````````````````` -XM```D$````````#40`````````0!47!````````"H$`````````$`5+00```` -XM````NQ`````````!`%3%$````````-<0`````````0!4```````````````` -XM`````"00````````K1`````````!`%6T$````````+X0`````````0!5Q1`` -XM``````#7$`````````$`5=P0````````X1`````````!`%4````````````` -XM````````\!````````#R$`````````(`=PCR$````````/00`````````@!W -XM$/00````````]A`````````"`'<8]A````````#X$`````````(`=R#X$``` -XM`````/D0`````````@!W*/D0````````^A`````````"`'%P````````$`5@`````````````` -XM```````A$0```````'@1`````````0! -XM%P````````$`7``````````````````````A$0```````'P1`````````0!> -XM?Q$```````"*$P````````$`7MX3````````S!0````````!`%[[%``````` -XM`-X7`````````0!>`````````````````````!(7````````%Q<````````! -XM`%6;%P```````)T7`````````0!0G1<```````#$%P````````$`50`````` -XM``````````````"]$0```````,(1`````````0!4`Q4````````(%0`````` -XM``$`5`````````````````````!8%0```````&`5`````````0!0OQ4````` -XM``#$%0````````$`4``````````````````````A$0````````$3```````` -XM`P"1Z'X!$P````````83`````````0!5!A,```````"K%0````````,`D>A^ -XMJQ4```````"T%0````````$`5;05````````SA4````````#`)'H?LX5```` -XM````TQ4````````!`%73%0```````-X7`````````P"1Z'X````````````` -XM````````(1$```````!V$0````````$`5G\1````````;14````````!`%9M -XM%0```````'@5`````````0!1E!4````````7%@````````$`5M06```````` -XMXQ8````````!`%80%P```````%@7`````````0!6```````````````````` -XM`"$1````````?A$````````!`%]_$0```````&`3`````````0!?8!,````` -XM``">$P````````$`4)X3````````)14````````!`%\E%0```````#H5```` -XM`````0!0.A4```````#>%P````````$`7P`````````````````````A$0`` -XM`````'@1`````````0!5]D871A`(`/``!C;W!Y -XM7W-H9'(``1```')E%@``8V]P>5]C;VYT -XM96YT```````L`````@``````"`````````````````#>%P`````````````` -XM``````````````!-"P```````$\+````````&0P```````!@#`````````0, -XM````````#@P`````````````````````````````!`X```````"0#@`````` -XM`,H/````````!A````````!##P```````&$/``````````\````````-#P`` -XM```````````````````````````5#@```````"(.````````\@\````````& -XM$````````-0/````````Z`\```````!-#P```````&$/````````!0\````` -XM```-#P```````(,.````````D`X```````!U#@```````'L.````````;PX` -XM``````!R#@```````%(.````````6PX```````!"#@```````$<.```````` -XM-`X````````Z#@```````"X.````````,0X````````````````````````` -XM````-1````````!3$````````-P0````````ZQ`````````````````````` -XM````````=Q````````"'$````````,40````````W!````````"5$``````` -XM`)@0````````BQ````````"2$``````````````````````````````2$0`` -XM`````"$1````````.A<```````#>%P```````.,6````````$!<````````# -XM%@```````-06````````3Q(```````#`$@`````````````````````````` -XM``!=$@```````,`2````````S1<```````#>%P```````+P7````````P!<` -XM``````"R%P```````+H7````````G1<```````"H%P```````)D7```````` -XMFQ<```````"`%P```````)07````````8A<```````!V%P```````$07```` -XM````6!<```````#M%@```````!`7````````KA8```````#4%@```````)46 -XM````````I!8```````"%%@```````(L6````````?Q8```````""%@`````` -XM`%<6````````7A8```````!'%@```````%(6````````+Q8````````U%@`` -XM`````"D6````````+!8````````#%@```````!T6```````````````````` -XM`````````+41````````X!$```````#[%````````!45```````````````` -XM`````````````.`1````````1!(````````K%P```````#H7````````)14` -XM``````#D%0```````+$4````````^Q0```````#`$@````````44```````` -XM`````````````````````.`1````````1!(````````K%P```````#H7```` -XM````TQ4```````#D%0```````',5````````JQ4```````!@%0```````'`5 -XM````````5!4```````!8%0```````"45````````1!4```````"_%``````` -XM`/L4````````[!,````````%%````````,D3````````WA,```````"Q$P`` -XM`````+H3````````*Q,```````"E$P```````!T3````````(1,````````. -XM$P```````!D3````````!A,````````)$P```````/02`````````1,````` -XM``#`$@```````.82`````````````````````````````.`1````````1!(` -XM``````#3%0```````.05````````P!(```````#-$@`````````````````` -XM``````````#Q$0```````!D2````````TQ4```````#D%0```````,42```` -XM````S1(````````K$@```````#82````````)1(````````H$@`````````` -XM```````````````````Q%````````+$4````````$!<````````K%P`````` -XM`-06````````XQ8```````#D%0````````,6````````%14````````E%0`` -XM```````````````````````````Q%````````%@4````````%Q<````````K -XM%P```````-06````````XQ8````````5%0```````"45````````<10````` -XM``"Q%````````&H4````````;!0```````!D%````````&<4```````````` -XM`````````````````(X4````````L10```````#4%@```````.,6```````` -XM`````````````````````$5L9C8T7T%D9'(`9&)G7W-E8P!?7W-&24Q%6`!I -XMF4`=6YS:6=N -XM960@:6YT`'!R:6YT7W-E8W1I;VX`7W-I>F4`14Q&7U1?3E5-`%]L8F9S:7IE -XM`%]F;&%G7!E`$5,1E]47U-9 -XM30!%;&9?5'EP90!S96=?;&ES=`!F;&%G`!S='%H7VQA`!? -XM8VQO'0`=E]R -XM96P`;G-E8W,`16QF-C1?6'=O6UL:7-T`'9?0!?9FEL90!35%))4%]$14)51P!S:%]S -XM:7IE`&EN9FUT`$5,1E]47T)95$4`9%]B=68`5]S96-T:6]N`$5,1E]47U-(1%(`8V]P>5]S:&1R`'!S975D;P!S:%]O -XM9F9S970`861D;W!T`&EN'1R80!S -XM971?0!R96PS,@!S -XM;&A?9FER'0` -XM+F1A=&$`+F)S@$``!`````````````````````` -XM````AP$``!``````````````````````````D@$``!(``0``"@```````*(` -XM````````H0$``!``````````````````````````J`$``!`````````````` -XM````````````KP$``!``````````````````````````M@$``!`````````` -XM````````````````O0$``!``````````````````````````Q0$``!(``0!@ -XM#````````*8#````````T`$``!``````````````````````````X`$``!`` -XM````````````````````````[`$``!``````````````````````````]P$` -XM`!``````````````````````````"0(``!`````````````````````````` -XM%@(``!``````````````````````````(`(``!`````````````````````` -XM````)0(``!``````````````````````````+0(``!(``0#P$````````.X& -XM````````.@(``!``````````````````````````2`(``!`````````````` -XM````````````3P(``!``````````````````````````5P(``!`````````` -XM````````````````8P(``!```````````````````````````'-E8W1I;VYS -XM+F,`:6YS97)T7W1O7W-E8U]L:7-T`&%D9%]T;U]S:'-T5]S:&1R`')E`!I;G-E -XMF4`;&]O:W5P7W-E8U]A -XM8W0`'1S8VX`96QF7W-T0!G96QF7V=E=')E;`!L;V]K=7!?:V5E<%]S>6UL:7-T``"7```````` -XM``(````9````_/_________N``````````(````:````_/________\;`0`` -XM``````(````;````_/________]9`0````````(````<````_/________]F -XM`0````````(````=````_/________^E`0````````(````>````_/______ -XM__^T`0````````(````?````_/________^Y`0````````H````)```````` -XM``````#(`0````````(````@````_/_________2`0````````(````?```` -XM_/_________7`0````````H````)````'@````````#F`0````````(````@ -XM````_/_________P`0````````(````?````_/_________U`0````````H` -XM```)````-P`````````$`@````````(````@````_/________\.`@`````` -XM``(````?````_/________\3`@````````H````)````50`````````B`@`` -XM``````(````@````_/________]/`@````````(````9````_/________]@ -XM`@````````(````B````_/________^7`@````````(````<````_/______ -XM__^H`@````````(````;````_/________^Z`@````````(````C````_/__ -XM_______;`@````````(````?````_/_________@`@````````H````)```` -XM<@````````#O`@````````(````@````_/_________Y`@````````(````? -XM````_/_________^`@````````H````)````-P`````````-`P````````(` -XM```@````_/________\4`P````````(````?````_/________\9`P`````` -XM``H````)````C@`````````H`P````````(````@````_/________]I`P`` -XM``````H````)````I0````````!N`P````````(````D````_/________]V -XM`P````````H````)````I@````````![`P````````(````D````_/______ -XM__^#`P````````H````)````K@````````"(`P````````(````D````_/__ -XM______^-`P````````H````)````M@````````"5`P````````(````D```` -XM_/________^]`P````````H````)````M@````````#U`P````````(````F -XM````_/________\0!`````````(````G````_/________]O!`````````(` -XM```:````_/________^S!`````````(````9````_/_________:!``````` -XM``(````;````_/________\&!0````````(````?````_/________\+!0`` -XM``````H````)````P``````````:!0````````(````@````_/________\? -XM!0````````H````)````V``````````K!0````````(````H````_/______ -XM__\U!0````````(````?````_/________\Z!0````````H````)````'@`` -XM``````!)!0````````(````@````_/________]3!0````````(````?```` -XM_/________]8!0````````H````)````Y0````````!G!0````````(````@ -XM````_/________]Q!0````````(````?````_/________]V!0````````H` -XM```)````-P````````"%!0````````(````@````_/________^U!0`````` -XM``(````:````_/_________^!0````````(````J````_/________\+!@`` -XM``````(````C````_/________]1!@````````(````?````_/________]6 -XM!@````````H````)````'@````````!E!@````````(````@````_/______ -XM__]L!@````````(````?````_/________]Q!@````````H````)`````P$` -XM``````"`!@````````(````@````_/________^]!@````````(````9```` -XM_/_________1!@````````(````9````_/________\_!P````````(````; -XM````_/________]U!P````````(````?````_/________]Z!P````````H` -XM```)````'`$```````")!P````````(````@````_/________^3!P`````` -XM``(````?````_/________^8!P````````H````)````.@$```````"G!P`` -XM``````(````@````_/________^Q!P````````(````?````_/________^V -XM!P````````H````)````6`$```````#%!P````````(````@````_/______ -XM__]+"`````````(````9````_/________]N"`````````(````;````_/__ -XM______^S"`````````H````+``````````````"Z"`````````(````M```` -XM_/_________)"`````````(````?````_/_________."`````````H````) -XM````"@````````(````@````_/________^W"@`` -XM``````(````Q````_/_________G"@````````(````Q````_/________]" -XM"P````````H````)````M@````````!I"P````````H````)````I@`````` -XM``"&"P````````H````)````K@````````"7"P````````H````)````XP$` -XM``````"B"P````````L````)````XP$```````"K"P````````L````)```` -XMZ@$```````"T"P````````L````)````_`$```````"]"P````````L````) -XM`````@(```````#B"P````````(````U````_/_________P"P````````(` -XM```V````_/________\B#`````````(````Q````_/________]_#``````` -XM``(````G````_/________^3#`````````L````)````M@````````#+#``` -XM``````(````X````_/_________H#`````````(````Y````_/__________ -XM#`````````(````9````_/________\=#0````````(````Z````_/______ -XM__]4#0````````H````)````M@````````!^#0````````(````F````_/__ -XM______^3#0````````(````<````_/________^X#0````````H````)```` -XMI@````````#2#0````````H````)````K@`````````1#@````````(````X -XM````_/________\J#@````````(````Y````_/________\^#@````````(` -XM```<````_/________].#@````````(````9````_/________]K#@`````` -XM``(````Z````_/________^;#@````````(````G````_/_________<#@`` -XM``````(````[````_/_________W#@````````(````K````_/________\! -XM#P````````(````C````_/________\0#P````````(````?````_/______ -XM__\5#P````````H````)````C@`````````D#P````````(````@````_/__ -XM______\I#P````````(````C````_/________])#P````````(````?```` -XM_/________].#P````````H````)````/P(```````!=#P````````(````@ -XM````_/________]G#P````````(````?````_/________]L#P````````H` -XM```)````(P(```````![#P````````(````@````_/________^%#P`````` -XM``(````?````_/________^*#P````````H````)````@P(```````"9#P`` -XM``````(````@````_/________^C#P````````(````?````_/________^H -XM#P````````H````)````;0(```````"W#P````````(````@````_/______ -XM__^\#P````````H````)````JP$```````#&#P````````(````H````_/__ -XM_______0#P````````(````?````_/_________5#P````````H````)```` -XM"`(```````#D#P````````(````@````_/_________N#P````````(````? -XM````_/_________S#P````````H````)````50(````````"$`````````(` -XM```@````_/________\F$`````````(````\````_/________\Q$``````` -XM``(````]````_/________]E$`````````(````\````_/________]P$``` -XM``````(````]````_/________^D$`````````(````]````_/________^N -XM$`````````(````^````_/________^W$`````````(````]````_/______ -XM__^_$`````````(````^````_/_________3$`````````(````_````_/__ -XM_______B$`````````(````_````_/________\W$0````````H````)```` -XMI@````````!7$0````````(```!!````_/________^`$0````````H````) -XM````K@````````"2$0````````H````)````M@````````#J$0````````(` -XM```S````_/________\,$@````````(```!"````_/________\A$@`````` -XM``(````J````_/________\[$@````````(````S````_/________]9$@`` -XM``````(````9````_/_________!$@````````(````C````_/________\" -XM$P````````(````S````_/________^I$P````````(````U````_/______ -XM___!$P````````(````R````_/________\)%`````````(````I````_/__ -XM______\9%`````````(````Q````_/________]@%`````````(````J```` -XM_/________]M%`````````(````C````_/________][%`````````(````\ -XM````_/________^*%`````````(````]````_/_________6%`````````(` -XM``!#````_/________\V%0````````(```!#````_/________]0%0`````` -XM``(````Q````_/________]<%0````````(````U````_/________]T%0`` -XM``````(```!#````_/________^B%0````````(```!"````_/________^W -XM%0````````(````Q````_/_________`%0````````(````U````_/______ -XM___4%0````````H````)````O@(```````#@%0````````(````H````_/__ -XM_______G%0````````(````]````_/_________Q%0````````(````^```` -XM_/________\E%@````````(````J````_/________]#%@````````(```!$ -XM````_/________]G%@````````(````<````_/________][%@````````(` -XM```Z````_/________^1%@````````(```!%````_/________^J%@`````` -XM``(````S````_/_________:%@````````(````_````_/_________I%@`` -XM``````(````S````_/________\3%P````````(````?````_/________\8 -XM%P````````H````)`````P$````````G%P````````(````@````_/______ -XM__\L%P````````H````)````L`(````````V%P````````(````H````_/__ -XM______]`%P````````(````?````_/________]%%P````````H````)```` -XMD0$```````!4%P````````(````@````_/________]>%P````````(````? -XM````_/________]C%P````````H````)````/P(```````!R%P````````(` -XM```@````_/________]\%P````````(````?````_/________^!%P`````` -XM``H````)````F0(```````"0%P````````(````@````_/________^5%P`` -XM``````(````C````_/_________%%P````````(````P````_/________]A -XM`P````````(````D````_/________\&``````````H````%```````````` -XM```,``````````H````6````1P@````````1``````````H````6`````0(` -XM```````5``````````H````6````0P8````````9``````````$````"```` -XM```````````A``````````$````"````WA<````````I``````````H````' -XM```````````````P``````````H````6````_P<````````W``````````H` -XM```6````+P<````````^``````````H````6````Z04```````!#```````` -XM``H````6````7`(```````!0``````````H````6````%P@```````!<```` -XM``````H````6````3P<```````!I``````````H````6````<0````````!N -XM``````````H````6````;`4```````![``````````H````6````\P4````` -XM``"```````````H````6````-`,```````"-``````````H````6````Y08` -XM``````"4``````````H````6````9P@```````";``````````H````6```` -XMX@$```````"@``````````H````6````<`8```````"P``````````H````6 -XM````\0<```````"]``````````H````6````F`,```````#"``````````H` -XM```6````BP4```````#-``````````H````6````K0$```````#8```````` -XM``H````6````.@8```````#T``````````H````6````!`,```````#_```` -XM``````H````6````VP$````````*`0````````H````6````KP<````````6 -XM`0````````H````6````>`0````````D`0````````H````6````C``````` -XM```Y`0````````H````6````.`(```````!L`0````````H````6````I0`` -XM``````!Z`0````````H````6````F00```````"6`0````````H````6```` -XMG`````````"D`0````````H````6````?0$```````"R`0````````H````6 -XM````^@,```````#``0````````H````6````%P$```````#.`0````````H` -XM```6````T0@```````#<`0````````H````6````L04```````#X`0`````` -XM``H````6````+@4````````4`@````````H````6````UP@````````B`@`` -XM``````H````6````D0@````````^`@````````H````6````R@8```````!- -XM`@````````H````6````<@(```````#3`@````````H````6````$P`````` -XM``#_`@````````H````6````KP@````````,`P````````H````6````1P0` -XM```````1`P````````H````6````R0<````````<`P````````H````6```` -XMM@`````````_`P````````H````6````T@4```````!-`P````````H````6 -XM````A0,```````!<`P````````H````6````B`0```````!G`P````````H` -XM```6``````````````!R`P````````H````6````/P,```````!]`P`````` -XM``H````6````?@0```````"(`P````````H````6````I`@```````"3`P`` -XM``````H````6````,00```````"F`P````````H````6````"0<```````"T -XM`P````````H````6````D@<```````#"`P````````H````6````M@<````` -XM``#0`P````````H````6````K`````````#>`P````````H````6````I0$` -XM``````#L`P````````H````6````QP````````#Z`P````````H````6```` -XM8@`````````(!`````````H````6````L@,````````6!`````````H````6 -XM````\``````````D!`````````H````6````L`(````````R!`````````H` -XM```6````!@8```````!`!`````````H````6````9@$```````!.!``````` -XM``H````6````VP4```````!!0````````H````6````T@4````````L!0`````` -XM``H````6````A0,````````[!0````````H````6````E`4```````!1!0`` -XM``````H````6````.P@```````!7!0````````H````6````-P$```````!B -XM!0````````H````6````2P$```````!P!0````````H````6````(P4````` -XM``!V!0````````H````6````N00```````!\!0````````H````6````G0,` -XM``````""!0````````H````6````>P,```````"(!0````````H````6```` -XM500```````".!0````````H````6````M`@```````"4!0````````H````6 -XM````C`,```````":!0````````H````6````5P````````"@!0````````H` -XM```6````;P,```````"F!0````````H````6````IP,```````"L!0`````` -XM``H````6````/00```````"R!0````````H````6````6@<```````"X!0`` -XM``````H````6````*`8```````"^!0````````H````6````^0(```````#$ -XM!0````````H````6````Z00```````#*!0````````H````6````Q0@````` -XM``#0!0````````H````6````'0$```````#6!0````````H````6````@@(` -XM``````#0<```````#%!@````````H````6````^0````````#0!@````````H` -XM```6````T0$```````#;!@````````H````6````R04```````#N!@`````` -XM``H````6````'@8```````#]!@````````H````6````8`0````````)!P`` -XM``````H````6````L08````````7!P````````H````6````A0$````````T -XM!P````````H````6````'@8```````!#!P````````H````6````O@4````` -XM``!/!P````````H````6````L08```````!=!P````````H````6````#P4` -XM``````!K!P````````H````6````=@4```````!Y!P````````H````6```` -XMN@,```````"5!P````````H````6````^@$```````"C!P````````H````6 -XM````"`0```````"Q!P````````H````6````H`$```````"_!P````````H` -XM```6````XP4```````#-!P````````H````6````/0````````#;!P`````` -XM``H````6````%P0```````#I!P````````H````6````P08````````&"``` -XM``````H````6````'@8````````5"`````````H````6````C@$````````A -XM"`````````H````6````L08````````O"`````````H````6````@@<````` -XM```]"`````````H````6````R@0```````!+"`````````H````6````+0`` -XM``````!H"`````````H````6````"0$```````!V"`````````H````6```` -XMM@$```````"%"`````````H````6````F@8```````"1"`````````H````6 -XM````L08```````#P"`````````H````6````OP@```````#^"`````````H` -XM```6````*@<````````:"0````````H````6````5`$````````H"0`````` -XM``H````6````_@0````````V"0````````H````6````D@0```````!$"0`` -XM``````H````6````*@@```````!2"0````````H````6````GP<```````!U -XM"0````````H````6````"0$```````"#"0````````H````6````M@$````` -XM``"2"0````````H````6````#`(```````">"0````````H````6````VP8` -XM``````"L"0````````H````6````P`<```````##"0````````H````6```` -XM'@8```````#2"0````````H````6````V0`````````("@````````H````6 -XM````*@<````````6"@````````H````6````/0`````````D"@````````H` -XM```6````F0<````````R"@````````H````6````)0,```````!/"@`````` -XM``H````6````R`,```````!5"@````````H````6````SP````````!;"@`` -XM``````H````6````GP0```````!A"@````````H````6````H0(```````!G -XM"@````````H````6````H@8```````!V"@````````H````6````)P(````` -XM``"$"@````````H````6````ZP,```````"A"@````````H````6````)P(` -XM``````"O"@````````H````6````ZP,```````#,"@````````H````6```` -XM)P(```````#:"@````````H````6````ZP,```````#W"@````````H````6 -XM````)P(````````%"P````````H````6````ZP,````````B"P````````H` -XM```6````)P(````````P"P````````H````6````ZP,```````!'"P`````` -XM``H````6````VP8```````!5"P````````H````6````P`<```````!L"P`` -XM``````H````6````8@4```````!["P````````H````6````1P(```````"' -XM"P````````H````6````70$```````"5"P````````H````6````LP0````` -XM``"C"P````````H````6````0`(```````#;"P````````H````6````E08` -XM``````#I"P````````H````6````P0,```````#W"P````````H````6```` -XM4``````````%#`````````H````6````;@@````````3#`````````H````6 -XM````%P<````````A#`````````H````6````2@,````````O#`````````H` -XM```6````OP$````````]#`````````H````6````G@4```````!+#``````` -XM``H````6````2P4```````!9#`````````H````6````W@(```````!G#``` -XM``````H````6````0`@```````!U#`````````H````6````0@4```````"# -XM#`````````H````6````^0<```````"1#`````````H````6````+@,````` -XM``"?#`````````H````6````)00```````"M#`````````H````6````-P`` -XM``````"[#`````````H````6````:`0```````#*#`````````H````6```` -XMUP(```````#9#`````````H````6````/P$```````#H#`````````H````6 -XM````<@$```````#W#`````````H````6````F0<````````�````````H` -XM```6````<@<````````<#0````````H````6````?@@````````C#0`````` -XM``$````"```````````````K#0````````$````"````<`````````!H#0`` -XM``````H````6````-04```````!P#0````````$````"````<`````````!X -XM#0````````$````"````)@(```````"`#0````````H````2```````````` -XM``"4#0````````H````2````.0````````"B#0````````H````2````@@`` -XM``````"G#0````````H````6````TP,```````"R#0````````H````2```` -XMN`````````#.#0````````H````6````1`````````#6#0````````$````" -XM````,`(```````#>#0````````$````"````+`,```````#F#0````````H` -XM```2````%`$```````#Z#0````````H````2````B0$````````(#@`````` -XM``H````2````T@$````````6#@````````H````2````"`(````````K#@`` -XM``````H````6`````00````````V#@````````H````2````40(````````[ -XM#@````````H````6````:@,```````!(#@````````H````6````#@8````` -XM``!0#@````````$````"````,`,```````!8#@````````$````"````FP,` -XM``````!@#@````````H````2````AP(```````!T#@````````H````2```` -XMOP(```````!Y#@````````H````6````L08```````"$#@````````H````2 -XM````]0(```````"2#@````````H````2````40,```````"9#@````````H` -XM```6````6@8```````"A#@````````$````"````H`,```````"I#@`````` -XM``$````"````B04```````"Q#@````````H````2````F@,```````#%#@`` -XM``````H````2````-P0```````#4#@````````H````2````DP0```````#9 -XM#@````````H````6````P0````````#D#@````````H````2````R00````` -XM``#]#@````````H````2````_P0````````,#P````````H````2````2`4` -XM```````C#P````````H````6````E@$````````K#P````````$````"```` -XMD`4````````S#P````````$````"````A`8````````[#P````````H````2 -XM````?@4```````!-#P````````H````2````W@4```````!<#P````````H` -XM```2````308```````!K#P````````H````2````E@8```````!P#P`````` -XM``H````6`````00```````![#P````````H````2````WP8```````""#P`` -XM``````H````6````]`0```````"*#P````````$````"````D`8```````"2 -XM#P````````$````"````R0<```````":#P````````H````2````%0<````` -XM``"N#P````````H````2````3@<```````"]#P````````H````2````EP<` -XM``````#,#P````````H````2````S0<```````#1#P````````H````6```` -XML08```````#<#P````````H````2````%@@````````#$`````````H````6 -XM````O`(````````+$`````````$````"````T`<````````3$`````````$` -XM```"````_P@````````;$`````````H````2````7P@````````O$``````` -XM``H````2````Z`@````````]$`````````H````2````,0D```````!=$``` -XM``````H````2````9PD```````!D$`````````H````6````%@4```````!P -XM$`````````$````"``````D```````!X$`````````$````"````_PD````` -XM``"`$`````````H````2````(@H```````"4$`````````H````2````@PH` -XM``````"B$`````````H````2````S`H```````"G$`````````H````6```` -XM,@(```````"R$`````````H````2````[PH```````#'$`````````H````6 -XM````*P0```````#2$`````````H````2````$@L```````#9$`````````H` -XM```6````X0````````#D$`````````$````"``````H```````#L$``````` -XM``$````"````H@H```````#T$`````````H````2````2`L````````'$0`` -XM``````H````2````T`L````````,$0````````H````6````L08````````6 -XM$0````````H````2````+`P````````E$0````````H````2````B`P````` -XM```T$0````````H````2````Y`P````````Z$0````````H````6````>08` -XM``````!%$0````````$````"````L`H```````!-$0````````$````"```` -XMT@H```````!5$0````````H````2````&@T```````!H$0````````H````2 -XM````4@T```````!M$0````````H````6````L08```````!W$0````````H` -XM```2````=0T```````"&$0````````H````2````F`T```````",$0`````` -XM``H````6````Z`$```````"7$0````````$````"````X`H```````"?$0`` -XM``````$````"````%PL```````"G$0````````H````2````NPT```````"Z -XM$0````````H````2````\PT```````"_$0````````H````6````L08````` -XM``#)$0````````H````2````%@X```````#8$0````````H````2````.0X` -XM``````#>$0````````H````6````'`````````#O$0````````H````6```` -XML08```````#Z$0````````H````6````"P`````````E$@````````H````6 -XM````U`<````````P$@````````$````"````(`L````````X$@````````$` -XM```"````8`P```````!`$@````````H````2````;PX```````!3$@`````` -XM``H````2````J`X```````!8$@````````H````6````L08```````!B$@`` -XM``````H````2````\0X```````!G$@````````H````5``````````````!Z -XM$@````````H````2````8`\```````"$$@````````$````"````E@L````` -XM``",$@````````$````"````^`L```````"<$@````````$````"````E@L` -XM``````"D$@````````$````"````W@L```````"^$@````````H````6```` -XMY0(```````#:$@````````H````6````V`,```````#E$@````````H````6 -XM````L08````````%$P````````H````6````]0,````````0$P````````H` -XM```6`````00````````=$P````````H````6````9P(````````D$P`````` -XM``$````"````8`P````````L$P````````$````"````!A`````````T$P`` -XM``````H````2````J0\```````!'$P````````H````2````6A````````!4 -XM$P````````H````2````HQ````````!9$P````````H````6````L08````` -XM``!C$P````````H````2````_Q````````!Q$P````````H````2````NA$` -XM``````"%$P````````H````6````]0,```````"4$P````````H````6```` -XM`00```````">$P````````H````2````\!$```````"G$P````````H````5 -XM````0`````````"Y$P````````H````5````D`````````#"$P````````H` -XM```2````)A(```````#4$P````````H````2````;Q(```````#F$P`````` -XM``H````2````WA(```````#N$P````````H````6````>@(````````=%``` -XM``````H````6````W0@````````E%`````````$````"````$!`````````M -XM%`````````$````"````ZQ`````````U%`````````H````2````%!,````` -XM``!'%`````````H````2````=!,```````!6%`````````H````2````T!,` -XM``````!D%`````````H````2````+!0```````!M%`````````H````5```` -XM8`$```````!]%`````````H````2````8A0```````",%`````````H````5 -XM````D`$```````"8%`````````H````2````OA0```````"A%`````````H` -XM```2````&A4```````"H%`````````H````6````*@$```````#6%``````` -XM``H````6````L08```````#Z%`````````H````6````7`4````````&%0`` -XM``````H````6````$0<````````=%0````````H````6`````00````````S -XM%0````````H````6````N`4```````!8%0````````H````6````/0<````` -XM``!T%0````````H````6````L08```````"`%0````````H````6````V@0` -XM``````"P%0````````H````6````$00```````"\%0````````H````6```` -XM(0(````````4%@````````H````6````$@$````````A%@````````H````6 -XM````?@4````````]%@````````H````6````R@0```````!I%@````````H` -XM```6`````00```````!\%@````````H````6````D`(```````"8%@`````` -XM``H````6````L08```````"O%@````````H````6````?@````````#2%@`` -XM``````H````6`````00```````#@%@````````H````6````90<```````#H -XM%@````````$````"````\!````````#P%@````````$````"````WA<````` -XM``#X%@````````H````2````=A4````````,%P````````H````2````)Q8` -XM```````:%P````````H````2````AQ8````````C%P````````H````5```` -XMX`$````````Y%P````````H````5````0`(```````!"%P````````H````2 -XM````O18```````!+%P````````H````2````!A<```````!F%P````````H` -XM```2````3Q<```````!O%P````````H````2````OA<```````!X%P`````` -XM``H````2````+1@```````"!%P````````H````2````B1@```````";%P`` -XM``````H````5````@`,```````"K%P````````H````2````TA@```````"Z -XM%P````````H````5````L`,```````#0%P````````H````5````$`0````` -XM``#9%P````````H````2````"!D```````#B%P````````H````2````/AD` -XM``````#U%P````````H````2````VQD````````#&`````````H````2```` -XM71H````````,&`````````H````2````WQH````````H&`````````H````5 -XM````,`4````````Z&`````````H````5````<`4```````!#&`````````H` -XM```2````AQL```````!6&`````````H````2````51P```````!C&``````` -XM``$````"````#10```````!K&`````````$````"````,10```````"%&``` -XM``````$````"````'10```````"-&`````````$````"````,10```````": -XM&`````````H````2````GAP```````"E&`````````H````5````T`4````` -XM``"R&`````````H````5````,`8```````"[&`````````H````2````YQP` -XM``````#$&`````````H````2````:1T```````#-&`````````H````5```` -XML`8```````#9&`````````H````2````LAT```````#G&`````````H````6 -XM````;@0```````#T&`````````H````6````3P(```````#%``````````$` -XM```"```````````````<``````````H````0```````````````@```````` -XM``$````"```````````````T``````````H````0```````````````X```` -XM``````$````"````<`````````!<``````````H````0``````````````!@ -XM``````````$````"````,`(```````",``````````H````0```````````` -XM``"0``````````$````"````,`,```````"L``````````H````0```````` -XM``````"P``````````$````"````H`,```````#D``````````H````0```` -XM``````````#H``````````$````"````D`4````````,`0````````H````0 -XM```````````````0`0````````$````"````D`8````````T`0````````H` -XM```0```````````````X`0````````$````"````T`<```````!D`0`````` -XM``H````0``````````````!H`0````````$````"``````D```````",`0`` -XM``````H````0``````````````"0`0````````$````"``````H```````"\ -XM`0````````H````0``````````````#``0````````$````"````L`H````` -XM``#<`0````````H````0``````````````#@`0````````$````"````X`H` -XM``````#\`0````````H````0`````````````````@````````$````"```` -XM(`L````````D`@````````H````0```````````````H`@````````$````" -XM````8`P```````!D`@````````H````0``````````````!H`@````````$` -XM```"````$!````````",`@````````H````0``````````````"0`@`````` -XM``$````"````\!`````````@``````````H````"```````````````X```` -XM``````H````"````<`````````!8``````````H````"````,`(```````"` -XM``````````H````"````,`,```````"8``````````H````"````H`,````` -XM``#(``````````H````"````D`4```````#H``````````H````"````D`8` -XM```````(`0````````H````"````T`<````````P`0````````H````"```` -XM``D```````!0`0````````H````"``````H```````!X`0````````H````" -XM````L`H```````"0`0````````H````"````X`H```````"H`0````````H` -XM```"````(`L```````#(`0````````H````"````8`P``````````@`````` -XM``H````"````$!`````````@`@````````H````"````\!`````````&```` -XM``````H````&```````````````&``````````H````&```````````````0 -XM``````````$````"```````````````````````````````````````````` -XM````````````````````````````````````````````````````````&P`` -XM``@````&````````````````````0`````````#>%P`````````````````` -XM$````````````````````"$````$````0````````````````````%!=```` -XM````D!4````````9`````0````@`````````&``````````L````"`````,` -XM``````````````````!````````````````````````````````$```````` -XM````````````,@````@````#````````````````````0``````````````` -XM````````````````!````````````````````#<````!```````````````` -XM`````````$``````````=0,```````````````````$````````````````` -XM``!%`````0````````````````````````"U`P````````(9```````````` -XM```````!````````````````````40````0```!````````````````````` -XMX'(````````@*````````!D````&````"``````````8`````````&(````! -XM`````````````````````````+<<````````@@0```````````````````$` -XM``````````````````!N````!````$``````````````````````FP`````` -XM`!@`````````&0````@````(`````````!@`````````?P````$````````` -XM````````````````.2$````````P`````````````````````0`````````` -XM`````````(@````(````,@```````````````````&DA````````UP(````` -XM``````````````$``````````0````````"7````"````#(````````````` -XM``````!P(0```````"T````````````````````(``````````$````````` -XMI@````$`````````````````````````<"$```````#(`@`````````````` -XM````"````````````````````+,````$````0````````````````````!B; -XM``````````,````````9````#0````@`````````&`````````#%````"``` -XM``(````````````````````X)````````%`"```````````````````(```` -XM````````````````SP````0```!`````````````````````&)X```````"` -XM`0```````!D````/````"``````````8`````````-X````!```````````` -XM`````````````#@D````````#AX```````````````````$````````````` -XM``````#I`````0````````````````````````!&0@```````+L````````` -XM```````````!````````````````````^0````0```!````````````````` -XM````F)\````````8`````````!D````2````"``````````8``````````X! -XM```!``````````````````````````%#````````,``````````````````` -XM``$````````````````````=`0``!````$````````````````````"PGP`` -XM`````#``````````&0```!0````(`````````!@`````````,0$```$````` -XM````````````````````,4,```````#@!@```````````````````0`````` -XM`````````````#\!```!````,````````````````````!%*````````Z`@` -XM``````````````````$``````````0`````````1`````P`````````````` -XM``````````#Y4@```````$H!```````````````````!```````````````` -XM`````0````(`````````````````````````2%0```````"0!@```````!H` -XM```8````"``````````8``````````D````#```````````````````````` -XI`-A:````````=P(```````````````````$````````````````````` -X` -Xend -eb2ac2808b7045ab3c2faf26922f5e01 -echo x - sections.o.uu -sed 's/^X//' >sections.o.uu << 'f3eccedeeefe85afebc666fca5eb0742' -Xbegin 644 sections.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q```` -XM`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -XM````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -XM`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -XM9EP"```+7W```F50````"(W`*``````)\W@(```(C -XM=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -XM``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -XM```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -XM5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -XM`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -XM```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -XM`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -XM`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -XM""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -XM`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -XM"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -XM````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -XM%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -XM!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -XM"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -XM```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -XM``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -XM"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -XM``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -XM-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -XM``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -XM(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -XM````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -XM"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -XM"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -XM`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -XM``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -XM``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -XM````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -XM"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -XM```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -XM"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -XM!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -XM60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -XM```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -XM```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -XMHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -XM``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -XM%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -XM"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -XM`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -XM`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -XM"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -XM``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -XM``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -XM`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -XM!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -XM`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -XM".@````F``````$X`50``````````````````````````````+T2```C96-P -XM``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -XM```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -XM.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -XM%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -XM@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -XMQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -XM``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -XM`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -XM`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -XM-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -XM``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -XM`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -XM+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -XM`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -XM20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -XMO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -XM($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -XM!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -XM`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -XM86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -XM;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -XM'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -XM`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -XM#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -XM@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -XMY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -XM0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -XM1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -XM1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -XM`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -XM`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -XM!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -XM``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -XM`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -XM`````````````````````'``````````E@`````````!`%66`````````($! -XM`````````0!00` -XM``````"W!`````````$`42\%````````.04````````!`%$````````````` -XM````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -XM````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -XM`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -XM``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -XM````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -XM``````$`5DL&````````A`8````````!`%8`````````````````````J04` -XM```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -XM`````````0!3`````````````````````+P%````````OP4````````!`%"_ -XM!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -XM```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -XM4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -XMR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -XM`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -XM````````````````D`8```````"Y!@````````$`5+D&````````P08````` -XM```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -XM````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -XM`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -XM``````#)!P````````$`5@````````````````````#0!P```````-('```` -XM`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -XM=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -XM`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -XM````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -XM``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -XM``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -XM````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -XM````````````````````<@X```````!U#@````````$`4'4.````````@PX` -XM```````!`%1##P```````$T/`````````0!4`````````````````````-\, -XM````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -XM#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -XM`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -XM`!0/`````````0!0`````````````````````!`0````````$1`````````" -XM`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -XM````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -XM```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -XM5=P0````````X1`````````!`%4`````````````````````$!`````````U -XM$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -XM`0!4M!````````"[$`````````$`5``````````````````````B$``````` -XM`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -XM```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -XM````NQ`````````!`%3<$````````.80`````````0!4```````````````` -XM`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -XM``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -XM````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -XM$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -XM``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -XM`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -XM````````^1`````````"`'%P`````` -XM``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -XM``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -XM````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -XM`````&(7`````````0!4`````````````````````"$1````````=A$````` -XM```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -XM````````)14````````!`%9$%0```````-X7`````````0!6```````````` -XM`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -XMWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -XM`-X7`````````0!<`````````````````````"$1````````?!$````````! -XM`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -XM````WA<````````!`%X`````````````````````$A<````````7%P`````` -XM``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -XM`````````````````+T1````````PA$````````!`%0#%0````````@5```` -XM`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -XM`````,05`````````0!0`````````````````````"$1`````````1,````` -XM```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -XMZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -XM``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -XM```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -XM5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -XM``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -XM````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -XM`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -XM```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -XM````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -XM`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -XM`````%@7`````````0!<`````````````````````"$1````````-A$````` -XM```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -XM````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -XM%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -XM#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -XM```T#@```````#H.````````+@X````````Q#@`````````````````````` -XM```````U$````````%,0````````W!````````#K$``````````````````` -XM``````````!W$````````(<0````````Q1````````#<$````````)40```` -XM````F!````````"+$````````)(0`````````````````````````````!(1 -XM````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -XM``,6````````U!8```````!/$@```````,`2```````````````````````` -XM`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -XM%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -XM``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -XM``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -XME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -XM````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -XM````````*18````````L%@````````,6````````'18````````````````` -XM````````````M1$```````#@$0```````/L4````````%14````````````` -XM````````````````X!$```````!$$@```````"L7````````.A<````````E -XM%0```````.05````````L10```````#[%````````,`2````````!10````` -XM````````````````````````X!$```````!$$@```````"L7````````.A<` -XM``````#3%0```````.05````````$P```````+$3 -XM````````NA,````````K$P```````*43````````'1,````````A$P`````` -XM``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -XM`````,`2````````YA(`````````````````````````````X!$```````!$ -XM$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -XM`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -XM``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -XM`````````````````````#$4````````L10````````0%P```````"L7```` -XM````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -XM`````````````````````````````#$4````````6!0````````7%P`````` -XM`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -XM`````+$4````````:A0```````!L%````````&04````````9Q0````````` -XM````````````````````CA0```````"Q%````````-06````````XQ8````` -XM````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -XM9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -XM4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -XM2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -XM;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -XM7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -XM`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -XM1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -XM96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -XM````B`,````````"````)````/S_________C0,````````*````"0```+8` -XM````````E0,````````"````)````/S_________O0,````````*````"0`` -XM`+8`````````]0,````````"````)@```/S_________$`0````````"```` -XM)P```/S_________;P0````````"````&@```/S_________LP0````````" -XM````&0```/S_________V@0````````"````&P```/S_________!@4````` -XM```"````'P```/S_________"P4````````*````"0```,``````````&@4` -XM```````"````(````/S_________'P4````````*````"0```-@````````` -XM*P4````````"````*````/S_________-04````````"````'P```/S_____ -XM____.@4````````*````"0```!X`````````204````````"````(````/S_ -XM________4P4````````"````'P```/S_________6`4````````*````"0`` -XM`.4`````````9P4````````"````(````/S_________<04````````"```` -XM'P```/S_________=@4````````*````"0```#<`````````A04````````" -XM````(````/S_________M04````````"````&@```/S__________@4````` -XM```"````*@```/S_________"P8````````"````(P```/S_________408` -XM```````"````'P```/S_________5@8````````*````"0```!X````````` -XM908````````"````(````/S_________;`8````````"````'P```/S_____ -XM____<08````````*````"0````,!````````@`8````````"````(````/S_ -XM________O08````````"````&0```/S_________T08````````"````&0`` -XM`/S_________/P<````````"````&P```/S_________=0<````````"```` -XM'P```/S_________>@<````````*````"0```!P!````````B0<````````" -XM````(````/S_________DP<````````"````'P```/S_________F`<````` -XM```*````"0```#H!````````IP<````````"````(````/S_________L0<` -XM```````"````'P```/S_________M@<````````*````"0```%@!```````` -XMQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -XM____;@@````````"````&P```/S_________LP@````````*````"P`````` -XM````````N@@````````"````+0```/S_________R0@````````"````'P`` -XM`/S_________S@@````````*````"0```',!````````W0@````````"```` -XM(````/S_________YP@````````"````'P```/S_________[`@````````* -XM````"0```%@!````````^P@````````"````(````/S_________$0D````` -XM```"````+P```/S_________*0D````````"````)P```/S_________>@D` -XM```````"````,````/S_________N`D````````"````'P```/S_________ -XMO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -XM____U@D````````"````'P```/S_________VPD````````*````"0```+D! -XM````````Z@D````````"````(````/S_________[PD````````*````"0`` -XM`*L!````````^PD````````"````(````/S_________,0H````````"```` -XM,@```/S_________5`H````````"````,P```/S_________:PH````````" -XM````-````/S_________E`H````````*````"0```-$!````````G@H````` -XM```"````(````/S_________MPH````````"````,0```/S_________YPH` -XM```````"````,0```/S_________0@L````````*````"0```+8````````` -XM:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -XM````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -XM````````JPL````````+````"0```.H!````````M`L````````+````"0`` -XM`/P!````````O0L````````+````"0````("````````X@L````````"```` -XM-0```/S_________\`L````````"````-@```/S_________(@P````````" -XM````,0```/S_________?PP````````"````)P```/S_________DPP````` -XM```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -XM```````"````.0```/S__________PP````````"````&0```/S_________ -XM'0T````````"````.@```/S_________5`T````````*````"0```+8````` -XM````?@T````````"````)@```/S_________DPT````````"````'````/S_ -XM________N`T````````*````"0```*8`````````T@T````````*````"0`` -XM`*X`````````$0X````````"````.````/S_________*@X````````"```` -XM.0```/S_________/@X````````"````'````/S_________3@X````````" -XM````&0```/S_________:PX````````"````.@```/S_________FPX````` -XM```"````)P```/S_________W`X````````"````.P```/S_________]PX` -XM```````"````*P```/S_________`0\````````"````(P```/S_________ -XM$`\````````"````'P```/S_________%0\````````*````"0```(X````` -XM````)`\````````"````(````/S_________*0\````````"````(P```/S_ -XM________20\````````"````'P```/S_________3@\````````*````"0`` -XM`#\"````````70\````````"````(````/S_________9P\````````"```` -XM'P```/S_________;`\````````*````"0```","````````>P\````````" -XM````(````/S_________A0\````````"````'P```/S_________B@\````` -XM```*````"0```(,"````````F0\````````"````(````/S_________HP\` -XM```````"````'P```/S_________J`\````````*````"0```&T"```````` -XMMP\````````"````(````/S_________O`\````````*````"0```*L!```` -XM````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -XM________U0\````````*````"0````@"````````Y`\````````"````(``` -XM`/S_________[@\````````"````'P```/S_________\P\````````*```` -XM"0```%4"`````````A`````````"````(````/S_________)A`````````" -XM````/````/S_________,1`````````"````/0```/S_________91`````` -XM```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -XM/0```/S_________UA0````````"````0P```/S_________-A4````````" -XM````0P```/S_________4!4````````"````,0```/S_________7!4````` -XM```"````-0```/S_________=!4````````"````0P```/S_________HA4` -XM```````"````0@```/S_________MQ4````````"````,0```/S_________ -XMP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -XM````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -XM________\14````````"````/@```/S_________)18````````"````*@`` -XM`/S_________0Q8````````"````1````/S_________9Q8````````"```` -XM'````/S_________>Q8````````"````.@```/S_________D18````````" -XM````10```/S_________JA8````````"````,P```/S_________VA8````` -XM```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -XM```````"````'P```/S_________&!<````````*````"0````,!```````` -XM)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -XM````-A<````````"````*````/S_________0!<````````"````'P```/S_ -XM________11<````````*````"0```)$!````````5!<````````"````(``` -XM`/S_________7A<````````"````'P```/S_________8Q<````````*```` -XM"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -XM````C0`````````*````%@```.4&````````E``````````*````%@```&<( -XM````````FP`````````*````%@```.(!````````H``````````*````%@`` -XM`'`&````````L``````````*````%@```/$'````````O0`````````*```` -XM%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -XM````%@```*T!````````V``````````*````%@```#H&````````]``````` -XM```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -XM```````*````%@```*\'````````%@$````````*````%@```'@$```````` -XM)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -XM````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -XM````````E@$````````*````%@```)P`````````I`$````````*````%@`` -XM`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -XM%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -XM`/H!````````HP<````````*````%@````@$````````L0<````````*```` -XM%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -XM````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -XM```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -XM```````*````%@```(X!````````(0@````````*````%@```+$&```````` -XM+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -XM````2P@````````*````%@```"T`````````:`@````````*````%@````D! -XM````````=@@````````*````%@```+8!````````A0@````````*````%@`` -XM`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -XM%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -XM````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -XM```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -XM```````*````%@```)\'````````=0D````````*````%@````D!```````` -XM@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -XM````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -XM````````PPD````````*````%@```!X&````````T@D````````*````%@`` -XM`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -XM%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -XM````%@```"4#````````3PH````````*````%@```,@#````````50H````` -XM```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -XM```````*````%@```*$"````````9PH````````*````%@```*(&```````` -XM=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -XM````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -XM````````S`H````````*````%@```"<"````````V@H````````*````%@`` -XM`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -XM%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -XM````%@```.L#````````1PL````````*````%@```-L&````````50L````` -XM```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -XM```````*````%@```$<"````````APL````````*````%@```%T!```````` -XME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -XM````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -XM````````]PL````````*````%@```%``````````!0P````````*````%@`` -XM`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -XM%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -XM````%@```)X%````````2PP````````*````%@```$L%````````60P````` -XM```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -XM```````*````%@```$(%````````@PP````````*````%@```/D'```````` -XMD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -XM````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -XM````````R@P````````*````%@```-<"````````V0P````````*````%@`` -XM`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -XM%@```)D'````````!@T````````*````%@```'('````````'`T````````* -XM````%@```'X(````````(PT````````!`````@``````````````*PT````` -XM```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -XM```````!`````@```'``````````>`T````````!`````@```"8"```````` -XM@`T````````*````$@``````````````E`T````````*````$@```#D````` -XM````H@T````````*````$@```((`````````IPT````````*````%@```-,# -XM````````L@T````````*````$@```+@`````````S@T````````*````%@`` -XM`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -XM`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -XM````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -XM```*````$@````@"````````*PX````````*````%@````$$````````-@X` -XM```````*````$@```%$"````````.PX````````*````%@```&H#```````` -XM2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -XM````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -XM````````=`X````````*````$@```+\"````````>0X````````*````%@`` -XM`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -XM$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -XM`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -XM```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -XM```````*````$@```),$````````V0X````````*````%@```,$````````` -XMY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -XM````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -XM````````*P\````````!`````@```)`%````````,P\````````!`````@`` -XM`(0&````````.P\````````*````$@```'X%````````30\````````*```` -XM$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -XM````$@```)8&````````<`\````````*````%@````$$````````>P\````` -XM```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -XM```````!`````@```)`&````````D@\````````!`````@```,D'```````` -XMF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -XM````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -XM````````T0\````````*````%@```+$&````````W`\````````*````$@`` -XM`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -XM`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -XM````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -XM```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -XM```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -XM````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -XM````````IQ`````````*````%@```#("````````LA`````````*````$@`` -XM`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -XM$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -XM`````@`````*````````[!`````````!`````@```*(*````````]!`````` -XM```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -XM```````*````%@```+$&````````%A$````````*````$@```"P,```````` -XM)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -XM````.A$````````*````%@```'D&````````11$````````!`````@```+`* -XM````````31$````````!`````@```-(*````````51$````````*````$@`` -XM`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -XM%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -XM````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -XM```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -XM```````*````$@```+L-````````NA$````````*````$@```/,-```````` -XMOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -XM````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -XM````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -XM``L`````````)1(````````*````%@```-0'````````,!(````````!```` -XM`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -XM````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -XM```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -XM```````*````%0``````````````>A(````````*````$@```&`/```````` -XMA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -XM````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -XM````````OA(````````*````%@```.4"````````VA(````````*````%@`` -XM`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -XM%@```/4#````````$!,````````*````%@````$$````````'1,````````* -XM````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -XM```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -XM```````*````$@```%H0````````5!,````````*````$@```*,0```````` -XM61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -XM````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -XM````````E!,````````*````%@````$$````````GA,````````*````$@`` -XM`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -XM%0```)``````````PA,````````*````$@```"82````````U!,````````* -XM````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -XM```*````%@```'H"````````'10````````*````%@```-T(````````)10` -XM```````!`````@```!`0````````+10````````!`````@```.L0```````` -XM-10````````*````$@```!03````````1Q0````````*````$@```'03```` -XM````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -XM````````;10````````*````%0```&`!````````?10````````*````$@`` -XM`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -XM$@```+X4````````H10````````*````$@```!H5````````J!0````````* -XM````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -XM```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -XM```````*````%@````$$````````,Q4````````*````%@```+@%```````` -XM6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -XM````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -XM````````O!4````````*````%@```"$"````````%!8````````*````%@`` -XM`!(!````````(18````````*````%@```'X%````````/18````````*```` -XM%@```,H$````````:18````````*````%@````$$````````?!8````````* -XM````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -XM```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -XM```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -XM\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -XM````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -XM````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -XM`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -XM$@````87````````9A<````````*````$@```$\7````````;Q<````````* -XM````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -XM```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -XM```````*````$@```-(8````````NA<````````*````%0```+`#```````` -XMT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -XM````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -XM`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -XM`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -XM%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -XM````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -XM```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -XM```````!`````@```#$4````````FA@````````*````$@```)X<```````` -XMI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -XM````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -XM````````S1@````````*````%0```+`&````````V1@````````*````$@`` -XM`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -XM%@```$\"````````Q0`````````!`````@``````````````'``````````* -XM````$```````````````(``````````!`````@``````````````-``````` -XM```*````$```````````````.``````````!`````@```'``````````7``` -XM```````*````$```````````````8``````````!`````@```#`"```````` -XMC``````````*````$```````````````D``````````!`````@```#`#```` -XM````K``````````*````$```````````````L``````````!`````@```*`# -XM````````Y``````````*````$```````````````Z``````````!`````@`` -XM`)`%````````#`$````````*````$```````````````$`$````````!```` -XM`@```)`&````````-`$````````*````$```````````````.`$````````! -XM`````@```-`'````````9`$````````*````$```````````````:`$````` -XM```!`````@`````)````````C`$````````*````$```````````````D`$` -XM```````!`````@`````*````````O`$````````*````$``````````````` -XMP`$````````!`````@```+`*````````W`$````````*````$``````````` -XM````X`$````````!`````@```.`*````````_`$````````*````$``````` -XM``````````(````````!`````@```"`+````````)`(````````*````$``` -XM````````````*`(````````!`````@```&`,````````9`(````````*```` -XM$```````````````:`(````````!`````@```!`0````````C`(````````* -XM````$```````````````D`(````````!`````@```/`0````````(``````` -XM```*`````@``````````````.``````````*`````@```'``````````6``` -XM```````*`````@```#`"````````@``````````*`````@```#`#```````` -XMF``````````*`````@```*`#````````R``````````*`````@```)`%```` -XM````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -XM````````,`$````````*`````@`````)````````4`$````````*`````@`` -XM```*````````>`$````````*`````@```+`*````````D`$````````*```` -XM`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -XM`````@```&`,``````````(````````*`````@```!`0````````(`(````` -XM```*`````@```/`0````````!@`````````*````!@``````````````!@`` -XM```````*````!@``````````````$``````````!`````@`````````````` -X` -Xend -f3eccedeeefe85afebc666fca5eb0742 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.err b/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.out b/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.sh deleted file mode 100755 index 1e9bf9ec..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-onlydebug-1/strip-onlydebug-1.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-onlydebug-1 tc/strip-onlydebug-1 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} --only-keep-debug -o sections.o.1 sections.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/in/strip-unneeded-1.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/in/strip-unneeded-1.in.shar deleted file mode 100644 index 4c9f000b..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/in/strip-unneeded-1.in.shar +++ /dev/null @@ -1,1129 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.uu -# -echo x - sections.o.uu -sed 's/^X//' >sections.o.uu << 'END-of-sections.o.uu' -Xbegin 644 sections.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q```` -XM`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -XM````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -XM`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -XM9EP"```+7W```F50````"(W`*``````)\W@(```(C -XM=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -XM``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -XM```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -XM5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -XM`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -XM```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -XM`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -XM`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -XM""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -XM`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -XM"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -XM````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -XM%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -XM!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -XM"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -XM```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -XM``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -XM"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -XM``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -XM-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -XM``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -XM(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -XM````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -XM"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -XM"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -XM`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -XM``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -XM``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -XM````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -XM"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -XM```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -XM"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -XM!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -XM60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -XM```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -XM```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -XMHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -XM``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -XM%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -XM"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -XM`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -XM`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -XM"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -XM``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -XM``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -XM`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -XM!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -XM`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -XM".@````F``````$X`50``````````````````````````````+T2```C96-P -XM``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -XM```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -XM.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -XM%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -XM@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -XMQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -XM``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -XM`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -XM`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -XM-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -XM``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -XM`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -XM+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -XM`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -XM20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -XMO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -XM($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -XM!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -XM`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -XM86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -XM;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -XM'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -XM`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -XM#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -XM@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -XMY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -XM0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -XM1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -XM1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -XM`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -XM`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -XM!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -XM``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -XM`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -XM`````````````````````'``````````E@`````````!`%66`````````($! -XM`````````0!00` -XM``````"W!`````````$`42\%````````.04````````!`%$````````````` -XM````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -XM````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -XM`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -XM``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -XM````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -XM``````$`5DL&````````A`8````````!`%8`````````````````````J04` -XM```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -XM`````````0!3`````````````````````+P%````````OP4````````!`%"_ -XM!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -XM```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -XM4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -XMR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -XM`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -XM````````````````D`8```````"Y!@````````$`5+D&````````P08````` -XM```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -XM````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -XM`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -XM``````#)!P````````$`5@````````````````````#0!P```````-('```` -XM`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -XM=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -XM`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -XM````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -XM``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -XM``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -XM````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -XM````````````````````<@X```````!U#@````````$`4'4.````````@PX` -XM```````!`%1##P```````$T/`````````0!4`````````````````````-\, -XM````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -XM#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -XM`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -XM`!0/`````````0!0`````````````````````!`0````````$1`````````" -XM`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -XM````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -XM```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -XM5=P0````````X1`````````!`%4`````````````````````$!`````````U -XM$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -XM`0!4M!````````"[$`````````$`5``````````````````````B$``````` -XM`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -XM```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -XM````NQ`````````!`%3<$````````.80`````````0!4```````````````` -XM`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -XM``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -XM````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -XM$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -XM``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -XM`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -XM````````^1`````````"`'%P`````` -XM``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -XM``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -XM````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -XM`````&(7`````````0!4`````````````````````"$1````````=A$````` -XM```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -XM````````)14````````!`%9$%0```````-X7`````````0!6```````````` -XM`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -XMWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -XM`-X7`````````0!<`````````````````````"$1````````?!$````````! -XM`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -XM````WA<````````!`%X`````````````````````$A<````````7%P`````` -XM``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -XM`````````````````+T1````````PA$````````!`%0#%0````````@5```` -XM`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -XM`````,05`````````0!0`````````````````````"$1`````````1,````` -XM```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -XMZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -XM``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -XM```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -XM5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -XM``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -XM````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -XM`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -XM```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -XM````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -XM`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -XM`````%@7`````````0!<`````````````````````"$1````````-A$````` -XM```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -XM````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -XM%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -XM#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -XM```T#@```````#H.````````+@X````````Q#@`````````````````````` -XM```````U$````````%,0````````W!````````#K$``````````````````` -XM``````````!W$````````(<0````````Q1````````#<$````````)40```` -XM````F!````````"+$````````)(0`````````````````````````````!(1 -XM````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -XM``,6````````U!8```````!/$@```````,`2```````````````````````` -XM`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -XM%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -XM``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -XM``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -XME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -XM````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -XM````````*18````````L%@````````,6````````'18````````````````` -XM````````````M1$```````#@$0```````/L4````````%14````````````` -XM````````````````X!$```````!$$@```````"L7````````.A<````````E -XM%0```````.05````````L10```````#[%````````,`2````````!10````` -XM````````````````````````X!$```````!$$@```````"L7````````.A<` -XM``````#3%0```````.05````````$P```````+$3 -XM````````NA,````````K$P```````*43````````'1,````````A$P`````` -XM``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -XM`````,`2````````YA(`````````````````````````````X!$```````!$ -XM$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -XM`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -XM``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -XM`````````````````````#$4````````L10````````0%P```````"L7```` -XM````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -XM`````````````````````````````#$4````````6!0````````7%P`````` -XM`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -XM`````+$4````````:A0```````!L%````````&04````````9Q0````````` -XM````````````````````CA0```````"Q%````````-06````````XQ8````` -XM````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -XM9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -XM4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -XM2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -XM;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -XM7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -XM`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -XM1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -XM96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -XM````B`,````````"````)````/S_________C0,````````*````"0```+8` -XM````````E0,````````"````)````/S_________O0,````````*````"0`` -XM`+8`````````]0,````````"````)@```/S_________$`0````````"```` -XM)P```/S_________;P0````````"````&@```/S_________LP0````````" -XM````&0```/S_________V@0````````"````&P```/S_________!@4````` -XM```"````'P```/S_________"P4````````*````"0```,``````````&@4` -XM```````"````(````/S_________'P4````````*````"0```-@````````` -XM*P4````````"````*````/S_________-04````````"````'P```/S_____ -XM____.@4````````*````"0```!X`````````204````````"````(````/S_ -XM________4P4````````"````'P```/S_________6`4````````*````"0`` -XM`.4`````````9P4````````"````(````/S_________<04````````"```` -XM'P```/S_________=@4````````*````"0```#<`````````A04````````" -XM````(````/S_________M04````````"````&@```/S__________@4````` -XM```"````*@```/S_________"P8````````"````(P```/S_________408` -XM```````"````'P```/S_________5@8````````*````"0```!X````````` -XM908````````"````(````/S_________;`8````````"````'P```/S_____ -XM____<08````````*````"0````,!````````@`8````````"````(````/S_ -XM________O08````````"````&0```/S_________T08````````"````&0`` -XM`/S_________/P<````````"````&P```/S_________=0<````````"```` -XM'P```/S_________>@<````````*````"0```!P!````````B0<````````" -XM````(````/S_________DP<````````"````'P```/S_________F`<````` -XM```*````"0```#H!````````IP<````````"````(````/S_________L0<` -XM```````"````'P```/S_________M@<````````*````"0```%@!```````` -XMQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -XM____;@@````````"````&P```/S_________LP@````````*````"P`````` -XM````````N@@````````"````+0```/S_________R0@````````"````'P`` -XM`/S_________S@@````````*````"0```',!````````W0@````````"```` -XM(````/S_________YP@````````"````'P```/S_________[`@````````* -XM````"0```%@!````````^P@````````"````(````/S_________$0D````` -XM```"````+P```/S_________*0D````````"````)P```/S_________>@D` -XM```````"````,````/S_________N`D````````"````'P```/S_________ -XMO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -XM____U@D````````"````'P```/S_________VPD````````*````"0```+D! -XM````````Z@D````````"````(````/S_________[PD````````*````"0`` -XM`*L!````````^PD````````"````(````/S_________,0H````````"```` -XM,@```/S_________5`H````````"````,P```/S_________:PH````````" -XM````-````/S_________E`H````````*````"0```-$!````````G@H````` -XM```"````(````/S_________MPH````````"````,0```/S_________YPH` -XM```````"````,0```/S_________0@L````````*````"0```+8````````` -XM:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -XM````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -XM````````JPL````````+````"0```.H!````````M`L````````+````"0`` -XM`/P!````````O0L````````+````"0````("````````X@L````````"```` -XM-0```/S_________\`L````````"````-@```/S_________(@P````````" -XM````,0```/S_________?PP````````"````)P```/S_________DPP````` -XM```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -XM```````"````.0```/S__________PP````````"````&0```/S_________ -XM'0T````````"````.@```/S_________5`T````````*````"0```+8````` -XM````?@T````````"````)@```/S_________DPT````````"````'````/S_ -XM________N`T````````*````"0```*8`````````T@T````````*````"0`` -XM`*X`````````$0X````````"````.````/S_________*@X````````"```` -XM.0```/S_________/@X````````"````'````/S_________3@X````````" -XM````&0```/S_________:PX````````"````.@```/S_________FPX````` -XM```"````)P```/S_________W`X````````"````.P```/S_________]PX` -XM```````"````*P```/S_________`0\````````"````(P```/S_________ -XM$`\````````"````'P```/S_________%0\````````*````"0```(X````` -XM````)`\````````"````(````/S_________*0\````````"````(P```/S_ -XM________20\````````"````'P```/S_________3@\````````*````"0`` -XM`#\"````````70\````````"````(````/S_________9P\````````"```` -XM'P```/S_________;`\````````*````"0```","````````>P\````````" -XM````(````/S_________A0\````````"````'P```/S_________B@\````` -XM```*````"0```(,"````````F0\````````"````(````/S_________HP\` -XM```````"````'P```/S_________J`\````````*````"0```&T"```````` -XMMP\````````"````(````/S_________O`\````````*````"0```*L!```` -XM````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -XM________U0\````````*````"0````@"````````Y`\````````"````(``` -XM`/S_________[@\````````"````'P```/S_________\P\````````*```` -XM"0```%4"`````````A`````````"````(````/S_________)A`````````" -XM````/````/S_________,1`````````"````/0```/S_________91`````` -XM```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -XM/0```/S_________UA0````````"````0P```/S_________-A4````````" -XM````0P```/S_________4!4````````"````,0```/S_________7!4````` -XM```"````-0```/S_________=!4````````"````0P```/S_________HA4` -XM```````"````0@```/S_________MQ4````````"````,0```/S_________ -XMP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -XM````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -XM________\14````````"````/@```/S_________)18````````"````*@`` -XM`/S_________0Q8````````"````1````/S_________9Q8````````"```` -XM'````/S_________>Q8````````"````.@```/S_________D18````````" -XM````10```/S_________JA8````````"````,P```/S_________VA8````` -XM```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -XM```````"````'P```/S_________&!<````````*````"0````,!```````` -XM)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -XM````-A<````````"````*````/S_________0!<````````"````'P```/S_ -XM________11<````````*````"0```)$!````````5!<````````"````(``` -XM`/S_________7A<````````"````'P```/S_________8Q<````````*```` -XM"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -XM````C0`````````*````%@```.4&````````E``````````*````%@```&<( -XM````````FP`````````*````%@```.(!````````H``````````*````%@`` -XM`'`&````````L``````````*````%@```/$'````````O0`````````*```` -XM%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -XM````%@```*T!````````V``````````*````%@```#H&````````]``````` -XM```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -XM```````*````%@```*\'````````%@$````````*````%@```'@$```````` -XM)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -XM````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -XM````````E@$````````*````%@```)P`````````I`$````````*````%@`` -XM`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -XM%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -XM`/H!````````HP<````````*````%@````@$````````L0<````````*```` -XM%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -XM````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -XM```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -XM```````*````%@```(X!````````(0@````````*````%@```+$&```````` -XM+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -XM````2P@````````*````%@```"T`````````:`@````````*````%@````D! -XM````````=@@````````*````%@```+8!````````A0@````````*````%@`` -XM`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -XM%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -XM````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -XM```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -XM```````*````%@```)\'````````=0D````````*````%@````D!```````` -XM@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -XM````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -XM````````PPD````````*````%@```!X&````````T@D````````*````%@`` -XM`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -XM%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -XM````%@```"4#````````3PH````````*````%@```,@#````````50H````` -XM```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -XM```````*````%@```*$"````````9PH````````*````%@```*(&```````` -XM=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -XM````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -XM````````S`H````````*````%@```"<"````````V@H````````*````%@`` -XM`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -XM%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -XM````%@```.L#````````1PL````````*````%@```-L&````````50L````` -XM```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -XM```````*````%@```$<"````````APL````````*````%@```%T!```````` -XME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -XM````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -XM````````]PL````````*````%@```%``````````!0P````````*````%@`` -XM`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -XM%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -XM````%@```)X%````````2PP````````*````%@```$L%````````60P````` -XM```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -XM```````*````%@```$(%````````@PP````````*````%@```/D'```````` -XMD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -XM````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -XM````````R@P````````*````%@```-<"````````V0P````````*````%@`` -XM`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -XM%@```)D'````````!@T````````*````%@```'('````````'`T````````* -XM````%@```'X(````````(PT````````!`````@``````````````*PT````` -XM```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -XM```````!`````@```'``````````>`T````````!`````@```"8"```````` -XM@`T````````*````$@``````````````E`T````````*````$@```#D````` -XM````H@T````````*````$@```((`````````IPT````````*````%@```-,# -XM````````L@T````````*````$@```+@`````````S@T````````*````%@`` -XM`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -XM`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -XM````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -XM```*````$@````@"````````*PX````````*````%@````$$````````-@X` -XM```````*````$@```%$"````````.PX````````*````%@```&H#```````` -XM2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -XM````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -XM````````=`X````````*````$@```+\"````````>0X````````*````%@`` -XM`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -XM$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -XM`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -XM```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -XM```````*````$@```),$````````V0X````````*````%@```,$````````` -XMY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -XM````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -XM````````*P\````````!`````@```)`%````````,P\````````!`````@`` -XM`(0&````````.P\````````*````$@```'X%````````30\````````*```` -XM$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -XM````$@```)8&````````<`\````````*````%@````$$````````>P\````` -XM```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -XM```````!`````@```)`&````````D@\````````!`````@```,D'```````` -XMF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -XM````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -XM````````T0\````````*````%@```+$&````````W`\````````*````$@`` -XM`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -XM`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -XM````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -XM```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -XM```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -XM````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -XM````````IQ`````````*````%@```#("````````LA`````````*````$@`` -XM`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -XM$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -XM`````@`````*````````[!`````````!`````@```*(*````````]!`````` -XM```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -XM```````*````%@```+$&````````%A$````````*````$@```"P,```````` -XM)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -XM````.A$````````*````%@```'D&````````11$````````!`````@```+`* -XM````````31$````````!`````@```-(*````````51$````````*````$@`` -XM`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -XM%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -XM````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -XM```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -XM```````*````$@```+L-````````NA$````````*````$@```/,-```````` -XMOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -XM````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -XM````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -XM``L`````````)1(````````*````%@```-0'````````,!(````````!```` -XM`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -XM````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -XM```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -XM```````*````%0``````````````>A(````````*````$@```&`/```````` -XMA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -XM````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -XM````````OA(````````*````%@```.4"````````VA(````````*````%@`` -XM`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -XM%@```/4#````````$!,````````*````%@````$$````````'1,````````* -XM````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -XM```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -XM```````*````$@```%H0````````5!,````````*````$@```*,0```````` -XM61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -XM````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -XM````````E!,````````*````%@````$$````````GA,````````*````$@`` -XM`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -XM%0```)``````````PA,````````*````$@```"82````````U!,````````* -XM````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -XM```*````%@```'H"````````'10````````*````%@```-T(````````)10` -XM```````!`````@```!`0````````+10````````!`````@```.L0```````` -XM-10````````*````$@```!03````````1Q0````````*````$@```'03```` -XM````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -XM````````;10````````*````%0```&`!````````?10````````*````$@`` -XM`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -XM$@```+X4````````H10````````*````$@```!H5````````J!0````````* -XM````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -XM```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -XM```````*````%@````$$````````,Q4````````*````%@```+@%```````` -XM6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -XM````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -XM````````O!4````````*````%@```"$"````````%!8````````*````%@`` -XM`!(!````````(18````````*````%@```'X%````````/18````````*```` -XM%@```,H$````````:18````````*````%@````$$````````?!8````````* -XM````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -XM```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -XM```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -XM\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -XM````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -XM````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -XM`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -XM$@````87````````9A<````````*````$@```$\7````````;Q<````````* -XM````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -XM```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -XM```````*````$@```-(8````````NA<````````*````%0```+`#```````` -XMT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -XM````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -XM`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -XM`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -XM%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -XM````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -XM```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -XM```````!`````@```#$4````````FA@````````*````$@```)X<```````` -XMI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -XM````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -XM````````S1@````````*````%0```+`&````````V1@````````*````$@`` -XM`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -XM%@```$\"````````Q0`````````!`````@``````````````'``````````* -XM````$```````````````(``````````!`````@``````````````-``````` -XM```*````$```````````````.``````````!`````@```'``````````7``` -XM```````*````$```````````````8``````````!`````@```#`"```````` -XMC``````````*````$```````````````D``````````!`````@```#`#```` -XM````K``````````*````$```````````````L``````````!`````@```*`# -XM````````Y``````````*````$```````````````Z``````````!`````@`` -XM`)`%````````#`$````````*````$```````````````$`$````````!```` -XM`@```)`&````````-`$````````*````$```````````````.`$````````! -XM`````@```-`'````````9`$````````*````$```````````````:`$````` -XM```!`````@`````)````````C`$````````*````$```````````````D`$` -XM```````!`````@`````*````````O`$````````*````$``````````````` -XMP`$````````!`````@```+`*````````W`$````````*````$``````````` -XM````X`$````````!`````@```.`*````````_`$````````*````$``````` -XM``````````(````````!`````@```"`+````````)`(````````*````$``` -XM````````````*`(````````!`````@```&`,````````9`(````````*```` -XM$```````````````:`(````````!`````@```!`0````````C`(````````* -XM````$```````````````D`(````````!`````@```/`0````````(``````` -XM```*`````@``````````````.``````````*`````@```'``````````6``` -XM```````*`````@```#`"````````@``````````*`````@```#`#```````` -XMF``````````*`````@```*`#````````R``````````*`````@```)`%```` -XM````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -XM````````,`$````````*`````@`````)````````4`$````````*`````@`` -XM```*````````>`$````````*`````@```+`*````````D`$````````*```` -XM`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -XM`````@```&`,``````````(````````*`````@```!`0````````(`(````` -XM```*`````@```/`0````````!@`````````*````!@``````````````!@`` -XM```````*````!@``````````````$``````````!`````@`````````````` -X` -Xend -END-of-sections.o.uu -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/out/strip-unneeded-1.out.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/out/strip-unneeded-1.out.shar deleted file mode 100644 index 7b43500e..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/out/strip-unneeded-1.out.shar +++ /dev/null @@ -1,1498 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# sections.o.1.uu -# sections.o.uu -# -echo x - sections.o.1.uu -sed 's/^X//' >sections.o.1.uu << 'eb2ac2808b7045ab3c2faf26922f5e01' -Xbegin 644 sections.o.1 -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````$@\```` -XM`````````$```````$``#0`*`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A'1S8VX@9F%I;&5D.B`E0`N9&5B=6<`+F=N=2YL:6YK;VYC92YW:2X`+FQI;F4`+G-T86(`96QF7V=E -XM='-H"!F86EL960Z -XM("5S`&=E;&9?9V5T&!HP%C02.`X\"````````+G-Y;71A8@`N`0``$``````````````````` -XM``````#F`0``$`````````````````````````#R`0``$``````````````` -XM````````````5]S:&1R`')E`!I;G-EF4`;&]O:W5P7W-E8U]A8W0`'1S8VX`96QF7W-T0!G -XM96QF7V=E=')E;`!L;V]K=7!?:V5E<%]S>6UL:7-T````EP`````````"```` -XM"0```/S_________[@`````````"````"@```/S_________&P$````````" -XM````"P```/S_________60$````````"````#````/S_________9@$````` -XM```"````#0```/S_________I0$````````"````#@```/S_________M`$` -XM```````"````#P```/S_________N0$````````*`````@`````````````` -XMR`$````````"````$````/S_________T@$````````"````#P```/S_____ -XM____UP$````````*`````@```!X`````````Y@$````````"````$````/S_ -XM________\`$````````"````#P```/S_________]0$````````*`````@`` -XM`#<`````````!`(````````"````$````/S_________#@(````````"```` -XM#P```/S_________$P(````````*`````@```%4`````````(@(````````" -XM````$````/S_________3P(````````"````"0```/S_________8`(````` -XM```"````$@```/S_________EP(````````"````#````/S_________J`(` -XM```````"````"P```/S_________N@(````````"````$P```/S_________ -XMVP(````````"````#P```/S_________X`(````````*`````@```'(````` -XM````[P(````````"````$````/S_________^0(````````"````#P```/S_ -XM_________@(````````*`````@```#<`````````#0,````````"````$``` -XM`/S_________%`,````````"````#P```/S_________&0,````````*```` -XM`@```(X`````````*`,````````"````$````/S_________:0,````````* -XM`````@```*4`````````;@,````````"````%````/S_________=@,````` -XM```*`````@```*8`````````>P,````````"````%````/S_________@P,` -XM```````*`````@```*X`````````B`,````````"````%````/S_________ -XMC0,````````*`````@```+8`````````E0,````````"````%````/S_____ -XM____O0,````````*`````@```+8`````````]0,````````"````%@```/S_ -XM________$`0````````"````%P```/S_________;P0````````"````"@`` -XM`/S_________LP0````````"````"0```/S_________V@0````````"```` -XM"P```/S_________!@4````````"````#P```/S_________"P4````````* -XM`````@```,``````````&@4````````"````$````/S_________'P4````` -XM```*`````@```-@`````````*P4````````"````&````/S_________-04` -XM```````"````#P```/S_________.@4````````*`````@```!X````````` -XM204````````"````$````/S_________4P4````````"````#P```/S_____ -XM____6`4````````*`````@```.4`````````9P4````````"````$````/S_ -XM________<04````````"````#P```/S_________=@4````````*`````@`` -XM`#<`````````A04````````"````$````/S_________M04````````"```` -XM"@```/S__________@4````````"````&@```/S_________"P8````````" -XM````$P```/S_________408````````"````#P```/S_________5@8````` -XM```*`````@```!X`````````908````````"````$````/S_________;`8` -XM```````"````#P```/S_________<08````````*`````@````,!```````` -XM@`8````````"````$````/S_________O08````````"````"0```/S_____ -XM____T08````````"````"0```/S_________/P<````````"````"P```/S_ -XM________=0<````````"````#P```/S_________>@<````````*`````@`` -XM`!P!````````B0<````````"````$````/S_________DP<````````"```` -XM#P```/S_________F`<````````*`````@```#H!````````IP<````````" -XM````$````/S_________L0<````````"````#P```/S_________M@<````` -XM```*`````@```%@!````````Q0<````````"````$````/S_________2P@` -XM```````"````"0```/S_________;@@````````"````"P```/S_________ -XMLP@````````*`````P``````````````N@@````````"````'0```/S_____ -XM____R0@````````"````#P```/S_________S@@````````*`````@```',! -XM````````W0@````````"````$````/S_________YP@````````"````#P`` -XM`/S_________[`@````````*`````@```%@!````````^P@````````"```` -XM$````/S_________$0D````````"````'P```/S_________*0D````````" -XM````%P```/S_________>@D````````"````(````/S_________N`D````` -XM```"````#P```/S_________O0D````````*`````@```)$!````````S`D` -XM```````"````$````/S_________U@D````````"````#P```/S_________ -XMVPD````````*`````@```+D!````````Z@D````````"````$````/S_____ -XM____[PD````````*`````@```*L!````````^PD````````"````$````/S_ -XM________,0H````````"````(@```/S_________5`H````````"````(P`` -XM`/S_________:PH````````"````)````/S_________E`H````````*```` -XM`@```-$!````````G@H````````"````$````/S_________MPH````````" -XM````(0```/S_________YPH````````"````(0```/S_________0@L````` -XM```*`````@```+8`````````:0L````````*`````@```*8`````````A@L` -XM```````*`````@```*X`````````EPL````````*`````@```.,!```````` -XMH@L````````+`````@```.,!````````JPL````````+`````@```.H!```` -XM````M`L````````+`````@```/P!````````O0L````````+`````@````(" -XM````````X@L````````"````)0```/S_________\`L````````"````)@`` -XM`/S_________(@P````````"````(0```/S_________?PP````````"```` -XM%P```/S_________DPP````````+`````@```+8`````````RPP````````" -XM````*````/S_________Z`P````````"````*0```/S__________PP````` -XM```"````"0```/S_________'0T````````"````*@```/S_________5`T` -XM```````*`````@```+8`````````?@T````````"````%@```/S_________ -XMDPT````````"````#````/S_________N`T````````*`````@```*8````` -XM````T@T````````*`````@```*X`````````$0X````````"````*````/S_ -XM________*@X````````"````*0```/S_________/@X````````"````#``` -XM`/S_________3@X````````"````"0```/S_________:PX````````"```` -XM*@```/S_________FPX````````"````%P```/S_________W`X````````" -XM````*P```/S_________]PX````````"````&P```/S_________`0\````` -XM```"````$P```/S_________$`\````````"````#P```/S_________%0\` -XM```````*`````@```(X`````````)`\````````"````$````/S_________ -XM*0\````````"````$P```/S_________20\````````"````#P```/S_____ -XM____3@\````````*`````@```#\"````````70\````````"````$````/S_ -XM________9P\````````"````#P```/S_________;`\````````*`````@`` -XM`","````````>P\````````"````$````/S_________A0\````````"```` -XM#P```/S_________B@\````````*`````@```(,"````````F0\````````" -XM````$````/S_________HP\````````"````#P```/S_________J`\````` -XM```*`````@```&T"````````MP\````````"````$````/S_________O`\` -XM```````*`````@```*L!````````Q@\````````"````&````/S_________ -XMT`\````````"````#P```/S_________U0\````````*`````@````@"```` -XM````Y`\````````"````$````/S_________[@\````````"````#P```/S_ -XM________\P\````````*`````@```%4"`````````A`````````"````$``` -XM`/S_________)A`````````"````+````/S_________,1`````````"```` -XM+0```/S_________91`````````"````+````/S_________Q0````````"````+````/S_ -XM________BA0````````"````+0```/S_________UA0````````"````,P`` -XM`/S_________-A4````````"````,P```/S_________4!4````````"```` -XM(0```/S_________7!4````````"````)0```/S_________=!4````````" -XM````,P```/S_________HA4````````"````,@```/S_________MQ4````` -XM```"````(0```/S_________P!4````````"````)0```/S_________U!4` -XM```````*`````@```+X"````````X!4````````"````&````/S_________ -XMYQ4````````"````+0```/S_________\14````````"````+@```/S_____ -XM____)18````````"````&@```/S_________0Q8````````"````-````/S_ -XM________9Q8````````"````#````/S_________>Q8````````"````*@`` -XM`/S_________D18````````"````-0```/S_________JA8````````"```` -XM(P```/S_________VA8````````"````+P```/S_________Z18````````" -XM````(P```/S_________$Q<````````"````#P```/S_________&!<````` -XM```*`````@````,!````````)Q<````````"````$````/S_________+!<` -XM```````*`````@```+`"````````-A<````````"````&````/S_________ -XM0!<````````"````#P```/S_________11<````````*`````@```)$!```` -XM````5!<````````"````$````/S_________7A<````````"````#P```/S_ -XM________8Q<````````*`````@```#\"`````````$````````*```` -XM`0```+`*````````D`$````````*`````0```.`*````````J`$````````* -XM`````0```"`+````````R`$````````*`````0```&`,``````````(````` -XM```*`````0```!`0````````(`(````````*`````0```/`0```````````` -XM```````````````````````````````````````````````````````````` -XM`````````````````````!L````!````!@```````````````````$`````` -XM````WA<``````````````````!`````````````````````A````!````$`` -XM```````````````````X)0```````)`5````````"P````$````(```````` -XM`!@`````````+`````$````#````````````````````(!@````````````` -XM````````````````!````````````````````#(````(`````P`````````` -XM`````````"`8``````````````````````````````0````````````````` -XM```W`````0`````````````````````````@&````````#`````````````` -XM```````!````````````````````0`````$````R```````````````````` -XM4!@```````#7`@```````````````````0`````````!`````````$\````! -XM````,@```````````````````"@;````````+0````````````````````@` -XM`````````0````````!>`````0````(```````````````````!8&P`````` -XM`%`"```````````````````(````````````````````:`````0```!````` -XM````````````````R#H```````"``0````````L````(````"``````````8 -XM`````````!$````#`````````````````````````*@=````````=P`````` -XM``````````````$````````````````````!`````@`````````````````` -XM```````@'@```````!`%````````#`````@````(`````````!@````````` -XM"0````,`````````````````````````,",````````&`@`````````````` -X3`````0`````````````````````` -X` -Xend -eb2ac2808b7045ab3c2faf26922f5e01 -echo x - sections.o.uu -sed 's/^X//' >sections.o.uu << 'f3eccedeeefe85afebc666fca5eb0742' -Xbegin 644 sections.o -XM?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q```` -XM`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@U(QT98`````$B+A\@```!(B49@2(N'R````$B) -XM,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -XM\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -XM`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -XM)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -XM````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -XMQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -XMBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -XMBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -XMB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -XM_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -XM4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -XM`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -XM```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -XM`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -XM9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -XM$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -XM`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -XMYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -XM*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -XM2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -XM``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -XMZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -XM`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -XM9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -XMA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -XM)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -XM)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -XM_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -XM1"082(M#*$B)1"0@2(M[$.@`````A;H -XM`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -XMN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -XM2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -XM`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -XMZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -XM=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -XM`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -XM9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -XM`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -XMZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -XM28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -XM@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -XMB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -XMN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -XM_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -XM[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -XM`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -XMC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -XMP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -XM"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -XM``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -XM__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -XM6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -XM1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -XM`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -XM_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -XM"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -XM2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -XM``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -XMPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -XM9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -XM2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -XM[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -XM````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -XM`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -XM9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -XMBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -XMU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -XM1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -XM`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -XMBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -XM)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -XM__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -XM`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -XM!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -XM``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -XM]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -XM3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -XM`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -XMB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -XMQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -XMBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -XM````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -XM````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -XM`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -XM9EP"```+7W```F50````"(W`*``````)\W@(```(C -XM=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -XM``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -XM```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -XM5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -XM`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -XM```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -XM`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -XM`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -XM""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -XM`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -XM"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -XM````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -XM%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -XM!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -XM"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -XM```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -XM``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -XM"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -XM``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -XM-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -XM``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -XM(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -XM````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -XM"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -XM"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -XM`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -XM``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -XM``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -XM````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -XM"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -XM```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -XM"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -XM!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -XM60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -XM```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -XM```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -XMHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -XM``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -XM%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -XM"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -XM`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -XM`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -XM"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -XM``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -XM``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -XM`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -XM!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -XM`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -XM".@````F``````$X`50``````````````````````````````+T2```C96-P -XM``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -XM```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -XM.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -XM%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -XM@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -XMQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -XM``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -XM`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -XM`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -XM-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -XM``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -XM`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -XM+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -XM`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -XM20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -XMO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -XM($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -XM!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -XM`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -XM86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -XM;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -XM```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -XM'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -XM`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -XM#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -XM@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -XMY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -XM0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -XM1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -XM1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -XM`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -XM`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -XM!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -XM``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -XM`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -XM`````````````````````'``````````E@`````````!`%66`````````($! -XM`````````0!00` -XM``````"W!`````````$`42\%````````.04````````!`%$````````````` -XM````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -XM````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -XM`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -XM``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -XM````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -XM``````$`5DL&````````A`8````````!`%8`````````````````````J04` -XM```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -XM`````````0!3`````````````````````+P%````````OP4````````!`%"_ -XM!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -XM```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -XM4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -XMR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -XM`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -XM````````````````D`8```````"Y!@````````$`5+D&````````P08````` -XM```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -XM````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -XM`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -XM``````#)!P````````$`5@````````````````````#0!P```````-('```` -XM`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -XM=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -XM`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -XM````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -XM``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -XM``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -XM````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -XM````````````````````<@X```````!U#@````````$`4'4.````````@PX` -XM```````!`%1##P```````$T/`````````0!4`````````````````````-\, -XM````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -XM#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -XM`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -XM`!0/`````````0!0`````````````````````!`0````````$1`````````" -XM`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -XM````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -XM```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -XM5=P0````````X1`````````!`%4`````````````````````$!`````````U -XM$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -XM`0!4M!````````"[$`````````$`5``````````````````````B$``````` -XM`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -XM```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -XM````NQ`````````!`%3<$````````.80`````````0!4```````````````` -XM`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -XM``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -XM````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -XM$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -XM``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -XM`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -XM````````^1`````````"`'%P`````` -XM``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -XM``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -XM````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -XM`````&(7`````````0!4`````````````````````"$1````````=A$````` -XM```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -XM````````)14````````!`%9$%0```````-X7`````````0!6```````````` -XM`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -XMWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -XM`-X7`````````0!<`````````````````````"$1````````?!$````````! -XM`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -XM````WA<````````!`%X`````````````````````$A<````````7%P`````` -XM``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -XM`````````````````+T1````````PA$````````!`%0#%0````````@5```` -XM`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -XM`````,05`````````0!0`````````````````````"$1`````````1,````` -XM```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -XMZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -XM``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -XM```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -XM5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -XM``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -XM````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -XM`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -XM```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -XM````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -XM`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -XM`````%@7`````````0!<`````````````````````"$1````````-A$````` -XM```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -XM````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -XM%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -XM#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -XM```T#@```````#H.````````+@X````````Q#@`````````````````````` -XM```````U$````````%,0````````W!````````#K$``````````````````` -XM``````````!W$````````(<0````````Q1````````#<$````````)40```` -XM````F!````````"+$````````)(0`````````````````````````````!(1 -XM````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -XM``,6````````U!8```````!/$@```````,`2```````````````````````` -XM`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -XM%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -XM``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -XM``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -XME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -XM````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -XM````````*18````````L%@````````,6````````'18````````````````` -XM````````````M1$```````#@$0```````/L4````````%14````````````` -XM````````````````X!$```````!$$@```````"L7````````.A<````````E -XM%0```````.05````````L10```````#[%````````,`2````````!10````` -XM````````````````````````X!$```````!$$@```````"L7````````.A<` -XM``````#3%0```````.05````````$P```````+$3 -XM````````NA,````````K$P```````*43````````'1,````````A$P`````` -XM``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -XM`````,`2````````YA(`````````````````````````````X!$```````!$ -XM$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -XM`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -XM``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -XM`````````````````````#$4````````L10````````0%P```````"L7```` -XM````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -XM`````````````````````````````#$4````````6!0````````7%P`````` -XM`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -XM`````+$4````````:A0```````!L%````````&04````````9Q0````````` -XM````````````````````CA0```````"Q%````````-06````````XQ8````` -XM````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -XM9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -XM4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -XM2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -XM;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -XM7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -XM`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -XM1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -XM96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -XM````B`,````````"````)````/S_________C0,````````*````"0```+8` -XM````````E0,````````"````)````/S_________O0,````````*````"0`` -XM`+8`````````]0,````````"````)@```/S_________$`0````````"```` -XM)P```/S_________;P0````````"````&@```/S_________LP0````````" -XM````&0```/S_________V@0````````"````&P```/S_________!@4````` -XM```"````'P```/S_________"P4````````*````"0```,``````````&@4` -XM```````"````(````/S_________'P4````````*````"0```-@````````` -XM*P4````````"````*````/S_________-04````````"````'P```/S_____ -XM____.@4````````*````"0```!X`````````204````````"````(````/S_ -XM________4P4````````"````'P```/S_________6`4````````*````"0`` -XM`.4`````````9P4````````"````(````/S_________<04````````"```` -XM'P```/S_________=@4````````*````"0```#<`````````A04````````" -XM````(````/S_________M04````````"````&@```/S__________@4````` -XM```"````*@```/S_________"P8````````"````(P```/S_________408` -XM```````"````'P```/S_________5@8````````*````"0```!X````````` -XM908````````"````(````/S_________;`8````````"````'P```/S_____ -XM____<08````````*````"0````,!````````@`8````````"````(````/S_ -XM________O08````````"````&0```/S_________T08````````"````&0`` -XM`/S_________/P<````````"````&P```/S_________=0<````````"```` -XM'P```/S_________>@<````````*````"0```!P!````````B0<````````" -XM````(````/S_________DP<````````"````'P```/S_________F`<````` -XM```*````"0```#H!````````IP<````````"````(````/S_________L0<` -XM```````"````'P```/S_________M@<````````*````"0```%@!```````` -XMQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -XM____;@@````````"````&P```/S_________LP@````````*````"P`````` -XM````````N@@````````"````+0```/S_________R0@````````"````'P`` -XM`/S_________S@@````````*````"0```',!````````W0@````````"```` -XM(````/S_________YP@````````"````'P```/S_________[`@````````* -XM````"0```%@!````````^P@````````"````(````/S_________$0D````` -XM```"````+P```/S_________*0D````````"````)P```/S_________>@D` -XM```````"````,````/S_________N`D````````"````'P```/S_________ -XMO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -XM____U@D````````"````'P```/S_________VPD````````*````"0```+D! -XM````````Z@D````````"````(````/S_________[PD````````*````"0`` -XM`*L!````````^PD````````"````(````/S_________,0H````````"```` -XM,@```/S_________5`H````````"````,P```/S_________:PH````````" -XM````-````/S_________E`H````````*````"0```-$!````````G@H````` -XM```"````(````/S_________MPH````````"````,0```/S_________YPH` -XM```````"````,0```/S_________0@L````````*````"0```+8````````` -XM:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -XM````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -XM````````JPL````````+````"0```.H!````````M`L````````+````"0`` -XM`/P!````````O0L````````+````"0````("````````X@L````````"```` -XM-0```/S_________\`L````````"````-@```/S_________(@P````````" -XM````,0```/S_________?PP````````"````)P```/S_________DPP````` -XM```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -XM```````"````.0```/S__________PP````````"````&0```/S_________ -XM'0T````````"````.@```/S_________5`T````````*````"0```+8````` -XM````?@T````````"````)@```/S_________DPT````````"````'````/S_ -XM________N`T````````*````"0```*8`````````T@T````````*````"0`` -XM`*X`````````$0X````````"````.````/S_________*@X````````"```` -XM.0```/S_________/@X````````"````'````/S_________3@X````````" -XM````&0```/S_________:PX````````"````.@```/S_________FPX````` -XM```"````)P```/S_________W`X````````"````.P```/S_________]PX` -XM```````"````*P```/S_________`0\````````"````(P```/S_________ -XM$`\````````"````'P```/S_________%0\````````*````"0```(X````` -XM````)`\````````"````(````/S_________*0\````````"````(P```/S_ -XM________20\````````"````'P```/S_________3@\````````*````"0`` -XM`#\"````````70\````````"````(````/S_________9P\````````"```` -XM'P```/S_________;`\````````*````"0```","````````>P\````````" -XM````(````/S_________A0\````````"````'P```/S_________B@\````` -XM```*````"0```(,"````````F0\````````"````(````/S_________HP\` -XM```````"````'P```/S_________J`\````````*````"0```&T"```````` -XMMP\````````"````(````/S_________O`\````````*````"0```*L!```` -XM````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -XM________U0\````````*````"0````@"````````Y`\````````"````(``` -XM`/S_________[@\````````"````'P```/S_________\P\````````*```` -XM"0```%4"`````````A`````````"````(````/S_________)A`````````" -XM````/````/S_________,1`````````"````/0```/S_________91`````` -XM```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -XM/0```/S_________UA0````````"````0P```/S_________-A4````````" -XM````0P```/S_________4!4````````"````,0```/S_________7!4````` -XM```"````-0```/S_________=!4````````"````0P```/S_________HA4` -XM```````"````0@```/S_________MQ4````````"````,0```/S_________ -XMP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -XM````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -XM________\14````````"````/@```/S_________)18````````"````*@`` -XM`/S_________0Q8````````"````1````/S_________9Q8````````"```` -XM'````/S_________>Q8````````"````.@```/S_________D18````````" -XM````10```/S_________JA8````````"````,P```/S_________VA8````` -XM```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -XM```````"````'P```/S_________&!<````````*````"0````,!```````` -XM)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -XM````-A<````````"````*````/S_________0!<````````"````'P```/S_ -XM________11<````````*````"0```)$!````````5!<````````"````(``` -XM`/S_________7A<````````"````'P```/S_________8Q<````````*```` -XM"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -XM````C0`````````*````%@```.4&````````E``````````*````%@```&<( -XM````````FP`````````*````%@```.(!````````H``````````*````%@`` -XM`'`&````````L``````````*````%@```/$'````````O0`````````*```` -XM%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -XM````%@```*T!````````V``````````*````%@```#H&````````]``````` -XM```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -XM```````*````%@```*\'````````%@$````````*````%@```'@$```````` -XM)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -XM````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -XM````````E@$````````*````%@```)P`````````I`$````````*````%@`` -XM`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -XM%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -XM`/H!````````HP<````````*````%@````@$````````L0<````````*```` -XM%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -XM````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -XM```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -XM```````*````%@```(X!````````(0@````````*````%@```+$&```````` -XM+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -XM````2P@````````*````%@```"T`````````:`@````````*````%@````D! -XM````````=@@````````*````%@```+8!````````A0@````````*````%@`` -XM`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -XM%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -XM````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -XM```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -XM```````*````%@```)\'````````=0D````````*````%@````D!```````` -XM@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -XM````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -XM````````PPD````````*````%@```!X&````````T@D````````*````%@`` -XM`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -XM%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -XM````%@```"4#````````3PH````````*````%@```,@#````````50H````` -XM```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -XM```````*````%@```*$"````````9PH````````*````%@```*(&```````` -XM=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -XM````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -XM````````S`H````````*````%@```"<"````````V@H````````*````%@`` -XM`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -XM%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -XM````%@```.L#````````1PL````````*````%@```-L&````````50L````` -XM```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -XM```````*````%@```$<"````````APL````````*````%@```%T!```````` -XME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -XM````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -XM````````]PL````````*````%@```%``````````!0P````````*````%@`` -XM`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -XM%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -XM````%@```)X%````````2PP````````*````%@```$L%````````60P````` -XM```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -XM```````*````%@```$(%````````@PP````````*````%@```/D'```````` -XMD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -XM````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -XM````````R@P````````*````%@```-<"````````V0P````````*````%@`` -XM`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -XM%@```)D'````````!@T````````*````%@```'('````````'`T````````* -XM````%@```'X(````````(PT````````!`````@``````````````*PT````` -XM```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -XM```````!`````@```'``````````>`T````````!`````@```"8"```````` -XM@`T````````*````$@``````````````E`T````````*````$@```#D````` -XM````H@T````````*````$@```((`````````IPT````````*````%@```-,# -XM````````L@T````````*````$@```+@`````````S@T````````*````%@`` -XM`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -XM`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -XM````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -XM```*````$@````@"````````*PX````````*````%@````$$````````-@X` -XM```````*````$@```%$"````````.PX````````*````%@```&H#```````` -XM2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -XM````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -XM````````=`X````````*````$@```+\"````````>0X````````*````%@`` -XM`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -XM$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -XM`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -XM```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -XM```````*````$@```),$````````V0X````````*````%@```,$````````` -XMY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -XM````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -XM````````*P\````````!`````@```)`%````````,P\````````!`````@`` -XM`(0&````````.P\````````*````$@```'X%````````30\````````*```` -XM$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -XM````$@```)8&````````<`\````````*````%@````$$````````>P\````` -XM```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -XM```````!`````@```)`&````````D@\````````!`````@```,D'```````` -XMF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -XM````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -XM````````T0\````````*````%@```+$&````````W`\````````*````$@`` -XM`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -XM`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -XM````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -XM```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -XM```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -XM````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -XM````````IQ`````````*````%@```#("````````LA`````````*````$@`` -XM`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -XM$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -XM`````@`````*````````[!`````````!`````@```*(*````````]!`````` -XM```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -XM```````*````%@```+$&````````%A$````````*````$@```"P,```````` -XM)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -XM````.A$````````*````%@```'D&````````11$````````!`````@```+`* -XM````````31$````````!`````@```-(*````````51$````````*````$@`` -XM`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -XM%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -XM````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -XM```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -XM```````*````$@```+L-````````NA$````````*````$@```/,-```````` -XMOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -XM````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -XM````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -XM``L`````````)1(````````*````%@```-0'````````,!(````````!```` -XM`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -XM````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -XM```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -XM```````*````%0``````````````>A(````````*````$@```&`/```````` -XMA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -XM````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -XM````````OA(````````*````%@```.4"````````VA(````````*````%@`` -XM`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -XM%@```/4#````````$!,````````*````%@````$$````````'1,````````* -XM````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -XM```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -XM```````*````$@```%H0````````5!,````````*````$@```*,0```````` -XM61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -XM````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -XM````````E!,````````*````%@````$$````````GA,````````*````$@`` -XM`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -XM%0```)``````````PA,````````*````$@```"82````````U!,````````* -XM````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -XM```*````%@```'H"````````'10````````*````%@```-T(````````)10` -XM```````!`````@```!`0````````+10````````!`````@```.L0```````` -XM-10````````*````$@```!03````````1Q0````````*````$@```'03```` -XM````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -XM````````;10````````*````%0```&`!````````?10````````*````$@`` -XM`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -XM$@```+X4````````H10````````*````$@```!H5````````J!0````````* -XM````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -XM```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -XM```````*````%@````$$````````,Q4````````*````%@```+@%```````` -XM6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -XM````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -XM````````O!4````````*````%@```"$"````````%!8````````*````%@`` -XM`!(!````````(18````````*````%@```'X%````````/18````````*```` -XM%@```,H$````````:18````````*````%@````$$````````?!8````````* -XM````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -XM```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -XM```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -XM\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -XM````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -XM````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -XM`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -XM$@````87````````9A<````````*````$@```$\7````````;Q<````````* -XM````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -XM```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -XM```````*````$@```-(8````````NA<````````*````%0```+`#```````` -XMT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -XM````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -XM`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -XM`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -XM%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -XM````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -XM```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -XM```````!`````@```#$4````````FA@````````*````$@```)X<```````` -XMI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -XM````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -XM````````S1@````````*````%0```+`&````````V1@````````*````$@`` -XM`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -XM%@```$\"````````Q0`````````!`````@``````````````'``````````* -XM````$```````````````(``````````!`````@``````````````-``````` -XM```*````$```````````````.``````````!`````@```'``````````7``` -XM```````*````$```````````````8``````````!`````@```#`"```````` -XMC``````````*````$```````````````D``````````!`````@```#`#```` -XM````K``````````*````$```````````````L``````````!`````@```*`# -XM````````Y``````````*````$```````````````Z``````````!`````@`` -XM`)`%````````#`$````````*````$```````````````$`$````````!```` -XM`@```)`&````````-`$````````*````$```````````````.`$````````! -XM`````@```-`'````````9`$````````*````$```````````````:`$````` -XM```!`````@`````)````````C`$````````*````$```````````````D`$` -XM```````!`````@`````*````````O`$````````*````$``````````````` -XMP`$````````!`````@```+`*````````W`$````````*````$``````````` -XM````X`$````````!`````@```.`*````````_`$````````*````$``````` -XM``````````(````````!`````@```"`+````````)`(````````*````$``` -XM````````````*`(````````!`````@```&`,````````9`(````````*```` -XM$```````````````:`(````````!`````@```!`0````````C`(````````* -XM````$```````````````D`(````````!`````@```/`0````````(``````` -XM```*`````@``````````````.``````````*`````@```'``````````6``` -XM```````*`````@```#`"````````@``````````*`````@```#`#```````` -XMF``````````*`````@```*`#````````R``````````*`````@```)`%```` -XM````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -XM````````,`$````````*`````@`````)````````4`$````````*`````@`` -XM```*````````>`$````````*`````@```+`*````````D`$````````*```` -XM`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -XM`````@```&`,``````````(````````*`````@```!`0````````(`(````` -XM```*`````@```/`0````````!@`````````*````!@``````````````!@`` -XM```````*````!@``````````````$``````````!`````@`````````````` -X` -Xend -f3eccedeeefe85afebc666fca5eb0742 -exit - diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.err b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.eval b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.eval deleted file mode 100644 index 573541ac..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.eval +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.out b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.sh b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.sh deleted file mode 100644 index 31c2a3a8..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-1/strip-unneeded-1.sh +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ -inittest strip-unneeded-1 tc/strip-unneeded-1 -extshar ${TESTDIR} -extshar ${RLTDIR} -runcmd "${STRIP} --strip-unneeded -o sections.o.1 sections.o" work true -rundiff true diff --git a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/in/strip-unneeded-2.in.shar b/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/in/strip-unneeded-2.in.shar deleted file mode 100644 index 9d05c993..00000000 --- a/contrib/elftoolchain/test/elfcopy/tc/strip-unneeded-2/in/strip-unneeded-2.in.shar +++ /dev/null @@ -1,2302 +0,0 @@ -# This is a shell archive. Save it in a file, remove anything before -# this line, and then unpack it by entering "sh file". Note, it may -# create directories; files and directories will be owned by you and -# have default permissions. -# -# This archive contains: -# -# elfcopy.uu -# -echo x - elfcopy.uu -sed 's/^X//' >elfcopy.uu << 'END-of-elfcopy.uu' -Xbegin 755 elfcopy -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````#AM`0`` -XM`````````$``.``'`$``)0`B``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6YC7W-E8W1I;VYS`"(1``!I;G-E5]C;VYT96YT``````!! -XM`````@!^+@``W`D``'$(``!A9&1?=&]?:6YS96=?;&ES=`#W"```8V]P>5]P -XM:&1R`'P)``!S971U<%]P:&1R``````!C`````@!:.```!1,```L,``!L;V]K -XM=7!?:V5E<%]S>6UL:7-T`&8,``!A9&1?=&]?6`@```TP&```".8,````" -XM"`5=`P```X8"```".I4````""`>1`@```@@$AP,```($!*D#```#]00```)2 -XMB@````,\!0```E1X````!0@'!@@#?`$```,F9@````,5`P```R=X`````[0& -XM```#*68````#B0````,L9@````,T`P```RYF`````PT"```#,4(````#70<` -XM``,S0@````,(!0```S1X`````W`&```#/F8````#&@$```-;9@````(!!K(! -XM```#_`$```190@````-/`P``!%YF`````X@"```$8XH````'"#,!```'"&U````"7(&```$"`$=`0``"MT%```0 -XM!2X/`@``"X<'```%+\\!```"(P`+\`4```4P@P````(C"``*U@```'@&@PH# -XM```+V`0```:$*`$```(C``M-!P``!H68`0```B,$"V@&```&AJ,!```"(P@+ -XM@P0```:'K@$```(C"@N0`0``!HC:`0```B,,"V0"```&B8T!```"(Q`+O@$` -XM``:**`$```(C%`O9!0``!HSF`0```B,8"R`#```&C>8!```"(R@+8`4```:. -XMY@$```(C.`NK`@``!I>Y`0```B-("S8````&F')`P```B,`#%]R``AH -XM7P````(C"`Q?=P`(:5\````"(PP+?0H```AJ.P````(C$`NN!@``"&L[```` -XM`B,2#%]B9@`(;&`#```"(Q@+0P8```AM7P````(C*`M)`@``"'##`````B,P -XM"_,!```(<<,$```"(S@+L@0```ARXP0```(C0`O2!```"',#!0```B-("TD` -XM```(=",%```"(U`,7W5B``AW8`,```(C6`L`````"'@O!0```B-H#%]U<@`( -XM>5\````"(W`+1@0```A\-04```(C=`N;````"'U%!0```B-W#%]L8@`(@&`# -XM```"(W@++0````B#7P````,CB`$+=PD```B$50,```,CD`$`#0%?````PP0` -XM``[#``````<(LP0```T!7P```.,$```.PP````Y;`0``#E\`````!PC)!``` -XM#0%5`P```P4```[#````#E4#```.7P`````'".D$```-`5\````C!0``#L,` -XM```.80$```Y?``````<("04```_M`@```0<(*04``!`T````104``!'````` -XM`@`0-````%4%```1P````````Z8"```(A8\#```""`58`P``$#0```!W!0`` -XM$<`````/``/[`@``"290`0```Y0&```!%7$#```"%7$'```#%=L````$`!0$"C9=!P``%3$%````%9H'```! -XM%>8%```"%;$%```#%H````3%>$"```4%7P#```5%0X!```6%?X$```7`!0$ -XM"E6T'```+MPH```PB80$```(C``M>!```#"2M -XM!P```B,(``<(Q`<``!((##8*"```"U8%```,-K\(```"(P``"F8#``!(#"B_ -XM"```"[<*```,*6$!```"(P`+H@$```PJ80$```(C"`M!`@``#"MA`0```B,0 -XM"X4-```,+&$!```"(Q@,861D``PN7P````(C(`M;`0``#"]?`````B,D"\D' -XM```,,%\````"(R@+404```PQ7P````(C+`O9`0``##)?`````B,P"V\````, -XM,U\````"(S0+5P0```PT7P````(C.`NB!```##;S!P```B-```<("@@``!(( -XM##_<"```"U8%```,/R$)```"(P``"@<&```@##HA"0``"[<*```,.UL!```" -XM(P`+=`H```P\6P$```(C"`L`"```##W$`0```B,0"Z<````,/\4(```"(Q@` -XM!PC<"```$A`,44P)```+5P4```Q1&@H```(C``LX`@``#%$@"@```B,(``JD -XM"0``>`Q#&@H```NW"@``#$1A`0```B,`#&ES``Q%G`<```(C"`QO=`H```O7`@`` -XM#%X:"@```B,`"P0'```,7B`*```"(P@`$@@,7XL*```+5@4```Q?^@H```(C -XM```*NP(``$`,5OH*```,;V9F``Q74`$```(C``QF@`,65`!```"(Q`+W0@```Q:4`$```(C&`MO````#%Q?`````B,@"X@'```, -XM7DL*```"(R@+3@L```Q?=`H```(C.``'"(L*```4!`R-)PL``!5B`0```!40 -XM!0```14W!@```A7X!0```Q43!@``!``2$`RI3`L```O6`@``#*GZ"@```B,` -XM"P,'```,J4P+```"(P@`!PCZ"@``$A`,JG<+```+U@(```RJOP@```(C``L# -XM!P``#*IW"P```B,(``<(OP@``!(0#*NB"P``"]8"```,JR$)```"(P`+`P<` -XM``RKH@L```(C"``'""$)```2$`RMS0L```O6`@``#*WM!P```B,`"P,'```, -XMKU\````" -XM(RP,;F]S``Q]7P````(C,`LQ!```#()?`````B,T"T\!```,@U\````"(S@+ -XMO0<```R$7P````(C/`O-`0``#(5?`````B-`"V,````,AE\````"(T0+104` -XM``R'7P````(C2`O@#```#(D:"@```B-0"VH-```,BAH*```"(U@+Y@D```R+ -XM&@H```(C8`M^!@``#),`"P```B-H"WX*```,FU\````"(VP+KP<```R>Z@T` -XM``(C<`OS!@``#*'J#0```B-X"^T&```,I(D#```#(X`!"U0'```,IXD#```# -XM(X@!"S`!```,J2<+```#(Y`!"P<````,JE(+```#(Z`!"S8!```,JWT+```# -XM([`!"W@&```,K:@+```#(\`!"XP$```,K],+```#(]`!"X@'```,L?@+```# -XM(^`!``<(>P8```<(4`$``!8W!P``!`$L#PX``!7&`````!5V`````14/!@`` -XM`@`7>P<```%:`@%@'$```````(D<0````````````!<&`P```5,"`9`<0``` -XM````N1Q````````X````%[@````!3`(!P!Q```````#I'$```````'`````8 -XM/P<```$,`0$!F0X``!EE8W```0L!F0X``!EI9F0``0L!7P```!EO9F0``0L! -XM7P`````'"!T,```:&`````&(`0'D#@``&V5C<``!AYD.```J`8```$O`0'P -XM'$```````'\C0```````J````/D/```?96-P``$N`9D.``#A````'W-R8P`! -XM+@%A`0``*@$``!]D04```$R`<0!```A:69D``$S`5\```#&`P``(6]F9``!,P%?````(@0``"-F -XM#@````````%7`22,#@``)(`.```D=`X``".?#@``H`````$=`22L#@``)3`! -XM```FMPX``,H$```GP@X```.1\'XGS0X```.1L'XFV`X``$P%````````&%T& -XM```!%0(!`5H0```996-P``$4`ID.```H]@(```$4`E\````H$`,```$4`EH0 -XM```IA```"1N$```);`$```F -XMDA```+,+```FGA```.D+```FJA```$4,```MMA```"W"$```+BJ`````X0&```"+[H````)5@8``!`"1E,!```*(@4```)'4P$` -XM``(C``K_!P```DA?`````B,(``<(-`````FC`@``F`)F?0(```M?<``"9U,! -XM```"(P`+7W(``FA?`````B,("U]W``)I7P````(C#`I]"@```FH[`````B,0 -XM"JX&```":SL````"(Q(+7V)F``)L*@$```(C&`I#!@```FU?`````B,H"DD" -XM```"<+@````"(S`*\P$```)QC0(```(C.`JR!````G*M`@```B-`"M($```" -XM<\T"```"(T@*20````)T[0(```(C4`M?=6(``G/D" -XM```"(V@+7W5R``)Y7P````(C<`I&!````GS_`@```B-T"IL````"?0\#```" -XM(W<+7VQB``*`*@$```(C>`HM`````H-?`````R.(`0IW"0```H0?`0```R.0 -XM`0`,`5\```"-`@``#;@`````!PA]`@``#`%?````K0(```VX````#0,!```- -XM7P`````'"),"```,`1\!``#-`@``#;@````-'P$```U?``````<(LP(```P! -XM7P```.T"```-N`````T)`0``#5\`````!PC3`@``#NT"```!!PCS`@``#S0` -XM```/`P``$+4````"``\T````'P,``!"U```````#I@(```*%60$```((!5@# -XM```#C0H```8F[0````,%"```!BG,`````Q$(```&*NT````/-````&(#```0 -XMM0````\`$0@&>H<#```*Q0D```9[,0,```(C``KV"```!GQ'`P```B,$``-& -XM"0``!GUB`P``$0P&@,4#```*Q0D```:!,0,```(C``KV"```!H)'`P```B,$ -XM"D,*```&@SP#```"(P@``V0*```&A)(#```#^P(```$T`,```(C``KV"``` -XM!X4'!````B,(``.L"0``!X:*!0``$1@'B>T%```*Q0D```>*T`,```(C``KV -XM"```!XL'!````B,("D,*```'C/$#```"(Q```^\)```'C;H%```216QF``@F -XM`P8```ZV`P```0,&`0``""<4!@``#@4!```!$P0(-K,&```4,04````4F@<` -XM``$4Y@4```(4L04```,4S`,```04OP8```44C@<```843`0```<4D`4```@4 -XM4`````D4?`(```H4^@````L49P<```P4?@4```T4EP0```X4G`8```\4(0(` -XM`!`4(@$``!$4(@8``!(4Z@```!,4X0(``!04?`,``!44#@$``!84_@0``!<` -XM`^((```(3QH&```1"`AXU08```I6!0``"'A@!P```B,```G5"0``0`AH8`<` -XM``HT"@``"&SX`````B,`"E@)```(;;@````"(P@*$@H```AN^`````(C$`K^ -XM!P``"&_X`````B,8"ML(```(<+,&```"(R`*J@H```AQ<0````(C)`HY"``` -XM"'9F!P```B,H"GP*```(=W$````"(S`*(PD```AXO@8```(C.``'"-4&```' -XM"`D&```#U@D```AYU08```.,'```*MPH```HB"0$```(C``I>!```"B2C!P```B,(``<(N@<``!$("C8` -XM"```"E8%```*-K4(```"(P``"68#``!("BBU"```"K<*```**0D!```"(P`* -XMH@$```HJ"0$```(C"`I!`@``"BL)`0```B,0"H4-```*+`D!```"(Q@+861D -XM``HN7P````(C(`I;`0``"B]?`````B,D"LD'```*,%\````"(R@*404```HQ -XM7P````(C+`K9`0``"C)?`````B,P"F\````*,U\````"(S0*5P0```HT7P`` -XM``(C.`JB!```"C;I!P```B-```<(``@``!$("C_2"```"E8%```*/Q<)```" -XM(P``"0<&```@"CH7"0``"K<*```*.P,!```"(P`*=`H```H\`P$```(C"`H` -XM"```"CT4`0```B,0"J<````*/[L(```"(Q@`!PC2"```$1`*44()```*5P4` -XM``I1$`H```(C``HX`@``"E$6"@```B,(``FD"0``>`I#$`H```JW"@``"D0) -XM`0```B,`"VES``I%9@<```(C"`MO:@H```K7`@``"EX0"@```B,`"@0'```*7A8* -XM```"(P@`$0@*7X$*```*5@4```I?\`H```(C```)NP(``$`*5O`*```+;V9F -XM``I7^`````(C``MF@`*6?@````"(Q`*W0@```I: -XM^`````(C&`IO````"EQ?`````B,@"H@'```*7D$*```"(R@*3@L```I?:@H` -XM``(C.``'"($*```3!`J-'0L``!1B`0```!00!0```10W!@```A3X!0```Q03 -XM!@``!``1$`JI0@L```K6`@``"JGP"@```B,`"@,'```*J4(+```"(P@`!PCP -XM"@``$1`*JFT+```*U@(```JJM0@```(C``H#!P``"JIM"P```B,(``<(M0@` -XM`!$0"JN8"P``"M8"```*JQ<)```"(P`*`P<```JKF`L```(C"``'"!<)```1 -XM$`JMPPL```K6`@``"JWC!P```B,`"@,'```*K<,+```"(P@`!PCC!P``$1`* -XMK^X+```*U@(```JOXP<```(C``H#!P``"J_#"P```B,(`!$0"K$3#```"M<" -XM```*L1`*```"(P`*!`<```JQ%@H```(C"``)(P```/`*;MH-```*E0,```IO -XM"0$```(C``JA````"G)?`````B,("K8'```*U\````"(RP+;F]S``I]7P````(C,`HQ -XM!```"H)?`````B,T"D\!```*@U\````"(S@*O0<```J$7P````(C/`K-`0`` -XM"H5?`````B-`"F,````*AE\````"(T0*104```J'7P````(C2`K@#```"HD0 -XM"@```B-0"FH-```*BA`*```"(U@*Y@D```J+$`H```(C8`I^!@``"I/V"@`` -XM`B-H"GX*```*FU\````"(VP*KP<```J>X`T```(C<`KS!@``"J'@#0```B-X -XM"NT&```*I%,!```#(X`!"E0'```*IU,!```#(X@!"C`!```*J1T+```#(Y`! -XM"@<````*JD@+```#(Z`!"C8!```*JW,+```#([`!"G@&```*K9X+```#(\`! -XM"HP$```*K\D+```#(]`!"H@'```*L>X+```#(^`!``<(^`4```<(^````!73 -XM"@```>(!\"M```````!M+$````````)W"#H.```696-P``'A.@X```%5%G-E -XM8P`!X1`*```!5!=S``'C$`H```%1&/,*```![D,L0`````````<($PP``!D! -XMC`D```&C`P%P+$```````"8N0```````OA```*`.```:96-P``&B`SH.``#W -XM$```&W,``:0#$`H``$`1```<`0L```&E`Z`.``!V$0``'7-H``&F`X('```# -XMD9!_``<(;`<``!D!\@<```%[`P$P+D```````#WPD```%L`P%`+T```````*LO0```````_!(` -XM`%`S0```````&C5```````#4&```(A$``!IE -XM8W```4@".@X``%T9```; -XM$@``$+4````$``<("0$``"(!F`H```$W`5\```!`-T```````(DX0``````` -XMY!X``'X3```C96-P``$V.@X``!T?```DMPH```$V"0$``&8?```KD`4``$`3 -XM```ET```#O(```,;<*```!7PD!```X(0``%VES:``!8(('```#D9!_)6ES -XM``%A9@<``&XA```Q!0D```%B%`$``*0A```Q$0D```%C7P```-PA````,@&( -XM"````?D!L#E```````#%/$```````!(B``"S%```(V5C<``!^#H.``##(@`` -XM)7,``?H0"@``#",``#&W"@```?L)`0``52,``"5IL'```!__@```"3)```,3P* -XM```!__@```#<)```'!$)```!``%?````."4````SDP@```*'`0%?`````]P4 -XM```T7V,``H`(#`0``('-R8P`!>`(#`0``(&5N9``!>`(#`0``.3\( -XM```!>0)?`````#.?"0```=X"`;@````!:Q<``#1S``'=`A`*```[``@```'= -XM`FL7```@:60``=\"H`X``"!B``'@`@,!```@$"%`$``#D1"0```>(" -XM7P`````'"!0!```X7@D```$@`@$!V1<``#1E8W```1\".@X``#1S``$?`A`* -XM```@;W-H``$A`H('```@;"````;4!7P````$,&```.F5C -XM<``!M#H.```HMPH```&T"0$``"IS86,``;:U"````#B>"````X8```V:18```8J```M7A8````U=18``"`(```!E0&7 -XM&0``+8\6```M@Q8``#R`"```/9D6```\*@``/:46``!R*@``,+$6```PO18` -XM`#W'%@``#RL``##3%@``/=T6``#=*P``/><6``#1+```,/$6```O_18```.1 -XML'XP"1<``#<6%P``H`D```%[`BTR%P``+2@7```\X`D``#T^%P``Q2T``#!) -XM%P``,%,7```]7A<``),N````````-6T5``!`"@```9`!,AH``"V'%0``+7L5 -XM```\H`H``#V1%0``W"X``"^=%0```Y'0?B^I%0```Y&P?R^U%0```Y&0?SW! -XM%0``)2\``"_-%0```Y&H?B_9%0```Y&@?B_E%0```Y&8?B_Q%0```Y&0?CW\ -XM%0``NB\``#`(%@``/1(6```\,```/1X6``#1,```/2H6```M,0`````^V1<` -XM`+Y`0```````X4!````````!H@%T&@``+?47```MZA<``"[-0$```````.%` -XM0```````/0`8``!C,0`````W#!@``)`,```!HP$M&A@``#SP#```/208``"L -XM,0``/2\8```N,@``-[,4``!P#0```=D"-M`4``!W,@``+<44````````/SP) -XM```"BMP4```!`4#%!````J`!7P````$!`-@)```"`-X%```(`0T'```!)@L` -XM`.$#``"024```````(5-0```````$`@```(!!JL!```"`0BI`0```@(%NP4` -XM``("!]$&```#!`5I;G0`!$T#```".%L````"!`>6`@```@@%70,```2&`@`` -XM`CIT`````@@'D0(```((!(<#```"!`2I`P``!/4$```"4FD````%"`<&"`(! -XM!K(!```$3P,```->4`````2(`@```V-I````!PB9````!PC"````")D````$ -XM]P0```/HB0````3[`@``!":K````!-<#```$**L````$I@4```0KH`````0P -XM"0``!"VK````"3@$9W`L```1KT@````(C$`J("P``!&S2`````B,8"CP+ -XM```$;?,````"(R`*@`L```1N\P````(C*`I7"P``!&_S`````B,P``0Q"P`` -XM!'#^````"T5L9@`%)HT!```,M@,```$$!@$```4GG@$```P%`0```0T$!57C -XM`0``#A\$````#L\%```!#G8$```"#M\!```##IX#```$#@T````%#L4%```& -XM#LH"```'#BX"```(``<(DP$```1?"P``!B]W`0``!P@T`````@@%6`,```D( -XM!R08`@``"E8%```')$$"```"(P``#T,-```0!R%!`@``"K<*```'(KP````" -XM(P`*7@0```,!```" -XM(P@0;W,`!T;C`0```B,0$&)U9@`'1Y<````"(Q@0;V9F``=(JP````(C(!!S -XM>@`'2:L````"(R@08V%P``=*JP````(C,`HV"@``!TNK`````B,X"MT(```' -XM3*L````"(T`*WP0```=-20````(C2`JQ````!TY)`````B-,"JL$```'3TD` -XM```"(U`*W0H```=1>P,```(C6`HM`P``!U)Z!````B-H``<(H`,```<(;@0` -XM``D0!U*?!```"E<%```'4FX$```"(P`*.`(```=2=`0```(C"``/*`4``!`' -XM7L@$```*UP(```=>;@0```(C``H$!P``!UYT!````B,(``D(!U_?!```"E8% -XM```'7TX%```"(P``#[L"``!`!U9.!0``$&]F9@`'5ZL````"(P`09G-Z``=8 -XMJP````(C"!!MI3@4```(C``H#!P``!ZF@!0```B,(``<(3@4```D0!ZK+!0``"M8"```' -XMJA,#```"(P`*`P<```>JRP4```(C"``'"!,#```)$`>K]@4```K6`@``!ZMU -XM`P```B,`"@,'```'J_8%```"(P@`!PAU`P``"1`'K2$&```*U@(```>M00(` -XM``(C``H#!P``!ZTA!@```B,(``<(00(```D0!Z],!@``"M8"```'KT$"```" -XM(P`*`P<```>O(08```(C"``)$`>Q<08```K7`@``![%N!````B,`"@0'```' -XML70$```"(P@`#R,```#P!VXX"```"I4#```';[P````"(P`*H0````=R20`` -XM``(C"`JV!P``!W-)`````B,,$&EE8P`'=4D````"(Q`0;V5C``=V20````(C -XM%!!E:6X`!W#@(```"(R`*Q@$```=Z20````(C*`HJ -XM!```!WM)`````B,L$&YO"20````(C-`I/`0`` -XM!X-)`````B,X"KT'```'A$D````"(SP*S0$```>%20````(C0`IC````!X9) -XM`````B-$"D4%```'ATD````"(T@*X`P```>);@0```(C4`IJ#0``!XIN!``` -XM`B-8"N8)```'BVX$```"(V`*?@8```>35`4```(C:`I^"@``!YM)`````B-L -XM"J\'```'GCX(```"(W`*\P8```>A/@@```(C>`KM!@``!Z3T`0```R.``0I4 -XM!P``!Z?T`0```R.(`0HP`0``!ZE[!0```R.0`0H'````!ZJF!0```R.@`0HV -XM`0``!ZO1!0```R.P`0IX!@``!ZW\!0```R/``0J,!```!Z\G!@```R/0`0J( -XM!P``![%,!@```R/@`0`'"((!```'"*L````1$0L```%5`0%Q"```$G-E9P`! -XM5$X%```2=``! -XMA\<```#M-```'FD``8A)````$#4````@`08+```!9`%@3$```````(5-0``` -XM````634``!5E8W```6/Q"```SC4``!-S96<``65.!0``'Z`+```!9ND!```# -XMD:!_&,8!```!9\<````7-@``$VD``6A)```````!$P```@")!P``"`$-!P`` -XM`9L,``#A`P``D$U```````#:9D```````&4)```"`0:K`0```@$(J0$```(" -XM!;L%```#^@$```(V30````("!]$&```$!`5I;G0``TT#```".&8````"!`>6 -XM`@```TP&```".7@````""`5=`P```X8"```".HH````""`>1`@```@@$AP,` -XM``($!*D#```#]00```)2?P````4(!P8(`@$&L@$```-.!@```T]M`````_P! -XM```#64(````#3P,```->6P````.(`@```V-_````!PBO````!PCN````"*\` -XM```#]P0```/HGP````((!5@#```#C0H```0FS`````.\#```!"?!`````Q$( -XM```$*LP````)$`2W@P$```I+#0``!+@;`0```B,`"A4-```$N04!```"(P0* -XMJP(```2Z&P$```(C"`H-#0``!+LT`````B,,"O,,```$O#0````"(PT*_`P` -XM``2]$`$```(C#@`##@P```2^)@$```/[`@``!2;7`````YN@$```(C+`KF"@``!5_%`0```B,P"NL( -XM```%8,4!```"(S@``[P(```%8=`!```)$`6#E0(```K%"0``!82.`0```B,` -XM"O8(```%A<4!```"(P@``ZP)```%AG`"```)&`6)TP(```K%"0``!8J.`0`` -XM`B,`"O8(```%B\4!```"(P@*0PH```6,KP$```(C$``#[PD```6-H`(```D8 -XM!;X[`P``"DL-```%O[H!```"(P`*#0T```7`-`````(C!`KS#```!<$T```` -XM`B,%"OP,```%PID!```"(P8*%0T```7#C@$```(C"`JK`@``!<3%`0```B,0 -XM``,U#```!<7>`@``"T5L9@`&)E$#```,M@,```$#!@$```8G8@,```P%`0`` -XM`0T$!C8!!```#C$%````#IH'```!#N8%```"#K$%```##LP#```$#K\&```% -XM#HX'```&#DP$```'#I`%```(#E`````)#GP"```*#OH````+#F<'```,#GX% -XM```-#I<$```.#IP&```/#B$"```0#B(!```1#B(&```2#NH````3#N$"```4 -XM#GP#```5#@X!```6#OX$```7``/B"```!D]H`P``"0@&>",$```*5@4```9X -XMK@0```(C```/U0D``$`&:*X$```*-`H```9LUP````(C``I8"0``!FVM```` -XM`B,("A(*```&;M<````"(Q`*_@<```9OUP````(C&`K;"```!G`!!````B,@ -XM"JH*```&<68````"(R0*.0@```9VM`0```(C*`I\"@``!G=F`````B,P"B,) -XM```&>`P$```"(S@`!P@C!```!PA7`P```]8)```&>2,$```#6P@```@`(2=<````" -XM(R@08V%P``A*UP````(C,`HV"@``"$O7`````B,X"MT(```(3-<````"(T`* -XMWP0```A-5`````(C2`JQ````"$Y4`````B-,"JL$```(3U0````"(U`*W0H` -XM``A1:P8```(C6`HM`P``"%)J!P```B-H``<(D`8```<(7@<```D0"%*/!P`` -XM"E<%```(4EX'```"(P`*.`(```A29`<```(C"``/*`4``!`(7K@'```*UP(` -XM``A>7@<```(C``H$!P``"%YD!P```B,(``D("%_/!P``"E8%```(7SX(```" -XM(P``#[L"``!`"%8^"```$&]F9@`(5]<````"(P`09G-Z``A8UP````(C"!!M -XME0````"(R@**@0```A[5`````(C+!!N;W,`"'U4`````B,P"C$$```(@E0` -XM```"(S0*3P$```B#5`````(C.`J]!P``"(14`````B,\"LT!```(A50````" -XM(T`*8P````B&5`````(C1`I%!0``"(=4`````B-("N`,```(B5X'```"(U`* -XM:@T```B*7@<```(C6`KF"0``"(M>!P```B-@"GX&```(D[$(```"(V@*?@H` -XM``B;5`````(C;`JO!P``")Z;"P```B-P"O,&```(H9L+```"(W@*[08```BD -XMH0L```,C@`$*5`<```BGH0L```,CB`$*,`$```BIV`@```,CD`$*!P````BJ -XM`PD```,CH`$*-@$```BK+@D```,CL`$*>`8```BM60D```,CP`$*C`0```BO -XMA`D```,CT`$*B`<```BQJ0D```,CX`$`!PA&`P``!PC7````!P@T````$:\+ -XM```!00%4````D$U```````"@34````````)W"-8+```2E@#```&W,``>M>!P``'(,,```![``.```<[@P```'MH0L``!MI[% -XM!```&W-Y;0`![]`$```;:60``?`&#@``&VES``'QM`0``!SG"P```?+S```` -XM&VYD>``!\O,````<"`P```'R\P```!MS8P`!\O,````<\P8```'R\P```!P? -XM#````?/S````'`4-```!\_,````(````<9PP```'UX@```!ME8P`!]E0````<$0D```'V5````!MI``'V -XM5````!T_#````9L!``<(1`@```<(N@0``!X>#0```58!5`````%0#@``&F5C -XM<``!5&`,```:@` -XM````(&X,```!@`(!5`````&%#@``(65C<``!?P)@#```(K<*```!?P+H```` -XM&',``8$",04````94PT```%Z`0$5#P``&F5C<``!>6`,```:^@````;9``!?`8.```;B@P```',`50````!1`\``!IE8W````!5`````%?#P``&G,``=_6 -XM"P```![1"P```38!5`````%Z#P``&G,``376"P```"`G#````3H"`!])P`- -XM```@#@```>,!M!(``"@-#0``*<`.```J&`T``-0[```K(0T``"HL#0``R#P` -XM`"PW#0```Y&@?2Q"#0```Y&`?RI-#0``@#T``"I7#0``.#X``"IA#0``S3X` -XM`"IL#0``,3\``"MW#0``*X(-```JC`T``%0_```KEPT``"JB#0``S3\``"JM -XM#0``%$(``"JX#0``7T,``"K##0``GT0``"K.#0``-$4``"K9#0``F$4``"KC -XM#0``YT4``"KN#0``[D8``"WW#0``:%%````````N#`X``"`4```!<@$H1`X` -XM`"@[#@``*#(.```H*`X``"@=#@``+U`.```W6$```````%U80````````5O1 -XM$0``,&X.```11P``*&(.```Q-UA```````!.6$```````"IZ#@``1T<````` -XM,H4.``#P%````6=4$@``,)T.``#O1P``*)(.```ID!4``"JG#@``$D@``"JR -XM#@``6T@``"J[#@``*$D``"S$#@```Y&@?RS-#@```Y'@?BS7#@```Y'@?"KA -XM#@``T$D``"KJ#@``G4H``"KU#@``:DL``"H`#P``O4P``"L)#P`````R%0\` -XM`#`7```!:902```H.@\``#`Q#P``BDT``"@F#P``,T0/```56T```````"A; -XM0````````=@\``&`7```!)0(HC`\``"GP%P``+)8/```#D>!\+*(/```#D>!^*JX/ -XM``!_3@``*KD/```!3P``*\4/```JT`\``(-/```KW`\````````(`P```@`S -XM"@``"`$-!P```78-``#A`P``X&9````````/:4```````!(-```"`0:K`0`` -XM`@$(J0$```("!;L%```"`@?1!@```P0%:6YT``($!Y8"```""`5=`P``!(8" -XM```".FD````""`>1`@```@@$AP,```($!*D#```$]00```)27@````4(!P8( -XM`@$&L@$```3W!````S)^````!PB.````!PBL````"(X````""`58`P``!(@" -XM```$8UX````$!@$```4GS@````D%`0```0<(PP````H0!E'_````"U<%```& -XM4@`&2;@````"(R@-8V%P``9*N`````(C,`LV"@`` -XM!DNX`````B,X"]T(```&3+@````"(T`+WP0```9-20````(C2`NQ````!DY) -XM`````B-,"ZL$```&3TD````"(U`+W0H```91V@````(C6`LM`P``!E+9`0`` -XM`B-H``<(_P````<(S0$```H0!E+^`0``"U<%```&4LT!```"(P`+.`(```92 -XMTP$```(C"``.`7X-```!5P%)````X&9```````!O9T```````,Q/``"#`@`` -XM#W0``5;-`0``?5````]S``%6I@```-E0```08@`!6*8````040``$&,``5BF -XM````1E$``!!R``%8I@```'Q1```0;&5N``%9E0```+)1```1<0T```%9E0`` -XM`.A1````$@%@#0```2D!<&=````````/:4```````!Y2```/=``!*,T!``#/ -XM4@``#W,``2BF````*U,``!-R``$JI@```!!B``$KH````&-3```08P`!*Z`` -XM``"P4P``$&QE;@`!+)4```#Y4P``$7$-```!+)4````O5```$5L!```!+4D` -XM``!X5``````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+ -XM.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8` -XM21,```D6``,..@L[!4D3```*$P$##@L+.@L["P$3```+#0`##CH+.PM)$S@* -XM```,#0`#"#H+.PM)$S@*```-%0$G#$D3`1,```X%`$D3```/$P`##CP,```0 -XM`0%)$P$3```1(0!)$R\+```2$P$+"SH+.PL!$P``$Q8``P@Z"SL+21,``!0$ -XM`0L+.@L["P$3```5*``##AP-```6!`$##@L+.@L["P$3```7+@`##CH+.P4G -XM#!$!$@%`!@``&"X!`PXZ"SL%)PP@"P$3```9!0`#"#H+.P5)$P``&BX!`PXZ -XM"SL+)PP@"P$3```;!0`#"#H+.PM)$P``'#0``PXZ"SL+21,``!TT``,(.@L[ -XM"TD3```>+@$##CH+.P4G#!$!$@%`!@$3```?!0`#"#H+.P5)$P(&```@-``# -XM#CH+.P5)$P(&```A-``#"#H+.P5)$P(&```B-``##CH+.P5)$P``(QT!,1-5 -XM!E@+604``"0%`#$3```E"P%5!@``)C0`,1,"!@``)S0`,1,""@``*`4``PXZ -XM"SL%21,``"DT``,(.@L[!4D3```J+@$_#`,..@L[!2<,21,1`1(!0`8!$P`` -XM*P4``PXZ"SL%21,"!@``+!T!,1-5!E@+604!$P``+30`,1,``"XT``,..@L[ -XM"TD3`@H``"\T``,..@L["TD3/PP\#```,#0``PXZ"SL%21,_##P,`````1$! -XM)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+ -XM/@L#"```!20`"PL^"P``!@\`"PL```+@$##CH+.P4G#!$!$@%`!@$3```?!0`##CH+.P5)$P(&```@ -XM-``#"#H+.P5)$P``(2X!/PP##CH+.P4G#$D3$0$2`4`&`1,``"(N`3\,`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```C!0`#"#H+.PM)$P(&```D!0`##CH+.PM)$P(& -XM```E-``#"#H+.PM)$P(&```F+@$##CH+.PLG#$D3$0$2`4`&`1,``"+@$# -XM#CH+.PLG#$D3(`L!$P``'P4``PXZ"SL+21,``"`N`0,..@L[!2<,21,@"P$3 -XM```A!0`#"#H+.P5)$P``(@4``PXZ"SL%21,``",T``,..@L[!4D3```D+@$_ -XM#`,..@L[!2<,$0$2`4`&```E-``#"#H+.P5)$P(*```F-``##CH+.P5)$P(& -XM```G'0$Q$U4&6`M9!0$3```H!0`Q$P``*0L!508``"HT`#$3`@8``"LT`#$3 -XM```L-``Q$P(*```M"@`Q$Q$!```N'0$Q$U4&6`M9!0``+QT!,1,1`1(!6`M9 -XM"P$3```P!0`Q$P(&```Q"P$1`1(!```R'0$Q$U4&6`M9"P$3```S'0$Q$Q$! -XM$@%8"UD+`````1$!)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```R0`"PL^ -XM"P,(```$%@`##CH+.PM)$P``!20`"PL^"P``!@\`"PL```7!E2YH````````"0)@'$````````/9 -XM!`%(")P#=_U(")P#=_U(")P#X7W]`BL5`WHY6V4(D0,9C>(X`[E__0BO`Q(( -XMJ0-P_0@2"*T#\GX('4D(9@A`13OR"&=84J)#4E:JG9R!99V<2PB"`B03@8(( -XMGTFLGH4(6H*""&>"-CQ7`P^-<@AR.%8#"6,(67*!`QH(8P,*C0-Z_0,W")N4 -XM@(`#QWX".`$#E`&-G#@Z`PVIG#@Z9@@["$@(0(X(6`/J?L7"`_L`Q8%%.U8X -XM.F(\U%:.@/Y&`^-^?P,2C0/Y``@K_P-6"%4#QP`(Q0.&?P@Y`R,(Q0/=``C% -XM`[Y_"'\#F7\(Q0-B",4(S`/J``C%`\L`",4#I7\(.0/8``C%`^E^_0-YX0.4 -XM`?T#G@+OGE+(R9PX.F7F?8^XN+6`@;BXLX"%`WH('8#P\/16CU-)BTD(5P/O -XM?0A_"/$#P@`",0$#OG^W`P\(X0-Q""L#"M,#=@@=QP@ZR'(#%M,#=0AQ"#K( -XM7,``'-E8W1I;VYS+F,````` -XM7!E2YH````````"0+P*T````````/D`0&X"%24`B@2<@-W8P.\!0CA -XM"*!)"$J.CDB`CHZ`>EP(3[U(.%8($W*`2(!R;DP(R`-L",5(1DA&2`-KFP,, -XM",4##PC%`PL(Q0.J?P(H`:X#$PA'9P-I"&.."!3G@-D('_562@-CC0,6",4( -XMR@-/`B0!UD0]=V324,;&Q@-#"#GI"+@($P@L"$H(G4$#>#DZ@$AR@$A#2PAE -XM"!)RA31,-$A(Q0C(`PK]`PH(Q0C-`ZU_`BP!D0,7 -XMTP-NC0A+`PEQ9("`9(`#;6,#%0@Y5DH#;7$Z?CN`9(`##F,#:7$#%0C%`TT" -XM)P$(Q692/-8(/59B`DH05^0#=`(H`0C(",P#O7X")0&A"'?&E0C6"%:%"!)) -XM-U:.`V+%N`,2C0-M?P,BC0-J"!W&`PW]",H#Z7T")`$#"HT(2@B>6%)*U45) -XM-ZX(+#A(,&"`4@@24CP#%D)L(/<:0`B,,`Q$(1P,58P-K*P,-.0-S*TX(6@A( -XMQ@@\"&<##0@K`WF-20-6 -XM[PCU"*LZ2%E?2(Z.@`,3X0,+"'%6D`-KX0-6",4(R`,B",4#<0C%`V3A`\,` -XM",4#[`(")@$@1%B=!`(#QGW]_@0!`[<"Q8YT!`(#Q'T(.<8$`0.W`CD$`@/) -XM?4<$`0.W`G$$`@/)?3D$`0.W`CDQ;0@M!`(#Q'W]R`0!`W$(Q?U8`\0![WV! -XM10.^?G''@P,)`C5HPZ.%:/"!Y^5E0ML)=9ROB.`POA -XM`VF;JP-L?P.9?@A'A0.6`0CA`X5]J>(#E00(.0A:_`@[5H,$`@.O?0A'_@0! -XM`YH""!W4""P#<=,(2`,850@75GX#C'R-`XP$"-,#89OBN.XZ5M0#=M,#6PAC -XMX@/G``AQ`VS]`]Q^"%4(9PC_"&8('C@ZGP)B"XYR`E\1`X)_"/V`R@,="/T( -XM@@@>.%8"-!4(UP(M$3<[9M3GK`-G`DP!JJH(Y@,*",6L!`(#BW\"3P$$`0/X -XM`.$"91$"1@T#A@$"1@$#S0#A`Z]^")OX`D@-`E`*`W`(Q0/-`)L##0C%`WD( -XMQ0-)",4#9PC]`QT([U8J+&?H"#T"*Q$#8\4#$@)"`0(4``$!40$```(`E@`` -XM``$!^PX*``$!`0$````!+W5S7!EG$Q`VL('=,\ -XM4CS(.@BXW0-P")O3/%(\R#H(N-T#ZWX(FP,)*P-W50@CCH_&"(\(U@C7`YM^ -XMJ0B""$L(H`AS.PC4.')JA@-XFPAR"#P")!(('LE6@[QZ+P@Z"#P")!,(6%:" -XM`R.-"!XX5@/*``(D`0(E$`(U$PAGC@C&JKBX@8Y4@&8#;`+5`0$#&<6`"!YP -XM+`@>"&%TG@(F$8#&`R#%C@,4J0,5J0B0<@,+?P-V50,*50-V58`#+4<#5']R -XM;TNXP.5?W&<`]<`FP,; -XM"!U6`U=_40,+?P-W?[B_`WE52*JXN*JDAL@(Q@-'",4(D+%R\(!(G\#M`%_`[!^`D$! -XM`R)5`WI'`[.%Y\@/L?0CO`ZL$""L(9`.4?N$#4(T#>0@K`_Y]"$<( -XMUW0#Z0#O`B86`Y9_J<@#254#O@((8P(N$`@>"#RO"$@#"0+4`0$(/+M4.H", -XM4PBO"'*`.$@#OWX(?P,+"$<#F`$(*P@ZJ@A(`LH!%@+1`18(.@-X`B\!"#<( -XM.PCM".P#D'\"S0$!`_4`TP,Q`B@!`TW]`YA^`BT!`ZD#",4#O'X(Q0CM`S@( -XMX0-*`C0!"#<#@@$(.7*X@$AR;P.Q?\4#2@+,`0$"+A$#-`(N`0-/"#D#,P(E -XM`0,V`D.')F"*X( -XM<@B?"!8")!("(Q0(9`AP:`(W$`A6*CK&V@(F$^,(\4@#;[<#U0$(C0(I$0,T -XM`B,!`ZQ_`BX!5BHL`_,!")L#XGX(?P/_?@(J`0.-?_U6*BP#[P#3`Y)_*P-# -XM"'\#]@#A",D(%`.$?^$#AP,(Q0.G?0C%`BL45BHL`_8!Q0.@`0(K`0/7?'$" -XM(Q,(/`-Z",4"'@`!`0(!```"`(D````!`?L."@`!`0$!`````2]U7!EG\_`W5Q`PM5`T&W_4VX@`C)CT4[Z`,) -XM50-Q?P@>JL<#%PA5`VOA5PA6.GY(.$@#"0(D`4A&2`@;RDBX.%:`N`-ZX0-E -XM_0@``0$`%````/____\!``%X$`P'")`!````````'`````````!@'$`````` -XM`"D`````````1`X0```````<`````````)`<0```````*0````````!$#A`` -XM`````!P`````````P!Q````````I`````````$0.$```````+`````````#P -XM'$```````(\&````````2H\"A@9A#N`!C@.-!(P%@P<`````````/``````` -XM``"`(T```````'`(````````0@X0CP)%#AB.`TH.($(.*$$.,$$..$<.T`&# -XM!X8&C`6-!````````!0```#_____`0`!>!`,!PB0`0```````!0```#H```` -XM\"M```````!]`````````"0```#H````<"Q```````"V`0```````$J#!8P# -XM40YPC0*&!``````L````Z````#`N0```````!P$```````!"#A!!#AB&`XP" -XM1`X@1`Y@@P0````````<````Z````$`O0```````:P````````!.#B"#`X8" -XM`#0```#H````L"]```````#B`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$ -XM#G"#!H8%C`0`````)````.@```"@,4```````/0`````````00X0A@)$#AA$ -XM#B"#`P```"0```#H````H#)````````Y`0```````$J&!(,%5`ZP`8T"C`,` -XM```L````Z````.`S0```````.@$```````!"#A!"#AA!#B!!#BA$#G"#!88$ -XMC`.-`@`D````Z````"`U0```````_P````````!!#A"&`D0.&$0.8(,#```` -XM+````.@````@-D```````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP -XM@P4`'````.@```#0-D```````"(`````````1@X0```````<````Z``````W -XM0```````-P````````!$#A```````"0```#H````0#=```````!)`0`````` -XM`%J,`X,%C0*&!$<.8``````L````Z````)`X0```````%0$```````!"#A", -XM`D0.&(8#0PX@@P1(#G`````````\````Z````+`Y0```````%0,```````!" -XM#A!'#AA"#B!"#BA!#C"&!HP%C02.`X\"20XX1`Z0`8,'````````)````.@` -XM``#0/$```````-L`````````00X0A@)%#AA$#B"#`P```#P```#H````L#U` -XM``````#3"P```````$(.$$(.&$(.($(.*$$.,$$..$<.D`*#!X8&C`6-!(X# -XMCP(````````4````_____P$``7@0#`<(D`$````````4````X`,``)!)0``` -XM````V0`````````T````X`,``'!*0```````[@$```````!"#A!"#AA"#B!! -XM#BB&!8P$C0..`D0.,$0.L`&#!@```"P```#@`P``8$Q````````E`0`````` -XM`$(.$$$.&$$.((,$A@.,`D<.8````````!0```#_____`0`!>!`,!PB0`0`` -XM`````!0```!X!```D$U````````0`````````!0```!X!```H$U````````0 -XM`````````"0```!X!```L$U```````!!`````````$$.$(8"1`X81`X@@P,` -XM```<````>`0```!.0```````9@````````!.#B"&`H,#`!P```!X!```<$Y` -XM``````!F`````````$X.((8"@P,`/````'@$``#@3D```````/H7```````` -XM0@X01PX80@X@C02.`X\"10XH00XP00XX1P[@!(,'A@:,!0```````!0```#_ -XM____`0`!>!`,!PB0`0```````#P```!H!0``X&9```````"/`````````$(. -XM$$(.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`DH.0``````````\````:`4` -XM`'!G0```````GP$```````!"#A!"#AA"#B"-!(X#CP)%#BA!#C!!#CA$#E"# -XM!X8&C`4`````````7V5X=')A`'9?F4`5]L;VYG;W!T -XM`!%3$9?0U].54Q,`&]P -XM:&YU;0!S96-T:6]N6U?;&ES=`!S=')I<%]L;VYG;W!T6U?:V5E<`!%3$9?5%]32$12`'-A8U]L:7-T`&YO8V]P>0!? -XM6U?F4`14Q&7U1? -XM4U=/4D0`8W)E871E7V9I;&4`7U]F9FQA9W-?=`!%3$9?5%](04Q&`&]P=&%R -XM9P!S:&]R="!U;G-I9VYE9"!I;G0`14Q&7TM?05(`=E]R96P`6YC7W-E8W1I;VYS`$5L -XM9C8T7U-H9'(`:7-?'0`;G-E8W,`16QF-C1?6'=O`!R7V%D9&5N9`!R96PV-`!I -XM@!A9&1?=&]?:6YS96=?;&ES=`!P7V%L:6=N`$=% -XM;&9?4&AD<@!P7V9L86=S`'!?='EP90!P7W9A9&1R`'!?;65M6UB;VQS`&ES7V1E8G5G7W-Y;6)O;`!S=%]S>@!I -XM6T`5]C87``8V%L8U]N;VYL;V-A;`!%;&8V-%]3>6T`8W)E -XM871E7W-E8W-Y;0!'16QF7U-Y;0!A9&1?=&]?:V5E<%]L:7-T`'-T7V)U9@!L -XM;V]K=7!?5]B=68`:7-?;F5E9&5D7W-Y;6)O;`!S -XM>6UB;VQS+F,`:7-?;&]C86Q?6UB;VP`;'-Y9&%T80!L;V]K=7!?:V5E<%]S>6UL:7-T`'-T7VYA -XM;64`;6%R:U]S>6UB;VQS`&EN>@4````````?!P````````$`7@`````````````````````&`0`````` -XM``D!`````````0!0"0$````````,!`````````$`7"P$````````-00````` -XM```!`%QQ!````````'0$`````````0!0=`0```````#I!`````````$`7$T% -XM````````:04````````!`%R0!0```````-\&`````````0!<\`8````````0 -XM!P````````$`7``````````````````````O`P```````+H#`````````0!3 -XMVP,```````#\`P````````$`4Z,$````````SP0````````!`%/@!0`````` -XM`!<&`````````0!3CP8```````"M!@````````$`4\$&````````WP8````` -XM```!`%,`````````````````````?`(```````"Z`P````````,`D;A_VP,` -XM```````L!`````````,`D;A_HP0```````#I!`````````,`D;A_5@4````` -XM``!I!0````````,`D;A_P@4````````7!@````````,`D;A_CP8```````"M -XM!@````````,`D;A_P08```````#?!@````````,`D;A_\`8```````#_!@`` -XM``````,`D;A_`````````````````````"`'````````(@<````````"`'<( -XM(@<````````G!P````````(`=Q`G!P```````#$'`````````@!W&#$'```` -XM````,P<````````"`'<@,P<````````T!P````````(`=R@T!P```````#4' -XM`````````@!W,#4'````````/`<````````"`'`````````````````````"`'````````00<````` -XM```!`%1!!P```````(8-`````````0!?U0T```````"0#P````````$`7P`` -XM``````````````````!I!P```````&X'`````````0!540D```````!6"0`` -XM``````$`58()````````APD````````!`%6?"0```````*0)`````````0!5 -XMT`D```````#5"0````````$`58$+````````C`L````````!`%4U#``````` -XM`#H,`````````0!5/0P```````!"#`````````$`59T-````````H@T````` -XM```!`%7.#0```````-,-`````````0!5X@T```````#G#0````````$`5:4. -XM````````J@X````````!`%7)#@```````,X.`````````0!5W0X```````#B -XM#@````````$`55(/````````7@\````````!`%4````````````````````` -XMA`@```````"<"`````````$`4%H)````````>`D````````!`%"H"0`````` -XM`,8)`````````0!0]@T````````"#@````````$`4``````````````````` -XM```P#````````#H,`````````0!420P```````!0#`````````$`5``````` -XM```````````````I#````````#H,`````````0!120P```````!0#``````` -XM``$`40````````````````````#\"0```````/\)`````````0!0_PD````` -XM```>"@````````$`75`*````````4`H````````!`%T6#@```````"<.```` -XM`````0!=,0X```````!"#@````````$`70````````````````````"$"``` -XM`````/\)`````````0!=4`H````````4"P````````$`7=$+````````7`P` -XM```````!`%WV#0```````!8.`````````0!=0@X```````!G#@````````$` -XM70````````````````````"$"````````!X*`````````0!3G@H```````"A -XM"@````````$`4*$*````````%`L````````!`%/1"P```````%P,```````` -XM`0!3]@T````````'#@````````$`4Q8.````````)PX````````!`%,Q#@`` -XM`````$(.`````````0!34PX```````!G#@````````$`4P`````````````` -XM``````"$"````````)P(`````````0!0GP@```````#;"`````````$`4.(( -XM````````5@D````````!`%!X"0```````(<)`````````0!0C`D```````"D -XM"0````````$`4,8)````````U0D````````!`%#:"0```````/D)```````` -XM`0!0\@L````````)#`````````$`4`X,````````$PP````````!`%!0#``` -XM`````%4,`````````0!0`````````````````````!X*````````1@H````` -XM```!`%,'#@```````!8.`````````0!3`````````````````````#H,```` -XM````0@P````````!`%`[#0```````'H-`````````0!0```````````````` -XM`````!T+````````T0L````````!`%;2#````````&H-`````````0!6U0T` -XM``````#V#0````````$`5B<.````````,0X````````!`%8````````````` -XM````````&PL````````E"P````````,`D;!^)0L````````M"P````````,` -XMD;1^+0L````````P"P````````,`D;A^,`L````````R"P````````$`73(+ -XM````````,@L````````!`%,R"P```````$L+`````````P"1L'Y+"P`````` -XM`&P+`````````0!3;`L```````!R"P````````$`4W(+````````APL````` -XM```!`%.'"P```````(X+`````````0!=C@L```````"6"P````````$`4Y8+ -XM````````F`L````````#`)&T?I@+````````H`L````````!`%.@"P`````` -XM`*(+`````````P"1N'ZB"P```````+`+`````````0!3L`L```````"R"P`` -XM``````,`D;!^L@L```````#1"P````````$`4SH,````````20P````````# -XM`)&T?M(,````````^@P````````!`%/Z#`````````H-`````````P"1M'X* -XM#0````````P-`````````P"1L'X,#0```````!0-`````````0!3%`T````` -XM```S#0````````,`D;A^,PT```````"!#0````````$`4X$-````````E0T` -XM```````#`)&P?I4-````````U0T````````#`)&T?M4-````````]@T````` -XM```!`%,G#@```````#$.`````````0!3`````````````````````$4+```` -XM````3@L````````!`%#2#````````.(,`````````0!0)PX````````L#@`` -XM``````$`4``````````````````````Z#````````$D,`````````0!6:@T` -XM``````!Z#0````````$`5GH-````````E0T````````!`%"5#0```````-4- -XM`````````0!6`````````````````````(`,````````F`P````````!`%"Q -XM#@```````+\.`````````0!0`````````````````````&,(````````_PD` -XM```````!`%T4"P```````#`+`````````0!=\@L```````#2#`````````$` -XM7?8-````````!PX````````!`%UG#@```````&@/`````````0!=B0\````` -XM``"0#P````````$`70````````````````````!<#````````)@,```````` -XM`0!0FPP```````#+#`````````$`4&<.````````J@X````````!`%"_#@`` -XM`````,X.`````````0!0TPX```````#B#@````````$`4.<.````````"@\` -XM```````!`%``````````````````````.@P```````!)#`````````$`5CD/ -XM````````10\````````!`%9%#P```````%4/`````````0!050\```````!H -XM#P````````$`5@````````````````````"``````````)L``````````@!W -XM")L`````````-@(````````#`'?P``````````````````````"````````` -XM`*8``````````0!5I@````````"1`0````````$`7)L!````````-@(````` -XM```!`%P`````````````````````GP````````",`0````````$`5IL!```` -XM````-@(````````!`%8`````````````````````!0$````````(`0`````` -XM``$`4`@!````````AP$````````!`%.;`0```````+X!`````````0!3W`$` -XM```````V`@````````$`4P````````````````````!``@```````$("```` -XM`````@!W"$("````````0P(````````"`'<00P(```````!'`@````````(` -XM=QA'`@```````$L"`````````@!W($L"````````1P,````````#`'?@```` -XM``````````````````!``@```````%P"`````````0!57`(```````#M`@`` -XM``````$`5O`"````````1P,````````!`%8`````````````````````4@(` -XM``````#L`@````````$`4_`"````````1P,````````!`%,````````````` -XM````````Y0(```````#P`@````````$`4"P#````````,P,````````!`%`` -XM````````````````````4`,```````!>`P````````(`=PA>`P```````+L# -XM`````````@!W(`````````````````````!0`P```````'(#`````````0!5 -XMA0,```````"(`P````````$`50````````````````````!0`P```````&P# -XM`````````0!4;`,```````!W`P````````$`5G<#````````A0,````````! -XM`%2%`P```````+L#`````````0!6`````````````````````&(#```````` -XM?`,````````!`%-\`P```````(4#`````````0!5A0,```````"[`P`````` -XM``$`4P````````````````````#``P```````,(#`````````@!W",(#```` -XM````Q`,````````"`'<0Q`,```````#)`P````````(`=QC)`P```````,H# -XM`````````@!W(,H#````````RP,````````"`',#````````%@4````````!`%T6!0```````!D% -XM`````````0!5&04```````"B!0````````$`70`````````````````````$ -XM!````````!$%`````````0!3&04```````"B!0````````$`4P`````````` -XM``````````#6`P```````!(%`````````0!6&04```````"B!0````````$` -XM5@````````````````````"/!````````)($`````````0!0D@0```````#0 -XM!`````````$`44@%````````4@4````````!`%$````````````````````` -XM#00````````4!0````````$`7!D%````````H@4````````!`%P````````` -XM````````````L`4```````"Q!0````````(`=PBQ!0```````+4%```````` -XM`@!W$+4%````````N04````````"`'<8N04```````"D!@````````(`=R`` -XM````````````````````L`4```````#+!0````````$`5P`0````````````````````"P!@```````-0&`````````0!5U`8` -XM``````!_!P````````$`7(\'````````Z0<````````!`%P````````````` -XM````````L`8```````#9!@````````$`5-D&````````X08````````!`%4` -XM````````````````````L`8```````#A!@````````$`4>$&````````;P<` -XM```````!`%./!P```````.D'`````````0!3`````````````````````+`& -XM````````X08````````!`%+A!@```````'<'`````````0!6CP<```````#I -XM!P````````$`5@````````````````````#P!P```````/('`````````@!W -XM"/('````````]`<````````"`'<0]`<```````#U!P````````(`=QCU!P`` -XM`````/8'`````````@!W(/8'````````^@<````````"`'PL````````!`%1]"P```````(D+`````````0!6I0L```````"G -XM"P````````$`5L(+````````Q`L````````!`%;\"P```````),,```````` -XM`0!6`````````````````````'T+````````?PL````````!`%`T#``````` -XM`#D,`````````0!0:`P```````"##`````````$`4(X,````````F0P````` -XM```!`%``````````````````````H`P```````"B#`````````(`=PBB#``` -XM`````*8,`````````@!W$*8,````````J0P````````"`'<8J0P```````"Q -XM#`````````(`=R"Q#````````+4-`````````P!W\``````````````````` -XM````H`P```````"U#`````````$`5;4,````````+PT````````!`%PP#0`` -XM`````+4-`````````0!<`````````````````````*`,````````K0P````` -XM```!`%2M#````````"P-`````````0!3,`T```````"U#0````````$`4P`` -XM```````````````````2#0```````!\-`````````0!0>0T```````"##0`` -XM``````$`4`````````````````````"H#````````"T-`````````0!6,`T` -XM``````"U#0````````$`5@`````````````````````%#0```````#`-```` -XM`````@"16'D-````````EPT````````"`)%8`````````````````````"<- -XM````````,`T````````!`%$W#0```````$<-`````````0!1```````````` -XM`````````,`-````````P@T````````"`'<(P@T```````#)#0````````(` -XM=Q#)#0```````,L-`````````@!W&,L-````````S0T````````"`'<@S0T` -XM``````#.#0````````(`=RC.#0```````-<-`````````@!W,-<-```````` -XMVPT````````"`'NA````````#5$`````````$`7@`````````````` -XM```````T#@```````)P0`````````P"1N'^Z$````````-40`````````P"1 -XMN'\`````````````````````-`X````````0$`````````$`7140```````` -XMG!`````````!`%VZ$````````-40`````````0!=```````````````````` -XM`/\.`````````@\````````!`%`"#P```````%\/`````````0!1W@\````` -XM``#D#P````````$`4140````````'Q`````````!`%$````````````````` -XM````_P\````````5$`````````$`4+H0````````P1`````````!`%`````` -XM````````````````X!````````#A$`````````(`=PCA$````````.80```` -XM`````@!W$.80````````ZA`````````"`'<8ZA````````"[$0````````(` -XM=R``````````````````````X!````````!'$0````````$`56H1```````` -XM?1$````````!`%6$$0```````(X1`````````0!5K!$```````"Q$0`````` -XM``$`50````````````````````#@$`````````41`````````0!4+!$````` -XM``!$$0````````$`5&H1````````>!$````````!`%2$$0```````(L1```` -XM`````0!4`````````````````````/(0````````;Q$````````!`%-Q$0`` -XM`````+L1`````````0!3`````````````````````/00````````1!$````` -XM```!`%1J$0```````'@1`````````0!4A!$```````"+$0````````$`5*P1 -XM````````MA$````````!`%0`````````````````````]!`````````%$0`` -XM``````$`5"P1````````>!$````````!`%2$$0```````(L1`````````0!4 -XME1$```````"G$0````````$`5`````````````````````#T$````````'T1 -XM`````````0!5A!$```````".$0````````$`5941````````IQ$````````! -XM`%6L$0```````+$1`````````0!5`````````````````````,`1```````` -XMPA$````````"`'<(PA$```````#$$0````````(`=Q#$$0```````,81```` -XM`````@!W&,81````````R!$````````"`'<@R!$```````#)$0````````(` -XM=RC)$0```````,H1`````````@!W,,H1````````T1$````````"`'!8````````!`%5X%@```````)(6`````````P"1 -XMR'Z2%@```````)<6`````````0!5EQ8```````"3'0````````,`DP`0````````````````````#@ -XM`````````%P!`````````0!57`$```````!/`@````````$`5E8"```````` -XMS@(````````!`%8`````````````````````]@````````!A`0````````$` -XM4H4!````````3@(````````!`%-6`@```````)("`````````0!3```````` -XM`````````````/T`````````!`$````````!`%`+`0```````&$!```````` -XM`0!0`````````````````````/T`````````80$````````!`%$````````` -XM````````````H0$```````"J`0````````$`7*H!````````40(````````! -XM`%Q6`@```````)("`````````0!<`````````````````````-`"```````` -XMT@(````````"`'<(T@(```````#3`@````````(`=Q#3`@```````-0"```` -XM`````@!W&-0"````````VP(````````"`'<@VP(```````#U`P````````,` -XM=^```````````````````````-`"````````WP(````````!`%7?`@`````` -XM`*0#`````````0!3J`,```````#U`P````````$`4P`````````````````` -XM``#V`@````````4#`````````@"16`H#````````UP,````````"`)%8```` -XM`````````````````"``````````(0`````````"`'<((0`````````E```` -XM``````(`=Q`E`````````"D``````````@!W&"D`````````80`````````" -XM`'<@`````````````````````"``````````-P`````````!`%5````````` -XM`$8``````````0!56`````````!A``````````$`50`````````````````` -XM```@`````````#4``````````0!4-0````````!7``````````$`5E@````` -XM````8``````````!`%9@`````````&$``````````0!4```````````````` -XM`````#``````````5@`````````!`%-8`````````%\``````````0!3```` -XM`````````````````'``````````?@`````````"`'<(?@````````#6```` -XM``````(`=R``````````````````````<`````````"&``````````$`588` -XM````````P``````````!`%;%`````````-8``````````0!6```````````` -XM`````````'``````````C@`````````!`%2.`````````+L``````````0!3 -XMQ0````````#6``````````$`4P````````````````````#@`````````.X` -XM`````````@!W".X`````````1@$````````"`'<@```````````````````` -XM`.``````````]@`````````!`%7V`````````#`!`````````0!6-0$````` -XM``!&`0````````$`5@````````````````````#@`````````/X````````` -XM`0!4_@`````````K`0````````$`4S4!````````1@$````````!`%,````` -XM````````````````4`$```````!2`0````````(`=PA2`0```````%D!```` -XM`````@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(` -XM=R!@`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0````` -XM``!%%`````````$`4488````````4!@````````!`%$````````````````` -XM````;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``` -XM`````%`8`````````0!1`````````````````````-\#````````KP4````` -XM```!`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1 -XM````````*!$````````!`%/2$0````````82`````````0!3:!(````````T -XM$P````````$`4XX3````````I!,````````!`%/)$P```````!`4```````` -XM`0!3K!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`` -XM`````)@7`````````0!3I1@```````#*&`````````$`4P`````````````` -XM``````##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1 -XMD'S$"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R. -XM%````````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`` -XM`````.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````` -XM````````````V`,```````"U!P````````,`D8A\R0<```````!I"0`````` -XM``,`D8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,` -XMD8A\CA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\ -XMPA<```````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```` -XM`````````````````(@"````````WP,````````!`%-I"0```````-\)```` -XM`````0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q -XM%P```````&X7`````````0!3F!<```````"I%P````````$`4\`7```````` -XMZA<````````!`%,`````````````````````B@(```````"U!P````````,` -XMD;A_R0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_ -XM*!@```````!*&0````````,`D;A_`````````````````````%P$```````` -XM9@0````````!`%``````````````````````_P(```````"U!P````````,` -XMD8!\R0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\ -XMCA0```````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```` -XM`````````````````,\#````````M0<````````#`)'8?,D'````````:0D` -XM```````#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````` -XM```#`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````# -XM`)'8?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8 -XM?-(/````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0 -XM````````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```` -XM````D1$````````#`)'8?)$1````````LA$````````#`)'X>[(1```````` -XM!A(````````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,` -XM```````#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````` -XM```#`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````# -XM`)'8?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8 -XM?$87````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7 -XM````````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````` -XM``````````````#8`P```````+4'`````````P"1\'O)!P```````&D)```` -XM`````P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.```````` -XM`P"1\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1 -XM\'L4$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT -XM$P```````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``` -XM`````#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P`````` -XM`,`7`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9 -XM`````````P"1\'L`````````````````````V`,```````#N`P````````$` -XM7YD%````````00<````````!`%^H"````````&D)`````````0!?&PH````` -XM``#A$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```` -XM`````0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0 -XM%````````&P4`````````0!?CA0```````"L%`````````$`7\P4```````` -XM`Q<````````!`%]5%P```````&X7`````````0!?J1<```````#`%P`````` -XM``$`7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@` -XM``````!*&0````````$`7P````````````````````"*`@```````/`"```` -XM`````0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4 -XM````````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````` -XM```````````````3`@```````+4'`````````P"1Y'O)!P```````&P4```` -XM`````P"1Y'N.%````````$H9`````````P"1Y'L````````````````````` -XM!@,````````N`P````````$`4(L#````````I`,````````!`%#8`P`````` -XM`/`#`````````0!5_0,````````(!`````````$`59D%````````\04````` -XM```!`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\) -XM````````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!: -XM%P````````$`59@7````````I!<````````!`%#`%P```````,(7```````` -XM`0!0PA<```````#'%P````````$`50````````````````````"O!0`````` -XM`/8%`````````0!2`````````````````````)<*````````GPH````````! -XM`%3$"@```````,D*`````````0!5`````````````````````-@#```````` -XMWP,````````!`%.N"@```````/$*`````````0!3_@H```````!-"P`````` -XM``$`4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<` -XM``````#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88 -XM`````````0!3`````````````````````&X)````````>`D````````!`%4` -XM````````````````````51$```````!?$0````````$`5&D5````````;!4` -XM```````!`%!L%0```````'H5`````````0!4`````````````````````-@# -XM````````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```` -XM````X1`````````#`)&X?.\0````````;!0````````#`)&X?(X4```````` -XM,1<````````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<` -XM```````#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````` -XM```#`)&X?``````````````````````T"P```````$,+`````````0!<51$` -XM``````"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7 -XM`````````0!`T````````!`%4*%0````````X5`````````0!5 -XM51<```````!:%P````````$`5;`7````````LA<````````!`%"R%P`````` -XM`,`7`````````0!5PA<```````#'%P````````$`5988````````F!@````` -XM```!`%"8&````````*48`````````0!5`````````````````````-@#```` -XM````M0<````````#`)&L?,D'````````:0D````````#`)&L?$8*```````` -XMX1`````````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<` -XM```````#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````` -XM```#`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````# -XM`)&L?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`` -XM`````&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@`````` -XM`&,*`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``` -XM``````,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P`````` -XM``,`D<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,` -XMD<1\*!@```````!*&0````````,`D<1\`````````````````````$,'```` -XM````M0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``` -XM``````$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3 -XMRA@```````#7&`````````$`4P````````````````````!&!P```````+4' -XM`````````0!>R0<```````#8!P````````$`7ML'````````J`@````````! -XM`%Z.%````````*P4`````````0!>51<```````!N%P````````$`7LH8```` -XM````UQ@````````!`%X`````````````````````X@<````````>"``````` -XM``$`4%47````````6A<````````!`%7*&````````-<8`````````0!0```` -XM`````````````````````````````@`````````"`'<(`@`````````$```` -XM``````(`=Q`$``````````8``````````@!W&`8`````````"``````````" -XM`'<@"``````````)``````````(`=R@)``````````H``````````@!W,`H` -XM````````%``````````"`'@`````````!`%][```` -XM`````(X``````````0!?`````````````````````#,`````````;P`````` -XM```!`%9[`````````(8``````````0!6`````````````````````#4````` -XM````;0`````````!`%Q[`````````(@``````````0!<```````````````` -XM`````#4`````````;@`````````!`%-[`````````(4``````````0!3```` -XM`````````````````"0``````````@````````,` -XMD;A_`````````````````````.0`````````2P$````````!`%Q2`0`````` -XM``8"`````````0!<#0(````````>`@````````$`7``````````````````` -XM``#V`````````$@!`````````0!34@$```````"E`0````````$`4P`````` -XM``````````````#G`````````%$!`````````0!?4@$````````,`@`````` -XM``$`7PT"````````'@(````````!`%\`````````````````````[P`````` -XM```>`@````````(`D40`````````````````````#P$```````#;`P`````` -XM`/`&````````$`<```````#!!@```````-\&````````%P8```````"M!@`` -XM`````,(%````````_@4```````"0!0```````*X%````````304```````!I -XM!0```````,\$````````Z00````````L!````````#4$```````````````` -XM`````````````)!<```````!) -XM%P```````&H7````````0A<```````!&%P````````@7````````,!<````` -XM```"%P````````47````````[A8```````#W%@```````-H6````````X18` -XM``````#,%@```````-46`````````````````````````````%P2```````` -XM@1(```````#A%0```````/L5`````````````````````````````($2```` -XM````Y1(````````[&P```````$H;````````"A8```````"H%@```````'$5 -XM````````X14```````!@$P```````)L4```````````````````````````` -XM`($2````````Y1(````````[&P```````$H;````````EQ8```````"H%@`` -XM`````#@6````````6X`+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF -XM:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y -XM;F%M:6,`+F-T;W)S`"YD=&]RE```````*!Z```````` -XMH`$````````%``````````@`````````$`````````"X`````0````,````` -XM````0'Q0``````!`?````````!`````````````````````(```````````` -XM````````OP````$````#`````````%!\4```````4'P````````0```````` -XM````````````"````````````````````,8````!`````P````````!@?%`` -XM`````&!\````````"`````````````````````@```````````````````#+ -XM`````0````,`````````:'Q0``````!H?````````$@"```````````````` -XM```(``````````@`````````T`````@````#`````````+!^4```````L'X` -XM```````P````````````````````"````````````````````-4````!```` -XM`````````````````````+!^````````]@$```````````````````$````` -XM``````````````#>`````0````````````````````````"F@````````/`` -XM```````````````````!````````````````````[0````$````````````` -XM````````````EH$```````#I`0```````````````````0`````````````` -XM`````/T````!`````````````````````````'^#````````:TX````````` -XM``````````$````````````````````)`0```0`````````````````````` -XM``#JT0```````#4+```````````````````!````````````````````%P$` -XM``$`````````````````````````']T````````8#@`````````````````` -XM`0```````````````````",!```!`````````````````````````#CK```` -XM``````8```````````````````@````````````````````P`0```0```#`` -XM```````````````````X\0```````(P-```````````````````!```````` -XM``$`````````.P$```$`````````````````````````Q/X```````"<5``` -XM`````````````````0```````````````````$8!```!```````````````` -XM`````````&!3`0``````@!@```````````````````$````````````````` -XM```1`````P````````````````````````#@:P$``````%0!```````````` -XM```````!`````````````````````0````(````````````````````````` -XM>'8!``````"@$0```````"0```!/````"``````````8``````````D````# -XM`````````````````````````!B(`0``````B@D```````````````````$` -XM`````````````````````````````````````````````````````````P`! -XM`,@!0````````````````````````P`"`.`!0``````````````````````` -XM`P`#`/@!0````````````````````````P`$`%`$0``````````````````` -XM`````P`%`-`+0````````````````````````P`&`.`.0``````````````` -XM`````````P`'`(`/0````````````````````````P`(`,`/0``````````` -XM`````````````P`)`#@00````````````````````````P`*`,@60``````` -XM`````````````````P`+`-P60````````````````````````P`,`%`;0``` -XM`````````````````````P`-`#AI0````````````````````````P`.`$AI -XM0````````````````````````P`/`$1R0````````````````````````P`0 -XM`&!R4````````````````````````P`1`&!U4``````````````````````` -XM`P`2`*!Z4````````````````````````P`3`$!\4``````````````````` -XM`````P`4`%!\4````````````````````````P`5`&!\4``````````````` -XM`````````P`6`&A\4````````````````````````P`7`+!^4``````````` -XM`````````````P`8`````````````````````````````P`9```````````` -XM`````````````````P`:`````````````````````````````P`;```````` -XM`````````````````````P`<`````````````````````````````P`=```` -XM`````````````````````````P`>`````````````````````````````P`? -XM`````````````````````````````P`@```````````````````````````` -XM`P`A`````````````````````````````P`B```````````````````````` -XM`````P`C`````````````````````````````P`D```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`3`$!\ -XM4`````````````````!@`````0`4`%!\4`````````````````!N`````0`5 -XM`&!\4`````````````````![`````@`,`/`;0`````````````````"1```` -XM`0`7`-1^4````````0````````"@`````0`0`'!R4`````````````````"G -XM`````@`,`#`<0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`3`$A\4`````````````````#``````0`4`%A\4``````````` -XM``````#-`````0`1`&AZ4`````````````````#;`````0`5`&!\4``````` -XM``````````#G`````@`,`!!I0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0```@`,`&`<0```````*0`````````N`0`` -XM`@`,`)`<0```````*0`````````X`0```@`,`,`<0```````*0````````!& -XM`0```@`,`/`<0```````CP8```````!2`0```0`0`,!S4```````H`$````` -XM``!C`0```0`0`(!R4```````0`$```````!R`0``!`#Q_P`````````````` -XM``````!]`0```@`,`/`K0```````?0````````"0`0```@`,`$`O0``````` -XM:P````````"@`0```@`,`-`V0```````(@````````"T`0```@`,```W0``` -XM````-P````````#&`0```@`,`-`\0```````VP````````#1`0``!`#Q_P`` -XM``````````````````#<`0``!`#Q_P````````````````````#F`0```@`, -XM`)!-0```````$`````````#W`0```@`,`*!-0```````$``````````'`@`` -XM!`#Q_P`````````````````````/`@``$@`,`"`U0```````_P`````````< -XM`@``$@`,`*`Q0```````]``````````F`@``$@```.P60```````D``````` -XM```X`@``$@```/P60```````AP````````!2`@``$@````P70```````%P$` -XM``````!I`@``$@```!P70```````314```````!^`@``$@`,`*`R0``````` -XM.0$```````"(`@``$@```"P70```````?`$```````"9`@``$@`,`'!.0``` -XM````9@````````"J`@``$0`2`*!Z4`````````````````"S`@``$@```#P7 -XM0```````V@(```````#)`@``$@```$P70```````G@````````#8`@``$@`` -XM`%P70```````-`````````#J`@``$@```&P70```````50````````#[`@`` -XM$@`,`)`X0```````%0$````````/`P``$@`,`+`]0```````TPL````````< -XM`P``$@```'P70```````Y0`````````R`P``$@`,`.!F0```````CP`````` -XM``!``P``$@```(P70```````B@````````!0`P``$@```)P70``````````` -XM``````!A`P``$@```*P70```````:@````````!X`P``$0(0`&AR4``````` -XM``````````"%`P``$@```+P70```````X@````````":`P``$@`,`.!.0``` -XM````^A<```````"H`P``$@```,P70```````C`$```````#"`P``$@`,`+`O -XM0```````X@$```````#2`P``$@```-P70````````@````````#F`P``$@`` -XM`.P70```````AP8```````#X`P``$@```/P70```````.P`````````.!``` -XM$@````P80```````&0$````````E!```$@`,`.`S0```````.@$````````U -XM!```$@`*`,@60``````````````````[!```$@```!P80```````)``````` -XM``!2!```$@```"P80```````B`````````!A!```$0`7`-A^4```````"``` -XM``````!I!```$@```#P80```````3`````````![!```$@```$P80``````` -XM*0````````",!```$@```%P80```````-0````````"A!```$@```&P80``` -XM````:0$```````"V!```$@```'P80```````:@````````#0!```$0`7`+!^ -XM4```````!`````````#G!```$@```(P80```````K0(```````#X!```$@`` -XM`)P80```````%@`````````+!0``$0`0`&!R4```````"``````````6!0`` -XM$@`,`"`V0```````H@`````````E!0``$@`,`%`;0```````DP`````````L -XM!0``$@```*P80```````E0`````````\!0``$@```+P80``````````````` -XM``!+!0``$0`7`+A^4```````"`````````!!0``$@`,`#`N0```````!P$```````"J!0``$@`,`'!*0``` -XM````[@$```````"T!0``$@`,`'!G0```````GP$```````#%!0``$@```/P8 -XM0```````*`````````#"```$@```+P:0```````\@````````!O"```$0`7`,A^4```````"``` -XM``````"#"```$@```,P:0```````=@````````"2"```$0`7`-!^4``````` -XM!`````````"C"```$@```-P:0```````+P````````"T"```$@`,``!.0``` -XM````9@````````#&"```$@`,`)!)0```````V0````````#8"```$@```.P: -XM0```````'@````````#I"```$@```/P:0```````N0$````````$"0``$@`` -XM``P;0```````(0`````````9"0``$@```!P;0``````` -XM"0``$@`,`&!,0```````)0$```````!I"0``$@```#P;0```````:`$````` -XM``!_"0``$@`,`+`Y0```````%0,`````````8W)T,2YC`&%B:71A9P`O=7-R -XM+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\8V]M;6%N9"UL:6YE/@`\8G5I -XM;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ)4U1?7P!?7T143U)?3$E35%]? -XM`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R4!`1D)31%\Q -XM+C``5]P:&1R -XM`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A=&5?elfcopy.1.uu << 'e4e59173f6354081a9e3a7debde2f069' -Xbegin 644 elfcopy.1 -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````("!```` -XM`````````$``.``'`$``&@`9``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6X`+G)E -XM;&$N<&QT`"YI;FET`"YP;'0`+G1E>'0`+F9I;FD`+G)O9&%T80`N96A?9G)A -XM;65?:&1R`"YD871A`"YE:%]F``````````$ -XM``````````@`````````&`````````!=````!````$(`````````.!!````` -XM```X$````````)`&````````!`````L````(`````````!@`````````9P`` -XM``$````&`````````,@60```````R!8````````3```````````````````` -XM!````````````````````&T````!````!@````````#<%D```````-P6```` -XM````<`0```````````````````0`````````$`````````!R`````0````8` -XM````````4!M```````!0&P```````.A-```````````````````0```````` -XM````````````>`````$````&`````````#AI0```````.&D````````.```` -XM````````````````!````````````````````'X````!`````@````````!( -XM:4```````$AI````````_`@```````````````````@````````````````` -XM``"&`````0````(`````````1')```````!$<@````````@````````````` -XM```````$````````````````````E`````$````#`````````&!R4``````` -XM8'(``````````P``````````````````(````````````````````)H````! -XM`````@````````!@=5```````&!U````````0`4```````````````````@` -XM``````````````````"D````!@````,`````````H'I0``````"@>@`````` -XM`*`!````````!0`````````(`````````!``````````K0````$````#```` -XM`````$!\4```````0'P````````0````````````````````"``````````` -XM`````````+0````!`````P````````!0?%```````%!\````````$``````` -XM``````````````@```````````````````"[`````0````,`````````8'Q0 -XM``````!@?`````````@````````````````````(```````````````````` -XMP`````$````#`````````&A\4```````:'P```````!(`@`````````````` -XM````"``````````(`````````,4````(`````P````````"P?E```````+!^ -XM````````,`````````````````````@```````````````````#*`````0`` -XM``````````````````````"P?@```````/8!```````````````````!```` -XM`````````````````0````,`````````````````````````IH````````#3 -X?`````````````````````0`````````````````````` -X` -Xend -e4e59173f6354081a9e3a7debde2f069 -echo x - elfcopy.uu -sed 's/^X//' >elfcopy.uu << '2151ae8f08071e33d3c60fbc8f2d2844' -Xbegin 644 elfcopy -XM?T5,1@(!`0D```````````(`/@`!````4!M```````!``````````#AM`0`` -XM`````````$``.``'`$``)0`B``8````%````0`````````!``$```````$`` -XM0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -XM`,@!0```````R`%````````5`````````!4``````````0`````````!```` -XM!0````````````````!``````````$```````$QR````````3'(````````` -XM`!````````$````&````8'(```````!@@```````*!Z4```````H'I0 -XM``````"@`0```````*`!````````"``````````$````!````.`!```````` -XMX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -XM````1'(```````!$```````````````.````&P```!$````B````'````!4` -XM```#````&````````````````````"T``````````````"<````J````.``` -XM`"\`````````0````"`````)```````````````P````0@```#P```!&```` -XM%P```#L````_````$``````````````````````````````````````````` -XM````2`(``!(```#L%D```````)````````````$``!(```#\%D```````(<` -XM````````+P```!(````,%T```````!0(``!(```#L%T```````(<& -XM````````I@```!(```#\%T```````#L`````````*0$``!(````,&$`````` -XM`!D!````````SP```!(````<&$```````"0`````````$P(``!(````L&$`` -XM`````(@`````````0`(``!$`%P#8?E````````@`````````<0(``!(````\ -XM&$```````$P`````````^@(``!(```!,&$```````"D`````````<0```!(` -XM``!<&$```````#4`````````#0```!(```!L&$```````&D!````````?``` -XM`!(```!\&$```````&H`````````E`(``!$`%P"P?E````````0````````` -XMH0(``!(```",&$```````*T"````````G@$``!(```"<&$```````!8````` -XM````5P(``!$`$`!@`!G96QF7V=E=&-L87-S`&=E;&9?9V5T`!G96QF7W5P9&%T95]R96QA`&5L9E]E;F0`9V5L9E]G971S -XM:&1R`&=E;&9?9V5T<&AD<@!E;&9?97)R;7-G`&=E;&9?9V5T'-C;@!G96QF7W5P9&%T95]E:&1R -XM`&=E;&9?=7!D871E7W!H9'(`96QF7VMI;F0`7TIV7U)E9VES=&5R0VQA0!?7W-T9&5R`!M86QL;V,`;W!T87)G`&=E='!R;V=N86UE`')E;F%M90!C86QL;V,` -XM96YV:7)O;@!F<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E'U0```````' -XM````)```````````````@'U0```````'````)0``````````````B'U0```` -XM```'````)@``````````````D'U0```````'````)P``````````````F'U0 -XM```````'````*```````````````H'U0```````'````*0`````````````` -XMJ'U0```````'````*@``````````````L'U0```````'````*P`````````` -XM````N'U0```````'````+```````````````P'U0```````'````+0`````` -XM````````R'U0```````'````+@``````````````T'U0```````'````+P`` -XM````````````V'U0```````'````,```````````````X'U0```````'```` -XM,0``````````````Z'U0```````'````,@``````````````\'U0```````' -XM````-```````````````^'U0```````'````-0```````````````'Y0```` -XM```'````-@``````````````"'Y0```````'````-P``````````````$'Y0 -XM```````'````.```````````````&'Y0```````'````.0`````````````` -XM('Y0```````'````.@``````````````*'Y0```````'````.P`````````` -XM````,'Y0```````'````/```````````````.'Y0```````'````/0`````` -XM````````0'Y0```````'````/@``````````````2'Y0```````'````/P`` -XM````````````4'Y0```````'````0```````````````6'Y0```````'```` -XM00``````````````8'Y0```````'````0@``````````````:'Y0```````' -XM````1```````````````<'Y0```````'````1@``````````````>'Y0```` -XM```'````2```````````````@'Y0```````'````20``````````````B'Y0 -XM```````'````2@``````````````D'Y0```````'````2P`````````````` -XMF'Y0```````'````3```````````````H'Y0```````'````3@`````````` -XM````J'Y0```````'````3P``````````````2(/L".A?!0``Z#I2``!(@\0( -XMPP#_-8YE$`#_)9!E$`"0D)"0_R6.91``:`````#IX/____\EAF40`&@!```` -XMZ=#_____)7YE$`!H`@```.G`_____R5V91``:`,```#IL/____\E;F40`&@$ -XM````Z:#_____)69E$`!H!0```.F0_____R5>91``:`8```#I@/____\E5F40 -XM`&@'````Z7#_____)4YE$`!H"````.E@_____R5&91``:`D```#I4/____\E -XM/F40`&@*````Z4#_____)39E$`!H"P```.DP_____R4N91``:`P```#I(/__ -XM__\E)F40`&@-````Z1#_____)1YE$`!H#@```.D`_____R4691``:`\```#I -XM\/[___\E#F40`&@0````Z>#^____)09E$`!H$0```.G0_O___R7^9!``:!(` -XM``#IP/[___\E]F00`&@3````Z;#^____)>YD$`!H%````.F@_O___R7F9!`` -XM:!4```#ID/[___\EWF00`&@6````Z8#^____)=9D$`!H%P```.EP_O___R7. -XM9!``:!@```#I8/[___\EQF00`&@9````Z5#^____);YD$`!H&@```.E`_O__ -XM_R6V9!``:!L```#I,/[___\EKF00`&@<````Z2#^____):9D$`!H'0```.D0 -XM_O___R6>9!``:!X```#I`/[___\EEF00`&@?````Z?#]____)8YD$`!H(``` -XM`.G@_?___R6&9!``:"$```#IT/W___\E?F00`&@B````Z<#]____)79D$`!H -XM(P```.FP_?___R5N9!``:"0```#IH/W___\E9F00`&@E````Z9#]____)5YD -XM$`!H)@```.F`_?___R569!``:"<```#I9C$`!H-0```.F0_/___R7>8Q``:#8```#I@/S___\E -XMUF,0`&@W````Z7#\____)#[____)89C$`!H00```.G0^____R5^8Q`` -XM:$(```#IP/O___\E=F,0`&A#````Z;#[____)6YC$`!H1````.F@^____R5F -XM8Q``:$4```#ID/O__P````!!5$R-9PA54XL?2&/#A=M(C6S'$$B)+6UC$`!^ -XM.DB+5PA(A=)T,4B)%>-6$``/M@*$P'0C2(/"`3PO2(L%SU80`$@/1,)(B07$ -XM5A``#[8"2(/"`83`=>&XH'I0`$B%P'0K2(GWZ"/___^_.&E``.@9____Z`#[ -XM__^)WTB)ZDR)YNBK!P``B3&!;%B -XM$``!2(/$",-F9F:09F9FD$B#/2A@$```=!:X`````$B%P'0,OV!\4`!)B<-! -XM_^.0\\.0D)"0D)"0D)"0D)"0D$B#[`A(BPU=8A``OY%I0`"Z#0```+X!```` -XMZ&W]__^_0````.C3_?__9F9FD&9FD$B#[`A(BPTM8A``OX!L0`"Z,P```+X! -XM````Z#W]__^_0````.BC_?__9F9FD&9FD$B#[`A(BPW]81``OY]I0`"Z#P`` -XM`+X!````Z`W]__^_0````.AS_?__9F9FD&9FD$B);"383(E\)/A(B?U(B5PD -XMT$R)9"3@28G73(EL).A,B70D\$B![-@```!(A?9(B70D"`^$H`0``$B+?"0( -XM,?8QP.CE_/__@_C_08G'!```387_#X1)`P``,<"Z[0$``+X"`@``3(G_ -XM13'MZ+G\__^#^/]!B<0/A)\$```QTKX%````1(GWZ"[\__](A_H8"T``$B)[^BH&@``BT5H@_@"=!.#^`1T#DB#O=`````` -XM#X23`@``@V5LWXM--(7)#X4*`@``]D5L$`^%\P$``$B)[^AL'@``2(M]($B- -XM="00Z)KY__^%P`^$Y@(``$B)[^@.#0``2(GOZ,8.``!(BWT@2(UT)!#HE/?_ -XM_TB%P`^$H0(``$B)[^B7%0``2(GO2(G#Z$P4``!(BT,@2(E$)#B+52R%TGXF -XM2(M](+D!````N@$```"^!````.B@^/__2(7`2(E$)#`/A%<#``!(BWT@2(UT -XM)!#H%/G__X7`#X1@`@``BT4LA$`"Z'@`` -XM`+X!````O[AL0`#HL?G__TV%_P^$OP```$2)]^@`^?__1(GGZ/CX__](BYPD -XMJ````$B+K"2P````3(ND)+@```!,BZPDP````$R+M"3(````3(N\)-````!( -XM@<38````PX--;`'I)O[__[_4:4``Z(WV__](A_H/OG__X/X_T&)Q`^$,P(``+[M`0`` -XMB_H@_;__X/``0^$/`$``$R)[^BB^?__Z17___](B>_HJ2T``.D` -XM_O__2(GOZ&P.``#IZ?W__TB)Q^B;^?__2(UX#DF)Q.@/^?__2(7`2(G'#X0' -XM`@``28G%3(GB2(G>2(G'Z,+V__]+C40L_X`X+TB-4`%T"$B-4`+&0`$O2+YE -XM8W`N6%A86,=""%A86%C&0@P`2(DRZ1G___^#36P"Z07]__](@[W```````^% -XM7_W__^E>_?__OJ]I0`"_1@```#'`Z%+V__](BU0D"+[%:4``OTH````QP.B< -XM^/__O______HPO7__[XG:D``2(G"OT$````QP.@>]O__3(GZOL5I0`"_2@`` -XM`#'`Z&KX__^______^B0]?__OEEJ0`!(B<*_1@```#'`Z.SU__^______^AR -XM]?__OMIJ0`!(B<*_1@```#'`Z,[U__](BTPD"$R)ZKY":T``OTH````QP.@5 -XM^/__O______H._7__[XG:D``2(G"OT8````QP.B7]?__O______H'?7__[ZT -XM:D``2(G"OT8````QP.AY]?__O______H__3__[YS:D``2(G"OT8````QP.A; -XM]?__O______HX?3__[Z):D``2(G"OT8````QP.@]]?__O______HP_3__[X0 -XM:T``2(G"OT8````QP.@?]?__3(GJO@1J0`"_2@```#'`Z&OW__^______^B1 -XM]/__OOAJ0`!(B<*_1@```#'`Z.WT__^^]FE``+]&````,<#H//?__[[,:D`` -XMOT8```#H+??__[ZA:D``OT$````QP.B\]/__OMMI0`!`MT8QP.@-]___D$%7 -XM28GW059!B?Z_`0```$%505154TB![)@```#HB_7__X7`#X0?"```O_````#H -XMN?;__TB%P$F)Q`^$MP8``#'VNO````!(B$))``````````2<>$)*``````````2<>$)+``````````28F$))@` -XM``!)C80DH````$G'A"3``````````$G'A"30`````````$G'A"3@```````` -XM`$F)A"2H````28V$)+````!!QT0D#`````!!QT0D"`````!)B80DN````$F- -XMA"3`````28F$),@```!)C80DT````$F)A"38````28V$).````!)B80DZ``` -XM`.B6]O__0;A9:T``2(7`N08```!,#T7`N&%K0`#\2(G'38D$)$R)QO.F#Y?" -XM#Y+`13'M.,(/A!4$``"X=&M``+D$````3(G&_$B)Q_.F#X20`@``13'`N?H&2@``.GX_O__9F9FD$B+-<%8$`"Z -XM`0```$R)Y^@<$```1(M(-$6%R0^%100``,=`+`$```!!QT0D2`$```#IOO[_ -XM_TB+-8M8$`!,B>?H.R@``.FJ_O__0<=$)&@$````Z9S^__](BSUI6!``OCT` -XM``#H\_'__TB%P$F)Q0^$+`0``+\@````Z/WS__](ALK -XM'318$`"->P%(8__HW?/__TB%P$B)10`/A,L#``!(BS456!``2&/;2(G'2(G: -XM28/%`>B'\?__2(M%`$B-="003(GOQ@08`.CR\?__@\`!#X3/`P``2(M\)%A( -XMB7T0Z(OS__](A_HD?+__TB%P$B)PP^$K`,` -XM`$B+51!(BWT(2(G!O@$```#HW'1"0$`````,=$)`@````` -XM13'M,=NZAFM``$R)_D2)]^CJ\/__@_C_#X2'`0``@^A6@_@:=@?HV/3__^O8 -XMB&M``+Y^:T``,<#HPN[__S'_Z"OR__](B=_H@_'__X7`#X3^_O__ -XMOL!K0`"_00```#'`Z#KR__]!BWPD#(7_=%6+%6]6$`!!.=9T"(U"`D$YQGX+ -XMZ$WT__^+%5=6$`!(8\)(C0S%`````(U"`3'203G&28LT#W\73(GGZ%;T__], -XMB>?H*O+__S'_Z+/Q__]*BU0Y".OB08M$)`A!B40D#.N?@_AOD`^$@0(```^/ -XM^P$``(/X9)!T!8/X9W5/0<=$)&@"````13'`N8!R4`"Z9VM``$R)_D2)]^A$ -XM\/__@_C_#X1D`@``@_A3=-%_M(/X2V9FD&:0#X0)`@``#X_+`0``@_@"D`^$ -XM+0(``.@U\___9F:09I#KKD0[-9=5$``/A$@!``"+!"0+1"0$"T0D"`G8#X3Z -XM````BT0D!(7`=!I!QT0D1`$```#'!"0`````,=O'1"0(`````(L$)(M4)`A% -XMA>U!B5PD0$&)1"0X08E4)#P/A*(```!)BX0DH````$B%P'0DBSPDB7@DBU0D -XM"(E8,(E0*(M\)`1(B6@8B7@T2(M`0$B%P'7W__[[;:4``OT8```#H%O#__[[;:4``OT8````QP.@%\/__Z`3R -XM___IKO[__[X@;4``OT`````QP.B*[?__OJ)K0`"_00```#'`Z-GO__],B>J^ -XML&M``+]!````,<#HQ>___X/X<`^$$/[__X/X#^%*0#X4P_O__2(LUNU,0`+H!````3(GGZ!8+``#'0#0!```` -XM0<=$)$0!````Z<']__](BS624Q``3(GGZ$(C``#IK?W__TB+-7Y3$`!,B>?H -XMOB(``.F9_?__3(LM:E,0`.F-_?__0<=$)&@$````9F9FD.E[_?__08M$)&B% -XMP'4)0<=$)&@!````08M$)`R%P'4*08M$)`A!B40D#$0[-3]3$`!T5HLM-U,0 -XM`$$Y[@^.^/S__TACQ4F-',=(BS-,B>I,B>>#Q0%(@\,(Z#+Q__]$.?5UYNG2 -XM_/__O_____]F9I#HY^O__[[8;$``2(G"OT8````QP.A#[/__Z'+P___KHTB+ -XME^````!(A=)T'TB+1B!(.T(@U(QT98 -XM`````$B+A^@```!(B49@2(N'Z````$B),$B-1EA(B8?H````BT9,AO__TB%P`^$"@$``$C' -XM1"00`````$C'1"0P`0```$B+12#'1"0$`P```$C'1"0(`````$C'1"0X```` -XM`,=$)"P`````QT0D*`````!(B40D&$B+?1#HBNK__TB%P$B)PP^$S@```$'V -XM1"1L$`^$A@```$B+12A(B>9(B40D($B+?1#H_>W__X7`#X3#````2,<#`0`` -XM`$B+11A(B4,(2(M%*$C'0Q``````QT,@`0```,=#)`$```!(B4,82(M]$.BO -XM[?__28M\)"!(B<;HDNG__X7`#X26````2(M<)$A(BVPD4$R+9"183(ML)&!( -XM@\1HPV9FD&:02(M5*$B+?1A(@^H02(UW$$B)52CH@^S__^E<____O______H -XM!.K__[X@;D``2(G"OT8````QP.A@ZO__O______HYNG__[X^;D``2(G"OT8` -XM```QP.A"ZO__O______HR.G__[Y7;D``2(G"OT8````QP.@DZO__O______H -XMJNG__[YU;D``2(G"OT8````QP.@&ZO__9F9FD&9FD&9FD$%454B)_5-(@^Q` -XM2(N?X````$B%VW4OZ8(```!F9F:02(/X!'1@2(M[$$B)YF9FD.BW[/__A<`/ -XMA)$```!(BUM82(7;=%A(BWL02(GFZ(KI__](AC__[ZN;D``2(G"OT8````QP.CUZ/__9F:09F:09F:02(EL)/A(B5PD -XM\$B#[!A(BU]@2(GU2(-[&`!T&4B)[DB)WTB+;"002(M<)`A(@\08Z?LW``!( -XMB=^^GFE``.CN-P``2(G?OL5N0`#HX3<``$B)W[[-;D``Z-0W``"^U6Y``$B) -XMW^C'-P``Z[%F9I!FD$%6055)B?U!5%532(/L0$B+K^````!(A>UT(D&XU6Y` -XM`.L)2(MM6$B%[7012(MU`+D*````3(G'_/.F=>9)BYVP````2(7;#X3_```` -XM9F:028M](.CSZ?__2(7`28G$#X3T````OG@```"_`0```.A(Z?__2(7`2(G" -XM#X3W````2(L#3(GG2(D"2(M%($B)0B!(BT,0QT)(`````$C'0@@`````3(EB -XM$$B):EA(B4(H2(M%8$B)0F!(BT5@2(D02(U"6$B)16#H`.?__TB%P$B)P@^$ -XML````$C'``$```!(QT`0`````$B)YDB+0PA,B>=(B4((2(M#$,="(`$```#' -XM0B0!````2(E"&.A,Y___2(7`#X2-````QT0D!`$```!(BS-,B>_H9/[__TB) -XMYDR)Y^@UZO__A<`/A(4```!(BUL82(7;#X4$____2(/$0%M=05Q!74%>P[__ -XM____Z*GF__^^WVY``$B)PK]&````,<#H!>?__[[,:D``OT8````QP.A4Z?__ -XMO______H>N;__[X^;D``2(G"OT8````QP.C6YO__O______H7.;__[[W;D`` -XM2(G"OT8````QP.BXYO__O______H/N;__[Y7;D``2(G"OT8````QP.B:YO__ -XM9F9FD&9F9I!F9I!F9I!52(G]4TB#[`B+=U"%]G0'2(-_&`!T;#';ZTMF9I!F -XMD$B+?1#HL^7__TB%P$B)P@^$A@```(M-4(7)=4Y(BP-(B0)(BT,02(E"$$B+ -XM0PA(B4((BT,@B4(@2(M#&$B)0AB+0R2)0B1(BWT(2(G>Z"KE__](ARH````28G\2(GW2(UT)$!(BY,B>=( -XMB00D2(M$)$A(B40D"$B+1"102(E$)!!(BT0D6$B)1"082(M$)&!(B40D($B+ -XM1"1H2(E$)"A(BT0D<$B)1"0P2(M$)'A(B40D..CX^___2(GF2(G?Z,GG__^% -XMP'1D2(N<)(@```!(BZPDD````$R+I"28````3(NL)*````!(@<2H````P[__ -XM____Z#/D__^^+F]``$B)PK]&````,<#HC^3__[______Z!7D__^^3&]``$B) -XMPK]&````,<#H<>3__[______Z/?C__^^:F]``$B)PK]&````,<#H4^3__V9F -XM9I!F9I!!54%455-(@^Q(2(N?X````$B%VP^$M````$4QY.F2````2(MK($PY -XMY0^"L0```$2+2TA%AR"+>TR%_W5?2(M#0$B#^`AT#4B%P'0(2(MK($@#:RA(BWL02(GFZ*OC__]( -XMA$B+0R!(B>9(B40D&$B+0RA(B40D($B+>Q#HF.;__X7`='1(BUM82(7; -XM=!U)B>Q-A>0/A67___](BVL@2`-K*$B+6UA(A=MUXTB#Q$A;74%<05W#9F9F -XMD&9FD$2+0TA%A<`/A$O___^_P'!``#'`Z-/C___I.O___[______Z-3B__^^ -XMA6]``$B)PK]&````,<#H,./__[______Z+;B__^^:F]``$B)PK]&````,<#H -XM$N/__V9FD&9FD%5(B?U32(/L2$B+?QA(B>;HU^'__TB%P`^$E````+YX```` -XMOP$```#H'^3__TB%P$B)PP^$M0```$B+1"0HN@$```!(B4,@2(N-X````$B% -XMR708,<"#>4P!2(M)6(/0`$B%R77P@\`!2&/02(M](+D!````O@X```#HON+_ -XM_TB%P$B)0RAT24B)WDB)[TC'0S@$````QT-(`````,=#3`$```#H*/;__TB) -XMV$B#Q$A;7<.______^C@X?__OEEJ0`!(B<*_1@```#'`Z#SB__^______^C" -XMX?__OOAJ0`!(B<*_1@```#'`Z![B__^^S&I``+]&````,<#H#>+__Y!!54&) -XMU4%428G\54B)]5-(@^P(2(N?H````$B%VW4+ZR9(BUM`2(7;=!U(BS-(B>_H -XMQ^+__X7`=>A(@\0(2(G86UU!7$%=PS';187M=.N_2````.CTX___2(7`=#9( -XMB<.Z2````#'V2(G'Z#WB__](B2M(QT-``````$F+A"2H````2(D82(U#0$F) -XMA"2H````ZZ:^HV]``+]&````Z&KA__]F9F:09F9FD&9FD&9FD#'22(/L".A% -XM____,=)(A[SIG3CN[5O -XM0`!)B>1(QP0DM6]``$C'1"0(O&]``$C'1"00SF]``$C'1"08U&]``$C'1"0@ -XM`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?Z.;B__](B=Y(B<)(B>_H2-__ -XM_X7`==A!BT5H@^@!@_@!=PJX`0```.E!____08M%1(7`=0Q!BT5(A<`/A"O_ -XM__\QTDB)[DR)[^C1_?__18ME1$6%Y'4C08M=2(7;#X0)____2(7`=+M$BU@L -XM187;#Y3`#[;`Z?3^__](A_H..+__T@YPW7>2(GF2(GOZ"C?__](A<`/A)H```"+%"1(BW0D -XM2$F+?"08Z&W?__](A__^%P`^$:P(``$4Q]DB+?1A,B?;HS-W_ -XM_TB%P$F)Q@^$K`$``$B)YDR)]^C%W?__2(7`#X33`0``BQ0D2(MT)$A(BWT8 -XMZ`O>__](A_HR/S__X7`=:B+1"0$@_@)#X3+```` -XM@_@$#X3"````0;_5;D``N0H```!,B>;\3(G_\Z8/A;S -XMIG4$2(E=6$B)WDB)[^BA\/__Z=#^__^+="0LA?8/A#+___](B>_H*/W__X7` -XM#X6T_O__Z1W___^^>````+\!````D.CGW?__2(7`#X3O````2(G#3(D@3(EP -XM"$B+1"082(G>2(GO2(E#($B+1"0@2(E#*$B+1"0P2(E#.(M$)`1(B4-`Z,H- -XM``")0TCIZ_[__V:02(M3$$B+](BPOHO?;__^DL____Z(_>__^%P)`/ -XMA;0```!(@\186UU!7$%=05Y!7\.______^BMV___OCUP0`!(B<*_1@```#'` -XMZ`G<__^______^B/V___O@MP0`!(B<*_1@```#'`Z.O;__^______^AQV___ -XMOO5O0`!(B<*_1@```#'`Z,W;__^______^A3V___OB=P0`!(B<*_1@```#'` -XMZ*_;__^^S&I``+]&````Z`#>__^______^@FV___OMIO0`!(B<*_1@```#'` -XMZ(+;__^)Q^@+V___OJYN0`!(B<*_1@```#'`Z&?;__]F9F:09F9FD&9FD%5( -XMC2PW4TB#[`A(.>]S>TB)^^LXBP7&01``AM(B09U -XMPDB#Q`A;7<-(BS5801``OPH```#HVMG__^N?2(LU14$0``^^^NC)V?__ZXX[ -XM1BA\"(#Z"F9FD'6RZ*7<___I=____[\*````Z);<___I:/___V9FD&:005=! -XM5D%505154TB![-@```!(B7PD&$R+M^````!-A?8/A/\```!(C80DH````$B- -XME"3`````2(D$)$B)5"0(ZPU-BW98387V#X37````08M63(72=>M)BQZ_Q6Y` -XM`+D(````_$B)WO.F=-:_S6Y``+D(````2(G>\Z9TQ;_5;D``N0H```!(B=[S -XMIG2T2(M,)!B#>6@!#X2;````2(M\)!A(B=[HI_C__X7`#X1P`P``,=M%,?]( -XMQT0D6`````#K.4B+?"182`-[&.CMV___28G'387_#X3\`P``2(M$)%A(BU,8 -XM2(MS"$F-/`?H"]S__TB+4QA(`50D6$F+?@A(B=[HAMC__TB%P$B)PP^$C@`` -XM`$V%_W6J2(M[&.BO^__],B??H#?'__TB+5"08BT)L@^`P@_@0=1M)BT9`2(/X"70&2(/X -XM!'4+28-^*``/A?`!``!)BS9(BWPD&#'2Z%/U__](A<`/A!O]__^+0#"%P`^$ -XM$/W__TF+?AA(A?]T#4F+=BA(A?8/A?0````QV^L-2(MS&$B+>PCHR/O__TF+ -XM?@A(B=[H*-;__TB%P$B)PW7?Z%O9__^%P`^%$08``(L%@3T0`(7`#X5A`0`` -XM2(LU@CT0`(M&#(/H`87`B48,#XCZ/+T__^%P`^$I?[__^EV_/__ -XM9F:09I#HV_K__^DO____28LV2(M\)!@QTN@7]/__3(M@&$R)Y^C7V/__2(M\ -XM)%!(`WPD6$B)PDR)YDB)P^@/UO__2`-<)%A(BTPD4,8$"P!(@\,!2(E<)%CI -XMD)_?__OFIP0`"_1@```#'`Z/37__](BS4A/!`` -XMOPH```#HH]3__^E#^___28M^$$B-="1@Z%#5__](A<`/A&$%``!(BTPD&(N< -XM)(@```!(BT%02(MX".@NV/__2#G##X77_?__28M^$#'VZ$K4__](AT))@```!(A`@2`'02(GRB=Y(B80DJ````.B"U___A,/A#/]__])@WY`"76.2(V4),````")WDB)[^B8U___2#M$)`A(B<8/ -XMA9($``!(BWPD&$B+E"3(````2(M'>$B)T8/B_TC!Z2!(B>](BP3(2,'@($@! -XMT$B)\HG>2(F$),@```#HW]/__X7`=8V______^C!T___OIQP0`!(B<*_1@`` -XM`#'`Z!W4__^028L>0<=&4`$```!)QT8H`````.DD^O__2(M4)!B+G"2(```` -XM2(M"4$B+>`CHR];__T@YPP^%]_K__TF+?@@Q]NCGTO__2(7`2(E$)"`/A+D# -XM```QTDB+A"2`````2/>T))@```!(A`CH(];_ -XM_TB)QDB+1"082(G:2(MX&.AOT___2(7`2(GU`@``2(M\)!CHG0@``(7` -XM=&)(BU0D&(-Z%`$/A*L```!)@WY`"0^$"0$``$V%Y`^$C`$``$DY[&9FD`^# -XM60$``$B+?"0H2XT$9$B-%,=(BX0DH````$B)`DB+A"2H````2(E""$F#?D`$ -XM#X3@`0``28/$`4F#Q0%,.VPD$`^$.P,``$F#?D`)#X4>____2(M\)"!(C90D -XMP````$2)[NB4U?__2#M$)`@/A!W___^______^C_T?__OE-P0`!(B<*_1@`` -XM`#'`Z%O2__])@WY`"0^$T@$``$V%Y`^$J0$``$DY[`^#>`$``$B+?"0P2XT$ -XM9$B-%(=(BX0DH````(D"2(N$)*@```")0@1)@WY`!`^%6O___TB+A"2P```` -XMB4((Z4K___^_"@```.@'U/__Z;?W__]-A>1F9I`/A,8```!).>QF9F:09F:0 -XM#X./````3(G@2(N4),````!(P>`$2`-$)#A(B1!(BY0DR````$B)4`A)@WY` -XM!`^%\?[__TB+A"2P````2(M,)"A+C11D2(E$T1#IUO[__T@![4B+?"0H2(GN -XM2,'F!.@YT?__2(7`#X3$`0``2(E$)"CI@/[__TB)[TC!YP3HFM/__TB%P`^$ -XMM@$``$B)1"0HZ57^__](`>U(BWPD.$B)[DC!Y@3H\]#__TB%P`^$?@$``$B) -XM1"0XZ4K___](B>](P><$Z%33__](A<`/A'`!``!(B40D..D;____OMMI0`"_ -XM1@```.A2T___B]#__[X5;T``2(G"OT8````QP.C7T/__2(N$)+````!( -XMB4(0Z0_^__](`>U(BWPD,$B--.T`````Z''0__](A<`/A/P```!(B40D,.E@ -XM_O__2(T\[0````#HT=+__TB%P`^$[0```$B)1"0PZ3?^__]-A>0/A)H!``!) -XM.>P/@VT!``!(BY0DP````$N-!.>)$$B+E"3(````B5`$28-^0`0/A9']__]( -XMBX0DL````$B+3"0P2XT49(E$D0CI=_W__[______Z+3/__^^]6]``$B)PK]& -XM````,<#H$-#__[______Z1;___^______^B,S___OEEJ0`!(B<*_1@```#'` -XMZ.C/__^______^ANS___OH-P0`!(B<*_1@```#'`Z,K/__^______^A0S___ -XMOCYN0`!(B<*_1@```#'`Z*S/__^^='!``+]&````,<#H^]'__[[;:4``OT8` -XM```QP.CJT?__13'_2,=$)#@`````2,=$)#``````2,=$)"@`````13'DZ+31 -XM__^%P(G'#X5J_O__2(M$)!B#>!0!#X2.````28-^0`E(BU0D.$@/150D*$F) -XM5AA(BTPD&#'V28-^0`E,B>)(BWD@N0$```!`#Y7&@\8,Z$//__])BQY)B48H -XM0<=&4`$```#I'_7__T@![4R)_TB--.T`````Z*S.__](A<`/A#?___])BL.08/$`40Y -XM92@/CI4```!(BWT83(GR1(GFZ`G.__],.?`/A8H```!(BWT@2(GB1(GFZ/'- -XM__],.>AU=HM$)$!(B>)$B>:)!"1(BT0D4$B)1"002(M$)%A(B40D&(M$)$2) -XM1"0$2(M$)'!(B40D,$B+1"1(2(E$)`A(BT,(2(E$)"!(BT,02(E$)"A(BWT@ -XMZ(3.__^%P'0X2(M;.$B%VP^%7?___TB#[(!;74%<05U!7L.______^C,R___ -XMO@=Q0`!(B<*_1@```#'`Z"C,__^______^BNR___OA]Q0`!(B<*_1@```#'` -XMZ&K.__^______^B0R___ONUP0`!(B<*_1@```#'`Z.S+__^______^ARR___ -XMOA!K0`!(B<*_1@```#'`Z,[+__]FD$%455-(B?M(@^Q`2(M_&$B-="0XZ#/+ -XM__^%P`^$Y@```$B+1"0X2(7`B4,HB4,L#X2:````,>U)B>1F9I!F9I!(BWL8 -XM2(GBB>[HKLS__TPYX`^%@0```+Y`````OP$```#HILS__TB%P$B)P@^$A``` -XM`$B+1"0(2(/%`4B)`DB+1"0@2(E""$B+1"0H2(E"$(L$)$C'0B@`````2,=" -XM.`````!(B4(82(U"*$B)0C!(BX.8````2(D02#EL)#A(C4(X2(F#F`````^' -XMPH`@``2(M'4$B)1"0P2(M76$B)5"0X2(M0$$B+<`CHB./__TB+ -XM3"0X3(GO2(M1$$B+<0BYS6Y``.ANX___2(M<)#!(C;0D@`$``$B+>Q#HQ,C_ -XM_TB%P`^$KQ(``$B+1"0X2(VT)$`!``!(BW@0Z*7(__](A<`/A)`2``!!]D5L -XM(`^%R@4``$F+?1A(C;0D&`(``.CPR/__A<`/A"06``!)BWT@Z"_*__^%P(E$ -XM)$0/A-$5``"^`0```+\P````Z+3)__](ARO__ -XM2(7`#X32%0``2(E$)$C&``"^`0```$&+?3"#QP>-1P>%_P](^,'_`TAC_^AN -XMR?__2(7`28F%B`````^$714``$R-I"0``0``,=LQ[69FD&9FD$F+?1A(B=[H -XMT,?__TB%P$B)PP^$.0X``$R)YDB)W^C)Q___3#G@#X6W#@``BY0D``$``$B+ -XMM"08`@``28M]&.@(R/__2(7`2(G%#X1U#@``_+_-;D``N0@```!(B<;SIG6> -XM2(G?Z(+*__](B40D8.CHR?__A<`/A;04``!(@WPD8``/A(`4``!,C:0D``$` -XM`#';28M]&$B)WN@^Q___2(7`2(G#=$Y,B>9(B=_H.\?__TPYX`^%*0X``(N4 -XM)``!``!(B[0D&`(``$F+?1CH>L?__TB%P$B)Q0^$YPT``$&_Q6Y``+D(```` -XM2(G&_$R)__.F=9[H8\G__X7`#X4O%```2(7;#X3^$P``,=)(BX0D(`$``$CW -XMM"0X`0``2(7`2(E$)"@/A:\%``!(QT0D<`````!(QX0DN````$````!(QT0D -XM4`$```!)BYW@````2(7;#X2Q`0``0;_%;D``ZPU(BUM82(7;#X2<`0``3(L# -XMN0@```!,B?_\3(G&\Z9TX+_-;D``N0@```!,B<;SIG3/O]5N0`"Y"@```$R) -XMQO.F=+Y!]D5L!'002(M#0$B#^`ETK4B#^`1TITB+>Q#H*LG__TF+E8@```!( -XMB<%(P>D##[84"HG!@^$'T^J#X@%U@,>$).`!````````2,>$).@!```````` -XM2,>$)/`!````````QH0DY`$```-(BWL(Z-C(__^#?"1$`6:)A"3F`0``#X2Q -XM#0``28M6$$B%T@^$JA(``$B+C"2X````23M.*`^&"@\``(N$).`!``"%P`^% -XM`PT``$F+1BA(C01`QP3"`````$F+1B@/MI0DY`$``$F+3A!(C01`B%3!!$F+ -XM1B@/MI0DY0$``$F+3A!(C01`B%3!!4F+1BA)BTX02(N4).@!``!(C01`2(E4 -XMP0A)BT8H28M.$$B+E"3P`0``2(T$0$B)5,$0#[>,).8!``"-0?]F/?[^#X=G -XM#```28M%<$F+5B@/M\E)BW802(L$R$B-%%)FB436!DF#1B@!2(M;6$B%VP^% -XM9/[__TB#?"1P`'152(-\)"@`=$,QTC'VZP202(GRB?!(BUPD<(GQP?@#@^$' -XM2)@/M@08T^BH`7032(T$U0````!)`T5X28M6*$@!$$B#Q@%(.W0D*'7$2(M\ -XM)'#H1L?__S'`@WPD1`%)BU8@28M-4`^5P$D#5BA(C03%$````$@/K\)(B4$H -XM28M%4$R)R@`#X6]`@``2(-[(``/A4L"``!(BTPD.$B+>1#H@$))`!````````,$)(0!```"````2,>$ -XM)(@!````````2(F$)*`!``!)BWT@Z+7#__](BTPD,$B)A"2X`0``2(G>2(MY -XM$.A,P___2#G8#X4Z"@``3(V\),`!```QVT4Q]DB+1"0P2(G>2(MX$.A5PO__ -XM2(7`2(G#='PQTDB+0QA(][0D^````$B%P$B)Q73113'D0;T!````3(GZ1(GF -XM2(G?Z/##__],.?@/A?D,```/MH0DQ`$``,#H!(3`10]$]4F#Q`%)@\4!23GL -XM=)/KR4B+?"0PZ%'<__](BWPD..A'W/__2('$*`(``%M=05Q!74%>05_#Z`S% -XM__^%P`^%Z!```$B+5"0X1(FT)*P!``!(C;0D@`$``$C'A"10`0```````$C' -XMA"1P`0```0```$B+3"0P2(M"*,>$)$0!```#````2,>$)$@!````````2,>$ -XM)'@!````````QX0D;`$```````#'A"1H`0```````$B)A"1@`0``2(MY$.@D -XMQ?__A`#2(E"$$B+0QA(B4(( -XM2(M#(,="(!(```#'0B0!````2(T$0$C!X`-(B4(8Z4[]__](BW@0Z-3`__]( -XMAG\__](BWPD*+X(```` -XMZ&3"__](AH#2(G72(F4)(`` -XM``#H-<+__TB%P$B)1"1X#X0F#@``2(M,)'@Q]DB)WTB)3"1PZ..___](A$)+@```!`````2,=$)%`!````0;\``@``2,>$)*@````````` -XM2,>$)+``````````2(E<)!A(B40D$$B)%"1(B4PD"(N$)+````!(BWPD:$B- -XME"3@`0``B<:)A"2D````Z!3!__](.T0D&`^%&PH``(N4).`!``!)BWT82(MT -XM)&#H5,#__TB%P$B)Q0^$P08``$B)QDR)[^B!]?__A<`/A><```!)BYW````` -XM2(7;=0OK24B+6PA(A=MT0$B+,TB)[^C#P/__A&X`0```-/@"`0:28M5>$F+1B!(BXPDJ````$B)!,J#?"1$`0^$ -XMR@$``$B-O"3@`0``Z!;T__^%P`^$E`(``$F+5A!(A=(/A)4'``!(BX0DN``` -XM`$D[1B@/A@<%``"+O"3@`0``A?\/A(X#``"`?0``#X2$`P``28M&*(M,)%!( -XMC01`B0S"28M&*`^VE"3D`0``28M.$$B-!$"(5,$$28M&*`^VE"3E`0``28M. -XM$$B-!$"(5,$%28M&*$F+3A!(BY0DZ`$``$B-!$!(B53!"$F+1BA)BTX02(N4 -XM)/`!``!(C01`2(E4P1`/MXPDY@$``(U!_V8]_OX/AC,#``!)BT8H28M6$$B- -XM!$!FB4S"!DF#1B@!#[:$).0!``"#X`^#^`,/A)$"``"`?0``#X39_?__ZQY( -XMBWPD2$T!_TR)_NA6O?__2(7`#X0(!```2(E$)$A(B>_H0,#__TB+5"102(G! -XM2`'"28U'_T@YPG/&2(M<)$A(`UPD4$B)RDB)[DB)W^ADO?__2(GOZ`S`__]( -XMB>_&!`,`Z`#`__](BUPD4$B-7`,!2(E<)%#I7?W__TB-O"3@`0``Z(/R__^% -XMP`^%-_[__P^VA"3D`0``P.@$/`(/A`$B%0(#$F+1B@/MI0DY0$` -XM`$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4"`1)BT8H28L.2(N4 -XM)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&,0,``$F+1BA)BQ9(P>`$ -XM9HE,$`[I._[__TF+5AA(A=(/A*(%``!(BT0D6$D[1B`/ACT"``"+M"3@`0`` -XMA?8/A.D```"`?0``#X3?````28M&((M,)%!(C01`B0S"28M&(`^VE"3D`0`` -XM28M.&$B-!$"(5,$$28M&(`^VE"3E`0``28M.&$B-!$"(5,$%28M&($F+3AA( -XMBY0DZ`$``$B-!$!(B53!"$F+1B!)BTX82(N4)/`!``!(C01`2(E4P1`/MXPD -XMY@$``(U!_V8]_OX/AH$```!)BT8@28M6&$B-!$!FB4S"!DF#1B`!#[:$).0! -XM``"#X`^#^`,/A6_]__\/MY0DY@$``$F+17!(BPS0N`$```!(BH# -XM20.5B````-/@"`+I0/W__TF+1B!(C01`QP3"`````.D<____28M&*$B-!$#' -XM!,(`````Z7?\__])BT5P28M6(`^WR4F+=AA(BP3(2(T44F:)1-8&Z6____]) -XMBT5P28M6*`^WR4F+=A!(BP3(2(T44F:)1-8&Z;W\__])BU8(2(72#X2_!@`` -XM2(M<)%A).UX@#X8R`P``1(N$).`!``!%A8# -XMZ%6Y__](A8#Z!FY__](A($9HE$,@[I__K__TF+1BA)BU802(T$0&:)3,(& -XMZ9_S__^`?0``#X3S\O__28M&*(M,)%!(C01`B0S"Z>[R__])BT8@BTPD4$C! -XMX`2)#!#I//[__TF+1BB+3"102,'@!(D,$.GB^___2,<`!````$B+0RA(P>`$ -XM2(E"$$B+0PA(B4((2(M#(,="(!(```#'0B0!````2,'@!$B)0ACI]?/__TF+ -XM%DB%T@^$,08``$B+C"2X````23M.*`^&?00``(N,).`!``"%R0^$^P```(!] -XM```/A/$```!)BT8HBTPD4$C!X`2)#!!)BT8H#[:4).0!``!)BPY(P>`$B%0( -XM#$F+1B@/MI0DY0$``$F+#DC!X`2(5`@-28M&*$F+#DB+E"3H`0``2,'@!(E4 -XM"`1)BT8H28L.2(N4)/`!``!(P>`$B50("`^WC"3F`0``C4'_9CW^_@^&C0$` -XM`$F+1BA)BQ9(P>`$9HE,$`[I4_+__T@!P$B)UTB)QDB)A"2X````2,'F!.@. -XMM___2(7`2(G"28D-^O__Z;7]__](`=M(B==(B=Y(B5PD6$C!Y@3HX[;_ -XM_TB%P$B)PDF)1@@/A:?\___IB?W__V:028M&*$C!X`3'!!``````Z0K___]( -XMBYPDN````$B-/%M(P><#Z".Y__](A8#Z&&V__](A($9HE$,@[IN_#__TB+O"2`````O@$```#H_K;__TB% -XMP$F)A8`````/A.T"``!)BWT82(VT)!`"``#H[;7__X7`#X0A`P``13'D28M] -XM&$R)YNA6M?__2(7`28G$#X2'`@``2(VT),````!,B>?H2K7__T@[1"00#X4V -XM_/__BX0DQ````(/X"70%@_@$=;R+E"3`````2(NT)!`"``!)BWT8Z':U__]( -XMA_H-M3__X7`=8R+M"3L````3(GOZ'/5__^%P`^%=?__ -XM_TF+15"+G"3H````2(MX".C3M___2#G#2,>$))``````````2,>$))@````` -XM````#X5`____2(N,))````!(.XPDX`````^#KP(``$B+M"28````3(GGZ+RS -XM__](AT)/@```"%P$B) -XMPWZLQX0DC`````````"#O"3$````"0^$H`(``(NT)(P```!(B[PDF````$B- -XME"3``0``Z+FU__](.P0D#X6Q`@``BX0DS`$``$B)A"20````2(.\))`````` -XM#Y7`="-(BU0D*$@YE"20````#X+7`0``A,!T#+_,<4``,<#H?[3__X.$)(P` -XM```!.9PDC`````^$&/___^ER____2(N\)+@```!(P><$Z!2V__](A;Y___HMK7__X7`B<=(QX0DN````$````!(QT0D4`$````/A(/L___H -XMTK+__[Z'<4``2(G"OT8````QP.@NL___2(N$)+@```!(C3Q`2,'G`^A9M?__ -XM2(7`2(G"28E&$`^%0^W__^DQ_/__OFQQ0`"_00```#'`Z/.R___H/K7__X7` -XMB<=U#DF+E8````#I=//__XG'Z&6R__^^KFY``$B)PK]&````,<#HP;+__[[, -XM:D``OT8```#H$K7__[______Z#BR__^^4W%``$B)PK]&````,<#HE++__[[, -XM:D``OT8````QP.CCM/__OMMI0`"_1@```.C4M/__O______H^K'__[[:;T`` -XM2(G"OT8````QP.A6LO__O______HW+'__[[A<4``2(G"OT8````QP.@XLO__ -XM2(N$))````"+C"20````N@$```!(P>@#20.%@````(/A!]/B"!#I#O[__^A8 -XMM/__A<")QP^$;/S__V:0Z;#^__](B[PDN````$C!YP3H)K3__TB%P$B)PDF) -XM!@^%P?G__^G_^O__9F:09F:0BQA) -XMB<5-B?Y,`W,H33GW_HQ;/__TDYQ4B)PW?F -XM3"GH2(LT)$R-)"A,B>?HVK'__X7`=<](@\0(1(G@6UU!7$%=05Y$*?A!7\-( -XM@\0(N/____];74%<05U!7D%?PY!!5T%6055)B?U!5%532(/L&$B)-"1(BV\H -XM2(7M28GN=29(QT2`,T).C3L/__A7!E -XM`&5L9E]G971S:&YU;2!F86EL960Z("5S`&-A;&QO8R!F86EL960`9V5L9E]U -XM<&1A=&5?96AD6UB;VP`;W5T -XM<'5T+69I;&4`<')E2!A;F0@6UT86(`+G-T"!I;F1E>`!E;&9?;F5W -XM9&%T82@I(&9A:6QE9#H@)7,N`"1&'`@ -XM)``!&___&`,0````````````````````````````GFE````````````````` -XM`%A\4`````````````````#::T````````````````````````````!H```` -XM`````-]K0````````0```````````````````$L`````````ZVM````````! -XM````````````````````;P````````#W:T`````````````````````````` -XM``!P``````````9L0````````0```````````````````%(`````````%6Q` -XM````````````````````````````E(` -XM`7@0`0,,!PB0`0``'````!P```!0&T``DP````!"#A",`D4.&$$.((,$A@,4 -XM````/````/`;0``X`````$0.$``````4````5````#`<0``B```````````` -XM```4````;````&`<0``I`````$0.$``````4````A````)`<0``I`````$0. -XM$``````4````G````,`<0``I`````$0.$``````D````M````/`<0`"/!@`` -XM`$J/`H8&80[@`8X#C02,!8,'````````-````-P```"`(T``<`@```!"#A"/ -XM`D4.&(X#2@X@0@XH00XP00XX1P[0`8,'A@:,!8T$```````4````%`$``/`K -XM0`!]```````````````<````+`$``'`L0`"V`0```$J#!8P#40YPC0*&!``` -XM`"0```!,`0``,"Y```!`!`PP'")`!```` -XM````%````"`````0:4``)0````!(#A"#`@```0`````````!``````````$` -XM````````Q@$````````,`````````,@60```````#0`````````X:4`````` -XM``0`````````^`%````````%`````````-`+0```````!@````````!0!$`` -XM``````H`````````#P,````````+`````````!@`````````%0`````````` -XM``````````,`````````:'Q0```````"`````````)`&````````%``````` -XM```'`````````!<`````````.!!````````'`````````,`/0```````"``` -XM``````!X``````````D`````````&`````````#^__]O`````(`/0``````` -XM____;P`````"`````````/#__V\`````X`Y````````````````````````` -XM```````````````````````````````````````````````````````````` -XM``````````````````````````````````````````````````#_________ -XM_P``````````__________\`````````````````````H'I0```````````` -XM````````````````\A9````````"%T```````!(70```````(A=````````R -XM%T```````$(70```````4A=```````!B%T```````'(70```````@A=````` -XM``"2%T```````*(70```````LA=```````#"%T```````-(70```````XA=` -XM``````#R%T````````(80```````$AA````````B&$```````#(80``````` -XM0AA```````!2&$```````&(80```````6YC7W-E8W1I;VYS`"(1``!I;G-E5]C;VYT96YT``````!! -XM`````@!^+@``W`D``'$(``!A9&1?=&]?:6YS96=?;&ES=`#W"```8V]P>5]P -XM:&1R`'P)``!S971U<%]P:&1R``````!C`````@!:.```!1,```L,``!L;V]K -XM=7!?:V5E<%]S>6UL:7-T`&8,``!A9&1?=&]?6`@```TP&```".8,````" -XM"`5=`P```X8"```".I4````""`>1`@```@@$AP,```($!*D#```#]00```)2 -XMB@````,\!0```E1X````!0@'!@@#?`$```,F9@````,5`P```R=X`````[0& -XM```#*68````#B0````,L9@````,T`P```RYF`````PT"```#,4(````#70<` -XM``,S0@````,(!0```S1X`````W`&```#/F8````#&@$```-;9@````(!!K(! -XM```#_`$```190@````-/`P``!%YF`````X@"```$8XH````'"#,!```'"&U````"7(&```$"`$=`0``"MT%```0 -XM!2X/`@``"X<'```%+\\!```"(P`+\`4```4P@P````(C"``*U@```'@&@PH# -XM```+V`0```:$*`$```(C``M-!P``!H68`0```B,$"V@&```&AJ,!```"(P@+ -XM@P0```:'K@$```(C"@N0`0``!HC:`0```B,,"V0"```&B8T!```"(Q`+O@$` -XM``:**`$```(C%`O9!0``!HSF`0```B,8"R`#```&C>8!```"(R@+8`4```:. -XMY@$```(C.`NK`@``!I>Y`0```B-("S8````&F')`P```B,`#%]R``AH -XM7P````(C"`Q?=P`(:5\````"(PP+?0H```AJ.P````(C$`NN!@``"&L[```` -XM`B,2#%]B9@`(;&`#```"(Q@+0P8```AM7P````(C*`M)`@``"'##`````B,P -XM"_,!```(<<,$```"(S@+L@0```ARXP0```(C0`O2!```"',#!0```B-("TD` -XM```(=",%```"(U`,7W5B``AW8`,```(C6`L`````"'@O!0```B-H#%]U<@`( -XM>5\````"(W`+1@0```A\-04```(C=`N;````"'U%!0```B-W#%]L8@`(@&`# -XM```"(W@++0````B#7P````,CB`$+=PD```B$50,```,CD`$`#0%?````PP0` -XM``[#``````<(LP0```T!7P```.,$```.PP````Y;`0``#E\`````!PC)!``` -XM#0%5`P```P4```[#````#E4#```.7P`````'".D$```-`5\````C!0``#L,` -XM```.80$```Y?``````<("04```_M`@```0<(*04``!`T````104``!'````` -XM`@`0-````%4%```1P````````Z8"```(A8\#```""`58`P``$#0```!W!0`` -XM$<`````/``/[`@``"290`0```Y0&```!%7$#```"%7$'```#%=L````$`!0$"C9=!P``%3$%````%9H'```! -XM%>8%```"%;$%```#%H````3%>$"```4%7P#```5%0X!```6%?X$```7`!0$ -XM"E6T'```+MPH```PB80$```(C``M>!```#"2M -XM!P```B,(``<(Q`<``!((##8*"```"U8%```,-K\(```"(P``"F8#``!(#"B_ -XM"```"[<*```,*6$!```"(P`+H@$```PJ80$```(C"`M!`@``#"MA`0```B,0 -XM"X4-```,+&$!```"(Q@,861D``PN7P````(C(`M;`0``#"]?`````B,D"\D' -XM```,,%\````"(R@+404```PQ7P````(C+`O9`0``##)?`````B,P"V\````, -XM,U\````"(S0+5P0```PT7P````(C.`NB!```##;S!P```B-```<("@@``!(( -XM##_<"```"U8%```,/R$)```"(P``"@<&```@##HA"0``"[<*```,.UL!```" -XM(P`+=`H```P\6P$```(C"`L`"```##W$`0```B,0"Z<````,/\4(```"(Q@` -XM!PC<"```$A`,44P)```+5P4```Q1&@H```(C``LX`@``#%$@"@```B,(``JD -XM"0``>`Q#&@H```NW"@``#$1A`0```B,`#&ES``Q%G`<```(C"`QO=`H```O7`@`` -XM#%X:"@```B,`"P0'```,7B`*```"(P@`$@@,7XL*```+5@4```Q?^@H```(C -XM```*NP(``$`,5OH*```,;V9F``Q74`$```(C``QF@`,65`!```"(Q`+W0@```Q:4`$```(C&`MO````#%Q?`````B,@"X@'```, -XM7DL*```"(R@+3@L```Q?=`H```(C.``'"(L*```4!`R-)PL``!5B`0```!40 -XM!0```14W!@```A7X!0```Q43!@``!``2$`RI3`L```O6`@``#*GZ"@```B,` -XM"P,'```,J4P+```"(P@`!PCZ"@``$A`,JG<+```+U@(```RJOP@```(C``L# -XM!P``#*IW"P```B,(``<(OP@``!(0#*NB"P``"]8"```,JR$)```"(P`+`P<` -XM``RKH@L```(C"``'""$)```2$`RMS0L```O6`@``#*WM!P```B,`"P,'```, -XMKU\````" -XM(RP,;F]S``Q]7P````(C,`LQ!```#()?`````B,T"T\!```,@U\````"(S@+ -XMO0<```R$7P````(C/`O-`0``#(5?`````B-`"V,````,AE\````"(T0+104` -XM``R'7P````(C2`O@#```#(D:"@```B-0"VH-```,BAH*```"(U@+Y@D```R+ -XM&@H```(C8`M^!@``#),`"P```B-H"WX*```,FU\````"(VP+KP<```R>Z@T` -XM``(C<`OS!@``#*'J#0```B-X"^T&```,I(D#```#(X`!"U0'```,IXD#```# -XM(X@!"S`!```,J2<+```#(Y`!"P<````,JE(+```#(Z`!"S8!```,JWT+```# -XM([`!"W@&```,K:@+```#(\`!"XP$```,K],+```#(]`!"X@'```,L?@+```# -XM(^`!``<(>P8```<(4`$``!8W!P``!`$L#PX``!7&`````!5V`````14/!@`` -XM`@`7>P<```%:`@%@'$```````(D<0````````````!<&`P```5,"`9`<0``` -XM````N1Q````````X````%[@````!3`(!P!Q```````#I'$```````'`````8 -XM/P<```$,`0$!F0X``!EE8W```0L!F0X``!EI9F0``0L!7P```!EO9F0``0L! -XM7P`````'"!T,```:&`````&(`0'D#@``&V5C<``!AYD.```J`8```$O`0'P -XM'$```````'\C0```````J````/D/```?96-P``$N`9D.``#A````'W-R8P`! -XM+@%A`0``*@$``!]D04```$R`<0!```A:69D``$S`5\```#&`P``(6]F9``!,P%?````(@0``"-F -XM#@````````%7`22,#@``)(`.```D=`X``".?#@``H`````$=`22L#@``)3`! -XM```FMPX``,H$```GP@X```.1\'XGS0X```.1L'XFV`X``$P%````````&%T& -XM```!%0(!`5H0```996-P``$4`ID.```H]@(```$4`E\````H$`,```$4`EH0 -XM```IA```"1N$```);`$```F -XMDA```+,+```FGA```.D+```FJA```$4,```MMA```"W"$```+BJ`````X0&```"+[H````)5@8``!`"1E,!```*(@4```)'4P$` -XM``(C``K_!P```DA?`````B,(``<(-`````FC`@``F`)F?0(```M?<``"9U,! -XM```"(P`+7W(``FA?`````B,("U]W``)I7P````(C#`I]"@```FH[`````B,0 -XM"JX&```":SL````"(Q(+7V)F``)L*@$```(C&`I#!@```FU?`````B,H"DD" -XM```"<+@````"(S`*\P$```)QC0(```(C.`JR!````G*M`@```B-`"M($```" -XM<\T"```"(T@*20````)T[0(```(C4`M?=6(``G/D" -XM```"(V@+7W5R``)Y7P````(C<`I&!````GS_`@```B-T"IL````"?0\#```" -XM(W<+7VQB``*`*@$```(C>`HM`````H-?`````R.(`0IW"0```H0?`0```R.0 -XM`0`,`5\```"-`@``#;@`````!PA]`@``#`%?````K0(```VX````#0,!```- -XM7P`````'"),"```,`1\!``#-`@``#;@````-'P$```U?``````<(LP(```P! -XM7P```.T"```-N`````T)`0``#5\`````!PC3`@``#NT"```!!PCS`@``#S0` -XM```/`P``$+4````"``\T````'P,``!"U```````#I@(```*%60$```((!5@# -XM```#C0H```8F[0````,%"```!BG,`````Q$(```&*NT````/-````&(#```0 -XMM0````\`$0@&>H<#```*Q0D```9[,0,```(C``KV"```!GQ'`P```B,$``-& -XM"0``!GUB`P``$0P&@,4#```*Q0D```:!,0,```(C``KV"```!H)'`P```B,$ -XM"D,*```&@SP#```"(P@``V0*```&A)(#```#^P(```$T`,```(C``KV"``` -XM!X4'!````B,(``.L"0``!X:*!0``$1@'B>T%```*Q0D```>*T`,```(C``KV -XM"```!XL'!````B,("D,*```'C/$#```"(Q```^\)```'C;H%```216QF``@F -XM`P8```ZV`P```0,&`0``""<4!@``#@4!```!$P0(-K,&```4,04````4F@<` -XM``$4Y@4```(4L04```,4S`,```04OP8```44C@<```843`0```<4D`4```@4 -XM4`````D4?`(```H4^@````L49P<```P4?@4```T4EP0```X4G`8```\4(0(` -XM`!`4(@$``!$4(@8``!(4Z@```!,4X0(``!04?`,``!44#@$``!84_@0``!<` -XM`^((```(3QH&```1"`AXU08```I6!0``"'A@!P```B,```G5"0``0`AH8`<` -XM``HT"@``"&SX`````B,`"E@)```(;;@````"(P@*$@H```AN^`````(C$`K^ -XM!P``"&_X`````B,8"ML(```(<+,&```"(R`*J@H```AQ<0````(C)`HY"``` -XM"'9F!P```B,H"GP*```(=W$````"(S`*(PD```AXO@8```(C.``'"-4&```' -XM"`D&```#U@D```AYU08```.,'```*MPH```HB"0$```(C``I>!```"B2C!P```B,(``<(N@<``!$("C8` -XM"```"E8%```*-K4(```"(P``"68#``!("BBU"```"K<*```**0D!```"(P`* -XMH@$```HJ"0$```(C"`I!`@``"BL)`0```B,0"H4-```*+`D!```"(Q@+861D -XM``HN7P````(C(`I;`0``"B]?`````B,D"LD'```*,%\````"(R@*404```HQ -XM7P````(C+`K9`0``"C)?`````B,P"F\````*,U\````"(S0*5P0```HT7P`` -XM``(C.`JB!```"C;I!P```B-```<(``@``!$("C_2"```"E8%```*/Q<)```" -XM(P``"0<&```@"CH7"0``"K<*```*.P,!```"(P`*=`H```H\`P$```(C"`H` -XM"```"CT4`0```B,0"J<````*/[L(```"(Q@`!PC2"```$1`*44()```*5P4` -XM``I1$`H```(C``HX`@``"E$6"@```B,(``FD"0``>`I#$`H```JW"@``"D0) -XM`0```B,`"VES``I%9@<```(C"`MO:@H```K7`@``"EX0"@```B,`"@0'```*7A8* -XM```"(P@`$0@*7X$*```*5@4```I?\`H```(C```)NP(``$`*5O`*```+;V9F -XM``I7^`````(C``MF@`*6?@````"(Q`*W0@```I: -XM^`````(C&`IO````"EQ?`````B,@"H@'```*7D$*```"(R@*3@L```I?:@H` -XM``(C.``'"($*```3!`J-'0L``!1B`0```!00!0```10W!@```A3X!0```Q03 -XM!@``!``1$`JI0@L```K6`@``"JGP"@```B,`"@,'```*J4(+```"(P@`!PCP -XM"@``$1`*JFT+```*U@(```JJM0@```(C``H#!P``"JIM"P```B,(``<(M0@` -XM`!$0"JN8"P``"M8"```*JQ<)```"(P`*`P<```JKF`L```(C"``'"!<)```1 -XM$`JMPPL```K6`@``"JWC!P```B,`"@,'```*K<,+```"(P@`!PCC!P``$1`* -XMK^X+```*U@(```JOXP<```(C``H#!P``"J_#"P```B,(`!$0"K$3#```"M<" -XM```*L1`*```"(P`*!`<```JQ%@H```(C"``)(P```/`*;MH-```*E0,```IO -XM"0$```(C``JA````"G)?`````B,("K8'```*U\````"(RP+;F]S``I]7P````(C,`HQ -XM!```"H)?`````B,T"D\!```*@U\````"(S@*O0<```J$7P````(C/`K-`0`` -XM"H5?`````B-`"F,````*AE\````"(T0*104```J'7P````(C2`K@#```"HD0 -XM"@```B-0"FH-```*BA`*```"(U@*Y@D```J+$`H```(C8`I^!@``"I/V"@`` -XM`B-H"GX*```*FU\````"(VP*KP<```J>X`T```(C<`KS!@``"J'@#0```B-X -XM"NT&```*I%,!```#(X`!"E0'```*IU,!```#(X@!"C`!```*J1T+```#(Y`! -XM"@<````*JD@+```#(Z`!"C8!```*JW,+```#([`!"G@&```*K9X+```#(\`! -XM"HP$```*K\D+```#(]`!"H@'```*L>X+```#(^`!``<(^`4```<(^````!73 -XM"@```>(!\"M```````!M+$````````)W"#H.```696-P``'A.@X```%5%G-E -XM8P`!X1`*```!5!=S``'C$`H```%1&/,*```![D,L0`````````<($PP``!D! -XMC`D```&C`P%P+$```````"8N0```````OA```*`.```:96-P``&B`SH.``#W -XM$```&W,``:0#$`H``$`1```<`0L```&E`Z`.``!V$0``'7-H``&F`X('```# -XMD9!_``<(;`<``!D!\@<```%[`P$P+D```````#WPD```%L`P%`+T```````*LO0```````_!(` -XM`%`S0```````&C5```````#4&```(A$``!IE -XM8W```4@".@X``%T9```; -XM$@``$+4````$``<("0$``"(!F`H```$W`5\```!`-T```````(DX0``````` -XMY!X``'X3```C96-P``$V.@X``!T?```DMPH```$V"0$``&8?```KD`4``$`3 -XM```ET```#O(```,;<*```!7PD!```X(0``%VES:``!8(('```#D9!_)6ES -XM``%A9@<``&XA```Q!0D```%B%`$``*0A```Q$0D```%C7P```-PA````,@&( -XM"````?D!L#E```````#%/$```````!(B``"S%```(V5C<``!^#H.``##(@`` -XM)7,``?H0"@``#",``#&W"@```?L)`0``52,``"5IL'```!__@```"3)```,3P* -XM```!__@```#<)```'!$)```!``%?````."4````SDP@```*'`0%?`````]P4 -XM```T7V,``H`(#`0``('-R8P`!>`(#`0``(&5N9``!>`(#`0``.3\( -XM```!>0)?`````#.?"0```=X"`;@````!:Q<``#1S``'=`A`*```[``@```'= -XM`FL7```@:60``=\"H`X``"!B``'@`@,!```@$"%`$``#D1"0```>(" -XM7P`````'"!0!```X7@D```$@`@$!V1<``#1E8W```1\".@X``#1S``$?`A`* -XM```@;W-H``$A`H('```@;"````;4!7P````$,&```.F5C -XM<``!M#H.```HMPH```&T"0$``"IS86,``;:U"````#B>"````X8```V:18```8J```M7A8````U=18``"`(```!E0&7 -XM&0``+8\6```M@Q8``#R`"```/9D6```\*@``/:46``!R*@``,+$6```PO18` -XM`#W'%@``#RL``##3%@``/=T6``#=*P``/><6``#1+```,/$6```O_18```.1 -XML'XP"1<``#<6%P``H`D```%[`BTR%P``+2@7```\X`D``#T^%P``Q2T``#!) -XM%P``,%,7```]7A<``),N````````-6T5``!`"@```9`!,AH``"V'%0``+7L5 -XM```\H`H``#V1%0``W"X``"^=%0```Y'0?B^I%0```Y&P?R^U%0```Y&0?SW! -XM%0``)2\``"_-%0```Y&H?B_9%0```Y&@?B_E%0```Y&8?B_Q%0```Y&0?CW\ -XM%0``NB\``#`(%@``/1(6```\,```/1X6``#1,```/2H6```M,0`````^V1<` -XM`+Y`0```````X4!````````!H@%T&@``+?47```MZA<``"[-0$```````.%` -XM0```````/0`8``!C,0`````W#!@``)`,```!HP$M&A@``#SP#```/208``"L -XM,0``/2\8```N,@``-[,4``!P#0```=D"-M`4``!W,@``+<44````````/SP) -XM```"BMP4```!`4#%!````J`!7P````$!`-@)```"`-X%```(`0T'```!)@L` -XM`.$#``"024```````(5-0```````$`@```(!!JL!```"`0BI`0```@(%NP4` -XM``("!]$&```#!`5I;G0`!$T#```".%L````"!`>6`@```@@%70,```2&`@`` -XM`CIT`````@@'D0(```((!(<#```"!`2I`P``!/4$```"4FD````%"`<&"`(! -XM!K(!```$3P,```->4`````2(`@```V-I````!PB9````!PC"````")D````$ -XM]P0```/HB0````3[`@``!":K````!-<#```$**L````$I@4```0KH`````0P -XM"0``!"VK````"3@$9W`L```1KT@````(C$`J("P``!&S2`````B,8"CP+ -XM```$;?,````"(R`*@`L```1N\P````(C*`I7"P``!&_S`````B,P``0Q"P`` -XM!'#^````"T5L9@`%)HT!```,M@,```$$!@$```4GG@$```P%`0```0T$!57C -XM`0``#A\$````#L\%```!#G8$```"#M\!```##IX#```$#@T````%#L4%```& -XM#LH"```'#BX"```(``<(DP$```1?"P``!B]W`0``!P@T`````@@%6`,```D( -XM!R08`@``"E8%```')$$"```"(P``#T,-```0!R%!`@``"K<*```'(KP````" -XM(P`*7@0```,!```" -XM(P@0;W,`!T;C`0```B,0$&)U9@`'1Y<````"(Q@0;V9F``=(JP````(C(!!S -XM>@`'2:L````"(R@08V%P``=*JP````(C,`HV"@``!TNK`````B,X"MT(```' -XM3*L````"(T`*WP0```=-20````(C2`JQ````!TY)`````B-,"JL$```'3TD` -XM```"(U`*W0H```=1>P,```(C6`HM`P``!U)Z!````B-H``<(H`,```<(;@0` -XM``D0!U*?!```"E<%```'4FX$```"(P`*.`(```=2=`0```(C"``/*`4``!`' -XM7L@$```*UP(```=>;@0```(C``H$!P``!UYT!````B,(``D(!U_?!```"E8% -XM```'7TX%```"(P``#[L"``!`!U9.!0``$&]F9@`'5ZL````"(P`09G-Z``=8 -XMJP````(C"!!MI3@4```(C``H#!P``!ZF@!0```B,(``<(3@4```D0!ZK+!0``"M8"```' -XMJA,#```"(P`*`P<```>JRP4```(C"``'"!,#```)$`>K]@4```K6`@``!ZMU -XM`P```B,`"@,'```'J_8%```"(P@`!PAU`P``"1`'K2$&```*U@(```>M00(` -XM``(C``H#!P``!ZTA!@```B,(``<(00(```D0!Z],!@``"M8"```'KT$"```" -XM(P`*`P<```>O(08```(C"``)$`>Q<08```K7`@``![%N!````B,`"@0'```' -XML70$```"(P@`#R,```#P!VXX"```"I4#```';[P````"(P`*H0````=R20`` -XM``(C"`JV!P``!W-)`````B,,$&EE8P`'=4D````"(Q`0;V5C``=V20````(C -XM%!!E:6X`!W#@(```"(R`*Q@$```=Z20````(C*`HJ -XM!```!WM)`````B,L$&YO"20````(C-`I/`0`` -XM!X-)`````B,X"KT'```'A$D````"(SP*S0$```>%20````(C0`IC````!X9) -XM`````B-$"D4%```'ATD````"(T@*X`P```>);@0```(C4`IJ#0``!XIN!``` -XM`B-8"N8)```'BVX$```"(V`*?@8```>35`4```(C:`I^"@``!YM)`````B-L -XM"J\'```'GCX(```"(W`*\P8```>A/@@```(C>`KM!@``!Z3T`0```R.``0I4 -XM!P``!Z?T`0```R.(`0HP`0``!ZE[!0```R.0`0H'````!ZJF!0```R.@`0HV -XM`0``!ZO1!0```R.P`0IX!@``!ZW\!0```R/``0J,!```!Z\G!@```R/0`0J( -XM!P``![%,!@```R/@`0`'"((!```'"*L````1$0L```%5`0%Q"```$G-E9P`! -XM5$X%```2=``! -XMA\<```#M-```'FD``8A)````$#4````@`08+```!9`%@3$```````(5-0``` -XM````634``!5E8W```6/Q"```SC4``!-S96<``65.!0``'Z`+```!9ND!```# -XMD:!_&,8!```!9\<````7-@``$VD``6A)```````!$P```@")!P``"`$-!P`` -XM`9L,``#A`P``D$U```````#:9D```````&4)```"`0:K`0```@$(J0$```(" -XM!;L%```#^@$```(V30````("!]$&```$!`5I;G0``TT#```".&8````"!`>6 -XM`@```TP&```".7@````""`5=`P```X8"```".HH````""`>1`@```@@$AP,` -XM``($!*D#```#]00```)2?P````4(!P8(`@$&L@$```-.!@```T]M`````_P! -XM```#64(````#3P,```->6P````.(`@```V-_````!PBO````!PCN````"*\` -XM```#]P0```/HGP````((!5@#```#C0H```0FS`````.\#```!"?!`````Q$( -XM```$*LP````)$`2W@P$```I+#0``!+@;`0```B,`"A4-```$N04!```"(P0* -XMJP(```2Z&P$```(C"`H-#0``!+LT`````B,,"O,,```$O#0````"(PT*_`P` -XM``2]$`$```(C#@`##@P```2^)@$```/[`@``!2;7`````YN@$```(C+`KF"@``!5_%`0```B,P"NL( -XM```%8,4!```"(S@``[P(```%8=`!```)$`6#E0(```K%"0``!82.`0```B,` -XM"O8(```%A<4!```"(P@``ZP)```%AG`"```)&`6)TP(```K%"0``!8J.`0`` -XM`B,`"O8(```%B\4!```"(P@*0PH```6,KP$```(C$``#[PD```6-H`(```D8 -XM!;X[`P``"DL-```%O[H!```"(P`*#0T```7`-`````(C!`KS#```!<$T```` -XM`B,%"OP,```%PID!```"(P8*%0T```7#C@$```(C"`JK`@``!<3%`0```B,0 -XM``,U#```!<7>`@``"T5L9@`&)E$#```,M@,```$#!@$```8G8@,```P%`0`` -XM`0T$!C8!!```#C$%````#IH'```!#N8%```"#K$%```##LP#```$#K\&```% -XM#HX'```&#DP$```'#I`%```(#E`````)#GP"```*#OH````+#F<'```,#GX% -XM```-#I<$```.#IP&```/#B$"```0#B(!```1#B(&```2#NH````3#N$"```4 -XM#GP#```5#@X!```6#OX$```7``/B"```!D]H`P``"0@&>",$```*5@4```9X -XMK@0```(C```/U0D``$`&:*X$```*-`H```9LUP````(C``I8"0``!FVM```` -XM`B,("A(*```&;M<````"(Q`*_@<```9OUP````(C&`K;"```!G`!!````B,@ -XM"JH*```&<68````"(R0*.0@```9VM`0```(C*`I\"@``!G=F`````B,P"B,) -XM```&>`P$```"(S@`!P@C!```!PA7`P```]8)```&>2,$```#6P@```@`(2=<````" -XM(R@08V%P``A*UP````(C,`HV"@``"$O7`````B,X"MT(```(3-<````"(T`* -XMWP0```A-5`````(C2`JQ````"$Y4`````B-,"JL$```(3U0````"(U`*W0H` -XM``A1:P8```(C6`HM`P``"%)J!P```B-H``<(D`8```<(7@<```D0"%*/!P`` -XM"E<%```(4EX'```"(P`*.`(```A29`<```(C"``/*`4``!`(7K@'```*UP(` -XM``A>7@<```(C``H$!P``"%YD!P```B,(``D("%_/!P``"E8%```(7SX(```" -XM(P``#[L"``!`"%8^"```$&]F9@`(5]<````"(P`09G-Z``A8UP````(C"!!M -XME0````"(R@**@0```A[5`````(C+!!N;W,`"'U4`````B,P"C$$```(@E0` -XM```"(S0*3P$```B#5`````(C.`J]!P``"(14`````B,\"LT!```(A50````" -XM(T`*8P````B&5`````(C1`I%!0``"(=4`````B-("N`,```(B5X'```"(U`* -XM:@T```B*7@<```(C6`KF"0``"(M>!P```B-@"GX&```(D[$(```"(V@*?@H` -XM``B;5`````(C;`JO!P``")Z;"P```B-P"O,&```(H9L+```"(W@*[08```BD -XMH0L```,C@`$*5`<```BGH0L```,CB`$*,`$```BIV`@```,CD`$*!P````BJ -XM`PD```,CH`$*-@$```BK+@D```,CL`$*>`8```BM60D```,CP`$*C`0```BO -XMA`D```,CT`$*B`<```BQJ0D```,CX`$`!PA&`P``!PC7````!P@T````$:\+ -XM```!00%4````D$U```````"@34````````)W"-8+```2E@#```&W,``>M>!P``'(,,```![``.```<[@P```'MH0L``!MI[% -XM!```&W-Y;0`![]`$```;:60``?`&#@``&VES``'QM`0``!SG"P```?+S```` -XM&VYD>``!\O,````<"`P```'R\P```!MS8P`!\O,````<\P8```'R\P```!P? -XM#````?/S````'`4-```!\_,````(````<9PP```'UX@```!ME8P`!]E0````<$0D```'V5````!MI``'V -XM5````!T_#````9L!``<(1`@```<(N@0``!X>#0```58!5`````%0#@``&F5C -XM<``!5&`,```:@` -XM````(&X,```!@`(!5`````&%#@``(65C<``!?P)@#```(K<*```!?P+H```` -XM&',``8$",04````94PT```%Z`0$5#P``&F5C<``!>6`,```:^@````;9``!?`8.```;B@P```',`50````!1`\``!IE8W````!5`````%?#P``&G,``=_6 -XM"P```![1"P```38!5`````%Z#P``&G,``376"P```"`G#````3H"`!])P`- -XM```@#@```>,!M!(``"@-#0``*<`.```J&`T``-0[```K(0T``"HL#0``R#P` -XM`"PW#0```Y&@?2Q"#0```Y&`?RI-#0``@#T``"I7#0``.#X``"IA#0``S3X` -XM`"IL#0``,3\``"MW#0``*X(-```JC`T``%0_```KEPT``"JB#0``S3\``"JM -XM#0``%$(``"JX#0``7T,``"K##0``GT0``"K.#0``-$4``"K9#0``F$4``"KC -XM#0``YT4``"KN#0``[D8``"WW#0``:%%````````N#`X``"`4```!<@$H1`X` -XM`"@[#@``*#(.```H*`X``"@=#@``+U`.```W6$```````%U80````````5O1 -XM$0``,&X.```11P``*&(.```Q-UA```````!.6$```````"IZ#@``1T<````` -XM,H4.``#P%````6=4$@``,)T.``#O1P``*)(.```ID!4``"JG#@``$D@``"JR -XM#@``6T@``"J[#@``*$D``"S$#@```Y&@?RS-#@```Y'@?BS7#@```Y'@?"KA -XM#@``T$D``"KJ#@``G4H``"KU#@``:DL``"H`#P``O4P``"L)#P`````R%0\` -XM`#`7```!:902```H.@\``#`Q#P``BDT``"@F#P``,T0/```56T```````"A; -XM0````````=@\``&`7```!)0(HC`\``"GP%P``+)8/```#D>!\+*(/```#D>!^*JX/ -XM``!_3@``*KD/```!3P``*\4/```JT`\``(-/```KW`\````````(`P```@`S -XM"@``"`$-!P```78-``#A`P``X&9````````/:4```````!(-```"`0:K`0`` -XM`@$(J0$```("!;L%```"`@?1!@```P0%:6YT``($!Y8"```""`5=`P``!(8" -XM```".FD````""`>1`@```@@$AP,```($!*D#```$]00```)27@````4(!P8( -XM`@$&L@$```3W!````S)^````!PB.````!PBL````"(X````""`58`P``!(@" -XM```$8UX````$!@$```4GS@````D%`0```0<(PP````H0!E'_````"U<%```& -XM4@`&2;@````"(R@-8V%P``9*N`````(C,`LV"@`` -XM!DNX`````B,X"]T(```&3+@````"(T`+WP0```9-20````(C2`NQ````!DY) -XM`````B-,"ZL$```&3TD````"(U`+W0H```91V@````(C6`LM`P``!E+9`0`` -XM`B-H``<(_P````<(S0$```H0!E+^`0``"U<%```&4LT!```"(P`+.`(```92 -XMTP$```(C"``.`7X-```!5P%)````X&9```````!O9T```````,Q/``"#`@`` -XM#W0``5;-`0``?5````]S``%6I@```-E0```08@`!6*8````040``$&,``5BF -XM````1E$``!!R``%8I@```'Q1```0;&5N``%9E0```+)1```1<0T```%9E0`` -XM`.A1````$@%@#0```2D!<&=````````/:4```````!Y2```/=``!*,T!``#/ -XM4@``#W,``2BF````*U,``!-R``$JI@```!!B``$KH````&-3```08P`!*Z`` -XM``"P4P``$&QE;@`!+)4```#Y4P``$7$-```!+)4````O5```$5L!```!+4D` -XM``!X5``````!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`##CH+ -XM.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``""8` -XM21,```D6``,..@L[!4D3```*$P$##@L+.@L["P$3```+#0`##CH+.PM)$S@* -XM```,#0`#"#H+.PM)$S@*```-%0$G#$D3`1,```X%`$D3```/$P`##CP,```0 -XM`0%)$P$3```1(0!)$R\+```2$P$+"SH+.PL!$P``$Q8``P@Z"SL+21,``!0$ -XM`0L+.@L["P$3```5*``##AP-```6!`$##@L+.@L["P$3```7+@`##CH+.P4G -XM#!$!$@%`!@``&"X!`PXZ"SL%)PP@"P$3```9!0`#"#H+.P5)$P``&BX!`PXZ -XM"SL+)PP@"P$3```;!0`#"#H+.PM)$P``'#0``PXZ"SL+21,``!TT``,(.@L[ -XM"TD3```>+@$##CH+.P4G#!$!$@%`!@$3```?!0`#"#H+.P5)$P(&```@-``# -XM#CH+.P5)$P(&```A-``#"#H+.P5)$P(&```B-``##CH+.P5)$P``(QT!,1-5 -XM!E@+604``"0%`#$3```E"P%5!@``)C0`,1,"!@``)S0`,1,""@``*`4``PXZ -XM"SL%21,``"DT``,(.@L[!4D3```J+@$_#`,..@L[!2<,21,1`1(!0`8!$P`` -XM*P4``PXZ"SL%21,"!@``+!T!,1-5!E@+604!$P``+30`,1,``"XT``,..@L[ -XM"TD3`@H``"\T``,..@L["TD3/PP\#```,#0``PXZ"SL%21,_##P,`````1$! -XM)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```Q8``PXZ"SL+21,```0D``L+ -XM/@L#"```!20`"PL^"P``!@\`"PL```+@$##CH+.P4G#!$!$@%`!@$3```?!0`##CH+.P5)$P(&```@ -XM-``#"#H+.P5)$P``(2X!/PP##CH+.P4G#$D3$0$2`4`&`1,``"(N`3\,`PXZ -XM"SL+)PQ)$Q$!$@%`!@$3```C!0`#"#H+.PM)$P(&```D!0`##CH+.PM)$P(& -XM```E-``#"#H+.PM)$P(&```F+@$##CH+.PLG#$D3$0$2`4`&`1,``"+@$# -XM#CH+.PLG#$D3(`L!$P``'P4``PXZ"SL+21,``"`N`0,..@L[!2<,21,@"P$3 -XM```A!0`#"#H+.P5)$P``(@4``PXZ"SL%21,``",T``,..@L[!4D3```D+@$_ -XM#`,..@L[!2<,$0$2`4`&```E-``#"#H+.P5)$P(*```F-``##CH+.P5)$P(& -XM```G'0$Q$U4&6`M9!0$3```H!0`Q$P``*0L!508``"HT`#$3`@8``"LT`#$3 -XM```L-``Q$P(*```M"@`Q$Q$!```N'0$Q$U4&6`M9!0``+QT!,1,1`1(!6`M9 -XM"P$3```P!0`Q$P(&```Q"P$1`1(!```R'0$Q$U4&6`M9"P$3```S'0$Q$Q$! -XM$@%8"UD+`````1$!)0X3"P,.&PX1`1(!$`8```(D``L+/@L##@```R0`"PL^ -XM"P,(```$%@`##CH+.PM)$P``!20`"PL^"P``!@\`"PL```7!E2YH````````"0)@'$````````/9 -XM!`%(")P#=_U(")P#=_U(")P#X7W]`BL5`WHY6V4(D0,9C>(X`[E__0BO`Q(( -XMJ0-P_0@2"*T#\GX('4D(9@A`13OR"&=84J)#4E:JG9R!99V<2PB"`B03@8(( -XMGTFLGH4(6H*""&>"-CQ7`P^-<@AR.%8#"6,(67*!`QH(8P,*C0-Z_0,W")N4 -XM@(`#QWX".`$#E`&-G#@Z`PVIG#@Z9@@["$@(0(X(6`/J?L7"`_L`Q8%%.U8X -XM.F(\U%:.@/Y&`^-^?P,2C0/Y``@K_P-6"%4#QP`(Q0.&?P@Y`R,(Q0/=``C% -XM`[Y_"'\#F7\(Q0-B",4(S`/J``C%`\L`",4#I7\(.0/8``C%`^E^_0-YX0.4 -XM`?T#G@+OGE+(R9PX.F7F?8^XN+6`@;BXLX"%`WH('8#P\/16CU-)BTD(5P/O -XM?0A_"/$#P@`",0$#OG^W`P\(X0-Q""L#"M,#=@@=QP@ZR'(#%M,#=0AQ"#K( -XM7,``'-E8W1I;VYS+F,````` -XM7!E2YH````````"0+P*T````````/D`0&X"%24`B@2<@-W8P.\!0CA -XM"*!)"$J.CDB`CHZ`>EP(3[U(.%8($W*`2(!R;DP(R`-L",5(1DA&2`-KFP,, -XM",4##PC%`PL(Q0.J?P(H`:X#$PA'9P-I"&.."!3G@-D('_562@-CC0,6",4( -XMR@-/`B0!UD0]=V324,;&Q@-#"#GI"+@($P@L"$H(G4$#>#DZ@$AR@$A#2PAE -XM"!)RA31,-$A(Q0C(`PK]`PH(Q0C-`ZU_`BP!D0,7 -XMTP-NC0A+`PEQ9("`9(`#;6,#%0@Y5DH#;7$Z?CN`9(`##F,#:7$#%0C%`TT" -XM)P$(Q692/-8(/59B`DH05^0#=`(H`0C(",P#O7X")0&A"'?&E0C6"%:%"!)) -XM-U:.`V+%N`,2C0-M?P,BC0-J"!W&`PW]",H#Z7T")`$#"HT(2@B>6%)*U45) -XM-ZX(+#A(,&"`4@@24CP#%D)L(/<:0`B,,`Q$(1P,58P-K*P,-.0-S*TX(6@A( -XMQ@@\"&<##0@K`WF-20-6 -XM[PCU"*LZ2%E?2(Z.@`,3X0,+"'%6D`-KX0-6",4(R`,B",4#<0C%`V3A`\,` -XM",4#[`(")@$@1%B=!`(#QGW]_@0!`[<"Q8YT!`(#Q'T(.<8$`0.W`CD$`@/) -XM?4<$`0.W`G$$`@/)?3D$`0.W`CDQ;0@M!`(#Q'W]R`0!`W$(Q?U8`\0![WV! -XM10.^?G''@P,)`C5HPZ.%:/"!Y^5E0ML)=9ROB.`POA -XM`VF;JP-L?P.9?@A'A0.6`0CA`X5]J>(#E00(.0A:_`@[5H,$`@.O?0A'_@0! -XM`YH""!W4""P#<=,(2`,850@75GX#C'R-`XP$"-,#89OBN.XZ5M0#=M,#6PAC -XMX@/G``AQ`VS]`]Q^"%4(9PC_"&8('C@ZGP)B"XYR`E\1`X)_"/V`R@,="/T( -XM@@@>.%8"-!4(UP(M$3<[9M3GK`-G`DP!JJH(Y@,*",6L!`(#BW\"3P$$`0/X -XM`.$"91$"1@T#A@$"1@$#S0#A`Z]^")OX`D@-`E`*`W`(Q0/-`)L##0C%`WD( -XMQ0-)",4#9PC]`QT([U8J+&?H"#T"*Q$#8\4#$@)"`0(4``$!40$```(`E@`` -XM``$!^PX*``$!`0$````!+W5S7!EG$Q`VL('=,\ -XM4CS(.@BXW0-P")O3/%(\R#H(N-T#ZWX(FP,)*P-W50@CCH_&"(\(U@C7`YM^ -XMJ0B""$L(H`AS.PC4.')JA@-XFPAR"#P")!(('LE6@[QZ+P@Z"#P")!,(6%:" -XM`R.-"!XX5@/*``(D`0(E$`(U$PAGC@C&JKBX@8Y4@&8#;`+5`0$#&<6`"!YP -XM+`@>"&%TG@(F$8#&`R#%C@,4J0,5J0B0<@,+?P-V50,*50-V58`#+4<#5']R -XM;TNXP.5?W&<`]<`FP,; -XM"!U6`U=_40,+?P-W?[B_`WE52*JXN*JDAL@(Q@-'",4(D+%R\(!(G\#M`%_`[!^`D$! -XM`R)5`WI'`[.%Y\@/L?0CO`ZL$""L(9`.4?N$#4(T#>0@K`_Y]"$<( -XMUW0#Z0#O`B86`Y9_J<@#254#O@((8P(N$`@>"#RO"$@#"0+4`0$(/+M4.H", -XM4PBO"'*`.$@#OWX(?P,+"$<#F`$(*P@ZJ@A(`LH!%@+1`18(.@-X`B\!"#<( -XM.PCM".P#D'\"S0$!`_4`TP,Q`B@!`TW]`YA^`BT!`ZD#",4#O'X(Q0CM`S@( -XMX0-*`C0!"#<#@@$(.7*X@$AR;P.Q?\4#2@+,`0$"+A$#-`(N`0-/"#D#,P(E -XM`0,V`D.')F"*X( -XM<@B?"!8")!("(Q0(9`AP:`(W$`A6*CK&V@(F$^,(\4@#;[<#U0$(C0(I$0,T -XM`B,!`ZQ_`BX!5BHL`_,!")L#XGX(?P/_?@(J`0.-?_U6*BP#[P#3`Y)_*P-# -XM"'\#]@#A",D(%`.$?^$#AP,(Q0.G?0C%`BL45BHL`_8!Q0.@`0(K`0/7?'$" -XM(Q,(/`-Z",4"'@`!`0(!```"`(D````!`?L."@`!`0$!`````2]U7!EG\_`W5Q`PM5`T&W_4VX@`C)CT4[Z`,) -XM50-Q?P@>JL<#%PA5`VOA5PA6.GY(.$@#"0(D`4A&2`@;RDBX.%:`N`-ZX0-E -XM_0@``0$`%````/____\!``%X$`P'")`!````````'`````````!@'$`````` -XM`"D`````````1`X0```````<`````````)`<0```````*0````````!$#A`` -XM`````!P`````````P!Q````````I`````````$0.$```````+`````````#P -XM'$```````(\&````````2H\"A@9A#N`!C@.-!(P%@P<`````````/``````` -XM``"`(T```````'`(````````0@X0CP)%#AB.`TH.($(.*$$.,$$..$<.T`&# -XM!X8&C`6-!````````!0```#_____`0`!>!`,!PB0`0```````!0```#H```` -XM\"M```````!]`````````"0```#H````<"Q```````"V`0```````$J#!8P# -XM40YPC0*&!``````L````Z````#`N0```````!P$```````!"#A!!#AB&`XP" -XM1`X@1`Y@@P0````````<````Z````$`O0```````:P````````!.#B"#`X8" -XM`#0```#H````L"]```````#B`0```````$(.$$(.&(T#C@)%#B!!#BA!#C!$ -XM#G"#!H8%C`0`````)````.@```"@,4```````/0`````````00X0A@)$#AA$ -XM#B"#`P```"0```#H````H#)````````Y`0```````$J&!(,%5`ZP`8T"C`,` -XM```L````Z````.`S0```````.@$```````!"#A!"#AA!#B!!#BA$#G"#!88$ -XMC`.-`@`D````Z````"`U0```````_P````````!!#A"&`D0.&$0.8(,#```` -XM+````.@````@-D```````*(`````````0@X0C0)%#AB,`T0.((8$1`XH1`XP -XM@P4`'````.@```#0-D```````"(`````````1@X0```````<````Z``````W -XM0```````-P````````!$#A```````"0```#H````0#=```````!)`0`````` -XM`%J,`X,%C0*&!$<.8``````L````Z````)`X0```````%0$```````!"#A", -XM`D0.&(8#0PX@@P1(#G`````````\````Z````+`Y0```````%0,```````!" -XM#A!'#AA"#B!"#BA!#C"&!HP%C02.`X\"20XX1`Z0`8,'````````)````.@` -XM``#0/$```````-L`````````00X0A@)%#AA$#B"#`P```#P```#H````L#U` -XM``````#3"P```````$(.$$(.&$(.($(.*$$.,$$..$<.D`*#!X8&C`6-!(X# -XMCP(````````4````_____P$``7@0#`<(D`$````````4````X`,``)!)0``` -XM````V0`````````T````X`,``'!*0```````[@$```````!"#A!"#AA"#B!! -XM#BB&!8P$C0..`D0.,$0.L`&#!@```"P```#@`P``8$Q````````E`0`````` -XM`$(.$$$.&$$.((,$A@.,`D<.8````````!0```#_____`0`!>!`,!PB0`0`` -XM`````!0```!X!```D$U````````0`````````!0```!X!```H$U````````0 -XM`````````"0```!X!```L$U```````!!`````````$$.$(8"1`X81`X@@P,` -XM```<````>`0```!.0```````9@````````!.#B"&`H,#`!P```!X!```<$Y` -XM``````!F`````````$X.((8"@P,`/````'@$``#@3D```````/H7```````` -XM0@X01PX80@X@C02.`X\"10XH00XP00XX1P[@!(,'A@:,!0```````!0```#_ -XM____`0`!>!`,!PB0`0```````#P```!H!0``X&9```````"/`````````$(. -XM$$(.&$(.($(.*$$.,$$..(,'A@:,!8T$C@./`DH.0``````````\````:`4` -XM`'!G0```````GP$```````!"#A!"#AA"#B"-!(X#CP)%#BA!#C!!#CA$#E"# -XM!X8&C`4`````````7V5X=')A`'9?F4`5]L;VYG;W!T -XM`!%3$9?0U].54Q,`&]P -XM:&YU;0!S96-T:6]N6U?;&ES=`!S=')I<%]L;VYG;W!T6U?:V5E<`!%3$9?5%]32$12`'-A8U]L:7-T`&YO8V]P>0!? -XM6U?F4`14Q&7U1? -XM4U=/4D0`8W)E871E7V9I;&4`7U]F9FQA9W-?=`!%3$9?5%](04Q&`&]P=&%R -XM9P!S:&]R="!U;G-I9VYE9"!I;G0`14Q&7TM?05(`=E]R96P`6YC7W-E8W1I;VYS`$5L -XM9C8T7U-H9'(`:7-?'0`;G-E8W,`16QF-C1?6'=O`!R7V%D9&5N9`!R96PV-`!I -XM@!A9&1?=&]?:6YS96=?;&ES=`!P7V%L:6=N`$=% -XM;&9?4&AD<@!P7V9L86=S`'!?='EP90!P7W9A9&1R`'!?;65M6UB;VQS`&ES7V1E8G5G7W-Y;6)O;`!S=%]S>@!I -XM6T`5]C87``8V%L8U]N;VYL;V-A;`!%;&8V-%]3>6T`8W)E -XM871E7W-E8W-Y;0!'16QF7U-Y;0!A9&1?=&]?:V5E<%]L:7-T`'-T7V)U9@!L -XM;V]K=7!?5]B=68`:7-?;F5E9&5D7W-Y;6)O;`!S -XM>6UB;VQS+F,`:7-?;&]C86Q?6UB;VP`;'-Y9&%T80!L;V]K=7!?:V5E<%]S>6UL:7-T`'-T7VYA -XM;64`;6%R:U]S>6UB;VQS`&EN>@4````````?!P````````$`7@`````````````````````&`0`````` -XM``D!`````````0!0"0$````````,!`````````$`7"P$````````-00````` -XM```!`%QQ!````````'0$`````````0!0=`0```````#I!`````````$`7$T% -XM````````:04````````!`%R0!0```````-\&`````````0!<\`8````````0 -XM!P````````$`7``````````````````````O`P```````+H#`````````0!3 -XMVP,```````#\`P````````$`4Z,$````````SP0````````!`%/@!0`````` -XM`!<&`````````0!3CP8```````"M!@````````$`4\$&````````WP8````` -XM```!`%,`````````````````````?`(```````"Z`P````````,`D;A_VP,` -XM```````L!`````````,`D;A_HP0```````#I!`````````,`D;A_5@4````` -XM``!I!0````````,`D;A_P@4````````7!@````````,`D;A_CP8```````"M -XM!@````````,`D;A_P08```````#?!@````````,`D;A_\`8```````#_!@`` -XM``````,`D;A_`````````````````````"`'````````(@<````````"`'<( -XM(@<````````G!P````````(`=Q`G!P```````#$'`````````@!W&#$'```` -XM````,P<````````"`'<@,P<````````T!P````````(`=R@T!P```````#4' -XM`````````@!W,#4'````````/`<````````"`'`````````````````````"`'````````00<````` -XM```!`%1!!P```````(8-`````````0!?U0T```````"0#P````````$`7P`` -XM``````````````````!I!P```````&X'`````````0!540D```````!6"0`` -XM``````$`58()````````APD````````!`%6?"0```````*0)`````````0!5 -XMT`D```````#5"0````````$`58$+````````C`L````````!`%4U#``````` -XM`#H,`````````0!5/0P```````!"#`````````$`59T-````````H@T````` -XM```!`%7.#0```````-,-`````````0!5X@T```````#G#0````````$`5:4. -XM````````J@X````````!`%7)#@```````,X.`````````0!5W0X```````#B -XM#@````````$`55(/````````7@\````````!`%4````````````````````` -XMA`@```````"<"`````````$`4%H)````````>`D````````!`%"H"0`````` -XM`,8)`````````0!0]@T````````"#@````````$`4``````````````````` -XM```P#````````#H,`````````0!420P```````!0#`````````$`5``````` -XM```````````````I#````````#H,`````````0!120P```````!0#``````` -XM``$`40````````````````````#\"0```````/\)`````````0!0_PD````` -XM```>"@````````$`75`*````````4`H````````!`%T6#@```````"<.```` -XM`````0!=,0X```````!"#@````````$`70````````````````````"$"``` -XM`````/\)`````````0!=4`H````````4"P````````$`7=$+````````7`P` -XM```````!`%WV#0```````!8.`````````0!=0@X```````!G#@````````$` -XM70````````````````````"$"````````!X*`````````0!3G@H```````"A -XM"@````````$`4*$*````````%`L````````!`%/1"P```````%P,```````` -XM`0!3]@T````````'#@````````$`4Q8.````````)PX````````!`%,Q#@`` -XM`````$(.`````````0!34PX```````!G#@````````$`4P`````````````` -XM``````"$"````````)P(`````````0!0GP@```````#;"`````````$`4.(( -XM````````5@D````````!`%!X"0```````(<)`````````0!0C`D```````"D -XM"0````````$`4,8)````````U0D````````!`%#:"0```````/D)```````` -XM`0!0\@L````````)#`````````$`4`X,````````$PP````````!`%!0#``` -XM`````%4,`````````0!0`````````````````````!X*````````1@H````` -XM```!`%,'#@```````!8.`````````0!3`````````````````````#H,```` -XM````0@P````````!`%`[#0```````'H-`````````0!0```````````````` -XM`````!T+````````T0L````````!`%;2#````````&H-`````````0!6U0T` -XM``````#V#0````````$`5B<.````````,0X````````!`%8````````````` -XM````````&PL````````E"P````````,`D;!^)0L````````M"P````````,` -XMD;1^+0L````````P"P````````,`D;A^,`L````````R"P````````$`73(+ -XM````````,@L````````!`%,R"P```````$L+`````````P"1L'Y+"P`````` -XM`&P+`````````0!3;`L```````!R"P````````$`4W(+````````APL````` -XM```!`%.'"P```````(X+`````````0!=C@L```````"6"P````````$`4Y8+ -XM````````F`L````````#`)&T?I@+````````H`L````````!`%.@"P`````` -XM`*(+`````````P"1N'ZB"P```````+`+`````````0!3L`L```````"R"P`` -XM``````,`D;!^L@L```````#1"P````````$`4SH,````````20P````````# -XM`)&T?M(,````````^@P````````!`%/Z#`````````H-`````````P"1M'X* -XM#0````````P-`````````P"1L'X,#0```````!0-`````````0!3%`T````` -XM```S#0````````,`D;A^,PT```````"!#0````````$`4X$-````````E0T` -XM```````#`)&P?I4-````````U0T````````#`)&T?M4-````````]@T````` -XM```!`%,G#@```````#$.`````````0!3`````````````````````$4+```` -XM````3@L````````!`%#2#````````.(,`````````0!0)PX````````L#@`` -XM``````$`4``````````````````````Z#````````$D,`````````0!6:@T` -XM``````!Z#0````````$`5GH-````````E0T````````!`%"5#0```````-4- -XM`````````0!6`````````````````````(`,````````F`P````````!`%"Q -XM#@```````+\.`````````0!0`````````````````````&,(````````_PD` -XM```````!`%T4"P```````#`+`````````0!=\@L```````#2#`````````$` -XM7?8-````````!PX````````!`%UG#@```````&@/`````````0!=B0\````` -XM``"0#P````````$`70````````````````````!<#````````)@,```````` -XM`0!0FPP```````#+#`````````$`4&<.````````J@X````````!`%"_#@`` -XM`````,X.`````````0!0TPX```````#B#@````````$`4.<.````````"@\` -XM```````!`%``````````````````````.@P```````!)#`````````$`5CD/ -XM````````10\````````!`%9%#P```````%4/`````````0!050\```````!H -XM#P````````$`5@````````````````````"``````````)L``````````@!W -XM")L`````````-@(````````#`'?P``````````````````````"````````` -XM`*8``````````0!5I@````````"1`0````````$`7)L!````````-@(````` -XM```!`%P`````````````````````GP````````",`0````````$`5IL!```` -XM````-@(````````!`%8`````````````````````!0$````````(`0`````` -XM``$`4`@!````````AP$````````!`%.;`0```````+X!`````````0!3W`$` -XM```````V`@````````$`4P````````````````````!``@```````$("```` -XM`````@!W"$("````````0P(````````"`'<00P(```````!'`@````````(` -XM=QA'`@```````$L"`````````@!W($L"````````1P,````````#`'?@```` -XM``````````````````!``@```````%P"`````````0!57`(```````#M`@`` -XM``````$`5O`"````````1P,````````!`%8`````````````````````4@(` -XM``````#L`@````````$`4_`"````````1P,````````!`%,````````````` -XM````````Y0(```````#P`@````````$`4"P#````````,P,````````!`%`` -XM````````````````````4`,```````!>`P````````(`=PA>`P```````+L# -XM`````````@!W(`````````````````````!0`P```````'(#`````````0!5 -XMA0,```````"(`P````````$`50````````````````````!0`P```````&P# -XM`````````0!4;`,```````!W`P````````$`5G<#````````A0,````````! -XM`%2%`P```````+L#`````````0!6`````````````````````&(#```````` -XM?`,````````!`%-\`P```````(4#`````````0!5A0,```````"[`P`````` -XM``$`4P````````````````````#``P```````,(#`````````@!W",(#```` -XM````Q`,````````"`'<0Q`,```````#)`P````````(`=QC)`P```````,H# -XM`````````@!W(,H#````````RP,````````"`',#````````%@4````````!`%T6!0```````!D% -XM`````````0!5&04```````"B!0````````$`70`````````````````````$ -XM!````````!$%`````````0!3&04```````"B!0````````$`4P`````````` -XM``````````#6`P```````!(%`````````0!6&04```````"B!0````````$` -XM5@````````````````````"/!````````)($`````````0!0D@0```````#0 -XM!`````````$`44@%````````4@4````````!`%$````````````````````` -XM#00````````4!0````````$`7!D%````````H@4````````!`%P````````` -XM````````````L`4```````"Q!0````````(`=PBQ!0```````+4%```````` -XM`@!W$+4%````````N04````````"`'<8N04```````"D!@````````(`=R`` -XM````````````````````L`4```````#+!0````````$`5P`0````````````````````"P!@```````-0&`````````0!5U`8` -XM``````!_!P````````$`7(\'````````Z0<````````!`%P````````````` -XM````````L`8```````#9!@````````$`5-D&````````X08````````!`%4` -XM````````````````````L`8```````#A!@````````$`4>$&````````;P<` -XM```````!`%./!P```````.D'`````````0!3`````````````````````+`& -XM````````X08````````!`%+A!@```````'<'`````````0!6CP<```````#I -XM!P````````$`5@````````````````````#P!P```````/('`````````@!W -XM"/('````````]`<````````"`'<0]`<```````#U!P````````(`=QCU!P`` -XM`````/8'`````````@!W(/8'````````^@<````````"`'PL````````!`%1]"P```````(D+`````````0!6I0L```````"G -XM"P````````$`5L(+````````Q`L````````!`%;\"P```````),,```````` -XM`0!6`````````````````````'T+````````?PL````````!`%`T#``````` -XM`#D,`````````0!0:`P```````"##`````````$`4(X,````````F0P````` -XM```!`%``````````````````````H`P```````"B#`````````(`=PBB#``` -XM`````*8,`````````@!W$*8,````````J0P````````"`'<8J0P```````"Q -XM#`````````(`=R"Q#````````+4-`````````P!W\``````````````````` -XM````H`P```````"U#`````````$`5;4,````````+PT````````!`%PP#0`` -XM`````+4-`````````0!<`````````````````````*`,````````K0P````` -XM```!`%2M#````````"P-`````````0!3,`T```````"U#0````````$`4P`` -XM```````````````````2#0```````!\-`````````0!0>0T```````"##0`` -XM``````$`4`````````````````````"H#````````"T-`````````0!6,`T` -XM``````"U#0````````$`5@`````````````````````%#0```````#`-```` -XM`````@"16'D-````````EPT````````"`)%8`````````````````````"<- -XM````````,`T````````!`%$W#0```````$<-`````````0!1```````````` -XM`````````,`-````````P@T````````"`'<(P@T```````#)#0````````(` -XM=Q#)#0```````,L-`````````@!W&,L-````````S0T````````"`'<@S0T` -XM``````#.#0````````(`=RC.#0```````-<-`````````@!W,-<-```````` -XMVPT````````"`'NA````````#5$`````````$`7@`````````````` -XM```````T#@```````)P0`````````P"1N'^Z$````````-40`````````P"1 -XMN'\`````````````````````-`X````````0$`````````$`7140```````` -XMG!`````````!`%VZ$````````-40`````````0!=```````````````````` -XM`/\.`````````@\````````!`%`"#P```````%\/`````````0!1W@\````` -XM``#D#P````````$`4140````````'Q`````````!`%$````````````````` -XM````_P\````````5$`````````$`4+H0````````P1`````````!`%`````` -XM````````````````X!````````#A$`````````(`=PCA$````````.80```` -XM`````@!W$.80````````ZA`````````"`'<8ZA````````"[$0````````(` -XM=R``````````````````````X!````````!'$0````````$`56H1```````` -XM?1$````````!`%6$$0```````(X1`````````0!5K!$```````"Q$0`````` -XM``$`50````````````````````#@$`````````41`````````0!4+!$````` -XM``!$$0````````$`5&H1````````>!$````````!`%2$$0```````(L1```` -XM`````0!4`````````````````````/(0````````;Q$````````!`%-Q$0`` -XM`````+L1`````````0!3`````````````````````/00````````1!$````` -XM```!`%1J$0```````'@1`````````0!4A!$```````"+$0````````$`5*P1 -XM````````MA$````````!`%0`````````````````````]!`````````%$0`` -XM``````$`5"P1````````>!$````````!`%2$$0```````(L1`````````0!4 -XME1$```````"G$0````````$`5`````````````````````#T$````````'T1 -XM`````````0!5A!$```````".$0````````$`5941````````IQ$````````! -XM`%6L$0```````+$1`````````0!5`````````````````````,`1```````` -XMPA$````````"`'<(PA$```````#$$0````````(`=Q#$$0```````,81```` -XM`````@!W&,81````````R!$````````"`'<@R!$```````#)$0````````(` -XM=RC)$0```````,H1`````````@!W,,H1````````T1$````````"`'!8````````!`%5X%@```````)(6`````````P"1 -XMR'Z2%@```````)<6`````````0!5EQ8```````"3'0````````,`DP`0````````````````````#@ -XM`````````%P!`````````0!57`$```````!/`@````````$`5E8"```````` -XMS@(````````!`%8`````````````````````]@````````!A`0````````$` -XM4H4!````````3@(````````!`%-6`@```````)("`````````0!3```````` -XM`````````````/T`````````!`$````````!`%`+`0```````&$!```````` -XM`0!0`````````````````````/T`````````80$````````!`%$````````` -XM````````````H0$```````"J`0````````$`7*H!````````40(````````! -XM`%Q6`@```````)("`````````0!<`````````````````````-`"```````` -XMT@(````````"`'<(T@(```````#3`@````````(`=Q#3`@```````-0"```` -XM`````@!W&-0"````````VP(````````"`'<@VP(```````#U`P````````,` -XM=^```````````````````````-`"````````WP(````````!`%7?`@`````` -XM`*0#`````````0!3J`,```````#U`P````````$`4P`````````````````` -XM``#V`@````````4#`````````@"16`H#````````UP,````````"`)%8```` -XM`````````````````"``````````(0`````````"`'<((0`````````E```` -XM``````(`=Q`E`````````"D``````````@!W&"D`````````80`````````" -XM`'<@`````````````````````"``````````-P`````````!`%5````````` -XM`$8``````````0!56`````````!A``````````$`50`````````````````` -XM```@`````````#4``````````0!4-0````````!7``````````$`5E@````` -XM````8``````````!`%9@`````````&$``````````0!4```````````````` -XM`````#``````````5@`````````!`%-8`````````%\``````````0!3```` -XM`````````````````'``````````?@`````````"`'<(?@````````#6```` -XM``````(`=R``````````````````````<`````````"&``````````$`588` -XM````````P``````````!`%;%`````````-8``````````0!6```````````` -XM`````````'``````````C@`````````!`%2.`````````+L``````````0!3 -XMQ0````````#6``````````$`4P````````````````````#@`````````.X` -XM`````````@!W".X`````````1@$````````"`'<@```````````````````` -XM`.``````````]@`````````!`%7V`````````#`!`````````0!6-0$````` -XM``!&`0````````$`5@````````````````````#@`````````/X````````` -XM`0!4_@`````````K`0````````$`4S4!````````1@$````````!`%,````` -XM````````````````4`$```````!2`0````````(`=PA2`0```````%D!```` -XM`````@!W$%D!````````6P$````````"`'<86P$```````!@`0````````(` -XM=R!@`0```````&$!`````````@!W*&$!````````8@$````````"`'"0```````&D)`````````0!1$!0````` -XM``!%%`````````$`4488````````4!@````````!`%$````````````````` -XM````;@8```````!Q!@````````$`4'$&````````TP8````````!`%%&&``` -XM`````%`8`````````0!1`````````````````````-\#````````KP4````` -XM```!`%.S!0```````+H%`````````0!3[`4```````!'!@````````$`4Q<1 -XM````````*!$````````!`%/2$0````````82`````````0!3:!(````````T -XM$P````````$`4XX3````````I!,````````!`%/)$P```````!`4```````` -XM`0!3K!0```````#,%`````````$`4P,7````````,1<````````!`%-N%P`` -XM`````)@7`````````0!3I1@```````#*&`````````$`4P`````````````` -XM``````##`P```````+4'`````````P"1D'S)!P```````&D)`````````P"1 -XMD'S$"0```````.$0`````````P"1D'SO$````````&P4`````````P"1D'R. -XM%````````)@7`````````P"1D'RI%P```````,`7`````````P"1D'S"%P`` -XM`````.H7`````````P"1D'PH&````````$H9`````````P"1D'P````````` -XM````````````V`,```````"U!P````````,`D8A\R0<```````!I"0`````` -XM``,`D8A\T0D```````#A$`````````,`D8A\[Q````````!L%`````````,` -XMD8A\CA0```````"8%P````````,`D8A\J1<```````#`%P````````,`D8A\ -XMPA<```````#J%P````````,`D8A\*!@```````!*&0````````,`D8A\```` -XM`````````````````(@"````````WP,````````!`%-I"0```````-\)```` -XM`````0!3X1````````#O$`````````$`4U41````````D1$````````!`%,Q -XM%P```````&X7`````````0!3F!<```````"I%P````````$`4\`7```````` -XMZA<````````!`%,`````````````````````B@(```````"U!P````````,` -XMD;A_R0<```````!L%`````````,`D;A_CA0```````#J%P````````,`D;A_ -XM*!@```````!*&0````````,`D;A_`````````````````````%P$```````` -XM9@0````````!`%``````````````````````_P(```````"U!P````````,` -XMD8!\R0<```````#A$`````````,`D8!\ZA````````!L%`````````,`D8!\ -XMCA0```````#J%P````````,`D8!\*!@```````!*&0````````,`D8!\```` -XM`````````````````,\#````````M0<````````#`)'8?,D'````````:0D` -XM```````#`)'8?``*````````#`H````````#`)'X>PP*````````L@X````` -XM```#`)'8?+(.````````>P\````````#`)'X>WL/````````J@\````````# -XM`)'8?*H/````````O@\````````#`)'X>[X/````````T@\````````#`)'8 -XM?-(/````````\P\````````#`)'X>_,/````````,!`````````#`)'8?#`0 -XM````````X1`````````#`)'X>^\0````````%Q$````````#`)'X>Q<1```` -XM````D1$````````#`)'8?)$1````````LA$````````#`)'X>[(1```````` -XM!A(````````#`)'8?`82````````&A(````````#`)'X>QH2````````8A,` -XM```````#`)'8?&(3````````CA,````````#`)'X>XX3````````9Q0````` -XM```#`)'8?&<4````````;!0````````#`)'X>XX4````````_A8````````# -XM`)'8?/X6`````````Q<````````#`)'X>P,7````````,1<````````#`)'8 -XM?$87````````F!<````````#`)'8?*D7````````P!<````````#`)'8?,(7 -XM````````ZA<````````#`)'8?"@8````````2AD````````#`)'8?``````` -XM``````````````#8`P```````+4'`````````P"1\'O)!P```````&D)```` -XM`````P"1\'L5"@```````$D,`````````P"1\'OV#````````-H.```````` -XM`P"1\'MB#P```````'L/`````````P"1\'NJ#P```````-(/`````````P"1 -XM\'L4$````````.$0`````````P"1\'OO$````````*X2`````````P"1\'LT -XM$P```````&P4`````````P"1\'N.%````````*P4`````````P"1\'O,%``` -XM`````#$7`````````P"1\'M/%P```````)@7`````````P"1\'NI%P`````` -XM`,`7`````````P"1\'O"%P```````.H7`````````P"1\'LH&````````$H9 -XM`````````P"1\'L`````````````````````V`,```````#N`P````````$` -XM7YD%````````00<````````!`%^H"````````&D)`````````0!?&PH````` -XM``#A$`````````$`7^\0````````TA$````````!`%\&$@```````&@2```` -XM`````0!?-!,```````".$P````````$`7Z03````````VA,````````!`%\0 -XM%````````&P4`````````0!?CA0```````"L%`````````$`7\P4```````` -XM`Q<````````!`%]5%P```````&X7`````````0!?J1<```````#`%P`````` -XM``$`7\(7````````ZA<````````!`%\H&````````*48`````````0!?UQ@` -XM``````!*&0````````$`7P````````````````````"*`@```````/`"```` -XM`````0!6_P(```````""`P````````$`5H0#````````\D'````````;!0````````#`)'H>XX4 -XM````````ZA<````````#`)'H>R@8````````2AD````````#`)'H>P`````` -XM```````````````3`@```````+4'`````````P"1Y'O)!P```````&P4```` -XM`````P"1Y'N.%````````$H9`````````P"1Y'L````````````````````` -XM!@,````````N`P````````$`4(L#````````I`,````````!`%#8`P`````` -XM`/`#`````````0!5_0,````````(!`````````$`59D%````````\04````` -XM```!`%7V!0```````&8&`````````0!5J`@```````"Q"`````````$`50\) -XM````````$PD````````!`%4X%P```````#H7`````````0!0.A<```````!: -XM%P````````$`59@7````````I!<````````!`%#`%P```````,(7```````` -XM`0!0PA<```````#'%P````````$`50````````````````````"O!0`````` -XM`/8%`````````0!2`````````````````````)<*````````GPH````````! -XM`%3$"@```````,D*`````````0!5`````````````````````-@#```````` -XMWP,````````!`%.N"@```````/$*`````````0!3_@H```````!-"P`````` -XM``$`4U41````````D1$````````!`%/,%````````*`5`````````0!3J1<` -XM``````#`%P````````$`4\(7````````ZA<````````!`%,H&````````$88 -XM`````````0!3`````````````````````&X)````````>`D````````!`%4` -XM````````````````````51$```````!?$0````````$`5&D5````````;!4` -XM```````!`%!L%0```````'H5`````````0!4`````````````````````-@# -XM````````M0<````````#`)&X?,D'````````:0D````````#`)&X?$8*```` -XM````X1`````````#`)&X?.\0````````;!0````````#`)&X?(X4```````` -XM,1<````````#`)&X?%47````````F!<````````#`)&X?*D7````````P!<` -XM```````#`)&X?,(7````````ZA<````````#`)&X?"@8````````2AD````` -XM```#`)&X?``````````````````````T"P```````$,+`````````0!<51$` -XM``````"1$0````````$`7`H5````````MQ8````````!`%Q5%P```````&X7 -XM`````````0!`T````````!`%4*%0````````X5`````````0!5 -XM51<```````!:%P````````$`5;`7````````LA<````````!`%"R%P`````` -XM`,`7`````````0!5PA<```````#'%P````````$`5988````````F!@````` -XM```!`%"8&````````*48`````````0!5`````````````````````-@#```` -XM````M0<````````#`)&L?,D'````````:0D````````#`)&L?$8*```````` -XMX1`````````#`)&L?.\0````````;!0````````#`)&L?(X4````````,1<` -XM```````#`)&L?%47````````F!<````````#`)&L?*D7````````P!<````` -XM```#`)&L?,(7````````ZA<````````#`)&L?"@8````````2AD````````# -XM`)&L?`````````````````````#8`P```````+4'`````````P"1Q'S)!P`` -XM`````&D)`````````P"1Q'Q&"@```````%P*`````````P"1Q'Q<"@`````` -XM`&,*`````````0!48PH```````#A$`````````,`D<1\[Q````````!L%``` -XM``````,`D<1\CA0````````Q%P````````,`D<1\51<```````"8%P`````` -XM``,`D<1\J1<```````#`%P````````,`D<1\PA<```````#J%P````````,` -XMD<1\*!@```````!*&0````````,`D<1\`````````````````````$,'```` -XM````M0<````````!`%/;!P```````'$(`````````0!3B@@```````"H"``` -XM``````$`4XX4````````K!0````````!`%-5%P```````&X7`````````0!3 -XMRA@```````#7&`````````$`4P````````````````````!&!P```````+4' -XM`````````0!>R0<```````#8!P````````$`7ML'````````J`@````````! -XM`%Z.%````````*P4`````````0!>51<```````!N%P````````$`7LH8```` -XM````UQ@````````!`%X`````````````````````X@<````````>"``````` -XM``$`4%47````````6A<````````!`%7*&````````-<8`````````0!0```` -XM`````````````````````````````@`````````"`'<(`@`````````$```` -XM``````(`=Q`$``````````8``````````@!W&`8`````````"``````````" -XM`'<@"``````````)``````````(`=R@)``````````H``````````@!W,`H` -XM````````%``````````"`'@`````````!`%][```` -XM`````(X``````````0!?`````````````````````#,`````````;P`````` -XM```!`%9[`````````(8``````````0!6`````````````````````#4````` -XM````;0`````````!`%Q[`````````(@``````````0!<```````````````` -XM`````#4`````````;@`````````!`%-[`````````(4``````````0!3```` -XM`````````````````"0``````````@````````,` -XMD;A_`````````````````````.0`````````2P$````````!`%Q2`0`````` -XM``8"`````````0!<#0(````````>`@````````$`7``````````````````` -XM``#V`````````$@!`````````0!34@$```````"E`0````````$`4P`````` -XM``````````````#G`````````%$!`````````0!?4@$````````,`@`````` -XM``$`7PT"````````'@(````````!`%\`````````````````````[P`````` -XM```>`@````````(`D40`````````````````````#P$```````#;`P`````` -XM`/`&````````$`<```````#!!@```````-\&````````%P8```````"M!@`` -XM`````,(%````````_@4```````"0!0```````*X%````````304```````!I -XM!0```````,\$````````Z00````````L!````````#4$```````````````` -XM`````````````)!<```````!) -XM%P```````&H7````````0A<```````!&%P````````@7````````,!<````` -XM```"%P````````47````````[A8```````#W%@```````-H6````````X18` -XM``````#,%@```````-46`````````````````````````````%P2```````` -XM@1(```````#A%0```````/L5`````````````````````````````($2```` -XM````Y1(````````[&P```````$H;````````"A8```````"H%@```````'$5 -XM````````X14```````!@$P```````)L4```````````````````````````` -XM`($2````````Y1(````````[&P```````$H;````````EQ8```````"H%@`` -XM`````#@6````````6X`+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF -XM:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y -XM;F%M:6,`+F-T;W)S`"YD=&]RE```````*!Z```````` -XMH`$````````%``````````@`````````$`````````"X`````0````,````` -XM````0'Q0``````!`?````````!`````````````````````(```````````` -XM````````OP````$````#`````````%!\4```````4'P````````0```````` -XM````````````"````````````````````,8````!`````P````````!@?%`` -XM`````&!\````````"`````````````````````@```````````````````#+ -XM`````0````,`````````:'Q0``````!H?````````$@"```````````````` -XM```(``````````@`````````T`````@````#`````````+!^4```````L'X` -XM```````P````````````````````"````````````````````-4````!```` -XM`````````````````````+!^````````]@$```````````````````$````` -XM``````````````#>`````0````````````````````````"F@````````/`` -XM```````````````````!````````````````````[0````$````````````` -XM````````````EH$```````#I`0```````````````````0`````````````` -XM`````/T````!`````````````````````````'^#````````:TX````````` -XM``````````$````````````````````)`0```0`````````````````````` -XM``#JT0```````#4+```````````````````!````````````````````%P$` -XM``$`````````````````````````']T````````8#@`````````````````` -XM`0```````````````````",!```!`````````````````````````#CK```` -XM``````8```````````````````@````````````````````P`0```0```#`` -XM```````````````````X\0```````(P-```````````````````!```````` -XM``$`````````.P$```$`````````````````````````Q/X```````"<5``` -XM`````````````````0```````````````````$8!```!```````````````` -XM`````````&!3`0``````@!@```````````````````$````````````````` -XM```1`````P````````````````````````#@:P$``````%0!```````````` -XM```````!`````````````````````0````(````````````````````````` -XM>'8!``````"@$0```````"0```!/````"``````````8``````````D````# -XM`````````````````````````!B(`0``````B@D```````````````````$` -XM`````````````````````````````````````````````````````````P`! -XM`,@!0````````````````````````P`"`.`!0``````````````````````` -XM`P`#`/@!0````````````````````````P`$`%`$0``````````````````` -XM`````P`%`-`+0````````````````````````P`&`.`.0``````````````` -XM`````````P`'`(`/0````````````````````````P`(`,`/0``````````` -XM`````````````P`)`#@00````````````````````````P`*`,@60``````` -XM`````````````````P`+`-P60````````````````````````P`,`%`;0``` -XM`````````````````````P`-`#AI0````````````````````````P`.`$AI -XM0````````````````````````P`/`$1R0````````````````````````P`0 -XM`&!R4````````````````````````P`1`&!U4``````````````````````` -XM`P`2`*!Z4````````````````````````P`3`$!\4``````````````````` -XM`````P`4`%!\4````````````````````````P`5`&!\4``````````````` -XM`````````P`6`&A\4````````````````````````P`7`+!^4``````````` -XM`````````````P`8`````````````````````````````P`9```````````` -XM`````````````````P`:`````````````````````````````P`;```````` -XM`````````````````````P`<`````````````````````````````P`=```` -XM`````````````````````````P`>`````````````````````````````P`? -XM`````````````````````````````P`@```````````````````````````` -XM`P`A`````````````````````````````P`B```````````````````````` -XM`````P`C`````````````````````````````P`D```````````````````` -XM```!````!`#Q_P`````````````````````(`````0`"`.`!0```````&``` -XM```````/````!`#Q_P`````````````````````M````!`#Q_P`````````` -XM```````````\````!`#Q_P`````````````````````/````!`#Q_P`````` -XM``````````````!'````!`#Q_P````````````````````!2`````0`3`$!\ -XM4`````````````````!@`````0`4`%!\4`````````````````!N`````0`5 -XM`&!\4`````````````````![`````@`,`/`;0`````````````````"1```` -XM`0`7`-1^4````````0````````"@`````0`0`'!R4`````````````````"G -XM`````@`,`#`<0`````````````````!'````!`#Q_P`````````````````` -XM``"S`````0`3`$A\4`````````````````#``````0`4`%A\4``````````` -XM``````#-`````0`1`&AZ4`````````````````#;`````0`5`&!\4``````` -XM``````````#G`````@`,`!!I0`````````````````#]````!`#Q_P`````` -XM```````````````M````!`#Q_P`````````````````````\````!`#Q_P`` -XM``````````````````#]````!`#Q_P`````````````````````;`0``!`#Q -XM_P`````````````````````B`0```@`,`&`<0```````*0`````````N`0`` -XM`@`,`)`<0```````*0`````````X`0```@`,`,`<0```````*0````````!& -XM`0```@`,`/`<0```````CP8```````!2`0```0`0`,!S4```````H`$````` -XM``!C`0```0`0`(!R4```````0`$```````!R`0``!`#Q_P`````````````` -XM``````!]`0```@`,`/`K0```````?0````````"0`0```@`,`$`O0``````` -XM:P````````"@`0```@`,`-`V0```````(@````````"T`0```@`,```W0``` -XM````-P````````#&`0```@`,`-`\0```````VP````````#1`0``!`#Q_P`` -XM``````````````````#<`0``!`#Q_P````````````````````#F`0```@`, -XM`)!-0```````$`````````#W`0```@`,`*!-0```````$``````````'`@`` -XM!`#Q_P`````````````````````/`@``$@`,`"`U0```````_P`````````< -XM`@``$@`,`*`Q0```````]``````````F`@``$@```.P60```````D``````` -XM```X`@``$@```/P60```````AP````````!2`@``$@````P70```````%P$` -XM``````!I`@``$@```!P70```````314```````!^`@``$@`,`*`R0``````` -XM.0$```````"(`@``$@```"P70```````?`$```````"9`@``$@`,`'!.0``` -XM````9@````````"J`@``$0`2`*!Z4`````````````````"S`@``$@```#P7 -XM0```````V@(```````#)`@``$@```$P70```````G@````````#8`@``$@`` -XM`%P70```````-`````````#J`@``$@```&P70```````50````````#[`@`` -XM$@`,`)`X0```````%0$````````/`P``$@`,`+`]0```````TPL````````< -XM`P``$@```'P70```````Y0`````````R`P``$@`,`.!F0```````CP`````` -XM``!``P``$@```(P70```````B@````````!0`P``$@```)P70``````````` -XM``````!A`P``$@```*P70```````:@````````!X`P``$0(0`&AR4``````` -XM``````````"%`P``$@```+P70```````X@````````":`P``$@`,`.!.0``` -XM````^A<```````"H`P``$@```,P70```````C`$```````#"`P``$@`,`+`O -XM0```````X@$```````#2`P``$@```-P70````````@````````#F`P``$@`` -XM`.P70```````AP8```````#X`P``$@```/P70```````.P`````````.!``` -XM$@````P80```````&0$````````E!```$@`,`.`S0```````.@$````````U -XM!```$@`*`,@60``````````````````[!```$@```!P80```````)``````` -XM``!2!```$@```"P80```````B`````````!A!```$0`7`-A^4```````"``` -XM``````!I!```$@```#P80```````3`````````![!```$@```$P80``````` -XM*0````````",!```$@```%P80```````-0````````"A!```$@```&P80``` -XM````:0$```````"V!```$@```'P80```````:@````````#0!```$0`7`+!^ -XM4```````!`````````#G!```$@```(P80```````K0(```````#X!```$@`` -XM`)P80```````%@`````````+!0``$0`0`&!R4```````"``````````6!0`` -XM$@`,`"`V0```````H@`````````E!0``$@`,`%`;0```````DP`````````L -XM!0``$@```*P80```````E0`````````\!0``$@```+P80``````````````` -XM``!+!0``$0`7`+A^4```````"`````````!!0``$@`,`#`N0```````!P$```````"J!0``$@`,`'!*0``` -XM````[@$```````"T!0``$@`,`'!G0```````GP$```````#%!0``$@```/P8 -XM0```````*`````````#"```$@```+P:0```````\@````````!O"```$0`7`,A^4```````"``` -XM``````"#"```$@```,P:0```````=@````````"2"```$0`7`-!^4``````` -XM!`````````"C"```$@```-P:0```````+P````````"T"```$@`,``!.0``` -XM````9@````````#&"```$@`,`)!)0```````V0````````#8"```$@```.P: -XM0```````'@````````#I"```$@```/P:0```````N0$````````$"0``$@`` -XM``P;0```````(0`````````9"0``$@```!P;0``````` -XM"0``$@`,`&!,0```````)0$```````!I"0``$@```#P;0```````:`$````` -XM``!_"0``$@`,`+`Y0```````%0,`````````8W)T,2YC`&%B:71A9P`O=7-R -XM+W-R8R]L:6(O8W-U+V%M9#8T+V-R=&DN4P`\8V]M;6%N9"UL:6YE/@`\8G5I -XM;'0M:6X^`&-R='-T=69F+F,`7U]#5$]27TQ)4U1?7P!?7T143U)?3$E35%]? -XM`%]?2D-27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R4!`1D)31%\Q -XM+C``5]P:&1R -XM`&EN'-C;D!`1D)31%\Q+C``9V5L9E]U<&1A=&5? ${WORKDIR}.uu.${1}/${f}.uu - done - fi - - # Pack them up using shar if required, or just copy. - mkdir -p ${OPATH}/${1} || exit 1 - if [ "${USE_SHAR}" = yes ]; then - cd ${WORKDIR}.uu.${1} || exit 1 - shar * > ${OPATH}/${1}/$TC.${1}.shar - elif [ "${USE_UUENCODE}" = yes ]; then - cp ${WORKDIR}.uu.${1}/* ${OPATH}/${1} - else - cp -R ${WORKDIR}/* ${OPATH}/${1} - fi - fi -} - -THISDIR=`/bin/pwd` - -# Check the command line options. -# -while getopts "nsui:o:c:g:" COMMAND_LINE_ARGUMENT ; do - case "${COMMAND_LINE_ARGUMENT}" in - n) - NODIFFRLT=yes; - ;; - s) - USE_SHAR=yes; - USE_UUENCODE=yes; - ;; - u) - USE_UUENCODE=yes; - ;; - i) - IPATH=${OPTARG} - ;; - o) - OPATH=${OPTARG} - ;; - g) - GCMD=${OPTARG} - ;; - c) - RCMD=${OPTARG} - ;; - *) - usage - exit 1 - ;; - esac -done - -if [ $# -ne $OPTIND ]; then - usage - exit 1 -fi -eval TC=$"{${OPTIND}}" - -if [ -z "${OPATH}" ]; then - OPATH=${TC}; -fi -mkdir -p ${OPATH} || exit 1 - -if [ -z "${RCMD}" ]; then - RCMD=":" -fi - -if [ -z "${GCMD}" ]; then - GCMD=${RCMD} -fi - -# Convert to absolute pathnames. -# -if [ -n "${IPATH}" ]; then - IPATH=`cd ${IPATH} 2>/dev/null && /bin/pwd \ - || echo "can't locate ${IPATH}" && exit 1` -fi - -ROPATH=${OPATH} # backup relative opath for later use. -OPATH=`cd ${OPATH} 2>/dev/null && /bin/pwd \ - || echo "can't locate ${OPATH}" && exit 1` - -# Prefix $GCMD with absolute pathnames. -# -executable=`echo ${GCMD} | cut -f 1 -d ' '` -relapath=`dirname ${executable}` -cd ${THISDIR} -absolpath=`cd ${relapath} && /bin/pwd` -GCMD=${absolpath}/`basename ${executable}`" "`echo ${GCMD} | cut -f 2- -d ' '` - -# Set up temporary directories. -# -WORKDIR=/tmp/bsdar-tcgen-work -rm -rf ${WORKDIR} -rm -rf ${WORKDIR}.uu.in -rm -rf ${WORKDIR}.uu.out -mkdir -p ${WORKDIR} || exit 1 -mkdir -p ${WORKDIR}.uu.in || exit 1 # Keep encoded input files -mkdir -p ${WORKDIR}.uu.out || exit 1 # Keep encoded output files - -if [ -n "${IPATH}" ]; then - cp -R ${IPATH}/* ${WORKDIR} 2>/dev/null -fi - -# Keep a record of input state. -# -recstate "in" - -# Execute the cmd, record stdout, stderr and exit value. -# -cd ${WORKDIR} || exit 1 -${GCMD} > ${OPATH}/$TC.out 2> ${OPATH}/$TC.err -echo $? > ${OPATH}/$TC.eval - -# Keep a record of output state. -# -recstate "out" - -# Generate test script. -# -echo "inittest ${TC} ${ROPATH}" > ${OPATH}/${TC}.sh -if [ "${USE_SHAR}" = yes ]; then - echo 'extshar ${TESTDIR}' >> ${OPATH}/${TC}.sh - echo 'extshar ${RLTDIR}' >> ${OPATH}/${TC}.sh -elif [ "${USE_UUENCODE}" = yes ]; then - echo 'udecode ${TESTDIR}' >> ${OPATH}/${TC}.sh - echo 'udecode ${RLTDIR}' >> ${OPATH}/${TC}.sh -fi -echo "runcmd \"${RCMD}\" work true" >> ${OPATH}/${TC}.sh -if [ "${NODIFFRLT}" = yes ]; then - echo "rundiff false" >> ${OPATH}/${TC}.sh -else - echo "rundiff true" >> ${OPATH}/${TC}.sh -fi - -cd ${THISDIR} || exit 1 -echo "done." diff --git a/contrib/elftoolchain/test/elfdump/Makefile b/contrib/elftoolchain/test/elfdump/Makefile deleted file mode 100644 index 2e4fae85..00000000 --- a/contrib/elftoolchain/test/elfdump/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../.. - -.include "${TOP}/mk/elftoolchain.tetbase.mk" diff --git a/contrib/elftoolchain/test/elfdump/tet_scen b/contrib/elftoolchain/test/elfdump/tet_scen deleted file mode 100644 index ac511676..00000000 --- a/contrib/elftoolchain/test/elfdump/tet_scen +++ /dev/null @@ -1,41 +0,0 @@ -# $Id$ - -all - "Starting Test Suite" - ^exec1 - ^exec2 - ^dso1 - ^dso2 - ^archive1 - ^archive2 - "Complete Test Suite" - -exec1 - "Starting exec1 Test" - /ts/exec1/tc - "Complete exec1 Test" - -exec2 - "Starting exec2 Test" - /ts/exec2/tc - "Complete exec2 Test" - -dso1 - "Starting dso1 Test" - /ts/dso1/tc - "Complete dso1 Test" - -dso2 - "Starting dso2 Test" - /ts/dso2/tc - "Complete dso2 Test" - -archive1 - "Starting archive1 Test" - /ts/archive1/tc - "Complete archive1 Test" - -archive2 - "Starting archive2 Test" - /ts/archive2/tc - "Complete archive2 Test" diff --git a/contrib/elftoolchain/test/elfdump/tetexec.cfg b/contrib/elftoolchain/test/elfdump/tetexec.cfg deleted file mode 100644 index 580b3aea..00000000 --- a/contrib/elftoolchain/test/elfdump/tetexec.cfg +++ /dev/null @@ -1,5 +0,0 @@ -# elfdump Test Suite. -# -# $Id$ - -TET_OUTPUT_CAPTURE=False diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@G%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@G%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.out deleted file mode 100644 index b7ec4556..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@c%liba.a.out +++ /dev/null @@ -1,246 +0,0 @@ - -liba.a(a1.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x1f sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rel.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x10 sh_type: [ SHT_REL ] - sh_offset: 0x2b8 sh_entsize: 0x8 - sh_link: 7 sh_info: 1 - sh_addralign: 0x4 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x60 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x60 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x60 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x39 sh_type: [ SHT_STRTAB ] - sh_offset: 0x86 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x80 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x228 sh_entsize: 0x10 - sh_link: 8 sh_info: 6 - sh_addralign: 0x4 - -Section Header[8]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xf sh_type: [ SHT_STRTAB ] - sh_offset: 0x2a8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -liba.a(a2.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x1c sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rel.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_REL ] - sh_offset: 0x328 sh_entsize: 0x8 - sh_link: 8 sh_info: 1 - sh_addralign: 0x4 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0xd sh_type: [ SHT_PROGBITS ] - sh_offset: 0x5c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x6c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x9 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x6c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x75 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x41 sh_type: [ SHT_STRTAB ] - sh_offset: 0x9b sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[8]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xa0 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x26c sh_entsize: 0x10 - sh_link: 9 sh_info: 7 - sh_addralign: 0x4 - -Section Header[9]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x1a sh_type: [ SHT_STRTAB ] - sh_offset: 0x30c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -liba.a(a3.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x33 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rel.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x20 sh_type: [ SHT_REL ] - sh_offset: 0x2e0 sh_entsize: 0x8 - sh_link: 7 sh_info: 1 - sh_addralign: 0x4 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x74 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x74 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x74 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x39 sh_type: [ SHT_STRTAB ] - sh_offset: 0x9a sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x90 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x23c sh_entsize: 0x10 - sh_link: 8 sh_info: 6 - sh_addralign: 0x4 - -Section Header[8]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x14 sh_type: [ SHT_STRTAB ] - sh_offset: 0x2cc sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -liba.a(a4.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x24 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rel.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x20 sh_type: [ SHT_REL ] - sh_offset: 0x358 sh_entsize: 0x8 - sh_link: 8 sh_info: 1 - sh_addralign: 0x4 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x12 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x64 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x78 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x15 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x78 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x8d sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x41 sh_type: [ SHT_STRTAB ] - sh_offset: 0xb3 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[8]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xb0 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x284 sh_entsize: 0x10 - sh_link: 9 sh_info: 7 - sh_addralign: 0x4 - -Section Header[9]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x21 sh_type: [ SHT_STRTAB ] - sh_offset: 0x334 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@d%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.out deleted file mode 100644 index dca27596..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@e%liba.a.out +++ /dev/null @@ -1,48 +0,0 @@ - -liba.a(a1.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS32 ei_data: ELFDATA2LSB - e_machine: EM_386 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 52 e_shstrndx: 6 - e_shoff: 0xc0 e_shentsize: 40 e_shnum: 9 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -liba.a(a2.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS32 ei_data: ELFDATA2LSB - e_machine: EM_386 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 52 e_shstrndx: 7 - e_shoff: 0xdc e_shentsize: 40 e_shnum: 10 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -liba.a(a3.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS32 ei_data: ELFDATA2LSB - e_machine: EM_386 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 52 e_shstrndx: 6 - e_shoff: 0xd4 e_shentsize: 40 e_shnum: 9 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -liba.a(a4.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS32 ei_data: ELFDATA2LSB - e_machine: EM_386 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 52 e_shstrndx: 7 - e_shoff: 0xf4 e_shentsize: 40 e_shnum: 10 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@h%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.out deleted file mode 100644 index 5401b1a9..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@k%liba.a.out +++ /dev/null @@ -1,16 +0,0 @@ - -liba.a(a1.o): - -elf checksum: 0x85c - -liba.a(a2.o): - -elf checksum: 0x1294 - -liba.a(a3.o): - -elf checksum: 0xdc3 - -liba.a(a4.o): - -elf checksum: 0x186c diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@n%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@p%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.out deleted file mode 100644 index 11cb4bec..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@r%liba.a.out +++ /dev/null @@ -1,33 +0,0 @@ - -liba.a(a1.o): - -Relocation Section: .rel.text - type offset section with respect to - R_386_32 0x5 .rel.text a - R_386_32 0x16 .rel.text a - -liba.a(a2.o): - -Relocation Section: .rel.text - type offset section with respect to - R_386_32 0xa .rel.text msg - R_386_32 0x11 .rel.text .rodata (section) - R_386_PC32 0x16 .rel.text printf - -liba.a(a3.o): - -Relocation Section: .rel.text - type offset section with respect to - R_386_32 0x5 .rel.text x - R_386_32 0xf .rel.text y - R_386_32 0x19 .rel.text x - R_386_32 0x27 .rel.text y - -liba.a(a4.o): - -Relocation Section: .rel.text - type offset section with respect to - R_386_32 0xa .rel.text msg2 - R_386_32 0x12 .rel.text msg1 - R_386_32 0x19 .rel.text .rodata (section) - R_386_PC32 0x1e .rel.text printf diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.out deleted file mode 100644 index 2180e393..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s%liba.a.out +++ /dev/null @@ -1,71 +0,0 @@ - -Symbol Table: (archive) - index offset member name and symbol - [0] 0x000000a8 (a1.o):summul - [1] 0x000000a8 (a1.o):a - [2] 0x000003ac (a2.o):msg - [3] 0x000003ac (a2.o):printmsg - [4] 0x00000728 (a3.o):substract - [5] 0x00000728 (a3.o):x - [6] 0x00000728 (a3.o):y - [7] 0x00000a64 (a4.o):msg1 - [8] 0x00000a64 (a4.o):msg2 - [9] 0x00000a64 (a4.o):outputmsg - -liba.a(a1.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a1.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [6] 0x00000000 0x0000001f FUNC GLOB D 0 .text summul - [7] 0x00000004 0x00000004 OBJT GLOB D 0 COMMON a - -liba.a(a2.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a2.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .rodata - [6] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x0000000d OBJT GLOB D 0 .data msg - [8] 0x00000000 0x0000001c FUNC GLOB D 0 .text printmsg - [9] 0x00000000 0x00000000 NOTY GLOB D 0 UNDEF printf - -liba.a(a3.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a3.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [6] 0x00000000 0x00000033 FUNC GLOB D 0 .text substract - [7] 0x00000004 0x00000004 OBJT GLOB D 0 COMMON x - [8] 0x00000004 0x00000004 OBJT GLOB D 0 COMMON y - -liba.a(a4.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a4.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .rodata - [6] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x00000009 OBJT GLOB D 0 .data msg1 - [8] 0x00000009 0x00000009 OBJT GLOB D 0 .data msg2 - [9] 0x00000000 0x00000024 FUNC GLOB D 0 .text outputmsg - [10] 0x00000000 0x00000000 NOTY GLOB D 0 UNDEF printf diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.out deleted file mode 100644 index e29a4800..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%.symtab%liba.a.out +++ /dev/null @@ -1,58 +0,0 @@ - -liba.a(a1.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a1.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [6] 0x00000000 0x0000001f FUNC GLOB D 0 .text summul - [7] 0x00000004 0x00000004 OBJT GLOB D 0 COMMON a - -liba.a(a2.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a2.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .rodata - [6] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x0000000d OBJT GLOB D 0 .data msg - [8] 0x00000000 0x0000001c FUNC GLOB D 0 .text printmsg - [9] 0x00000000 0x00000000 NOTY GLOB D 0 UNDEF printf - -liba.a(a3.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a3.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [6] 0x00000000 0x00000033 FUNC GLOB D 0 .text substract - [7] 0x00000004 0x00000004 OBJT GLOB D 0 COMMON x - [8] 0x00000004 0x00000004 OBJT GLOB D 0 COMMON y - -liba.a(a4.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x00000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x00000000 FILE LOCL D 0 ABS a4.c - [2] 0x00000000 0x00000000 SECT LOCL D 0 .text - [3] 0x00000000 0x00000000 SECT LOCL D 0 .data - [4] 0x00000000 0x00000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000 SECT LOCL D 0 .rodata - [6] 0x00000000 0x00000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x00000009 OBJT GLOB D 0 .data msg1 - [8] 0x00000009 0x00000009 OBJT GLOB D 0 .data msg2 - [9] 0x00000000 0x00000024 FUNC GLOB D 0 .text outputmsg - [10] 0x00000000 0x00000000 NOTY GLOB D 0 UNDEF printf diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.out deleted file mode 100644 index 0099f3ac..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@s@N%ARSYM%liba.a.out +++ /dev/null @@ -1,13 +0,0 @@ - -Symbol Table: (archive) - index offset member name and symbol - [0] 0x000000a8 (a1.o):summul - [1] 0x000000a8 (a1.o):a - [2] 0x000003ac (a2.o):msg - [3] 0x000003ac (a2.o):printmsg - [4] 0x00000728 (a3.o):substract - [5] 0x00000728 (a3.o):x - [6] 0x00000728 (a3.o):y - [7] 0x00000a64 (a4.o):msg1 - [8] 0x00000a64 (a4.o):msg2 - [9] 0x00000a64 (a4.o):outputmsg diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@S@v%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.out deleted file mode 100644 index 53e54162..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@c%liba.a.out +++ /dev/null @@ -1,472 +0,0 @@ - -liba.a(a1.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 31 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 696 - sh_size: 16 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 96 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 134 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 552 - sh_size: 128 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 680 - sh_size: 15 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a2.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 28 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 808 - sh_size: 24 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 92 - sh_size: 13 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 9 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 117 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 155 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 620 - sh_size: 160 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 780 - sh_size: 26 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a3.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 51 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 736 - sh_size: 32 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 116 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 154 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 572 - sh_size: 144 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 716 - sh_size: 20 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a4.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 36 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 856 - sh_size: 32 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 100 - sh_size: 18 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 21 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 141 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 179 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 644 - sh_size: 176 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 820 - sh_size: 33 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.out deleted file mode 100644 index 53e54162..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@c@p@n%liba.a.out +++ /dev/null @@ -1,472 +0,0 @@ - -liba.a(a1.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 31 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 696 - sh_size: 16 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 96 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 134 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 552 - sh_size: 128 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 680 - sh_size: 15 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a2.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 28 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 808 - sh_size: 24 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 92 - sh_size: 13 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 9 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 117 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 155 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 620 - sh_size: 160 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 780 - sh_size: 26 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a3.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 51 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 736 - sh_size: 32 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 116 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 154 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 572 - sh_size: 144 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 716 - sh_size: 20 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a4.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 36 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 856 - sh_size: 32 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 100 - sh_size: 18 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 21 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 141 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 179 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 644 - sh_size: 176 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 820 - sh_size: 33 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.out deleted file mode 100644 index fcb3c9d9..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@c@s%liba.a.out +++ /dev/null @@ -1,798 +0,0 @@ - -symbol table (archive): - -entry: 0 - offset: 0xa8 - member: a1.o - symbol: summul - -entry: 1 - offset: 0xa8 - member: a1.o - symbol: a - -entry: 2 - offset: 0x3ac - member: a2.o - symbol: msg - -entry: 3 - offset: 0x3ac - member: a2.o - symbol: printmsg - -entry: 4 - offset: 0x728 - member: a3.o - symbol: substract - -entry: 5 - offset: 0x728 - member: a3.o - symbol: x - -entry: 6 - offset: 0x728 - member: a3.o - symbol: y - -entry: 7 - offset: 0xa64 - member: a4.o - symbol: msg1 - -entry: 8 - offset: 0xa64 - member: a4.o - symbol: msg2 - -entry: 9 - offset: 0xa64 - member: a4.o - symbol: outputmsg - -liba.a(a1.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 31 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 696 - sh_size: 16 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 96 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 134 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 552 - sh_size: 128 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 680 - sh_size: 15 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a1.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: summul - st_value: 0 - st_size: 31 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 7 - st_name: a - st_value: 0x4 - st_size: 4 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65522 - -liba.a(a2.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 28 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 808 - sh_size: 24 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 92 - sh_size: 13 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 9 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 117 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 155 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 620 - sh_size: 160 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 780 - sh_size: 26 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a2.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: msg - st_value: 0 - st_size: 13 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 8 - st_name: printmsg - st_value: 0 - st_size: 28 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 9 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -liba.a(a3.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 51 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 736 - sh_size: 32 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 116 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 154 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 572 - sh_size: 144 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 716 - sh_size: 20 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a3.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: substract - st_value: 0 - st_size: 51 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 7 - st_name: x - st_value: 0x4 - st_size: 4 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65522 - -entry: 8 - st_name: y - st_value: 0x4 - st_size: 4 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65522 - -liba.a(a4.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 36 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 856 - sh_size: 32 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 100 - sh_size: 18 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 21 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 141 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 179 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 644 - sh_size: 176 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 820 - sh_size: 33 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a4.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: msg1 - st_value: 0 - st_size: 9 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 8 - st_name: msg2 - st_value: 0x9 - st_size: 9 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 9 - st_name: outputmsg - st_value: 0 - st_size: 36 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 10 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@d%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.out deleted file mode 100644 index 2047433a..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@e%liba.a.out +++ /dev/null @@ -1,76 +0,0 @@ - -liba.a(a1.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 192 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 9 - e_shstrndx: 6 - -liba.a(a2.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 220 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 10 - e_shstrndx: 7 - -liba.a(a3.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 212 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 9 - e_shstrndx: 6 - -liba.a(a4.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 244 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 10 - e_shstrndx: 7 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.out deleted file mode 100644 index 2047433a..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@e@i%liba.a.out +++ /dev/null @@ -1,76 +0,0 @@ - -liba.a(a1.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 192 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 9 - e_shstrndx: 6 - -liba.a(a2.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 220 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 10 - e_shstrndx: 7 - -liba.a(a3.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 212 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 9 - e_shstrndx: 6 - -liba.a(a4.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 244 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 10 - e_shstrndx: 7 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.out deleted file mode 100644 index b598a2eb..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@e@p@c%liba.a.out +++ /dev/null @@ -1,540 +0,0 @@ - -liba.a(a1.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 192 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 9 - e_shstrndx: 6 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 31 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 696 - sh_size: 16 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 96 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 96 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 134 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 552 - sh_size: 128 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 680 - sh_size: 15 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a2.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 220 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 10 - e_shstrndx: 7 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 28 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 808 - sh_size: 24 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 92 - sh_size: 13 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 108 - sh_size: 9 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 117 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 155 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 620 - sh_size: 160 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 780 - sh_size: 26 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a3.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 212 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 9 - e_shstrndx: 6 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 51 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 736 - sh_size: 32 - sh_link: 7 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 116 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 116 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 154 - sh_size: 57 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 572 - sh_size: 144 - sh_link: 8 - sh_info: 6 - sh_addralign: 4 - sh_entsize: 16 - -entry: 8 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 716 - sh_size: 20 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -liba.a(a4.o): - -elf header: - - e_ident: ELFCLASS32 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_386 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 244 - e_flags: 0 - e_ehsize: 52 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 40 - e_shnum: 10 - e_shstrndx: 7 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 36 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rel.text - sh_type: SHT_REL - sh_flags: - sh_addr: 0 - sh_offset: 856 - sh_size: 32 - sh_link: 8 - sh_info: 1 - sh_addralign: 4 - sh_entsize: 8 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 100 - sh_size: 18 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 120 - sh_size: 21 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 141 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 179 - sh_size: 65 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 644 - sh_size: 176 - sh_link: 9 - sh_info: 7 - sh_addralign: 4 - sh_entsize: 16 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 820 - sh_size: 33 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@h%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@n%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.out deleted file mode 100644 index 52c013f3..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@p%liba.a.out +++ /dev/null @@ -1,8 +0,0 @@ - -liba.a(a1.o): - -liba.a(a2.o): - -liba.a(a3.o): - -liba.a(a4.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.out deleted file mode 100644 index b2420a99..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@p@s%liba.a.out +++ /dev/null @@ -1,334 +0,0 @@ - -symbol table (archive): - -entry: 0 - offset: 0xa8 - member: a1.o - symbol: summul - -entry: 1 - offset: 0xa8 - member: a1.o - symbol: a - -entry: 2 - offset: 0x3ac - member: a2.o - symbol: msg - -entry: 3 - offset: 0x3ac - member: a2.o - symbol: printmsg - -entry: 4 - offset: 0x728 - member: a3.o - symbol: substract - -entry: 5 - offset: 0x728 - member: a3.o - symbol: x - -entry: 6 - offset: 0x728 - member: a3.o - symbol: y - -entry: 7 - offset: 0xa64 - member: a4.o - symbol: msg1 - -entry: 8 - offset: 0xa64 - member: a4.o - symbol: msg2 - -entry: 9 - offset: 0xa64 - member: a4.o - symbol: outputmsg - -liba.a(a1.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a1.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: summul - st_value: 0 - st_size: 31 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 7 - st_name: a - st_value: 0x4 - st_size: 4 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65522 - -liba.a(a2.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a2.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: msg - st_value: 0 - st_size: 13 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 8 - st_name: printmsg - st_value: 0 - st_size: 28 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 9 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -liba.a(a3.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a3.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: substract - st_value: 0 - st_size: 51 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 7 - st_name: x - st_value: 0x4 - st_size: 4 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65522 - -entry: 8 - st_name: y - st_value: 0x4 - st_size: 4 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65522 - -liba.a(a4.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: a4.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: msg1 - st_value: 0 - st_size: 9 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 8 - st_name: msg2 - st_value: 0x9 - st_size: 9 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 9 - st_name: outputmsg - st_value: 0 - st_size: 36 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 10 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.err b/contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.out b/contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.out deleted file mode 100644 index 48c90b2a..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/@r%liba.a.out +++ /dev/null @@ -1,68 +0,0 @@ - -liba.a(a1.o): - -relocation (.rel.text): - -entry: 0 - r_offset: 0x5 - r_info: 0x701 - -entry: 1 - r_offset: 0x16 - r_info: 0x701 - -liba.a(a2.o): - -relocation (.rel.text): - -entry: 0 - r_offset: 0xa - r_info: 0x701 - -entry: 1 - r_offset: 0x11 - r_info: 0x501 - -entry: 2 - r_offset: 0x16 - r_info: 0x902 - -liba.a(a3.o): - -relocation (.rel.text): - -entry: 0 - r_offset: 0x5 - r_info: 0x701 - -entry: 1 - r_offset: 0xf - r_info: 0x801 - -entry: 2 - r_offset: 0x19 - r_info: 0x701 - -entry: 3 - r_offset: 0x27 - r_info: 0x801 - -liba.a(a4.o): - -relocation (.rel.text): - -entry: 0 - r_offset: 0xa - r_info: 0x801 - -entry: 1 - r_offset: 0x12 - r_info: 0x701 - -entry: 2 - r_offset: 0x19 - r_info: 0x501 - -entry: 3 - r_offset: 0x1e - r_info: 0xa02 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/liba.a b/contrib/elftoolchain/test/elfdump/ts/archive1/liba.a deleted file mode 100644 index a2174bc576bd176bbd2814a8137846ecfa89b2e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3608 zcmdT{O=uHA6rOFW#;9oh!#{Kit)?h3o317m75{24;zbIA3f-pB3W<^I2J1;d5ke6> z>qT!K1O+c1{W(;{i{R0N7r}!U#iJ0vZ+2h1jfqX6fokZHA())^$m5Y~rcD(AS=U3dkuO`%04%uuns$BIiSB-~jr^?Y7B|c}s#9~X7h--~4Ba>>WS{zyeF8y>|&K$243P(;IJEv62yIS(yQAocM$Z_da z3dNLPnDA9<%=KNB8udJt%9l%}!X=;Uv`5?E#(hcjhtQ`@XjRzR3^{!m=s)XFiepQ_ ze7+ML2ls}043acr+L?xaq@7^;&*hhfPxRbJpl=5Y$ygT*G8e~gfd|+LN&F}g`ZOh> zT!+S3cm|A*`{G`s^F4&$O4x*CKG8)+?VajdUF?*zZxHq93e@Fvf~R7*JdzjYWHnA= z1th)5UFv&X;gaWpg%Ba;x>-oddW=)LnfYNL*WW${K4J}$U?5>`LttYI4BYq{pE}lK zwl&q+L*tj9^?LoytMNjySl*?tlqIhP|BJdDnhvr$+h`TV0_JRv>fNM31dPspXef^_JzQa%u5*qssvX&`z}~mj7ZEa zakj>2L1S_ZAmwKlAXACX!-dZhYkUV;c;6Fy9XJTLe}34@?#;Dbe?DLhl3=f8{oz3d zm5Aw@T*rqd2jjIDeeY{;A5g2k?|V^u{g2nAenuKnE6jbu4mEsu|G4c|m}@MLf~7{x zwel0pVF^R@YX?hr;nz-0+K+wQf$v;3=^gymnh1i1du~Qi`$Awzu)~}XE6fMakj$F2 zx`}#Y;S=@k2D|{SWo5XJ+drmsA_S_fF%ztzqYp{0UoQ7-#;4 zcqd4W*qR8;)2;Xkw)nCl(a*fIj25iTZeu;W4O=@HdiK+aXq z9Gpux9|%e26J2D~z7QCcc`2jyjPbIbErVoVbYhgmTobd=8f?Y@I8)z#`-_?`b3vWM S1z>)OU4vNwc`Nh|6v1ELXH$Lv diff --git a/contrib/elftoolchain/test/elfdump/ts/archive1/tc b/contrib/elftoolchain/test/elfdump/ts/archive1/tc deleted file mode 100755 index 92a5c1f6..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive1/tc +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - run "@e%liba.a" -} - -tp2() -{ - run "@p%liba.a" -} - -tp3() -{ - run "@G%liba.a" -} - -tp4() -{ - run "@n%liba.a" -} - -tp5() -{ - run "@p@s%liba.a" -} - -tp6() -{ - run "@c%liba.a" -} - -tp7() -{ - run "@c@s%liba.a" -} - -tp8() -{ - run "@c@p@n%liba.a" -} - -tp9() -{ - run "@d%liba.a" -} - -tp10() -{ - run "@e@i%liba.a" -} - -tp11() -{ - run "@r%liba.a" -} - -tp12() -{ - run "@h%liba.a" -} - -tp13() -{ - run "@e@p@c%liba.a" -} - -tp14() -{ - run "@S@e%liba.a" -} - -tp15() -{ - run "@S@p%liba.a" -} - -tp16() -{ - run "@S@G%liba.a" -} - -tp17() -{ - run "@S@r%liba.a" -} - -tp18() -{ - run "@S@d%liba.a" -} - -tp19() -{ - run "@S@n%liba.a" -} - -tp20() -{ - run "@S@c%liba.a" -} - -tp21() -{ - run "@S@s%liba.a" -} - -tp22() -{ - run "@S@k%liba.a" -} - -tp23() -{ - run "@S@v%liba.a" -} - -tp24() -{ - run "@S@h%liba.a" -} - -tp25() -{ - run "@S@s@N%ARSYM%liba.a" -} - -tp26() -{ - run "@S@s@N%.symtab%liba.a" -} - -tet_startup="" -tet_cleanup="cleanup" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic13 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" -ic8="tp8" -ic9="tp9" -ic10="tp10" -ic11="tp11" -ic12="tp12" -ic13="tp13" -ic14="tp14" -ic15="tp15" -ic16="tp16" -ic17="tp17" -ic18="tp18" -ic19="tp19" -ic20="tp20" -ic21="tp21" -ic22="tp22" -ic23="tp23" -ic24="tp24" -ic25="tp25" -ic26="tp26" - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@G%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@G%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.out deleted file mode 100644 index fbdea32e..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@c%libdwarf.a.out +++ /dev/null @@ -1,1090 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x4fc sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x1e0 sh_type: [ SHT_RELA ] - sh_offset: 0x1638 sh_entsize: 0x18 - sh_link: 12 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x53c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x53c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x961 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x540 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[6]: sh_name: .rela.rodata - sh_addr: 0 sh_flags: 0 - sh_size: 0x1ba8 sh_type: [ SHT_RELA ] - sh_offset: 0x1818 sh_entsize: 0x18 - sh_link: 12 sh_info: 5 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rodata.str1.1 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x1d sh_type: [ SHT_PROGBITS ] - sh_offset: 0xea1 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[8]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0xb8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xec0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x78 sh_type: [ SHT_RELA ] - sh_offset: 0x33c0 sh_entsize: 0x18 - sh_link: 12 sh_info: 8 - sh_addralign: 0x8 - -Section Header[10]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xf78 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[11]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x65 sh_type: [ SHT_STRTAB ] - sh_offset: 0xf9e sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[12]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x1f8 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x1388 sh_entsize: 0x18 - sh_link: 13 sh_info: 13 - sh_addralign: 0x8 - -Section Header[13]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xb5 sh_type: [ SHT_STRTAB ] - sh_offset: 0x1580 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_init.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x11f5 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x810 sh_type: [ SHT_RELA ] - sh_offset: 0x21e8 sh_entsize: 0x18 - sh_link: 13 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1238 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x10 sh_type: [ SHT_NOBITS ] - sh_offset: 0x1238 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x1b0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1240 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x20 - -Section Header[6]: sh_name: .rela.rodata - sh_addr: 0 sh_flags: 0 - sh_size: 0x3d8 sh_type: [ SHT_RELA ] - sh_offset: 0x29f8 sh_entsize: 0x18 - sh_link: 13 sh_info: 5 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rodata.str1.8 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x2f sh_type: [ SHT_PROGBITS ] - sh_offset: 0x13f0 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .rodata.str1.1 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0xf3 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x141f sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[9]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x130 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1518 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[10]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0xd8 sh_type: [ SHT_RELA ] - sh_offset: 0x2dd0 sh_entsize: 0x18 - sh_link: 13 sh_info: 9 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1648 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[12]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x74 sh_type: [ SHT_STRTAB ] - sh_offset: 0x166e sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[13]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x4f8 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x1aa8 sh_entsize: 0x18 - sh_link: 14 sh_info: 26 - sh_addralign: 0x8 - -Section Header[14]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x247 sh_type: [ SHT_STRTAB ] - sh_offset: 0x1fa0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_form.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x48 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0x560 sh_entsize: 0x18 - sh_link: 10 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x88 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x88 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0xf sh_type: [ SHT_PROGBITS ] - sh_offset: 0x88 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x30 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x98 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0x578 sh_entsize: 0x18 - sh_link: 10 sh_info: 6 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xc8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[9]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x51 sh_type: [ SHT_STRTAB ] - sh_offset: 0xee sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[10]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xf0 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x440 sh_entsize: 0x18 - sh_link: 11 sh_info: 9 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x2b sh_type: [ SHT_STRTAB ] - sh_offset: 0x530 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_finish.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x353 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x120 sh_type: [ SHT_RELA ] - sh_offset: 0x8c8 sh_entsize: 0x18 - sh_link: 10 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x394 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x394 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0xd sh_type: [ SHT_PROGBITS ] - sh_offset: 0x394 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x50 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x3a8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0x9e8 sh_entsize: 0x18 - sh_link: 10 sh_info: 6 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x3f8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[9]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x51 sh_type: [ SHT_STRTAB ] - sh_offset: 0x41e sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[10]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x120 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x770 sh_entsize: 0x18 - sh_link: 11 sh_info: 9 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x38 sh_type: [ SHT_STRTAB ] - sh_offset: 0x890 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_errno.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xe sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x50 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[3]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x50 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x30 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x50 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[5]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0x450 sh_entsize: 0x18 - sh_link: 8 sh_info: 4 - sh_addralign: 0x8 - -Section Header[6]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x80 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x44 sh_type: [ SHT_STRTAB ] - sh_offset: 0xa6 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[8]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xc0 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x370 sh_entsize: 0x18 - sh_link: 9 sh_info: 7 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x1b sh_type: [ SHT_STRTAB ] - sh_offset: 0x430 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_dealloc.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x2 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x44 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[3]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x44 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x30 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x48 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[5]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0x448 sh_entsize: 0x18 - sh_link: 8 sh_info: 4 - sh_addralign: 0x8 - -Section Header[6]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x78 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x44 sh_type: [ SHT_STRTAB ] - sh_offset: 0x9e sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[8]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xc0 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x368 sh_entsize: 0x18 - sh_link: 9 sh_info: 7 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x1f sh_type: [ SHT_STRTAB ] - sh_offset: 0x428 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_attrval.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x6d8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x408 sh_type: [ SHT_RELA ] - sh_offset: 0xfc0 sh_entsize: 0x18 - sh_link: 11 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x718 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x718 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata.str1.8 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x2e sh_type: [ SHT_PROGBITS ] - sh_offset: 0x718 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[6]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x92 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x750 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[7]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0xd0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x7e8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x90 sh_type: [ SHT_RELA ] - sh_offset: 0x13c8 sh_entsize: 0x18 - sh_link: 11 sh_info: 7 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x8b8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[10]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x60 sh_type: [ SHT_STRTAB ] - sh_offset: 0x8de sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[11]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x240 sh_type: [ SHT_SYMTAB ] - sh_offset: 0xc80 sh_entsize: 0x18 - sh_link: 12 sh_info: 14 - sh_addralign: 0x8 - -Section Header[12]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xfb sh_type: [ SHT_STRTAB ] - sh_offset: 0xec0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_attr.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x181 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x78 sh_type: [ SHT_RELA ] - sh_offset: 0x730 sh_entsize: 0x18 - sh_link: 10 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1c4 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x1c4 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x1a sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1c4 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x50 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1e0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x30 sh_type: [ SHT_RELA ] - sh_offset: 0x7a8 sh_entsize: 0x18 - sh_link: 10 sh_info: 6 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x230 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[9]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x51 sh_type: [ SHT_STRTAB ] - sh_offset: 0x256 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[10]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x138 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x5a8 sh_entsize: 0x18 - sh_link: 11 sh_info: 10 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x4b sh_type: [ SHT_STRTAB ] - sh_offset: 0x6e0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_abbrev.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xfe sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x30 sh_type: [ SHT_RELA ] - sh_offset: 0x690 sh_entsize: 0x18 - sh_link: 10 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x140 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x140 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x11 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x140 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[6]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x58 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x158 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x30 sh_type: [ SHT_RELA ] - sh_offset: 0x6c0 sh_entsize: 0x18 - sh_link: 10 sh_info: 6 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1b0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[9]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x51 sh_type: [ SHT_STRTAB ] - sh_offset: 0x1d6 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[10]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x120 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x528 sh_entsize: 0x18 - sh_link: 11 sh_info: 9 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x48 sh_type: [ SHT_STRTAB ] - sh_offset: 0x648 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_dump.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xc85 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x1aa0 sh_type: [ SHT_RELA ] - sh_offset: 0x2db0 sh_entsize: 0x18 - sh_link: 13 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xcc8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0xcc8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata.str1.1 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0xbee sh_type: [ SHT_PROGBITS ] - sh_offset: 0xcc8 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[6]: sh_name: .rodata.str1.8 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x31a sh_type: [ SHT_PROGBITS ] - sh_offset: 0x18b8 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x5e0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1bd8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .rela.rodata - sh_addr: 0 sh_flags: 0 - sh_size: 0x11a0 sh_type: [ SHT_RELA ] - sh_offset: 0x4850 sh_entsize: 0x18 - sh_link: 13 sh_info: 7 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x238 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x21b8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[10]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x198 sh_type: [ SHT_RELA ] - sh_offset: 0x59f0 sh_entsize: 0x18 - sh_link: 13 sh_info: 9 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x23f0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[12]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x74 sh_type: [ SHT_STRTAB ] - sh_offset: 0x2416 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[13]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x3a8 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x2850 sh_entsize: 0x18 - sh_link: 14 sh_info: 11 - sh_addralign: 0x8 - -Section Header[14]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x1b8 sh_type: [ SHT_STRTAB ] - sh_offset: 0x2bf8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_die.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x3ae sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x108 sh_type: [ SHT_RELA ] - sh_offset: 0xba8 sh_entsize: 0x18 - sh_link: 12 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x3f0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x3f0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x3e sh_type: [ SHT_PROGBITS ] - sh_offset: 0x3f0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[6]: sh_name: .rela.rodata - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0xcb0 sh_entsize: 0x18 - sh_link: 12 sh_info: 5 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rodata.str1.1 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x9 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x42e sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[8]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0xb8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x438 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x90 sh_type: [ SHT_RELA ] - sh_offset: 0xcc8 sh_entsize: 0x18 - sh_link: 12 sh_info: 8 - sh_addralign: 0x8 - -Section Header[10]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x4f0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[11]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x65 sh_type: [ SHT_STRTAB ] - sh_offset: 0x516 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[12]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x1f8 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x900 sh_entsize: 0x18 - sh_link: 13 sh_info: 14 - sh_addralign: 0x8 - -Section Header[13]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xa9 sh_type: [ SHT_STRTAB ] - sh_offset: 0xaf8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_cu.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x10b sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0x48 sh_type: [ SHT_RELA ] - sh_offset: 0x630 sh_entsize: 0x18 - sh_link: 10 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x14c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[4]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x14c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[5]: sh_name: .rodata - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x15 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x150 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[6]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x30 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x168 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0x678 sh_entsize: 0x18 - sh_link: 10 sh_info: 6 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x198 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[9]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x51 sh_type: [ SHT_STRTAB ] - sh_offset: 0x1be sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[10]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xf0 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x510 sh_entsize: 0x18 - sh_link: 11 sh_info: 9 - sh_addralign: 0x8 - -Section Header[11]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x2f sh_type: [ SHT_STRTAB ] - sh_offset: 0x600 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -libdwarf.a(dwarf_errmsg.o): - -Section Header[1]: sh_name: .text - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xc7 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[2]: sh_name: .rela.text - sh_addr: 0 sh_flags: 0 - sh_size: 0xc0 sh_type: [ SHT_RELA ] - sh_offset: 0x8d8 sh_entsize: 0x18 - sh_link: 12 sh_info: 1 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .data - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x78 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x120 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x20 - -Section Header[4]: sh_name: .rela.data - sh_addr: 0 sh_flags: 0 - sh_size: 0x168 sh_type: [ SHT_RELA ] - sh_offset: 0x998 sh_entsize: 0x18 - sh_link: 12 sh_info: 3 - sh_addralign: 0x8 - -Section Header[5]: sh_name: .bss - sh_addr: 0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0 sh_type: [ SHT_NOBITS ] - sh_offset: 0x198 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[6]: sh_name: .rodata.str1.1 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x112 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x198 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[7]: sh_name: .rodata.str1.8 - sh_addr: 0 sh_flags: [ SHF_ALLOC|SHF_MERGE|SHF_STRINGS ] - sh_size: 0x54 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x2b0 sh_entsize: 0x1 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .eh_frame - sh_addr: 0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x38 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x308 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .rela.eh_frame - sh_addr: 0 sh_flags: 0 - sh_size: 0x18 sh_type: [ SHT_RELA ] - sh_offset: 0xb00 sh_entsize: 0x18 - sh_link: 12 sh_info: 8 - sh_addralign: 0x8 - -Section Header[10]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x26 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x340 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[11]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x6c sh_type: [ SHT_STRTAB ] - sh_offset: 0x366 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[12]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x138 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x758 sh_entsize: 0x18 - sh_link: 13 sh_info: 9 - sh_addralign: 0x8 - -Section Header[13]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x42 sh_type: [ SHT_STRTAB ] - sh_offset: 0x890 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@d%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.out deleted file mode 100644 index 5cc220b6..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@e%libdwarf.a.out +++ /dev/null @@ -1,156 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 11 - e_shoff: 0x1008 e_shentsize: 64 e_shnum: 14 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_init.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 12 - e_shoff: 0x16e8 e_shentsize: 64 e_shnum: 15 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_form.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 9 - e_shoff: 0x140 e_shentsize: 64 e_shnum: 12 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_finish.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 9 - e_shoff: 0x470 e_shentsize: 64 e_shnum: 12 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_errno.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 7 - e_shoff: 0xf0 e_shentsize: 64 e_shnum: 10 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_dealloc.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 7 - e_shoff: 0xe8 e_shentsize: 64 e_shnum: 10 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_attrval.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 10 - e_shoff: 0x940 e_shentsize: 64 e_shnum: 13 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_attr.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 9 - e_shoff: 0x2a8 e_shentsize: 64 e_shnum: 12 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_abbrev.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 9 - e_shoff: 0x228 e_shentsize: 64 e_shnum: 12 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_dump.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 12 - e_shoff: 0x2490 e_shentsize: 64 e_shnum: 15 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_die.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 11 - e_shoff: 0x580 e_shentsize: 64 e_shnum: 14 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_cu.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 9 - e_shoff: 0x210 e_shentsize: 64 e_shnum: 12 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 - -libdwarf.a(dwarf_errmsg.o): - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_REL - e_flags: 0 - e_entry: 0 e_ehsize: 64 e_shstrndx: 11 - e_shoff: 0x3d8 e_shentsize: 64 e_shnum: 14 - e_phoff: 0 e_phentsize: 0 e_phnum: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@h%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.out deleted file mode 100644 index 57f07a96..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@k%libdwarf.a.out +++ /dev/null @@ -1,52 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -elf checksum: 0xfe55 - -libdwarf.a(dwarf_init.o): - -elf checksum: 0xceb1 - -libdwarf.a(dwarf_form.o): - -elf checksum: 0x1d0e - -libdwarf.a(dwarf_finish.o): - -elf checksum: 0x4e0b - -libdwarf.a(dwarf_errno.o): - -elf checksum: 0xb96 - -libdwarf.a(dwarf_dealloc.o): - -elf checksum: 0x402 - -libdwarf.a(dwarf_attrval.o): - -elf checksum: 0x70d6 - -libdwarf.a(dwarf_attr.o): - -elf checksum: 0x8a25 - -libdwarf.a(dwarf_abbrev.o): - -elf checksum: 0x696f - -libdwarf.a(dwarf_dump.o): - -elf checksum: 0x697e - -libdwarf.a(dwarf_die.o): - -elf checksum: 0x4e47 - -libdwarf.a(dwarf_cu.o): - -elf checksum: 0x5458 - -libdwarf.a(dwarf_errmsg.o): - -elf checksum: 0xc68e diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@n%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@p%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.out deleted file mode 100644 index f8e26edd..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@r%libdwarf.a.out +++ /dev/null @@ -1,1181 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32S 0xf6 0 .rela.text .rodata (section) - R_X86_64_32S 0x176 2368 .rela.text .rodata (section) - R_X86_64_PC32 0x191 -4 .rela.text free - R_X86_64_PC32 0x199 -4 .rela.text free - R_X86_64_PC32 0x20b -4 .rela.text dwarf_attrval_find - R_X86_64_PC32 0x226 -4 .rela.text calloc - R_X86_64_PC32 0x271 -4 .rela.text dwarf_op_num - R_X86_64_PC32 0x286 -4 .rela.text calloc - R_X86_64_32S 0x312 1184 .rela.text .rodata (section) - R_X86_64_32S 0x32c 2387 .rela.text .rodata (section) - R_X86_64_32S 0x409 2387 .rela.text .rodata (section) - R_X86_64_PC32 0x425 -4 .rela.text get_form_desc - R_X86_64_32 0x432 2387 .rela.text .rodata (section) - R_X86_64_32 0x437 0 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x43e -4 .rela.text printf - R_X86_64_32S 0x453 2387 .rela.text .rodata (section) - R_X86_64_PC32 0x466 -4 .rela.text free - R_X86_64_32S 0x497 2387 .rela.text .rodata (section) - R_X86_64_32S 0x4c1 2387 .rela.text .rodata (section) - R_X86_64_32S 0x4e8 2387 .rela.text .rodata (section) - -Relocation Section: .rela.rodata - type offset addend section with respect to - R_X86_64_64 0 314 .rela.rodata .text (section) - R_X86_64_64 0x8 233 .rela.rodata .text (section) - R_X86_64_64 0x10 233 .rela.rodata .text (section) - R_X86_64_64 0x18 178 .rela.rodata .text (section) - R_X86_64_64 0x20 233 .rela.rodata .text (section) - R_X86_64_64 0x28 301 .rela.rodata .text (section) - R_X86_64_64 0x30 301 .rela.rodata .text (section) - R_X86_64_64 0x38 291 .rela.rodata .text (section) - R_X86_64_64 0x40 291 .rela.rodata .text (section) - R_X86_64_64 0x48 281 .rela.rodata .text (section) - R_X86_64_64 0x50 281 .rela.rodata .text (section) - R_X86_64_64 0x58 271 .rela.rodata .text (section) - R_X86_64_64 0x60 271 .rela.rodata .text (section) - R_X86_64_64 0x68 261 .rela.rodata .text (section) - R_X86_64_64 0x70 261 .rela.rodata .text (section) - R_X86_64_64 0x78 178 .rela.rodata .text (section) - R_X86_64_64 0x80 178 .rela.rodata .text (section) - R_X86_64_64 0x88 178 .rela.rodata .text (section) - R_X86_64_64 0x90 301 .rela.rodata .text (section) - R_X86_64_64 0x98 178 .rela.rodata .text (section) - R_X86_64_64 0xa0 178 .rela.rodata .text (section) - R_X86_64_64 0xa8 178 .rela.rodata .text (section) - R_X86_64_64 0xb0 178 .rela.rodata .text (section) - R_X86_64_64 0xb8 178 .rela.rodata .text (section) - R_X86_64_64 0xc0 178 .rela.rodata .text (section) - R_X86_64_64 0xc8 178 .rela.rodata .text (section) - R_X86_64_64 0xd0 178 .rela.rodata .text (section) - R_X86_64_64 0xd8 178 .rela.rodata .text (section) - R_X86_64_64 0xe0 178 .rela.rodata .text (section) - R_X86_64_64 0xe8 178 .rela.rodata .text (section) - R_X86_64_64 0xf0 178 .rela.rodata .text (section) - R_X86_64_64 0xf8 178 .rela.rodata .text (section) - R_X86_64_64 0x100 261 .rela.rodata .text (section) - R_X86_64_64 0x108 178 .rela.rodata .text (section) - R_X86_64_64 0x110 178 .rela.rodata .text (section) - R_X86_64_64 0x118 178 .rela.rodata .text (section) - R_X86_64_64 0x120 178 .rela.rodata .text (section) - R_X86_64_64 0x128 291 .rela.rodata .text (section) - R_X86_64_64 0x130 178 .rela.rodata .text (section) - R_X86_64_64 0x138 178 .rela.rodata .text (section) - R_X86_64_64 0x140 178 .rela.rodata .text (section) - R_X86_64_64 0x148 178 .rela.rodata .text (section) - R_X86_64_64 0x150 178 .rela.rodata .text (section) - R_X86_64_64 0x158 178 .rela.rodata .text (section) - R_X86_64_64 0x160 291 .rela.rodata .text (section) - R_X86_64_64 0x168 178 .rela.rodata .text (section) - R_X86_64_64 0x170 178 .rela.rodata .text (section) - R_X86_64_64 0x178 178 .rela.rodata .text (section) - R_X86_64_64 0x180 178 .rela.rodata .text (section) - R_X86_64_64 0x188 178 .rela.rodata .text (section) - R_X86_64_64 0x190 178 .rela.rodata .text (section) - R_X86_64_64 0x198 178 .rela.rodata .text (section) - R_X86_64_64 0x1a0 178 .rela.rodata .text (section) - R_X86_64_64 0x1a8 178 .rela.rodata .text (section) - R_X86_64_64 0x1b0 178 .rela.rodata .text (section) - R_X86_64_64 0x1b8 178 .rela.rodata .text (section) - R_X86_64_64 0x1c0 178 .rela.rodata .text (section) - R_X86_64_64 0x1c8 178 .rela.rodata .text (section) - R_X86_64_64 0x1d0 178 .rela.rodata .text (section) - R_X86_64_64 0x1d8 178 .rela.rodata .text (section) - R_X86_64_64 0x1e0 178 .rela.rodata .text (section) - R_X86_64_64 0x1e8 178 .rela.rodata .text (section) - R_X86_64_64 0x1f0 178 .rela.rodata .text (section) - R_X86_64_64 0x1f8 178 .rela.rodata .text (section) - R_X86_64_64 0x200 178 .rela.rodata .text (section) - R_X86_64_64 0x208 178 .rela.rodata .text (section) - R_X86_64_64 0x210 178 .rela.rodata .text (section) - R_X86_64_64 0x218 178 .rela.rodata .text (section) - R_X86_64_64 0x220 178 .rela.rodata .text (section) - R_X86_64_64 0x228 178 .rela.rodata .text (section) - R_X86_64_64 0x230 178 .rela.rodata .text (section) - R_X86_64_64 0x238 178 .rela.rodata .text (section) - R_X86_64_64 0x240 178 .rela.rodata .text (section) - R_X86_64_64 0x248 178 .rela.rodata .text (section) - R_X86_64_64 0x250 178 .rela.rodata .text (section) - R_X86_64_64 0x258 178 .rela.rodata .text (section) - R_X86_64_64 0x260 178 .rela.rodata .text (section) - R_X86_64_64 0x268 178 .rela.rodata .text (section) - R_X86_64_64 0x270 178 .rela.rodata .text (section) - R_X86_64_64 0x278 178 .rela.rodata .text (section) - R_X86_64_64 0x280 178 .rela.rodata .text (section) - R_X86_64_64 0x288 178 .rela.rodata .text (section) - R_X86_64_64 0x290 178 .rela.rodata .text (section) - R_X86_64_64 0x298 178 .rela.rodata .text (section) - R_X86_64_64 0x2a0 178 .rela.rodata .text (section) - R_X86_64_64 0x2a8 178 .rela.rodata .text (section) - R_X86_64_64 0x2b0 178 .rela.rodata .text (section) - R_X86_64_64 0x2b8 178 .rela.rodata .text (section) - R_X86_64_64 0x2c0 178 .rela.rodata .text (section) - R_X86_64_64 0x2c8 178 .rela.rodata .text (section) - R_X86_64_64 0x2d0 178 .rela.rodata .text (section) - R_X86_64_64 0x2d8 178 .rela.rodata .text (section) - R_X86_64_64 0x2e0 178 .rela.rodata .text (section) - R_X86_64_64 0x2e8 178 .rela.rodata .text (section) - R_X86_64_64 0x2f0 178 .rela.rodata .text (section) - R_X86_64_64 0x2f8 178 .rela.rodata .text (section) - R_X86_64_64 0x300 178 .rela.rodata .text (section) - R_X86_64_64 0x308 178 .rela.rodata .text (section) - R_X86_64_64 0x310 178 .rela.rodata .text (section) - R_X86_64_64 0x318 178 .rela.rodata .text (section) - R_X86_64_64 0x320 178 .rela.rodata .text (section) - R_X86_64_64 0x328 178 .rela.rodata .text (section) - R_X86_64_64 0x330 178 .rela.rodata .text (section) - R_X86_64_64 0x338 178 .rela.rodata .text (section) - R_X86_64_64 0x340 178 .rela.rodata .text (section) - R_X86_64_64 0x348 178 .rela.rodata .text (section) - R_X86_64_64 0x350 178 .rela.rodata .text (section) - R_X86_64_64 0x358 178 .rela.rodata .text (section) - R_X86_64_64 0x360 178 .rela.rodata .text (section) - R_X86_64_64 0x368 261 .rela.rodata .text (section) - R_X86_64_64 0x370 261 .rela.rodata .text (section) - R_X86_64_64 0x378 261 .rela.rodata .text (section) - R_X86_64_64 0x380 261 .rela.rodata .text (section) - R_X86_64_64 0x388 261 .rela.rodata .text (section) - R_X86_64_64 0x390 261 .rela.rodata .text (section) - R_X86_64_64 0x398 261 .rela.rodata .text (section) - R_X86_64_64 0x3a0 261 .rela.rodata .text (section) - R_X86_64_64 0x3a8 261 .rela.rodata .text (section) - R_X86_64_64 0x3b0 261 .rela.rodata .text (section) - R_X86_64_64 0x3b8 261 .rela.rodata .text (section) - R_X86_64_64 0x3c0 261 .rela.rodata .text (section) - R_X86_64_64 0x3c8 261 .rela.rodata .text (section) - R_X86_64_64 0x3d0 261 .rela.rodata .text (section) - R_X86_64_64 0x3d8 261 .rela.rodata .text (section) - R_X86_64_64 0x3e0 261 .rela.rodata .text (section) - R_X86_64_64 0x3e8 261 .rela.rodata .text (section) - R_X86_64_64 0x3f0 261 .rela.rodata .text (section) - R_X86_64_64 0x3f8 261 .rela.rodata .text (section) - R_X86_64_64 0x400 261 .rela.rodata .text (section) - R_X86_64_64 0x408 261 .rela.rodata .text (section) - R_X86_64_64 0x410 261 .rela.rodata .text (section) - R_X86_64_64 0x418 261 .rela.rodata .text (section) - R_X86_64_64 0x420 261 .rela.rodata .text (section) - R_X86_64_64 0x428 261 .rela.rodata .text (section) - R_X86_64_64 0x430 261 .rela.rodata .text (section) - R_X86_64_64 0x438 261 .rela.rodata .text (section) - R_X86_64_64 0x440 261 .rela.rodata .text (section) - R_X86_64_64 0x448 261 .rela.rodata .text (section) - R_X86_64_64 0x450 261 .rela.rodata .text (section) - R_X86_64_64 0x458 261 .rela.rodata .text (section) - R_X86_64_64 0x460 261 .rela.rodata .text (section) - R_X86_64_64 0x468 261 .rela.rodata .text (section) - R_X86_64_64 0x470 261 .rela.rodata .text (section) - R_X86_64_64 0x478 250 .rela.rodata .text (section) - R_X86_64_64 0x480 261 .rela.rodata .text (section) - R_X86_64_64 0x488 301 .rela.rodata .text (section) - R_X86_64_64 0x490 301 .rela.rodata .text (section) - R_X86_64_64 0x498 178 .rela.rodata .text (section) - R_X86_64_64 0x4a0 995 .rela.rodata .text (section) - R_X86_64_64 0x4a8 712 .rela.rodata .text (section) - R_X86_64_64 0x4b0 712 .rela.rodata .text (section) - R_X86_64_64 0x4b8 712 .rela.rodata .text (section) - R_X86_64_64 0x4c0 712 .rela.rodata .text (section) - R_X86_64_64 0x4c8 976 .rela.rodata .text (section) - R_X86_64_64 0x4d0 976 .rela.rodata .text (section) - R_X86_64_64 0x4d8 958 .rela.rodata .text (section) - R_X86_64_64 0x4e0 958 .rela.rodata .text (section) - R_X86_64_64 0x4e8 940 .rela.rodata .text (section) - R_X86_64_64 0x4f0 940 .rela.rodata .text (section) - R_X86_64_64 0x4f8 922 .rela.rodata .text (section) - R_X86_64_64 0x500 922 .rela.rodata .text (section) - R_X86_64_64 0x508 864 .rela.rodata .text (section) - R_X86_64_64 0x510 864 .rela.rodata .text (section) - R_X86_64_64 0x518 712 .rela.rodata .text (section) - R_X86_64_64 0x520 712 .rela.rodata .text (section) - R_X86_64_64 0x528 712 .rela.rodata .text (section) - R_X86_64_64 0x530 976 .rela.rodata .text (section) - R_X86_64_64 0x538 712 .rela.rodata .text (section) - R_X86_64_64 0x540 712 .rela.rodata .text (section) - R_X86_64_64 0x548 712 .rela.rodata .text (section) - R_X86_64_64 0x550 712 .rela.rodata .text (section) - R_X86_64_64 0x558 712 .rela.rodata .text (section) - R_X86_64_64 0x560 712 .rela.rodata .text (section) - R_X86_64_64 0x568 712 .rela.rodata .text (section) - R_X86_64_64 0x570 712 .rela.rodata .text (section) - R_X86_64_64 0x578 712 .rela.rodata .text (section) - R_X86_64_64 0x580 712 .rela.rodata .text (section) - R_X86_64_64 0x588 712 .rela.rodata .text (section) - R_X86_64_64 0x590 712 .rela.rodata .text (section) - R_X86_64_64 0x598 712 .rela.rodata .text (section) - R_X86_64_64 0x5a0 864 .rela.rodata .text (section) - R_X86_64_64 0x5a8 712 .rela.rodata .text (section) - R_X86_64_64 0x5b0 712 .rela.rodata .text (section) - R_X86_64_64 0x5b8 712 .rela.rodata .text (section) - R_X86_64_64 0x5c0 712 .rela.rodata .text (section) - R_X86_64_64 0x5c8 958 .rela.rodata .text (section) - R_X86_64_64 0x5d0 712 .rela.rodata .text (section) - R_X86_64_64 0x5d8 712 .rela.rodata .text (section) - R_X86_64_64 0x5e0 712 .rela.rodata .text (section) - R_X86_64_64 0x5e8 712 .rela.rodata .text (section) - R_X86_64_64 0x5f0 712 .rela.rodata .text (section) - R_X86_64_64 0x5f8 712 .rela.rodata .text (section) - R_X86_64_64 0x600 958 .rela.rodata .text (section) - R_X86_64_64 0x608 712 .rela.rodata .text (section) - R_X86_64_64 0x610 712 .rela.rodata .text (section) - R_X86_64_64 0x618 712 .rela.rodata .text (section) - R_X86_64_64 0x620 712 .rela.rodata .text (section) - R_X86_64_64 0x628 712 .rela.rodata .text (section) - R_X86_64_64 0x630 712 .rela.rodata .text (section) - R_X86_64_64 0x638 712 .rela.rodata .text (section) - R_X86_64_64 0x640 712 .rela.rodata .text (section) - R_X86_64_64 0x648 712 .rela.rodata .text (section) - R_X86_64_64 0x650 712 .rela.rodata .text (section) - R_X86_64_64 0x658 712 .rela.rodata .text (section) - R_X86_64_64 0x660 712 .rela.rodata .text (section) - R_X86_64_64 0x668 712 .rela.rodata .text (section) - R_X86_64_64 0x670 712 .rela.rodata .text (section) - R_X86_64_64 0x678 712 .rela.rodata .text (section) - R_X86_64_64 0x680 712 .rela.rodata .text (section) - R_X86_64_64 0x688 712 .rela.rodata .text (section) - R_X86_64_64 0x690 712 .rela.rodata .text (section) - R_X86_64_64 0x698 712 .rela.rodata .text (section) - R_X86_64_64 0x6a0 712 .rela.rodata .text (section) - R_X86_64_64 0x6a8 712 .rela.rodata .text (section) - R_X86_64_64 0x6b0 712 .rela.rodata .text (section) - R_X86_64_64 0x6b8 712 .rela.rodata .text (section) - R_X86_64_64 0x6c0 712 .rela.rodata .text (section) - R_X86_64_64 0x6c8 712 .rela.rodata .text (section) - R_X86_64_64 0x6d0 712 .rela.rodata .text (section) - R_X86_64_64 0x6d8 712 .rela.rodata .text (section) - R_X86_64_64 0x6e0 712 .rela.rodata .text (section) - R_X86_64_64 0x6e8 712 .rela.rodata .text (section) - R_X86_64_64 0x6f0 712 .rela.rodata .text (section) - R_X86_64_64 0x6f8 712 .rela.rodata .text (section) - R_X86_64_64 0x700 712 .rela.rodata .text (section) - R_X86_64_64 0x708 712 .rela.rodata .text (section) - R_X86_64_64 0x710 712 .rela.rodata .text (section) - R_X86_64_64 0x718 712 .rela.rodata .text (section) - R_X86_64_64 0x720 712 .rela.rodata .text (section) - R_X86_64_64 0x728 712 .rela.rodata .text (section) - R_X86_64_64 0x730 712 .rela.rodata .text (section) - R_X86_64_64 0x738 712 .rela.rodata .text (section) - R_X86_64_64 0x740 712 .rela.rodata .text (section) - R_X86_64_64 0x748 712 .rela.rodata .text (section) - R_X86_64_64 0x750 712 .rela.rodata .text (section) - R_X86_64_64 0x758 712 .rela.rodata .text (section) - R_X86_64_64 0x760 712 .rela.rodata .text (section) - R_X86_64_64 0x768 712 .rela.rodata .text (section) - R_X86_64_64 0x770 712 .rela.rodata .text (section) - R_X86_64_64 0x778 712 .rela.rodata .text (section) - R_X86_64_64 0x780 712 .rela.rodata .text (section) - R_X86_64_64 0x788 712 .rela.rodata .text (section) - R_X86_64_64 0x790 712 .rela.rodata .text (section) - R_X86_64_64 0x798 712 .rela.rodata .text (section) - R_X86_64_64 0x7a0 712 .rela.rodata .text (section) - R_X86_64_64 0x7a8 712 .rela.rodata .text (section) - R_X86_64_64 0x7b0 712 .rela.rodata .text (section) - R_X86_64_64 0x7b8 712 .rela.rodata .text (section) - R_X86_64_64 0x7c0 712 .rela.rodata .text (section) - R_X86_64_64 0x7c8 712 .rela.rodata .text (section) - R_X86_64_64 0x7d0 712 .rela.rodata .text (section) - R_X86_64_64 0x7d8 712 .rela.rodata .text (section) - R_X86_64_64 0x7e0 712 .rela.rodata .text (section) - R_X86_64_64 0x7e8 712 .rela.rodata .text (section) - R_X86_64_64 0x7f0 712 .rela.rodata .text (section) - R_X86_64_64 0x7f8 712 .rela.rodata .text (section) - R_X86_64_64 0x800 712 .rela.rodata .text (section) - R_X86_64_64 0x808 864 .rela.rodata .text (section) - R_X86_64_64 0x810 864 .rela.rodata .text (section) - R_X86_64_64 0x818 864 .rela.rodata .text (section) - R_X86_64_64 0x820 864 .rela.rodata .text (section) - R_X86_64_64 0x828 864 .rela.rodata .text (section) - R_X86_64_64 0x830 864 .rela.rodata .text (section) - R_X86_64_64 0x838 864 .rela.rodata .text (section) - R_X86_64_64 0x840 864 .rela.rodata .text (section) - R_X86_64_64 0x848 864 .rela.rodata .text (section) - R_X86_64_64 0x850 864 .rela.rodata .text (section) - R_X86_64_64 0x858 864 .rela.rodata .text (section) - R_X86_64_64 0x860 864 .rela.rodata .text (section) - R_X86_64_64 0x868 864 .rela.rodata .text (section) - R_X86_64_64 0x870 864 .rela.rodata .text (section) - R_X86_64_64 0x878 864 .rela.rodata .text (section) - R_X86_64_64 0x880 864 .rela.rodata .text (section) - R_X86_64_64 0x888 864 .rela.rodata .text (section) - R_X86_64_64 0x890 864 .rela.rodata .text (section) - R_X86_64_64 0x898 864 .rela.rodata .text (section) - R_X86_64_64 0x8a0 864 .rela.rodata .text (section) - R_X86_64_64 0x8a8 864 .rela.rodata .text (section) - R_X86_64_64 0x8b0 864 .rela.rodata .text (section) - R_X86_64_64 0x8b8 864 .rela.rodata .text (section) - R_X86_64_64 0x8c0 864 .rela.rodata .text (section) - R_X86_64_64 0x8c8 864 .rela.rodata .text (section) - R_X86_64_64 0x8d0 864 .rela.rodata .text (section) - R_X86_64_64 0x8d8 864 .rela.rodata .text (section) - R_X86_64_64 0x8e0 864 .rela.rodata .text (section) - R_X86_64_64 0x8e8 864 .rela.rodata .text (section) - R_X86_64_64 0x8f0 864 .rela.rodata .text (section) - R_X86_64_64 0x8f8 864 .rela.rodata .text (section) - R_X86_64_64 0x900 864 .rela.rodata .text (section) - R_X86_64_64 0x908 864 .rela.rodata .text (section) - R_X86_64_64 0x910 864 .rela.rodata .text (section) - R_X86_64_64 0x918 889 .rela.rodata .text (section) - R_X86_64_64 0x920 864 .rela.rodata .text (section) - R_X86_64_64 0x928 976 .rela.rodata .text (section) - R_X86_64_64 0x930 976 .rela.rodata .text (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 96 .rela.eh_frame .text (section) - R_X86_64_32 0x50 144 .rela.eh_frame .text (section) - R_X86_64_32 0x80 336 .rela.eh_frame .text (section) - R_X86_64_32 0x98 432 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_init.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32S 0x353 416 .rela.text .rodata (section) - R_X86_64_32S 0x393 0 .rela.text .rodata (section) - R_X86_64_PC32 0x3a4 -4 .rela.text .bss (section) - R_X86_64_PC32 0x3c0 -4 .rela.text dwarf_attrval_add - R_X86_64_PC32 0x3d3 -4 .rela.text .bss (section) - R_X86_64_PC32 0x3fe -4 .rela.text .bss (section) - R_X86_64_PC32 0x411 -4 .rela.text .bss (section) - R_X86_64_PC32 0x429 -4 .rela.text .bss (section) - R_X86_64_PC32 0x444 -4 .rela.text .bss (section) - R_X86_64_PC32 0x4bb -4 .rela.text .bss (section) - R_X86_64_PC32 0x4d2 -4 .rela.text elf_strptr - R_X86_64_PC32 0x518 -4 .rela.text .bss (section) - R_X86_64_PC32 0x565 -4 .rela.text .bss (section) - R_X86_64_PC32 0x5dd -4 .rela.text .bss (section) - R_X86_64_PC32 0x639 -4 .rela.text calloc - R_X86_64_PC32 0x67c -4 .rela.text gelf_getehdr - R_X86_64_PC32 0x697 -8 .rela.text .bss (section) - R_X86_64_32S 0x69b 0 .rela.text .text (section) - R_X86_64_PC32 0x6a2 0 .rela.text .bss (section) - R_X86_64_32S 0x6a6 368 .rela.text .text (section) - R_X86_64_PC32 0x6b2 -4 .rela.text elf_getshstrndx - R_X86_64_PC32 0x6c8 -4 .rela.text elf_nextscn - R_X86_64_PC32 0x6e4 -4 .rela.text gelf_getshdr - R_X86_64_PC32 0x700 -4 .rela.text elf_strptr - R_X86_64_32S 0x723 224 .rela.text .rodata (section) - R_X86_64_PC32 0x72b -4 .rela.text strcmp - R_X86_64_PC32 0x756 -4 .rela.text elf_ndxscn - R_X86_64_PC32 0x7d4 -4 .rela.text elf_getdata - R_X86_64_PC32 0x7f7 -4 .rela.text elf_errno - R_X86_64_32S 0x7ff 368 .rela.text .rodata (section) - R_X86_64_32S 0x842 195 .rela.text .rodata (section) - R_X86_64_32S 0x86e 195 .rela.text .rodata (section) - R_X86_64_PC32 0x88f -4 .rela.text elf_errno - R_X86_64_32S 0x897 368 .rela.text .rodata (section) - R_X86_64_PC32 0x8b4 -8 .rela.text .bss (section) - R_X86_64_32S 0x8b8 160 .rela.text .text (section) - R_X86_64_PC32 0x8bf 0 .rela.text .bss (section) - R_X86_64_32S 0x8c3 496 .rela.text .text (section) - R_X86_64_PC32 0x921 -4 .rela.text calloc - R_X86_64_PC32 0x954 -4 .rela.text .bss (section) - R_X86_64_PC32 0x9e5 -4 .rela.text .bss (section) - R_X86_64_PC32 0xa03 -4 .rela.text .bss (section) - R_X86_64_PC32 0xa22 -4 .rela.text .bss (section) - R_X86_64_PC32 0xb3c -4 .rela.text .bss (section) - R_X86_64_PC32 0xb58 -4 .rela.text dwarf_abbrev_add - R_X86_64_PC32 0xbb1 -4 .rela.text dwarf_attr_add - R_X86_64_PC32 0xbc8 -4 .rela.text elf_nextscn - R_X86_64_PC32 0xbe1 -4 .rela.text gelf_getshdr - R_X86_64_PC32 0xc33 -4 .rela.text elf_getdata - R_X86_64_PC32 0xc92 4 .rela.text .bss (section) - R_X86_64_PC32 0xcab -4 .rela.text gelf_getrela - R_X86_64_PC32 0xcd1 -4 .rela.text gelf_getsym - R_X86_64_32 0xcde 0 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0xce3 -4 .rela.text printf - R_X86_64_PC32 0xcf7 -4 .rela.text elf_errno - R_X86_64_32S 0xcff 368 .rela.text .rodata (section) - R_X86_64_PC32 0xd27 -4 .rela.text elf_errno - R_X86_64_32S 0xd2f 368 .rela.text .rodata (section) - R_X86_64_PC32 0xd57 -4 .rela.text elf_errno - R_X86_64_32S 0xd5f 368 .rela.text .rodata (section) - R_X86_64_32S 0xd92 368 .rela.text .rodata (section) - R_X86_64_PC32 0xe09 -4 .rela.text dwarf_abbrev_find - R_X86_64_PC32 0xe3a -4 .rela.text dwarf_die_add - R_X86_64_PC32 0xef1 -4 .rela.text elf_errno - R_X86_64_32S 0xef9 400 .rela.text .rodata (section) - R_X86_64_PC32 0xf37 -4 .rela.text .bss (section) - R_X86_64_PC32 0xf5b -4 .rela.text elf_errno - R_X86_64_32S 0xf63 400 .rela.text .rodata (section) - R_X86_64_32S 0xf96 384 .rela.text .rodata (section) - R_X86_64_PC32 0xfb6 -4 .rela.text free - R_X86_64_32S 0xfcd 384 .rela.text .rodata (section) - R_X86_64_32S 0xffc 384 .rela.text .rodata (section) - R_X86_64_32S 0x102b 384 .rela.text .rodata (section) - R_X86_64_PC32 0x107c -4 .rela.text __stack_chk_guard - R_X86_64_PC32 0x10b1 -4 .rela.text elf_version - R_X86_64_PC32 0x10c8 -4 .rela.text elf_begin - R_X86_64_PC32 0x10e5 -4 .rela.text dwarf_elf_init - R_X86_64_PC32 0x1113 -4 .rela.text dwarf_finish - R_X86_64_PC32 0x1122 -4 .rela.text __stack_chk_guard - R_X86_64_32S 0x1177 184 .rela.text .rodata (section) - R_X86_64_PC32 0x1195 -4 .rela.text elf_errno - R_X86_64_32S 0x119d 184 .rela.text .rodata (section) - R_X86_64_PC32 0x11c1 -4 .rela.text elf_errno - R_X86_64_32S 0x11c9 184 .rela.text .rodata (section) - R_X86_64_PC32 0x11e1 -4 .rela.text __stack_chk_fail - R_X86_64_PC32 0x11e9 -4 .rela.text elf_end - -Relocation Section: .rela.rodata - type offset addend section with respect to - R_X86_64_64 0 827 .rela.rodata .text (section) - R_X86_64_64 0x8 919 .rela.rodata .text (section) - R_X86_64_64 0x10 827 .rela.rodata .text (section) - R_X86_64_64 0x18 966 .rela.rodata .text (section) - R_X86_64_64 0x20 1009 .rela.rodata .text (section) - R_X86_64_64 0x28 1028 .rela.rodata .text (section) - R_X86_64_64 0x30 1052 .rela.rodata .text (section) - R_X86_64_64 0x38 1079 .rela.rodata .text (section) - R_X86_64_64 0x40 1106 .rela.rodata .text (section) - R_X86_64_64 0x48 1184 .rela.rodata .text (section) - R_X86_64_64 0x50 1488 .rela.rodata .text (section) - R_X86_64_64 0x58 1368 .rela.rodata .text (section) - R_X86_64_64 0x60 1368 .rela.rodata .text (section) - R_X86_64_64 0x68 1395 .rela.rodata .text (section) - R_X86_64_64 0x70 1200 .rela.rodata .text (section) - R_X86_64_64 0x78 1248 .rela.rodata .text (section) - R_X86_64_64 0x80 1269 .rela.rodata .text (section) - R_X86_64_64 0x88 1368 .rela.rodata .text (section) - R_X86_64_64 0x90 1028 .rela.rodata .text (section) - R_X86_64_64 0x98 1052 .rela.rodata .text (section) - R_X86_64_64 0xa0 1079 .rela.rodata .text (section) - R_X86_64_64 0xa8 1248 .rela.rodata .text (section) - R_X86_64_64 0xb0 1318 .rela.rodata .text (section) - R_X86_64_64 0xe0 0 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0xe8 14 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0xf0 29 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0xf8 42 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x100 54 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x108 66 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x110 82 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x118 92 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x120 107 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x128 118 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x130 129 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x138 145 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x140 159 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x148 178 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x150 197 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x158 210 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x160 227 .rela.rodata .rodata.str1.1 (section) - R_X86_64_64 0x168 235 .rela.rodata .rodata.str1.1 (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 160 .rela.eh_frame .text (section) - R_X86_64_32 0x50 368 .rela.eh_frame .text (section) - R_X86_64_32 0x68 496 .rela.eh_frame .text (section) - R_X86_64_32 0x80 608 .rela.eh_frame .text (section) - R_X86_64_32 0x98 672 .rela.eh_frame .text (section) - R_X86_64_32 0xb0 704 .rela.eh_frame .text (section) - R_X86_64_32 0xd8 1520 .rela.eh_frame .text (section) - R_X86_64_32 0x110 4176 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_form.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32S 0x38 0 .rela.text .rodata (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_finish.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_PC32 0xb1 -4 .rela.text free - R_X86_64_PC32 0xd7 -4 .rela.text free - R_X86_64_PC32 0x110 -4 .rela.text free - R_X86_64_PC32 0x16d -4 .rela.text free - R_X86_64_PC32 0x193 -4 .rela.text free - R_X86_64_PC32 0x1d0 -4 .rela.text free - R_X86_64_PC32 0x21c -4 .rela.text free - R_X86_64_PC32 0x235 -4 .rela.text elf_end - R_X86_64_PC32 0x23d -4 .rela.text free - R_X86_64_PC32 0x267 -4 .rela.text free - R_X86_64_PC32 0x2a3 -4 .rela.text free - R_X86_64_32S 0x33f 0 .rela.text .rodata (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_errno.o): - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_dealloc.o): - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_attrval.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_PC32 0x88 -4 .rela.text dwarf_attrval_find - R_X86_64_PC32 0xa9 -4 .rela.text get_form_desc - R_X86_64_32 0xb9 0 .rela.text .rodata (section) - R_X86_64_32 0xbe 0 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0xc5 -4 .rela.text printf - R_X86_64_32S 0xdf 0 .rela.text .rodata (section) - R_X86_64_32S 0x126 0 .rela.text .rodata (section) - R_X86_64_32S 0x153 0 .rela.text .rodata (section) - R_X86_64_PC32 0x191 -4 .rela.text dwarf_attrval_find - R_X86_64_PC32 0x1c5 -4 .rela.text dwarf_die_find - R_X86_64_PC32 0x1d5 -4 .rela.text dwarf_attrval_find - R_X86_64_32S 0x1fb 0 .rela.text .rodata (section) - R_X86_64_PC32 0x213 -4 .rela.text get_form_desc - R_X86_64_32 0x223 0 .rela.text .rodata (section) - R_X86_64_32 0x228 0 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x22f -4 .rela.text printf - R_X86_64_32S 0x249 0 .rela.text .rodata (section) - R_X86_64_PC32 0x2a4 -4 .rela.text dwarf_attrval_find - R_X86_64_PC32 0x2cd -4 .rela.text get_form_desc - R_X86_64_32 0x2dd 32 .rela.text .rodata (section) - R_X86_64_32 0x2e2 0 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x2e9 -4 .rela.text printf - R_X86_64_32S 0x303 32 .rela.text .rodata (section) - R_X86_64_32S 0x33b 32 .rela.text .rodata (section) - R_X86_64_32S 0x35f 32 .rela.text .rodata (section) - R_X86_64_PC32 0x3ce -4 .rela.text dwarf_attrval_find - R_X86_64_PC32 0x3fa -4 .rela.text get_form_desc - R_X86_64_32 0x40a 64 .rela.text .rodata (section) - R_X86_64_32 0x40f 0 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x416 -4 .rela.text printf - R_X86_64_32S 0x430 64 .rela.text .rodata (section) - R_X86_64_32S 0x469 64 .rela.text .rodata (section) - R_X86_64_32S 0x4b0 64 .rela.text .rodata (section) - R_X86_64_PC32 0x513 -4 .rela.text dwarf_attrval_find - R_X86_64_PC32 0x532 -4 .rela.text get_form_desc - R_X86_64_32 0x542 96 .rela.text .rodata (section) - R_X86_64_32 0x547 0 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x54e -4 .rela.text printf - R_X86_64_32S 0x568 96 .rela.text .rodata (section) - R_X86_64_32S 0x5a6 96 .rela.text .rodata (section) - R_X86_64_32S 0x5ca 96 .rela.text .rodata (section) - R_X86_64_PC32 0x61a -4 .rela.text malloc - R_X86_64_32S 0x63c 128 .rela.text .rodata (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 48 .rela.eh_frame .text (section) - R_X86_64_32 0x58 608 .rela.eh_frame .text (section) - R_X86_64_32 0x78 896 .rela.eh_frame .text (section) - R_X86_64_32 0x98 1232 .rela.eh_frame .text (section) - R_X86_64_32 0xb8 1520 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_attr.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32S 0x5b 15 .rela.text .rodata (section) - R_X86_64_32S 0x88 15 .rela.text .rodata (section) - R_X86_64_32S 0xf0 0 .rela.text .rodata (section) - R_X86_64_PC32 0x124 -4 .rela.text malloc - R_X86_64_32S 0x146 0 .rela.text .rodata (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 160 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_abbrev.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_PC32 0x6a -4 .rela.text malloc - R_X86_64_32S 0x8c 0 .rela.text .rodata (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 48 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_dump.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32 0x4 172 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x10 228 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1f 268 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2f 176 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x41 13 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x47 243 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x56 0 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x62 142 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x72 155 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x7e 32 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x87 64 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x93 104 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x9f 136 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0xa8 30 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0xb4 58 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0xc0 79 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0xc6 21 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0xd2 293 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0xe3 0 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0xfc 199 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x105 100 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x119 126 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x126 341 .rela.text .rodata.str1.1 (section) - R_X86_64_32S 0x135 0 .rela.text .rodata (section) - R_X86_64_32 0x13a 314 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x140 1370 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x146 1345 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x14c 1326 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x152 1297 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x158 1207 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x15e 1169 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x164 1141 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x16a 1076 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x170 1041 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x176 1000 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x17c 873 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x182 846 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x188 829 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x18e 814 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x194 799 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x19a 745 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1a0 695 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1a6 679 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1ac 663 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1b2 645 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1b8 618 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1be 606 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1c4 503 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1ca 438 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1d0 421 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1d6 401 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1dc 381 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1e2 359 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1e8 1308 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1ee 1241 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1f4 1189 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x1fa 1123 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x200 1106 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x206 1091 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x20c 982 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x212 921 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x218 908 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x21e 713 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x224 584 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x22a 566 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x230 551 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x236 528 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x23c 1259 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x242 895 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x248 1387 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x24e 762 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x254 733 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x25a 1017 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x260 939 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x266 859 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x26c 969 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x272 1225 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x278 780 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x27e 472 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x284 455 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x28a 487 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x290 1279 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x296 1061 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x29c 1030 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2a2 954 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2a8 1155 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2b6 341 .rela.text .rodata.str1.1 (section) - R_X86_64_32S 0x2c5 624 .rela.text .rodata (section) - R_X86_64_32 0x2ca 1559 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2d0 1645 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2d6 1615 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2dc 1602 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2e2 1589 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2e8 1576 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2ee 1628 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2f4 1404 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x2fa 1692 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x300 1663 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x306 1546 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x30c 1490 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x312 1445 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x318 1431 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x31e 1677 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x324 1532 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x32a 1518 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x330 1504 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x336 1475 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x33c 1460 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x342 1418 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x356 1722 .rela.text .rodata.str1.1 (section) - R_X86_64_32S 0x365 808 .rela.text .rodata (section) - R_X86_64_32 0x36a 2468 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x370 1896 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x376 2120 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x37c 2343 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x382 2689 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x388 2097 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x38e 2307 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x394 2186 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x39a 2431 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3a0 1947 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3a6 2764 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3ac 2713 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3b2 2744 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3b8 2609 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3be 2590 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3c4 248 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x3ca 216 .rela.text .rodata.str1.8 (section) - R_X86_64_32 0x3d0 2528 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3d6 2324 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3dc 2286 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3e2 2270 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3e8 2055 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3ee 2013 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3f4 1931 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x3fa 1913 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x400 1795 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x406 1778 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x40c 1734 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x412 1705 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x418 2546 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x41e 2452 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x424 2383 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x42a 2256 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x430 2160 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x436 2141 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x43c 1852 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x442 1832 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x448 2729 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x44e 2659 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x454 2641 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x45a 2626 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x460 2567 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x466 2506 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x46c 2487 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x472 1876 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x478 2409 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x47e 2363 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x484 2242 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x48a 2221 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x490 2208 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x496 2069 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x49c 2031 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x4a2 1989 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x4a8 1970 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x4ae 1814 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x4b4 1760 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x4ca 280 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x4d3 -4 .rela.text puts - R_X86_64_32 0x4fc 2789 .rela.text .rodata.str1.1 (section) - R_X86_64_32 0x501 2785 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x50a -4 .rela.text get_tag_desc - R_X86_64_32 0x51b 2792 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x520 -4 .rela.text printf - R_X86_64_PC32 0x535 -4 .rela.text get_form_desc - R_X86_64_PC32 0x541 -4 .rela.text get_attr_desc - R_X86_64_32 0x54c 2818 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x553 -4 .rela.text printf - R_X86_64_32 0x59a 336 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x5a3 -4 .rela.text puts - R_X86_64_PC32 0x5b4 -4 .rela.text gelf_getsym - R_X86_64_PC32 0x5cd -4 .rela.text elf_strptr - R_X86_64_32 0x5e4 424 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x5eb -4 .rela.text printf - R_X86_64_32 0x5fc 384 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x601 -4 .rela.text printf - R_X86_64_32 0x616 472 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x61f -4 .rela.text puts - R_X86_64_32 0x62b 2834 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x632 -4 .rela.text printf - R_X86_64_PC32 0x63a -4 .rela.text strlen - R_X86_64_PC32 0x652 -4 .rela.text elf_strptr - R_X86_64_32 0x676 528 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x67f -4 .rela.text puts - R_X86_64_32 0x68b 2834 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x692 -4 .rela.text printf - R_X86_64_PC32 0x69a -4 .rela.text strlen - R_X86_64_PC32 0x6b2 -4 .rela.text elf_strptr - R_X86_64_32 0x6d6 576 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x6df -4 .rela.text puts - R_X86_64_32 0x6eb 2834 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x6f2 -4 .rela.text printf - R_X86_64_PC32 0x6fa -4 .rela.text strlen - R_X86_64_PC32 0x70f -4 .rela.text elf_strptr - R_X86_64_32 0x72b 2844 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x732 -4 .rela.text printf - R_X86_64_32 0x754 2852 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x75d -4 .rela.text printf - R_X86_64_32 0x777 2856 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x780 -4 .rela.text printf - R_X86_64_PC32 0x78f -4 .rela.text putchar - R_X86_64_32 0x7b1 2862 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x7b8 -4 .rela.text printf - R_X86_64_32 0x7c6 2852 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x7cf -4 .rela.text printf - R_X86_64_32 0x7e9 2856 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x7f2 -4 .rela.text printf - R_X86_64_PC32 0x801 -4 .rela.text putchar - R_X86_64_PC32 0x83e -4 .rela.text get_form_desc - R_X86_64_PC32 0x84a -4 .rela.text get_attr_desc - R_X86_64_32 0x855 2869 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x85c -4 .rela.text printf - R_X86_64_32 0x868 2928 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x86f -4 .rela.text printf - R_X86_64_32S 0x897 1328 .rela.text .rodata (section) - R_X86_64_32 0x8a5 2918 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x8af -4 .rela.text printf - R_X86_64_32 0x8ba 2890 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x8c1 -4 .rela.text printf - R_X86_64_32 0x8ce 2897 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x8d3 -4 .rela.text printf - R_X86_64_32 0x8e5 2856 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x8f4 -4 .rela.text printf - R_X86_64_32 0x908 2913 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x90f -4 .rela.text printf - R_X86_64_32 0x91d 2925 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x924 -4 .rela.text printf - R_X86_64_32 0x936 640 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x93d -4 .rela.text printf - R_X86_64_PC32 0x962 -4 .rela.text get_tag_desc - R_X86_64_32 0x977 680 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x97c -4 .rela.text printf - R_X86_64_PC32 0x997 -4 .rela.text dwarf_dump_av - R_X86_64_32 0x9b6 720 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x9bf -4 .rela.text puts - R_X86_64_32 0x9d4 760 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0x9db -4 .rela.text printf - R_X86_64_32 0x9e3 2941 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x9ea -4 .rela.text printf - R_X86_64_32 0x9f3 2967 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x9fa -4 .rela.text printf - R_X86_64_32 0xa03 2993 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xa0a -4 .rela.text printf - R_X86_64_32 0xa15 3019 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xa1a -4 .rela.text printf - R_X86_64_PC32 0xa2b -4 .rela.text dwarf_dump_die - R_X86_64_PC32 0xa55 -4 .rela.text dwarf_dump_strtab - R_X86_64_PC32 0xa5d -4 .rela.text dwarf_dump_shstrtab - R_X86_64_PC32 0xa65 -4 .rela.text dwarf_dump_dbgstr - R_X86_64_PC32 0xa6d -4 .rela.text dwarf_dump_symtab - R_X86_64_PC32 0xaae -4 .rela.text dwarf_siblingof - R_X86_64_PC32 0xac2 -4 .rela.text dwarf_dump_die - R_X86_64_PC32 0xad1 -4 .rela.text dwarf_child - R_X86_64_PC32 0xb1e -4 .rela.text __stack_chk_guard - R_X86_64_PC32 0xb5c -4 .rela.text dwarf_siblingof - R_X86_64_32 0xb8c 760 .rela.text .rodata.str1.8 (section) - R_X86_64_PC32 0xb93 -4 .rela.text printf - R_X86_64_32 0xb9b 2941 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xba2 -4 .rela.text printf - R_X86_64_32 0xbab 2967 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xbb2 -4 .rela.text printf - R_X86_64_32 0xbbb 2993 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xbc2 -4 .rela.text printf - R_X86_64_32 0xbcb 3019 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xbd2 -4 .rela.text printf - R_X86_64_PC32 0xbf3 -4 .rela.text dwarf_next_cu_header - R_X86_64_PC32 0xc03 -4 .rela.text dwarf_errmsg - R_X86_64_32 0xc08 3044 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xc12 -4 .rela.text printf - R_X86_64_PC32 0xc21 -4 .rela.text __stack_chk_guard - R_X86_64_PC32 0xc3a -4 .rela.text __stack_chk_fail - R_X86_64_PC32 0x88b -4 .rela.text putchar - R_X86_64_PC32 0xa76 -4 .rela.text dwarf_dump_info - R_X86_64_PC32 0xc73 -4 .rela.text dwarf_dump_die - -Relocation Section: .rela.rodata - type offset addend section with respect to - R_X86_64_64 0 293 .rela.rodata .text (section) - R_X86_64_64 0x8 679 .rela.rodata .text (section) - R_X86_64_64 0x10 673 .rela.rodata .text (section) - R_X86_64_64 0x18 667 .rela.rodata .text (section) - R_X86_64_64 0x20 293 .rela.rodata .text (section) - R_X86_64_64 0x28 293 .rela.rodata .text (section) - R_X86_64_64 0x30 293 .rela.rodata .text (section) - R_X86_64_64 0x38 293 .rela.rodata .text (section) - R_X86_64_64 0x40 293 .rela.rodata .text (section) - R_X86_64_64 0x48 661 .rela.rodata .text (section) - R_X86_64_64 0x50 655 .rela.rodata .text (section) - R_X86_64_64 0x58 649 .rela.rodata .text (section) - R_X86_64_64 0x60 643 .rela.rodata .text (section) - R_X86_64_64 0x68 637 .rela.rodata .text (section) - R_X86_64_64 0x70 293 .rela.rodata .text (section) - R_X86_64_64 0x78 631 .rela.rodata .text (section) - R_X86_64_64 0x80 625 .rela.rodata .text (section) - R_X86_64_64 0x88 619 .rela.rodata .text (section) - R_X86_64_64 0x90 613 .rela.rodata .text (section) - R_X86_64_64 0x98 607 .rela.rodata .text (section) - R_X86_64_64 0xa0 601 .rela.rodata .text (section) - R_X86_64_64 0xa8 595 .rela.rodata .text (section) - R_X86_64_64 0xb0 589 .rela.rodata .text (section) - R_X86_64_64 0xb8 583 .rela.rodata .text (section) - R_X86_64_64 0xc0 577 .rela.rodata .text (section) - R_X86_64_64 0xc8 571 .rela.rodata .text (section) - R_X86_64_64 0xd0 565 .rela.rodata .text (section) - R_X86_64_64 0xd8 559 .rela.rodata .text (section) - R_X86_64_64 0xe0 553 .rela.rodata .text (section) - R_X86_64_64 0xe8 547 .rela.rodata .text (section) - R_X86_64_64 0xf0 541 .rela.rodata .text (section) - R_X86_64_64 0xf8 293 .rela.rodata .text (section) - R_X86_64_64 0x100 535 .rela.rodata .text (section) - R_X86_64_64 0x108 529 .rela.rodata .text (section) - R_X86_64_64 0x110 523 .rela.rodata .text (section) - R_X86_64_64 0x118 293 .rela.rodata .text (section) - R_X86_64_64 0x120 293 .rela.rodata .text (section) - R_X86_64_64 0x128 517 .rela.rodata .text (section) - R_X86_64_64 0x130 293 .rela.rodata .text (section) - R_X86_64_64 0x138 511 .rela.rodata .text (section) - R_X86_64_64 0x140 293 .rela.rodata .text (section) - R_X86_64_64 0x148 293 .rela.rodata .text (section) - R_X86_64_64 0x150 505 .rela.rodata .text (section) - R_X86_64_64 0x158 293 .rela.rodata .text (section) - R_X86_64_64 0x160 499 .rela.rodata .text (section) - R_X86_64_64 0x168 293 .rela.rodata .text (section) - R_X86_64_64 0x170 493 .rela.rodata .text (section) - R_X86_64_64 0x178 487 .rela.rodata .text (section) - R_X86_64_64 0x180 293 .rela.rodata .text (section) - R_X86_64_64 0x188 481 .rela.rodata .text (section) - R_X86_64_64 0x190 475 .rela.rodata .text (section) - R_X86_64_64 0x198 469 .rela.rodata .text (section) - R_X86_64_64 0x1a0 463 .rela.rodata .text (section) - R_X86_64_64 0x1a8 457 .rela.rodata .text (section) - R_X86_64_64 0x1b0 451 .rela.rodata .text (section) - R_X86_64_64 0x1b8 445 .rela.rodata .text (section) - R_X86_64_64 0x1c0 439 .rela.rodata .text (section) - R_X86_64_64 0x1c8 433 .rela.rodata .text (section) - R_X86_64_64 0x1d0 427 .rela.rodata .text (section) - R_X86_64_64 0x1d8 421 .rela.rodata .text (section) - R_X86_64_64 0x1e0 415 .rela.rodata .text (section) - R_X86_64_64 0x1e8 409 .rela.rodata .text (section) - R_X86_64_64 0x1f0 403 .rela.rodata .text (section) - R_X86_64_64 0x1f8 397 .rela.rodata .text (section) - R_X86_64_64 0x200 391 .rela.rodata .text (section) - R_X86_64_64 0x208 385 .rela.rodata .text (section) - R_X86_64_64 0x210 379 .rela.rodata .text (section) - R_X86_64_64 0x218 373 .rela.rodata .text (section) - R_X86_64_64 0x220 367 .rela.rodata .text (section) - R_X86_64_64 0x228 361 .rela.rodata .text (section) - R_X86_64_64 0x230 355 .rela.rodata .text (section) - R_X86_64_64 0x238 349 .rela.rodata .text (section) - R_X86_64_64 0x240 343 .rela.rodata .text (section) - R_X86_64_64 0x248 337 .rela.rodata .text (section) - R_X86_64_64 0x250 331 .rela.rodata .text (section) - R_X86_64_64 0x258 325 .rela.rodata .text (section) - R_X86_64_64 0x260 319 .rela.rodata .text (section) - R_X86_64_64 0x268 313 .rela.rodata .text (section) - R_X86_64_64 0x270 693 .rela.rodata .text (section) - R_X86_64_64 0x278 833 .rela.rodata .text (section) - R_X86_64_64 0x280 693 .rela.rodata .text (section) - R_X86_64_64 0x288 827 .rela.rodata .text (section) - R_X86_64_64 0x290 821 .rela.rodata .text (section) - R_X86_64_64 0x298 815 .rela.rodata .text (section) - R_X86_64_64 0x2a0 809 .rela.rodata .text (section) - R_X86_64_64 0x2a8 803 .rela.rodata .text (section) - R_X86_64_64 0x2b0 797 .rela.rodata .text (section) - R_X86_64_64 0x2b8 791 .rela.rodata .text (section) - R_X86_64_64 0x2c0 785 .rela.rodata .text (section) - R_X86_64_64 0x2c8 779 .rela.rodata .text (section) - R_X86_64_64 0x2d0 773 .rela.rodata .text (section) - R_X86_64_64 0x2d8 767 .rela.rodata .text (section) - R_X86_64_64 0x2e0 761 .rela.rodata .text (section) - R_X86_64_64 0x2e8 755 .rela.rodata .text (section) - R_X86_64_64 0x2f0 749 .rela.rodata .text (section) - R_X86_64_64 0x2f8 743 .rela.rodata .text (section) - R_X86_64_64 0x300 737 .rela.rodata .text (section) - R_X86_64_64 0x308 731 .rela.rodata .text (section) - R_X86_64_64 0x310 725 .rela.rodata .text (section) - R_X86_64_64 0x318 719 .rela.rodata .text (section) - R_X86_64_64 0x320 713 .rela.rodata .text (section) - R_X86_64_64 0x328 853 .rela.rodata .text (section) - R_X86_64_64 0x330 1203 .rela.rodata .text (section) - R_X86_64_64 0x338 1197 .rela.rodata .text (section) - R_X86_64_64 0x340 1191 .rela.rodata .text (section) - R_X86_64_64 0x348 1185 .rela.rodata .text (section) - R_X86_64_64 0x350 1179 .rela.rodata .text (section) - R_X86_64_64 0x358 853 .rela.rodata .text (section) - R_X86_64_64 0x360 853 .rela.rodata .text (section) - R_X86_64_64 0x368 1173 .rela.rodata .text (section) - R_X86_64_64 0x370 853 .rela.rodata .text (section) - R_X86_64_64 0x378 1167 .rela.rodata .text (section) - R_X86_64_64 0x380 1161 .rela.rodata .text (section) - R_X86_64_64 0x388 853 .rela.rodata .text (section) - R_X86_64_64 0x390 1155 .rela.rodata .text (section) - R_X86_64_64 0x398 853 .rela.rodata .text (section) - R_X86_64_64 0x3a0 1149 .rela.rodata .text (section) - R_X86_64_64 0x3a8 1143 .rela.rodata .text (section) - R_X86_64_64 0x3b0 1137 .rela.rodata .text (section) - R_X86_64_64 0x3b8 1131 .rela.rodata .text (section) - R_X86_64_64 0x3c0 1125 .rela.rodata .text (section) - R_X86_64_64 0x3c8 853 .rela.rodata .text (section) - R_X86_64_64 0x3d0 1119 .rela.rodata .text (section) - R_X86_64_64 0x3d8 1113 .rela.rodata .text (section) - R_X86_64_64 0x3e0 1107 .rela.rodata .text (section) - R_X86_64_64 0x3e8 1101 .rela.rodata .text (section) - R_X86_64_64 0x3f0 1095 .rela.rodata .text (section) - R_X86_64_64 0x3f8 1089 .rela.rodata .text (section) - R_X86_64_64 0x400 1083 .rela.rodata .text (section) - R_X86_64_64 0x408 1077 .rela.rodata .text (section) - R_X86_64_64 0x410 1071 .rela.rodata .text (section) - R_X86_64_64 0x418 1065 .rela.rodata .text (section) - R_X86_64_64 0x420 1059 .rela.rodata .text (section) - R_X86_64_64 0x428 1053 .rela.rodata .text (section) - R_X86_64_64 0x430 1047 .rela.rodata .text (section) - R_X86_64_64 0x438 1041 .rela.rodata .text (section) - R_X86_64_64 0x440 1035 .rela.rodata .text (section) - R_X86_64_64 0x448 1029 .rela.rodata .text (section) - R_X86_64_64 0x450 1023 .rela.rodata .text (section) - R_X86_64_64 0x458 1017 .rela.rodata .text (section) - R_X86_64_64 0x460 1011 .rela.rodata .text (section) - R_X86_64_64 0x468 1005 .rela.rodata .text (section) - R_X86_64_64 0x470 853 .rela.rodata .text (section) - R_X86_64_64 0x478 999 .rela.rodata .text (section) - R_X86_64_64 0x480 993 .rela.rodata .text (section) - R_X86_64_64 0x488 987 .rela.rodata .text (section) - R_X86_64_64 0x490 981 .rela.rodata .text (section) - R_X86_64_64 0x498 975 .rela.rodata .text (section) - R_X86_64_64 0x4a0 969 .rela.rodata .text (section) - R_X86_64_64 0x4a8 963 .rela.rodata .text (section) - R_X86_64_64 0x4b0 957 .rela.rodata .text (section) - R_X86_64_64 0x4b8 951 .rela.rodata .text (section) - R_X86_64_64 0x4c0 945 .rela.rodata .text (section) - R_X86_64_64 0x4c8 939 .rela.rodata .text (section) - R_X86_64_64 0x4d0 933 .rela.rodata .text (section) - R_X86_64_64 0x4d8 927 .rela.rodata .text (section) - R_X86_64_64 0x4e0 921 .rela.rodata .text (section) - R_X86_64_64 0x4e8 915 .rela.rodata .text (section) - R_X86_64_64 0x4f0 909 .rela.rodata .text (section) - R_X86_64_64 0x4f8 903 .rela.rodata .text (section) - R_X86_64_64 0x500 897 .rela.rodata .text (section) - R_X86_64_64 0x508 891 .rela.rodata .text (section) - R_X86_64_64 0x510 885 .rela.rodata .text (section) - R_X86_64_64 0x518 853 .rela.rodata .text (section) - R_X86_64_64 0x520 879 .rela.rodata .text (section) - R_X86_64_64 0x528 873 .rela.rodata .text (section) - R_X86_64_64 0x530 2151 .rela.rodata .text (section) - R_X86_64_64 0x538 2229 .rela.rodata .text (section) - R_X86_64_64 0x540 2151 .rela.rodata .text (section) - R_X86_64_64 0x548 2247 .rela.rodata .text (section) - R_X86_64_64 0x550 2247 .rela.rodata .text (section) - R_X86_64_64 0x558 2307 .rela.rodata .text (section) - R_X86_64_64 0x560 2307 .rela.rodata .text (section) - R_X86_64_64 0x568 2307 .rela.rodata .text (section) - R_X86_64_64 0x570 2328 .rela.rodata .text (section) - R_X86_64_64 0x578 2247 .rela.rodata .text (section) - R_X86_64_64 0x580 2247 .rela.rodata .text (section) - R_X86_64_64 0x588 2307 .rela.rodata .text (section) - R_X86_64_64 0x590 2307 .rela.rodata .text (section) - R_X86_64_64 0x598 2151 .rela.rodata .text (section) - R_X86_64_64 0x5a0 2349 .rela.rodata .text (section) - R_X86_64_64 0x5a8 2151 .rela.rodata .text (section) - R_X86_64_64 0x5b0 2151 .rela.rodata .text (section) - R_X86_64_64 0x5b8 2203 .rela.rodata .text (section) - R_X86_64_64 0x5c0 2203 .rela.rodata .text (section) - R_X86_64_64 0x5c8 2203 .rela.rodata .text (section) - R_X86_64_64 0x5d0 2203 .rela.rodata .text (section) - R_X86_64_64 0x5d8 2203 .rela.rodata .text (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 288 .rela.eh_frame .text (section) - R_X86_64_32 0x50 688 .rela.eh_frame .text (section) - R_X86_64_32 0x68 848 .rela.eh_frame .text (section) - R_X86_64_32 0x80 1216 .rela.eh_frame .text (section) - R_X86_64_32 0xa8 1424 .rela.eh_frame .text (section) - R_X86_64_32 0xd0 1552 .rela.eh_frame .text (section) - R_X86_64_32 0xf0 1648 .rela.eh_frame .text (section) - R_X86_64_32 0x110 1744 .rela.eh_frame .text (section) - R_X86_64_32 0x130 1824 .rela.eh_frame .text (section) - R_X86_64_32 0x150 2080 .rela.eh_frame .text (section) - R_X86_64_32 0x170 2384 .rela.eh_frame .text (section) - R_X86_64_32 0x190 2480 .rela.eh_frame .text (section) - R_X86_64_32 0x1b0 2640 .rela.eh_frame .text (section) - R_X86_64_32 0x1c8 2688 .rela.eh_frame .text (section) - R_X86_64_32 0x1f0 2816 .rela.eh_frame .text (section) - R_X86_64_32 0x228 3136 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_die.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32S 0x53 26 .rela.text .rodata (section) - R_X86_64_32S 0x86 26 .rela.text .rodata (section) - R_X86_64_32S 0xde 16 .rela.text .rodata (section) - R_X86_64_32S 0x128 0 .rela.text .rodata (section) - R_X86_64_32S 0x15a 0 .rela.text .rodata (section) - R_X86_64_32S 0x1aa 0 .rela.text .rodata (section) - R_X86_64_32S 0x1e5 0 .rela.text .rodata (section) - R_X86_64_PC32 0x284 -4 .rela.text malloc - R_X86_64_32S 0x2a6 48 .rela.text .rodata (section) - R_X86_64_32S 0x2ee 48 .rela.text .rodata (section) - R_X86_64_PC32 0x31f 36 .rela.text .rodata (section) - -Relocation Section: .rela.rodata - type offset addend section with respect to - R_X86_64_64 0x28 0 .rela.rodata .rodata.str1.1 (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - R_X86_64_32 0x38 16 .rela.eh_frame .text (section) - R_X86_64_32 0x50 160 .rela.eh_frame .text (section) - R_X86_64_32 0x68 240 .rela.eh_frame .text (section) - R_X86_64_32 0x80 512 .rela.eh_frame .text (section) - R_X86_64_32 0x98 560 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_cu.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_32S 0x66 0 .rela.text .rodata (section) - R_X86_64_32S 0x8c 0 .rela.text .rodata (section) - R_X86_64_32S 0xfb 0 .rela.text .rodata (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) - -libdwarf.a(dwarf_errmsg.o): - -Relocation Section: .rela.text - type offset addend section with respect to - R_X86_64_PC32 0x30 -4 .rela.text _libdwarf_errors - R_X86_64_PC32 0x53 108 .rela.text _libdwarf_errors - R_X86_64_32S 0x6a 0 .rela.text _libdwarf_errors - R_X86_64_32 0x7d 24 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0x8c -4 .rela.text snprintf - R_X86_64_PC32 0xa4 -4 .rela.text elf_errmsg - R_X86_64_32 0xb2 0 .rela.text .rodata.str1.1 (section) - R_X86_64_PC32 0xc1 -4 .rela.text snprintf - -Relocation Section: .rela.data - type offset addend section with respect to - R_X86_64_64 0 36 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x8 45 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x10 54 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x18 69 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x20 86 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x28 102 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x30 122 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x38 132 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x40 0 .rela.data .rodata.str1.8 (section) - R_X86_64_64 0x48 162 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x50 179 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x58 201 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x60 48 .rela.data .rodata.str1.8 (section) - R_X86_64_64 0x68 229 .rela.data .rodata.str1.1 (section) - R_X86_64_64 0x70 254 .rela.data .rodata.str1.1 (section) - -Relocation Section: .rela.eh_frame - type offset addend section with respect to - R_X86_64_32 0x20 0 .rela.eh_frame .text (section) diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.out deleted file mode 100644 index 6f2d95e1..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s%libdwarf.a.out +++ /dev/null @@ -1,356 +0,0 @@ - -Symbol Table: (archive) - index offset member name and symbol - [0] 0x000003b4 (dwarf_loc.o):dwarf_op_num - [1] 0x000003b4 (dwarf_loc.o):dwarf_locdesc_free - [2] 0x000003b4 (dwarf_loc.o):dwarf_locdesc - [3] 0x00003828 (dwarf_init.o):dwarf_elf_init - [4] 0x00003828 (dwarf_init.o):dwarf_init - [5] 0x0000670c (dwarf_form.o):dwarf_whatform - [6] 0x00006cd8 (dwarf_finish.o):dwarf_finish - [7] 0x00007714 (dwarf_errno.o):dwarf_errno - [8] 0x00007bb8 (dwarf_dealloc.o):dwarf_dealloc - [9] 0x00008054 (dwarf_attrval.o):dwarf_attrval_find - [10] 0x00008054 (dwarf_attrval.o):dwarf_attrval_unsigned - [11] 0x00008054 (dwarf_attrval.o):dwarf_attrval_signed - [12] 0x00008054 (dwarf_attrval.o):dwarf_attrval_string - [13] 0x00008054 (dwarf_attrval.o):dwarf_attrval_flag - [14] 0x00008054 (dwarf_attrval.o):dwarf_attrval_add - [15] 0x000094e8 (dwarf_attr.o):dwarf_attr - [16] 0x000094e8 (dwarf_attr.o):dwarf_attr_add - [17] 0x00009cfc (dwarf_abbrev.o):dwarf_abbrev_find - [18] 0x00009cfc (dwarf_abbrev.o):dwarf_abbrev_add - [19] 0x0000a428 (dwarf_dump.o):get_sht_desc - [20] 0x0000a428 (dwarf_dump.o):get_attr_desc - [21] 0x0000a428 (dwarf_dump.o):get_form_desc - [22] 0x0000a428 (dwarf_dump.o):get_tag_desc - [23] 0x0000a428 (dwarf_dump.o):dwarf_dump_abbrev - [24] 0x0000a428 (dwarf_dump.o):dwarf_dump_symtab - [25] 0x0000a428 (dwarf_dump.o):dwarf_dump_dbgstr - [26] 0x0000a428 (dwarf_dump.o):dwarf_dump_strtab - [27] 0x0000a428 (dwarf_dump.o):dwarf_dump_shstrtab - [28] 0x0000a428 (dwarf_dump.o):dwarf_dump_raw - [29] 0x0000a428 (dwarf_dump.o):dwarf_dump_av - [30] 0x0000a428 (dwarf_dump.o):dwarf_dump_die - [31] 0x0000a428 (dwarf_dump.o):dwarf_dump_info - [32] 0x0000a428 (dwarf_dump.o):dwarf_dump - [33] 0x0000a428 (dwarf_dump.o):dwarf_dump_tree - [34] 0x0000a428 (dwarf_dump.o):dwarf_dump_die_at_offset - [35] 0x0000ffec (dwarf_die.o):dwarf_dieoffset - [36] 0x0000ffec (dwarf_die.o):dwarf_child - [37] 0x0000ffec (dwarf_die.o):dwarf_tag - [38] 0x0000ffec (dwarf_die.o):dwarf_siblingof - [39] 0x0000ffec (dwarf_die.o):dwarf_die_find - [40] 0x0000ffec (dwarf_die.o):dwarf_die_add - [41] 0x00010d80 (dwarf_cu.o):dwarf_next_cu_header - [42] 0x0001144c (dwarf_errmsg.o):dwarf_errmsg - [43] 0x0001144c (dwarf_errmsg.o):_libdwarf_errors - -libdwarf.a(dwarf_loc.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_loc.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000053 FUNC LOCL D 0 .text dwarf_decode_sleb128 - [6] 0x00000060 0x00000000002c FUNC LOCL D 0 .text dwarf_decode_uleb128 - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [8] 0x00000940 0x000000000013 OBJT LOCL D 0 .rodata __func__.4319 - [9] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [10] 0x00000953 0x00000000000e OBJT LOCL D 0 .rodata __func__.4283 - [11] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [12] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [13] 0x00000090 0x0000000000b7 FUNC GLOB D 0 .text dwarf_op_num - [14] 0x00000150 0x000000000051 FUNC GLOB D 0 .text dwarf_locdesc_free - [15] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF free - [16] 0x000001b0 0x00000000034c FUNC GLOB D 0 .text dwarf_locdesc - [17] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_attrval_find - [18] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF calloc - [19] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF get_form_desc - [20] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - -libdwarf.a(dwarf_init.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_init.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000099 FUNC LOCL D 0 .text dwarf_read_lsb - [6] 0x000000a0 0x0000000000c9 FUNC LOCL D 0 .text dwarf_read_msb - [7] 0x00000170 0x000000000079 FUNC LOCL D 0 .text dwarf_write_lsb - [8] 0x000001f0 0x000000000067 FUNC LOCL D 0 .text dwarf_write_msb - [9] 0x00000260 0x00000000003a FUNC LOCL D 0 .text dwarf_read_uleb128 - [10] 0x000002a0 0x000000000017 FUNC LOCL D 0 .text dwarf_read_block - [11] 0x000002c0 0x000000000326 FUNC LOCL D 0 .text dwarf_init_attr - [12] 0x000001a0 0x000000000010 OBJT LOCL D 0 .rodata __func__.4419 - [13] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [14] 0x00000000 0x000000000008 OBJT LOCL D 0 .bss dwarf_read - [15] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [16] 0x00000008 0x000000000008 OBJT LOCL D 0 .bss dwarf_write - [17] 0x000000e0 0x000000000090 OBJT LOCL D 0 .rodata debug_snames - [18] 0x00000170 0x00000000000f OBJT LOCL D 0 .rodata __func__.4570 - [19] 0x000000c3 0x00000000000f OBJT LOCL D 0 .rodata __func__.4622 - [20] 0x00000190 0x00000000000f OBJT LOCL D 0 .rodata __func__.4362 - [21] 0x00000180 0x000000000010 OBJT LOCL D 0 .rodata __func__.4504 - [22] 0x000000b8 0x00000000000b OBJT LOCL D 0 .rodata __func__.4640 - [23] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [24] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [25] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [26] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_attrval_add - [27] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_strptr - [28] 0x000005f0 0x000000000a51 FUNC GLOB D 0 .text dwarf_elf_init - [29] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF calloc - [30] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getehdr - [31] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_getshstrndx - [32] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_nextscn - [33] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getshdr - [34] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF strcmp - [35] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_ndxscn - [36] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_getdata - [37] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_errno - [38] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_abbrev_add - [39] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_attr_add - [40] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getrela - [41] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getsym - [42] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - [43] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_abbrev_find - [44] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_die_add - [45] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF free - [46] 0x00001050 0x0000000001a5 FUNC GLOB D 0 .text dwarf_init - [47] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_guard - [48] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_version - [49] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_begin - [50] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_finish - [51] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_fail - [52] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_end - -libdwarf.a(dwarf_form.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_form.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000000f OBJT LOCL D 0 .rodata __func__.3546 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x000000000048 FUNC GLOB D 0 .text dwarf_whatform - -libdwarf.a(dwarf_finish.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_finish.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000000d OBJT LOCL D 0 .rodata __func__.3889 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x000000000353 FUNC GLOB D 0 .text dwarf_finish - [10] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF free - [11] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_end - -libdwarf.a(dwarf_errno.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_errno.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x00000000000e FUNC GLOB D 0 .text dwarf_errno - -libdwarf.a(dwarf_dealloc.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_dealloc.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x000000000002 FUNC GLOB D 0 .text dwarf_dealloc - -libdwarf.a(dwarf_attrval.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_attrval.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [6] 0x00000000 0x000000000017 OBJT LOCL D 0 .rodata __func__.4602 - [7] 0x00000020 0x000000000015 OBJT LOCL D 0 .rodata __func__.4578 - [8] 0x00000040 0x000000000015 OBJT LOCL D 0 .rodata __func__.4552 - [9] 0x00000060 0x000000000013 OBJT LOCL D 0 .rodata __func__.4528 - [10] 0x00000080 0x000000000012 OBJT LOCL D 0 .rodata __func__.4507 - [11] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [12] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [13] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [14] 0x00000000 0x000000000026 FUNC GLOB D 0 .text dwarf_attrval_find - [15] 0x00000030 0x00000000022d FUNC GLOB D 0 .text dwarf_attrval_unsigned - [16] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF get_form_desc - [17] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - [18] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_die_find - [19] 0x00000260 0x00000000011c FUNC GLOB D 0 .text dwarf_attrval_signed - [20] 0x00000380 0x000000000144 FUNC GLOB D 0 .text dwarf_attrval_string - [21] 0x000004d0 0x000000000116 FUNC GLOB D 0 .text dwarf_attrval_flag - [22] 0x000005f0 0x0000000000e8 FUNC GLOB D 0 .text dwarf_attrval_add - [23] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_attr.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_attr.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x0000000f 0x00000000000b OBJT LOCL D 0 .rodata __func__.4056 - [6] 0x00000000 0x00000000000f OBJT LOCL D 0 .rodata __func__.4077 - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [9] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [10] 0x00000000 0x00000000009e FUNC GLOB D 0 .text dwarf_attr - [11] 0x000000a0 0x0000000000e1 FUNC GLOB D 0 .text dwarf_attr_add - [12] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_abbrev.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_abbrev.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000011 OBJT LOCL D 0 .rodata __func__.3884 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x000000000026 FUNC GLOB D 0 .text dwarf_abbrev_find - [10] 0x00000030 0x0000000000ce FUNC GLOB D 0 .text dwarf_abbrev_add - [11] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_dump.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_dump.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [8] 0x00000a80 0x00000000007b FUNC LOCL D 0 .text dwarf_dump_tree_dies - [9] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [10] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [11] 0x00000000 0x00000000011e FUNC GLOB D 0 .text get_sht_desc - [12] 0x00000120 0x00000000018d FUNC GLOB D 0 .text get_attr_desc - [13] 0x000002b0 0x000000000097 FUNC GLOB D 0 .text get_form_desc - [14] 0x00000350 0x000000000169 FUNC GLOB D 0 .text get_tag_desc - [15] 0x000004c0 0x0000000000c5 FUNC GLOB D 0 .text dwarf_dump_abbrev - [16] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF puts - [17] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - [18] 0x00000590 0x000000000080 FUNC GLOB D 0 .text dwarf_dump_symtab - [19] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getsym - [20] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_strptr - [21] 0x00000610 0x000000000053 FUNC GLOB D 0 .text dwarf_dump_dbgstr - [22] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF strlen - [23] 0x00000670 0x000000000053 FUNC GLOB D 0 .text dwarf_dump_strtab - [24] 0x000006d0 0x000000000050 FUNC GLOB D 0 .text dwarf_dump_shstrtab - [25] 0x00000720 0x0000000000f7 FUNC GLOB D 0 .text dwarf_dump_raw - [26] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF putchar - [27] 0x00000820 0x000000000126 FUNC GLOB D 0 .text dwarf_dump_av - [28] 0x00000950 0x00000000005b FUNC GLOB D 0 .text dwarf_dump_die - [29] 0x000009b0 0x00000000009b FUNC GLOB D 0 .text dwarf_dump_info - [30] 0x00000a50 0x00000000002a FUNC GLOB D 0 .text dwarf_dump - [31] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_siblingof - [32] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_child - [33] 0x00000b00 0x00000000013e FUNC GLOB D 0 .text dwarf_dump_tree - [34] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_guard - [35] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_next_cu_header - [36] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_errmsg - [37] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_fail - [38] 0x00000c40 0x000000000045 FUNC GLOB D 0 .text dwarf_dump_die_at_offset - -libdwarf.a(dwarf_die.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_die.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x0000001a 0x00000000000c OBJT LOCL D 0 .rodata __func__.3918 - [6] 0x00000010 0x00000000000a OBJT LOCL D 0 .rodata __func__.3935 - [7] 0x00000000 0x000000000010 OBJT LOCL D 0 .rodata __func__.3953 - [8] 0x00000030 0x00000000000e OBJT LOCL D 0 .rodata __func__.3887 - [9] 0x00000028 0x000000000008 OBJT LOCL D 0 .rodata anon_name - [10] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [11] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [12] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [13] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [14] 0x00000000 0x00000000000a FUNC GLOB D 0 .text dwarf_dieoffset - [15] 0x00000010 0x000000000086 FUNC GLOB D 0 .text dwarf_child - [16] 0x000000a0 0x00000000004e FUNC GLOB D 0 .text dwarf_tag - [17] 0x000000f0 0x000000000109 FUNC GLOB D 0 .text dwarf_siblingof - [18] 0x00000200 0x00000000002f FUNC GLOB D 0 .text dwarf_die_find - [19] 0x00000230 0x00000000017e FUNC GLOB D 0 .text dwarf_die_add - [20] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_cu.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_cu.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000015 OBJT LOCL D 0 .rodata __func__.3550 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x00000000010b FUNC GLOB D 0 .text dwarf_next_cu_header - -libdwarf.a(dwarf_errmsg.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_errmsg.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x0000000000c7 FUNC GLOB D 0 .text dwarf_errmsg - [10] 0x00000000 0x000000000078 OBJT GLOB D 0 .data _libdwarf_errors - [11] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF snprintf - [12] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_errmsg diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.out deleted file mode 100644 index 55a65555..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%.symtab%libdwarf.a.out +++ /dev/null @@ -1,309 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_loc.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000053 FUNC LOCL D 0 .text dwarf_decode_sleb128 - [6] 0x00000060 0x00000000002c FUNC LOCL D 0 .text dwarf_decode_uleb128 - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [8] 0x00000940 0x000000000013 OBJT LOCL D 0 .rodata __func__.4319 - [9] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [10] 0x00000953 0x00000000000e OBJT LOCL D 0 .rodata __func__.4283 - [11] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [12] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [13] 0x00000090 0x0000000000b7 FUNC GLOB D 0 .text dwarf_op_num - [14] 0x00000150 0x000000000051 FUNC GLOB D 0 .text dwarf_locdesc_free - [15] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF free - [16] 0x000001b0 0x00000000034c FUNC GLOB D 0 .text dwarf_locdesc - [17] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_attrval_find - [18] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF calloc - [19] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF get_form_desc - [20] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - -libdwarf.a(dwarf_init.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_init.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000099 FUNC LOCL D 0 .text dwarf_read_lsb - [6] 0x000000a0 0x0000000000c9 FUNC LOCL D 0 .text dwarf_read_msb - [7] 0x00000170 0x000000000079 FUNC LOCL D 0 .text dwarf_write_lsb - [8] 0x000001f0 0x000000000067 FUNC LOCL D 0 .text dwarf_write_msb - [9] 0x00000260 0x00000000003a FUNC LOCL D 0 .text dwarf_read_uleb128 - [10] 0x000002a0 0x000000000017 FUNC LOCL D 0 .text dwarf_read_block - [11] 0x000002c0 0x000000000326 FUNC LOCL D 0 .text dwarf_init_attr - [12] 0x000001a0 0x000000000010 OBJT LOCL D 0 .rodata __func__.4419 - [13] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [14] 0x00000000 0x000000000008 OBJT LOCL D 0 .bss dwarf_read - [15] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [16] 0x00000008 0x000000000008 OBJT LOCL D 0 .bss dwarf_write - [17] 0x000000e0 0x000000000090 OBJT LOCL D 0 .rodata debug_snames - [18] 0x00000170 0x00000000000f OBJT LOCL D 0 .rodata __func__.4570 - [19] 0x000000c3 0x00000000000f OBJT LOCL D 0 .rodata __func__.4622 - [20] 0x00000190 0x00000000000f OBJT LOCL D 0 .rodata __func__.4362 - [21] 0x00000180 0x000000000010 OBJT LOCL D 0 .rodata __func__.4504 - [22] 0x000000b8 0x00000000000b OBJT LOCL D 0 .rodata __func__.4640 - [23] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [24] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [25] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [26] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_attrval_add - [27] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_strptr - [28] 0x000005f0 0x000000000a51 FUNC GLOB D 0 .text dwarf_elf_init - [29] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF calloc - [30] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getehdr - [31] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_getshstrndx - [32] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_nextscn - [33] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getshdr - [34] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF strcmp - [35] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_ndxscn - [36] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_getdata - [37] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_errno - [38] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_abbrev_add - [39] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_attr_add - [40] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getrela - [41] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getsym - [42] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - [43] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_abbrev_find - [44] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_die_add - [45] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF free - [46] 0x00001050 0x0000000001a5 FUNC GLOB D 0 .text dwarf_init - [47] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_guard - [48] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_version - [49] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_begin - [50] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_finish - [51] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_fail - [52] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_end - -libdwarf.a(dwarf_form.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_form.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000000f OBJT LOCL D 0 .rodata __func__.3546 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x000000000048 FUNC GLOB D 0 .text dwarf_whatform - -libdwarf.a(dwarf_finish.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_finish.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x00000000000d OBJT LOCL D 0 .rodata __func__.3889 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x000000000353 FUNC GLOB D 0 .text dwarf_finish - [10] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF free - [11] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_end - -libdwarf.a(dwarf_errno.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_errno.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x00000000000e FUNC GLOB D 0 .text dwarf_errno - -libdwarf.a(dwarf_dealloc.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_dealloc.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [7] 0x00000000 0x000000000002 FUNC GLOB D 0 .text dwarf_dealloc - -libdwarf.a(dwarf_attrval.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_attrval.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [6] 0x00000000 0x000000000017 OBJT LOCL D 0 .rodata __func__.4602 - [7] 0x00000020 0x000000000015 OBJT LOCL D 0 .rodata __func__.4578 - [8] 0x00000040 0x000000000015 OBJT LOCL D 0 .rodata __func__.4552 - [9] 0x00000060 0x000000000013 OBJT LOCL D 0 .rodata __func__.4528 - [10] 0x00000080 0x000000000012 OBJT LOCL D 0 .rodata __func__.4507 - [11] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [12] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [13] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [14] 0x00000000 0x000000000026 FUNC GLOB D 0 .text dwarf_attrval_find - [15] 0x00000030 0x00000000022d FUNC GLOB D 0 .text dwarf_attrval_unsigned - [16] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF get_form_desc - [17] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - [18] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_die_find - [19] 0x00000260 0x00000000011c FUNC GLOB D 0 .text dwarf_attrval_signed - [20] 0x00000380 0x000000000144 FUNC GLOB D 0 .text dwarf_attrval_string - [21] 0x000004d0 0x000000000116 FUNC GLOB D 0 .text dwarf_attrval_flag - [22] 0x000005f0 0x0000000000e8 FUNC GLOB D 0 .text dwarf_attrval_add - [23] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_attr.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_attr.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x0000000f 0x00000000000b OBJT LOCL D 0 .rodata __func__.4056 - [6] 0x00000000 0x00000000000f OBJT LOCL D 0 .rodata __func__.4077 - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [9] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [10] 0x00000000 0x00000000009e FUNC GLOB D 0 .text dwarf_attr - [11] 0x000000a0 0x0000000000e1 FUNC GLOB D 0 .text dwarf_attr_add - [12] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_abbrev.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_abbrev.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000011 OBJT LOCL D 0 .rodata __func__.3884 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x000000000026 FUNC GLOB D 0 .text dwarf_abbrev_find - [10] 0x00000030 0x0000000000ce FUNC GLOB D 0 .text dwarf_abbrev_add - [11] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_dump.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_dump.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [8] 0x00000a80 0x00000000007b FUNC LOCL D 0 .text dwarf_dump_tree_dies - [9] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [10] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [11] 0x00000000 0x00000000011e FUNC GLOB D 0 .text get_sht_desc - [12] 0x00000120 0x00000000018d FUNC GLOB D 0 .text get_attr_desc - [13] 0x000002b0 0x000000000097 FUNC GLOB D 0 .text get_form_desc - [14] 0x00000350 0x000000000169 FUNC GLOB D 0 .text get_tag_desc - [15] 0x000004c0 0x0000000000c5 FUNC GLOB D 0 .text dwarf_dump_abbrev - [16] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF puts - [17] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF printf - [18] 0x00000590 0x000000000080 FUNC GLOB D 0 .text dwarf_dump_symtab - [19] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF gelf_getsym - [20] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_strptr - [21] 0x00000610 0x000000000053 FUNC GLOB D 0 .text dwarf_dump_dbgstr - [22] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF strlen - [23] 0x00000670 0x000000000053 FUNC GLOB D 0 .text dwarf_dump_strtab - [24] 0x000006d0 0x000000000050 FUNC GLOB D 0 .text dwarf_dump_shstrtab - [25] 0x00000720 0x0000000000f7 FUNC GLOB D 0 .text dwarf_dump_raw - [26] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF putchar - [27] 0x00000820 0x000000000126 FUNC GLOB D 0 .text dwarf_dump_av - [28] 0x00000950 0x00000000005b FUNC GLOB D 0 .text dwarf_dump_die - [29] 0x000009b0 0x00000000009b FUNC GLOB D 0 .text dwarf_dump_info - [30] 0x00000a50 0x00000000002a FUNC GLOB D 0 .text dwarf_dump - [31] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_siblingof - [32] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_child - [33] 0x00000b00 0x00000000013e FUNC GLOB D 0 .text dwarf_dump_tree - [34] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_guard - [35] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_next_cu_header - [36] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF dwarf_errmsg - [37] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF __stack_chk_fail - [38] 0x00000c40 0x000000000045 FUNC GLOB D 0 .text dwarf_dump_die_at_offset - -libdwarf.a(dwarf_die.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_die.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x0000001a 0x00000000000c OBJT LOCL D 0 .rodata __func__.3918 - [6] 0x00000010 0x00000000000a OBJT LOCL D 0 .rodata __func__.3935 - [7] 0x00000000 0x000000000010 OBJT LOCL D 0 .rodata __func__.3953 - [8] 0x00000030 0x00000000000e OBJT LOCL D 0 .rodata __func__.3887 - [9] 0x00000028 0x000000000008 OBJT LOCL D 0 .rodata anon_name - [10] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [11] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [12] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [13] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [14] 0x00000000 0x00000000000a FUNC GLOB D 0 .text dwarf_dieoffset - [15] 0x00000010 0x000000000086 FUNC GLOB D 0 .text dwarf_child - [16] 0x000000a0 0x00000000004e FUNC GLOB D 0 .text dwarf_tag - [17] 0x000000f0 0x000000000109 FUNC GLOB D 0 .text dwarf_siblingof - [18] 0x00000200 0x00000000002f FUNC GLOB D 0 .text dwarf_die_find - [19] 0x00000230 0x00000000017e FUNC GLOB D 0 .text dwarf_die_add - [20] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF malloc - -libdwarf.a(dwarf_cu.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_cu.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000015 OBJT LOCL D 0 .rodata __func__.3550 - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x00000000010b FUNC GLOB D 0 .text dwarf_next_cu_header - -libdwarf.a(dwarf_errmsg.o): - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000000 0x000000000000 FILE LOCL D 0 ABS dwarf_errmsg.c - [2] 0x00000000 0x000000000000 SECT LOCL D 0 .text - [3] 0x00000000 0x000000000000 SECT LOCL D 0 .data - [4] 0x00000000 0x000000000000 SECT LOCL D 0 .bss - [5] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [6] 0x00000000 0x000000000000 SECT LOCL D 0 .rodata.str - [7] 0x00000000 0x000000000000 SECT LOCL D 0 .eh_frame - [8] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [9] 0x00000000 0x0000000000c7 FUNC GLOB D 0 .text dwarf_errmsg - [10] 0x00000000 0x000000000078 OBJT GLOB D 0 .data _libdwarf_errors - [11] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF snprintf - [12] 0x00000000 0x000000000000 NOTY GLOB D 0 UNDEF elf_errmsg diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.out deleted file mode 100644 index 6b32cebc..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@s@N%ARSYM%libdwarf.a.out +++ /dev/null @@ -1,47 +0,0 @@ - -Symbol Table: (archive) - index offset member name and symbol - [0] 0x000003b4 (dwarf_loc.o):dwarf_op_num - [1] 0x000003b4 (dwarf_loc.o):dwarf_locdesc_free - [2] 0x000003b4 (dwarf_loc.o):dwarf_locdesc - [3] 0x00003828 (dwarf_init.o):dwarf_elf_init - [4] 0x00003828 (dwarf_init.o):dwarf_init - [5] 0x0000670c (dwarf_form.o):dwarf_whatform - [6] 0x00006cd8 (dwarf_finish.o):dwarf_finish - [7] 0x00007714 (dwarf_errno.o):dwarf_errno - [8] 0x00007bb8 (dwarf_dealloc.o):dwarf_dealloc - [9] 0x00008054 (dwarf_attrval.o):dwarf_attrval_find - [10] 0x00008054 (dwarf_attrval.o):dwarf_attrval_unsigned - [11] 0x00008054 (dwarf_attrval.o):dwarf_attrval_signed - [12] 0x00008054 (dwarf_attrval.o):dwarf_attrval_string - [13] 0x00008054 (dwarf_attrval.o):dwarf_attrval_flag - [14] 0x00008054 (dwarf_attrval.o):dwarf_attrval_add - [15] 0x000094e8 (dwarf_attr.o):dwarf_attr - [16] 0x000094e8 (dwarf_attr.o):dwarf_attr_add - [17] 0x00009cfc (dwarf_abbrev.o):dwarf_abbrev_find - [18] 0x00009cfc (dwarf_abbrev.o):dwarf_abbrev_add - [19] 0x0000a428 (dwarf_dump.o):get_sht_desc - [20] 0x0000a428 (dwarf_dump.o):get_attr_desc - [21] 0x0000a428 (dwarf_dump.o):get_form_desc - [22] 0x0000a428 (dwarf_dump.o):get_tag_desc - [23] 0x0000a428 (dwarf_dump.o):dwarf_dump_abbrev - [24] 0x0000a428 (dwarf_dump.o):dwarf_dump_symtab - [25] 0x0000a428 (dwarf_dump.o):dwarf_dump_dbgstr - [26] 0x0000a428 (dwarf_dump.o):dwarf_dump_strtab - [27] 0x0000a428 (dwarf_dump.o):dwarf_dump_shstrtab - [28] 0x0000a428 (dwarf_dump.o):dwarf_dump_raw - [29] 0x0000a428 (dwarf_dump.o):dwarf_dump_av - [30] 0x0000a428 (dwarf_dump.o):dwarf_dump_die - [31] 0x0000a428 (dwarf_dump.o):dwarf_dump_info - [32] 0x0000a428 (dwarf_dump.o):dwarf_dump - [33] 0x0000a428 (dwarf_dump.o):dwarf_dump_tree - [34] 0x0000a428 (dwarf_dump.o):dwarf_dump_die_at_offset - [35] 0x0000ffec (dwarf_die.o):dwarf_dieoffset - [36] 0x0000ffec (dwarf_die.o):dwarf_child - [37] 0x0000ffec (dwarf_die.o):dwarf_tag - [38] 0x0000ffec (dwarf_die.o):dwarf_siblingof - [39] 0x0000ffec (dwarf_die.o):dwarf_die_find - [40] 0x0000ffec (dwarf_die.o):dwarf_die_add - [41] 0x00010d80 (dwarf_cu.o):dwarf_next_cu_header - [42] 0x0001144c (dwarf_errmsg.o):dwarf_errmsg - [43] 0x0001144c (dwarf_errmsg.o):_libdwarf_errors diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@S@v%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.out deleted file mode 100644 index 113f1665..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@c%libdwarf.a.out +++ /dev/null @@ -1,2032 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 1276 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 5688 - sh_size: 480 - sh_link: 12 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 1340 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 1340 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 1344 - sh_size: 2401 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.rodata - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 6168 - sh_size: 7080 - sh_link: 12 - sh_info: 5 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rodata.str1.1 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 3745 - sh_size: 29 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 1 - -entry: 8 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 3776 - sh_size: 184 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 9 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 13248 - sh_size: 120 - sh_link: 12 - sh_info: 8 - sh_addralign: 8 - sh_entsize: 24 - -entry: 10 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 3960 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 11 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 3998 - sh_size: 101 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 12 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 5000 - sh_size: 504 - sh_link: 13 - sh_info: 13 - sh_addralign: 8 - sh_entsize: 24 - -entry: 13 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 5504 - sh_size: 181 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_init.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 4597 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 8680 - sh_size: 2064 - sh_link: 13 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 4664 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 4664 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 4672 - sh_size: 432 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.rodata - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 10744 - sh_size: 984 - sh_link: 13 - sh_info: 5 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rodata.str1.8 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 5104 - sh_size: 47 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 1 - -entry: 8 - sh_name: .rodata.str1.1 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 5151 - sh_size: 243 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 1 - -entry: 9 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 5400 - sh_size: 304 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 10 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 11728 - sh_size: 216 - sh_link: 13 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 5704 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 12 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 5742 - sh_size: 116 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 13 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 6824 - sh_size: 1272 - sh_link: 14 - sh_info: 26 - sh_addralign: 8 - sh_entsize: 24 - -entry: 14 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 8096 - sh_size: 583 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_form.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 72 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1376 - sh_size: 24 - sh_link: 10 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 136 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 136 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 136 - sh_size: 15 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 152 - sh_size: 48 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1400 - sh_size: 24 - sh_link: 10 - sh_info: 6 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 200 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 9 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 238 - sh_size: 81 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 10 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 1088 - sh_size: 240 - sh_link: 11 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1328 - sh_size: 43 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_finish.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 851 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 2248 - sh_size: 288 - sh_link: 10 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 916 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 916 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 916 - sh_size: 13 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 936 - sh_size: 80 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 2536 - sh_size: 24 - sh_link: 10 - sh_info: 6 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 1016 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 9 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1054 - sh_size: 81 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 10 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 1904 - sh_size: 288 - sh_link: 11 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 2192 - sh_size: 56 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_errno.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 80 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 3 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 80 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 80 - sh_size: 48 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 5 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1104 - sh_size: 24 - sh_link: 8 - sh_info: 4 - sh_addralign: 8 - sh_entsize: 24 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 128 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 166 - sh_size: 68 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 880 - sh_size: 192 - sh_link: 9 - sh_info: 7 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1072 - sh_size: 27 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_dealloc.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 2 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 68 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 3 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 68 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 72 - sh_size: 48 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 5 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1096 - sh_size: 24 - sh_link: 8 - sh_info: 4 - sh_addralign: 8 - sh_entsize: 24 - -entry: 6 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 120 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 7 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 158 - sh_size: 68 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 8 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 872 - sh_size: 192 - sh_link: 9 - sh_info: 7 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1064 - sh_size: 31 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_attrval.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 1752 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 4032 - sh_size: 1032 - sh_link: 11 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 1816 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 1816 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata.str1.8 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 1816 - sh_size: 46 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 1 - -entry: 6 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 1872 - sh_size: 146 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 7 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 2024 - sh_size: 208 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 8 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 5064 - sh_size: 144 - sh_link: 11 - sh_info: 7 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 2232 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 10 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 2270 - sh_size: 96 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 11 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 3200 - sh_size: 576 - sh_link: 12 - sh_info: 14 - sh_addralign: 8 - sh_entsize: 24 - -entry: 12 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 3776 - sh_size: 251 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_attr.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 385 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1840 - sh_size: 120 - sh_link: 10 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 452 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 452 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 452 - sh_size: 26 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 6 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 480 - sh_size: 80 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1960 - sh_size: 48 - sh_link: 10 - sh_info: 6 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 560 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 9 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 598 - sh_size: 81 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 10 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 1448 - sh_size: 312 - sh_link: 11 - sh_info: 10 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1760 - sh_size: 75 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_abbrev.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 254 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1680 - sh_size: 48 - sh_link: 10 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 320 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 320 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 320 - sh_size: 17 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 6 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 344 - sh_size: 88 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1728 - sh_size: 48 - sh_link: 10 - sh_info: 6 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 432 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 9 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 470 - sh_size: 81 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 10 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 1320 - sh_size: 288 - sh_link: 11 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1608 - sh_size: 72 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_dump.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 3205 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 11696 - sh_size: 6816 - sh_link: 13 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 3272 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 3272 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata.str1.1 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 3272 - sh_size: 3054 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 1 - -entry: 6 - sh_name: .rodata.str1.8 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 6328 - sh_size: 794 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 1 - -entry: 7 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 7128 - sh_size: 1504 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 8 - sh_name: .rela.rodata - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 18512 - sh_size: 4512 - sh_link: 13 - sh_info: 7 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 8632 - sh_size: 568 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 10 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 23024 - sh_size: 408 - sh_link: 13 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 9200 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 12 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 9238 - sh_size: 116 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 13 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 10320 - sh_size: 936 - sh_link: 14 - sh_info: 11 - sh_addralign: 8 - sh_entsize: 24 - -entry: 14 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 11256 - sh_size: 440 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_die.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 942 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 2984 - sh_size: 264 - sh_link: 12 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 1008 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 1008 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 1008 - sh_size: 62 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.rodata - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 3248 - sh_size: 24 - sh_link: 12 - sh_info: 5 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rodata.str1.1 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 1070 - sh_size: 9 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 1 - -entry: 8 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 1080 - sh_size: 184 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 9 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 3272 - sh_size: 144 - sh_link: 12 - sh_info: 8 - sh_addralign: 8 - sh_entsize: 24 - -entry: 10 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 1264 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 11 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1302 - sh_size: 101 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 12 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 2304 - sh_size: 504 - sh_link: 13 - sh_info: 14 - sh_addralign: 8 - sh_entsize: 24 - -entry: 13 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 2808 - sh_size: 169 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_cu.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 267 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1584 - sh_size: 72 - sh_link: 10 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 332 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 4 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 332 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 5 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 336 - sh_size: 21 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 6 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 360 - sh_size: 48 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 1656 - sh_size: 24 - sh_link: 10 - sh_info: 6 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 408 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 9 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 446 - sh_size: 81 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 10 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 1296 - sh_size: 240 - sh_link: 11 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 11 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 1536 - sh_size: 47 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -libdwarf.a(dwarf_errmsg.o): - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0 - sh_offset: 64 - sh_size: 199 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 2 - sh_name: .rela.text - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 2264 - sh_size: 192 - sh_link: 12 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 288 - sh_size: 120 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 4 - sh_name: .rela.data - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 2456 - sh_size: 360 - sh_link: 12 - sh_info: 3 - sh_addralign: 8 - sh_entsize: 24 - -entry: 5 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0 - sh_offset: 408 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 6 - sh_name: .rodata.str1.1 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 408 - sh_size: 274 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 1 - -entry: 7 - sh_name: .rodata.str1.8 - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_MERGE|SHF_STRINGS - sh_addr: 0 - sh_offset: 688 - sh_size: 84 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 1 - -entry: 8 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0 - sh_offset: 776 - sh_size: 56 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 9 - sh_name: .rela.eh_frame - sh_type: SHT_RELA - sh_flags: - sh_addr: 0 - sh_offset: 2816 - sh_size: 24 - sh_link: 12 - sh_info: 8 - sh_addralign: 8 - sh_entsize: 24 - -entry: 10 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 832 - sh_size: 38 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 11 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 870 - sh_size: 108 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 12 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 1880 - sh_size: 312 - sh_link: 13 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 13 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 2192 - sh_size: 66 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@d%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.out deleted file mode 100644 index 813d71ac..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@e%libdwarf.a.out +++ /dev/null @@ -1,247 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 4104 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 14 - e_shstrndx: 11 - -libdwarf.a(dwarf_init.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 5864 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 15 - e_shstrndx: 12 - -libdwarf.a(dwarf_form.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 320 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 12 - e_shstrndx: 9 - -libdwarf.a(dwarf_finish.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 1136 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 12 - e_shstrndx: 9 - -libdwarf.a(dwarf_errno.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 240 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 10 - e_shstrndx: 7 - -libdwarf.a(dwarf_dealloc.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 232 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 10 - e_shstrndx: 7 - -libdwarf.a(dwarf_attrval.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 2368 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 13 - e_shstrndx: 10 - -libdwarf.a(dwarf_attr.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 680 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 12 - e_shstrndx: 9 - -libdwarf.a(dwarf_abbrev.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 552 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 12 - e_shstrndx: 9 - -libdwarf.a(dwarf_dump.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 9360 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 15 - e_shstrndx: 12 - -libdwarf.a(dwarf_die.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 1408 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 14 - e_shstrndx: 11 - -libdwarf.a(dwarf_cu.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 528 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 12 - e_shstrndx: 9 - -libdwarf.a(dwarf_errmsg.o): - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_REL - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0 - e_phoff: 0 - e_shoff: 984 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 0 - e_phnum: 0 - e_shentsize: 64 - e_shnum: 14 - e_shstrndx: 11 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@h%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@i%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.out deleted file mode 100644 index 57f07a96..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@k%libdwarf.a.out +++ /dev/null @@ -1,52 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -elf checksum: 0xfe55 - -libdwarf.a(dwarf_init.o): - -elf checksum: 0xceb1 - -libdwarf.a(dwarf_form.o): - -elf checksum: 0x1d0e - -libdwarf.a(dwarf_finish.o): - -elf checksum: 0x4e0b - -libdwarf.a(dwarf_errno.o): - -elf checksum: 0xb96 - -libdwarf.a(dwarf_dealloc.o): - -elf checksum: 0x402 - -libdwarf.a(dwarf_attrval.o): - -elf checksum: 0x70d6 - -libdwarf.a(dwarf_attr.o): - -elf checksum: 0x8a25 - -libdwarf.a(dwarf_abbrev.o): - -elf checksum: 0x696f - -libdwarf.a(dwarf_dump.o): - -elf checksum: 0x697e - -libdwarf.a(dwarf_die.o): - -elf checksum: 0x4e47 - -libdwarf.a(dwarf_cu.o): - -elf checksum: 0x5458 - -libdwarf.a(dwarf_errmsg.o): - -elf checksum: 0xc68e diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@n%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@p%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.out deleted file mode 100644 index 77ac5b8d..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@r%libdwarf.a.out +++ /dev/null @@ -1,5424 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0xf6 - r_info: 0x70000000b - r_addend: 0 - -entry: 1 - r_offset: 0x176 - r_info: 0x70000000b - r_addend: 2368 - -entry: 2 - r_offset: 0x191 - r_info: 0xf00000002 - r_addend: -4 - -entry: 3 - r_offset: 0x199 - r_info: 0xf00000002 - r_addend: -4 - -entry: 4 - r_offset: 0x20b - r_info: 0x1100000002 - r_addend: -4 - -entry: 5 - r_offset: 0x226 - r_info: 0x1200000002 - r_addend: -4 - -entry: 6 - r_offset: 0x271 - r_info: 0xd00000002 - r_addend: -4 - -entry: 7 - r_offset: 0x286 - r_info: 0x1200000002 - r_addend: -4 - -entry: 8 - r_offset: 0x312 - r_info: 0x70000000b - r_addend: 1184 - -entry: 9 - r_offset: 0x32c - r_info: 0x70000000b - r_addend: 2387 - -entry: 10 - r_offset: 0x409 - r_info: 0x70000000b - r_addend: 2387 - -entry: 11 - r_offset: 0x425 - r_info: 0x1300000002 - r_addend: -4 - -entry: 12 - r_offset: 0x432 - r_info: 0x70000000a - r_addend: 2387 - -entry: 13 - r_offset: 0x437 - r_info: 0x90000000a - r_addend: 0 - -entry: 14 - r_offset: 0x43e - r_info: 0x1400000002 - r_addend: -4 - -entry: 15 - r_offset: 0x453 - r_info: 0x70000000b - r_addend: 2387 - -entry: 16 - r_offset: 0x466 - r_info: 0xf00000002 - r_addend: -4 - -entry: 17 - r_offset: 0x497 - r_info: 0x70000000b - r_addend: 2387 - -entry: 18 - r_offset: 0x4c1 - r_info: 0x70000000b - r_addend: 2387 - -entry: 19 - r_offset: 0x4e8 - r_info: 0x70000000b - r_addend: 2387 - -relocation with addend (.rela.rodata): - -entry: 0 - r_offset: 0 - r_info: 0x200000001 - r_addend: 314 - -entry: 1 - r_offset: 0x8 - r_info: 0x200000001 - r_addend: 233 - -entry: 2 - r_offset: 0x10 - r_info: 0x200000001 - r_addend: 233 - -entry: 3 - r_offset: 0x18 - r_info: 0x200000001 - r_addend: 178 - -entry: 4 - r_offset: 0x20 - r_info: 0x200000001 - r_addend: 233 - -entry: 5 - r_offset: 0x28 - r_info: 0x200000001 - r_addend: 301 - -entry: 6 - r_offset: 0x30 - r_info: 0x200000001 - r_addend: 301 - -entry: 7 - r_offset: 0x38 - r_info: 0x200000001 - r_addend: 291 - -entry: 8 - r_offset: 0x40 - r_info: 0x200000001 - r_addend: 291 - -entry: 9 - r_offset: 0x48 - r_info: 0x200000001 - r_addend: 281 - -entry: 10 - r_offset: 0x50 - r_info: 0x200000001 - r_addend: 281 - -entry: 11 - r_offset: 0x58 - r_info: 0x200000001 - r_addend: 271 - -entry: 12 - r_offset: 0x60 - r_info: 0x200000001 - r_addend: 271 - -entry: 13 - r_offset: 0x68 - r_info: 0x200000001 - r_addend: 261 - -entry: 14 - r_offset: 0x70 - r_info: 0x200000001 - r_addend: 261 - -entry: 15 - r_offset: 0x78 - r_info: 0x200000001 - r_addend: 178 - -entry: 16 - r_offset: 0x80 - r_info: 0x200000001 - r_addend: 178 - -entry: 17 - r_offset: 0x88 - r_info: 0x200000001 - r_addend: 178 - -entry: 18 - r_offset: 0x90 - r_info: 0x200000001 - r_addend: 301 - -entry: 19 - r_offset: 0x98 - r_info: 0x200000001 - r_addend: 178 - -entry: 20 - r_offset: 0xa0 - r_info: 0x200000001 - r_addend: 178 - -entry: 21 - r_offset: 0xa8 - r_info: 0x200000001 - r_addend: 178 - -entry: 22 - r_offset: 0xb0 - r_info: 0x200000001 - r_addend: 178 - -entry: 23 - r_offset: 0xb8 - r_info: 0x200000001 - r_addend: 178 - -entry: 24 - r_offset: 0xc0 - r_info: 0x200000001 - r_addend: 178 - -entry: 25 - r_offset: 0xc8 - r_info: 0x200000001 - r_addend: 178 - -entry: 26 - r_offset: 0xd0 - r_info: 0x200000001 - r_addend: 178 - -entry: 27 - r_offset: 0xd8 - r_info: 0x200000001 - r_addend: 178 - -entry: 28 - r_offset: 0xe0 - r_info: 0x200000001 - r_addend: 178 - -entry: 29 - r_offset: 0xe8 - r_info: 0x200000001 - r_addend: 178 - -entry: 30 - r_offset: 0xf0 - r_info: 0x200000001 - r_addend: 178 - -entry: 31 - r_offset: 0xf8 - r_info: 0x200000001 - r_addend: 178 - -entry: 32 - r_offset: 0x100 - r_info: 0x200000001 - r_addend: 261 - -entry: 33 - r_offset: 0x108 - r_info: 0x200000001 - r_addend: 178 - -entry: 34 - r_offset: 0x110 - r_info: 0x200000001 - r_addend: 178 - -entry: 35 - r_offset: 0x118 - r_info: 0x200000001 - r_addend: 178 - -entry: 36 - r_offset: 0x120 - r_info: 0x200000001 - r_addend: 178 - -entry: 37 - r_offset: 0x128 - r_info: 0x200000001 - r_addend: 291 - -entry: 38 - r_offset: 0x130 - r_info: 0x200000001 - r_addend: 178 - -entry: 39 - r_offset: 0x138 - r_info: 0x200000001 - r_addend: 178 - -entry: 40 - r_offset: 0x140 - r_info: 0x200000001 - r_addend: 178 - -entry: 41 - r_offset: 0x148 - r_info: 0x200000001 - r_addend: 178 - -entry: 42 - r_offset: 0x150 - r_info: 0x200000001 - r_addend: 178 - -entry: 43 - r_offset: 0x158 - r_info: 0x200000001 - r_addend: 178 - -entry: 44 - r_offset: 0x160 - r_info: 0x200000001 - r_addend: 291 - -entry: 45 - r_offset: 0x168 - r_info: 0x200000001 - r_addend: 178 - -entry: 46 - r_offset: 0x170 - r_info: 0x200000001 - r_addend: 178 - -entry: 47 - r_offset: 0x178 - r_info: 0x200000001 - r_addend: 178 - -entry: 48 - r_offset: 0x180 - r_info: 0x200000001 - r_addend: 178 - -entry: 49 - r_offset: 0x188 - r_info: 0x200000001 - r_addend: 178 - -entry: 50 - r_offset: 0x190 - r_info: 0x200000001 - r_addend: 178 - -entry: 51 - r_offset: 0x198 - r_info: 0x200000001 - r_addend: 178 - -entry: 52 - r_offset: 0x1a0 - r_info: 0x200000001 - r_addend: 178 - -entry: 53 - r_offset: 0x1a8 - r_info: 0x200000001 - r_addend: 178 - -entry: 54 - r_offset: 0x1b0 - r_info: 0x200000001 - r_addend: 178 - -entry: 55 - r_offset: 0x1b8 - r_info: 0x200000001 - r_addend: 178 - -entry: 56 - r_offset: 0x1c0 - r_info: 0x200000001 - r_addend: 178 - -entry: 57 - r_offset: 0x1c8 - r_info: 0x200000001 - r_addend: 178 - -entry: 58 - r_offset: 0x1d0 - r_info: 0x200000001 - r_addend: 178 - -entry: 59 - r_offset: 0x1d8 - r_info: 0x200000001 - r_addend: 178 - -entry: 60 - r_offset: 0x1e0 - r_info: 0x200000001 - r_addend: 178 - -entry: 61 - r_offset: 0x1e8 - r_info: 0x200000001 - r_addend: 178 - -entry: 62 - r_offset: 0x1f0 - r_info: 0x200000001 - r_addend: 178 - -entry: 63 - r_offset: 0x1f8 - r_info: 0x200000001 - r_addend: 178 - -entry: 64 - r_offset: 0x200 - r_info: 0x200000001 - r_addend: 178 - -entry: 65 - r_offset: 0x208 - r_info: 0x200000001 - r_addend: 178 - -entry: 66 - r_offset: 0x210 - r_info: 0x200000001 - r_addend: 178 - -entry: 67 - r_offset: 0x218 - r_info: 0x200000001 - r_addend: 178 - -entry: 68 - r_offset: 0x220 - r_info: 0x200000001 - r_addend: 178 - -entry: 69 - r_offset: 0x228 - r_info: 0x200000001 - r_addend: 178 - -entry: 70 - r_offset: 0x230 - r_info: 0x200000001 - r_addend: 178 - -entry: 71 - r_offset: 0x238 - r_info: 0x200000001 - r_addend: 178 - -entry: 72 - r_offset: 0x240 - r_info: 0x200000001 - r_addend: 178 - -entry: 73 - r_offset: 0x248 - r_info: 0x200000001 - r_addend: 178 - -entry: 74 - r_offset: 0x250 - r_info: 0x200000001 - r_addend: 178 - -entry: 75 - r_offset: 0x258 - r_info: 0x200000001 - r_addend: 178 - -entry: 76 - r_offset: 0x260 - r_info: 0x200000001 - r_addend: 178 - -entry: 77 - r_offset: 0x268 - r_info: 0x200000001 - r_addend: 178 - -entry: 78 - r_offset: 0x270 - r_info: 0x200000001 - r_addend: 178 - -entry: 79 - r_offset: 0x278 - r_info: 0x200000001 - r_addend: 178 - -entry: 80 - r_offset: 0x280 - r_info: 0x200000001 - r_addend: 178 - -entry: 81 - r_offset: 0x288 - r_info: 0x200000001 - r_addend: 178 - -entry: 82 - r_offset: 0x290 - r_info: 0x200000001 - r_addend: 178 - -entry: 83 - r_offset: 0x298 - r_info: 0x200000001 - r_addend: 178 - -entry: 84 - r_offset: 0x2a0 - r_info: 0x200000001 - r_addend: 178 - -entry: 85 - r_offset: 0x2a8 - r_info: 0x200000001 - r_addend: 178 - -entry: 86 - r_offset: 0x2b0 - r_info: 0x200000001 - r_addend: 178 - -entry: 87 - r_offset: 0x2b8 - r_info: 0x200000001 - r_addend: 178 - -entry: 88 - r_offset: 0x2c0 - r_info: 0x200000001 - r_addend: 178 - -entry: 89 - r_offset: 0x2c8 - r_info: 0x200000001 - r_addend: 178 - -entry: 90 - r_offset: 0x2d0 - r_info: 0x200000001 - r_addend: 178 - -entry: 91 - r_offset: 0x2d8 - r_info: 0x200000001 - r_addend: 178 - -entry: 92 - r_offset: 0x2e0 - r_info: 0x200000001 - r_addend: 178 - -entry: 93 - r_offset: 0x2e8 - r_info: 0x200000001 - r_addend: 178 - -entry: 94 - r_offset: 0x2f0 - r_info: 0x200000001 - r_addend: 178 - -entry: 95 - r_offset: 0x2f8 - r_info: 0x200000001 - r_addend: 178 - -entry: 96 - r_offset: 0x300 - r_info: 0x200000001 - r_addend: 178 - -entry: 97 - r_offset: 0x308 - r_info: 0x200000001 - r_addend: 178 - -entry: 98 - r_offset: 0x310 - r_info: 0x200000001 - r_addend: 178 - -entry: 99 - r_offset: 0x318 - r_info: 0x200000001 - r_addend: 178 - -entry: 100 - r_offset: 0x320 - r_info: 0x200000001 - r_addend: 178 - -entry: 101 - r_offset: 0x328 - r_info: 0x200000001 - r_addend: 178 - -entry: 102 - r_offset: 0x330 - r_info: 0x200000001 - r_addend: 178 - -entry: 103 - r_offset: 0x338 - r_info: 0x200000001 - r_addend: 178 - -entry: 104 - r_offset: 0x340 - r_info: 0x200000001 - r_addend: 178 - -entry: 105 - r_offset: 0x348 - r_info: 0x200000001 - r_addend: 178 - -entry: 106 - r_offset: 0x350 - r_info: 0x200000001 - r_addend: 178 - -entry: 107 - r_offset: 0x358 - r_info: 0x200000001 - r_addend: 178 - -entry: 108 - r_offset: 0x360 - r_info: 0x200000001 - r_addend: 178 - -entry: 109 - r_offset: 0x368 - r_info: 0x200000001 - r_addend: 261 - -entry: 110 - r_offset: 0x370 - r_info: 0x200000001 - r_addend: 261 - -entry: 111 - r_offset: 0x378 - r_info: 0x200000001 - r_addend: 261 - -entry: 112 - r_offset: 0x380 - r_info: 0x200000001 - r_addend: 261 - -entry: 113 - r_offset: 0x388 - r_info: 0x200000001 - r_addend: 261 - -entry: 114 - r_offset: 0x390 - r_info: 0x200000001 - r_addend: 261 - -entry: 115 - r_offset: 0x398 - r_info: 0x200000001 - r_addend: 261 - -entry: 116 - r_offset: 0x3a0 - r_info: 0x200000001 - r_addend: 261 - -entry: 117 - r_offset: 0x3a8 - r_info: 0x200000001 - r_addend: 261 - -entry: 118 - r_offset: 0x3b0 - r_info: 0x200000001 - r_addend: 261 - -entry: 119 - r_offset: 0x3b8 - r_info: 0x200000001 - r_addend: 261 - -entry: 120 - r_offset: 0x3c0 - r_info: 0x200000001 - r_addend: 261 - -entry: 121 - r_offset: 0x3c8 - r_info: 0x200000001 - r_addend: 261 - -entry: 122 - r_offset: 0x3d0 - r_info: 0x200000001 - r_addend: 261 - -entry: 123 - r_offset: 0x3d8 - r_info: 0x200000001 - r_addend: 261 - -entry: 124 - r_offset: 0x3e0 - r_info: 0x200000001 - r_addend: 261 - -entry: 125 - r_offset: 0x3e8 - r_info: 0x200000001 - r_addend: 261 - -entry: 126 - r_offset: 0x3f0 - r_info: 0x200000001 - r_addend: 261 - -entry: 127 - r_offset: 0x3f8 - r_info: 0x200000001 - r_addend: 261 - -entry: 128 - r_offset: 0x400 - r_info: 0x200000001 - r_addend: 261 - -entry: 129 - r_offset: 0x408 - r_info: 0x200000001 - r_addend: 261 - -entry: 130 - r_offset: 0x410 - r_info: 0x200000001 - r_addend: 261 - -entry: 131 - r_offset: 0x418 - r_info: 0x200000001 - r_addend: 261 - -entry: 132 - r_offset: 0x420 - r_info: 0x200000001 - r_addend: 261 - -entry: 133 - r_offset: 0x428 - r_info: 0x200000001 - r_addend: 261 - -entry: 134 - r_offset: 0x430 - r_info: 0x200000001 - r_addend: 261 - -entry: 135 - r_offset: 0x438 - r_info: 0x200000001 - r_addend: 261 - -entry: 136 - r_offset: 0x440 - r_info: 0x200000001 - r_addend: 261 - -entry: 137 - r_offset: 0x448 - r_info: 0x200000001 - r_addend: 261 - -entry: 138 - r_offset: 0x450 - r_info: 0x200000001 - r_addend: 261 - -entry: 139 - r_offset: 0x458 - r_info: 0x200000001 - r_addend: 261 - -entry: 140 - r_offset: 0x460 - r_info: 0x200000001 - r_addend: 261 - -entry: 141 - r_offset: 0x468 - r_info: 0x200000001 - r_addend: 261 - -entry: 142 - r_offset: 0x470 - r_info: 0x200000001 - r_addend: 261 - -entry: 143 - r_offset: 0x478 - r_info: 0x200000001 - r_addend: 250 - -entry: 144 - r_offset: 0x480 - r_info: 0x200000001 - r_addend: 261 - -entry: 145 - r_offset: 0x488 - r_info: 0x200000001 - r_addend: 301 - -entry: 146 - r_offset: 0x490 - r_info: 0x200000001 - r_addend: 301 - -entry: 147 - r_offset: 0x498 - r_info: 0x200000001 - r_addend: 178 - -entry: 148 - r_offset: 0x4a0 - r_info: 0x200000001 - r_addend: 995 - -entry: 149 - r_offset: 0x4a8 - r_info: 0x200000001 - r_addend: 712 - -entry: 150 - r_offset: 0x4b0 - r_info: 0x200000001 - r_addend: 712 - -entry: 151 - r_offset: 0x4b8 - r_info: 0x200000001 - r_addend: 712 - -entry: 152 - r_offset: 0x4c0 - r_info: 0x200000001 - r_addend: 712 - -entry: 153 - r_offset: 0x4c8 - r_info: 0x200000001 - r_addend: 976 - -entry: 154 - r_offset: 0x4d0 - r_info: 0x200000001 - r_addend: 976 - -entry: 155 - r_offset: 0x4d8 - r_info: 0x200000001 - r_addend: 958 - -entry: 156 - r_offset: 0x4e0 - r_info: 0x200000001 - r_addend: 958 - -entry: 157 - r_offset: 0x4e8 - r_info: 0x200000001 - r_addend: 940 - -entry: 158 - r_offset: 0x4f0 - r_info: 0x200000001 - r_addend: 940 - -entry: 159 - r_offset: 0x4f8 - r_info: 0x200000001 - r_addend: 922 - -entry: 160 - r_offset: 0x500 - r_info: 0x200000001 - r_addend: 922 - -entry: 161 - r_offset: 0x508 - r_info: 0x200000001 - r_addend: 864 - -entry: 162 - r_offset: 0x510 - r_info: 0x200000001 - r_addend: 864 - -entry: 163 - r_offset: 0x518 - r_info: 0x200000001 - r_addend: 712 - -entry: 164 - r_offset: 0x520 - r_info: 0x200000001 - r_addend: 712 - -entry: 165 - r_offset: 0x528 - r_info: 0x200000001 - r_addend: 712 - -entry: 166 - r_offset: 0x530 - r_info: 0x200000001 - r_addend: 976 - -entry: 167 - r_offset: 0x538 - r_info: 0x200000001 - r_addend: 712 - -entry: 168 - r_offset: 0x540 - r_info: 0x200000001 - r_addend: 712 - -entry: 169 - r_offset: 0x548 - r_info: 0x200000001 - r_addend: 712 - -entry: 170 - r_offset: 0x550 - r_info: 0x200000001 - r_addend: 712 - -entry: 171 - r_offset: 0x558 - r_info: 0x200000001 - r_addend: 712 - -entry: 172 - r_offset: 0x560 - r_info: 0x200000001 - r_addend: 712 - -entry: 173 - r_offset: 0x568 - r_info: 0x200000001 - r_addend: 712 - -entry: 174 - r_offset: 0x570 - r_info: 0x200000001 - r_addend: 712 - -entry: 175 - r_offset: 0x578 - r_info: 0x200000001 - r_addend: 712 - -entry: 176 - r_offset: 0x580 - r_info: 0x200000001 - r_addend: 712 - -entry: 177 - r_offset: 0x588 - r_info: 0x200000001 - r_addend: 712 - -entry: 178 - r_offset: 0x590 - r_info: 0x200000001 - r_addend: 712 - -entry: 179 - r_offset: 0x598 - r_info: 0x200000001 - r_addend: 712 - -entry: 180 - r_offset: 0x5a0 - r_info: 0x200000001 - r_addend: 864 - -entry: 181 - r_offset: 0x5a8 - r_info: 0x200000001 - r_addend: 712 - -entry: 182 - r_offset: 0x5b0 - r_info: 0x200000001 - r_addend: 712 - -entry: 183 - r_offset: 0x5b8 - r_info: 0x200000001 - r_addend: 712 - -entry: 184 - r_offset: 0x5c0 - r_info: 0x200000001 - r_addend: 712 - -entry: 185 - r_offset: 0x5c8 - r_info: 0x200000001 - r_addend: 958 - -entry: 186 - r_offset: 0x5d0 - r_info: 0x200000001 - r_addend: 712 - -entry: 187 - r_offset: 0x5d8 - r_info: 0x200000001 - r_addend: 712 - -entry: 188 - r_offset: 0x5e0 - r_info: 0x200000001 - r_addend: 712 - -entry: 189 - r_offset: 0x5e8 - r_info: 0x200000001 - r_addend: 712 - -entry: 190 - r_offset: 0x5f0 - r_info: 0x200000001 - r_addend: 712 - -entry: 191 - r_offset: 0x5f8 - r_info: 0x200000001 - r_addend: 712 - -entry: 192 - r_offset: 0x600 - r_info: 0x200000001 - r_addend: 958 - -entry: 193 - r_offset: 0x608 - r_info: 0x200000001 - r_addend: 712 - -entry: 194 - r_offset: 0x610 - r_info: 0x200000001 - r_addend: 712 - -entry: 195 - r_offset: 0x618 - r_info: 0x200000001 - r_addend: 712 - -entry: 196 - r_offset: 0x620 - r_info: 0x200000001 - r_addend: 712 - -entry: 197 - r_offset: 0x628 - r_info: 0x200000001 - r_addend: 712 - -entry: 198 - r_offset: 0x630 - r_info: 0x200000001 - r_addend: 712 - -entry: 199 - r_offset: 0x638 - r_info: 0x200000001 - r_addend: 712 - -entry: 200 - r_offset: 0x640 - r_info: 0x200000001 - r_addend: 712 - -entry: 201 - r_offset: 0x648 - r_info: 0x200000001 - r_addend: 712 - -entry: 202 - r_offset: 0x650 - r_info: 0x200000001 - r_addend: 712 - -entry: 203 - r_offset: 0x658 - r_info: 0x200000001 - r_addend: 712 - -entry: 204 - r_offset: 0x660 - r_info: 0x200000001 - r_addend: 712 - -entry: 205 - r_offset: 0x668 - r_info: 0x200000001 - r_addend: 712 - -entry: 206 - r_offset: 0x670 - r_info: 0x200000001 - r_addend: 712 - -entry: 207 - r_offset: 0x678 - r_info: 0x200000001 - r_addend: 712 - -entry: 208 - r_offset: 0x680 - r_info: 0x200000001 - r_addend: 712 - -entry: 209 - r_offset: 0x688 - r_info: 0x200000001 - r_addend: 712 - -entry: 210 - r_offset: 0x690 - r_info: 0x200000001 - r_addend: 712 - -entry: 211 - r_offset: 0x698 - r_info: 0x200000001 - r_addend: 712 - -entry: 212 - r_offset: 0x6a0 - r_info: 0x200000001 - r_addend: 712 - -entry: 213 - r_offset: 0x6a8 - r_info: 0x200000001 - r_addend: 712 - -entry: 214 - r_offset: 0x6b0 - r_info: 0x200000001 - r_addend: 712 - -entry: 215 - r_offset: 0x6b8 - r_info: 0x200000001 - r_addend: 712 - -entry: 216 - r_offset: 0x6c0 - r_info: 0x200000001 - r_addend: 712 - -entry: 217 - r_offset: 0x6c8 - r_info: 0x200000001 - r_addend: 712 - -entry: 218 - r_offset: 0x6d0 - r_info: 0x200000001 - r_addend: 712 - -entry: 219 - r_offset: 0x6d8 - r_info: 0x200000001 - r_addend: 712 - -entry: 220 - r_offset: 0x6e0 - r_info: 0x200000001 - r_addend: 712 - -entry: 221 - r_offset: 0x6e8 - r_info: 0x200000001 - r_addend: 712 - -entry: 222 - r_offset: 0x6f0 - r_info: 0x200000001 - r_addend: 712 - -entry: 223 - r_offset: 0x6f8 - r_info: 0x200000001 - r_addend: 712 - -entry: 224 - r_offset: 0x700 - r_info: 0x200000001 - r_addend: 712 - -entry: 225 - r_offset: 0x708 - r_info: 0x200000001 - r_addend: 712 - -entry: 226 - r_offset: 0x710 - r_info: 0x200000001 - r_addend: 712 - -entry: 227 - r_offset: 0x718 - r_info: 0x200000001 - r_addend: 712 - -entry: 228 - r_offset: 0x720 - r_info: 0x200000001 - r_addend: 712 - -entry: 229 - r_offset: 0x728 - r_info: 0x200000001 - r_addend: 712 - -entry: 230 - r_offset: 0x730 - r_info: 0x200000001 - r_addend: 712 - -entry: 231 - r_offset: 0x738 - r_info: 0x200000001 - r_addend: 712 - -entry: 232 - r_offset: 0x740 - r_info: 0x200000001 - r_addend: 712 - -entry: 233 - r_offset: 0x748 - r_info: 0x200000001 - r_addend: 712 - -entry: 234 - r_offset: 0x750 - r_info: 0x200000001 - r_addend: 712 - -entry: 235 - r_offset: 0x758 - r_info: 0x200000001 - r_addend: 712 - -entry: 236 - r_offset: 0x760 - r_info: 0x200000001 - r_addend: 712 - -entry: 237 - r_offset: 0x768 - r_info: 0x200000001 - r_addend: 712 - -entry: 238 - r_offset: 0x770 - r_info: 0x200000001 - r_addend: 712 - -entry: 239 - r_offset: 0x778 - r_info: 0x200000001 - r_addend: 712 - -entry: 240 - r_offset: 0x780 - r_info: 0x200000001 - r_addend: 712 - -entry: 241 - r_offset: 0x788 - r_info: 0x200000001 - r_addend: 712 - -entry: 242 - r_offset: 0x790 - r_info: 0x200000001 - r_addend: 712 - -entry: 243 - r_offset: 0x798 - r_info: 0x200000001 - r_addend: 712 - -entry: 244 - r_offset: 0x7a0 - r_info: 0x200000001 - r_addend: 712 - -entry: 245 - r_offset: 0x7a8 - r_info: 0x200000001 - r_addend: 712 - -entry: 246 - r_offset: 0x7b0 - r_info: 0x200000001 - r_addend: 712 - -entry: 247 - r_offset: 0x7b8 - r_info: 0x200000001 - r_addend: 712 - -entry: 248 - r_offset: 0x7c0 - r_info: 0x200000001 - r_addend: 712 - -entry: 249 - r_offset: 0x7c8 - r_info: 0x200000001 - r_addend: 712 - -entry: 250 - r_offset: 0x7d0 - r_info: 0x200000001 - r_addend: 712 - -entry: 251 - r_offset: 0x7d8 - r_info: 0x200000001 - r_addend: 712 - -entry: 252 - r_offset: 0x7e0 - r_info: 0x200000001 - r_addend: 712 - -entry: 253 - r_offset: 0x7e8 - r_info: 0x200000001 - r_addend: 712 - -entry: 254 - r_offset: 0x7f0 - r_info: 0x200000001 - r_addend: 712 - -entry: 255 - r_offset: 0x7f8 - r_info: 0x200000001 - r_addend: 712 - -entry: 256 - r_offset: 0x800 - r_info: 0x200000001 - r_addend: 712 - -entry: 257 - r_offset: 0x808 - r_info: 0x200000001 - r_addend: 864 - -entry: 258 - r_offset: 0x810 - r_info: 0x200000001 - r_addend: 864 - -entry: 259 - r_offset: 0x818 - r_info: 0x200000001 - r_addend: 864 - -entry: 260 - r_offset: 0x820 - r_info: 0x200000001 - r_addend: 864 - -entry: 261 - r_offset: 0x828 - r_info: 0x200000001 - r_addend: 864 - -entry: 262 - r_offset: 0x830 - r_info: 0x200000001 - r_addend: 864 - -entry: 263 - r_offset: 0x838 - r_info: 0x200000001 - r_addend: 864 - -entry: 264 - r_offset: 0x840 - r_info: 0x200000001 - r_addend: 864 - -entry: 265 - r_offset: 0x848 - r_info: 0x200000001 - r_addend: 864 - -entry: 266 - r_offset: 0x850 - r_info: 0x200000001 - r_addend: 864 - -entry: 267 - r_offset: 0x858 - r_info: 0x200000001 - r_addend: 864 - -entry: 268 - r_offset: 0x860 - r_info: 0x200000001 - r_addend: 864 - -entry: 269 - r_offset: 0x868 - r_info: 0x200000001 - r_addend: 864 - -entry: 270 - r_offset: 0x870 - r_info: 0x200000001 - r_addend: 864 - -entry: 271 - r_offset: 0x878 - r_info: 0x200000001 - r_addend: 864 - -entry: 272 - r_offset: 0x880 - r_info: 0x200000001 - r_addend: 864 - -entry: 273 - r_offset: 0x888 - r_info: 0x200000001 - r_addend: 864 - -entry: 274 - r_offset: 0x890 - r_info: 0x200000001 - r_addend: 864 - -entry: 275 - r_offset: 0x898 - r_info: 0x200000001 - r_addend: 864 - -entry: 276 - r_offset: 0x8a0 - r_info: 0x200000001 - r_addend: 864 - -entry: 277 - r_offset: 0x8a8 - r_info: 0x200000001 - r_addend: 864 - -entry: 278 - r_offset: 0x8b0 - r_info: 0x200000001 - r_addend: 864 - -entry: 279 - r_offset: 0x8b8 - r_info: 0x200000001 - r_addend: 864 - -entry: 280 - r_offset: 0x8c0 - r_info: 0x200000001 - r_addend: 864 - -entry: 281 - r_offset: 0x8c8 - r_info: 0x200000001 - r_addend: 864 - -entry: 282 - r_offset: 0x8d0 - r_info: 0x200000001 - r_addend: 864 - -entry: 283 - r_offset: 0x8d8 - r_info: 0x200000001 - r_addend: 864 - -entry: 284 - r_offset: 0x8e0 - r_info: 0x200000001 - r_addend: 864 - -entry: 285 - r_offset: 0x8e8 - r_info: 0x200000001 - r_addend: 864 - -entry: 286 - r_offset: 0x8f0 - r_info: 0x200000001 - r_addend: 864 - -entry: 287 - r_offset: 0x8f8 - r_info: 0x200000001 - r_addend: 864 - -entry: 288 - r_offset: 0x900 - r_info: 0x200000001 - r_addend: 864 - -entry: 289 - r_offset: 0x908 - r_info: 0x200000001 - r_addend: 864 - -entry: 290 - r_offset: 0x910 - r_info: 0x200000001 - r_addend: 864 - -entry: 291 - r_offset: 0x918 - r_info: 0x200000001 - r_addend: 889 - -entry: 292 - r_offset: 0x920 - r_info: 0x200000001 - r_addend: 864 - -entry: 293 - r_offset: 0x928 - r_info: 0x200000001 - r_addend: 976 - -entry: 294 - r_offset: 0x930 - r_info: 0x200000001 - r_addend: 976 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 96 - -entry: 2 - r_offset: 0x50 - r_info: 0x20000000a - r_addend: 144 - -entry: 3 - r_offset: 0x80 - r_info: 0x20000000a - r_addend: 336 - -entry: 4 - r_offset: 0x98 - r_info: 0x20000000a - r_addend: 432 - -libdwarf.a(dwarf_init.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x353 - r_info: 0xd0000000b - r_addend: 416 - -entry: 1 - r_offset: 0x393 - r_info: 0xd0000000b - r_addend: 0 - -entry: 2 - r_offset: 0x3a4 - r_info: 0x400000002 - r_addend: -4 - -entry: 3 - r_offset: 0x3c0 - r_info: 0x1a00000002 - r_addend: -4 - -entry: 4 - r_offset: 0x3d3 - r_info: 0x400000002 - r_addend: -4 - -entry: 5 - r_offset: 0x3fe - r_info: 0x400000002 - r_addend: -4 - -entry: 6 - r_offset: 0x411 - r_info: 0x400000002 - r_addend: -4 - -entry: 7 - r_offset: 0x429 - r_info: 0x400000002 - r_addend: -4 - -entry: 8 - r_offset: 0x444 - r_info: 0x400000002 - r_addend: -4 - -entry: 9 - r_offset: 0x4bb - r_info: 0x400000002 - r_addend: -4 - -entry: 10 - r_offset: 0x4d2 - r_info: 0x1b00000002 - r_addend: -4 - -entry: 11 - r_offset: 0x518 - r_info: 0x400000002 - r_addend: -4 - -entry: 12 - r_offset: 0x565 - r_info: 0x400000002 - r_addend: -4 - -entry: 13 - r_offset: 0x5dd - r_info: 0x400000002 - r_addend: -4 - -entry: 14 - r_offset: 0x639 - r_info: 0x1d00000002 - r_addend: -4 - -entry: 15 - r_offset: 0x67c - r_info: 0x1e00000002 - r_addend: -4 - -entry: 16 - r_offset: 0x697 - r_info: 0x400000002 - r_addend: -8 - -entry: 17 - r_offset: 0x69b - r_info: 0x20000000b - r_addend: 0 - -entry: 18 - r_offset: 0x6a2 - r_info: 0x400000002 - r_addend: 0 - -entry: 19 - r_offset: 0x6a6 - r_info: 0x20000000b - r_addend: 368 - -entry: 20 - r_offset: 0x6b2 - r_info: 0x1f00000002 - r_addend: -4 - -entry: 21 - r_offset: 0x6c8 - r_info: 0x2000000002 - r_addend: -4 - -entry: 22 - r_offset: 0x6e4 - r_info: 0x2100000002 - r_addend: -4 - -entry: 23 - r_offset: 0x700 - r_info: 0x1b00000002 - r_addend: -4 - -entry: 24 - r_offset: 0x723 - r_info: 0xd0000000b - r_addend: 224 - -entry: 25 - r_offset: 0x72b - r_info: 0x2200000002 - r_addend: -4 - -entry: 26 - r_offset: 0x756 - r_info: 0x2300000002 - r_addend: -4 - -entry: 27 - r_offset: 0x7d4 - r_info: 0x2400000002 - r_addend: -4 - -entry: 28 - r_offset: 0x7f7 - r_info: 0x2500000002 - r_addend: -4 - -entry: 29 - r_offset: 0x7ff - r_info: 0xd0000000b - r_addend: 368 - -entry: 30 - r_offset: 0x842 - r_info: 0xd0000000b - r_addend: 195 - -entry: 31 - r_offset: 0x86e - r_info: 0xd0000000b - r_addend: 195 - -entry: 32 - r_offset: 0x88f - r_info: 0x2500000002 - r_addend: -4 - -entry: 33 - r_offset: 0x897 - r_info: 0xd0000000b - r_addend: 368 - -entry: 34 - r_offset: 0x8b4 - r_info: 0x400000002 - r_addend: -8 - -entry: 35 - r_offset: 0x8b8 - r_info: 0x20000000b - r_addend: 160 - -entry: 36 - r_offset: 0x8bf - r_info: 0x400000002 - r_addend: 0 - -entry: 37 - r_offset: 0x8c3 - r_info: 0x20000000b - r_addend: 496 - -entry: 38 - r_offset: 0x921 - r_info: 0x1d00000002 - r_addend: -4 - -entry: 39 - r_offset: 0x954 - r_info: 0x400000002 - r_addend: -4 - -entry: 40 - r_offset: 0x9e5 - r_info: 0x400000002 - r_addend: -4 - -entry: 41 - r_offset: 0xa03 - r_info: 0x400000002 - r_addend: -4 - -entry: 42 - r_offset: 0xa22 - r_info: 0x400000002 - r_addend: -4 - -entry: 43 - r_offset: 0xb3c - r_info: 0x400000002 - r_addend: -4 - -entry: 44 - r_offset: 0xb58 - r_info: 0x2600000002 - r_addend: -4 - -entry: 45 - r_offset: 0xbb1 - r_info: 0x2700000002 - r_addend: -4 - -entry: 46 - r_offset: 0xbc8 - r_info: 0x2000000002 - r_addend: -4 - -entry: 47 - r_offset: 0xbe1 - r_info: 0x2100000002 - r_addend: -4 - -entry: 48 - r_offset: 0xc33 - r_info: 0x2400000002 - r_addend: -4 - -entry: 49 - r_offset: 0xc92 - r_info: 0x400000002 - r_addend: 4 - -entry: 50 - r_offset: 0xcab - r_info: 0x2800000002 - r_addend: -4 - -entry: 51 - r_offset: 0xcd1 - r_info: 0x2900000002 - r_addend: -4 - -entry: 52 - r_offset: 0xcde - r_info: 0xf0000000a - r_addend: 0 - -entry: 53 - r_offset: 0xce3 - r_info: 0x2a00000002 - r_addend: -4 - -entry: 54 - r_offset: 0xcf7 - r_info: 0x2500000002 - r_addend: -4 - -entry: 55 - r_offset: 0xcff - r_info: 0xd0000000b - r_addend: 368 - -entry: 56 - r_offset: 0xd27 - r_info: 0x2500000002 - r_addend: -4 - -entry: 57 - r_offset: 0xd2f - r_info: 0xd0000000b - r_addend: 368 - -entry: 58 - r_offset: 0xd57 - r_info: 0x2500000002 - r_addend: -4 - -entry: 59 - r_offset: 0xd5f - r_info: 0xd0000000b - r_addend: 368 - -entry: 60 - r_offset: 0xd92 - r_info: 0xd0000000b - r_addend: 368 - -entry: 61 - r_offset: 0xe09 - r_info: 0x2b00000002 - r_addend: -4 - -entry: 62 - r_offset: 0xe3a - r_info: 0x2c00000002 - r_addend: -4 - -entry: 63 - r_offset: 0xef1 - r_info: 0x2500000002 - r_addend: -4 - -entry: 64 - r_offset: 0xef9 - r_info: 0xd0000000b - r_addend: 400 - -entry: 65 - r_offset: 0xf37 - r_info: 0x400000002 - r_addend: -4 - -entry: 66 - r_offset: 0xf5b - r_info: 0x2500000002 - r_addend: -4 - -entry: 67 - r_offset: 0xf63 - r_info: 0xd0000000b - r_addend: 400 - -entry: 68 - r_offset: 0xf96 - r_info: 0xd0000000b - r_addend: 384 - -entry: 69 - r_offset: 0xfb6 - r_info: 0x2d00000002 - r_addend: -4 - -entry: 70 - r_offset: 0xfcd - r_info: 0xd0000000b - r_addend: 384 - -entry: 71 - r_offset: 0xffc - r_info: 0xd0000000b - r_addend: 384 - -entry: 72 - r_offset: 0x102b - r_info: 0xd0000000b - r_addend: 384 - -entry: 73 - r_offset: 0x107c - r_info: 0x2f00000002 - r_addend: -4 - -entry: 74 - r_offset: 0x10b1 - r_info: 0x3000000002 - r_addend: -4 - -entry: 75 - r_offset: 0x10c8 - r_info: 0x3100000002 - r_addend: -4 - -entry: 76 - r_offset: 0x10e5 - r_info: 0x1c00000002 - r_addend: -4 - -entry: 77 - r_offset: 0x1113 - r_info: 0x3200000002 - r_addend: -4 - -entry: 78 - r_offset: 0x1122 - r_info: 0x2f00000002 - r_addend: -4 - -entry: 79 - r_offset: 0x1177 - r_info: 0xd0000000b - r_addend: 184 - -entry: 80 - r_offset: 0x1195 - r_info: 0x2500000002 - r_addend: -4 - -entry: 81 - r_offset: 0x119d - r_info: 0xd0000000b - r_addend: 184 - -entry: 82 - r_offset: 0x11c1 - r_info: 0x2500000002 - r_addend: -4 - -entry: 83 - r_offset: 0x11c9 - r_info: 0xd0000000b - r_addend: 184 - -entry: 84 - r_offset: 0x11e1 - r_info: 0x3300000002 - r_addend: -4 - -entry: 85 - r_offset: 0x11e9 - r_info: 0x3400000002 - r_addend: -4 - -relocation with addend (.rela.rodata): - -entry: 0 - r_offset: 0 - r_info: 0x200000001 - r_addend: 827 - -entry: 1 - r_offset: 0x8 - r_info: 0x200000001 - r_addend: 919 - -entry: 2 - r_offset: 0x10 - r_info: 0x200000001 - r_addend: 827 - -entry: 3 - r_offset: 0x18 - r_info: 0x200000001 - r_addend: 966 - -entry: 4 - r_offset: 0x20 - r_info: 0x200000001 - r_addend: 1009 - -entry: 5 - r_offset: 0x28 - r_info: 0x200000001 - r_addend: 1028 - -entry: 6 - r_offset: 0x30 - r_info: 0x200000001 - r_addend: 1052 - -entry: 7 - r_offset: 0x38 - r_info: 0x200000001 - r_addend: 1079 - -entry: 8 - r_offset: 0x40 - r_info: 0x200000001 - r_addend: 1106 - -entry: 9 - r_offset: 0x48 - r_info: 0x200000001 - r_addend: 1184 - -entry: 10 - r_offset: 0x50 - r_info: 0x200000001 - r_addend: 1488 - -entry: 11 - r_offset: 0x58 - r_info: 0x200000001 - r_addend: 1368 - -entry: 12 - r_offset: 0x60 - r_info: 0x200000001 - r_addend: 1368 - -entry: 13 - r_offset: 0x68 - r_info: 0x200000001 - r_addend: 1395 - -entry: 14 - r_offset: 0x70 - r_info: 0x200000001 - r_addend: 1200 - -entry: 15 - r_offset: 0x78 - r_info: 0x200000001 - r_addend: 1248 - -entry: 16 - r_offset: 0x80 - r_info: 0x200000001 - r_addend: 1269 - -entry: 17 - r_offset: 0x88 - r_info: 0x200000001 - r_addend: 1368 - -entry: 18 - r_offset: 0x90 - r_info: 0x200000001 - r_addend: 1028 - -entry: 19 - r_offset: 0x98 - r_info: 0x200000001 - r_addend: 1052 - -entry: 20 - r_offset: 0xa0 - r_info: 0x200000001 - r_addend: 1079 - -entry: 21 - r_offset: 0xa8 - r_info: 0x200000001 - r_addend: 1248 - -entry: 22 - r_offset: 0xb0 - r_info: 0x200000001 - r_addend: 1318 - -entry: 23 - r_offset: 0xe0 - r_info: 0x1700000001 - r_addend: 0 - -entry: 24 - r_offset: 0xe8 - r_info: 0x1700000001 - r_addend: 14 - -entry: 25 - r_offset: 0xf0 - r_info: 0x1700000001 - r_addend: 29 - -entry: 26 - r_offset: 0xf8 - r_info: 0x1700000001 - r_addend: 42 - -entry: 27 - r_offset: 0x100 - r_info: 0x1700000001 - r_addend: 54 - -entry: 28 - r_offset: 0x108 - r_info: 0x1700000001 - r_addend: 66 - -entry: 29 - r_offset: 0x110 - r_info: 0x1700000001 - r_addend: 82 - -entry: 30 - r_offset: 0x118 - r_info: 0x1700000001 - r_addend: 92 - -entry: 31 - r_offset: 0x120 - r_info: 0x1700000001 - r_addend: 107 - -entry: 32 - r_offset: 0x128 - r_info: 0x1700000001 - r_addend: 118 - -entry: 33 - r_offset: 0x130 - r_info: 0x1700000001 - r_addend: 129 - -entry: 34 - r_offset: 0x138 - r_info: 0x1700000001 - r_addend: 145 - -entry: 35 - r_offset: 0x140 - r_info: 0x1700000001 - r_addend: 159 - -entry: 36 - r_offset: 0x148 - r_info: 0x1700000001 - r_addend: 178 - -entry: 37 - r_offset: 0x150 - r_info: 0x1700000001 - r_addend: 197 - -entry: 38 - r_offset: 0x158 - r_info: 0x1700000001 - r_addend: 210 - -entry: 39 - r_offset: 0x160 - r_info: 0x1700000001 - r_addend: 227 - -entry: 40 - r_offset: 0x168 - r_info: 0x1700000001 - r_addend: 235 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 160 - -entry: 2 - r_offset: 0x50 - r_info: 0x20000000a - r_addend: 368 - -entry: 3 - r_offset: 0x68 - r_info: 0x20000000a - r_addend: 496 - -entry: 4 - r_offset: 0x80 - r_info: 0x20000000a - r_addend: 608 - -entry: 5 - r_offset: 0x98 - r_info: 0x20000000a - r_addend: 672 - -entry: 6 - r_offset: 0xb0 - r_info: 0x20000000a - r_addend: 704 - -entry: 7 - r_offset: 0xd8 - r_info: 0x20000000a - r_addend: 1520 - -entry: 8 - r_offset: 0x110 - r_info: 0x20000000a - r_addend: 4176 - -libdwarf.a(dwarf_form.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x38 - r_info: 0x60000000b - r_addend: 0 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -libdwarf.a(dwarf_finish.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0xb1 - r_info: 0xa00000002 - r_addend: -4 - -entry: 1 - r_offset: 0xd7 - r_info: 0xa00000002 - r_addend: -4 - -entry: 2 - r_offset: 0x110 - r_info: 0xa00000002 - r_addend: -4 - -entry: 3 - r_offset: 0x16d - r_info: 0xa00000002 - r_addend: -4 - -entry: 4 - r_offset: 0x193 - r_info: 0xa00000002 - r_addend: -4 - -entry: 5 - r_offset: 0x1d0 - r_info: 0xa00000002 - r_addend: -4 - -entry: 6 - r_offset: 0x21c - r_info: 0xa00000002 - r_addend: -4 - -entry: 7 - r_offset: 0x235 - r_info: 0xb00000002 - r_addend: -4 - -entry: 8 - r_offset: 0x23d - r_info: 0xa00000002 - r_addend: -4 - -entry: 9 - r_offset: 0x267 - r_info: 0xa00000002 - r_addend: -4 - -entry: 10 - r_offset: 0x2a3 - r_info: 0xa00000002 - r_addend: -4 - -entry: 11 - r_offset: 0x33f - r_info: 0x60000000b - r_addend: 0 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -libdwarf.a(dwarf_errno.o): - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -libdwarf.a(dwarf_dealloc.o): - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -libdwarf.a(dwarf_attrval.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x88 - r_info: 0xe00000002 - r_addend: -4 - -entry: 1 - r_offset: 0xa9 - r_info: 0x1000000002 - r_addend: -4 - -entry: 2 - r_offset: 0xb9 - r_info: 0xb0000000a - r_addend: 0 - -entry: 3 - r_offset: 0xbe - r_info: 0x50000000a - r_addend: 0 - -entry: 4 - r_offset: 0xc5 - r_info: 0x1100000002 - r_addend: -4 - -entry: 5 - r_offset: 0xdf - r_info: 0xb0000000b - r_addend: 0 - -entry: 6 - r_offset: 0x126 - r_info: 0xb0000000b - r_addend: 0 - -entry: 7 - r_offset: 0x153 - r_info: 0xb0000000b - r_addend: 0 - -entry: 8 - r_offset: 0x191 - r_info: 0xe00000002 - r_addend: -4 - -entry: 9 - r_offset: 0x1c5 - r_info: 0x1200000002 - r_addend: -4 - -entry: 10 - r_offset: 0x1d5 - r_info: 0xe00000002 - r_addend: -4 - -entry: 11 - r_offset: 0x1fb - r_info: 0xb0000000b - r_addend: 0 - -entry: 12 - r_offset: 0x213 - r_info: 0x1000000002 - r_addend: -4 - -entry: 13 - r_offset: 0x223 - r_info: 0xb0000000a - r_addend: 0 - -entry: 14 - r_offset: 0x228 - r_info: 0x50000000a - r_addend: 0 - -entry: 15 - r_offset: 0x22f - r_info: 0x1100000002 - r_addend: -4 - -entry: 16 - r_offset: 0x249 - r_info: 0xb0000000b - r_addend: 0 - -entry: 17 - r_offset: 0x2a4 - r_info: 0xe00000002 - r_addend: -4 - -entry: 18 - r_offset: 0x2cd - r_info: 0x1000000002 - r_addend: -4 - -entry: 19 - r_offset: 0x2dd - r_info: 0xb0000000a - r_addend: 32 - -entry: 20 - r_offset: 0x2e2 - r_info: 0x50000000a - r_addend: 0 - -entry: 21 - r_offset: 0x2e9 - r_info: 0x1100000002 - r_addend: -4 - -entry: 22 - r_offset: 0x303 - r_info: 0xb0000000b - r_addend: 32 - -entry: 23 - r_offset: 0x33b - r_info: 0xb0000000b - r_addend: 32 - -entry: 24 - r_offset: 0x35f - r_info: 0xb0000000b - r_addend: 32 - -entry: 25 - r_offset: 0x3ce - r_info: 0xe00000002 - r_addend: -4 - -entry: 26 - r_offset: 0x3fa - r_info: 0x1000000002 - r_addend: -4 - -entry: 27 - r_offset: 0x40a - r_info: 0xb0000000a - r_addend: 64 - -entry: 28 - r_offset: 0x40f - r_info: 0x50000000a - r_addend: 0 - -entry: 29 - r_offset: 0x416 - r_info: 0x1100000002 - r_addend: -4 - -entry: 30 - r_offset: 0x430 - r_info: 0xb0000000b - r_addend: 64 - -entry: 31 - r_offset: 0x469 - r_info: 0xb0000000b - r_addend: 64 - -entry: 32 - r_offset: 0x4b0 - r_info: 0xb0000000b - r_addend: 64 - -entry: 33 - r_offset: 0x513 - r_info: 0xe00000002 - r_addend: -4 - -entry: 34 - r_offset: 0x532 - r_info: 0x1000000002 - r_addend: -4 - -entry: 35 - r_offset: 0x542 - r_info: 0xb0000000a - r_addend: 96 - -entry: 36 - r_offset: 0x547 - r_info: 0x50000000a - r_addend: 0 - -entry: 37 - r_offset: 0x54e - r_info: 0x1100000002 - r_addend: -4 - -entry: 38 - r_offset: 0x568 - r_info: 0xb0000000b - r_addend: 96 - -entry: 39 - r_offset: 0x5a6 - r_info: 0xb0000000b - r_addend: 96 - -entry: 40 - r_offset: 0x5ca - r_info: 0xb0000000b - r_addend: 96 - -entry: 41 - r_offset: 0x61a - r_info: 0x1700000002 - r_addend: -4 - -entry: 42 - r_offset: 0x63c - r_info: 0xb0000000b - r_addend: 128 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 48 - -entry: 2 - r_offset: 0x58 - r_info: 0x20000000a - r_addend: 608 - -entry: 3 - r_offset: 0x78 - r_info: 0x20000000a - r_addend: 896 - -entry: 4 - r_offset: 0x98 - r_info: 0x20000000a - r_addend: 1232 - -entry: 5 - r_offset: 0xb8 - r_info: 0x20000000a - r_addend: 1520 - -libdwarf.a(dwarf_attr.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x5b - r_info: 0x70000000b - r_addend: 15 - -entry: 1 - r_offset: 0x88 - r_info: 0x70000000b - r_addend: 15 - -entry: 2 - r_offset: 0xf0 - r_info: 0x70000000b - r_addend: 0 - -entry: 3 - r_offset: 0x124 - r_info: 0xc00000002 - r_addend: -4 - -entry: 4 - r_offset: 0x146 - r_info: 0x70000000b - r_addend: 0 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 160 - -libdwarf.a(dwarf_abbrev.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x6a - r_info: 0xb00000002 - r_addend: -4 - -entry: 1 - r_offset: 0x8c - r_info: 0x60000000b - r_addend: 0 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 48 - -libdwarf.a(dwarf_dump.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x4 - r_info: 0x50000000a - r_addend: 172 - -entry: 1 - r_offset: 0x10 - r_info: 0x50000000a - r_addend: 228 - -entry: 2 - r_offset: 0x1f - r_info: 0x50000000a - r_addend: 268 - -entry: 3 - r_offset: 0x2f - r_info: 0x60000000a - r_addend: 176 - -entry: 4 - r_offset: 0x41 - r_info: 0x50000000a - r_addend: 13 - -entry: 5 - r_offset: 0x47 - r_info: 0x50000000a - r_addend: 243 - -entry: 6 - r_offset: 0x56 - r_info: 0x60000000a - r_addend: 0 - -entry: 7 - r_offset: 0x62 - r_info: 0x50000000a - r_addend: 142 - -entry: 8 - r_offset: 0x72 - r_info: 0x50000000a - r_addend: 155 - -entry: 9 - r_offset: 0x7e - r_info: 0x60000000a - r_addend: 32 - -entry: 10 - r_offset: 0x87 - r_info: 0x60000000a - r_addend: 64 - -entry: 11 - r_offset: 0x93 - r_info: 0x60000000a - r_addend: 104 - -entry: 12 - r_offset: 0x9f - r_info: 0x60000000a - r_addend: 136 - -entry: 13 - r_offset: 0xa8 - r_info: 0x50000000a - r_addend: 30 - -entry: 14 - r_offset: 0xb4 - r_info: 0x50000000a - r_addend: 58 - -entry: 15 - r_offset: 0xc0 - r_info: 0x50000000a - r_addend: 79 - -entry: 16 - r_offset: 0xc6 - r_info: 0x50000000a - r_addend: 21 - -entry: 17 - r_offset: 0xd2 - r_info: 0x50000000a - r_addend: 293 - -entry: 18 - r_offset: 0xe3 - r_info: 0x50000000a - r_addend: 0 - -entry: 19 - r_offset: 0xfc - r_info: 0x50000000a - r_addend: 199 - -entry: 20 - r_offset: 0x105 - r_info: 0x50000000a - r_addend: 100 - -entry: 21 - r_offset: 0x119 - r_info: 0x50000000a - r_addend: 126 - -entry: 22 - r_offset: 0x126 - r_info: 0x50000000a - r_addend: 341 - -entry: 23 - r_offset: 0x135 - r_info: 0x70000000b - r_addend: 0 - -entry: 24 - r_offset: 0x13a - r_info: 0x50000000a - r_addend: 314 - -entry: 25 - r_offset: 0x140 - r_info: 0x50000000a - r_addend: 1370 - -entry: 26 - r_offset: 0x146 - r_info: 0x50000000a - r_addend: 1345 - -entry: 27 - r_offset: 0x14c - r_info: 0x50000000a - r_addend: 1326 - -entry: 28 - r_offset: 0x152 - r_info: 0x50000000a - r_addend: 1297 - -entry: 29 - r_offset: 0x158 - r_info: 0x50000000a - r_addend: 1207 - -entry: 30 - r_offset: 0x15e - r_info: 0x50000000a - r_addend: 1169 - -entry: 31 - r_offset: 0x164 - r_info: 0x50000000a - r_addend: 1141 - -entry: 32 - r_offset: 0x16a - r_info: 0x50000000a - r_addend: 1076 - -entry: 33 - r_offset: 0x170 - r_info: 0x50000000a - r_addend: 1041 - -entry: 34 - r_offset: 0x176 - r_info: 0x50000000a - r_addend: 1000 - -entry: 35 - r_offset: 0x17c - r_info: 0x50000000a - r_addend: 873 - -entry: 36 - r_offset: 0x182 - r_info: 0x50000000a - r_addend: 846 - -entry: 37 - r_offset: 0x188 - r_info: 0x50000000a - r_addend: 829 - -entry: 38 - r_offset: 0x18e - r_info: 0x50000000a - r_addend: 814 - -entry: 39 - r_offset: 0x194 - r_info: 0x50000000a - r_addend: 799 - -entry: 40 - r_offset: 0x19a - r_info: 0x50000000a - r_addend: 745 - -entry: 41 - r_offset: 0x1a0 - r_info: 0x50000000a - r_addend: 695 - -entry: 42 - r_offset: 0x1a6 - r_info: 0x50000000a - r_addend: 679 - -entry: 43 - r_offset: 0x1ac - r_info: 0x50000000a - r_addend: 663 - -entry: 44 - r_offset: 0x1b2 - r_info: 0x50000000a - r_addend: 645 - -entry: 45 - r_offset: 0x1b8 - r_info: 0x50000000a - r_addend: 618 - -entry: 46 - r_offset: 0x1be - r_info: 0x50000000a - r_addend: 606 - -entry: 47 - r_offset: 0x1c4 - r_info: 0x50000000a - r_addend: 503 - -entry: 48 - r_offset: 0x1ca - r_info: 0x50000000a - r_addend: 438 - -entry: 49 - r_offset: 0x1d0 - r_info: 0x50000000a - r_addend: 421 - -entry: 50 - r_offset: 0x1d6 - r_info: 0x50000000a - r_addend: 401 - -entry: 51 - r_offset: 0x1dc - r_info: 0x50000000a - r_addend: 381 - -entry: 52 - r_offset: 0x1e2 - r_info: 0x50000000a - r_addend: 359 - -entry: 53 - r_offset: 0x1e8 - r_info: 0x50000000a - r_addend: 1308 - -entry: 54 - r_offset: 0x1ee - r_info: 0x50000000a - r_addend: 1241 - -entry: 55 - r_offset: 0x1f4 - r_info: 0x50000000a - r_addend: 1189 - -entry: 56 - r_offset: 0x1fa - r_info: 0x50000000a - r_addend: 1123 - -entry: 57 - r_offset: 0x200 - r_info: 0x50000000a - r_addend: 1106 - -entry: 58 - r_offset: 0x206 - r_info: 0x50000000a - r_addend: 1091 - -entry: 59 - r_offset: 0x20c - r_info: 0x50000000a - r_addend: 982 - -entry: 60 - r_offset: 0x212 - r_info: 0x50000000a - r_addend: 921 - -entry: 61 - r_offset: 0x218 - r_info: 0x50000000a - r_addend: 908 - -entry: 62 - r_offset: 0x21e - r_info: 0x50000000a - r_addend: 713 - -entry: 63 - r_offset: 0x224 - r_info: 0x50000000a - r_addend: 584 - -entry: 64 - r_offset: 0x22a - r_info: 0x50000000a - r_addend: 566 - -entry: 65 - r_offset: 0x230 - r_info: 0x50000000a - r_addend: 551 - -entry: 66 - r_offset: 0x236 - r_info: 0x50000000a - r_addend: 528 - -entry: 67 - r_offset: 0x23c - r_info: 0x50000000a - r_addend: 1259 - -entry: 68 - r_offset: 0x242 - r_info: 0x50000000a - r_addend: 895 - -entry: 69 - r_offset: 0x248 - r_info: 0x50000000a - r_addend: 1387 - -entry: 70 - r_offset: 0x24e - r_info: 0x50000000a - r_addend: 762 - -entry: 71 - r_offset: 0x254 - r_info: 0x50000000a - r_addend: 733 - -entry: 72 - r_offset: 0x25a - r_info: 0x50000000a - r_addend: 1017 - -entry: 73 - r_offset: 0x260 - r_info: 0x50000000a - r_addend: 939 - -entry: 74 - r_offset: 0x266 - r_info: 0x50000000a - r_addend: 859 - -entry: 75 - r_offset: 0x26c - r_info: 0x50000000a - r_addend: 969 - -entry: 76 - r_offset: 0x272 - r_info: 0x50000000a - r_addend: 1225 - -entry: 77 - r_offset: 0x278 - r_info: 0x50000000a - r_addend: 780 - -entry: 78 - r_offset: 0x27e - r_info: 0x50000000a - r_addend: 472 - -entry: 79 - r_offset: 0x284 - r_info: 0x50000000a - r_addend: 455 - -entry: 80 - r_offset: 0x28a - r_info: 0x50000000a - r_addend: 487 - -entry: 81 - r_offset: 0x290 - r_info: 0x50000000a - r_addend: 1279 - -entry: 82 - r_offset: 0x296 - r_info: 0x50000000a - r_addend: 1061 - -entry: 83 - r_offset: 0x29c - r_info: 0x50000000a - r_addend: 1030 - -entry: 84 - r_offset: 0x2a2 - r_info: 0x50000000a - r_addend: 954 - -entry: 85 - r_offset: 0x2a8 - r_info: 0x50000000a - r_addend: 1155 - -entry: 86 - r_offset: 0x2b6 - r_info: 0x50000000a - r_addend: 341 - -entry: 87 - r_offset: 0x2c5 - r_info: 0x70000000b - r_addend: 624 - -entry: 88 - r_offset: 0x2ca - r_info: 0x50000000a - r_addend: 1559 - -entry: 89 - r_offset: 0x2d0 - r_info: 0x50000000a - r_addend: 1645 - -entry: 90 - r_offset: 0x2d6 - r_info: 0x50000000a - r_addend: 1615 - -entry: 91 - r_offset: 0x2dc - r_info: 0x50000000a - r_addend: 1602 - -entry: 92 - r_offset: 0x2e2 - r_info: 0x50000000a - r_addend: 1589 - -entry: 93 - r_offset: 0x2e8 - r_info: 0x50000000a - r_addend: 1576 - -entry: 94 - r_offset: 0x2ee - r_info: 0x50000000a - r_addend: 1628 - -entry: 95 - r_offset: 0x2f4 - r_info: 0x50000000a - r_addend: 1404 - -entry: 96 - r_offset: 0x2fa - r_info: 0x50000000a - r_addend: 1692 - -entry: 97 - r_offset: 0x300 - r_info: 0x50000000a - r_addend: 1663 - -entry: 98 - r_offset: 0x306 - r_info: 0x50000000a - r_addend: 1546 - -entry: 99 - r_offset: 0x30c - r_info: 0x50000000a - r_addend: 1490 - -entry: 100 - r_offset: 0x312 - r_info: 0x50000000a - r_addend: 1445 - -entry: 101 - r_offset: 0x318 - r_info: 0x50000000a - r_addend: 1431 - -entry: 102 - r_offset: 0x31e - r_info: 0x50000000a - r_addend: 1677 - -entry: 103 - r_offset: 0x324 - r_info: 0x50000000a - r_addend: 1532 - -entry: 104 - r_offset: 0x32a - r_info: 0x50000000a - r_addend: 1518 - -entry: 105 - r_offset: 0x330 - r_info: 0x50000000a - r_addend: 1504 - -entry: 106 - r_offset: 0x336 - r_info: 0x50000000a - r_addend: 1475 - -entry: 107 - r_offset: 0x33c - r_info: 0x50000000a - r_addend: 1460 - -entry: 108 - r_offset: 0x342 - r_info: 0x50000000a - r_addend: 1418 - -entry: 109 - r_offset: 0x356 - r_info: 0x50000000a - r_addend: 1722 - -entry: 110 - r_offset: 0x365 - r_info: 0x70000000b - r_addend: 808 - -entry: 111 - r_offset: 0x36a - r_info: 0x50000000a - r_addend: 2468 - -entry: 112 - r_offset: 0x370 - r_info: 0x50000000a - r_addend: 1896 - -entry: 113 - r_offset: 0x376 - r_info: 0x50000000a - r_addend: 2120 - -entry: 114 - r_offset: 0x37c - r_info: 0x50000000a - r_addend: 2343 - -entry: 115 - r_offset: 0x382 - r_info: 0x50000000a - r_addend: 2689 - -entry: 116 - r_offset: 0x388 - r_info: 0x50000000a - r_addend: 2097 - -entry: 117 - r_offset: 0x38e - r_info: 0x50000000a - r_addend: 2307 - -entry: 118 - r_offset: 0x394 - r_info: 0x50000000a - r_addend: 2186 - -entry: 119 - r_offset: 0x39a - r_info: 0x50000000a - r_addend: 2431 - -entry: 120 - r_offset: 0x3a0 - r_info: 0x50000000a - r_addend: 1947 - -entry: 121 - r_offset: 0x3a6 - r_info: 0x50000000a - r_addend: 2764 - -entry: 122 - r_offset: 0x3ac - r_info: 0x50000000a - r_addend: 2713 - -entry: 123 - r_offset: 0x3b2 - r_info: 0x50000000a - r_addend: 2744 - -entry: 124 - r_offset: 0x3b8 - r_info: 0x50000000a - r_addend: 2609 - -entry: 125 - r_offset: 0x3be - r_info: 0x50000000a - r_addend: 2590 - -entry: 126 - r_offset: 0x3c4 - r_info: 0x60000000a - r_addend: 248 - -entry: 127 - r_offset: 0x3ca - r_info: 0x60000000a - r_addend: 216 - -entry: 128 - r_offset: 0x3d0 - r_info: 0x50000000a - r_addend: 2528 - -entry: 129 - r_offset: 0x3d6 - r_info: 0x50000000a - r_addend: 2324 - -entry: 130 - r_offset: 0x3dc - r_info: 0x50000000a - r_addend: 2286 - -entry: 131 - r_offset: 0x3e2 - r_info: 0x50000000a - r_addend: 2270 - -entry: 132 - r_offset: 0x3e8 - r_info: 0x50000000a - r_addend: 2055 - -entry: 133 - r_offset: 0x3ee - r_info: 0x50000000a - r_addend: 2013 - -entry: 134 - r_offset: 0x3f4 - r_info: 0x50000000a - r_addend: 1931 - -entry: 135 - r_offset: 0x3fa - r_info: 0x50000000a - r_addend: 1913 - -entry: 136 - r_offset: 0x400 - r_info: 0x50000000a - r_addend: 1795 - -entry: 137 - r_offset: 0x406 - r_info: 0x50000000a - r_addend: 1778 - -entry: 138 - r_offset: 0x40c - r_info: 0x50000000a - r_addend: 1734 - -entry: 139 - r_offset: 0x412 - r_info: 0x50000000a - r_addend: 1705 - -entry: 140 - r_offset: 0x418 - r_info: 0x50000000a - r_addend: 2546 - -entry: 141 - r_offset: 0x41e - r_info: 0x50000000a - r_addend: 2452 - -entry: 142 - r_offset: 0x424 - r_info: 0x50000000a - r_addend: 2383 - -entry: 143 - r_offset: 0x42a - r_info: 0x50000000a - r_addend: 2256 - -entry: 144 - r_offset: 0x430 - r_info: 0x50000000a - r_addend: 2160 - -entry: 145 - r_offset: 0x436 - r_info: 0x50000000a - r_addend: 2141 - -entry: 146 - r_offset: 0x43c - r_info: 0x50000000a - r_addend: 1852 - -entry: 147 - r_offset: 0x442 - r_info: 0x50000000a - r_addend: 1832 - -entry: 148 - r_offset: 0x448 - r_info: 0x50000000a - r_addend: 2729 - -entry: 149 - r_offset: 0x44e - r_info: 0x50000000a - r_addend: 2659 - -entry: 150 - r_offset: 0x454 - r_info: 0x50000000a - r_addend: 2641 - -entry: 151 - r_offset: 0x45a - r_info: 0x50000000a - r_addend: 2626 - -entry: 152 - r_offset: 0x460 - r_info: 0x50000000a - r_addend: 2567 - -entry: 153 - r_offset: 0x466 - r_info: 0x50000000a - r_addend: 2506 - -entry: 154 - r_offset: 0x46c - r_info: 0x50000000a - r_addend: 2487 - -entry: 155 - r_offset: 0x472 - r_info: 0x50000000a - r_addend: 1876 - -entry: 156 - r_offset: 0x478 - r_info: 0x50000000a - r_addend: 2409 - -entry: 157 - r_offset: 0x47e - r_info: 0x50000000a - r_addend: 2363 - -entry: 158 - r_offset: 0x484 - r_info: 0x50000000a - r_addend: 2242 - -entry: 159 - r_offset: 0x48a - r_info: 0x50000000a - r_addend: 2221 - -entry: 160 - r_offset: 0x490 - r_info: 0x50000000a - r_addend: 2208 - -entry: 161 - r_offset: 0x496 - r_info: 0x50000000a - r_addend: 2069 - -entry: 162 - r_offset: 0x49c - r_info: 0x50000000a - r_addend: 2031 - -entry: 163 - r_offset: 0x4a2 - r_info: 0x50000000a - r_addend: 1989 - -entry: 164 - r_offset: 0x4a8 - r_info: 0x50000000a - r_addend: 1970 - -entry: 165 - r_offset: 0x4ae - r_info: 0x50000000a - r_addend: 1814 - -entry: 166 - r_offset: 0x4b4 - r_info: 0x50000000a - r_addend: 1760 - -entry: 167 - r_offset: 0x4ca - r_info: 0x60000000a - r_addend: 280 - -entry: 168 - r_offset: 0x4d3 - r_info: 0x1000000002 - r_addend: -4 - -entry: 169 - r_offset: 0x4fc - r_info: 0x50000000a - r_addend: 2789 - -entry: 170 - r_offset: 0x501 - r_info: 0x50000000a - r_addend: 2785 - -entry: 171 - r_offset: 0x50a - r_info: 0xe00000002 - r_addend: -4 - -entry: 172 - r_offset: 0x51b - r_info: 0x50000000a - r_addend: 2792 - -entry: 173 - r_offset: 0x520 - r_info: 0x1100000002 - r_addend: -4 - -entry: 174 - r_offset: 0x535 - r_info: 0xd00000002 - r_addend: -4 - -entry: 175 - r_offset: 0x541 - r_info: 0xc00000002 - r_addend: -4 - -entry: 176 - r_offset: 0x54c - r_info: 0x50000000a - r_addend: 2818 - -entry: 177 - r_offset: 0x553 - r_info: 0x1100000002 - r_addend: -4 - -entry: 178 - r_offset: 0x59a - r_info: 0x60000000a - r_addend: 336 - -entry: 179 - r_offset: 0x5a3 - r_info: 0x1000000002 - r_addend: -4 - -entry: 180 - r_offset: 0x5b4 - r_info: 0x1300000002 - r_addend: -4 - -entry: 181 - r_offset: 0x5cd - r_info: 0x1400000002 - r_addend: -4 - -entry: 182 - r_offset: 0x5e4 - r_info: 0x60000000a - r_addend: 424 - -entry: 183 - r_offset: 0x5eb - r_info: 0x1100000002 - r_addend: -4 - -entry: 184 - r_offset: 0x5fc - r_info: 0x60000000a - r_addend: 384 - -entry: 185 - r_offset: 0x601 - r_info: 0x1100000002 - r_addend: -4 - -entry: 186 - r_offset: 0x616 - r_info: 0x60000000a - r_addend: 472 - -entry: 187 - r_offset: 0x61f - r_info: 0x1000000002 - r_addend: -4 - -entry: 188 - r_offset: 0x62b - r_info: 0x50000000a - r_addend: 2834 - -entry: 189 - r_offset: 0x632 - r_info: 0x1100000002 - r_addend: -4 - -entry: 190 - r_offset: 0x63a - r_info: 0x1600000002 - r_addend: -4 - -entry: 191 - r_offset: 0x652 - r_info: 0x1400000002 - r_addend: -4 - -entry: 192 - r_offset: 0x676 - r_info: 0x60000000a - r_addend: 528 - -entry: 193 - r_offset: 0x67f - r_info: 0x1000000002 - r_addend: -4 - -entry: 194 - r_offset: 0x68b - r_info: 0x50000000a - r_addend: 2834 - -entry: 195 - r_offset: 0x692 - r_info: 0x1100000002 - r_addend: -4 - -entry: 196 - r_offset: 0x69a - r_info: 0x1600000002 - r_addend: -4 - -entry: 197 - r_offset: 0x6b2 - r_info: 0x1400000002 - r_addend: -4 - -entry: 198 - r_offset: 0x6d6 - r_info: 0x60000000a - r_addend: 576 - -entry: 199 - r_offset: 0x6df - r_info: 0x1000000002 - r_addend: -4 - -entry: 200 - r_offset: 0x6eb - r_info: 0x50000000a - r_addend: 2834 - -entry: 201 - r_offset: 0x6f2 - r_info: 0x1100000002 - r_addend: -4 - -entry: 202 - r_offset: 0x6fa - r_info: 0x1600000002 - r_addend: -4 - -entry: 203 - r_offset: 0x70f - r_info: 0x1400000002 - r_addend: -4 - -entry: 204 - r_offset: 0x72b - r_info: 0x50000000a - r_addend: 2844 - -entry: 205 - r_offset: 0x732 - r_info: 0x1100000002 - r_addend: -4 - -entry: 206 - r_offset: 0x754 - r_info: 0x50000000a - r_addend: 2852 - -entry: 207 - r_offset: 0x75d - r_info: 0x1100000002 - r_addend: -4 - -entry: 208 - r_offset: 0x777 - r_info: 0x50000000a - r_addend: 2856 - -entry: 209 - r_offset: 0x780 - r_info: 0x1100000002 - r_addend: -4 - -entry: 210 - r_offset: 0x78f - r_info: 0x1a00000002 - r_addend: -4 - -entry: 211 - r_offset: 0x7b1 - r_info: 0x50000000a - r_addend: 2862 - -entry: 212 - r_offset: 0x7b8 - r_info: 0x1100000002 - r_addend: -4 - -entry: 213 - r_offset: 0x7c6 - r_info: 0x50000000a - r_addend: 2852 - -entry: 214 - r_offset: 0x7cf - r_info: 0x1100000002 - r_addend: -4 - -entry: 215 - r_offset: 0x7e9 - r_info: 0x50000000a - r_addend: 2856 - -entry: 216 - r_offset: 0x7f2 - r_info: 0x1100000002 - r_addend: -4 - -entry: 217 - r_offset: 0x801 - r_info: 0x1a00000002 - r_addend: -4 - -entry: 218 - r_offset: 0x83e - r_info: 0xd00000002 - r_addend: -4 - -entry: 219 - r_offset: 0x84a - r_info: 0xc00000002 - r_addend: -4 - -entry: 220 - r_offset: 0x855 - r_info: 0x50000000a - r_addend: 2869 - -entry: 221 - r_offset: 0x85c - r_info: 0x1100000002 - r_addend: -4 - -entry: 222 - r_offset: 0x868 - r_info: 0x50000000a - r_addend: 2928 - -entry: 223 - r_offset: 0x86f - r_info: 0x1100000002 - r_addend: -4 - -entry: 224 - r_offset: 0x897 - r_info: 0x70000000b - r_addend: 1328 - -entry: 225 - r_offset: 0x8a5 - r_info: 0x50000000a - r_addend: 2918 - -entry: 226 - r_offset: 0x8af - r_info: 0x1100000002 - r_addend: -4 - -entry: 227 - r_offset: 0x8ba - r_info: 0x50000000a - r_addend: 2890 - -entry: 228 - r_offset: 0x8c1 - r_info: 0x1100000002 - r_addend: -4 - -entry: 229 - r_offset: 0x8ce - r_info: 0x50000000a - r_addend: 2897 - -entry: 230 - r_offset: 0x8d3 - r_info: 0x1100000002 - r_addend: -4 - -entry: 231 - r_offset: 0x8e5 - r_info: 0x50000000a - r_addend: 2856 - -entry: 232 - r_offset: 0x8f4 - r_info: 0x1100000002 - r_addend: -4 - -entry: 233 - r_offset: 0x908 - r_info: 0x50000000a - r_addend: 2913 - -entry: 234 - r_offset: 0x90f - r_info: 0x1100000002 - r_addend: -4 - -entry: 235 - r_offset: 0x91d - r_info: 0x50000000a - r_addend: 2925 - -entry: 236 - r_offset: 0x924 - r_info: 0x1100000002 - r_addend: -4 - -entry: 237 - r_offset: 0x936 - r_info: 0x60000000a - r_addend: 640 - -entry: 238 - r_offset: 0x93d - r_info: 0x1100000002 - r_addend: -4 - -entry: 239 - r_offset: 0x962 - r_info: 0xe00000002 - r_addend: -4 - -entry: 240 - r_offset: 0x977 - r_info: 0x60000000a - r_addend: 680 - -entry: 241 - r_offset: 0x97c - r_info: 0x1100000002 - r_addend: -4 - -entry: 242 - r_offset: 0x997 - r_info: 0x1b00000002 - r_addend: -4 - -entry: 243 - r_offset: 0x9b6 - r_info: 0x60000000a - r_addend: 720 - -entry: 244 - r_offset: 0x9bf - r_info: 0x1000000002 - r_addend: -4 - -entry: 245 - r_offset: 0x9d4 - r_info: 0x60000000a - r_addend: 760 - -entry: 246 - r_offset: 0x9db - r_info: 0x1100000002 - r_addend: -4 - -entry: 247 - r_offset: 0x9e3 - r_info: 0x50000000a - r_addend: 2941 - -entry: 248 - r_offset: 0x9ea - r_info: 0x1100000002 - r_addend: -4 - -entry: 249 - r_offset: 0x9f3 - r_info: 0x50000000a - r_addend: 2967 - -entry: 250 - r_offset: 0x9fa - r_info: 0x1100000002 - r_addend: -4 - -entry: 251 - r_offset: 0xa03 - r_info: 0x50000000a - r_addend: 2993 - -entry: 252 - r_offset: 0xa0a - r_info: 0x1100000002 - r_addend: -4 - -entry: 253 - r_offset: 0xa15 - r_info: 0x50000000a - r_addend: 3019 - -entry: 254 - r_offset: 0xa1a - r_info: 0x1100000002 - r_addend: -4 - -entry: 255 - r_offset: 0xa2b - r_info: 0x1c00000002 - r_addend: -4 - -entry: 256 - r_offset: 0xa55 - r_info: 0x1700000002 - r_addend: -4 - -entry: 257 - r_offset: 0xa5d - r_info: 0x1800000002 - r_addend: -4 - -entry: 258 - r_offset: 0xa65 - r_info: 0x1500000002 - r_addend: -4 - -entry: 259 - r_offset: 0xa6d - r_info: 0x1200000002 - r_addend: -4 - -entry: 260 - r_offset: 0xaae - r_info: 0x1f00000002 - r_addend: -4 - -entry: 261 - r_offset: 0xac2 - r_info: 0x1c00000002 - r_addend: -4 - -entry: 262 - r_offset: 0xad1 - r_info: 0x2000000002 - r_addend: -4 - -entry: 263 - r_offset: 0xb1e - r_info: 0x2200000002 - r_addend: -4 - -entry: 264 - r_offset: 0xb5c - r_info: 0x1f00000002 - r_addend: -4 - -entry: 265 - r_offset: 0xb8c - r_info: 0x60000000a - r_addend: 760 - -entry: 266 - r_offset: 0xb93 - r_info: 0x1100000002 - r_addend: -4 - -entry: 267 - r_offset: 0xb9b - r_info: 0x50000000a - r_addend: 2941 - -entry: 268 - r_offset: 0xba2 - r_info: 0x1100000002 - r_addend: -4 - -entry: 269 - r_offset: 0xbab - r_info: 0x50000000a - r_addend: 2967 - -entry: 270 - r_offset: 0xbb2 - r_info: 0x1100000002 - r_addend: -4 - -entry: 271 - r_offset: 0xbbb - r_info: 0x50000000a - r_addend: 2993 - -entry: 272 - r_offset: 0xbc2 - r_info: 0x1100000002 - r_addend: -4 - -entry: 273 - r_offset: 0xbcb - r_info: 0x50000000a - r_addend: 3019 - -entry: 274 - r_offset: 0xbd2 - r_info: 0x1100000002 - r_addend: -4 - -entry: 275 - r_offset: 0xbf3 - r_info: 0x2300000002 - r_addend: -4 - -entry: 276 - r_offset: 0xc03 - r_info: 0x2400000002 - r_addend: -4 - -entry: 277 - r_offset: 0xc08 - r_info: 0x50000000a - r_addend: 3044 - -entry: 278 - r_offset: 0xc12 - r_info: 0x1100000002 - r_addend: -4 - -entry: 279 - r_offset: 0xc21 - r_info: 0x2200000002 - r_addend: -4 - -entry: 280 - r_offset: 0xc3a - r_info: 0x2500000002 - r_addend: -4 - -entry: 281 - r_offset: 0x88b - r_info: 0x1a00000002 - r_addend: -4 - -entry: 282 - r_offset: 0xa76 - r_info: 0x1d00000002 - r_addend: -4 - -entry: 283 - r_offset: 0xc73 - r_info: 0x1c00000002 - r_addend: -4 - -relocation with addend (.rela.rodata): - -entry: 0 - r_offset: 0 - r_info: 0x200000001 - r_addend: 293 - -entry: 1 - r_offset: 0x8 - r_info: 0x200000001 - r_addend: 679 - -entry: 2 - r_offset: 0x10 - r_info: 0x200000001 - r_addend: 673 - -entry: 3 - r_offset: 0x18 - r_info: 0x200000001 - r_addend: 667 - -entry: 4 - r_offset: 0x20 - r_info: 0x200000001 - r_addend: 293 - -entry: 5 - r_offset: 0x28 - r_info: 0x200000001 - r_addend: 293 - -entry: 6 - r_offset: 0x30 - r_info: 0x200000001 - r_addend: 293 - -entry: 7 - r_offset: 0x38 - r_info: 0x200000001 - r_addend: 293 - -entry: 8 - r_offset: 0x40 - r_info: 0x200000001 - r_addend: 293 - -entry: 9 - r_offset: 0x48 - r_info: 0x200000001 - r_addend: 661 - -entry: 10 - r_offset: 0x50 - r_info: 0x200000001 - r_addend: 655 - -entry: 11 - r_offset: 0x58 - r_info: 0x200000001 - r_addend: 649 - -entry: 12 - r_offset: 0x60 - r_info: 0x200000001 - r_addend: 643 - -entry: 13 - r_offset: 0x68 - r_info: 0x200000001 - r_addend: 637 - -entry: 14 - r_offset: 0x70 - r_info: 0x200000001 - r_addend: 293 - -entry: 15 - r_offset: 0x78 - r_info: 0x200000001 - r_addend: 631 - -entry: 16 - r_offset: 0x80 - r_info: 0x200000001 - r_addend: 625 - -entry: 17 - r_offset: 0x88 - r_info: 0x200000001 - r_addend: 619 - -entry: 18 - r_offset: 0x90 - r_info: 0x200000001 - r_addend: 613 - -entry: 19 - r_offset: 0x98 - r_info: 0x200000001 - r_addend: 607 - -entry: 20 - r_offset: 0xa0 - r_info: 0x200000001 - r_addend: 601 - -entry: 21 - r_offset: 0xa8 - r_info: 0x200000001 - r_addend: 595 - -entry: 22 - r_offset: 0xb0 - r_info: 0x200000001 - r_addend: 589 - -entry: 23 - r_offset: 0xb8 - r_info: 0x200000001 - r_addend: 583 - -entry: 24 - r_offset: 0xc0 - r_info: 0x200000001 - r_addend: 577 - -entry: 25 - r_offset: 0xc8 - r_info: 0x200000001 - r_addend: 571 - -entry: 26 - r_offset: 0xd0 - r_info: 0x200000001 - r_addend: 565 - -entry: 27 - r_offset: 0xd8 - r_info: 0x200000001 - r_addend: 559 - -entry: 28 - r_offset: 0xe0 - r_info: 0x200000001 - r_addend: 553 - -entry: 29 - r_offset: 0xe8 - r_info: 0x200000001 - r_addend: 547 - -entry: 30 - r_offset: 0xf0 - r_info: 0x200000001 - r_addend: 541 - -entry: 31 - r_offset: 0xf8 - r_info: 0x200000001 - r_addend: 293 - -entry: 32 - r_offset: 0x100 - r_info: 0x200000001 - r_addend: 535 - -entry: 33 - r_offset: 0x108 - r_info: 0x200000001 - r_addend: 529 - -entry: 34 - r_offset: 0x110 - r_info: 0x200000001 - r_addend: 523 - -entry: 35 - r_offset: 0x118 - r_info: 0x200000001 - r_addend: 293 - -entry: 36 - r_offset: 0x120 - r_info: 0x200000001 - r_addend: 293 - -entry: 37 - r_offset: 0x128 - r_info: 0x200000001 - r_addend: 517 - -entry: 38 - r_offset: 0x130 - r_info: 0x200000001 - r_addend: 293 - -entry: 39 - r_offset: 0x138 - r_info: 0x200000001 - r_addend: 511 - -entry: 40 - r_offset: 0x140 - r_info: 0x200000001 - r_addend: 293 - -entry: 41 - r_offset: 0x148 - r_info: 0x200000001 - r_addend: 293 - -entry: 42 - r_offset: 0x150 - r_info: 0x200000001 - r_addend: 505 - -entry: 43 - r_offset: 0x158 - r_info: 0x200000001 - r_addend: 293 - -entry: 44 - r_offset: 0x160 - r_info: 0x200000001 - r_addend: 499 - -entry: 45 - r_offset: 0x168 - r_info: 0x200000001 - r_addend: 293 - -entry: 46 - r_offset: 0x170 - r_info: 0x200000001 - r_addend: 493 - -entry: 47 - r_offset: 0x178 - r_info: 0x200000001 - r_addend: 487 - -entry: 48 - r_offset: 0x180 - r_info: 0x200000001 - r_addend: 293 - -entry: 49 - r_offset: 0x188 - r_info: 0x200000001 - r_addend: 481 - -entry: 50 - r_offset: 0x190 - r_info: 0x200000001 - r_addend: 475 - -entry: 51 - r_offset: 0x198 - r_info: 0x200000001 - r_addend: 469 - -entry: 52 - r_offset: 0x1a0 - r_info: 0x200000001 - r_addend: 463 - -entry: 53 - r_offset: 0x1a8 - r_info: 0x200000001 - r_addend: 457 - -entry: 54 - r_offset: 0x1b0 - r_info: 0x200000001 - r_addend: 451 - -entry: 55 - r_offset: 0x1b8 - r_info: 0x200000001 - r_addend: 445 - -entry: 56 - r_offset: 0x1c0 - r_info: 0x200000001 - r_addend: 439 - -entry: 57 - r_offset: 0x1c8 - r_info: 0x200000001 - r_addend: 433 - -entry: 58 - r_offset: 0x1d0 - r_info: 0x200000001 - r_addend: 427 - -entry: 59 - r_offset: 0x1d8 - r_info: 0x200000001 - r_addend: 421 - -entry: 60 - r_offset: 0x1e0 - r_info: 0x200000001 - r_addend: 415 - -entry: 61 - r_offset: 0x1e8 - r_info: 0x200000001 - r_addend: 409 - -entry: 62 - r_offset: 0x1f0 - r_info: 0x200000001 - r_addend: 403 - -entry: 63 - r_offset: 0x1f8 - r_info: 0x200000001 - r_addend: 397 - -entry: 64 - r_offset: 0x200 - r_info: 0x200000001 - r_addend: 391 - -entry: 65 - r_offset: 0x208 - r_info: 0x200000001 - r_addend: 385 - -entry: 66 - r_offset: 0x210 - r_info: 0x200000001 - r_addend: 379 - -entry: 67 - r_offset: 0x218 - r_info: 0x200000001 - r_addend: 373 - -entry: 68 - r_offset: 0x220 - r_info: 0x200000001 - r_addend: 367 - -entry: 69 - r_offset: 0x228 - r_info: 0x200000001 - r_addend: 361 - -entry: 70 - r_offset: 0x230 - r_info: 0x200000001 - r_addend: 355 - -entry: 71 - r_offset: 0x238 - r_info: 0x200000001 - r_addend: 349 - -entry: 72 - r_offset: 0x240 - r_info: 0x200000001 - r_addend: 343 - -entry: 73 - r_offset: 0x248 - r_info: 0x200000001 - r_addend: 337 - -entry: 74 - r_offset: 0x250 - r_info: 0x200000001 - r_addend: 331 - -entry: 75 - r_offset: 0x258 - r_info: 0x200000001 - r_addend: 325 - -entry: 76 - r_offset: 0x260 - r_info: 0x200000001 - r_addend: 319 - -entry: 77 - r_offset: 0x268 - r_info: 0x200000001 - r_addend: 313 - -entry: 78 - r_offset: 0x270 - r_info: 0x200000001 - r_addend: 693 - -entry: 79 - r_offset: 0x278 - r_info: 0x200000001 - r_addend: 833 - -entry: 80 - r_offset: 0x280 - r_info: 0x200000001 - r_addend: 693 - -entry: 81 - r_offset: 0x288 - r_info: 0x200000001 - r_addend: 827 - -entry: 82 - r_offset: 0x290 - r_info: 0x200000001 - r_addend: 821 - -entry: 83 - r_offset: 0x298 - r_info: 0x200000001 - r_addend: 815 - -entry: 84 - r_offset: 0x2a0 - r_info: 0x200000001 - r_addend: 809 - -entry: 85 - r_offset: 0x2a8 - r_info: 0x200000001 - r_addend: 803 - -entry: 86 - r_offset: 0x2b0 - r_info: 0x200000001 - r_addend: 797 - -entry: 87 - r_offset: 0x2b8 - r_info: 0x200000001 - r_addend: 791 - -entry: 88 - r_offset: 0x2c0 - r_info: 0x200000001 - r_addend: 785 - -entry: 89 - r_offset: 0x2c8 - r_info: 0x200000001 - r_addend: 779 - -entry: 90 - r_offset: 0x2d0 - r_info: 0x200000001 - r_addend: 773 - -entry: 91 - r_offset: 0x2d8 - r_info: 0x200000001 - r_addend: 767 - -entry: 92 - r_offset: 0x2e0 - r_info: 0x200000001 - r_addend: 761 - -entry: 93 - r_offset: 0x2e8 - r_info: 0x200000001 - r_addend: 755 - -entry: 94 - r_offset: 0x2f0 - r_info: 0x200000001 - r_addend: 749 - -entry: 95 - r_offset: 0x2f8 - r_info: 0x200000001 - r_addend: 743 - -entry: 96 - r_offset: 0x300 - r_info: 0x200000001 - r_addend: 737 - -entry: 97 - r_offset: 0x308 - r_info: 0x200000001 - r_addend: 731 - -entry: 98 - r_offset: 0x310 - r_info: 0x200000001 - r_addend: 725 - -entry: 99 - r_offset: 0x318 - r_info: 0x200000001 - r_addend: 719 - -entry: 100 - r_offset: 0x320 - r_info: 0x200000001 - r_addend: 713 - -entry: 101 - r_offset: 0x328 - r_info: 0x200000001 - r_addend: 853 - -entry: 102 - r_offset: 0x330 - r_info: 0x200000001 - r_addend: 1203 - -entry: 103 - r_offset: 0x338 - r_info: 0x200000001 - r_addend: 1197 - -entry: 104 - r_offset: 0x340 - r_info: 0x200000001 - r_addend: 1191 - -entry: 105 - r_offset: 0x348 - r_info: 0x200000001 - r_addend: 1185 - -entry: 106 - r_offset: 0x350 - r_info: 0x200000001 - r_addend: 1179 - -entry: 107 - r_offset: 0x358 - r_info: 0x200000001 - r_addend: 853 - -entry: 108 - r_offset: 0x360 - r_info: 0x200000001 - r_addend: 853 - -entry: 109 - r_offset: 0x368 - r_info: 0x200000001 - r_addend: 1173 - -entry: 110 - r_offset: 0x370 - r_info: 0x200000001 - r_addend: 853 - -entry: 111 - r_offset: 0x378 - r_info: 0x200000001 - r_addend: 1167 - -entry: 112 - r_offset: 0x380 - r_info: 0x200000001 - r_addend: 1161 - -entry: 113 - r_offset: 0x388 - r_info: 0x200000001 - r_addend: 853 - -entry: 114 - r_offset: 0x390 - r_info: 0x200000001 - r_addend: 1155 - -entry: 115 - r_offset: 0x398 - r_info: 0x200000001 - r_addend: 853 - -entry: 116 - r_offset: 0x3a0 - r_info: 0x200000001 - r_addend: 1149 - -entry: 117 - r_offset: 0x3a8 - r_info: 0x200000001 - r_addend: 1143 - -entry: 118 - r_offset: 0x3b0 - r_info: 0x200000001 - r_addend: 1137 - -entry: 119 - r_offset: 0x3b8 - r_info: 0x200000001 - r_addend: 1131 - -entry: 120 - r_offset: 0x3c0 - r_info: 0x200000001 - r_addend: 1125 - -entry: 121 - r_offset: 0x3c8 - r_info: 0x200000001 - r_addend: 853 - -entry: 122 - r_offset: 0x3d0 - r_info: 0x200000001 - r_addend: 1119 - -entry: 123 - r_offset: 0x3d8 - r_info: 0x200000001 - r_addend: 1113 - -entry: 124 - r_offset: 0x3e0 - r_info: 0x200000001 - r_addend: 1107 - -entry: 125 - r_offset: 0x3e8 - r_info: 0x200000001 - r_addend: 1101 - -entry: 126 - r_offset: 0x3f0 - r_info: 0x200000001 - r_addend: 1095 - -entry: 127 - r_offset: 0x3f8 - r_info: 0x200000001 - r_addend: 1089 - -entry: 128 - r_offset: 0x400 - r_info: 0x200000001 - r_addend: 1083 - -entry: 129 - r_offset: 0x408 - r_info: 0x200000001 - r_addend: 1077 - -entry: 130 - r_offset: 0x410 - r_info: 0x200000001 - r_addend: 1071 - -entry: 131 - r_offset: 0x418 - r_info: 0x200000001 - r_addend: 1065 - -entry: 132 - r_offset: 0x420 - r_info: 0x200000001 - r_addend: 1059 - -entry: 133 - r_offset: 0x428 - r_info: 0x200000001 - r_addend: 1053 - -entry: 134 - r_offset: 0x430 - r_info: 0x200000001 - r_addend: 1047 - -entry: 135 - r_offset: 0x438 - r_info: 0x200000001 - r_addend: 1041 - -entry: 136 - r_offset: 0x440 - r_info: 0x200000001 - r_addend: 1035 - -entry: 137 - r_offset: 0x448 - r_info: 0x200000001 - r_addend: 1029 - -entry: 138 - r_offset: 0x450 - r_info: 0x200000001 - r_addend: 1023 - -entry: 139 - r_offset: 0x458 - r_info: 0x200000001 - r_addend: 1017 - -entry: 140 - r_offset: 0x460 - r_info: 0x200000001 - r_addend: 1011 - -entry: 141 - r_offset: 0x468 - r_info: 0x200000001 - r_addend: 1005 - -entry: 142 - r_offset: 0x470 - r_info: 0x200000001 - r_addend: 853 - -entry: 143 - r_offset: 0x478 - r_info: 0x200000001 - r_addend: 999 - -entry: 144 - r_offset: 0x480 - r_info: 0x200000001 - r_addend: 993 - -entry: 145 - r_offset: 0x488 - r_info: 0x200000001 - r_addend: 987 - -entry: 146 - r_offset: 0x490 - r_info: 0x200000001 - r_addend: 981 - -entry: 147 - r_offset: 0x498 - r_info: 0x200000001 - r_addend: 975 - -entry: 148 - r_offset: 0x4a0 - r_info: 0x200000001 - r_addend: 969 - -entry: 149 - r_offset: 0x4a8 - r_info: 0x200000001 - r_addend: 963 - -entry: 150 - r_offset: 0x4b0 - r_info: 0x200000001 - r_addend: 957 - -entry: 151 - r_offset: 0x4b8 - r_info: 0x200000001 - r_addend: 951 - -entry: 152 - r_offset: 0x4c0 - r_info: 0x200000001 - r_addend: 945 - -entry: 153 - r_offset: 0x4c8 - r_info: 0x200000001 - r_addend: 939 - -entry: 154 - r_offset: 0x4d0 - r_info: 0x200000001 - r_addend: 933 - -entry: 155 - r_offset: 0x4d8 - r_info: 0x200000001 - r_addend: 927 - -entry: 156 - r_offset: 0x4e0 - r_info: 0x200000001 - r_addend: 921 - -entry: 157 - r_offset: 0x4e8 - r_info: 0x200000001 - r_addend: 915 - -entry: 158 - r_offset: 0x4f0 - r_info: 0x200000001 - r_addend: 909 - -entry: 159 - r_offset: 0x4f8 - r_info: 0x200000001 - r_addend: 903 - -entry: 160 - r_offset: 0x500 - r_info: 0x200000001 - r_addend: 897 - -entry: 161 - r_offset: 0x508 - r_info: 0x200000001 - r_addend: 891 - -entry: 162 - r_offset: 0x510 - r_info: 0x200000001 - r_addend: 885 - -entry: 163 - r_offset: 0x518 - r_info: 0x200000001 - r_addend: 853 - -entry: 164 - r_offset: 0x520 - r_info: 0x200000001 - r_addend: 879 - -entry: 165 - r_offset: 0x528 - r_info: 0x200000001 - r_addend: 873 - -entry: 166 - r_offset: 0x530 - r_info: 0x200000001 - r_addend: 2151 - -entry: 167 - r_offset: 0x538 - r_info: 0x200000001 - r_addend: 2229 - -entry: 168 - r_offset: 0x540 - r_info: 0x200000001 - r_addend: 2151 - -entry: 169 - r_offset: 0x548 - r_info: 0x200000001 - r_addend: 2247 - -entry: 170 - r_offset: 0x550 - r_info: 0x200000001 - r_addend: 2247 - -entry: 171 - r_offset: 0x558 - r_info: 0x200000001 - r_addend: 2307 - -entry: 172 - r_offset: 0x560 - r_info: 0x200000001 - r_addend: 2307 - -entry: 173 - r_offset: 0x568 - r_info: 0x200000001 - r_addend: 2307 - -entry: 174 - r_offset: 0x570 - r_info: 0x200000001 - r_addend: 2328 - -entry: 175 - r_offset: 0x578 - r_info: 0x200000001 - r_addend: 2247 - -entry: 176 - r_offset: 0x580 - r_info: 0x200000001 - r_addend: 2247 - -entry: 177 - r_offset: 0x588 - r_info: 0x200000001 - r_addend: 2307 - -entry: 178 - r_offset: 0x590 - r_info: 0x200000001 - r_addend: 2307 - -entry: 179 - r_offset: 0x598 - r_info: 0x200000001 - r_addend: 2151 - -entry: 180 - r_offset: 0x5a0 - r_info: 0x200000001 - r_addend: 2349 - -entry: 181 - r_offset: 0x5a8 - r_info: 0x200000001 - r_addend: 2151 - -entry: 182 - r_offset: 0x5b0 - r_info: 0x200000001 - r_addend: 2151 - -entry: 183 - r_offset: 0x5b8 - r_info: 0x200000001 - r_addend: 2203 - -entry: 184 - r_offset: 0x5c0 - r_info: 0x200000001 - r_addend: 2203 - -entry: 185 - r_offset: 0x5c8 - r_info: 0x200000001 - r_addend: 2203 - -entry: 186 - r_offset: 0x5d0 - r_info: 0x200000001 - r_addend: 2203 - -entry: 187 - r_offset: 0x5d8 - r_info: 0x200000001 - r_addend: 2203 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 288 - -entry: 2 - r_offset: 0x50 - r_info: 0x20000000a - r_addend: 688 - -entry: 3 - r_offset: 0x68 - r_info: 0x20000000a - r_addend: 848 - -entry: 4 - r_offset: 0x80 - r_info: 0x20000000a - r_addend: 1216 - -entry: 5 - r_offset: 0xa8 - r_info: 0x20000000a - r_addend: 1424 - -entry: 6 - r_offset: 0xd0 - r_info: 0x20000000a - r_addend: 1552 - -entry: 7 - r_offset: 0xf0 - r_info: 0x20000000a - r_addend: 1648 - -entry: 8 - r_offset: 0x110 - r_info: 0x20000000a - r_addend: 1744 - -entry: 9 - r_offset: 0x130 - r_info: 0x20000000a - r_addend: 1824 - -entry: 10 - r_offset: 0x150 - r_info: 0x20000000a - r_addend: 2080 - -entry: 11 - r_offset: 0x170 - r_info: 0x20000000a - r_addend: 2384 - -entry: 12 - r_offset: 0x190 - r_info: 0x20000000a - r_addend: 2480 - -entry: 13 - r_offset: 0x1b0 - r_info: 0x20000000a - r_addend: 2640 - -entry: 14 - r_offset: 0x1c8 - r_info: 0x20000000a - r_addend: 2688 - -entry: 15 - r_offset: 0x1f0 - r_info: 0x20000000a - r_addend: 2816 - -entry: 16 - r_offset: 0x228 - r_info: 0x20000000a - r_addend: 3136 - -libdwarf.a(dwarf_die.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x53 - r_info: 0xa0000000b - r_addend: 26 - -entry: 1 - r_offset: 0x86 - r_info: 0xa0000000b - r_addend: 26 - -entry: 2 - r_offset: 0xde - r_info: 0xa0000000b - r_addend: 16 - -entry: 3 - r_offset: 0x128 - r_info: 0xa0000000b - r_addend: 0 - -entry: 4 - r_offset: 0x15a - r_info: 0xa0000000b - r_addend: 0 - -entry: 5 - r_offset: 0x1aa - r_info: 0xa0000000b - r_addend: 0 - -entry: 6 - r_offset: 0x1e5 - r_info: 0xa0000000b - r_addend: 0 - -entry: 7 - r_offset: 0x284 - r_info: 0x1400000002 - r_addend: -4 - -entry: 8 - r_offset: 0x2a6 - r_info: 0xa0000000b - r_addend: 48 - -entry: 9 - r_offset: 0x2ee - r_info: 0xa0000000b - r_addend: 48 - -entry: 10 - r_offset: 0x31f - r_info: 0xa00000002 - r_addend: 36 - -relocation with addend (.rela.rodata): - -entry: 0 - r_offset: 0x28 - r_info: 0xb00000001 - r_addend: 0 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -entry: 1 - r_offset: 0x38 - r_info: 0x20000000a - r_addend: 16 - -entry: 2 - r_offset: 0x50 - r_info: 0x20000000a - r_addend: 160 - -entry: 3 - r_offset: 0x68 - r_info: 0x20000000a - r_addend: 240 - -entry: 4 - r_offset: 0x80 - r_info: 0x20000000a - r_addend: 512 - -entry: 5 - r_offset: 0x98 - r_info: 0x20000000a - r_addend: 560 - -libdwarf.a(dwarf_cu.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x66 - r_info: 0x60000000b - r_addend: 0 - -entry: 1 - r_offset: 0x8c - r_info: 0x60000000b - r_addend: 0 - -entry: 2 - r_offset: 0xfb - r_info: 0x60000000b - r_addend: 0 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 - -libdwarf.a(dwarf_errmsg.o): - -relocation with addend (.rela.text): - -entry: 0 - r_offset: 0x30 - r_info: 0xa00000002 - r_addend: -4 - -entry: 1 - r_offset: 0x53 - r_info: 0xa00000002 - r_addend: 108 - -entry: 2 - r_offset: 0x6a - r_info: 0xa0000000b - r_addend: 0 - -entry: 3 - r_offset: 0x7d - r_info: 0x50000000a - r_addend: 24 - -entry: 4 - r_offset: 0x8c - r_info: 0xb00000002 - r_addend: -4 - -entry: 5 - r_offset: 0xa4 - r_info: 0xc00000002 - r_addend: -4 - -entry: 6 - r_offset: 0xb2 - r_info: 0x50000000a - r_addend: 0 - -entry: 7 - r_offset: 0xc1 - r_info: 0xb00000002 - r_addend: -4 - -relocation with addend (.rela.data): - -entry: 0 - r_offset: 0 - r_info: 0x500000001 - r_addend: 36 - -entry: 1 - r_offset: 0x8 - r_info: 0x500000001 - r_addend: 45 - -entry: 2 - r_offset: 0x10 - r_info: 0x500000001 - r_addend: 54 - -entry: 3 - r_offset: 0x18 - r_info: 0x500000001 - r_addend: 69 - -entry: 4 - r_offset: 0x20 - r_info: 0x500000001 - r_addend: 86 - -entry: 5 - r_offset: 0x28 - r_info: 0x500000001 - r_addend: 102 - -entry: 6 - r_offset: 0x30 - r_info: 0x500000001 - r_addend: 122 - -entry: 7 - r_offset: 0x38 - r_info: 0x500000001 - r_addend: 132 - -entry: 8 - r_offset: 0x40 - r_info: 0x600000001 - r_addend: 0 - -entry: 9 - r_offset: 0x48 - r_info: 0x500000001 - r_addend: 162 - -entry: 10 - r_offset: 0x50 - r_info: 0x500000001 - r_addend: 179 - -entry: 11 - r_offset: 0x58 - r_info: 0x500000001 - r_addend: 201 - -entry: 12 - r_offset: 0x60 - r_info: 0x600000001 - r_addend: 48 - -entry: 13 - r_offset: 0x68 - r_info: 0x500000001 - r_addend: 229 - -entry: 14 - r_offset: 0x70 - r_info: 0x500000001 - r_addend: 254 - -relocation with addend (.rela.eh_frame): - -entry: 0 - r_offset: 0x20 - r_info: 0x20000000a - r_addend: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.out deleted file mode 100644 index 26c157de..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@s%libdwarf.a.out +++ /dev/null @@ -1,1982 +0,0 @@ - -symbol table (archive): - -entry: 0 - offset: 0x3b4 - member: dwarf_loc.o - symbol: dwarf_op_num - -entry: 1 - offset: 0x3b4 - member: dwarf_loc.o - symbol: dwarf_locdesc_free - -entry: 2 - offset: 0x3b4 - member: dwarf_loc.o - symbol: dwarf_locdesc - -entry: 3 - offset: 0x3828 - member: dwarf_init.o - symbol: dwarf_elf_init - -entry: 4 - offset: 0x3828 - member: dwarf_init.o - symbol: dwarf_init - -entry: 5 - offset: 0x670c - member: dwarf_form.o - symbol: dwarf_whatform - -entry: 6 - offset: 0x6cd8 - member: dwarf_finish.o - symbol: dwarf_finish - -entry: 7 - offset: 0x7714 - member: dwarf_errno.o - symbol: dwarf_errno - -entry: 8 - offset: 0x7bb8 - member: dwarf_dealloc.o - symbol: dwarf_dealloc - -entry: 9 - offset: 0x8054 - member: dwarf_attrval.o - symbol: dwarf_attrval_find - -entry: 10 - offset: 0x8054 - member: dwarf_attrval.o - symbol: dwarf_attrval_unsigned - -entry: 11 - offset: 0x8054 - member: dwarf_attrval.o - symbol: dwarf_attrval_signed - -entry: 12 - offset: 0x8054 - member: dwarf_attrval.o - symbol: dwarf_attrval_string - -entry: 13 - offset: 0x8054 - member: dwarf_attrval.o - symbol: dwarf_attrval_flag - -entry: 14 - offset: 0x8054 - member: dwarf_attrval.o - symbol: dwarf_attrval_add - -entry: 15 - offset: 0x94e8 - member: dwarf_attr.o - symbol: dwarf_attr - -entry: 16 - offset: 0x94e8 - member: dwarf_attr.o - symbol: dwarf_attr_add - -entry: 17 - offset: 0x9cfc - member: dwarf_abbrev.o - symbol: dwarf_abbrev_find - -entry: 18 - offset: 0x9cfc - member: dwarf_abbrev.o - symbol: dwarf_abbrev_add - -entry: 19 - offset: 0xa428 - member: dwarf_dump.o - symbol: get_sht_desc - -entry: 20 - offset: 0xa428 - member: dwarf_dump.o - symbol: get_attr_desc - -entry: 21 - offset: 0xa428 - member: dwarf_dump.o - symbol: get_form_desc - -entry: 22 - offset: 0xa428 - member: dwarf_dump.o - symbol: get_tag_desc - -entry: 23 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_abbrev - -entry: 24 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_symtab - -entry: 25 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_dbgstr - -entry: 26 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_strtab - -entry: 27 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_shstrtab - -entry: 28 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_raw - -entry: 29 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_av - -entry: 30 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_die - -entry: 31 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_info - -entry: 32 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump - -entry: 33 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_tree - -entry: 34 - offset: 0xa428 - member: dwarf_dump.o - symbol: dwarf_dump_die_at_offset - -entry: 35 - offset: 0xffec - member: dwarf_die.o - symbol: dwarf_dieoffset - -entry: 36 - offset: 0xffec - member: dwarf_die.o - symbol: dwarf_child - -entry: 37 - offset: 0xffec - member: dwarf_die.o - symbol: dwarf_tag - -entry: 38 - offset: 0xffec - member: dwarf_die.o - symbol: dwarf_siblingof - -entry: 39 - offset: 0xffec - member: dwarf_die.o - symbol: dwarf_die_find - -entry: 40 - offset: 0xffec - member: dwarf_die.o - symbol: dwarf_die_add - -entry: 41 - offset: 0x10d80 - member: dwarf_cu.o - symbol: dwarf_next_cu_header - -entry: 42 - offset: 0x1144c - member: dwarf_errmsg.o - symbol: dwarf_errmsg - -entry: 43 - offset: 0x1144c - member: dwarf_errmsg.o - symbol: _libdwarf_errors - -libdwarf.a(dwarf_loc.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_loc.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: dwarf_decode_sleb128 - st_value: 0 - st_size: 83 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 6 - st_name: dwarf_decode_uleb128 - st_value: 0x60 - st_size: 44 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 8 - st_name: __func__.4319 - st_value: 0x940 - st_size: 19 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 9 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 10 - st_name: __func__.4283 - st_value: 0x953 - st_size: 14 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 11 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 12 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 13 - st_name: dwarf_op_num - st_value: 0x90 - st_size: 183 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 14 - st_name: dwarf_locdesc_free - st_value: 0x150 - st_size: 81 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 15 - st_name: free - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 16 - st_name: dwarf_locdesc - st_value: 0x1b0 - st_size: 844 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 17 - st_name: dwarf_attrval_find - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 18 - st_name: calloc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 19 - st_name: get_form_desc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 20 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_init.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_init.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: dwarf_read_lsb - st_value: 0 - st_size: 153 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 6 - st_name: dwarf_read_msb - st_value: 0xa0 - st_size: 201 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 7 - st_name: dwarf_write_lsb - st_value: 0x170 - st_size: 121 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 8 - st_name: dwarf_write_msb - st_value: 0x1f0 - st_size: 103 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 9 - st_name: dwarf_read_uleb128 - st_value: 0x260 - st_size: 58 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 10 - st_name: dwarf_read_block - st_value: 0x2a0 - st_size: 23 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 11 - st_name: dwarf_init_attr - st_value: 0x2c0 - st_size: 806 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 12 - st_name: __func__.4419 - st_value: 0x1a0 - st_size: 16 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 13 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 14 - st_name: dwarf_read - st_value: 0 - st_size: 8 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 4 - -entry: 15 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 16 - st_name: dwarf_write - st_value: 0x8 - st_size: 8 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 4 - -entry: 17 - st_name: debug_snames - st_value: 0xe0 - st_size: 144 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 18 - st_name: __func__.4570 - st_value: 0x170 - st_size: 15 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 19 - st_name: __func__.4622 - st_value: 0xc3 - st_size: 15 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 20 - st_name: __func__.4362 - st_value: 0x190 - st_size: 15 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 21 - st_name: __func__.4504 - st_value: 0x180 - st_size: 16 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 22 - st_name: __func__.4640 - st_value: 0xb8 - st_size: 11 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 23 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 24 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 25 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 11 - -entry: 26 - st_name: dwarf_attrval_add - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 27 - st_name: elf_strptr - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 28 - st_name: dwarf_elf_init - st_value: 0x5f0 - st_size: 2641 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 29 - st_name: calloc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 30 - st_name: gelf_getehdr - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 31 - st_name: elf_getshstrndx - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 32 - st_name: elf_nextscn - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 33 - st_name: gelf_getshdr - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 34 - st_name: strcmp - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 35 - st_name: elf_ndxscn - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 36 - st_name: elf_getdata - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 37 - st_name: elf_errno - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 38 - st_name: dwarf_abbrev_add - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 39 - st_name: dwarf_attr_add - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 40 - st_name: gelf_getrela - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 41 - st_name: gelf_getsym - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 42 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 43 - st_name: dwarf_abbrev_find - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 44 - st_name: dwarf_die_add - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 45 - st_name: free - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 46 - st_name: dwarf_init - st_value: 0x1050 - st_size: 421 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 47 - st_name: __stack_chk_guard - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 48 - st_name: elf_version - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 49 - st_name: elf_begin - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 50 - st_name: dwarf_finish - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 51 - st_name: __stack_chk_fail - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 52 - st_name: elf_end - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_form.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_form.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: __func__.3546 - st_value: 0 - st_size: 15 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 8 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: dwarf_whatform - st_value: 0 - st_size: 72 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -libdwarf.a(dwarf_finish.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_finish.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: __func__.3889 - st_value: 0 - st_size: 13 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 8 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: dwarf_finish - st_value: 0 - st_size: 851 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 10 - st_name: free - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 11 - st_name: elf_end - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_errno.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_errno.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 2 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: dwarf_errno - st_value: 0 - st_size: 14 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -libdwarf.a(dwarf_dealloc.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_dealloc.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 2 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: dwarf_dealloc - st_value: 0 - st_size: 2 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -libdwarf.a(dwarf_attrval.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_attrval.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: __func__.4602 - st_value: 0 - st_size: 23 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: __func__.4578 - st_value: 0x20 - st_size: 21 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 6 - -entry: 8 - st_name: __func__.4552 - st_value: 0x40 - st_size: 21 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 6 - -entry: 9 - st_name: __func__.4528 - st_value: 0x60 - st_size: 19 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 6 - -entry: 10 - st_name: __func__.4507 - st_value: 0x80 - st_size: 18 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 6 - -entry: 11 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 12 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 13 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 14 - st_name: dwarf_attrval_find - st_value: 0 - st_size: 38 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 15 - st_name: dwarf_attrval_unsigned - st_value: 0x30 - st_size: 557 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 16 - st_name: get_form_desc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 17 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 18 - st_name: dwarf_die_find - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 19 - st_name: dwarf_attrval_signed - st_value: 0x260 - st_size: 284 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 20 - st_name: dwarf_attrval_string - st_value: 0x380 - st_size: 324 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 21 - st_name: dwarf_attrval_flag - st_value: 0x4d0 - st_size: 278 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 22 - st_name: dwarf_attrval_add - st_value: 0x5f0 - st_size: 232 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 23 - st_name: malloc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_attr.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_attr.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: __func__.4056 - st_value: 0xf - st_size: 11 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: __func__.4077 - st_value: 0 - st_size: 15 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 8 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 9 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 10 - st_name: dwarf_attr - st_value: 0 - st_size: 158 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 11 - st_name: dwarf_attr_add - st_value: 0xa0 - st_size: 225 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 12 - st_name: malloc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_abbrev.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_abbrev.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: __func__.3884 - st_value: 0 - st_size: 17 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 8 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: dwarf_abbrev_find - st_value: 0 - st_size: 38 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 10 - st_name: dwarf_abbrev_add - st_value: 0x30 - st_size: 206 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 11 - st_name: malloc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_dump.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_dump.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 8 - st_name: dwarf_dump_tree_dies - st_value: 0xa80 - st_size: 123 - st_info: STT_FUNC STB_LOCAL - st_shndx: 1 - -entry: 9 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 10 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 11 - -entry: 11 - st_name: get_sht_desc - st_value: 0 - st_size: 286 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 12 - st_name: get_attr_desc - st_value: 0x120 - st_size: 397 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 13 - st_name: get_form_desc - st_value: 0x2b0 - st_size: 151 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 14 - st_name: get_tag_desc - st_value: 0x350 - st_size: 361 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 15 - st_name: dwarf_dump_abbrev - st_value: 0x4c0 - st_size: 197 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 16 - st_name: puts - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 17 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 18 - st_name: dwarf_dump_symtab - st_value: 0x590 - st_size: 128 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 19 - st_name: gelf_getsym - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 20 - st_name: elf_strptr - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 21 - st_name: dwarf_dump_dbgstr - st_value: 0x610 - st_size: 83 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 22 - st_name: strlen - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 23 - st_name: dwarf_dump_strtab - st_value: 0x670 - st_size: 83 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 24 - st_name: dwarf_dump_shstrtab - st_value: 0x6d0 - st_size: 80 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 25 - st_name: dwarf_dump_raw - st_value: 0x720 - st_size: 247 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 26 - st_name: putchar - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 27 - st_name: dwarf_dump_av - st_value: 0x820 - st_size: 294 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 28 - st_name: dwarf_dump_die - st_value: 0x950 - st_size: 91 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 29 - st_name: dwarf_dump_info - st_value: 0x9b0 - st_size: 155 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 30 - st_name: dwarf_dump - st_value: 0xa50 - st_size: 42 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 31 - st_name: dwarf_siblingof - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 32 - st_name: dwarf_child - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 33 - st_name: dwarf_dump_tree - st_value: 0xb00 - st_size: 318 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 34 - st_name: __stack_chk_guard - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 35 - st_name: dwarf_next_cu_header - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 36 - st_name: dwarf_errmsg - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 37 - st_name: __stack_chk_fail - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 38 - st_name: dwarf_dump_die_at_offset - st_value: 0xc40 - st_size: 69 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -libdwarf.a(dwarf_die.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_die.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: __func__.3918 - st_value: 0x1a - st_size: 12 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: __func__.3935 - st_value: 0x10 - st_size: 10 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 7 - st_name: __func__.3953 - st_value: 0 - st_size: 16 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 8 - st_name: __func__.3887 - st_value: 0x30 - st_size: 14 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 9 - st_name: anon_name - st_value: 0x28 - st_size: 8 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 10 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 11 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 12 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 13 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 14 - st_name: dwarf_dieoffset - st_value: 0 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 15 - st_name: dwarf_child - st_value: 0x10 - st_size: 134 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 16 - st_name: dwarf_tag - st_value: 0xa0 - st_size: 78 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 17 - st_name: dwarf_siblingof - st_value: 0xf0 - st_size: 265 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 18 - st_name: dwarf_die_find - st_value: 0x200 - st_size: 47 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 19 - st_name: dwarf_die_add - st_value: 0x230 - st_size: 382 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 20 - st_name: malloc - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -libdwarf.a(dwarf_cu.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_cu.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: __func__.3550 - st_value: 0 - st_size: 21 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 8 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: dwarf_next_cu_header - st_value: 0 - st_size: 267 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -libdwarf.a(dwarf_errmsg.o): - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: dwarf_errmsg.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 2 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 3 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 5 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 6 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 7 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 8 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 9 - st_name: dwarf_errmsg - st_value: 0 - st_size: 199 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 1 - -entry: 10 - st_name: _libdwarf_errors - st_value: 0 - st_size: 120 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 3 - -entry: 11 - st_name: snprintf - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 - -entry: 12 - st_name: elf_errmsg - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.err b/contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.out b/contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.out deleted file mode 100644 index cc108c43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/archive2/@v%libdwarf.a.out +++ /dev/null @@ -1,26 +0,0 @@ - -libdwarf.a(dwarf_loc.o): - -libdwarf.a(dwarf_init.o): - -libdwarf.a(dwarf_form.o): - -libdwarf.a(dwarf_finish.o): - -libdwarf.a(dwarf_errno.o): - -libdwarf.a(dwarf_dealloc.o): - -libdwarf.a(dwarf_attrval.o): - -libdwarf.a(dwarf_attr.o): - -libdwarf.a(dwarf_abbrev.o): - -libdwarf.a(dwarf_dump.o): - -libdwarf.a(dwarf_die.o): - -libdwarf.a(dwarf_cu.o): - -libdwarf.a(dwarf_errmsg.o): diff --git a/contrib/elftoolchain/test/elfdump/ts/archive2/libdwarf.a b/contrib/elftoolchain/test/elfdump/ts/archive2/libdwarf.a deleted file mode 100644 index 84b34c3f51f59febe237782e9ba534155bd2d7e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73632 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 tc -echo "" >> tc -c=0 -while [ 1 ]; do - read line || break - rlt=`echo "$line" | sed -e 's/ *-/@/g' -e 's/ */%/g'` - if [ "$ADD_S" = yes ]; then - rlt="@S${rlt}" - fi - $prog ${line} > "${rlt}.out" 2> "${rlt}.err" - c=`expr $c + 1` - echo "tp$c()" >> tc - echo "{" >> tc - echo " run \"$rlt\"" >> tc - echo "}" >> tc - echo "" >> tc -done < ${rundir}/${file} -echo "" >> tc - -echo "tet_startup=\"\"" >> tc -echo "tet_cleanup=\"cleanup\"" >> tc -echo "" >> tc - -echo -n "iclist=\"" >> tc -i=1 -while [ $i -le $c ]; do - echo -n "ic${i}" >> tc - if [ $i -ne $c ]; then - echo -n " " >> tc - fi - i=`expr $i + 1` -done -echo "\"" >> tc -echo "" >> tc - -i=1 -while [ $i -le $c ]; do - echo "ic${i}=\"tp${i}\"" >> tc - i=`expr $i + 1` -done -echo "" >> tc - -echo ". \$TET_SUITE_ROOT/ts/common/func.sh" >> tc -echo ". \$TET_ROOT/lib/xpg3sh/tcm.sh" >> tc - -chmod +x tc diff --git a/contrib/elftoolchain/test/elfdump/ts/common/func.sh b/contrib/elftoolchain/test/elfdump/ts/common/func.sh deleted file mode 100755 index 92afadcc..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/common/func.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tpstart() # write test purpose banner and initialise variables -{ - tet_infoline "$*" - FAIL=N -} - -tpresult() # give test purpose result -{ - # $1 is result code to give if FAIL=N (default PASS) - if [ $FAIL = N ]; then - tet_result ${1-PASS} - else - tet_result FAIL - fi -} - -check_exit() # execute command (saving output) and check exit code -{ - # $1 is command, $2 is expected exit code (0 or "N" for non-zero) - eval "$1" > out.stdout 2> out.stderr - CODE=$? - if [ $2 = 0 -a $CODE -ne 0 ]; then - tet_infoline "Command ($1) gave exit code $CODE, expected 0" - FAIL=Y - elif [ $2 != 0 -a $CODE -eq 0 ]; then - tet_infoline "Command ($1) gave exit code $CODE, expected non-zero" - FAIL=Y - fi -} - -check_nostdout() # check that nothing went to stdout -{ - if [ -s out.stdout ]; then - tet_infoline "Unexpected output written to stdout, as shown below:" - infofile out.stdout stdout: - FAIL=Y - fi -} - -check_nostderr() # check that nothing went to stderr -{ - if [ -s out.stderr ]; then - tet_infoline "Unexpected output written to stderr, as shown below:" - infofile out.stderr stderr: - FAIL=Y - fi -} - -check_stderr() # check that stderr matches expected error -{ - # $1 is file containing expected error - # if no argument supplied, just check out.stderr is not empty - - case $1 in - "") - if [ ! -s out.stderr ]; then - tet_infoline "Expected output to stderr, but none written" - FAIL=Y - fi - ;; - *) - diff -uN out.stderr ${1}.err > diff.out 2> /dev/null - if [ $? -ne 0 ]; then - tet_infoline "Incorrect output written to stderr, as shown below" - infofile "diff.out" "diff:" - FAIL=Y - fi - ;; - esac -} - -check_stdout() # check that stdout matches expected output -{ - # $1 is file containing expected output - # if no argument supplied, just check out.stdout is not empty - - case $1 in - "") - if [ ! -s out.stdout ] - then - tet_infoline "Expected output to stdout, but none written" - FAIL=Y - fi - ;; - *) - diff -uN out.stdout ${1}.out > diff.out 2> /dev/null - if [ $? -ne 0 ]; then - tet_infoline "Incorrect output written to stdout, as shown below" - infofile "diff.out" "diff:" - FAIL=Y - fi - ;; - esac -} - -infofile() # write file to journal using tet_infoline -{ - # $1 is file name, $2 is prefix for tet_infoline - - prefix=$2 - while read line - do - tet_infoline "$prefix$line" - done < $1 -} - -run() -{ - tpstart - cmdline=`echo $1 | sed -e 's/@/ -/g' -e 's/%/ /g'` - tet_infoline "$cmdline" - check_exit "$TET_SUITE_ROOT/../../elfdump/elfdump $cmdline" 0 - check_stderr $1 - check_stdout $1 - tpresult -} - -cleanup() -{ - rm -f out.stdout - rm -f out.stderr - rm -f diff.out -} diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.out deleted file mode 100644 index 546816c0..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@G%libelf.so.out +++ /dev/null @@ -1,143 +0,0 @@ - -global offset table: .got - -entry: 0 - 0x118208 - -entry: 1 - 0 - -entry: 2 - 0 - -entry: 3 - 0x2852 - -entry: 4 - 0x2862 - -entry: 5 - 0x2872 - -entry: 6 - 0x2882 - -entry: 7 - 0x2892 - -entry: 8 - 0x28a2 - -entry: 9 - 0x28b2 - -entry: 10 - 0x28c2 - -entry: 11 - 0x28d2 - -entry: 12 - 0x28e2 - -entry: 13 - 0x28f2 - -entry: 14 - 0x2902 - -entry: 15 - 0x2912 - -entry: 16 - 0x2922 - -entry: 17 - 0x2932 - -entry: 18 - 0x2942 - -entry: 19 - 0x2952 - -entry: 20 - 0x2962 - -entry: 21 - 0x2972 - -entry: 22 - 0x2982 - -entry: 23 - 0x2992 - -entry: 24 - 0x29a2 - -entry: 25 - 0x29b2 - -entry: 26 - 0x29c2 - -entry: 27 - 0x29d2 - -entry: 28 - 0x29e2 - -entry: 29 - 0x29f2 - -entry: 30 - 0x2a02 - -entry: 31 - 0x2a12 - -entry: 32 - 0x2a22 - -entry: 33 - 0x2a32 - -entry: 34 - 0x2a42 - -entry: 35 - 0x2a52 - -entry: 36 - 0x2a62 - -entry: 37 - 0x2a72 - -entry: 38 - 0x2a82 - -entry: 39 - 0x2a92 - -entry: 40 - 0 - -entry: 41 - 0 - -entry: 42 - 0 - -entry: 43 - 0x1164c0 - -entry: 44 - 0 - -entry: 45 - 0x116140 - -entry: 46 - 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.out deleted file mode 100644 index 19f412c4..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@G%libelf.so.out +++ /dev/null @@ -1,50 +0,0 @@ - -Global Offset Table Section: .got (47 entries) - ndx addr value reloc addend symbol -[00000] 00000000001183e0 0000000000118208 R_X86_64_NONE 000000000000 -[00001] 00000000001183e8 0000000000000000 R_X86_64_NONE 000000000000 -[00002] 00000000001183f0 0000000000000000 R_X86_64_NONE 000000000000 -[00003] 00000000001183f8 0000000000002852 R_X86_64_JUMP_SLOT 000000000000 write -[00004] 0000000000118400 0000000000002862 R_X86_64_JUMP_SLOT 000000000000 elf_flagscn -[00005] 0000000000118408 0000000000002872 R_X86_64_JUMP_SLOT 000000000000 elf_rawdata -[00006] 0000000000118410 0000000000002882 R_X86_64_JUMP_SLOT 000000000000 elf_flagelf -[00007] 0000000000118418 0000000000002892 R_X86_64_JUMP_SLOT 000000000000 strlcat -[00008] 0000000000118420 00000000000028a2 R_X86_64_JUMP_SLOT 000000000000 gelf_getehdr -[00009] 0000000000118428 00000000000028b2 R_X86_64_JUMP_SLOT 000000000000 __cxa_finalize -[00010] 0000000000118430 00000000000028c2 R_X86_64_JUMP_SLOT 000000000000 elf_hash -[00011] 0000000000118438 00000000000028d2 R_X86_64_JUMP_SLOT 000000000000 strerror -[00012] 0000000000118440 00000000000028e2 R_X86_64_JUMP_SLOT 000000000000 gelf_fsize -[00013] 0000000000118448 00000000000028f2 R_X86_64_JUMP_SLOT 000000000000 elf_flagshdr -[00014] 0000000000118450 0000000000002902 R_X86_64_JUMP_SLOT 000000000000 gelf_getsym -[00015] 0000000000118458 0000000000002912 R_X86_64_JUMP_SLOT 000000000000 munmap -[00016] 0000000000118460 0000000000002922 R_X86_64_JUMP_SLOT 000000000000 strncpy -[00017] 0000000000118468 0000000000002932 R_X86_64_JUMP_SLOT 000000000000 elf_getscn -[00018] 0000000000118470 0000000000002942 R_X86_64_JUMP_SLOT 000000000000 memset -[00019] 0000000000118478 0000000000002952 R_X86_64_JUMP_SLOT 000000000000 elf_getdata -[00020] 0000000000118480 0000000000002962 R_X86_64_JUMP_SLOT 000000000000 mmap -[00021] 0000000000118488 0000000000002972 R_X86_64_JUMP_SLOT 000000000000 __error -[00022] 0000000000118490 0000000000002982 R_X86_64_JUMP_SLOT 000000000000 __assert -[00023] 0000000000118498 0000000000002992 R_X86_64_JUMP_SLOT 000000000000 lseek -[00024] 00000000001184a0 00000000000029a2 R_X86_64_JUMP_SLOT 000000000000 elf64_fsize -[00025] 00000000001184a8 00000000000029b2 R_X86_64_JUMP_SLOT 000000000000 ftruncate -[00026] 00000000001184b0 00000000000029c2 R_X86_64_JUMP_SLOT 000000000000 calloc -[00027] 00000000001184b8 00000000000029d2 R_X86_64_JUMP_SLOT 000000000000 elf_end -[00028] 00000000001184c0 00000000000029e2 R_X86_64_JUMP_SLOT 000000000000 elf32_fsize -[00029] 00000000001184c8 00000000000029f2 R_X86_64_JUMP_SLOT 000000000000 gelf_getshdr -[00030] 00000000001184d0 0000000000002a02 R_X86_64_JUMP_SLOT 000000000000 gelf_update_sym -[00031] 00000000001184d8 0000000000002a12 R_X86_64_JUMP_SLOT 000000000000 malloc -[00032] 00000000001184e0 0000000000002a22 R_X86_64_JUMP_SLOT 000000000000 memcpy -[00033] 00000000001184e8 0000000000002a32 R_X86_64_JUMP_SLOT 000000000000 free -[00034] 00000000001184f0 0000000000002a42 R_X86_64_JUMP_SLOT 000000000000 elf_flagphdr -[00035] 00000000001184f8 0000000000002a52 R_X86_64_JUMP_SLOT 000000000000 __stack_chk_fail -[00036] 0000000000118500 0000000000002a62 R_X86_64_JUMP_SLOT 000000000000 elf_memory -[00037] 0000000000118508 0000000000002a72 R_X86_64_JUMP_SLOT 000000000000 elf_flagehdr -[00038] 0000000000118510 0000000000002a82 R_X86_64_JUMP_SLOT 000000000000 fstat -[00039] 0000000000118518 0000000000002a92 R_X86_64_JUMP_SLOT 000000000000 strlcpy -[00040] 0000000000118520 0000000000000000 R_X86_64_GLOB_DAT 000000000000 __cxa_finalize -[00041] 0000000000118528 0000000000000000 R_X86_64_GLOB_DAT 000000000000 __stack_chk_guard -[00042] 0000000000118530 0000000000000000 R_X86_64_GLOB_DAT 000000000000 elf64_fsize -[00043] 0000000000118538 00000000001164c0 R_X86_64_RELATIVE 000001139904 -[00044] 0000000000118540 0000000000000000 R_X86_64_GLOB_DAT 000000000000 elf32_fsize -[00045] 0000000000118548 0000000000116140 R_X86_64_RELATIVE 000001139008 -[00046] 0000000000118550 0000000000000000 R_X86_64_GLOB_DAT 000000000000 _Jv_RegisterClasses diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.out deleted file mode 100644 index 8994d967..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@c@s%libelf.so.out +++ /dev/null @@ -1,315 +0,0 @@ - -Section Header[1]: sh_name: .hash - sh_addr: 0x120 sh_flags: [ SHF_ALLOC ] - sh_size: 0x454 sh_type: [ SHT_HASH ] - sh_offset: 0x120 sh_entsize: 0x4 - sh_link: 2 sh_info: 0 - sh_addralign: 0x8 - -Section Header[2]: sh_name: .dynsym - sh_addr: 0x578 sh_flags: [ SHF_ALLOC ] - sh_size: 0xd80 sh_type: [ SHT_DYNSYM ] - sh_offset: 0x578 sh_entsize: 0x18 - sh_link: 3 sh_info: 33 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .dynstr - sh_addr: 0x12f8 sh_flags: [ SHF_ALLOC ] - sh_size: 0x5b1 sh_type: [ SHT_STRTAB ] - sh_offset: 0x12f8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[4]: sh_name: .gnu.version - sh_addr: 0x18aa sh_flags: [ SHF_ALLOC ] - sh_size: 0x120 sh_type: [ SHT_SUNW(GNU)_versym ] - sh_offset: 0x18aa sh_entsize: 0x2 - sh_link: 2 sh_info: 0 - sh_addralign: 0x2 - -Section Header[5]: sh_name: .gnu.version_d - sh_addr: 0x19d0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x54 sh_type: [ SHT_SUNW(GNU)_verdef ] - sh_offset: 0x19d0 sh_entsize: 0 - sh_link: 3 sh_info: 3 - sh_addralign: 0x8 - -Section Header[6]: sh_name: .gnu.version_r - sh_addr: 0x1a28 sh_flags: [ SHF_ALLOC ] - sh_size: 0x20 sh_type: [ SHT_SUNW(GNU)_verneed ] - sh_offset: 0x1a28 sh_entsize: 0 - sh_link: 3 sh_info: 1 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.dyn - sh_addr: 0x1a48 sh_flags: [ SHF_ALLOC ] - sh_size: 0xa68 sh_type: [ SHT_RELA ] - sh_offset: 0x1a48 sh_entsize: 0x18 - sh_link: 2 sh_info: 0 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .rela.plt - sh_addr: 0x24b0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x378 sh_type: [ SHT_RELA ] - sh_offset: 0x24b0 sh_entsize: 0x18 - sh_link: 2 sh_info: 10 - sh_addralign: 0x8 - -Section Header[9]: sh_name: .init - sh_addr: 0x2828 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x13 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x2828 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[10]: sh_name: .plt - sh_addr: 0x283c sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x260 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x283c sh_entsize: 0x10 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[11]: sh_name: .text - sh_addr: 0x2aa0 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x12428 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x2aa0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[12]: sh_name: .fini - sh_addr: 0x14ec8 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xe sh_type: [ SHT_PROGBITS ] - sh_offset: 0x14ec8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[13]: sh_name: .rodata - sh_addr: 0x14ee0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x122a sh_type: [ SHT_PROGBITS ] - sh_offset: 0x14ee0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x20 - -Section Header[14]: sh_name: .eh_frame_hdr - sh_addr: 0x1610c sh_flags: [ SHF_ALLOC ] - sh_size: 0x8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1610c sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[15]: sh_name: .data - sh_addr: 0x116120 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x4b8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x16120 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x20 - -Section Header[16]: sh_name: .eh_frame - sh_addr: 0x1165d8 sh_flags: [ SHF_ALLOC ] - sh_size: 0x1c30 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x165d8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[17]: sh_name: .dynamic - sh_addr: 0x118208 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x1b0 sh_type: [ SHT_DYNAMIC ] - sh_offset: 0x18208 sh_entsize: 0x10 - sh_link: 3 sh_info: 0 - sh_addralign: 0x8 - -Section Header[18]: sh_name: .ctors - sh_addr: 0x1183b8 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x10 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x183b8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[19]: sh_name: .dtors - sh_addr: 0x1183c8 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x10 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x183c8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[20]: sh_name: .jcr - sh_addr: 0x1183d8 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x183d8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[21]: sh_name: .got - sh_addr: 0x1183e0 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x178 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x183e0 sh_entsize: 0x8 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[22]: sh_name: .bss - sh_addr: 0x118558 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x8 sh_type: [ SHT_NOBITS ] - sh_offset: 0x18558 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[23]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x1351 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x18558 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[24]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0xc7 sh_type: [ SHT_STRTAB ] - sh_offset: 0x198a9 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Symbol Table Section: .dynsym - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000120 0x000000000000 SECT LOCL D 0 .hash - [2] 0x00000578 0x000000000000 SECT LOCL D 0 .dynsym - [3] 0x000012f8 0x000000000000 SECT LOCL D 0 .dynstr - [4] 0x000018aa 0x000000000000 SECT LOCL D 0 .gnu.versio - [5] 0x000019d0 0x000000000000 SECT LOCL D 0 .gnu.versio - [6] 0x00001a28 0x000000000000 SECT LOCL D 0 .gnu.versio - [7] 0x00001a48 0x000000000000 SECT LOCL D 0 .rela.dyn - [8] 0x000024b0 0x000000000000 SECT LOCL D 0 .rela.plt - [9] 0x00002828 0x000000000000 SECT LOCL D 0 .init - [10] 0x0000283c 0x000000000000 SECT LOCL D 0 .plt - [11] 0x00002aa0 0x000000000000 SECT LOCL D 0 .text - [12] 0x00014ec8 0x000000000000 SECT LOCL D 0 .fini - [13] 0x00014ee0 0x000000000000 SECT LOCL D 0 .rodata - [14] 0x0001610c 0x000000000000 SECT LOCL D 0 .eh_frame_h - [15] 0x00116120 0x000000000000 SECT LOCL D 0 .data - [16] 0x001165d8 0x000000000000 SECT LOCL D 0 .eh_frame - [17] 0x00118208 0x000000000000 SECT LOCL D 0 .dynamic - [18] 0x001183b8 0x000000000000 SECT LOCL D 0 .ctors - [19] 0x001183c8 0x000000000000 SECT LOCL D 0 .dtors - [20] 0x001183d8 0x000000000000 SECT LOCL D 0 .jcr - [21] 0x001183e0 0x000000000000 SECT LOCL D 0 .got - [22] 0x00118558 0x000000000000 SECT LOCL D 0 .bss - [23] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [24] 0x00000000 0x000000000000 SECT LOCL D 0 .shstrtab - [25] 0x00000000 0x000000000000 SECT LOCL D 0 25 - [26] 0x00000000 0x000000000000 SECT LOCL D 0 26 - [27] 0x00000000 0x000000000000 SECT LOCL D 0 27 - [28] 0x00000000 0x000000000000 SECT LOCL D 0 28 - [29] 0x00000000 0x000000000000 SECT LOCL D 0 29 - [30] 0x00000000 0x000000000000 SECT LOCL D 0 30 - [31] 0x00000000 0x000000000000 SECT LOCL D 0 31 - [32] 0x00000000 0x000000000000 SECT LOCL D 0 32 - [33] 0x00002fb0 0x00000000015a FUNC GLOB D 2 .text gelf_getsyminfo - [34] 0x00005dd0 0x000000000169 FUNC GLOB D 2 .text elf_strptr - [35] 0x00000000 0x000000000000 FUNC GLOB D 4 UNDEF write - [36] 0x00007c60 0x00000000014a FUNC GLOB D 2 .text elf_newscn - [37] 0x000044e0 0x00000000000a FUNC GLOB D 2 .text elf32_checksum - [38] 0x00004010 0x000000000194 FUNC GLOB D 2 .text gelf_getmove - [39] 0x00008d10 0x000000000044 FUNC GLOB D 2 .text elf_flagscn - [40] 0x00007e90 0x000000000168 FUNC GLOB D 2 .text elf_rawdata - [41] 0x00006120 0x00000000004a FUNC GLOB D 2 .text elf_rawfile - [42] 0x00008bd0 0x000000000074 FUNC GLOB D 2 .text elf_flagelf - [43] 0x00000000 0x00000000007b FUNC GLOB D 4 UNDEF strlcat - [44] 0x00006310 0x0000000000ca FUNC GLOB D 2 .text elf_getident - [45] 0x00008b70 0x00000000005c FUNC GLOB D 2 .text elf_flagdata - [46] 0x00002bb0 0x00000000000d FUNC GLOB D 2 .text elf64_xlatetof - [47] 0x000044a0 0x000000000028 FUNC GLOB D 2 .text gelf_checksum - [48] 0x00007870 0x000000000117 FUNC GLOB D 2 .text gelf_getehdr - [49] 0x00006520 0x00000000000b FUNC GLOB D 3 .text _libelf_get_no_error_message - [50] 0x00000000 0x000000000131 FUNC WEAK D 4 UNDEF __cxa_finalize - [51] 0x00006690 0x0000000001e3 FUNC GLOB D 2 .text elf_begin - [52] 0x00003600 0x000000000184 FUNC GLOB D 2 .text gelf_getrela - [53] 0x00000000 0x000000000000 OBJT GLOB D 2 ABS FBSD_1.0 - [54] 0x00007390 0x000000000173 FUNC GLOB D 2 .text gelf_update_shdr - [55] 0x00003e40 0x00000000000a FUNC GLOB D 2 .text elf64_getphdr - [56] 0x000044d0 0x00000000000a FUNC GLOB D 2 .text elf64_checksum - [57] 0x00002b90 0x000000000010 FUNC GLOB D 2 .text elf64_xlatetom - [58] 0x00007690 0x00000000000f FUNC GLOB D 2 .text elf32_newehdr - [59] 0x00014950 0x000000000046 FUNC GLOB D 2 .text elf_hash - [60] 0x00000000 0x000000000040 OBJT GLOB D 4 UNDEF __stack_chk_guard - [61] 0x000060b0 0x00000000006a FUNC GLOB D 2 .text elf_getphnum - [62] 0x00004660 0x000000000159 FUNC GLOB D 2 .text gelf_getcap - [63] 0x00007680 0x00000000000f FUNC GLOB D 2 .text elf64_newehdr - [64] 0x00000000 0x000000000030 FUNC GLOB D 4 UNDEF strerror - [65] 0x000076b0 0x00000000000c FUNC GLOB D 2 .text elf32_getehdr - [66] 0x00013d00 0x000000000035 FUNC GLOB D 2 .text gelf_fsize - [67] 0x00005f40 0x00000000006a FUNC GLOB D 2 .text elf_getshstrndx - [68] 0x00002e60 0x000000000149 FUNC GLOB D 2 .text gelf_update_syminfo - [69] 0x000041b0 0x00000000000c FUNC GLOB D 2 .text gelf_getclass - [70] 0x00003e60 0x0000000001a3 FUNC GLOB D 2 .text gelf_update_move - [71] 0x00008d60 0x000000000005 FUNC GLOB D 2 .text elf_flagshdr - [72] 0x000032b0 0x00000000018c FUNC GLOB D 2 .text gelf_getsym - [73] 0x00000000 0x000000000000 FUNC GLOB D 4 UNDEF munmap - [74] 0x00002b20 0x00000000002e FUNC GLOB D 2 .text gelf_xlatetof - [75] 0x00007e50 0x00000000003b FUNC GLOB D 2 .text elf_nextscn - [76] 0x00003c90 0x00000000000d FUNC GLOB D 2 .text elf64_newphdr - [77] 0x00000000 0x00000000004c FUNC GLOB D 4 UNDEF strncpy - [78] 0x00007650 0x000000000028 FUNC GLOB D 2 .text gelf_newehdr - [79] 0x00007db0 0x00000000009d FUNC GLOB D 2 .text elf_getscn - [80] 0x00004340 0x00000000015a FUNC GLOB D 2 .text gelf_getdyn - [81] 0x000064c0 0x00000000000b FUNC GLOB D 2 .text elf_fill - [82] 0x00003790 0x00000000018c FUNC GLOB D 2 .text gelf_update_rel - [83] 0x00003c60 0x000000000024 FUNC GLOB D 2 .text gelf_newphdr - [84] 0x000041c0 0x000000000172 FUNC GLOB D 2 .text gelf_update_dyn - [85] 0x00000000 0x000000000054 FUNC GLOB D 4 UNDEF memset - [86] 0x00008000 0x0000000002fe FUNC GLOB D 2 .text elf_getdata - [87] 0x00008b20 0x000000000044 FUNC GLOB D 2 .text elf_flagarhdr - [88] 0x00000000 0x0000000000be FUNC GLOB D 4 UNDEF mmap - [89] 0x00000000 0x000000000008 FUNC GLOB D 4 UNDEF __error - [90] 0x00000000 0x000000000058 FUNC GLOB D 4 UNDEF __assert - [91] 0x000047c0 0x000000000036 FUNC GLOB D 2 .text elf_version - [92] 0x00000000 0x000000000067 FUNC GLOB D 4 UNDEF lseek - [93] 0x00002b50 0x000000000031 FUNC GLOB D 2 .text gelf_xlatetom - [94] 0x00013d40 0x00000000000d FUNC GLOB D 2 .text elf64_fsize - [95] 0x00008300 0x0000000000e5 FUNC GLOB D 2 .text elf_newdata - [96] 0x00002bc0 0x00000000000d FUNC GLOB D 2 .text elf32_xlatetof - [97] 0x00005fb0 0x000000000087 FUNC GLOB D 2 .text elf_setshstrndx - [98] 0x00002d10 0x000000000148 FUNC GLOB D 2 .text gelf_getsymshndx - [99] 0x00003440 0x0000000001b9 FUNC GLOB D 2 .text gelf_update_rela - [100] 0x00000000 0x000000000051 FUNC GLOB D 4 UNDEF ftruncate - [101] 0x000064f0 0x000000000006 FUNC GLOB D 3 .text _libelf_get_max_error - [102] 0x00006510 0x00000000000c FUNC GLOB D 3 .text _libelf_get_unknown_error_message - [103] 0x00000000 0x00000000014a FUNC GLOB D 4 UNDEF calloc - [104] 0x00000000 0x000000000000 OBJT GLOB D 3 ABS FBSDprivate_1.0 - [105] 0x00007520 0x00000000000a FUNC GLOB D 2 .text elf32_getshdr - [106] 0x000083f0 0x00000000012a FUNC GLOB D 2 .text elf_end - [107] 0x00013d50 0x00000000000d FUNC GLOB D 2 .text elf32_fsize - [108] 0x00006170 0x000000000061 FUNC GLOB D 2 .text elf_rand - [109] 0x000061e0 0x00000000010b FUNC GLOB D 2 .text elf_next - [110] 0x00007530 0x000000000119 FUNC GLOB D 2 .text gelf_getshdr - [111] 0x00003cb0 0x00000000018d FUNC GLOB D 2 .text gelf_getphdr - [112] 0x00007510 0x00000000000a FUNC GLOB D 2 .text elf64_getshdr - [113] 0x00003110 0x0000000001a0 FUNC GLOB D 2 .text gelf_update_sym - [114] 0x00006530 0x0000000000e2 FUNC GLOB D 2 .text elf_errmsg - [115] 0x00002ba0 0x000000000010 FUNC GLOB D 2 .text elf32_xlatetom - [116] 0x00006500 0x00000000000b FUNC GLOB D 3 .text _libelf_set_error - [117] 0x00003920 0x000000000168 FUNC GLOB D 2 .text gelf_getrel - [118] 0x00006040 0x00000000006a FUNC GLOB D 2 .text elf_getshnum - [119] 0x00000000 0x0000000000af FUNC GLOB D 4 UNDEF malloc - [120] 0x000076a0 0x00000000000c FUNC GLOB D 2 .text elf64_getehdr - [121] 0x00006410 0x00000000007f FUNC GLOB D 2 .text elf_getarsym - [122] 0x00000000 0x00000000004a FUNC GLOB D 4 UNDEF memcpy - [123] 0x000064d0 0x000000000017 FUNC GLOB D 2 .text elf_errno - [124] 0x00000000 0x000000000076 FUNC GLOB D 4 UNDEF free - [125] 0x00002bd0 0x00000000013c FUNC GLOB D 2 .text gelf_update_symshndx - [126] 0x00007990 0x000000000021 FUNC GLOB D 2 .text elf_ndxscn - [127] 0x00008cb0 0x000000000059 FUNC GLOB D 2 .text elf_flagphdr - [128] 0x000076c0 0x0000000001ac FUNC GLOB D 2 .text gelf_update_ehdr - [129] 0x00000000 0x00000000000c FUNC GLOB D 4 UNDEF __stack_chk_fail - [130] 0x00003a90 0x0000000001c1 FUNC GLOB D 2 .text gelf_update_phdr - [131] 0x000063e0 0x00000000002d FUNC GLOB D 2 .text elf_getbase - [132] 0x00006490 0x000000000026 FUNC GLOB D 2 .text elf_getarhdr - [133] 0x000044f0 0x00000000016c FUNC GLOB D 2 .text gelf_update_cap - [134] 0x00006620 0x000000000068 FUNC GLOB D 2 .text elf_cntl - [135] 0x000147c0 0x000000000186 FUNC GLOB D 2 .text elf_memory - [136] 0x000062f0 0x000000000016 FUNC GLOB D 2 .text elf_kind - [137] 0x00003e50 0x00000000000a FUNC GLOB D 2 .text elf32_getphdr - [138] 0x00008c50 0x000000000059 FUNC GLOB D 2 .text elf_flagehdr - [139] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF _Jv_RegisterClasses - [140] 0x00003ca0 0x00000000000d FUNC GLOB D 2 .text elf32_newphdr - [141] 0x00004800 0x0000000015d0 FUNC GLOB D 2 .text elf_update - [142] 0x00000000 0x000000000000 FUNC GLOB D 4 UNDEF fstat - [143] 0x00000000 0x00000000004a FUNC GLOB D 4 UNDEF strlcpy diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.out deleted file mode 100644 index 6322690c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@d%libelf.so.out +++ /dev/null @@ -1,29 +0,0 @@ -Dynamic Section: .dynamic - index tag value - [0] DT_NEEDED 0x582 libc.so.7 - [1] DT_SONAME 0x58c libelf.so.1 - [2] DT_INIT 0x2828 - [3] DT_FINI 0x14ec8 - [4] DT_HASH 0x120 - [5] DT_STRTAB 0x12f8 - [6] DT_SYMTAB 0x578 - [7] DT_STRSZ 0x5b1 - [8] DT_SYMENT 0x18 - [9] DT_PLTGOT 0x1183e0 - [10] DT_PLTRELSZ 0x378 - [11] DT_PLTREL 0x7 - [12] DT_JMPREL 0x24b0 - [13] DT_RELA 0x1a48 - [14] DT_RELASZ 0xa68 - [15] DT_RELAENT 0x18 - [16] DT_VERDEF 0x19d0 - [17] DT_VERDEFNUM 0x3 - [18] DT_VERNEED 0x1a28 - [19] DT_VERNEEDNUM 0x1 - [20] DT_GNU_VERSYM 0x18aa - [21] DT_RELACOUNT 0x6a - [22] DT_NULL - [23] DT_NULL - [24] DT_NULL - [25] DT_NULL - [26] DT_NULL diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.out deleted file mode 100644 index 33fa3163..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@e%libelf.so.out +++ /dev/null @@ -1,10 +0,0 @@ - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_DYN - e_flags: 0 - e_entry: 0x2aa0 e_ehsize: 64 e_shstrndx: 24 - e_shoff: 0x19970 e_shentsize: 64 e_shnum: 25 - e_phoff: 0x40 e_phentsize: 56 e_phnum: 4 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.out deleted file mode 100644 index 18b41afe..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@h%libelf.so.out +++ /dev/null @@ -1,122 +0,0 @@ - -Hash Section: .hash - bucket symndx name - 1 [138] elf_flagehdr - [49] _libelf_get_no_error_message - 3 [93] gelf_xlatetom - [61] elf_getphnum - 4 [77] strncpy - 5 [96] elf32_xlatetof - 6 [89] __error - 8 [80] gelf_getdyn - 9 [40] elf_rawdata - 10 [120] elf64_getehdr - [95] elf_newdata - 12 [133] gelf_update_cap - [115] elf32_xlatetom - [97] elf_setshstrndx - 13 [116] _libelf_set_error - [87] elf_flagarhdr - [85] memset - [46] elf64_xlatetof - 16 [123] elf_errno - [109] elf_next - [90] __assert - 18 [124] free - 19 [119] malloc - 20 [57] elf64_xlatetom - 21 [128] gelf_update_ehdr - 22 [108] elf_rand - [68] gelf_update_syminfo - 23 [142] fstat - [137] elf32_getphdr - [131] elf_getbase - [125] gelf_update_symshndx - [103] calloc - 24 [105] elf32_getshdr - 25 [36] elf_newscn - 26 [134] elf_cntl - 28 [122] memcpy - [82] gelf_update_rel - 30 [83] gelf_newphdr - 32 [102] _libelf_get_unknown_error_message - [66] gelf_fsize - 35 [112] elf64_getshdr - 36 [55] elf64_getphdr - 37 [126] elf_ndxscn - [104] FBSDprivate_1.0 - 38 [78] gelf_newehdr - [35] write - 41 [75] elf_nextscn - 42 [69] gelf_getclass - 44 [43] strlcat - 46 [52] gelf_getrela - 48 [114] elf_errmsg - [106] elf_end - [72] gelf_getsym - 50 [67] elf_getshstrndx - 51 [81] elf_fill - [44] elf_getident - 52 [38] gelf_getmove - 62 [37] elf32_checksum - 64 [64] strerror - 65 [143] strlcpy - [53] FBSD_1.0 - 67 [101] _libelf_get_max_error - [58] elf32_newehdr - 68 [73] munmap - [51] elf_begin - 78 [60] __stack_chk_guard - 80 [59] elf_hash - [33] gelf_getsyminfo - 82 [34] elf_strptr - 83 [121] elf_getarsym - 85 [71] elf_flagshdr - 87 [63] elf64_newehdr - 89 [84] gelf_update_dyn - 93 [99] gelf_update_rela - 94 [42] elf_flagelf - 95 [50] __cxa_finalize - [41] elf_rawfile - [39] elf_flagscn - 98 [129] __stack_chk_fail - [79] elf_getscn - 99 [117] gelf_getrel - [110] gelf_getshdr - 100 [45] elf_flagdata - 101 [47] gelf_checksum - 103 [141] elf_update - [91] elf_version - 104 [139] _Jv_RegisterClasses - [107] elf32_fsize - 106 [130] gelf_update_phdr - 107 [56] elf64_checksum - 108 [113] gelf_update_sym - 109 [88] mmap - 110 [70] gelf_update_move - 113 [140] elf32_newphdr - [94] elf64_fsize - 114 [54] gelf_update_shdr - 116 [111] gelf_getphdr - 120 [135] elf_memory - [98] gelf_getsymshndx - 121 [65] elf32_getehdr - 122 [136] elf_kind - [92] lseek - 124 [118] elf_getshnum - [48] gelf_getehdr - 125 [132] elf_getarhdr - 126 [100] ftruncate - [76] elf64_newphdr - 127 [74] gelf_xlatetof - 128 [86] elf_getdata - 129 [127] elf_flagphdr - [62] gelf_getcap - - 58 buckets contain 0 symbols - 44 buckets contain 1 symbols - 23 buckets contain 2 symbols - 4 buckets contain 3 symbols - 1 buckets contain 4 symbols - 1 buckets contain 5 symbols - 131 buckets 111 symbols (globals) diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.out deleted file mode 100644 index 52f5aafc..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@k%libelf.so.out +++ /dev/null @@ -1,2 +0,0 @@ - -elf checksum: 0xa7a8 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@n%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@n%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@n%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@n%libelf.so.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.out deleted file mode 100644 index 77aab758..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@p%libelf.so.out +++ /dev/null @@ -1,24 +0,0 @@ - -Program Header[0]: - p_vaddr: 0 p_flags: [ PF_X|PF_R ] - p_paddr: 0 p_type: [ PT_LOAD ] - p_filesz: 0x16114 p_memsz: 0x16114 - p_offset: 0 p_align: 0x100000 - -Program Header[1]: - p_vaddr: 0x116120 p_flags: [ PF_W|PF_R ] - p_paddr: 0x116120 p_type: [ PT_LOAD ] - p_filesz: 0x2438 p_memsz: 0x2440 - p_offset: 0x16120 p_align: 0x100000 - -Program Header[2]: - p_vaddr: 0x118208 p_flags: [ PF_W|PF_R ] - p_paddr: 0x118208 p_type: [ PT_DYNAMIC ] - p_filesz: 0x1b0 p_memsz: 0x1b0 - p_offset: 0x18208 p_align: 0x8 - -Program Header[3]: - p_vaddr: 0x1610c p_flags: [ PF_R ] - p_paddr: 0x1610c p_type: [ PT_GNU_EH_FRAME ] - p_filesz: 0x8 p_memsz: 0x8 - p_offset: 0x1610c p_align: 0x4 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.out deleted file mode 100644 index e8e7d44c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@r%libelf.so.out +++ /dev/null @@ -1,154 +0,0 @@ - -Relocation Section: .rela.dyn - type offset addend section with respect to - R_X86_64_RELATIVE 0x116120 1138976 .rela.dyn - R_X86_64_RELATIVE 0x116128 1147856 .rela.dyn - R_X86_64_RELATIVE 0x116140 87071 .rela.dyn - R_X86_64_RELATIVE 0x116148 87080 .rela.dyn - R_X86_64_RELATIVE 0x116150 87104 .rela.dyn - R_X86_64_RELATIVE 0x116158 87121 .rela.dyn - R_X86_64_RELATIVE 0x116160 87376 .rela.dyn - R_X86_64_RELATIVE 0x116168 87408 .rela.dyn - R_X86_64_RELATIVE 0x116170 87140 .rela.dyn - R_X86_64_RELATIVE 0x116178 87150 .rela.dyn - R_X86_64_RELATIVE 0x116180 87178 .rela.dyn - R_X86_64_RELATIVE 0x116188 87208 .rela.dyn - R_X86_64_RELATIVE 0x116190 87237 .rela.dyn - R_X86_64_RELATIVE 0x116198 87257 .rela.dyn - R_X86_64_RELATIVE 0x1161a0 87284 .rela.dyn - R_X86_64_RELATIVE 0x1161a8 87310 .rela.dyn - R_X86_64_RELATIVE 0x1161b0 87332 .rela.dyn - R_X86_64_RELATIVE 0x1161b8 87356 .rela.dyn - R_X86_64_RELATIVE 0x1161c0 60640 .rela.dyn - R_X86_64_RELATIVE 0x1161c8 60464 .rela.dyn - R_X86_64_RELATIVE 0x1161d0 60160 .rela.dyn - R_X86_64_RELATIVE 0x1161d8 59824 .rela.dyn - R_X86_64_RELATIVE 0x1161e0 53536 .rela.dyn - R_X86_64_RELATIVE 0x1161e8 53536 .rela.dyn - R_X86_64_RELATIVE 0x1161f0 53536 .rela.dyn - R_X86_64_RELATIVE 0x1161f8 53536 .rela.dyn - R_X86_64_RELATIVE 0x116200 36208 .rela.dyn - R_X86_64_RELATIVE 0x116208 80576 .rela.dyn - R_X86_64_RELATIVE 0x116210 36464 .rela.dyn - R_X86_64_RELATIVE 0x116218 72240 .rela.dyn - R_X86_64_RELATIVE 0x116220 36976 .rela.dyn - R_X86_64_RELATIVE 0x116228 80224 .rela.dyn - R_X86_64_RELATIVE 0x116230 37216 .rela.dyn - R_X86_64_RELATIVE 0x116238 71664 .rela.dyn - R_X86_64_RELATIVE 0x116240 58592 .rela.dyn - R_X86_64_RELATIVE 0x116248 78976 .rela.dyn - R_X86_64_RELATIVE 0x116250 56816 .rela.dyn - R_X86_64_RELATIVE 0x116258 69808 .rela.dyn - R_X86_64_RELATIVE 0x116260 56704 .rela.dyn - R_X86_64_RELATIVE 0x116268 56592 .rela.dyn - R_X86_64_RELATIVE 0x116270 56704 .rela.dyn - R_X86_64_RELATIVE 0x116278 56592 .rela.dyn - R_X86_64_RELATIVE 0x116280 56288 .rela.dyn - R_X86_64_RELATIVE 0x116288 55952 .rela.dyn - R_X86_64_RELATIVE 0x116290 56288 .rela.dyn - R_X86_64_RELATIVE 0x116298 55952 .rela.dyn - R_X86_64_RELATIVE 0x1162a0 37696 .rela.dyn - R_X86_64_RELATIVE 0x1162a8 78192 .rela.dyn - R_X86_64_RELATIVE 0x1162b0 38352 .rela.dyn - R_X86_64_RELATIVE 0x1162b8 68848 .rela.dyn - R_X86_64_RELATIVE 0x1162e0 52608 .rela.dyn - R_X86_64_RELATIVE 0x1162e8 53040 .rela.dyn - R_X86_64_RELATIVE 0x1162f0 52608 .rela.dyn - R_X86_64_RELATIVE 0x1162f8 53040 .rela.dyn - R_X86_64_RELATIVE 0x116300 55776 .rela.dyn - R_X86_64_RELATIVE 0x116308 55600 .rela.dyn - R_X86_64_RELATIVE 0x116310 55296 .rela.dyn - R_X86_64_RELATIVE 0x116318 54960 .rela.dyn - R_X86_64_RELATIVE 0x116320 39200 .rela.dyn - R_X86_64_RELATIVE 0x116328 76992 .rela.dyn - R_X86_64_RELATIVE 0x116330 40192 .rela.dyn - R_X86_64_RELATIVE 0x116338 66816 .rela.dyn - R_X86_64_RELATIVE 0x116340 41952 .rela.dyn - R_X86_64_RELATIVE 0x116348 76672 .rela.dyn - R_X86_64_RELATIVE 0x116350 42192 .rela.dyn - R_X86_64_RELATIVE 0x116358 66240 .rela.dyn - R_X86_64_RELATIVE 0x116360 42688 .rela.dyn - R_X86_64_RELATIVE 0x116368 76240 .rela.dyn - R_X86_64_RELATIVE 0x116370 43024 .rela.dyn - R_X86_64_RELATIVE 0x116378 65408 .rela.dyn - R_X86_64_RELATIVE 0x116380 43744 .rela.dyn - R_X86_64_RELATIVE 0x116388 74784 .rela.dyn - R_X86_64_RELATIVE 0x116390 44912 .rela.dyn - R_X86_64_RELATIVE 0x116398 63104 .rela.dyn - R_X86_64_RELATIVE 0x1163a0 54784 .rela.dyn - R_X86_64_RELATIVE 0x1163a8 54608 .rela.dyn - R_X86_64_RELATIVE 0x1163b0 54784 .rela.dyn - R_X86_64_RELATIVE 0x1163b8 54608 .rela.dyn - R_X86_64_RELATIVE 0x1163e0 46848 .rela.dyn - R_X86_64_RELATIVE 0x1163e8 74576 .rela.dyn - R_X86_64_RELATIVE 0x1163f0 46960 .rela.dyn - R_X86_64_RELATIVE 0x1163f8 62896 .rela.dyn - R_X86_64_RELATIVE 0x116400 47072 .rela.dyn - R_X86_64_RELATIVE 0x116408 74048 .rela.dyn - R_X86_64_RELATIVE 0x116410 47504 .rela.dyn - R_X86_64_RELATIVE 0x116418 62016 .rela.dyn - R_X86_64_RELATIVE 0x116420 48272 .rela.dyn - R_X86_64_RELATIVE 0x116428 73392 .rela.dyn - R_X86_64_RELATIVE 0x116430 48816 .rela.dyn - R_X86_64_RELATIVE 0x116438 61360 .rela.dyn - R_X86_64_RELATIVE 0x116440 49360 .rela.dyn - R_X86_64_RELATIVE 0x116448 72848 .rela.dyn - R_X86_64_RELATIVE 0x116450 49808 .rela.dyn - R_X86_64_RELATIVE 0x116458 60816 .rela.dyn - R_X86_64_RELATIVE 0x116460 54416 .rela.dyn - R_X86_64_RELATIVE 0x116468 54224 .rela.dyn - R_X86_64_RELATIVE 0x116470 54416 .rela.dyn - R_X86_64_RELATIVE 0x116478 54224 .rela.dyn - R_X86_64_RELATIVE 0x116490 53920 .rela.dyn - R_X86_64_RELATIVE 0x116498 53584 .rela.dyn - R_X86_64_RELATIVE 0x1164a0 54592 .rela.dyn - R_X86_64_RELATIVE 0x1164a8 54400 .rela.dyn - R_X86_64_RELATIVE 0x1164b0 51264 .rela.dyn - R_X86_64_RELATIVE 0x1164b8 50256 .rela.dyn - R_X86_64_RELATIVE 0x118538 1139904 .rela.dyn - R_X86_64_RELATIVE 0x118548 1139008 .rela.dyn - R_X86_64_GLOB_DAT 0x118520 0 .rela.dyn __cxa_finalize - R_X86_64_GLOB_DAT 0x118528 0 .rela.dyn __stack_chk_guard - R_X86_64_GLOB_DAT 0x118530 0 .rela.dyn elf64_fsize - R_X86_64_GLOB_DAT 0x118540 0 .rela.dyn elf32_fsize - R_X86_64_GLOB_DAT 0x118550 0 .rela.dyn _Jv_RegisterClasses - -Relocation Section: .rela.plt - type offset addend section with respect to - R_X86_64_JUMP_SLOT 0x1183f8 0 .rela.plt write - R_X86_64_JUMP_SLOT 0x118400 0 .rela.plt elf_flagscn - R_X86_64_JUMP_SLOT 0x118408 0 .rela.plt elf_rawdata - R_X86_64_JUMP_SLOT 0x118410 0 .rela.plt elf_flagelf - R_X86_64_JUMP_SLOT 0x118418 0 .rela.plt strlcat - R_X86_64_JUMP_SLOT 0x118420 0 .rela.plt gelf_getehdr - R_X86_64_JUMP_SLOT 0x118428 0 .rela.plt __cxa_finalize - R_X86_64_JUMP_SLOT 0x118430 0 .rela.plt elf_hash - R_X86_64_JUMP_SLOT 0x118438 0 .rela.plt strerror - R_X86_64_JUMP_SLOT 0x118440 0 .rela.plt gelf_fsize - R_X86_64_JUMP_SLOT 0x118448 0 .rela.plt elf_flagshdr - R_X86_64_JUMP_SLOT 0x118450 0 .rela.plt gelf_getsym - R_X86_64_JUMP_SLOT 0x118458 0 .rela.plt munmap - R_X86_64_JUMP_SLOT 0x118460 0 .rela.plt strncpy - R_X86_64_JUMP_SLOT 0x118468 0 .rela.plt elf_getscn - R_X86_64_JUMP_SLOT 0x118470 0 .rela.plt memset - R_X86_64_JUMP_SLOT 0x118478 0 .rela.plt elf_getdata - R_X86_64_JUMP_SLOT 0x118480 0 .rela.plt mmap - R_X86_64_JUMP_SLOT 0x118488 0 .rela.plt __error - R_X86_64_JUMP_SLOT 0x118490 0 .rela.plt __assert - R_X86_64_JUMP_SLOT 0x118498 0 .rela.plt lseek - R_X86_64_JUMP_SLOT 0x1184a0 0 .rela.plt elf64_fsize - R_X86_64_JUMP_SLOT 0x1184a8 0 .rela.plt ftruncate - R_X86_64_JUMP_SLOT 0x1184b0 0 .rela.plt calloc - R_X86_64_JUMP_SLOT 0x1184b8 0 .rela.plt elf_end - R_X86_64_JUMP_SLOT 0x1184c0 0 .rela.plt elf32_fsize - R_X86_64_JUMP_SLOT 0x1184c8 0 .rela.plt gelf_getshdr - R_X86_64_JUMP_SLOT 0x1184d0 0 .rela.plt gelf_update_sym - R_X86_64_JUMP_SLOT 0x1184d8 0 .rela.plt malloc - R_X86_64_JUMP_SLOT 0x1184e0 0 .rela.plt memcpy - R_X86_64_JUMP_SLOT 0x1184e8 0 .rela.plt free - R_X86_64_JUMP_SLOT 0x1184f0 0 .rela.plt elf_flagphdr - R_X86_64_JUMP_SLOT 0x1184f8 0 .rela.plt __stack_chk_fail - R_X86_64_JUMP_SLOT 0x118500 0 .rela.plt elf_memory - R_X86_64_JUMP_SLOT 0x118508 0 .rela.plt elf_flagehdr - R_X86_64_JUMP_SLOT 0x118510 0 .rela.plt fstat - R_X86_64_JUMP_SLOT 0x118518 0 .rela.plt strlcpy diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.out deleted file mode 100644 index e215121c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@s@N%.dynsym%libelf.so.out +++ /dev/null @@ -1,147 +0,0 @@ - -Symbol Table Section: .dynsym - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000120 0x000000000000 SECT LOCL D 0 .hash - [2] 0x00000578 0x000000000000 SECT LOCL D 0 .dynsym - [3] 0x000012f8 0x000000000000 SECT LOCL D 0 .dynstr - [4] 0x000018aa 0x000000000000 SECT LOCL D 0 .gnu.versio - [5] 0x000019d0 0x000000000000 SECT LOCL D 0 .gnu.versio - [6] 0x00001a28 0x000000000000 SECT LOCL D 0 .gnu.versio - [7] 0x00001a48 0x000000000000 SECT LOCL D 0 .rela.dyn - [8] 0x000024b0 0x000000000000 SECT LOCL D 0 .rela.plt - [9] 0x00002828 0x000000000000 SECT LOCL D 0 .init - [10] 0x0000283c 0x000000000000 SECT LOCL D 0 .plt - [11] 0x00002aa0 0x000000000000 SECT LOCL D 0 .text - [12] 0x00014ec8 0x000000000000 SECT LOCL D 0 .fini - [13] 0x00014ee0 0x000000000000 SECT LOCL D 0 .rodata - [14] 0x0001610c 0x000000000000 SECT LOCL D 0 .eh_frame_h - [15] 0x00116120 0x000000000000 SECT LOCL D 0 .data - [16] 0x001165d8 0x000000000000 SECT LOCL D 0 .eh_frame - [17] 0x00118208 0x000000000000 SECT LOCL D 0 .dynamic - [18] 0x001183b8 0x000000000000 SECT LOCL D 0 .ctors - [19] 0x001183c8 0x000000000000 SECT LOCL D 0 .dtors - [20] 0x001183d8 0x000000000000 SECT LOCL D 0 .jcr - [21] 0x001183e0 0x000000000000 SECT LOCL D 0 .got - [22] 0x00118558 0x000000000000 SECT LOCL D 0 .bss - [23] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [24] 0x00000000 0x000000000000 SECT LOCL D 0 .shstrtab - [25] 0x00000000 0x000000000000 SECT LOCL D 0 25 - [26] 0x00000000 0x000000000000 SECT LOCL D 0 26 - [27] 0x00000000 0x000000000000 SECT LOCL D 0 27 - [28] 0x00000000 0x000000000000 SECT LOCL D 0 28 - [29] 0x00000000 0x000000000000 SECT LOCL D 0 29 - [30] 0x00000000 0x000000000000 SECT LOCL D 0 30 - [31] 0x00000000 0x000000000000 SECT LOCL D 0 31 - [32] 0x00000000 0x000000000000 SECT LOCL D 0 32 - [33] 0x00002fb0 0x00000000015a FUNC GLOB D 2 .text gelf_getsyminfo - [34] 0x00005dd0 0x000000000169 FUNC GLOB D 2 .text elf_strptr - [35] 0x00000000 0x000000000000 FUNC GLOB D 4 UNDEF write - [36] 0x00007c60 0x00000000014a FUNC GLOB D 2 .text elf_newscn - [37] 0x000044e0 0x00000000000a FUNC GLOB D 2 .text elf32_checksum - [38] 0x00004010 0x000000000194 FUNC GLOB D 2 .text gelf_getmove - [39] 0x00008d10 0x000000000044 FUNC GLOB D 2 .text elf_flagscn - [40] 0x00007e90 0x000000000168 FUNC GLOB D 2 .text elf_rawdata - [41] 0x00006120 0x00000000004a FUNC GLOB D 2 .text elf_rawfile - [42] 0x00008bd0 0x000000000074 FUNC GLOB D 2 .text elf_flagelf - [43] 0x00000000 0x00000000007b FUNC GLOB D 4 UNDEF strlcat - [44] 0x00006310 0x0000000000ca FUNC GLOB D 2 .text elf_getident - [45] 0x00008b70 0x00000000005c FUNC GLOB D 2 .text elf_flagdata - [46] 0x00002bb0 0x00000000000d FUNC GLOB D 2 .text elf64_xlatetof - [47] 0x000044a0 0x000000000028 FUNC GLOB D 2 .text gelf_checksum - [48] 0x00007870 0x000000000117 FUNC GLOB D 2 .text gelf_getehdr - [49] 0x00006520 0x00000000000b FUNC GLOB D 3 .text _libelf_get_no_error_message - [50] 0x00000000 0x000000000131 FUNC WEAK D 4 UNDEF __cxa_finalize - [51] 0x00006690 0x0000000001e3 FUNC GLOB D 2 .text elf_begin - [52] 0x00003600 0x000000000184 FUNC GLOB D 2 .text gelf_getrela - [53] 0x00000000 0x000000000000 OBJT GLOB D 2 ABS FBSD_1.0 - [54] 0x00007390 0x000000000173 FUNC GLOB D 2 .text gelf_update_shdr - [55] 0x00003e40 0x00000000000a FUNC GLOB D 2 .text elf64_getphdr - [56] 0x000044d0 0x00000000000a FUNC GLOB D 2 .text elf64_checksum - [57] 0x00002b90 0x000000000010 FUNC GLOB D 2 .text elf64_xlatetom - [58] 0x00007690 0x00000000000f FUNC GLOB D 2 .text elf32_newehdr - [59] 0x00014950 0x000000000046 FUNC GLOB D 2 .text elf_hash - [60] 0x00000000 0x000000000040 OBJT GLOB D 4 UNDEF __stack_chk_guard - [61] 0x000060b0 0x00000000006a FUNC GLOB D 2 .text elf_getphnum - [62] 0x00004660 0x000000000159 FUNC GLOB D 2 .text gelf_getcap - [63] 0x00007680 0x00000000000f FUNC GLOB D 2 .text elf64_newehdr - [64] 0x00000000 0x000000000030 FUNC GLOB D 4 UNDEF strerror - [65] 0x000076b0 0x00000000000c FUNC GLOB D 2 .text elf32_getehdr - [66] 0x00013d00 0x000000000035 FUNC GLOB D 2 .text gelf_fsize - [67] 0x00005f40 0x00000000006a FUNC GLOB D 2 .text elf_getshstrndx - [68] 0x00002e60 0x000000000149 FUNC GLOB D 2 .text gelf_update_syminfo - [69] 0x000041b0 0x00000000000c FUNC GLOB D 2 .text gelf_getclass - [70] 0x00003e60 0x0000000001a3 FUNC GLOB D 2 .text gelf_update_move - [71] 0x00008d60 0x000000000005 FUNC GLOB D 2 .text elf_flagshdr - [72] 0x000032b0 0x00000000018c FUNC GLOB D 2 .text gelf_getsym - [73] 0x00000000 0x000000000000 FUNC GLOB D 4 UNDEF munmap - [74] 0x00002b20 0x00000000002e FUNC GLOB D 2 .text gelf_xlatetof - [75] 0x00007e50 0x00000000003b FUNC GLOB D 2 .text elf_nextscn - [76] 0x00003c90 0x00000000000d FUNC GLOB D 2 .text elf64_newphdr - [77] 0x00000000 0x00000000004c FUNC GLOB D 4 UNDEF strncpy - [78] 0x00007650 0x000000000028 FUNC GLOB D 2 .text gelf_newehdr - [79] 0x00007db0 0x00000000009d FUNC GLOB D 2 .text elf_getscn - [80] 0x00004340 0x00000000015a FUNC GLOB D 2 .text gelf_getdyn - [81] 0x000064c0 0x00000000000b FUNC GLOB D 2 .text elf_fill - [82] 0x00003790 0x00000000018c FUNC GLOB D 2 .text gelf_update_rel - [83] 0x00003c60 0x000000000024 FUNC GLOB D 2 .text gelf_newphdr - [84] 0x000041c0 0x000000000172 FUNC GLOB D 2 .text gelf_update_dyn - [85] 0x00000000 0x000000000054 FUNC GLOB D 4 UNDEF memset - [86] 0x00008000 0x0000000002fe FUNC GLOB D 2 .text elf_getdata - [87] 0x00008b20 0x000000000044 FUNC GLOB D 2 .text elf_flagarhdr - [88] 0x00000000 0x0000000000be FUNC GLOB D 4 UNDEF mmap - [89] 0x00000000 0x000000000008 FUNC GLOB D 4 UNDEF __error - [90] 0x00000000 0x000000000058 FUNC GLOB D 4 UNDEF __assert - [91] 0x000047c0 0x000000000036 FUNC GLOB D 2 .text elf_version - [92] 0x00000000 0x000000000067 FUNC GLOB D 4 UNDEF lseek - [93] 0x00002b50 0x000000000031 FUNC GLOB D 2 .text gelf_xlatetom - [94] 0x00013d40 0x00000000000d FUNC GLOB D 2 .text elf64_fsize - [95] 0x00008300 0x0000000000e5 FUNC GLOB D 2 .text elf_newdata - [96] 0x00002bc0 0x00000000000d FUNC GLOB D 2 .text elf32_xlatetof - [97] 0x00005fb0 0x000000000087 FUNC GLOB D 2 .text elf_setshstrndx - [98] 0x00002d10 0x000000000148 FUNC GLOB D 2 .text gelf_getsymshndx - [99] 0x00003440 0x0000000001b9 FUNC GLOB D 2 .text gelf_update_rela - [100] 0x00000000 0x000000000051 FUNC GLOB D 4 UNDEF ftruncate - [101] 0x000064f0 0x000000000006 FUNC GLOB D 3 .text _libelf_get_max_error - [102] 0x00006510 0x00000000000c FUNC GLOB D 3 .text _libelf_get_unknown_error_message - [103] 0x00000000 0x00000000014a FUNC GLOB D 4 UNDEF calloc - [104] 0x00000000 0x000000000000 OBJT GLOB D 3 ABS FBSDprivate_1.0 - [105] 0x00007520 0x00000000000a FUNC GLOB D 2 .text elf32_getshdr - [106] 0x000083f0 0x00000000012a FUNC GLOB D 2 .text elf_end - [107] 0x00013d50 0x00000000000d FUNC GLOB D 2 .text elf32_fsize - [108] 0x00006170 0x000000000061 FUNC GLOB D 2 .text elf_rand - [109] 0x000061e0 0x00000000010b FUNC GLOB D 2 .text elf_next - [110] 0x00007530 0x000000000119 FUNC GLOB D 2 .text gelf_getshdr - [111] 0x00003cb0 0x00000000018d FUNC GLOB D 2 .text gelf_getphdr - [112] 0x00007510 0x00000000000a FUNC GLOB D 2 .text elf64_getshdr - [113] 0x00003110 0x0000000001a0 FUNC GLOB D 2 .text gelf_update_sym - [114] 0x00006530 0x0000000000e2 FUNC GLOB D 2 .text elf_errmsg - [115] 0x00002ba0 0x000000000010 FUNC GLOB D 2 .text elf32_xlatetom - [116] 0x00006500 0x00000000000b FUNC GLOB D 3 .text _libelf_set_error - [117] 0x00003920 0x000000000168 FUNC GLOB D 2 .text gelf_getrel - [118] 0x00006040 0x00000000006a FUNC GLOB D 2 .text elf_getshnum - [119] 0x00000000 0x0000000000af FUNC GLOB D 4 UNDEF malloc - [120] 0x000076a0 0x00000000000c FUNC GLOB D 2 .text elf64_getehdr - [121] 0x00006410 0x00000000007f FUNC GLOB D 2 .text elf_getarsym - [122] 0x00000000 0x00000000004a FUNC GLOB D 4 UNDEF memcpy - [123] 0x000064d0 0x000000000017 FUNC GLOB D 2 .text elf_errno - [124] 0x00000000 0x000000000076 FUNC GLOB D 4 UNDEF free - [125] 0x00002bd0 0x00000000013c FUNC GLOB D 2 .text gelf_update_symshndx - [126] 0x00007990 0x000000000021 FUNC GLOB D 2 .text elf_ndxscn - [127] 0x00008cb0 0x000000000059 FUNC GLOB D 2 .text elf_flagphdr - [128] 0x000076c0 0x0000000001ac FUNC GLOB D 2 .text gelf_update_ehdr - [129] 0x00000000 0x00000000000c FUNC GLOB D 4 UNDEF __stack_chk_fail - [130] 0x00003a90 0x0000000001c1 FUNC GLOB D 2 .text gelf_update_phdr - [131] 0x000063e0 0x00000000002d FUNC GLOB D 2 .text elf_getbase - [132] 0x00006490 0x000000000026 FUNC GLOB D 2 .text elf_getarhdr - [133] 0x000044f0 0x00000000016c FUNC GLOB D 2 .text gelf_update_cap - [134] 0x00006620 0x000000000068 FUNC GLOB D 2 .text elf_cntl - [135] 0x000147c0 0x000000000186 FUNC GLOB D 2 .text elf_memory - [136] 0x000062f0 0x000000000016 FUNC GLOB D 2 .text elf_kind - [137] 0x00003e50 0x00000000000a FUNC GLOB D 2 .text elf32_getphdr - [138] 0x00008c50 0x000000000059 FUNC GLOB D 2 .text elf_flagehdr - [139] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF _Jv_RegisterClasses - [140] 0x00003ca0 0x00000000000d FUNC GLOB D 2 .text elf32_newphdr - [141] 0x00004800 0x0000000015d0 FUNC GLOB D 2 .text elf_update - [142] 0x00000000 0x000000000000 FUNC GLOB D 4 UNDEF fstat - [143] 0x00000000 0x00000000004a FUNC GLOB D 4 UNDEF strlcpy diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.out deleted file mode 100644 index ebc05ea0..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@S@v%libelf.so.out +++ /dev/null @@ -1,9 +0,0 @@ -Version Definition Section: .gnu.version_d - index version dependency - [1] libelf.so.1 [ BASE ] - [2] FBSD_1.0 - [3] FBSDprivate_1.0 - -Version Needed Section: .gnu.version_r - file version - libc.so.7 FBSD_1.0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.out deleted file mode 100644 index ef05298c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@c%libelf.so.out +++ /dev/null @@ -1,302 +0,0 @@ - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .hash - sh_type: SHT_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x120 - sh_offset: 288 - sh_size: 1108 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 4 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x578 - sh_offset: 1400 - sh_size: 3456 - sh_link: 3 - sh_info: 33 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x12f8 - sh_offset: 4856 - sh_size: 1457 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x18aa - sh_offset: 6314 - sh_size: 288 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_d - sh_type: SHT_SUNW(GNU)_verdef - sh_flags: SHF_ALLOC - sh_addr: 0x19d0 - sh_offset: 6608 - sh_size: 84 - sh_link: 3 - sh_info: 3 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x1a28 - sh_offset: 6696 - sh_size: 32 - sh_link: 3 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x1a48 - sh_offset: 6728 - sh_size: 2664 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x24b0 - sh_offset: 9392 - sh_size: 888 - sh_link: 2 - sh_info: 10 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2828 - sh_offset: 10280 - sh_size: 19 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 10 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x283c - sh_offset: 10300 - sh_size: 608 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 11 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2aa0 - sh_offset: 10912 - sh_size: 74792 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 12 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x14ec8 - sh_offset: 85704 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 13 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x14ee0 - sh_offset: 85728 - sh_size: 4650 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1610c - sh_offset: 90380 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 15 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x116120 - sh_offset: 90400 - sh_size: 1208 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 16 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1165d8 - sh_offset: 91608 - sh_size: 7216 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118208 - sh_offset: 98824 - sh_size: 432 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 18 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183b8 - sh_offset: 99256 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 19 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183c8 - sh_offset: 99272 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 20 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183d8 - sh_offset: 99288 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 21 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183e0 - sh_offset: 99296 - sh_size: 376 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118558 - sh_offset: 99672 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 99672 - sh_size: 4945 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 104617 - sh_size: 199 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.out deleted file mode 100644 index fa00cc40..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@c@p@n%libelf.so.out +++ /dev/null @@ -1,344 +0,0 @@ - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 90388 - p_memsz: 90388 - p_flags: PF_X|PF_R - p_align: 1048576 - -entry: 1 - p_type: PT_LOAD - p_offset: 90400 - p_vaddr: 0x116120 - p_paddr: 0x116120 - p_filesz: 9272 - p_memsz: 9280 - p_flags: PF_W|PF_R - p_align: 1048576 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 98824 - p_vaddr: 0x118208 - p_paddr: 0x118208 - p_filesz: 432 - p_memsz: 432 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 90380 - p_vaddr: 0x1610c - p_paddr: 0x1610c - p_filesz: 8 - p_memsz: 8 - p_flags: PF_R - p_align: 4 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .hash - sh_type: SHT_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x120 - sh_offset: 288 - sh_size: 1108 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 4 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x578 - sh_offset: 1400 - sh_size: 3456 - sh_link: 3 - sh_info: 33 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x12f8 - sh_offset: 4856 - sh_size: 1457 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x18aa - sh_offset: 6314 - sh_size: 288 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_d - sh_type: SHT_SUNW(GNU)_verdef - sh_flags: SHF_ALLOC - sh_addr: 0x19d0 - sh_offset: 6608 - sh_size: 84 - sh_link: 3 - sh_info: 3 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x1a28 - sh_offset: 6696 - sh_size: 32 - sh_link: 3 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x1a48 - sh_offset: 6728 - sh_size: 2664 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x24b0 - sh_offset: 9392 - sh_size: 888 - sh_link: 2 - sh_info: 10 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2828 - sh_offset: 10280 - sh_size: 19 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 10 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x283c - sh_offset: 10300 - sh_size: 608 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 11 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2aa0 - sh_offset: 10912 - sh_size: 74792 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 12 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x14ec8 - sh_offset: 85704 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 13 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x14ee0 - sh_offset: 85728 - sh_size: 4650 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1610c - sh_offset: 90380 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 15 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x116120 - sh_offset: 90400 - sh_size: 1208 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 16 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1165d8 - sh_offset: 91608 - sh_size: 7216 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118208 - sh_offset: 98824 - sh_size: 432 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 18 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183b8 - sh_offset: 99256 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 19 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183c8 - sh_offset: 99272 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 20 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183d8 - sh_offset: 99288 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 21 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183e0 - sh_offset: 99296 - sh_size: 376 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118558 - sh_offset: 99672 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 99672 - sh_size: 4945 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 104617 - sh_size: 199 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.out deleted file mode 100644 index 737c5d8e..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@c@s%libelf.so.out +++ /dev/null @@ -1,1312 +0,0 @@ - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .hash - sh_type: SHT_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x120 - sh_offset: 288 - sh_size: 1108 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 4 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x578 - sh_offset: 1400 - sh_size: 3456 - sh_link: 3 - sh_info: 33 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x12f8 - sh_offset: 4856 - sh_size: 1457 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x18aa - sh_offset: 6314 - sh_size: 288 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_d - sh_type: SHT_SUNW(GNU)_verdef - sh_flags: SHF_ALLOC - sh_addr: 0x19d0 - sh_offset: 6608 - sh_size: 84 - sh_link: 3 - sh_info: 3 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x1a28 - sh_offset: 6696 - sh_size: 32 - sh_link: 3 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x1a48 - sh_offset: 6728 - sh_size: 2664 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x24b0 - sh_offset: 9392 - sh_size: 888 - sh_link: 2 - sh_info: 10 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2828 - sh_offset: 10280 - sh_size: 19 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 10 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x283c - sh_offset: 10300 - sh_size: 608 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 11 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2aa0 - sh_offset: 10912 - sh_size: 74792 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 12 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x14ec8 - sh_offset: 85704 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 13 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x14ee0 - sh_offset: 85728 - sh_size: 4650 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1610c - sh_offset: 90380 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 15 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x116120 - sh_offset: 90400 - sh_size: 1208 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 16 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1165d8 - sh_offset: 91608 - sh_size: 7216 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118208 - sh_offset: 98824 - sh_size: 432 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 18 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183b8 - sh_offset: 99256 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 19 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183c8 - sh_offset: 99272 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 20 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183d8 - sh_offset: 99288 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 21 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183e0 - sh_offset: 99296 - sh_size: 376 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118558 - sh_offset: 99672 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 99672 - sh_size: 4945 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 104617 - sh_size: 199 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -symbol table (.dynsym): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: - st_value: 0x120 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 2 - st_name: - st_value: 0x578 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 2 - -entry: 3 - st_name: - st_value: 0x12f8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0x18aa - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0x19d0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0x1a28 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: - st_value: 0x1a48 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 8 - st_name: - st_value: 0x24b0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: - st_value: 0x2828 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 10 - st_name: - st_value: 0x283c - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 11 - st_name: - st_value: 0x2aa0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 11 - -entry: 12 - st_name: - st_value: 0x14ec8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 12 - -entry: 13 - st_name: - st_value: 0x14ee0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 13 - -entry: 14 - st_name: - st_value: 0x1610c - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 14 - -entry: 15 - st_name: - st_value: 0x116120 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 15 - -entry: 16 - st_name: - st_value: 0x1165d8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 16 - -entry: 17 - st_name: - st_value: 0x118208 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 17 - -entry: 18 - st_name: - st_value: 0x1183b8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 18 - -entry: 19 - st_name: - st_value: 0x1183c8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 19 - -entry: 20 - st_name: - st_value: 0x1183d8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 20 - -entry: 21 - st_name: - st_value: 0x1183e0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 21 - -entry: 22 - st_name: - st_value: 0x118558 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 22 - -entry: 23 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 23 - -entry: 24 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 24 - -entry: 25 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 25 - -entry: 26 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 26 - -entry: 27 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 27 - -entry: 28 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 28 - -entry: 29 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 29 - -entry: 30 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 30 - -entry: 31 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 31 - -entry: 32 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 32 - -entry: 33 - st_name: gelf_getsyminfo - st_value: 0x2fb0 - st_size: 346 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 34 - st_name: elf_strptr - st_value: 0x5dd0 - st_size: 361 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 35 - st_name: write - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 36 - st_name: elf_newscn - st_value: 0x7c60 - st_size: 330 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 37 - st_name: elf32_checksum - st_value: 0x44e0 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 38 - st_name: gelf_getmove - st_value: 0x4010 - st_size: 404 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 39 - st_name: elf_flagscn - st_value: 0x8d10 - st_size: 68 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 40 - st_name: elf_rawdata - st_value: 0x7e90 - st_size: 360 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 41 - st_name: elf_rawfile - st_value: 0x6120 - st_size: 74 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 42 - st_name: elf_flagelf - st_value: 0x8bd0 - st_size: 116 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 43 - st_name: strlcat - st_value: 0 - st_size: 123 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 44 - st_name: elf_getident - st_value: 0x6310 - st_size: 202 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 45 - st_name: elf_flagdata - st_value: 0x8b70 - st_size: 92 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 46 - st_name: elf64_xlatetof - st_value: 0x2bb0 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 47 - st_name: gelf_checksum - st_value: 0x44a0 - st_size: 40 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 48 - st_name: gelf_getehdr - st_value: 0x7870 - st_size: 279 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 49 - st_name: _libelf_get_no_error_message - st_value: 0x6520 - st_size: 11 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 50 - st_name: __cxa_finalize - st_value: 0 - st_size: 305 - st_info: STT_FUNC STB_WEAK - st_shndx: 0 - -entry: 51 - st_name: elf_begin - st_value: 0x6690 - st_size: 483 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 52 - st_name: gelf_getrela - st_value: 0x3600 - st_size: 388 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 53 - st_name: FBSD_1.0 - st_value: 0 - st_size: 0 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65521 - -entry: 54 - st_name: gelf_update_shdr - st_value: 0x7390 - st_size: 371 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 55 - st_name: elf64_getphdr - st_value: 0x3e40 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 56 - st_name: elf64_checksum - st_value: 0x44d0 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 57 - st_name: elf64_xlatetom - st_value: 0x2b90 - st_size: 16 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 58 - st_name: elf32_newehdr - st_value: 0x7690 - st_size: 15 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 59 - st_name: elf_hash - st_value: 0x14950 - st_size: 70 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 60 - st_name: __stack_chk_guard - st_value: 0 - st_size: 64 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 0 - -entry: 61 - st_name: elf_getphnum - st_value: 0x60b0 - st_size: 106 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 62 - st_name: gelf_getcap - st_value: 0x4660 - st_size: 345 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 63 - st_name: elf64_newehdr - st_value: 0x7680 - st_size: 15 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 64 - st_name: strerror - st_value: 0 - st_size: 48 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 65 - st_name: elf32_getehdr - st_value: 0x76b0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 66 - st_name: gelf_fsize - st_value: 0x13d00 - st_size: 53 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 67 - st_name: elf_getshstrndx - st_value: 0x5f40 - st_size: 106 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 68 - st_name: gelf_update_syminfo - st_value: 0x2e60 - st_size: 329 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 69 - st_name: gelf_getclass - st_value: 0x41b0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 70 - st_name: gelf_update_move - st_value: 0x3e60 - st_size: 419 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 71 - st_name: elf_flagshdr - st_value: 0x8d60 - st_size: 5 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 72 - st_name: gelf_getsym - st_value: 0x32b0 - st_size: 396 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 73 - st_name: munmap - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 74 - st_name: gelf_xlatetof - st_value: 0x2b20 - st_size: 46 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 75 - st_name: elf_nextscn - st_value: 0x7e50 - st_size: 59 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 76 - st_name: elf64_newphdr - st_value: 0x3c90 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 77 - st_name: strncpy - st_value: 0 - st_size: 76 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 78 - st_name: gelf_newehdr - st_value: 0x7650 - st_size: 40 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 79 - st_name: elf_getscn - st_value: 0x7db0 - st_size: 157 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 80 - st_name: gelf_getdyn - st_value: 0x4340 - st_size: 346 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 81 - st_name: elf_fill - st_value: 0x64c0 - st_size: 11 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 82 - st_name: gelf_update_rel - st_value: 0x3790 - st_size: 396 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 83 - st_name: gelf_newphdr - st_value: 0x3c60 - st_size: 36 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 84 - st_name: gelf_update_dyn - st_value: 0x41c0 - st_size: 370 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 85 - st_name: memset - st_value: 0 - st_size: 84 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 86 - st_name: elf_getdata - st_value: 0x8000 - st_size: 766 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 87 - st_name: elf_flagarhdr - st_value: 0x8b20 - st_size: 68 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 88 - st_name: mmap - st_value: 0 - st_size: 190 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 89 - st_name: __error - st_value: 0 - st_size: 8 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 90 - st_name: __assert - st_value: 0 - st_size: 88 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 91 - st_name: elf_version - st_value: 0x47c0 - st_size: 54 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 92 - st_name: lseek - st_value: 0 - st_size: 103 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 93 - st_name: gelf_xlatetom - st_value: 0x2b50 - st_size: 49 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 94 - st_name: elf64_fsize - st_value: 0x13d40 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 95 - st_name: elf_newdata - st_value: 0x8300 - st_size: 229 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 96 - st_name: elf32_xlatetof - st_value: 0x2bc0 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 97 - st_name: elf_setshstrndx - st_value: 0x5fb0 - st_size: 135 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 98 - st_name: gelf_getsymshndx - st_value: 0x2d10 - st_size: 328 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 99 - st_name: gelf_update_rela - st_value: 0x3440 - st_size: 441 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 100 - st_name: ftruncate - st_value: 0 - st_size: 81 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 101 - st_name: _libelf_get_max_error - st_value: 0x64f0 - st_size: 6 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 102 - st_name: _libelf_get_unknown_error_message - st_value: 0x6510 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 103 - st_name: calloc - st_value: 0 - st_size: 330 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 104 - st_name: FBSDprivate_1.0 - st_value: 0 - st_size: 0 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65521 - -entry: 105 - st_name: elf32_getshdr - st_value: 0x7520 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 106 - st_name: elf_end - st_value: 0x83f0 - st_size: 298 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 107 - st_name: elf32_fsize - st_value: 0x13d50 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 108 - st_name: elf_rand - st_value: 0x6170 - st_size: 97 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 109 - st_name: elf_next - st_value: 0x61e0 - st_size: 267 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 110 - st_name: gelf_getshdr - st_value: 0x7530 - st_size: 281 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 111 - st_name: gelf_getphdr - st_value: 0x3cb0 - st_size: 397 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 112 - st_name: elf64_getshdr - st_value: 0x7510 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 113 - st_name: gelf_update_sym - st_value: 0x3110 - st_size: 416 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 114 - st_name: elf_errmsg - st_value: 0x6530 - st_size: 226 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 115 - st_name: elf32_xlatetom - st_value: 0x2ba0 - st_size: 16 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 116 - st_name: _libelf_set_error - st_value: 0x6500 - st_size: 11 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 117 - st_name: gelf_getrel - st_value: 0x3920 - st_size: 360 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 118 - st_name: elf_getshnum - st_value: 0x6040 - st_size: 106 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 119 - st_name: malloc - st_value: 0 - st_size: 175 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 120 - st_name: elf64_getehdr - st_value: 0x76a0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 121 - st_name: elf_getarsym - st_value: 0x6410 - st_size: 127 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 122 - st_name: memcpy - st_value: 0 - st_size: 74 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 123 - st_name: elf_errno - st_value: 0x64d0 - st_size: 23 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 124 - st_name: free - st_value: 0 - st_size: 118 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 125 - st_name: gelf_update_symshndx - st_value: 0x2bd0 - st_size: 316 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 126 - st_name: elf_ndxscn - st_value: 0x7990 - st_size: 33 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 127 - st_name: elf_flagphdr - st_value: 0x8cb0 - st_size: 89 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 128 - st_name: gelf_update_ehdr - st_value: 0x76c0 - st_size: 428 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 129 - st_name: __stack_chk_fail - st_value: 0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 130 - st_name: gelf_update_phdr - st_value: 0x3a90 - st_size: 449 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 131 - st_name: elf_getbase - st_value: 0x63e0 - st_size: 45 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 132 - st_name: elf_getarhdr - st_value: 0x6490 - st_size: 38 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 133 - st_name: gelf_update_cap - st_value: 0x44f0 - st_size: 364 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 134 - st_name: elf_cntl - st_value: 0x6620 - st_size: 104 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 135 - st_name: elf_memory - st_value: 0x147c0 - st_size: 390 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 136 - st_name: elf_kind - st_value: 0x62f0 - st_size: 22 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 137 - st_name: elf32_getphdr - st_value: 0x3e50 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 138 - st_name: elf_flagehdr - st_value: 0x8c50 - st_size: 89 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 139 - st_name: _Jv_RegisterClasses - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 140 - st_name: elf32_newphdr - st_value: 0x3ca0 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 141 - st_name: elf_update - st_value: 0x4800 - st_size: 5584 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 142 - st_name: fstat - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 143 - st_name: strlcpy - st_value: 0 - st_size: 74 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.out deleted file mode 100644 index 6e6d908a..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@d%libelf.so.out +++ /dev/null @@ -1,105 +0,0 @@ - -dynamic: - -entry: 0 - d_tag: DT_NEEDED - d_val: libc.so.7 - -entry: 1 - d_tag: DT_SONAME - d_val: libelf.so.1 - -entry: 2 - d_tag: DT_INIT - d_ptr: 0x2828 - -entry: 3 - d_tag: DT_FINI - d_ptr: 0x14ec8 - -entry: 4 - d_tag: DT_HASH - d_ptr: 0x120 - -entry: 5 - d_tag: DT_STRTAB - d_ptr: 0x12f8 - -entry: 6 - d_tag: DT_SYMTAB - d_ptr: 0x578 - -entry: 7 - d_tag: DT_STRSZ - d_val: 1457 - -entry: 8 - d_tag: DT_SYMENT - d_val: 24 - -entry: 9 - d_tag: DT_PLTGOT - d_ptr: 0x1183e0 - -entry: 10 - d_tag: DT_PLTRELSZ - d_val: 888 - -entry: 11 - d_tag: DT_PLTREL - d_val: 7 - -entry: 12 - d_tag: DT_JMPREL - d_ptr: 0x24b0 - -entry: 13 - d_tag: DT_RELA - d_val: 6728 - -entry: 14 - d_tag: DT_RELASZ - d_val: 2664 - -entry: 15 - d_tag: DT_RELAENT - d_val: 24 - -entry: 16 - d_tag: DT_VERDEF - d_val: 6608 - -entry: 17 - d_tag: DT_VERDEFNUM - d_val: 3 - -entry: 18 - d_tag: DT_VERNEED - d_val: 6696 - -entry: 19 - d_tag: DT_VERNEEDNUM - d_val: 1 - -entry: 20 - d_tag: DT_GNU_VERSYM - d_val: 6314 - -entry: 21 - d_tag: DT_RELACOUNT - d_val: 106 - -entry: 22 - d_tag: DT_NULL - -entry: 23 - d_tag: DT_NULL - -entry: 24 - d_tag: DT_NULL - -entry: 25 - d_tag: DT_NULL - -entry: 26 - d_tag: DT_NULL diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.out deleted file mode 100644 index 1de9ed87..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@e%libelf.so.out +++ /dev/null @@ -1,17 +0,0 @@ - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_DYN - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0x2aa0 - e_phoff: 64 - e_shoff: 104816 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 56 - e_phnum: 4 - e_shentsize: 64 - e_shnum: 25 - e_shstrndx: 24 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.out deleted file mode 100644 index 1de9ed87..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@e@i%libelf.so.out +++ /dev/null @@ -1,17 +0,0 @@ - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_DYN - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0x2aa0 - e_phoff: 64 - e_shoff: 104816 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 56 - e_phnum: 4 - e_shentsize: 64 - e_shnum: 25 - e_shstrndx: 24 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.out deleted file mode 100644 index 00d278cf..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@e@p@c%libelf.so.out +++ /dev/null @@ -1,361 +0,0 @@ - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_FREEBSD - e_type: ET_DYN - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0x2aa0 - e_phoff: 64 - e_shoff: 104816 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 56 - e_phnum: 4 - e_shentsize: 64 - e_shnum: 25 - e_shstrndx: 24 - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 90388 - p_memsz: 90388 - p_flags: PF_X|PF_R - p_align: 1048576 - -entry: 1 - p_type: PT_LOAD - p_offset: 90400 - p_vaddr: 0x116120 - p_paddr: 0x116120 - p_filesz: 9272 - p_memsz: 9280 - p_flags: PF_W|PF_R - p_align: 1048576 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 98824 - p_vaddr: 0x118208 - p_paddr: 0x118208 - p_filesz: 432 - p_memsz: 432 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 90380 - p_vaddr: 0x1610c - p_paddr: 0x1610c - p_filesz: 8 - p_memsz: 8 - p_flags: PF_R - p_align: 4 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .hash - sh_type: SHT_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x120 - sh_offset: 288 - sh_size: 1108 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 4 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x578 - sh_offset: 1400 - sh_size: 3456 - sh_link: 3 - sh_info: 33 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x12f8 - sh_offset: 4856 - sh_size: 1457 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x18aa - sh_offset: 6314 - sh_size: 288 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_d - sh_type: SHT_SUNW(GNU)_verdef - sh_flags: SHF_ALLOC - sh_addr: 0x19d0 - sh_offset: 6608 - sh_size: 84 - sh_link: 3 - sh_info: 3 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x1a28 - sh_offset: 6696 - sh_size: 32 - sh_link: 3 - sh_info: 1 - sh_addralign: 8 - sh_entsize: 0 - -entry: 7 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x1a48 - sh_offset: 6728 - sh_size: 2664 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x24b0 - sh_offset: 9392 - sh_size: 888 - sh_link: 2 - sh_info: 10 - sh_addralign: 8 - sh_entsize: 24 - -entry: 9 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2828 - sh_offset: 10280 - sh_size: 19 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 10 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x283c - sh_offset: 10300 - sh_size: 608 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 11 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x2aa0 - sh_offset: 10912 - sh_size: 74792 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 12 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x14ec8 - sh_offset: 85704 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 13 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x14ee0 - sh_offset: 85728 - sh_size: 4650 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1610c - sh_offset: 90380 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 15 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x116120 - sh_offset: 90400 - sh_size: 1208 - sh_link: 0 - sh_info: 0 - sh_addralign: 32 - sh_entsize: 0 - -entry: 16 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0x1165d8 - sh_offset: 91608 - sh_size: 7216 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118208 - sh_offset: 98824 - sh_size: 432 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 18 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183b8 - sh_offset: 99256 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 19 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183c8 - sh_offset: 99272 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 20 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183d8 - sh_offset: 99288 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 21 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x1183e0 - sh_offset: 99296 - sh_size: 376 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x118558 - sh_offset: 99672 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 99672 - sh_size: 4945 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 104617 - sh_size: 199 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.out deleted file mode 100644 index 793ce27d..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@h%libelf.so.out +++ /dev/null @@ -1,831 +0,0 @@ - -hash table (.hash): - -nbucket: 131 -nchain: 144 - -bucket[0]: - 0 - -bucket[1]: - 138 - -bucket[2]: - 0 - -bucket[3]: - 93 - -bucket[4]: - 77 - -bucket[5]: - 96 - -bucket[6]: - 89 - -bucket[7]: - 0 - -bucket[8]: - 80 - -bucket[9]: - 40 - -bucket[10]: - 120 - -bucket[11]: - 0 - -bucket[12]: - 133 - -bucket[13]: - 116 - -bucket[14]: - 0 - -bucket[15]: - 0 - -bucket[16]: - 123 - -bucket[17]: - 0 - -bucket[18]: - 124 - -bucket[19]: - 119 - -bucket[20]: - 57 - -bucket[21]: - 128 - -bucket[22]: - 108 - -bucket[23]: - 142 - -bucket[24]: - 105 - -bucket[25]: - 36 - -bucket[26]: - 134 - -bucket[27]: - 0 - -bucket[28]: - 122 - -bucket[29]: - 0 - -bucket[30]: - 83 - -bucket[31]: - 0 - -bucket[32]: - 102 - -bucket[33]: - 0 - -bucket[34]: - 0 - -bucket[35]: - 112 - -bucket[36]: - 55 - -bucket[37]: - 126 - -bucket[38]: - 78 - -bucket[39]: - 0 - -bucket[40]: - 0 - -bucket[41]: - 75 - -bucket[42]: - 69 - -bucket[43]: - 0 - -bucket[44]: - 43 - -bucket[45]: - 0 - -bucket[46]: - 52 - -bucket[47]: - 0 - -bucket[48]: - 114 - -bucket[49]: - 0 - -bucket[50]: - 67 - -bucket[51]: - 81 - -bucket[52]: - 38 - -bucket[53]: - 0 - -bucket[54]: - 0 - -bucket[55]: - 0 - -bucket[56]: - 0 - -bucket[57]: - 0 - -bucket[58]: - 0 - -bucket[59]: - 0 - -bucket[60]: - 0 - -bucket[61]: - 0 - -bucket[62]: - 37 - -bucket[63]: - 0 - -bucket[64]: - 64 - -bucket[65]: - 143 - -bucket[66]: - 0 - -bucket[67]: - 101 - -bucket[68]: - 73 - -bucket[69]: - 0 - -bucket[70]: - 0 - -bucket[71]: - 0 - -bucket[72]: - 0 - -bucket[73]: - 0 - -bucket[74]: - 0 - -bucket[75]: - 0 - -bucket[76]: - 0 - -bucket[77]: - 0 - -bucket[78]: - 60 - -bucket[79]: - 0 - -bucket[80]: - 59 - -bucket[81]: - 0 - -bucket[82]: - 34 - -bucket[83]: - 121 - -bucket[84]: - 0 - -bucket[85]: - 71 - -bucket[86]: - 0 - -bucket[87]: - 63 - -bucket[88]: - 0 - -bucket[89]: - 84 - -bucket[90]: - 0 - -bucket[91]: - 0 - -bucket[92]: - 0 - -bucket[93]: - 99 - -bucket[94]: - 42 - -bucket[95]: - 50 - -bucket[96]: - 0 - -bucket[97]: - 0 - -bucket[98]: - 129 - -bucket[99]: - 117 - -bucket[100]: - 45 - -bucket[101]: - 47 - -bucket[102]: - 0 - -bucket[103]: - 141 - -bucket[104]: - 139 - -bucket[105]: - 0 - -bucket[106]: - 130 - -bucket[107]: - 56 - -bucket[108]: - 113 - -bucket[109]: - 88 - -bucket[110]: - 70 - -bucket[111]: - 0 - -bucket[112]: - 0 - -bucket[113]: - 140 - -bucket[114]: - 54 - -bucket[115]: - 0 - -bucket[116]: - 111 - -bucket[117]: - 0 - -bucket[118]: - 0 - -bucket[119]: - 0 - -bucket[120]: - 135 - -bucket[121]: - 65 - -bucket[122]: - 136 - -bucket[123]: - 0 - -bucket[124]: - 118 - -bucket[125]: - 132 - -bucket[126]: - 100 - -bucket[127]: - 74 - -bucket[128]: - 86 - -bucket[129]: - 127 - -bucket[130]: - 0 - -chain[0]: - 0 - -chain[1]: - 0 - -chain[2]: - 0 - -chain[3]: - 0 - -chain[4]: - 0 - -chain[5]: - 0 - -chain[6]: - 0 - -chain[7]: - 0 - -chain[8]: - 0 - -chain[9]: - 0 - -chain[10]: - 0 - -chain[11]: - 0 - -chain[12]: - 0 - -chain[13]: - 0 - -chain[14]: - 0 - -chain[15]: - 0 - -chain[16]: - 0 - -chain[17]: - 0 - -chain[18]: - 0 - -chain[19]: - 0 - -chain[20]: - 0 - -chain[21]: - 0 - -chain[22]: - 0 - -chain[23]: - 0 - -chain[24]: - 0 - -chain[25]: - 0 - -chain[26]: - 0 - -chain[27]: - 0 - -chain[28]: - 0 - -chain[29]: - 0 - -chain[30]: - 0 - -chain[31]: - 0 - -chain[32]: - 0 - -chain[33]: - 0 - -chain[34]: - 0 - -chain[35]: - 0 - -chain[36]: - 0 - -chain[37]: - 0 - -chain[38]: - 0 - -chain[39]: - 0 - -chain[40]: - 0 - -chain[41]: - 39 - -chain[42]: - 0 - -chain[43]: - 0 - -chain[44]: - 0 - -chain[45]: - 0 - -chain[46]: - 0 - -chain[47]: - 0 - -chain[48]: - 0 - -chain[49]: - 0 - -chain[50]: - 41 - -chain[51]: - 0 - -chain[52]: - 0 - -chain[53]: - 0 - -chain[54]: - 0 - -chain[55]: - 0 - -chain[56]: - 0 - -chain[57]: - 0 - -chain[58]: - 0 - -chain[59]: - 33 - -chain[60]: - 0 - -chain[61]: - 0 - -chain[62]: - 0 - -chain[63]: - 0 - -chain[64]: - 0 - -chain[65]: - 0 - -chain[66]: - 0 - -chain[67]: - 0 - -chain[68]: - 0 - -chain[69]: - 0 - -chain[70]: - 0 - -chain[71]: - 0 - -chain[72]: - 0 - -chain[73]: - 51 - -chain[74]: - 0 - -chain[75]: - 0 - -chain[76]: - 0 - -chain[77]: - 0 - -chain[78]: - 35 - -chain[79]: - 0 - -chain[80]: - 0 - -chain[81]: - 44 - -chain[82]: - 0 - -chain[83]: - 0 - -chain[84]: - 0 - -chain[85]: - 46 - -chain[86]: - 0 - -chain[87]: - 85 - -chain[88]: - 0 - -chain[89]: - 0 - -chain[90]: - 0 - -chain[91]: - 0 - -chain[92]: - 0 - -chain[93]: - 61 - -chain[94]: - 0 - -chain[95]: - 0 - -chain[96]: - 0 - -chain[97]: - 0 - -chain[98]: - 0 - -chain[99]: - 0 - -chain[100]: - 76 - -chain[101]: - 58 - -chain[102]: - 66 - -chain[103]: - 0 - -chain[104]: - 0 - -chain[105]: - 0 - -chain[106]: - 72 - -chain[107]: - 0 - -chain[108]: - 68 - -chain[109]: - 90 - -chain[110]: - 0 - -chain[111]: - 0 - -chain[112]: - 0 - -chain[113]: - 0 - -chain[114]: - 106 - -chain[115]: - 97 - -chain[116]: - 87 - -chain[117]: - 110 - -chain[118]: - 48 - -chain[119]: - 0 - -chain[120]: - 95 - -chain[121]: - 0 - -chain[122]: - 82 - -chain[123]: - 109 - -chain[124]: - 0 - -chain[125]: - 103 - -chain[126]: - 104 - -chain[127]: - 62 - -chain[128]: - 0 - -chain[129]: - 79 - -chain[130]: - 0 - -chain[131]: - 125 - -chain[132]: - 0 - -chain[133]: - 115 - -chain[134]: - 0 - -chain[135]: - 98 - -chain[136]: - 92 - -chain[137]: - 131 - -chain[138]: - 49 - -chain[139]: - 107 - -chain[140]: - 94 - -chain[141]: - 91 - -chain[142]: - 137 - -chain[143]: - 53 - diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@n%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@n%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@n%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@n%libelf.so.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.out deleted file mode 100644 index cb06e52b..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@p%libelf.so.out +++ /dev/null @@ -1,42 +0,0 @@ - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 90388 - p_memsz: 90388 - p_flags: PF_X|PF_R - p_align: 1048576 - -entry: 1 - p_type: PT_LOAD - p_offset: 90400 - p_vaddr: 0x116120 - p_paddr: 0x116120 - p_filesz: 9272 - p_memsz: 9280 - p_flags: PF_W|PF_R - p_align: 1048576 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 98824 - p_vaddr: 0x118208 - p_paddr: 0x118208 - p_filesz: 432 - p_memsz: 432 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 90380 - p_vaddr: 0x1610c - p_paddr: 0x1610c - p_filesz: 8 - p_memsz: 8 - p_flags: PF_R - p_align: 4 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.out deleted file mode 100644 index 8846cf43..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@p@s%libelf.so.out +++ /dev/null @@ -1,1052 +0,0 @@ - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 90388 - p_memsz: 90388 - p_flags: PF_X|PF_R - p_align: 1048576 - -entry: 1 - p_type: PT_LOAD - p_offset: 90400 - p_vaddr: 0x116120 - p_paddr: 0x116120 - p_filesz: 9272 - p_memsz: 9280 - p_flags: PF_W|PF_R - p_align: 1048576 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 98824 - p_vaddr: 0x118208 - p_paddr: 0x118208 - p_filesz: 432 - p_memsz: 432 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 90380 - p_vaddr: 0x1610c - p_paddr: 0x1610c - p_filesz: 8 - p_memsz: 8 - p_flags: PF_R - p_align: 4 - -symbol table (.dynsym): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: - st_value: 0x120 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 2 - st_name: - st_value: 0x578 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 2 - -entry: 3 - st_name: - st_value: 0x12f8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0x18aa - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0x19d0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0x1a28 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: - st_value: 0x1a48 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 8 - st_name: - st_value: 0x24b0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: - st_value: 0x2828 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 10 - st_name: - st_value: 0x283c - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 11 - st_name: - st_value: 0x2aa0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 11 - -entry: 12 - st_name: - st_value: 0x14ec8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 12 - -entry: 13 - st_name: - st_value: 0x14ee0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 13 - -entry: 14 - st_name: - st_value: 0x1610c - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 14 - -entry: 15 - st_name: - st_value: 0x116120 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 15 - -entry: 16 - st_name: - st_value: 0x1165d8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 16 - -entry: 17 - st_name: - st_value: 0x118208 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 17 - -entry: 18 - st_name: - st_value: 0x1183b8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 18 - -entry: 19 - st_name: - st_value: 0x1183c8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 19 - -entry: 20 - st_name: - st_value: 0x1183d8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 20 - -entry: 21 - st_name: - st_value: 0x1183e0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 21 - -entry: 22 - st_name: - st_value: 0x118558 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 22 - -entry: 23 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 23 - -entry: 24 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 24 - -entry: 25 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 25 - -entry: 26 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 26 - -entry: 27 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 27 - -entry: 28 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 28 - -entry: 29 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 29 - -entry: 30 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 30 - -entry: 31 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 31 - -entry: 32 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 32 - -entry: 33 - st_name: gelf_getsyminfo - st_value: 0x2fb0 - st_size: 346 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 34 - st_name: elf_strptr - st_value: 0x5dd0 - st_size: 361 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 35 - st_name: write - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 36 - st_name: elf_newscn - st_value: 0x7c60 - st_size: 330 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 37 - st_name: elf32_checksum - st_value: 0x44e0 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 38 - st_name: gelf_getmove - st_value: 0x4010 - st_size: 404 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 39 - st_name: elf_flagscn - st_value: 0x8d10 - st_size: 68 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 40 - st_name: elf_rawdata - st_value: 0x7e90 - st_size: 360 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 41 - st_name: elf_rawfile - st_value: 0x6120 - st_size: 74 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 42 - st_name: elf_flagelf - st_value: 0x8bd0 - st_size: 116 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 43 - st_name: strlcat - st_value: 0 - st_size: 123 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 44 - st_name: elf_getident - st_value: 0x6310 - st_size: 202 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 45 - st_name: elf_flagdata - st_value: 0x8b70 - st_size: 92 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 46 - st_name: elf64_xlatetof - st_value: 0x2bb0 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 47 - st_name: gelf_checksum - st_value: 0x44a0 - st_size: 40 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 48 - st_name: gelf_getehdr - st_value: 0x7870 - st_size: 279 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 49 - st_name: _libelf_get_no_error_message - st_value: 0x6520 - st_size: 11 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 50 - st_name: __cxa_finalize - st_value: 0 - st_size: 305 - st_info: STT_FUNC STB_WEAK - st_shndx: 0 - -entry: 51 - st_name: elf_begin - st_value: 0x6690 - st_size: 483 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 52 - st_name: gelf_getrela - st_value: 0x3600 - st_size: 388 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 53 - st_name: FBSD_1.0 - st_value: 0 - st_size: 0 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65521 - -entry: 54 - st_name: gelf_update_shdr - st_value: 0x7390 - st_size: 371 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 55 - st_name: elf64_getphdr - st_value: 0x3e40 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 56 - st_name: elf64_checksum - st_value: 0x44d0 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 57 - st_name: elf64_xlatetom - st_value: 0x2b90 - st_size: 16 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 58 - st_name: elf32_newehdr - st_value: 0x7690 - st_size: 15 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 59 - st_name: elf_hash - st_value: 0x14950 - st_size: 70 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 60 - st_name: __stack_chk_guard - st_value: 0 - st_size: 64 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 0 - -entry: 61 - st_name: elf_getphnum - st_value: 0x60b0 - st_size: 106 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 62 - st_name: gelf_getcap - st_value: 0x4660 - st_size: 345 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 63 - st_name: elf64_newehdr - st_value: 0x7680 - st_size: 15 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 64 - st_name: strerror - st_value: 0 - st_size: 48 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 65 - st_name: elf32_getehdr - st_value: 0x76b0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 66 - st_name: gelf_fsize - st_value: 0x13d00 - st_size: 53 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 67 - st_name: elf_getshstrndx - st_value: 0x5f40 - st_size: 106 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 68 - st_name: gelf_update_syminfo - st_value: 0x2e60 - st_size: 329 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 69 - st_name: gelf_getclass - st_value: 0x41b0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 70 - st_name: gelf_update_move - st_value: 0x3e60 - st_size: 419 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 71 - st_name: elf_flagshdr - st_value: 0x8d60 - st_size: 5 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 72 - st_name: gelf_getsym - st_value: 0x32b0 - st_size: 396 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 73 - st_name: munmap - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 74 - st_name: gelf_xlatetof - st_value: 0x2b20 - st_size: 46 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 75 - st_name: elf_nextscn - st_value: 0x7e50 - st_size: 59 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 76 - st_name: elf64_newphdr - st_value: 0x3c90 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 77 - st_name: strncpy - st_value: 0 - st_size: 76 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 78 - st_name: gelf_newehdr - st_value: 0x7650 - st_size: 40 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 79 - st_name: elf_getscn - st_value: 0x7db0 - st_size: 157 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 80 - st_name: gelf_getdyn - st_value: 0x4340 - st_size: 346 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 81 - st_name: elf_fill - st_value: 0x64c0 - st_size: 11 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 82 - st_name: gelf_update_rel - st_value: 0x3790 - st_size: 396 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 83 - st_name: gelf_newphdr - st_value: 0x3c60 - st_size: 36 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 84 - st_name: gelf_update_dyn - st_value: 0x41c0 - st_size: 370 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 85 - st_name: memset - st_value: 0 - st_size: 84 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 86 - st_name: elf_getdata - st_value: 0x8000 - st_size: 766 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 87 - st_name: elf_flagarhdr - st_value: 0x8b20 - st_size: 68 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 88 - st_name: mmap - st_value: 0 - st_size: 190 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 89 - st_name: __error - st_value: 0 - st_size: 8 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 90 - st_name: __assert - st_value: 0 - st_size: 88 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 91 - st_name: elf_version - st_value: 0x47c0 - st_size: 54 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 92 - st_name: lseek - st_value: 0 - st_size: 103 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 93 - st_name: gelf_xlatetom - st_value: 0x2b50 - st_size: 49 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 94 - st_name: elf64_fsize - st_value: 0x13d40 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 95 - st_name: elf_newdata - st_value: 0x8300 - st_size: 229 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 96 - st_name: elf32_xlatetof - st_value: 0x2bc0 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 97 - st_name: elf_setshstrndx - st_value: 0x5fb0 - st_size: 135 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 98 - st_name: gelf_getsymshndx - st_value: 0x2d10 - st_size: 328 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 99 - st_name: gelf_update_rela - st_value: 0x3440 - st_size: 441 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 100 - st_name: ftruncate - st_value: 0 - st_size: 81 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 101 - st_name: _libelf_get_max_error - st_value: 0x64f0 - st_size: 6 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 102 - st_name: _libelf_get_unknown_error_message - st_value: 0x6510 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 103 - st_name: calloc - st_value: 0 - st_size: 330 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 104 - st_name: FBSDprivate_1.0 - st_value: 0 - st_size: 0 - st_info: STT_OBJECT STB_GLOBAL - st_shndx: 65521 - -entry: 105 - st_name: elf32_getshdr - st_value: 0x7520 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 106 - st_name: elf_end - st_value: 0x83f0 - st_size: 298 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 107 - st_name: elf32_fsize - st_value: 0x13d50 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 108 - st_name: elf_rand - st_value: 0x6170 - st_size: 97 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 109 - st_name: elf_next - st_value: 0x61e0 - st_size: 267 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 110 - st_name: gelf_getshdr - st_value: 0x7530 - st_size: 281 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 111 - st_name: gelf_getphdr - st_value: 0x3cb0 - st_size: 397 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 112 - st_name: elf64_getshdr - st_value: 0x7510 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 113 - st_name: gelf_update_sym - st_value: 0x3110 - st_size: 416 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 114 - st_name: elf_errmsg - st_value: 0x6530 - st_size: 226 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 115 - st_name: elf32_xlatetom - st_value: 0x2ba0 - st_size: 16 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 116 - st_name: _libelf_set_error - st_value: 0x6500 - st_size: 11 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 117 - st_name: gelf_getrel - st_value: 0x3920 - st_size: 360 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 118 - st_name: elf_getshnum - st_value: 0x6040 - st_size: 106 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 119 - st_name: malloc - st_value: 0 - st_size: 175 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 120 - st_name: elf64_getehdr - st_value: 0x76a0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 121 - st_name: elf_getarsym - st_value: 0x6410 - st_size: 127 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 122 - st_name: memcpy - st_value: 0 - st_size: 74 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 123 - st_name: elf_errno - st_value: 0x64d0 - st_size: 23 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 124 - st_name: free - st_value: 0 - st_size: 118 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 125 - st_name: gelf_update_symshndx - st_value: 0x2bd0 - st_size: 316 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 126 - st_name: elf_ndxscn - st_value: 0x7990 - st_size: 33 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 127 - st_name: elf_flagphdr - st_value: 0x8cb0 - st_size: 89 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 128 - st_name: gelf_update_ehdr - st_value: 0x76c0 - st_size: 428 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 129 - st_name: __stack_chk_fail - st_value: 0 - st_size: 12 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 130 - st_name: gelf_update_phdr - st_value: 0x3a90 - st_size: 449 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 131 - st_name: elf_getbase - st_value: 0x63e0 - st_size: 45 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 132 - st_name: elf_getarhdr - st_value: 0x6490 - st_size: 38 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 133 - st_name: gelf_update_cap - st_value: 0x44f0 - st_size: 364 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 134 - st_name: elf_cntl - st_value: 0x6620 - st_size: 104 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 135 - st_name: elf_memory - st_value: 0x147c0 - st_size: 390 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 136 - st_name: elf_kind - st_value: 0x62f0 - st_size: 22 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 137 - st_name: elf32_getphdr - st_value: 0x3e50 - st_size: 10 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 138 - st_name: elf_flagehdr - st_value: 0x8c50 - st_size: 89 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 139 - st_name: _Jv_RegisterClasses - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 140 - st_name: elf32_newphdr - st_value: 0x3ca0 - st_size: 13 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 141 - st_name: elf_update - st_value: 0x4800 - st_size: 5584 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 142 - st_name: fstat - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 143 - st_name: strlcpy - st_value: 0 - st_size: 74 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.err b/contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.out b/contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.out deleted file mode 100644 index 8bb9837b..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/@r%libelf.so.out +++ /dev/null @@ -1,744 +0,0 @@ - -relocation with addend (.rela.dyn): - -entry: 0 - r_offset: 0x116120 - r_info: 0x8 - r_addend: 1138976 - -entry: 1 - r_offset: 0x116128 - r_info: 0x8 - r_addend: 1147856 - -entry: 2 - r_offset: 0x116140 - r_info: 0x8 - r_addend: 87071 - -entry: 3 - r_offset: 0x116148 - r_info: 0x8 - r_addend: 87080 - -entry: 4 - r_offset: 0x116150 - r_info: 0x8 - r_addend: 87104 - -entry: 5 - r_offset: 0x116158 - r_info: 0x8 - r_addend: 87121 - -entry: 6 - r_offset: 0x116160 - r_info: 0x8 - r_addend: 87376 - -entry: 7 - r_offset: 0x116168 - r_info: 0x8 - r_addend: 87408 - -entry: 8 - r_offset: 0x116170 - r_info: 0x8 - r_addend: 87140 - -entry: 9 - r_offset: 0x116178 - r_info: 0x8 - r_addend: 87150 - -entry: 10 - r_offset: 0x116180 - r_info: 0x8 - r_addend: 87178 - -entry: 11 - r_offset: 0x116188 - r_info: 0x8 - r_addend: 87208 - -entry: 12 - r_offset: 0x116190 - r_info: 0x8 - r_addend: 87237 - -entry: 13 - r_offset: 0x116198 - r_info: 0x8 - r_addend: 87257 - -entry: 14 - r_offset: 0x1161a0 - r_info: 0x8 - r_addend: 87284 - -entry: 15 - r_offset: 0x1161a8 - r_info: 0x8 - r_addend: 87310 - -entry: 16 - r_offset: 0x1161b0 - r_info: 0x8 - r_addend: 87332 - -entry: 17 - r_offset: 0x1161b8 - r_info: 0x8 - r_addend: 87356 - -entry: 18 - r_offset: 0x1161c0 - r_info: 0x8 - r_addend: 60640 - -entry: 19 - r_offset: 0x1161c8 - r_info: 0x8 - r_addend: 60464 - -entry: 20 - r_offset: 0x1161d0 - r_info: 0x8 - r_addend: 60160 - -entry: 21 - r_offset: 0x1161d8 - r_info: 0x8 - r_addend: 59824 - -entry: 22 - r_offset: 0x1161e0 - r_info: 0x8 - r_addend: 53536 - -entry: 23 - r_offset: 0x1161e8 - r_info: 0x8 - r_addend: 53536 - -entry: 24 - r_offset: 0x1161f0 - r_info: 0x8 - r_addend: 53536 - -entry: 25 - r_offset: 0x1161f8 - r_info: 0x8 - r_addend: 53536 - -entry: 26 - r_offset: 0x116200 - r_info: 0x8 - r_addend: 36208 - -entry: 27 - r_offset: 0x116208 - r_info: 0x8 - r_addend: 80576 - -entry: 28 - r_offset: 0x116210 - r_info: 0x8 - r_addend: 36464 - -entry: 29 - r_offset: 0x116218 - r_info: 0x8 - r_addend: 72240 - -entry: 30 - r_offset: 0x116220 - r_info: 0x8 - r_addend: 36976 - -entry: 31 - r_offset: 0x116228 - r_info: 0x8 - r_addend: 80224 - -entry: 32 - r_offset: 0x116230 - r_info: 0x8 - r_addend: 37216 - -entry: 33 - r_offset: 0x116238 - r_info: 0x8 - r_addend: 71664 - -entry: 34 - r_offset: 0x116240 - r_info: 0x8 - r_addend: 58592 - -entry: 35 - r_offset: 0x116248 - r_info: 0x8 - r_addend: 78976 - -entry: 36 - r_offset: 0x116250 - r_info: 0x8 - r_addend: 56816 - -entry: 37 - r_offset: 0x116258 - r_info: 0x8 - r_addend: 69808 - -entry: 38 - r_offset: 0x116260 - r_info: 0x8 - r_addend: 56704 - -entry: 39 - r_offset: 0x116268 - r_info: 0x8 - r_addend: 56592 - -entry: 40 - r_offset: 0x116270 - r_info: 0x8 - r_addend: 56704 - -entry: 41 - r_offset: 0x116278 - r_info: 0x8 - r_addend: 56592 - -entry: 42 - r_offset: 0x116280 - r_info: 0x8 - r_addend: 56288 - -entry: 43 - r_offset: 0x116288 - r_info: 0x8 - r_addend: 55952 - -entry: 44 - r_offset: 0x116290 - r_info: 0x8 - r_addend: 56288 - -entry: 45 - r_offset: 0x116298 - r_info: 0x8 - r_addend: 55952 - -entry: 46 - r_offset: 0x1162a0 - r_info: 0x8 - r_addend: 37696 - -entry: 47 - r_offset: 0x1162a8 - r_info: 0x8 - r_addend: 78192 - -entry: 48 - r_offset: 0x1162b0 - r_info: 0x8 - r_addend: 38352 - -entry: 49 - r_offset: 0x1162b8 - r_info: 0x8 - r_addend: 68848 - -entry: 50 - r_offset: 0x1162e0 - r_info: 0x8 - r_addend: 52608 - -entry: 51 - r_offset: 0x1162e8 - r_info: 0x8 - r_addend: 53040 - -entry: 52 - r_offset: 0x1162f0 - r_info: 0x8 - r_addend: 52608 - -entry: 53 - r_offset: 0x1162f8 - r_info: 0x8 - r_addend: 53040 - -entry: 54 - r_offset: 0x116300 - r_info: 0x8 - r_addend: 55776 - -entry: 55 - r_offset: 0x116308 - r_info: 0x8 - r_addend: 55600 - -entry: 56 - r_offset: 0x116310 - r_info: 0x8 - r_addend: 55296 - -entry: 57 - r_offset: 0x116318 - r_info: 0x8 - r_addend: 54960 - -entry: 58 - r_offset: 0x116320 - r_info: 0x8 - r_addend: 39200 - -entry: 59 - r_offset: 0x116328 - r_info: 0x8 - r_addend: 76992 - -entry: 60 - r_offset: 0x116330 - r_info: 0x8 - r_addend: 40192 - -entry: 61 - r_offset: 0x116338 - r_info: 0x8 - r_addend: 66816 - -entry: 62 - r_offset: 0x116340 - r_info: 0x8 - r_addend: 41952 - -entry: 63 - r_offset: 0x116348 - r_info: 0x8 - r_addend: 76672 - -entry: 64 - r_offset: 0x116350 - r_info: 0x8 - r_addend: 42192 - -entry: 65 - r_offset: 0x116358 - r_info: 0x8 - r_addend: 66240 - -entry: 66 - r_offset: 0x116360 - r_info: 0x8 - r_addend: 42688 - -entry: 67 - r_offset: 0x116368 - r_info: 0x8 - r_addend: 76240 - -entry: 68 - r_offset: 0x116370 - r_info: 0x8 - r_addend: 43024 - -entry: 69 - r_offset: 0x116378 - r_info: 0x8 - r_addend: 65408 - -entry: 70 - r_offset: 0x116380 - r_info: 0x8 - r_addend: 43744 - -entry: 71 - r_offset: 0x116388 - r_info: 0x8 - r_addend: 74784 - -entry: 72 - r_offset: 0x116390 - r_info: 0x8 - r_addend: 44912 - -entry: 73 - r_offset: 0x116398 - r_info: 0x8 - r_addend: 63104 - -entry: 74 - r_offset: 0x1163a0 - r_info: 0x8 - r_addend: 54784 - -entry: 75 - r_offset: 0x1163a8 - r_info: 0x8 - r_addend: 54608 - -entry: 76 - r_offset: 0x1163b0 - r_info: 0x8 - r_addend: 54784 - -entry: 77 - r_offset: 0x1163b8 - r_info: 0x8 - r_addend: 54608 - -entry: 78 - r_offset: 0x1163e0 - r_info: 0x8 - r_addend: 46848 - -entry: 79 - r_offset: 0x1163e8 - r_info: 0x8 - r_addend: 74576 - -entry: 80 - r_offset: 0x1163f0 - r_info: 0x8 - r_addend: 46960 - -entry: 81 - r_offset: 0x1163f8 - r_info: 0x8 - r_addend: 62896 - -entry: 82 - r_offset: 0x116400 - r_info: 0x8 - r_addend: 47072 - -entry: 83 - r_offset: 0x116408 - r_info: 0x8 - r_addend: 74048 - -entry: 84 - r_offset: 0x116410 - r_info: 0x8 - r_addend: 47504 - -entry: 85 - r_offset: 0x116418 - r_info: 0x8 - r_addend: 62016 - -entry: 86 - r_offset: 0x116420 - r_info: 0x8 - r_addend: 48272 - -entry: 87 - r_offset: 0x116428 - r_info: 0x8 - r_addend: 73392 - -entry: 88 - r_offset: 0x116430 - r_info: 0x8 - r_addend: 48816 - -entry: 89 - r_offset: 0x116438 - r_info: 0x8 - r_addend: 61360 - -entry: 90 - r_offset: 0x116440 - r_info: 0x8 - r_addend: 49360 - -entry: 91 - r_offset: 0x116448 - r_info: 0x8 - r_addend: 72848 - -entry: 92 - r_offset: 0x116450 - r_info: 0x8 - r_addend: 49808 - -entry: 93 - r_offset: 0x116458 - r_info: 0x8 - r_addend: 60816 - -entry: 94 - r_offset: 0x116460 - r_info: 0x8 - r_addend: 54416 - -entry: 95 - r_offset: 0x116468 - r_info: 0x8 - r_addend: 54224 - -entry: 96 - r_offset: 0x116470 - r_info: 0x8 - r_addend: 54416 - -entry: 97 - r_offset: 0x116478 - r_info: 0x8 - r_addend: 54224 - -entry: 98 - r_offset: 0x116490 - r_info: 0x8 - r_addend: 53920 - -entry: 99 - r_offset: 0x116498 - r_info: 0x8 - r_addend: 53584 - -entry: 100 - r_offset: 0x1164a0 - r_info: 0x8 - r_addend: 54592 - -entry: 101 - r_offset: 0x1164a8 - r_info: 0x8 - r_addend: 54400 - -entry: 102 - r_offset: 0x1164b0 - r_info: 0x8 - r_addend: 51264 - -entry: 103 - r_offset: 0x1164b8 - r_info: 0x8 - r_addend: 50256 - -entry: 104 - r_offset: 0x118538 - r_info: 0x8 - r_addend: 1139904 - -entry: 105 - r_offset: 0x118548 - r_info: 0x8 - r_addend: 1139008 - -entry: 106 - r_offset: 0x118520 - r_info: 0x3200000006 - r_addend: 0 - -entry: 107 - r_offset: 0x118528 - r_info: 0x3c00000006 - r_addend: 0 - -entry: 108 - r_offset: 0x118530 - r_info: 0x5e00000006 - r_addend: 0 - -entry: 109 - r_offset: 0x118540 - r_info: 0x6b00000006 - r_addend: 0 - -entry: 110 - r_offset: 0x118550 - r_info: 0x8b00000006 - r_addend: 0 - -relocation with addend (.rela.plt): - -entry: 0 - r_offset: 0x1183f8 - r_info: 0x2300000007 - r_addend: 0 - -entry: 1 - r_offset: 0x118400 - r_info: 0x2700000007 - r_addend: 0 - -entry: 2 - r_offset: 0x118408 - r_info: 0x2800000007 - r_addend: 0 - -entry: 3 - r_offset: 0x118410 - r_info: 0x2a00000007 - r_addend: 0 - -entry: 4 - r_offset: 0x118418 - r_info: 0x2b00000007 - r_addend: 0 - -entry: 5 - r_offset: 0x118420 - r_info: 0x3000000007 - r_addend: 0 - -entry: 6 - r_offset: 0x118428 - r_info: 0x3200000007 - r_addend: 0 - -entry: 7 - r_offset: 0x118430 - r_info: 0x3b00000007 - r_addend: 0 - -entry: 8 - r_offset: 0x118438 - r_info: 0x4000000007 - r_addend: 0 - -entry: 9 - r_offset: 0x118440 - r_info: 0x4200000007 - r_addend: 0 - -entry: 10 - r_offset: 0x118448 - r_info: 0x4700000007 - r_addend: 0 - -entry: 11 - r_offset: 0x118450 - r_info: 0x4800000007 - r_addend: 0 - -entry: 12 - r_offset: 0x118458 - r_info: 0x4900000007 - r_addend: 0 - -entry: 13 - r_offset: 0x118460 - r_info: 0x4d00000007 - r_addend: 0 - -entry: 14 - r_offset: 0x118468 - r_info: 0x4f00000007 - r_addend: 0 - -entry: 15 - r_offset: 0x118470 - r_info: 0x5500000007 - r_addend: 0 - -entry: 16 - r_offset: 0x118478 - r_info: 0x5600000007 - r_addend: 0 - -entry: 17 - r_offset: 0x118480 - r_info: 0x5800000007 - r_addend: 0 - -entry: 18 - r_offset: 0x118488 - r_info: 0x5900000007 - r_addend: 0 - -entry: 19 - r_offset: 0x118490 - r_info: 0x5a00000007 - r_addend: 0 - -entry: 20 - r_offset: 0x118498 - r_info: 0x5c00000007 - r_addend: 0 - -entry: 21 - r_offset: 0x1184a0 - r_info: 0x5e00000007 - r_addend: 0 - -entry: 22 - r_offset: 0x1184a8 - r_info: 0x6400000007 - r_addend: 0 - -entry: 23 - r_offset: 0x1184b0 - r_info: 0x6700000007 - r_addend: 0 - -entry: 24 - r_offset: 0x1184b8 - r_info: 0x6a00000007 - r_addend: 0 - -entry: 25 - r_offset: 0x1184c0 - r_info: 0x6b00000007 - r_addend: 0 - -entry: 26 - r_offset: 0x1184c8 - r_info: 0x6e00000007 - r_addend: 0 - -entry: 27 - r_offset: 0x1184d0 - r_info: 0x7100000007 - r_addend: 0 - -entry: 28 - r_offset: 0x1184d8 - r_info: 0x7700000007 - r_addend: 0 - -entry: 29 - r_offset: 0x1184e0 - r_info: 0x7a00000007 - r_addend: 0 - -entry: 30 - r_offset: 0x1184e8 - r_info: 0x7c00000007 - r_addend: 0 - -entry: 31 - r_offset: 0x1184f0 - r_info: 0x7f00000007 - r_addend: 0 - -entry: 32 - r_offset: 0x1184f8 - r_info: 0x8100000007 - r_addend: 0 - -entry: 33 - r_offset: 0x118500 - r_info: 0x8700000007 - r_addend: 0 - -entry: 34 - r_offset: 0x118508 - r_info: 0x8a00000007 - r_addend: 0 - -entry: 35 - r_offset: 0x118510 - r_info: 0x8e00000007 - r_addend: 0 - -entry: 36 - r_offset: 0x118518 - r_info: 0x8f00000007 - r_addend: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/libelf.so b/contrib/elftoolchain/test/elfdump/ts/dso1/libelf.so deleted file mode 100644 index 1832cda352986d06d1ec373a704a688beaac3648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106416 zcmeFa3wTu3xi>z!!9>74VANDmqmCLa)x;W`h_M+m1AAnmQ9w~aKp=u3M3_KSRB#f_ zb~|m_&w8x27Qb4{v9@xmMNF+G1d@2EM!cc68u2z`K;sRg0{Q=b?^-+A8Dh1z=RD8% ze@@zAt@ZAA-QM-y*1Oi;UKff?OixS8_UOM1&l#RHVs-Ba2JU+o9bQpel`gz`*(E@kUV!sqUWjb~0rR#d$>s7nn>s37` zU9X4fq+ZpGr}FLSyiDXr>i$ww2hT}~%fA?Yjgs?tZqn&Yq!swh#_t0B_*aQvK7O?< z;IAIPsN~c?SL^&Lq$}|&!EZHwi}CvrehcyARBynKe^;r*GexIWI%QIg-w*J+7QeIb zbN(hH6Viq6>hu(yF4Ji_(sS@TR+qmnIYuLtA^ow=&qo^8`L9b(*9hZvdKA(tb$*gg zf2h-`I(3q{$dCvnA*8T#vLEzbo*Yj^9N5oWGlqIaL>y zIzXM?h%|s-gD$T?T8G~}{LaMhJp8W1@Bfv*kwX?Tx!ihG(RwMHT=^7Hgf4_bo+>QY|qwK_BxX-g~{!sAI9><;x#vkL^ z7#j-z08ht|@Ep&!A>jvlx`u=wVu@wZUJ&lk9Yx&J*5 za>90I)8OLoOpX5qQo_5a6!5p7N<8;yxUWnBZqfL6W-5FijST*DHP01#JdHHM_*Z>|D7q2beYJJq@!>Kgu0#|YiN zD@90%`un?{*IGSrNBoxRc~#dcyo2@l@7Mk2%~$Xdx*a|~O6QprYW&YNexr6!-qi5j zz~OitgIlNJw_*IFJskEc;9(&ZZeN~CP3>so+~sxE5oWo$6uHUe77W)Y5Z=zzUyZzz-1c#9SxtY8@ND^|2f_7 z>Xd%p6}sulNF3Xc&&4`<<=%ALNq1KjUAvzy4%ZzS+T-@hF)4U%$rB)9d2c`;#5| zYdIRPD^=?8G@h;i4nJQd_yaA|_VcezkF!$K&EfOgo%Pa&`j-mb^Q>;atXu&cJ#((+ z=jM3|?(l!MGafqL_;co4uHm!wI5|)LwP<*AK$VxF%)iT0=;Qdjf7IjjtQIuSUX=NF zrlwDxt;#`_cy3B*=TQxxnF9A}_+3cddWOC+|Bli9HcwLJQ&r-rOKFGx5C6E_T=z=7 zj)ejRJX68TG=Dnlb%q|lI7GmGTjO7@+iBMAIQUQN@vPVUe51y{SL6G>rvRp=XSarz z>5b0A8lEBJ(Up;$qqFn%`u5CIfMFUQ*Kpr_1#slzjFfg9J8~E1HIyFPsOgZ$O$z=T zy>z&S_rw(Z1U=4UHM}x~Zkc*K)pHcSPCTPDyh{T{=yrai=~kfo{f>q&Mk;cu`7^HJ z_v(IqDdYSJx+A_%FYH>4|CH{xK+|Wt8kUECF!9&wb#(OY)f(TU@keNUj*Iwt+yLXx zv74{y@t4gOu=wW8g$1r){P%vH{Xma@ZHk^O*8TeCDa7kE{xvD>oT=d#Y5Y!&?|54C zQ}A^+o>i#F@ptO^p04RL7W_bXqu$&esoOtQ&v*UJ3UGmjkI?wdy5akDJF8?~8VQNR zhsWr48c$Qts9*RuPLIE9t}1Ks@PstHQP1mG_1KfG>D&`k0P+X_dNh7sl`1b#iRSqa*GH3C^tLA%Vow;Jxx$`ewxI8+4S^45Q z%a_kz?zwdS;;LD-i|0h=N0(L&DqZfuqf<|D9!l~1Cl4wPJgp+~z*F5)P4zr9JZt%t zmoHziWL~XmegNp1HH(8-7F7=}ogW>HsQ{_97A~n;>aH+Q)-5lazj#hR!a!l*sr%ue z)~grHTgHjZs#-kfQYi>|mds!2Ji&}zB}~{U2_gpULUfgY=#&IekLB{EE9UnPW>8@+ zmuJw}=3Tj@AGJR}cftI*it)B|> zNs`OwEMB~HuIKWaC6}Yd%4G|qV5V8~mn~bm%u}^&{(R5n^DkdMKPr`$%~^>>pF_~x z>MK2qm(QQS$a6XCv8UzHWz|tdW3KMpfjKRAXb-qFKy>0PKpirVR8J|(^CfEjio#9- z!>C%gc)lLel6jI@GQU<0a?wH!K?4it&0nIRC|ojUxvGQwoMm7~sV4LmoJ}lDJbe{Y01)*hwK6! zUcUTN59qO&q?L3|l&M+@;>=wVRinEEg1*F46YDAgB}50NV;Io@&#OyCBpp+FPVGd@}(#Kz@yfd`9jac2~&cz3QsJM zO!cybE2tz{{x|%kBYu{NpZkCAa>hPS-8I~pss#t)q)xl4oQc+$+xKY(A}g8rIrxK9 z1$WwT*H3MU^*quFds2UCh#m5O&t5e=BL|?d_}vU&gMT#L>G*ej{#C=BXWWnTkIxu) zT>Hi02A}bdKCbh}Hm^t7@$cA%2faG=o%ouw-*C$LI_~DcJ9XTvECqhVRF1&oF;n3A z8eW+KFVpbpDe!YNe0B=Fa++#?K?=ND!>d!^^K?74Dexs4zB&bdlZH2>z}IPbV+wqW zhToO~e_6xVrocbZ@O3Hh{q^|Qr@;LhzA*)Ux`sEWz`J&+mF`G^7if5A3f#ku7yh=T zz}F`gyekEs_pE{^z5?F!74Y7#fO{?(Ee$$+RUKFDdsE=er>S-KrNFCyr0{c7;01>$ z{Ja!+b)&-1Pl3-aQTPR^aBigVSDXUx(Sf$I6nNKL3g1kDuRcY!Uzq~$`MbiOo&sO* zQ~0w};Hx$Mf)uzd!^4t{M4+`(U+0`Fqr7Jm&X@WxjZyfFpt;NO-4cktJyz{~!R zYG+*vyjlk$*QdZcf2Qy^roekfD*AM#z*qlO;U`ky1UZCN=6u4)b!p}{CuYXa&^HSh>KUeVl6nOJE&7Uc7j}C+tr^2%oepw2<>({D% zGX=i-y9&QD1>SkL!k?Z3Z%$YEvs2;sDEtK}@Xq5Eesv1mw@%^LrodP0$nxqGcozdm z_-jak=lNCpjVbVI9cZ{M1-^QhYG-W<+@sfJT?)MN1%C#>wOds?x23=nYPDy8qWABW5Ui~z6-8HH}a^!1;5xqMq1{AFLJ>vU2xk4?~N(G zh4bk-+6DL24Zx3c!M!ecz6`fSf_J&#SGnK`7krfq-s6HhF>F5Wb-~xT@I6{yC>J-n;9eK} zCKuf2f@@b;p60sXKX&1pu^ryTW7uydE;}~OW5zanTRnY6_gpmE(|61|{M(4XzGGNk zz*@W%T!^>*;2lk|Xm<+E5G!E%9=C$h|tdooYTXRthq zWuKH!WqE&=JyJfAWrO9Oy#O3@EX&*?C%dG4ILlN_$xbOB#PS%Ho29%z%LlN$UdqE* z=Jq?eR?2%XMEO9L8>PI9<%3vWE#>!FKA7cdDZj&VF3Yo}{2I&OVYyPuFS2|H%Vko2 zn&m@TE|78?%VSy2lk%f1AI7pz${ScdoMn%c|G@GQEcfi;{O@5okL4~Y-^uckEO$!z zR+f)qxmn6TVwq|@xn9aQu|9X6W<{oo|yH`(NSi+ z^hrR&R%@W|&5v8j%=*u)?+aTWS{i;z={D(zGx?n(cS;-K}=wCf-MFG`VmWL0Z zj4?;7#r{OVdcj1xEn>~{cSWpK{$A61!n9`iJ0n)q-xIbz0a=TK*88TlCuFrJJ_Z#F zw}KEw74>gL^TPHFf4*7&YV;t}p0WT`1cB^Oe#EX`5H5K!T7+ru0ksOZ>WQ1c_nP)% zzt8H7*z^3k5#;kCcGQnLtNaC^eQ~ROZjRMyP4#ES5^1sCv=v8~@lp351yvF+`l}?R zZy;%+_DH#q?j)1SEiOY{H|o?KDCD|$rOzL*rOYK-QX_9D=5 zXLJOIly8~y~;`dHAOpA(1&{e2E8=fO`0 zDX*8LbOVy663*;442z@;&QPSR55%s`JJ6`V3IwsIl?APL6gB<(_fzxe@Z6UaH7^D+ z&kGnewZWl)j0iX&DFbn=jOq&$)+zX7F%GP}>j>L*Q6cy1d=vrQOn`ELWU57MF&%$Bb7fbmd; zC!7JELvC7nmF2CnD$_;wyBk5QFOHD0o}|Y51CEteJ@NVHAlALC<6$$>LY3vyjp!DV zld%R$M}R*?q`{YA>v=8Opl8_Hqv;9x*7OWmpBZ)cqnG+!M#FEBg04p0oy;iO8g)OB zg7BwNSBFB-t^tiF_S1Nj8uv;`N`Hk!u~h)$CR^=BFol{3c)4iqjOT_B> z2218@Qkv84vdKrW0=3v^LO^~mN$CqnnkHdviIu&5eaQ~wwdF7w!DVU$ z%Q=E5NAT%qik5f5Z;thj5q|yUlyAkabS)AW?B|d_8XkgQ&kNgAp|0a2%ffaDBsoPQ zU#6A$1j;a@!GpZW_?Ynt11DF3I-uaGYW(*~Qu+XrrZw!Z2;=X*)wEgyXs-#leP+uW znc<9x-)p4>j18g8hQLUsSq*_v;Ox+_Dl4$RbXL;2@;g=_Q~E=Glojx*F0+VnW_0-7GRs#SpcK%L14T2{}kc>`C)q+mLRhX%diC)7)0i#FwBT) z2S{(9|7bTHNLGd5I?3^c$XBQuJb zEJ)1$B80=b@5FjfJXGf1BuVLWNSZ>Nd+1Y0OglHSed74x&T{>GkFK7d5&{49*W`&Mv(=P?iw zo(crTEcs&Pbj1*-tT8tdjz5oekT8n%tl5&xGfP@lp0ef(y2UHUSsliPtu0;Nv`%37 ztcjT$0bY$3(#?|Im7|o`d7fAHCA5EMy9Mc02-3H-C;y^6{Uuk{^ryH62A_L95+zR` zex%m)ms4a-`{hX%r~xr)$DZ7WY5qIp>GZR{g*-uLLbbt4S9t9-`y9wqrr+x1LL|H} zKY1orLu7YuK!n)WeGlYlFOGb`$9KxqOCLd^=_kR$Fp9bf6cS)KxF9Htt_6prHx z@_!A+L0f+0xupF_k*C8dzLh+2>zsHw!&$B<{G}KB9dpNDg0}Z4rf=Dv3A?kOm;x)f zpVIx}FFkRP(CiKwa_Mi8G+oQKAMc^R6t*ioA|qjJ2Ov8wD}M+(_M*tjfb8sV4#>?B zT5b*=kQ>U3>3!vH${B!=+A2CYWn|qOpy}64S$KKo`1?_J!Op|JF zetDqG`)-+j>0?Ngd_4PsTBByMe6%>|CuEq9d?dhz^Tg=g)|qgq5p4^J_Pw*n;M_ay^6g z(wsnSPg-;s{!OoGiCvwWWz=l|)e5)DhWPcw1!uCrz1#!DH0pkjr?8F1q58LK8v`Yq zud|!DKYx^gDARg9@d+lu){HtXc6jbnVDLvVC;CBIX2#@7E6omNT7g{bqQR{_D;L1$ zLEgvw4EQ|A=Q3Yu1x6wdP2aOJXa#)8W5d|9ve*h>8yPBKeq0lo)(VVGjv?7F{VT$H z`V#os4c(5xj!T}!0oYknoTm~7dks&+b2ppzE>P6PYsb*Rq@s$Qo@&I6Rzl*X+X@*n&2K+IG{4vU&l!M)Iv@q729vz2H!|1ed zrxUXndc!Sz61&=;QS&rc`*8#-qDK^Nl_7DdOR>cTXN0XSMm@JSg*&_dgvT5qA0OWT zIQn)!@MX@Kfr?GhPP)J2z(PiR5tfH5(bAO#vtj$JX&!iJrZtTY8WNvfITA^(U5Qng zmSp%3Nz&rd>AHv_b{RAE1r?p)GT|X))^N;{m%WmaZ79WLK#Rj>Sf=rp?7h zzs#^NEI1b%eKUg<$EqWP700UEK`&Mueg9c}h(@(oyH1qF!g{I2dIx1?)&3j(!z*yr z0e1DC(M(DoK%(|jzj;sT%5x@DR}NSE|A{V!`v#jyz5i!uIg!0buU~7lVu=0Jh02y$ zn`qadV6z69G}+p~w)v0&O@sU8Dx*`2HGy8-&LCF2XuC|M^aCVKYuM)-N!Yoc(jj~p zh`>~`8qR%pxRbGgjrb|0)r z016!${1%pwdpT_l5qVbTQ1)36=aFi^^-!e`yQ`^)P(D;PM)p~Ubl(LYc#ZL;c+qP@ ziqhRkRAl1s@4`0n9K!7%B6tMyqkvs&U0QuBD)MB7||#U;Gg9 zlUQ$t$k)yZ-%7rC^pp6{&z2)u7R?i>4uBLd$-DjbQJt0bZfJ0^rSx?8~Y z2}Y^nMTe-F6mcdJU3m8`aQ#3$PFeDmIkCNI(Su@p)1wRzURUPgw$@}~9IcOXIg~wm zQ6N-l${w|${NHYm-oQJ8n9&MZqS6==6|XoDGork-1i3cpA}@dWp=$=;+#b<0N?f_i zSSQsDTn*0yT$4rLa;zb|H+)52jO6jXGLi zw>|mB^3h%T?d3xo3`aaRVRas7P%2(@yqd^FB+4jsyaDmJ2*lM!!L&zRfu6<0+vnuK z0tY)`Aoh>-rL8!iJus4o)rDKFPVHnj;tcM}9M=J-oEOT`;J^`r?09jGppF;T>|o=N zLmVBRu6JD*LI}S&9fzmwb^dkefsEof*0utf_8tBPR&FrTY&P4r6EDM6kbl;&b#znIsHb(uQG6}t=tiG?t8)y%e0oxN>TwTbzvM~`}}-kgPCP)sK%bHj2j?-S-?IY?s(8|2JD$-^;?DdAbiPl*uBm( z>Ni2{21;sjjQTW=8G{=h9T_O8@KrS$^!{K_!!#r7#n8z#|0W@A#xk^&kHn68it7eJkBN&{}`$;U`;v& zegZm~?lJ27FkR=lw8rPBK1Rk!T&&Sg8`#j298*Xf-K12JZW9H-R;`+rT4baC?`Yj@ z2PM#)p6Q6duFz4LM%}A8Jqz12rw8nc9Grz(H~Z4cj zebH=mY1B1i1w%a3g8iuZwLQg;w(Ui-h}A)RuFsx~b&U8Ibl}^cZ zt{m&Iw>@15W6EB0hQBOHI+zGgPiF&c+{C zZxO{{mQ3}V#?8Y~m#bxB9-nrv8>KOhZX!jt1{C#$C88T=JxG13v%&%pE`22a|i1i&X<6?VmR)0Q^ER!>F!G|-Bssq@JDuy}yeLewU(za2ok1_3^ zuy?bhbA`{$_=ya)N|S4EJ*oLJ4PrhT(?W0u@3OA$Q+_WnY~aN|Yz79Wz*i3p)L zosXqXYH(m4_*0Kh#;){Sa57Zg{-)mUSbvJ%0OA2pOiD|K9FuI za>PhmPs4)T40vMWDHyff{4whGpaGDF@U#m1ngvGPsi8MgCx40v3Rm#r*$$(Qqrep;qwX^_VI{&PZN~MDP(`kpN3739 zbth(FewrFumv2c-J`#=2?TkQUSkF-#eJtwwcr+oVZ#T%R>yXcO<2IqIY28enOjS=2 zQt5$Y$qa6h86-9&AvebT?G+{On3hAaI-!ek<1+N%kRy`zri&t=^#D=&$?!0)g9#aG zG4-?J^NOIWu9*&cKq1oAh}Zd>Nlx%VZg)|@z7F>dCgstO7(-8)RqHQCRqh}gaRJU~ zIEgg0uY>AA8+2DNh8#>`Et-kFmsa!V0OBufsQY2s652w=P2yB#zXuA@JhDXd*b7-4 zFpn7&TiC*~0bBUU=U{x}{uyuq`GDF)t7+3H*X}eHe;wLO9stV((p_H7U1O~o4<67wux~GG2NR4vm|RLdS`Q7sQ|x$i6yk*Ayp)0aD*wdmLQr zvHhA5D@<-o9REB<=9rASlOO*205vdVw-wfT_m*@mm z#8LxFCO!saQ;|4Qn8)2{*|_l;Fs z;|Ru==ZQvMwp%Fppd_WAfRIhRx}2B@lGx?`!1z#^;GHHUF1lIaJw?2Q#5_Bn9r!B%b8_Eu7FOC8)W7E$cy@fRoVG)J;N!*k+@~m&vB(!L*h=!^O0Y`ce>zRw%p; z#JiMuUf_vC*UxJ4;ON0#Pg$}DJdRz%*!stfx}V~78Uwxg#C`lLYU5;_hu83wAPi*z z>+G=sYgS%zJmiTU3VaBo?jUpRt@hOkZ$_udF2-?eW zyi(_1jfYhBwaGThXM9w_7o2p_|COY4JEqoj3g>jnR?NvFmE)uS#$aZ==vsyIC~;0A zj*mE_WF@kizqij^z^I;N3l6svFFmWp>vmviX%Z>h4^o!=Px_^>cN`noHd~6T{I$sM zflnGKndh%HZaf>!X&tTnlof|!RG53Mc^h~PR?BSp;)mvE*m7V~!cUHAL8RG{8d`NL zeFmX%Js;3?Boa+oigM3>n^FgV)!HKbcNPbx6-p!{>aWFxZD)UWGM)`sfCRZ6im<%a zZ30E>^BS?Xpy7DtFm^3A@DXmw#s~cc(cdL&*;stkB((%zGU^#GJrpa^bSIY}-iamn zF_^$?pER5Fb3DN0-_^S0kE1XsI~=h-iX6XPgyBt|?D<&v3dIKps}62g9WVE;kBzK{6n!|qm_#~jQtMk$tMdh8O2K959W9iE%HBDxR-$jRR)p&%$yF%gp z7x5y*%K%>3ey9PBhBImk;J26=%YBX>!j?bRO#2{l4X`2^*!tTS;d(GO^Rr13mrfEz zc9BwKi%<9pMRq=C>8g}GK`E#U)dIc1U~0VdK#uK9j_p$5Cr7JB4`!o-LtNAt$=sdP zPt)>3g^w5Z#kQwmhjO7=vd6goV`w8ft6k29e>(t?5(F5G>tA9Ps%pXHc;=DjconFK zShj2ujEPS9*Q?P3*?T>E`u+zPeaQ!K13sYJU+saDjok{L!StUXit|&Li->Xm+j86!{i+9%9Ydg55x|)iEPL zi@7Hb#OCMifge+og$pd!>o|0row#NvW>o)b%?Cg*6O+*=GGOe!XjY<>rS_1C&Y)OB zl}wY<*>HT+Z$2SGi`peAeHQ`Yrr~s#F2E>~ud6+Lc0O5*N>m$6YKP;u(^`J?B+zbB zXxoq5hiOK#r#EpdjV)!K89y5n`vUU~fA$J@`M%gYY28Qb_*2*}^My0Yaw8=jD>A~+ z)wF?kKtF}8j{03;+bp&|!fqK0?1P3%>xdlL39O0?6UUfkzV6PizCVMP5TI&b&=K6@ zVN;7SQXRFWW6f9$UfihU>j%^M3dd~RhFH*=$in2Xa^SL>%);jG7flOJdwb#!3LM=5 zzRb+1x!)|oOCOCZep|Q;?=$Qw&%-Tm>X~;FZ$BaRv4M)-gx$TDJLPvxdtxpcjlPE0 z5z>tMAAv%M1>i=^3(KA~r+kT zBhkv%W4_{c5~!QoihD6U+RDPwR?SwrimxYLKE}C!^epzUwSP=At&pdCi`K{J53i)m z!<8s@v{-KYvtPW_qdPqsoz6t3{Q>#0elG7~zn3fPQ{67j;U%an-ht}G`2gModOa~4 z9g}>IMXWch_e7*n$z&AHYU{6?d>JOU|45qr_BHeO|FiS=yXRl+%wKi+_5EG)&-S-) zP=5EGPn#VbgL>CG_27MZy4zOQj^D2aJAsvEcT@k$sLV9(7xqlS{W(Ymce5gB@@kDy zw+#hccES}Ws6aoWx=?||l9c`iNz?c7JaJxoUmtJD3DPkN=>Ubann(!7coKy`;tjQR zX*Czae&eRvrsd;!t1Kf_+yn%enP$9$*R|IiUtVk)6`Np{%#CnU@nEy}qM5B2z-ZO> zLp>ZvDTmW^D%*acO|{K-yAf#_)hrlAKT?QaB5A_j(v!GPBPOp>=6m{4{Xzh}b*m5r zMBvRZKdfGKIBzecBYxvL51R(zokG!a2=*JaY){ISi$p@JDSVmhV7NJG0`GS%VIx=a z*usREB8A1089Dybbp@W9HmunbNA@!a)&y<5WVVOUI2Q1)vEHocI?U`0HM2|A%$9Oy zvIbkX;7s;LiO-@AH$L4z)9s_|W4Rt(T&lW&8{_Hz#Q?v7V-VB>?`E6!qyqE16AD^^ zeA)oA+1?C_^^pvi`^T8OkD3gzMRw)U40|jpWuel*dw+OE5b6O~rj>zN`ydh*q3QE$ zm7u6lEIkTu_j6|Kx&@x7Va9R!B5}|wSYvBb_g~QDAM=DR!pXmH_STjFY}v!NT(+@!Ygk8;yhY4<+gWG#Kmai-yXK4ehbs{c$&cPs<)}{mzgrPGXG zo!i7fU*d5@TOhROBBC(>d~j1=A3}3Gkq`*wt&r~!KzVL*nUarU)lp$Hrcqx4Sn>k= zGeBFRFV@2wpSTyyz5;hpvocXf>#L1G?rX)m=6h5GOBf}puvs+YE>wB; zaH&F8(pBuNzbF_NUBR4QN#AX>YhBjIG;^?ZuyFzP?qILEX2&{IG41cILIXG zZ4Zs)N;_{+-r-*@DEIjrkn-5MQBoDl;6`*UpRd`>mRe(bGo#n6m=oKZrPjl!gV1@P zel?5KoC992iNJxq7SyBvipaJn@iW8>#3$MUpT=r`6uzP-QMnzeB9w`<>0CrhJt1p8 z!Vw`~az1E+(J?4{p~_;&$m()A#`m;fS!2C0 z_-#?RqClcI*2uM07gOsj)Lvue@ndhXFEfMI?6KDLT%(?Me`B?Ncw5iYl|iK^(Nyws z3<+Z}>S~d(uNoUHdDp0)j(qH@+$@||S4b8{;^V;k^oJn?mYB(lmic6M5ALp|>zztz| zz+Mk-CdIBnvR{B<|5)F_E5aD(^M^uV^3pNA$nMdU?-mC{7BJO4Ukuh$} zL6r*b9wWGuT2aywJqR%x(7t2EC}gs67HHhqgO!(&vF(V}iUEd=(901tdx90;r0e^Z(u7eds2O5{Ci=i8UDNgo}>Q*R~`a-STl3E0J$D3lxI)Cy@US*TH&j~ zl7#WIRt(0dBWq})d=#|yCK~2o%|Hd%u4}vjYa7qba^+y5uajHZ1=7!9-$CnGx^h{% z;qyb(!)TKgL-OX8xKar6Y+HBhukOvZs_;@2j(>)@NiK*hNN{hYEL9z&>KT zd9~h~-v#7|wY)N7Em|;e7loUW|Bxp=CU+tIdl%|h0nLo*2aN=_ zd}u`325}+eew)0O!nfMvcq3nHH0R3!N{!(ScW5arnb7s2H)JHgOE4)-B2jK$_n$d| zSNT%QA`oV0v{d9iW*Qz%MQhMxWOeO%01Mt156tuR((XUijETrPdi&4=&@Gl3!d{2gqe=z>cOq@ps zjGr|}GL{!q825h=h;>0he1sTygnMA(XK?c1}#{jU(G*`+0U>|nY@d`wKN!9_R?2|odI(RBN{A2MU z8w+xS zW z(fleEeWP6@Tt$G=aqAm?Ok>TC4zv)li^2!s0Lhl4k_JG?OnuRdOIGGY7lGTy<0%9n zLp?!EnKT8sH{9@*B?>oyV6;L%6)+8Ub=r!C058dT3SaFW5sqz1t3U*?dc{?uOWsZVNL2yb zL}%-e<9JYo!dSTrTgvq4lW+qvW4*(on+kWudPhY6Ed2XH;+8)N8umTdR5RdcUyBIY z_5%(PbCbL#1S0^vQ#Dp+)zX*~3t*^=-b!_N=l#jNBTfG3VZ z$BO>g*Yq8{atuFWkz>ZQeu?$7zOaLxnOZ*pW+_-E@7y+~;Qt>e2N}10Ry|^1*F0-IP)1%M*EhIc9DFrrIf8^(4LJOkkB4@>2Y^@ z&0k}+ye&)r*v+Z0Cni5g(c6s|8GnUmc%2Cf6I;m)Y-+4>+&SY5N1ZFLu*yNw5Ms5R zE9YC~d}9%gVCTvUta2andCXT>uaa7yxfRE608D`2()<_Zwu7Q`JmDrZD$1n{ZK;m=_tsyDc<<@quK zs~p}JddHE7>iHS0?jZfA-X9o-kO~$L{}eh02 zyAtg{#|q)@2ksC9#4rCWkVT+_z^ybl82|M$uMWHUf>9 zr452xn5GQ^V?&7)Qv}g%5EEW6QcN*~DPnp&GEu=OOfxYAGnjVP4~>3)>3+q|Ko@p- zrWMN6{n%JjbfbF9waalu7Or)9F1oPG$HKgzU;82ih0&EYv$*>|u=V&qT1}Bd5igKQ z@>PxJ_wVltaU1oTXfKYH9T!Rt$gcdX&2d^pzGkXkY4P!`xG|Ajg2-97NUb>`5I#E;siuy#H&r!sQ_ zGR4e{L*_JQPDJK(W(trwgBfL}lfR`VwXFG#MMtVl_P%L8Mt4Z#jwe&#$gDi+|Ok(s= z&fo2<#Cck=VYC2;d;(6Mqm_LD(op#(<* zjxE+eHY)S@5xB+v0`As|8PO<%NirGlUjsiH`ma=y(gR+H{yPoT6L0?kKK(opMffE? zYTZkMcc8-SM$$Bqcz+?@OyFTWC*s}?yljrBehEMlmBux>Eqpy-e5lyCkzy3Yc83m! zx)ihK9FF|JlQDAc#C?#?@rWOABQn1Ln?PejGr%x=)35{B%Fo{60&y%c8)qA`iT?2K zGOlYRDV@S`&EdF?!MG~Yb_ArWND1QID~pp)0ueAI_4Rr3qc-0nU^hf5dT zzX0V=ei0SoMXi5hQu=dDK)ofk==Y%LTl8(Qagc{azfw3g#3@EUiAltH2smph@_2n! z+0p$V-i6IzS@|&J0FO43KYPfZ+K+*c^`$j4#!F|5zp6C@ws)gQBTv%9M&He4Uol=edtqAjrm7Nv)zENm4o$bZO#FI&tcKaMf>@4r@*;#B#l! zcvr%F2K0?y;1bcWML+k#H zb6^TOdmm}sfcau{hDJq%pQeQ#sU2pqZDWwViw{$G5& zu(syI?t9fNIH1PF)n9TdHP67;|0y8UU+T*o)aNe_bB#rvr{MH-q*-$9f|@Q|0hry` zs%-sT_d5G+mp+s4e_(UHPbh_*zztpsH+Uy{R`k#^UAp7M_Hc#b2{{XcaH|lO&}NBWYq_BvFL12Vy%BF#R!#AY4Jv zUX+Pg3t~0AexB(MF)qDWmjCs{?M~=qvr$K-#I4~TZ*+LX>cwd(8~~oD*_r+@j^8M8 zxT^x?#7qS=dTszEUL1#Kk?F_9@c{54N#)ZcR$dtHCGFevWS^K@tPhk+(7xJ-JB>LU z6-Ofxe@8^!_T#JQ4MrG}-o2Sa&>LQiX#088_7c-({2zM15*#?am4qIJ_0O+)l;my{ zdY1{k5#}iH7mS|c>(lb{5e^KOZTSflmAV1&o z;w600CpW~imy1B`APyo*;F8o+wdd5%z?)syosa0cmxqoB#Danc;yz)hcx6D0o}G0l zCdrt422vPGVOPv1M~B|wjzqB<2v*}0o(!V%?Iuz=T2B7Y5dN1-V}HYvKrzb&(?wW} zF#zL|Ak9-w{D=j(}zCj}~TxMm>% zjv~zVGH#wQ?E6pmqae&fixen#_zw2ZAs zaXFye#N{ht>xQx z#cIZCp+;~5^jIUP=!p);v1pkmx{Pb|pO4EL(eSikHDu}}gV-P50iZM^l{Hfz6>1Op zFhQKahjQ5*S~0DB6NG9HiR?qhO$=&f8t7k^gVjqk-VLhIX)4@RxHGZrH?oQ~s~hEO zt^M9*V`E?{gc+9{_DqQ`3EIcuBRA1e3{7F%k7(_2*WxZl(CP}zXf^6VaR}mk4{&NG z*dg3^$iVxna=sSp&5T}#w`_6$;XL?}={4Uo?V0&-EgPdHu|<^#bbnx4e^0y)s_Pb_ zk6r}TtlKv6-T}^D3KBPA)VgL(I~|?hqek*dOv4UU);C}K>&B$0&G@JuwOPL61yCbi z8b#6+#`qE&Id4`_3at^%QeCM};LslNR^X*uxB{<&j5Qy~*QQ`>M@vgZd8)yq*`Qpt zxRecMp+QA7t@ZR*^J6MqiJNP~@a`nwsjWrq8q8!*U6Ymt&+>i4d@j7v+lgR-b z{tyWZZ2?=BkIjYh#vS;oY+vdr|hvMi4s$f=@5#JdlYLe&Ktg8pH& zia9X5(ahN7ymSr=Z%Lsu>pisrkkPLWNf(9a!k&UdNW3`r?)Y=y@J}g_SyGQtef4$9 zh$dk~_@)j_EdGu7&%nP^{ij#J$YI+Df4mCjW>^(IG`Dx zOo#PFE7(Y81rKP-7Z?xmE>tx^2-TL?CMQAfgMogr$5~0l8a&BD1+DLgifekPf-VKr zIn3|^q`c5M!u234==~9toilf~m#7QM+>1~XbAPl9FdX1u_Wd)DWGpIBM=|g9b>fAm zOggO3gN8y3qVY8^?uHJMXYC| zo{NQr5Eng&KFGqLk_{x>&OS*_y<&1`VIMeVH;6kyofQ2Jemk~|eP4bRQ>F=1PWT5* znXJONg^k7u8=Wj{R1g9i zK~vXYw0%o!rpT?o)>xlhxM_?|Tj7uO4d0jz99h3{%g&Wo{9}FDEY}>pk=_vS(^10u zp186UU)`=5Df`Zk0pEZ5u#IfGwE&@c--;cvzA-D`-*_M^p~gmN22bloN{iG-g^Vcv z$*g%|Bi)A9HGN-TSnG#JA6U}|$}O$=shN)laph6hw<|>Y4Z6Q&lhgx|Jf$Y zyRYV5qKvdUKkGbt(l~3pyq5hl{4Lq>o46G3|g@ zoxd~AU-Odg=b3?i0@YTaTKbWk^rPB8fk?-3y!2fv2er>fK{d`iyzmPW;ya2p+dkX0 z8`H1pv^tN$e+bf3ipxXT7vVN)^l9GYiguu(;i@4zDllrCA6pnSKh7?9(CoJMx@RYy zCG}k1(4XkbLj14hc|^TTNMbZA`Q|T#BX3hRx&Gao6#->`Ik^30|3v$hs{NR1zj%oD zhgxsnpdN-;?`mt3T8Bx@4WdW#v)czrP~d#5ZPGox} z85^E8Hng_9<89gQZRz$Bu%#vG%f{DfpKVEcfr@8=*c*M>o!K9wl-+^PmF0!ATj2lh zMw1y~v=qjnSVhTu4Z{J*^fydO!$-S44U_P7`wegoBmUhDlQM|gFbO`sVBoVT#27}5 zhDrEz1|u35%?!*4%nV!{m?c6wh#oTkz zE*jSpABwcl; z{>kT8f_6xx5=Qzv`UmkpZrk#Tb5Bc1B7CZT; z&a`I~dl_-SF_=+@&=UC^s$dH!0#*c(gqipOad4f(TmMQCv?c?yq{tVS>VzAP?36?+&yn?gmTBe^fv(4p}loEg5wZpyY0_B)J>Q zHJH286nCQyayQwU?9Dbts3QM61%Q&f(FVC2Z5SqE@|{L~%@EujIKN++$r}Usa7n~} z8yEN%qwZYpa^i@6N8)h&Bk>Dy?Dr0~!3cR^iyZW?MJAn@b;#hT7m5NIi3@E+244~l z`kRr##vthLKnA<^(lfhf`($i@b0 zhQAjmIBtz?mT1%3aI7_#vYgJ?(>m~s&aQ_{>+DA196@Lnxt44PI7lOOf{Tz1S|br) zg~)-M&?ATDwV;CRV@SkYZmW{`KtOKBF!dP92$~Cye{P z*fDR!vSUvM2ID}R<^3F#5dL085a0|G0KO@maa@$#? z2ipi#n&KT0{b}LBK|pA6H_q1*$vNuyUFPf{h&s0Nc|w0LxK#g59V)sTHX_GyS}l4X$*g2$F#{5I#n8*#pgK z#%D`11n|3Rj%t+6QIE1YICfz2{=o^Ovj&s7wLcJMicbW@BJ`m;n6Oux*KPXTCDt$__938)p|#+aNvno-mFaMjv!Azn?+IMXh)Sq zS^K&(DFXNpo9zzR6MG?gcZck2cZBREiI83O76`VHGKuG(;CW9yHswpY0Nn;?!l=7g z!Yc2BM`0fpD7xEjy@zok!U%0<<~<;Aq?j zZrKU_O4ybF+7!gs_$ZLwtbjY9pQ)pFdO_xd0=EZRJ|HfiWVZsZ-Po|VLu6oK10z`P5NjK-ItT(WAhgf~8mmQPy+N!F zU~QyRf`!G1(F(|Pi?SfMpoBWva8rS~an1HVtW(Qk|3(;*?5KZRAp3Rpy2_sjWp4>( zKNZY=Asfw*m3qNRe(1S8;U*~e1~?qTq2544d794qkay&&H;4;jz$;gXtWplYvA>RE zU|5G1MtTXd8vvBJNgYSr*bn6m$$rG8fzWkUNga4E07xD9=l%USwub%C*hn4Z4e($B zwDAvAbDCsVjx4g8BaFSsAAoA)JXS*ySBi2}3wV_RJUQc98oekiJu`(1;?mkRr<9fmxx4)3Q2gnNA&AV*Nb)=|3G8})ZGU>Do0Zrl!t zx!Yb2mTyD|2FdsB!<5+!!nPH=NDT$Q#(C!u!{Tt~7M?;7o zhyzVkO`O3zrz9R>zEcu|TOj@()CrDOFgjilx!a!bRHz=N``q4$eN|7yUY3a1mvu$# zOR!D8tP=y;7_`sqz=u;Mw7sDPj-PhWpdLhB&|#Ck6!y*(tL+rDwdi0Yg-0ur?EZ&J zqBfb-NZ27z1gHA%z-NU_rJ%z2FGO0~!`aQm01S4Hst6x6dT$>f!tozzAk+d8p`HLx zegMmCpueHPZ2}Lba&s8UPOKxbvs*O?72o_;MO}{xn%WY^q*Uv8yE?mFgV6fB|At~) zxIdV{=GxFY;tTXx_=NpSk$L@8vKj+V|6#E`42{jP4>&;tp(ue6w4PdYo&bqYS(FOm zK&2q>;{-Kwv?GH4MpXS8C+HiwNJI*bi1^nE`Lmx1XYUGUZvxBTkqs^lXYUDT|1FZe zg_3~XcElglnxkt#c_*MN9Od1EyraB3kRs$fKryw*yu<1 z%|0BJ%|7~7HqRv4hjOf>kFV3$?Bh_~F6ZGWYW6`z&3@U(;c6UE(a`a{pja#qr4MIZ zUf><6>-dmAO6S?f(K^pQ9Mi)-j?r-Tajedx{Z%rL;{+gm3sGTQNYmw+tH_Xm)kR*>W!Am2JIQf-k>(Dk02a->20+Jpzr8!z3*fE4Uo1n zn2%s~uK>Nk&VEt_-ufeM6(z}U9cjDR6=@p?F%P}}g@Z|Ny^G%Z-;BCH>WEu!Ku)GB z;#VT-b_Jqt3lUbGyNab>@bVvo2M`G!)&ziCu zp|IY7ebFa4c&e5a{7f-8Tp?~aTDjMF$BV!Nd0Qe@+Cu_V_DRY^LOAPVDQ;r)3QGXq z$57tF0*yct(DAE4HcxGwxRs7SGi=p{z)9=Kijuuwclg5nGuXsR3;<#C{hJutQ9WjuWi@Ib1~gvAsHew9VP)!kt`&^8;*l z88AW#-)>;A2p+NI5XD8XNV&zBCn82$u<6~LWg=h{jx`UL5K%6c!u=8${ek!o;x#n8 z12In33`0I_hA|&D0~duw#(Z$O8-@`2lkeK!@hb0+)G96#vlF!f$LpTW8bRm56H-vAt zp$ft_6MHb{jSSzQjIUcxOrX3CTZ7>emf+uV4|+A!iwa(}{2DYLpR&HH1Qy3U85JT5V@L$_ z3IJ*l%2i@KZ*n5NXfZ($14eJcTi&Z+&CQ?#h>cbmGQtp4 z)QA(2PQO9O=sh1=7!)hwQT2#b{yWedqeh4wA!5V=4j{6*oyI@jU^c!d5gf4?yA$+Y zz`)K_Xg)f34N4^F_BMpXser45tei78;0#DrSmmE8V7MCaFD0ABtU_jVHlqQDK?-@E zMn-7SL6!}NLZ);Ac?6g(S1N$>RO5JY)4|6FS)In!iEfA?B5AOoA0OxK4nD3xI{0H$ z`-~02C&G05@nyH629I|E9DE8g#>1cxq9ks78J@zI5Uv{kAqt<-plyTk@#2~@9=xvL zw12q5KLYq2gYokQ@Q)n8KT6>r4g8IR@#WA*jpvvF{9_gVaoROUH7C~eAudh9A)h_8 zL*DP7YU8T((dN}D`e^EKrH`VBH9aqXw!73B+;hX-MF45{_z$xfzjC$cBnYh zg+2DU3G@nTf`uSJ9d_mBh&>xlLG3ntccL?5FX*t#sP8D8cLO!S&kqF=Nk=&$AMAp< zNDK-tC8)^&^eQ#A4MjA-K-4yXw++JOLjr*d!{`n~G0fx&L@~TX48R5gQ4BE+1|kr} zkQISC5QT0#2!Z5FUEKz>V@hRJ><{Hg&`QEkIy&Qoq5iqz;4oBwC`W~Y7>3f}7$*$% zuN3=3Xez43Fx2M$Fw_o)f~1H*8$1trDp{!9uPus>#zJ)<5G5K~t!)QE`@|e?1I^tr zM>*4YMJy1H1!;HKo}kcNVPLIceb^(80<4sO)GTqA)9PWfm9 zHew9o*oAS`C-vy=lW=z5KET&15VIPLxo=UrkYLws*-&zz%N>xkwb>8_loKc?AR1BA zmgu~;I55wS#mQ9`hfqrRgq(ARYh!1J|jg7q=GUPk`>#d z)TSI(C^e3ETBqW_1jIpz-KmtU*q!N;-Jb}vC5zWD5DH;uw zKVYD7F*>SoF*>U8g9aLh?up(D=~Erv%s+B#3 zSv3U-XQ?URi`C8)5Wteg@!#^2y2UIPNVbGo)%a=5s>a7Ns~SI@S=D$cv#Rkkn4K*x z{BR&z=7mifFwE0Gr(xc)dMLvT^BbMPK-gXt2*a(jG-wFiZcqWR<_X3_(VO<--{4KV zqd1ap!>`%Po7#Kf38aTh9+w?^Mitl_wQw7b@(lh%Z4vtSUVmUn1UtZ0qSlB)a#bxmWQpOmWH{Tq=5s*E#kg zh=MyslW{@L;!+D>~wBAN^iz~F&@%Gk{^;r^cZ@p8J_1wtC#+Qq6yT?KAAV}OqxmPBY zgzE&(=;bRzx@cXY-2i>Ze7hf&6LA6jYL z0)k-%F&eb>Zoso=dD%x_Gy8~m$^Z-a+Z3fMOaeTxmaK%py2Sc&!3zYg>yOE-2XAWN zM%NvkV8f-E!G@(-!d&|g+*!kQ9PlUBiyy|5J2VK;kTt!!k!=H)bh`R)rwK1=1YE{( z4xGT?&Uq6q<8Tj%_mM|}zj4sSHhlwaI=2JRrgJ#}p&Xttv2C=OqqAs}=SwPfgE-N_ z{ItPsM*ZUm*kGUJ+gBYs_hsGj$L1gw=ndYK&jPPa*UxG%Inz0}-XD=zs z(l+uoqmpt&-$e=723^n}xly;$asYlLWM6==%{d6cT<{4PcHu|(XHHK&uDU$5@O|V1 zJB+#*`WdXpwt_#lAnG7c6&`-Y2@m(jf8QY&ZB{X2#o>$*^G=tbqoa91nnzodA=IZ*8wL=rLk(PQ z1aB~kFbrlM%j87%u%r(2U`ey3I^zdeJX~vp8sr$Z0n8N04)*}r;T|+B+!ItSJD0tH z?644!$wJ^BwoIGdfsh_tI4UKC^l***;vvncm4dUjtW`@>-h=aeH|ZJIptsOBj5kKera0a{=c$*vAsqZ0U3G6D`aiv zYhJ4mB*p${?Fw8G|J+zPYJdgs9wDa}OZxDc0qhxe8yhC1A>D&C9VxExPRKCh=Vl_0 z*Jd|N$i%54Hy1-9hU4dY9Yim0!2Ki4kq+j_AYPLHN=#z$x!faA{{ao`O}F4qn{z&c z_+U$RJAuZAPjMF_V!eWZVs<-*+Z@2RBw@*M_5jN+-flCalL&Xc>%}uT5y0yA1@w_J z%RE5lSq0y9l2@EiRxSa~q4yvc$nFW?UPY^w4C1quaC_j~X9hUR_3$~4Tp@fo?Q5Oq7*{ zFESCq8z3~KAuGX~&IahCiLm?;yjwwNPJqtv!~+8j@N6d@6hQ0>>A`^p4{>^;^UVL& zcbh;|6H1x4J*=~Rc;iSe!r(vaZPfEWGZcuIV}l%NL99!nDxgvQ&PaS5HZ|`@FObVL zcqx;c=n1%Ma3Rdeg&CNC8a~{@uM%Lc0o+f;i~{MrK^%ZT+L8&b$CWg4su9|R{i+2C zY0E76pr#F9hd^&@5Q^h=4)gCazZ>DcE#Wi2E51^Pas2~wzxDHs6*Gyp-o(Cew;7+6 z7KzVFkHpW%yJXRN4|i#8bOY5;#BB_uHP8eEaP>%19Lwv$r0c;zCQ*)vC2tt*VV_3lW$XTMDxvFW})lqLqW#h*pjN0~J&DP^h^;&2^wc z3{H)TiGug!6zrcNa|t){VGiMtqZPRl)96x6qlK78e~l@G{))6=3SnmfiBP%WdcnMy z+K{#J_KOCCPv-ycnF6eQA69)%h4Qr(zkmT26BqQuh?rnUz_b~`JjUeJDPo4*qf@wl zKZz(jwQ(FD;9ywk;=`$8S}Wb^9>6WT;6$M6vWP#1@rM`I@(hebMOwD>8)gT;0D%6Z z5@zvybTIrYVM8~8#>s}dGRg*X6!E?rf`8!__k%B}GiKaP*kZhw!E|$;!E1qZGWc4g z7%H~31|a|;K*qt09L}sPeWUw+b(1@I-w2@3Vnd*J+ zI}1dsjb+^2${UYCoY$d&3o!|=gu@XGP?<;COfZ6ROu$%%xUAyu0%>0JShMrK+LO`j+CLI(H&&(M?IU^{6y|xRh z8*cvv+TbO*IS|LNd(I_I9ih;GLIBjsTkOj%KwUdTcf~-UT8x3ja(3ai;L&+tS^97d zRtRn(9Kby{w3+X#j5OhfJo`dd+@T)+IQ%|uE|zO>_N*lh%>EVb3Bi>i?;&{Phq$gH z`oMDBaq(w`vtQx-m%@3PIGc&Ho;V+$dh_Wx;Gg139M~g@wy~mBzd}i?UgmvnvVMh5 z#n%MS4a53%@;`6Dtsh(VU_&G`f9w%}zb4>Yo#5{ZXq64B$j=_TM_@~xu+bh6zLZ~f zRWa@!`J*i`;cBLz)AWZMS)X>_xg1;rEY973J=sU!A9LMnD)1D93gZn#{Lor@K%5<- zwdAYv22Uy*T!iz(D{{*QZ_UQRd2lC81bwW={ordHaecCekC-7GO_Bm6F_|woxAS7o zHpnx>;I&@(VjvxkTeOw^Q9Mmv2t)#za>8iX;cVg}wfqTJaFwlv^<_COqvTv$i$xEd z03pftID{D(VJ{qM5Owwa=A*vfeUyfqOMe%B#VUOb$y}&1Ece3Ktf{Z*%sMZ#F5`;_ zsFS#?@XJ8wW5xu$AUJ1s^rCAh_k5hYI8rbLYw4F={IE#2`>tO?0Fs4_!ycbP+pO>t zkaD7#l5Km@L<1H54RKy15Pl|rlM?C{1NmT>8L+S#rxV<3c-xQ+-9Oqxr%dj8=mL>y z3|)^JI`a7Ju>eLeQ2M(2&IQNC3LgkttJxxLa!KYv>b*AeVy-ZrmS?bnl1Q0Z>^QNk3mN{QTfa_F7tj z$}mb)_R2EB({Ka{A_`=1h$xW2A&8Yjintu!%z~1Q5)2AU$QKM4grqPcLk1QxP7@Xw zrdQLM5E)30r1eV>9LWwO1Id_9#T0h8DY>^SJd^acg(C1vxG+?RZn!LbNoL=cjGPh4 zE@#R5e*KZ+EC)zMzb^yp2|pPqea+qXfQY=?i;5kx%Qg;o@}SC?KON1#nxv8<8K=6z zGD@Gu$(7Dit@(CQ6dE{1X3i2w+q*wUsL{Q06% z#0YMv{1B37TCns*_W*CKHl0=Im~+AK)6u`XN;g$iByH%^u zbD>*6Z=n|USV8dzpe-;8E+RDJ8aRC+3hEnX%pza$ zW2{v&?A@CkL%xkeeILGXm%ig`>Z};IHJ(N624i;tNTR{xr8Uamo6Eza9>MeXsie6#i(a_7dk58w7_0t=H)ETc%8{X7|Jn}C-IUn^gq%4QoJ6vo`Tlb zC)6eK3i_;SlpX= zCMQ~^Jc4#mVa3kv&TJNi+sR!xX$1sq!K#uuYqz|Sjku}+UdRxW*M-s!Gb-&8Yk`%skK>1nfu-h$ zrRMk^8Me*D5c$vs?{*|HvQ7DHZc$EM+@2S|oaQZCv%~5YnlWB1uo*PZT+J9BdKY0J z6@fHkfH~d(C_=FY`{k?BGW0SB!tjXhSD(xai<2O>#i{%8g0BZ;nj{=_!=++sGRXu{ z7ahT9hUuYBzR9x>4pb;Yo=cP)l|1|91e_Xac7HFLX7DWBg2ZQBgT&&h4ZLP;6;IMg z{yJQNWS(2rR!uR_9c!z;Y@U18R`Dc_sSl3LYM4{h=P`KIYpc#QP#^Njkw%ICFJ zUbd;lz)|1X<{9;!W1jJTUt@h7+!XZ{89dZC)jXrVbImjAJI_4h{ic~`)OWslMt#%y zyte8BPyvj_;DVZ86+t;<#J9G}XV6R5R^co^bjBHkkWe`4YpZ4=ijkg$09Uq|fu60P z7b@sFjXOs{aeKH>MZX4@D)3x_*H&FbT4UJ?I!_~S(#Z1__+o`7XLU5zw77b>e#!g(1ghhiDr(t77(J3Qf^Znk9k`g?v&;m`~Cz0i+c`S4b z=k=n&&}l^$UX7!{JU-?b(h)G}ewiz1LM{x|0}-gV~j-6!GelU&CfR;6f1r7|fv?q|G1e>*MI+?oImy<6^yZh^~a&RA~hI>xe=_Ah`)Pam4eyAIZQGg$+=Bfr;2M#i0 zQCrSME9A8(5#Z8*3@$}QJof4vt;WtJ*K^((-$_}aqXKzD6)30&w$s(@fWJZU(gEw# zgCYbnDlY!P@H5RQ3g09{2^jxpxzykV@NqJf2KLK?=fN;;T418M)MB*={~jeiAfqn{ zIMk`^{cmI=;ZZL?-z7&shtbo$h}c-xW&4EtlJun)E5ho9Ie*oZukhAcWZiOP4$hAl80k-Zrvzty zX)zKmj^IS5q4O)ejx@S3y4XoILJ5kG@P8qK$J)ho{m1Kp}8GIh_e)65ViSIhFXTfGOF$k@MOce-OF#EibAY7yZ z8I|0ZAi=^NDgcr35)>j9ZcYJ+j24|-4Crd_bpY{=3l+NsKjSBlg7_l32OL-377QLY zE5OfVVgv*7-AW809>CEs8}I;bR^jcz12~ylBJm7H)-NMphOabXQ+5`jqz()=zJUS9 zQ*asgL(4Ip9tv@qDl$3r+_dMGJ(rr%&!8Y|j3mx)J-hU@8NCy`#lgXozxR(eJKG=} zC@}LRVP|B+PImUsetW;rHt>G2zi_zw3p2m|g?{|G_7~opZ}j88^!)`3Ep?be{zC0v z^Aa1GVE?kWm0yrMir`T7zI?L=mI8~Ol!cG;dm5Bql(HUu;UbDgkPNKw7T7Gdypd_a zW$mu5*cMijAwJY(^&P-Bk-krm`-fY2e8_Ko_!2dD9|}Whxn8FibTE=xWJM~x3&})1 zqRrz0#|?RjKxB3Lp0N{Do7V?3WXlmX;Q--U?x^@h*Dq4fa#FzKeyG*EPyuB3Q72}C zYcBULR6EQ5EVZ5Khl_x0XZk1U?My#BIU#0gv>c6gyg@s`puvq3Qkh1ZtkLoenww}S zCzl2V?0|LgC=xs&^mRS(kdWg?1gR^3Ah1w~5(iClZ8c;XI!bH-mbvz)EayE4Dce%{ zYC_n-!L*za>YR{Ta+NURNMz?R5om*j`s4r|nSz^b@pa zxwnV6y?=n${j|BDSTE0N$~jG{iob&uk=Hs90xO~%>OA78&L;*^b=SKxdcvd$MOAK8 zr=`+1g9>j4k5>jv8+^o3ynuy^KZH%z76mZ}IseY6Si9=W6>D$Df^bzKW?$jr(s$eg z_d_{Q2K_s>bKW>+9=@Lv2)`%{U#$ZCR#n+D9sciT0z%!D=qNh%Wz)ujpfq8V!hS3H#3;_EObHfREL?j z92*~L^bO-j@UXlR1ka;1>c@FJA&=AXTi_%QXZGgsLRiJ}EV#2jWOgX>&D*H`4`ZJp z^T%QRiUMn1=3QpSCWFfbf#YK`OJ+_g4`#$jMX$`0o!4;)FE<2ZWCKP97; zH$+s*Y754LN8wF9@(9+nL0(E?U`}e&2lG{T1y;Ha^m!e!WeSd52cj~Ae>pOPUrorY zI2-a;BY(E!2j@~swZyOc#ycj(Ty$h@)N@;~n*S80*D*1_w9A>phcDG7owCvl!cG zVqay9R3~XTJ?^L%SC2UA#qA@GdSR4z)C+9@#1R~PG+wD(LZXNRmykG!<2=S_uAM+x zFdtSJ&O37K&t$%M={W%-cbC;5wsX20cy5PxZ0T;iw~cb7Qo#q}kQdU1n^qh4HM;;0w*m^kW%N#E2< z|JmT+{Zb#lYs+i0c;2KAy;X;slIk$K`P~O~cTycS6aaO!8c|s6Jix66xSA$hpetM^ z5~!}p+KQNkWT3-|nAaAuV7agTWp#@cFZGUJlcjIOasY7*PT!qHe{)`Sg=+owHCf0D z`Ilv|T)9rm&a9%mjY;l(h+mVXFK9B?WF1*F@tQ3AA}hH9N^WZ>2rq4}$@)A|`x37B zHCfn#rO1M-z08g2zeD%oigmdrOW(<*Fd&Xdiq4Q2CPl*L-;qq3*{lV~!J;88iN4UHN(duCMR(KU$UlR;}1J6sW za5;~b)`iQl_4Bsh79mg}PHk)ugR*-7DvT|}QGPLEPgyMlA1=-6e_Z}~UZgt6KOa9n z8Td(dAG2E(eQRohKEDJG8aOv)mF{-m^{VLdxYG&Ef&la8@G4)#TKT6DAoYX|QgfAW(Zs8Kw@n&5e!Xb-lw={` zi_GCs+C_pNIk<6Bzid%dMPf~ z6bBoSvJ~X$;-JAxaiYPaIGBr65u)zs;!e`VL3@|t3QTc0ma2+7MHhD}-JxX%ktU@f zEBv}T=SM!LStyAQ<|IJy$ucT0!t!J~*!oNyl!WnV(O`HNl_U3q&!b@6X~XIIo_skzf}Bp7xIdH;k|3+FM!i$o?cF%IifTf)(V^}+rX$azK=gU2UQ zlpwwEx-yJ$kYRcN1GB=bu$6gPb})RZd*I)o4$0hrUDpbaBupgR9;S?7{GjAVkLP0g zB&$Ouvez5^w{vKGc-trr%2N6|&7!v1;Yr5CND9`pD6;yjePVln+t=lAJii4;6u*gc zHT7~yyja8*MP?NRB4s$Uu>x{B=#*2ba4e5Ae7%){gE6%3VNXl+riI2dfRoK)8NdX= zBah%9z*NAAn}wJNa`YKlGQEhyyoIv@3$uBC3Eu{Q`n6DIK%wLntClK;MlB>_3a}VV z04WAqniNC&Hw5eBv9c%8Qy_w&U>HP*bH$2UF=EdtYQ+tgQN_H4LP)@IkdWu$M@8kv z`YxV8P^3YvBrHUQzDO%PbfQ#jgLJr#OHvZlYaZRM1=&mrl)mjAxZPpDDoLOl!+@?)UDc*)x&FCCCS!B>j(l};UHSUdeKF( zKZ$~+kYs8mc8P)e-^Aj;#z1VpqV2)b)A`8tTknB?o#`3R7F z6qF5yXq@XE08uyZbpS-y+~@#^qDg_8_FR3`kJGnC_~`<^s$^8uOr=Sv1Xf&7x|? zYZhH|qn%fj&3MhwHgSm}wXY!?MeeWEHH)U%YbS}S8LwG%&3MhCY{qLAZF8fYSJcgT z%^qFz1CE-ZZ9*4RJtn$lyk=20<28%68LwH?&3MhCZ^mmDg)?5WXq zoikpuD4p?|r%~dI*9>)234p5AqH@M-7M(L*vroVCCP&TCH|=*8Z8Ki8sGIScMc<6q zEDC4*okin}*DNZhsu>d)-KE}^+?w*8C!8ZZL+Ps;i`7^{VtZJRX=rQGDIJ&w(6SXxc-+?`Lh+MxbmlUBBT5r zSu|1kvvnM$fbouGt>YNw@AE|M4}ry%Kd3!g`NP%H;ss3Q51%U&u6BR!?#$A!PVb}ubTE^J?b%LSP4sHi_Fw&SHlDr0K3_a`W0Ow`3C}q0X1f|STELKswSSV*wEUye=A#!IBAE28lWla`J@Nc-ksh5>ivP3;& zl>~d_K60}HV4Xw{LNtL|C!5I4WV{zaB_MB0Q0nL}pk}jH;CRIb3>drv-G+RIC>1o3 z#N*Rl>vj@|CI>MYwK!BcPHY`DOyLuv$)dQHvPFSR*!{AF^#nm(_QZ^+PUi+2O%=q? z)2JOYC6;qOllJt+vfti$hO8b}^Q!D!ufFXqsfBfDR1SNIm`dQM>zKNCymNr_Z7^$b zDAC1NHhQ8+D}MGzY0>W%+H-oR%xSfO^gSMONu1Mn6XgEk&R|44_eZ|t{eM^m=J=5H z;p;S}SctoL;Y5*mWYQHlfXgi42{wJ`iDORqdeh&$ci&F{45QoKHM;da2RGQ_4 z!w@cVg|UiW$Su5NrGsVnz$aG>P|#0d1cH8w+C*rF@~S+-t-&(1%^W8w%crJUb|Upq zcq+3C=zY5xA;2d|A`B)-+@Sgg%`Kvv?T-{j0rl51NVp;RsX{d^J0+-hvSb6X>{QCo zd{5kyMb~eNNAiw5C-HzP10T+#7F&i1410?di1{0W7X}MFot;yoN}Iwys#8~PeVN6y z=&X=z;oK=%A=QSk-2mm{J2EKJw{&`cSk>lHMV-l_;8eu7KZ`|G>!Kjn!Vy=hhJ7AA ztnkk!KB^=BImGYK_>g6FeaahK*QcatAQ!3pQyul4>#XlQ$NNolyx;lG_nS^6)W|`( zfJi-P345AkN5rC_-XH`53<=Vo#Y9AeO`gF`q+THFw3!Lxq6B7^0}m3ly@NcnH12E} z|9(vz;z-@^eI8{2=R%D$2RPuXn-mfqh4aA;HhEuEXhPTMd1+Uv!hO`>J}Ns%C~U4q zxJV&9U=SYgzO0IwrxE5W1Wm6zruC{qxL6~6-Ps&;9h`urIj<9~e+uMnIWI&Hd`<0! zrm@EGsMwa@X49cw9~I+4v79L79O0tmeh|tlaPLvSCgP)VEQ{qP7)qSSvfwT#hp$kj zqU7OVc$;F-hkxD*#eV`a)*5ZJp;2(3g{p?6Ur`kdMCdtU-ep{~7;5r@a(%>jZnLRe@!qAbQJ*DeR?t66~cv zx9z1^oZ|M9 zV$+0tO4H~h;a>}7qX3^uWf2fdd4?bjkH=g1nweNexk&(k>=7W8EdqqFkg^mQNJaFM z)s_~0tYYqdUbBK3v6bSTrbDPwgsA&+MB@59QIW@33XSD7fP&UJwX`gjAbe?zcU$%Ro%V9Bf`kgA`IRyQHO{S)w+-Rvg1^uKUL)_lJ z*QOtw`Hj=hA?)qBUhG&UnA_plin*=K?YK`4{>U`9gDYSS<2h}m^+0~%vsl~<)iX`* zgwf{C5EP{xkHzXv2#CsTKZW?2Unx$s9bKGQ-gR*_y)zSS?+nHG&Ihr+^Fhq-@IY47 z^{l2YvL6iUPJS>}fAO1yMnVuG!yQdLB@6Npnjqc9K}i^&7EKoXS!g14VGA~4X;J2Q zjbu_%M+IsKjB0Fnju_;zu7bd@=RyKoenht5la(|N8UG9acfY2> z)Ot1;qVj+L+5d0+-#=5I!i5?{Y(3 zs`D5Y7hHW>=Z5T*-0DBM3W8JS$L)!7ailn}uAX7+i9ReAkT;DNJgfwP@D4eNv4hJX z4(H&|4$Oi$kh~pcfgNH=5RVR7_{S1_)%C&!e_plj;UYn0GsE{e>7eb;l!G^lTvDu# z8VkpBY)1;5&QV$6l%dKxK?AUn2J;>@cY3<#($jsiDj9ofAV3kka>eGh5I3&0^PmJI ztj~Kq$M|ojxJum|&%wHtv&}eSQ|R`kLBy{;BV3C!I+qo|H5+2QjLf*4vd8fpe!s~$ zG$)8jN8+D-?Qx)l{}%q)yM-w2{qg=RMdFY%4a?m@y48E*8wDxuAI&(-Yq-o=?S0>ecq)Hrho2^-V23ZJ>{v4w zO(K;L6EmQdshw(-2Rb4RDoC`Qq8-^~zuL}D8FFIwUX>l2)hGlKr6arSR@>RZr6**E zi3hoIC2tD9XgjaSn@KH)p$d7$npX(}yQ5y&tG4sfn3vpa<;Pth^~z>74Ga>Ky=prz zZ0{-Z`cW@94*tS`=cre9s_nd|r_Ad^t|^i?g1^GZQM6 zO=>&iS5-#Yo8E{F71&m{Gp6u}wljW>t;H^F1$Jqfftv;U!O7hZDhfeENGMzGmjGrW za+%nxz<<;W(#gU&tx4nN9WEr&J<%$B#=PtVgj z0pj9}cLnp;z(nt19mSp5J5k~bC*YBvT`$Y|1z&(4J@??DOz&T+p~z8#3_8%emx_0# zRfgMwmEpg(D#OhcW#NVNJgqJZUpWtj)FEDicn9LM^hg8b!;B-n019sfEQ)|(i*v8I zm2O6Ydte?uGJVKhPWgUXAp8p+5;`beq=ytq#FeQa`cmwmI*gZjJC>pWRAIRELXdGF zQl-!0&7^n&1|5vF@&fMFr$ogm4tEtd!H#n+#0-5jG!R*t?l|LV!~w_{N*uuVNkz0E zSG7e9uR#-|4#CH1G+P6wjA5fe%21^puhE1{!d?aO!aFb&em!(!viR^cO8vbI_f}8@ zNdT0Xvjr}c%6|Ji(zgIC4wSUxVj|!pY;>2vrPM+mZ)B71H-o3)6W;65 z-0WZ)KE-%ki?&_o`DF-*ikgd8da5C+l13PprLz?}Yx==*|DMKHV-J(={`8=jXQ zBIjYZN73!DL!eXDT`|H%L>AknE)a$r-xeHH#W!i-#W(66z|GvYu;sitnjPra5B%uy zL;CM=og#&r^J5>O8#%p4FXEj)ct?j^GJ_y==B1I)S=jEwfq8YT3*||Hg~n~~ zegR-(jXQZXPv1)b3L_xF1CIbq7d6q9_Z)qtWedJX1Y&y6IbD-P9O*@QDixTHcL7g13WOyXsT8(qpW{LBpT zgh48Ix_BAlPM5L_GV}$?%C$XgV6ZN%II>{Jmv!Xw$qKebui88h!bO^R;A#R^&Si-UyudJhx%$b9 z?~@hZEbI7Y#5QnLjKDA!cP!g~0wxx9uEJQUWep$Z8qNj$4J`NqF-tEEoF3F-%i?a=j=t{SgYfQ=j}Bb+big=>Ht1a!-qONh^3$d4{A>a5AY(u1{5CD zfpp zk60^o9eo8*|4Bmuvx=8Sz0R&DyWu*qU2;e|FjV0&eA_=Unm*IAat2}V)DTG|1 z4zs7(V$dDiIk^%hgme9VKBYeoRW11Q+*X~!pN9-t{CWQB4_wf(*=L1!@)LEL0sOxM zTN}6>7w4j?xQfGB%RUuVOaM+rJ!OUW@d}9=Oq;E8(;r=Wa8()hWGNodj;1|%2<44o zY4rFhLB%K$-aGW|5l#R%983Xv>dAT!mNPb)lAiIefe$c<9xg#L-;{F={PW?>fbX&3 zukx(HjcB|(OfC?Ejt|EgrYXl7T)f6(Sn#Uh4T2Ar6+reyfVGWRRT2+ccnFR$*xxL} zn$`+8yh;}mYX~mFR%QqZg_4Z*46maK5FZ+q3*K)!7hGGUGBlRYqL|kl#M0Hmqa_U|!R*AR>4~d(!xu|T0$~hB>bUM6_ECDVj$jy5g z-Tm{i+#BbGt>!jD8SdvGKI@Af^?G~#X?Fzui!S>tx*hIvuVzBA?VJ>eJ1$+c^ zc?1%;QD^o655o&Qb!#NkY{X|!WJM0ec5($ZoOJL=xFAybScqeV?TMjFr{e|AckV*s zPI_JJ$VT7yN)HYriZ5fcIp(5D@v}h}b8z6mVTQu)b~MKBWxGe|>Y@7%Wpms)7weoi zIuZbvH+o`F7!NBq3^oJLn7WD_@LZ&IZ#rSX23&&K+RD>tt-J{5Lagd?1T8#*OGx)! zLe~rBq-N>+N6DugtS!24-$D7LN!e8?^t-2o)zR(3dCIdedI>V&?hPt*Xr8*U!+lql zXyW)zp}H35_e_*!9#;!Nx1%fKfl7R5=)>0+N3MpBcX@_V@K&UaWjpk{zTZN>OM}wp z(C@%CsNTUSw=feN5853Ovgj;f&YuwlT6j7bNr8nAjc(cFf%`U;#n3{mArRasJL3Cb zzl~9L6#EVZGirDU@tv6Gs6K-l@ncDy2lD* zPh*mM02f$&n*JBimtgT6m+D;lBqVe$8B%6+bZ@F2J}I$>586G9E`d2k_wdgGAO31_ zq!adzZ)DI30V;I*819)L&t9B%pbY*7(!=6rfG!p}$9$T}Z<{;7im5{bo&E-bb9wa(wg(2MK(21ZC1Zn)+zH!WxXp@8 zK2r*rU8Twz`wGhHWm!Lc2W7pR*8P*RzIW0>1?aHI$%~1!We;RWetGYQ0xPv)_-@~K z)N9y(Em%Fm_;A>+&^yS*NRpk&f_A<9d%csL3_T*^OEtbA(vjQ&o=l+}0O6b=9=KgXy99;R9&(9K4fib!NUbFw~6| zGV32zhRG;~^$%wKjRKekfdg!l%zv_9kFPvrznOaAEkQr$wAgWljN4&>bY%i^K26Yy<>@D=)g=DzLOiXUwr_D@UvURn_bh>{krw!Q-WYVK!V$r(F%SqDE*d-J@&U^^tKE3m5L zavMwuD-F!%iga|Te$3!wAiOh>_F^b681YVB6j}b`%s}a@s~~`6`4;B8U?Bq;a^ygE zMKB9Gm^n0`G%GUCPtnbTBR(0?XVGp9R3Ho~-pi(h-wj}|E4*VpCUzx7<}08*{Yp20 zQJxQFWB5FY9@*l~$P1zgwZfII==q}uV`vhdv#s#8xQ+`*JfohyYSLJKu=F<}e0K|* zTHDh4hr0J6?!IeKn!BSA8@_P+-ka8aho~@I>I$vlO6)XaBW}17Sa_}B%6x`_@c-4z zXgGgyxT4wgfAsG!_m?%{(E4=@ix4#0zt5B|aO5(HN7YVV>t z_rTXs9v&|_-aRlyJ?3A~eMK<*$4B^TkMU11{9*Jq2o6;B4zS6%TRhtpT1mspiSs<} zep-CyUEuEjznO?J%P!;fU|0hC_8i2wNbzyoWm&H73#{{&q6JGWYjE<-3#bO|<|x-# zGf#96{8-9OI4{A*W{+l|b434$OkRO;$GBZPg~9y6FJs(#(B$ZCZyk)8whV*}e)uK~ z0ZOpK3pz%d0mWOMe;&$jeq?!C^b8a~ zdXpOXr_1wQ#jj|p7{$G0vFI<5Ec~+78qI)Vm>Mh{~`1h zRI^LUpZyQ2n*FHsk+b<45B`qI-?bK&kAYW0)gNq2>t1bTT#MWM;Byfl4J-03Uvw`V zXyIJ2h(nR@!pG&X9OoltUbGs`!Hf>&_f=M>RfOwsBU=kdq6HMOoP+}1Lix|*$p;ou zBG;FJ-w$T}zD!s<+5%2J25DjPY}M4U)1*fNY^skofoHG4m!Z=*Ke~&-edkz_@|aaRyy}$RTVtNkq%o_v#M8Y%Hq%SD z-Ta;v`SMJZ_EWZp>(O}B%O1kJRf?ks9Pyyz4oA;GMddpy@J--rt__Cwlr0CNUW#R4 zYu98cYbw^$mh`d5tkRM0_j)h7pnH_`H1-zWIOgX(eiP$KIv;!7u^w^=qZ~qf{qbWe z&AU0cdxBu$`+~T=_JCYtJ6H?8{))T*eXM5I;8I_3@CJ-md3K=h9Zc8l?mI`(dTVe& z30g7_{E@J`{uf}6`%qzYDVmNK0>5?l??e%O-||9H-x(n19QK2iA@i_5o1u`-kCilX zjRf=mh%SHR-;oym)|&@oWxeyfn1dS-FMjqhOcl)Ax1s~2Tlmcn;2h7j*`XOU4&=j@ z=AEJ_3de#l5nqb_6K;9I{2pkM_TH9_)hd(~eGcVXgSQo`*bc_Rj#xt+pu0#c+`oXfm=A^0SxKUp8MAer5 zK55G(b>tG+R_QbDJHM%VvnCjUe37;*P&$MUqykpfTY^{Tt-#o}!EO-7w|DLZA$l<4LjTE5DI`4-Uffy1#*ihPT1e8w|sFbvXL-H-w-rin&I& zqx%&7g3|w1tu3#e3jD}?4#FdEv%Mb!fAlM+{G~_O-;eQ6xH3Qb_6G`Wu@empR+mPKZVp!# zM7L_ZvkjgofQCY>aHS_&3+^s-SPAjuW3+I%avHL`Mm>@z>zDIw&cNkZlHLRwrqH8E z0!3g7iS)?V1N3_~l+74@NkP}EVq~s8gpnF;Lh)M8Q`}Nby7z^TDkh2#6627-mB@(; zh04$yyx+e6T#gw?w9Fd#AT*Et8GSN~Ac!(MLUXLXKj&lq0D@dC=#!d~RTl#|$$i%k z04s(iay)t?${5QngBeVkURnHZFdQW%XOl}pVrj&A1@cP@QrmiObKTzkXzy)lmE8~a z-j*Kh-rRdz#=`FJgJ2$`h#Wl~#kn7Y%!EEin1wJO;c<||@#uHobr-P81}pP%&K9s$ z_^fqhfqK4q4cdeHqpMJoG>9!9U5N>T@2}548^rVzb~--c`TqCZ1M>k#1`*Grn*c}T zQ0*RV1Tmp#DK(d+o~m-Qx@=P&wU$xr$(q5ynBa3T#n1K+g-R7qTn}*+hSVV|lA8|` zuR7WacNrhoV>Z_BjKd;*dkHbO?W#f5l|?>_QTGEOoSECW~& zFB@EdjqdKR^?jTXzRBB-HEcnRHN2n(#p87sVD6joz$l0oHRBYdL}q_Ug84s2@W^5y zM_2voU~KGROu-+h1?j-a#GAi?2tguTNd!pe%0GMQ2URm*)&Db?#Nh4O(NQEq(2f2Y z;Wf}x)@z4@kNE*tazl6jX42f?ZGLI{0eAmT*u>IdYp}MYJ8Nt@yJD~!hq(XLyE->@Q;{$ONfHRhoey+JUqtww5h8)ShNJh=P+ zN-ADjW0k($eZuHlC=%~rg||YYtFua@sBW;bPNr{poxA@LHVfo^D&MGYJ3jhs)R(@Y z5~(Fk*CN$I)c6PX$p;J29fOyY!0ymJ8wFOw;*8h2(tfR%`C9m-tyL02V}BJ4|0en{ zC}#1%o88++@v%m7Ki=q$vAIox`7a@OWCwfTmDkAqP$nv1x&JODEw1i^bM)HnJw@~+6_ z(1C9{H`lW+aUXTN3W~iX=Kt|{SQp0n=AvLhS2XDtGd}E<# z^fA5+5+95wB7Lw5+0sIFeFxG**I0eus!=QUKSA$B3vW`jzlGqD5NrS0tL%|)$vXS@ zPzUfZ6v8*shoiMDo+*Pc@d0=bfr~V742sdWEVd&ndZB`WSYn~OqeX~~-K8fh+OzaA zKkC67Jr3$|MgIruLuuFot0}sMYIsJ8@N_a`kjOSz^8WDHy@*gglRPB+XuZxCB)x@e zTEI?wAd>iji1+gQt>N-Ic^)pWmM~n7GydhEka9@a3ow?L(rQRajG(4#uH6>>uU8Jn z1~HjV{_8pU{I*%&uH(byxy8?py`lz#{f*imm+3QIH(?c;Fzm!U$`LAcysJoLWx15!Sk zye&G}v~~m-&epybXKx(;g!}N|N#o#t>p?$RC(h1C@8Uka(5aAZGZ2e`Wh?+g#10w2 z-TSWDChr~n1!|PK*);X@F6?Y-DqmVL*VEP6a6#*e>n~{N>b{_UW#fgjE@2o|Ye7;#1_-0-(quApso;$O2uCLhB(G+Ux^i=kAc%&0pVpD@>{(MhmaN&Yr z+0vymXLwex_9VhCoaMTqskOPb>z0*WEp3fG(;HkXyKePd?2(R>r0$N!`cRXNp_?j! zq~FjKGP&)tRmBpaX4{B^XnH#d9E z_SAwjIBL!Htt)P5E5ZQRE~~A!Dwa&c@J{8J%ka5?6S}3N$#by~0dN)umMmT7Ip-XY zNttI-Kp@LpT`jdKE6~_UrMp~>=U?1dD>b0XqDr)A8LFFVN_TZO9ICNP6B~;PYSlQS zJKB&9<#jf=n$EwtsrIH7ZH=0YYcHwAyDD(Q%0|zbs`U$MmsFNjC~$Kl-`3}9YH93b z`lVL{gRY|Pwk~v3Q{z;W>cKlpN4lCdrORtv-`#BEC%l*H-SVrKRjT*Bxv8^jMSB~Y zB<<62mDsi7)+W3&=a7todX=`ORZMW1aqDdAx}~k57H=)XYX3<}?`moYp{A}0>8mi3w>Jd*a1ve7jElM)C30BY8<}*%Dz=tYl(a*krJa6^(c& zG}{?<&Goo0ZTD1mcD8rA7T32nw|A~=YV_2178Os$--ebIn681gn=xYuy`g(0%5dR5 zJq@k(U0t4)E4o(JhZa={MSE*KhXf@xw0Cx5 zeArc<#-^@@&J`V@_D;{r_QodHmG!ONO&(@$Z}xQ7x7~n9vnPaVn?kN7OVT)AzO}W>l-Jet&F-eQh9=h)Z7WuGv^McY@TSd8^`Y)g zLT_qoU)3hV=mR+_m5Uk|Lr$|~{x%jdrSGzRN>%j<+C!4t< zam^BBBsnh|40Z?D04as^b!qJtmsV6RG?ig8HMKQ1HKIcGGv#$Le_Qv;gvtl@*}?a&-CQ{sp5q3M|@Mh6OYfy{|&wqkNN*kZNHLV z6v@dmWg8MwlfAT%XMv0iO?FQgK90X_fGS=p#F~_#1hOJYYHqE+q04iQCm1N_+*w%5 z#dK+H@UpUs$_mHo4>5mPSs-}1TJ?+0Nh%lh39?3_0FVl2ny0oBZC={YHq8Ul2aQkV zu*r`v!?g_yjrU?-YBlIg)F0Nj7b*guqYR_ObcBb9teJD&2X5#XGX11HWSSP??xGvd0 zgO3*1VhL&M0`J1|)O@0#=s$`c(hslAd*M!OKGx77`mQFp;kOqL45{q5vl%MN6TR7>Rpb2ua=RD8SvL%bls&xN5k(nQ_-~^@0 zp8%6rIp4#ey}1a2MmGf4`p#OgwKy|JU50*<)X~}A(A3pMwLesUy>5piy}hHU&52JI z2MOhRNQLoV5`OK7uy6hrR@FuLIi_3z+%N97+P}4pb4VpkY&LvGsN=^r*I9ea?&lPPeLZYsHih-w1 z8+a}}3pqT_f&jjs*2~|r}1Md-1B`Edc@TQbn-);{(%Zzx*gRo93rm4 zhYTK4Db-(9^>^s_=07O-9v%0esnXYTdj>!Mdn#Q2s0ufqq0%=$rsLx(92rvKdV0a& zw|=XRzpKONRXFlo>bQc&|89I%Jy&bG_3QWU)#dni>GbU?ychv%Hu98$e(~4HDQUMZ zai#U-r=6ZVDSJISig3y<_if)BTg+~%$PV21Nhm5>mT7k{67HrbOS_4cq9Jj z@7NnFPJ*vSyaaG3Cnf#{{P(4R-w${Z;FA%WAMrWFo+P*zuvhWF5b${%_{vCT?cEuD zlkQ1hm$l}&syshn_z^D?>AszNW0v6ElU}>#xV}kuXGAjBWhLNoYS#?!jRlCeh{=nI zcX^)wp7b^J^uUkhkrnsu+8g_Zjdxw1|LzQydXJ$$;;lyd!#~>_+i2sZE^iakeNXO< zt+Vk`m-iIX?|o`->?bx}>hkupyr=iZ`fa?_V60UFZ$x%*ajPKV!yJU5X;-W zHUNJ>zDh!1Z}mmlzY2VCeM@OuG2 zf$c8K%U_eeFt4y8&(nt{FyA_)ul;au?3AQ@n*d)A_!ERnzKXoUzKp6okIJ{5^&Qw7 zJ3lGktAN)4e!I@smo8ZZi}ihk^oNmtjw2u81?cM$z)whmPXl}x;HM_RD>Oa=`^R#Y zYy9MLLVypU94GzD`vcDQB;#)ad^6y0uyj41#D5g6PoUnz$ga403!Hf*;%4ipcJ?@r3?k`Tc zzPKhc!nQJf6VlhGA3A+I()}6Zv8^fc^F7~0`aY!JD(&ZNx-M@d?VfaJ1KGaZZ1Cr- z@dP>|9Nx&Tx+FN;H4pF}z`InxWXOCX6UUGFmLq-lapMX6gzymHBS~C1H5BLb+YJFyX*BA=5>mwe$ zbPMyxV+ZYaU6WUrqFu9qx9_C!*l$^bgTDp=-}P7HF?tWW%JcHUrPgGuODBiRs9O4WkoU*=Fk1WyYEZmu~Cy5A&fWPaE@z|Iy|8ABaVfpJaD5Rv=D0Khzjr3y|1kQQ?b!hQjkCsMbXiaF9trQj_udYC|D5rdu*#%yAu*}( zsK_g+$h#LkfE-GP`w02&y=XkPj-XG@_pr%Vz`S{w|K;Pc8(5J35gr8GT963m`!oW+ z5%BLHMt|{rHUQsKIUf7-q3Fy?=mKd0>v;)1QMfA~uDE1sbbr(5eXmgM;;KP!63g(80MReGI6d5cW_;7mz$RA(47#|y`>T=`dz z$M)%dx#TeNkzQ6K->z?9yIJ^Q+e`9grZ08dpP%iVzV^+-=uF8k*JqykVV1H#_{{9(X_Z$T;{oc);z zx8eMz@z^`5*Nv*Yjp=c6(-s`&n}>Y6ZW@n0spntPdRUdWXX1Lpd?Dnk>p1fMxF7j? zzIkN*L3(-<`8qleJ$@pbbsc*Ayy(33NdHO-ejMiu0m?4Hyk1T|)vwEuucv!FHjt1{ z@ux*1k1)5+N28<8w*mP^R*lEnH6K*{YV$Q_0Y8#_m*owqe8T^cFZ){<4;BReb$2>A zSR`YSmVef89fvNM=hyXo1pNDePkkU^{WJX5SkUKRPF|-c)^}On`gl8EMZS{19gqF!aN4;s z-v0$KKn!gdkIgt#edtHK{~i4jM7~}BI3AmGIPd46lYZnI`KR$%%@O8%6!{MPzei4& z`;l+YKOZ?=PJ`j2WYc&oFWyediJ&hfldHLqI1fmdjmVe(y~C%=4ZzS9Je)>|Z#Ppnr<6&@WQAuMRl)&BFgoIAv`7cj%4Id|HygJWZs_YRM+~<{{sG z|ABTU^S@MdDZ+uOFNA!a|AhXXK$o99zuC_Fk?+8d$78P^sy-)O?upa$n|!}V#$(qU z>iy#Rf_aYjoAM>l^M8%Uc#m-Eg1n+W>}vSfpC1A5Vc;3LP3R?2UV@xwIJ~Na`DWo@Y{$@e?Bj%fNvW4&?Ie=2 zW3?h*$=30hY#GDOwI&l=Cw*DAoogM_x9N2V?Ovel2hhX%GQB9{ex&b0`U=vG*oUuC zc9XbySnOrb122DgJhp~aFPgZ|upjBYyAtgX?C0Fm(I0@X#j~+%5bg!s_cQPr!Xf9; zzQgv+1H1(Ax8wa##y(z`5rNU8h^tK&^EU#|^(6E;1SUV>t63l5J_lUnKfp%-ze~f{ zq(c+vqcKd$F%KZ!|CH`0$G+TCfbRyJ)5H8&&zmeS3C?s(3;8AQ{SnA~9{j%#`M!qG zWvTa8qv>+pN#2AXR4DlwLsG7e7Zs@oL(97^RXI)DJh~uVjOzeoGyW)o@zXxCNTvkD>s7ExKYO^PBo` zlDD1dBbYn<;pDBvO*?SlP2xqmJRFmfxaqfjI{tlKAU;Mb={Kt4j{0Ao)8fw*tYY!F zfoI?`-#6#{89w;c&7D~?*H`il&y6>=ceUK&@w$$*WOI~kdc(0P zT%AliHf0}^HuLD(u`2kOl&g+h9D^QKhw+X7&N+}rK#bjuI`n` zq|rEVc(lu<7r#D%b1aHBrw2VVeY44uO3(MrI3K5CeY5AzoHMt$__MJjHX81-IQn)h z+HB7J9GkM?je9H#mV->kqF{YS@Yod110hFu5|T93@yVlKE?v!!MSH>M^x4Uy-)59e z_xfYh?D|d!2FI*yIrVe&y97sMaoGImmy08uZ8%YCeKxM2c+%7}vsnD`Wks1$;wffN zeBQFPkaR4HHs{igHi76~IaYFqE?#alK+|Uy$Cq*4=`-feD*bE&>NuBqbSI4z%+rBK zyR${`;4#soOMNU>ovJ+g<;tPUquafjCU}JQXm_wKT94han1`mHX9+6>_n3u$!aaO* zXMaXQ=J@g05_)6Cj2SkIF7|nR7edIzO)#Hrf|$9jkFc(s<(Y}AWt12_6UsfCJ-c*n z@#kZx>If?fSKL~0)C*botPAJP{ERZX%)w@LI`){5pDJ7W#Fx}3P%UQ9{9Ikm1BjlP zvrK0Tjrius3iBDqk~D&YcI} zPfku}kGZD93;+pMg`rN@^c&i`r<e+K^e)6zaAO0T)Q-Zg?*g=; zeWhHFV%rBl;{)yFG?^QFxUsjJaG5s5oAhj5kFn3wYRNK8y0OQbuvZ)QY4<)8|4n{l zC#QLwX(qq1@0-xr^MN8iV;?thmI+&RyUB0tBvvpyn!2gy$P4;ir7Z} zH|^J8*L*zCmT&SKd%g)h8j*R~_T>CQz}S~2zu8|fq1j(B=_bGFzbljSoBawCn*9yt zKOX;+^Vb2!cA5PYvmawZxP&D9%(xriHF$95pI4+(Oju_ct}~eY`8wX5lz*ePlbf)} z%hKaNlg~g}@!+iA>>ruX>^m8JQ@@FK>injed-VR33D4F0O$Og%9&~ssLe_8c=kg0{ z_?gi3w*c`cx&F0)F$d{`KXX3Vqsw_XDT7C_;(zYOqqF|qO==%ucav&|j~j)KUvhiy zMH)6?uFEpx@Xv@7#pHij@2@@Fr!pEmoz12{6TdGh|1O<>*J0-W zVN(9xI{$8+Kly!=;}0a|H~WKobbj7!?);hjCj1E!`E1_5W(r~(X j{57cxK{fd=Pnv+qxQv^+O&tvX?OugB>;&RDIsg9$shsG> diff --git a/contrib/elftoolchain/test/elfdump/ts/dso1/tc b/contrib/elftoolchain/test/elfdump/ts/dso1/tc deleted file mode 100755 index 57519e3c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso1/tc +++ /dev/null @@ -1,157 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - run "@e%libelf.so" -} - -tp2() -{ - run "@p%libelf.so" -} - -tp3() -{ - run "@G%libelf.so" -} - -tp4() -{ - run "@n%libelf.so" -} - -tp5() -{ - run "@p@s%libelf.so" -} - -tp6() -{ - run "@c%libelf.so" -} - -tp7() -{ - run "@c@s%libelf.so" -} - -tp8() -{ - run "@c@p@n%libelf.so" -} - -tp9() -{ - run "@d%libelf.so" -} - -tp10() -{ - run "@e@i%libelf.so" -} - -tp11() -{ - run "@r%libelf.so" -} - -tp12() -{ - run "@h%libelf.so" -} - -tp13() -{ - run "@e@p@c%libelf.so" -} - -tp14() -{ - run "@S@e%libelf.so" -} - -tp15() -{ - run "@S@p%libelf.so" -} - -tp16() -{ - run "@S@G%libelf.so" -} - -tp17() -{ - run "@S@s@N%.dynsym%libelf.so" -} - -tp18() -{ - run "@S@r%libelf.so" -} - -tp19() -{ - run "@S@d%libelf.so" -} - -tp20() -{ - run "@S@n%libelf.so" -} - -tp21() -{ - run "@S@c@s%libelf.so" -} - -tp22() -{ - run "@S@k%libelf.so" -} - -tp23() -{ - run "@S@v%libelf.so" -} - -tp24() -{ - run "@S@h%libelf.so" -} - -tet_startup="" -tet_cleanup="cleanup" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic13 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" -ic8="tp8" -ic9="tp9" -ic10="tp10" -ic11="tp11" -ic12="tp12" -ic13="tp13" -ic14="tp14" -ic15="tp15" -ic16="tp16" -ic17="tp17" -ic18="tp18" -ic19="tp19" -ic20="tp20" -ic21="tp21" -ic22="tp22" -ic23="tp23" -ic24="tp24" - - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.out deleted file mode 100644 index 5f706577..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@G%test.so.out +++ /dev/null @@ -1,49 +0,0 @@ - -global offset table: .got - -entry: 0 - 0 - -entry: 1 - 0 - -entry: 2 - 0 - -global offset table: .got.plt - -entry: 0 - 0x200c58 - -entry: 1 - 0 - -entry: 2 - 0 - -entry: 3 - 0x69e - -entry: 4 - 0x6ae - -entry: 5 - 0x6be - -entry: 6 - 0x6ce - -entry: 7 - 0x6de - -entry: 8 - 0x6ee - -entry: 9 - 0x6fe - -entry: 10 - 0x70e - -entry: 11 - 0x71e diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.out deleted file mode 100644 index 8c23988a..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@G%test.so.out +++ /dev/null @@ -1,21 +0,0 @@ - -Global Offset Table Section: .got (3 entries) - ndx addr value reloc addend symbol -[00000] 0000000000200de8 0000000000000000 R_X86_64_GLOB_DAT 000000000000 __gmon_start__ -[00001] 0000000000200df0 0000000000000000 R_X86_64_GLOB_DAT 000000000000 _Jv_RegisterClasses -[00002] 0000000000200df8 0000000000000000 R_X86_64_GLOB_DAT 000000000000 __cxa_finalize - -Global Offset Table Section: .got.plt (12 entries) - ndx addr value reloc addend symbol -[00000] 0000000000200e00 0000000000200c58 R_X86_64_NONE 000000000000 -[00001] 0000000000200e08 0000000000000000 R_X86_64_NONE 000000000000 -[00002] 0000000000200e10 0000000000000000 R_X86_64_NONE 000000000000 -[00003] 0000000000200e18 000000000000069e R_X86_64_JUMP_SLOT 000000000000 printf -[00004] 0000000000200e20 00000000000006ae R_X86_64_JUMP_SLOT 000000000000 puts -[00005] 0000000000200e28 00000000000006be R_X86_64_JUMP_SLOT 000000000000 toupper -[00006] 0000000000200e30 00000000000006ce R_X86_64_JUMP_SLOT 000000000000 cos -[00007] 0000000000200e38 00000000000006de R_X86_64_JUMP_SLOT 000000000000 cosh -[00008] 0000000000200e40 00000000000006ee R_X86_64_JUMP_SLOT 000000000000 __cxa_finalize -[00009] 0000000000200e48 00000000000006fe R_X86_64_JUMP_SLOT 000000000000 gets -[00010] 0000000000200e50 000000000000070e R_X86_64_JUMP_SLOT 000000000000 tolower -[00011] 0000000000200e58 000000000000071e R_X86_64_JUMP_SLOT 000000000000 acos diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.out deleted file mode 100644 index 4dbedfa0..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@c%test.so.out +++ /dev/null @@ -1,210 +0,0 @@ - -Section Header[1]: sh_name: .gnu.hash - sh_addr: 0x158 sh_flags: [ SHF_ALLOC ] - sh_size: 0x50 sh_type: [ SHT_GNU_HASH ] - sh_offset: 0x158 sh_entsize: 0 - sh_link: 2 sh_info: 0 - sh_addralign: 0x8 - -Section Header[2]: sh_name: .dynsym - sh_addr: 0x1a8 sh_flags: [ SHF_ALLOC ] - sh_size: 0x240 sh_type: [ SHT_DYNSYM ] - sh_offset: 0x1a8 sh_entsize: 0x18 - sh_link: 3 sh_info: 2 - sh_addralign: 0x8 - -Section Header[3]: sh_name: .dynstr - sh_addr: 0x3e8 sh_flags: [ SHF_ALLOC ] - sh_size: 0xc4 sh_type: [ SHT_STRTAB ] - sh_offset: 0x3e8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[4]: sh_name: .gnu.version - sh_addr: 0x4ac sh_flags: [ SHF_ALLOC ] - sh_size: 0x30 sh_type: [ SHT_SUNW(GNU)_versym ] - sh_offset: 0x4ac sh_entsize: 0x2 - sh_link: 2 sh_info: 0 - sh_addralign: 0x2 - -Section Header[5]: sh_name: .gnu.version_r - sh_addr: 0x4e0 sh_flags: [ SHF_ALLOC ] - sh_size: 0x40 sh_type: [ SHT_SUNW(GNU)_verneed ] - sh_offset: 0x4e0 sh_entsize: 0 - sh_link: 3 sh_info: 2 - sh_addralign: 0x8 - -Section Header[6]: sh_name: .rela.dyn - sh_addr: 0x520 sh_flags: [ SHF_ALLOC ] - sh_size: 0x78 sh_type: [ SHT_RELA ] - sh_offset: 0x520 sh_entsize: 0x18 - sh_link: 2 sh_info: 0 - sh_addralign: 0x8 - -Section Header[7]: sh_name: .rela.plt - sh_addr: 0x598 sh_flags: [ SHF_ALLOC ] - sh_size: 0xd8 sh_type: [ SHT_RELA ] - sh_offset: 0x598 sh_entsize: 0x18 - sh_link: 2 sh_info: 9 - sh_addralign: 0x8 - -Section Header[8]: sh_name: .init - sh_addr: 0x670 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x18 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x670 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[9]: sh_name: .plt - sh_addr: 0x688 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xa0 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x688 sh_entsize: 0x10 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[10]: sh_name: .text - sh_addr: 0x730 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0x358 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x730 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[11]: sh_name: .fini - sh_addr: 0xa88 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ] - sh_size: 0xe sh_type: [ SHT_PROGBITS ] - sh_offset: 0xa88 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[12]: sh_name: .rodata - sh_addr: 0xa98 sh_flags: [ SHF_ALLOC ] - sh_size: 0x78 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xa98 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[13]: sh_name: .eh_frame_hdr - sh_addr: 0xb10 sh_flags: [ SHF_ALLOC ] - sh_size: 0x3c sh_type: [ SHT_PROGBITS ] - sh_offset: 0xb10 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[14]: sh_name: .eh_frame - sh_addr: 0xb50 sh_flags: [ SHF_ALLOC ] - sh_size: 0xdc sh_type: [ SHT_PROGBITS ] - sh_offset: 0xb50 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[15]: sh_name: .ctors - sh_addr: 0x200c30 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x10 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xc30 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[16]: sh_name: .dtors - sh_addr: 0x200c40 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x10 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xc40 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[17]: sh_name: .jcr - sh_addr: 0x200c50 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x8 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xc50 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[18]: sh_name: .dynamic - sh_addr: 0x200c58 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x190 sh_type: [ SHT_DYNAMIC ] - sh_offset: 0xc58 sh_entsize: 0x10 - sh_link: 3 sh_info: 0 - sh_addralign: 0x8 - -Section Header[19]: sh_name: .got - sh_addr: 0x200de8 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x18 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xde8 sh_entsize: 0x8 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[20]: sh_name: .got.plt - sh_addr: 0x200e00 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x60 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xe00 sh_entsize: 0x8 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[21]: sh_name: .data - sh_addr: 0x200e60 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x10 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xe60 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x8 - -Section Header[22]: sh_name: .bss - sh_addr: 0x200e70 sh_flags: [ SHF_WRITE|SHF_ALLOC ] - sh_size: 0x8 sh_type: [ SHT_NOBITS ] - sh_offset: 0xe70 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x4 - -Section Header[23]: sh_name: .comment - sh_addr: 0 sh_flags: 0 - sh_size: 0x122 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xe70 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[24]: sh_name: .debug_aranges - sh_addr: 0 sh_flags: 0 - sh_size: 0x90 sh_type: [ SHT_PROGBITS ] - sh_offset: 0xfa0 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x10 - -Section Header[25]: sh_name: .debug_info - sh_addr: 0 sh_flags: 0 - sh_size: 0x1a4 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x1030 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[26]: sh_name: .debug_abbrev - sh_addr: 0 sh_flags: 0 - sh_size: 0x20 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x11d4 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[27]: sh_name: .debug_line - sh_addr: 0 sh_flags: 0 - sh_size: 0x160 sh_type: [ SHT_PROGBITS ] - sh_offset: 0x11f4 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[28]: sh_name: .shstrtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x10a sh_type: [ SHT_STRTAB ] - sh_offset: 0x1354 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 - -Section Header[29]: sh_name: .symtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x6d8 sh_type: [ SHT_SYMTAB ] - sh_offset: 0x1c20 sh_entsize: 0x18 - sh_link: 30 sh_info: 51 - sh_addralign: 0x8 - -Section Header[30]: sh_name: .strtab - sh_addr: 0 sh_flags: 0 - sh_size: 0x2dc sh_type: [ SHT_STRTAB ] - sh_offset: 0x22f8 sh_entsize: 0 - sh_link: 0 sh_info: 0 - sh_addralign: 0x1 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.out deleted file mode 100644 index 4a56b906..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@d%test.so.out +++ /dev/null @@ -1,27 +0,0 @@ -Dynamic Section: .dynamic - index tag value - [0] DT_NEEDED 0x8c libm.so.6 - [1] DT_NEEDED 0x96 libc.so.6 - [2] DT_INIT 0x670 - [3] DT_FINI 0xa88 - [4] DT_GNU_HASH 0x158 - [5] DT_STRTAB 0x3e8 - [6] DT_SYMTAB 0x1a8 - [7] DT_STRSZ 0xc4 - [8] DT_SYMENT 0x18 - [9] DT_PLTGOT 0x200e00 - [10] DT_PLTRELSZ 0xd8 - [11] DT_PLTREL 0x7 - [12] DT_JMPREL 0x598 - [13] DT_RELA 0x520 - [14] DT_RELASZ 0x78 - [15] DT_RELAENT 0x18 - [16] DT_VERNEED 0x4e0 - [17] DT_VERNEEDNUM 0x2 - [18] DT_GNU_VERSYM 0x4ac - [19] DT_RELACOUNT 0x2 - [20] DT_NULL - [21] DT_NULL - [22] DT_NULL - [23] DT_NULL - [24] DT_NULL diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.out deleted file mode 100644 index 0f30ff8c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@e%test.so.out +++ /dev/null @@ -1,10 +0,0 @@ - -ELF Header - ei_magic: { 0x7f, E, L, F } - ei_class: ELFCLASS64 ei_data: ELFDATA2LSB - e_machine: EM_X86_64 e_version: EV_CURRENT - e_type: ET_DYN - e_flags: 0 - e_entry: 0x730 e_ehsize: 64 e_shstrndx: 28 - e_shoff: 0x1460 e_shentsize: 64 e_shnum: 31 - e_phoff: 0x40 e_phentsize: 56 e_phnum: 5 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.out deleted file mode 100644 index c3c244df..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@h%test.so.out +++ /dev/null @@ -1,22 +0,0 @@ - -GNU Hash Section: .gnu.hash - bucket symndx name - 0 [13] _end - [14] _edata - [15] add4 - 1 [16] mathstring - [17] add2 - [18] add - [19] __bss_start - [20] _init - 2 [21] _fini - [22] add3 - [23] sub - - 0 buckets contain 0 symbols - 0 buckets contain 1 symbols - 0 buckets contain 2 symbols - 2 buckets contain 3 symbols - 0 buckets contain 4 symbols - 1 buckets contain 5 symbols - 3 buckets 11 symbols (globals) diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.out deleted file mode 100644 index 2abc8a5f..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@k%test.so.out +++ /dev/null @@ -1,2 +0,0 @@ - -elf checksum: 0xa722 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@n%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@n%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@n%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@n%test.so.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.out deleted file mode 100644 index 52bf7ee2..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@p%test.so.out +++ /dev/null @@ -1,30 +0,0 @@ - -Program Header[0]: - p_vaddr: 0 p_flags: [ PF_X|PF_R ] - p_paddr: 0 p_type: [ PT_LOAD ] - p_filesz: 0xc2c p_memsz: 0xc2c - p_offset: 0 p_align: 0x200000 - -Program Header[1]: - p_vaddr: 0x200c30 p_flags: [ PF_W|PF_R ] - p_paddr: 0x200c30 p_type: [ PT_LOAD ] - p_filesz: 0x240 p_memsz: 0x248 - p_offset: 0xc30 p_align: 0x200000 - -Program Header[2]: - p_vaddr: 0x200c58 p_flags: [ PF_W|PF_R ] - p_paddr: 0x200c58 p_type: [ PT_DYNAMIC ] - p_filesz: 0x190 p_memsz: 0x190 - p_offset: 0xc58 p_align: 0x8 - -Program Header[3]: - p_vaddr: 0xb10 p_flags: [ PF_R ] - p_paddr: 0xb10 p_type: [ PT_GNU_EH_FRAME ] - p_filesz: 0x3c p_memsz: 0x3c - p_offset: 0xb10 p_align: 0x4 - -Program Header[4]: - p_vaddr: 0 p_flags: [ PF_W|PF_R ] - p_paddr: 0 p_type: [ PT_GNU_STACK ] - p_filesz: 0 p_memsz: 0 - p_offset: 0 p_align: 0x8 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.out deleted file mode 100644 index 8d0fdd40..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@r%test.so.out +++ /dev/null @@ -1,20 +0,0 @@ - -Relocation Section: .rela.dyn - type offset addend section with respect to - R_X86_64_RELATIVE 0x200e60 2100832 .rela.dyn - R_X86_64_RELATIVE 0x200e68 2100296 .rela.dyn - R_X86_64_GLOB_DAT 0x200de8 0 .rela.dyn __gmon_start__ - R_X86_64_GLOB_DAT 0x200df0 0 .rela.dyn _Jv_RegisterClasses - R_X86_64_GLOB_DAT 0x200df8 0 .rela.dyn __cxa_finalize - -Relocation Section: .rela.plt - type offset addend section with respect to - R_X86_64_JUMP_SLOT 0x200e18 0 .rela.plt printf - R_X86_64_JUMP_SLOT 0x200e20 0 .rela.plt puts - R_X86_64_JUMP_SLOT 0x200e28 0 .rela.plt toupper - R_X86_64_JUMP_SLOT 0x200e30 0 .rela.plt cos - R_X86_64_JUMP_SLOT 0x200e38 0 .rela.plt cosh - R_X86_64_JUMP_SLOT 0x200e40 0 .rela.plt __cxa_finalize - R_X86_64_JUMP_SLOT 0x200e48 0 .rela.plt gets - R_X86_64_JUMP_SLOT 0x200e50 0 .rela.plt tolower - R_X86_64_JUMP_SLOT 0x200e58 0 .rela.plt acos diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.out deleted file mode 100644 index 72436b7a..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@s%test.so.out +++ /dev/null @@ -1,103 +0,0 @@ - -Symbol Table Section: .dynsym - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000670 0x000000000000 SECT LOCL D 0 .init - [2] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF printf - [3] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF __gmon_start__ - [4] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF _Jv_RegisterClasses - [5] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF puts - [6] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF toupper - [7] 0x00000000 0x000000000000 FUNC GLOB D 3 UNDEF cos - [8] 0x00000000 0x000000000000 FUNC GLOB D 3 UNDEF cosh - [9] 0x00000000 0x000000000000 FUNC WEAK D 2 UNDEF __cxa_finalize - [10] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF gets - [11] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF tolower - [12] 0x00000000 0x000000000000 FUNC GLOB D 3 UNDEF acos - [13] 0x00200e78 0x000000000000 NOTY GLOB D 1 ABS _end - [14] 0x00200e70 0x000000000000 NOTY GLOB D 1 ABS _edata - [15] 0x00000802 0x000000000012 FUNC GLOB D 1 .text add4 - [16] 0x00000828 0x00000000021a FUNC GLOB D 1 .text mathstring - [17] 0x000007de 0x000000000012 FUNC GLOB D 1 .text add2 - [18] 0x000007cc 0x000000000012 FUNC GLOB D 1 .text add - [19] 0x00200e70 0x000000000000 NOTY GLOB D 1 ABS __bss_start - [20] 0x00000670 0x000000000000 FUNC GLOB D 1 .init _init - [21] 0x00000a88 0x000000000000 FUNC GLOB D 1 .fini _fini - [22] 0x000007f0 0x000000000012 FUNC GLOB D 1 .text add3 - [23] 0x00000814 0x000000000014 FUNC GLOB D 1 .text sub - -Symbol Table Section: .symtab - index value size type bind oth ver shndx name - [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF - [1] 0x00000158 0x000000000000 SECT LOCL D 0 .gnu.hash - [2] 0x000001a8 0x000000000000 SECT LOCL D 0 .dynsym - [3] 0x000003e8 0x000000000000 SECT LOCL D 0 .dynstr - [4] 0x000004ac 0x000000000000 SECT LOCL D 0 .gnu.versio - [5] 0x000004e0 0x000000000000 SECT LOCL D 0 .gnu.versio - [6] 0x00000520 0x000000000000 SECT LOCL D 0 .rela.dyn - [7] 0x00000598 0x000000000000 SECT LOCL D 0 .rela.plt - [8] 0x00000670 0x000000000000 SECT LOCL D 0 .init - [9] 0x00000688 0x000000000000 SECT LOCL D 0 .plt - [10] 0x00000730 0x000000000000 SECT LOCL D 0 .text - [11] 0x00000a88 0x000000000000 SECT LOCL D 0 .fini - [12] 0x00000a98 0x000000000000 SECT LOCL D 0 .rodata - [13] 0x00000b10 0x000000000000 SECT LOCL D 0 .eh_frame_h - [14] 0x00000b50 0x000000000000 SECT LOCL D 0 .eh_frame - [15] 0x00200c30 0x000000000000 SECT LOCL D 0 .ctors - [16] 0x00200c40 0x000000000000 SECT LOCL D 0 .dtors - [17] 0x00200c50 0x000000000000 SECT LOCL D 0 .jcr - [18] 0x00200c58 0x000000000000 SECT LOCL D 0 .dynamic - [19] 0x00200de8 0x000000000000 SECT LOCL D 0 .got - [20] 0x00200e00 0x000000000000 SECT LOCL D 0 .got.plt - [21] 0x00200e60 0x000000000000 SECT LOCL D 0 .data - [22] 0x00200e70 0x000000000000 SECT LOCL D 0 .bss - [23] 0x00000000 0x000000000000 SECT LOCL D 0 .comment - [24] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_aran - [25] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_info - [26] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_abbr - [27] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_line - [28] 0x00000000 0x000000000000 FILE LOCL D 0 ABS initfini.c - [29] 0x00000000 0x000000000000 FILE LOCL D 0 ABS /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crti.S - [30] 0x00000730 0x000000000000 FUNC LOCL D 0 .text call_gmon_start - [31] 0x00000000 0x000000000000 FILE LOCL D 0 ABS crtstuff.c - [32] 0x00200c30 0x000000000000 OBJT LOCL D 0 .ctors __CTOR_LIST__ - [33] 0x00200c40 0x000000000000 OBJT LOCL D 0 .dtors __DTOR_LIST__ - [34] 0x00200c50 0x000000000000 OBJT LOCL D 0 .jcr __JCR_LIST__ - [35] 0x00200e70 0x000000000001 OBJT LOCL D 0 .bss completed.5959 - [36] 0x00200e68 0x000000000000 OBJT LOCL D 0 .data p.5957 - [37] 0x00000750 0x000000000000 FUNC LOCL D 0 .text __do_global_dtors_aux - [38] 0x000007a0 0x000000000000 FUNC LOCL D 0 .text frame_dummy - [39] 0x00000000 0x000000000000 FILE LOCL D 0 ABS crtstuff.c - [40] 0x00200c38 0x000000000000 OBJT LOCL D 0 .ctors __CTOR_END__ - [41] 0x00200c48 0x000000000000 OBJT LOCL D 0 .dtors __DTOR_END__ - [42] 0x00000c28 0x000000000000 OBJT LOCL D 0 .eh_frame __FRAME_END__ - [43] 0x00200c50 0x000000000000 OBJT LOCL D 0 .jcr __JCR_END__ - [44] 0x00000a50 0x000000000000 FUNC LOCL D 0 .text __do_global_ctors_aux - [45] 0x00000000 0x000000000000 FILE LOCL D 0 ABS initfini.c - [46] 0x00000000 0x000000000000 FILE LOCL D 0 ABS /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crtn.S - [47] 0x00000000 0x000000000000 FILE LOCL D 0 ABS test2.c - [48] 0x00200e00 0x000000000000 OBJT LOCL H 0 ABS _GLOBAL_OFFSET_TABLE_ - [49] 0x00200e60 0x000000000000 OBJT LOCL H 0 .data __dso_handle - [50] 0x00200c58 0x000000000000 OBJT LOCL H 0 ABS _DYNAMIC - [51] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF printf@@GLIBC_2.2.5 - [52] 0x00000828 0x00000000021a FUNC GLOB D 0 .text mathstring - [53] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF __gmon_start__ - [54] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF _Jv_RegisterClasses - [55] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF puts@@GLIBC_2.2.5 - [56] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF toupper@@GLIBC_2.2.5 - [57] 0x00000a88 0x000000000000 FUNC GLOB D 0 .fini _fini - [58] 0x000007f0 0x000000000012 FUNC GLOB D 0 .text add3 - [59] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF cos@@GLIBC_2.2.5 - [60] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF cosh@@GLIBC_2.2.5 - [61] 0x00000000 0x000000000000 FUNC WEAK D 0 UNDEF __cxa_finalize@@GLIBC_2.2.5 - [62] 0x000007de 0x000000000012 FUNC GLOB D 0 .text add2 - [63] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF gets@@GLIBC_2.2.5 - [64] 0x000007cc 0x000000000012 FUNC GLOB D 0 .text add - [65] 0x00200e70 0x000000000000 NOTY GLOB D 0 ABS __bss_start - [66] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF tolower@@GLIBC_2.2.5 - [67] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF acos@@GLIBC_2.2.5 - [68] 0x00200e78 0x000000000000 NOTY GLOB D 0 ABS _end - [69] 0x00200e70 0x000000000000 NOTY GLOB D 0 ABS _edata - [70] 0x00000814 0x000000000014 FUNC GLOB D 0 .text sub - [71] 0x00000670 0x000000000000 FUNC GLOB D 0 .init _init - [72] 0x00000802 0x000000000012 FUNC GLOB D 0 .text add4 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.out deleted file mode 100644 index d987203c..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@S@v%test.so.out +++ /dev/null @@ -1,5 +0,0 @@ - -Version Needed Section: .gnu.version_r - file version - libm.so.6 GLIBC_2.2.5 - libc.so.6 GLIBC_2.2.5 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.out deleted file mode 100644 index 920ab151..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@c%test.so.out +++ /dev/null @@ -1,374 +0,0 @@ - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .gnu.hash - sh_type: SHT_GNU_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x158 - sh_offset: 344 - sh_size: 80 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x1a8 - sh_offset: 424 - sh_size: 576 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x3e8 - sh_offset: 1000 - sh_size: 196 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x4ac - sh_offset: 1196 - sh_size: 48 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x4e0 - sh_offset: 1248 - sh_size: 64 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x520 - sh_offset: 1312 - sh_size: 120 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x598 - sh_offset: 1432 - sh_size: 216 - sh_link: 2 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x670 - sh_offset: 1648 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 9 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x688 - sh_offset: 1672 - sh_size: 160 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 10 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x730 - sh_offset: 1840 - sh_size: 856 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 11 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0xa88 - sh_offset: 2696 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 12 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xa98 - sh_offset: 2712 - sh_size: 120 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 13 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb10 - sh_offset: 2832 - sh_size: 60 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb50 - sh_offset: 2896 - sh_size: 220 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 15 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c30 - sh_offset: 3120 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 16 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c40 - sh_offset: 3136 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c50 - sh_offset: 3152 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 18 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c58 - sh_offset: 3160 - sh_size: 400 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 19 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200de8 - sh_offset: 3560 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 20 - sh_name: .got.plt - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e00 - sh_offset: 3584 - sh_size: 96 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 21 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e60 - sh_offset: 3680 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e70 - sh_offset: 3696 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 3696 - sh_size: 290 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .debug_aranges - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4000 - sh_size: 144 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 25 - sh_name: .debug_info - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4144 - sh_size: 420 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 26 - sh_name: .debug_abbrev - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4564 - sh_size: 32 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 27 - sh_name: .debug_line - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4596 - sh_size: 352 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 28 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 4948 - sh_size: 266 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 29 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 7200 - sh_size: 1752 - sh_link: 30 - sh_info: 51 - sh_addralign: 8 - sh_entsize: 24 - -entry: 30 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 8952 - sh_size: 732 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.out deleted file mode 100644 index 95a7d074..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@c@p@n%test.so.out +++ /dev/null @@ -1,426 +0,0 @@ - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 3116 - p_memsz: 3116 - p_flags: PF_X|PF_R - p_align: 2097152 - -entry: 1 - p_type: PT_LOAD - p_offset: 3120 - p_vaddr: 0x200c30 - p_paddr: 0x200c30 - p_filesz: 576 - p_memsz: 584 - p_flags: PF_W|PF_R - p_align: 2097152 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 3160 - p_vaddr: 0x200c58 - p_paddr: 0x200c58 - p_filesz: 400 - p_memsz: 400 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 2832 - p_vaddr: 0xb10 - p_paddr: 0xb10 - p_filesz: 60 - p_memsz: 60 - p_flags: PF_R - p_align: 4 - -entry: 4 - p_type: PT_GNU_STACK - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 0 - p_memsz: 0 - p_flags: PF_W|PF_R - p_align: 8 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .gnu.hash - sh_type: SHT_GNU_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x158 - sh_offset: 344 - sh_size: 80 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x1a8 - sh_offset: 424 - sh_size: 576 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x3e8 - sh_offset: 1000 - sh_size: 196 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x4ac - sh_offset: 1196 - sh_size: 48 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x4e0 - sh_offset: 1248 - sh_size: 64 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x520 - sh_offset: 1312 - sh_size: 120 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x598 - sh_offset: 1432 - sh_size: 216 - sh_link: 2 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x670 - sh_offset: 1648 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 9 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x688 - sh_offset: 1672 - sh_size: 160 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 10 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x730 - sh_offset: 1840 - sh_size: 856 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 11 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0xa88 - sh_offset: 2696 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 12 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xa98 - sh_offset: 2712 - sh_size: 120 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 13 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb10 - sh_offset: 2832 - sh_size: 60 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb50 - sh_offset: 2896 - sh_size: 220 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 15 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c30 - sh_offset: 3120 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 16 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c40 - sh_offset: 3136 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c50 - sh_offset: 3152 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 18 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c58 - sh_offset: 3160 - sh_size: 400 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 19 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200de8 - sh_offset: 3560 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 20 - sh_name: .got.plt - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e00 - sh_offset: 3584 - sh_size: 96 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 21 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e60 - sh_offset: 3680 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e70 - sh_offset: 3696 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 3696 - sh_size: 290 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .debug_aranges - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4000 - sh_size: 144 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 25 - sh_name: .debug_info - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4144 - sh_size: 420 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 26 - sh_name: .debug_abbrev - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4564 - sh_size: 32 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 27 - sh_name: .debug_line - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4596 - sh_size: 352 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 28 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 4948 - sh_size: 266 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 29 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 7200 - sh_size: 1752 - sh_link: 30 - sh_info: 51 - sh_addralign: 8 - sh_entsize: 24 - -entry: 30 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 8952 - sh_size: 732 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.out deleted file mode 100644 index a8c805b0..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@c@s%test.so.out +++ /dev/null @@ -1,1057 +0,0 @@ - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .gnu.hash - sh_type: SHT_GNU_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x158 - sh_offset: 344 - sh_size: 80 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x1a8 - sh_offset: 424 - sh_size: 576 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x3e8 - sh_offset: 1000 - sh_size: 196 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x4ac - sh_offset: 1196 - sh_size: 48 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x4e0 - sh_offset: 1248 - sh_size: 64 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x520 - sh_offset: 1312 - sh_size: 120 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x598 - sh_offset: 1432 - sh_size: 216 - sh_link: 2 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x670 - sh_offset: 1648 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 9 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x688 - sh_offset: 1672 - sh_size: 160 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 10 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x730 - sh_offset: 1840 - sh_size: 856 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 11 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0xa88 - sh_offset: 2696 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 12 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xa98 - sh_offset: 2712 - sh_size: 120 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 13 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb10 - sh_offset: 2832 - sh_size: 60 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb50 - sh_offset: 2896 - sh_size: 220 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 15 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c30 - sh_offset: 3120 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 16 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c40 - sh_offset: 3136 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c50 - sh_offset: 3152 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 18 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c58 - sh_offset: 3160 - sh_size: 400 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 19 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200de8 - sh_offset: 3560 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 20 - sh_name: .got.plt - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e00 - sh_offset: 3584 - sh_size: 96 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 21 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e60 - sh_offset: 3680 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e70 - sh_offset: 3696 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 3696 - sh_size: 290 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .debug_aranges - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4000 - sh_size: 144 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 25 - sh_name: .debug_info - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4144 - sh_size: 420 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 26 - sh_name: .debug_abbrev - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4564 - sh_size: 32 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 27 - sh_name: .debug_line - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4596 - sh_size: 352 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 28 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 4948 - sh_size: 266 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 29 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 7200 - sh_size: 1752 - sh_link: 30 - sh_info: 51 - sh_addralign: 8 - sh_entsize: 24 - -entry: 30 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 8952 - sh_size: 732 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -symbol table (.dynsym): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: - st_value: 0x670 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 2 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 3 - st_name: __gmon_start__ - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 4 - st_name: _Jv_RegisterClasses - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 5 - st_name: puts - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 6 - st_name: toupper - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 7 - st_name: cos - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 8 - st_name: cosh - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 9 - st_name: __cxa_finalize - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_WEAK - st_shndx: 0 - -entry: 10 - st_name: gets - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 11 - st_name: tolower - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 12 - st_name: acos - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 13 - st_name: _end - st_value: 0x200e78 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 14 - st_name: _edata - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 15 - st_name: add4 - st_value: 0x802 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 16 - st_name: mathstring - st_value: 0x828 - st_size: 538 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 17 - st_name: add2 - st_value: 0x7de - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 18 - st_name: add - st_value: 0x7cc - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 19 - st_name: __bss_start - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 20 - st_name: _init - st_value: 0x670 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 8 - -entry: 21 - st_name: _fini - st_value: 0xa88 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 22 - st_name: add3 - st_value: 0x7f0 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 23 - st_name: sub - st_value: 0x814 - st_size: 20 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: - st_value: 0x158 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 2 - st_name: - st_value: 0x1a8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 2 - -entry: 3 - st_name: - st_value: 0x3e8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0x4ac - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0x4e0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0x520 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: - st_value: 0x598 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 8 - st_name: - st_value: 0x670 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: - st_value: 0x688 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 10 - st_name: - st_value: 0x730 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 11 - st_name: - st_value: 0xa88 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 11 - -entry: 12 - st_name: - st_value: 0xa98 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 12 - -entry: 13 - st_name: - st_value: 0xb10 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 13 - -entry: 14 - st_name: - st_value: 0xb50 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 14 - -entry: 15 - st_name: - st_value: 0x200c30 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 15 - -entry: 16 - st_name: - st_value: 0x200c40 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 16 - -entry: 17 - st_name: - st_value: 0x200c50 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 17 - -entry: 18 - st_name: - st_value: 0x200c58 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 18 - -entry: 19 - st_name: - st_value: 0x200de8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 19 - -entry: 20 - st_name: - st_value: 0x200e00 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 20 - -entry: 21 - st_name: - st_value: 0x200e60 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 21 - -entry: 22 - st_name: - st_value: 0x200e70 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 22 - -entry: 23 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 23 - -entry: 24 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 24 - -entry: 25 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 25 - -entry: 26 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 26 - -entry: 27 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 27 - -entry: 28 - st_name: initfini.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 29 - st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crti.S - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 30 - st_name: call_gmon_start - st_value: 0x730 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 31 - st_name: crtstuff.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 32 - st_name: __CTOR_LIST__ - st_value: 0x200c30 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 15 - -entry: 33 - st_name: __DTOR_LIST__ - st_value: 0x200c40 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 16 - -entry: 34 - st_name: __JCR_LIST__ - st_value: 0x200c50 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 17 - -entry: 35 - st_name: completed.5959 - st_value: 0x200e70 - st_size: 1 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 22 - -entry: 36 - st_name: p.5957 - st_value: 0x200e68 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 21 - -entry: 37 - st_name: __do_global_dtors_aux - st_value: 0x750 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 38 - st_name: frame_dummy - st_value: 0x7a0 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 39 - st_name: crtstuff.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 40 - st_name: __CTOR_END__ - st_value: 0x200c38 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 15 - -entry: 41 - st_name: __DTOR_END__ - st_value: 0x200c48 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 16 - -entry: 42 - st_name: __FRAME_END__ - st_value: 0xc28 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 14 - -entry: 43 - st_name: __JCR_END__ - st_value: 0x200c50 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 17 - -entry: 44 - st_name: __do_global_ctors_aux - st_value: 0xa50 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 45 - st_name: initfini.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 46 - st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crtn.S - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 47 - st_name: test2.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 48 - st_name: _GLOBAL_OFFSET_TABLE_ - st_value: 0x200e00 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 65521 - -entry: 49 - st_name: __dso_handle - st_value: 0x200e60 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 21 - -entry: 50 - st_name: _DYNAMIC - st_value: 0x200c58 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 65521 - -entry: 51 - st_name: printf@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 52 - st_name: mathstring - st_value: 0x828 - st_size: 538 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 53 - st_name: __gmon_start__ - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 54 - st_name: _Jv_RegisterClasses - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 55 - st_name: puts@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 56 - st_name: toupper@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 57 - st_name: _fini - st_value: 0xa88 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 58 - st_name: add3 - st_value: 0x7f0 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 59 - st_name: cos@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 60 - st_name: cosh@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 61 - st_name: __cxa_finalize@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_WEAK - st_shndx: 0 - -entry: 62 - st_name: add2 - st_value: 0x7de - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 63 - st_name: gets@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 64 - st_name: add - st_value: 0x7cc - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 65 - st_name: __bss_start - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 66 - st_name: tolower@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 67 - st_name: acos@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 68 - st_name: _end - st_value: 0x200e78 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 69 - st_name: _edata - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 70 - st_name: sub - st_value: 0x814 - st_size: 20 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 71 - st_name: _init - st_value: 0x670 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 8 - -entry: 72 - st_name: add4 - st_value: 0x802 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.out deleted file mode 100644 index 8ba63bf9..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@d%test.so.out +++ /dev/null @@ -1,97 +0,0 @@ - -dynamic: - -entry: 0 - d_tag: DT_NEEDED - d_val: libm.so.6 - -entry: 1 - d_tag: DT_NEEDED - d_val: libc.so.6 - -entry: 2 - d_tag: DT_INIT - d_ptr: 0x670 - -entry: 3 - d_tag: DT_FINI - d_ptr: 0xa88 - -entry: 4 - d_tag: DT_GNU_HASH - d_ptr: 0x158 - -entry: 5 - d_tag: DT_STRTAB - d_ptr: 0x3e8 - -entry: 6 - d_tag: DT_SYMTAB - d_ptr: 0x1a8 - -entry: 7 - d_tag: DT_STRSZ - d_val: 196 - -entry: 8 - d_tag: DT_SYMENT - d_val: 24 - -entry: 9 - d_tag: DT_PLTGOT - d_ptr: 0x200e00 - -entry: 10 - d_tag: DT_PLTRELSZ - d_val: 216 - -entry: 11 - d_tag: DT_PLTREL - d_val: 7 - -entry: 12 - d_tag: DT_JMPREL - d_ptr: 0x598 - -entry: 13 - d_tag: DT_RELA - d_val: 1312 - -entry: 14 - d_tag: DT_RELASZ - d_val: 120 - -entry: 15 - d_tag: DT_RELAENT - d_val: 24 - -entry: 16 - d_tag: DT_VERNEED - d_val: 1248 - -entry: 17 - d_tag: DT_VERNEEDNUM - d_val: 2 - -entry: 18 - d_tag: DT_GNU_VERSYM - d_val: 1196 - -entry: 19 - d_tag: DT_RELACOUNT - d_val: 2 - -entry: 20 - d_tag: DT_NULL - -entry: 21 - d_tag: DT_NULL - -entry: 22 - d_tag: DT_NULL - -entry: 23 - d_tag: DT_NULL - -entry: 24 - d_tag: DT_NULL diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.out deleted file mode 100644 index c3aef522..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@e%test.so.out +++ /dev/null @@ -1,17 +0,0 @@ - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_NONE - e_type: ET_DYN - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0x730 - e_phoff: 64 - e_shoff: 5216 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 56 - e_phnum: 5 - e_shentsize: 64 - e_shnum: 31 - e_shstrndx: 28 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.out deleted file mode 100644 index c3aef522..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@e@i%test.so.out +++ /dev/null @@ -1,17 +0,0 @@ - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_NONE - e_type: ET_DYN - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0x730 - e_phoff: 64 - e_shoff: 5216 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 56 - e_phnum: 5 - e_shentsize: 64 - e_shnum: 31 - e_shstrndx: 28 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.out deleted file mode 100644 index 437753a6..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@e@p@c%test.so.out +++ /dev/null @@ -1,443 +0,0 @@ - -elf header: - - e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_NONE - e_type: ET_DYN - e_machine: EM_X86_64 - e_version: EV_CURRENT - e_entry: 0x730 - e_phoff: 64 - e_shoff: 5216 - e_flags: 0 - e_ehsize: 64 - e_phentsize: 56 - e_phnum: 5 - e_shentsize: 64 - e_shnum: 31 - e_shstrndx: 28 - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 3116 - p_memsz: 3116 - p_flags: PF_X|PF_R - p_align: 2097152 - -entry: 1 - p_type: PT_LOAD - p_offset: 3120 - p_vaddr: 0x200c30 - p_paddr: 0x200c30 - p_filesz: 576 - p_memsz: 584 - p_flags: PF_W|PF_R - p_align: 2097152 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 3160 - p_vaddr: 0x200c58 - p_paddr: 0x200c58 - p_filesz: 400 - p_memsz: 400 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 2832 - p_vaddr: 0xb10 - p_paddr: 0xb10 - p_filesz: 60 - p_memsz: 60 - p_flags: PF_R - p_align: 4 - -entry: 4 - p_type: PT_GNU_STACK - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 0 - p_memsz: 0 - p_flags: PF_W|PF_R - p_align: 8 - -section header: - -entry: 0 - sh_name: - sh_type: SHT_NULL - sh_flags: - sh_addr: 0 - sh_offset: 0 - sh_size: 0 - sh_link: 0 - sh_info: 0 - sh_addralign: 0 - sh_entsize: 0 - -entry: 1 - sh_name: .gnu.hash - sh_type: SHT_GNU_HASH - sh_flags: SHF_ALLOC - sh_addr: 0x158 - sh_offset: 344 - sh_size: 80 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 2 - sh_name: .dynsym - sh_type: SHT_DYNSYM - sh_flags: SHF_ALLOC - sh_addr: 0x1a8 - sh_offset: 424 - sh_size: 576 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 24 - -entry: 3 - sh_name: .dynstr - sh_type: SHT_STRTAB - sh_flags: SHF_ALLOC - sh_addr: 0x3e8 - sh_offset: 1000 - sh_size: 196 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 4 - sh_name: .gnu.version - sh_type: SHT_SUNW(GNU)_versym - sh_flags: SHF_ALLOC - sh_addr: 0x4ac - sh_offset: 1196 - sh_size: 48 - sh_link: 2 - sh_info: 0 - sh_addralign: 2 - sh_entsize: 2 - -entry: 5 - sh_name: .gnu.version_r - sh_type: SHT_SUNW(GNU)_verneed - sh_flags: SHF_ALLOC - sh_addr: 0x4e0 - sh_offset: 1248 - sh_size: 64 - sh_link: 3 - sh_info: 2 - sh_addralign: 8 - sh_entsize: 0 - -entry: 6 - sh_name: .rela.dyn - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x520 - sh_offset: 1312 - sh_size: 120 - sh_link: 2 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 24 - -entry: 7 - sh_name: .rela.plt - sh_type: SHT_RELA - sh_flags: SHF_ALLOC - sh_addr: 0x598 - sh_offset: 1432 - sh_size: 216 - sh_link: 2 - sh_info: 9 - sh_addralign: 8 - sh_entsize: 24 - -entry: 8 - sh_name: .init - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x670 - sh_offset: 1648 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 9 - sh_name: .plt - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x688 - sh_offset: 1672 - sh_size: 160 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 16 - -entry: 10 - sh_name: .text - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0x730 - sh_offset: 1840 - sh_size: 856 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 11 - sh_name: .fini - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC|SHF_EXECINSTR - sh_addr: 0xa88 - sh_offset: 2696 - sh_size: 14 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 12 - sh_name: .rodata - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xa98 - sh_offset: 2712 - sh_size: 120 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 13 - sh_name: .eh_frame_hdr - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb10 - sh_offset: 2832 - sh_size: 60 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 14 - sh_name: .eh_frame - sh_type: SHT_PROGBITS - sh_flags: SHF_ALLOC - sh_addr: 0xb50 - sh_offset: 2896 - sh_size: 220 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 15 - sh_name: .ctors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c30 - sh_offset: 3120 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 16 - sh_name: .dtors - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c40 - sh_offset: 3136 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 17 - sh_name: .jcr - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c50 - sh_offset: 3152 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 18 - sh_name: .dynamic - sh_type: SHT_DYNAMIC - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200c58 - sh_offset: 3160 - sh_size: 400 - sh_link: 3 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 16 - -entry: 19 - sh_name: .got - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200de8 - sh_offset: 3560 - sh_size: 24 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 20 - sh_name: .got.plt - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e00 - sh_offset: 3584 - sh_size: 96 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 8 - -entry: 21 - sh_name: .data - sh_type: SHT_PROGBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e60 - sh_offset: 3680 - sh_size: 16 - sh_link: 0 - sh_info: 0 - sh_addralign: 8 - sh_entsize: 0 - -entry: 22 - sh_name: .bss - sh_type: SHT_NOBITS - sh_flags: SHF_WRITE|SHF_ALLOC - sh_addr: 0x200e70 - sh_offset: 3696 - sh_size: 8 - sh_link: 0 - sh_info: 0 - sh_addralign: 4 - sh_entsize: 0 - -entry: 23 - sh_name: .comment - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 3696 - sh_size: 290 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 24 - sh_name: .debug_aranges - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4000 - sh_size: 144 - sh_link: 0 - sh_info: 0 - sh_addralign: 16 - sh_entsize: 0 - -entry: 25 - sh_name: .debug_info - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4144 - sh_size: 420 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 26 - sh_name: .debug_abbrev - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4564 - sh_size: 32 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 27 - sh_name: .debug_line - sh_type: SHT_PROGBITS - sh_flags: - sh_addr: 0 - sh_offset: 4596 - sh_size: 352 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 28 - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 4948 - sh_size: 266 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 - -entry: 29 - sh_name: .symtab - sh_type: SHT_SYMTAB - sh_flags: - sh_addr: 0 - sh_offset: 7200 - sh_size: 1752 - sh_link: 30 - sh_info: 51 - sh_addralign: 8 - sh_entsize: 24 - -entry: 30 - sh_name: .strtab - sh_type: SHT_STRTAB - sh_flags: - sh_addr: 0 - sh_offset: 8952 - sh_size: 732 - sh_link: 0 - sh_info: 0 - sh_addralign: 1 - sh_entsize: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.out deleted file mode 100644 index 25f62f37..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@h%test.so.out +++ /dev/null @@ -1,51 +0,0 @@ - -gnu hash table (.gnu.hash): - -nbucket: 3 -symndx: 13 -maskwords: 1 -shift2: 6 -nchain: 11 - -bucket[0]: - 13 - -bucket[1]: - 16 - -bucket[2]: - 21 - -chain[0]: - 2090001338 - -chain[1]: - 3973399874 - -chain[2]: - 2090071747 - -chain[3]: - 2038844230 - -chain[4]: - 2090071744 - -chain[5]: - 193486030 - -chain[6]: - 475558360 - -chain[7]: - 250711481 - -chain[8]: - 250598378 - -chain[9]: - 2090071744 - -chain[10]: - 193506191 - diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@n%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@n%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@n%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@n%test.so.out deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.out deleted file mode 100644 index 0ae9b8e9..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@p%test.so.out +++ /dev/null @@ -1,52 +0,0 @@ - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 3116 - p_memsz: 3116 - p_flags: PF_X|PF_R - p_align: 2097152 - -entry: 1 - p_type: PT_LOAD - p_offset: 3120 - p_vaddr: 0x200c30 - p_paddr: 0x200c30 - p_filesz: 576 - p_memsz: 584 - p_flags: PF_W|PF_R - p_align: 2097152 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 3160 - p_vaddr: 0x200c58 - p_paddr: 0x200c58 - p_filesz: 400 - p_memsz: 400 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 2832 - p_vaddr: 0xb10 - p_paddr: 0xb10 - p_filesz: 60 - p_memsz: 60 - p_flags: PF_R - p_align: 4 - -entry: 4 - p_type: PT_GNU_STACK - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 0 - p_memsz: 0 - p_flags: PF_W|PF_R - p_align: 8 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.out deleted file mode 100644 index c415e6b8..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@p@s%test.so.out +++ /dev/null @@ -1,735 +0,0 @@ - -program header: - -entry: 0 - p_type: PT_LOAD - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 3116 - p_memsz: 3116 - p_flags: PF_X|PF_R - p_align: 2097152 - -entry: 1 - p_type: PT_LOAD - p_offset: 3120 - p_vaddr: 0x200c30 - p_paddr: 0x200c30 - p_filesz: 576 - p_memsz: 584 - p_flags: PF_W|PF_R - p_align: 2097152 - -entry: 2 - p_type: PT_DYNAMIC - p_offset: 3160 - p_vaddr: 0x200c58 - p_paddr: 0x200c58 - p_filesz: 400 - p_memsz: 400 - p_flags: PF_W|PF_R - p_align: 8 - -entry: 3 - p_type: PT_GNU_EH_FRAME - p_offset: 2832 - p_vaddr: 0xb10 - p_paddr: 0xb10 - p_filesz: 60 - p_memsz: 60 - p_flags: PF_R - p_align: 4 - -entry: 4 - p_type: PT_GNU_STACK - p_offset: 0 - p_vaddr: 0 - p_paddr: 0 - p_filesz: 0 - p_memsz: 0 - p_flags: PF_W|PF_R - p_align: 8 - -symbol table (.dynsym): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: - st_value: 0x670 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 2 - st_name: printf - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 3 - st_name: __gmon_start__ - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 4 - st_name: _Jv_RegisterClasses - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 5 - st_name: puts - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 6 - st_name: toupper - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 7 - st_name: cos - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 8 - st_name: cosh - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 9 - st_name: __cxa_finalize - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_WEAK - st_shndx: 0 - -entry: 10 - st_name: gets - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 11 - st_name: tolower - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 12 - st_name: acos - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 13 - st_name: _end - st_value: 0x200e78 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 14 - st_name: _edata - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 15 - st_name: add4 - st_value: 0x802 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 16 - st_name: mathstring - st_value: 0x828 - st_size: 538 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 17 - st_name: add2 - st_value: 0x7de - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 18 - st_name: add - st_value: 0x7cc - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 19 - st_name: __bss_start - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 20 - st_name: _init - st_value: 0x670 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 8 - -entry: 21 - st_name: _fini - st_value: 0xa88 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 22 - st_name: add3 - st_value: 0x7f0 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 23 - st_name: sub - st_value: 0x814 - st_size: 20 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -symbol table (.symtab): - -entry: 0 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_LOCAL - st_shndx: 0 - -entry: 1 - st_name: - st_value: 0x158 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 1 - -entry: 2 - st_name: - st_value: 0x1a8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 2 - -entry: 3 - st_name: - st_value: 0x3e8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 3 - -entry: 4 - st_name: - st_value: 0x4ac - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 4 - -entry: 5 - st_name: - st_value: 0x4e0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 5 - -entry: 6 - st_name: - st_value: 0x520 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 6 - -entry: 7 - st_name: - st_value: 0x598 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 7 - -entry: 8 - st_name: - st_value: 0x670 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 8 - -entry: 9 - st_name: - st_value: 0x688 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 9 - -entry: 10 - st_name: - st_value: 0x730 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 10 - -entry: 11 - st_name: - st_value: 0xa88 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 11 - -entry: 12 - st_name: - st_value: 0xa98 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 12 - -entry: 13 - st_name: - st_value: 0xb10 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 13 - -entry: 14 - st_name: - st_value: 0xb50 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 14 - -entry: 15 - st_name: - st_value: 0x200c30 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 15 - -entry: 16 - st_name: - st_value: 0x200c40 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 16 - -entry: 17 - st_name: - st_value: 0x200c50 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 17 - -entry: 18 - st_name: - st_value: 0x200c58 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 18 - -entry: 19 - st_name: - st_value: 0x200de8 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 19 - -entry: 20 - st_name: - st_value: 0x200e00 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 20 - -entry: 21 - st_name: - st_value: 0x200e60 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 21 - -entry: 22 - st_name: - st_value: 0x200e70 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 22 - -entry: 23 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 23 - -entry: 24 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 24 - -entry: 25 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 25 - -entry: 26 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 26 - -entry: 27 - st_name: - st_value: 0 - st_size: 0 - st_info: STT_SECTION STB_LOCAL - st_shndx: 27 - -entry: 28 - st_name: initfini.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 29 - st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crti.S - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 30 - st_name: call_gmon_start - st_value: 0x730 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 31 - st_name: crtstuff.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 32 - st_name: __CTOR_LIST__ - st_value: 0x200c30 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 15 - -entry: 33 - st_name: __DTOR_LIST__ - st_value: 0x200c40 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 16 - -entry: 34 - st_name: __JCR_LIST__ - st_value: 0x200c50 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 17 - -entry: 35 - st_name: completed.5959 - st_value: 0x200e70 - st_size: 1 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 22 - -entry: 36 - st_name: p.5957 - st_value: 0x200e68 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 21 - -entry: 37 - st_name: __do_global_dtors_aux - st_value: 0x750 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 38 - st_name: frame_dummy - st_value: 0x7a0 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 39 - st_name: crtstuff.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 40 - st_name: __CTOR_END__ - st_value: 0x200c38 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 15 - -entry: 41 - st_name: __DTOR_END__ - st_value: 0x200c48 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 16 - -entry: 42 - st_name: __FRAME_END__ - st_value: 0xc28 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 14 - -entry: 43 - st_name: __JCR_END__ - st_value: 0x200c50 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 17 - -entry: 44 - st_name: __do_global_ctors_aux - st_value: 0xa50 - st_size: 0 - st_info: STT_FUNC STB_LOCAL - st_shndx: 10 - -entry: 45 - st_name: initfini.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 46 - st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crtn.S - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 47 - st_name: test2.c - st_value: 0 - st_size: 0 - st_info: STT_FILE STB_LOCAL - st_shndx: 65521 - -entry: 48 - st_name: _GLOBAL_OFFSET_TABLE_ - st_value: 0x200e00 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 65521 - -entry: 49 - st_name: __dso_handle - st_value: 0x200e60 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 21 - -entry: 50 - st_name: _DYNAMIC - st_value: 0x200c58 - st_size: 0 - st_info: STT_OBJECT STB_LOCAL - st_shndx: 65521 - -entry: 51 - st_name: printf@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 52 - st_name: mathstring - st_value: 0x828 - st_size: 538 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 53 - st_name: __gmon_start__ - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 54 - st_name: _Jv_RegisterClasses - st_value: 0 - st_size: 0 - st_info: STT_NOTYPE STB_WEAK - st_shndx: 0 - -entry: 55 - st_name: puts@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 56 - st_name: toupper@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 57 - st_name: _fini - st_value: 0xa88 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 11 - -entry: 58 - st_name: add3 - st_value: 0x7f0 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 59 - st_name: cos@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 60 - st_name: cosh@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 61 - st_name: __cxa_finalize@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_WEAK - st_shndx: 0 - -entry: 62 - st_name: add2 - st_value: 0x7de - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 63 - st_name: gets@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 64 - st_name: add - st_value: 0x7cc - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 65 - st_name: __bss_start - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 66 - st_name: tolower@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 67 - st_name: acos@@GLIBC_2.2.5 - st_value: 0 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 0 - -entry: 68 - st_name: _end - st_value: 0x200e78 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 69 - st_name: _edata - st_value: 0x200e70 - st_size: 0 - st_info: STT_NOTYPE STB_GLOBAL - st_shndx: 65521 - -entry: 70 - st_name: sub - st_value: 0x814 - st_size: 20 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 - -entry: 71 - st_name: _init - st_value: 0x670 - st_size: 0 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 8 - -entry: 72 - st_name: add4 - st_value: 0x802 - st_size: 18 - st_info: STT_FUNC STB_GLOBAL - st_shndx: 10 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.err b/contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.err deleted file mode 100644 index e69de29b..00000000 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.out b/contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.out deleted file mode 100644 index c394e902..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/@r%test.so.out +++ /dev/null @@ -1,74 +0,0 @@ - -relocation with addend (.rela.dyn): - -entry: 0 - r_offset: 0x200e60 - r_info: 0x8 - r_addend: 2100832 - -entry: 1 - r_offset: 0x200e68 - r_info: 0x8 - r_addend: 2100296 - -entry: 2 - r_offset: 0x200de8 - r_info: 0x300000006 - r_addend: 0 - -entry: 3 - r_offset: 0x200df0 - r_info: 0x400000006 - r_addend: 0 - -entry: 4 - r_offset: 0x200df8 - r_info: 0x900000006 - r_addend: 0 - -relocation with addend (.rela.plt): - -entry: 0 - r_offset: 0x200e18 - r_info: 0x200000007 - r_addend: 0 - -entry: 1 - r_offset: 0x200e20 - r_info: 0x500000007 - r_addend: 0 - -entry: 2 - r_offset: 0x200e28 - r_info: 0x600000007 - r_addend: 0 - -entry: 3 - r_offset: 0x200e30 - r_info: 0x700000007 - r_addend: 0 - -entry: 4 - r_offset: 0x200e38 - r_info: 0x800000007 - r_addend: 0 - -entry: 5 - r_offset: 0x200e40 - r_info: 0x900000007 - r_addend: 0 - -entry: 6 - r_offset: 0x200e48 - r_info: 0xa00000007 - r_addend: 0 - -entry: 7 - r_offset: 0x200e50 - r_info: 0xb00000007 - r_addend: 0 - -entry: 8 - r_offset: 0x200e58 - r_info: 0xc00000007 - r_addend: 0 diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/tc b/contrib/elftoolchain/test/elfdump/ts/dso2/tc deleted file mode 100755 index c408773b..00000000 --- a/contrib/elftoolchain/test/elfdump/ts/dso2/tc +++ /dev/null @@ -1,156 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - run "@e%test.so" -} - -tp2() -{ - run "@p%test.so" -} - -tp3() -{ - run "@G%test.so" -} - -tp4() -{ - run "@n%test.so" -} - -tp5() -{ - run "@p@s%test.so" -} - -tp6() -{ - run "@c%test.so" -} - -tp7() -{ - run "@c@s%test.so" -} - -tp8() -{ - run "@c@p@n%test.so" -} - -tp9() -{ - run "@d%test.so" -} - -tp10() -{ - run "@e@i%test.so" -} - -tp11() -{ - run "@r%test.so" -} - -tp12() -{ - run "@h%test.so" -} - -tp13() -{ - run "@e@p@c%test.so" -} - -tp14() -{ - run "@S@e%test.so" -} - -tp15() -{ - run "@S@p%test.so" -} - -tp16() -{ - run "@S@G%test.so" -} - -tp17() -{ - run "@S@r%test.so" -} - -tp18() -{ - run "@S@d%test.so" -} - -tp19() -{ - run "@S@n%test.so" -} - -tp20() -{ - run "@S@c%test.so" -} - -tp21() -{ - run "@S@s%test.so" -} - -tp22() -{ - run "@S@k%test.so" -} - -tp23() -{ - run "@S@v%test.so" -} - -tp24() -{ - run "@S@h%test.so" -} - -tet_startup="" -tet_cleanup="cleanup" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic13 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" -ic8="tp8" -ic9="tp9" -ic10="tp10" -ic11="tp11" -ic12="tp12" -ic13="tp13" -ic14="tp14" -ic15="tp15" -ic16="tp16" -ic17="tp17" -ic18="tp18" -ic19="tp19" -ic20="tp20" -ic21="tp21" -ic22="tp22" -ic23="tp23" -ic24="tp24" - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/elfdump/ts/dso2/test.so b/contrib/elftoolchain/test/elfdump/ts/dso2/test.so deleted file mode 100644 index 993a16d1410f3a10ef8f8bea743c12b17fb62755..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9684 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 - - 4 - - - -Element 'ic' defines invocable component, in libdwarf test suite, one -invocable component can be invoked on only one test object (dt32-g1 in -this case). Element 'tp' defines a test purpose. A 'ic' can have -multiple 'tp' (only one in this case). Element 'vc' defines a -"variable check", which means verify varible's value against constant. -In this example, test purpose tp_dwarf_get_address_size will verify -that variable addr_size has value 4. - -When a test case is compiled nomarlly, during test case startup, the -test driver will parse the XML files and report to TET how many IC and -TP this test case have. When each TP is executed, test driver will -verify variable values according to the list of VC defined in that TP. - -When a test case is compiled with 'make TCGEN=yes', it will instead -link with SGI libdwarf and genearte XML files during TP execution. -These generated XML files can then be used directly to test this -libdwarf implementation. - -For example, to generate XML files for test case dwarf_next_cu_header: - -% cd /path/to/elftoolchain/test/libdwarf/ -# unsetenv TET_ROOT -% make clean && make TCGEN=yes -% cd ts/dwarf_next_cu_header -% setenv TET_ROOT /path/to/elftoolchain/test/tet -% env ICLIST=dt32-g1:dt64-g1:ec32-g1:ec64-g1:ld_symver.o-64-g1 ./tc_dwarf_next_cu_header - -(ICLIST defines a list of test objects on which the test case -generates. One gzipped XML file is generated for each test object.) diff --git a/contrib/elftoolchain/test/libdwarf/ts/bin/count-ic b/contrib/elftoolchain/test/libdwarf/ts/bin/count-ic deleted file mode 100755 index 814c7e44..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/bin/count-ic +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# This shell script generates ic_count.c which contains a single -# variable definition `ic_count'. Variable `ic_count' is assigned -# the number of IC (invocable components) in the directory `dir'. -# The script count IC number by simply counting the number -# of .xml.gz files contained in the `dir', based on the fact that -# one .xml.gz file defines exactly one IC. - -usage() -{ - echo "usage:" `basename $0` "dir" -} - - -if [ $# -ne 1 ]; then - usage - exit 1 -fi - -dir=$1 - -if [ ! -d ${dir} ]; then - echo "${dir} does not exist or is not a directory" - exit 1 -fi - -count=`ls ${dir}/*.xml.gz | wc -l | awk '{print $1}'` -output="${dir}/ic_count.c" - -exec > ${output} -echo " -/* WARNING GENERATED FILE */ - -int ic_count = ${count}; -" diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/die_traverse.c b/contrib/elftoolchain/test/libdwarf/ts/common/die_traverse.c deleted file mode 100644 index e898a19e..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/common/die_traverse.c +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "driver.h" - -static int die_cnt; - -/* - * DIE traverse function shared by test cases. - */ - -static void -_die_traverse_recursive(Dwarf_Debug dbg, Dwarf_Die die, - void (*die_callback)(Dwarf_Die die)) -{ - Dwarf_Die die0; - Dwarf_Off offset; - Dwarf_Half tag; - Dwarf_Error de; - const char *tagname; - int r; - - assert(dbg != NULL && die != NULL && die_callback != NULL); - - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - tagname = NULL; - if (dwarf_get_TAG_name(tag, &tagname) != DW_DLV_OK) { - tet_infoline("dwarf_get_TAG_name failed"); - result = TET_FAIL; - } - offset = 0; - if (dwarf_dieoffset(die, &offset, &de) != DW_DLV_OK) { - tet_printf("dwarf_dieoffset failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - tet_printf("DIE #%d (%s) [%#x]\n", die_cnt++, tagname, offset); - - die_callback(die); - - /* Search children. */ - r = dwarf_child(die, &die0, &de); - if (r == DW_DLV_ERROR) - tet_printf("%s: dwarf_child failed: %s", __func__, - dwarf_errmsg(de)); - else if (r == DW_DLV_OK) - _die_traverse_recursive(dbg, die0, die_callback); - - /* Search sibling. */ - r = dwarf_siblingof(dbg, die, &die0, &de); - if (r == DW_DLV_ERROR) - tet_printf("%s: dwarf_siblingof failed: %s", __func__, - dwarf_errmsg(de)); - else if (r == DW_DLV_OK) - _die_traverse_recursive(dbg, die0, die_callback); -} - -static void -_die_traverse(Dwarf_Debug dbg, void (*die_callback)(Dwarf_Die die)) -{ - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Unsigned cu_next_offset; - - assert(dbg != NULL && die_callback != NULL); - - die_cnt = 0; - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_siblingof(dbg, NULL, &die, &de) != DW_DLV_OK) - break; - _die_traverse_recursive(dbg, die, die_callback); - } -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/die_traverse2.c b/contrib/elftoolchain/test/libdwarf/ts/common/die_traverse2.c deleted file mode 100644 index 721b74e8..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/common/die_traverse2.c +++ /dev/null @@ -1,120 +0,0 @@ -/*- - * Copyright (c) 2010,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "driver.h" - -static int die_cnt; - -/* - * DIE traverse function shared by test cases. (another version with - * .debug_types support) - */ - -static void -_die_traverse_recursive2(Dwarf_Debug dbg, Dwarf_Die die, - Dwarf_Bool is_info, void (*die_callback)(Dwarf_Die die)) -{ - Dwarf_Die die0; - Dwarf_Off offset; - Dwarf_Half tag; - Dwarf_Error de; - const char *tagname; - int r; - - assert(dbg != NULL && die != NULL && die_callback != NULL); - - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - tagname = NULL; - if (dwarf_get_TAG_name(tag, &tagname) != DW_DLV_OK) { - tet_infoline("dwarf_get_TAG_name failed"); - result = TET_FAIL; - } - offset = 0; - if (dwarf_dieoffset(die, &offset, &de) != DW_DLV_OK) { - tet_printf("dwarf_dieoffset failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - tet_printf("DIE #%d (%s) [%#x]\n", die_cnt++, tagname, offset); - - die_callback(die); - - /* Search children. */ - r = dwarf_child(die, &die0, &de); - if (r == DW_DLV_ERROR) - tet_printf("%s: dwarf_child failed: %s", __func__, - dwarf_errmsg(de)); - else if (r == DW_DLV_OK) - _die_traverse_recursive2(dbg, die0, is_info, die_callback); - - /* Search sibling. */ - r = dwarf_siblingof_b(dbg, die, &die0, is_info, &de); - if (r == DW_DLV_ERROR) - tet_printf("%s: dwarf_siblingof failed: %s", __func__, - dwarf_errmsg(de)); - else if (r == DW_DLV_OK) - _die_traverse_recursive2(dbg, die0, is_info, die_callback); -} - -static void -_die_traverse2(Dwarf_Debug dbg, Dwarf_Bool is_info, - void (*die_callback)(Dwarf_Die die)) -{ - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Unsigned cu_next_offset; - - assert(dbg != NULL && die_callback != NULL); - - die_cnt = 0; - - if (is_info) { - TS_DWARF_CU_FOREACH2(dbg, 1, cu_next_offset, de) { - if (dwarf_siblingof_b(dbg, NULL, &die, 1, &de) != - DW_DLV_OK) - break; - _die_traverse_recursive2(dbg, die, 1, die_callback); - } - } else { - do { - TS_DWARF_CU_FOREACH2(dbg, 0, cu_next_offset, de) { - if (dwarf_siblingof_b(dbg, NULL, &die, 0, - &de) != DW_DLV_OK) - break; - _die_traverse_recursive2(dbg, die, 0, - die_callback); - } - } while (dwarf_next_types_section(dbg, &de) == DW_DLV_OK); - } -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/driver.c b/contrib/elftoolchain/test/libdwarf/ts/common/driver.c deleted file mode 100644 index fe1cc560..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/common/driver.c +++ /dev/null @@ -1,893 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef __FreeBSD__ -#include -#else -#include -#endif - -#include "_elftc.h" - -#include "driver.h" -#include "tet_api.h" - -#ifndef TCGEN -#define _XML_BUFSIZE 8192 -#define _XML_DATABUFSZ 65536 -struct _drv_vc { - const char *var; - union { - uint64_t u64; - int64_t i64; - char *str; - struct { - char *data; - int len; - } b; - } v; - enum { - _VTYPE_NONE, - _VTYPE_INT, - _VTYPE_UINT, - _VTYPE_STRING, - _VTYPE_BLOCK, - } vt; - enum { - _OP_EQ, - _OP_NE, - } op; - enum { - _FAIL_CONTINUE, - _FAIL_ABORT, - } fail; - STAILQ_ENTRY(_drv_vc) next; -}; -struct _drv_tp { - struct dwarf_tp *dtp; - int testnum; - STAILQ_HEAD(, _drv_vc) vclist; - STAILQ_ENTRY(_drv_tp) next; -}; -struct _drv_ic { - const char *file; - int tpcnt; - STAILQ_HEAD(, _drv_tp) tplist; - STAILQ_ENTRY(_drv_ic) next; -}; -extern int ic_count; -static STAILQ_HEAD(, _drv_ic) _iclist; -static struct _drv_ic *_cur_ic = NULL; -static struct _drv_tp *_cur_tp = NULL; -static struct _drv_vc *_cur_vc = NULL; -static char _xml_buf[_XML_BUFSIZE]; -static char _xml_data[_XML_DATABUFSZ]; -static int _xml_data_pos = 0; -static int _test_cnt = 0; -#else -FILE *_cur_fp = NULL; -#endif /* !TCGEN */ - -/* The name of the file currently being processed. */ -const char *_cur_file = NULL; - -static void driver_startup(void); -static void driver_cleanup(void); -static __attribute__ ((unused)) char * driver_string_encode(const char *str); -#ifndef TCGEN -static void driver_base64_decode(const char *code, int codesize, char **plain, - int *plainsize); -#else -static __attribute__ ((unused)) void driver_base64_encode(const char *plain, - int plainsize, char **code, int *codesize); -#endif /* !TCGEN */ - -void (*tet_startup)(void) = driver_startup; -void (*tet_cleanup)(void) = driver_cleanup; - -/* - * Functions used by TCM for supporting a dynamic test case. - */ - -#ifndef TCGEN -static struct _drv_ic * -_find_ic(int icnum) -{ - struct _drv_ic *ic; - int i; - - for (i = 1, ic = STAILQ_FIRST(&_iclist); - i < icnum && ic != NULL; - i++, ic = STAILQ_NEXT(ic, next)) - ; - - return (ic); -} - -static struct _drv_tp * -_find_tp(int icnum, int tpnum) -{ - struct _drv_ic *ic; - struct _drv_tp *tp; - int i; - - ic = _find_ic(icnum); - assert(ic != NULL); - for (i = 1, tp = STAILQ_FIRST(&ic->tplist); - i < tpnum && tp != NULL; - i++, tp = STAILQ_NEXT(tp, next)) - ; - - return (tp); -} -#endif /* !TCGEN */ - -int -tet_getminic(void) -{ - - return (1); /* IC start with 1. */ -} - -int -tet_getmaxic(void) -{ - -#ifdef TCGEN - return (1); -#else - return (ic_count); -#endif /* TCGEN */ -} - -int -tet_isdefic(int icnum) -{ - -#ifdef TCGEN - assert(icnum == 1); - return (1); -#else - if (icnum >= 1 && icnum <= ic_count) - return (1); - - return (0); -#endif /* TCGEN */ -} - -int -tet_gettpcount(int icnum) -{ -#ifdef TCGEN - assert(icnum == 1); - return (1); -#else - struct _drv_ic *ic; - - ic = _find_ic(icnum); - assert(ic != NULL); - - return (ic->tpcnt); -#endif /* TCGEN */ -} - -int -tet_gettestnum(int icnum, int tpnum) -{ -#ifdef TCGEN - assert(icnum == 1 && tpnum == 1); - return (1); -#else - struct _drv_tp *tp; - - tp = _find_tp(icnum, tpnum); - assert(tp != NULL); - - return (tp->testnum); -#endif /* TCGEN */ -} - -int -tet_invoketp(int icnum, int tpnum) -{ -#ifdef TCGEN - assert(icnum == 1 && tpnum == 1); - return (0); -#else - struct _drv_ic *ic; - struct _drv_tp *tp; - - ic = _find_ic(icnum); - assert(ic != NULL); - _cur_ic = ic; - _cur_file = _cur_ic->file; - tp = _find_tp(icnum, tpnum); - assert(tp != NULL && tp->dtp != NULL); - tet_printf("Start Test Purpose <%s> on <%s>\n", tp->dtp->tp_name, - _cur_ic->file); - _cur_vc = STAILQ_FIRST(&tp->vclist); - tp->dtp->tp_func(); - - return (0); -#endif /* TCGEN */ -} - -#ifndef TCGEN -static void -_xml_start_cb(void *data, const char *el, const char **attr) -{ - XML_Parser p; - int i, j; - - p = data; - - if (!strcmp(el, "ic")) { - if (_cur_ic != NULL) - errx(EXIT_FAILURE, "Nested IC at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - _cur_ic = calloc(1, sizeof(*_cur_ic)); - STAILQ_INIT(&_cur_ic->tplist); - if (_cur_ic == NULL) - err(EXIT_FAILURE, "calloc"); - for (i = 0; attr[i]; i += 2) { - if (!strcmp(attr[i], "file")) { - _cur_ic->file = strdup(attr[i + 1]); - if (_cur_ic->file == NULL) - err(EXIT_FAILURE, "strdup"); - break; - } - } - if (_cur_ic->file == NULL) - errx(EXIT_FAILURE, "IC without 'file' attribute " - "at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - - } else if (!strcmp(el, "tp")) { - if (_cur_ic == NULL) - errx(EXIT_FAILURE, "TP without containing IC at " - "line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - if (_cur_tp != NULL) - errx(EXIT_FAILURE, "Nested TP at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - _cur_tp = calloc(1, sizeof(*_cur_tp)); - STAILQ_INIT(&_cur_tp->vclist); - if (_cur_tp == NULL) - err(EXIT_FAILURE, "calloc"); - for (i = 0; attr[i]; i += 2) { - if (!strcmp(attr[i], "func")) { - for (j = 0; dwarf_tp_array[j].tp_name != NULL; - j++) - if (!strcmp(attr[i + 1], - dwarf_tp_array[j].tp_name)) { - _cur_tp->dtp = - &dwarf_tp_array[j]; - break; - } - if (_cur_tp->dtp == NULL) - errx(EXIT_FAILURE, - "TP function '%s' not found", - attr[i]); - break; - } - } - if (_cur_tp->dtp == NULL) - errx(EXIT_FAILURE, - "TP without 'func' attribute at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - - } else if (!strcmp(el, "vc")) { - if (_cur_tp == NULL) - errx(EXIT_FAILURE, - "VC without containing IC at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - if (_cur_vc != NULL) - errx(EXIT_FAILURE, "Nested VC at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - _cur_vc = calloc(1, sizeof(*_cur_vc)); - - _cur_vc->op = _OP_EQ; - _cur_vc->fail = _FAIL_CONTINUE; - if (_cur_vc == NULL) - err(EXIT_FAILURE, "calloc"); - for (i = 0; attr[i]; i += 2) { - if (!strcmp(attr[i], "var")) { - _cur_vc->var = strdup(attr[i + 1]); - if (_cur_vc->var == NULL) - err(EXIT_FAILURE, "strdup"); - } else if (!strcmp(attr[i], "type")) { - if (!strcmp(attr[i + 1], "int")) - _cur_vc->vt = _VTYPE_INT; - else if (!strcmp(attr[i + 1], "uint")) - _cur_vc->vt = _VTYPE_UINT; - else if (!strcmp(attr[i + 1], "str")) - _cur_vc->vt = _VTYPE_STRING; - else if (!strcmp(attr[i + 1], "block")) - _cur_vc->vt = _VTYPE_BLOCK; - else - errx(EXIT_FAILURE, - "Unknown value type %s at " - "line %jd", attr[i + 1], - (intmax_t) XML_GetCurrentLineNumber(p)); - } else if (!strcmp(attr[i], "op")) { - if (!strcmp(attr[i + 1], "ne")) - _cur_vc->op = _OP_NE; - } else if (!strcmp(attr[i], "fail")) { - if (!strcmp(attr[i + 1], "abort")) - _cur_vc->fail = _FAIL_ABORT; - } else - errx(EXIT_FAILURE, - "Unknown attr %s at line %jd", - attr[i], - (intmax_t) XML_GetCurrentLineNumber(p)); - } - if (_cur_vc->var == NULL || _cur_vc->vt == _VTYPE_NONE) - errx(EXIT_FAILURE, - "VC without 'var' or 'type' attribute at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - } else - errx(EXIT_FAILURE, "Unknown element %s at line %jd", el, - (intmax_t) XML_GetCurrentLineNumber(p)); -} - -static void -_xml_end_cb(void *data, const char *el) -{ - XML_Parser p; - - p = data; - - if (!strcmp(el, "ic")) { - if (_cur_ic == NULL) - errx(EXIT_FAILURE, "bogus IC end tag at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - STAILQ_INSERT_TAIL(&_iclist, _cur_ic, next); - _cur_ic = NULL; - } else if (!strcmp(el, "tp")) { - if (_cur_tp == NULL) - errx(EXIT_FAILURE, "bogus TP end tag at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - assert(_cur_ic != NULL); - _test_cnt++; - _cur_tp->testnum = _test_cnt; - STAILQ_INSERT_TAIL(&_cur_ic->tplist, _cur_tp, next); - _cur_ic->tpcnt++; - _cur_tp = NULL; - } else if (!strcmp(el, "vc")) { - if (_cur_vc == NULL) - errx(EXIT_FAILURE, "bogus VC end tag at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - if (_xml_data_pos == 0 && _cur_vc->vt != _VTYPE_STRING) - errx(EXIT_FAILURE, - "VC element without value defined at line %jd", - (intmax_t) XML_GetCurrentLineNumber(p)); - _xml_data[_xml_data_pos] = '\0'; - switch (_cur_vc->vt) { - case _VTYPE_INT: - _cur_vc->v.i64 = strtoimax(_xml_data, NULL, 0); - break; - case _VTYPE_UINT: - _cur_vc->v.u64 = strtoumax(_xml_data, NULL, 0); - break; - case _VTYPE_STRING: - _cur_vc->v.str = strdup(_xml_data); - if (_cur_vc->v.str == NULL) - err(EXIT_FAILURE, "strdup"); - break; - case _VTYPE_BLOCK: - driver_base64_decode(_xml_data, _xml_data_pos, - &_cur_vc->v.b.data, &_cur_vc->v.b.len); - break; - default: - assert(0); - break; - } - _xml_data_pos = 0; - - assert(_cur_tp != NULL); - STAILQ_INSERT_TAIL(&_cur_tp->vclist, _cur_vc, next); - _cur_vc = NULL; - } -} - -#define _VALUE_BUFSIZE 1024 - -static void -_xml_data_cb(void *data, const char *s, int len) -{ - - (void) data; - - if (_cur_vc != NULL) { - if (_xml_data_pos + len >= _XML_DATABUFSZ) { - warnx("_xml_data overflowed, data(%d) discarded", len); - return; - } - memcpy(&_xml_data[_xml_data_pos], s, len); - _xml_data_pos += len; - } -} - -#define _CMD_SIZE (2*PATH_MAX + 32) /* Two paths and a command */ - -static void -driver_parse_ic_desc(const char *fname) -{ - XML_Parser p; - ssize_t bytes; - int fd, final; - char *xml_name, *ext, *fname0; - char cmd[_CMD_SIZE]; - - if ((fname0 = strdup(fname)) == NULL) - err(EXIT_FAILURE, "strdup"); - fname0[strlen(fname) - 3] = '\0'; - snprintf(cmd, _CMD_SIZE, "gunzip -f -c %s > %s", fname, fname0); - if (system(cmd) < 0) - err(EXIT_FAILURE, "system"); - - if ((xml_name = strdup(fname)) == NULL) - err(EXIT_FAILURE, "strdup"); - ext = strrchr(xml_name, '.'); - assert(ext != NULL); - *ext = '\0'; - - if ((p = XML_ParserCreate(NULL)) == NULL) - errx(EXIT_FAILURE, "XML_ParserCreate failed"); - XML_SetUserData(p, p); - XML_SetElementHandler(p, _xml_start_cb, _xml_end_cb); - XML_SetCharacterDataHandler(p, _xml_data_cb); - - if ((fd = open(xml_name, O_RDONLY)) < 0) - err(EXIT_FAILURE, "open %s failed", xml_name); - - final = 0; - for (;;) { - bytes = read(fd, _xml_buf, _XML_BUFSIZE); - if (bytes < 0) - err(EXIT_FAILURE, "read %s failed", xml_name); - if (bytes == 0) - final = 1; - if (!XML_Parse(p, _xml_buf, (int) bytes, final)) - errx(EXIT_FAILURE, "XML_Parse error at line %jd: %s\n", - (intmax_t) XML_GetCurrentLineNumber(p), - XML_ErrorString(XML_GetErrorCode(p))); - if (final) - break; - } - - free(xml_name); -} - -static void -driver_parse_ic(void) -{ - struct dirent *dp; - DIR *dirp; - - if ((dirp = opendir(".")) == NULL) - err(EXIT_FAILURE, "opendir"); - while ((dp = readdir(dirp)) != NULL) { - if (strlen(dp->d_name) <= 7) - continue; - if (!strcmp(&dp->d_name[strlen(dp->d_name) - 7], ".xml.gz")) - driver_parse_ic_desc(dp->d_name); - } - (void) closedir(dirp); -} - -#else /* !TCGEN */ - -static void -driver_gen_tp(FILE *fp, const char *file) -{ - int i; - - assert(fp != NULL); - for (i = 0; dwarf_tp_array[i].tp_name != NULL; i++) { - fprintf(fp, " \n", dwarf_tp_array[i].tp_name); - _cur_file = file; - _cur_fp = fp; - dwarf_tp_array[i].tp_func(); - fprintf(fp, " \n"); - } -} - -#define _FILENAME_BUFSIZE 1024 -#define _CMD_SIZE 256 - -static void -driver_gen_ic(void) -{ - char *flist, *token; - FILE *fp; - char nbuf[_FILENAME_BUFSIZE], cmd[_CMD_SIZE]; - - flist = getenv("ICLIST"); - if (flist == NULL) - errx(EXIT_FAILURE, - "Driver in TCGEN mode but ICLIST env is not defined"); - if ((flist = strdup(flist)) == NULL) - err(EXIT_FAILURE, "strdup"); - while ((token = strsep(&flist, ":")) != NULL) { - snprintf(nbuf, sizeof(nbuf), "%s.xml", token); - if ((fp = fopen(nbuf, "w")) == NULL) - err(EXIT_FAILURE, "fopen %s failed", nbuf); - fprintf(fp, "\n", token); - driver_gen_tp(fp, token); - fprintf(fp, "\n"); - fclose(fp); - snprintf(cmd, _CMD_SIZE, "gzip -f %s", nbuf); - if (system(cmd) < 0) - err(EXIT_FAILURE, "system"); - } - free(flist); -} - -#endif /* !TCGEN */ - -#define _MAX_STRING_SIZE 65535 - -static char * -driver_string_encode(const char *str) -{ - static char enc[_MAX_STRING_SIZE]; - size_t len; - int pos; - -#define _ENCODE_STRING(S) do { \ - len = strlen(S); \ - if (pos + len < _MAX_STRING_SIZE) { \ - strncpy(enc + pos, S, len); \ - pos += len; \ - } else { \ - assert(0); \ - return (NULL); \ - } \ - } while(0) - - pos = 0; - for (; *str != '\0'; str++) { - switch (*str) { - case '"': - _ENCODE_STRING("""); - break; - case '\'': - _ENCODE_STRING("'"); - break; - case '<': - _ENCODE_STRING("<"); - break; - case '>': - _ENCODE_STRING(">"); - break; - case '&': - _ENCODE_STRING("&"); - break; - default: - /* Normal chars. */ - if (pos < _MAX_STRING_SIZE - 1) - enc[pos++] = *str; - else { - enc[pos] = '\0'; - assert(0); - return (NULL); - } - break; - } - } - enc[pos] = '\0'; - - return (enc); -#undef _ENCODE_STRING -} - -static void -driver_startup(void) -{ - -#ifdef TCGEN - driver_gen_ic(); -#else - STAILQ_INIT(&_iclist); - driver_parse_ic(); -#endif -} - -static void -driver_cleanup(void) -{ - -} - -/* - * Base64 encode/decode utility modified from libb64 project. It's been - * placed in the public domain. Note that this modified version doesn't - * emit newline during encoding. - */ - -#ifdef TCGEN - -typedef enum -{ - step_A, step_B, step_C -} base64_encodestep; - -typedef struct -{ - base64_encodestep step; - char result; -} base64_encodestate; - -static void -base64_init_encodestate(base64_encodestate* state_in) -{ - state_in->step = step_A; - state_in->result = 0; -} - -static char -base64_encode_value(char value_in) -{ - static const char* encoding = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz0123456789+/"; - - if (value_in > 63) - return '='; - - return encoding[(int)value_in]; -} - -static int -base64_encode_block(const char* plaintext_in, int length_in, char* code_out, - base64_encodestate* state_in) -{ - const char* plainchar = plaintext_in; - const char* const plaintextend = plaintext_in + length_in; - char* codechar = code_out; - char res; - char fragment; - - res = state_in->result; - - switch (state_in->step) - { - while (1) - { - case step_A: - if (plainchar == plaintextend) - { - state_in->result = res; - state_in->step = step_A; - return codechar - code_out; - } - fragment = *plainchar++; - res = (fragment & 0x0fc) >> 2; - *codechar++ = base64_encode_value(res); - res = (fragment & 0x003) << 4; - case step_B: - if (plainchar == plaintextend) - { - state_in->result = res; - state_in->step = step_B; - return codechar - code_out; - } - fragment = *plainchar++; - res |= (fragment & 0x0f0) >> 4; - *codechar++ = base64_encode_value(res); - res = (fragment & 0x00f) << 2; - case step_C: - if (plainchar == plaintextend) - { - state_in->result = res; - state_in->step = step_C; - return codechar - code_out; - } - fragment = *plainchar++; - res |= (fragment & 0x0c0) >> 6; - *codechar++ = base64_encode_value(res); - res = (fragment & 0x03f) >> 0; - *codechar++ = base64_encode_value(res); - } - } - /* control should not reach here */ - return codechar - code_out; -} - -static int -base64_encode_blockend(char* code_out, base64_encodestate* state_in) -{ - char* codechar = code_out; - - switch (state_in->step) - { - case step_B: - *codechar++ = base64_encode_value(state_in->result); - *codechar++ = '='; - *codechar++ = '='; - break; - case step_C: - *codechar++ = base64_encode_value(state_in->result); - *codechar++ = '='; - break; - case step_A: - break; - } - - return codechar - code_out; -} - -static void -driver_base64_encode(const char *plain, int plainsize, char **code, - int *codesize) -{ - base64_encodestate state; - - assert(plain != NULL && plainsize > 0); - - *code = malloc(sizeof(char) * plainsize * 2); - if (*code == NULL) - err(EXIT_FAILURE, "malloc"); - - base64_init_encodestate(&state); - - *codesize = base64_encode_block(plain, plainsize, *code, &state); - *codesize += base64_encode_blockend(*code + *codesize, &state); -} - -#else /* TCGEN */ - -typedef enum -{ - step_a, step_b, step_c, step_d -} base64_decodestep; - -typedef struct -{ - base64_decodestep step; - char plainchar; -} base64_decodestate; - -static int -base64_decode_value(int value_in) -{ - static const char decoding[] = { 62,-1,-1,-1,63,52,53,54,55,56,57,58, - 59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2, - 3,4,5,6,7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,-1,-1,-1, - -1,-1,-1,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51 }; - static const int decoding_size = sizeof(decoding); - - value_in -= 43; - if (value_in < 0 || value_in > decoding_size) - return -1; - - return decoding[value_in]; -} - -static void -base64_init_decodestate(base64_decodestate* state_in) -{ - state_in->step = step_a; - state_in->plainchar = 0; -} - -static int -base64_decode_block(const char* code_in, const int length_in, - char* plaintext_out, base64_decodestate* state_in) -{ - const char* codechar = code_in; - char* plainchar = plaintext_out; - char fragment; - - *plainchar = state_in->plainchar; - - switch (state_in->step) - { - while (1) { - case step_a: - do { - if (codechar == code_in+length_in) - { - state_in->step = step_a; - state_in->plainchar = *plainchar; - return plainchar - plaintext_out; - } - fragment = (char)base64_decode_value(*codechar++); - } while (fragment < 0); - *plainchar = (fragment & 0x03f) << 2; - case step_b: - do { - if (codechar == code_in+length_in) - { - state_in->step = step_b; - state_in->plainchar = *plainchar; - return plainchar - plaintext_out; - } - fragment = (char)base64_decode_value(*codechar++); - } while (fragment < 0); - *plainchar++ |= (fragment & 0x030) >> 4; - *plainchar = (fragment & 0x00f) << 4; - case step_c: - do { - if (codechar == code_in+length_in) - { - state_in->step = step_c; - state_in->plainchar = *plainchar; - return plainchar - plaintext_out; - } - fragment = (char)base64_decode_value(*codechar++); - } while (fragment < 0); - *plainchar++ |= (fragment & 0x03c) >> 2; - *plainchar = (fragment & 0x003) << 6; - case step_d: - do { - if (codechar == code_in+length_in) - { - state_in->step = step_d; - state_in->plainchar = *plainchar; - return plainchar - plaintext_out; - } - fragment = (char)base64_decode_value(*codechar++); - } while (fragment < 0); - *plainchar++ |= (fragment & 0x03f); - } - } - /* control should not reach here */ - return plainchar - plaintext_out; -} - -static void -driver_base64_decode(const char *code, int codesize, char **plain, int *plainsize) -{ - base64_decodestate state; - - assert(code != NULL && codesize > 0); - - *plain = malloc(sizeof(char) * codesize); - if (*plain == NULL) - err(EXIT_FAILURE, "malloc"); - - base64_init_decodestate(&state); - - *plainsize = base64_decode_block(code, codesize, *plain, &state); -} -#endif /* TCGEN */ diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/driver.h b/contrib/elftoolchain/test/libdwarf/ts/common/driver.h deleted file mode 100644 index 84b318ee..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/common/driver.h +++ /dev/null @@ -1,179 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _DRIVER_H_ -#define _DRIVER_H_ - -struct dwarf_tp { - const char *tp_name; - void (*tp_func)(void); -}; - -#define TS_DWARF_INIT(D,FD,DE) do { \ - (D) = NULL; \ - if (((FD) = open(_cur_file, O_RDONLY)) < 0) { \ - tet_printf("open %s failed; %s", _cur_file, \ - strerror(errno)); \ - result = TET_FAIL; \ - goto done; \ - } \ - if (dwarf_init((FD), DW_DLC_READ, NULL, NULL, &(D), &(DE)) != \ - DW_DLV_OK) { \ - tet_printf("dwarf_init failed: %s", dwarf_errmsg((DE)));\ - result = TET_FAIL; \ - goto done; \ - } \ - } while (0) - -#define TS_DWARF_FINISH(D,DE) do { \ - if (dwarf_finish((D), &(DE)) != DW_DLV_OK) { \ - tet_printf("dwarf_finish failed: %s", \ - dwarf_errmsg((DE))); \ - result = TET_FAIL; \ - } \ - } while (0) - -#define TS_DWARF_CU_FOREACH(D,N,DE) \ - while (dwarf_next_cu_header((D), NULL, NULL, NULL, NULL, &(N), \ - &(DE)) == DW_DLV_OK) - -#define TS_DWARF_CU_FOREACH2(D,I,N,DE) \ - while (dwarf_next_cu_header_c((D), (I), NULL, NULL, NULL, NULL, \ - NULL, NULL, NULL, NULL, &(N), &(DE)) == DW_DLV_OK) - -#define TS_DWARF_DIE_TRAVERSE(D,CB) \ - _die_traverse((D), (CB)) - -#define TS_DWARF_DIE_TRAVERSE2(D,I,CB) \ - _die_traverse2((D), (I), (CB)) - -#ifndef TCGEN - -#define _TS_CHECK_VAR(X,S) do { \ - struct _drv_vc *_next_vc; \ - int skip = 0; \ - if (strcmp(_cur_vc->var, S)) { \ - tet_printf("VC var(%s) does not match %s, possibly" \ - " caused by the skip of previous VCs, try finding" \ - " the next var with maching name", _cur_vc->var, \ - S); \ - _next_vc = _cur_vc; \ - do { \ - _next_vc = STAILQ_NEXT(_next_vc, next); \ - skip++; \ - if (!strcmp(_next_vc->var, S)) \ - break; \ - } while (_next_vc != NULL); \ - if (_next_vc != NULL) { \ - tet_printf("skipped %d VC(s)\n", skip); \ - _cur_vc = _next_vc; \ - } \ - } \ - } while (0) - -#define TS_CHECK_INT(X) do { \ - assert(_cur_vc != NULL); \ - _TS_CHECK_VAR(X,#X); \ - if (X != _cur_vc->v.i64) { \ - tet_printf("assertion %s(%jd) == %jd failed", \ - _cur_vc->var, (intmax_t) (X), \ - (intmax_t) _cur_vc->v.i64); \ - result = TET_FAIL; \ - } \ - _cur_vc = STAILQ_NEXT(_cur_vc, next); \ - } while (0) - -#define TS_CHECK_UINT(X) do { \ - assert(_cur_vc != NULL); \ - _TS_CHECK_VAR(X,#X); \ - if (X != _cur_vc->v.u64) { \ - tet_printf("assertion %s(%ju) == %ju failed", \ - _cur_vc->var, (uintmax_t) (X), \ - (uintmax_t) _cur_vc->v.u64); \ - result = TET_FAIL; \ - } \ - _cur_vc = STAILQ_NEXT(_cur_vc, next); \ - } while (0) - -#define TS_CHECK_STRING(X) do { \ - assert(_cur_vc != NULL); \ - _TS_CHECK_VAR(X,#X); \ - if (strcmp(X, _cur_vc->v.str)) { \ - tet_printf("assertion %s('%s') == '%s' failed", \ - _cur_vc->var, (X), _cur_vc->v.str); \ - result = TET_FAIL; \ - } \ - _cur_vc = STAILQ_NEXT(_cur_vc, next); \ - } while (0) - -#define TS_CHECK_BLOCK(B,S) do { \ - assert(_cur_vc != NULL); \ - _TS_CHECK_VAR(B,#B); \ - if ((S) != _cur_vc->v.b.len || \ - memcmp((B), _cur_vc->v.b.data, _cur_vc->v.b.len)) { \ - tet_printf("assertion block %s failed\n", _cur_vc->var);\ - result = TET_FAIL; \ - } \ - _cur_vc = STAILQ_NEXT(_cur_vc, next); \ - } while (0) - -#define TS_RESULT(X) tet_result(X) - -#else /* !TCGEN */ - -#define TS_CHECK_INT(X) do { \ - fprintf(_cur_fp, " %jd\n", #X, \ - (intmax_t) (X)); \ - } while (0) - -#define TS_CHECK_UINT(X) do { \ - fprintf(_cur_fp, " %ju\n", #X, \ - (uintmax_t)(X)); \ - } while (0) - -#define TS_CHECK_STRING(X) do { \ - fprintf(_cur_fp, " %s\n", #X, \ - driver_string_encode(X)); \ - } while (0) - -#define TS_CHECK_BLOCK(B,S) do { \ - char *code; \ - int codesize; \ - size_t wsize; \ - fprintf(_cur_fp, " ", #B); \ - driver_base64_encode((char *) (B), (S), &code, &codesize); \ - wsize = fwrite(code, 1, (size_t) codesize, _cur_fp); \ - assert(wsize == (size_t) codesize); \ - fprintf(_cur_fp, "\n"); \ - free(code); \ - } while (0) - -#define TS_RESULT(X) - -#endif /* !TCGEN */ -#endif /* !_DRIVER_H_ */ diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/object/dt32-g1.gz b/contrib/elftoolchain/test/libdwarf/ts/common/object/dt32-g1.gz deleted file mode 100755 index 8c5f75d9c11d649d1c37de9203d7ba46a50b2429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9724 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%0Dp_lX!OWIV_vT$cW2I_OKSAEvP6 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/object/dt64-g1.gz b/contrib/elftoolchain/test/libdwarf/ts/common/object/dt64-g1.gz deleted file mode 100755 index 462c1750ce36c056034ecc813c1193a7270348fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9841 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/object/dt64-g3.gz b/contrib/elftoolchain/test/libdwarf/ts/common/object/dt64-g3.gz deleted file mode 100755 index ab04c6559689a85b9c277aab58951a40ba983f85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30254 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/common/object/ec32-g1.gz b/contrib/elftoolchain/test/libdwarf/ts/common/object/ec32-g1.gz deleted file mode 100755 index 140dbd03b7d69c1664736dd4dbfd01a48220d68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277478 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�#m^ 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%0AF9m?_fsfHt6 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%0AE@Ge|9SVFo!HN7mu}H43oa1F=TxVEq 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

azSPPl z!SNz$?kT)Qo4tiS(Ynqk>P z*zy4rXjJxCzauX!qOc}65C_R#yj`SzD=W8WJN@pI4E1s~9A@v&%7tjQA+g!7*Hg1a z#}lsr{^#OivRpXbOGx*){trUT@7&d5}^@ zn-drv<-ZDxj5(SQ%OaH?XNEjzipqoL=t5{dfjrm=Ysu?a9yI@!JZNHh&>WKo!T-!% zQU<4CF9yB|-U_2&><(t6EGMrlJ7&=HE zG@n2o?9}VNU&rJ@Q@lJ#waKP9dC;6F4{DQqnd9X_v$md^qU$M_IKg^K@Ly>X z@}OBGG;=3;P&C$gJ=Mry0)!tXhp0Sg>Ld?pYq21*IC;=4$nonK-HnRU-KgJ9cfTnQ z63CaE8U(G&&qv51M20 z;L;N`IB{*XcS0UCN8~|M0{x~(={HUu)aFuG`u+Sj=@%tVM87VcymdSSWURNt6f80<;KoD2g(NqTgT+f-e+B$#sf3ULMT&O?lAVRUR~T zmIqCV@}Ov^6U9zB0mV*#2X+ZgMh4p+#aqy6? zi*6H)1{#XV1j9@-EiyAKG+E!!w3~5M-<(MGP1prp{kfJcqTQ_LzU`pCji$cMGC9Sq zTNBOk>cP=ws0YpZV(V;bYB4ueXpX5j%`bFq>F^qnD>9+6i1Ho9Yu2%l0Ocmf2Yb}c zbB5YbHVIO#Cz;lLh3vbTdP=>d-qPH1_Y%wJPt2sbrm{#)_YIUDt<{NIij|#OMWK(G ze~&haPoYb`zvtusJsQIQ&8|_AsC84 z`SJdU$5>@;@{QO%wIAXp_sQ8vK$l8$-9L?6lXMQ{%+_Fx!)4|ESaA-1XQ= zkALS`B)I5NqfXDx1M2EOMjZ0q-_{sGY`YeOkGK9GGg>attw z^&%WYYkfEO$=d0NRL-$s_;R)E>Gj&z#d(i!9h*!1Xf3A0`+XwR^A?&O^QmADvTs@@ zO2NUlzVcP%tcm7iAk!(Q7z!bJ?W%66naqJ|GSr*~j=ILdZ|>s`PtO#2Ut7rs5n8?P zgMQyhgka?-T1@E5y=e8L#MIY5iR;jc*MYphKk10ifdGeuytA(8rwcYgy#58%tV;xb zCK{R3DSm*LuP1f)~-VTljh3%J?4H~Kz zYt^oZR#~T2Sx>aWRUSyJ@>EpGCtMw-k`H8$?QW`0Ds@Kn#fCrO!?OOFvcFJbe&MO< z1`xIS+7j#gyi%*rIxL$C-c=>%4ZD~g=3g~O-2ZK`)0;0Xd^u`OL9Lg1>XK+dsgZ{o z4CqU(+8q~0TWcdt98YXwZmfyTRLfm&Q4>GX!~AQx{%!Oq`=3PkqwIC^(6m}^$z{;_ z43E-dlA#_Ul&ImR4Z_D_VjWD=A7KW5Mi5O2xwotP#2#+KYG&kKJwqV9PuV5 zo9ua0@+Hq`Dxhqz`)0gj_HLBCyEqs{QNI5wy|w;MQxK~*_+Gu_c>+nwrqRB6ub932 z+(GHnm4Z;1N<1o7vSgpjlB_h>wiq1#d}CqW{kf6{XC4ma2-R9Zh_oa-rT3;}+LfzK zPQSyTbNMecaTJL4EjcSkD^z!}x79ty?zyGEUW>ocIkYrf)-w@*BOB+L^_7d)Qzvgr z=wx9|tGehP#2Ln8WW0$8n?nhq7o<g|Bq zq5R4)cY(Lwt`ORSuw^MvHUH+HuS#dC%rr0L9Y&_M)vium96&}-5Cz0G1N^t zPB}9OGC)PJ5q%A!^s9^|J7wiNjzm-lapXa9OYk=?>ndWVGl2cOdquE62SVfEk0H)- zKG|wG>Pyv09ysDVJw;}{(_cjRPTT3jy-Eq%htovgC}t%<8WN>gs79F?H^~vDCQ-abseo z?j^$gBZ;_w zNjz+x9@%HCt`}Xdg7F2%jxEgDSNRx*T}f>E95j6+rlcFG_a>&MAoU0?I<5(($ zWeHcNvwdwOP|aK#*0;uqo9N}78g*+8VuR`3=^_T+aKodNSTY_Qa2lAOh&H6oCHd8t zyP|;S-Y#|EV%ov`hTNp2>eN26URT*t>tJQ4vb`#UaAyyHQ)Zh@sXF&->ZjM~b?Ve8 zOmXpZi0T5W`4s5I-Rz@PeRYro*0X^nkBC| z$C!aQj`QNNputZy{zY5{sQ#r|V6Ql5V`w=w&h?eN8+w?)DS1uHA1Yh%Q+I7uh--iH z2c4mo$`K+f^rCvipMdSR7BRMuJw(`kvFJCj-A1W2S?|IYVeCx8_)eGBKiXL-t+BXb zk(~k#g=Md;bPTRqoJfRNX8SwW;ho1XFN+EtluZOw!QJIL=1@0SGS#yVfwt4bR2=3? zi;vEwJnnONd})sER@0ViM+JKkwX1)`>|D!P^1Vw5aSZ62#OXryOtj&e5S?YaVnc(Opl;dm2aZt%EXd0-UE7z9%S@Bfp~FY;%4g3W7^(jrBr^u zxYJZVGyS_lu;BA}t2v^MUdHN1gCD!+*JGb3ItWRV(4y^)kO>urakV86O|kzN<BxNIg7h&#}mujHX=f z^9bh`IQsECB%D8egmIq1Ul2xZtpC0tI<<^G2k+r!U_`P*jGlTkK2Gn5kN?*ujs!cR z9y!(#zl`puTQbQaEpb`;3iCpHTLAWLlJ^K}wVoGth3!uNJIl40d9af)Ato9e6+-<) z{r3+QhbDZki||%vExgrTAM*@dxP_HmTS6rI9|qr~oqeBcsdah9TW^Yga@*JP;O}L> zok*`9+u$~m&-Rdfwmn7m4>}1Fw&akOIV^oSq8c9+mV7Hr|Flq95eF6D^Dl9BDizNMKL%0Amds*453oQ>+XBii@|#MPO&4;D=+^$-#bSJ1OlUua@A znoBuf4vY~|a7msUgb-^`76l6U;!~n`vur(B5|aH>^pJ80iDyuGm(MU1ReFMYr)O0% zZQWdoBamHs8s)h{_B#R@e5qZaz?2-V_&?xV07sLk-Ex4YwA&70PsTEl zmwqw7e8{}UZ~{9 z7!KQ|WotD$=SZ4!j>bT>;Uth?8Bap=JVZ*~ug?EFuev3VmDz3Lbytwt1-fA?1;A~k%e@ ze|?owCt|@0FiGl|-60-d_4|b2A5iXUAoz(y(ym20X9U4jukb|Ns@}7JaQq4iSy1TP z#Ks;$p`}L==ZrgDmsQL1{CZV!JZ%o@x%>OoLbN=SkN);VYtBH;<2n-bq4r5-w#%W2t67zpW=ewO|bK+@U1i@YPEMTlq+qZ2BN0j1mk-^C8?UVm4i;FL_%u zT>M@*3|J!9EL2pwfuwJurz7t}+Q0D?sDEVtixKxrk~Ojpkp>IIkdAPxo6m4^CJpo!Wgyl7`>~7 z@1m$0)19$*CTGjpr=Crzp%&hcOccuMojZ90F(+T#(ms%QxTdr=T!H$2d51xnE~-#> z(d+bTEVaSBuJL!p{c(2X=fwNthzy<@2?Pc}1xg1ILdj_yy;DFKiAouFdz^YTM|j4y z>h2B16n_ToRz}9C-hGc#Da_zA1*dXLrh58L5cE%c2BALoopwqjdkk0S^`kkgA2x@6 z)vR~GEq^R|u*_z=he){O^fKFAD|5=*1$Pk4?4%N!4#E;6Hb;)R>7z3&u9lYI&yXKZ zj8D$-hi|a7&=#5XxmqydW31$j=yT`tu5Tf)Nro~j2;^w=e2A917VzddQCHbVLA4+J zRohajyhIOkQn8Y2X=6p>+%{r3D#o!l)uL-(TGkhDPdIf?@tG^e~4WN^fxaFC=L<{S7O2rD1l>2=%%D zT48=J1mML-U&l^W*0!ltZwMjy2Vn%bHMCK1)Eg7qf9)?scuBy!*8Y^YXdwFXs2m0T zO0K-SG8jJLy&!UBQ!cf4hqmuR2;iUC`G=%~&vatni`|Y(nUx_cH)pEjH;63|?{Q~s z#lHV$lXGzgKrZPS97z?^{<6dATWDs(vc+Le*{fx7UsLSe=f2YEE6j8z6=pcC4J9s6 zCs$Ygogh`-UJdv%uA!U0gDD7+HSfWJm(dxhL)MSZR5x!Cl=tLL2HZ^(hJf|moJlP8 zx)Bg4`kza4cGty_1e@HKijH6WW;o1RIc;<=wn9F~62c0u*$LPsNqh{+{=q--25`UJ zwpHyhf|+l{#mvYS(@)8(a+XQ}(Ca<)>OLb1{#&%u;9h~9Uh;+5H}3i|ve|w64ea-@ z@c3+~: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 KM-D4VlVjhQgc-KmNa#No0HW6SLmF3Ma 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

NvQbE^9TIw{8!#uM!lz&&)?UK*7l))SY~_0 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�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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/dwarf_abbrev.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/dwarf_abbrev.c deleted file mode 100644 index 403fe01c..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/dwarf_abbrev.c +++ /dev/null @@ -1,125 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf address range API. - */ -static void tp_dwarf_abbrev(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_abbrev", tp_dwarf_abbrev}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" - -static void -tp_dwarf_abbrev(void) -{ - Dwarf_Debug dbg; - Dwarf_Abbrev ab; - Dwarf_Unsigned off, length, attr_count, code; - Dwarf_Signed children_flag, form; - Dwarf_Half tag, attr_num; - Dwarf_Off attr_off; - Dwarf_Error de; - int fd, r_abbrev, r_abbrev_entry, i; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - off = 0; - for (;;) { - tet_printf("check abbrev at offset(%ju):\n", (uintmax_t) off); - r_abbrev = dwarf_get_abbrev(dbg, off, &ab, &length, - &attr_count, &de); - off += length; - TS_CHECK_INT(r_abbrev); - if (r_abbrev != DW_DLV_OK) - break; - TS_CHECK_UINT(length); - TS_CHECK_UINT(attr_count); - if (dwarf_get_abbrev_tag(ab, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_abbrev_tag failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(tag); - if (dwarf_get_abbrev_code(ab, &code, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_abbrev_code failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(code); - if (dwarf_get_abbrev_children_flag(ab, &children_flag, &de) != - DW_DLV_OK) { - tet_printf("dwarf_get_abbrev_children_flag failed: " - "%s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(children_flag); - for (i = 0; i < attr_count; i++) { - tet_printf("check attr %d:\n", i); - if (dwarf_get_abbrev_entry(ab, i, &attr_num, &form, - &attr_off, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_abbrev_entry failed: " - "%s\n", dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(attr_num); - TS_CHECK_INT(form); - TS_CHECK_INT(attr_off); - } - /* Invalid index. */ - r_abbrev_entry = dwarf_get_abbrev_entry(ab, i + 10, &attr_num, - &form, &attr_off, &de); - TS_CHECK_INT(r_abbrev_entry); - } - if (r_abbrev == DW_DLV_ERROR) { - tet_printf("dwarf_get_abbrev failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_abbrev/ec64-g1.xml.gz deleted file mode 100644 index d061687855a0aa4d136b319eab6de04df5342768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8447 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 AM*si- diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dt64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dt64-g1.xml.gz deleted file mode 100644 index 7adcf11af51566979f678908b8ed3c3988e2d346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmV;$06PC4iwFoL6#+~D17vhIG%aT_E_iKh0Hx5u3WOjK2H<;7;muQ&(MEywDk3_T z5U$u%?Avd|ZqOnW>`~{NnV;cS5o1Sasm7{Idq%s25RRUh*{PPI7kZV!2pOd7VXtoW zMUh2@mWI#&Lv1^i;!##txr=j4H2L==mx=#_>FwS3<*}S+=(~hxc6+@6=;#8!A_4#a+?HLe diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dwarf_arange.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dwarf_arange.c deleted file mode 100644 index be61e821..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/dwarf_arange.c +++ /dev/null @@ -1,127 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf address range API. - */ -static void tp_dwarf_arange(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_arange", tp_dwarf_arange}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" - -static void -tp_dwarf_arange(void) -{ - Dwarf_Debug dbg; - Dwarf_Arange *aranges; - Dwarf_Arange arange; - Dwarf_Signed arange_cnt; - Dwarf_Off cu_die_offset, cu_die_offset2, cu_header_offset; - Dwarf_Addr start; - Dwarf_Unsigned length; - Dwarf_Error de; - int fd, i, r_aranges, r_arange; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - r_aranges = dwarf_get_aranges(dbg, &aranges, &arange_cnt, &de); - TS_CHECK_INT(r_aranges); - if (r_aranges == DW_DLV_ERROR) { - tet_printf("dwarf_get_aranges failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (r_aranges == DW_DLV_OK) { - for (i = 0; i < arange_cnt; i++) { - if (dwarf_get_cu_die_offset(aranges[i], &cu_die_offset, - &de) != DW_DLV_OK) { - tet_printf("dwarf_get_cu_die_offset failed:" - " %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_INT(cu_die_offset); - if (dwarf_get_arange_cu_header_offset(aranges[i], - &cu_header_offset, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_arange_cu_header_offset" - "failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_INT(cu_header_offset); - if (dwarf_get_arange_info(aranges[i], &start, &length, - &cu_die_offset2, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_arange_info failed:%s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(start); - TS_CHECK_UINT(length); - TS_CHECK_UINT(cu_die_offset2); - r_arange = dwarf_get_arange(aranges, arange_cnt, start, - &arange, &de); - TS_CHECK_INT(r_arange); - r_arange = dwarf_get_arange(aranges, arange_cnt, - start + 1, &arange, &de); - TS_CHECK_INT(r_arange); - r_arange = dwarf_get_arange(aranges, arange_cnt, - start + length, &arange, &de); - TS_CHECK_INT(r_arange); - r_arange = dwarf_get_arange(aranges, arange_cnt, - start + length + 1, &arange, &de); - TS_CHECK_INT(r_arange); - r_arange = dwarf_get_arange(aranges, arange_cnt, - start + length - 1, &arange, &de); - TS_CHECK_INT(r_arange); - } - } - - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/ec32-g1.xml.gz deleted file mode 100644 index ff13e0c1d74ea8d86046019778ac861976199fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{4iiwFoL6#+~D17%|~GA(B@E_iKh0Ogd)ii9u_hVT6pxp`_#WpM%ZRV2h{ z3ymW&I?UUT%myu$Hqs0 a^o;Nq7#6V`t5Xs8>**aT5)KqG2><{R5Sa1+ diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_arange/ec64-g1.xml.gz deleted file mode 100644 index 0cca099f4fa4eef0837d4d917abf0c628e4be775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmV-C0mJ?uiwFoL6#+~D17%}2G%aT_E_iKh0OgaxZiFBZhVT0n+&FCn94IF0s~Cdl znry5=wCUT|Y}zJnM#c2jJp%s>|IC*^?<{G$yDO-(3a%}u<%N(u45XQQThK66^@s6I zWxVNI_jq02XG><|3+lh`M@quyuypDAKueYYI{#V8q2s>^uhDl$Si| OmeUtKVU|)T2><}Q(wGkb diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/Makefile deleted file mode 100644 index 1b7d68bc..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_attr.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 dto64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dt32-g1.xml.gz deleted file mode 100644 index 5e999ae993726b2150ac5efed019442bce1e1750..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1463 zcmb2|=HMvyy6(-uoKj+Jq?>N2SCN~;@b=C@Kk0CZwuiOr4_U9*npMU zS@$<{x_G@<6&Ek{a|NYzU^M@bpw7;Vx|Lbx8di`bB|K9fQ zxt;m*>-5*FpC>;1aC-lN@+-N&k6*q2>Bqme|36m${(Jsi;-2~!-wv;gtJ_>{`E>R7 z+rO9pt1De~z5f5Fqv09#H}2Z}{1d+5jf`2B}OV(QlA#V-#nm)ZaK|KFH@ zd*`O;94Je8eX#c1-}`IZe81P}7hkeZFwWDCNwqF~m*C>KkV{l#PIOzA_<6sYkK3=R ziL46nb^r@j--ZgZo)g_BH)rk*zZ`>03j+O*TF$-Tg zTu6Lpkk7{z^Wb8@1E&5qCh;BqbqR_qtOQsbw>RanrWbwGa%kkXkwQ{YVIs2Qz~Y4m zSmk(G^*&^16g0X!H*){U5kG%_AH(g2wfUuBg#ugFHWfFmWq&SH-q*Y! zS9A?eH2*ovcQWjbx3wZ9fsQP`W69UFEp&rXj;+P>9mO&%xvLXWZ&VeWD|~LjaVzZL zsSRHr%z+xT%~D{?*~ZPSK;s^F72C+KvXPlrB>n%(t#85iZP&@=hqvc#mj0D_Czn}& zp`<3;*$zof!K{U>X3A+xOf%fhcytDE>uxyi#q>R5rBq0zMak-9H?Nkcj7FfsOx{_7 z#z9I~oVat`&UEMv2eKu7JmYN)L0q`Tz+P~jGkGgg*-tXTvM8M!Mr!g5!$ z9ZuN7c6TxX6BRg`dL8+X$gYFM3-(YaB4UVDlD@lQ>Oc0{f^`9<3NH-GXPC1i#V#I0 zHpkl7+q2(p*cN&_3v0?i(fi}3-aL8zrd)^Ht8z^Vrz#Y^m_acA?W3RJ91C7K6v$0} z2z2xGCMI!ARiNYvH^~0>(a(=v3yxLV^?c{QTW4|gbbgus{EAZR9kMb!e1AUQK7PUf zabC8bLvbP)r){zjU9i(Y9E7LG&*8cdGlLt5yHD%;v1aI<0pX)h#g{Xgh(BXuaRg=? z0hZ@H{Qv*~jd-oLx|OMB^c|H}^_SLffal@mMv_hH)43-a|fwT64&-PbeB zTmJNV{JQn?+Gift|Ic(kaQj>N@cPq_e{=tPy#C#H``zsy|1G@DzkJu9wC_cyR)4?! zd-=b*(p9hb*Z+K^y~X~`yLoL_ABJ3)FYC{rZ1C^->+l&(r_Wz~`+Cc(zQ^1D@1K8q z|F+3JtT*^_Yb$5>XIoTc!jgW;+O`lH$ynS}FQ~%$l zTP;qaS)35ToM@=vft`o0HE$Na-O1}_C9*2O+hHNsRu&&V(K*^7vK&@1d;7PqmEtMr z+wk?lnG}0Smk(G^*&^16g0X!H*(uZam74H-(5MiPMNc5Tj&Ok99xU$JBnpka#ts$-l!@# zSNPn5<5t+gQ$SniJU&+_uw`x2)Wp{ZEsxKAtdJ4Ss(tucb8(;bamNeWxWd}jvOkw8 z?`vL=E4qd!n*W^TI~jJz+gcg3nH_J-SVRMjySL8b_~(VE4nNe~{?UJZuKm}$k6(Q( zD}7H0 z*c8kbG=3Co&T%f+sAfiH^wzau&075JavRQibOvziZjdxoUh4=n(5odXqw#EqWG3${ zLE|8$D^A>R7KbD84c?J*2%_6{b zjNcJIZsyI4*KaaD_c?J-{flphSL*G*xwq!gtFi)X3kjJY&$su3($KY-hG&Ps_)JQn zmP2u(9ti90w-8;h(?A@Ar^nCXx)3vi8;HA4>-({0=$&EZ0LB^+os*pR>*2mbwhXT9 z%bYJZE@J+?@P)(0#-9Nt3tk+k(Xa|ANw5=<(S^fiGnic2QKdl=0xSnbUL;D3$j;zLl?FSYDu(GfE2=n7M*uY}IIda{hvv9* zMOX6Tmxq?i>|e{ZXWOxdU$1WY|D*Vp{x$#G57R8)?%qB9--drb7QVZYfBa?XPyW68 Sr0&;!ux@|JVr#yai2(qzvaDSI diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dto64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dto64-g1.xml.gz deleted file mode 100644 index b046103890c26e572f48d3c80ab35651610f4b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1470 zcmb2|=HQrTW#z-boKli+W}=&Js8^Aj!|?Xb!7S-;iMEHe>z%CEc1df*-fVQzUwGlE zft>fZ1|81KoX0V>IqjEx#Z5yl{kdNm#`yaq%h}5R#coC?zgp;Adz@CfdC%;!{eORb z{yY8Y_4#7muQT^Y*ypy-e!AuTySQJ6cfDTz^25iy+uz&qcR&AEu({?%zx}>_GvdDI zUzgZ^`O|Ct>*41QpLsaFzVZEv+u!JXAK&gN@&EHzZJ&crpTGK68dZAya&*YskQuU8apEQ*I5@D zBCEU@@PMhmjY+)1L}bT-#S0Ix%JH)5eb{_=kJtW*ERMIeB3QP`%_+WP$=9?kbc0cj zt;O>l#WF0ps}oXzww^0|ZozRY?BJ;lUmwhQe6CPn%i5-?Kqp%spZi!LBbrtF@U`aR zKI`L-7q)SQwXJ1;E>qsuydYO}%h|>SxqNeUfyU*B&w2ba;OWB;Q*QrQetp~gU+)UP zR_wManSJ+y|KmLA3huKWh8b>WJURoobvH;FDz9}kPIB{ViOOiKU87PUuN~T~#osPh zicP`U4#|(}q*`Q(>44HoaO`Kg}sr3$786LhrpKl)rrJ-y+hvGyqPTOQ5 zx?rb)I0#RVpTl(_W(GG9cc0exW6jVz1Hwn2iZ5p}5r4+S0*o~vdd}njw;=wZT*D&f z%L`vPTx|RqP_p2~ff@~~fRY3|5m^l@1NkmKmV-_grm;39C}x~ya%F$!e6ev6^JkcH z1&$^VdXXsY0~AJ;hR7vwec8a<#doG1RT}I7TfN55O{n6y9079ig~vh``e=?zx6InU z{_-m8zWZUUanX-I{K~pj|HtyJ`0M3w3pUUBcK5D#eMJ4AfbuunAAi~Pr#&vdH{bq; Ntke3P=@xsL7y#b)rQ-kq diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dwarf_attr.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dwarf_attr.c deleted file mode 100644 index 66b8eca2..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/dwarf_attr.c +++ /dev/null @@ -1,198 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf_attr, dwarf_hasattr and dwarf_whatattr etc. - */ -static void tp_dwarf_attr(void); -static void tp_dwarf_attr_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_attr", tp_dwarf_attr}, - {"tp_dwarf_attr_sanity", tp_dwarf_attr_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse.c" - -static Dwarf_Half attr_array[] = { DW_AT_ordering, - DW_AT_bit_offset, - DW_AT_bit_size, - DW_AT_byte_size, - DW_AT_high_pc, - DW_AT_low_pc, - DW_AT_language, - DW_AT_name, - DW_AT_data_member_location, - DW_AT_producer, - DW_AT_comp_dir, - DW_AT_location, - DW_AT_decl_file, - DW_AT_decl_line }; -static int attr_array_size = sizeof(attr_array) / sizeof(Dwarf_Half); - -static void -_dwarf_attr(Dwarf_Die die) -{ - Dwarf_Attribute at; - Dwarf_Bool has_attr; - Dwarf_Half attr; - Dwarf_Error de; - const char *attr_name; - int i, r; - - for (i = 0; i < attr_array_size; i++) { - if (dwarf_hasattr(die, attr_array[i], &has_attr, &de) != - DW_DLV_OK) { - tet_printf("dwarf_hasattr failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(has_attr); - - if (has_attr) { - if (dwarf_get_AT_name(attr_array[i], &attr_name) != - DW_DLV_OK) { - tet_printf("dwarf_get_AT_name failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - if (attr_name == NULL) { - tet_infoline("dwarf_get_AT_name returned " - "DW_DLV_OK but didn't return string"); - result = TET_FAIL; - continue; - } - TS_CHECK_STRING(attr_name); - - tet_printf("DIE #%d has attribute '%s'\n", die_cnt, - attr_name); - - r = dwarf_attr(die, attr_array[i], &at, &de); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_attr failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } else if (r == DW_DLV_NO_ENTRY) { - tet_infoline("dwarf_hasattr returned true for " - "attribute '%s', while dwarf_attr returned" - " DW_DLV_NO_ENTRY for the same attr"); - result = TET_FAIL; - continue; - } - if (dwarf_whatattr(at, &attr, &de) != DW_DLV_OK) { - tet_printf("dwarf_whatattr failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - if (attr != attr_array[i]) { - tet_infoline("attr returned by dwarf_whatattr" - " != attr_array[i]"); - result = TET_FAIL; - continue; - } - } - } -} - -static void -tp_dwarf_attr(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_attr); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_attr_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Bool has_attr; - Dwarf_Half attr; - Dwarf_Attribute at; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_hasattr(NULL, DW_AT_name, &has_attr, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_hasattr didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_attr(NULL, DW_AT_name, &at, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_attr didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_whatattr(NULL, &attr, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_whatattr didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attr/ec32-g1.xml.gz deleted file mode 100644 index b8ea5a22476517cf263adfb89b2887f9ebae39c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14221 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 eQqAKx4e_dl@q)hGGNO{h)~WOrEVZI7J}Y$; zyAB9Eed|48Ro#h|>kgPC|A|gLXlnQ0IQ`i z=pPp2Gg~-?)qG|cBp%8+JMF`-`XyInzQ4}XmYk#r zMV>$O5u9GN=2W%Ix-$-@n4G@(#9!^$TdA|N^0PlRvgH*tOYdsXoA4!L*2_B&+?eu~ zRM%XZ|7E%R+|oM_*vxkG?OoF*YQ^+Q!PKt_Jc^InU_2M-R|{&&vO+s z7S8w67U}n|takVIjpRubs;N$GX1?`Hocroo(KLf*$ukLT#xoA`q;0v^6X^5bXG0$MWu+}0DTh2H5?ch_fW+32h&P2jC1q2-b*=4@ zOl&C)yJ5Y?w!CUj(Y4iO)AwK1io@yBs?LVT-$4sYj1 zmhj&Ec$3Uulef-%5S4!O{VH+3qJ5jwXWm>g>1t}o)z{Zk_ZYqW@=>=lUT%?wv2Vy* zv!_O8zWc01a;J(P+w!_9``r9;(ceb5#NQg_Jw72b``xdq%eCL8^nQD~zU%VTr@zTxbP0#cUYva}Ke-$>?pT_w&M|d0OX_KB*r~kEIPrs|^{kQK_%JwZXB>F3U@zq+Mn_Gx*O2W)u{*kT*>7F3zue7U1h zn(NMm>Y7FN7w5O_dR@S54n!|HzqsUwO`h8)Jtyc;jneKO<@0YH-}>G;z-{tzwBP}*0@xeA2GR*|TQ2v^% -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf_attrlist and dwarf_whatattr etc. - */ -static void tp_dwarf_attrlist(void); -static void tp_dwarf_attrlist_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_attrlist", tp_dwarf_attrlist}, - {"tp_dwarf_attrlist_sanity", tp_dwarf_attrlist_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse2.c" - -static void -_dwarf_attrlist(Dwarf_Die die) -{ - Dwarf_Attribute *attrlist; - Dwarf_Signed attrcount; - Dwarf_Half attr; - Dwarf_Error de; - int i, r; - - r = dwarf_attrlist(die, &attrlist, &attrcount, &de); - TS_CHECK_INT(r); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_attrlist failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - return; - } else if (r == DW_DLV_NO_ENTRY) - return; - - TS_CHECK_INT(attrcount); - for (i = 0; i < attrcount; i++) { - if (dwarf_whatattr(attrlist[i], &attr, &de) != DW_DLV_OK) { - tet_printf("dwarf_whatattr failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(attr); - } -} - -static void -tp_dwarf_attrlist(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE2(dbg, 1, _dwarf_attrlist); - TS_DWARF_DIE_TRAVERSE2(dbg, 0, _dwarf_attrlist); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_attrlist_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Attribute *attrlist; - Dwarf_Signed attrcount; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_attrlist(NULL, &attrlist, &attrcount, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_attrlist didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ec32-g1.xml.gz deleted file mode 100644 index f2a53356cc7c7b21d01d63966caaa5f6344b86be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5465 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 J#CU|^e*ik9GOhps diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_attrlist/ec64-g1.xml.gz deleted file mode 100644 index 19faaf701f76326d603581b94029e73cbb5d130b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5475 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/Makefile deleted file mode 100644 index 7efdea50..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_child.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dt32-g1.xml.gz deleted file mode 100644 index 0510e6afc1fe7c42da71e4e7c6da564bd05275da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmV;20C@i&iwFo)1Jp|Z17vhFGA(B@E_iKh0DX)x3WP8a0DE7t-Bw4`tAyxRLfDvd zK|+XYB)@mDvAb@HnXya|d0%G?@*O|F0hbQIN``nQno+U~moL%L#(Qv)%OQ`VQYEOq pXvwRiBnZ;7j#zP-dTS~@FC+Qy^YDqK;pJ6ik@t1RAm8!x8*u3WtYnC1q8TN-aQPA)ZM+8;xg7E+Dpi8& qixdPXskf%m^D>hEJ`bN*8osVItmO^+R=Uob0000graAQh diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dwarf_child.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dwarf_child.c deleted file mode 100644 index 98d1ae5d..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/dwarf_child.c +++ /dev/null @@ -1,138 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -static void tp_dwarf_child_first(void); -static void tp_dwarf_child_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_child_first", tp_dwarf_child_first}, - {"tp_dwarf_child_sanity", tp_dwarf_child_sanity}, - {NULL, NULL}, -}; -#include "driver.c" - -static void -tp_dwarf_child_first(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Die die, die0; - Dwarf_Unsigned cu_next_offset; - int r, fd, result, die_cnt; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - tet_infoline("count the number of children of compilation unit DIE"); - - die_cnt = 0; - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - r = dwarf_siblingof(dbg, NULL, &die, &de); - if (r == DW_DLV_OK) { - r = dwarf_child(die, &die0, &de); - while (r == DW_DLV_OK) { - if (die0 == NULL) { - tet_infoline("dwarf_child or " - "dwarf_siblingof return " - "DW_DLV_OK while argument die0 " - "is not filled in"); - result = TET_FAIL; - goto done; - } - die_cnt++; - die = die0; - r = dwarf_siblingof(dbg, die, &die0, &de); - } - } - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof or dwarf_child failed:" - " %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - } - - TS_CHECK_INT(die_cnt); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_child_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Die die; - Dwarf_Unsigned cu_next_offset; - int fd, result; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_child(NULL, &die, &de) != DW_DLV_ERROR || - dwarf_child(NULL, NULL, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_child didn't return DW_DLV_ERROR when" - " called with NULL arguments"); - result = TET_FAIL; - goto done; - - } - - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_child(NULL, &die, &de) != DW_DLV_ERROR || - dwarf_child(NULL, NULL, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_child didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/ec32-g1.xml.gz deleted file mode 100644 index 355cacbb614d4129079347441f6477ca9f8c5c1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmV;50CoQ#iwFn{-q}k417%|~GA(B@E_iKh0Da6c4ul{Oh2efrG2K*#xT~=NuR_QG zI*B0!M~t^$Vq<6bitqiJ2_kR7V4&Z(TY8*709rD{BauPL)}O9KODk{QMlQSDq@hYs sT`}l6SW1E*S8gG0bDqXQt4eoFNq&v)F0owrSgp7{|1Qg}MwXH2?qr diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_child/ec64-g1.xml.gz deleted file mode 100644 index 3ad7586bf2cfff9f221e6124c751a8bf6027ef4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmV;50CoQ#iwFn{-q}k417%}2G%aT_E_iKh0Da6c4ul{Oh2efrG2K*#xLLIUuR_QG zI*B0!M~t^$Vq<6bitqiJ2_kR7V4(5WEj`X304*8fk;tHA>rYprrIj~tBbQxn(oiL+ st{C(jEG0pZE4L80IZwk^t4eoFNq&v)F0owrSgp7{|9TCN)tdkS01JpZkpKVy diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/Makefile deleted file mode 100644 index 9e4add35..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_die_convenience.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dt32-g1.xml.gz deleted file mode 100644 index d69ae6e2bdf13a74fe87301781ba92443374c3a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmb2|=HOsXzT(ZmoKj+Jq?>N2SCN~;@b>P-tVa$aY!80dcHMcp>c$o=u`TO`HWglC z^Wrg#y0bi9bMFeXyP?xIb=HL|$+&+$Ti+vmW#;tCkSY3!g8H|A@1DI}rS6ZQ>*sBK zUA|NGA8qrSzCJQ|$!Vh{KUdvqTg4M9ckk4<*4s9>(#|U7U0Rd5>F%n?HnqN6v3un= zuDSK&quR{=Z9kX4nxDE`tE)7_Ung$*{zINicbm5(_Ht5i8r6E)!QlW zKdJp@&Lztar(b<-Ddb;e$7AigEcU7IuDnmv*Hry_eZal+y>mI=&Bvavtu{SAWG@?a z{7v1*FY}kb?mo1R^T(ns$2Tl5XV!Oo!}>-xLRPOsoX47tdmH%9kV#t9s3y83WW#Yd?f(}kIDBp!TK5C`NvI@&F+4`jryp5D4l z;gi&Y>BmG};+Vf&+R=0(yCF_0T%eNog7;%CrS*(enK6z}Oda%lwLA8(y;xevx=}n1 zXcdrMdhGtQA7}Tfd;*!azTR^3FCLvvpy9i?^u^s-fXdSUEWb8o4Mbi)POtAvaF|f# z$5;K+kM2|WcIb7_(SL7uRByK0w&?`KHE?I)WQad~>OC)^optr$N`#tSGWy)=j!&Ro z`uM1{HBOAF37eVIxw{keWy0D&!~Fm8)#mA~2kQBgu8YV_+nYbL$bOy*|K^)dT<)!d zMbO>b8)I&#aOi`A3t=bR0Gcq?pZ+X$N6++gVD$dG+e$-nR@De@FWpshc9v4?G{v*w zSIt6FSA3eVZu6>~@{bpV=j>)YGgErE%-&z$*=6?q`nlrH{olN-yPYduS~D^L0Nm}X A)c^nh diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dt64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dt64-g1.xml.gz deleted file mode 100644 index c115a1fe868fa2d9302a9318d49b1e0a4d81a72b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmb2|=HOsXzT(ZmoKj+DqML50SCN~;@b<1__9F)gwgS)8oj-p^L1W%=(bg-*F>1#-n8=cG7bLJ--mK1=6ueZSr&P(^k?4PwWsuaf5q;W z-~~9!X5X{w4xd^lfE z*I@JgJ%6vC{I$%$gz^5AK8dml^$$Wv0uS74y!x=I;^2md^8*tO{(2>|`T7Tiw(BMd ztbqatn@ahoM{Kyx`8w_W#5)=ZtP{oc<2F|PY-KXji;z9%{n(8|yJJtq$45uIff9R; zy-8J6=-8w5<cf>Vw^w}JC8N)+?)U`a6`pxG|ILG?g{dE6%Qa%38 Swcq>em>-^SX}n|2$N&Ia%&$)X diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dwarf_die_convenience.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dwarf_die_convenience.c deleted file mode 100644 index c193d2f0..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/dwarf_die_convenience.c +++ /dev/null @@ -1,242 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for a few convenience functions used to retrieve certain - * attribute values from DIE. - */ - -static void tp_dwarf_die_convenience(void); -static void tp_dwarf_die_convenience_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_die_convenience", tp_dwarf_die_convenience}, - {"tp_dwarf_die_convenience_sanity", tp_dwarf_die_convenience_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse.c" - -static void -_dwarf_die_convenience(Dwarf_Die die) -{ - Dwarf_Error de; - Dwarf_Addr highpc, lowpc; - Dwarf_Unsigned arrayorder, bitoffset, bitsize, bytesize; - Dwarf_Unsigned srclang; - int r_arrayorder, r_bitoffset, r_bitsize, r_bytesize; - int r_highpc, r_lowpc, r_srclang; - - r_arrayorder = dwarf_arrayorder(die, &arrayorder, &de); - TS_CHECK_INT(r_arrayorder); - if (r_arrayorder == DW_DLV_ERROR) { - tet_printf("dwarf_arrayorder failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_arrayorder == DW_DLV_OK) - TS_CHECK_UINT(arrayorder); - - r_bitoffset = dwarf_bitoffset(die, &bitoffset, &de); - TS_CHECK_INT(r_bitoffset); - if (r_bitoffset == DW_DLV_ERROR) { - tet_printf("dwarf_bitoffset failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_bitoffset == DW_DLV_OK) - TS_CHECK_UINT(bitoffset); - - r_bitsize = dwarf_bitsize(die, &bitsize, &de); - TS_CHECK_INT(r_bitsize); - if (r_bitsize == DW_DLV_ERROR) { - tet_printf("dwarf_bitsize failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_bitsize == DW_DLV_OK) - TS_CHECK_UINT(bitsize); - - r_bytesize = dwarf_bytesize(die, &bytesize, &de); - TS_CHECK_INT(r_bytesize); - if (r_bytesize == DW_DLV_ERROR) { - tet_printf("dwarf_bytesize failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_bytesize == DW_DLV_OK) - TS_CHECK_UINT(bytesize); - - r_highpc = dwarf_highpc(die, &highpc, &de); - TS_CHECK_INT(r_highpc); - if (r_highpc == DW_DLV_ERROR) { - tet_printf("dwarf_highpc failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_highpc == DW_DLV_OK) - TS_CHECK_UINT(highpc); - - r_lowpc = dwarf_lowpc(die, &lowpc, &de); - TS_CHECK_INT(r_lowpc); - if (r_lowpc == DW_DLV_ERROR) { - tet_printf("dwarf_lowpc failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_lowpc == DW_DLV_OK) - TS_CHECK_UINT(lowpc); - - r_srclang = dwarf_srclang(die, &srclang, &de); - TS_CHECK_INT(r_srclang); - if (r_srclang == DW_DLV_ERROR) { - tet_printf("dwarf_srclang failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (r_srclang == DW_DLV_OK) - TS_CHECK_UINT(srclang); -} - -static void -tp_dwarf_die_convenience(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_die_convenience); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_die_convenience_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Die die; - Dwarf_Addr highpc, lowpc; - Dwarf_Unsigned arrayorder, bitoffset, bitsize, bytesize; - Dwarf_Unsigned srclang, cu_next_offset; - int r, fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_siblingof(dbg, NULL, &die, &de) == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (dwarf_arrayorder(NULL, &arrayorder, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_arrayorder didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - if (dwarf_bitoffset(NULL, &bitoffset, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_bitoffset didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - if (dwarf_bitsize(NULL, &bitsize, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_bitsize didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - if (dwarf_bytesize(NULL, &bytesize, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_bytesize didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_highpc(NULL, &highpc, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_highpc didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - r = dwarf_highpc(die, &highpc, &de); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_highpc failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } else if (r == DW_DLV_OK) - TS_CHECK_UINT(highpc); - - if (dwarf_lowpc(NULL, &lowpc, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_lowpc didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - r = dwarf_lowpc(die, &lowpc, &de); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_lowpc failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } else if (r == DW_DLV_OK) - TS_CHECK_UINT(lowpc); - - if (dwarf_srclang(NULL, &srclang, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_srclang didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - r = dwarf_srclang(die, &srclang, &de); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_srclang failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } else if (r == DW_DLV_OK) - TS_CHECK_UINT(srclang); - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_convenience/ec32-g1.xml.gz deleted file mode 100644 index b2c04b5c6f8e98a42ca6fab8a843e7b5e1b2f9a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5960 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 oeLXh8zE&YK-%}JE&1 -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for DIE offset query functions: dwarf_die_CU_offset, - * dwarf_die_CU_offset_range, dwarf_dieoffset and - * dwarf_get_cu_die_offset_given_cu_header_offset. - */ - -static void tp_dwarf_die_offset(void); -static void tp_dwarf_die_offset_given_cu(void); -static void tp_dwarf_die_offset_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_die_offset", tp_dwarf_die_offset}, - {"tp_dwarf_die_offset_given_cu", tp_dwarf_die_offset_given_cu}, - {"tp_dwarf_die_offset_sanity", tp_dwarf_die_offset_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse.c" - -static void -_dwarf_die_offset(Dwarf_Die die) -{ - Dwarf_Off rel_off, die_off, cu_off, cu_len; - Dwarf_Error de; - - if (dwarf_die_CU_offset(die, &rel_off, &de) != DW_DLV_OK) { - tet_printf("dwarf_die_CU_offset failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(rel_off); - - if (dwarf_die_CU_offset_range(die, &cu_off, &cu_len, &de) != - DW_DLV_OK) { - tet_printf("dwarf_die_CU_offset_range failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(cu_off); - TS_CHECK_INT(cu_len); - - if (dwarf_dieoffset(die, &die_off, &de) != DW_DLV_OK) { - tet_printf("dwarf_dieoffset failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(die_off); -} - -static void -tp_dwarf_die_offset(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_die_offset); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_die_offset_given_cu(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Off cu_offset, cu_dieoff; - Dwarf_Unsigned cu_next_offset; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - cu_offset = 0; - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_get_cu_die_offset_given_cu_header_offset(dbg, - cu_offset, &cu_dieoff, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_cu_die_offset_given_cu_header" - "_offset failed: %s", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - TS_CHECK_INT(cu_dieoff); - cu_offset = cu_next_offset; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_die_offset_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Off rel_off, die_off, cu_off, cu_len; - Dwarf_Unsigned cu_next_offset; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_siblingof(dbg, NULL, &die, &de) == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (dwarf_die_CU_offset(NULL, &rel_off, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_die_CU_offset didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - if (dwarf_die_CU_offset_range(NULL, &cu_off, &cu_len, &de) != - DW_DLV_ERROR) { - tet_infoline("dwarf_die_CU_offset_range didn't return" - " DW_DLV_ERROR when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - if (dwarf_dieoffset(NULL, &die_off, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_dieoffset didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/ec32-g1.xml.gz deleted file mode 100644 index 335c6c61b95b8280c69310412774e4761f6e1cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19169 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_offset/ec64-g1.xml.gz deleted file mode 100644 index fd6f9eac7d0505f7bd4ddc80928a94795d77c2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19118 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 RKc9d7e*!S#p9w&$1^~|*M;ZVC diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/Makefile deleted file mode 100644 index 5b1b7dd6..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_die_query.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 dto64-g1 ld_symver.o-64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dt32-g1.xml.gz deleted file mode 100644 index 1fc0851421177f3aec1f519d478906e5311484cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1467 zcmV;s1w{HEiwFqtm8Vkx17vhFGA(B@E_iKh0PUUMliM^9$KUxY{FbM3B)MM8Ozvh1 zE%4BR4jrB~vMoCr6w8(6T*F_FoaAmOxS%!hX&3h8I_JvHC*NJ|>eu=(#S*xw!ix%Qn8vs=g_17rqtcy>yi*wGtnC<7lkd=BJ+nf zJW4lyakt!D?TbIP^|F3w)1Ml>7-{wRfsNcL;gtX6xnGUl5#WZ#4-Gr-7I&rpvKVRm zIo?$a@A_sw-cHwzDzjoM9RPbBgS{I2au>oDV)%@g!c)?^Z>Fi89K73F=d*ARJr`Nt z(DIR!)Q_G5)BHL$Jq$Ow*b`+&;M$@6%{490Hnyp=;}3Fb_oU^X=;b)R0crTs_PJ4% zu&IqqXvPy;RiI$eKADHISdqaxf`tN&7Pf#!wez^{*w`Nmp9kNT&oq6huUc{ogu{0C_W>ivEv4ME?2 zPt-|Xl_jZV=o9rjPZ0Xm5s%t9;p-@fu~wIwyiHUOi`AWMYRHNNTm6q#hpLCg>fSq@ z_nr+u)$kJpL}L4IHCuh6)nU>hvG;40_cdF5n#G~wVX-;)@yQma*vG#s+1?ZF4U-Ou zz2EAF4L;G}tlf0&ehk;&NlkEd<9lOs30b&Xj(xx-GzS@e8FzklOyo;#s5>FO-BDw1 z`dzLdeu{{CtTUj-wpG-nHQ zA5~QF1gl?foU@=Mg(%VIbXVn^Q1qxxMUgsaJyffcgEp`QaU9UQ4zew~j4Fg3i>H?y zHN;izz=eZRM3wE#p9#RhG%Af=&sbVk_PbU{=sCY-R3!sE`^RJFpq>)7)ifh+(VsPj zuPU#iCI`=FbZwbKaHB@E^WqK@-`a0!QG4$KR}ZWIP3{}v!$`?o8DhW#5-H%LBf}QY z(nD9)(E=uzMqqxN99PpD#u-}}-GR0VXpQ62dqoL4NQr=#R`PhbND4aKC~{bFaC*m( zpyZKUV`K6jQdogN0a;!grG*z3!9Ciw+upT zm<0|M>5(PuoeAlIbtgK%qvgir@;{Q)+xGeJAD~06#FB6F{!|}pT_6&t?@t9RjV0H3 zxCmcaOpaaj6t~rgjTxZJGRgJjWHv3CRSsrpYMCs#V-nj4am12=R=`b=^vqRBk2&ZJ zKd+FSIw(z$+Sq#ms`E>aJRBMY7N8)24&IR;JZK_^hnk$+1<~n7xTu>_eI!LacnLwV z9W?Zz7|Nr7Kr)|@(AP;)n@}Y0Bhrx@JxT{$8%sV7qLy4cFR9JkdNFMQGP!RMo6(b7 z85=F!dD2X_lN!|hqsqx$C-h3=G(li_|c{w>I1oJO=pw1r+R!`sgRfo;(azkUzh&iW*F;W`57f zYNqKWL5R3Fu+CgTzMgA5%oI$)6ihJ>#azoJFp8*&@!S+R^7`mIMmVMZ@4E;NEtrBS zIDqqH;WIwa);wz(d!n`%{$p>e^~q@ V_lr*UL53 zo9k!wa&h-XmTi2SRee+3E_^G>d+91sY9&7O${mga!jOHD?WMb2$UJvyFA7_#MdlA} zxRq}F;%>RQ+82Ks>t+2graujOF*54$3mdsp!YTjBeZLyJBESuU9|m^bE$&MHWic}L zbG)k<-u2CVyq&HaRc6IjIso=M275L3%UuXth~Yb43QtMvzL}50Cb9KN)DZWJZr%2)}J z`1wr0&&G=1&q0jc{;!4d80rNf5X^5|RkS8IwMrcxKa(TFmli0Hfu$}AW}s_~E!>|x zYN3F585M`dM*WxKH@WD2EX^oZ!mp3F`Nmp9kNT&oq6huUxqhcd{)03G^?tvThM;f1 zC+Z}x%92zWd!l~l2|~X*;!!JbzK((z8+EC*;Y9VYSl!8{hU}xT)&FR9sCrne?!D7_ z@7eHE4L?CZB)0!nv(+bB9VQ(Td%sqBU$e!hSsW@J7Mt@NpKNi8bNsuK?LE=nFzJxk z`>k%+;1dnb+D+H)$ME?(sR{0Gd~a+nAsctgu`jrU<{-l_<4&rMiF~O?5l%>Nchs1h zewQnVpCY0jn+&M2ZB=!O;B%_C7IFxiBf{C>r7*SyDTjf1tLZTps_`8)Xb3Qh>IzRZ zDpki339esxe@;Q+7DnwQ=*$EP{Jk{262oWI$epS~)k2N>>@L=c+}Pq*VN^ryS2%&U z6dyJJtZFZFqr{uWyTce1N4&q+(fPF~Dk)qKIs}gcJcJB!vVW(4BZwa~=NjkV&3w?D zk2;R|1iN2voU@=Ug(%VIbXVn^Q1qxxMUgsaJ@loMgEp`YaU9UQ4)R!b8P)PS7Edo( zHN~ z)|T`d8KzNX|p?000F9mh7(^)mTpcXp%pI5Y#AoVY5;6wn2!M zS>RBS9$CWPnUEe>ccSwDNMQ=v|dEO3+X>vMYX=oI^|(CLR6O=o)8t)PB(Kd*eY2n zH=&mY1N>gOPFqmOz<@ouNeu&hYr`eMV}S2pK*8RqkA8ye$-`g;`SUBQsA6I@^LtKK zGc7L(Ld3m+b>)UK-n+^AG#pA`|L$BQ7_*eA0MfC7aHrgK+|H%E~ TQ;5x#4*&Zdgp>3Sqoe=;3&zA~ diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dto64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/dto64-g1.xml.gz deleted file mode 100644 index 2cd4ea5a2ff71d26658562b80ea6cc1607130950..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1465 zcmV;q1xETGiwFqum8Vkx17vh>HZ(0~F)ny*Yyj<@QFGfi41nMFEA-~4F0-Ac-JO%W zZtb>*-qu@h&pb+^WZq~|r6{M~uODSQxph-FLbF0(!&5E_C4UA$00aqTql>K4M%^w- zZ*Q)j)yu`*7g@IPZC3S7al7!XDDS1KM5&ed&?|R14hTc`MYfmjb|LfJsl6y{sTP?( zwBcF0@r%3V=4xO3X{?v^!DU>lp0S*q6Hywh+T-ycC|2tovq~w3CB(TkCul?xANQ z%NtrYauW5UrNCrpQ?%;^e^Z9ogVoQ(h!vQ`<*ld zZTme@BY9Ppq|(?E^*c`x`qdGST7vU+6vWu5ORWtjN)L!omn(>!BBCCf45+bfRdtHsKGj3ljM_`knF$p5due(lhHKQwovK6DLXG-tF4l?M*y2}VR7346 zoWNU(Tg^YK+RNN1@uu0(X?d_!Hr62=fxe?zO~=dqW0bet{&F2oZL3ThmjID|kFyBn2IA6gjLvIK5$j zUfhyi#>V75q_-9Uaqz^jJ-GBn0f~7i_5e^oV2S>^QH|x`k0$sda6yft=QbNfuM9#g z%>uiM^vDwS+JyALx)Yt>(K2Il@gGU(ZTo!q1L#~UvEZA0KGnx|7l??{&!++w#*)i; zxCpN-CdV#%irZ?$at3HwCb@h$m`w|2m4j)TS|m$un8Y?h9I;@a6>t+IJ#$skV-9kL zpI1mu9VAVV+Sq#mYV}KxJRBMY_Mjku4%U$$JZK?@hnk$Y3!=-7a8Wm<`bdg;uo8m8 zc2L)cB9%u0fn+@)p>LF=wxCEpN2DW{JxT|xjU`_OQ46k}m(*5ny_i;jOl}**R`ld5 zW222bPa4T~QiG;{R6E&>Axyd&v|dEO3+X>vMYX=oI^|(GLR6O=9v2nWPB(Kb*eY2n zH=&mY1N>gOPFs-6z<@ouNeu&hYr`$UVt}t;K*8RqkA8yKle@tR@*h}MQOU$==2xAp zW?Ehngot|y>&zYG>$&n_reF%DV2XJt<|>yElm(8szK$vqa7g7T!W2w_g(9x-_P=o8 zye7hCoJ_&Nj49ZGvjZn;oJ@g@g2M -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for DIE query functions: dwarf_tag, dwarf_die_abbrev_code, - * dwarf_diename and dwarf_dieoffset. - */ - -static void tp_dwarf_die_query(void); -static void tp_dwarf_die_query_types(void); -static void tp_dwarf_die_query_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_die_query", tp_dwarf_die_query}, - {"tp_dwarf_die_query_types", tp_dwarf_die_query_types}, - {"tp_dwarf_die_query_sanity", tp_dwarf_die_query_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse.c" -#include "die_traverse2.c" - -static void -_dwarf_die_query(Dwarf_Die die) -{ - Dwarf_Half tag; - Dwarf_Error de; - char *die_name; - int abbrev_code, dwarf_diename_ret; - - /* Check DIE abbreviation code. */ - abbrev_code = dwarf_die_abbrev_code(die); - TS_CHECK_INT(abbrev_code); - - /* Check DIE tag. */ - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(tag); - - /* Check DIE name. */ - dwarf_diename_ret = dwarf_diename(die, &die_name, &de); - TS_CHECK_INT(dwarf_diename_ret); - if (dwarf_diename_ret == DW_DLV_ERROR) { - tet_printf("dwarf_diename failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } else if (dwarf_diename_ret == DW_DLV_OK) - TS_CHECK_STRING(die_name); -} - -static void -tp_dwarf_die_query(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_die_query); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_die_query_types(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE2(dbg, 0, _dwarf_die_query); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_die_query_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Die die; - Dwarf_Error de; - Dwarf_Half tag; - Dwarf_Unsigned cu_next_offset; - char *die_name; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_siblingof(dbg, NULL, &die, &de) == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (dwarf_tag(NULL, &tag, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_tag didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - TS_CHECK_UINT(tag); - - if (dwarf_diename(NULL, &die_name, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_diename didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ec32-g1.xml.gz deleted file mode 100644 index 0dde7100876f7a61cd137e58163c81b07a8f1667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12695 zcmcKAWl-Ev+aB-`f?IHR3+^t#HMlIYNN^{MyIWY?-GaNbNFWg0-7Op3-GY=n(zo)q zGwrnBcF)ZJ>$!jDx-W7tBH~$ciN+gPb5kx(7E2CR4|}^e$JzSM*z(P%8xtjG`X7(e zgO4mGV)oJzO^3vy;*pH<1lS16%9AvY+alT!S971uhQb1sl#U*4+dJkrw!oQggJ+lJ zT8BAI{v!#&<|*x6FVKXaL;jUHPZzN-&R@>-+XZyo%r9<@mZRlAE_qo`kEX|FS2((p zpOG)oA?WMBJmI(N%sSX6FuHb;G`0}G0L;z*jC{;_x>>Nl*brS=o=cr@aVLM62vqTX zLQvG_*J!_K@49_Ke+mgd{P?&Xtfc>PfuT=-Xm|LWfcp5OD>x@aj9io)qismLND(8U zsVcp;Jprdf7vSo>=?@Pjqp-KbdmGw<=W+%Y&fDCNSz=Tl6YvDG zqlAEiP%ovbsfk!fNH$>m!1y*)d6~2cay#op+6BYoqvr}<1?_t!KJ8N|0e-An!1Xg% zlNr}miS>gY!_;_$-PD`yW=G5&0BFS5jEYNf4fRk?k}Md_U+IgQ-$olQ!qD3ESeN32 zL@VOGSl`_*#8>wFqiWgA4M$HPPJUPV62e>P{4wPr{OXp$dWVch7kAY7yAm9ijx6B; zr$}2+dBB~195&&@tcI5s!;ES_4Nf$uH;~ZTqAiMWEVVBXsevDoac?x;YlVDkx99jg zm5=^pi1FdK#qT(nM9a^n9Fhl@s+0ONXOyWF4G;(Js?a1|;Goh9fMzl7JJV;$6D9(? zQ6Ypu_+wIJ;)_U(R=P%_lxgSN=3rdm&v2)Q@9ajw9SROaq6fq>pHGqD?IxK3^_06~ z{qru%b%O_P-@}hJ)R?tl&Y7+BOhz?No+*&BH-l_cRXXQCj-*b+j)F4Oqleejy6W!} zVjq0u5uZBC<7X9-u1|B>k1WMy)o<8~)65fYM-SI-7t{W{n3~c>#V+)loJhbqHvxHL zDt9{QMr#(rY6#kRbz5mFk~Y4F@=j=*wH_=(>fx^SUdp%!MCg~cB zZ5Coid0L8fQ}-=-_o~K(1e57_+FRhL_VNeizASEG) z#RNtSI!?(@m4~5 z2o@EtH{Ixjj<_xnQz5Ue6-r=^ExR;kuV!Dmwdx;?vgj+39(=EN>qW~b7O z&Ce!D^VmYEtR?@UVO(5JARVrIwP9)*jU68`z=@JxtFFx8r_ceN5D84t=5ttr;0S-w@n9;EUbc^*lk@dW1epz z#@q@I!4tg^2i8PAS9O6{UnojUL*!-9&q`>=Sgt1I>$VNSxl-J%f1&zU`)=1tiW)l` z{KdjR{;Oh;!SGxM8&jL0Wo}_`dbF^Mc1AyC6$$Q88gfJ$W`ES#`AC4RW$Qt}@j#QV z1y8!cQJFJXT-IC6z{CjG_!=PWVW9{}HM_S7Jdf=1w7Q{3|Fmee@!*kuglE?hNt(K+ zLcWx{ysQcSSo%(Bp^kOZ8@*4&CRKb0%zqjg)v`H^w%?B*`ONCUXyO49K#us7XccsEi&r~ui#mK4RUybqpJG36j&SUWCtGc72I66@OH71Pb$)zYNoy`x zc|0Q(+R!d_JZIpO^8JHy#$xo4lJiCM%KMlST${O4(1gOe)m$uT$R*L@+VAR>>Da1s zfVajtF-**8<9I%N#f5)i-yPO*{V^jE(|gRSmdQ?2%-O#Ax;N!eOhM&S%Cv`B+aFK2 z(Y-1HqSB#pfbS4yw}Ana7IOrbWT`)nbl|GjjyP7BL%;P0H!#!Q%UI&O6=eC12zyb| zQdHK20`nT}q`s-`kxO}GT_EDQR%n|Z}Wwr*>Uew_M2xC3brCCc@ zWk{dG@e525fTHR2xvDBC49sb0t7JBU-+cP@s0a<*rs5Y6@ zGr=ML4F>wbZudlmqyJm5M0m^B`bjzzQXEU=dl$PA<%O7H(_fs|R8TGsc zXQ@8nND@B5UVlN(O!gPQ>45)ge?~DIObXIVW)+c}*I`m8YG;z~&UDpkK_G05;jWzH zJE*RG-tf3trI=NadeYL^Gdua{&mSm7hQkug;3P=s4vFi#&d~doOAbO3su`Z^K0(QD z6tV%GmTe3A!P?w49@N&^!?msF&W3Xvz&K~(5;Q=(0=k>u60%(o%gmiE$}iQcvAMe^ z)~VIhC!q;2F|q#aCKSWX`KrV-{9GWyyJypCCh5@DPpg$ao!%ZZv09XaB94BT`wJf= z*0h&5mBrx*dwyd()!6JRd2H}~_IA?pjmzTH5s2Jf6~p&S(-y46JJ-IOvr8Q&xpm{! z!}n&~IdD9eGF>oqm7zS)Xyi<{H8%3-gcX2O@tz*SS`V=sxPQ^tY=6Nm7B3OmqSiMr zh>#hD$@8bH>N}Ai-KN(n`}Rf5l^iK^lUuSRX?4hQ09Yxe0O${&Chi^uA_LOsiO{(D zr%l7(4SBi+px>IKbQth{u^De}B-WQnKI7H2H0l4w%|L5~P1h=wY50ZBo$ruj*EY4l zSQfI{=&KlpwiG^UH|RS#+TVeaxs>Ny`Fj08C99FD!iug|zaJaJspxcfuM}vqvt2N@ zin9`GO8EZ#aAfc~3C#=c_zDo1#Ye0^V?97sv2rcitRfs(#%r$)vX*~AW87>yJ{{6m zJKriu_Me!;jpMQcwh$6SLg za5X-pm{xZ_oy+Q23r!Nfkoc`=T7>ANs z*^m(Jb$Ad~MYR_N*n3Ec@@%N4Xs8Hmr8L_icD#7#C_YTMMm{!@R5+<;8cZWr*X2v9 zzw!T|QJ7p#Bb8H?PhwN+bho$|;WU^F(;dK58ru3PZ%;WiN_GNZ7q3$9efZ(JhDgO1YcIlxTD=91eHfed)6tt{xpa z*Oxfh4;P@kKEf@s=n|yk?gs1}J>B;u#r+w(7m|^jHs#7lxECl|vq0Uc9@SSy@!*hj zuv3@%zhEMnqLO#yNiX;$img_NgWl2yX8Nl@wlZPGlgM4)QQAatb{cr!TSl5P`DXhl zGVbB2&$j1b0BP^qg+vO|v99ZAWo~a%I!me3$mDU#f5CT0Pi1Kp54TZ41~~r22MJiC zPtx__LrGUYYFymX{pnug$ep{jljx95?ST=^&$c$FWtTWsX3vr=bLLsHE+_SZ^EC7A z4}B^@=491S0r=cLLz}qTxy-we7CQQ@sC{7o3!A-(efvL|&b6Maj2AeN#J8^VWoc^} zcP?dwW+7$*3`sc!x|$}YiS@pdpb4ZvLEJ-CS5IbH(IakS1pJ=k*Hg7XX^Vx?f;l$z zE#0c_KKOW_5$}_sQy^f{5RkbukKVz)pv z;s{AcqJ<*h)1Uf+3YQyQ!HneyNy{Q@lG#zU_~`w-2!YR|NaS5u5Q}!Ol{b>a943kbEmHPU2tD?6bVHzaD-gXFV?& z7#ei=jkE+lq5ny<15J=#yWBt@XenC&SlU;Io?S0!D{t^Mg4xPoOkJCnzIBxMa!B`q zBk^(B7!5T$NP23%VBRe}K;9 zFX)v27odyDbe#I%f$l7!ICy8->F_JdLU&S58gtS4pi9g3QQ8y}C%0;1cEdvgb&!60 zuOd|n6Mua)rBKTL*CjV{Pm^Y+Kx>HG>eY`Buc!}joy==e; zp_lQ#0x!9^4cmBkhVIT}fR`Tc#-iq(4aTcS@3+sv3rSms2Rm0sceJ_7tE4FwS`SaL zUKKz5KMFnX+9|ipY!Y9I;LwwSH-RWkO`hTJ2N0CJ{E>L2M3DsTow%8_=LpUOz2~WC2$(?CjPcem{QZ{Y-}%z9Ftp7=Saz2(DaAYwlWr zf9EkMD9ZX}PP{~KYmEu;!^81|1K2OH2_}58*GQDzB&pwk>KiGvaT2Ha(R+a+5i?x; zP(`*+TDfRY(f#X(;EokJdoa+4p3O+E1NvDiCmATf=EkiJ!-mTOoktH=xCy?0{%OxA z51cvTYOELsg#awdG91bL-N@H zWc==N?(bts_y}sTQYj2&A?`@5;j2Nlb;pSG z2`P;f2Ujy9TY5bDc&KcD@BqW1RTbXeK$hn(NYf{zS;^D334I{04^sF8RTRMco8Iq4 z4d&@)zF&)rZCZ;bsZ2cG5t1LaK`SiD&g&(}v}6RP4w5oBvY#EN z2j7ctpX9<&*`>Gx!}4yeUiBQ;M|8fm=@404JK1l2zKA=D8q`KZ4PEvMmC_>ez#Q<$ zNg|FS(iRU6x=7wGx9#SaHte5+XC#Zbr26T8;ReZ#jM3)T`(+hM9=|XkO1pr{-LY&$ zCg9p?iwU5Q?HE9NcQN^w?Nhc`TWCPkK(gNvTByM$1UNtQWE-())4;>jTssq!kTPLb ztjEC_lN{akh2s=1?nMP8URnBR6a@eh7Sx-Gsng(1y>FE+LGUBYWZ21RGr1~5+c&V>F0gH5qvr)$`)H%t>wHd)6vlr zs$*P_oYOeDRF@j7mhLy3N;n^f9prkZvOY@FE-QJTSx@H4k$E=`%nv4YB5$D*#l*?- z7F%lo7UX0f7ixWMG!H7R7n&N%BzsBCP~ja(y!d15+XwF0CIe*SLt|IW6N!cn?9LFW-0fR zvYLUu7tinQ$^v^%8Xkk!@CB{iXQAsFBd(9|vuDRc^KXXc48%^_+Q6`2t^h`1>`a>^Pwn+uali;IvD1Jh zkNQL?1p;YKR@CYiX4lMmW}x)U@;n-k`IY*HWG>8PU7g3vue`EskyYAe8O?uD+69=# z#cy*<4JTSe*onAb9g0iaQnU4Gs_BGFf(&On#!oBp$`*{@$U_nAssP#&dHBqjwxnqq zOVo@dR30qR*AWlFQ`3eav<mDsBN<+dH(>lyF$?RQeHi1dGbMCE9Cj zx(-KZH@Ti)OIdRlXDdQR!_q?SAudF25rS=>iIOg_u9r|h zqh}5iUFuQ~4B&23(c|E3`a!+U@86Qbt}_;j(c_stGZ``O2f0mXu9?}5diLQl2GiO>y%&P| z)mW94ivO0w-)jHG;bZ(PP~b-HXNkPv@jN9NQA9qS&<7C4#^8IwVYl-@sff~yWpcTY zi1M%yYFsJswu#A#TVFyGQm=cq)ug{gmP$jC!N7o*sRA`Div6sx+@VB=gul_^JDcr=OtREx3A&M81sLMYO`7;`6yw1Nd{Zg_*0CPYWEFO(_(PE2v@H2 z%_LsMyE0?C${{ZsL5$t>`y1k_`^b%3$NaGdTtM|f_xYfbJU@u==U3m5TW9Xxq&=&n zB^lhgs834`-@R+%a*j9U&P+|I%PIX#qyG){O~wC!`uPK8$wpAl%~T!<*`9T7b_SEP zaJJ!lldiijp`+V2-J$}1igF@P?DT~>-wS4s00Wk<;jZQB1Y2>)s^jWG6uP^jpvCvX52rpol0UhxS=RI1K4IrBGTW&!>8X4Tb^j zq>6C!?^MGQkrdCsL@NQxK8Mi(Ok^aprnp+{?{NiSh44}ep84P7t)hOW;H4<)j_B)&hwz@HBLN?vOJ%fnz~kEB(L)5yr!;P zSQ8Cg)%CBb>xi3*FuySK_{yVvXr@ke4(3L$--|3`@**B^fdAtE4Cihs6*!B2z)W-P zMBV-z!It+fjR>n+H(D@w0ewF$n?qdXQ|j;tYVI<_cl@D0LdI^YV$-l+L)0ac8Ct>F z0k_g--Z>}+qxg(#70Q(!IVg46T=j-(yq)Sd3nW3Z4Ku7@Y|t)*uSa!7HT*D^>FAH8 zyQk~D8SjY3bPpU7#djfpLfsm&QJk8x!+uXhq4 znZLNynk7CVZp{c}ya!VL`@&?&!oUp<*9ndqTmkx;osWZm{=~7_--x@06>++F&nx8% zR%vB9STPE4#GGll3UMyju*J{~SzE=cGWbH-!b5tIf!S8YRqed$1MXLE+0%XQTUXdgh9rao*ZGj2(na`JFo zRmbBYr!}xDR(SXDYiN?8mRzL{b$>b7e#!>8b`!cTk`ka4BqR2PFpN(DyO%%mw~1~y z&0z1NAk?>0?u!W02%L;?TypYP82v)Qs2>}J(PCZ8BpXY@gha=YjxSxQPSH5q=)o?| zvn}Lp{rc-Vl;2B#=HqKt*(aA6P=$%Zu$mBTft(R&i>GYYWHqXmzM-+4Ah5U4)?~*O zAus!K(6M+B*S+m(D)zp`_?f~Mb$7C>QUyKgTvfU zFj&DB+tcxH0j_ww7=-=xgu0v9PAq<(eWr~qGNRP!sln3Ll z*gN6yqOl+7;ufO1;BfP^mxCQTtIbz`ZzV&#gwI>p%DJk?-CbKsN7d3_+=m}+RU0hK z%-2~sRwYyY(MIHFKMZV|`mg>L1mi-O4;N|+Mj}QdS`meCF&ZSejK%Sc&pu5g>O&}V zojebnS}+CM6kO-oOP%;0ggG*QqI(tf=S04^76M>{5gTqync^b5O=(TfBaeKKFBoBh zv#rjjs9J`GY3o0o13=DTud>=EA)5#Hi)UuZ$cu}IxX-q0+kwAeJnu>T=T6aE!Ck-L zA1>J^iu>qh=4g5^y_uhV$!Ip}b`b#PmN%_ll0F0P7O(Khx5JtX7=COoM+UN-U>U8} zGUGP~(kb-OcI?Gr^IT9VAG`yOF|(OYM4d%CYAD#{5MYS#OMIJm7Auw@!V{LEj7G7k zy(11^m1QQc^(CC_jopo8l0jX#ib{%{F+sTB1`QR0v*%KFLkk*r#SJ3WzU4G2I&^9W z+91p`3=WGyA*z@umGFg|dj`jD#P?WM@y5dE90lHZxm9n`GCDl+Wuk*F8O%^Hy89D+ zj!T9$-s=MUi~jV6MV)rz$gc0M9$x09L3h(M)M4^Xbrkxl2TL=DDGD5(75Rb{Vm^jC z^oRc3P~A)8)Orod^C$E1B|JeiyWCA%1&YKwXNaIP<|Ko~YPoegxIaGVzBh_-^aC8xs9;Oi?IBtnlyw&GVZSut2qtmyqIdc5k2=JRyuV_HkA;X7%3>t+ zmhNgD7B+!N(&>HiaKcb+{zyi$9@!JAx%6|}>$$RUmfr{u@ zwv)>yx9J_PLIyOC8Rcbu4(4|4g&C#$*UOKHB)R`YLH*3aVD4BPUa39IT|2t(#q>QY61XmXlLTC(&$6p$meX zkEckI#>y-i%=!8nI}2ll{2CGX6~$Fb$Y1SD!-dn}v!8wc+Pk0~cAwoHp(VfiQy$iQ zwU_t&gdIi-xpv-y$?uM@C1*HGPde)Z6u*#jZoT$b2H%pQjjj{(q1SZ~<+b27v=gQA zg^Z3cyHDnrqfLe~?WNi0ROLPS33jZk@Dxvr(;mgwVXjkfoc@aX2~HxYg>Pa{MJgB) z{M)EN+eG!&EwfNpr7M$6O)^$S-VGhVtdMZwbOADN3hR3t^Wgf59 zoN2QoL3z*3+2+9_;OnY!H_M9}b4|lVCH6Q6Xu|9@kl0bXPvw(YJQr56^j%h+YW%3n zY&#N}kZkS!e=Qsw5qWuT6*BTR*+OKz9x~@k1Kiz7)G-&TOPhgot!_Ssy-hx_uF*;+ z&+ji0zCH#rljSwY-W?ZRjJoht_g8?p^LpW3$p4hRU6y@N{caFE<$r-oeawK-c%mjXh%b7d$jdZM^u<_IKrp+>N>eQJ(8r=`ka|tUCB5LJn1ov z>sMd*Ls+e|(UfY|p$n~M5!nBz91yk=$mA^QH!p&|K3~N@l~pM<-32R5x{w~eH4vaV zQENw4FzodNn03Gb9OU>qRj)Gn$|AmF%6Nqd3i|`QW`W}qXt|6lt9ZR}0IqjMf9nPX|0)~Ayc7C&10fD! zu*?l)MomP7CrQ1Y^Vh#W{^4I)`t|ssTI+xLSMp!}RsQknU#I`Uzgd6%`)lK`e|N%P z{o5?@*T0ni@bCTftA8)^|8xJ&toV%d{pbFj%8FXF4NK)FHlGh-HzcEc`q{Kpj6gRF4y!<$ zgw;?;9~-={>?Qhw`PwF#UnCOBE;q5GknqvU?+R5VL5tQEUW8Wm&)FMoAHTfIttHPo zzWas$qbR}-ZnH-^AxM4_xKKmAP8HQVpGe`&U(9){*m^s+)!m*(uE7Hg^6&%!<+#Fp zHh&**n9A6uk?1^{vS{!V9!YoUk2e8A=0dgP`M*JX?4|cc0G%z!m$P zHZ;5i<5BpL6~x){A$r6!2v2H0B2yK5Xfg($UPI}{4x4H#-Mfb`pMIxQDWsCo*rG5r zaJvB#g7^;09WXdc=LoKd&;_#)f_RHx_;N(}RMYbR`v{KJ;#2(05aeelbM?Y3(bHpu z;-aTkHM*P8Ug4S=*jt5V;hb3YXNgvL6DH1{SC=yWvfEE+B~A|pi*odkNg=yg&h$^k)d;C_J-_YE$>4w!1+M6Pp|O!+9dc(mU&#w^Sv zh0XVkQ?h0+ZGkINU4lhp4`0lQilkZgspr8uHT5;>%tK0z<4PL*Z*MWA%4~ngj@qQrpYJu9778 z8r-9_`tip~6&>TMaYA`4Ss+K54YAJ12aTbSdQhOItfsAh9h@w-7o;;7+v z7hgl-gm3qh08Ku2%t~QrH_7eKW72uH&xkb)n}uc8>_Et3YL=jr{DA|jza`wu+0OOj zRaRnF+{2nn|DMzOm?f9YHJvY$Zq?Ap{dL9f5kSb+rEPCU>4$xTHIr}Nb?t6O^DqAx zDZYob(MYBXk|oWd4`tALWwec2EgL-21s(&2wLTMujW~;8KE~{fs*0&U+PJEGIxDg; z92-(zk!@nQ71EkwrHIczRK>FHx2tne){paHGY(a^V+e_@w0@F=!}+JU6t}XJqa|nU z({U=kCNt>HHPoDm`@PEGDX^GUFZ+~Ng8qa#y!~2=f0IT_5p+zU{8IoHkGKz(dKSaOm|Xf+$fz&7Q?_RVj0XI+68nm_ zCwij+*BE=1@6`_f?PZHe2CD1UuZ2?z`O@9`8D#jyMklM~J`wp9#%R=?YES=Mp+d$T zx001u+`3wX|Nr&k1oEkFQdr!81s{FQ{B3MCSf2B+xD5u{#A;NrZ%Yl}Y1yD1Oq}aM zOnimJMjw`=MrAyxqpnb0J)R*go&GMV0Q{PbjQjg6+xRomn{&bihn4?fNcknwH7j!c z|E|UvsIbNWy9c2*KoffUK4~BSyA}?6>6ZInLT;T^svA%Zhlqz8{7wDND;AMoK6|&z zl6ar_TBL39frIu+;T;ws4u?^PSG*feb+asOS~QX-$fs0*w5 z-(M{>?J}jK`!O%&0jkEUD;eVujVTFNL(p=To##CA?oeO`B8Mwg8h zno=sRf>MJZ%>z0~h9y(z&4w`++iYtVDjeL$X>^g`+_`L}9z4A0yPMkunR0pm7`n zMn_Na%(hW`rLM;L^bmf!0w4fI0PTE%Wrft|C;Ivz3gH%Rs?)xaV7>9%^xIT?b{~&V zWJ^MVUkJ2w1nA8S?@Obj1qRalSm0eG@SO-wYpW-o|?O!crIUVUtmOiX|JT*5=J|rmpjfR9(^OjmB+N zwfw|kZyGPAAT~u*;;}`llT_W>dU_OzY_(TTu%?|(Yv45` zY2QStZFkeBWa3dh@Qvxq5MpcQ22Hm9qCs^T-Ki!J%`dWL2F=f<0r4X&Y=TN`W8P4BSu5C`>|@%{D)0E-r8=Lt8ADo7t`M?T@#*m$TQWuSIw-W z@9v}`&-KObru+i&@6UyImBmWX5psVVj9pqw6kaZVo~lz~!EMpyvY8!WG!+|<{D$gz zoVu72CBRU%lrz#7h}yFC1x95;9Iz2+%H@c8xrE$`_mzcpIXApCkbqIK)Bvs=UCcIB zQh`VH<0IAJEV|DjU7=oL1fKD7hy>+kceECzZmblD0&7>>!St-FFk}B6nF0Z^w+59cj z6+=49ZOH^)@FdwV;SfQR;>$Tf?>aJ{cU=%$A7g^IRPC~FOias*Fqhf)ZeLTzU1n8Q zP?Y%AVB`+N_wU`qXKIcbGz_>V)Xyu;leD!-G#YaB7$RtyHB#21enJ-J(R6vH zu$F`86OV`ETXyF;$|;||!*$epN)}HSnBADgAn@(~{y8|S3J?f_vYte8PW@>36^S5! zQiN7B%qTi6nlv!7F)YZ*Bd6HM&B~X%{&Fc1>l;r^##X0jNN^a5Sun; zPy4pSTexP1vRgH(BaiICCb(4~L<8yEo{g7Lc6YvmXSf~Ut~M{;%h(Q{J*8EV0A2cW zWqv5*KF}GmlG7Vs@8Ik77MF@mN>fd|tG26&uhJxK^IN5TcFaD9&8OYnj%F$0XDd!X zG!Dyy?@A%PT>6Ra%y!pZ^1fiYGeZwk*$?a?r&-S{k}m2veq`6ZlkigZ@V#-vl%IgL zwzBY>tJST9f(rX-&JZyygxW=03WjZM&}-P;;T}<=7gBVAq48lMWADJT}1xTu9>d7s?$kVH|&v6{-{V)-hc_sOhhGa zx`6fmN#8dl0_KEBevRr8Rjekp9VF)M0-#2tHF$XMv(}m-l*YQI z!_xM0rHqAP37m-#%cgecu9|T|iZJ9+gwl^Z3V#1cNg212>QdE(v#P(`ks}8J=Ysc8 z3cW0Ouh^j*H05^zpgL#d-=arK1cHC?l=HCgjM9&ej7>**4b)kTrlFQK+ zeYI1?)f1NbviO?uT^itLsjqhkE1o0aCu|N50~z&ojoUZvNz!U(?sm#txo9!M83S zL+eu`@ufS|ooy>|S31pG7w@3ziS@#}Vt#$ZzYXP7rc1mO9va#=iDEgM-?Rtp%pt0& zJame<-iPpiAmCymAJ>^acXHi763E|lC0Ibj*Kh;MGnT81!ykL%N-`UoIC3)ABqVH7 zcJe>2q%;+*Jf4y8Z>X2ppVM)F@_9f$W75A*&T5?D{6)0FQY)os;OI-_KfJ;)pZ9r>aH?YOHZ-9$TjhhE9-8 zOL{B*;AC&W7MGg(WzH2sBU|TChhBBFfr!IzqKlUJEiHp?JsL3h763n&oyF1ux z%Apa;%Rrj0o`5$yNwZZZhr54%@jw+|41>A(-1{K1myRAb9xoV&M8Iw@v~p;$kGA+C zMN)7J-v6E(pEmI0s!3SrAa~<{BKvn7!L5=Rm0q9qC>etNq|{PMnk9BZ>pXQOw-dr` z+`3?qlNoXWO%0iggo|v4Kdwe-hfMy7v6T8!|Lft#Ii0wSUUy?WOhALXfU?~<^HV-3 z5|fIka>8|<4@NJL&aSb_Y$4@pZLTuAMJmu<`{%BlyU^5ZjQ4>3O%6#~w5Lz74@i)$m{93FK647cBbq zfyv?w7_0?d7tnAzco*FUK*nlJ8G{Jd2GcnNRk}Y$O_4aXV}y!36+Os=&B>3uG}D%3={@_>CjgHpQ%n@9KM9;x zPquNO1PsJ*aeOV?C|VLe1kFBQ3^!hssLwF2E#mrNuWlnqX;0xkbU%j&rR?Du=d?6d z<5ProiHDM_;=TtZ-+QA;0=hgs*5J-Ck+HaJ%HOC~P>{WIiwUv5hg>lndeL!<_Qs)2 zPXXb3fT*~&LYPyitpU;SK3PdveUsKXL){+d{!i2_2Co__`H}C16W;*yk%|2$NXlns zYV*hSDB6;Q^M^#P8k#TmMpsd8tB z4LcT#TeDRjK>biqz(#(NUPl}^mt;yWUjmhS-*U`3(pczfz$m?He(CL7xe_ASbi3bb zqVyEpwi`T#V%HSxL{4NJ^=$UNW?U9z)-@C?cX8ID<%V>E?)LneJ=p3FXI|8R(aUz( zs(78dM8&^y!Z!`l6O}nrBj1xVwdOlcF?VfS?z@hlWi_2MqXs4a*3W^~TY5HXp$0hH zpJM!|;ir>$3m4^1e?PTZxPuop3-p|GQN$GUmhV4;FfkvCs~J_od)^qxvY*DKEAKFY zQddGpgu9o*khU7}xBvoGPFbBo>B=p1K}VGu{!ydH^xaRRSDTlnNpS7D>H+ejLysCl z`jcu>0xF)FwQPITItBh{^CQ^Ys9AE@dX-^}&4&!Ct|W_R|!#}n`=WG0d{}x2D`x$E*CLD(cfo9{j90F9mPQTJR;D4(|wn$MVFJP#9Y= zzAO78Y%*w_UQrhq(Te{utiU}_f82=KYtyw zkT%;(bW3MTY5QQ$%k-lUrv+OY^NNk)nz}d^_^ma4L|C&&xYJXRUvTdoZGo?F>W9{h zoBD%9rH;=V((2Y1PS+=M=Q|9d7n)YfN-nf|F6Q0=YZ1J>TgY+pqX#D6HIGkwSc(R` zxsD+~Ss_+>q|yeKVvXQgGG;yOd13jF)x}#FF&12 zt_in57K82j@N}c?XBsNNHn|!gYbCNJRT@v%&6Ht+LdHI%-uvMCFHF)!IUT znV2i90|ycr>>0r}PRH{*p(F1WVke@&$)`ZqSJr)mycK;HK#q*CkD{!M%e10R)Jm_h zHOHf^XolPx1*HacZ0u9AUDb0ae3usQk(KF~1S`!9Y)S`quc>afkLjy|BX$l6mIQR1 zmNuTNRq1QB#B>!Lq4xgBj)?0Y***P{oy)ZrU)pl`U)jx$D#gbf zZX2H(K15Z})JF@t+EMIVpo7bgMmRO!;G$y8^|$tW^lb=mykNuA*fiODLoyUG zzl`9fGf(9THHkGg((U;vBc@eZcQh?BNnS9&%I@eN*-4`vNZ`-gN|;f#V}>q=@&WyT z0W-pFBjr&G_IF%08?UfqI%)aOu&da33AOc)D(&&H>eke?b$ee;?D&3PB*tD8aNn}%}&Xv==5ri{>ZNJkL;QbAw=v1T%7-s9p~Xc zveWt_J3Yp&Hp$N5_`W%C_qbwY)a?nrgYoh=J4A^4kvCCZXJ7Fu?$t3%cXRlGj@NhI zsnf@zX@24~0 z$BdTszwfyc)J9A&(prG%B*E%k#udVq_6Z&S4ej~DA@yU$%+QL6wF=t zQ9DI8L>xD35yl%8iPGH>9K9zCZa@ZN+YchpLd5s8K{4SCMMukJ)^gUr3WLxrVLubG zaD^x&(nnRhDi9%L_^&2*&B0h&yn&68E-9AZ@?aooC!(7B@D6;l|{Gx!Jj!|{meQ8XiDFsi9m zTi$}i4(V+5YwvqRGzTn43o!X=-O25AAD~^xs1;Ky%t9)oA@ zkt6VOXJSHV=SM%>q8)5=lV&!17*Yt|Hhz|XG+tpLmUEm@X89=!lW|uC(!lP>jF>J2 z21K?;k06zihF?<7xL>$|$)aM_d9;68gpkEA3<$w4U~sgr=#%ogwpi!RkZun014YQu z*ZcyI@H=Ql*1P*K_SwcY`&i$Him;)0ePU4ZZz&P@VEl|SmOi{i+4EI^X+O2kXU&aY zEa*7Vz}aOQoa55xil3Xr-Lvnw+MA;lpd@3X38d>(dy6vr`s)JHycviZ%tbCpI+7}L z1BfU(MT4*EB<;+E(Id^>Jd!B;s&I@^#l(^9kVuwG11b4t5im)t3c_&`aU2`CwdE^Y zOQ{xBE<#Hb#}P2~XQXnoC`rd|?*$G+YEccwTVk`97^h)ro5lsc(QQW) zr0p@Al1r#+J$d4O-?SStZ-1!d?rp+Pb?h{7ekiSm<_&^-w;dm2xjZ|^ISue5O;(AK z&g48UbK`Oi2lqBLqM}v`WXLS(nLRRaY-5_B_Y(t0l0#&&sTq)M-TzNp^S#G3k-C=j zp?>f)J{|lBl0U$>(vZtdXnA?;5qft)z9LvOcwn;nQxtc>+A2nfZyU=kd+!pl)i~*Q zY%3F5cJdmrjw-cW`=E?W(VW~hD9A+{$~nD~Z8vAjlm9)ODg{EDyxY;-!i9o;mOeXu z=74-;a*S6k)8K1-Sf7Z>%OK6Q-DqxP%zRM+Hv1Q^V^2|K1@QujUFPllwtZzLJ#JDo zn!d2J+H0@0Qebt=x=)(Fak0559ZKkiu7}=oDz=Xcm~vbi)0>=G?}caVb;n3HZ;6aWeTMku~c%myye;HmHLL>}3 z?!msaiwi7Y=LNB$V{8@2z@F$2yEVPZ!7(rtnb|5FRf*&n&KC-9fXl{#o~D=+gkGViWT3v{4q3G;a|})yevzUurAMvSzyQ5@?lG%1p=3lQfTaju_2G4yc{&7plvm9 zzRWUGoTeVF(|%?Gh}D>>M%Zzlr>dwL{qQHR`+vePn&`hUyzEPbk9WIvK=GDuzhU`# zaA5Ab_nPS|kab3>DGL3a=%+c==Z}=1ROJd^Z}yePz-Z*sqH85Eiy(mhcFh{gAb8v{ zjRoy`%rQ;*I2T;l`3Rhs;ub@^hL7gcF08iqOz9%Ni{!ZbAU&ozUm>T?7#Bn#y*`f& zk_5!im*FlIl?GLzO;E{U^2+IHVzs}V?tB!*PxP{5eXl0^1poeMKkJm4 zkR$bm5V*dS`s_Ctx4@-k3QKg=KZmMgzeG?yd4)>g+(=KsQXJ4iVX{kRj(p?^gk;6;W6<%(|g1cilu1qsX4Ob zD`G7Ruj}@=*)`yE57P7b*srAnURqv?tB0Y)sh#$0x#H+UxqJ0G?F3N0dvz>}KIXTH zb&B~<;-60s;Rq=sP!k{8V1@3gTUksP?jLA{YMGRmK%m#`b@{o}P^UbVuu17O(H{7I zhiF-b?rXTmTDO-PQuv)2mC7P)nPyNykf``AJRHnx=K96LVN@5MgGaU)hA_QKxfeyQ z3KAX4lW%D^Zz@i`_lykeK4Bkb>~zeQrESu-xv2OVRhaiz=pdH>JiVw(GuVaE5Bf^5 zj24mBZ?oMGV?O;>m=YFj^>d1-MO@pVbz$q2o2lF6Lv0Y#rW`+d8H}U`d;lim-c;#< zO5fR(Bk@zve9cJwRpy4OQBO(7P?cnu#ElE&YH|DJ)NA_9dSFi+II=)*V}peqp7JsL z9fk=MRHlgZaGt3Sn~cVeRXd?1^01AFJ6jHYj!y-8(kiFs6Rkcw)Uq^e+RFQe}mWmd!D}ruQ>k%uUh@D!7IjV@Vct@8oV;Ti3*#rLHrfS zX#7v``tm1uUEvlok}nDGFpZJ}?JJV45?!rzSW} zW8f_yGSqA)NR2s@z_%hgba-+M@p(C7u4dNj;;g?USdjmzbF{@?#o63En{W{2&Vty| z@vSDWEB#7_v$ipfjT5YZieLVkz3!+{$I{X3{hQ_Defd4Hf32>kDsY78bf}xL8lD{5 zH+}Tv^R5p$IdcThCBI2cmw8G()5Dmiw+Ig6DZ{5%C6SqFuG-GL#fQ8#96J(aI#;$o zuR2H_%~;hB>lUgEgt!m*6U`*M$dGp$@2y~5F$wK7mDu}1b&AVwOk}Xl>&?X0Z|%jI8>T)UarVlj zp`}@mRMIv9;Z?kh>Js~@X4dBGO(m)aCqK%$jUNh0zHN4k0DWTAa4;bfb7P#ru0IyK zfY|In&o~@|4+0Rc@_t&u{O(RvHe+`ZVyJalu(yw{>=7&D+l8a-TR=aB&vX$Yo^FI+ z$(sYW9wT?~GeWJPdm%aygmOz`LwH`JORXN?N&m4+%+pKpz+X=_Km!PjmR3A|jd)ov z0!oaOU>WAVM*0?iI(n#Y=X$d~@xr{6(h0c~x1`TQu66rP3}8Bn4Ln;-;mq)^k%;a(uiHBD$>T%UjS=QrT(K?-R1OIWbq;dbK|L< zvAS)TV?QJdUIg(boJIJXUR1BBeWyn|5-*gab^#W-LKLG_LUG?_X;4kwWD4^em}K;h z*5Nj-y?hpnATq7(LUN9rJf>VJ2_a>dyYF*x&u|eQXUE=yKNw0T`P|-?KvNE)p@oj3 zOR<5Ck0@{m^6^IwB#^9-?lg0SKN@vc00oqPl#Ppi@!fHhK>)GH$NBA9Ev(`U`6!?( zn;meU(rHK@7`Zqe7>Q|xiL`&^kQZA3`Aa8E*8mGYzaPQzI{*_NC{n0p;4;cZ!V4Q% zDwE>t&6A&U+@F`P8w=d&T^pvjMTf2U1q=f}P8E7A*UDXGyQzF6#+yQDx{=Gk1G-U; zuS^`}Gf-|POrl7O?s(P~+$nnV>@p+Tsw?oN{BRn-2w*EiyExU|1rrX7cQL%J#n~+G zIvLn+C#pqMejx~+wq`)!Fj$kAP5t`_%UGS{OhkyC%+!->O%G*B?> zb_H*aKx1#ERY!HVWc0;v_)*|JGJ#fVvkZ#++wCIR4S3uek$J?6nRJh8 zm(u1Frdgkx?%NLKpu3rb6);7%v*)E#8y4TawCgTwi3|7rN4E3GA-P z;I#;jI%q*MnE?E~O~BH_@{TFA1pm}#zM5SE0NEsc^D+m+cD9vmw=lNft5(A5$IwGP zO6l;(FR{>LR}g$C?eqiL7GHrI0~|Gwn3mXKM(K_u2Dq7d#2X(>KA5I1va=LGef z8rxt&-#eK|JF4gn$eIbRsYS-yxi>Fm1&)vo06J?Ii=7>e;wi;;;I40v7G(dFWYCs9x%$()s=)~2AU7df%ERRLO`jAb z+q!6I>#6r%njcB}QZmL%ow?;%8@7x@J1nWH+@MI47?1w@w>f{DjE?d(H){QhM2*|1 zuMCbPcW+SB+C6e5Vgh04O^DEY`o9S{q!!x@hCGahMzeg!kzC*T@k>cD^>{BuMHwpB zNK<+st-mCFm^{z!S%-VedrxBkj~ngfAz(k{gW7rICnQ%K`t|sH@_Yby|BEVyv=K6Z zB|Me^U}Td!<|T<_io>@2uqy}1UieT{+KQVt8J|VO25gwjr9Jn|E4$7vZZm-)B#jTX zeHOLo6&={I$VK)$lBo$pT_lv6!AmQC30p+ zHZKEyfP;Ce{nkowzF&%-XTupBK_cKbd(-`}JWAmz$pv21j`EykQ}3(EN$tI@E*mDe=>*8><2YQundwy5trFxmZ(&LFC5#9ve^L1MJm5aF~v z{~W!%q|4lqgX9?t0kxX>#k=x>D+ob;RLC?xm(yaG!@ciU)GWKE$hkVMJfQDD*|xOf zDyI}t$SF3k0FBKk4lPxj8GCp`V@Y*BgiMYRsPiX*CQ-x?v|p7$ltP%cb(12wn-T9Lc-00)2QV!F%xbWoe*aot$Dqcc&ypI2 zb`kkxojX=88CilC9~dAS=GMPYsf;3_eVzrai^1oHSUx$X$sP^`)zmj8q55vf?EL5>j7`TIF0{_KZbIJb^_`L@Rp`i)5CH>c`1slS@z5jT$X`@~K!P z%^6Q~n4-dr)L|vukk^UwK5*MI|aIrII(`TB>t6s5ddq9a6G9sv?KA zS2tY~8mVzy$k{iT)u?;nzK%r^t^72r&k390sYuUHBUl(oeB@j@7(1N%aryc3zcoeL zziQSx=x6-1NGT-v-;0#l+YJ%68V=U?ECg-av@gGtwT6ovw3O;7ss*u$oLe+&DBQh= zGrX9~c;1X2^@+EOJ?94!pxE_#MN&Pm129Ai&uhy^H|c|y0geW(AA^}ue!fP`q8Ocz zsN?H_%jR2rk{`s_#_-lt$%^UJR$XL#IyKKk{N7tzh)1Ix3JV!88YUoop;9P*%iIas zqxjy;{MYn&ExME|`W&oZ>{odp7gql3nxiLH22}{Dcv>ep)Ln!*3wCk?HkUStOrV*c zYwK04NoZxxG0`z+a1oyH=EQo^5P!~+kQP}Cxp@j>9KNHbp!lGMoaB`sce!C+%jU(q zkkR$bOiZKf3|$Q6Y8-kvx1zpwrGI{bMZZSZ}fjayJaiwvPN-GvZu=1 zG%jvyiE(#gR?@ay9YxisR=XW?skUn=Iaz*iL(CU&c#WLs89ZZtILmj$ho8{377w^7 zFtg!y5Pa5Kbiw=!-NWhAxWvC%w9)4fl!=V+e>V(5bk~{xf$jpMvY#*k;OyG$BmL%b zm`O^tWb9<)2y=P9!f$rfO7^A{uLt_7k}{RT$}IQ~n!xyi*~|I6v3{X=ud{W3@0 z;kkAe=~h1T?1G@w7y%dclzxgzV!%)eQg{kxfArb;h(CjQ%c1{qagvq^XR7W|sdJQw zbo(6tr#2fDUR z{~fw;z)$389c)eg^2KHNMBy0vY8Dn8n*+TJRO{1efSB@?&f%38R3XDIG7isR8O$Z5 z?vSW=un!`*yLaIWWK^|RKR8FfmW@6spJZ}+4$2D`S%Kf4Up$DI%M8q#yye=DUN7;A zPL0TE#5TS-smXR09?U=fD)6?Ij0213dTo!MJka~W0OQUd2i}krUBk4~;1~H|dh9{= zy+muN`eYsUhb|WkoVWXIS4bY1%dDpO@mw%-8d=~^5q+G{h_6(R=lu~>6Z4)b?MHv3 z?iIwgCa?jszGssQy3y(a5n8~GsTyZ8ARx!z@qL9icq+{^mAgxHCkw8(c+`)lzvd`m5~K>`7&i7uAeYuP|iutZJ+#iONrd66*Pqk2GyN5=cu zb}{wpKmu8IHP)ck+`OksXi5v#ErWd(1v-Dxv1T4t-F8X5Ha7Zf>4YBM}*m?KzJ+-TX?8S&Y3G#v*Ou0n)i)D*g~ zo!%r`G|YAspVte4&)b>jeHi@T5iv}xK!X>&$ReaChgho+yMd*wAT*9pT3r2}^I`6M ziH_oWDeN)|k>V!(@+La8V8D!ny53p3&Bu56R=#tm!5?piUH;Hm^hidYq~)C}H^{Fh z(9iqQ%gt;2v%J)k?*~&C-c$1#x_qyM&ZLU@?VY2w@~sh#;O%<%a84zq>9*D$i5nyL zQBI7F}_-A0@cL=J8qhS9TSU{7>Du+7_epe#;^$Kz#vtou4|2|pA z|2nO>ESHeJ{xhujd|Skn|E4lX+utNSO~9l~C%_J7mCuXn0JnD8)mrPSL+bYOxhLkrg)1UaI^>aJ7ai*kMoZwM`PXlC79^>~dF76rdNKJ> z)Lc1jiwb~Aq3N*0W5Vd?glhZ<^CbcerJU{WuzR6>o;{_8j_bQD^s5jj&gff-tA{S- zQi$1@t1lIctyQhg&`xf7zbl=_W#{{Y!wjEqXl7g&lUjy^VGT~I?~LimjU@2dzYnm$ zRAuax!8B#7o5jzWxYZVqGr^G@L%Bxyw7`{jZT7J1w6>CuXe{7Y-=>F|`E7Ow$6UvJ z1!2=0*)JLW4~;m0)&J0l``6x7!YhB{7O zb4^CnuKHcY{;Am$jhqe0Y!u~$9j1TTs$R@dElfZ1pE>on7$;Se|Ig?`^YqWK!jt66 z%Qa-Tm$o7IxY>lpuemmcl6x*Y`x?mpiK(4b6j?6f@twutC?eC~Oh~@_{sqO)a$A*&4 znb_8I@eT%N2E|x*#KsIc%~C@S2boAd;F}D?u+$#7+$}I$tE;xVT!sU16&?NJ5#8i-wm9g=-qnTqAR3^qZyxI}G zDhXz*co1t{fmBvgU{hO(1%Y^Y^&z(EC9$W(Pq!Hap#lf;wN^Hg9Vk{ZmCSp2ilf?IdIl-{%yPZl)+MpMmQ&1F_6a z{FF7X{L`q=%Mn<>⪼Jp$3{3EgJL&!U>J!+hRLYA zM!j>t80Dq7tg}2waZb?+h}VfH*a3jl^j26juUW`c4cdd;t6sYKc?@6tZI^mk^|?NL zQoQ8@E1po$eRl!?1Munky;AY%Tm&#laEy~Q30|+_rE+6L!{(+%FtfwCv_3`dOHzu< zj!}LJ&XHem#XrqKoSc#q*KA=vG-ITGs=(o^5HFZ4!u#{LKGsAxOkd-tvay3BIwl8s ze>G0mQ)Ok-i*31iRF%}@*Xq#)d#-Fgjg6FN{&f97;q^sIYkS{2KM6C#Ff~|V*N2to U>*mpyjTcy1WuiF4RJb?)3#FO&sQ>@~ diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ld_symver.o-64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_die_query/ld_symver.o-64-g1.xml.gz deleted file mode 100644 index c8de24e2c300f10b353f4fdf3f092d15c3e718a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8494 zcmYkiWl$VU&@GI+L+~u_5)vS|y9Zw!g1fUwa9cufcbDMqiv%YGcUjzmEK88!H_!LJ zU)}p}W~ytdPxqOwK2uE-i-7@8tI$S3cCs?_^mF#H_TYBq`pCy+`<~m^*$Lr1&jhrt z7#{_@)8FUThd|oq)u)BTJmWcM+uE$h6_WqB>qgVZYN@emsc9*1^aWM3j%Ss&@-7ObhBkv(Z~+VpfY&^z0BX|6dbbDzrxMxO`r8@O_@$P zA0AH~%66wMk}6m1Zbl8s?rvCCG*)HnKU%==mUo==j^n;w0sDesyBo7RQxQx!X-L4EUH>G|6p<9)fCi6Gqk zuerIFCu4dG_}S7a_eu;!?J@Y@8Eh+n!XBkQzDMeRoZ{`}rnb!O6}jwn_+$Rua4sqi zDP>2S8=7QG@GDhN@N^e6R$fw@0C<4+F z2l|sv%F?8u^3I-G45*6HWFN#Cer)BWRiCD$c#^4p0+X=Bv92u?)2h|%YLLD^xU>j$ zcAgY58QOWkX7)o<0i2=`i_Qy|Ckl9A88KH}_S#z+;6LjnylI^YffN*x>Z=vwsE^1V z&&zB*jiYX2R}&}+)j3GbtINYItn#o$=x@e;u!)FVk850{-fwY%w5{nUlolshTYLPG z296Tl?*8a%M)L9z_kVsy2}@IN2r+M@=A;F3qGMx_{-h&7q9drGo5Ium{1UmV7Hd(Y z{D()6%HiU|yz++3t?L>ih?AsNs(3TeYMr$iu98DG#b`?Um>-=o$C@`=1;^Z5yG>=D z{{0%;qB4Zks*p3BO4T3`*A(u&OQgHpJzmN>m?J~2p8h-@@6QqB^_|^rfP|uS8BWZ>~XG$kVLRdpBgHvz13*}!hVK)3@WzAC2;|h zB7=ZJx_o+6xa>;E*jxjueJV+E86g20Ee^NvZF>#(O{wx*U1pX@I5b6gS^)JRFWtj? zTg*&equ^zZwPM}|YvMw*CYOSmyDV_9PdpWyFEX=MX;=vA=N)BDSMvow5Y*d0L}mNh zFRbPzWuJLfKSaV3CMT63$#ebJG7miX4o{+KP=gcq)}_N9wdiG9-jSujfneJWzDvxB zsq%#$9y7#3RPcnJ^u7u)aOzwg8YtgitW5NdN{m_PWATtPzyeyPvS9HV5Pz5^P$lc^ zIW5-X)TDO4@|u5eB6F8Lo}7Di+M=VrHf4IPp#t~rnNJqovSEVM9)fDv!wI$P3n^&l zsi(}=sv64~%apO)n)ed4QSMZl+47zBoty0%2{6HR&pFeRn6deKK`#>{ zKVhI6VcDB(W7DfJ5J@3g%p0={{~(i1muIA>txQkD1z&qzp(g2+Nj5~7Cs(BoWqtyi zVnlul(aIITT3x$!o67ms6^M8wjEw=98ul|9J_(_Uh%{^n*)GZv{noy}{x?ifE1C;@ zM%hN&}Y>u68=H@zYfqksftn& z#5k^mUCt7|hyQ23azWWxV=VO-2hIS=-wmA1#eqA5z%)yPd`wDyTYMb#&Pn>;t@7lQ z2@5r-Ox)VPw0>E$E8ko#QeGS_wbQ{2a3dBwB>Z7VVx@E3Feh=@RB&ez$rum>tyw7< z##PNm8Ar(YK(Zj=qE2x?iXf0L1)r0@_Si1V{D9U|n)Cz5*B+n6pQf=>;t*`w8Y~rl z@}7(FdRismW%$*}XxEed1ywbmeni6co&~i%3wx4-UDWlqSox<#(Q9ofX-sxt)pjPC zMd!+xKMh@XF#8-&5b4ls1j9>&LJf><(u4OO^e8pV2rr;}0XyUJ%a{KU>skFr>7+8k znEnvOCwf{UMNAaN2wBe!*8NIbZ2Cs*^|BpgdX+&^SyAu*!i*y8CCm6P!vEHM^n^(m zoM6tlkp2*GQ`5goEdB-hpJjR!2iO>^!GscV2b+F^otB5z!<~_qmG(oKqO5yJ*l>Tj zC#>Wa57+6dx5rRVx#t$~uHB#P9(=Hh<(wkjYfovY8r0n$Ip=9F8SNv)*{h?i8d5s` z-jym+fJ@`p-RD;zweowr@J90OWVCDFqcYrM__Rt6Xm3kBRcIqVg-}dmet+9c=!C)F zm&Y>xc!ySG4GaJbr4ovXg4r1SGYNiz^KFsn?^u!O|1Tmq7vabM!30*6oe(KFox4Q* ze-Lr~hqEvQ96jP=j}q|?ym5kwfdwYH3NA~Oet}`#4+=u{;bg)wACv=$frNdawdCu` zy1TiNOdbBiw;6xg8-h(6c5T;EcA)OHnkARY))$Qx6w%qD-zNhNPPx)LHKaJxI^S`B zC5!o&ji*Z1>X5=PMWT2Eq6=q+Q#hYehgP&)i<@7^+##*6h#q00LwzV!VKP($z0rJCuSO7+) zZEV>OhDh|n^hAU)qDBM;l!&4KUe}v{%=sS<{r~Bgmo%4@H9$o{l|3|R{2vyODIkR* z(bxKzu>ncedYxrw4|VUmv~FFk>6O!}Fkn)?x7gqxmZ1>(`ulbHwvu1jm(tPp*$OC! z%{FPQ=T&Uj7_Zf~ui#}4!A^eR8pDeS#UJddwOQp(`lNG~i10Se@B32A#|F;*iZv{C zZ$7bes+fGj$}vz>rv*y=ZI|}UV|J*k_8`*7yQ%Npm+xz9}S%_o1ckjWSTr2T7`_y@tbuSf9$ERsoY2;Ph6^#ACjG5FZi z>*dpFZvEnSeJcObl=!bC&Q;~btl`4f4cN=H zAq%DGH$cTy)S-2o!4}gHMxf-=8b(ksFL( z$ojB`!e?C>K2#FIl#4+4QQ*n7Ti^O6XTVz#MKS;+k8wg318B zz~{!LVTgyBL9ff$hT<`L1xVaxOOhCzk{%F9she0ZBf^R?I!$w1@_;=Y>ADm!cXib` zQzVZ{t8h#(>)&zmJ4a9l`)x9NECuV9G*daN5+Wn^Z$3t;=9LeeSW{M8FVK^ z7vbPZ=2-rdMh4RDmgcNsfUC}i+nSA8?(=oCwj7~xiPeTdj>%i>k4oI_p}4TtlKp#i6TQQ5q8~LrYZ7oXHUmw)8v8EKvPLv4uiQjvU^Yy2#~|DmI{Q zCvlixe2!mSh(*YmGjo<&O%()CGRLl%}iD zthOh#x)!BMAopCmmnW?l4TTCR4GJAFIg!rzwa%0lGvUo->W5_+V~XqIg`)Dlr@sTd z{d_1k!?#!I6bIUr{N?-fsW&PT#^HxQ9w1urSBb1qy->%M*b@3>8^5nQ-F3*ImbBV9Lm^Ci8N|)km%?J${7P76YI?EQ5Cl%Z3!q zd9);8E{0`EmYgnZI(-iOMnba~7`GUHA~@Q^RTu0Er=Fu&p+ zN4+8@h!9_?0_~I_umMoD;I>n6H+EV?A5R|E=qA&nqOq$NV`Nsm958pb(^hfqAM>)O z)T|H2LlT>+zjP_=a_etzw;Ow1_gj`)H_Z*3XyDnwaeQjJ!62-U@kvN7(sWgv-B;qh zE0H@yEyGNcOYHvvyM&%ukL8)7w;n5H!OFdto1YnCl|GViHNorND$m{wb|;?Z^Mx;e z9T}4_;QCz2=4)?Uhmc2%eg1-reh!V2Tp*}e`h;xm@S6vXgx`A!FT5JnRvN)Eucx40 zp)EM}GJf1!Al7iro9LQMd6NlyOL^{3a(=MVk}m&4^Z^nc?g@KwUe`DCvX9EGkh{CH_qOom9%1XmdowqcKGv zsW0!~5YsML+JRwhCH`+|IlHT`?JUJzPL@pxVS%ls|l33v9 zK;Y$vaEjHYEtge03Kf~xc}*3WzO(hwwRWJUGzyTBobD^doPc>Fgo!f6?u^2_Pk1@r z&hr^$jmK=Vn57y9Cn4+(=0_RQ8>Br(6%)KN7knE$RPw@uJL2o$vC7n{+-%-^apylk z;B9$}$ONTq9q<%bh`C7?lNy>^?>x))WU6}APhHnshF z6cPBUVlHgG^-9`@PP3IT;;Z?4d27#v2jF$NF*)ACn-8_Xz4O>0ePr*S52$7$u6}11 zqd^L?y!#o)y|L1#>e#s)B<;|-EKVeSd*K2*JauTT)A?R9!H@bAng-zrAhUv9a8rW< z+BeRvOXCtptm9X1Gm-Tcfyci-L|CdLW(_V(&UUGI>ekt2ZYS{v=@L@Tp|Amt6Z3xG zl*`JY=c;FQXT_Lr+PfGP3#I=PK!5M&0)iq$xFJWQQoaI>TK=&BOjr}p9T@4*rcQ+G zJ#+-0)GVRPIMk>lSb2YhnVY%u`2)I|YC^+hPme_Ab`TOAfUlh_WJ?EC6(LWeTB$S=@{jWXal~2Njvo1sDGhQVnEwts8?hZ;z+eI z4#1~rFmiJ>UKrjyunt-DIbUI+aV^io7Ck%31pgWU?Is#Ot?`hb%3h%6#~WUtCJq8H z^O(GX@QRwpjrVcL-s3-LdkZ`T3i>A;ED2w@^N@Sj#`?a;*j@=pAzb6$+qMc^UyZZc z`J64|rJv#T^N@Jv;`#l%^aXFqr*!datm z;IR@ckl>z`RlQ1nT6Q#)L1#7(NZn7(2I5Vw`YRnC7E&!_{K_`bZW-$V61W){ziSM+ zG);;HCImR$^TtxKkvfb@6a6QIN2LazN^Q1Xsz@z58-lIemEBc)s2XV179zYncQ%6{ z;5uB=y&{KY*L8jcF2AekdIVh~L+euL=&90#RJ5QD{aN(S>DVu76iG*BH-`(3ftW#N zsiP;)-(;xOJm*wT*IJdXCU}0D zAtshoV_^))Kq=eHs#zTK*@6KMruV+O6#O1FeIf5h%fJ0Vs`8tsC4Hh83hP^IRpHC_ zS(a(;&Z!JvT`;_pZOXM3Sa+ zzVR}Ae(Y;}RxD@bvUSr7p2pD+KIk9FMT-9BJ0$GVQrV-Iz+*Bfl@ZGswGK{PV(6Xb z8TjKJi77tK(Sr9j8lp_sD8Sg4f_gPs#ZTG%$U^C9%5`a60c6<`j{L1yQ>&2Viu2t( z0kzGb?g~kLC9-V`!_o8*AcDL=SJO2VqHX37 z;!SpXhdZ zQoN}J{r%VCq%Gh{sGsvR4o?Pr1L_5Hw&60lE!ZoD*|;M#yG>Y4U)(wAWWGt=t#I!= z9X2`OlR1~zGoNMq70MaH#@h=-&^Fc~?N22k!QRGQf@rE42OA%#XzP{|hH|3Bdplq3 z#~l**;!710J44H&SFQ$k4X}Cy(C3VqKEcaSm)MpLT9`(JJviM+a|nLE8`m|B;zb@Y zKD=pn3*K&(-LC>hE+VA|wSut)DoKe%>Kh!IJoQ(Mr;kP`*z@{eZj&mtCsqC zxD^MaJ%Gb_1=Hh}i%t(3R9R49WXQ1#fF{2#6}x4sr-yq!>a+s-c@UD)awK1UIKBC7 z{f7QF97g@-Q-M!PS(I1Yi3F1)gFqaH2~m+yrGlv*Z%tJDM%QKh@5*~GibG6RY2h$4U%>?L?5{B}pQ-cD?sg*ul>a^Hj!oiJw! zJd70ZTJs}}5 zL(>*E-NTkG9w5=UL*pp)PeQreaO(hAeLRKW%#EW<{ANz)>%%??_EqQ9f~e8Dp!h??NH6olorOFH$B5XpQY8hb5E7|3aGy<9u~mLraL%NU{=rDZvROzvFX(wI+^ zZCL6@QmoY3W48NiroItA8AUY^3vz>1>fW;e1lP{C#rX0YHp8hS)#u}0=yzm(no`rsHlC3< z`W0Hzq*bX3I#msVetr=eP1dj8KhuS)RP)D|(rP)3$gEGbq7(g>A6sa{n&=?n(#NjAedi@qI(4-CScc-NAJKG)?(N-f}T9)rHlKQ2tHskcvqk6%kd9 zK(mUzoz=jS3#%}>Up`|?sM?F`dTodPkOc{KA-3W%$pvA7$K&5mskTZE^nAC%rk<^< z>;=!-gF9qhK<$x_?&d)q)me*l;<=bxRg)K+>B)TK@yNYdwthvYSnRv&aOz`F$^?Q+ z+@_71Gi%H2J{yR7Td8>oxNifL^zBm>zM?#7F^I1>*~$Aj;gmP~h6d)7@9R8CFLP?* zCNXyogY<-&itTSMb*$0dX)wMOs$w7P^LZL$#D@8Yy^?yV{L~1$ym-@_i>*Og$M}yB z>C?EicpP&ZETqgOt5>b89o^pzBMzi>cfRfG<@#%Un_8M>G12s&dgiq~EtB3?|8xIc zIuf)|KBvO@o1HIJXUU$Spi^yoIP9t+A{a3T82$Y#Y0>z?ho@u*<%tc6pmf{yEd-5L zwepl92m__fds4r2*Y8DzCbDnzPQyHUn%y`c(WMIVCCRp)Ka6zcoX*6f9h}@HcFt1M zZ|zBX+Atw^JMB{xb7<9`;w`@pOyt@+rK*w@Tkh+#yBcg+xi+pZpmXw(_Yyby>DXAA zf{f{kkRu?)pek^wt_i@=HG z7)((B&B`Ox`7{q;aMWu6TMF)$_zS4#{Ce-w*?L}+w6)bH!CGvNx+7M3Uo=A9S>pGp zTz=N{RAa^yLkKcm?iuG%MW#omqgwo9;X;aYe>Hnolm}son8*C6-SVHNGAD$geWUFh z80F(>7OZ(@>D%1lDLbhIv79TuPIhMl-qiYKeEd@XU{Lbqu?Q(_^jeN8X7|^Cu3u@M zc!!Sm;>pcO$O;)v1tP6ayC=5d=A$4=DPA2N|6><#2g(qjhbAr{WJ90?1dbZAV8~A1 z!I*PN;3mA==PE~~Mn_itjYoTnqOHJOIQnZJnf>o*&da4ogc6?Oa~&BiKnNBk6;cT; z>?T^wHpYe3iKIA6UhTXc&u$n4@psGGbxte>Gt4rJ>~e>r`k*W|StrG$_#5y%!+)(+ zD`T4EZ$^7OUlYkVp^O!t0`gv@yBWKjzU|c=wupu{QZ;P7{9I(dBMT66e~sUXHUr-> z)EZ_is4WkOI6d+|2`oz(y(-1{1^t*cC7>R(&rNEWniZ3+0_X1fOU%q`$lML^% z3qOX-mh5`f`=F#Cm=T6>#hI4U8)=G%GczHs>(|Nf?|` zqd9x(LZdeCj*MyvvV_H z|6#M6uf^?~Xn(?$jc4aePi`u(@hLVJQ&Pr@9&iDj4DnK0pBmKYs<-MJqWL6*q$F&A)D z+oCCcNaha$&14m_Pd`qPpU%#>%57nH`Jzhj_ii?lm4r%jK7YRt2Q6)cJ3M=BP^hDU z?`(}=HLpeZUtbXQfAb4_2;RJONucqk4|u=DDK7unR>dogtKt%1`R2IK-w_0(2n_s-)BfkuG*o+%Gnz(!yI8HQi&NAgWIq@JqmQ*p+&7A64x zfCcKi#YcCVDGG>A-T=bXM-#(Wy5lZB{5A1D9f1LI?zrHSF1E)(j+VbqTAkQ5{KxnM zBkzD7=#U%V?HL7Pf$51&?t~EmJ?HHp#38&q75=x|=hGL*hd$J*%xYjk zMmL7rjFf0(*p8R6zVJX&ch@<>xy`pMAc&dzkk_=C}^oJqR7-wwPiBBILp4Brb0xP8ry4s$&VG z;(?$`h+IRFgU|lRWDk>fKR%1Uo*y~rzMA}ha|cb595wWrs|M>mO>-BuUp3leQ`FM`wji9FHEq|{|M*hHEQbP10;u6})k!fNronL=G;?kAtR`WpXXr-s9c<;#V|yjZc(gRlMl25r9$e&-%64VZKN zEM8G^hW%dHpK0mKJzCoGKX~+H3+1-67omML(!aL1T8-tfL?{>uY|kzRg& z{?XwGs`jAY+;2m9TX}g6HMpi-d9ZvizIF8ZXn&4XeMrfM+4|`8sWaH61n<3)!MByl z`>Z~(1E)SK+wGl9-dRl<3r0;nH1ujSAAUwp*u+hL?fW|Z)g?8p(%i4s`_InQ2qH1v zjQSSi_ifRmO%>%squkDdWP^=L?Sy7y_d%iLxBZW=Jm(hkoc1Ny?LR`qUm26#d+?t|I5l!+&kr$7mJGpi=Y;9l!ESrT>nln|wQiSiP2LC~xqumH67dZb_ zE&+v_`y8EYlRzwjH{%gAmT;>xWVc6_T@r5TGs`UtP%M@EM~uI2(Yk3jqD5yd zV{gjf!0eN^5?8UAGEBat@73Eb#Vz|gx~5b-mdt3HG3heyy+6Yb9Bg2Qk92(p{WP4= zx+9D{riiF%TJlV#X9-MZ5nqq}(Nrn4|50DK+EBQ)b9j=cpP0#Y_Gu{%Pu-r_X>R?{ z;EDc9bLU=bmm)SY0~w0g@C&N+EDUx3tXlT8WfcEPzED0)p7v+esMuUt&V``$1BG$E z0zJTsdYY!Q;{@%fRuOi)p{AwkmFQFtvd^};q-2y8FUql+k#s4L%>nwjwNv$zQDqa~ zJvJZORk!7P9?7&CtKBAKVkhdRVS|F{Nmnd-I)n2Dj65{G-KV6I#YG~gPof3KTR&2; zVm|7Z`E^pHGt=$pxui|(@SyKe@~>vl+1#hh3kaw4;GvlB7S^)0an>PI$7N9Jko%jF zucT_r){0JNU1xY+(xgcy#zV;1jx*U$^e+se590!^O;{k*ihpIaC0TY~*}uKEaiB;Q z?(uo5*sziii7Lrl#~qy!AJa^8T++qv~ zzQ;!^Q)1)-qY|>RfWs;EVP;K~`r5?e({!@pn(XA9Y^c|tCulMQv8^fzltRzBva0#+ z2PTl2d1M@>(Gxt*(%3{Bx>rh=jnrPP)To=0#s25drNMbwURlikR&i>Ym)=ztbmAek z*-5k(x4QiWl3!+`^*)&)tFz&DQszOzqC7R2eE)`q+?~9V;{Y%@@MaN?< z3F9idnMy@5gg=Blwbwu{Zyd&=z01e*`CYSm{Q z|DWwlQDjNr$B~-S*9dX_(9G#{ZDS2o*iB<0mCxebw`V#kzpriOy4-2ACGvUoC7lEU z#({BNfMg-Uj8HiIjS~*CCJ)LQ_nda=5}OGR)SwQ&(eQk9GDhjG;0xs0&OEv+Encf{ zH6f`SzA!y&|zl^nH;-3Bc0_}R)0m2u^Ks>&QD=>3VlUnmXyQw84klR4(K(x&}+)G zPJy)8&n#vW7gu2?w+g&$&*M{`^{;-YRJOzex~?X-Z;l$lUQIN^%1+ zbdJE-Au~DuGo!YzY4z8PH!!nTp4B{nk;;-dPuJGu`px0y!Sbb{N1;TiV?%a-4RsX` zN5lVTNGeN1rewQ5ToayHPx}mVO_V{AGn8z<+DC3)G zYmBBmni~OVS0F-UoG{0XcNTW^Z!ZZa=qkGH_Vcx!E)8-Ir+0vaxr=(WWU=Epinl3DtyTc`h++ zQ0ojgYl@tY@}C5HyalQC45Sw84`Q=D6|JW2NdkfF+_S)hb7n}(w@+m(1baG8)51`0 zRm{kE3BJfn1Mj_Od#8rDf22%qFi&X*bM>--a)Ly{0 z&t^Uc8jsZqPA%bWI(TUiD>m+uKFwwQcy>tmg?1 zH>>t@$*Ly|ngHs37;&*uxjGFqKihgECR(3_SuLFiZvvKVmxz8Gf+Yy8zz! zz`ZH*kUPp9zTP>j9NqTh6Td1DIdv+aT3FR+uGk(Y5P^u)kKN_PewW1Ent;qH0-Tr^ zoGdF^;--QG0;1@}ufx&aAtg21Qwto;Oc_b%SQXt+b6eCw*|(`PzewBj$T_M0EcEJH zv2*7PID))7FWAJrt+D3)3S7eSifWy<9lI!w-_3kz(z@Z6e}`xV;_ zs$em;@Bu`Bd`Wsi;B^7mAV8hk%Rt z^tHl~SJo@A)+A(owjFq@>fRK3$gSlLe;hN5b7OZ5oq@C|4vp}*svyRSxWkxWrjbc= zE>#%6QKv3?m--3Yb<8CeMWNiYpZl`2*{gMNwk3;TU=aS%Ocu#VX{Lehf29;xe9mH^%n~A1MD~D%lV%d5 zdZxp71$R655#K*+<1e>RwM0L{qIZ)j<=JPf5V^Fu)Z0wD2=_K=?r&ia4)C;Zd}LqW zFfh!dnKX=&XNZjED-aIZ(vEXKXz{-ht22&y0|UjZpBZyPVnCAeb8MevAyBaweJpN! zE??%vf4%KvAYu;Y!WgrgVeH%>FR&M2UT#GXBT-)Mv$tdUGGF!lRLVRGj0EIiKWKX{ z)`i*1^&j=A8hQ0z@9NnSh(=qu6D12qrLID9C1Q1V*p1sWg^PNEP7_$jpO{HnQ!n06 z?M0OMN6)RqP(6NqN(tu}npl~J@!TXe% z`cR*xbNo}^Y|kvUxVn`Qi~MVqc|K{s(d55tM=7)}hyFP2u^+m=>s?>^+->{A-5_H)bfGCAsP$>H`2hWQ6-mcDthItVPgD!10yS+f9>XMI?DerG}?UY^0kSs-m;YGXuk*Cc{_{mQNaSCP-O zxQ#r2vaH3gjb;bXIQ?>KeVRI8O0)hkKG%II?PuC{70!*tJ#+@Q@u+%!u=iXlF~ggj zmAh-f&V?0H^F-jyRRg+NhJQeUGR)StDN0_m?&f>P+}$#ceFzgfpRKwU>tS%x)2DYOB)s^@ark6)l(Bvg}7gdoHq+y;+uw zq6k^)5y>{vIADI3pZXh7`mM89hg{!1$ow0TcAny!#NV>~qPQGA`?7fXj`qqxN=i!0 zHu@GQx|$DU@*on{N#`A{muqeb(QDB_cq&2H<10` z7t*il`nU@!Cze*$4hmRqt1X|TyZtQWj>9KT7|++cDud)=6m<&QFC#{7!M-6ozb}lH zW-HXlfeKdd4&eKRCHBR<-Q1dKFw(om5=3n@mL0&xC!7|G6sz+w06>Qe6$+mwfAub1 z6E`$`cT4XbpI%_XNi$e(Bs0{@aba_`jvJOp0L2XGH=RrE>xs*}(Le7Vf(l|vI=nJ2 z0Gi~;c;s9^Xf%64qxrVCe+_N;Qz>nGk-EK6rS2qnC0D8>7;IqhHSFf&_ULz^fw#K5 z`AxWGxoi^BL-a`PP2Ke*XgHYFtJq9lvIY7d4Zhk3zIy57Jmx4tPl?5mS|7NO(6SIn z>R^-{r0rq~*e*L*1MbIy!zF@@CfYO(7N(knZs?G^{PB=(dIXHuj1}T7Z6h z#!7#`kGWr)g1ebit>ssb8|Fu?o)%z)uZE0xjxEIK?CO>98A4rk#X)$}Zd3b@4leOZ za!s);AZ-NzU#0>$3zh=b19hG2XkzVfLVe~FeP@@H`#}G)n}S>scf&*O6c0aY*P!IM ze*7&3+ho!NbhqMud73#V4_0KVC+^<$xZ{B6De7$MCGzQ#KH9Rg6=X9VK=BZ3y>DAG z{-Pa>#Pm_q5!_crdE}(A5VeYr5=SO!_X8w$j$8Gl79|U))g1a3Js2=}p;PsQ!~Vgv z`MJ#WrnrkfQWrL|065Z$T~5qayp9 zrTp3PQm8fO=0}FX6aS%qtJ8lDqh$S_4+*_b5~Gqvg5eHQvUpAm&}sf+o(8V*yzQ8P zmRUC=7Al5GEqPs#6RxjvHYETrXOt??vxI{CE3(=_!tCzUr12p`*VV83gEW{ReYPW9 zjpk04nKKQ%Q%Bwgwb#UM4dO{<+g9hsM)Z8{GuSv3?&LvPWEX=$B`~dq5uU{MQZyqc zn7+Rc7bFIrr4+cPQsq_o-bd)aS1fhRV1$gJ9-Q~tqm+|YfLsuz+aPk4+E>+H8PVO- ztL8Hz`BnQTEv>*2^!-*puJ2YzB_lpSoc_>1`PH>*ME6kdGemqcGq?Sn^}*x8x5lNF zJSW%~o)V}dwR%QXzausea{eQ^ITWDDYoQ+;Y^BWMhA!l8iEJ&^aNd3Fe9}O_jV=dm z3s^BcUOiP=vfI9J_%1s#upWV0gxjxmAKWWyJMcWZy{ns!fw7?l$KnW=#6;mfy=`7oM zbVB|k=5q$OdKzm@lJ2P#L0KsPGf2^eI<&X>=%jpi=E*nDSQ$o~Wmc*>qE4U1xI=k~ z{CfuPXR!-LNdz=Xnr`$jZP;~nSb+)95TvBRgabUbBwQ_W4v{^eyG@}ca{C#jS$r2Q zhb0U2^lCDRGx~$zLwMqPHe0W4v#l|}wZf^j)0+DcAOWyo&5Pn;EOLbUG`~al@$Jew z(2QFG%8Ub$?l8Rj@sJN zq-R>0S{wA(ej=@ZG-U?~1CG6Z)Lzy8M(uC{C$suj(+JErv5`9EkwsZ;BHO8Vr<6rb zHvtoPRCI?&lY=Tx?U#}}K*|yKez%+MAUiW;LshbGux$-8{0n6rdQm{q{^Aqh%D{Kj z#r=iHF$2y|Ggyj8{#~)${0>rtsZhy3!oAP>GoKkGvQgv~18=Ny-QrxYWxMfDSTaeu zhZ$5wS`DO!*g_ad!`xJg*&7=bwjDJ=U+Z23)M-a&V{hZ9pvJpX3g<;ubsF(sbV%&qRm2ipaSeEP?y9&8U7T30DcJdEsFv`zq#UM(5r!P{;-E;`6;t&4$m&J(NV z*=mQiZf~jmgTPOwc^uF0tLrho9dd%n%5f30=ouW=dDd=61y(HRZJ*M8kid1lo=h zI!y~z!~!|-HXz$1{z_LBdS5O0paw>|y~Vwbd}C-j0R;y?t_?!hN#i@b%wvAjK;leYydVei{^zcY1#_?1uZZdT0r3Ym&rWq%VR!2jE0LzCzxpiT{H*zQ|hnw zsn-(o6k@=O;?D-Zg!!6D_rDm_&crPIuF_LxInJ(uW*(UA856`HLC}Q#B^$LtnDXL# zu+2h2+bjtCed3mLZSEl$nMl=|bvv%~#9BKmq#QHZ~W zfBl3W>iFZLT&YtvWdw8(Vv0GYz`X-i^e*f#%7jKI>AKG=oh*Jb9>@;)kI6&l zeQt`o!QAVRuvDy~Ssyl)T~^u+-+$hk0^bE%QS>B8s-%33&jMl^Ef_eU5mcQ#e-oPQ zPiO)$5o3^eckL7xsQy5jY^CU_4eDYhzt>w{B^L+@JLtf1U78a|;oBOM+ZV#4fh40W z;D%SwYMhCu6U8hn!Y)P!_Kb3fGMEk-d*$Z-Ug$)X`4e;w^=8xCNF7I5T+^;%Q4T@& z6cMjW2pwz@Q9bRjPcdVD9+csPi%+JC_OPwP3!`O%iZyR|I}C||XP6QDn|Dt@bt@P7 zvy-MQ&jEZ zWS09Ln-9vC*khKD;U?LtaK+>NPMDm&+NBY~`GM5H81QI!%PL%3c~uBMqgxmDq7d+5 zvkqtH+s176_)lypRQKe@d&wnOySnAKiW37&s>4dfE~=^I=0EEQei0aANQzNhTi=FO zX(&Y-w!hiI{XOVfuWJ-Al>%w3!C`N-r=F6`5`qS)B8AZu7qrXh1*9mE%9xG;3AV6U zP)iLBU1+Vip2%!Vdn{BKlSCPR`Tn~(dU}incu}t=dPw21mnJ3W5Dhfazpb|M@RR2| z%`9;vvivp5BQhj}M{jUWIJwviealdX(?a>6JI4Qqon-!W|FH9&7TDr>f{|##Hv7K> z_Rn{S>aV{<*E{fY1S|Abwx}364(|r#_$bZMPu#V8#_ZH_Z=>6(a;8PpSAfOQ*6JCA zgJnijfQ*0@)9g)aqnk$THZ~S+oWo@YpyQV{`{jwKol7JtGZp~Vtb)epU)u$b<+Xa& zogx=U2XIUg-^vt4ppz!o<0Uv#1G^$Qp21H zmsA)9d7wSULs(UP(GvQ_6;zL4s?F1J9`*2*1&h8s6<)CNlC{W!KA1T1o468PKG8~c z7Dw7-bet%0s4YwZclc8Ep*x`~+!Oz~81n7rpjHC4zyFOQoxl(RX|W=SvC0}~bynWE ztUHK&-JP1`FRhD7HxlfrI}ssM(*L1;*u=s%K0PuRg&JbTf1N!4lr{Dgy27JKt7cK= zcj%ag$37L8xec-Hf?xluVB)x_W-^(~B|P>EE&`#;fycKJ?58Sxodi|jUvDm5oJRBr zK-B1=)YlR!*8e0J1?*0+P9t7RKt8Pr=b@ z$xDAsn{iBDGzi4)+XJ|GH%#Z3@{FumwJl!4eP^6;_%=l=P36 zio7ROp=qt?W!sPg)+dn;jt{dCn2Y)s%}lHomdt4}rmK*XYM7E5GjxTi)^TL!KN8oT zYI5MI_lANWC&N?Gp6R!N=or?8?Q;86{0Ct0jbZKMXOjL}ig3I=jE|R$$uZOb!D)7K zocEgT2f-;pxN;iv%Uu3eRr(sNR$7UMQ=a!bj-%%Mw05I0%EcvZUB2J`)_+mstx{00 z6hMN|jN<>?skq-ufXn1KS#3R-M|jI+C(Bx{$^59UKSJGtLQ@k}XyPc6PWtP#*HH^F zjK?Pu*YrU)U5p#bemsQcQoJ1sG}9~c+icVoDg3F{2zmATOuvb`#ob%Vd?1f{_zF@v zwDV2IqF?Z9QFF3c^}Ejv01~4j-xZr)%;n*HP0DXsMCKrxhFNnHahwkGLOmUd%FDUO zASQol{)!i|bEM;Bt}3mmJj!|dKe*bLwyghyH~D?z43QL~38#+tj0q*Bs%uRkNYK-$WwxRH*3Ph`Nr-CH8Iy_0Zm;EAvUSlF zpvO~HrOmDtt+}I@;r~)TVdq~Z>5kmP1%uo-@Ke9@hPra;=9sE+xvP1BN@}U|)&ls^ zLH?&grJ@P)30HRi?acqwneQ|Gct!btxH4Iha0Qe%T|OYib`)>pT#Pe>XdvKhMVs*C z=x-W)B&yyf#r32uAAmqZL*1KQsB}P zD?B0GeJ1@#|ChgCoBjh{Nu!VS_2pTbV-gqA&N^>J8|UXRTsEE5|I212S56;0(#tBN zv@V1-*v&Lhz0&FAEJbtXk2p&olhoNt7*qHe+90+P3FWfUD%rP!SBTAFJNHj2e``P-3U_ z!`eh%9y3QV9xW?fA9C?e*S*n;r4=9^vZx2^aH)Na;@LsB5%x3|22Q!gZZy*1H6CaJzl0R J3Jp_{{U10&F_!=U diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dt64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dt64-g1.xml.gz deleted file mode 100644 index 257b4687bd507a0115135d887b1b8ca72c20f409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9406 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 EFBjVt%>V!Z diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dwarf_form.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dwarf_form.c deleted file mode 100644 index 5129481e..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/dwarf_form.c +++ /dev/null @@ -1,284 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for DWARF attribute query functions. - */ -static void tp_dwarf_form(void); -static void tp_dwarf_form_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_form", tp_dwarf_form}, - {"tp_dwarf_form_sanity", tp_dwarf_form_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse2.c" - -static void -_dwarf_form(Dwarf_Die die) -{ - Dwarf_Attribute *attrlist, at; - Dwarf_Signed attrcount; - Dwarf_Half form, direct_form; - Dwarf_Off offset; - Dwarf_Addr addr; - Dwarf_Bool flag, hasform; - Dwarf_Unsigned uvalue; - Dwarf_Signed svalue; - Dwarf_Block *block; - Dwarf_Sig8 sig8; - Dwarf_Ptr ptr; - Dwarf_Error de; - char *str; - int i, r; - int r_formref, r_global_formref, r_formaddr, r_formflag; - int r_formudata, r_formsdata, r_formblock, r_formstring; - int r_formsig8, r_formexprloc; - - r = dwarf_attrlist(die, &attrlist, &attrcount, &de); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_attrlist failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - return; - } else if (r == DW_DLV_NO_ENTRY) - return; - - for (i = 0; i < attrcount; i++) { - at = attrlist[i]; - if (dwarf_whatform(at, &form, &de) != DW_DLV_OK) { - tet_printf("dwarf_whatform failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(form); - if (dwarf_hasform(at, form, &hasform, &de) != DW_DLV_OK) { - tet_printf("dwarf_hasform failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - if (!hasform) { - tet_infoline("dwarf_hasform contradicts with" - " dwarf_whatform"); - result = TET_FAIL; - } - if (dwarf_whatform_direct(at, &direct_form, &de) != DW_DLV_OK) { - tet_printf("dwarf_whatform_direct failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(direct_form); - - r_formref = dwarf_formref(at, &offset, &de); - TS_CHECK_INT(r_formref); - if (r_formref == DW_DLV_OK) - TS_CHECK_INT(offset); - - r_global_formref = dwarf_global_formref(at, &offset, &de); - TS_CHECK_INT(r_global_formref); - if (r_global_formref == DW_DLV_OK) - TS_CHECK_INT(offset); - - r_formaddr = dwarf_formaddr(at, &addr, &de); - TS_CHECK_INT(r_formaddr); - if (r_formaddr == DW_DLV_OK) - TS_CHECK_UINT(addr); - - r_formflag = dwarf_formflag(at, &flag, &de); - TS_CHECK_INT(r_formflag); - if (r_formflag == DW_DLV_OK) - TS_CHECK_INT(flag); - - r_formudata = dwarf_formudata(at, &uvalue, &de); - TS_CHECK_INT(r_formudata); - if (r_formudata == DW_DLV_OK) - TS_CHECK_UINT(uvalue); - - r_formsdata = dwarf_formsdata(at, &svalue, &de); - TS_CHECK_INT(r_formsdata); - if (r_formsdata == DW_DLV_OK) - TS_CHECK_INT(svalue); - - r_formblock = dwarf_formblock(at, &block, &de); - TS_CHECK_INT(r_formblock); - if (r_formblock == DW_DLV_OK) - TS_CHECK_BLOCK(block->bl_data, block->bl_len); - - r_formstring = dwarf_formstring(at, &str, &de); - TS_CHECK_INT(r_formstring); - if (r_formstring == DW_DLV_OK) - TS_CHECK_STRING(str); - - r_formsig8 = dwarf_formsig8(at, &sig8, &de); - TS_CHECK_INT(r_formsig8); - if (r_formsig8 == DW_DLV_OK) - TS_CHECK_BLOCK(sig8.signature, 8); - - r_formexprloc = dwarf_formexprloc(at, &uvalue, &ptr, &de); - TS_CHECK_INT(r_formexprloc); - if (r_formexprloc == DW_DLV_OK) - TS_CHECK_BLOCK(ptr, uvalue); - } -} - -static void -tp_dwarf_form(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE2(dbg, 1, _dwarf_form); - TS_DWARF_DIE_TRAVERSE2(dbg, 0, _dwarf_form); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_form_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Half form, direct_form; - Dwarf_Off offset; - Dwarf_Addr addr; - Dwarf_Bool flag, hasform; - Dwarf_Unsigned uvalue; - Dwarf_Signed svalue; - Dwarf_Block *block; - char *str; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_whatform(NULL, &form, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_whatform didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_whatform_direct(NULL, &direct_form, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_whatform_direct didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_hasform(NULL, DW_FORM_indirect, &hasform, &de) != - DW_DLV_ERROR) { - tet_infoline("dwarf_hasform didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formref(NULL, &offset, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formref didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_global_formref(NULL, &offset, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_global_formref didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formaddr(NULL, &addr, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formaddr didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formflag(NULL, &flag, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formflag didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formudata(NULL, &uvalue, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formudata didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formsdata(NULL, &svalue, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formsdata didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formblock(NULL, &block, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formblock didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_formstring(NULL, &str, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_formstring didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_form/ec32-g1.xml.gz deleted file mode 100644 index bf8b65ed07b49872fcfc7eaccdf34fa5959e8063..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101798 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 -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf line informatio API. - */ -static void tp_dwarf_frame2(void); -static void tp_dwarf_frame3(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_frame2",tp_dwarf_frame2}, - {"tp_dwarf_frame3",tp_dwarf_frame3}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" - -#define _MAX_REG_NUM 10 - -static void -_frame2_test(Dwarf_Debug dbg, Dwarf_Fde fde, Dwarf_Addr pc, - Dwarf_Unsigned func_len, Dwarf_Unsigned caf) -{ - Dwarf_Signed offset_relevant, register_num, offset; - Dwarf_Addr pc_end, row_pc; - Dwarf_Regtable reg_table; - Dwarf_Error de; - int i, cnt; - - (void) dwarf_set_frame_cfa_value(dbg, DW_FRAME_CFA_COL); - - /* Sanity check for invalid table_column. */ - if (dwarf_get_fde_info_for_reg(fde, 9999, 0, &offset_relevant, - ®ister_num, &offset, &row_pc, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_get_fde_info_for_reg didn't return" - " DW_DLV_ERROR when called with invalid table_column" - " value"); - result = TET_FAIL; - return; - } - - cnt = 0; - pc_end = pc + func_len; - while (pc < pc_end && cnt < 16) { - tet_printf("query CFA register pc %#jx\n", (uintmax_t) pc); - /* - * XXX If application want to use DW_FRAME_CFA_COL for CFA, - * it should call dwarf_set_frame_cfa_value() to set that - * explicitly. So here DW_FRAME_CFA_COL might not be refering - * to the CFA at all, depends on whether CFA(0) is set by - * dwarf_set_frame_cfa_value. - */ - if (dwarf_get_fde_info_for_reg(fde, DW_FRAME_CFA_COL, - pc, &offset_relevant, ®ister_num, &offset, - &row_pc, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_info_for_reg(cfa) failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - return; - } - TS_CHECK_INT(offset_relevant); - TS_CHECK_INT(offset); - TS_CHECK_INT(register_num); - TS_CHECK_UINT(row_pc); - for (i = 1; i < _MAX_REG_NUM; i++) { - tet_printf("query register %d\n", i); - if (dwarf_get_fde_info_for_reg(fde, i, pc, - &offset_relevant, ®ister_num, &offset, - &row_pc, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_info_for_reg(%d)" - " failed: %s", i, dwarf_errmsg(de)); - result = TET_FAIL; - goto next; - } - TS_CHECK_INT(offset_relevant); - TS_CHECK_INT(offset); - TS_CHECK_INT(register_num); - TS_CHECK_UINT(row_pc); - } - tet_infoline("query all register"); - if (dwarf_get_fde_info_for_all_regs(fde, pc, ®_table, - &row_pc, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_info_for_all_regs failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - goto next; - } - TS_CHECK_UINT(row_pc); - for (i = 0; i < _MAX_REG_NUM; i++) { - tet_printf("check reg_table[%d]\n", i); - TS_CHECK_UINT(reg_table.rules[i].dw_offset_relevant); - TS_CHECK_UINT(reg_table.rules[i].dw_regnum); - TS_CHECK_UINT(reg_table.rules[i].dw_offset); - } - - next: - pc += caf; - cnt++; - } -} - -static void -_frame3_test(Dwarf_Debug dbg, Dwarf_Fde fde, Dwarf_Addr pc, - Dwarf_Unsigned func_len, Dwarf_Unsigned caf) -{ - Dwarf_Signed offset_relevant, register_num, offset_or_block_len; - Dwarf_Addr pc_end, row_pc; - Dwarf_Ptr block_ptr; - Dwarf_Regtable3 reg_table3; - Dwarf_Small value_type; - Dwarf_Error de; - int i, cnt; - - /* Initialise regster table (DWARF3). */ - reg_table3.rt3_reg_table_size = DW_REG_TABLE_SIZE; - reg_table3.rt3_rules = calloc(reg_table3.rt3_reg_table_size, - sizeof(Dwarf_Regtable_Entry3)); - if (reg_table3.rt3_rules == NULL) { - tet_infoline("calloc failed when initialising reg_table3"); - result = TET_FAIL; - return; - } - - /* Sanity check for invalid table_column. */ - if (dwarf_get_fde_info_for_reg3(fde, 9999, 0, &value_type, - &offset_relevant, ®ister_num, &offset_or_block_len, &block_ptr, - &row_pc, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_get_fde_info_for_reg3 didn't return" - " DW_DLV_ERROR when called with invalid table_column" - " value"); - result = TET_FAIL; - return; - } - - cnt = 0; - pc_end = pc + func_len; - while (pc < pc_end && cnt < 16) { - tet_printf("query CFA(3) register pc %#jx\n", (uintmax_t) pc); - if (dwarf_get_fde_info_for_cfa_reg3(fde, pc, &value_type, - &offset_relevant, ®ister_num, &offset_or_block_len, - &block_ptr, &row_pc, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_info_for_reg3(cfa) failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - return; - } - TS_CHECK_INT(value_type); - TS_CHECK_INT(offset_relevant); - TS_CHECK_INT(offset_or_block_len); - TS_CHECK_INT(register_num); - TS_CHECK_UINT(row_pc); - if (value_type == DW_EXPR_EXPRESSION || - value_type == DW_EXPR_VAL_EXPRESSION) - TS_CHECK_BLOCK(block_ptr, offset_or_block_len); - for (i = 1; i < _MAX_REG_NUM; i++) { - tet_printf("query register(3) %d\n", i); - if (dwarf_get_fde_info_for_reg3(fde, i, pc, &value_type, - &offset_relevant, ®ister_num, - &offset_or_block_len, &block_ptr, - &row_pc, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_info_for_reg3(%d)" - " failed: %s", i, dwarf_errmsg(de)); - result = TET_FAIL; - goto next; - } - TS_CHECK_INT(value_type); - TS_CHECK_INT(offset_relevant); - TS_CHECK_INT(offset_or_block_len); - TS_CHECK_INT(register_num); - TS_CHECK_UINT(row_pc); - if (value_type == DW_EXPR_EXPRESSION || - value_type == DW_EXPR_VAL_EXPRESSION) - TS_CHECK_BLOCK(block_ptr, offset_or_block_len); - } - tet_infoline("query all register(3)"); - if (dwarf_get_fde_info_for_all_regs3(fde, pc, ®_table3, - &row_pc, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_info_for_all_regs failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - goto next; - } - TS_CHECK_UINT(row_pc); - -#define CFA3 reg_table3.rt3_cfa_rule -#define RT3 reg_table3.rt3_rules - TS_CHECK_UINT(CFA3.dw_offset_relevant); - TS_CHECK_UINT(CFA3.dw_value_type); - TS_CHECK_UINT(CFA3.dw_regnum); - TS_CHECK_UINT(CFA3.dw_offset_or_block_len); - if (CFA3.dw_value_type == DW_EXPR_EXPRESSION || - CFA3.dw_value_type == DW_EXPR_VAL_EXPRESSION) - TS_CHECK_BLOCK(CFA3.dw_block_ptr, - CFA3.dw_offset_or_block_len); - for (i = 0; i < _MAX_REG_NUM; i++) { - tet_printf("check reg_table3[%d]\n", i); - TS_CHECK_UINT(RT3[i].dw_offset_relevant); - TS_CHECK_UINT(RT3[i].dw_value_type); - TS_CHECK_UINT(RT3[i].dw_regnum); - TS_CHECK_UINT(RT3[i].dw_offset_or_block_len); - if (RT3[i].dw_value_type == DW_EXPR_EXPRESSION || - RT3[i].dw_value_type == DW_EXPR_VAL_EXPRESSION) - TS_CHECK_BLOCK(RT3[i].dw_block_ptr, - RT3[i].dw_offset_or_block_len); - } -#undef CFA3 -#undef RT3 - - next: - pc += caf; - cnt++; - } -} - -static void -_dwarf_cie_fde_test(Dwarf_Debug dbg, int eh, void (*_frame_test)(Dwarf_Debug, - Dwarf_Fde, Dwarf_Addr, Dwarf_Unsigned, Dwarf_Unsigned)) -{ - Dwarf_Cie *cielist, cie; - Dwarf_Fde *fdelist, fde; - Dwarf_Frame_Op *oplist; - Dwarf_Signed ciecnt, fdecnt; - Dwarf_Addr low_pc, high_pc; - Dwarf_Unsigned func_len, fde_byte_len, fde_inst_len, bytes_in_cie; - Dwarf_Unsigned cie_caf, cie_daf, cie_inst_len; - Dwarf_Signed cie_index, opcnt; - Dwarf_Off cie_offset, fde_offset; - Dwarf_Ptr fde_bytes, fde_inst, cie_initinst; - Dwarf_Half cie_ra; - Dwarf_Small cie_version; - Dwarf_Error de; - const char *cfa_str; - char *cie_augmenter; - int i, j, r_fde_at_pc; - - if (eh) { - if (dwarf_get_fde_list_eh(dbg, &cielist, &ciecnt, &fdelist, - &fdecnt, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_list_eh failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - } else { - if (dwarf_get_fde_list(dbg, &cielist, &ciecnt, &fdelist, - &fdecnt, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_list failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - } - TS_CHECK_INT(ciecnt); - TS_CHECK_INT(fdecnt); - - /* - * Test dwarf_get_fde_at_pc using hard-coded PC values. - */ - - tet_infoline("attempt to get fde at 0x08082a30"); - r_fde_at_pc = dwarf_get_fde_at_pc(fdelist, 0x08082a30, &fde, &low_pc, - &high_pc, &de); - TS_CHECK_INT(r_fde_at_pc); - if (r_fde_at_pc == DW_DLV_OK) { - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(high_pc); - } - - tet_infoline("attempt to get fde at 0x08083087"); - r_fde_at_pc = dwarf_get_fde_at_pc(fdelist, 0x08083087, &fde, &low_pc, - &high_pc, &de); - TS_CHECK_INT(r_fde_at_pc); - if (r_fde_at_pc == DW_DLV_OK) { - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(high_pc); - } - - tet_infoline("attempt to get fde at 0x080481f0"); - r_fde_at_pc = dwarf_get_fde_at_pc(fdelist, 0x080481f0, &fde, &low_pc, - &high_pc, &de); - TS_CHECK_INT(r_fde_at_pc); - if (r_fde_at_pc == DW_DLV_OK) { - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(high_pc); - } - - tet_infoline("attempt to get fde at 0x08048564"); - r_fde_at_pc = dwarf_get_fde_at_pc(fdelist, 0x08048564, &fde, &low_pc, - &high_pc, &de); - TS_CHECK_INT(r_fde_at_pc); - if (r_fde_at_pc == DW_DLV_OK) { - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(high_pc); - } - - tet_infoline("attempt to get fde at 0x00401280"); - r_fde_at_pc = dwarf_get_fde_at_pc(fdelist, 0x00401280, &fde, &low_pc, - &high_pc, &de); - TS_CHECK_INT(r_fde_at_pc); - if (r_fde_at_pc == DW_DLV_OK) { - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(high_pc); - } - - tet_infoline("attempt to get fde at 0x004012b1"); - r_fde_at_pc = dwarf_get_fde_at_pc(fdelist, 0x004012b1, &fde, &low_pc, - &high_pc, &de); - TS_CHECK_INT(r_fde_at_pc); - if (r_fde_at_pc == DW_DLV_OK) { - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(high_pc); - } - - /* - * Test each FDE contained in the FDE list. - */ - - for (i = 0; i < fdecnt; i++) { - if (dwarf_get_fde_n(fdelist, i, &fde, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_n(%d) failed: %s\n", i, - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - if (dwarf_get_fde_range(fde, &low_pc, &func_len, &fde_bytes, - &fde_byte_len, &cie_offset, &cie_index, &fde_offset, - &de) == DW_DLV_ERROR) { - tet_printf("dwarf_get_fde_range(%d) failed: %s\n", i, - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(low_pc); - TS_CHECK_UINT(func_len); - TS_CHECK_UINT(fde_byte_len); - if (fde_byte_len > 0) - TS_CHECK_BLOCK(fde_bytes, fde_byte_len); - TS_CHECK_INT(cie_offset); - TS_CHECK_INT(cie_index); - TS_CHECK_INT(fde_offset); - if (dwarf_get_cie_of_fde(fde, &cie, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_cie_of_fde(%d) failed: %s\n", i, - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - if (dwarf_get_cie_index(cie, &cie_index, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_cie_index(%d) failed: %s\n", i, - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_INT(cie_index); - if (dwarf_get_cie_info(cie, &bytes_in_cie, &cie_version, - &cie_augmenter, &cie_caf, &cie_daf, &cie_ra, &cie_initinst, - &cie_inst_len, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_cie_info(%d) failed: %s\n", i, - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(bytes_in_cie); - TS_CHECK_UINT(cie_version); - TS_CHECK_STRING(cie_augmenter); - TS_CHECK_UINT(cie_caf); - TS_CHECK_UINT(cie_daf); - TS_CHECK_UINT(cie_ra); - TS_CHECK_UINT(cie_inst_len); - if (cie_inst_len > 0) - TS_CHECK_BLOCK(cie_initinst, cie_inst_len); - if (dwarf_get_fde_instr_bytes(fde, &fde_inst, &fde_inst_len, - &de) != DW_DLV_OK) { - tet_printf("dwarf_get_fde_instr_bytes(%d) failed: %s\n", - i, dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(fde_inst_len); - if (fde_inst_len > 0) { - TS_CHECK_BLOCK(fde_inst, fde_inst_len); - if (dwarf_expand_frame_instructions(cie, fde_inst, - fde_inst_len, &oplist, &opcnt, &de) != DW_DLV_OK) { - tet_printf("dwarf_expand_frame_instructions(%d)" - " failed: %s\n", i, dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_INT(opcnt); - for (j = 0; j < opcnt; j++) { - TS_CHECK_UINT(oplist[j].fp_base_op); - if (oplist[j].fp_base_op != 0) { - if (dwarf_get_CFA_name( - oplist[j].fp_base_op << 6, - &cfa_str) != DW_DLV_OK) { - tet_printf("dwarf_get_CFA_name" - " failed\n"); - continue; - } - TS_CHECK_STRING(cfa_str); - } - TS_CHECK_UINT(oplist[j].fp_extended_op); - if (oplist[j].fp_extended_op != 0) { - if (dwarf_get_CFA_name( - oplist[j].fp_extended_op, - &cfa_str) != DW_DLV_OK) { - tet_printf("dwarf_get_CFA_name" - " failed\n"); - continue; - } - TS_CHECK_STRING(cfa_str); - } - TS_CHECK_UINT(oplist[j].fp_register); - TS_CHECK_INT(oplist[j].fp_offset); - TS_CHECK_INT(oplist[j].fp_instr_offset); - } - } - _frame_test(dbg, fde, low_pc, func_len, cie_caf); - } - -done: - return; -} - -static void -tp_dwarf_frame2(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - _dwarf_cie_fde_test(dbg, 0, _frame2_test); - _dwarf_cie_fde_test(dbg, 1, _frame2_test); - - if (result == TET_UNRESOLVED) - result = TET_PASS; -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_frame3(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - _dwarf_cie_fde_test(dbg, 0, _frame3_test); - _dwarf_cie_fde_test(dbg, 1, _frame3_test); - - if (result == TET_UNRESOLVED) - result = TET_PASS; -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_frame/ec32-g1.xml.gz deleted file mode 100644 index a63c1e222eb5bb0d2f60a00230802ba0fd965d73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104318 zcmeEv1yoe~8t<_c6$}s&0YzyAMM`QEL^>rz22doF?iN%8q@^3AOG1z?5fK3a0g0iz zyJMJn|2+ftG446{zI)!gYn{bfEcOhWIsU)>eZTt1Tz2o)y}2U%$2PUw7Z}fKoToR} z(f(t+P|>LEZF-6YtXQREM5WjK8J>dhK?Udgf{CKx4W>`6+QM)hw_Sd4f-jgdSFq9x zz5Yj&imM1E{Er=;fifNp?3QOWwoC;F%Di>FDU4W*3ft~MDLaZ2AmNWm#P!G?bs$|iIJqqh%&pCl zQjd#C_ooUUIbQhW$arV$QFyaP-N6dB;AhEfUMY%ib5@_fW9joitp`t+(JpFoiWZZ? z3*2RGTeC~qCe;m4si8IbvP<{qNV$t$(JOK5&C^JDj%sI6h4H!Ts=^v2F7NB2!#ggX z+8g?c&x6#gF}!B3<+O6TA3OoK%)VG-uIx^plCxKLXZ5rKi@f@r%(BWwSPu0bF)KSw zxe2}PsI~t7fsu-exrV-mAq@tl<3*f4EEdmAJJ(DSJ{(?JQ8>e@F#Lka^2Hh1XUviu z&Kyzk-e&GC)O?}?YmX7i_Ng7G-No~oXM$xpP}8H9%Zna8I&jm{5$*MJoIZw}p>F&x z191%D;rrDqWb{1EI-l{V?JSI@o+=f}hEXP0QI9MXFHzntqKHcvGevYTRw-l`8we-d zvz5PC>#%}eMk^%uGTyp&(MU@AmXe7_e#Qt~CdjAM+tPkm!!CMx%xWaRD*i=PqMC6& z3g67u;znXj)JT)hAb}h?#qGvJ7Voa=oeQpMWiG6XnU!f7PJ&OQ@P?8K8_{yj@l3s+ zAmgh!)jU};qV1#OUR-}Atj=#CTXSWuy>C}uM)@OafoMq_Xrk#tS^CywVp%)jjFnv9I0C62a+ceT8#dNONikS;{&JBB3eBBnF_&Mim+-he znf|$iRG{;bN+B5p-$Gm8R>GW@_VR=tR@XleJU5-vOufDyFS?D_Z+=GWw(6Ne2bOcU zPZA^Cs#0*cGFem=hxeRrzN(hgt>R&*$kBO(&_4v9^c{1~%d$?z;mClYanmXI@aQ=< zBC)G1>28+}gdBgS4Zd;kHh8diKfST!zL4?oy^16|saW4sm^c#7zzphOMws`PEvb0W z-x{w?5Hc>AqE$X+`N5+7%FBM&z3}Zk=k?QV>5WZ}h7>S}aVI3nm%p>uR%K;S*hU2l z98SMr3QOdgdJ^|qH5}X%sYuiLrtYnTR%Q`pm9nf%aV5*CJB>0K8o$(LTgm=p{QU zps#5}ggLu+sk~HY$JNH&9<1CNQnJ-kG0-V`FDpx&_jrfooVUqaZ>b9;=^UDi)XkZF z5$Yt@MAPVvtE+1h+&Wt?)fpeh-_J)JT*2wHpN~$21z*(hQk?`7K1tYKMWYM&$vG?% zOeDMbcX=W93#F4)iKIKe zj6Bt!ml}OrQhi$V4Whr9Ag?_vI>C}b6Bi09=#HO5-e5Mu{39` zs}!ls5o(q^xhBhLZL_j8Ut6O*vy!V{VeCUeuq&P1m}x}AtmZ9GoPHgll!tWjsQ8eD zwiknZk^@sJ0U;`^nlNhQb)kVXwmel()qGu^WZO8(S}kh18ajsbp5wEp{9++0cFeX_ zRKi1_$?q}tOF8`H@uds{_dVf7);25w6mo@pofa85zC`n0kp*~k9jJg8^ik2xwc;^M zU0w|zO!CKd0|%1Zx^iM3bK%LQbjJ>UTY-2-(vYGjR}m*@P^(I-lZ>6%0xDX_8* zvJN*WE?QqrVkn+m5jy|fqx$SL(x$rQ-p}wRZ$M?8vT5Gq(k2_U3 z=iDMgYd&iVK7T%Ekm~Yimn-<^{r2i2w<_H-x1C&W3Q6&poR|q8r*3BGl5oz;9rXG= zfqRR>yGOE-W4L4{cas;Z~jc5g4KD5-P+->`ur^1hpguB)7e3x$Pw)J|d)+7^sk9rs58^G$*30^aY3b0L zioMxE&y@3??_(v|M|FxAarMM*FKEzzFl$_ko({>85?^z;>!#bj0AB9#wcZkKJBH{B2ZgLp*Yh zB^CON>7F{$dK0IX=7&&6dcIJT>v548Z!{0G;mR>5 zNk+Yh>Nz)A6RC@D!ajAQV=38u8Oa!iYRE0(f)UaOx~E6?ZkK)JPPsl_LnJ@!!_D=i zUS>TJ7CQ7?ut+uexRkETUfbG1mpbF#&Wn8dQ|ilSgZobn(poKnY75d zHAyE-Wujn+w0CkY`?_w{6Q;~geh$4ZuLJewY$%T$(>0^Ow1g|T);Y29uL?#<%`_Tv z6PaindlwlPuE2;-mnnA%cPUB`hiBiqM-xirE0S&YLWunOc@n z!UIWZb#l3_ijM4DeuL7MgLM&Y>J1kCtz2xOZsgItmJ+hU{ei_!_%JQg)AcLIX>5J; zmd-3$*}=#|+qmjPnPMASSv>k@MVuW=`;_q;EyYjoY(|D$S+^nw&ql=CPDkw>dP{|s zpbb$hev&}fYmhWiaIXYZhX;FW;nRzq4Ge|NB;2p@w$9gHe|y!mFP*@8j4J?6?3?`1 zg$umQTmk-WNy*@W%Oz?Dz1&|sA-U(pQaD@#kWQSSLLGklRSPk9?St{h*5ucZrB$Em z%r2bK@Z2YE<8MHx(;s(e-KRKvVvmeJCy{ZIjg-*hoeNFwj$S4r8-0&TKrFRNY7Au?ikJqdihLw$@e=YFJH{%nS<#EayHEzYuA1m0d{!Pk*s#-Er` ze-!B^w)sv+sav1WQMWdYJPnCd76@#Hc|(V@#YS4#ygD~jbqY5!Tx8yxXTBl9M(D8( zW25+l*I8n z6CY?kJr<8!W1sk(D85O7_-U&b-Ba-U{*X@kgEA`pfu?=M#x*+=?TjKcwRa{iH0_Mf z>c@%CGGYItk@kK?y!O)@x4@O)eZZxo-SGHh!4EVGGq)t3&E1-)6N-B&6Xzx)EpfbT zfHw9T&8O^a;NH}q-q8EMcw2qxB|ZHs&-*R)F9>=Yu&kJr&GaM~-^X2*H(ag?hrgNVj z3^kJ&oF%Nw78)}qaeC_;?GW$MPcu>WcV?nFJDTdHekPL+`g{d-i?Kyk-4Xn}-q4_` zXvKjW*Pv0zdt(&h9YHJw^UP;lmO?HR&UdIux2iQVjy|&wkTh8GkBhm%9;7QeQZXtN zy}WWc<_c*>9r3%^3{z1(;{>lv^U2${NZR(|d zl=bpk^PP+**+5_NT5?8mawY@5b(X{~h(&MWJc@1Wlr5fEEcGs&-m)c>W%q5UXTGl|lu4F|jeGlkGA z?4a7^r4^Mfqo2+X+M`+z;fC|g*a74}`7HkjG&B~yOusB3$l72wG{4m{vwJ>TZ>IROfu^g&mc6uX&Zx(0 zgj)E~mWk;rdA0{RgXS|hhMwM__N8B&H2`IV8(T&^X(i#yRxHY{v4@vBX&zd!mg*r+ zlktGoXaLzAd75ovf1+Y$@xkjlYxr72TuT9F;l*W!87^YNQT$aZWjDw&qjD}dvs=tP zE|kKTDe@@5Lme(M^=9K9Q7YHFF|k}44%(Ks)J|J#l8Wk!zg0@i2L8O1&?mRk2iM5N z2wwCFyH`x}qp*y*ZBO?43l;OjQQps|HnVrvltfeE@We%l-?p$?>ZxL1e zN4FdVIIM<>bP)1-DCi9B*ax*OaPz^3gv((zbVc+;E@Y&`;m`tiq~pdWK~P5(;k@_&D#_y<&>pF&epF5Vth%y+_ac{~+O z&cG5W3I^d~>1K`<;*_h?F_evAW^b=arHg}Fk4G^Up!v`wLQ~hqK-Mt+T5w@=?0HSu zLFa}`Iy#)O!w~XuCXcjTq+T^dv?*-REA28&IK}2nMz#LIMA=W1O^)jTsOwxGRrONmW?9Gp z9R|&8b*V3%b3(32Ygh_1U++-8&``%~ZFV_d$^i+U_g(mr;rqRMQ>S94=%b`|$yLQ? z98tMiwyv~+cZ4d4v-f6;^`9p$EYa3A)8MZY>hdOgk@&SZ1nvDTS<)N)ev69O1TVt#9lhTQpYnZWQ)he zOEF+2-9w-C-d9~2D=JK(IZMI^+w+NRswh`Z~)T* zT>i{8LVVZ0u$31IdUulqvb1<(pTMe zC$~e=0!_$KxDjn5n&vq6k$gGJ!HkLbrgwM^V;G$m_Jo^bP_Y(^1g6PHF$ zBuwT`9Dsc&Yb}f2qQ;ysLd*%v$_daT>e)*8Kw@7P&HS$cdKjS5{9?w%@A46I7c~F( zME)-YIyndX4Mt8pp}O>#Z1Yju^yyJMeQKr>z31CQ%m2%V_SB~*?R0wozyH7rSgEo9 z?I)J!-QV+|JqjMQ`Wp{g{Z9|t(4ReMLto{o!c#6UY_bDpIA5~^Rl70lz_M5bmhAiK z!-BZ4Kd;nfxr<@=6Igc%GvbS3M*I~bX7<5j@NSi<&zZ-+jGF)SzJ5k&{Ir4i2T%up z^+O;vn$0mjU_Jvs7P}KWOJ@>LX-H{r^vBDm?p6VyEU6`FhH2eWe}=shUEt(mdsSJl zZ!%{Y+a4DY;Dsx{K}Sy%>(!-4+=LHQP^)Z>X_aT! zHV?33>Q%uF2H@JjHw?f;IMgVIwP73Oy3Iy8YNJsmeU9mq4`vkODCY|v4>wNjV@)nJ-5o^c8*j_}2#67g z5o=G9yX}jx1fdxtmLMcNx7lhdbz80SE#;LuE_*toi1s4h>cX=gGUV;@#sFu}A>d5U z#bsrbj$Z%Z?y_kt{56-|$-+y05FlX2BoyT@3F_jCCdXTzsR;42q?f4MI4D=g65stS&araGn{EiAeq7b!M}J@ zamR!4V$9bsT&GS?av$N(eAFD$AhmFmVd+Zs!9C74;ZHCk$IlU6X?A>GDKa$l3+rK&WG z1W+Pi-UnQ2qE9dFR(&b6v-OWgKlql$EU{frZ|pcnW!`bJ=(V;=#$J)Z-3(Ko0G=&jC}+AdU~n8M2`SG+Qv1w7(DcKWR1o1H#>-Z!28 zS{&5r4;5fKeMRGqPJcBX+v%?fjAI)8*W;*4vkp5 z`@kx*t^C#sOF|3bVKozB!<5Gw?&<{d8(L77mG;a`d1)339kSE1k&Z-dB6z%@j{Jdb zK5VG2$-VBAZL`<{&Imx@!*aWK6vcHpr*c>aAiXHkJ=eDb+VL#+SF|HxAC`9PdOv~H zCjG2K=zqhOJ9&;AC3k35gI@Jiz5#-k?cx&*m+6h+GHu=mx##XA%xTI09lqZ}FXRmB z(&hD!G6$q|WcX~eDObcO6*5y%JZ@Ex1`$<#or6@U>3rh`!*FYvSBn&f6yK#f+CTO{?B)JMhe)nYSBV#O2^)XPzHNNOhCBGcfqZ(0;65n(ymdQec<&KjH!q$y9AqA8`!MyF)oz9$X!7+D$DNN-Y=KCbmL~5-L4RmeFpk6&P zH7D;V-c1Uzk492weQ^A_xc$P&KQ%kFQl>pq2vPe(hQ4QoB*-J=Bq^YI^pwZlq^j2(<2faPO_5uC$^$Wc6MC5p}fF z#@y)M+N6ivEF^aL+iOmJ=@jedAOobv{2;&gd{plwgSc>}F;hoSuj3Z?pGqCvGR8NrE83!^MISKdtwi5K2*9)%3C=0)i{|hm2nXB*s6M zHz;7mD3Nwxlt@7A(2*Mg#17uuFaol32uMJ-%iF}2xg<}5nXQ=3N>InAX{Yw$dmtm) z285MBwaMbOp9LtbAc5xK6VR1}l&AwqLNJ#xV0A&`MufPT;RY@%sl*5|FRBtI?$k(= z*8|NMo+41J0uj?ymKN<(h?_=fpx*-D;v(!5ONg|AMj{Qt`=_EOO(1##0*Sx#Ry>|t zz}b(6aQizXVI`BQimidhGn>@G4*vQuaE4`{%k|w|UFhyL*#IFs-1Yi&Ip3iR8!Vbf zi}cD$hx~2Pb3+3Q7+p8SBWwpe!ld$c4@e$$(fNpweHCf3b-S8vQ0;AR>xvr>V}`^H zumvN?WTuE+6{Qvqn)C9quTp4a+fO#PkGm{(AV~x;>}Hv!8kZ)vTSXR zJ6j=VrmQs!XAgolr9T4Yi-$!uL7PIjpoBp+yOKW;%;YqhDn)~5IFKD`(3>Be8d+-o zN@h8)>$4X_iC{iNcW=g02`WRZrJaj~aJo=1nQgOs}XR#amHy>{w0Zm4NrS z;?Zk_B~gN~d?T?$d#Rpus@|{^8$|dZ#u6fXkfw0M62fkv7e>BOIcSW(sT_;qQ01t# z*r*(T`1un0ZXq;)g_}`&uttTiAtm_NiyI!=;ILb9=>v4Pr ztVo|e1k_GZKT|t>7g!1V9k6toDBQiSQv(*!xhftZKVxPVbsH{|*s$vK`fn(K+*qi(J8Io&I{yLa zpBr0{z0V>Zxm^sqbEA<9#+ihrFk(YFd8_}ka@ks{a1uGh1`P= z4+~a(rmRGBVA0%8G2On&JIl<@>@(q##|te86j62Vy<#8X)CePzh1S$wpprTQsiZss z$ijZxxf^3k<8S84)kk>WrlAA#&IKYYpXxbZKueG03TC+4;AF*0P*ND&ldbLL5tB4s zW@w`?c_?IYXJblh*Y0Oo5zd)&VOG=mwOuN?2${GTY!ym%E`o|sGPVc}33z1!c(+2i zZX$_#wbiK;bW=&gsd5uN!;Gt~_tr+&yF%p}U<|2_w#Dwcd|Mji^V~)2x10-gGs^l5 zc##c}iT?m8zHP3rd{lfJ1K=feQ}I0j6yJQZmN|xeSD5_;^WSC0##h2`j1&Y1U>cjZ zI?76qZCC_mi#zFk$yGR{MqbDU0SU!1u>tu)krb&HinO65S)x2b*G38y?pwi;@v%}Y zF&Yn9t*nFJw4-u-!Ym_L2N&Cr`px`<5z-cB8Yup?NvTooj9DKctJ=`|AdajX+(Eix zL;Y0!rGf6VBC`iHnL=xZ2iLO$#~4}I5u5GSiQ62i za6P4ji`I`}`TS^C`|)m7g%8?Hjc=P=%OFn)GKDI1G>PboNlSSv4wX(6n)@w4!rrf=X%?Yq!;?>NM_VYpCYDo za3Vqje;UgU`d9i}4wt?z+JF7+;*IbBVr@sK@L5(yk~U-q>04a!jf=`eFazO~WqnWc z`SWajTPfezqv>y|aEQQXA6Q%vIdhTa+|835YzXmZxwMlXTHQpY5(4MO&C7(voEk}1kagwq+XKM5vj3!(z>7N6{U^x-$9P!SKXj9; z5*|A<+)KC{Yk=X=b$v1>Mjpqqi(YjX)tVD?(g{@pCze(+aR!AQCowdAewYy{EABa# zzE}KTzSQ9ffW~*r^MV`N^+@|{^MUlbPq%UDEk=iPfbkJ<;PAdZc1Y(1?1ZXTuEP^I zT;`nJ2>YFT^Okq;V0=7t0Z+=+uDzU@yH>HV(GxxAah}kqX!KCaB4R+Xy8>g_C;Qn- zcy@MbWIV~bIKEk`;|hB6vyP}1HnF@2S!AJ6s-6AfJ^4eBU^8D?rR?CHithQl6vt$<9lxxy_E7wG0)%n_+58kG{yFzh6{elsDMJEX}Ox}@`hPmNnev~@o z)FssfkTK-rYRCGx{-Yky{~|l;FWgG?2X#0*^>L@+3m==AE1V3w*3aZ(4fWAy3qF&8 zjZvfL78hmk3!Twa?)l15VxKwFW>ZJP{hLcSRo+hH{nF{O82Dw<|9ZkaG)FO9QTQCM zja}N1c@J*Nyu;c5tZu-+C-bJY+=Oc_P9dqj7@=TaqAxgyoB;YF+4B?hrQ$p2%NDU} zwO1*J>ZW^wB5{oF4wxd0Q)opiBj$Ibzp<{GH1WKP&snQ#kUC2unjJfT$Asc%91+7j zuE}6D(*{k%S($}Mivh;8sD)FWHIrTf>TCSD<+X-;_Q3;pFx&RP>{Vui}8zS#!M*)d^YOFE3KM=(^h5yNYzL@VeYmwEK{Xk}0Cg}t zmm1j{^GZ#*z=sjOzS)W-ldD-`vO0bXnAyzbz;+_kQ=uEQbHCek_!ov(hyz0Q$*}79 zx9hVDHzx?3c15u9JBllF!-(H`C3TYP70TOJ?z0q>>~!?iwH3MHFIhh}M0G7_s`Bn= zo}y{?yV<4*z4m$<;~kvL{(JI;u9P``Nj(1!2_$6+cPOgMuKiOV+J`{z`Y(-Wv+ugD zu;&Yt2TqU;kix1c&grYwBi;-Iwol$FTJO_vr0QI(^(dvXq>vtS+bk)MK9!X6PbFmy zV?q0}q_lrsQu4nkDQ%l2CF6HX%1m+JXPw69*%@O5+s)5P_T`j?eP^ zuQH+jt*{I6aWP!JW)L+L#g@w`idp8TBCJto#AxO_x_ev{=^dT za9s3tU&FdhieEbm4!ii@Goaid2W0DW*o+NC-<>^Fcx0QaCvQbR3k+Q*^|9dGL z=FgWi%z())?n&~)4eFH*Gqem1#f$`K=|6BO%>QRaXh4or>6FWJ?+Bd76K}6bp6y}A zW?a}X);ThWCemA+8V9qZW$ z>j5eiLt2t0tR&aQ$yZ1jh~w5~1x8VjPabP9n@HaqP@rZ9hTU!ihTZ08{ z`8GjYEOlftbwwo=pU-#dl)5d!7w*=9>BT8nWLx~W0|02n_{crqy}8J4y*j&sxakL9 zIASqYO)IVbUf6k-`{|0gdcK-pwytfTA2|*eJa;Rgjvgrv zyc3kP&wWvE!FnF+Z^h5HwfJFVPg$4$gg~_Fvm4|dh~fR}4f6T1ta;K!IK=mSlR8Y| z8*bkfi_uUTCK-Kp=`Kqse@cg4gN2Xaw&f-#&N)`k8j|d4qiCdLQAdXL8n2P#n(^8- zaZW^qvr+NRK!O>A>1BVV%uWkPqS7FVt^ouLBvCo3P{K-3fDPo}OkCSJ1|@RPyxL6U z5ZxwTTm&R4W#UH`J|=S5!oHHmu`X}4Cwk+*)t)dr`rr13DelIMJjd8B`at5i2j2If zpbs1JkbglO_wOHhfCS};?b&=V(j0(B8s3ptZq*wj4T+TD>-v*T)R!fD0TVON}D5bis?7cRI)Rffu#5hyXu3HOT4sx86!{ zLUoR@#B%my?u{m-wE>wM{n0Lm5@>w|j`64TL11&$Q|6PT3+sB*f##UJ@|mC(9fY#5 z;Nsk*oZpIxQD}W#HOl(vH--G))wYeo|4iG~@ndbv$gIR)2!${+m7E- zw{a9aMw2*xqLFd2af7N5h#3~{5qmpjLqhs7AnYIDrh)V%p7^P@gE)Mqjn9$se$zol z7XeC33E~S&{V74P&`}U9BqXqS7X%CK@-o?n(Ydh{v(a5_NT}}AYBesAipH!cQinBPxmehw3>Y^D(n5%Kan=dtFTYjd2BZ_^BJw$+#ta*kVwRJhX$t^WCC{p-1?@p`(EF)$W@W(Oo*%g__AIJ*>AjRNiyA z@KEByRe^meD^8A!tUOqcAR%JS)?*4Aw9zQkvBUudZE)didU}_p!)$U3LC{8c{wFa@ z+eFV-R{XBbsuKQtRpnyAasNNn%>HB1lJ9F~!-eL7b}dnubYGqfjOMfz#;a5D9j{Ih z#;apuyAr-f4%lkkw4Z{`<)0Vp^-G9KX^ye}@>0TQ*{(f3&s;3yMJPIaHKvmI=>Oz z6P>&Gi%jq;$VE0ZC-(1v(ANlo=tu+`)z8q^U0EsHayuqZ9ix^2Q`xK=* z*7#GO@vR8|%Shy~XFrq0Sq=gTe(#XIZ~6#E7*}%@F}O@8+E1h-k6xz32=L7o1GYP~ zLGpXeWuh0Qs8-ZTa0BMJYj7@pW>rW=gT-!!T(3&NCB3D)T5ch zTAnNr$Jl@x)<5+5n&gCqBPRvr8kB5uGu{39hFR!913o34k<1d|+Xe#=jI4cUC$J^~ zVZHoith^prlU_YInil8|>G!oR90h_BkP(UlRQyl^Gq8c;zP?{=d>kZ)Dg>8+|LZ`J zFZ%?WH40`@{g2Vjt$!Zfyz60g9E(QUB~>}~NPqE*znrk#A)*5an^%b98296wfdYdX z^_iRXqR->I95AZ3htWA7&Gm&(5RDqDt@?z9Tmfi^q#`Ei3kXMI>Is1eKdk7$czMfCjcTgFcB-ORE*dxRd&?byj_!HN)n3t>V9>Bu)uL? zzHQvZ(Iby3Rdq8B=x-csKu)PV$9Ho|=j#5Mbj@GQ0Dv-&f1IJ*Nk|o5$h4VIj0r)- z_<}$PYJ~Bv^^GQn;xyKf{He)d$`p)uQ^I1mzMN?~`Tt>t88gDnmL(Wd;%+7zvvGT- za1Cz=&umZYjC@CUHrzO2c+?Db*AyI3QcyHdDi6Ij8kb8(S>QNF8C z{<9lbv&Y0g%N?x)xuZXXQ_Jwmw@yiD>=4S>XgQ)pj=cmSVh}JgnWGbSYQST5B5a_I zEQq5$t}WcMw?a%dWR3alv&SBG<;C-f3pK)EehGA6G*kLGzo26uDubMY;xT`IldhW( zD#FUQiHa26?H*}f8uNNy))fGmZR~+u%@!8&WxnwSn(EMHIQSbz<7sk~Kkc6xjsIJ* zR0c6r_Huq|<0h5sht#dRI*5rEx5>k$xu`O7;I+l$Gd#2{n{ns`)+6Xg zU;6&AjP5MUq`Tf6y5qBq;#gZHCA^QRDCyqUoJO(2`3>OXUdV}8DxdNRkba8TfYGr= z>OC7q;ok&PNBgT!Eec6WuW+j@%JpcmI`w%^njm8v-C@Y{1?$V@NxH4{xzN&tYfl95 zLCL`R?UHeA7)M`|{;;XxW1B(fX zw17o#(+*g*DP_$obn2Z%J8f1J(0K@g&SRe%Rb2fZtbG{LueRE=k8HC)Od|-j9veZV z5+C6Xn@s^L8RxeG)+&tf{SFpBHHwzsggeBrYoJ))<$k~_-;>ed-v%09#pa_~Pmfd$ zY1qjdHY)U2vm{BlTxOubSxw8D@DLnh6tY}LE(^{TvWhBZS55lKcRpKpQ*bVr(;slw z1T|#Q^Q|4IAx`06h~D>n37(F2YZ77Qt6iJ&Rim*zBTrmqgntr7+5$4tOfea0YjLI@ z`v=?RUM&9Emzoz|0`(8Ic^`)lx|#XCk4-9;-wl4$uwUBum4=<<3P!_zca+1?=EEDj zU)wU`W?)#|Gw=*x!!G#f#w_><3%?unkK|PTx`g$=KBjH(Je7y=t_P)k z{yfM{L+=Z}!IaG;faz0$6`$Ga{DGYp16=Oci_BRw4M0zQks|z-{i1I>KE}igu*yW! z2(eYyZfP9I#_NE!@jhZK{I`dZ3Iv<~#cabCe)1b!@N1`SJ|7ukq9(t{3i)mz>EZg5 zL`i;cZ?jke2g+oN_3Nwtm2$VDQVlcnaZN1GR3|XqW|}?^PZsY1jOew5Rq>vWXk!7# z3|2foBPV#0&PGVu?CaCZVGr=eRsHste|NxPRbcf;Q|*^*sO0}n?)P^_{S;UDcWYrc zPHxnY)W*S`9dqvUSNT!8Vc|UjzKI@Dd^0OaDra`g>a!;0>{d1!+Trhn>(_(`t^#gckxlhBsseDI{V)H;M}{I z*23YL17#&bx~yF50gwigV|2LKs?8ZzMAUu{smy9N)dhd6#}*iy=sj*KIs8_xlS?CeFqnoIs$ugx*` zNIQ)#Edxu+g^|kY^pOIvEopxRx9zpZN=@R<#WuU|nGyMl$!EH^V(@ag%P_E-1UquIOFkq-nf2CcBJbo@5k5iDtv|S;dBu zwY|3~1PK`IBwo%k&UPEXGxi7{t{JMJtR0vYVGrJtA86dUbh^Bg)4MlD9IYSUq`}+U z8;)%+@1Bpt@ozxunSv{_@h69rzOFS4*hC`hkYR z6e9ofr+MY%+OIk-TX2d-NJUcI9FkvQ)+Q}v6$DHb@oeEcaio;BV?FA9X6dvlXJFc% zw#VChDoPyOsQN0*8Sy3VJbkZr-aOqFKhN}Nm@5_d?ZloZI4`!O&8Tt`i92k?*^i%h zW~ca~2TwC@srQWPD@yHChaOSwB4z`|U)EiLk{oWmWzHBT((*{>%ERgY zo275S)tp2))Jzh?=|?#cFdRjWed2Gt_XMZ82^IZg|$FnG3wr&9Z+TE3P?g$rpi z=8*sHSQd^r6z$qPmDgx-ga6Xdz8&}vuI~#QC$mo>aR4{^NVMhZ>D}VEEZX4DdgC2& zpJ$sry-SJrf6XV;=}*NP?I31bOCZ!D(>7ar<3aN{lr6#pY2@}R*kO2-u{u=}9nm!W z#A8Epaj6Mz^{r2ev`wnLkQn#X5JnM2iep54v&~BogsC%LaZ}r zf$HOl!(c_LB4djPpI&J_U91{It~O&+t3KDGI?l~m);l@Tt-w-~|88J*Ma5KKDV=R% zF{w~fPv=(V+%-7ISl(KWBeI%sEMK722=B9^ajtSn?DQlQbO?E0>6IuR@3pC@0~Wmz zsKaF7EWV-~zxOD)+sG1-7gp;jup0?$Y7gQRb%u=ash{58ic?Fye7v(EHMN=fw!vg< z@yA+G{B^C+OT*TRrN&=85e3ZRDTsm)pYo@X*tHZ@lTZsqWs2ImfjoBGfP~0 zZuUFpn@Ak|Q7q(_%?;CTK@}I3AC`zp1=BuV@t$4vjdghhfhevER z0#Wghup!DuR&a6nT$7T=>9ISS4`U=6S>}Y}7n;Yup+y>^0m%ZWyT%p%h2(lk%7 z((G!Yr)KoAgsX{mQQ*>3AY0TEk2nFSKruH3-i@6NM@Hv@6bLF6$fTeJ zn~T5?nwq05jq_87d?A^>7mH~z#^jU|%tn!%o6Z`vy#8@fzfr5 zT#a!nEk;p<=6|d(xZ+|l_zPC@hU>RI_Ygi#U9X*8F`QVq<7LCeW=lL^iz>)}9I0+? zMQEnP?@g_l-Nnj57Btg6Fwliw>6=y8H>E64Wq)@lf{%mSb8@Mywnn4Z18S8cXF_=1`|xNAM?8>*7V376rbBGRkbg3dgDeI=w^X<)OjL ziWvm9)~q@CmPU1g3KW>0?3|z0(wmV2Ume4n!iPuBJm|Q>E*_%F7>t#EssQPy5wX99VTR+%;1^Y<_L1hj z)6!EJhb%x$*{PGCs*IiWMwL-WSld$D0Cq22#=)1kw8dTn-}=DRNOs#;&~rAkhOXP7 zjnU)M-l43AN7;O}RJI4o&RDcmP zDK}rGwEB@X;S?w-gHWTmidsVBzRZe^qIp$tarBF#S zS-ieq5bdSg@;FX3(mtxV^Mi_VvN3BCS0EGT7UQuW)G&d}k(VOT7Runes8dKWu*<^ltUeS_{>pjm)k8AkzEsu zYwAP17f1^VTs_b^1wrIww)e=ZHmXgYRCmqVo}liqAhhXu`tuVu}0ir;@Q~b z9O*2p^0TQ(@A}44K7+DKZcRP|tD~87)u(=~TM=M#1>FiH(E9yuB@WxI%zW9c9K-r! z)z-nvddK%5^l-#yGxV@Q8Csy!ve<+TF1rbq*1x{or2_WBwk=);z(>zh2BXY;l2KIv ze9XVwd(V+wTnFeqF~g096w5_my60Q~?vuk*f$s(}dQY#ToLz_`;X7+rfZd)%Z*GX6 zm$OeCEfC*C#REp0!*~PXyEjG~s_{Zw_bK@lt<HSMz`Yk zgKnk%-_)&?*`8AZUA;id8k(Zswbc z(em8NDTSn>^{Kmt^rDcp;bw%A#s+4#gl6uOD1gj-EHTJ6m@T|>Uro&;e-TG{@)vi? zsp{8@u5%t=N?%iM63S#CCs4|onU!coH!3et-78|LV31D`lz-Wkfv{#H%J&d|o@2$a z?B_PeZJcXe6hIQ+LE-wuc7o=byh*XCleTkZt1Rp^id=Afxo6tZviRAK zk{n&4z3McHw8b6)>jSgCfMM;c5k;mT0F*-9u2`5m9G&dN8Y0pl!*Gb?Hhbj&6z##V z+R&fJQM=Unf=6w&Bbs`uPbfRZYf#O{*lMMarrKlRv`L|&Y4O|HVGYn^Bv=F* zKZ8U3s-T>%pXd-+;CT0Od2zvk!e`<5w(AF=o%Eq#Cq0H4F<-?nBW;~Q^`(uz0(*eN zEoMkxQffw!4_PjkkUaMHz%7_@nADt z6--5yn^VyPI`0~26>K%>U@)`_w!96wQg@(sxdDcsxDY5&hzE96JFeC~+8vw*aE7IW zSr5f$3xT(6As?k5GfBlM4%WO;(SVj^2Y#63v|vG;vRU`;px z+2J=@-ja|hhJQW8YrNssvqDnArn(Q?g~3>6V{*e#9EuRBZi<#C0uds#7B|~sdB8~a z>S`ibH~-z~3@0JW#OzX{%x>?xAIyV1i8>u5Pc#W$sWSawpn9UIVCE<(-=}YFNh`Ue zSALhV@=dXl!90V34uf!t?V0q21;=_%CHioNW+e|wkh40MEs2UF%8VK&*KIEgMV&y` zny%f;n2R97Q&K`Pe=+{>Y86;hbWFK4mKreRqt#|41><|i!Z;^PY=oYsoEjAsI<+xmynURv;VD+}k`gxIun2;PE zVHp7(M*>0F#I5I^Qd4k4&6x40@BPO319V=+TtMgbol@e^ zwRP~IgLmyy>7+j^(-o3j~@V5kfSg9!^CtJ zm4cH6GZ<-MS~5%i=)kA{;e);_`iA{EqWwR>YNA`4I<_Rpo)o$I19a#&>JNmi)HxZ8 zk7Gw6xvx-}V+!8Yho#Ce4BV*a&V4j+Y%7e|!WeVC<2#Hp1MTJ!lmR7Xfvvw}) zXe-Iq4q1w*8kj2^?=Da^Xq}L=YV2%%rAZZ^W7=e5W{I~F%+Rz{Cpa?N6Pcr;MwJhz>vWa78DZC`##M`N&ySSzhXX$6zw0(sr}*eEzD_q`QlBuq3Vf6jVJlukOf zOBC4fQ;f%G?Xm9!5u9#BUZ zE6D`;ILt4veF59DZ*Hrfna6CT%qnCC(oEpOhnSxF3D~?{k;R{nLSecgqC;n!C*2w> z=-T>UZZ5130}Jb=$~P9)AA%Ovx8-np2Xnn+wMC9kyJxS=MV$<-&HtK|KP8NyCZ#xa8j6L&Dl7 zma1zU)j7>AR+{_2DJI6n46=CTh2tpyGBwruF&6ij<8rng;mcSWh*E8f?FJ3Ry-5SD zz5kX5IxG#*Kpce_8fa}e+IT@<68=2h`-WsYDXLwdSNHql4$;3j?$rL;xFg_E40dJu zFL?K+lJRsYUgeuh_Q7u1`+K?+XLNcD8PK8A|NExYKi{^EwkW|rGVcE(PT;9%5 zjxwevQQ7QCvctaZNgQLLo`ls5+mqC6_9RO$Ku_X2TYWfGFh3?f5y{;z=gvQkjPhfkR1gLlDfMgMS5L0Wpjr`QClp5X5ADe-(|AqEE8WQhN$SaD!og0 zZB{80#wOC&`26&mI$IT--^?vn#xz5djsTc+Ue`v`g+k6*h(|tFe;)NkN7A~vBYUP` zvm*)R7Z-5+Bs~$&)I_w8XRSQ?8aH`;*>8x(|QADZ?$a)&Hxgpp9ek==!SZMyq0+D|=GBfy`%0r0wK@{)ZduY=T z$|!B*7{P4)pB~p&|7DVeh;HnoPH?Z^a5&K|sKQB3(s@QdOi2NbjH^A}s-> zR~0K=s)B&hJ0iUc2q*|hD3L%ylTPTp<$K-)5ZfH*d^6{qd+z;X9L5RBOY~jYd+p!a z4+dU{uoQT)jl%~FR&KtbcHbNOxU`=*rd8=b;yMz6;y2E7L=G%nszx23J;tJU!Va7z zWi0T*4Z|3v(vnYWUs-0uk`3CIk7U)76ww&RbY)y3TY}|H7bAU5tJEp4!dV@M;TOJ1 zbnGrHN|rJ#F3lw;TKQ_9r>VQd0e(z4T_b;t&dk0g`$=oQL1~8vusZjj+9j;RQ^C8m zW~5?Lw>`ZV03a_tjha^g5ZKEzf(|PH2+RloAi~Zz_FYJML#^Yq3@9$)4t=CwHMIVm zK#lbsz(=k1J8>%{xHWdg@2n1Ij1bxYXwsu(b86BN(Q4_&aLZ=<;_oLbD(=zb9fnoy z?@GDm-t6E22=JtU=Gn<`p%Xe>LoB9K= zWas8*=Dg3~I5aIprR!|S?tND_>725U|MVAOSO1zjw>eL&a3}J=jqLhY+_)7qca`^8 ztlqbekdo6x=AvPZEdX)gnk^n--EAjacm?sp1h=vMvh{QGXU8u3G~9e4cJ})_m(Txd zT;Y(+7b0Tu5Os_LoT5S)i@sYKiz1HwI2I+7g2tloM&ekMHkQ{xg)p!f3?U3G3T(nS z4Twggi($5H7ymN+S?5wpd+vD@i_Rh1&JX6kRttargO>#Q;En#5eDJ<&2rMCd@Xqy^ zE`RWDRWFHV6acWpoF@5OiS4Rp(h7jvtYcqcvC`hvA@(-{77H7(!eUVuC>|gT2G($! zR2K-`X6E+aWU>AOxJ~u(FF93}u~i|iz%3mBmBg3xw@l6eLt#)Bn)O=5kEeOusRlUc zhLpb!2L1b0>F<7LKkCZR`N1~ey#r%cktt~{NlD_(o5&&PD?JDhrnOAwaEIl-^sw*~ zLkqbxg}>~@AI8_7eY#yOfrw(^{_%^g%g4YHcuZ^sfpFOO=(QsQGCTLaxfrczDdAuNap+(HIJDJj>SXHz*lNX# z?XK~BXk8Y%L?x5xX$?NfMd{`QI}QUX69ADypQ#0&O%qDaxm3TL3w$_3Uiyd?f_uwo zh~u?<__!>p+iyaJXziC!Hi95#EkK%~bMN!9{*>eUl}^0e`c7vCob349u#`p6?opPx zIXiX&J^{SEjl?H?13hVo(>f_p?TwrF*+u^k1HZLH>}{{V>Dhj4FwSK5TH;%yDQF32 z;DYf5m{yP*bo3%`e~<6=P%>TIq}UsesN*VtoE(p@^S0wjZ?ZGVI9^o|15RIrR)F98 zR~v4>H9Pz(M+yi0xXH?sBh{veV@R;Y$=i`!pU6!$&CMNUf(-mF^gu1cqOB?R$(SHe zm8HT_*@ISPW=q;@pa!Ec(Ixz1^dgFZf3Frd?Tsg&BDts;<#w$W3Lh`YIAVlGRpk~f zoT3hC2Ym@hxSl=ufPiAYQS<1u4Zy7Y6M+=BR;dR7B>vdBZshMI&ctUqmE<_$Q@mfrFh9f=QyblO>=Z(wLh- zW0+6*B$*dLXRHClVRz+sOeS)L$)tVB$JT%(3?{EH4<-*@-1N)AWRAzD<%OKsTR805 z;LJBtWX1+ZWSacdTl`5q>3gdapaaobyPlg1{c>)%3E z)sju4x-n8Es`n42zEKV8uv2;$(%DCU8#U*vuAy<;C4NaB{q6~niM*-pzFHy@RC^=s-1Y5>?wsg^OzxYhk0AL+yK(R3 zMuW4cZ{B`=4P-nx(FadIh%2Kq0T6jwlMrOmn1}>zqcH)Kgfx)h0nb5YLiYTkVy7E7 zpwZEThoLkKNQc~a=WZ6`MuQLzcn&x2N0(p4nTbHhRhvwCfuN62&~y~okY)G!d~xHe zDxk7xz^uU}s97x^a~Tn0Ho8?jIe}N16eg=wQn6^`sz5(kGuRb%8c#M`1@wtL0pGwx zVm)KswLN9q(Da)xbLB_WwVh7Twga<&EdY)!#hoz3(w3SkS_Z%`R~+90oonyg=m`PfUSzSIF*APf z3Z7~gltuuW!Mau%{#@M+XbFXPs|Tm1bOCgCr7MC zOg{Y(F-a35v^6yje~k_4v%-JwE;G(u!Wl3tYG{wruNW~z46lS zHL#`|-Y27@6Q731%yxn(31ol-H39?V!oKCXL&s^JJ_}DR$@uufp_+YP2vB&jm`rR3 zv9bXnlUFMtld7MDOimF(COBfqB!4wzB1H(9=y0yi9j;&fnte6O= zWzAnPzTPJVv_{b@BKXvEk6W&5#AXqQO)wA}iG?ims@V8QjE}F1%{&krxwNoyWp)f8 z#F4ePH02d^j%)VWLx&T9_UVW}w7+u=A0Dy7hx4AdQHzVzZC01Jt;pHKbQf&3*uBNU z^{3%iIn?esGR%VP7Xoc15&VqhX?3$Uv8?%cqoi|7&N#{OFC|S*0niH1?WVdpK5`*7 zRSNIlRhx&Pq|{!FT^`EeMYoeQ=j9umrB}ajLoZdJbUNX&RC%3XZ_?zs%&e^LgUX9N zEkuW9eye&>rVn&_0YEz6W(`F*LP%$H$;xa4cSOeNdUO(%YbR`xp8_aXV~NrTC-3+E zXe=$Et;(2`=YbYx{N8kfU~#z4jPL(tYqeSK$JQzjCPRV0K(@$FNxYi&4`1d2Gz5D% zB&`c#LKS`Z(TCGf;U9R=%P{DZ3qJc%549g&H7b8q#hhaf3c9qWt4XytLanxArfLR~o$9<~CQ7xDK%~Q~NN&4x&*uq!x)E+dy6?(h@Wp_4FRNUPoVlCP zX6W?nq2wGnq%$#^v!D2Ze&&)*eT`vN&Hl+$wNz0ER7g-2RVFrvT_>C05D10st^kpI z8>YB*5BMygFga<+ita3VEKGwle0fJ_cwf#z5?Ag^4}?MV<7zGQrYEnr(YSIS;G)2d zUV9hjZn+!)By$#~2`df*80G7m`|n-)eBWJ|#*Nx_YUZR)tw`?jkN&7Aj8yhoEr^Gx zq;0ESZiZ_v|4b!UYahnEz6rFGRqeqc@Z;##l7yFq@e8=Aq}3)Z zr+}`#zA2=jl9rgeks|S;7odStZaT~A*3!|7u%d6S{(vfJhnZO+O3PL0uo(FJrIJ<@ zlXBCO{3wMs8XqAMJMKMmL;aUy5ZiKev;@ z~y3zlMpY+%RajVgo=@Sk;Pg}xX(~ zhfM1XDQRnc44HHkB5Sv-jT&BKzmtsW!Jh7@1()-oJKq zlRq4KVk^_P5xJUu=bqXC%1!8|q;@R}D>?U#1emwHetnY_UGm2ozynuNIYWVK|6>uLg|UK{m>T&*6>#&Q zp`ZYAW&MY0DN;_l16(YB-XF?kc;~|h!a%UFf2fzWW+l)YKt4k&GYO&cY z(Cy7=vhqP%34YU6!$)W|^1C35%s|piYxTrD078>5@ZxJ+T^p}jQ#s%kY)0GrtAx#0 zg11NQ*!03wctMKAPJdi!6LVfa3)7Yc?MX&kLW1Rkl4{mUf<<~I!4h(tm|($ACwq56 z>p(2ltOG&uUpM_>9mq-MDG#s?1dMa*ygV?!&=Z5=Gn!n7YL5dzbnhBKv=soNkpK|w z5Jh)Hf(FV4J8!eQ`Nz-~Kfz7BTXIZ?UfO6|9SK6+RC}{G;5h z;dRJJ-tM~+?1%3=OpA1Wqjp4QQ7WPyR8oER9=?JVFgt&QV_i%8ISe>V9t#d@vepV+ zl9f)Bxdr@VMoP5chh_g*5(LH;FyPELNKVB19i_)1IicIIEGMDSc5{gnIX76VKTS*% z4Pxprtx1a2+YCPK_ot>rv&;o$axPx0y#r*8gKjZ(aOQCC!d$Y%=iO6py^Hq69pw_xK zec!n^?87d2{*a{_Cww%2?-#ty4>buf3}=2lT8`f}9SW~laU+CZBF|j77q_M?iRfA} zZw3W;R=7~RY9bf9)LJOv4`CrF0v6&(z(TaAy@~)9LK(b_g-ppp?oCYaFs)fKlwgTI zOq=^{7ETMhbIFmWYhDR?-yp~Ee3%sQijS}HiVJ{OECIaYQU{HmRj-&Oa`wrpS8N8n z;=Y~cOfW8vy&k?X4?L5ZnAgmsyx{(YOqVzY7)!MU??dZ}8Nqtu;PhRb%pnV7X$q3% z8JSV$1w^ZO?6Gq}=})6@X1ge6$Sjmzf@7`;S-9KbTl>7|d_hRJA8{m7snJiYhj8Xw zQ>y)VP&ZjkU$+(iXtlJ`yYaaR&s&BL-baCTlYIp*PWIKhnay3cZk{e%H+-8`tQ(o> z3H3gUAaXOe*p-R&_5#1}t()OUf_0OcI2;Kb_eR*n^AA7U5mi0|+($de*?WIglmv7B zXBH)uKBX&_6g}X^R*~-O5YnwiM7mkO>6ETREVrR#VYwFNeozB|ehetc84B9!|AkG^ z0Y9$olvKqYg=Ys(pcm9e-eiHhFcc$ZTk)RVkhh@3e?ts;Sca zqhiG9phR;TAyaFoKdp3$xga4eYp!zXehmRFn`K@_%N|9qpk=6Kv=zQ5DjxOCo=_=6Q7)CLa=go5{r*@Qegm{^tbEC5K+q_f{6N4B4WhNk^Bci zT1ox?$RI5?h|#t1gQnB!nzFImn=xKmDo*vsWJoZwg7L@f%nukPmwQ{7uXrS>Y?4YM z;54_43A;fHV1%fgfgBg87->KFHyaoKaYfBWt4H`ACyKgI{IJfP(Vz;B^-jg=hpgA5np*=Qz*q*A$V(OaGqac1>ry=^0c z+S{VO+!M-FeG|>C9g`V=?Dj;TOfObOJa40_M77rJmtlsb>zFh416~Ng|g6xWr&nVyPZjN0fx!NfXvB zEt6W`p zyT)eEegmpQBdMIGrF}9^D>h5NvIZfN`v>LBXR4X61~Ct;;&^5uh~vIt8=!9(>&Y%B zH}9d_J9e1MbU$aGy{*YCIOAzCeOBnw;NuT26AXAPE#`)JN?eEjV++9(QpZ!jL`Miv zv>-LL=hjC6XLyr=WI~~;cEy|{)I1XsCydlVfbP6%7x%j>=#;bIMlmhB4CQ^kX_|@HA((8Q9!ByyV7MO1cv{Ms{Pc>~mFaH@${wk=`K1 z6`PGEdV^7^d2X0{{jZ?c_3`q5MB#?Hla}vHm1{ts+kkr*>9qcBC*eD|cr3&7+U7XH zuj#0Gs$B6AH_Yqvhwe`7L5_X8mqO!}VRcd$R#OHquX!K$dUgw?hN-&;rhc?>UehJ# zPE(B?eV#0KZh$K9`B2#Mi-6gFL%5FU4m*$!TxRF z{jT3^U}Idw>LG>GG<#k;%kAou@wi-I-H>B6Wmpni77?3_syl0vS0muAD`>~>4!x6{ z?wlCWjZ_CB^e_(MX8i2z8+o|X5v6+P%kNb43a<-TPdf>H4Svcy9_wj0<}6C?@hUj4 z)~HEhEix3tv~259+A|BN?lnmm{^pGk> z#fPy4PMQ0ve_3Nb=Y6v{Hd_xG(r=U;Ke{?MgNF2S3SXePSti)5^y*f3L`-o)Kb4jK za(bs~?Ay5+*sIigV_tsE-q`G~dt?7#3FJ-PadV#GY|G&n)ppOl$oj-p*`7uZR?bZq zj%~>)moe|5HTLPbWpg~(Gnq~BzGYS+cOmWx+bPwjWP@~q35k=ciI4z(XeKu-+6?aT zBGT>3?J%&&g=C3%%*74piIQZD0y19tW4%G^iBSU*vQ#J#*RL^un)FXtdjRx3XLvoIM4~Y zIaAcncaiQ4NC~PQJ8iim?hy&NkEJfE(W#xZ+=!e40vF{lsFa!Ox75Vw83cU?s`s<| z*u8-o@N1)1G7!MRY|qUbwp~BDR_ab!jwcZWiz;`s0`{#bRc;?Ehi>Le+nYd%kqi-C zuQuz#4w(#JErYvZ@{E?CAG{2{-Vb&X{EMfu@-th^SGg_vOe)s==PvqBsPcd3rG~g; zq>BxgiZIC)+?QaOkV-l2EZc$;3A?R72oiQ%U-Yi!BT_^w z5`{SOi@Gg{&_HsuX0q#yLL`x5yl~A6k6Zc+UrD0iZ%85rt2mG`9KLGc$gtW&Vu(Ft zAiS#bzR1O6&Os?R!LRF)Y<)8>qKz;D5QL-|pWoKw; z`G&ijP9G4f6xvY+|I<(2S_VfVoJX@(s;{(Bm%@g6qpN+R!<-|xJ+WEW8nkM9tIX+1 z!OtCdKaDTTx}vx0j8)8}V=)KQn~znXXb84)AyhYnq5vv6cu36W=}Fdsw<-rHGy8#0 zo6D;1u)hvEu#pF`e?3%%5sD4M19$dL3GQ6CTwH0Ke7VCdXualD*eRJU=E)KF=Hj=u z4Jlib53EOVYxNIIK9;5(zU|pNv0iW-d^y7D35IM9+BJ`>%^69rU-f$UV7kE|QaK`v z!nLxV{R}+H@-F7xGqjBnY1`@a@Pf;@XXsPux`yTT(s>VKX*aSR656X3Wl2XF5UY8! zPG7VVnKBVE`adR zD9aA6%eVtK*HZzjvqo87#=SEFm;Y(Q z=`-zmhCOCx&(ROcs_LP)Rh}1-xE{PxJ$QEFL!Y6apiZXizTABMW^rYGb!W%v^d0U& zvCtbEWrx)G+znw{V^CH;rR6T~B>| z0VApD)D>R#M8Rjp9@{|{NmEIPd@z=Sm6kVWdpd@Wd+=g<+1F^=?6lL;*L{{wV;#mF zu8{#tqq}9r9jxqkJn}F<-=A95{|6;kZ(muH`8W7=@Uhom zG1L=q0LVXB427g>?JW0A7l_W`e@$kM9%d;)=+ zbo}^vW|kMKboPKsr&QkYGyCHXlJy2QTR1Is2fH=LAt?maRt)rsX$d|t%itF#KS6zw z_*$7t^ThO9mekCYq*DK)^5Xu#%4?-3|9gu>8*WQp|1ZU@-SjPsaf8?R+tBQi4*7I> zv7IK5*9mNtB)wDfwuaBX^P!>>e+jHE_>9-x3)B=?xryXjnLq6SRQQ1O?ne|ee z-c|v{3by)BQLiso6f%k8CC}uvyy0P>l034xf+$_3#BIFn)%a+x8S3(2eC9VR&ElF`vs7B%{YejHavmT9|;X&$w*s_Xu6{ zQP-YLwNHJN-O5O)$ex0VOd_nSB7&2)>$$?zdi}&2n3036@@bvX$r353Ak#1{DQ=if zJW`SS!IrC)Ic~%+dW^g%WMo@3PG)XJzz}((Qiliv<^l;=RKQvRi=O^gz&`M=5wOb~ z|Ga=9Ys&3f2(_F@IUMRh%HWWz#-$5e3btk4C3eX9ZW>?O)j^U79PP)??kPc5Rf0g0 zK@a#6>OVe9>Dz!VvO#DgsF#i(2A%AI-1P=_e@;sOL^)Xo$8zDJPXyh}I~6ns*mYsS zUBKH@AYZBQ{_j%%i8>m%n4)s$m$>nuT-AfhRZCS+uC__hB7`=*UjNY%JKqc10c~O_ z4OOZZtCi|}gux2~_>jsH1*~N~CMM03Z;uZWU=0Jw3lc5~D+X8g*%}pSA?H%W*|UXi zPz-Lti9IYCxLiG&%Pv>R^O4hiC+8XWviKjyWV)0R$}Aq4-N7So9(9biU8Q#5e27&9m z8Q4m*Po9Uxr|$%+bWMe2{LN~MTftC;CGFR(k62m0c>`L$*<0+HtRVq<#)!_ooG7t{ z%Q?tdIN1A5sIo|5j^7-JWNEr`Aky&4fk-{IKJZZ*MxxpO)1?;mx`Sq>8b)wd_N1mN zTi!DykTJCxc0%JpXrmmKv@w1*O$kloCz$BRPNoyHo!Inw+4ojFN`ksRZLTCBFvp|T z2+Xwp5g;%EUn`_1TUP{TGycFfqS^iXH=oq}=R`P+HF0{iH3QGSVmvaYkI7(u;5SZdXSuX8IP z>!=R3nsv%(9u5j7*DtP&C>adBoG{~T?!!z0t;WL|a0;6jSJKf*P{@NL2R0BVhDXGj zI94Wx>N(e!PcV6y^5bHhFydky;>56LWiif_G?9QpJmWM--X{!3hHH0g7-i^~34+zV zE_@RDdZ%f-j?8@B-5X@0_KE`R?%g+GW&(EivP(c4He-Qq2u@~SbDY{gtsV>-Mn?$hF~>``tR4&+?x7`eU}V)` zPsW0CuLv!XpxkmwVKbq<+9M`l-X)|Al_$x&P_!xHq184meUJrIbH>lQJJjN3UYqS1 zU1-8He@eGAJ`?JfjzRsBW8?Zi>kku5Z5jd6_!VF0Tk)tY_&@RZetP-8TjvPkktXzU z{Aj{32(3*jJ025mTrsZ~uGn`GjxT}6YubQkPaul5w9DFMP}x|jB0)wcFuwXLuH#I}wh*wzU|+xpzfk&O9u;7G=k zhCMXhm(kDx%hON8)RMGpJXelaQ)%%8ebEt5r0R1(O>SM&7~KGkkuabPHaloEH!6C& z%0Z{9#hnqf`*x{TrGtH!oVF3jy~_NsRLj74^qXUk(wyV<>Q#4~3h%I4IrfOhGsN7r z^(=G}BioJJsmF0?Z* z9P}p`&ONV@*qDWL3BYg`QUo;wBp+Xdlm*Nc>v5>L?Pi$WLHoSEj`MpKRku{^NRr{? zu28qjr|0A@u-yUb6}5Yy>uA%bCC=vm#NTdoIou-mT3?SdKb$bP3fF~!rxygjf~OBm zp~1i5pxDabRdjyM5bb~cJnFx&p7;|}R5GhUZf4vr?R;PA31GJDKW%HzoQPY*59XU7 z(CEy}d9$$&F~#vuetwiszHCAw=hOJL2GSbj6je9ve8o#@d`M~zhu~$B+g=jPZFAM* zR8ql=5yAp(TGjfRzihL4S5s4sO+k*MD43!7*H9QCPGxvt8A?Ml4Q2~J;5DLyUB~do znSw9O1wtZ90;2nz@*4$Fj~*2>*@Z8lGFVCXA_oFoMFSQWj-N&Q4lA6+RTn6TOv>2p z&`zjw5%Ql>j++^KCpgw;d`3$;9E4>JXZQc54b)_YBNdepqRy(1d6~5q8=B=1ymYx|BK3`K9zFKjmWJsA#+eQS=&s~Z|> zZkLcxTy;+zKNO4o&{iioEKNecx!6%G(X=YqmkiU^{yPbYf+k*1D-9==^Srd3Q$?GR@B~qr#LpPJ8NSjiztg z&5`AQkYBX{aGi*CZwg0cy~k#O!g7ZepcnyuQp7M?_y z#mgN754>x+QO;^}I7SBrm&#S|%WQi{@SBxmEstuM;%>q^O!5S%ab<$Antedn;D@** zccjsH<**#U-H^%^XM_>m9f@?BQTQ3H(e`A9))S>PlP%W#9a0vQkZlrozdnI&7s9{9 z;jN%s+;bYrN3NVO0!5T{wxhJPy~ETjD@)4rAt>ptYj_2wZ)UH)m6df?U)bH1llQ;j zaVGVpCXxfV>Wyu1%N&dWNsD#fG3`2Tb{?$B?zg8$_ReSZ-U^P;ud!ND!OQMw!+-{m;iOou} ztcL5T@TSUd%u?YUD@8+(QsGSqw%*xD_G)uP=3Po7{j(Yg!7zA2aB9$j#_GZPb?l8E z_9@V#pbKE6b50k!xxUY&trSf~MrqXJPPj}<*(SB6$pD3&&heGl{^xj}U8t$?!NDFr zZOy`?7-fn|eb@BN1L~p(?~a=0w3$$!c1WmZU;8lNrXKlJm;0E{jGdvyqXY^C`1VOR z(R3AN=oxH(s#U1LmowM{D|#MdA6;xR3=q(2j ziq#@5>NFr$+-_yYq(SsP?o z#GAt-H0z(Lu;|5%4Lr^*R4JG^VvvJ6C({~|hLmCKDRF9L;K)tvRIo1^jmYG4a^2YX zCF}ruq5b@v&dCqeIjLb2$GN5VNf^~Z}X zvZMXUSby8*(a(`g{OUq9Om`ca-)pi@h_+N+we)m&B{|xV^@-AM(tbbn^@J915R>SG zq}-q)^&~8f{_89EaUgm!$vyUVNJIi>eDkPt&C`C-S=*Xh&6L)!{o^xl=QHNG6z>d6 z92ZN%iuZNDE+Rim<50lF4v$g!=$N$)nyv3hVrki0sCX&QD8aK^U6>22G5P2!`OJNJ za0nJO^9Pgp4>0V^@hg`wj^XsBXH4`o7abv}(BU-8Xj&l_hzZ*{ZXhPuhq|2sc2NIz zT&xP&aageK_U@z|VpaRyEQNBP6KSBdpm6Kp_ApF`8zrurh$SgrH1wyq2|Hw=d=kxO ziEB*D^>e%gC;C5rhOmy!C=bh{*s_7}TKEF***2sco0Pu|+9f$j+xH3_B^dt04$dB$Xg+4u}+5HxH@|$SykzIHM z{`+t*H^)Zc!oSZt#O1nUQ!pod6Ld4(s~&s|kpV|~cbRYHAv`+MhH4#nBg;0&s%jkS zePMRA_XXzNF7q3rn;@5e`N_be!HULpK<7`hgV*11p~sEp0wfJDIeCvjZ07QlK`(8h zMF0)VE*Mf!ZspN$0sp{GZ3=GM4RHp-;L4U?8a{q{9jK$-cF3h>o&R*MQ{)p+5UTy= z^GMs=qZ_hdXLzL+E1yfTY-QQ_=>6qpMQM9bABJdl~FGKb91$$=u=V(Xk3%@O|Mg_}D zT(6;LVJ3{?xr^-)M83qupF6C+p7>LGmbX#Ys2OSX%*Mtk3cwrPj|Q8SS2A}>`!SAXzM zf&7V~>mwPAgOBRBqgurKK9M@UZR#DDGBXn@)mfd4IkcC7$ykS`zQdVTW^cprsZ19- zFc=&9b};txan7QMpo>A=X9iw)77?j@FTvNBJpGtbL*B#PnkG53{qsy09gw-$Z9rG7 z-`9YnoCY??-3F!8CwMo3rvzekLQ6mEX6D&W;oNK@1n%b*7`YiuDux02=Bk;?HTZBk z5_Ub4U_E`+t?vI{-Fk)jNE}?Dt7P-4O>5z1WkBkPb2H|{Uu(99mYhVi>LyHdl&3^E zx0H$lU8P8vZ-GLMmF*M!e1Fo_G#Yf320;VEFb7Kqc2eRf^z&}QlnDe@?4Ey4Smz7C zy9DE@7&@~NE>P*6Y%nU4*M{DWc-OpKEJkpOm6i;}JFDpfv#`CRQPx?F7uh!J zG&By*c64Y!mqJOYpOu=hk9Ke4~RGUtW zk$!?$Pw`(B&Cw(FedkvCzEMF&6eY@lk(L5FlVMeurVFj2drC@#+I{n7myERiNp|*4 zR+ffWIy&w>XjNgw{K9fN`BCr`MS)7t{zt4PuNB6+o;ZD}Yr2_tP!xoD8%FFLRoxD` zcBRgm55(x0CG*BuH7->Y+oF_h2GeMUx`(F_+}epp4C1oYf3KiIJVJ$P(_7glx==7M7VO9Uw&S!z;i1fvy)CSo2eN|J5K(O>nV-jsHb}JFOoN6 zs|al$r!|Xu&%MN!_g6RB!cJS4ZfgeE5f^>e!_Y3|)m`WhSE-bTzu1zGPtpt4SeL8g zXH(cTJ82fSzNuyO>gaeF_inJ1ygfUX}iB7g(0ooS|^U613VdUVX7A=S!inwb|5^LS&U~y%@?SA~JmMybq8(Or+{R7W! zX@UB+?AY}h3AD31#P*H0QJRm$=+UPQ$mX}M>6{1I8>?wxjnz$3JB{=$4cAc`i54uk zZ;#UVdKRG%r`?(09?`+=eB_!wUgn;D+j4IS`gt(*+fwvXj^!@%8t$F$Ys;-{hw@4D zRCr6;b#QrRx;Rjtvd5`aIv19@I+U;3HH z)@Pp+HmVDMJU|?6!)qU~w$WQmM$Ivv`-4Vr`dzcgVjZ@a(kQjVEAmnVj!kCaXlS)a zXV+X3$Olt9)^NC<(@U}E4u#VyvJP2nnXE=@tEvo-F?$AEmayS5OI6+RiVTaDEmrZO z<71B_c?^#k*!iZpGVd{p+^OhDYc@?;8KA`=HOu6(fc_)j@fU)Jko^H?R|`Ctp@$s0fOkbAF|OtK?c zTuih%Ynr@-)h3UlWu^c$c>{zdPtK%%NvU?DKzse7I6bI*pe}FB9agYypKNApujnbM z{Xr8??zT%q2{?x%ETa*GHc#rWZ1Y~zP&j=u`R#J4F)e6cOgq8vQjEhqMvXWfI(@M% zngUUOyL0j}tN|1apnwDQOUC&;Rk8s5M0jdgS?TlOEl|g%ad5N)GNaCFv_y#tEjL)` z4V3!lG&ElP^^eQw?}*rQijVwGZf&1sG?nT2sK32bbJl0;QrLCsnOFx6m zA%@t<(O7K?Y#;SwL3?nujFPeC0HsYS zTHPZt9KS49TH0FC!L=h!-VwnClE^POvs-gHei68@-PM#0(u6h|nCX%eBD2X3YSfYu zG@9Ag=1nz-dqQ%v)eq{1a1yz4__WL*S%RB>#GC!@ikr?p1J1mPZ=YUxb3g+)V&i>{ zvZWnbR#%1-7X2PfCS{I&Hh}SMY{9h}7pN)D`w^8Zhk4)z5Uw{w;R>ehGhy@R$bT>R zVbaWdL56pBrZuk8FDa{$y?8*|LJ9FSpm=^I~D zXqm|!jfD!Wf>3)Z%{2~{E&kr*%H7G+OZMv2tf~EMeo6Tw z{@i&w1GsWsO8wX4d#8?O(KhgY5bBl97D zAtIfIDTz@@zxH14xt0@))L<+?@2)*xXLRx)G)?d%GYI`8>~{VL%FF0f`rOA}=BTr# zMP0?m)J(&Rg_A%pc&kbgzZ3j4M^N_VTN!SVW>d(=*SIC=xPVJ#*9hATW7hbh_G0u1 zN@KDHy4G7&R{!RwYmKQx%+MFK`ZYG2i~~wdNkb-~I&8Dm?W|K3TpcC_0@T?`pt8>N zM;5Wq=|k^ab~mrcp{GXg)1Rq1jNWc7_clT*QNf|_m20t9L5=NpACfbg+1k*=!_pOF z8lGkZ8q|E!+~b(znrEOtpa_B7C{^XWFYp}^{o6&d4!3-?SORbSdN^OgR+vN+8GA99 zvFwH?QQw4Kt^J|txJtoR*!>`>_Qtey%yh%7^A31K*63>yrWOVLfdt?1Vt2W$-H6V~ z+O3(?+`HOIp!dIJ7u=Vlm=t_>`1lsemdB=@*MzfVD=bZSL#@5(?S}IZ5(_HwRP0<+ zEGCXKE#(yoNP8=d6^f(J(No}^zIKyR`1xc%Eqc1`(Sz<|+RbC?M){c>idTr*=cvvC zzo;#MD=Lv*9V2G;|1d@P1I&gbZ&Yct$Jeh?R?tCvVbtVofVa6N}06g!6Ysy<;{bT~YE&!{2=`s>GikfzWYO5<@|0ABmTyIlm+ z>Q9;SG>*meHD#X(z&A7!yk{huOZc086SlTVL2G~!BGEZAErN!OG5Q(@*~us~`*uT{1t6z8<87&IeRpwbsp@UBEd|}{O<_hH z?`#Hlm#dF)nRM!OI^3cWTGhJjA+k#pithG0pcE}Q^qm``y-%3B(l}Trh(7wn*>B&An zTZJ%+tT@pcYl>DrqO_)^jKdCl+Vjx32Mpw{APx_`e}y9oT~>qYuXjH)y2cSDCHLbc&g`1@{FZSr+`Y65 zs=vClTk|J-nq~W#<1@pHSl`j^PhRRbiOr<-)C@$Xa;1TTl=9tMx-L2aQM)nynKEae zw)+l;6y+M_R~O1E`29j`uq0~)XWXqd81j?z#iup4-*;$`78 zs_djBuYz~_n@vh5O`p`pkB+-pAD@p+N-wWmxg%=~6_h_Zw}ftN>ziT~W_kj8S7 zqXmln8Ga{GCN@7v)bHXGzdHl?T{$Ji-5@SesD*oUSUhyK1jS!kP&{EVg2J{n8v45z z=w^^fYmkotA+{=yH@sDMXlmYkF;dGDF3)A#phDtLy{_`D3~MWBH?=+Of6{J_nL+I) z8`o_zKnlOH$H&i#=~ccZhY8cMMJoa%{w{T zbni5N2^X~ZGKE#J%aQH-L19g@CvUz|=?)LZ{H|H`gJO)7rKYo8%_vG|am&Ww{gJTP zrypMi`Hf;_awgBQJWNh#=78(ucf=i>zQ_^K`f)tWe4d4a%0ArnX%kZ^lxp#7KOmuEnO3mvwn_ff7NRh8W5hpxx{NB% zFY$Jf68y_ujQdWdfHNNw@F!pktN|p>pQK4DvuqhrcF&UWGd5+s*tr@{+7{x@Z$oH3YEy ztWv`Vr8(QmQdwsMDG;@zaMyMIcOyw4WU3N?7*(jFtqNAi^E}Q9d?N)sF%}}l4F`st z?OzzelWiocUTlN|M5(&v_lTwcA@cM4mkHqvcFi4xCNEwe+l=*V{3U_~l~M+gbqqL- zC>(>qS5_47)*2i_PEP(nehS!ICbNlbt<3?QfFmXTZ6-UTa!`-y3wK&7@w5UL^ zds*eACfFm+wGg6Bal1li)>r_;6Q|NLK-M3eUijuUwo8$Y7xz$oDR(ibN;&>!;jPJ= zT68H2qKOP9p59@Wds37tu5_VxTRElJ_X#7-lW&I<@Eb&iYLO=k777easO{%C8#3YF zgD^W3tg)}8D*&Obz4LgJs+E#2HbUgIGhC_6POz`BC*eTB8+c*XlS!BOTP-{CH5@r> zT#>lsyz3+G>>?cxA8k|iJ8^7?UOwuipN9ql<}9iRugI8~SPRrFSFVP2@D|R2Qyznl!8jK7NGBk+bIJWS&IZI&ZKd<1T+8UiZ_zAdZGg2W%+`Hi` zE{ddY2e@d|DlWQ_4>%MATy)e+yE%I+YI8(4fS`VNDn^lOX@n-Vn-fJqeP}+~-MT0} z9P>DHbna#v4Zej>9)$36?*5HX!S7z^?+!wLn|c7_JCBKngCNlgxAY|-o&Esn>|i4z zov-WHsgOA8%$7lD)R&+i&?pBlPx&ew7b5og?YHj0h<_gRd$YE`!505JMuNY6nJKOn zjbjZS=A-1mi2@?kM7fNKQa0iZW{p#(D0ByUrQ{ZDoE%;-l%wjdq0iA~eADWUx8_dG zj;z8~t?03QhuC`+1gc@YSuOT7#5GJM)Ao(UI-%8PbWD^EzVQ`nm|y(==0tyuT-CKt z7AE@)MD%Yi_rZ=Wu#vU-xawprjNt}cix_wZs$Gyl^@QJn#8JXh zw9FJe>|O;_BD!s4a~Ayq_A&O%i!O_lqNz;9zO`n%v1@>n#Sa>lq#WAOpq7;-L!n!U(o$yn&Us}JfIfN;#fa!kN|qq8krTAUScOG=Rnn;eC>)an*Mp5F7Y z-wnXiekuZ2YT_ui0l7V*+l=x876*gh}U;W6!dqZJwJQvi{$cUXDNbg|Rz@UA{ z0aw0;Y|y4>{2VEWbylxyfZ|_WqF?vDfai2#mQZg9NtlO z!Q&G+ahAmiTL^0~i$=v+6P$8m*SelBVb2(T?UYCS+$o13c04!V<*c|%8_n>~AgBC` zZ7vmG+%5TxNQ(9!eexeT_O}=RF~|P@Q$Ix-**nuqaL-+q(`fnR`)u(%aebYJa@KCg zy^pO?D)d#byAkM^MX5sq?khRuf=?xsw%n~a*c_FleChFXnkB^5z?YOd44e?6d2MR9 zj0y9g^0H(cv|B|A0G_2nj%qzeG$_3SK`iEXiwy#G1!G3e2qk zc&@DsU<@Cn{%uK@-*3qN2HWbhu%gkdp_ORP3;;v(8#oKm&0o7bj?g*O_imIlQZ>*L zt6}B+M|ODzu*>6K5|QbKzOO2hj}9&A%pzSQ`m}oZ z9PE%1g86h>PL2*Oed)|ve+jg{H;GwRqD3(3@-=4KY%H9_Gp@zgq_1!G(V@B7LoE2Y zp+vz}4+&+}d|J{QhlgUUCzTPB`8exAq;E*#D|g?w{U#9;Srd-0k_-Q!jGB(P1#`~S z$cI(8B^n3s$hdWsd=P&9bxwr%jYZMycKz%#2ku**Rw--X&Bm74FP7JEVn-XD9F0Y% z&gq4FGL@E+N75gcb4P2F*}mQ4mm~Ok<1$82kX1%$d!!$D<{6M@ z{;u$=XC5I~3_SC%9M%@=ubz2f#y{nmzoxyrC(xK z>oRZLb4fB9i!`$sBhPg5kU!PgQ*T=rY*Y|n;A`ghD zel#re2xZVfFw95QUlanv-1ygq`3=Z0AG-FvVa`NWJ?*J+8ANOLCdIXd5b}V|$;W}Q z9aACI1^%8Nuu^x2sMNrgT|(Ws+>&LJrUjZTjr)1JybqWPL;VN+)9mMmaI zk$o79&iu-*8_5&db?#%ph)R~?Z#$}iq1RiT>h*QTOB0N!$vR*}MKymlqR^p?d)DTb z>n?pYqFN8<{BuT>V7sTjt}$UPL*#c})GopQUN7o*C6B5O?j(5^ZL<6ZvGHh)8pLdR zW{b_TK8o!g*o}w-OTmF12twf|qq|0<0@eGko-m{V;Tlu3Zh%LC4<~h@^>!B#Gw-;mSf@`VceAL?A3v;&C^_fqE)p! z>=EyI77Kz!G?X;MKFw$Qo6_8&bVQ0--2BZ$!50kathDzewVUoX-(O#^_SBc0c4-xRJT>flldU#Zkgih0hexH2`22|24oa{%e4J2`p7GReVCyvGiT?5BBk|OaAez z*nL+%Iq&Ypyl>mjD0O;3u!2;uGP3AUnorT`B36HK-)*gfPT?#M z`91!#u!BV2`rS!SOzFRLLJJqv4Z9DT>Vim3chtWPna_!sEfKBSlFTeJ8mkr=bYoHR5Rb^`}@xF$6Qy}HAZobr{{e? z_x-wSntr3f0QyU7^?82{+2R_P&?Jva*Mi=2vzR;1W@g$KYT`=_uCvpz&Tu^~r%MLQ z6aQ~LF;C{Nc)e=K6^{sA@sebv-$m*)awt-kr&n#f%JA}pg_b8HGr@VY!Km3KpcL(- zm<@nalVUcQxcEoS28>gSm<53Le9txoK^ordfq@S7GuOV4+5nuO{1*VHX1RoK-LZf4N4hU-lr!Zx z|Af<^8%X7Mo-=?JA|{BcL|Nk}E0A!9H&% zXUth(Cr2z%L_XB5`3XhPb7(~zQ87ozR)d2@i&+f_gil%x9FItSod(5N-#RLuwPSnH z;@|}HMZpO#bD`HAPx-zNHKeBpifhwV_7-J6=<`2_mO1X+w<3Ab3xw7ECu zp~kE()1t0TY6a>~aBY50fwC_7SAqIhf%**NidpkMKBZk~>P)os@8gb0k~R zJO&lRHNfKzB&MOq-9^gdE|8K>F8{;{&lk=o8xY|WUI?d(BAf)$Q)>_Pr?^0f6c?q4p^NP+f#>cM);g`YvPu z)%vplK!w9kf|N^E2C!*5aNY6&HceL95P$ldTfim&1M^TnEet2CFRQ69KhD(Z?_1+S zO1ivy7tL+qGmmts!C1bFz7x{Tps;{*^ndk9gm#}Cj|Poow#gm}^I-bm3cx%FrZ5kI z7$t;~!-)+-EZ(^4a&wX~i90`@tN+=2JnpcV3PgUo(!8k$>vrWK<<{?e-_;4+`kTU- zYGnKQY?4KI8FW|P@0lh37L!`;oE62(eIGFzw<&>_29oj16DrZg#0;J}>iBwB~)ZD)l;0q)*lQPE($Vg29cTx5|Ixx%0+;$dZPI?vA zF9(?uQFk6T7T3K1;RJgn&&3lKE-)(-$*GeGa_S^cS?w*ud?YT>sowS1kKj-2CSFRJ z*ViyHi}sy*)pHzD8})4rS`JN$?}FV#WhbJ+r5dZ6QK%$M69DBnTeRkkt&s1LVl?02q6sQLVbIT8SlY zMxu2<0I&lTZVfn;R%Td}U~zMuGt>FKCR4C^aU)-82rw@mTHL(2N8^*`Mf#j_+{yZ( z-7Rrz8=udbz~;r?e$q+nY5~WEu1>FnnO;l=(N&Viz;w(}_=b08L9g$acKaxf05%NLur{>0rL(KkaYR zG?L3HqT!P!CobnSR%pe#^=G2z{@=dm5adZ%|1H=p8~b4U03Nmvz_I9OYph2|L>d@l zM>Y+h(KPDkmqFJq=;mf?`yP$9-vEfE06_!jH2R=h7s|WzwYCCU6a1kB2V3S4mA3fY zs1g)u8ja_qJzb1j3C>uGcDD^zSC-C&E$~u5bQx4F^C4f@pUzai2@DvyRD<1@Y8*)RC@0PjD|1>~X3JcpdJB4%mK=}1DcH_Z!s1Qpj# zLdC&`YLr8SBT=b9v4Tn{o*kq%REITBLy3=zPesyBA(6DxA4k$A zzao;xSc62;zBHx0(gCpvMvpWV!$V4Fqi2&Jy`k-w0%@?JT0>;|c1mrGO$v`7VJlU1 z))9%$TGLfc_Nb5f=rT@5sZVfIva_N!lZW8!EJwyivr2nmc6KRMcDC~mWoI`z=F?TM zrqqAHAsHDf2OJXY-#Fy|wf^gGP9e~%>wnk2E~Nm#g)uEhAe>#LF2LELGbWugI}OK5iN7tSO8zjBh2!(xU!QEDd_u zDKx+@yXY4mzU=ON%B%>>#=jqswCULyUhDuzkm>~BBt1HJ1`w8Wba1qa+Ud)D@N zZsu)hB7U{IYHgQ^5}<$|H6Gogga}CyEr%xBx3n6ZbrUvXfGFT$UhG5rqX!uK$o04a ziFofj5CuHf5~6_Pt>-D=?Eyo;@2p3mfPY6t0Z;1xgA{PasKqGY_9K6~q69U!220x|py3uN|}x#O9q{?Q@(KOxic^*b6=vcle{K;EaYVIKWT zXaYQ@lGwN0B_QdK!g&^nf0A`#W$D0J^Y2)wj>QVYXmCQi|GDp~WC!`&U?HkFs%P~a zqFX(2drDO^pkY!m9dC!9jCY}R7mp^wFMdZz0@?475bYMfw|h5 z%3PhkkVaAf(@0FPttlVTNbUm~NrmYKiG}G8{BRP(N51M0M^!h8<)&1o{Dn%Wyt)r~ zNi0|Q4T2D@n0fG*c}Z$KtZs*E`%J`YLvG9lQ>E0Tk(64E*BMu**y+jyI#-QY0w;wI z9)H#~8m5CM>D}THQJi6=lE3#zQOn=%7w7=N1eU+qhg~H9;GxW5(L>q0e@%>EO-=aP z*D)|LKApIju;#B18R&Zum);;Lc1^^TBv3U|%jFAAjN*!QK%cTQiiya3GAWB(-?_Vo z+Ph_8j4ipoKrggzSX+GspyGn&x{eGSW`nh+)F3gx)CG<7)(OQ*;1Q%7?=v#eZ9Bwg z`k=LLRRYvnCprsjQ`MB#xxt%ss-Og@F7e|FtDq*K zOS~nhf(j#F;we>7>!B*BgaaS4l4QSvl~hUMxdmIz{ZUrZ6E^k2BO_lzy1^p~AlTT&W^Ccd-p?UeAH_inYcHz*V$kiE?|XM?airJ2eHCy_y8-MOP3lv$-+(z zo|Mgla&0hpl5q+ffwnQ&cjouhkR+eYc-T0!j_52>@Igk670#$Jmi~<$LP{7cYDyh- zPz$OPkcR67#7Y7OAC9=Gg&rpmIEkY|ob@b8o@Z%NqPZA$ONP~|T$TIb2O+tl zVu{c@T->EI)ADs|-YMXOcj{?rSFyZfaJ0%+jEL(wHMVB&NK5}v{ZwyIYQj<5d_0$) zj3-*YqDa&B+05irC19IiyI%R$g}?dj<-M@bZnqoVrRR@r&aE)aeOr)XY~Y{zx_`JH zDZmTOW6Ty?FM4}BU;OLaLaUCNcc9AYOXKL3lu_=)ZEFB}Db&MtuKcdRg9@H_=JMnG zFE0DW=Su7vdyant`tJ-5dV)yqGW9wl7VzOBSzb0C1wEZ^dzq%UX(1HL8!%!QmFXz# z1>$agdon{Fryl2}Vfop!X&TbqO0#^ZXVXC&lDK>g5dVB#vA1S8_c?#a7q#u9ibD_PZE!|p54aj+LU z4%%fS$3drqTE?le`J7mY9uSp*cZT35?;v0k3^ys9X)2Yo`*`9-BYmBtpKPl81R@Rv z;g=Mw+whRgc2cHH zyKqnmY-N)cg5wM(os%k<$=^rPALO9zC5zm-JMYRjz_3F`?1^3g0UnQAET=(=$*>qvD3dAjX-U}i9^15 z*zlIHnQXDxU6;x_DkIu_^K`8b55~=gc#bjYh&$D-5}lpE13+AF*FC$@(}txwaZ#$0 z-TnhB6%#^*;)mT{bO~G%Xyj5HFXIo&h>3Wg-`kQgQp0Vg8`FBJP4TJgQs#iDp!inj zDf~zbpje{H!#6T8M$o$8o)O=`YBpdOW;AC{^d0rv^^Yjdc50W z0eC6<(o#^+xhg7c*2So+SANe8OpIZd`t+GyqjCvIk+2|w+1(gae3}*@16a*$c=gQk zv}o0*2a`9h0MLMoHVSO=uV8Gzx!udwZt4;g9rda-7&O>I_( zfVS^0^sW?rUgM=OxT!7jyfg$3NTQQ&jaOss6xOd0qF8=Euf%suIPwR6qVMi=KlX4>Cu`F?>R9e5gap6dRL}+$b*}0Z{~S30 z1$Th{{KbO0&(2Be>;HfC6N2~KxX-93oI#n`fvKm@#OsF6z$DA3KanJH=lo$m0Eu&^ zK;jsm;TV3hd%S((h>R+z6?L8GSR!pK^BuinbV$V$+|ipw>TQ8LdjDP@`BoD^P6`KP zqj0jBS*2P@yN;pv%c=?Fl#N`2ys2U%go!j^b;LW<3xqb zpGAs2eroMhede&GJ#({k_CRNb?CMah{ZsfCz3egr*-pRV-lpA138syGS+dIG73{-& z#7jG2b;)SBx78+PBj^rx^5>;B!|un%k89Ib>m6-xFc)a(Y%YYl?jpRvpgS*a5{r`P zkCHsYjH{FhjEjC5=gN^h>2cLCTRyPwuEBO|Bd4{=+X{m$x*K*rZo|Ki6FcZWGt&*K z%?(FS$)&5Dd2jq$x#XhEOUq6vzEU0YB%?k}-Q?*4-7d$eeklRp^jte-{4X;$9j)){ zZEmGqJ78b@t6KEUJj@l+(sZmKR{@Z}quM!|Jw`jxk2LbewrzUpz43@GR@*1qQ0z{& zu$Qvha^Te#xaP8JG~|YYS~{v+-@4xQ#euL2ZIk-~#z=AS)!1M^zPk5^gmgDIJh_{G zCJ+hILiGaLnNdy=_;OcoUMQ?)!*M^z;jAWNi1K_twlv4l4_bO??T+FcyW-*gOwp4+ zicB9}Q2__lP^9qi`AXo2oW6nrAp3!#wP@R%y{6( zwAS848WD{Bo!z*J^G!C;3gd6wIjIR&7|ROF47GZf{`Y+YcQK8*s%1?aE5eEnO$8{- zG#t)gh}s+$DPJ=?Gai#yQ4}@fT;brPr@ps3cYw`KP=xQ{uIT$c&ymH2zlXB8n0&mr zRBJ$sOGYoexSZ`IFD`eW#idRTpB4~xW@jo-v;4FMx?FieA#gUeNc(S&VhVv z9MKL^cl0;N=LOuA#cuq$0^OAG=&7QgK0V6(=4+p<{@XFQBRl)Y&{!T`t!A-Rjr_S0 zopQ90K*zxk;B%1<~R-{G}@-P9#-;`21GgdaP|ZFH_gaGAo;bn z@iytI9yxog<;a><21-VL-Z__%8gHS8>LO2fc(aP1u(io|uTK1d7Aa3#XLYstMPO4$ zTjbPsE$}L7exVd(aGJ6~oYf|65NmA#bdlvK0$s#xcWDO z3^L2?f|2BsSjI|QiBF%5uYApQa%M%1sRwNiC{pYuw8lLh80f2tNT!vE5f z3FN)vvJcMqyt&6{m6%$^%b~!+GCDHaN{}*Q%i*=$h;B*6y_NKhXcO&kP0CQrXdFnJ zs4J??E%6v|oRg4t@wi3r;W1`4(-~jVQhwd0$Rc>|a&g%!hu(d~PU5I@jb+vzn|9IO z7cg>~U^G8B+uPK_Y*J}ltgaNbB#fDOOU*12Z|A8^KhQ{@`@RNu-b4`8*bZ#grY}W# zp|tyx=o2z>inA&WGaYgRnl1Q)4cfcPpWRN@P>gV_U`t0IID@WIKc$%yuyGbQ6dlf0 zM65L(9#0E$b(WrSBu>BI)vM89BUKbyR^FOtXQ#P&t*kq7)Ofd|04ntXxKIi0>54W* zah%Gwzr*D7D6K}oF*!jetZmmh%#7n5=IDB(EYl$`e*dSdV-!nxgkxSl*SM8sDD0KW z<5jU15U9VXgk&O0$b0rxvnv)CYBya~G+n6F?leEk=?RKFzD}uae%sZ12q?9h#uJ!B zh~Y=NrC>6UvD;Ec=2n>N8Q07nfz+rX{+whoJ+Y~)#SgLjsF~LlTOH;uc-svv>|iBf zC2nN{E6FtzPLc|eIPaZ4__25TvjVAcjg<;UubcVhC5m?%3-x#a4R{h_g;Vr zRW};sk&f&6#v!D*mKlH)k?Pvk%}8-Aonb;m%X?BGwWYC+Wa{7SBeelOk;tJgNN<(6 zXX^t2Mk<+B5pPI;m#?7dMBnDS>FC_1?TxL2MTUX54Y+Z0JqyN@8Quf5p|YBRtp*Zm zg=I539@BIm3?{#MjJc+V9h`97#$ZBu-`g0@bTssVzC%kATshPkWo$EeYVyZiepOyD z52wy`W*Xa6v%bNc@i0A(mD4JX7=P|J=QeX{r0Q58&!9V^)jouuJf?zdipYpM-NBR} zW);XqFbgZHuT&jw85^qisR_$>N)pHgV2PA-mC#Y?igJh`cmWl@qfRTt2@arpegtTbRT*F`GXfwsMcxKn^&k_Kx--|&_9ii>_0}t&&qq` zTvpt8}{1I!N!336BFC zXh-`k)rCIUpCQE$||5b$?Rr1V7Y9ZIcH9%vJ?NIr-tspAG4> z>PfMZL;_CJ_iZsz<;I=#MJ+9r0kw)=RJj)T(4(uVU(K)3i5 z4wt2b1i8AwFMA$%o}-POe1b;rxefm9wPN0lP_LyE`x0hmd3RgeMCe<_%xs1Nzs!c< zg*-A)=!=_~nJ#L0WdUfkd8w=0o{@SCh-w1~TneZ-12 z8`RDLsF|Vb-Ol(nr)ZUvg04?Dy7(m9&pb4k858M#S|8Iq9{4`Nh-jZdsOhdHRGyq9 z#Gjli(+U(J>>SpQ=*rthzPuDl0`nH3s2)#=*}{58V_CkG=4jM(bM>MpE`{n zd$UmGO)Kt^6TY!Z@Ih-&5`!|JcA8y4lg>wq(`1fgkCP{~ZCS(HRtkCBGVE>%fwwK$lOJwd;j=hs+X|#?TTKj< zq*_w;Qgx?gk&RzFAmDowCd56@B6ErkOi+;32Qv^fet;PWfvT;;I@d4fx@H9ha)Az; z{Q<21n}|zb>FKw;w)Z*kR`;`;I)#5HDpL}OR0D;Q(e~ClImsvXa?E?HJtx{vJmwA5 z_bYM>hO2>^1LnhO5pX$>5hycbfOnrO_D>v_^KHShIVU?_3PPuk6!@jvKfMCH$antz z$Zz*uGSGY)N+%F~4{Tk~tB{x@pjmqFZVYpC=Ty%{X?&gRr7|XyK`}@FGUWP%pRjhx zf8UqieYf9{YD~SC)#a|8Q=4cu^I%^Q_6o?&Z)Y09f!xe^#Gl<@Vx;~qt#-L$O(WqT zsH@L*+Pb6QAuc%jg@U&cd03em3T8U(nF%yvE)2m90so@CzMxp|>K=piT%jjTJiMK% zE-j^VGVTBj!pElJkEls+U^QviL(bS^#R$(S(Rsw~Q;meL-Xsln0)rdBD{)S3o{o>E}w+39|x9~gRW=R;GgEXCN3V(78< zXb)}OI^FUT*PYoSY;Nw|5q$H8(jG6Tb&=4`e7&IC2ZO7EJh&JRleDE^_SF0PK%3gq ztil5x&rj3ZPrUg^R;p>i9;oqHzYIE;$Go}Xy_BVa$U}2pL09I4u-+w(uDsPhUzUF| zm*{_TsJs2i?)?3+{+%fKts6pE^pkqi#Hy~l4h(d$tg@ILf4ITbBI{}~%FTD|k%CGg zQ*+Mg(P3{e(dPCNI+o2(wD#-pMAK%61nuHBPQ%>SvzwM8o7cW!3I3#=hu(mm5S$^9 ztfoBXC9B%IOhJY=d=$y5%ohR&z&#-*?g#s}Wqn*@^x6Fgeng%ye+Kdz2z{SgHZJh^ z$?HQ%QTX2e?ID-vKRl^@4rS^3YdDkj8~Zl=Wzi}FVQ3j#3p%j(J=0a?pEEdSCg+FV z;{uiseXt!wK`dveRQsu$FoZm4yYMD~&&D=12xQT<-eiiUf^7l_RLt^VIRP!(oB6Hk z(A@aYQs3fNP^xXALtYSo;;p3cskhuYDZT9%@Ebt& z+c2H+;A=}GT8O#;ioltemrIy6fPca_UMTGYAV-@#x!3R~gFf1dAhZPhO#?N7XYP9~ z-gfARkX&YcQa4k0>8pA7ow`mpav%xT=R3#BZg7fNflU%I!)1r&el1C%u7x315j zUxIwIcJcpkt~7Jaxl$3q?;~nCmxBML&~P<4_&OxMZyYyW0>1q$%u%OoJ@45U_}v53 zdu!KA_BGJjPx(5wc0CoK0qLaQGPmqSulhb>kJa}PsVemQ&Bj4_Q|3E}NJ;vwGu&99 z2SLHISY7=sUAJxFZ(;3@vNLHjUc}AinV@~OpO?0Au@7{Gt=sotu%0{W=%xr{5-DIQDYUqU-@~#vg?uf4`%4oHY zAq36M5;77R`Q|vdBU-vN3Atu-Qs+I0(@}2cxU@S00*O1m5jl-xC&*{_cJkRhdW;QuQi8KP_tj56C?ov9Hny84q@3O= z3nf~5{QmNmYwW>eOLw|)pWwQt&da*;<*(r-5lb>sjGl5YoOLpd&M`+Fk=#D z6FKOO%UkW|^Gd**bgaL`T3@dd<%9)~Mn4G4pOMUtH%%T8P$84A!|2Y(@;tE0Ef2T? zQX}0oBxurV-7Bk!J=cNa{4yEx=U9q~xZ}aLL`sc}pyip1K5nu7tl*Bw*~+pzMH)W1 zhWkO+@W}~+{Yo%jL_venvbxm@jT^2yQU_DPt40n3UNv8;y@p;@X?nN24diy%uA|E*NzsfM_Jy5q-mm)Q`fdDJ|lx z#qii*bJJ=JZca+Pn_fPtZcdueSwsN-zyA4GA!n0OhJ5NV@9hHfz$C0U5pqmf@elGJI}sz&neaV{&vMk@6#U1?p@L zb&5`J_|M8Ggg}nOV-?wY^hViK4@2-s^}w1lJMgmYdG)5iLqQ$2DJdiKtR9e{@95OzQqYd4_Yj@k*Dy+G5;bP_5Ob2KBdPNJFew*DvU+CV$G(e!#nmQR*pGI+nRCnRG=DL z!_a;?dh6*#h1s=obx8CQW-C|g(Q8c(1@a?@0yJ3Do4d}xVD`_>b*4ND_qE|}L#6;( z1t@WQg_O93eM2SU3w%RWo9D%=q>kV18zQ-KwzzG<01fBeg?J6jbwiu})1npiuC7p> zw!Bo#zAc{TXh2=}y~bbO7%W6c{&(lgS5LsRbt*h-^2uKit^n~L2Y8hH8m?sx?N^aa zkN`v3uX>2B6}@>)*d>&|456t|2nXFaGJ zt(!)dw&@A95XtN}65l7D#Z!8nL)HT&cq57#t9!&bXp=6>XoXM~<4A+J8ju|7dYScf zv=WMJnX(PsCCkvy`;!`kCigSPG+(NW+PmS_(No8HUg--UUdJmgN(+4n8z>14cXC4G zSo0UWd z$Mg=OT1!mpOT~Z0|>C2%^#;QaRm2K+YitW7`&=J8ND{>~ca^!Ln zm_cKd8FZl_9+^Rb6#!+swi)S4v-(ZRVl=}ZoZ621`+-xNb$&7)BMx*Bq>boC^Q$a{ z#8nEfe#grRX~mw5Mv@8O&!!IaaU?i40td(V@PEPJ7^N5+{(_iTt(CujLcdFz$VX#+ z3=70|_5jq;MtK?_4DoE;i$)hd60K@59N}}YVgNeLatZr?<)%-_O+G4p9`504{&Qt> UGa@|1?l~HbaKm?(g3OovAIir@jQ{`u diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/Makefile deleted file mode 100644 index b52c325a..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_get_address_size.c -TS_DATA= dt32-g1 dt64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dt32-g1.xml.gz deleted file mode 100644 index 4317b6bdad4a7c26596df04fb6f0ebc2f4220304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmV-_0D%7=iwFq*^3qEH17vhFGA(B@E_iKh040pe3VU!T=+m|-M2h_nTTo|kz{6Y2p#a)x;9P9bOGPg|l%fsOUPgj!9dJA7R)n}cSH i!q@!*_{#lv(9Wn=DVqD1g0mi^piU1Kkv2bd0000$P&aG< diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dwarf_get_address_size.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dwarf_get_address_size.c deleted file mode 100644 index 3b4ea5cd..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_get_address_size/dwarf_get_address_size.c +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -static void tp_dwarf_get_address_size(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_get_address_size", tp_dwarf_get_address_size}, - {NULL, NULL}, -}; -#include "driver.c" - -static void -tp_dwarf_get_address_size(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Half addr_size; - int fd, result; - - dbg = NULL; - result = TET_UNRESOLVED; - - if (dwarf_get_address_size(NULL, &addr_size, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_get_adderss_size NULL 'dbg' test failed"); - result = TET_FAIL; - goto done; - } - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_get_address_size(dbg, NULL, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_get_adderss_size NULL 'addr_size' test " - "failed"); - result = TET_FAIL; - goto done; - } - - if (dwarf_get_address_size(dbg, &addr_size, &de) != DW_DLV_OK) { - tet_printf("dwarf_get_address_size failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - - TS_CHECK_UINT(addr_size); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/Makefile deleted file mode 100644 index db7c4832..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_init.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dt32-g1.xml.gz deleted file mode 100644 index 2ae60f2388ebaf8f135a92c3f19c47fa229adcbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmV-g0HyyQiwFo}@7YTL17vhFGA(B@E_iKh0JF(VR!GatNwrl^DKR$EO*d4x<5Ezt wDJf7$E6q!`RWB)sPbp66aAPaoOl+CfjiV0KM}zg+2fP055zbRR910 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dt64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dt64-g1.xml.gz deleted file mode 100644 index ee7365f486194e395bbf4db440ae8e0e6e87bccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmV-g0HyyQiwFo}@7YTL17vhIG%aT_E_iKh0JF(VR!GatNwrl^DKRtAO*d4x<5Ezt wDJf7$E6q!`RWB)sPbp66aAPaoOl+CfjiV0HbMQ={^7e04|FpLI3~& diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dwarf_init.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dwarf_init.c deleted file mode 100644 index f00c3b2f..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/dwarf_init.c +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -static void tp_dwarf_init(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_init", tp_dwarf_init}, - {NULL, NULL}, -}; -#include "driver.c" - -static void -tp_dwarf_init(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd, result; - - result = TET_UNRESOLVED; - - assert(_cur_file != NULL); - dbg = NULL; - if ((fd = open(_cur_file, O_RDONLY)) < 0) { - tet_printf("open %s failed: %s", _cur_file, strerror(errno)); - result = TET_FAIL; - goto done; - } - - if (dwarf_init(fd, DW_DLC_READ, NULL, NULL, &dbg, &de) != DW_DLV_OK) { - tet_printf("dwarf_init failed: %s", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - - if (dwarf_init(-1, DW_DLC_READ, NULL, NULL, &dbg, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_init didn't return DW_DLV_ERROR when" - " called with fd(-1)"); - result = TET_FAIL; - goto done; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_init/ec32-g1.xml.gz deleted file mode 100644 index 32a51f94b9808208ffb11d0e2562d918cc6a9f78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmV-g0HyyQiwFpt?%7KK17%|~GA(B@E_iKh0JF(VR!GatNwrl^O*S^tO*d4x<5Ezt wDJf7$E6q!`RWB)sPbp66aAPaoOl+CfjiV0CC6aAPaoOl+CfjiV0B=Nbjy?bY06}>p?f?J) diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/Makefile deleted file mode 100644 index 787901e2..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_lineno.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 dto64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dt32-g1.xml.gz deleted file mode 100644 index e71efb4cd21c2dbfeae4b6778fcd6b0e185b62cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1478 zcma))=~t2o7{zO5G}Cv)aYDr`%afIY3}TkHIJS_b)wlt^W0V@ip4!YA)`eeX4t?+oe_2RGre65M(RkerTfwKPi5npm(#Ng z0_fV-c8>Q?zDr?+pKRofj>;|%Ve8uZyb=}IE35URk zjVot|>%OX2#B(d{M9Icb8U~TP z<(-^DMo9(QVtaoG(MHRki@%CgVs8MR;WRtV<4$JJ=Y^14{|O~&H@OR1w3JWWRV3L` z2)x2meF7^_%4iis)s%~USV<*ER9$jF*h5F&qIva}cuRQ&1WZ>Po;xlILoSjCF|AiH z6mn8{TAR)F7hF8YJJ)_ItwHc4ozv>W?9U!!v@3qM)bqLVFj`T!+Vn z0jJjd??bt8yLM#`rVsZV(~W~;_{J0c<$paTH4v9z=-X zTz+AhWp~gq)}dISUu#IE(5b;6G9gY| z4bCft=tM2+#&hZo3-3L}bVIckxhB=ei@z%c4jARbA>9%mrpV?wx*MY7JdsF%0w(c% z_&48dx>`95>27_=yWp=(x7{>>Pk8KCdP z2Wql*^LPBT4^3fB#gb;;_o4`_k=ztc7#K0?6Xq%1WT7RvDfSVDYJFv)oQ8M+zlb7sUu4EFe zju@XqsJa;0i@!AfyYdezwM=LUR2n`pgCI1oT^f2VbyKbTm)|=Q$$l_f#+W&C3|fpH zFFjP(-y`8)PIZRA=}HV33Q(^8hCv) ze%RrwLWA3K*Y3`kc$(c%+>$2#0sy8<9@REYfaS0%GcW3$Lvy}>vIAoycpX mI3c#&WqthW#L_U2z0{E>n|$9>Q84jkhgD~m-V=lE+x`RJf%zc- diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dt64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dt64-g1.xml.gz deleted file mode 100644 index 7dbb07d1de50392b181fb5b1b14a3827575f5632..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1470 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 B>9zm> diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dwarf_lineno.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dwarf_lineno.c deleted file mode 100644 index 714e0aeb..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/dwarf_lineno.c +++ /dev/null @@ -1,278 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf line informatio API. - */ -static void tp_dwarf_lineno(void); -static void tp_dwarf_srcfiles(void); -static void tp_dwarf_lineno_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_lineno", tp_dwarf_lineno}, - {"tp_dwarf_srcfiles", tp_dwarf_srcfiles}, - {"tp_dwarf_lineno_sanity", tp_dwarf_lineno_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse.c" - -static void -_dwarf_lineno(Dwarf_Die die) -{ - Dwarf_Line *linebuf, ln; - Dwarf_Signed linecount, lineoff; - Dwarf_Unsigned lineno, srcfileno; - Dwarf_Addr lineaddr; - Dwarf_Half tag; - Dwarf_Error de; - Dwarf_Bool linebeginstatement, lineendsequence, lineblock; - char *linesrc; - int r_srclines; - int i; - - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - return; - } - - r_srclines = dwarf_srclines(die, &linebuf, &linecount, &de); - TS_CHECK_INT(r_srclines); - - if (r_srclines == DW_DLV_ERROR) { - tet_printf("dwarf_srclines should not fail but still failed:", - " %s", dwarf_errmsg(de)); - return; - } - - if (r_srclines != DW_DLV_OK) - return; - - for (i = 0; i < linecount; i++) { - - ln = linebuf[i]; - - if (dwarf_linebeginstatement(ln, &linebeginstatement, - &de) != DW_DLV_OK) { - tet_printf("dwarf_linebeginstatement failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(linebeginstatement); - - if (dwarf_linebeginstatement(ln, &linebeginstatement, - &de) != DW_DLV_OK) { - tet_printf("dwarf_linebeginstatement failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(linebeginstatement); - - if (dwarf_lineendsequence(ln, &lineendsequence, - &de) != DW_DLV_OK) { - tet_printf("dwarf_lineendsequence failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(lineendsequence); - - if (dwarf_lineno(ln, &lineno, &de) != DW_DLV_OK) { - tet_printf("dwarf_lineno failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(lineno); - - if (dwarf_line_srcfileno(ln, &srcfileno, &de) != DW_DLV_OK) { - tet_printf("dwarf_line_srcfileno failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(srcfileno); - - if (dwarf_lineaddr(ln, &lineaddr, &de) != DW_DLV_OK) { - tet_printf("dwarf_lineaddr failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_UINT(lineaddr); - - if (dwarf_lineoff(ln, &lineoff, &de) != DW_DLV_OK) { - tet_printf("dwarf_lineoff failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(lineoff); - - if (dwarf_linesrc(ln, &linesrc, &de) != DW_DLV_OK) { - tet_printf("dwarf_linesrc failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_STRING(linesrc); - - if (dwarf_lineblock(ln, &lineblock, &de) != DW_DLV_OK) { - tet_printf("dwarf_lineblock failed: %s", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(lineblock); - } -} - -static void -tp_dwarf_lineno(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_lineno); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -_dwarf_srcfiles(Dwarf_Die die) -{ - Dwarf_Half tag; - Dwarf_Error de; - Dwarf_Signed srccount; - char **srcfiles; - int r_srcfiles, i; - - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - return; - } - - r_srcfiles = dwarf_srcfiles(die, &srcfiles, &srccount, &de); - TS_CHECK_INT(r_srcfiles); - - if (r_srcfiles == DW_DLV_ERROR) { - tet_printf("dwarf_srcfiles should not fail but still failed:", - " %s", dwarf_errmsg(de)); - return; - } - - if (r_srcfiles != DW_DLV_OK) - return; - - if (dwarf_srcfiles(die, &srcfiles, &srccount, &de) != DW_DLV_OK) { - tet_printf("dwarf_srcfiles failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - return; - } - - TS_CHECK_INT(srccount); - for (i = 0; i < srccount; i++) { - if (srcfiles[i] == NULL) { - tet_printf("dwarf_srcfiles returned NULL pointer" - " srcfiles[%d]\n", i); - result = TET_FAIL; - } else - TS_CHECK_STRING(srcfiles[i]); - } -} - -static void -tp_dwarf_srcfiles(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_srcfiles); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_lineno_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Line *linebuf; - Dwarf_Signed linecount; - Dwarf_Signed srccount; - char **srcfiles; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_srclines(NULL, &linebuf, &linecount, &de) != - DW_DLV_ERROR) { - tet_infoline("dwarf_srclines didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - } - - if (dwarf_srcfiles(NULL, &srcfiles, &srccount, &de) != - DW_DLV_ERROR) { - tet_infoline("dwarf_srcfiles didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/ec32-g1.xml.gz deleted file mode 100644 index a8ed45fce4923ae153bd44f9d8f355f26adcbcd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17688 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 NePHvohmPr={{ztvQlkI> diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_lineno/ec64-g1.xml.gz deleted file mode 100644 index 94a982238812733d7aa4f6e390f837793c8ac7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17539 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 AeE -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for DWARF loclist query functions. - */ -static void tp_dwarf_loclist(void); -static void tp_dwarf_loclist_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_loclist", tp_dwarf_loclist}, - {"tp_dwarf_loclist_sanity", tp_dwarf_loclist_sanity}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" -#include "die_traverse.c" - -static void -_dwarf_loclist(Dwarf_Die die) -{ - Dwarf_Attribute *attrlist, at; - Dwarf_Signed attrcount; - Dwarf_Half attr; - Dwarf_Locdesc **llbuf, *llbuf0; - Dwarf_Loc *loc; - Dwarf_Signed listlen; - Dwarf_Error de; - const char *atname; - int r, i, j, k; - int r_loclist, r_loclist_n; - - r = dwarf_attrlist(die, &attrlist, &attrcount, &de); - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_attrlist failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - return; - } else if (r == DW_DLV_NO_ENTRY) - return; - - for (i = 0; i < attrcount; i++) { - at = attrlist[i]; - if (dwarf_whatattr(at, &attr, &de) != DW_DLV_OK) { - tet_printf("dwarf_whatattr failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - continue; - } - TS_CHECK_UINT(attr); - switch (attr) { - case DW_AT_location: - case DW_AT_string_length: - case DW_AT_return_addr: - case DW_AT_data_member_location: - case DW_AT_frame_base: - case DW_AT_segment: - case DW_AT_static_link: - case DW_AT_use_location: - case DW_AT_vtable_elem_location: - break; - default: - continue; - } - - atname = NULL; - if (dwarf_get_AT_name(attr, &atname) != DW_DLV_OK) { - tet_printf("dwarf_get_AT_name failed\n"); - result = TET_FAIL; - } - tet_printf("process attribute %s\n", atname); - - r_loclist_n = dwarf_loclist_n(at, &llbuf, &listlen, &de); - TS_CHECK_INT(r_loclist_n); - if (r_loclist_n == DW_DLV_OK){ -#ifndef TCGEN - /* - * XXX SGI libdwarf do not return the End-List-Indicator - * to the application (when loclist is in .debug_loc .i.e, - * listen > 1), while our libdwarf does. Workaround this - * by decreasing listlen by 1 when TCGEN is not defined, - * so this test case can work. - */ - if (listlen > 1) - listlen--; -#endif - TS_CHECK_INT(listlen); - for (j = 0; j < listlen; j++) { - tet_printf("process loclist[%d]\n", j); - TS_CHECK_UINT(llbuf[j]->ld_lopc); - TS_CHECK_UINT(llbuf[j]->ld_hipc); - TS_CHECK_UINT(llbuf[j]->ld_cents); - for (k = 0; k < llbuf[j]->ld_cents; k++) { - tet_printf("process ld_s[%d]\n", k); - loc = &llbuf[j]->ld_s[k]; - TS_CHECK_UINT(loc->lr_atom); - TS_CHECK_UINT(loc->lr_number); - TS_CHECK_UINT(loc->lr_number2); -#ifndef TCGEN - /* - * XXX SGI libdwarf defined that - * lr_offset is lr_atom's offset + 1. - */ - loc->lr_offset++; -#endif - TS_CHECK_UINT(loc->lr_offset); -#ifndef TCGEN - loc->lr_offset--; -#endif - } - } - } - - r_loclist = dwarf_loclist(at, &llbuf0, &listlen, &de); - TS_CHECK_INT(r_loclist); - if (r_loclist == DW_DLV_OK) { - if (listlen != 1) { - tet_printf("listlen(%d) returned by" - " dwarf_loclist must be 1", listlen); - result = TET_FAIL; - } - tet_printf("process the only loclist\n"); - TS_CHECK_UINT(llbuf0->ld_lopc); - TS_CHECK_UINT(llbuf0->ld_hipc); - TS_CHECK_UINT(llbuf0->ld_cents); - for (k = 0; k < llbuf0->ld_cents; k++) { - tet_printf("process ld_s[%d]\n", k); - loc = &llbuf0->ld_s[k]; - TS_CHECK_UINT(loc->lr_atom); - TS_CHECK_UINT(loc->lr_number); - TS_CHECK_UINT(loc->lr_number2); -#ifndef TCGEN - /* - * XXX SGI libdwarf defined that - * lr_offset is lr_atom's offset + 1. - */ - loc->lr_offset++; -#endif - TS_CHECK_UINT(loc->lr_offset); -#ifndef TCGEN - loc->lr_offset--; -#endif - } - } - } -} - -static void -tp_dwarf_loclist(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - TS_DWARF_DIE_TRAVERSE(dbg, _dwarf_loclist); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_loclist_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Locdesc **llbuf, *llbuf0; - Dwarf_Signed listlen; - int fd; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_loclist_n(NULL, &llbuf, &listlen, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_loclist_n didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (dwarf_loclist(NULL, &llbuf0, &listlen, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_loclist didn't return DW_DLV_ERROR" - " when called with NULL arguments"); - result = TET_FAIL; - goto done; - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/ec32-g1.xml.gz deleted file mode 100644 index 2849eb8b0bfe11c379758a8a67528b9693a6320c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30295 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 LtTgMG?63a=+7$T7 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_loclist/ec64-g1.xml.gz deleted file mode 100644 index b6ff7dbb5d8e1ec0001f1abe59e6c2d6f7d25cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32586 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/Makefile deleted file mode 100644 index 1eb0d3fd..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_macinfo.c -TS_DATA= dt64-g1 dt64-g3 ec64-g3 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dt64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dt64-g1.xml.gz deleted file mode 100644 index 3e1a4673683d6eee28105b72513a5b66373c218d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 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

CoP1z6z}MoAh+ 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 S-DN#qN(%ppr%Ny=L-{|62uqy+ diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dwarf_macinfo.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dwarf_macinfo.c deleted file mode 100644 index ba737f79..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/dwarf_macinfo.c +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf macro information API. - */ -static void tp_dwarf_macinfo(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_macinfo", tp_dwarf_macinfo}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" - -static void -_check_details(Dwarf_Macro_Details *details, Dwarf_Signed entry_count) -{ - char *macro_value; - int i; - - for (i = 0; i < entry_count; i++) { - tet_printf("check macro details entry %d:\n", i); - TS_CHECK_INT(details[i].dmd_offset); - TS_CHECK_UINT(details[i].dmd_type); - TS_CHECK_INT(details[i].dmd_lineno); - TS_CHECK_INT(details[i].dmd_fileindex); - if (details[i].dmd_macro != NULL) { - TS_CHECK_STRING(details[i].dmd_macro); - macro_value = dwarf_find_macro_value_start(details[i].dmd_macro); - if (macro_value != NULL) - TS_CHECK_STRING(macro_value); - } - } -} - -static void -_get_macinfo(Dwarf_Debug dbg, Dwarf_Off macro_offset, Dwarf_Unsigned max_count) -{ - Dwarf_Macro_Details *details; - Dwarf_Signed entry_count; - Dwarf_Error de; - int r_details; - - r_details = dwarf_get_macro_details(dbg, macro_offset, max_count, - &entry_count, &details, &de); - TS_CHECK_INT(r_details); - if (r_details != DW_DLV_OK) { - if (r_details == DW_DLV_ERROR) { - tet_printf("dwarf_get_macro_details failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - return; - } - TS_CHECK_UINT(entry_count); - _check_details(details, entry_count); -} - -static void -_get_all_macinfo(Dwarf_Debug dbg) -{ - Dwarf_Macro_Details *details; - Dwarf_Signed entry_count; - Dwarf_Off off; - Dwarf_Error de; - int r_details; - - off = 0; - while ((r_details = dwarf_get_macro_details(dbg, off, 0, &entry_count, - &details, &de)) == DW_DLV_OK) { - TS_CHECK_UINT(entry_count); - _check_details(details, entry_count); - off = details[entry_count - 1].dmd_offset + 1; - } - TS_CHECK_INT(r_details); -} - -static void -tp_dwarf_macinfo(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int fd; - - TS_DWARF_INIT(dbg, fd, de); - - /* Get all Dwarf_Macro_Details entries in the first CU. */ - _get_macinfo(dbg, 0, 0); - - /* Get first 100 entries. */ - _get_macinfo(dbg, 0, 100); - - /* Get all entries in all CUs. */ - _get_all_macinfo(dbg); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/ec64-g3.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_macinfo/ec64-g3.xml.gz deleted file mode 100644 index a174e75b7ad03089574102463acd8893092d7a0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263347 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"fOF?IG4uc7n&4jYxUg6~&6iO+uApw8J)p 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 z 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

K17EpSnJN}` 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 CPjZ3) diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/dwarf_next_cu_header.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/dwarf_next_cu_header.c deleted file mode 100644 index 75e49871..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/dwarf_next_cu_header.c +++ /dev/null @@ -1,209 +0,0 @@ -/*- - * Copyright (c) 2010,2014 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -static void tp_dwarf_next_cu_header(void); -static void tp_dwarf_next_cu_header_b(void); -static void tp_dwarf_next_cu_header_c(void); -static void tp_dwarf_next_cu_header_loop(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_next_cu_header", tp_dwarf_next_cu_header}, - {"tp_dwarf_next_cu_header_b", tp_dwarf_next_cu_header_b}, - {"tp_dwarf_next_cu_header_c", tp_dwarf_next_cu_header_c}, - {"tp_dwarf_next_cu_header_loop", tp_dwarf_next_cu_header_loop}, - {NULL, NULL}, -}; -#include "driver.c" - -static void -tp_dwarf_next_cu_header(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Unsigned cu_header_length; - Dwarf_Half cu_version; - Dwarf_Off cu_abbrev_offset; - Dwarf_Half cu_pointer_size; - Dwarf_Unsigned cu_next_offset; - int fd, result; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - while (dwarf_next_cu_header(dbg, &cu_header_length, &cu_version, - &cu_abbrev_offset, &cu_pointer_size, &cu_next_offset, &de) == - DW_DLV_OK) { - TS_CHECK_UINT(cu_header_length); - TS_CHECK_UINT(cu_version); - TS_CHECK_INT(cu_abbrev_offset); - TS_CHECK_UINT(cu_pointer_size); - TS_CHECK_UINT(cu_next_offset); - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_next_cu_header_b(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Unsigned cu_header_length; - Dwarf_Half cu_version; - Dwarf_Off cu_abbrev_offset; - Dwarf_Half cu_pointer_size; - Dwarf_Half cu_offset_size; - Dwarf_Half cu_extension_size; - Dwarf_Unsigned cu_next_offset; - int fd, result; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - while (dwarf_next_cu_header_b(dbg, &cu_header_length, &cu_version, - &cu_abbrev_offset, &cu_pointer_size, &cu_offset_size, - &cu_extension_size, &cu_next_offset, &de) == DW_DLV_OK) { - TS_CHECK_UINT(cu_header_length); - TS_CHECK_UINT(cu_version); - TS_CHECK_INT(cu_abbrev_offset); - TS_CHECK_UINT(cu_pointer_size); - TS_CHECK_UINT(cu_offset_size); - TS_CHECK_UINT(cu_extension_size); - TS_CHECK_UINT(cu_next_offset); - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_next_cu_header_c(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Unsigned cu_header_length; - Dwarf_Half cu_version; - Dwarf_Off cu_abbrev_offset; - Dwarf_Half cu_pointer_size; - Dwarf_Half cu_offset_size; - Dwarf_Half cu_extension_size; - Dwarf_Sig8 cu_type_sig; - Dwarf_Unsigned cu_type_offset; - Dwarf_Unsigned cu_next_offset; - int fd, result; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - while (dwarf_next_cu_header_c(dbg, 1, &cu_header_length, &cu_version, - &cu_abbrev_offset, &cu_pointer_size, &cu_offset_size, - &cu_extension_size, NULL, NULL, &cu_next_offset, &de) == - DW_DLV_OK) { - TS_CHECK_UINT(cu_header_length); - TS_CHECK_UINT(cu_version); - TS_CHECK_INT(cu_abbrev_offset); - TS_CHECK_UINT(cu_pointer_size); - TS_CHECK_UINT(cu_offset_size); - TS_CHECK_UINT(cu_extension_size); - TS_CHECK_UINT(cu_next_offset); - } - - do { - while (dwarf_next_cu_header_c(dbg, 0, &cu_header_length, - &cu_version, &cu_abbrev_offset, &cu_pointer_size, - &cu_offset_size, &cu_extension_size, &cu_type_sig, - &cu_type_offset, &cu_next_offset, &de) == DW_DLV_OK) { - TS_CHECK_UINT(cu_header_length); - TS_CHECK_UINT(cu_version); - TS_CHECK_INT(cu_abbrev_offset); - TS_CHECK_UINT(cu_pointer_size); - TS_CHECK_UINT(cu_offset_size); - TS_CHECK_UINT(cu_extension_size); - TS_CHECK_BLOCK(cu_type_sig.signature, 8); - TS_CHECK_UINT(cu_type_offset); - TS_CHECK_UINT(cu_next_offset); - } - } while (dwarf_next_types_section(dbg, &de) == DW_DLV_OK); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -#define _LOOP_COUNT 50 - -static void -tp_dwarf_next_cu_header_loop(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - int i, r, fd, result; - Dwarf_Unsigned cu_next_offset; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - for (i = 0; i < _LOOP_COUNT; i++) { - tet_printf("dwarf_next_cu_header loop(%d)\n", i); - r = dwarf_next_cu_header(dbg, NULL, NULL, NULL, NULL, - &cu_next_offset, &de); - TS_CHECK_INT(r); - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ec32-g1.xml.gz deleted file mode 100644 index c613d8ec741ee644cbf5148c5ad00731e5efd9d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL`0iwFor1*TH~17%|~GA(B@E_iKh0PU6EZi65c#_#tO-g(t1AX*dcs}QBw zk{Bh3?$6WD*>sDWcI~2*S}qOegYS31^F^Fm8P8d4Gm7Bm0PNk9WkpI@SzXZBR)XxG z6Pb~My(mI!a%9P#$*!ucYpB&EGPXY#NY09bI@*?c744=qFO5o202^4Jos%V(P5u1n#gvl)WQV;=})dWW>{>&f6thyZVv7WOG-a8jCh}?ZLEYbN`lo z)MTH@zPo9y$v%^PciLQ&ecEMTUY6o}{K;SANY9GR&`+qRRRg1|RRg1|RRg1|)&GV$ S#ara?_Uj#`3r$7*82|u-9lN0b diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ec64-g1.xml.gz deleted file mode 100644 index 180062815342f94b94f2f6bf80331c6237fcf58e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmV-=0fqh_iwFor1*TH~17%}2G%aT_E_iKh0PU4sk3=vSh41%QxN|k3Rjh>hD-E5R zX(BX~{rL6UHL;1^)_#O#OfSWI>O2SUi5anSR?x(zBtVBVu#XRx6$@_VZAlVaaC~}7 z>l~N#SzyxQ3r$b7?x*BjN31Tb6Z_)^E@*ic7uymqTprr8QrJfydSUEz`L?xNIz&eMF{ z07SmV*93S3BaO3pz=0QNH1m-|0FmbHO^|yqLQ9fE4|^@?;&vf6-L~FXwbl;7JYr1c9-B(l<|6G6dw{^75iGymxZPTiO*{W3ovsJ4G YW~)~J8|GSXvBTum8@gHAF#H(+0OQ`gVE_OC diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ld_symver.o-64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_next_cu_header/ld_symver.o-64-g1.xml.gz deleted file mode 100644 index adf56ab1f756eae0f05b623e29657bae289171bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1970 zcmV;j2Tk}NiwFor1*TH~18ihpb9rrcWpXZWEjBbQXE82#ZEOJTok?$_NEFBK^C@!6 zA?jh@q+}%T#xXWtiG8uy;|(xiF#h!8No!iu?vN>v3wcKG(2822%9vl?Qm_8?cwU_mF2I4v?PF%J_di zrSDUJa(&JnT^@?<{dNDJ49U5t8-p+b1Wpjh50(?)v3?Bs>ypdW?(dg>o*o~=AH$5D zZ*DK+LQ0%TyuNIXUcQ*(GcvSP5G9}U$NmLKA?GsySWCvWrkZ5v6G}|aIW}BYP~E>4!U||(tC8Sl$7(ufaEnvLR$0dT~~3NE`FPo za=sYY!_?$IV8;XwtdOkH8FwO^@pdzT51$OB0;;b^^2OfF&YgUmCpube9fnJXg6 z8DUteWVlkg!0%kS;+bpi7(n?;T_96Kcdtd9j6Zdy_?*oth?BP{)y1klJ8_11xJxOP z1RIlxAmxT5B!@>UcHV<_`&Wz#gPCK5#*w7G6ZeRdJFso9uX`OA4n>ukM^5ShEMpnn9Eos zlw1)(#*Lxr%grX4;Llt0_KRT`VaqiQ99=Mtz8X zhgmGH6@VCt3X+_z_crAn-=FSMbxuh@5|N}c6jiFNc&8Ko(m9>idjX>44M-lF2R(8u z`z+#DotKD`01_2smiV26v|;x#{xV$&kTmoaKqa~KPyIUWcGxX`k~H)cz(}&+mE@ph z#+h-S2@emd4@8pTi0G+W5^nSg`U>#HWgieHQAti?wq6_UmM(+eCd-H;!Mh@-u35{A z)l9PZ3Y6z%G<84{ktCsz>&Esxl4AU)LCVBQ=>CUFQk=~lvNLl;9>08tD$#Hd;v_0b z)!v&eQ(3$K(DtE%GXx}@nZ!rZ>ZtE>WDJ@q{xwJ$xiTcKh#<{CO`kZGl|=keQYuk%Wx%hLRZsEU0GOCBBJa@eEn4zjHVTwfEBnhYf7+6M3j8G>87JbEVKBRB2r#1 z`jrM9-YbDfva@kT?rl9^&MP>lRs6LQtN^Vd5J?WqbbGS4UAvFJITkAxZxsRAD=Nux zG*FKAm>f39X}w;j*Kg5DoARi<+`s6Y@=9z8a&rCA!atLU6vLIsl7jR{a*qnw-> zja+Yxs8K=Ny1ce5U!nvFGa^ckk78Qi*>kai;~`>k4Ku__WR&ODktH0g0P9LblnOa-YO)c`>-cv? z=)A)Cm*;(eB;u|J)9H+!bSW+)tpm1!Y_NJ%e=J^wkZ)wzV>HFf2NK0Jbtkx|Klc~i8%Q983zx}(KBBj<6vc_ zdgy!~{SUgnA3R=tM)k*8!EROt(M31FRS2b} zA)%DO(8k+~8jU~g*5%}Vd2hHg#5z9+=<$3yj0|K$2**fl2}S@$)vr2P6-yWNG~|0; z#bU^!lYpc~KX=+^Ab5$j#{~p=HeO1tmH_|&3{OxF diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/dwarf_pubnames.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/dwarf_pubnames.c deleted file mode 100644 index 84c521c8..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/dwarf_pubnames.c +++ /dev/null @@ -1,114 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf address range API. - */ -static void tp_dwarf_pubnames(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_pubnames", tp_dwarf_pubnames}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" - -static void -tp_dwarf_pubnames(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Global *globals; - Dwarf_Signed global_cnt; - Dwarf_Off die_off, cu_off; - char *glob_name; - int fd, r_globals, i; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - r_globals = dwarf_get_globals(dbg, &globals, &global_cnt, &de); - TS_CHECK_INT(r_globals); - if (r_globals == DW_DLV_ERROR) { - tet_printf("dwarf_get_globals failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - TS_CHECK_INT(global_cnt); - if (r_globals == DW_DLV_OK) { - for (i = 0; i < global_cnt; i++) { - if (dwarf_globname(globals[i], &glob_name, &de) != - DW_DLV_OK) { - tet_printf("dwarf_globname failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_STRING(glob_name); - if (dwarf_global_die_offset(globals[i], &die_off, - &de) != DW_DLV_OK) { - tet_printf("dwarf_global_die_offset failed: " - "%s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(die_off); - if (dwarf_global_cu_offset(globals[i], &cu_off, - &de) != DW_DLV_OK) { - tet_printf("dwarf_global_cu_offset failed: " - "%s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_INT(cu_off); - if (dwarf_global_name_offsets(globals[i], &glob_name, - &die_off, &cu_off, &de) != DW_DLV_OK) { - tet_printf("dwarf_global_name_offsets failed: ", - "%s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } - TS_CHECK_STRING(glob_name); - TS_CHECK_INT(die_off); - TS_CHECK_INT(cu_off); - } - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_pubnames/ec64-g1.xml.gz deleted file mode 100644 index 4549439f6e0a439f10a9a0e08bc834efb55fde97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;ByOiwFowsw7MR17%}2G%aT_E_iKh0L_@&Zlf>|hVT0n+;LR}8*`G9yo%)* zlcEJ|VJ9ozexYsDJT)v&os#DskL_-AZq-|DDoJ9CJQ&c*YY#mA>8+6Nakmq8!m z;AH(%jg54d)1Z3eU$4&yvBch!GYzST)RU;n+7 zr=Qfy<@;`>K8*2EX<3_KbdYLX`B2>&X`AMcyQgI(R!a5dpUTgWH^yKL!=Xo`f`N00 zLagcjt`0g3gpPNJV0yPC8i>M@H0LmujEje&$<`|G(wMFRgJelbr-cXvVWd~>07YQw z>M#7R3n~PJ1y$G5&y%dRV3NEnfX{=m>VZ&l_&VcFkp5+U8Po~NQY2|Xp@p0U;pO7$ zrFs2J4IT8X;3;sP;j~brAgpNXCOOk6Fo;MC#X@au}(3cF2rn9f}4~&!*IjtjFB+N8^JCJw{eqL2lkn|TZ33i3jb_iyG_Bl_o zl;l`I&Vul=98rRm%Mx*xUF*R>f|bA)=ZuTBHTHi3Wot6;JS_*`QgD$nU|ZwN(1IY0 z%;&dx(L|950qkm=5@HgBliN;W>a9b?wiFexvAM`Z_FzESTEOl$_7{Ni1o%fY&d@eM q2t&8ka_Zq5bzTVp9eXG{^e`W0_PgMYPy1avzxxH`<_+||82|u*yC_cp diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/Makefile deleted file mode 100644 index 15377bd7..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_ranges.c -TS_DATA= dt32-g1 ec64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/dt32-g1.xml.gz deleted file mode 100644 index 12d4edf6307633d849959bd8fa0e0e4dcc057401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV%jM6 z%XN48-;t3S`RlDc8Tj%s(x>l!^!a}G@N@IpEZ>LAaC}Z#Z8i;^-pIKunr2U@B_Ff^ zMhhWy(f7|Q1ThG1#X>Y{5WVdW7zfd-1)8$A2t>*OSVh^bzCe^cmlaIdb6Zx)c&VGwQb5JVgMAFU8XQ)7-{ z1*=~MVs;Rr$#_5(FWS?%b^4~Htz~H8uZsgiY>QBBAeE(BAbo{MPz#*O~K0u~HKB!wPXgQuO0EAmPq+ZLk6Un}llYSSBU4bD1_0boLh8U>L-Zp&q`C pM$M{Fng*v -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -/* - * Test case for dwarf address range API. - */ -static void tp_dwarf_ranges(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_ranges", tp_dwarf_ranges}, - {NULL, NULL}, -}; -static int result = TET_UNRESOLVED; -#include "driver.c" - -static void -tp_dwarf_ranges(void) -{ - Dwarf_Debug dbg; - Dwarf_Ranges *ranges; - Dwarf_Signed range_cnt; - Dwarf_Unsigned byte_cnt; - Dwarf_Off off; - Dwarf_Error de; - int fd, r_ranges, i; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - off = 0; - for (;;) { - tet_printf("check ranges at offset(%ju):\n", (uintmax_t) off); - r_ranges = dwarf_get_ranges_a(dbg, off, NULL, &ranges, - &range_cnt, &byte_cnt, &de); - if (r_ranges != DW_DLV_OK) - break; - TS_CHECK_INT(range_cnt); - TS_CHECK_UINT(byte_cnt); - off += byte_cnt; - for (i = 0; i < range_cnt; i++) { - tet_printf("check range %d:\n", i); - TS_CHECK_INT(ranges[i].dwr_type); - TS_CHECK_UINT(ranges[i].dwr_addr1); - TS_CHECK_UINT(ranges[i].dwr_addr2); - } - } - - /* - * SGI libdwarf return DW_DLV_ERROR when provided offset is out of - * range, instead of DW_DLV_NO_ENTRY as stated in the SGI libdwarf - * documentation. elftoolchain libdwarf follows the SGI libdwarf - * documentation. - */ -#if 0 - if (r_ranges == DW_DLV_ERROR) { - tet_printf("dwarf_get_ranges failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - } -#endif - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/ec64-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_ranges/ec64-g1.xml.gz deleted file mode 100644 index acb5532cdfd5d6374b74e39ecb2a0077e528e6cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4492 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 diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/Makefile b/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/Makefile deleted file mode 100644 index c4f1ce76..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= dwarf_siblingof.c -TS_DATA= dt32-g1 dt64-g1 ec32-g1 ec64-g1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dt32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dt32-g1.xml.gz deleted file mode 100644 index adec08c4e32e22821fc36d80b1bf7095b5e49077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmV;40CxW$iwFosQ`1WT17vhFGA(B@E_iKh0ELV(4ul{O0DE7t-BuT(w&+&~E?_nx z9ML_Dzjt#MmUdIjjAeqvIZha496oE0a|d9hLi!b&P^t@u-;&#T$z0ZNayhn`Z%@re r(EO%3M@K~v;v6RoG7g`$$GHQrQX%~cO(@lc!*9v$yksuxH@O^J%(tgz sBWQlpoTH;62y#}vvEtlY)9C**QeVHjFDxfMzBR1%1^GUxrlJ4<0GE$C{Qv*} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dwarf_siblingof.c b/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dwarf_siblingof.c deleted file mode 100644 index 10d07391..00000000 --- a/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/dwarf_siblingof.c +++ /dev/null @@ -1,160 +0,0 @@ -/*- - * Copyright (c) 2010 Kai Wang - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "driver.h" -#include "tet_api.h" - -static void tp_dwarf_siblingof_level1(void); -static void tp_dwarf_siblingof_sanity(void); -static struct dwarf_tp dwarf_tp_array[] = { - {"tp_dwarf_siblingof_level1", tp_dwarf_siblingof_level1}, - {"tp_dwarf_siblingof_sanity", tp_dwarf_siblingof_sanity}, - {NULL, NULL}, -}; -#include "driver.c" - -static void -tp_dwarf_siblingof_level1(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Die die, die0; - Dwarf_Unsigned cu_next_offset; - int r, fd, result, die_cnt; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - tet_infoline("count the number of level 1 DIEs"); - - die_cnt = 0; - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - r = dwarf_siblingof(dbg, NULL, &die, &de); - while (r == DW_DLV_OK) { - if (die == NULL) { - tet_infoline("dwarf_siblingof return DW_DLV_OK" - " while argument die is not filled in"); - result = TET_FAIL; - goto done; - } - die_cnt++; - die0 = die; - r = dwarf_siblingof(dbg, die0, &die, &de); - } - if (r == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - } - - TS_CHECK_INT(die_cnt); - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} - -static void -tp_dwarf_siblingof_sanity(void) -{ - Dwarf_Debug dbg; - Dwarf_Error de; - Dwarf_Die die, die0; - Dwarf_Half tag, tag0; - Dwarf_Unsigned cu_next_offset; - int fd, result; - - result = TET_UNRESOLVED; - - TS_DWARF_INIT(dbg, fd, de); - - if (dwarf_siblingof(dbg, NULL, &die, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_siblingof didn't return DW_DLV_ERROR when" - " called without CU context"); - result = TET_FAIL; - goto done; - } - - die = die0 = NULL; - TS_DWARF_CU_FOREACH(dbg, cu_next_offset, de) { - if (dwarf_siblingof(dbg, NULL, &die, &de) == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (dwarf_tag(die, &tag, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (dwarf_siblingof(dbg, NULL, &die0, &de) == DW_DLV_ERROR) { - tet_printf("dwarf_siblingof failed: %s\n", - dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (dwarf_tag(die0, &tag0, &de) != DW_DLV_OK) { - tet_printf("dwarf_tag failed: %s\n", dwarf_errmsg(de)); - result = TET_FAIL; - goto done; - } - if (tag != tag0) { - tet_infoline("DIEs returned by two identical " - "dwarf_siblingof calls have different tags"); - result = TET_FAIL; - goto done; - } - if (dwarf_siblingof(NULL, die0, &die, &de) != DW_DLV_ERROR) { - tet_infoline("dwarf_siblingof didn't return " - "DW_DLV_ERROR when called with NULL dbg"); - result = TET_FAIL; - goto done; - } - } - - if (result == TET_UNRESOLVED) - result = TET_PASS; - -done: - TS_DWARF_FINISH(dbg, de); - TS_RESULT(result); -} diff --git a/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/ec32-g1.xml.gz b/contrib/elftoolchain/test/libdwarf/ts/dwarf_siblingof/ec32-g1.xml.gz deleted file mode 100644 index 7dc98d9a7e3d8a98ee13a9edc6d270aa9b02ce3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmV;70CWEziwFp~-Pub317%|~GA(B@E_iKh0ENsk4udcZh2g!Y@aCzCDC(AQl_(eo zS&BjgCWzY;!O*eW8@~5jA&8RLAyfZ(&m9gg0ILP!p2?vWKOJF>ev>gto|otoS5A*> uvJ%v=I-G<(Wkt}lw3@Uze66W;_l%am-7RF%6Mxb7t3<&# z$Wjy{FhSg&2!@W`-tfKO3PF^_4w=56_uS#|0 - -#include "tet_api.h" - -include(`elfts.m4') - -undefine(`FN') -define(`FN',` -void -tcCheck$1(void) -{ - int result; - const size_t nconst = sizeof($2) / sizeof ($2[0]); - size_t n; - - TP_ANNOUNCE("Check " $3 " values"); - - result = TET_FAIL; - - for (n = 0; n < nconst; n++) - if ($2[n].symbol != $2[n].value) - goto done; - - result = TET_PASS; - -done: - tet_result(result); -} -') - -struct _sym { - size_t symbol; - size_t value; -}; - -/* - * Check ELFOSABI_* values. - */ -struct _sym elf_osabi[] = { - { ELFOSABI_NONE, 0}, - { ELFOSABI_SYSV, 0}, - { ELFOSABI_HPUX, 1}, - { ELFOSABI_NETBSD, 2}, - { ELFOSABI_GNU, 3}, - { ELFOSABI_HURD, 4}, - { ELFOSABI_86OPEN, 5}, - { ELFOSABI_SOLARIS, 6}, - { ELFOSABI_AIX, 7}, - { ELFOSABI_IRIX, 8}, - { ELFOSABI_FREEBSD, 9}, - { ELFOSABI_TRU64, 10}, - { ELFOSABI_MODESTO, 11}, - { ELFOSABI_OPENBSD, 12}, - { ELFOSABI_OPENVMS, 13}, - { ELFOSABI_NSK, 14}, - { ELFOSABI_AROS, 15}, - { ELFOSABI_FENIXOS, 16} -}; - -FN(OsAbi, elf_osabi, "ELF_OSABI") - -/* - * Check EM_* values. - */ -struct _sym elf_em[] = { - { EM_NONE, 0 }, - { EM_M32, 1 }, - { EM_SPARC, 2 }, - { EM_386, 3 }, - { EM_68K, 4 }, - { EM_88K, 5 }, - { EM_860, 7 }, - { EM_MIPS, 8 }, - { EM_S370, 9 }, - { EM_MIPS_RS3_LE, 10 }, - { EM_PARISC, 15 }, - { EM_VPP500, 17 }, - { EM_SPARC32PLUS, 18 }, - { EM_960, 19 }, - { EM_PPC, 20 }, - { EM_PPC64, 21 }, - { EM_S390, 22 }, - { EM_SPU, 23 }, - { EM_V800, 36 }, - { EM_FR20, 37 }, - { EM_RH32, 38 }, - { EM_RCE, 39 }, - { EM_ARM, 40 }, - { EM_ALPHA, 41 }, - { EM_SH, 42 }, - { EM_SPARCV9, 43 }, - { EM_TRICORE, 44 }, - { EM_ARC, 45 }, - { EM_H8_300, 46 }, - { EM_H8_300H, 47 }, - { EM_H8S, 48 }, - { EM_H8_500, 49 }, - { EM_IA_64, 50 }, - { EM_MIPS_X, 51 }, - { EM_COLDFIRE, 52 }, - { EM_68HC12, 53 }, - { EM_MMA, 54 }, - { EM_PCP, 55 }, - { EM_NCPU, 56 }, - { EM_NDR1, 57 }, - { EM_STARCORE, 58 }, - { EM_ME16, 59 }, - { EM_ST100, 60 }, - { EM_TINYJ, 61 }, - { EM_X86_64, 62 }, - { EM_PDSP, 63 }, - { EM_PDP10, 64 }, - { EM_PDP11, 65 }, - { EM_FX66, 66 }, - { EM_ST9PLUS, 67 }, - { EM_ST7, 68 }, - { EM_68HC16, 69 }, - { EM_68HC11, 70 }, - { EM_68HC08, 71 }, - { EM_68HC05, 72 }, - { EM_SVX, 73 }, - { EM_ST19, 74 }, - { EM_VAX, 75 }, - { EM_CRIS, 76 }, - { EM_JAVELIN, 77 }, - { EM_FIREPATH, 78 }, - { EM_ZSP, 79 }, - { EM_MMIX, 80 }, - { EM_HUANY, 81 }, - { EM_PRISM, 82 }, - { EM_AVR, 83 }, - { EM_FR30, 84 }, - { EM_D10V, 85 }, - { EM_D30V, 86 }, - { EM_V850, 87 }, - { EM_M32R, 88 }, - { EM_MN10300, 89 }, - { EM_MN10200, 90 }, - { EM_PJ, 91 }, - { EM_OPENRISC, 92 }, - { EM_ARC_COMPACT, 93 }, - { EM_XTENSA, 94 }, - { EM_VIDEOCORE, 95 }, - { EM_TMM_GPP, 96 }, - { EM_NS32K, 97 }, - { EM_TPC, 98 }, - { EM_SNP1K, 99 }, - { EM_ST200, 100 }, - { EM_IP2K, 101 }, - { EM_MAX, 102 }, - { EM_CR, 103 }, - { EM_F2MC16, 104 }, - { EM_MSP430, 105 }, - { EM_BLACKFIN, 106 }, - { EM_SE_C33, 107 }, - { EM_SEP, 108 }, - { EM_ARCA, 109 }, - { EM_UNICORE, 110 }, - { EM_EXCESS, 111 }, - { EM_DXP, 112 }, - { EM_ALTERA_NIOS2, 113 }, - { EM_CRX, 114 }, - { EM_XGATE, 115 }, - { EM_C166, 116 }, - { EM_M16C, 117 }, - { EM_DSPIC30F, 118 }, - { EM_CE, 119 }, - { EM_M32C, 120 }, - { EM_TSK3000, 131 }, - { EM_RS08, 132 }, - { EM_SHARC, 133 }, - { EM_ECOG2, 134 }, - { EM_SCORE7, 135 }, - { EM_DSP24, 136 }, - { EM_VIDEOCORE3, 137 }, - { EM_LATTICEMICO32, 138 }, - { EM_SE_C17, 139 }, - { EM_TI_C6000, 140 }, - { EM_TI_C2000, 141 }, - { EM_TI_C5500, 142 }, - { EM_MMDSP_PLUS, 160 }, - { EM_CYPRESS_M8C, 161 }, - { EM_R32C, 162 }, - { EM_TRIMEDIA, 163 }, - { EM_QDSP6, 164 }, - { EM_8051, 165 }, - { EM_STXP7X, 166 }, - { EM_NDS32, 167 }, - { EM_ECOG1, 168 }, - { EM_ECOG1X, 168 }, - { EM_MAXQ30, 169 }, - { EM_XIMO16, 170 }, - { EM_MANIK, 171 }, - { EM_CRAYNV2, 172 }, - { EM_RX, 173 }, - { EM_METAG, 174 }, - { EM_MCST_ELBRUS, 175 }, - { EM_ECOG16, 176 }, - { EM_CR16, 177 }, - { EM_ETPU, 178 }, - { EM_SLE9X, 179 }, - { EM_AVR32, 185 }, - { EM_STM8, 186 }, - { EM_TILE64, 187 }, - { EM_TILEPRO, 188 }, - { EM_MICROBLAZE, 189 }, - { EM_CUDA, 190 }, - { EM_TILEGX, 191 }, - { EM_CLOUDSHIELD, 192 }, - { EM_COREA_1ST, 193 }, - { EM_COREA_2ND, 194 }, - { EM_ARC_COMPACT2, 195 }, - { EM_OPEN8, 196 }, - { EM_RL78, 197 }, - { EM_VIDEOCORE5, 198 }, - { EM_78KOR, 199 }, -}; - -FN(ElfMachine, elf_em, "EM_*") - -/* - * Check ET_* values. - */ -struct _sym elf_type[] = { - { ET_NONE, 0 }, - { ET_REL, 1 }, - { ET_EXEC, 2 }, - { ET_DYN, 3 }, - { ET_CORE, 4 } -}; - -FN(ElfType, elf_type, "ET_*") - -/* - * Check values for miscellaneous ABI symbols. - */ -struct _sym elf_misc[] = { - { EV_NONE, 0 }, - { EV_CURRENT, 1 }, - { EI_MAG0, 0 }, - { EI_MAG1, 1 }, - { EI_MAG2, 2 }, - { EI_MAG3, 3 }, - { EI_CLASS, 4 }, - { EI_DATA, 5 }, - { EI_VERSION, 6 }, - { EI_OSABI, 7 }, - { EI_ABIVERSION, 8 }, - { EI_NIDENT, 16 }, - { ELFMAG0, 0x7F }, - { ELFMAG1, 'E' }, - { ELFMAG2, 'L' }, - { ELFMAG3, 'F' }, - { ELFCLASSNONE, 0 }, - { ELFCLASS32, 1 }, - { ELFCLASS64, 2 }, - { ELFDATANONE, 0 }, - { ELFDATA2LSB, 1 }, - { ELFDATA2MSB, 2 }, -}; - -FN(ElfMisc, elf_misc, "miscellaneous symbol"); diff --git a/contrib/elftoolchain/test/libelf/tset/bin/elf-hash b/contrib/elftoolchain/test/libelf/tset/bin/elf-hash deleted file mode 100755 index a98df461..00000000 --- a/contrib/elftoolchain/test/libelf/tset/bin/elf-hash +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env python2.7 -# -# $Id$ - -import sys, os - -def elf_hash(s): - """A python implementation of elf_hash(3).""" - h = 0L - for c in s: - h = (h << 4) + ord(c) - t = (h & 0xF0000000L) - if t != 0: - h = h ^ (t >> 24) - h = h & ~t - return h - - -if __name__ == '__main__': - from optparse import OptionParser - - usage = "usage: %prog [options] files...\n" + \ - " print ELF hash values for strings or file contents" - - p = OptionParser(usage=usage) - p.add_option("-s", "--string", dest="hash_strings", - action="append", metavar="STRING", - help="compute hash for STRING") - - options, args = p.parse_args() - if not options.hash_strings and not args: - p.print_help() - sys.exit(1) - - if options.hash_strings: - for s in options.hash_strings: - print "\"%s\" 0x%x" % (s, elf_hash(s)) - for f in args: - print "[%s] 0x%x" % (f, elf_hash(open(f,'r').read())) diff --git a/contrib/elftoolchain/test/libelf/tset/bin/elfc b/contrib/elftoolchain/test/libelf/tset/bin/elfc deleted file mode 100755 index 0b0fd515..00000000 --- a/contrib/elftoolchain/test/libelf/tset/bin/elfc +++ /dev/null @@ -1,1625 +0,0 @@ -#!/usr/bin/env python2.7 -# -# This script converts a textual (YAML) description of an ELF file to -# an equivalent 'binary' file. -# -# The YAML description may have the following top-level keys: -# -# 'elf_fillchar': char -# Sets the fill character to 'char'. -# 'ehdr': EHDR-DESCRIPTOR -# Defines an ELF Ehdr structure. -# 'phdrtab': list-of(PHDR-DESCRIPTOR) -# Defines the contents of the ELF Program Header table. -# Each `Phdr' descriptor represents one ELF Phdr entry. -# 'sections': list-of(SECTION-DESCRIPTOR) -# Defines the content of each section in the file. Each -# `SECTION-DESCRIPTOR' contains information for the -# section `header' and the actual data for the section. -# -# The script will compute reasonable defaults for any fields -# left unspecified in the YAML description. -# -# Descriptors EHDR-DESCRIPTOR and PHDR-DESCRIPTOR may be specified -# as a YAML key-value set. The key names correspond to the -# field names of the corresponding ELF structures, e.g., 'e_machine' -# and 'e_ident' for the Ehdr and 'p_type' and 'p_paddr' for -# a Phdr entry. -# -# Descriptor SECTION-DESCRIPTOR contains the fields in an ELF -# Shdr structure and an additional member 'sh_data', whose -# value is the data for the section. -# -# Example: -# -# -# ehdr: !Ehdr -# e_ident: !Ident -# ei_class: ELFCLASS32 -# ei_data: ELFDATA2MSB -# e_machine: EM_PPC -# phdrtab: -# - !Phdr -# ph_type: PHT_NULL -# ... other program header fields ... -# - !Phdr -# ... etc. ... -# sections: -# - !Section -# sh_name: .dynsym -# ... other section header fields ... -# sh_data: # ... list of data ... -# - !Dyn -# d_tag: 0xdeadcode -# - !Dyn -# d_tag: 0xcafebabe -# - !Section -# sh_name: .shstrtab -# sh_type: SHT_STRTAB -# sh_data: -# - string1 -# - string2 -# -# -# :: Handling of strings :: -# -# Fields like 'sh_name' (in a section header) are defined to contain -# an integer index into a specified string table (in this case a -# section with name '.shstrtab'). Other ELF data structures use a -# similar convention; names in a '.dynamic' section as stored as -# indices into a '.dynstr' section. In the YAML descriptor, such -# fields may be specified as indices, which are used as-is, or as text -# strings which are converted to the appropriate string index. -# For convenience in creating ELF objects with a large number of -# sections, a section index may be manually specified using a -# 'sh_index' pseudo field. -# -# $Id$ - -version = "%prog 1.0" -usage = "usage: %prog [options] [input-file]" -description = """Create an ELF binary from a textual description in """ + \ - """'input-file' (or stdin)""" - -import optparse, re, struct, sys, types, yaml - -class ElfError(Exception): - """An exception signalled during conversion.""" - - def __init__(self, node=None, msg=None): - """Initialize an exception object. - - Arguments: - node -- a YAML parse tree node. - msg -- human readable message associated with this - exception. - """ - if node: - self.ee_start = node.start_mark.line + 1 - self.ee_end = node.end_mark.line + 1 - else: - self.ee_start = self.ee_end = -1 - self.ee_msg = msg - - def __str__(self): - """Form a printable representation of an exception.""" - - if self.ee_start != -1: - if self.ee_start == self.ee_end: - return "Error: line %d: %s" % (self.ee_start, - self.ee_msg) - else: - return "Error: lines %d--%d: %s" % \ - (self.ee_start, self.ee_end, - self.ee_msg) - else: - return "Error: %s" % self.ee_msg - - -# -# Mappings used by the 'encode()' function -# - -elf_cap_tag = { - 'CA_SUNW_NULL': 0, 'CA_SUNW_HW_1': 1, 'CA_SUNW_SF_1': 2 -} - -elf_d_flags = { - 'DF_ORIGIN': 0x0001, 'DF_SYMBOLIC': 0x0002, 'DF_TEXTREL': 0x0004, - 'DF_BIND_NOW': 0x0006, 'DF_STATIC_TLS': 0x0010 -} - -elf_d_tag = { - # from - 'DT_NULL': 0, 'DT_NEEDED': 1, 'DT_PLTRELSZ': 2, 'DT_PLTGOT': 3, - 'DT_HASH': 4, 'DT_STRTAB': 5, 'DT_SYMTAB': 6, 'DT_RELA': 7, - 'DT_RELASZ': 8, 'DT_RELAENT': 9, 'DT_STRSZ': 10, 'DT_SYMENT': 11, - 'DT_INIT': 12, 'DT_FINI': 13, 'DT_SONAME': 14, 'DT_RPATH': 15, - 'DT_SYMBOLIC': 16, 'DT_REL': 17, 'DT_RELSZ': 18, 'DT_RELENT': 19, - 'DT_PLTREL': 20, 'DT_DEBUG': 21, 'DT_TEXTREL': 22, 'DT_JMPREL': 23, - 'DT_BIND_NOW': 24, 'DT_INIT_ARRAY': 25,'DT_FINI_ARRAY': 26, - 'DT_INIT_ARRAYSZ': 27, 'DT_FINI_ARRAYSZ': 28, 'DT_RUNPATH': 29, - 'DT_FLAGS': 30, 'DT_ENCODING': 32, 'DT_PREINIT_ARRAY': 32, - 'DT_PREINIT_ARRAYSZ': 33, 'DT_LOOS': 0x6000000d, 'DT_HIOS': 0x6ffff000, - 'DT_LOPROC': 0x70000000, 'DT_HIPROC': 0x7fffffff, - 'DT_SUNW_AUXILIARY': 0x6000000D, 'DT_SUNW_RTLDINF': 0x6000000E, - 'DT_SUNW_FILTER': 0x6000000F, 'DT_SUNW_CAP': 0x60000010, - # from "usr.bin/elfdump/elfdump.c" - 'DT_GNU_PRELINKED': 0x6ffffdf5, 'DT_GNU_CONFLICTSZ': 0x6ffffdf6, - 'DT_GNU_LIBLISTSZ': 0x6ffffdf7, 'DT_SUNW_CHECKSUM': 0x6ffffdf78, - 'DT_PLTPADSZ': 0x6ffffdf79, 'DT_MOVEENT': 0x6ffffdfa, - 'DT_MOVESZ': 0x6ffffdfb, 'DT_FEATURE': 0x6ffffdfc, - 'DT_FEATURE': 0x6ffffdfd, 'DT_POSFLAG_1': 0x6ffffdfe, - 'DT_SYMINENT': 0x6ffffdff, 'DT_VALRNGHI': 0x6ffffdff, # dup - 'DT_ADDRRNGLO': 0x6ffffe00, 'DT_GNU_CONFLICT': 0x6ffffef8, - 'DT_GNU_LIBLIST': 0x6ffffef9, 'DT_SUNW_CONFIG': 0x6ffffefa, - 'DT_SUNW_DEPAUDIT': 0x6ffffefb, 'DT_SUNW_AUDIT': 0x6ffffefc, - 'DT_SUNW_PLTPAD': 0x6ffffefd, 'DT_SUNW_MOVETAB': 0x6ffffefe, - 'DT_SYMINFO': 0x6ffffeff, 'DT_ADDRRNGHI': 0x6ffffeff, # dup - 'DT_VERSYM': 0x6ffffff0, 'DT_GNU_VERSYM': 0x6ffffff0, # dup - 'DT_RELACOUNT': 0x6ffffff9, 'DT_RELCOUNT': 0x6ffffffa, - 'DT_FLAGS_1': 0x6ffffffb, 'DT_VERDEF': 0x6ffffffc, - 'DT_VERDEFNUM': 0x6ffffffd, 'DT_VERNEED': 0x6ffffffe, - 'DT_VERNEEDNUM': 0x6fffffff, - 'DT_IA_64_PLT_RESERVE': 0x70000000, 'DT_SUNW_AUXILIARY': 0x7ffffffd, - 'DT_SUNW_USED': 0x7ffffffe, 'DT_SUNW_FILTER': 0x7fffffff -} - -elf_dyn_fields = [ 'd_tag', 'd_val', 'd_ptr' ] - -elf_ehdr_flags = { # no known flags -} - -elf_ehdr_type = { # e_type - 'ET_NONE': 0, 'ET_REL': 1, 'ET_EXEC': 2, 'ET_DYN': 3, 'ET_CORE': 4 -} - -elf_ehdr_machine = { # e_machine - 'EM_NONE': 0, 'EM_M32': 1, 'EM_SPARC': 2, 'EM_386': 3, 'EM_68K': 4, - 'EM_88K': 5, 'EM_486': 6, 'EM_860': 7, 'EM_MIPS': 8, 'EM_S370': 9, - 'EM_MIPS_RS3_LE': 10, 'EM_MIPS_RS4_BE': 10, 'EM_PARISC': 15, - 'EM_VPP500': 17, 'EM_SPARC32PLUS': 18, 'EM_960': 19, 'EM_PPC': 20, - 'EM_PPC64': 21, 'EM_S390': 22, 'EM_V800': 36, 'EM_FR20': 37, - 'EM_RH32': 38, 'EM_RCE': 39, 'EM_ARM': 40, 'EM_ALPHA_STD': 41, - 'EM_SH': 42, 'EM_SPARCV9': 43, 'EM_TRICORE': 44, 'EM_ARC': 45, - 'EM_H8_300': 46, 'EM_H8_300H': 47, 'EM_H8S': 48, 'EM_H8_500': 49, - 'EM_IA_64': 50, 'EM_MIPS_X': 51, 'EM_COLDFIRE': 52, - 'EM_68HC12': 53, 'EM_MMA': 54, 'EM_PCP': 55, 'EM_NCPU': 56, - 'EM_NDR1': 57, 'EM_STARCORE': 58, 'EM_ME16': 59, 'EM_ST100': 60, - 'EM_TINYJ': 61, 'EM_X86_64': 62, 'EM_ALPHA': 0x9026 -} - -elf_ei_version = { # e_version - 'EV_NONE': 0, 'EV_CURRENT': 1 -} - -elf_ei_class = { - 'ELFCLASSNONE': 0, 'ELFCLASS32': 1, 'ELFCLASS64': 2 -} - -elf_ei_data = { - 'ELFDATANONE': 0, 'ELFDATA2LSB': 1, 'ELFDATA2MSB': 2 -} - -elf_ei_osabi = { - # Official values. - 'ELFOSABI_NONE': 0, - 'ELFOSABI_HPUX': 1, - 'ELFOSABI_NETBSD': 2, - 'ELFOSABI_GNU': 3, - 'ELFOSABI_HURD': 4, - 'ELFOSABI_86OPEN': 5, - 'ELFOSABI_SOLARIS': 6, - 'ELFOSABI_AIX': 7, - 'ELFOSABI_IRIX': 8, - 'ELFOSABI_FREEBSD': 9, - 'ELFOSABI_TRU64': 10, - 'ELFOSABI_MODESTO': 11, - 'ELFOSABI_OPENBSD': 12, - 'ELFOSABI_OPENVMS': 13, - 'ELFOSABI_NSK': 14, - 'ELFOSABI_ARM': 97, - 'ELFOSABI_STANDALONE': 255, - # Aliases. - 'ELFOSABI_SYSV': 0, - 'ELFOSABI_LINUX': 3, - 'ELFOSABI_MONTEREY': 7 -} - -elf_ph_fields = [ 'p_align', 'p_filesz', 'p_flags', 'p_memsz', 'p_offset', - 'p_paddr', 'p_type', 'p_vaddr' ] - -elf_ph_flags = { - 'PF_X': 0x1, 'PF_W': 0x2, 'PF_R': 0x4 -} - -elf_ph_type = { - 'PT_NULL': 0, 'PT_LOAD': 1, 'PT_DYNAMIC': 2, 'PT_INTERP': 3, - 'PT_NOTE': 4, 'PT_SHLIB': 5, 'PT_PHDR': 6, 'PT_TLS': 7, - 'PT_LOOS': 0x60000000, 'PT_HIOS': 0x6FFFFFFF, - 'PT_SUNW_UNWIND': 0x6464E550, 'PT_GNU_EHFRAME': 0x6464E550, # dup - 'PT_SUNWBSS': 0x6FFFFFFA, 'PT_SUNWSTACK': 0x6FFFFFFB, - 'PT_SUNWDTRACE': 0x6FFFFFFC, 'PT_SUNWCAP': 0x6FFFFFFD, - 'PT_LOPROC': 0x70000000, 'PT_HIPROC': 0x7FFFFFFF -} - -elf_sh_type = { - 'SHT_NULL': 0, 'SHT_PROGBITS': 1, 'SHT_SYMTAB': 2, 'SHT_STRTAB': 3, - 'SHT_RELA': 4, 'SHT_HASH': 5, 'SHT_DYNAMIC': 6, 'SHT_NOTE': 7, - 'SHT_NOBITS': 8, 'SHT_REL': 9, 'SHT_SHLIB': 10, 'SHT_DYNSYM': 11, - 'SHT_INIT_ARRAY': 14, 'SHT_FINI_ARRAY': 15, 'SHT_PREINIT_ARRAY': 16, - 'SHT_GROUP': 17, 'SHT_SYMTAB_SHNDX': 18, 'SHT_LOOS': 0x60000000, - 'SHT_HIOS': 0x6fffffff, 'SHT_LOPROC': 0x70000000, - 'SHT_HIPROC': 0x7fffffff, 'SHT_LOUSER': 0x80000000, - 'SHT_HIUSER': 0xffffffff, - # OS specific types - 'SHT_SUNW_dof': 0x6FFFFFF4, 'SHT_SUNW_cap': 0x6FFFFFF5, - 'SHT_SUNW_SIGNATURE': 0x6FFFFFF6, - 'SHT_SUNW_ANNOTATE': 0x6FFFFFF7, 'SHT_GNU_LIBLIST': 0x6ffffff7, # dup - 'SHT_SUNW_DEBUGSTR': 0x6FFFFFF8, 'SHT_SUNW_DEBUG': 0x6FFFFFF9, - 'SHT_SUNW_move': 0x6FFFFFFA, 'SHT_SUNW_COMDAT': 0x6FFFFFFB, - 'SHT_SUNW_syminfo': 0x6FFFFFFC, - 'SHT_GNU_verdef': 0x6ffffffd, 'SHT_SUNW_verdef': 0x6ffffffd, # dup - 'SHT_GNU_verneed': 0x6ffffffe, 'SHT_SUNW_verneed': 0x6ffffffe, # dup - 'SHT_GNU_versym': 0x6fffffff, 'SHT_SUNW_versym': 0x6fffffff, # dup - # Processor specific types - 'SHT_IA_64_EXT': 0x70000000, 'SHT_IA_64_UNWIND': 0x70000001 -} - -elf_sh_flags = { - 'SHF_WRITE': 0x1, 'SHF_ALLOC': 0x2, 'SHF_EXECINSTR': 0x4, - 'SHF_MERGE': 0x10, 'SHF_STRINGS': 0x20, 'SHF_INFO_LINK': 0x40, - 'SHF_LINK_ORDER': 0x80, 'SHF_OS_NONCONFORMING': 0x100, - 'SHF_GROUP': 0x200, 'SHF_TLS': 0x400, 'SHF_MASKOS': 0x0ff00000, - 'SHF_MASKPROC': 0xf0000000 -} - -elf_st_bindings = { - 'STB_LOCAL': 0, 'STB_GLOBAL': 1, 'STB_WEAK': 2 -} - -elf_st_flags = { - 'SHF_WRITE': 1, 'SHF_ALLOC': 2, 'SHF_EXECINSTR': 4 -} - -elf_st_types = { - 'STT_NOTYPE': 0, 'STT_OBJECT': 1, 'STT_FUNC': 2, 'STT_SECTION': 3, - 'STT_FILE': 3 -} - -elf_syminfo_flags = { - 'SYMINFO_FLG_DIRECT': 1, - 'SYMINFO_FLG_PASSTHRU': 2, 'SYMINFO_FLG_FILTER': 2, # dup - 'SYMINFO_FLG_COPY': 4, 'SYMINFO_FLG_LAZYLOAD': 8, - 'SYMINFO_FLG_DIRECTBIND': 0x10, 'SYMINFO_FLG_NOEXTDIRECT': 0x20, - 'SYMINFO_FLG_AUXILIARY': 0x40 -} - -elf_syminfo_boundto_types = { - 'SYMINFO_BT_SELF': 0xFFFF, 'SYMINFO_BT_PARENT': 0xFFFE, - 'SYMINFO_BT_NONE': 0xFFFD, 'SYMINFO_BT_EXTERN': 0xFFFC -} - -# Defaults - -defaults = { - # ElfDyn structures - 'd_tag': 'DT_NULL', - 'd_un': '0', - - # fields in an ELf Executable Header - 'e_ehsize': None, - 'e_entry': '0', - 'e_flags': [ '0' ], - 'e_ident': None, - 'e_machine': 'EM_NONE', - 'e_phentsize': None, - 'e_phnum': None, - 'e_phoff': None, - 'e_shentsize': None, - 'e_shnum': None, - 'e_shoff': None, - 'e_shstrndx': None, - 'e_type': 'ET_NONE', - 'e_version': 'EV_CURRENT', - # e_ident bytes - 'ei_class': 'ELFCLASS32', - 'ei_data': 'ELFDATA2LSB', - 'ei_version': 'EV_CURRENT', - 'ei_osabi': 'ELFOSABI_NONE', - 'ei_abiversion': '0', - # File-wide defaults - 'elf_fillchar': '0', - # Elf Notes - 'n_namesz': None, - 'n_descsz': None, - 'n_type': '0', - 'n_data': [ "", "" ], - # Phdr - 'p_align': '1', - 'p_filesz': '0', - 'p_memsz': '0', - 'p_flags': [ '0' ], - 'p_offset': '0', - 'p_paddr': '0', - 'p_type': 'PT_NULL', - 'p_vaddr': '0', - # Shdr - 'sh_addr': '0', - 'sh_addralign': None, - 'sh_data': [], - 'sh_entsize': '0', - 'sh_flags': [ '0' ], - 'sh_info': '0', - 'sh_index': None, - 'sh_link': '0', - 'sh_name': '0', - 'sh_offset': None, - 'sh_size': None, - 'sh_type': 'SHT_NULL', - # Verdaux - 'vda_name': 0, - 'vda_next': 0, - # Verdef - 'vd_version': 1, - 'vd_flags': 0, - 'vd_ndx': 0, - 'vd_cnt': 0, - 'vd_hash': 0, - 'vd_aux': 0, - 'vd_next': 0, - # Vernaux - 'vna_hash': 0, - 'vna_flags': 0, - 'vna_other': 0, - 'vna_name': 0, - 'vna_next': 0, - # Verneed - 'vn_version': 1, - 'vn_cnt': 0, - 'vn_file': 0, - 'vn_aux': 0, - 'vn_next': 0 -} - -# -# Module wide constants. -# - -ELFCLASS32 = elf_ei_class['ELFCLASS32'] -ELFDATA2LSB = elf_ei_data['ELFDATA2LSB'] -SHT_NOBITS = elf_sh_type['SHT_NOBITS'] -SHT_NULL = elf_sh_type['SHT_NULL'] -SHT_STRTAB = elf_sh_type['SHT_STRTAB'] -SHN_LORESERVE= 0xFF00 -SHN_XINDEX = 0xFFFF -# -# Helper functions. -# - -def get(d, key, default): - """Retrieve the value of 'key' from YAML dictionary 'd'. - - The return value is guaranteed to be not 'None'. - """ - v = d.get(key, default) - if v is None: - v = default - return v - -def encode(d, key, default, mapping): - """Return the numeric value of d[key] in map 'mapping'.""" - - v = get(d, key, default) - try: - return mapping[v] - except KeyError: - return int(v) - -def encode_flags(flags, m): - """Convert 'flags' to a single numeric value using mapping 'm'.""" - try: - v = long(flags) - return v - except: - pass - v = 0L - for f in flags: - try: - t = long(m[f]) - except KeyError: - t = long(f) - v |= t - return v - -def check_dict(d, l, node=None): - """Check a dictionary for unknown keys.""" - unknown = [] - for k in d.keys(): - if k not in l: - unknown.append(k) - if len(unknown) > 0: - raise ElfError(node, "{%s} Unknown key(s) %s" % \ - (node.tag, unknown)) - -def bounded_value(v, encoding): - """Return the value of 'v' bounded to the maximum size for a type.""" - if encoding == "H": - return (v & 0xFFFF) - elif encoding == "I": - return (v & 0xFFFFFFFF) - return v - -# -# Helper classes. -# - -class ElfStrTab: - """A ELF string table. - - This class manages strings in an ELF string table section. - """ - - def __init__(self, strs=None): - """Initialize a string table from a list of strings.""" - self.offset = 1 # reserve space for initial null byte - self.htab = {} - if type(strs) == types.StringType: # one string - self.add(strs) - elif type(strs) == types.ListType: # list of strings - for s in strs: - self.add(s) - - def add(self, str): - """Add a string to the string table. - - Returns the offset of the string in the ELF section.""" - try: - return self.lookup(str) - except KeyError: - self.htab[str] = offset = self.offset - self.offset += len(str) + 1 # Keep space for a NUL. - return offset - - def bits(self): - """Return the contents of an ELF string table.""" - - l = self.htab.items() - l.sort(lambda x, y: cmp(x[1],y[1])) # Order by string offset. - ls = [""] # initial NUL - for (ss,oo) in l: - ls.append(ss) - return "\000".join(ls) + "\000" # Add trailing NULs - - def lookup(self, str): - """Return the ELF string table offset for string 'str'.""" - - return self.htab[str] - - -class ElfType: - """A base type for ELF type descriptors. - - Derived classes are expected to provide the following attributes: - - 'fields' -- a list of 4-typles (name, fn, lsz, msz). - - 'name' is the name of a field in the ELF structure. - - 'fn' is a convertor function, one of the functions - 'do_(long,encode,flags)' below. - - 'msz' and 'lsz' provide the appropriate sizes when - generating a binary representation of the type. - """ - - fields = None - def __init__(self, d, node): - """Initialize an ELF datatype from a YAML description. - - Arguments: - d -- a dictionary containing name/value pairs specified - in the text description. - node -- YAML parser node for this element. - """ - - keys = map(lambda t: t[0], self.fields) - check_dict(d, keys, node) - for f in self.fields: - name = f[0] - fn = f[1] - try: - v = fn(d, name) - setattr(self,f[0],v) - except: - raise ElfError(node, - 'key: "%s" value: "%s" unrecognized.' % \ - (name, d[name])) - self._n = node # Save YAML node and associated value - self._d = d # for error reporting. - - def __getitem__(self, attrib): - """Allow an ELF type to be treated like a dictionary.""" - - return getattr(self, attrib) - - def bits(self, formatchar, elfclass): - """Convert an ELF type to its file representation.""" - - format, args = self.getfields(elfclass) - return struct.pack(formatchar + format, *args) - - def formatstring(self, elfclass): - """Return the format string for this type.""" - - if elfclass == ELFCLASS32: - n = 2 - else: - n = 3 - return "".join(map (lambda t: t[n], self.fields)) - - def content(self, elfclass): - """Return a tuple containing the values for an ELF type.""" - - a = [] - if elfclass == ELFCLASS32: - n = 2 - else: - n = 3 - for t in self.fields: - field_encoding = t[n] - if field_encoding != "": - v = getattr(self, t[0]) - a.append(bounded_value(v, field_encoding)) - return tuple(a) - - def getfields(self, elfclass): - """Describe the binary layout of the type. - - Return a tuple (formatstring, *args) describing the - desired binary layout in the manner of the 'struct' - python library module. - """ - - return (self.formatstring(elfclass), - self.content(elfclass)) - - def layout(self, offset, elf): - """Perform any layout-time translation for an ELF type.""" - - return offset - - def size(self, elfclass): - """Return the size of the type in bytes. - - The size returned is independent of the alignment needs of - the type. - """ - - format = self.formatstring(elfclass) - sz = 0 - for f in format: - if f == "B": - sz += 1 - elif f == "H": - sz += 2 - elif f == "I": - sz += 4 - elif f == "Q": - sz += 8 - elif f == "": - pass - else: - raise TypeError, "Invalid format char '%s'." % f - return sz - - -# -# Translation helper functions. -# - -def do_string(d, n): - """Convert a YAML value to a Python string.""" - - v = get(d, n, defaults[n]) - if v: - return str(v) - return v - -def do_long(d, n): - """Convert a YAML value to a Python 'long'.""" - - v = get(d, n, defaults[n]) - if v: - return long(v) - return v - -def do_copy(d, n): - """Copy a YAML value without conversion.""" - - v = get(d, n, defaults[n]) - return v - -def do_encode(xlate): - """Translate a YAML value according to mapping 'xlate'.""" - - return lambda d, n, xl=xlate: encode(d, n, defaults[n], xl) - -def do_flags(xlate): - """Translate a list of flags according to mapping 'xlate'.""" - - return lambda d, n, xl=xlate: encode_flags(get(d, n, defaults[n]), xl) - -# -# Definitions of ELF types. -# - -class ElfCap(ElfType): - """A representation of an ELF Cap structure. - - YAML tag: !Cap - """ - - fields = [ - ('c_tag', do_encode(elf_cap_tag), "I", "Q"), - ('c_un', do_long, "I", "Q") - ] - def __init__(self, cap, node): - ElfType.__init__(self, cap, node) - - -class ElfDyn(ElfType): - """A representation of an ELF Dyn structure. - - YAML tag: !Dyn - """ - - fields = [ - ('d_tag', do_encode(elf_d_tag), "I", "Q"), - ('d_un', do_long, "I", "Q") - ] - - def __init__(self, d, node): - ElfType.__init__(self, d, node) - - -class ElfEhdrIdent(ElfType): - """A representation for the 'ident' field of an ELF Ehdr. - - YAML tag: !Ident - """ - - fields = [ - ('ei_class', do_encode(elf_ei_class), "B", "B"), - ('ei_data', do_encode(elf_ei_data), "B", "B"), - ('ei_version', do_encode(elf_ei_version), "B", "B"), - ('ei_osabi', do_encode(elf_ei_osabi), "B", "B"), - ('ei_abiversion', do_long, "B", "B") - ] - - def __init__(self, ei, node): - ElfType.__init__(self, ei, node) - - def bits(self, format, elfclass): - f, args = self.getfields(elfclass) - s = "\x7FELF" - s += struct.pack(f + 'xxxxxxx', *args) - return s - - -class ElfEhdr(ElfType): - """A representation of an ELF Executable Header. - - YAML tag: !Ehdr - """ - - fields = [ - ('e_ident', do_copy, "", ""), - ('e_type', do_encode(elf_ehdr_type), "H", "H"), - ('e_machine', do_encode(elf_ehdr_machine), "H", "H"), - ('e_version', do_encode(elf_ei_version), "I", "I"), - ('e_entry', do_long, "I", "Q"), - ('e_phoff', do_long, "I", "Q"), - ('e_shoff', do_long, "I", "Q"), - ('e_flags', do_flags(elf_ehdr_flags), "I", "I"), - ('e_ehsize', do_long, "H", "H"), - ('e_phentsize', do_long, "H", "H"), - ('e_phnum', do_long, "H", "H"), - ('e_shentsize', do_long, "H", "H"), - ('e_shnum', do_long, "H", "H"), - ('e_shstrndx', do_copy, "H", "H") - ] - - def __init__(self, eh, node): - """Initialize an Ehdr structure. - - If an 'ident' structure was not specified as part of - the YAML description, initialize it explicitly. - """ - - ElfType.__init__(self, eh, node) - if self.e_ident is None: - self.e_ident = ElfEhdrIdent({}, node) - - def layout(self, offset, elf): - """Layout an ELF Ehdr. - - This method will fill in defaults and/or compute - values for fields that were not specified in the YAML - description. - """ - - elfclass = elf.elfclass() - if elfclass == ELFCLASS32: - e_ehsize = 52 - e_phentsize = 32 - e_shentsize = 40 - alignment = 4 - else: # 64 bit sizes - e_ehsize = 64 - e_phentsize = 56 - e_shentsize = 64 - alignment = 8 - - if self.e_ehsize is None: - self.e_ehsize = e_ehsize - - # Compute e_phnum if needed. - if self.e_phnum is None: - self.e_phnum = len(elf.elf_phdrtab) - - # Compute a value for the e_phentsize field. - if self.e_phentsize is None: - if self.e_phnum: - self.e_phentsize = e_phentsize - else: - self.e_phentsize = 0 - - # Set the e_shentsize field. - if self.e_shentsize is None: - self.e_shentsize = e_shentsize - - # The program header defaults to just after the ELF header. - if self.e_phoff is None: - if self.e_phnum > 0: - self.e_phoff = \ - (self.e_ehsize + (alignment - 1)) & \ - ~(alignment - 1) - else: - self.e_phoff = 0 - - # compute e_shnum - self.nsections = elf.elf_sections.get_shnum() - if self.nsections > 0: - if self.e_shstrndx is None: - self.e_shstrndx = '.shstrtab' - if type(self.e_shstrndx) == types.StringType: - self.e_shstrndx = \ - elf.elf_sections.get_index(self.e_shstrndx) - elif type(self.e_shstrndx) == types.IntType or \ - type(self.e_shstrndx) == types.LongType: - pass - else: - raise ElfError(self._n, "Unparseable e_shstrndx field.") - if self.e_shstrndx is None: - raise ElfError(self._n, - 'Cannot determine section ' + \ - 'name string table index.') - else: - if self.e_shstrndx is None: - self.e_shstrndx = 0 - - if self.e_shnum is None: - self.e_shnum = self.nsections - - # section data comes after the program header by default. The - # section header table is placed after all section data. - - if self.e_phnum > 0: - offset = self.e_phoff + self.e_phnum * self.e_phentsize - else: - offset = self.e_ehsize - offset = elf.elf_sections.layout(offset, elf) - if self.e_shoff is None: - if self.nsections > 0: - self.e_shoff = (offset + (alignment-1)) & \ - ~(alignment-1) - else: - self.e_shoff = 0 - - if self.nsections >= SHN_LORESERVE: - elf.elf_sections.set_extended_shnum(self.nsections) - self.e_shnum = 0 - if self.e_shstrndx >= SHN_XINDEX: - elf.elf_sections.set_extended_shstrndx(self.e_shstrndx) - self.e_shstrndx = SHN_XINDEX - - def bits(self, formatchar, elfclass): - """Return the file representation of an Elf Ehdr.""" - - s = self.e_ident.bits(formatchar, elfclass) - s += ElfType.bits(self, formatchar, elfclass) - - return s - - -class ElfLong: - """Wrapper around a python Int/Long.""" - - def __init__(self, v): - self._v = long(v) - - def bits(self, formatchar, elfclass): - """Return the file representation for this object. - - Depending on the number of bits needed to represent - the number, the returned bits would be either 4 or - 8 bytes wide. - """ - - if self._v > 0xFFFFFFFFL: - f = formatchar + "Q" - else: - f = formatchar + "I" - return struct.pack(f, self._v) - - -class ElfMove(ElfType): - """A representation of an Elf Move type. - - YAML tag: !Move - """ - - fields = [ - ('m_value', do_long, "I", "I"), - ('m_info', do_long, "I", "Q"), - ('m_poffset', do_long, "I", "Q"), - ('m_repeat', do_long, "H", "H"), - ('m_stride', do_long, "H", "H") - ] - - def __init__(self, move, node): - ElfType.__init__(self, move, node) - - -class ElfNote(ElfType): - """A representation of an Elf Note type. - - YAML tag: !Note - - The data in the note is held in YAML node named 'n_data' which is - a pair of strings, one for the note's name field and one for the - description. - - If the fields 'n_namesz' and 'n_descz' aren't specified, they - are computed from the contents of 'n_data'. - """ - - fields = [ - ('n_namesz', do_long, "I", "I"), - ('n_descsz', do_long, "I", "I"), - ('n_type', do_long, "I", "I"), - ('n_data', do_copy, "", "") - ] - - def __init__(self, note, node): - ElfType.__init__(self, note, node) - self._note = note - - def layout(self, offset, elfclass): - if len(self.n_data) != 2: - raise ElfError(node, "Note data not a pair of strings.") - - for nd in self.n_data: - if isinstance(nd, ElfType): - nd.layout(offset, elfclass) - - if self.n_namesz is None: - self.n_namesz = len(self.n_data[0]) - if self.n_descsz is None: - self.n_descsz = len(self.n_data[1]) - - def bits(self, format, elfclass): - b = ElfType.bits(self, format, elfclass) - nbits = str(self.n_data[0]) - dbits = str(self.n_data[1]) - return b + nbits + dbits - - -class ElfPhdr(ElfType): - """A representation of an ELF Program Header Table entry. - - YAML tag: !Phdr - """ - - fields = [ # NOTE: class-dependent field ordering - ('p_align', do_long), - ('p_filesz', do_long), - ('p_flags' , do_flags(elf_ph_flags), ), - ('p_memsz' , do_long), - ('p_offset', do_long), - ('p_paddr' , do_long), - ('p_type' , do_encode(elf_ph_type)), - ('p_vaddr' , do_long) - ] - - def __init__(self, ph, node): - ElfType.__init__(self, ph, node) - - def to_string(self): - """Helper during debugging.""" - - s = "Phdr(type:%(p_type)d,flags:%(p_flags)d," \ - "offset:%(p_offset)ld,vaddr:%(p_vaddr)ld," \ - "paddr:%(p_paddr)ld,filesz:%(p_filesz)ld," \ - "memsz:%(p_memsz)ld)" % self - return s - - def bits(self, formatchar, elfclass): - """Return the file representation of a Phdr.""" - - f = formatchar - # Phdr structures are laid out in a class-dependent way - if elfclass == ELFCLASS32: - f += "IIIIIIII" - s = struct.pack(f, - self.p_type, - self.p_offset, - self.p_vaddr, - self.p_paddr, - self.p_filesz, - self.p_memsz, - self.p_flags, - self.p_align) - else: - f += "IIQQQQQQ" - s = struct.pack(f, - self.p_type, - self.p_flags, - self.p_offset, - self.p_vaddr, - self.p_paddr, - self.p_filesz, - self.p_memsz, - self.p_align) - return s - -class ElfRel(ElfType): - """A representation of an ELF Rel type. - - YAML tag: !Rel - """ - - fields = [ - ('r_offset', do_long, "I", "Q"), - ('r_info', do_long, "I", "Q") - ] - - def __init__(self, rel, node): - ElfType.__init__(self, rel, node) - - -class ElfRela(ElfType): - """A representation of an ELF Rela type. - - YAML tag: !Rela - """ - - fields = [ - ('r_offset', do_long, "I", "Q"), - ('r_info', do_long, "I", "Q"), - ('r_addend', do_long, "I", "Q") - ] - - def __init__(self, rela, node): - ElfType.__init__(self, rela, node) - - -class ElfSection(ElfType): - """A representation of an ELF Section. - - YAML tag: !Section - - A section description consists of the fields that make up an ELF - section header entry and an additional field 'sh_data' that - contains the data associated with this section. - - 'sh_data' may be a YAML string, or a YAML list of items that - comprise the content of the section. - """ - - fields = [ - ('sh_name', do_string, "I", "I"), - ('sh_type', do_encode(elf_sh_type), "I", "I"), - ('sh_flags', do_flags(elf_sh_flags), "I", "Q"), - ('sh_addr', do_long, "I", "Q"), - ('sh_offset', do_long, "I", "Q"), - ('sh_size', do_long, "I", "Q"), - ('sh_link', do_long, "I", "I"), - ('sh_info', do_long, "I", "I"), - ('sh_addralign', do_copy, "I", "Q"), - ('sh_entsize', do_long, "I", "Q"), - ('sh_data', do_copy, "", ""), - ('sh_index', do_long, "", "") - ] - - def __init__(self, shdr, node): - """Initialize a section descriptor.""" - - ElfType.__init__(self, shdr, node) - if type(self.sh_data) != types.ListType: - self.sh_data = list(self.sh_data) - if self.sh_addralign is None: - if self.sh_type == SHT_NULL or self.sh_type == SHT_NOBITS: - self.sh_addralign = 0 - else: - self.sh_addralign = 1 - else: - if (self.sh_addralign == 0 or \ - (self.sh_addralign & (self.sh_addralign - 1)) != 0): - raise ElfError(node, - "'sh_addralign' not a power of two.") - self._data = None # 'cache' of translated data - self._strtab = None - - def to_string(self): - """Helper function during debugging.""" - - return "Section(name:%(sh_name)s,type:%(sh_type)d," \ - "flags:%(sh_flags)x,addr:%(sh_addr)d,"\ - "offset:%(sh_offset)d,size:%(sh_size)d," \ - "link:%(sh_link)d,info:%(sh_info)d," \ - "addralign:%(sh_addralign)d,entsize:%(sh_entsize)d)" % \ - self - - def make_strtab(self): - """Create a string table from section contents.""" - - self._strtab = ElfStrTab(self.sh_data) - - def string_to_index(self, name): - """Convert 'name' to an offset inside a string table. - - Only valid for sections of type SHT_STRTAB.""" - - if self._strtab: - return self._strtab.lookup(name) - raise ElfError(None, 'Cannot translate "%s" to an index.' % name) - - def bits(self, formatchar, elfclass): - raise AssertionError, "Section objects should use " \ - "databits() or headerbits()" - - def layout(self, offset, elf): - """Prepare an ELF section for output.""" - - if type(self.sh_name) == types.StringType: - # first try convert it to a long - try: - self.sh_name = long(self.sh_name) - except ValueError: # lookup in string table - try: - self.sh_name = \ - elf.section_name_index(self.sh_name) - except KeyError: - raise ElfError(self._n, - "Section name '%s' not in string table." % \ - self.sh_name) - # give a chance for the contents of a section to xlate strings - for d in self.sh_data: - if isinstance(d, ElfType): - d.layout(offset, elf) - # compute the space used by the section data - self._data = self.databits(elf.formatchar(), elf.elfclass()) - - align = self.sh_addralign - if align == 0: - align = 1 - if self.sh_type == SHT_NULL or self.sh_type == SHT_NOBITS: - isnulltype = 1 - else: - isnulltype = 0 - - offset = (offset + (align - 1)) & ~(align - 1) - if self.sh_size is None: - if isnulltype: - self.sh_size = 0 - else: - self.sh_size = len(self._data) - if self.sh_offset is None: - if isnulltype: - self.sh_offset = 0 - else: - self.sh_offset = offset - if isnulltype: # ignore bits for null types - return offset - return offset + len(self._data) - - def databits(self, formatchar, elfclass): - """Return the contents of a section.""" - - if self._data: - return self._data - # special-case string table handling - if self.sh_type == SHT_STRTAB: - return self._strtab.bits() - # 'normal' section - s = "" - for d in self.sh_data: - if isinstance(d, ElfType): - s += d.bits(formatchar, elfclass) - elif isinstance(d, types.LongType): - s += struct.pack(formatchar + "Q", d) - elif isinstance(d, types.IntType): - s += struct.pack(formatchar + "I", d) - else: - s += str(d) - return s - - def headerbits(self, formatchar, elfclass): - """Return the file representation of the section header.""" - - return ElfType.bits(self, formatchar, elfclass) - - -class ElfSym(ElfType): - """A representation for an ELF Symbol type. - - YAML tag: !Sym - """ - - fields = [ # NOTE: class-dependent layout. - ('st_info', do_long, "B", "B"), - ('st_name', do_string, "I", "I"), - ('st_other', do_long, "B", "B"), - ('st_shndx', do_string, "H", "H"), - ('st_size', do_long, "I", "Q"), - ('st_value', do_long, "I", "Q") - ] - - def __init__(self, sym, node): - ElfType.__init__(self, sym, node) - - def bits(self, format, elfclass): - """Return the file representation for an ELF Sym.""" - - if elfclass == ELFCLASS32: - s = struct.pack(format + "IIIBBH", - self.st_name, - self.st_value, - self.st_size, - self.st_info, - self.st_other, - self.st_shndx) - else: - s = struct.pack(format + "IBBHQQ", - self.st_name, - self.st_info, - self.st_other, - self.st_shndx, - self.st_value, - self.st_size) - return s - - def layout(self, offset, elf): - """Perform layout-time conversions for an ELF Sym. - - String valued fields are converted to offsets into - string tables. - """ - - if type(self.st_shndx) == types.StringType: - self.st_shndx = \ - elf.elf_sections.get_index(self.st_shndx) - if self.st_shndx is None: - raise ElfError(self._n, "Untranslateable 'st_shndx' " + \ - "value \"%s\"." % self.st_shndx) - - if type(self.st_name) == types.StringType: - try: - strtab = \ - elf.elf_sections[self.st_shndx]._strtab - except IndexError: - raise ElfError(self._n, "'st_shndx' out of range") - if strtab is None: - raise ElfError(self._n, "'st_shndx' not of type STRTAB.") - - try: - self.st_name = strtab.lookup(self.st_name) - except KeyError: - raise ElfError(self._n, - 'unknown string "%s"' % self.st_name) - return offset - - -class ElfSyminfo(ElfType): - """A representation of an ELF Syminfo type. - - YAML tag: !Syminfo - """ - - fields = [ - ('si_boundto', do_encode(elf_syminfo_boundto_types), "H", "H"), - ('si_flags', do_flags(elf_syminfo_flags), "H", "H") - ] - - def __init__(self, syminfo, node): - ElfType.__init__(self, syminfo, node) - - -class ElfVerdaux(ElfType): - """A representation of an ELF Verdaux type.""" - - fields = [ - ('vda_name', do_long, "I", "I"), - ('vda_next', do_long, "I", "I") - ] - - def __init__(self, verdaux, node): - ElfType.__init__(self, verdaux, node) - - -class ElfVerdef(ElfType): - """A representation of an ELF Verdef type.""" - - fields = [ - ('vd_version', do_long, "H", "H"), - ('vd_flags', do_long, "H", "H"), - ('vd_ndx', do_long, "H", "H"), - ('vd_cnt', do_long, "H", "H"), - ('vd_hash', do_long, "I", "I"), - ('vd_aux', do_long, "I", "I"), - ('vd_next', do_long, "I", "I") - ] - - def __init__(self, verdef, node): - ElfType.__init__(self, verdef, node) - - -class ElfVernaux(ElfType): - """A representation of an ELF Vernaux type.""" - - fields = [ - ('vna_hash', do_long, "I", "I"), - ('vna_flags', do_long, "H", "H"), - ('vna_other', do_long, "H", "H"), - ('vna_name', do_long, "I", "I"), - ('vna_next', do_long, "I", "I") - ] - - def __init__(self, vernaux, node): - ElfType.__init__(self, vernaux, node) - -class ElfVerneed(ElfType): - """A representation of an ELF Verneed type.""" - - fields = [ - ('vn_version', do_long, "H", "H"), - ('vn_cnt', do_long, "H", "H"), - ('vn_file', do_long, "I", "I"), - ('vn_aux', do_long, "I", "I"), - ('vn_next', do_long, "I", "I") - ] - - def __init__(self, verneed, node): - ElfType.__init__(self, verneed, node) - - -# -# Aggregates -# - -class ElfPhdrTable: - """A representation of an ELF Program Header Table. - - A program header table is a list of program header entry sections. - """ - - def __init__(self, phdr): - """Initialize a program header table object. - - Argument 'phdr' is a list of parsed ElfPhdr objects. - """ - - self.pht_data = [] - for ph in phdr: - if type(ph) == types.DictType: - ph = ElfPhdr(ph) - elif not isinstance(ph, ElfPhdr): - raise ElfError(ph.node, - "Program Header Table " - "contains non header data.") - self.pht_data.append(ph) - - def bits(self, formatchar, elfclass): - """Return the file representation of the Phdr table.""" - - s = "" - for d in self.pht_data: - s += d.bits(formatchar, elfclass) - return s - - def __len__(self): - """Return the number of program header table entries.""" - - return len(self.pht_data) - - def __iter__(self): - """Return an iterator for traversing Phdr entries.""" - - return self.pht_data.__iter__() - - -class ElfSectionList: - """A list of ELF sections.""" - - def __init__(self, shlist): - """Initialize an ELF section list. - - Argument 'shlist' is a list of parser ElfSection - objects. - """ - - self.shl_sections = shlist - self.shl_sectionnames = [] - self.shl_nentries = len(shlist) - - for sh in shlist: - if not isinstance(sh, ElfSection): - raise ElfError(None, - """Section 'sections' contains - unrecognized data.""") - if sh.sh_index is not None: - if self.shl_nentries <= sh.sh_index: - self.shl_nentries = sh.sh_index + 1 - self.shl_sectionnames.append((sh.sh_name, sh.sh_index)) - if sh.sh_type == SHT_STRTAB: # a string table - sh.make_strtab() - - def __len__(self): - """Return the number of ELF sections.""" - - return len(self.shl_sections) - - def __iter__(self): - """Iterate through ELF sections.""" - - return self.shl_sections.__iter__() - - def __getitem__(self, ind): - """Retrieve the ELF section at index 'ind'.""" - - try: - return self.shl_sections[ind] - except IndexError: - for sh in self.shl_sections: - if sh.sh_index == ind: - return sh - raise IndexError, "no section at index %d" % ind - - def layout(self, offset, elf): - """Compute the layout for section.""" - - if len(self.shl_sections) == 0: - return 0 - for sh in self.shl_sections: # layout sections - offset = sh.layout(offset, elf) - return offset - - def get_index(self, name): - """Return the section index for section 'name', or 'None'.""" - - c = 0 - for (n,i) in self.shl_sectionnames: - if n == name: - if i is None: - return c - else: - return i - c += 1 - return None - - def get_shnum(self): - """Retrieve the number of sections in this container.""" - - return self.shl_nentries - - def set_extended_shnum(self, shnum): - """Set the extended section number.""" - - sh = self.shl_sections[0] - sh.sh_size = shnum - - def set_extended_shstrndx(self, strndx): - """Set the extended string table index.""" - - sh = self.shl_sections[0] - sh.sh_link = strndx - -class Elf: - """A representation of an ELF object.""" - - def __init__(self, yamldict, ehdr, phdrtab, sections): - self._d = yamldict - self._n = None - self.elf_ehdr = ehdr - self.elf_phdrtab = phdrtab - self.elf_sections = sections - self.elf_fillchar = long(get(yamldict, 'elf_fillchar', - defaults['elf_fillchar'])) - def byteorder(self): - """Return the byteorder for this ELF object.""" - return self.elf_ehdr.e_ident.ei_data - - def elfclass(self): - """Return the ELF class for this ELF object.""" - return self.elf_ehdr.e_ident.ei_class - - def formatchar(self): - """Return the format character corresponding to the ELF - byteorder.""" - - if self.byteorder() == ELFCLASS32: - return "<" - else: - return ">" - - def layout(self): - """Compute a file layout for this ELF object and update - internal data structures.""" - - self.elf_ehdr.layout(0, self) - - - def section_name_index(self, name): - """Compute index of section 'name' in the section name string table.""" - - strndx = self.elf_ehdr.e_shstrndx - if strndx is None: - return None - return self.elf_sections[strndx].string_to_index(name) - - def write(self, fn): - """Write out the file representation of an ELF object. - - Argument 'fn' denotes the destination.""" - - of = file(fn, 'w') - - formatchar = self.formatchar() - elfclass = self.elfclass() - - # Write out the header - of.write(self.elf_ehdr.bits(formatchar, elfclass)) - - # Write out the program header table if present - if self.elf_phdrtab: - self.reposition(of, self.elf_ehdr.e_phoff) - for ph in self.elf_phdrtab: - of.write(ph.bits(formatchar, elfclass)) - # Write out the sections - if self.elf_sections: - # First the contents of the sections - for sh in self.elf_sections: - if sh.sh_type == SHT_NULL or sh.sh_type == SHT_NOBITS: - continue - self.reposition(of, sh.sh_offset) - of.write(sh.databits(formatchar, elfclass)) - # Then the header table - self.reposition(of, self.elf_ehdr.e_shoff) - for sh in self.elf_sections: - if sh.sh_index: - new_offset = sh.sh_index * self.elf_ehdr.e_shentsize + \ - self.elf_ehdr.e_shoff - self.reposition(of, new_offset) - of.write(sh.headerbits(formatchar, elfclass)) - of.close() - - def reposition(self, f, offset): - """Reposition file `f' to offset `offset', filling gaps with - the configured fill character as needed.""" - - pos = f.tell() - if offset == pos: - return - if offset < pos or (offset > pos and self.elf_fillchar == 0): - f.seek(offset, 0) - return - s = ("%c" % self.elf_fillchar) * (offset - pos) - f.write(s) - - -# -# YAML Parser configuration and helpers. -# - -yaml_tags = [ - (u'!Cap', ElfCap), - (u'!Dyn', ElfDyn), - (u'!Ehdr', ElfEhdr), - (u'!Ident', ElfEhdrIdent), - (u'!Move', ElfMove), - (u'!Note', ElfNote), - (u'!Phdr', ElfPhdr), - (u'!Rel', ElfRel), - (u'!Rela', ElfRela), - (u'!Section', ElfSection), - (u'!Sym', ElfSym), - (u'!Syminfo', ElfSyminfo), - (u'!Verdaux', ElfVerdaux), - (u'!Verdef', ElfVerdef), - (u'!Vernaux', ElfVernaux), - (u'!Verneed', ElfVerneed) ] - -def init_parser(): - for t in yaml_tags: - yaml.add_constructor(t[0], # lamdba: loader, node, class - lambda l, n, c=t[1]: \ - c(l.construct_mapping(n, deep=True), n)) - -def make_elf(yd): - """Convert a YAML description `yd' of an ELF file into an - ELF object.""" - - try: - eh = yd['ehdr'] - except KeyError: - eh = ElfEhdr({}, None) - - phdrtab = ElfPhdrTable(get(yd, 'phdrtab', {})) - sectionlist = ElfSectionList(get(yd, 'sections', {})) - - return Elf(yd, eh, phdrtab, sectionlist) - - -# -# MAIN -# - -if __name__ == '__main__': - parser = optparse.OptionParser(usage=usage, version=version, - description=description) - parser.add_option("-o", "--output", dest="output", - help="write output to FILE [default: %default]", - metavar="FILE", default="a.out") - parser.add_option("-N", "--no-shstrtab", dest="do_shstrtab", - help="do not create a string table section for " - "section names if missing", action="store_false", - metavar="BOOLEAN", default=True) - parser.add_option("-U", "--no-shnundef", dest="do_shnundef", - help="do not create a section header for index " - "SHN_UNDEF if missing", action="store_false", - metavar="BOOLEAN", default=True) - - (options, args) = parser.parse_args() - - if len(args) > 1: - parser.error("only one input-file must be specified") - - try: - if args: - stream = file(args[0], 'r') - else: - stream = sys.stdin - except IOError, x: - parser.error("cannot open stream: %s" % x) - - init_parser() - - try: - elf = make_elf(yaml.load(stream, Loader=yaml.Loader)) - elf.layout() - elf.write(options.output) - except yaml.YAMLError, x: - parser.error("cannot parse stream: %s" % x) - except ElfError, msg: - print msg - sys.exit(1) - - - -# Local Variables: -# mode: python -# tab-width: 4 -# py-indent-offset: 4 -# End: diff --git a/contrib/elftoolchain/test/libelf/tset/common/Makefile b/contrib/elftoolchain/test/libelf/tset/common/Makefile deleted file mode 100644 index 5f3a8d80..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -YAML_FILES= check_elf \ - getclass \ - ehdr \ - ehdr-malformed-1 \ - fsize \ - newehdr newscn newscn2 \ - phdr \ - rdwr rdwr1 rdwr2 \ - shdr \ - u1 \ - versioning \ - xlate xscn-1 xscn-2 xscn-3 \ - zerosection - -# Generate ELF binary files from their YAML desciptions. -.for f in ${YAML_FILES} -. for e in msb lsb -. for c in 32 64 -_YAML_ELF+= ${f}.${e}${c} -${f}.${e}${c}: ${f}.yaml - _E=`echo ${e} | tr '[a-z]' '[A-Z]'`; _C=`echo ${c} | tr '[a-z]' '[A-Z]'`; \ - cat ${.CURDIR}/${f}.yaml | sed -e "s/ELFDATANONE/ELFDATA2$${_E}/g" \ - -e "s/ELFCLASSNONE/ELFCLASS$${_C}/g" | \ - ${TS_ROOT}/bin/elfc -o ${.TARGET} -. endfor -. endfor -.endfor - -CLEANFILES+= ${_YAML_ELF} - -all: ${_YAML_ELF} - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/common/check_elf.yaml b/contrib/elftoolchain/test/libelf/tset/common/check_elf.yaml deleted file mode 100644 index eb466d0e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/check_elf.yaml +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_data: ELFDATANONE - ei_osabi: ELFOSABI_FREEBSD - ei_abiversion: 1 - ei_class: ELFCLASSNONE - e_type: ET_REL - e_machine: EM_NONE - e_version: EV_CURRENT - e_flags: [2, 1] - e_entry: 0xdeadbeef - e_phoff: 0 - e_shoff: 0 diff --git a/contrib/elftoolchain/test/libelf/tset/common/ehdr-malformed-1.yaml b/contrib/elftoolchain/test/libelf/tset/common/ehdr-malformed-1.yaml deleted file mode 100644 index d7c000f4..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/ehdr-malformed-1.yaml +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident # e_ident[] members - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - ei_osabi: ELFOSABI_SYSV - ei_abiversion: 0 - # other members - e_type: 0xFF03 - e_machine: 0x42 - e_version: 0xFFFFFFFF - e_entry: 0xFFFFFFFFFFFFFFFF - e_phoff: 0xFFFFFFFFFFFFFFFF - e_shoff: 0xFFFFFFFFFFFFFFFF - e_flags: [ 64, 8, 2, 1] - e_ehsize: 62 - e_phentsize: 228 - e_phnum: 0 - e_shentsize: 8192 - e_shnum: 0 - e_shstrndx: 0 diff --git a/contrib/elftoolchain/test/libelf/tset/common/ehdr.yaml b/contrib/elftoolchain/test/libelf/tset/common/ehdr.yaml deleted file mode 100644 index a86579a9..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/ehdr.yaml +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident # e_ident[] members - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - ei_osabi: ELFOSABI_FREEBSD - ei_abiversion: 1 - # other members - e_type: ET_REL - e_machine: 0x42 - e_version: EV_CURRENT - e_entry: 0xF0F0F0F0 - e_phoff: 0x0E0E0E0E - e_shoff: 0xD0D0D0D0 - e_flags: [ 64, 8, 2, 1] - e_ehsize: 0x0A0A - e_phentsize: 0xB0B0 - e_phnum: 0x0C0C - e_shentsize: 0xD0D0 - e_shnum: 0x0E0E - e_shstrndx: 0xF0F0 diff --git a/contrib/elftoolchain/test/libelf/tset/common/ehdr_template.m4 b/contrib/elftoolchain/test/libelf/tset/common/ehdr_template.m4 deleted file mode 100644 index 3f4e7df7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/ehdr_template.m4 +++ /dev/null @@ -1,417 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -/* - * Boilerplate for testing the *_getehdr and *_newehdr APIs. - * - * This template is to be used as follows: - * - * `define(`TS_EHDRFUNC',`_getehdr')' (or `_newehdr') - * `define(`TS_EHDRSZ',`32')' (or `64') - * `include(`ehdr_template.m4')' - */ - -ifdef(`TS_EHDRFUNC',`',`errprint(`TS_EHDRFUNC was not defined')m4exit(1)') -ifdef(`TS_EHDRSZ',`',`errprint(`TS_EHDRSZ was not defined')m4exit(1)') -define(`TS_OTHERSIZE',`ifelse(TS_EHDRSZ,32,64,32)') - -define(`TS_ICFUNC',`elf'TS_EHDRSZ`'TS_EHDRFUNC) -define(`TS_EHDR',`Elf'TS_EHDRSZ`_Ehdr') -define(`TS_ICNAME',TS_ICFUNC) -define(`TS_ELFCLASS',`ELFCLASS'TS_EHDRSZ) - -IC_REQUIRES_VERSION_INIT(); - -/* - * Checks for the contents of an Ehdr structure. The values here must - * match that in the "ehdr.yaml" file in the test case directory. - */ - -#define CHECK_SIGFIELD(E,I,V) do { \ - if ((E)->e_ident[EI_##I] != (V)) \ - TP_FAIL(#I " value 0x%x != " \ - "expected 0x%x.", (E)->e_ident[EI_##I], \ - (V)); \ - } while (0) - -#define CHECK_SIG(E,ED,EC,EV,EABI,EABIVER) do { \ - if ((E)->e_ident[EI_MAG0] != ELFMAG0 || \ - (E)->e_ident[EI_MAG1] != ELFMAG1 || \ - (E)->e_ident[EI_MAG2] != ELFMAG2 || \ - (E)->e_ident[EI_MAG3] != ELFMAG3) \ - TP_FAIL("incorrect ELF signature " \ - "(%x %x %x %x).", (E)->e_ident[EI_MAG0], \ - (E)->e_ident[EI_MAG1], (E)->e_ident[EI_MAG2],\ - (E)->e_ident[EI_MAG3]); \ - CHECK_SIGFIELD(E,CLASS, EC); \ - CHECK_SIGFIELD(E,DATA, ED); \ - CHECK_SIGFIELD(E,VERSION, EV); \ - CHECK_SIGFIELD(E,OSABI, EABI); \ - CHECK_SIGFIELD(E,ABIVERSION, EABIVER); \ - } while (0) - - -#define CHECK_FIELD(E,FIELD,VALUE) do { \ - if ((E)->e_##FIELD != (VALUE)) \ - TP_FAIL("field \"%s\" actual 0x%jx " \ - "!= expected 0x%jx.", #FIELD, \ - (uintmax_t) (E)->e_##FIELD, \ - (uintmax_t) (VALUE)); \ - } while (0) - -#define CHECK_EHDR(E,ED,EC) do { \ - CHECK_SIG(E,ED,EC,EV_CURRENT,ELFOSABI_FREEBSD,1); \ - CHECK_FIELD(E,type, ET_REL); \ - CHECK_FIELD(E,machine, 0x42); \ - CHECK_FIELD(E,version, EV_CURRENT); \ - CHECK_FIELD(E,entry, 0xF0F0F0F0); \ - CHECK_FIELD(E,phoff, 0x0E0E0E0E); \ - CHECK_FIELD(E,shoff, 0xD0D0D0D0); \ - CHECK_FIELD(E,flags, 64+8+2+1); \ - CHECK_FIELD(E,ehsize, 0x0A0A); \ - CHECK_FIELD(E,phentsize,0xB0B0); \ - CHECK_FIELD(E,phnum, 0x0C0C); \ - CHECK_FIELD(E,shentsize,0xD0D0); \ - CHECK_FIELD(E,shnum, 0x0E0E); \ - CHECK_FIELD(E,shstrndx, 0xF0F0); \ - } while (0) - -/* - * Check behaviour when passed a NULL argument. - */ - -void -tcNullArgument(void) -{ - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'(NULL) fails with ELF_E_ARGUMENT."); - - if (TS_ICFUNC`'(NULL) != NULL || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} - -/* - * Check behaviour when passed a pointer to a non-ELF object. - */ - -static char data[] = "This isn't an ELF file."; - -void -tcNonElfData(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'(non-ELF) fails with ELF_E_ARGUMENT."); - - TS_OPEN_MEMORY(e, data); - - if (TS_ICFUNC`'(e) != NULL || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); -} - - -/* - * Check behaviour when an object with a malformed ELF header. - */ - -static char badelftemplate[EI_NIDENT+1] = { - [EI_MAG0] = '\177', - [EI_MAG1] = 'E', - [EI_MAG2] = 'L', - [EI_MAG3] = 'F', - [EI_CLASS] = ELFCLASS64, - [EI_DATA] = ELFDATA2MSB, - [EI_NIDENT] = '@' -}; - -/* - * Verify that the version number is checked before other kinds - * of errors. - */ - -void -tcBadElfVersion(void) -{ - int err, result; - Elf *e; - TS_EHDR *eh; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'() with an unsupported version " - "fails with ELF_E_VERSION."); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - - badelf[EI_VERSION] = EV_NONE; - badelf[EI_CLASS] = TS_ELFCLASS; - - TS_OPEN_MEMORY(e, badelf); - - result = TET_PASS; - - if ((eh = TS_ICFUNC`'(e)) != NULL || - (err = elf_errno()) != ELF_E_VERSION) - TP_FAIL("error=%d eh=%p.", err, (void *) eh); - - (void) elf_end(e); - - tet_result(result); -} - -void -tcBadElf(void) -{ - int err, result; - Elf *e; - TS_EHDR *eh; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'() on a malformed ELF file " - "fails with ELF_E_HEADER."); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - badelf[EI_VERSION] = EV_CURRENT; - badelf[EI_CLASS] = TS_ELFCLASS; - - TS_OPEN_MEMORY(e, badelf); - - result = TET_PASS; - if ((eh = TS_ICFUNC`'(e)) != NULL || - (err = elf_errno()) != ELF_E_HEADER) - TP_FAIL("error=%d eh=%p.", err, (void *) eh); - - (void) elf_end(e); - - tet_result(result); -} - -/* - * Verify non-NULL return for a legal ELF object. - */ - -undefine(`FN') -define(`FN',` -void -tcValidElfNonNull$1(void) -{ - int fd; - Elf *e; - TS_EHDR *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'($1) on valid EHDR returns non-NULL."); - - TS_OPEN_FILE(e,"ehdr.TOLOWER($1)`'TS_EHDRSZ",ELF_C_READ,fd); - - if ((eh = TS_ICFUNC`'(e)) == NULL) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); - (void) close(fd); -}') - -FN(`LSB') -FN(`MSB') - -/* - * Verify accuracy of the return header. - */ - -define(`FN',` -void -tcValidElf$1(void) -{ - int fd, result; - Elf *e; - TS_EHDR *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'($1) returns the correct $1 ehdr."); - - TS_OPEN_FILE(e,"ehdr.TOLOWER($1)`'TS_EHDRSZ",ELF_C_READ,fd); - - if ((eh = TS_ICFUNC`'(e)) == NULL) { - TP_UNRESOLVED("TS_ICNAME`'() failed."); - goto done; - } - - result = TET_PASS; - - CHECK_EHDR(eh, ELFDATA2$1, TS_ELFCLASS); - -done: - (void) elf_end(e); - (void) close(fd); - - tet_result(result); - -}') - -FN(`LSB') -FN(`MSB') - -/* - * Verify duplicate handling. - */ - -undefine(`FN') -define(`FN',` -void -tcElfDup$1(void) -{ - int fd, result; - Elf *e; - TS_EHDR *eh1, *eh2; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("Successful calls to TS_ICNAME`'($1) return " - "identical pointers."); - - TS_OPEN_FILE(e,"ehdr.TOLOWER($1)`'TS_EHDRSZ",ELF_C_READ,fd); - - if ((eh1 = TS_ICFUNC`'(e)) == NULL || - (eh2 = TS_ICFUNC`'(e)) == NULL) { - TP_UNRESOLVED("TS_ICNAME`'() failed."); - tet_result(result); - return; - } - - tet_result(eh1 == eh2 ? TET_PASS : TET_FAIL); - - (void) elf_end(e); - (void) close(fd); -}') - -FN(`LSB') -FN(`MSB') - -/* - * Verify the error reported for incorrectly sized ELF objects. - */ - -undefine(`FN') -define(`FN',` -void -tcElfWrongSize$1(void) -{ - int error, fd, result; - Elf *e; - char *fn; - TS_EHDR *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'($1.TS_OTHERSIZE) fails with ELF_E_CLASS."); - - result = TET_PASS; - - fn = "ehdr.TOLOWER($1)`'TS_OTHERSIZE"; - TS_OPEN_FILE(e,fn,ELF_C_READ,fd); - if ((eh = TS_ICFUNC`'(e)) != NULL || - (error = elf_errno()) != ELF_E_CLASS) - TP_FAIL("\"%s\" opened (error %d).", fn, error); - - (void) elf_end(e); - (void) close(fd); - - tet_result(result); - -}') - -FN(`LSB') -FN(`MSB') - -/* - * Verify that malformed ELF objects are rejected. - */ - -undefine(`FN') -define(`FN',` -void -tcMalformed1$1(void) -{ - int error, fd, result; - Elf *e; - char *fn; - TS_EHDR *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME with a malformed ELF header " - "fails with ELF_E_HEADER."); - - e = NULL; - fd = -1; - fn = "ehdr-malformed-1.TOLOWER($1)`'TS_EHDRSZ"; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, fn, ELF_C_READ, fd, goto done;); - - error = 0; - if ((eh = TS_ICFUNC`'(e)) != NULL) { - TP_FAIL("\"%s\" TS_ICNAME`'() succeeded.", fn); - goto done; - } else if ((error = elf_errno()) != ELF_E_HEADER) { - TP_FAIL("\"%s\" incorrect error (%d).", fn, error); - goto done; - } - - result = TET_PASS; - -done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(`LSB') -FN(`MSB') diff --git a/contrib/elftoolchain/test/libelf/tset/common/elf_flag.m4 b/contrib/elftoolchain/test/libelf/tset/common/elf_flag.m4 deleted file mode 100644 index a55b3482..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/elf_flag.m4 +++ /dev/null @@ -1,184 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * M4 macros for use with the elf_flag*() APIs. - */ - -divert(-1) - -define(`_TP_FLAG_FN',` -void -$1(void) -{ - int result; -$2 -$3 -$4 - tet_result(result); -}') - -define(`TP_FLAG_NULL',`_TP_FLAG_FN(`tcArgsNull',` - int error, ret; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("A NULL first parameter returns zero.");',` - result = TET_PASS; - if ((ret = $1(NULL, ELF_C_SET, ELF_F_DIRTY)) != 0 || - (error = elf_errno()) != ELF_E_NONE) - TP_FAIL("ret=%d, error=%d \"%s\".", ret, error, - elf_errmsg(error));',`')') - -/* - * TP_FLAG_ILLEGAL_CMD(FN,ARG) - * - * Check that illegal `cmd' values are rejected. - */ -define(`TP_FLAG_ILLEGAL_CMD',`_TP_FLAG_FN(`tcArgsIllegalCmd',` - int error, ret; - Elf_Cmd cmd; - _TP_DECLARATIONS - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("Illegal CMD values are rejected."); - - _TP_PROLOGUE',` - result = TET_PASS; - for (cmd = ELF_C_NULL-1; cmd <= ELF_C_NUM; cmd++) { - if (cmd == ELF_C_CLR || cmd == ELF_C_SET) - continue; - if ((ret = $1($2, ELF_C_NUM, ELF_F_DIRTY)) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("cmd=%d ret=%d, error=%d \"%s\".", cmd, ret, - error, elf_errmsg(error)); - goto done; - } - }',`_TP_EPILOGUE')') - -/* - * TP_FLAG_SET(FN,ARG) - * - * Check that an ELF_C_SET works. - */ -define(`TP_FLAG_SET',`_TP_FLAG_FN(`tcArgsSet',` - int error, flag; - _TP_DECLARATIONS - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("ELF_C_SET works correctly."); - - _TP_PROLOGUE',` - result = TET_PASS; - - if ((flag = $1($2, ELF_C_SET, ELF_F_DIRTY)) != ELF_F_DIRTY) { - error = elf_errno(); - TP_FAIL("flag=0x%x, expected 0x%x, error=%d \"%s\".", flag, - ELF_F_DIRTY, error, elf_errmsg(error)); - goto done; - }',`_TP_EPILOGUE')') - -/* - * TP_FLAG_CLR(FN,ARG) - * - * Check that an ELF_C_CLR works. - */ -define(`TP_FLAG_CLR',`_TP_FLAG_FN(`tcArgsClr',` - int error, flag; - _TP_DECLARATIONS - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("ELF_C_CLR works correctly."); - - _TP_PROLOGUE',` - result = TET_PASS; - - (void) $1($2, ELF_C_SET, ELF_F_DIRTY); - if ((flag = $1($2, ELF_C_CLR, ELF_F_DIRTY)) != 0) { - error = elf_errno(); - TP_FAIL("flag=0x%x, error=%d \"%s\".", flag, error, - elf_errmsg(error)); - goto done; - }',`_TP_EPILOGUE')') - -/* - * TP_FLAG_ILLEGAL_CMD(FN, ARG, LEGALFLAGS) - * - * Check that all flag values other than those in LEGALFLAGS are - * rejected with ELF_E_ARGUMENT. - */ -define(`TP_FLAG_ILLEGAL_FLAG',`_TP_FLAG_FN(`tcArgsIllegalFlags',` - int error, ret; - unsigned int flags; - - _TP_DECLARATIONS - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("Illegal flag values are rejected."); - - _TP_PROLOGUE',` - result = TET_PASS; - for (flags = 0x1; flags; flags <<= 1) { - if (flags & ($3)) - continue; - if ((ret = $1($2, ELF_C_SET, flags)) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("ret=%d, error=%d \"%s\".", ret, error, - elf_errmsg(error)); - goto done; - } - }',`_TP_EPILOGUE')') - -/* - * TP_FLAG_NON_ELF(FN,ARG) - * - * Check that a non-elf file is rejected. - */ -define(`TP_FLAG_NON_ELF',` -char *rawdata = "This is not an ELF file."; -_TP_FLAG_FN(`tcArgsNonElf',` - int error, ret; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("Non-ELF files are rejected."); - - TS_OPEN_MEMORY(e, rawdata);',` - result = TET_PASS; - if ((ret = $1(e, ELF_C_SET, ELF_F_DIRTY)) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("ret=%d, error=%d \"%s\".", ret, error, - elf_errmsg(error)); - }',`')') - -divert(0) diff --git a/contrib/elftoolchain/test/libelf/tset/common/elfts-compare-files.c b/contrib/elftoolchain/test/libelf/tset/common/elfts-compare-files.c deleted file mode 100644 index 7a11a138..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/elfts-compare-files.c +++ /dev/null @@ -1,125 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "tet_api.h" - -/* - * A helper function to compare a generated file against - * a reference. - */ - -int -elfts_compare_files(const char *rfn, const char *fn) -{ - int fd, result, rfd; - struct stat sb, rsb; - char *m, *rm; - size_t c, nc; - - fd = rfd = -1; - m = rm = NULL; - result = TET_UNRESOLVED; - - if ((fd = open(fn, O_RDONLY, 0)) < 0) { - tet_printf("U: open \"%s\" failed: %s.", fn, - strerror(errno)); - goto done; - } - - if ((rfd = open(rfn, O_RDONLY, 0)) < 0) { - tet_printf("U: open \"%s\" failed: %s.", rfn, - strerror(errno)); - goto done; - } - - if (fstat(fd, &sb) < 0) { - tet_printf("U: fstat \"%s\" failed: %s.", fn, - strerror(errno)); - goto done; - } - - if (fstat(rfd, &rsb) < 0) { - tet_printf("U: fstat \"%s\" failed: %s.", rfn, - strerror(errno)); - goto done; - } - - if (sb.st_size != rsb.st_size) { - tet_printf("F: refsz(%d) != target(%d).", rsb.st_size, sb.st_size); - result = TET_FAIL; - goto done; - } - - if ((m = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, fd, - (off_t) 0)) == MAP_FAILED) { - tet_printf("U: mmap \"%s\" failed: %s.", fn, - strerror(errno)); - goto done; - } - - if ((rm = mmap(NULL, rsb.st_size, PROT_READ, MAP_SHARED, rfd, - (off_t) 0)) == MAP_FAILED) { - tet_printf("U: mmap \"%s\" failed: %s.", rfn, - strerror(errno)); - goto done; - } - - result = TET_PASS; - nc = sb.st_size; - - /* Compare bytes. */ - for (c = 0; c < nc && *m == *rm; c++, m++, rm++) - ; - if (c != nc) { - tet_printf("F: @ offset 0x%x ref[%d] != actual[%d].", c, - *rm, *m); - result = TET_FAIL; - } - - done: - if (m) - (void) munmap(m, sb.st_size); - if (rm) - (void) munmap(rm, rsb.st_size); - if (fd != -1) - (void) close(fd); - if (rfd != -1) - (void) close(rfd); - return (result); - -} diff --git a/contrib/elftoolchain/test/libelf/tset/common/elfts-copy-file.c b/contrib/elftoolchain/test/libelf/tset/common/elfts-copy-file.c deleted file mode 100644 index 03bb13ce..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/elfts-copy-file.c +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * Copyright (c) 2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "elfts.h" - -/* - * A helper function to copy a file to a temporary. Returns the name - * of the temporary file created. - */ - -#define ELFTS_BUFSIZE 4096 -#define ELFTS_NAME_TEMPLATE "elftsXXXXXXXX" - -char * -elfts_copy_file(const char *rfn, int *error) -{ - int rfd, wfd; - ssize_t nr, nw, wrem; - char buf[ELFTS_BUFSIZE], *bp, *wfn; - - *error = 0; - rfd = wfd = -1; - bp = wfn = NULL; - - if ((wfn = malloc(sizeof(ELFTS_NAME_TEMPLATE))) == NULL) - return NULL; - - (void) strcpy(wfn, ELFTS_NAME_TEMPLATE); - - if ((wfd = mkstemp(wfn)) == -1) - goto error; - - if ((rfd = open(rfn, O_RDONLY)) == -1) - goto error; - - /* - * Copy the bits over. - * - * Explicitly check for the POSIX `EINTR` error return so that - * the code works correctly non-BSD systems. - */ - for (;;) { - if ((nr = read(rfd, buf, sizeof(buf))) < 0) { - if (errno == EINTR) - continue; - goto error; - } - - if (nr == 0) - break; /* EOF */ - - for (bp = buf, wrem = nr; wrem > 0; bp += nw, wrem -= nw) { - if ((nw = write(wfd, bp, wrem)) < 0) { - if (errno == EINTR) - continue; - goto error; - } - } - } - - (void) close(rfd); - (void) close(wfd); - return (wfn); - - error: - *error = errno; - - if (wfd) - (void) close(wfd); - if (rfd) - (void) close(rfd); - if (wfn) { - (void) unlink(wfn); - free(wfn); - } - return (NULL); -} - diff --git a/contrib/elftoolchain/test/libelf/tset/common/elfts-initversion.c b/contrib/elftoolchain/test/libelf/tset/common/elfts-initversion.c deleted file mode 100644 index ba3ebe90..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/elfts-initversion.c +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include "tet_api.h" - -/* - * A TET startup() function for test cases that need elf_version() - * to be called before each invocable component. - */ - -int elfts_tcinit = TET_PASS; - -void -elfts_init_version(void) -{ - if (elf_version(EV_CURRENT) != EV_CURRENT) { - tet_printf("setup: elf_version() failed: %s", - elf_errmsg(-1)); - elfts_tcinit = TET_UNRESOLVED; - } -} diff --git a/contrib/elftoolchain/test/libelf/tset/common/elfts-openfile.c b/contrib/elftoolchain/test/libelf/tset/common/elfts-openfile.c deleted file mode 100644 index aa0a4793..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/elfts-openfile.c +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -/* - * A TET startup() function for test cases that need elf_version() - * to be called before each invocable component. - */ - -Elf * -elfts_open_file(const char *fn, Elf_Cmd cmd, int *fdp) -{ - Elf *e; - int fd, mode; - - switch (cmd) { - case ELF_C_WRITE: - mode = O_WRONLY | O_CREAT; - break; - case ELF_C_READ: - mode = O_RDONLY; - break; - case ELF_C_RDWR: - mode = O_RDWR; - break; - default: - tet_printf("internal error: unknown cmd=%d.", cmd); - return (NULL); - } - - if ((fd = open(fn, mode, 0644)) < 0) { - tet_printf("setup: open \"%s\" failed: %s.", fn, - strerror(errno)); - return (NULL); - } - - if (fdp) - *fdp = fd; - - if ((e = elf_begin(fd, cmd, NULL)) == NULL) { - tet_printf("setup: elf_begin(%s) failed: %s.", fn, - elf_errmsg(-1)); - tet_result(TET_UNRESOLVED); - } - - return (e); -} diff --git a/contrib/elftoolchain/test/libelf/tset/common/elfts.h b/contrib/elftoolchain/test/libelf/tset/common/elfts.h deleted file mode 100644 index 94862513..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/elfts.h +++ /dev/null @@ -1,118 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#ifndef _ELF_TS_H_ -#define _ELF_TS_H_ 1 - -/* - * Common definitions used by test cases. - */ - -/* Invocable component requires elf_version() to be set. */ -#define IC_REQUIRES_VERSION_INIT() \ - extern int elfts_tcinit; \ - void (*tet_startup)(void) = elfts_init_version - -/* Test purpose needs to check for initialization success */ -#define TP_CHECK_INITIALIZATION() do { \ - if (elfts_tcinit != TET_PASS) { \ - tet_infoline("unresolved: test case setup " \ - "failed."); \ - tet_result(elfts_tcinit); \ - return; \ - } \ - } while (0) - -/* Treat a memory area as containing ELF data */ -#define TS_OPEN_MEMORY(E,M) do { \ - if (((E) = elf_memory((M), sizeof((M)))) == NULL) { \ - tet_infoline("unresolved: elf_memory() " \ - "failed."); \ - tet_result(TET_UNRESOLVED); \ - return; \ - } \ - } while (0) - -/* Get an ELF descriptor for a file */ -#define _TS_OPEN_FILE(E,FN,CMD,FD,ACTION) do { \ - if (((E) = elfts_open_file((FN),(CMD),&(FD))) == NULL) \ - ACTION \ - } while (0) - -#define TS_OPEN_FILE(E,FN,CMD,FD) _TS_OPEN_FILE(E,FN,CMD,FD,return;) - -#define _TS_WRITE_FILE(FN,DATA,DSZ,ACTION) do { \ - int _fd; \ - if ((_fd = open((FN), O_CREAT|O_WRONLY, 0666)) < 0) { \ - tet_printf("unresolved: open("FN") failed: %s.",\ - strerror(errno)); \ - ACTION \ - } \ - if (write(_fd, (DATA), (DSZ)) != (DSZ)) { \ - tet_printf("unresolved: write("FN") failed: %s.",\ - strerror(errno)); \ - ACTION \ - } \ - (void) close(_fd); \ - } while (0) - -#define _TS_READ_FILE(FN,DATA,DSZ,ACTION) do { \ - int _fd; \ - size_t _rsz, _sz; \ - struct stat _sb; \ - if ((_fd = open((FN), O_RDONLY, 0)) < 0) { \ - tet_printf("unresolved: open("FN") failed: %s.", \ - strerror(errno)); \ - ACTION \ - } \ - if (fstat(_fd, &_sb) < 0) { \ - tet_printf("unresolved: fstat("FN") failed: %s.", \ - strerror(errno)); \ - ACTION \ - } \ - if ((DSZ) < _sb.st_size) \ - _sz = (DSZ); \ - else \ - _sz = _sb.st_size; \ - if ((_rsz = read(_fd, (DATA), _sz)) != _sz) { \ - tet_printf("unresolved: read("FN") failed: %s.", \ - strerror(errno)); \ - ACTION \ - } \ - (void) close(_fd); \ - } while (0) - -#define TS_NEWFILE "new.file" - -void elfts_init_version(void); - -Elf *elfts_open_file(const char *_fn, Elf_Cmd _cmd, int *_fdp); -int elfts_compare_files(const char *_reffn, const char *fn); -char *elfts_copy_file(const char *_fn, int *_error); - -#endif /* _LIBELF_TS_H_ */ diff --git a/contrib/elftoolchain/test/libelf/tset/common/fsize.yaml b/contrib/elftoolchain/test/libelf/tset/common/fsize.yaml deleted file mode 100644 index eb466d0e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/fsize.yaml +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_data: ELFDATANONE - ei_osabi: ELFOSABI_FREEBSD - ei_abiversion: 1 - ei_class: ELFCLASSNONE - e_type: ET_REL - e_machine: EM_NONE - e_version: EV_CURRENT - e_flags: [2, 1] - e_entry: 0xdeadbeef - e_phoff: 0 - e_shoff: 0 diff --git a/contrib/elftoolchain/test/libelf/tset/common/gelf_ehdr_template.h b/contrib/elftoolchain/test/libelf/tset/common/gelf_ehdr_template.h deleted file mode 100644 index 3db22459..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/gelf_ehdr_template.h +++ /dev/null @@ -1,165 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -/* - * Boilerplate for testing gelf_getehdr() and gelf_newehdr(). - * - * Usage: - * - * For gelf_getehdr() define: - * #define TC_ICFUNC(E,V) gelf_getehdr(E,V) - * For gelf_newehdr() define: - # #define TC_ICFUNC(E,V) - * #include "gelf_getehdr_template.c" - */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * The values here must match those in the "ehdr.yaml" file. - */ - -#define CHECK_SIGFIELD(E,I,V) do { \ - if ((E)->e_ident[EI_##I] != (V)) { \ - tet_printf("fail: " #I " value 0x%x != " \ - "expected 0x%x.", (E)->e_ident[EI_##I], \ - (V)); \ - result = TET_FAIL; \ - } \ - } while (0) - -#define CHECK_SIG(E,ED,EC,EV,EABI,EABIVER) do { \ - if ((E)->e_ident[EI_MAG0] != ELFMAG0 || \ - (E)->e_ident[EI_MAG1] != ELFMAG1 || \ - (E)->e_ident[EI_MAG2] != ELFMAG2 || \ - (E)->e_ident[EI_MAG3] != ELFMAG3) { \ - tet_printf("fail: incorrect ELF signature " \ - "(%x %x %x %x).", (E)->e_ident[EI_MAG0], \ - (E)->e_ident[EI_MAG1], (E)->e_ident[EI_MAG2],\ - (E)->e_ident[EI_MAG3]); \ - result = TET_FAIL; \ - } \ - CHECK_SIGFIELD(E,CLASS, EC); \ - CHECK_SIGFIELD(E,DATA, ED); \ - CHECK_SIGFIELD(E,VERSION, EV); \ - CHECK_SIGFIELD(E,OSABI, EABI); \ - CHECK_SIGFIELD(E,ABIVERSION, EABIVER); \ - } while (0) - - -#define CHECK_FIELD(E,FIELD,VALUE) do { \ - if ((E)->e_##FIELD != (VALUE)) { \ - tet_printf("fail: field \"%s\" actual 0x%jx " \ - "!= expected 0x%jx.", #FIELD, \ - (uintmax_t) (E)->e_##FIELD, \ - (uintmax_t) (VALUE)); \ - tet_result(TET_FAIL); \ - return; \ - } \ - } while (0) - -#define CHECK_EHDR(E,ED,EC) do { \ - CHECK_SIG(E,ED,EC,EV_CURRENT,ELFOSABI_FREEBSD,1); \ - CHECK_FIELD(E,type, ET_REL); \ - CHECK_FIELD(E,machine, 0x42); \ - CHECK_FIELD(E,version, EV_CURRENT); \ - CHECK_FIELD(E,entry, 0xF0F0F0F0); \ - CHECK_FIELD(E,phoff, 0x0E0E0E0E); \ - CHECK_FIELD(E,shoff, 0xD0D0D0D0); \ - CHECK_FIELD(E,flags, 64+8+2+1); \ - CHECK_FIELD(E,ehsize, 0x0A0A); \ - CHECK_FIELD(E,phentsize,0xB0B0); \ - CHECK_FIELD(E,phnum, 0x0C0C); \ - CHECK_FIELD(E,shentsize,0xD0D0); \ - CHECK_FIELD(E,shnum, 0x0E0E); \ - CHECK_FIELD(E,shstrndx, 0xF0F0); \ - } while (0) - -#define COMPARE_SIG(FN,H1,H2) do { \ - if (memcmp(H1.e_ident,H2.e_ident,EI_NIDENT) != 0) { \ - tet_printf("fail: \"%s\" e_ident mismatch.", \ - FN); \ - result = TET_FAIL; \ - } \ - } while (0) -#define COMPARE_FIELD(FN,H1,H2,FIELD) do { \ - if (H1.e_##FIELD != H2.e_##FIELD) { \ - tet_printf("fail: \"%s\" (e_" #FIELD ") 0x%jx " \ - "!= 0x%jx.", FN, (uintmax_t) H1.e_##FIELD, \ - (uintmax_t) H2.e_##FIELD); \ - result = TET_FAIL; \ - } \ - } while (0) -#define COMPARE_EHDR(FN,H1,H2) do { \ - COMPARE_SIG(FN,H1,H2); \ - COMPARE_FIELD(FN,H1,H2,type); \ - COMPARE_FIELD(FN,H1,H2,machine); \ - COMPARE_FIELD(FN,H1,H2,version); \ - COMPARE_FIELD(FN,H1,H2,entry); \ - COMPARE_FIELD(FN,H1,H2,phoff); \ - COMPARE_FIELD(FN,H1,H2,shoff); \ - COMPARE_FIELD(FN,H1,H2,flags); \ - COMPARE_FIELD(FN,H1,H2,ehsize); \ - COMPARE_FIELD(FN,H1,H2,phentsize); \ - COMPARE_FIELD(FN,H1,H2,phnum); \ - COMPARE_FIELD(FN,H1,H2,shentsize); \ - COMPARE_FIELD(FN,H1,H2,shnum); \ - COMPARE_FIELD(FN,H1,H2,shstrndx); \ - } while (0) - -/* - * Non-ELF data. - */ - -static char data[] = "This isn't an ELF file."; - - -/* - * A malformed (too short) ELF header. - */ - -static char badelftemplate[EI_NIDENT+1] = { - [EI_MAG0] = '\177', - [EI_MAG1] = 'E', - [EI_MAG2] = 'L', - [EI_MAG3] = 'F', - [EI_NIDENT] = '@' -}; - diff --git a/contrib/elftoolchain/test/libelf/tset/common/getclass.yaml b/contrib/elftoolchain/test/libelf/tset/common/getclass.yaml deleted file mode 100644 index eb466d0e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/getclass.yaml +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_data: ELFDATANONE - ei_osabi: ELFOSABI_FREEBSD - ei_abiversion: 1 - ei_class: ELFCLASSNONE - e_type: ET_REL - e_machine: EM_NONE - e_version: EV_CURRENT - e_flags: [2, 1] - e_entry: 0xdeadbeef - e_phoff: 0 - e_shoff: 0 diff --git a/contrib/elftoolchain/test/libelf/tset/common/getshdr.m4 b/contrib/elftoolchain/test/libelf/tset/common/getshdr.m4 deleted file mode 100644 index efda0389..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/getshdr.m4 +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * TP_NULL(CLASS) - * - * Check that a NULL argument returns ELF_E_ARGUMENT. - */ - -define(`TP_NULL',` -void -tcNull_tpNull$1(void) -{ - int error, result; - Elf$1_Shdr *sh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf$1_getshdr(NULL) fails with ELF_E_ARGUMENT."); - - result = TET_PASS; - if ((sh = elf$1_getshdr(NULL)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("sh=%p error=%d \"%s\".", (void *) sh, - error, elf_errmsg(error)); - - tet_result(result); -}') - -/* TP_CHECK_FIELD(I, SH,REF,FIELD) */ -define(`TP_CHECK_FIELD',`do { - if ($2->$4 != $3->$4) { - TP_FAIL("field[%d] \"$4\" %jd != ref %jd.", $1, - (uintmax_t) $2->$4, (uintmax_t) $3->$4); - goto done; - } - } while (0)') -/* TP_CHECK_SHDR(IND, SH, REF) */ -define(`TP_CHECK_SHDR',`do { - TP_CHECK_FIELD($1,$2,$3,sh_name); - TP_CHECK_FIELD($1,$2,$3,sh_type); - TP_CHECK_FIELD($1,$2,$3,sh_flags); - TP_CHECK_FIELD($1,$2,$3,sh_addr); - TP_CHECK_FIELD($1,$2,$3,sh_offset); - TP_CHECK_FIELD($1,$2,$3,sh_size); - TP_CHECK_FIELD($1,$2,$3,sh_link); - TP_CHECK_FIELD($1,$2,$3,sh_info); - TP_CHECK_FIELD($1,$2,$3,sh_addralign); - TP_CHECK_FIELD($1,$2,$3,sh_entsize); - } while (0)') - -/* - * TC_MAKE_REF_SHDR(CLASS) - * - * This must match the values in "shdr.yaml". - */ -define(`TC_MAKE_REF_SHDR',` -static Elf$1_Shdr RefShdr$1[] = { - /* index 0 */ - { .sh_type = SHT_NULL }, - /* index 1 : .shstrtab */ - { .sh_name = 1, .sh_type = SHT_STRTAB, .sh_flags = SHF_ALLOC | SHF_STRINGS, - .sh_offset = 256, .sh_link = ~0, .sh_info = ~0, .sh_addralign = 1, - .sh_entsize = 0, .sh_size = 38 }, - /* index 2 : SHT_PROGBITS */ - { .sh_name = 11, .sh_type = SHT_PROGBITS, .sh_flags = SHF_ALLOC, .sh_offset = 128, - .sh_link = 0xdeadc0de, .sh_info = 0xcafebabe, .sh_addralign = 8, - .sh_entsize = 0 } -}; - -#define NSHDR (sizeof(RefShdr$1)/sizeof(RefShdr$1[0])) -') - -/* - * TP_SHDR(CLASS,ENDIANNESS) - * - * Check that the Shdrs returned are valid. - */ - -define(`TP_SHDR',` -void -tcShdr_tpValid$1`'TOUPPER($2)(void) -{ - int i, fd; - Elf *e; - Elf$1_Shdr *sh, *rs; - Elf_Scn *scn; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: Check shdr contents."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - _TS_OPEN_FILE(e, "shdr.$2$1", ELF_C_READ, fd, goto done;); - - i = SHN_UNDEF; - rs = RefShdr$1; - - if ((scn = elf_getscn(e, i)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_FAIL("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - TP_CHECK_SHDR(i, sh, rs); - - while ((scn = elf_nextscn(e, scn)) != NULL) { - - i++; rs++; - - if (i >= NSHDR) { - TP_UNRESOLVED("Too many (%d) sections.", i); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_FAIL("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - TP_CHECK_SHDR(i, sh, rs); - - } - - result = TET_PASS; - if ((error = elf_errno()) != ELF_E_NONE) - TP_UNRESOLVED("error=%d \"%s\".", error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') diff --git a/contrib/elftoolchain/test/libelf/tset/common/newehdr.yaml b/contrib/elftoolchain/test/libelf/tset/common/newehdr.yaml deleted file mode 100644 index c46f1eae..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/newehdr.yaml +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE diff --git a/contrib/elftoolchain/test/libelf/tset/common/newehdr_template.m4 b/contrib/elftoolchain/test/libelf/tset/common/newehdr_template.m4 deleted file mode 100644 index 684d71cf..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/newehdr_template.m4 +++ /dev/null @@ -1,243 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -/* - * Boilerplate for testing newehdr{32,64} behaviour that is not - * common to the getehdr{32,64} functions. - */ - -define(`TS_NEWELF',`"new.elf"') - -ifdef(`TS_ICNAME',`', - `errprint(`File included before "ehdr_template.m4".')m4exit(1)') - -#define CHECK_NEWEHDR(E,VER) do { \ - if ((E)->e_ident[EI_MAG0] != ELFMAG0 || \ - (E)->e_ident[EI_MAG1] != ELFMAG1 || \ - (E)->e_ident[EI_MAG2] != ELFMAG2 || \ - (E)->e_ident[EI_MAG3] != ELFMAG3 || \ - (E)->e_ident[EI_CLASS] != TS_ELFCLASS || \ - (E)->e_ident[EI_DATA] != ELFDATANONE || \ - (E)->e_ident[EI_VERSION] != (VER) || \ - (E)->e_machine != EM_NONE || \ - (E)->e_type != ELF_K_NONE || \ - (E)->e_version != (VER)) \ - TP_FAIL("TS_ICNAME`'() header mismatch."); \ - } while (0) - -/* - * Verify that a new ehdr has the appropriate defaults. - */ - -void -tcAllocateCheckDefaults(void) -{ - TS_EHDR *eh; - Elf *e; - int fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'() allocates an ehdr with the " - "documented defaults."); - - TS_OPEN_FILE(e, TS_NEWELF, ELF_C_WRITE, fd); - - result = TET_PASS; - - if ((eh = TS_ICFUNC`'(e)) == NULL) { - TP_FAIL("TS_ICNAME`'() failed: %s.", elf_errmsg(-1)); - goto done; - } - - CHECK_NEWEHDR(eh,EV_CURRENT); - - done: - (void) elf_end(e); - (void) close(fd); - (void) unlink(TS_NEWELF); - - tet_result(result); -} - -/* - * Verify that a new ehdr is marked `dirty'. This test uses extended - * functionality in libelf. - */ - -void -tcAllocateFlagDirty(void) -{ - TS_EHDR *eh; - Elf *e; - int fd, flags, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TS_ICNAME`'() marks the new Ehdr as \"dirty\"."); - - TS_OPEN_FILE(e, TS_NEWELF, ELF_C_WRITE, fd); - - if ((eh = TS_ICFUNC`'(e)) == NULL) { - TP_UNRESOLVED("TS_ICNAME`'() failed: %s.", elf_errmsg(-1)); - goto done; - } - - flags = elf_flagehdr(e, ELF_C_CLR, 0); /* Our extension */ - - tet_result((flags & ELF_F_DIRTY) == 0 ? TET_FAIL : TET_PASS); - - done: - (void) unlink(TS_NEWELF); - (void) elf_end(e); - (void) close(fd); -} - -/* Declare fixed sizes associated with an ELF header. */ -ifelse(`TS_EHDRSZ',`32',` -#define TS_EHSIZE 52 -#define TS_PHENTSIZE 32 -#define TS_SHENTSIZE 40 -',` -#define TS_EHSIZE 64 -#define TS_PHENTSIZE 56 -#define TS_SHENTSIZE 64 -') - -define(`TS_REFELF',`newehdr') - -/* - * Verify that the correct header is written out. - */ - -define(`FN',` -void -tcUpdate$1`'TS_EHDRSZ`'(void) -{ - TS_EHDR *eh; - Elf *e; - int fd, reffd, result; - off_t offset; - size_t fsz; - void *t, *tref; - char *ref = "TS_REFELF.TOLOWER($1)`'TS_EHDRSZ"; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("the contents of the Ehdr for byteorder $1 are correct."); - - t = tref = NULL; - fd = reffd = -1; - - TS_OPEN_FILE(e, TS_NEWELF, ELF_C_WRITE, fd); - - result = TET_UNRESOLVED; - - if ((eh = TS_ICFUNC`'(e)) == NULL) { - TP_UNRESOLVED("TS_ICNAME`'() failed: %s.", elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2$1; - - /* Write out the new ehdr. */ - if ((offset = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: %s.", elf_errmsg(-1)); - goto done; - } - - /* check that the correct number of bytes were written out. */ - fsz = elf`'TS_EHDRSZ`'_fsize(ELF_T_EHDR, 1, EV_CURRENT); - - if (offset != fsz) { - TP_FAIL("elf_update() -> %d, expected %d.", offset, fsz); - goto done; - } - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - - if ((t = malloc(fsz)) == NULL) { - TP_UNRESOLVED("malloc %d bytes failed: %s.", fsz, - strerror(errno)); - goto done; - } - - if ((fd = open(TS_NEWELF, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open() failed: %s.", strerror(errno)); - goto done; - } - - if (read(fd, t, fsz) != fsz) { - TP_UNRESOLVED("read %d bytes failed: %s.", fsz, - strerror(errno)); - goto done; - } - - if ((reffd = open(ref, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open(%s) failed: %s.", ref, - strerror(errno)); - goto done; - } - - if ((tref = malloc(fsz)) == NULL) { - TP_UNRESOLVED("malloc %d bytes failed: %s.", fsz, - strerror(errno)); - goto done; - } - - if (read(reffd, tref, fsz) != fsz) { - TP_UNRESOLVED("unresolved: read \"%s\" failed: %s.", ref, - strerror(errno)); - goto done; - } - - /* Read it back in */ - result = TET_PASS; - if (memcmp(t, tref, fsz) != 0) - TP_FAIL("memcmp(" TS_NEWELF ",%s) failed.", ref); - - done: - (void) unlink(TS_NEWELF); - if (e) - (void) elf_end(e); - if (tref) - free(tref); - if (t) - free(t); - if (fd != -1) - (void) close(fd); - if (reffd != -1) - (void) close(reffd); - tet_result(result); -}') - -FN(`LSB') -FN(`MSB') diff --git a/contrib/elftoolchain/test/libelf/tset/common/newscn.yaml b/contrib/elftoolchain/test/libelf/tset/common/newscn.yaml deleted file mode 100644 index 75b868a2..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/newscn.yaml +++ /dev/null @@ -1,27 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section # index 0 - sh_type: SHT_NULL - - - !Section - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_data: - - .shstrtab - - .foobar - - - !Section - sh_name: .foobar - sh_offset: 2048 - sh_type: SHT_PROGBITS - sh_data: - - 0x01234567 - - 0x89ABCDEF diff --git a/contrib/elftoolchain/test/libelf/tset/common/newscn2.yaml b/contrib/elftoolchain/test/libelf/tset/common/newscn2.yaml deleted file mode 100644 index 4f5294e9..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/newscn2.yaml +++ /dev/null @@ -1,28 +0,0 @@ -%YAML 1.1 -# $Id$ -# -# This is the library-defined layout of the 'newscn' ELF object. ---- -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section # index 0 - sh_type: SHT_NULL - - - !Section - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_data: - - .shstrtab - - .foobar - - - !Section - sh_name: .foobar - sh_type: SHT_PROGBITS - sh_data: - - 0x01234567 - - 0x89ABCDEF diff --git a/contrib/elftoolchain/test/libelf/tset/common/phdr.yaml b/contrib/elftoolchain/test/libelf/tset/common/phdr.yaml deleted file mode 100644 index c4b2df58..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/phdr.yaml +++ /dev/null @@ -1,38 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE -# -# These values should match those in "common/phdr_template.c" -# -phdrtab: - - !Phdr - p_type: PT_NULL - p_offset: 1 - p_vaddr: 2 - p_paddr: 3 - p_filesz: 4 - p_memsz: 5 - p_flags: [ PF_X ] - p_align: 1 - - !Phdr - p_type: PT_LOPROC - p_offset: 6 - p_vaddr: 7 - p_paddr: 8 - p_filesz: 9 - p_memsz: 10 - p_flags: [ PF_R ] - p_align: 4 - - !Phdr - p_type: PT_INTERP - p_offset: 11 - p_vaddr: 12 - p_paddr: 13 - p_filesz: 14 - p_memsz: 15 - p_flags: [ PF_W ] - p_align: 8 diff --git a/contrib/elftoolchain/test/libelf/tset/common/phdr_template.c b/contrib/elftoolchain/test/libelf/tset/common/phdr_template.c deleted file mode 100644 index 1f96f7c0..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/phdr_template.c +++ /dev/null @@ -1,416 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * Boilerplate for testing the *_getphdr and *_newphdr APIs. - * - * This template is to be used as follows: - * - * #define TS_PHDRFUNC _getphdr (or _newphdr) - * #define TS_PHDRSZ 32 (or 64) - * #include "phdr_template.c" - */ - -/* Variations of __CONCAT and __STRING which expand their arguments. */ -#define __XCONCAT(x,y) __CONCAT(x,y) -#ifndef __XSTRING -#define __XSTRING(x) __STRING(x) -#endif - -#define TS_ICFUNC __XCONCAT(elf,__XCONCAT(TS_PHDRSZ,TS_PHDRFUNC)) -#define TS_PHDR __XCONCAT(Elf,__XCONCAT(TS_PHDRSZ,_Phdr)) -#define TS_ICNAME __XSTRING(TS_ICFUNC) -#define TS_ELFCLASS __XCONCAT(ELFCLASS,TS_PHDRSZ) - -#define TS_GETEHDR __XCONCAT(elf,__XCONCAT(TS_PHDRSZ,_getehdr)) -#define TS_EHDR __XCONCAT(Elf,__XCONCAT(TS_PHDRSZ,_Ehdr)) - -#define TS_NPHDR 3 /* should match "phdr.yaml" */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * Reference data for the contents of an Phdr structure. The values - * here must match that in the "phdr.yaml" file. - */ - -static TS_PHDR phdr_testdata[TS_NPHDR] = { - { - .p_type = PT_NULL, - .p_offset = 1, - .p_vaddr = 2, - .p_paddr = 3, - .p_filesz = 4, - .p_memsz = 5, - .p_flags = PF_X, - .p_align = 1 - }, - { - .p_type = PT_NULL, - .p_offset = 6, - .p_vaddr = 7, - .p_paddr = 8, - .p_filesz = 9, - .p_memsz = 10, - .p_flags = PF_R, - .p_align = 4 - }, - { - .p_type = PT_INTERP, - .p_offset = 11, - .p_vaddr = 12, - .p_paddr = 13, - .p_filesz = 14, - .p_memsz = 15, - .p_flags = PF_W, - .p_align = 8 - } -}; - -static int -check_phdr(TS_PHDR *p) -{ - int i, result; - TS_PHDR *pt; - - result = TET_PASS; - for (pt = phdr_testdata, i = 0; i < TS_NPHDR; i++) { - -#define CHECK_PH_FIELD(FIELD) do { \ - if (p->p_##FIELD != pt->p_##FIELD) { \ - tet_printf("fail: [%d] field \"%s\" actual " \ - "0x%jx != expected 0x%jx.", i, #FIELD, \ - (uintmax_t) p->p_##FIELD, \ - (uintmax_t) pt->p_##FIELD); \ - result = TET_FAIL; \ - } \ - } while (0) - - CHECK_PH_FIELD(type); - CHECK_PH_FIELD(offset); - CHECK_PH_FIELD(vaddr); - CHECK_PH_FIELD(paddr); - CHECK_PH_FIELD(filesz); - CHECK_PH_FIELD(memsz); - CHECK_PH_FIELD(flags); - CHECK_PH_FIELD(align); - - if (result != TET_PASS) - return (result); - } - - return (result); -} - -void -tcNull_tpGet(void) -{ - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: " TS_ICNAME "(NULL) fails with " - "ELF_E_ARGUMENT."); - - if (TS_ICFUNC(NULL) != NULL || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} - -static char data[] = "This isn't an ELF file."; - -void -tcData_tpElf(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: " TS_ICNAME "(E) for non-ELF (E) fails with " - "ELF_E_ARGUMENT."); - - TS_OPEN_MEMORY(e, data); - - if (TS_ICFUNC(e) != NULL || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); -} - - -/* - * A malformed (too short) ELF header. - */ - -static char badelftemplate[EI_NIDENT+1] = { - [EI_MAG0] = '\177', - [EI_MAG1] = 'E', - [EI_MAG2] = 'L', - [EI_MAG3] = 'F', - [EI_CLASS] = ELFCLASS64, - [EI_DATA] = ELFDATA2MSB, - [EI_NIDENT] = '@' -}; - -void -tcBadElfVersion_tpElf(void) -{ - int err; - Elf *e; - TS_PHDR *ph; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: " TS_ICNAME "() with an unsupported version " - "fails with ELF_E_VERSION."); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - - badelf[EI_VERSION] = EV_NONE; - badelf[EI_CLASS] = TS_ELFCLASS; - - TS_OPEN_MEMORY(e, badelf); - - if ((ph = TS_ICFUNC(e)) != NULL || - (err = elf_errno()) != ELF_E_VERSION) { - tet_printf("fail: error=%d ph=%p.", err, (void *) ph); - tet_result(TET_FAIL); - } else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -void -tcBadElf_tpElf(void) -{ - int err; - Elf *e; - TS_PHDR *ph; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: " TS_ICNAME "() on a malformed ELF file " - "fails with ELF_E_HEADER."); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - badelf[EI_VERSION] = EV_CURRENT; - badelf[EI_CLASS] = TS_ELFCLASS; - - TS_OPEN_MEMORY(e, badelf); - - if ((ph = TS_ICFUNC(e)) != NULL || - (err = elf_errno()) != ELF_E_HEADER) { - tet_printf("fail: error=%d ph=%p.", err, (void *) ph); - tet_result(TET_FAIL); - } else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -void -tcElf_tpCorruptEhdr(void) -{ - int err, fd, result; - char *fn; - Elf *e; - TS_PHDR *ph; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: " TS_ICNAME "(E) with corrupt phdr values " - "the header returns E_HEADER."); - - fn = "ehdr.msb" __XSTRING(TS_PHDRSZ); - TS_OPEN_FILE(e, fn, ELF_C_READ, fd); - - result = TET_PASS; - - if ((ph = TS_ICFUNC(e)) != NULL || - (err = (elf_errno() != ELF_E_HEADER))) { - tet_printf("fail: \"%s\" (ph %p, error %d)", fn, (void *) ph, - err); - result = TET_FAIL; - } - (void) elf_end(e); - (void) close(fd); - - if (result != TET_PASS) { - tet_result(result); - return; - } - - fn = "ehdr.lsb" __XSTRING(TS_PHDRSZ); - TS_OPEN_FILE(e, fn, ELF_C_READ, fd); - - if ((ph = TS_ICFUNC(e)) != NULL || - (err = (elf_errno() != ELF_E_HEADER))) { - tet_printf("fail: \"%s\" (ph %p, error %d)", fn, (void *) ph, - err); - result = TET_FAIL; - } - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -} - -void -tcElf_tpElfLSB(void) -{ - int fd; - Elf *e; - TS_PHDR *ph; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: " TS_ICNAME "(E) returns the correct LSB phdr."); - - TS_OPEN_FILE(e,"phdr.lsb" __XSTRING(TS_PHDRSZ),ELF_C_READ,fd); - - if ((ph = TS_ICFUNC(e)) == NULL) { - tet_infoline("fail: " TS_ICNAME "() failed."); - tet_result(TET_FAIL); - return; - } - - tet_result(check_phdr(ph)); - - (void) elf_end(e); - (void) close(fd); -} - -void -tcElf_tpElfMSB(void) -{ - int fd; - Elf *e; - TS_PHDR *ph; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion:" TS_ICNAME "(E) returns the correct MSB phdr."); - - TS_OPEN_FILE(e,"phdr.msb" __XSTRING(TS_PHDRSZ),ELF_C_READ,fd); - - if ((ph = TS_ICFUNC(e)) == NULL) { - tet_infoline("fail: " TS_ICNAME "() failed."); - tet_result(TET_FAIL); - return; - } - - tet_result(check_phdr(ph)); - - (void) elf_end(e); - (void) close(fd); -} - -void -tcElf_tpElfDup(void) -{ - int fd; - Elf *e; - TS_PHDR *ph1, *ph2; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: successful calls to " TS_ICNAME "() return " - "identical pointers."); - - TS_OPEN_FILE(e,"phdr.msb" __XSTRING(TS_PHDRSZ),ELF_C_READ,fd); - - if ((ph1 = TS_ICFUNC(e)) == NULL || - (ph2 = TS_ICFUNC(e)) == NULL) { - tet_infoline("unresolved: " TS_ICNAME "() failed."); - tet_result(TET_UNRESOLVED); - return; - } - - tet_result(ph1 == ph2 ? TET_PASS : TET_FAIL); - - (void) elf_end(e); - (void) close(fd); -} - -#if TS_PHDRSZ == 32 -#define TS_OTHERSIZE 64 -#else -#define TS_OTHERSIZE 32 -#endif - -void -tcElf_tpElfWrongSize(void) -{ - int error, fd, result; - Elf *e; - char *fn; - TS_PHDR *ph; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: a call to " TS_ICNAME "() and a mismatched " - "ELF class fails with ELF_E_CLASS."); - - result = TET_PASS; - - fn = "phdr.msb" __XSTRING(TS_OTHERSIZE); - TS_OPEN_FILE(e,fn,ELF_C_READ,fd); - - if ((ph = TS_ICFUNC(e)) != NULL || - (error = elf_errno()) != ELF_E_CLASS) { - tet_printf("fail: \"%s\" opened (error %d).", fn, error); - result = TET_FAIL; - } - - (void) elf_end(e); - (void) close(fd); - - if (result != TET_PASS) { - tet_result(result); - return; - } - - fn = "phdr.lsb" __XSTRING(TS_OTHERSIZE); - TS_OPEN_FILE(e,fn,ELF_C_READ,fd); - if ((ph = TS_ICFUNC(e)) != NULL || - (error = elf_errno()) != ELF_E_CLASS) { - tet_printf("fail: \"%s\" opened (error %d).", fn, error); - result = TET_FAIL; - } - - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelf/tset/common/rdwr.yaml b/contrib/elftoolchain/test/libelf/tset/common/rdwr.yaml deleted file mode 100644 index 6dbcee25..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/rdwr.yaml +++ /dev/null @@ -1,27 +0,0 @@ -%YAML 1.1 ---- -# $Id$ -# -# This file is used for tests requiring a well-formed ELF file -# opened in ELF_C_RDWR mode. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section - sh_type: SHT_NULL - - !Section - sh_type: SHT_PROGBITS - sh_name: .progbits - sh_data: - - hello world - - !Section - sh_type: SHT_STRTAB - sh_name: .shstrtab - sh_data: - - .shstrtab - - .progbits diff --git a/contrib/elftoolchain/test/libelf/tset/common/rdwr1.yaml b/contrib/elftoolchain/test/libelf/tset/common/rdwr1.yaml deleted file mode 100644 index 4738f895..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/rdwr1.yaml +++ /dev/null @@ -1,27 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -# -# This file is used for tests requiring a well-formed ELF file -# opened in ELF_C_RDWR mode. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_DYN - -sections: - - !Section - sh_type: SHT_NULL - - !Section - sh_type: SHT_PROGBITS - sh_name: .progbits - sh_data: - - hello world - - !Section - sh_type: SHT_STRTAB - sh_name: .shstrtab - sh_data: - - .shstrtab - - .progbits diff --git a/contrib/elftoolchain/test/libelf/tset/common/rdwr2.yaml b/contrib/elftoolchain/test/libelf/tset/common/rdwr2.yaml deleted file mode 100644 index 7deeb67b..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/rdwr2.yaml +++ /dev/null @@ -1,28 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -# -# This file is used for tests requiring a well-formed ELF file -# opened in ELF_C_RDWR mode. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section - sh_type: SHT_NULL - - !Section - sh_type: SHT_PROGBITS - sh_name: .progbits - sh_data: - - hello world - - goodbye world - - !Section - sh_type: SHT_STRTAB - sh_name: .shstrtab - sh_data: - - .shstrtab - - .progbits diff --git a/contrib/elftoolchain/test/libelf/tset/common/shdr.yaml b/contrib/elftoolchain/test/libelf/tset/common/shdr.yaml deleted file mode 100644 index 5b7e2b97..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/shdr.yaml +++ /dev/null @@ -1,42 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -# -# This file is used for tests requiring a set of valid section -# headers. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section # index 0 - sh_type: SHT_NULL - - !Section - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_flags: [ SHF_ALLOC , SHF_STRINGS ] - sh_offset: 256 - sh_link: 0xFFFFFFFF - sh_info: 0xFFFFFFFF - sh_addralign: 1 - sh_entsize: 0 - sh_data: - - .shstrtab - - .dynsym - - yet another string - - !Section - sh_name: .dynsym - sh_type: SHT_PROGBITS - sh_flags: [ SHF_ALLOC ] - sh_offset: 128 - sh_link: 0xdeadc0de - sh_info: 0xcafebabe - sh_addralign: 8 - sh_entsize: 0 - - - - diff --git a/contrib/elftoolchain/test/libelf/tset/common/u1.yaml b/contrib/elftoolchain/test/libelf/tset/common/u1.yaml deleted file mode 100644 index cb4a7283..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/u1.yaml +++ /dev/null @@ -1,29 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -phdrtab: - - !Phdr - p_type: PT_NULL - p_offset: 0x0F0F0F0F - p_vaddr: 0xA0A0A0A0 - p_filesz: 0x1234 - p_memsz: 0x5678 - p_flags: [ PF_X, PF_R ] - p_align: 64 - -sections: - - !Section # index 0 - sh_type: SHT_NULL - - - !Section - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_data: - - .shstrtab - diff --git a/contrib/elftoolchain/test/libelf/tset/common/versioning.yaml b/contrib/elftoolchain/test/libelf/tset/common/versioning.yaml deleted file mode 100644 index 6bee1c03..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/versioning.yaml +++ /dev/null @@ -1,55 +0,0 @@ -%YAML 1.1 ---- -# $Id$ -# -# This file is used to test handling of sections with symbol -# versioning information. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section - sh_type: SHT_NULL - - !Section - sh_type: SHT_GNU_verdef - sh_name: .gnu.version_d - sh_data: - - !Verdef - vd_version: 1 - vd_flags: 0 - vd_ndx: 1 - vd_cnt: 1 - vd_hash: 0x1234 - vd_aux: 42 - vd_next: 0 - - !Verdaux - vda_name: 1 - vda_next: 0 - - !Section - sh_type: SHT_GNU_verneed - sh_name: .gnu.version_r - sh_data: - - !Verneed - vn_version: 1 - vn_cnt: 1 - vn_file: 0x1234 - vn_aux: 42 - vn_next: 0 - - !Vernaux - vna_hash: 0x4321 - vna_flags: 0x1 - vna_other: 0 - vna_name: 1 - vna_next: 0 - - !Section - sh_type: SHT_STRTAB - sh_name: .shstrtab - sh_data: - - .shstrtab - - .gnu.version_d - - .gnu.version_r - diff --git a/contrib/elftoolchain/test/libelf/tset/common/xlate.yaml b/contrib/elftoolchain/test/libelf/tset/common/xlate.yaml deleted file mode 100644 index 1d26ff15..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/xlate.yaml +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -ehdr: !Ehdr - e_ident: !Ident # e_ident[] members - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - ei_osabi: ELFOSABI_FREEBSD - ei_abiversion: 1 - # other members - e_type: ET_REL - e_machine: 0x42 - e_version: EV_CURRENT - e_entry: 0xF0F0F0F0 - e_phoff: 0x0E0E0E0E - e_shoff: 0xD0D0D0D0 - e_flags: [64, 8, 2, 1] - e_ehsize: 0x0A0A - e_phentsize: 0xB0B0 - e_phnum: 0x0C0C - e_shentsize: 0xD0D0 - e_shnum: 0x0E0E - e_shstrndx: 0xF0F0 diff --git a/contrib/elftoolchain/test/libelf/tset/common/xlate_template.c b/contrib/elftoolchain/test/libelf/tset/common/xlate_template.c deleted file mode 100644 index b87cdb9e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/xlate_template.c +++ /dev/null @@ -1,1824 +0,0 @@ -/*- - * Copyright (c) 2006,2010-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * Boilerplate for testing the *_xlate() functions. - * - * Usage: - * - * #define TS_XLATESZ 32 (or 64) - * #include "xlate_template.c" - */ - -#include - -#define __XCONCAT(x,y) __CONCAT(x,y) -#ifndef __XSTRING -#define __XSTRING(x) __STRING(x) -#endif - -#include -#include -#include - -#define TS_XLATETOF __XCONCAT(elf,__XCONCAT(TS_XLATESZ,_xlatetof)) -#define TS_XLATETOM __XCONCAT(elf,__XCONCAT(TS_XLATESZ,_xlatetom)) - -#define BYTE_VAL 0xFF -#define BYTE_SEQ_LSB 0xFF, -#define BYTE_SEQ_MSB 0xFF, - -#define HALF_VAL 0xFEDC -#define HALF_SEQ_LSB 0xDC,0xFE, -#define HALF_SEQ_MSB 0xFE,0xDC, - -#define WORD_VAL 0xFEDCBA98UL -#define WORD_SEQ_LSB 0x98,0xBA,0xDC,0xFE, -#define WORD_SEQ_MSB 0xFE,0xDC,0xBA,0x98, - -#define QUAD_VAL 0xFEDCBA9876543210ULL -#define QUAD_SEQ_LSB 0x10,0x32,0x54,0x76,\ - 0x98,0xBA,0xDC,0xFE, -#define QUAD_SEQ_MSB 0xFE,0xDC,0xBA,0x98,\ - 0x76,0x54,0x32,0x10, - -#define IDENT_BYTES 46,33,46,64,46,35,46,36,46,37,46,94,46,38,46,42 -#define IDENT_VAL { IDENT_BYTES } -#define IDENT_SEQ_LSB IDENT_BYTES, -#define IDENT_SEQ_MSB IDENT_BYTES, - - -#define TYPEDEFNAME(E,N) __XCONCAT(__XCONCAT(td_, \ - __XCONCAT(E,TS_XLATESZ)), __XCONCAT(_,N)) -#define TYPEDEFINITION(E,N) __XCONCAT(ELF_TYPE_E,__XCONCAT(TS_XLATESZ, \ - __XCONCAT(_, N))) -#define CHKFNNAME(N) __XCONCAT(__XCONCAT(td_chk_,TS_XLATESZ), \ - __XCONCAT(_,N)) -#define MEMSIZENAME(N) __XCONCAT(N,__XCONCAT(TS_XLATESZ,_SIZE)) -#define MEMSTRUCTNAME(N) __XCONCAT(N,__XCONCAT(TS_XLATESZ,_mem)) - -/* - * Definitions of 32 bit ELF file structures. - */ - -#define ELF_TYPE_E32_CAP() \ - MEMBER(c_tag, WORD) \ - MEMBER(c_un.c_val, WORD) - -#define ELF_TYPE_E32_DYN() \ - MEMBER(d_tag, WORD) \ - MEMBER(d_un.d_val, WORD) - -#define ELF_TYPE_E32_EHDR() \ - MEMBER(e_ident, IDENT) \ - MEMBER(e_type, HALF) \ - MEMBER(e_machine, HALF) \ - MEMBER(e_version, WORD) \ - MEMBER(e_entry, WORD) \ - MEMBER(e_phoff, WORD) \ - MEMBER(e_shoff, WORD) \ - MEMBER(e_flags, WORD) \ - MEMBER(e_ehsize, HALF) \ - MEMBER(e_phentsize, HALF) \ - MEMBER(e_phnum, HALF) \ - MEMBER(e_shentsize, HALF) \ - MEMBER(e_shnum, HALF) \ - MEMBER(e_shstrndx, HALF) - -#define ELF_TYPE_E32_MOVE() \ - MEMBER(m_value, QUAD) \ - MEMBER(m_info, WORD) \ - MEMBER(m_poffset, WORD) \ - MEMBER(m_repeat, HALF) \ - MEMBER(m_stride, HALF) - -#define ELF_TYPE_E32_PHDR() \ - MEMBER(p_type, WORD) \ - MEMBER(p_offset, WORD) \ - MEMBER(p_vaddr, WORD) \ - MEMBER(p_paddr, WORD) \ - MEMBER(p_filesz, WORD) \ - MEMBER(p_memsz, WORD) \ - MEMBER(p_flags, WORD) \ - MEMBER(p_align, WORD) - -#define ELF_TYPE_E32_REL() \ - MEMBER(r_offset, WORD) \ - MEMBER(r_info, WORD) - -#define ELF_TYPE_E32_RELA() \ - MEMBER(r_offset, WORD) \ - MEMBER(r_info, WORD) \ - MEMBER(r_addend, WORD) - -#define ELF_TYPE_E32_SHDR() \ - MEMBER(sh_name, WORD) \ - MEMBER(sh_type, WORD) \ - MEMBER(sh_flags, WORD) \ - MEMBER(sh_addr, WORD) \ - MEMBER(sh_offset, WORD) \ - MEMBER(sh_size, WORD) \ - MEMBER(sh_link, WORD) \ - MEMBER(sh_info, WORD) \ - MEMBER(sh_addralign, WORD) \ - MEMBER(sh_entsize, WORD) - -#define ELF_TYPE_E32_SYM() \ - MEMBER(st_name, WORD) \ - MEMBER(st_value, WORD) \ - MEMBER(st_size, WORD) \ - MEMBER(st_info, BYTE) \ - MEMBER(st_other, BYTE) \ - MEMBER(st_shndx, HALF) - -#define ELF_TYPE_E32_SYMINFO() \ - MEMBER(si_boundto, HALF) \ - MEMBER(si_flags, HALF) - -/* - * Definitions of 64 bit ELF file structures. - */ - -#define ELF_TYPE_E64_CAP() \ - MEMBER(c_tag, QUAD) \ - MEMBER(c_un.c_val, QUAD) - -#define ELF_TYPE_E64_DYN() \ - MEMBER(d_tag, QUAD) \ - MEMBER(d_un.d_val, QUAD) - -#define ELF_TYPE_E64_EHDR() \ - MEMBER(e_ident, IDENT) \ - MEMBER(e_type, HALF) \ - MEMBER(e_machine, HALF) \ - MEMBER(e_version, WORD) \ - MEMBER(e_entry, QUAD) \ - MEMBER(e_phoff, QUAD) \ - MEMBER(e_shoff, QUAD) \ - MEMBER(e_flags, WORD) \ - MEMBER(e_ehsize, HALF) \ - MEMBER(e_phentsize, HALF) \ - MEMBER(e_phnum, HALF) \ - MEMBER(e_shentsize, HALF) \ - MEMBER(e_shnum, HALF) \ - MEMBER(e_shstrndx, HALF) - -#define ELF_TYPE_E64_MOVE() \ - MEMBER(m_value, QUAD) \ - MEMBER(m_info, QUAD) \ - MEMBER(m_poffset, QUAD) \ - MEMBER(m_repeat, HALF) \ - MEMBER(m_stride, HALF) - -#define ELF_TYPE_E64_PHDR() \ - MEMBER(p_type, WORD) \ - MEMBER(p_flags, WORD) \ - MEMBER(p_offset, QUAD) \ - MEMBER(p_vaddr, QUAD) \ - MEMBER(p_paddr, QUAD) \ - MEMBER(p_filesz, QUAD) \ - MEMBER(p_memsz, QUAD) \ - MEMBER(p_align, QUAD) - -#define ELF_TYPE_E64_REL() \ - MEMBER(r_offset, QUAD) \ - MEMBER(r_info, QUAD) - -#define ELF_TYPE_E64_RELA() \ - MEMBER(r_offset, QUAD) \ - MEMBER(r_info, QUAD) \ - MEMBER(r_addend, QUAD) - -#define ELF_TYPE_E64_SHDR() \ - MEMBER(sh_name, WORD) \ - MEMBER(sh_type, WORD) \ - MEMBER(sh_flags, QUAD) \ - MEMBER(sh_addr, QUAD) \ - MEMBER(sh_offset, QUAD) \ - MEMBER(sh_size, QUAD) \ - MEMBER(sh_link, WORD) \ - MEMBER(sh_info, WORD) \ - MEMBER(sh_addralign, QUAD) \ - MEMBER(sh_entsize, QUAD) - -#define ELF_TYPE_E64_SYM() \ - MEMBER(st_name, WORD) \ - MEMBER(st_info, BYTE) \ - MEMBER(st_other, BYTE) \ - MEMBER(st_shndx, HALF) \ - MEMBER(st_value, QUAD) \ - MEMBER(st_size, QUAD) \ - -#define ELF_TYPE_E64_SYMINFO() \ - MEMBER(si_boundto, HALF) \ - MEMBER(si_flags, HALF) - -static unsigned char TYPEDEFNAME(L,CAP)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,CAP)() -}; -static unsigned char TYPEDEFNAME(M,CAP)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,CAP)() -}; - -static unsigned char TYPEDEFNAME(L,DYN)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,DYN)() -}; -static unsigned char TYPEDEFNAME(M,DYN)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,DYN)() -}; - -static unsigned char TYPEDEFNAME(L,EHDR)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,EHDR)() -}; -static unsigned char TYPEDEFNAME(M,EHDR)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,EHDR)() -}; - -static unsigned char TYPEDEFNAME(L,HALF)[] = { - HALF_SEQ_LSB -}; -static unsigned char TYPEDEFNAME(M,HALF)[] = { - HALF_SEQ_MSB -}; - -static unsigned char TYPEDEFNAME(L,MOVE)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,MOVE)() -}; -static unsigned char TYPEDEFNAME(M,MOVE)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,MOVE)() -}; - -static unsigned char TYPEDEFNAME(L,PHDR)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,PHDR)() -}; -static unsigned char TYPEDEFNAME(M,PHDR)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,PHDR)() -}; - -static unsigned char TYPEDEFNAME(L,REL)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,REL)() -}; -static unsigned char TYPEDEFNAME(M,REL)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,REL)() -}; - -static unsigned char TYPEDEFNAME(L,RELA)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,RELA)() -}; -static unsigned char TYPEDEFNAME(M,RELA)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,RELA)() -}; - -static unsigned char TYPEDEFNAME(L,SHDR)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,SHDR)() -}; -static unsigned char TYPEDEFNAME(M,SHDR)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,SHDR)() -}; - -static unsigned char TYPEDEFNAME(L,SYM)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,SYM)() -}; -static unsigned char TYPEDEFNAME(M,SYM)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,SYM)() -}; - -static unsigned char TYPEDEFNAME(L,SYMINFO)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_LSB - TYPEDEFINITION(L,SYMINFO)() -}; -static unsigned char TYPEDEFNAME(M,SYMINFO)[] = { -#undef MEMBER -#define MEMBER(N,K) K##_SEQ_MSB - TYPEDEFINITION(M,SYMINFO)() -}; - -static unsigned char TYPEDEFNAME(L,QUAD)[] = { - QUAD_SEQ_LSB -}; - -static unsigned char TYPEDEFNAME(M,QUAD)[] = { - QUAD_SEQ_MSB -}; - -static unsigned char TYPEDEFNAME(L,WORD)[] = { - WORD_SEQ_LSB -}; -static unsigned char TYPEDEFNAME(M,WORD)[] = { - WORD_SEQ_MSB -}; - -#if TS_XLATESZ == 32 -/* - * 32 bit reference structures. - */ - -#define td_L32_ADDR td_L32_WORD -#define td_M32_ADDR td_M32_WORD -#define td_L32_SWORD td_L32_WORD -#define td_M32_SWORD td_M32_WORD -#define td_L32_OFF td_L32_WORD -#define td_M32_OFF td_M32_WORD - -static Elf32_Addr MEMSTRUCTNAME(ADDR) = WORD_VAL; -#define ADDR32_SIZE sizeof(Elf32_Addr) - -static Elf32_Cap MEMSTRUCTNAME(CAP) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_CAP() -}; -#define CAP32_SIZE sizeof(Elf32_Cap) - -static Elf32_Dyn MEMSTRUCTNAME(DYN) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_DYN() -}; -#define DYN32_SIZE sizeof(Elf32_Dyn) - -static Elf32_Ehdr MEMSTRUCTNAME(EHDR) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_EHDR() -}; -#define EHDR32_SIZE sizeof(Elf32_Ehdr) - -static Elf32_Half MEMSTRUCTNAME(HALF) = HALF_VAL; -#define HALF32_SIZE sizeof(Elf32_Half) - -static Elf32_Move MEMSTRUCTNAME(MOVE) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_MOVE() -}; -#define MOVE32_SIZE sizeof(Elf32_Move) - -static Elf32_Off MEMSTRUCTNAME(OFF) = WORD_VAL; -#define OFF32_SIZE sizeof(Elf32_Off) - -static Elf32_Phdr MEMSTRUCTNAME(PHDR) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_PHDR() -}; -#define PHDR32_SIZE sizeof(Elf32_Phdr) - -static Elf32_Rel MEMSTRUCTNAME(REL) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_REL() -}; -#define REL32_SIZE sizeof(Elf32_Rel) - -static Elf32_Rela MEMSTRUCTNAME(RELA) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_RELA() -}; -#define RELA32_SIZE sizeof(Elf32_Rela) - -static Elf32_Shdr MEMSTRUCTNAME(SHDR) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_SHDR() -}; -#define SHDR32_SIZE sizeof(Elf32_Shdr) - -static Elf32_Sword MEMSTRUCTNAME(SWORD) = WORD_VAL; -#define SWORD32_SIZE sizeof(Elf32_Sword) - -static Elf32_Sym MEMSTRUCTNAME(SYM) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_SYM() -}; -#define SYM32_SIZE sizeof(Elf32_Sym) - -static Elf32_Syminfo MEMSTRUCTNAME(SYMINFO) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E32_SYMINFO() -}; -#define SYMINFO32_SIZE sizeof(Elf32_Syminfo) - -static Elf32_Word MEMSTRUCTNAME(WORD) = WORD_VAL; -#define WORD32_SIZE sizeof(Elf32_Word) - -#else -/* - * 64 bit reference structures. - */ - -#define td_L64_ADDR td_L64_QUAD -#define td_M64_ADDR td_M64_QUAD -#define td_L64_OFF td_L64_QUAD -#define td_M64_OFF td_M64_QUAD -#define td_L64_SWORD td_L64_WORD -#define td_M64_SWORD td_M64_WORD -#define td_L64_SXWORD td_L64_QUAD -#define td_M64_SXWORD td_M64_QUAD -#define td_L64_XWORD td_L64_QUAD -#define td_M64_XWORD td_M64_QUAD - -static Elf64_Addr MEMSTRUCTNAME(ADDR) = QUAD_VAL; -#define ADDR64_SIZE sizeof(Elf64_Addr) - -static Elf64_Cap MEMSTRUCTNAME(CAP) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_CAP() -}; -#define CAP64_SIZE sizeof(Elf64_Cap) - -static Elf64_Dyn MEMSTRUCTNAME(DYN) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_DYN() -}; -#define DYN64_SIZE sizeof(Elf64_Dyn) - -static Elf64_Ehdr MEMSTRUCTNAME(EHDR) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_EHDR() -}; -#define EHDR64_SIZE sizeof(Elf64_Ehdr) - -static Elf64_Half MEMSTRUCTNAME(HALF) = HALF_VAL; -#define HALF64_SIZE sizeof(Elf64_Half) - -static Elf64_Move MEMSTRUCTNAME(MOVE) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_MOVE() -}; -#define MOVE64_SIZE sizeof(Elf64_Move) - -static Elf64_Phdr MEMSTRUCTNAME(PHDR) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_PHDR() -}; -#define PHDR64_SIZE sizeof(Elf64_Phdr) - -static Elf64_Off MEMSTRUCTNAME(OFF) = QUAD_VAL; -#define OFF64_SIZE sizeof(Elf64_Off) - -static Elf64_Rel MEMSTRUCTNAME(REL) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_REL() -}; -#define REL64_SIZE sizeof(Elf64_Rel) - -static Elf64_Rela MEMSTRUCTNAME(RELA) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_RELA() -}; -#define RELA64_SIZE sizeof(Elf64_Rela) - -static Elf64_Shdr MEMSTRUCTNAME(SHDR) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_SHDR() -}; -#define SHDR64_SIZE sizeof(Elf64_Shdr) - -static Elf64_Sword MEMSTRUCTNAME(SWORD) = WORD_VAL; -#define SWORD64_SIZE sizeof(Elf64_Sword) - -static Elf64_Sxword MEMSTRUCTNAME(SXWORD) = QUAD_VAL; -#define SXWORD64_SIZE sizeof(Elf64_Sxword) - -static Elf64_Sym MEMSTRUCTNAME(SYM) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_SYM() -}; -#define SYM64_SIZE sizeof(Elf64_Sym) - -static Elf64_Syminfo MEMSTRUCTNAME(SYMINFO) = { -#undef MEMBER -#define MEMBER(N,K) .N = K##_VAL , - ELF_TYPE_E64_SYMINFO() -}; -#define SYMINFO64_SIZE sizeof(Elf64_Syminfo) - -static Elf64_Word MEMSTRUCTNAME(WORD) = WORD_VAL; -#define WORD64_SIZE sizeof(Elf64_Word) - -static Elf64_Xword MEMSTRUCTNAME(XWORD) = QUAD_VAL; -#define XWORD64_SIZE sizeof(Elf64_Xword) - -#endif /* TS_XLATESZ == 32 */ - - -#ifndef _TESTDATA_STRUCT_ -#define _TESTDATA_STRUCT_ 1 -struct testdata { - char *tsd_name; - Elf_Type tsd_type; - void *tsd_mem; - size_t tsd_fsz; - size_t tsd_msz; - const unsigned char *tsd_lsb; - const unsigned char *tsd_msb; -}; -#endif /*_TESTDATA_STRUCT_*/ - -#define TESTDATASET __XCONCAT(tests,TS_XLATESZ) -static struct testdata TESTDATASET [] = { -#undef DEFINE_TEST_DATA -#define DEFINE_TEST_DATA(N) { \ - .tsd_name = #N, \ - .tsd_type = ELF_T_##N, \ - .tsd_fsz = sizeof(TYPEDEFNAME(L,N)), \ - .tsd_msz = MEMSIZENAME(N), \ - .tsd_mem = (void *) &MEMSTRUCTNAME(N), \ - .tsd_lsb = TYPEDEFNAME(L,N), \ - .tsd_msb = TYPEDEFNAME(M,N), \ - } -#if TS_XLATESZ == 32 - DEFINE_TEST_DATA(ADDR), - DEFINE_TEST_DATA(CAP), - DEFINE_TEST_DATA(DYN), - DEFINE_TEST_DATA(EHDR), - DEFINE_TEST_DATA(HALF), - DEFINE_TEST_DATA(MOVE), - DEFINE_TEST_DATA(OFF), - DEFINE_TEST_DATA(PHDR), - DEFINE_TEST_DATA(REL), - DEFINE_TEST_DATA(RELA), - DEFINE_TEST_DATA(SHDR), - DEFINE_TEST_DATA(SWORD), - DEFINE_TEST_DATA(SYM), - DEFINE_TEST_DATA(SYMINFO), - DEFINE_TEST_DATA(WORD), -#else - DEFINE_TEST_DATA(ADDR), - DEFINE_TEST_DATA(CAP), - DEFINE_TEST_DATA(DYN), - DEFINE_TEST_DATA(EHDR), - DEFINE_TEST_DATA(HALF), - DEFINE_TEST_DATA(MOVE), - DEFINE_TEST_DATA(OFF), - DEFINE_TEST_DATA(PHDR), - DEFINE_TEST_DATA(REL), - DEFINE_TEST_DATA(RELA), - DEFINE_TEST_DATA(SHDR), - DEFINE_TEST_DATA(SWORD), - DEFINE_TEST_DATA(SXWORD), - DEFINE_TEST_DATA(SYM), - DEFINE_TEST_DATA(SYMINFO), - DEFINE_TEST_DATA(WORD), - DEFINE_TEST_DATA(XWORD), -#endif /* TS_XLATESZ == 32 */ - { .tsd_name = NULL } -}; - - -#define NCOPIES 3 -#define NOFFSET 8 /* check every alignment in a quad word */ - -#ifndef NO_TESTCASE_FUNCTIONS - -static int -check_xlate(Elf_Data *xlator(Elf_Data *d, const Elf_Data *s, unsigned int enc), - int ed, Elf_Data *dst, Elf_Data *src, struct testdata *td, int ncopies) -{ - Elf_Data *dstret; - size_t msz; - - msz = td->tsd_msz; - - /* Invoke translator */ - if ((dstret = xlator(dst, src, ed)) != dst) { - tet_printf("fail: \"%s\" " __XSTRING(TC_XLATETOM) - ": %s", td->tsd_name, elf_errmsg(-1)); - tet_result(TET_FAIL); - return (0); - } - - /* Check return parameters. */ - if (dst->d_type != td->tsd_type || dst->d_size != msz*ncopies) { - tet_printf("fail: \"%s\" type(ret=%d,expected=%d) " - "size (ret=%d,expected=%d).", td->tsd_name, - dst->d_type, td->tsd_type, dst->d_size, msz*ncopies); - tet_result(TET_FAIL); - return (0); - } - - return (1); -} - -/* - * Check byte conversions: - */ - -void -__XCONCAT(tcXlate_tpByte,TS_XLATESZ)(void) -{ - Elf_Data dst, src; - int i, offset, sz; - char *filebuf, *membuf, *t, *ref; - - ref = TYPEDEFNAME(L,QUAD); - sz = sizeof(TYPEDEFNAME(L,QUAD)); - - if ((membuf = malloc(sz*NCOPIES)) == NULL || - (filebuf = malloc(sz*NCOPIES+NOFFSET)) == NULL) { - if (membuf) - free(membuf); - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - return; - } - - /* - * Check memory to file conversions. - */ - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, ref, sz) + sz; - - src.d_buf = membuf; - src.d_size = sz*NCOPIES; - src.d_type = ELF_T_BYTE; - src.d_version = EV_CURRENT; - - tet_infoline("assertion: Byte TOF() succeeds."); - - for (offset = 0; offset < NOFFSET; offset++) { - /* - * LSB - */ - dst.d_buf = filebuf + offset; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (TS_XLATETOF(&dst,&src,ELFDATA2LSB) != &dst || - dst.d_size != sz*NCOPIES) { - tet_infoline("fail: LSB TOF() conversion."); - tet_result(TET_FAIL); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - tet_infoline("fail: LSB TOF() memcmp()."); - tet_result(TET_FAIL); - goto done; - } - - /* - * MSB - */ - dst.d_buf = filebuf + offset; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (TS_XLATETOF(&dst,&src,ELFDATA2MSB) != &dst || - dst.d_size != sz*NCOPIES) { - tet_infoline("fail: MSB TOF() conversion."); - tet_result(TET_FAIL); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - tet_infoline("fail: MSB TOF() memcmp()."); - tet_result(TET_FAIL); - goto done; - } - } - - /* - * Check file to memory conversions. - */ - - tet_infoline("assertion: Byte TOM() succeeds."); - - ref = TYPEDEFNAME(M,QUAD); - sz = sizeof(TYPEDEFNAME(M,QUAD)); - - for (offset = 0; offset < NOFFSET; offset++) { - - src.d_buf = t = filebuf + offset; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t,ref,sz); - - src.d_size = sz*NCOPIES; - src.d_type = ELF_T_BYTE; - src.d_version = EV_CURRENT; - - /* - * LSB - */ - dst.d_buf = membuf; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (TS_XLATETOM(&dst,&src,ELFDATA2LSB) != &dst || - dst.d_size != sz * NCOPIES) { - tet_infoline("fail: LSB TOM() conversion."); - tet_result(TET_FAIL); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - tet_infoline("fail: LSB TOM() memcmp()."); - tet_result(TET_FAIL); - goto done; - } - - /* - * MSB - */ - dst.d_buf = membuf; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (TS_XLATETOM(&dst,&src,ELFDATA2MSB) != &dst || - dst.d_size != sz * NCOPIES) { - tet_infoline("fail: MSB TOM() conversion."); - tet_result(TET_FAIL); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - tet_infoline("fail: MSB TOM() memcmp()."); - tet_result(TET_FAIL); - goto done; - } - } - - tet_result(TET_PASS); - - done: - if (membuf) - free(membuf); - if (filebuf) - free(filebuf); -} - -/* - * Check a byte conversion on a shared buffer. - */ - -void -__XCONCAT(tcXlate_tpByteShared,TS_XLATESZ)(void) -{ - int i; - size_t sz; - Elf_Data dst, src; - char *membuf, *t, *ref; - -#define PREPARE_SHARED(T,SZ) do { \ - src.d_buf = dst.d_buf = membuf; \ - src.d_size = dst.d_size = (SZ) * NCOPIES; \ - src.d_type = dst.d_type = (T); \ - src.d_version = dst.d_version = EV_CURRENT; \ - } while (0) - -#define VERIFY(R,SZ) do { \ - t = dst.d_buf; \ - for (i = 0; i < NCOPIES; i++, t += (SZ)) \ - if (memcmp((R), t, (SZ))) { \ - tet_infoline("fail: LSB TOF() " \ - "memcmp()."); \ - tet_result(TET_FAIL); \ - goto done; \ - } \ - } while (0) - - membuf = NULL; - ref = TYPEDEFNAME(L,QUAD); - sz = sizeof(TYPEDEFNAME(L,QUAD)); - - if ((membuf = malloc(sz * NCOPIES)) == NULL) { - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - return; - } - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, ref, sz) + sz; - - tet_infoline("assertion: byte TOF() on a shared dst/src arena " - "succeeds."); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (TS_XLATETOF(&dst, &src, ELFDATA2LSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - tet_printf("fail: LSB TOF() conversion: %s.", - elf_errmsg(-1)); - tet_result(TET_FAIL); - goto done; - } - VERIFY(ref,sz); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (TS_XLATETOF(&dst, &src, ELFDATA2MSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - tet_printf("fail: MSB TOF() conversion: %s.", - elf_errmsg(-1)); - tet_result(TET_FAIL); - goto done; - } - VERIFY(ref,sz); - - tet_infoline("assertion: byte TOM() on a shared dst/src arena " - "succeeds."); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (TS_XLATETOM(&dst, &src, ELFDATA2LSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - tet_printf("fail: LSB TOM() conversion: %s.", - elf_errmsg(-1)); - tet_result(TET_FAIL); - goto done; - } - VERIFY(ref,sz); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (TS_XLATETOM(&dst, &src, ELFDATA2MSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - tet_printf("fail: MSB TOM() conversion: %s.", - elf_errmsg(-1)); - tet_result(TET_FAIL); - goto done; - } - VERIFY(ref,sz); - - tet_result(TET_PASS); - - done: - free(membuf); -} - -/* - * Check non-byte conversions from file representations to memory. - */ -void -__XCONCAT(tcXlate_tpToM,TS_XLATESZ)(void) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, offset; - char *srcbuf, *membuf, *t; - - srcbuf = NULL; /* file data (bytes) */ - membuf = NULL; /* memory data (struct) */ - - /* Loop over all types */ - for (td = TESTDATASET; td->tsd_name; td++) { - - fsz = __XCONCAT(__XCONCAT(elf,TS_XLATESZ),_fsize)(td->tsd_type, - 1, EV_CURRENT); - - msz = td->tsd_msz; - - if (msz == 0 || - fsz != td->tsd_fsz) { - tet_printf("? %s: msz=%d fsz=%d td->fsz=%d.", - td->tsd_name, msz, fsz, td->tsd_fsz); - } - - assert(fsz == td->tsd_fsz); - - /* - * allocate space for NCOPIES of data + offset for file data and - * NCOPIES of memory data. - */ - if ((srcbuf = malloc(NCOPIES*fsz+NOFFSET)) == NULL || - ((membuf = malloc(NCOPIES*msz))) == NULL) { - if (srcbuf) - free(srcbuf); - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - return; - } - - - tet_printf("assertion: "__XSTRING(TS_XLATETOM)"(%s) succeeds.", - td->tsd_name); - - for (offset = 0; offset < NOFFSET; offset++) { - - src.d_buf = t = srcbuf + offset; - src.d_size = fsz * NCOPIES; - src.d_type = td->tsd_type; - src.d_version = EV_CURRENT; - - dst.d_buf = membuf; - dst.d_size = msz * NCOPIES; - dst.d_version = EV_CURRENT; - - - /* - * Check conversion of LSB encoded data. - */ - - /* copy `NCOPIES*fsz' bytes in `srcbuf+offset' */ - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_lsb, fsz); - t += fsz; - } - (void) memset(membuf, 0, NCOPIES*msz); - - if (check_xlate(TS_XLATETOM, ELFDATA2LSB, &dst, &src, - td, NCOPIES) == 0) - goto done; - - /* compare the retrieved data with the canonical value */ - t = dst.d_buf; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_mem, msz)) { - tet_printf("fail: \"%s\" LSB memory " - "compare failed.", td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - t += msz; - } - - /* - * Check conversion of MSB encoded data. - */ - - t = srcbuf + offset; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_msb, fsz); - t += fsz; - } - (void) memset(membuf, 0, NCOPIES*msz); - if (check_xlate(TS_XLATETOM, ELFDATA2MSB, &dst, &src, - td, NCOPIES) == 0) - goto done; - - /* compare the retrieved data with the canonical value */ - t = dst.d_buf; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_mem, msz)) { - tet_printf("fail: \"%s\" MSB memory " - "compare failed.", td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - t += msz; - } - } - - free(srcbuf); srcbuf = NULL; - free(membuf); membuf = NULL; - } - - tet_result(TET_PASS); - - done: - if (srcbuf) - free(srcbuf); - if (membuf) - free(membuf); -} - -void -__XCONCAT(tcXlate_tpToMShared,TS_XLATESZ)(void) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, result; - char *membuf, *t; - - membuf = NULL; - - for (td = TESTDATASET; td->tsd_name; td++) { - - tet_printf("assertion: in-place "__XSTRING(TS_XLATETOM)"(\"%s\").", - td->tsd_name); - - fsz = __XCONCAT(__XCONCAT(elf,TS_XLATESZ),_fsize)(td->tsd_type, - 1, EV_CURRENT); - msz = td->tsd_msz; - - assert(msz >= fsz); - - if ((membuf = malloc(fsz * NCOPIES)) == NULL) { - tet_printf("unresolved: \"%s\" malloc() failed.", - td->tsd_name); - tet_result(TET_UNRESOLVED); - goto done; - } - - /* - * In-place conversion of LSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_lsb, fsz) + fsz; - - PREPARE_SHARED(td->tsd_type, fsz); - result = TS_XLATETOM(&dst, &src, ELFDATA2LSB) == &dst; - - if (fsz < msz) { - /* conversion should fail with ELF_E_DATA */ - if (result || elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" LSB TOM() succeeded " - "with fsz < msz", td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - free(membuf); membuf = NULL; - continue; - } - - /* conversion should have succeeded. */ - if (!result) { - tet_printf("fail: \"%s\" LSB TOM() failed.", - td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - - VERIFY(td->tsd_mem,msz); - - /* - * In-place conversion of MSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_msb, fsz) + fsz; - - PREPARE_SHARED(td->tsd_type, fsz); - result = TS_XLATETOM(&dst, &src, ELFDATA2MSB) == &dst; - - if (fsz < msz) { - /* conversion should fail with ELF_E_DATA */ - if (result || elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" MSB TOM() succeeded " - "with fsz < msz", td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - free(membuf); membuf = NULL; - continue; - } - - /* conversion should have succeeded. */ - if (!result) { - tet_printf("fail: \"%s\" MSB TOM() failed.", - td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - - VERIFY(td->tsd_mem,msz); - - } - - tet_result(TET_PASS); - - done: - if (membuf) - free(membuf); -} - - -/* - * Check non-byte conversions from memory to file. - */ -void -__XCONCAT(tcXlate_tpToF,TS_XLATESZ)(void) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, offset; - char *filebuf, *membuf, *t; - - filebuf = NULL; /* file data (bytes) */ - membuf = NULL; /* memory data (struct) */ - - /* Loop over all types */ - for (td = TESTDATASET; td->tsd_name; td++) { - - fsz = __XCONCAT(__XCONCAT(elf,TS_XLATESZ),_fsize)(td->tsd_type, - 1, EV_CURRENT); - - msz = td->tsd_msz; - - if (msz == 0 || - fsz != td->tsd_fsz) { - tet_printf("? %s: msz=%d fsz=%d td->fsz=%d.", - td->tsd_name, msz, fsz, td->tsd_fsz); - } - - assert(msz > 0); - assert(fsz == td->tsd_fsz); - - /* - * allocate space for NCOPIES of data + offset for file data and - * NCOPIES of memory data. - */ - if ((filebuf = malloc(NCOPIES*fsz+NOFFSET)) == NULL || - ((membuf = malloc(NCOPIES*msz))) == NULL) { - if (filebuf) - free(filebuf); - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - return; - } - - - tet_printf("assertion: "__XSTRING(TS_XLATETOF)"(%s) succeeds.", - td->tsd_name); - - for (offset = 0; offset < NOFFSET; offset++) { - - src.d_buf = membuf; - src.d_size = msz * NCOPIES; - src.d_type = td->tsd_type; - src.d_version = EV_CURRENT; - - /* - * Check LSB conversion. - */ - - /* copy `NCOPIES' of canonical memory data to the src buffer */ - t = membuf; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_mem, msz); - t += msz; - } - (void) memset(filebuf, 0, NCOPIES*fsz+NOFFSET); - - dst.d_buf = filebuf + offset; - dst.d_size = fsz * NCOPIES; - dst.d_version = EV_CURRENT; - - if (check_xlate(TS_XLATETOF, ELFDATA2LSB, &dst, &src, - td, NCOPIES) == 0) - goto done; - - /* compare converted data to canonical form */ - t = filebuf + offset; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_lsb, fsz)) { - tet_printf("fail: \"%s\" LSB memory " - "compare.", td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - t += fsz; - } - - /* - * Check MSB conversion. - */ - t = membuf; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_mem, msz); - t += msz; - } - (void) memset(filebuf, 0, NCOPIES*fsz+NOFFSET); - - dst.d_buf = filebuf + offset; - dst.d_size = fsz * NCOPIES; - dst.d_version = EV_CURRENT; - - if (check_xlate(TS_XLATETOF, ELFDATA2MSB, &dst, &src, - td, NCOPIES) == 0) - goto done; - - /* compare converted data to canonical form */ - t = filebuf + offset; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_msb, fsz)) { - tet_printf("fail: \"%s\" MSB memory " - "compare.", td->tsd_name); - tet_result(TET_FAIL); - goto done; - } - t += fsz; - } - } - - free(filebuf); filebuf = NULL; - free(membuf); membuf = NULL; - } - - tet_result(TET_PASS); - - done: - if (filebuf) - free(filebuf); - if (membuf) - free(membuf); -} - -void -__XCONCAT(tcXlate_tpToFShared,TS_XLATESZ)(void) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i; - char *membuf, *t; - - membuf = NULL; - - for (td = TESTDATASET; td->tsd_name; td++) { - - tet_printf("assertion: in-place "__XSTRING(TS_XLATETOF)"(\"%s\").", - td->tsd_name); - - fsz = __XCONCAT(__XCONCAT(elf,TS_XLATESZ),_fsize)(td->tsd_type, - 1, EV_CURRENT); - msz = td->tsd_msz; - - assert(msz >= fsz); - - if ((membuf = malloc(msz * NCOPIES)) == NULL) { - tet_printf("unresolved: \"%s\" malloc() failed.", - td->tsd_name); - tet_result(TET_UNRESOLVED); - goto done; - } - - /* - * In-place conversion to LSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_mem, msz) + msz; - - PREPARE_SHARED(td->tsd_type, msz); - if (TS_XLATETOF(&dst, &src, ELFDATA2LSB) != &dst) { - tet_printf("fail: \"%s\" LSB TOF() failed: %s.", - td->tsd_name, elf_errmsg(-1)); - tet_result(TET_FAIL); - goto done; - } - VERIFY(td->tsd_lsb,fsz); - - /* - * In-place conversion to MSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_mem, msz) + msz; - - PREPARE_SHARED(td->tsd_type, msz); - if (TS_XLATETOF(&dst, &src, ELFDATA2MSB) != &dst) { - tet_printf("fail: \"%s\" MSB TOF() failed: %s.", - td->tsd_name, elf_errmsg(-1)); - tet_result(TET_FAIL); - goto done; - } - VERIFY(td->tsd_msb,fsz); - - } - - tet_result(TET_PASS); - - done: - if (membuf) - free(membuf); -} - - - -/* - * Various checks for invalid arguments. - */ - -void -__XCONCAT(tcArgs_tpNullArgs,TS_XLATESZ)(void) -{ - Elf_Data ed; - int result; - - tet_infoline("assertion: "__XSTRING(TS_XLATETOF) "/" - __XSTRING(TS_XLATETOM) " with NULL arguments fail " - "with ELF_E_ARGUMENT."); - - result = TET_PASS; - - if (TS_XLATETOF(NULL,&ed,ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (TS_XLATETOF(&ed,NULL,ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (TS_XLATETOM(NULL,&ed,ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (TS_XLATETOM(&ed,NULL,ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - tet_result(result); -} - -void -__XCONCAT(tcArgs_tpBadType,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - char buf[1024]; - - tet_infoline("assertion: "__XSTRING(TS_XLATETOF) "/" - __XSTRING(TS_XLATETOM) " with an out of range type " - "fails with ELF_E_DATA."); - - result = TET_PASS; - - es.d_version = ed.d_version = EV_CURRENT; - es.d_buf = ed.d_buf = buf; - es.d_size = ed.d_size = sizeof(buf); - - es.d_type = (Elf_Type) -1; - - if (TS_XLATETOF(&ed,&es,ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (TS_XLATETOM(&ed,&es,ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - es.d_type = ELF_T_NUM; - - if (TS_XLATETOF(&ed,&es,ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (TS_XLATETOM(&ed,&es,ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - tet_result(result); -} - -void -__XCONCAT(tcArgs_tpBadEncoding,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - - tet_infoline("assertion: "__XSTRING(TS_XLATETOF) "/" - __XSTRING(TS_XLATETOM) " (*,*,BADENCODING) " - "fails with ELF_E_ARGUMENT."); - - result = TET_PASS; - - if (TS_XLATETOF(&ed,&es,ELFDATANONE-1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (TS_XLATETOF(&ed,&es,ELFDATA2MSB+1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (TS_XLATETOM(&ed,&es,ELFDATANONE-1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (TS_XLATETOM(&ed,&es,ELFDATA2MSB+1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - tet_result(result); -} - -void -__XCONCAT(tcArg_tpDstSrcVersionToF,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - char buf[sizeof(int)]; - - tet_infoline("assertion: "__XSTRING(TS_XLATETOF)"() / " - __XSTRING(TS_XLATETOM) "() with unequal " - "src,dst versions fails with ELF_E_UNIMPL."); - - es.d_buf = ed.d_buf = buf; - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT; - ed.d_version = EV_NONE; - - result = TET_PASS; - - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_UNIMPL) - result = TET_FAIL; - - if (TS_XLATETOM(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_UNIMPL) - result = TET_FAIL; - - tet_result(result); -} - -/* - * Check for an unimplemented type. - */ -void -__XCONCAT(tcArg_tpUnimplemented,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int i, result; - char *buf; - - tet_infoline("assertion: "__XSTRING(TS_XLATETOF)"() on " - "unimplemented types will with ELF_E_UNIMPL."); - - /* - * allocate a buffer that is large enough for any potential - * ELF data structure. - */ - if ((buf = malloc(1024)) == NULL) { - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - return; - } - - ed.d_buf = es.d_buf = buf; - ed.d_size = es.d_size = 1024; - ed.d_version = es.d_version = EV_CURRENT; - - result = TET_PASS; - - for (i = 0; i < ELF_T_NUM; i++) { - switch (i) { - case ELF_T_MOVEP: -#if TS_XLATESZ == 32 - case ELF_T_SXWORD: - case ELF_T_XWORD: -#endif - break; - default: - continue; - } - - es.d_type = i; - - if (TS_XLATETOF(&ed,&es,ELFDATA2LSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - tet_printf("fail: TOF/LSB/type=%d.", i); - result = TET_FAIL; - } - - if (TS_XLATETOF(&ed,&es,ELFDATA2MSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - tet_printf("fail: TOF/MSB/type=%d.", i); - result = TET_FAIL; - } - - if (TS_XLATETOM(&ed,&es,ELFDATA2LSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - tet_printf("fail: TOM/LSB/type=%d.", i); - result = TET_FAIL; - } - - if (TS_XLATETOM(&ed,&es,ELFDATA2MSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - tet_printf("fail: TOM/MSB/type=%d.", i); - result = TET_FAIL; - } - } - - tet_result(result); - free(buf); -} - -/* - * Check for null buffer pointers. - */ -void -__XCONCAT(tcBuffer_tpNullDataPtr,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - char buf[sizeof(int)]; - - tet_infoline("assertion: "__XSTRING(TS_XLATETOF)"() / " - __XSTRING(TS_XLATETOM) "() with a null " - "src,dst buffer pointer fails with ELF_E_DATA."); - - result = TET_PASS; - - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT; - ed.d_version = EV_CURRENT; - - es.d_buf = NULL; - ed.d_buf = buf; - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (TS_XLATETOM(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - es.d_buf = buf; - ed.d_buf = NULL; - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (TS_XLATETOM(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - tet_result(result); -} - -/* - * Misaligned data. - */ - -void -__XCONCAT(tcBuffer_tpMisaligned,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - size_t fsz, msz; - char *sb, *db; - struct testdata *td; - - tet_infoline("assertion: misaligned buffers are rejected with " - "ELF_E_DATA."); - - sb = db = NULL; - if ((sb = malloc(1024)) == NULL || - (db = malloc(1024)) == NULL) { - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - if (sb) - free(sb); - return; - } - - result = TET_PASS; - - for (td = TESTDATASET; td->tsd_name; td++) { - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - es.d_type = td->tsd_type; - es.d_version = EV_CURRENT; - - /* Misalign the destination for to-memory xfers */ - es.d_size = (1024 / fsz) * fsz; /* round down */ - es.d_buf = sb; - - ed.d_buf = db + 1; /* guaranteed to be misaliged */ - ed.d_version = EV_CURRENT; - ed.d_size = 1024; - - if (TS_XLATETOM(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" TOM alignment.", - td->tsd_name); - result = TET_FAIL; - } - - /* Misalign the source for to-file xfers */ - es.d_buf = sb + 1; - es.d_size = (1024/msz) * msz; /* round down */ - ed.d_buf = db; - - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" TOF alignment.", - td->tsd_name); - result = TET_FAIL; - } - } - - tet_result(result); - free(sb); - free(db); -} - - -/* - * Overlapping buffers. - */ -void -__XCONCAT(tcBuffer_tpOverlap,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - char buf[sizeof(int)]; - - tet_infoline("assertion: overlapping buffers are rejected with " - "ELF_E_DATA."); - - es.d_buf = buf; ed.d_buf = buf+1; - es.d_version = ed.d_version = EV_CURRENT; - es.d_size = ed.d_size = sizeof(buf); - es.d_type = ELF_T_BYTE; - - result = TET_PASS; - - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_infoline("fail: "__XSTRING(TS_XLATETOF)); - result = TET_FAIL; - } - - if (TS_XLATETOM(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_infoline("fail: "__XSTRING(TS_XLATETOM)); - result = TET_FAIL; - } - - tet_result(result); -} - -/* - * Non-integral number of src elements. - */ -void -__XCONCAT(tcBuffer_tpSrcExtra,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - size_t fsz, msz; - char *sb, *db; - struct testdata *td; - - tet_infoline("assertion: mis-sized buffers are rejected with " - "ELF_E_DATA."); - - sb = db = NULL; - if ((sb = malloc(1024)) == NULL || - (db = malloc(1024)) == NULL) { - tet_infoline("unresolved: malloc() failed."); - tet_result(TET_UNRESOLVED); - if (sb) - free(sb); - return; - } - - result = TET_PASS; - - for (td = TESTDATASET; td->tsd_name; td++) { - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - es.d_type = td->tsd_type; - es.d_version = EV_CURRENT; - ed.d_version = EV_CURRENT; - ed.d_buf = db; - es.d_buf = sb; - ed.d_size = 1024; - - /* Pad src bytes with extra bytes for to memor */ - es.d_size = fsz+1; - - if (TS_XLATETOM(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" TOM buffer size.", - td->tsd_name); - result = TET_FAIL; - } - - es.d_size = msz+1; - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" TOF buffer size.", - td->tsd_name); - result = TET_FAIL; - } - } - - tet_result(result); - free(sb); - free(db); -} - -void -__XCONCAT(tcBuffer_tpDstTooSmall,TS_XLATESZ)(void) -{ - Elf_Data ed, es; - int result; - struct testdata *td; - size_t fsz, msz; - char buf[1024]; - - result = TET_PASS; - - tet_infoline("assertion: too small destination buffers are rejected " - "with ELF_E_DATA."); - - for (td = TESTDATASET; td->tsd_name; td++) { - msz = td->tsd_msz; - fsz = td->tsd_fsz; - - es.d_type = td->tsd_type; - es.d_version = ed.d_version = EV_CURRENT; - es.d_buf = ed.d_buf = buf; - - es.d_size = (sizeof(buf) / msz) * msz; - ed.d_size = 1; /* too small a size */ - - if (TS_XLATETOF(&ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" TOF dst size.", - td->tsd_name); - result = TET_FAIL; - } - - es.d_size = (sizeof(buf) / fsz) * fsz; - if (TS_XLATETOM(&ed,&es,ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - tet_printf("fail: \"%s\" TOF dst size.", - td->tsd_name); - result = TET_FAIL; - } - } - - tet_result(result); -} - -#endif /* NO_TESTCASE_FUNCTIONS */ diff --git a/contrib/elftoolchain/test/libelf/tset/common/xlate_template.m4 b/contrib/elftoolchain/test/libelf/tset/common/xlate_template.m4 deleted file mode 100644 index 279b9951..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/xlate_template.m4 +++ /dev/null @@ -1,1436 +0,0 @@ -/*- - * Copyright (c) 2006,2010-2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * Boilerplate for testing the *_xlate() functions. - * - * This M4-based macro set attempts to generate test functions for - * testing the elf{32,54}_xlateto{f,m}() and gelf_xlateto{f,m}() - * functions. - * - * The following needs to be kept in mind: - * - * - 32 bit ELF code uses a subset of the primitive types used by - * 64 bit code. In particular, the Sxword and Xword types do not - * exist in the 32 bit ELF definition. - * - Elf type identifiers `FOO' usually map to a C type name `Foo', - * except in the case of a few types. - * - Elf types `ADDR' and `OFF' use ELF class dependent sizes for initializers. - * - Each Elf type needs to be associated with a FreeBSD version where - * it first appeared, so that the generated code can be made compilable - * on older systems. - */ - -divert(-1) - -ifdef(`TPFNNAME',`',`errprint(`Macro TPFNNAME must be defined.')m4exit(1)') -ifelse(index(TPFNNAME,`32'),-1,`define(`ISELF64',`Y')') -ifelse(index(TPFNNAME,`64'),-1,`define(`ISELF32',`Y')') -ifelse(index(TPFNNAME,`gelf'),0,`define(`ISGELF',`Y')') - -/* - * TO_M_OR_F(M_TEXT,F_TEXT) - * - * Selectively expand one of `M_TEXT' or `F_TEXT' depending on whether - * the function being tested is a *_tom() or *_tof() function. - */ - -define(`TO_M_OR_F',`ifelse(eval(index(TPFNNAME,`tom') > 0),1,`$1',`$2')') -define(`__N__',TOUPPER(substr(TPFNNAME,regexp(TPFNNAME,`to[fm]')))) - -/* - * DO(SIZE,TEXT) - * - * Invoke `TEXT' in an environment that defines `__SZ__' to SIZE. - */ -define(`DO',`pushdef(`__SZ__',$1)$2`'popdef(`__SZ__')') - -/* - * ELF_TYPE_LIST((TYPE, VERSION)...) - * - * Lists all ELF types for which macro expansion is desired and associates - * each such type with its `C Name'. - * - * Note that the following ELF types with variable sized `file'/memory - * representations need to be handled specially and are not part of - * this list: - * - ELF_T_BYTE - * - ELF_T_GNUHASH - * - ELF_T_NOTE - * - ELF_T_VDEF - * - ELF_T_VNEED - */ -define(`ELF_COMMON_TYPES', - ``ADDR, Addr', - `CAP, Cap', - `DYN, Dyn', - `EHDR, Ehdr', - `HALF, Half', - `LWORD, Lword', - `MOVE, Move', - `OFF, Off', - `PHDR, Phdr', - `REL, Rel', - `RELA, Rela', - `SHDR, Shdr', - `SWORD, Sword', - `SYM, Sym', - `SYMINFO, Syminfo', - `WORD, Word'') - -define(`ELF32_TYPES', - `ELF_COMMON_TYPES, - `_, _'') - -define(`ELF64_TYPES', - `ELF_COMMON_TYPES, - `SXWORD, Sxword', - `XWORD, Xword', - `_, _'') - -/* - * Tests that need to be written manually: include those for - * types: BYTE, NOTE and perhaps VDEF and VNEED. - */ - -/* - * _DOTYPE(TYPE) - * - * Process one type. This invokes `__F__' with args: 1=TYPE, 2=C-Name and the - * the additional arguments specified to `DOELFTYPES' below. - */ -define(`_DOTYPE',` -indir(`__F__',$1,$2,__ARGS__) -') - -/* - * _DOELFTYPES: iterate over an ELF type list. - */ -define(`_DOELFTYPES', - `ifelse($#,1,`', - `_DOTYPE($1) -_DOELFTYPES(shift($@))')') - -/* - * DOELFTYPES(MACRO,ARGS...) - * - * Invoke `MACRO'(TYPE,C-NAME,ARGS...) for each type in the ELF type list - * for the current size in macro `__SZ__'. - */ -define(`DOELFTYPES', - `pushdef(`__F__',defn(`$1'))pushdef(`__ARGS__',`shift($@)')dnl -ifelse(__SZ__,32,`_DOELFTYPES(ELF32_TYPES)',`_DOELFTYPES(ELF64_TYPES)')dnl -popdef(`__ARGS__')popdef(`__F__')') - -/* - * ELFTYPEDEFINITION(TYPE,SZ,ENDIANNESS) - * - * Generate the `C' name of the char[] array holding the `raw' bits - * for an ELF type. - */ -define(`ELFTYPEDEFINITION',`td_$1_$2_$3') - -/* - * ELFMEMSTRUCT(TYPE,SZ) - * - * Generate the name for a `C' struct containing the memory - * representation of an ELF type. - */ -define(`ELFMEMSTRUCT',`$1_$2_mem') - -/* - * ELFTESTS(SZ) - */ -define(`ELFTESTS',`tests$1') - -divert(0) - -#define TPBUFSIZE 1024 - -#define BYTE_VAL 0xFF -#define BYTE_SEQ_LSB 0xFF, -#define BYTE_SEQ_MSB 0xFF, - -#define HALF_SEQ_LSB 0xDC,0xFE, -#define HALF_SEQ_LSB32 HALF_SEQ_LSB -#define HALF_SEQ_LSB64 HALF_SEQ_LSB -#define HALF_SEQ_MSB 0xFE,0xDC, -#define HALF_SEQ_MSB32 HALF_SEQ_MSB -#define HALF_SEQ_MSB64 HALF_SEQ_MSB -#define HALF_VAL 0xFEDC -#define HALF_VAL32 HALF_VAL -#define HALF_VAL64 HALF_VAL - -#define WORD_SEQ_LSB 0x98,0xBA,0xDC,0xFE, -#define WORD_SEQ_MSB 0xFE,0xDC,0xBA,0x98, -#define WORD_SEQ_LSB32 WORD_SEQ_LSB -#define WORD_SEQ_MSB32 WORD_SEQ_MSB -#define WORD_SEQ_LSB64 WORD_SEQ_LSB -#define WORD_SEQ_MSB64 WORD_SEQ_MSB -#define WORD_VAL 0xFEDCBA98UL -#define WORD_VAL32 WORD_VAL -#define WORD_VAL64 WORD_VAL - -#define QUAD_SEQ_LSB 0x10,0x32,0x54,0x76,\ - 0x98,0xBA,0xDC,0xFE, -#define QUAD_SEQ_MSB 0xFE,0xDC,0xBA,0x98,\ - 0x76,0x54,0x32,0x10, -#define QUAD_VAL 0xFEDCBA9876543210ULL -#define QUAD_VAL32 QUAD_VAL -#define QUAD_VAL64 QUAD_VAL - -#define IDENT_BYTES 46,33,46,64,46,35,46,36,46,37,46,94,46,38,46,42 -#define IDENT_VAL { IDENT_BYTES } -#define IDENT_SEQ_LSB IDENT_BYTES, -#define IDENT_SEQ_MSB IDENT_BYTES, - -#define LWORD_SEQ_LSB QUAD_SEQ_LSB -#define LWORD_SEQ_LSB32 QUAD_SEQ_LSB -#define LWORD_SEQ_LSB64 QUAD_SEQ_LSB -#define LWORD_SEQ_MSB QUAD_SEQ_MSB -#define LWORD_SEQ_MSB32 QUAD_SEQ_MSB -#define LWORD_SEQ_MSB64 QUAD_SEQ_MSB -#define LWORD_VAL32 QUAD_VAL32 -#define LWORD_VAL64 QUAD_VAL64 - -#define SWORD_SEQ_LSB WORD_SEQ_LSB -#define SWORD_SEQ_LSB32 WORD_SEQ_LSB -#define SWORD_SEQ_LSB64 WORD_SEQ_LSB -#define SWORD_SEQ_MSB WORD_SEQ_MSB -#define SWORD_SEQ_MSB32 WORD_SEQ_MSB -#define SWORD_SEQ_MSB64 WORD_SEQ_MSB -#define SWORD_VAL32 WORD_VAL32 -#define SWORD_VAL64 WORD_VAL64 - -#define SXWORD_SEQ_LSB QUAD_SEQ_LSB -#define SXWORD_SEQ_LSB64 QUAD_SEQ_LSB -#define SXWORD_SEQ_MSB QUAD_SEQ_MSB -#define SXWORD_SEQ_MSB64 QUAD_SEQ_MSB -#define SXWORD_VAL64 QUAD_VAL64 - -#define XWORD_SEQ_LSB QUAD_SEQ_LSB -#define XWORD_SEQ_LSB64 QUAD_SEQ_LSB -#define XWORD_SEQ_MSB QUAD_SEQ_MSB -#define XWORD_SEQ_MSB64 QUAD_SEQ_MSB -#define XWORD_VAL64 QUAD_VAL64 - -/* - * ELF class dependent types. - */ -#define ADDR_SEQ_LSB32 WORD_SEQ_LSB -#define ADDR_SEQ_MSB32 WORD_SEQ_MSB -#define ADDR_VAL32 WORD_VAL32 -#define OFF_SEQ_LSB32 WORD_SEQ_LSB -#define OFF_SEQ_MSB32 WORD_SEQ_MSB -#define OFF_VAL32 WORD_VAL32 - -#define ADDR_SEQ_LSB64 QUAD_SEQ_LSB -#define ADDR_SEQ_MSB64 QUAD_SEQ_MSB -#define ADDR_VAL64 QUAD_VAL64 -#define OFF_SEQ_LSB64 QUAD_SEQ_LSB -#define OFF_SEQ_MSB64 QUAD_SEQ_MSB -#define OFF_VAL64 QUAD_VAL64 - -#define NCOPIES 3 -#define NOFFSET 8 /* Every alignment in a quad word. */ - -divert(-1) -/* - * Definitions of 32 bit ELF file structures. - */ - -define(`ELF_TYPE_E32_CAP', - `MEMBER(c_tag, WORD) - MEMBER(c_un.c_val, WORD)') - -define(`ELF_TYPE_E32_DYN', - `MEMBER(d_tag, WORD) - MEMBER(d_un.d_val, WORD)') - -define(`ELF_TYPE_E32_EHDR', - `MEMBER(e_ident, IDENT) - MEMBER(e_type, HALF) - MEMBER(e_machine, HALF) - MEMBER(e_version, WORD) - MEMBER(e_entry, WORD) - MEMBER(e_phoff, WORD) - MEMBER(e_shoff, WORD) - MEMBER(e_flags, WORD) - MEMBER(e_ehsize, HALF) - MEMBER(e_phentsize, HALF) - MEMBER(e_phnum, HALF) - MEMBER(e_shentsize, HALF) - MEMBER(e_shnum, HALF) - MEMBER(e_shstrndx, HALF)') - -define(`ELF_TYPE_E32_MOVE', - `MEMBER(m_value, QUAD) - MEMBER(m_info, WORD) - MEMBER(m_poffset, WORD) - MEMBER(m_repeat, HALF) - MEMBER(m_stride, HALF)') - -define(`ELF_TYPE_E32_PHDR', - `MEMBER(p_type, WORD) - MEMBER(p_offset, WORD) - MEMBER(p_vaddr, WORD) - MEMBER(p_paddr, WORD) - MEMBER(p_filesz, WORD) - MEMBER(p_memsz, WORD) - MEMBER(p_flags, WORD) - MEMBER(p_align, WORD)') - -define(`ELF_TYPE_E32_REL', - `MEMBER(r_offset, WORD) - MEMBER(r_info, WORD)') - -define(`ELF_TYPE_E32_RELA', - `MEMBER(r_offset, WORD) - MEMBER(r_info, WORD) - MEMBER(r_addend, WORD)') - -define(`ELF_TYPE_E32_SHDR', - `MEMBER(sh_name, WORD) - MEMBER(sh_type, WORD) - MEMBER(sh_flags, WORD) - MEMBER(sh_addr, WORD) - MEMBER(sh_offset, WORD) - MEMBER(sh_size, WORD) - MEMBER(sh_link, WORD) - MEMBER(sh_info, WORD) - MEMBER(sh_addralign, WORD) - MEMBER(sh_entsize, WORD)') - -define(`ELF_TYPE_E32_SYM', - `MEMBER(st_name, WORD) - MEMBER(st_value, WORD) - MEMBER(st_size, WORD) - MEMBER(st_info, BYTE) - MEMBER(st_other, BYTE) - MEMBER(st_shndx, HALF)') - -define(`ELF_TYPE_E32_SYMINFO', - `MEMBER(si_boundto, HALF) - MEMBER(si_flags, HALF)') - -define(`ELF_TYPE_E32_VDEF', - `MEMBER(vd_version, HALF) - MEMBER(vd_flags, HALF) - MEMBER(vd_ndx, HALF) - MEMBER(vd_cnt, HALF) - MEMBER(vd_hash, WORD) - MEMBER(vd_aux, WORD) - MEMBER(vd_next, WORD)') - -define(`ELF_TYPE_E32_VNEED', - `MEMBER(vn_version, HALF) - MEMBER(vn_cnt, HALF) - MEMBER(vn_file, WORD) - MEMBER(vn_aux, WORD) - MEMBER(vn_next, WORD)') - - -/* - * Definitions of 64 bit ELF file structures. - */ - -define(`ELF_TYPE_E64_CAP', - `MEMBER(c_tag, QUAD) - MEMBER(c_un.c_val, QUAD)') - -define(`ELF_TYPE_E64_DYN', - `MEMBER(d_tag, QUAD) - MEMBER(d_un.d_val, QUAD)') - -define(`ELF_TYPE_E64_EHDR', - `MEMBER(e_ident, IDENT) - MEMBER(e_type, HALF) - MEMBER(e_machine, HALF) - MEMBER(e_version, WORD) - MEMBER(e_entry, QUAD) - MEMBER(e_phoff, QUAD) - MEMBER(e_shoff, QUAD) - MEMBER(e_flags, WORD) - MEMBER(e_ehsize, HALF) - MEMBER(e_phentsize, HALF) - MEMBER(e_phnum, HALF) - MEMBER(e_shentsize, HALF) - MEMBER(e_shnum, HALF) - MEMBER(e_shstrndx, HALF)') - -define(`ELF_TYPE_E64_MOVE', - `MEMBER(m_value, QUAD) - MEMBER(m_info, QUAD) - MEMBER(m_poffset, QUAD) - MEMBER(m_repeat, HALF) - MEMBER(m_stride, HALF)') - -define(`ELF_TYPE_E64_PHDR', - `MEMBER(p_type, WORD) - MEMBER(p_flags, WORD) - MEMBER(p_offset, QUAD) - MEMBER(p_vaddr, QUAD) - MEMBER(p_paddr, QUAD) - MEMBER(p_filesz, QUAD) - MEMBER(p_memsz, QUAD) - MEMBER(p_align, QUAD)') - -define(`ELF_TYPE_E64_REL', - `MEMBER(r_offset, QUAD) - MEMBER(r_info, QUAD)') - -define(`ELF_TYPE_E64_RELA', - `MEMBER(r_offset, QUAD) - MEMBER(r_info, QUAD) - MEMBER(r_addend, QUAD)') - -define(`ELF_TYPE_E64_SHDR', - `MEMBER(sh_name, WORD) - MEMBER(sh_type, WORD) - MEMBER(sh_flags, QUAD) - MEMBER(sh_addr, QUAD) - MEMBER(sh_offset, QUAD) - MEMBER(sh_size, QUAD) - MEMBER(sh_link, WORD) - MEMBER(sh_info, WORD) - MEMBER(sh_addralign, QUAD) - MEMBER(sh_entsize, QUAD)') - -define(`ELF_TYPE_E64_SYM', - `MEMBER(st_name, WORD) - MEMBER(st_info, BYTE) - MEMBER(st_other, BYTE) - MEMBER(st_shndx, HALF) - MEMBER(st_value, QUAD) - MEMBER(st_size, QUAD)') - -define(`ELF_TYPE_E64_SYMINFO', - `MEMBER(si_boundto, HALF) - MEMBER(si_flags, HALF)') - -define(`ELF_TYPE_E64_VDEF', - `MEMBER(vd_version, HALF) - MEMBER(vd_flags, HALF) - MEMBER(vd_ndx, HALF) - MEMBER(vd_cnt, HALF) - MEMBER(vd_hash, WORD) - MEMBER(vd_aux, WORD) - MEMBER(vd_next, WORD)') - -define(`ELF_TYPE_E64_VNEED', - `MEMBER(vn_version, HALF) - MEMBER(vn_cnt, HALF) - MEMBER(vn_file, WORD) - MEMBER(vn_aux, WORD) - MEMBER(vn_next, WORD)') - -/* - * MKRAWBITS(TYPE,CNAME,ENDIANNESS,SIZE) - * - * Create a char[] array that holds the type's file representation. - */ -define(`MKRAWBITS', - `static unsigned char ELFTYPEDEFINITION($1,`'__SZ__`',$3)[] = { -ifdef(`ELF_TYPE_E'__SZ__`_$1', - `pushdef(`MEMBER',`$'2`_SEQ_$3')ELF_TYPE_E'__SZ__`_$1`'popdef(`MEMBER')', - `$1_SEQ_$3`'__SZ__') };') - -divert(0) - -ifdef(`ISELF32', - DO(32,`DOELFTYPES(`MKRAWBITS',LSB)') - DO(32,`DOELFTYPES(`MKRAWBITS',MSB)')) - -ifdef(`ISELF64', - `DO(64,`DOELFTYPES(`MKRAWBITS',LSB)') - DO(64,`DOELFTYPES(`MKRAWBITS',MSB)')') - -divert(-1) - -/* - * MKMEMSTRUCT(TYPE,CNAME) - * - * Define a C-structure with test data for TYPE. - */ -define(`MKMEMSTRUCT', - `static Elf`'__SZ__`'_$2 ELFMEMSTRUCT($1,__SZ__) = -ifdef(`ELF_TYPE_E'__SZ__`_$1', - `pushdef(`MEMBER',.`$'1 = `$'2_VAL `,'){ -ELF_TYPE_E'__SZ__`_$1 - }popdef(`MEMBER')', - `$1_VAL`'__SZ__');') - -/* - * MKMEMCHECK(TYPE,CNAME) - * - * Generate code to check a memory structure against reference data. - */ -define(`MKMEMCHECK', - `ifdef(`ELF_TYPE_E'__SZ__`_$1',dnl Structure type - `pushdef(`_T_',defn(`ELF_TYPE_E'__SZ__`_$1'))dnl - pushdef(`MEMBER',` - 'if (`ifelse'($`'2,IDENT,memcmp(dt->$`'1,ref->$`'1,sizeof(ref->$`'1)), - dt->$`'1 != ref->$`'1)) { - TP_FAIL("$1: unequal `$'1."); - goto done; - }) - _T_ - dt += 1; - popdef(`MEMBER')popdef(`_T_')',`dnl Primitive type. - if (memcmp(t, td->tsd_mem, msz) != 0) { - TP_FAIL("$1 compare failed."); - goto done; - } - t += msz;')') - -divert(0) - -ifdef(`ISELF32',`DO(32,`DOELFTYPES(`MKMEMSTRUCT')')') -ifdef(`ISELF64',`DO(64,`DOELFTYPES(`MKMEMSTRUCT')')') - -struct testdata { - char *tsd_name; - Elf_Type tsd_type; - - size_t tsd_fsz; - const unsigned char *tsd_lsb; - const unsigned char *tsd_msb; - void *tsd_mem; - size_t tsd_msz; -}; - -define(`DEFINE_TEST_DATA', - `[ELF_T_$1] = { - .tsd_name = "$1", - .tsd_type = ELF_T_$1, - - .tsd_fsz = sizeof(ELFTYPEDEFINITION($1,__SZ__,LSB)), - .tsd_lsb = ELFTYPEDEFINITION($1,__SZ__,LSB), - .tsd_msb = ELFTYPEDEFINITION($1,__SZ__,MSB), - - .tsd_mem = (void *) &ELFMEMSTRUCT($1,__SZ__), - .tsd_msz = sizeof(ELFMEMSTRUCT($1,__SZ__)) -}') - -dnl Tests for variable length Elf types. -define(`DEFINE_TEST_DATA_VARIABLE_LENGTH',` -[ELF_T_BYTE] = { - /* For byte compares, the LSB/MSB and memory data are identical. */ - .tsd_name = "BYTE", - .tsd_type = ELF_T_BYTE, - .tsd_fsz = sizeof(ELFTYPEDEFINITION(WORD,__SZ__,LSB)), - .tsd_lsb = (void *) &ELFMEMSTRUCT(WORD,__SZ__), - .tsd_msb = (void *) &ELFMEMSTRUCT(WORD,__SZ__), - .tsd_mem = (void *) &ELFMEMSTRUCT(WORD,__SZ__), - .tsd_msz = sizeof(ELFMEMSTRUCT(WORD,__SZ__)) -}') -define(`MKTD',`DEFINE_TEST_DATA($1) `,'') - -ifdef(`ISELF32',`static struct testdata ELFTESTS(32)[] = { -DO(32,`DEFINE_TEST_DATA_VARIABLE_LENGTH'), -DO(32,`DOELFTYPES(`MKTD')') -{ } -};') - -ifdef(`ISELF64',`static struct testdata ELFTESTS(64)[] = { -DO(64,`DEFINE_TEST_DATA_VARIABLE_LENGTH'), -DO(64,`DOELFTYPES(`MKTD')') -{ } -};') - -divert(-1) - -/* - * CallXlator(ARGS) - * - * Munge the call sequence depending on whether a gelf_* function is - * being tested or not. - */ -define(`CallXlator',`ifdef(`USEGELF',`TPFNNAME (e, $*)',`TPFNNAME ($*)')') - -/* - * CheckXlateResult(SZ) - */ -define(`CheckXlateResult',` - if (dst->d_type != td->tsd_type || dst->d_size != $1 * ncopies) { - TP_FAIL("type: ret=%d/expected=%d size: ret=%d/expected=%d", - dst->d_type, td->tsd_type, dst->d_size, $1*ncopies); - goto done; - }') -define(`CheckXlateResultM',`CheckXlateResult(msz)') -define(`CheckXlateResultF',`CheckXlateResult(fsz)') - -/* - * For all xlate tests we need to do the following: - * - * 1. Declare variables. - * 2. Allocate memory. - * 3. Locate reference data. - * 4. For each offset: - * 4a. if doing a ToF: initialize the source buffer (N copies) - * 4b. if doing a ToM: initialize the source (N copies) at the offset - * 4c. Invoke the xlator. - * 4d. Check by memcmp() against the reference. - * - * XlatePrelude(TYPE,ENDIANNESS,C-NAME) - */ -define(`XlatePrelude',` - Elf_Data dst, src, *r; - struct testdata *td; - size_t expected_size, fsz, msz; - int i, offset, result; - char *srcbuf, *dstbuf, *t; - TO_M_OR_F(`ifdef(`ELF_TYPE_E'__SZ__`_$1',` - Elf`'__SZ__`'_$3 *dt, *ref;')',`') - - TP_ANNOUNCE("TPFNNAME""($1,$2) conversion."); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - td = &tests`'__SZ__[ELF_T_$1]; - - fsz = elf`'__SZ__`'_fsize(td->tsd_type, 1, EV_CURRENT); - msz = td->tsd_msz; - - result = TET_PASS; - - assert(msz > 0); - assert(fsz == td->tsd_fsz); /* Sanity check. */ - - srcbuf = dstbuf = NULL; - - TO_M_OR_F(` - /* Copy to memory. */ - if ((srcbuf = malloc(NCOPIES*fsz + NOFFSET)) == NULL) { - TP_UNRESOLVED("TPFNNAME"" malloc() failed."); - goto done; - } - - if ((dstbuf = calloc(1,NCOPIES*msz)) == NULL) { - TP_UNRESOLVED("TPFNNAME"" malloc() failed."); - goto done; - }',` - /* Copy to file. */ - if ((srcbuf = malloc(NCOPIES*msz)) == NULL) { - TP_UNRESOLVED("TPFNNAME"" malloc() failed."); - goto done; - } - - if ((dstbuf = calloc(1,NCOPIES*fsz + NOFFSET)) == NULL) { - TP_UNRESOLVED("TPFNNAME"" malloc() failed."); - goto done; - }') -') - -/* - * XlateCopySrcData(TYPE,ENDIANNESS) - * - * Copy bytes of src data, and set the src and dst Elf_Data structures. - */ -define(`XlateCopySrcData',` -TO_M_OR_F(` - t = srcbuf + offset; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_`'TOLOWER($2), fsz); - t += fsz; - } - - src.d_buf = srcbuf + offset; - src.d_size = fsz * NCOPIES; - src.d_type = td->tsd_type; - src.d_version = EV_CURRENT; - - dst.d_buf = dstbuf; - dst.d_size = msz * NCOPIES; - dst.d_version = EV_CURRENT; - ',` - t = srcbuf; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_mem, msz); - t += msz; - } - - src.d_buf = srcbuf; - src.d_size = msz * NCOPIES; - src.d_type = td->tsd_type; - src.d_version = EV_CURRENT; - - dst.d_buf = dstbuf + offset; - dst.d_size = fsz * NCOPIES; - dst.d_version = EV_CURRENT;')') - -/* - * XlateConvertAndCheck(TYPE,ENDIANNESS,C-NAME) - * - * Invoke TPFNNAME () and check the returned buffer type and size. - */ -define(`XlateConvertAndCheck',` - if ((r = CallXlator(&dst, &src, ELFDATA2$2)) != &dst) { - TP_FAIL("TPFNNAME""($1:$2) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - expected_size = NCOPIES * TO_M_OR_F(`msz',`fsz'); - - if (dst.d_type != td->tsd_type || - dst.d_size != expected_size) { - TP_FAIL("TPFNNAME""($1:$2) type(%d != %d expected), " - "size(%d != %d expected).", dst.d_type, td->tsd_type, - dst.d_size, expected_size); - goto done; - } - TO_M_OR_F(` - /* Check returned memory data. */ -ifdef(`ELF_TYPE_E'__SZ__`_$1',` - dt = (Elf`'__SZ__`'_$3 *) (uintptr_t) dst.d_buf; - ref = (Elf`'__SZ__`'_$3 *) td->tsd_mem;',` - t = dst.d_buf;') - - for (i = 0; i < NCOPIES; i++) { - MKMEMCHECK($1) - }',` - /* Check returned file data. */ - t = dst.d_buf; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_`'TOLOWER($2), fsz) != 0) { - TP_FAIL("$1 compare failed."); - goto done; - } - t += fsz; - }') -') - -/* - * MKCONVERSIONTP(TYPE,C-Name,ENDIANNESS) - * - * Generate a test purpose that tests conversions for Elf type TYPE. - */ -define(`MKCONVERSIONTP',` -void -tcXlate_tp$1_$3`'__SZ__ (void) -{ - XlatePrelude($1,$3,$2) - - result = TET_PASS; - - for (offset = 0; offset < NOFFSET; offset++) { - XlateCopySrcData($1,$3) - XlateConvertAndCheck($1,$3,$2) - } - - done: - if (srcbuf) - free(srcbuf); - if (dstbuf) - free(dstbuf); - tet_result(result); -}') - -/* - * Xlate_TestConversions_Byte() - * - * Test byte conversions. - */ -define(`Xlate_TestConversions_Byte',` -void -tcXlate_tpByte`'__SZ__ (void) -{ - Elf_Data dst, src, *r; - int i, offset, result; - size_t expected_size, fsz, msz; - struct testdata *td; - char srcbuf[NCOPIES*sizeof(ELFTYPEDEFINITION(WORD,__SZ__,LSB)) + NOFFSET]; - char dstbuf[sizeof(srcbuf)]; - char *t; - - TP_ANNOUNCE("TPFNNAME""(BYTE) conversion."); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - td = &tests`'__SZ__[ELF_T_BYTE]; - - fsz = msz = sizeof(ELFTYPEDEFINITION(WORD,__SZ__,LSB)); - expected_size = NCOPIES * msz; - result = TET_PASS; - - for (offset = 0; offset < NOFFSET; offset++) { - - XlateCopySrcData(BYTE,LSB); - XlateConvertAndCheck(BYTE,LSB); - XlateConvertAndCheck(BYTE,MSB,Word); - } - - done: - tet_result(result); -}') - -define(`Xlate_TestConversions_Note') - -/* - * Xlate_TestConversions - * - * Make test cases th non-byte conversions from file representations - * to memory. - */ -define(`Xlate_TestConversions',` -ifdef(`ISELF32',dnl -`DO(32,`Xlate_TestConversions_Byte -Xlate_TestConversions_Note') -DO(32,`DOELFTYPES(`MKCONVERSIONTP',LSB)') -DO(32,`DOELFTYPES(`MKCONVERSIONTP',MSB)')') -ifdef(`ISELF64',dnl -`DO(64,`Xlate_TestConversions_Byte -Xlate_TestConversions_Note') -DO(64,`DOELFTYPES(`MKCONVERSIONTP',LSB)') -DO(64,`DOELFTYPES(`MKCONVERSIONTP',MSB)')')') - -define(`Xlate_TestSharedConversions_Byte',` -void -tcXlate_tpByteShared`'__SZ__ (void) -{ - Elf_Data dst, src, *r; - int i, offset, result; - size_t expected_size, fsz, msz; - struct testdata *td; - char srcbuf[NCOPIES*sizeof(ELFTYPEDEFINITION(WORD,__SZ__,LSB))]; - char *dstbuf; - char *t; - - TP_ANNOUNCE("Test TPFNNAME""(BYTE) shared-buffer conversion."); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - td = &tests`'__SZ__[ELF_T_BYTE]; - - fsz = msz = sizeof(ELFTYPEDEFINITION(WORD,__SZ__,LSB)); - expected_size = NCOPIES * msz; - result = TET_PASS; - dstbuf = srcbuf; - offset = 0; - - XlateCopySrcData(BYTE,LSB); - XlateConvertAndCheck(BYTE,LSB,Word); - XlateConvertAndCheck(BYTE,MSB,Word); - - done: - tet_result(result); -}') - -define(`Xlate_TestSharedConversions_Note') - -define(`MKSHAREDCONVERSIONTP',` -void -tcXlate_tpShared$1_$3`'__SZ__ (void) -{ - Elf_Data dst, src, *r; - struct testdata *td; - size_t expected_size, fsz, msz; - int i, result; - char *srcbuf, *t; - TO_M_OR_F(`ifdef(`ELF_TYPE_E'__SZ__`_$1',` - Elf`'__SZ__`'_$2 *dt, *ref;')',`') - - TP_ANNOUNCE("TPFNNAME""($1,$3) conversion."); - - (void) memset(&dst, 0, sizeof(dst)); - (void) memset(&src, 0, sizeof(src)); - - td = &tests`'__SZ__[ELF_T_$1]; - - fsz = elf`'__SZ__`'_fsize(td->tsd_type, 1, EV_CURRENT); - msz = td->tsd_msz; - - result = TET_PASS; - - assert(msz > 0); - assert(fsz == td->tsd_fsz); /* Sanity check. */ - - srcbuf = t = NULL; - if ((srcbuf = malloc(NCOPIES*msz)) == NULL) { - TP_UNRESOLVED("TPFNNAME"" malloc() failed."); - goto done; - } - - src.d_buf = dst.d_buf = srcbuf; - src.d_version = dst.d_version = EV_CURRENT; - TO_M_OR_F(`src.d_size = fsz * NCOPIES; - dst.d_size = msz * NCOPIES;',`dnl - src.d_size = msz * NCOPIES; - dst.d_size = fsz * NCOPIES;') - src.d_type = dst.d_type = ELF_T_$1; - t = srcbuf; - for (i = 0; i < NCOPIES; i++) { - TO_M_OR_F(` - (void) memcpy(t, td->tsd_`'TOLOWER($3), fsz); - t += fsz;',` - (void) memcpy(t, td->tsd_mem, msz); - t += msz;') - } - - result = TET_PASS; - - XlateConvertAndCheck($1,$3,$2) - - done: - if (srcbuf) - free(srcbuf); - tet_result(result); -}') - -define(`Xlate_TestConversionsSharedBuffer',` -ifdef(`ISELF32',dnl -`DO(32,`Xlate_TestSharedConversions_Byte -Xlate_TestSharedConversions_Note') -DO(32,`DOELFTYPES(`MKSHAREDCONVERSIONTP',LSB)') -DO(32,`DOELFTYPES(`MKSHAREDCONVERSIONTP',MSB)')') -ifdef(`ISELF64',dnl -`DO(64,`Xlate_TestSharedConversions_Byte -Xlate_TestSharedConversions_Note') -DO(64,`DOELFTYPES(`MKSHAREDCONVERSIONTP',LSB)') -DO(64,`DOELFTYPES(`MKSHAREDCONVERSIONTP',MSB)')')') - -define(`Xlate_TestBadArguments',` -void -tcArgs_tpNullArgs(void) -{ - Elf_Data ed, *r; - int error, result; - - TP_ANNOUNCE("TPFNNAME () with NULL arguments fails with " - "ELF_E_ARGUMENT"); - - memset(&ed, 0, sizeof(ed)); - - result = TET_PASS; - - if ((r = CallXlator(NULL, &ed, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("TPFNNAME(NULL, *, LSB) failed: r=%p error=\"%s\".", - (void *) r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(NULL, &ed, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("TPFNNAME(NULL, *, MSB) failed: r=%p error=\"%s\".", - (void *) r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, NULL, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("TPFNNAME(*, NULL, LSB) failed: r=%p error=\"%s\".", - (void *) r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, NULL, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("TPFNNAME(*, NULL, MSB) failed: r=%p error=\"%s\".", - (void *) r, elf_errmsg(error)); - - done: - tet_result(result); -} - -void -tcArgs_tpBadType(void) -{ - - Elf_Data ed, es, *r; - int error, result; - char buf[1024]; - - TP_ANNOUNCE("TPFNNAME () with an out of range type fails with " - "ELF_E_DATA."); - - result = TET_PASS; - - (void) memset(&es, 0, sizeof(es)); - (void) memset(&ed, 0, sizeof(ed)); - - es.d_version = ed.d_version = EV_CURRENT; - es.d_buf = ed.d_buf = buf; - es.d_size = ed.d_size = sizeof(buf); - - es.d_type = (Elf_Type) -1; - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME (*, *, LSB) (%d): r=%p error=\"%s\".", - es.d_type, (void *) r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME (*, *, MSB) (%d): r=%p error=\"%s\".", - es.d_type, (void *) r, elf_errmsg(error)); - goto done; - } - - es.d_type = ELF_T_NUM; - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME (*, *, LSB) (%d): r=%p error=%\"%s\".", - es.d_type, (void *) r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) - TP_FAIL("TPFNNAME (*, *, MSB) (%d): r=%p error=\"%s\".", - es.d_type, (void *) r, elf_errmsg(error)); - - - done: - tet_result(result); -} - -void -tcArgs_tpBadEncoding(void) -{ - Elf_Data ed, es, *r; - int error, result; - - TP_ANNOUNCE("TPFNNAME (*,*,BADENCODING) fails with " - "ELF_E_ARGUMENT."); - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - result = TET_PASS; - - if ((r = CallXlator(&ed, &es, ELFDATANONE-1)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("TPFNNAME (*, *, %d): r=%p error=\"%s\".", - ELFDATANONE-1, r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB+1)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("TPFNNAME (*, *, %d): r=%p error=\"%s\".", - ELFDATA2MSB+1, r, elf_errmsg(error)); - - done: - tet_result(result); -} - -void -tcArgs_tpDstVersion(void) -{ - Elf_Data ed, es, *r; - int error, result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("TPFNNAME (*,*,*) with an illegal dst version " - "fails with ELF_E_UNIMPL."); - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - es.d_buf = ed.d_buf = buf; - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT; - ed.d_version = EV_NONE; - - result = TET_PASS; - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_UNIMPL) { - TP_FAIL("TPFNNAME (*,*,LSB) ver=%d r=%p error=\"%s\".", - ed.d_version, r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_UNIMPL) - TP_FAIL("TPFNNAME (*,*,MSB) ver=%d r=%p error=\"%s\".", - ed.d_version, r, elf_errmsg(error)); - - done: - tet_result(result); -} - -void -tcArgs_tpSrcVersion(void) -{ - Elf_Data ed, es, *r; - int error, result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("TPFNNAME (*,*,*) with an illegal src version fails " - "with ELF_E_UNIMPL."); - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - es.d_buf = ed.d_buf = buf; - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT+1; - ed.d_version = EV_CURRENT; - - result = TET_PASS; - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_UNIMPL) { - TP_FAIL("TPFNNAME (*,*,LSB) ver=%d r=%p error=\"%s\".", - es.d_version, r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_UNIMPL) - TP_FAIL("TPFNNAME (*,*,MSB) ver=%d r=%p error=\"%s\".", - es.d_version, r, elf_errmsg(error)); - - done: - tet_result(result); -} - -/* - * Check for an unimplemented type. - */ -void -tcArgs_tpUnimplemented(void) -{ - Elf_Data ed, es, *r; - int error, i, result; - char sbuf[TPBUFSIZE]; /* large enough for any ELF type */ - char dbuf[TPBUFSIZE]; - - TP_ANNOUNCE("TPFNNAME""() on unimplemented types fails with " - "ELF_E_UNIMPL."); - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - ed.d_buf = dbuf; ed.d_size = sizeof(dbuf); - es.d_buf = sbuf; es.d_size = sizeof(sbuf); - es.d_version = ed.d_version = EV_CURRENT; - - result = TET_PASS; - - for (i = 0; i < ELF_T_NUM; i++) { - /* Skip over supported types. */ - switch (i) { - case ELF_T_MOVEP: - ifelse(ISELF64,`Y',`',` - case ELF_T_SXWORD: - case ELF_T_XWORD: -') - break; - default: - continue; - } - - es.d_type = i; - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_UNIMPL) { - TP_FAIL("TPFNNAME (*,*,LSB): type=%d r=%p " - "error=\"%s\".", i, r, elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_UNIMPL) { - TP_FAIL("TPFNNAME (*,*,LSB): type=%d r=%p " - "error=\"%s\".", i, r, elf_errmsg(error)); - goto done; - } - } - - done: - tet_result(result); -} -') - -/* - * MKMISALIGNEDTP(TYPE,C-NAME) - * - * Generate a test case for checking misaligned buffers. - */ - -define(`MKMISALIGNEDTP',` -void -tcBuffer_tpMisaligned_$1_`'__SZ__`'(void) -{ - Elf_Data ed, es, *r; - int count, error, result; - size_t fsz, msz; - char sb[TPBUFSIZE], db[TPBUFSIZE]; - struct testdata *td; - - TP_ANNOUNCE("TPFNNAME""($1) misaligned buffers with " - "ELF_E_DATA."); - - result = TET_PASS; - - td = &tests`'__SZ__[ELF_T_$1]; - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - es.d_type = es.d_type = td->tsd_type; - es.d_version = ed.d_version = EV_CURRENT; - - count = sizeof(sb) / msz; /* Note: msz >= fsz always. */ - - TO_M_OR_F(` - /* Misalign the destination for to-memory xfers. */ - es.d_size = count * fsz; - ed.d_size = count * msz; - - es.d_buf = sb; - ed.d_buf = db + 1; /* Guaranteed to be misaliged. */ - ',` - /* Misalign the source for to-file xfers. */ - - es.d_size = count * msz; - ed.d_size = count * fsz; - - es.d_buf = sb + 1; /* Guaranteed to be misaliged. */ - ed.d_buf = db;') - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME""(LSB) r=%p error=\"%s\".", r, - elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) - TP_FAIL("TPFNNAME""(MSB) r=%p error=\"%s\".", r, - elf_errmsg(error)); - - done: - tet_result(result); -}') - -define(`MKNONINTEGRALSRC',` -void -tcBuffer_tpSrcExtra_$1_`'__SZ__`'(void) -{ - Elf_Data ed, es, *r; - int count, error, result; - size_t fsz, msz; - char sb[TPBUFSIZE], db[TPBUFSIZE]; - struct testdata *td; - - TP_ANNOUNCE("TPFNNAME""($1) mis-sized source buffer is rejected with " - "ELF_E_DATA."); - - result = TET_PASS; - - td = &tests`'__SZ__[ELF_T_$1]; - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - ed.d_type = es.d_type = td->tsd_type; - ed.d_version = es.d_version = EV_CURRENT; - es.d_buf = sb; ed.d_buf = db; - - count = (sizeof(db) / msz) - 1; /* Note: msz >= fsz always. */ - - /* Add an extra byte to the source buffer size. */ - TO_M_OR_F(` - es.d_size = (count * fsz) + 1; - ed.d_size = count * msz;',` - es.d_size = (count * msz) + 1; - ed.d_size = count * fsz;') - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME""(LSB) r=%p error=\"%s\".", r, - elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) - TP_FAIL("TPFNNAME""(LSB) r=%p error=\"%s\".", r, - elf_errmsg(error)); - - done: - tet_result(result); - -}') - -define(`MKDSTTOOSMALL',` -void -tcBuffer_tpDstTooSmall_$1_`'__SZ__`'(void) -{ - Elf_Data ed, es, *r; - int count, error, result; - struct testdata *td; - size_t fsz, msz; - char sb[TPBUFSIZE], db[TPBUFSIZE]; - - TP_ANNOUNCE("TPFNNAME""($1) small destination buffers are rejected " - "with ELF_E_DATA."); - - result = TET_PASS; - - td = &tests`'__SZ__[ELF_T_$1]; - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - count = sizeof(sb) / msz; /* Note: msz >= fsz always. */ - - ed.d_type = es.d_type = td->tsd_type; - ed.d_version = es.d_version = EV_CURRENT; - es.d_buf = sb; ed.d_buf = db; - ed.d_size = 1; - - TO_M_OR_F(`es.d_size = sizeof(sb) / fsz;', - `es.d_size = sizeof(sb) / msz;') - - if ((r = CallXlator(&ed, &es, ELFDATA2LSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME""(LSB) r=%p error=\"%s\".", r, - elf_errmsg(error)); - goto done; - } - - if ((r = CallXlator(&ed, &es, ELFDATA2MSB)) != NULL || - (error = elf_errno()) != ELF_E_DATA) - TP_FAIL("TPFNNAME""(LSB) r=%p error=\"%s\".", r, - elf_errmsg(error)); - - done: - tet_result(result); -}') - -define(`Xlate_TestBadBuffers',` -void -tcBuffer_tpNullDataPtr(void) -{ - Elf_Data ed, es, *r; - int error, result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("TPFNNAME" "(...) with null d_buf pointers fails with " - "ELF_E_DATA."); - - (void) memset(&ed, 0, sizeof(ed)); - (void) memset(&es, 0, sizeof(es)); - - result = TET_PASS; - - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT; - ed.d_version = EV_CURRENT; - - es.d_buf = NULL; - ed.d_buf = buf; - if ((r = CallXlator(&ed, &es, ELFDATANONE)) != NULL || - (error = elf_errno()) != ELF_E_DATA) { - TP_FAIL("TPFNNAME""(...) src.d_buf=NULL r=%d error=\"%s\".", - r, elf_errmsg(error)); - goto done; - } - - es.d_buf = buf; - ed.d_buf = NULL; - - if ((r = CallXlator(&ed, &es, ELFDATANONE)) != NULL || - (error = elf_errno()) != ELF_E_DATA) - TP_FAIL("TPFNNAME""(...) dst.d_buf=NULL r=%d error=\"%s\".", - r, elf_errmsg(error)); - - done: - tet_result(result); -} - -/* - * Misaligned data. - */ - -ifdef(`ISELF32',`DO(32,`DOELFTYPES(`MKMISALIGNEDTP')')') -ifdef(`ISELF64',`DO(64,`DOELFTYPES(`MKMISALIGNEDTP')')') - -/* - * Overlapping buffers. - */ -void -tcBuffer_tpOverlap(void) -{ - Elf_Data ed, es, *r; - int error, result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("TPFNNAME""(...) overlapping buffers are rejected with " - "ELF_E_DATA."); - - es.d_buf = buf; ed.d_buf = buf+1; - es.d_version = ed.d_version = EV_CURRENT; - es.d_size = ed.d_size = sizeof(buf); - es.d_type = ELF_T_BYTE; - - result = TET_PASS; - - if ((r = CallXlator(&ed, &es, ELFDATANONE)) != NULL || - (error = elf_errno()) != ELF_E_DATA) - TP_FAIL("r=%p error=\"%s\".", r, elf_errmsg(error)); - - tet_result(result); -} - -/* - * Non-integral number of src elements. - */ -ifdef(`ISELF32',`DO(32,`DOELFTYPES(`MKNONINTEGRALSRC')')') -ifdef(`ISELF64',`DO(64,`DOELFTYPES(`MKNONINTEGRALSRC')')') - -/* - * Destination too small. - */ -ifdef(`ISELF32',`DO(32,`DOELFTYPES(`MKDSTTOOSMALL')')') -ifdef(`ISELF64',`DO(64,`DOELFTYPES(`MKDSTTOOSMALL')')') - -') -divert(0) diff --git a/contrib/elftoolchain/test/libelf/tset/common/xscn-1.yaml b/contrib/elftoolchain/test/libelf/tset/common/xscn-1.yaml deleted file mode 100644 index 8f74dd22..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/xscn-1.yaml +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.1 ---- -# $Id$ -# -# This file is used for tests requiring malformed extended section -# numbering. 'e_shnum' is set to zero, but the section at index -# SHN_UNDEF is not of type SHT_NULL. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - e_shnum: 0 - -sections: - - !Section # index 0 - sh_type: SHT_PROGBITS - - !Section - sh_type: SHT_STRTAB - sh_name: .shstrtab - sh_data: - - .shstrtab diff --git a/contrib/elftoolchain/test/libelf/tset/common/xscn-2.yaml b/contrib/elftoolchain/test/libelf/tset/common/xscn-2.yaml deleted file mode 100644 index c1135dc4..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/xscn-2.yaml +++ /dev/null @@ -1,22 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -# -# This file is used for tests requiring a well-formed ELF file that -# uses extended section numbering. -# -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section - sh_type: SHT_NULL - - !Section - sh_type: SHT_STRTAB - sh_index: 65537 - sh_name: .shstrtab - sh_data: - - .shstrtab diff --git a/contrib/elftoolchain/test/libelf/tset/common/xscn-3.yaml b/contrib/elftoolchain/test/libelf/tset/common/xscn-3.yaml deleted file mode 100644 index 0abb1cc3..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/xscn-3.yaml +++ /dev/null @@ -1,26 +0,0 @@ -%YAML 1.1 -# $Id$ ---- -# -# This file is used for tests requiring malformed extended section -# numbering for elf_getshstrndx(). 'e_shnum' is set to zero, but -# the section at index SHN_UNDEF is not of type SHT_NULL. `e_shstrndx' -# corresponds to a section > SHN_LORESERVE. - -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - e_shnum: 0 - e_shstrndx: 65537 - -sections: - - !Section # index 0 - sh_type: SHT_PROGBITS - - !Section - sh_type: SHT_STRTAB - sh_index: 65537 - sh_name: .shstrtab - sh_data: - - .shstrtab diff --git a/contrib/elftoolchain/test/libelf/tset/common/zerosection.yaml b/contrib/elftoolchain/test/libelf/tset/common/zerosection.yaml deleted file mode 100644 index acb7692f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/common/zerosection.yaml +++ /dev/null @@ -1,27 +0,0 @@ -%YAML 1.1 ---- -# $Id$ -# -# An ELF file containing a zero-sized section. - -ehdr: !Ehdr - e_ident: !Ident - ei_class: ELFCLASSNONE - ei_data: ELFDATANONE - e_type: ET_REL - -sections: - - !Section # index 0 - sh_type: SHT_NULL - - - !Section - sh_name: .shstrtab - sh_type: SHT_STRTAB - sh_data: - - .shstrtab - - .zerosection - - - !Section - sh_name: .zerosection - sh_offset: 2048 - sh_type: SHT_NOBITS diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_getehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf32_getehdr/Makefile deleted file mode 100644 index 4f6a2a77..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_getehdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_YAML= ehdr ehdr-malformed-1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_getehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf32_getehdr/ehdr.m4 deleted file mode 100644 index 5cb59ccf..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_getehdr/ehdr.m4 +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -define(`TS_EHDRFUNC',`_getehdr') -define(`TS_EHDRSZ',`32') -include(`ehdr_template.m4') diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_getphdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf32_getphdr/Makefile deleted file mode 100644 index dfb21754..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_getphdr/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= phdr.m4 -TS_DATA= ehdr.msb32 ehdr.lsb32 \ - phdr.msb32 phdr.lsb32 phdr.msb64 phdr.lsb64 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_getphdr/phdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf32_getphdr/phdr.m4 deleted file mode 100644 index 4f1c1a82..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_getphdr/phdr.m4 +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -#define TS_PHDRFUNC _getphdr -#define TS_PHDRSZ 32 -#include "phdr_template.c" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_getshdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf32_getshdr/Makefile deleted file mode 100644 index 7c4c3789..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_getshdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= shdr.m4 -TS_YAML= shdr - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_getshdr/shdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf32_getshdr/shdr.m4 deleted file mode 100644 index 9a3d67b7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_getshdr/shdr.m4 +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -include(`getshdr.m4') - -TP_NULL(32) - -TC_MAKE_REF_SHDR(32) -TP_SHDR(32,lsb) -TP_SHDR(32,msb) - - diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_newehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf32_newehdr/Makefile deleted file mode 100644 index b6364962..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_newehdr/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_DATA= ehdr.msb32 ehdr.lsb32 ehdr.msb64 ehdr.lsb64 \ - ehdr-malformed-1.lsb32 ehdr-malformed-1.msb32 \ - newehdr.lsb32 newehdr.msb32 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_newehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf32_newehdr/ehdr.m4 deleted file mode 100644 index 6134b093..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_newehdr/ehdr.m4 +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -define(`TS_EHDRFUNC',`_newehdr') -define(`TS_EHDRSZ',`32') -include(`ehdr_template.m4') - -include(`newehdr_template.m4') diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/Makefile b/contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/Makefile deleted file mode 100644 index 8ed745c8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= xlate.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/xlate.m4 b/contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/xlate.m4 deleted file mode 100644 index 00a31e6b..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetof/xlate.m4 +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -include(`elfts.m4') - -define(`TPFNNAME',`elf32_xlatetof') - -include(`xlate_template.m4') - -Xlate_TestConversions() -Xlate_TestConversionsSharedBuffer() - -Xlate_TestBadArguments() -Xlate_TestBadBuffers() diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/Makefile b/contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/Makefile deleted file mode 100644 index 8ed745c8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= xlate.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/xlate.m4 b/contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/xlate.m4 deleted file mode 100644 index 94270b95..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf32_xlatetom/xlate.m4 +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - - -#include -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -include(`elfts.m4') - -define(`TPFNNAME',`elf32_xlatetom') - -include(`xlate_template.m4') - -Xlate_TestConversions() -Xlate_TestConversionsSharedBuffer() - -Xlate_TestBadArguments() -Xlate_TestBadBuffers() diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_getehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf64_getehdr/Makefile deleted file mode 100644 index 4f6a2a77..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_getehdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_YAML= ehdr ehdr-malformed-1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_getehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf64_getehdr/ehdr.m4 deleted file mode 100644 index a0433586..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_getehdr/ehdr.m4 +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -define(`TS_EHDRFUNC',`_getehdr') -define(`TS_EHDRSZ',`64') -include(`ehdr_template.m4') diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_getphdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf64_getphdr/Makefile deleted file mode 100644 index bb735a85..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_getphdr/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= phdr.m4 -TS_DATA= ehdr.lsb64 ehdr.msb64 \ - phdr.lsb32 phdr.msb32 phdr.msb64 phdr.lsb64 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_getphdr/phdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf64_getphdr/phdr.m4 deleted file mode 100644 index cf60e20f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_getphdr/phdr.m4 +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -#define TS_PHDRFUNC _getphdr -#define TS_PHDRSZ 64 -#include "phdr_template.c" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_getshdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf64_getshdr/Makefile deleted file mode 100644 index bb116a58..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_getshdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= shdr.m4 -TS_DATA= shdr.msb64 shdr.lsb64 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_getshdr/shdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf64_getshdr/shdr.m4 deleted file mode 100644 index 72cfbf14..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_getshdr/shdr.m4 +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -include(`getshdr.m4') - -TP_NULL(64) - -TC_MAKE_REF_SHDR(64) -TP_SHDR(64,lsb) -TP_SHDR(64,msb) - - diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_newehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf64_newehdr/Makefile deleted file mode 100644 index 2ce7832d..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_newehdr/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_DATA= ehdr.msb64 ehdr.lsb64 ehdr.msb32 ehdr.lsb32 \ - ehdr-malformed-1.lsb64 ehdr-malformed-1.msb64 \ - newehdr.lsb64 newehdr.msb64 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_newehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf64_newehdr/ehdr.m4 deleted file mode 100644 index ffb1d8a7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_newehdr/ehdr.m4 +++ /dev/null @@ -1,43 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -define(`TS_EHDRFUNC',`_newehdr') -define(`TS_EHDRSZ',`64') -include(`ehdr_template.m4') - -include(`newehdr_template.m4') diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/Makefile b/contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/Makefile deleted file mode 100644 index 8ed745c8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= xlate.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/xlate.m4 b/contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/xlate.m4 deleted file mode 100644 index 2e7f29a8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetof/xlate.m4 +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -include(`elfts.m4') - -define(`TPFNNAME',`elf64_xlatetof') - -include(`xlate_template.m4') - -Xlate_TestConversions() -Xlate_TestConversionsSharedBuffer() - -Xlate_TestBadArguments() -Xlate_TestBadBuffers() diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/Makefile b/contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/Makefile deleted file mode 100644 index 8ed745c8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= xlate.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/xlate.m4 b/contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/xlate.m4 deleted file mode 100644 index 7e42f11f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf64_xlatetom/xlate.m4 +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - - -#include -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -include(`elfts.m4') - -define(`TPFNNAME',`elf64_xlatetom') - -include(`xlate_template.m4') - -Xlate_TestConversions() -Xlate_TestConversionsSharedBuffer() - -Xlate_TestBadArguments() -Xlate_TestBadBuffers() diff --git a/contrib/elftoolchain/test/libelf/tset/elf_begin/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_begin/Makefile deleted file mode 100644 index 9c7e144f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_begin/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= begin.m4 -TS_FILES= entry-too-large.ar -TS_DATA= check_elf.msb32 check_elf.lsb32 check_elf.msb64 \ - check_elf.lsb64 a.ar a-bsd.ar a.o zero -CLEANFILES+= a.c - -a.c: .SILENT - echo "int dummy;" > a.c - -a.ar: a.o .SILENT - ${AR} crv ${.TARGET} ${.ALLSRC} > /dev/null - -a-bsd.ar: a.o .SILENT - rm -f ${.TARGET} - ${ELFTOOLCHAIN_AR} -F bsd -crv ${.TARGET} ${.ALLSRC} > /dev/null - -zero: .SILENT - rm -f ${.TARGET}; touch ${.TARGET} - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_begin/begin.m4 b/contrib/elftoolchain/test/libelf/tset/elf_begin/begin.m4 deleted file mode 100644 index 54d5a19c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_begin/begin.m4 +++ /dev/null @@ -1,677 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -include(`elfts.m4') - -define(`TS_ARFILE_BSD',`"a-bsd.ar"') -define(`TS_ARFILE_SVR4',`"a.ar"') - -/* - * Test the `elf_begin' entry point. - */ - -/* - * Calling elf_begin() before elf_version() results in ELF_E_SEQUENCE. - * Note that these test cases should run as a separate invocation than - * the others since they need to be run before elf_version() is called. - */ -undefine(`FN') -define(`FN',` -void -tcSequenceUninitialized$1(void) -{ - Elf *e; - int error, result; - - TP_ANNOUNCE("elf_version() needs to be set before " - "using the elf_begin($1) API."); - - result = TET_PASS; - if ((e = elf_begin(-1, ELF_C_$1, NULL)) != NULL || - (error = elf_errno()) != ELF_E_SEQUENCE) - TP_FAIL("ELF_C_$1: e=%p error=%d \"%s\".", (void *) e, error, - elf_errmsg(error)); - - tet_result(result); -}') - -FN(`NULL') -FN(`READ') -FN(`WRITE') -FN(`RDWR') - -void -tcCmdInvalid(void) -{ - Elf *e; - int c, error, result; - - TP_ANNOUNCE("An invalid cmd value returns ELF_E_ARGUMENT."); - - TP_SET_VERSION(); - - result = TET_PASS; - for (c = ELF_C_NULL-1; c <= ELF_C_NUM; c++) { - if (c == ELF_C_READ || c == ELF_C_WRITE || c == ELF_C_RDWR || - c == ELF_C_NULL) - continue; - if ((e = elf_begin(-1, c, NULL)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("cmd=%d: e=%p error=%d .", c, - (void *) e, error); - break; - } - } - - done: - tet_result(result); -} - -void -tcCmdNull(void) -{ - Elf *e; - int result; - - TP_ANNOUNCE("cmd == ELF_C_NULL returns NULL."); - - TP_SET_VERSION(); - - result = (e = elf_begin(-1, ELF_C_NULL, NULL)) != NULL ? TET_FAIL : - TET_PASS; - - done: - tet_result(result); -} - - -/* - * Verify that opening non-regular files fail with ELF_E_ARGUMENT - */ -undefine(`FN') -define(`FN',` -void -tcNonRegular$1(void) -{ - Elf *e; - int error, fd, result; - - e = NULL; - fd = -1; - result = TET_FAIL; - - TP_ANNOUNCE("opening a $3 fails with ELF_E_ARGUMENT."); - - TP_SET_VERSION(); - - if ((fd = open("$2", O_RDONLY)) < 0) { - TP_UNRESOLVED("open \"$2\" failed: %s", strerror(errno)); - goto done; - } - - e = elf_begin(fd, ELF_C_READ, NULL); - - if (e == NULL && (error = elf_errno()) == ELF_E_ARGUMENT) - result = TET_PASS; /* Verify the error. */ - - done: - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(`DeviceFile', `/dev/null', `device file') -FN(`Directory', `.', `directory') - -/* - * Verify that for command modes ELF_C_READ and ELF_C_RDWR, opening - * a zero sized regular file fails with ELF_E_ARGUMENT. - */ - -undefine(`FN',`ZERO') -define(`ZERO',`"zero"') -define(`FN',` -void -tcZero$1(void) -{ - Elf *e; - int error, fd, result; - - e = NULL; - fd = -1; - result = TET_FAIL; - - TP_ANNOUNCE("opening an zero-sized file in mode ELF_C_$1 fails " - "with ELF_E_ARGUMENT."); - - TP_SET_VERSION(); - - if ((fd = open(ZERO, O_RDONLY)) < 0) { - TP_UNRESOLVED("open \"$2\" failed: %s", strerror(errno)); - goto done; - } - - e = elf_begin(fd, ELF_C_$1, NULL); - - if (e == NULL && (error = elf_errno()) == ELF_E_ARGUMENT) - result = TET_PASS; /* Verify the error. */ - - done: - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(`READ') -FN(`RDWR') - -#define TEMPLATE "TCXXXXXX" -#define FILENAME_SIZE 16 -char filename[FILENAME_SIZE]; - -int -setup_tempfile(void) -{ - int fd; - - (void) strncpy(filename, TEMPLATE, sizeof(filename)); - filename[sizeof(filename) - 1] = '\0'; - - if ((fd = mkstemp(filename)) < 0 || - write(fd, TEMPLATE, sizeof(TEMPLATE)) < 0) - return 0; - - (void) close(fd); - - return 1; - -} - -void -cleanup_tempfile(void) -{ - (void) unlink(filename); -} - - -define(`FN',` -void -tcCmdWriteFdRead_$1(void) -{ - Elf *e; - Elf$1_Ehdr *eh; - int error, fd, result; - - TP_ANNOUNCE("($1): cmd == ELF_C_WRITE fails with a non-writable FD."); - - TP_SET_VERSION(); - - if (setup_tempfile() == 0 || - (fd = open(filename, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("setup failed: %s", strerror(errno)); - goto done; - } - - result = TET_PASS; - error = -1; - - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) { - TP_UNRESOLVED("elf_begin() failed: %s", elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_getehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_getehdr() failed: %s", elf_errmsg(-1)); - goto done; - } - - /* Verify that elf_update() fails with the appropriate error. */ - if (elf_update(e, ELF_C_WRITE) >= 0) { - TP_FAIL("fn=%s, elf_update() succeeded unexpectedly.", - filename); - goto done; - } - - if ((error = elf_errno()) != ELF_E_IO) - TP_FAIL("fn=%s, error=%d \"%s\".", filename, error, - elf_errmsg(error)); - - done: - cleanup_tempfile(); - tet_result(result); -}') - -FN(32) -FN(64) - -void -tcCmdWriteFdRdwr(void) -{ - Elf *e; - int error, fd, result; - - TP_ANNOUNCE("cmd == ELF_C_WRITE on an 'rdwr' FD passes."); - - TP_SET_VERSION(); - - if (setup_tempfile() == 0 || - (fd = open(filename, O_RDWR, 0)) < 0) { - TP_UNRESOLVED("setup failed: %s", strerror(errno)); - goto done; - } - - result = TET_PASS; - error = -1; - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) { - error = elf_errno(); - TP_FAIL("fn=%s, error=%d \"%s\"", filename, error, - elf_errmsg(error)); - } - - done: - cleanup_tempfile(); - tet_result(result); -} - -void -tcCmdWriteFdWrite(void) -{ - Elf *e; - int error, fd, result; - - TP_ANNOUNCE("cmd == ELF_C_WRITE on write-only FD passes."); - - TP_SET_VERSION(); - - if (setup_tempfile() == 0 || - (fd = open(filename, O_WRONLY, 0)) < 0) { - TP_UNRESOLVED("setup failed: %s", strerror(errno)); - goto done; - } - - result = TET_PASS; - error = -1; - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) { - error = elf_errno(); - TP_FAIL("fn=%s, error=%d \"%s\"", filename, - error, elf_errmsg(error)); - } - - done: - cleanup_tempfile(); - tet_result(result); -} - -void -tcCmdWriteParamIgnored(void) -{ - Elf *e, *t; - int error, fd, fd1, result; - - TP_ANNOUNCE("cmd == ELF_C_WRITE ignores the last parameter."); - - TP_SET_VERSION(); - - if (setup_tempfile() == 0 || - (fd = open(filename, O_WRONLY, 0)) < 0 || - (fd1 = open(filename, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("setup failed: %s", strerror(errno)); - goto done; - } - - if ((t = elf_begin(fd1, ELF_C_READ, NULL)) == NULL) { - TP_UNRESOLVED("elf_begin() failed unexpectedly: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - error = -1; - if ((e = elf_begin(fd, ELF_C_WRITE, t)) == NULL) { - TP_FAIL("elf_begin() failed: \"%s\".", elf_errmsg(-1)); - } - - done: - cleanup_tempfile(); - tet_result(result); -} - - -/* - * Check that opening various classes/endianness of ELF files - * passes. - */ -undefine(`FN') -define(`FN',` -void -tcElfOpen$1$2(void) -{ - Elf *e; - int fd, result; - char *p; - - TP_ANNOUNCE("open(ELFCLASS$1,ELFDATA2`'TOUPPER($2)) succeeds."); - - TP_SET_VERSION(); - - fd = -1; - e = NULL; - result = TET_UNRESOLVED; - - if ((fd = open ("check_elf.$2$1", O_RDONLY)) < 0) { - TP_UNRESOLVED("open() failed: %s.", strerror(errno)); - goto done; - } - - if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { - TP_FAIL("elf_begin() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((p = elf_getident(e, NULL)) == NULL) { - TP_FAIL("elf_getident() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if (p[EI_CLASS] != ELFCLASS$1 || - p[EI_DATA] != ELFDATA2`'TOUPPER($2)) - TP_FAIL("class %d expected %d, data %d expected %d.", - p[EI_CLASS], ELFCLASS$1, p[EI_DATA], ELFDATA2`'TOUPPER($2)); - else - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Check an `fd' mismatch is detected. - */ -void -tcFdMismatch(void) -{ - Elf *e, *e2; - int error, fd, result; - - TP_ANNOUNCE("an fd mismatch is detected."); - - TP_SET_VERSION(); - - e = e2 = NULL; - fd = -1; - - if ((fd = open("check_elf.msb32", O_RDONLY)) < 0 || - (e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { - TP_UNRESOLVED("open(check_elf) failed: fd=%d.", fd); - goto done; - } - - result = TET_PASS; - - if ((e2 = elf_begin(fd+1, ELF_C_READ, e)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("elf_begin(%d+1) -> %p, error=%d \"%s\".", fd, - (void *) e2, error, elf_errmsg(error)); - done: - if (e) - (void) elf_end(e); - if (e2) - (void) elf_end(e2); - if (fd >= 0) - (void) close(fd); - tet_result(result); -} - -undefine(`ARFN') -define(`ARFN',` -/* - * Check that an $1-style AR archive detects a cmd mismatch. - */ -void -tcArCmdMismatchRDWR_$1(void) -{ - Elf *e, *e2; - int error, fd, result; - - TP_ANNOUNCE("($1): a cmd mismatch is detected."); - - TP_SET_VERSION(); - - result = TET_UNRESOLVED; - e = e2 = NULL; - fd = -1; - - /* Open the archive with ELF_C_READ. */ - _TS_OPEN_FILE(e, TS_ARFILE_$1, ELF_C_READ, fd, goto done;); - - /* Attempt to iterate through it with ELF_C_RDWR. */ - result = TET_PASS; - if ((e2 = elf_begin(fd, ELF_C_RDWR, e)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("e2=%p error=%d \"%s\".", (void *) e2, - error, elf_errmsg(error)); - done: - if (e) - (void) elf_end(e); - if (e2) - (void) elf_end(e2); - if (fd >= 0) - (void) close(fd); - tet_result(result); -} - -/* - * Check that a member is correctly retrieved for $1-style archives. - */ -void -tcArRetrieval_$1(void) -{ - Elf *e, *e1; - int fd, result; - Elf_Kind k; - - TP_ANNOUNCE("($1): an archive member is correctly retrieved."); - - TP_SET_VERSION(); - - e = e1 = NULL; - fd = -1; - - _TS_OPEN_FILE(e, TS_ARFILE_$1, ELF_C_READ, fd, goto done;); - - result = TET_PASS; - if ((e1 = elf_begin(fd, ELF_C_READ, e)) == NULL) { - TP_FAIL("elf_begin() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((k = elf_kind(e1)) != ELF_K_ELF) - TP_FAIL("kind %d, expected %d.", k, ELF_K_ELF); - - done: - if (e1) - (void) elf_end(e1); - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -} - -/* - * Check opening of ar(1) archives opened with elf_memory(). - */ - -void -tcArMemoryFdIgnored_$1(void) -{ - Elf *e, *e1; - int fd, result; - Elf_Kind k; - struct stat sb; - char *b; - - TP_ANNOUNCE("($1): The fd value is ignored for archives opened " - "with elf_memory()."); - - TP_SET_VERSION(); - - e = e1 = NULL; - b = NULL; - fd = -1; - result = TET_UNRESOLVED; - - /* - * First, populate a memory area with the contents of - * an ar(1) archive. - */ - - if ((fd = open(TS_ARFILE_$1, O_RDONLY)) < 0) { - TP_UNRESOLVED("open of \"" TS_ARFILE_$1 "\" failed: %s", - strerror(errno)); - goto done; - } - - if (fstat(fd, &sb) < 0) { - TP_UNRESOLVED("fstat failed: %s", strerror(errno)); - goto done; - } - - if ((b = malloc(sb.st_size)) == NULL) { - TP_UNRESOLVED("malloc failed: %s", strerror(errno)); - goto done; - } - - if (read(fd, b, sb.st_size) != sb.st_size) { - /* Deal with ERESTART? */ - TP_UNRESOLVED("read failed: %s", strerror(errno)); - goto done; - } - - if ((e = elf_memory(b, sb.st_size)) == NULL) { - TP_FAIL("elf_memory failed: %s", elf_errmsg(-1)); - goto done; - } - - /* - * Verify that the fd value is ignored for this case. - */ - if ((e1 = elf_begin(-2, ELF_C_READ, e)) == NULL) { - TP_FAIL("elf_begin() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((k = elf_kind(e1)) != ELF_K_ELF) - TP_FAIL("kind %d, expected %d.", k, ELF_K_ELF); - - result = TET_PASS; - - done: - if (b) - free(b); - if (e1) - (void) elf_end(e1); - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -} -') - -ARFN(`BSD') -ARFN(`SVR4') - -/* - * Verify behavior with a corrupted header containing a too-large size. - */ -void -tcArEntryTooLarge(void) -{ - Elf *ar_e, *e; - int error, fd, result; - - result = TET_UNRESOLVED; - ar_e = NULL; - e = NULL; - - TP_ANNOUNCE("elf_begin() returns ELF_E_ARCHIVE for too-large archive " - "entries."); - - TP_SET_VERSION(); - - _TS_OPEN_FILE(ar_e, "entry-too-large.ar", ELF_C_READ, fd, goto done;); - - if ((e = elf_begin(fd, ELF_C_READ, ar_e)) != NULL) { - TP_FAIL("elf_begin() succeeded."); - goto done; - } - - error = elf_errno(); - if (error != ELF_E_ARCHIVE) { - TP_FAIL("unexpected error %d", error); - goto done; - } - - result = TET_PASS; - -done: - if (e) - (void) elf_end(e); - if (ar_e) - (void) elf_end(ar_e); - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_begin/entry-too-large.ar b/contrib/elftoolchain/test/libelf/tset/elf_begin/entry-too-large.ar deleted file mode 100644 index 5cab1486..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_begin/entry-too-large.ar +++ /dev/null @@ -1,3 +0,0 @@ -! -a1.c/ 1551379738 1000 1000 100644 9 ` -1234567 diff --git a/contrib/elftoolchain/test/libelf/tset/elf_cntl/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_cntl/Makefile deleted file mode 100644 index 5f183a4e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_cntl/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= cntl.m4 -TS_DATA= a.ar -CLEANFILES+= a.c a.o - -a.c: .SILENT - echo "int foobar;" > ${.TARGET} - -a.ar: a.o .SILENT - rm -f ${.TARGET} - ${AR} crv ${.TARGET} ${.ALLSRC} > /dev/null - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_cntl/cntl.m4 b/contrib/elftoolchain/test/libelf/tset/elf_cntl/cntl.m4 deleted file mode 100644 index 1841cf15..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_cntl/cntl.m4 +++ /dev/null @@ -1,217 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * Test the `elf_cntl' API. - */ - -static char elf_file[] = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -/* - * A NULL elf parameter causes elf_cntl() to fail. - */ -void -tcInvalidNull(void) -{ - int error, result, ret; - - TP_ANNOUNCE("elf_cntl(NULL,...) fails with ELF_E_ARGUMENT."); - - TP_CHECK_INITIALIZATION(); - - ret = error = 0; - result = TET_PASS; - if ((ret = elf_cntl(NULL, ELF_C_FDREAD)) != -1 || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("ret=%d, error=%d \"%s\".", ret, error); - - tet_result(result); -} - -/* - * Invalid `cmd' values are rejected. - */ -void -tcInvalidInvalid(void) -{ - Elf *e; - int c, error, result, ret; - - TP_ANNOUNCE("elf_cntl(e,[INVALID]) fails with ELF_E_ARGUMENT."); - - TP_CHECK_INITIALIZATION(); - - TS_OPEN_MEMORY(e, elf_file); - - ret = error = 0; - result = TET_PASS; - for (c = ELF_C_FIRST-1; c <= ELF_C_LAST; c++) { - if (c == ELF_C_FDDONE || c == ELF_C_FDREAD) - continue; - if ((ret = elf_cntl(e, c)) != -1 || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("returned (%d) / error (%d) for " - "c = %d.", ret, error, c); - break; - } - } - - (void) elf_end(e); - tet_result(result); -} - -/* - * Calling elf_cntl(FDREAD) for files opened in read mode. - */ -void -tcReadFDREAD(void) -{ - Elf *e; - int result; - - TP_ANNOUNCE("elf_cntl(e,FDREAD) for a read-only descriptor succeeds."); - - TP_CHECK_INITIALIZATION(); - - TS_OPEN_MEMORY(e, elf_file); - - result = TET_PASS; - if (elf_cntl(e, ELF_C_FDREAD) != 0) - TP_FAIL("elf_errmsg=\"%s\".", elf_errmsg(-1)); - - (void) elf_end(e); - tet_result(result); -} - -static char pathname[PATH_MAX]; - -/* - * elf_cntl(FDREAD) doesn't make sense for a descriptor opened - * for writing. - */ -void -tcWriteFDREAD(void) -{ - Elf *e; - int err, fd, result, ret; - - TP_ANNOUNCE("elf_cntl(e,FDREAD) for a descriptor opened for write " - "fails with ELF_E_MODE."); - - TP_CHECK_INITIALIZATION(); - - (void) strncpy(pathname, "/tmp/TCXXXXXX", sizeof(pathname)); - pathname[sizeof(pathname) - 1] = '\0'; - - if ((fd = mkstemp(pathname)) == -1 || - (e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) { - TP_UNRESOLVED("elf_begin(%d,WRITE,NULL) failed."); - goto done; - } - - result = TET_PASS; - if ((ret = elf_cntl(e, ELF_C_FDREAD)) != -1 || - (err = elf_errno()) != ELF_E_MODE) - TP_FAIL("ret (%d) error (%d).", ret, err); - - done: - (void) elf_end(e); - (void) unlink(pathname); - tet_result(result); -} - -/* - * An elf_cntl(FDDONE) causes a subsequent elf_update(WRITE) to fail. - */ - -void -tcWriteFDDONE(void) -{ - Elf *e; - Elf32_Ehdr *eh; - int err, fd, result; - off_t ret; - - TP_ANNOUNCE("elf_cntl(e,FDDONE) makes a subsequent " - "elf_update(ELF_C_WRITE) fail with ELF_E_SEQUENCE."); - - TP_CHECK_INITIALIZATION(); - - (void) strncpy(pathname, "/tmp/TCXXXXXX", sizeof(pathname)); - pathname[sizeof(pathname) - 1] = '\0'; - - if ((fd = mkstemp(pathname)) == -1 || - (e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) { - TP_UNRESOLVED("elf_begin(%d,WRITE,NULL) failed."); - goto done; - } - - if (elf_cntl(e, ELF_C_FDDONE) == -1) { - TP_FAIL("elf_cntl(e,FDONE) failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if (elf_flagelf(e, ELF_C_SET, ELF_F_DIRTY) == 0) { - TP_UNRESOLVED("elf_flagelf() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((eh = elf32_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf32_newehdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - if ((ret = elf_update(e, ELF_C_WRITE)) != (off_t) -1 || - (err = elf_errno()) != ELF_E_SEQUENCE) - TP_FAIL("ret (%jd) err (%d).", (uint64_t) ret, err); - - done: - tet_result(result); - - (void) elf_end(e); - (void) unlink(pathname); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_end/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_end/Makefile deleted file mode 100644 index f8ce94e0..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_end/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= end.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_end/end.m4 b/contrib/elftoolchain/test/libelf/tset/elf_end/end.m4 deleted file mode 100644 index 7d6e7cdd..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_end/end.m4 +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -/* - * Test the `elf_end' entry point. - */ - -void -tcEndNullOk(void) -{ - TP_ANNOUNCE("a NULL argument is allowed."); - - tet_result(elf_end(NULL) == 0 ? TET_PASS : TET_FAIL); -} - -char data[] = "0xDEADC0DE"; - -void -tcBeginEndPair(void) -{ - Elf *e; - - TP_ANNOUNCE("a single begin/end pair works"); - - TP_CHECK_INITIALIZATION(); - - TS_OPEN_MEMORY(e,data); - - tet_result (elf_end(e) == 0 ? TET_PASS : TET_FAIL); -} - -void -tcNestedCount(void) -{ - int r1, r2; - Elf *e, *e1; - - TP_ANNOUNCE("begin/end pairs nest correctly"); - - TP_CHECK_INITIALIZATION(); - - TS_OPEN_MEMORY(e,data); - - if ((e1 = elf_begin(-1, ELF_C_READ, e)) != e) { - tet_result(TET_UNRESOLVED); - return; - } - - if ((r1 = elf_end(e1)) != 1 || - (r2 = elf_end(e)) != 0) { - tet_printf("fail: r1=%d r2=%d.", r1, r2); - tet_result(TET_FAIL); - return; - } - - tet_result(TET_PASS); -} - -/* - * TODO - * - closing a member of an archive should decrement the parent's activation - * count. - * - opening a member of an archive should increment the parent's activation - * count. - * - What do we do about out of order elf_end()'s on archives and members. - */ diff --git a/contrib/elftoolchain/test/libelf/tset/elf_errmsg/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_errmsg/Makefile deleted file mode 100644 index ff9b73a8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_errmsg/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= errmsg.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_errmsg/errmsg.m4 b/contrib/elftoolchain/test/libelf/tset/elf_errmsg/errmsg.m4 deleted file mode 100644 index dcae2a0a..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_errmsg/errmsg.m4 +++ /dev/null @@ -1,153 +0,0 @@ -/*- - * Copyright (c) 2006,2010,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -#include -#include - -#include "tet_api.h" - -/* - * Test the `elf_errmsg' entry point. - */ - -/* - * Assertion: the function returns NULL if the argument is zero and - * there is no pending error in the library. - */ -void -tcZeroNoerror(void) -{ - - TP_ANNOUNCE("returns NULL with zero & no current error"); - - (void) elf_errno(); /* discard current error number */ - - if (elf_errmsg(0) == NULL) - tet_result(TET_PASS); - else - tet_result(TET_FAIL); -} - -/* - * An error value of -1 should return non-NULL - */ - -define(`NO_ERROR_MESSAGE',`"No Error"')dnl Needs to match the string in "libelf/elf_errmsg.c". - -void -tcMinusoneNoerror(void) -{ - int result; - const char *msg; - - TP_ANNOUNCE("returns non-null for arg -1 & no current error"); - - (void) elf_errno(); /* discard stored error */ - - result = TET_UNRESOLVED; - - msg = elf_errmsg(-1); - if (msg == NULL) { - TP_FAIL("null return from elf_errmsg()"); - goto done; - } - - if (strcmp(msg, NO_ERROR_MESSAGE)) { - TP_FAIL("unexpected message \"%s\"", msg); - goto done; - } - - result = TET_PASS; - -done: - tet_result(result); -} - -/* - * Assertion: All error numbers from 1..NUM return a non-null string. - */ - -void -tcCheckAllValidErrorMessages(void) -{ - int n, result; - const char *msg; - - TP_ANNOUNCE("returns non-null for all valid error numbers"); - - (void) elf_errno(); /* discard stored error */ - - result = TET_UNRESOLVED; - - for (n = ELF_E_NONE+1; n < ELF_E_NUM; n++) { - if ((msg = elf_errmsg(n)) == NULL) { - TP_FAIL("null return from elf_errmsg()"); - goto done; - } - } - - result = TET_PASS; - -done: - tet_result(result); - -} - -/* - * Assertion: with an error pending, elf_errmsg(0) returns a non-NULL - * pointer. - */ - -void -tcNonNullWithErrorPending(void) -{ - int result, version; - const char *msg; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("non null error message is returned for a pending error"); - - /* Generate an error, e.g., ELF_E_VERSION. */ - if ((version = elf_version(EV_CURRENT+1)) != EV_NONE) { - TP_UNRESOLVED("elf_version() returned %d", version); - goto done; - } - - if ((msg = elf_errmsg(0)) == NULL) { - TP_FAIL("elf_errmsg() returned NULL"); - goto done; - } - - result = TET_PASS; - -done: - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_errno/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_errno/Makefile deleted file mode 100644 index 7297f3a9..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_errno/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= errno.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_errno/errno.m4 b/contrib/elftoolchain/test/libelf/tset/elf_errno/errno.m4 deleted file mode 100644 index 58e9355c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_errno/errno.m4 +++ /dev/null @@ -1,185 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -#include -#include -#include -#include -#include - -#include "tet_api.h" - -/* - * Test the `elf_errno' entry point. - * - * Specific errors expected from other elf_* APIs are tested in the test - * cases for those APIs. - * - * The tests here only check the behaviour of the elf_errno() API. - */ - -/* - * Assertion: The initial value of the libraries error number is zero. - */ - -void -tcInitialValue(void) -{ - int err; - - TP_ANNOUNCE("The initial error value must be zero."); - err = elf_errno(); - tet_result(err == 0 ? TET_PASS : TET_FAIL); -} - -/* - * Assertion: an elf_errno() call resets the stored error number. - */ - -void -tcReset(void) -{ - int err; - - TP_ANNOUNCE("A pending error number must be reset by elf_errno()."); - - (void) elf_errno(); /* discard stored error */ - err = elf_errno(); - tet_result(err == 0 ? TET_PASS : TET_FAIL); -} - -/* - * Assertion: elf_begin with cmd == ELF_C_NULL does not reset the - * error value. - */ - -void -tcNonResetWithNull(void) -{ - int error, fd, result; - Elf *e, *e1; - - result = TET_UNRESOLVED; - fd = -1; - e = e1 = NULL; - - TP_ANNOUNCE("a pending error number is not reset by " - "elf_begin(ELF_C_NULL)."); - - TP_SET_VERSION(); - - /* Force an error. */ - if ((fd = open(".", O_RDONLY)) < 0) { - TP_UNRESOLVED("open(.) failed: %s", strerror(errno)); - goto done; - } - - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) != NULL) { - TP_UNRESOLVED("elf_begin(ELF_C_WRITE) succeeded " - "unexpectedly."); - goto done; - } - - /* Invoke an operation with ELF_C_NULL */ - if ((e1 = elf_begin(fd, ELF_C_NULL, NULL)) != NULL) { - TP_FAIL("elf_begin(ELF_C_NULL) returned non-null (%p)", - (void *) e1); - goto done; - } - - /* Recheck the old error. */ - if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected error %d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - - if (e) - elf_end(e); - if (e1) - elf_end(e1); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * Assertion: elf_errno() retrieves the expected error, when one is pending. - */ - -void -tcExpectedErrorIsReturned(void) -{ - int error, fd, result; - Elf *e; - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TP_ANNOUNCE("A pending error number is correctly returned."); - - TP_SET_VERSION(); - - /* Force an error. */ - if ((fd = open(".", O_RDONLY)) < 0) { - TP_UNRESOLVED("open(.) failed: %s", strerror(errno)); - goto done; - } - - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) != NULL) { - TP_UNRESOLVED("elf_begin(ELF_C_WRITE) succeeded " - "unexpectedly."); - goto done; - } - - /* Check the current error. */ - if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected error %d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_fill/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_fill/Makefile deleted file mode 100644 index a58c3aa0..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_fill/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= fill.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_fill/fill.m4 b/contrib/elftoolchain/test/libelf/tset/elf_fill/fill.m4 deleted file mode 100644 index 037b68fd..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_fill/fill.m4 +++ /dev/null @@ -1,558 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -define(`TS_ALIGN', 512) -define(`TS_FILLCHAR', `0xAB') -define(`TS_OFFSET_1', 512) -define(`TS_OFFSET_2', 1024) -define(`TS_SHDR_OFFSET', 2048) - -/* - * Test the `elf_fill' entry point. - */ - -static char testdata[] = { - 0xAA, 0xBB, 0xCC, 0xDD, - 0xEE, 0xFF, 0x99, 0x88 -}; - -/* - * Check that gaps in the file are correctly filled with the - * specified fill character. - */ -undefine(`FN') -define(`FN',` -void -tcDefaultLayout$2$1(void) -{ - Elf *e; - Elf$1_Ehdr *eh; - Elf$1_Shdr *sh; - Elf_Scn *scn; - Elf_Data *d; - int fd, result; - size_t fsz; - off_t rc; - unsigned char *p, *r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("$2$1: elf_fill()/lib-layout fills gaps."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - r = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - /* - * We create an ELF file with a section with a 1K and 2K alignments - * and verify that the gaps are filled appropriately. - */ - - elf_fill(TS_FILLCHAR); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2$2; - - /* - * Create the first section. - */ - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_scn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - sh->sh_type = SHT_PROGBITS; - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_align = TS_ALIGN; - d->d_buf = testdata; - d->d_size = sizeof(testdata); - d->d_type = ELF_T_BYTE; - - /* - * Create the second section. - */ - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_scn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - sh->sh_type = SHT_PROGBITS; - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - d->d_align = TS_ALIGN; - d->d_buf = testdata; - d->d_size = sizeof(testdata); - d->d_type = ELF_T_BYTE; - - if ((rc = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - - /* - * Mmap() in the file and check that the contents match. - */ - - if ((fd = open(TS_NEWFILE, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open() failed: %s.", strerror(errno)); - goto done; - } - - if ((r = mmap(NULL, (size_t) rc, PROT_READ, MAP_SHARED, fd, - (off_t) 0)) == MAP_FAILED) { - TP_UNRESOLVED("mmap() failed: %s.", strerror(errno)); - goto done; - } - - /* Check the first gap */ - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("elf$1_fsize(ELF_T_EHDR) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Section data would be placed at the next alignment boundary. */ - for (p = r + fsz; p < r + TS_ALIGN; p++) - if (*p != TS_FILLCHAR) { - TP_FAIL("offset 0x%x [%d] != %d", p - r, *p, - TS_FILLCHAR); - goto done; - } - - /* Check whether valid contents exist at first section offset. */ - if (memcmp(r + TS_ALIGN, testdata, sizeof(testdata)) != 0) { - TP_FAIL("memcmp(first) failed."); - goto done; - } - - /* Check the between sections. */ - for (p = r + TS_ALIGN + sizeof(testdata); p < r + 2*TS_ALIGN; p++) - if (*p != TS_FILLCHAR) { - TP_FAIL("offset 0x%x [%d] != %d", p - r, *p, - TS_FILLCHAR); - goto done; - } - - /* Check whether valid contents exist at second section offset. */ - if (memcmp(r + 2*TS_ALIGN, testdata, sizeof(testdata)) != 0) { - TP_FAIL("memcmp(second) failed."); - goto done; - } - - result = TET_PASS; - done: - if (r) - (void) munmap(r, rc); - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - unlink(TS_NEWFILE); - tet_result(result); -}') - -FN(32,LSB) -FN(32,MSB) -FN(64,LSB) -FN(64,MSB) - - -/* - * Check that regions are filled correctly, for application specified - * layouts. - */ -define(`FN',` -void -tcAppLayout$2$1(void) -{ - Elf *e; - Elf$1_Ehdr *eh; - Elf$1_Shdr *sh; - Elf_Scn *scn; - Elf_Data *d; - int fd, result; - size_t fsz; - off_t rc; - unsigned char *p, *r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("$2$1: elf_fill()/app-layout fills gaps."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - r = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - /* - * We create an ELF file with a section with a 1K and 2K alignments - * and verify that the gaps are filled appropriately. - */ - - elf_fill(TS_FILLCHAR); - if (elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT) != ELF_F_LAYOUT) { - TP_UNRESOLVED("elf_flagdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2$2; - - /* - * Create the first section. - */ - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - sh->sh_type = SHT_PROGBITS; - sh->sh_offset = TS_OFFSET_2; - sh->sh_addralign = 1; - sh->sh_size = sizeof(testdata); - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - d->d_align = 1; - d->d_off = 0; - d->d_buf = testdata; - d->d_size = sizeof(testdata); - d->d_type = ELF_T_BYTE; - - /* - * Create the second section, physically located BEFORE the - * first section. - */ - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_scn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - sh->sh_type = SHT_PROGBITS; - sh->sh_offset = TS_OFFSET_1; - sh->sh_addralign = 1; - sh->sh_size = sizeof(testdata); - - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - d->d_align = 1; - d->d_off = 0; - d->d_buf = testdata; - d->d_size = sizeof(testdata); - d->d_type = ELF_T_BYTE; - - /* - * Position the section header after section data. - */ - eh->e_shoff = TS_SHDR_OFFSET; - - if ((rc = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - - /* - * Mmap() in the file and check that the contents match. - */ - - if ((fd = open(TS_NEWFILE, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open() failed: %s.", strerror(errno)); - goto done; - } - - if ((r = mmap(NULL, (size_t) rc, PROT_READ, MAP_SHARED, fd, - (off_t) 0)) == MAP_FAILED) { - TP_UNRESOLVED("mmap() failed: %s.", strerror(errno)); - goto done; - } - - /* Check the first gap */ - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("elf$1_fsize(ELF_T_EHDR) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - for (p = r + fsz; p < r + TS_OFFSET_1; p++) - if (*p != TS_FILLCHAR) { - TP_FAIL("offset 0x%x [%d] != %d", p - r, *p, - TS_FILLCHAR); - goto done; - } - - /* Check whether valid contents exist at first section offset. */ - if (memcmp(r + TS_OFFSET_1, testdata, sizeof(testdata)) != 0) { - TP_FAIL("memcmp(first) failed."); - goto done; - } - - /* Check the second gap. */ - for (p = r + TS_OFFSET_1 + sizeof(testdata); p < r + TS_OFFSET_2; p++) - if (*p != TS_FILLCHAR) { - TP_FAIL("offset 0x%x [%d] != %d", p - r, *p, - TS_FILLCHAR); - goto done; - } - - /* Check whether valid contents exist at second section offset. */ - if (memcmp(r + TS_OFFSET_2, testdata, sizeof(testdata)) != 0) { - TP_FAIL("memcmp(second) failed."); - goto done; - } - - /* Check the gap till the shdr table. */ - for (p = r + TS_OFFSET_2 + sizeof(testdata); - p < r + TS_SHDR_OFFSET; - p++) - if (*p != TS_FILLCHAR) { - TP_FAIL("offset 0x%x [%d] != %d", p - r, *p, - TS_FILLCHAR); - goto done; - } - - result = TET_PASS; - - done: - if (r) - (void) munmap(r, rc); - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - unlink(TS_NEWFILE); - tet_result(result); -}') - -FN(32,LSB) -FN(32,MSB) -FN(64,LSB) -FN(64,MSB) - -/* - * Check that the region between the Ehdr and Phdr is filled correctly, - * when the application specifies the file layout. - */ -define(`FN',` -void -tcAppLayoutEhdrPhdrGap$2$1(void) -{ - Elf *e; - Elf$1_Ehdr *eh; - Elf$1_Phdr *ph; - int fd, result; - size_t fsz; - off_t rc; - unsigned char *p, *r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("$2$1: elf_fill()/app-layout fills gaps."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - r = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - /* - * We create an ELF file with the PHDR placed an offset away - * from the EHDR. - */ - elf_fill(TS_FILLCHAR); - if (elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT) != ELF_F_LAYOUT) { - TP_UNRESOLVED("elf_flagdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2$2; - - /* - * Create the PHDR. - */ - if ((ph = elf$1_newphdr(e, 1)) == NULL) { - TP_UNRESOLVED("elf_newphdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* - * Position the PHDR. - */ - eh->e_phoff = TS_OFFSET_1; - - /* - * Update the ELF object. - */ - if ((rc = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - - /* - * Mmap() in the file and check that the contents match. - */ - - if ((fd = open(TS_NEWFILE, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open() failed: %s.", strerror(errno)); - goto done; - } - - if ((r = mmap(NULL, (size_t) rc, PROT_READ, MAP_SHARED, fd, - (off_t) 0)) == MAP_FAILED) { - TP_UNRESOLVED("mmap() failed: %s.", strerror(errno)); - goto done; - } - - /* Check the gap between the EHDR and the PHDR. */ - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("elf$1_fsize(ELF_T_EHDR) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - for (p = r + fsz; p < r + TS_OFFSET_1; p++) - if (*p != TS_FILLCHAR) { - TP_FAIL("offset 0x%x [%d] != %d", p - r, *p, - TS_FILLCHAR); - goto done; - } - - result = TET_PASS; - - done: - if (r) - (void) munmap(r, rc); - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - unlink(TS_NEWFILE); - tet_result(result); -}') - -FN(32,LSB) -FN(32,MSB) -FN(64,LSB) -FN(64,MSB) diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/Makefile deleted file mode 100644 index a24caa73..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= flagarhdr.m4 - -TS_DATA= a.ar -CLEANFILES+= a1 - -a1: .SILENT - echo "a1" > ${.TARGET} - -a.ar: a1 .SILENT - ${AR} crv ${.TARGET} a1 > /dev/null - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/flagarhdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/flagarhdr.m4 deleted file mode 100644 index 4d65b543..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagarhdr/flagarhdr.m4 +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * Copyright (c) 2008 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagarhdr(). - */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * The following defines to match that in ./Makefile. - */ -define(`TP_ARFILE',`"a.ar"') - - -/* - * Boiler plate to get a valid ELF pointer. - */ -define(`_TP_DECLARATIONS',` - int fd; - Elf *ar, *member; - Elf_Arhdr *arh;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - ar = member = NULL; - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - if ((member = elf_begin(fd, ELF_C_READ, ar)) == NULL) { - TP_UNRESOLVED("retrieval of archive member failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((arh = elf_getarhdr(member)) == NULL) { - TP_UNRESOLVED("elf_getarhdr() on member failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } -') -define(`_TP_EPILOGUE',` - done: - if (member) - (void) elf_end(member); - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); -') - -TP_FLAG_NULL(`elf_flagarhdr'); -TP_FLAG_ILLEGAL_CMD(`elf_flagarhdr',`arh') -TP_FLAG_CLR(`elf_flagarhdr',`arh') -TP_FLAG_SET(`elf_flagarhdr',`arh') -TP_FLAG_ILLEGAL_FLAG(`elf_flagarhdr',`arh',`ELF_F_DIRTY') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagdata/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagdata/Makefile deleted file mode 100644 index 0554fc78..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagdata/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= data.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagdata/data.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagdata/data.m4 deleted file mode 100644 index 4b4acb50..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagdata/data.m4 +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagdata(). - */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * A Null argument is allowed. - */ - -TP_FLAG_NULL(`elf_flagdata') - -/* Boilerplate for getting hold of a valid Elf_Data structure. */ - -define(`_TP_DECLARATIONS',` - int fd; - Elf *e; - Elf32_Ehdr *eh; - Elf_Scn *scn; - Elf_Data *d;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd); - - if ((eh = elf32_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf_newehdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", elf_errmsg(-1)); - goto done; - }') -define(`_TP_EPILOGUE',` - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE);') - -/* - * An illegal cmd value is rejected. - */ - -TP_FLAG_ILLEGAL_CMD(`elf_flagdata',`d') - -/* - * Legal cmd values are allowed. - */ -TP_FLAG_CLR(`elf_flagdata',`d') -TP_FLAG_SET(`elf_flagdata',`d') - -/* - * Illegal flag values are rejected. - */ -TP_FLAG_ILLEGAL_FLAG(`elf_flagdata',`d',`ELF_F_DIRTY') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagehdr/Makefile deleted file mode 100644 index daa2998f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagehdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_DATA= ehdr.lsb32 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagehdr/ehdr.m4 deleted file mode 100644 index 0203d079..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagehdr/ehdr.m4 +++ /dev/null @@ -1,115 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagehdr(). - */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * A Null argument is allowed. - */ - -TP_FLAG_NULL(`elf_flagehdr') - -/* Boilerplate for getting hold of a valid Ehdr pointer */ - -define(`_TP_DECLARATIONS',` - int fd; - Elf *e; - Elf32_Ehdr *eh;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd); - - if ((eh = elf32_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf_newehdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - }') -define(`_TP_EPILOGUE',` - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE);') - -TP_FLAG_NON_ELF(`elf_flagehdr') - -TP_FLAG_ILLEGAL_CMD(`elf_flagehdr',`e') - -TP_FLAG_CLR(`elf_flagehdr',`e') -TP_FLAG_SET(`elf_flagehdr',`e') - -TP_FLAG_ILLEGAL_FLAG(`elf_flagehdr',`e',`ELF_F_DIRTY') - -/* - * An out-of-sequence call is detected. - */ -_TP_FLAG_FN(`tcArgsSequence',` - int error, fd; - unsigned int f; - Elf *e;',` - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("Out of sequence use is detected."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, "ehdr.lsb32", ELF_C_READ, fd); - - result = TET_PASS; - if ((f = elf_flagehdr(e, ELF_C_SET, ELF_F_DIRTY)) != 0 || - (error = elf_errno()) != ELF_E_SEQUENCE) { - TP_FAIL("flag=0x%x, error=%d \"%s\".", f, error, - elf_errmsg(error)); - goto done; - }',`_TP_EPILOGUE') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagelf/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagelf/Makefile deleted file mode 100644 index 9dc92593..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagelf/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= elf.m4 -TS_DATA= a.ar - -CLEANFILES= zero - -zero: - touch ${.TARGET} - -a.ar: zero - rm -f ${.TARGET} - ar crv ${.TARGET} ${.ALLSRC} - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagelf/elf.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagelf/elf.m4 deleted file mode 100644 index a689f4a3..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagelf/elf.m4 +++ /dev/null @@ -1,133 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagelf(). - */ - -IC_REQUIRES_VERSION_INIT(); - -TP_FLAG_NULL(`elf_flagelf') - -/* - * Boiler plate to get a valid ELF pointer. - */ -define(`_TP_DECLARATIONS',` - int fd; - Elf *e;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd);') -define(`_TP_EPILOGUE',` - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE);') - -TP_FLAG_NON_ELF(`elf_flagelf') - -TP_FLAG_ILLEGAL_CMD(`elf_flagelf',`e') - -TP_FLAG_CLR(`elf_flagelf',`e') -TP_FLAG_SET(`elf_flagelf',`e') - -TP_FLAG_ILLEGAL_FLAG(`elf_flagelf',`e', - `ELF_F_DIRTY|ELF_F_LAYOUT|ELF_F_ARCHIVE|ELF_F_ARCHIVE_SYSV') - - -define(`TS_ARFILE',`"a.ar"') - -dnl Helper function. - -define(`_FN',` -void -$1(void) -{ - int error, fd, result, ret; - Elf *e; - - TP_ANNOUNCE($2); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, $3, $4, fd); - - result = TET_PASS; - if ((ret = elf_flagelf(e, ELF_C_SET, $5)) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("ret=%d,error=%d \"%s\".", ret, error, - elf_errmsg(error)); - goto done; - } - - _TP_EPILOGUE() - - tet_result(result); -}') - -/* - * Attempting to set ELF_F_ARCHIVE on an object opened with ELF_C_READ - * should fail. - */ -_FN(`tcArgsArchiveFlagOnReadFD', - `"Setting ELF_F_ARCHIVE on an object opened with " - "ELF_C_READ should fail."', - TS_ARFILE, ELF_C_READ, - ELF_F_ARCHIVE) - -/* - * Attempting to set ELF_F_ARCHIVE_SYSV without ELF_F_ARCHIVE should fail. - */ -_FN(`tcArgsArchiveFlagSysV', - `"Setting ELF_F_ARCHIVE_SYSV without ELF_F_ARCHIVE should fail."', - TS_NEWFILE, ELF_C_WRITE, - ELF_F_ARCHIVE_SYSV) diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagphdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagphdr/Makefile deleted file mode 100644 index 0888fcd7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagphdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= phdr.m4 -TS_DATA= phdr.lsb32 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagphdr/phdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagphdr/phdr.m4 deleted file mode 100644 index 91a51b3c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagphdr/phdr.m4 +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagdata(). - */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * A Null argument is allowed. - */ - -TP_FLAG_NULL(`elf_flagphdr') - -define(`_TP_DECLARATIONS',` - int fd; - Elf *e; - Elf32_Ehdr *eh; - Elf32_Phdr *ph;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd); - - if ((eh = elf32_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf_newehdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((ph = elf32_newphdr(e, 1)) == NULL) { - TP_UNRESOLVED("elf_newphdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - }') -define(`_TP_EPILOGUE',` - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE);') - -TP_FLAG_ILLEGAL_CMD(`elf_flagphdr',`e') - -TP_FLAG_CLR(`elf_flagphdr',`e') -TP_FLAG_SET(`elf_flagphdr',`e') - -TP_FLAG_ILLEGAL_FLAG(`elf_flagphdr',`e',`ELF_F_DIRTY') - -/* - * An out-of-sequence call is detected. - */ -_TP_FLAG_FN(`tcArgsSequence',` - int error, fd; - unsigned int f; - Elf *e;',` - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("Out of sequence use is detected."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, "phdr.lsb32", ELF_C_READ, fd); - - result = TET_PASS; - if ((f = elf_flagphdr(e, ELF_C_SET, ELF_F_DIRTY)) != 0 || - (error = elf_errno()) != ELF_E_SEQUENCE) { - TP_FAIL("flag=0x%x, error=%d \"%s\".", f, error, - elf_errmsg(error)); - goto done; - }',`_TP_EPILOGUE') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagscn/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagscn/Makefile deleted file mode 100644 index b72947fe..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagscn/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= scn.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagscn/scn.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagscn/scn.m4 deleted file mode 100644 index 3c6cbc7d..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagscn/scn.m4 +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagdata(). - */ - -IC_REQUIRES_VERSION_INIT(); - -TP_FLAG_NULL(`elf_flagscn') - -/* Boilerplate for getting hold of a valid Elf_Scn pointer */ -define(`_TP_DECLARATIONS',` - int fd; - Elf *e; - Elf32_Ehdr *eh; - Elf_Scn *scn;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd); - - if ((eh = elf32_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf_newehdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - }') -define(`_TP_EPILOGUE',` - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE);') - -TP_FLAG_ILLEGAL_CMD(`elf_flagscn',`scn') - -TP_FLAG_CLR(`elf_flagscn',`scn') -TP_FLAG_SET(`elf_flagscn',`scn') - -TP_FLAG_ILLEGAL_FLAG(`elf_flagscn',`scn',`ELF_F_DIRTY') - - diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagshdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_flagshdr/Makefile deleted file mode 100644 index 090fd747..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagshdr/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= shdr.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_flagshdr/shdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf_flagshdr/shdr.m4 deleted file mode 100644 index 6b8cbd3c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_flagshdr/shdr.m4 +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -include(`elf_flag.m4') - -/* - * Tests for elf_flagdata(). - */ - -IC_REQUIRES_VERSION_INIT(); - -TP_FLAG_NULL(`elf_flagshdr') - -/* Boilerplate for getting hold of a valid Elf_Scn pointer */ -define(`_TP_DECLARATIONS',` - int fd; - Elf *e; - Elf32_Ehdr *eh; - Elf_Scn *scn;') -define(`_TP_PROLOGUE',` - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd); - - if ((eh = elf32_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf_newehdr() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - }') -define(`_TP_EPILOGUE',` - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE);') - -TP_FLAG_ILLEGAL_CMD(`elf_flagshdr',`scn') - -TP_FLAG_CLR(`elf_flagshdr',`scn') -TP_FLAG_SET(`elf_flagshdr',`scn') - -TP_FLAG_ILLEGAL_FLAG(`elf_flagshdr',`scn',`ELF_F_DIRTY') - - diff --git a/contrib/elftoolchain/test/libelf/tset/elf_fsize/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_fsize/Makefile deleted file mode 100644 index 88a8bd1c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_fsize/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= fsize.m4 -TS_DATA= fsize.msb32 fsize.msb64 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_fsize/fsize.m4 b/contrib/elftoolchain/test/libelf/tset/elf_fsize/fsize.m4 deleted file mode 100644 index 68173e2e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_fsize/fsize.m4 +++ /dev/null @@ -1,273 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -#include - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -/* - * Test the `elf[32,64]_fsize' and `gelf_fsize' entry points. - */ - -void -tcArgumentGelfNull(void) -{ - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_fsize(NULL,...) fails with error ELF_E_ARGUMENT."); - - if (gelf_fsize(NULL, ELF_T_ADDR, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} - -void -tcArgumentBadVersion(void) -{ - Elf *e; - int bad_version, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("using an unsupported version number fails with " - "ELF_E_VERSION."); - - TS_OPEN_FILE(e,"fsize.msb32",ELF_C_READ,fd); - - bad_version = EV_CURRENT+1; - - result = TET_PASS; - - if (elf32_fsize(ELF_T_ADDR, 1, bad_version) != 0 || - elf_errno() != ELF_E_VERSION) - result = TET_FAIL; - else if (elf64_fsize(ELF_T_ADDR, 1, bad_version) != 0 || - elf_errno() != ELF_E_VERSION) - result = TET_FAIL; - else if (gelf_fsize(e, ELF_T_ADDR, 1, bad_version) != 0 || - elf_errno() != ELF_E_VERSION) - result = TET_FAIL; - - tet_result(result); - - (void) elf_end(e); - (void) close(fd); -} - -void -tcArgumentBadTypeTooSmall(void) -{ - Elf *e; - int fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("a type parameter less than 0 fails with " - "ELF_E_ARGUMENT."); - - TS_OPEN_FILE(e,"fsize.msb32",ELF_C_READ,fd); - - result = TET_PASS; - if (elf32_fsize(-1, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (elf64_fsize(-1, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (gelf_fsize(e, -1, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - tet_result(result); - (void) elf_end(e); - (void) close(fd); -} - -void -tcArgumentBadTypeTooLarge(void) -{ - Elf *e; - int fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("a type parameter >= ELF_T_NUM is fails with " - "ELF_E_ARGUMENT."); - - TS_OPEN_FILE(e,"fsize.msb32",ELF_C_READ,fd); - - result = TET_PASS; - if (elf32_fsize(ELF_T_NUM, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (elf64_fsize(ELF_T_NUM, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (gelf_fsize(e, ELF_T_NUM, 1, EV_CURRENT) != 0 || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - tet_result(result); - (void) elf_end(e); - (void) close(fd); -} - -static size_t sizes32[ELF_T_NUM] = { -#define DEFINE_SIZE(N,SZ) [ELF_T_##N] = (SZ) - DEFINE_SIZE(ADDR, 4), - DEFINE_SIZE(BYTE, 1), - DEFINE_SIZE(CAP, 8), - DEFINE_SIZE(DYN, 4+4), - DEFINE_SIZE(EHDR, 16+2+2+4+4+4+4+4+2+2+2+2+2+2), - DEFINE_SIZE(HALF, 2), - DEFINE_SIZE(LWORD, 8), - DEFINE_SIZE(MOVE, 20), - DEFINE_SIZE(MOVEP, 0), - DEFINE_SIZE(NOTE, 1), - DEFINE_SIZE(OFF, 4), - DEFINE_SIZE(PHDR, 4+4+4+4+4+4+4+4), - DEFINE_SIZE(REL, 4+4), - DEFINE_SIZE(RELA, 4+4+4), - DEFINE_SIZE(SHDR, 4+4+4+4+4+4+4+4+4+4), - DEFINE_SIZE(SWORD, 4), - DEFINE_SIZE(SXWORD, 0), - DEFINE_SIZE(SYM, 4+4+4+1+1+2), - DEFINE_SIZE(SYMINFO, 4), - DEFINE_SIZE(VDEF, 1), - DEFINE_SIZE(VNEED, 1), - DEFINE_SIZE(WORD, 4), - DEFINE_SIZE(XWORD, 0), - DEFINE_SIZE(GNUHASH, 1) -#undef DEFINE_SIZE -}; - -void -tcSizesSize32(void) -{ - Elf *e; - int fd, i; - size_t size; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("check 32 bit sizes of ELF types"); - - TS_OPEN_FILE(e,"fsize.msb32",ELF_C_READ,fd); - - for (i = ELF_T_ADDR; i < ELF_T_NUM; i++) { - if ((size = elf32_fsize(i, 1, EV_CURRENT)) != sizes32[i]) { - tet_printf("fail: elf32_fsize(%d): %d != %d", - i, size, sizes32[i]); - tet_result(TET_FAIL); - return; - } - if ((size = gelf_fsize(e, i, 1, EV_CURRENT)) != sizes32[i]) { - tet_printf("fail: gelf_fsize(%d): %d != %d", - i, size, sizes32[i]); - tet_result(TET_FAIL); - return; - } - } - tet_result(TET_PASS); - (void) elf_end(e); - (void) close(fd); -} - -static size_t sizes64[ELF_T_NUM] = { -#define DEFINE_SIZE(N,SZ) [ELF_T_##N] = (SZ) - DEFINE_SIZE(ADDR, 8), - DEFINE_SIZE(BYTE, 1), - DEFINE_SIZE(CAP, 16), - DEFINE_SIZE(DYN, 8+8), - DEFINE_SIZE(EHDR, 16+2+2+4+8+8+8+4+2+2+2+2+2+2), - DEFINE_SIZE(HALF, 2), - DEFINE_SIZE(LWORD, 8), - DEFINE_SIZE(MOVE, 28), - DEFINE_SIZE(MOVEP, 0), - DEFINE_SIZE(NOTE, 1), - DEFINE_SIZE(OFF, 8), - DEFINE_SIZE(PHDR, 4+4+8+8+8+8+8+8), - DEFINE_SIZE(REL, 8+8), - DEFINE_SIZE(RELA, 8+8+8), - DEFINE_SIZE(SHDR, 4+4+8+8+8+8+4+4+8+8), - DEFINE_SIZE(SWORD, 4), - DEFINE_SIZE(SXWORD, 8), - DEFINE_SIZE(SYM, 4+1+1+2+8+8), - DEFINE_SIZE(SYMINFO, 4), - DEFINE_SIZE(VDEF, 1), - DEFINE_SIZE(VNEED, 1), - DEFINE_SIZE(WORD, 4), - DEFINE_SIZE(XWORD, 8), - DEFINE_SIZE(GNUHASH, 1) -#undef DEFINE_SIZE -}; - -void -tcSizesSize64(void) -{ - Elf *e; - int fd, i; - size_t size; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("check 64 bit sizes of ELF types"); - - TS_OPEN_FILE(e,"fsize.msb64",ELF_C_READ,fd); - - for (i = ELF_T_ADDR; i < ELF_T_NUM; i++) { - if ((size = elf64_fsize(i, 1, EV_CURRENT)) != sizes64[i]) { - tet_printf("fail: elf64_fsize(%d): %d != %d", - i, size, sizes64[i]); - tet_result(TET_FAIL); - return; - } - if ((size = gelf_fsize(e, i, 1, EV_CURRENT)) != sizes64[i]) { - tet_printf("fail: gelf_fsize(%d): %d != %d", - i, size, sizes64[i]); - tet_result(TET_FAIL); - return; - } - } - tet_result(TET_PASS); - (void) elf_end(e); - (void) close(fd); - -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getarhdr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getarhdr/Makefile deleted file mode 100644 index 2522507f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getarhdr/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getarhdr.m4 - -# These names must match those in the test case code. -TS_DATA= a.ar a-bsd.ar a1.o a2.o -TS_LONGNAME= "s------------------------2" -CLEANFILES+= a1.c a2.c s1 ${TS_LONGNAME} "s 3" - -a1.c: .SILENT - echo "int a1;" > ${.TARGET} -a2.c: .SILENT - echo "int a2;" > ${.TARGET} - -a.ar: a1.o a2.o .SILENT - rm -f ${.TARGET} - echo 'This is s1.' > s1 - echo 's2.' > ${TS_LONGNAME} - echo 's-3.' > "s 3" - ${AR} crvU ${.TARGET} s1 a1.o ${TS_LONGNAME} a2.o "s 3" > /dev/null - -a-bsd.ar: a.ar .SILENT - rm -f ${.TARGET} - ${ELFTOOLCHAIN_AR} -F bsd -crv ${.TARGET} s1 a1.o ${TS_LONGNAME} \ - a2.o "s 3" > /dev/null - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getarhdr/getarhdr.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getarhdr/getarhdr.m4 deleted file mode 100644 index 0ef650c7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getarhdr/getarhdr.m4 +++ /dev/null @@ -1,471 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') -/* - * The following defines should match that in `./Makefile'. - */ -define(`TP_ELFFILE',`"a1.o"') -define(`TP_ARFILE_SVR4', `"a.ar"') -define(`TP_ARFILE_BSD', `"a-bsd.ar"') - -/* - * A NULL `Elf' argument fails. - */ -void -tcArgsNull(void) -{ - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr(NULL) fails."); - - result = TET_PASS; - if (elf_getarhdr(NULL) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - result = TET_FAIL; - } - - tet_result(result); -} - -/* - * elf_getarhdr() on a non-Ar file fails. - */ -static char *nonar = "This is not an AR file."; - -void -tcArgsNonAr(void) -{ - Elf *e; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr(non-ar) fails."); - - TS_OPEN_MEMORY(e, nonar); - - result = TET_PASS; - - if (elf_getarhdr(e) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - result = TET_FAIL; - } - - (void) elf_end(e); - - tet_result(result); -} - -/* - * elf_getarhdr() on a top-level ELF file fails. - */ - -void -tcArgsElf(void) -{ - Elf *e; - int error, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr(elf) fails."); - - TS_OPEN_FILE(e, TP_ELFFILE, ELF_C_READ, fd); - - result = TET_PASS; - - if (elf_getarhdr(e) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - result = TET_FAIL; - } - - (void) elf_end(e); - - tet_result(result); -} - - - -/* - * elf_getarhdr() on ar archive members succeed. - */ - -/* This list of files must match the order of the files in test archive. */ -static char *rfn[] = { - "s1", - "a1.o", - "s------------------------2", /* long file name */ - "a2.o", - "s 3" /* file name with blanks */ -}; - -#define RAWNAME_SIZE 16 /* See */ - -struct arnames { - char *name; - char rawname[RAWNAME_SIZE]; -}; - -/* These lists of names and raw names must match those in the test archives. */ -static struct arnames rn_BSD[] = { - { - .name = "__.SYMDEF", /* Symbol table. */ - .rawname = { '_', '_', '.', 'S', 'Y', 'M', 'D', 'E', - 'F', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "s1", /* Ordinary, non object member (short name). */ - .rawname = { 's', '1', ' ', ' ', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "a1.o", /* Ordinary, object file (short name). */ - .rawname = { 'a', '1', '.', 'o', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "s------------------------2", /* Long file name. */ - .rawname = { '#', '1', '/', '2', '6', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "a2.o", /* Ordinary, object file (short name). */ - .rawname = { 'a', '2', '.', 'o', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - - }, - { - .name = "s 3", /* file name with blanks */ - .rawname = { '#', '1', '/', '3', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - } -}; - -static struct arnames rn_SVR4[] = { - { - .name = "/", - .rawname = { '/', ' ', ' ', ' ', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "//", - .rawname = { '/', '/', ' ', ' ', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "s1", - .rawname = { 's', '1', '/', ' ', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "a1.o", - .rawname = { 'a', '1', '.', 'o', '/', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "s------------------------2", /* long file name */ - .rawname = { '/', '0', ' ', ' ', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - }, - { - .name = "a2.o", - .rawname = { 'a', '2', '.', 'o', '/', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - - }, - { - .name = "s 3", /* file name with blanks */ - .rawname = { 's', ' ', '3', '/', ' ', ' ', ' ', ' ', - ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } - } -}; - -define(`ARCHIVE_TESTS',` -/* - * elf_getarhdr() on an ar archive (not a member) fails. - */ - -void -tcArArchive$1(void) -{ - Elf *e; - int error, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr(ar-descriptor)/$1 fails."); - - TS_OPEN_FILE(e, TP_ARFILE_$1, ELF_C_READ, fd); - - result = TET_PASS; - - if (elf_getarhdr(e) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - } - - (void) elf_end(e); - - tet_result(result); -} - -void -tcArMember$1(void) -{ - Elf_Arhdr *arh; - Elf *ar_e, *e; - Elf_Cmd c; - int error, fd, result; - char **fn; - struct stat sb; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr()/$1 succeeds for all members of an archive."); - - ar_e = e = NULL; - c = ELF_C_READ; - - TS_OPEN_FILE(ar_e, TP_ARFILE_$1, c, fd); - - result = TET_FAIL; - - fn = rfn; - while ((e = elf_begin(fd, c, ar_e)) != NULL) { - - if ((arh = elf_getarhdr(e)) == NULL) { - TP_FAIL("elf_getarhdr(\"%s\") failed: \"%s\".", *fn, - elf_errmsg(-1)); - goto done; - } - - if (stat(*fn, &sb) < 0) { - TP_UNRESOLVED("stat \"%s\" failed: %s.", *fn, - strerror(errno)); - goto done; - } - - if (strcmp(arh->ar_name, *fn) != 0) { - TP_FAIL("name: \"%s\" != \"%s\".", *fn, - arh->ar_name); - goto done; - } - - if (arh->ar_mode != sb.st_mode) { - TP_FAIL("\"%s\" mode: 0%o != 0%o.", *fn, - arh->ar_mode, sb.st_mode); - goto done; - } - - if (arh->ar_size != sb.st_size) { - TP_FAIL("\"%s\" size: %d != %d.", *fn, - arh->ar_size, sb.st_size); - goto done; - } - - if (arh->ar_uid != sb.st_uid) { - TP_FAIL("\"%s\" uid: %d != %d.", *fn, - arh->ar_uid, sb.st_uid); - goto done; - } - - if (arh->ar_gid != sb.st_gid) { - TP_FAIL("\"%s\" gid: %d != %d.", *fn, - arh->ar_gid, sb.st_gid); - goto done; - } - - c = elf_next(e); - (void) elf_end(e); e = NULL; - fn++; - } - - if ((error = elf_errno()) != ELF_E_NONE) { - TP_UNRESOLVED("elf_begin() failed: \"%s\".", elf_errmsg(error)); - result = TET_UNRESOLVED; - } else - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (ar_e) - (void) elf_end(ar_e); - - tet_result(result); - -} - -undefine(`CHECK_SPECIAL')dnl -undefine(`CHECK_NAMES')dnl -define(`CHECK_SPECIAL',` - if ((e = elf_begin(fd, c, ar_e)) == NULL) { - TP_FAIL("elf_begin($1) failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - CHECK_NAMES(); -') - -define(`CHECK_NAMES',` - if ((arh = elf_getarhdr(e)) == NULL) { - TP_FAIL("elf_getarhdr(\"%s\") failed: \"%s\".", fn->name, - elf_errmsg(-1)); - goto done; - } - - if (strcmp(arh->ar_name, fn->name) != 0) { - TP_FAIL("name: \"%s\" != \"%s\".", fn->name, - arh->ar_name); - goto done; - } - - - if (memcmp(arh->ar_rawname, fn->rawname, RAWNAME_SIZE) != 0) { - TP_FAIL("rawname: \"%s\" != \"%s\".", fn->rawname, - arh->ar_rawname); - goto done; - } -') - -void -tcArSpecial$1(void) -{ - - Elf_Arhdr *arh; - Elf *ar_e, *e; - Elf_Cmd c; - int fd, result; - struct arnames *fn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr() after an elf_rand(SARMAG) retrieves special members."); - - ar_e = e = NULL; - c = ELF_C_READ; - fn = rn_$1; - - TS_OPEN_FILE(ar_e, TP_ARFILE_$1, c, fd); - - result = TET_PASS; - - if (elf_rand(ar_e, (off_t) SARMAG) != (off_t)SARMAG) { - TP_UNRESOLVED("elf_rand(SARMAG) failed: \"%s\".", elf_errmsg(-1)); - goto done; - - } - - ifelse($1,`SVR4',`dnl # SVR4 - CHECK_SPECIAL(`/'); - CHECK_SPECIAL(`//');',`dnl # BSD - CHECK_SPECIAL(`__.SYMDEF');') - - done: - if (e) - (void) elf_end(e); - if (ar_e) - (void) elf_end(ar_e); - - tet_result(result); -} - -void -tcArRawnames$1(void) -{ - Elf_Arhdr *arh; - Elf *ar_e, *e; - Elf_Cmd c; - int fd, result; - struct arnames *fn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr() returns the correct rawnames."); - - ar_e = e = NULL; - c = ELF_C_READ; - fn = rn_$1; - - TS_OPEN_FILE(ar_e, TP_ARFILE_$1, c, fd); - - result = TET_PASS; - - if (elf_rand(ar_e, (off_t) SARMAG) != (off_t)SARMAG) { - TP_UNRESOLVED("elf_rand(SARMAG) failed: \"%s\".", elf_errmsg(-1)); - goto done; - - } - - ifelse($1,`SVR4',`dnl # SVR4 - CHECK_SPECIAL(`/'); - CHECK_SPECIAL(`//');',`dnl # BSD - CHECK_SPECIAL(`__.SYMDEF');') - - /* Check the rest of the archive members. */ - - while ((e = elf_begin(fd, c, ar_e)) != NULL) { - CHECK_NAMES(); - - c = elf_next(e); - (void) elf_end(e); e = NULL; - fn ++; - } - - done: - if (e) - (void) elf_end(e); - if (ar_e) - (void) elf_end(ar_e); - - tet_result(result); -} -') - -ARCHIVE_TESTS(`SVR4') -ARCHIVE_TESTS(`BSD') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getarsym/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getarsym/Makefile deleted file mode 100644 index e29aabcf..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getarsym/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getarsym.m4 - -# These names must match those in the test case code. -TS_DATA= a.ar a-bsd.ar a2.ar a2-bsd.ar a1.o a2.o -TS_LONGNAME= "s------------------------2" -CLEANFILES+= a1.c a2.c s1 ${TS_LONGNAME} "s 3" - -a1.c: .SILENT - echo "int a1;" > ${.TARGET} -a2.c: .SILENT - echo "int a2;" > ${.TARGET} - -s1: .SILENT - echo 'This is s1.' > ${.TARGET} -${TS_LONGNAME}: .SILENT - echo 's2.' > ${.TARGET} - -a.ar: a1.o a2.o ${TS_LONGNAME} s1 .SILENT - rm -f ${.TARGET} - echo 's-3.' > "s 3" - ${AR} crv ${.TARGET} s1 a1.o ${TS_LONGNAME} a2.o "s 3" > /dev/null - -a2.ar: s1 ${TS_LONGNAME} .SILENT - rm -f ${.TARGET} - ${AR} crv ${.TARGET} ${.ALLSRC} > /dev/null - -a-bsd.ar: a.ar .SILENT - rm -f ${.TARGET} - ${ELFTOOLCHAIN_AR} -F bsd -crv ${.TARGET} s1 a1.o ${TS_LONGNAME} \ - a2.o "s 3" > /dev/null - -a2-bsd.ar: a2.ar .SILENT - rm -f ${.TARGET} - ${ELFTOOLCHAIN_AR} -F bsd -crv ${.TARGET} ${.ALLSRC} > /dev/null - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getarsym/getarsym.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getarsym/getarsym.m4 deleted file mode 100644 index 6da6d20c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getarsym/getarsym.m4 +++ /dev/null @@ -1,363 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') -/* - * The following defines should match that in `./Makefile'. - */ -define(`TP_ELFFILE',`"a1.o"') -define(`TP_ARFILE_BSD', `"a-bsd.ar"') -define(`TP_ARFILE_NOSYMTAB_BSD',`"a2-bsd.ar"') -define(`TP_ARFILE_SVR4', `"a.ar"') -define(`TP_ARFILE_NOSYMTAB_SVR4',`"a2.ar"') -define(`TP_NSYMBOLS',`3') - -/* - * A NULL `Elf' argument fails. - */ -void -tcArgsNull(void) -{ - int error, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarhdr(NULL) fails."); - - result = TET_PASS; - n = ~(size_t) 0; - if (elf_getarsym(NULL, &n) != NULL || - (n != (size_t) 0) || (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("n=%d error=%d \"%s\".", n, error, elf_errmsg(error)); - - tet_result(result); -} - -/* - * elf_getarsym() on a non-Ar file fails. - */ -static char *nonar = "This is not an AR file."; - -void -tcArgsNonAr(void) -{ - Elf *e; - int error, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarsym(non-ar) fails."); - - TS_OPEN_MEMORY(e, nonar); - - result = TET_PASS; - - n = ~ (size_t) 0; - if (elf_getarsym(e, &n) != NULL || (n != (size_t) 0) || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - -/* - * elf_getarsym() on a top-level ELF file fails. - */ - -void -tcArgsElf(void) -{ - Elf *e; - int error, fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarsym(elf) fails."); - - TS_OPEN_FILE(e, TP_ELFFILE, ELF_C_READ, fd); - - result = TET_PASS; - - n = ~ (size_t) 0; - if (elf_getarsym(e, &n) != NULL || (n != (size_t) 0) || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - -/* This list of symbols must match the order of the files in test archive. */ -struct refsym { - char *as_name; - unsigned long as_hash; - char *as_object; - int as_found; -}; - -struct refsym refsym[] = { - { .as_name = "a1", .as_hash = 0x641, .as_object = "a1.o" }, - { .as_name = "a2", .as_hash = 0x642, .as_object = "a2.o" }, - { .as_name = NULL } -}; - - -define(`ARCHIVE_TESTS',` -/* - * elf_getarsym() on an ar archive succeeds. - */ - -void -tcArAr$1(void) -{ - Elf *e; - Elf_Arsym *arsym; - int fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarsym(ar-descriptor)/$1 succeeds."); - - TS_OPEN_FILE(e, TP_ARFILE_$1, ELF_C_READ, fd); - - result = TET_PASS; - n = ~ (size_t) 0; - if ((arsym = elf_getarsym(e, &n)) == NULL || - n != TP_NSYMBOLS) - TP_FAIL("error=\"%s\".", elf_errmsg(-1)); - - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -} - -/* - * Two elf_getarsym invocations return the same value. - */ - -void -tcArDup$1(void) -{ - Elf *e; - Elf_Arsym *arsym, *t; - int fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("duplicate elf_getarsym()/$1 calls return the " - "same value."); - - TS_OPEN_FILE(e, TP_ARFILE_$1, ELF_C_READ, fd); - - result = TET_PASS; - n = ~ (size_t) 0; - if ((arsym = elf_getarsym(e, &n)) == NULL || - n != TP_NSYMBOLS) { - TP_FAIL("error=\"%s\".", elf_errmsg(-1)); - goto done; - } - - if ((t = elf_getarsym(e, &n)) == NULL || - n != TP_NSYMBOLS) { - TP_FAIL("error=\"%s\".", elf_errmsg(-1)); - goto done; - } - - if (t != arsym) - TP_FAIL("return values differ."); - -done: - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -} - -/* - * elf_getarsym() on an ar archive without a symbol table fails. - */ - -void -tcArNoSymtab$1(void) -{ - Elf *e; - size_t n; - Elf_Arsym *arsym; - int fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarsym(ar-with-no-symtab)/$1 fails."); - - TS_OPEN_FILE(e, TP_ARFILE_NOSYMTAB_$1, ELF_C_READ, fd); - - result = TET_PASS; - n = ~ (size_t) 0; - if ((arsym = elf_getarsym(e, &n)) != NULL || - n != 0) - TP_FAIL("arsym=%p n=%d.", (void *) arsym, n); - - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -} - -/* - * elf_getarsym() on ar archive members succeed. - */ - -void -tcArArSym$1(void) -{ - Elf_Arhdr *arh; - Elf *ar_e, *e; - Elf_Arsym *arsym; - off_t offset; - int c, fd, result; - struct refsym *r; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getarsym()/$1 returns a correct list of symbols."); - - ar_e = e = NULL; - c = ELF_C_READ; - fd = -1; - - TS_OPEN_FILE(ar_e, TP_ARFILE_$1, c, fd); - - result = TET_PASS; - - if ((arsym = elf_getarsym(ar_e, &n)) == NULL || - (n != TP_NSYMBOLS)) { - TP_FAIL("elf_getarsym() failed: n=%d error=\"%s\".", n, - elf_errmsg(-1)); - goto done; - } - - for (; arsym->as_name; arsym++) { - - /* Lookup this symbol in the reference table */ - c = 0; - for (r = refsym; r->as_name; r++) { - if (strcmp(r->as_name, arsym->as_name) == 0 && - r->as_hash == arsym->as_hash) { - r->as_found = c = 1; - break; - } - } - - if (c == 0) { - TP_FAIL("extra symbol \"%s\".", arsym->as_name); - goto done; - } - - if ((offset = elf_rand(ar_e, arsym->as_off)) != arsym->as_off) { - TP_FAIL("elf_rand(%jd) failed: \"%s\".", - (intmax_t) arsym->as_off, elf_errmsg(-1)); - goto done; - } - - if ((e = elf_begin(fd, ELF_C_READ, ar_e)) == NULL) { - TP_UNRESOLVED("elf_begin() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((arh = elf_getarhdr(e)) == NULL) { - TP_UNRESOLVED("elf_getarhdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (strcmp(arh->ar_name, r->as_object) != 0) { - TP_FAIL("object-name \"%s\" != ref \"%s\".", - arh->ar_name, r->as_name); - goto done; - } - - (void) elf_end (e); - e = NULL; - } - - /* Check the last entry */ - if (arsym->as_name != NULL || arsym->as_hash != ~0UL || - arsym->as_off != (off_t) 0) { - TP_FAIL("last entry mangled."); - goto done; - } - - /* Check that all names have been retrieved. */ - for (r = refsym; r->as_name; r++) { - if (r->as_found == 0) { - TP_FAIL("symbol \"%s\" was not present.", r->as_name); - break; - } - } - - done: - if (e) - (void) elf_end(e); - if (ar_e) - (void) elf_end(ar_e); - if (fd != -1) - (void) close(fd); - - tet_result(result); - -} -') - -ARCHIVE_TESTS(`SVR4') -ARCHIVE_TESTS(`BSD') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getbase/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getbase/Makefile deleted file mode 100644 index 2311ab29..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getbase/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getbase.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getbase/getbase.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getbase/getbase.m4 deleted file mode 100644 index 522fec7b..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getbase/getbase.m4 +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -/* - * Test the `elf_getbase' entry point. - */ - -static char elf_file[] = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -void -tcNonMemberElf(void) -{ - int result; - off_t off; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getbase() on an ELF file returns 0"); - - TS_OPEN_MEMORY(e, elf_file); - - result = TET_PASS; - if ((off = elf_getbase(e)) != (off_t) 0) - result = TET_FAIL; - - tet_result(result); - (void) elf_end(e); -} - -changequote({,}) -static char ar_file[] = "!\n" - "t/ 1151656346 1001 0 100644 5 `\n" - "Test\n"; -changequote - -void -tcNonMemberAr(void) -{ - int result; - off_t off; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getbase on an AR file returns 0"); - - TS_OPEN_MEMORY(e, ar_file); - - result = TET_PASS; - - if ((off = elf_getbase(e)) != (off_t) 0) - result = TET_FAIL; - - tet_result(result); - (void) elf_end(e); -} - -/* - * Todo: - * - test an ar archive with an embedded ELF file. - * - test an ar archive with an embedded non-elf file. - */ diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getdata/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getdata/Makefile deleted file mode 100644 index 5d9bfccf..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getdata/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getdata.m4 -TS_YAML= zerosection - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getdata/getdata.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getdata/getdata.m4 deleted file mode 100644 index d2304587..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getdata/getdata.m4 +++ /dev/null @@ -1,351 +0,0 @@ -/*- - * Copyright (c) 2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -/* - * Find an ELF section with the given name. - */ -static Elf_Scn * -findscn(Elf *e, const char *name) -{ - size_t shstrndx; - const char *scn_name; - Elf_Scn *scn; - GElf_Shdr shdr; - - /* Locate the string table. */ - if (elf_getshdrstrndx(e, &shstrndx) != 0) - return (NULL); - - /* Find a section with a matching name. */ - scn = NULL; - while ((scn = elf_nextscn(e, scn)) != NULL) { - if (gelf_getshdr(scn, &shdr) == NULL) - return (NULL); - if ((scn_name = elf_strptr(e, shstrndx, - (size_t) shdr.sh_name)) == NULL) - return (NULL); - if (strcmp(scn_name, name) == 0) - return (scn); - } - - return (NULL); -} - -/* - * Check the contents of an Elf_Data descriptor. - * - * The return value from this helper is as follows: - * - * 0 - the descriptor matched the specified content. - * -1 - the descriptor size had a mismatch. - * >0 - the content of the descriptor did not match. The returned value - * is the index of the first byte that differs. - */ -static int -match_content(Elf_Data *ed, size_t nbytes, const char *content) -{ - int n; - const char *buf; - - if (ed->d_size != nbytes) - return (-1); - - buf = (const char *) ed->d_buf; - for (n = 0; n < nbytes; n++) { - if (*buf != *content) - return (n); - buf++; - content++; - } - - return (0); -} - -define(`ZEROSECTION',".zerosection") -undefine(`FN') -define(`FN',` -void -tcZeroSection$1$2(void) -{ - Elf *e; - int error, fd, result; - Elf_Scn *scn; - Elf_Data *ed; - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("a data descriptor for a zero sized section is correctly retrieved"); - - _TS_OPEN_FILE(e, "zerosection.$1$2", ELF_C_READ, fd, goto done;); - - if ((scn = findscn(e, ZEROSECTION)) == NULL) { - TP_UNRESOLVED("Cannot find section \""ZEROSECTION"\""); - goto done; - } - - ed = NULL; - if ((ed = elf_getdata(scn, ed)) == NULL) { - error = elf_errno(); - TP_FAIL("elf_getdata failed %d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - if (ed->d_size != 0 || ed->d_buf != NULL) { - TP_FAIL("Illegal values returned: size %d buf %p", - (int) ed->d_size, (void *) ed->d_buf); - goto done; - } - - if ((ed = elf_getdata(scn, ed)) != NULL) { - TP_FAIL("Extra data descriptor in section."); - goto done; - } - - result = TET_PASS; - -done: - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -} -') - -FN(lsb,32) -FN(lsb,64) -FN(msb,32) -FN(msb,64) - -/* - * Verify that a non-zero section is correctly read. - */ - -static const char stringsection[] = { -changequote({,}) - '\0', - '.', 's', 'h', 's', 't', 'r', 't', 'a', 'b', '\0', - '.', 'z', 'e', 'r', 'o', 's', 'e', 'c', 't', 'i', 'o', 'n', '\0' -changequote - }; - -undefine(`_FN') -define(`_FN',` -void -tcNonZeroSection$1$2(void) -{ - int error, fd, result; - int match_error; - size_t shstrndx; - const char *buf; - Elf_Scn *scn; - Elf_Data *ed; - Elf *e; - - fd = -1; - e = NULL; - scn = NULL; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("a data descriptor for a non-zero sized section " - "is correctly retrieved"); - - _TS_OPEN_FILE(e, "zerosection.$1$2", ELF_C_READ, fd, goto done;); - - if (elf_getshdrstrndx(e, &shstrndx) != 0 || - (scn = elf_getscn(e, shstrndx)) == NULL) { - TP_UNRESOLVED("Cannot find string table section"); - goto done; - } - - ed = NULL; - if ((ed = elf_getdata(scn, ed)) == NULL) { - error = elf_errno(); - TP_FAIL("elf_getdata failed %d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - match_error = match_content(ed, sizeof(stringsection), - stringsection); - if (match_error == -1) { - TP_FAIL("Illegal values returned: d_size %d != expected %d", - (int) ed->d_size, sizeof(stringsection)); - goto done; - } else if (match_error > 0) { - buf = (const char *) ed->d_buf; - TP_FAIL("String mismatch: buf[%d] \"%c\" != \"%c\"", - match_error, buf[match_error], - stringsection[match_error]); - goto done; - } - - if ((ed = elf_getdata(scn, ed)) != NULL) { - TP_FAIL("Extra data descriptor in section."); - goto done; - } - - result = TET_PASS; - -done: - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -} -') - -_FN(lsb,32) -_FN(lsb,64) -_FN(msb,32) -_FN(msb,64) - -static const char new_content[] = { -changequote({,}) - 'n', 'e', 'w', ' ', 'c', 'o', 'n', 't', 'e', 'n', 't', '\0' -changequote -}; - -/* - * Verify that a section with multiple Elf_Data segments is handled correctly. - */ -undefine(`_FN') -define(`_FN',` -void -tcDataTraversal$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - Elf_Data *ed; - size_t shstrndx; - int error, fd, match_error, result; - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("multiple Elf_Data segments can be traversed."); - _TS_OPEN_FILE(e, "zerosection.$1$2", ELF_C_READ, fd, goto done;); - - if (elf_getshdrstrndx(e, &shstrndx) != 0 || - (scn = elf_getscn(e, shstrndx)) == NULL) { - TP_UNRESOLVED("Cannot find the string table"); - goto done; - } - - /* - * Add new data to the string section. - */ - if ((ed = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("Cannot allocate new data."); - goto done; - } - - ed->d_buf = (char *) new_content; - ed->d_size = sizeof(new_content); - - /* - * Rescan the descriptor list for the section. - */ - ed = NULL; - if ((ed = elf_getdata(scn, ed)) == NULL) { - error = elf_errno(); - TP_FAIL("elf_getdata failed %d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - match_error = match_content(ed, sizeof(stringsection), - stringsection); - if (match_error == -1) { - TP_FAIL("Unexpected size of first descriptor: " - "d_size %d != expected %d", (int) ed->d_size, - sizeof(stringsection)); - goto done; - } else if (match_error > 0) { - TP_FAIL("String content mismatch for data descriptor 1."); - goto done; - } - - if ((ed = elf_getdata(scn, ed)) == NULL) { - error = elf_errno(); - TP_FAIL("Missing second data section: %d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - match_error = match_content(ed, sizeof(new_content), - new_content); - if (match_error == -1) { - TP_FAIL("Unexpected size of second descriptor: " - "d_size %d != expected %d", (int) ed->d_size, - sizeof(new_content)); - goto done; - } else if (match_error > 0) { - TP_FAIL("String content mismatch for data descriptor 2."); - goto done; - } - - /* - * There should be no other Elf_Data descriptors. - */ - if ((ed = elf_getdata(scn, ed)) != NULL) { - TP_FAIL("Too many Elf_Data descriptors for section."); - goto done; - } - - result = TET_PASS; - -done: - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -_FN(lsb,32) -_FN(lsb,64) -_FN(msb,32) -_FN(msb,64) diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getident/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getident/Makefile deleted file mode 100644 index c988b20d..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getident/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getident.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getident/getident.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getident/getident.m4 deleted file mode 100644 index 225d292c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getident/getident.m4 +++ /dev/null @@ -1,168 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -void -tcNullNull(void) -{ - int result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getident(NULL,...) fails with error ELF_E_ARGUMENT."); - - result = TET_PASS; - if (elf_getident(NULL, NULL) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - tet_result(result); -} - -void -tcNullSize(void) -{ - size_t dummy; - int result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getident(NULL,&foo) fails, and sets" - " `foo' to zero."); - - dummy = (size_t) 0xdeadc0de; - - result = TET_PASS; - if (elf_getident(NULL, &dummy) != NULL || - elf_errno() != ELF_E_ARGUMENT || - dummy != 0) - result = TET_FAIL; - tet_result(result); - -} - -changequote({,}) -static char ar_file[] = "!\n" - "t/ 1151656346 1001 0 100644 5 `\n" - "Test\n"; -changequote - -void -tcMainArIdent(void) -{ - Elf *e; - char *p; - size_t sz; - int result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("an ar(1) archive's ident is correctly returned."); - - TS_OPEN_MEMORY(e, ar_file); - - result = TET_PASS; - sz = (size_t) 0xdeadc0de; - if ((p = elf_getident(e, &sz)) == NULL || - sz != SARMAG || strncmp(p, ARMAG, SARMAG)) - result = TET_FAIL; - tet_result(result); -} - -static char elf_file[] = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -void -tcMainElfIdent(void) -{ - Elf *e; - char *p; - size_t sz; - int result; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: an ELF object's ident is correctly" - " returned."); - - TS_OPEN_MEMORY(e, elf_file); - - result = TET_PASS; - sz = (size_t) 0xdeadc0de; - if ((p = elf_getident(e, &sz)) == NULL || - sz != EI_NIDENT || - memcmp(elf_file, p, sz)) - result = TET_FAIL; - tet_result(result); -} - - -static char unknown_data[] = "Revenge! Revenge!"; - -void -tcMainUnknownData(void) -{ - Elf *e; - char *p; - size_t sz; - int result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getident() returns the initial bytes of" - " an unknown data object."); - - TS_OPEN_MEMORY(e, unknown_data); - - result = TET_PASS; - sz = (size_t) 0xdeadc0de; - if ((p = elf_getident(e, &sz)) == NULL || - sz != sizeof(unknown_data) || - memcmp(p, unknown_data, sizeof(unknown_data))) - result = TET_FAIL; - tet_result(result); -} - -/* - * TODO: - * - * - getident on an elf descriptor opened for WRITE should fail until - * an elf_update() is done. - * - */ diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getscn/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getscn/Makefile deleted file mode 100644 index cc1e9949..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getscn/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getscn.m4 -TS_YAML= newscn xscn-1 xscn-2 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getscn/getscn.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getscn/getscn.m4 deleted file mode 100644 index 3b9806ea..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getscn/getscn.m4 +++ /dev/null @@ -1,313 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * A NULL argument is handled correctly. - */ -void -tcArgsNull(void) -{ - int error, result; - Elf_Scn *scn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getscn(NULL,*) fails."); - - result = TET_PASS; - if ((scn = elf_getscn(NULL, (size_t) 0)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - tet_result(result); -} - -/* - * elf_getscn(non-elf) fails. - */ - -static char *nonelf = "This is not an ELF file."; - -void -tcArgsNonElf(void) -{ - Elf *e; - Elf_Scn *scn; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getscn(non-elf) fails."); - - TS_OPEN_MEMORY(e, nonelf); - - result = TET_PASS; - - if ((scn = elf_getscn(e, (size_t) 0)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - -/* - * elf_getscn works for all sections in a file. - */ - -undefine(`FN') -define(`FN',` -void -tcElfAll$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int error, fd, result; - size_t nsections, n, r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_getscn() can retrieve all sections."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &nsections) == 0) { - TP_UNRESOLVED("elf_getshnum() failed."); - goto done; - } - - result = TET_PASS; - - for (n = 0; n < nsections; n++) { - /* Retrieve the section ... */ - if ((scn = elf_getscn(e, n)) == NULL) { - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - break; - } - - /* ... and verify that the section has the correct index. */ - if ((r = elf_ndxscn(scn)) != n) { - TP_FAIL("scn=%p ndx %d != %d.", (void *) scn, r, n); - break; - } - } - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_getscn(e,nsections+1) returns NULL. - */ -undefine(`FN') -define(`FN',` -void -tcElfRange$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int error, fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_getscn(elf,nsections+1) fails."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &n) == 0) { - TP_UNRESOLVED("elf_getshnum() failed."); - goto done; - } - - result = TET_PASS; - if ((scn = elf_getscn(e, n)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=\"%s\".", (void *) scn, - elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_getscn(e,*) fails with ELF_E_SECTION on malformed extended numbering. - */ -undefine(`FN') -define(`FN',` -void -tcExSecNumError$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int error, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_getscn() fails on a malformed file."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "xscn-1.$2$1", ELF_C_READ, fd, goto done;); - - result = TET_PASS; - if ((scn = elf_getscn(e, 0)) != NULL || - (error = elf_errno()) != ELF_E_SECTION) - TP_FAIL("scn=%p, error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_getscn works correctly for a file with > SHN_XINDEX sections. - */ - -undefine(`FN') -define(`FN',` -void -tcExSecNumLast$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - Elf$1_Shdr *sh; - int error, fd, result; - size_t n, r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_getscn() retrieves the last extended " - "section."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "xscn-2.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &n) == 0) { - TP_UNRESOLVED("elf_getshnum() failed."); - goto done; - } - - result = TET_PASS; - - n--; - - /* Retrieve the section ... */ - if ((scn = elf_getscn(e, n)) == NULL) { - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - goto done; - } - - /* ... and verify that the section has the correct index. */ - if ((r = elf_ndxscn(scn)) != n) { - TP_FAIL("scn=%p ndx %d != %d.", (void *) scn, r, n); - goto done; - } - - /* ... and check the type of the section too. */ - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (sh->sh_type != SHT_STRTAB) - TP_FAIL("section[%d] has wrong type %d.", n, sh->sh_type); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getshnum/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getshnum/Makefile deleted file mode 100644 index aa306fe8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getshnum/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getshnum.m4 -TS_YAML= newscn xscn-1 xscn-2 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getshnum/getshnum.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getshnum/getshnum.m4 deleted file mode 100644 index 6e8235aa..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getshnum/getshnum.m4 +++ /dev/null @@ -1,177 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -/* - * A NULL `Elf' argument fails. - */ -void -tcArgsNull(void) -{ - int error, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getshnum(NULL,*) fails."); - - result = TET_PASS; - if (elf_getshnum(NULL, &n) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("n=%d error=%d \"%s\".", n, error, - elf_errmsg(error)); - - tet_result(result); -} - -/* - * elf_getshnum() on a non-ELF file fails. - */ -static char *nonelf = "This is not an ELF file."; - -void -tcArgsNonElf(void) -{ - Elf *e; - size_t n; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getshnum(non-elf) fails."); - - TS_OPEN_MEMORY(e, nonelf); - - result = TET_PASS; - if (elf_getshnum(e, &n) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("n=%d error=%d \"%s\".", n, error, - elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - - -/* - * elf_getshnum() on a well-formed file succeeds. - */ -undefine(`FN') -define(`FN',` -void -tcNormal$1$3`'TOUPPER($4)(void) -{ - Elf *e; - int fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($4)$1$3: elf_getshnum(elf) succeeds."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "$2.$4$3", ELF_C_READ, fd, goto done;); - - result = TET_PASS; - if (elf_getshnum(e, &n) == 0 || n != $5) - TP_FAIL("n=%d, expected $5: error=\"%s\".", n, - elf_errmsg(-1)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(N,newscn,32,lsb,3) -FN(N,newscn,32,msb,3) -FN(N,newscn,64,lsb,3) -FN(N,newscn,64,msb,3) -FN(X,`xscn-2',32,lsb,65538) -FN(X,`xscn-2',32,msb,65538) -FN(X,`xscn-2',64,lsb,65538) -FN(X,`xscn-2',64,msb,65538) - -/* - * elf_getshnum() on a file with a malformed section number 0 fails. - */ -undefine(`FN') -define(`FN',` -void -tcMalformedXscn$1$2(void) -{ - Elf *e; - int error, fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_getshnum(elf) returns ELF_E_SECTION."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "xscn-1.$2$1", ELF_C_READ, fd, goto done;); - - result = TET_PASS; - if ((elf_getshnum(e, &n) != 0 || - (error = elf_errno()) != ELF_E_SECTION)) - TP_FAIL("n=%d error=%d \"%s\".", n, error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/Makefile deleted file mode 100644 index 58c07f02..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getshstrndx.m4 -TS_YAML= newscn xscn-1 xscn-2 xscn-3 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/getshstrndx.m4 b/contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/getshstrndx.m4 deleted file mode 100644 index fcabb994..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_getshstrndx/getshstrndx.m4 +++ /dev/null @@ -1,180 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * A NULL `Elf' argument fails. - */ -void -tcArgsNull(void) -{ - int error, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getshstrndx(NULL,*) fails."); - - result = TET_PASS; - if (elf_getshstrndx(NULL, &n) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("n=%d error=%d \"%s\".", n, error, - elf_errmsg(error)); - - tet_result(result); -} - -/* - * elf_getshstrndx() on a non-ELF file fails. - */ -static char *nonelf = "This is not an ELF file."; - -void -tcArgsNonElf(void) -{ - Elf *e; - size_t n; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_getshstrndx(non-elf) fails."); - - TS_OPEN_MEMORY(e, nonelf); - - result = TET_PASS; - if (elf_getshstrndx(e, &n) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("n=%d error=%d \"%s\".", n, error, - elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - - -/* - * elf_getshstrndx() on a well-formed file succeeds. - */ -undefine(`FN') -define(`FN',` -void -tcNormal_$1$3`'TOUPPER($4)(void) -{ - Elf *e; - int fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($4)$1$3: elf_getshstrndx(elf) succeeds."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "$2.$4$3", ELF_C_READ, fd, goto done;); - - n = ~ (size_t) 0; - - result = TET_PASS; - if (elf_getshstrndx(e, &n) == 0 || n != $5) - TP_FAIL("n=%d, expected $5: error=\"%s\".", n, - elf_errmsg(-1)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(N,newscn,32,lsb,1) -FN(N,newscn,32,msb,1) -FN(N,newscn,64,lsb,1) -FN(N,newscn,64,msb,1) -FN(X,`xscn-2',32,lsb,65537) -FN(X,`xscn-2',32,msb,65537) -FN(X,`xscn-2',64,lsb,65537) -FN(X,`xscn-2',64,msb,65537) - -/* - * elf_getshstrndx() on a file with a malformed section #0 fails. - */ -undefine(`FN') -define(`FN',` -void -tcMalformed_Xscn$1$2(void) -{ - Elf *e; - int error, fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_getshstrndx(elf) returns ELF_E_SECTION."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "xscn-3.$2$1", ELF_C_READ, fd, goto done;); - - n = ~(size_t) 0; - result = TET_PASS; - if ((elf_getshstrndx(e, &n) != 0 || - (error = elf_errno()) != ELF_E_SECTION)) - TP_FAIL("n=%d error=%d \"%s\".", n, error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_hash/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_hash/Makefile deleted file mode 100644 index 02b4d26e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_hash/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= hash.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_hash/hash.m4 b/contrib/elftoolchain/test/libelf/tset/elf_hash/hash.m4 deleted file mode 100644 index 5d73f229..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_hash/hash.m4 +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -/* - * Test the `elf_hash' API. - */ - -/* - * A motley collection of test strings. - */ -static struct htab { - const char *s; - unsigned long h; -} htab[] = { -#undef H -#define H(S,V) { .s = (S), .h = (V) } - H("", 0), - H("\377\377\377\377", 0x10FFEfL), - H("\030\2265Q\023_;\312\214\212#f\001\220\224|", - 0xe07d55c), - H("elf-hash", 0x293ee58), - H(NULL, 0) -}; - -static void -to_printable_string(char *dst, const char *src) -{ - int c; - char *s; - - s = dst; - while (c = *src++) { - if (isprint(c)) - *s++ = c; - else - s += sprintf(s, "\\%3.3o", (c & 0xFF)); - } - *s = '\0'; -} - -void -tpCheckHash(void) -{ - unsigned long h; - struct htab *ht; - int result; - char *tmp; - - tet_infoline("assertion: check elf_hash() against several constant " - "strings."); - - result = TET_PASS; - for (ht = htab; ht->s; ht++) { - if ((h = elf_hash(ht->s)) != ht->h) { - if ((tmp = malloc(4 * strlen(ht->s) + 1)) != NULL) { - to_printable_string(tmp, ht->s); - tet_printf("fail: elf_hash(\"%s\") = 0x%x != " - "expected 0x%x.", tmp, h, ht->h); - free(tmp); - } - result = TET_FAIL; - } - } - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_kind/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_kind/Makefile deleted file mode 100644 index ddb7b46c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_kind/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= kind.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_kind/kind.m4 b/contrib/elftoolchain/test/libelf/tset/elf_kind/kind.m4 deleted file mode 100644 index b67c4bd7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_kind/kind.m4 +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -/* - * Test the `elf_kind' entry point. - */ - -void -tcNullParameter(void) -{ - TP_ANNOUNCE("NULL elf returns null."); - - TP_CHECK_INITIALIZATION(); - - tet_result(elf_kind(NULL) == ELF_K_NONE ? TET_PASS : TET_FAIL); -} - -static char elf_file[] = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -void -tcValidElf(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("valid ELF file returns ELF_K_ELF."); - - if ((e = elf_memory(elf_file, sizeof(elf_file))) == NULL) { - tet_printf("elf_memory: %s", elf_errmsg(-1)); - tet_result(TET_UNRESOLVED); - return; - } - - tet_result(elf_kind(e) == ELF_K_ELF ? TET_PASS : TET_FAIL); - - (void) elf_end(e); -} - -changequote({,}) -static char ar_file[] = "!\n" - "t/ 1151656346 1001 0 100644 5 `\n" - "Test\n"; -changequote - -void -tcValidAr(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("valid ar archive returns ELF_K_AR."); - - if ((e = elf_memory(ar_file, sizeof(ar_file))) == NULL) { - tet_printf("elf_memory: %s", elf_errmsg(-1)); - tet_result(TET_UNRESOLVED); - return; - } - - tet_result(elf_kind(e) == ELF_K_AR ? TET_PASS : TET_FAIL); - - (void) elf_end(e); -} - -static char unknown_file[] = "0xdeadc0de"; - -void -tcUnknownKind(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("unknown file type returns ELF_K_NONE."); - - if ((e = elf_memory(unknown_file, sizeof(unknown_file))) == NULL) { - tet_printf("elf_memory: %s", elf_errmsg(-1)); - tet_result(TET_UNRESOLVED); - } - - tet_result(elf_kind(e) == ELF_K_NONE ? TET_PASS : TET_FAIL); - - (void) elf_end(e); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_memory/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_memory/Makefile deleted file mode 100644 index 265d1c8f..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_memory/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= memory.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_memory/memory.m4 b/contrib/elftoolchain/test/libelf/tset/elf_memory/memory.m4 deleted file mode 100644 index efa69aa4..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_memory/memory.m4 +++ /dev/null @@ -1,240 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -/* - * Test the `elf_memory' entry point. - * - * See also: elf_memory() sequence tests in the test cases for elf_version(). - */ - -/* - * Check that a NULL memory pointer and a zero size arena size are - * rejected. - */ - -void -tcInvalidArgNullPtrs(void) -{ - Elf *e; - - TP_ANNOUNCE("elf_memory(NULL,0) results in a NULL return" - " and an error return of ELF_E_ARGUMENT."); - - TP_CHECK_INITIALIZATION(); - - if ((e = elf_memory(NULL, ~0)) != NULL || - elf_errno() != ELF_E_ARGUMENT) { - tet_result(TET_FAIL); - return; - } - - if ((e = elf_memory((char *) &e, 0)) != NULL || - elf_errno() != ELF_E_ARGUMENT) { - tet_result(TET_FAIL); - return; - } - - tet_result(TET_PASS); -} - -static char elf_file[] = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -/* - * The next two test cases check a pointer to valid ELF content, but - * with (a) a valid object size and (b) a too-small object size. - */ - -void -tcValidElfValidSize(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("valid ELF contents and size are correctly" - " recognized as an ELF file."); - - if ((e = elf_memory(elf_file, sizeof(elf_file))) == NULL || - elf_kind(e) != ELF_K_ELF) { - tet_result(TET_FAIL); - return; - } - - (void) elf_end(e); - tet_result(TET_PASS); -} - -void -tcValidElfInvalidSize(void) -{ - Elf *e; - - TP_ANNOUNCE("a valid ELF prelude with a too-small size is" - " to be recognized as 'DATA'."); - - TP_CHECK_INITIALIZATION(); - - /* Check size > SARMAG, but < EI_NIDENT */ - if ((e = elf_memory(elf_file, EI_NIDENT-1)) == NULL || - elf_kind(e) != ELF_K_NONE) - tet_result(TET_FAIL); - - (void) elf_end(e); - tet_result(TET_PASS); -} - - -void -tcInvalidElfSignature(void) -{ - Elf *e; - char newelf[sizeof(elf_file)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("an ELF-like object with an invalid signature" - " should be recognized as 'DATA'."); - - memcpy(newelf, elf_file, sizeof(elf_file)); - newelf[EI_MAG0] = '\1'; - - if ((e = elf_memory(newelf, sizeof(newelf))) == NULL || - elf_kind(e) != ELF_K_NONE) - tet_result(TET_FAIL); - - (void) elf_end(e); - tet_result(TET_PASS); -} - -void -tcInvalidElfVersionMismatch(void) -{ - Elf *e; - char newelf[sizeof(elf_file)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("an ELF blob with an invalid version number is" - " to be rejected, with error ELF_E_VERSION."); - - memcpy(newelf, elf_file, sizeof(elf_file)); - newelf[EI_VERSION] = EV_CURRENT+1; /* change version */ - - if ((e = elf_memory(newelf, sizeof(newelf))) != NULL || - elf_errno() != ELF_E_VERSION) - tet_result(TET_FAIL); - - (void) elf_end(e); - tet_result(TET_PASS); -} - -/* - * `ar' archives. - */ - -changequote({,}) -static char ar_file[] = "!\n" - "t/ 1151656346 1001 0 100644 5 `\n" - "Test\n"; -changequote - -void -tcValidArValid(void) -{ - Elf *e; - TP_ANNOUNCE("an valid AR archive is accepted as type" - " ELF_K_AR."); - - TP_CHECK_INITIALIZATION(); - - if ((e = elf_memory(ar_file, sizeof(ar_file))) == NULL || - elf_kind(e) != ELF_K_AR) - tet_result(TET_FAIL); - - (void) elf_end(e); - tet_result(TET_PASS); - -} - -void -tcInvalidArInvalidSize(void) -{ - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("a too-small AR archive size is classified" - " as 'DATA'."); - - if ((e = elf_memory(ar_file, SARMAG-1)) == NULL || - elf_kind(e) != ELF_K_NONE) - tet_result(TET_FAIL); - - (void) elf_end(e); - tet_result(TET_PASS); -} - -void -tcInvalidArSignature(void) -{ - Elf *e; - char not_an_archive[sizeof(ar_file)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("invalid signature for an archive -> unrecognized"); - - (void) memcpy(not_an_archive, ar_file, sizeof(not_an_archive)); - not_an_archive[0] = '~'; - - if ((e = elf_memory(not_an_archive, sizeof(not_an_archive))) == NULL || - elf_kind(e) != ELF_K_NONE) - tet_result(TET_FAIL); - - (void) elf_end(e); - tet_result(TET_PASS); -} - -/* - * TODO - * - `ar' archives with an archive symbol table. - */ diff --git a/contrib/elftoolchain/test/libelf/tset/elf_ndxscn/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_ndxscn/Makefile deleted file mode 100644 index 34d91f69..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_ndxscn/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ndxscn.m4 -TS_YAML= newscn - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_ndxscn/ndxscn.m4 b/contrib/elftoolchain/test/libelf/tset/elf_ndxscn/ndxscn.m4 deleted file mode 100644 index 63debf1c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_ndxscn/ndxscn.m4 +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -/* - * A NULL argument is handled. - */ -void -tcArgsNull(void) -{ - int error, result; - size_t shn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_ndxscn(NULL) fails."); - - result = TET_PASS; - if ((shn = elf_ndxscn(NULL)) != SHN_UNDEF || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("shn=%d error=%d \"%s\".", shn, - error, elf_errmsg(error)); - - tet_result(result); -} - -/* - * elf_ndxscn() on a valid section succeeds. - */ -undefine(`FN') -define(`FN',` -void -tcScnSuccess$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int fd, result; - size_t nscn, n, r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_ndxscn(elf) succeeds."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &nscn) == 0) { - TP_UNRESOLVED("elf_getshnum(old) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - for (n = SHN_UNDEF; n < nscn; n++) { - if ((scn = elf_getscn(e, n)) == NULL) { - TP_UNRESOLVED("elf_getscn(%d) failed: \"%s\".", n, - elf_errmsg(-1)); - break; - } - - if ((r = elf_ndxscn(scn)) != n) { - TP_FAIL("r=%d != %n, error=\"%s\".", r, n, - elf_errmsg(-1)); - break; - } - } - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_newscn/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_newscn/Makefile deleted file mode 100644 index d202280c..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_newscn/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= newscn.m4 -TS_YAML= newscn - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_newscn/newscn.m4 b/contrib/elftoolchain/test/libelf/tset/elf_newscn/newscn.m4 deleted file mode 100644 index 17b758ae..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_newscn/newscn.m4 +++ /dev/null @@ -1,290 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * A null argument is handled. - */ -void -tcArgsNull(void) -{ - int error, result; - Elf_Scn *scn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_newscn(NULL) fails."); - - result = TET_PASS; - if ((scn = elf_newscn(NULL)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - tet_result(result); -} - -/* - * An ELF descriptor for a data file is rejected. - */ -static char *nonelf = "This is not an ELF file."; - -void -tcArgsNonElf(void) -{ - Elf *e; - Elf_Scn *scn; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_newscn(non-elf) fails."); - - TS_OPEN_MEMORY(e, nonelf); - - result = TET_PASS; - - if ((scn = elf_newscn(e)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - -/* - * elf_newscn() on a valid elf file succeeds. - */ -undefine(`FN') -define(`FN',` -void -tcElfSuccess$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int fd, result; - size_t oldn, newn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_newscn(read-only-elf) succeeds."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &oldn) == 0) { - TP_UNRESOLVED("elf_getshnum(old) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_FAIL("elf_newscn() failed: error=\"%s\".", - elf_errmsg(-1)); - result = TET_FAIL; - goto done; - } - - if (elf_getshnum(e, &newn) == 0) { - TP_UNRESOLVED("elf_getshnum(new) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - if (newn != (oldn + 1)) - TP_FAIL("newn %d != oldn %d + 1.", newn, oldn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_newscn() sets the dirty bit on the new descriptor. - */ -undefine(`FN') -define(`FN',` -void -tcAllocateDirty$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int fd, result; - unsigned int flags; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: newly returned section is \"dirty\"."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: error=\"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - if ((flags = elf_flagscn(scn, ELF_C_SET, 0U)) != ELF_F_DIRTY) - TP_FAIL("flags=0x%x != 0x%x.", flags, ELF_F_DIRTY); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_newscn() on a file with lacking an ehdr fails. - */ - -void -tcAllocateNoEhdr(void) -{ - Elf *e; - Elf_Scn *scn; - int error, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_newscn() fails without an EHdr."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - result = TET_PASS; - if ((scn = elf_newscn(e)) != NULL || - (error = elf_errno()) != ELF_E_CLASS) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -} - -/* - * elf_newscn() on a new file returns a section descriptor with index 1. - */ -undefine(`FN') -define(`FN',` -void -tcAllocateNew$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - Elf$1_Ehdr *eh; - int fd, result; - size_t ndx; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: newly returned section is \"dirty\"."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: error=\"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: error=\"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - if ((ndx = elf_ndxscn(scn)) != 1U) - TP_FAIL("ndx=%d.", ndx); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_next/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_next/Makefile deleted file mode 100644 index db792b34..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_next/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= next.m4 -TS_DATA= a1.ar a1.o a2.ar a2.o a3.ar -TS_LONGNAME= s------------------------2 -CLEANFILES+= a1.c a2.c s1 ${TS_LONGNAME} "s 3" - -s1: - echo 'This is s1.' > ${.TARGET} -${TS_LONGNAME}: - echo ${TS_LONGNAME} > ${.TARGET} - -# a1.ar contains short names only; a2.ar contains long names; a3.ar contains ELF binaries -# and a symbol table. - -a1.c: .SILENT - echo "int a1;" > ${.TARGET} -a2.c: .SILENT - echo "int a2;" > ${.TARGET} - -a1.ar: s1 .SILENT - rm -f ${.TARGET} - echo 's-3.' > "s 3" - ${AR} crv ${.TARGET} s1 "s 3" > /dev/null - -a2.ar: s1 ${TS_LONGNAME} .SILENT - rm -f ${.TARGET} - ${AR} crv ${.TARGET} ${.ALLSRC} > /dev/null - -a3.ar: s1 ${TS_LONGNAME} a1.o a2.o .SILENT - rm -f ${.TARGET} - ${AR} crv ${.TARGET} ${.ALLSRC} > /dev/null - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_next/next.m4 b/contrib/elftoolchain/test/libelf/tset/elf_next/next.m4 deleted file mode 100644 index 81d5f799..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_next/next.m4 +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * Test the `elf_next' API. - */ - -/* - * Assertion: with a NULL value passed in, elf_next returns ELF_C_NULL. - */ -void -tcArgsNull(void) -{ - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("NULL argument returns ELF_C_NULL"); - - tet_result(elf_next(NULL) == ELF_C_NULL ? TET_PASS : TET_FAIL); -} - -/* - * Invoking elf_next on a non-archive should return ELF_C_NULL. - */ - -static char *notar = "This is not an AR archive."; -static char *elf = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -undefine(`FN') -define(`FN',` -void -tcArgsNonAr`'TOUPPER($1)(void) -{ - Elf *e; - Elf_Cmd c; - int result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("error ELF_C_NULL with a non-archive \"$1\"."); - - TS_OPEN_MEMORY(e, $1); - - result = TET_PASS; - if ((c = elf_next(e)) != ELF_C_NULL) - TP_FAIL("\"$1\" c=%d, != ELF_C_NULL", c); - - (void) elf_end(e); - - tet_result(result); -}') - -FN(notar) -FN(elf) - -/* - * FN(ar-file-name, count) - * - * Returns ELF_C_READ as expected for an archive with > 1 members (as measured - * by the number of ELF_C_READ return values). - * - * The test cases for elf_begin() verify that the correct Elf * pointers get - * returned by a subsequent call to elf_begin(). - * - */ -undefine(`FN') -define(`FN',` -void -tcArArchive$1(void) -{ - int error, fd, i, result; - Elf_Cmd c; - Elf *a, *e; - - TP_ANNOUNCE("correctly iterates through \"a$1.ar\" with $2 members."); - - result = TET_UNRESOLVED; - a = e = NULL; - fd = -1; - i = 0; - - _TS_OPEN_FILE(a, "a$1.ar", ELF_C_READ, fd, goto done;); - - (void) elf_errno(); - c = ELF_C_READ; - while ((e = elf_begin(fd, c, a)) != NULL) { - c = elf_next(e); - (void) elf_end(e); - i++; - } - - if ((error = elf_errno()) != ELF_E_NONE) { - TP_FAIL("error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - if (i != $2) - TP_FAIL("i=%d expected $2.", i); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(1, 2) dnl text files with short names -FN(2, 2) dnl text files with long names -FN(3, 4) dnl text files + ELF objects. - diff --git a/contrib/elftoolchain/test/libelf/tset/elf_nextscn/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_nextscn/Makefile deleted file mode 100644 index d41b77c1..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_nextscn/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= nextscn.m4 -TS_YAML= newscn - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_nextscn/nextscn.m4 b/contrib/elftoolchain/test/libelf/tset/elf_nextscn/nextscn.m4 deleted file mode 100644 index e4a1ce7d..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_nextscn/nextscn.m4 +++ /dev/null @@ -1,378 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * Null arguments are handled correctly. - */ -void -tcArgsNull(void) -{ - int error, result; - Elf_Scn *scn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_nextscn(NULL,*) fails."); - - result = TET_PASS; - if ((scn = elf_nextscn(NULL, NULL)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - tet_result(result); -} - -/* - * elf_nextscn(non-elf) fails. - */ - -static char *nonelf = "This is not an ELF file."; - -void -tcArgsNonElf(void) -{ - Elf *e; - Elf_Scn *scn; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_nextscn(non-elf) fails."); - - TS_OPEN_MEMORY(e, nonelf); - - result = TET_PASS; - - if ((scn = elf_nextscn(e, NULL)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - (void) elf_end(e); - - tet_result(result); -} - -/* - * elf_nextscn(e,NULL) returns section number 1. - */ -undefine(`FN') -define(`FN',` -void -tcElfSuccess$1$2(void) -{ - Elf *e; - Elf_Scn *scn; - int fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_nextscn(elf,NULL) succeeds."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - result = TET_PASS; - if ((scn = elf_nextscn(e, NULL)) == NULL) { - TP_FAIL("elf_newscn() failed: error=\"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((n = elf_ndxscn(scn)) != 1) - TP_FAIL("elf_nextscn() returned index %d.", n); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_nextscn(new-elf, last-section) returns NULL and no error. - */ - -undefine(`FN') -define(`FN',` -void -tcElfLastNewFile$1(void) -{ - Elf *e; - Elf_Scn *scn, *nextscn; - Elf$1_Ehdr *eh; - int error, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_nextscn(newelf,last-scn) returns NULL."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed."); - goto done; - } - - (void) elf_errno(); - - result = TET_PASS; - if ((nextscn = elf_nextscn(e, scn)) != NULL || - (error = elf_errno()) != ELF_E_NONE) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -}') - -FN(32) -FN(64) - - -/* - * elf_nextscn(old-elf, last-section) returns NULL and no error. - */ - -undefine(`FN') -define(`FN',` -void -tcElfLastOldFile$2$1(void) -{ - Elf *e; - Elf_Scn *scn, *nextscn; - int error, fd, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_nextscn(oldelf,last-scn) returns NULL."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &n) == 0) { - TP_UNRESOLVED("elf_getshnum() failed."); - goto done; - } - - if ((scn = elf_getscn(e, n - 1)) == NULL) { - TP_UNRESOLVED("elf_getscn(%d) failed.", (n-1)); - goto done; - } - - (void) elf_errno(); - - result = TET_PASS; - if ((nextscn = elf_nextscn(e, scn)) != NULL || - (error = elf_errno()) != ELF_E_NONE) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * elf_nextscn(iterates through sections in ascending order. - */ - -undefine(`FN') -define(`FN',` -void -tcElfAscending$2$1(void) -{ - Elf *e; - Elf_Scn *scn, *oldscn; - int error, fd, result; - size_t nsections, n, r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_nextscn(elf,last-scn) returns NULL."); - - e = NULL; - fd = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e, "newscn.$2$1", ELF_C_READ, fd, goto done;); - - if (elf_getshnum(e, &nsections) == 0) { - TP_UNRESOLVED("elf_getshnum() failed."); - goto done; - } - - if ((oldscn = elf_getscn(e, 0)) == NULL) { - TP_UNRESOLVED("elf_getscn(0) failed."); - goto done; - } - - result = TET_PASS; - - for (n = 0; n < nsections-1; n++) { - if ((scn = elf_nextscn(e, oldscn)) == NULL) { - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - goto done; - } - - if ((r = elf_ndxscn(scn)) != n+1) { - TP_FAIL("scn=%p ndx %d != %d.", (void *) scn, r, n+1); - goto done; - } - oldscn = scn; - } - - /* check the last one */ - if ((scn = elf_nextscn(e, oldscn)) != NULL || - (r = elf_ndxscn(oldscn)) != (nsections-1)) - TP_FAIL("scn=%p r=%d", (void *) scn, r); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - - -/* - * elf_nextscn() returns an error on mismatched Elf,Scn. - */ - -undefine(`FN') -define(`FN',` -void -tcElfMismatch$2$1(void) -{ - Elf *e1, *e2; - Elf_Scn *scn, *nextscn; - int error, fd1, fd2, result; - size_t n; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_nextscn(e1,scn-not-of-e1) fails."); - - e1 = e2 = NULL; - fd1 = fd2 = -1; - result = TET_UNRESOLVED; - - _TS_OPEN_FILE(e1, "newscn.$2$1", ELF_C_READ, fd1, goto done;); - _TS_OPEN_FILE(e2, TS_NEWFILE, ELF_C_WRITE, fd2, goto done;); - - if ((scn = elf_getscn(e1, 0)) == NULL) { - TP_UNRESOLVED("elf_getscn(%d) failed.", (n-1)); - goto done; - } - - result = TET_PASS; - if ((nextscn = elf_nextscn(e2, scn)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("scn=%p error=%d \"%s\".", (void *) scn, - error, elf_errmsg(error)); - - done: - if (e1) - (void) elf_end(e1); - if (e2) - (void) elf_end(e2); - if (fd1 != -1) - (void) close(fd1); - if (fd2 != -1) - (void) close(fd2); - (void) unlink(TS_NEWFILE); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_rand/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_rand/Makefile deleted file mode 100644 index 1b17ff29..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_rand/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= rand.m4 -TS_DATA= a.ar s1 s2 -TS_FILES= empty-file.ar missing-file.ar - -s1: .SILENT - echo 'This is s1.' > ${.TARGET} -s2: .SILENT - echo 's2.' > ${.TARGET} - -a.ar: s1 s2 .SILENT - rm -f ${.TARGET} - ${AR} crv ${.TARGET} s1 s2 > /dev/null - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_rand/empty-file.ar b/contrib/elftoolchain/test/libelf/tset/elf_rand/empty-file.ar deleted file mode 100644 index f7039eda..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_rand/empty-file.ar +++ /dev/null @@ -1,2 +0,0 @@ -! -e1/ 0 0 0 644 0 ` diff --git a/contrib/elftoolchain/test/libelf/tset/elf_rand/missing-file.ar b/contrib/elftoolchain/test/libelf/tset/elf_rand/missing-file.ar deleted file mode 100644 index d62c803d..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_rand/missing-file.ar +++ /dev/null @@ -1,2 +0,0 @@ -! -e1/ 0 0 0 644 42 ` diff --git a/contrib/elftoolchain/test/libelf/tset/elf_rand/rand.m4 b/contrib/elftoolchain/test/libelf/tset/elf_rand/rand.m4 deleted file mode 100644 index bdcf4364..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_rand/rand.m4 +++ /dev/null @@ -1,415 +0,0 @@ -/*- - * Copyright (c) 2019 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * The following definitions should match those in `./Makefile'. - */ -define(`TP_ARFILE',`"a.ar"') -define(`TP_NONARCHIVE', `"s1"') - -/* - * The use of an offset less than SARMAG should fail. - */ -void -tcSeekBelowSarmag(void) -{ - Elf *ar; - off_t offset; - int error, fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand() fails for an offset less than SARMAG"); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - result = TET_PASS; - - if ((offset = elf_rand(ar, 1)) != 0) { - TP_FAIL("elf_rand() succeeded with offset=%lld", - (unsigned long long) offset); - } else if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected error=%d \"%s\"", error, - elf_errmsg(error)); - } - - (void) elf_end(ar); - (void) close(fd); - - tet_result(result); -} - -/* - * The use of an offset greater than the largest valid file offset - * should fail. - */ -void -tcSeekMoreThanFileSize(void) -{ - Elf *ar; - off_t offset; - struct stat sb; - int error, fd, result; - - result = TET_UNRESOLVED; - ar = NULL; - fd = -1; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand() fails with a too-large offset"); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - /* Get the file size of the archive. */ - if (fstat(fd, &sb) < 0) { - TP_UNRESOLVED("cannot determine the size of \"%s\"", - TP_ARFILE); - goto done; - } - - result = TET_PASS; - - if ((offset = elf_rand(ar, sb.st_size)) != 0) { - TP_FAIL("elf_rand() succeeded with offset=%lld", - (unsigned long long) offset); - } else if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected error=%d \"%s\"", error, - elf_errmsg(error)); - } - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * An offset with value SARMAG is accepted. - */ -void -tcOffsetEqualsSARMAG(void) -{ - Elf *ar; - off_t offset; - int fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand(SARMAG) succeeds."); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - if ((offset = elf_rand(ar, SARMAG)) != SARMAG) { - TP_FAIL("unexpected offset: %lld", - (long long) offset); - goto done; - } - - result = TET_PASS; - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * Invoking elf_rand() on a non-archive should fail. - */ -void -tcOnNonArchive(void) -{ - Elf *e; - off_t offset; - int error, fd, result; - - fd = -1; - e = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand(non-archive) fails."); - - TS_OPEN_FILE(e, TP_NONARCHIVE, ELF_C_READ, fd); - - if ((offset = elf_rand(e, SARMAG)) != 0 || - (error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected offset=%lld", - (long long) offset); - goto done; - } - - result = TET_PASS; - -done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * Use an offset value that could cause an overflow. - */ -void -tcOffsetOverflow(void) -{ - Elf *ar; - off_t offset; - uint64_t max_offset; - int error, fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - /* A even offset that is close to overflowing. */ - max_offset = (1ULL << (sizeof(off_t) * CHAR_BIT - 1)) - 2; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("offset close to overflowing an off_t"); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - if ((offset = elf_rand(ar, (off_t) max_offset)) != 0) { - TP_FAIL("unexpected success, offset=%lld", - (long long) offset); - goto done; - } - - result = TET_PASS; - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * Setting the offset to a value that does not correspond to an ar header - * should fail. - */ -void -tcOffsetNotCorrespondingToAnArchiveHeader(void) -{ - Elf *ar; - off_t offset; - int error, fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand(non-header-offset) should fail."); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - if ((offset = elf_rand(ar, SARMAG+2)) != 0) { - TP_FAIL("unexpected success, offset=%lld", - (long long) offset); - goto done; - } else if ((error = elf_errno()) != ELF_E_ARCHIVE) { - TP_FAIL("unexpected error=%d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * Odd values of offsets are not legal. - */ -void -tcOddOffset(void) -{ - Elf *ar; - off_t offset; - int error, fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand(odd-offset-value) should fail."); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - if ((offset = elf_rand(ar, SARMAG+1)) != 0) { - TP_FAIL("unexpected success, offset=%lld", - (long long) offset); - goto done; - } else if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected error=%d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - -/* - * Negative offset values are not legal. - */ -void -tcNegativeOffset(void) -{ - Elf *ar; - off_t offset; - int error, fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand(odd-offset-value) should fail."); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - if ((offset = elf_rand(ar, -SARMAG)) != 0) { - TP_FAIL("unexpected success, offset=%lld", - (long long) offset); - goto done; - } else if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("unexpected error=%d \"%s\"", error, - elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} - - -/* These offsets correspond to archive TP_ARFILE. */ -static off_t valid_offsets[] = { - SARMAG, /* File 's1'. */ - 80 /* File 's2'. */ -}; - -static const int number_of_offsets = - sizeof(valid_offsets) / sizeof(valid_offsets[0]); - -/* - * Valid offsets should be usable. - */ -void -tcValidOffsets(void) -{ - Elf *ar; - off_t offset; - int i, error, fd, result; - - fd = -1; - ar = NULL; - result = TET_UNRESOLVED; - - TP_CHECK_INITIALIZATION(); - TP_ANNOUNCE("elf_rand(valid-offsets) succeeds."); - - TS_OPEN_FILE(ar, TP_ARFILE, ELF_C_READ, fd); - - for (i = 0; i < number_of_offsets; i++) { - if ((offset = elf_rand(ar, valid_offsets[i])) != - valid_offsets[i]) { - error = elf_errno(); - TP_FAIL("failed to seek to offset %lld, error=%d " - "\"%s\"", (long long) offset, error, - elf_errmsg(error)); - goto done; - } - } - - result = TET_PASS; - -done: - if (ar) - (void) elf_end(ar); - if (fd != -1) - (void) close(fd); - - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelf/tset/elf_rawfile/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_rawfile/Makefile deleted file mode 100644 index 58337094..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_rawfile/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= rawfile.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_rawfile/rawfile.m4 b/contrib/elftoolchain/test/libelf/tset/elf_rawfile/rawfile.m4 deleted file mode 100644 index d24edb77..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_rawfile/rawfile.m4 +++ /dev/null @@ -1,154 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -include(`elfts.m4') - -/* - * Test the `elf_rawfile' entry point. - */ - -IC_REQUIRES_VERSION_INIT(); - -/* - * A NULL `elf *' argument should return the appropriate error, - * and set the `sz' pointer to zero. - */ -void -tcNullNonNull(void) -{ - size_t sz; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_rawfile(NULL,...) returns an error," - " and sets the size pointer to zero."); - - sz = -1; - if (elf_rawfile(NULL, &sz) != NULL || - elf_errno() != ELF_E_ARGUMENT || - sz != 0) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} - -changequote({,}) -static char ar_file[] = "!\n" - "t/ 1151656346 1001 0 100644 5 `\n" - "Test\n"; -changequote - -void -tcValidAr(void) -{ - char *p; - Elf *e; - size_t sz; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_rawfile(E,...) descriptor with a valid" - " descriptor `E' to an ar(1) archive succeeds and returns" - " correct values."); - - TS_OPEN_MEMORY(e, ar_file); - - if ((p = elf_rawfile(e, &sz)) == NULL || - sz != sizeof(ar_file) || - memcmp(p, ar_file, sizeof(ar_file))) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -static char elf_file[] = "\177ELF\001\001\001 \001\000\000\000\000" - "\000\000\000\001\000\003\000\001\000\000\000\357\276\255\336" - "\000\000\000\000\000\000\000\000\003\000\000\0004\000 \000" - "\000\000(\000\000\000\000\000"; - -void -tcValidElf(void) -{ - char *p; - Elf *e; - size_t sz; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_rawfile(E,...) descriptor with a valid" - " descriptor `E' to an ELF object succeeds and returns" - " correct values."); - - TS_OPEN_MEMORY(e, elf_file); - - if ((p = elf_rawfile(e, &sz)) == NULL || - sz != sizeof(elf_file) || - memcmp(p, elf_file, sizeof(elf_file))) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -void -tcValidNull(void) -{ - char *p; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("assertion: elf_rawfile(E,NULL) on a valid descriptor " - "`E' and NULL sz pointer succeeds and returns the correct " - "value."); - - TS_OPEN_MEMORY(e, elf_file); - - if ((p = elf_rawfile(e, NULL)) == NULL || - memcmp(p, elf_file, sizeof(elf_file))) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -/* - * Todo: - * - * Test elf_rawfile() on an ELF object embedded inside an `ar' archive. - */ diff --git a/contrib/elftoolchain/test/libelf/tset/elf_strptr/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_strptr/Makefile deleted file mode 100644 index 5282ad18..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_strptr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= strptr.m4 -TS_YAML= newscn xscn-2 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_strptr/strptr.m4 b/contrib/elftoolchain/test/libelf/tset/elf_strptr/strptr.m4 deleted file mode 100644 index c750204b..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_strptr/strptr.m4 +++ /dev/null @@ -1,363 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -IC_REQUIRES_VERSION_INIT(); - -include(`elfts.m4') - -/* - * A Null ELF value is rejected. - */ - -void -tcArgsNull(void) -{ - int error, result; - char *r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_strptr(NULL,*,*) fails."); - - result = TET_PASS; - if ((r = elf_strptr(NULL, (size_t) 0, (size_t) 0)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p error=%d \"%s\".", r, error, elf_errmsg(error)); - - tet_result(result); -} - -/* - * An illegal section index is rejected. - */ -undefine(`FN') -define(`FN',` -void -tcArgsIllegalSection$1`'TOUPPER($2)(void) -{ - int error, fd, result; - Elf *e; - char *r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: a non-STRTAB section is rejected."); - - _TS_OPEN_FILE(e, "$3.$2$1", ELF_C_READ, fd, goto done;); - - result = TET_PASS; - if ((r = elf_strptr(e, SHN_UNDEF, (size_t) 0)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p error=%d \"%s\".", r, error, - elf_errmsg(error)); - - done: - (void) elf_end(e); - tet_result(result); -}') - -FN(32,`lsb',`newscn') -FN(32,`msb',`newscn') -FN(64,`lsb',`newscn') -FN(64,`msb',`newscn') - -/* - * An invalid section offset is rejected. - */ - -undefine(`FN') -define(`FN',` -void -tcArgsIllegalOffset$1`'TOUPPER($2)(void) -{ - Elf *e; - char *r; - Elf_Scn *scn; - Elf$1_Ehdr *eh; - Elf$1_Shdr *sh; - int error, fd, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: invalid offsets are rejected."); - - _TS_OPEN_FILE(e, "$3.$2$1", ELF_C_READ, fd, goto done;); - - if ((eh = elf$1_getehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_getehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_getscn(e, eh->e_shstrndx)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() faied: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - if ((r = elf_strptr(e, eh->e_shstrndx, sh->sh_size)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p error=%d \"%s\".", (void *) r, error, - elf_errmsg(error)); - - /* Try a very large value */ - if ((r = elf_strptr(e, eh->e_shstrndx, ~ (size_t) 0)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p error=%d \"%s\".", (void *) r, error, - elf_errmsg(error)); - - done: - (void) elf_end(e); - tet_result(result); -}') - -FN(32,`lsb',`newscn') -FN(32,`msb',`newscn') -FN(64,`lsb',`newscn') -FN(64,`msb',`newscn') - -/* - * A section index inside a 'hole' is rejected. - */ - -static char teststring[] = { - 'a', 'b', 'c', 'd', '\0' -}; - -undefine(`FN') -define(`FN',` -void -tcArgsOffsetInHole$1`'TOUPPER($2)(void) -{ - int error, fd, result; - Elf *e; - size_t sz; - Elf_Scn *scn; - Elf_Data *d; - Elf$1_Shdr *sh; - Elf$1_Ehdr *eh; - char *r; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: invalid offsets are rejected."); - - _TS_OPEN_FILE(e, "$3.$2$1", ELF_C_READ, fd, goto done;); - - if ((eh = elf$1_getehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_getehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_getscn(e, eh->e_shstrndx)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr(): failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Get the current size of the section. */ - sz = sh->sh_size; - - /* Add a new data descriptor to the section. */ - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_align = 512; - d->d_buf = teststring; - d->d_size = sizeof(teststring); - - /* Resync. */ - if (elf_update(e, ELF_C_NULL) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - - /* first byte offset in the "hole". */ - if ((r = elf_strptr(e, eh->e_shstrndx, sz)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p offset=%d error=%d \"%s\".", (void *) r, sz, - error, elf_errmsg(error)); - - /* last offset in the "hole". */ - if ((r = elf_strptr(e, eh->e_shstrndx, (size_t) d->d_align - 1)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p offset=%d error=%d \"%s\".", (void *) r, (d->d_align-1), - error, elf_errmsg(error)); - - /* offset after the new end of the section. */ - if ((r = elf_strptr(e, eh->e_shstrndx, (size_t) d->d_align + d->d_size)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("r=%p offset=%d error=%d \"%s\".", (void *) r, - (d->d_align+d->d_size), error, elf_errmsg(error)); - - done: - (void) elf_end(e); - tet_result(result); -}') - -FN(32,`lsb',`newscn') -FN(32,`msb',`newscn') -FN(64,`lsb',`newscn') -FN(64,`msb',`newscn') - -/* - * Check that all strings have their correct offsets. - */ - -struct refstr { - size_t offset; - char *string; -} refstr[] = { - /* From the newscn.* file. */ - { .offset = 0, .string = "" }, - { .offset = 1, .string = ".shstrtab" }, - { .offset = 11, .string = ".foobar" }, -#define NSTATIC 3 - /* added by test case() */ - { .offset = 512, .string = "abcd" } -}; - -undefine(`FN') -define(`FN',` -void -tcArgsValidOffset$1`'TOUPPER($2)(void) -{ - int error, fd, result; - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - Elf$1_Shdr *sh; - Elf$1_Ehdr *eh; - char *r; - struct refstr *rs; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: invalid offsets are rejected."); - - _TS_OPEN_FILE(e, "$3.$2$1", ELF_C_READ, fd, goto done;); - - if ((eh = elf$1_getehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_getehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_getscn(e, eh->e_shstrndx)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr(): failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - for (rs = refstr; rs < &refstr[NSTATIC]; rs++) - if ((r = elf_strptr(e, eh->e_shstrndx, rs->offset)) == NULL || - strcmp(r, rs->string) != 0) { - TP_FAIL("r=\"%s\" rs=\"%s\" offset=%d error=\"%s\".", - r, rs->string, rs->offset, elf_errmsg(-1)); - goto done; - } - - /* Add a new data descriptor to the section. */ - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_align = 512; - d->d_buf = teststring; - d->d_size = sizeof(teststring); - - /* Resync. */ - if (elf_update(e, ELF_C_NULL) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - - /* first byte offset in the "hole". */ - if ((r = elf_strptr(e, eh->e_shstrndx, rs->offset)) == NULL || - strcmp(r, rs->string) != 0) - TP_FAIL("r=\"%s\" rs=\"%s\" offset=%d error=\"%s\".", r, - rs->string, rs->offset, elf_errmsg(error)); - - done: - (void) elf_end(e); - tet_result(result); -}') - -FN(32,`lsb',`newscn') -FN(32,`msb',`newscn') -FN(64,`lsb',`newscn') -FN(64,`msb',`newscn') - -/* - * TODO: With the layout bit set, an out of bounds offset is detected. - */ - -/* - * TODO: With the layout bit set, strings are correctly retrieved. - */ - diff --git a/contrib/elftoolchain/test/libelf/tset/elf_update/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_update/Makefile deleted file mode 100644 index 7dfc5463..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_update/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= update.m4 -TS_YAML= newehdr newscn newscn2 rdwr rdwr1 rdwr2 u1 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_update/update.m4 b/contrib/elftoolchain/test/libelf/tset/elf_update/update.m4 deleted file mode 100644 index 909765b7..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_update/update.m4 +++ /dev/null @@ -1,2390 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "elfts.h" - -#include "tet_api.h" - -include(`elfts.m4') -define(`TS_OFFSET_SHDR',512) -define(`MAKE_EM', - `ifelse($1,32, - ifelse($2,msb,EM_SPARC,EM_386), - ifelse($2,msb,EM_SPARCV9,EM_X86_64))') - -/* - * Tests for the `elf_update' API. - */ - -IC_REQUIRES_VERSION_INIT(); - -static char rawdata[] = "This is not an ELF file."; - -/* - * A NULL Elf argument returns ELF_E_ARGUMENT. - */ - -void -tcArgsNull(void) -{ - int error, result; - off_t offset; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_update(NULL,*) fails with ELF_E_ARGUMENT."); - - if ((offset = elf_update(NULL, 0)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("elf_update() did not fail with ELF_E_ARGUMENT; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - tet_result(result); -} - -/* - * Illegal values for argument `cmd' are rejected. - */ - -void -tcArgsBadCmd(void) -{ - Elf *e; - Elf_Cmd c; - int error, result; - off_t offset; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("illegal cmd values are rejected with ELF_E_ARGUMENT."); - - TS_OPEN_MEMORY(e, rawdata); - - result = TET_PASS; - for (c = ELF_C_NULL-1; result == TET_PASS && c < ELF_C_NUM; c++) { - if (c == ELF_C_WRITE || c == ELF_C_NULL) /* legal values */ - continue; - if ((offset = elf_update(e, c)) != (off_t) -1) - TP_FAIL("elf_update() succeeded unexpectedly; " - "offset=%jd.", (intmax_t) offset); - else if ((error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("elf_update() did not fail with " - "ELF_E_ARGUMENT; error=%d \"%s\".", error, - elf_errmsg(error)); - } - - (void) elf_end(e); - tet_result(result); -} - -/* - * Non-ELF descriptors are rejected by elf_update(). - */ -undefine(`FN') -define(`FN',` -void -tcArgsNonElf$1(void) -{ - Elf *e; - int error, fd, result; - off_t offset; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_update(non-elf,ELF_C_$1) returns ELF_E_ARGUMENT."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - _TS_WRITE_FILE(TS_NEWFILE,rawdata,sizeof(rawdata),goto done;); - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_READ, fd, goto done;); - - if ((offset = elf_update(e, ELF_C_$1)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_ARGUMENT) { - TP_FAIL("elf_update() did not fail with ELF_E_ARGUMENT; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -}') - -FN(`NULL') -FN(`WRITE') - -/* - * In-memory (i.e., non-writeable) ELF objects are rejected for - * ELF_C_WRITE with error ELF_E_MODE. - */ - -undefine(`FN') -define(`FN',` -void -tcMemElfWrite$1$2(void) -{ - Elf *e; - off_t offset; - int error, result; - char elf[sizeof(Elf64_Ehdr)]; /* larger of the Ehdr variants */ - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: ELF_C_WRITE with in-memory objects " - "returns ELF_E_MODE."); - - result = TET_UNRESOLVED; - e = NULL; - - _TS_READ_FILE("newehdr.$2$1", elf, sizeof(elf), goto done;); - - TS_OPEN_MEMORY(e, elf); - - if ((offset = elf_update(e, ELF_C_WRITE)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_MODE) { - TP_FAIL("elf_update() did not fail with ELF_E_MODE; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - (void) elf_end(e); - tet_result(result); -}') - -FN(`32', `lsb') -FN(`32', `msb') -FN(`64', `lsb') -FN(`64', `msb') - -/* - * In-memory ELF objects are updateable with command ELF_C_NULL. - */ - -undefine(`FN') -define(`FN',` -void -tcMemElfNull$1$2(void) -{ - Elf *e; - int result; - size_t fsz; - off_t offset; - char elf[sizeof(Elf64_Ehdr)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: ELF_C_NULL updates in-memory objects."); - - result = TET_UNRESOLVED; - - _TS_READ_FILE("newehdr.$2$1", elf, sizeof(elf), goto done;); - - TS_OPEN_MEMORY(e, elf); - - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("elf$2_fsize() failed: %s.", elf_errmsg(-1)); - goto done; - } - - result = TET_PASS; - if ((offset = elf_update(e, ELF_C_NULL)) != fsz) - TP_FAIL("offset=%jd != %d, error=%d \"%s\".", - (intmax_t) offset, fsz, elf_errmsg(-1)); - - done: - (void) elf_end(e); - tet_result(result); -}') - -FN(`32', `lsb') -FN(`32', `msb') -FN(`64', `lsb') -FN(`64', `msb') - -/* - * A mismatched class in the Ehdr returns an ELF_E_CLASS error. - */ - -undefine(`FN') -define(`FN',` -void -tcClassMismatch$1$2(void) -{ - int error, fd, result; - off_t offset; - Elf *e; - Elf$1_Ehdr *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: a class-mismatch is detected."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - TS_OPEN_FILE(e, "newehdr.$2$1", ELF_C_READ, fd); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: %s", elf_errmsg(-1)); - goto done; - } - - /* change the class */ - eh->e_ident[EI_CLASS] = ELFCLASS`'ifelse($1,32,64,32); - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_CLASS) { - TP_FAIL("elf_update() did not fail with ELF_E_CLASS; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(`32', `lsb') -FN(`32', `msb') -FN(`64', `lsb') -FN(`64', `msb') - -/* - * Changing the byte order of an ELF file on the fly is not allowed. - */ - -undefine(`FN') -define(`FN',` -void -tcByteOrderChange$1$2(void) -{ - int error, fd, result; - Elf *e; - off_t offset; - Elf$1_Ehdr *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: byte order changes are rejected."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - TS_OPEN_FILE(e, "newehdr.$2$1", ELF_C_READ, fd); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2`'ifelse($2,`lsb',`MSB',`LSB'); - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_HEADER) { - TP_FAIL("elf_update() did not fail with ELF_E_HEADER; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(`32', `lsb') -FN(`32', `msb') -FN(`64', `lsb') -FN(`64', `msb') - -/* - * An unsupported ELF version is rejected with ELF_E_VERSION. - */ - -undefine(`FN') -define(`FN',` -void -tcUnsupportedVersion$1$2(void) -{ - int error, fd, result; - off_t offset; - Elf *e; - Elf$1_Ehdr *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: version changes are rejected."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - TS_OPEN_FILE(e, "newehdr.$2$1", ELF_C_READ, fd); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - eh->e_version = EV_CURRENT+1; - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_VERSION) { - TP_FAIL("elf_update() did not fail with ELF_E_VERSION; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(`32', `lsb') -FN(`32', `msb') -FN(`64', `lsb') -FN(`64', `msb') - -/* - * Invoking an elf_cntl(ELF_C_FDDONE) causes a subsequent elf_update() - * to fail with ELF_E_SEQUENCE. - */ -undefine(`FN') -define(`FN',` -void -tcSequenceFdDoneWrite$1(void) -{ - int error, fd, result; - off_t offset; - Elf *e; - Elf$1_Ehdr *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("*$1: elf_update(ELF_C_WRITE) after an elf_cntl(FDDONE) " - "is rejected."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if (elf_cntl(e, ELF_C_FDDONE) != 0) { - TP_UNRESOLVED("elf_cntl() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((offset = elf_update(e, ELF_C_WRITE)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_SEQUENCE) { - TP_FAIL("elf_update() did not fail with ELF_E_SEQUENCE; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(32) -FN(64) - -/* - * Invoking an elf_cntl(ELF_C_FDDONE) causes a subsequent - * elf_update(ELF_C_NULL) to succeed. - */ - -undefine(`FN') -define(`FN',` -void -tcSequenceFdDoneNull$1(void) -{ - int fd, result; - off_t offset; - size_t fsz; - Elf *e; - Elf$1_Ehdr *eh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("elf_update(ELF_C_NULL) after an elf_cntl(FDDONE) " - "succeeds."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if (elf_cntl(e, ELF_C_FDDONE) != 0) { - TP_UNRESOLVED("elf_cntl() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("fsize() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((offset = elf_update(e, ELF_C_NULL)) != fsz) { - TP_FAIL("elf_update()->%jd, (expected %d).", - (intmax_t) offset, fsz); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -}') - -FN(32) -FN(64) - -/* - * Check that elf_update() can create a legal ELF file. - */ - -const char strtab[] = { - '\0', - '.', 's', 'h', 's', 't', 'r', 't', 'a', 'b', '\0' -}; - -#define INIT_PHDR(P) do { \ - (P)->p_type = PT_NULL; \ - (P)->p_offset = 0x0F0F0F0F; \ - (P)->p_vaddr = 0xA0A0A0A0; \ - (P)->p_filesz = 0x1234; \ - (P)->p_memsz = 0x5678; \ - (P)->p_flags = PF_X | PF_R; \ - (P)->p_align = 64; \ - } while (0) - -#define INIT_SHDR(S,O) do { \ - (S)->sh_name = 1; \ - (S)->sh_type = SHT_STRTAB; \ - (S)->sh_flags = 0; \ - (S)->sh_addr = 0; \ - (S)->sh_offset = (O); \ - (S)->sh_size = sizeof(strtab); \ - (S)->sh_link = 0; \ - (S)->sh_info = 0; \ - (S)->sh_addralign = 1; \ - (S)->sh_entsize = 0; \ - } while (0) - -undefine(`FN') -define(`FN',` -void -tcUpdate$1$2(void) -{ - int fd, result; - off_t offset; - size_t esz, fsz, psz, roundup, ssz; - Elf$1_Shdr *sh; - Elf$1_Ehdr *eh; - Elf$1_Phdr *ph; - Elf_Data *d; - Elf_Scn *scn; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_update() creates a legal ELF file."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Set the version and endianness */ - eh->e_version = EV_CURRENT; - eh->e_ident[EI_DATA] = ELFDATA2`'TOUPPER($2); - eh->e_type = ET_REL; - - if ((esz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0 || - (psz = elf$1_fsize(ELF_T_PHDR, 1, EV_CURRENT)) == 0 || - (ssz = elf$1_fsize(ELF_T_SHDR, 2, EV_CURRENT)) == 0) { - TP_UNRESOLVED("elf$1_fsize() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((ph = elf$1_newphdr(e,1)) == NULL) { - TP_UNRESOLVED("elf$1_newphdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - INIT_PHDR(ph); - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - eh->e_shstrndx = elf_ndxscn(scn); - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_buf = (char *) strtab; - d->d_size = sizeof(strtab); - d->d_off = (off_t) 0; - - INIT_SHDR(sh, esz+psz); - - fsz = esz + psz + sizeof(strtab); - roundup = ifelse($1,32,4,8); - fsz = (fsz + roundup - 1) & ~(roundup - 1); - - fsz += ssz; - - if ((offset = elf_update(e, ELF_C_WRITE)) != fsz) { - TP_FAIL("ret=%jd != %d [elferror=\"%s\"]", - (intmax_t) offset, fsz, elf_errmsg(-1)); - goto done; - } - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - - result = elfts_compare_files("u1.$2$1", TS_NEWFILE); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * An unsupported section type should be rejected. - */ -undefine(`FN') -define(`FN',` -void -tcSectionType$2$1(void) -{ - int error, fd, result; - off_t offset; - Elf *e; - Elf_Scn *scn; - Elf$1_Shdr *sh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: unsupported section types are rejected."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - _TS_OPEN_FILE(e, "newehdr.$2$1", ELF_C_READ, fd, goto done;); - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf$1_newscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - sh->sh_type = SHT_LOOS - 1; - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_SECTION) { - TP_FAIL("elf_update() did not fail with ELF_E_SECTION; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd) - (void) close(fd); - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Verify that sections with unrecognized sh_type values in the - * range [SHT_LOUSER,SHT_HIUSER], [SHT_LOPROC,SHT_HIPROC], - * and [SHT_LOOS,SHT_HIOS] are accepted. - */ - -define(`ADD_SECTION',` - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - sh->sh_type = $2; - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - d->d_align = 1; - d->d_buf = NULL; - d->d_size = 0; - d->d_off = (off_t) 0; - (void) elf_flagdata(d, ELF_C_SET, ELF_F_DIRTY); - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY);') -undefine(`FN') -define(`FN',` -void -tcSectionTypeOSUserProcDefined_$2$1(void) -{ - int error, fd, result; - off_t offset; - Elf *e; - Elf_Data *d; - Elf_Scn *scn; - Elf$1_Shdr *sh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: user, OS and processor specific " - "section types are accepted.") ; - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - _TS_OPEN_FILE(e, "newehdr.$2$1", ELF_C_READ, fd, goto done;); - - /* - * Create two new sections, one of type SHT_LOOS (0x60000000UL), - * and the other of type SHT_HIUSER (0xFFFFFFFFUL). These - * should be accepted as valid sections. - */ - ADD_SECTION($1,`SHT_LOOS') - ADD_SECTION($1,`SHT_HIUSER') - - if ((offset = elf_update(e, ELF_C_NULL)) == (off_t) -1) { - TP_FAIL("elf_update() failed."); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd) - (void) close(fd); - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -undefine(`ADD_SECTION') - -/* - * An Elf_Data descriptor that is malformed in various ways - * should be rejected. - */ - -undefine(`FN') -define(`FN',` -void -tc$3_$2$1(void) -{ - int error, fd, result; - off_t offset; - Elf *e; - Elf_Data *d; - Elf_Scn *scn; - Elf$1_Shdr *sh; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: data descriptors with " $6 - " are rejected."); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - - _TS_OPEN_FILE(e, "newehdr.$2$1", ELF_C_READ, fd, goto done;); - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf$1_newscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - sh->sh_type = SHT_SYMTAB; - (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Setup defaults for the test. */ - d->d_buf = (char *) NULL; - d->d_size = sizeof(Elf$1_Sym); - d->d_type = ELF_T_SYM; - d->d_align = 1; - - /* Override, on a per test case basis. */ - $4 - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_$5) { - TP_FAIL("elf_update() did not fail with ELF_E_$5; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd) - (void) close(fd); - tet_result(result); -}') - -define(`MKFN',` -FN(32,`lsb',$1,$2,$3,$4) -FN(32,`msb',$1,$2,$3,$4) -FN(64,`lsb',$1,$2,$3,$4) -FN(64,`msb',$1,$2,$3,$4) -') - -MKFN(IllegalAlignment, `d->d_align = 3;', DATA, "incorrect alignments") -MKFN(UnsupportedVersion, `d->d_version = EV_CURRENT+1;', VERSION, - "an unknown version") -MKFN(UnknownElfType, `d->d_type = ELF_T_NUM;', DATA, "an unknown type") -MKFN(IllegalSize, `d->d_size = 1;', DATA, "an illegal size") - - -/* - * Ensure that updating the section header on an ELF object opened - * in ELF_C_RDWR mode in an idempotent manner leaves the object - * in a sane state. See ticket #269. - */ - -undefine(`FN') -define(`FN',` -void -tcRdWrShdrIdempotent$2$1(void) -{ - Elf *e; - off_t fsz; - struct stat sb; - size_t strtabidx; - Elf_Scn *strtabscn; - int error, fd, tfd, result; - GElf_Shdr strtabshdr; - char *srcfile = "newscn.$2$1", *tfn; - char *reffile = "newscn2.$2$1"; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: (liblayout) a no-op update of section " - "headers works as expected"); - - result = TET_UNRESOLVED; - e = NULL; - tfn = NULL; - fd = tfd = -1; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", srcfile, - strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, tfd, goto done;); - - if (stat(reffile, &sb) < 0) { - TP_UNRESOLVED("stat() failed: \"%s\".", strerror(errno)); - goto done; - } - - /* Retrieve the index of the section name string table. */ - if (elf_getshdrstrndx(e, &strtabidx) != 0) { - TP_UNRESOLVED("elf_getshdrstrndx() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* - * Retrieve the section descriptor for the section name string table. - */ - if ((strtabscn = elf_getscn(e, strtabidx)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - /* Read the section header ... */ - if (gelf_getshdr(strtabscn, &strtabshdr) == NULL) { - TP_UNRESOLVED("gelf_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* ... and write it back. */ - if (gelf_update_shdr(strtabscn, &strtabshdr) == 0) { - TP_UNRESOLVED("gelf_update_shdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Update the underlying ELF object. */ - if ((fsz = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if (fsz != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() returned %d.", error); - goto done; - } - - e = NULL; - /* Compare against the original. */ - result = elfts_compare_files(reffile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfd != -1) - (void) close(tfd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Ensure that updating the section header table on an ELF object opened - * in ELF_C_RDWR mode in an idempotent manner leaves the object - * in a sane state. See ticket #269. - */ - -undefine(`FN') -define(`FN',` -void -tcRdWrShdrIdempotentAppLayout$2$1(void) -{ - Elf *e; - off_t fsz; - struct stat sb; - size_t strtabidx; - Elf_Scn *strtabscn; - unsigned int flags; - int error, fd, tfd, result; - GElf_Shdr strtabshdr; - char *srcfile = "newscn.$2$1", *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: (applayout) a no-op update of section " - "headers works as expected"); - - result = TET_UNRESOLVED; - e = NULL; - tfn = NULL; - fd = tfd = -1; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", srcfile, - strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, tfd, goto done;); - - flags = elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT); - if ((flags & ELF_F_LAYOUT) == 0) { - TP_UNRESOLVED("elf_flagelf() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fstat(tfd, &sb) < 0) { - TP_UNRESOLVED("fstat() failed: \"%s\".", - strerror(errno)); - goto done; - } - - /* Retrieve the index of the section name string table. */ - if (elf_getshdrstrndx(e, &strtabidx) != 0) { - TP_UNRESOLVED("elf_getshdrstrndx() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* - * Retrieve the section descriptor for the section name string table. - */ - if ((strtabscn = elf_getscn(e, strtabidx)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - /* Read the section header ... */ - if (gelf_getshdr(strtabscn, &strtabshdr) == NULL) { - TP_UNRESOLVED("gelf_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* ... and write it back. */ - if (gelf_update_shdr(strtabscn, &strtabshdr) == 0) { - TP_UNRESOLVED("gelf_update_shdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Update the underlying ELF object. */ - if ((fsz = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: \"%s\".", elf_errmsg(-1)); - goto done; - } - - if (fsz != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() returned %d.", error); - goto done; - } - - e = NULL; - /* Compare against the original. */ - result = elfts_compare_files(srcfile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfd != -1) - (void) close(tfd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Test handling of sections with buffers of differing Elf_Data types. - */ - -/* - * The contents of the first Elf_Data buffer for section ".foo" - * (ELF_T_WORD, align 4). - */ -uint32_t hash_words[] = { - 0x01234567, - 0x89abcdef, - 0xdeadc0de -}; - -/* - * The contents of the second Elf_Data buffer for section ".foo" - * (ELF_T_BYTE, align 1) - */ -char data_string[] = "helloworld"; - -/* - * The contents of the third Elf_Data buffer for section ".foo" - * (ELF_T_WORD, align 4) - */ -uint32_t checksum[] = { - 0xffffeeee -}; - -/* - * The contents of the ".shstrtab" section. - */ -char string_table[] = { - /* Offset 0 */ '\0', - /* Offset 1 */ '.', 'f' ,'o', 'o', '\0', - /* Offset 6 */ '.', 's' , 'h' , 's' , 't', - 'r', 't', 'a', 'b', '\0' -}; - -undefine(`FN') -define(`FN',` -void -tcMixedBuffer_$2$1(void) -{ - Elf *e; - Elf_Scn *scn, *strscn; - int error, fd, result; - Elf$1_Ehdr *ehdr; - Elf$1_Shdr *shdr, *strshdr; - Elf_Data *data1, *data2, *data3, *data4; - char *reffile = "mixedscn.$2$1", *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: sections with mixed data work " - "as expected"); - - result = TET_UNRESOLVED; - e = NULL; - tfn = NULL; - fd = -1; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - if ((ehdr = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - ehdr->e_ident[EI_DATA] = `ELFDATA2'TOUPPER($2); - ehdr->e_machine = MAKE_EM($1,$2); - ehdr->e_type = ET_REL; - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((data1 = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata(data1) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - data1->d_align = 4; - data1->d_off = 0; - data1->d_buf = hash_words; - data1->d_type = ELF_T_WORD; - data1->d_size = sizeof(hash_words); - data1->d_version = EV_CURRENT; - - if ((data2 = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata(data2) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - data2->d_align = 1; - data2->d_off = 0; - data2->d_buf = data_string; - data2->d_type = ELF_T_BYTE; - data2->d_size = sizeof(data_string); - data2->d_version = EV_CURRENT; - - - if ((data3 = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata(data3) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - data3->d_align = 4; - data3->d_off = 0; - data3->d_buf = checksum; - data3->d_type = ELF_T_WORD; - data3->d_size = sizeof(checksum); - data3->d_version = EV_CURRENT; - - if ((shdr = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - shdr->sh_name = 1; /* offset of ".foo" */ - shdr->sh_type = SHT_PROGBITS; - shdr->sh_flags = SHF_ALLOC; - shdr->sh_entsize = 0; - shdr->sh_addralign = 4; - - /* - * Create the .shstrtab section. - */ - if ((strscn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((data4 = elf_newdata(strscn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - data4->d_align = 1; - data4->d_off = 0; - data4->d_buf = string_table; - data4->d_type = ELF_T_BYTE; - data4->d_size = sizeof(string_table); - data4->d_version = EV_CURRENT; - - if ((strshdr = elf$1_getshdr(strscn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - strshdr->sh_name = 6; /* \0 + strlen(".foo") + \0 */ - strshdr->sh_type = SHT_STRTAB; - strshdr->sh_flags = SHF_STRINGS | SHF_ALLOC; - strshdr->sh_entsize = 0; - - ehdr->e_shstrndx = elf_ndxscn(strscn); - - if (elf_update(e, ELF_C_WRITE) < 0) { - TP_FAIL("elf_update() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Compare files here. */ - TP_UNRESOLVED("Verification is yet to be implemented."); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -}') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Test that a call to elf_update() without any changes flagged - * leaves the ELF object unchanged. - */ - -undefine(`FN') -define(`FN',` -void -tcRdWrModeNoOp_$1$2(void) -{ - struct stat sb; - int error, fd, result; - Elf *e; - Elf$1_Ehdr *eh; - const char *srcfile = "rdwr.$2$1"; - off_t fsz1, fsz2; - char *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_update() without flagged changes " - "is a no-op"); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - tfn = NULL; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", - srcfile, strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, fd, goto done;); - - if (fstat(fd, &sb) < 0) { - TP_UNRESOLVED("fstat() failed: \"%s\".", - strerror(errno)); - goto done; - } - - if ((eh = elf$1_getehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_getehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz1 = elf_update(e, ELF_C_NULL)) < 0) { - TP_FAIL("elf_update(NULL) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz1); - goto done; - } - - if ((fsz2 = elf_update(e, ELF_C_WRITE)) < 0) { - TP_FAIL("elf_update(WRITE) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != fsz2) { - TP_FAIL("fsz1 (%d) != fsz2 (%d)", fsz1, fsz2); - goto done; - } - - e = NULL; - (void) close(fd); - - /* compare against the original */ - result = elfts_compare_files(srcfile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -}') - -FN(32,lsb) -FN(32,msb) -FN(64,lsb) -FN(64,msb) - -/* - * Test that a call to elf_update() without a change to underlying - * data for the object is a no-op. - */ - -undefine(`FN') -define(`FN',` -void -tcRdWrModeNoDataChange_$1$2(void) -{ - int error, fd, result; - Elf *e; - Elf_Scn *scn; - const char *srcfile = "rdwr.$2$1"; - off_t fsz1, fsz2; - struct stat sb; - char *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_update() with no data changes " - "is a no-op"); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - tfn = NULL; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", - srcfile, strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, fd, goto done;); - - if (fstat(fd, &sb) < 0) { - TP_UNRESOLVED("fstat() failed: \"%s\".", - strerror(errno)); - goto done; - } - - if ((scn = elf_getscn(e, 1)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY) != ELF_F_DIRTY) { - TP_UNRESOLVED("elf_flagscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz1 = elf_update(e, ELF_C_NULL)) < 0) { - TP_FAIL("elf_update(NULL) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz1); - goto done; - } - - if ((fsz2 = elf_update(e, ELF_C_WRITE)) < 0) { - TP_FAIL("elf_update(WRITE) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != fsz2) { - TP_FAIL("fsz1 (%d) != fsz2 (%d)", fsz1, fsz2); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - e = NULL; - (void) close(fd); - - /* compare against the original */ - result = elfts_compare_files(srcfile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -}') - -FN(32,lsb) -FN(32,msb) -FN(64,lsb) -FN(64,msb) - -/* - * Test that a call to elf_update() with a changed ehdr causes the - * underlying file to change. - */ - -undefine(`FN') -define(`FN',` -void -tcRdWrModeEhdrChange_$1$2(void) -{ - int error, fd, result; - unsigned int flag; - struct stat sb; - Elf *e; - Elf$1_Ehdr *eh; - const char *srcfile = "rdwr.$2$1"; - const char *reffile = "rdwr1.$2$1"; - off_t fsz1, fsz2; - char *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_update() updates a changed " - "header correctly"); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - tfn = NULL; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", - srcfile, strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, fd, goto done;); - - if (fstat(fd, &sb) < 0) { - TP_UNRESOLVED("fstat() failed: \"%s\".", - strerror(errno)); - goto done; - } - - if ((eh = elf$1_getehdr(e)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Change the ELFCLASS of the object. */ - eh->e_type = ET_DYN; - - flag = elf_flagehdr(e, ELF_C_SET, ELF_F_DIRTY); - if ((flag & ELF_F_DIRTY) == 0) { - TP_UNRESOLVED("elf_flagehdr failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz1 = elf_update(e, ELF_C_NULL)) < 0) { - TP_FAIL("elf_update(NULL) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz1); - goto done; - } - - if ((fsz2 = elf_update(e, ELF_C_WRITE)) < 0) { - TP_FAIL("elf_update(WRITE) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != fsz2) { - TP_FAIL("fsz1 (%d) != fsz2 (%d)", fsz1, fsz2); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - e = NULL; - (void) close(fd); - - /* compare against the reference */ - result = elfts_compare_files(reffile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -} -') - -FN(32,lsb) -FN(32,msb) -FN(64,lsb) -FN(64,msb) - -/* - * Test extending a section. - */ - -static char *base_data = "hello world"; -static char *extra_data = "goodbye world"; - -undefine(`FN') -define(`FN',` -void -tcRdWrExtendSection_$1$2(void) -{ - int error, fd, result; - unsigned int flag; - struct stat sb; - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - const char *srcfile = "rdwr.$2$1"; - const char *reffile = "rdwr2.$2$1"; - off_t fsz1, fsz2; - char *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_update() deals with an " - "extended section correctly"); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - tfn = NULL; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", - srcfile, strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, fd, goto done;); - - if (stat(reffile, &sb) < 0) { - TP_UNRESOLVED("stat() failed: \"%s\".", strerror(errno)); - goto done; - } - - /* Retrieve section 1 and extend it. */ - - if ((scn = elf_getscn(e, 1)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_buf = extra_data; - d->d_size = strlen(extra_data); - - if (elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY) != ELF_F_DIRTY) { - TP_UNRESOLVED("elf_flagscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz1 = elf_update(e, ELF_C_NULL)) < 0) { - TP_FAIL("elf_update(NULL) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz1); - goto done; - } - - if ((fsz2 = elf_update(e, ELF_C_WRITE)) < 0) { - TP_FAIL("elf_update(WRITE) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != fsz2) { - TP_FAIL("fsz1 (%d) != fsz2 (%d)", fsz1, fsz2); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - e = NULL; - (void) close(fd); - - /* compare against the reference */ - result = elfts_compare_files(reffile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -} -') - -FN(32,lsb) -FN(32,msb) -FN(64,lsb) -FN(64,msb) - -/* - * Test shrinking a section. - */ - -undefine(`FN') -define(`FN',` -void -tcRdWrShrinkSection_$1$2(void) -{ - int error, fd, result; - unsigned int flag; - struct stat sb; - Elf *e; - Elf_Scn *scn; - Elf_Data *d; - const char *srcfile = "rdwr2.$2$1"; - const char *reffile = "rdwr.$2$1"; - off_t fsz1, fsz2; - char *tfn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: elf_update() deals with an " - "shrunk section correctly"); - - result = TET_UNRESOLVED; - e = NULL; - fd = -1; - tfn = NULL; - - /* Make a copy of the reference object. */ - if ((tfn = elfts_copy_file(srcfile, &error)) < 0) { - TP_UNRESOLVED("elfts_copyfile(%s) failed: \"%s\".", - srcfile, strerror(error)); - goto done; - } - - /* Open the copied object in RDWR mode. */ - _TS_OPEN_FILE(e, tfn, ELF_C_RDWR, fd, goto done;); - - if (stat(reffile, &sb) < 0) { - TP_UNRESOLVED("stat() failed: \"%s\".", strerror(errno)); - goto done; - } - - /* Retrieve section 1 and shrink it. */ - - if ((scn = elf_getscn(e, 1)) == NULL) { - TP_UNRESOLVED("elf_getscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((d = elf_getdata(scn, NULL)) == NULL) { - TP_UNRESOLVED("elf_getdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_size = strlen(base_data); - - if (elf_flagdata(d, ELF_C_SET, ELF_F_DIRTY) != ELF_F_DIRTY) { - TP_UNRESOLVED("elf_flagdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY) != ELF_F_DIRTY) { - TP_UNRESOLVED("elf_flagscn() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz1 = elf_update(e, ELF_C_NULL)) < 0) { - TP_FAIL("elf_update(NULL) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != sb.st_size) { - TP_FAIL("Size error: expected=%d, elf_update()=%d", - sb.st_size, fsz1); - goto done; - } - - if ((fsz2 = elf_update(e, ELF_C_WRITE)) < 0) { - TP_FAIL("elf_update(WRITE) failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if (fsz1 != fsz2) { - TP_FAIL("fsz1 (%d) != fsz2 (%d)", fsz1, fsz2); - goto done; - } - - /* Close the temporary file. */ - if ((error = elf_end(e)) != 0) { - TP_UNRESOLVED("elf_end() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - e = NULL; - (void) close(fd); - - /* compare against the reference */ - result = elfts_compare_files(reffile, tfn); - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (tfn != NULL) - (void) unlink(tfn); - - tet_result(result); -} -') - -FN(32,lsb) -FN(32,msb) -FN(64,lsb) -FN(64,msb) - -/* - * Test cases rejecting malformed ELF files created with the - * ELF_F_LAYOUT flag set. - */ - -undefine(`FN') -define(`FN',` -void -tcEhdrPhdrCollision$1$2(void) -{ - int error, fd, result, flags; - off_t offset; - size_t fsz, psz, roundup, ssz; - Elf$1_Ehdr *eh; - Elf$1_Phdr *ph; - Elf_Data *d; - Elf_Scn *scn; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: an overlap of the ehdr and phdr is " - "detected."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - flags = elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT); - if ((flags & ELF_F_LAYOUT) == 0) { - TP_UNRESOLVED("elf_flagelf() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Fill in sane values for the Ehdr. */ - eh->e_type = ET_REL; - eh->e_shoff = 0; - eh->e_ident[EI_CLASS] = ELFCLASS`'$1; - eh->e_ident[EI_DATA] = ELFDATA2`'TOUPPER($2); - - if ((ph = elf$1_newphdr(e, 1)) == NULL) { - TP_UNRESOLVED("elf$1_newphdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("fsize() failed: %s.", elf_errmsg(-1)); - goto done; - } - - /* Make the phdr table overlap with the ehdr. */ - eh->e_phoff = fsz - 1; - - /* Check the return values from elf_update(). */ - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_LAYOUT) { - TP_FAIL("elf_update() did not fail with ELF_E_LAYOUT, " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -} -') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -undefine(`FN') -define(`FN',` -void -tcShdrPhdrCollision$1$2(void) -{ - int error, fd, result, flags; - off_t offset; - size_t fsz, psz, roundup, ssz; - Elf$1_Ehdr *eh; - Elf$1_Phdr *ph; - Elf_Data *d; - Elf_Scn *scn; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: an overlap of the shdr and phdr is " - "detected."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - flags = elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT); - if ((flags & ELF_F_LAYOUT) == 0) { - TP_UNRESOLVED("elf_flagelf() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Fill in sane values for the Ehdr. */ - eh->e_type = ET_REL; - eh->e_ident[EI_CLASS] = ELFCLASS`'$1; - eh->e_ident[EI_DATA] = ELFDATA2`'TOUPPER($2); - - if ((ph = elf$1_newphdr(e, 1)) == NULL) { - TP_UNRESOLVED("elf$1_newphdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("fsize() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: %s.", elf_errmsg(-1)); - goto done; - } - - /* Make the PHDR and SHDR tables overlap. */ - eh->e_phoff = fsz; - eh->e_shoff = fsz; - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_LAYOUT) { - TP_FAIL("elf_update() did not fail with ELF_E_LAYOUT; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -} -') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Verify that an overlap between a section's data and the SHDR - * table is detected. - */ - -undefine(`FN') -define(`FN',` -void -tcShdrSectionCollision$1$2(void) -{ - int error, fd, result, flags; - off_t offset; - size_t fsz, psz, roundup, ssz; - Elf$1_Ehdr *eh; - Elf$1_Shdr *sh; - Elf_Data *d; - Elf_Scn *scn; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: an overlap of the shdr and a section is " - "detected."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - flags = elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT); - if ((flags & ELF_F_LAYOUT) == 0) { - TP_UNRESOLVED("elf_flagelf() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Fill in sane values for the Ehdr. */ - eh->e_type = ET_REL; - eh->e_ident[EI_CLASS] = ELFCLASS`'$1; - eh->e_ident[EI_DATA] = ELFDATA2`'TOUPPER($2); - - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("fsize() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: %s.", elf_errmsg(-1)); - goto done; - } - - eh->e_shoff = fsz; - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - /* Fill in application-specified fields. */ - sh->sh_type = SHT_PROGBITS; - sh->sh_addralign = 1; - sh->sh_size = 1; - sh->sh_entsize = 1; - - /* Make this section overlap with the section header. */ - sh->sh_offset = fsz; - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_LAYOUT) { - TP_FAIL("elf_update() did not fail with ELF_E_LAYOUT; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -} -') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') - -/* - * Check that overlapping sections are rejected when ELF_F_LAYOUT is set. - */ - -undefine(`FN') -define(`FN',` -void -tcSectionOverlap$1$2(void) -{ - int error, fd, result, flags; - off_t offset; - size_t fsz, psz, roundup, ssz; - Elf$1_Ehdr *eh; - Elf$1_Shdr *sh; - Elf_Data *d; - Elf_Scn *scn; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("TOUPPER($2)$1: an overlap between two sections is " - "detected."); - - result = TET_UNRESOLVED; - fd = -1; - e = NULL; - - _TS_OPEN_FILE(e, TS_NEWFILE, ELF_C_WRITE, fd, goto done;); - - flags = elf_flagelf(e, ELF_C_SET, ELF_F_LAYOUT); - if ((flags & ELF_F_LAYOUT) == 0) { - TP_UNRESOLVED("elf_flagelf() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf$1_newehdr(e)) == NULL) { - TP_UNRESOLVED("elf$1_newehdr() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - /* Fill in sane values for the Ehdr. */ - eh->e_type = ET_REL; - eh->e_ident[EI_CLASS] = ELFCLASS`'$1; - eh->e_ident[EI_DATA] = ELFDATA2`'TOUPPER($2); - eh->e_shoff = TS_OFFSET_SHDR; - - if ((fsz = elf$1_fsize(ELF_T_EHDR, 1, EV_CURRENT)) == 0) { - TP_UNRESOLVED("fsize() failed: %s.", elf_errmsg(-1)); - goto done; - } - - /* - * Build the first section. - */ - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_type = ELF_T_BYTE; - d->d_off = 0; - d->d_buf = base_data; - d->d_size = strlen(base_data); - - /* Fill in application-specified fields. */ - sh->sh_type = SHT_PROGBITS; - sh->sh_addralign = 1; - sh->sh_size = 1; - sh->sh_entsize = 1; - sh->sh_offset = fsz; - - /* - * Build the second section. - */ - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("elf_newscn() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((sh = elf$1_getshdr(scn)) == NULL) { - TP_UNRESOLVED("elf$1_getshdr() failed: %s.", elf_errmsg(-1)); - goto done; - } - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("elf_newdata() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - - d->d_buf = base_data; - d->d_size = strlen(base_data); - - /* Fill in application-specified fields. */ - sh->sh_type = SHT_PROGBITS; - sh->sh_addralign = 1; - sh->sh_size = 1; - sh->sh_entsize = 1; - - sh->sh_offset = fsz + 1; /* Overlap with the first section. */ - - if ((offset = elf_update(e, ELF_C_NULL)) != (off_t) -1) { - TP_FAIL("elf_update() succeeded unexpectedly; offset=%jd.", - (intmax_t) offset); - goto done; - } - - if ((error = elf_errno()) != ELF_E_LAYOUT) { - TP_FAIL("elf_update() did not fail with ELF_E_LAYOUT; " - "error=%d \"%s\".", error, elf_errmsg(error)); - goto done; - } - - result = TET_PASS; - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - (void) unlink(TS_NEWFILE); - - tet_result(result); -} -') - -FN(32,`lsb') -FN(32,`msb') -FN(64,`lsb') -FN(64,`msb') diff --git a/contrib/elftoolchain/test/libelf/tset/elf_version/Makefile b/contrib/elftoolchain/test/libelf/tset/elf_version/Makefile deleted file mode 100644 index 4253ee13..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_version/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= version.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/elf_version/version.m4 b/contrib/elftoolchain/test/libelf/tset/elf_version/version.m4 deleted file mode 100644 index 546c8488..00000000 --- a/contrib/elftoolchain/test/libelf/tset/elf_version/version.m4 +++ /dev/null @@ -1,185 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -#include - -#include "tet_api.h" - -/* - * Test the `elf_version' entry point. - * - * Each test case requires a separate invocation of the test - * executable because the first call of elf_version() sets private - * state in the library. Consequently these tests are organized as - * one test purpose per test case. - */ - -/* - * Test version number retrieval. - */ - -void -tcParamNoneReturnsCurrentVersion(void) -{ - TP_ANNOUNCE("Param EV_NONE returns version == EV_CURRENT"); - if (elf_version(EV_NONE) != EV_CURRENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} - - -/* - * Test that an unsupported version number is not accepted. - */ - -void -tcValueTooLarge(void) -{ - TP_ANNOUNCE("calling elf_version() with an unsupported " - "(too-large) value fails and sets the error to ELF_E_VERSION."); - - if (elf_version(EV_CURRENT+1) != EV_NONE) { - tet_result(TET_FAIL); - return; - } - - if (elf_errno() != ELF_E_VERSION) { - tet_result(TET_FAIL); - return; - } - - tet_result(TET_PASS); -} - -/* - * Test that a reject version number does not cause the internal - * version number to change. - */ - -void -tcValueErrorNoChange(void) -{ - TP_ANNOUNCE("the library's current version should not be " - "changed by a failing call to elf_version()."); - - if (elf_version(EV_CURRENT+1) != EV_NONE) { - tet_infoline("unresolved: illegal elf_version() call did not " - "fail as expected."); - tet_result(TET_UNRESOLVED); - return; - } - - if (elf_version(EV_NONE) != EV_CURRENT) { - tet_result(TET_FAIL); - return; - } - - tet_result(TET_PASS); -} - -/* - * Test that setting the library version to a legal value should - * succeed. - * - * Currently, EV_CURRENT (== 1) is the only legal version. When more - * ELF versions are defined, this test should be changed to iterate - * over all of them. - */ - -void -tcValidValuesAreOk(void) -{ - int result; - unsigned int old_version, new_version; - - TP_ANNOUNCE("setting the ELF version to a legal value" - "passes"); - - result = TET_UNRESOLVED; - old_version = elf_version(EV_NONE); - - if (old_version == EV_NONE) { - TP_UNRESOLVED("unknown current elf version"); - goto done; - } - - new_version = EV_CURRENT; - if (elf_version(new_version) != old_version) { - TP_FAIL("unexpected return value from " - "elf_version(new_version)"); - goto done; - } - - /* retrieve the version that was set and check */ - if (elf_version(EV_NONE) != new_version) { - TP_FAIL("the new ELF version was not succesfully " - "set. "); - goto done; - } - - result = TET_PASS; - -done: - tet_result(result); -} - -/* - * Other APIs that shouldn't have elf_version() called. - */ - -void -tcSequenceErrorElfMemory(void) -{ - Elf *e; - - TP_ANNOUNCE("elf_memory() before elf_version() " - "fails with ELF_E_SEQUENCE."); - - if ((e = elf_memory(NULL, 0)) != NULL || - elf_errno() != ELF_E_SEQUENCE) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} - -void -tcSequenceErrorElfKind(void) -{ - TP_ANNOUNCE("assertion: calling elf_kind() before elf_version() " - "fails with ELF_E_SEQUENCE."); - - /* Note: no elf_version() call */ - if (elf_kind(NULL) != ELF_K_NONE && - elf_errno() != ELF_E_SEQUENCE) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); -} diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_getclass/Makefile b/contrib/elftoolchain/test/libelf/tset/gelf_getclass/Makefile deleted file mode 100644 index a5440f20..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_getclass/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= getclass.m4 -TS_DATA= getclass.msb32 getclass.msb64 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_getclass/getclass.m4 b/contrib/elftoolchain/test/libelf/tset/gelf_getclass/getclass.m4 deleted file mode 100644 index 6a54a931..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_getclass/getclass.m4 +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * Copyright (c) 2006 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include - -#include "elfts.h" -#include "tet_api.h" - -/* - * Test the `gelf_getclass' entry point. - */ - -IC_REQUIRES_VERSION_INIT(); - -void -tp_null(void) -{ - tet_infoline("assertion: gelf_getclass(NULL) should return " - "ELFCLASSNONE."); - - tet_result (gelf_getclass(NULL) != ELFCLASSNONE ? TET_FAIL : TET_PASS); -} - -void -tp_class32(void) -{ - Elf *e; - int fd; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: gelf_getclass() return ELFCLASS32 for a " - "32 bit ELF file."); - - TS_OPEN_FILE(e,"getclass.msb32",ELF_C_READ,fd); - - tet_result (gelf_getclass(e) != ELFCLASS32 ? TET_FAIL : TET_PASS); - - (void) elf_end(e); - (void) close(fd); -} - -void -tp_class64(void) -{ - Elf *e; - int fd; - - TP_CHECK_INITIALIZATION(); - - tet_infoline("assertion: gelf_getclass() return ELFCLASS64 for a " - "64 bit ELF file."); - - TS_OPEN_FILE(e,"getclass.msb64",ELF_C_READ,fd); - - tet_result (gelf_getclass(e) != ELFCLASS64 ? TET_FAIL : TET_PASS); - - (void) elf_end(e); - (void) close(fd); -} diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_getehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/gelf_getehdr/Makefile deleted file mode 100644 index b85f9aa3..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_getehdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_YAML= ehdr - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_getehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/gelf_getehdr/ehdr.m4 deleted file mode 100644 index 84018426..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_getehdr/ehdr.m4 +++ /dev/null @@ -1,280 +0,0 @@ -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -include(`elfts.m4') - -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -#include "gelf_ehdr_template.h" - - -void -tcNullGelfGetNullElf(void) -{ - int result; - GElf_Ehdr dst; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_getehdr(NULL,*) fails with ELF_E_ARGUMENT"); - - result = TET_PASS; - if (gelf_getehdr(NULL,&dst) != NULL || elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - tet_result(result); -} - -void -tcNullGelfGetNullDst(void) -{ - Elf *e; - int fd; - char *fn = "ehdr.msb32"; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_getehdr(*,NULL) fails with ELF_E_ARGUMENT"); - - TS_OPEN_FILE(e,fn,ELF_C_READ,fd); - - if (gelf_getehdr(e, NULL) != NULL || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); - (void) close(fd); -} - -void -tcNonElfFails(void) -{ - Elf *e; - GElf_Ehdr d; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_getehdr(E) for non-ELF (E) fails with " - "ELF_E_ARGUMENT"); - - TS_OPEN_MEMORY(e,data); - - if (gelf_getehdr(e, &d) != NULL || - elf_errno() != ELF_E_ARGUMENT) - tet_result(TET_FAIL); - else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -void -tcBadElfVersion(void) -{ - int err; - Elf *e; - void *eh; - GElf_Ehdr d; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_getehdr() on an ELF object with an unsupported " - "version fails with ELF_E_VERSION"); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - - badelf[EI_VERSION] = EV_NONE; - badelf[EI_CLASS] = ELFCLASS32; - badelf[EI_DATA] = ELFDATA2MSB; - - TS_OPEN_MEMORY(e,badelf); - - if ((eh = gelf_getehdr(e, &d)) != NULL || - (err = elf_errno()) != ELF_E_VERSION) { - tet_printf("fail: error=%d eh=%p.", err, (void *) eh); - tet_result(TET_FAIL); - } else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -void -tcMalformedElf(void) -{ - int err; - Elf *e; - void *eh; - GElf_Ehdr d; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_getehdr() on a malformed ELF object fails with " - "ELF_E_HEADER"); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - badelf[EI_VERSION] = EV_CURRENT; - badelf[EI_CLASS] = ELFCLASS32; - badelf[EI_DATA] = ELFDATA2MSB; - - TS_OPEN_MEMORY(e, badelf); - - if ((eh = gelf_getehdr(e, &d)) != NULL || - (err = elf_errno()) != ELF_E_HEADER) { - tet_printf("fail: error=%d eh=%p.", err, (void *) eh); - tet_result(TET_FAIL); - } else - tet_result(TET_PASS); - - (void) elf_end(e); -} - -static char *filenames[] = { - "ehdr.lsb32", - "ehdr.msb32", - "ehdr.lsb64", - "ehdr.msb64", - NULL -}; - -void -tcGoodElfValid(void) -{ - int fd, result; - GElf_Ehdr d1, *eh; - Elf *e; - char *fn; - int i, data, class; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("a successful gelf_getehdr() call returns " - "a pointer to the passed in structure, filled with the correct " - "contents"); - - result = TET_PASS; - e = NULL; - fd = -1; - - for (i = 0; i < 4; i++) { - fn = filenames[i]; - - TS_OPEN_FILE(e, fn, ELF_C_READ, fd); - - if ((eh = gelf_getehdr(e, &d1)) == NULL) { - tet_printf("fail: gelf_getehdr(%s): %s.", *fn, - elf_errmsg(-1)); - result = TET_FAIL; - goto done; - } - - if (eh != &d1) { - tet_printf("fail: gelf_getehdr() return != argument."); - result = TET_FAIL; - goto done; - } - - data = (i & 1) ? ELFDATA2MSB : ELFDATA2LSB; - class = (i <= 1) ? ELFCLASS32 : ELFCLASS64; - - CHECK_EHDR(eh, data, class); - - if (result != TET_PASS) - break; - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - } - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -} - -void -tcDupCalls(void) -{ - int fd, result; - Elf *e; - GElf_Ehdr d1, d2; - GElf_Ehdr *eh1, *eh2; - char **fn; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("successful calls to gelf_getehdr() for the same object " - "return identical contents"); - - result = TET_PASS; - e = NULL; - fd = -1; - - for (fn = filenames; *fn; fn++) { - TS_OPEN_FILE(e,*fn,ELF_C_READ,fd); - - if ((eh1 = gelf_getehdr(e, &d1)) == NULL || - (eh2 = gelf_getehdr(e, &d2)) == NULL) { - tet_printf("unresolved: gelf_getehdr(%s) failed.", - *fn); - result = TET_UNRESOLVED; - goto done; - } - - COMPARE_EHDR(*fn, d1, d2); - - if (result != TET_PASS) - goto done; - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - } - - done: - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - - tet_result(result); - -} - diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_newehdr/Makefile b/contrib/elftoolchain/test/libelf/tset/gelf_newehdr/Makefile deleted file mode 100644 index 1720824e..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_newehdr/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= ehdr.m4 -TS_YAML= ehdr newehdr - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_newehdr/ehdr.m4 b/contrib/elftoolchain/test/libelf/tset/gelf_newehdr/ehdr.m4 deleted file mode 100644 index edc181a8..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_newehdr/ehdr.m4 +++ /dev/null @@ -1,468 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -#include "elfts.h" - -#include "gelf_ehdr_template.h" - -include(`elfts.m4') - -/* - * A NULL `Elf *' argument returns an ELF_E_ARGUMENT error. - */ -undefine(`FN')dnl -define(`FN',` -void -tcGelfGetNullElf$1(void) -{ - void *eh; - int error, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_newehdr(NULL,ELFCLASS$2) fails with " - "ELF_E_ARGUMENT."); - - result = TET_PASS; - if ((eh = gelf_newehdr(NULL,ELFCLASS$1)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("eh=%p, error=\"%s\".", eh, elf_errmsg(error)); - - tet_result(result); -}') - -FN(`NONE') -FN(`32') -FN(`64') - -/* - * For a non-NULL but non Elf descriptor, the function should fail - * with ELF_E_ARGUMENT. - */ -undefine(`FN')dnl -define(`FN',` -void -tcDataNonElfDesc$1(void) -{ - int error, result; - void *eh; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_newehdr(E,ELFCLASS$1) for non-ELF (E) " - "fails with ELF_E_ARGUMENT."); - - TS_OPEN_MEMORY(e, data); - - result = TET_PASS; - if ((eh = gelf_newehdr(e, ELFCLASS$1)) != NULL || - (error = elf_errno()) != ELF_E_ARGUMENT) - TP_FAIL("eh=%p error=%d \"%s\".", (void *) eh, - error, elf_errmsg(error)); - - (void) elf_end(e); - tet_result(result); -}') - -FN(`NONE') -FN(`32') -FN(`64') - -/* - * A valid Elf descriptor with of an unsupported version should - * return an ELF_E_VERSION error. - */ -undefine(`FN')dnl -define(`FN',` -void -tcBadElfVersion$1$2(void) -{ - int err, result; - Elf *e; - void *eh; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_newehdr(E,ELFCLASS$1) with an unsupported " - "version fails with ELF_E_VERSION."); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - - badelf[EI_VERSION] = EV_NONE; - badelf[EI_CLASS] = ELFCLASS$2; - badelf[EI_DATA] = ELFDATA2$1; - - TS_OPEN_MEMORY(e, badelf); - - result = TET_PASS; - if ((eh = gelf_newehdr(e, ELFCLASS$2)) != NULL || - (err = elf_errno()) != ELF_E_VERSION) - TP_FAIL("eh=%p error=\"%s\".", (void *) eh, elf_errmsg(err)); - - (void) elf_end(e); - tet_result(result); -}') - -FN(`LSB',`32') -FN(`LSB',`64') -FN(`MSB',`32') -FN(`MSB',`64') - -/* - * A malformed ELF descriptor should return an ELF_E_HEADER error. - */ -undefine(`FN')dnl -define(`FN',` -void -tcMalformedElf$1$2(void) -{ - int err, result; - Elf *e; - void *eh; - char badelf[sizeof(badelftemplate)]; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_newehdr($2,ELFCLASS$1) on a malformed " - "ELF header fails with ELF_E_HEADER."); - - (void) memcpy(badelf, badelftemplate, sizeof(badelf)); - badelf[EI_VERSION] = EV_CURRENT; - badelf[EI_CLASS] = ELFCLASS$1; - badelf[EI_DATA] = ELFDATA2$2; - - TS_OPEN_MEMORY(e, badelf); - - result = TET_PASS; - if ((eh = gelf_newehdr(e, ELFCLASS$1)) != NULL || - (err = elf_errno()) != ELF_E_HEADER) - TP_FAIL("eh=%p error=\"%s\".", (void *) eh, elf_errmsg(err)); - - (void) elf_end(e); - tet_result(result); -}') - -FN(`32',`LSB') -FN(`32',`MSB') -FN(`64',`LSB') -FN(`64',`MSB') - -/* - * Attempting to open pre-existing ELF file of the wrong class - * should fail with ELF_E_CLASS. - */ -undefine(`FN')dnl -define(`FN',` -void -tcWrongElfClass$1$2(void) -{ - int error, fd, result; - Elf$2_Ehdr *eh; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("A call to gelf_newehdr(ehdr.$1$3,ELFCLASS$2) " - "fails with ELF_E_CLASS"); - - TS_OPEN_FILE(e, "ehdr.$1$3", ELF_C_READ, fd); - - result = TET_PASS; - error = 0; - eh = NULL; - - result = TET_PASS; - if ((eh = (Elf$2_Ehdr *) gelf_newehdr(e, ELFCLASS$2)) != NULL || - (error = elf_errno()) != ELF_E_CLASS) - TP_FAIL("eh=%p, error=\"%s\".", (void *) eh, elf_errmsg(error)); - - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -}') - -FN(`lsb',`32',`64') -FN(`lsb',`64',`32') -FN(`msb',`32',`64') -FN(`msb',`64',`32') - -/* - * Attempting to open a pre-existing ELF file of the correct class - * should succeed. - */ -undefine(`FN') -define(`FN',` -void -tcElfValidClass$1$2(void) -{ - int fd, result; - Elf$2_Ehdr *eh; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("a successful gelf_newehdr(ehdr.$1$2," - "ELFCLASS$2) call returns the correct contents."); - - TS_OPEN_FILE(e, "ehdr.$1$2", ELF_C_READ, fd); - - result = TET_PASS; - - result = TET_PASS; - if ((eh = (Elf$2_Ehdr *) gelf_newehdr(e, ELFCLASS$2)) == NULL) { - TP_FAIL("gelf_newehdr(ehdr.$1$2) failed: %s.", elf_errmsg(-1)); - goto done; - } - - CHECK_EHDR(eh, ELFDATA2`'TOUPPER($1), ELFCLASS$2); - - done: - (void) elf_end(e); - (void) close(fd); - - tet_result(result); -}') - -FN(`lsb',`32') -FN(`lsb',`64') -FN(`msb',`32') -FN(`msb',`64') - -define(`TS_NEWELF',`"new.elf"') -define(`CHECK_NEWEHDR',` do { - if (($1)->e_ident[EI_MAG0] != ELFMAG0 || - ($1)->e_ident[EI_MAG1] != ELFMAG1 || - ($1)->e_ident[EI_MAG2] != ELFMAG2 || - ($1)->e_ident[EI_MAG3] != ELFMAG3 || - ($1)->e_ident[EI_CLASS] != ELFCLASS$2 || - ($1)->e_ident[EI_DATA] != ELFDATANONE || - ($1)->e_ident[EI_VERSION] != EV_CURRENT || - ($1)->e_machine != EM_NONE || - ($1)->e_type != ELF_K_NONE || - ($1)->e_version != EV_CURRENT) - TP_FAIL("gelf_getnewehdr(ELFCLASS$2) " - "header mismatch."); -} while (0) -') - -/* - * Retrieving the header from a new ELF file should return the - * correct values. - */ - -undefine(`FN') -define(`FN',` -void -tcNewElfExpected$1(void) -{ - int fd, result; - Elf$1_Ehdr *eh; - Elf *e; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_newehdr(new.elf,ELFCLASS$1) returns " - "the correct header."); - - TS_OPEN_FILE(e, TS_NEWELF, ELF_C_WRITE, fd); - - result = TET_PASS; - if ((eh = (Elf$1_Ehdr *) gelf_newehdr(e, ELFCLASS$1)) == NULL) { - TP_FAIL("gelf_newehdr("TS_NEWELF",ELFCLASS$1) failed: %s", - elf_errmsg(-1)); - goto done; - } - - CHECK_NEWEHDR(eh, $1); - - done: - (void) elf_end(e); - (void) close(fd); - (void) unlink(TS_NEWELF); - tet_result(result); -}') - -FN(`32') -FN(`64') - -/* - * Allocating a new Ehdr should mark it as dirty. - */ - -undefine(`FN') -define(`FN',` -void -tcNewElfFlagDirty$1(void) -{ - Elf *e; - Elf$1_Ehdr *eh; - int fd, flags, result; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("gelf_newehdr("TS_NEWELF",ELFCLASS$1) marks " - "the header as dirty."); - - TS_OPEN_FILE(e, TS_NEWELF, ELF_C_WRITE, fd); - - if ((eh = (Elf$1_Ehdr *) gelf_newehdr(e, ELFCLASS$1)) == NULL) { - TP_FAIL("gelf_newehdr("TS_NEWELF",ELFCLASS$1) failed: %s.", - elf_errmsg(-1)); - goto done; - } - - flags = elf_flagehdr(e, ELF_C_CLR, 0); - - result = (flags & ELF_F_DIRTY) == 0 ? TET_FAIL : TET_PASS; - - done: - (void) elf_end(e); - (void) close(fd); - (void) unlink(TS_NEWELF); - - tet_result(result); -}') - -FN(`32') -FN(`64') - -/* - * Allocating and updating an Elf_Ehdr works correctly. - */ - -define(`TS_REFELF',`"newehdr."') - -undefine(`FN') -define(`FN',` -void -tcUpdateElf$1$2(void) -{ - Elf$2_Ehdr *eh; - Elf *e; - int fd, reffd, result; - off_t offset; - size_t fsz; - void *t, *tref; - - TP_CHECK_INITIALIZATION(); - - TP_ANNOUNCE("The contents of the $1$2 Ehdr structure are " - "correctly updated."); - - t = tref = NULL; - fd = reffd = -1; - - TS_OPEN_FILE(e, TS_NEWELF, ELF_C_WRITE, fd); - - result = TET_UNRESOLVED; - - if ((eh = (Elf$2_Ehdr *) gelf_newehdr(e, ELFCLASS$2)) == NULL) { - TP_UNRESOLVED("gelf_newehdr(ELFCLASS$2) failed: %s", - elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2`'TOUPPER($1); - - if ((offset = elf_update(e, ELF_C_WRITE)) < 0) { - TP_UNRESOLVED("elf_update() failed: %s.", elf_errmsg(-1)); - goto done; - } - - fsz = gelf_fsize(e, ELF_T_EHDR, 1, EV_CURRENT); - - if (offset != fsz) { - TP_FAIL("elf_update() -> %d, expected %d.", offset, fsz); - goto done; - } - - (void) elf_end(e); e = NULL; - (void) close(fd); fd = -1; - - if ((t = malloc(fsz)) == NULL || - (tref = malloc(fsz)) == NULL) { - TP_UNRESOLVED("malloc(%d) failed.", fsz); - goto done; - } - - if ((fd = open(TS_NEWELF, O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open("TS_NEWELF") failed: %s", strerror(errno)); - goto done; - } - - if (read(fd, t, fsz) != fsz) { - TP_UNRESOLVED("read(%d) failed: %s", fsz, strerror(errno)); - goto done; - } - - if ((reffd = open(TS_REFELF "$1$2", O_RDONLY, 0)) < 0) { - TP_UNRESOLVED("open("TS_REFELF"$1$2) failed: %s.", - strerror(errno)); - goto done; - } - - if (read(reffd, tref, fsz) != fsz) { - TP_UNRESOLVED("read(%d) failed: %s.", fsz, strerror(errno)); - goto done; - } - - result = TET_PASS; - if (memcmp(t, tref, fsz) != 0) - TP_FAIL("memcmp("TS_NEWELF","TS_REFELF"$1$2) failed."); - - done: - (void) unlink(TS_NEWELF); - if (e) - (void) elf_end(e); - if (fd != -1) - (void) close(fd); - if (reffd != -1) - (void) close(reffd); - if (t) - free(t); - if (tref) - free(tref); - tet_result(result); -}') - -FN(`lsb',`32') -FN(`lsb',`64') -FN(`msb',`32') -FN(`msb',`64') diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_xlate/Makefile b/contrib/elftoolchain/test/libelf/tset/gelf_xlate/Makefile deleted file mode 100644 index dd478b31..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_xlate/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= xlate.m4 -TS_YAML= xlate - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelf/tset/gelf_xlate/xlate.m4 b/contrib/elftoolchain/test/libelf/tset/gelf_xlate/xlate.m4 deleted file mode 100644 index 8e16de68..00000000 --- a/contrib/elftoolchain/test/libelf/tset/gelf_xlate/xlate.m4 +++ /dev/null @@ -1,1354 +0,0 @@ -/*- - * Copyright (c) 2006,2011 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include -#include - -#include "tet_api.h" -#include "elfts.h" - -include(`elfts.m4') - -IC_REQUIRES_VERSION_INIT(); - -#define NO_TESTCASE_FUNCTIONS /* only want the tables */ - -#define TS_XLATESZ 32 -#include "xlate_template.c" - -#undef TS_XLATESZ -#define TS_XLATESZ 64 -#include "xlate_template.c" - -static int -check_gelf_xlate(Elf_Data *xlator(Elf *e,Elf_Data *d, const Elf_Data *s, unsigned int enc), - Elf *e, int ed, Elf_Data *dst, Elf_Data *src, struct testdata *td, int ncopies) -{ - Elf_Data *dstret; - int result; - size_t msz; - - msz = td->tsd_msz; - result = TET_UNRESOLVED; - - /* Invoke translator */ - if ((dstret = xlator(e, dst, src, ed)) != dst) { - TP_FAIL("\"%s\" " __XSTRING(TC_XLATETOM) - ": %s", td->tsd_name, elf_errmsg(-1)); - return (result); - } - - /* Check return parameters. */ - if (dst->d_type != td->tsd_type || dst->d_size != msz*ncopies) { - TP_FAIL("\"%s\" type(ret=%d,expected=%d) " - "size (ret=%d,expected=%d).", td->tsd_name, - dst->d_type, td->tsd_type, dst->d_size, msz*ncopies); - return (result); - } - - return (TET_PASS); -} - -static const char *testfns[] = { - "xlate.lsb32", - "xlate.msb32", - "xlate.lsb64", - "xlate.msb64", - NULL -}; - -static int -tcDriver(int (*tf)(const char *fn, Elf *e)) -{ - int fd, result; - Elf *e; - const char **fn; - - result = TET_PASS; - for (fn = testfns; result == TET_PASS && *fn; fn++) { - - _TS_OPEN_FILE(e,*fn,ELF_C_READ,fd,;); - - if (e == NULL) { - result = TET_UNRESOLVED; - break; - } - - result = (*tf)(*fn, e); - - (void) elf_end(e); - (void) close(fd); - } - - return (result); -} - -/* - * Check byte conversions: - */ - -static int -_tcByte(const char *fn, Elf *e) -{ - Elf_Data dst, src; - int i, offset, sz, result; - char *filebuf, *membuf, *t, *ref; - - ref = td_L32_QUAD; - sz = sizeof(td_L32_QUAD); - - if ((membuf = malloc(sz*NCOPIES)) == NULL || - (filebuf = malloc(sz*NCOPIES+NOFFSET)) == NULL) { - TP_UNRESOLVED("malloc() failed."); - goto done; - } - - /* - * Check memory to file conversions. - */ - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t,ref,sz) + sz; - - src.d_buf = membuf; - src.d_size = sz*NCOPIES; - src.d_type = ELF_T_BYTE; - src.d_version = EV_CURRENT; - - TP_ANNOUNCE("\"%s\" Byte TOF() succeeds.", fn); - - for (offset = 0; offset < NOFFSET; offset++) { - /* - * LSB - */ - dst.d_buf = filebuf + offset; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (gelf_xlatetof(e,&dst,&src,ELFDATA2LSB) != &dst || - dst.d_size != sz*NCOPIES) { - TP_FAIL("LSB TOF() conversion."); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - TP_FAIL("LSB TOF() memcmp()."); - goto done; - } - - /* - * MSB - */ - dst.d_buf = filebuf + offset; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (gelf_xlatetof(e,&dst,&src,ELFDATA2MSB) != &dst || - dst.d_size != sz*NCOPIES) { - TP_FAIL("MSB TOF() conversion."); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - TP_FAIL("MSB TOF() memcmp()."); - goto done; - } - } - - /* - * Check file to memory conversions. - */ - - TP_ANNOUNCE("\"%s\" Byte TOM() succeeds.", fn); - - ref = td_M32_QUAD; - sz = sizeof(td_M32_QUAD); - - for (offset = 0; offset < NOFFSET; offset++) { - - src.d_buf = t = filebuf + offset; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t,ref,sz); - - src.d_size = sz*NCOPIES; - src.d_type = ELF_T_BYTE; - src.d_version = EV_CURRENT; - - /* - * LSB - */ - dst.d_buf = membuf; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (gelf_xlatetom(e,&dst,&src,ELFDATA2LSB) != &dst || - dst.d_size != sz * NCOPIES) { - TP_FAIL("LSB TOM() conversion."); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - TP_FAIL("LSB TOM() memcmp()."); - goto done; - } - - /* - * MSB - */ - dst.d_buf = membuf; - dst.d_size = sz*NCOPIES; - dst.d_version = EV_CURRENT; - - if (gelf_xlatetom(e,&dst,&src,ELFDATA2MSB) != &dst || - dst.d_size != sz * NCOPIES) { - TP_FAIL("MSB TOM() conversion."); - goto done; - } - - if (memcmp(membuf, filebuf+offset, sz*NCOPIES)) { - TP_FAIL("MSB TOM() memcmp()."); - goto done; - } - } - - result = TET_PASS; - - done: - if (membuf) - free(membuf); - if (filebuf) - free(filebuf); - - return (result); -} - -void -tcXlateByte(void) -{ - tet_result(tcDriver(_tcByte)); -} - -static int -_tpToM(const char *fn, Elf *e) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, offset, result; - char *srcbuf, *membuf, *t; - - srcbuf = NULL; /* file data (bytes) */ - membuf = NULL; /* memory data (struct) */ - - result = TET_PASS; - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - - /* Loop over all types for this ELF class */ - for (; td->tsd_name; td++) { - - fsz = gelf_fsize(e, td->tsd_type, 1, EV_CURRENT); - msz = td->tsd_msz; - - if (msz == 0 || - fsz != td->tsd_fsz) { - TP_UNRESOLVED("\"%s\" %s: msz=%d fsz=%d td->fsz=%d.", - fn, td->tsd_name, msz, fsz, td->tsd_fsz); - goto done; - } - - assert(fsz == td->tsd_fsz); - - /* - * allocate space for NCOPIES of data + offset for file data and - * NCOPIES of memory data. - */ - if ((srcbuf = malloc(NCOPIES*fsz+NOFFSET)) == NULL || - ((membuf = malloc(NCOPIES*msz))) == NULL) { - TP_UNRESOLVED("malloc() failed."); - goto done; - } - - - TP_ANNOUNCE("\"%s\" gelf_xlatetom(%s) succeeds.", fn, - td->tsd_name); - - for (offset = 0; offset < NOFFSET; offset++) { - - src.d_buf = t = srcbuf + offset; - src.d_size = fsz * NCOPIES; - src.d_type = td->tsd_type; - src.d_version = EV_CURRENT; - - dst.d_buf = membuf; - dst.d_size = msz * NCOPIES; - dst.d_version = EV_CURRENT; - - - /* - * Check conversion of LSB encoded data. - */ - - /* copy `NCOPIES*fsz' bytes in `srcbuf+offset' */ - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_lsb, fsz); - t += fsz; - } - (void) memset(membuf, 0, NCOPIES*msz); - - if ((result = check_gelf_xlate(gelf_xlatetom,e, - ELFDATA2LSB, &dst,&src,td,NCOPIES)) != - TET_PASS) - goto done; - - /* - * Compare the retrieved data with the canonical - * value - */ - t = dst.d_buf; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_mem, msz)) { - TP_FAIL("\"%s\" \"%s\" LSB " - "memory compare failed.", fn, - td->tsd_name); - goto done; - } - t += msz; - } - - /* - * Check conversion of MSB encoded data. - */ - - t = srcbuf + offset; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_msb, fsz); - t += fsz; - } - (void) memset(membuf, 0, NCOPIES*msz); - if ((result = check_gelf_xlate(gelf_xlatetom,e, - ELFDATA2MSB, &dst,&src,td,NCOPIES)) != - TET_PASS) - goto done; - - /* compare the retrieved data with the canonical value */ - t = dst.d_buf; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_mem, msz)) { - TP_FAIL("\"%s\" \"%s\" MSB " - "memory compare failed.", fn, - td->tsd_name); - goto done; - } - t += msz; - } - } - - free(srcbuf); srcbuf = NULL; - free(membuf); membuf = NULL; - } - - done: - if (srcbuf) - free(srcbuf); - if (membuf) - free(membuf); - - return (result); -} - -void -tcXlateToM(void) -{ - tet_result(tcDriver(_tpToM)); -} - -/* - * Check non-byte conversions from memory to file. - */ -static int -_tpToF(const char *fn, Elf *e) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, offset, result; - char *filebuf, *membuf, *t; - - filebuf = NULL; /* file data (bytes) */ - membuf = NULL; /* memory data (struct) */ - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - - result = TET_PASS; - - /* Loop over all types */ - for (; td->tsd_name; td++) { - - fsz = gelf_fsize(e, td->tsd_type, 1, EV_CURRENT); - msz = td->tsd_msz; - - if (msz == 0 || - fsz != td->tsd_fsz) { - TP_UNRESOLVED("? \"%s\" %s: msz=%d fsz=%d td->fsz=%d.", - fn, td->tsd_name, msz, fsz, td->tsd_fsz); - goto done; - } - - assert(msz > 0); - assert(fsz == td->tsd_fsz); - - /* - * allocate space for NCOPIES of data + offset for file data and - * NCOPIES of memory data. - */ - if ((filebuf = malloc(NCOPIES*fsz+NOFFSET)) == NULL || - ((membuf = malloc(NCOPIES*msz))) == NULL) { - TP_UNRESOLVED("malloc() failed."); - goto done; - } - - - TP_ANNOUNCE("\"%s\" gelf_xlatetof(%s) succeeds.", fn, - td->tsd_name); - - for (offset = 0; offset < NOFFSET; offset++) { - - src.d_buf = membuf; - src.d_size = msz * NCOPIES; - src.d_type = td->tsd_type; - src.d_version = EV_CURRENT; - - /* - * Check LSB conversion. - */ - - /* - * Copy `NCOPIES' of canonical memory data to the - * src buffer. - */ - t = membuf; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_mem, msz); - t += msz; - } - (void) memset(filebuf, 0, NCOPIES*fsz+NOFFSET); - - dst.d_buf = filebuf + offset; - dst.d_size = fsz * NCOPIES; - dst.d_version = EV_CURRENT; - - if ((result = check_gelf_xlate(gelf_xlatetof, e, - ELFDATA2LSB, &dst, &src, td, NCOPIES)) != - TET_PASS) - goto done; - - /* compare converted data to canonical form */ - t = filebuf + offset; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_lsb, fsz)) { - TP_FAIL("\"%s\" \"%s\" LSB memory " - "compare.", fn, td->tsd_name); - goto done; - } - t += fsz; - } - - /* - * Check MSB conversion. - */ - t = membuf; - for (i = 0; i < NCOPIES; i++) { - (void) memcpy(t, td->tsd_mem, msz); - t += msz; - } - (void) memset(filebuf, 0, NCOPIES*fsz+NOFFSET); - - dst.d_buf = filebuf + offset; - dst.d_size = fsz * NCOPIES; - dst.d_version = EV_CURRENT; - - if ((result = check_gelf_xlate(gelf_xlatetof, e, - ELFDATA2MSB, &dst, &src, td, NCOPIES)) == - TET_PASS) - goto done; - - /* compare converted data to canonical form */ - t = filebuf + offset; - for (i = 0; i < NCOPIES; i++) { - if (memcmp(t, td->tsd_msb, fsz)) { - TP_FAIL("\"%s\" \"%s\" MSB " - "memory compare.", fn, - td->tsd_name); - goto done; - } - t += fsz; - } - } - - free(filebuf); filebuf = NULL; - free(membuf); membuf = NULL; - } - - done: - if (filebuf) - free(filebuf); - if (membuf) - free(membuf); - - return (result); -} - -void -tcXlateToF(void) -{ - tet_result(tcDriver(_tpToF)); -} - - -/* - * Various checks for invalid arguments. - */ - -static int -_tpNullArgs(const char *fn, Elf *e) -{ - Elf_Data ed; - int result; - - TP_ANNOUNCE("gelf_xlatetof(%s)/gelf_xlatetom(%s)" - " with NULL arguments fails with ELF_E_ARGUMENT.", - fn, fn); - - result = TET_PASS; - - if (gelf_xlatetof(NULL, NULL, NULL, ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (gelf_xlatetof(e, NULL, &ed, ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (gelf_xlatetof(e, &ed, NULL, ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (gelf_xlatetom(NULL, NULL, NULL, ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (gelf_xlatetom(e, NULL, &ed, ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, NULL, ELFDATANONE) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - return (result); -} - -void -tcArgsNull(void) -{ - tet_result(tcDriver(_tpNullArgs)); -} - - -static int -_tpBadType(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - char buf[1024]; - - TP_ANNOUNCE("gelf_xlatetof(%s)/" - "gelf_xlatetom(%s) with an out of range type " - "fails with ELF_E_DATA.", fn, fn); - - result = TET_PASS; - - es.d_version = ed.d_version = EV_CURRENT; - es.d_buf = ed.d_buf = buf; - es.d_size = ed.d_size = sizeof(buf); - - es.d_type = (Elf_Type) -1; - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - es.d_type = ELF_T_NUM; - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - return (result); -} - -void -tcArgsBadType(void) -{ - tet_result(tcDriver(_tpBadType)); -} - -static int -_tpBadEncoding(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - - TP_ANNOUNCE("gelf_xlatetof/" - "gelf_xlatetom()(*,*,BADENCODING) " - "fails with ELF_E_ARGUMENT."); - - result = TET_PASS; - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE-1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (gelf_xlatetof(e, &ed, &es, ELFDATA2MSB+1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE-1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - else if (gelf_xlatetom(e, &ed, &es, ELFDATA2MSB+1) != NULL || - elf_errno() != ELF_E_ARGUMENT) - result = TET_FAIL; - - return (result); -} - -void -tcArgsBadEncoding(void) -{ - tet_result(tcDriver(_tpBadEncoding)); -} - -static int -_tpDstSrcVersion(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("gelf_xlateto[fm]() with unequal src,dst versions " - "fails with ELF_E_UNIMPL."); - - es.d_buf = ed.d_buf = buf; - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT; - ed.d_version = EV_NONE; - - result = TET_PASS; - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_UNIMPL) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_UNIMPL) - result = TET_FAIL; - - return (result); -} - -void -tcArgsDstSrcVersion(void) -{ - tet_result(tcDriver(_tpDstSrcVersion)); -} - -/* - * Check for an unimplemented type. - */ -static int -_tpUnimplemented(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int i, result; - char *buf; - - buf = NULL; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("gelf_xlateto[fm]() on unimplemented types will " - "fail with ELF_E_UNIMPL."); - - /* - * allocate a buffer that is large enough for any potential - * ELF data structure. - */ - if ((buf = malloc(1024)) == NULL) { - TP_UNRESOLVED("malloc() failed."); - goto done; - } - - ed.d_buf = es.d_buf = buf; - ed.d_size = es.d_size = 1024; - ed.d_version = es.d_version = EV_CURRENT; - - result = TET_PASS; - - for (i = 0; i < ELF_T_NUM; i++) { - switch (i) { - case ELF_T_MOVEP: - break; - - case ELF_T_SXWORD: /* unimplemented for 32 bit ELF */ - case ELF_T_XWORD: - if (gelf_getclass(e) == ELFCLASS64) - continue; - break; - default: - continue; - } - - es.d_type = i; - - if (gelf_xlatetof(e, &ed, &es, ELFDATA2LSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - TP_FAIL("TOF/LSB/type=%d.", i); - goto done; - } - - if (gelf_xlatetof(e, &ed, &es, ELFDATA2MSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - TP_FAIL("TOF/MSB/type=%d.", i); - goto done; - } - - if (gelf_xlatetom(e, &ed, &es, ELFDATA2LSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - TP_FAIL("TOM/LSB/type=%d.", i); - goto done; - } - - if (gelf_xlatetom(e, &ed, &es, ELFDATA2MSB) != NULL || - elf_errno() != ELF_E_UNIMPL) { - TP_FAIL("fail: TOM/MSB/type=%d.", i); - goto done; - } - } - -done: - if (buf) - free(buf); - return (result); -} - -void -tcArgsUnimplemented(void) -{ - tet_result(tcDriver(_tpUnimplemented)); -} - -/* - * Check for null buffer pointers. - */ -static int -_tpNullDataPtr(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("gelf_xlateto[fm](%s) with a null " - "src,dst buffer pointer fails with ELF_E_DATA.", fn); - - result = TET_PASS; - - es.d_type = ELF_T_BYTE; - es.d_size = ed.d_size = sizeof(buf); - es.d_version = EV_CURRENT; - ed.d_version = EV_CURRENT; - - es.d_buf = NULL; - ed.d_buf = buf; - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - es.d_buf = buf; - ed.d_buf = NULL; - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) - result = TET_FAIL; - - return (result); -} - -void -tcBufferNullDataPtr(void) -{ - tet_result(tcDriver(_tpNullDataPtr)); -} - -/* - * Misaligned data. - */ - -static int -_tpMisaligned(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - size_t fsz, msz; - char *sb, *db; - struct testdata *td; - - sb = db = NULL; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("\"%s\" misaligned buffers are rejected with " - "ELF_E_DATA.", fn); - - if ((sb = malloc(1024)) == NULL || - (db = malloc(1024)) == NULL) { - TP_UNRESOLVED("malloc() failed."); - goto done; - } - - result = TET_PASS; - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - - for (; td->tsd_name; td++) { - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - es.d_type = td->tsd_type; - es.d_version = EV_CURRENT; - - /* Misalign the destination for to-memory xfers */ - es.d_size = (1024 / fsz) * fsz; /* round down */ - es.d_buf = sb; - - ed.d_buf = db + 1; /* guaranteed to be misaliged */ - ed.d_version = EV_CURRENT; - ed.d_size = 1024; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" TOM alignment.", td->tsd_name); - goto done; - } - - /* Misalign the source for to-file xfers */ - es.d_buf = sb + 1; - es.d_size = (1024/msz) * msz; /* round down */ - ed.d_buf = db; - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" TOF alignment.", - td->tsd_name); - goto done; - } - } - -done: - if (sb) - free(sb); - if (db) - free(db); - return (result); -} - -void -tcBufferMisaligned(void) -{ - tet_result(tcDriver(_tpMisaligned)); -} - -/* - * Overlapping buffers. - */ -static int -_tpOverlap(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - char buf[sizeof(int)]; - - TP_ANNOUNCE("\"%s\" overlapping buffers are rejected with " - "ELF_E_DATA.", fn); - - es.d_buf = buf; ed.d_buf = buf+1; - es.d_version = ed.d_version = EV_CURRENT; - es.d_size = ed.d_size = sizeof(buf); - es.d_type = ELF_T_BYTE; - - result = TET_PASS; - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("gelf_xlatetof()."); - goto done; - } - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("gelf_xlatetom()."); - goto done; - } - -done: - return (result); -} - -void -tcBufferOverlap(void) -{ - tet_result(tcDriver(_tpOverlap)); -} - -/* - * Non-integral number of src elements. - */ -static int -_tpSrcExtra(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - size_t fsz, msz; - char *sb, *db; - struct testdata *td; - - TP_ANNOUNCE("\"%s\" mis-sized buffers are rejected with " - "ELF_E_DATA.", fn); - - sb = db = NULL; - if ((sb = malloc(1024)) == NULL || - (db = malloc(1024)) == NULL) { - TP_UNRESOLVED("malloc() failed."); - goto done; - } - - result = TET_PASS; - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - - for (; td->tsd_name; td++) { - fsz = td->tsd_fsz; - msz = td->tsd_msz; - - es.d_type = td->tsd_type; - es.d_version = EV_CURRENT; - ed.d_version = EV_CURRENT; - ed.d_buf = db; - es.d_buf = sb; - ed.d_size = 1024; - - /* Pad src bytes with extra bytes for to memor */ - es.d_size = fsz+1; - - if (gelf_xlatetom(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" TOM buffer size.", td->tsd_name); - goto done; - } - - es.d_size = msz+1; - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" TOF buffer size.", td->tsd_name); - goto done; - } - } - -done: - if (sb) - free(sb); - if (db) - free(db); - - return (result); -} - -void -tcBufferSrcExtra(void) -{ - tet_result(tcDriver(_tpSrcExtra)); -} - -static int -_tpDstTooSmall(const char *fn, Elf *e) -{ - Elf_Data ed, es; - int result; - struct testdata *td; - size_t fsz, msz; - char buf[1024]; - - result = TET_PASS; - - TP_ANNOUNCE("\"%s\" too small destination buffers are " - "rejected with ELF_E_DATA.", fn); - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - - for (; td->tsd_name; td++) { - msz = td->tsd_msz; - fsz = td->tsd_fsz; - - es.d_type = td->tsd_type; - es.d_version = ed.d_version = EV_CURRENT; - es.d_buf = ed.d_buf = buf; - - es.d_size = (sizeof(buf) / msz) * msz; - ed.d_size = 1; /* too small a size */ - - if (gelf_xlatetof(e, &ed, &es, ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" TOF dst size.", td->tsd_name); - goto done; - } - - es.d_size = (sizeof(buf) / fsz) * fsz; - if (gelf_xlatetom(e, &ed,&es,ELFDATANONE) != NULL || - elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" TOF dst size.", td->tsd_name); - goto done; - } - } - -done: - return (result); -} - -void -tcBufferDstTooSmall(void) -{ - tet_result(tcDriver(_tpDstTooSmall)); -} - -static int -_tpSharedBufferByte(const char *fn, Elf *e) -{ - int i, result; - size_t sz; - Elf_Data dst, src; - char *membuf, *t, *ref; - -#define PREPARE_SHARED(T,SZ) do { \ - src.d_buf = dst.d_buf = membuf; \ - src.d_size = dst.d_size = (SZ) * NCOPIES; \ - src.d_type = dst.d_type = (T); \ - src.d_version = dst.d_version = EV_CURRENT; \ - } while (0) - -#define VERIFY(R,SZ) do { \ - t = dst.d_buf; \ - for (i = 0; i < NCOPIES; i++, t += (SZ)) \ - if (memcmp((R), t, (SZ))) { \ - TP_FAIL("LSB TOF() memcmp()."); \ - goto done; \ - } \ - } while (0) - - membuf = NULL; - ref = TYPEDEFNAME(L,QUAD); - sz = sizeof(TYPEDEFNAME(L,QUAD)); - - if ((membuf = malloc(sz * NCOPIES)) == NULL) { - TP_UNRESOLVED("\"%s\" malloc() failed.", fn); - return (TET_UNRESOLVED); - } - - result = TET_PASS; - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, ref, sz) + sz; - - TP_ANNOUNCE("\"%s\" byte TOF() on a shared dst/src arena " - "succeeds.", fn); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (gelf_xlatetof(e, &dst, &src, ELFDATA2LSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - TP_FAIL("\"%s\" LSB TOF() conversion: %s.", fn, - elf_errmsg(-1)); - goto done; - } - VERIFY(ref,sz); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (gelf_xlatetof(e, &dst, &src, ELFDATA2MSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - TP_FAIL("\"%s\" MSB TOF() conversion: %s.", fn, - elf_errmsg(-1)); - goto done; - } - VERIFY(ref,sz); - - TP_ANNOUNCE("assertion: \"%s\" byte TOM() on a shared dst/src arena " - "succeeds.", fn); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (gelf_xlatetom(e, &dst, &src, ELFDATA2LSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - TP_FAIL("\"%s\" LSB TOM() conversion: %s.", fn, - elf_errmsg(-1)); - goto done; - } - VERIFY(ref,sz); - - PREPARE_SHARED(ELF_T_BYTE, sz); - if (gelf_xlatetom(e, &dst, &src, ELFDATA2MSB) != &dst || - dst.d_size != sz * NCOPIES || - dst.d_buf != src.d_buf) { - TP_FAIL("\"%s\" MSB TOM() conversion: %s.", fn, - elf_errmsg(-1)); - goto done; - } - VERIFY(ref,sz); - - done: - if (membuf) - free(membuf); - - return (result); -} - - -void -tcBufferSharedBufferByte(void) -{ - tet_result(tcDriver(_tpSharedBufferByte)); -} - -static int -_tpToMShared(const char *fn, Elf *e) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, r, result; - char *membuf, *t; - - membuf = NULL; - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - - result = TET_PASS; - - for (; td->tsd_name; td++) { - - TP_ANNOUNCE("\"%s\" in-place gelf_xlatetom" - "(\"%s\").", fn, td->tsd_name); - - fsz = gelf_fsize(e, td->tsd_type, 1, EV_CURRENT); - msz = td->tsd_msz; - - assert(msz >= fsz); - - if ((membuf = malloc(fsz * NCOPIES)) == NULL) { - TP_UNRESOLVED("\"%s\" \"%s\" malloc() failed.", - fn, td->tsd_name); - goto done; - } - - /* - * In-place conversion of LSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_lsb, fsz) + fsz; - - PREPARE_SHARED(td->tsd_type, fsz); - r = gelf_xlatetom(e, &dst, &src, ELFDATA2LSB) == &dst; - - if (fsz < msz) { - /* conversion should fail with ELF_E_DATA */ - if (r || elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" \"%s\" LSB TOM() succeeded " - "with fsz < msz", fn, td->tsd_name); - goto done; - } - free(membuf); membuf = NULL; - continue; - } - - /* conversion should have succeeded. */ - if (!r) { - TP_FAIL("\"%s\" \"%s\" LSB TOM() failed.", - fn, td->tsd_name); - goto done; - } - - VERIFY(td->tsd_mem,msz); - - /* - * In-place conversion of MSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_msb, fsz) + fsz; - - PREPARE_SHARED(td->tsd_type, fsz); - r = gelf_xlatetom(e, &dst, &src, ELFDATA2MSB) == &dst; - - if (fsz < msz) { - /* conversion should fail with ELF_E_DATA */ - if (r || elf_errno() != ELF_E_DATA) { - TP_FAIL("\"%s\" \"%s\" MSB TOM() succeeded " - "with fsz < msz", fn, td->tsd_name); - goto done; - } - free(membuf); membuf = NULL; - continue; - } - - /* conversion should have succeeded. */ - if (!r) { - TP_FAIL("\"%s\" \"%s\" MSB TOM() failed.", - fn, td->tsd_name); - goto done; - } - - VERIFY(td->tsd_mem,msz); - - } - - done: - if (membuf) - free(membuf); - return (result); -} - -void -tcXlateToMShared(void) -{ - tet_result(tcDriver(_tpToMShared)); -} - -static int -_tpToFShared(const char *fn, Elf *e) -{ - Elf_Data dst, src; - struct testdata *td; - size_t fsz, msz; - int i, result; - char *membuf, *t; - - membuf = NULL; - - td = gelf_getclass(e) == ELFCLASS32 ? tests32 : tests64; - result = TET_PASS; - - for (; td->tsd_name; td++) { - - TP_ANNOUNCE("\"%s\" in-place gelf_xlatetof(\"%s\").", - fn, td->tsd_name); - - fsz = gelf_fsize(e, td->tsd_type, 1, EV_CURRENT); - msz = td->tsd_msz; - - assert(msz >= fsz); - - if ((membuf = malloc(msz * NCOPIES)) == NULL) { - TP_UNRESOLVED("\"%s\" \"%s\" malloc() failed.", - fn, td->tsd_name); - goto done; - } - - /* - * In-place conversion to LSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_mem, msz) + msz; - - PREPARE_SHARED(td->tsd_type, msz); - if (gelf_xlatetof(e, &dst, &src, ELFDATA2LSB) != &dst) { - TP_FAIL("\"%s\" \"%s\" LSB TOF() failed: %s.", - fn, td->tsd_name, elf_errmsg(-1)); - goto done; - } - VERIFY(td->tsd_lsb,fsz); - - /* - * In-place conversion to MSB data. - */ - - t = membuf; - for (i = 0; i < NCOPIES; i++) - t = memcpy(t, td->tsd_mem, msz) + msz; - - PREPARE_SHARED(td->tsd_type, msz); - if (gelf_xlatetof(e, &dst, &src, ELFDATA2MSB) != &dst) { - TP_FAIL("\"%s\" \"%s\" MSB TOF() failed: %s.", - fn, td->tsd_name, elf_errmsg(-1)); - goto done; - } - VERIFY(td->tsd_msb,fsz); - } - - done: - if (membuf) - free(membuf); - return (result); -} - -void -tcXlateToFShared(void) -{ - tet_result(tcDriver(_tpToFShared)); -} diff --git a/contrib/elftoolchain/test/libelftc/Makefile b/contrib/elftoolchain/test/libelftc/Makefile deleted file mode 100644 index 703f7917..00000000 --- a/contrib/elftoolchain/test/libelftc/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -TOP= ../.. -SUBDIR= tset - -.include "${TOP}/mk/elftoolchain.tetbase.mk" diff --git a/contrib/elftoolchain/test/libelftc/tet_scen b/contrib/elftoolchain/test/libelftc/tet_scen deleted file mode 100644 index 3c986f67..00000000 --- a/contrib/elftoolchain/test/libelftc/tet_scen +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -all - ^elftc_string_table - ^elftc_version - -elftc_string_table :include:/tset/elftc_string_table/tet_scen -elftc_version :include:/tset/elftc_version/tet_scen diff --git a/contrib/elftoolchain/test/libelftc/tetbuild.cfg b/contrib/elftoolchain/test/libelftc/tetbuild.cfg deleted file mode 100644 index 78cde23d..00000000 --- a/contrib/elftoolchain/test/libelftc/tetbuild.cfg +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TET_BUILD_TOOL=make -TET_OUTPUT_CAPTURE=True -TET_PASS_TC_NAME=False diff --git a/contrib/elftoolchain/test/libelftc/tetclean.cfg b/contrib/elftoolchain/test/libelftc/tetclean.cfg deleted file mode 100644 index 66b71c1c..00000000 --- a/contrib/elftoolchain/test/libelftc/tetclean.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TET_CLEAN_TOOL=make -TET_CLEAN_FILE=clean - -TET_OUTPUT_CAPTURE=True -TET_PASS_TC_NAME=False diff --git a/contrib/elftoolchain/test/libelftc/tetexec.cfg b/contrib/elftoolchain/test/libelftc/tetexec.cfg deleted file mode 100644 index 778062b0..00000000 --- a/contrib/elftoolchain/test/libelftc/tetexec.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# $Id$ - -TET_OUTPUT_CAPTURE=False diff --git a/contrib/elftoolchain/test/libelftc/tset/Makefile b/contrib/elftoolchain/test/libelftc/tset/Makefile deleted file mode 100644 index af03f692..00000000 --- a/contrib/elftoolchain/test/libelftc/tset/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - -TOP= ../../.. -SUBDIR= -SUBDIR+= elftc_string_table -SUBDIR+= elftc_version - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/test/libelftc/tset/Makefile.tset b/contrib/elftoolchain/test/libelftc/tset/Makefile.tset deleted file mode 100644 index 4ca85fdd..00000000 --- a/contrib/elftoolchain/test/libelftc/tset/Makefile.tset +++ /dev/null @@ -1,11 +0,0 @@ -# $Id$ - -# All the test cases in this test suite need -lelftc. In addition, -# a few need -lelf. -DPADD+= ${LIBELFTC} ${LIBELF} -LDADD+= -lelftc -lelf - -GENERATE_TEST_SCAFFOLDING= yes - -# Test cases do not supply manual pages. -NOMAN= noman diff --git a/contrib/elftoolchain/test/libelftc/tset/elftc_string_table/Makefile b/contrib/elftoolchain/test/libelftc/tset/elftc_string_table/Makefile deleted file mode 100644 index af1c240f..00000000 --- a/contrib/elftoolchain/test/libelftc/tset/elftc_string_table/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= string_table.m4 - -LDADD+= -L${LIBELF} -lelf - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelftc/tset/elftc_string_table/string_table.m4 b/contrib/elftoolchain/test/libelftc/tset/elftc_string_table/string_table.m4 deleted file mode 100644 index bac89b09..00000000 --- a/contrib/elftoolchain/test/libelftc/tset/elftc_string_table/string_table.m4 +++ /dev/null @@ -1,985 +0,0 @@ -/*- - * Copyright (c) 2013 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -/* - * include(`elfts.m4') - */ -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "tet_api.h" - -/* - * A list of test strings. - * - * For the curious, these are titles of stories by Cordwainer Smith. - */ - -static const char *test_strings[] = { - "Mark Elf", - "Scanners Live in Vain", - "The Dead Lady of Clown Town", - "The Lady Who Sailed the \"The Soul\"", - "No, No, Not Rogov!", - NULL -}; - -static const int nteststrings = sizeof(test_strings) / sizeof(test_strings[0]); - -static char test_image[] = { - 0, - 'M', 'a', 'r', 'k', ' ', 'E', 'l', 'f', 0, - 'S', 'c', 'a', 'n', 'n', 'e', 'r', 's', ' ', - 'L', 'i', 'v', 'e', ' ', 'i', 'n', ' ', 'V', 'a', 'i', 'n', 0, - 'T', 'h', 'e', ' ', 'D', 'e', 'a', 'd', ' ', - 'L', 'a', 'd', 'y', ' ', 'o', 'f', ' ', 'C', 'l', 'o', 'w', 'n', ' ', - 'T', 'o', 'w', 'n', 0, - 'T', 'h', 'e', ' ', 'L', 'a', 'd', 'y', ' ', 'W', 'h', 'o', ' ', - 'S', 'a', 'i', 'l', 'e', 'd', ' ', 't', 'h', 'e', ' ', - '"', 'T', 'h', 'e', 'S', 'o', 'u', 'l', '"', 0, - 'N', 'o', ',', ' ', 'N', 'o', ',', ' ', 'N', 'o', 't', ' ', - 'R', 'o', 'g', 'o', 'v', '!', 0 -}; - -#define UNKNOWN_STRING "Don't Panic!" - -/* - * Verify that strings are inserted at the expected offsets, and that - * the returned value is equivalent to the original string. - */ -void -tcInsertReturnValues(void) -{ - int result; - const char **s; - unsigned int expectedindex, hashindex; - Elftc_String_Table *table; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Insertion returns the expected offsets."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - expectedindex = 1; - /* Insert test strings. */ - for (s = test_strings; *s != NULL; s++) { - hashindex = elftc_string_table_insert(table, *s); - if (hashindex != expectedindex) { - TP_FAIL("incorrect hash index: expected %d, actual %d", - expectedindex, hashindex); - goto done; - } - - expectedindex += strlen(*s) + 1; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - tet_result(result); -} - -/* - * Verify that multiple insertions of the same string yield the same - * return values and offsets. - */ - -void -tcInsertDuplicate(void) -{ - const char **s; - int n, result; - Elftc_String_Table *table; - unsigned int hindex, *hashrecord; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Multiple insertions return the same offset value."); - - hashrecord = NULL; - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - if ((hashrecord = malloc(nteststrings*sizeof(*hashrecord))) == NULL) { - TP_UNRESOLVED("memory allocation failed."); - goto done; - } - - /* Insert test strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - hashrecord[n] = elftc_string_table_insert(table, *s); - - /* Re-insert, and verify the returned pointers and offsets. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) { - hindex = elftc_string_table_insert(table, *s); - - if (hindex != hashrecord[n]) { - TP_FAIL("incorrect hash index: expected %d, actual %d", - hashrecord[n], hindex); - goto done; - } - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - free(hashrecord); - - tet_result(result); -} - -/* - * Verify that the lookup() API returns the expected - * values. - */ - -void -tcLookupReturn(void) -{ - int result; - const char **s, *str; - unsigned int expectedindex, hashindex; - Elftc_String_Table *table; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("A lookup after an insertion returns the correct " - "string."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - /* Insert test strings. */ - for (s = test_strings; *s != NULL; s++) - (void) elftc_string_table_insert(table, *s); - - expectedindex = 1; - for (s = test_strings; *s != NULL; s++) { - hashindex = elftc_string_table_lookup(table, *s); - - if (hashindex != expectedindex) { - TP_FAIL("incorrect hash index: expected %d, actual %d", - expectedindex, hashindex); - goto done; - } - - str = elftc_string_table_to_string(table, hashindex); - - if (str == NULL || strcmp(str, *s)) { - TP_FAIL("Lookup of \"%s\" returned \"%s\".", *s, - str); - goto done; - } - - expectedindex += strlen(*s) + 1; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - tet_result(result); -} - -/* - * Verify that multiple lookups return the same pointer - * and string offset. - */ - -void -tcLookupDuplicate(void) -{ - int n, result; - const char **s, *str1, *str2; - unsigned int hindex1, hindex2, *hashrecord; - Elftc_String_Table *table; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Multiple invocations of lookup on a valid string " - "return the same value."); - - hashrecord = NULL; - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - if ((hashrecord = malloc(nteststrings*sizeof(*hashrecord))) == NULL) { - TP_UNRESOLVED("memory allocation failed."); - goto done; - } - - /* Insert test strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - hashrecord[n] = elftc_string_table_insert(table, *s); - - for (n = 0, s = test_strings; *s != NULL; s++, n++) { - hindex1 = elftc_string_table_lookup(table, *s); - hindex2 = elftc_string_table_lookup(table, *s); - - if (hindex1 != hindex2 || hindex1 != hashrecord[n]) { - TP_FAIL("incorrect hash index: expected %d, " - "actual %d & %d", hashrecord[n], hindex1, - hindex2); - goto done; - } - - str1 = elftc_string_table_to_string(table, hindex1); - str2 = elftc_string_table_to_string(table, hindex2); - if (str1 == NULL || str2 == NULL || str1 != str2 || - strcmp(str1, *s)) { - TP_FAIL("Lookup of \"%s\" returned \"%s\" & \"%s\".", - *s, str1, str2); - goto done; - } - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - free(hashrecord); - - tet_result(result); -} - -/* - * Verify that a deleted string cannot be subsequently looked up. - */ - -void -tcDeletionCheck(void) -{ - const char **s; - Elftc_String_Table *table; - int hindex, n, result, status; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Lookup after deletion should fail."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - /* Insert test strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - (void) elftc_string_table_insert(table, *s); - - /* Delete strings, and look them up. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) { - status = elftc_string_table_remove(table, *s); - if (status == 0) { - TP_FAIL("Deletion of \"%s\" failed.", *s); - goto done; - } - - hindex = elftc_string_table_lookup(table, *s); - if (hindex != 0) { - TP_FAIL("Lookup of \"%s\" succeeded unexpectedly."); - goto done; - } - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - - tet_result(result); - -} - -/* - * Verify that a deleted string is re-inserted at the old index. - */ - -void -tcDeletionInsertion(void) -{ - const char **s; - unsigned int *hashrecord, hindex; - Elftc_String_Table *table; - int n, result, status; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Re-insertion of a string after deletion should " - "return the prior offset."); - - hashrecord = NULL; - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - if ((hashrecord = malloc(nteststrings*sizeof(*hashrecord))) == NULL) { - TP_UNRESOLVED("memory allocation failed."); - goto done; - } - - /* Insert test strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - hashrecord[n] = elftc_string_table_insert(table, *s); - - /* Delete strings ... */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) { - status = elftc_string_table_remove(table, *s); - if (status == 0) { - TP_UNRESOLVED("Deletion of \"%s\" failed.", *s); - goto done; - } - } - - /* and re-insert them, and check. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) { - hindex = elftc_string_table_insert(table, *s); - - if (hindex != hashrecord[n]) { - TP_FAIL("Re-insertion at a different offset: " - "old %d, new %p", hashrecord[n], hindex); - goto done; - } - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - if (hashrecord) - free(hashrecord); - - tet_result(result); - -} - -/* - * Verify that the 2nd deletion of the string fails. - */ - -void -tcDoubleDeletion(void) -{ - const char **s; - int n, result, status; - Elftc_String_Table *table; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Double deletion of a string should fail."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - /* Insert test strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - (void) elftc_string_table_insert(table, *s); - - /* Delete strings twice. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) { - status = elftc_string_table_remove(table, *s); - if (status == 0) { - TP_FAIL("First deletion of \"%s\" failed.", *s); - goto done; - } - status = elftc_string_table_remove(table, *s); - if (status != 0) { - TP_FAIL("Second deletion of \"%s\" succeeded.", *s); - goto done; - } - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - - tet_result(result); - -} - -/* - * Verify that deletion of an unknown string fails. - */ - -void -tcUnknownDeletion(void) -{ - const char **s; - int n, result, status; - Elftc_String_Table *table; - - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Deletion of an unknown string should fail."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - /* Insert test strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - (void) elftc_string_table_insert(table, *s); - - status = elftc_string_table_remove(table, UNKNOWN_STRING); - if (status != 0) { - TP_FAIL("Deletion of an unknown string succeeded."); - goto done; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - - tet_result(result); - -} - -/* - * Ensure that string indices remain constant after the underlying - * string pool is resized/moved. - */ - -#define TC_STRING_SIZE 64 -#define TC_INSERT_SIZE 20 - -void -tcIndicesAfterRebase(void) -{ - int j, n, result; - const char *str1, *str2; - char buf[TC_STRING_SIZE]; - Elftc_String_Table *table; - unsigned int offset1, offset2, expectedoffset; - - n = 0; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Indices are consistent after a pool resize."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - /* Insert test strings. */ -#define TC_BUILD_STRING(buf, n) do { \ - (void) snprintf(buf, sizeof(buf), "%-*.*d", \ - TC_INSERT_SIZE - 1, TC_INSERT_SIZE - 1, n); \ - } while (0) - - TC_BUILD_STRING(buf, n); - - offset1 = elftc_string_table_insert(table, buf); - str1 = elftc_string_table_to_string(table, offset1); - - if (offset1 == 0 || str1 == NULL) { - TP_UNRESOLVED("Initialization failed."); - goto done; - } - - n++; - - /* - * Insert unique strings till we detect a move of the initial - * string. - */ - do { - - TC_BUILD_STRING(buf, n); - - if ((offset2 = elftc_string_table_insert(table, buf)) == 0) { - TP_UNRESOLVED("String insertion failed at %d", n); - goto done; - } - - if ((str2 = elftc_string_table_to_string(table, offset1)) == - NULL) { - TP_UNRESOLVED("String looked failed at %d", n); - goto done; - } - - n++; - } while (str2 == str1); - - /* - * Verify the offset for each string inserted so far. - */ - expectedoffset = 1; - for (j = 0; j < n; j++) { - TC_BUILD_STRING(buf, j); - offset1 = elftc_string_table_lookup(table, buf); - if (offset1 != expectedoffset) { - TP_FAIL("Offset mismatch: string #%d, " - "expected %d, actual %d", j, expectedoffset, - offset1); - goto done; - } - expectedoffset += TC_INSERT_SIZE; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - - tet_result(result); -} - -void -tcEmptyImage(void) -{ - int result; - size_t tblsz; - const char *image; - Elftc_String_Table *table; - - TP_ANNOUNCE("Check the image for an empty table."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - tblsz = 0; - image = elftc_string_table_image(table, &tblsz); - if (image == NULL) { - TP_FAIL("Null image returned."); - goto done; - } - - if (*image != 0 || tblsz != 1) { - TP_FAIL("Incorrect image parameters: [0]=%d, sz=%d", - *image, tblsz); - goto done; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - - tet_result(result); -} - -void -tcImageDeleted(void) -{ - const char **s; - int n, result; - size_t tblsz; - const char *image; - Elftc_String_Table *table; - - TP_ANNOUNCE("Check the image for an empty table."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - /* Insert, then delete a set of strings. */ - for (n = 0, s = test_strings; *s != NULL; s++, n++) - if (elftc_string_table_insert(table, *s) == 0) { - TP_UNRESOLVED("String insertion of \"%s\" failed.", - *s); - goto done; - } - - for (n = 0, s = test_strings; *s != NULL; s++, n++) - if (elftc_string_table_remove(table, *s) == 0) { - TP_UNRESOLVED("String deletion of \"%s\" failed.", - *s); - goto done; - } - - /* Check for an empty table. */ - tblsz = 0; - image = elftc_string_table_image(table, &tblsz); - if (image == NULL) { - TP_FAIL("Null image returned."); - goto done; - } - - if (*image != 0 || tblsz != 1) { - TP_FAIL("Incorrect image parameters: [0]=%d, sz=%d", - *image, tblsz); - goto done; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - - tet_result(result); -} - -static int -validate_string_table(int nstrings, const char *image, size_t imagesz, - const char **strings) -{ - int n, result, *seen; - const char *s, *end; - - if (*image != '\0') - return (0); - - if (nstrings == 0) - return (1); - - if ((seen = calloc(nstrings, sizeof(int))) == NULL) - return (0); - - /* - * Each string in the image should be in strings[], - * and vice-versa. - */ - s = image + 1; - end = image + imagesz; - while (s < end) { - /* Look for this string in the strings[] array. */ - for (n = 0; n < nstrings; n++) - if (strcmp(s, strings[n]) == 0) { - seen[n] = 1; - break; - } - if (n == nstrings) /* Not in the strings[] array. */ - goto fail; - - s += strlen(s) + 1; - } - - /* Verify all strings in the array were seen. */ - for (n = 0; n < nstrings; n++) - if (seen[n] == 0) - goto fail; - - free(seen); - - return (1); - -fail: - free(seen); - return (0); -} - -void -tcImageInsertOnly(void) -{ - int result; - const char **s; - const char *image; - Elftc_String_Table *table; - size_t expectedsize, imagesz; - - TP_ANNOUNCE("Insertion returns the expected image."); - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - result = TET_PASS; - - expectedsize = 1; - for (s = test_strings; *s != NULL; s++) { - expectedsize += strlen(*s) + 1; - if(elftc_string_table_insert(table, *s) == 0) { - TP_UNRESOLVED("String insertion failed for \"%s\".", - *s); - goto done; - } - } - - imagesz = 0; - image = elftc_string_table_image(table, &imagesz); - - if (image == NULL || imagesz != expectedsize) { - TP_FAIL("Incorrect image parameters: [0]=%d, sz=%d != %d", - *image, imagesz, expectedsize); - goto done; - } - - if (!validate_string_table(nteststrings - 1, image, imagesz, - test_strings)) { - TP_FAIL("Image mismatch."); - goto done; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - tet_result(result); -} - -void -tcImagePartiallyDeleted(void) -{ - int n, nstr, result; - Elftc_String_Table *table; - size_t expectedsize, imagesz; - const char *image, **s, **savedstr; - - TP_ANNOUNCE("Insertion+deletion returns the expected image."); - - savedstr = NULL; - - if ((table = elftc_string_table_create(0)) == NULL) { - TP_UNRESOLVED("elftc_string_table_create() failed: %s", - strerror(errno)); - goto done; - } - - expectedsize = 1; - for (nstr = 0, s = test_strings; *s != NULL; s++, nstr++) { - expectedsize += strlen(*s) + 1; - if(elftc_string_table_insert(table, *s) == 0) { - TP_UNRESOLVED("String insertion failed for \"%s\".", - *s); - goto done; - } - } - - if ((savedstr = malloc(sizeof(*savedstr) * nstr)) == NULL) { - TP_UNRESOLVED("Memory allocation failed."); - goto done; - } - - for (nstr = n = 0, s = test_strings; *s != NULL; s++, n++) { - if ((n & 1) == 0) { - savedstr[nstr++] = *s; - continue; - } - - expectedsize -= (strlen(*s) + 1); - if (elftc_string_table_remove(table, *s) == 0) { - TP_UNRESOLVED("String removal failed for \"%s\".", - *s); - goto done; - } - } - - imagesz = 0; - image = elftc_string_table_image(table, &imagesz); - - if (image == NULL || imagesz != expectedsize) { - TP_FAIL("Incorrect image parameters: [0]=%d, sz=%d != %d", - *image, imagesz, expectedsize); - goto done; - } - - if (!validate_string_table(nstr, image, imagesz, savedstr)) { - TP_FAIL("Image mismatch."); - goto done; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - free(savedstr); - tet_result(result); -} - -/* - * Verify that initialization from a ELF string table works. - */ - -void -tcFromSection(void) -{ - Elf *e; - Elf_Data *d; - Elf_Scn *scn; - int fd, result; - const char *image; - Elf32_Ehdr *eh; - Elf32_Shdr *shdr; - Elftc_String_Table *table; - size_t imagesz, scnindex; - - table = NULL; - result = TET_UNRESOLVED; - - TP_ANNOUNCE("Loading a table form an ELF section works correctly."); - - fd = -1; - e = NULL; - scn = NULL; - d = NULL; - - /* - * Create the ELF section. - */ - if ((fd = open("/dev/null", O_RDONLY)) < 0) { - TP_UNRESOLVED("File open failed."); - goto done; - } - - if (elf_version(EV_CURRENT) == EV_NONE) { - TP_UNRESOLVED("libelf initialization failed."); - goto done; - } - - if ((e = elf_begin(fd, ELF_C_WRITE, NULL)) == NULL) { - TP_UNRESOLVED("Elf open failed: %s", - elf_errmsg(-1)); - goto done; - } - - if ((eh = elf32_getehdr(e)) == NULL) { - TP_UNRESOLVED("Elf open failed: %s", - elf_errmsg(-1)); - goto done; - } - - eh->e_ident[EI_DATA] = ELFDATA2LSB; - eh->e_machine = EM_386; - eh->e_version = EV_CURRENT; - - if ((scn = elf_newscn(e)) == NULL) { - TP_UNRESOLVED("Elf newscn failed: %s", - elf_errmsg(-1)); - goto done; - } - - scnindex = elf_ndxscn(scn); - - if ((shdr = elf32_getshdr(scn)) == NULL) { - TP_UNRESOLVED("Elf getshdr failed: %s", - elf_errmsg(-1)); - goto done; - } - - shdr->sh_type = SHT_STRTAB; - - if ((d = elf_newdata(scn)) == NULL) { - TP_UNRESOLVED("Elf newdata failed: %s", - elf_errmsg(-1)); - goto done; - } - - d->d_buf = test_image; - d->d_size = sizeof(test_image); - - if (elf_update(e, ELF_C_NULL) < 0) { - TP_UNRESOLVED("elf_update failed: %s", - elf_errmsg(-1)); - goto done; - } - - if ((scn = elf_getscn(e, scnindex)) == NULL) { - TP_UNRESOLVED("Elf getscn failed: %s", - elf_errmsg(-1)); - goto done; - } - - /* Create a string table from the contents. */ - if ((table = elftc_string_table_from_section(scn, 0)) == NULL) { - TP_FAIL("from_section call failed."); - goto done; - } - - /* Retrieve the image. */ - if ((image = elftc_string_table_image(table, &imagesz)) == NULL) { - TP_FAIL("from_section call failed."); - goto done; - } - - /* Check the retrieved image against the original. */ - if (imagesz != sizeof(test_image) || - memcmp(image, test_image, imagesz) != 0) { - TP_FAIL("image compare failed."); - goto done; - } - - result = TET_PASS; - -done: - if (table) - (void) elftc_string_table_destroy(table); - if (e) - elf_end(e); - if (fd != -1) - (void) close(fd); - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libelftc/tset/elftc_version/Makefile b/contrib/elftoolchain/test/libelftc/tset/elftc_version/Makefile deleted file mode 100644 index 739ac18d..00000000 --- a/contrib/elftoolchain/test/libelftc/tset/elftc_version/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_SRCS= elftc_version.m4 - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/libelftc/tset/elftc_version/elftc_version.m4 b/contrib/elftoolchain/test/libelftc/tset/elftc_version/elftc_version.m4 deleted file mode 100644 index 8d0a2a0b..00000000 --- a/contrib/elftoolchain/test/libelftc/tset/elftc_version/elftc_version.m4 +++ /dev/null @@ -1,142 +0,0 @@ -/*- - * Copyright (c) 2012 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include -#include -#include -#include -#include - -#include "tet_api.h" - -include(`elfts.m4') - -void -tcReturnValueIsNonNull(void) -{ - const char *version; - - TP_ANNOUNCE("elftc_version() returns a non-null pointer"); - - version = elftc_version(); - - tet_result(version != NULL ? TET_PASS : TET_FAIL); -} - -#define DELIMS " \t" - -/* - * Check the form of the returned string. - */ -void -tcReturnValueFormat(void) -{ - int result; - const char *version; - struct utsname unamebuf; - char *field, *versioncopy; - - TP_ANNOUNCE("The returned string from elftc_version() has the " - "correct form."); - - result = TET_UNRESOLVED; - versioncopy = NULL; - - if ((version = elftc_version()) == NULL || - (versioncopy = strdup(version)) == NULL) { - TP_UNRESOLVED("version retrieval failed: %s", - strerror(errno)); - goto done; - } - - if (uname(&unamebuf) < 0) { - TP_UNRESOLVED("uname failed: %s", strerror(errno)); - goto done; - } - - /* - * Field 1 should be "elftoolchain". - */ - if ((field = strtok(versioncopy, DELIMS)) == NULL) { - TP_FAIL("Missing field 1: \"%s\"", version); - goto done; - } - if (strcmp(field, "elftoolchain")) { - TP_FAIL("Field 1 \"%s\" != \"elftoolchain\": \"%s\"", - field, version); - goto done; - } - - /* - * Field 2 is the branch identifier. We do not check - * the value of this field. - */ - if ((field = strtok(NULL, DELIMS)) == NULL) { - TP_FAIL("Missing field 2: \"%s\"", version); - goto done; - } - - /* - * Field 3 is the system name. - */ - if ((field = strtok(NULL, DELIMS)) == NULL) { - TP_FAIL("Missing field 3: \"%s\"", version); - goto done; - } - if (strcmp(field, unamebuf.sysname)) { - TP_FAIL("System name mismatch: field \"%s\" != " - "uname \"%s\": %s", field, unamebuf.sysname, - version); - goto done; - } - - /* - * Field 4 is the current version identifier. - */ - if ((field = strtok(NULL, DELIMS)) == NULL) { - TP_FAIL("Missing field 4: \"%s\"", version); - goto done; - } - - /* - * There should be no other fields. - */ - if ((field = strtok(NULL, DELIMS)) != NULL) { - TP_FAIL("Extra fields: \%s\" in \"%s\"", field, version); - goto done; - } - - result = TET_PASS; - -done: - free(versioncopy); - tet_result(result); -} diff --git a/contrib/elftoolchain/test/libtest/Makefile b/contrib/elftoolchain/test/libtest/Makefile deleted file mode 100644 index 3cf6de08..00000000 --- a/contrib/elftoolchain/test/libtest/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# $Id$ -# -# The test(3) API. - -TOP= ../.. - -SUBDIR+= bin -SUBDIR+= lib -SUBDIR+= driver -SUBDIR+= examples - -.if !make(install) && !make(test) -.include "$(TOP)/mk/elftoolchain.subdir.mk" -.else -install test: .SILENT .PHONY -.endif diff --git a/contrib/elftoolchain/test/libtest/README.rst b/contrib/elftoolchain/test/libtest/README.rst deleted file mode 100644 index b93dca7a..00000000 --- a/contrib/elftoolchain/test/libtest/README.rst +++ /dev/null @@ -1,116 +0,0 @@ -===================================== -test(3) - a library for writing tests -===================================== - -The ``test(3)`` API and its related scaffolding generator -(`make-test-scaffolding(1) `_) work together to reduce the -boilerplate needed for tests. - -.. _mts: bin/make-test-scaffolding - -Quick Start -=========== - -The following source code defines a test suite that contains a single -test: - -.. code:: c - - /* File: test.c */ - #include "test.h" - - enum test_result - tf_goodbye_world(testcase_state tcs) - { - return (TEST_PASS); - } - -By convention, test functions are named using a ``tf_`` prefix. - -Given an object file compiled from this source, the -`make-test-scaffolding(1) `_ utility would generate scaffolding -describing a single invocable test named "``goodbye_world``". - -Test Cases ----------- - -Test functions that are related to each other can be grouped into test -cases. The following code snippet defines a test suite with two test -functions contained in a test case named "``helloworld``": - -.. code:: c - - /* File: test.c */ - #include "test.h" - - TEST_CASE_DESCRIPTION(helloworld) = - "A description of the helloworld test case."; - - enum test_result - tf_helloworld_hello(testcase_state tcs) - { - return (TEST_PASS); - } - - enum test_result - tf_helloworld_goodbye(testcase_state tcs) - { - return (TEST_FAIL); - } - -Test cases can define their own set up and tear down functions: - -.. code:: c - - /* File: test.c continued. */ - struct helloworld_test { .. state used by the helloworld tests .. }; - - enum testcase_status - tc_setup_helloworld(testcase_state *tcs) - { - *tcs = ..allocate a struct helloworld_test.. ; - return (TEST_CASE_OK); - } - - enum testcase_status - tc_teardown_helloworld(testcase_state tcs) - { - .. deallocate test case state.. - return (TEST_CASE_OK); - } - -The set up function for a test case will be invoked prior to any of -the functions that are part of the test case. The set up function can -allocate test-specific state, which is then passed to each test function -for its use. - -The tear down function for a test case will be invoked after the test -functions in the test case are invoked. This function is responsible for -deallocating the resources allocated by its corresponding set up function. - -Building Tests --------------- - -Within the `Elftoolchain Project`_'s sources, the ``elftoolchain.test.mk`` -rule set handles the process of invoking the `make-test-scaffolding(1) -`_ utility and building an test executable. - -.. code:: make - - # Example Makefile. - - TOP= ..path to the top of the elftoolchain source tree.. - - TEST_SRCS= test.c - - .include "$(TOP)/mk/elftoolchain.test.mk" - - -.. _Elftoolchain Project: http://elftoolchain.sourceforge.net/ - -Further Reading -=============== - -- The `test(3) `_ manual page. -- The `make-test-scaffolding(1) `_ manual page. -- `Example code `_. diff --git a/contrib/elftoolchain/test/libtest/bin/Makefile b/contrib/elftoolchain/test/libtest/bin/Makefile deleted file mode 100644 index a6a3b8d6..00000000 --- a/contrib/elftoolchain/test/libtest/bin/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -TOP= ../../.. - -SCRIPTS= make-test-scaffolding - -MAN1= make-test-scaffolding.1 - -.include "${TOP}/mk/elftoolchain.prog.mk" diff --git a/contrib/elftoolchain/test/libtest/bin/make-test-scaffolding b/contrib/elftoolchain/test/libtest/bin/make-test-scaffolding deleted file mode 100755 index 6ec78e82..00000000 --- a/contrib/elftoolchain/test/libtest/bin/make-test-scaffolding +++ /dev/null @@ -1,222 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2018, Joseph Koshy. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer -# in this position and unchanged. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# $Id$ - -# Given a list of objects that use the test(3) API, this script will -# generate test case and test function descriptors based on the symbols -# contained in those objects. - -usage() -{ - echo Usage: `basename $0`: "[options] objects..." - echo - echo "Generate test(3) scaffolding from objects." - echo "Options include:" - echo - echo "\t-o out\t\tcreate output file \"out\" [default \"tc.c\"]." - echo -} - -output_file="tc.c" -prefix_tc_descr='tc_description_' -prefix_tc_setup='tc_setup_' -prefix_tc_tags='tc_tags_' -prefix_tc_teardown='tc_teardown_' -prefix_tf='tf_' -prefix_tf_descr='tf_description_' -prefix_tf_tags='tf_tags_' - - -args=`getopt o: $*` -if [ ${?} -ne 0 ]; then - usage - exit 2 -fi - -set -- ${args} - -for i -do - case "${i}" in - -o ) - output_file="${2}" - shift; shift;; - -- ) - shift; break;; - esac -done - -if [ ${#} -eq 0 ]; then - usage - exit 2 -fi - -exec > ${output_file} -cat < -#include "test.h" -#include "test_case.h" -EOF - -if ! nm ${*} | sort -k 3 | \ - awk -v prefix_tc_descr=${prefix_tc_descr} \ - -v prefix_tc_setup=${prefix_tc_setup} \ - -v prefix_tc_tags=${prefix_tc_tags} \ - -v prefix_tc_teardown=${prefix_tc_teardown} \ - -v prefix_tf=${prefix_tf} \ - -v prefix_tf_descr=${prefix_tf_descr} \ - -v prefix_tf_tags=${prefix_tf_tags} ' - function suffix(value, prefix) { - return substr(value, length(prefix) + 1); - } - function matched_test_case(tf_name, tc_matched) { - tc_matched = "" - for (tc_name in test_cases) { - if (tf_name ~ tc_name "_" && - length(tc_name) > length(tc_matched)) { - tc_matched = tc_name - } - } - if (tc_matched != "") - return tc_matched - return DEFAULT - } - function print_test_case_record(tc_name) { - printf("\t{\n") - printf("\t\t.tc_name = \"%s\",\n", tc_name) - printf("\t\t.tc_description = %s,\n", - test_case_descriptions[tc_name]) - printf("\t\t.tc_tags = %s,\n", test_case_tags[tc_name]) - tf_name = "test_functions_" tc_name - printf("\t\t.tc_tests = %s,\n", tf_name) - printf("\t\t.tc_count = sizeof (%s) / sizeof (%s[0]),\n", - tf_name, tf_name) - printf("\t},\n") - } - function delete_test_functions(tc_name) { - for (tf_name in test_functions) { - if (matched_test_case(tf_name) == tc_name) - delete test_functions[tf_name] - } - } - function print_test_functions_record(tc_name) { - printf("struct test_function_descriptor test_functions_%s[]", - tc_name) - printf(" = {\n") - for (tf_name in test_functions) { - if (tc_name != matched_test_case(tf_name)) - continue - printf("\t{\n") - printf("\t\t.tf_name = \"%s\",\n", tf_name) - printf("\t\t.tf_description = %s,\n", - test_function_descriptions[tf_name]) - printf("\t\t.tf_func = %s,\n", prefix_tf tf_name) - printf("\t\t.tf_tags = %s\n", - test_function_tags[tf_name]) - printf("\t},\n") - } - printf("};\n") - } - function is_non_empty(array, i) { - for (i in array) return 1 - return 0 - } - BEGIN { - DEFAULT = "default" - test_case_descriptions[DEFAULT] = "NULL" - test_case_tags[DEFAULT] = "NULL" - } - ($2 == "R" || $2 == "D") && $3 ~ "^" prefix_tc_descr { - printf("extern test_case_description %s;\n", $3) - tc_name = suffix($3, prefix_tc_descr) - test_cases[tc_name] = 1 - test_case_descriptions[tc_name] = $3 - } - $2 == "T" && $3 ~ "^" prefix_tc_setup { - tc_name = suffix($3, prefix_tc_setup) - test_cases[tc_name] = 1 - test_case_setup[tc_name] = $3 - } - ($2 == "R" || $2 == "D") && $3 ~ "^" prefix_tc_tags { - printf("extern test_case_tags %s;\n", $3) - tc_name = suffix($3, prefix_tc_tags) - test_cases[tc_name] = 1 - test_case_tags[tc_name] = $3 - } - $2 == "T" && $3 ~ "^" prefix_tc_teardown { - tc_name = suffix($3, prefix_tc_teardown) - test_cases[tc_name] = 1 - test_case_teardown[tc_name] = $3 - } - ($2 == "R" || $2 == "D") && $3 ~ "^" prefix_tf_descr { - printf("extern test_description %s;\n", $3) - tf_name = suffix($3, prefix_tf_descr) - test_function_descriptions[tf_name] = $3 - } - ($2 == "R" || $2 == "D") && $3 ~ "^" prefix_tf_tags { - printf("extern test_tags %s;\n", $3) - tf_name = suffix($3, prefix_tf_tags) - test_function_tags[tf_name] = $3 - } - $2 == "T" && $3 ~ "^" prefix_tf { - printf("test_function %s;\n", $3) - tf_name = suffix($3, prefix_tf) - test_functions[tf_name] = 1 - } - END { - for (tf_name in test_functions) { - if (test_function_descriptions[tf_name] == "") - test_function_descriptions[tf_name] = "NULL" - if (test_function_tags[tf_name] == "") - test_function_tags[tf_name] = "NULL" - } - for (tc_name in test_cases) { - if (test_case_descriptions[tc_name] == "") - test_case_descriptions[tc_name] = "NULL" - if (test_case_tags[tc_name] == "") - test_case_tags[tc_name] = "NULL" - } - for (tc_name in test_cases) { - print_test_functions_record(tc_name) - delete_test_functions(tc_name) - } - needs_default = is_non_empty(test_functions) - if (needs_default) - print_test_functions_record(DEFAULT) - printf("struct test_case_descriptor test_cases[] = {\n") - for (tc_name in test_cases) - print_test_case_record(tc_name) - if (needs_default) - print_test_case_record(DEFAULT) - printf("};\n") - printf("const int test_case_count = sizeof(test_cases) / ") - printf("sizeof(test_cases[0]);\n") - }'; then - # Cleanup in case of an error. - rm ${output_file} - exit 1 -fi diff --git a/contrib/elftoolchain/test/libtest/bin/make-test-scaffolding.1 b/contrib/elftoolchain/test/libtest/bin/make-test-scaffolding.1 deleted file mode 100644 index 2d120e1b..00000000 --- a/contrib/elftoolchain/test/libtest/bin/make-test-scaffolding.1 +++ /dev/null @@ -1,111 +0,0 @@ -.\" Copyright (c) 2018, Joseph Koshy. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd December 25, 2018 -.Dt TEST 1 -.Os -.Sh NAME -.Nm make-test-scaffolding -.Nd generate scaffolding for tests -.Sh SYNOPSIS -.Nm -.Op Fl o Ar output_file -.Ar test_object ... -.Sh DESCRIPTION -The -.Nm -utility takes as input object files containing symbols following -its naming convention and generates the scaffolding needed to assemble -a test executable. -.Pp -The -.Nm -utility expects symbols to be named using the following conventions: -.Bl -bullet -.It -Test case descriptions are named using the -.Li tc_description_ -prefix, followed by the name of the test case. -For example, the symbol -.Sy tc_description_helloworld -would name the description of a test case named -.Dq helloworld . -.It -Test set up functions are named using a -.Li tc_setup_ -prefix, followed by the name of a test case. -For example, the function -.Fn tc_setup_helloworld -would name the set up function for a test case named -.Dq helloworld . -.It -Test tear down functions are named using a -.Li tc_teardown_ -prefix, followed by the name of a test case. -For example, the function -.Fn tc_teardown_helloworld -would name the tear down function for a test case named -.Dq helloworld . -.It -Tags for test cases are named using symbols with a -.Li tc_tags_ -prefix, followed by the name of their test case. -.It -Test functions are named using a -.Li tf_ -prefix, followed by the name for their containing test case and a -disambiguating suffix. -For example, the two test functions -.Fn tf_helloworld_sayhello -and -.Fn tf_helloworld_saygoodbye -would be associated with the test case named -.Dq helloworld . -.Pp -A test function that is not associated with a test case will be -added to a special test case named -.Dq default . -.It -Tags for test functions are named using symbols with a -.Li tf_tags_ -prefix, followed by the name of their test case. -.El -.Pp -The -.Nm -utility will generate a C source file containing the appropriate -.Vt "struct test_descriptor" -and -.Vt "struct test_case_descriptor" -structures for use by a test driver. -.Sh SEE ALSO -.Xr test 3 , -.Xr test_runner 3 -.Sh AUTHORS -The -.Nm -utility was written by -.An Joseph Koshy Aq Mt jkoshy@users.sourceforge.net . diff --git a/contrib/elftoolchain/test/libtest/driver/Makefile b/contrib/elftoolchain/test/libtest/driver/Makefile deleted file mode 100644 index 87788d3f..00000000 --- a/contrib/elftoolchain/test/libtest/driver/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# $Id$ -# -# A command-line driver for libtest based tests. - -TOP= ../../.. - -CFLAGS+= -I${TOP}/test/libtest/lib - -LIB= driver -SRCS= driver.c \ - driver_main.c - -WARNS?= 6 - -MAN= test_driver.1 - -.include "$(TOP)/mk/elftoolchain.lib.mk" diff --git a/contrib/elftoolchain/test/libtest/driver/driver.c b/contrib/elftoolchain/test/libtest/driver/driver.c deleted file mode 100644 index aa85c7cb..00000000 --- a/contrib/elftoolchain/test/libtest/driver/driver.c +++ /dev/null @@ -1,216 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * The implementation of the test driver. - */ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "driver.h" - -#if defined(ELFTC_VCSID) -ELFTC_VCSID("$Id$"); -#endif - -#define SYSTEM_TMPDIR_ENV_VAR "TMPDIR" - -bool -test_driver_add_search_path(struct test_run *tr, const char *directory_name) -{ - char *canonical_path; - struct test_search_path_entry *entry; - - if (!test_driver_is_directory(directory_name)) - return (false); - - if ((canonical_path = realpath(directory_name, NULL)) == NULL) - err(1, "Cannot determine the canonical path for \"%s\"", - directory_name); - - /* Look for, and ignore duplicates. */ - STAILQ_FOREACH(entry, &tr->tr_search_path, tsp_next) { - if (strcmp(canonical_path, entry->tsp_directory) == 0) - return (true); - } - - entry = calloc(1, sizeof(*entry)); - entry->tsp_directory = canonical_path; - - STAILQ_INSERT_TAIL(&tr->tr_search_path, entry, tsp_next); - - return (true); -} - -/* - * Return an initialized test run descriptor. - * - * The caller should use test_driver_free_run() to release the returned - * descriptor. - */ -struct test_run * -test_driver_allocate_run(void) -{ - struct test_run *tr; - - tr = calloc(sizeof(struct test_run), 1); - tr->tr_action = TEST_RUN_EXECUTE; - tr->tr_style = TR_STYLE_LIBTEST; - STAILQ_INIT(&tr->tr_test_cases); - STAILQ_INIT(&tr->tr_search_path); - - return (tr); -} - -/* - * Destroy an allocated test run descriptor. - * - * The passed in pointer should not be used after this function returns. - */ -void -test_driver_free_run(struct test_run *tr) -{ - struct test_search_path_entry *path_entry; - struct test_case_selector *test_case_entry; - struct test_function_selector *function_entry; - - free(tr->tr_runtime_base_directory); - free(tr->tr_name); - if (tr->tr_artefact_archive) - free(tr->tr_artefact_archive); - - /* Free the search path list. */ - while (!STAILQ_EMPTY(&tr->tr_search_path)) { - path_entry = STAILQ_FIRST(&tr->tr_search_path); - STAILQ_REMOVE_HEAD(&tr->tr_search_path, tsp_next); - free(path_entry); - } - - /* Free the test selector list. */ - while (!STAILQ_EMPTY(&tr->tr_test_cases)) { - test_case_entry = STAILQ_FIRST(&tr->tr_test_cases); - STAILQ_REMOVE_HEAD(&tr->tr_test_cases, tcs_next); - - /* Free the linked test functions. */ - while (!STAILQ_EMPTY(&test_case_entry->tcs_functions)) { - function_entry = - STAILQ_FIRST(&test_case_entry->tcs_functions); - STAILQ_REMOVE_HEAD(&test_case_entry->tcs_functions, - tfs_next); - - free(function_entry); - } - - free(test_case_entry); - } - - free(tr); -} - -/* - * Populate unset fields of a struct test_run with defaults. - */ -bool -test_driver_finish_run_initialization(struct test_run *tr, const char *argv0) -{ - struct timeval tv; - const char *basedir; - const char *search_path; - const char *last_component; - char *argv0_copy, *path_copy, *path_element; - char test_name[NAME_MAX]; - - if (tr->tr_name == NULL) { - /* Per POSIX, basename(3) can modify its argument. */ - argv0_copy = strdup(argv0); - last_component = basename(argv0_copy); - - if (gettimeofday(&tv, NULL)) - return (false); - - (void) snprintf(test_name, sizeof(test_name), "%s+%ld%ld", - last_component, (long) tv.tv_sec, (long) tv.tv_usec); - - tr->tr_name = strdup(test_name); - - free(argv0_copy); - } - - /* - * Select a base directory, if one was not specified. - */ - if (tr->tr_runtime_base_directory == NULL) { - basedir = getenv(TEST_TMPDIR_ENV_VAR); - if (basedir == NULL) - basedir = getenv(SYSTEM_TMPDIR_ENV_VAR); - if (basedir == NULL) - basedir = "/tmp"; - tr->tr_runtime_base_directory = realpath(basedir, NULL); - if (tr->tr_runtime_base_directory == NULL) - err(1, "realpath(%s) failed", basedir); - } - - /* - * Add the search paths specified by the environment variable - * 'TEST_PATH' to the end of the search list. - */ - if ((search_path = getenv(TEST_SEARCH_PATH_ENV_VAR)) != NULL && - *search_path != '\0') { - path_copy = strdup(search_path); - path_element = strtok(path_copy, ":"); - do { - if (!test_driver_add_search_path(tr, path_element)) - warnx("in environment variable \"%s\": path " - "\"%s\" does not name a directory.", - TEST_SEARCH_PATH_ENV_VAR, path_element); - } while ((path_element = strtok(NULL, ":")) != NULL); - } - - return (true); -} - -/* - * Helper: return true if the passed in path names a directory, or false - * otherwise. - */ -bool -test_driver_is_directory(const char *path) -{ - struct stat sb; - if (stat(path, &sb) != 0) - return false; - return S_ISDIR(sb.st_mode); -} diff --git a/contrib/elftoolchain/test/libtest/driver/driver.h b/contrib/elftoolchain/test/libtest/driver/driver.h deleted file mode 100644 index 5ae5cfd8..00000000 --- a/contrib/elftoolchain/test/libtest/driver/driver.h +++ /dev/null @@ -1,206 +0,0 @@ -/*- - * Copyright (c) 2018,2019 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _LIBTEST_DRIVER_H_ -#define _LIBTEST_DRIVER_H_ - -#include - -#include -#include - -#include "_elftc.h" - -#include "test.h" - -#define TEST_SEARCH_PATH_ENV_VAR "TEST_PATH" -#define TEST_TMPDIR_ENV_VAR "TEST_TMPDIR" - -/* - * Run time data strucrures. - */ - -/* The completion status for a test run */ -enum test_run_status { - /* - * All test cases were successfully invoked, and all their contained - * test purposes passed. - */ - TR_STATUS_PASS = 0, - - /* - * All test cases were successfully invoked but at least one test - * function reported a failure. - */ - TR_STATUS_FAIL = 1, - - /* - * At least one test case reported an error during its set up or tear - * down phase. - */ - TR_STATUS_ERROR = 2 -}; - -/* - * The 'style' of the run determines the manner in which the test - * executable reports test status. - */ -enum test_run_style { - /* Libtest semantics. */ - TR_STYLE_LIBTEST, - - /* - * Be compatible with the Test Anything Protocol - * (http://testanything.org/). - */ - TR_STYLE_TAP, - - /* Be compatible with NetBSD ATF(9). */ - TR_STYLE_ATF -}; - -/* - * Structures used for selecting tests. - */ -struct test_function_selector { - const struct test_function_descriptor *tfs_descriptor; - - STAILQ_ENTRY(test_function_selector) tfs_next; - int tfs_is_selected; -}; - -STAILQ_HEAD(test_function_selector_list, test_function_selector); - -struct test_case_selector { - const struct test_case_descriptor *tcs_descriptor; - STAILQ_ENTRY(test_case_selector) tcs_next; - struct test_function_selector_list tcs_functions; - int tcs_selected_count; -}; - -/* - * The action being requested of the test driver. - */ -enum test_run_action { - TEST_RUN_EXECUTE, /* Execute the selected tests. */ - TEST_RUN_LIST, /* Only list tests. */ -}; - -STAILQ_HEAD(test_case_selector_list, test_case_selector); - -/* - * Runtime directories to look up data files. - */ -struct test_search_path_entry { - char *tsp_directory; - STAILQ_ENTRY(test_search_path_entry) tsp_next; -}; - -STAILQ_HEAD(test_search_path_list, test_search_path_entry); - -/* - * Used to track flags that were explicity set on the command line. - */ -enum test_run_flags { - TRF_BASE_DIRECTORY = 1U << 0, - TRF_EXECUTION_TIME = 1U << 1, - TRF_ARTEFACT_ARCHIVE = 1U << 2, - TRF_NAME = 1U << 3, - TRF_SEARCH_PATH = 1U << 4, - TRF_EXECUTION_STYLE = 1U << 5, -}; - -/* - * Parameters for the run. - */ -struct test_run { - /* - * Flags tracking the options which were explicitly set. - * - * This field is a bitmask formed of 'enum test_run_flags' values. - */ - unsigned int tr_commandline_flags; - - /* What the test run should do. */ - enum test_run_action tr_action; - - /* The desired behavior of the test harness. */ - enum test_run_style tr_style; - - /* The desired verbosity level. */ - int tr_verbosity; - - /* An optional name assigned by the user for this test run. */ - char *tr_name; - - /* - * The absolute path to the directory under which the test is - * to be run. - * - * Each test case will be invoked in some subdirectory of this - * directory. - */ - char *tr_runtime_base_directory; - - /* - * The test timeout in seconds. - * - * A value of zero indicates that the test driver should wait - * indefinitely for tests. - */ - long tr_max_seconds_per_test; - - /* - * If not NULL, An absolute pathname to an archive that will hold - * the artefacts created by a test run. - */ - char *tr_artefact_archive; - - /* - * Directories to use when resolving non-absolute data file - * names. - */ - struct test_search_path_list tr_search_path; - - /* All tests selected for this run. */ - struct test_case_selector_list tr_test_cases; -}; - -#ifdef __cplusplus -extern "C" { -#endif -struct test_run *test_driver_allocate_run(void); -bool test_driver_add_search_path(struct test_run *, - const char *search_path); -void test_driver_free_run(struct test_run *); -bool test_driver_is_directory(const char *); -bool test_driver_finish_run_initialization(struct test_run *, - const char *argv0); -#ifdef __cplusplus -} -#endif - -#endif /* _LIBTEST_DRIVER_H_ */ diff --git a/contrib/elftoolchain/test/libtest/driver/driver_main.c b/contrib/elftoolchain/test/libtest/driver/driver_main.c deleted file mode 100644 index c43ccf52..00000000 --- a/contrib/elftoolchain/test/libtest/driver/driver_main.c +++ /dev/null @@ -1,726 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * This file defines a "main()" that invokes (or lists) the tests that were - * linked into the current executable. - */ - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "_elftc.h" - -#include "test.h" -#include "test_case.h" - -#include "driver.h" - -#if defined(ELFTC_VCSID) -ELFTC_VCSID("$Id$"); -#endif - -enum selection_scope { - SCOPE_TEST_CASE = 0, /* c:STRING */ - SCOPE_TEST_FUNCTION, /* f:STRING */ - SCOPE_TAG, /* t:STRING */ -}; - -/* Selection list entry. */ -struct selection_option { - STAILQ_ENTRY(selection_option) so_next; - - /* The text to use for matching. */ - const char *so_pattern; - - /* - * Whether matched test and test cases should be selected - * (if false) or deselected (if true). - */ - bool so_select_tests; - - /* The kind of information to match. */ - enum selection_scope so_selection_scope; -}; - -/* All selection options specified. */ -STAILQ_HEAD(selection_option_list, selection_option); - -static struct selection_option * -parse_selection_option(const char *option) -{ - int scope_char; - bool select_tests; - enum selection_scope scope; - struct selection_option *so; - - scope_char = '\0'; - select_tests = true; - scope = SCOPE_TEST_CASE; - - /* Deselection patterns start with a '-'. */ - if (*option == '-') { - select_tests = false; - option++; - } - - /* - * If a scope was not specified, the selection scope defaults - * to SCOPE_TEST_CASE. - */ - if (strchr(option, ':') == NULL) - scope_char = 'c'; - else { - scope_char = *option++; - if (*option != ':') - return (NULL); - option++; /* Skip over the ':'. */ - } - - if (*option == '\0') - return (NULL); - - switch (scope_char) { - case 'c': - scope = SCOPE_TEST_CASE; - break; - case 'f': - scope = SCOPE_TEST_FUNCTION; - break; - case 't': - scope = SCOPE_TAG; - break; - default: - return (NULL); - } - - so = calloc(1, sizeof(*so)); - so->so_pattern = option; - so->so_selection_scope = scope; - so->so_select_tests = select_tests; - - return (so); -} - -/* Test execution styles. */ -struct style_entry { - enum test_run_style se_style; - const char *se_name; -}; - -static const struct style_entry known_styles[] = { - { TR_STYLE_LIBTEST, "libtest" }, - { TR_STYLE_TAP, "tap" }, - { TR_STYLE_ATF, "atf" } -}; - -/* - * Parse a test run style. - * - * This function returns true if the run style was recognized, or - * false otherwise. - */ -static bool -parse_run_style(const char *option, enum test_run_style *run_style) -{ - size_t n; - - for (n = 0; n < sizeof(known_styles) / sizeof(known_styles[0]); n++) { - if (strcasecmp(option, known_styles[n].se_name) == 0) { - *run_style = known_styles[n].se_style; - return (true); - } - } - - return (false); -} - -/* - * Return the canonical spelling of a test execution style. - */ -static const char * -to_execution_style_name(enum test_run_style run_style) -{ - size_t n; - - for (n = 0; n < sizeof(known_styles) / sizeof(known_styles[0]); n++) { - if (known_styles[n].se_style == run_style) - return (known_styles[n].se_name); - } - - return (NULL); -} - -/* - * Parse a string value containing a positive integral number. - */ -static bool -parse_execution_time(const char *option, long *execution_time) { - char *end; - long value; - - if (option == NULL || *option == '\0') - return (false); - - value = strtol(option, &end, 10); - - /* Check for parse errors. */ - if (*end != '\0') - return (false); - - /* Reject negative numbers. */ - if (value < 0) - return (false); - - /* Check for overflows during parsing. */ - if (value == LONG_MAX && errno == ERANGE) - return (false); - - *execution_time = value; - - return (true); -} - -/* - * Match the names of test cases. - * - * In the event of a match, then the selection state specifed in - * 'option' is applied to all the test functions in the test case. - */ -static void -match_test_cases(struct selection_option *option, - struct test_case_selector *tcs) -{ - const struct test_case_descriptor *tcd; - struct test_function_selector *tfs; - - tcd = tcs->tcs_descriptor; - - if (fnmatch(option->so_pattern, tcd->tc_name, 0)) - return; - - STAILQ_FOREACH(tfs, &tcs->tcs_functions, tfs_next) - tfs->tfs_is_selected = option->so_select_tests; -} - -/* - * Match the names of test functions. - */ -static void -match_test_functions(struct selection_option *option, - struct test_case_selector *tcs) -{ - struct test_function_selector *tfs; - const struct test_function_descriptor *tfd; - - STAILQ_FOREACH(tfs, &tcs->tcs_functions, tfs_next) { - tfd = tfs->tfs_descriptor; - - if (fnmatch(option->so_pattern, tfd->tf_name, 0)) - continue; - - tfs->tfs_is_selected = option->so_select_tests; - } -} - -/* - * Helper: returns true if the specified text matches any of the - * entries in the array 'tags'. - */ -static bool -match_tags_helper(const char *pattern, const char *tags[]) -{ - const char **tag; - - if (!tags) - return (false); - - for (tag = tags; *tag && **tag != '\0'; tag++) { - if (!fnmatch(pattern, *tag, 0)) - return (true); - } - - return (false); -} - -/* - * Match tags. - * - * Matches against test case tags apply to all the test - * functions in the test case. - * - * Matches against test function tags apply to the matched - * test function only. - */ -static void -match_tags(struct selection_option *option, - struct test_case_selector *tcs) -{ - const struct test_case_descriptor *tcd; - const struct test_function_descriptor *tfd; - struct test_function_selector *tfs; - - tcd = tcs->tcs_descriptor; - - /* - * If the tag in the option matches a tag associated with - * a test case, then we set all of the test case's functions - * to the specified selection state. - */ - if (match_tags_helper(option->so_pattern, tcd->tc_tags)) { - STAILQ_FOREACH(tfs, &tcs->tcs_functions, tfs_next) - tfs->tfs_is_selected = option->so_select_tests; - return; - } - - /* - * Otherwise, check the tag against the tags for each function - * in the test case and set the selection state of each matched - * function. - */ - STAILQ_FOREACH(tfs, &tcs->tcs_functions, tfs_next) { - tfd = tfs->tfs_descriptor; - if (match_tags_helper(option->so_pattern, tfd->tf_tags)) - tfs->tfs_is_selected = option->so_select_tests; - } -} - -/* - * Add the selected tests to the test run. - * - * The memory used by the options list is returned to the system when this - * function completes. - */ -static void -select_tests(struct test_run *tr, - struct selection_option_list *selections) -{ - int i, j; - struct selection_option *selection; - const struct test_case_descriptor *tcd; - struct test_case_selector *tcs; - struct test_function_selector *tfs; - bool default_selection_state; - int selected_count; - - default_selection_state = STAILQ_EMPTY(selections); - - /* - * Set up runtime descriptors. - */ - for (i = 0; i < test_case_count; i++) { - if ((tcs = calloc(1, sizeof(*tcs))) == NULL) - err(EX_OSERR, "cannot allocate a test-case selector"); - STAILQ_INSERT_TAIL(&tr->tr_test_cases, tcs, tcs_next); - STAILQ_INIT(&tcs->tcs_functions); - - tcd = &test_cases[i]; - - tcs->tcs_descriptor = tcd; - - for (j = 0; j < tcd->tc_count; j++) { - if ((tfs = calloc(1, sizeof(*tfs))) == NULL) - err(EX_OSERR, "cannot allocate a test " - "function selector"); - STAILQ_INSERT_TAIL(&tcs->tcs_functions, tfs, tfs_next); - - tfs->tfs_descriptor = tcd->tc_tests + j; - tfs->tfs_is_selected = default_selection_state; - } - } - - /* - * Set or reset the selection state based on the options. - */ - STAILQ_FOREACH(selection, selections, so_next) { - STAILQ_FOREACH(tcs, &tr->tr_test_cases, tcs_next) { - switch (selection->so_selection_scope) { - case SCOPE_TEST_CASE: - match_test_cases(selection, tcs); - break; - case SCOPE_TEST_FUNCTION: - match_test_functions(selection, tcs); - break; - case SCOPE_TAG: - match_tags(selection, tcs); - break; - } - } - } - - /* - * Determine the count of tests selected, for each test case. - */ - STAILQ_FOREACH(tcs, &tr->tr_test_cases, tcs_next) { - selected_count = 0; - STAILQ_FOREACH(tfs, &tcs->tcs_functions, tfs_next) - selected_count += tfs->tfs_is_selected; - tcs->tcs_selected_count = selected_count; - } - - /* Free up the selection list. */ - while (!STAILQ_EMPTY(selections)) { - selection = STAILQ_FIRST(selections); - STAILQ_REMOVE_HEAD(selections, so_next); - free(selection); - } -} - -/* - * Translate a file name to absolute form. - * - * The caller needs to free the returned pointer. - */ -static char * -to_absolute_path(const char *filename) -{ - size_t space_needed; - char *absolute_path; - char current_directory[PATH_MAX]; - - if (filename == NULL || *filename == '\0') - return (NULL); - if (*filename == '/') - return strdup(filename); - - if (getcwd(current_directory, sizeof(current_directory)) == NULL) - err(1, "getcwd failed"); - - /* Reserve space for the slash separator and the trailing NUL. */ - space_needed = strlen(current_directory) + strlen(filename) + 2; - if ((absolute_path = malloc(space_needed)) == NULL) - err(1, "malloc failed"); - if (snprintf(absolute_path, space_needed, "%s/%s", current_directory, - filename) != (int) (space_needed - 1)) - err(1, "snprintf failed"); - return (absolute_path); -} - - -/* - * Display run parameters. - */ - -#define FIELD_NAME_WIDTH 24 -#define INFOLINE(NAME, FLAG, FORMAT, ...) do { \ - printf("I %c %-*s " FORMAT, \ - (FLAG) ? '!' : '.', \ - FIELD_NAME_WIDTH, NAME, __VA_ARGS__); \ - } while (0) - -static void -show_run_header(const struct test_run *tr) -{ - time_t start_time; - struct test_search_path_entry *path_entry; - - if (tr->tr_verbosity == 0) - return; - - INFOLINE("test-run-name", tr->tr_commandline_flags & TRF_NAME, - "%s\n", tr->tr_name); - - INFOLINE("test-execution-style", - tr->tr_commandline_flags & TRF_EXECUTION_STYLE, - "%s\n", to_execution_style_name(tr->tr_style)); - - if (!STAILQ_EMPTY(&tr->tr_search_path)) { - INFOLINE("test-search-path", - tr->tr_commandline_flags & TRF_SEARCH_PATH, - "%c", '['); - STAILQ_FOREACH(path_entry, &tr->tr_search_path, tsp_next) { - printf(" %s", path_entry->tsp_directory); - } - printf(" ]\n"); - } - - INFOLINE("test-run-base-directory", - tr->tr_commandline_flags & TRF_BASE_DIRECTORY, - "%s\n", tr->tr_runtime_base_directory); - - if (tr->tr_artefact_archive) { - INFOLINE("test-artefact-archive", - tr->tr_commandline_flags & TRF_ARTEFACT_ARCHIVE, - "%s\n", tr->tr_artefact_archive); - } - - printf("I %c %-*s ", - tr->tr_commandline_flags & TRF_EXECUTION_TIME ? '=' : '.', - FIELD_NAME_WIDTH, "test-execution-time"); - if (tr->tr_max_seconds_per_test == 0) - printf("unlimited\n"); - else - printf("%lu\n", tr->tr_max_seconds_per_test); - - printf("I %% %-*s %d\n", FIELD_NAME_WIDTH, "test-case-count", - test_case_count); - - if (tr->tr_action == TEST_RUN_EXECUTE) { - start_time = time(NULL); - printf("I %% %-*s %s", FIELD_NAME_WIDTH, - "test-run-start-time", ctime(&start_time)); - } -} - -static void -show_run_trailer(const struct test_run *tr) -{ - time_t end_time; - - if (tr->tr_verbosity == 0) - return; - - if (tr->tr_action == TEST_RUN_EXECUTE) { - end_time = time(NULL); - printf("I %% %-*s %s", FIELD_NAME_WIDTH, "test-run-end-time", - asctime(localtime(&end_time))); - } -} - -#undef INFOLINE -#undef FIELD_HEADER_WIDTH - -/* - * Helper: returns a character indicating the selection status for - * a test case. This character is as follows: - * - * - "*" all test functions in the test case were selected. - * - "+" some test functions in the test case were selected. - * - "-" no test functions from the test case were selected. - */ -static int -get_test_case_status(const struct test_case_selector *tcs) -{ - if (tcs->tcs_selected_count == 0) - return '-'; - if (tcs->tcs_selected_count == tcs->tcs_descriptor->tc_count) - return '*'; - return '?'; -} - -/* - * Helper: print out a comma-separated list of tags. - */ -static void -show_tags(int indent, const char *tags[]) -{ - const char **tag; - - printf("%*c: ", indent, ' '); - for (tag = tags; *tag && **tag != '\0';) { - printf("%s", *tag++); - if (*tag && **tag != '\0') - printf(","); - } - printf("\n"); -} - -/* - * Display a test case descriptor. - */ -static void -show_test_case(struct test_run *tr, const struct test_case_selector *tcs) -{ - const struct test_case_descriptor *tcd; - int prefix_char; - - prefix_char = get_test_case_status(tcs); - tcd = tcs->tcs_descriptor; - - printf("C %c %s\n", prefix_char, tcd->tc_name); - - if (tr->tr_verbosity > 0 && tcd->tc_tags != NULL) - show_tags(2, tcd->tc_tags); - - if (tr->tr_verbosity > 1 && tcd->tc_description) - printf(" & %s\n", tcd->tc_description); -} - -static void -show_test_function(struct test_run *tr, - const struct test_function_selector *tfs) -{ - const struct test_function_descriptor *tfd; - int selection_char; - - selection_char = tfs->tfs_is_selected ? '*' : '-'; - tfd = tfs->tfs_descriptor; - - printf(" F %c %s\n", selection_char, tfd->tf_name); - - if (tr->tr_verbosity > 0 && tfd->tf_tags != NULL) - show_tags(4, tfd->tf_tags); - - if (tr->tr_verbosity > 1 && tfd->tf_description) - printf(" & %s\n", tfd->tf_description); -} - -static int -show_listing(struct test_run *tr) -{ - const struct test_case_selector *tcs; - const struct test_function_selector *tfs; - - STAILQ_FOREACH(tcs, &tr->tr_test_cases, tcs_next) { - show_test_case(tr, tcs); - STAILQ_FOREACH(tfs, &tcs->tcs_functions, tfs_next) - show_test_function(tr, tfs); - } - - return (EXIT_SUCCESS); -} - -int -main(int argc, char **argv) -{ - struct test_run *tr; - int exit_code, option; - enum test_run_style run_style; - struct selection_option *selector; - struct selection_option_list selections = - STAILQ_HEAD_INITIALIZER(selections); - - tr = test_driver_allocate_run(); - - /* Parse arguments. */ - while ((option = getopt(argc, argv, ":R:T:c:ln:p:s:t:v")) != -1) { - switch (option) { - case 'R': /* Test runtime directory. */ - if (!test_driver_is_directory(optarg)) - errx(EX_USAGE, "option -%c: argument \"%s\" " - "does not name a directory.", option, - optarg); - tr->tr_runtime_base_directory = realpath(optarg, NULL); - if (tr->tr_runtime_base_directory == NULL) - err(1, "realpath failed for \"%s\"", optarg); - tr->tr_commandline_flags |= TRF_BASE_DIRECTORY; - break; - case 'T': /* Max execution time for a test function. */ - if (!parse_execution_time( - optarg, &tr->tr_max_seconds_per_test)) - errx(EX_USAGE, "option -%c: argument \"%s\" " - "is not a valid execution time value.", - option, optarg); - tr->tr_commandline_flags |= TRF_EXECUTION_TIME; - break; - case 'c': /* The archive holding artefacts. */ - tr->tr_artefact_archive = to_absolute_path(optarg); - tr->tr_commandline_flags |= TRF_ARTEFACT_ARCHIVE; - break; - case 'l': /* List matching tests. */ - tr->tr_action = TEST_RUN_LIST; - break; - case 'n': /* Test run name. */ - if (tr->tr_name) - free(tr->tr_name); - tr->tr_name = strdup(optarg); - tr->tr_commandline_flags |= TRF_NAME; - break; - case 'p': /* Add a search path entry. */ - if (!test_driver_add_search_path(tr, optarg)) - errx(EX_USAGE, "option -%c: argument \"%s\" " - "does not name a directory.", option, - optarg); - tr->tr_commandline_flags |= TRF_SEARCH_PATH; - break; - case 's': /* Test execution style. */ - if (!parse_run_style(optarg, &run_style)) - errx(EX_USAGE, "option -%c: argument \"%s\" " - "is not a supported test execution style.", - option, optarg); - tr->tr_style = run_style; - tr->tr_commandline_flags |= TRF_EXECUTION_STYLE; - break; - case 't': /* Test selection option. */ - if ((selector = parse_selection_option(optarg)) == NULL) - errx(EX_USAGE, "option -%c: argument \"%s\" " - "is not a valid selection pattern.", - option, optarg); - STAILQ_INSERT_TAIL(&selections, selector, so_next); - break; - case 'v': - tr->tr_verbosity++; - break; - case ':': - errx(EX_USAGE, - "ERROR: option -%c requires an argument.", optopt); - break; - case '?': - errx(EX_USAGE, - "ERROR: unrecognized option -%c", optopt); - break; - default: - errx(EX_USAGE, "ERROR: unspecified error."); - break; - } - } - - /* - * Set unset fields of the test run descriptor to their - * defaults. - */ - if (!test_driver_finish_run_initialization(tr, argv[0])) - err(EX_OSERR, "cannot initialize test driver"); - - /* Choose tests and test cases to act upon. */ - select_tests(tr, &selections); - - assert(STAILQ_EMPTY(&selections)); - - show_run_header(tr); - - /* Perform the requested action. */ - switch (tr->tr_action) { - case TEST_RUN_LIST: - exit_code = show_listing(tr); - break; - - case TEST_RUN_EXECUTE: - default: - /* Not yet implemented. */ - exit_code = EX_UNAVAILABLE; - } - - show_run_trailer(tr); - - test_driver_free_run(tr); - - exit(exit_code); -} diff --git a/contrib/elftoolchain/test/libtest/driver/test_driver.1 b/contrib/elftoolchain/test/libtest/driver/test_driver.1 deleted file mode 100644 index 0e70c8d4..00000000 --- a/contrib/elftoolchain/test/libtest/driver/test_driver.1 +++ /dev/null @@ -1,308 +0,0 @@ -.\" Copyright (c) 2019 Joseph Koshy. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd November 05, 2019 -.Dt TEST-DRIVER 1 -.Os -.Sh NAME -.Nm test-driver -.Nd scaffolding for executing -.Xr test 3 -based tests from the command-line -.Sh SYNOPSIS -.Nm test-executable -.Op Fl c Ar artefact-archive-name -.Op Fl l -.Op Fl n Ar run-name -.Op Fl p Ar search-path-directory -.Op Fl R Ar runtime-base-directory -.Op Fl s Ar execution-style -.Op Fl t Ar test-selector -.Op Fl T Ar seconds -.Op Fl v -.Sh DESCRIPTION -The -.Nm -library provides a -.Fn main -function that will execute the -.Xr test 3 -based tests in an executable according to the options specified -on the command-line. -The -.Nm -library usually used in conjunction with code generated by the -.Xr make-test-scaffolding 1 -utility. -.Pp -Test executables built using -.Nm -recognize the following command-line options: -.Bl -tag -width indent -.It Fl c Ar archive-name -If this option is specified, then the -.Nm -provided scaffolding will copy test outputs and other artefacts from -the test run to the archive named by argument -.Ar archive-name . -The format of the archive is specified by the path name suffix of the -archive name. -The supported output formats are those supported by -.Xr libarchive 3 . -.It Fl l -If this option is specified, then the -.Nm -utility will list the selected tests and exit. -.It Fl n Ar run-name -Use the specified test run name in status messages and to name -any files and directories created during the test run. -If this option is not specified, then the base name of the test -executable is used. -.It Fl p Ar search-path-directory -Add the argument -.Ar search-path-directory -to the list of directories searched for by -.Xr test 3 -utility functions. -.It Fl R Ar runtime-base-directory -Set the runtime base directory to the directory specified by the -argument -.Ar runtime-base-directory . -Tests execute with their current directory set to a subdirectory -within this directory. -The path specified by argument -.Ar runtime-base-directory -must exist, and must name a directory. -.Pp -If this option is not specified, then the -.Ev TEST_TMPDIR -environment variable will be examined. -If set to a non-empty value, then its value will be used. -Otherwise, the value of the -.Ev TMPDIR -environment variable will be used, if non-empty. -If neither of the environment variables -.Ev TEST_TMPDIR -and -.Ev TMPDIR -contain a non-empty value, then the path -.Dq Pa /tmp -will be used. -.It Fl s Ar execution-style -Set the desired execution style to that specified by argument -.Ar execution-style . -Legal values for -.Ar execution-style -are: -.Bl -tag -width indent -compact -.It Li atf -Be compatible with -.Nx -.Xr atf 9 . -.It Li tap -Be compatible with TAP -.Pq Test Anything Protocol . -.It Li test -Be compatible with libtest (this test framework). -.El -The default is to use libtest semantics. -.It Fl t Ar test-selector -Select (or deselect) tests to execute according to the argument -.Ar test-selector . -.Pp -Test selectors are specified using the following syntax: -.Bl -tag -compact -width indent -.It Xo -.Op Li - Ns -.Li c : Ns Ar pattern -.Xc -Select test cases whose names match -.Ar pattern . -Selecting a test case will cause all of its contained -test functions to be selected. -.It Xo -.Op Li - Ns -.Li f : Ns Ar pattern -.Xc -Select test functions whose names match -.Ar pattern . -.It Xo -.Op Li - Ns -.Li t : Ns Ar pattern -.Xc -Select the test cases and test functions associated with -tags matching -.Ar pattern . -.It Xo -.Op Li - Ns -.Ar pattern -.Xc -If the -.Li c , -.Li f -or -.Li t -qualifiers were not specified, then the pattern is matched -against the names of test cases. -.El -The -.Ar pattern -fields of test selectors use shell wildcard syntax, as implemented by -.Xr fnmatch 3 . -.Pp -If no test selectors are specified then all the tests present in -the test executable will be run. -Otherwise, the test selectors specified are processed in the -order specified on the command line. -.Pp -A test selector that does not start with a -.Dq Li - -will add the entries that it matches to the currently selected list -of tests. -A test selector that starts with a -.Dq Li - -will remove the entries that it matches from the currently selected list -of tests. -.Pp -If at least one test selector was specified, and if the result of -applying the specified test selectors was an empty list -of tests, then the -.Nm -library will exit with an error message. -.It Fl T Ar seconds -Set the timeout for individual tests to -.Ar seconds . -If a test function fails to return with the specified number of seconds -then it is treated as having failed. -The default is to wait indefinitely for the test function to complete. -.It Fl v -Increase verbosity level by 1. -The default verbosity level is 0. -.El -.Ss Link-time Pre-requisites -The -.Nm -library expects the following symbols to be present in the -test executable it is linked with: -.Pp -.Bl -tag -width indent -compact -.It Xo -.Vt struct test_case_descriptor -.Va test_cases Ns [] -.Xc -An array of test cases descriptors. -Test case descriptors described by -.Xr test_case 5 . -.It Xo -.Vt int -.Va test_case_count -.Xc -The number of entries in the -.Va test_cases -array. -.El -.Ss Test Execution -At start up, the -.Fn main -function provided by -.Nm -will select tests (and test cases) to execute, based on the test -selection options specified. -.Pp -For each selected test case, test execution proceeds as follows: -.Bl -enum -compact -.It -The runtime directory for the test case is created. -.It -The test process forks, with test execution continuing in the -child. -.It -.Pq Child -The current directory of the process is changed to the runtime -directory. -.It -.Pq Child -The test case's set up function is then executed. -If this function returns an error then test case execution is -aborted. -.It -.Pq Child -Each selected test function in the test case is then executed and -its status is output to stdout (or stderr) according to the test -execution style selected. -.It -.Pq Child -The test case's tear down function is then executed. -.It -If test artefacts need to be preserved, then these are -copied to the specified archive. -.It -The test's runtime directory is then deleted. -.El -.Pp -After all test cases have been attempted, the -.Fn main -function exits with the exit code appropriate for the -test execution style selected. -.Sh EXAMPLES -To run all tests in the binary named -.Pa tc_example , -copying test artefacts to a -.Xr cpio 1 -archive named -.Pa /tmp/tc_example.cpio , -use: -.Bd -literal -offset indent -tc_example -c /tmp/tc_example.cpio -.Ed -.Pp -To execute tests in the test case -.Dq tc1 -alone, use: -.Bd -literal -offset indent -tc_example -t 'c:tc1' -.Ed -.Pp -To execute tests in the test case -.Dq tc1 -but not the test functions associated with tag -.Li tag1 , -use: -.Bd -literal -offset indent -tc_example -t 'c:tc1' -t '-t:tag1' -.Ed -.Sh DIAGNOSTICS -Test programs built with the -.Nm -library will exit with an exit code of 0 if all of the selected tests -passed when run, and with a non-zero exit code if an error -occurred during test execution. -.Sh SEE ALSO -.Xr make-test-scaffolding 1 , -.Xr fnmatch 3 , -.Xr libarchive 3 , -.Xr test 3 , -.Xr test_case 5 diff --git a/contrib/elftoolchain/test/libtest/examples/Makefile b/contrib/elftoolchain/test/libtest/examples/Makefile deleted file mode 100644 index 9cc82d3d..00000000 --- a/contrib/elftoolchain/test/libtest/examples/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $Id$ -# -# Examples of tests built using test(3). - -TOP= ../../.. - -NOMAN= true - -CFLAGS+= -I../lib -Wall -pedantic - -TEST_SRCS= minimal_example.c \ - simple_example.c - -.include "$(TOP)/mk/elftoolchain.test.mk" diff --git a/contrib/elftoolchain/test/libtest/examples/minimal_example.c b/contrib/elftoolchain/test/libtest/examples/minimal_example.c deleted file mode 100644 index 3bc76fe6..00000000 --- a/contrib/elftoolchain/test/libtest/examples/minimal_example.c +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* $Id$ */ - -/* - * This C source defines a single test function named 'tf_helloworld', - * that is not part of a test case, and lacking a description or tags. - * - * Since no test cases are specified in this file, the test function - * would be assigned to the default test case (named 'default'). - * - * Given the object file created from this source, the - * 'make-test-scaffolding' utility will prepare the scaffolding - * needed to build an executable containing the test function. - */ - -#include "test.h" - -/* - * Function prototypes. - */ -enum test_result tf_helloworld(test_case_state); - -/* - * Function names prefixed with 'tf_' name test functions. - */ -enum test_result -tf_helloworld(test_case_state state) -{ - (void) state; - return (TEST_PASS); -} diff --git a/contrib/elftoolchain/test/libtest/examples/simple_example.c b/contrib/elftoolchain/test/libtest/examples/simple_example.c deleted file mode 100644 index 6d72f65d..00000000 --- a/contrib/elftoolchain/test/libtest/examples/simple_example.c +++ /dev/null @@ -1,171 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* $Id$ */ - -#include - -#include "test.h" - -/* - * Function prototypes. - */ -enum test_case_status tc_setup_helloworld(test_case_state *); -enum test_case_status tc_teardown_helloworld(test_case_state); -enum test_result tf_helloworld_sayhello(test_case_state); -enum test_result tf_helloworld_saygoodbye(test_case_state); - -/* - * This source defines a single test case named 'helloworld' containing a - * single test function named 'sayhello' contained in that test case. At - * test execution time the test case would be selectable using the tags - * "tag1" or "tag2", or by its name 'helloworld'. The test function can - * be selected using tags "tag3" or "tag4", or by its name - * 'helloworld_sayhello'. - * - * Given the object code generated from this file, the - * 'make-test-scaffolding' utility will prepare the scaffolding needed - * to create a executable that can be used to execute these tests. - * - * Specifically the 'make-test-scaffolding' utilit will generate test and - * test case descriptors equivalent to: - * - * struct test_descriptor test_functions_helloworld[] = { - * { - * .t_description = tf_description_helloworld_sayhello, - * .t_tags = tf_tags_helloworld_sayhello, - * .t_func = tf_helloworld_sayhello - * } - * }; - * - * struct test_case_descriptor test_cases[] = { - * { - * .tc_description = tc_description_helloworld, - * .tc_tags = tc_tags_helloworld, - * .tc_tests = test_functions_helloworld - * } - * }; - */ - -/* - * A symbol name prefixed with 'tc_description_' contains a - * test case description. The TEST_CASE_DESCRIPTION macro offers - * a convenient way to define such symbols. In the case of the - * symbol below, the test case named is 'helloworld'. - */ -TEST_CASE_DESCRIPTION(helloworld) = "A description for a test case."; - -/* - * Function names prefixed with 'tc_setup_' are assumed to be test - * case set up functions. - */ -enum test_case_status -tc_setup_helloworld(test_case_state *state) -{ - (void) state; - return (TEST_CASE_OK); -} - -/* - * Function names prefixed with 'tc_teardown_' are assumed to be test - * case tear down functions. - */ -enum test_case_status -tc_teardown_helloworld(test_case_state state) -{ - (void) state; - return (TEST_CASE_OK); -} - -/* - * Names prefixed with 'tc_tags_' denote the tags associated with test - * cases. The TESTC_ASE_TAGS macro offers a convenient way to define such - * symbols. - * - * In the example below, all test functions belonging to the test case - * named 'helloworld' would be associated with tags "tag1" and "tag2". - * - * Tags lists are terminated by a NULL entry. - */ -TEST_CASE_TAGS(helloworld) = { - "tag1", - "tag2", - NULL -}; - -/* - * Function names prefixed with 'tf_' name test functions. - */ -enum test_result -tf_helloworld_sayhello(test_case_state state) -{ - (void) state; - return (TEST_PASS); -} - -enum test_result -tf_helloworld_saygoodbye(test_case_state state) -{ - (void) state; - return (TEST_PASS); -} - -/* - * Names prefixed by 'tf_description_' contain descriptions of test - * functions (e.g., 'tf_description_helloworld_sayhello' contains the - * description for test function 'tf_helloworld_sayhello'). - * - * The TEST_DESCRIPTION macro offers a convenient way to define such - * symbols. - */ -TEST_DESCRIPTION(helloworld_sayhello) = - "A description for the test function 'tf_helloworld_sayhello'."; - -TEST_DESCRIPTION(helloworld_saygoodbye) = - "A description for the test function 'tf_helloworld_saygoodbye'."; - -/* - * Names prefixed by 'tf_tags_' contain the tags associated with - * test functions. - * - * In the example below, the tags 'tag3' and 'tag4' are associated - * with the test function 'tf_helloworld_sayhello'. - * - * Alternately, the TEST_TAGS() macro offers a convenient way to - * define such symbols. - * - * Tags lists are terminated by a NULL entry. - */ -test_tags tf_tags_helloworld_sayhello = { - "tag3", - "tag4", - NULL -}; - -test_tags tf_tags_helloworld_saygoodbye = { - "tag5", - NULL -}; diff --git a/contrib/elftoolchain/test/libtest/lib/Makefile b/contrib/elftoolchain/test/libtest/lib/Makefile deleted file mode 100644 index e36d8fa0..00000000 --- a/contrib/elftoolchain/test/libtest/lib/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -TOP= ../../.. - -LIB= test - -SRCS= test.c - -INCS= test.h test_case.h - -WARNS?= 6 - -MAN= test.3 - -.include "${TOP}/mk/elftoolchain.lib.mk" diff --git a/contrib/elftoolchain/test/libtest/lib/test.3 b/contrib/elftoolchain/test/libtest/lib/test.3 deleted file mode 100644 index e170c181..00000000 --- a/contrib/elftoolchain/test/libtest/lib/test.3 +++ /dev/null @@ -1,110 +0,0 @@ -.\" Copyright (c) 2018,2019 Joseph Koshy. -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd January 21, 2019 -.Dt TEST 3 -.Os -.Sh NAME -.Nm test -.Nd API for writing tests -.Sh LIBRARY -.Lb libtest -.Sh SYNOPSIS -.In test.h -.Ft enum test_case_status -.Fn test_case_setup "test_case_state *state" -.Ft enum test_case_status -.Fn test_case_teardown "test_case_state state" -.Ft enum test_result -.Fn test_function "test_case_state state" -.Vt "const char" -.Va test_description [] ; -.Vt "const char *" -.Va test_tags [] ; -.Vt "const char" -.Va test_case_description [] ; -.Vt "const char *" -.Va test_case_tags [] ; -.Sh DESCRIPTION -The -.Lb libtest -implements an API for writing tests. -.Ss Concepts -Tests are implemented using test functions, where each test function -verifies a specific assertion about the system being tested. -Test functions are associated with the following: -.Bl -bullet -compact -.It -An optional human-readable test description. -.It -An optional set of tags. -Tags are used to select or deselect specific tests in a run. -.El -.Pp -Test functions are further grouped into test cases, where a test case -contains a logical group of assertions about the system under test. -Test cases are associated the following: -.Bl -bullet -compact -.It -An optional human-readable test case description. -.It -An optional test case set up function. -If specified, this set up function would be invoked prior to any test -function contained in the test case. -The set up function can allocate and initialize test-specific state, to be -passed to test functions. -If no set up function is specified for the test case, a default (no-op) -function will be supplied. -.It -An optional test case tear down function. -The tear down function will be invoked after all test functions have been -invoked. -It would be responsible for deallocating any resources that its corresponding -set up function had allocated. -If no tear down function is specified for a test case, a default no-op -function will be supplied. -.It -An optional set of tags for the test case. -These tags are used to select or delect specific test cases in a given test -run. -.El -.Pp -One or more test cases would be linked with a test driver to form a -test executable. -The default test driver supplied allows the test cases and specific tests -within the executable to be specified on the command line. -.Ss Scaffolding Generation -The -.Xr make-test-scaffolding 1 -script will generate the scaffolding needed to produce a test executable -from object files containing symbols following its naming conventions. -.Sh SEE ALSO -.Xr make-test-scaffolding 1 -.Sh AUTHORS -The -.Lb libtest -was written by -.An Joseph Koshy Aq Mt jkoshy@users.sourceforge.net . diff --git a/contrib/elftoolchain/test/libtest/lib/test.c b/contrib/elftoolchain/test/libtest/lib/test.c deleted file mode 100644 index 04999c19..00000000 --- a/contrib/elftoolchain/test/libtest/lib/test.c +++ /dev/null @@ -1,29 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "test.h" - -/* To be implemented. */ diff --git a/contrib/elftoolchain/test/libtest/lib/test.h b/contrib/elftoolchain/test/libtest/lib/test.h deleted file mode 100644 index 6928f867..00000000 --- a/contrib/elftoolchain/test/libtest/lib/test.h +++ /dev/null @@ -1,159 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _LIBTEST_TEST_H_ -#define _LIBTEST_TEST_H_ - -/* - * The return values from test functions. - * - * - TEST_PASS : The assertion(s) in the test function passed. - * - TEST_FAIL : At least one assertion in the test function failed. - * - TEST_UNRESOLVED : The assertions in the test function could not be - * checked for some reason. - */ -enum test_result { - TEST_PASS = 0, - TEST_FAIL = 1, - TEST_UNRESOLVED = 2 -}; - -/* - * The return values from test case set up and tear down functions. - * - * - TEST_CASE_OK : The set up or tear down function was successful. - * - TEST_CASE_ERROR : Set up or tear down actions could not be completed. - * - * If a test case set up function returns TEST_CASE_ERROR then: - * - The test functions in the test case will not be run. - * - The test case's tear down function will not be invoked. - * - The test run as a whole will be treated as being in error. - * - * If a test case tear down function returns a TEST_CASE_ERROR, then - * the test run as a whole be treated as being in error. - */ -enum test_case_status { - TEST_CASE_OK = 0, - TEST_CASE_ERROR = 1 -}; - -/* - * A 'test_case_state' is a handle to resources shared by the test functions - * that make up a test case. A test_case_state is allocated by the test case - * set up function and is deallocated by the test case tear down function. - * - * The test(3) framework treats a 'test_case_state' as an opaque value. - */ -typedef void *test_case_state; - -/* - * Test case and test function descriptions, and convenience macros - * to define these. - */ -typedef const char test_case_description[]; - -#if !defined(TEST_CASE_DESCRIPTION) -#define TEST_CASE_DESCRIPTION(NAME) test_case_description tc_description_##NAME -#endif - -typedef const char test_description[]; - -#if !defined(TEST_DESCRIPTION) -#define TEST_DESCRIPTION(NAME) test_description tf_description_##NAME -#endif - -/* - * Test case and test function tags, and convenience macros to define - * these. - */ -typedef const char *test_case_tags[]; - -#if !defined(TEST_CASE_TAGS) -#define TEST_CASE_TAGS(NAME) test_case_tags tc_tags_##NAME -#endif - -typedef const char *test_tags[]; - -#if !defined(TEST_TAGS) -#define TEST_TAGS(NAME) test_tags tf_tags_##NAME -#endif - -/* - * A test case set up function. - * - * If defined for a test case, this function will be called prior to - * the execution of an of the test functions within the test cae. Test - * case execution will be aborted if the function returns any value other - * than TEST_CASE_OK. - * - * The function can set '*state' to a memory area holding test state to be - * passed to test functions. - * - * If the test case does not define a set up function, then a default - * no-op set up function will be used. - */ -typedef enum test_case_status test_case_setup_function( - test_case_state *state); - -/* - * A test function. - * - * This function will be invoked with the state that had been set by the - * test case set up function. The function returns TEST_PASS to report that - * its test succeeded or TEST_FAIL otherwise. In the event the test could - * not be executed, it can return TEST_UNRESOLVED. - */ -typedef enum test_result test_function(test_case_state state); - -/* - * A test case tear down function. - * - * If defined for a test case, this function will be called after the - * execution of the test functions in the test case. It is passed the - * state that had been allocated by the test case set up function, and is - * responsible for deallocating the resources that the set up function - * had allocated. - */ -typedef enum test_case_status test_case_teardown_function( - test_case_state state); - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Write a progress report to the test log. - * - * This function takes a printf(3)-like format string and associated - * arguments. - */ -int test_report_progress(const char *format, ...); - -#ifdef __cplusplus -} -#endif - -#endif /* _LIBTEST_TEST_H_ */ diff --git a/contrib/elftoolchain/test/libtest/lib/test_case.h b/contrib/elftoolchain/test/libtest/lib/test_case.h deleted file mode 100644 index c40b15fb..00000000 --- a/contrib/elftoolchain/test/libtest/lib/test_case.h +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * Copyright (c) 2018, Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _LIBTEST_TEST_CASE_H_ -#define _LIBTEST_TEST_CASE_H_ - -#include "test.h" - -/* - * These structures describe the test cases that are linked into a - * test executable. - */ - -/* A single test function, with its associated tags and description. */ -struct test_function_descriptor { - const char *tf_name; /* Test name. */ - const char *tf_description; /* Test description. */ - const char **tf_tags; /* The tags for the test. */ - test_function *tf_func; /* The function to invoke. */ -}; - -/* A test case, with its associated tests. */ -struct test_case_descriptor { - const char *tc_name; /* Test case name. */ - const char *tc_description; /* Test case description. */ - const char **tc_tags; /* Any associated tags. */ - const struct test_function_descriptor *tc_tests; /* Contained tests. */ - const int tc_count; /* The number of tests. */ -}; - -/* All test cases linked into the test binary. */ -extern struct test_case_descriptor test_cases[]; -extern const int test_case_count; - -#endif /* _LIBTEST_TEST_CASE_H_ */ diff --git a/contrib/elftoolchain/test/nm/Makefile b/contrib/elftoolchain/test/nm/Makefile deleted file mode 100644 index adc67069..00000000 --- a/contrib/elftoolchain/test/nm/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -TOP= ../.. -SUBDIR= ts - -.include "${TOP}/mk/elftoolchain.tetbase.mk" diff --git a/contrib/elftoolchain/test/nm/tet_code b/contrib/elftoolchain/test/nm/tet_code deleted file mode 100644 index 9c9f355d..00000000 --- a/contrib/elftoolchain/test/nm/tet_code +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ - -# TET reserved codes -0 "PASS" -1 "FAIL" -2 "UNRESOLVED" -3 "NOTINUSE" -4 "UNSUPPORTED" -5 "UNTESTED" -6 "UNINITIATED" -7 "NORESULT" - -# Test suite additional codes -33 "INSPECT" - diff --git a/contrib/elftoolchain/test/nm/tet_scen b/contrib/elftoolchain/test/nm/tet_scen deleted file mode 100644 index 86fe7219..00000000 --- a/contrib/elftoolchain/test/nm/tet_scen +++ /dev/null @@ -1,55 +0,0 @@ -# $Id$ - -# cpp_demangle test suite. - -all - "Starting Test Suite" - ^nm_object1 - ^nm_object2 - ^nm_archive1 - ^nm_archive2 - ^nm_shared_object1 - ^nm_shared_object2 - ^nm_option - ^nm_debug - "Complete Test Suite" - -nm_object1 - "Starting nm Object Test 1" - /ts/nm_object1/tc.sh - "Complete nm Object Test 1" - -nm_object2 - "Starting nm Object Test 2" - /ts/nm_object2/tc.sh - "Complete nm Object Test 2" - -nm_archive1 - "Starting nm Archive Test 1" - /ts/nm_archive1/tc.sh - "Complete nm Archive Test 1" - -nm_archive2 - "Starting nm Archive Test 2" - /ts/nm_archive2/tc.sh - "Complete nm Archive Test 2" - -nm_shared_object1 - "Starting nm Shared Object Test 1" - /ts/nm_shared_object1/tc.sh - "Complete nm Shared Object Test 1" - -nm_shared_object2 - "Starting nm Shared Object Test 2" - /ts/nm_shared_object2/tc.sh - "Complete nm Shared Object Test 2" - -nm_option - "Starting nm Option Test" - /ts/nm_option/tc.sh - "Complete nm Option Test" - -nm_debug - "Starting nm Debug Option Test" - /ts/nm_debug/tc.sh - "Complete nm Debug Option Test" diff --git a/contrib/elftoolchain/test/nm/tetbuild.cfg b/contrib/elftoolchain/test/nm/tetbuild.cfg deleted file mode 100644 index a0686813..00000000 --- a/contrib/elftoolchain/test/nm/tetbuild.cfg +++ /dev/null @@ -1,4 +0,0 @@ -# $Id$ - -TET_OUTPUT_CAPTURE=True -TET_BUILD_TOOL=make diff --git a/contrib/elftoolchain/test/nm/tetclean.cfg b/contrib/elftoolchain/test/nm/tetclean.cfg deleted file mode 100644 index 46c5d5dc..00000000 --- a/contrib/elftoolchain/test/nm/tetclean.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -TET_OUTPUT_CAPTURE=True -TET_CLEAN_TOOL=make -TET_CLEAN_FILE=clean -TET_PASS_TC_NAME=False diff --git a/contrib/elftoolchain/test/nm/tetexec.cfg b/contrib/elftoolchain/test/nm/tetexec.cfg deleted file mode 100644 index 81b08087..00000000 --- a/contrib/elftoolchain/test/nm/tetexec.cfg +++ /dev/null @@ -1,2 +0,0 @@ -# $Id$ -TET_OUTPUT_CAPTURE=False diff --git a/contrib/elftoolchain/test/nm/ts/Makefile b/contrib/elftoolchain/test/nm/ts/Makefile deleted file mode 100644 index e9c8c145..00000000 --- a/contrib/elftoolchain/test/nm/ts/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $Id$ - -TOP= ../../.. - -SUBDIR+= nm_archive1 -SUBDIR+= nm_archive2 -SUBDIR+= nm_debug -SUBDIR+= nm_object1 -SUBDIR+= nm_object2 -SUBDIR+= nm_option -SUBDIR+= nm_shared_object1 -SUBDIR+= nm_shared_object2 - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/test/nm/ts/Makefile.tset b/contrib/elftoolchain/test/nm/ts/Makefile.tset deleted file mode 100644 index 43693372..00000000 --- a/contrib/elftoolchain/test/nm/ts/Makefile.tset +++ /dev/null @@ -1,24 +0,0 @@ -# $Id$ - -NM_EXEC?= ${.CURDIR}/../../../../nm/nm -CSTD?= iso9899:1999 - -CFLAGS+= -DNM=\"${NM_EXEC}\" -DTC_DIR=\"$(.CURDIR)\" \ - -DTESTFILE=\"$(TS_DATA)\" - -CLEANFILES+= test.out - -.for f in ${TS_SRCS} -.if exists(${.CURDIR}/../common/${f}) -${f}: ${.CURDIR}/../common/${f} - cp ${.ALLSRC} ${.TARGET} -CLEANFILES+= test_nm.c -.endif -.endfor - -.if !empty(${TS_DATA:R}) && !exists(${TS_DATA:R}) -${TS_DATA}: - uudecode ${TS_DATA}.uu -.endif - -CLEANFILES+= ${TS_DATA} diff --git a/contrib/elftoolchain/test/nm/ts/common/func.sh b/contrib/elftoolchain/test/nm/ts/common/func.sh deleted file mode 100644 index 8894b0bb..00000000 --- a/contrib/elftoolchain/test/nm/ts/common/func.sh +++ /dev/null @@ -1,304 +0,0 @@ -#!/bin/sh -# -# $Id$ - -test_format_bsd1() -{ - # $1 test file - # $2 oracle file - - run "-t d -B" $1 $2 -} - -test_format_bsd2() -{ - # $1 test file - # $2 oracle file - - run "-t d --format=bsd" $1 $2 -} - -test_dynamic1() -{ - # $1 test file - # $2 oracle file - - run "-t d -D" $1 $2 -} - -test_dynamic2() -{ - # $1 test file - # $2 oracle file - - run "-t d --dynamic" $1 $2 -} - -test_external() -{ - # $1 test file - # $2 oracle file - - run "-t d -g" $1 $2 -} - -test_hexa1() -{ - # $1 test file - # $2 oracle file - - run "-x" $1 $2 -} - -test_hexa2() -{ - # $1 test file - # $2 oracle file - - run "-t x" $1 $2 -} - -test_hexa3() -{ - # $1 test file - # $2 oracle file - - run "--radix=x" $1 $2 -} - -test_no_sort1() -{ - # $1 test file - # $2 oracle file - - run "-t d -p" $1 $2 -} - -test_no_sort2() -{ - # $1 test file - # $2 oracle file - - run "-t d --no-sort" $1 $2 -} - -test_num_sort1() -{ - # $1 test file - # $2 oracle file - - run "-t d -n" $1 $2 -} - -test_num_sort2() -{ - # $1 test file - # $2 oracle file - - run "-t d --numeric-sort" $1 $2 -} - -test_octal2() -{ - # $1 test file - # $2 oracle file - - run "-t o" $1 $2 -} - -test_octal3() -{ - # $1 test file - # $2 oracle file - - run "--radix=o" $1 $2 -} - -test_posix1() -{ - # $1 test file - # $2 oracle file - - run "-P" $1 $2 -} - -test_posix2() -{ - # $1 test file - # $2 oracle file - - run "--format=posix" $1 $2 -} - -test_print_file_name1() -{ - # $1 test file - # $2 oracle file - - run "-t d -A" $1 $2 -} - -test_print_file_name2() -{ - # $1 test file - # $2 oracle file - - run "-t d --print-file-name" $1 $2 -} - -test_print_size1() -{ - # $1 test file - # $2 oracle file - - run "-t d -S" $1 $2 -} - -test_print_size2() -{ - # $1 test file - # $2 oracle file - - run "-t d --print-size" $1 $2 -} - -test_reverse_sort1() -{ - # $1 test file - # $2 oracle file - - run "-t d -r" $1 $2 -} - -test_reverse_sort2() -{ - # $1 test file - # $2 oracle file - - run "-t d --reverse-sort" $1 $2 -} - -test_reverse_sort_num() -{ - # $1 test file - # $2 oracle file - - run "-t d -r -n" $1 $2 -} - -test_reverse_sort_no() -{ - # $1 test file - # $2 oracle file - - run "-t d -r -p" $1 $2 -} - -test_reverse_sort_size() -{ - # $1 test file - # $2 oracle file - - run "-t d -r --size-sort" $1 $2 -} - -test_size_sort() -{ - # $1 test file - # $2 oracle file - - run "-t d --size-sort" $1 $2 -} - -test_sysv() -{ - # $1 test file - # $2 oracle file - - run "-t d --format=sysv" $1 $2 -} - -test_undef1() -{ - # $1 test file - # $2 oracle file - - run "-t d -u" $1 $2 -} - -test_undef2() -{ - # $1 test file - # $2 oracle file - - run "-t d --undefined-only" $1 $2 -} - -test_debug_syms1() -{ - # $1 test file - # $2 oracle file - - run "-a" $1 $2 -} - -test_debug_syms2() -{ - # $1 test file - # $2 oracle file - - run "--debug-syms" $1 $2 -} - -run() -{ - # $1 nm option - # $2 test file - # $3 oracle file - - tet_infoline "OPTION $1" - - NM_PATH="$TET_SUITE_ROOT/../../nm/nm" - TEST_OUTPUT_FILE="test.out" - - $NM_PATH $1 $2 > $TEST_OUTPUT_FILE 2> /dev/null - NM_RETURN_CODE="$?" - if [ $NM_RETURN_CODE -ne "0" ]; then - tet_infoline "nm execution failed" - tet_result FAIL - - return - fi - - diff $TEST_OUTPUT_FILE $3 > /dev/null - DIFF_RETURN_CODE="$?" - if [ $DIFF_RETURN_CODE -ne "0" ]; then - tet_infoline "diff failed" - tet_result FAIL - - return - fi - - tet_result PASS -} - -run_without_diff() -{ - # $1 nm option - # $2 oracle return code - - tet_infoline "OPTION $1" - - NM_PATH="$TET_SUITE_ROOT/../../nm/nm" - - $NM_PATH $1 > /dev/null 2> /dev/null - NM_RETURN_CODE="$?" - if [ $NM_RETURN_CODE -ne $2 ]; then - tet_infoline "nm execution failed" - tet_result FAIL - - return - fi - - tet_result PASS -} diff --git a/contrib/elftoolchain/test/nm/ts/common/test_nm.c b/contrib/elftoolchain/test/nm/ts/common/test_nm.c deleted file mode 100644 index 5bbdea48..00000000 --- a/contrib/elftoolchain/test/nm/ts/common/test_nm.c +++ /dev/null @@ -1,343 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include - -static int exec_cmd(const char *, const char *); -static void startup(); -static void test_bsd(); -static void test_dynamic(); -static void test_external(); -static void test_hexa(); -static bool test_nm_out(const char *, const char *); -static void test_no_sort(); -static void test_num_sort(); -static void test_octal(); -static void test_posix(); -static void test_print_filename(); -static void test_print_size(); -static void test_reverse_sort(); -static void test_size_sort(); -static void test_sysv(); -static void test_undef(); - -struct tet_testlist tet_testlist[] = { - { test_dynamic, 1}, - { test_external, 2}, - { test_num_sort, 3}, - { test_no_sort, 4}, - { test_posix, 5}, - { test_print_size, 6}, - { test_undef, 7}, - { test_size_sort, 8}, - { test_sysv, 9}, - { test_bsd, 10}, - { test_print_filename, 11}, - { test_octal, 12}, - { test_hexa, 13}, - { test_reverse_sort, 14}, - { NULL, 0} -}; - -#define NM_CMD NM " %s " TESTFILE " > test.out" -#define DIFF_CMD "diff test.out " TC_DIR "/" TESTFILE "%s.txt > /dev/null" - -void (*tet_startup)() = startup; -void (*tet_cleanup)() = NULL; - -static int -exec_cmd(const char *cmd, const char *op) -{ - char *this_cmd; - int rtn; - size_t cmd_len; - - if (cmd == NULL || op == NULL) - return (-1); - - cmd_len = strlen(cmd) + strlen(op); - - if ((this_cmd = malloc(sizeof(char) * cmd_len)) == NULL) { - tet_infoline("cannot allocate memory"); - - return (-1); - } - - snprintf(this_cmd, cmd_len, cmd, op); - - rtn = system(this_cmd); - - free(this_cmd); - - return (rtn); -} - -static void -startup() -{ - - if (system("cp " TC_DIR "/" TESTFILE " .") < 0) { - tet_infoline("cannot cp object"); - - exit(EXIT_FAILURE); - } -} - -static void -test_bsd() -{ - bool rtn = true; - - tet_infoline("OPTION -B, --format=bsd"); - - rtn |= test_nm_out("-B", "-B"); - rtn |= test_nm_out("--format=bsd", "-B"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_dynamic() -{ - bool rtn = true; - - tet_infoline("OPTION -D, --dynamic"); - - rtn |= test_nm_out("-D", "-D"); - rtn |= test_nm_out("--dynamic", "-D"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_external() -{ - - tet_infoline("OPTION -g"); - - if (test_nm_out("-g", "-g") == true) - tet_result(TET_PASS); - else - tet_result(TET_FAIL); -} - -static void -test_hexa() -{ - bool rtn = true; - - tet_infoline("OPTION -x, -t x"); - - rtn |= test_nm_out("-x", "-x"); - rtn |= test_nm_out("-t x", "-x"); - rtn |= test_nm_out("--radix=x", "-x"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static bool -test_nm_out(const char *op, const char *d_op) -{ - int rtn; - - if (op == NULL) { - tet_result(TET_FAIL); - - return (false); - } - - if ((rtn = exec_cmd(NM_CMD, op)) < 0) { - tet_infoline("system function failed"); - - return (false); - } else if (rtn == 127) { - tet_infoline("execution shell failed"); - - return (false); - } - - if ((rtn = exec_cmd(DIFF_CMD, d_op)) < 0) - tet_infoline("system function failed"); - else { - switch (rtn) { - case 127: - tet_infoline("execution shell failed"); - - break; - case 2: - tet_infoline("diff has trouble"); - - break; - case 1: - tet_infoline("output is different"); - - break; - case 0: - return (true); - } - } - - return (false); -} - -static void -test_no_sort() -{ - bool rtn = true; - - tet_infoline("OPTION -p"); - - rtn |= test_nm_out("-p", "-p"); - rtn |= test_nm_out("--no-sort", "-p"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_num_sort() -{ - bool rtn = true; - - tet_infoline("OPTION -n, --numeric-sort"); - - rtn |= test_nm_out("-n", "-n"); - rtn |= test_nm_out("--numeric-sort", "-n"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_octal() -{ - bool rtn = true; - - tet_infoline("OPTION --radix=o, -t o"); - - rtn |= test_nm_out("-t o", "-o"); - rtn |= test_nm_out("--radix=o", "-o"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_posix() -{ - bool rtn = true; - - tet_infoline("OPTION -P, --format=posix"); - - rtn |= test_nm_out("-P", "-P"); - rtn |= test_nm_out("--format=posix", "-P"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_print_filename() -{ - bool rtn = true; - - tet_infoline("OPTION -A, --print-file-name"); - - rtn |= test_nm_out("-A", "-A"); - rtn |= test_nm_out("--print-file-name", "-A"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_print_size() -{ - bool rtn = true; - - tet_infoline("OPTION -S, --print-size"); - - rtn |= test_nm_out("-S", "-S"); - rtn |= test_nm_out("--print-size", "-S"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_reverse_sort() -{ - bool rtn = true; - - tet_infoline("OPTION -r, --reverse-sort"); - - rtn |= test_nm_out("-r", "-r"); - rtn |= test_nm_out("--reverse-sort", "-r"); - - rtn |= test_nm_out("-r -n", "-r-n"); - rtn |= test_nm_out("-r -p", "-r-p"); - rtn |= test_nm_out("-r --size-sort", "-r-size-sort"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} - -static void -test_size_sort() -{ - - tet_infoline("OPTION --size-sort"); - - if (test_nm_out("--size-sort", "-size-sort") == true) - tet_result(TET_PASS); - else - tet_result(TET_FAIL); -} - -static void -test_sysv() -{ - - tet_infoline("OPTION --format=sysv"); - - if (test_nm_out("--format=sysv", "-sysv") == true) - tet_result(TET_PASS); - else - tet_result(TET_FAIL); -} - -static void -test_undef() -{ - bool rtn = true; - - tet_infoline("OPTION -u, --undefined-only"); - - rtn |= test_nm_out("-u", "-u"); - rtn |= test_nm_out("--undefined-only", "-u"); - - tet_result(rtn == true ? TET_PASS : TET_FAIL); -} diff --git a/contrib/elftoolchain/test/nm/ts/cpp_demangle/Makefile b/contrib/elftoolchain/test/nm/ts/cpp_demangle/Makefile deleted file mode 100644 index b283965f..00000000 --- a/contrib/elftoolchain/test/nm/ts/cpp_demangle/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# $Id$ - -TET_ROOT?= /usr/tet -LIBDIR= $(TET_ROOT)/lib/tet3 -INCDIR= $(TET_ROOT)/inc/tet3 -CSTD= -std=iso9899:1999 -CFLAGS= -I$(INCDIR) -TC= cpp_demangle-tc - -vector_str.o: ../../../vector_str.c - $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c - -cpp_demangle.o: ../../../cpp_demangle.c vector_str.o - $(CC) $(CSTD) -o cpp_demangle.o -c ../../../cpp_demangle.c - -$(TC): $(TC).c cpp_demangle.o $(INCDIR)/tet_api.h - $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o \ - cpp_demangle.o $(LIBDIR)/tcm.o \ - $(LIBDIR)/libapi.a - -clean: - rm -f *.o $(TC) - -lint: - lint $(CFLAGS) $(TC) -ltcm diff --git a/contrib/elftoolchain/test/nm/ts/cpp_demangle/cpp_demangle-tc.c b/contrib/elftoolchain/test/nm/ts/cpp_demangle/cpp_demangle-tc.c deleted file mode 100644 index 9dfef0aa..00000000 --- a/contrib/elftoolchain/test/nm/ts/cpp_demangle/cpp_demangle-tc.c +++ /dev/null @@ -1,170 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "../../../cpp_demangle.h" - -static void startup(); -static void cleanup(); -static void test_func(); -static void test_oper(); -static void test_templ(); -static void test_scope(); -static void test_subst(); -static void test_cpp_demangle_ia64(const char *, const char *); - -void (*tet_startup)() = NULL; -void (*tet_cleanup)() = NULL; - -struct tet_testlist tet_testlist[] = { - { test_func, 1}, - { test_oper, 2}, - { test_templ, 3}, - { test_scope, 4}, - { test_subst, 5}, - { NULL, 0} -}; - -static void -test_func() -{ - - tet_infoline("FUNCTION"); - test_cpp_demangle_ia64("_Z1fv", "f(void)"); - test_cpp_demangle_ia64("_Z1fi", "f(int)"); - test_cpp_demangle_ia64("_Z3foo3bar", "foo(bar)"); -} - -static void -test_oper() -{ - - tet_infoline("OPERATOR"); - test_cpp_demangle_ia64("_Zrm1XS_", "operator%(X, X)"); - test_cpp_demangle_ia64("_ZplR1XS0_", "operator+(X&, X&)"); - test_cpp_demangle_ia64("_ZlsRK1XS1_", - "operator<<(X const&, X const&)"); -} - -static void -test_templ() -{ - - tet_infoline("TEMPLATE"); - test_cpp_demangle_ia64("_ZN3FooIA4_iE3barE", - "Foo::bar"); - test_cpp_demangle_ia64("_Z1fIiEvi", "void f(int)"); - test_cpp_demangle_ia64("_Z5firstI3DuoEvS0_", - "void first(Duo)"); - test_cpp_demangle_ia64("_Z5firstI3DuoEvT_", - "void first(Duo)"); - test_cpp_demangle_ia64("_Z3fooIiPFidEiEvv", - "void foo(void)"); - test_cpp_demangle_ia64("_Z1fI1XEvPVN1AIT_E1TE", - "void f(A::T volatile*)"); - test_cpp_demangle_ia64("_ZngILi42EEvN1AIXplT_Li2EEE1TE", - "void operator-<42>(A::T)"); - test_cpp_demangle_ia64("_Z4makeI7FactoryiET_IT0_Ev", - "Factory make(void)"); -} - -static void -test_scope() -{ - - tet_infoline("SCOPE"); - test_cpp_demangle_ia64("_ZN1N1fE", "N::f"); - test_cpp_demangle_ia64("_ZN6System5Sound4beepEv", - "System::Sound::beep(void)"); - test_cpp_demangle_ia64("_ZN5Arena5levelE", "Arena::level"); - test_cpp_demangle_ia64("_ZN5StackIiiE5levelE", - "Stack::level"); - -} - -static void -test_subst() -{ - - tet_infoline("SUBSTITUTION"); - test_cpp_demangle_ia64("_Z3foo5Hello5WorldS0_S_", - "foo(Hello, World, World, Hello)"); - test_cpp_demangle_ia64("_Z3fooPM2ABi", "foo(int AB::**)"); - test_cpp_demangle_ia64("_ZlsRSoRKSs", - "operator<<(std::ostream&, std::string const&)"); - test_cpp_demangle_ia64("_ZTI7a_class", - "typeinfo for (a_class)"); - test_cpp_demangle_ia64("_ZSt5state", "std::state"); - test_cpp_demangle_ia64("_ZNSt3_In4wardE", "std::_In::ward"); -} - -static void -test_cpp_demangle_ia64(const char *org, const char *dst) -{ - char *rst; - - if ((rst = cpp_demangle_ia64(org)) == NULL) { - const size_t len = strlen(org); - char *msg; - - if ((msg = malloc(len + 8)) != NULL) { - snprintf(msg, len + 8, "Cannot demangle : %s", org); - tet_infoline(msg); - free(msg); - } - - tet_result(TET_FAIL); - - return; - } - - if (strcmp(rst, dst) != 0) { - const size_t len = strlen(org) + strlen(rst) + strlen(dst); - char *msg; - - if ((msg = malloc(len + 17)) != NULL) { - snprintf(msg, len + 17, "Diff for %s : %s != %s", org, - rst, dst); - tet_infoline(msg); - free(msg); - } - - free(rst); - tet_result(TET_FAIL); - - return; - } - - free(rst); - - tet_result(TET_PASS); -} diff --git a/contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/Makefile b/contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/Makefile deleted file mode 100644 index 32e211ca..00000000 --- a/contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# $Id$ -TET_ROOT?= /usr/tet -LIBDIR= $(TET_ROOT)/lib/tet3 -INCDIR= $(TET_ROOT)/inc/tet3 -CSTD= -std=iso9899:1999 -CFLAGS= -I$(INCDIR) -TC= cpp_demangle_ARM-tc - -vector_str.o: ../../../vector_str.c - $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c - -cpp_demangle_arm.o: ../../../cpp_demangle_arm.c vector_str.o - $(CC) $(CSTD) -o cpp_demangle_arm.o -c ../../../cpp_demangle_arm.c - -$(TC): $(TC).c cpp_demangle_arm.o $(INCDIR)/tet_api.h - $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o \ - cpp_demangle_arm.o $(LIBDIR)/tcm.o \ - $(LIBDIR)/libapi.a - -clean: - rm -f *.o $(TC) - -lint: - lint $(CFLAGS) $(TC) -ltcm diff --git a/contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c b/contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c deleted file mode 100644 index d52de894..00000000 --- a/contrib/elftoolchain/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "../../../cpp_demangle_arm.h" - -static void startup(); -static void cleanup(); -static void test_basic(); -static void test_modifier(); -static void test_subst(); -static void test_example(); -static void test_cpp_demangle_ARM(const char *, const char *); - -void (*tet_startup)() = NULL; -void (*tet_cleanup)() = NULL; - -struct tet_testlist tet_testlist[] = { - { test_basic, 1}, - { test_modifier, 2}, - { test_subst, 3}, - { test_example, 4}, - { NULL, 0} -}; - -static void -test_basic() -{ - - tet_infoline("BASIC ENCODING"); - test_cpp_demangle_ARM("f__Fide", "f(int, double, ...)"); - test_cpp_demangle_ARM("f__Fv", "f(void)"); - test_cpp_demangle_ARM("f__Q25Outer5Inner__Fv", "Outer::Inner::f(void)"); - test_cpp_demangle_ARM("update__3recFd", "rec::update(double)"); - test_cpp_demangle_ARM("f__1xFi", "x::f(int)"); - test_cpp_demangle_ARM("f__F1xi", "f(x, int)"); - test_cpp_demangle_ARM("__ct__1xFv", "x::x()"); - test_cpp_demangle_ARM("__dt__1xFv", "x::~x()"); - test_cpp_demangle_ARM("__opQ25Name16Class1__Q25Name16Class2", - "Name1::Class2::operator Name1::Class1()"); -} - -static void -test_modifier() -{ - - tet_infoline("MODIFIER and TYPE DECLARATOR"); - test_cpp_demangle_ARM("f__FUi", "f(unsigned int)"); - test_cpp_demangle_ARM("f__FCSc", "f(const signed char)"); - test_cpp_demangle_ARM("f__FPc", "f(char*)"); - test_cpp_demangle_ARM("f__FPCc", "f(const char*)"); - test_cpp_demangle_ARM("f__FCPc", "f(char* const)"); - test_cpp_demangle_ARM("f__FPFPc_i", "f(int (*)(char*))"); - test_cpp_demangle_ARM("f__FA10_i", "f(int[10])"); - test_cpp_demangle_ARM("f__FM1S7complex", "f(S::*complex)"); -} - -static void -test_subst() -{ - - tet_infoline("SUBSTITUTION"); - test_cpp_demangle_ARM("f__F7complexT1", "f(complex, complex)"); - test_cpp_demangle_ARM("f__F6recordN21", "f(record, record, record)"); -} - -static void -test_example() -{ - - tet_infoline("EXAMPLE"); - test_cpp_demangle_ARM("__dt__12PathListHeadFv", - "PathListHead::~PathListHead()"); - test_cpp_demangle_ARM("__ad__4PathFR4Path", "Path::operator&(Path&)"); - test_cpp_demangle_ARM("first__4PathFv", "Path::first(void)"); - test_cpp_demangle_ARM("last__4PathFv", "Path::last(void)"); - test_cpp_demangle_ARM("findpath__4PathFR6String", - "Path::findpath(String&)"); - test_cpp_demangle_ARM("fullpath__4PathFv", "Path::fullpath(void)"); -} - -static void -test_cpp_demangle_ARM(const char *org, const char *dst) -{ - char *rst; - - if ((rst = cpp_demangle_ARM(org)) == NULL) { - const size_t len = strlen(org); - char *msg; - - if ((msg = malloc(len + 19)) != NULL) { - snprintf(msg, len + 19, "Cannot demangle : %s", org); - tet_infoline(msg); - free(msg); - } - - tet_result(TET_FAIL); - - return; - } - - if (strcmp(rst, dst) != 0) { - const size_t len = strlen(org) + strlen(rst) + strlen(dst); - char *msg; - - if ((msg = malloc(len + 17)) != NULL) { - snprintf(msg, len + 17, "Diff for %s : %s != %s", org, - rst, dst); - tet_infoline(msg); - free(msg); - } - - free(rst); - tet_result(TET_FAIL); - - return; - } - - free(rst); - - tet_result(TET_PASS); -} diff --git a/contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/Makefile b/contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/Makefile deleted file mode 100644 index 73ea1b90..00000000 --- a/contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# $Id$ -TET_ROOT?= /usr/tet -LIBDIR= $(TET_ROOT)/lib/tet3 -INCDIR= $(TET_ROOT)/inc/tet3 -CSTD= -std=iso9899:1999 -CFLAGS= -I$(INCDIR) -TC= cpp_demangle_gnu2-tc - -vector_str.o: ../../../vector_str.c - $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c - -cpp_demangle_gnu2.o: ../../../cpp_demangle_gnu2.c vector_str.o - $(CC) $(CSTD) -o cpp_demangle_gnu2.o -c ../../../cpp_demangle_gnu2.c - -$(TC): $(TC).c cpp_demangle_gnu2.o $(INCDIR)/tet_api.h - $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o \ - cpp_demangle_gnu2.o $(LIBDIR)/tcm.o \ - $(LIBDIR)/libapi.a - -clean: - rm -f *.o $(TC) - -lint: - lint $(CFLAGS) $(TC) -ltcm diff --git a/contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c b/contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c deleted file mode 100644 index d7c76d44..00000000 --- a/contrib/elftoolchain/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c +++ /dev/null @@ -1,172 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include -#include -#include - -#include "../../../cpp_demangle_gnu2.h" - -static void startup(); -static void cleanup(); -static void test_basic(); -static void test_modifier(); -static void test_subst(); -static void test_example(); -static void test_gnu2(); -static void test_cpp_demangle_gnu2(const char *, const char *); - -void (*tet_startup)() = NULL; -void (*tet_cleanup)() = NULL; - -struct tet_testlist tet_testlist[] = { - { test_basic, 1}, - { test_modifier, 2}, - { test_subst, 3}, - { test_example, 4}, - { test_gnu2, 5}, - { NULL, 0} -}; - -static void -test_basic() -{ - - tet_infoline("BASIC ENCODING"); - test_cpp_demangle_gnu2("f__Fide", "f(int, double, ...)"); - test_cpp_demangle_gnu2("f__Fv", "f(void)"); - test_cpp_demangle_gnu2("f__Q25Outer5Inner__Fv", "Outer::Inner::f(void)"); - test_cpp_demangle_gnu2("update__3recFd", "rec::update(double)"); - test_cpp_demangle_gnu2("f__1xFi", "x::f(int)"); - test_cpp_demangle_gnu2("f__F1xi", "f(x, int)"); - test_cpp_demangle_gnu2("__opQ25Name16Class1__Q25Name16Class2", - "Name1::Class2::operator Name1::Class1()"); -} - -static void -test_modifier() -{ - - tet_infoline("MODIFIER and TYPE DECLARATOR"); - test_cpp_demangle_gnu2("f__FUi", "f(unsigned int)"); - test_cpp_demangle_gnu2("f__FCSc", "f(const signed char)"); - test_cpp_demangle_gnu2("f__FPc", "f(char*)"); - test_cpp_demangle_gnu2("f__FPCc", "f(const char*)"); - test_cpp_demangle_gnu2("f__FCPc", "f(char* const)"); - test_cpp_demangle_gnu2("f__FPFPc_i", "f(int (*)(char*))"); - test_cpp_demangle_gnu2("f__FA10_i", "f(int[10])"); - test_cpp_demangle_gnu2("f__FM1S7complex", "f(S::*complex)"); -} - -static void -test_subst() -{ - - tet_infoline("SUBSTITUTION"); - test_cpp_demangle_gnu2("f__F7complexT1", "f(complex, complex)"); - test_cpp_demangle_gnu2("f__F6recordN21", "f(record, record, record)"); -} - -static void -test_example() -{ - - tet_infoline("EXAMPLE"); - test_cpp_demangle_gnu2("__ad__4PathFR4Path", "Path::operator&(Path&)"); - test_cpp_demangle_gnu2("first__4PathFv", "Path::first(void)"); - test_cpp_demangle_gnu2("last__4PathFv", "Path::last(void)"); - test_cpp_demangle_gnu2("findpath__4PathFR6String", - "Path::findpath(String&)"); - test_cpp_demangle_gnu2("fullpath__4PathFv", "Path::fullpath(void)"); -} - -static void -test_gnu2() -{ - - tet_infoline("GNU 2 SPECIFIC"); - test_cpp_demangle_gnu2("Func1__Q25Name16Class1", - "Name1::Class1::Func1(void)"); - test_cpp_demangle_gnu2("_$_10bad_typeid", - "bad_typeid::~bad_typeid(void)"); - test_cpp_demangle_gnu2("__16__user_type_infoPCc", - "__user_type_info::__user_type_info(const char*)"); - test_cpp_demangle_gnu2("__Q25Name16Class1", - "Name1::Class1::Class1(void)"); - test_cpp_demangle_gnu2("__tf10bad_typeid", - "bad_typeid type_info function"); - test_cpp_demangle_gnu2("__ti10bad_typeid", - "bad_typeid type_info node"); - test_cpp_demangle_gnu2("_vt$10bad_typeid", - "bad_typeid virtual table"); - test_cpp_demangle_gnu2("what__C9exception", - "exception::what(void) const"); -} - -static void -test_cpp_demangle_gnu2(const char *org, const char *dst) -{ - char *rst; - - if ((rst = cpp_demangle_gnu2(org)) == NULL) { - const size_t len = strlen(org); - char *msg; - - if ((msg = malloc(len + 19)) != NULL) { - snprintf(msg, len + 19, "Cannot demangle : %s", org); - tet_infoline(msg); - free(msg); - } - - tet_result(TET_FAIL); - - return; - } - - if (strcmp(rst, dst) != 0) { - const size_t len = strlen(org) + strlen(rst) + strlen(dst); - char *msg; - - if ((msg = malloc(len + 17)) != NULL) { - snprintf(msg, len + 17, "Diff for %s : %s != %s", org, - rst, dst); - tet_infoline(msg); - free(msg); - } - - free(rst); - tet_result(TET_FAIL); - - return; - } - - free(rst); - - tet_result(TET_PASS); -} diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/Makefile b/contrib/elftoolchain/test/nm/ts/nm_archive1/Makefile deleted file mode 100644 index cb53f1c6..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_DATA= test_ar - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/tc.sh b/contrib/elftoolchain/test/nm/ts/nm_archive1/tc.sh deleted file mode 100755 index 6fb57431..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/tc.sh +++ /dev/null @@ -1,198 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt" -} - -tp2() -{ - test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt" -} - -tp3() -{ - test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt" -} - -tp4() -{ - test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt" -} - -tp5() -{ - test_external $TEST_FILE "$TEST_FILE-external.txt" -} - -tp6() -{ - test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp7() -{ - test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp8() -{ - test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp9() -{ - test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt" -} - -tp10() -{ - test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt" -} - -tp11() -{ - test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt" -} - -tp12() -{ - test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt" -} - -tp14() -{ - test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt" -} - -tp15() -{ - test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt" -} - -tp16() -{ - test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt" -} - -tp17() -{ - test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt" -} - -tp18() -{ - test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt" -} - -tp19() -{ - test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt" -} - -tp20() -{ - test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt" -} - -tp21() -{ - test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt" -} - -tp22() -{ - test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt" -} - -tp23() -{ - test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt" -} - -tp24() -{ - test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt" -} - -tp25() -{ - test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt" -} - -tp26() -{ - test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt" -} - -tp27() -{ - test_size_sort $TEST_FILE "$TEST_FILE-size-sort.txt" -} - -tp28() -{ - test_sysv $TEST_FILE "$TEST_FILE-sysv.txt" -} - -tp29() -{ - test_undef1 $TEST_FILE "$TEST_FILE-undef.txt" -} - -tp30() -{ - test_undef2 $TEST_FILE "$TEST_FILE-undef.txt" -} - -startup() -{ - uudecode "$TEST_FILE.uu" -} - -cleanup() -{ - rm -f $TEST_FILE -} - -TEST_FILE="test_ar" - -tet_startup="startup" -tet_cleanup="cleanup" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" -ic8="tp8" -ic9="tp9" -ic10="tp10" -ic11="tp11" -ic12="tp12" -ic14="tp14" -ic15="tp15" -ic16="tp16" -ic17="tp17" -ic18="tp18" -ic19="tp19" -ic20="tp20" -ic21="tp21" -ic22="tp22" -ic23="tp23" -ic24="tp24" -ic25="tp25" -ic26="tp26" -ic27="tp27" -ic28="tp28" -ic29="tp29" -ic30="tp30" - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-dynamic.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-dynamic.txt deleted file mode 100644 index 5c975f4e..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-dynamic.txt +++ /dev/null @@ -1,8 +0,0 @@ - -data.o: - -usage.o: - -parse.o: - -descr.o: diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-external.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-external.txt deleted file mode 100644 index a99b7c3f..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-external.txt +++ /dev/null @@ -1,48 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000128 T hid_set_data - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen -0000000000000704 T hid_init -0000000000000000 T hid_parse_usage_in_page -0000000000000240 T hid_parse_usage_page -0000000000000368 T hid_usage_in_page -0000000000000576 T hid_usage_page - U malloc - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp - -parse.o: - U free -0000000000001744 T hid_end_parse -0000000000000224 T hid_get_item -0000000000001808 T hid_locate -0000000000001952 T hid_report_size -0000000000000080 T hid_start_parse - U malloc - U memcpy - U memset - -descr.o: - U __error - U free -0000000000000000 T hid_dispose_report_desc -0000000000000128 T hid_get_report_desc -0000000000000016 T hid_use_report_desc - U ioctl - U malloc - U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-bsd.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-bsd.txt deleted file mode 100644 index 06567bbd..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-bsd.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000128 T hid_set_data - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit -0000000000000100 b b.3186 -0000000000000000 b b.3204 - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen -0000000000000704 T hid_init -0000000000000000 T hid_parse_usage_in_page -0000000000000240 T hid_parse_usage_page -0000000000000368 T hid_usage_in_page -0000000000000576 T hid_usage_page - U malloc -0000000000000120 b npages -0000000000000124 b npagesmax -0000000000000112 b pages - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp - -parse.o: - U free -0000000000000000 t hid_clear_local -0000000000001744 T hid_end_parse -0000000000000224 T hid_get_item -0000000000001808 T hid_locate -0000000000001952 T hid_report_size -0000000000000080 T hid_start_parse - U malloc - U memcpy - U memset - -descr.o: - U __error - U free -0000000000000000 T hid_dispose_report_desc -0000000000000128 T hid_get_report_desc -0000000000000016 T hid_use_report_desc - U ioctl - U malloc - U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-posix.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-posix.txt deleted file mode 100644 index d000019d..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-format-posix.txt +++ /dev/null @@ -1,50 +0,0 @@ -test_ar[data.o]: -hid_get_data T 0000000000000000 000000000000007f -hid_set_data T 0000000000000080 0000000000000076 -test_ar[usage.o]: -_CurrentRuneLocale U -__mb_sb_limit U -b.3186 b 0000000000000064 000000000000000a -b.3204 b 0000000000000000 0000000000000064 -err U -errx U -fclose U -fgets U -fmtcheck U -fopen U -hid_init T 00000000000002c0 0000000000000368 -hid_parse_usage_in_page T 0000000000000000 00000000000000e3 -hid_parse_usage_page T 00000000000000f0 0000000000000079 -hid_usage_in_page T 0000000000000170 00000000000000c5 -hid_usage_page T 0000000000000240 000000000000007b -malloc U -npages b 0000000000000078 0000000000000004 -npagesmax b 000000000000007c 0000000000000004 -pages b 0000000000000070 0000000000000008 -realloc U -sprintf U -sscanf U -strchr U -strcmp U -strdup U -strncmp U -test_ar[parse.o]: -free U -hid_clear_local t 0000000000000000 0000000000000047 -hid_end_parse T 00000000000006d0 000000000000003d -hid_get_item T 00000000000000e0 00000000000005e6 -hid_locate T 0000000000000710 0000000000000081 -hid_report_size T 00000000000007a0 000000000000008f -hid_start_parse T 0000000000000050 0000000000000085 -malloc U -memcpy U -memset U -test_ar[descr.o]: -__error U -free U -hid_dispose_report_desc T 0000000000000000 0000000000000005 -hid_get_report_desc T 0000000000000080 0000000000000040 -hid_use_report_desc T 0000000000000010 000000000000006e -ioctl U -malloc U -memcpy U diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-file-name.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-file-name.txt deleted file mode 100644 index 0dd3e5a3..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-file-name.txt +++ /dev/null @@ -1,46 +0,0 @@ -test_ar:data.o:0000000000000000 T hid_get_data -test_ar:data.o:0000000000000128 T hid_set_data -test_ar:usage.o: U _CurrentRuneLocale -test_ar:usage.o: U __mb_sb_limit -test_ar:usage.o:0000000000000100 b b.3186 -test_ar:usage.o:0000000000000000 b b.3204 -test_ar:usage.o: U err -test_ar:usage.o: U errx -test_ar:usage.o: U fclose -test_ar:usage.o: U fgets -test_ar:usage.o: U fmtcheck -test_ar:usage.o: U fopen -test_ar:usage.o:0000000000000704 T hid_init -test_ar:usage.o:0000000000000000 T hid_parse_usage_in_page -test_ar:usage.o:0000000000000240 T hid_parse_usage_page -test_ar:usage.o:0000000000000368 T hid_usage_in_page -test_ar:usage.o:0000000000000576 T hid_usage_page -test_ar:usage.o: U malloc -test_ar:usage.o:0000000000000120 b npages -test_ar:usage.o:0000000000000124 b npagesmax -test_ar:usage.o:0000000000000112 b pages -test_ar:usage.o: U realloc -test_ar:usage.o: U sprintf -test_ar:usage.o: U sscanf -test_ar:usage.o: U strchr -test_ar:usage.o: U strcmp -test_ar:usage.o: U strdup -test_ar:usage.o: U strncmp -test_ar:parse.o: U free -test_ar:parse.o:0000000000000000 t hid_clear_local -test_ar:parse.o:0000000000001744 T hid_end_parse -test_ar:parse.o:0000000000000224 T hid_get_item -test_ar:parse.o:0000000000001808 T hid_locate -test_ar:parse.o:0000000000001952 T hid_report_size -test_ar:parse.o:0000000000000080 T hid_start_parse -test_ar:parse.o: U malloc -test_ar:parse.o: U memcpy -test_ar:parse.o: U memset -test_ar:descr.o: U __error -test_ar:descr.o: U free -test_ar:descr.o:0000000000000000 T hid_dispose_report_desc -test_ar:descr.o:0000000000000128 T hid_get_report_desc -test_ar:descr.o:0000000000000016 T hid_use_report_desc -test_ar:descr.o: U ioctl -test_ar:descr.o: U malloc -test_ar:descr.o: U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-size.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-size.txt deleted file mode 100644 index 811ca3b2..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-print-size.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 0000000000000127 T hid_get_data -0000000000000128 0000000000000118 T hid_set_data - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit -0000000000000100 0000000000000010 b b.3186 -0000000000000000 0000000000000100 b b.3204 - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen -0000000000000704 0000000000000872 T hid_init -0000000000000000 0000000000000227 T hid_parse_usage_in_page -0000000000000240 0000000000000121 T hid_parse_usage_page -0000000000000368 0000000000000197 T hid_usage_in_page -0000000000000576 0000000000000123 T hid_usage_page - U malloc -0000000000000120 0000000000000004 b npages -0000000000000124 0000000000000004 b npagesmax -0000000000000112 0000000000000008 b pages - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp - -parse.o: - U free -0000000000000000 0000000000000071 t hid_clear_local -0000000000001744 0000000000000061 T hid_end_parse -0000000000000224 0000000000001510 T hid_get_item -0000000000001808 0000000000000129 T hid_locate -0000000000001952 0000000000000143 T hid_report_size -0000000000000080 0000000000000133 T hid_start_parse - U malloc - U memcpy - U memset - -descr.o: - U __error - U free -0000000000000000 0000000000000005 T hid_dispose_report_desc -0000000000000128 0000000000000064 T hid_get_report_desc -0000000000000016 0000000000000110 T hid_use_report_desc - U ioctl - U malloc - U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt deleted file mode 100644 index 7b0fc51c..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000080 T hid_set_data - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit -0000000000000064 b b.3186 -0000000000000000 b b.3204 - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen -00000000000002c0 T hid_init -0000000000000000 T hid_parse_usage_in_page -00000000000000f0 T hid_parse_usage_page -0000000000000170 T hid_usage_in_page -0000000000000240 T hid_usage_page - U malloc -0000000000000078 b npages -000000000000007c b npagesmax -0000000000000070 b pages - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp - -parse.o: - U free -0000000000000000 t hid_clear_local -00000000000006d0 T hid_end_parse -00000000000000e0 T hid_get_item -0000000000000710 T hid_locate -00000000000007a0 T hid_report_size -0000000000000050 T hid_start_parse - U malloc - U memcpy - U memset - -descr.o: - U __error - U free -0000000000000000 T hid_dispose_report_desc -0000000000000080 T hid_get_report_desc -0000000000000010 T hid_use_report_desc - U ioctl - U malloc - U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-octal.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-octal.txt deleted file mode 100644 index 135ae432..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-radix-octal.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000200 T hid_set_data - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit -0000000000000144 b b.3186 -0000000000000000 b b.3204 - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen -0000000000001300 T hid_init -0000000000000000 T hid_parse_usage_in_page -0000000000000360 T hid_parse_usage_page -0000000000000560 T hid_usage_in_page -0000000000001100 T hid_usage_page - U malloc -0000000000000170 b npages -0000000000000174 b npagesmax -0000000000000160 b pages - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp - -parse.o: - U free -0000000000000000 t hid_clear_local -0000000000003320 T hid_end_parse -0000000000000340 T hid_get_item -0000000000003420 T hid_locate -0000000000003640 T hid_report_size -0000000000000120 T hid_start_parse - U malloc - U memcpy - U memset - -descr.o: - U __error - U free -0000000000000000 T hid_dispose_report_desc -0000000000000200 T hid_get_report_desc -0000000000000020 T hid_use_report_desc - U ioctl - U malloc - U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-size-sort.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-size-sort.txt deleted file mode 100644 index 62030c5f..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-size-sort.txt +++ /dev/null @@ -1,29 +0,0 @@ - -data.o: -0000000000000118 T hid_set_data -0000000000000127 T hid_get_data - -usage.o: -0000000000000004 b npages -0000000000000004 b npagesmax -0000000000000008 b pages -0000000000000010 b b.3186 -0000000000000100 b b.3204 -0000000000000121 T hid_parse_usage_page -0000000000000123 T hid_usage_page -0000000000000197 T hid_usage_in_page -0000000000000227 T hid_parse_usage_in_page -0000000000000872 T hid_init - -parse.o: -0000000000000061 T hid_end_parse -0000000000000071 t hid_clear_local -0000000000000129 T hid_locate -0000000000000133 T hid_start_parse -0000000000000143 T hid_report_size -0000000000001510 T hid_get_item - -descr.o: -0000000000000005 T hid_dispose_report_desc -0000000000000064 T hid_get_report_desc -0000000000000110 T hid_use_report_desc diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-no.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-no.txt deleted file mode 100644 index f7024a09..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-no.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000128 T hid_set_data - -usage.o: -0000000000000120 b npages -0000000000000112 b pages -0000000000000000 b b.3204 -0000000000000100 b b.3186 -0000000000000124 b npagesmax -0000000000000000 T hid_parse_usage_in_page - U strchr - U strncmp - U strcmp -0000000000000240 T hid_parse_usage_page - U errx -0000000000000368 T hid_usage_in_page - U sprintf - U fmtcheck -0000000000000576 T hid_usage_page -0000000000000704 T hid_init - U fopen - U fgets - U __mb_sb_limit - U _CurrentRuneLocale - U sscanf - U strdup - U realloc - U malloc - U err - U fclose - -parse.o: -0000000000000000 t hid_clear_local -0000000000000080 T hid_start_parse - U malloc - U memset -0000000000000224 T hid_get_item - U memcpy - U free -0000000000001744 T hid_end_parse -0000000000001808 T hid_locate -0000000000001952 T hid_report_size - -descr.o: -0000000000000000 T hid_dispose_report_desc - U free -0000000000000016 T hid_use_report_desc - U malloc - U memcpy - U __error -0000000000000128 T hid_get_report_desc - U ioctl diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-num.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-num.txt deleted file mode 100644 index b1f6da65..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-num.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000128 T hid_set_data - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen - U malloc - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp -0000000000000000 b b.3204 -0000000000000000 T hid_parse_usage_in_page -0000000000000100 b b.3186 -0000000000000112 b pages -0000000000000120 b npages -0000000000000124 b npagesmax -0000000000000240 T hid_parse_usage_page -0000000000000368 T hid_usage_in_page -0000000000000576 T hid_usage_page -0000000000000704 T hid_init - -parse.o: - U free - U malloc - U memcpy - U memset -0000000000000000 t hid_clear_local -0000000000000080 T hid_start_parse -0000000000000224 T hid_get_item -0000000000001744 T hid_end_parse -0000000000001808 T hid_locate -0000000000001952 T hid_report_size - -descr.o: - U __error - U free - U ioctl - U malloc - U memcpy -0000000000000000 T hid_dispose_report_desc -0000000000000016 T hid_use_report_desc -0000000000000128 T hid_get_report_desc diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt deleted file mode 100644 index f7024a09..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000000 T hid_get_data -0000000000000128 T hid_set_data - -usage.o: -0000000000000120 b npages -0000000000000112 b pages -0000000000000000 b b.3204 -0000000000000100 b b.3186 -0000000000000124 b npagesmax -0000000000000000 T hid_parse_usage_in_page - U strchr - U strncmp - U strcmp -0000000000000240 T hid_parse_usage_page - U errx -0000000000000368 T hid_usage_in_page - U sprintf - U fmtcheck -0000000000000576 T hid_usage_page -0000000000000704 T hid_init - U fopen - U fgets - U __mb_sb_limit - U _CurrentRuneLocale - U sscanf - U strdup - U realloc - U malloc - U err - U fclose - -parse.o: -0000000000000000 t hid_clear_local -0000000000000080 T hid_start_parse - U malloc - U memset -0000000000000224 T hid_get_item - U memcpy - U free -0000000000001744 T hid_end_parse -0000000000001808 T hid_locate -0000000000001952 T hid_report_size - -descr.o: -0000000000000000 T hid_dispose_report_desc - U free -0000000000000016 T hid_use_report_desc - U malloc - U memcpy - U __error -0000000000000128 T hid_get_report_desc - U ioctl diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt deleted file mode 100644 index b939feee..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000128 T hid_set_data -0000000000000000 T hid_get_data - -usage.o: -0000000000000704 T hid_init -0000000000000576 T hid_usage_page -0000000000000368 T hid_usage_in_page -0000000000000240 T hid_parse_usage_page -0000000000000124 b npagesmax -0000000000000120 b npages -0000000000000112 b pages -0000000000000100 b b.3186 -0000000000000000 T hid_parse_usage_in_page -0000000000000000 b b.3204 - U strncmp - U strdup - U strcmp - U strchr - U sscanf - U sprintf - U realloc - U malloc - U fopen - U fmtcheck - U fgets - U fclose - U errx - U err - U __mb_sb_limit - U _CurrentRuneLocale - -parse.o: -0000000000001952 T hid_report_size -0000000000001808 T hid_locate -0000000000001744 T hid_end_parse -0000000000000224 T hid_get_item -0000000000000080 T hid_start_parse -0000000000000000 t hid_clear_local - U memset - U memcpy - U malloc - U free - -descr.o: -0000000000000128 T hid_get_report_desc -0000000000000016 T hid_use_report_desc -0000000000000000 T hid_dispose_report_desc - U memcpy - U malloc - U ioctl - U free - U __error diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt deleted file mode 100644 index 6cf9cc72..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt +++ /dev/null @@ -1,29 +0,0 @@ - -data.o: -0000000000000127 T hid_get_data -0000000000000118 T hid_set_data - -usage.o: -0000000000000872 T hid_init -0000000000000227 T hid_parse_usage_in_page -0000000000000197 T hid_usage_in_page -0000000000000123 T hid_usage_page -0000000000000121 T hid_parse_usage_page -0000000000000100 b b.3204 -0000000000000010 b b.3186 -0000000000000008 b pages -0000000000000004 b npagesmax -0000000000000004 b npages - -parse.o: -0000000000001510 T hid_get_item -0000000000000143 T hid_report_size -0000000000000133 T hid_start_parse -0000000000000129 T hid_locate -0000000000000071 t hid_clear_local -0000000000000061 T hid_end_parse - -descr.o: -0000000000000110 T hid_use_report_desc -0000000000000064 T hid_get_report_desc -0000000000000005 T hid_dispose_report_desc diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt deleted file mode 100644 index 77d46315..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt +++ /dev/null @@ -1,54 +0,0 @@ - -data.o: -0000000000000128 T hid_set_data -0000000000000000 T hid_get_data - -usage.o: - U strncmp - U strdup - U strcmp - U strchr - U sscanf - U sprintf - U realloc -0000000000000112 b pages -0000000000000124 b npagesmax -0000000000000120 b npages - U malloc -0000000000000576 T hid_usage_page -0000000000000368 T hid_usage_in_page -0000000000000240 T hid_parse_usage_page -0000000000000000 T hid_parse_usage_in_page -0000000000000704 T hid_init - U fopen - U fmtcheck - U fgets - U fclose - U errx - U err -0000000000000000 b b.3204 -0000000000000100 b b.3186 - U __mb_sb_limit - U _CurrentRuneLocale - -parse.o: - U memset - U memcpy - U malloc -0000000000000080 T hid_start_parse -0000000000001952 T hid_report_size -0000000000001808 T hid_locate -0000000000000224 T hid_get_item -0000000000001744 T hid_end_parse -0000000000000000 t hid_clear_local - U free - -descr.o: - U memcpy - U malloc - U ioctl -0000000000000016 T hid_use_report_desc -0000000000000128 T hid_get_report_desc -0000000000000000 T hid_dispose_report_desc - U free - U __error diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sysv.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sysv.txt deleted file mode 100644 index f5cebe90..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-sysv.txt +++ /dev/null @@ -1,70 +0,0 @@ - - -Symbols from test_ar[data.o]: - -Name Value Class Type Size Line Section - -hid_get_data |0000000000000000| T | FUNC|0000000000000127| |.text -hid_set_data |0000000000000128| T | FUNC|0000000000000118| |.text - - -Symbols from test_ar[usage.o]: - -Name Value Class Type Size Line Section - -_CurrentRuneLocale | | U | NOTYPE| | |*UND* -__mb_sb_limit | | U | NOTYPE| | |*UND* -b.3186 |0000000000000100| b | OBJECT|0000000000000010| |.bss -b.3204 |0000000000000000| b | OBJECT|0000000000000100| |.bss -err | | U | NOTYPE| | |*UND* -errx | | U | NOTYPE| | |*UND* -fclose | | U | NOTYPE| | |*UND* -fgets | | U | NOTYPE| | |*UND* -fmtcheck | | U | NOTYPE| | |*UND* -fopen | | U | NOTYPE| | |*UND* -hid_init |0000000000000704| T | FUNC|0000000000000872| |.text -hid_parse_usage_in_page|0000000000000000| T | FUNC|0000000000000227| |.text -hid_parse_usage_page|0000000000000240| T | FUNC|0000000000000121| |.text -hid_usage_in_page |0000000000000368| T | FUNC|0000000000000197| |.text -hid_usage_page |0000000000000576| T | FUNC|0000000000000123| |.text -malloc | | U | NOTYPE| | |*UND* -npages |0000000000000120| b | OBJECT|0000000000000004| |.bss -npagesmax |0000000000000124| b | OBJECT|0000000000000004| |.bss -pages |0000000000000112| b | OBJECT|0000000000000008| |.bss -realloc | | U | NOTYPE| | |*UND* -sprintf | | U | NOTYPE| | |*UND* -sscanf | | U | NOTYPE| | |*UND* -strchr | | U | NOTYPE| | |*UND* -strcmp | | U | NOTYPE| | |*UND* -strdup | | U | NOTYPE| | |*UND* -strncmp | | U | NOTYPE| | |*UND* - - -Symbols from test_ar[parse.o]: - -Name Value Class Type Size Line Section - -free | | U | NOTYPE| | |*UND* -hid_clear_local |0000000000000000| t | FUNC|0000000000000071| |.text -hid_end_parse |0000000000001744| T | FUNC|0000000000000061| |.text -hid_get_item |0000000000000224| T | FUNC|0000000000001510| |.text -hid_locate |0000000000001808| T | FUNC|0000000000000129| |.text -hid_report_size |0000000000001952| T | FUNC|0000000000000143| |.text -hid_start_parse |0000000000000080| T | FUNC|0000000000000133| |.text -malloc | | U | NOTYPE| | |*UND* -memcpy | | U | NOTYPE| | |*UND* -memset | | U | NOTYPE| | |*UND* - - -Symbols from test_ar[descr.o]: - -Name Value Class Type Size Line Section - -__error | | U | NOTYPE| | |*UND* -free | | U | NOTYPE| | |*UND* -hid_dispose_report_desc|0000000000000000| T | FUNC|0000000000000005| |.text -hid_get_report_desc |0000000000000128| T | FUNC|0000000000000064| |.text -hid_use_report_desc |0000000000000016| T | FUNC|0000000000000110| |.text -ioctl | | U | NOTYPE| | |*UND* -malloc | | U | NOTYPE| | |*UND* -memcpy | | U | NOTYPE| | |*UND* diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-undef.txt b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-undef.txt deleted file mode 100644 index 3f1c6022..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar-undef.txt +++ /dev/null @@ -1,33 +0,0 @@ - -data.o: - -usage.o: - U _CurrentRuneLocale - U __mb_sb_limit - U err - U errx - U fclose - U fgets - U fmtcheck - U fopen - U malloc - U realloc - U sprintf - U sscanf - U strchr - U strcmp - U strdup - U strncmp - -parse.o: - U free - U malloc - U memcpy - U memset - -descr.o: - U __error - U free - U ioctl - U malloc - U memcpy diff --git a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar.uu b/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar.uu deleted file mode 100644 index d92e8e9f..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_archive1/test_ar.uu +++ /dev/null @@ -1,356 +0,0 @@ -begin 644 test_ar -M(3QA@```'H``` -M!Z````>@```'H```'Y0``!^4```?E```'Y0``!^4```V&```-A@``#88:&ED -M7V=E=%]D871A`&AI9%]S971?9&%T80!H:61?<&%RF4` -M:&ED7V1I'$4QP$2+5F!%A=MT64.-!!-$B=+!Z@/!Z`.)P2G1>#]( -M8\)$C4D!2(T4!S'_#[8"C0S]`````/_'2/_"T^!!"X -M`0```-/@1(G10=/X_\A!(<"+1@2%P'@$1(G`P[D@````1"G90=/@0=/X1(G` -MPY!$BTY@BW8@#0=/@0=/BP>H#B<%!]]`IT7@N2&/"1(U)`4B--`E(``7@0`0,,!PB0`0``%````!P````````` -M?P``````````````%````#0`````````=@```````````````"YS>6UT86(` -M+G-T'0`+F1A=&$`+F)S[K#V9F9I#_ -MPTF#Q"!$.?MTK$F+/"1,B?)(B>[H`````(7`=>)-C74!18ML)!A%A>U^BTF+ -M7"00,>WK#__%2(/#$$0Y[0^$<____TB+.TR)]N@`````A`0 -M"T,(Z5G___]F9F:09F:09F:09F:0055)B?U!5%532(/L"$B+!0````!(A[H```` -M`(7`=>:+0PA(@\0(6UU!7$%=PTB#Q`BX_____UM=05Q!7<.^`````+\!```` -M,<#H`````&9F9I!F9I!$BPT`````4P^WWT6%R7XO2(LU`````,'O$#')NB`` -M```Y?@AU$NLTBT0R"$R-!!9(@\(@.?AT(?_!1#G)=>F)VKX`````OP`````Q -MP.@`````6[@`````PTR)QHM^&(7_?MQ(BT80BU`(@_K_="PYVG1-2(U0$#'V -MZQAF9I!FD(M*"$B)T(/Y_W002(/"$#G9="W_QCG^=>?KI$B+.+X`````Z``` -M``")VDB)QK\`````,<#H`````%NX`````,-;2(L`PV9F9I!F9F:09F:02(/L -M"$B+-0````!(A?9T6D2+!0````!%A?H`````/_(#X6"`0``QX0D[``` -M`/____\/ME0D$(32=$F+-0````!(BST`````3(GYZQQF9I!FD$B8]D3'04!T -M&0^V40'&`5](_\&$TG0;#[["A&`[!0````!]6$ACT$B+!0`` -M``#V1-!!0'1'2(7;#X0I`0``BT,<.4,8#XUN`0``2&-#&$B+4Q!!_\9(P>`$ -M2(DL$$AC0QB+E"3L````2(M+$$C!X`2)5`@(_T,8Z8[^__^+!0`````Y!0`` -M``!\.DB+/0````!(A?\/A.8```"-<`6)-0````!(8_9(P>8%Z`````!(B04` -M````2(,]```````/A#?H```` -M`(/X`@^$9O[__TB-E"3L````,05_#C7`*2(M[$(ES -M'$AC]DC!Y@3H`````$B%P$B)0Q`/A6_^__^^`````+\!````Z`````"^```` -M`+\!````,<#H`````+X`````OP$````QP.@`````2(M4)`B^`````+\!```` -M,<#H```````````````````````````````````````D1G)E94)31#H@"ET` -M(#!X)7@@)5M>"ET`("5D("5;7@I=`'-T6YT87@@97)R;W(``!0``````````7I2``%X$`$##`<( -MD`$``"0````<`````````.,`````68P%@P>-!(8&40Y`CP*.`P`````````D -M````1`````````!Y`````$(.$(T"10X800X@00XH1`XP@P6&!(P#%````&P` -M````````Q0````!(#A"#`@``%````(0`````````>P````!$#A``````-``` -M`)P`````````:`,```!"#A!,#AA"#B!"#BA!#C!!#CA'#K`"@P>&!HP%C02. -M`X\"````````+G-Y;71A8@`N``````````+````"`````@`````````&``````````1`````P`````````` -M``````````````!8"````````&<````````````````````!```````````` -M`````````0````(```````````````````````````P```````!(`P`````` -M``P````.````"``````````8``````````D````#```````````````````` -M`````$@/````````!@$```````````````````$````````````````````` -M```````````````````````````````!````!`#Q_P`````````````````` -M`````````P`!`````````````````````````````P`#```````````````` -M`````````````P`$```````````````````````)`````0`$`'@````````` -M!``````````0`````0`$`'``````````"````````````````P`&```````` -M```````````````6`````0`$````````````9``````````=`````0`$`&0` -M````````"@```````````````P`'```````````````````````D`````0`$ -M`'P`````````!````````````````P`(```````````````````````````` -M`P`%```````````````````````N````$@`!````````````XP````````!& -M````$`````````````````````````!-````$``````````````````````` -M``!5````$`````````````````````````!<````$@`!`/``````````>0`` -M``````!Q````$`````````````````````````!V````$@`!`'`!```````` -MQ0````````"(````$`````````````````````````"0````$``````````` -M``````````````"9````$@`!`$`"````````>P````````"H````$@`!`,`" -M````````:`,```````"Q````$`````````````````````````"W````$``` -M``````````````````````"]````$`````````````````````````#+```` -M$`````````````````````````#>````$`````````````````````````#E -M````$`````````````````````````#L````$``````````````````````` -M``#T````$`````````````````````````#[````$``````````````````` -M``````#_````$```````````````````````````=7-A9V4N8P!N<&%G97,` -M<&%G97,`8BXS,C`T`&(N,S$X-@!N<&%G97-M87@`:&ED7W!A`@````````H````$```````````````E`@````````(````5```` -M_/________\K`@````````H````$``````````````!'`@````````(````$ -M````;`````````!3`@````````(````$````=`````````"(`@````````H` -M```'````$`````````"-`@````````H````$````9`````````"4`@`````` -M``(````5````_/________^9`@````````H````$````9`````````"K`@`` -M``````H````'``````````````"W`@````````(````3````_/_________# -M`@````````H````*``````````````#(`@````````H````'````%P`````` -M``#K`@````````(````9````_/________\<`P````````(````:````_/__ -M______](`P````````(````;````_/________]3`P````````(````<```` -M_/________^1`P````````H````'````'`````````"9`P````````(````= -M````_/________^[`P````````(````;````_/_________"`P````````(` -M```<````_/________\&!`````````(````>````_/________\D!``````` -M``(````;````_/________\P!`````````(````<````_/________^$!``` -M``````(````$````>`````````"*!`````````(````$````=`````````"3 -M!`````````(````$````;`````````"E!`````````(````$````>``````` -M``"Q!`````````(````?````_/________^X!`````````(````$````;``` -M``````"_!`````````(````$````:P````````#,!`````````(````$```` -M=`````````#A!`````````(````$````;`````````#G!`````````(````$ -M````=``````````'!0````````(````@````_/________\9!0````````H` -M```'````4``````````C!0````````(````A````_/________\U!0`````` -M``H````'````)0`````````]!0````````(````=````_/________]8!0`` -M``````H````'````,0````````!@!0````````(````=````_/________]V -M!0````````H````*````(`````````""!0````````(````3````_/______ -M__^+!0````````(````$````=`````````"4!0````````(````@````_/__ -M______^;!0````````(````$````;`````````"H!0````````(````B```` -M_/_________0!0````````(````?````_/_________B!0````````H````' -M````0@````````#L!0````````(````A````_/_________Q!0````````H` -M```'````.P````````#]!0````````(````A````_/________\"!@`````` -M``H````'````2@`````````.!@````````(````A````_/________\8!@`` -M``````H````'````&0`````````D!@````````(````A````_/________\@ -M``````````H````"``````````````!(``````````H````"````\``````` -M``!P``````````H````"````<`$```````"(``````````H````"````0`(` -M``````"@``````````H````"````P`(```````!P87)S92YO+R`@("`@("`@ -M,3(P.#@T,#`W-B`@,"`@("`@,"`@("`@,3`P-C0T("`U-S`T("`@("`@8`I_ -M14Q&`@$!"0```````````0`^``$`````````````````````````(`L````` -M````````0```````0``-``H`QT%*`(` -M``````!,B>_'A1@"````````Z)/^__]F9I!(BU402#M5"`^#X`$```^V`DB- -M<@$\_@^$DP````^VT(G1@^$#@_D#B<@/A-4```!!B=2)UTB-!`9!P>P"P>\$ -M08/D`X/Y`4B)11`/A(8```!S,S'208/\`0^$A0```)`/@XP```"-1_B#^`0/ -MANL```"X_O___TB#Q'A;74%<05U!7D%?PX/Y`@^$M````(/Y!`^$B````$B# -MQ'BX_____UM=05Q!74%>05_#9F9FD`^V2@(/MD(!2(UR!`^V>@/!X0@)P8G( -M2`'P@_D!2(E%$`^%>O___T&#_`$/MA8/A7O___^#_PMV:[C]____9I#KA4&# -M_`)T&;C[____9F:0Z7+___^Q!+@$````Z1____^#_PIV4+C\____Z5?___\/ -MME8!#[8&P>(("<(/MD8"P>`0"<(/MD8#P>`8"<+I$O___P^V5@$/M@;!X@@) -MPND!____B?C_),4`````B<#_),4`````B?C_),4`````@+VH`@````^$#0$` -M`+IP````3(G^3(GWZ`````"+13A!B48@QH6H`@```(N5,`(``$$Y5B"X`0`` -M``^$R/[____"#X79_?__Z;O^__^^`@```+D"````BX4L`@``T_BH`0^%=`(` -M`$B+51!(.U4(QX48`@````````^"(/[__S'`Z8+^____16R)56A,B>ZZ<``` -M`$B)Y\=%<`,```#H`````$R)[XM<)"#HC^__^)T8N5 -M&`(```M-&(/Z8XE-0`^/-_W__TACPHF,A8@```"-0@&)A1@"``#I'_W__PM5 -M&,>%'`(```$```")543I"OW__PM5&(E52.G__/__B55,Z??\__^)55#I[_S_ -M_XE55.GG_/__B5589F9FD.G;_/__B55%L`(````` -M``#'A:P"````````Z87\__^)51R)C2`"``#I=_S__XE5(.EO_/__B54\Z6?\ -M__^_<````&:0Z`````"Z<````$B)PTR)[DB)Q^@`````2(F=@````.D\_/__ -MP>(0B548Z3'\__](BYV`````3(GONG````!(B=[H`````$B)W^@`````Z0W\ -M__^+A1@"``!,B>Y,B??_R#G"#T["_X4D`@``NG````!(F(N$A8@```")14#H -M`````(M%<(M5<(N$A:P"``!!B49@BT4T`825K`(``$G'1F@`````Z5#]__^) -M572#X@*)=7`/A)\```"+E1P"``"+13S'A20"````````QT4\`0```(72B84H -M`@``#X02^___BTU$.TU(?R6+E1@"``!(8\*#^F*)C(6(````?PF-0@&)A1@" -M``#_P3E-2'W;QT5$`````,=%2`````#'A1P"````````ZZ -M<````.@`````08E>(+IP````2(GF3(G_B5PD(.@`````Z:+\__^+A1P"``"% -MP'0&BT5$B45`NG````!,B>Y,B??H`````(M%<$G'1F@`````3(GOBU5PBX2% -MK`(``$&)1F"+13P/KT4T`825K`(``.A)^?__QX4<`@```````.E$_/__9F9F -MD&9FD&9FD%5(B?U32(/L"$B+OX````!(A?]U!>L82(G?2(M?:.@`````2(7; -M2(F=@````'7H2(/$"$B)[UM=Z0````!F9I!!54&)];X!````051!B=1$B<)5 -M4TB)RT2)X=/F2(/L".@`````2(G%2(G>2(GOZ`````"%P'0N1#EC6'7K]D-< -M`77E1#EK*'7?2(GO9F9FD.@`````2(/$"+@!````6UU!7$%=PTB)[^@````` -MQT,<`````$B#Q`@QP%M=05Q!7<-F9F:09F9FD&9F9I!F9I!!5T%6055%,>U! -M5$&)]#'V18GG58G5NG````!32(G[2(/L>$B)Y^@`````1(GAO@$```!(B=_3 -MYHGJZ`````!(B<-(B>9(B=_H`````(7`=!M$.60D6'7D1HNLNZP" -M``#KVDB)W^@`````08U5#D2)Z(/`!P](PDB#Q'A;74%<05U!7D%?P?@#PP`` -M)$9R965"4T0Z('-R8R]L:6(O;&EB=7-B:&ED+W!A"!%>'`@)`!'0T,Z("A'3E4I(#0N,BXQ -M(#(P,#!`!`PP'")`!```4 -M````'`````````!'```````````````<````-`````````"%`````$J,!(,% -M5@XPC@*-`P```#0```!4`````````.8%````0@X0CP))#AB.`T4.((T$1@XH -M00XPA@:,!40..$0.L`&#!P``````'````(P`````````/0````!!#A"&`D0. -M&$0.((,#```D````K`````````"!`````$(.$(T"2@X8C`-'#B!!#BB#!88$ -M3`XP-````-0`````````CP````!"#A!"#AA"#B"-!(X#CP)%#BB,!4D.,(8& -M2`XX@P='#K`!````````+G-Y;71A8@`N0<````````"````#P```/S_________QP<` -M```````"````"P```/S_________VP<````````"````"0```/S_________ -MZ0<````````"````#````/S_________#`@````````"````#P```/S_____ -M____"0<````````"````#@```/S_________```````````!`````@```#0% -M````````"``````````!`````@```.L$````````$``````````!`````@`` -M`/D$````````&``````````!`````@```-T#````````(``````````!```` -M`@```-T#````````*``````````!`````@```*T$````````,``````````! -M`````@```+4$````````.``````````!`````@```+T$````````0``````` -M```!`````@```,4$````````2``````````!`````@````$%````````4``` -M```````!`````@````D%````````6``````````!`````@```#\%```````` -M8``````````!`````@```-0#````````:``````````!`````@```,4#```` -M````<``````````!`````@```&4#````````>``````````!`````@```"P# -M````````@``````````!`````@```-\"````````B``````````!`````@`` -M`"($````````D``````````!`````@```%$$````````F``````````!```` -M`@```&8$````````H``````````!`````@```'$$````````J``````````! -M`````@```'D$````````L``````````!`````@```($$````````N``````` -M```!`````@```(8"````````P``````````!`````@```(D$````````R``` -M```````!`````@```)4$````````T``````````!`````@```)T$```````` -MV``````````!`````@```*4$````````(``````````*`````@`````````` -M````.``````````*`````@```%``````````6``````````*`````@```.`` -M````````D``````````*`````@```-`&````````L``````````*`````@`` -M`!`'````````V``````````*`````@```*`'````````9&5S8W(N;R\@("`@ -M("`@(#$R,#@X-#`P-S8@(#`@("`@(#`@("`@(#$P,#8T-"`@,3DU,B`@("`@ -M(&`*?T5,1@(!`0D```````````$`/@`!`````````````````````````#`" -M`````````````$```````$``"P`(`.D`````9F9FD&9F9I!F9I!,B60D\$&) -M]$R);"3X28G]28U\)`A(B6PDZ$B)7"3@2(/L*(GUZ`````!(A`2) -M*$R)XDR)[DB)P^@`````2(G82(ML)!!(BUPD"$R+9"083(ML)"!(@\0HPS'; -MZ`````#'``P```#KU6:04S'`OA55!$1(@>P0!```2(GBQP0D`````.@````` -M,=*%P'@0BS0D2(U\)`3H`````$B)PDB!Q!`$``!(B=!;PP`D1G)E94)31#H@ -M!`!`PP'")`!```4````'``````` -M```%```````````````<````-`````````!N`````$6,`TB-`E8.,(,%A@0` -M`!P```!4`````````$``````00X03@Z@"(,"`````````"YS>6UT86(`+G-T -M7-C=&Q? -M;6%L;&]C`&UE;7-T871?71E0!M96US=&%T7VUT;%]F"2)WDB)[^@`````,=*%P'@42(M<)`A( -MBVPD$(G02(/$&,-F9I"Z_____^OE`!0``````````7I2``%X$`$##`<(D`$` -M`!0````<`````````$<`````3@X@A@*#`Q0````T`````````$<`````3@X@ -MA@*#`P!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(`+G-T7-C=&Q?=6UA```` -M%0`````````"````"````/S_________)``````````"````"0```/S_____ -M____9``````````"````"P```/S_________<@`````````"````#````/S_ -M________(``````````*`````@``````````````.``````````*`````@`` -M`%``````````;65M`#6\-F9I!F9I!F9I!!5TF)_T%628GVO@````!!54%455-(@>SX -M`0``2(L'3(GW2(E$)`CH`````(7`#X6/!```@#T``````'0*2(,]``````!U -M'T''1P@'````N/____](@<3X`0``6UU!7$%=05Y!7\-(C90D[`$``$4QP+D$ -M````O@$```!,B??H#?___X7`#X7E`P``2(V4).`!``!%,<`Q]KD(````3(GW -MZ.O^__^%P`^%PP,``$B-E"3H`0``13'`N00```"^`@```$R)]^C&_O__A<`/ -MA9X#``"+O"3L`0``_\=(8_](P><%Z`````!(A_[_ -M_X7`B<,/A=8"``"+C"3L`0``2(M4)!!!N'@```!(BW0D&$R)]__!2&/)2,'A -M!>A)_O__A<")PP^%I`(``$R+I"0``0``,=MF9I!FD$B-K"2@`0``2HTT([D! -M````3(GW2`'=2(GJZ`````!(A<`/B&@"``!(_\@/A9@"``"`?0``=!:-0P%( -M_\-(@_L@=;U(F,:$!)\!````2(-\)`@`#X2%`@``2(V4)*`!``"^`@```$R) -M_^@`````2(7`2(G##X1D`@``2(G?Z`````!(BX0D6`$``$B)0UA(BX0D8`$` -M`$B)0V!(BX0D:`$``$B)@X````#VA"3S````(`^%T@```(N$).P!``#_P(7` -M#X[!````2(ML)!!%,>2X`0```$2)X=/@A80DZ`$```^$B0```$B+11!(`4-8 -M2(M%&$@!0V!(BW4(2(7V=#!(C90DP`$``$4QP+D8````3(GWZ!C]__^%P$&) -MQ0^%$@(``$@/OX0DT`$``$@!0WA(BW4`2(7V=#=(C90DP`$``$4QP+D8```` -M3(GWZ-_\__^%P$&)Q0^%V0$``$@/OX0DT`$``$@!0WAF9F:09F:0BX0D[`$` -M`$'_Q$B#Q2#_P$0YX`^/1____XN$)*````!(B4-`2(G"2`^O0V!(#Z]36$B) -M0U!(B5-(2"G"2(E3:&:#O"3J`````0^&E@$```^WC"3L````B[0DJ````#'2 -MB?#W\8G!2(E+*$B+0T!(#Z]#*$B)0S!(BT-82"M#8$B)0W!(B[0D*`$``$B% -M]G0U2(V4),`!``!%,<"Y&````$R)]^@8_/__2`^_A"30`0``2`&#B`$``$B+ -MM"3``0``2(7V=S\__](BWPD$.@````` -M,<#I*?S__V9FD&:0NP8```!(BWPD$.@`````3(G_Z`````"X_____T&)7PCI -M__O__XN$))P```!(`4-X2(F#D`$``.N"NP@```#KQ4&)1PBX_____^G6^___ -M2(V4)*`!``"^`@```$R)_^@`````2(7`2(G##X5[_?__2(M\)!#H`````$R) -M_^@`````N/____]!QT<(`0```.F1^___N/____]!QT<(!@```.E_^___2(M\ -M)!#H`````$R)_^@`````N/____]%B6\(Z5_[__\/MX0D[`````^OA"2H```` -M2(E#*.EL_O__9I!!5T%628G^055!5%532(/L&$B+!TB-7"0(2(UL)!!,C60D -M%$B)!"3IL@```&9F9I!(@WPD"`0/A?P```"#?"00(`^/50$``$4QP#')2(G: -M3(GFOP````!(QT0D"`0```#H`````(7`#XA+`0``2(-\)`@$#X6_````2&-\ -M)!!(8T0D%$C!YP9(@\=X2`^O^$B#QWA(B7PD".@`````2(7`28G%#X37```` -M13'`,05_#3(GBO@(```!, -MB??H`````$B%P$B)PP^%[0```$R)]^@`````3(GOZ`````!!QT8(`0```$B# -MQ!BX_____UM=05Q!74%>05_#0<=&"`0```!(@\08N/____];74%<05U!7D%? -MP^@`````@S@-#X16____Z`````"#.`%FD`^$1O___[C_____0<=&"`(```#I -M7?___TB+1"0(2(7`#X1<`0``2(/X#P^&J`$``$&#?0`!#X6=`0``08M%!(/X -M(`^'J@$``(E$)!!!BT4(A<")1"04#XXF`0``28UM$$4Q_TB#/"0`28GL#X03 -M____2(GJO@(```!,B??H`````$B%P$B)PP^$]_[__TB)WTB#Q7CH`````$F+ -M1"1(2(E#6$F+1"102(E#8$F+1"182(F#@````(M$)!"%P'XV,=)(@\5`2(M% -MT$B)A-.8)@``2(M%T$@!0WA(BT7`2`%#6$B+1$B)@Y`!``!(BX.(`0``2`%#>$'_QT0Y?"04 -M#X_A_O__3(GOZ``````QP.GD_?__Z`````"#.`UT&69FD&:0Z`````"#.`%T -M"D''1@@"````ZPA!QT8(`P```$R)[^@`````2(/$&+C_____6UU!7$%=05Y! -M7\-!QT8(`@```$R)[^@`````N/_____I@_W__T''1@@$````Z\`````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M`````````````````````````&ME&-P=7,`=FTN>F]N95]C -M;W5N=`!V;2YZ;VYE7W-T871S`%]U;6%?:V5GE(``7@0`0,,!PB0`0``%````!P````````` -M/P````!$#A"#`@``%````#0`````````)P````!!#A"#`@``-````$P````` -M````#@4```!"#A"/`D4.&(X#2@X@0@XH00XP00XX1PZP!(,'A@:,!8T$```` -M```T````A`````````#,`P```$(.$$(.&(X#CP)%#B!"#BA!#C!!#CA$#E"# -M!X8&C`6-!`````````!'0T,Z("A'3E4I(#0N,BXQ(#(P,#6UT86(`+G-T7-C=&Q?=6UA`'-YP`````````*`````P`````````````` -MF``````````"````#0```/S_________I@`````````"`````P````,````` -M````L``````````"`````P````L`````````4P$````````"````#@```/S_ -M________*P(````````"````"P```/S_________>@(````````"````#P`` -M`/S_________C@(````````"````$````/S_________D`0````````"```` -M$0```/S_________JP0````````"````$0```/S_________LP0````````" -M````$@```/S__________P0````````"````$P```/S_________%04````` -M```"````$0```/S_________'04````````"````$@```/S_________2P4` -M```````"````$0```/S_________4P4````````"````$@```/S_________ -MTP4````````*````"````!$`````````X04````````"````%0```/S_____ -M____&08````````"````#@```/S_________-08````````*````"````!\` -M````````.@8````````"````%0```/S_________1P8````````"````%@`` -M`/S_________6@8````````"````$0```/S_________:@8````````*```` -M"```````````````>`8````````"````%0```/S_________A08````````" -M````%@```/S_________DP8````````"````%@```/S_________X`8````` -M```"````$P```/S_________]`8````````"````$@```/S__________`8` -M```````"````$0```/S_________.0<````````"````%@```/S_________ -M1P<````````"````%@```/S_________S0<````````"````#P```/S_____ -M____Y0<````````"````$````/S_________U@@````````"````$0```/S_ -M________X@@````````"````%@```/S_________\0@````````"````%@`` -M`/S_________$`D````````"````$0```/S_________-`D````````"```` -M$0```/S_________```````````!````"````"T`````````&``````````! -M````"````#<`````````,``````````!````"````$$`````````2``````` -M```!````"````$L`````````(``````````*`````@``````````````.``` -M```````*`````@```$``````````4``````````*`````@```'`````````` -MB``````````*`````@```(`%````````+S`@("`@("`@("`@("`@(#$R,#DT -M,#0Y-C<@(#`@("`@(#`@("`@(#$P,#8T-"`@-#DW-B`@("`@(&`*?T5,1@(! -M`0D```````````$`/@`!`````````````````````````"`)```````````` -M`$```````$``#0`*`$AC]E-(B`#6\-F9I!F9I!F9I!!5T%628G^055) -MB?6^`````$%455-(@>S("```2(L'3(GO2(E$)`CH`````(7`#X67`@``@#T` -M`````'0*2(,]``````!U'T''1@@'````N/____](@<3("```6UU!7$%=05Y! -M7\-(C90DO`@``$4QP+D$````O@$```!,B>_H#?___X7`#X5D`@``@[PDO`@` -M`"`/CT0"``!(C90DL`@``$4QP#'VN0@```!,B>_HW?[__X7`#X4T`@``2(NT -M)+`(``!(A?8/A*`!``!(C40D$$R-O"20"```2(/`($B)!"1(C90D$`@``$4Q -MP+F`````3(GOZ-?^__^%P(G##X5U`0``3(ND)$@(```QVV9FD$F-+!]*C30C -MN0$```!,B>](B>KH`````$B%P`^(0@$``$C_R`^%B@$``(!]``!FD'06C4,! -M2/_#2(/[('7"2)C&A`2/"````$ACC"2\"```2(NT)%`(``!(C50D$$4QP$R) -M[TC!X0;H5/[__X7`B<,/A?(```!(@WPD"``/A/P```!,B?J^`0```$R)]^@` -M````2(7`2(G##X3@````2(G?Z`````"+A"2\"```A<`/CGX```!(BQ0D2(G9 -M,?9FD$B+0N!(`4-(_\9(BT+H2`%#4$B+0O!(`4-82(M"^$@!0V!(BP)("4,X -M2(M"X$B)@9@!``!(BT+H2(F!H`$``$B+0O!(B8&H`0``2(M"^$B)@;`!``!( -MBP)(@\)`2(F!N`$``$B!P2@!```YM"2\"```?XU(BT-(2"M#4$B)0VA(BT-8 -M2"M#8$B)0W!(B[0D$`@``$B%]@^%=?[__S'`Z>']__^[!@```$R)]^@````` -MN/____]!B5X(Z<;]__],B?J^`0```$R)]^@`````2(7`2(G##X4$____3(GW -MZ`````"X_____T''1@@!````Z9#]__^["````.NMN/____]!QT8(!@```.EW -M_?__N/____]!QT8(!````.EE_?__08E&"+C_____Z5?]__]F9I!!5T%6055) -MB?U!5%532(/L&$R+/TB-7"0(2(UL)!!,C70D%.FL````2(-\)`@$#X7Z```` -M@WPD$"`/CU,!``!%,<`QR4B)VDR)]K\`````2,=$)`@$````Z`````"%P`^( -M20$``$B#?"0(!`^%O0```$AC?"002&-$)!1(P><&2(/'($@/K_A(@\<@2(E\ -M)`CH`````$B%P$F)Q`^$U0```$4QP#')2(G:2(G&OP````#H`````(7`#XDB -M`0``Z`````"#.`P/A4L"``!,B>?H`````$4QP#')2(G:2(GNOP````!(QT0D -M"`0```#H`````(7`#XDN____Z`````"#.`UT#N@`````@S@!9F9FD'4<0<=% -M"`,```!(@\08N/____];74%<05U!7D%?PT''10@%````N/____](@\086UU! -M7$%=05Y!7\-(B>J^`0```$R)[^@`````2(7`2(G##X7O````3(GOZ`````!, -MB>?H`````$''10@!````2(/$&+C_____6UU!7$%=05Y!7\-!QT4(!````$B# -MQ!BX_____UM=05Q!74%>05_#Z`````"#.`T/A%;___]F9F:0Z`````"#.`$/ -MA$3___^X_____T''10@"````Z5O___](BT0D"$B%P`^$&@$``$B#^`\/AF(! -M``!!@SPD`0^%5P$``$&+1"0$@_@@#X=C`0``B40D$$&+1"0(A<")1"04#X[B -M````28UL)!!%,?9FD$V%_P^$$?___TB)ZKX!````3(GOZ`````!(A4B)VC')9I!(@\5`_\%(BT7`2`%# -M2$B+1!("4,X2(M%P$B)@I@!``!( -MBT7(2(F"H`$``$B+1=!(B8*H`0``2(M%V$B)@K`!``!(BT7@2(F"N`$``$B! -MPB@!```Y3"00?XY(BT-(2"M#4$'_QDB)0VA(BT-82"M#8$B)0W!$.70D%`^/ -M*/___TR)Y^@`````,<#I)/[__^@`````@S@-D'04Z`````"#.`%T"D''10@" -M````ZPA!QT4(`P```$R)Y^@`````2(/$&+C_____6UU!7$%=05Y!7\-!QT4( -M`@```$R)Y^@`````N/_____IQ_W__T''10@$````Z\`````````````````` -M```````````````````````````````````````````````````````````` -M``````````````````````````````````````````!K97)N+G-M<"YM87AC -M<'5S`&MEE(``7@0 -M`0,,!PB0`0``%````!P`````````/P````!$#A"#`@``%````#0````````` -M)P````!!#A"#`@``-````$P`````````_0(```!"#A!"#AB.`X\"10X@C01* -M#BA!#C!!#CA'#H`2@P>&!HP%```````T````A`````````!^`P```$(.$$(. -M&$(.((T$C@./`D4.*$$.,$$..$0.4(,'A@:,!0````````!'0T,Z("A'3E4I -M(#0N,BXQ(#(P,#6UT86(`+G-T7-C=&Q?;6%L;&]C`'-Y`P`` -M``````(````0````_/________^[`P````````H````(````$0````````#) -M`P````````(````3````_/________\!!`````````(````4````_/______ -M__\=!`````````H````(````(P`````````B!`````````(````3````_/__ -M______\O!`````````(````5````_/________]`!`````````(````6```` -M_/________]0!`````````H````(``````````````!>!`````````(````3 -M````_/________]K!`````````(````5````_/________]U!`````````(` -M```5````_/_________&!`````````(````1````_/_________:!``````` -M``(````0````_/_________B!`````````(````6````_/________\?!0`` -M``````(````5````_/________\Q!0````````(````5````_/________^U -M!0````````(````.````_/_________-!0````````(````/````_/______ -M__]\!@````````(````6````_/________^(!@````````(````5````_/__ -M______^3!@````````(````5````_/________^R!@````````(````6```` -M_/_________6!@````````(````6````_/________\```````````$````( -M````-0`````````8``````````$````(````10`````````P``````````$` -M```(````40`````````@``````````H````"```````````````X```````` -M``H````"````0`````````!0``````````H````"````<`````````"(```` -M``````H````"````<`,```````!M96US=&%T+F\O("`@("`@,3(P.30P-#DV -M-R`@,"`@("`@,"`@("`@,3`P-C0T("`W-3DR("`@("`@8`I_14Q&`@$!"0`` -M`````````0`^``$`````````````````````````"`L`````````````0``` -M````0``.``L`@_\(=@NX`````,-F9I!FD(GX_R3%`````+@`````P[@````` -MP[@`````P[@`````P[@`````P[@`````P[@`````P[@`````PV9F9I!F9I!( -MBP?#9F9FD&9F9I!F9F:02(N'F"<``,-F9F:09F9FD(M'",-F9F:09F9FD&9F -M9I!(QT`````!(QX>``````````$C'AX@!````````2,>'D`$```````!FD$C'@)@! -M````````2,>`H`$```````!(QX"H`0```````$C'@+`!````````2,>`N`$` -M``````!(QX37F"8```````!(_\)(!2@!``!(@_H@=:[SPV9F9I!F9F:09F9F -MD$B-1P3#9F9FD&9F9I!F9I"+!\-F9F:09F:09F:09F:02(M'*,-F9F:09F9F -MD&9FD$B+1S##9F9FD&9F9I!F9I!(BT`````PV9F9I!F9F:0 -M2&/V2(N$]X@```##9F9FD$AC]DB)E/>(````PV9F9I!(8_9(BX3W"`$``,-F -M9F:02&/V2(F4]P@!``##9F9FD$B+AX@!``##9F9FD&9F9I!(BX>0`0``PV9F -M9I!F9F:02&/V2&GV*`$``$B+A#>8`0``PV9F9I!F9I!F9I!F9I!(8_9(:?8H -M`0``2(N$-Z`!``##9F9FD&9FD&9FD&9FD$AC]DAI]B@!``!(BX0WJ`$``,-F -M9F:09F:09F:09F:02&/V2&GV*`$``$B+A#>P`0``PV9F9I!F9I!F9I!F9I!( -M8_9(:?8H`0``2(N$-[@!``##9F9FD&9FD&9FD&9FD$AC]DACTDB)\$C!X`5( -MC02P2`'P2`'02(N$Q\`!``##2&/V2&/22(GP2,'@!4B-!+!(`?!(`=!(B8S' -MP`$``,-(8_9(8])(B?!(P>`%2(T$L$@!\$@!T$B+A,=``@``PTAC]DACTDB) -M\$C!X`5(C02P2`'P2`'02(F,QT`"``##2&/V2(N$]Y@F``##9F9FD$B#[`B_ -M$````.@`````2(G",P1,B>[H -M`````(7`==E(@\0(2(G86UU!7$%=PV9F9I!F9I!32(G[2(L_2(7_=#5F9F:0 -M2(N7F"<``$B%TG0.2(N'H"<``$B)@J`G``!(BX>@)P``2(D0Z`````!(BSM( -MA?]USUO#9F9FD&9FD&9FD&9FD%-(B?OH`````$B)WUOI````````2U9-('-H -M;W)T(')E860`56YK;F]W;B!E"@```````&4````` -M```````````````!`````````````````````0````(````````````````` -M````````B`X````````0!0````````T````)````"``````````8```````` -M``D````#`````````````````````````)@3````````Q@,````````````` -M``````$````````````````````````````````````````````````````! -M````!`#Q_P```````````````````````````P`!```````````````````` -M`````````P`#`````````````````````````````P`$```````````````` -M`````````````P`%`````````````````````````````P`&```````````` -M`````````````````P`(`````````````````````````````P`*```````` -M```````````````+````$@`!````````````20`````````<````$@`!`%`` -M````````!``````````N````$@`!`&``````````"``````````_````$@`! -M`'``````````!`````````!4````$@`!`(``````````U`````````!L```` -M$@`!`&`!````````!0````````!]````$@`!`'`!`````````P````````"3 -M````$@`!`(`!````````!0````````"J````$@`!`)`!````````!0`````` -M``#!````$@`!`*`!````````!0````````#6````$@`!`+`!````````!0`` -M``````#G````$@`!`,`!````````!0````````#^````$@`!`-`!```````` -M!0`````````3`0``$@`!`.`!````````!0`````````I`0``$@`!`/`!```` -M````!0`````````^`0``$@`!```"````````!0````````!0`0``$@`!`!`" -M````````!0````````!B`0``$@`!`"`"````````!0````````!S`0``$@`! -M`#`"````````"`````````"(`0``$@`!`$`"````````#`````````"C`0`` -M$@`!`%`"````````#`````````"^`0``$@`!`&`"````````#`````````#8 -M`0``$@`!`'`"````````#`````````#R`0``$@`!`(`"````````"``````` -M```'`@``$@`!`)`"````````"``````````;`@``$@`!`*`"````````$P`` -M```````Y`@``$@`!`,`"````````$P````````!5`@``$@`!`.`"```````` -M$P````````!R`@``$@`!```#````````$P````````".`@``$@`!`"`#```` -M````$P````````"J`@``$@`!`$`#````````(`````````#,`@``$@`!`&`# -M````````(`````````#N`@``$@`!`(`#````````(``````````/`P``$@`! -M`*`#````````(``````````P`P``$@`!`,`#````````#`````````!(`P`` -M$@`!`-`#````````+@````````!:`P``$`````````````````````````!A -M`P``$@`!```$````````G0````````!V`P``$``````````````````````` -M``!]`P``$`````````````````````````"%`P``$@`!`*`$````````60`` -M``````"6`P``$`````````````````````````"=`P``$@`!```%```````` -M0P````````"P`P``$`````````````````````````"U`P``$@`!`%`%```` -M````$@``````````;65M71EU(QT98`````$B+A\@```!(B49@2(N'R````$B) -M,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D -M\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0* -M`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$ -M)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3. -M````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!( -MQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA( -MBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A, -MBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_ -M_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!( -MB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_ -M_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G] -M4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(AY(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H```` -M`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8` -M```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````BQ@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H```` -M`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0 -M9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT -M$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H```` -M`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR) -MYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E" -M*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P```` -M2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$` -M``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG -MZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H -M`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____ -M_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -M1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0 -M9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!( -MA9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$ -M)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$ -M)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A3ID````$B+:R!,.>4/@J@```"+>TR% -M_W4?2(MS.#'23(GE2HU,)O](BQ!(B>;H`````$B%P'1O2(M#($B)YDB) -M1"082(M#*$B)1"0@2(M[$.@`````A;H -M`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H -MN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0 -M2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-, -M`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_ -M1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -M`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+ -MZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M -M=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-````` -M`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0 -M9F9FD&9FD&9FD#'22(/L".@`````,=)(A[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00 -M`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G? -MZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____ -M28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A_HZ/W__X7`=:2+1"1$@_@)#X2M```` -M@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A( -MB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\ -MN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U( -M_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6% -M[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H -M`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$ -MC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G(````2(GOZ)W\__^% -MP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP -M"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z``` -M``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/] -M__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28```` -M6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____ -M_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_ -M1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^```` -M`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____ -M_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L -M"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6```` -M2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU```` -M``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M= -MPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H* -M9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53 -M2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V% -M[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=UUO4B!Q)@```!;74%<05U!7D%?P[\` -M````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@ -M`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F -M9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=( -MBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(AQCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$ -MU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(AU(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y -M1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$` -M`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===( -MBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$ -M)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\ -M__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/APCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%```` -M`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B) -M!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ``` -M``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH -M]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ -M3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H```` -M`$B+?"0P2`-\)#A(B<),B>9(B4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9, -MB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B) -MQDB+1"082(G:2(MX&.@`````2(7`2(G-````2(M\)!CH`````(7`=(1( -MBU0D&(-Z%`%T/[]`````Z`````!(A$F)Q$B+A"2`````28D$)$B+A"2( -M````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A6P````,`````!6-_````!PBZ -M````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R -M`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@" -M9EP"```+7W```F50````"(W`*``````)\W@(```(C -M=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$* -M``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P" -M```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````- -M5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X` -M`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P`` -M```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,` -M`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0` -M`P`````&?38#```#``````%D@,```(C"``#``````>&%04``!)%;&8` -M""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0` -M`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0````` -M"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0` -M````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0````` -M%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM -M!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0 -M"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@`` -M```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8` -M``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,````` -M"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*```` -M``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````* -M-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ``` -M``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C -M(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H` -M````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H````` -M"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@ -M"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS```` -M`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C -M``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES -M``I%LP8```(C"`MO@`*6=<````"(P@+;7-Z``I:UP````(C$`H` -M````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H````` -M"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%``` -M```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C -M"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@` -M!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<( -M60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4' -M```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+ -M```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````* -MHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5``` -M``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C -M%`ME:6X`"F\5#0```B,8"@`````*50````"(S`*``````IZ5`````(C-`H````` -M"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4 -M`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0`` -M`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H -M"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$* -M``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$* -M``````JB8PL```,CT`$`!PA%!0``%0`````!XP$````````````````````` -M`G<(8`T``!9E8W```>)@#0```5461@"0```5$` -M!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W`` -M`5T#8`T````````:P"8`D````````@$@````_H````'A(``!"J````!``' -M".@````F``````$X`50``````````````````````````````+T2```C96-P -M``$W8`T````````D``````$WZ``````````K`````'\2```E``````%P`@$``````````````````````````*<4 -M```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@````````` -M.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL* -M%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y -M@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P -MQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8` -M``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@`````` -M`#!3%@``,%T6```W:!8`````````````/GL6```````````````````````` -M`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@`````````` -M-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P`` -M``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@ -M`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4` -M+W5S7!E7!E6%)*U45)-ZX(+#A(,&"`4@@24CP#%D)NMQ@A8`Z4!`B0!`PDK`W=5`PF; -M`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y( -M20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4# -MO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@! -M($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q -M!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ` -M`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(F4H*2!F -M86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO -M;F-E+G=I+@`N;&EN90`N&!HP%C02.`X\"````````%``` -M```````!>E(``7@0`0,,!PB0`0``%````!P`````````<``````````````` -M'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\ -M`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!. -M#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP -M@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<```` -MY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!```` -M0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8" -M1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH -M1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W```` -M`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$ -M`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&# -M!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(` -M``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(` -M`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_`` -M`````````````````````'``````````E@`````````!`%66`````````($! -M`````````0!00` -M``````"W!`````````$`42\%````````.04````````!`%$````````````` -M````````[0,```````#[!`````````$`7``%````````B04````````!`%P` -M````````````````````D`4```````"1!0````````(`=PB1!0```````)4% -M`````````@!W$)4%````````F04````````"`'<8F04```````"$!@`````` -M``(`=R``````````````````````D`4```````"K!0````````$`5:L%```` -M````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@`` -M``````$`5DL&````````A`8````````!`%8`````````````````````J04` -M```````8!@````````$`4QH&````````208````````!`%-+!@```````(0& -M`````````0!3`````````````````````+P%````````OP4````````!`%"_ -M!0````````(&`````````0!1&@8```````!5!@````````$`40`````````` -M```````````1!@```````!H&`````````0!0:08```````!P!@````````$` -M4`````````````````````"0!@```````*X&`````````@!W"*X&```````` -MR0<````````#`'>P`0````````````````````"0!@```````+0&```````` -M`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P````` -M````````````````D`8```````"Y!@````````$`5+D&````````P08````` -M```!`%4`````````````````````D`8```````#!!@````````$`4<$&```` -M````3P<````````!`%-O!P```````,D'`````````0!3```````````````` -M`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<` -M``````#)!P````````$`5@````````````````````#0!P```````-('```` -M`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(` -M=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'0T```````"P#0````````$`7,0-````````Q@T````````! -M`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.```` -M````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P`` -M``````$`7,H/````````!A`````````!`%P`````````````````````WPP` -M``````!`#P````````$`7D,/````````!A`````````!`%X````````````` -M````````#0\````````4#P````````$`4"\/````````0P\````````!`%`` -M````````````````````<@X```````!U#@````````$`4'4.````````@PX` -M```````!`%1##P```````$T/`````````0!4`````````````````````-\, -M````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y -M#P````````$`4T,/````````?P\````````!`%.[#P````````80```````` -M`0!3`````````````````````-\,````````[`P````````!`%`'#P`````` -M`!0/`````````0!0`````````````````````!`0````````$1`````````" -M`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0 -M````````ZQ`````````"`'<@`````````````````````!`0````````=Q`` -M```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$` -M5=P0````````X1`````````!`%4`````````````````````$!`````````U -M$`````````$`5%P0````````=!`````````!`%2:$````````*@0```````` -M`0!4M!````````"[$`````````$`5``````````````````````B$``````` -M`)\0`````````0!3H1````````#K$`````````$`4P`````````````````` -M```D$````````'00`````````0!4FA````````"H$`````````$`5+00```` -M````NQ`````````!`%3<$````````.80`````````0!4```````````````` -M`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!`` -M``````"[$`````````$`5,40````````UQ`````````!`%0````````````` -M````````)!````````"M$`````````$`5;00````````OA`````````!`%7% -M$````````-<0`````````0!5W!````````#A$`````````$`50`````````` -M``````````#P$````````/(0`````````@!W"/(0````````]!`````````" -M`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0 -M````````^1`````````"`'%P`````` -M``$`70````````````````````"U$0```````,(1`````````0!0?!(````` -M``"[$@````````$`4/H5`````````Q8````````!`%`````````````````` -M````@A8```````"%%@````````$`4(46````````E18````````!`%18%P`` -M`````&(7`````````0!4`````````````````````"$1````````=A$````` -M```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4 -M````````)14````````!`%9$%0```````-X7`````````0!6```````````` -M`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!< -MWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0`````` -M`-X7`````````0!<`````````````````````"$1````````?!$````````! -M`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4```` -M````WA<````````!`%X`````````````````````$A<````````7%P`````` -M``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5```` -M`````````````````+T1````````PA$````````!`%0#%0````````@5```` -M`````0!4`````````````````````%@5````````8!4````````!`%"_%0`` -M`````,05`````````0!0`````````````````````"$1`````````1,````` -M```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1 -MZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4` -M``````#3%0````````$`5=,5````````WA<````````#`)'H?@`````````` -M```````````A$0```````'81`````````0!6?Q$```````!M%0````````$` -M5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8````` -M``#C%@````````$`5A`7````````6!<````````!`%8````````````````` -M````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P`` -M`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4` -M```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1 -M````````>!$````````!`%Q_$0```````)<3`````````0!%0```````*85```````` -M`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P`` -M`````%@7`````````0!<`````````````````````"$1````````-A$````` -M```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2 -M````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[ -M%`````````$`4Q45````````6YC7W-E8W1I;VYS`&(0``!I;G-EPX```````!O -M#@```````'(.````````4@X```````!;#@```````$(.````````1PX````` -M```T#@```````#H.````````+@X````````Q#@`````````````````````` -M```````U$````````%,0````````W!````````#K$``````````````````` -M``````````!W$````````(<0````````Q1````````#<$````````)40```` -M````F!````````"+$````````)(0`````````````````````````````!(1 -M````````(1$````````Z%P```````-X7````````XQ8````````0%P`````` -M``,6````````U!8```````!/$@```````,`2```````````````````````` -M`````%T2````````P!(```````#-%P```````-X7````````O!<```````#` -M%P```````+(7````````NA<```````"=%P```````*@7````````F1<````` -M``";%P```````(`7````````E!<```````!B%P```````'87````````1!<` -M``````!8%P```````.T6````````$!<```````"N%@```````-06```````` -ME18```````"D%@```````(46````````BQ8```````!_%@```````((6```` -M````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46 -M````````*18````````L%@````````,6````````'18````````````````` -M````````````M1$```````#@$0```````/L4````````%14````````````` -M````````````````X!$```````!$$@```````"L7````````.A<````````E -M%0```````.05````````L10```````#[%````````,`2````````!10````` -M````````````````````````X!$```````!$$@```````"L7````````.A<` -M``````#3%0```````.05````````$P```````+$3 -M````````NA,````````K$P```````*43````````'1,````````A$P`````` -M``X3````````&1,````````&$P````````D3````````]!(````````!$P`` -M`````,`2````````YA(`````````````````````````````X!$```````!$ -M$@```````-,5````````Y!4```````#`$@```````,T2```````````````` -M`````````````/$1````````&1(```````#3%0```````.05````````Q1(` -M``````#-$@```````"L2````````-A(````````E$@```````"@2```````` -M`````````````````````#$4````````L10````````0%P```````"L7```` -M````U!8```````#C%@```````.05`````````Q8````````5%0```````"45 -M`````````````````````````````#$4````````6!0````````7%P`````` -M`"L7````````U!8```````#C%@```````!45````````)14```````!Q%``` -M`````+$4````````:A0```````!L%````````&04````````9Q0````````` -M````````````````````CA0```````"Q%````````-06````````XQ8````` -M````````````````````````16QF-C1?061D<@!D8F=?F4`7V9L86=S`&5?=F5RF4`1T5L -M9E]%:&1R`&1?6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT@!S='%H7V9I6UT86(`:7-?F5?=`!D7W1Y<&4`14Q&7U1? -M4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1? -M2&%L9@!S96-T:6]NF4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0` -M;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H -M7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A -M`'-E=%]S:'-T5]C;VYT96YT`'9?;61A=`!%;&9? -M1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?6UT86(`+G-T`!M96UM;W9E`&5L9E]E`!U<&1A=&5?5]D871A`&5L9E]G971D871A`&-O<'E?5]C;VYT96YT`&-R -M96%T95]S>6UT86(`;65M8W!Y`'-TP,````````"````)````/S_________@P,````````*````"0```*X````` -M````B`,````````"````)````/S_________C0,````````*````"0```+8` -M````````E0,````````"````)````/S_________O0,````````*````"0`` -M`+8`````````]0,````````"````)@```/S_________$`0````````"```` -M)P```/S_________;P0````````"````&@```/S_________LP0````````" -M````&0```/S_________V@0````````"````&P```/S_________!@4````` -M```"````'P```/S_________"P4````````*````"0```,``````````&@4` -M```````"````(````/S_________'P4````````*````"0```-@````````` -M*P4````````"````*````/S_________-04````````"````'P```/S_____ -M____.@4````````*````"0```!X`````````204````````"````(````/S_ -M________4P4````````"````'P```/S_________6`4````````*````"0`` -M`.4`````````9P4````````"````(````/S_________<04````````"```` -M'P```/S_________=@4````````*````"0```#<`````````A04````````" -M````(````/S_________M04````````"````&@```/S__________@4````` -M```"````*@```/S_________"P8````````"````(P```/S_________408` -M```````"````'P```/S_________5@8````````*````"0```!X````````` -M908````````"````(````/S_________;`8````````"````'P```/S_____ -M____<08````````*````"0````,!````````@`8````````"````(````/S_ -M________O08````````"````&0```/S_________T08````````"````&0`` -M`/S_________/P<````````"````&P```/S_________=0<````````"```` -M'P```/S_________>@<````````*````"0```!P!````````B0<````````" -M````(````/S_________DP<````````"````'P```/S_________F`<````` -M```*````"0```#H!````````IP<````````"````(````/S_________L0<` -M```````"````'P```/S_________M@<````````*````"0```%@!```````` -MQ0<````````"````(````/S_________2P@````````"````&0```/S_____ -M____;@@````````"````&P```/S_________LP@````````*````"P`````` -M````````N@@````````"````+0```/S_________R0@````````"````'P`` -M`/S_________S@@````````*````"0```',!````````W0@````````"```` -M(````/S_________YP@````````"````'P```/S_________[`@````````* -M````"0```%@!````````^P@````````"````(````/S_________$0D````` -M```"````+P```/S_________*0D````````"````)P```/S_________>@D` -M```````"````,````/S_________N`D````````"````'P```/S_________ -MO0D````````*````"0```)$!````````S`D````````"````(````/S_____ -M____U@D````````"````'P```/S_________VPD````````*````"0```+D! -M````````Z@D````````"````(````/S_________[PD````````*````"0`` -M`*L!````````^PD````````"````(````/S_________,0H````````"```` -M,@```/S_________5`H````````"````,P```/S_________:PH````````" -M````-````/S_________E`H````````*````"0```-$!````````G@H````` -M```"````(````/S_________MPH````````"````,0```/S_________YPH` -M```````"````,0```/S_________0@L````````*````"0```+8````````` -M:0L````````*````"0```*8`````````A@L````````*````"0```*X````` -M````EPL````````*````"0```.,!````````H@L````````+````"0```.,! -M````````JPL````````+````"0```.H!````````M`L````````+````"0`` -M`/P!````````O0L````````+````"0````("````````X@L````````"```` -M-0```/S_________\`L````````"````-@```/S_________(@P````````" -M````,0```/S_________?PP````````"````)P```/S_________DPP````` -M```+````"0```+8`````````RPP````````"````.````/S_________Z`P` -M```````"````.0```/S__________PP````````"````&0```/S_________ -M'0T````````"````.@```/S_________5`T````````*````"0```+8````` -M````?@T````````"````)@```/S_________DPT````````"````'````/S_ -M________N`T````````*````"0```*8`````````T@T````````*````"0`` -M`*X`````````$0X````````"````.````/S_________*@X````````"```` -M.0```/S_________/@X````````"````'````/S_________3@X````````" -M````&0```/S_________:PX````````"````.@```/S_________FPX````` -M```"````)P```/S_________W`X````````"````.P```/S_________]PX` -M```````"````*P```/S_________`0\````````"````(P```/S_________ -M$`\````````"````'P```/S_________%0\````````*````"0```(X````` -M````)`\````````"````(````/S_________*0\````````"````(P```/S_ -M________20\````````"````'P```/S_________3@\````````*````"0`` -M`#\"````````70\````````"````(````/S_________9P\````````"```` -M'P```/S_________;`\````````*````"0```","````````>P\````````" -M````(````/S_________A0\````````"````'P```/S_________B@\````` -M```*````"0```(,"````````F0\````````"````(````/S_________HP\` -M```````"````'P```/S_________J`\````````*````"0```&T"```````` -MMP\````````"````(````/S_________O`\````````*````"0```*L!```` -M````Q@\````````"````*````/S_________T`\````````"````'P```/S_ -M________U0\````````*````"0````@"````````Y`\````````"````(``` -M`/S_________[@\````````"````'P```/S_________\P\````````*```` -M"0```%4"`````````A`````````"````(````/S_________)A`````````" -M````/````/S_________,1`````````"````/0```/S_________91`````` -M```"````/````/S_________Q0````````"````/````/S_________BA0````````"```` -M/0```/S_________UA0````````"````0P```/S_________-A4````````" -M````0P```/S_________4!4````````"````,0```/S_________7!4````` -M```"````-0```/S_________=!4````````"````0P```/S_________HA4` -M```````"````0@```/S_________MQ4````````"````,0```/S_________ -MP!4````````"````-0```/S_________U!4````````*````"0```+X"```` -M````X!4````````"````*````/S_________YQ4````````"````/0```/S_ -M________\14````````"````/@```/S_________)18````````"````*@`` -M`/S_________0Q8````````"````1````/S_________9Q8````````"```` -M'````/S_________>Q8````````"````.@```/S_________D18````````" -M````10```/S_________JA8````````"````,P```/S_________VA8````` -M```"````/P```/S_________Z18````````"````,P```/S_________$Q<` -M```````"````'P```/S_________&!<````````*````"0````,!```````` -M)Q<````````"````(````/S_________+!<````````*````"0```+`"```` -M````-A<````````"````*````/S_________0!<````````"````'P```/S_ -M________11<````````*````"0```)$!````````5!<````````"````(``` -M`/S_________7A<````````"````'P```/S_________8Q<````````*```` -M"0```#\"````````P`````````*````%@```/,%````````@``````````*````%@```#0#```` -M````C0`````````*````%@```.4&````````E``````````*````%@```&<( -M````````FP`````````*````%@```.(!````````H``````````*````%@`` -M`'`&````````L``````````*````%@```/$'````````O0`````````*```` -M%@```)@#````````P@`````````*````%@```(L%````````S0`````````* -M````%@```*T!````````V``````````*````%@```#H&````````]``````` -M```*````%@````0#````````_P`````````*````%@```-L!````````"@$` -M```````*````%@```*\'````````%@$````````*````%@```'@$```````` -M)`$````````*````%@```(P`````````.0$````````*````%@```#@"```` -M````;`$````````*````%@```*4`````````>@$````````*````%@```)D$ -M````````E@$````````*````%@```)P`````````I`$````````*````%@`` -M`'T!````````L@$````````*````%@```/H#````````P`$````````*```` -M%@```!0<````````*````%@```+H#````````E0<````````*````%@`` -M`/H!````````HP<````````*````%@````@$````````L0<````````*```` -M%@```*`!````````OP<````````*````%@```.,%````````S0<````````* -M````%@```#T`````````VP<````````*````%@```!<$````````Z0<````` -M```*````%@```,$&````````!@@````````*````%@```!X&````````%0@` -M```````*````%@```(X!````````(0@````````*````%@```+$&```````` -M+P@````````*````%@```(('````````/0@````````*````%@```,H$```` -M````2P@````````*````%@```"T`````````:`@````````*````%@````D! -M````````=@@````````*````%@```+8!````````A0@````````*````%@`` -M`)H&````````D0@````````*````%@```+$&````````\`@````````*```` -M%@```+\(````````_@@````````*````%@```"H'````````&@D````````* -M````%@```%0!````````*`D````````*````%@```/X$````````-@D````` -M```*````%@```)($````````1`D````````*````%@```"H(````````4@D` -M```````*````%@```)\'````````=0D````````*````%@````D!```````` -M@PD````````*````%@```+8!````````D@D````````*````%@````P"```` -M````G@D````````*````%@```-L&````````K`D````````*````%@```,`' -M````````PPD````````*````%@```!X&````````T@D````````*````%@`` -M`-D`````````"`H````````*````%@```"H'````````%@H````````*```` -M%@```#T`````````)`H````````*````%@```)D'````````,@H````````* -M````%@```"4#````````3PH````````*````%@```,@#````````50H````` -M```*````%@```,\`````````6PH````````*````%@```)\$````````80H` -M```````*````%@```*$"````````9PH````````*````%@```*(&```````` -M=@H````````*````%@```"<"````````A`H````````*````%@```.L#```` -M````H0H````````*````%@```"<"````````KPH````````*````%@```.L# -M````````S`H````````*````%@```"<"````````V@H````````*````%@`` -M`.L#````````]PH````````*````%@```"<"````````!0L````````*```` -M%@```.L#````````(@L````````*````%@```"<"````````,`L````````* -M````%@```.L#````````1PL````````*````%@```-L&````````50L````` -M```*````%@```,`'````````;`L````````*````%@```&(%````````>PL` -M```````*````%@```$<"````````APL````````*````%@```%T!```````` -ME0L````````*````%@```+,$````````HPL````````*````%@```$`"```` -M````VPL````````*````%@```)4&````````Z0L````````*````%@```,$# -M````````]PL````````*````%@```%``````````!0P````````*````%@`` -M`&X(````````$PP````````*````%@```!<'````````(0P````````*```` -M%@```$H#````````+PP````````*````%@```+\!````````/0P````````* -M````%@```)X%````````2PP````````*````%@```$L%````````60P````` -M```*````%@```-X"````````9PP````````*````%@```$`(````````=0P` -M```````*````%@```$(%````````@PP````````*````%@```/D'```````` -MD0P````````*````%@```"X#````````GPP````````*````%@```"4$```` -M````K0P````````*````%@```#<`````````NPP````````*````%@```&@$ -M````````R@P````````*````%@```-<"````````V0P````````*````%@`` -M`#\!````````Z`P````````*````%@```'(!````````]PP````````*```` -M%@```)D'````````!@T````````*````%@```'('````````'`T````````* -M````%@```'X(````````(PT````````!`````@``````````````*PT````` -M```!`````@```'``````````:`T````````*````%@```#4%````````<`T` -M```````!`````@```'``````````>`T````````!`````@```"8"```````` -M@`T````````*````$@``````````````E`T````````*````$@```#D````` -M````H@T````````*````$@```((`````````IPT````````*````%@```-,# -M````````L@T````````*````$@```+@`````````S@T````````*````%@`` -M`$0`````````U@T````````!`````@```#`"````````W@T````````!```` -M`@```"P#````````Y@T````````*````$@```!0!````````^@T````````* -M````$@```(D!````````"`X````````*````$@```-(!````````%@X````` -M```*````$@````@"````````*PX````````*````%@````$$````````-@X` -M```````*````$@```%$"````````.PX````````*````%@```&H#```````` -M2`X````````*````%@````X&````````4`X````````!`````@```#`#```` -M````6`X````````!`````@```)L#````````8`X````````*````$@```(<" -M````````=`X````````*````$@```+\"````````>0X````````*````%@`` -M`+$&````````A`X````````*````$@```/4"````````D@X````````*```` -M$@```%$#````````F0X````````*````%@```%H&````````H0X````````! -M`````@```*`#````````J0X````````!`````@```(D%````````L0X````` -M```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X` -M```````*````$@```),$````````V0X````````*````%@```,$````````` -MY`X````````*````$@```,D$````````_0X````````*````$@```/\$```` -M````#`\````````*````$@```$@%````````(P\````````*````%@```)8! -M````````*P\````````!`````@```)`%````````,P\````````!`````@`` -M`(0&````````.P\````````*````$@```'X%````````30\````````*```` -M$@```-X%````````7`\````````*````$@```$T&````````:P\````````* -M````$@```)8&````````<`\````````*````%@````$$````````>P\````` -M```*````$@```-\&````````@@\````````*````%@```/0$````````B@\` -M```````!`````@```)`&````````D@\````````!`````@```,D'```````` -MF@\````````*````$@```!4'````````K@\````````*````$@```$X'```` -M````O0\````````*````$@```)<'````````S`\````````*````$@```,T' -M````````T0\````````*````%@```+$&````````W`\````````*````$@`` -M`!8(`````````Q`````````*````%@```+P"````````"Q`````````!```` -M`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````* -M````$@```%\(````````+Q`````````*````$@```.@(````````/1`````` -M```*````$@```#$)````````71`````````*````$@```&<)````````9!`` -M```````*````%@```!8%````````!`````````!`````@```/\)````````@!`````````*````$@```"(*```` -M````E!`````````*````$@```(,*````````HA`````````*````$@```,P* -M````````IQ`````````*````%@```#("````````LA`````````*````$@`` -M`.\*````````QQ`````````*````%@```"L$````````TA`````````*```` -M$@```!(+````````V1`````````*````%@```.$`````````Y!`````````! -M`````@`````*````````[!`````````!`````@```*(*````````]!`````` -M```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$` -M```````*````%@```+$&````````%A$````````*````$@```"P,```````` -M)1$````````*````$@```(@,````````-!$````````*````$@```.0,```` -M````.A$````````*````%@```'D&````````11$````````!`````@```+`* -M````````31$````````!`````@```-(*````````51$````````*````$@`` -M`!H-````````:!$````````*````$@```%(-````````;1$````````*```` -M%@```+$&````````=Q$````````*````$@```'4-````````AA$````````* -M````$@```)@-````````C!$````````*````%@```.@!````````EQ$````` -M```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$` -M```````*````$@```+L-````````NA$````````*````$@```/,-```````` -MOQ$````````*````%@```+$&````````R1$````````*````$@```!8.```` -M````V!$````````*````$@```#D.````````WA$````````*````%@```!P` -M````````[Q$````````*````%@```+$&````````^A$````````*````%@`` -M``L`````````)1(````````*````%@```-0'````````,!(````````!```` -M`@```"`+````````.!(````````!`````@```&`,````````0!(````````* -M````$@```&\.````````4Q(````````*````$@```*@.````````6!(````` -M```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(` -M```````*````%0``````````````>A(````````*````$@```&`/```````` -MA!(````````!`````@```)8+````````C!(````````!`````@```/@+```` -M````G!(````````!`````@```)8+````````I!(````````!`````@```-X+ -M````````OA(````````*````%@```.4"````````VA(````````*````%@`` -M`-@#````````Y1(````````*````%@```+$&````````!1,````````*```` -M%@```/4#````````$!,````````*````%@````$$````````'1,````````* -M````%@```&<"````````)!,````````!`````@```&`,````````+!,````` -M```!`````@````80````````-!,````````*````$@```*D/````````1Q,` -M```````*````$@```%H0````````5!,````````*````$@```*,0```````` -M61,````````*````%@```+$&````````8Q,````````*````$@```/\0```` -M````<1,````````*````$@```+H1````````A1,````````*````%@```/4# -M````````E!,````````*````%@````$$````````GA,````````*````$@`` -M`/`1````````IQ,````````*````%0```$``````````N1,````````*```` -M%0```)``````````PA,````````*````$@```"82````````U!,````````* -M````$@```&\2````````YA,````````*````$@```-X2````````[A,````` -M```*````%@```'H"````````'10````````*````%@```-T(````````)10` -M```````!`````@```!`0````````+10````````!`````@```.L0```````` -M-10````````*````$@```!03````````1Q0````````*````$@```'03```` -M````5A0````````*````$@```-`3````````9!0````````*````$@```"P4 -M````````;10````````*````%0```&`!````````?10````````*````$@`` -M`&(4````````C!0````````*````%0```)`!````````F!0````````*```` -M$@```+X4````````H10````````*````$@```!H5````````J!0````````* -M````%@```"H!````````UA0````````*````%@```+$&````````^A0````` -M```*````%@```%P%````````!A4````````*````%@```!$'````````'14` -M```````*````%@````$$````````,Q4````````*````%@```+@%```````` -M6!4````````*````%@```#T'````````=!4````````*````%@```+$&```` -M````@!4````````*````%@```-H$````````L!4````````*````%@```!$$ -M````````O!4````````*````%@```"$"````````%!8````````*````%@`` -M`!(!````````(18````````*````%@```'X%````````/18````````*```` -M%@```,H$````````:18````````*````%@````$$````````?!8````````* -M````%@```)`"````````F!8````````*````%@```+$&````````KQ8````` -M```*````%@```'X`````````TA8````````*````%@````$$````````X!8` -M```````*````%@```&4'````````Z!8````````!`````@```/`0```````` -M\!8````````!`````@```-X7````````^!8````````*````$@```'85```` -M````#!<````````*````$@```"<6````````&A<````````*````$@```(<6 -M````````(Q<````````*````%0```.`!````````.1<````````*````%0`` -M`$`"````````0A<````````*````$@```+T6````````2Q<````````*```` -M$@````87````````9A<````````*````$@```$\7````````;Q<````````* -M````$@```+X7````````>!<````````*````$@```"T8````````@1<````` -M```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<` -M```````*````$@```-(8````````NA<````````*````%0```+`#```````` -MT!<````````*````%0```!`$````````V1<````````*````$@````@9```` -M````XA<````````*````$@```#X9````````]1<````````*````$@```-L9 -M`````````Q@````````*````$@```%T:````````#!@````````*````$@`` -M`-\:````````*!@````````*````%0```#`%````````.A@````````*```` -M%0```'`%````````0Q@````````*````$@```(<;````````5A@````````* -M````$@```%4<````````8Q@````````!`````@````T4````````:Q@````` -M```!`````@```#$4````````A1@````````!`````@```!T4````````C1@` -M```````!`````@```#$4````````FA@````````*````$@```)X<```````` -MI1@````````*````%0```-`%````````LA@````````*````%0```#`&```` -M````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D= -M````````S1@````````*````%0```+`&````````V1@````````*````$@`` -M`+(=````````YQ@````````*````%@```&X$````````]!@````````*```` -M%@```$\"````````Q0`````````!`````@``````````````'``````````* -M````$```````````````(``````````!`````@``````````````-``````` -M```*````$```````````````.``````````!`````@```'``````````7``` -M```````*````$```````````````8``````````!`````@```#`"```````` -MC``````````*````$```````````````D``````````!`````@```#`#```` -M````K``````````*````$```````````````L``````````!`````@```*`# -M````````Y``````````*````$```````````````Z``````````!`````@`` -M`)`%````````#`$````````*````$```````````````$`$````````!```` -M`@```)`&````````-`$````````*````$```````````````.`$````````! -M`````@```-`'````````9`$````````*````$```````````````:`$````` -M```!`````@`````)````````C`$````````*````$```````````````D`$` -M```````!`````@`````*````````O`$````````*````$``````````````` -MP`$````````!`````@```+`*````````W`$````````*````$``````````` -M````X`$````````!`````@```.`*````````_`$````````*````$``````` -M``````````(````````!`````@```"`+````````)`(````````*````$``` -M````````````*`(````````!`````@```&`,````````9`(````````*```` -M$```````````````:`(````````!`````@```!`0````````C`(````````* -M````$```````````````D`(````````!`````@```/`0````````(``````` -M```*`````@``````````````.``````````*`````@```'``````````6``` -M```````*`````@```#`"````````@``````````*`````@```#`#```````` -MF``````````*`````@```*`#````````R``````````*`````@```)`%```` -M````Z``````````*`````@```)`&````````"`$````````*`````@```-`' -M````````,`$````````*`````@`````)````````4`$````````*`````@`` -M```*````````>`$````````*`````@```+`*````````D`$````````*```` -M`@```.`*````````J`$````````*`````@```"`+````````R`$````````* -M`````@```&`,``````````(````````*`````@```!`0````````(`(````` -M```*`````@```/`0````````!@`````````*````!@``````````````!@`` -M```````*````!@``````````````$``````````!`````@`````````````` -` -end diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/Makefile b/contrib/elftoolchain/test/nm/ts/nm_object1/Makefile deleted file mode 100644 index c89a2d22..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_DATA= test_obj - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/tc.sh b/contrib/elftoolchain/test/nm/ts/nm_object1/tc.sh deleted file mode 100755 index 546bd29d..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/tc.sh +++ /dev/null @@ -1,198 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt" -} - -tp2() -{ - test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt" -} - -tp3() -{ - test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt" -} - -tp4() -{ - test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt" -} - -tp5() -{ - test_external $TEST_FILE "$TEST_FILE-external.txt" -} - -tp6() -{ - test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp7() -{ - test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp8() -{ - test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp9() -{ - test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt" -} - -tp10() -{ - test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt" -} - -tp11() -{ - test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt" -} - -tp12() -{ - test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt" -} - -tp14() -{ - test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt" -} - -tp15() -{ - test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt" -} - -tp16() -{ - test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt" -} - -tp17() -{ - test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt" -} - -tp18() -{ - test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt" -} - -tp19() -{ - test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt" -} - -tp20() -{ - test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt" -} - -tp21() -{ - test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt" -} - -tp22() -{ - test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt" -} - -tp23() -{ - test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt" -} - -tp24() -{ - test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt" -} - -tp25() -{ - test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt" -} - -tp26() -{ - test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt" -} - -tp27() -{ - test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt" -} - -tp28() -{ - test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt" -} - -tp29() -{ - test_undef1 $TEST_FILE "$TEST_FILE-undef.txt" -} - -tp30() -{ - test_undef2 $TEST_FILE "$TEST_FILE-undef.txt" -} - -startup() -{ - uudecode "$TEST_FILE.uu" -} - -cleanup() -{ - rm -f $TEST_FILE -} - -TEST_FILE="test_obj" - -tet_startup="startup" -tet_cleanup="cleanup" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" -ic8="tp8" -ic9="tp9" -ic10="tp10" -ic11="tp11" -ic12="tp12" -ic14="tp14" -ic15="tp15" -ic16="tp16" -ic17="tp17" -ic18="tp18" -ic19="tp19" -ic20="tp20" -ic21="tp21" -ic22="tp22" -ic23="tp23" -ic24="tp24" -ic25="tp25" -ic26="tp26" -ic27="tp27" -ic28="tp28" -ic29="tp29" -ic30="tp30" - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-dynamic.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-dynamic.txt deleted file mode 100644 index fc9a39a3..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-dynamic.txt +++ /dev/null @@ -1,43 +0,0 @@ -0000000005252136 B _CurrentRuneLocale - w _Jv_RegisterClasses - U __error -0000000005252112 B __isthreaded -0000000005252116 B __mb_sb_limit -0000000005251072 D __progname - U __srget -0000000005252144 B __stderrp -0000000005252120 B __stdinp -0000000005252128 B __stdoutp - U __swbuf -0000000005252224 A _end - U _init_tls - U atexit - U clearerr - U close - U connect -0000000005252176 B environ - U err - U exit - U fclose - U fdopen - U feof - U ferror - U fileno - U fprintf - U fstat - U fwrite - U getc - U getopt - U malloc - U memset - U open -0000000005252152 B optind - U putc - U read - U setbuf - U setlocale - U shutdown - U socket - U strlcpy - U warn - U write diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-external.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-external.txt deleted file mode 100644 index 75a80d67..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-external.txt +++ /dev/null @@ -1,60 +0,0 @@ -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 -0000000005251392 D _DYNAMIC -0000000005251832 D _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000005252112 A __bss_start -0000000005251080 D __dso_handle - U __error@@FBSD_1.0 -0000000005252112 B __isthreaded@@FBSD_1.0 -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005251072 D __progname - U __srget@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 -0000000005252128 B __stdoutp@@FBSD_1.0 - U __swbuf@@FBSD_1.0 -0000000005252112 A _edata -0000000005252224 A _end -0000000004201448 T _fini -0000000004197600 T _init - U _init_tls@@FBSD_1.0 -0000000004198160 T _start - U atexit@@FBSD_1.0 -0000000005252212 B bflag - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 - U connect@@FBSD_1.0 -0000000005252208 B eflag -0000000005252176 B environ - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000005252200 B filename - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000004201024 T main - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 -0000000005252216 B nflag - U open@@FBSD_1.0 -0000000005252152 B optind@@FBSD_1.0 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 -0000000005252192 B rval - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 -0000000005252220 B sflag - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000005252188 B tflag -0000000005252184 B vflag - U warn@@FBSD_1.0 - U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-bsd.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-bsd.txt deleted file mode 100644 index 5083ae0d..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-bsd.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 -0000000005251392 D _DYNAMIC -0000000005251832 D _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000005251800 d __CTOR_END__ -0000000005251792 d __CTOR_LIST__ -0000000005251816 d __DTOR_END__ -0000000005251808 d __DTOR_LIST__ -0000000005251336 r __FRAME_END__ -0000000005251824 d __JCR_END__ -0000000005251824 d __JCR_LIST__ -0000000005252112 A __bss_start -0000000004201408 t __do_global_ctors_aux -0000000004198320 t __do_global_dtors_aux -0000000005251080 D __dso_handle - U __error@@FBSD_1.0 -0000000005252112 B __isthreaded@@FBSD_1.0 -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005251072 D __progname - U __srget@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 -0000000005252128 B __stdoutp@@FBSD_1.0 - U __swbuf@@FBSD_1.0 -0000000005252112 A _edata -0000000005252224 A _end -0000000004201448 T _fini -0000000004197600 T _init - U _init_tls@@FBSD_1.0 -0000000004198160 T _start -0000000004194784 r abitag - U atexit@@FBSD_1.0 -0000000005252212 B bflag -0000000005252168 b bsize.4467 -0000000005252160 b buf.4468 - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 -0000000005252156 b completed.5107 - U connect@@FBSD_1.0 -0000000004198432 t cook_cat -0000000005252208 B eflag -0000000005252176 B environ - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000005252200 B filename - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 -0000000004198384 t frame_dummy - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000004201024 T main - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 -0000000005252216 B nflag - U open@@FBSD_1.0 -0000000005252152 B optind@@FBSD_1.0 -0000000005251088 d p.5105 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 -0000000005252192 B rval -0000000004200240 t scanfiles - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 -0000000005252220 B sflag - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000005252188 B tflag -0000000005252184 B vflag - U warn@@FBSD_1.0 - U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-posix.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-posix.txt deleted file mode 100644 index e14200cf..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-posix.txt +++ /dev/null @@ -1,77 +0,0 @@ -_CurrentRuneLocale@@FBSD_1.0 B 0000000000502428 0000000000000008 -_DYNAMIC D 0000000000502140 -_GLOBAL_OFFSET_TABLE_ D 00000000005022f8 -_Jv_RegisterClasses w -__CTOR_END__ d 00000000005022d8 -__CTOR_LIST__ d 00000000005022d0 -__DTOR_END__ d 00000000005022e8 -__DTOR_LIST__ d 00000000005022e0 -__FRAME_END__ r 0000000000502108 -__JCR_END__ d 00000000005022f0 -__JCR_LIST__ d 00000000005022f0 -__bss_start A 0000000000502410 -__do_global_ctors_aux t 0000000000401bc0 -__do_global_dtors_aux t 0000000000400fb0 -__dso_handle D 0000000000502008 -__error@@FBSD_1.0 U -__isthreaded@@FBSD_1.0 B 0000000000502410 0000000000000004 -__mb_sb_limit@@FBSD_1.0 B 0000000000502414 0000000000000004 -__progname D 0000000000502000 0000000000000008 -__srget@@FBSD_1.0 U -__stderrp@@FBSD_1.0 B 0000000000502430 0000000000000008 -__stdinp@@FBSD_1.0 B 0000000000502418 0000000000000008 -__stdoutp@@FBSD_1.0 B 0000000000502420 0000000000000008 -__swbuf@@FBSD_1.0 U -_edata A 0000000000502410 -_end A 0000000000502480 -_fini T 0000000000401be8 -_init T 0000000000400ce0 -_init_tls@@FBSD_1.0 U -_start T 0000000000400f10 0000000000000092 -abitag r 00000000004001e0 0000000000000018 -atexit@@FBSD_1.0 U -bflag B 0000000000502474 0000000000000004 -bsize.4467 b 0000000000502448 0000000000000008 -buf.4468 b 0000000000502440 0000000000000008 -clearerr@@FBSD_1.0 U -close@@FBSD_1.0 U -completed.5107 b 000000000050243c 0000000000000001 -connect@@FBSD_1.0 U -cook_cat t 0000000000401020 000000000000070e -eflag B 0000000000502470 0000000000000004 -environ B 0000000000502450 0000000000000008 -err@@FBSD_1.0 U -exit@@FBSD_1.0 U -fclose@@FBSD_1.0 U -fdopen@@FBSD_1.0 U -feof@@FBSD_1.0 U -ferror@@FBSD_1.0 U -filename B 0000000000502468 0000000000000008 -fileno@@FBSD_1.0 U -fprintf@@FBSD_1.0 U -frame_dummy t 0000000000400ff0 -fstat@@FBSD_1.0 U -fwrite@@FBSD_1.0 U -getc@@FBSD_1.0 U -getopt@@FBSD_1.0 U -main T 0000000000401a40 0000000000000178 -malloc@@FBSD_1.0 U -memset@@FBSD_1.0 U -nflag B 0000000000502478 0000000000000004 -open@@FBSD_1.0 U -optind@@FBSD_1.0 B 0000000000502438 0000000000000004 -p.5105 d 0000000000502010 -putc@@FBSD_1.0 U -read@@FBSD_1.0 U -rval B 0000000000502460 0000000000000004 -scanfiles t 0000000000401730 000000000000030a -setbuf@@FBSD_1.0 U -setlocale@@FBSD_1.0 U -sflag B 000000000050247c 0000000000000004 -shutdown@@FBSD_1.0 U -socket@@FBSD_1.0 U -strlcpy@@FBSD_1.0 U -tflag B 000000000050245c 0000000000000004 -vflag B 0000000000502458 0000000000000004 -warn@@FBSD_1.0 U -write@@FBSD_1.0 U diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-sysv.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-sysv.txt deleted file mode 100644 index 0ad8f7c6..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-format-sysv.txt +++ /dev/null @@ -1,83 +0,0 @@ - - -Symbols from test_obj: - -Name Value Class Type Size Line Section - -_CurrentRuneLocale@@FBSD_1.0|0000000005252136| B | OBJECT|0000000000000008| |.bss -_DYNAMIC |0000000005251392| D | OBJECT| | |.dynamic -_GLOBAL_OFFSET_TABLE_|0000000005251832| D | OBJECT| | |.got -_Jv_RegisterClasses | | w | NOTYPE| | |*UND* -__CTOR_END__ |0000000005251800| d | OBJECT| | |.ctors -__CTOR_LIST__ |0000000005251792| d | OBJECT| | |.ctors -__DTOR_END__ |0000000005251816| d | OBJECT| | |.dtors -__DTOR_LIST__ |0000000005251808| d | OBJECT| | |.dtors -__FRAME_END__ |0000000005251336| r | OBJECT| | |.eh_frame -__JCR_END__ |0000000005251824| d | OBJECT| | |.jcr -__JCR_LIST__ |0000000005251824| d | OBJECT| | |.jcr -__bss_start |0000000005252112| A | NOTYPE| | |*ABS* -__do_global_ctors_aux|0000000004201408| t | FUNC| | |.text -__do_global_dtors_aux|0000000004198320| t | FUNC| | |.text -__dso_handle |0000000005251080| D | OBJECT| | |.data -__error@@FBSD_1.0 | | U | FUNC|0000000000000008| |*UND* -__isthreaded@@FBSD_1.0|0000000005252112| B | OBJECT|0000000000000004| |.bss -__mb_sb_limit@@FBSD_1.0|0000000005252116| B | OBJECT|0000000000000004| |.bss -__progname |0000000005251072| D | OBJECT|0000000000000008| |.data -__srget@@FBSD_1.0 | | U | FUNC|0000000000000037| |*UND* -__stderrp@@FBSD_1.0 |0000000005252144| B | OBJECT|0000000000000008| |.bss -__stdinp@@FBSD_1.0 |0000000005252120| B | OBJECT|0000000000000008| |.bss -__stdoutp@@FBSD_1.0 |0000000005252128| B | OBJECT|0000000000000008| |.bss -__swbuf@@FBSD_1.0 | | U | FUNC|0000000000000195| |*UND* -_edata |0000000005252112| A | NOTYPE| | |*ABS* -_end |0000000005252224| A | NOTYPE| | |*ABS* -_fini |0000000004201448| T | FUNC| | |.fini -_init |0000000004197600| T | FUNC| | |.init -_init_tls@@FBSD_1.0 | | U | FUNC|0000000000000002| |*UND* -_start |0000000004198160| T | FUNC|0000000000000146| |.text -abitag |0000000004194784| r | OBJECT|0000000000000024| |.note.ABI-tag -atexit@@FBSD_1.0 | | U | FUNC|0000000000000047| |*UND* -bflag |0000000005252212| B | OBJECT|0000000000000004| |.bss -bsize.4467 |0000000005252168| b | OBJECT|0000000000000008| |.bss -buf.4468 |0000000005252160| b | OBJECT|0000000000000008| |.bss -clearerr@@FBSD_1.0 | | U | FUNC|0000000000000090| |*UND* -close@@FBSD_1.0 | | U | FUNC| | |*UND* -completed.5107 |0000000005252156| b | OBJECT|0000000000000001| |.bss -connect@@FBSD_1.0 | | U | FUNC| | |*UND* -cook_cat |0000000004198432| t | FUNC|0000000000001806| |.text -eflag |0000000005252208| B | OBJECT|0000000000000004| |.bss -environ |0000000005252176| B | OBJECT|0000000000000008| |.bss -err@@FBSD_1.0 | | U | FUNC|0000000000000170| |*UND* -exit@@FBSD_1.0 | | U | FUNC|0000000000000047| |*UND* -fclose@@FBSD_1.0 | | U | FUNC|0000000000000242| |*UND* -fdopen@@FBSD_1.0 | | U | FUNC|0000000000000274| |*UND* -feof@@FBSD_1.0 | | U | FUNC|0000000000000101| |*UND* -ferror@@FBSD_1.0 | | U | FUNC|0000000000000101| |*UND* -filename |0000000005252200| B | OBJECT|0000000000000008| |.bss -fileno@@FBSD_1.0 | | U | FUNC|0000000000000091| |*UND* -fprintf@@FBSD_1.0 | | U | FUNC|0000000000000144| |*UND* -frame_dummy |0000000004198384| t | FUNC| | |.text -fstat@@FBSD_1.0 | | U | FUNC| | |*UND* -fwrite@@FBSD_1.0 | | U | FUNC|0000000000000202| |*UND* -getc@@FBSD_1.0 | | U | FUNC|0000000000000127| |*UND* -getopt@@FBSD_1.0 | | U | FUNC|0000000000000682| |*UND* -main |0000000004201024| T | FUNC|0000000000000376| |.text -malloc@@FBSD_1.0 | | U | FUNC|0000000000001280| |*UND* -memset@@FBSD_1.0 | | U | FUNC| | |*UND* -nflag |0000000005252216| B | OBJECT|0000000000000004| |.bss -open@@FBSD_1.0 | | U | FUNC| | |*UND* -optind@@FBSD_1.0 |0000000005252152| B | OBJECT|0000000000000004| |.bss -p.5105 |0000000005251088| d | OBJECT| | |.data -putc@@FBSD_1.0 | | U | FUNC|0000000000000153| |*UND* -read@@FBSD_1.0 | | U | FUNC| | |*UND* -rval |0000000005252192| B | OBJECT|0000000000000004| |.bss -scanfiles |0000000004200240| t | FUNC|0000000000000778| |.text -setbuf@@FBSD_1.0 | | U | FUNC|0000000000000019| |*UND* -setlocale@@FBSD_1.0 | | U | FUNC|0000000000000874| |*UND* -sflag |0000000005252220| B | OBJECT|0000000000000004| |.bss -shutdown@@FBSD_1.0 | | U | FUNC| | |*UND* -socket@@FBSD_1.0 | | U | FUNC| | |*UND* -strlcpy@@FBSD_1.0 | | U | FUNC|0000000000000054| |*UND* -tflag |0000000005252188| B | OBJECT|0000000000000004| |.bss -vflag |0000000005252184| B | OBJECT|0000000000000004| |.bss -warn@@FBSD_1.0 | | U | FUNC|0000000000000168| |*UND* -write@@FBSD_1.0 | | U | FUNC| | |*UND* diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-file-name.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-file-name.txt deleted file mode 100644 index 26c4241f..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-file-name.txt +++ /dev/null @@ -1,77 +0,0 @@ -test_obj:0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 -test_obj:0000000005251392 D _DYNAMIC -test_obj:0000000005251832 D _GLOBAL_OFFSET_TABLE_ -test_obj: w _Jv_RegisterClasses -test_obj:0000000005251800 d __CTOR_END__ -test_obj:0000000005251792 d __CTOR_LIST__ -test_obj:0000000005251816 d __DTOR_END__ -test_obj:0000000005251808 d __DTOR_LIST__ -test_obj:0000000005251336 r __FRAME_END__ -test_obj:0000000005251824 d __JCR_END__ -test_obj:0000000005251824 d __JCR_LIST__ -test_obj:0000000005252112 A __bss_start -test_obj:0000000004201408 t __do_global_ctors_aux -test_obj:0000000004198320 t __do_global_dtors_aux -test_obj:0000000005251080 D __dso_handle -test_obj: U __error@@FBSD_1.0 -test_obj:0000000005252112 B __isthreaded@@FBSD_1.0 -test_obj:0000000005252116 B __mb_sb_limit@@FBSD_1.0 -test_obj:0000000005251072 D __progname -test_obj: U __srget@@FBSD_1.0 -test_obj:0000000005252144 B __stderrp@@FBSD_1.0 -test_obj:0000000005252120 B __stdinp@@FBSD_1.0 -test_obj:0000000005252128 B __stdoutp@@FBSD_1.0 -test_obj: U __swbuf@@FBSD_1.0 -test_obj:0000000005252112 A _edata -test_obj:0000000005252224 A _end -test_obj:0000000004201448 T _fini -test_obj:0000000004197600 T _init -test_obj: U _init_tls@@FBSD_1.0 -test_obj:0000000004198160 T _start -test_obj:0000000004194784 r abitag -test_obj: U atexit@@FBSD_1.0 -test_obj:0000000005252212 B bflag -test_obj:0000000005252168 b bsize.4467 -test_obj:0000000005252160 b buf.4468 -test_obj: U clearerr@@FBSD_1.0 -test_obj: U close@@FBSD_1.0 -test_obj:0000000005252156 b completed.5107 -test_obj: U connect@@FBSD_1.0 -test_obj:0000000004198432 t cook_cat -test_obj:0000000005252208 B eflag -test_obj:0000000005252176 B environ -test_obj: U err@@FBSD_1.0 -test_obj: U exit@@FBSD_1.0 -test_obj: U fclose@@FBSD_1.0 -test_obj: U fdopen@@FBSD_1.0 -test_obj: U feof@@FBSD_1.0 -test_obj: U ferror@@FBSD_1.0 -test_obj:0000000005252200 B filename -test_obj: U fileno@@FBSD_1.0 -test_obj: U fprintf@@FBSD_1.0 -test_obj:0000000004198384 t frame_dummy -test_obj: U fstat@@FBSD_1.0 -test_obj: U fwrite@@FBSD_1.0 -test_obj: U getc@@FBSD_1.0 -test_obj: U getopt@@FBSD_1.0 -test_obj:0000000004201024 T main -test_obj: U malloc@@FBSD_1.0 -test_obj: U memset@@FBSD_1.0 -test_obj:0000000005252216 B nflag -test_obj: U open@@FBSD_1.0 -test_obj:0000000005252152 B optind@@FBSD_1.0 -test_obj:0000000005251088 d p.5105 -test_obj: U putc@@FBSD_1.0 -test_obj: U read@@FBSD_1.0 -test_obj:0000000005252192 B rval -test_obj:0000000004200240 t scanfiles -test_obj: U setbuf@@FBSD_1.0 -test_obj: U setlocale@@FBSD_1.0 -test_obj:0000000005252220 B sflag -test_obj: U shutdown@@FBSD_1.0 -test_obj: U socket@@FBSD_1.0 -test_obj: U strlcpy@@FBSD_1.0 -test_obj:0000000005252188 B tflag -test_obj:0000000005252184 B vflag -test_obj: U warn@@FBSD_1.0 -test_obj: U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-size.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-size.txt deleted file mode 100644 index 36e458f1..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-print-size.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000005252136 0000000000000008 B _CurrentRuneLocale@@FBSD_1.0 -0000000005251392 D _DYNAMIC -0000000005251832 D _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000005251800 d __CTOR_END__ -0000000005251792 d __CTOR_LIST__ -0000000005251816 d __DTOR_END__ -0000000005251808 d __DTOR_LIST__ -0000000005251336 r __FRAME_END__ -0000000005251824 d __JCR_END__ -0000000005251824 d __JCR_LIST__ -0000000005252112 A __bss_start -0000000004201408 t __do_global_ctors_aux -0000000004198320 t __do_global_dtors_aux -0000000005251080 D __dso_handle - U __error@@FBSD_1.0 -0000000005252112 0000000000000004 B __isthreaded@@FBSD_1.0 -0000000005252116 0000000000000004 B __mb_sb_limit@@FBSD_1.0 -0000000005251072 0000000000000008 D __progname - U __srget@@FBSD_1.0 -0000000005252144 0000000000000008 B __stderrp@@FBSD_1.0 -0000000005252120 0000000000000008 B __stdinp@@FBSD_1.0 -0000000005252128 0000000000000008 B __stdoutp@@FBSD_1.0 - U __swbuf@@FBSD_1.0 -0000000005252112 A _edata -0000000005252224 A _end -0000000004201448 T _fini -0000000004197600 T _init - U _init_tls@@FBSD_1.0 -0000000004198160 0000000000000146 T _start -0000000004194784 0000000000000024 r abitag - U atexit@@FBSD_1.0 -0000000005252212 0000000000000004 B bflag -0000000005252168 0000000000000008 b bsize.4467 -0000000005252160 0000000000000008 b buf.4468 - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 -0000000005252156 0000000000000001 b completed.5107 - U connect@@FBSD_1.0 -0000000004198432 0000000000001806 t cook_cat -0000000005252208 0000000000000004 B eflag -0000000005252176 0000000000000008 B environ - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000005252200 0000000000000008 B filename - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 -0000000004198384 t frame_dummy - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000004201024 0000000000000376 T main - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 -0000000005252216 0000000000000004 B nflag - U open@@FBSD_1.0 -0000000005252152 0000000000000004 B optind@@FBSD_1.0 -0000000005251088 d p.5105 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 -0000000005252192 0000000000000004 B rval -0000000004200240 0000000000000778 t scanfiles - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 -0000000005252220 0000000000000004 B sflag - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000005252188 0000000000000004 B tflag -0000000005252184 0000000000000004 B vflag - U warn@@FBSD_1.0 - U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-hexa.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-hexa.txt deleted file mode 100644 index b82b3563..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-hexa.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000000502428 B _CurrentRuneLocale@@FBSD_1.0 -0000000000502140 D _DYNAMIC -00000000005022f8 D _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -00000000005022d8 d __CTOR_END__ -00000000005022d0 d __CTOR_LIST__ -00000000005022e8 d __DTOR_END__ -00000000005022e0 d __DTOR_LIST__ -0000000000502108 r __FRAME_END__ -00000000005022f0 d __JCR_END__ -00000000005022f0 d __JCR_LIST__ -0000000000502410 A __bss_start -0000000000401bc0 t __do_global_ctors_aux -0000000000400fb0 t __do_global_dtors_aux -0000000000502008 D __dso_handle - U __error@@FBSD_1.0 -0000000000502410 B __isthreaded@@FBSD_1.0 -0000000000502414 B __mb_sb_limit@@FBSD_1.0 -0000000000502000 D __progname - U __srget@@FBSD_1.0 -0000000000502430 B __stderrp@@FBSD_1.0 -0000000000502418 B __stdinp@@FBSD_1.0 -0000000000502420 B __stdoutp@@FBSD_1.0 - U __swbuf@@FBSD_1.0 -0000000000502410 A _edata -0000000000502480 A _end -0000000000401be8 T _fini -0000000000400ce0 T _init - U _init_tls@@FBSD_1.0 -0000000000400f10 T _start -00000000004001e0 r abitag - U atexit@@FBSD_1.0 -0000000000502474 B bflag -0000000000502448 b bsize.4467 -0000000000502440 b buf.4468 - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 -000000000050243c b completed.5107 - U connect@@FBSD_1.0 -0000000000401020 t cook_cat -0000000000502470 B eflag -0000000000502450 B environ - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000000502468 B filename - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 -0000000000400ff0 t frame_dummy - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000000401a40 T main - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 -0000000000502478 B nflag - U open@@FBSD_1.0 -0000000000502438 B optind@@FBSD_1.0 -0000000000502010 d p.5105 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 -0000000000502460 B rval -0000000000401730 t scanfiles - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 -000000000050247c B sflag - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -000000000050245c B tflag -0000000000502458 B vflag - U warn@@FBSD_1.0 - U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-octal.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-octal.txt deleted file mode 100644 index 213a5486..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-radix-octal.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000024022050 B _CurrentRuneLocale@@FBSD_1.0 -0000000024020500 D _DYNAMIC -0000000024021370 D _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000024021330 d __CTOR_END__ -0000000024021320 d __CTOR_LIST__ -0000000024021350 d __DTOR_END__ -0000000024021340 d __DTOR_LIST__ -0000000024020410 r __FRAME_END__ -0000000024021360 d __JCR_END__ -0000000024021360 d __JCR_LIST__ -0000000024022020 A __bss_start -0000000020015700 t __do_global_ctors_aux -0000000020007660 t __do_global_dtors_aux -0000000024020010 D __dso_handle - U __error@@FBSD_1.0 -0000000024022020 B __isthreaded@@FBSD_1.0 -0000000024022024 B __mb_sb_limit@@FBSD_1.0 -0000000024020000 D __progname - U __srget@@FBSD_1.0 -0000000024022060 B __stderrp@@FBSD_1.0 -0000000024022030 B __stdinp@@FBSD_1.0 -0000000024022040 B __stdoutp@@FBSD_1.0 - U __swbuf@@FBSD_1.0 -0000000024022020 A _edata -0000000024022200 A _end -0000000020015750 T _fini -0000000020006340 T _init - U _init_tls@@FBSD_1.0 -0000000020007420 T _start -0000000020000740 r abitag - U atexit@@FBSD_1.0 -0000000024022164 B bflag -0000000024022110 b bsize.4467 -0000000024022100 b buf.4468 - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 -0000000024022074 b completed.5107 - U connect@@FBSD_1.0 -0000000020010040 t cook_cat -0000000024022160 B eflag -0000000024022120 B environ - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000024022150 B filename - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 -0000000020007760 t frame_dummy - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000020015100 T main - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 -0000000024022170 B nflag - U open@@FBSD_1.0 -0000000024022070 B optind@@FBSD_1.0 -0000000024020020 d p.5105 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 -0000000024022140 B rval -0000000020013460 t scanfiles - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 -0000000024022174 B sflag - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000024022134 B tflag -0000000024022130 B vflag - U warn@@FBSD_1.0 - U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-no.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-no.txt deleted file mode 100644 index e2ef8cab..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-no.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000004194784 r abitag -0000000005251792 d __CTOR_LIST__ -0000000005251808 d __DTOR_LIST__ -0000000005251824 d __JCR_LIST__ -0000000004198320 t __do_global_dtors_aux -0000000005252156 b completed.5107 -0000000005251088 d p.5105 -0000000004198384 t frame_dummy -0000000005251800 d __CTOR_END__ -0000000005251816 d __DTOR_END__ -0000000005251336 r __FRAME_END__ -0000000005251824 d __JCR_END__ -0000000004201408 t __do_global_ctors_aux -0000000004198432 t cook_cat -0000000004200240 t scanfiles -0000000005252160 b buf.4468 -0000000005252168 b bsize.4467 - U fprintf@@FBSD_1.0 - U write@@FBSD_1.0 -0000000005252184 B vflag -0000000005251392 D _DYNAMIC - U putc@@FBSD_1.0 - U feof@@FBSD_1.0 -0000000005252188 B tflag -0000000005251080 D __dso_handle - U clearerr@@FBSD_1.0 - U shutdown@@FBSD_1.0 - U _init_tls@@FBSD_1.0 -0000000004197600 T _init -0000000005252192 B rval -0000000005252200 B filename -0000000005252176 B environ -0000000005252208 B eflag -0000000005252212 B bflag - U socket@@FBSD_1.0 -0000000005252112 B __isthreaded@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000005251072 D __progname -0000000004198160 T _start - U memset@@FBSD_1.0 -0000000005252216 B nflag - U connect@@FBSD_1.0 - U __error@@FBSD_1.0 - U fdopen@@FBSD_1.0 -0000000005252112 A __bss_start - U close@@FBSD_1.0 -0000000004201024 T main - U warn@@FBSD_1.0 -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000004201448 T _fini -0000000005252128 B __stdoutp@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U open@@FBSD_1.0 -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 - U fileno@@FBSD_1.0 - U __swbuf@@FBSD_1.0 - U setbuf@@FBSD_1.0 - U exit@@FBSD_1.0 - U malloc@@FBSD_1.0 - U err@@FBSD_1.0 -0000000005252112 A _edata -0000000005251832 D _GLOBAL_OFFSET_TABLE_ -0000000005252224 A _end - U setlocale@@FBSD_1.0 - U fclose@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 -0000000005252152 B optind@@FBSD_1.0 - U __srget@@FBSD_1.0 - U atexit@@FBSD_1.0 -0000000005252220 B sflag - U read@@FBSD_1.0 - w _Jv_RegisterClasses - U getc@@FBSD_1.0 - U fstat@@FBSD_1.0 - U strlcpy@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-num.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-num.txt deleted file mode 100644 index 6ddfc583..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-num.txt +++ /dev/null @@ -1,77 +0,0 @@ - w _Jv_RegisterClasses - U __error@@FBSD_1.0 - U __srget@@FBSD_1.0 - U __swbuf@@FBSD_1.0 - U _init_tls@@FBSD_1.0 - U atexit@@FBSD_1.0 - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 - U connect@@FBSD_1.0 - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 - U warn@@FBSD_1.0 - U write@@FBSD_1.0 -0000000004194784 r abitag -0000000004197600 T _init -0000000004198160 T _start -0000000004198320 t __do_global_dtors_aux -0000000004198384 t frame_dummy -0000000004198432 t cook_cat -0000000004200240 t scanfiles -0000000004201024 T main -0000000004201408 t __do_global_ctors_aux -0000000004201448 T _fini -0000000005251072 D __progname -0000000005251080 D __dso_handle -0000000005251088 d p.5105 -0000000005251336 r __FRAME_END__ -0000000005251392 D _DYNAMIC -0000000005251792 d __CTOR_LIST__ -0000000005251800 d __CTOR_END__ -0000000005251808 d __DTOR_LIST__ -0000000005251816 d __DTOR_END__ -0000000005251824 d __JCR_END__ -0000000005251824 d __JCR_LIST__ -0000000005251832 D _GLOBAL_OFFSET_TABLE_ -0000000005252112 A __bss_start -0000000005252112 B __isthreaded@@FBSD_1.0 -0000000005252112 A _edata -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 -0000000005252128 B __stdoutp@@FBSD_1.0 -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 -0000000005252152 B optind@@FBSD_1.0 -0000000005252156 b completed.5107 -0000000005252160 b buf.4468 -0000000005252168 b bsize.4467 -0000000005252176 B environ -0000000005252184 B vflag -0000000005252188 B tflag -0000000005252192 B rval -0000000005252200 B filename -0000000005252208 B eflag -0000000005252212 B bflag -0000000005252216 B nflag -0000000005252220 B sflag -0000000005252224 A _end diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt deleted file mode 100644 index e2ef8cab..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000004194784 r abitag -0000000005251792 d __CTOR_LIST__ -0000000005251808 d __DTOR_LIST__ -0000000005251824 d __JCR_LIST__ -0000000004198320 t __do_global_dtors_aux -0000000005252156 b completed.5107 -0000000005251088 d p.5105 -0000000004198384 t frame_dummy -0000000005251800 d __CTOR_END__ -0000000005251816 d __DTOR_END__ -0000000005251336 r __FRAME_END__ -0000000005251824 d __JCR_END__ -0000000004201408 t __do_global_ctors_aux -0000000004198432 t cook_cat -0000000004200240 t scanfiles -0000000005252160 b buf.4468 -0000000005252168 b bsize.4467 - U fprintf@@FBSD_1.0 - U write@@FBSD_1.0 -0000000005252184 B vflag -0000000005251392 D _DYNAMIC - U putc@@FBSD_1.0 - U feof@@FBSD_1.0 -0000000005252188 B tflag -0000000005251080 D __dso_handle - U clearerr@@FBSD_1.0 - U shutdown@@FBSD_1.0 - U _init_tls@@FBSD_1.0 -0000000004197600 T _init -0000000005252192 B rval -0000000005252200 B filename -0000000005252176 B environ -0000000005252208 B eflag -0000000005252212 B bflag - U socket@@FBSD_1.0 -0000000005252112 B __isthreaded@@FBSD_1.0 - U getopt@@FBSD_1.0 -0000000005251072 D __progname -0000000004198160 T _start - U memset@@FBSD_1.0 -0000000005252216 B nflag - U connect@@FBSD_1.0 - U __error@@FBSD_1.0 - U fdopen@@FBSD_1.0 -0000000005252112 A __bss_start - U close@@FBSD_1.0 -0000000004201024 T main - U warn@@FBSD_1.0 -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 - U ferror@@FBSD_1.0 -0000000004201448 T _fini -0000000005252128 B __stdoutp@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U open@@FBSD_1.0 -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 - U fileno@@FBSD_1.0 - U __swbuf@@FBSD_1.0 - U setbuf@@FBSD_1.0 - U exit@@FBSD_1.0 - U malloc@@FBSD_1.0 - U err@@FBSD_1.0 -0000000005252112 A _edata -0000000005251832 D _GLOBAL_OFFSET_TABLE_ -0000000005252224 A _end - U setlocale@@FBSD_1.0 - U fclose@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 -0000000005252152 B optind@@FBSD_1.0 - U __srget@@FBSD_1.0 - U atexit@@FBSD_1.0 -0000000005252220 B sflag - U read@@FBSD_1.0 - w _Jv_RegisterClasses - U getc@@FBSD_1.0 - U fstat@@FBSD_1.0 - U strlcpy@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt deleted file mode 100644 index 4207b986..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt +++ /dev/null @@ -1,77 +0,0 @@ -0000000005252224 A _end -0000000005252220 B sflag -0000000005252216 B nflag -0000000005252212 B bflag -0000000005252208 B eflag -0000000005252200 B filename -0000000005252192 B rval -0000000005252188 B tflag -0000000005252184 B vflag -0000000005252176 B environ -0000000005252168 b bsize.4467 -0000000005252160 b buf.4468 -0000000005252156 b completed.5107 -0000000005252152 B optind@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 -0000000005252128 B __stdoutp@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005252112 A _edata -0000000005252112 B __isthreaded@@FBSD_1.0 -0000000005252112 A __bss_start -0000000005251832 D _GLOBAL_OFFSET_TABLE_ -0000000005251824 d __JCR_LIST__ -0000000005251824 d __JCR_END__ -0000000005251816 d __DTOR_END__ -0000000005251808 d __DTOR_LIST__ -0000000005251800 d __CTOR_END__ -0000000005251792 d __CTOR_LIST__ -0000000005251392 D _DYNAMIC -0000000005251336 r __FRAME_END__ -0000000005251088 d p.5105 -0000000005251080 D __dso_handle -0000000005251072 D __progname -0000000004201448 T _fini -0000000004201408 t __do_global_ctors_aux -0000000004201024 T main -0000000004200240 t scanfiles -0000000004198432 t cook_cat -0000000004198384 t frame_dummy -0000000004198320 t __do_global_dtors_aux -0000000004198160 T _start -0000000004197600 T _init -0000000004194784 r abitag - U write@@FBSD_1.0 - U warn@@FBSD_1.0 - U strlcpy@@FBSD_1.0 - U socket@@FBSD_1.0 - U shutdown@@FBSD_1.0 - U setlocale@@FBSD_1.0 - U setbuf@@FBSD_1.0 - U read@@FBSD_1.0 - U putc@@FBSD_1.0 - U open@@FBSD_1.0 - U memset@@FBSD_1.0 - U malloc@@FBSD_1.0 - U getopt@@FBSD_1.0 - U getc@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U fstat@@FBSD_1.0 - U fprintf@@FBSD_1.0 - U fileno@@FBSD_1.0 - U ferror@@FBSD_1.0 - U feof@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U fclose@@FBSD_1.0 - U exit@@FBSD_1.0 - U err@@FBSD_1.0 - U connect@@FBSD_1.0 - U close@@FBSD_1.0 - U clearerr@@FBSD_1.0 - U atexit@@FBSD_1.0 - U _init_tls@@FBSD_1.0 - U __swbuf@@FBSD_1.0 - U __srget@@FBSD_1.0 - U __error@@FBSD_1.0 - w _Jv_RegisterClasses diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt deleted file mode 100644 index f36e0316..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt +++ /dev/null @@ -1,25 +0,0 @@ -0000000000001806 t cook_cat -0000000000000778 t scanfiles -0000000000000376 T main -0000000000000146 T _start -0000000000000024 r abitag -0000000000000008 B filename -0000000000000008 B environ -0000000000000008 b buf.4468 -0000000000000008 b bsize.4467 -0000000000000008 B __stdoutp@@FBSD_1.0 -0000000000000008 B __stdinp@@FBSD_1.0 -0000000000000008 B __stderrp@@FBSD_1.0 -0000000000000008 D __progname -0000000000000008 B _CurrentRuneLocale@@FBSD_1.0 -0000000000000004 B vflag -0000000000000004 B tflag -0000000000000004 B sflag -0000000000000004 B rval -0000000000000004 B optind@@FBSD_1.0 -0000000000000004 B nflag -0000000000000004 B eflag -0000000000000004 B bflag -0000000000000004 B __mb_sb_limit@@FBSD_1.0 -0000000000000004 B __isthreaded@@FBSD_1.0 -0000000000000001 b completed.5107 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse.txt deleted file mode 100644 index 80c5f860..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-reverse.txt +++ /dev/null @@ -1,77 +0,0 @@ - U write@@FBSD_1.0 - U warn@@FBSD_1.0 -0000000005252184 B vflag -0000000005252188 B tflag - U strlcpy@@FBSD_1.0 - U socket@@FBSD_1.0 - U shutdown@@FBSD_1.0 -0000000005252220 B sflag - U setlocale@@FBSD_1.0 - U setbuf@@FBSD_1.0 -0000000004200240 t scanfiles -0000000005252192 B rval - U read@@FBSD_1.0 - U putc@@FBSD_1.0 -0000000005251088 d p.5105 -0000000005252152 B optind@@FBSD_1.0 - U open@@FBSD_1.0 -0000000005252216 B nflag - U memset@@FBSD_1.0 - U malloc@@FBSD_1.0 -0000000004201024 T main - U getopt@@FBSD_1.0 - U getc@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U fstat@@FBSD_1.0 -0000000004198384 t frame_dummy - U fprintf@@FBSD_1.0 - U fileno@@FBSD_1.0 -0000000005252200 B filename - U ferror@@FBSD_1.0 - U feof@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U fclose@@FBSD_1.0 - U exit@@FBSD_1.0 - U err@@FBSD_1.0 -0000000005252176 B environ -0000000005252208 B eflag -0000000004198432 t cook_cat - U connect@@FBSD_1.0 -0000000005252156 b completed.5107 - U close@@FBSD_1.0 - U clearerr@@FBSD_1.0 -0000000005252160 b buf.4468 -0000000005252168 b bsize.4467 -0000000005252212 B bflag - U atexit@@FBSD_1.0 -0000000004194784 r abitag -0000000004198160 T _start - U _init_tls@@FBSD_1.0 -0000000004197600 T _init -0000000004201448 T _fini -0000000005252224 A _end -0000000005252112 A _edata - U __swbuf@@FBSD_1.0 -0000000005252128 B __stdoutp@@FBSD_1.0 -0000000005252120 B __stdinp@@FBSD_1.0 -0000000005252144 B __stderrp@@FBSD_1.0 - U __srget@@FBSD_1.0 -0000000005251072 D __progname -0000000005252116 B __mb_sb_limit@@FBSD_1.0 -0000000005252112 B __isthreaded@@FBSD_1.0 - U __error@@FBSD_1.0 -0000000005251080 D __dso_handle -0000000004198320 t __do_global_dtors_aux -0000000004201408 t __do_global_ctors_aux -0000000005252112 A __bss_start -0000000005251824 d __JCR_LIST__ -0000000005251824 d __JCR_END__ -0000000005251336 r __FRAME_END__ -0000000005251808 d __DTOR_LIST__ -0000000005251816 d __DTOR_END__ -0000000005251792 d __CTOR_LIST__ -0000000005251800 d __CTOR_END__ - w _Jv_RegisterClasses -0000000005251832 D _GLOBAL_OFFSET_TABLE_ -0000000005251392 D _DYNAMIC -0000000005252136 B _CurrentRuneLocale@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-size.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-size.txt deleted file mode 100644 index cadebc5b..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-sort-size.txt +++ /dev/null @@ -1,25 +0,0 @@ -0000000000000001 b completed.5107 -0000000000000004 B __isthreaded@@FBSD_1.0 -0000000000000004 B __mb_sb_limit@@FBSD_1.0 -0000000000000004 B bflag -0000000000000004 B eflag -0000000000000004 B nflag -0000000000000004 B optind@@FBSD_1.0 -0000000000000004 B rval -0000000000000004 B sflag -0000000000000004 B tflag -0000000000000004 B vflag -0000000000000008 B _CurrentRuneLocale@@FBSD_1.0 -0000000000000008 D __progname -0000000000000008 B __stderrp@@FBSD_1.0 -0000000000000008 B __stdinp@@FBSD_1.0 -0000000000000008 B __stdoutp@@FBSD_1.0 -0000000000000008 b bsize.4467 -0000000000000008 b buf.4468 -0000000000000008 B environ -0000000000000008 B filename -0000000000000024 r abitag -0000000000000146 T _start -0000000000000376 T main -0000000000000778 t scanfiles -0000000000001806 t cook_cat diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-undef.txt b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-undef.txt deleted file mode 100644 index 2517744d..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj-undef.txt +++ /dev/null @@ -1,33 +0,0 @@ - w _Jv_RegisterClasses - U __error@@FBSD_1.0 - U __srget@@FBSD_1.0 - U __swbuf@@FBSD_1.0 - U _init_tls@@FBSD_1.0 - U atexit@@FBSD_1.0 - U clearerr@@FBSD_1.0 - U close@@FBSD_1.0 - U connect@@FBSD_1.0 - U err@@FBSD_1.0 - U exit@@FBSD_1.0 - U fclose@@FBSD_1.0 - U fdopen@@FBSD_1.0 - U feof@@FBSD_1.0 - U ferror@@FBSD_1.0 - U fileno@@FBSD_1.0 - U fprintf@@FBSD_1.0 - U fstat@@FBSD_1.0 - U fwrite@@FBSD_1.0 - U getc@@FBSD_1.0 - U getopt@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U putc@@FBSD_1.0 - U read@@FBSD_1.0 - U setbuf@@FBSD_1.0 - U setlocale@@FBSD_1.0 - U shutdown@@FBSD_1.0 - U socket@@FBSD_1.0 - U strlcpy@@FBSD_1.0 - U warn@@FBSD_1.0 - U write@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj.uu b/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj.uu deleted file mode 100644 index 69f5bf40..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_object1/test_obj.uu +++ /dev/null @@ -1,351 +0,0 @@ -begin 644 test_obj -M?T5,1@(!`0D```````````(`/@`!````$`]```````!``````````&`F```` -M`````````$``.``'`$``'``9``8````%````0`````````!``$```````$`` -M0```````B`$```````"(`0````````@``````````P````0```#(`0`````` -M`,@!0```````R`%````````5`````````!4``````````0`````````!```` -M!0````````````````!``````````$```````(P=````````C!T````````` -M`!````````$````&`````"``````````(%`````````@4```````$`0````` -M``"`!```````````$````````@````8```!`(0```````$`A4```````0"%0 -M``````"0`0```````)`!````````"``````````$````!````.`!```````` -MX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$ -M````A!T```````"$'4```````(0=0```````"``````````(``````````0` -M````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E -M94)31``D-0P`)0```"P`````````*0```!P`````````!P```"4````````` -M'P````P````$````"0```"H````;````$P````\````B````$0````4````5 -M````)@```"L````G````(P```!X````*````(0```````````````````!T` -M```(````(````!`````!``````````8````````````````````````````` -M```````````````````````````````````````````````````````````` -M``````T````"````````````````````#@```!0````````````````````` -M``````````,````:`````````!8``````````````!<`````````"P`````` -M```D````&````!(````H````&0`````````````````````````````````` -M````````````@````!(````$#4```````)``````````+0$``!(````4#4`` -M````````````````#0$``!(````D#4```````)D`````````7P```!(````T -M#4```````&4`````````_0```!(```!$#4```````%H`````````$@$``!(` -M``!4#4``````````````````ZP```!(```!D#4````````(`````````<@`` -M`!$`%P!0)%````````@`````````:P```!(```!T#4`````````````````` -MT````!$`%P`0)%````````0`````````W0```!(```"$#4```````*H"```` -M````CP```!$`$```(%````````@`````````Y````!(```"4#4`````````` -M````````-P```!(```"D#4``````````````````H0```!(```"T#4`````` -M``@`````````R0```!(```#$#4```````!(!````````!P$``!(```#4#4`` -M````````````````00$``!(```#D#4```````*@`````````'P```!$`%P`4 -M)%````````0`````````/P```!$`%P`8)%````````@`````````F@```!(` -M``#T#4```````&4`````````+0```!$`%P`@)%````````@`````````+`$` -M`!(````$#D```````,H`````````RP```!(````4#D`````````````````` -MM@```!$`%P`H)%````````@`````````.@$``!(````D#D```````%L````` -M````]0```!(````T#D```````,,`````````,P$``!(```!$#D```````!,` -M````````'0$``!(```!4#D```````"\`````````9````!(```!D#D`````` -M```%`````````@$``!(```!T#D```````*H`````````1@$``!``\?^`)%`` -M````````````````(@$``!(```"$#D```````&H#````````!@$``!(```"4 -M#D```````/(`````````50```!$`%P`P)%````````@`````````B````!$` -M%P`X)%````````0`````````2````!(```"D#D```````"4`````````&P$` -M`!(```"T#D```````"\`````````J0```!(```#$#D`````````````````` -M`0```"``````````````````````````4````!(```#4#D```````'\````` -M````>@```!(```#D#D``````````````````K@```!(```#T#D```````#8` -M`````````%]*=E]296=I0!?0W5R@<```(`2P$````````0)%````````4````*```````````````4 -M)%````````4````3```````````````8)%````````4````4```````````` -M```@)%````````4````6```````````````H)%````````4````9```````` -M```````P)%````````4````C```````````````X)%````````4````D```` -M```````````0(U````````<````!```````````````8(U````````<````" -M```````````````@(U````````<````#```````````````H(U````````<` -M```$```````````````P(U````````<````%```````````````X(U`````` -M``<````&``````````````!`(U````````<````'``````````````!((U`` -M``````<````)``````````````!0(U````````<````+``````````````!8 -M(U````````<````-``````````````!@(U````````<````.```````````` -M``!H(U````````<````/``````````````!P(U````````<````0```````` -M``````!X(U````````<````1``````````````"`(U````````<````2```` -M``````````"((U````````<````5``````````````"0(U````````<````7 -M``````````````"8(U````````<````8``````````````"@(U````````<` -M```:``````````````"H(U````````<````;``````````````"P(U`````` -M``<````<``````````````"X(U````````<````=``````````````#`(U`` -M``````<````>``````````````#((U````````<````?``````````````#0 -M(U````````<````A``````````````#8(U````````<````B```````````` -M``#@(U````````<````E``````````````#H(U````````<````F```````` -M``````#P(U````````<````G``````````````#X(U````````<````I```` -M````````````)%````````<````J```````````````()%````````<````K -M``````````````!(@^P(Z`<#``#HT@X``$B#Q`C#`/\U!A80`/\E"!80`)"0 -MD)#_)086$`!H`````.G@_____R7^%1``:`$```#IT/____\E]A40`&@"```` -MZ<#_____)>X5$`!H`P```.FP_____R7F%1``:`0```#IH/____\EWA40`&@% -M````Z9#_____)=85$`!H!@```.F`_____R7.%1``:`<```#I%1``:`T```#I$/__ -M__\EEA40`&@.````Z0#_____)8X5$`!H#P```.GP_O___R6&%1``:!````#I -MX/[___\E?A40`&@1````Z=#^____)785$`!H$@```.G`_O___R5N%1``:!,` -M``#IL/[___\E9A40`&@4````Z:#^____)5X5$`!H%0```.F0_O___R56%1`` -M:!8```#I@/[___\E3A40`&@7````Z7#^____)485$`!H&````.E@_O___R4^ -M%1``:!D```#I4/[___\E-A40`&@:````Z4#^____)2X5$`!H&P```.DP_O__ -M_R4F%1``:!P```#I(/[___\E'A40`&@=````Z1#^____)185$`!H'@```.D` -M_O___R4.%1``:!\```#I\/W__P```````````````$%43(UG"%53BQ](8\.% -MVTB-;,<02(DM)140`'XX2(M7"$B%TG0O2(D5PQ`0``^V`H3`="%(_\(\+TB+ -M!;`0$`!(#T3"2(D%I1`0``^V`DC_PH3`=>*X0"%0`$B%P'0K2(GWZ#W___^_ -MZ!M``.@S____Z%K]__^)WTB)ZDR)YNBM"@``B!T['5D3$`!]%4B+%603$`!(8\/V1,)"!`^%O0(``$2+'3<3$`!%A=L/A3H$ -M``!(BS4W$Q``BT8,_\B%P(E&#`^(_`0``$B+!L8`34C_P$B)!D2+%003$`!% -MA=(/A3`$``!(BS4$$Q``BT8,_\B%P(E&#`^(!P4``$B+!L8`+4C_P$B)!H/C -M?X7;>!$['<\2$``/C#H"``!F9I!FD(L]NA(0`(7_#X5V`0``2(LUNQ(0`(M& -M#/_(A<")1@P/B/(!``!(BP8/MM.(&$C_P$B)!O_"#Y3`A,!U(XG=BS5\$A`` -MA?8/A+7^__],B>?H,/W__XG#@_O_#X7-_O__BPU;$A``APXLU=1(0`(7V=`R#^PH/A*P"``!%,?:+#5L2 -M$`"%R0^$8/[__XL521(0`(72#Y3"@_L*#Y7`",(/A$?^__](BSW;$1``0?_% -M,J^01Q``.BM^O__BP6S$1``A<`/A?`#``!(BP6T$1``#[]`$,'H!H/@ -M`83`#X4Q____@_L*#X4'_O__BP7C$1``A<`/A+O^__^+!741$`"%P`^%^@$` -M`$B+-781$`"+1@S_R(7`B48,#XC4`@``2(L&Q@`D2/_`2(D&BSU$$1``A?\/ -MA(K^__](BS5%$1``B=_H0OK____`#Y3`Z9S^__]F9F:0BP5F$1``A<`/A%+^ -M__^+!0P1$`"%P`^%R0$``$B+-0T1$`"+1@S_R(7`B48,#XB,`@``2(L&Q@!> -M2/_`2(D&BP7;$!``A<`/A;\!``!(BS7<$!``BT8,_\B%P(E&#`^(?`(``$B+ -M!HG=Q@!)2/_`2(D&Z2?^__\[1BA\"8#["@^%`/[__XG?Z+CZ__^)PF:0Z?[] -M__](BQ6<$!``2&/#]D3"00(/A+;]__]$BPUO$!``187)#X5K`@``2(LU;Q`0 -M`(M&#/_(A<")1@P/B`0#``!(BP;&`%Y(_\!(B09$BP4\$!``187`#X6&`0`` -M2(LU/!`0`(G8OS\```"#R$"#^W\/1?B+1@S_R(7`B48,#XAK`@``2(L&0`^V -MUT"(.$C_P$B)!O_"#X23_?__B=WI:_W__TR)Y^C)^?__A<`/E<"$P`^$F?W_ -M_TB+-2D0$``QP+]&'$``Z)GY__^+%;\/$`#'!040$``!````A=(/A8("``!F -M08-D)!"?BP6@#Q``A<`/A&?]__](BSVA#Q``Z'#Y__^%P`^5P.EB_?__3(GG -MZ`[Z__^)P^G6^___2(LU?`\0`+\D````Z';X____P`^4P(3`#X25_/__Z>_\ -M__]%A?8/A````Z'+X____P`^%9?W__^G@ -M^___D#M&*`^->_W__[])````9I#H3_C____`#X3"^___B=V0Z9G[__\[1B@/ -MC?OZ__^_30```.@L^/___\`/A?7Z___IFOO__TB+-00.$`"_7@```.C^]O__ -M_\`/A9_]___I?/O__SM&*`^-\/K__[\M````Z.[W____P`^%ZOK__V:0Z5K[ -M__](BSW$#1``9F9FD.B/]___A<`/E<#I!_S__SM&*'P*0(#_"@^%AOW__V:0 -MZ*_W__^)PNF(_?__1(L%?0T0`$6%P'5B#[]'$,'H!8/@`83`#X2.^?__BSU@ -M#1``A?]U6$B+!5T-$`!F@V`0G^ES^?__.T8H#XWS_/__OUX```#H7/?____` -M#X7M_/__Z=F9F:09F9FD.A/]O__Z=?Z__]F9I!F9I#H+_;__X7` -M#Y7`ZY9(BST%#1``Z"SV___I&_G__[Y)'$``OP$````QP.A&]___9I!!5T4Q -M_T%6055!5%532('LJ````$B-1"0@2(E\)!B)="042(/``DB)1"0(2(M$)!A. -MBS3X387V#X3L````_+]0'$``N0(```!,B?;SI@^%`@$``$C'!=H,$`!2'$`` -M13'M1(M4)!1%A=)T-T6%[0^$T````+Y='$``1(GOZ!/V__](B<-(B_HKO;_ -M_TB#^`!(B<,/CJT````Q[>L'2"G#=-0!Q4AC]4@#-0@,$`!(B=I$B>?HT?3_ -M_TB%P'G?ODD<0`"_`0```#'`Z!OV__]%A?\/A"'___](@<2H````6UU!7$%= -M05Y!7\-(BSV="Q``Z*#W___I/____S'V,(G_2(D]#PL0`.@F]?__2(7`2(D%^`H0``^%LO[__[Y8 -M'$``OP$```#H%_7__V9FD$B-?"0@,?:Z:@```.@C]/__,=*^`0```+\!```` -MZ/+S__^%P$&)Q0^()/___TB+?"0(NF@```!,B?;&1"0A`>A0]?__@_AG=C+H -M!O3__\<`/P```.GX_O__2(LUJ`H0`+]&'$``,<#H&/3__\<%B@H0``$```#I -M^_[__XU0`TB-="0@1(GOZ+GS__^%P'@^O@$```!$B>_H6//____`#X6-_?__ -M,?\QP.C7\___9F:0Z7S]__](BQ5,"A``OD8<0`"_`0```#'`Z$?T__]$B>_H -MG_/__^EW_O__9F:09F:058G]OP(```!32(GSOD4<0`!(@^P(Z"KT__]F9I!F -M9I"Z7QQ``$B)WHGOZ!7S__^#^/\/A+@```"#Z&*#^!1V)4B+#:D)$`"_:!Q` -M`+HA````O@$```#H:?/__[\!````Z*_S__^)P/\DQ9`<0`#'!:`)$``!```` -MZZ9(BSU?"1``,?;H?//__^N6QP6$"1```0```,<%?@D0``$```#K@,<%D@D0 -M``$```#IUUP8L=R`@0`(7;=;=$ -MBQVY"!``187;=:LQ]NB%^___ZZR+/:T($`#HG/+__Y"0D)"0D)"02(L%"0<0 -M`%-(@_C_=!4QV__02(N#R")0`$B#ZPA(@_C_=>U;PY"0D$B#[`CHO_/__TB# -MQ`C#```D1G)E94)31#H@'`@)``````!&___ -MD`(0```````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M``!%'$``````````````````Z")0```````4``````````%Z4@`!>!`!`PP' -M")`!```<````'````!`/0`"2`````$(.$(P"10X800X@@P2&`Q0````\```` -ML`]``#@`````1`X0`````!0```!4````\`]``"(``````````````"P```!L -M````(!!```X'````0@X020X80@X@C`2-`XX"1`XH00XP@P:&!0```````#0` -M``"<````,!=```H#````0@X0CP)%#AA"#B!"#BA!#C!!#CA'#N`!@P>&!HP% -MC02.`P``````'````-0```!`&D``>`$```!!#A"&`D@.&(,#3`X@```````` -M&``````````!>E(``7@0`0,,!PB0`0```````!0````@````P!M``"4````` -M2`X0@P(```$`````````%0`````````,`````````.`,0```````#0`````` -M``#H&T````````0`````````^`%````````%`````````&@'0```````!@`` -M``````!(`T````````H`````````5`$````````+`````````!@````````` -M%0````````````````````,`````````^")0```````"```````````#```` -M````%``````````'`````````!<`````````X`E````````'`````````#@) -M0```````"`````````"H``````````D`````````&`````````#^__]O```` -M`!@)0```````____;P`````!`````````/#__V\`````O`A````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M``#__________P``````````__________\`````````````````````0"%0 -M````````````````````````````"@U````````:#4```````"H-0``````` -M.@U```````!*#4```````%H-0```````:@U```````!Z#4```````(H-0``` -M````F@U```````"J#4```````+H-0```````R@U```````#:#4```````.H- -M0```````^@U````````*#D```````!H.0```````*@Y````````Z#D`````` -M`$H.0```````6@Y```````!J#D```````'H.0```````B@Y```````":#D`` -M`````*H.0```````N@Y```````#*#D```````-H.0```````Z@Y```````#Z -M#D`````````D1G)E94)31#H@6UT86(`+G-T6YS>6T`+F1Y;G-T<@`N9VYU+G9E -M6YA;6EC`"YC=&]R`````````````````````0`` -M``````````````````$````"`````````````````````````&`M```````` -M^`H````````;````.0````@`````````&``````````)`````P`````````` -M``````````````!8.````````+$$```````````````````!```````````` -M``````````````````````````````````````````````,``0#(`4`````` -M``````````````````,``@#@`4````````````````````````,``P#X`4`` -M``````````````````````,`!`!(`T````````````````````````,`!0!H -M!T````````````````````````,`!@"\"$````````````````````````,` -M!P`8"4````````````````````````,`"``X"4`````````````````````` -M``,`"0#@"4````````````````````````,`"@#@#$`````````````````` -M``````,`"P#T#$````````````````````````,`#``0#T`````````````` -M``````````,`#0#H&T````````````````````````,`#@#X&T`````````` -M``````````````,`#P"$'4````````````````````````,`$```(%`````` -M``````````````````,`$0`8(%````````````````````````,`$@!`(5`` -M``````````````````````,`$P#0(E````````````````````````,`%`#@ -M(E````````````````````````,`%0#P(E````````````````````````,` -M%@#X(E````````````````````````,`%P`0)%`````````````````````` -M``,`&`````````````````````````````,`&0`````````````````````` -M``````,`&@````````````````````````````,`&P`````````````````` -M`````0````0`\?\`````````````````````"`````$``@#@`4```````!@` -M````````#P````0`\?\`````````````````````+0````0`\?\````````` -M````````````/`````0`\?\`````````````````````#P````0`\?\````` -M````````````````1P````0`\?\`````````````````````4@````$`$P#0 -M(E``````````````````8`````$`%`#@(E``````````````````;@````$` -M%0#P(E``````````````````>P````(`#`"P#T``````````````````D0`` -M``$`%P`\)%````````$`````````H`````$`$``0(%`````````````````` -MIP````(`#`#P#T``````````````````1P````0`\?\````````````````` -M````LP````$`$P#8(E``````````````````P`````$`%`#H(E`````````` -M````````S0````$`$0`((5``````````````````VP````$`%0#P(E`````` -M````````````YP````(`#`#`&T``````````````````_0````0`\?\````` -M````````````````+0````0`\?\`````````````````````/`````0`\?\` -M````````````````````_0````0`\?\`````````````````````&P$```0` -M\?\`````````````````````(0$```(`#``@$$````````X'````````*@$` -M``(`#``P%T````````H#````````-`$```$`%P!`)%````````@````````` -M/0$```$`%P!()%````````@`````````2`$``!(````$#4```````)`````` -M````6@$``!(````4#4``````````````````:@$``!$`%P!8)%````````0` -M````````<`$``!$`$@!`(5``````````````````>0$``!(````D#4`````` -M`)D`````````B`$``!(````T#4```````&4`````````EP$``!$`%P!<)%`` -M``````0`````````G0$``!$"$``((%``````````````````J@$``!(```!$ -M#4```````%H`````````O0$``!(```!4#4``````````````````T`$``!(` -M``!D#4````````(`````````Y`$``!(`"@#@#$``````````````````Z@$` -M`!$`%P!@)%````````0`````````[P$``!$`%P!H)%````````@````````` -M^`$``!$`%P!0)%````````@```````````(``!$`%P!P)%````````0````` -M````!@(``!$`%P!T)%````````0`````````#`(``!(```!T#4`````````` -M````````'0(``!$`%P`0)%````````0`````````-`(``!(```"$#4`````` -M`*H"````````10(``!$`$```(%````````@`````````4`(``!(`#``0#T`` -M`````)(`````````5P(``!(```"4#4``````````````````:`(``!$`%P!X -M)%````````0`````````;@(``!(```"D#4``````````````````@`(``!(` -M``"T#4````````@`````````D@(``!(```#$#4```````!(!````````HP(` -M`!``\?\0)%``````````````````KP(``!(```#4#4`````````````````` -MOP(``!(`#`!`&D```````'@!````````Q`(``!(```#D#4```````*@````` -M````TP(``!$`%P`4)%````````0`````````ZP(``!$`%P`8)%````````@` -M````````_@(``!(```#T#4```````&4`````````#P,``!(`#0#H&T`````` -M````````````%0,``!$`%P`@)%````````@`````````*0,``!(````$#D`` -M`````,H`````````.@,``!(````4#D``````````````````20,``!$`%P`H -M)%````````@`````````9@,``!(````D#D```````%L`````````=P,``!(` -M```T#D```````,,`````````B0,``!(```!$#D```````!,`````````F@,` -M`!(```!4#D```````"\`````````J0,``!(```!D#D`````````%```````` -MN@,``!(```!T#D```````*H`````````R`,``!``\?\0)%`````````````` -M````SP,``!$`%@#X(E``````````````````Y0,``!``\?^`)%`````````` -M````````Z@,``!(```"$#D```````&H#````````_@,``!(```"4#D`````` -M`/(`````````#P0``!$`%P`P)%````````@`````````(P0``!$`%P`X)%`` -M``````0`````````-`0``!(```"D#D```````"4`````````1@0``!(```"T -M#D```````"\`````````5P0``!$`%P!\)%````````0`````````700``!(` -M``#$#D``````````````````;`0``"``````````````````````````@`0` -M`!(```#4#D```````'\`````````CP0``!(```#D#D`````````````````` -MGP0``!(```#T#D```````#8``````````&-R=#$N8P!A8FET86<`+W5S0!?7T-43U)?14Y$7U\`7U]$5$]27T5. -M1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G;&]B86Q?8W1O -M8+$`!H"````.E@_____R7>"Q``:`D```#I4/____\E -MU@L0`&@*````Z4#_____)#&1>\!2,=%\`````#K -M+4B+=>!(BWVPZ&O^__\/MA!(BT7P2`-%P`^V`#C"#Y3`B$7O2(-MX`%(@T7P -M`4B+1?!(.T78\`=!(BWVPZ"S^__\/MA!(BT782`-%P`^V -M`#C"#Y3`B$7O2(-MX`%(@WW@`'0&@'WO`'7+2(M%V$@#1<`/M@"$P'XR#[9= -M[TB+?;"^`````.CC_?__#[802(M%V$@#1<`/M@`XP@^>P`^VP"'8A<`/E<"( -M1>\/MD7O2(/$2%O)PV9F9I!52(GE2(/L$(E]_(EU^(-]_`%U)X%]^/__``!U -M'K\4%5``Z-W\__^Z"!!0`+X`````O]`*0`#HV?S__\G#D&:054B)Y;[__P`` -MOP$```#HK?___\G#D&9F9I!F9I!F9I!52(GE2(/L$$B)??B_%!50`.@N_?__ -MR<-F9F:09F9FD%5(B>5(@^P@QT7T"@```$BX\6CCB+7XY#Y(B47XZ:<```#R -M#Q!-^/(/$`61`0``\@]9P>B<_/__9@\HR/(/$`6$`0``9@\HT?(/6=#R#Q%5 -MX/(/$$WX\@\0!7(!``!F#RC1\@]>T&8/*,+H9?S___(/$$W@\@]>R/(/$4WH -M\@\01?B_`!10`.@H_/__2(G'OB````#H2_S__TB)Q_(/$$7HZ`[\__](B<>^ -M"@```.@Q_/__\@\03?CR#Q`%^````/(/6,'R#Q%%^/(/$$WX\@\0!0(!``!F -M#R[!#X="____N`````#)PY"0D)"0D)"0D%5(B>5(B7WX2(EU\$B+1?!(BQ!( -MBT7X2(L`2#G"A(BT7HR<.0D)"0D)"0D)!( -MBP4Y!Q``4TB#^/]T%3';_]!(BX-8$U``2(/K"$B#^/]U[5O#D)"02(/L".B/ -M_/__2(/$",,````D1G)E94)31#H@'`@)``````!&___^`(0```````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M`%@,0`````````````````!X$U```````!0``````````7I2``%X$`$##`<( -MD`$``!P````<````0`A``)(`````0@X0C`)%#AA!#B"#!(8#%````#P```#@ -M"$``.`````!$#A``````%````%0````@"4``(@``````````````'``````` -M```!>E!2``%X$`8#!`A```,,!PB0`0`````<````)````.`+0``W`````$$. -M$(8"0PT&`````````!P```!$````4`E``!P!````00X0A@)##09%@P,````` -M'````&0```!P"D``/0````!!#A"&`D,-!@`````````<````A````+`*0``5 -M`````$$.$(8"0PT&`````````!P```"D````T`I``!@`````00X0A@)##08` -M````````'````,0```#P"D``YP````!!#A"&`D,-!@``````````````&``` -M```````!>E(``7@0`0,,!PB0`0```````!0````@````(`Q``"4`````2`X0 -M@P(```$``````````0`````````!`````````,P``````````0````````#: -M``````````$`````````Z``````````,`````````%`'0```````#0`````` -M``!(#$````````0`````````^`%````````%`````````$`$0```````!@`` -M``````"0`D````````H`````````00$````````+`````````!@````````` -M%0````````````````````,`````````B!-0```````"`````````"`!```` -M````%``````````'`````````!<`````````,`9````````'`````````!@& -M0```````"``````````8``````````D`````````&`````````#^__]O```` -M`*@%0```````____;P`````#`````````/#__V\`````@@5````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M``#__________[`*0`````````````````#__________P`````````````` -M``````"8$5````````````````````````````!Z!T```````(H'0``````` -MF@=```````"J!T```````+H'0```````R@=```````#:!T```````.H'0``` -M````^@=````````*"$```````!H(0```````*@A`````````)$9R965"4T0Z -M('-R8R]L:6(O8W-U+V-O;6UO;B]C6X`+G)E;&$N -M<&QT`"YI;FET`"YT97AT`"YF:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N -M9&%T80`N96A?9G)A;64`+F1Y;F%M:6,`+F-T;W)S`"YD=&]R```````````` -M`````````0````````````````````$````"```````````````````````` -M`!`=````````^`<````````;````.@````@`````````&``````````)```` -M`P`````````````````````````()0```````)D#```````````````````! -M``````````````````````````````````````````````````````````,` -M`0#(`4````````````````````````,``@#@`4`````````````````````` -M``,``P#X`4````````````````````````,`!`"0`D`````````````````` -M``````,`!0!`!$````````````````````````,`!@""!4`````````````` -M``````````,`!P"H!4````````````````````````,`"``8!D`````````` -M``````````````,`"0`P!D````````````````````````,`"@!0!T`````` -M``````````````````,`"P!D!T````````````````````````,`#`!`"$`` -M``````````````````````,`#0!(#$````````````````````````,`#@!8 -M#$````````````````````````,`#P`<#4````````````````````````,` -M$```$%````````````````````````,`$0`8$%`````````````````````` -M``,`$@"8$5````````````````````````,`$P!8$U`````````````````` -M``````,`%`!P$U````````````````````````,`%0"`$U`````````````` -M``````````,`%@"($U````````````````````````,`%P``%%`````````` -M``````````````,`&`````````````````````````````,`&0`````````` -M``````````````````,`&@````````````````````````````,`&P`````` -M`````````````````0````0`\?\`````````````````````"`````$``@#@ -M`4```````!@`````````#P````0`\?\`````````````````````+0````0` -M\?\`````````````````````/`````0`\?\`````````````````````#P`` -M``0`\?\`````````````````````1P````0`\?\````````````````````` -M4@````$`$P!8$U``````````````````8`````$`%`!P$U`````````````` -M````;@````$`%0"`$U``````````````````>P````(`#`#@"$`````````` -M````````D0````$`%P`0%5````````$`````````H`````$`$``0$%`````` -M````````````IP````(`#``@"4``````````````````1P````0`\?\````` -M````````````````LP````$`$P!H$U``````````````````P`````$`%`!X -M$U``````````````````S0````$`$0!@$5``````````````````VP````$` -M%0"`$U``````````````````YP````(`#``@#$``````````````````_0`` -M``0`\?\`````````````````````+0````0`\?\````````````````````` -M/`````0`\?\`````````````````````_0````0`\?\````````````````` -M````&P$```0`\?\`````````````````````(@$```(`#`"P"D```````!4` -M````````,@$```(`#`!0"4```````!P!````````4@$```(`#`!P"D`````` -M`#T`````````@@$```$`%P`4%5````````$`````````D`$```(`#`#0"D`` -M`````!@`````````F`$``!(```!T!T```````&0(````````O0$``!$`%P`` -M%%```````!`!````````U`$``!$`$@"8$5``````````````````W0$``!(` -M``"$!T```````"<`````````]`$``!$"$``($%```````````````````0(` -M`!(```"4!T````````(`````````%0(``!(`"@!0!T`````````````````` -M&P(``!$`%P`8%5````````@`````````(P(``!(```"D!T````````4````` -M````.@(``!$`$```$%````````@`````````10(``!(`#`!`"$```````)(` -M````````3`(``"(`#`#@"T```````#<`````````8@(``!``\?\`%%`````` -M````````````;@(``!(`#`#P"D```````.<`````````0!?7T-43U)?14Y$7U\`7U]$ -M5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G;&]B -M86Q?8W1O&%?871E>&ET0$!&0E-$7S$N,`!?7V1S;U]H86YD -M;&4`7VEN:71?=&QS0$!&0E-$7S$N,`!?:6YI=`!E;G9IF5%=D!`1TQ) -M0D-86%\S+C0`%]P97)S;VYA;&ET>5]V,$!`0UA804))7S$N,P!?6DY3=#AI;W-? -M8F%S931);FET1#%%=D!`1TQ)0D-86%\S+C0`7UI.2U-S:7A%;4!`1TQ)0D-8 -&6%\S+C0` -` -end diff --git a/contrib/elftoolchain/test/nm/ts/nm_option/Makefile b/contrib/elftoolchain/test/nm/ts/nm_option/Makefile deleted file mode 100644 index f832e761..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_option/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/nm/ts/nm_option/tc.sh b/contrib/elftoolchain/test/nm/ts/nm_option/tc.sh deleted file mode 100755 index e77a4d21..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_option/tc.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - run_without_diff "-z" $ERROR_USAGE -} - -tp2() -{ - run_without_diff "-Z" $ERROR_USAGE -} - -tp3() -{ - run_without_diff "-y" $ERROR_USAGE -} - -tp4() -{ - run_without_diff "-Y" $ERROR_USAGE -} - -tp5() -{ - run_without_diff "--aaaaaa" $ERROR_USAGE -} - -tp6() -{ - run_without_diff "--+_" $ERROR_USAGE -} - -tp7() -{ - run_without_diff "--help" $ERROR_OK -} - -ERROR_OK="0" -ERROR_USAGE="1" - -tet_startup="" -tet_cleanup="" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/Makefile b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/Makefile deleted file mode 100644 index 7c6f27d3..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ - -TOP= ../../../.. - -TS_DATA= test_so - -.include "${TOP}/mk/elftoolchain.tet.mk" diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/tc.sh b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/tc.sh deleted file mode 100755 index ece3f198..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/tc.sh +++ /dev/null @@ -1,198 +0,0 @@ -#!/bin/sh -# -# $Id$ - -tp1() -{ - test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt" -} - -tp2() -{ - test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt" -} - -tp3() -{ - test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt" -} - -tp4() -{ - test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt" -} - -tp5() -{ - test_external $TEST_FILE "$TEST_FILE-external.txt" -} - -tp6() -{ - test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp7() -{ - test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp8() -{ - test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt" -} - -tp9() -{ - test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt" -} - -tp10() -{ - test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt" -} - -tp11() -{ - test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt" -} - -tp12() -{ - test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt" -} - -tp14() -{ - test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt" -} - -tp15() -{ - test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt" -} - -tp16() -{ - test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt" -} - -tp17() -{ - test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt" -} - -tp18() -{ - test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt" -} - -tp19() -{ - test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt" -} - -tp20() -{ - test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt" -} - -tp21() -{ - test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt" -} - -tp22() -{ - test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt" -} - -tp23() -{ - test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt" -} - -tp24() -{ - test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt" -} - -tp25() -{ - test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt" -} - -tp26() -{ - test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt" -} - -tp27() -{ - test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt" -} - -tp28() -{ - test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt" -} - -tp29() -{ - test_undef1 $TEST_FILE "$TEST_FILE-undef.txt" -} - -tp30() -{ - test_undef2 $TEST_FILE "$TEST_FILE-undef.txt" -} - -startup() -{ - uudecode "$TEST_FILE.uu" -} - -cleanup() -{ - rm -f $TEST_FILE -} - -TEST_FILE="test_so" - -tet_startup="startup" -tet_cleanup="cleanup" - -iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30" - -ic1="tp1" -ic2="tp2" -ic3="tp3" -ic4="tp4" -ic5="tp5" -ic6="tp6" -ic7="tp7" -ic8="tp8" -ic9="tp9" -ic10="tp10" -ic11="tp11" -ic12="tp12" -ic14="tp14" -ic15="tp15" -ic16="tp16" -ic17="tp17" -ic18="tp18" -ic19="tp19" -ic20="tp20" -ic21="tp21" -ic22="tp22" -ic23="tp23" -ic24="tp24" -ic25="tp25" -ic26="tp26" -ic27="tp27" -ic28="tp28" -ic29="tp29" -ic30="tp30" - -. $TET_SUITE_ROOT/ts/common/func.sh -. $TET_ROOT/lib/xpg3sh/tcm.sh diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-dynamic.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-dynamic.txt deleted file mode 100644 index c6db3b9f..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-dynamic.txt +++ /dev/null @@ -1,38 +0,0 @@ -0000000001057328 A _DYNAMIC -0000000001057768 A _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000001057992 A __bss_start - w __cxa_finalize - U __error -0000000001057992 A _edata -0000000001058000 A _end -0000000000007112 T _fini -0000000000003320 T _init -0000000000006160 T berase -0000000000006704 T bread -0000000000006304 T bwrite -0000000000004720 T cgread -0000000000004544 T cgread1 -0000000000004400 T cgwrite1 - U close - U free - U getfsfile -0000000000003856 T getino - U ioctl - U malloc - U memcpy - U memset - U open - U pread - U pwrite -0000000000005856 T sbread -0000000000005584 T sbwrite - U snprintf - U stat - U statfs - U strdup - U strlcpy -0000000000005504 T ufs_disk_close -0000000000005424 T ufs_disk_fillout -0000000000004864 T ufs_disk_fillout_blank -0000000000004752 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-external.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-external.txt deleted file mode 100644 index 6c20fec3..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-external.txt +++ /dev/null @@ -1,38 +0,0 @@ -0000000001057328 A _DYNAMIC -0000000001057768 A _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000001057992 A __bss_start - w __cxa_finalize@@FBSD_1.0 - U __error@@FBSD_1.0 -0000000001057992 A _edata -0000000001058000 A _end -0000000000007112 T _fini -0000000000003320 T _init -0000000000006160 T berase -0000000000006704 T bread -0000000000006304 T bwrite -0000000000004720 T cgread -0000000000004544 T cgread1 -0000000000004400 T cgwrite1 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000003856 T getino - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 -0000000000005856 T sbread -0000000000005584 T sbwrite - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000000005504 T ufs_disk_close -0000000000005424 T ufs_disk_fillout -0000000000004864 T ufs_disk_fillout_blank -0000000000004752 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt deleted file mode 100644 index 6ac646ff..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000001057328 A _DYNAMIC -0000000001057768 A _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000001057992 A __bss_start - w __cxa_finalize@@FBSD_1.0 -0000000001056768 d __dso_handle - U __error@@FBSD_1.0 -0000000001057992 A _edata -0000000001058000 A _end -0000000000007112 T _fini -0000000000003320 T _init -0000000000006160 T berase -0000000000006704 T bread -0000000000006304 T bwrite -0000000000004720 T cgread -0000000000004544 T cgread1 -0000000000004400 T cgwrite1 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000003856 T getino - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 -0000000000005856 T sbread -0000000000005584 T sbwrite - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000000005504 T ufs_disk_close -0000000000005424 T ufs_disk_fillout -0000000000004864 T ufs_disk_fillout_blank -0000000000004752 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-posix.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-posix.txt deleted file mode 100644 index 3d6b4916..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-posix.txt +++ /dev/null @@ -1,39 +0,0 @@ -_DYNAMIC A 0000000000102230 -_GLOBAL_OFFSET_TABLE_ A 00000000001023e8 -_Jv_RegisterClasses w -__bss_start A 00000000001024c8 -__cxa_finalize@@FBSD_1.0 w -__dso_handle d 0000000000102000 -__error@@FBSD_1.0 U -_edata A 00000000001024c8 -_end A 00000000001024d0 -_fini T 0000000000001bc8 -_init T 0000000000000cf8 -berase T 0000000000001810 0000000000000082 -bread T 0000000000001a30 0000000000000161 -bwrite T 00000000000018a0 0000000000000184 -cgread T 0000000000001270 0000000000000014 -cgread1 T 00000000000011c0 00000000000000b0 -cgwrite1 T 0000000000001130 0000000000000090 -close@@FBSD_1.0 U -free@@FBSD_1.0 U -getfsfile@@FBSD_1.0 U -getino T 0000000000000f10 0000000000000219 -ioctl@@FBSD_1.0 U -malloc@@FBSD_1.0 U -memcpy@@FBSD_1.0 U -memset@@FBSD_1.0 U -open@@FBSD_1.0 U -pread@@FBSD_1.0 U -pwrite@@FBSD_1.0 U -sbread T 00000000000016e0 0000000000000129 -sbwrite T 00000000000015d0 0000000000000107 -snprintf@@FBSD_1.0 U -stat@@FBSD_1.0 U -statfs@@FBSD_1.0 U -strdup@@FBSD_1.0 U -strlcpy@@FBSD_1.0 U -ufs_disk_close T 0000000000001580 000000000000004e -ufs_disk_fillout T 0000000000001530 0000000000000044 -ufs_disk_fillout_blank T 0000000000001300 0000000000000227 -ufs_disk_write T 0000000000001290 0000000000000069 diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt deleted file mode 100644 index e60a7a40..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt +++ /dev/null @@ -1,45 +0,0 @@ - - -Symbols from test_so: - -Name Value Class Type Size Line Section - -_DYNAMIC |0000000001057328| A | OBJECT| | |*ABS* -_GLOBAL_OFFSET_TABLE_|0000000001057768| A | OBJECT| | |*ABS* -_Jv_RegisterClasses | | w | NOTYPE| | |*UND* -__bss_start |0000000001057992| A | NOTYPE| | |*ABS* -__cxa_finalize@@FBSD_1.0| | w | FUNC|0000000000000301| |*UND* -__dso_handle |0000000001056768| d | OBJECT| | |.data -__error@@FBSD_1.0 | | U | FUNC|0000000000000008| |*UND* -_edata |0000000001057992| A | NOTYPE| | |*ABS* -_end |0000000001058000| A | NOTYPE| | |*ABS* -_fini |0000000000007112| T | FUNC| | |.fini -_init |0000000000003320| T | FUNC| | |.init -berase |0000000000006160| T | FUNC|0000000000000130| |.text -bread |0000000000006704| T | FUNC|0000000000000353| |.text -bwrite |0000000000006304| T | FUNC|0000000000000388| |.text -cgread |0000000000004720| T | FUNC|0000000000000020| |.text -cgread1 |0000000000004544| T | FUNC|0000000000000176| |.text -cgwrite1 |0000000000004400| T | FUNC|0000000000000144| |.text -close@@FBSD_1.0 | | U | FUNC| | |*UND* -free@@FBSD_1.0 | | U | FUNC|0000000000000750| |*UND* -getfsfile@@FBSD_1.0 | | U | FUNC|0000000000000054| |*UND* -getino |0000000000003856| T | FUNC|0000000000000537| |.text -ioctl@@FBSD_1.0 | | U | FUNC| | |*UND* -malloc@@FBSD_1.0 | | U | FUNC|0000000000001280| |*UND* -memcpy@@FBSD_1.0 | | U | FUNC| | |*UND* -memset@@FBSD_1.0 | | U | FUNC| | |*UND* -open@@FBSD_1.0 | | U | FUNC| | |*UND* -pread@@FBSD_1.0 | | U | FUNC|0000000000000139| |*UND* -pwrite@@FBSD_1.0 | | U | FUNC|0000000000000139| |*UND* -sbread |0000000000005856| T | FUNC|0000000000000297| |.text -sbwrite |0000000000005584| T | FUNC|0000000000000263| |.text -snprintf@@FBSD_1.0 | | U | FUNC|0000000000000453| |*UND* -stat@@FBSD_1.0 | | U | FUNC| | |*UND* -statfs@@FBSD_1.0 | | U | FUNC| | |*UND* -strdup@@FBSD_1.0 | | U | FUNC|0000000000000085| |*UND* -strlcpy@@FBSD_1.0 | | U | FUNC|0000000000000054| |*UND* -ufs_disk_close |0000000000005504| T | FUNC|0000000000000078| |.text -ufs_disk_fillout |0000000000005424| T | FUNC|0000000000000068| |.text -ufs_disk_fillout_blank|0000000000004864| T | FUNC|0000000000000551| |.text -ufs_disk_write |0000000000004752| T | FUNC|0000000000000105| |.text diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt deleted file mode 100644 index 050ae3c0..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt +++ /dev/null @@ -1,39 +0,0 @@ -test_so:0000000001057328 A _DYNAMIC -test_so:0000000001057768 A _GLOBAL_OFFSET_TABLE_ -test_so: w _Jv_RegisterClasses -test_so:0000000001057992 A __bss_start -test_so: w __cxa_finalize@@FBSD_1.0 -test_so:0000000001056768 d __dso_handle -test_so: U __error@@FBSD_1.0 -test_so:0000000001057992 A _edata -test_so:0000000001058000 A _end -test_so:0000000000007112 T _fini -test_so:0000000000003320 T _init -test_so:0000000000006160 T berase -test_so:0000000000006704 T bread -test_so:0000000000006304 T bwrite -test_so:0000000000004720 T cgread -test_so:0000000000004544 T cgread1 -test_so:0000000000004400 T cgwrite1 -test_so: U close@@FBSD_1.0 -test_so: U free@@FBSD_1.0 -test_so: U getfsfile@@FBSD_1.0 -test_so:0000000000003856 T getino -test_so: U ioctl@@FBSD_1.0 -test_so: U malloc@@FBSD_1.0 -test_so: U memcpy@@FBSD_1.0 -test_so: U memset@@FBSD_1.0 -test_so: U open@@FBSD_1.0 -test_so: U pread@@FBSD_1.0 -test_so: U pwrite@@FBSD_1.0 -test_so:0000000000005856 T sbread -test_so:0000000000005584 T sbwrite -test_so: U snprintf@@FBSD_1.0 -test_so: U stat@@FBSD_1.0 -test_so: U statfs@@FBSD_1.0 -test_so: U strdup@@FBSD_1.0 -test_so: U strlcpy@@FBSD_1.0 -test_so:0000000000005504 T ufs_disk_close -test_so:0000000000005424 T ufs_disk_fillout -test_so:0000000000004864 T ufs_disk_fillout_blank -test_so:0000000000004752 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-size.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-size.txt deleted file mode 100644 index 33e8e9c3..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-print-size.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000001057328 A _DYNAMIC -0000000001057768 A _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000001057992 A __bss_start - w __cxa_finalize@@FBSD_1.0 -0000000001056768 d __dso_handle - U __error@@FBSD_1.0 -0000000001057992 A _edata -0000000001058000 A _end -0000000000007112 T _fini -0000000000003320 T _init -0000000000006160 0000000000000130 T berase -0000000000006704 0000000000000353 T bread -0000000000006304 0000000000000388 T bwrite -0000000000004720 0000000000000020 T cgread -0000000000004544 0000000000000176 T cgread1 -0000000000004400 0000000000000144 T cgwrite1 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000003856 0000000000000537 T getino - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 -0000000000005856 0000000000000297 T sbread -0000000000005584 0000000000000263 T sbwrite - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000000005504 0000000000000078 T ufs_disk_close -0000000000005424 0000000000000068 T ufs_disk_fillout -0000000000004864 0000000000000551 T ufs_disk_fillout_blank -0000000000004752 0000000000000105 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt deleted file mode 100644 index d917b0c7..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000000102230 A _DYNAMIC -00000000001023e8 A _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -00000000001024c8 A __bss_start - w __cxa_finalize@@FBSD_1.0 -0000000000102000 d __dso_handle - U __error@@FBSD_1.0 -00000000001024c8 A _edata -00000000001024d0 A _end -0000000000001bc8 T _fini -0000000000000cf8 T _init -0000000000001810 T berase -0000000000001a30 T bread -00000000000018a0 T bwrite -0000000000001270 T cgread -00000000000011c0 T cgread1 -0000000000001130 T cgwrite1 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000000f10 T getino - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 -00000000000016e0 T sbread -00000000000015d0 T sbwrite - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000000001580 T ufs_disk_close -0000000000001530 T ufs_disk_fillout -0000000000001300 T ufs_disk_fillout_blank -0000000000001290 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt deleted file mode 100644 index 1365b23d..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000004021060 A _DYNAMIC -0000000004021750 A _GLOBAL_OFFSET_TABLE_ - w _Jv_RegisterClasses -0000000004022310 A __bss_start - w __cxa_finalize@@FBSD_1.0 -0000000004020000 d __dso_handle - U __error@@FBSD_1.0 -0000000004022310 A _edata -0000000004022320 A _end -0000000000015710 T _fini -0000000000006370 T _init -0000000000014020 T berase -0000000000015060 T bread -0000000000014240 T bwrite -0000000000011160 T cgread -0000000000010700 T cgread1 -0000000000010460 T cgwrite1 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000007420 T getino - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 -0000000000013340 T sbread -0000000000012720 T sbwrite - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000000012600 T ufs_disk_close -0000000000012460 T ufs_disk_fillout -0000000000011400 T ufs_disk_fillout_blank -0000000000011220 T ufs_disk_write diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-no.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-no.txt deleted file mode 100644 index ffbf676c..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-no.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000001056768 d __dso_handle - U pread@@FBSD_1.0 - U statfs@@FBSD_1.0 -0000000000004720 T cgread -0000000001057328 A _DYNAMIC -0000000000004400 T cgwrite1 - U strdup@@FBSD_1.0 - w __cxa_finalize@@FBSD_1.0 -0000000000004864 T ufs_disk_fillout_blank -0000000000006160 T berase - U ioctl@@FBSD_1.0 -0000000000005584 T sbwrite -0000000000003320 T _init - U pwrite@@FBSD_1.0 - U stat@@FBSD_1.0 - U memset@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000004544 T cgread1 - U __error@@FBSD_1.0 -0000000000003856 T getino -0000000000004752 T ufs_disk_write -0000000001057992 A __bss_start - U close@@FBSD_1.0 - U snprintf@@FBSD_1.0 -0000000000007112 T _fini - U open@@FBSD_1.0 -0000000000006704 T bread - U malloc@@FBSD_1.0 -0000000001057992 A _edata - U memcpy@@FBSD_1.0 -0000000001057768 A _GLOBAL_OFFSET_TABLE_ -0000000001058000 A _end - U free@@FBSD_1.0 -0000000000006304 T bwrite -0000000000005504 T ufs_disk_close -0000000000005424 T ufs_disk_fillout - w _Jv_RegisterClasses -0000000000005856 T sbread - U strlcpy@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-num.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-num.txt deleted file mode 100644 index 91eeefad..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-num.txt +++ /dev/null @@ -1,39 +0,0 @@ - w _Jv_RegisterClasses - w __cxa_finalize@@FBSD_1.0 - U __error@@FBSD_1.0 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 -0000000000003320 T _init -0000000000003856 T getino -0000000000004400 T cgwrite1 -0000000000004544 T cgread1 -0000000000004720 T cgread -0000000000004752 T ufs_disk_write -0000000000004864 T ufs_disk_fillout_blank -0000000000005424 T ufs_disk_fillout -0000000000005504 T ufs_disk_close -0000000000005584 T sbwrite -0000000000005856 T sbread -0000000000006160 T berase -0000000000006304 T bwrite -0000000000006704 T bread -0000000000007112 T _fini -0000000001056768 d __dso_handle -0000000001057328 A _DYNAMIC -0000000001057768 A _GLOBAL_OFFSET_TABLE_ -0000000001057992 A __bss_start -0000000001057992 A _edata -0000000001058000 A _end diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt deleted file mode 100644 index ffbf676c..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000001056768 d __dso_handle - U pread@@FBSD_1.0 - U statfs@@FBSD_1.0 -0000000000004720 T cgread -0000000001057328 A _DYNAMIC -0000000000004400 T cgwrite1 - U strdup@@FBSD_1.0 - w __cxa_finalize@@FBSD_1.0 -0000000000004864 T ufs_disk_fillout_blank -0000000000006160 T berase - U ioctl@@FBSD_1.0 -0000000000005584 T sbwrite -0000000000003320 T _init - U pwrite@@FBSD_1.0 - U stat@@FBSD_1.0 - U memset@@FBSD_1.0 - U getfsfile@@FBSD_1.0 -0000000000004544 T cgread1 - U __error@@FBSD_1.0 -0000000000003856 T getino -0000000000004752 T ufs_disk_write -0000000001057992 A __bss_start - U close@@FBSD_1.0 - U snprintf@@FBSD_1.0 -0000000000007112 T _fini - U open@@FBSD_1.0 -0000000000006704 T bread - U malloc@@FBSD_1.0 -0000000001057992 A _edata - U memcpy@@FBSD_1.0 -0000000001057768 A _GLOBAL_OFFSET_TABLE_ -0000000001058000 A _end - U free@@FBSD_1.0 -0000000000006304 T bwrite -0000000000005504 T ufs_disk_close -0000000000005424 T ufs_disk_fillout - w _Jv_RegisterClasses -0000000000005856 T sbread - U strlcpy@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt deleted file mode 100644 index 02001111..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000001058000 A _end -0000000001057992 A _edata -0000000001057992 A __bss_start -0000000001057768 A _GLOBAL_OFFSET_TABLE_ -0000000001057328 A _DYNAMIC -0000000001056768 d __dso_handle -0000000000007112 T _fini -0000000000006704 T bread -0000000000006304 T bwrite -0000000000006160 T berase -0000000000005856 T sbread -0000000000005584 T sbwrite -0000000000005504 T ufs_disk_close -0000000000005424 T ufs_disk_fillout -0000000000004864 T ufs_disk_fillout_blank -0000000000004752 T ufs_disk_write -0000000000004720 T cgread -0000000000004544 T cgread1 -0000000000004400 T cgwrite1 -0000000000003856 T getino -0000000000003320 T _init - U strlcpy@@FBSD_1.0 - U strdup@@FBSD_1.0 - U statfs@@FBSD_1.0 - U stat@@FBSD_1.0 - U snprintf@@FBSD_1.0 - U pwrite@@FBSD_1.0 - U pread@@FBSD_1.0 - U open@@FBSD_1.0 - U memset@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U malloc@@FBSD_1.0 - U ioctl@@FBSD_1.0 - U getfsfile@@FBSD_1.0 - U free@@FBSD_1.0 - U close@@FBSD_1.0 - U __error@@FBSD_1.0 - w __cxa_finalize@@FBSD_1.0 - w _Jv_RegisterClasses diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt deleted file mode 100644 index 0a2edf72..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt +++ /dev/null @@ -1,13 +0,0 @@ -0000000000000551 T ufs_disk_fillout_blank -0000000000000537 T getino -0000000000000388 T bwrite -0000000000000353 T bread -0000000000000297 T sbread -0000000000000263 T sbwrite -0000000000000176 T cgread1 -0000000000000144 T cgwrite1 -0000000000000130 T berase -0000000000000105 T ufs_disk_write -0000000000000078 T ufs_disk_close -0000000000000068 T ufs_disk_fillout -0000000000000020 T cgread diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt deleted file mode 100644 index c161cdbe..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt +++ /dev/null @@ -1,39 +0,0 @@ -0000000000004752 T ufs_disk_write -0000000000004864 T ufs_disk_fillout_blank -0000000000005424 T ufs_disk_fillout -0000000000005504 T ufs_disk_close - U strlcpy@@FBSD_1.0 - U strdup@@FBSD_1.0 - U statfs@@FBSD_1.0 - U stat@@FBSD_1.0 - U snprintf@@FBSD_1.0 -0000000000005584 T sbwrite -0000000000005856 T sbread - U pwrite@@FBSD_1.0 - U pread@@FBSD_1.0 - U open@@FBSD_1.0 - U memset@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U malloc@@FBSD_1.0 - U ioctl@@FBSD_1.0 -0000000000003856 T getino - U getfsfile@@FBSD_1.0 - U free@@FBSD_1.0 - U close@@FBSD_1.0 -0000000000004400 T cgwrite1 -0000000000004544 T cgread1 -0000000000004720 T cgread -0000000000006304 T bwrite -0000000000006704 T bread -0000000000006160 T berase -0000000000003320 T _init -0000000000007112 T _fini -0000000001058000 A _end -0000000001057992 A _edata - U __error@@FBSD_1.0 -0000000001056768 d __dso_handle - w __cxa_finalize@@FBSD_1.0 -0000000001057992 A __bss_start - w _Jv_RegisterClasses -0000000001057768 A _GLOBAL_OFFSET_TABLE_ -0000000001057328 A _DYNAMIC diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-size.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-size.txt deleted file mode 100644 index a58f0c45..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-sort-size.txt +++ /dev/null @@ -1,13 +0,0 @@ -0000000000000020 T cgread -0000000000000068 T ufs_disk_fillout -0000000000000078 T ufs_disk_close -0000000000000105 T ufs_disk_write -0000000000000130 T berase -0000000000000144 T cgwrite1 -0000000000000176 T cgread1 -0000000000000263 T sbwrite -0000000000000297 T sbread -0000000000000353 T bread -0000000000000388 T bwrite -0000000000000537 T getino -0000000000000551 T ufs_disk_fillout_blank diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-undef.txt b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-undef.txt deleted file mode 100644 index 0b019ccf..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so-undef.txt +++ /dev/null @@ -1,18 +0,0 @@ - w _Jv_RegisterClasses - w __cxa_finalize@@FBSD_1.0 - U __error@@FBSD_1.0 - U close@@FBSD_1.0 - U free@@FBSD_1.0 - U getfsfile@@FBSD_1.0 - U ioctl@@FBSD_1.0 - U malloc@@FBSD_1.0 - U memcpy@@FBSD_1.0 - U memset@@FBSD_1.0 - U open@@FBSD_1.0 - U pread@@FBSD_1.0 - U pwrite@@FBSD_1.0 - U snprintf@@FBSD_1.0 - U stat@@FBSD_1.0 - U statfs@@FBSD_1.0 - U strdup@@FBSD_1.0 - U strlcpy@@FBSD_1.0 diff --git a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so.uu b/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so.uu deleted file mode 100644 index a108d62a..00000000 --- a/contrib/elftoolchain/test/nm/ts/nm_shared_object1/test_so.uu +++ /dev/null @@ -1,315 +0,0 @@ -begin 644 test_so -M?T5,1@(!`0D```````````,`/@`!````D`X```````!````````````H```` -M`````````$``.``$`$``&@`7``$````%```````````````````````````` -M````````(!\````````@'P``````````$````````0````8`````(``````` -M```@$````````"`0``````#(!````````-`$```````````0```````"```` -M!@```#`B````````,"(0```````P(A```````)`!````````D`$````````( -M`````````%#E=&0$````&!\````````8'P```````!@?````````"``````` -M```(``````````0`````````)0```#T````I````.@```#@`````````*@`` -M````````````&@```#D````````````````````C`````````"@````P```` -M+````"8````R````(@```#P````O````(````#$````>````+@`````````` -M````&````"T````=````-P```"4`````````&0```#0````[```````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````7````````````````````&P`````````` -M````````````````````)````````````````````"$``````````````!\` -M````````'``````````G`````````"L`````````-0```#8````S```````` -M```````````````````````````````````````````````````````#``$` -M(`$````````````````````````#``(`L`(````````````````````````# -M``,`:`@````````````````````````#``0`T@D````````````````````` -M```#``4`4`H````````````````````````#``8`<`H````````````````` -M```````#``<`T`H````````````````````````#``@`^`P````````````` -M```````````#``D`#`T````````````````````````#``H`D`X````````` -M```````````````#``L`R!L````````````````````````#``P`X!L````` -M```````````````````#``T`&!\````````````````````````#``X``"`0 -M```````````````````````#``\`$"`0```````````````````````#`!`` -M,"(0```````````````````````#`!$`P",0```````````````````````# -M`!(`T",0```````````````````````#`!,`X",0```````````````````` -M```#`!0`Z",0```````````````````````#`!4`R"00```````````````` -M```````#`!8``````````````````````"4!```2``````````````"+```` -M`````+\````2`````````````````````````&X````2``H`&%?9FEN -M86QI>F4`7TIV7U)E9VES=&5R0VQA@<```(`8`$`````````(!````````@``````````"`0```````((!`` -M``````@`````````V",0``````"X)!````````8````=``````````````#` -M)!````````8````Z````````````````)!````````<````7```````````` -M```()!````````<````8```````````````0)!````````<````<```````` -M```````8)!````````<````=```````````````@)!````````<````>```` -M```````````H)!````````<````@```````````````P)!````````<````C -M```````````````X)!````````<````D``````````````!`)!````````<` -M```E``````````````!()!````````<````F``````````````!0)!`````` -M``<````G``````````````!8)!````````<````H``````````````!@)!`` -M``````<````J``````````````!H)!````````<````L``````````````!P -M)!````````<````M``````````````!X)!````````<````O```````````` -M``"`)!````````<````P``````````````"()!````````<````Q```````` -M``````"0)!````````<````S``````````````"8)!````````<````V```` -M``````````"@)!````````<````W``````````````"H)!````````<````[ -M``````````````"P)!````````<````\``````````````!(@^P(Z-\!``#H -MF@X``$B#Q`C#`/\UWA80`/\EX!80`)"0D)#_)=X6$`!H`````.G@_____R76 -M%A``:`$```#IT/____\ESA80`&@"````Z<#_____)<86$`!H`P```.FP____ -M_R6^%A``:`0```#IH/____\EMA80`&@%````Z9#_____):X6$`!H!@```.F` -M_____R6F%A``:`<```#I%A``:!````#IX/[___\E5A80`&@1````Z=#^____ -M)4X6$`!H$@```.G`_O___R5&%A``:!,```#IL/[___\E/A80`&@4````Z:#^ -M____)386$`!H%0```.F0_O___R4N%A``:!8```#I@/[__P````!(@^P(@#TM -M%A```'4[2(,]$Q80``!T&TB+/5(1$`#HF?[__^L-2(/`"$B)!4@1$`#_TDB+ -M!3\1$`!(BQ!(A=)UY,8%\!40``%(@\0(PV9FD$B#/?@4$```=!E(BP7/%1`` -M2(7`=`U(C3WC%!``28G#0?_C\\.0D)"0D)"0D)"0D$B)7"302(EL)-A(B?M, -MB7PD^$R)9"3@B=5,B6PDZ$R)="3P2(/L.$B%_TB)-"1)B<]T"TC'AS@``@`` -M````3(MS($2+8RA$BVLL387V#X2+`0``1#GE#Y/"1#GM#Y+`A-!T38M#"(/X -M`0^$[@```(/X`@^$"@$``$B%VP^%)@$``+C_____2(M<)`A(BVPD$$R+9"08 -M3(ML)"!,BW0D*$R+?"0P2(/$.,-F9F:09F:0@;N,!0``&0%4&8M+8`^$_0`` -M`(N[Z````(GH,=+W]TACD^P```!!B<"+0TQ$B<9(#Z_R]]!$(<`/KT-(2(T4 -M,$ACSJ````(N3D````(G13(GR -MT^!(`<:+@Y0```")P4C3YDR)P>C8_?__,=*)Z/>SJ````$$IU$2)X`.#J``` -M`$2)8RB)0RR+0PB#^`$/A1+___^)ZD0IXDC!X@=,`?(/MP(E`/```$&)!TB+ -M!"1(B1`QP.D$____B>I(BPPD1"GB2,'B"$P!\@^W`B4`\```08D',)PDAC -M@^P```!(#Z_0Z1+___](8WM@Z#7]__](AC1_/__,=)(@_C_=!1; -MB=##2&.#[````$AC_D@/K_CKO$B%VXG"=.5(C16["@``2(F3.``"`(G"Z]-5 -M,=*)]5-(B?M(@^P(.7=CO^___2(/X_W0DB:LT``(`N@$```!(@\0(B=!;7<-( -M8X/L````2&/]2`^O^.NT2(7;B<)TX$B-%2H*``!(B9,X``(`B<+KSHNW,``" -M`(U&`8F',``"`.DX^___D)"0D)"0D)"0D)"02(7_4TB)^W0+2,>'.``"```` -M```QP/:#0``"``)T`EO#BWL,Z#/[__](BSLQP+X"````Z$3[__^%P(E##'@+ -M@XM```(``C'`6\-(A=NX_____W3+2(T%Q0D``$B)@S@``@"X_____UO#9F9F -MD&9FD$%728GW059!54%428G\55-(@>QH!@``2(7_=`M(QX/HG/K__TR)]DB)W^@A^O__A<")Q7C##[>$).@%```E`/```#T`(``` -M=!1(B=_H'_K__TB%P`^$R````$B+&#'V,$)#0``@``````0<>$)$```@``````0<=$)`@`````2<>$ -M)#@``@``````=!U(B=_H'_G__TB%P$B)PP^$O@```$&#C"1```(``4F)'"0Q -MP$B!Q&@&``!;74%<05U!7D%?PTR)^TB)W^A7^?__2(7`#X4X____A>UX%`^W -MA"3H!0``)0#P```]`$```'0,387D=3JX_____^NV2(VL)``$``!(B=](B>[H -ME_C__X7`>&Q(C;4H`0``N@`$``!(B>=(B>/HS/G__^GD_O__2(T5<@@``+C_ -M____28F4)#@``@#I:O___TV%Y'2H2(T5<@@``$F)E"0X``(`Z5'___]-A>1T -MCTB-!=T'``!)B80D.``"`+C_____Z3/___]-A>0/A&W___](C049"```28F$ -M)#@``@"X_____^D1____9F:09F:09F:04TB)^^@C^/___\!T$TB)W^@G^?__ -MB<(QP(/Z_W0)6\-;N/_____#2(7;9F:09F:0=.Y(C06/!P``2(F#.``"`(G0 -M6\-F9F:09F9FD&9F9I!(A?]32(G[=`M(QX'.``"``````!(@WL8`$R-8S!U$4B+@Q@$ -M``!(F4CW>Q!(B4,82(MS&+D`(```3(GB2(G?Z$/X__](@_C_#X2?````A>UT -M=8M#7(7`?FZ+D^P````Q[>M/BT-,2&/22`^OU??0(>@/KT-(2)A(`=!(8W,X -MBXN4````3(GB2(G?2(TT,$C3YKD`(```Z.SW__](@_C_="V-10%(_\4Y0UQ^ -M&XN3[````(&[C`4``!D!5!EUI4ACPD@/K\7KLS'`6UU!7,-(A=MU"EM=05RX -M_____\-(C17,!@``2(F3.``"`.O<2(7;=.%(C16'.``"``````!,C27\!@``3(UK -M,+T```$`ZS^0/1D!5!ET:8M#8#T```$`#Y["/5\%```/E\"$T'0+BU,(A=(/ -MA9\```!!BVPD!$F#Q`3'0P@`````@_W_=$1(8^VY`"```$R)ZDB)[DB)W^BX -M]O__2(/X_W15BX.,!0``/509`0!UF<=#"`$```#KET@[JQ@$``!UCL=#"`(` -M``#KA4B%VW0.2(T%,@8``$B)@S@``@#H(O;__XGJQP`"````2(/$"(G06UU! -M7$%=PTB%VXG"=.Q(C17;!0``2(F3.``"`(G"Z]I(8W-DBXN4````OP$```!( -MT^=(B?!(F4CW_TB)P4B)0Q!(B>A(F4CW^3'22(E#&.NID)"0D)"0D$B)7"3H -M2(EL)/!(B?M,B60D^$B#["A(A?](B?5)B=1T"TC'AS@``@``````2(G?Z)CU -M__^#^/]T-$@/KVL0BWL,2(GBOHAD$(`QP$R)9"0(2(DL).@#]?__2(M<)!!( -MBVPD&$R+9"0@2(/$*,-(A=MTYTB-%2<$``!(B9,X``(`Z]=F9F:09F9FD&9F -MD&9FD$B)7"382(EL).!(B?M,B60DZ$R);"3P2(GU3(ET)/A(@^PH2(7_28G4 -M28G-=`M(QXAW]/__2(G%2(/]_P^$W````$PY[0^%HP```$B)Z$B+'"1( -MBVPD"$R+9"003(ML)!A,BW0D($B#Q"C#9F:09I!,B>_HY/3__TB%P$F)QG0Q -M3(GJ3(GF2(G'Z-[T__](#Z]K$(M[#$R)ZDR)]DB)Z>@(]/__3(GW2(G%Z,WT -M___KATB%VW0.2(T%M@0``$B)@S@``@!,B>I,B>8Q_^B;]/__2`^O:Q"+>PQ, -MB>HQ]DB)Z>C&\___2(G%Z4K___](A=MU1TC'Q?_____I3/___TB%VW3O2(T% -MU0(``$C'Q?____](B8,X``(`Z2W___](A=L/A"3___](C05'.``"``````!!]L4_38GL#X6?````2`^O71"+?0Q,B?),B>9(B=GHD/+_ -M_TB#^/](B<,/A-P```!(AT/A$3___](C04*`P``2(F%.``" -M`.DQ____33GL=)-,B>](B<),B>;HY/+__TR)Y^CL\O__Z7C___],B>?HW_+_ -M_V9FD.EH____2(7M#X1"____2(T%#0,``$B)A3@``@#I+____Y"0D)"0D)"0 -MD)"0D)"0D$B+!1D($`!32(/X_W072(T="P@0`/_02(M#^$B#ZPA(@_C_=?!; -MPY!(@^P(Z+_R__](@\0(PP`````````````D1G)E94)31#H@'`@)`````$;___T -M`!`````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````` -M````(!```````-@C$```````%``````````!>E(``7@0`1L,!PB0`0``%``` -M`!P```!@[N__30````!$#A``````%````#0```"8[N__)0`````````````` -M)````$P```"P[N__&0(```!*A@:#!UT.0(X#C02,!8\"`````````!0```!T -M````J/#O_Y``````00X0@P(``!P```",````(/'O_[``````00X0A@)%#AB# -M`T<.(```%````*P```"P\>__%```````````````%````,0```"X\>__:0`` -M``!$#A"#`@``-````-P````0\N__)P(```!"#A"/`D4.&$(.($(.*(P%C02. -M`T0.,$$..$<.H`V#!X8&```````4````%`$```CT[_]$`````$$.$(,"```4 -M````+`$``$#T[_].`````$0.$(,"```<````1`$``'CT[_\'`0```$(.$$0. -M&(8#C`)##B"#!"0```!D`0``:/7O_RD!````0@X00@X800X@00XH@P6&!(P# -MC0)'#C`<````C`$``'#V[_^"`````$J&`X,$3`XPC`(``````!P```"L`0`` -MX/;O_X0!````2H8%@P99#C".`HT#C`0`'````,P!``!0^.__80$```!*A@6# -M!ED.,(P$C@*-`P``````&``````````!>E(``7@0`1L,!PB0`0```````!0` -M```@````@/GO_R<`````2`X0@P(```$`````````,@$````````.```````` -M`%0!````````#`````````#X#`````````T`````````R!L````````$```` -M`````"`!````````!0````````!H"`````````8`````````L`(````````* -M`````````&D!````````"P`````````8``````````,`````````Z",0```` -M```"`````````"@"````````%``````````'`````````!<`````````T`H` -M```````'`````````'`*````````"`````````!@``````````D````````` -M&`````````#^__]O`````%`*````````____;P`````!`````````/#__V\` -M````T@D```````#Y__]O``````(````````````````````````````````` -M```````````````````````````````````````````````````````````` -M``````````````````````#__________P``````````__________\````` -M````````````````,"(0````````````````````````````(@T````````R -M#0```````$(-````````4@T```````!B#0```````'(-````````@@T````` -M``"2#0```````*(-````````L@T```````#"#0```````-(-````````X@T` -M``````#R#0````````(.````````$@X````````B#@```````#(.```````` -M0@X```````!2#@```````&(.````````<@X```````""#@`````````````` -M````````````````1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#6UT86(`+G-T6X` -M+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF:6YI`"YR;V1A=&$`+F5H7V9R86UE -M7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y;F%M:6,`+F-T;W)S`"YD=&]R5T>S'`@_X"=`:%]K`M=`+)PXL% -M`````(7`=7[H`````$G'P0````!!N*`!``"Y`@```#'2,?9(Q\<`````,<#H -M`````$G'P0````!(B04`````0;B@`0``N0(````QTKX!````2,?'`````#'` -MZ`````!(B04`````R3'`PTB+/0````#H`````$B+/0````#H`````,DQP,-( -MQ\<`````,<#H`````.EO____9F9FD&9FD&9FD&9FD%6#Y@)(B>5U!\DQP,-F -M9I!(B[D@`0``R3'VZ0````"054B+!0````!(B>5(A5(@^PP2#G^3(EM -M^$F)U0^5PD@YSDB)7>A,B67P#Y7`NQD```"$T'4J2(,]``````"S+70>BP4` -M````LP:%P'022#G.=!TPVT@Y_G1=9F:09F:0B=A,BV7P2(M=Z$R+;?C)P[H" -M````2,?&`````+\@````Z`````!)BWT`NB````!(B<9)B<3H`````(7`B<-! -MQD0D&P!T?H`````.NI03E%"(G"00].50B%THE5Y'Y(2&/Z -M2,?&`````+H"````2,'G!>@`````2(UUY$B)QTF)Q.@`````A<")PW0U2,?& -M`````$R)Y^@`````BT7D08E%".E/____,=N)1>3K[4F-=0A,B>?H`````(G# -MZ7O___](8U7D28MU`$R)YTC!X@7H`````(G#Z[-F9F:09F:09F:09F:054B) -MY4B#["!(B5WH3(EE\$B)^TR);?A)B?1)B=7H`````(7`=1I-B64`2(M=Z$R+ -M9?`QP$R+;?C)PV9FD&9FD$B)W^@`````_\AUWDR)Y^@`````28E%`.O09F:0 -M9F:054B)Y4%7059!544Q[4%428GT4TB#[`A(B7W09F:09I!!BT0D&(7`#Y_" -M187M#Y3`A-`/A!$!``!)BQPD2(-["`!U+4B-0Q!)B00D08M$)`C_R(7`08E$ -M)`AYQ4C'QP`````QP.@`````9F9FD&9FD$B+?=#H`````(7`=3Q)BWPD$(GX -MO@`0``!,B>(E_P\``"G&08M$)!@YQ@]'\$BX``````#___^)]D@)Q^@````` -M08G%Z6?___](BWW0Z`````#_R`^%5O___TV+="002+H```````$``$F-!!9( -MNO____]_````2#G0#X:;````3(M["$R)\TBX____?_____](@>,`\/__2#G# -M=C9/C:P^_P\``$F!Y0#P__],.>MR#NLX2('#`!```$DYW78L2(G>2,?'```` -M`.@`````2(7`=>!!O0X```!(@\0(1(GH6T%<05U!7D%?R<-!@WPD(`%$B?Y, -MB?<9TH/"`N@`````A7^__^0D)!52(L%`````$B)Y4B%P'052(GR3(M8"$B)_LE(Q\<` -M````0?_CR;@M````PV9F9I!52(,]``````"X+0```$B)Y700BP:%P'4,BP4` -M````B08QP,G#2(G^2(L]`````$ACT$C!X@7H`````,DQP,.058/_!K@@```` -M2(GE=PI(8\>+!(4`````R<-F9I!F9I!5@>?___\`,5F9F:0BQ2-```` -M`(G(@_H@=`0YUW0.2/_!2(/Y!W7EN/_____)PV9F9I!F9F:09F:09F:054B) -MY5.)\^BT____B<(/ML-;R0^VRO_"#T7!PV9F9I!52(GE05=!5D%505132(/L -M0$B)?:A,BV\0#R#@B<*$P$B)5:!Y"HG`)7____\/(N`/(,!()?___Y](#0`` -M`$`/(L`/";G_`@``#S)(P>(@)?_W__]("=!(B<)(P>H@#S!(BTVH,=+V00@! -M#X0B`0``3(EML$&X4`(``$2)P0\R28G73(MEL(G`2<'G($&^.````$D)QS'` -M08N\)/````!$B?%,B?Y(B<-(T^Y$B4682,'C"$&#[@A)@^P@Z"#___](F$2+ -M19A("=A!@_[X=H@#S!(@46P``$``$&!^%`"```/A38"``!) -M@<4``0``0;]8`@``3(EMT$R);$/,D&+?1!!B?A!@>`````(=)E(B=9,B?-)(UT`B8@ -M2`G&Z*S]__](F$6+11!("=A(B<*)QDB+1:A(P>H@08'@````"$2+2`SI7___ -M_P\)N?\"```/,HG`2,'B((#,"$@)T$B)PDC!ZB`/,`\@P$@E____GP\BP$B+ -M3:`/(N%(@\1`6T%<05U!7D%?R<-(BT700;]H`@``2`4``@``2(E%R$B)1;A$ -MB?D/,DF)UDR+9;B)P$G!YB!!O3@```!)"<8QP)!!B[PD\````$2)Z4R)]DB) -MPTC3[D&#[0A(P>,(28/L(.CK_/__2)A("=A!@_WX==!(B<)$B?E(P>H@#S!( -M@46X``$``$&!_V\"```/A%?^__]!_\?KC$'_P.E,_?__9I!52(M'$#')2(GE -MZP]F9F:0_\&#^5AT%TB#P"!(BQ!(.?)W[4@#4`A(.=9SY,G#R3'`PV9F9I!F -M9F:09F:09F:054B)Y>B'_/__2(L%`````+G_`@``2(G"2,'J(`\PR<.+!0`` -M``!52(GEA0@13'V20G$ZQ%!_\9(@\,@08/^"'1#2<'L"$$/MOSH#?O__XM3 -M$`T````(@>(```#_"<*`>Q0`B5,0=U)"<3K%F9FD&:00?_%2(/#($&#_0AT -M0TG![`A!#[;\Z';Z__^+4Q`-````"('B````_PG"@'L4`(E3$'7-2(LU```` -M`$B->Q1!_\5(@\,@Z`````!!@_T(=;U)@<<``0``08'^60(```^$2@$``$'_ -MQNEV____3(MMT$B+1;A)@<4`"```3(GJ2"M0$$C!^@5(BTVX2&-!#$@YT`^. -M"`$``$&^``(``$F_````"/\```#I@````&9F9I")V`T````(08E%$$B)T$F+ -M30!((?!(@<[_#P``2/?02"'P]\'_#P``2(U0`4F)50AU$TB!^O\/``!V"DB% -MPG4%2(7!=`A!@4T0````$$F+11!,(?A(/0````AT?DB+5;A)@\4@3(GH2"M" -M$$AC4@Q(P?@%2#G0?7=!@\8"1(GQ#S))B=1!BUT0B0@20G$00^V_('C -M````_^A`^?__"<-!C4X!08E=$$B+-0````!)(?1-B64`#S)(P>(@B05_)PTB+1U)"<3K$V:00?_%2(/#($&#_0AT0TG![`A!#[;\Z);X__^+ -M4Q`-````"('B````_PG"@'L4`(E3$'7-2(LU`````$B->Q1!_\5(@\,@Z``` -M``!!@_T(=;U)@<<``0``08'^;P(```^$*/[__T'_QNEY____0?_'D.GZ_/__ -M9F9FD&9F9I!F9I!52(GE05=!5D%528G]05132(GS2(/L"(L2A=(/A6@!``!( -MBP[WP?\/```/A:@"``!(BT8(2#W_#P``#X:8`@``2(U0_TB%T`^%BP(``$B% -MT0^%@@(``(M^$.CR]____\`/A'("``!%,<`QTD'V10@!#X6,`0``18M5#$F+ -M11!%.=`/C9L"``!(C30013')ZWQ(BSY(BQ-(.='___\`J"`/A08"```YSW0J -M@_\(#Y3"@_D!#Y3`A-!U&H/Y"`^4PO_/#Y3`A-`/A-\!``!F9F:09F:00?_` -M13G0=")(@\8@BTX0]\$````(#X5U____387)3`]$SD'_P$4YT'7>3(G.2(7V -M#X3L`0``2(L#2(U[%+H(````2(D&2(M#"$B)1@B+0Q`E____``T````(B480 -M2(/&%.@`````^DR)[^A!]___^TR)[^A(^___,B+=PQ(BU<0A?9^44B+"S'`ZPK_P#GP=$1(@\(@2#D*=?%(BWL( -M2#EZ"'7G2(72="R+2A"X`0```/?!````('6H]\$```!`L!!UGH'A____]\9" -M%`")2A#I>/___TB#Q`BX`@```%M!7$%=05Y!7\G#2(LS0;!89KH`"TB)\$@# -M0PA(/0``$``/AU?^__],B>_HN?G__TB%P$F)Q`^$I0```$B+]( -M_\[HF_G__TB%P$F)Q@^$AP```(M+$(7)#X@,`0``23G$#X(E____`(/X('4:Z>(```!F9F:0BT(0)?___P"#^"`/A,T```!(@\(@23G6 -M<^9,C7L408M4)!"+0Q!)C70D%$R)_X'B````^R7___\`"="Z"````$&)1"00 -M28/$(.@`````33GF<\OICO[__TB#Q`BX%@```%M!7$%=05Y!7\G#9F9FD$B+ -M1@A(.T,(=#)(`?A(.<(/@JC]__](.=O] -M__]F9I!FD%6Y_@```$B)Y4%5051)B?Q32(/L&`\R2(G7B<%Z`````!!]D0D"`%)B40D$$6);"0,#X2A````2(G","$`$``````"-( -M@\(@2('Y```,`'70N@``#`!(B9```P``2('"`!```$C'@`@#````$```QX`0 -M`P``````(TB#P"!(@?H``!``==!,B>?HP_?__T&+="0,28M4)!"%]@^.RO[_ -M_S')ZP1(@\(@BT(0J0````AT"`T````$B4(0_\%!.4PD#'_A2(/$&%M!7$%= -MR<.X"```@`^BB470B4W8#[;(N`$```")7=2)5=Q(T^!(_\A()0#P___WQP`! -M``!(B04`````#X2O_O__Z97^__](@\082,?'`````#'`6T%<05W)Z0`````` -M```````````````!`````@```"`````@````!````!`````(```````````` -M````````;65M.B`\;65M;W)Y/@H`;65M`&MM96T`:V5R;F5L`&UE;7)W`&UE -M;61E7,O9&5V+VUE;2]M96UD978N8RQV(#$N,R`R,#`T+S`X+S`T(#$X.C,P -M.C,Q(&UA7,O86UD-C0O86UD-C0O;65M+F,L -M=B`Q+C$R,B`R,#`X+S`S+S$R(#(Q.C0S.C4P(&IH8B!%>'`@)`!'0T,Z("A' -M3E4I(#0N,BXQ(#(P,#7-I;FET7W-E=``N7-U;FEN:71?````````N`@````````5````/P````@`````````&``````````) -M`````P````````````````````````!@)P```````*0%```````````````` -M```!```````````````````````````````````````````````````````` -M``,``0````````````````````````````,``P`````````````````````` -M``````,`!0````````````````````````````,`#``````````````````` -M``````````,`#P````````````````````````````,`$0`````````````` -M`````````0````(``0```````````+,`````````#@````$`#P`````````` -M`+@`````````&0````$`$0````````````@`````````(`````$`$0`(```` -M``````@`````````*`````$`!@````````````@`````````7`````$`#P#` -M`````````!@`````````=@````$`"`````````````@`````````GP````$` -M#P#@`````````!@`````````L@````$`!@`(``````````@`````````X0`` -M``$`#P```0```````!@`````````]@````$`!@`0``````````@````````` -M+P$```$`#P`@`0```````!@`````````3@$```$`#P`X`0````````0````` -M````6P$```$`#P!``0```````!@`````````8P$```$`#P!8`0````````P` -M````````>0$```$`"@````````````@`````````K0$```$`#P```@`````` -M`!@`````````R0$```$`"``(``````````@`````````]P$```$`#P`@`@`` -M`````!@`````````#P(```(``0#0!````````!H`````````'@(```$``P`` -M`````````!P`````````+@(```(``0#P!````````#(`````````/0(```(` -M`0`P!0```````!P`````````3`(```(``0!0!0```````"X#````````70(` -M``$`$0`H``````````@`````````:P(```(``0"`"````````#(````````` -M?P(```(``0#`"````````"``````````C@(```$`$0`@``````````@````` -M````E@(```(``0#@"````````',`````````J`(```$`$0`0``````````0` -M````````MP(```$`#P!``@```````!@`````````PP(```(``0!@"0`````` -M`#4#````````T0(```$``P`@``````````@`````````X`(```(``0"@#``` -M`````'L#````````[`(```(``0`@$````````!0"````````^0(```$`$0`8 -M``````````@``````````0,```$`"``0``````````@`````````+`,```$` -M#P!@`@```````!@`````````00,```$`#0````````````@`````````=0,` -M``$`#P"``@```````%``````````E`,```$`"``8``````````@````````` -MQ0,```$`#P#0`@```````!@`````````X`,```$`#P#P`@```````!`````` -M````\0,```$`#P"``0```````(``````````^P,```(``0!@`@```````%H` -M`````````P0```(``0#``````````!\`````````"P0```(``0!@!``````` -M`"P`````````'@0```(``0"0!````````#\`````````,00```(``0#@```` -M`````"(`````````000```(``0`0`0```````$,!````````2@0```(``0#` -M`@```````)T!``````````````,`!@````````````````````````````,` -M"`````````````````````````````,`"@`````````````````````````` -M``,`#0````````````````````````````,`$@`````````````````````` -M4`0``!``````````````````````````5P0``!`````````````````````` -M````7@0``!``````````````````````````:@0``!`````````````````` -M````````<`0``!``````````````````````````?`0``!`````````````` -M````````````@P0``!``````````````````````````BP0``!`````````` -M````````````````EP0``!``````````````````````````HP0``!`````` -M````````````````````N`0``!``````````````````````````T00``!`` -M````````````````````````V`0``!``````````````````````````X`0` -M`!``````````````````````````Z00``!`````````````````````````` -M\`0``!``````````````````````````^P0``!`````````````````````` -M````"@4``!``````````````````````````&@4``!`````````````````` -M````````(`4``!``````````````````````````,04``!`````````````` -M````````````-P4``!``````````````````````````/@4``!`````````` -M````````````````2P4``!``````````````````````````604``!`````` -M````````````````````904``!``````````````````````````=P4``!`` -M````````````````````````A04``!``````````````````````````EP4` -M`!``````````````````````````GP4``!`````````````````````````` -M`&UE;5]M;V1E=F5N=`!M96U?8V1E=G-W`&UE;61E=@!K;65M9&5V`%]?6U?7VUO9%]M971A9&%T85]M96U?=F5R6U?7VUO9%]M971A9&%T85]M9%]M96T` -M7VUO9%]M971A9&%T85]M9%]M96T`7U]S971?;6]D;65T861A=&%?7-U;FEN:71?7-? -M=6YI;FET`%]?7-?:6YI=`!-7TU%341%4T-?:6YI=%]S>7-?:6YI=`!A;60V-%]M=')R,FUR -M=`!A;60V-%]M=')R=&]M7-M87-K`&%M9#8T7VUT7-?:6YI -M=`!A;60V-&UE;61E=E]S>7-?:6YI=`!?7W-E=%]S>7-C=&Q?7-C=&Q?7U]M86-H9&5P7V1I7-?:6YI=`!?7U1U;F%B;&5?:6YI=%\V-U]S>7-?:6YI -M=`!?7W1U;F%B;&5?:6YT7S8W`$U?345-1$530P!M96UM;6%P`&UE;6]P96X` -M;65M7W)A;F=E7V%T=')?6]U=`!C<'5?97AT -M:&EG:`!D97-T7-C=&Q? -M7VUA8VAD97!?8VAI;&1R96X`8W!U7VED`'5I;VUO=F4`;6%K95]D978`8V]P -M>6EN`&-P=5]V96YD;W(``P````````L````#````'P`````````E`P`` -M``````(```!1````_/________\U`P````````(```!"````_/________]M -M`P````````(```!+````_/________]^`P````````(```!"````_/______ -M___U`P````````L```!:``````````````#Z`P````````(```!5````_/__ -M______\M!`````````(```!;````_/________\_!`````````(```!+```` -M_/________]D!`````````(```!0````_/________]^!`````````L```!0 -M``````````````"4!`````````(```!0````^_________^K!`````````(` -M``!0````"`````````"[!`````````(```!0````#`````````#'!``````` -M``(```!3````_/_________D!`````````L````"```````````````#!0`` -M``````L````"``````````````#Y!@````````(````&````)`````````#, -M"`````````(````&````'`````````#B"`````````(````&````#``````` -M``#P"`````````(```!#````_/_________Y"`````````(```!*````_/__ -M______\9"0````````L````#````+0`````````@"0````````L```!.```` -M```````````E"0````````(```!4````_/________\P"0````````(```!0 -M````^/________\T"0````````L````%````0`(````````]"0````````L` -M```#````.@````````!$"0````````L```!.``````````````!)"0`````` -M``(```!4````_/_________?"0````````(````"````'`````````#O"0`` -M``````(````_````_/________]V"@````````(````"````'`````````"& -M"@````````(````_````_/________^="P````````(````&````)``````` -M``#-"P````````(````"````'`````````#6"P````````(````_````_/__ -M______]6#`````````(````"````'`````````!F#`````````(````_```` -M_/________\"#@````````(```!3````_/________]J#P````````(```!3 -M````_/________]*$`````````(````&````%`````````!E$`````````(` -M```&````'`````````!M$`````````(```!7````_/________^*$``````` -M``(```!&````^/________^K$`````````(````&````)`````````#1$``` -M``````L````R``````````````#:$`````````(```!$````_/________\- -M$@````````(````&````)``````````C$@````````L````$```````````` -M```P$@````````(```!`````_/________\@``````````$````#````1P`` -M``````````````````$````%````P``````````(``````````$````%```` -M``$````````0``````````$````%````(`$```````````````````$````% -M````X``````````(``````````$````%````(`(````````0``````````$` -M```%````8`(````````8``````````$````%````T`(````````````````` -M``$````%``````(```````````````````$````%````@`(````````(```` -M``````$````#````#P`````````0``````````$````T```````````````H -M``````````$````Y```````````````P``````````$````Y```````````` -M```X``````````$````X``````````````!(``````````$````S```````` -M``````#(``````````$````%````.`$```````#0``````````$````#```` -M#P````````#H``````````$```!(``````````````#P``````````$````% -M````0`$````````(`0````````$````%````0`$````````0`0````````$` -M```#````#P`````````H`0````````$````%````6`$````````P`0`````` -M``$````#````&`````````!``0````````$````#````#P````````!(`0`` -M``````$````!``````````````"X`0````````$````#````)0`````````( -M`@````````$```!6```````````````0`@````````$````R```````````` -M```H`@````````$```!!```````````````P`@````````$````R```````` -M``````!``@````````$````!````(!````````!(`@````````$````!```` -MH`P```````!0`@````````$````!````P`@```````!H`@````````$````! -M````X`@```````"``@````````$```!)``````````````"8`@````````$` -M```&````$`````````"H`@````````$````#````3`````````"P`@`````` -M``$```!8``````````````"X`@````````$````#````6@````````#(`@`` -M``````$````#````7`````````#8`@````````$```!2``````````````#@ -M`@````````$````%````\`(```````#P`@````````$````#````<0`````` -:``#X`@````````$````&````$``````````` -` -end diff --git a/contrib/elftoolchain/test/nm/ts/vector_str/Makefile b/contrib/elftoolchain/test/nm/ts/vector_str/Makefile deleted file mode 100644 index 745814ba..00000000 --- a/contrib/elftoolchain/test/nm/ts/vector_str/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# $Id$ -TET_ROOT?= /usr/tet -LIBDIR= $(TET_ROOT)/lib/tet3 -INCDIR= $(TET_ROOT)/inc/tet3 -CSTD= -std=iso9899:1999 -CFLAGS= -I$(INCDIR) -TC= vector_str-tc - -vector_str.o: ../../../vector_str.c - $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c - -$(TC): $(TC).c vector_str.o $(INCDIR)/tet_api.h - $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o $(LIBDIR)/tcm.o \ - $(LIBDIR)/libapi.a - -clean: - rm -f *.o $(TC) - -lint: - lint $(CFLAGS) $(TC) -ltcm diff --git a/contrib/elftoolchain/test/nm/ts/vector_str/vector_str-tc.c b/contrib/elftoolchain/test/nm/ts/vector_str/vector_str-tc.c deleted file mode 100644 index 8c99be6e..00000000 --- a/contrib/elftoolchain/test/nm/ts/vector_str/vector_str-tc.c +++ /dev/null @@ -1,392 +0,0 @@ -/*- - * Copyright (c) 2008 Hyogeol Lee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer - * in this position and unchanged. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $Id$ - */ - -#include -#include - -#include - -#include "../../../vector_str.h" - -static void test_find(); -static void test_get_flat(); -static void test_pop(); -static void test_substr(); -static void test_push(); -static void test_push_vector_head(); -static bool init_test_vec1(struct vector_str *); -static bool init_test_vec2(struct vector_str *); - -void (*tet_startup)() = NULL; -void (*tet_cleanup)() = NULL; - -const char *str1 = "TIGER, tiger, burning bright"; -const char *str2 = "In the forests of the night,"; -const char *str3 = "What immortal hand or eye"; -const char *str4 = "Could frame thy fearful symmetry?"; - -const char *str5 = "TIGER, tiger, burning brightIn the forests of the night,"; -const char *str6 = "In the forests of the night,What immortal hand or eye"; - -struct tet_testlist tet_testlist[] = { - { test_find, 1}, - { test_get_flat, 2}, - { test_pop, 3}, - { test_substr, 4}, - { test_push, 5}, - { test_push_vector_head, 6}, - { NULL, 0} -}; - -static void -test_find() -{ - struct vector_str v; - - tet_infoline("test vector_str_find"); - - if (init_test_vec1(&v) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_find(NULL, "abc", 3) != -1) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_find(&v, "tiger", 5) == 1) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_find(&v, str1, strlen(str1)) != 1) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_find(&v, str2, strlen(str2)) != 1) { - tet_result(TET_FAIL); - - return; - } - - tet_result(TET_PASS); -} - -static void -test_get_flat() -{ - char *rtn; - size_t rtn_len; - struct vector_str v; - - tet_infoline("test vector_str_get_flat"); - - if (init_test_vec1(&v) == false) { - tet_result(TET_FAIL); - - return; - } - - if ((rtn = vector_str_get_flat(NULL, &rtn_len)) != NULL) { - tet_result(TET_FAIL); - - return; - } - - if ((rtn = vector_str_get_flat(&v, &rtn_len)) == NULL) { - tet_result(TET_FAIL); - - return; - } - - if (strncmp(str5, rtn, rtn_len) != 0) { - tet_infoline(rtn); - - free(rtn); - - tet_result(TET_FAIL); - - return; - } - - free(rtn); - - tet_result(TET_PASS); -} - -static void -test_pop() -{ - size_t size; - struct vector_str v; - - tet_infoline("test vector_str_pop"); - - if (init_test_vec1(&v) == false) { - tet_result(TET_FAIL); - - return; - } - - if (v.size == 0) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_pop(NULL) != false) { - tet_result(TET_FAIL); - - return; - } - - size = v.size; - if (vector_str_pop(&v) == false) { - tet_result(TET_FAIL); - - return; - } - - if (v.size != size - 1) { - tet_infoline("Size mismatch."); - tet_result(TET_FAIL); - - return; - } - - tet_result(TET_PASS); -} - -static void -test_substr() -{ - char *rtn; - size_t rtn_len; - struct vector_str v; - - tet_infoline("test vector_str_substr"); - - if (vector_str_init(&v) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v, str1, strlen(str1)) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v, str2, strlen(str2)) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v, str3, strlen(str3)) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v, str4, strlen(str1)) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_substr(NULL, 1, 2, NULL) != NULL) { - tet_result(TET_FAIL); - - return; - } - - if ((rtn = vector_str_substr(&v, 1, 2, &rtn_len)) == NULL) { - tet_result(TET_FAIL); - - return; - } - - if (strncmp(str6, rtn, rtn_len) != 0) { - tet_infoline(rtn); - tet_result(TET_FAIL); - - free(rtn); - - return; - } - - free(rtn); - - tet_result(TET_PASS); -} - -static void -test_push() -{ - size_t size; - struct vector_str v; - - tet_infoline("test vector_str_push"); - - if (init_test_vec1(&v) == false) { - tet_result(TET_FAIL); - - return; - } - - size = v.size; - if (vector_str_push(NULL, "abc", 3) != false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v, "abc", 3) == false) { - tet_result(TET_FAIL); - - return; - } - - if (v.size != size + 1) { - tet_result(TET_FAIL); - - return; - } - - if (strncmp(v.container[v.size - 1], "abc", 3) != 0) { - tet_result(TET_FAIL); - - return; - } - - tet_result(TET_PASS); -} - -static void -test_push_vector_head() -{ - char *rtn; - size_t rtn_len; - struct vector_str v1, v2; - - if (vector_str_init(&v1) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_init(&v2) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v2, str1, strlen(str1)) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push(&v1, str2, strlen(str2)) == false) { - tet_result(TET_FAIL); - - return; - } - - if (vector_str_push_vector_head(&v1, &v2) == false) { - tet_result(TET_FAIL); - - return; - } - - if ((rtn = vector_str_get_flat(&v1, &rtn_len)) == NULL) { - tet_result(TET_FAIL); - - return; - } - - if (strncmp(str5, rtn, rtn_len) != 0) { - tet_infoline(rtn); - - free(rtn); - - tet_result(TET_FAIL); - - return; - } - - free(rtn); - - tet_result(TET_PASS); -} - -static bool -init_test_vec1(struct vector_str *v) -{ - - if (v == NULL) - return (false); - - if (vector_str_init(v) == false) - return (false); - - if (vector_str_push(v, str1, strlen(str1)) == false) - return (false); - - if (vector_str_push(v, str2, strlen(str2)) == false) - return (false); - - return (true); -} - -static bool -init_test_vec2(struct vector_str *v) -{ - - if (v == NULL) - return (false); - - if (vector_str_init(v) == false) - return (false); - - if (vector_str_push(v, str3, strlen(str3)) == false) - return (false); - - if (vector_str_push(v, str4, strlen(str4)) == false) - return (false); - - return (true); -} diff --git a/contrib/elftoolchain/test/tet/Makefile b/contrib/elftoolchain/test/tet/Makefile deleted file mode 100644 index a176d849..00000000 --- a/contrib/elftoolchain/test/tet/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -# -# Build TET from source. -# -# $Id$ -# - -TOP= ../.. - -.include "${TOP}/mk/elftoolchain.tetvars.mk" - -TET_BUILD_MARKER= .tet-build-done -TET_PATCH_MARKER= .tet-patch-done - -.MAIN: all - -.PHONY: all clean cleandepend clobber depend test - -.if exists(${TET_ROOT}/configure) - -# -# The TET source tree was present. -# - -all: ${TET_BUILD_MARKER} - -${TET_BUILD_MARKER}: ${TET_PATCH_MARKER} - cd ${TET_ROOT} && sh ./configure -t lite - cd ${TET_ROOT}/src && ${MAKE} all install - touch ${TET_BUILD_MARKER} - -${TET_PATCH_MARKER}: - for f in patches/*.patch; do \ - patch -p0 < $${f}; \ - done - touch ${TET_PATCH_MARKER} - -clean: - cd ${TET_ROOT}/src && ${MAKE} clean - rm -f ${TET_BUILD_MARKER} - -clobber: - rm -rf ${TET_ROOT} ${TET_BUILD_MARKER} ${TET_PATCH_MARKER} - -cleandepend depend test: .SILENT - true - -.else - -# -# The TET source tree was not detected. -# - -all depend test: .SILENT - echo "ERROR: The distribution of TET v${TET_VERSION} is missing." - echo - echo "Please download the distribution from:" - echo " ${TET_DOWNLOAD_URL}" - echo "and unpack it into directory \"${TET_ROOT}\"." - echo - false - -clean clobber: - rm -f ${TET_BUILD_MARKER} ${TET_PATCH_MARKER} - -cleandepend: # Nothing to do. -.endif diff --git a/contrib/elftoolchain/test/tet/bin/check-tet-journal b/contrib/elftoolchain/test/tet/bin/check-tet-journal deleted file mode 100755 index 9169010d..00000000 --- a/contrib/elftoolchain/test/tet/bin/check-tet-journal +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# This script examines a TET journal for test invocations that did not -# report a 'PASS' test status. -# -# Unresolved test invocations cause a warning to be issued. Failed -# test invocations cause the script to return with a non-zero exit -# code. -# -# The script will use the most recent journal found under the test suite -# directory specified by the '-t' option. -# -# A specific journal may also be specified, by using the '-j' option. - -usage() -{ - if [ ${#} -ne 0 ]; then - echo ERROR: $* - fi - echo Usage: `basename $0`: "[options]" - echo - echo " -t DIR Look for the most recent journal under directory DIR." - echo " -j FILE Use the specified journal file." -} - -args=`getopt j:t: $*` -set -- ${args} -for arg -do - case "${arg}" in - -t ) - ts_root=${2} - shift; shift;; - -j ) - journal=${2} - shift; shift;; - -- ) - shift; break;; - esac -done - -if [ ${#} -ne 0 ]; then - usage - exit 2 -fi - -if [ -n "${ts_root}" -a -n "${journal}" ]; then - usage "Only one of -t or -j should be specified." - exit 1 -fi - -if [ -n "${ts_root}" -a ! -d "${ts_root}/results" ]; then - usage "No 'results' directory in test suite root \"${ts_root}\"." - exit 1 -fi - -# Determine the latest journal file to use, if one was not explicitly -# specified. -if [ -z "${journal}" ]; then - journal=`find "${ts_root}/results" -name journal | tail -1` - if [ -z "${journal}" ]; then - usage "Could not find a TET journal under \"${ts_root}\"." - exit 1 - fi -fi - -awk -F'|' -v journal="${journal}" < "${journal}" ' -BEGIN { nErrors = 0; nWarnings = 0 } - -# Clear the accumulated message when a test purpose starts. -$1 == "200" { msg = "" } - -# Accumulate messages from the test purpose. -$1 == "520" { - split($2, fields, " "); # Field $2 has fields: ACT# TP# CTXT BLK# SEQ#. - msg = (msg ? msg "\n" : "") fields[1] " " $3; -} - -# Handle the end of the test. -$1 == "220" { - # Test passes are unexceptional. - if ($3 == "PASS") { next; } - - # Record messages from test failures. - if ($3 == "FAIL") { - errors[nErrors] = msg; - nErrors++; - next; - } - - # Record messages for other test statuses as warnings. - warnings[nWarnings] = msg; - nWarnings++; -} - -# Print out warnings and errors. -END { - if (nWarnings > 0 || nErrors > 0) - printf(":: JOURNAL \"%s\"\n", journal); - - if (nWarnings > 0) { - print ":: TEST SUITE WARNINGS" - for (w = 0; w < nWarnings; w++) { - print warnings[w]; - } - } - - if (nErrors > 0) { - print ":: TEST SUITE FAILURES" - for (e = 0; e < nErrors; e++) { - print errors[e]; - } - } - - exit (nErrors != 0); -}' diff --git a/contrib/elftoolchain/test/tet/bin/munge-ts b/contrib/elftoolchain/test/tet/bin/munge-ts deleted file mode 100755 index 23bc5a6c..00000000 --- a/contrib/elftoolchain/test/tet/bin/munge-ts +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# This shell script generates scaffolding for a TET C API test case -# given a list of objects that use the TET C API. -# -# - If the TET extended API function "tet_isdefic" is present, then -# no scaffolding is generated. In such cases, the test case -# is assumed to be self-sufficient. -# -# - If the symbol "tet_testlist[]' is defined, then no scaffolding is -# generated. -# -# - Otherwise, a "struct tet_testlist []" array is generated from the -# names of public functions in the objects. -# -# Functions with names matching "^tp\(.*\)" are treated as test -# purposes belonging to a test case named "Default". -# -# Functions with names matching '^tc\([a-zA-Z0-9_]+\)' are treated -# as test case names. -# -# Functions with names matching '^tc\([a-zA-Z0-9_]*\)_tp.*' -# are treated as test purposes belonging to the test case named -# by the first regular expression. Test purposes in a given test -# case are invoked in lexicographic sort order. -# -# - If variables "tet_startup" or "tet_cleanup" are not defined in the -# objects given to the script, a suitable NULL pointer definition -# is generated. -# -# - A scenario file that invokes each test case independently of the -# others is generated. This scenario file is intended to be -# included, using TET's ":include:" syntax, from a higher-level -# scenario file. - -usage() -{ - echo Usage: `basename $0`: "[options] objects..." - echo - /bin/echo -e " Generate TET scaffolding from objects. " \ - "Options include:" - /bin/echo -e "\t-o out\t\tcreate output file \"out\" " \ - "[default \"tc.c\"]." - /bin/echo -e "\t-s scen\t\tcreate scenario file \"scen\" " \ - "[default \"tet_scen\"]." - /bin/echo -e "\t-p prefix\t\tprefix for naming test cases" -} - -output="tc.c" -scen="tet_scen" - -args=`getopt o:p:s: $*` -if [ ${?} -ne 0 ]; then - usage - exit 2 -fi - -set -- ${args} - -for i -do - case "${i}" in - -o ) - output="${2}"; - shift; shift;; - -p ) - prefix="${2}"; - shift; shift;; - -s ) - scen="${2}"; - shift; shift;; - -- ) - shift; break;; - esac -done - -if [ ${#} -eq 0 ]; then - usage - exit 2 -fi - -exec > ${output} -echo "\ -/* - * WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! - * - * THIS FILE IS GENERATED FROM: ${@} - */ -#include " - -if ! nm ${*} | sort -k 3 | \ - awk -v scen=${scen} -v prefix=${prefix} ' - BEGIN { do_scaffolding = 1; tcseq[ntc++] = "Default"; } - $2 == "T" && $3 ~ "^tc" { - fnname = substr($3,3); - - if (match(fnname, "^.*_tp")) - tcname = substr(fnname,RSTART,RLENGTH-3); - else - tcname = fnname; - - if (ptc != tcname) { - tcseq[ntc++] = tcname; - ptc = tcname; - } - - c = tc[tcname]++; - tp[tcname,c] = $3 - } - $2 == "T" && $3 ~ "^tp" { - tcname = "Default"; - - c = tc[tcname]++; - tp[tcname,c++] = $3; - } - $2 == "T" && $3 == "tet_isdefic" { do_scaffolding = 0 } - $2 == "D" && $3 == "tet_testlist" { do_scaffolding = 0 } - $2 == "D" && $3 == "tet_cleanup" { has_tc_cleanup = 1 } - $2 == "D" && $3 == "tet_startup" { has_tc_startup = 1 } - $1 == "U" && $2 == "elfts_compare_files" { - printf("#include \"elfts-compare-files.c\"\n"); - } - $1 == "U" && $2 == "elfts_copy_file" { - printf("#include \"elfts-copy-file.c\"\n"); - } - $1 == "U" && $2 == "elfts_init_version" { - printf("#include \"elfts-initversion.c\"\n"); - } - $1 == "U" && $2 == "elfts_open_file" { - printf("#include \"elfts-openfile.c\"\n"); - } - END { - if (do_scaffolding == 0) - exit(1); - - if (has_tc_startup == 0) { - printf("void (*tet_startup)(void) = NULL;\n"); - } - - if (has_tc_cleanup == 0) { - printf("void (*tet_cleanup)(void) = NULL;\n"); - } - - for (tcname in tc) { - nc = tc[tcname]; - for (c = 0; c < nc; c++) - printf("void %s();\n", tp[tcname,c]); - } - - printf("struct tet_testlist tet_testlist[] = {\n"); - - n = 0; - for (n = 0; n < ntc; n++) { - tcname = tcseq[n]; - nc = tc[tcname]; - for (c = 0; c < nc; c++) { - printf("\t{%s,%d},\n", tp[tcname,c], n); - } - if (nc > 0) - printf("/%s{%d}\n", prefix, n) > scen; - } - printf("\t{NULL,0} };\n"); - }'; then - rm ${output} ${scen} - exit 1 -fi diff --git a/contrib/elftoolchain/test/tet/common/elfts.m4 b/contrib/elftoolchain/test/tet/common/elfts.m4 deleted file mode 100644 index 3035885f..00000000 --- a/contrib/elftoolchain/test/tet/common/elfts.m4 +++ /dev/null @@ -1,80 +0,0 @@ -pushdef(`_DIVNUM',divnum)divert(-1) -/*- - * Copyright (c) 2006,2010 Joseph Koshy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Id$ - */ - -dnl `mkstemp' is a built-in in GNU m4. -ifdef(`mkstemp',`undefine(`mkstemp')') - -/* - * Macros for use with `m4'. - */ - -/* - * TOUPPER/TOLOWER: Convert $1 to upper-case or lower-case respectively. - * CAPITALIZE: Make $1 capitalized. - */ - -define(`TOUPPER',`translit($1,`abcdefghijklmnopqrstuvwxyz',`ABCDEFGHIJKLMNOPQRSTUVWXYZ')') -define(`TOLOWER',`translit($1,`ABCDEFGHIJKLMNOPQRSTUVWXYZ',`abcdefghijklmnopqrstuvwxyz')') -define(`CAPITALIZE',`TOUPPER(substr($1,0,1))`'TOLOWER(substr($1,1))') - -/* - * TP_ANNOUNCE: Announce a test purpose. - * Usage: - * TP_ANNOUNCE() -- Announce the function name. - * TP_ANNOUNCE(fmt, args...) -- Announce the function and print arguments. - */ -define(`TP_ANNOUNCE',`TP_FUNCTION(); - tet_printf("A: " $*)'); - -/* - * TP_FUNCTION: Print the current function name to the TET log. - */ -define(`TP_FUNCTION',`tet_printf("N: %s", __func__)') - -/* - * TP_UNRESOLVED/T_FAIL: Print an appropriate message to the log, and set the - * `result' variable. - */ -define(`TP_UNRESOLVED', - `do { tet_printf("U: " $*); result = TET_UNRESOLVED; } while (0)') -define(`TP_FAIL', - `do { tet_printf("F: " $*); result = TET_FAIL; } while (0)') - -/* - * TP_SET_VERSION: set elf_version() or fail. - */ -define(`TP_SET_VERSION',`do { - if (elf_version(EV_CURRENT) != EV_CURRENT) { - TP_UNRESOLVED("elf_version() failed: \"%s\".", - elf_errmsg(-1)); - goto done; - } - } while (0)') - -divert(_DIVNUM)popdef(`_DIVNUM') diff --git a/contrib/elftoolchain/test/tet/patches/configure.patch b/contrib/elftoolchain/test/tet/patches/configure.patch deleted file mode 100644 index c0f55794..00000000 --- a/contrib/elftoolchain/test/tet/patches/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -: $Id$ - ---- tet3.8/configure-- Sat Mar 23 10:36:51 2019 -+++ tet3.8/configure Sat Mar 23 10:38:03 2019 -@@ -317,7 +317,7 @@ CRAY*) - *-sgi-irix*) - fname=irix.mk - ;; --*-freebsd) -+*-freebsd | *-netbsd | *-dragonfly | *-openbsd) #Use FreeBSD's configuration. - fname=freebsd.mk - ;; - *-bsdi) diff --git a/contrib/elftoolchain/test/tet/patches/defines.linux.patch b/contrib/elftoolchain/test/tet/patches/defines.linux.patch deleted file mode 100644 index f39d3c8b..00000000 --- a/contrib/elftoolchain/test/tet/patches/defines.linux.patch +++ /dev/null @@ -1,13 +0,0 @@ -: $Id$ - ---- tet3.8/src/defines/linux.mk-- 2011-11-18 10:04:28.374703560 +0530 -+++ tet3.8/src/defines/linux.mk 2011-11-18 10:04:32.318703781 +0530 -@@ -71,7 +71,7 @@ - # ************************************************************************ - - # make utilities - these don't usually change --MAKE = make -+MAKE ?= make - SHELL = /bin/sh - - diff --git a/contrib/elftoolchain/test/tet/patches/guessos.patch b/contrib/elftoolchain/test/tet/patches/guessos.patch deleted file mode 100644 index aeab0ac1..00000000 --- a/contrib/elftoolchain/test/tet/patches/guessos.patch +++ /dev/null @@ -1,15 +0,0 @@ -: $Id$ - ---- tet3.8/src/helpers/GuessOS-- 2005-12-09 16:29:25 +0530 -+++ tet3.8/src/helpers/GuessOS 2011-11-24 01:42:21 +0530 -@@ -175,6 +175,10 @@ - echo "${MACHINE}-whatever-bsdi"; exit 0 - ;; - -+ DragonFly:*) -+ echo "${MACHINE}-whatever-dragonfly"; exit 0 -+ ;; -+ - FreeBSD:*:*:*486*) - echo "i486-whatever-freebsd"; exit 0 - ;; diff --git a/contrib/elftoolchain/tools/Makefile b/contrib/elftoolchain/tools/Makefile deleted file mode 100644 index 13db8576..00000000 --- a/contrib/elftoolchain/tools/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $Id$ - -TOP= .. - -.include "${TOP}/mk/elftoolchain.os.mk" - -SUBDIR= - -.if defined(MKNOWEB) && ${MKNOWEB} == "yes" && exists(${NOWEB}) && \ - exists(${PDFLATEX}) -SUBDIR+= build-automation -.endif - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/tools/build-automation/Makefile b/contrib/elftoolchain/tools/build-automation/Makefile deleted file mode 100644 index d6c105f5..00000000 --- a/contrib/elftoolchain/tools/build-automation/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# $Id$ -# -# Yet Another Build System. - -TOP= ../.. - -SUBDIR= controller \ - executor - -.include "${TOP}/mk/elftoolchain.subdir.mk" diff --git a/contrib/elftoolchain/tools/build-automation/README b/contrib/elftoolchain/tools/build-automation/README deleted file mode 100644 index 4526efaf..00000000 --- a/contrib/elftoolchain/tools/build-automation/README +++ /dev/null @@ -1,10 +0,0 @@ -.. -*- mode: rst; -*- - -Build Automation -================ - -This directory contains a utility to build and test the Elftoolchain -project's sources on a variety of target operating systems and processor -architectures. - -.. $Id$ diff --git a/contrib/elftoolchain/tools/build-automation/cli/yabs.1 b/contrib/elftoolchain/tools/build-automation/cli/yabs.1 deleted file mode 100644 index 8451dce1..00000000 --- a/contrib/elftoolchain/tools/build-automation/cli/yabs.1 +++ /dev/null @@ -1,117 +0,0 @@ -.\" Copyright (c) 2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 29, 2012 -.Os -.Dt YABS 1 -.Sh NAME -.Nm yabs -.Nd yet another job scheduler -.Sh SYNOPSIS -.Nm -.Op Fl c Ar configdir -.Op Fl d -.Op Fl v -.Ar jobname -.Pp -.Nm -.Ar sub-command -.Op Ar sub-command-options -.Sh DESCRIPTION -The -.Nm -utility schedules jobs that span multiple machines. -A typical use for this utility would be to control multi-machine -software builds. -.Pp -The first form of invocation is used to invoke a job. -The argument -.Ar jobname -should specify the name of job description specified in a -configuration file. -.Pp -The second form of invocation is used inside slave and scheduler -scripts. -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width indent -.It Fl c Ar configdir -Search for configuration information in directory -.Ar configdir . -This option may be specified multiple times. -The default is to look under -.Pa $HOME/.yabs -and the system default directory -.Pa /etc/yabs . -.It Fl d -Enable job debugging. -.It Fl v -Be verbose. -.El -.Sh EXIT STATUS -.Ex -std -.Sh FILES -.Bl -tag -width indent -.It Pa /etc/yabs/default/ -System-wide default configuration information. -.It Pa /etc/yabs/ Ns Ar jobname -System-wide configuration for job -.Ar jobname . -.It Pa $HOME/.yabs/default -Per-user default configuration information. -.It Pa $HOME/.yabs/ Ns Ar jobname -Per-user configuration for job -.Ar jobname . -.It Pa /var/log/yabs/ Ns Ar jobname Ns . Ns Ar number Ns / -Directory containing the log files generated by a job. -.El -.Sh ENVIRONMENT -.Bl -tag -width indent -.It Li YABS_JOB -(Set by -.Nm ) -The current job identifier. -This a string of the form -.Dq Ar jobname Ns . Ns Ar number . -.It Li YABS_SLAVE -(Set by -.Nm ) -The current slave identifier. -.El -.Sh EXAMPLES -To invoke a job named -.Sq myjob , -use: -.Dl $ yabs myjob -.Sh SEE ALSO -.Xr sh 1 -.Sh HISTORY -The -.Nm -utility was created by -.An "Joseph Koshy" Aq jkoshy@users.sourceforge.net -under the aegis of the Elftoolchain project. diff --git a/contrib/elftoolchain/tools/build-automation/executor/yabs-executor.1 b/contrib/elftoolchain/tools/build-automation/executor/yabs-executor.1 deleted file mode 100644 index 375b92b2..00000000 --- a/contrib/elftoolchain/tools/build-automation/executor/yabs-executor.1 +++ /dev/null @@ -1,102 +0,0 @@ -.\" Copyright (c) 2012 Joseph Koshy. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" This software is provided by Joseph Koshy ``as is'' and -.\" any express or implied warranties, including, but not limited to, the -.\" implied warranties of merchantability and fitness for a particular purpose -.\" are disclaimed. in no event shall Joseph Koshy be liable -.\" for any direct, indirect, incidental, special, exemplary, or consequential -.\" damages (including, but not limited to, procurement of substitute goods -.\" or services; loss of use, data, or profits; or business interruption) -.\" however caused and on any theory of liability, whether in contract, strict -.\" liability, or tort (including negligence or otherwise) arising in any way -.\" out of the use of this software, even if advised of the possibility of -.\" such damage. -.\" -.\" $Id$ -.\" -.Dd August 31, 2012 -.Os -.Dt YABS-SLAVE 1 -.Sh NAME -.Nm yabs-slave -.Nd the slave program for the Elftoolchain system -.Sh SYNOPSIS -.Nm -.Op Fl h -.Op Fl i Ar identifier -.Op Fl p Ar port -.Op Fl v -.Op Fl V -.Op Ar server -.Sh DESCRIPTION -The -.Nm -utility is part of the -.Nm yabs -build automation system. -It is intended to be executed inside a machine participating in a -build job. -The -.Nm -utility connects back to a -.Nm yabs -job despatcher, receives commands to execute and sends back the -results of executing these commands. -.Pp -The optional argument -.Ar server -specifies the -.Nm yabs -server to connect to. -This argument specifies a hostname, an IPv4 or IPv6 address, or a path to -a local socket. -If the -.Ar server -argument is not specified, then -.Nm -will read from standard input and write to standard output. -.Pp -The -.Nm -utility recognizes the following options: -.Bl -tag -width indent -.It Fl h -Print a help message and exit. -.It Fl i Ar identifier -Use the argument -.Ar identifier -when connecting to the despatcher. -The default is to use the hostname of the system. -.It Fl p Ar port -Connect to the port specified by the argument -.Ar port. -The argument must be a decimal number. -This option is ignored if the argument -.Ar server -is not specified, or if it specifies a local socket. -.It Fl v -Increase verbosity. -This flag may be specified multiple times. -.It Fl V -Print a version number and exit. -.El -.Sh EXIT STATUS -.Ex -std -.Sh SEE ALSO -.Xr sh 1 , -.Xr yabs 1 -.Sh HISTORY -The -.Nm -utility was created by -.An "Joseph Koshy" Aq jkoshy@users.sourceforge.net -under the aegis of the Elftoolchain project. diff --git a/contrib/elftoolchain/tools/html-manpages/Makefile b/contrib/elftoolchain/tools/html-manpages/Makefile deleted file mode 100644 index 8a06fffe..00000000 --- a/contrib/elftoolchain/tools/html-manpages/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# Publish the Elftoolchain project's manual pages as static files on -# Sourceforge. -# -# $Id$ - -TOP= ../.. - -CSS= mandoc.css - -STAGING_DIRECTORY= ${.OBJDIR}/man - -# The location of the manual page collection on SF's website. -SF_WEBDIR= ${USER}@web.sourceforge.net:/home/project-web/elftoolchain/htdocs/man - -.MAIN: all - -all: .PHONY - ${.CURDIR}/html-manpages.sh -t ${TOP} -c ${CSS} \ - -o ${STAGING_DIRECTORY} - -publish: all .PHONY - rsync -Jaz ${STAGING_DIRECTORY}/ ${SF_WEBDIR}/ - -clean: .PHONY - rm -rf ${STAGING_DIRECTORY} diff --git a/contrib/elftoolchain/tools/html-manpages/html-manpages.sh b/contrib/elftoolchain/tools/html-manpages/html-manpages.sh deleted file mode 100755 index b9bfe2d2..00000000 --- a/contrib/elftoolchain/tools/html-manpages/html-manpages.sh +++ /dev/null @@ -1,160 +0,0 @@ -#!/bin/sh -# -# Turn Elftoolchain's manual pages into a collection of static HTML pages. - -# -# Helper functions. -# -usage() -{ - exec >&2 - - # Print the supplied message, if present. - if [ -n "${@}" ]; then echo "## ${@}"; fi - - echo "Usage: ${progname} -t TOPDIR [options]" - - exit 1 -} - -log() -{ - if [ -z "${verbose}" ]; then return; fi - echo $* -} - -# Locate a BSD make. -bsdmakepath() -{ - case `uname -s` in - FreeBSD|Minix|NetBSD|OpenBSD|DragonFly) - which make;; - Linux ) which bmake;; - * ) usage "ERROR: Unsupported operating system.";; - esac -} - -# Replace a header element with an SF logo invocation. -add_sf_link() -{ - sed -e 's,\(\).*,\1SourceForge Logo,' -} - -# -# Defaults. -# -options='c:o:t:v' -css_file='mandoc.css' -output_dir='' -verbose='' -make=`bsdmakepath` - -# -# Parse options. -# -while getopts ${options} option -do - case ${option} in - 'c') css_file="${OPTARG}";; - 'm') make="${OPTARG}";; - 'o') output_dir="${OPTARG}";; - 't') top="${OPTARG}";; - 'v') verbose=TRUE;; - esac -done - -[ -n "${top}" ] || usage "The -t flag was not specified." - -curdir=`pwd` -if [ -z "${output_dir}" ]; then output_dir="${curdir}/man"; fi - -# Create the staging directory and copy the CSS specification into it. -mkdir -p ${output_dir} || \ - usage "ERROR: Cannot create output directory \"${output_dir}\"." -cp ${css_file} ${output_dir} || \ - usage "ERROR: Could not copy \"${css_file}\" to \"${output_dir}\"." - -# List the manual pages to be converted to HTML. -# -# This stanza selects all file names ending in ".", which may be -# too permissive. -cd ${top} || usage "ERROR: Cannot change directory to \"${top}\"." -man_srcs=$(find . -name tet -prune -o -type f -name '*.[0-9]' -print) - -# Translate manual pages to HTML. -for m in ${man_srcs}; do - b=$(basename ${m}) - log Translating ${m} - mandoc -Thtml -O style=${css_file##*/},man=%N.%S.html -mdoc \ - -I os='The Elftoolchain Project' ${m} | \ - add_sf_link > ${output_dir}/${b}.html -done - -# Add MLINKS. -# -# Create a list of directories containing the manual pages being -# translated. -man_dirs=$(echo "$man_srcs" | sed -e 's,/[^/]*$,,' | sort -u) - -# The output from invoking 'make -V $MLINKS' is a sequence of -# (source, target) pairs of manual page names. -for d in ${man_dirs}; do - log Adding MLINKS for ${d} - mlinks=$(cd ${d} && ${make} -V '${MLINKS}') || \ - usage "ERROR: Failed to extract MLINKS for ${d}" - set -- ${mlinks} - while [ ${#} -gt 0 ]; do - log Linking ${2} to ${1} - (cd ${output_dir}; ln -fs ${1}.html ${2}.html); - shift; shift; - done -done - -# Build an index. -log Building an index - -cd ${output_dir} || \ - usage "ERROR: Could not change directory to \"${output_dir}\"." - -# Write out the HTML prologue. -cat > index.html < - - - - - - INDEX - - - - - - - -
Manual Page IndexSourceForge Logo -
-

- - -EOF diff --git a/contrib/elftoolchain/tools/html-manpages/mandoc.css b/contrib/elftoolchain/tools/html-manpages/mandoc.css deleted file mode 100644 index 436a8d1c..00000000 --- a/contrib/elftoolchain/tools/html-manpages/mandoc.css +++ /dev/null @@ -1,351 +0,0 @@ -/* $Id: mandoc.css,v 1.45 2019/03/01 10:57:18 schwarze Exp $ */ -/* - * Standard style sheet for mandoc(1) -Thtml and man.cgi(8). - * - * Written by Ingo Schwarze . - * I place this file into the public domain. - * Permission to use, copy, modify, and distribute it for any purpose - * with or without fee is hereby granted, without any conditions. - */ - -/* Global defaults. */ - -html { max-width: 65em; } -body { font-family: Helvetica,Arial,sans-serif; } -table { margin-top: 0em; - margin-bottom: 0em; - border-collapse: collapse; } -/* Some browsers set border-color in a browser style for tbody, - * but not for table, resulting in inconsistent border styling. */ -tbody { border-color: inherit; } -tr { border-color: inherit; } -td { vertical-align: top; - padding-left: 0.2em; - padding-right: 0.2em; - border-color: inherit; } -ul, ol, dl { margin-top: 0em; - margin-bottom: 0em; } -li, dt { margin-top: 1em; } - -.permalink { border-bottom: thin dotted; - color: inherit; - font: inherit; - text-decoration: inherit; } -* { clear: both } - -/* Search form and search results. */ - -fieldset { border: thin solid silver; - border-radius: 1em; - text-align: center; } -input[name=expr] { - width: 25%; } - -table.results { margin-top: 1em; - margin-left: 2em; - font-size: smaller; } - -/* Header and footer lines. */ - -table.head { width: 100%; - border-bottom: 1px dotted #808080; - margin-bottom: 1em; - font-size: smaller; } -td.head-vol { text-align: center; - vertical-align: middle; } -td.head-ltitle { - text-align: left; - vertical-align: middle; } -td.head-rtitle { - text-align: right; } - -table.foot { width: 100%; - border-top: 1px dotted #808080; - margin-top: 1em; - font-size: smaller; } -td.foot-os { text-align: right; } - -/* Sections and paragraphs. */ - -.manual-text { - margin-left: 3.8em; } -.Nd { } -section.Sh { } -h1.Sh { margin-top: 1.2em; - margin-bottom: 0.6em; - margin-left: -3.2em; - font-size: 110%; } -section.Ss { } -h2.Ss { margin-top: 1.2em; - margin-bottom: 0.6em; - margin-left: -1.2em; - font-size: 105%; } -.Pp { margin: 0.6em 0em; } -.Sx { } -.Xr { } - -/* Displays and lists. */ - -.Bd { } -.Bd-indent { margin-left: 3.8em; } - -.Bl-bullet { list-style-type: disc; - padding-left: 1em; } -.Bl-bullet > li { } -.Bl-dash { list-style-type: none; - padding-left: 0em; } -.Bl-dash > li:before { - content: "\2014 "; } -.Bl-item { list-style-type: none; - padding-left: 0em; } -.Bl-item > li { } -.Bl-compact > li { - margin-top: 0em; } - -.Bl-enum { padding-left: 2em; } -.Bl-enum > li { } -.Bl-compact > li { - margin-top: 0em; } - -.Bl-diag { } -.Bl-diag > dt { - font-style: normal; - font-weight: bold; } -.Bl-diag > dd { - margin-left: 0em; } -.Bl-hang { } -.Bl-hang > dt { } -.Bl-hang > dd { - margin-left: 5.5em; } -.Bl-inset { } -.Bl-inset > dt { } -.Bl-inset > dd { - margin-left: 0em; } -.Bl-ohang { } -.Bl-ohang > dt { } -.Bl-ohang > dd { - margin-left: 0em; } -.Bl-tag { margin-top: 0.6em; - margin-left: 5.5em; } -.Bl-tag > dt { - float: left; - margin-top: 0em; - margin-left: -5.5em; - padding-right: 0.5em; - vertical-align: top; } -.Bl-tag > dd { - clear: right; - width: 100%; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0.6em; - vertical-align: top; - overflow: auto; } -.Bl-compact { margin-top: 0em; } -.Bl-compact > dd { - margin-bottom: 0em; } -.Bl-compact > dt { - margin-top: 0em; } - -.Bl-column { } -.Bl-column > tbody > tr { } -.Bl-column > tbody > tr > td { - margin-top: 1em; } -.Bl-compact > tbody > tr > td { - margin-top: 0em; } - -.Rs { font-style: normal; - font-weight: normal; } -.RsA { } -.RsB { font-style: italic; - font-weight: normal; } -.RsC { } -.RsD { } -.RsI { font-style: italic; - font-weight: normal; } -.RsJ { font-style: italic; - font-weight: normal; } -.RsN { } -.RsO { } -.RsP { } -.RsQ { } -.RsR { } -.RsT { text-decoration: underline; } -.RsU { } -.RsV { } - -.eqn { } -.tbl td { vertical-align: middle; } - -.HP { margin-left: 3.8em; - text-indent: -3.8em; } - -/* Semantic markup for command line utilities. */ - -table.Nm { } -code.Nm { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Fl { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Cm { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Ar { font-style: italic; - font-weight: normal; } -.Op { display: inline; } -.Ic { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Ev { font-style: normal; - font-weight: normal; - font-family: monospace; } -.Pa { font-style: italic; - font-weight: normal; } - -/* Semantic markup for function libraries. */ - -.Lb { } -code.In { font-style: normal; - font-weight: bold; - font-family: inherit; } -a.In { } -.Fd { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Ft { font-style: italic; - font-weight: normal; } -.Fn { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Fa { font-style: italic; - font-weight: normal; } -.Vt { font-style: italic; - font-weight: normal; } -.Va { font-style: italic; - font-weight: normal; } -.Dv { font-style: normal; - font-weight: normal; - font-family: monospace; } -.Er { font-style: normal; - font-weight: normal; - font-family: monospace; } - -/* Various semantic markup. */ - -.An { } -.Lk { } -.Mt { } -.Cd { font-style: normal; - font-weight: bold; - font-family: inherit; } -.Ad { font-style: italic; - font-weight: normal; } -.Ms { font-style: normal; - font-weight: bold; } -.St { } -.Ux { } - -/* Physical markup. */ - -.Bf { display: inline; } -.No { font-style: normal; - font-weight: normal; } -.Em { font-style: italic; - font-weight: normal; } -.Sy { font-style: normal; - font-weight: bold; } -.Li { font-style: normal; - font-weight: normal; - font-family: monospace; } - -/* Tooltip support. */ - -h1.Sh, h2.Ss { position: relative; } -.An, .Ar, .Cd, .Cm, .Dv, .Em, .Er, .Ev, .Fa, .Fd, .Fl, .Fn, .Ft, -.Ic, code.In, .Lb, .Lk, .Ms, .Mt, .Nd, code.Nm, .Pa, .Rs, -.St, .Sx, .Sy, .Va, .Vt, .Xr { - display: inline-block; - position: relative; } - -.An::before { content: "An"; } -.Ar::before { content: "Ar"; } -.Cd::before { content: "Cd"; } -.Cm::before { content: "Cm"; } -.Dv::before { content: "Dv"; } -.Em::before { content: "Em"; } -.Er::before { content: "Er"; } -.Ev::before { content: "Ev"; } -.Fa::before { content: "Fa"; } -.Fd::before { content: "Fd"; } -.Fl::before { content: "Fl"; } -.Fn::before { content: "Fn"; } -.Ft::before { content: "Ft"; } -.Ic::before { content: "Ic"; } -code.In::before { content: "In"; } -.Lb::before { content: "Lb"; } -.Lk::before { content: "Lk"; } -.Ms::before { content: "Ms"; } -.Mt::before { content: "Mt"; } -.Nd::before { content: "Nd"; } -code.Nm::before { content: "Nm"; } -.Pa::before { content: "Pa"; } -.Rs::before { content: "Rs"; } -h1.Sh::before { content: "Sh"; } -h2.Ss::before { content: "Ss"; } -.St::before { content: "St"; } -.Sx::before { content: "Sx"; } -.Sy::before { content: "Sy"; } -.Va::before { content: "Va"; } -.Vt::before { content: "Vt"; } -.Xr::before { content: "Xr"; } - -.An::before, .Ar::before, .Cd::before, .Cm::before, -.Dv::before, .Em::before, .Er::before, .Ev::before, -.Fa::before, .Fd::before, .Fl::before, .Fn::before, .Ft::before, -.Ic::before, code.In::before, .Lb::before, .Lk::before, -.Ms::before, .Mt::before, .Nd::before, code.Nm::before, -.Pa::before, .Rs::before, -h1.Sh::before, h2.Ss::before, .St::before, .Sx::before, .Sy::before, -.Va::before, .Vt::before, .Xr::before { - opacity: 0; - transition: .15s ease opacity; - pointer-events: none; - position: absolute; - bottom: 100%; - box-shadow: 0 0 .35em #000; - padding: .15em .25em; - white-space: nowrap; - font-family: Helvetica,Arial,sans-serif; - font-style: normal; - font-weight: bold; - color: black; - background: #fff; } -.An:hover::before, .Ar:hover::before, .Cd:hover::before, .Cm:hover::before, -.Dv:hover::before, .Em:hover::before, .Er:hover::before, .Ev:hover::before, -.Fa:hover::before, .Fd:hover::before, .Fl:hover::before, .Fn:hover::before, -.Ft:hover::before, .Ic:hover::before, code.In:hover::before, -.Lb:hover::before, .Lk:hover::before, .Ms:hover::before, .Mt:hover::before, -.Nd:hover::before, code.Nm:hover::before, .Pa:hover::before, -.Rs:hover::before, h1.Sh:hover::before, h2.Ss:hover::before, .St:hover::before, -.Sx:hover::before, .Sy:hover::before, .Va:hover::before, .Vt:hover::before, -.Xr:hover::before { - opacity: 1; - pointer-events: inherit; } - -/* Overrides to avoid excessive margins on small devices. */ - -@media (max-width: 37.5em) { -.manual-text { - margin-left: 0.5em; } -h1.Sh, h2.Ss { margin-left: 0em; } -.Bd-indent { margin-left: 2em; } -.Bl-hang > dd { - margin-left: 2em; } -.Bl-tag { margin-left: 2em; } -.Bl-tag > dt { - margin-left: -2em; } -.HP { margin-left: 2em; - text-indent: -2em; } -} From 3102d11cf1379298b15d8d8be2e4c59370023391 Mon Sep 17 00:00:00 2001 From: Christiano Haesbaert Date: Tue, 4 Jun 2024 10:32:32 +0200 Subject: [PATCH 2/4] Import elftoolchain/libelf verbatim. This is a partial import of elftoolchain/libelf with only the files we are really going to use. This commit has no modification to any of the files, except for a new file `commit` added so that we can track our starting point, it tracks the commit of upstream elftoolchain. A non-complete list of what has NOT been imported: - addr2line/ - ar/ - as/ - brandelf/ - cxxfilt/ - documentation/ - elfcopy/ - elfdump/ - findtextrel/ - GNUmakefile - INSTALL - isa/ - ld/ - libdwarf/ - libelftc/ - libpe/ - Makefile - mk/ - nm/ - readelf/ - README.rst - RELEASE-NOTES - size/ - strings/ - test/ - tools/ - libelf/{Makefile, *.3, *.cat3} - common/Makefile - common/sys/Makefile The next commit has all the changes and additions we did to make this work nicely with quark and a recent libbpf. --- contrib/elftoolchain/LICENSE | 32 + contrib/elftoolchain/commit | 1 + contrib/elftoolchain/common/_elftc.h | 492 ++++ contrib/elftoolchain/common/elfdefinitions.h | 34 + .../elftoolchain/common/sys/elfconstants.m4 | 2616 +++++++++++++++++ .../elftoolchain/common/sys/elfdefinitions.m4 | 712 +++++ contrib/elftoolchain/common/utarray.h | 247 ++ contrib/elftoolchain/common/uthash.h | 1152 ++++++++ contrib/elftoolchain/libelf/_libelf.h | 242 ++ contrib/elftoolchain/libelf/_libelf_ar.h | 57 + contrib/elftoolchain/libelf/_libelf_config.h | 71 + contrib/elftoolchain/libelf/elf.c | 42 + contrib/elftoolchain/libelf/elf_begin.c | 95 + contrib/elftoolchain/libelf/elf_cntl.c | 62 + contrib/elftoolchain/libelf/elf_data.c | 284 ++ contrib/elftoolchain/libelf/elf_end.c | 99 + contrib/elftoolchain/libelf/elf_errmsg.c | 87 + contrib/elftoolchain/libelf/elf_errno.c | 45 + contrib/elftoolchain/libelf/elf_fill.c | 41 + contrib/elftoolchain/libelf/elf_flag.c | 200 ++ contrib/elftoolchain/libelf/elf_getarhdr.c | 49 + contrib/elftoolchain/libelf/elf_getarsym.c | 60 + contrib/elftoolchain/libelf/elf_getbase.c | 50 + contrib/elftoolchain/libelf/elf_getident.c | 70 + contrib/elftoolchain/libelf/elf_getversion.c | 46 + contrib/elftoolchain/libelf/elf_hash.c | 58 + contrib/elftoolchain/libelf/elf_kind.c | 46 + contrib/elftoolchain/libelf/elf_memory.c | 51 + contrib/elftoolchain/libelf/elf_next.c | 82 + contrib/elftoolchain/libelf/elf_open.c | 71 + contrib/elftoolchain/libelf/elf_phnum.c | 69 + contrib/elftoolchain/libelf/elf_rand.c | 70 + contrib/elftoolchain/libelf/elf_rawfile.c | 53 + contrib/elftoolchain/libelf/elf_scn.c | 239 ++ contrib/elftoolchain/libelf/elf_shnum.c | 69 + contrib/elftoolchain/libelf/elf_shstrndx.c | 84 + contrib/elftoolchain/libelf/elf_strptr.c | 135 + contrib/elftoolchain/libelf/elf_types.m4 | 309 ++ contrib/elftoolchain/libelf/elf_update.c | 1246 ++++++++ contrib/elftoolchain/libelf/elf_version.c | 54 + contrib/elftoolchain/libelf/gelf.h | 110 + contrib/elftoolchain/libelf/gelf_cap.c | 153 + contrib/elftoolchain/libelf/gelf_checksum.c | 60 + contrib/elftoolchain/libelf/gelf_dyn.c | 156 + contrib/elftoolchain/libelf/gelf_ehdr.c | 171 ++ contrib/elftoolchain/libelf/gelf_fsize.c | 64 + contrib/elftoolchain/libelf/gelf_getclass.c | 41 + contrib/elftoolchain/libelf/gelf_move.c | 163 + contrib/elftoolchain/libelf/gelf_phdr.c | 175 ++ contrib/elftoolchain/libelf/gelf_rel.c | 166 ++ contrib/elftoolchain/libelf/gelf_rela.c | 169 ++ contrib/elftoolchain/libelf/gelf_shdr.c | 134 + contrib/elftoolchain/libelf/gelf_sym.c | 163 + contrib/elftoolchain/libelf/gelf_syminfo.c | 156 + contrib/elftoolchain/libelf/gelf_symshndx.c | 148 + contrib/elftoolchain/libelf/gelf_xlate.c | 87 + contrib/elftoolchain/libelf/libelf.h | 256 ++ contrib/elftoolchain/libelf/libelf_align.c | 141 + contrib/elftoolchain/libelf/libelf_allocate.c | 199 ++ contrib/elftoolchain/libelf/libelf_ar.c | 501 ++++ contrib/elftoolchain/libelf/libelf_ar_util.c | 364 +++ contrib/elftoolchain/libelf/libelf_checksum.c | 102 + contrib/elftoolchain/libelf/libelf_convert.m4 | 1096 +++++++ contrib/elftoolchain/libelf/libelf_data.c | 111 + contrib/elftoolchain/libelf/libelf_ehdr.c | 216 ++ .../elftoolchain/libelf/libelf_elfmachine.c | 67 + contrib/elftoolchain/libelf/libelf_extended.c | 138 + contrib/elftoolchain/libelf/libelf_fsize.m4 | 163 + contrib/elftoolchain/libelf/libelf_memory.c | 100 + contrib/elftoolchain/libelf/libelf_msize.m4 | 123 + contrib/elftoolchain/libelf/libelf_open.c | 252 ++ contrib/elftoolchain/libelf/libelf_phdr.c | 160 + contrib/elftoolchain/libelf/libelf_shdr.c | 58 + contrib/elftoolchain/libelf/libelf_xlate.c | 153 + 74 files changed, 15838 insertions(+) create mode 100644 contrib/elftoolchain/LICENSE create mode 100644 contrib/elftoolchain/commit create mode 100644 contrib/elftoolchain/common/_elftc.h create mode 100644 contrib/elftoolchain/common/elfdefinitions.h create mode 100644 contrib/elftoolchain/common/sys/elfconstants.m4 create mode 100644 contrib/elftoolchain/common/sys/elfdefinitions.m4 create mode 100644 contrib/elftoolchain/common/utarray.h create mode 100644 contrib/elftoolchain/common/uthash.h create mode 100644 contrib/elftoolchain/libelf/_libelf.h create mode 100644 contrib/elftoolchain/libelf/_libelf_ar.h create mode 100644 contrib/elftoolchain/libelf/_libelf_config.h create mode 100644 contrib/elftoolchain/libelf/elf.c create mode 100644 contrib/elftoolchain/libelf/elf_begin.c create mode 100644 contrib/elftoolchain/libelf/elf_cntl.c create mode 100644 contrib/elftoolchain/libelf/elf_data.c create mode 100644 contrib/elftoolchain/libelf/elf_end.c create mode 100644 contrib/elftoolchain/libelf/elf_errmsg.c create mode 100644 contrib/elftoolchain/libelf/elf_errno.c create mode 100644 contrib/elftoolchain/libelf/elf_fill.c create mode 100644 contrib/elftoolchain/libelf/elf_flag.c create mode 100644 contrib/elftoolchain/libelf/elf_getarhdr.c create mode 100644 contrib/elftoolchain/libelf/elf_getarsym.c create mode 100644 contrib/elftoolchain/libelf/elf_getbase.c create mode 100644 contrib/elftoolchain/libelf/elf_getident.c create mode 100644 contrib/elftoolchain/libelf/elf_getversion.c create mode 100644 contrib/elftoolchain/libelf/elf_hash.c create mode 100644 contrib/elftoolchain/libelf/elf_kind.c create mode 100644 contrib/elftoolchain/libelf/elf_memory.c create mode 100644 contrib/elftoolchain/libelf/elf_next.c create mode 100644 contrib/elftoolchain/libelf/elf_open.c create mode 100644 contrib/elftoolchain/libelf/elf_phnum.c create mode 100644 contrib/elftoolchain/libelf/elf_rand.c create mode 100644 contrib/elftoolchain/libelf/elf_rawfile.c create mode 100644 contrib/elftoolchain/libelf/elf_scn.c create mode 100644 contrib/elftoolchain/libelf/elf_shnum.c create mode 100644 contrib/elftoolchain/libelf/elf_shstrndx.c create mode 100644 contrib/elftoolchain/libelf/elf_strptr.c create mode 100644 contrib/elftoolchain/libelf/elf_types.m4 create mode 100644 contrib/elftoolchain/libelf/elf_update.c create mode 100644 contrib/elftoolchain/libelf/elf_version.c create mode 100644 contrib/elftoolchain/libelf/gelf.h create mode 100644 contrib/elftoolchain/libelf/gelf_cap.c create mode 100644 contrib/elftoolchain/libelf/gelf_checksum.c create mode 100644 contrib/elftoolchain/libelf/gelf_dyn.c create mode 100644 contrib/elftoolchain/libelf/gelf_ehdr.c create mode 100644 contrib/elftoolchain/libelf/gelf_fsize.c create mode 100644 contrib/elftoolchain/libelf/gelf_getclass.c create mode 100644 contrib/elftoolchain/libelf/gelf_move.c create mode 100644 contrib/elftoolchain/libelf/gelf_phdr.c create mode 100644 contrib/elftoolchain/libelf/gelf_rel.c create mode 100644 contrib/elftoolchain/libelf/gelf_rela.c create mode 100644 contrib/elftoolchain/libelf/gelf_shdr.c create mode 100644 contrib/elftoolchain/libelf/gelf_sym.c create mode 100644 contrib/elftoolchain/libelf/gelf_syminfo.c create mode 100644 contrib/elftoolchain/libelf/gelf_symshndx.c create mode 100644 contrib/elftoolchain/libelf/gelf_xlate.c create mode 100644 contrib/elftoolchain/libelf/libelf.h create mode 100644 contrib/elftoolchain/libelf/libelf_align.c create mode 100644 contrib/elftoolchain/libelf/libelf_allocate.c create mode 100644 contrib/elftoolchain/libelf/libelf_ar.c create mode 100644 contrib/elftoolchain/libelf/libelf_ar_util.c create mode 100644 contrib/elftoolchain/libelf/libelf_checksum.c create mode 100644 contrib/elftoolchain/libelf/libelf_convert.m4 create mode 100644 contrib/elftoolchain/libelf/libelf_data.c create mode 100644 contrib/elftoolchain/libelf/libelf_ehdr.c create mode 100644 contrib/elftoolchain/libelf/libelf_elfmachine.c create mode 100644 contrib/elftoolchain/libelf/libelf_extended.c create mode 100644 contrib/elftoolchain/libelf/libelf_fsize.m4 create mode 100644 contrib/elftoolchain/libelf/libelf_memory.c create mode 100644 contrib/elftoolchain/libelf/libelf_msize.m4 create mode 100644 contrib/elftoolchain/libelf/libelf_open.c create mode 100644 contrib/elftoolchain/libelf/libelf_phdr.c create mode 100644 contrib/elftoolchain/libelf/libelf_shdr.c create mode 100644 contrib/elftoolchain/libelf/libelf_xlate.c diff --git a/contrib/elftoolchain/LICENSE b/contrib/elftoolchain/LICENSE new file mode 100644 index 00000000..c707d2b4 --- /dev/null +++ b/contrib/elftoolchain/LICENSE @@ -0,0 +1,32 @@ +Unless otherwise specified, the Elftoolchain +project's sources are distributed under a +2-clause BSD license. + +SPDX short identifier: BSD-2-Clause + +<<<--->>> +Copyright (c) 2006-2021, Elftoolchain Project Contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +<<<--->>> diff --git a/contrib/elftoolchain/commit b/contrib/elftoolchain/commit new file mode 100644 index 00000000..51e534a5 --- /dev/null +++ b/contrib/elftoolchain/commit @@ -0,0 +1 @@ +f7e9afc6f9ad0d84ea73b4659c5d6d13275d2306 diff --git a/contrib/elftoolchain/common/_elftc.h b/contrib/elftoolchain/common/_elftc.h new file mode 100644 index 00000000..5c4cf610 --- /dev/null +++ b/contrib/elftoolchain/common/_elftc.h @@ -0,0 +1,492 @@ +/*- + * Copyright (c) 2009 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +/** + ** Miscellaneous definitions needed by multiple components. + **/ + +#ifndef _ELFTC_H +#define _ELFTC_H + +#ifndef NULL +#define NULL ((void *) 0) +#endif + +#ifndef offsetof +#define offsetof(T, M) ((int) &((T*) 0) -> M) +#endif + +/* --QUEUE-MACROS-- [[ */ + +/* + * Supply macros missing from + */ + +/* + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef LIST_FOREACH_SAFE +#define LIST_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = LIST_FIRST((head)); \ + (var) && ((tvar) = LIST_NEXT((var), field), 1); \ + (var) = (tvar)) +#endif + +#ifndef SLIST_FOREACH_SAFE +#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = SLIST_FIRST((head)); \ + (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ + (var) = (tvar)) +#endif + +#ifndef STAILQ_CONCAT +#define STAILQ_CONCAT(head1, head2) do { \ + if (!STAILQ_EMPTY((head2))) { \ + *(head1)->stqh_last = (head2)->stqh_first; \ + (head1)->stqh_last = (head2)->stqh_last; \ + STAILQ_INIT((head2)); \ + } \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef STAILQ_EMPTY +#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) +#endif + +#ifndef STAILQ_ENTRY +#define STAILQ_ENTRY(type) \ +struct { \ + struct type *stqe_next; /* next element */ \ +} +#endif + +#ifndef STAILQ_FIRST +#define STAILQ_FIRST(head) ((head)->stqh_first) +#endif + +#ifndef STAILQ_HEAD +#define STAILQ_HEAD(name, type) \ +struct name { \ + struct type *stqh_first; /* first element */ \ + struct type **stqh_last; /* addr of last next element */ \ +} +#endif + +#ifndef STAILQ_HEAD_INITIALIZER +#define STAILQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).stqh_first } +#endif + +#ifndef STAILQ_FOREACH +#define STAILQ_FOREACH(var, head, field) \ + for ((var) = ((head)->stqh_first); \ + (var); \ + (var) = ((var)->field.stqe_next)) +#endif + +#ifndef STAILQ_FOREACH_SAFE +#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = STAILQ_FIRST((head)); \ + (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ + (var) = (tvar)) +#endif + +#ifndef STAILQ_INIT +#define STAILQ_INIT(head) do { \ + (head)->stqh_first = NULL; \ + (head)->stqh_last = &(head)->stqh_first; \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef STAILQ_INSERT_HEAD +#define STAILQ_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \ + (head)->stqh_last = &(elm)->field.stqe_next; \ + (head)->stqh_first = (elm); \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef STAILQ_INSERT_TAIL +#define STAILQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.stqe_next = NULL; \ + *(head)->stqh_last = (elm); \ + (head)->stqh_last = &(elm)->field.stqe_next; \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef STAILQ_INSERT_AFTER +#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ + (head)->stqh_last = &(elm)->field.stqe_next; \ + (listelm)->field.stqe_next = (elm); \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef STAILQ_LAST +#define STAILQ_LAST(head, type, field) \ + (STAILQ_EMPTY((head)) ? \ + NULL : ((struct type *)(void *) \ + ((char *)((head)->stqh_last) - offsetof(struct type, field)))) +#endif + +#ifndef STAILQ_NEXT +#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) +#endif + +#ifndef STAILQ_REMOVE +#define STAILQ_REMOVE(head, elm, type, field) do { \ + if ((head)->stqh_first == (elm)) { \ + STAILQ_REMOVE_HEAD((head), field); \ + } else { \ + struct type *curelm = (head)->stqh_first; \ + while (curelm->field.stqe_next != (elm)) \ + curelm = curelm->field.stqe_next; \ + if ((curelm->field.stqe_next = \ + curelm->field.stqe_next->field.stqe_next) == NULL) \ + (head)->stqh_last = &(curelm)->field.stqe_next; \ + } \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef STAILQ_REMOVE_HEAD +#define STAILQ_REMOVE_HEAD(head, field) do { \ + if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == \ + NULL) \ + (head)->stqh_last = &(head)->stqh_first; \ +} while (/*CONSTCOND*/0) +#endif + +/* + * The STAILQ_SORT macro is adapted from Simon Tatham's O(n*log(n)) + * mergesort algorithm. + */ +#ifndef STAILQ_SORT +#define STAILQ_SORT(head, type, field, cmp) do { \ + STAILQ_HEAD(, type) _la, _lb; \ + struct type *_p, *_q, *_e; \ + int _i, _sz, _nmerges, _psz, _qsz; \ + \ + _sz = 1; \ + do { \ + _nmerges = 0; \ + STAILQ_INIT(&_lb); \ + while (!STAILQ_EMPTY((head))) { \ + _nmerges++; \ + STAILQ_INIT(&_la); \ + _psz = 0; \ + for (_i = 0; _i < _sz && !STAILQ_EMPTY((head)); \ + _i++) { \ + _e = STAILQ_FIRST((head)); \ + if (_e == NULL) \ + break; \ + _psz++; \ + STAILQ_REMOVE_HEAD((head), field); \ + STAILQ_INSERT_TAIL(&_la, _e, field); \ + } \ + _p = STAILQ_FIRST(&_la); \ + _qsz = _sz; \ + _q = STAILQ_FIRST((head)); \ + while (_psz > 0 || (_qsz > 0 && _q != NULL)) { \ + if (_psz == 0) { \ + _e = _q; \ + _q = STAILQ_NEXT(_q, field); \ + STAILQ_REMOVE_HEAD((head), \ + field); \ + _qsz--; \ + } else if (_qsz == 0 || _q == NULL) { \ + _e = _p; \ + _p = STAILQ_NEXT(_p, field); \ + STAILQ_REMOVE_HEAD(&_la, field);\ + _psz--; \ + } else if (cmp(_p, _q) <= 0) { \ + _e = _p; \ + _p = STAILQ_NEXT(_p, field); \ + STAILQ_REMOVE_HEAD(&_la, field);\ + _psz--; \ + } else { \ + _e = _q; \ + _q = STAILQ_NEXT(_q, field); \ + STAILQ_REMOVE_HEAD((head), \ + field); \ + _qsz--; \ + } \ + STAILQ_INSERT_TAIL(&_lb, _e, field); \ + } \ + } \ + (head)->stqh_first = _lb.stqh_first; \ + (head)->stqh_last = _lb.stqh_last; \ + _sz *= 2; \ + } while (_nmerges > 1); \ +} while (/*CONSTCOND*/0) +#endif + +#ifndef TAILQ_FOREACH_SAFE +#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = TAILQ_FIRST((head)); \ + (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ + (var) = (tvar)) +#endif + +/* ]] --QUEUE-MACROS-- */ + +/* + * VCS Ids. + * + * The marker below is intended to be replaced with a project-specific + * definition of the ELFTC_VCSID macro. + */ + +/* @ELFTC-VCSID-MARKER@ */ + +#ifndef ELFTC_VCSID + +#if defined(__DragonFly__) || defined(__NetBSD__) + +#define ELFTC_VCSID(ID) __RCSID(ID) + +#elif defined(__FreeBSD__) + +#define ELFTC_VCSID(ID) __FBSDID(ID) + +#elif defined(__APPLE__) || defined(__OpenBSD__) || defined(__GLIBC__) || \ + defined(__GNU__) || defined(__linux__) || defined(__minix) + +#if defined(__GNUC__) +#define ELFTC_VCSID(ID) __asm__(".ident\t\"" ID "\"") +#else +#define ELFTC_VCSID(ID) /**/ +#endif + +#endif + +#endif /* ELFTC_VCSID */ + +/* + * Provide an equivalent for getprogname(3). + */ + +#ifndef ELFTC_GETPROGNAME + +#if defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__minix) || defined(__NetBSD__) + +#include + +#define ELFTC_GETPROGNAME() getprogname() + +#endif /* __APPLE__ || __DragonFly__ || __FreeBSD__ || __minix || __NetBSD__ */ + + +#if defined(__GLIBC__) || defined(__linux__) +#ifndef _GNU_SOURCE +/* + * GLIBC based systems have a global 'char *' pointer referencing + * the executable's name. + */ +extern const char *program_invocation_short_name; +#endif /* !_GNU_SOURCE */ + +#define ELFTC_GETPROGNAME() program_invocation_short_name + +#endif /* __GLIBC__ || __linux__ */ + + +#if defined(__OpenBSD__) + +extern const char *__progname; + +#define ELFTC_GETPROGNAME() __progname + +#endif /* __OpenBSD__ */ + +#endif /* ELFTC_GETPROGNAME */ + + +/* + * Per-OS configuration. + * + * The following symbols are supported by this configuration fragment, + * although not all the OSes so referenced are fully supported. + * + * Cross-compilation: + * + * HAVE_NBTOOL_CONFIG_H : cross-compiling NetBSD tools on various OSes. + * + * Native compilation: + * + * __APPLE__ : compiling under Mac OS X. + * __DragonFly__ : compiling under DragonFlyBSD. + * __GLIBC__ : compiling under GNU based systems, such as GNU/kFreeBSD. + * __linux__ : compiling under GNU/Linux systems. + * __FreeBSD__ : compiling under FreeBSD. + * __minix : compiling under Minix3. + * __NetBSD__ : compiling (native) under NetBSD. + * __OpenBSD__ : compiling under OpenBSD. + */ + +#if defined(HAVE_NBTOOL_CONFIG_H) + +#include +#include + +#ifndef roundup2 +#define roundup2 roundup +#endif + +#define ELFTC_BYTE_ORDER _BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 +#define ELFTC_HAVE_STRMODE 1 + +#elif defined(__APPLE__) + +#include +#define htobe32(x) OSSwapHostToBigInt32(x) +#define roundup2 roundup + +#define ELFTC_BYTE_ORDER _BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 +#define ELFTC_HAVE_STRMODE 1 + +#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 + +#elif defined(__DragonFly__) + +#include +#include + +#define ELFTC_BYTE_ORDER _BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 + +#elif defined(__GLIBC__) || defined(__linux__) + +#include + +#define ELFTC_BYTE_ORDER __BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN __LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN __BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 + +/* + * Debian GNU/Linux and Debian GNU/kFreeBSD do not have strmode(3). + */ +#define ELFTC_HAVE_STRMODE 0 + +/* Whether we need to supply {be,le}32dec. */ +#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 + +#define roundup2 roundup + +#elif defined(__FreeBSD__) + +#include +#include + +#define ELFTC_BYTE_ORDER _BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 +#define ELFTC_HAVE_STRMODE 1 +#if __FreeBSD_version <= 900000 +#define ELFTC_BROKEN_YY_NO_INPUT 1 +#endif + +#elif defined(__minix) +#define ELFTC_HAVE_MMAP 0 + +#elif defined(__NetBSD__) + +#include +#include + +#define ELFTC_BYTE_ORDER _BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 +#define ELFTC_HAVE_STRMODE 1 +#if __NetBSD_Version__ <= 599002100 +/* from src/doc/CHANGES: flex(1): Import flex-2.5.35 [christos 20091025] */ +/* and 5.99.21 was from Wed Oct 21 21:28:36 2009 UTC */ +# define ELFTC_BROKEN_YY_NO_INPUT 1 +#endif + +#elif defined(__OpenBSD__) + +#include +#include + +#define ELFTC_BYTE_ORDER _BYTE_ORDER +#define ELFTC_BYTE_ORDER_LITTLE_ENDIAN _LITTLE_ENDIAN +#define ELFTC_BYTE_ORDER_BIG_ENDIAN _BIG_ENDIAN + +#define ELFTC_HAVE_MMAP 1 +#define ELFTC_HAVE_STRMODE 1 + +#define ELFTC_NEED_BYTEORDER_EXTENSIONS 1 +#define roundup2 roundup + +#endif /* __OpenBSD__ */ + +#endif /* _ELFTC_H */ diff --git a/contrib/elftoolchain/common/elfdefinitions.h b/contrib/elftoolchain/common/elfdefinitions.h new file mode 100644 index 00000000..56af6c30 --- /dev/null +++ b/contrib/elftoolchain/common/elfdefinitions.h @@ -0,0 +1,34 @@ +/*- + * Copyright (c) 2010,2021 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifndef _ELFDEFINITIONS_H_ +#define _ELFDEFINITIONS_H_ + +#include + +#endif /* _ELFDEFINITIONS_H_ */ diff --git a/contrib/elftoolchain/common/sys/elfconstants.m4 b/contrib/elftoolchain/common/sys/elfconstants.m4 new file mode 100644 index 00000000..7bcf14f2 --- /dev/null +++ b/contrib/elftoolchain/common/sys/elfconstants.m4 @@ -0,0 +1,2616 @@ +# Copyright (c) 2010,2021 Joseph Koshy +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. + +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +# These definitions are based on: +# - The public specification of the ELF format as defined in the +# October 2009 draft of System V ABI. +# See: http://www.sco.com/developers/gabi/latest/ch4.intro.html +# - The May 1998 (version 1.5) draft of "The ELF-64 object format". +# - Processor-specific ELF ABI definitions for sparc, i386, amd64, mips, +# ia64, powerpc, and RISC-V processors. +# - The "Linkers and Libraries Guide", from Sun Microsystems. + +define(`VCSID_ELFCONSTANTS_M4', + `$Id$') + +# In the following definitions, `_' is an M4 macro that is meant to be +# expanded later. Its intended usage is: +# +# `_(ELF_SYMBOL, VALUE, OPTIONAL-DESCRIPTION)' +# +# These (deferred) macros are then grouped together into named collections. +# +# At the point of use, `_' would be defined to expand to the desired +# replacement text. +# +# # File: example_expansion.m4 +# +# define(`_',`case $2: return ("$1");') +# include(`elfconstants.m4') +# +# const char *name_of_capability(int capability) +# { +# switch(capability) { +# DEFINE_CAPABILITIES(); +# default: +# return (NULL); +# } +# } + +# +# Types of capabilities. +# +define(`DEFINE_CAPABILITIES',` +_(`CA_SUNW_NULL', 0, `ignored') +_(`CA_SUNW_HW_1', 1, `hardware capability') +_(`CA_SUNW_SW_1', 2, `software capability')') + +# +# Flags used with dynamic linking entries. +# +define(`DEFINE_DYN_FLAGS',` +_(`DF_ORIGIN', 0x1, + `object being loaded may refer to `$ORIGIN'') +_(`DF_SYMBOLIC', 0x2, + `search library for references before executable') +_(`DF_TEXTREL', 0x4, + `relocation entries may modify text segment') +_(`DF_BIND_NOW', 0x8, + `process relocation entries at load time') +_(`DF_STATIC_TLS', 0x10, + `uses static thread-local storage') +_(`DF_1_BIND_NOW', 0x1, + `process relocation entries at load time') +_(`DF_1_GLOBAL', 0x2, + `unused') +_(`DF_1_GROUP', 0x4, + `object is a member of a group') +_(`DF_1_NODELETE', 0x8, + `object cannot be deleted from a process') +_(`DF_1_LOADFLTR', 0x10, + `immediate load filtees') +_(`DF_1_INITFIRST', 0x20, + `initialize object first') +_(`DF_1_NOOPEN', 0x40, + `disallow dlopen()') +_(`DF_1_ORIGIN', 0x80, + `object being loaded may refer to $ORIGIN') +_(`DF_1_DIRECT', 0x100, + `direct bindings enabled') +_(`DF_1_INTERPOSE', 0x400, + `object is interposer') +_(`DF_1_NODEFLIB', 0x800, + `ignore default library search path') +_(`DF_1_NODUMP', 0x1000, + `disallow dldump()') +_(`DF_1_CONFALT', 0x2000, + `object is a configuration alternative') +_(`DF_1_ENDFILTEE', 0x4000, + `filtee terminates filter search') +_(`DF_1_DISPRELDNE', 0x8000, + `displacement relocation done') +_(`DF_1_DISPRELPND', 0x10000, + `displacement relocation pending')') + +# +# Dynamic linking entry types. +# +define(`DEFINE_DYN_TYPES',` +_(`DT_NULL', 0, + `end of array') +_(`DT_NEEDED', 1, + `names a needed library') +_(`DT_PLTRELSZ', 2, + `size in bytes of associated relocation entries') +_(`DT_PLTGOT', 3, + `address associated with the procedure linkage table') +_(`DT_HASH', 4, + `address of the symbol hash table') +_(`DT_STRTAB', 5, + `address of the string table') +_(`DT_SYMTAB', 6, + `address of the symbol table') +_(`DT_RELA', 7, + `address of the relocation table') +_(`DT_RELASZ', 8, + `size of the DT_RELA table') +_(`DT_RELAENT', 9, + `size of each DT_RELA entry') +_(`DT_STRSZ', 10, + `size of the string table') +_(`DT_SYMENT', 11, + `size of a symbol table entry') +_(`DT_INIT', 12, + `address of the initialization function') +_(`DT_FINI', 13, + `address of the finalization function') +_(`DT_SONAME', 14, + `names the shared object') +_(`DT_RPATH', 15, + `runtime library search path') +_(`DT_SYMBOLIC', 16, + `alter symbol resolution algorithm') +_(`DT_REL', 17, + `address of the DT_REL table') +_(`DT_RELSZ', 18, + `size of the DT_REL table') +_(`DT_RELENT', 19, + `size of each DT_REL entry') +_(`DT_PLTREL', 20, + `type of relocation entry in the procedure linkage table') +_(`DT_DEBUG', 21, + `used for debugging') +_(`DT_TEXTREL', 22, + `text segment may be written to during relocation') +_(`DT_JMPREL', 23, + `address of relocation entries associated with the procedure linkage table') +_(`DT_BIND_NOW', 24, + `bind symbols at loading time') +_(`DT_INIT_ARRAY', 25, + `pointers to initialization functions') +_(`DT_FINI_ARRAY', 26, + `pointers to termination functions') +_(`DT_INIT_ARRAYSZ', 27, + `size of the DT_INIT_ARRAY') +_(`DT_FINI_ARRAYSZ', 28, + `size of the DT_FINI_ARRAY') +_(`DT_RUNPATH', 29, + `index of library search path string') +_(`DT_FLAGS', 30, + `flags specific to the object being loaded') +_(`DT_ENCODING', 32, + `standard semantics') +_(`DT_PREINIT_ARRAY', 32, + `pointers to pre-initialization functions') +_(`DT_PREINIT_ARRAYSZ', 33, + `size of pre-initialization array') +_(`DT_MAXPOSTAGS', 34, + `the number of positive tags') +_(`DT_LOOS', 0x6000000DUL, + `start of OS-specific types') +_(`DT_SUNW_AUXILIARY', 0x6000000DUL, + `offset of string naming auxiliary filtees') +_(`DT_SUNW_RTLDINF', 0x6000000EUL, + `rtld internal use') +_(`DT_SUNW_FILTER', 0x6000000FUL, + `offset of string naming standard filtees') +_(`DT_SUNW_CAP', 0x60000010UL, + `address of hardware capabilities section') +_(`DT_SUNW_ASLR', 0x60000023UL, + `Address Space Layout Randomization flag') +_(`DT_HIOS', 0x6FFFF000UL, + `end of OS-specific types') +_(`DT_VALRNGLO', 0x6FFFFD00UL, + `start of range using the d_val field') +_(`DT_GNU_PRELINKED', 0x6FFFFDF5UL, + `prelinking timestamp') +_(`DT_GNU_CONFLICTSZ', 0x6FFFFDF6UL, + `size of conflict section') +_(`DT_GNU_LIBLISTSZ', 0x6FFFFDF7UL, + `size of library list') +_(`DT_CHECKSUM', 0x6FFFFDF8UL, + `checksum for the object') +_(`DT_PLTPADSZ', 0x6FFFFDF9UL, + `size of PLT padding') +_(`DT_MOVEENT', 0x6FFFFDFAUL, + `size of DT_MOVETAB entries') +_(`DT_MOVESZ', 0x6FFFFDFBUL, + `total size of the MOVETAB table') +_(`DT_FEATURE', 0x6FFFFDFCUL, + `feature values') +_(`DT_POSFLAG_1', 0x6FFFFDFDUL, + `dynamic position flags') +_(`DT_SYMINSZ', 0x6FFFFDFEUL, + `size of the DT_SYMINFO table') +_(`DT_SYMINENT', 0x6FFFFDFFUL, + `size of a DT_SYMINFO entry') +_(`DT_VALRNGHI', 0x6FFFFDFFUL, + `end of range using the d_val field') +_(`DT_ADDRRNGLO', 0x6FFFFE00UL, + `start of range using the d_ptr field') +_(`DT_GNU_HASH', 0x6FFFFEF5UL, + `GNU style hash tables') +_(`DT_TLSDESC_PLT', 0x6FFFFEF6UL, + `location of PLT entry for TLS descriptor resolver calls') +_(`DT_TLSDESC_GOT', 0x6FFFFEF7UL, + `location of GOT entry used by TLS descriptor resolver PLT entry') +_(`DT_GNU_CONFLICT', 0x6FFFFEF8UL, + `address of conflict section') +_(`DT_GNU_LIBLIST', 0x6FFFFEF9UL, + `address of conflict section') +_(`DT_CONFIG', 0x6FFFFEFAUL, + `configuration file') +_(`DT_DEPAUDIT', 0x6FFFFEFBUL, + `string defining audit libraries') +_(`DT_AUDIT', 0x6FFFFEFCUL, + `string defining audit libraries') +_(`DT_PLTPAD', 0x6FFFFEFDUL, + `PLT padding') +_(`DT_MOVETAB', 0x6FFFFEFEUL, + `address of a move table') +_(`DT_SYMINFO', 0x6FFFFEFFUL, + `address of the symbol information table') +_(`DT_ADDRRNGHI', 0x6FFFFEFFUL, + `end of range using the d_ptr field') +_(`DT_VERSYM', 0x6FFFFFF0UL, + `address of the version section') +_(`DT_RELACOUNT', 0x6FFFFFF9UL, + `count of RELA relocations') +_(`DT_RELCOUNT', 0x6FFFFFFAUL, + `count of REL relocations') +_(`DT_FLAGS_1', 0x6FFFFFFBUL, + `flag values') +_(`DT_VERDEF', 0x6FFFFFFCUL, + `address of the version definition segment') +_(`DT_VERDEFNUM', 0x6FFFFFFDUL, + `the number of version definition entries') +_(`DT_VERNEED', 0x6FFFFFFEUL, + `address of section with needed versions') +_(`DT_VERNEEDNUM', 0x6FFFFFFFUL, + `the number of version needed entries') +_(`DT_LOPROC', 0x70000000UL, + `start of processor-specific types') +_(`DT_ARM_SYMTABSZ', 0x70000001UL, + `number of entries in the dynamic symbol table') +_(`DT_SPARC_REGISTER', 0x70000001UL, + `index of an STT_SPARC_REGISTER symbol') +_(`DT_ARM_PREEMPTMAP', 0x70000002UL, + `address of the preemption map') +_(`DT_MIPS_RLD_VERSION', 0x70000001UL, + `version ID for runtime linker interface') +_(`DT_MIPS_TIME_STAMP', 0x70000002UL, + `timestamp') +_(`DT_MIPS_ICHECKSUM', 0x70000003UL, + `checksum of all external strings and common sizes') +_(`DT_MIPS_IVERSION', 0x70000004UL, + `string table index of a version string') +_(`DT_MIPS_FLAGS', 0x70000005UL, + `MIPS-specific flags') +_(`DT_MIPS_BASE_ADDRESS', 0x70000006UL, + `base address for the executable/DSO') +_(`DT_MIPS_CONFLICT', 0x70000008UL, + `address of .conflict section') +_(`DT_MIPS_LIBLIST', 0x70000009UL, + `address of .liblist section') +_(`DT_MIPS_LOCAL_GOTNO', 0x7000000AUL, + `number of local GOT entries') +_(`DT_MIPS_CONFLICTNO', 0x7000000BUL, + `number of entries in the .conflict section') +_(`DT_MIPS_LIBLISTNO', 0x70000010UL, + `number of entries in the .liblist section') +_(`DT_MIPS_SYMTABNO', 0x70000011UL, + `number of entries in the .dynsym section') +_(`DT_MIPS_UNREFEXTNO', 0x70000012UL, + `index of first external dynamic symbol not referenced locally') +_(`DT_MIPS_GOTSYM', 0x70000013UL, + `index of first dynamic symbol corresponds to a GOT entry') +_(`DT_MIPS_HIPAGENO', 0x70000014UL, + `number of page table entries in GOT') +_(`DT_MIPS_RLD_MAP', 0x70000016UL, + `address of runtime linker map') +_(`DT_MIPS_DELTA_CLASS', 0x70000017UL, + `Delta C++ class definition') +_(`DT_MIPS_DELTA_CLASS_NO', 0x70000018UL, + `number of entries in DT_MIPS_DELTA_CLASS') +_(`DT_MIPS_DELTA_INSTANCE', 0x70000019UL, + `Delta C++ class instances') +_(`DT_MIPS_DELTA_INSTANCE_NO', 0x7000001AUL, + `number of entries in DT_MIPS_DELTA_INSTANCE') +_(`DT_MIPS_DELTA_RELOC', 0x7000001BUL, + `Delta relocations') +_(`DT_MIPS_DELTA_RELOC_NO', 0x7000001CUL, + `number of entries in DT_MIPS_DELTA_RELOC') +_(`DT_MIPS_DELTA_SYM', 0x7000001DUL, + `Delta symbols referred by Delta relocations') +_(`DT_MIPS_DELTA_SYM_NO', 0x7000001EUL, + `number of entries in DT_MIPS_DELTA_SYM') +_(`DT_MIPS_DELTA_CLASSSYM', 0x70000020UL, + `Delta symbols for class declarations') +_(`DT_MIPS_DELTA_CLASSSYM_NO', 0x70000021UL, + `number of entries in DT_MIPS_DELTA_CLASSSYM') +_(`DT_MIPS_CXX_FLAGS', 0x70000022UL, + `C++ flavor flags') +_(`DT_MIPS_PIXIE_INIT', 0x70000023UL, + `address of an initialization routine created by pixie') +_(`DT_MIPS_SYMBOL_LIB', 0x70000024UL, + `address of .MIPS.symlib section') +_(`DT_MIPS_LOCALPAGE_GOTIDX', 0x70000025UL, + `GOT index of first page table entry for a segment') +_(`DT_MIPS_LOCAL_GOTIDX', 0x70000026UL, + `GOT index of first page table entry for a local symbol') +_(`DT_MIPS_HIDDEN_GOTIDX', 0x70000027UL, + `GOT index of first page table entry for a hidden symbol') +_(`DT_MIPS_PROTECTED_GOTIDX', 0x70000028UL, + `GOT index of first page table entry for a protected symbol') +_(`DT_MIPS_OPTIONS', 0x70000029UL, + `address of .MIPS.options section') +_(`DT_MIPS_INTERFACE', 0x7000002AUL, + `address of .MIPS.interface section') +_(`DT_MIPS_DYNSTR_ALIGN', 0x7000002BUL, + `???') +_(`DT_MIPS_INTERFACE_SIZE', 0x7000002CUL, + `size of .MIPS.interface section') +_(`DT_MIPS_RLD_TEXT_RESOLVE_ADDR', 0x7000002DUL, + `address of _rld_text_resolve in GOT') +_(`DT_MIPS_PERF_SUFFIX', 0x7000002EUL, + `default suffix of DSO to be appended by dlopen') +_(`DT_MIPS_COMPACT_SIZE', 0x7000002FUL, + `size of a ucode compact relocation record (o32)') +_(`DT_MIPS_GP_VALUE', 0x70000030UL, + `GP value of a specified GP relative range') +_(`DT_MIPS_AUX_DYNAMIC', 0x70000031UL, + `address of an auxiliary dynamic table') +_(`DT_MIPS_PLTGOT', 0x70000032UL, + `address of the PLTGOT') +_(`DT_MIPS_RLD_OBJ_UPDATE', 0x70000033UL, + `object list update callback') +_(`DT_MIPS_RWPLT', 0x70000034UL, + `address of a writable PLT') +_(`DT_PPC_GOT', 0x70000000UL, + `value of _GLOBAL_OFFSET_TABLE_') +_(`DT_PPC_TLSOPT', 0x70000001UL, + `TLS descriptor should be optimized') +_(`DT_PPC64_GLINK', 0x70000000UL, + `address of .glink section') +_(`DT_PPC64_OPD', 0x70000001UL, + `address of .opd section') +_(`DT_PPC64_OPDSZ', 0x70000002UL, + `size of .opd section') +_(`DT_PPC64_TLSOPT', 0x70000003UL, + `TLS descriptor should be optimized') +_(`DT_AUXILIARY', 0x7FFFFFFDUL, + `offset of string naming auxiliary filtees') +_(`DT_USED', 0x7FFFFFFEUL, + `ignored') +_(`DT_FILTER', 0x7FFFFFFFUL, + `index of string naming filtees') +_(`DT_HIPROC', 0x7FFFFFFFUL, + `end of processor-specific types') +') + +define(`DEFINE_DYN_TYPE_ALIASES',` +_(`DT_DEPRECATED_SPARC_REGISTER', `DT_SPARC_REGISTER') +') + +# +# Flags used in the executable header (field: e_flags). +# +define(`DEFINE_EHDR_FLAGS',` +_(EF_ARM_RELEXEC, 0x00000001UL, + `dynamic segment describes only how to relocate segments') +_(EF_ARM_HASENTRY, 0x00000002UL, + `e_entry contains a program entry point') +_(EF_ARM_SYMSARESORTED, 0x00000004UL, + `subsection of symbol table is sorted by symbol value') +_(EF_ARM_DYNSYMSUSESEGIDX, 0x00000008UL, + `dynamic symbol st_shndx = containing segment index + 1') +_(EF_ARM_MAPSYMSFIRST, 0x00000010UL, + `mapping symbols precede other local symbols in symtab') +_(EF_ARM_BE8, 0x00800000UL, + `file contains BE-8 code') +_(EF_ARM_LE8, 0x00400000UL, + `file contains LE-8 code') +_(EF_ARM_EABIMASK, 0xFF000000UL, + `mask for ARM EABI version number (0 denotes GNU or unknown)') +_(EF_ARM_EABI_UNKNOWN, 0x00000000UL, + `Unknown or GNU ARM EABI version number') +_(EF_ARM_EABI_VER1, 0x01000000UL, + `ARM EABI version 1') +_(EF_ARM_EABI_VER2, 0x02000000UL, + `ARM EABI version 2') +_(EF_ARM_EABI_VER3, 0x03000000UL, + `ARM EABI version 3') +_(EF_ARM_EABI_VER4, 0x04000000UL, + `ARM EABI version 4') +_(EF_ARM_EABI_VER5, 0x05000000UL, + `ARM EABI version 5') +_(EF_ARM_INTERWORK, 0x00000004UL, + `GNU EABI extension') +_(EF_ARM_APCS_26, 0x00000008UL, + `GNU EABI extension') +_(EF_ARM_APCS_FLOAT, 0x00000010UL, + `GNU EABI extension') +_(EF_ARM_PIC, 0x00000020UL, + `GNU EABI extension') +_(EF_ARM_ALIGN8, 0x00000040UL, + `GNU EABI extension') +_(EF_ARM_NEW_ABI, 0x00000080UL, + `GNU EABI extension') +_(EF_ARM_OLD_ABI, 0x00000100UL, + `GNU EABI extension') +_(EF_ARM_SOFT_FLOAT, 0x00000200UL, + `GNU EABI extension') +_(EF_ARM_VFP_FLOAT, 0x00000400UL, + `GNU EABI extension') +_(EF_ARM_MAVERICK_FLOAT, 0x00000800UL, + `GNU EABI extension') +_(EF_MIPS_NOREORDER, 0x00000001UL, + `at least one .noreorder directive appeared in the source') +_(EF_MIPS_PIC, 0x00000002UL, + `file contains position independent code') +_(EF_MIPS_CPIC, 0x00000004UL, + `file code uses standard conventions for calling PIC') +_(EF_MIPS_UCODE, 0x00000010UL, + `file contains UCODE (obsolete)') +_(EF_MIPS_ABI, 0x00007000UL, + `Application binary interface, see E_MIPS_* values') +_(EF_MIPS_ABI2, 0x00000020UL, + `file follows MIPS III 32-bit ABI') +_(EF_MIPS_OPTIONS_FIRST, 0x00000080UL, + `ld(1) should process .MIPS.options section first') +_(EF_MIPS_ARCH_ASE, 0x0F000000UL, + `file uses application-specific architectural extensions') +_(EF_MIPS_ARCH_ASE_MDMX, 0x08000000UL, + `file uses MDMX multimedia extensions') +_(EF_MIPS_ARCH_ASE_M16, 0x04000000UL, + `file uses MIPS-16 ISA extensions') +_(EF_MIPS_ARCH_ASE_MICROMIPS, 0x02000000UL, + `MicroMIPS architecture') +_(EF_MIPS_ARCH, 0xF0000000UL, + `4-bit MIPS architecture field') +_(EF_MIPS_ARCH_1, 0x00000000UL, + `MIPS I instruction set') +_(EF_MIPS_ARCH_2, 0x10000000UL, + `MIPS II instruction set') +_(EF_MIPS_ARCH_3, 0x20000000UL, + `MIPS III instruction set') +_(EF_MIPS_ARCH_4, 0x30000000UL, + `MIPS IV instruction set') +_(EF_MIPS_ARCH_5, 0x40000000UL, + `Never introduced') +_(EF_MIPS_ARCH_32, 0x50000000UL, + `Mips32 Revision 1') +_(EF_MIPS_ARCH_64, 0x60000000UL, + `Mips64 Revision 1') +_(EF_MIPS_ARCH_32R2, 0x70000000UL, + `Mips32 Revision 2') +_(EF_MIPS_ARCH_64R2, 0x80000000UL, + `Mips64 Revision 2') +_(EF_PPC_EMB, 0x80000000UL, + `Embedded PowerPC flag') +_(EF_PPC_RELOCATABLE, 0x00010000UL, + `-mrelocatable flag') +_(EF_PPC_RELOCATABLE_LIB, 0x00008000UL, + `-mrelocatable-lib flag') +_(EF_RISCV_RVC, 0x00000001UL, + `Compressed instruction extension') +_(EF_RISCV_FLOAT_ABI_MASK, 0x00000006UL, + `Floating point ABI') +_(EF_RISCV_FLOAT_ABI_SOFT, 0x00000000UL, + `Software emulated floating point') +_(EF_RISCV_FLOAT_ABI_SINGLE, 0x00000002UL, + `Single precision floating point') +_(EF_RISCV_FLOAT_ABI_DOUBLE, 0x00000004UL, + `Double precision floating point') +_(EF_RISCV_FLOAT_ABI_QUAD, 0x00000006UL, + `Quad precision floating point') +_(EF_RISCV_RVE, 0x00000008UL, + `Compressed instruction ABI') +_(EF_RISCV_TSO, 0x00000010UL, + `RVTSO memory consistency model') +_(EF_SPARC_EXT_MASK, 0x00ffff00UL, + `Vendor Extension mask') +_(EF_SPARC_32PLUS, 0x00000100UL, + `Generic V8+ features') +_(EF_SPARC_SUN_US1, 0x00000200UL, + `Sun UltraSPARCTM 1 Extensions') +_(EF_SPARC_HAL_R1, 0x00000400UL, + `HAL R1 Extensions') +_(EF_SPARC_SUN_US3, 0x00000800UL, + `Sun UltraSPARC 3 Extensions') +_(EF_SPARCV9_MM, 0x00000003UL, + `Mask for Memory Model') +_(EF_SPARCV9_TSO, 0x00000000UL, + `Total Store Ordering') +_(EF_SPARCV9_PSO, 0x00000001UL, + `Partial Store Ordering') +_(EF_SPARCV9_RMO, 0x00000002UL, + `Relaxed Memory Ordering') +') + +# +# Offsets in the `ei_ident[]` field of an ELF executable header. +# +define(`DEFINE_EI_OFFSETS',` +_(EI_MAG0, 0, + `magic number') +_(EI_MAG1, 1, + `magic number') +_(EI_MAG2, 2, + `magic number') +_(EI_MAG3, 3, + `magic number') +_(EI_CLASS, 4, + `file class') +_(EI_DATA, 5, + `data encoding') +_(EI_VERSION, 6, + `file version') +_(EI_OSABI, 7, + `OS ABI kind') +_(EI_ABIVERSION, 8, + `OS ABI version') +_(EI_PAD, 9, + `padding start') +_(EI_NIDENT, 16, + `total size') +') + +# +# The ELF class of an object. +# +define(`DEFINE_ELF_CLASSES',` +_(ELFCLASSNONE, 0, + `Unknown ELF class') +_(ELFCLASS32, 1, + `32 bit objects') +_(ELFCLASS64, 2, + `64 bit objects') +') + +# +# Endianness of data in an ELF object. +# +define(`DEFINE_ELF_DATA_ENDIANNESSES',` +_(ELFDATANONE, 0, + `Unknown data endianness') +_(ELFDATA2LSB, 1, + `little endian') +_(ELFDATA2MSB, 2, + `big endian') +') + + +# +# Values of the magic numbers used in identification array. +# +changequote({,}) +define({DEFINE_ELF_MAGIC_VALUES},{ +_(ELFMAG0, 0x7FU) +_(ELFMAG1, 'E') +_(ELFMAG2, 'L') +_(ELFMAG3, 'F') +}) +changequote + +# +# ELF OS ABI field. +# +define(`DEFINE_ELF_OSABIS',` +_(ELFOSABI_NONE, 0, + `No extensions or unspecified') +_(ELFOSABI_SYSV, 0, + `SYSV') +_(ELFOSABI_HPUX, 1, + `Hewlett-Packard HP-UX') +_(ELFOSABI_NETBSD, 2, + `NetBSD') +_(ELFOSABI_GNU, 3, + `GNU') +_(ELFOSABI_HURD, 4, + `GNU/HURD') +_(ELFOSABI_86OPEN, 5, + `86Open Common ABI') +_(ELFOSABI_SOLARIS, 6, + `Sun Solaris') +_(ELFOSABI_AIX, 7, + `AIX') +_(ELFOSABI_IRIX, 8, + `IRIX') +_(ELFOSABI_FREEBSD, 9, + `FreeBSD') +_(ELFOSABI_TRU64, 10, + `Compaq TRU64 UNIX') +_(ELFOSABI_MODESTO, 11, + `Novell Modesto') +_(ELFOSABI_OPENBSD, 12, + `Open BSD') +_(ELFOSABI_OPENVMS, 13, + `Open VMS') +_(ELFOSABI_NSK, 14, + `Hewlett-Packard Non-Stop Kernel') +_(ELFOSABI_AROS, 15, + `Amiga Research OS') +_(ELFOSABI_FENIXOS, 16, + `The FenixOS highly scalable multi-core OS') +_(ELFOSABI_CLOUDABI, 17, + `Nuxi CloudABI') +_(ELFOSABI_OPENVOS, 18, + `Stratus Technologies OpenVOS') +_(ELFOSABI_ARM_AEABI, 64, + `ARM specific symbol versioning extensions') +_(ELFOSABI_ARM, 97, + `ARM ABI') +_(ELFOSABI_STANDALONE, 255, + `Standalone (embedded) application') +') + +# OS ABI aliases. +define(`DEFINE_ELF_OSABI_ALIASES',` +_(ELFOSABI_LINUX, ELFOSABI_GNU) +') + +# +# ELF Machine types: (EM_*). +# +define(`DEFINE_ELF_MACHINE_TYPES',` +_(EM_NONE, 0, + `No machine') +_(EM_M32, 1, + `AT&T WE 32100') +_(EM_SPARC, 2, + `SPARC') +_(EM_386, 3, + `Intel 80386') +_(EM_68K, 4, + `Motorola 68000') +_(EM_88K, 5, + `Motorola 88000') +_(EM_IAMCU, 6, + `Intel MCU') +_(EM_860, 7, + `Intel 80860') +_(EM_MIPS, 8, + `MIPS I Architecture') +_(EM_S370, 9, + `IBM System/370 Processor') +_(EM_MIPS_RS3_LE, 10, + `MIPS RS3000 Little-endian') +_(EM_PARISC, 15, + `Hewlett-Packard PA-RISC') +_(EM_VPP500, 17, + `Fujitsu VPP500') +_(EM_SPARC32PLUS, 18, + `Enhanced instruction set SPARC') +_(EM_960, 19, + `Intel 80960') +_(EM_PPC, 20, + `PowerPC') +_(EM_PPC64, 21, + `64-bit PowerPC') +_(EM_S390, 22, + `IBM System/390 Processor') +_(EM_SPU, 23, + `IBM SPU/SPC') +_(EM_V800, 36, + `NEC V800') +_(EM_FR20, 37, + `Fujitsu FR20') +_(EM_RH32, 38, + `TRW RH-32') +_(EM_RCE, 39, + `Motorola RCE') +_(EM_ARM, 40, + `Advanced RISC Machines ARM') +_(EM_ALPHA, 41, + `Digital Alpha') +_(EM_SH, 42, + `Hitachi SH') +_(EM_SPARCV9, 43, + `SPARC Version 9') +_(EM_TRICORE, 44, + `Siemens TriCore embedded processor') +_(EM_ARC, 45, + `Argonaut RISC Core, Argonaut Technologies Inc.') +_(EM_H8_300, 46, + `Hitachi H8/300') +_(EM_H8_300H, 47, + `Hitachi H8/300H') +_(EM_H8S, 48, + `Hitachi H8S') +_(EM_H8_500, 49, + `Hitachi H8/500') +_(EM_IA_64, 50, + `Intel IA-64 processor architecture') +_(EM_MIPS_X, 51, + `Stanford MIPS-X') +_(EM_COLDFIRE, 52, + `Motorola ColdFire') +_(EM_68HC12, 53, + `Motorola M68HC12') +_(EM_MMA, 54, + `Fujitsu MMA Multimedia Accelerator') +_(EM_PCP, 55, + `Siemens PCP') +_(EM_NCPU, 56, + `Sony nCPU embedded RISC processor') +_(EM_NDR1, 57, + `Denso NDR1 microprocessor') +_(EM_STARCORE, 58, + `Motorola Star*Core processor') +_(EM_ME16, 59, + `Toyota ME16 processor') +_(EM_ST100, 60, + `STMicroelectronics ST100 processor') +_(EM_TINYJ, 61, + `Advanced Logic Corp. TinyJ embedded processor family') +_(EM_X86_64, 62, + `AMD x86-64 architecture') +_(EM_PDSP, 63, + `Sony DSP Processor') +_(EM_PDP10, 64, + `Digital Equipment Corp. PDP-10') +_(EM_PDP11, 65, + `Digital Equipment Corp. PDP-11') +_(EM_FX66, 66, + `Siemens FX66 microcontroller') +_(EM_ST9PLUS, 67, + `STMicroelectronics ST9+ 8/16 bit microcontroller') +_(EM_ST7, 68, + `STMicroelectronics ST7 8-bit microcontroller') +_(EM_68HC16, 69, + `Motorola MC68HC16 Microcontroller') +_(EM_68HC11, 70, + `Motorola MC68HC11 Microcontroller') +_(EM_68HC08, 71, + `Motorola MC68HC08 Microcontroller') +_(EM_68HC05, 72, + `Motorola MC68HC05 Microcontroller') +_(EM_SVX, 73, + `Silicon Graphics SVx') +_(EM_ST19, 74, + `STMicroelectronics ST19 8-bit microcontroller') +_(EM_VAX, 75, + `Digital VAX') +_(EM_CRIS, 76, + `Axis Communications 32-bit embedded processor') +_(EM_JAVELIN, 77, + `Infineon Technologies 32-bit embedded processor') +_(EM_FIREPATH, 78, + `Element 14 64-bit DSP Processor') +_(EM_ZSP, 79, + `LSI Logic 16-bit DSP Processor') +_(EM_MMIX, 80, + `Educational 64-bit processor by Donald Knuth') +_(EM_HUANY, 81, + `Harvard University machine-independent object files') +_(EM_PRISM, 82, + `SiTera Prism') +_(EM_AVR, 83, + `Atmel AVR 8-bit microcontroller') +_(EM_FR30, 84, + `Fujitsu FR30') +_(EM_D10V, 85, + `Mitsubishi D10V') +_(EM_D30V, 86, + `Mitsubishi D30V') +_(EM_V850, 87, + `NEC v850') +_(EM_M32R, 88, + `Mitsubishi M32R') +_(EM_MN10300, 89, + `Matsushita MN10300') +_(EM_MN10200, 90, + `Matsushita MN10200') +_(EM_PJ, 91, + `picoJava') +_(EM_OPENRISC, 92, + `OpenRISC 32-bit embedded processor') +_(EM_ARC_COMPACT, 93, + `ARC International ARCompact processor') +_(EM_XTENSA, 94, + `Tensilica Xtensa Architecture') +_(EM_VIDEOCORE, 95, + `Alphamosaic VideoCore processor') +_(EM_TMM_GPP, 96, + `Thompson Multimedia General Purpose Processor') +_(EM_NS32K, 97, + `National Semiconductor 32000 series') +_(EM_TPC, 98, + `Tenor Network TPC processor') +_(EM_SNP1K, 99, + `Trebia SNP 1000 processor') +_(EM_ST200, 100, + `STMicroelectronics (www.st.com) ST200 microcontroller') +_(EM_IP2K, 101, + `Ubicom IP2xxx microcontroller family') +_(EM_MAX, 102, + `MAX Processor') +_(EM_CR, 103, + `National Semiconductor CompactRISC microprocessor') +_(EM_F2MC16, 104, + `Fujitsu F2MC16') +_(EM_MSP430, 105, + `Texas Instruments embedded microcontroller msp430') +_(EM_BLACKFIN, 106, + `Analog Devices Blackfin (DSP) processor') +_(EM_SE_C33, 107, + `S1C33 Family of Seiko Epson processors') +_(EM_SEP, 108, + `Sharp embedded microprocessor') +_(EM_ARCA, 109, + `Arca RISC Microprocessor') +_(EM_UNICORE, 110, + `Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University') +_(EM_EXCESS, 111, + `eXcess: 16/32/64-bit configurable embedded CPU') +_(EM_DXP, 112, + `Icera Semiconductor Inc. Deep Execution Processor') +_(EM_ALTERA_NIOS2, 113, + `Altera Nios II soft-core processor') +_(EM_CRX, 114, + `National Semiconductor CompactRISC CRX microprocessor') +_(EM_XGATE, 115, + `Motorola XGATE embedded processor') +_(EM_C166, 116, + `Infineon C16x/XC16x processor') +_(EM_M16C, 117, + `Renesas M16C series microprocessors') +_(EM_DSPIC30F, 118, + `Microchip Technology dsPIC30F Digital Signal Controller') +_(EM_CE, 119, + `Freescale Communication Engine RISC core') +_(EM_M32C, 120, + `Renesas M32C series microprocessors') +_(EM_TSK3000, 131, + `Altium TSK3000 core') +_(EM_RS08, 132, + `Freescale RS08 embedded processor') +_(EM_SHARC, 133, + `Analog Devices SHARC family of 32-bit DSP processors') +_(EM_ECOG2, 134, + `Cyan Technology eCOG2 microprocessor') +_(EM_SCORE7, 135, + `Sunplus S+core7 RISC processor') +_(EM_DSP24, 136, + `New Japan Radio (NJR) 24-bit DSP Processor') +_(EM_VIDEOCORE3, 137, + `Broadcom VideoCore III processor') +_(EM_LATTICEMICO32, 138, + `RISC processor for Lattice FPGA architecture') +_(EM_SE_C17, 139, + `Seiko Epson C17 family') +_(EM_TI_C6000, 140, + `The Texas Instruments TMS320C6000 DSP family') +_(EM_TI_C2000, 141, + `The Texas Instruments TMS320C2000 DSP family') +_(EM_TI_C5500, 142, + `The Texas Instruments TMS320C55x DSP family') +_(EM_MMDSP_PLUS, 160, + `STMicroelectronics 64bit VLIW Data Signal Processor') +_(EM_CYPRESS_M8C, 161, + `Cypress M8C microprocessor') +_(EM_R32C, 162, + `Renesas R32C series microprocessors') +_(EM_TRIMEDIA, 163, + `NXP Semiconductors TriMedia architecture family') +_(EM_QDSP6, 164, + `QUALCOMM DSP6 Processor') +_(EM_8051, 165, + `Intel 8051 and variants') +_(EM_STXP7X, 166, + `STMicroelectronics STxP7x family of configurable and extensible RISC processors') +_(EM_NDS32, 167, + `Andes Technology compact code size embedded RISC processor family') +_(EM_ECOG1, 168, + `Cyan Technology eCOG1X family') +_(EM_ECOG1X, 168, + `Cyan Technology eCOG1X family') +_(EM_MAXQ30, 169, + `Dallas Semiconductor MAXQ30 Core Micro-controllers') +_(EM_XIMO16, 170, + `New Japan Radio (NJR) 16-bit DSP Processor') +_(EM_MANIK, 171, + `M2000 Reconfigurable RISC Microprocessor') +_(EM_CRAYNV2, 172, + `Cray Inc. NV2 vector architecture') +_(EM_RX, 173, + `Renesas RX family') +_(EM_METAG, 174, + `Imagination Technologies META processor architecture') +_(EM_MCST_ELBRUS, 175, + `MCST Elbrus general purpose hardware architecture') +_(EM_ECOG16, 176, + `Cyan Technology eCOG16 family') +_(EM_CR16, 177, + `National Semiconductor CompactRISC CR16 16-bit microprocessor') +_(EM_ETPU, 178, + `Freescale Extended Time Processing Unit') +_(EM_SLE9X, 179, + `Infineon Technologies SLE9X core') +_(EM_AARCH64, 183, + `AArch64 (64-bit ARM)') +_(EM_AVR32, 185, + `Atmel Corporation 32-bit microprocessor family') +_(EM_STM8, 186, + `STMicroeletronics STM8 8-bit microcontroller') +_(EM_TILE64, 187, + `Tilera TILE64 multicore architecture family') +_(EM_TILEPRO, 188, + `Tilera TILEPro multicore architecture family') +_(EM_MICROBLAZE, 189, + `Xilinx MicroBlaze 32-bit RISC soft processor core') +_(EM_CUDA, 190, + `NVIDIA CUDA architecture') +_(EM_TILEGX, 191, + `Tilera TILE-Gx multicore architecture family') +_(EM_CLOUDSHIELD, 192, + `CloudShield architecture family') +_(EM_COREA_1ST, 193, + `KIPO-KAIST Core-A 1st generation processor family') +_(EM_COREA_2ND, 194, + `KIPO-KAIST Core-A 2nd generation processor family') +_(EM_ARC_COMPACT2, 195, + `Synopsys ARCompact V2') +_(EM_OPEN8, 196, + `Open8 8-bit RISC soft processor core') +_(EM_RL78, 197, + `Renesas RL78 family') +_(EM_VIDEOCORE5, 198, + `Broadcom VideoCore V processor') +_(EM_78KOR, 199, + `Renesas 78KOR family') +_(EM_56800EX, 200, + `Freescale 56800EX Digital Signal Controller') +_(EM_BA1, 201, + `Beyond BA1 CPU architecture') +_(EM_BA2, 202, + `Beyond BA2 CPU architecture') +_(EM_XCORE, 203, + `XMOS xCORE processor family') +_(EM_MCHP_PIC, 204, + `Microchip 8-bit PIC(r) family') +_(EM_INTELGT, 205, + `Intel Graphics Technology') +_(EM_INTEL206, 206, + `Reserved by Intel') +_(EM_INTEL207, 207, + `Reserved by Intel') +_(EM_INTEL208, 208, + `Reserved by Intel') +_(EM_INTEL209, 209, + `Reserved by Intel') +_(EM_KM32, 210, + `KM211 KM32 32-bit processor') +_(EM_KMX32, 211, + `KM211 KMX32 32-bit processor') +_(EM_KMX16, 212, + `KM211 KMX16 16-bit processor') +_(EM_KMX8, 213, + `KM211 KMX8 8-bit processor') +_(EM_KVARC, 214, + `KM211 KMX32 KVARC processor') +_(EM_CDP, 215, + `Paneve CDP architecture family') +_(EM_COGE, 216, + `Cognitive Smart Memory Processor') +_(EM_COOL, 217, + `Bluechip Systems CoolEngine') +_(EM_NORC, 218, + `Nanoradio Optimized RISC') +_(EM_CSR_KALIMBA, 219, + `CSR Kalimba architecture family') +_(EM_Z80, 220, + `Zilog Z80') +_(EM_VISIUM, 221, + `Controls and Data Services VISIUMcore processor') +_(EM_FT32, 222, + `FTDI Chip FT32 high performance 32-bit RISC architecture') +_(EM_MOXIE, 223, + `Moxie processor family') +_(EM_AMDGPU, 224, + `AMD GPU architecture') +_(EM_RISCV, 243, + `RISC-V') +_(EM_LANAI, 244, + `Lanai processor') +_(EM_CEVA, 245, + `CEVA Processor Architecture Family') +_(EM_CEVA_X2, 246, + `CEVA X2 Processor Family') +_(EM_BPF, 247, + `Linux BPF – in-kernel virtual machine') +_(EM_GRAPHCORE_IPU, 248, + `Graphcore Intelligent Processing Unit') +_(EM_IMG1, 249, + `Imagination Technologies') +_(EM_NFP, 250, + `Netronome Flow Processor (NFP)') +_(EM_CSKY, 252, + `C-SKY processor family') +_(EM_65816, 257, + `WDC 65816/65C816') +_(EM_KF32, 259, + `ChipON KungFu 32') +') + +define(`DEFINE_ELF_MACHINE_TYPE_SYNONYMS',` +_(EM_AMD64, EM_X86_64) +_(EM_ARC_A5, EM_ARC_COMPACT) +') + +# +# ELF file types: (ET_*). +# +define(`DEFINE_ELF_TYPES',` +_(ET_NONE, 0, + `No file type') +_(ET_REL, 1, + `Relocatable object') +_(ET_EXEC, 2, + `Executable') +_(ET_DYN, 3, + `Shared object') +_(ET_CORE, 4, + `Core file') +_(ET_LOOS, 0xFE00U, + `Begin OS-specific range') +_(ET_HIOS, 0xFEFFU, + `End OS-specific range') +_(ET_LOPROC, 0xFF00U, + `Begin processor-specific range') +_(ET_HIPROC, 0xFFFFU, + `End processor-specific range') +') + +# ELF file format version numbers. +define(`DEFINE_ELF_FILE_VERSIONS',` +_(EV_NONE, 0) +_(EV_CURRENT, 1) +') + +# +# Flags for section groups. +# +define(`DEFINE_GRP_FLAGS',` +_(GRP_COMDAT, 0x1, + `COMDAT semantics') +_(GRP_MASKOS, 0x0ff00000, + `OS-specific flags') +_(GRP_MASKPROC, 0xf0000000, + `processor-specific flags') +') + +# +# Flags / mask for .gnu.versym sections. +# +define(`DEFINE_VERSYMS',` +_(VERSYM_VERSION, 0x7fff) +_(VERSYM_HIDDEN, 0x8000) +') + +# +# Flags used by program header table entries. +# +define(`DEFINE_PHDR_FLAGS',` +_(PF_X, 0x1, + `Execute') +_(PF_W, 0x2, + `Write') +_(PF_R, 0x4, + `Read') +_(PF_MASKOS, 0x0ff00000, + `OS-specific flags') +_(PF_MASKPROC, 0xf0000000, + `Processor-specific flags') +_(PF_ARM_SB, 0x10000000, + `segment contains the location addressed by the static base') +_(PF_ARM_PI, 0x20000000, + `segment is position-independent') +_(PF_ARM_ABS, 0x40000000, + `segment must be loaded at its base address') +') + +# +# Types of program header table entries. +# +define(`DEFINE_PHDR_TYPES',` +_(PT_NULL, 0UL, + `ignored entry') +_(PT_LOAD, 1UL, + `loadable segment') +_(PT_DYNAMIC, 2UL, + `contains dynamic linking information') +_(PT_INTERP, 3UL, + `names an interpreter') +_(PT_NOTE, 4UL, + `auxiliary information') +_(PT_SHLIB, 5UL, + `reserved') +_(PT_PHDR, 6UL, + `describes the program header itself') +_(PT_TLS, 7UL, + `thread local storage') +_(PT_LOOS, 0x60000000UL, + `start of OS-specific range') +_(PT_SUNW_UNWIND, 0x6464E550UL, + `Solaris/amd64 stack unwind tables') +_(PT_GNU_EH_FRAME, 0x6474E550UL, + `GCC generated .eh_frame_hdr segment') +_(PT_GNU_STACK, 0x6474E551UL, + `Stack flags') +_(PT_GNU_RELRO, 0x6474E552UL, + `Segment becomes read-only after relocation') +_(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL, + `Segment filled with random data') +_(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL, + `Program violates W^X') +_(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL, + `Boot data') +_(PT_SUNWBSS, 0x6FFFFFFAUL, + `A Solaris .SUNW_bss section') +_(PT_SUNWSTACK, 0x6FFFFFFBUL, + `A Solaris process stack') +_(PT_SUNWDTRACE, 0x6FFFFFFCUL, + `Used by dtrace(1)') +_(PT_SUNWCAP, 0x6FFFFFFDUL, + `Special hardware capability requirements') +_(PT_HIOS, 0x6FFFFFFFUL, + `end of OS-specific range') +_(PT_LOPROC, 0x70000000UL, + `start of processor-specific range') +_(PT_ARM_ARCHEXT, 0x70000000UL, + `platform architecture compatibility information') +_(PT_ARM_EXIDX, 0x70000001UL, + `exception unwind tables') +_(PT_MIPS_REGINFO, 0x70000000UL, + `register usage information') +_(PT_MIPS_RTPROC, 0x70000001UL, + `runtime procedure table') +_(PT_MIPS_OPTIONS, 0x70000002UL, + `options segment') +_(PT_HIPROC, 0x7FFFFFFFUL, + `end of processor-specific range') +') + +define(`DEFINE_PHDR_TYPE_SYNONYMS',` +_(PT_ARM_UNWIND, PT_ARM_EXIDX) +_(PT_HISUNW, PT_HIOS) +_(PT_LOSUNW, PT_SUNWBSS) +') + +# +# Section flags. +# +define(`DEFINE_SECTION_FLAGS',` +_(SHF_WRITE, 0x1, + `writable during program execution') +_(SHF_ALLOC, 0x2, + `occupies memory during program execution') +_(SHF_EXECINSTR, 0x4, + `executable instructions') +_(SHF_MERGE, 0x10, + `may be merged to prevent duplication') +_(SHF_STRINGS, 0x20, + `NUL-terminated character strings') +_(SHF_INFO_LINK, 0x40, + `the sh_info field holds a link') +_(SHF_LINK_ORDER, 0x80, + `special ordering requirements during linking') +_(SHF_OS_NONCONFORMING, 0x100, + `requires OS-specific processing during linking') +_(SHF_GROUP, 0x200, + `member of a section group') +_(SHF_TLS, 0x400, + `holds thread-local storage') +_(SHF_COMPRESSED, 0x800, + `holds compressed data') +_(SHF_MASKOS, 0x0FF00000UL, + `bits reserved for OS-specific semantics') +_(SHF_AMD64_LARGE, 0x10000000UL, + `section uses large code model') +_(SHF_ENTRYSECT, 0x10000000UL, + `section contains an entry point (ARM)') +_(SHF_COMDEF, 0x80000000UL, + `section may be multiply defined in input to link step (ARM)') +_(SHF_MIPS_GPREL, 0x10000000UL, + `section must be part of global data area') +_(SHF_MIPS_MERGE, 0x20000000UL, + `section data should be merged to eliminate duplication') +_(SHF_MIPS_ADDR, 0x40000000UL, + `section data is addressed by default') +_(SHF_MIPS_STRING, 0x80000000UL, + `section data is string data by default') +_(SHF_MIPS_NOSTRIP, 0x08000000UL, + `section data may not be stripped') +_(SHF_MIPS_LOCAL, 0x04000000UL, + `section data local to process') +_(SHF_MIPS_NAMES, 0x02000000UL, + `linker must generate implicit hidden weak names') +_(SHF_MIPS_NODUPE, 0x01000000UL, + `linker must retain only one copy') +_(SHF_ORDERED, 0x40000000UL, + `section is ordered with respect to other sections') +_(SHF_EXCLUDE, 0x80000000UL, + `section is excluded from executables and shared objects') +_(SHF_MASKPROC, 0xF0000000UL, + `bits reserved for processor-specific semantics') +') + +# +# Special section indices. +# +define(`DEFINE_SECTION_INDICES',` +_(SHN_UNDEF, 0, + `undefined section') +_(SHN_LORESERVE, 0xFF00U, + `start of reserved area') +_(SHN_LOPROC, 0xFF00U, + `start of processor-specific range') +_(SHN_BEFORE, 0xFF00U, + `used for section ordering') +_(SHN_AFTER, 0xFF01U, + `used for section ordering') +_(SHN_AMD64_LCOMMON, 0xFF02U, + `large common block label') +_(SHN_MIPS_ACOMMON, 0xFF00U, + `allocated common symbols in a DSO') +_(SHN_MIPS_TEXT, 0xFF01U, + `Reserved (obsolete)') +_(SHN_MIPS_DATA, 0xFF02U, + `Reserved (obsolete)') +_(SHN_MIPS_SCOMMON, 0xFF03U, + `gp-addressable common symbols') +_(SHN_MIPS_SUNDEFINED, 0xFF04U, + `gp-addressable undefined symbols') +_(SHN_MIPS_LCOMMON, 0xFF05U, + `local common symbols') +_(SHN_MIPS_LUNDEFINED, 0xFF06U, + `local undefined symbols') +_(SHN_HIPROC, 0xFF1FU, + `end of processor-specific range') +_(SHN_LOOS, 0xFF20U, + `start of OS-specific range') +_(SHN_SUNW_IGNORE, 0xFF3FU, + `used by dtrace') +_(SHN_HIOS, 0xFF3FU, + `end of OS-specific range') +_(SHN_ABS, 0xFFF1U, + `absolute references') +_(SHN_COMMON, 0xFFF2U, + `references to COMMON areas') +_(SHN_XINDEX, 0xFFFFU, + `extended index') +_(SHN_HIRESERVE, 0xFFFFU, + `end of reserved area') +') + +# +# Section types. +# +define(`DEFINE_SECTION_TYPES',` +_(SHT_NULL, 0, `inactive header') +_(SHT_PROGBITS, 1, `program defined information') +_(SHT_SYMTAB, 2, `symbol table') +_(SHT_STRTAB, 3, `string table') +_(SHT_RELA, 4, + `relocation entries with addends') +_(SHT_HASH, 5, `symbol hash table') +_(SHT_DYNAMIC, 6, + `information for dynamic linking') +_(SHT_NOTE, 7, `additional notes') +_(SHT_NOBITS, 8, `section occupying no space') +_(SHT_REL, 9, + `relocation entries without addends') +_(SHT_SHLIB, 10, `reserved') +_(SHT_DYNSYM, 11, `symbol table') +_(SHT_INIT_ARRAY, 14, + `pointers to initialization functions') +_(SHT_FINI_ARRAY, 15, + `pointers to termination functions') +_(SHT_PREINIT_ARRAY, 16, + `pointers to functions called before initialization') +_(SHT_GROUP, 17, `defines a section group') +_(SHT_SYMTAB_SHNDX, 18, + `used for extended section numbering') +_(SHT_LOOS, 0x60000000UL, + `start of OS-specific range') +_(SHT_SUNW_dof, 0x6FFFFFF4UL, + `used by dtrace') +_(SHT_SUNW_cap, 0x6FFFFFF5UL, + `capability requirements') +_(SHT_GNU_ATTRIBUTES, 0x6FFFFFF5UL, + `object attributes') +_(SHT_SUNW_SIGNATURE, 0x6FFFFFF6UL, + `module verification signature') +_(SHT_GNU_HASH, 0x6FFFFFF6UL, + `GNU Hash sections') +_(SHT_GNU_LIBLIST, 0x6FFFFFF7UL, + `List of libraries to be prelinked') +_(SHT_SUNW_ANNOTATE, 0x6FFFFFF7UL, + `special section where unresolved references are allowed') +_(SHT_SUNW_DEBUGSTR, 0x6FFFFFF8UL, + `debugging information') +_(SHT_CHECKSUM, 0x6FFFFFF8UL, + `checksum for dynamic shared objects') +_(SHT_SUNW_DEBUG, 0x6FFFFFF9UL, + `debugging information') +_(SHT_SUNW_move, 0x6FFFFFFAUL, + `information to handle partially initialized symbols') +_(SHT_SUNW_COMDAT, 0x6FFFFFFBUL, + `section supporting merging of multiple copies of data') +_(SHT_SUNW_syminfo, 0x6FFFFFFCUL, + `additional symbol information') +_(SHT_SUNW_verdef, 0x6FFFFFFDUL, + `symbol versioning information') +_(SHT_SUNW_verneed, 0x6FFFFFFEUL, + `symbol versioning requirements') +_(SHT_SUNW_versym, 0x6FFFFFFFUL, + `symbol versioning table') +_(SHT_HIOS, 0x6FFFFFFFUL, + `end of OS-specific range') +_(SHT_LOPROC, 0x70000000UL, + `start of processor-specific range') +_(SHT_ARM_EXIDX, 0x70000001UL, + `exception index table') +_(SHT_ARM_PREEMPTMAP, 0x70000002UL, + `BPABI DLL dynamic linking preemption map') +_(SHT_ARM_ATTRIBUTES, 0x70000003UL, + `object file compatibility attributes') +_(SHT_ARM_DEBUGOVERLAY, 0x70000004UL, + `overlay debug information') +_(SHT_ARM_OVERLAYSECTION, 0x70000005UL, + `overlay debug information') +_(SHT_MIPS_LIBLIST, 0x70000000UL, + `DSO library information used in link') +_(SHT_MIPS_MSYM, 0x70000001UL, + `MIPS symbol table extension') +_(SHT_MIPS_CONFLICT, 0x70000002UL, + `symbol conflicting with DSO-defined symbols ') +_(SHT_MIPS_GPTAB, 0x70000003UL, + `global pointer table') +_(SHT_MIPS_UCODE, 0x70000004UL, + `reserved') +_(SHT_MIPS_DEBUG, 0x70000005UL, + `reserved (obsolete debug information)') +_(SHT_MIPS_REGINFO, 0x70000006UL, + `register usage information') +_(SHT_MIPS_PACKAGE, 0x70000007UL, + `OSF reserved') +_(SHT_MIPS_PACKSYM, 0x70000008UL, + `OSF reserved') +_(SHT_MIPS_RELD, 0x70000009UL, + `dynamic relocation') +_(SHT_MIPS_IFACE, 0x7000000BUL, + `subprogram interface information') +_(SHT_MIPS_CONTENT, 0x7000000CUL, + `section content classification') +_(SHT_MIPS_OPTIONS, 0x7000000DUL, + `general options') +_(SHT_MIPS_DELTASYM, 0x7000001BUL, + `Delta C++: symbol table') +_(SHT_MIPS_DELTAINST, 0x7000001CUL, + `Delta C++: instance table') +_(SHT_MIPS_DELTACLASS, 0x7000001DUL, + `Delta C++: class table') +_(SHT_MIPS_DWARF, 0x7000001EUL, + `DWARF debug information') +_(SHT_MIPS_DELTADECL, 0x7000001FUL, + `Delta C++: declarations') +_(SHT_MIPS_SYMBOL_LIB, 0x70000020UL, + `symbol-to-library mapping') +_(SHT_MIPS_EVENTS, 0x70000021UL, + `event locations') +_(SHT_MIPS_TRANSLATE, 0x70000022UL, + `???') +_(SHT_MIPS_PIXIE, 0x70000023UL, + `special pixie sections') +_(SHT_MIPS_XLATE, 0x70000024UL, + `address translation table') +_(SHT_MIPS_XLATE_DEBUG, 0x70000025UL, + `SGI internal address translation table') +_(SHT_MIPS_WHIRL, 0x70000026UL, + `intermediate code') +_(SHT_MIPS_EH_REGION, 0x70000027UL, + `C++ exception handling region info') +_(SHT_MIPS_XLATE_OLD, 0x70000028UL, + `obsolete') +_(SHT_MIPS_PDR_EXCEPTION, 0x70000029UL, + `runtime procedure descriptor table exception information') +_(SHT_MIPS_ABIFLAGS, 0x7000002AUL, + `ABI flags') +_(SHT_SPARC_GOTDATA, 0x70000000UL, + `SPARC-specific data') +_(SHT_X86_64_UNWIND, 0x70000001UL, + `unwind tables for the AMD64') +_(SHT_ORDERED, 0x7FFFFFFFUL, + `sort entries in the section') +_(SHT_HIPROC, 0x7FFFFFFFUL, + `end of processor-specific range') +_(SHT_LOUSER, 0x80000000UL, + `start of application-specific range') +_(SHT_HIUSER, 0xFFFFFFFFUL, + `end of application-specific range') +') + +# Aliases for section types. +define(`DEFINE_SECTION_TYPE_ALIASES',` +_(SHT_AMD64_UNWIND, SHT_X86_64_UNWIND) +_(SHT_GNU_verdef, SHT_SUNW_verdef) +_(SHT_GNU_verneed, SHT_SUNW_verneed) +_(SHT_GNU_versym, SHT_SUNW_versym) +') + +# +# Symbol binding information. +# +define(`DEFINE_SYMBOL_BINDINGS',` +_(STB_LOCAL, 0, + `not visible outside defining object file') +_(STB_GLOBAL, 1, + `visible across all object files being combined') +_(STB_WEAK, 2, + `visible across all object files but with low precedence') +_(STB_LOOS, 10, + `start of OS-specific range') +_(STB_GNU_UNIQUE, 10, + `unique symbol (GNU)') +_(STB_HIOS, 12, + `end of OS-specific range') +_(STB_LOPROC, 13, + `start of processor-specific range') +_(STB_HIPROC, 15, + `end of processor-specific range') +') + +# +# Symbol types +# +define(`DEFINE_SYMBOL_TYPES',` +_(STT_NOTYPE, 0, + `unspecified type') +_(STT_OBJECT, 1, + `data object') +_(STT_FUNC, 2, + `executable code') +_(STT_SECTION, 3, + `section') +_(STT_FILE, 4, + `source file') +_(STT_COMMON, 5, + `uninitialized common block') +_(STT_TLS, 6, + `thread local storage') +_(STT_LOOS, 10, + `start of OS-specific types') +_(STT_GNU_IFUNC, 10, + `indirect function') +_(STT_HIOS, 12, + `end of OS-specific types') +_(STT_LOPROC, 13, + `start of processor-specific types') +_(STT_ARM_TFUNC, 13, + `Thumb function (GNU)') +_(STT_ARM_16BIT, 15, + `Thumb label (GNU)') +_(STT_SPARC_REGISTER, 13, + `SPARC register information') +_(STT_HIPROC, 15, + `end of processor-specific types') +') + +# +# Symbol binding. +# +define(`DEFINE_SYMBOL_BINDING_KINDS',` +_(SYMINFO_BT_SELF, 0xFFFFU, + `bound to self') +_(SYMINFO_BT_PARENT, 0xFFFEU, + `bound to parent') +_(SYMINFO_BT_NONE, 0xFFFDU, + `no special binding') +') + +# +# Symbol visibility. +# +define(`DEFINE_SYMBOL_VISIBILITIES',` +_(STV_DEFAULT, 0, + `as specified by symbol type') +_(STV_INTERNAL, 1, + `as defined by processor semantics') +_(STV_HIDDEN, 2, + `hidden from other components') +_(STV_PROTECTED, 3, + `local references are not preemptable') +') + +# +# Symbol flags. +# +define(`DEFINE_SYMBOL_FLAGS',` +_(SYMINFO_FLG_DIRECT, 0x01, + `directly assocated reference') +_(SYMINFO_FLG_COPY, 0x04, + `definition by copy-relocation') +_(SYMINFO_FLG_LAZYLOAD, 0x08, + `object should be lazily loaded') +_(SYMINFO_FLG_DIRECTBIND, 0x10, + `reference should be directly bound') +_(SYMINFO_FLG_NOEXTDIRECT, 0x20, + `external references not allowed to bind to definition') +') + +# +# Version dependencies. +# +define(`DEFINE_VERSIONING_DEPENDENCIES',` +_(VER_NDX_LOCAL, 0, + `local scope') +_(VER_NDX_GLOBAL, 1, + `global scope') +') + +# +# Version flags. +# +define(`DEFINE_VERSIONING_FLAGS',` +_(VER_FLG_BASE, 0x1, + `file version') +_(VER_FLG_WEAK, 0x2, + `weak version') +') + +# +# Version needs +# +define(`DEFINE_VERSIONING_NEEDS',` +_(VER_NEED_NONE, 0, + `invalid version') +_(VER_NEED_CURRENT, 1, + `current version') +') + +# +# Versioning numbers. +# +define(`DEFINE_VERSIONING_NUMBERS',` +_(VER_DEF_NONE, 0, + `invalid version') +_(VER_DEF_CURRENT, 1, + `current version') +') + +# +# Relocation types. +# +define(`DEFINE_386_RELOCATIONS',` +_(R_386_NONE, 0) +_(R_386_32, 1) +_(R_386_PC32, 2) +_(R_386_GOT32, 3) +_(R_386_PLT32, 4) +_(R_386_COPY, 5) +_(R_386_GLOB_DAT, 6) +_(R_386_JUMP_SLOT, 7) +_(R_386_RELATIVE, 8) +_(R_386_GOTOFF, 9) +_(R_386_GOTPC, 10) +_(R_386_32PLT, 11) +_(R_386_TLS_TPOFF, 14) +_(R_386_TLS_IE, 15) +_(R_386_TLS_GOTIE, 16) +_(R_386_TLS_LE, 17) +_(R_386_TLS_GD, 18) +_(R_386_TLS_LDM, 19) +_(R_386_16, 20) +_(R_386_PC16, 21) +_(R_386_8, 22) +_(R_386_PC8, 23) +_(R_386_TLS_GD_32, 24) +_(R_386_TLS_GD_PUSH, 25) +_(R_386_TLS_GD_CALL, 26) +_(R_386_TLS_GD_POP, 27) +_(R_386_TLS_LDM_32, 28) +_(R_386_TLS_LDM_PUSH, 29) +_(R_386_TLS_LDM_CALL, 30) +_(R_386_TLS_LDM_POP, 31) +_(R_386_TLS_LDO_32, 32) +_(R_386_TLS_IE_32, 33) +_(R_386_TLS_LE_32, 34) +_(R_386_TLS_DTPMOD32, 35) +_(R_386_TLS_DTPOFF32, 36) +_(R_386_TLS_TPOFF32, 37) +_(R_386_SIZE32, 38) +_(R_386_TLS_GOTDESC, 39) +_(R_386_TLS_DESC_CALL, 40) +_(R_386_TLS_DESC, 41) +_(R_386_IRELATIVE, 42) +_(R_386_GOT32X, 43) +') + +define(`DEFINE_AARCH64_RELOCATIONS',` +_(R_AARCH64_NONE, 0) +_(R_AARCH64_ABS64, 257) +_(R_AARCH64_ABS32, 258) +_(R_AARCH64_ABS16, 259) +_(R_AARCH64_PREL64, 260) +_(R_AARCH64_PREL32, 261) +_(R_AARCH64_PREL16, 262) +_(R_AARCH64_MOVW_UABS_G0, 263) +_(R_AARCH64_MOVW_UABS_G0_NC, 264) +_(R_AARCH64_MOVW_UABS_G1, 265) +_(R_AARCH64_MOVW_UABS_G1_NC, 266) +_(R_AARCH64_MOVW_UABS_G2, 267) +_(R_AARCH64_MOVW_UABS_G2_NC, 268) +_(R_AARCH64_MOVW_UABS_G3, 269) +_(R_AARCH64_MOVW_SABS_G0, 270) +_(R_AARCH64_MOVW_SABS_G1, 271) +_(R_AARCH64_MOVW_SABS_G2, 272) +_(R_AARCH64_LD_PREL_LO19, 273) +_(R_AARCH64_ADR_PREL_LO21, 274) +_(R_AARCH64_ADR_PREL_PG_HI21, 275) +_(R_AARCH64_ADR_PREL_PG_HI21_NC, 276) +_(R_AARCH64_ADD_ABS_LO12_NC, 277) +_(R_AARCH64_LDST8_ABS_LO12_NC, 278) +_(R_AARCH64_TSTBR14, 279) +_(R_AARCH64_CONDBR19, 280) +_(R_AARCH64_JUMP26, 282) +_(R_AARCH64_CALL26, 283) +_(R_AARCH64_LDST16_ABS_LO12_NC, 284) +_(R_AARCH64_LDST32_ABS_LO12_NC, 285) +_(R_AARCH64_LDST64_ABS_LO12_NC, 286) +_(R_AARCH64_MOVW_PREL_G0, 287) +_(R_AARCH64_MOVW_PREL_G0_NC, 288) +_(R_AARCH64_MOVW_PREL_G1, 289) +_(R_AARCH64_MOVW_PREL_G1_NC, 290) +_(R_AARCH64_MOVW_PREL_G2, 291) +_(R_AARCH64_MOVW_PREL_G2_NC, 292) +_(R_AARCH64_MOVW_PREL_G3, 293) +_(R_AARCH64_LDST128_ABS_LO12_NC, 299) +_(R_AARCH64_MOVW_GOTOFF_G0, 300) +_(R_AARCH64_MOVW_GOTOFF_G0_NC, 301) +_(R_AARCH64_MOVW_GOTOFF_G1, 302) +_(R_AARCH64_MOVW_GOTOFF_G1_NC, 303) +_(R_AARCH64_MOVW_GOTOFF_G2, 304) +_(R_AARCH64_MOVW_GOTOFF_G2_NC, 305) +_(R_AARCH64_MOVW_GOTOFF_G3, 306) +_(R_AARCH64_GOTREL64, 307) +_(R_AARCH64_GOTREL32, 308) +_(R_AARCH64_GOT_LD_PREL19, 309) +_(R_AARCH64_LD64_GOTOFF_LO15, 310) +_(R_AARCH64_ADR_GOT_PAGE, 311) +_(R_AARCH64_LD64_GOT_LO12_NC, 312) +_(R_AARCH64_LD64_GOTPAGE_LO15, 313) +_(R_AARCH64_TLSGD_ADR_PREL21, 512) +_(R_AARCH64_TLSGD_ADR_PAGE21, 513) +_(R_AARCH64_TLSGD_ADD_LO12_NC, 514) +_(R_AARCH64_TLSGD_MOVW_G1, 515) +_(R_AARCH64_TLSGD_MOVW_G0_NC, 516) +_(R_AARCH64_TLSLD_ADR_PREL21, 517) +_(R_AARCH64_TLSLD_ADR_PAGE21, 518) +_(R_AARCH64_TLSLD_ADD_LO12_NC, 519) +_(R_AARCH64_TLSLD_MOVW_G1, 520) +_(R_AARCH64_TLSLD_MOVW_G0_NC, 521) +_(R_AARCH64_TLSLD_LD_PREL19, 522) +_(R_AARCH64_TLSLD_MOVW_DTPREL_G2, 523) +_(R_AARCH64_TLSLD_MOVW_DTPREL_G1, 524) +_(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC, 525) +_(R_AARCH64_TLSLD_MOVW_DTPREL_G0, 526) +_(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC, 527) +_(R_AARCH64_TLSLD_ADD_DTPREL_HI12, 529) +_(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC, 530) +_(R_AARCH64_TLSLD_LDST8_DTPREL_LO12, 531) +_(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, 532) +_(R_AARCH64_TLSLD_LDST16_DTPREL_LO12, 533) +_(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC, 534) +_(R_AARCH64_TLSLD_LDST32_DTPREL_LO12, 535) +_(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC, 536) +_(R_AARCH64_TLSLD_LDST64_DTPREL_LO12, 537) +_(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC, 538) +_(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 539) +_(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 540) +_(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 541) +_(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 542) +_(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 543) +_(R_AARCH64_TLSLE_MOVW_TPREL_G2, 544) +_(R_AARCH64_TLSLE_MOVW_TPREL_G1, 545) +_(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 546) +_(R_AARCH64_TLSLE_MOVW_TPREL_G0, 547) +_(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 548) +_(R_AARCH64_TLSLE_ADD_TPREL_HI12, 549) +_(R_AARCH64_TLSLE_ADD_TPREL_LO12, 550) +_(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551) +_(R_AARCH64_TLSLE_LDST8_TPREL_LO12, 552) +_(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC, 553) +_(R_AARCH64_TLSLE_LDST16_TPREL_LO12, 554) +_(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, 555) +_(R_AARCH64_TLSLE_LDST32_TPREL_LO12, 556) +_(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, 557) +_(R_AARCH64_TLSLE_LDST64_TPREL_LO12, 558) +_(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, 559) +_(R_AARCH64_TLSDESC_LD_PREL19, 560) +_(R_AARCH64_TLSDESC_ADR_PREL21, 561) +_(R_AARCH64_TLSDESC_ADR_PAGE21, 562) +_(R_AARCH64_TLSDESC_LD64_LO12, 563) +_(R_AARCH64_TLSDESC_ADD_LO12, 564) +_(R_AARCH64_TLSDESC_OFF_G1, 565) +_(R_AARCH64_TLSDESC_OFF_G0_NC, 566) +_(R_AARCH64_TLSDESC_LDR, 567) +_(R_AARCH64_TLSDESC_ADD, 568) +_(R_AARCH64_TLSDESC_CALL, 569) +_(R_AARCH64_TLSLE_LDST128_TPREL_LO12, 570) +_(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 571) +_(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 572) +_(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 573) +_(R_AARCH64_COPY, 1024) +_(R_AARCH64_GLOB_DAT, 1025) +_(R_AARCH64_JUMP_SLOT, 1026) +_(R_AARCH64_RELATIVE, 1027) +_(R_AARCH64_TLS_DTPREL64, 1028) +_(R_AARCH64_TLS_DTPMOD64, 1029) +_(R_AARCH64_TLS_TPREL64, 1030) +_(R_AARCH64_TLSDESC, 1031) +_(R_AARCH64_IRELATIVE, 1032) +') + +# +# These are the symbols used in the Sun ``Linkers and Loaders +# Guide'', Document No: 817-1984-17. See the X86_64 relocations list +# below for the spellings used in the ELF specification. +# +define(`DEFINE_AMD64_RELOCATIONS',` +_(R_AMD64_NONE, 0) +_(R_AMD64_64, 1) +_(R_AMD64_PC32, 2) +_(R_AMD64_GOT32, 3) +_(R_AMD64_PLT32, 4) +_(R_AMD64_COPY, 5) +_(R_AMD64_GLOB_DAT, 6) +_(R_AMD64_JUMP_SLOT, 7) +_(R_AMD64_RELATIVE, 8) +_(R_AMD64_GOTPCREL, 9) +_(R_AMD64_32, 10) +_(R_AMD64_32S, 11) +_(R_AMD64_16, 12) +_(R_AMD64_PC16, 13) +_(R_AMD64_8, 14) +_(R_AMD64_PC8, 15) +_(R_AMD64_PC64, 24) +_(R_AMD64_GOTOFF64, 25) +_(R_AMD64_GOTPC32, 26) +') + +# +# Relocation definitions from the ARM ELF ABI, version "ARM IHI +# 0044E" released on 30th November 2012. +# +define(`DEFINE_ARM_RELOCATIONS',` +_(R_ARM_NONE, 0) +_(R_ARM_PC24, 1) +_(R_ARM_ABS32, 2) +_(R_ARM_REL32, 3) +_(R_ARM_LDR_PC_G0, 4) +_(R_ARM_ABS16, 5) +_(R_ARM_ABS12, 6) +_(R_ARM_THM_ABS5, 7) +_(R_ARM_ABS8, 8) +_(R_ARM_SBREL32, 9) +_(R_ARM_THM_CALL, 10) +_(R_ARM_THM_PC8, 11) +_(R_ARM_BREL_ADJ, 12) +_(R_ARM_SWI24, 13) +_(R_ARM_TLS_DESC, 13) +_(R_ARM_THM_SWI8, 14) +_(R_ARM_XPC25, 15) +_(R_ARM_THM_XPC22, 16) +_(R_ARM_TLS_DTPMOD32, 17) +_(R_ARM_TLS_DTPOFF32, 18) +_(R_ARM_TLS_TPOFF32, 19) +_(R_ARM_COPY, 20) +_(R_ARM_GLOB_DAT, 21) +_(R_ARM_JUMP_SLOT, 22) +_(R_ARM_RELATIVE, 23) +_(R_ARM_GOTOFF32, 24) +_(R_ARM_BASE_PREL, 25) +_(R_ARM_GOT_BREL, 26) +_(R_ARM_PLT32, 27) +_(R_ARM_CALL, 28) +_(R_ARM_JUMP24, 29) +_(R_ARM_THM_JUMP24, 30) +_(R_ARM_BASE_ABS, 31) +_(R_ARM_ALU_PCREL_7_0, 32) +_(R_ARM_ALU_PCREL_15_8, 33) +_(R_ARM_ALU_PCREL_23_15, 34) +_(R_ARM_LDR_SBREL_11_0_NC, 35) +_(R_ARM_ALU_SBREL_19_12_NC, 36) +_(R_ARM_ALU_SBREL_27_20_CK, 37) +_(R_ARM_TARGET1, 38) +_(R_ARM_SBREL31, 39) +_(R_ARM_V4BX, 40) +_(R_ARM_TARGET2, 41) +_(R_ARM_PREL31, 42) +_(R_ARM_MOVW_ABS_NC, 43) +_(R_ARM_MOVT_ABS, 44) +_(R_ARM_MOVW_PREL_NC, 45) +_(R_ARM_MOVT_PREL, 46) +_(R_ARM_THM_MOVW_ABS_NC, 47) +_(R_ARM_THM_MOVT_ABS, 48) +_(R_ARM_THM_MOVW_PREL_NC, 49) +_(R_ARM_THM_MOVT_PREL, 50) +_(R_ARM_THM_JUMP19, 51) +_(R_ARM_THM_JUMP6, 52) +_(R_ARM_THM_ALU_PREL_11_0, 53) +_(R_ARM_THM_PC12, 54) +_(R_ARM_ABS32_NOI, 55) +_(R_ARM_REL32_NOI, 56) +_(R_ARM_ALU_PC_G0_NC, 57) +_(R_ARM_ALU_PC_G0, 58) +_(R_ARM_ALU_PC_G1_NC, 59) +_(R_ARM_ALU_PC_G1, 60) +_(R_ARM_ALU_PC_G2, 61) +_(R_ARM_LDR_PC_G1, 62) +_(R_ARM_LDR_PC_G2, 63) +_(R_ARM_LDRS_PC_G0, 64) +_(R_ARM_LDRS_PC_G1, 65) +_(R_ARM_LDRS_PC_G2, 66) +_(R_ARM_LDC_PC_G0, 67) +_(R_ARM_LDC_PC_G1, 68) +_(R_ARM_LDC_PC_G2, 69) +_(R_ARM_ALU_SB_G0_NC, 70) +_(R_ARM_ALU_SB_G0, 71) +_(R_ARM_ALU_SB_G1_NC, 72) +_(R_ARM_ALU_SB_G1, 73) +_(R_ARM_ALU_SB_G2, 74) +_(R_ARM_LDR_SB_G0, 75) +_(R_ARM_LDR_SB_G1, 76) +_(R_ARM_LDR_SB_G2, 77) +_(R_ARM_LDRS_SB_G0, 78) +_(R_ARM_LDRS_SB_G1, 79) +_(R_ARM_LDRS_SB_G2, 80) +_(R_ARM_LDC_SB_G0, 81) +_(R_ARM_LDC_SB_G1, 82) +_(R_ARM_LDC_SB_G2, 83) +_(R_ARM_MOVW_BREL_NC, 84) +_(R_ARM_MOVT_BREL, 85) +_(R_ARM_MOVW_BREL, 86) +_(R_ARM_THM_MOVW_BREL_NC, 87) +_(R_ARM_THM_MOVT_BREL, 88) +_(R_ARM_THM_MOVW_BREL, 89) +_(R_ARM_TLS_GOTDESC, 90) +_(R_ARM_TLS_CALL, 91) +_(R_ARM_TLS_DESCSEQ, 92) +_(R_ARM_THM_TLS_CALL, 93) +_(R_ARM_PLT32_ABS, 94) +_(R_ARM_GOT_ABS, 95) +_(R_ARM_GOT_PREL, 96) +_(R_ARM_GOT_BREL12, 97) +_(R_ARM_GOTOFF12, 98) +_(R_ARM_GOTRELAX, 99) +_(R_ARM_GNU_VTENTRY, 100) +_(R_ARM_GNU_VTINHERIT, 101) +_(R_ARM_THM_JUMP11, 102) +_(R_ARM_THM_JUMP8, 103) +_(R_ARM_TLS_GD32, 104) +_(R_ARM_TLS_LDM32, 105) +_(R_ARM_TLS_LDO32, 106) +_(R_ARM_TLS_IE32, 107) +_(R_ARM_TLS_LE32, 108) +_(R_ARM_TLS_LDO12, 109) +_(R_ARM_TLS_LE12, 110) +_(R_ARM_TLS_IE12GP, 111) +_(R_ARM_PRIVATE_0, 112) +_(R_ARM_PRIVATE_1, 113) +_(R_ARM_PRIVATE_2, 114) +_(R_ARM_PRIVATE_3, 115) +_(R_ARM_PRIVATE_4, 116) +_(R_ARM_PRIVATE_5, 117) +_(R_ARM_PRIVATE_6, 118) +_(R_ARM_PRIVATE_7, 119) +_(R_ARM_PRIVATE_8, 120) +_(R_ARM_PRIVATE_9, 121) +_(R_ARM_PRIVATE_10, 122) +_(R_ARM_PRIVATE_11, 123) +_(R_ARM_PRIVATE_12, 124) +_(R_ARM_PRIVATE_13, 125) +_(R_ARM_PRIVATE_14, 126) +_(R_ARM_PRIVATE_15, 127) +_(R_ARM_ME_TOO, 128) +_(R_ARM_THM_TLS_DESCSEQ16, 129) +_(R_ARM_THM_TLS_DESCSEQ32, 130) +_(R_ARM_THM_GOT_BREL12, 131) +_(R_ARM_IRELATIVE, 140) +') + +define(`DEFINE_IA64_RELOCATIONS',` +_(R_IA_64_NONE, 0) +_(R_IA_64_IMM14, 0x21) +_(R_IA_64_IMM22, 0x22) +_(R_IA_64_IMM64, 0x23) +_(R_IA_64_DIR32MSB, 0x24) +_(R_IA_64_DIR32LSB, 0x25) +_(R_IA_64_DIR64MSB, 0x26) +_(R_IA_64_DIR64LSB, 0x27) +_(R_IA_64_GPREL22, 0x2a) +_(R_IA_64_GPREL64I, 0x2b) +_(R_IA_64_GPREL32MSB, 0x2c) +_(R_IA_64_GPREL32LSB, 0x2d) +_(R_IA_64_GPREL64MSB, 0x2e) +_(R_IA_64_GPREL64LSB, 0x2f) +_(R_IA_64_LTOFF22, 0x32) +_(R_IA_64_LTOFF64I, 0x33) +_(R_IA_64_PLTOFF22, 0x3a) +_(R_IA_64_PLTOFF64I, 0x3b) +_(R_IA_64_PLTOFF64MSB, 0x3e) +_(R_IA_64_PLTOFF64LSB, 0x3f) +_(R_IA_64_FPTR64I, 0x43) +_(R_IA_64_FPTR32MSB, 0x44) +_(R_IA_64_FPTR32LSB, 0x45) +_(R_IA_64_FPTR64MSB, 0x46) +_(R_IA_64_FPTR64LSB, 0x47) +_(R_IA_64_PCREL60B, 0x48) +_(R_IA_64_PCREL21B, 0x49) +_(R_IA_64_PCREL21M, 0x4a) +_(R_IA_64_PCREL21F, 0x4b) +_(R_IA_64_PCREL32MSB, 0x4c) +_(R_IA_64_PCREL32LSB, 0x4d) +_(R_IA_64_PCREL64MSB, 0x4e) +_(R_IA_64_PCREL64LSB, 0x4f) +_(R_IA_64_LTOFF_FPTR22, 0x52) +_(R_IA_64_LTOFF_FPTR64I, 0x53) +_(R_IA_64_LTOFF_FPTR32MSB, 0x54) +_(R_IA_64_LTOFF_FPTR32LSB, 0x55) +_(R_IA_64_LTOFF_FPTR64MSB, 0x56) +_(R_IA_64_LTOFF_FPTR64LSB, 0x57) +_(R_IA_64_SEGREL32MSB, 0x5c) +_(R_IA_64_SEGREL32LSB, 0x5d) +_(R_IA_64_SEGREL64MSB, 0x5e) +_(R_IA_64_SEGREL64LSB, 0x5f) +_(R_IA_64_SECREL32MSB, 0x64) +_(R_IA_64_SECREL32LSB, 0x65) +_(R_IA_64_SECREL64MSB, 0x66) +_(R_IA_64_SECREL64LSB, 0x67) +_(R_IA_64_REL32MSB, 0x6c) +_(R_IA_64_REL32LSB, 0x6d) +_(R_IA_64_REL64MSB, 0x6e) +_(R_IA_64_REL64LSB, 0x6f) +_(R_IA_64_LTV32MSB, 0x74) +_(R_IA_64_LTV32LSB, 0x75) +_(R_IA_64_LTV64MSB, 0x76) +_(R_IA_64_LTV64LSB, 0x77) +_(R_IA_64_PCREL21BI, 0x79) +_(R_IA_64_PCREL22, 0x7A) +_(R_IA_64_PCREL64I, 0x7B) +_(R_IA_64_IPLTMSB, 0x80) +_(R_IA_64_IPLTLSB, 0x81) +_(R_IA_64_SUB, 0x85) +_(R_IA_64_LTOFF22X, 0x86) +_(R_IA_64_LDXMOV, 0x87) +_(R_IA_64_TPREL14, 0x91) +_(R_IA_64_TPREL22, 0x92) +_(R_IA_64_TPREL64I, 0x93) +_(R_IA_64_TPREL64MSB, 0x96) +_(R_IA_64_TPREL64LSB, 0x97) +_(R_IA_64_LTOFF_TPREL22, 0x9A) +_(R_IA_64_DTPMOD64MSB, 0xA6) +_(R_IA_64_DTPMOD64LSB, 0xA7) +_(R_IA_64_LTOFF_DTPMOD22, 0xAA) +_(R_IA_64_DTPREL14, 0xB1) +_(R_IA_64_DTPREL22, 0xB2) +_(R_IA_64_DTPREL64I, 0xB3) +_(R_IA_64_DTPREL32MSB, 0xB4) +_(R_IA_64_DTPREL32LSB, 0xB5) +_(R_IA_64_DTPREL64MSB, 0xB6) +_(R_IA_64_DTPREL64LSB, 0xB7) +_(R_IA_64_LTOFF_DTPREL22, 0xBA) +') + +define(`DEFINE_MIPS_RELOCATIONS',` +_(R_MIPS_NONE, 0) +_(R_MIPS_16, 1) +_(R_MIPS_32, 2) +_(R_MIPS_REL32, 3) +_(R_MIPS_26, 4) +_(R_MIPS_HI16, 5) +_(R_MIPS_LO16, 6) +_(R_MIPS_GPREL16, 7) +_(R_MIPS_LITERAL, 8) +_(R_MIPS_GOT16, 9) +_(R_MIPS_PC16, 10) +_(R_MIPS_CALL16, 11) +_(R_MIPS_GPREL32, 12) +_(R_MIPS_SHIFT5, 16) +_(R_MIPS_SHIFT6, 17) +_(R_MIPS_64, 18) +_(R_MIPS_GOT_DISP, 19) +_(R_MIPS_GOT_PAGE, 20) +_(R_MIPS_GOT_OFST, 21) +_(R_MIPS_GOT_HI16, 22) +_(R_MIPS_GOT_LO16, 23) +_(R_MIPS_SUB, 24) +_(R_MIPS_CALLHI16, 30) +_(R_MIPS_CALLLO16, 31) +_(R_MIPS_JALR, 37) +_(R_MIPS_TLS_DTPMOD32, 38) +_(R_MIPS_TLS_DTPREL32, 39) +_(R_MIPS_TLS_DTPMOD64, 40) +_(R_MIPS_TLS_DTPREL64, 41) +_(R_MIPS_TLS_GD, 42) +_(R_MIPS_TLS_LDM, 43) +_(R_MIPS_TLS_DTPREL_HI16, 44) +_(R_MIPS_TLS_DTPREL_LO16, 45) +_(R_MIPS_TLS_GOTTPREL, 46) +_(R_MIPS_TLS_TPREL32, 47) +_(R_MIPS_TLS_TPREL64, 48) +_(R_MIPS_TLS_TPREL_HI16, 49) +_(R_MIPS_TLS_TPREL_LO16, 50) +') + +define(`DEFINE_PPC32_RELOCATIONS',` +_(R_PPC_NONE, 0) +_(R_PPC_ADDR32, 1) +_(R_PPC_ADDR24, 2) +_(R_PPC_ADDR16, 3) +_(R_PPC_ADDR16_LO, 4) +_(R_PPC_ADDR16_HI, 5) +_(R_PPC_ADDR16_HA, 6) +_(R_PPC_ADDR14, 7) +_(R_PPC_ADDR14_BRTAKEN, 8) +_(R_PPC_ADDR14_BRNTAKEN, 9) +_(R_PPC_REL24, 10) +_(R_PPC_REL14, 11) +_(R_PPC_REL14_BRTAKEN, 12) +_(R_PPC_REL14_BRNTAKEN, 13) +_(R_PPC_GOT16, 14) +_(R_PPC_GOT16_LO, 15) +_(R_PPC_GOT16_HI, 16) +_(R_PPC_GOT16_HA, 17) +_(R_PPC_PLTREL24, 18) +_(R_PPC_COPY, 19) +_(R_PPC_GLOB_DAT, 20) +_(R_PPC_JMP_SLOT, 21) +_(R_PPC_RELATIVE, 22) +_(R_PPC_LOCAL24PC, 23) +_(R_PPC_UADDR32, 24) +_(R_PPC_UADDR16, 25) +_(R_PPC_REL32, 26) +_(R_PPC_PLT32, 27) +_(R_PPC_PLTREL32, 28) +_(R_PPC_PLT16_LO, 29) +_(R_PPC_PLT16_HI, 30) +_(R_PPC_PLT16_HA, 31) +_(R_PPC_SDAREL16, 32) +_(R_PPC_SECTOFF, 33) +_(R_PPC_SECTOFF_LO, 34) +_(R_PPC_SECTOFF_HI, 35) +_(R_PPC_SECTOFF_HA, 36) +_(R_PPC_ADDR30, 37) +_(R_PPC_TLS, 67) +_(R_PPC_DTPMOD32, 68) +_(R_PPC_TPREL16, 69) +_(R_PPC_TPREL16_LO, 70) +_(R_PPC_TPREL16_HI, 71) +_(R_PPC_TPREL16_HA, 72) +_(R_PPC_TPREL32, 73) +_(R_PPC_DTPREL16, 74) +_(R_PPC_DTPREL16_LO, 75) +_(R_PPC_DTPREL16_HI, 76) +_(R_PPC_DTPREL16_HA, 77) +_(R_PPC_DTPREL32, 78) +_(R_PPC_GOT_TLSGD16, 79) +_(R_PPC_GOT_TLSGD16_LO, 80) +_(R_PPC_GOT_TLSGD16_HI, 81) +_(R_PPC_GOT_TLSGD16_HA, 82) +_(R_PPC_GOT_TLSLD16, 83) +_(R_PPC_GOT_TLSLD16_LO, 84) +_(R_PPC_GOT_TLSLD16_HI, 85) +_(R_PPC_GOT_TLSLD16_HA, 86) +_(R_PPC_GOT_TPREL16, 87) +_(R_PPC_GOT_TPREL16_LO, 88) +_(R_PPC_GOT_TPREL16_HI, 89) +_(R_PPC_GOT_TPREL16_HA, 90) +_(R_PPC_GOT_DTPREL16, 91) +_(R_PPC_GOT_DTPREL16_LO, 92) +_(R_PPC_GOT_DTPREL16_HI, 93) +_(R_PPC_GOT_DTPREL16_HA, 94) +_(R_PPC_TLSGD, 95) +_(R_PPC_TLSLD, 96) +_(R_PPC_EMB_NADDR32, 101) +_(R_PPC_EMB_NADDR16, 102) +_(R_PPC_EMB_NADDR16_LO, 103) +_(R_PPC_EMB_NADDR16_HI, 104) +_(R_PPC_EMB_NADDR16_HA, 105) +_(R_PPC_EMB_SDAI16, 106) +_(R_PPC_EMB_SDA2I16, 107) +_(R_PPC_EMB_SDA2REL, 108) +_(R_PPC_EMB_SDA21, 109) +_(R_PPC_EMB_MRKREF, 110) +_(R_PPC_EMB_RELSEC16, 111) +_(R_PPC_EMB_RELST_LO, 112) +_(R_PPC_EMB_RELST_HI, 113) +_(R_PPC_EMB_RELST_HA, 114) +_(R_PPC_EMB_BIT_FLD, 115) +_(R_PPC_EMB_RELSDA, 116) +') + +define(`DEFINE_PPC64_RELOCATIONS',` +_(R_PPC64_NONE, 0) +_(R_PPC64_ADDR32, 1) +_(R_PPC64_ADDR24, 2) +_(R_PPC64_ADDR16, 3) +_(R_PPC64_ADDR16_LO, 4) +_(R_PPC64_ADDR16_HI, 5) +_(R_PPC64_ADDR16_HA, 6) +_(R_PPC64_ADDR14, 7) +_(R_PPC64_ADDR14_BRTAKEN, 8) +_(R_PPC64_ADDR14_BRNTAKEN, 9) +_(R_PPC64_REL24, 10) +_(R_PPC64_REL14, 11) +_(R_PPC64_REL14_BRTAKEN, 12) +_(R_PPC64_REL14_BRNTAKEN, 13) +_(R_PPC64_GOT16, 14) +_(R_PPC64_GOT16_LO, 15) +_(R_PPC64_GOT16_HI, 16) +_(R_PPC64_GOT16_HA, 17) +_(R_PPC64_COPY, 19) +_(R_PPC64_GLOB_DAT, 20) +_(R_PPC64_JMP_SLOT, 21) +_(R_PPC64_RELATIVE, 22) +_(R_PPC64_UADDR32, 24) +_(R_PPC64_UADDR16, 25) +_(R_PPC64_REL32, 26) +_(R_PPC64_PLT32, 27) +_(R_PPC64_PLTREL32, 28) +_(R_PPC64_PLT16_LO, 29) +_(R_PPC64_PLT16_HI, 30) +_(R_PPC64_PLT16_HA, 31) +_(R_PPC64_SECTOFF, 33) +_(R_PPC64_SECTOFF_LO, 34) +_(R_PPC64_SECTOFF_HI, 35) +_(R_PPC64_SECTOFF_HA, 36) +_(R_PPC64_ADDR30, 37) +_(R_PPC64_ADDR64, 38) +_(R_PPC64_ADDR16_HIGHER, 39) +_(R_PPC64_ADDR16_HIGHERA, 40) +_(R_PPC64_ADDR16_HIGHEST, 41) +_(R_PPC64_ADDR16_HIGHESTA, 42) +_(R_PPC64_UADDR64, 43) +_(R_PPC64_REL64, 44) +_(R_PPC64_PLT64, 45) +_(R_PPC64_PLTREL64, 46) +_(R_PPC64_TOC16, 47) +_(R_PPC64_TOC16_LO, 48) +_(R_PPC64_TOC16_HI, 49) +_(R_PPC64_TOC16_HA, 50) +_(R_PPC64_TOC, 51) +_(R_PPC64_PLTGOT16, 52) +_(R_PPC64_PLTGOT16_LO, 53) +_(R_PPC64_PLTGOT16_HI, 54) +_(R_PPC64_PLTGOT16_HA, 55) +_(R_PPC64_ADDR16_DS, 56) +_(R_PPC64_ADDR16_LO_DS, 57) +_(R_PPC64_GOT16_DS, 58) +_(R_PPC64_GOT16_LO_DS, 59) +_(R_PPC64_PLT16_LO_DS, 60) +_(R_PPC64_SECTOFF_DS, 61) +_(R_PPC64_SECTOFF_LO_DS, 62) +_(R_PPC64_TOC16_DS, 63) +_(R_PPC64_TOC16_LO_DS, 64) +_(R_PPC64_PLTGOT16_DS, 65) +_(R_PPC64_PLTGOT16_LO_DS, 66) +_(R_PPC64_TLS, 67) +_(R_PPC64_DTPMOD64, 68) +_(R_PPC64_TPREL16, 69) +_(R_PPC64_TPREL16_LO, 60) +_(R_PPC64_TPREL16_HI, 71) +_(R_PPC64_TPREL16_HA, 72) +_(R_PPC64_TPREL64, 73) +_(R_PPC64_DTPREL16, 74) +_(R_PPC64_DTPREL16_LO, 75) +_(R_PPC64_DTPREL16_HI, 76) +_(R_PPC64_DTPREL16_HA, 77) +_(R_PPC64_DTPREL64, 78) +_(R_PPC64_GOT_TLSGD16, 79) +_(R_PPC64_GOT_TLSGD16_LO, 80) +_(R_PPC64_GOT_TLSGD16_HI, 81) +_(R_PPC64_GOT_TLSGD16_HA, 82) +_(R_PPC64_GOT_TLSLD16, 83) +_(R_PPC64_GOT_TLSLD16_LO, 84) +_(R_PPC64_GOT_TLSLD16_HI, 85) +_(R_PPC64_GOT_TLSLD16_HA, 86) +_(R_PPC64_GOT_TPREL16_DS, 87) +_(R_PPC64_GOT_TPREL16_LO_DS, 88) +_(R_PPC64_GOT_TPREL16_HI, 89) +_(R_PPC64_GOT_TPREL16_HA, 90) +_(R_PPC64_GOT_DTPREL16_DS, 91) +_(R_PPC64_GOT_DTPREL16_LO_DS, 92) +_(R_PPC64_GOT_DTPREL16_HI, 93) +_(R_PPC64_GOT_DTPREL16_HA, 94) +_(R_PPC64_TPREL16_DS, 95) +_(R_PPC64_TPREL16_LO_DS, 96) +_(R_PPC64_TPREL16_HIGHER, 97) +_(R_PPC64_TPREL16_HIGHERA, 98) +_(R_PPC64_TPREL16_HIGHEST, 99) +_(R_PPC64_TPREL16_HIGHESTA, 100) +_(R_PPC64_DTPREL16_DS, 101) +_(R_PPC64_DTPREL16_LO_DS, 102) +_(R_PPC64_DTPREL16_HIGHER, 103) +_(R_PPC64_DTPREL16_HIGHERA, 104) +_(R_PPC64_DTPREL16_HIGHEST, 105) +_(R_PPC64_DTPREL16_HIGHESTA, 106) +_(R_PPC64_TLSGD, 107) +_(R_PPC64_TLSLD, 108) +') + +define(`DEFINE_RISCV_RELOCATIONS',` +_(R_RISCV_NONE, 0) +_(R_RISCV_32, 1) +_(R_RISCV_64, 2) +_(R_RISCV_RELATIVE, 3) +_(R_RISCV_COPY, 4) +_(R_RISCV_JUMP_SLOT, 5) +_(R_RISCV_TLS_DTPMOD32, 6) +_(R_RISCV_TLS_DTPMOD64, 7) +_(R_RISCV_TLS_DTPREL32, 8) +_(R_RISCV_TLS_DTPREL64, 9) +_(R_RISCV_TLS_TPREL32, 10) +_(R_RISCV_TLS_TPREL64, 11) +_(R_RISCV_BRANCH, 16) +_(R_RISCV_JAL, 17) +_(R_RISCV_CALL, 18) +_(R_RISCV_CALL_PLT, 19) +_(R_RISCV_GOT_HI20, 20) +_(R_RISCV_TLS_GOT_HI20, 21) +_(R_RISCV_TLS_GD_HI20, 22) +_(R_RISCV_PCREL_HI20, 23) +_(R_RISCV_PCREL_LO12_I, 24) +_(R_RISCV_PCREL_LO12_S, 25) +_(R_RISCV_HI20, 26) +_(R_RISCV_LO12_I, 27) +_(R_RISCV_LO12_S, 28) +_(R_RISCV_TPREL_HI20, 29) +_(R_RISCV_TPREL_LO12_I, 30) +_(R_RISCV_TPREL_LO12_S, 31) +_(R_RISCV_TPREL_ADD, 32) +_(R_RISCV_ADD8, 33) +_(R_RISCV_ADD16, 34) +_(R_RISCV_ADD32, 35) +_(R_RISCV_ADD64, 36) +_(R_RISCV_SUB8, 37) +_(R_RISCV_SUB16, 38) +_(R_RISCV_SUB32, 39) +_(R_RISCV_SUB64, 40) +_(R_RISCV_GNU_VTINHERIT, 41) +_(R_RISCV_GNU_VTENTRY, 42) +_(R_RISCV_ALIGN, 43) +_(R_RISCV_RVC_BRANCH, 44) +_(R_RISCV_RVC_JUMP, 45) +_(R_RISCV_RVC_LUI, 46) +_(R_RISCV_GPREL_I, 47) +_(R_RISCV_GPREL_S, 48) +_(R_RISCV_TPREL_I, 49) +_(R_RISCV_TPREL_S, 50) +_(R_RISCV_RELAX, 51) +_(R_RISCV_SUB6, 52) +_(R_RISCV_SET6, 53) +_(R_RISCV_SET8, 54) +_(R_RISCV_SET16, 55) +_(R_RISCV_SET32, 56) +_(R_RISCV_32_PCREL, 57) +_(R_RISCV_IRELATIVE, 58) +') + +define(`DEFINE_SPARC_RELOCATIONS',` +_(R_SPARC_NONE, 0) +_(R_SPARC_8, 1) +_(R_SPARC_16, 2) +_(R_SPARC_32, 3) +_(R_SPARC_DISP8, 4) +_(R_SPARC_DISP16, 5) +_(R_SPARC_DISP32, 6) +_(R_SPARC_WDISP30, 7) +_(R_SPARC_WDISP22, 8) +_(R_SPARC_HI22, 9) +_(R_SPARC_22, 10) +_(R_SPARC_13, 11) +_(R_SPARC_LO10, 12) +_(R_SPARC_GOT10, 13) +_(R_SPARC_GOT13, 14) +_(R_SPARC_GOT22, 15) +_(R_SPARC_PC10, 16) +_(R_SPARC_PC22, 17) +_(R_SPARC_WPLT30, 18) +_(R_SPARC_COPY, 19) +_(R_SPARC_GLOB_DAT, 20) +_(R_SPARC_JMP_SLOT, 21) +_(R_SPARC_RELATIVE, 22) +_(R_SPARC_UA32, 23) +_(R_SPARC_PLT32, 24) +_(R_SPARC_HIPLT22, 25) +_(R_SPARC_LOPLT10, 26) +_(R_SPARC_PCPLT32, 27) +_(R_SPARC_PCPLT22, 28) +_(R_SPARC_PCPLT10, 29) +_(R_SPARC_10, 30) +_(R_SPARC_11, 31) +_(R_SPARC_64, 32) +_(R_SPARC_OLO10, 33) +_(R_SPARC_HH22, 34) +_(R_SPARC_HM10, 35) +_(R_SPARC_LM22, 36) +_(R_SPARC_PC_HH22, 37) +_(R_SPARC_PC_HM10, 38) +_(R_SPARC_PC_LM22, 39) +_(R_SPARC_WDISP16, 40) +_(R_SPARC_WDISP19, 41) +_(R_SPARC_GLOB_JMP, 42) +_(R_SPARC_7, 43) +_(R_SPARC_5, 44) +_(R_SPARC_6, 45) +_(R_SPARC_DISP64, 46) +_(R_SPARC_PLT64, 47) +_(R_SPARC_HIX22, 48) +_(R_SPARC_LOX10, 49) +_(R_SPARC_H44, 50) +_(R_SPARC_M44, 51) +_(R_SPARC_L44, 52) +_(R_SPARC_REGISTER, 53) +_(R_SPARC_UA64, 54) +_(R_SPARC_UA16, 55) +_(R_SPARC_TLS_GD_HI22, 56) +_(R_SPARC_TLS_GD_LO10, 57) +_(R_SPARC_TLS_GD_ADD, 58) +_(R_SPARC_TLS_GD_CALL, 59) +_(R_SPARC_TLS_LDM_HI22, 60) +_(R_SPARC_TLS_LDM_LO10, 61) +_(R_SPARC_TLS_LDM_ADD, 62) +_(R_SPARC_TLS_LDM_CALL, 63) +_(R_SPARC_TLS_LDO_HIX22, 64) +_(R_SPARC_TLS_LDO_LOX10, 65) +_(R_SPARC_TLS_LDO_ADD, 66) +_(R_SPARC_TLS_IE_HI22, 67) +_(R_SPARC_TLS_IE_LO10, 68) +_(R_SPARC_TLS_IE_LD, 69) +_(R_SPARC_TLS_IE_LDX, 70) +_(R_SPARC_TLS_IE_ADD, 71) +_(R_SPARC_TLS_LE_HIX22, 72) +_(R_SPARC_TLS_LE_LOX10, 73) +_(R_SPARC_TLS_DTPMOD32, 74) +_(R_SPARC_TLS_DTPMOD64, 75) +_(R_SPARC_TLS_DTPOFF32, 76) +_(R_SPARC_TLS_DTPOFF64, 77) +_(R_SPARC_TLS_TPOFF32, 78) +_(R_SPARC_TLS_TPOFF64, 79) +_(R_SPARC_GOTDATA_HIX22, 80) +_(R_SPARC_GOTDATA_LOX10, 81) +_(R_SPARC_GOTDATA_OP_HIX22, 82) +_(R_SPARC_GOTDATA_OP_LOX10, 83) +_(R_SPARC_GOTDATA_OP, 84) +_(R_SPARC_H34, 85) +') + +define(`DEFINE_X86_64_RELOCATIONS',` +_(R_X86_64_NONE, 0) +_(R_X86_64_64, 1) +_(R_X86_64_PC32, 2) +_(R_X86_64_GOT32, 3) +_(R_X86_64_PLT32, 4) +_(R_X86_64_COPY, 5) +_(R_X86_64_GLOB_DAT, 6) +_(R_X86_64_JUMP_SLOT, 7) +_(R_X86_64_RELATIVE, 8) +_(R_X86_64_GOTPCREL, 9) +_(R_X86_64_32, 10) +_(R_X86_64_32S, 11) +_(R_X86_64_16, 12) +_(R_X86_64_PC16, 13) +_(R_X86_64_8, 14) +_(R_X86_64_PC8, 15) +_(R_X86_64_DTPMOD64, 16) +_(R_X86_64_DTPOFF64, 17) +_(R_X86_64_TPOFF64, 18) +_(R_X86_64_TLSGD, 19) +_(R_X86_64_TLSLD, 20) +_(R_X86_64_DTPOFF32, 21) +_(R_X86_64_GOTTPOFF, 22) +_(R_X86_64_TPOFF32, 23) +_(R_X86_64_PC64, 24) +_(R_X86_64_GOTOFF64, 25) +_(R_X86_64_GOTPC32, 26) +_(R_X86_64_GOT64, 27) +_(R_X86_64_GOTPCREL64, 28) +_(R_X86_64_GOTPC64, 29) +_(R_X86_64_GOTPLT64, 30) +_(R_X86_64_PLTOFF64, 31) +_(R_X86_64_SIZE32, 32) +_(R_X86_64_SIZE64, 33) +_(R_X86_64_GOTPC32_TLSDESC, 34) +_(R_X86_64_TLSDESC_CALL, 35) +_(R_X86_64_TLSDESC, 36) +_(R_X86_64_IRELATIVE, 37) +_(R_X86_64_RELATIVE64, 38) +_(R_X86_64_GOTPCRELX, 41) +_(R_X86_64_REX_GOTPCRELX, 42) +') + +define(`DEFINE_RELOCATIONS',` +DEFINE_386_RELOCATIONS() +DEFINE_AARCH64_RELOCATIONS() +DEFINE_AMD64_RELOCATIONS() +DEFINE_ARM_RELOCATIONS() +DEFINE_IA64_RELOCATIONS() +DEFINE_MIPS_RELOCATIONS() +DEFINE_PPC32_RELOCATIONS() +DEFINE_PPC64_RELOCATIONS() +DEFINE_RISCV_RELOCATIONS() +DEFINE_SPARC_RELOCATIONS() +DEFINE_X86_64_RELOCATIONS() +') + +define(`DEFINE_LL_FLAGS',` +_(LL_NONE, 0, + `no flags') +_(LL_EXACT_MATCH, 0x1, + `require an exact match') +_(LL_IGNORE_INT_VER, 0x2, + `ignore version incompatibilities') +_(LL_REQUIRE_MINOR, 0x4, + `') +_(LL_EXPORTS, 0x8, + `') +_(LL_DELAY_LOAD, 0x10, + `') +_(LL_DELTA, 0x20, + `') +') + +# +# Note tags +# +define(`DEFINE_NOTE_ENTRY_TYPES',` +_(NT_ABI_TAG, 1, + `Tag indicating the ABI') +_(NT_GNU_HWCAP, 2, + `Hardware capabilities') +_(NT_GNU_BUILD_ID, 3, + `Build id, set by ld(1)') +_(NT_GNU_GOLD_VERSION, 4, + `Version number of the GNU gold linker') +_(NT_PRSTATUS, 1, + `Process status') +_(NT_FPREGSET, 2, + `Floating point information') +_(NT_PRPSINFO, 3, + `Process information') +_(NT_AUXV, 6, + `Auxiliary vector') +_(NT_PRXFPREG, 0x46E62B7FUL, + `Linux user_xfpregs structure') +_(NT_PSTATUS, 10, + `Linux process status') +_(NT_FPREGS, 12, + `Linux floating point regset') +_(NT_PSINFO, 13, + `Linux process information') +_(NT_LWPSTATUS, 16, + `Linux lwpstatus_t type') +_(NT_LWPSINFO, 17, + `Linux lwpinfo_t type') +_(NT_FREEBSD_NOINIT_TAG, 2, + `FreeBSD no .init tag') +_(NT_FREEBSD_ARCH_TAG, 3, + `FreeBSD arch tag') +_(NT_FREEBSD_FEATURE_CTL, 4, + `FreeBSD feature control') +') + +# Aliases for the ABI tag. +define(`DEFINE_NOTE_ENTRY_ALIASES',` +_(NT_FREEBSD_ABI_TAG, NT_ABI_TAG) +_(NT_GNU_ABI_TAG, NT_ABI_TAG) +_(NT_NETBSD_IDENT, NT_ABI_TAG) +_(NT_OPENBSD_IDENT, NT_ABI_TAG) +') + +# +# Option kinds. +# +define(`DEFINE_OPTION_KINDS',` +_(ODK_NULL, 0, + `undefined') +_(ODK_REGINFO, 1, + `register usage info') +_(ODK_EXCEPTIONS, 2, + `exception processing info') +_(ODK_PAD, 3, + `section padding') +_(ODK_HWPATCH, 4, + `hardware patch applied') +_(ODK_FILL, 5, + `fill value used by linker') +_(ODK_TAGS, 6, + `reserved space for tools') +_(ODK_HWAND, 7, + `hardware AND patch applied') +_(ODK_HWOR, 8, + `hardware OR patch applied') +_(ODK_GP_GROUP, 9, + `GP group to use for text/data sections') +_(ODK_IDENT, 10, + `ID information') +_(ODK_PAGESIZE, 11, + `page size information') +') + +# +# ODK_EXCEPTIONS info field masks. +# +define(`DEFINE_OPTION_EXCEPTIONS',` +_(OEX_FPU_MIN, 0x0000001FUL, + `minimum FPU exception which must be enabled') +_(OEX_FPU_MAX, 0x00001F00UL, + `maximum FPU exception which can be enabled') +_(OEX_PAGE0, 0x00010000UL, + `page zero must be mapped') +_(OEX_SMM, 0x00020000UL, + `run in sequential memory mode') +_(OEX_PRECISEFP, 0x00040000UL, + `run in precise FP exception mode') +_(OEX_DISMISS, 0x00080000UL, + `dismiss invalid address traps') +') + +# +# ODK_PAD info field masks. +# +define(`DEFINE_OPTION_PADS',` +_(OPAD_PREFIX, 0x0001) +_(OPAD_POSTFIX, 0x0002) +_(OPAD_SYMBOL, 0x0004) +') + +# +# ODK_HWPATCH info field masks and ODK_HWAND/ODK_HWOR +# info field and hwp_flags[12] masks. +# +define(`DEFINE_ODK_HWPATCH_MASKS',` +_(OHW_R4KEOP, 0x00000001UL, + `patch for R4000 branch at end-of-page bug') +_(OHW_R8KPFETCH, 0x00000002UL, + `R8000 prefetch bug may occur') +_(OHW_R5KEOP, 0x00000004UL, + `patch for R5000 branch at end-of-page bug') +_(OHW_R5KCVTL, 0x00000008UL, + `R5000 cvt.[ds].l bug: clean == 1') +_(OHW_R10KLDL, 0x00000010UL, + `need patch for R10000 misaligned load') +_(OHWA0_R4KEOP_CHECKED, 0x00000001UL, + `object checked for R4000 end-of-page bug') +_(OHWA0_R4KEOP_CLEAN, 0x00000002UL, + `object verified clean for R4000 end-of-page bug') +_(OHWO0_FIXADE, 0x00000001UL, + `object requires call to fixade') +') + +# +# ODK_IDENT/ODK_GP_GROUP info field masks. +# +define(`DEFINE_ODK_GP_MASKS',` +_(OGP_GROUP, 0x0000FFFFUL, + `GP group number') +_(OGP_SELF, 0x00010000UL, + `GP group is self-contained') +') + +# MIPS ABI related constants. +define(`DEFINE_MIPS_ABIS',` +_(E_MIPS_ABI_O32, 0x00001000, + `MIPS 32 bit ABI (UCODE)') +_(E_MIPS_ABI_O64, 0x00002000, + `UCODE MIPS 64 bit ABI') +_(E_MIPS_ABI_EABI32, 0x00003000, + `Embedded ABI for 32-bit') +_(E_MIPS_ABI_EABI64, 0x00004000, + `Embedded ABI for 64-bit') +') diff --git a/contrib/elftoolchain/common/sys/elfdefinitions.m4 b/contrib/elftoolchain/common/sys/elfdefinitions.m4 new file mode 100644 index 00000000..435afe1c --- /dev/null +++ b/contrib/elftoolchain/common/sys/elfdefinitions.m4 @@ -0,0 +1,712 @@ +/*- + * Copyright (c) 2010,2021 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +divert(-1) +define(`VCSID_ELFDEFINITIONS_M4', + `$Id$') +include(`elfconstants.m4')dnl + +define(`_', `#define $1 $2') +divert(0)dnl + +/* + * WARNING: GENERATED FILE. DO NOT MODIFY. + * + * GENERATED FROM: VCSID_ELFDEFINITIONS_M4 + * GENERATED FROM: VCSID_ELFCONSTANTS_M4 + */ + +/* + * These definitions are based on: + * - The public specification of the ELF format as defined in the + * October 2009 draft of System V ABI. + * See: http://www.sco.com/developers/gabi/latest/ch4.intro.html + * - The May 1998 (version 1.5) draft of "The ELF-64 object format". + * - Processor-specific ELF ABI definitions for sparc, i386, amd64, mips, + * ia64, powerpc, and RISC-V processors. + * - The "Linkers and Libraries Guide", from Sun Microsystems. + */ + +#ifndef _SYS_ELFDEFINITIONS_H_ +#define _SYS_ELFDEFINITIONS_H_ + +#include + +/* + * Types of capabilities. + */ +DEFINE_CAPABILITIES() + +/* + * Flags used with dynamic linking entries. + */ +DEFINE_DYN_FLAGS() + +/* + * Dynamic linking entry types. + */ +DEFINE_DYN_TYPES() + +/* Aliases for dynamic linking entry symbols. */ +DEFINE_DYN_TYPE_ALIASES() + +/* + * Flags used in the executable header (field: e_flags). + */ +DEFINE_EHDR_FLAGS() + +/* + * Offsets in the `ei_ident[]' field of an ELF executable header. + */ +DEFINE_EI_OFFSETS() + +/* + * The ELF class of an object. + */ +DEFINE_ELF_CLASSES() + +/* + * Endianness of data in an ELF object. + */ +DEFINE_ELF_DATA_ENDIANNESSES() + +/* + * Values of the magic numbers used in identification array. + */ +DEFINE_ELF_MAGIC_VALUES() + +/* + * ELF OS ABI field. + */ +DEFINE_ELF_OSABIS() + +/* OS ABI Aliases. */ +DEFINE_ELF_OSABI_ALIASES() + +/* + * ELF Machine types: (EM_*). + */ +DEFINE_ELF_MACHINE_TYPES() +/* Other synonyms. */ +DEFINE_ELF_MACHINE_TYPE_SYNONYMS() + +/* + * ELF file types: (ET_*). + */ +DEFINE_ELF_TYPES() + +/* ELF file format version numbers. */ +DEFINE_ELF_FILE_VERSIONS() + +/* + * Flags for section groups. + */ +DEFINE_GRP_FLAGS() + +/* + * Flags / mask for .gnu.versym sections. + */ +DEFINE_VERSYMS() + +/* + * Flags used by program header table entries. + */ +DEFINE_PHDR_FLAGS() + +/* + * Types of program header table entries. + */ +DEFINE_PHDR_TYPES() +/* synonyms. */ +DEFINE_PHDR_TYPE_SYNONYMS() + +/* + * Section flags. + */ +DEFINE_SECTION_FLAGS() + +/* + * Special section indices. + */ +DEFINE_SECTION_INDICES() + +/* + * Section types. + */ +DEFINE_SECTION_TYPES() +/* Aliases for section types. */ +DEFINE_SECTION_TYPE_ALIASES() + +#define PN_XNUM 0xFFFFU /* Use extended section numbering. */ + +/* + * Symbol binding information. + */ +DEFINE_SYMBOL_BINDINGS() + +/* + * Symbol types + */ +DEFINE_SYMBOL_TYPES() + +/* + * Symbol binding. + */ +DEFINE_SYMBOL_BINDING_KINDS() + +/* + * Symbol visibility. + */ +DEFINE_SYMBOL_VISIBILITIES() + +/* + * Symbol flags. + */ +DEFINE_SYMBOL_FLAGS() + +/* + * Versioning dependencies. + */ +DEFINE_VERSIONING_DEPENDENCIES() + +/* + * Versioning flags. + */ +DEFINE_VERSIONING_FLAGS() + +/* + * Versioning needs + */ +DEFINE_VERSIONING_NEEDS() + +/* + * Versioning numbers. + */ +DEFINE_VERSIONING_NUMBERS() + +/** + ** Relocation types. + **/ +DEFINE_RELOCATIONS() + +/* + * MIPS ABI related. + */ +DEFINE_MIPS_ABIS() + +/** + ** ELF Types. + **/ + +typedef uint32_t Elf32_Addr; /* Program address. */ +typedef uint8_t Elf32_Byte; /* Unsigned tiny integer. */ +typedef uint16_t Elf32_Half; /* Unsigned medium integer. */ +typedef uint32_t Elf32_Off; /* File offset. */ +typedef uint16_t Elf32_Section; /* Section index. */ +typedef int32_t Elf32_Sword; /* Signed integer. */ +typedef uint32_t Elf32_Word; /* Unsigned integer. */ +typedef uint64_t Elf32_Lword; /* Unsigned long integer. */ + +typedef uint64_t Elf64_Addr; /* Program address. */ +typedef uint8_t Elf64_Byte; /* Unsigned tiny integer. */ +typedef uint16_t Elf64_Half; /* Unsigned medium integer. */ +typedef uint64_t Elf64_Off; /* File offset. */ +typedef uint16_t Elf64_Section; /* Section index. */ +typedef int32_t Elf64_Sword; /* Signed integer. */ +typedef uint32_t Elf64_Word; /* Unsigned integer. */ +typedef uint64_t Elf64_Lword; /* Unsigned long integer. */ +typedef uint64_t Elf64_Xword; /* Unsigned long integer. */ +typedef int64_t Elf64_Sxword; /* Signed long integer. */ + + +/* + * Capability descriptors. + */ + +/* 32-bit capability descriptor. */ +typedef struct { + Elf32_Word c_tag; /* Type of entry. */ + union { + Elf32_Word c_val; /* Integer value. */ + Elf32_Addr c_ptr; /* Pointer value. */ + } c_un; +} Elf32_Cap; + +/* 64-bit capability descriptor. */ +typedef struct { + Elf64_Xword c_tag; /* Type of entry. */ + union { + Elf64_Xword c_val; /* Integer value. */ + Elf64_Addr c_ptr; /* Pointer value. */ + } c_un; +} Elf64_Cap; + +/* + * MIPS .conflict section entries. + */ + +/* 32-bit entry. */ +typedef struct { + Elf32_Addr c_index; +} Elf32_Conflict; + +/* 64-bit entry. */ +typedef struct { + Elf64_Addr c_index; +} Elf64_Conflict; + +/* + * Dynamic section entries. + */ + +/* 32-bit entry. */ +typedef struct { + Elf32_Sword d_tag; /* Type of entry. */ + union { + Elf32_Word d_val; /* Integer value. */ + Elf32_Addr d_ptr; /* Pointer value. */ + } d_un; +} Elf32_Dyn; + +/* 64-bit entry. */ +typedef struct { + Elf64_Sxword d_tag; /* Type of entry. */ + union { + Elf64_Xword d_val; /* Integer value. */ + Elf64_Addr d_ptr; /* Pointer value; */ + } d_un; +} Elf64_Dyn; + + +/* + * The executable header (EHDR). + */ + +/* 32 bit EHDR. */ +typedef struct { + unsigned char e_ident[EI_NIDENT]; /* ELF identification. */ + Elf32_Half e_type; /* Object file type (ET_*). */ + Elf32_Half e_machine; /* Machine type (EM_*). */ + Elf32_Word e_version; /* File format version (EV_*). */ + Elf32_Addr e_entry; /* Start address. */ + Elf32_Off e_phoff; /* File offset to the PHDR table. */ + Elf32_Off e_shoff; /* File offset to the SHDRheader. */ + Elf32_Word e_flags; /* Flags (EF_*). */ + Elf32_Half e_ehsize; /* Elf header size in bytes. */ + Elf32_Half e_phentsize; /* PHDR table entry size in bytes. */ + Elf32_Half e_phnum; /* Number of PHDR entries. */ + Elf32_Half e_shentsize; /* SHDR table entry size in bytes. */ + Elf32_Half e_shnum; /* Number of SHDR entries. */ + Elf32_Half e_shstrndx; /* Index of section name string table. */ +} Elf32_Ehdr; + + +/* 64 bit EHDR. */ +typedef struct { + unsigned char e_ident[EI_NIDENT]; /* ELF identification. */ + Elf64_Half e_type; /* Object file type (ET_*). */ + Elf64_Half e_machine; /* Machine type (EM_*). */ + Elf64_Word e_version; /* File format version (EV_*). */ + Elf64_Addr e_entry; /* Start address. */ + Elf64_Off e_phoff; /* File offset to the PHDR table. */ + Elf64_Off e_shoff; /* File offset to the SHDRheader. */ + Elf64_Word e_flags; /* Flags (EF_*). */ + Elf64_Half e_ehsize; /* Elf header size in bytes. */ + Elf64_Half e_phentsize; /* PHDR table entry size in bytes. */ + Elf64_Half e_phnum; /* Number of PHDR entries. */ + Elf64_Half e_shentsize; /* SHDR table entry size in bytes. */ + Elf64_Half e_shnum; /* Number of SHDR entries. */ + Elf64_Half e_shstrndx; /* Index of section name string table. */ +} Elf64_Ehdr; + + +/* + * Shared object information. + */ + +/* 32-bit entry. */ +typedef struct { + Elf32_Word l_name; /* The name of a shared object. */ + Elf32_Word l_time_stamp; /* 32-bit timestamp. */ + Elf32_Word l_checksum; /* Checksum of visible symbols, sizes. */ + Elf32_Word l_version; /* Interface version string index. */ + Elf32_Word l_flags; /* Flags (LL_*). */ +} Elf32_Lib; + +/* 64-bit entry. */ +typedef struct { + Elf64_Word l_name; /* The name of a shared object. */ + Elf64_Word l_time_stamp; /* 32-bit timestamp. */ + Elf64_Word l_checksum; /* Checksum of visible symbols, sizes. */ + Elf64_Word l_version; /* Interface version string index. */ + Elf64_Word l_flags; /* Flags (LL_*). */ +} Elf64_Lib; + +DEFINE_LL_FLAGS() + +/* + * Note tags + */ +DEFINE_NOTE_ENTRY_TYPES() +/* Aliases for the ABI tag. */ +DEFINE_NOTE_ENTRY_ALIASES() + +/* + * Note descriptors. + */ + +typedef struct { + uint32_t n_namesz; /* Length of note's name. */ + uint32_t n_descsz; /* Length of note's value. */ + uint32_t n_type; /* Type of note. */ +} Elf_Note; + +typedef Elf_Note Elf32_Nhdr; /* 32-bit note header. */ +typedef Elf_Note Elf64_Nhdr; /* 64-bit note header. */ + +/* + * MIPS ELF options descriptor header. + */ + +typedef struct { + Elf64_Byte kind; /* Type of options. */ + Elf64_Byte size; /* Size of option descriptor. */ + Elf64_Half section; /* Index of section affected. */ + Elf64_Word info; /* Kind-specific information. */ +} Elf_Options; + +/* + * Option kinds. + */ +DEFINE_OPTION_KINDS() + +/* + * ODK_EXCEPTIONS info field masks. + */ +DEFINE_OPTION_EXCEPTIONS() + +/* + * ODK_PAD info field masks. + */ +DEFINE_OPTION_PADS() + +/* + * ODK_HWPATCH info field masks and ODK_HWAND/ODK_HWOR info field + * and hwp_flags[12] masks. + */ +DEFINE_ODK_HWPATCH_MASKS() + +/* + * ODK_IDENT/ODK_GP_GROUP info field masks. + */ +DEFINE_ODK_GP_MASKS() + +/* + * MIPS ELF register info descriptor. + */ + +/* 32 bit RegInfo entry. */ +typedef struct { + Elf32_Word ri_gprmask; /* Mask of general register used. */ + Elf32_Word ri_cprmask[4]; /* Mask of coprocessor register used. */ + Elf32_Addr ri_gp_value; /* GP register value. */ +} Elf32_RegInfo; + +/* 64 bit RegInfo entry. */ +typedef struct { + Elf64_Word ri_gprmask; /* Mask of general register used. */ + Elf64_Word ri_pad; /* Padding. */ + Elf64_Word ri_cprmask[4]; /* Mask of coprocessor register used. */ + Elf64_Addr ri_gp_value; /* GP register value. */ +} Elf64_RegInfo; + +/* + * Program Header Table (PHDR) entries. + */ + +/* 32 bit PHDR entry. */ +typedef struct { + Elf32_Word p_type; /* Type of segment. */ + Elf32_Off p_offset; /* File offset to segment. */ + Elf32_Addr p_vaddr; /* Virtual address in memory. */ + Elf32_Addr p_paddr; /* Physical address (if relevant). */ + Elf32_Word p_filesz; /* Size of segment in file. */ + Elf32_Word p_memsz; /* Size of segment in memory. */ + Elf32_Word p_flags; /* Segment flags. */ + Elf32_Word p_align; /* Alignment constraints. */ +} Elf32_Phdr; + +/* 64 bit PHDR entry. */ +typedef struct { + Elf64_Word p_type; /* Type of segment. */ + Elf64_Word p_flags; /* Segment flags. */ + Elf64_Off p_offset; /* File offset to segment. */ + Elf64_Addr p_vaddr; /* Virtual address in memory. */ + Elf64_Addr p_paddr; /* Physical address (if relevant). */ + Elf64_Xword p_filesz; /* Size of segment in file. */ + Elf64_Xword p_memsz; /* Size of segment in memory. */ + Elf64_Xword p_align; /* Alignment constraints. */ +} Elf64_Phdr; + + +/* + * Move entries, for describing data in COMMON blocks in a compact + * manner. + */ + +/* 32-bit move entry. */ +typedef struct { + Elf32_Lword m_value; /* Initialization value. */ + Elf32_Word m_info; /* Encoded size and index. */ + Elf32_Word m_poffset; /* Offset relative to symbol. */ + Elf32_Half m_repeat; /* Repeat count. */ + Elf32_Half m_stride; /* Number of units to skip. */ +} Elf32_Move; + +/* 64-bit move entry. */ +typedef struct { + Elf64_Lword m_value; /* Initialization value. */ + Elf64_Xword m_info; /* Encoded size and index. */ + Elf64_Xword m_poffset; /* Offset relative to symbol. */ + Elf64_Half m_repeat; /* Repeat count. */ + Elf64_Half m_stride; /* Number of units to skip. */ +} Elf64_Move; + +#define ELF32_M_SYM(I) ((I) >> 8) +#define ELF32_M_SIZE(I) ((unsigned char) (I)) +#define ELF32_M_INFO(M, S) (((M) << 8) + (unsigned char) (S)) + +#define ELF64_M_SYM(I) ((I) >> 8) +#define ELF64_M_SIZE(I) ((unsigned char) (I)) +#define ELF64_M_INFO(M, S) (((M) << 8) + (unsigned char) (S)) + +/* + * Section Header Table (SHDR) entries. + */ + +/* 32 bit SHDR */ +typedef struct { + Elf32_Word sh_name; /* index of section name */ + Elf32_Word sh_type; /* section type */ + Elf32_Word sh_flags; /* section flags */ + Elf32_Addr sh_addr; /* in-memory address of section */ + Elf32_Off sh_offset; /* file offset of section */ + Elf32_Word sh_size; /* section size in bytes */ + Elf32_Word sh_link; /* section header table link */ + Elf32_Word sh_info; /* extra information */ + Elf32_Word sh_addralign; /* alignment constraint */ + Elf32_Word sh_entsize; /* size for fixed-size entries */ +} Elf32_Shdr; + +/* 64 bit SHDR */ +typedef struct { + Elf64_Word sh_name; /* index of section name */ + Elf64_Word sh_type; /* section type */ + Elf64_Xword sh_flags; /* section flags */ + Elf64_Addr sh_addr; /* in-memory address of section */ + Elf64_Off sh_offset; /* file offset of section */ + Elf64_Xword sh_size; /* section size in bytes */ + Elf64_Word sh_link; /* section header table link */ + Elf64_Word sh_info; /* extra information */ + Elf64_Xword sh_addralign; /* alignment constraint */ + Elf64_Xword sh_entsize; /* size for fixed-size entries */ +} Elf64_Shdr; + + +/* + * Symbol table entries. + */ + +typedef struct { + Elf32_Word st_name; /* index of symbol's name */ + Elf32_Addr st_value; /* value for the symbol */ + Elf32_Word st_size; /* size of associated data */ + unsigned char st_info; /* type and binding attributes */ + unsigned char st_other; /* visibility */ + Elf32_Half st_shndx; /* index of related section */ +} Elf32_Sym; + +typedef struct { + Elf64_Word st_name; /* index of symbol's name */ + unsigned char st_info; /* type and binding attributes */ + unsigned char st_other; /* visibility */ + Elf64_Half st_shndx; /* index of related section */ + Elf64_Addr st_value; /* value for the symbol */ + Elf64_Xword st_size; /* size of associated data */ +} Elf64_Sym; + +#define ELF32_ST_BIND(I) ((I) >> 4) +#define ELF32_ST_TYPE(I) ((I) & 0xFU) +#define ELF32_ST_INFO(B,T) (((B) << 4) + ((T) & 0xF)) + +#define ELF64_ST_BIND(I) ((I) >> 4) +#define ELF64_ST_TYPE(I) ((I) & 0xFU) +#define ELF64_ST_INFO(B,T) (((B) << 4) + ((T) & 0xF)) + +#define ELF32_ST_VISIBILITY(O) ((O) & 0x3) +#define ELF64_ST_VISIBILITY(O) ((O) & 0x3) + +/* + * Syminfo descriptors, containing additional symbol information. + */ + +/* 32-bit entry. */ +typedef struct { + Elf32_Half si_boundto; /* Entry index with additional flags. */ + Elf32_Half si_flags; /* Flags. */ +} Elf32_Syminfo; + +/* 64-bit entry. */ +typedef struct { + Elf64_Half si_boundto; /* Entry index with additional flags. */ + Elf64_Half si_flags; /* Flags. */ +} Elf64_Syminfo; + +/* + * Relocation descriptors. + */ + +typedef struct { + Elf32_Addr r_offset; /* location to apply relocation to */ + Elf32_Word r_info; /* type+section for relocation */ +} Elf32_Rel; + +typedef struct { + Elf32_Addr r_offset; /* location to apply relocation to */ + Elf32_Word r_info; /* type+section for relocation */ + Elf32_Sword r_addend; /* constant addend */ +} Elf32_Rela; + +typedef struct { + Elf64_Addr r_offset; /* location to apply relocation to */ + Elf64_Xword r_info; /* type+section for relocation */ +} Elf64_Rel; + +typedef struct { + Elf64_Addr r_offset; /* location to apply relocation to */ + Elf64_Xword r_info; /* type+section for relocation */ + Elf64_Sxword r_addend; /* constant addend */ +} Elf64_Rela; + + +#define ELF32_R_SYM(I) ((I) >> 8) +#define ELF32_R_TYPE(I) ((unsigned char) (I)) +#define ELF32_R_INFO(S,T) (((S) << 8) + (unsigned char) (T)) + +#define ELF64_R_SYM(I) ((I) >> 32) +#define ELF64_R_TYPE(I) ((I) & 0xFFFFFFFFUL) +#define ELF64_R_INFO(S,T) \ + (((Elf64_Xword) (S) << 32) + ((T) & 0xFFFFFFFFUL)) + +/* + * Symbol versioning structures. + */ + +/* 32-bit structures. */ +typedef struct +{ + Elf32_Word vda_name; /* Index to name. */ + Elf32_Word vda_next; /* Offset to next entry. */ +} Elf32_Verdaux; + +typedef struct +{ + Elf32_Word vna_hash; /* Hash value of dependency name. */ + Elf32_Half vna_flags; /* Flags. */ + Elf32_Half vna_other; /* Unused. */ + Elf32_Word vna_name; /* Offset to dependency name. */ + Elf32_Word vna_next; /* Offset to next vernaux entry. */ +} Elf32_Vernaux; + +typedef struct +{ + Elf32_Half vd_version; /* Version information. */ + Elf32_Half vd_flags; /* Flags. */ + Elf32_Half vd_ndx; /* Index into the versym section. */ + Elf32_Half vd_cnt; /* Number of aux entries. */ + Elf32_Word vd_hash; /* Hash value of name. */ + Elf32_Word vd_aux; /* Offset to aux entries. */ + Elf32_Word vd_next; /* Offset to next version definition. */ +} Elf32_Verdef; + +typedef struct +{ + Elf32_Half vn_version; /* Version number. */ + Elf32_Half vn_cnt; /* Number of aux entries. */ + Elf32_Word vn_file; /* Offset of associated file name. */ + Elf32_Word vn_aux; /* Offset of vernaux array. */ + Elf32_Word vn_next; /* Offset of next verneed entry. */ +} Elf32_Verneed; + +typedef Elf32_Half Elf32_Versym; + +/* 64-bit structures. */ + +typedef struct { + Elf64_Word vda_name; /* Index to name. */ + Elf64_Word vda_next; /* Offset to next entry. */ +} Elf64_Verdaux; + +typedef struct { + Elf64_Word vna_hash; /* Hash value of dependency name. */ + Elf64_Half vna_flags; /* Flags. */ + Elf64_Half vna_other; /* Unused. */ + Elf64_Word vna_name; /* Offset to dependency name. */ + Elf64_Word vna_next; /* Offset to next vernaux entry. */ +} Elf64_Vernaux; + +typedef struct { + Elf64_Half vd_version; /* Version information. */ + Elf64_Half vd_flags; /* Flags. */ + Elf64_Half vd_ndx; /* Index into the versym section. */ + Elf64_Half vd_cnt; /* Number of aux entries. */ + Elf64_Word vd_hash; /* Hash value of name. */ + Elf64_Word vd_aux; /* Offset to aux entries. */ + Elf64_Word vd_next; /* Offset to next version definition. */ +} Elf64_Verdef; + +typedef struct { + Elf64_Half vn_version; /* Version number. */ + Elf64_Half vn_cnt; /* Number of aux entries. */ + Elf64_Word vn_file; /* Offset of associated file name. */ + Elf64_Word vn_aux; /* Offset of vernaux array. */ + Elf64_Word vn_next; /* Offset of next verneed entry. */ +} Elf64_Verneed; + +typedef Elf64_Half Elf64_Versym; + + +/* + * The header for GNU-style hash sections. + */ + +typedef struct { + uint32_t gh_nbuckets; /* Number of hash buckets. */ + uint32_t gh_symndx; /* First visible symbol in .dynsym. */ + uint32_t gh_maskwords; /* #maskwords used in bloom filter. */ + uint32_t gh_shift2; /* Bloom filter shift count. */ +} Elf_GNU_Hash_Header; + +#endif /* _SYS_ELFDEFINITIONS_H_ */ diff --git a/contrib/elftoolchain/common/utarray.h b/contrib/elftoolchain/common/utarray.h new file mode 100644 index 00000000..b8a42bdc --- /dev/null +++ b/contrib/elftoolchain/common/utarray.h @@ -0,0 +1,247 @@ +/* +Copyright (c) 2008-2018, Troy D. Hanson http://troydhanson.github.com/uthash/ +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* a dynamic array implementation using macros + */ +#ifndef UTARRAY_H +#define UTARRAY_H + +#define UTARRAY_VERSION 2.1.0 + +#include /* size_t */ +#include /* memset, etc */ +#include /* exit */ + +#ifdef __GNUC__ +#define UTARRAY_UNUSED __attribute__((__unused__)) +#else +#define UTARRAY_UNUSED +#endif + +#ifdef oom +#error "The name of macro 'oom' has been changed to 'utarray_oom'. Please update your code." +#define utarray_oom() oom() +#endif + +#ifndef utarray_oom +#define utarray_oom() exit(-1) +#endif + +typedef void (ctor_f)(void *dst, const void *src); +typedef void (dtor_f)(void *elt); +typedef void (init_f)(void *elt); +typedef struct { + size_t sz; + init_f *init; + ctor_f *copy; + dtor_f *dtor; +} UT_icd; + +typedef struct { + unsigned i,n;/* i: index of next available slot, n: num slots */ + UT_icd icd; /* initializer, copy and destructor functions */ + char *d; /* n slots of size icd->sz*/ +} UT_array; + +#define utarray_init(a,_icd) do { \ + memset(a,0,sizeof(UT_array)); \ + (a)->icd = *(_icd); \ +} while(0) + +#define utarray_done(a) do { \ + if ((a)->n) { \ + if ((a)->icd.dtor) { \ + unsigned _ut_i; \ + for(_ut_i=0; _ut_i < (a)->i; _ut_i++) { \ + (a)->icd.dtor(utarray_eltptr(a,_ut_i)); \ + } \ + } \ + free((a)->d); \ + } \ + (a)->n=0; \ +} while(0) + +#define utarray_new(a,_icd) do { \ + (a) = (UT_array*)malloc(sizeof(UT_array)); \ + if ((a) == NULL) { \ + utarray_oom(); \ + } \ + utarray_init(a,_icd); \ +} while(0) + +#define utarray_free(a) do { \ + utarray_done(a); \ + free(a); \ +} while(0) + +#define utarray_reserve(a,by) do { \ + if (((a)->i+(by)) > (a)->n) { \ + char *utarray_tmp; \ + while (((a)->i+(by)) > (a)->n) { (a)->n = ((a)->n ? (2*(a)->n) : 8); } \ + utarray_tmp=(char*)realloc((a)->d, (a)->n*(a)->icd.sz); \ + if (utarray_tmp == NULL) { \ + utarray_oom(); \ + } \ + (a)->d=utarray_tmp; \ + } \ +} while(0) + +#define utarray_push_back(a,p) do { \ + utarray_reserve(a,1); \ + if ((a)->icd.copy) { (a)->icd.copy( _utarray_eltptr(a,(a)->i++), p); } \ + else { memcpy(_utarray_eltptr(a,(a)->i++), p, (a)->icd.sz); }; \ +} while(0) + +#define utarray_pop_back(a) do { \ + if ((a)->icd.dtor) { (a)->icd.dtor( _utarray_eltptr(a,--((a)->i))); } \ + else { (a)->i--; } \ +} while(0) + +#define utarray_extend_back(a) do { \ + utarray_reserve(a,1); \ + if ((a)->icd.init) { (a)->icd.init(_utarray_eltptr(a,(a)->i)); } \ + else { memset(_utarray_eltptr(a,(a)->i),0,(a)->icd.sz); } \ + (a)->i++; \ +} while(0) + +#define utarray_len(a) ((a)->i) + +#define utarray_eltptr(a,j) (((j) < (a)->i) ? _utarray_eltptr(a,j) : NULL) +#define _utarray_eltptr(a,j) ((void*)((a)->d + ((a)->icd.sz * (j)))) + +#define utarray_insert(a,p,j) do { \ + if ((j) > (a)->i) utarray_resize(a,j); \ + utarray_reserve(a,1); \ + if ((j) < (a)->i) { \ + memmove( _utarray_eltptr(a,(j)+1), _utarray_eltptr(a,j), \ + ((a)->i - (j))*((a)->icd.sz)); \ + } \ + if ((a)->icd.copy) { (a)->icd.copy( _utarray_eltptr(a,j), p); } \ + else { memcpy(_utarray_eltptr(a,j), p, (a)->icd.sz); }; \ + (a)->i++; \ +} while(0) + +#define utarray_inserta(a,w,j) do { \ + if (utarray_len(w) == 0) break; \ + if ((j) > (a)->i) utarray_resize(a,j); \ + utarray_reserve(a,utarray_len(w)); \ + if ((j) < (a)->i) { \ + memmove(_utarray_eltptr(a,(j)+utarray_len(w)), \ + _utarray_eltptr(a,j), \ + ((a)->i - (j))*((a)->icd.sz)); \ + } \ + if ((a)->icd.copy) { \ + unsigned _ut_i; \ + for(_ut_i=0;_ut_i<(w)->i;_ut_i++) { \ + (a)->icd.copy(_utarray_eltptr(a, (j) + _ut_i), _utarray_eltptr(w, _ut_i)); \ + } \ + } else { \ + memcpy(_utarray_eltptr(a,j), _utarray_eltptr(w,0), \ + utarray_len(w)*((a)->icd.sz)); \ + } \ + (a)->i += utarray_len(w); \ +} while(0) + +#define utarray_resize(dst,num) do { \ + unsigned _ut_i; \ + if ((dst)->i > (unsigned)(num)) { \ + if ((dst)->icd.dtor) { \ + for (_ut_i = (num); _ut_i < (dst)->i; ++_ut_i) { \ + (dst)->icd.dtor(_utarray_eltptr(dst, _ut_i)); \ + } \ + } \ + } else if ((dst)->i < (unsigned)(num)) { \ + utarray_reserve(dst, (num) - (dst)->i); \ + if ((dst)->icd.init) { \ + for (_ut_i = (dst)->i; _ut_i < (unsigned)(num); ++_ut_i) { \ + (dst)->icd.init(_utarray_eltptr(dst, _ut_i)); \ + } \ + } else { \ + memset(_utarray_eltptr(dst, (dst)->i), 0, (dst)->icd.sz*((num) - (dst)->i)); \ + } \ + } \ + (dst)->i = (num); \ +} while(0) + +#define utarray_concat(dst,src) do { \ + utarray_inserta(dst, src, utarray_len(dst)); \ +} while(0) + +#define utarray_erase(a,pos,len) do { \ + if ((a)->icd.dtor) { \ + unsigned _ut_i; \ + for (_ut_i = 0; _ut_i < (len); _ut_i++) { \ + (a)->icd.dtor(utarray_eltptr(a, (pos) + _ut_i)); \ + } \ + } \ + if ((a)->i > ((pos) + (len))) { \ + memmove(_utarray_eltptr(a, pos), _utarray_eltptr(a, (pos) + (len)), \ + ((a)->i - ((pos) + (len))) * (a)->icd.sz); \ + } \ + (a)->i -= (len); \ +} while(0) + +#define utarray_renew(a,u) do { \ + if (a) utarray_clear(a); \ + else utarray_new(a, u); \ +} while(0) + +#define utarray_clear(a) do { \ + if ((a)->i > 0) { \ + if ((a)->icd.dtor) { \ + unsigned _ut_i; \ + for(_ut_i=0; _ut_i < (a)->i; _ut_i++) { \ + (a)->icd.dtor(_utarray_eltptr(a, _ut_i)); \ + } \ + } \ + (a)->i = 0; \ + } \ +} while(0) + +#define utarray_sort(a,cmp) do { \ + qsort((a)->d, (a)->i, (a)->icd.sz, cmp); \ +} while(0) + +#define utarray_find(a,v,cmp) bsearch((v),(a)->d,(a)->i,(a)->icd.sz,cmp) + +#define utarray_front(a) (((a)->i) ? (_utarray_eltptr(a,0)) : NULL) +#define utarray_next(a,e) (((e)==NULL) ? utarray_front(a) : (((a)->i != utarray_eltidx(a,e)+1) ? _utarray_eltptr(a,utarray_eltidx(a,e)+1) : NULL)) +#define utarray_prev(a,e) (((e)==NULL) ? utarray_back(a) : ((utarray_eltidx(a,e) != 0) ? _utarray_eltptr(a,utarray_eltidx(a,e)-1) : NULL)) +#define utarray_back(a) (((a)->i) ? (_utarray_eltptr(a,(a)->i-1)) : NULL) +#define utarray_eltidx(a,e) (((char*)(e) - (a)->d) / (a)->icd.sz) + +/* last we pre-define a few icd for common utarrays of ints and strings */ +static void utarray_str_cpy(void *dst, const void *src) { + char *const*_src = (char*const*)src, **_dst = (char**)dst; + *_dst = (*_src == NULL) ? NULL : strdup(*_src); +} +static void utarray_str_dtor(void *elt) { + char **eltc = (char**)elt; + if (*eltc != NULL) free(*eltc); +} +static const UT_icd ut_str_icd UTARRAY_UNUSED = {sizeof(char*),NULL,utarray_str_cpy,utarray_str_dtor}; +static const UT_icd ut_int_icd UTARRAY_UNUSED = {sizeof(int),NULL,NULL,NULL}; +static const UT_icd ut_ptr_icd UTARRAY_UNUSED = {sizeof(void*),NULL,NULL,NULL}; + + +#endif /* UTARRAY_H */ diff --git a/contrib/elftoolchain/common/uthash.h b/contrib/elftoolchain/common/uthash.h new file mode 100644 index 00000000..37ac8637 --- /dev/null +++ b/contrib/elftoolchain/common/uthash.h @@ -0,0 +1,1152 @@ +/* +Copyright (c) 2003-2018, Troy D. Hanson http://troydhanson.github.com/uthash/ +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef UTHASH_H +#define UTHASH_H + +#define UTHASH_VERSION 2.1.0 + +#include /* memcmp, memset, strlen */ +#include /* ptrdiff_t */ +#include /* exit */ + +/* These macros use decltype or the earlier __typeof GNU extension. + As decltype is only available in newer compilers (VS2010 or gcc 4.3+ + when compiling c++ source) this code uses whatever method is needed + or, for VS2008 where neither is available, uses casting workarounds. */ +#if !defined(DECLTYPE) && !defined(NO_DECLTYPE) +#if defined(_MSC_VER) /* MS compiler */ +#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */ +#define DECLTYPE(x) (decltype(x)) +#else /* VS2008 or older (or VS2010 in C mode) */ +#define NO_DECLTYPE +#endif +#elif defined(__BORLANDC__) || defined(__ICCARM__) || defined(__LCC__) || defined(__WATCOMC__) +#define NO_DECLTYPE +#else /* GNU, Sun and other compilers */ +#define DECLTYPE(x) (__typeof(x)) +#endif +#endif + +#ifdef NO_DECLTYPE +#define DECLTYPE(x) +#define DECLTYPE_ASSIGN(dst,src) \ +do { \ + char **_da_dst = (char**)(&(dst)); \ + *_da_dst = (char*)(src); \ +} while (0) +#else +#define DECLTYPE_ASSIGN(dst,src) \ +do { \ + (dst) = DECLTYPE(dst)(src); \ +} while (0) +#endif + +/* a number of the hash function use uint32_t which isn't defined on Pre VS2010 */ +#if defined(_WIN32) +#if defined(_MSC_VER) && _MSC_VER >= 1600 +#include +#elif defined(__WATCOMC__) || defined(__MINGW32__) || defined(__CYGWIN__) +#include +#else +typedef unsigned int uint32_t; +typedef unsigned char uint8_t; +#endif +#elif defined(__GNUC__) && !defined(__VXWORKS__) +#include +#elif defined(__lint__) +#include +#else +typedef unsigned int uint32_t; +typedef unsigned char uint8_t; +#endif + +#ifndef uthash_malloc +#define uthash_malloc(sz) malloc(sz) /* malloc fcn */ +#endif +#ifndef uthash_free +#define uthash_free(ptr,sz) free(ptr) /* free fcn */ +#endif +#ifndef uthash_bzero +#define uthash_bzero(a,n) memset(a,'\0',n) +#endif +#ifndef uthash_strlen +#define uthash_strlen(s) strlen(s) +#endif + +#ifdef uthash_memcmp +/* This warning will not catch programs that define uthash_memcmp AFTER including uthash.h. */ +#warning "uthash_memcmp is deprecated; please use HASH_KEYCMP instead" +#else +#define uthash_memcmp(a,b,n) memcmp(a,b,n) +#endif + +#ifndef HASH_KEYCMP +#define HASH_KEYCMP(a,b,n) uthash_memcmp(a,b,n) +#endif + +#ifndef uthash_noexpand_fyi +#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */ +#endif +#ifndef uthash_expand_fyi +#define uthash_expand_fyi(tbl) /* can be defined to log expands */ +#endif + +#ifndef HASH_NONFATAL_OOM +#define HASH_NONFATAL_OOM 0 +#endif + +#if HASH_NONFATAL_OOM +/* malloc failures can be recovered from */ + +#ifndef uthash_nonfatal_oom +#define uthash_nonfatal_oom(obj) do {} while (0) /* non-fatal OOM error */ +#endif + +#define HASH_RECORD_OOM(oomed) do { (oomed) = 1; } while (0) +#define IF_HASH_NONFATAL_OOM(x) x + +#else +/* malloc failures result in lost memory, hash tables are unusable */ + +#ifndef uthash_fatal +#define uthash_fatal(msg) exit(-1) /* fatal OOM error */ +#endif + +#define HASH_RECORD_OOM(oomed) uthash_fatal("out of memory") +#define IF_HASH_NONFATAL_OOM(x) + +#endif + +/* initial number of buckets */ +#define HASH_INITIAL_NUM_BUCKETS 32U /* initial number of buckets */ +#define HASH_INITIAL_NUM_BUCKETS_LOG2 5U /* lg2 of initial number of buckets */ +#define HASH_BKT_CAPACITY_THRESH 10U /* expand when bucket count reaches */ + +/* calculate the element whose hash handle address is hhp */ +#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho))) +/* calculate the hash handle from element address elp */ +#define HH_FROM_ELMT(tbl,elp) ((UT_hash_handle*)(void*)(((char*)(elp)) + ((tbl)->hho))) + +#define HASH_ROLLBACK_BKT(hh, head, itemptrhh) \ +do { \ + struct UT_hash_handle *_hd_hh_item = (itemptrhh); \ + unsigned _hd_bkt; \ + HASH_TO_BKT(_hd_hh_item->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ + (head)->hh.tbl->buckets[_hd_bkt].count++; \ + _hd_hh_item->hh_next = NULL; \ + _hd_hh_item->hh_prev = NULL; \ +} while (0) + +#define HASH_VALUE(keyptr,keylen,hashv) \ +do { \ + HASH_FCN(keyptr, keylen, hashv); \ +} while (0) + +#define HASH_FIND_BYHASHVALUE(hh,head,keyptr,keylen,hashval,out) \ +do { \ + (out) = NULL; \ + if (head) { \ + unsigned _hf_bkt; \ + HASH_TO_BKT(hashval, (head)->hh.tbl->num_buckets, _hf_bkt); \ + if (HASH_BLOOM_TEST((head)->hh.tbl, hashval) != 0) { \ + HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], keyptr, keylen, hashval, out); \ + } \ + } \ +} while (0) + +#define HASH_FIND(hh,head,keyptr,keylen,out) \ +do { \ + (out) = NULL; \ + if (head) { \ + unsigned _hf_hashv; \ + HASH_VALUE(keyptr, keylen, _hf_hashv); \ + HASH_FIND_BYHASHVALUE(hh, head, keyptr, keylen, _hf_hashv, out); \ + } \ +} while (0) + +#ifdef HASH_BLOOM +#define HASH_BLOOM_BITLEN (1UL << HASH_BLOOM) +#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8UL) + (((HASH_BLOOM_BITLEN%8UL)!=0UL) ? 1UL : 0UL) +#define HASH_BLOOM_MAKE(tbl,oomed) \ +do { \ + (tbl)->bloom_nbits = HASH_BLOOM; \ + (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \ + if (!(tbl)->bloom_bv) { \ + HASH_RECORD_OOM(oomed); \ + } else { \ + uthash_bzero((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ + (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \ + } \ +} while (0) + +#define HASH_BLOOM_FREE(tbl) \ +do { \ + uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ +} while (0) + +#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8U] |= (1U << ((idx)%8U))) +#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8U] & (1U << ((idx)%8U))) + +#define HASH_BLOOM_ADD(tbl,hashv) \ + HASH_BLOOM_BITSET((tbl)->bloom_bv, ((hashv) & (uint32_t)((1UL << (tbl)->bloom_nbits) - 1U))) + +#define HASH_BLOOM_TEST(tbl,hashv) \ + HASH_BLOOM_BITTEST((tbl)->bloom_bv, ((hashv) & (uint32_t)((1UL << (tbl)->bloom_nbits) - 1U))) + +#else +#define HASH_BLOOM_MAKE(tbl,oomed) +#define HASH_BLOOM_FREE(tbl) +#define HASH_BLOOM_ADD(tbl,hashv) +#define HASH_BLOOM_TEST(tbl,hashv) (1) +#define HASH_BLOOM_BYTELEN 0U +#endif + +#define HASH_MAKE_TABLE(hh,head,oomed) \ +do { \ + (head)->hh.tbl = (UT_hash_table*)uthash_malloc(sizeof(UT_hash_table)); \ + if (!(head)->hh.tbl) { \ + HASH_RECORD_OOM(oomed); \ + } else { \ + uthash_bzero((head)->hh.tbl, sizeof(UT_hash_table)); \ + (head)->hh.tbl->tail = &((head)->hh); \ + (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \ + (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \ + (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \ + (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \ + HASH_INITIAL_NUM_BUCKETS * sizeof(struct UT_hash_bucket)); \ + (head)->hh.tbl->signature = HASH_SIGNATURE; \ + if (!(head)->hh.tbl->buckets) { \ + HASH_RECORD_OOM(oomed); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + } else { \ + uthash_bzero((head)->hh.tbl->buckets, \ + HASH_INITIAL_NUM_BUCKETS * sizeof(struct UT_hash_bucket)); \ + HASH_BLOOM_MAKE((head)->hh.tbl, oomed); \ + IF_HASH_NONFATAL_OOM( \ + if (oomed) { \ + uthash_free((head)->hh.tbl->buckets, \ + HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + } \ + ) \ + } \ + } \ +} while (0) + +#define HASH_REPLACE_BYHASHVALUE_INORDER(hh,head,fieldname,keylen_in,hashval,add,replaced,cmpfcn) \ +do { \ + (replaced) = NULL; \ + HASH_FIND_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, replaced); \ + if (replaced) { \ + HASH_DELETE(hh, head, replaced); \ + } \ + HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn); \ +} while (0) + +#define HASH_REPLACE_BYHASHVALUE(hh,head,fieldname,keylen_in,hashval,add,replaced) \ +do { \ + (replaced) = NULL; \ + HASH_FIND_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, replaced); \ + if (replaced) { \ + HASH_DELETE(hh, head, replaced); \ + } \ + HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add); \ +} while (0) + +#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \ +do { \ + unsigned _hr_hashv; \ + HASH_VALUE(&((add)->fieldname), keylen_in, _hr_hashv); \ + HASH_REPLACE_BYHASHVALUE(hh, head, fieldname, keylen_in, _hr_hashv, add, replaced); \ +} while (0) + +#define HASH_REPLACE_INORDER(hh,head,fieldname,keylen_in,add,replaced,cmpfcn) \ +do { \ + unsigned _hr_hashv; \ + HASH_VALUE(&((add)->fieldname), keylen_in, _hr_hashv); \ + HASH_REPLACE_BYHASHVALUE_INORDER(hh, head, fieldname, keylen_in, _hr_hashv, add, replaced, cmpfcn); \ +} while (0) + +#define HASH_APPEND_LIST(hh, head, add) \ +do { \ + (add)->hh.next = NULL; \ + (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \ + (head)->hh.tbl->tail->next = (add); \ + (head)->hh.tbl->tail = &((add)->hh); \ +} while (0) + +#define HASH_AKBI_INNER_LOOP(hh,head,add,cmpfcn) \ +do { \ + do { \ + if (cmpfcn(DECLTYPE(head)(_hs_iter), add) > 0) { \ + break; \ + } \ + } while ((_hs_iter = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->next)); \ +} while (0) + +#ifdef NO_DECLTYPE +#undef HASH_AKBI_INNER_LOOP +#define HASH_AKBI_INNER_LOOP(hh,head,add,cmpfcn) \ +do { \ + char *_hs_saved_head = (char*)(head); \ + do { \ + DECLTYPE_ASSIGN(head, _hs_iter); \ + if (cmpfcn(head, add) > 0) { \ + DECLTYPE_ASSIGN(head, _hs_saved_head); \ + break; \ + } \ + DECLTYPE_ASSIGN(head, _hs_saved_head); \ + } while ((_hs_iter = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->next)); \ +} while (0) +#endif + +#if HASH_NONFATAL_OOM + +#define HASH_ADD_TO_TABLE(hh,head,keyptr,keylen_in,hashval,add,oomed) \ +do { \ + if (!(oomed)) { \ + unsigned _ha_bkt; \ + (head)->hh.tbl->num_items++; \ + HASH_TO_BKT(hashval, (head)->hh.tbl->num_buckets, _ha_bkt); \ + HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt], hh, &(add)->hh, oomed); \ + if (oomed) { \ + HASH_ROLLBACK_BKT(hh, head, &(add)->hh); \ + HASH_DELETE_HH(hh, head, &(add)->hh); \ + (add)->hh.tbl = NULL; \ + uthash_nonfatal_oom(add); \ + } else { \ + HASH_BLOOM_ADD((head)->hh.tbl, hashval); \ + HASH_EMIT_KEY(hh, head, keyptr, keylen_in); \ + } \ + } else { \ + (add)->hh.tbl = NULL; \ + uthash_nonfatal_oom(add); \ + } \ +} while (0) + +#else + +#define HASH_ADD_TO_TABLE(hh,head,keyptr,keylen_in,hashval,add,oomed) \ +do { \ + unsigned _ha_bkt; \ + (head)->hh.tbl->num_items++; \ + HASH_TO_BKT(hashval, (head)->hh.tbl->num_buckets, _ha_bkt); \ + HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt], hh, &(add)->hh, oomed); \ + HASH_BLOOM_ADD((head)->hh.tbl, hashval); \ + HASH_EMIT_KEY(hh, head, keyptr, keylen_in); \ +} while (0) + +#endif + + +#define HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh,head,keyptr,keylen_in,hashval,add,cmpfcn) \ +do { \ + IF_HASH_NONFATAL_OOM( int _ha_oomed = 0; ) \ + (add)->hh.hashv = (hashval); \ + (add)->hh.key = (char*) (keyptr); \ + (add)->hh.keylen = (unsigned) (keylen_in); \ + if (!(head)) { \ + (add)->hh.next = NULL; \ + (add)->hh.prev = NULL; \ + HASH_MAKE_TABLE(hh, add, _ha_oomed); \ + IF_HASH_NONFATAL_OOM( if (!_ha_oomed) { ) \ + (head) = (add); \ + IF_HASH_NONFATAL_OOM( } ) \ + } else { \ + void *_hs_iter = (head); \ + (add)->hh.tbl = (head)->hh.tbl; \ + HASH_AKBI_INNER_LOOP(hh, head, add, cmpfcn); \ + if (_hs_iter) { \ + (add)->hh.next = _hs_iter; \ + if (((add)->hh.prev = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->prev)) { \ + HH_FROM_ELMT((head)->hh.tbl, (add)->hh.prev)->next = (add); \ + } else { \ + (head) = (add); \ + } \ + HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->prev = (add); \ + } else { \ + HASH_APPEND_LIST(hh, head, add); \ + } \ + } \ + HASH_ADD_TO_TABLE(hh, head, keyptr, keylen_in, hashval, add, _ha_oomed); \ + HASH_FSCK(hh, head, "HASH_ADD_KEYPTR_BYHASHVALUE_INORDER"); \ +} while (0) + +#define HASH_ADD_KEYPTR_INORDER(hh,head,keyptr,keylen_in,add,cmpfcn) \ +do { \ + unsigned _hs_hashv; \ + HASH_VALUE(keyptr, keylen_in, _hs_hashv); \ + HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, keyptr, keylen_in, _hs_hashv, add, cmpfcn); \ +} while (0) + +#define HASH_ADD_BYHASHVALUE_INORDER(hh,head,fieldname,keylen_in,hashval,add,cmpfcn) \ + HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn) + +#define HASH_ADD_INORDER(hh,head,fieldname,keylen_in,add,cmpfcn) \ + HASH_ADD_KEYPTR_INORDER(hh, head, &((add)->fieldname), keylen_in, add, cmpfcn) + +#define HASH_ADD_KEYPTR_BYHASHVALUE(hh,head,keyptr,keylen_in,hashval,add) \ +do { \ + IF_HASH_NONFATAL_OOM( int _ha_oomed = 0; ) \ + (add)->hh.hashv = (hashval); \ + (add)->hh.key = (char*) (keyptr); \ + (add)->hh.keylen = (unsigned) (keylen_in); \ + if (!(head)) { \ + (add)->hh.next = NULL; \ + (add)->hh.prev = NULL; \ + HASH_MAKE_TABLE(hh, add, _ha_oomed); \ + IF_HASH_NONFATAL_OOM( if (!_ha_oomed) { ) \ + (head) = (add); \ + IF_HASH_NONFATAL_OOM( } ) \ + } else { \ + (add)->hh.tbl = (head)->hh.tbl; \ + HASH_APPEND_LIST(hh, head, add); \ + } \ + HASH_ADD_TO_TABLE(hh, head, keyptr, keylen_in, hashval, add, _ha_oomed); \ + HASH_FSCK(hh, head, "HASH_ADD_KEYPTR_BYHASHVALUE"); \ +} while (0) + +#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ +do { \ + unsigned _ha_hashv; \ + HASH_VALUE(keyptr, keylen_in, _ha_hashv); \ + HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, keyptr, keylen_in, _ha_hashv, add); \ +} while (0) + +#define HASH_ADD_BYHASHVALUE(hh,head,fieldname,keylen_in,hashval,add) \ + HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add) + +#define HASH_ADD(hh,head,fieldname,keylen_in,add) \ + HASH_ADD_KEYPTR(hh, head, &((add)->fieldname), keylen_in, add) + +#define HASH_TO_BKT(hashv,num_bkts,bkt) \ +do { \ + bkt = ((hashv) & ((num_bkts) - 1U)); \ +} while (0) + +/* delete "delptr" from the hash table. + * "the usual" patch-up process for the app-order doubly-linked-list. + * The use of _hd_hh_del below deserves special explanation. + * These used to be expressed using (delptr) but that led to a bug + * if someone used the same symbol for the head and deletee, like + * HASH_DELETE(hh,users,users); + * We want that to work, but by changing the head (users) below + * we were forfeiting our ability to further refer to the deletee (users) + * in the patch-up process. Solution: use scratch space to + * copy the deletee pointer, then the latter references are via that + * scratch pointer rather than through the repointed (users) symbol. + */ +#define HASH_DELETE(hh,head,delptr) \ + HASH_DELETE_HH(hh, head, &(delptr)->hh) + +#define HASH_DELETE_HH(hh,head,delptrhh) \ +do { \ + struct UT_hash_handle *_hd_hh_del = (delptrhh); \ + if ((_hd_hh_del->prev == NULL) && (_hd_hh_del->next == NULL)) { \ + HASH_BLOOM_FREE((head)->hh.tbl); \ + uthash_free((head)->hh.tbl->buckets, \ + (head)->hh.tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + (head) = NULL; \ + } else { \ + unsigned _hd_bkt; \ + if (_hd_hh_del == (head)->hh.tbl->tail) { \ + (head)->hh.tbl->tail = HH_FROM_ELMT((head)->hh.tbl, _hd_hh_del->prev); \ + } \ + if (_hd_hh_del->prev != NULL) { \ + HH_FROM_ELMT((head)->hh.tbl, _hd_hh_del->prev)->next = _hd_hh_del->next; \ + } else { \ + DECLTYPE_ASSIGN(head, _hd_hh_del->next); \ + } \ + if (_hd_hh_del->next != NULL) { \ + HH_FROM_ELMT((head)->hh.tbl, _hd_hh_del->next)->prev = _hd_hh_del->prev; \ + } \ + HASH_TO_BKT(_hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ + HASH_DEL_IN_BKT((head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \ + (head)->hh.tbl->num_items--; \ + } \ + HASH_FSCK(hh, head, "HASH_DELETE_HH"); \ +} while (0) + +/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */ +#define HASH_FIND_STR(head,findstr,out) \ +do { \ + unsigned _uthash_hfstr_keylen = (unsigned)uthash_strlen(findstr); \ + HASH_FIND(hh, head, findstr, _uthash_hfstr_keylen, out); \ +} while (0) +#define HASH_ADD_STR(head,strfield,add) \ +do { \ + unsigned _uthash_hastr_keylen = (unsigned)uthash_strlen((add)->strfield); \ + HASH_ADD(hh, head, strfield[0], _uthash_hastr_keylen, add); \ +} while (0) +#define HASH_REPLACE_STR(head,strfield,add,replaced) \ +do { \ + unsigned _uthash_hrstr_keylen = (unsigned)uthash_strlen((add)->strfield); \ + HASH_REPLACE(hh, head, strfield[0], _uthash_hrstr_keylen, add, replaced); \ +} while (0) +#define HASH_FIND_INT(head,findint,out) \ + HASH_FIND(hh,head,findint,sizeof(int),out) +#define HASH_ADD_INT(head,intfield,add) \ + HASH_ADD(hh,head,intfield,sizeof(int),add) +#define HASH_REPLACE_INT(head,intfield,add,replaced) \ + HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced) +#define HASH_FIND_PTR(head,findptr,out) \ + HASH_FIND(hh,head,findptr,sizeof(void *),out) +#define HASH_ADD_PTR(head,ptrfield,add) \ + HASH_ADD(hh,head,ptrfield,sizeof(void *),add) +#define HASH_REPLACE_PTR(head,ptrfield,add,replaced) \ + HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced) +#define HASH_DEL(head,delptr) \ + HASH_DELETE(hh,head,delptr) + +/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined. + * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined. + */ +#ifdef HASH_DEBUG +#include /* fprintf, stderr */ +#define HASH_OOPS(...) do { fprintf(stderr, __VA_ARGS__); exit(-1); } while (0) +#define HASH_FSCK(hh,head,where) \ +do { \ + struct UT_hash_handle *_thh; \ + if (head) { \ + unsigned _bkt_i; \ + unsigned _count = 0; \ + char *_prev; \ + for (_bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; ++_bkt_i) { \ + unsigned _bkt_count = 0; \ + _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \ + _prev = NULL; \ + while (_thh) { \ + if (_prev != (char*)(_thh->hh_prev)) { \ + HASH_OOPS("%s: invalid hh_prev %p, actual %p\n", \ + (where), (void*)_thh->hh_prev, (void*)_prev); \ + } \ + _bkt_count++; \ + _prev = (char*)(_thh); \ + _thh = _thh->hh_next; \ + } \ + _count += _bkt_count; \ + if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \ + HASH_OOPS("%s: invalid bucket count %u, actual %u\n", \ + (where), (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \ + } \ + } \ + if (_count != (head)->hh.tbl->num_items) { \ + HASH_OOPS("%s: invalid hh item count %u, actual %u\n", \ + (where), (head)->hh.tbl->num_items, _count); \ + } \ + _count = 0; \ + _prev = NULL; \ + _thh = &(head)->hh; \ + while (_thh) { \ + _count++; \ + if (_prev != (char*)_thh->prev) { \ + HASH_OOPS("%s: invalid prev %p, actual %p\n", \ + (where), (void*)_thh->prev, (void*)_prev); \ + } \ + _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \ + _thh = (_thh->next ? HH_FROM_ELMT((head)->hh.tbl, _thh->next) : NULL); \ + } \ + if (_count != (head)->hh.tbl->num_items) { \ + HASH_OOPS("%s: invalid app item count %u, actual %u\n", \ + (where), (head)->hh.tbl->num_items, _count); \ + } \ + } \ +} while (0) +#else +#define HASH_FSCK(hh,head,where) +#endif + +/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to + * the descriptor to which this macro is defined for tuning the hash function. + * The app can #include to get the prototype for write(2). */ +#ifdef HASH_EMIT_KEYS +#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \ +do { \ + unsigned _klen = fieldlen; \ + write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \ + write(HASH_EMIT_KEYS, keyptr, (unsigned long)fieldlen); \ +} while (0) +#else +#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) +#endif + +/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */ +#ifdef HASH_FUNCTION +#define HASH_FCN HASH_FUNCTION +#else +#define HASH_FCN HASH_JEN +#endif + +/* The Bernstein hash function, used in Perl prior to v5.6. Note (x<<5+x)=x*33. */ +#define HASH_BER(key,keylen,hashv) \ +do { \ + unsigned _hb_keylen = (unsigned)keylen; \ + const unsigned char *_hb_key = (const unsigned char*)(key); \ + (hashv) = 0; \ + while (_hb_keylen-- != 0U) { \ + (hashv) = (((hashv) << 5) + (hashv)) + *_hb_key++; \ + } \ +} while (0) + + +/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at + * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */ +#define HASH_SAX(key,keylen,hashv) \ +do { \ + unsigned _sx_i; \ + const unsigned char *_hs_key = (const unsigned char*)(key); \ + hashv = 0; \ + for (_sx_i=0; _sx_i < keylen; _sx_i++) { \ + hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \ + } \ +} while (0) +/* FNV-1a variation */ +#define HASH_FNV(key,keylen,hashv) \ +do { \ + unsigned _fn_i; \ + const unsigned char *_hf_key = (const unsigned char*)(key); \ + (hashv) = 2166136261U; \ + for (_fn_i=0; _fn_i < keylen; _fn_i++) { \ + hashv = hashv ^ _hf_key[_fn_i]; \ + hashv = hashv * 16777619U; \ + } \ +} while (0) + +#define HASH_OAT(key,keylen,hashv) \ +do { \ + unsigned _ho_i; \ + const unsigned char *_ho_key=(const unsigned char*)(key); \ + hashv = 0; \ + for(_ho_i=0; _ho_i < keylen; _ho_i++) { \ + hashv += _ho_key[_ho_i]; \ + hashv += (hashv << 10); \ + hashv ^= (hashv >> 6); \ + } \ + hashv += (hashv << 3); \ + hashv ^= (hashv >> 11); \ + hashv += (hashv << 15); \ +} while (0) + +#define HASH_JEN_MIX(a,b,c) \ +do { \ + a -= b; a -= c; a ^= ( c >> 13 ); \ + b -= c; b -= a; b ^= ( a << 8 ); \ + c -= a; c -= b; c ^= ( b >> 13 ); \ + a -= b; a -= c; a ^= ( c >> 12 ); \ + b -= c; b -= a; b ^= ( a << 16 ); \ + c -= a; c -= b; c ^= ( b >> 5 ); \ + a -= b; a -= c; a ^= ( c >> 3 ); \ + b -= c; b -= a; b ^= ( a << 10 ); \ + c -= a; c -= b; c ^= ( b >> 15 ); \ +} while (0) + +#define HASH_JEN(key,keylen,hashv) \ +do { \ + unsigned _hj_i,_hj_j,_hj_k; \ + unsigned const char *_hj_key=(unsigned const char*)(key); \ + hashv = 0xfeedbeefu; \ + _hj_i = _hj_j = 0x9e3779b9u; \ + _hj_k = (unsigned)(keylen); \ + while (_hj_k >= 12U) { \ + _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \ + + ( (unsigned)_hj_key[2] << 16 ) \ + + ( (unsigned)_hj_key[3] << 24 ) ); \ + _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \ + + ( (unsigned)_hj_key[6] << 16 ) \ + + ( (unsigned)_hj_key[7] << 24 ) ); \ + hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \ + + ( (unsigned)_hj_key[10] << 16 ) \ + + ( (unsigned)_hj_key[11] << 24 ) ); \ + \ + HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ + \ + _hj_key += 12; \ + _hj_k -= 12U; \ + } \ + hashv += (unsigned)(keylen); \ + switch ( _hj_k ) { \ + case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); /* FALLTHROUGH */ \ + case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); /* FALLTHROUGH */ \ + case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); /* FALLTHROUGH */ \ + case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); /* FALLTHROUGH */ \ + case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); /* FALLTHROUGH */ \ + case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); /* FALLTHROUGH */ \ + case 5: _hj_j += _hj_key[4]; /* FALLTHROUGH */ \ + case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); /* FALLTHROUGH */ \ + case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); /* FALLTHROUGH */ \ + case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); /* FALLTHROUGH */ \ + case 1: _hj_i += _hj_key[0]; \ + } \ + HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ +} while (0) + +/* The Paul Hsieh hash function */ +#undef get16bits +#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ + || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) +#define get16bits(d) (*((const uint16_t *) (d))) +#endif + +#if !defined (get16bits) +#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif +#define HASH_SFH(key,keylen,hashv) \ +do { \ + unsigned const char *_sfh_key=(unsigned const char*)(key); \ + uint32_t _sfh_tmp, _sfh_len = (uint32_t)keylen; \ + \ + unsigned _sfh_rem = _sfh_len & 3U; \ + _sfh_len >>= 2; \ + hashv = 0xcafebabeu; \ + \ + /* Main loop */ \ + for (;_sfh_len > 0U; _sfh_len--) { \ + hashv += get16bits (_sfh_key); \ + _sfh_tmp = ((uint32_t)(get16bits (_sfh_key+2)) << 11) ^ hashv; \ + hashv = (hashv << 16) ^ _sfh_tmp; \ + _sfh_key += 2U*sizeof (uint16_t); \ + hashv += hashv >> 11; \ + } \ + \ + /* Handle end cases */ \ + switch (_sfh_rem) { \ + case 3: hashv += get16bits (_sfh_key); \ + hashv ^= hashv << 16; \ + hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)]) << 18; \ + hashv += hashv >> 11; \ + break; \ + case 2: hashv += get16bits (_sfh_key); \ + hashv ^= hashv << 11; \ + hashv += hashv >> 17; \ + break; \ + case 1: hashv += *_sfh_key; \ + hashv ^= hashv << 10; \ + hashv += hashv >> 1; \ + } \ + \ + /* Force "avalanching" of final 127 bits */ \ + hashv ^= hashv << 3; \ + hashv += hashv >> 5; \ + hashv ^= hashv << 4; \ + hashv += hashv >> 17; \ + hashv ^= hashv << 25; \ + hashv += hashv >> 6; \ +} while (0) + +/* iterate over items in a known bucket to find desired item */ +#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,hashval,out) \ +do { \ + if ((head).hh_head != NULL) { \ + DECLTYPE_ASSIGN(out, ELMT_FROM_HH(tbl, (head).hh_head)); \ + } else { \ + (out) = NULL; \ + } \ + while ((out) != NULL) { \ + if ((out)->hh.hashv == (hashval) && (out)->hh.keylen == (keylen_in)) { \ + if (HASH_KEYCMP((out)->hh.key, keyptr, keylen_in) == 0) { \ + break; \ + } \ + } \ + if ((out)->hh.hh_next != NULL) { \ + DECLTYPE_ASSIGN(out, ELMT_FROM_HH(tbl, (out)->hh.hh_next)); \ + } else { \ + (out) = NULL; \ + } \ + } \ +} while (0) + +/* add an item to a bucket */ +#define HASH_ADD_TO_BKT(head,hh,addhh,oomed) \ +do { \ + UT_hash_bucket *_ha_head = &(head); \ + _ha_head->count++; \ + (addhh)->hh_next = _ha_head->hh_head; \ + (addhh)->hh_prev = NULL; \ + if (_ha_head->hh_head != NULL) { \ + _ha_head->hh_head->hh_prev = (addhh); \ + } \ + _ha_head->hh_head = (addhh); \ + if ((_ha_head->count >= ((_ha_head->expand_mult + 1U) * HASH_BKT_CAPACITY_THRESH)) \ + && !(addhh)->tbl->noexpand) { \ + HASH_EXPAND_BUCKETS(addhh,(addhh)->tbl, oomed); \ + IF_HASH_NONFATAL_OOM( \ + if (oomed) { \ + HASH_DEL_IN_BKT(head,addhh); \ + } \ + ) \ + } \ +} while (0) + +/* remove an item from a given bucket */ +#define HASH_DEL_IN_BKT(head,delhh) \ +do { \ + UT_hash_bucket *_hd_head = &(head); \ + _hd_head->count--; \ + if (_hd_head->hh_head == (delhh)) { \ + _hd_head->hh_head = (delhh)->hh_next; \ + } \ + if ((delhh)->hh_prev) { \ + (delhh)->hh_prev->hh_next = (delhh)->hh_next; \ + } \ + if ((delhh)->hh_next) { \ + (delhh)->hh_next->hh_prev = (delhh)->hh_prev; \ + } \ +} while (0) + +/* Bucket expansion has the effect of doubling the number of buckets + * and redistributing the items into the new buckets. Ideally the + * items will distribute more or less evenly into the new buckets + * (the extent to which this is true is a measure of the quality of + * the hash function as it applies to the key domain). + * + * With the items distributed into more buckets, the chain length + * (item count) in each bucket is reduced. Thus by expanding buckets + * the hash keeps a bound on the chain length. This bounded chain + * length is the essence of how a hash provides constant time lookup. + * + * The calculation of tbl->ideal_chain_maxlen below deserves some + * explanation. First, keep in mind that we're calculating the ideal + * maximum chain length based on the *new* (doubled) bucket count. + * In fractions this is just n/b (n=number of items,b=new num buckets). + * Since the ideal chain length is an integer, we want to calculate + * ceil(n/b). We don't depend on floating point arithmetic in this + * hash, so to calculate ceil(n/b) with integers we could write + * + * ceil(n/b) = (n/b) + ((n%b)?1:0) + * + * and in fact a previous version of this hash did just that. + * But now we have improved things a bit by recognizing that b is + * always a power of two. We keep its base 2 log handy (call it lb), + * so now we can write this with a bit shift and logical AND: + * + * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0) + * + */ +#define HASH_EXPAND_BUCKETS(hh,tbl,oomed) \ +do { \ + unsigned _he_bkt; \ + unsigned _he_bkt_i; \ + struct UT_hash_handle *_he_thh, *_he_hh_nxt; \ + UT_hash_bucket *_he_new_buckets, *_he_newbkt; \ + _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \ + 2UL * (tbl)->num_buckets * sizeof(struct UT_hash_bucket)); \ + if (!_he_new_buckets) { \ + HASH_RECORD_OOM(oomed); \ + } else { \ + uthash_bzero(_he_new_buckets, \ + 2UL * (tbl)->num_buckets * sizeof(struct UT_hash_bucket)); \ + (tbl)->ideal_chain_maxlen = \ + ((tbl)->num_items >> ((tbl)->log2_num_buckets+1U)) + \ + ((((tbl)->num_items & (((tbl)->num_buckets*2U)-1U)) != 0U) ? 1U : 0U); \ + (tbl)->nonideal_items = 0; \ + for (_he_bkt_i = 0; _he_bkt_i < (tbl)->num_buckets; _he_bkt_i++) { \ + _he_thh = (tbl)->buckets[ _he_bkt_i ].hh_head; \ + while (_he_thh != NULL) { \ + _he_hh_nxt = _he_thh->hh_next; \ + HASH_TO_BKT(_he_thh->hashv, (tbl)->num_buckets * 2U, _he_bkt); \ + _he_newbkt = &(_he_new_buckets[_he_bkt]); \ + if (++(_he_newbkt->count) > (tbl)->ideal_chain_maxlen) { \ + (tbl)->nonideal_items++; \ + if (_he_newbkt->count > _he_newbkt->expand_mult * (tbl)->ideal_chain_maxlen) { \ + _he_newbkt->expand_mult++; \ + } \ + } \ + _he_thh->hh_prev = NULL; \ + _he_thh->hh_next = _he_newbkt->hh_head; \ + if (_he_newbkt->hh_head != NULL) { \ + _he_newbkt->hh_head->hh_prev = _he_thh; \ + } \ + _he_newbkt->hh_head = _he_thh; \ + _he_thh = _he_hh_nxt; \ + } \ + } \ + uthash_free((tbl)->buckets, (tbl)->num_buckets * sizeof(struct UT_hash_bucket)); \ + (tbl)->num_buckets *= 2U; \ + (tbl)->log2_num_buckets++; \ + (tbl)->buckets = _he_new_buckets; \ + (tbl)->ineff_expands = ((tbl)->nonideal_items > ((tbl)->num_items >> 1)) ? \ + ((tbl)->ineff_expands+1U) : 0U; \ + if ((tbl)->ineff_expands > 1U) { \ + (tbl)->noexpand = 1; \ + uthash_noexpand_fyi(tbl); \ + } \ + uthash_expand_fyi(tbl); \ + } \ +} while (0) + + +/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */ +/* Note that HASH_SORT assumes the hash handle name to be hh. + * HASH_SRT was added to allow the hash handle name to be passed in. */ +#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn) +#define HASH_SRT(hh,head,cmpfcn) \ +do { \ + unsigned _hs_i; \ + unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \ + struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \ + if (head != NULL) { \ + _hs_insize = 1; \ + _hs_looping = 1; \ + _hs_list = &((head)->hh); \ + while (_hs_looping != 0U) { \ + _hs_p = _hs_list; \ + _hs_list = NULL; \ + _hs_tail = NULL; \ + _hs_nmerges = 0; \ + while (_hs_p != NULL) { \ + _hs_nmerges++; \ + _hs_q = _hs_p; \ + _hs_psize = 0; \ + for (_hs_i = 0; _hs_i < _hs_insize; ++_hs_i) { \ + _hs_psize++; \ + _hs_q = ((_hs_q->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_q->next) : NULL); \ + if (_hs_q == NULL) { \ + break; \ + } \ + } \ + _hs_qsize = _hs_insize; \ + while ((_hs_psize != 0U) || ((_hs_qsize != 0U) && (_hs_q != NULL))) { \ + if (_hs_psize == 0U) { \ + _hs_e = _hs_q; \ + _hs_q = ((_hs_q->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_q->next) : NULL); \ + _hs_qsize--; \ + } else if ((_hs_qsize == 0U) || (_hs_q == NULL)) { \ + _hs_e = _hs_p; \ + if (_hs_p != NULL) { \ + _hs_p = ((_hs_p->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_p->next) : NULL); \ + } \ + _hs_psize--; \ + } else if ((cmpfcn( \ + DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl, _hs_p)), \ + DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl, _hs_q)) \ + )) <= 0) { \ + _hs_e = _hs_p; \ + if (_hs_p != NULL) { \ + _hs_p = ((_hs_p->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_p->next) : NULL); \ + } \ + _hs_psize--; \ + } else { \ + _hs_e = _hs_q; \ + _hs_q = ((_hs_q->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_q->next) : NULL); \ + _hs_qsize--; \ + } \ + if ( _hs_tail != NULL ) { \ + _hs_tail->next = ((_hs_e != NULL) ? \ + ELMT_FROM_HH((head)->hh.tbl, _hs_e) : NULL); \ + } else { \ + _hs_list = _hs_e; \ + } \ + if (_hs_e != NULL) { \ + _hs_e->prev = ((_hs_tail != NULL) ? \ + ELMT_FROM_HH((head)->hh.tbl, _hs_tail) : NULL); \ + } \ + _hs_tail = _hs_e; \ + } \ + _hs_p = _hs_q; \ + } \ + if (_hs_tail != NULL) { \ + _hs_tail->next = NULL; \ + } \ + if (_hs_nmerges <= 1U) { \ + _hs_looping = 0; \ + (head)->hh.tbl->tail = _hs_tail; \ + DECLTYPE_ASSIGN(head, ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \ + } \ + _hs_insize *= 2U; \ + } \ + HASH_FSCK(hh, head, "HASH_SRT"); \ + } \ +} while (0) + +/* This function selects items from one hash into another hash. + * The end result is that the selected items have dual presence + * in both hashes. There is no copy of the items made; rather + * they are added into the new hash through a secondary hash + * hash handle that must be present in the structure. */ +#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \ +do { \ + unsigned _src_bkt, _dst_bkt; \ + void *_last_elt = NULL, *_elt; \ + UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \ + ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \ + if ((src) != NULL) { \ + for (_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \ + for (_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \ + _src_hh != NULL; \ + _src_hh = _src_hh->hh_next) { \ + _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \ + if (cond(_elt)) { \ + IF_HASH_NONFATAL_OOM( int _hs_oomed = 0; ) \ + _dst_hh = (UT_hash_handle*)(void*)(((char*)_elt) + _dst_hho); \ + _dst_hh->key = _src_hh->key; \ + _dst_hh->keylen = _src_hh->keylen; \ + _dst_hh->hashv = _src_hh->hashv; \ + _dst_hh->prev = _last_elt; \ + _dst_hh->next = NULL; \ + if (_last_elt_hh != NULL) { \ + _last_elt_hh->next = _elt; \ + } \ + if ((dst) == NULL) { \ + DECLTYPE_ASSIGN(dst, _elt); \ + HASH_MAKE_TABLE(hh_dst, dst, _hs_oomed); \ + IF_HASH_NONFATAL_OOM( \ + if (_hs_oomed) { \ + uthash_nonfatal_oom(_elt); \ + (dst) = NULL; \ + continue; \ + } \ + ) \ + } else { \ + _dst_hh->tbl = (dst)->hh_dst.tbl; \ + } \ + HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \ + HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt], hh_dst, _dst_hh, _hs_oomed); \ + (dst)->hh_dst.tbl->num_items++; \ + IF_HASH_NONFATAL_OOM( \ + if (_hs_oomed) { \ + HASH_ROLLBACK_BKT(hh_dst, dst, _dst_hh); \ + HASH_DELETE_HH(hh_dst, dst, _dst_hh); \ + _dst_hh->tbl = NULL; \ + uthash_nonfatal_oom(_elt); \ + continue; \ + } \ + ) \ + HASH_BLOOM_ADD(_dst_hh->tbl, _dst_hh->hashv); \ + _last_elt = _elt; \ + _last_elt_hh = _dst_hh; \ + } \ + } \ + } \ + } \ + HASH_FSCK(hh_dst, dst, "HASH_SELECT"); \ +} while (0) + +#define HASH_CLEAR(hh,head) \ +do { \ + if ((head) != NULL) { \ + HASH_BLOOM_FREE((head)->hh.tbl); \ + uthash_free((head)->hh.tbl->buckets, \ + (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + (head) = NULL; \ + } \ +} while (0) + +#define HASH_OVERHEAD(hh,head) \ + (((head) != NULL) ? ( \ + (size_t)(((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \ + ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \ + sizeof(UT_hash_table) + \ + (HASH_BLOOM_BYTELEN))) : 0U) + +#ifdef NO_DECLTYPE +#define HASH_ITER(hh,head,el,tmp) \ +for(((el)=(head)), ((*(char**)(&(tmp)))=(char*)((head!=NULL)?(head)->hh.next:NULL)); \ + (el) != NULL; ((el)=(tmp)), ((*(char**)(&(tmp)))=(char*)((tmp!=NULL)?(tmp)->hh.next:NULL))) +#else +#define HASH_ITER(hh,head,el,tmp) \ +for(((el)=(head)), ((tmp)=DECLTYPE(el)((head!=NULL)?(head)->hh.next:NULL)); \ + (el) != NULL; ((el)=(tmp)), ((tmp)=DECLTYPE(el)((tmp!=NULL)?(tmp)->hh.next:NULL))) +#endif + +/* obtain a count of items in the hash */ +#define HASH_COUNT(head) HASH_CNT(hh,head) +#define HASH_CNT(hh,head) ((head != NULL)?((head)->hh.tbl->num_items):0U) + +typedef struct UT_hash_bucket { + struct UT_hash_handle *hh_head; + unsigned count; + + /* expand_mult is normally set to 0. In this situation, the max chain length + * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If + * the bucket's chain exceeds this length, bucket expansion is triggered). + * However, setting expand_mult to a non-zero value delays bucket expansion + * (that would be triggered by additions to this particular bucket) + * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH. + * (The multiplier is simply expand_mult+1). The whole idea of this + * multiplier is to reduce bucket expansions, since they are expensive, in + * situations where we know that a particular bucket tends to be overused. + * It is better to let its chain length grow to a longer yet-still-bounded + * value, than to do an O(n) bucket expansion too often. + */ + unsigned expand_mult; + +} UT_hash_bucket; + +/* random signature used only to find hash tables in external analysis */ +#define HASH_SIGNATURE 0xa0111fe1u +#define HASH_BLOOM_SIGNATURE 0xb12220f2u + +typedef struct UT_hash_table { + UT_hash_bucket *buckets; + unsigned num_buckets, log2_num_buckets; + unsigned num_items; + struct UT_hash_handle *tail; /* tail hh in app order, for fast append */ + ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */ + + /* in an ideal situation (all buckets used equally), no bucket would have + * more than ceil(#items/#buckets) items. that's the ideal chain length. */ + unsigned ideal_chain_maxlen; + + /* nonideal_items is the number of items in the hash whose chain position + * exceeds the ideal chain maxlen. these items pay the penalty for an uneven + * hash distribution; reaching them in a chain traversal takes >ideal steps */ + unsigned nonideal_items; + + /* ineffective expands occur when a bucket doubling was performed, but + * afterward, more than half the items in the hash had nonideal chain + * positions. If this happens on two consecutive expansions we inhibit any + * further expansion, as it's not helping; this happens when the hash + * function isn't a good fit for the key domain. When expansion is inhibited + * the hash will still work, albeit no longer in constant time. */ + unsigned ineff_expands, noexpand; + + uint32_t signature; /* used only to find hash tables in external analysis */ +#ifdef HASH_BLOOM + uint32_t bloom_sig; /* used only to test bloom exists in external analysis */ + uint8_t *bloom_bv; + uint8_t bloom_nbits; +#endif + +} UT_hash_table; + +typedef struct UT_hash_handle { + struct UT_hash_table *tbl; + void *prev; /* prev element in app order */ + void *next; /* next element in app order */ + struct UT_hash_handle *hh_prev; /* previous hh in bucket order */ + struct UT_hash_handle *hh_next; /* next hh in bucket order */ + void *key; /* ptr to enclosing struct's key */ + unsigned keylen; /* enclosing struct's key len */ + unsigned hashv; /* result of hash-fcn(key) */ +} UT_hash_handle; + +#endif /* UTHASH_H */ diff --git a/contrib/elftoolchain/libelf/_libelf.h b/contrib/elftoolchain/libelf/_libelf.h new file mode 100644 index 00000000..2b89334d --- /dev/null +++ b/contrib/elftoolchain/libelf/_libelf.h @@ -0,0 +1,242 @@ +/*- + * Copyright (c) 2006,2008-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifndef __LIBELF_H_ +#define __LIBELF_H_ + +#include + +#include "_libelf_config.h" + +#include "_elftc.h" + +/* + * Library-private data structures. + */ + +#define LIBELF_MSG_SIZE 256 + +struct _libelf_globals { + int libelf_arch; + unsigned int libelf_byteorder; + int libelf_class; + int libelf_error; + int libelf_fillchar; + unsigned int libelf_version; + unsigned char libelf_msg[LIBELF_MSG_SIZE]; +}; + +extern struct _libelf_globals _libelf; + +#define LIBELF_PRIVATE(N) (_libelf.libelf_##N) + +#define LIBELF_ELF_ERROR_MASK 0xFF +#define LIBELF_OS_ERROR_SHIFT 8 + +#define LIBELF_ERROR(E, O) (((E) & LIBELF_ELF_ERROR_MASK) | \ + ((O) << LIBELF_OS_ERROR_SHIFT)) + +#define LIBELF_SET_ERROR(E, O) do { \ + LIBELF_PRIVATE(error) = LIBELF_ERROR(ELF_E_##E, (O)); \ + } while (/* CONSTCOND */ 0) + +#define LIBELF_ADJUST_AR_SIZE(S) (((S) + 1U) & ~1U) + +/* + * Flags for library internal use. These use the upper 16 bits of the + * `e_flags' field. + */ +#define LIBELF_F_API_MASK 0x00FFFFU /* Flags defined by the API. */ +#define LIBELF_F_AR_HEADER 0x010000U /* translated header available */ +#define LIBELF_F_AR_VARIANT_SVR4 0x020000U /* BSD style ar(1) archive */ +#define LIBELF_F_DATA_MALLOCED 0x040000U /* whether data was malloc'ed */ +#define LIBELF_F_RAWFILE_MALLOC 0x080000U /* whether e_rawfile was malloc'ed */ +#define LIBELF_F_RAWFILE_MMAP 0x100000U /* whether e_rawfile was mmap'ed */ +#define LIBELF_F_SHDRS_LOADED 0x200000U /* whether all shdrs were read in */ +#define LIBELF_F_SPECIAL_FILE 0x400000U /* non-regular file */ + +struct _Elf { + int e_activations; /* activation count */ + unsigned int e_byteorder; /* ELFDATA* */ + int e_class; /* ELFCLASS* */ + Elf_Cmd e_cmd; /* ELF_C_* used at creation time */ + int e_fd; /* associated file descriptor */ + unsigned int e_flags; /* ELF_F_* & LIBELF_F_* flags */ + Elf_Kind e_kind; /* ELF_K_* */ + Elf *e_parent; /* non-NULL for archive members */ + unsigned char *e_rawfile; /* uninterpreted bytes */ + off_t e_rawsize; /* size of uninterpreted bytes */ + unsigned int e_version; /* file version */ + + /* + * Header information for archive members. See the + * LIBELF_F_AR_HEADER flag. + */ + union { + Elf_Arhdr *e_arhdr; /* translated header */ + unsigned char *e_rawhdr; /* untranslated header */ + } e_hdr; + + union { + struct { /* ar(1) archives */ + off_t e_next; /* set by elf_rand()/elf_next() */ + int e_nchildren; + unsigned char *e_rawstrtab; /* file name strings */ + size_t e_rawstrtabsz; + unsigned char *e_rawsymtab; /* symbol table */ + size_t e_rawsymtabsz; + Elf_Arsym *e_symtab; + size_t e_symtabsz; + } e_ar; + struct { /* regular ELF files */ + union { + Elf32_Ehdr *e_ehdr32; + Elf64_Ehdr *e_ehdr64; + } e_ehdr; + union { + Elf32_Phdr *e_phdr32; + Elf64_Phdr *e_phdr64; + } e_phdr; + STAILQ_HEAD(, _Elf_Scn) e_scn; /* section list */ + size_t e_nphdr; /* number of Phdr entries */ + size_t e_nscn; /* number of sections */ + size_t e_strndx; /* string table section index */ + } e_elf; + } e_u; +}; + +/* + * The internal descriptor wrapping the "Elf_Data" type. + */ +struct _Libelf_Data { + Elf_Data d_data; /* The exported descriptor. */ + Elf_Scn *d_scn; /* The containing section */ + unsigned int d_flags; + STAILQ_ENTRY(_Libelf_Data) d_next; +}; + +struct _Elf_Scn { + union { + Elf32_Shdr s_shdr32; + Elf64_Shdr s_shdr64; + } s_shdr; + STAILQ_HEAD(, _Libelf_Data) s_data; /* translated data */ + STAILQ_HEAD(, _Libelf_Data) s_rawdata; /* raw data */ + STAILQ_ENTRY(_Elf_Scn) s_next; + struct _Elf *s_elf; /* parent ELF descriptor */ + unsigned int s_flags; /* flags for the section as a whole */ + size_t s_ndx; /* index# for this section */ + uint64_t s_offset; /* managed by elf_update() */ + uint64_t s_rawoff; /* original offset in the file */ + uint64_t s_size; /* managed by elf_update() */ +}; + + +enum { + ELF_TOFILE, + ELF_TOMEMORY +}; + + +/* + * The LIBELF_COPY macros are used to copy fields from a GElf_* + * structure to their 32-bit counterparts, while checking for out of + * range values. + * + * - LIBELF_COPY_U32 :: copy an unsigned 32 bit field. + * - LIBELF_COPY_S32 :: copy a signed 32 bit field. + */ + +#define LIBELF_COPY_U32(DST, SRC, NAME) do { \ + if ((SRC)->NAME > UINT32_MAX) { \ + LIBELF_SET_ERROR(RANGE, 0); \ + return (0); \ + } \ + (DST)->NAME = (SRC)->NAME & 0xFFFFFFFFU; \ + } while (/* CONSTCOND */ 0) + +#define LIBELF_COPY_S32(DST, SRC, NAME) do { \ + if ((SRC)->NAME > INT32_MAX || \ + (SRC)->NAME < INT32_MIN) { \ + LIBELF_SET_ERROR(RANGE, 0); \ + return (0); \ + } \ + (DST)->NAME = (int32_t) (SRC)->NAME; \ + } while (/* CONSTCOND */ 0) + + +/* + * Function Prototypes. + */ + +typedef int _libelf_translator_function(unsigned char *_dst, size_t dsz, + unsigned char *_src, size_t _cnt, int _byteswap); + +#ifdef __cplusplus +extern "C" { +#endif +struct _Libelf_Data *_libelf_allocate_data(Elf_Scn *_s); +Elf *_libelf_allocate_elf(void); +Elf_Scn *_libelf_allocate_scn(Elf *_e, size_t _ndx); +Elf_Arhdr *_libelf_ar_gethdr(Elf *_e); +Elf *_libelf_ar_open(Elf *_e, int _reporterror); +Elf *_libelf_ar_open_member(int _fd, Elf_Cmd _c, Elf *_ar); +Elf_Arsym *_libelf_ar_process_bsd_symtab(Elf *_ar, size_t *_dst); +Elf_Arsym *_libelf_ar_process_svr4_symtab(Elf *_ar, size_t *_dst); +long _libelf_checksum(Elf *_e, int _elfclass); +void *_libelf_ehdr(Elf *_e, int _elfclass, int _allocate); +int _libelf_elfmachine(Elf *_e); +unsigned int _libelf_falign(Elf_Type _t, int _elfclass); +size_t _libelf_fsize(Elf_Type _t, int _elfclass, unsigned int _version, + size_t count); +_libelf_translator_function *_libelf_get_translator(Elf_Type _t, + int _direction, int _elfclass, int _elfmachine); +void *_libelf_getphdr(Elf *_e, int _elfclass); +void *_libelf_getshdr(Elf_Scn *_scn, int _elfclass); +void _libelf_init_elf(Elf *_e, Elf_Kind _kind); +int _libelf_load_section_headers(Elf *e, void *ehdr); +unsigned int _libelf_malign(Elf_Type _t, int _elfclass); +Elf *_libelf_memory(unsigned char *_image, size_t _sz, int _reporterror); +size_t _libelf_msize(Elf_Type _t, int _elfclass, unsigned int _version); +void *_libelf_newphdr(Elf *_e, int _elfclass, size_t _count); +Elf *_libelf_open_object(int _fd, Elf_Cmd _c, int _reporterror); +struct _Libelf_Data *_libelf_release_data(struct _Libelf_Data *_d); +void _libelf_release_elf(Elf *_e); +Elf_Scn *_libelf_release_scn(Elf_Scn *_s); +int _libelf_setphnum(Elf *_e, void *_eh, int _elfclass, size_t _phnum); +int _libelf_setshnum(Elf *_e, void *_eh, int _elfclass, size_t _shnum); +int _libelf_setshstrndx(Elf *_e, void *_eh, int _elfclass, + size_t _shstrndx); +Elf_Data *_libelf_xlate(Elf_Data *_d, const Elf_Data *_s, + unsigned int _encoding, int _elfclass, int _elfmachine, int _direction); +int _libelf_xlate_shtype(uint32_t _sht); +#ifdef __cplusplus +} +#endif + +#endif /* __LIBELF_H_ */ diff --git a/contrib/elftoolchain/libelf/_libelf_ar.h b/contrib/elftoolchain/libelf/_libelf_ar.h new file mode 100644 index 00000000..d1751a7c --- /dev/null +++ b/contrib/elftoolchain/libelf/_libelf_ar.h @@ -0,0 +1,57 @@ +/*- + * Copyright (c) 2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifndef __LIBELF_AR_H_ +#define __LIBELF_AR_H_ + +/* + * Prototypes and declarations needed by libelf's ar(1) archive + * handling code. + */ + +#include + +#define LIBELF_AR_BSD_EXTENDED_NAME_PREFIX "#1/" +#define LIBELF_AR_BSD_SYMTAB_NAME "__.SYMDEF" +#define LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE \ + (sizeof(LIBELF_AR_BSD_EXTENDED_NAME_PREFIX) - 1) + +#define IS_EXTENDED_BSD_NAME(NAME) \ + (strncmp((const char *) (NAME), \ + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX, \ + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE) == 0) + + +unsigned char *_libelf_ar_get_string(const char *_buf, size_t _sz, + unsigned int _rawname, int _svr4names); +char *_libelf_ar_get_raw_name(const struct ar_hdr *_arh); +char *_libelf_ar_get_translated_name(const struct ar_hdr *_arh, Elf *_ar); +int _libelf_ar_get_number(const char *_buf, size_t _sz, + unsigned int _base, size_t *_ret); + +#endif /* __LIBELF_AR_H_ */ diff --git a/contrib/elftoolchain/libelf/_libelf_config.h b/contrib/elftoolchain/libelf/_libelf_config.h new file mode 100644 index 00000000..4fd9578f --- /dev/null +++ b/contrib/elftoolchain/libelf/_libelf_config.h @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2008-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#if defined(__NetBSD__) + +#include + +#if !defined(ARCH_ELFSIZE) +#error ARCH_ELFSIZE is not defined. +#endif + +#if ARCH_ELFSIZE == 32 +#define Elf_Note Elf32_Nhdr +#else +#define Elf_Note Elf64_Nhdr +#endif + +#endif + +/* + * Downstream projects can replace the following marker with a custom + * definition of LIBELF_BYTEORDER. + */ +/* @LIBELF-BYTEORDER-MARKER@ */ + +#if !defined(LIBELF_BYTEORDER) + +/* + * Use the __BYTE_ORDER__ and __ORDER_{LITTLE|BIG}_ENDIAN__ macros to + * determine the host's byte order. These macros are predefined by the + * GNU and CLANG C compilers. + */ +#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) + +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define LIBELF_BYTEORDER ELFDATA2LSB +#else +#define LIBELF_BYTEORDER ELFDATA2MSB +#endif + +#else + +#error unknown host byte order + +#endif /* defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) */ +#endif /* !defined(LIBELF_BYTEORDER) */ diff --git a/contrib/elftoolchain/libelf/elf.c b/contrib/elftoolchain/libelf/elf.c new file mode 100644 index 00000000..3eac4f47 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf.c @@ -0,0 +1,42 @@ +/*- + * Copyright (c) 2006,2008,2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +struct _libelf_globals _libelf = { + .libelf_byteorder = LIBELF_BYTEORDER, + .libelf_error = 0, + .libelf_fillchar = 0, + .libelf_version = EV_NONE +}; diff --git a/contrib/elftoolchain/libelf/elf_begin.c b/contrib/elftoolchain/libelf/elf_begin.c new file mode 100644 index 00000000..f7b1b552 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_begin.c @@ -0,0 +1,95 @@ +/*- + * Copyright (c) 2006,2008-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf * +elf_begin(int fd, Elf_Cmd c, Elf *a) +{ + Elf *e; + + e = NULL; + + if (LIBELF_PRIVATE(version) == EV_NONE) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (NULL); + } + + switch (c) { + case ELF_C_NULL: + return (NULL); + + case ELF_C_WRITE: + /* + * The ELF_C_WRITE command is required to ignore the + * descriptor passed in. + */ + a = NULL; + break; + + case ELF_C_RDWR: + if (a != NULL) { /* not allowed for ar(1) archives. */ + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + /*FALLTHROUGH*/ + case ELF_C_READ: + /* + * Descriptor `a' could be for a regular ELF file, or + * for an ar(1) archive. If descriptor `a' was opened + * using a valid file descriptor, we need to check if + * the passed in `fd' value matches the original one. + */ + if (a && + ((a->e_fd != -1 && a->e_fd != fd) || c != a->e_cmd)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + break; + + default: + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + + } + + if (a == NULL) + e = _libelf_open_object(fd, c, 1); + else if (a->e_kind == ELF_K_AR) + e = _libelf_ar_open_member(a->e_fd, c, a); + else + (e = a)->e_activations++; + + return (e); +} diff --git a/contrib/elftoolchain/libelf/elf_cntl.c b/contrib/elftoolchain/libelf/elf_cntl.c new file mode 100644 index 00000000..92efa3b4 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_cntl.c @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +int +elf_cntl(Elf *e, Elf_Cmd c) +{ + if (e == NULL || + (c != ELF_C_FDDONE && c != ELF_C_FDREAD)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (-1); + } + + if (e->e_parent) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (-1); + } + + if (c == ELF_C_FDREAD) { + if (e->e_cmd == ELF_C_WRITE) { + LIBELF_SET_ERROR(MODE, 0); + return (-1); + } + else + return (0); + } + + e->e_fd = -1; + return 0; +} diff --git a/contrib/elftoolchain/libelf/elf_data.c b/contrib/elftoolchain/libelf/elf_data.c new file mode 100644 index 00000000..9101c1ac --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_data.c @@ -0,0 +1,284 @@ +/*- + * Copyright (c) 2006,2008,2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf_Data * +elf_getdata(Elf_Scn *s, Elf_Data *ed) +{ + Elf *e; + unsigned int sh_type; + int elfclass, elftype; + size_t count, fsz, msz; + struct _Libelf_Data *d; + uint64_t sh_align, sh_offset, sh_size, raw_size; + _libelf_translator_function *xlate; + + d = (struct _Libelf_Data *) ed; + + if (s == NULL || (e = s->s_elf) == NULL || + (d != NULL && s != d->d_scn)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + assert(e->e_kind == ELF_K_ELF); + + if (d == NULL && (d = STAILQ_FIRST(&s->s_data)) != NULL) + return (&d->d_data); + + if (d != NULL) + return (STAILQ_NEXT(d, d_next) ? + &STAILQ_NEXT(d, d_next)->d_data : NULL); + + if (e->e_rawfile == NULL) { + /* + * In the ELF_C_WRITE case, there is no source that + * can provide data for the section. + */ + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + elfclass = e->e_class; + + assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); + + if (elfclass == ELFCLASS32) { + sh_type = s->s_shdr.s_shdr32.sh_type; + sh_offset = (uint64_t) s->s_shdr.s_shdr32.sh_offset; + sh_size = (uint64_t) s->s_shdr.s_shdr32.sh_size; + sh_align = (uint64_t) s->s_shdr.s_shdr32.sh_addralign; + } else { + sh_type = s->s_shdr.s_shdr64.sh_type; + sh_offset = s->s_shdr.s_shdr64.sh_offset; + sh_size = s->s_shdr.s_shdr64.sh_size; + sh_align = s->s_shdr.s_shdr64.sh_addralign; + } + + if (sh_type == SHT_NULL) { + LIBELF_SET_ERROR(SECTION, 0); + return (NULL); + } + + raw_size = (uint64_t) e->e_rawsize; + if ((elftype = _libelf_xlate_shtype(sh_type)) < ELF_T_FIRST || + elftype > ELF_T_LAST || (sh_type != SHT_NOBITS && + (sh_offset > raw_size || sh_size > raw_size - sh_offset))) { + LIBELF_SET_ERROR(SECTION, 0); + return (NULL); + } + + if ((fsz = (elfclass == ELFCLASS32 ? elf32_fsize : elf64_fsize) + (elftype, (size_t) 1, e->e_version)) == 0) { + LIBELF_SET_ERROR(UNIMPL, 0); + return (NULL); + } + + if (sh_size % fsz) { + LIBELF_SET_ERROR(SECTION, 0); + return (NULL); + } + + if (sh_size / fsz > SIZE_MAX) { + LIBELF_SET_ERROR(RANGE, 0); + return (NULL); + } + + count = (size_t) (sh_size / fsz); + + if ((msz = _libelf_msize(elftype, elfclass, e->e_version)) == 0) + return (NULL); + + if (count > 0 && msz > SIZE_MAX / count) { + LIBELF_SET_ERROR(RANGE, 0); + return (NULL); + } + + assert(msz > 0); + assert(count <= SIZE_MAX); + assert(msz * count <= SIZE_MAX); + + if ((d = _libelf_allocate_data(s)) == NULL) + return (NULL); + + d->d_data.d_buf = NULL; + d->d_data.d_off = 0; + d->d_data.d_align = sh_align; + d->d_data.d_size = msz * count; + d->d_data.d_type = elftype; + d->d_data.d_version = e->e_version; + + if (sh_type == SHT_NOBITS || sh_size == 0) { + STAILQ_INSERT_TAIL(&s->s_data, d, d_next); + return (&d->d_data); + } + + if ((d->d_data.d_buf = malloc(msz * count)) == NULL) { + (void) _libelf_release_data(d); + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + d->d_flags |= LIBELF_F_DATA_MALLOCED; + + xlate = _libelf_get_translator(elftype, ELF_TOMEMORY, elfclass, + _libelf_elfmachine(e)); + if (!(*xlate)(d->d_data.d_buf, (size_t) d->d_data.d_size, + e->e_rawfile + sh_offset, count, + e->e_byteorder != LIBELF_PRIVATE(byteorder))) { + _libelf_release_data(d); + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + STAILQ_INSERT_TAIL(&s->s_data, d, d_next); + + return (&d->d_data); +} + +Elf_Data * +elf_newdata(Elf_Scn *s) +{ + Elf *e; + struct _Libelf_Data *d; + + if (s == NULL || (e = s->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + assert(e->e_kind == ELF_K_ELF); + + /* + * elf_newdata() has to append a data descriptor, so + * bring in existing section data if not already present. + */ + if (e->e_rawfile && s->s_size > 0 && STAILQ_EMPTY(&s->s_data)) + if (elf_getdata(s, NULL) == NULL) + return (NULL); + + if ((d = _libelf_allocate_data(s)) == NULL) + return (NULL); + + STAILQ_INSERT_TAIL(&s->s_data, d, d_next); + + d->d_data.d_align = 1; + d->d_data.d_buf = NULL; + d->d_data.d_off = (uint64_t) ~0; + d->d_data.d_size = 0; + d->d_data.d_type = ELF_T_BYTE; + d->d_data.d_version = LIBELF_PRIVATE(version); + + (void) elf_flagscn(s, ELF_C_SET, ELF_F_DIRTY); + + return (&d->d_data); +} + +/* + * Retrieve a data descriptor for raw (untranslated) data for section + * `s'. + */ + +Elf_Data * +elf_rawdata(Elf_Scn *s, Elf_Data *ed) +{ + Elf *e; + int elf_class; + uint32_t sh_type; + struct _Libelf_Data *d; + uint64_t sh_align, sh_offset, sh_size, raw_size; + + if (s == NULL || (e = s->s_elf) == NULL || e->e_rawfile == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + assert(e->e_kind == ELF_K_ELF); + + d = (struct _Libelf_Data *) ed; + + if (d == NULL && (d = STAILQ_FIRST(&s->s_rawdata)) != NULL) + return (&d->d_data); + + if (d != NULL) + return (&STAILQ_NEXT(d, d_next)->d_data); + + elf_class = e->e_class; + + assert(elf_class == ELFCLASS32 || elf_class == ELFCLASS64); + + if (elf_class == ELFCLASS32) { + sh_type = s->s_shdr.s_shdr32.sh_type; + sh_offset = (uint64_t) s->s_shdr.s_shdr32.sh_offset; + sh_size = (uint64_t) s->s_shdr.s_shdr32.sh_size; + sh_align = (uint64_t) s->s_shdr.s_shdr32.sh_addralign; + } else { + sh_type = s->s_shdr.s_shdr64.sh_type; + sh_offset = s->s_shdr.s_shdr64.sh_offset; + sh_size = s->s_shdr.s_shdr64.sh_size; + sh_align = s->s_shdr.s_shdr64.sh_addralign; + } + + if (sh_type == SHT_NULL) { + LIBELF_SET_ERROR(SECTION, 0); + return (NULL); + } + + raw_size = (uint64_t) e->e_rawsize; + if (sh_type != SHT_NOBITS && + (sh_offset > raw_size || sh_size > raw_size - sh_offset)) { + LIBELF_SET_ERROR(SECTION, 0); + return (NULL); + } + + if ((d = _libelf_allocate_data(s)) == NULL) + return (NULL); + + d->d_data.d_buf = (sh_type == SHT_NOBITS || sh_size == 0) ? NULL : + e->e_rawfile + sh_offset; + d->d_data.d_off = 0; + d->d_data.d_align = sh_align; + d->d_data.d_size = sh_size; + d->d_data.d_type = ELF_T_BYTE; + d->d_data.d_version = e->e_version; + + STAILQ_INSERT_TAIL(&s->s_rawdata, d, d_next); + + return (&d->d_data); +} diff --git a/contrib/elftoolchain/libelf/elf_end.c b/contrib/elftoolchain/libelf/elf_end.c new file mode 100644 index 00000000..c5920c11 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_end.c @@ -0,0 +1,99 @@ +/*- + * Copyright (c) 2006,2008-2009,2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +#if ELFTC_HAVE_MMAP +#include +#endif + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +int +elf_end(Elf *e) +{ + Elf *sv; + Elf_Scn *scn, *tscn; + + if (e == NULL || e->e_activations == 0) + return (0); + + if (--e->e_activations > 0) + return (e->e_activations); + + assert(e->e_activations == 0); + + while (e && e->e_activations == 0) { + switch (e->e_kind) { + case ELF_K_AR: + /* + * If we still have open child descriptors, we + * need to defer reclaiming resources till all + * the child descriptors for the archive are + * closed. + */ + if (e->e_u.e_ar.e_nchildren > 0) + return (0); + break; + case ELF_K_ELF: + /* + * Reclaim all section descriptors. + */ + STAILQ_FOREACH_SAFE(scn, &e->e_u.e_elf.e_scn, s_next, + tscn) + scn = _libelf_release_scn(scn); + break; + case ELF_K_NUM: + assert(0); + default: + break; + } + + if (e->e_rawfile) { + if (e->e_flags & LIBELF_F_RAWFILE_MALLOC) + free(e->e_rawfile); +#if ELFTC_HAVE_MMAP + else if (e->e_flags & LIBELF_F_RAWFILE_MMAP) + (void) munmap(e->e_rawfile, (size_t) e->e_rawsize); +#endif + } + + sv = e; + if ((e = e->e_parent) != NULL) + e->e_u.e_ar.e_nchildren--; + _libelf_release_elf(sv); + } + + return (0); +} diff --git a/contrib/elftoolchain/libelf/elf_errmsg.c b/contrib/elftoolchain/libelf/elf_errmsg.c new file mode 100644 index 00000000..de242828 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_errmsg.c @@ -0,0 +1,87 @@ +/*- + * Copyright (c) 2006,2008,2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Retrieve a human readable translation for an error message. + */ + +static const char *_libelf_errors[] = { +#define DEFINE_ERROR(N,S) [ELF_E_##N] = S + DEFINE_ERROR(NONE, "No Error"), + DEFINE_ERROR(ARCHIVE, "Malformed ar(1) archive"), + DEFINE_ERROR(ARGUMENT, "Invalid argument"), + DEFINE_ERROR(CLASS, "ELF class mismatch"), + DEFINE_ERROR(DATA, "Invalid data buffer descriptor"), + DEFINE_ERROR(HEADER, "Missing or malformed ELF header"), + DEFINE_ERROR(IO, "I/O error"), + DEFINE_ERROR(LAYOUT, "Layout constraint violation"), + DEFINE_ERROR(MODE, "Incorrect ELF descriptor mode"), + DEFINE_ERROR(RANGE, "Value out of range of target"), + DEFINE_ERROR(RESOURCE, "Resource exhaustion"), + DEFINE_ERROR(SECTION, "Invalid section descriptor"), + DEFINE_ERROR(SEQUENCE, "API calls out of sequence"), + DEFINE_ERROR(UNIMPL, "Unimplemented feature"), + DEFINE_ERROR(VERSION, "Unknown ELF API version"), + DEFINE_ERROR(NUM, "Unknown error") +#undef DEFINE_ERROR +}; + +const char * +elf_errmsg(int error) +{ + int oserr; + + if (error == ELF_E_NONE && + (error = LIBELF_PRIVATE(error)) == 0) + return NULL; + else if (error == -1) + error = LIBELF_PRIVATE(error); + + oserr = error >> LIBELF_OS_ERROR_SHIFT; + error &= LIBELF_ELF_ERROR_MASK; + + if (error < ELF_E_NONE || error >= ELF_E_NUM) + return _libelf_errors[ELF_E_NUM]; + if (oserr) { + (void) snprintf((char *) LIBELF_PRIVATE(msg), + sizeof(LIBELF_PRIVATE(msg)), "%s: %s", + _libelf_errors[error], strerror(oserr)); + return (const char *)&LIBELF_PRIVATE(msg); + } + return _libelf_errors[error]; +} diff --git a/contrib/elftoolchain/libelf/elf_errno.c b/contrib/elftoolchain/libelf/elf_errno.c new file mode 100644 index 00000000..baf6c0d7 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_errno.c @@ -0,0 +1,45 @@ +/*- + * Copyright (c) 2006,2008,2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +int +elf_errno(void) +{ + int old; + + old = LIBELF_PRIVATE(error); + LIBELF_PRIVATE(error) = 0; + return (old & LIBELF_ELF_ERROR_MASK); +} diff --git a/contrib/elftoolchain/libelf/elf_fill.c b/contrib/elftoolchain/libelf/elf_fill.c new file mode 100644 index 00000000..a6499182 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_fill.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +void +elf_fill(int fill) +{ + LIBELF_PRIVATE(fillchar) = fill; +} diff --git a/contrib/elftoolchain/libelf/elf_flag.c b/contrib/elftoolchain/libelf/elf_flag.c new file mode 100644 index 00000000..0e68ef08 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_flag.c @@ -0,0 +1,200 @@ +/*- + * Copyright (c) 2006,2008-2009,2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +unsigned int +elf_flagarhdr(Elf_Arhdr *a, Elf_Cmd c, unsigned int flags) +{ + unsigned int r; + + if (a == NULL) + return (0); + + if ((c != ELF_C_SET && c != ELF_C_CLR) || + (flags & ~ELF_F_DIRTY) != 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (c == ELF_C_SET) + r = a->ar_flags |= flags; + else + r = a->ar_flags &= ~flags; + + return (r & LIBELF_F_API_MASK); +} + +unsigned int +elf_flagdata(Elf_Data *d, Elf_Cmd c, unsigned int flags) +{ + unsigned int r; + struct _Libelf_Data *ld; + + if (d == NULL) + return (0); + + if ((c != ELF_C_SET && c != ELF_C_CLR) || + (flags & ~ELF_F_DIRTY) != 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ld = (struct _Libelf_Data *) d; + + if (c == ELF_C_SET) + r = ld->d_flags |= flags; + else + r = ld->d_flags &= ~flags; + + return (r & LIBELF_F_API_MASK); +} + +unsigned int +elf_flagehdr(Elf *e, Elf_Cmd c, unsigned int flags) +{ + int ec; + void *ehdr; + + if (e == NULL) + return (0); + + if ((c != ELF_C_SET && c != ELF_C_CLR) || + (e->e_kind != ELF_K_ELF) || (flags & ~ELF_F_DIRTY) != 0 || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) + ehdr = e->e_u.e_elf.e_ehdr.e_ehdr32; + else + ehdr = e->e_u.e_elf.e_ehdr.e_ehdr64; + + if (ehdr == NULL) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (0); + } + + return (elf_flagelf(e, c, flags)); +} + +unsigned int +elf_flagelf(Elf *e, Elf_Cmd c, unsigned int flags) +{ + unsigned int r; + + if (e == NULL) + return (0); + + if ((c != ELF_C_SET && c != ELF_C_CLR) || + (e->e_kind != ELF_K_ELF) || + (flags & ~(ELF_F_ARCHIVE | ELF_F_ARCHIVE_SYSV | + ELF_F_DIRTY | ELF_F_LAYOUT)) != 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((flags & ELF_F_ARCHIVE_SYSV) && (flags & ELF_F_ARCHIVE) == 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((flags & ELF_F_ARCHIVE) && e->e_cmd != ELF_C_WRITE) { + LIBELF_SET_ERROR(MODE, 0); + return (0); + } + + if (c == ELF_C_SET) + r = e->e_flags |= flags; + else + r = e->e_flags &= ~flags; + return (r & LIBELF_F_API_MASK); +} + +unsigned int +elf_flagphdr(Elf *e, Elf_Cmd c, unsigned int flags) +{ + int ec; + void *phdr; + + if (e == NULL) + return (0); + + if ((c != ELF_C_SET && c != ELF_C_CLR) || + (e->e_kind != ELF_K_ELF) || (flags & ~ELF_F_DIRTY) != 0 || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) + phdr = e->e_u.e_elf.e_phdr.e_phdr32; + else + phdr = e->e_u.e_elf.e_phdr.e_phdr64; + + if (phdr == NULL) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (0); + } + + return (elf_flagelf(e, c, flags)); +} + +unsigned int +elf_flagscn(Elf_Scn *s, Elf_Cmd c, unsigned int flags) +{ + unsigned int r; + + if (s == NULL) + return (0); + + if ((c != ELF_C_SET && c != ELF_C_CLR) || + (flags & ~ELF_F_DIRTY) != 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (c == ELF_C_SET) + r = s->s_flags |= flags; + else + r = s->s_flags &= ~flags; + return (r & LIBELF_F_API_MASK); +} + +unsigned int +elf_flagshdr(Elf_Scn *s, Elf_Cmd c, unsigned int flags) +{ + return (elf_flagscn(s, c, flags)); +} diff --git a/contrib/elftoolchain/libelf/elf_getarhdr.c b/contrib/elftoolchain/libelf/elf_getarhdr.c new file mode 100644 index 00000000..139ff36d --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_getarhdr.c @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2006,2008,2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf_Arhdr * +elf_getarhdr(Elf *e) +{ + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (e->e_flags & LIBELF_F_AR_HEADER) + return (e->e_hdr.e_arhdr); + + return (_libelf_ar_gethdr(e)); +} diff --git a/contrib/elftoolchain/libelf/elf_getarsym.c b/contrib/elftoolchain/libelf/elf_getarsym.c new file mode 100644 index 00000000..e9bd479e --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_getarsym.c @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf_Arsym * +elf_getarsym(Elf *ar, size_t *ptr) +{ + size_t n; + Elf_Arsym *symtab; + + n = 0; + symtab = NULL; + + if (ar == NULL || ar->e_kind != ELF_K_AR) + LIBELF_SET_ERROR(ARGUMENT, 0); + else if ((symtab = ar->e_u.e_ar.e_symtab) != NULL) + n = ar->e_u.e_ar.e_symtabsz; + else if (ar->e_u.e_ar.e_rawsymtab) + symtab = (ar->e_flags & LIBELF_F_AR_VARIANT_SVR4) ? + _libelf_ar_process_svr4_symtab(ar, &n) : + _libelf_ar_process_bsd_symtab(ar, &n); + else + LIBELF_SET_ERROR(ARCHIVE, 0); + + if (ptr) + *ptr = n; + return (symtab); +} diff --git a/contrib/elftoolchain/libelf/elf_getbase.c b/contrib/elftoolchain/libelf/elf_getbase.c new file mode 100644 index 00000000..fe378afa --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_getbase.c @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +off_t +elf_getbase(Elf *e) +{ + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return ((off_t) -1); + } + + if (e->e_parent == NULL) + return ((off_t) 0); + + return ((off_t) ((uintptr_t) e->e_rawfile - + (uintptr_t) e->e_parent->e_rawfile)); +} diff --git a/contrib/elftoolchain/libelf/elf_getident.c b/contrib/elftoolchain/libelf/elf_getident.c new file mode 100644 index 00000000..701b1f20 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_getident.c @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +char * +elf_getident(Elf *e, size_t *sz) +{ + + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + goto error; + } + + if (e->e_cmd == ELF_C_WRITE && e->e_rawfile == NULL) { + LIBELF_SET_ERROR(SEQUENCE, 0); + goto error; + } + + assert(e->e_kind != ELF_K_AR || e->e_cmd == ELF_C_READ); + + if (sz) { + if (e->e_kind == ELF_K_AR) + *sz = SARMAG; + else if (e->e_kind == ELF_K_ELF) + *sz = EI_NIDENT; + else + *sz = (size_t) e->e_rawsize; + } + + return ((char *) e->e_rawfile); + + error: + if (sz) + *sz = 0; + return (NULL); +} diff --git a/contrib/elftoolchain/libelf/elf_getversion.c b/contrib/elftoolchain/libelf/elf_getversion.c new file mode 100644 index 00000000..24e68e6d --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_getversion.c @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2021 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +unsigned int +elf_getversion(Elf *e) +{ + if (e == NULL || e->e_kind != ELF_K_ELF) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (EV_NONE); + } + + return (e->e_version); +} diff --git a/contrib/elftoolchain/libelf/elf_hash.c b/contrib/elftoolchain/libelf/elf_hash.c new file mode 100644 index 00000000..8d20acbd --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_hash.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * This elf_hash function is defined by the System V ABI. + */ + +unsigned long +elf_hash(const char *name) +{ + unsigned long h, t; + const unsigned char *s; + + s = (const unsigned char *) name; + h = t = 0; + + for (; *s != '\0'; h = h & ~t) { + h = (h << 4) + *s++; + t = h & 0xF0000000UL; + if (t) + h ^= t >> 24; + } + + return (h); +} diff --git a/contrib/elftoolchain/libelf/elf_kind.c b/contrib/elftoolchain/libelf/elf_kind.c new file mode 100644 index 00000000..d182c37b --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_kind.c @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf_Kind +elf_kind(Elf *e) +{ + if (e == NULL) + return (ELF_K_NONE); + if (e->e_kind == ELF_K_AR || + e->e_kind == ELF_K_ELF) + return (e->e_kind); + return (ELF_K_NONE); +} diff --git a/contrib/elftoolchain/libelf/elf_memory.c b/contrib/elftoolchain/libelf/elf_memory.c new file mode 100644 index 00000000..21cf2d2d --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_memory.c @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf * +elf_memory(char *image, size_t sz) +{ + if (LIBELF_PRIVATE(version) == EV_NONE) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (NULL); + } + + if (image == NULL || sz == 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + return (_libelf_memory((unsigned char *) image, sz, 1)); +} diff --git a/contrib/elftoolchain/libelf/elf_next.c b/contrib/elftoolchain/libelf/elf_next.c new file mode 100644 index 00000000..66fd2e22 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_next.c @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf_Cmd +elf_next(Elf *e) +{ + off_t next; + Elf *parent; + + if (e == NULL) + return (ELF_C_NULL); + + if ((parent = e->e_parent) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (ELF_C_NULL); + } + + assert(parent->e_kind == ELF_K_AR); + assert(parent->e_cmd == ELF_C_READ); + assert(e->e_rawfile > parent->e_rawfile); + + next = e->e_rawfile - parent->e_rawfile + (off_t) e->e_rawsize; + next = (next + 1) & ~1; /* round up to an even boundary */ + + /* + * Setup the 'e_next' field of the archive descriptor for the + * next call to 'elf_begin()'. + */ + parent->e_u.e_ar.e_next = (next >= (off_t) parent->e_rawsize) ? + (off_t) 0 : next; + + /* + * Return an error if the 'e_next' field falls outside the current + * file. + * + * This check is performed after updating the parent descriptor's + * 'e_next' field so that the next call to elf_begin(3) will terminate + * traversal of a too-small archive even if client code forgets to + * check the return value from elf_next(3). + */ + if (next > (off_t) parent->e_rawsize) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (ELF_C_NULL); + } + + return (ELF_C_READ); +} diff --git a/contrib/elftoolchain/libelf/elf_open.c b/contrib/elftoolchain/libelf/elf_open.c new file mode 100644 index 00000000..577bcc7f --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_open.c @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Extension API: open a file for reading, ignoring parse errors. + */ + +Elf * +elf_open(int fd) +{ + if (LIBELF_PRIVATE(version) == EV_NONE) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (NULL); + } + + return (_libelf_open_object(fd, ELF_C_READ, 0)); +} + +/* + * Extension API: create an ELF descriptor for an in-memory object, + * ignoring parse errors. + */ + +Elf * +elf_openmemory(char *image, size_t sz) +{ + if (LIBELF_PRIVATE(version) == EV_NONE) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (NULL); + } + + if (image == NULL || sz == 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + return (_libelf_memory((unsigned char *) image, sz, 0)); +} diff --git a/contrib/elftoolchain/libelf/elf_phnum.c b/contrib/elftoolchain/libelf/elf_phnum.c new file mode 100644 index 00000000..3ade2c45 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_phnum.c @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +static int +_libelf_getphdrnum(Elf *e, size_t *phnum) +{ + void *eh; + int ec; + + if (e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (-1); + } + + if ((eh = _libelf_ehdr(e, ec, 0)) == NULL) + return (-1); + + *phnum = e->e_u.e_elf.e_nphdr; + + return (0); +} + +int +elf_getphdrnum(Elf *e, size_t *phnum) +{ + return (_libelf_getphdrnum(e, phnum)); +} + +/* Deprecated API */ +int +elf_getphnum(Elf *e, size_t *phnum) +{ + return (_libelf_getphdrnum(e, phnum) >= 0); +} diff --git a/contrib/elftoolchain/libelf/elf_rand.c b/contrib/elftoolchain/libelf/elf_rand.c new file mode 100644 index 00000000..6946fa6a --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_rand.c @@ -0,0 +1,70 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +off_t +elf_rand(Elf *ar, off_t offset) +{ + struct ar_hdr *arh; + off_t offset_of_member; + + if (ar == NULL || ar->e_kind != ELF_K_AR || + (offset & 1) || offset < SARMAG || + offset >= ar->e_rawsize) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return 0; + } + + offset_of_member = offset + (off_t) sizeof(struct ar_hdr); + + if (offset_of_member <= 0 || /* Numeric overflow. */ + offset_of_member >= ar->e_rawsize) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return 0; + } + + arh = (struct ar_hdr *) (ar->e_rawfile + offset); + + /* a too simple sanity check */ + if (arh->ar_fmag[0] != '`' || arh->ar_fmag[1] != '\n') { + LIBELF_SET_ERROR(ARCHIVE, 0); + return 0; + } + + ar->e_u.e_ar.e_next = offset; + + return (offset); +} diff --git a/contrib/elftoolchain/libelf/elf_rawfile.c b/contrib/elftoolchain/libelf/elf_rawfile.c new file mode 100644 index 00000000..cd048e3a --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_rawfile.c @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +char * +elf_rawfile(Elf *e, size_t *sz) +{ + unsigned char *ptr; + + ptr = NULL; + + if (e == NULL) + LIBELF_SET_ERROR(ARGUMENT, 0); + else if ((ptr = e->e_rawfile) == NULL && e->e_cmd == ELF_C_WRITE) + LIBELF_SET_ERROR(SEQUENCE, 0); + + if (sz) + *sz = e ? (size_t) e->e_rawsize : 0; + + return ((char *) ptr); +} diff --git a/contrib/elftoolchain/libelf/elf_scn.c b/contrib/elftoolchain/libelf/elf_scn.c new file mode 100644 index 00000000..2557581a --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_scn.c @@ -0,0 +1,239 @@ +/*- + * Copyright (c) 2006,2008-2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Load an ELF section table and create a list of Elf_Scn structures. + */ +int +_libelf_load_section_headers(Elf *e, void *ehdr) +{ + Elf_Scn *scn; + uint64_t shoff; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + int ec, swapbytes; + unsigned char *src; + size_t fsz, i, shnum; + _libelf_translator_function *xlator; + + assert(e != NULL); + assert(ehdr != NULL); + assert((e->e_flags & LIBELF_F_SHDRS_LOADED) == 0); + +#define CHECK_EHDR(E,EH) do { \ + uintmax_t rawsize = (uintmax_t) e->e_rawsize; \ + if (shoff > (uintmax_t) e->e_rawsize || \ + fsz != (EH)->e_shentsize || \ + shnum > SIZE_MAX / fsz || \ + fsz * shnum > rawsize - shoff) { \ + LIBELF_SET_ERROR(HEADER, 0); \ + return (0); \ + } \ + } while (/* CONSTCOND */ 0) + + ec = e->e_class; + fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, (size_t) 1); + assert(fsz > 0); + + shnum = e->e_u.e_elf.e_nscn; + + if (ec == ELFCLASS32) { + eh32 = (Elf32_Ehdr *) ehdr; + shoff = (uint64_t) eh32->e_shoff; + CHECK_EHDR(e, eh32); + } else { + eh64 = (Elf64_Ehdr *) ehdr; + shoff = eh64->e_shoff; + CHECK_EHDR(e, eh64); + } + + xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); + + swapbytes = e->e_byteorder != LIBELF_PRIVATE(byteorder); + src = e->e_rawfile + shoff; + + /* + * If the file is using extended numbering then section #0 + * would have already been read in. + */ + + i = 0; + if (!STAILQ_EMPTY(&e->e_u.e_elf.e_scn)) { + assert(STAILQ_FIRST(&e->e_u.e_elf.e_scn) == + STAILQ_LAST(&e->e_u.e_elf.e_scn, _Elf_Scn, s_next)); + + i = 1; + src += fsz; + } + + for (; i < shnum; i++, src += fsz) { + if ((scn = _libelf_allocate_scn(e, i)) == NULL) + return (0); + + (*xlator)((unsigned char *) &scn->s_shdr, sizeof(scn->s_shdr), + src, (size_t) 1, swapbytes); + + if (ec == ELFCLASS32) { + scn->s_offset = scn->s_rawoff = + scn->s_shdr.s_shdr32.sh_offset; + scn->s_size = scn->s_shdr.s_shdr32.sh_size; + } else { + scn->s_offset = scn->s_rawoff = + scn->s_shdr.s_shdr64.sh_offset; + scn->s_size = scn->s_shdr.s_shdr64.sh_size; + } + } + + e->e_flags |= LIBELF_F_SHDRS_LOADED; + + return (1); +} + + +Elf_Scn * +elf_getscn(Elf *e, size_t index) +{ + int ec; + void *ehdr; + Elf_Scn *s; + + if (e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) + return (NULL); + + if (e->e_cmd != ELF_C_WRITE && + (e->e_flags & LIBELF_F_SHDRS_LOADED) == 0 && + _libelf_load_section_headers(e, ehdr) == 0) + return (NULL); + + STAILQ_FOREACH(s, &e->e_u.e_elf.e_scn, s_next) + if (s->s_ndx == index) + return (s); + + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); +} + +size_t +elf_ndxscn(Elf_Scn *s) +{ + if (s == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (SHN_UNDEF); + } + return (s->s_ndx); +} + +Elf_Scn * +elf_newscn(Elf *e) +{ + int ec; + void *ehdr; + Elf_Scn *scn; + + if (e == NULL || e->e_kind != ELF_K_ELF) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) { + LIBELF_SET_ERROR(CLASS, 0); + return (NULL); + } + + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) + return (NULL); + + /* + * The application may be asking for a new section descriptor + * on an ELF object opened with ELF_C_RDWR or ELF_C_READ. We + * need to bring in the existing section information before + * appending a new one to the list. + * + * Per the ELF(3) API, an application is allowed to open a + * file using ELF_C_READ, mess with its internal structure and + * use elf_update(...,ELF_C_NULL) to compute its new layout. + */ + if (e->e_cmd != ELF_C_WRITE && + (e->e_flags & LIBELF_F_SHDRS_LOADED) == 0 && + _libelf_load_section_headers(e, ehdr) == 0) + return (NULL); + + if (STAILQ_EMPTY(&e->e_u.e_elf.e_scn)) { + assert(e->e_u.e_elf.e_nscn == 0); + if ((scn = _libelf_allocate_scn(e, (size_t) SHN_UNDEF)) == + NULL) + return (NULL); + e->e_u.e_elf.e_nscn++; + } + + assert(e->e_u.e_elf.e_nscn > 0); + + if ((scn = _libelf_allocate_scn(e, e->e_u.e_elf.e_nscn)) == NULL) + return (NULL); + + e->e_u.e_elf.e_nscn++; + + (void) elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY); + + return (scn); +} + +Elf_Scn * +elf_nextscn(Elf *e, Elf_Scn *s) +{ + if (e == NULL || (e->e_kind != ELF_K_ELF) || + (s && s->s_elf != e)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + return (s == NULL ? elf_getscn(e, (size_t) 1) : + STAILQ_NEXT(s, s_next)); +} diff --git a/contrib/elftoolchain/libelf/elf_shnum.c b/contrib/elftoolchain/libelf/elf_shnum.c new file mode 100644 index 00000000..4319a249 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_shnum.c @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +static int +_libelf_getshdrnum(Elf *e, size_t *shnum) +{ + void *eh; + int ec; + + if (e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (-1); + } + + if ((eh = _libelf_ehdr(e, ec, 0)) == NULL) + return (-1); + + *shnum = e->e_u.e_elf.e_nscn; + + return (0); +} + +int +elf_getshdrnum(Elf *e, size_t *shnum) +{ + return (_libelf_getshdrnum(e, shnum)); +} + +/* Deprecated API. */ +int +elf_getshnum(Elf *e, size_t *shnum) +{ + return (_libelf_getshdrnum(e, shnum) >= 0); +} diff --git a/contrib/elftoolchain/libelf/elf_shstrndx.c b/contrib/elftoolchain/libelf/elf_shstrndx.c new file mode 100644 index 00000000..90c4b57a --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_shstrndx.c @@ -0,0 +1,84 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +static int +_libelf_getshdrstrndx(Elf *e, size_t *strndx) +{ + void *eh; + int ec; + + if (e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (-1); + } + + if ((eh = _libelf_ehdr(e, ec, 0)) == NULL) + return (-1); + + *strndx = e->e_u.e_elf.e_strndx; + + return (0); +} + +int +elf_getshdrstrndx(Elf *e, size_t *strndx) +{ + return (_libelf_getshdrstrndx(e, strndx)); +} + +int +elf_getshstrndx(Elf *e, size_t *strndx) /* Deprecated API. */ +{ + return (_libelf_getshdrstrndx(e, strndx) >= 0); +} + +int +elf_setshstrndx(Elf *e, size_t strndx) +{ + void *eh; + int ec; + + if (e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || + ((eh = _libelf_ehdr(e, ec, 0)) == NULL)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + return (_libelf_setshstrndx(e, eh, ec, strndx)); +} diff --git a/contrib/elftoolchain/libelf/elf_strptr.c b/contrib/elftoolchain/libelf/elf_strptr.c new file mode 100644 index 00000000..6a9e7c5d --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_strptr.c @@ -0,0 +1,135 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Convert an ELF section#,offset pair to a string pointer. + */ + +char * +elf_strptr(Elf *e, size_t scndx, size_t offset) +{ + Elf_Scn *s; + Elf_Data *d; + GElf_Shdr shdr; + uint64_t alignment, count; + + if (e == NULL || e->e_kind != ELF_K_ELF) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((s = elf_getscn(e, scndx)) == NULL || + gelf_getshdr(s, &shdr) == NULL) + return (NULL); + + if (shdr.sh_type != SHT_STRTAB || + offset >= shdr.sh_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + d = NULL; + if (e->e_flags & ELF_F_LAYOUT) { + + /* + * The application is taking responsibility for the + * ELF object's layout, so we can directly translate + * an offset to a `char *' address using the `d_off' + * members of Elf_Data descriptors. + */ + while ((d = elf_getdata(s, d)) != NULL) { + + if (d->d_buf == 0 || d->d_size == 0) + continue; + + if (d->d_type != ELF_T_BYTE) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + if (offset >= d->d_off && + offset < d->d_off + d->d_size) + return ((char *) d->d_buf + offset - d->d_off); + } + } else { + /* + * Otherwise, the `d_off' members are not useable and + * we need to compute offsets ourselves, taking into + * account 'holes' in coverage of the section introduced + * by alignment requirements. + */ + count = (uint64_t) 0; /* cumulative count of bytes seen */ + while ((d = elf_getdata(s, d)) != NULL && count <= offset) { + + if (d->d_buf == NULL || d->d_size == 0) + continue; + + if (d->d_type != ELF_T_BYTE) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + if ((alignment = d->d_align) > 1) { + if ((alignment & (alignment - 1)) != 0) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + count = roundup2(count, alignment); + } + + if (offset < count) { + /* offset starts in the 'hole' */ + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (offset < count + d->d_size) { + if (d->d_buf != NULL) + return ((char *) d->d_buf + + offset - count); + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + count += d->d_size; + } + } + + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); +} diff --git a/contrib/elftoolchain/libelf/elf_types.m4 b/contrib/elftoolchain/libelf/elf_types.m4 new file mode 100644 index 00000000..e23cfd97 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_types.m4 @@ -0,0 +1,309 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +/* + * ELF types, defined in the "enum Elf_Type" API. + * + * The members of the list form a 2-tuple: (name, C-type-suffix). + * + `name' is an Elf_Type symbol without the `ELF_T_' prefix. + * + `C-type-suffix' is the suffix for Elf32_ and Elf64_ type names. + */ + +define(`ELF_TYPE_LIST', + ``ADDR, Addr', + `BYTE, Byte', + `CAP, Cap', + `DYN, Dyn', + `EHDR, Ehdr', + `GNUHASH, -', + `HALF, Half', + `LWORD, Lword', + `MOVE, Move', + `MOVEP, MoveP', + `NOTE, Note', + `OFF, Off', + `PHDR, Phdr', + `REL, Rel', + `RELA, Rela', + `SHDR, Shdr', + `SWORD, Sword', + `SXWORD, Sxword', + `SYMINFO, Syminfo', + `SYM, Sym', + `VDEF, Verdef', + `VNEED, Verneed', + `WORD, Word', + `XWORD, Xword', + `NUM, _'') + +/* + * DEFINE_STRUCT(NAME,MEMBERLIST...) + * + * Map a type name to its members. + * + * Each member-list element comprises of pairs of (field name, type), + * in the sequence used in the file representation of `NAME'. + * + * Each member list element comprises a pair containing a field name + * and a basic type. Basic types include IDENT, HALF, WORD, LWORD, + * ADDR{32,64}, OFF{32,64}, SWORD, XWORD, SXWORD. + * + * The last element of a member list is the null element: `_,_'. + */ + +define(`DEFINE_STRUCT',`define(`$1_DEF',shift($@))dnl') + +DEFINE_STRUCT(`Elf32_Cap', + ``c_tag, WORD', + `c_un.c_val, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Cap', + ``c_tag, XWORD', + `c_un.c_val, XWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Dyn', + ``d_tag, SWORD', + `d_un.d_ptr, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Dyn', + ``d_tag, SXWORD', + `d_un.d_ptr, XWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Ehdr', + ``e_ident, IDENT', + `e_type, HALF', + `e_machine, HALF', + `e_version, WORD', + `e_entry, ADDR', + `e_phoff, OFF', + `e_shoff, OFF', + `e_flags, WORD', + `e_ehsize, HALF', + `e_phentsize, HALF', + `e_phnum, HALF', + `e_shentsize, HALF', + `e_shnum, HALF', + `e_shstrndx, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf64_Ehdr', + ``e_ident, IDENT', + `e_type, HALF', + `e_machine, HALF', + `e_version, WORD', + `e_entry, ADDR', + `e_phoff, OFF', + `e_shoff, OFF', + `e_flags, WORD', + `e_ehsize, HALF', + `e_phentsize, HALF', + `e_phnum, HALF', + `e_shentsize, HALF', + `e_shnum, HALF', + `e_shstrndx, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf32_Move', + ``m_value, LWORD', + `m_info, WORD', + `m_poffset, WORD', + `m_repeat, HALF', + `m_stride, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf64_Move', + ``m_value, LWORD', + `m_info, XWORD', + `m_poffset, XWORD', + `m_repeat, HALF', + `m_stride, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf32_Phdr', + ``p_type, WORD', + `p_offset, OFF', + `p_vaddr, ADDR', + `p_paddr, ADDR', + `p_filesz, WORD', + `p_memsz, WORD', + `p_flags, WORD', + `p_align, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Phdr', + ``p_type, WORD', + `p_flags, WORD', + `p_offset, OFF', + `p_vaddr, ADDR', + `p_paddr, ADDR', + `p_filesz, XWORD', + `p_memsz, XWORD', + `p_align, XWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Rel', + ``r_offset, ADDR', + `r_info, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Rel', + ``r_offset, ADDR', + `r_info, XWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Rela', + ``r_offset, ADDR', + `r_info, WORD', + `r_addend, SWORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Rela', + ``r_offset, ADDR', + `r_info, XWORD', + `r_addend, SXWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Shdr', + ``sh_name, WORD', + `sh_type, WORD', + `sh_flags, WORD', + `sh_addr, ADDR', + `sh_offset, OFF', + `sh_size, WORD', + `sh_link, WORD', + `sh_info, WORD', + `sh_addralign, WORD', + `sh_entsize, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Shdr', + ``sh_name, WORD', + `sh_type, WORD', + `sh_flags, XWORD', + `sh_addr, ADDR', + `sh_offset, OFF', + `sh_size, XWORD', + `sh_link, WORD', + `sh_info, WORD', + `sh_addralign, XWORD', + `sh_entsize, XWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Sym', + ``st_name, WORD', + `st_value, ADDR', + `st_size, WORD', + `st_info, BYTE', + `st_other, BYTE', + `st_shndx, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf64_Sym', + ``st_name, WORD', + `st_info, BYTE', + `st_other, BYTE', + `st_shndx, HALF', + `st_value, ADDR', + `st_size, XWORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Syminfo', + ``si_boundto, HALF', + `si_flags, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf64_Syminfo', + ``si_boundto, HALF', + `si_flags, HALF', + `_,_'') + +DEFINE_STRUCT(`Elf32_Verdaux', + ``vda_name, WORD', + `vda_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Verdaux', + ``vda_name, WORD', + `vda_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Verdef', + ``vd_version, HALF', + `vd_flags, HALF', + `vd_ndx, HALF', + `vd_cnt, HALF', + `vd_hash, WORD', + `vd_aux, WORD', + `vd_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Verdef', + ``vd_version, HALF', + `vd_flags, HALF', + `vd_ndx, HALF', + `vd_cnt, HALF', + `vd_hash, WORD', + `vd_aux, WORD', + `vd_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Verneed', + ``vn_version, HALF', + `vn_cnt, HALF', + `vn_file, WORD', + `vn_aux, WORD', + `vn_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Verneed', + ``vn_version, HALF', + `vn_cnt, HALF', + `vn_file, WORD', + `vn_aux, WORD', + `vn_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf32_Vernaux', + ``vna_hash, WORD', + `vna_flags, HALF', + `vna_other, HALF', + `vna_name, WORD', + `vna_next, WORD', + `_,_'') + +DEFINE_STRUCT(`Elf64_Vernaux', + ``vna_hash, WORD', + `vna_flags, HALF', + `vna_other, HALF', + `vna_name, WORD', + `vna_next, WORD', + `_,_'') diff --git a/contrib/elftoolchain/libelf/elf_update.c b/contrib/elftoolchain/libelf/elf_update.c new file mode 100644 index 00000000..baf64809 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_update.c @@ -0,0 +1,1246 @@ +/*- + * Copyright (c) 2006-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "_libelf.h" + +#if ELFTC_HAVE_MMAP +#include +#endif + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Layout strategy: + * + * - Case 1: ELF_F_LAYOUT is asserted + * In this case the application has full control over where the + * section header table, program header table, and section data + * will reside. The library only perform error checks. + * + * - Case 2: ELF_F_LAYOUT is not asserted + * + * The library will do the object layout using the following + * ordering: + * - The executable header is placed first, are required by the + * ELF specification. + * - The program header table is placed immediately following the + * executable header. + * - Section data, if any, is placed after the program header + * table, aligned appropriately. + * - The section header table, if needed, is placed last. + * + * There are two sub-cases to be taken care of: + * + * - Case 2a: e->e_cmd == ELF_C_READ or ELF_C_RDWR + * + * In this sub-case, the underlying ELF object may already have + * content in it, which the application may have modified. The + * library will retrieve content from the existing object as + * needed. + * + * - Case 2b: e->e_cmd == ELF_C_WRITE + * + * The ELF object is being created afresh in this sub-case; + * there is no pre-existing content in the underlying ELF + * object. + */ + +/* + * The types of extents in an ELF object. + */ +enum elf_extent { + ELF_EXTENT_EHDR, + ELF_EXTENT_PHDR, + ELF_EXTENT_SECTION, + ELF_EXTENT_SHDR +}; + +/* + * A extent descriptor, used when laying out an ELF object. + */ +struct _Elf_Extent { + SLIST_ENTRY(_Elf_Extent) ex_next; + uint64_t ex_start; /* Start of the region. */ + uint64_t ex_size; /* The size of the region. */ + enum elf_extent ex_type; /* Type of region. */ + void *ex_desc; /* Associated descriptor. */ +}; + +SLIST_HEAD(_Elf_Extent_List, _Elf_Extent); + +/* + * Compute the extents of a section, by looking at the data + * descriptors associated with it. The function returns 1 + * if successful, or zero if an error was detected. + */ +static int +_libelf_compute_section_extents(Elf *e, Elf_Scn *s, off_t rc) +{ + Elf_Data *d; + size_t fsz, msz; + int ec, elftype; + uint32_t sh_type; + uint64_t d_align; + Elf32_Shdr *shdr32; + Elf64_Shdr *shdr64; + struct _Libelf_Data *ld; + uint64_t scn_size, scn_alignment; + uint64_t sh_align, sh_entsize, sh_offset, sh_size; + + ec = e->e_class; + + shdr32 = &s->s_shdr.s_shdr32; + shdr64 = &s->s_shdr.s_shdr64; + if (ec == ELFCLASS32) { + sh_type = shdr32->sh_type; + sh_align = (uint64_t) shdr32->sh_addralign; + sh_entsize = (uint64_t) shdr32->sh_entsize; + sh_offset = (uint64_t) shdr32->sh_offset; + sh_size = (uint64_t) shdr32->sh_size; + } else { + sh_type = shdr64->sh_type; + sh_align = shdr64->sh_addralign; + sh_entsize = shdr64->sh_entsize; + sh_offset = shdr64->sh_offset; + sh_size = shdr64->sh_size; + } + + assert(sh_type != SHT_NULL && sh_type != SHT_NOBITS); + + elftype = _libelf_xlate_shtype(sh_type); + if (elftype < ELF_T_FIRST || elftype > ELF_T_LAST) { + LIBELF_SET_ERROR(SECTION, 0); + return (0); + } + + if (sh_align == 0) + sh_align = _libelf_falign(elftype, ec); + + /* + * Compute the section's size and alignment using the data + * descriptors associated with the section. + */ + if (STAILQ_EMPTY(&s->s_data)) { + /* + * The section's content (if any) has not been read in + * yet. If section is not dirty marked dirty, we can + * reuse the values in the 'sh_size' and 'sh_offset' + * fields of the section header. + */ + if ((s->s_flags & ELF_F_DIRTY) == 0) { + /* + * If the library is doing the layout, then we + * compute the new start offset for the + * section based on the current offset and the + * section's alignment needs. + * + * If the application is doing the layout, we + * can use the value in the 'sh_offset' field + * in the section header directly. + */ + if (e->e_flags & ELF_F_LAYOUT) + goto updatedescriptor; + else + goto computeoffset; + } + + /* + * Otherwise, we need to bring in the section's data + * from the underlying ELF object. + */ + if (e->e_cmd != ELF_C_WRITE && elf_getdata(s, NULL) == NULL) + return (0); + } + + /* + * Loop through the section's data descriptors. + */ + scn_size = 0L; + scn_alignment = 0; + STAILQ_FOREACH(ld, &s->s_data, d_next) { + + d = &ld->d_data; + + /* + * The data buffer's type is known. + */ + if (d->d_type >= ELF_T_NUM) { + LIBELF_SET_ERROR(DATA, 0); + return (0); + } + + /* + * The data buffer's version is supported. + */ + if (d->d_version != e->e_version) { + LIBELF_SET_ERROR(VERSION, 0); + return (0); + } + + /* + * The buffer's alignment is non-zero and a power of + * two. + */ + if ((d_align = d->d_align) == 0 || + (d_align & (d_align - 1))) { + LIBELF_SET_ERROR(DATA, 0); + return (0); + } + + /* + * The data buffer's ELF type, ELF class and ELF version + * should be supported. + */ + if ((msz = _libelf_msize(d->d_type, ec, e->e_version)) == 0) + return (0); + + /* + * The buffer's size should be a multiple of the + * memory size of the underlying type. + */ + if (d->d_size % msz) { + LIBELF_SET_ERROR(DATA, 0); + return (0); + } + + /* + * If the application is controlling layout, then the + * d_offset field should be compatible with the + * buffer's specified alignment. + */ + if ((e->e_flags & ELF_F_LAYOUT) && + (d->d_off & (d_align - 1))) { + LIBELF_SET_ERROR(LAYOUT, 0); + return (0); + } + + /* + * Compute the section's size. + */ + if (e->e_flags & ELF_F_LAYOUT) { + if ((uint64_t) d->d_off + d->d_size > scn_size) + scn_size = d->d_off + d->d_size; + } else { + scn_size = roundup2(scn_size, d->d_align); + d->d_off = scn_size; + fsz = _libelf_fsize(d->d_type, ec, d->d_version, + (size_t) d->d_size / msz); + scn_size += fsz; + } + + /* + * The section's alignment is the maximum alignment + * needed for its data buffers. + */ + if (d_align > scn_alignment) + scn_alignment = d_align; + } + + + /* + * If the application is requesting full control over the + * layout of the section, check the section's specified size, + * offsets and alignment for sanity. + */ + if (e->e_flags & ELF_F_LAYOUT) { + if (scn_alignment > sh_align || + sh_offset % sh_align || + sh_size < scn_size || + sh_offset % _libelf_falign(elftype, ec)) { + LIBELF_SET_ERROR(LAYOUT, 0); + return (0); + } + goto updatedescriptor; + } + + /* + * Otherwise, compute the values in the section header. + * + * The section alignment is the maximum alignment for any of + * its contained data descriptors. + */ + if (scn_alignment > sh_align) + sh_align = scn_alignment; + + /* + * If the section entry size is zero, try and fill in an + * appropriate entry size. Per the elf(5) manual page + * sections without fixed-size entries should have their + * 'sh_entsize' field set to zero. + */ + if (sh_entsize == 0 && + (sh_entsize = _libelf_fsize(elftype, ec, e->e_version, + (size_t) 1)) == 1) + sh_entsize = 0; + + sh_size = scn_size; + +computeoffset: + /* + * Compute the new offset for the section based on + * the section's alignment needs. + */ + sh_offset = roundup((uint64_t) rc, sh_align); + + /* + * Update the section header. + */ + if (ec == ELFCLASS32) { + shdr32->sh_addralign = (uint32_t) sh_align; + shdr32->sh_entsize = (uint32_t) sh_entsize; + shdr32->sh_offset = (uint32_t) sh_offset; + shdr32->sh_size = (uint32_t) sh_size; + } else { + shdr64->sh_addralign = sh_align; + shdr64->sh_entsize = sh_entsize; + shdr64->sh_offset = sh_offset; + shdr64->sh_size = sh_size; + } + +updatedescriptor: + /* + * Update the section descriptor. + */ + s->s_size = sh_size; + s->s_offset = sh_offset; + + return (1); +} + +/* + * Free a list of extent descriptors. + */ + +static void +_libelf_release_extents(struct _Elf_Extent_List *extents) +{ + struct _Elf_Extent *ex; + + while ((ex = SLIST_FIRST(extents)) != NULL) { + SLIST_REMOVE_HEAD(extents, ex_next); + free(ex); + } +} + +/* + * Check if an extent 's' defined by [start..start+size) is free. + * This routine assumes that the given extent list is sorted in order + * of ascending extent offsets. + */ + +static int +_libelf_extent_is_unused(struct _Elf_Extent_List *extents, + const uint64_t start, const uint64_t size, struct _Elf_Extent **prevt) +{ + uint64_t tmax, tmin; + struct _Elf_Extent *t, *pt; + const uint64_t smax = start + size; + + /* First, look for overlaps with existing extents. */ + pt = NULL; + SLIST_FOREACH(t, extents, ex_next) { + tmin = t->ex_start; + tmax = tmin + t->ex_size; + + if (tmax <= start) { + /* + * 't' lies entirely before 's': ...| t |...| s |... + */ + pt = t; + continue; + } else if (smax <= tmin) { + /* + * 's' lies entirely before 't', and after 'pt': + * ...| pt |...| s |...| t |... + */ + assert(pt == NULL || + pt->ex_start + pt->ex_size <= start); + break; + } else + /* 's' and 't' overlap. */ + return (0); + } + + if (prevt) + *prevt = pt; + return (1); +} + +/* + * Insert an extent into the list of extents. + */ + +static int +_libelf_insert_extent(struct _Elf_Extent_List *extents, int type, + uint64_t start, uint64_t size, void *desc) +{ + struct _Elf_Extent *ex, *prevt; + + assert(type >= ELF_EXTENT_EHDR && type <= ELF_EXTENT_SHDR); + + prevt = NULL; + + /* + * If the requested range overlaps with an existing extent, + * signal an error. + */ + if (!_libelf_extent_is_unused(extents, start, size, &prevt)) { + LIBELF_SET_ERROR(LAYOUT, 0); + return (0); + } + + /* Allocate and fill in a new extent descriptor. */ + if ((ex = malloc(sizeof(struct _Elf_Extent))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, errno); + return (0); + } + ex->ex_start = start; + ex->ex_size = size; + ex->ex_desc = desc; + ex->ex_type = type; + + /* Insert the region descriptor into the list. */ + if (prevt) + SLIST_INSERT_AFTER(prevt, ex, ex_next); + else + SLIST_INSERT_HEAD(extents, ex, ex_next); + return (1); +} + +/* + * Recompute section layout. + */ + +static off_t +_libelf_resync_sections(Elf *e, off_t rc, struct _Elf_Extent_List *extents) +{ + int ec; + Elf_Scn *s; + size_t sh_type; + + ec = e->e_class; + + /* + * Make a pass through sections, computing the extent of each + * section. + */ + STAILQ_FOREACH(s, &e->e_u.e_elf.e_scn, s_next) { + if (ec == ELFCLASS32) + sh_type = s->s_shdr.s_shdr32.sh_type; + else + sh_type = s->s_shdr.s_shdr64.sh_type; + + if (sh_type == SHT_NOBITS || sh_type == SHT_NULL) + continue; + + if (_libelf_compute_section_extents(e, s, rc) == 0) + return ((off_t) -1); + + if (s->s_size == 0) + continue; + + if (!_libelf_insert_extent(extents, ELF_EXTENT_SECTION, + s->s_offset, s->s_size, s)) + return ((off_t) -1); + + if ((size_t) rc < s->s_offset + s->s_size) + rc = (off_t) (s->s_offset + s->s_size); + } + + return (rc); +} + +/* + * Recompute the layout of the ELF object and update the internal data + * structures associated with the ELF descriptor. + * + * Returns the size in bytes the ELF object would occupy in its file + * representation. + * + * After a successful call to this function, the following structures + * are updated: + * + * - The ELF header is updated. + * - All extents in the ELF object are sorted in order of ascending + * addresses. Sections have their section header table entries + * updated. An error is signalled if an overlap was detected among + * extents. + * - Data descriptors associated with sections are checked for valid + * types, offsets and alignment. + * + * After a resync_elf() successfully returns, the ELF descriptor is + * ready for being handed over to _libelf_write_elf(). + */ + +static off_t +_libelf_resync_elf(Elf *e, struct _Elf_Extent_List *extents) +{ + int ec, eh_class; + unsigned int eh_byteorder, eh_version; + size_t align, fsz; + size_t phnum, shnum; + off_t rc, phoff, shoff; + void *ehdr, *phdr; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + + rc = 0; + + ec = e->e_class; + + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + /* + * Prepare the EHDR. + */ + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) + return ((off_t) -1); + + eh32 = ehdr; + eh64 = ehdr; + + if (ec == ELFCLASS32) { + eh_byteorder = eh32->e_ident[EI_DATA]; + eh_class = eh32->e_ident[EI_CLASS]; + phoff = (off_t) eh32->e_phoff; + shoff = (off_t) eh32->e_shoff; + eh_version = eh32->e_version; + } else { + eh_byteorder = eh64->e_ident[EI_DATA]; + eh_class = eh64->e_ident[EI_CLASS]; + phoff = (off_t) eh64->e_phoff; + shoff = (off_t) eh64->e_shoff; + eh_version = eh64->e_version; + } + + if (phoff < 0 || shoff < 0) { + LIBELF_SET_ERROR(HEADER, 0); + return ((off_t) -1); + } + + if (eh_version == EV_NONE) + eh_version = EV_CURRENT; + + if (eh_version != e->e_version) { /* always EV_CURRENT */ + LIBELF_SET_ERROR(VERSION, 0); + return ((off_t) -1); + } + + if (eh_class != e->e_class) { + LIBELF_SET_ERROR(CLASS, 0); + return ((off_t) -1); + } + + if (e->e_cmd != ELF_C_WRITE && eh_byteorder != e->e_byteorder) { + LIBELF_SET_ERROR(HEADER, 0); + return ((off_t) -1); + } + + shnum = e->e_u.e_elf.e_nscn; + phnum = e->e_u.e_elf.e_nphdr; + + e->e_byteorder = eh_byteorder; + +#define INITIALIZE_EHDR(E,EC,V) do { \ + unsigned int _version = (unsigned int) (V); \ + (E)->e_ident[EI_MAG0] = ELFMAG0; \ + (E)->e_ident[EI_MAG1] = ELFMAG1; \ + (E)->e_ident[EI_MAG2] = ELFMAG2; \ + (E)->e_ident[EI_MAG3] = ELFMAG3; \ + (E)->e_ident[EI_CLASS] = (unsigned char) (EC); \ + (E)->e_ident[EI_VERSION] = (_version & 0xFFU); \ + (E)->e_ehsize = (uint16_t) _libelf_fsize(ELF_T_EHDR, \ + (EC), _version, (size_t) 1); \ + (E)->e_phentsize = (uint16_t) ((phnum == 0) ? 0 : \ + _libelf_fsize(ELF_T_PHDR, (EC), _version, \ + (size_t) 1)); \ + (E)->e_shentsize = (uint16_t) _libelf_fsize(ELF_T_SHDR, \ + (EC), _version, (size_t) 1); \ + } while (/* CONSTCOND */ 0) + + if (ec == ELFCLASS32) + INITIALIZE_EHDR(eh32, ec, eh_version); + else + INITIALIZE_EHDR(eh64, ec, eh_version); + + (void) elf_flagehdr(e, ELF_C_SET, ELF_F_DIRTY); + + rc += (off_t) _libelf_fsize(ELF_T_EHDR, ec, eh_version, (size_t) 1); + + if (!_libelf_insert_extent(extents, ELF_EXTENT_EHDR, 0, (uint64_t) rc, + ehdr)) + return ((off_t) -1); + + /* + * Compute the layout the program header table, if one is + * present. The program header table needs to be aligned to a + * `natural' boundary. + */ + if (phnum) { + fsz = _libelf_fsize(ELF_T_PHDR, ec, eh_version, phnum); + align = _libelf_falign(ELF_T_PHDR, ec); + + if (e->e_flags & ELF_F_LAYOUT) { + /* + * Check offsets for sanity. + */ + if (rc > phoff) { + LIBELF_SET_ERROR(LAYOUT, 0); + return ((off_t) -1); + } + + if (phoff % (off_t) align) { + LIBELF_SET_ERROR(LAYOUT, 0); + return ((off_t) -1); + } + + } else + phoff = roundup(rc, (off_t) align); + + rc = phoff + (off_t) fsz; + + phdr = _libelf_getphdr(e, ec); + + if (!_libelf_insert_extent(extents, ELF_EXTENT_PHDR, + (uint64_t) phoff, fsz, phdr)) + return ((off_t) -1); + } else + phoff = 0; + + /* + * Compute the layout of the sections associated with the + * file. + */ + + if (e->e_cmd != ELF_C_WRITE && + (e->e_flags & LIBELF_F_SHDRS_LOADED) == 0 && + _libelf_load_section_headers(e, ehdr) == 0) + return ((off_t) -1); + + if ((rc = _libelf_resync_sections(e, rc, extents)) < 0) + return ((off_t) -1); + + /* + * Compute the space taken up by the section header table, if + * one is needed. + * + * If ELF_F_LAYOUT has been asserted, the application may have + * placed the section header table in between existing + * sections, so the net size of the file need not increase due + * to the presence of the section header table. + * + * If the library is responsible for laying out the object, + * the section header table is placed after section data. + */ + if (shnum) { + fsz = _libelf_fsize(ELF_T_SHDR, ec, eh_version, shnum); + align = _libelf_falign(ELF_T_SHDR, ec); + + if (e->e_flags & ELF_F_LAYOUT) { + if (shoff % (off_t) align) { + LIBELF_SET_ERROR(LAYOUT, 0); + return ((off_t) -1); + } + } else + shoff = roundup(rc, (off_t) align); + + if (shoff + (off_t) fsz > rc) + rc = shoff + (off_t) fsz; + + if (!_libelf_insert_extent(extents, ELF_EXTENT_SHDR, + (uint64_t) shoff, fsz, NULL)) + return ((off_t) -1); + } else + shoff = 0; + + /* + * Set the fields of the Executable Header that could potentially use + * extended numbering. + */ + _libelf_setphnum(e, ehdr, ec, phnum); + _libelf_setshnum(e, ehdr, ec, shnum); + + /* + * Update the `e_phoff' and `e_shoff' fields if the library is + * doing the layout. + */ + if ((e->e_flags & ELF_F_LAYOUT) == 0) { + if (ec == ELFCLASS32) { + eh32->e_phoff = (uint32_t) phoff; + eh32->e_shoff = (uint32_t) shoff; + } else { + eh64->e_phoff = (uint64_t) phoff; + eh64->e_shoff = (uint64_t) shoff; + } + } + + return (rc); +} + +/* + * Write out the contents of an ELF section. + */ + +static off_t +_libelf_write_scn(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) +{ + off_t rc; + int ec, em; + Elf_Scn *s; + int elftype; + Elf_Data *d, dst; + uint32_t sh_type; + struct _Libelf_Data *ld; + uint64_t sh_off, sh_size; + size_t fsz, msz, nobjects; + + assert(ex->ex_type == ELF_EXTENT_SECTION); + + s = ex->ex_desc; + rc = (off_t) ex->ex_start; + + if ((ec = e->e_class) == ELFCLASS32) { + sh_type = s->s_shdr.s_shdr32.sh_type; + sh_size = (uint64_t) s->s_shdr.s_shdr32.sh_size; + } else { + sh_type = s->s_shdr.s_shdr64.sh_type; + sh_size = s->s_shdr.s_shdr64.sh_size; + } + + /* + * Ignore sections that do not allocate space in the file. + */ + if (sh_type == SHT_NOBITS || sh_type == SHT_NULL || sh_size == 0) + return (rc); + + elftype = _libelf_xlate_shtype(sh_type); + assert(elftype >= ELF_T_FIRST && elftype <= ELF_T_LAST); + + sh_off = s->s_offset; + assert(sh_off % _libelf_falign(elftype, ec) == 0); + + em = _libelf_elfmachine(e); + + /* + * If the section has a `rawdata' descriptor, and the section + * contents have not been modified, use its contents directly. + * The `s_rawoff' member contains the offset into the original + * file, while `s_offset' contains its new location in the + * destination. + */ + + if (STAILQ_EMPTY(&s->s_data)) { + + if ((d = elf_rawdata(s, NULL)) == NULL) + return ((off_t) -1); + + STAILQ_FOREACH(ld, &s->s_rawdata, d_next) { + + d = &ld->d_data; + + if ((uint64_t) rc < sh_off + d->d_off) + (void) memset(nf + rc, + LIBELF_PRIVATE(fillchar), + (size_t) (sh_off + d->d_off - + (uint64_t) rc)); + rc = (off_t) (sh_off + d->d_off); + + assert(d->d_buf != NULL); + assert(d->d_type == ELF_T_BYTE); + assert(d->d_version == e->e_version); + + (void) memcpy(nf + rc, + e->e_rawfile + s->s_rawoff + d->d_off, + (size_t) d->d_size); + + rc += (off_t) d->d_size; + } + + return (rc); + } + + /* + * Iterate over the set of data descriptors for this section. + * The prior call to _libelf_resync_elf() would have setup the + * descriptors for this step. + */ + + dst.d_version = e->e_version; + + STAILQ_FOREACH(ld, &s->s_data, d_next) { + + d = &ld->d_data; + + if ((msz = _libelf_msize(d->d_type, ec, e->e_version)) == 0) + return ((off_t) -1); + + if ((uint64_t) rc < sh_off + d->d_off) + (void) memset(nf + rc, + LIBELF_PRIVATE(fillchar), + (size_t) (sh_off + d->d_off - (uint64_t) rc)); + + rc = (off_t) (sh_off + d->d_off); + + assert(d->d_buf != NULL); + assert(d->d_version == e->e_version); + assert(d->d_size % msz == 0); + assert(msz != 0); + + nobjects = (size_t) (d->d_size / msz); + + fsz = _libelf_fsize(d->d_type, ec, e->e_version, nobjects); + + dst.d_buf = nf + rc; + dst.d_size = fsz; + + if (_libelf_xlate(&dst, d, e->e_byteorder, ec, em, ELF_TOFILE) + == NULL) + return ((off_t) -1); + + rc += (off_t) fsz; + } + + return (rc); +} + +/* + * Write out an ELF Executable Header. + */ + +static off_t +_libelf_write_ehdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) +{ + int ec, em; + void *ehdr; + size_t fsz, msz; + Elf_Data dst, src; + + assert(ex->ex_type == ELF_EXTENT_EHDR); + assert(ex->ex_start == 0); /* Ehdr always comes first. */ + + ec = e->e_class; + + ehdr = _libelf_ehdr(e, ec, 0); + assert(ehdr != NULL); + + fsz = _libelf_fsize(ELF_T_EHDR, ec, e->e_version, (size_t) 1); + if ((msz = _libelf_msize(ELF_T_EHDR, ec, e->e_version)) == 0) + return ((off_t) -1); + + em = _libelf_elfmachine(e); + + (void) memset(&dst, 0, sizeof(dst)); + (void) memset(&src, 0, sizeof(src)); + + src.d_buf = ehdr; + src.d_size = msz; + src.d_type = ELF_T_EHDR; + src.d_version = dst.d_version = e->e_version; + + dst.d_buf = nf; + dst.d_size = fsz; + + if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, ELF_TOFILE) == + NULL) + return ((off_t) -1); + + return ((off_t) fsz); +} + +/* + * Write out an ELF program header table. + */ + +static off_t +_libelf_write_phdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) +{ + int ec, em; + void *ehdr; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + Elf_Data dst, src; + size_t fsz, msz, phnum; + uint64_t phoff; + + assert(ex->ex_type == ELF_EXTENT_PHDR); + + ec = e->e_class; + + ehdr = _libelf_ehdr(e, ec, 0); + assert(ehdr != NULL); + + phnum = e->e_u.e_elf.e_nphdr; + assert(phnum > 0); + + if (ec == ELFCLASS32) { + eh32 = (Elf32_Ehdr *) ehdr; + phoff = (uint64_t) eh32->e_phoff; + } else { + eh64 = (Elf64_Ehdr *) ehdr; + phoff = eh64->e_phoff; + } + + em = _libelf_elfmachine(e); + + assert(phoff > 0); + assert(ex->ex_start == phoff); + assert(phoff % _libelf_falign(ELF_T_PHDR, ec) == 0); + + (void) memset(&dst, 0, sizeof(dst)); + (void) memset(&src, 0, sizeof(src)); + + if ((msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version)) == 0) + return ((off_t) -1); + fsz = _libelf_fsize(ELF_T_PHDR, ec, e->e_version, phnum); + assert(fsz > 0); + + src.d_buf = _libelf_getphdr(e, ec); + src.d_version = dst.d_version = e->e_version; + src.d_type = ELF_T_PHDR; + src.d_size = phnum * msz; + + dst.d_size = fsz; + dst.d_buf = nf + ex->ex_start; + + if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, ELF_TOFILE) == + NULL) + return ((off_t) -1); + + return ((off_t) (phoff + fsz)); +} + +/* + * Write out an ELF section header table. + */ + +static off_t +_libelf_write_shdr(Elf *e, unsigned char *nf, struct _Elf_Extent *ex) +{ + int ec, em; + void *ehdr; + Elf_Scn *scn; + uint64_t shoff; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + size_t fsz, msz, nscn; + Elf_Data dst, src; + + assert(ex->ex_type == ELF_EXTENT_SHDR); + + ec = e->e_class; + + ehdr = _libelf_ehdr(e, ec, 0); + assert(ehdr != NULL); + + nscn = e->e_u.e_elf.e_nscn; + + if (ec == ELFCLASS32) { + eh32 = (Elf32_Ehdr *) ehdr; + shoff = (uint64_t) eh32->e_shoff; + } else { + eh64 = (Elf64_Ehdr *) ehdr; + shoff = eh64->e_shoff; + } + + em = _libelf_elfmachine(e); + + assert(nscn > 0); + assert(shoff % _libelf_falign(ELF_T_SHDR, ec) == 0); + assert(ex->ex_start == shoff); + + (void) memset(&dst, 0, sizeof(dst)); + (void) memset(&src, 0, sizeof(src)); + + if ((msz = _libelf_msize(ELF_T_SHDR, ec, e->e_version)) == 0) + return ((off_t) -1); + + src.d_type = ELF_T_SHDR; + src.d_size = msz; + src.d_version = dst.d_version = e->e_version; + + fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, (size_t) 1); + + STAILQ_FOREACH(scn, &e->e_u.e_elf.e_scn, s_next) { + if (ec == ELFCLASS32) + src.d_buf = &scn->s_shdr.s_shdr32; + else + src.d_buf = &scn->s_shdr.s_shdr64; + + dst.d_size = fsz; + dst.d_buf = nf + ex->ex_start + scn->s_ndx * fsz; + + if (_libelf_xlate(&dst, &src, e->e_byteorder, ec, em, + ELF_TOFILE) == NULL) + return ((off_t) -1); + } + + return ((off_t) (ex->ex_start + nscn * fsz)); +} + +/* + * Write out the file image. + * + * The original file could have been mapped in with an ELF_C_RDWR + * command and the application could have added new content or + * re-arranged its sections before calling elf_update(). Consequently + * its not safe to work `in place' on the original file. So we + * malloc() the required space for the updated ELF object and build + * the object there and write it out to the underlying file at the + * end. Note that the application may have opened the underlying file + * in ELF_C_RDWR and only retrieved/modified a few sections. We take + * care to avoid translating file sections unnecessarily. + * + * Gaps in the coverage of the file by the file's sections will be + * filled with the fill character set by elf_fill(3). + */ + +static off_t +_libelf_write_elf(Elf *e, off_t newsize, struct _Elf_Extent_List *extents) +{ + off_t nrc, rc; + Elf_Scn *scn, *tscn; + struct _Elf_Extent *ex; + unsigned char *newfile; + + assert(e->e_kind == ELF_K_ELF); + assert(e->e_cmd == ELF_C_RDWR || e->e_cmd == ELF_C_WRITE); + assert(e->e_fd >= 0); + + if ((newfile = malloc((size_t) newsize)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, errno); + return ((off_t) -1); + } + + nrc = rc = 0; + SLIST_FOREACH(ex, extents, ex_next) { + + /* Fill inter-extent gaps. */ + if (ex->ex_start > (size_t) rc) + (void) memset(newfile + rc, LIBELF_PRIVATE(fillchar), + (size_t) (ex->ex_start - (uint64_t) rc)); + + switch (ex->ex_type) { + case ELF_EXTENT_EHDR: + if ((nrc = _libelf_write_ehdr(e, newfile, ex)) < 0) + goto error; + break; + + case ELF_EXTENT_PHDR: + if ((nrc = _libelf_write_phdr(e, newfile, ex)) < 0) + goto error; + break; + + case ELF_EXTENT_SECTION: + if ((nrc = _libelf_write_scn(e, newfile, ex)) < 0) + goto error; + break; + + case ELF_EXTENT_SHDR: + if ((nrc = _libelf_write_shdr(e, newfile, ex)) < 0) + goto error; + break; + + default: + assert(0); + break; + } + + assert(ex->ex_start + ex->ex_size == (size_t) nrc); + assert(rc < nrc); + + rc = nrc; + } + + assert(rc == newsize); + + /* + * For regular files, throw away existing file content and + * unmap any existing mappings. + */ + if ((e->e_flags & LIBELF_F_SPECIAL_FILE) == 0) { + if (ftruncate(e->e_fd, (off_t) 0) < 0 || + lseek(e->e_fd, (off_t) 0, SEEK_SET)) { + LIBELF_SET_ERROR(IO, errno); + goto error; + } +#if ELFTC_HAVE_MMAP + if (e->e_flags & LIBELF_F_RAWFILE_MMAP) { + assert(e->e_rawfile != NULL); + assert(e->e_cmd == ELF_C_RDWR); + if (munmap(e->e_rawfile, (size_t) e->e_rawsize) < 0) { + LIBELF_SET_ERROR(IO, errno); + goto error; + } + } +#endif + } + + /* + * Write out the new contents. + */ + if (write(e->e_fd, newfile, (size_t) newsize) != newsize) { + LIBELF_SET_ERROR(IO, errno); + goto error; + } + + /* + * For files opened in ELF_C_RDWR mode, set up the new 'raw' + * contents. + */ + if (e->e_cmd == ELF_C_RDWR) { + assert(e->e_rawfile != NULL); + assert((e->e_flags & LIBELF_F_RAWFILE_MALLOC) || + (e->e_flags & LIBELF_F_RAWFILE_MMAP)); + if (e->e_flags & LIBELF_F_RAWFILE_MALLOC) { + assert((e->e_flags & LIBELF_F_RAWFILE_MMAP) == 0); + free(e->e_rawfile); + e->e_rawfile = newfile; + newfile = NULL; + } +#if ELFTC_HAVE_MMAP + else if (e->e_flags & LIBELF_F_RAWFILE_MMAP) { + assert((e->e_flags & LIBELF_F_RAWFILE_MALLOC) == 0); + if ((e->e_rawfile = mmap(NULL, (size_t) newsize, + PROT_READ, MAP_PRIVATE, e->e_fd, (off_t) 0)) == + MAP_FAILED) { + LIBELF_SET_ERROR(IO, errno); + goto error; + } + } +#endif /* ELFTC_HAVE_MMAP */ + + /* Record the new size of the file. */ + e->e_rawsize = newsize; + } else { + /* File opened in ELF_C_WRITE mode. */ + assert(e->e_rawfile == NULL); + } + + /* + * Reset flags, remove existing section descriptors and + * {E,P}HDR pointers so that a subsequent elf_get{e,p}hdr() + * and elf_getscn() will function correctly. + */ + + e->e_flags &= ~ELF_F_DIRTY; + + STAILQ_FOREACH_SAFE(scn, &e->e_u.e_elf.e_scn, s_next, tscn) + _libelf_release_scn(scn); + + if (e->e_class == ELFCLASS32) { + free(e->e_u.e_elf.e_ehdr.e_ehdr32); + if (e->e_u.e_elf.e_phdr.e_phdr32) + free(e->e_u.e_elf.e_phdr.e_phdr32); + + e->e_u.e_elf.e_ehdr.e_ehdr32 = NULL; + e->e_u.e_elf.e_phdr.e_phdr32 = NULL; + } else { + free(e->e_u.e_elf.e_ehdr.e_ehdr64); + if (e->e_u.e_elf.e_phdr.e_phdr64) + free(e->e_u.e_elf.e_phdr.e_phdr64); + + e->e_u.e_elf.e_ehdr.e_ehdr64 = NULL; + e->e_u.e_elf.e_phdr.e_phdr64 = NULL; + } + + /* Free the temporary buffer. */ + if (newfile) + free(newfile); + + return (rc); + + error: + free(newfile); + + return ((off_t) -1); +} + +/* + * Update an ELF object. + */ + +off_t +elf_update(Elf *e, Elf_Cmd c) +{ + int ec; + off_t rc; + struct _Elf_Extent_List extents; + + rc = (off_t) -1; + + if (e == NULL || e->e_kind != ELF_K_ELF || + (c != ELF_C_NULL && c != ELF_C_WRITE)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (rc); + } + + if ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) { + LIBELF_SET_ERROR(CLASS, 0); + return (rc); + } + + if (e->e_version == EV_NONE) + e->e_version = EV_CURRENT; + + if (c == ELF_C_WRITE && e->e_cmd == ELF_C_READ) { + LIBELF_SET_ERROR(MODE, 0); + return (rc); + } + + SLIST_INIT(&extents); + + if ((rc = _libelf_resync_elf(e, &extents)) < 0) + goto done; + + if (c == ELF_C_NULL) + goto done; + + if (e->e_fd < 0) { + rc = (off_t) -1; + LIBELF_SET_ERROR(SEQUENCE, 0); + goto done; + } + + rc = _libelf_write_elf(e, rc, &extents); + +done: + _libelf_release_extents(&extents); + return (rc); +} diff --git a/contrib/elftoolchain/libelf/elf_version.c b/contrib/elftoolchain/libelf/elf_version.c new file mode 100644 index 00000000..4d4d9e06 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf_version.c @@ -0,0 +1,54 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +unsigned int +elf_version(unsigned int v) +{ + unsigned int old; + + if ((old = LIBELF_PRIVATE(version)) == EV_NONE) + old = EV_CURRENT; + + if (v == EV_NONE) + return old; + if (v > EV_CURRENT) { + LIBELF_SET_ERROR(VERSION, 0); + return EV_NONE; + } + + LIBELF_PRIVATE(version) = v; + return (old); +} diff --git a/contrib/elftoolchain/libelf/gelf.h b/contrib/elftoolchain/libelf/gelf.h new file mode 100644 index 00000000..e7a4f600 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf.h @@ -0,0 +1,110 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifndef _GELF_H_ +#define _GELF_H_ + +#include + +typedef Elf64_Addr GElf_Addr; /* Addresses */ +typedef Elf64_Half GElf_Half; /* Half words (16 bit) */ +typedef Elf64_Off GElf_Off; /* Offsets */ +typedef Elf64_Sword GElf_Sword; /* Signed words (32 bit) */ +typedef Elf64_Sxword GElf_Sxword; /* Signed long words (64 bit) */ +typedef Elf64_Word GElf_Word; /* Unsigned words (32 bit) */ +typedef Elf64_Xword GElf_Xword; /* Unsigned long words (64 bit) */ + +typedef Elf64_Dyn GElf_Dyn; /* ".dynamic" section entries */ +typedef Elf64_Ehdr GElf_Ehdr; /* ELF header */ +typedef Elf64_Phdr GElf_Phdr; /* Program header */ +typedef Elf64_Shdr GElf_Shdr; /* Section header */ +typedef Elf64_Sym GElf_Sym; /* Symbol table entries */ +typedef Elf64_Rel GElf_Rel; /* Relocation entries */ +typedef Elf64_Rela GElf_Rela; /* Relocation entries with addend */ + +typedef Elf64_Cap GElf_Cap; /* SW/HW capabilities */ +typedef Elf64_Move GElf_Move; /* Move entries */ +typedef Elf64_Syminfo GElf_Syminfo; /* Symbol information */ + +#define GELF_M_INFO ELF64_M_INFO +#define GELF_M_SIZE ELF64_M_SIZE +#define GELF_M_SYM ELF64_M_SYM + +#define GELF_R_INFO ELF64_R_INFO +#define GELF_R_SYM ELF64_R_SYM +#define GELF_R_TYPE ELF64_R_TYPE +#define GELF_R_TYPE_DATA ELF64_R_TYPE_DATA +#define GELF_R_TYPE_ID ELF64_R_TYPE_ID +#define GELF_R_TYPE_INFO ELF64_R_TYPE_INFO + +#define GELF_ST_BIND ELF64_ST_BIND +#define GELF_ST_INFO ELF64_ST_INFO +#define GELF_ST_TYPE ELF64_ST_TYPE +#define GELF_ST_VISIBILITY ELF64_ST_VISIBILITY + +#ifdef __cplusplus +extern "C" { +#endif +long gelf_checksum(Elf *_elf); +size_t gelf_fsize(Elf *_elf, Elf_Type _type, size_t _count, + unsigned int _version); +int gelf_getclass(Elf *_elf); +GElf_Dyn *gelf_getdyn(Elf_Data *_data, int _index, GElf_Dyn *_dst); +GElf_Ehdr *gelf_getehdr(Elf *_elf, GElf_Ehdr *_dst); +GElf_Phdr *gelf_getphdr(Elf *_elf, int _index, GElf_Phdr *_dst); +GElf_Rel *gelf_getrel(Elf_Data *_src, int _index, GElf_Rel *_dst); +GElf_Rela *gelf_getrela(Elf_Data *_src, int _index, GElf_Rela *_dst); +GElf_Shdr *gelf_getshdr(Elf_Scn *_scn, GElf_Shdr *_dst); +GElf_Sym *gelf_getsym(Elf_Data *_src, int _index, GElf_Sym *_dst); +GElf_Sym *gelf_getsymshndx(Elf_Data *_src, Elf_Data *_shindexsrc, + int _index, GElf_Sym *_dst, Elf32_Word *_shindexdst); +void * gelf_newehdr(Elf *_elf, int _class); +void * gelf_newphdr(Elf *_elf, size_t _phnum); +int gelf_update_dyn(Elf_Data *_dst, int _index, GElf_Dyn *_src); +int gelf_update_ehdr(Elf *_elf, GElf_Ehdr *_src); +int gelf_update_phdr(Elf *_elf, int _index, GElf_Phdr *_src); +int gelf_update_rel(Elf_Data *_dst, int _index, GElf_Rel *_src); +int gelf_update_rela(Elf_Data *_dst, int _index, GElf_Rela *_src); +int gelf_update_shdr(Elf_Scn *_dst, GElf_Shdr *_src); +int gelf_update_sym(Elf_Data *_dst, int _index, GElf_Sym *_src); +int gelf_update_symshndx(Elf_Data *_symdst, Elf_Data *_shindexdst, + int _index, GElf_Sym *_symsrc, Elf32_Word _shindexsrc); +Elf_Data *gelf_xlatetof(Elf *_elf, Elf_Data *_dst, const Elf_Data *_src, unsigned int _encode); +Elf_Data *gelf_xlatetom(Elf *_elf, Elf_Data *_dst, const Elf_Data *_src, unsigned int _encode); + +GElf_Cap *gelf_getcap(Elf_Data *_data, int _index, GElf_Cap *_cap); +GElf_Move *gelf_getmove(Elf_Data *_src, int _index, GElf_Move *_dst); +GElf_Syminfo *gelf_getsyminfo(Elf_Data *_src, int _index, GElf_Syminfo *_dst); +int gelf_update_cap(Elf_Data *_dst, int _index, GElf_Cap *_src); +int gelf_update_move(Elf_Data *_dst, int _index, GElf_Move *_src); +int gelf_update_syminfo(Elf_Data *_dst, int _index, GElf_Syminfo *_src); +#ifdef __cplusplus +} +#endif + +#endif /* _GELF_H_ */ diff --git a/contrib/elftoolchain/libelf/gelf_cap.c b/contrib/elftoolchain/libelf/gelf_cap.c new file mode 100644 index 00000000..ed63d793 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_cap.c @@ -0,0 +1,153 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Cap * +gelf_getcap(Elf_Data *ed, int ndx, GElf_Cap *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + Elf32_Cap *cap32; + Elf64_Cap *cap64; + uint32_t sh_type; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_CAP) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_CAP, ec, e->e_version)) == 0) + return (NULL); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + + cap32 = (Elf32_Cap *) d->d_data.d_buf + ndx; + + dst->c_tag = cap32->c_tag; + dst->c_un.c_val = (Elf64_Xword) cap32->c_un.c_val; + + } else { + + cap64 = (Elf64_Cap *) d->d_data.d_buf + ndx; + + *dst = *cap64; + } + + return (dst); +} + +int +gelf_update_cap(Elf_Data *ed, int ndx, GElf_Cap *gc) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + Elf32_Cap *cap32; + Elf64_Cap *cap64; + uint32_t sh_type; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || gc == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_CAP) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_CAP, ec, e->e_version)) == 0) + return (0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + cap32 = (Elf32_Cap *) d->d_data.d_buf + ndx; + + LIBELF_COPY_U32(cap32, gc, c_tag); + LIBELF_COPY_U32(cap32, gc, c_un.c_val); + } else { + cap64 = (Elf64_Cap *) d->d_data.d_buf + ndx; + + *cap64 = *gc; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_checksum.c b/contrib/elftoolchain/libelf/gelf_checksum.c new file mode 100644 index 00000000..ae1f1015 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_checksum.c @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +long +elf32_checksum(Elf *e) +{ + return (_libelf_checksum(e, ELFCLASS32)); +} + +long +elf64_checksum(Elf *e) +{ + return (_libelf_checksum(e, ELFCLASS64)); +} + +long +gelf_checksum(Elf *e) +{ + int ec; + if (e == NULL || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0L); + } + return (_libelf_checksum(e, ec)); +} diff --git a/contrib/elftoolchain/libelf/gelf_dyn.c b/contrib/elftoolchain/libelf/gelf_dyn.c new file mode 100644 index 00000000..950b9a72 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_dyn.c @@ -0,0 +1,156 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Dyn * +gelf_getdyn(Elf_Data *ed, int ndx, GElf_Dyn *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + Elf32_Dyn *dyn32; + Elf64_Dyn *dyn64; + uint32_t sh_type; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_DYN) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_DYN, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + dyn32 = (Elf32_Dyn *) d->d_data.d_buf + ndx; + + dst->d_tag = dyn32->d_tag; + dst->d_un.d_val = (Elf64_Xword) dyn32->d_un.d_val; + + } else { + + dyn64 = (Elf64_Dyn *) d->d_data.d_buf + ndx; + + *dst = *dyn64; + } + + return (dst); +} + +int +gelf_update_dyn(Elf_Data *ed, int ndx, GElf_Dyn *ds) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + Elf32_Dyn *dyn32; + Elf64_Dyn *dyn64; + uint32_t sh_type; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || ds == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_DYN) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_DYN, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + dyn32 = (Elf32_Dyn *) d->d_data.d_buf + ndx; + + LIBELF_COPY_S32(dyn32, ds, d_tag); + LIBELF_COPY_U32(dyn32, ds, d_un.d_val); + } else { + dyn64 = (Elf64_Dyn *) d->d_data.d_buf + ndx; + + *dyn64 = *ds; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_ehdr.c b/contrib/elftoolchain/libelf/gelf_ehdr.c new file mode 100644 index 00000000..30983333 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_ehdr.c @@ -0,0 +1,171 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf32_Ehdr * +elf32_getehdr(Elf *e) +{ + return (_libelf_ehdr(e, ELFCLASS32, 0)); +} + +Elf64_Ehdr * +elf64_getehdr(Elf *e) +{ + return (_libelf_ehdr(e, ELFCLASS64, 0)); +} + +GElf_Ehdr * +gelf_getehdr(Elf *e, GElf_Ehdr *d) +{ + int ec; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + + if (d == NULL || e == NULL || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + if ((eh32 = _libelf_ehdr(e, ELFCLASS32, 0)) == NULL) + return (NULL); + + (void) memcpy(d->e_ident, eh32->e_ident, + sizeof(eh32->e_ident)); + d->e_type = eh32->e_type; + d->e_machine = eh32->e_machine; + d->e_version = eh32->e_version; + d->e_entry = eh32->e_entry; + d->e_phoff = eh32->e_phoff; + d->e_shoff = eh32->e_shoff; + d->e_flags = eh32->e_flags; + d->e_ehsize = eh32->e_ehsize; + d->e_phentsize = eh32->e_phentsize; + d->e_phnum = eh32->e_phnum; + d->e_shentsize = eh32->e_shentsize; + d->e_shnum = eh32->e_shnum; + d->e_shstrndx = eh32->e_shstrndx; + + return (d); + } + + assert(ec == ELFCLASS64); + + if ((eh64 = _libelf_ehdr(e, ELFCLASS64, 0)) == NULL) + return (NULL); + *d = *eh64; + + return (d); +} + +Elf32_Ehdr * +elf32_newehdr(Elf *e) +{ + return (_libelf_ehdr(e, ELFCLASS32, 1)); +} + +Elf64_Ehdr * +elf64_newehdr(Elf *e) +{ + return (_libelf_ehdr(e, ELFCLASS64, 1)); +} + +void * +gelf_newehdr(Elf *e, int ec) +{ + if (e != NULL && + (ec == ELFCLASS32 || ec == ELFCLASS64)) + return (_libelf_ehdr(e, ec, 1)); + + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); +} + +int +gelf_update_ehdr(Elf *e, GElf_Ehdr *s) +{ + int ec; + void *ehdr; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + + if (s== NULL || e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (e->e_cmd == ELF_C_READ) { + LIBELF_SET_ERROR(MODE, 0); + return (0); + } + + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) + return (0); + + (void) elf_flagehdr(e, ELF_C_SET, ELF_F_DIRTY); + + if (ec == ELFCLASS64) { + eh64 = (Elf64_Ehdr *) ehdr; + *eh64 = *s; + return (1); + } + + eh32 = (Elf32_Ehdr *) ehdr; + + (void) memcpy(eh32->e_ident, s->e_ident, sizeof(eh32->e_ident)); + + eh32->e_type = s->e_type; + eh32->e_machine = s->e_machine; + eh32->e_version = s->e_version; + LIBELF_COPY_U32(eh32, s, e_entry); + LIBELF_COPY_U32(eh32, s, e_phoff); + LIBELF_COPY_U32(eh32, s, e_shoff); + eh32->e_flags = s->e_flags; + eh32->e_ehsize = s->e_ehsize; + eh32->e_phentsize = s->e_phentsize; + eh32->e_phnum = s->e_phnum; + eh32->e_shentsize = s->e_shentsize; + eh32->e_shnum = s->e_shnum; + eh32->e_shstrndx = s->e_shstrndx; + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_fsize.c b/contrib/elftoolchain/libelf/gelf_fsize.c new file mode 100644 index 00000000..8cfeb7cc --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_fsize.c @@ -0,0 +1,64 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +size_t +elf32_fsize(Elf_Type t, size_t c, unsigned int v) +{ + return (_libelf_fsize(t, ELFCLASS32, v, c)); +} + +size_t +elf64_fsize(Elf_Type t, size_t c, unsigned int v) +{ + return (_libelf_fsize(t, ELFCLASS64, v, c)); +} + +size_t +gelf_fsize(Elf *e, Elf_Type t, size_t c, unsigned int v) +{ + + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (e->e_class == ELFCLASS32 || e->e_class == ELFCLASS64) + return (_libelf_fsize(t, e->e_class, v, c)); + + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); +} diff --git a/contrib/elftoolchain/libelf/gelf_getclass.c b/contrib/elftoolchain/libelf/gelf_getclass.c new file mode 100644 index 00000000..eb8bfd4e --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_getclass.c @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +int +gelf_getclass(Elf *e) +{ + return (e != NULL ? e->e_class : ELFCLASSNONE); +} diff --git a/contrib/elftoolchain/libelf/gelf_move.c b/contrib/elftoolchain/libelf/gelf_move.c new file mode 100644 index 00000000..d3f2011e --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_move.c @@ -0,0 +1,163 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Move * +gelf_getmove(Elf_Data *ed, int ndx, GElf_Move *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Move *move32; + Elf64_Move *move64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_MOVE) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + + move32 = (Elf32_Move *) d->d_data.d_buf + ndx; + + dst->m_value = move32->m_value; + dst->m_info = (Elf64_Xword) move32->m_info; + dst->m_poffset = (Elf64_Xword) move32->m_poffset; + dst->m_repeat = move32->m_repeat; + dst->m_stride = move32->m_stride; + } else { + + move64 = (Elf64_Move *) d->d_data.d_buf + ndx; + + *dst = *move64; + } + + return (dst); +} + +int +gelf_update_move(Elf_Data *ed, int ndx, GElf_Move *gm) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Move *move32; + Elf64_Move *move64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || gm == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_MOVE) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_MOVE, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + move32 = (Elf32_Move *) d->d_data.d_buf + ndx; + + move32->m_value = gm->m_value; + LIBELF_COPY_U32(move32, gm, m_info); + LIBELF_COPY_U32(move32, gm, m_poffset); + move32->m_repeat = gm->m_repeat; + move32->m_stride = gm->m_stride; + + } else { + move64 = (Elf64_Move *) d->d_data.d_buf + ndx; + + *move64 = *gm; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_phdr.c b/contrib/elftoolchain/libelf/gelf_phdr.c new file mode 100644 index 00000000..0ac2c8bf --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_phdr.c @@ -0,0 +1,175 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf32_Phdr * +elf32_getphdr(Elf *e) +{ + return (_libelf_getphdr(e, ELFCLASS32)); +} + +Elf64_Phdr * +elf64_getphdr(Elf *e) +{ + return (_libelf_getphdr(e, ELFCLASS64)); +} + +GElf_Phdr * +gelf_getphdr(Elf *e, int index, GElf_Phdr *d) +{ + int ec; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + Elf32_Phdr *ep32; + Elf64_Phdr *ep64; + size_t phnum; + + if (d == NULL || e == NULL || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || + (e->e_kind != ELF_K_ELF) || index < 0 || + elf_getphdrnum(e, &phnum) < 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((size_t)index >= phnum) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + if ((eh32 = _libelf_ehdr(e, ELFCLASS32, 0)) == NULL || + ((ep32 = _libelf_getphdr(e, ELFCLASS32)) == NULL)) + return (NULL); + + ep32 += index; + + d->p_type = ep32->p_type; + d->p_offset = ep32->p_offset; + d->p_vaddr = (Elf64_Addr) ep32->p_vaddr; + d->p_paddr = (Elf64_Addr) ep32->p_paddr; + d->p_filesz = (Elf64_Xword) ep32->p_filesz; + d->p_memsz = (Elf64_Xword) ep32->p_memsz; + d->p_flags = ep32->p_flags; + d->p_align = (Elf64_Xword) ep32->p_align; + + } else { + if ((eh64 = _libelf_ehdr(e, ELFCLASS64, 0)) == NULL || + (ep64 = _libelf_getphdr(e, ELFCLASS64)) == NULL) + return (NULL); + + ep64 += index; + + *d = *ep64; + } + + return (d); +} + +Elf32_Phdr * +elf32_newphdr(Elf *e, size_t count) +{ + return (_libelf_newphdr(e, ELFCLASS32, count)); +} + +Elf64_Phdr * +elf64_newphdr(Elf *e, size_t count) +{ + return (_libelf_newphdr(e, ELFCLASS64, count)); +} + +void * +gelf_newphdr(Elf *e, size_t count) +{ + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + return (_libelf_newphdr(e, e->e_class, count)); +} + +int +gelf_update_phdr(Elf *e, int ndx, GElf_Phdr *s) +{ + int ec; + size_t phnum; + void *ehdr; + Elf32_Phdr *ph32; + Elf64_Phdr *ph64; + + if (s == NULL || e == NULL || e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64) || + elf_getphdrnum(e, &phnum) < 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (e->e_cmd == ELF_C_READ) { + LIBELF_SET_ERROR(MODE, 0); + return (0); + } + + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) + return (0); + + if (ndx < 0 || (size_t)ndx > phnum) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + (void) elf_flagphdr(e, ELF_C_SET, ELF_F_DIRTY); + + if (ec == ELFCLASS64) { + ph64 = e->e_u.e_elf.e_phdr.e_phdr64 + ndx; + *ph64 = *s; + return (1); + } + + ph32 = e->e_u.e_elf.e_phdr.e_phdr32 + ndx; + + ph32->p_type = s->p_type; + ph32->p_flags = s->p_flags; + LIBELF_COPY_U32(ph32, s, p_offset); + LIBELF_COPY_U32(ph32, s, p_vaddr); + LIBELF_COPY_U32(ph32, s, p_paddr); + LIBELF_COPY_U32(ph32, s, p_filesz); + LIBELF_COPY_U32(ph32, s, p_memsz); + LIBELF_COPY_U32(ph32, s, p_align); + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_rel.c b/contrib/elftoolchain/libelf/gelf_rel.c new file mode 100644 index 00000000..1a1459ab --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_rel.c @@ -0,0 +1,166 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Rel * +gelf_getrel(Elf_Data *ed, int ndx, GElf_Rel *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Rel *rel32; + Elf64_Rel *rel64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_REL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + rel32 = (Elf32_Rel *) d->d_data.d_buf + ndx; + + dst->r_offset = (Elf64_Addr) rel32->r_offset; + dst->r_info = ELF64_R_INFO( + (Elf64_Xword) ELF32_R_SYM(rel32->r_info), + ELF32_R_TYPE(rel32->r_info)); + + } else { + + rel64 = (Elf64_Rel *) d->d_data.d_buf + ndx; + + *dst = *rel64; + } + + return (dst); +} + +int +gelf_update_rel(Elf_Data *ed, int ndx, GElf_Rel *dr) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Rel *rel32; + Elf64_Rel *rel64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dr == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_REL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_REL, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + rel32 = (Elf32_Rel *) d->d_data.d_buf + ndx; + + LIBELF_COPY_U32(rel32, dr, r_offset); + + if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) || + ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) { + LIBELF_SET_ERROR(RANGE, 0); + return (0); + } + rel32->r_info = ELF32_R_INFO( + (Elf32_Word) ELF64_R_SYM(dr->r_info), + (Elf32_Word) ELF64_R_TYPE(dr->r_info)); + } else { + rel64 = (Elf64_Rel *) d->d_data.d_buf + ndx; + + *rel64 = *dr; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_rela.c b/contrib/elftoolchain/libelf/gelf_rela.c new file mode 100644 index 00000000..40f94da7 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_rela.c @@ -0,0 +1,169 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Rela * +gelf_getrela(Elf_Data *ed, int ndx, GElf_Rela *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Rela *rela32; + Elf64_Rela *rela64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_RELA) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + rela32 = (Elf32_Rela *) d->d_data.d_buf + ndx; + + dst->r_offset = (Elf64_Addr) rela32->r_offset; + dst->r_info = ELF64_R_INFO( + (Elf64_Xword) ELF32_R_SYM(rela32->r_info), + ELF32_R_TYPE(rela32->r_info)); + dst->r_addend = (Elf64_Sxword) rela32->r_addend; + + } else { + + rela64 = (Elf64_Rela *) d->d_data.d_buf + ndx; + + *dst = *rela64; + } + + return (dst); +} + +int +gelf_update_rela(Elf_Data *ed, int ndx, GElf_Rela *dr) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Rela *rela32; + Elf64_Rela *rela64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dr == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_RELA) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_RELA, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + rela32 = (Elf32_Rela *) d->d_data.d_buf + ndx; + + LIBELF_COPY_U32(rela32, dr, r_offset); + + if (ELF64_R_SYM(dr->r_info) > ELF32_R_SYM(~0U) || + ELF64_R_TYPE(dr->r_info) > ELF32_R_TYPE(~0U)) { + LIBELF_SET_ERROR(RANGE, 0); + return (0); + } + rela32->r_info = ELF32_R_INFO( + (Elf32_Word) ELF64_R_SYM(dr->r_info), + (Elf32_Word) ELF64_R_TYPE(dr->r_info)); + + LIBELF_COPY_S32(rela32, dr, r_addend); + } else { + rela64 = (Elf64_Rela *) d->d_data.d_buf + ndx; + + *rela64 = *dr; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_shdr.c b/contrib/elftoolchain/libelf/gelf_shdr.c new file mode 100644 index 00000000..9150776b --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_shdr.c @@ -0,0 +1,134 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf32_Shdr * +elf32_getshdr(Elf_Scn *s) +{ + return (_libelf_getshdr(s, ELFCLASS32)); +} + +Elf64_Shdr * +elf64_getshdr(Elf_Scn *s) +{ + return (_libelf_getshdr(s, ELFCLASS64)); +} + +GElf_Shdr * +gelf_getshdr(Elf_Scn *s, GElf_Shdr *d) +{ + int ec; + void *sh; + Elf32_Shdr *sh32; + Elf64_Shdr *sh64; + + if (d == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((sh = _libelf_getshdr(s, ELFCLASSNONE)) == NULL) + return (NULL); + + ec = s->s_elf->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) { + sh32 = (Elf32_Shdr *) sh; + + d->sh_name = sh32->sh_name; + d->sh_type = sh32->sh_type; + d->sh_flags = (Elf64_Xword) sh32->sh_flags; + d->sh_addr = (Elf64_Addr) sh32->sh_addr; + d->sh_offset = (Elf64_Off) sh32->sh_offset; + d->sh_size = (Elf64_Xword) sh32->sh_size; + d->sh_link = sh32->sh_link; + d->sh_info = sh32->sh_info; + d->sh_addralign = (Elf64_Xword) sh32->sh_addralign; + d->sh_entsize = (Elf64_Xword) sh32->sh_entsize; + } else { + sh64 = (Elf64_Shdr *) sh; + *d = *sh64; + } + + return (d); +} + +int +gelf_update_shdr(Elf_Scn *scn, GElf_Shdr *s) +{ + int ec; + Elf *e; + Elf32_Shdr *sh32; + + + if (s == NULL || scn == NULL || (e = scn->s_elf) == NULL || + e->e_kind != ELF_K_ELF || + ((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (e->e_cmd == ELF_C_READ) { + LIBELF_SET_ERROR(MODE, 0); + return (0); + } + + (void) elf_flagscn(scn, ELF_C_SET, ELF_F_DIRTY); + + if (ec == ELFCLASS64) { + scn->s_shdr.s_shdr64 = *s; + return (1); + } + + sh32 = &scn->s_shdr.s_shdr32; + + sh32->sh_name = s->sh_name; + sh32->sh_type = s->sh_type; + LIBELF_COPY_U32(sh32, s, sh_flags); + LIBELF_COPY_U32(sh32, s, sh_addr); + LIBELF_COPY_U32(sh32, s, sh_offset); + LIBELF_COPY_U32(sh32, s, sh_size); + sh32->sh_link = s->sh_link; + sh32->sh_info = s->sh_info; + LIBELF_COPY_U32(sh32, s, sh_addralign); + LIBELF_COPY_U32(sh32, s, sh_entsize); + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_sym.c b/contrib/elftoolchain/libelf/gelf_sym.c new file mode 100644 index 00000000..a8422395 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_sym.c @@ -0,0 +1,163 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Sym * +gelf_getsym(Elf_Data *ed, int ndx, GElf_Sym *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Sym *sym32; + Elf64_Sym *sym64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_SYM) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_SYM, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + sym32 = (Elf32_Sym *) d->d_data.d_buf + ndx; + + dst->st_name = sym32->st_name; + dst->st_value = (Elf64_Addr) sym32->st_value; + dst->st_size = (Elf64_Xword) sym32->st_size; + dst->st_info = sym32->st_info; + dst->st_other = sym32->st_other; + dst->st_shndx = sym32->st_shndx; + } else { + sym64 = (Elf64_Sym *) d->d_data.d_buf + ndx; + + *dst = *sym64; + } + + return (dst); +} + +int +gelf_update_sym(Elf_Data *ed, int ndx, GElf_Sym *gs) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + Elf32_Sym *sym32; + Elf64_Sym *sym64; + struct _Libelf_Data *d; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || gs == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_SYM) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_SYM, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + sym32 = (Elf32_Sym *) d->d_data.d_buf + ndx; + + sym32->st_name = gs->st_name; + sym32->st_info = gs->st_info; + sym32->st_other = gs->st_other; + sym32->st_shndx = gs->st_shndx; + + LIBELF_COPY_U32(sym32, gs, st_value); + LIBELF_COPY_U32(sym32, gs, st_size); + } else { + sym64 = (Elf64_Sym *) d->d_data.d_buf + ndx; + + *sym64 = *gs; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_syminfo.c b/contrib/elftoolchain/libelf/gelf_syminfo.c new file mode 100644 index 00000000..ae6c8473 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_syminfo.c @@ -0,0 +1,156 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Syminfo * +gelf_getsyminfo(Elf_Data *ed, int ndx, GElf_Syminfo *dst) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + struct _Libelf_Data *d; + Elf32_Syminfo *syminfo32; + Elf64_Syminfo *syminfo64; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || dst == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_SYMINFO) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + + syminfo32 = (Elf32_Syminfo *) d->d_data.d_buf + ndx; + + dst->si_boundto = syminfo32->si_boundto; + dst->si_flags = syminfo32->si_flags; + + } else { + + syminfo64 = (Elf64_Syminfo *) d->d_data.d_buf + ndx; + + *dst = *syminfo64; + } + + return (dst); +} + +int +gelf_update_syminfo(Elf_Data *ed, int ndx, GElf_Syminfo *gs) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + struct _Libelf_Data *d; + Elf32_Syminfo *syminfo32; + Elf64_Syminfo *syminfo64; + + d = (struct _Libelf_Data *) ed; + + if (d == NULL || ndx < 0 || gs == NULL || + (scn = d->d_scn) == NULL || + (e = scn->s_elf) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_SYMINFO) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_SYMINFO, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= d->d_data.d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if (ec == ELFCLASS32) { + syminfo32 = (Elf32_Syminfo *) d->d_data.d_buf + ndx; + + syminfo32->si_boundto = gs->si_boundto; + syminfo32->si_flags = gs->si_flags; + + } else { + syminfo64 = (Elf64_Syminfo *) d->d_data.d_buf + ndx; + + *syminfo64 = *gs; + } + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_symshndx.c b/contrib/elftoolchain/libelf/gelf_symshndx.c new file mode 100644 index 00000000..ab6e8519 --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_symshndx.c @@ -0,0 +1,148 @@ +/*- + * Copyright (c) 2006,2008,2020 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +GElf_Sym * +gelf_getsymshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *dst, + Elf32_Word *shindex) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + struct _Libelf_Data *ld, *lid; + + ld = (struct _Libelf_Data *) d; + lid = (struct _Libelf_Data *) id; + + if (gelf_getsym(d, ndx, dst) == 0) + return (NULL); + + if (shindex == NULL) + return (dst); + + if (lid == NULL) { + *shindex = 0; + return (dst); + } + + if ((scn = lid->d_scn) == NULL || + (e = scn->s_elf) == NULL || (e != ld->d_scn->s_elf)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_WORD || + id->d_type != ELF_T_WORD) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_WORD, ec, e->e_version)) == 0) + return (NULL); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= id->d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + *shindex = ((Elf32_Word *) id->d_buf)[ndx]; + + return (dst); +} + +int +gelf_update_symshndx(Elf_Data *d, Elf_Data *id, int ndx, GElf_Sym *gs, + Elf32_Word xindex) +{ + int ec; + Elf *e; + size_t msz; + Elf_Scn *scn; + uint32_t sh_type; + struct _Libelf_Data *ld, *lid; + + ld = (struct _Libelf_Data *) d; + lid = (struct _Libelf_Data *) id; + + if (gelf_update_sym(d, ndx, gs) == 0) + return (0); + + if (lid == NULL || (scn = lid->d_scn) == NULL || + (e = scn->s_elf) == NULL || (e != ld->d_scn->s_elf)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + ec = e->e_class; + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (ec == ELFCLASS32) + sh_type = scn->s_shdr.s_shdr32.sh_type; + else + sh_type = scn->s_shdr.s_shdr64.sh_type; + + if (_libelf_xlate_shtype(sh_type) != ELF_T_WORD || + d->d_type != ELF_T_WORD) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + if ((msz = _libelf_msize(ELF_T_WORD, ec, e->e_version)) == 0) + return (0); + + assert(ndx >= 0); + + if (msz * (size_t) ndx >= id->d_size) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0); + } + + *(((Elf32_Word *) id->d_buf) + ndx) = xindex; + + return (1); +} diff --git a/contrib/elftoolchain/libelf/gelf_xlate.c b/contrib/elftoolchain/libelf/gelf_xlate.c new file mode 100644 index 00000000..228b17bf --- /dev/null +++ b/contrib/elftoolchain/libelf/gelf_xlate.c @@ -0,0 +1,87 @@ +/*- + * Copyright (c) 2006,2008,2018 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf_Data * +elf32_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) +{ + return _libelf_xlate(dst, src, encoding, ELFCLASS32, EM_NONE, + ELF_TOFILE); +} + +Elf_Data * +elf64_xlatetof(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) +{ + return _libelf_xlate(dst, src, encoding, ELFCLASS64, EM_NONE, + ELF_TOFILE); +} + +Elf_Data * +elf32_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) +{ + return _libelf_xlate(dst, src, encoding, ELFCLASS32, EM_NONE, + ELF_TOMEMORY); +} + +Elf_Data * +elf64_xlatetom(Elf_Data *dst, const Elf_Data *src, unsigned int encoding) +{ + return _libelf_xlate(dst, src, encoding, ELFCLASS64, EM_NONE, + ELF_TOMEMORY); +} + +Elf_Data * +gelf_xlatetom(Elf *e, Elf_Data *dst, const Elf_Data *src, + unsigned int encoding) +{ + if (e != NULL) + return (_libelf_xlate(dst, src, encoding, e->e_class, + _libelf_elfmachine(e), ELF_TOMEMORY)); + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); +} + +Elf_Data * +gelf_xlatetof(Elf *e, Elf_Data *dst, const Elf_Data *src, + unsigned int encoding) +{ + if (e != NULL) + return (_libelf_xlate(dst, src, encoding, e->e_class, + _libelf_elfmachine(e), ELF_TOFILE)); + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); +} diff --git a/contrib/elftoolchain/libelf/libelf.h b/contrib/elftoolchain/libelf/libelf.h new file mode 100644 index 00000000..eb0f502c --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf.h @@ -0,0 +1,256 @@ +/*- + * Copyright (c) 2006,2008-2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifndef _LIBELF_H_ +#define _LIBELF_H_ + +#include +#include + +/* Library private data structures */ +typedef struct _Elf Elf; +typedef struct _Elf_Scn Elf_Scn; + +/* File types */ +typedef enum { + ELF_K_NONE = 0, + ELF_K_AR, /* `ar' archives */ + ELF_K_COFF, /* COFF files (unsupported) */ + ELF_K_ELF, /* ELF files */ + ELF_K_NUM +} Elf_Kind; + +#define ELF_K_FIRST ELF_K_NONE +#define ELF_K_LAST ELF_K_NUM + +/* Data types */ +typedef enum { + ELF_T_ADDR, + ELF_T_BYTE, + ELF_T_CAP, + ELF_T_DYN, + ELF_T_EHDR, + ELF_T_HALF, + ELF_T_LWORD, + ELF_T_MOVE, + ELF_T_MOVEP, + ELF_T_NOTE, + ELF_T_OFF, + ELF_T_PHDR, + ELF_T_REL, + ELF_T_RELA, + ELF_T_SHDR, + ELF_T_SWORD, + ELF_T_SXWORD, + ELF_T_SYMINFO, + ELF_T_SYM, + ELF_T_VDEF, + ELF_T_VNEED, + ELF_T_WORD, + ELF_T_XWORD, + ELF_T_GNUHASH, /* GNU style hash tables. */ + ELF_T_NUM +} Elf_Type; + +#define ELF_T_FIRST ELF_T_ADDR +#define ELF_T_LAST ELF_T_GNUHASH + +/* Commands */ +typedef enum { + ELF_C_NULL = 0, + ELF_C_CLR, + ELF_C_FDDONE, + ELF_C_FDREAD, + ELF_C_RDWR, + ELF_C_READ, + ELF_C_SET, + ELF_C_WRITE, + ELF_C_NUM +} Elf_Cmd; + +#define ELF_C_FIRST ELF_C_NULL +#define ELF_C_LAST ELF_C_NUM + +/* + * An `Elf_Data' structure describes data in an + * ELF section. + */ +typedef struct _Elf_Data { + /* + * `Public' members that are part of the ELF(3) API. + */ + uint64_t d_align; + void *d_buf; + uint64_t d_off; + uint64_t d_size; + Elf_Type d_type; + unsigned int d_version; +} Elf_Data; + +/* + * An `Elf_Arhdr' structure describes an archive + * header. + */ +typedef struct { + time_t ar_date; + char *ar_name; /* archive member name */ + gid_t ar_gid; + mode_t ar_mode; + char *ar_rawname; /* 'raw' member name */ + size_t ar_size; + uid_t ar_uid; + + /* + * Members that are not part of the public API. + */ + unsigned int ar_flags; +} Elf_Arhdr; + +/* + * An `Elf_Arsym' describes an entry in the archive + * symbol table. + */ +typedef struct { + off_t as_off; /* byte offset to member's header */ + unsigned long as_hash; /* elf_hash() value for name */ + char *as_name; /* null terminated symbol name */ +} Elf_Arsym; + +/* + * Error numbers. + */ + +enum Elf_Error { + ELF_E_NONE, /* No error */ + ELF_E_ARCHIVE, /* Malformed ar(1) archive */ + ELF_E_ARGUMENT, /* Invalid argument */ + ELF_E_CLASS, /* Mismatched ELF class */ + ELF_E_DATA, /* Invalid data descriptor */ + ELF_E_HEADER, /* Missing or malformed ELF header */ + ELF_E_IO, /* I/O error */ + ELF_E_LAYOUT, /* Layout constraint violation */ + ELF_E_MODE, /* Wrong mode for ELF descriptor */ + ELF_E_RANGE, /* Value out of range */ + ELF_E_RESOURCE, /* Resource exhaustion */ + ELF_E_SECTION, /* Invalid section descriptor */ + ELF_E_SEQUENCE, /* API calls out of sequence */ + ELF_E_UNIMPL, /* Feature is unimplemented */ + ELF_E_VERSION, /* Unknown API version */ + ELF_E_NUM /* Max error number */ +}; + +/* + * Flags defined by the API. + */ + +#define ELF_F_LAYOUT 0x001U /* application will layout the file */ +#define ELF_F_DIRTY 0x002U /* a section or ELF file is dirty */ + +/* ELF(3) API extensions. */ +#define ELF_F_ARCHIVE 0x100U /* archive creation */ +#define ELF_F_ARCHIVE_SYSV 0x200U /* SYSV style archive */ + +#ifdef __cplusplus +extern "C" { +#endif +Elf *elf_begin(int _fd, Elf_Cmd _cmd, Elf *_elf); +int elf_cntl(Elf *_elf, Elf_Cmd _cmd); +int elf_end(Elf *_elf); +const char *elf_errmsg(int _error); +int elf_errno(void); +void elf_fill(int _fill); +unsigned int elf_flagarhdr(Elf_Arhdr *_arh, Elf_Cmd _cmd, + unsigned int _flags); +unsigned int elf_flagdata(Elf_Data *_data, Elf_Cmd _cmd, + unsigned int _flags); +unsigned int elf_flagehdr(Elf *_elf, Elf_Cmd _cmd, unsigned int _flags); +unsigned int elf_flagelf(Elf *_elf, Elf_Cmd _cmd, unsigned int _flags); +unsigned int elf_flagphdr(Elf *_elf, Elf_Cmd _cmd, unsigned int _flags); +unsigned int elf_flagscn(Elf_Scn *_scn, Elf_Cmd _cmd, unsigned int _flags); +unsigned int elf_flagshdr(Elf_Scn *_scn, Elf_Cmd _cmd, unsigned int _flags); +Elf_Arhdr *elf_getarhdr(Elf *_elf); +Elf_Arsym *elf_getarsym(Elf *_elf, size_t *_ptr); +off_t elf_getbase(Elf *_elf); +Elf_Data *elf_getdata(Elf_Scn *, Elf_Data *); +char *elf_getident(Elf *_elf, size_t *_ptr); +int elf_getphdrnum(Elf *_elf, size_t *_dst); +int elf_getphnum(Elf *_elf, size_t *_dst); /* Deprecated */ +Elf_Scn *elf_getscn(Elf *_elf, size_t _index); +int elf_getshdrnum(Elf *_elf, size_t *_dst); +int elf_getshnum(Elf *_elf, size_t *_dst); /* Deprecated */ +int elf_getshdrstrndx(Elf *_elf, size_t *_dst); +int elf_getshstrndx(Elf *_elf, size_t *_dst); /* Deprecated */ +unsigned int elf_getversion(Elf *_elf); +unsigned long elf_hash(const char *_name); +Elf_Kind elf_kind(Elf *_elf); +Elf *elf_memory(char *_image, size_t _size); +size_t elf_ndxscn(Elf_Scn *_scn); +Elf_Data *elf_newdata(Elf_Scn *_scn); +Elf_Scn *elf_newscn(Elf *_elf); +Elf_Scn *elf_nextscn(Elf *_elf, Elf_Scn *_scn); +Elf_Cmd elf_next(Elf *_elf); +Elf *elf_open(int _fd); +Elf *elf_openmemory(char *_image, size_t _size); +off_t elf_rand(Elf *_elf, off_t _off); +Elf_Data *elf_rawdata(Elf_Scn *_scn, Elf_Data *_data); +char *elf_rawfile(Elf *_elf, size_t *_size); +int elf_setshstrndx(Elf *_elf, size_t _shnum); +char *elf_strptr(Elf *_elf, size_t _section, size_t _offset); +off_t elf_update(Elf *_elf, Elf_Cmd _cmd); +unsigned int elf_version(unsigned int _version); + +long elf32_checksum(Elf *_elf); +size_t elf32_fsize(Elf_Type _type, size_t _count, + unsigned int _version); +Elf32_Ehdr *elf32_getehdr(Elf *_elf); +Elf32_Phdr *elf32_getphdr(Elf *_elf); +Elf32_Shdr *elf32_getshdr(Elf_Scn *_scn); +Elf32_Ehdr *elf32_newehdr(Elf *_elf); +Elf32_Phdr *elf32_newphdr(Elf *_elf, size_t _count); +Elf_Data *elf32_xlatetof(Elf_Data *_dst, const Elf_Data *_src, + unsigned int _enc); +Elf_Data *elf32_xlatetom(Elf_Data *_dst, const Elf_Data *_src, + unsigned int _enc); + +long elf64_checksum(Elf *_elf); +size_t elf64_fsize(Elf_Type _type, size_t _count, + unsigned int _version); +Elf64_Ehdr *elf64_getehdr(Elf *_elf); +Elf64_Phdr *elf64_getphdr(Elf *_elf); +Elf64_Shdr *elf64_getshdr(Elf_Scn *_scn); +Elf64_Ehdr *elf64_newehdr(Elf *_elf); +Elf64_Phdr *elf64_newphdr(Elf *_elf, size_t _count); +Elf_Data *elf64_xlatetof(Elf_Data *_dst, const Elf_Data *_src, + unsigned int _enc); +Elf_Data *elf64_xlatetom(Elf_Data *_dst, const Elf_Data *_src, + unsigned int _enc); +#ifdef __cplusplus +} +#endif + +#endif /* _LIBELF_H_ */ diff --git a/contrib/elftoolchain/libelf/libelf_align.c b/contrib/elftoolchain/libelf/libelf_align.c new file mode 100644 index 00000000..c0cdce97 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_align.c @@ -0,0 +1,141 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +struct align { + unsigned int a32; + unsigned int a64; +}; + +#ifdef __GNUC__ +#define MALIGN(N) { \ + .a32 = __alignof__(Elf32_##N), \ + .a64 = __alignof__(Elf64_##N) \ + } +#define MALIGN64(V) { \ + .a32 = 0, \ + .a64 = __alignof__(Elf64_##V) \ + } +#define MALIGN_WORD() { \ + .a32 = __alignof__(int32_t), \ + .a64 = __alignof__(int64_t) \ + } +#elif defined(__lint__) +#define MALIGN(N) { .a32 = 0, .a64 = 0 } +#define MALIGN64(N) { .a32 = 0, .a64 = 0 } +#define MALIGN_WORD(N) { .a32 = 0, .a64 = 0 } +#else +#error Need the __alignof__ builtin. +#endif +#define UNSUPPORTED() { \ + .a32 = 0, \ + .a64 = 0 \ + } + +static struct align malign[ELF_T_NUM] = { + [ELF_T_ADDR] = MALIGN(Addr), + [ELF_T_BYTE] = { .a32 = 1, .a64 = 1 }, + [ELF_T_CAP] = MALIGN(Cap), + [ELF_T_DYN] = MALIGN(Dyn), + [ELF_T_EHDR] = MALIGN(Ehdr), + [ELF_T_HALF] = MALIGN(Half), + [ELF_T_LWORD] = MALIGN(Lword), + [ELF_T_MOVE] = MALIGN(Move), + [ELF_T_MOVEP] = UNSUPPORTED(), + [ELF_T_NOTE] = MALIGN(Nhdr), + [ELF_T_OFF] = MALIGN(Off), + [ELF_T_PHDR] = MALIGN(Phdr), + [ELF_T_REL] = MALIGN(Rel), + [ELF_T_RELA] = MALIGN(Rela), + [ELF_T_SHDR] = MALIGN(Shdr), + [ELF_T_SWORD] = MALIGN(Sword), + [ELF_T_SXWORD] = MALIGN64(Sxword), + [ELF_T_SYM] = MALIGN(Sym), + [ELF_T_SYMINFO] = MALIGN(Syminfo), + [ELF_T_VDEF] = MALIGN(Verdef), + [ELF_T_VNEED] = MALIGN(Verneed), + [ELF_T_WORD] = MALIGN(Word), + [ELF_T_XWORD] = MALIGN64(Xword), + [ELF_T_GNUHASH] = MALIGN_WORD() +}; + +unsigned int +_libelf_malign(Elf_Type t, int elfclass) +{ + if (t >= ELF_T_NUM || (int) t < 0) + return (0); + + return (elfclass == ELFCLASS32 ? malign[t].a32 : + malign[t].a64); +} + +#define FALIGN(A32,A64) { .a32 = (A32), .a64 = (A64) } + +static struct align falign[ELF_T_NUM] = { + [ELF_T_ADDR] = FALIGN(4,8), + [ELF_T_BYTE] = FALIGN(1,1), + [ELF_T_CAP] = FALIGN(4,8), + [ELF_T_DYN] = FALIGN(4,8), + [ELF_T_EHDR] = FALIGN(4,8), + [ELF_T_HALF] = FALIGN(2,2), + [ELF_T_LWORD] = FALIGN(8,8), + [ELF_T_MOVE] = FALIGN(8,8), + [ELF_T_MOVEP] = UNSUPPORTED(), + [ELF_T_NOTE] = FALIGN(4,4), + [ELF_T_OFF] = FALIGN(4,8), + [ELF_T_PHDR] = FALIGN(4,8), + [ELF_T_REL] = FALIGN(4,8), + [ELF_T_RELA] = FALIGN(4,8), + [ELF_T_SHDR] = FALIGN(4,8), + [ELF_T_SWORD] = FALIGN(4,4), + [ELF_T_SXWORD] = FALIGN(0,8), + [ELF_T_SYM] = FALIGN(4,8), + [ELF_T_SYMINFO] = FALIGN(2,2), + [ELF_T_VDEF] = FALIGN(4,4), + [ELF_T_VNEED] = FALIGN(4,4), + [ELF_T_WORD] = FALIGN(4,4), + [ELF_T_XWORD] = FALIGN(0,8), + [ELF_T_GNUHASH] = FALIGN(4,8) +}; + +unsigned int +_libelf_falign(Elf_Type t, int elfclass) +{ + if (t >= ELF_T_NUM || (int) t < 0) + return (0); + + return (elfclass == ELFCLASS32 ? falign[t].a32 : + falign[t].a64); +} diff --git a/contrib/elftoolchain/libelf/libelf_allocate.c b/contrib/elftoolchain/libelf/libelf_allocate.c new file mode 100644 index 00000000..1387568e --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_allocate.c @@ -0,0 +1,199 @@ +/*- + * Copyright (c) 2006,2008,2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Internal APIs + */ + +#include + +#include +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +Elf * +_libelf_allocate_elf(void) +{ + Elf *e; + + if ((e = calloc((size_t) 1, sizeof(*e))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, errno); + return NULL; + } + + e->e_activations = 1; + e->e_byteorder = ELFDATANONE; + e->e_class = ELFCLASSNONE; + e->e_cmd = ELF_C_NULL; + e->e_fd = -1; + e->e_kind = ELF_K_NONE; + e->e_version = LIBELF_PRIVATE(version); + + return (e); +} + +void +_libelf_init_elf(Elf *e, Elf_Kind kind) +{ + assert(e != NULL); + assert(e->e_kind == ELF_K_NONE); + + e->e_kind = kind; + + switch (kind) { + case ELF_K_ELF: + STAILQ_INIT(&e->e_u.e_elf.e_scn); + break; + default: + break; + } +} + +void +_libelf_release_elf(Elf *e) +{ + Elf_Arhdr *arh; + + switch (e->e_kind) { + case ELF_K_AR: + free(e->e_u.e_ar.e_symtab); + break; + + case ELF_K_ELF: + switch (e->e_class) { + case ELFCLASS32: + free(e->e_u.e_elf.e_ehdr.e_ehdr32); + free(e->e_u.e_elf.e_phdr.e_phdr32); + break; + case ELFCLASS64: + free(e->e_u.e_elf.e_ehdr.e_ehdr64); + free(e->e_u.e_elf.e_phdr.e_phdr64); + break; + } + + assert(STAILQ_EMPTY(&e->e_u.e_elf.e_scn)); + + if (e->e_flags & LIBELF_F_AR_HEADER) { + arh = e->e_hdr.e_arhdr; + free(arh->ar_name); + free(arh->ar_rawname); + free(arh); + } + + break; + + default: + break; + } + + free(e); +} + +struct _Libelf_Data * +_libelf_allocate_data(Elf_Scn *s) +{ + struct _Libelf_Data *d; + + if ((d = calloc((size_t) 1, sizeof(*d))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + d->d_scn = s; + + return (d); +} + +struct _Libelf_Data * +_libelf_release_data(struct _Libelf_Data *d) +{ + + if (d->d_flags & LIBELF_F_DATA_MALLOCED) + free(d->d_data.d_buf); + + free(d); + + return (NULL); +} + +Elf_Scn * +_libelf_allocate_scn(Elf *e, size_t ndx) +{ + Elf_Scn *s; + + if ((s = calloc((size_t) 1, sizeof(Elf_Scn))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, errno); + return (NULL); + } + + s->s_elf = e; + s->s_ndx = ndx; + + STAILQ_INIT(&s->s_data); + STAILQ_INIT(&s->s_rawdata); + + STAILQ_INSERT_TAIL(&e->e_u.e_elf.e_scn, s, s_next); + + return (s); +} + +Elf_Scn * +_libelf_release_scn(Elf_Scn *s) +{ + Elf *e; + struct _Libelf_Data *d, *td; + + assert(s != NULL); + + STAILQ_FOREACH_SAFE(d, &s->s_data, d_next, td) { + STAILQ_REMOVE(&s->s_data, d, _Libelf_Data, d_next); + d = _libelf_release_data(d); + } + + STAILQ_FOREACH_SAFE(d, &s->s_rawdata, d_next, td) { + assert((d->d_flags & LIBELF_F_DATA_MALLOCED) == 0); + STAILQ_REMOVE(&s->s_rawdata, d, _Libelf_Data, d_next); + d = _libelf_release_data(d); + } + + e = s->s_elf; + + assert(e != NULL); + + STAILQ_REMOVE(&e->e_u.e_elf.e_scn, s, _Elf_Scn, s_next); + + free(s); + + return (NULL); +} diff --git a/contrib/elftoolchain/libelf/libelf_ar.c b/contrib/elftoolchain/libelf/libelf_ar.c new file mode 100644 index 00000000..2a8b834b --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_ar.c @@ -0,0 +1,501 @@ +/*- + * Copyright (c) 2006,2008,2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include + +#include "_libelf.h" +#include "_libelf_ar.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +#define LIBELF_NALLOC_SIZE 16 + +/* + * `ar' archive handling. + * + * `ar' archives start with signature `ARMAG'. Each archive member is + * preceded by a header containing meta-data for the member. This + * header is described in (struct ar_hdr). The header always + * starts on an even address. File data is padded with "\n" + * characters to keep this invariant. + * + * Special considerations for `ar' archives: + * + * There are two variants of the `ar' archive format: traditional BSD + * and SVR4. These differ in the way long file names are treated, and + * in the layout of the archive symbol table. + * + * The `ar' header only has space for a 16 character file name. + * + * In the SVR4 format, file names are terminated with a '/', so this + * effectively leaves 15 characters for the actual file name. Longer + * file names stored in a separate 'string table' and referenced + * indirectly from the name field. The string table itself appears as + * an archive member with name "// ". An `indirect' file name in an + * `ar' header matches the pattern "/[0-9]*". The digits form a + * decimal number that corresponds to a byte offset into the string + * table where the actual file name of the object starts. Strings in + * the string table are padded to start on even addresses. + * + * In the BSD format, file names can be up to 16 characters. File + * names shorter than 16 characters are padded to 16 characters using + * (ASCII) space characters. File names with embedded spaces and file + * names longer than 16 characters are stored immediately after the + * archive header and the name field set to a special indirect name + * matching the pattern "#1/[0-9]+". The digits form a decimal number + * that corresponds to the actual length of the file name following + * the archive header. The content of the archive member immediately + * follows the file name, and the size field of the archive member + * holds the sum of the sizes of the member and of the appended file + * name. + * + * Archives may also have a symbol table (see ranlib(1)), mapping + * program symbols to object files inside the archive. + * + * In the SVR4 format, a symbol table uses a file name of "/ " in its + * archive header. The symbol table is structured as: + * - a 4-byte count of entries stored as a binary value, MSB first + * - 'n' 4-byte offsets, stored as binary values, MSB first + * - 'n' NUL-terminated strings, for ELF symbol names, stored unpadded. + * + * In the BSD format, the symbol table uses a file name of "__.SYMDEF". + * It is structured as two parts: + * - The first part is an array of "ranlib" structures preceded by + * the size of the array in bytes. Each "ranlib" structure + * describes one symbol. Each structure contains an offset into + * the string table for the symbol name, and a file offset into the + * archive for the member defining the symbol. + * - The second part is a string table containing NUL-terminated + * strings, preceded by the size of the string table in bytes. + * + * If the symbol table and string table are is present in an archive + * they must be the very first objects and in that order. + */ + + +/* + * Retrieve an archive header descriptor. + */ + +Elf_Arhdr * +_libelf_ar_gethdr(Elf *e) +{ + Elf *parent; + Elf_Arhdr *eh; + char *namelen; + size_t n, nlen; + struct ar_hdr *arh; + + if ((parent = e->e_parent) == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + assert((e->e_flags & LIBELF_F_AR_HEADER) == 0); + + arh = (struct ar_hdr *) (uintptr_t) e->e_hdr.e_rawhdr; + + assert((uintptr_t) arh >= (uintptr_t) parent->e_rawfile + SARMAG); + + /* + * There needs to be enough space remaining in the file for the + * archive header. + */ + if ((uintptr_t) arh > (uintptr_t) parent->e_rawfile + + (uintptr_t) parent->e_rawsize - sizeof(struct ar_hdr)) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + if ((eh = malloc(sizeof(Elf_Arhdr))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + e->e_hdr.e_arhdr = eh; + e->e_flags |= LIBELF_F_AR_HEADER; + + eh->ar_name = eh->ar_rawname = NULL; + + if ((eh->ar_name = _libelf_ar_get_translated_name(arh, parent)) == + NULL) + goto error; + + if (_libelf_ar_get_number(arh->ar_uid, sizeof(arh->ar_uid), 10, + &n) == 0) + goto error; + eh->ar_uid = (uid_t) n; + + if (_libelf_ar_get_number(arh->ar_gid, sizeof(arh->ar_gid), 10, + &n) == 0) + goto error; + eh->ar_gid = (gid_t) n; + + if (_libelf_ar_get_number(arh->ar_mode, sizeof(arh->ar_mode), 8, + &n) == 0) + goto error; + eh->ar_mode = (mode_t) n; + + if (_libelf_ar_get_number(arh->ar_size, sizeof(arh->ar_size), 10, + &n) == 0) + goto error; + + /* + * Get the true size of the member if extended naming is being used. + */ + if (IS_EXTENDED_BSD_NAME(arh->ar_name)) { + namelen = arh->ar_name + + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE; + if (_libelf_ar_get_number(namelen, sizeof(arh->ar_name) - + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE, 10, &nlen) == 0) + goto error; + n -= nlen; + } + + eh->ar_size = n; + + if ((eh->ar_rawname = _libelf_ar_get_raw_name(arh)) == NULL) + goto error; + + eh->ar_flags = 0; + + return (eh); + + error: + if (eh) { + if (eh->ar_name) + free(eh->ar_name); + if (eh->ar_rawname) + free(eh->ar_rawname); + free(eh); + } + + e->e_flags &= ~LIBELF_F_AR_HEADER; + e->e_hdr.e_rawhdr = (unsigned char *) arh; + + return (NULL); +} + +Elf * +_libelf_ar_open_member(int fd, Elf_Cmd c, Elf *elf) +{ + Elf *e; + size_t nsz, sz; + off_t next, end; + struct ar_hdr *arh; + char *member, *namelen; + + assert(elf->e_kind == ELF_K_AR); + + next = elf->e_u.e_ar.e_next; + + /* + * `next' is only set to zero by elf_next() when the last + * member of an archive is processed. + */ + if (next == (off_t) 0) + return (NULL); + + assert((next & 1) == 0); + + /* + * There needs to be enough space in the file to contain an + * ar(1) header. + */ + end = next + (off_t) sizeof(struct ar_hdr); + if ((uintmax_t) end < (uintmax_t) next || /* Overflow. */ + end > (off_t) elf->e_rawsize) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + arh = (struct ar_hdr *) (elf->e_rawfile + next); + + /* + * Retrieve the size of the member. + */ + if (_libelf_ar_get_number(arh->ar_size, sizeof(arh->ar_size), 10, + &sz) == 0) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + /* + * Check if the archive member that follows will fit in the + * containing archive. + */ + end += (off_t) sz; + if (end < next || /* Overflow. */ + end > (off_t) elf->e_rawsize) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + /* + * Adjust the size field for members in BSD archives using + * extended naming. + */ + if (IS_EXTENDED_BSD_NAME(arh->ar_name)) { + namelen = arh->ar_name + + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE; + if (_libelf_ar_get_number(namelen, sizeof(arh->ar_name) - + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE, 10, &nsz) == 0) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + member = (char *) (arh + 1) + nsz; + sz -= nsz; + } else + member = (char *) (arh + 1); + + + if ((e = elf_memory(member, sz)) == NULL) + return (NULL); + + e->e_fd = fd; + e->e_cmd = c; + e->e_hdr.e_rawhdr = (unsigned char *) arh; + + elf->e_u.e_ar.e_nchildren++; + e->e_parent = elf; + + return (e); +} + +/* + * A BSD-style ar(1) symbol table has the following layout: + * + * - A count of bytes used by the following array of 'ranlib' + * structures, stored as a 'long'. + * - An array of 'ranlib' structures. Each array element is + * two 'long's in size. + * - A count of bytes used for the following symbol table. + * - The symbol table itself. + */ + +/* + * A helper macro to read in a 'long' value from the archive. + * + * We use memcpy() since the source pointer may be misaligned with + * respect to the natural alignment for a C 'long'. + */ +#define GET_LONG(P, V)do { \ + memcpy(&(V), (P), sizeof(long)); \ + (P) += sizeof(long); \ + } while (/* CONSTCOND */ 0) + +Elf_Arsym * +_libelf_ar_process_bsd_symtab(Elf *e, size_t *count) +{ + Elf_Arsym *symtab, *sym; + unsigned int n; + size_t nentries; + unsigned char *end, *p, *p0, *s, *s0; + const size_t entrysize = 2 * sizeof(long); + long arraysize, fileoffset, stroffset, strtabsize; + + assert(e != NULL); + assert(count != NULL); + assert(e->e_u.e_ar.e_symtab == NULL); + + symtab = NULL; + + /* + * The BSD symbol table always contains the count fields even + * if there are no entries in it. + */ + if (e->e_u.e_ar.e_rawsymtabsz < 2 * sizeof(long)) + goto symtaberror; + + p = p0 = (unsigned char *) e->e_u.e_ar.e_rawsymtab; + end = p0 + e->e_u.e_ar.e_rawsymtabsz; + + /* + * Retrieve the size of the array of ranlib descriptors and + * check it for validity. + */ + GET_LONG(p, arraysize); + + if (arraysize < 0 || p0 + arraysize >= end || + ((size_t) arraysize % entrysize != 0)) + goto symtaberror; + + /* + * Check the value of the string table size. + */ + s = p + arraysize; + GET_LONG(s, strtabsize); + + s0 = s; /* Start of string table. */ + if (strtabsize < 0 || s0 + strtabsize > end) + goto symtaberror; + + nentries = (size_t) arraysize / entrysize; + + /* + * Allocate space for the returned Elf_Arsym array. + */ + if ((symtab = malloc(sizeof(Elf_Arsym) * (nentries + 1))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + /* Read in symbol table entries. */ + for (n = 0, sym = symtab; n < nentries; n++, sym++) { + GET_LONG(p, stroffset); + GET_LONG(p, fileoffset); + + if (stroffset < 0 || fileoffset < 0 || + (off_t) fileoffset >= e->e_rawsize) + goto symtaberror; + + s = s0 + stroffset; + + if (s >= end) + goto symtaberror; + + sym->as_off = (off_t) fileoffset; + sym->as_hash = elf_hash((char *) s); + sym->as_name = (char *) s; + } + + /* Fill up the sentinel entry. */ + sym->as_name = NULL; + sym->as_hash = ~0UL; + sym->as_off = (off_t) 0; + + /* Remember the processed symbol table. */ + e->e_u.e_ar.e_symtab = symtab; + + *count = e->e_u.e_ar.e_symtabsz = nentries + 1; + + return (symtab); + +symtaberror: + if (symtab) + free(symtab); + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); +} + +/* + * An SVR4-style ar(1) symbol table has the following layout: + * + * - The first 4 bytes are a binary count of the number of entries in the + * symbol table, stored MSB-first. + * - Then there are 'n' 4-byte binary offsets, also stored MSB first. + * - Following this, there are 'n' null-terminated strings. + */ + +#define GET_WORD(P, V) do { \ + (V) = 0; \ + (V) = (P)[0]; (V) <<= 8; \ + (V) += (P)[1]; (V) <<= 8; \ + (V) += (P)[2]; (V) <<= 8; \ + (V) += (P)[3]; \ + } while (/* CONSTCOND */ 0) + +#define INTSZ 4 + + +Elf_Arsym * +_libelf_ar_process_svr4_symtab(Elf *e, size_t *count) +{ + uint32_t off; + size_t n, nentries; + Elf_Arsym *symtab, *sym; + unsigned char *p, *s, *end; + + assert(e != NULL); + assert(count != NULL); + assert(e->e_u.e_ar.e_symtab == NULL); + + symtab = NULL; + + if (e->e_u.e_ar.e_rawsymtabsz < INTSZ) + goto symtaberror; + + p = (unsigned char *) e->e_u.e_ar.e_rawsymtab; + end = p + e->e_u.e_ar.e_rawsymtabsz; + + GET_WORD(p, nentries); + p += INTSZ; + + if (nentries == 0 || p + nentries * INTSZ >= end) + goto symtaberror; + + /* Allocate space for a nentries + a sentinel. */ + if ((symtab = malloc(sizeof(Elf_Arsym) * (nentries+1))) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + s = p + (nentries * INTSZ); /* start of the string table. */ + + for (n = nentries, sym = symtab; n > 0; n--) { + if (s >= end) + goto symtaberror; + + GET_WORD(p, off); + if ((off_t) off >= e->e_rawsize) + goto symtaberror; + + sym->as_off = (off_t) off; + sym->as_hash = elf_hash((char *) s); + sym->as_name = (char *) s; + + p += INTSZ; + sym++; + + for (; s < end && *s++ != '\0';) /* skip to next string */ + ; + } + + /* Fill up the sentinel entry. */ + sym->as_name = NULL; + sym->as_hash = ~0UL; + sym->as_off = (off_t) 0; + + *count = e->e_u.e_ar.e_symtabsz = nentries + 1; + e->e_u.e_ar.e_symtab = symtab; + + return (symtab); + +symtaberror: + if (symtab) + free(symtab); + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); +} diff --git a/contrib/elftoolchain/libelf/libelf_ar_util.c b/contrib/elftoolchain/libelf/libelf_ar_util.c new file mode 100644 index 00000000..601036fa --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_ar_util.c @@ -0,0 +1,364 @@ +/*- + * Copyright (c) 2006,2009,2010 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" +#include "_libelf_ar.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Convert a string bounded by `start' and `start+sz' (exclusive) to a + * number in the specified base. + */ +int +_libelf_ar_get_number(const char *src, size_t sz, unsigned int base, + size_t *ret) +{ + size_t r; + unsigned int c, v; + const unsigned char *e, *s; + + assert(base <= 10); + + s = (const unsigned char *) src; + e = s + sz; + + /* skip leading blanks */ + for (;s < e && (c = *s) == ' '; s++) + ; + + r = 0L; + for (;s < e; s++) { + if ((c = *s) == ' ') + break; + if (c < '0' || c > '9') + return (0); + v = c - '0'; + if (v >= base) /* Illegal digit. */ + break; + r *= base; + r += v; + } + + *ret = r; + + return (1); +} + +/* + * Return the translated name for an archive member. + */ +char * +_libelf_ar_get_translated_name(const struct ar_hdr *arh, Elf *ar) +{ + char *s; + unsigned char c; + size_t len, offset; + const unsigned char *buf, *p, *q, *r; + const size_t bufsize = sizeof(arh->ar_name); + + assert(arh != NULL); + assert(ar->e_kind == ELF_K_AR); + assert((const unsigned char *) arh >= ar->e_rawfile && + (const unsigned char *) arh < ar->e_rawfile + ar->e_rawsize); + + buf = (const unsigned char *) arh->ar_name; + + /* + * Check for extended naming. + * + * If the name matches the pattern "^/[0-9]+", it is an + * SVR4-style extended name. If the name matches the pattern + * "#1/[0-9]+", the entry uses BSD style extended naming. + */ + if (buf[0] == '/' && (c = buf[1]) >= '0' && c <= '9') { + /* + * The value in field ar_name is a decimal offset into + * the archive string table where the actual name + * resides. + */ + if (_libelf_ar_get_number((const char *) (buf + 1), + bufsize - 1, 10, &offset) == 0) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + if (offset > ar->e_u.e_ar.e_rawstrtabsz) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + p = q = ar->e_u.e_ar.e_rawstrtab + offset; + r = ar->e_u.e_ar.e_rawstrtab + ar->e_u.e_ar.e_rawstrtabsz; + + for (; p < r && *p != '/'; p++) + ; + len = (size_t) (p - q + 1); /* space for the trailing NUL */ + + if ((s = malloc(len)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + (void) strncpy(s, (const char *) q, len - 1); + s[len - 1] = '\0'; + + return (s); + } else if (IS_EXTENDED_BSD_NAME(buf)) { + r = buf + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE; + + if (_libelf_ar_get_number((const char *) r, bufsize - + LIBELF_AR_BSD_EXTENDED_NAME_PREFIX_SIZE, 10, + &len) == 0) { + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); + } + + /* + * Allocate space for the file name plus a + * trailing NUL. + */ + if ((s = malloc(len + 1)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + /* + * The file name follows the archive header. + */ + q = (const unsigned char *) (arh + 1); + + (void) strncpy(s, (const char *) q, len); + s[len] = '\0'; + + return (s); + } + + /* + * A 'normal' name. + * + * Skip back over trailing blanks from the end of the field. + * In the SVR4 format, a '/' is used as a terminator for + * non-special names. + */ + for (q = buf + bufsize - 1; q >= buf && *q == ' '; --q) + ; + + if (q >= buf) { + if (*q == '/') { + /* + * SVR4 style names: ignore the trailing + * character '/', but only if the name is not + * one of the special names "/" and "//". + */ + if (q > buf + 1 || + (q == (buf + 1) && *buf != '/')) + q--; + } + + len = (size_t) (q - buf + 2); /* Space for a trailing NUL. */ + } else { + /* The buffer only had blanks. */ + buf = (const unsigned char *) ""; + len = 1; + } + + if ((s = malloc(len)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + (void) strncpy(s, (const char *) buf, len - 1); + s[len - 1] = '\0'; + + return (s); +} + +/* + * Return the raw name for an archive member, inclusive of any + * formatting characters. + */ +char * +_libelf_ar_get_raw_name(const struct ar_hdr *arh) +{ + char *rawname; + const size_t namesz = sizeof(arh->ar_name); + + if ((rawname = malloc(namesz + 1)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + (void) strncpy(rawname, arh->ar_name, namesz); + rawname[namesz] = '\0'; + return (rawname); +} + +/* + * Open an 'ar' archive. + */ +Elf * +_libelf_ar_open(Elf *e, int reporterror) +{ + size_t sz; + int scanahead; + struct ar_hdr arh; + unsigned char *s, *end; + + _libelf_init_elf(e, ELF_K_AR); + + e->e_u.e_ar.e_nchildren = 0; + e->e_u.e_ar.e_next = (off_t) -1; + + /* + * Look for special members. + */ + + s = e->e_rawfile + SARMAG; + end = e->e_rawfile + e->e_rawsize; + + assert(e->e_rawsize > 0); + + /* + * We use heuristics to determine the flavor of the archive we + * are examining. + * + * SVR4 flavor archives use the name "/ " and "// " for + * special members. + * + * In BSD flavor archives the symbol table, if present, is the + * first archive with name "__.SYMDEF". + */ + +#define READ_AR_HEADER(S, ARH, SZ, END) \ + do { \ + if ((S) + sizeof((ARH)) > (END)) \ + goto error; \ + (void) memcpy(&(ARH), (S), sizeof((ARH))); \ + if ((ARH).ar_fmag[0] != '`' || (ARH).ar_fmag[1] != '\n') \ + goto error; \ + if (_libelf_ar_get_number((char *) (ARH).ar_size, \ + sizeof((ARH).ar_size), 10, &(SZ)) == 0) \ + goto error; \ + } while (/* CONSTCOND */ 0) + + READ_AR_HEADER(s, arh, sz, end); + + /* + * Handle special archive members for the SVR4 format. + */ + if (arh.ar_name[0] == '/') { + if (sz == 0) + goto error; + + e->e_flags |= LIBELF_F_AR_VARIANT_SVR4; + + scanahead = 0; + + /* + * The symbol table (file name "/ ") always comes before the + * string table (file name "// "). + */ + if (arh.ar_name[1] == ' ') { + /* "/ " => symbol table. */ + scanahead = 1; /* The string table to follow. */ + + s += sizeof(arh); + e->e_u.e_ar.e_rawsymtab = s; + e->e_u.e_ar.e_rawsymtabsz = sz; + + sz = LIBELF_ADJUST_AR_SIZE(sz); + s += sz; + + } else if (arh.ar_name[1] == '/' && arh.ar_name[2] == ' ') { + /* "// " => string table for long file names. */ + s += sizeof(arh); + e->e_u.e_ar.e_rawstrtab = s; + e->e_u.e_ar.e_rawstrtabsz = sz; + + sz = LIBELF_ADJUST_AR_SIZE(sz); + s += sz; + } + + /* + * If the string table hasn't been seen yet, look for + * it in the next member. + */ + if (scanahead) { + READ_AR_HEADER(s, arh, sz, end); + + /* "// " => string table for long file names. */ + if (arh.ar_name[0] == '/' && arh.ar_name[1] == '/' && + arh.ar_name[2] == ' ') { + + s += sizeof(arh); + + e->e_u.e_ar.e_rawstrtab = s; + e->e_u.e_ar.e_rawstrtabsz = sz; + + sz = LIBELF_ADJUST_AR_SIZE(sz); + s += sz; + } + } + } else if (strncmp(arh.ar_name, LIBELF_AR_BSD_SYMTAB_NAME, + sizeof(LIBELF_AR_BSD_SYMTAB_NAME) - 1) == 0) { + /* + * BSD style archive symbol table. + */ + s += sizeof(arh); + e->e_u.e_ar.e_rawsymtab = s; + e->e_u.e_ar.e_rawsymtabsz = sz; + + sz = LIBELF_ADJUST_AR_SIZE(sz); + s += sz; + } + + /* + * Update the 'next' offset, so that a subsequent elf_begin() + * works as expected. + */ + e->e_u.e_ar.e_next = (off_t) (s - e->e_rawfile); + + return (e); + +error: + if (!reporterror) { + e->e_kind = ELF_K_NONE; + return (e); + } + + LIBELF_SET_ERROR(ARCHIVE, 0); + return (NULL); +} diff --git a/contrib/elftoolchain/libelf/libelf_checksum.c b/contrib/elftoolchain/libelf/libelf_checksum.c new file mode 100644 index 00000000..84ab3370 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_checksum.c @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +static unsigned long +_libelf_sum(unsigned long c, const unsigned char *s, size_t size) +{ + if (s == NULL || size == 0) + return (c); + + while (size--) + c += *s++; + + return (c); +} + +long +_libelf_checksum(Elf *e, int elfclass) +{ + size_t shn; + Elf_Scn *scn; + Elf_Data *d; + unsigned long checksum; + GElf_Ehdr eh; + GElf_Shdr shdr; + + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (0L); + } + + if (e->e_class != elfclass) { + LIBELF_SET_ERROR(CLASS, 0); + return (0L); + } + + if (gelf_getehdr(e, &eh) == NULL) + return (0); + + /* + * Iterate over all sections in the ELF file, computing the + * checksum along the way. + * + * The first section is always SHN_UNDEF and can be skipped. + * Non-allocatable sections are skipped, as are sections that + * could be affected by utilities such as strip(1). + */ + + checksum = 0; + for (shn = 1; shn < e->e_u.e_elf.e_nscn; shn++) { + if ((scn = elf_getscn(e, shn)) == NULL) + return (0); + if (gelf_getshdr(scn, &shdr) == NULL) + return (0); + if ((shdr.sh_flags & SHF_ALLOC) == 0 || + shdr.sh_type == SHT_DYNAMIC || + shdr.sh_type == SHT_DYNSYM) + continue; + + d = NULL; + while ((d = elf_rawdata(scn, d)) != NULL) + checksum = _libelf_sum(checksum, + (unsigned char *) d->d_buf, (size_t) d->d_size); + } + + /* + * Return a 16-bit checksum compatible with Solaris. + */ + return (long) (((checksum >> 16) & 0xFFFFUL) + (checksum & 0xFFFFUL)); +} diff --git a/contrib/elftoolchain/libelf/libelf_convert.m4 b/contrib/elftoolchain/libelf/libelf_convert.m4 new file mode 100644 index 00000000..c9e3c28a --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_convert.m4 @@ -0,0 +1,1096 @@ +/*- + * Copyright (c) 2006-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* WARNING: GENERATED FROM __file__. */ + +divert(-1) + +# Generate conversion routines for converting between in-memory and +# file representations of Elf data structures. +# +# These conversions use the type information defined in `elf_types.m4'. + +include(SRCDIR`/elf_types.m4') + +# For the purposes of generating conversion code, ELF types may be +# classified according to the following characteristics: +# +# 1. Whether the ELF type can be directly mapped to an integral C +# language type. For example, the ELF_T_WORD type maps directly to +# a 'uint32_t', but ELF_T_GNUHASH lacks a matching C type. +# +# 2. Whether the type has word size dependent variants. For example, +# ELT_T_EHDR is represented using C types Elf32_Ehdr and El64_Ehdr, +# and the ELF_T_ADDR and ELF_T_OFF types have integral C types that +# can be 32- or 64- bit wide. +# +# 3. Whether the ELF types has a fixed representation or not. For +# example, the ELF_T_SYM type has a fixed size file representation, +# some types like ELF_T_NOTE and ELF_T_GNUHASH use a variable size +# representation. +# +# We use m4 macros to generate conversion code for ELF types that have +# a fixed size representation. Conversion functions for the remaining +# types are coded by hand. +# +#* Handling File and Memory Representations +# +# `In-memory' representations of an Elf data structure use natural +# alignments and native byte ordering. This allows pointer arithmetic +# and casting to work as expected. On the other hand, the `file' +# representation of an ELF data structure could possibly be packed +# tighter than its `in-memory' representation, and could be of a +# differing byte order. Reading ELF objects that are members of `ar' +# archives present an additional complication: `ar' pads file data to +# even addresses, so file data structures in an archive member +# residing inside an `ar' archive could be at misaligned memory +# addresses when brought into memory. +# +# In summary, casting the `char *' pointers that point to memory +# representations (i.e., source pointers for the *_tof() functions and +# the destination pointers for the *_tom() functions), is safe, as +# these pointers should be correctly aligned for the memory type +# already. However, pointers to file representations have to be +# treated as being potentially unaligned and no casting can be done. + +# NOCVT(TYPE) -- Do not generate the cvt[] structure entry for TYPE +define(`NOCVT',`define(`NOCVT_'$1,1)') + +# NOFUNC(TYPE) -- Do not generate a conversion function for TYPE +define(`NOFUNC',`define(`NOFUNC_'$1,1)') + +# IGNORE(TYPE) -- Completely ignore the type. +define(`IGNORE',`NOCVT($1)NOFUNC($1)') + +# Mark ELF types that should not be processed by the M4 macros below. + +# Types for which we use functions with non-standard names. +IGNORE(`BYTE') # Uses a wrapper around memcpy(). +IGNORE(`NOTE') # Not a fixed size type. + +# Types for which we supply hand-coded functions. +NOFUNC(`GNUHASH') # A type with complex internal structure. +NOFUNC(`VDEF') # See MAKE_VERSION_CONVERTERS below. +NOFUNC(`VNEED') # .. + +# Unimplemented types. +IGNORE(`MOVEP') + +# ELF types that don't exist in a 32-bit world. +NOFUNC(`XWORD32') +NOFUNC(`SXWORD32') + +# `Primitive' ELF types are those that are an alias for an integral +# type. As they have no internal structure, they can be copied using +# a `memcpy()', and byteswapped in straightforward way. +# +# Mark all ELF types that directly map to integral C types. +define(`PRIM_ADDR', 1) +define(`PRIM_BYTE', 1) +define(`PRIM_HALF', 1) +define(`PRIM_LWORD', 1) +define(`PRIM_OFF', 1) +define(`PRIM_SWORD', 1) +define(`PRIM_SXWORD', 1) +define(`PRIM_WORD', 1) +define(`PRIM_XWORD', 1) + +# Note the primitive types that are size-dependent. +define(`SIZEDEP_ADDR', 1) +define(`SIZEDEP_OFF', 1) + +# Generate conversion functions for primitive types. +# +# Macro use: MAKEPRIMFUNCS(ELFTYPE,CTYPE,TYPESIZE,SYMSIZE) +# `$1': Name of the ELF type. +# `$2': C structure name suffix. +# `$3': ELF class specifier for types, one of [`32', `64']. +# `$4': Additional ELF class specifier, one of [`', `32', `64']. +# +# Generates a pair of conversion functions. +define(`MAKEPRIMFUNCS',` +static int +_libelf_cvt_$1$4_tof(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + Elf$3_$2 t, *s = (Elf$3_$2 *) (uintptr_t) src; + size_t c; + + (void) dsz; + + if (!byteswap) { + (void) memcpy(dst, src, count * sizeof(*s)); + return (1); + } + + for (c = 0; c < count; c++) { + t = *s++; + SWAP_$1$4(t); + WRITE_$1$4(dst,t); + } + + return (1); +} + +static int +_libelf_cvt_$1$4_tom(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + Elf$3_$2 t, *d = (Elf$3_$2 *) (uintptr_t) dst; + size_t c; + + if (dsz < count * sizeof(Elf$3_$2)) + return (0); + + if (!byteswap) { + (void) memcpy(dst, src, count * sizeof(*d)); + return (1); + } + + for (c = 0; c < count; c++) { + READ_$1$4(src,t); + SWAP_$1$4(t); + *d++ = t; + } + + return (1); +} +') + +# +# Handling composite ELF types +# + +# SWAP_FIELD(FIELDNAME,ELFTYPE) -- Generate code to swap one field. +define(`SWAP_FIELD', + `ifdef(`SIZEDEP_'$2, + `SWAP_$2'SZ()`(t.$1); + ', + `SWAP_$2(t.$1); + ')') + +# SWAP_MEMBERS(STRUCT) -- Iterate over a structure definition. +define(`SWAP_MEMBERS', + `ifelse($#,1,`/**/', + `SWAP_FIELD($1)SWAP_MEMBERS(shift($@))')') + +# SWAP_STRUCT(CTYPE,SIZE) -- Generate code to swap an ELF structure. +define(`SWAP_STRUCT', + `pushdef(`SZ',$2)/* Swap an Elf$2_$1 */ + SWAP_MEMBERS(Elf$2_$1_DEF)popdef(`SZ')') + +# WRITE_FIELD(ELFTYPE,FIELDNAME) -- Generate code to write one field. +define(`WRITE_FIELD', + `ifdef(`SIZEDEP_'$2, + `WRITE_$2'SZ()`(dst,t.$1); + ', + `WRITE_$2(dst,t.$1); + ')') + +# WRITE_MEMBERS(ELFTYPELIST) -- Iterate over a structure definition. +define(`WRITE_MEMBERS', + `ifelse($#,1,`/**/', + `WRITE_FIELD($1)WRITE_MEMBERS(shift($@))')') + +# WRITE_STRUCT(CTYPE,SIZE) -- Generate code to write out an ELF structure. +define(`WRITE_STRUCT', + `pushdef(`SZ',$2)/* Write an Elf$2_$1 */ + WRITE_MEMBERS(Elf$2_$1_DEF)popdef(`SZ')') + +# READ_FIELD(ELFTYPE,CTYPE) -- Generate code to read one field. +define(`READ_FIELD', + `ifdef(`SIZEDEP_'$2, + `READ_$2'SZ()`(s,t.$1); + ', + `READ_$2(s,t.$1); + ')') + +# READ_MEMBERS(ELFTYPELIST) -- Iterate over a structure definition. +define(`READ_MEMBERS', + `ifelse($#,1,`/**/', + `READ_FIELD($1)READ_MEMBERS(shift($@))')') + +# READ_STRUCT(CTYPE,SIZE) -- Generate code to read an ELF structure. +define(`READ_STRUCT', + `pushdef(`SZ',$2)/* Read an Elf$2_$1 */ + READ_MEMBERS(Elf$2_$1_DEF)popdef(`SZ')') + + +# MAKECOMPFUNCS -- Generate converters for composite ELF structures. +# +# When converting data to file representation, the source pointer will +# be naturally aligned for a data structure's in-memory +# representation. When converting data to memory, the destination +# pointer will be similarly aligned. +# +# For in-place conversions, when converting to file representations, +# the source buffer is large enough to hold `file' data. When +# converting from file to memory, we need to be careful to work +# `backwards', to avoid overwriting unconverted data. +# +# Macro use: +# `$1': Name of the ELF type. +# `$2': C structure name suffix. +# `$3': ELF class specifier, one of [`', `32', `64'] +define(`MAKECOMPFUNCS', `ifdef(`NOFUNC_'$1$3,`',` +static int +_libelf_cvt_$1$3_tof(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + Elf$3_$2 t, *s; + size_t c; + + (void) dsz; + + s = (Elf$3_$2 *) (uintptr_t) src; + for (c = 0; c < count; c++) { + t = *s++; + if (byteswap) { + SWAP_STRUCT($2,$3) + } + WRITE_STRUCT($2,$3) + } + + return (1); +} + +static int +_libelf_cvt_$1$3_tom(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + Elf$3_$2 t, *d; + unsigned char *s,*s0; + size_t fsz; + + fsz = elf$3_fsize(ELF_T_$1, (size_t) 1, EV_CURRENT); + d = ((Elf$3_$2 *) (uintptr_t) dst) + (count - 1); + s0 = src + (count - 1) * fsz; + + if (dsz < count * sizeof(Elf$3_$2)) + return (0); + + while (count--) { + s = s0; + READ_STRUCT($2,$3) + if (byteswap) { + SWAP_STRUCT($2,$3) + } + *d-- = t; s0 -= fsz; + } + + return (1); +} +')') + +# MAKE_TYPE_CONVERTER(ELFTYPE,CTYPE) +# +# Make type convertor functions from the type definition +# of the ELF type: +# - Skip convertors marked as `NOFUNC'. +# - Invoke `MAKEPRIMFUNCS' or `MAKECOMPFUNCS' as appropriate. +define(`MAKE_TYPE_CONVERTER', + `ifdef(`NOFUNC_'$1,`', + `ifdef(`PRIM_'$1, + `ifdef(`SIZEDEP_'$1, + `MAKEPRIMFUNCS($1,$2,32,32)dnl + MAKEPRIMFUNCS($1,$2,64,64)', + `MAKEPRIMFUNCS($1,$2,64)')', + `MAKECOMPFUNCS($1,$2,32)dnl + MAKECOMPFUNCS($1,$2,64)')')') + +# MAKE_TYPE_CONVERTERS(ELFTYPELIST) -- Generate conversion functions. +define(`MAKE_TYPE_CONVERTERS', + `ifelse($#,1,`', + `MAKE_TYPE_CONVERTER($1)MAKE_TYPE_CONVERTERS(shift($@))')') + + +# +# Macros to generate entries for the table of convertors. +# + +# CONV(ELFTYPE,SIZE,DIRECTION) +# +# Generate the name of a convertor function. +define(`CONV', + `ifdef(`NOFUNC_'$1$2, + `.$3$2 = NULL', + `ifdef(`PRIM_'$1, + `ifdef(`SIZEDEP_'$1, + `.$3$2 = _libelf_cvt_$1$2_$3', + `.$3$2 = _libelf_cvt_$1_$3')', + `.$3$2 = _libelf_cvt_$1$2_$3')')') + +# CONVERTER_NAME(ELFTYPE) +# +# Generate the contents of one `struct cvt' instance. +define(`CONVERTER_NAME', + `ifdef(`NOCVT_'$1,`', + ` [ELF_T_$1] = { + CONV($1,32,tof), + CONV($1,32,tom), + CONV($1,64,tof), + CONV($1,64,tom) + }, + +')') + +# CONVERTER_NAMES(ELFTYPELIST) +# +# Generate the `struct cvt[]' array. +define(`CONVERTER_NAMES', + `ifelse($#,1,`', + `CONVERTER_NAME($1)CONVERTER_NAMES(shift($@))')') + +# +# Handling ELF version sections. +# + +# _FSZ(FIELD,BASETYPE) - return the file size for a field. +define(`_FSZ', + `ifelse($2,`HALF',2, + $2,`WORD',4)') + +# FSZ(STRUCT) - determine the file size of a structure. +define(`FSZ', + `ifelse($#,1,0, + `eval(_FSZ($1) + FSZ(shift($@)))')') + +# MAKE_VERSION_CONVERTERS(TYPE,BASE,AUX,PFX) -- Generate conversion +# functions for versioning structures. +define(`MAKE_VERSION_CONVERTERS', + `MAKE_VERSION_CONVERTER($1,$2,$3,$4,32) + MAKE_VERSION_CONVERTER($1,$2,$3,$4,64)') + +# MAKE_VERSION_CONVERTOR(TYPE,CBASE,CAUX,PFX,SIZE) -- Generate a +# conversion function. +define(`MAKE_VERSION_CONVERTER',` +static int +_libelf_cvt_$1$5_tof(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + Elf$5_$2 t; + Elf$5_$3 a; + const size_t verfsz = FSZ(Elf$5_$2_DEF); + const size_t auxfsz = FSZ(Elf$5_$3_DEF); + const size_t vermsz = sizeof(Elf$5_$2); + const size_t auxmsz = sizeof(Elf$5_$3); + unsigned char * const dstend = dst + dsz; + unsigned char * const srcend = src + count; + unsigned char *dtmp, *dstaux, *srcaux; + Elf$5_Word aux, anext, cnt, vnext; + + for (dtmp = dst, vnext = ~0U; + vnext != 0 && dtmp + verfsz <= dstend && src + vermsz <= srcend; + dtmp += vnext, src += vnext) { + + /* Read in an Elf$5_$2 structure. */ + t = *((Elf$5_$2 *) (uintptr_t) src); + + aux = t.$4_aux; + cnt = t.$4_cnt; + vnext = t.$4_next; + + if (byteswap) { + SWAP_STRUCT($2, $5) + } + + dst = dtmp; + WRITE_STRUCT($2, $5) + + if (aux < verfsz) + return (0); + + /* Process AUX entries. */ + for (anext = ~0U, dstaux = dtmp + aux, srcaux = src + aux; + cnt != 0 && anext != 0 && dstaux + auxfsz <= dstend && + srcaux + auxmsz <= srcend; + dstaux += anext, srcaux += anext, cnt--) { + + /* Read in an Elf$5_$3 structure. */ + a = *((Elf$5_$3 *) (uintptr_t) srcaux); + anext = a.$4a_next; + + if (byteswap) { + pushdef(`t',`a')SWAP_STRUCT($3, $5)popdef(`t') + } + + dst = dstaux; + pushdef(`t',`a')WRITE_STRUCT($3, $5)popdef(`t') + } + + if (anext || cnt) + return (0); + } + + if (vnext) + return (0); + + return (1); +} + +static int +_libelf_cvt_$1$5_tom(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + Elf$5_$2 t, *dp; + Elf$5_$3 a, *ap; + const size_t verfsz = FSZ(Elf$5_$2_DEF); + const size_t auxfsz = FSZ(Elf$5_$3_DEF); + const size_t vermsz = sizeof(Elf$5_$2); + const size_t auxmsz = sizeof(Elf$5_$3); + unsigned char * const dstend = dst + dsz; + unsigned char * const srcend = src + count; + unsigned char *dstaux, *s, *srcaux, *stmp; + Elf$5_Word aux, anext, cnt, vnext; + + for (stmp = src, vnext = ~0U; + vnext != 0 && stmp + verfsz <= srcend && dst + vermsz <= dstend; + stmp += vnext, dst += vnext) { + + /* Read in a $1 structure. */ + s = stmp; + READ_STRUCT($2, $5) + if (byteswap) { + SWAP_STRUCT($2, $5) + } + + dp = (Elf$5_$2 *) (uintptr_t) dst; + *dp = t; + + aux = t.$4_aux; + cnt = t.$4_cnt; + vnext = t.$4_next; + + if (aux < vermsz) + return (0); + + /* Process AUX entries. */ + for (anext = ~0U, dstaux = dst + aux, srcaux = stmp + aux; + cnt != 0 && anext != 0 && dstaux + auxmsz <= dstend && + srcaux + auxfsz <= srcend; + dstaux += anext, srcaux += anext, cnt--) { + + s = srcaux; + pushdef(`t',`a')READ_STRUCT($3, $5)popdef(`t') + + if (byteswap) { + pushdef(`t',`a')SWAP_STRUCT($3, $5)popdef(`t') + } + + anext = a.$4a_next; + + ap = ((Elf$5_$3 *) (uintptr_t) dstaux); + *ap = a; + } + + if (anext || cnt) + return (0); + } + + if (vnext) + return (0); + + return (1); +}') + +divert(0) + +/* + * C macros to byte swap integral quantities. + */ + +#define SWAP_BYTE(X) do { (void) (X); } while (/*CONSTCOND*/0) +#define SWAP_IDENT(X) do { (void) (X); } while (/*CONSTCOND*/0) +#define SWAP_HALF(X) do { \ + uint16_t _x = (uint16_t) (X); \ + uint32_t _t = _x & 0xFFU; \ + _t <<= 8U; _x >>= 8U; _t |= _x & 0xFFU; \ + (X) = (uint16_t) _t; \ + } while (/*CONSTCOND*/0) +#define _SWAP_WORD(X, T) do { \ + uint32_t _x = (uint32_t) (X); \ + uint32_t _t = _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + (X) = (T) _t; \ + } while (/*CONSTCOND*/0) +#define SWAP_ADDR32(X) _SWAP_WORD(X, Elf32_Addr) +#define SWAP_OFF32(X) _SWAP_WORD(X, Elf32_Off) +#define SWAP_SWORD(X) _SWAP_WORD(X, Elf32_Sword) +#define SWAP_WORD(X) _SWAP_WORD(X, Elf32_Word) +#define _SWAP_WORD64(X, T) do { \ + uint64_t _x = (uint64_t) (X); \ + uint64_t _t = _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + _t <<= 8; _x >>= 8; _t |= _x & 0xFF; \ + (X) = (T) _t; \ + } while (/*CONSTCOND*/0) +#define SWAP_ADDR64(X) _SWAP_WORD64(X, Elf64_Addr) +#define SWAP_LWORD(X) _SWAP_WORD64(X, Elf64_Lword) +#define SWAP_OFF64(X) _SWAP_WORD64(X, Elf64_Off) +#define SWAP_SXWORD(X) _SWAP_WORD64(X, Elf64_Sxword) +#define SWAP_XWORD(X) _SWAP_WORD64(X, Elf64_Xword) + +/* + * C macros to write out various integral values. + * + * Note: + * - The destination pointer could be unaligned. + * - Values are written out in native byte order. + * - The destination pointer is incremented after the write. + */ +#define WRITE_BYTE(P,X) do { \ + unsigned char *const _p = (unsigned char *) (P); \ + _p[0] = (unsigned char) (X); \ + (P) = _p + 1; \ + } while (/*CONSTCOND*/0) +#define WRITE_HALF(P,X) do { \ + uint16_t _t = (X); \ + unsigned char *const _p = (unsigned char *) (P); \ + const unsigned char *const _q = (unsigned char *) &_t; \ + _p[0] = _q[0]; \ + _p[1] = _q[1]; \ + (P) = _p + 2; \ + } while (/*CONSTCOND*/0) +#define WRITE_WORD(P,X) do { \ + uint32_t _t = (uint32_t) (X); \ + unsigned char *const _p = (unsigned char *) (P); \ + const unsigned char *const _q = (unsigned char *) &_t; \ + _p[0] = _q[0]; \ + _p[1] = _q[1]; \ + _p[2] = _q[2]; \ + _p[3] = _q[3]; \ + (P) = _p + 4; \ + } while (/*CONSTCOND*/0) +#define WRITE_ADDR32(P,X) WRITE_WORD(P,X) +#define WRITE_OFF32(P,X) WRITE_WORD(P,X) +#define WRITE_SWORD(P,X) WRITE_WORD(P,X) +#define WRITE_WORD64(P,X) do { \ + uint64_t _t = (uint64_t) (X); \ + unsigned char *const _p = (unsigned char *) (P); \ + const unsigned char *const _q = (unsigned char *) &_t; \ + _p[0] = _q[0]; \ + _p[1] = _q[1]; \ + _p[2] = _q[2]; \ + _p[3] = _q[3]; \ + _p[4] = _q[4]; \ + _p[5] = _q[5]; \ + _p[6] = _q[6]; \ + _p[7] = _q[7]; \ + (P) = _p + 8; \ + } while (/*CONSTCOND*/0) +#define WRITE_ADDR64(P,X) WRITE_WORD64(P,X) +#define WRITE_LWORD(P,X) WRITE_WORD64(P,X) +#define WRITE_OFF64(P,X) WRITE_WORD64(P,X) +#define WRITE_SXWORD(P,X) WRITE_WORD64(P,X) +#define WRITE_XWORD(P,X) WRITE_WORD64(P,X) +#define WRITE_IDENT(P,X) do { \ + (void) memcpy((P), (X), sizeof((X))); \ + (P) = (P) + EI_NIDENT; \ + } while (/*CONSTCOND*/0) + +/* + * C macros to read in various integral values. + * + * Note: + * - The source pointer could be unaligned. + * - Values are read in native byte order. + * - The source pointer is incremented appropriately. + */ + +#define READ_BYTE(P,X) do { \ + const unsigned char *const _p = \ + (const unsigned char *) (P); \ + (X) = _p[0]; \ + (P) = (P) + 1; \ + } while (/*CONSTCOND*/0) +#define READ_HALF(P,X) do { \ + uint16_t _t; \ + unsigned char *const _q = (unsigned char *) &_t; \ + const unsigned char *const _p = \ + (const unsigned char *) (P); \ + _q[0] = _p[0]; \ + _q[1] = _p[1]; \ + (P) = (P) + 2; \ + (X) = _t; \ + } while (/*CONSTCOND*/0) +#define _READ_WORD(P,X,T) do { \ + uint32_t _t; \ + unsigned char *const _q = (unsigned char *) &_t; \ + const unsigned char *const _p = \ + (const unsigned char *) (P); \ + _q[0] = _p[0]; \ + _q[1] = _p[1]; \ + _q[2] = _p[2]; \ + _q[3] = _p[3]; \ + (P) = (P) + 4; \ + (X) = (T) _t; \ + } while (/*CONSTCOND*/0) +#define READ_ADDR32(P,X) _READ_WORD(P, X, Elf32_Addr) +#define READ_OFF32(P,X) _READ_WORD(P, X, Elf32_Off) +#define READ_SWORD(P,X) _READ_WORD(P, X, Elf32_Sword) +#define READ_WORD(P,X) _READ_WORD(P, X, Elf32_Word) +#define _READ_WORD64(P,X,T) do { \ + uint64_t _t; \ + unsigned char *const _q = (unsigned char *) &_t; \ + const unsigned char *const _p = \ + (const unsigned char *) (P); \ + _q[0] = _p[0]; \ + _q[1] = _p[1]; \ + _q[2] = _p[2]; \ + _q[3] = _p[3]; \ + _q[4] = _p[4]; \ + _q[5] = _p[5]; \ + _q[6] = _p[6]; \ + _q[7] = _p[7]; \ + (P) = (P) + 8; \ + (X) = (T) _t; \ + } while (/*CONSTCOND*/0) +#define READ_ADDR64(P,X) _READ_WORD64(P, X, Elf64_Addr) +#define READ_LWORD(P,X) _READ_WORD64(P, X, Elf64_Lword) +#define READ_OFF64(P,X) _READ_WORD64(P, X, Elf64_Off) +#define READ_SXWORD(P,X) _READ_WORD64(P, X, Elf64_Sxword) +#define READ_XWORD(P,X) _READ_WORD64(P, X, Elf64_Xword) +#define READ_IDENT(P,X) do { \ + (void) memcpy((X), (P), sizeof((X))); \ + (P) = (P) + EI_NIDENT; \ + } while (/*CONSTCOND*/0) + +#define ROUNDUP2(V,N) (V) = ((((V) + (N) - 1)) & ~((N) - 1)) + +/*[*/ +MAKE_TYPE_CONVERTERS(ELF_TYPE_LIST) +MAKE_VERSION_CONVERTERS(VDEF,Verdef,Verdaux,vd) +MAKE_VERSION_CONVERTERS(VNEED,Verneed,Vernaux,vn) +/*]*/ + +/* + * Sections of type ELF_T_BYTE are never byteswapped, consequently a + * simple memcpy suffices for both directions of conversion. + */ + +static int +_libelf_cvt_BYTE_tox(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + (void) byteswap; + if (dsz < count) + return (0); + if (dst != src) + (void) memcpy(dst, src, count); + return (1); +} + +/* + * Sections of type ELF_T_GNUHASH start with a header containing 4 32-bit + * words. Bloom filter data comes next, followed by hash buckets and the + * hash chain. + * + * Bloom filter words are 64 bit wide on ELFCLASS64 objects and are 32 bit + * wide on ELFCLASS32 objects. The other objects in this section are 32 + * bits wide. + * + * Argument `srcsz' denotes the number of bytes to be converted. In the + * 32-bit case we need to translate `srcsz' to a count of 32-bit words. + */ + +static int +_libelf_cvt_GNUHASH32_tom(unsigned char *dst, size_t dsz, unsigned char *src, + size_t srcsz, int byteswap) +{ + return (_libelf_cvt_WORD_tom(dst, dsz, src, srcsz / sizeof(uint32_t), + byteswap)); +} + +static int +_libelf_cvt_GNUHASH32_tof(unsigned char *dst, size_t dsz, unsigned char *src, + size_t srcsz, int byteswap) +{ + return (_libelf_cvt_WORD_tof(dst, dsz, src, srcsz / sizeof(uint32_t), + byteswap)); +} + +static int +_libelf_cvt_GNUHASH64_tom(unsigned char *dst, size_t dsz, unsigned char *src, + size_t srcsz, int byteswap) +{ + size_t sz; + uint64_t t64, *bloom64; + Elf_GNU_Hash_Header *gh; + uint32_t n, nbuckets, nchains, maskwords, shift2, symndx, t32; + uint32_t *buckets, *chains; + + sz = 4 * sizeof(uint32_t); /* File header is 4 words long. */ + if (dsz < sizeof(Elf_GNU_Hash_Header) || srcsz < sz) + return (0); + + /* Read in the section header and byteswap if needed. */ + READ_WORD(src, nbuckets); + READ_WORD(src, symndx); + READ_WORD(src, maskwords); + READ_WORD(src, shift2); + + srcsz -= sz; + + if (byteswap) { + SWAP_WORD(nbuckets); + SWAP_WORD(symndx); + SWAP_WORD(maskwords); + SWAP_WORD(shift2); + } + + /* Check source buffer and destination buffer sizes. */ + sz = nbuckets * sizeof(uint32_t) + maskwords * sizeof(uint64_t); + if (srcsz < sz || dsz < sz + sizeof(Elf_GNU_Hash_Header)) + return (0); + + gh = (Elf_GNU_Hash_Header *) (uintptr_t) dst; + gh->gh_nbuckets = nbuckets; + gh->gh_symndx = symndx; + gh->gh_maskwords = maskwords; + gh->gh_shift2 = shift2; + + dsz -= sizeof(Elf_GNU_Hash_Header); + dst += sizeof(Elf_GNU_Hash_Header); + + bloom64 = (uint64_t *) (uintptr_t) dst; + + /* Copy bloom filter data. */ + for (n = 0; n < maskwords; n++) { + READ_XWORD(src, t64); + if (byteswap) + SWAP_XWORD(t64); + bloom64[n] = t64; + } + + /* The hash buckets follows the bloom filter. */ + dst += maskwords * sizeof(uint64_t); + buckets = (uint32_t *) (uintptr_t) dst; + + for (n = 0; n < nbuckets; n++) { + READ_WORD(src, t32); + if (byteswap) + SWAP_WORD(t32); + buckets[n] = t32; + } + + dst += nbuckets * sizeof(uint32_t); + + /* The hash chain follows the hash buckets. */ + dsz -= sz; + srcsz -= sz; + + if (dsz < srcsz) /* Destination lacks space. */ + return (0); + + nchains = (uint32_t) (srcsz / sizeof(uint32_t)); + chains = (uint32_t *) (uintptr_t) dst; + + for (n = 0; n < nchains; n++) { + READ_WORD(src, t32); + if (byteswap) + SWAP_WORD(t32); + *chains++ = t32; + } + + return (1); +} + +static int +_libelf_cvt_GNUHASH64_tof(unsigned char *dst, size_t dsz, unsigned char *src, + size_t srcsz, int byteswap) +{ + uint32_t *s32; + size_t sz, hdrsz; + uint64_t *s64, t64; + Elf_GNU_Hash_Header *gh; + uint32_t maskwords, n, nbuckets, nchains, t0, t1, t2, t3, t32; + + hdrsz = 4 * sizeof(uint32_t); /* Header is 4x32 bits. */ + if (dsz < hdrsz || srcsz < sizeof(Elf_GNU_Hash_Header)) + return (0); + + gh = (Elf_GNU_Hash_Header *) (uintptr_t) src; + + t0 = nbuckets = gh->gh_nbuckets; + t1 = gh->gh_symndx; + t2 = maskwords = gh->gh_maskwords; + t3 = gh->gh_shift2; + + src += sizeof(Elf_GNU_Hash_Header); + srcsz -= sizeof(Elf_GNU_Hash_Header); + dsz -= hdrsz; + + sz = gh->gh_nbuckets * sizeof(uint32_t) + gh->gh_maskwords * + sizeof(uint64_t); + + if (srcsz < sz || dsz < sz) + return (0); + + /* Write out the header. */ + if (byteswap) { + SWAP_WORD(t0); + SWAP_WORD(t1); + SWAP_WORD(t2); + SWAP_WORD(t3); + } + + WRITE_WORD(dst, t0); + WRITE_WORD(dst, t1); + WRITE_WORD(dst, t2); + WRITE_WORD(dst, t3); + + /* Copy the bloom filter and the hash table. */ + s64 = (uint64_t *) (uintptr_t) src; + for (n = 0; n < maskwords; n++) { + t64 = *s64++; + if (byteswap) + SWAP_XWORD(t64); + WRITE_WORD64(dst, t64); + } + + s32 = (uint32_t *) s64; + for (n = 0; n < nbuckets; n++) { + t32 = *s32++; + if (byteswap) + SWAP_WORD(t32); + WRITE_WORD(dst, t32); + } + + srcsz -= sz; + dsz -= sz; + + /* Copy out the hash chains. */ + if (dsz < srcsz) + return (0); + + nchains = (uint32_t) (srcsz / sizeof(uint32_t)); + for (n = 0; n < nchains; n++) { + t32 = *s32++; + if (byteswap) + SWAP_WORD(t32); + WRITE_WORD(dst, t32); + } + + return (1); +} + +/* + * Elf_Note structures comprise a fixed size header followed by variable + * length strings. The fixed size header needs to be byte swapped, but + * not the strings. + * + * Argument `count' denotes the total number of bytes to be converted. + * The destination buffer needs to be at least `count' bytes in size. + */ +static int +_libelf_cvt_NOTE_tom(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + uint32_t namesz, descsz, type; + Elf_Note *en; + size_t sz, hdrsz; + + if (dsz < count) /* Destination buffer is too small. */ + return (0); + + hdrsz = 3 * sizeof(uint32_t); + if (count < hdrsz) /* Source too small. */ + return (0); + + if (!byteswap) { + (void) memcpy(dst, src, count); + return (1); + } + + /* Process all notes in the section. */ + while (count > hdrsz) { + /* Read the note header. */ + READ_WORD(src, namesz); + READ_WORD(src, descsz); + READ_WORD(src, type); + + /* Translate. */ + SWAP_WORD(namesz); + SWAP_WORD(descsz); + SWAP_WORD(type); + + /* Copy out the translated note header. */ + en = (Elf_Note *) (uintptr_t) dst; + en->n_namesz = namesz; + en->n_descsz = descsz; + en->n_type = type; + + dsz -= sizeof(Elf_Note); + dst += sizeof(Elf_Note); + count -= hdrsz; + + ROUNDUP2(namesz, 4U); + ROUNDUP2(descsz, 4U); + + sz = namesz + descsz; + + if (count < sz || dsz < sz) /* Buffers are too small. */ + return (0); + + /* Copy the remainder of the note as-is. */ + (void) memcpy(dst, src, sz); + + src += sz; + dst += sz; + + count -= sz; + dsz -= sz; + } + + return (1); +} + +static int +_libelf_cvt_NOTE_tof(unsigned char *dst, size_t dsz, unsigned char *src, + size_t count, int byteswap) +{ + uint32_t namesz, descsz, type; + Elf_Note *en; + size_t sz; + + if (dsz < count) + return (0); + + if (!byteswap) { + (void) memcpy(dst, src, count); + return (1); + } + + while (count > sizeof(Elf_Note)) { + + en = (Elf_Note *) (uintptr_t) src; + namesz = en->n_namesz; + descsz = en->n_descsz; + type = en->n_type; + + sz = namesz; + ROUNDUP2(sz, 4U); + sz += descsz; + ROUNDUP2(sz, 4U); + + SWAP_WORD(namesz); + SWAP_WORD(descsz); + SWAP_WORD(type); + + WRITE_WORD(dst, namesz); + WRITE_WORD(dst, descsz); + WRITE_WORD(dst, type); + + src += sizeof(Elf_Note); + count -= sizeof(Elf_Note); + + if (count < sz) + sz = count; + + /* Copy the remainder of the note as-is. */ + (void) memcpy(dst, src, sz); + + src += sz; + dst += sz; + count -= sz; + } + + return (1); +} + +struct converters { + int (*tof32)(unsigned char *dst, size_t dsz, unsigned char *src, + size_t cnt, int byteswap); + int (*tom32)(unsigned char *dst, size_t dsz, unsigned char *src, + size_t cnt, int byteswap); + int (*tof64)(unsigned char *dst, size_t dsz, unsigned char *src, + size_t cnt, int byteswap); + int (*tom64)(unsigned char *dst, size_t dsz, unsigned char *src, + size_t cnt, int byteswap); +}; + + +static struct converters cvt[ELF_T_NUM] = { + /*[*/ +CONVERTER_NAMES(ELF_TYPE_LIST) + /*]*/ + + /* + * Types that need hand-coded converters follow. + */ + + [ELF_T_BYTE] = { + .tof32 = _libelf_cvt_BYTE_tox, + .tom32 = _libelf_cvt_BYTE_tox, + .tof64 = _libelf_cvt_BYTE_tox, + .tom64 = _libelf_cvt_BYTE_tox + }, + + [ELF_T_NOTE] = { + .tof32 = _libelf_cvt_NOTE_tof, + .tom32 = _libelf_cvt_NOTE_tom, + .tof64 = _libelf_cvt_NOTE_tof, + .tom64 = _libelf_cvt_NOTE_tom + } +}; + +/* + * Return a translator function for the specified ELF section type, conversion + * direction, ELF class and ELF machine. + */ +_libelf_translator_function * +_libelf_get_translator(Elf_Type t, int direction, int elfclass, int elfmachine) +{ + assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); + assert(direction == ELF_TOFILE || direction == ELF_TOMEMORY); + assert(t >= ELF_T_FIRST && t <= ELF_T_LAST); + + /* TODO: Handle MIPS64 REL{,A} sections (ticket #559). */ + (void) elfmachine; + + return ((elfclass == ELFCLASS32) ? + (direction == ELF_TOFILE ? cvt[t].tof32 : cvt[t].tom32) : + (direction == ELF_TOFILE ? cvt[t].tof64 : cvt[t].tom64)); +} diff --git a/contrib/elftoolchain/libelf/libelf_data.c b/contrib/elftoolchain/libelf/libelf_data.c new file mode 100644 index 00000000..3f921a00 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_data.c @@ -0,0 +1,111 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +int +_libelf_xlate_shtype(uint32_t sht) +{ + /* + * Look for known section types. + */ + switch (sht) { + case SHT_DYNAMIC: + return (ELF_T_DYN); + case SHT_DYNSYM: + return (ELF_T_SYM); + case SHT_FINI_ARRAY: + return (ELF_T_ADDR); + case SHT_GNU_HASH: + return (ELF_T_GNUHASH); + case SHT_GNU_LIBLIST: + return (ELF_T_WORD); + case SHT_GROUP: + return (ELF_T_WORD); + case SHT_HASH: + return (ELF_T_WORD); + case SHT_INIT_ARRAY: + return (ELF_T_ADDR); + case SHT_NOBITS: + return (ELF_T_BYTE); + case SHT_NOTE: + return (ELF_T_NOTE); + case SHT_PREINIT_ARRAY: + return (ELF_T_ADDR); + case SHT_PROGBITS: + return (ELF_T_BYTE); + case SHT_REL: + return (ELF_T_REL); + case SHT_RELA: + return (ELF_T_RELA); + case SHT_STRTAB: + return (ELF_T_BYTE); + case SHT_SYMTAB: + return (ELF_T_SYM); + case SHT_SYMTAB_SHNDX: + return (ELF_T_WORD); + case SHT_SUNW_dof: + return (ELF_T_BYTE); + case SHT_SUNW_move: + return (ELF_T_MOVE); + case SHT_SUNW_syminfo: + return (ELF_T_SYMINFO); + case SHT_SUNW_verdef: /* == SHT_GNU_verdef */ + return (ELF_T_VDEF); + case SHT_SUNW_verneed: /* == SHT_GNU_verneed */ + return (ELF_T_VNEED); + case SHT_SUNW_versym: /* == SHT_GNU_versym */ + return (ELF_T_HALF); + default: + /* + * Values in the range [SHT_LOOS..SHT_HIUSER] (i.e., + * OS, processor and user-defined section types) are + * legal, but since we do not know anything more about + * their semantics, we return a type of ELF_T_BYTE. + * + * The ELF specification uses 32 bit unsigned values for + * denoting section types, and defines SHT_HIUSER to be + * 0xFFFFFFFFUL (i.e., UINT32_MAX). Consequently, we only + * need to check that 'sht' is greater than or equal to + * SHT_LOOS. + */ + if (sht >= SHT_LOOS) + return (ELF_T_BYTE); + + /* + * Other values are unsupported. + */ + return (-1); + } +} diff --git a/contrib/elftoolchain/libelf/libelf_ehdr.c b/contrib/elftoolchain/libelf/libelf_ehdr.c new file mode 100644 index 00000000..75b3dd00 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_ehdr.c @@ -0,0 +1,216 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Retrieve counts for sections, phdrs and the section string table index + * from section header #0 of the ELF object. + */ +static int +_libelf_load_extended(Elf *e, int ec, uint64_t shoff, uint16_t phnum, + uint16_t strndx) +{ + size_t fsz; + Elf_Scn *scn; + uint32_t shtype; + _libelf_translator_function *xlator; + + assert(STAILQ_EMPTY(&e->e_u.e_elf.e_scn)); + + fsz = _libelf_fsize(ELF_T_SHDR, ec, e->e_version, 1); + assert(fsz > 0); + + if (shoff + fsz < shoff) { /* Numeric overflow. */ + LIBELF_SET_ERROR(HEADER, 0); + return (0); + } + + if ((uint64_t) e->e_rawsize < shoff + fsz) { + LIBELF_SET_ERROR(HEADER, 0); + return (0); + } + + if ((scn = _libelf_allocate_scn(e, (size_t) 0)) == NULL) + return (0); + + xlator = _libelf_get_translator(ELF_T_SHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); + (*xlator)((unsigned char *) &scn->s_shdr, sizeof(scn->s_shdr), + (unsigned char *) e->e_rawfile + shoff, (size_t) 1, + e->e_byteorder != LIBELF_PRIVATE(byteorder)); + +#define GET_SHDR_MEMBER(M) ((ec == ELFCLASS32) ? scn->s_shdr.s_shdr32.M : \ + scn->s_shdr.s_shdr64.M) + + if ((shtype = GET_SHDR_MEMBER(sh_type)) != SHT_NULL) { + LIBELF_SET_ERROR(SECTION, 0); + return (0); + } + + e->e_u.e_elf.e_nscn = (size_t) GET_SHDR_MEMBER(sh_size); + e->e_u.e_elf.e_nphdr = (phnum != PN_XNUM) ? phnum : + GET_SHDR_MEMBER(sh_info); + e->e_u.e_elf.e_strndx = (strndx != SHN_XINDEX) ? strndx : + GET_SHDR_MEMBER(sh_link); +#undef GET_SHDR_MEMBER + + return (1); +} + +#define EHDR_INIT(E,SZ) do { \ + Elf##SZ##_Ehdr *eh = (E); \ + eh->e_ident[EI_MAG0] = ELFMAG0; \ + eh->e_ident[EI_MAG1] = ELFMAG1; \ + eh->e_ident[EI_MAG2] = ELFMAG2; \ + eh->e_ident[EI_MAG3] = ELFMAG3; \ + eh->e_ident[EI_CLASS] = ELFCLASS##SZ; \ + eh->e_ident[EI_DATA] = ELFDATANONE; \ + eh->e_ident[EI_VERSION] = LIBELF_PRIVATE(version) & 0xFFU; \ + eh->e_machine = EM_NONE; \ + eh->e_type = ELF_K_NONE; \ + eh->e_version = LIBELF_PRIVATE(version); \ + } while (/* CONSTCOND */ 0) + +void * +_libelf_ehdr(Elf *e, int ec, int allocate) +{ + void *ehdr; + size_t fsz, msz; + uint16_t phnum, shnum, strndx; + uint64_t shoff; + int (*xlator)(unsigned char *_d, size_t _dsz, unsigned char *_s, + size_t _c, int _swap); + + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (e == NULL || e->e_kind != ELF_K_ELF) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (e->e_class != ELFCLASSNONE && e->e_class != ec) { + LIBELF_SET_ERROR(CLASS, 0); + return (NULL); + } + + if (e->e_version != EV_CURRENT) { + LIBELF_SET_ERROR(VERSION, 0); + return (NULL); + } + + if (e->e_class == ELFCLASSNONE) + e->e_class = ec; + + if (ec == ELFCLASS32) + ehdr = (void *) e->e_u.e_elf.e_ehdr.e_ehdr32; + else + ehdr = (void *) e->e_u.e_elf.e_ehdr.e_ehdr64; + + if (ehdr != NULL) /* already have a translated ehdr */ + return (ehdr); + + fsz = _libelf_fsize(ELF_T_EHDR, ec, e->e_version, (size_t) 1); + assert(fsz > 0); + + if (e->e_cmd != ELF_C_WRITE && e->e_rawsize < (off_t) fsz) { + LIBELF_SET_ERROR(HEADER, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_EHDR, ec, EV_CURRENT)) == 0) + return (NULL); + + if ((ehdr = calloc((size_t) 1, msz)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + e->e_u.e_elf.e_ehdr.e_ehdr32 = ehdr; + EHDR_INIT(ehdr,32); + } else { + e->e_u.e_elf.e_ehdr.e_ehdr64 = ehdr; + EHDR_INIT(ehdr,64); + } + + if (allocate) + e->e_flags |= ELF_F_DIRTY; + + if (e->e_cmd == ELF_C_WRITE) + return (ehdr); + + xlator = _libelf_get_translator(ELF_T_EHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); + (*xlator)((unsigned char*) ehdr, msz, e->e_rawfile, (size_t) 1, + e->e_byteorder != LIBELF_PRIVATE(byteorder)); + + if (ec == ELFCLASS32) { + phnum = ((Elf32_Ehdr *) ehdr)->e_phnum; + shnum = ((Elf32_Ehdr *) ehdr)->e_shnum; + shoff = ((Elf32_Ehdr *) ehdr)->e_shoff; + strndx = ((Elf32_Ehdr *) ehdr)->e_shstrndx; + } else { + phnum = ((Elf64_Ehdr *) ehdr)->e_phnum; + shnum = ((Elf64_Ehdr *) ehdr)->e_shnum; + shoff = ((Elf64_Ehdr *) ehdr)->e_shoff; + strndx = ((Elf64_Ehdr *) ehdr)->e_shstrndx; + } + + if (shnum >= SHN_LORESERVE || + (shoff == 0LL && (shnum != 0 || phnum == PN_XNUM || + strndx == SHN_XINDEX))) { + LIBELF_SET_ERROR(HEADER, 0); + return (NULL); + } + + /* + * If extended numbering is being used, read the correct + * number of sections and program header entries. + */ + if ((shnum == 0 && shoff != 0) || phnum == PN_XNUM || strndx == SHN_XINDEX) { + if (_libelf_load_extended(e, ec, shoff, phnum, strndx) == 0) + return (NULL); + } else { + /* not using extended numbering */ + e->e_u.e_elf.e_nphdr = phnum; + e->e_u.e_elf.e_nscn = shnum; + e->e_u.e_elf.e_strndx = strndx; + } + + return (ehdr); +} diff --git a/contrib/elftoolchain/libelf/libelf_elfmachine.c b/contrib/elftoolchain/libelf/libelf_elfmachine.c new file mode 100644 index 00000000..5b8244f4 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_elfmachine.c @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2018 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * A convenience helper that returns the ELF machine architecture for + * a ELF descriptor. + */ +int +_libelf_elfmachine(Elf *e) +{ + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + + if (!e) + return EM_NONE; + + assert(e->e_kind == ELF_K_ELF); + assert(e->e_class != ELFCLASSNONE); + + eh32 = NULL; + eh64 = NULL; + + switch (e->e_class) { + case ELFCLASS32: + eh32 = e->e_u.e_elf.e_ehdr.e_ehdr32; + return eh32 ? eh32->e_machine : EM_NONE; + case ELFCLASS64: + eh64 = e->e_u.e_elf.e_ehdr.e_ehdr64; + return eh64 ? eh64->e_machine : EM_NONE; + } + + return (EM_NONE); +} diff --git a/contrib/elftoolchain/libelf/libelf_extended.c b/contrib/elftoolchain/libelf/libelf_extended.c new file mode 100644 index 00000000..2ddac923 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_extended.c @@ -0,0 +1,138 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Retrieve section #0, allocating a new section if needed. + */ +static Elf_Scn * +_libelf_getscn0(Elf *e) +{ + Elf_Scn *s; + + if ((s = STAILQ_FIRST(&e->e_u.e_elf.e_scn)) != NULL) + return (s); + + return (_libelf_allocate_scn(e, (size_t) SHN_UNDEF)); +} + +int +_libelf_setshnum(Elf *e, void *eh, int ec, size_t shnum) +{ + Elf_Scn *scn; + + if (shnum >= SHN_LORESERVE) { + if ((scn = _libelf_getscn0(e)) == NULL) + return (0); + + assert(scn->s_ndx == SHN_UNDEF); + + if (ec == ELFCLASS32) + scn->s_shdr.s_shdr32.sh_size = (Elf32_Word) shnum; + else + scn->s_shdr.s_shdr64.sh_size = shnum; + + (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); + + shnum = 0; + } + + if (ec == ELFCLASS32) + ((Elf32_Ehdr *) eh)->e_shnum = shnum & 0xFFFFU; + else + ((Elf64_Ehdr *) eh)->e_shnum = shnum & 0xFFFFU; + + + return (1); +} + +int +_libelf_setshstrndx(Elf *e, void *eh, int ec, size_t shstrndx) +{ + Elf_Scn *scn; + + if (shstrndx >= SHN_LORESERVE) { + if ((scn = _libelf_getscn0(e)) == NULL) + return (0); + + assert(scn->s_ndx == SHN_UNDEF); + + if (ec == ELFCLASS32) + scn->s_shdr.s_shdr32.sh_link = (Elf32_Word) shstrndx; + else + scn->s_shdr.s_shdr64.sh_link = (Elf64_Word) shstrndx; + + (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); + + shstrndx = SHN_XINDEX; + } + + if (ec == ELFCLASS32) + ((Elf32_Ehdr *) eh)->e_shstrndx = shstrndx & 0xFFFFU; + else + ((Elf64_Ehdr *) eh)->e_shstrndx = shstrndx & 0xFFFFU; + + return (1); +} + +int +_libelf_setphnum(Elf *e, void *eh, int ec, size_t phnum) +{ + Elf_Scn *scn; + + if (phnum >= PN_XNUM) { + if ((scn = _libelf_getscn0(e)) == NULL) + return (0); + + assert(scn->s_ndx == SHN_UNDEF); + + if (ec == ELFCLASS32) + scn->s_shdr.s_shdr32.sh_info = (Elf32_Word) phnum; + else + scn->s_shdr.s_shdr64.sh_info = (Elf64_Word) phnum; + + (void) elf_flagshdr(scn, ELF_C_SET, ELF_F_DIRTY); + + phnum = PN_XNUM; + } + + if (ec == ELFCLASS32) + ((Elf32_Ehdr *) eh)->e_phnum = phnum & 0xFFFFU; + else + ((Elf64_Ehdr *) eh)->e_phnum = phnum & 0xFFFFU; + + return (1); +} diff --git a/contrib/elftoolchain/libelf/libelf_fsize.m4 b/contrib/elftoolchain/libelf/libelf_fsize.m4 new file mode 100644 index 00000000..256a856a --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_fsize.m4 @@ -0,0 +1,163 @@ +/*- + * Copyright (c) 2006,2008-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* WARNING: GENERATED FROM __file__. */ + +/* + * Create an array of file sizes from the elf_type definitions + */ + +divert(-1) +include(SRCDIR`/elf_types.m4') + +/* + * Translations from structure definitions to the size of their file + * representations. + */ + +/* `Basic' types. */ +define(`BYTE_SIZE', 1) +define(`IDENT_SIZE', `EI_NIDENT') + +/* Types that have variable length. */ +define(`GNUHASH_SIZE', 1) +define(`NOTE_SIZE', 1) +define(`VDEF_SIZE', 1) +define(`VNEED_SIZE', 1) + +/* Currently unimplemented types. */ +define(`MOVEP_SIZE', 0) + +/* Overrides for 32 bit types that do not exist. */ +define(`XWORD_SIZE32', 0) +define(`SXWORD_SIZE32', 0) + +/* + * FSZ{32,64} define the sizes of 32 and 64 bit file structures respectively. + */ + +define(`FSZ32',`_FSZ32($1_DEF)') +define(`_FSZ32', + `ifelse($#,1,0, + `_BSZ32($1)+_FSZ32(shift($@))')') +define(`_BSZ32',`$2_SIZE32') + +define(`FSZ64',`_FSZ64($1_DEF)') +define(`_FSZ64', + `ifelse($#,1,0, + `_BSZ64($1)+_FSZ64(shift($@))')') +define(`_BSZ64',`$2_SIZE64') + +/* + * DEFINE_ELF_FSIZES(TYPE,NAME) + * + * Shorthand for defining for 32 and 64 versions + * of elf type TYPE. + * + * If TYPE`'_SIZE is defined, use its value for both 32 bit and 64 bit + * sizes. + * + * Otherwise, look for a explicit 32/64 bit size definition for TYPE, + * TYPE`'_SIZE32 or TYPE`'_SIZE64. If this definition is present, there + * is nothing further to do. + * + * Otherwise, if an Elf{32,64}_`'NAME structure definition is known, + * compute an expression that adds up the sizes of the structure's + * constituents. + * + * If such a structure definition is not known, treat TYPE as a primitive + * (i.e., integral) type and use sizeof(Elf{32,64}_`'NAME) to get its + * file representation size. + */ + +define(`DEFINE_ELF_FSIZE', + `ifdef($1`_SIZE', + `define($1_SIZE32,$1_SIZE) + define($1_SIZE64,$1_SIZE)', + `ifdef($1`_SIZE32',`', + `ifdef(`Elf32_'$2`_DEF', + `define($1_SIZE32,FSZ32(Elf32_$2))', + `define($1_SIZE32,`sizeof(Elf32_'$2`)')')') + ifdef($1`_SIZE64',`', + `ifdef(`Elf64_'$2`_DEF', + `define($1_SIZE64,FSZ64(Elf64_$2))', + `define($1_SIZE64,`sizeof(Elf64_'$2`)')')')')') + +define(`DEFINE_ELF_FSIZES', + `ifelse($#,1,`', + `DEFINE_ELF_FSIZE($1) + DEFINE_ELF_FSIZES(shift($@))')') + +DEFINE_ELF_FSIZES(ELF_TYPE_LIST) +DEFINE_ELF_FSIZE(`IDENT',`') # `IDENT' is a pseudo type + +define(`FSIZE', + `[ELF_T_$1] = { .fsz32 = $1_SIZE32, .fsz64 = $1_SIZE64 }, +') +define(`FSIZES', + `ifelse($#,1,`', + `FSIZE($1) +FSIZES(shift($@))')') + +divert(0) + +struct fsize { + size_t fsz32; + size_t fsz64; +}; + +static struct fsize fsize[ELF_T_NUM] = { +FSIZES(ELF_TYPE_LIST) +}; + +size_t +_libelf_fsize(Elf_Type t, int ec, unsigned int v, size_t c) +{ + size_t sz; + + sz = 0; + if (v != EV_CURRENT) + LIBELF_SET_ERROR(VERSION, 0); + else if ((int) t < ELF_T_FIRST || t > ELF_T_LAST) + LIBELF_SET_ERROR(ARGUMENT, 0); + else { + sz = ec == ELFCLASS64 ? fsize[t].fsz64 : fsize[t].fsz32; + if (sz == 0) + LIBELF_SET_ERROR(UNIMPL, 0); + } + + return (sz*c); +} diff --git a/contrib/elftoolchain/libelf/libelf_memory.c b/contrib/elftoolchain/libelf/libelf_memory.c new file mode 100644 index 00000000..9aad49b8 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_memory.c @@ -0,0 +1,100 @@ +/*- + * Copyright (c) 2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Create an ELF descriptor for a memory image, optionally reporting + * parse errors. + */ + +Elf * +_libelf_memory(unsigned char *image, size_t sz, int reporterror) +{ + Elf *e; + int e_class; + enum Elf_Error error; + unsigned int e_byteorder, e_version; + + assert(image != NULL); + assert(sz > 0); + + if ((e = _libelf_allocate_elf()) == NULL) + return (NULL); + + e->e_cmd = ELF_C_READ; + e->e_rawfile = image; + e->e_rawsize = (off_t) sz; + +#undef LIBELF_IS_ELF +#define LIBELF_IS_ELF(P) ((P)[EI_MAG0] == ELFMAG0 && \ + (P)[EI_MAG1] == ELFMAG1 && (P)[EI_MAG2] == ELFMAG2 && \ + (P)[EI_MAG3] == ELFMAG3) + + if (sz > EI_NIDENT && LIBELF_IS_ELF(image)) { + e_byteorder = image[EI_DATA]; + e_class = image[EI_CLASS]; + e_version = image[EI_VERSION]; + + error = ELF_E_NONE; + + if (e_version > EV_CURRENT) + error = ELF_E_VERSION; + else if ((e_byteorder != ELFDATA2LSB && e_byteorder != + ELFDATA2MSB) || (e_class != ELFCLASS32 && e_class != + ELFCLASS64)) + error = ELF_E_HEADER; + + if (error != ELF_E_NONE) { + if (reporterror) { + LIBELF_PRIVATE(error) = LIBELF_ERROR(error, 0); + _libelf_release_elf(e); + return (NULL); + } + } else { + _libelf_init_elf(e, ELF_K_ELF); + + e->e_byteorder = e_byteorder; + e->e_class = e_class; + e->e_version = e_version; + } + } else if (sz >= SARMAG && + strncmp((const char *) image, ARMAG, (size_t) SARMAG) == 0) + return (_libelf_ar_open(e, reporterror)); + + return (e); +} diff --git a/contrib/elftoolchain/libelf/libelf_msize.m4 b/contrib/elftoolchain/libelf/libelf_msize.m4 new file mode 100644 index 00000000..b4cc8634 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_msize.m4 @@ -0,0 +1,123 @@ +/*- + * Copyright (c) 2006,2008-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* WARNING: GENERATED FROM __file__. */ + +struct msize { + size_t msz32; + size_t msz64; +}; + +divert(-1) +include(SRCDIR`/elf_types.m4') + +/* + * ELF types whose memory representations have a variable size. + */ +define(BYTE_SIZE, 1) +define(GNUHASH_SIZE, 1) +define(NOTE_SIZE, 1) +define(VDEF_SIZE, 1) +define(VNEED_SIZE, 1) + +/* + * Unimplemented types. + */ +define(MOVEP_SIZE, 0) +define(SXWORD_SIZE32, 0) +define(XWORD_SIZE32, 0) + +define(`DEFINE_ELF_MSIZE', + `ifdef($1`_SIZE', + `define($1_SIZE32,$1_SIZE) + define($1_SIZE64,$1_SIZE)', + `ifdef($1`_SIZE32',`', + `define($1_SIZE32,sizeof(Elf32_$2))') + ifdef($1`_SIZE64',`', + `define($1_SIZE64,sizeof(Elf64_$2))')')') +define(`DEFINE_ELF_MSIZES', + `ifelse($#,1,`', + `DEFINE_ELF_MSIZE($1) + DEFINE_ELF_MSIZES(shift($@))')') + +DEFINE_ELF_MSIZES(ELF_TYPE_LIST) + +define(`MSIZE', + `[ELF_T_$1] = { .msz32 = $1_SIZE32, .msz64 = $1_SIZE64 }, +') +define(`MSIZES', + `ifelse($#,1,`', + `MSIZE($1) +MSIZES(shift($@))')') + +divert(0) + +static struct msize msize[ELF_T_NUM] = { +MSIZES(ELF_TYPE_LIST) +}; + +/* + * Returns the memory size of the specified ELF type 't' of ELF + * class 'ec' and ELF version 'version'. + * + * If the specified combination of ELF type, class, and version is + * unsupported then a value of 0 will be returned and the appropriate + * library error code set. + */ +size_t +_libelf_msize(Elf_Type t, int elfclass, unsigned int version) +{ + size_t sz; + + assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); + assert((signed) t >= ELF_T_FIRST && t <= ELF_T_LAST); + + if (version != EV_CURRENT) { + LIBELF_SET_ERROR(VERSION, 0); + return (0); + } + + sz = (elfclass == ELFCLASS32) ? msize[t].msz32 : msize[t].msz64; + + if (sz == 0) { + LIBELF_SET_ERROR(UNIMPL, 0); + return (0); + } + + return (sz); +} diff --git a/contrib/elftoolchain/libelf/libelf_open.c b/contrib/elftoolchain/libelf/libelf_open.c new file mode 100644 index 00000000..7216df14 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_open.c @@ -0,0 +1,252 @@ +/*- + * Copyright (c) 2006,2008-2011 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "_libelf.h" + +#if ELFTC_HAVE_MMAP +#include +#endif + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +#define _LIBELF_INITSIZE (64*1024) + +/* + * Read from a device file, pipe or socket. + */ +static void * +_libelf_read_special_file(int fd, size_t *fsz) +{ + ssize_t readsz; + size_t bufsz, datasz; + unsigned char *buf, *t; + + datasz = 0; + readsz = 0; + bufsz = _LIBELF_INITSIZE; + if ((buf = malloc(bufsz)) == NULL) + goto resourceerror; + + /* + * Read data from the file descriptor till we reach EOF, or + * till an error is encountered. + */ + do { + /* Check if we need to expand the data buffer. */ + if (datasz == bufsz) { + bufsz *= 2; + if ((t = realloc(buf, bufsz)) == NULL) + goto resourceerror; + buf = t; + } + + do { + assert(bufsz - datasz > 0); + t = buf + datasz; + if ((readsz = read(fd, t, bufsz - datasz)) <= 0) + break; + datasz += (size_t) readsz; + } while (datasz < bufsz); + + } while (readsz > 0); + + if (readsz < 0) { + LIBELF_SET_ERROR(IO, errno); + goto error; + } + + assert(readsz == 0); + + /* + * Free up extra buffer space. + */ + if (bufsz > datasz) { + if (datasz > 0) { + if ((t = realloc(buf, datasz)) == NULL) + goto resourceerror; + buf = t; + } else { /* Zero bytes read. */ + LIBELF_SET_ERROR(ARGUMENT, 0); + free(buf); + buf = NULL; + } + } + + *fsz = datasz; + return (buf); + +resourceerror: + LIBELF_SET_ERROR(RESOURCE, 0); +error: + if (buf != NULL) + free(buf); + return (NULL); +} + +/* + * Read the contents of the file referenced by the file descriptor + * 'fd'. + */ + +Elf * +_libelf_open_object(int fd, Elf_Cmd c, int reporterror) +{ + Elf *e; + void *m; + mode_t mode; + size_t fsize; + struct stat sb; + unsigned int flags; + + assert(c == ELF_C_READ || c == ELF_C_RDWR || c == ELF_C_WRITE); + + if (fstat(fd, &sb) < 0) { + LIBELF_SET_ERROR(IO, errno); + return (NULL); + } + + mode = sb.st_mode; + fsize = (size_t) sb.st_size; + + /* + * Reject unsupported file types. + */ + if (!S_ISREG(mode) && !S_ISCHR(mode) && !S_ISFIFO(mode) && + !S_ISSOCK(mode)) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + /* + * For ELF_C_WRITE mode, allocate and return a descriptor. + */ + if (c == ELF_C_WRITE) { + if ((e = _libelf_allocate_elf()) != NULL) { + _libelf_init_elf(e, ELF_K_ELF); + e->e_byteorder = LIBELF_PRIVATE(byteorder); + e->e_fd = fd; + e->e_cmd = c; + if (!S_ISREG(mode)) + e->e_flags |= LIBELF_F_SPECIAL_FILE; + } + + return (e); + } + + + /* + * ELF_C_READ and ELF_C_RDWR mode. + */ + m = NULL; + flags = 0; + if (S_ISREG(mode)) { + + /* + * Reject zero length files. + */ + if (fsize == 0) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + +#if ELFTC_HAVE_MMAP + /* + * Always map regular files in with 'PROT_READ' + * permissions. + * + * For objects opened in ELF_C_RDWR mode, when + * elf_update(3) is called, we remove this mapping, + * write file data out using write(2), and map the new + * contents back. + */ + m = mmap(NULL, fsize, PROT_READ, MAP_PRIVATE, fd, (off_t) 0); + + if (m == MAP_FAILED) + m = NULL; + else + flags = LIBELF_F_RAWFILE_MMAP; +#endif + + /* + * Fallback to a read() if the call to mmap() failed, + * or if mmap() is not available. + */ + if (m == NULL) { + if ((m = malloc(fsize)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + if (read(fd, m, fsize) != (ssize_t) fsize) { + LIBELF_SET_ERROR(IO, errno); + free(m); + return (NULL); + } + + flags = LIBELF_F_RAWFILE_MALLOC; + } + } else if ((m = _libelf_read_special_file(fd, &fsize)) != NULL) + flags = LIBELF_F_RAWFILE_MALLOC | LIBELF_F_SPECIAL_FILE; + else + return (NULL); + + if ((e = _libelf_memory(m, fsize, reporterror)) == NULL) { + assert((flags & LIBELF_F_RAWFILE_MALLOC) || + (flags & LIBELF_F_RAWFILE_MMAP)); + if (flags & LIBELF_F_RAWFILE_MALLOC) + free(m); +#if ELFTC_HAVE_MMAP + else + (void) munmap(m, fsize); +#endif + return (NULL); + } + + /* ar(1) archives aren't supported in RDWR mode. */ + if (c == ELF_C_RDWR && e->e_kind == ELF_K_AR) { + (void) elf_end(e); + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + e->e_flags |= flags; + e->e_fd = fd; + e->e_cmd = c; + + return (e); +} diff --git a/contrib/elftoolchain/libelf/libelf_phdr.c b/contrib/elftoolchain/libelf/libelf_phdr.c new file mode 100644 index 00000000..ac92679f --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_phdr.c @@ -0,0 +1,160 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +void * +_libelf_getphdr(Elf *e, int ec) +{ + size_t phnum; + size_t fsz, msz; + uint64_t phoff; + Elf32_Ehdr *eh32; + Elf64_Ehdr *eh64; + void *ehdr, *phdr; + _libelf_translator_function *xlator; + + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((phdr = (ec == ELFCLASS32 ? + (void *) e->e_u.e_elf.e_phdr.e_phdr32 : + (void *) e->e_u.e_elf.e_phdr.e_phdr64)) != NULL) + return (phdr); + + /* + * Check the PHDR related fields in the EHDR for sanity. + */ + + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) + return (NULL); + + phnum = e->e_u.e_elf.e_nphdr; + + if (ec == ELFCLASS32) { + eh32 = (Elf32_Ehdr *) ehdr; + phoff = (uint64_t) eh32->e_phoff; + } else { + eh64 = (Elf64_Ehdr *) ehdr; + phoff = (uint64_t) eh64->e_phoff; + } + + fsz = gelf_fsize(e, ELF_T_PHDR, phnum, e->e_version); + + assert(fsz > 0); + + if (phoff + fsz < phoff) { /* Numeric overflow. */ + LIBELF_SET_ERROR(HEADER, 0); + return (NULL); + } + + if ((uint64_t) e->e_rawsize < (phoff + fsz)) { + LIBELF_SET_ERROR(HEADER, 0); + return (NULL); + } + + if ((msz = _libelf_msize(ELF_T_PHDR, ec, EV_CURRENT)) == 0) + return (NULL); + + if ((phdr = calloc(phnum, msz)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + if (ec == ELFCLASS32) + e->e_u.e_elf.e_phdr.e_phdr32 = phdr; + else + e->e_u.e_elf.e_phdr.e_phdr64 = phdr; + + + xlator = _libelf_get_translator(ELF_T_PHDR, ELF_TOMEMORY, ec, + _libelf_elfmachine(e)); + (*xlator)(phdr, phnum * msz, e->e_rawfile + phoff, phnum, + e->e_byteorder != LIBELF_PRIVATE(byteorder)); + + return (phdr); +} + +void * +_libelf_newphdr(Elf *e, int ec, size_t count) +{ + void *ehdr, *newphdr, *oldphdr; + size_t msz; + + if (e == NULL) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if ((ehdr = _libelf_ehdr(e, ec, 0)) == NULL) { + LIBELF_SET_ERROR(SEQUENCE, 0); + return (NULL); + } + + assert(e->e_class == ec); + assert(ec == ELFCLASS32 || ec == ELFCLASS64); + assert(e->e_version == EV_CURRENT); + + if ((msz = _libelf_msize(ELF_T_PHDR, ec, e->e_version)) == 0) + return (NULL); + + newphdr = NULL; + if (count > 0 && (newphdr = calloc(count, msz)) == NULL) { + LIBELF_SET_ERROR(RESOURCE, 0); + return (NULL); + } + + if (ec == ELFCLASS32) { + if ((oldphdr = (void *) e->e_u.e_elf.e_phdr.e_phdr32) != NULL) + free(oldphdr); + e->e_u.e_elf.e_phdr.e_phdr32 = (Elf32_Phdr *) newphdr; + } else { + if ((oldphdr = (void *) e->e_u.e_elf.e_phdr.e_phdr64) != NULL) + free(oldphdr); + e->e_u.e_elf.e_phdr.e_phdr64 = (Elf64_Phdr *) newphdr; + } + + e->e_u.e_elf.e_nphdr = count; + + elf_flagphdr(e, ELF_C_SET, ELF_F_DIRTY); + + return (newphdr); +} diff --git a/contrib/elftoolchain/libelf/libelf_shdr.c b/contrib/elftoolchain/libelf/libelf_shdr.c new file mode 100644 index 00000000..463a0ed0 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_shdr.c @@ -0,0 +1,58 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +void * +_libelf_getshdr(Elf_Scn *s, int ec) +{ + Elf *e; + + if (s == NULL || (e = s->s_elf) == NULL || + e->e_kind != ELF_K_ELF) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + if (ec == ELFCLASSNONE) + ec = e->e_class; + + if (ec != e->e_class) { + LIBELF_SET_ERROR(CLASS, 0); + return (NULL); + } + + return ((void *) &s->s_shdr); +} diff --git a/contrib/elftoolchain/libelf/libelf_xlate.c b/contrib/elftoolchain/libelf/libelf_xlate.c new file mode 100644 index 00000000..003f9532 --- /dev/null +++ b/contrib/elftoolchain/libelf/libelf_xlate.c @@ -0,0 +1,153 @@ +/*- + * Copyright (c) 2006,2008 Joseph Koshy + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include + +#include "_libelf.h" + +ELFTC_VCSID("$Id$"); + +/*@ELFTC-DOWNSTREAM-VCSID@*/ + +/* + * Translate to/from the file representation of ELF objects. + * + * Translation could potentially involve the following + * transformations: + * + * - an endianness conversion, + * - a change of layout, as the file representation of ELF objects + * can differ from their in-memory representation. + * - a change in representation due to a layout version change. + */ + +Elf_Data * +_libelf_xlate(Elf_Data *dst, const Elf_Data *src, unsigned int encoding, + int elfclass, int elfmachine, int direction) +{ + int byteswap; + size_t cnt, dsz, fsz, msz; + uintptr_t sb, se, db, de; + _libelf_translator_function *xlator; + + if (encoding == ELFDATANONE) + encoding = LIBELF_PRIVATE(byteorder); + + if ((encoding != ELFDATA2LSB && encoding != ELFDATA2MSB) || + dst == NULL || src == NULL || dst == src) { + LIBELF_SET_ERROR(ARGUMENT, 0); + return (NULL); + } + + assert(elfclass == ELFCLASS32 || elfclass == ELFCLASS64); + assert(direction == ELF_TOFILE || direction == ELF_TOMEMORY); + + if (dst->d_version != src->d_version) { + LIBELF_SET_ERROR(UNIMPL, 0); + return (NULL); + } + + if (src->d_buf == NULL || dst->d_buf == NULL) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + if ((int) src->d_type < 0 || src->d_type >= ELF_T_NUM) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + if ((fsz = (elfclass == ELFCLASS32 ? elf32_fsize : elf64_fsize) + (src->d_type, (size_t) 1, src->d_version)) == 0) + return (NULL); + + if ((msz = _libelf_msize(src->d_type, elfclass, src->d_version)) == 0) + return (NULL); + + if (src->d_size % (direction == ELF_TOMEMORY ? fsz : msz)) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + /* + * Determine the number of objects that need to be converted, and + * the space required for the converted objects in the destination + * buffer. + */ + if (direction == ELF_TOMEMORY) { + cnt = (size_t) src->d_size / fsz; + dsz = cnt * msz; + } else { + cnt = (size_t) src->d_size / msz; + dsz = cnt * fsz; + } + + if (dst->d_size < dsz) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + sb = (uintptr_t) src->d_buf; + se = sb + (size_t) src->d_size; + db = (uintptr_t) dst->d_buf; + de = db + (size_t) dst->d_size; + + /* + * Check for overlapping buffers. Note that db == sb is + * allowed. + */ + if (db != sb && de > sb && se > db) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + if ((direction == ELF_TOMEMORY ? db : sb) % + _libelf_malign(src->d_type, elfclass)) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + dst->d_type = src->d_type; + dst->d_size = dsz; + + byteswap = encoding != LIBELF_PRIVATE(byteorder); + + if (src->d_size == 0 || + (db == sb && !byteswap && fsz == msz)) + return (dst); /* nothing more to do */ + + xlator = _libelf_get_translator(src->d_type, direction, elfclass, + elfmachine); + if (!xlator(dst->d_buf, dsz, src->d_buf, cnt, byteswap)) { + LIBELF_SET_ERROR(DATA, 0); + return (NULL); + } + + return (dst); +} From 4126cfb3175f4947658838631edb7a765922e5ba Mon Sep 17 00:00:00 2001 From: Christiano Haesbaert Date: Tue, 4 Jun 2024 10:37:31 +0200 Subject: [PATCH 3/4] Import stage 2 from quark verbatim Separated in its own commit so we can actually read the diff. --- contrib/elftoolchain/README.quark | 28 +++++ contrib/elftoolchain/libelf/GNUmakefile | 139 ++++++++++++++++++++++++ contrib/elftoolchain/libelf/elf.h | 36 ++++++ contrib/elftoolchain/libelf/elf_open.c | 7 +- contrib/elftoolchain/libelf/gelf.h | 16 +++ contrib/elftoolchain/libelf/gelf_shdr.c | 31 ++++++ contrib/elftoolchain/libelf/libelf.h | 6 +- 7 files changed, 259 insertions(+), 4 deletions(-) create mode 100644 contrib/elftoolchain/README.quark create mode 100644 contrib/elftoolchain/libelf/GNUmakefile create mode 100644 contrib/elftoolchain/libelf/elf.h diff --git a/contrib/elftoolchain/README.quark b/contrib/elftoolchain/README.quark new file mode 100644 index 00000000..68ba50b4 --- /dev/null +++ b/contrib/elftoolchain/README.quark @@ -0,0 +1,28 @@ +Elftoolchain@Quark +~~~~~~~~~~~~~~~~~~ + Elftoolchain has been imported in quark to get rid of the GPLed libelf present + on most linux systems. + + In order to make Elftoolchain fit the project and also work with a recent + libbpf we had to make a few changes. This file documents those changes. + + +Changes to the build system +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + o All Makefiles were removed. + o Dependency on bmake(1) is removed in favor of GNUmake. + o Only libelf/ and common/ are imported. + o The sole Makefile now is libelf/GNUMakefile, running make there will generate + libelf_pic.a. Other artifacts like shared objects were also removed. + o Documentation, manpages, tools, tests also removed. + + +Changes to please libbpf +~~~~~~~~~~~~~~~~~~~~~~~~ + o All the following changes are guarded under ifdef QUARK. + o Define empty stubs for a bunch of gelf_* functions. They return NULL/zero, + and since it's not used by quark@libbpf, this is fine. + o Declared missing types in gelf.h. + o Renamed elf_{openmemory, open} to elftoolchain_{openmemory, open}, these + names clash with an exported symbol from libbpf. + o Created a missing elf.h in sys/. diff --git a/contrib/elftoolchain/libelf/GNUmakefile b/contrib/elftoolchain/libelf/GNUmakefile new file mode 100644 index 00000000..a42087a8 --- /dev/null +++ b/contrib/elftoolchain/libelf/GNUmakefile @@ -0,0 +1,139 @@ +ifeq ($(V),1) + Q = + msg = +else + Q = @ + msg = @printf ' %-8s %s%s\n' "$(1)" "$(2)" "$(if $(3), $(3))"; +endif + +CFLAGS?= -g -O2 -fPIC + +CPPFLAGS?= -D_GNU_SOURCE -DQUARK -I. -I../common + +# Keep original flags +CDIAGFLAGS+= -Wa,--fatal-warnings +CDIAGFLAGS+= -Wall +CDIAGFLAGS+= -Wcast-align +CDIAGFLAGS+= -Wcast-qual +CDIAGFLAGS+= -Wchar-subscripts +CDIAGFLAGS+= -Wconversion +CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Wextra +CDIAGFLAGS+= -Wformat=2 +CDIAGFLAGS+= -Winline +CDIAGFLAGS+= -Wmissing-prototypes +CDIAGFLAGS+= -Wnested-externs +CDIAGFLAGS+= -Wempty-body +CDIAGFLAGS+= -Wformat-y2k +CDIAGFLAGS+= -Wformat-zero-length +CDIAGFLAGS+= -Wpointer-sign +CDIAGFLAGS+= -Wpointer-to-int-cast +CDIAGFLAGS+= -Wsign-compare +CDIAGFLAGS+= -Wunused-const-variable +CDIAGFLAGS+= -Wunused-parameter +CDIAGFLAGS+= -Wold-style-definition +CDIAGFLAGS+= -Wpointer-arith +CDIAGFLAGS+= -Wredundant-decls +CDIAGFLAGS+= -Wreturn-type +CDIAGFLAGS+= -Wshadow +CDIAGFLAGS+= -Wstrict-prototypes +CDIAGFLAGS+= -Wstrict-overflow +CDIAGFLAGS+= -Wswitch +CDIAGFLAGS+= -Wunused-parameter +CDIAGFLAGS+= -Wwrite-strings + +CC?= cc +M4?= m4 + +GENSRCS:= libelf_fsize.c libelf_msize.c libelf_convert.c +GENDEPS:= elf_types.m4 $(patsubst %.c,%.m4,$(GENSRCS)) + +SRCS= elf.c \ + elf_begin.c \ + elf_cntl.c \ + elf_end.c elf_errmsg.c elf_errno.c \ + elf_data.c \ + elf_fill.c \ + elf_flag.c \ + elf_getarhdr.c \ + elf_getarsym.c \ + elf_getbase.c \ + elf_getident.c \ + elf_getversion.c \ + elf_hash.c \ + elf_kind.c \ + elf_memory.c \ + elf_next.c \ + elf_open.c \ + elf_rand.c \ + elf_rawfile.c \ + elf_phnum.c \ + elf_shnum.c \ + elf_shstrndx.c \ + elf_scn.c \ + elf_strptr.c \ + elf_update.c \ + elf_version.c \ + gelf_cap.c \ + gelf_checksum.c \ + gelf_dyn.c \ + gelf_ehdr.c \ + gelf_getclass.c \ + gelf_fsize.c \ + gelf_move.c \ + gelf_phdr.c \ + gelf_rel.c \ + gelf_rela.c \ + gelf_shdr.c \ + gelf_sym.c \ + gelf_syminfo.c \ + gelf_symshndx.c \ + gelf_xlate.c \ + libelf_align.c \ + libelf_allocate.c \ + libelf_ar.c \ + libelf_ar_util.c \ + libelf_checksum.c \ + libelf_data.c \ + libelf_ehdr.c \ + libelf_elfmachine.c \ + libelf_extended.c \ + libelf_memory.c \ + libelf_open.c \ + libelf_phdr.c \ + libelf_shdr.c \ + libelf_xlate.c \ + $(GENSRCS) + +ELFDEFS:= ../common/sys/elfdefinitions.h +ELFDEPS:= ../common/sys/elfdefinitions.m4 + +DEPS:= $(wildcard *.h) $(ELFDEPS) +OBJS:= $(patsubst %.c,%.o,$(SRCS)) +LIBELF_STATIC:= libelf_pic.a + +all: $(LIBELF_STATIC) + +$(LIBELF_STATIC): $(OBJS) + $(call msg,AR,$@) + $(Q)ar rcs $@ $^ + +%.o: %.c GNUmakefile $(ELFDEFS) + $(call msg,CC,$@) + $(Q)$(CC) -c $(CFLAGS) $(CPPFLAGS) $(CDIAGFLAGS) $< + +$(GENSRCS): $(GENDEPS) + $(call msg,M4,$@) + $(Q)$(M4) -D SRCDIR=/d/e/quark/elftoolchain/libelf $(@:.c=.m4) > $@ + +$(ELFDEFS): $(ELFDEPS) + $(call msg,M4,$@) + $(Q)$(M4) -I../common/sys -D SRCDIR=../common/sys elfdefinitions.m4 > $@ + +clean: + $(call msg,CLEAN) + $(Q)rm -f $(OBJS) $(LIBELF_STATIC) $(ELFDEFS) + +.PHONY: all clean + +.SUFFIXES: diff --git a/contrib/elftoolchain/libelf/elf.h b/contrib/elftoolchain/libelf/elf.h new file mode 100644 index 00000000..a938b5a7 --- /dev/null +++ b/contrib/elftoolchain/libelf/elf.h @@ -0,0 +1,36 @@ +#ifndef _ELF_H_ +#define _ELF_H_ + +/*- + * Copyright (c) 2024 Christiano Haesbaert + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id$ + */ + +#ifdef QUARK +#include +#endif /* QUARK */ + +#endif /* _ELF_H */ diff --git a/contrib/elftoolchain/libelf/elf_open.c b/contrib/elftoolchain/libelf/elf_open.c index 577bcc7f..b1d5e011 100644 --- a/contrib/elftoolchain/libelf/elf_open.c +++ b/contrib/elftoolchain/libelf/elf_open.c @@ -34,12 +34,13 @@ ELFTC_VCSID("$Id$"); /*@ELFTC-DOWNSTREAM-VCSID@*/ +#ifdef QUARK /* * Extension API: open a file for reading, ignoring parse errors. */ Elf * -elf_open(int fd) +elftoolchain_elf_open(int fd) { if (LIBELF_PRIVATE(version) == EV_NONE) { LIBELF_SET_ERROR(SEQUENCE, 0); @@ -55,7 +56,7 @@ elf_open(int fd) */ Elf * -elf_openmemory(char *image, size_t sz) +elftoolchain_elf_openmemory(char *image, size_t sz) { if (LIBELF_PRIVATE(version) == EV_NONE) { LIBELF_SET_ERROR(SEQUENCE, 0); @@ -69,3 +70,5 @@ elf_openmemory(char *image, size_t sz) return (_libelf_memory((unsigned char *) image, sz, 0)); } + +#endif /* QUARK */ diff --git a/contrib/elftoolchain/libelf/gelf.h b/contrib/elftoolchain/libelf/gelf.h index e7a4f600..67fe2ad6 100644 --- a/contrib/elftoolchain/libelf/gelf.h +++ b/contrib/elftoolchain/libelf/gelf.h @@ -51,6 +51,13 @@ typedef Elf64_Cap GElf_Cap; /* SW/HW capabilities */ typedef Elf64_Move GElf_Move; /* Move entries */ typedef Elf64_Syminfo GElf_Syminfo; /* Symbol information */ +#ifdef QUARK +typedef Elf64_Nhdr GElf_Nhdr; /* Note section */ +typedef Elf64_Verdef GElf_Verdef; /* Version definition sections. */ +typedef Elf64_Verdaux GElf_Verdaux; /* Auxiliary version information */ +typedef Elf64_Versym GElf_Versym; /* Version symbol information */ +#endif /* QUARK */ + #define GELF_M_INFO ELF64_M_INFO #define GELF_M_SIZE ELF64_M_SIZE #define GELF_M_SYM ELF64_M_SYM @@ -103,6 +110,15 @@ GElf_Syminfo *gelf_getsyminfo(Elf_Data *_src, int _index, GElf_Syminfo *_dst); int gelf_update_cap(Elf_Data *_dst, int _index, GElf_Cap *_src); int gelf_update_move(Elf_Data *_dst, int _index, GElf_Move *_src); int gelf_update_syminfo(Elf_Data *_dst, int _index, GElf_Syminfo *_src); + +#ifdef QUARK +size_t gelf_getnote(Elf_Data *_data, size_t _offset, GElf_Nhdr *_result, size_t + *_name_offset, size_t *_desc_offset); +GElf_Verdef *gelf_getverdef(Elf_Data *_data, int _offset, GElf_Verdef *_dst); +GElf_Verdaux *gelf_getverdaux(Elf_Data *_data, int _offset, GElf_Verdaux *_dst); +GElf_Versym *gelf_getversym(Elf_Data *_data, int _ndx, GElf_Versym *_dst); +#endif + #ifdef __cplusplus } #endif diff --git a/contrib/elftoolchain/libelf/gelf_shdr.c b/contrib/elftoolchain/libelf/gelf_shdr.c index 9150776b..b053b94d 100644 --- a/contrib/elftoolchain/libelf/gelf_shdr.c +++ b/contrib/elftoolchain/libelf/gelf_shdr.c @@ -132,3 +132,34 @@ gelf_update_shdr(Elf_Scn *scn, GElf_Shdr *s) return (1); } + +#ifdef QUARK +#define UD __attribute__((unused)) + +size_t +gelf_getnote(UD Elf_Data *_data, UD size_t _offset, UD GElf_Nhdr *_result, + UD size_t *_name_offset, UD size_t *_desc_offset) +{ + return (0); +} + +GElf_Verdef * +gelf_getverdef(UD Elf_Data *_data, UD int _offset, UD GElf_Verdef *_dst) +{ + return (NULL); +} + +GElf_Verdaux * +gelf_getverdaux(UD Elf_Data *_data, UD int _offset, UD GElf_Verdaux *_dst) +{ + return (NULL); +} + +GElf_Versym * +gelf_getversym(UD Elf_Data *_data, UD int _ndx, UD GElf_Versym *_dst) +{ + return (NULL); +} + +#undef UD +#endif /* QUARK */ diff --git a/contrib/elftoolchain/libelf/libelf.h b/contrib/elftoolchain/libelf/libelf.h index eb0f502c..7f99dbc5 100644 --- a/contrib/elftoolchain/libelf/libelf.h +++ b/contrib/elftoolchain/libelf/libelf.h @@ -214,8 +214,10 @@ Elf_Data *elf_newdata(Elf_Scn *_scn); Elf_Scn *elf_newscn(Elf *_elf); Elf_Scn *elf_nextscn(Elf *_elf, Elf_Scn *_scn); Elf_Cmd elf_next(Elf *_elf); -Elf *elf_open(int _fd); -Elf *elf_openmemory(char *_image, size_t _size); +#ifdef QUARK +Elf *elftoolchain_elf_open(int _fd); +Elf *elftoolchain_elf_openmemory(char *_image, size_t _size); +#endif /* QUARK */ off_t elf_rand(Elf *_elf, off_t _off); Elf_Data *elf_rawdata(Elf_Scn *_scn, Elf_Data *_data); char *elf_rawfile(Elf *_elf, size_t *_size); From d22763d29d846cad1881af6b8661a3d9fd00976d Mon Sep 17 00:00:00 2001 From: Christiano Haesbaert Date: Tue, 4 Jun 2024 11:08:11 +0200 Subject: [PATCH 4/4] Make this work with cmake, unfinished It works but I'm not happy. It's missing the whole bmake pruning, and figuring out if we should bother tracking dependencies, since cmake does its own thing. --- CMakeLists.txt | 1 + Makefile | 4 --- cmake/modules/libelf.cmake | 10 +++---- .../{README.quark => README.elastic} | 10 +++---- contrib/elftoolchain/libelf/GNUmakefile | 28 ++++++++++--------- contrib/elftoolchain/libelf/elf.h | 4 +-- contrib/elftoolchain/libelf/elf_open.c | 4 +-- contrib/elftoolchain/libelf/gelf.h | 6 ++-- contrib/elftoolchain/libelf/gelf_shdr.c | 4 +-- contrib/elftoolchain/libelf/libelf.h | 4 +-- 10 files changed, 37 insertions(+), 38 deletions(-) rename contrib/elftoolchain/{README.quark => README.elastic} (78%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c82f519..a4412b1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ # Copyright 2021 Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one # or more contributor license agreements. Licensed under the Elastic License 2.0; # you may not use this file except in compliance with the Elastic License 2.0. +set(CMAKE_VERBOSE_MAKEFILE ON) cmake_minimum_required(VERSION 3.20) diff --git a/Makefile b/Makefile index 063d0659..8da4cbee 100644 --- a/Makefile +++ b/Makefile @@ -4,10 +4,6 @@ USER ?= $(shell whoami) CURRENT_DATE_TAG ?= $(shell date +%Y%m%d-%H%M) PKG_VERSION ?= $(shell cat VERSION) -# bmake Settings -MAKE_SYS_PATH ?= /usr/share/mk -export MAKESYSPATH = ${MAKE_SYS_PATH} - # Container Settings NOCONTAINER ?= BUILD_CONTAINER_IMAGE ?= diff --git a/cmake/modules/libelf.cmake b/cmake/modules/libelf.cmake index a4e50ee5..1db9c41e 100644 --- a/cmake/modules/libelf.cmake +++ b/cmake/modules/libelf.cmake @@ -5,18 +5,18 @@ # you may not use this file except in compliance with the Elastic License 2.0. -set(LIBELF_SRC "${PROJECT_SOURCE_DIR}/contrib/elftoolchain") -set(LIBELF_BUILD_DIR "${PROJECT_BINARY_DIR}/contrib/libelf") -set(LIBELF_LIB "${EBPF_INSTALL_DIR}/lib/libelf.a") +set(LIBELF_SRC "${PROJECT_SOURCE_DIR}/contrib/elftoolchain/libelf") +set(LIBELF_BUILD_DIR "${PROJECT_BINARY_DIR}/contrib/elftoolchain") +set(LIBELF_LIB "${EBPF_INSTALL_DIR}/lib/libelf_pic.a") ExternalProject_Add( libelf-external DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" BINARY_DIR ${LIBELF_BUILD_DIR} - BUILD_COMMAND CC=${CMAKE_C_COMPILER} ${EBPF_EXT_ENV_FLAGS} BINOWN=${CURRENT_USER} BINGRP=${CURRENT_GROUP} MFLAGS= MAKEFLAGS= WITH_TESTS=no WITH_BUILD_TOOLS=no BUILD_STATIC_ONLY=1 WITH_ADDITIONAL_DOCUMENTATION=no WITH_PE=no WITH_ISA=no MAKEOBJDIR=${LIBELF_BUILD_DIR} INCSDIR=/include /bin/sh -c "bmake -j${NPROC} -C ${LIBELF_SRC} -e" + BUILD_COMMAND make -C ${LIBELF_SRC} V=1 MAKEOBJDIR=${LIBELF_BUILD_DIR} + INSTALL_COMMAND cp ${LIBELF_BUILD_DIR}/libelf/libelf_pic.a ${EBPF_INSTALL_DIR}/lib/libelf_pic.a BUILD_IN_SOURCE 0 - INSTALL_COMMAND CC=${CMAKE_C_COMPILER} ${EBPF_EXT_ENV_FLAGS} BINOWN=${CURRENT_USER} BINGRP=${CURRENT_GROUP} MFLAGS= MAKEFLAGS= WITH_TESTS=no WITH_BUILD_TOOLS=no BUILD_STATIC_ONLY=1 WITH_ADDITIONAL_DOCUMENTATION=no WITH_PE=no WITH_ISA=no MAKEOBJDIR=${LIBELF_BUILD_DIR} /bin/sh -c "bmake -j${NPROC} -C ${LIBELF_SRC} -e install DESTDIR=${EBPF_INSTALL_DIR} prefix='' INCSDIR=/include" BUILD_BYPRODUCTS ${LIBELF_LIB} ) diff --git a/contrib/elftoolchain/README.quark b/contrib/elftoolchain/README.elastic similarity index 78% rename from contrib/elftoolchain/README.quark rename to contrib/elftoolchain/README.elastic index 68ba50b4..c2c5602a 100644 --- a/contrib/elftoolchain/README.quark +++ b/contrib/elftoolchain/README.elastic @@ -1,7 +1,7 @@ -Elftoolchain@Quark +Elftoolchain@Elastic ~~~~~~~~~~~~~~~~~~ - Elftoolchain has been imported in quark to get rid of the GPLed libelf present - on most linux systems. + Elftoolchain has been imported in elastic/ebpf to get rid of the GPLed libelf + present on most linux systems. In order to make Elftoolchain fit the project and also work with a recent libbpf we had to make a few changes. This file documents those changes. @@ -19,9 +19,9 @@ Changes to the build system Changes to please libbpf ~~~~~~~~~~~~~~~~~~~~~~~~ - o All the following changes are guarded under ifdef QUARK. + o All the following changes are guarded under ifdef ELASTIC. o Define empty stubs for a bunch of gelf_* functions. They return NULL/zero, - and since it's not used by quark@libbpf, this is fine. + and since it's not used by elastic/ebpf, this is fine. o Declared missing types in gelf.h. o Renamed elf_{openmemory, open} to elftoolchain_{openmemory, open}, these names clash with an exported symbol from libbpf. diff --git a/contrib/elftoolchain/libelf/GNUmakefile b/contrib/elftoolchain/libelf/GNUmakefile index a42087a8..ea3b6720 100644 --- a/contrib/elftoolchain/libelf/GNUmakefile +++ b/contrib/elftoolchain/libelf/GNUmakefile @@ -8,7 +8,7 @@ endif CFLAGS?= -g -O2 -fPIC -CPPFLAGS?= -D_GNU_SOURCE -DQUARK -I. -I../common +CPPFLAGS?= -D_GNU_SOURCE -DELASTIC -I. -I../common -I$(MAKEOBJDIR)/common # Keep original flags CDIAGFLAGS+= -Wa,--fatal-warnings @@ -44,9 +44,10 @@ CDIAGFLAGS+= -Wwrite-strings CC?= cc M4?= m4 +OBJDIR= $(MAKEOBJDIR)/libelf -GENSRCS:= libelf_fsize.c libelf_msize.c libelf_convert.c -GENDEPS:= elf_types.m4 $(patsubst %.c,%.m4,$(GENSRCS)) +GENSRCS:= $(OBJDIR)/libelf_fsize.c $(OBJDIR)/libelf_msize.c $(OBJDIR)/libelf_convert.c +GENDEPS:= $(wildcard *.m4) SRCS= elf.c \ elf_begin.c \ @@ -105,35 +106,36 @@ SRCS= elf.c \ libelf_xlate.c \ $(GENSRCS) -ELFDEFS:= ../common/sys/elfdefinitions.h +ELFDEFS:= $(MAKEOBJDIR)/common/sys/elfdefinitions.h ELFDEPS:= ../common/sys/elfdefinitions.m4 DEPS:= $(wildcard *.h) $(ELFDEPS) OBJS:= $(patsubst %.c,%.o,$(SRCS)) + LIBELF_STATIC:= libelf_pic.a -all: $(LIBELF_STATIC) +all: mkdir-objdir $(LIBELF_STATIC) $(LIBELF_STATIC): $(OBJS) $(call msg,AR,$@) - $(Q)ar rcs $@ $^ + $(Q)cd $(OBJDIR) && ar rcs $(OBJDIR)/$@ $^ -%.o: %.c GNUmakefile $(ELFDEFS) +$(OBJS): %.o: %.c GNUmakefile $(ELFDEFS) $(GENSRCS) $(call msg,CC,$@) - $(Q)$(CC) -c $(CFLAGS) $(CPPFLAGS) $(CDIAGFLAGS) $< + $(Q)$(CC) -c $(CFLAGS) $(CPPFLAGS) $(CDIAGFLAGS) $< -o $(OBJDIR)/$(notdir $@) $(GENSRCS): $(GENDEPS) $(call msg,M4,$@) - $(Q)$(M4) -D SRCDIR=/d/e/quark/elftoolchain/libelf $(@:.c=.m4) > $@ + $(Q)$(M4) -D SRCDIR=. $(notdir $(@:.c=.m4)) > $@ $(ELFDEFS): $(ELFDEPS) $(call msg,M4,$@) $(Q)$(M4) -I../common/sys -D SRCDIR=../common/sys elfdefinitions.m4 > $@ -clean: - $(call msg,CLEAN) - $(Q)rm -f $(OBJS) $(LIBELF_STATIC) $(ELFDEFS) +mkdir-objdir: + mkdir -p $(OBJDIR) + mkdir -p $(MAKEOBJDIR)/common/sys -.PHONY: all clean +.PHONY: all mkdir-objdir .SUFFIXES: diff --git a/contrib/elftoolchain/libelf/elf.h b/contrib/elftoolchain/libelf/elf.h index a938b5a7..392c80ba 100644 --- a/contrib/elftoolchain/libelf/elf.h +++ b/contrib/elftoolchain/libelf/elf.h @@ -29,8 +29,8 @@ * $Id$ */ -#ifdef QUARK +#ifdef ELASTIC #include -#endif /* QUARK */ +#endif /* ELASTIC */ #endif /* _ELF_H */ diff --git a/contrib/elftoolchain/libelf/elf_open.c b/contrib/elftoolchain/libelf/elf_open.c index b1d5e011..e892cf86 100644 --- a/contrib/elftoolchain/libelf/elf_open.c +++ b/contrib/elftoolchain/libelf/elf_open.c @@ -34,7 +34,7 @@ ELFTC_VCSID("$Id$"); /*@ELFTC-DOWNSTREAM-VCSID@*/ -#ifdef QUARK +#ifdef ELASTIC /* * Extension API: open a file for reading, ignoring parse errors. */ @@ -71,4 +71,4 @@ elftoolchain_elf_openmemory(char *image, size_t sz) return (_libelf_memory((unsigned char *) image, sz, 0)); } -#endif /* QUARK */ +#endif /* ELASTIC */ diff --git a/contrib/elftoolchain/libelf/gelf.h b/contrib/elftoolchain/libelf/gelf.h index 67fe2ad6..7e4308ba 100644 --- a/contrib/elftoolchain/libelf/gelf.h +++ b/contrib/elftoolchain/libelf/gelf.h @@ -51,12 +51,12 @@ typedef Elf64_Cap GElf_Cap; /* SW/HW capabilities */ typedef Elf64_Move GElf_Move; /* Move entries */ typedef Elf64_Syminfo GElf_Syminfo; /* Symbol information */ -#ifdef QUARK +#ifdef ELASTIC typedef Elf64_Nhdr GElf_Nhdr; /* Note section */ typedef Elf64_Verdef GElf_Verdef; /* Version definition sections. */ typedef Elf64_Verdaux GElf_Verdaux; /* Auxiliary version information */ typedef Elf64_Versym GElf_Versym; /* Version symbol information */ -#endif /* QUARK */ +#endif /* ELASTIC */ #define GELF_M_INFO ELF64_M_INFO #define GELF_M_SIZE ELF64_M_SIZE @@ -111,7 +111,7 @@ int gelf_update_cap(Elf_Data *_dst, int _index, GElf_Cap *_src); int gelf_update_move(Elf_Data *_dst, int _index, GElf_Move *_src); int gelf_update_syminfo(Elf_Data *_dst, int _index, GElf_Syminfo *_src); -#ifdef QUARK +#ifdef ELASTIC size_t gelf_getnote(Elf_Data *_data, size_t _offset, GElf_Nhdr *_result, size_t *_name_offset, size_t *_desc_offset); GElf_Verdef *gelf_getverdef(Elf_Data *_data, int _offset, GElf_Verdef *_dst); diff --git a/contrib/elftoolchain/libelf/gelf_shdr.c b/contrib/elftoolchain/libelf/gelf_shdr.c index b053b94d..443eccba 100644 --- a/contrib/elftoolchain/libelf/gelf_shdr.c +++ b/contrib/elftoolchain/libelf/gelf_shdr.c @@ -133,7 +133,7 @@ gelf_update_shdr(Elf_Scn *scn, GElf_Shdr *s) return (1); } -#ifdef QUARK +#ifdef ELASTIC #define UD __attribute__((unused)) size_t @@ -162,4 +162,4 @@ gelf_getversym(UD Elf_Data *_data, UD int _ndx, UD GElf_Versym *_dst) } #undef UD -#endif /* QUARK */ +#endif /* ELASTIC */ diff --git a/contrib/elftoolchain/libelf/libelf.h b/contrib/elftoolchain/libelf/libelf.h index 7f99dbc5..2785811b 100644 --- a/contrib/elftoolchain/libelf/libelf.h +++ b/contrib/elftoolchain/libelf/libelf.h @@ -214,10 +214,10 @@ Elf_Data *elf_newdata(Elf_Scn *_scn); Elf_Scn *elf_newscn(Elf *_elf); Elf_Scn *elf_nextscn(Elf *_elf, Elf_Scn *_scn); Elf_Cmd elf_next(Elf *_elf); -#ifdef QUARK +#ifdef ELASTIC Elf *elftoolchain_elf_open(int _fd); Elf *elftoolchain_elf_openmemory(char *_image, size_t _size); -#endif /* QUARK */ +#endif /* ELASTIC */ off_t elf_rand(Elf *_elf, off_t _off); Elf_Data *elf_rawdata(Elf_Scn *_scn, Elf_Data *_data); char *elf_rawfile(Elf *_elf, size_t *_size);
-
-EOF - -# Build
elements for each generated HTML file. -for h in $(ls *.[0-9].html); do - hxextract -s "
${h%.html}
" \ - -e "
" span.Nd ${h} - echo -done >> index.html - -# Write out the epilogue. -cat >> index.html < -

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%0ARUP(P7;3mQN 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­#T(N`nAq)UP5)QS_XZm~*FU8rMXl6g7p+oSi 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­_~j$ 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